@eslinted/core 4.0.3 → 4.0.5-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 (238) hide show
  1. package/.github/workflows/RELEASE.yml +1 -0
  2. package/.github/workflows/rc.yml +1 -0
  3. package/package.json +19 -5
  4. package/src/factory/{files/index.ts → files.ts} +4 -4
  5. package/src/factory/index.ts +3 -6
  6. package/src/factory/options/{option/html/index.ts → html.ts} +1 -1
  7. package/src/factory/options/index.ts +9 -9
  8. package/src/factory/options/{option/js/index.ts → js.ts} +1 -1
  9. package/src/factory/options/{option/json/index.ts → json.ts} +1 -1
  10. package/src/factory/options/{option/jsonc/index.ts → jsonc.ts} +1 -1
  11. package/src/factory/options/{option/md/index.ts → md.ts} +1 -1
  12. package/src/factory/options/{option/mocha/index.ts → mocha.ts} +2 -2
  13. package/src/factory/options/option/index.ts +19 -13
  14. package/src/factory/options/option/params/globals.ts +3 -0
  15. package/src/{boundary/output/config/option/language/index.ts → factory/options/option/params/language.ts} +3 -5
  16. package/src/factory/options/option/params/languageOptions/ecma.ts +1 -0
  17. package/src/factory/options/option/params/languageOptions/source.ts +1 -0
  18. package/src/{boundary/output/config/option/linter/index.ts → factory/options/option/params/linter.ts} +1 -1
  19. package/src/factory/options/option/params/plugins.ts +1 -0
  20. package/src/factory/options/option/template.ts +24 -0
  21. package/src/factory/options/{option/svelte/index.ts → svelte.ts} +2 -2
  22. package/src/factory/options/{option/ts/index.ts → ts.ts} +2 -2
  23. package/src/factory/options/{option/yml/index.ts → yml.ts} +1 -1
  24. package/src/factory/{rulesets/ruleset → ruleset}/index.ts +5 -4
  25. package/src/factory/ruleset/rule.ts +8 -0
  26. package/src/factory/{rulesets/index.ts → rulesets.ts} +5 -5
  27. package/src/index.ts +20 -19
  28. package/src/input.ts +11 -0
  29. package/src/inputs/files/base.ts +3 -0
  30. package/src/inputs/files/includes.ts +3 -0
  31. package/src/inputs/files.ts +7 -0
  32. package/src/inputs/imports/parsers.ts +11 -0
  33. package/src/{dependency/plugins/index.ts → inputs/imports/plugins.ts} +2 -5
  34. package/src/inputs/imports.ts +2 -0
  35. package/src/inputs/parsers.ts +3 -0
  36. package/src/inputs/plugins.ts +3 -0
  37. package/src/inputs/rules/entry/index.ts +3 -0
  38. package/src/inputs/rules/entry/object/index.ts +7 -0
  39. package/src/inputs/rules/entry/object/state/index.ts +4 -0
  40. package/src/inputs/rules/overrides.ts +4 -0
  41. package/src/inputs/rules/preset.ts +4 -0
  42. package/src/inputs/rules.ts +7 -0
  43. package/src/{boundary/output/config/index.ts → output.ts} +3 -4
  44. package/src/{scopes/index.ts → scopes.ts} +1 -3
  45. package/dist/boundary/index.d.ts +0 -9
  46. package/dist/boundary/index.d.ts.map +0 -1
  47. package/dist/boundary/index.js +0 -2
  48. package/dist/boundary/index.js.map +0 -1
  49. package/dist/boundary/input/files/default/index.d.ts +0 -4
  50. package/dist/boundary/input/files/default/index.d.ts.map +0 -1
  51. package/dist/boundary/input/files/default/index.js +0 -2
  52. package/dist/boundary/input/files/default/index.js.map +0 -1
  53. package/dist/boundary/input/files/includes/index.d.ts +0 -4
  54. package/dist/boundary/input/files/includes/index.d.ts.map +0 -1
  55. package/dist/boundary/input/files/includes/index.js +0 -2
  56. package/dist/boundary/input/files/includes/index.js.map +0 -1
  57. package/dist/boundary/input/files/index.d.ts +0 -8
  58. package/dist/boundary/input/files/index.d.ts.map +0 -1
  59. package/dist/boundary/input/files/index.js +0 -2
  60. package/dist/boundary/input/files/index.js.map +0 -1
  61. package/dist/boundary/input/index.d.ts +0 -14
  62. package/dist/boundary/input/index.d.ts.map +0 -1
  63. package/dist/boundary/input/index.js +0 -2
  64. package/dist/boundary/input/index.js.map +0 -1
  65. package/dist/boundary/input/parsers/index.d.ts +0 -4
  66. package/dist/boundary/input/parsers/index.d.ts.map +0 -1
  67. package/dist/boundary/input/parsers/index.js +0 -2
  68. package/dist/boundary/input/parsers/index.js.map +0 -1
  69. package/dist/boundary/input/plugins/index.d.ts +0 -6
  70. package/dist/boundary/input/plugins/index.d.ts.map +0 -1
  71. package/dist/boundary/input/plugins/index.js +0 -2
  72. package/dist/boundary/input/plugins/index.js.map +0 -1
  73. package/dist/boundary/input/rules/index.d.ts +0 -8
  74. package/dist/boundary/input/rules/index.d.ts.map +0 -1
  75. package/dist/boundary/input/rules/index.js +0 -2
  76. package/dist/boundary/input/rules/index.js.map +0 -1
  77. package/dist/boundary/input/rules/overrides/index.d.ts +0 -5
  78. package/dist/boundary/input/rules/overrides/index.d.ts.map +0 -1
  79. package/dist/boundary/input/rules/overrides/index.js +0 -2
  80. package/dist/boundary/input/rules/overrides/index.js.map +0 -1
  81. package/dist/boundary/input/rules/preset/entry/index.d.ts +0 -4
  82. package/dist/boundary/input/rules/preset/entry/index.d.ts.map +0 -1
  83. package/dist/boundary/input/rules/preset/entry/index.js +0 -2
  84. package/dist/boundary/input/rules/preset/entry/index.js.map +0 -1
  85. package/dist/boundary/input/rules/preset/entry/object/index.d.ts +0 -4
  86. package/dist/boundary/input/rules/preset/entry/object/index.d.ts.map +0 -1
  87. package/dist/boundary/input/rules/preset/entry/object/index.js +0 -2
  88. package/dist/boundary/input/rules/preset/entry/object/index.js.map +0 -1
  89. package/dist/boundary/input/rules/preset/entry/object/state/index.d.ts +0 -3
  90. package/dist/boundary/input/rules/preset/entry/object/state/index.d.ts.map +0 -1
  91. package/dist/boundary/input/rules/preset/entry/object/state/index.js +0 -2
  92. package/dist/boundary/input/rules/preset/entry/object/state/index.js.map +0 -1
  93. package/dist/boundary/input/rules/preset/index.d.ts +0 -5
  94. package/dist/boundary/input/rules/preset/index.d.ts.map +0 -1
  95. package/dist/boundary/input/rules/preset/index.js +0 -2
  96. package/dist/boundary/input/rules/preset/index.js.map +0 -1
  97. package/dist/boundary/output/config/index.d.ts +0 -22
  98. package/dist/boundary/output/config/index.d.ts.map +0 -1
  99. package/dist/boundary/output/config/index.js +0 -2
  100. package/dist/boundary/output/config/index.js.map +0 -1
  101. package/dist/boundary/output/config/option/index.d.ts +0 -14
  102. package/dist/boundary/output/config/option/index.d.ts.map +0 -1
  103. package/dist/boundary/output/config/option/index.js +0 -2
  104. package/dist/boundary/output/config/option/index.js.map +0 -1
  105. package/dist/boundary/output/config/option/language/ecma/index.d.ts +0 -3
  106. package/dist/boundary/output/config/option/language/ecma/index.d.ts.map +0 -1
  107. package/dist/boundary/output/config/option/language/ecma/index.js +0 -2
  108. package/dist/boundary/output/config/option/language/ecma/index.js.map +0 -1
  109. package/dist/boundary/output/config/option/language/index.d.ts +0 -15
  110. package/dist/boundary/output/config/option/language/index.d.ts.map +0 -1
  111. package/dist/boundary/output/config/option/language/index.js +0 -2
  112. package/dist/boundary/output/config/option/language/index.js.map +0 -1
  113. package/dist/boundary/output/config/option/language/source/index.d.ts +0 -3
  114. package/dist/boundary/output/config/option/language/source/index.d.ts.map +0 -1
  115. package/dist/boundary/output/config/option/language/source/index.js +0 -2
  116. package/dist/boundary/output/config/option/language/source/index.js.map +0 -1
  117. package/dist/boundary/output/config/option/linter/index.d.ts +0 -5
  118. package/dist/boundary/output/config/option/linter/index.d.ts.map +0 -1
  119. package/dist/boundary/output/config/option/linter/index.js +0 -2
  120. package/dist/boundary/output/config/option/linter/index.js.map +0 -1
  121. package/dist/boundary/output/config/option/plugins/index.d.ts +0 -5
  122. package/dist/boundary/output/config/option/plugins/index.d.ts.map +0 -1
  123. package/dist/boundary/output/config/option/plugins/index.js +0 -2
  124. package/dist/boundary/output/config/option/plugins/index.js.map +0 -1
  125. package/dist/boundary/output/index.d.ts +0 -3
  126. package/dist/boundary/output/index.d.ts.map +0 -1
  127. package/dist/boundary/output/index.js +0 -2
  128. package/dist/boundary/output/index.js.map +0 -1
  129. package/dist/dependency/globals/index.d.ts +0 -4
  130. package/dist/dependency/globals/index.d.ts.map +0 -1
  131. package/dist/dependency/globals/index.js +0 -2
  132. package/dist/dependency/globals/index.js.map +0 -1
  133. package/dist/dependency/index.d.ts +0 -5
  134. package/dist/dependency/index.d.ts.map +0 -1
  135. package/dist/dependency/index.js +0 -2
  136. package/dist/dependency/index.js.map +0 -1
  137. package/dist/dependency/parsers/index.d.ts +0 -4
  138. package/dist/dependency/parsers/index.d.ts.map +0 -1
  139. package/dist/dependency/parsers/index.js +0 -2
  140. package/dist/dependency/parsers/index.js.map +0 -1
  141. package/dist/dependency/plugins/index.d.ts +0 -3
  142. package/dist/dependency/plugins/index.d.ts.map +0 -1
  143. package/dist/dependency/plugins/index.js +0 -2
  144. package/dist/dependency/plugins/index.js.map +0 -1
  145. package/dist/factory/files/index.d.ts +0 -8
  146. package/dist/factory/files/index.d.ts.map +0 -1
  147. package/dist/factory/files/index.js +0 -16
  148. package/dist/factory/files/index.js.map +0 -1
  149. package/dist/factory/index.d.ts +0 -7
  150. package/dist/factory/index.d.ts.map +0 -1
  151. package/dist/factory/index.js +0 -7
  152. package/dist/factory/index.js.map +0 -1
  153. package/dist/factory/options/index.d.ts +0 -22
  154. package/dist/factory/options/index.d.ts.map +0 -1
  155. package/dist/factory/options/index.js +0 -21
  156. package/dist/factory/options/index.js.map +0 -1
  157. package/dist/factory/options/option/html/index.d.ts +0 -9
  158. package/dist/factory/options/option/html/index.d.ts.map +0 -1
  159. package/dist/factory/options/option/html/index.js +0 -10
  160. package/dist/factory/options/option/html/index.js.map +0 -1
  161. package/dist/factory/options/option/index.d.ts +0 -2989
  162. package/dist/factory/options/option/index.d.ts.map +0 -1
  163. package/dist/factory/options/option/index.js +0 -56
  164. package/dist/factory/options/option/index.js.map +0 -1
  165. package/dist/factory/options/option/js/index.d.ts +0 -10
  166. package/dist/factory/options/option/js/index.d.ts.map +0 -1
  167. package/dist/factory/options/option/js/index.js +0 -12
  168. package/dist/factory/options/option/js/index.js.map +0 -1
  169. package/dist/factory/options/option/json/index.d.ts +0 -9
  170. package/dist/factory/options/option/json/index.d.ts.map +0 -1
  171. package/dist/factory/options/option/json/index.js +0 -10
  172. package/dist/factory/options/option/json/index.js.map +0 -1
  173. package/dist/factory/options/option/jsonc/index.d.ts +0 -9
  174. package/dist/factory/options/option/jsonc/index.d.ts.map +0 -1
  175. package/dist/factory/options/option/jsonc/index.js +0 -10
  176. package/dist/factory/options/option/jsonc/index.js.map +0 -1
  177. package/dist/factory/options/option/md/index.d.ts +0 -9
  178. package/dist/factory/options/option/md/index.d.ts.map +0 -1
  179. package/dist/factory/options/option/md/index.js +0 -10
  180. package/dist/factory/options/option/md/index.js.map +0 -1
  181. package/dist/factory/options/option/mocha/index.d.ts +0 -40
  182. package/dist/factory/options/option/mocha/index.d.ts.map +0 -1
  183. package/dist/factory/options/option/mocha/index.js +0 -17
  184. package/dist/factory/options/option/mocha/index.js.map +0 -1
  185. package/dist/factory/options/option/svelte/index.d.ts +0 -27
  186. package/dist/factory/options/option/svelte/index.d.ts.map +0 -1
  187. package/dist/factory/options/option/svelte/index.js +0 -21
  188. package/dist/factory/options/option/svelte/index.js.map +0 -1
  189. package/dist/factory/options/option/ts/index.d.ts +0 -19
  190. package/dist/factory/options/option/ts/index.d.ts.map +0 -1
  191. package/dist/factory/options/option/ts/index.js +0 -15
  192. package/dist/factory/options/option/ts/index.js.map +0 -1
  193. package/dist/factory/options/option/yml/index.d.ts +0 -9
  194. package/dist/factory/options/option/yml/index.d.ts.map +0 -1
  195. package/dist/factory/options/option/yml/index.js +0 -10
  196. package/dist/factory/options/option/yml/index.js.map +0 -1
  197. package/dist/factory/rulesets/index.d.ts +0 -9
  198. package/dist/factory/rulesets/index.d.ts.map +0 -1
  199. package/dist/factory/rulesets/index.js +0 -17
  200. package/dist/factory/rulesets/index.js.map +0 -1
  201. package/dist/factory/rulesets/ruleset/index.d.ts +0 -13
  202. package/dist/factory/rulesets/ruleset/index.d.ts.map +0 -1
  203. package/dist/factory/rulesets/ruleset/index.js +0 -38
  204. package/dist/factory/rulesets/ruleset/index.js.map +0 -1
  205. package/dist/factory/rulesets/ruleset/rule/index.d.ts +0 -7
  206. package/dist/factory/rulesets/ruleset/rule/index.d.ts.map +0 -1
  207. package/dist/factory/rulesets/ruleset/rule/index.js +0 -9
  208. package/dist/factory/rulesets/ruleset/rule/index.js.map +0 -1
  209. package/dist/index.d.ts +0 -23
  210. package/dist/index.d.ts.map +0 -1
  211. package/dist/index.js +0 -31
  212. package/dist/index.js.map +0 -1
  213. package/dist/scopes/index.d.ts +0 -4
  214. package/dist/scopes/index.d.ts.map +0 -1
  215. package/dist/scopes/index.js +0 -13
  216. package/dist/scopes/index.js.map +0 -1
  217. package/src/boundary/index.ts +0 -15
  218. package/src/boundary/input/files/default/index.ts +0 -8
  219. package/src/boundary/input/files/includes/index.ts +0 -5
  220. package/src/boundary/input/files/index.ts +0 -11
  221. package/src/boundary/input/index.ts +0 -23
  222. package/src/boundary/input/parsers/index.ts +0 -5
  223. package/src/boundary/input/plugins/index.ts +0 -5
  224. package/src/boundary/input/rules/index.ts +0 -14
  225. package/src/boundary/input/rules/overrides/index.ts +0 -6
  226. package/src/boundary/input/rules/preset/entry/index.ts +0 -9
  227. package/src/boundary/input/rules/preset/entry/object/index.ts +0 -13
  228. package/src/boundary/input/rules/preset/entry/object/state/index.ts +0 -10
  229. package/src/boundary/input/rules/preset/index.ts +0 -10
  230. package/src/boundary/output/config/option/index.ts +0 -24
  231. package/src/boundary/output/config/option/language/ecma/index.ts +0 -3
  232. package/src/boundary/output/config/option/language/source/index.ts +0 -3
  233. package/src/boundary/output/config/option/plugins/index.ts +0 -3
  234. package/src/boundary/output/index.ts +0 -3
  235. package/src/dependency/globals/index.ts +0 -8
  236. package/src/dependency/index.ts +0 -5
  237. package/src/dependency/parsers/index.ts +0 -13
  238. package/src/factory/rulesets/ruleset/rule/index.ts +0 -8
@@ -25,6 +25,7 @@ jobs:
25
25
  uses: actions/setup-node@v4
26
26
  with:
27
27
  node-version: 20
28
+ check-latest: true
28
29
  registry-url: "https://registry.npmjs.org"
29
30
  - name: Install Dependencies
30
31
  id: ci
@@ -25,6 +25,7 @@ jobs:
25
25
  uses: actions/setup-node@v4
26
26
  with:
27
27
  node-version: 20
28
+ check-latest: true
28
29
  registry-url: "https://registry.npmjs.org"
29
30
  - name: Install Dependencies
30
31
  id: ci
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
- "_schemaVersion": "20.17.10",
2
+ "_schemaVersion": "20.18.0-core.0",
3
3
  "name": "@eslinted/core",
4
- "version": "4.0.3",
4
+ "version": "4.0.5-rc.0",
5
5
  "description": "Core ESLint flat config factory npm package `linted`.",
6
6
  "keywords": [],
7
7
  "repository": "github:jimmy-zhening-luo/linted-core",
@@ -13,8 +13,22 @@
13
13
  "access": "public"
14
14
  },
15
15
  "type": "module",
16
- "main": "dist/index.js",
17
- "types": "dist/index.d.ts",
16
+ "exports": {
17
+ ".": {
18
+ "types": "./dist/index.d.ts",
19
+ "default": "./dist/index.js"
20
+ },
21
+ "./input": {
22
+ "types": "./dist/input.d.ts"
23
+ },
24
+ "./scopes": {
25
+ "types": "./dist/scopes.d.ts",
26
+ "default": "./dist/scopes.js"
27
+ },
28
+ "./output": {
29
+ "types": "./dist/output.d.ts"
30
+ }
31
+ },
18
32
  "config": {
19
33
  "language": "ts",
20
34
  "fix": "true",
@@ -22,7 +36,7 @@
22
36
  },
23
37
  "engineStrict": true,
24
38
  "engines": {
25
- "node": ">=20.17.0",
39
+ "node": ">=20.18.0",
26
40
  "npm": ">=10.8.2"
27
41
  },
28
42
  "peerDependenciesMeta": {},
@@ -1,8 +1,8 @@
1
- import type { Scope } from "../../scopes/index.js";
2
- import type { Input } from "../../boundary/index.js";
1
+ import type { Scope } from "@eslinted/core/scopes";
2
+ import type { Input } from "@eslinted/core/input";
3
3
 
4
- export default class Files {
5
- constructor(private readonly input: Input.Files.Files) {}
4
+ export class Files {
5
+ constructor(private readonly input: Input["files"]) {}
6
6
 
7
7
  public files(scope: Scope): readonly string[] {
8
8
  try {
@@ -1,8 +1,5 @@
1
- import Rulesets from "./rulesets/index.js";
2
- import Files from "./files/index.js";
3
- import Options from "./options/index.js";
1
+ import { Rulesets } from "./rulesets";
2
+ import { Files } from "./files";
3
+ import Options from "./options";
4
4
 
5
- export class Factory {
6
-
7
- }
8
5
  export { Options, Files, Rulesets };
@@ -1,4 +1,4 @@
1
- import Option from "../index.js";
1
+ import Option from "./option";
2
2
 
3
3
  export default class Html extends Option<
4
4
  "html",
@@ -1,12 +1,12 @@
1
- import js from "./option/js/index.js";
2
- import ts from "./option/ts/index.js";
3
- import svelte from "./option/svelte/index.js";
4
- import mocha from "./option/mocha/index.js";
5
- import html from "./option/html/index.js";
6
- import json from "./option/json/index.js";
7
- import jsonc from "./option/jsonc/index.js";
8
- import yml from "./option/yml/index.js";
9
- import md from "./option/md/index.js";
1
+ import js from "./js";
2
+ import ts from "./ts";
3
+ import svelte from "./svelte";
4
+ import mocha from "./mocha";
5
+ import html from "./html";
6
+ import json from "./json";
7
+ import jsonc from "./jsonc";
8
+ import yml from "./yml";
9
+ import md from "./md";
10
10
 
11
11
  export default {
12
12
  js,
@@ -1,4 +1,4 @@
1
- import Option from "../index.js";
1
+ import Option from "./option";
2
2
 
3
3
  export default class Js extends Option<"js", "@stylistic"> {
4
4
  public readonly scope = "js";
@@ -1,4 +1,4 @@
1
- import Option from "../index.js";
1
+ import Option from "./option";
2
2
 
3
3
  export default class Json extends Option<
4
4
  "json",
@@ -1,4 +1,4 @@
1
- import Option from "../index.js";
1
+ import Option from "./option";
2
2
 
3
3
  export default class Jsonc extends Option<
4
4
  "jsonc",
@@ -1,4 +1,4 @@
1
- import Option from "../index.js";
1
+ import Option from "./option";
2
2
 
3
3
  export default class Md extends Option<
4
4
  "md",
@@ -1,5 +1,5 @@
1
- import Option from "../index.js";
2
- import type Ts from "../ts/index.js";
1
+ import Option from "./option";
2
+ import type Ts from "./ts";
3
3
 
4
4
  export default class Mocha extends Option<
5
5
  "mocha",
@@ -1,16 +1,22 @@
1
+ import type { Input } from "@eslinted/core/input";
2
+ import type { Scope } from "@eslinted/core/scopes";
3
+ import type { Output } from "@eslinted/core/output";
4
+ import type { Ruleset } from "../../ruleset";
5
+ import type {
6
+ OptionTemplate,
7
+ LanguageOptions,
8
+ Plugins,
9
+ Globals,
10
+ } from "./template";
1
11
  import globals from "globals";
2
- import type { Scope } from "../../../scopes/index.js";
3
- import type Ruleset from "../../rulesets/ruleset/index.js";
4
- import type { Plugins } from "../../../dependency/index.js";
5
- import type { Output } from "../../../boundary/index.js";
6
12
 
7
13
  export default abstract class Option<
8
14
  S extends Scope,
9
- PluginId extends Plugins,
15
+ Plugin extends keyof Input["plugins"],
10
16
  IsEcma extends boolean = true,
11
17
  ParserOptions extends object | boolean = false,
12
18
  ParserCount extends 0 | 1 | 2 = 0,
13
- GlobalTypes extends keyof typeof globals = never,
19
+ Global extends Globals = never,
14
20
  Processor extends object = never,
15
21
  > {
16
22
  private readonly linterOptions = { noInlineConfig: true, reportUnusedDisableDirectives: "error" } as const;
@@ -25,11 +31,11 @@ export default abstract class Option<
25
31
  constructor(
26
32
  public readonly files: readonly string[],
27
33
  public readonly ruleset: Ruleset<S>,
28
- public readonly plugins: Output.Config.Plugins<PluginId>,
34
+ public readonly plugins: Plugins<Plugin>,
29
35
  public readonly parser: Tuple<unknown, ParserCount>,
30
36
  ) {}
31
37
 
32
- public get configs(): Output[] {
38
+ public get configs(): Output {
33
39
  try {
34
40
  const {
35
41
  scope,
@@ -74,20 +80,20 @@ export default abstract class Option<
74
80
  linterOptions,
75
81
  languageOptions,
76
82
  ...processor,
77
- } satisfies Output.Config.IOption<
78
- PluginId,
83
+ } satisfies OptionTemplate<
84
+ Plugin,
79
85
  IsEcma,
80
86
  ParserOptions,
81
- GlobalTypes,
87
+ Global,
82
88
  Processor
83
89
  >;
84
90
  }
85
91
  catch (e) { throw new Error(`linted.factory.Option/scope:${this.scope}: option`, { cause: e }); }
86
92
  }
87
93
 
88
- protected abstract get languageOptions(): Output.Config.Language<IsEcma, ParserOptions, GlobalTypes>;
94
+ protected abstract get languageOptions(): LanguageOptions<IsEcma, ParserOptions, Global>;
89
95
 
90
- protected globals(type: GlobalTypes) {
96
+ protected globals(type: Global) {
91
97
  return globals[type];
92
98
  }
93
99
  }
@@ -0,0 +1,3 @@
1
+ import type globals from "globals";
2
+
3
+ export type Globals = keyof typeof globals & "mocha";
@@ -1,7 +1,7 @@
1
- import type Ecma from "./ecma/index.js";
2
- import type Source from "./source/index.js";
1
+ import type { Ecma } from "./languageOptions/ecma";
2
+ import type { Source } from "./languageOptions/source";
3
3
 
4
- type Language<
4
+ export type LanguageOptions<
5
5
  IsEcma extends boolean,
6
6
  ParserOptions extends object | boolean,
7
7
  GlobalTypes extends string,
@@ -19,5 +19,3 @@ type Language<
19
19
  : { parser: unknown; parserOptions: ParserOptions }
20
20
  : object
21
21
  );
22
-
23
- export type { Language, Language as default };
@@ -0,0 +1 @@
1
+ export type Ecma = "latest";
@@ -0,0 +1 @@
1
+ export type Source = "module" | "script";
@@ -1,4 +1,4 @@
1
- export default interface Linter {
1
+ export interface Linter {
2
2
  noInlineConfig: true;
3
3
  reportUnusedDisableDirectives: "error";
4
4
  }
@@ -0,0 +1 @@
1
+ export type Plugins<PluginId extends string> = Record<literalful<PluginId>, { configs: unknown }>;
@@ -0,0 +1,24 @@
1
+ import type { LanguageOptions } from "./params/language";
2
+ import type { Linter } from "./params/linter";
3
+ import type { Plugins } from "./params/plugins";
4
+ import type { Globals } from "./params/globals";
5
+
6
+ export type {
7
+ LanguageOptions,
8
+ Linter,
9
+ Plugins,
10
+ Globals,
11
+ };
12
+ export type OptionTemplate<
13
+ PluginId extends string,
14
+ IsEcma extends boolean,
15
+ ParserOptions extends boolean | object,
16
+ GlobalTypes extends Globals,
17
+ Processor extends object,
18
+ > =
19
+ & {
20
+ linterOptions: Linter;
21
+ languageOptions: LanguageOptions<IsEcma, ParserOptions, GlobalTypes>;
22
+ }
23
+ & (Plugins<PluginId> extends never ? object : { plugins: Plugins<PluginId> })
24
+ & (Interface<Processor> extends never ? object : Interface<Processor> extends { processor: string } ? Interface<Processor> : object);
@@ -1,5 +1,5 @@
1
- import Option from "../index.js";
2
- import type Ts from "../ts/index.js";
1
+ import Option from "./option";
2
+ import type Ts from "./ts";
3
3
 
4
4
  export default class Svelte extends Option<
5
5
  "svelte",
@@ -1,5 +1,5 @@
1
- import Option from "../index.js";
2
- import type Js from "../js/index.js";
1
+ import Option from "./option";
2
+ import type Js from "./js";
3
3
 
4
4
  export default class Ts extends Option<
5
5
  "ts",
@@ -1,4 +1,4 @@
1
- import Option from "../index.js";
1
+ import Option from "./option";
2
2
 
3
3
  export default class Yml extends Option<
4
4
  "yml",
@@ -1,8 +1,9 @@
1
- import type { Scope } from "../../../scopes/index.js";
2
- import Rule from "./rule/index.js";
1
+ import type { Input } from "@eslinted/core/input";
2
+ import type { Scope } from "@eslinted/core/scopes";
3
+ import { Rule } from "./rule";
3
4
 
4
5
  export { Rule };
5
- export default class Ruleset<S extends Scope> {
6
+ export class Ruleset<S extends Scope> {
6
7
  public readonly ruleset: readonly Rule[];
7
8
  public overrides: Null<Rule> = null;
8
9
 
@@ -31,7 +32,7 @@ export default class Ruleset<S extends Scope> {
31
32
  catch (e) { throw new Error(`linted.factory.Ruleset: records`, { cause: e }); }
32
33
  }
33
34
 
34
- public override(overrides: undefined | Rule["rules"]) {
35
+ public override(overrides: undefined | Input["rules"]["rules"][Scope][number][1]) {
35
36
  if (typeof overrides !== "undefined")
36
37
  this.overrides = new Rule("override", overrides);
37
38
 
@@ -0,0 +1,8 @@
1
+ import type { Input } from "@eslinted/core/input";
2
+
3
+ export class Rule {
4
+ constructor(
5
+ public readonly id: string,
6
+ public readonly rules: Input["rules"]["rules"]["html"][number][1],
7
+ ) {}
8
+ }
@@ -1,9 +1,9 @@
1
- import Ruleset, { Rule } from "./ruleset/index.js";
2
- import type { Input } from "../../boundary/index.js";
3
- import type { Scope } from "../../scopes/index.js";
1
+ import type { Input } from "@eslinted/core/input";
2
+ import type { Scope } from "@eslinted/core/scopes";
3
+ import { Ruleset, Rule } from "./ruleset";
4
4
 
5
- export default class {
6
- constructor(private readonly input: Input.Rules.Rules) {}
5
+ export class Rulesets {
6
+ constructor(private readonly input: Input["rules"]) {}
7
7
 
8
8
  public ruleset<S extends Scope>(scope: literalful<S>): Ruleset<S> {
9
9
  try {
package/src/index.ts CHANGED
@@ -1,18 +1,19 @@
1
+ import type { Input } from "./input";
2
+ import type { Scope } from "./scopes";
3
+ import type { Output } from "./output";
4
+ import { scopes } from "./scopes";
1
5
  import {
2
- Options,
3
6
  Files,
4
7
  Rulesets,
5
- } from "./factory/index.js";
6
- import scopes from "./scopes/index.js";
7
- import type { Scope } from "./scopes/index.js";
8
- import type * as core from "./boundary/index.js";
8
+ Options,
9
+ } from "./factory";
9
10
 
10
11
  export default function (
11
- plugins: core.Input.Plugins,
12
- parsers: core.Input.Parsers,
13
- files: core.Input.Files,
14
- rules: core.Input.Rules,
15
- ): core.Output[] {
12
+ plugins: Input["plugins"],
13
+ parsers: Input["parsers"],
14
+ files: Input["files"],
15
+ rules: Input["rules"],
16
+ ): Output {
16
17
  try {
17
18
  const F = new Files(files),
18
19
  R = new Rulesets(rules),
@@ -90,20 +91,20 @@ export default function (
90
91
  namespace Core {
91
92
  export type Scopes = Scope;
92
93
  export namespace Input {
93
- export type Parsers = core.Input.Parsers;
94
- export type Plugins = core.Input.Plugins;
95
- export type Files = core.Input.Files;
94
+ export type Parsers = Input["parsers"];
95
+ export type Plugins = Input["plugins"];
96
+ export type Files = Input["files"];
96
97
  export namespace Files {
97
- export type Base = core.Input.Files.FileBase;
98
- export type Includes = core.Input.Files.Includes;
98
+ export type Base = Files["files"];
99
+ export type Includes = Files["includes"];
99
100
  }
100
- export type Rules = core.Input.Rules;
101
+ export type Rules = Input["rules"];
101
102
  export namespace Rules {
102
- export type Base = core.Input.Rules.RuleBase;
103
- export type Overrides = core.Input.Rules.Overrides;
103
+ export type Base = Rules["rules"];
104
+ export type Overrides = Rules["overrides"];
104
105
  }
105
106
  }
106
- export type Output = core.Output[];
107
+ export type Output = Output[];
107
108
  }
108
109
 
109
110
  export type { Core };
package/src/input.ts ADDED
@@ -0,0 +1,11 @@
1
+ import type { Plugins } from "./inputs/plugins";
2
+ import type { Parsers } from "./inputs/parsers";
3
+ import type { Files } from "./inputs/files";
4
+ import type { Rules } from "./inputs/rules";
5
+
6
+ export interface Input {
7
+ files: Files;
8
+ rules: Rules;
9
+ plugins: Plugins;
10
+ parsers: Parsers;
11
+ }
@@ -0,0 +1,3 @@
1
+ import type { Scope } from "@eslinted/core/scopes";
2
+
3
+ export type Base = Readonly<Record<Scope, readonly string[]>>;
@@ -0,0 +1,3 @@
1
+ import type { Base } from "./base";
2
+
3
+ export type Includes = Partial<Base>;
@@ -0,0 +1,7 @@
1
+ import type { Base } from "./files/base";
2
+ import type { Includes } from "./files/includes";
3
+
4
+ export interface Files {
5
+ files: Base;
6
+ includes: Includes;
7
+ }
@@ -0,0 +1,11 @@
1
+ import type { Scope } from "@eslinted/core/scopes";
2
+
3
+ export type Parsers = Scope
4
+ & (
5
+ | "ts"
6
+ | "svelte"
7
+ | "html"
8
+ | "jsonc"
9
+ | "yml"
10
+ | "md"
11
+ );
@@ -1,4 +1,4 @@
1
- type Plugins =
1
+ export type Plugins =
2
2
  | "@stylistic"
3
3
  | "@typescript-eslint"
4
4
  | "svelte"
@@ -6,7 +6,4 @@ type Plugins =
6
6
  | "@html-eslint"
7
7
  | "jsonc"
8
8
  | "yml"
9
- | "markdownlint"
10
- ;
11
-
12
- export type { Plugins as default };
9
+ | "markdownlint";
@@ -0,0 +1,2 @@
1
+ export type { Plugins } from "./imports/plugins";
2
+ export type { Parsers } from "./imports/parsers";
@@ -0,0 +1,3 @@
1
+ import type { Parsers as Imports } from "./imports/parsers";
2
+
3
+ export type Parsers = Readonly<Record<Imports, unknown>>;
@@ -0,0 +1,3 @@
1
+ import type { Plugins as Imports } from "./imports/plugins";
2
+
3
+ export type Plugins = Readonly<Record<Imports, { configs: unknown }>>;
@@ -0,0 +1,3 @@
1
+ import type { RuleRecord } from "./object";
2
+
3
+ export type RuleEntry = readonly [string, RuleRecord];
@@ -0,0 +1,7 @@
1
+ import type { State } from "./state";
2
+
3
+ export type RuleRecord = Readonly<Record<
4
+ string,
5
+ | State
6
+ | readonly [State, ...unknown[]]
7
+ >>;
@@ -0,0 +1,4 @@
1
+ export type State =
2
+ | "error"
3
+ | "warn"
4
+ | "off";
@@ -0,0 +1,4 @@
1
+ import type { Scope } from "@eslinted/core/scopes";
2
+ import type { Preset } from "./preset";
3
+
4
+ export type Overrides = Readonly<Partial<Record<Scope, Preset[Scope][number][1]>>>;
@@ -0,0 +1,4 @@
1
+ import type { Scope } from "@eslinted/core/scopes";
2
+ import type { RuleEntry } from "./entry";
3
+
4
+ export type Preset = Readonly<Record<Scope, readonly RuleEntry[]>>;
@@ -0,0 +1,7 @@
1
+ import type { Preset } from "./rules/preset";
2
+ import type { Overrides } from "./rules/overrides";
3
+
4
+ export interface Rules {
5
+ rules: Preset;
6
+ overrides: Overrides;
7
+ }
@@ -1,9 +1,8 @@
1
- import type { Rules } from "../../input/index.js";
2
- import type * as Config from "./option/index.js";
1
+ import type { Input } from "./input";
3
2
 
4
3
  interface Config {
5
4
  name: `linted/scope:${string}/rule:${string}+${string}`;
6
- rules: Rules.RuleBase.RuleEntry.RuleObject;
5
+ rules: Input["rules"]["rules"]["html"][number][1];
7
6
  files: readonly string[];
8
7
  linterOptions: {
9
8
  noInlineConfig: true;
@@ -22,4 +21,4 @@ interface Config {
22
21
  processor?: string;
23
22
  }
24
23
 
25
- export type { Config, Config as default };
24
+ export type Output = Config[];
@@ -1,4 +1,4 @@
1
- const scopes = [
1
+ export const scopes = [
2
2
  "js",
3
3
  "ts",
4
4
  "svelte",
@@ -9,6 +9,4 @@ const scopes = [
9
9
  "yml",
10
10
  "md",
11
11
  ] as const;
12
-
13
- export default scopes;
14
12
  export type Scope = (typeof scopes)[number];
@@ -1,9 +0,0 @@
1
- import type * as Input from "./input/index.js";
2
- import type * as Output from "./output/index.js";
3
- type Output = Output.Config;
4
- declare namespace Boundary {
5
- type Input = Input.Input;
6
- type Output = Output.Config;
7
- }
8
- export type { Input, Output, Boundary as default, };
9
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/boundary/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,kBAAkB,CAAC;AAC/C,OAAO,KAAK,KAAK,MAAM,MAAM,mBAAmB,CAAC;AAEjD,KAAK,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;AAE5B,kBAAU,QAAQ,CAAC;IACjB,KAAY,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;IAChC,KAAY,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;CACpC;AAED,YAAY,EACV,KAAK,EACL,MAAM,EACN,QAAQ,IAAI,OAAO,GACpB,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/boundary/index.ts"],"names":[],"mappings":""}
@@ -1,4 +0,0 @@
1
- import type { Scope } from "../../../../scopes/index.js";
2
- type FileBase = Readonly<Record<Scope, readonly string[]>>;
3
- export type { FileBase, FileBase as default, };
4
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/boundary/input/files/default/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AAEzD,KAAK,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC,CAAC;AAE3D,YAAY,EACV,QAAQ,EACR,QAAQ,IAAI,OAAO,GACpB,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/boundary/input/files/default/index.ts"],"names":[],"mappings":""}
@@ -1,4 +0,0 @@
1
- import type * as Includes from "../default/index.js";
2
- type Includes = Partial<Includes.FileBase>;
3
- export type { Includes, Includes as default };
4
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/boundary/input/files/includes/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,QAAQ,MAAM,qBAAqB,CAAC;AAErD,KAAK,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AAE3C,YAAY,EAAE,QAAQ,EAAE,QAAQ,IAAI,OAAO,EAAE,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/boundary/input/files/includes/index.ts"],"names":[],"mappings":""}