@shivaedev/quality 0.18.0 → 0.19.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 (203) hide show
  1. package/CHANGELOG.md +43 -0
  2. package/README.md +143 -536
  3. package/biome/declarations.json +0 -45
  4. package/biome/plugins/constant-names.grit +1 -1
  5. package/biome/plugins/effect-fn-functions.grit +1 -1
  6. package/biome/preset.json +16 -9
  7. package/dist/biome/nativeEffectCall.d.ts +4 -0
  8. package/dist/biome/nativeEffectCall.d.ts.map +1 -0
  9. package/dist/biome/nativeEffectCall.js +34 -0
  10. package/dist/biome/nativeEffectCall.js.map +1 -0
  11. package/dist/biome/recognizeDiagnostics.d.ts +3 -0
  12. package/dist/biome/recognizeDiagnostics.d.ts.map +1 -0
  13. package/dist/biome/recognizeDiagnostics.js +58 -0
  14. package/dist/biome/recognizeDiagnostics.js.map +1 -0
  15. package/dist/biome/report.d.ts +10 -0
  16. package/dist/biome/report.d.ts.map +1 -1
  17. package/dist/biome/report.js +23 -5
  18. package/dist/biome/report.js.map +1 -1
  19. package/dist/biome/syntax.d.ts +12 -0
  20. package/dist/biome/syntax.d.ts.map +1 -0
  21. package/dist/biome/syntax.js +29 -0
  22. package/dist/biome/syntax.js.map +1 -0
  23. package/dist/cli/args.d.ts +1 -1
  24. package/dist/cli/args.d.ts.map +1 -1
  25. package/dist/cli/args.js +2 -2
  26. package/dist/cli/baseline.d.ts +1 -1
  27. package/dist/cli/baseline.d.ts.map +1 -1
  28. package/dist/cli/baseline.js.map +1 -1
  29. package/dist/cli/fix.d.ts +6 -6
  30. package/dist/cli/fix.d.ts.map +1 -1
  31. package/dist/cli/fix.js +1 -1
  32. package/dist/cli/fix.js.map +1 -1
  33. package/dist/cli/run-main.d.ts +1 -1
  34. package/dist/cli/run-main.d.ts.map +1 -1
  35. package/dist/cli/run-main.js.map +1 -1
  36. package/dist/config/decode.d.ts +3 -7
  37. package/dist/config/decode.d.ts.map +1 -1
  38. package/dist/config/decode.js +5 -3
  39. package/dist/config/decode.js.map +1 -1
  40. package/dist/config/load.d.ts +0 -2
  41. package/dist/config/load.d.ts.map +1 -1
  42. package/dist/config/load.js +11 -7
  43. package/dist/config/load.js.map +1 -1
  44. package/dist/config/resolve.d.ts.map +1 -1
  45. package/dist/config/resolve.js +8 -12
  46. package/dist/config/resolve.js.map +1 -1
  47. package/dist/config.d.ts +10 -16
  48. package/dist/config.d.ts.map +1 -1
  49. package/dist/config.js.map +1 -1
  50. package/dist/decoded.d.ts +4 -4
  51. package/dist/decoded.d.ts.map +1 -1
  52. package/dist/decoded.js.map +1 -1
  53. package/dist/engine/session.js.map +1 -1
  54. package/dist/engine/violation.d.ts +1 -1
  55. package/dist/engine/violation.d.ts.map +1 -1
  56. package/dist/engine/violation.js.map +1 -1
  57. package/dist/hooks/preCommit.d.ts +2 -2
  58. package/dist/hooks/preCommit.d.ts.map +1 -1
  59. package/dist/hooks/preCommit.js +24 -34
  60. package/dist/hooks/preCommit.js.map +1 -1
  61. package/dist/imports/browserGlobals.d.ts +3 -0
  62. package/dist/imports/browserGlobals.d.ts.map +1 -0
  63. package/dist/imports/browserGlobals.js +125 -0
  64. package/dist/imports/browserGlobals.js.map +1 -0
  65. package/dist/imports/browserNames.d.ts +2 -0
  66. package/dist/imports/browserNames.d.ts.map +1 -0
  67. package/dist/imports/browserNames.js +78 -0
  68. package/dist/imports/browserNames.js.map +1 -0
  69. package/dist/imports/fences/check.d.ts +4 -0
  70. package/dist/imports/fences/check.d.ts.map +1 -0
  71. package/dist/imports/fences/check.js +10 -0
  72. package/dist/imports/fences/check.js.map +1 -0
  73. package/dist/imports/fences/declarations.d.ts +5 -0
  74. package/dist/imports/fences/declarations.d.ts.map +1 -0
  75. package/dist/imports/fences/declarations.js +29 -0
  76. package/dist/imports/fences/declarations.js.map +1 -0
  77. package/dist/imports/fences/discover.d.ts +5 -0
  78. package/dist/imports/fences/discover.d.ts.map +1 -0
  79. package/dist/imports/fences/discover.js +41 -0
  80. package/dist/imports/fences/discover.js.map +1 -0
  81. package/dist/imports/graph.js +2 -2
  82. package/dist/imports/graph.js.map +1 -1
  83. package/dist/imports/projects.js.map +1 -1
  84. package/dist/imports/runtime.d.ts +5 -0
  85. package/dist/imports/runtime.d.ts.map +1 -0
  86. package/dist/imports/runtime.js +32 -0
  87. package/dist/imports/runtime.js.map +1 -0
  88. package/dist/imports/workspace.d.ts +1 -1
  89. package/dist/imports/workspace.d.ts.map +1 -1
  90. package/dist/imports/workspace.js +5 -1
  91. package/dist/imports/workspace.js.map +1 -1
  92. package/dist/inventory/collect.d.ts.map +1 -1
  93. package/dist/inventory/collect.js +8 -1
  94. package/dist/inventory/collect.js.map +1 -1
  95. package/dist/inventory/trackedPaths.d.ts +3 -0
  96. package/dist/inventory/trackedPaths.d.ts.map +1 -0
  97. package/dist/inventory/trackedPaths.js +26 -0
  98. package/dist/inventory/trackedPaths.js.map +1 -0
  99. package/dist/inventory/walk.d.ts +4 -4
  100. package/dist/inventory/walk.d.ts.map +1 -1
  101. package/dist/inventory/walk.js +32 -12
  102. package/dist/inventory/walk.js.map +1 -1
  103. package/dist/rules/built-in.d.ts +2 -3
  104. package/dist/rules/built-in.d.ts.map +1 -1
  105. package/dist/rules/built-in.js +6 -0
  106. package/dist/rules/built-in.js.map +1 -1
  107. package/dist/rules/comments/max-per-file.js +1 -1
  108. package/dist/rules/comments/max-per-file.js.map +1 -1
  109. package/dist/rules/files/folderNames.js +1 -1
  110. package/dist/rules/files/folderNames.js.map +1 -1
  111. package/dist/rules/files/otherNames.d.ts.map +1 -1
  112. package/dist/rules/files/otherNames.js +1 -10
  113. package/dist/rules/files/otherNames.js.map +1 -1
  114. package/dist/rules/imports/bundleInputs.d.ts +7 -0
  115. package/dist/rules/imports/bundleInputs.d.ts.map +1 -0
  116. package/dist/rules/imports/bundleInputs.js +77 -0
  117. package/dist/rules/imports/bundleInputs.js.map +1 -0
  118. package/dist/rules/imports/fences.d.ts +1 -2
  119. package/dist/rules/imports/fences.d.ts.map +1 -1
  120. package/dist/rules/imports/fences.js +4 -14
  121. package/dist/rules/imports/fences.js.map +1 -1
  122. package/dist/rules/imports/manifest.d.ts +2 -0
  123. package/dist/rules/imports/manifest.d.ts.map +1 -0
  124. package/dist/rules/imports/manifest.js +98 -0
  125. package/dist/rules/imports/manifest.js.map +1 -0
  126. package/dist/rules/imports/noTestCode.d.ts +2 -0
  127. package/dist/rules/imports/noTestCode.d.ts.map +1 -0
  128. package/dist/rules/imports/noTestCode.js +17 -0
  129. package/dist/rules/imports/noTestCode.js.map +1 -0
  130. package/dist/rules/imports/runtime.d.ts +2 -0
  131. package/dist/rules/imports/runtime.d.ts.map +1 -0
  132. package/dist/rules/imports/runtime.js +41 -0
  133. package/dist/rules/imports/runtime.js.map +1 -0
  134. package/dist/rules/max-lines.d.ts +0 -1
  135. package/dist/rules/max-lines.d.ts.map +1 -1
  136. package/dist/rules/max-lines.js +3 -10
  137. package/dist/rules/max-lines.js.map +1 -1
  138. package/dist/rules/suppressions/biome-overrides.d.ts.map +1 -1
  139. package/dist/rules/suppressions/biome-overrides.js +21 -4
  140. package/dist/rules/suppressions/biome-overrides.js.map +1 -1
  141. package/dist/rules/suppressions/biomeRecommended.js +2 -2
  142. package/dist/rules/suppressions/biomeRecommended.js.map +1 -1
  143. package/dist/rules/suppressions/no-inline.js +1 -1
  144. package/dist/rules/suppressions/no-inline.js.map +1 -1
  145. package/dist/standard-schema.d.ts +1 -1
  146. package/dist/standard-schema.d.ts.map +1 -1
  147. package/dist/standard-schema.js +10 -2
  148. package/dist/standard-schema.js.map +1 -1
  149. package/dist/vitest.d.ts +1 -3
  150. package/dist/vitest.d.ts.map +1 -1
  151. package/dist/vitest.js +11 -6
  152. package/dist/vitest.js.map +1 -1
  153. package/docs/debt-and-hooks.md +90 -0
  154. package/docs/modules.md +253 -0
  155. package/docs/naming.md +126 -0
  156. package/docs/north-star.md +61 -0
  157. package/docs/roadmap.md +37 -0
  158. package/docs/rules.md +308 -0
  159. package/docs/tooling.md +120 -0
  160. package/package.json +7 -5
  161. package/src/biome/nativeEffectCall.ts +45 -0
  162. package/src/biome/recognizeDiagnostics.ts +67 -0
  163. package/src/biome/report.ts +24 -6
  164. package/src/biome/syntax.ts +36 -0
  165. package/src/cli/args.ts +2 -2
  166. package/src/cli/baseline.ts +3 -3
  167. package/src/cli/fix.ts +13 -13
  168. package/src/cli/run-main.ts +1 -1
  169. package/src/config/decode.ts +7 -3
  170. package/src/config/load.ts +15 -9
  171. package/src/config/resolve.ts +10 -15
  172. package/src/config.ts +8 -15
  173. package/src/decoded.ts +3 -3
  174. package/src/engine/session.ts +3 -3
  175. package/src/engine/violation.ts +2 -2
  176. package/src/hooks/preCommit.ts +30 -39
  177. package/src/imports/browserGlobals.ts +142 -0
  178. package/src/imports/browserNames.ts +80 -0
  179. package/src/imports/fences/check.ts +12 -0
  180. package/src/imports/fences/declarations.ts +38 -0
  181. package/src/imports/fences/discover.ts +37 -0
  182. package/src/imports/graph.ts +2 -2
  183. package/src/imports/projects.ts +2 -2
  184. package/src/imports/runtime.ts +37 -0
  185. package/src/imports/workspace.ts +7 -2
  186. package/src/inventory/collect.ts +8 -1
  187. package/src/inventory/trackedPaths.ts +28 -0
  188. package/src/inventory/walk.ts +65 -36
  189. package/src/rules/built-in.ts +6 -0
  190. package/src/rules/comments/max-per-file.ts +1 -1
  191. package/src/rules/files/folderNames.ts +1 -1
  192. package/src/rules/files/otherNames.ts +1 -10
  193. package/src/rules/imports/bundleInputs.ts +94 -0
  194. package/src/rules/imports/fences.ts +4 -16
  195. package/src/rules/imports/manifest.ts +116 -0
  196. package/src/rules/imports/noTestCode.ts +18 -0
  197. package/src/rules/imports/runtime.ts +43 -0
  198. package/src/rules/max-lines.ts +4 -10
  199. package/src/rules/suppressions/biome-overrides.ts +31 -4
  200. package/src/rules/suppressions/biomeRecommended.ts +2 -2
  201. package/src/rules/suppressions/no-inline.ts +1 -1
  202. package/src/standard-schema.ts +11 -3
  203. package/src/vitest.ts +11 -6
@@ -1 +1 @@
1
- {"version":3,"file":"run-main.d.ts","sourceRoot":"","sources":["../../src/cli/run-main.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAMhD,OAAO,EAAkB,MAAM,EAAQ,KAAK,UAAU,EAAkB,MAAM,QAAQ,CAAC;AAEvF,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AA+B3C,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAM5D;AAID,eAAO,MAAM,OAAO,GAAI,KAAK,EAAE,KAAK,WAAW,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,UAAU,CAAC,UAAU,GAAG,GAAG,CAAC,KAAG,IAKzG,CAAC"}
1
+ {"version":3,"file":"run-main.d.ts","sourceRoot":"","sources":["../../src/cli/run-main.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAMhD,OAAO,EAAkB,MAAM,EAAQ,KAAK,UAAU,EAAkB,MAAM,QAAQ,CAAC;AAEvF,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AA+B3C,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAM5D;AAID,eAAO,MAAM,OAAO,GAAI,MAAM,EAAE,MAAM,WAAW,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,UAAU,GAAG,GAAG,CAAC,KAAG,IAK7G,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"run-main.js","sourceRoot":"","sources":["../../src/cli/run-main.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run-main.js","sourceRoot":"","sources":["../../src/cli/run-main.ts"],"names":[],"mappings":"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"}
@@ -4,16 +4,12 @@ import type { Rule } from "#rule.ts";
4
4
  declare const ConfigInput: Schema.Struct<{
5
5
  readonly adopt: Schema.optionalKey<Schema.Never>;
6
6
  readonly baseline: Schema.optionalKey<Schema.String>;
7
- readonly exclude: Schema.optionalKey<Schema.$Array<Schema.String>>;
8
7
  readonly extensions: Schema.optionalKey<Schema.$Array<Schema.String>>;
9
8
  readonly local: Schema.optionalKey<Schema.$Array<Schema.declare<Rule<string, unknown>, Rule<string, unknown>>>>;
10
- readonly preCommit: Schema.optionalKey<Schema.Struct<{
11
- readonly run: Schema.optionalKey<Schema.$Array<Schema.String>>;
12
- readonly tighten: Schema.optionalKey<Schema.Boolean>;
13
- }>>;
9
+ readonly preCommit: Schema.optionalKey<Schema.Never>;
14
10
  readonly registry: Schema.optionalKey<Schema.String>;
15
- readonly rules: Schema.optionalKey<Schema.$Record<Schema.String, Schema.Union<readonly [Schema.Literals<readonly ["error", "warn", "off"]>, Schema.Struct<{
16
- readonly level: Schema.optionalKey<Schema.Literals<readonly ["error", "warn", "off"]>>;
11
+ readonly rules: Schema.optionalKey<Schema.$Record<Schema.String, Schema.Union<readonly [Schema.Literal<"error">, Schema.Struct<{
12
+ readonly level: Schema.optionalKey<Schema.Literal<"error">>;
17
13
  readonly options: Schema.optionalKey<Schema.Unknown>;
18
14
  }>]>>>;
19
15
  readonly sources: Schema.optionalKey<Schema.$Array<Schema.String>>;
@@ -1 +1 @@
1
- {"version":3,"file":"decode.d.ts","sourceRoot":"","sources":["../../src/config/decode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,KAAK,OAAO,EAAc,MAAM,aAAa,CAAC;AACvD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAsBrC,QAAA,MAAM,WAAW;;;;;;;;;;;;;;;;EAUf,CAAC;AAEH,MAAM,MAAM,WAAW,GAAG,OAAO,WAAW,CAAC,IAAI,CAAC;AAIlD,eAAO,MAAM,YAAY,UAAW,OAAO,KAAG,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAgC,CAAC"}
1
+ {"version":3,"file":"decode.d.ts","sourceRoot":"","sources":["../../src/config/decode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,KAAK,OAAO,EAAc,MAAM,aAAa,CAAC;AACvD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AA2BrC,QAAA,MAAM,WAAW;;;;;;;;;;;;EASf,CAAC;AAEH,MAAM,MAAM,WAAW,GAAG,OAAO,WAAW,CAAC,IAAI,CAAC;AAIlD,eAAO,MAAM,YAAY,UAAW,OAAO,KAAG,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAgC,CAAC"}
@@ -8,19 +8,21 @@ const isRule = (value) => typeof value === "object"
8
8
  && typeof value.description === "string"
9
9
  && "configure" in value
10
10
  && typeof value.configure === "function";
11
- const Level = Schema.Literals(["error", "warn", "off"]);
11
+ const Level = Schema.Literal("error");
12
12
  const Setting = Schema.Union([Level, Schema.Struct({ level: Schema.optionalKey(Level), options: Schema.optionalKey(Schema.Unknown) })]);
13
13
  const LocalRule = Schema.declare(isRule, { expected: "a rule made with defineRule" });
14
14
  const AdoptRemoved = Schema.Never.annotate({
15
15
  message: "removed in quality 0.7.0. Delete the key, and record a rule's existing findings with `quality baseline write --rule <id>`.",
16
16
  });
17
+ const PreCommitRemoved = Schema.Never.annotate({
18
+ message: "removed. Put repository checks in the package.json quality:commit script; the hook also runs typecheck when present. Use `quality baseline tighten --staged` explicitly to lower staged debt.",
19
+ });
17
20
  const ConfigInput = Schema.Struct({
18
21
  adopt: Schema.optionalKey(AdoptRemoved),
19
22
  baseline: Schema.optionalKey(Schema.String),
20
- exclude: Schema.optionalKey(Schema.Array(Schema.String)),
21
23
  extensions: Schema.optionalKey(Schema.Array(Schema.String)),
22
24
  local: Schema.optionalKey(Schema.Array(LocalRule)),
23
- preCommit: Schema.optionalKey(Schema.Struct({ run: Schema.optionalKey(Schema.Array(Schema.String)), tighten: Schema.optionalKey(Schema.Boolean) })),
25
+ preCommit: Schema.optionalKey(PreCommitRemoved),
24
26
  registry: Schema.optionalKey(Schema.String),
25
27
  rules: Schema.optionalKey(Schema.Record(Schema.String, Setting)),
26
28
  sources: Schema.optionalKey(Schema.Array(Schema.String)),
@@ -1 +1 @@
1
- {"version":3,"file":"decode.js","sourceRoot":"","sources":["../../src/config/decode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAgB,UAAU,EAAE,MAAM,aAAa,CAAC;AAGvD,MAAM,MAAM,GAAG,CAAC,KAAc,EAAiB,EAAE,CAChD,OAAO,KAAK,KAAK,QAAQ;OACtB,KAAK,KAAK,IAAI;OACd,IAAI,IAAI,KAAK;OACb,OAAO,KAAK,CAAC,EAAE,KAAK,QAAQ;OAC5B,aAAa,IAAI,KAAK;OACtB,OAAO,KAAK,CAAC,WAAW,KAAK,QAAQ;OACrC,WAAW,IAAI,KAAK;OACpB,OAAO,KAAK,CAAC,SAAS,KAAK,UAAU,CAAC;AAE1C,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;AAExD,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAExI,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,6BAA6B,EAAE,CAAC,CAAC;AAEtF,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC;IAC1C,OAAO,EAAE,4HAA4H;CACrI,CAAC,CAAC;AAEH,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC;IACjC,KAAK,EAAE,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC;IACvC,QAAQ,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC;IAC3C,OAAO,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACxD,UAAU,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC3D,KAAK,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAClD,SAAS,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACnJ,QAAQ,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC;IAC3C,KAAK,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChE,OAAO,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;CACxD,CAAC,CAAC;AAIH,MAAM,QAAQ,GAAG,MAAM,CAAC,kBAAkB,CAAC,WAAW,EAAE,EAAE,YAAY,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,gBAAgB,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;AAExH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,KAAc,EAAiC,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC"}
1
+ {"version":3,"file":"decode.js","sourceRoot":"","sources":["../../src/config/decode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAgB,UAAU,EAAE,MAAM,aAAa,CAAC;AAGvD,MAAM,MAAM,GAAG,CAAC,KAAc,EAAiB,EAAE,CAChD,OAAO,KAAK,KAAK,QAAQ;OACtB,KAAK,KAAK,IAAI;OACd,IAAI,IAAI,KAAK;OACb,OAAO,KAAK,CAAC,EAAE,KAAK,QAAQ;OAC5B,aAAa,IAAI,KAAK;OACtB,OAAO,KAAK,CAAC,WAAW,KAAK,QAAQ;OACrC,WAAW,IAAI,KAAK;OACpB,OAAO,KAAK,CAAC,SAAS,KAAK,UAAU,CAAC;AAE1C,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AAEtC,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAExI,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,6BAA6B,EAAE,CAAC,CAAC;AAEtF,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC;IAC1C,OAAO,EAAE,4HAA4H;CACrI,CAAC,CAAC;AAEH,MAAM,gBAAgB,GAAG,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC;IAC9C,OAAO,EACN,+LAA+L;CAChM,CAAC,CAAC;AAEH,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC;IACjC,KAAK,EAAE,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC;IACvC,QAAQ,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC;IAC3C,UAAU,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC3D,KAAK,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAClD,SAAS,EAAE,MAAM,CAAC,WAAW,CAAC,gBAAgB,CAAC;IAC/C,QAAQ,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC;IAC3C,KAAK,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChE,OAAO,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;CACxD,CAAC,CAAC;AAIH,MAAM,QAAQ,GAAG,MAAM,CAAC,kBAAkB,CAAC,WAAW,EAAE,EAAE,YAAY,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,gBAAgB,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;AAExH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,KAAc,EAAiC,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC"}
@@ -1,12 +1,10 @@
1
1
  import { Effect, FileSystem } from "effect";
2
- import type { PreCommit } from "#config.ts";
3
2
  import { SetupFailure } from "#failure.ts";
4
3
  import type { InventoryScope } from "#inventory/collect.ts";
5
4
  import { type ResolvedRules } from "./resolve.ts";
6
5
  export interface ResolvedConfig extends ResolvedRules, InventoryScope {
7
6
  readonly baseline: string;
8
7
  readonly file: string;
9
- readonly preCommit: Required<PreCommit>;
10
8
  readonly registry: string;
11
9
  readonly root: string;
12
10
  }
@@ -1 +1 @@
1
- {"version":3,"file":"load.d.ts","sourceRoot":"","sources":["../../src/config/load.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAC5C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAG5D,OAAO,EAAE,KAAK,aAAa,EAAgB,MAAM,cAAc,CAAC;AAIhE,MAAM,WAAW,cAAe,SAAQ,aAAa,EAAE,cAAc;IACpE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC;IACxC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACtB;AA4BD,eAAO,MAAM,UAAU,QAAS,MAAM,QAAQ,MAAM,GAAG,SAAS,KAAG,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE,YAAY,EAAE,UAAU,CAAC,UAAU,CAYjI,CAAC"}
1
+ {"version":3,"file":"load.d.ts","sourceRoot":"","sources":["../../src/config/load.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAE5C,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAG5D,OAAO,EAAE,KAAK,aAAa,EAAgB,MAAM,cAAc,CAAC;AAIhE,MAAM,WAAW,cAAe,SAAQ,aAAa,EAAE,cAAc;IACpE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACtB;AA2BD,eAAO,MAAM,UAAU,QAAS,MAAM,QAAQ,MAAM,GAAG,SAAS,KAAG,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE,YAAY,EAAE,UAAU,CAAC,UAAU,CAqBjI,CAAC"}
@@ -6,7 +6,7 @@ var __rewriteRelativeImportExtension = (this && this.__rewriteRelativeImportExte
6
6
  }
7
7
  return path;
8
8
  };
9
- import { dirname, resolve } from "node:path";
9
+ import { basename, dirname, resolve } from "node:path";
10
10
  import { pathToFileURL } from "node:url";
11
11
  import { Effect, FileSystem } from "effect";
12
12
  import { validOrFail } from "#decoded.ts";
@@ -25,10 +25,9 @@ const importDefault = (file) => Effect.flatMap(Effect.tryPromise({
25
25
  const resolved = (root, file, config, rules) => ({
26
26
  ...rules,
27
27
  baseline: config.baseline ?? "quality/baseline.jsonl",
28
- exclude: config.exclude ?? [],
28
+ exclude: [],
29
29
  extensions: config.extensions ?? DEFAULT_EXTENSIONS,
30
30
  file,
31
- preCommit: { run: config.preCommit?.run ?? [], tighten: config.preCommit?.tighten ?? false },
32
31
  registry: config.registry ?? "quality/registry.json",
33
32
  root,
34
33
  sources: config.sources ?? ["."],
@@ -36,11 +35,16 @@ const resolved = (root, file, config, rules) => ({
36
35
  export const loadConfig = (cwd, path) => Effect.gen(function* () {
37
36
  const fs = yield* FileSystem.FileSystem;
38
37
  const file = resolve(cwd, path ?? CONFIG_FILE);
39
- const present = yield* Effect.orElseSucceed(fs.exists(file), () => false);
40
- if (!present) {
41
- return yield* new SetupFailure({ message: `no config at ${file}. Create ${CONFIG_FILE} exporting defineConfig({ ... }), or pass --config.` });
38
+ const entries = yield* fs
39
+ .readDirectory(dirname(file))
40
+ .pipe(Effect.catchTag("PlatformError", (error) => error.reason._tag === "NotFound"
41
+ ? Effect.succeed([])
42
+ : Effect.fail(new SetupFailure({ message: `cannot inspect ${file}: ${error.message}` }))));
43
+ const present = entries.includes(basename(file));
44
+ if (!present && path !== undefined) {
45
+ return yield* new SetupFailure({ message: `no config at ${file}. Check the --config path.` });
42
46
  }
43
- const loaded = yield* importDefault(file);
47
+ const loaded = present ? yield* importDefault(file) : {};
44
48
  const config = yield* validOrFail(file, yield* Effect.promise(() => decodeConfig(loaded)));
45
49
  const rules = yield* validOrFail(file, yield* resolveRules(config));
46
50
  return resolved(dirname(file), file, config, rules);
@@ -1 +1 @@
1
- {"version":3,"file":"load.js","sourceRoot":"","sources":["../../src/config/load.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"load.js","sourceRoot":"","sources":["../../src/config/load.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../../src/config/resolve.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAGtD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C,MAAM,WAAW,aAAc,SAAQ,SAAS;IAC/C,QAAQ,CAAC,MAAM,EAAE,SAAS,UAAU,EAAE,CAAC;CACvC;AAiCD,eAAO,MAAM,YAAY,WAAY,WAAW,KAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,CAoBpF,CAAC"}
1
+ {"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../../src/config/resolve.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAGtD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C,MAAM,WAAW,aAAc,SAAQ,SAAS;IAC/C,QAAQ,CAAC,MAAM,EAAE,SAAS,UAAU,EAAE,CAAC;CACvC;AA6BD,eAAO,MAAM,YAAY,WAAY,WAAW,KAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,CAoBpF,CAAC"}
@@ -1,18 +1,14 @@
1
1
  import { Effect } from "effect";
2
2
  import { builtInRules } from "#rules/built-in.ts";
3
3
  const messageOf = (cause) => (cause instanceof Error ? cause.message : String(cause));
4
- const levelOf = (setting) => (typeof setting === "string" ? setting : (setting?.level ?? "error"));
5
4
  const optionsOf = (setting) => (typeof setting === "object" ? setting.options : undefined);
6
5
  const duplicateIssues = (rules) => rules.flatMap((rule, index) => rules.findIndex((other) => other.id === rule.id) === index ? [] : [`local: rule id "${rule.id}" is already defined`]);
7
- const activate = (rule, setting) => {
8
- const level = levelOf(setting);
9
- if (level === "off") {
10
- return Effect.succeed({ _tag: "Valid", value: undefined });
11
- }
12
- return Effect.tryPromise({ catch: messageOf, try: () => rule.configure(optionsOf(setting)) }).pipe(Effect.map((configured) => configured._tag === "Invalid"
13
- ? { _tag: "Invalid", issues: configured.issues.map((issue) => `rules.${rule.id}.options: ${issue}`) }
14
- : { _tag: "Valid", value: { check: configured.check, description: rule.description, family: rule.family === true, id: rule.id, level } }), Effect.catch((failure) => Effect.succeed({ _tag: "Invalid", issues: [`rules.${rule.id}.options: validation threw: ${failure}`] })));
15
- };
6
+ const activate = (rule, setting) => Effect.tryPromise({ catch: messageOf, try: () => rule.configure(optionsOf(setting)) }).pipe(Effect.map((configured) => configured._tag === "Invalid"
7
+ ? { _tag: "Invalid", issues: configured.issues.map((issue) => `rules.${rule.id}.options: ${issue}`) }
8
+ : {
9
+ _tag: "Valid",
10
+ value: { check: configured.check, description: rule.description, family: rule.family === true, id: rule.id, level: "error" },
11
+ }), Effect.catch((failure) => Effect.succeed({ _tag: "Invalid", issues: [`rules.${rule.id}.options: validation threw: ${failure}`] })));
16
12
  export const resolveRules = (config) => Effect.gen(function* () {
17
13
  const rules = [...builtInRules, ...(config.local ?? [])];
18
14
  const settings = config.rules ?? {};
@@ -28,8 +24,8 @@ export const resolveRules = (config) => Effect.gen(function* () {
28
24
  if (issues.length > 0) {
29
25
  return { _tag: "Invalid", issues };
30
26
  }
31
- const active = activated.flatMap((result) => (result._tag === "Valid" && result.value !== undefined ? [result.value] : []));
32
- const levels = new Map(rules.map((rule) => [rule.id, levelOf(settings[rule.id])]));
27
+ const active = activated.flatMap((result) => (result._tag === "Valid" ? [result.value] : []));
28
+ const levels = new Map(rules.map((rule) => [rule.id, "error"]));
33
29
  const unregistrable = new Set(rules.filter((rule) => rule.registrable === false).map((rule) => rule.id));
34
30
  return { _tag: "Valid", value: { active, families, levels, unregistrable } };
35
31
  });
@@ -1 +1 @@
1
- {"version":3,"file":"resolve.js","sourceRoot":"","sources":["../../src/config/resolve.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resolve.js","sourceRoot":"","sources":["../../src/config/resolve.ts"],"names":[],"mappings":"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"}
package/dist/config.d.ts CHANGED
@@ -1,29 +1,23 @@
1
1
  import type { builtInRules } from "#rules/built-in.ts";
2
2
  import type { Rule } from "./rule.ts";
3
3
  export type Level = "error" | "warn" | "off";
4
- export type RuleSetting<Input> = Level | {
5
- readonly level?: Level;
6
- readonly options?: Input;
4
+ export type RuleSetting<TInput> = "error" | {
5
+ readonly level?: "error";
6
+ readonly options?: TInput;
7
7
  };
8
- type InputOf<Candidate> = Candidate extends Rule<string, infer Input> ? Input : never;
9
- export type RuleSettings<Rules extends readonly Rule[]> = {
10
- readonly [Candidate in Rules[number] as Candidate["id"]]?: RuleSetting<InputOf<Candidate>>;
8
+ type InputOf<TCandidate> = TCandidate extends Rule<string, infer TInput> ? TInput : never;
9
+ export type RuleSettings<TRules extends readonly Rule[]> = {
10
+ readonly [TCandidate in TRules[number] as TCandidate["id"]]?: RuleSetting<InputOf<TCandidate>>;
11
11
  };
12
12
  export type BuiltInRules = typeof builtInRules;
13
- export interface PreCommit {
14
- readonly run?: readonly string[];
15
- readonly tighten?: boolean;
16
- }
17
- export interface QualityConfig<Local extends readonly Rule[] = readonly Rule[]> {
13
+ export interface QualityConfig<TLocal extends readonly Rule[] = readonly Rule[]> {
18
14
  readonly baseline?: string;
19
- readonly exclude?: readonly string[];
20
15
  readonly extensions?: readonly string[];
21
- readonly local?: Local;
22
- readonly preCommit?: PreCommit;
16
+ readonly local?: TLocal;
23
17
  readonly registry?: string;
24
- readonly rules?: RuleSettings<readonly [...BuiltInRules, ...Local]>;
18
+ readonly rules?: RuleSettings<readonly [...BuiltInRules, ...TLocal]>;
25
19
  readonly sources?: readonly string[];
26
20
  }
27
- export declare const defineConfig: <const Local extends readonly Rule[] = readonly []>(config: QualityConfig<Local>) => QualityConfig<Local>;
21
+ export declare const defineConfig: <const TLocal extends readonly Rule[] = readonly []>(config: QualityConfig<TLocal>) => QualityConfig<TLocal>;
28
22
  export {};
29
23
  //# sourceMappingURL=config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEtC,MAAM,MAAM,KAAK,GAAG,OAAO,GAAG,MAAM,GAAG,KAAK,CAAC;AAE7C,MAAM,MAAM,WAAW,CAAC,KAAK,IAAI,KAAK,GAAG;IAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,KAAK,CAAA;CAAE,CAAC;AAE9F,KAAK,OAAO,CAAC,SAAS,IAAI,SAAS,SAAS,IAAI,CAAC,MAAM,EAAE,MAAM,KAAK,CAAC,GAAG,KAAK,GAAG,KAAK,CAAC;AAEtF,MAAM,MAAM,YAAY,CAAC,KAAK,SAAS,SAAS,IAAI,EAAE,IAAI;IACzD,QAAQ,EAAE,SAAS,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;CAC1F,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG,OAAO,YAAY,CAAC;AAE/C,MAAM,WAAW,SAAS;IACzB,QAAQ,CAAC,GAAG,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,aAAa,CAAC,KAAK,SAAS,SAAS,IAAI,EAAE,GAAG,SAAS,IAAI,EAAE;IAC7E,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACxC,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC;IACvB,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC;IAC/B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,KAAK,CAAC,EAAE,YAAY,CAAC,SAAS,CAAC,GAAG,YAAY,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC;IACpE,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACrC;AAED,eAAO,MAAM,YAAY,GAAI,KAAK,CAAC,KAAK,SAAS,SAAS,IAAI,EAAE,GAAG,SAAS,EAAE,UAAU,aAAa,CAAC,KAAK,CAAC,KAAG,aAAa,CAAC,KAAK,CAAW,CAAC"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEtC,MAAM,MAAM,KAAK,GAAG,OAAO,GAAG,MAAM,GAAG,KAAK,CAAC;AAE7C,MAAM,MAAM,WAAW,CAAC,MAAM,IAAI,OAAO,GAAG;IAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAEpG,KAAK,OAAO,CAAC,UAAU,IAAI,UAAU,SAAS,IAAI,CAAC,MAAM,EAAE,MAAM,MAAM,CAAC,GAAG,MAAM,GAAG,KAAK,CAAC;AAE1F,MAAM,MAAM,YAAY,CAAC,MAAM,SAAS,SAAS,IAAI,EAAE,IAAI;IAC1D,QAAQ,EAAE,UAAU,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;CAC9F,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG,OAAO,YAAY,CAAC;AAE/C,MAAM,WAAW,aAAa,CAAC,MAAM,SAAS,SAAS,IAAI,EAAE,GAAG,SAAS,IAAI,EAAE;IAC9E,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACxC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,KAAK,CAAC,EAAE,YAAY,CAAC,SAAS,CAAC,GAAG,YAAY,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC;IACrE,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACrC;AAED,eAAO,MAAM,YAAY,GAAI,KAAK,CAAC,MAAM,SAAS,SAAS,IAAI,EAAE,GAAG,SAAS,EAAE,UAAU,aAAa,CAAC,MAAM,CAAC,KAAG,aAAa,CAAC,MAAM,CAAW,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AA+BA,MAAM,CAAC,MAAM,YAAY,GAAG,CAAoD,MAA4B,EAAwB,EAAE,CAAC,MAAM,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAwBA,MAAM,CAAC,MAAM,YAAY,GAAG,CAAqD,MAA6B,EAAyB,EAAE,CAAC,MAAM,CAAC"}
package/dist/decoded.d.ts CHANGED
@@ -1,13 +1,13 @@
1
1
  import { Effect } from "effect";
2
2
  import { SetupFailure } from "./failure.ts";
3
3
  import { type StandardSchemaV1 } from "./standard-schema.ts";
4
- export type Decoded<Value> = {
4
+ export type Decoded<TValue> = {
5
5
  readonly _tag: "Valid";
6
- readonly value: Value;
6
+ readonly value: TValue;
7
7
  } | {
8
8
  readonly _tag: "Invalid";
9
9
  readonly issues: readonly string[];
10
10
  };
11
- export declare const decodeWith: <Output>(schema: StandardSchemaV1<unknown, Output>, value: unknown) => Promise<Decoded<Output>>;
12
- export declare const validOrFail: <Value>(file: string, decoded: Decoded<Value>) => Effect.Effect<Value, SetupFailure>;
11
+ export declare const decodeWith: <TOutput>(schema: StandardSchemaV1<unknown, TOutput>, value: unknown) => Promise<Decoded<TOutput>>;
12
+ export declare const validOrFail: <TValue>(file: string, decoded: Decoded<TValue>) => Effect.Effect<TValue, SetupFailure>;
13
13
  //# sourceMappingURL=decoded.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"decoded.d.ts","sourceRoot":"","sources":["../src/decoded.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAiB,KAAK,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAE5E,MAAM,MAAM,OAAO,CAAC,KAAK,IAAI;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAA;CAAE,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,CAAC;AAElJ,eAAO,MAAM,UAAU,GAAU,MAAM,UAAU,gBAAgB,CAAC,OAAO,EAAE,MAAM,CAAC,SAAS,OAAO,KAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAG3H,CAAC;AAEF,eAAO,MAAM,WAAW,GAAI,KAAK,QAAQ,MAAM,WAAW,OAAO,CAAC,KAAK,CAAC,KAAG,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,YAAY,CAGsB,CAAC"}
1
+ {"version":3,"file":"decoded.d.ts","sourceRoot":"","sources":["../src/decoded.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAiB,KAAK,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAE5E,MAAM,MAAM,OAAO,CAAC,MAAM,IAAI;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,CAAC;AAEpJ,eAAO,MAAM,UAAU,GAAU,OAAO,UAAU,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC,SAAS,OAAO,KAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAG9H,CAAC;AAEF,eAAO,MAAM,WAAW,GAAI,MAAM,QAAQ,MAAM,WAAW,OAAO,CAAC,MAAM,CAAC,KAAG,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,YAAY,CAGmB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"decoded.js","sourceRoot":"","sources":["../src/decoded.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAyB,MAAM,sBAAsB,CAAC;AAI5E,MAAM,CAAC,MAAM,UAAU,GAAG,KAAK,EAAU,MAAyC,EAAE,KAAc,EAA4B,EAAE;IAC/H,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACzD,OAAO,MAAM,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC;AAC7I,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,CAAQ,IAAY,EAAE,OAAuB,EAAsC,EAAE,CAC/G,OAAO,CAAC,IAAI,KAAK,OAAO;IACvB,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC;IAC/B,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,YAAY,CAAC,EAAE,OAAO,EAAE,GAAG,IAAI,iBAAiB,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"decoded.js","sourceRoot":"","sources":["../src/decoded.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAyB,MAAM,sBAAsB,CAAC;AAI5E,MAAM,CAAC,MAAM,UAAU,GAAG,KAAK,EAAW,MAA0C,EAAE,KAAc,EAA6B,EAAE;IAClI,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACzD,OAAO,MAAM,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC;AAC7I,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,CAAS,IAAY,EAAE,OAAwB,EAAuC,EAAE,CAClH,OAAO,CAAC,IAAI,KAAK,OAAO;IACvB,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC;IAC/B,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,YAAY,CAAC,EAAE,OAAO,EAAE,GAAG,IAAI,iBAAiB,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/engine/session.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,MAAM,EAAmB,MAAM,QAAQ,CAAC;AACjD,OAAO,EAAE,UAAU,EAAuB,MAAM,iBAAiB,CAAC;AAClE,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAsB,MAAM,yBAAyB,CAAC;AAC7E,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAkB,MAAM,uBAAuB,CAAC;AACzE,OAAO,EAA0B,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACpF,OAAO,EAAqB,YAAY,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAChF,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAW1C,MAAM,KAAK,GAAG,CACb,MAA6D,EACV,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,YAAY,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;AAE5I,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,MAAsB,EAAiG,EAAE,CAC7I,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IACnB,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;IACtE,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,EAAyB,CAAC;IAChE,MAAM,QAAQ,GAAG,CAAC,IAAY,EAA+B,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,gBAAgB,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IAC9I,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,SAAS,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC;IACvI,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC;AAClC,CAAC,CAAC,CAAC;AAEJ,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,GAAW,EAAE,UAA8B,EAA+D,EAAE,CACvI,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IACnB,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;IAClD,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;IACnE,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAC/G,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IAC7C,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC;AAC9D,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/engine/session.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,MAAM,EAAmB,MAAM,QAAQ,CAAC;AACjD,OAAO,EAAE,UAAU,EAAuB,MAAM,iBAAiB,CAAC;AAClE,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAsB,MAAM,yBAAyB,CAAC;AAC7E,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAkB,MAAM,uBAAuB,CAAC;AACzE,OAAO,EAA0B,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACpF,OAAO,EAAqB,YAAY,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAChF,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAW1C,MAAM,KAAK,GAAG,CACb,MAA+D,EACV,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,YAAY,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;AAE9I,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,MAAsB,EAAiG,EAAE,CAC7I,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IACnB,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;IACtE,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,EAAyB,CAAC;IAChE,MAAM,QAAQ,GAAG,CAAC,IAAY,EAA+B,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,gBAAgB,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IAC9I,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,SAAS,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC;IACvI,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC;AAClC,CAAC,CAAC,CAAC;AAEJ,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,GAAW,EAAE,UAA8B,EAA+D,EAAE,CACvI,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IACnB,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;IAClD,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;IACnE,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAC/G,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IAC7C,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC;AAC9D,CAAC,CAAC,CAAC"}
@@ -7,7 +7,7 @@ export interface Violation extends Finding {
7
7
  }
8
8
  export declare const keyOf: (rule: string, file: string) => string;
9
9
  export declare const byLocation: (left: Violation, right: Violation) => number;
10
- export declare const groupBy: <Item>(items: readonly Item[], key: (item: Item) => string) => ReadonlyMap<string, readonly Item[]>;
10
+ export declare const groupBy: <TItem>(items: readonly TItem[], key: (item: TItem) => string) => ReadonlyMap<string, readonly TItem[]>;
11
11
  export interface RuleIndex {
12
12
  readonly families: ReadonlySet<string>;
13
13
  readonly levels: ReadonlyMap<string, Level>;
@@ -1 +1 @@
1
- {"version":3,"file":"violation.d.ts","sourceRoot":"","sources":["../../src/engine/violation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAExC,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,MAAM,CAAC;AAE3C,MAAM,WAAW,SAAU,SAAQ,OAAO;IACzC,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACtB;AAED,eAAO,MAAM,KAAK,SAAU,MAAM,QAAQ,MAAM,KAAG,MAAgC,CAAC;AAEpF,eAAO,MAAM,UAAU,SAAU,SAAS,SAAS,SAAS,KAAG,MACoD,CAAC;AAEpH,eAAO,MAAM,OAAO,GAAI,IAAI,SAAS,SAAS,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,IAAI,KAAK,MAAM,KAAG,WAAW,CAAC,MAAM,EAAE,SAAS,IAAI,EAAE,CAWtH,CAAC;AAEF,MAAM,WAAW,SAAS;IACzB,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACvC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC5C,QAAQ,CAAC,aAAa,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CAC5C;AAED,eAAO,MAAM,MAAM,SAAU,MAAM,QAAQ,MAAM,KAAG,OAAuD,CAAC;AAI5G,eAAO,MAAM,OAAO,UAAW,SAAS,QAAQ,MAAM,KAAG,KAAK,GAAG,SAAmD,CAAC;AAErH,eAAO,MAAM,WAAW,UAAW,SAAS,QAAQ,MAAM,KAAG,OAAyD,CAAC;AAEvH,eAAO,MAAM,kBAAkB,UAAW,SAAS,QAAQ,MAAM,UAAU,MAAM,KAAG,MAMnF,CAAC"}
1
+ {"version":3,"file":"violation.d.ts","sourceRoot":"","sources":["../../src/engine/violation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAExC,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,MAAM,CAAC;AAE3C,MAAM,WAAW,SAAU,SAAQ,OAAO;IACzC,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACtB;AAED,eAAO,MAAM,KAAK,SAAU,MAAM,QAAQ,MAAM,KAAG,MAAgC,CAAC;AAEpF,eAAO,MAAM,UAAU,SAAU,SAAS,SAAS,SAAS,KAAG,MACoD,CAAC;AAEpH,eAAO,MAAM,OAAO,GAAI,KAAK,SAAS,SAAS,KAAK,EAAE,OAAO,CAAC,IAAI,EAAE,KAAK,KAAK,MAAM,KAAG,WAAW,CAAC,MAAM,EAAE,SAAS,KAAK,EAAE,CAW1H,CAAC;AAEF,MAAM,WAAW,SAAS;IACzB,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACvC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC5C,QAAQ,CAAC,aAAa,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CAC5C;AAED,eAAO,MAAM,MAAM,SAAU,MAAM,QAAQ,MAAM,KAAG,OAAuD,CAAC;AAI5G,eAAO,MAAM,OAAO,UAAW,SAAS,QAAQ,MAAM,KAAG,KAAK,GAAG,SAAmD,CAAC;AAErH,eAAO,MAAM,WAAW,UAAW,SAAS,QAAQ,MAAM,KAAG,OAAyD,CAAC;AAEvH,eAAO,MAAM,kBAAkB,UAAW,SAAS,QAAQ,MAAM,UAAU,MAAM,KAAG,MAMnF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"violation.js","sourceRoot":"","sources":["../../src/engine/violation.ts"],"names":[],"mappings":"AAUA,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,IAAY,EAAE,IAAY,EAAU,EAAE,CAAC,GAAG,IAAI,SAAS,IAAI,EAAE,CAAC;AAEpF,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,IAAe,EAAE,KAAgB,EAAU,EAAE,CACvE,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;AAEpH,MAAM,CAAC,MAAM,OAAO,GAAG,CAAO,KAAsB,EAAE,GAA2B,EAAwC,EAAE;IAC1H,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAC;IACzC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QAC1B,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;QACpC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACzB,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;QAC/B,CAAC;aAAM,CAAC;YACP,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClB,CAAC;IACF,CAAC;IACD,OAAO,MAAM,CAAC;AACf,CAAC,CAAC;AAQF,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,IAAY,EAAE,IAAY,EAAW,EAAE,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC;AAE5G,MAAM,OAAO,GAAG,CAAC,KAAgB,EAAE,IAAY,EAAU,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC;AAE/H,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,KAAgB,EAAE,IAAY,EAAqB,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;AAErH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,KAAgB,EAAE,IAAY,EAAW,EAAE,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;AAEvH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,KAAgB,EAAE,IAAY,EAAE,MAAc,EAAU,EAAE;IAC5F,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACnC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACzB,OAAO,qBAAqB,CAAC;IAC9B,CAAC;IACD,OAAO,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,MAAM,CAAC;AAC9D,CAAC,CAAC"}
1
+ {"version":3,"file":"violation.js","sourceRoot":"","sources":["../../src/engine/violation.ts"],"names":[],"mappings":"AAUA,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,IAAY,EAAE,IAAY,EAAU,EAAE,CAAC,GAAG,IAAI,SAAS,IAAI,EAAE,CAAC;AAEpF,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,IAAe,EAAE,KAAgB,EAAU,EAAE,CACvE,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;AAEpH,MAAM,CAAC,MAAM,OAAO,GAAG,CAAQ,KAAuB,EAAE,GAA4B,EAAyC,EAAE;IAC9H,MAAM,MAAM,GAAG,IAAI,GAAG,EAAmB,CAAC;IAC1C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QAC1B,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;QACpC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACzB,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;QAC/B,CAAC;aAAM,CAAC;YACP,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClB,CAAC;IACF,CAAC;IACD,OAAO,MAAM,CAAC;AACf,CAAC,CAAC;AAQF,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,IAAY,EAAE,IAAY,EAAW,EAAE,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC;AAE5G,MAAM,OAAO,GAAG,CAAC,KAAgB,EAAE,IAAY,EAAU,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC;AAE/H,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,KAAgB,EAAE,IAAY,EAAqB,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;AAErH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,KAAgB,EAAE,IAAY,EAAW,EAAE,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;AAEvH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,KAAgB,EAAE,IAAY,EAAE,MAAc,EAAU,EAAE;IAC5F,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACnC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACzB,OAAO,qBAAqB,CAAC;IAC9B,CAAC;IACD,OAAO,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,MAAM,CAAC;AAC9D,CAAC,CAAC"}
@@ -1,5 +1,5 @@
1
- import { Effect, FileSystem } from "effect";
1
+ import { Effect } from "effect";
2
2
  import { ChildProcessSpawner } from "effect/unstable/process";
3
3
  import { GateFailed, SetupFailure } from "#failure.ts";
4
- export declare const preCommitHook: (cwd: string, path: string | undefined) => Effect.Effect<undefined, GateFailed | SetupFailure, ChildProcessSpawner.ChildProcessSpawner | FileSystem.FileSystem>;
4
+ export declare const preCommitHook: (cwd: string, path: string | undefined) => Effect.Effect<undefined, GateFailed | SetupFailure, ChildProcessSpawner.ChildProcessSpawner | import("effect/FileSystem").FileSystem>;
5
5
  //# sourceMappingURL=preCommit.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"preCommit.d.ts","sourceRoot":"","sources":["../../src/hooks/preCommit.ts"],"names":[],"mappings":"AACA,OAAO,EAAW,MAAM,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AACrD,OAAO,EAAgB,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAK5E,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAgDvD,eAAO,MAAM,aAAa,iKAqBxB,CAAC"}
1
+ {"version":3,"file":"preCommit.d.ts","sourceRoot":"","sources":["../../src/hooks/preCommit.ts"],"names":[],"mappings":"AACA,OAAO,EAAW,MAAM,EAAU,MAAM,QAAQ,CAAC;AACjD,OAAO,EAAgB,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAI5E,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAyCvD,eAAO,MAAM,aAAa,kLAoBxB,CAAC"}
@@ -1,53 +1,43 @@
1
1
  import { join } from "node:path";
2
- import { Console, Effect, FileSystem } from "effect";
2
+ import { Console, Effect, Schema } from "effect";
3
3
  import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process";
4
- import { shrinkBaseline } from "#cli/baseline.ts";
5
4
  import { lint } from "#cli/lint.ts";
6
5
  import { loadConfig } from "#config/load.ts";
6
+ import { decodeWith, validOrFail } from "#decoded.ts";
7
7
  import { GateFailed, SetupFailure } from "#failure.ts";
8
- import { gitOrFail } from "#git/command.ts";
9
- import { changesSince } from "#git/history.ts";
8
+ import { readOptionalText } from "#inventory/filesystem.ts";
10
9
  const COMMIT_AGAIN = "help: fix what the output above reports, then commit again; `quality hooks pre-commit` repeats these checks without committing.";
11
- // A partly staged file is counted as it is on disk, which is not what the commit holds, so its entries wait for a later commit.
12
- const stagedScope = Effect.fnUntraced(function* (config) {
13
- const unstaged = (yield* changesSince(config.root, [])).files;
14
- if (unstaged.has(config.baseline)) {
15
- return undefined;
10
+ const Manifest = Schema.toStandardSchemaV1(Schema.fromJsonString(Schema.Struct({
11
+ packageManager: Schema.optionalKey(Schema.String),
12
+ scripts: Schema.optionalKey(Schema.Record(Schema.String, Schema.String)),
13
+ })));
14
+ const commitScripts = Effect.fnUntraced(function* (root) {
15
+ const file = join(root, "package.json");
16
+ const text = yield* readOptionalText(file).pipe(Effect.mapError((error) => new SetupFailure({ message: error.message })));
17
+ if (text === undefined) {
18
+ return { manager: "npm", scripts: [] };
16
19
  }
17
- const staged = yield* changesSince(config.root, ["--cached"]);
18
- const held = new Set([...unstaged, ...[...staged.moves].filter(([, to]) => unstaged.has(to)).map(([from]) => from)]);
19
- const scope = {
20
- files: new Set([...staged.files].filter((file) => !held.has(file))),
21
- moves: new Map([...staged.moves].filter(([from]) => !held.has(from))),
22
- };
23
- return scope;
24
- });
25
- const tighten = Effect.fnUntraced(function* (cwd, path, config) {
26
- const scope = yield* stagedScope(config);
27
- if (scope === undefined) {
28
- return yield* Console.error(`quality: left ${config.baseline} as it is, because it has unstaged changes.\nhelp: stage or discard them to tighten it.`);
29
- }
30
- yield* shrinkBaseline(cwd, path, () => Effect.succeed(scope));
31
- const fs = yield* FileSystem.FileSystem;
32
- if (yield* Effect.orElseSucceed(fs.exists(join(config.root, config.baseline)), () => false)) {
33
- yield* gitOrFail(config.root, ["add", "--", config.baseline]);
20
+ const manifest = yield* validOrFail(file, yield* Effect.promise(() => decodeWith(Manifest, text)));
21
+ const manager = manifest.packageManager?.split("@")[0] ?? "npm";
22
+ if (!["npm", "pnpm", "yarn", "bun"].includes(manager)) {
23
+ return yield* new SetupFailure({ message: `${file}: unsupported packageManager "${manager}". Use npm, pnpm, yarn or bun.` });
34
24
  }
25
+ return { manager, scripts: ["typecheck", "quality:commit"].filter((script) => manifest.scripts?.[script] !== undefined) };
35
26
  });
36
- const shell = Effect.fnUntraced(function* (root, command) {
27
+ const runScript = Effect.fnUntraced(function* (root, manager, script) {
37
28
  const spawner = yield* ChildProcessSpawner.ChildProcessSpawner;
38
- const child = yield* spawner.spawn(ChildProcess.make("sh", ["-c", command], { cwd: root, stderr: "inherit", stdin: "inherit", stdout: "inherit" }));
29
+ const child = yield* spawner.spawn(ChildProcess.make(manager, ["run", script], { cwd: root, stderr: "inherit", stdin: "inherit", stdout: "inherit" }));
39
30
  return Number(yield* child.exitCode);
40
- }, Effect.scoped, Effect.mapError((error) => new SetupFailure({ message: `cannot run a pre-commit command: ${error.message}` })));
31
+ }, Effect.scoped, Effect.mapError((error) => new SetupFailure({ message: `cannot run a pre-commit script: ${error.message}` })));
41
32
  export const preCommitHook = Effect.fn("Hooks.preCommitHook")(function* (cwd, path) {
42
33
  const config = yield* loadConfig(cwd, path);
43
- if (config.preCommit.tighten) {
44
- yield* tighten(cwd, path, config);
45
- }
34
+ const { manager, scripts } = yield* commitScripts(config.root);
46
35
  const linted = yield* lint(cwd, path, "summary").pipe(Effect.as(true), Effect.catchTag("GateFailed", () => Effect.succeed(false)));
47
36
  const failed = linted ? [] : ["quality lint"];
48
- for (const command of config.preCommit.run) {
37
+ for (const script of scripts) {
38
+ const command = `${manager} run ${script}`;
49
39
  yield* Console.log(`quality: running \`${command}\``);
50
- const code = yield* shell(config.root, command);
40
+ const code = yield* runScript(config.root, manager, script);
51
41
  if (code !== 0) {
52
42
  failed.push(`\`${command}\` (exit code ${code})`);
53
43
  }
@@ -1 +1 @@
1
- {"version":3,"file":"preCommit.js","sourceRoot":"","sources":["../../src/hooks/preCommit.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"preCommit.js","sourceRoot":"","sources":["../../src/hooks/preCommit.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { Finding, SourceFile } from "#rule.ts";
2
+ export declare function browserGlobals(file: SourceFile): readonly Finding[];
3
+ //# sourceMappingURL=browserGlobals.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"browserGlobals.d.ts","sourceRoot":"","sources":["../../src/imports/browserGlobals.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AA4GpD,wBAAgB,cAAc,CAAC,IAAI,EAAE,UAAU,GAAG,SAAS,OAAO,EAAE,CAgCnE"}