@eslinted/core 5.0.0-rc.3 → 5.0.0-rc.5

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 (97) hide show
  1. package/dist/factory/files.d.ts +1 -2
  2. package/dist/factory/files.d.ts.map +1 -1
  3. package/dist/factory/files.js +3 -5
  4. package/dist/factory/files.js.map +1 -1
  5. package/dist/factory/options/option/index.d.ts +2 -2
  6. package/dist/factory/options/option/index.d.ts.map +1 -1
  7. package/dist/factory/rulesets/index.d.ts +1 -2
  8. package/dist/factory/rulesets/index.d.ts.map +1 -1
  9. package/dist/factory/rulesets/index.js +3 -5
  10. package/dist/factory/rulesets/index.js.map +1 -1
  11. package/dist/index.d.ts +1 -1
  12. package/dist/index.d.ts.map +1 -1
  13. package/dist/index.js +10 -10
  14. package/dist/index.js.map +1 -1
  15. package/dist/output.d.ts +1 -1
  16. package/dist/output.d.ts.map +1 -1
  17. package/package.json +1 -1
  18. package/src/factory/files.ts +4 -4
  19. package/src/factory/options/option/index.ts +1 -1
  20. package/src/factory/rulesets/index.ts +4 -4
  21. package/src/index.ts +20 -22
  22. package/src/output.ts +1 -1
  23. package/typings/{typioca → common}/utility/interface/build/properties/property/index.d.ts +1 -1
  24. package/typings/common/utility/iterable/build/arrays/array/index.d.ts +11 -0
  25. package/typings/common/utility/iterable/build/arrays/index.d.ts +2 -0
  26. package/typings/common/utility/iterable/build/tuples/index.d.ts +10 -0
  27. package/typings/common/utility/iterable/build/tuples/tuple/index.d.ts +26 -0
  28. package/typings/{typioca → common}/utility/iterable/identity/array/length/index.d.ts +2 -2
  29. package/typings/{typioca → common}/utility/iterable/identity/monad.d.ts +5 -5
  30. package/typings/common/utility/iterable/transform/string/stringify/index.d.ts +27 -0
  31. package/typings/common/utility/nullable/index.spec.d.ts +13 -0
  32. package/typings/common/utility/nullable/null/index.spec.d.ts +13 -0
  33. package/typings/common/utility/test.d.ts +2 -0
  34. package/typings/common/valid/index.d.ts +7 -0
  35. package/typings/common/valid/string/index.d.ts +1 -0
  36. package/typings/typioca/utility/iterable/build/arrays/array/index.d.ts +0 -12
  37. package/typings/typioca/utility/iterable/build/arrays/index.d.ts +0 -1
  38. package/typings/typioca/utility/iterable/build/tuples/index.d.ts +0 -9
  39. package/typings/typioca/utility/iterable/build/tuples/tuple/index.d.ts +0 -27
  40. package/typings/typioca/utility/iterable/transform/string/stringify/index.d.ts +0 -13
  41. /package/typings/{typioca → common}/literals/number/bases/base32.d.ts +0 -0
  42. /package/typings/{typioca → common}/literals/number/bases/base64.d.ts +0 -0
  43. /package/typings/{typioca → common}/literals/number/bases/binary.d.ts +0 -0
  44. /package/typings/{typioca → common}/literals/number/bases/decimal.d.ts +0 -0
  45. /package/typings/{typioca → common}/literals/number/bases/hex.d.ts +0 -0
  46. /package/typings/{typioca → common}/literals/number/bases/octal.d.ts +0 -0
  47. /package/typings/{typioca → common}/literals/number/bases/quatral.d.ts +0 -0
  48. /package/typings/{typioca → common}/literals/number/bases/ternary.d.ts +0 -0
  49. /package/typings/{typioca → common}/literals/string/letter/digit/extended/base64/index.d.ts +0 -0
  50. /package/typings/{typioca → common}/literals/string/letter/digit/extended/hex/index.d.ts +0 -0
  51. /package/typings/{typioca → common}/literals/string/letter/digit/index.d.ts +0 -0
  52. /package/typings/{typioca → common}/literals/string/letter/index.d.ts +0 -0
  53. /package/typings/{typioca → common}/primitive/index.d.ts +0 -0
  54. /package/typings/{typioca → common}/safe/index.d.ts +0 -0
  55. /package/typings/{typioca → common}/safe/numbers/finite/index.d.ts +0 -0
  56. /package/typings/{typioca → common}/safe/numbers/fint.d.ts +0 -0
  57. /package/typings/{typioca → common}/safe/numbers/integer/index.d.ts +0 -0
  58. /package/typings/{typioca → common}/safe/numbers/integer/numberful/index.d.ts +0 -0
  59. /package/typings/{typioca/safe/numbers/polarity/Negative.d.ts → common/safe/numbers/polarity/negative.d.ts} +0 -0
  60. /package/typings/{typioca → common}/safe/numbers/polarity/pole/index.d.ts +0 -0
  61. /package/typings/{typioca/safe/numbers/polarity/Positive.d.ts → common/safe/numbers/polarity/positive.d.ts} +0 -0
  62. /package/typings/{typioca → common}/safe/strings/char.d.ts +0 -0
  63. /package/typings/{typioca → common}/safe/strings/stringful/index.d.ts +0 -0
  64. /package/typings/{typioca → common}/safe/strings/stringful/length/index.d.ts +0 -0
  65. /package/typings/{typioca → common}/utility/interface/build/particord/index.d.ts +0 -0
  66. /package/typings/{typioca → common}/utility/interface/build/properties/Field.d.ts +0 -0
  67. /package/typings/{typioca → common}/utility/interface/build/properties/Flag.d.ts +0 -0
  68. /package/typings/{typioca → common}/utility/interface/build/properties/Limit.d.ts +0 -0
  69. /package/typings/{typioca → common}/utility/interface/build/properties/List.d.ts +0 -0
  70. /package/typings/{typioca → common}/utility/interface/build/properties/Listish.d.ts +0 -0
  71. /package/typings/{typioca → common}/utility/interface/build/properties/Scalar.d.ts +0 -0
  72. /package/typings/{typioca → common}/utility/interface/build/recordful/index.d.ts +0 -0
  73. /package/typings/{typioca → common}/utility/interface/build/tables/FieldTable.d.ts +0 -0
  74. /package/typings/{typioca → common}/utility/interface/build/tables/FlagTable.d.ts +0 -0
  75. /package/typings/{typioca → common}/utility/interface/build/tables/ListTable.d.ts +0 -0
  76. /package/typings/{typioca → common}/utility/interface/build/tables/ListishTable.d.ts +0 -0
  77. /package/typings/{typioca → common}/utility/interface/build/tables/ScalarTable.d.ts +0 -0
  78. /package/typings/{typioca → common}/utility/interface/build/tables/table/index.d.ts +0 -0
  79. /package/typings/{typioca → common}/utility/interface/identity/interface/index.d.ts +0 -0
  80. /package/typings/{typioca → common}/utility/interface/identity/keys/index.d.ts +0 -0
  81. /package/typings/{typioca → common}/utility/interface/transform/partial/unrequire/index.d.ts +0 -0
  82. /package/typings/{typioca → common}/utility/iterable/identity/array/index.d.ts +0 -0
  83. /package/typings/{typioca → common}/utility/iterable/identity/dyad.d.ts +0 -0
  84. /package/typings/{typioca → common}/utility/iterable/identity/triad.d.ts +0 -0
  85. /package/typings/{typioca → common}/utility/iterable/transform/flat/index.d.ts +0 -0
  86. /package/typings/{typioca → common}/utility/iterable/transform/flat/unflat/index.d.ts +0 -0
  87. /package/typings/{typioca → common}/utility/iterable/transform/string/index.d.ts +0 -0
  88. /package/typings/{typioca → common}/utility/nullable/index.d.ts +0 -0
  89. /package/typings/{typioca → common}/utility/nullable/null/index.d.ts +0 -0
  90. /package/typings/{typioca → common}/utility/object/build/index.d.ts +0 -0
  91. /package/typings/{typioca → common}/utility/primitive/boolean/true/index.d.ts +0 -0
  92. /package/typings/{typioca → common}/utility/primitive/index.d.ts +0 -0
  93. /package/typings/{typioca → common}/utility/primitive/number/length/index.d.ts +0 -0
  94. /package/typings/{typioca → common}/utility/primitive/number/length/numbered/index.d.ts +0 -0
  95. /package/typings/{typioca → common}/utility/primitive/string/fake/index.d.ts +0 -0
  96. /package/typings/{typioca → common}/utility/primitive/string/literalful/index.d.ts +0 -0
  97. /package/typings/{typioca → common}/utility/primitive/string/literalful/literal/index.d.ts +0 -0
@@ -1,8 +1,7 @@
1
1
  import type { Input } from "./index.js";
2
2
  export declare class Files {
3
- private readonly input;
4
3
  private readonly _files;
5
- constructor(input: Input["files"]);
4
+ constructor(files: Input["files"]);
6
5
  files(scope: string): string[];
7
6
  }
8
7
  //# sourceMappingURL=files.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"files.d.ts","sourceRoot":"","sources":["../../src/factory/files.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,GAAG,CAAC;AAE/B,qBAAa,KAAK;IAGJ,OAAO,CAAC,QAAQ,CAAC,KAAK;IAFlC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA+B;gBAEzB,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC;IAc3C,KAAK,CAAC,KAAK,EAAE,MAAM,GAIS,MAAM,EAAE;CAE5C"}
1
+ {"version":3,"file":"files.d.ts","sourceRoot":"","sources":["../../src/factory/files.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,GAAG,CAAC;AAE/B,qBAAa,KAAK;IAChB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA+B;gBAE1C,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC;IAc1B,KAAK,CAAC,KAAK,EAAE,MAAM,GAIS,MAAM,EAAE;CAE5C"}
@@ -1,12 +1,10 @@
1
1
  export class Files {
2
- input;
3
2
  _files = new Map();
4
- constructor(input) {
5
- this.input = input;
6
- const { files, includes } = this.input, scopes = Object.keys(files);
3
+ constructor(files) {
4
+ const { files: base, includes } = files, scopes = Object.keys(base);
7
5
  for (const scope of scopes)
8
6
  this._files.set(scope, [
9
- ...files[scope],
7
+ ...base[scope],
10
8
  ...scope in includes ? includes[scope] : [],
11
9
  ]);
12
10
  }
@@ -1 +1 @@
1
- {"version":3,"file":"files.js","sourceRoot":"","sources":["../../src/factory/files.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,KAAK;IAGa;IAFZ,MAAM,GAAG,IAAI,GAAG,EAAoB,CAAC;IAEtD,YAA6B,KAAqB;QAArB,UAAK,GAAL,KAAK,CAAgB;QAChD,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,KAAK,EACtC,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAA2B,CAAC;QAEtD,KAAK,MAAM,KAAK,IAAI,MAAM;YACxB,IAAI,CAAC,MAAM,CAAC,GAAG,CACb,KAAK,EACL;gBACE,GAAG,KAAK,CAAC,KAAK,CAAC;gBACf,GAAG,KAAK,IAAI,QAAQ,CAAC,CAAC,CAAE,QAAQ,CAAC,KAAK,CAAc,CAAC,CAAC,CAAC,EAAE;aAC1D,CACF,CAAC;IACN,CAAC;IAEM,KAAK,CAAC,KAAa;QACxB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC;YACzB,MAAM,IAAI,cAAc,CAAC,8BAA8B,KAAK,EAAE,CAAC,CAAC;QAElE,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAa,CAAC;IAC5C,CAAC;CACF"}
1
+ {"version":3,"file":"files.js","sourceRoot":"","sources":["../../src/factory/files.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,KAAK;IACC,MAAM,GAAG,IAAI,GAAG,EAAoB,CAAC;IAEtD,YAAY,KAAqB;QAC/B,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,KAAK,EACvC,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAA0B,CAAC;QAEpD,KAAK,MAAM,KAAK,IAAI,MAAM;YACxB,IAAI,CAAC,MAAM,CAAC,GAAG,CACb,KAAK,EACL;gBACE,GAAG,IAAI,CAAC,KAAK,CAAC;gBACd,GAAG,KAAK,IAAI,QAAQ,CAAC,CAAC,CAAE,QAAQ,CAAC,KAAK,CAAc,CAAC,CAAC,CAAC,EAAE;aAC1D,CACF,CAAC;IACN,CAAC;IAEM,KAAK,CAAC,KAAa;QACxB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC;YACzB,MAAM,IAAI,cAAc,CAAC,8BAA8B,KAAK,EAAE,CAAC,CAAC;QAElE,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAa,CAAC;IAC5C,CAAC;CACF"}
@@ -2,13 +2,13 @@ import type { Ruleset } from "../../rulesets/ruleset.js";
2
2
  import type { Scope, Input, Output, LanguageOptions, Plugins, Globals } from "./template/index.js";
3
3
  export default abstract class Option<S extends Scope, Plugin extends keyof Input["plugins"], IsEcma extends boolean = true, ParserOptions extends object | boolean = false, ParserCount extends 0 | 1 | 2 = 0, Global extends Globals = never, Processor extends object = never> {
4
4
  readonly plugins: Plugins<Plugin>;
5
- readonly parser: Tuple<unknown, ParserCount>;
5
+ readonly parser: Tuple<ParserCount, unknown>;
6
6
  readonly files: string[];
7
7
  readonly ruleset: Ruleset;
8
8
  private readonly linterOptions;
9
9
  abstract readonly scope: literalful<S>;
10
10
  abstract readonly processor: Interface<Processor> extends never ? object : Interface<Processor> extends Readonly<Record<"processor", string>> ? Interface<Processor> : object;
11
- constructor(plugins: Plugins<Plugin>, parser: Tuple<unknown, ParserCount>, files: string[], ruleset: Ruleset);
11
+ constructor(plugins: Plugins<Plugin>, parser: Tuple<ParserCount, unknown>, files: string[], ruleset: Ruleset);
12
12
  get configs(): Output;
13
13
  private get option();
14
14
  protected abstract get languageOptions(): LanguageOptions<IsEcma, ParserOptions, Global>;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/factory/options/option/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,KAAK,EACV,KAAK,EACL,KAAK,EACL,MAAM,EAEN,eAAe,EACf,OAAO,EACP,OAAO,EACR,MAAM,YAAY,CAAC;AAEpB,MAAM,CAAC,OAAO,CAAC,QAAQ,OAAO,MAAM,CAClC,CAAC,SAAS,KAAK,EACf,MAAM,SAAS,MAAM,KAAK,CAAC,SAAS,CAAC,EACrC,MAAM,SAAS,OAAO,GAAG,IAAI,EAC7B,aAAa,SAAS,MAAM,GAAG,OAAO,GAAG,KAAK,EAC9C,WAAW,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EACjC,MAAM,SAAS,OAAO,GAAG,KAAK,EAC9B,SAAS,SAAS,MAAM,GAAG,KAAK;aAYd,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC;aACxB,MAAM,EAAE,KAAK,CAAC,OAAO,EAAE,WAAW,CAAC;aACnC,KAAK,EAAE,MAAM,EAAE;aACf,OAAO,EAAE,OAAO;IAblC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA6E;IAE3G,kBAAyB,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;IAC9C,kBAAyB,SAAS,EAAE,SAAS,CAAC,SAAS,CAAC,SAAS,KAAK,GAClE,MAAM,GACN,SAAS,CAAC,SAAS,CAAC,SAAS,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,GAChE,SAAS,CAAC,SAAS,CAAC,GACpB,MAAM,CAAC;gBAGK,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,EACxB,MAAM,EAAE,KAAK,CAAC,OAAO,EAAE,WAAW,CAAC,EACnC,KAAK,EAAE,MAAM,EAAE,EACf,OAAO,EAAE,OAAO;IAGlC,IAAW,OAAO,IAAI,MAAM,CAqB3B;IAED,OAAO,KAAK,MAAM,GAuBjB;IAED,SAAS,CAAC,QAAQ,KAAK,eAAe,IAAI,eAAe,CAAC,MAAM,EAAE,aAAa,EAAE,MAAM,CAAC,CAAC;IAEzF,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAG/B"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/factory/options/option/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,KAAK,EACV,KAAK,EACL,KAAK,EACL,MAAM,EAEN,eAAe,EACf,OAAO,EACP,OAAO,EACR,MAAM,YAAY,CAAC;AAEpB,MAAM,CAAC,OAAO,CAAC,QAAQ,OAAO,MAAM,CAClC,CAAC,SAAS,KAAK,EACf,MAAM,SAAS,MAAM,KAAK,CAAC,SAAS,CAAC,EACrC,MAAM,SAAS,OAAO,GAAG,IAAI,EAC7B,aAAa,SAAS,MAAM,GAAG,OAAO,GAAG,KAAK,EAC9C,WAAW,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EACjC,MAAM,SAAS,OAAO,GAAG,KAAK,EAC9B,SAAS,SAAS,MAAM,GAAG,KAAK;aAYd,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC;aACxB,MAAM,EAAE,KAAK,CAAC,WAAW,EAAE,OAAO,CAAC;aACnC,KAAK,EAAE,MAAM,EAAE;aACf,OAAO,EAAE,OAAO;IAblC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA6E;IAE3G,kBAAyB,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;IAC9C,kBAAyB,SAAS,EAAE,SAAS,CAAC,SAAS,CAAC,SAAS,KAAK,GAClE,MAAM,GACN,SAAS,CAAC,SAAS,CAAC,SAAS,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,GAChE,SAAS,CAAC,SAAS,CAAC,GACpB,MAAM,CAAC;gBAGK,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,EACxB,MAAM,EAAE,KAAK,CAAC,WAAW,EAAE,OAAO,CAAC,EACnC,KAAK,EAAE,MAAM,EAAE,EACf,OAAO,EAAE,OAAO;IAGlC,IAAW,OAAO,IAAI,MAAM,CAqB3B;IAED,OAAO,KAAK,MAAM,GAuBjB;IAED,SAAS,CAAC,QAAQ,KAAK,eAAe,IAAI,eAAe,CAAC,MAAM,EAAE,aAAa,EAAE,MAAM,CAAC,CAAC;IAEzF,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAG/B"}
@@ -2,9 +2,8 @@ import type { Input } from "../index.js";
2
2
  export type { Input };
3
3
  import { Ruleset } from "./ruleset.js";
4
4
  export declare class Rulesets {
5
- private readonly input;
6
5
  private readonly rulesets;
7
- constructor(input: Input["rules"]);
6
+ constructor(rules: Input["rules"]);
8
7
  ruleset(scope: string): Ruleset;
9
8
  }
10
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/factory/rulesets/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,IAAI,CAAC;AAEhC,YAAY,EAAE,KAAK,EAAE,CAAC;AAEtB,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,qBAAa,QAAQ;IAGP,OAAO,CAAC,QAAQ,CAAC,KAAK;IAFlC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA8B;gBAE1B,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC;IAQ3C,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;CAMvC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/factory/rulesets/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,IAAI,CAAC;AAEhC,YAAY,EAAE,KAAK,EAAE,CAAC;AAEtB,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,qBAAa,QAAQ;IACnB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA8B;gBAE3C,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC;IAQ1B,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;CAMvC"}
@@ -1,12 +1,10 @@
1
1
  import { Ruleset } from "./ruleset.js";
2
2
  export class Rulesets {
3
- input;
4
3
  rulesets = new Map();
5
- constructor(input) {
6
- this.input = input;
7
- const { rules, overrides } = this.input, scopes = Object.keys(rules);
4
+ constructor(rules) {
5
+ const { rules: base, overrides } = rules, scopes = Object.keys(base);
8
6
  for (const scope of scopes)
9
- this.rulesets.set(scope, new Ruleset(scope, rules[scope], overrides[scope]));
7
+ this.rulesets.set(scope, new Ruleset(scope, base[scope], overrides[scope]));
10
8
  }
11
9
  ruleset(scope) {
12
10
  if (!this.rulesets.has(scope))
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/factory/rulesets/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,MAAM,OAAO,QAAQ;IAGU;IAFZ,QAAQ,GAAG,IAAI,GAAG,EAAmB,CAAC;IAEvD,YAA6B,KAAqB;QAArB,UAAK,GAAL,KAAK,CAAgB;QAChD,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,KAAK,EACvC,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAA2B,CAAC;QAEtD,KAAK,MAAM,KAAK,IAAI,MAAM;YACxB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACjF,CAAC;IAEM,OAAO,CAAC,KAAa;QAC1B,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC;YAC3B,MAAM,IAAI,cAAc,CAAC,gCAAgC,KAAK,EAAE,CAAC,CAAC;QAEpE,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAY,CAAC;IAC7C,CAAC;CACF"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/factory/rulesets/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,MAAM,OAAO,QAAQ;IACF,QAAQ,GAAG,IAAI,GAAG,EAAmB,CAAC;IAEvD,YAAY,KAAqB;QAC/B,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,KAAK,EACxC,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAA0B,CAAC;QAEpD,KAAK,MAAM,KAAK,IAAI,MAAM;YACxB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAChF,CAAC;IAEM,OAAO,CAAC,KAAa;QAC1B,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC;YAC3B,MAAM,IAAI,cAAc,CAAC,gCAAgC,KAAK,EAAE,CAAC,CAAC;QAEpE,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAY,CAAC;IAC7C,CAAC;CACF"}
package/dist/index.d.ts CHANGED
@@ -3,7 +3,7 @@ import type { Input } from "./input/index.js";
3
3
  import type { Output } from "./output.js";
4
4
  export type { Input, Output };
5
5
  import { scopes } from "./scopes.js";
6
- export default function (plugins: Input["plugins"], parsers: Input["parsers"], files: Input["files"], rules: Input["rules"]): Output;
6
+ export default function (input: Input): Output;
7
7
  declare namespace Core {
8
8
  type Scopes = typeof scopes[number];
9
9
  namespace Input {
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAEtC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAEvC,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;AAE9B,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAOlC,MAAM,CAAC,OAAO,WACZ,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,EACzB,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,EACzB,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,EACrB,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,GACpB,MAAM,CAkER;AAGD,kBAAU,IAAI,CAAC;IACb,KAAY,MAAM,GAAG,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC;IAC3C,UAAiB,KAAK,CAAC;QACrB,KAAY,OAAO,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC;QACvC,KAAY,OAAO,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC;QACvC,KAAY,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC;QACnC,UAAiB,KAAK,CAAC;YACrB,KAAY,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC;YAClC,KAAY,QAAQ,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC;SAC1C;QACD,KAAY,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC;QACnC,UAAiB,KAAK,CAAC;YACrB,KAAY,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC;YAClC,KAAY,SAAS,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC;SAC5C;KACF;IACD,KAAY,MAAM,GAAG,MAAM,EAAE,CAAC;CAC/B;AAED,YAAY,EAAE,IAAI,EAAE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAEtC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAEvC,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;AAE9B,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAOlC,MAAM,CAAC,OAAO,WACZ,KAAK,EAAE,KAAK,GACX,MAAM,CAmER;AAGD,kBAAU,IAAI,CAAC;IACb,KAAY,MAAM,GAAG,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC;IAC3C,UAAiB,KAAK,CAAC;QACrB,KAAY,OAAO,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC;QACvC,KAAY,OAAO,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC;QACvC,KAAY,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC;QACnC,UAAiB,KAAK,CAAC;YACrB,KAAY,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC;YAClC,KAAY,QAAQ,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC;SAC1C;QACD,KAAY,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC;QACnC,UAAiB,KAAK,CAAC;YACrB,KAAY,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC;YAClC,KAAY,SAAS,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC;SAC5C;KACF;IACD,KAAY,MAAM,GAAG,MAAM,EAAE,CAAC;CAC/B;AAED,YAAY,EAAE,IAAI,EAAE,CAAC"}
package/dist/index.js CHANGED
@@ -1,24 +1,24 @@
1
1
  import { scopes } from "./scopes.js";
2
2
  import { Files, Rulesets, Options, } from "./factory/index.js";
3
- export default function (plugins, parsers, files, rules) {
3
+ export default function (input) {
4
4
  try {
5
- const F = new Files(files), R = new Rulesets(rules), options = {
5
+ const files = new Files(input.files), rulesets = new Rulesets(input.rules), { parsers, plugins } = input, options = {
6
6
  js: new Options
7
- .js({ "@stylistic": plugins["@stylistic"] }, [], F.files("js"), R.ruleset("js")).configs,
7
+ .js({ "@stylistic": plugins["@stylistic"] }, [], files.files("js"), rulesets.ruleset("js")).configs,
8
8
  ts: new Options
9
- .ts({ "@stylistic": plugins["@stylistic"], "@typescript-eslint": plugins["@typescript-eslint"] }, [parsers.ts], F.files("ts"), R.ruleset("ts")).configs,
9
+ .ts({ "@stylistic": plugins["@stylistic"], "@typescript-eslint": plugins["@typescript-eslint"] }, [parsers.ts], files.files("ts"), rulesets.ruleset("ts")).configs,
10
10
  svelte: new Options
11
- .svelte({ "@stylistic": plugins["@stylistic"], "@typescript-eslint": plugins["@typescript-eslint"], svelte: plugins.svelte }, [parsers.svelte, parsers.ts], F.files("svelte"), R.ruleset("svelte")).configs,
11
+ .svelte({ "@stylistic": plugins["@stylistic"], "@typescript-eslint": plugins["@typescript-eslint"], svelte: plugins.svelte }, [parsers.svelte, parsers.ts], files.files("svelte"), rulesets.ruleset("svelte")).configs,
12
12
  mocha: new Options
13
- .mocha({ "@stylistic": plugins["@stylistic"], "@typescript-eslint": plugins["@typescript-eslint"], mocha: plugins.mocha }, [parsers.ts], F.files("mocha"), R.ruleset("mocha")).configs,
13
+ .mocha({ "@stylistic": plugins["@stylistic"], "@typescript-eslint": plugins["@typescript-eslint"], mocha: plugins.mocha }, [parsers.ts], files.files("mocha"), rulesets.ruleset("mocha")).configs,
14
14
  html: new Options
15
- .html({ "@html-eslint": plugins["@html-eslint"] }, [parsers.html], F.files("html"), R.ruleset("html")).configs,
15
+ .html({ "@html-eslint": plugins["@html-eslint"] }, [parsers.html], files.files("html"), rulesets.ruleset("html")).configs,
16
16
  json: new Options
17
- .json({ jsonc: plugins.jsonc }, [parsers.jsonc], F.files("json"), R.ruleset("json")).configs,
17
+ .json({ jsonc: plugins.jsonc }, [parsers.jsonc], files.files("json"), rulesets.ruleset("json")).configs,
18
18
  jsonc: new Options
19
- .jsonc({ jsonc: plugins.jsonc }, [parsers.jsonc], F.files("jsonc"), R.ruleset("jsonc")).configs,
19
+ .jsonc({ jsonc: plugins.jsonc }, [parsers.jsonc], files.files("jsonc"), rulesets.ruleset("jsonc")).configs,
20
20
  yml: new Options
21
- .yml({ yml: plugins.yml }, [parsers.yml], F.files("yml"), R.ruleset("yml")).configs,
21
+ .yml({ yml: plugins.yml }, [parsers.yml], files.files("yml"), rulesets.ruleset("yml")).configs,
22
22
  };
23
23
  return scopes.flatMap(scope => options[scope]);
24
24
  }
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/output.d.ts CHANGED
@@ -12,7 +12,7 @@ export type Output = ({
12
12
  ecmaVersion?: "latest";
13
13
  globals?: Table<true>;
14
14
  parser?: unknown;
15
- parserOptions?: Record<string, unknown>;
15
+ parserOptions?: Table;
16
16
  };
17
17
  plugins: Table<Record<"configs", unknown>>;
18
18
  processor?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../src/output.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,GAAG,CAAC;AAE/B,MAAM,MAAM,MAAM,GAAG,CACnB;IACE,IAAI,EAAE,UAAU,MAAM,EAAE,CAAC;IACzB,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAClD,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,aAAa,EAAE;QACb,cAAc,EAAE,IAAI,CAAC;QACrB,6BAA6B,EAAE,OAAO,CAAC;KACxC,CAAC;IACF,eAAe,EAAE;QACf,UAAU,CAAC,EACP,QAAQ,GACR,QAAQ,CAAC;QACb,WAAW,CAAC,EAAE,QAAQ,CAAC;QACvB,OAAO,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QACtB,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACzC,CAAC;IACF,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;IAC3C,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CACF,EAAE,CAAC"}
1
+ {"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../src/output.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,GAAG,CAAC;AAE/B,MAAM,MAAM,MAAM,GAAG,CACnB;IACE,IAAI,EAAE,UAAU,MAAM,EAAE,CAAC;IACzB,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAClD,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,aAAa,EAAE;QACb,cAAc,EAAE,IAAI,CAAC;QACrB,6BAA6B,EAAE,OAAO,CAAC;KACxC,CAAC;IACF,eAAe,EAAE;QACf,UAAU,CAAC,EACP,QAAQ,GACR,QAAQ,CAAC;QACb,WAAW,CAAC,EAAE,QAAQ,CAAC;QACvB,OAAO,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QACtB,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,aAAa,CAAC,EAAE,KAAK,CAAC;KACvB,CAAC;IACF,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;IAC3C,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CACF,EAAE,CAAC"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "_schemaVersion": "20.18.0",
3
3
  "name": "@eslinted/core",
4
- "version": "5.0.0-rc.3",
4
+ "version": "5.0.0-rc.5",
5
5
  "description": "Core ESLint flat config factory npm package `linted`.",
6
6
  "keywords": [],
7
7
  "repository": "github:jimmy-zhening-luo/linted-core",
@@ -3,15 +3,15 @@ import type { Input } from ".";
3
3
  export class Files {
4
4
  private readonly _files = new Map<string, string[]>();
5
5
 
6
- constructor(private readonly input: Input["files"]) {
7
- const { files, includes } = this.input,
8
- scopes = Object.keys(files) as (keyof typeof files)[];
6
+ constructor(files: Input["files"]) {
7
+ const { files: base, includes } = files,
8
+ scopes = Object.keys(base) as (keyof typeof base)[];
9
9
 
10
10
  for (const scope of scopes)
11
11
  this._files.set(
12
12
  scope,
13
13
  [
14
- ...files[scope],
14
+ ...base[scope],
15
15
  ...scope in includes ? (includes[scope] as string[]) : [],
16
16
  ],
17
17
  );
@@ -30,7 +30,7 @@ export default abstract class Option<
30
30
 
31
31
  constructor(
32
32
  public readonly plugins: Plugins<Plugin>,
33
- public readonly parser: Tuple<unknown, ParserCount>,
33
+ public readonly parser: Tuple<ParserCount, unknown>,
34
34
  public readonly files: string[],
35
35
  public readonly ruleset: Ruleset,
36
36
  ) {}
@@ -7,12 +7,12 @@ import { Ruleset } from "./ruleset";
7
7
  export class Rulesets {
8
8
  private readonly rulesets = new Map<string, Ruleset>();
9
9
 
10
- constructor(private readonly input: Input["rules"]) {
11
- const { rules, overrides } = this.input,
12
- scopes = Object.keys(rules) as (keyof typeof rules)[];
10
+ constructor(rules: Input["rules"]) {
11
+ const { rules: base, overrides } = rules,
12
+ scopes = Object.keys(base) as (keyof typeof base)[];
13
13
 
14
14
  for (const scope of scopes)
15
- this.rulesets.set(scope, new Ruleset(scope, rules[scope], overrides[scope]));
15
+ this.rulesets.set(scope, new Ruleset(scope, base[scope], overrides[scope]));
16
16
  }
17
17
 
18
18
  public ruleset(scope: string): Ruleset {
package/src/index.ts CHANGED
@@ -13,70 +13,68 @@ import {
13
13
  } from "./factory";
14
14
 
15
15
  export default function (
16
- plugins: Input["plugins"],
17
- parsers: Input["parsers"],
18
- files: Input["files"],
19
- rules: Input["rules"],
16
+ input: Input,
20
17
  ): Output {
21
18
  try {
22
- const F = new Files(files),
23
- R = new Rulesets(rules),
19
+ const files = new Files(input.files),
20
+ rulesets = new Rulesets(input.rules),
21
+ { parsers, plugins } = input,
24
22
  options: { [S in typeof scopes[number]]: InstanceType<typeof Options[S]>["configs"] } = {
25
23
  js: new Options
26
24
  .js(
27
25
  { "@stylistic": plugins["@stylistic"] },
28
26
  [],
29
- F.files("js"),
30
- R.ruleset("js"),
27
+ files.files("js"),
28
+ rulesets.ruleset("js"),
31
29
  ).configs,
32
30
  ts: new Options
33
31
  .ts(
34
32
  { "@stylistic": plugins["@stylistic"], "@typescript-eslint": plugins["@typescript-eslint"] },
35
33
  [parsers.ts],
36
- F.files("ts"),
37
- R.ruleset("ts"),
34
+ files.files("ts"),
35
+ rulesets.ruleset("ts"),
38
36
  ).configs,
39
37
  svelte: new Options
40
38
  .svelte(
41
39
  { "@stylistic": plugins["@stylistic"], "@typescript-eslint": plugins["@typescript-eslint"], svelte: plugins.svelte },
42
40
  [parsers.svelte, parsers.ts],
43
- F.files("svelte"),
44
- R.ruleset("svelte"),
41
+ files.files("svelte"),
42
+ rulesets.ruleset("svelte"),
45
43
  ).configs,
46
44
  mocha: new Options
47
45
  .mocha(
48
46
  { "@stylistic": plugins["@stylistic"], "@typescript-eslint": plugins["@typescript-eslint"], mocha: plugins.mocha },
49
47
  [parsers.ts],
50
- F.files("mocha"),
51
- R.ruleset("mocha"),
48
+ files.files("mocha"),
49
+ rulesets.ruleset("mocha"),
52
50
  ).configs,
53
51
  html: new Options
54
52
  .html(
55
53
  { "@html-eslint": plugins["@html-eslint"] },
56
54
  [parsers.html],
57
- F.files("html"),
58
- R.ruleset("html"),
55
+ files.files("html"),
56
+ rulesets.ruleset("html"),
59
57
  ).configs,
60
58
  json: new Options
61
59
  .json(
62
60
  { jsonc: plugins.jsonc },
63
61
  [parsers.jsonc],
64
- F.files("json"),
65
- R.ruleset("json"),
62
+ files.files("json"),
63
+ rulesets.ruleset("json"),
66
64
  ).configs,
67
65
  jsonc: new Options
68
66
  .jsonc(
69
67
  { jsonc: plugins.jsonc },
70
68
  [parsers.jsonc],
71
- F.files("jsonc"),
72
- R.ruleset("jsonc"),
69
+ files.files("jsonc"),
70
+ rulesets.ruleset("jsonc"),
73
71
  ).configs,
74
72
  yml: new Options
75
73
  .yml(
76
74
  { yml: plugins.yml },
77
75
  [parsers.yml],
78
- F.files("yml"),
79
- R.ruleset("yml"),
76
+ files.files("yml"),
77
+ rulesets.ruleset("yml"),
80
78
  ).configs,
81
79
  };
82
80
 
package/src/output.ts CHANGED
@@ -16,7 +16,7 @@ export type Output = (
16
16
  ecmaVersion?: "latest";
17
17
  globals?: Table<true>;
18
18
  parser?: unknown;
19
- parserOptions?: Record<string, unknown>; // TODO: Change to Table<unknown> after lib update
19
+ parserOptions?: Table;
20
20
  };
21
21
  plugins: Table<Record<"configs", unknown>>;
22
22
  processor?: string;
@@ -3,6 +3,6 @@ declare type Property<K extends string, OK extends string, V> = literalful<K> ex
3
3
  : Recordful<K, V>
4
4
  & (
5
5
  literalful<OK> extends never
6
- ? object
6
+ ? Recordful<K, V>
7
7
  : Particord<OK, V>
8
8
  );
@@ -0,0 +1,11 @@
1
+ declare type ArrayN<N extends number = 0, I = string> = [I] extends [never]
2
+ ? never
3
+ : N extends number
4
+ ? N extends 0 /* TODO: constrain posint */
5
+ ? [...I[]]
6
+ : ArrayBuilder<N, I>
7
+ : never;
8
+
9
+ type ArrayBuilder<N extends number, I, H extends I[] = []> = H["length"] extends N
10
+ ? [...H, ...I[]]
11
+ : ArrayBuilder<N, I, [...H, I]>;
@@ -0,0 +1,2 @@
1
+ declare type Arrayful<I = string> = ArrayN<1, I>;
2
+ declare type Arrayfully<I = string> = ArrayN<2, I>;
@@ -0,0 +1,10 @@
1
+ declare type Monad<I = string> = Tuple<1, I>;
2
+ declare type Dyad<I = string> = Tuple<2, I>;
3
+ declare type Triad<I = string> = Tuple<3, I>;
4
+ declare type Quad<I = string> = Tuple<4, I>;
5
+ declare type Pentad<I = string> = Tuple<5, I>;
6
+ declare type Hexad<I = string> = Tuple<6, I>;
7
+ declare type Heptad<I = string> = Tuple<7, I>;
8
+ declare type Octad<I = string> = Tuple<8, I>;
9
+ declare type Nonad<I = string> = Tuple<9, I>;
10
+ declare type Decad<I = string> = Tuple<10, I>;
@@ -0,0 +1,26 @@
1
+ declare type Tuple<N extends number = 2, I = string> = [I] extends [never]
2
+ ? never
3
+ : N extends number
4
+ ? N extends 0 /* TODO: constrain posint */
5
+ ? readonly []
6
+ : TupleBuilder<N, I>
7
+ : never;
8
+
9
+ type TupleBuilder<N extends number, I, H extends readonly I[] = readonly []> = H["length"] extends N
10
+ ? H
11
+ : TupleBuilder<N, I, readonly [...H, I]>;
12
+
13
+ declare namespace Tuple {
14
+ export type T = Tuple;
15
+ export type T0 = Tuple<0>;
16
+ export type T0a = Tuple<1>;
17
+ export type T0b = Tuple<3>;
18
+ export type T1 = Tuple<2, string | number>;
19
+ export type T2 = Tuple<2 | 3>;
20
+ export type T3 = Tuple<2 | 3, string | number>;
21
+ export type T4 = Tuple<never>;
22
+ export type T4a = Tuple<0>;
23
+ export type T4b = Tuple<0 | 1>;
24
+ export type T4c = Tuple<1, never>;
25
+ export type T4d = Tuple<never, never>;
26
+ }
@@ -7,8 +7,8 @@ declare namespace ArrayLength {
7
7
  export type T0d = ArrayLength<readonly string[]>;
8
8
  export type T0c = ArrayLength<[string?, string?]>;
9
9
  export type T1 = ArrayLength<[string] | [string, string?, string?]>;
10
- export type T1b = ArrayLength<[string] | [string?, string?, string?]>; // 0 | 1 | 2 | 3 -- empty Tuple -> length: 0 is just 0, so does not consume other possible lengths
11
- export type T1c = ArrayLength<string[] | [string, string, string]>; // 0 -- Array -> length: number coerced to length 0 but consumes all other possible lengths
10
+ export type T1b = ArrayLength<[string] | [string?, string?, string?]>; // 0 | 1 | 2 | 3 -- empty tuple -> length: 0 is just 0, so does not consume other possible lengths
11
+ export type T1c = ArrayLength<string[] | [string, string, string]>; // 0 -- array -> length: number coerced to length 0 but consumes all other possible lengths
12
12
  }
13
13
 
14
14
  declare namespace NotArrayLength {
@@ -12,11 +12,11 @@ declare namespace MonadType {
12
12
  export type T6 = MonadType<string[] | int[]>;
13
13
  export type T7 = MonadType<(string | int)[]>;
14
14
  export type T18 = MonadType<[string] | [5, 10]>;
15
- export type T8a = MonadType<Tuple<boolean>>;
16
- export type T8b = MonadType<ArrayN<string, 3>>;
15
+ export type T8a = MonadType<Tuple>;
16
+ export type T8b = MonadType<ArrayN<3>>;
17
17
  export type T8c = MonadType<
18
- | ArrayN<string, 3>
19
- | Tuple<boolean>
18
+ | ArrayN<3>
19
+ | Tuple
20
20
  | [string]
21
21
  | [5, 10]
22
22
  | [5, 13]
@@ -42,7 +42,7 @@ declare namespace NotMonadType {
42
42
  | readonly [5, 10]
43
43
  | readonly string[]
44
44
  >;
45
- export type N31 = MonadType<ArrayN<string>>;
45
+ export type N31 = MonadType<ArrayN>;
46
46
  export type N32 = MonadType<[string?]>;
47
47
  export type N33 = MonadType<readonly [string?]>;
48
48
  }
@@ -0,0 +1,27 @@
1
+ declare type Stringify<C> = C extends abstract new (...args: infer A) => infer O
2
+ ? O extends { string: infer S extends string }
3
+ ? S
4
+ : O extends { toString: () => infer S extends string }
5
+ ? S
6
+ : never
7
+ : C extends ((...args: infer A) => infer S extends string)
8
+ ? S
9
+ : C extends { string: infer S extends string }
10
+ ? S
11
+ : C extends { toString: () => infer S extends string }
12
+ ? S
13
+ : never;
14
+
15
+ declare namespace Stringify {
16
+ export type T = Stringify<CharString<"OK-Instance">>;
17
+ export type T0 = Stringify<CharStringCtor>;
18
+ export type T1 = Stringify<charstringfunc<"OK-Function">>;
19
+
20
+ type CharStringCtor = abstract new () => CharString<"OK-Constructor">;
21
+
22
+ interface CharString<Validator extends string> {
23
+ readonly string: valid<stringful, [Validator, "string"]>;
24
+ }
25
+
26
+ type charstringfunc<Validator extends string> = () => valid<stringful, [Validator, "string"]>;
27
+ }
@@ -0,0 +1,13 @@
1
+ declare namespace Nullable {
2
+ type OK = Test<TF> | 0;
3
+ type TF = {
4
+ T: {
5
+ T0: Nullable<string>;
6
+ T1: Nullable<string | null>;
7
+ T2: Nullable<string | undefined>;
8
+ T3: Nullable<string | null | undefined>;
9
+ T4: Nullable<string | int | null>;
10
+ T6: Nullable<NonNullable<undefined | string>>;
11
+ };
12
+ };
13
+ }
@@ -0,0 +1,13 @@
1
+ declare namespace _Null {
2
+ type OK = Test<TF> | 0;
3
+ type TF = {
4
+ T: {
5
+ T0: Null<string>;
6
+ T1: Null<string | null>;
7
+ T2: Null<string | undefined>;
8
+ T3: Null<string | null | undefined>;
9
+ T4: Null<string | int | null>;
10
+ T6: Null<NonNullable<undefined | string>>;
11
+ };
12
+ };
13
+ }
@@ -0,0 +1,2 @@
1
+ declare type Test<TF extends { T: unknown; F?: unknown }> = (OmitNever<TF["T"]> extends TF["T"] ? true : never) & (object extends OmitNever<TF["F"]> ? true : undefined extends OmitNever<TF["F"]> ? true : never);
2
+ declare type OmitNever<R> = { [K in keyof R as R[K] extends never ? never : K]: R[K] };
@@ -0,0 +1,7 @@
1
+ declare const v: unique symbol;
2
+ declare type valid<T, V extends readonly string[]> =
3
+ & T
4
+ & (Chain<V, ":", true> extends never
5
+ ? never
6
+ : { [v]: Chain<V, ":", true> })
7
+ ;
@@ -0,0 +1 @@
1
+ declare type vstring<V extends string> = valid<stringful, [V, "string"]>;
@@ -1,12 +0,0 @@
1
- // TODO: constrain to positive integer
2
- declare type ArrayN<I, N extends number = 0> = [I] extends [never]
3
- ? never
4
- : N extends number
5
- ? N extends 0
6
- ? [...I[]]
7
- : ArrayBuilder<I, N>
8
- : never;
9
-
10
- type ArrayBuilder<I, N extends number, H extends I[] = []> = H["length"] extends N
11
- ? [...H, ...I[]]
12
- : ArrayBuilder<I, N, [...H, I]>;
@@ -1 +0,0 @@
1
- declare type Arrayful<I> = ArrayN<I, 1>;
@@ -1,9 +0,0 @@
1
- declare type Monad<I> = Tuple<I, 1>;
2
- declare type Triad<I> = Tuple<I, 3>;
3
- declare type Quad<I> = Tuple<I, 4>;
4
- declare type Pentad<I> = Tuple<I, 5>;
5
- declare type Hexad<I> = Tuple<I, 6>;
6
- declare type Heptad<I> = Tuple<I, 7>;
7
- declare type Octad<I> = Tuple<I, 8>;
8
- declare type Nonad<I> = Tuple<I, 9>;
9
- declare type Decad<I> = Tuple<I, 10>;
@@ -1,27 +0,0 @@
1
- // TODO: constrain to positive integer
2
- declare type Tuple<I, N extends number = 2> = [I] extends [never]
3
- ? never
4
- : N extends number
5
- ? N extends 0
6
- ? readonly []
7
- : TupleBuilder<I, Numbered<N>>
8
- : never;
9
-
10
- type TupleBuilder<I, N, H extends readonly I[] = readonly []> = H["length"] extends N
11
- ? H
12
- : TupleBuilder<I, N, readonly [...H, I]>;
13
-
14
- declare namespace Tuple {
15
- export type T = Tuple<string>;
16
- export type T0 = Tuple<string, 0>;
17
- export type T0a = Tuple<string, 1>;
18
- export type T0b = Tuple<string, 3>;
19
- export type T1 = Tuple<string | number>;
20
- export type T2 = Tuple<string, 2 | 3>;
21
- export type T3 = Tuple<string | number, 2 | 3>;
22
- export type T4 = Tuple<string, never>;
23
- export type T4a = Tuple<string, 0>;
24
- export type T4b = Tuple<string, 0 | 1>;
25
- }
26
-
27
- type NN = Numbered<5 | 10>;
@@ -1,13 +0,0 @@
1
- declare type Stringify<C> = C extends abstract new (...args: infer A) => infer O
2
- ? O extends { string: infer S extends string }
3
- ? S
4
- : O extends { toString: () => infer S extends string }
5
- ? S
6
- : never
7
- : C extends ((...args: infer A) => infer S extends string)
8
- ? S
9
- : C extends { string: infer S extends string }
10
- ? S
11
- : C extends { toString: () => infer S extends string }
12
- ? S
13
- : never;
File without changes