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

Sign up to get free protection for your applications and to get access to all the features.
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