@eslinted/defaults 16.0.3 → 17.0.0-rc.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.
Files changed (196) hide show
  1. package/dist/index.d.ts +33 -46
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.spec.js +2 -2
  4. package/dist/index.spec.js.map +1 -1
  5. package/dist/rules/css/index.d.ts +13 -12
  6. package/dist/rules/css/index.d.ts.map +1 -1
  7. package/dist/rules/css/index.js +19 -3
  8. package/dist/rules/css/index.js.map +1 -1
  9. package/dist/rules/html/index.d.ts +43 -42
  10. package/dist/rules/html/index.d.ts.map +1 -1
  11. package/dist/rules/html/index.js +75 -3
  12. package/dist/rules/html/index.js.map +1 -1
  13. package/dist/rules/index.d.ts +33 -46
  14. package/dist/rules/index.d.ts.map +1 -1
  15. package/dist/rules/index.js +1 -1
  16. package/dist/rules/index.js.map +1 -1
  17. package/dist/rules/{base.d.ts → js.d.ts} +3 -3
  18. package/dist/rules/{base.d.ts.map → js.d.ts.map} +1 -1
  19. package/dist/rules/{base.eslint.d.ts → js.eslint.d.ts} +2 -2
  20. package/dist/rules/js.eslint.d.ts.map +1 -0
  21. package/dist/rules/{base.eslint.js → js.eslint.js} +2 -2
  22. package/dist/rules/js.eslint.js.map +1 -0
  23. package/dist/rules/js.js +7 -0
  24. package/dist/rules/js.js.map +1 -0
  25. package/dist/rules/{base.stylistic.d.ts → js.stylistic.d.ts} +2 -2
  26. package/dist/rules/js.stylistic.d.ts.map +1 -0
  27. package/dist/rules/{base.stylistic.js → js.stylistic.js} +2 -2
  28. package/dist/rules/js.stylistic.js.map +1 -0
  29. package/dist/rules/json/index.d.ts +3 -3
  30. package/dist/rules/json/index.js +6 -6
  31. package/dist/rules/json/index.js.map +1 -1
  32. package/dist/rules/json/{enable.d.ts → json.d.ts} +2 -2
  33. package/dist/rules/json/json.d.ts.map +1 -0
  34. package/dist/rules/json/{enable.js → json.js} +2 -2
  35. package/dist/rules/json/json.js.map +1 -0
  36. package/dist/rules/json/plugin/{extension.d.ts → extend.d.ts} +2 -2
  37. package/dist/rules/json/plugin/extend.d.ts.map +1 -0
  38. package/dist/rules/json/plugin/{extension.js → extend.js} +2 -2
  39. package/dist/rules/json/plugin/extend.js.map +1 -0
  40. package/dist/rules/json/plugin/index.d.ts +1 -1
  41. package/dist/rules/json/plugin/index.js +1 -1
  42. package/dist/rules/json/plugin/index.js.map +1 -1
  43. package/dist/rules/jsonc/index.d.ts +3 -2
  44. package/dist/rules/jsonc/index.d.ts.map +1 -1
  45. package/dist/rules/jsonc/index.js +9 -3
  46. package/dist/rules/jsonc/index.js.map +1 -1
  47. package/dist/rules/jsoncc/index.d.ts +3 -2
  48. package/dist/rules/jsoncc/index.d.ts.map +1 -1
  49. package/dist/rules/jsoncc/index.js +12 -3
  50. package/dist/rules/jsoncc/index.js.map +1 -1
  51. package/dist/rules/mocha/chai/expect.d.ts +1 -1
  52. package/dist/rules/mocha/chai/expect.js +1 -1
  53. package/dist/rules/mocha/chai/expect.js.map +1 -1
  54. package/dist/rules/mocha/chai/index.d.ts +3 -2
  55. package/dist/rules/mocha/chai/index.d.ts.map +1 -1
  56. package/dist/rules/mocha/chai/index.js +3 -2
  57. package/dist/rules/mocha/chai/index.js.map +1 -1
  58. package/dist/rules/mocha/index.d.ts +6 -10
  59. package/dist/rules/mocha/index.d.ts.map +1 -1
  60. package/dist/rules/mocha/index.js +6 -8
  61. package/dist/rules/mocha/index.js.map +1 -1
  62. package/dist/rules/mocha/{enable.d.ts → mocha.d.ts} +3 -2
  63. package/dist/rules/mocha/mocha.d.ts.map +1 -0
  64. package/dist/rules/mocha/{enable.js → mocha.js} +3 -2
  65. package/dist/rules/mocha/mocha.js.map +1 -0
  66. package/dist/rules/svelte/disable.d.ts +1 -1
  67. package/dist/rules/svelte/disable.d.ts.map +1 -1
  68. package/dist/rules/svelte/disable.js +1 -1
  69. package/dist/rules/svelte/disable.js.map +1 -1
  70. package/dist/rules/svelte/{extension/index.d.ts → extend.d.ts} +5 -3
  71. package/dist/rules/svelte/extend.d.ts.map +1 -0
  72. package/dist/rules/svelte/{extension/index.js → extend.js} +4 -2
  73. package/dist/rules/svelte/extend.js.map +1 -0
  74. package/dist/rules/svelte/index.d.ts +5 -10
  75. package/dist/rules/svelte/index.d.ts.map +1 -1
  76. package/dist/rules/svelte/index.js +6 -8
  77. package/dist/rules/svelte/index.js.map +1 -1
  78. package/dist/rules/svelte/{enable.d.ts → svelte.d.ts} +2 -2
  79. package/dist/rules/svelte/svelte.d.ts.map +1 -0
  80. package/dist/rules/svelte/{enable.js → svelte.js} +2 -2
  81. package/dist/rules/svelte/{enable.js.map → svelte.js.map} +1 -1
  82. package/dist/rules/ts/disable.d.ts +1 -1
  83. package/dist/rules/ts/disable.js +1 -1
  84. package/dist/rules/ts/disable.js.map +1 -1
  85. package/dist/rules/ts/{extension/index.d.ts → extend.d.ts} +11 -3
  86. package/dist/rules/ts/extend.d.ts.map +1 -0
  87. package/dist/rules/ts/{extension/index.js → extend.js} +10 -2
  88. package/dist/rules/ts/extend.js.map +1 -0
  89. package/dist/rules/ts/index.d.ts +11 -15
  90. package/dist/rules/ts/index.d.ts.map +1 -1
  91. package/dist/rules/ts/index.js +6 -8
  92. package/dist/rules/ts/index.js.map +1 -1
  93. package/dist/rules/ts/{enable.d.ts → ts.d.ts} +2 -2
  94. package/dist/rules/ts/ts.d.ts.map +1 -0
  95. package/dist/rules/ts/{enable.js → ts.js} +2 -2
  96. package/dist/rules/ts/ts.js.map +1 -0
  97. package/dist/rules/yml/{extension.d.ts → extend.d.ts} +2 -2
  98. package/dist/rules/yml/extend.d.ts.map +1 -0
  99. package/dist/rules/yml/{extension.js → extend.js} +2 -2
  100. package/dist/rules/yml/extend.js.map +1 -0
  101. package/dist/rules/yml/index.d.ts +2 -2
  102. package/dist/rules/yml/index.js +4 -4
  103. package/dist/rules/yml/index.js.map +1 -1
  104. package/dist/rules/yml/{enable.d.ts → yml.d.ts} +2 -2
  105. package/dist/rules/yml/yml.d.ts.map +1 -0
  106. package/dist/rules/yml/{enable.js → yml.js} +2 -2
  107. package/dist/rules/yml/yml.js.map +1 -0
  108. package/package.json +1 -1
  109. package/src/index.spec.ts +2 -2
  110. package/src/rules/css/index.ts +23 -2
  111. package/src/rules/html/index.ts +113 -2
  112. package/src/rules/index.ts +1 -1
  113. package/src/rules/{base.eslint.ts → js.eslint.ts} +1 -1
  114. package/src/rules/{base.stylistic.ts → js.stylistic.ts} +1 -1
  115. package/src/rules/js.ts +7 -0
  116. package/src/rules/json/index.ts +6 -6
  117. package/src/rules/json/{enable.ts → json.ts} +1 -1
  118. package/src/rules/json/plugin/{extension.ts → extend.ts} +1 -1
  119. package/src/rules/json/plugin/index.ts +1 -1
  120. package/src/rules/jsonc/index.ts +9 -2
  121. package/src/rules/jsoncc/index.ts +12 -2
  122. package/src/rules/mocha/chai/expect.ts +1 -1
  123. package/src/rules/mocha/chai/index.ts +4 -3
  124. package/src/rules/mocha/index.ts +6 -8
  125. package/src/rules/mocha/{enable.ts → mocha.ts} +2 -1
  126. package/src/rules/svelte/disable.ts +4 -4
  127. package/src/rules/svelte/{extension/index.ts → extend.ts} +4 -2
  128. package/src/rules/svelte/index.ts +6 -8
  129. package/src/rules/svelte/{enable.ts → svelte.ts} +1 -1
  130. package/src/rules/ts/disable.ts +1 -1
  131. package/src/rules/ts/extend.ts +51 -0
  132. package/src/rules/ts/index.ts +6 -8
  133. package/src/rules/ts/{enable.ts → ts.ts} +2 -2
  134. package/src/rules/yml/{extension.ts → extend.ts} +1 -1
  135. package/src/rules/yml/index.ts +4 -4
  136. package/src/rules/yml/{enable.ts → yml.ts} +2 -2
  137. package/dist/rules/base.eslint.d.ts.map +0 -1
  138. package/dist/rules/base.eslint.js.map +0 -1
  139. package/dist/rules/base.js +0 -7
  140. package/dist/rules/base.js.map +0 -1
  141. package/dist/rules/base.stylistic.d.ts.map +0 -1
  142. package/dist/rules/base.stylistic.js.map +0 -1
  143. package/dist/rules/css/enable.d.ts +0 -19
  144. package/dist/rules/css/enable.d.ts.map +0 -1
  145. package/dist/rules/css/enable.js +0 -17
  146. package/dist/rules/css/enable.js.map +0 -1
  147. package/dist/rules/html/enable.d.ts +0 -79
  148. package/dist/rules/html/enable.d.ts.map +0 -1
  149. package/dist/rules/html/enable.js +0 -73
  150. package/dist/rules/html/enable.js.map +0 -1
  151. package/dist/rules/json/enable.d.ts.map +0 -1
  152. package/dist/rules/json/enable.js.map +0 -1
  153. package/dist/rules/json/plugin/extension.d.ts.map +0 -1
  154. package/dist/rules/json/plugin/extension.js.map +0 -1
  155. package/dist/rules/jsonc/override.d.ts +0 -9
  156. package/dist/rules/jsonc/override.d.ts.map +0 -1
  157. package/dist/rules/jsonc/override.js +0 -7
  158. package/dist/rules/jsonc/override.js.map +0 -1
  159. package/dist/rules/jsoncc/override.d.ts +0 -12
  160. package/dist/rules/jsoncc/override.d.ts.map +0 -1
  161. package/dist/rules/jsoncc/override.js +0 -10
  162. package/dist/rules/jsoncc/override.js.map +0 -1
  163. package/dist/rules/mocha/disable.d.ts +0 -10
  164. package/dist/rules/mocha/disable.d.ts.map +0 -1
  165. package/dist/rules/mocha/disable.js +0 -8
  166. package/dist/rules/mocha/disable.js.map +0 -1
  167. package/dist/rules/mocha/enable.d.ts.map +0 -1
  168. package/dist/rules/mocha/enable.js.map +0 -1
  169. package/dist/rules/svelte/enable.d.ts.map +0 -1
  170. package/dist/rules/svelte/extension/disable.d.ts +0 -11
  171. package/dist/rules/svelte/extension/disable.d.ts.map +0 -1
  172. package/dist/rules/svelte/extension/disable.js +0 -9
  173. package/dist/rules/svelte/extension/disable.js.map +0 -1
  174. package/dist/rules/svelte/extension/index.d.ts.map +0 -1
  175. package/dist/rules/svelte/extension/index.js.map +0 -1
  176. package/dist/rules/ts/enable.d.ts.map +0 -1
  177. package/dist/rules/ts/enable.js.map +0 -1
  178. package/dist/rules/ts/extension/disable.d.ts +0 -16
  179. package/dist/rules/ts/extension/disable.d.ts.map +0 -1
  180. package/dist/rules/ts/extension/disable.js +0 -14
  181. package/dist/rules/ts/extension/disable.js.map +0 -1
  182. package/dist/rules/ts/extension/index.d.ts.map +0 -1
  183. package/dist/rules/ts/extension/index.js.map +0 -1
  184. package/dist/rules/yml/enable.d.ts.map +0 -1
  185. package/dist/rules/yml/enable.js.map +0 -1
  186. package/dist/rules/yml/extension.d.ts.map +0 -1
  187. package/dist/rules/yml/extension.js.map +0 -1
  188. package/src/rules/base.ts +0 -7
  189. package/src/rules/css/enable.ts +0 -22
  190. package/src/rules/html/enable.ts +0 -112
  191. package/src/rules/jsonc/override.ts +0 -8
  192. package/src/rules/jsoncc/override.ts +0 -11
  193. package/src/rules/mocha/disable.ts +0 -10
  194. package/src/rules/svelte/extension/disable.ts +0 -10
  195. package/src/rules/ts/extension/disable.ts +0 -31
  196. package/src/rules/ts/extension/index.ts +0 -58
@@ -1,6 +1,6 @@
1
1
  import { State } from "../state.js";
2
2
  declare const _default: {
3
- id: string;
3
+ name: string;
4
4
  rules: {
5
5
  readonly "yml/flow-mapping-curly-newline": readonly [
6
6
  State.ON,
@@ -48,4 +48,4 @@ declare const _default: {
48
48
  };
49
49
  };
50
50
  export default _default;
51
- //# sourceMappingURL=extension.d.ts.map
51
+ //# sourceMappingURL=extend.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extend.d.ts","sourceRoot":"","sources":["../../../src/rules/yml/extend.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;AAGjC,wBA6CE"}
@@ -1,5 +1,5 @@
1
1
  export default {
2
- id: "enable/extension",
2
+ name: "enable/extension",
3
3
  rules: {
4
4
  "yml/flow-mapping-curly-newline": [
5
5
  2,
@@ -44,4 +44,4 @@ export default {
44
44
  ],
45
45
  },
46
46
  };
47
- //# sourceMappingURL=extension.js.map
47
+ //# sourceMappingURL=extend.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extend.js","sourceRoot":"","sources":["../../../src/rules/yml/extend.ts"],"names":[],"mappings":"AAGA,eAAe;IACb,IAAI,EAAE,kBAAkB;IACxB,KAAK,EAAE;QACL,gCAAgC,EAAE;;YAEhC;gBACE,UAAU,EAAE,IAAI;gBAChB,SAAS,EAAE,IAAI;gBACf,aAAa,EAAE,CAAC;aACjB;SACF;QACD,gCAAgC,EAAE;;YAEhC,QAAQ;SACT;QACD,mCAAmC,GAAU;QAC7C,mCAAmC,GAAU;QAC7C,iBAAiB,GAAU;QAC3B,6BAA6B,GAAU;QACvC,6BAA6B,EAAE;;YAE7B;gBACE,GAAG,EAAE,CAAC;gBACN,MAAM,EAAE,CAAC;gBACT,MAAM,EAAE,CAAC;aACV;SACF;QACD,oBAAoB,EAAE;;YAEpB,QAAQ;YACR;gBACE,UAAU,EAAE,CAAC,GAAG,CAAC;gBACjB,OAAO,EAAE;oBACP,GAAG;oBACH,GAAG;oBACH,IAAI;oBACJ,KAAK;oBACL,MAAM;oBACN,OAAO;oBACP,QAAQ;oBACR,WAAW;iBACZ;aACF;SACF;KACO;CACX,CAAC"}
@@ -1,5 +1,5 @@
1
1
  declare const _default: ({
2
- id: string;
2
+ name: string;
3
3
  rules: {
4
4
  readonly "yml/block-mapping-colon-indicator-newline": import("../state.js").State.ON;
5
5
  readonly "yml/block-mapping-question-indicator-newline": import("../state.js").State.ON;
@@ -14,7 +14,7 @@ declare const _default: ({
14
14
  readonly "yml/require-string-key": import("../state.js").State.ON;
15
15
  };
16
16
  } | {
17
- id: string;
17
+ name: string;
18
18
  rules: {
19
19
  readonly "yml/flow-mapping-curly-newline": readonly [
20
20
  import("../state.js").State.ON,
@@ -1,7 +1,7 @@
1
- import YmlEnablePlugin from "./enable.js";
2
- import YmlEnablePluginExtension from "./extension.js";
1
+ import yml from "./yml.js";
2
+ import extend from "./extend.js";
3
3
  export default [
4
- YmlEnablePlugin,
5
- YmlEnablePluginExtension,
4
+ yml,
5
+ extend,
6
6
  ];
7
7
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/rules/yml/index.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,MAAM,UAAU,CAAC;AACvC,OAAO,wBAAwB,MAAM,aAAa,CAAC;AAEnD,eAAe;IACb,eAAe;IACf,wBAAwB;CACzB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/rules/yml/index.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,OAAO,CAAC;AACxB,OAAO,MAAM,MAAM,UAAU,CAAC;AAE9B,eAAe;IACb,GAAG;IACH,MAAM;CACP,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import { State } from "../state.js";
2
2
  declare const _default: {
3
- id: string;
3
+ name: string;
4
4
  rules: {
5
5
  readonly "yml/block-mapping-colon-indicator-newline": State.ON;
6
6
  readonly "yml/block-mapping-question-indicator-newline": State.ON;
@@ -16,4 +16,4 @@ declare const _default: {
16
16
  };
17
17
  };
18
18
  export default _default;
19
- //# sourceMappingURL=enable.d.ts.map
19
+ //# sourceMappingURL=yml.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"yml.d.ts","sourceRoot":"","sources":["../../../src/rules/yml/yml.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;;;;;;;;;;;;;;;;;AAGjC,wBAwBE"}
@@ -1,5 +1,5 @@
1
1
  export default {
2
- id: "enable",
2
+ name: "enable",
3
3
  rules: {
4
4
  "yml/block-mapping-colon-indicator-newline": 2,
5
5
  "yml/block-mapping-question-indicator-newline": 2,
@@ -14,4 +14,4 @@ export default {
14
14
  "yml/require-string-key": 2,
15
15
  },
16
16
  };
17
- //# sourceMappingURL=enable.js.map
17
+ //# sourceMappingURL=yml.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"yml.js","sourceRoot":"","sources":["../../../src/rules/yml/yml.ts"],"names":[],"mappings":"AAGA,eAAe;IACb,IAAI,EAAE,QAAQ;IACd,KAAK,EAAE;QACL,2CAA2C,GAAU;QACrD,8CAA8C,GAAU;QACxD,mBAAmB,GAAU;QAC7B,6CAA6C,GAAU;QACvD,oBAAoB,GAAU;QAE9B,YAAY,GAAU;QAGtB,kBAAkB,GAAU;QAE5B,6BAA6B,GAAU;QACvC,mBAAmB,GAAU;QAC7B,uBAAuB,GAAU;QAGjC,wBAAwB,GAAU;KAI1B;CACX,CAAC"}
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "$schema": "https://json.schemastore.org/package",
4
4
  "$help": "https://docs.npmjs.com/cli/configuring-npm/package-json",
5
5
  "name": "@eslinted/defaults",
6
- "version": "16.0.3",
6
+ "version": "17.0.0-rc.0",
7
7
  "repository": "github:jimmy-zhening-luo/linted-defaults",
8
8
  "description": "Default scopes for `linted`",
9
9
  "keywords": [],
package/src/index.spec.ts CHANGED
@@ -179,11 +179,11 @@ describe(
179
179
  .should
180
180
  .have
181
181
  .keys(
182
- "id",
182
+ "name",
183
183
  "rules",
184
184
  );
185
185
  rule
186
- .id
186
+ .name
187
187
  .should
188
188
  .be
189
189
  .a("string");
@@ -1,3 +1,24 @@
1
- import CssEnable from "./enable";
1
+ import { State } from "../state";
2
2
 
3
- export default [CssEnable];
3
+ // DOC: https://github.com/eslint/css/tree/main/docs/rules
4
+ export default [
5
+ {
6
+ name: "css",
7
+ rules: {
8
+ "css/font-family-fallbacks": State.ON,
9
+ "css/no-duplicate-imports": State.ON,
10
+ "css/no-duplicate-keyframe-selectors": State.ON,
11
+ "css/no-empty-blocks": State.ON,
12
+ "css/no-important": State.ON,
13
+ "css/no-invalid-at-rule-placement": State.ON,
14
+ "css/no-invalid-at-rules": State.ON,
15
+ "css/no-invalid-named-grid-areas": State.ON,
16
+ // "css/no-invalid-properties": State.OFF /* BUG: this shit is still way too broken, it doens't recognize actual rules. in futue if it recognizes actual rules, turn on allow unknown values btw */,
17
+ "css/prefer-logical-properties": State.ON,
18
+ "css/relative-font-units": State.ON,
19
+ // "css/selector-complexity": State.OFF /* preference, or rather too lazy to configure because its default state is literally infinitely permissable */,
20
+ "css/use-baseline": State.ON,
21
+ // "css/use-layers": State.OFF, /* not recommended by docs: https://github.com/eslint/css?tab=readme-ov-file#rules; also BUG: ESLint config inspector: css/use-layers: Invalid rule has no description [INVALID] */
22
+ } as const,
23
+ },
24
+ ];
@@ -1,3 +1,114 @@
1
- import HtmlEnablePlugin from "./enable";
1
+ import { State } from "../state";
2
2
 
3
- export default [HtmlEnablePlugin];
3
+ // DOC: https://html-eslint.org/docs/rules
4
+ export default [
5
+ {
6
+ name: "html",
7
+ rules: {
8
+ // #region BEST PRACTICE
9
+ // DOC: https://html-eslint.org/docs/rules#best-practice
10
+ // "html/max-element-depth": State.OFF /* @preference: simply do not care */,
11
+ "html/no-duplicate-attrs": State.ON,
12
+ "html/no-duplicate-class": State.ON,
13
+ "html/no-duplicate-id": State.ON,
14
+ "html/no-duplicate-in-head": State.ON,
15
+ "html/no-ineffective-attrs": State.ON,
16
+ // "html/no-inline-styles": State.OFF /* @CONFLICT: breaks Svelte app.html */,
17
+ "html/no-invalid-entity": State.ON,
18
+ "html/no-nested-interactive": State.ON,
19
+ "html/no-obsolete-tags": State.ON,
20
+ // "html/no-restricted-attr-values": State.OFF,
21
+ // "html/no-restricted-attrs": State.OFF,
22
+ // "html/no-restricted-tags": State.OFF,
23
+ // "html/no-script-style-type": State.OFF,
24
+ "html/no-target-blank": State.ON,
25
+ // "html/prefer-https": State.OFF /* @CONFLICT: not everything is https */,
26
+ // "html/require-attrs": State.OFF,
27
+ "html/require-button-type": State.ON,
28
+ "html/require-closing-tags": State.ON,
29
+ "html/require-doctype": State.ON,
30
+ // "html/require-explicit-size": State.OFF /* preference, prefer using css */,
31
+ "html/require-li-container": State.ON,
32
+ "html/require-meta-charset": State.ON,
33
+ "html/use-baseline": State.ON,
34
+ // #endregion
35
+
36
+ // #region SEO
37
+ // DOC: https://html-eslint.org/docs/rules#seo
38
+ "html/no-multiple-h1": State.ON,
39
+ "html/require-lang": State.ON,
40
+ // "html/require-meta-description": State.OFF /* @CONFLICT: breaks Svelte which leaves meta descriptions to route leaves */,
41
+ // "html/require-open-graph-protocol": State.OFF /* idk what this is, also it probably breaks Svelte */,
42
+ // "html/require-title": State.OFF /* @CONFLICT: breaks Svelte which leaves title to route leaves */,
43
+ // #endregion
44
+
45
+ // #region ACCESSIBILITY
46
+ // DOC: https://html-eslint.org/docs/rules#accessibility
47
+ "html/no-abstract-roles": State.ON,
48
+ "html/no-accesskey-attrs": State.ON,
49
+ "html/no-aria-hidden-body": State.ON,
50
+ "html/no-aria-hidden-on-focusable": State.ON,
51
+ "html/no-empty-headings": State.ON,
52
+ "html/no-heading-inside-button": State.ON,
53
+ "html/no-invalid-role": State.ON,
54
+ "html/no-non-scalable-viewport": State.ON,
55
+ "html/no-positive-tabindex": State.ON,
56
+ "html/no-skip-heading-levels": State.ON,
57
+ "html/require-form-method": State.ON,
58
+ "html/require-frame-title": State.ON,
59
+ "html/require-img-alt": State.ON,
60
+ "html/require-input-label": State.ON,
61
+ "html/require-meta-viewport": State.ON,
62
+ // #endregion
63
+
64
+ // #region STYLE
65
+ // DOC: https://html-eslint.org/docs/rules#style
66
+ "html/attrs-newline": [
67
+ State.ON,
68
+ {
69
+ ifAttrsMoreThan: 0,
70
+ // closeStyle: "newline" /* sameline | @default newline */,
71
+ },
72
+ ],
73
+ "html/element-newline": [
74
+ State.ON,
75
+ {
76
+ skip: ["head"],
77
+ inline: ["$inline"],
78
+ },
79
+ ],
80
+ // "html/id-naming-convention": State.OFF,
81
+ "html/indent": [
82
+ State.ON,
83
+ 2 /* tab | number | @default 4 */,
84
+ // {
85
+ // Attribute: 1 /* number | @default 1 */,
86
+ // tagChildrenIndent: {
87
+ // html: 0 /* number */,
88
+ // } /* @default {} */,
89
+ // },
90
+ ] /* TBD: @CONFIGURE: indents for specific child tags: https://html-eslint.org/docs/rules/indent */,
91
+ "html/lowercase": State.ON,
92
+ "html/no-extra-spacing-attrs": [
93
+ State.ON,
94
+ {
95
+ // enforceBeforeSelfClose: false /* @default false */,
96
+ disallowMissing: true /* @default false */,
97
+ disallowTabs: true /* @default false */,
98
+ disallowInAssignment: true /* @default false */,
99
+ },
100
+ ],
101
+ "html/no-extra-spacing-text": State.ON,
102
+ "html/no-multiple-empty-lines": [
103
+ State.ON,
104
+ {
105
+ max: 1 /* number | @default 2 */,
106
+ },
107
+ ],
108
+ "html/no-trailing-spaces": State.ON,
109
+ "html/quotes": State.ON,
110
+ // "html/sort-attrs": State.OFF,
111
+ // #endregion
112
+ } as const,
113
+ },
114
+ ];
@@ -1,4 +1,4 @@
1
- import js from "./base";
1
+ import js from "./js";
2
2
  import ts from "./ts";
3
3
  import mocha from "./mocha";
4
4
  import svelte from "./svelte";
@@ -2,7 +2,7 @@ import { State } from "./state";
2
2
 
3
3
  // DOC: https://eslint.org/docs/latest/rules/
4
4
  export default {
5
- id: "enable",
5
+ name: "enable",
6
6
  rules: {
7
7
  // #region PROBLEMS
8
8
  // DOC: https://eslint.org/docs/latest/rules/#possible-problems
@@ -2,7 +2,7 @@ import { State } from "./state";
2
2
 
3
3
  // DOC: https://eslint.style/rules
4
4
  export default {
5
- id: "enable/stylistic",
5
+ name: "enable/stylistic",
6
6
  rules: {
7
7
  "@stylistic/array-bracket-newline": State.ON,
8
8
  "@stylistic/array-bracket-spacing": State.ON,
@@ -0,0 +1,7 @@
1
+ import eslint from "./js.eslint";
2
+ import stylistic from "./js.stylistic";
3
+
4
+ export default [
5
+ eslint,
6
+ stylistic,
7
+ ];
@@ -1,9 +1,9 @@
1
- import JsonEnable from "./enable";
2
- import JsonEnablePlugin from "./plugin";
3
- import JsonEnablePluginExtension from "./plugin/extension";
1
+ import json from "./json";
2
+ import jsonc from "./plugin";
3
+ import jsoncExtend from "./plugin/extend";
4
4
 
5
5
  export default [
6
- JsonEnable,
7
- JsonEnablePlugin,
8
- JsonEnablePluginExtension,
6
+ json,
7
+ jsonc,
8
+ jsoncExtend,
9
9
  ];
@@ -2,7 +2,7 @@ import { State } from "../state";
2
2
 
3
3
  // DOC: https://github.com/eslint/json?tab=readme-ov-file#rules
4
4
  export default {
5
- id: "enable",
5
+ name: "json",
6
6
  rules: {
7
7
  "json/no-duplicate-keys": State.ON /* replaces jsonc/no-dupe-keys */,
8
8
  // "json/no-empty-keys": State.OFF /* preference */,
@@ -2,7 +2,7 @@ import { State } from "../../state";
2
2
 
3
3
  // DOC: https://ota-meshi.github.io/eslint-plugin-jsonc/rules/#extension-rules
4
4
  export default {
5
- id: "enable/plugin/extension",
5
+ name: "jsonc/json/extend",
6
6
  rules: {
7
7
  // "jsonc/array-bracket-newline": State.OFF /* @OVERRIDE: BIGGER BUG: i mean this basically just doesn't work, even with multiple lines it will still fail| BUG: the spec says: `requires line breaks if the number of elements is at least the given integer. If this is 0, this condition will act the same as the option "always". If this is null (the default), this condition is disabled`. However, when null, the jsonc plugin actually errors when there are linebreaks with a single item | (was: MUST match @stylistic/array-bracket-newline) */,
8
8
  "jsonc/array-bracket-spacing": State.ON /* MUST match @stylistic/array-bracket-spacing */,
@@ -2,7 +2,7 @@ import { State } from "../../state";
2
2
 
3
3
  // DOC: https://ota-meshi.github.io/eslint-plugin-jsonc/rules/#jsonc-rules
4
4
  export default {
5
- id: "enable/plugin",
5
+ name: "jsonc/json",
6
6
  rules: {
7
7
  // "jsonc/auto": State.OFF,
8
8
  // "jsonc/key-name-casing": State.OFF,
@@ -1,3 +1,10 @@
1
- import JsoncPluginDisable from "./override";
1
+ import { State } from "../state";
2
2
 
3
- export default [JsoncPluginDisable];
3
+ export default [
4
+ {
5
+ name: "jsonc/jsonc",
6
+ rules: {
7
+ "jsonc/no-comments": State.OFF /* comments ARE allowed in JSONC */,
8
+ } as const,
9
+ },
10
+ ];
@@ -1,3 +1,13 @@
1
- import JsoncCommaPluginDisable from "./override";
1
+ import { State } from "../state";
2
2
 
3
- export default [JsoncCommaPluginDisable];
3
+ export default [
4
+ {
5
+ name: "jsonc/jsoncc",
6
+ rules: {
7
+ "jsonc/comma-dangle": [
8
+ State.ON,
9
+ "always-multiline",
10
+ ] /* trailing commas ARE allowed in JSONC */,
11
+ } as const,
12
+ },
13
+ ];
@@ -2,7 +2,7 @@ import { State } from "../../state";
2
2
 
3
3
  // DOC: https://github.com/turbo87/eslint-plugin-chai-expect?tab=readme-ov-file#rules
4
4
  export default {
5
- id: "enable/chai/expect",
5
+ name: "chai-expect",
6
6
  rules: {
7
7
  "chai-expect/no-inner-compare": State.ON,
8
8
  "chai-expect/no-inner-literal": State.ON,
@@ -2,14 +2,15 @@ import { State } from "../../state";
2
2
 
3
3
  // DOC: https://github.com/ihordiachenko/eslint-plugin-chai-friendly?tab=readme-ov-file#usage
4
4
  export default {
5
- id: "enable/chai",
5
+ name: "chai",
6
6
  rules: {
7
- "chai-friendly/no-unused-expressions": [
7
+ /* @OVERRIDE */ "no-unused-expressions": State.OFF /* INFO: looks like these guys got the hint too ;) https://github.com/ihordiachenko/eslint-plugin-chai-friendly/releases/tag/v1.1.0 */,
8
+ "chai/no-unused-expressions": [
8
9
  State.ON,
9
10
  {
10
11
  allowShortCircuit: true,
11
12
  allowTernary: true,
12
13
  },
13
- ] /* TSLint */,
14
+ ],
14
15
  } as const,
15
16
  };
@@ -1,11 +1,9 @@
1
- import MochaDisable from "./disable";
2
- import MochaEnable from "./enable";
3
- import MochaEnablePluginChai from "./chai";
4
- import MochaEnablePluginChaiExpect from "./chai/expect";
1
+ import mocha from "./mocha";
2
+ import chai from "./chai";
3
+ import chaiExpect from "./chai/expect";
5
4
 
6
5
  export default [
7
- MochaDisable,
8
- MochaEnable,
9
- MochaEnablePluginChai,
10
- MochaEnablePluginChaiExpect,
6
+ mocha,
7
+ chai,
8
+ chaiExpect,
11
9
  ];
@@ -2,7 +2,7 @@ import { State } from "../state";
2
2
 
3
3
  // DOC: https://github.com/lo1tuma/eslint-plugin-mocha/tree/main?tab=readme-ov-file#rules
4
4
  export default {
5
- id: "enable",
5
+ name: "mocha",
6
6
  rules: {
7
7
  // "mocha/consistent-interface": State.OFF /* unable, must choose BDD or TDD first */,
8
8
  // "mocha/consistent-spacing-between-blocks": State.OFF,
@@ -25,6 +25,7 @@ export default {
25
25
  "mocha/no-sibling-hooks": State.ON,
26
26
  // "mocha/no-synchronous-tests": State.OFF,
27
27
  "mocha/no-top-level-hooks": State.ON,
28
+ /* @OVERRIDE */ "prefer-arrow-callback": State.OFF /* TS-capable */,
28
29
  "mocha/prefer-arrow-callback": State.ON /* MUST match ../js/enable.ts, which is TS-capable -- is this?? */,
29
30
  // "mocha/valid-suite-title": State.OFF /* preference */,
30
31
  // "mocha/valid-test-title": State.OFF /* preference */,
@@ -1,12 +1,12 @@
1
1
  import { State } from "../state";
2
2
 
3
+ // DOC: https://github.com/sveltejs/eslint-plugin-svelte/blob/ca37fbbe82d01019946e12eeb1b57c2a5736c018/packages/eslint-plugin-svelte/src/configs/base.ts
3
4
  export default {
4
- id: "disable",
5
+ name: "svelte/disable",
5
6
  rules: {
6
7
  // ESLint core rules known to cause problems with `.svelte`.
7
- // DOC: https://github.com/sveltejs/eslint-plugin-svelte/blob/ca37fbbe82d01019946e12eeb1b57c2a5736c018/packages/eslint-plugin-svelte/src/configs/base.ts
8
- "no-inner-declarations": State.OFF /* The AST generated by svelte-eslint-parser will false positive because the root node of the script is not `Program`. */,
9
- "no-self-assign": State.OFF /* Self assign is one of way to update reactive value in Svelte */,
8
+ "no-inner-declarations": State.OFF /* The AST generated by svelte-eslint-parser will false positive because the root node of the script is not `Program`. INFO: also extended by svelte */,
9
+ "no-self-assign": State.OFF /* Self assign is one of way to update reactive value in Svelte. */,
10
10
  "no-unused-vars": State.OFF /* breaks use of svelte global */,
11
11
  "@typescript-eslint/no-unused-vars": State.OFF /* TS: breaks use of svelte global */,
12
12
  "prefer-const": State.OFF /* svelte/prefer-const */,
@@ -1,13 +1,15 @@
1
- import { State } from "../../state";
1
+ import { State } from "../state";
2
2
 
3
3
  // DOC: http://sveltejs.github.io/eslint-plugin-svelte/rules/#extension-rules
4
4
  export default {
5
- id: "enable/extension",
5
+ name: "svelte/extend",
6
6
  rules: {
7
+ "no-inner-declarations": State.OFF /* INFO: also disabled by svelte */,
7
8
  "svelte/no-inner-declarations": [
8
9
  State.ON,
9
10
  "both",
10
11
  ] /* same options: no-inner-declarations */,
12
+ "@stylistic/no-trailing-spaces": State.OFF /* replaces `no-trailing-spaces` */,
11
13
  "svelte/no-trailing-spaces": State.ON /* same options: @stylistic/no-trailing-spaces */,
12
14
  } as const,
13
15
  };
@@ -1,11 +1,9 @@
1
- import SvelteDisable from "./disable";
2
- import SvelteDisableExtension from "./extension/disable";
3
- import SvelteEnable from "./enable";
4
- import SvelteEnableExtension from "./extension";
1
+ import disable from "./disable";
2
+ import svelte from "./svelte";
3
+ import extend from "./extend";
5
4
 
6
5
  export default [
7
- SvelteDisable,
8
- SvelteDisableExtension,
9
- SvelteEnable,
10
- SvelteEnableExtension,
6
+ disable,
7
+ svelte,
8
+ extend,
11
9
  ];
@@ -2,7 +2,7 @@ import { State } from "../state";
2
2
 
3
3
  // DOC: http://sveltejs.github.io/eslint-plugin-svelte/rules/
4
4
  export default {
5
- id: "enable",
5
+ name: "svelte",
6
6
  rules: {
7
7
  // #region ERRORS
8
8
  // DOC: http://sveltejs.github.io/eslint-plugin-svelte/rules/#possible-errors
@@ -1,7 +1,7 @@
1
1
  import { State } from "../state";
2
2
 
3
3
  export default {
4
- id: "disable",
4
+ name: "disable",
5
5
  rules: {
6
6
  // Handled by TypeScript compiler
7
7
  "consistent-return": State.OFF /* TSLint BUT tsc */,
@@ -0,0 +1,51 @@
1
+ import { State } from "../state";
2
+
3
+ // DOC: https://typescript-eslint.io/rules/?=extension-xdeprecated#rules
4
+ export default {
5
+ name: "enable/extension",
6
+ rules: {
7
+ /* @OVERRIDE */ "dot-notation": State.OFF,
8
+ "@typescript-eslint/dot-notation": [
9
+ State.ON,
10
+ {
11
+ // TS-only:
12
+ allowPrivateClassPropertyAccess: true,
13
+ allowProtectedClassPropertyAccess: true,
14
+ allowIndexSignaturePropertyAccess: true,
15
+ },
16
+ ],
17
+ /* @OVERRIDE */ "no-implied-eval": State.OFF,
18
+ "@typescript-eslint/no-implied-eval": State.ON,
19
+ // "@typescript-eslint/no-redeclare": State.OFF /* tsc (let, const, -var) */,
20
+ /* @OVERRIDE */ "no-restricted-imports": State.OFF,
21
+ // "@typescript-eslint/no-restricted-imports": State.OFF /* preference */,
22
+ /* @OVERRIDE */ "no-unused-vars": State.OFF,
23
+ "@typescript-eslint/no-unused-vars": State.ON,
24
+ /* @OVERRIDE */ "no-throw-literal": State.OFF,
25
+ "@typescript-eslint/only-throw-error": [
26
+ State.ON,
27
+ {
28
+ allowThrowingAny: false,
29
+ },
30
+ ],
31
+ /* @OVERRIDE */ "prefer-destructuring": State.OFF,
32
+ "@typescript-eslint/prefer-destructuring": [
33
+ State.ON,
34
+ {
35
+ AssignmentExpression: {
36
+ array: false,
37
+ object: false,
38
+ },
39
+ },
40
+ ],
41
+ /* @OVERRIDE */ "prefer-promise-reject-errors": State.OFF,
42
+ "@typescript-eslint/prefer-promise-reject-errors": [
43
+ State.ON,
44
+ {
45
+ allowThrowingUnknown: true,
46
+ },
47
+ ],
48
+ /* @OVERRIDE */ "require-await": State.OFF,
49
+ "@typescript-eslint/require-await": State.ON,
50
+ } as const,
51
+ };
@@ -1,11 +1,9 @@
1
- import TsDisable from "./disable";
2
- import TsDisableExtension from "./extension/disable";
3
- import TsEnable from "./enable";
4
- import TsEnableExtension from "./extension";
1
+ import disable from "./disable";
2
+ import ts from "./ts";
3
+ import extend from "./extend";
5
4
 
6
5
  export default [
7
- TsDisable,
8
- TsDisableExtension,
9
- TsEnable,
10
- TsEnableExtension,
6
+ disable,
7
+ ts,
8
+ extend,
11
9
  ];
@@ -2,7 +2,7 @@ import { State } from "../state";
2
2
 
3
3
  // DOC: https://typescript-eslint.io/rules/?=xextension-xdeprecated#rules
4
4
  export default {
5
- id: "enable",
5
+ name: "enable",
6
6
  rules: {
7
7
  // "@typescript-eslint/adjacent-overload-signatures": State.OFF,
8
8
  // "@typescript-eslint/array-type": State.OFF /* preference: ideally, I'd like to don't-care mutable arrays while requiring readonly [] syntax for immutable arrays, but there is no way to do that with the current rule options */,
@@ -172,7 +172,7 @@ export default {
172
172
  },
173
173
  ], /* requires tsconfig: strictNullChecks */
174
174
  "@typescript-eslint/switch-exhaustiveness-check": State.ON,
175
- // "@typescript-eslint/triple-slash-reference": State.OFF /* preference - who gives a fuck */,
175
+ // "@typescript-eslint/triple-slash-reference": State.OFF /* preference */,
176
176
  // "@typescript-eslint/typedef": State.OFF /* tsconfig: { noImplicitAny, strictPropertyInitialization } */,
177
177
  "@typescript-eslint/unbound-method": State.ON,
178
178
  "@typescript-eslint/unified-signatures": State.ON,
@@ -2,7 +2,7 @@ import { State } from "../state";
2
2
 
3
3
  // DOC: https://ota-meshi.github.io/eslint-plugin-yml/rules/#extension-rules
4
4
  export default {
5
- id: "enable/extension",
5
+ name: "enable/extension",
6
6
  rules: {
7
7
  "yml/flow-mapping-curly-newline": [
8
8
  State.ON,