@shivaedev/quality 0.22.0 → 0.24.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 (294) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/README.md +4 -0
  3. package/dist/baseline/compare.d.ts +2 -2
  4. package/dist/baseline/compare.d.ts.map +1 -1
  5. package/dist/baseline/compare.js +5 -3
  6. package/dist/baseline/compare.js.map +1 -1
  7. package/dist/baseline/format.d.ts +5 -5
  8. package/dist/baseline/format.d.ts.map +1 -1
  9. package/dist/baseline/format.js +23 -13
  10. package/dist/baseline/format.js.map +1 -1
  11. package/dist/baseline/legacy.d.ts +2 -2
  12. package/dist/baseline/legacy.d.ts.map +1 -1
  13. package/dist/baseline/legacy.js +4 -4
  14. package/dist/baseline/legacy.js.map +1 -1
  15. package/dist/baseline/rewrite.d.ts +1 -1
  16. package/dist/baseline/rewrite.d.ts.map +1 -1
  17. package/dist/baseline/rewrite.js +2 -2
  18. package/dist/baseline/rewrite.js.map +1 -1
  19. package/dist/baseline/update.d.ts +2 -2
  20. package/dist/baseline/update.d.ts.map +1 -1
  21. package/dist/baseline/update.js +24 -18
  22. package/dist/baseline/update.js.map +1 -1
  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 +15 -9
  26. package/dist/cli/args.js.map +1 -1
  27. package/dist/cli/baseline.d.ts +1 -1
  28. package/dist/cli/baseline.d.ts.map +1 -1
  29. package/dist/cli/baseline.js +10 -6
  30. package/dist/cli/baseline.js.map +1 -1
  31. package/dist/cli/fix.d.ts +2 -2
  32. package/dist/cli/fix.d.ts.map +1 -1
  33. package/dist/cli/fix.js +34 -40
  34. package/dist/cli/fix.js.map +1 -1
  35. package/dist/cli/lint.d.ts +1 -1
  36. package/dist/cli/lint.d.ts.map +1 -1
  37. package/dist/cli/lint.js +1 -1
  38. package/dist/cli/lint.js.map +1 -1
  39. package/dist/cli/migrate.d.ts.map +1 -1
  40. package/dist/cli/migrate.js +1 -1
  41. package/dist/cli/migrate.js.map +1 -1
  42. package/dist/cli/program.d.ts +9 -0
  43. package/dist/cli/program.d.ts.map +1 -0
  44. package/dist/cli/program.js +44 -0
  45. package/dist/cli/program.js.map +1 -0
  46. package/dist/cli/run-main.d.ts +5 -2
  47. package/dist/cli/run-main.d.ts.map +1 -1
  48. package/dist/cli/run-main.js +16 -12
  49. package/dist/cli/run-main.js.map +1 -1
  50. package/dist/cli/shrink.d.ts +2 -2
  51. package/dist/cli/shrink.d.ts.map +1 -1
  52. package/dist/cli/shrink.js +9 -3
  53. package/dist/cli/shrink.js.map +1 -1
  54. package/dist/cli.js +2 -49
  55. package/dist/cli.js.map +1 -1
  56. package/dist/config/decode.d.ts +1 -1
  57. package/dist/config/decode.d.ts.map +1 -1
  58. package/dist/config/decode.js +13 -9
  59. package/dist/config/decode.js.map +1 -1
  60. package/dist/config/load.d.ts.map +1 -1
  61. package/dist/config/load.js +26 -20
  62. package/dist/config/load.js.map +1 -1
  63. package/dist/config/resolve.d.ts +22 -2
  64. package/dist/config/resolve.d.ts.map +1 -1
  65. package/dist/config/resolve.js +18 -10
  66. package/dist/config/resolve.js.map +1 -1
  67. package/dist/config.d.ts +1 -1
  68. package/dist/config.d.ts.map +1 -1
  69. package/dist/config.js +3 -1
  70. package/dist/config.js.map +1 -1
  71. package/dist/decoded.d.ts +2 -2
  72. package/dist/decoded.d.ts.map +1 -1
  73. package/dist/decoded.js +7 -5
  74. package/dist/decoded.js.map +1 -1
  75. package/dist/engine/baseline-file.d.ts +1 -1
  76. package/dist/engine/baseline-file.d.ts.map +1 -1
  77. package/dist/engine/baseline-file.js +4 -2
  78. package/dist/engine/baseline-file.js.map +1 -1
  79. package/dist/engine/evaluate.d.ts +2 -2
  80. package/dist/engine/evaluate.d.ts.map +1 -1
  81. package/dist/engine/evaluate.js +5 -3
  82. package/dist/engine/evaluate.js.map +1 -1
  83. package/dist/engine/run-rules.d.ts +1 -1
  84. package/dist/engine/run-rules.d.ts.map +1 -1
  85. package/dist/engine/run-rules.js +24 -14
  86. package/dist/engine/run-rules.js.map +1 -1
  87. package/dist/engine/session.d.ts.map +1 -1
  88. package/dist/engine/session.js +8 -4
  89. package/dist/engine/session.js.map +1 -1
  90. package/dist/engine/violation.d.ts +7 -7
  91. package/dist/engine/violation.d.ts.map +1 -1
  92. package/dist/engine/violation.js +22 -10
  93. package/dist/engine/violation.js.map +1 -1
  94. package/dist/exceptions/registry.d.ts +2 -2
  95. package/dist/exceptions/registry.d.ts.map +1 -1
  96. package/dist/exceptions/registry.js +10 -6
  97. package/dist/exceptions/registry.js.map +1 -1
  98. package/dist/git/base.d.ts +1 -2
  99. package/dist/git/base.d.ts.map +1 -1
  100. package/dist/git/base.js +22 -10
  101. package/dist/git/base.js.map +1 -1
  102. package/dist/git/command.d.ts +2 -2
  103. package/dist/git/command.d.ts.map +1 -1
  104. package/dist/git/command.js +13 -9
  105. package/dist/git/command.js.map +1 -1
  106. package/dist/git/history.d.ts +1 -1
  107. package/dist/git/history.d.ts.map +1 -1
  108. package/dist/git/history.js +5 -3
  109. package/dist/git/history.js.map +1 -1
  110. package/dist/inventory/collect.d.ts +1 -1
  111. package/dist/inventory/collect.d.ts.map +1 -1
  112. package/dist/inventory/collect.js +7 -5
  113. package/dist/inventory/collect.js.map +1 -1
  114. package/dist/inventory/filesystem.d.ts +1 -1
  115. package/dist/inventory/filesystem.d.ts.map +1 -1
  116. package/dist/inventory/filesystem.js +11 -7
  117. package/dist/inventory/filesystem.js.map +1 -1
  118. package/dist/inventory/ignore-scope.d.ts +4 -4
  119. package/dist/inventory/ignore-scope.d.ts.map +1 -1
  120. package/dist/inventory/ignore-scope.js +18 -9
  121. package/dist/inventory/ignore-scope.js.map +1 -1
  122. package/dist/manifests/sorted.d.ts +1 -1
  123. package/dist/manifests/sorted.d.ts.map +1 -1
  124. package/dist/manifests/sorted.js +14 -16
  125. package/dist/manifests/sorted.js.map +1 -1
  126. package/dist/report/plural.d.ts +1 -1
  127. package/dist/report/plural.d.ts.map +1 -1
  128. package/dist/report/plural.js +3 -1
  129. package/dist/report/plural.js.map +1 -1
  130. package/dist/report/render.d.ts +1 -1
  131. package/dist/report/render.d.ts.map +1 -1
  132. package/dist/report/render.js +29 -21
  133. package/dist/report/render.js.map +1 -1
  134. package/dist/report/stale.d.ts +1 -1
  135. package/dist/report/stale.d.ts.map +1 -1
  136. package/dist/report/stale.js +18 -8
  137. package/dist/report/stale.js.map +1 -1
  138. package/dist/rule.d.ts +13 -13
  139. package/dist/rule.d.ts.map +1 -1
  140. package/dist/rule.js +10 -8
  141. package/dist/rule.js.map +1 -1
  142. package/dist/rules/built-in.d.ts +2 -2
  143. package/dist/rules/built-in.d.ts.map +1 -1
  144. package/dist/rules/built-in.js +6 -0
  145. package/dist/rules/built-in.js.map +1 -1
  146. package/dist/rules/comments/kinds.d.ts +4 -4
  147. package/dist/rules/comments/kinds.d.ts.map +1 -1
  148. package/dist/rules/comments/kinds.js +16 -8
  149. package/dist/rules/comments/kinds.js.map +1 -1
  150. package/dist/rules/comments/max-per-file.d.ts.map +1 -1
  151. package/dist/rules/comments/max-per-file.js +13 -9
  152. package/dist/rules/comments/max-per-file.js.map +1 -1
  153. package/dist/rules/comments/pattern-rule.d.ts +1 -1
  154. package/dist/rules/comments/pattern-rule.d.ts.map +1 -1
  155. package/dist/rules/comments/pattern-rule.js +12 -10
  156. package/dist/rules/comments/pattern-rule.js.map +1 -1
  157. package/dist/rules/comments/scan.d.ts +3 -3
  158. package/dist/rules/comments/scan.d.ts.map +1 -1
  159. package/dist/rules/comments/scan.js +23 -19
  160. package/dist/rules/comments/scan.js.map +1 -1
  161. package/dist/rules/max-lines.d.ts.map +1 -1
  162. package/dist/rules/max-lines.js +12 -10
  163. package/dist/rules/max-lines.js.map +1 -1
  164. package/dist/rules/maxDepth.d.ts +2 -0
  165. package/dist/rules/maxDepth.d.ts.map +1 -0
  166. package/dist/rules/maxDepth.js +20 -0
  167. package/dist/rules/maxDepth.js.map +1 -0
  168. package/dist/rules/noBarrel.d.ts +2 -0
  169. package/dist/rules/noBarrel.d.ts.map +1 -0
  170. package/dist/rules/noBarrel.js +14 -0
  171. package/dist/rules/noBarrel.js.map +1 -0
  172. package/dist/rules/stories/origins.d.ts +10 -0
  173. package/dist/rules/stories/origins.d.ts.map +1 -0
  174. package/dist/rules/stories/origins.js +129 -0
  175. package/dist/rules/stories/origins.js.map +1 -0
  176. package/dist/rules/stories/prerequisites.d.ts +4 -0
  177. package/dist/rules/stories/prerequisites.d.ts.map +1 -0
  178. package/dist/rules/stories/prerequisites.js +32 -0
  179. package/dist/rules/stories/prerequisites.js.map +1 -0
  180. package/dist/rules/stories/program.d.ts +5 -0
  181. package/dist/rules/stories/program.d.ts.map +1 -0
  182. package/dist/rules/stories/program.js +22 -0
  183. package/dist/rules/stories/program.js.map +1 -0
  184. package/dist/rules/stories/specs.d.ts +2 -0
  185. package/dist/rules/stories/specs.d.ts.map +1 -0
  186. package/dist/rules/stories/specs.js +80 -0
  187. package/dist/rules/stories/specs.js.map +1 -0
  188. package/dist/rules/suppressions/biome/configs.d.ts +1 -1
  189. package/dist/rules/suppressions/biome/configs.d.ts.map +1 -1
  190. package/dist/rules/suppressions/biome/configs.js +23 -17
  191. package/dist/rules/suppressions/biome/configs.js.map +1 -1
  192. package/dist/rules/suppressions/biome/declarations.d.ts +4 -4
  193. package/dist/rules/suppressions/biome/declarations.d.ts.map +1 -1
  194. package/dist/rules/suppressions/biome/declarations.js +15 -7
  195. package/dist/rules/suppressions/biome/declarations.js.map +1 -1
  196. package/dist/rules/suppressions/biome/json.d.ts +6 -6
  197. package/dist/rules/suppressions/biome/json.d.ts.map +1 -1
  198. package/dist/rules/suppressions/biome/json.js +27 -13
  199. package/dist/rules/suppressions/biome/json.js.map +1 -1
  200. package/dist/rules/suppressions/biome/resolve.d.ts +1 -1
  201. package/dist/rules/suppressions/biome/resolve.d.ts.map +1 -1
  202. package/dist/rules/suppressions/biome/resolve.js +23 -17
  203. package/dist/rules/suppressions/biome/resolve.js.map +1 -1
  204. package/dist/rules/suppressions/biome/weakenings.d.ts +1 -1
  205. package/dist/rules/suppressions/biome/weakenings.d.ts.map +1 -1
  206. package/dist/rules/suppressions/biome/weakenings.js +78 -52
  207. package/dist/rules/suppressions/biome/weakenings.js.map +1 -1
  208. package/dist/rules/suppressions/biome-overrides.d.ts.map +1 -1
  209. package/dist/rules/suppressions/biome-overrides.js +45 -33
  210. package/dist/rules/suppressions/biome-overrides.js.map +1 -1
  211. package/dist/rules/suppressions/directives.d.ts +1 -1
  212. package/dist/rules/suppressions/directives.d.ts.map +1 -1
  213. package/dist/rules/suppressions/directives.js +5 -3
  214. package/dist/rules/suppressions/directives.js.map +1 -1
  215. package/dist/rules/suppressions/no-double-cast.d.ts.map +1 -1
  216. package/dist/rules/suppressions/no-double-cast.js +14 -10
  217. package/dist/rules/suppressions/no-double-cast.js.map +1 -1
  218. package/dist/rules/suppressions/no-inline.d.ts.map +1 -1
  219. package/dist/rules/suppressions/no-inline.js +8 -6
  220. package/dist/rules/suppressions/no-inline.js.map +1 -1
  221. package/dist/rules/suppressions/stylesheet-comments.d.ts +1 -1
  222. package/dist/rules/suppressions/stylesheet-comments.d.ts.map +1 -1
  223. package/dist/rules/suppressions/stylesheet-comments.js +11 -5
  224. package/dist/rules/suppressions/stylesheet-comments.js.map +1 -1
  225. package/dist/rules/syntax.d.ts +1 -1
  226. package/dist/rules/syntax.d.ts.map +1 -1
  227. package/dist/rules/syntax.js +2 -2
  228. package/dist/rules/syntax.js.map +1 -1
  229. package/dist/standard-schema.d.ts +6 -6
  230. package/dist/standard-schema.d.ts.map +1 -1
  231. package/docs/modules.md +19 -1
  232. package/docs/roadmap.md +1 -1
  233. package/docs/rules.md +9 -1
  234. package/package.json +2 -2
  235. package/src/baseline/compare.ts +5 -3
  236. package/src/baseline/format.ts +17 -10
  237. package/src/baseline/legacy.ts +4 -4
  238. package/src/baseline/rewrite.ts +2 -2
  239. package/src/baseline/update.ts +20 -16
  240. package/src/cli/args.ts +15 -10
  241. package/src/cli/baseline.ts +36 -35
  242. package/src/cli/fix.ts +39 -42
  243. package/src/cli/lint.ts +17 -19
  244. package/src/cli/migrate.ts +20 -21
  245. package/src/cli/program.ts +50 -0
  246. package/src/cli/run-main.ts +19 -13
  247. package/src/cli/shrink.ts +11 -8
  248. package/src/cli.ts +2 -51
  249. package/src/config/decode.ts +15 -10
  250. package/src/config/load.ts +44 -37
  251. package/src/config/resolve.ts +32 -27
  252. package/src/config.ts +3 -1
  253. package/src/decoded.ts +5 -4
  254. package/src/engine/baseline-file.ts +14 -12
  255. package/src/engine/evaluate.ts +6 -5
  256. package/src/engine/run-rules.ts +21 -13
  257. package/src/engine/session.ts +32 -25
  258. package/src/engine/violation.ts +22 -11
  259. package/src/exceptions/registry.ts +10 -8
  260. package/src/git/base.ts +45 -37
  261. package/src/git/command.ts +6 -4
  262. package/src/git/history.ts +5 -4
  263. package/src/inventory/collect.ts +39 -34
  264. package/src/inventory/filesystem.ts +38 -30
  265. package/src/inventory/ignore-scope.ts +20 -10
  266. package/src/manifests/sorted.ts +18 -18
  267. package/src/report/plural.ts +3 -1
  268. package/src/report/render.ts +23 -18
  269. package/src/report/stale.ts +33 -25
  270. package/src/rule.ts +25 -19
  271. package/src/rules/built-in.ts +6 -0
  272. package/src/rules/comments/kinds.ts +16 -9
  273. package/src/rules/comments/max-per-file.ts +15 -11
  274. package/src/rules/comments/pattern-rule.ts +5 -4
  275. package/src/rules/comments/scan.ts +18 -15
  276. package/src/rules/max-lines.ts +3 -2
  277. package/src/rules/maxDepth.ts +24 -0
  278. package/src/rules/noBarrel.ts +16 -0
  279. package/src/rules/stories/origins.ts +147 -0
  280. package/src/rules/stories/prerequisites.ts +37 -0
  281. package/src/rules/stories/program.ts +29 -0
  282. package/src/rules/stories/specs.ts +93 -0
  283. package/src/rules/suppressions/biome/configs.ts +23 -17
  284. package/src/rules/suppressions/biome/declarations.ts +15 -10
  285. package/src/rules/suppressions/biome/json.ts +25 -13
  286. package/src/rules/suppressions/biome/resolve.ts +23 -18
  287. package/src/rules/suppressions/biome/weakenings.ts +60 -41
  288. package/src/rules/suppressions/biome-overrides.ts +32 -22
  289. package/src/rules/suppressions/directives.ts +5 -4
  290. package/src/rules/suppressions/no-double-cast.ts +14 -10
  291. package/src/rules/suppressions/no-inline.ts +5 -4
  292. package/src/rules/suppressions/stylesheet-comments.ts +11 -6
  293. package/src/rules/syntax.ts +2 -2
  294. package/src/standard-schema.ts +4 -4
package/CHANGELOG.md CHANGED
@@ -1,5 +1,18 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.24.0 - 2026-10-18
4
+
5
+ ### Added
6
+
7
+ - Enforce `tests/story-specs`: test files declare tests through a kit built with `@shivaedev/test-story`'s `storyKit`. Plain registrations, including destructured Vitest bindings, remain findings alongside stories. Typecheck tests, test-story and its transitive workspace dependencies are exempt; existing plain tests can be recorded in the baseline.
8
+ - Export `storySpecs` and its matching helpers `storyOrigins`, `storyPrerequisites` and `storyProgram` from their `rules/stories/*.ts` modules.
9
+
10
+ ## 0.23.0 - 2026-10-17
11
+
12
+ ### Added
13
+
14
+ - Built-in `nesting/max-depth` reports lines indented with eight or more tabs, except in declaration files. Built-in `structure/no-barrel` rejects `index.ts` and `index.tsx` modules, including those that define their own exports. Both run at error with no options. The existing wildcard export exposes the rules as `maxDepth` from `rules/maxDepth.ts` and `noBarrel` from `rules/noBarrel.ts`.
15
+
3
16
  ## 0.22.0 - 2026-10-16
4
17
 
5
18
  ### Added
package/README.md CHANGED
@@ -114,6 +114,10 @@ This is `packages/ui/quality.fences.config.ts`; paths remain relative to the rep
114
114
 
115
115
  Write setup in the domain kit under `test-support/` and keep each test specific to its story. [`@shivaedev/test-story`](https://github.com/ShivaeDev/platform/tree/main/packages/test-story#readme) explains how to build the kit, traits and verbs over a real engine.
116
116
 
117
+ Quality's `tests/story-specs` rule reports a test file that declares tests without a kit's `it`, including plain Vitest `it` and `test` declarations mixed with stories. It uses Quality's test filenames, including `*.test.ts`, `*.spec.ts`, slow tests and DOM tests. Typecheck tests are exempt, as are test-story itself and its transitive workspace dependencies, including development, optional and peer dependencies: requiring those packages to depend on test-story would create a cycle. The exemption follows the workspace dependency graph rather than a fixed list of package names. Pure-function tests are included: the baseline records existing files, and that debt should only go down.
118
+
119
+ Every package tests its real engine through its own story kit, so setup and actions share the package's domain vocabulary. To repair a finding, build the kit with `storyKit` from `@shivaedev/test-story/storyKit.ts` in `src/test-support`, import it in the spec and replace plain registrations with `kit.it(name, traits, body)`. The rule follows imports, aliases and conditional registrars back to the kit; it checks declarations, while review and runtime tests establish whether the kit exercises the real engine.
120
+
117
121
  Quality's `tests/story-setup` rule reports top-level test functions named with the words `seed`, `make`, `build` or `setup`, and fixture-writing calls imported from Node's `fs` or `fs/promises`. It leaves source and `test-support/` files alone. This is a check for those syntax patterns; a passing test file still needs review of what it tests.
118
122
 
119
123
  ### 3. Every day: repair findings and keep debt current
@@ -15,6 +15,6 @@ export interface BaselineCheck {
15
15
  readonly regressions: readonly Regression[];
16
16
  readonly stale: readonly StaleBaselineEntry[];
17
17
  }
18
- export declare const countOf: (violations: readonly Violation[]) => number;
19
- export declare const applyBaseline: (violations: readonly Violation[], entries: readonly BaselineEntry[], rules: RuleIndex) => BaselineCheck;
18
+ export declare function countOf(violations: readonly Violation[]): number;
19
+ export declare function applyBaseline(violations: readonly Violation[], entries: readonly BaselineEntry[], rules: RuleIndex): BaselineCheck;
20
20
  //# sourceMappingURL=compare.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"compare.d.ts","sourceRoot":"","sources":["../../src/baseline/compare.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2B,KAAK,SAAS,EAAsB,KAAK,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACnH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,MAAM,WAAW,UAAU;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC;CAC9B;AAED,MAAM,WAAW,kBAAkB;IAClC,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC;IAC9B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,aAAa;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,SAAS,SAAS,EAAE,CAAC;IACpC,QAAQ,CAAC,KAAK,EAAE,SAAS,kBAAkB,EAAE,CAAC;IAC9C,QAAQ,CAAC,WAAW,EAAE,SAAS,UAAU,EAAE,CAAC;IAC5C,QAAQ,CAAC,KAAK,EAAE,SAAS,kBAAkB,EAAE,CAAC;CAC9C;AAED,eAAO,MAAM,OAAO,eAAgB,SAAS,SAAS,EAAE,KAAG,MAAoF,CAAC;AAEhJ,eAAO,MAAM,aAAa,eAAgB,SAAS,SAAS,EAAE,WAAW,SAAS,aAAa,EAAE,SAAS,SAAS,KAAG,aA4BrH,CAAC"}
1
+ {"version":3,"file":"compare.d.ts","sourceRoot":"","sources":["../../src/baseline/compare.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2B,KAAK,SAAS,EAAsB,KAAK,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACnH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,MAAM,WAAW,UAAU;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC;CAC9B;AAED,MAAM,WAAW,kBAAkB;IAClC,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC;IAC9B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,aAAa;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,SAAS,SAAS,EAAE,CAAC;IACpC,QAAQ,CAAC,KAAK,EAAE,SAAS,kBAAkB,EAAE,CAAC;IAC9C,QAAQ,CAAC,WAAW,EAAE,SAAS,UAAU,EAAE,CAAC;IAC5C,QAAQ,CAAC,KAAK,EAAE,SAAS,kBAAkB,EAAE,CAAC;CAC9C;AAED,wBAAgB,OAAO,CAAC,UAAU,EAAE,SAAS,SAAS,EAAE,GAAG,MAAM,CAEhE;AAED,wBAAgB,aAAa,CAAC,UAAU,EAAE,SAAS,SAAS,EAAE,EAAE,OAAO,EAAE,SAAS,aAAa,EAAE,EAAE,KAAK,EAAE,SAAS,GAAG,aAAa,CA4BlI"}
@@ -1,6 +1,8 @@
1
1
  import { groupBy, keyOf, levelOf, unusedEntryProblem } from "#engine/violation.ts";
2
- export const countOf = (violations) => violations.reduce((total, violation) => total + (violation.count ?? 1), 0);
3
- export const applyBaseline = (violations, entries, rules) => {
2
+ export function countOf(violations) {
3
+ return violations.reduce((total, violation) => total + (violation.count ?? 1), 0);
4
+ }
5
+ export function applyBaseline(violations, entries, rules) {
4
6
  const groups = groupBy(violations, (violation) => keyOf(violation.rule, violation.file));
5
7
  const covered = new Set();
6
8
  const regressions = [];
@@ -28,5 +30,5 @@ export const applyBaseline = (violations, entries, rules) => {
28
30
  }
29
31
  const kept = violations.filter((violation) => !covered.has(keyOf(violation.rule, violation.file)));
30
32
  return { baselined: violations.length - kept.length, kept, loose, regressions, stale };
31
- };
33
+ }
32
34
  //# sourceMappingURL=compare.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"compare.js","sourceRoot":"","sources":["../../src/baseline/compare.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAkB,kBAAkB,EAAkB,MAAM,sBAAsB,CAAC;AAqBnH,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,UAAgC,EAAU,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,CAAC,KAAK,GAAG,CAAC,SAAS,CAAC,KAAK,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAEhJ,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,UAAgC,EAAE,OAAiC,EAAE,KAAgB,EAAiB,EAAE;IACrI,MAAM,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;IACzF,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAClC,MAAM,WAAW,GAAiB,EAAE,CAAC;IACrC,MAAM,KAAK,GAAyB,EAAE,CAAC;IACvC,MAAM,KAAK,GAAyB,EAAE,CAAC;IACvC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;QAC9D,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YACzC,CAAC,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC;gBAC7D,KAAK;gBACL,OAAO,EAAE,kBAAkB,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,wBAAwB,CAAC;aACxE,CAAC,CAAC;YACH,SAAS;QACV,CAAC;QACD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;QAC7B,IAAI,KAAK,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;YACzB,WAAW,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;YACnC,SAAS;QACV,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;QAC3C,IAAI,KAAK,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;YACzB,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,6BAA6B,KAAK,YAAY,KAAK,CAAC,KAAK,YAAY,EAAE,CAAC,CAAC;QACvG,CAAC;IACF,CAAC;IACD,MAAM,IAAI,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACnG,OAAO,EAAE,SAAS,EAAE,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC;AACxF,CAAC,CAAC"}
1
+ {"version":3,"file":"compare.js","sourceRoot":"","sources":["../../src/baseline/compare.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAkB,kBAAkB,EAAkB,MAAM,sBAAsB,CAAC;AAqBnH,MAAM,UAAU,OAAO,CAAC,UAAgC;IACvD,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,CAAC,KAAK,GAAG,CAAC,SAAS,CAAC,KAAK,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACnF,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,UAAgC,EAAE,OAAiC,EAAE,KAAgB;IAClH,MAAM,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;IACzF,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAClC,MAAM,WAAW,GAAiB,EAAE,CAAC;IACrC,MAAM,KAAK,GAAyB,EAAE,CAAC;IACvC,MAAM,KAAK,GAAyB,EAAE,CAAC;IACvC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;QAC9D,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YACzC,CAAC,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC;gBAC7D,KAAK;gBACL,OAAO,EAAE,kBAAkB,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,wBAAwB,CAAC;aACxE,CAAC,CAAC;YACH,SAAS;QACV,CAAC;QACD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;QAC7B,IAAI,KAAK,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;YACzB,WAAW,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;YACnC,SAAS;QACV,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;QAC3C,IAAI,KAAK,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;YACzB,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,6BAA6B,KAAK,YAAY,KAAK,CAAC,KAAK,YAAY,EAAE,CAAC,CAAC;QACvG,CAAC;IACF,CAAC;IACD,MAAM,IAAI,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACnG,OAAO,EAAE,SAAS,EAAE,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC;AACxF,CAAC"}
@@ -4,12 +4,12 @@ export interface BaselineEntry {
4
4
  readonly file: string;
5
5
  readonly rule: string;
6
6
  }
7
- export declare const byPathAndRule: (left: BaselineEntry, right: BaselineEntry) => number;
8
- export declare const linesOf: (raw: string | undefined) => ReadonlyArray<{
7
+ export declare function byPathAndRule(left: BaselineEntry, right: BaselineEntry): number;
8
+ export declare function linesOf(raw: string | undefined): ReadonlyArray<{
9
9
  readonly line: number;
10
10
  readonly text: string;
11
11
  }>;
12
- export declare const decodeBaseline: (raw: string | undefined) => Promise<Decoded<readonly BaselineEntry[]>>;
13
- export declare const encodeEntry: (entry: BaselineEntry) => string;
14
- export declare const encodeBaseline: (entries: readonly BaselineEntry[]) => string;
12
+ export declare function decodeBaseline(raw: string | undefined): Promise<Decoded<readonly BaselineEntry[]>>;
13
+ export declare function encodeEntry(entry: BaselineEntry): string;
14
+ export declare function encodeBaseline(entries: readonly BaselineEntry[]): string;
15
15
  //# sourceMappingURL=format.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../src/baseline/format.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,OAAO,EAAc,MAAM,aAAa,CAAC;AAWvD,MAAM,WAAW,aAAa;IAC7B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACtB;AAID,eAAO,MAAM,aAAa,SAAU,aAAa,SAAS,aAAa,KAAG,MACH,CAAC;AAExE,eAAO,MAAM,OAAO,QAAS,MAAM,GAAG,SAAS,KAAG,aAAa,CAAC;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAItE,CAAC;AAE3C,eAAO,MAAM,cAAc,QAAe,MAAM,GAAG,SAAS,KAAG,OAAO,CAAC,OAAO,CAAC,SAAS,aAAa,EAAE,CAAC,CAkBvG,CAAC;AAIF,eAAO,MAAM,WAAW,UAAW,aAAa,KAAG,MAA+F,CAAC;AAEnJ,eAAO,MAAM,cAAc,YAAa,SAAS,aAAa,EAAE,KAAG,MAIxD,CAAC"}
1
+ {"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../src/baseline/format.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,OAAO,EAAc,MAAM,aAAa,CAAC;AAWvD,MAAM,WAAW,aAAa;IAC7B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACtB;AAMD,wBAAgB,aAAa,CAAC,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,aAAa,GAAG,MAAM,CAE/E;AAED,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,aAAa,CAAC;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CAKhH;AAED,wBAAsB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,aAAa,EAAE,CAAC,CAAC,CAkBxG;AAID,wBAAgB,WAAW,CAAC,KAAK,EAAE,aAAa,GAAG,MAAM,CAExD;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,SAAS,aAAa,EAAE,GAAG,MAAM,CAKxE"}
@@ -7,13 +7,19 @@ const Line = Schema.Struct({
7
7
  rule: Schema.NonEmptyString,
8
8
  });
9
9
  const standard = Schema.toStandardSchemaV1(Schema.fromJsonString(Line), { parseOptions: { errors: "all", onExcessProperty: "error" } });
10
- const codepoints = (left, right) => (left < right ? -1 : Number(left > right));
11
- export const byPathAndRule = (left, right) => codepoints(left.file, right.file) || codepoints(left.rule, right.rule);
12
- export const linesOf = (raw) => (raw ?? "")
13
- .split("\n")
14
- .map((text, index) => ({ line: index + 1, text }))
15
- .filter((row) => row.text.trim() !== "");
16
- export const decodeBaseline = async (raw) => {
10
+ function codepoints(left, right) {
11
+ return left < right ? -1 : Number(left > right);
12
+ }
13
+ export function byPathAndRule(left, right) {
14
+ return codepoints(left.file, right.file) || codepoints(left.rule, right.rule);
15
+ }
16
+ export function linesOf(raw) {
17
+ return (raw ?? "")
18
+ .split("\n")
19
+ .map((text, index) => ({ line: index + 1, text }))
20
+ .filter((row) => row.text.trim() !== "");
21
+ }
22
+ export async function decodeBaseline(raw) {
17
23
  const issues = [];
18
24
  const entries = [];
19
25
  const seen = new Set();
@@ -31,11 +37,15 @@ export const decodeBaseline = async (raw) => {
31
37
  entries.push({ ...stored, file: path });
32
38
  }
33
39
  return issues.length === 0 ? { _tag: "Valid", value: entries } : { _tag: "Invalid", issues };
34
- };
40
+ }
35
41
  const LINE_KEYS = ["path", "rule", "count"];
36
- export const encodeEntry = (entry) => JSON.stringify({ count: entry.count, path: entry.file, rule: entry.rule }, LINE_KEYS);
37
- export const encodeBaseline = (entries) => [...entries]
38
- .sort(byPathAndRule)
39
- .map((entry) => `${encodeEntry(entry)}\n`)
40
- .join("");
42
+ export function encodeEntry(entry) {
43
+ return JSON.stringify({ count: entry.count, path: entry.file, rule: entry.rule }, LINE_KEYS);
44
+ }
45
+ export function encodeBaseline(entries) {
46
+ return [...entries]
47
+ .sort(byPathAndRule)
48
+ .map((entry) => `${encodeEntry(entry)}\n`)
49
+ .join("");
50
+ }
41
51
  //# sourceMappingURL=format.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"format.js","sourceRoot":"","sources":["../../src/baseline/format.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAgB,UAAU,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAE7C,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC;IAC1B,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;IAChD,IAAI,EAAE,MAAM,CAAC,cAAc;IAC3B,IAAI,EAAE,MAAM,CAAC,cAAc;CAC3B,CAAC,CAAC;AAEH,MAAM,QAAQ,GAAG,MAAM,CAAC,kBAAkB,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,EAAE,YAAY,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,gBAAgB,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;AAQxI,MAAM,UAAU,GAAG,CAAC,IAAY,EAAE,KAAa,EAAU,EAAE,CAAC,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC;AAEvG,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,IAAmB,EAAE,KAAoB,EAAU,EAAE,CAClF,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;AAExE,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,GAAuB,EAAmE,EAAE,CACnH,CAAC,GAAG,IAAI,EAAE,CAAC;KACT,KAAK,CAAC,IAAI,CAAC;KACX,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;KACjD,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;AAE3C,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,EAAE,GAAuB,EAA8C,EAAE;IAC3G,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,MAAM,OAAO,GAAoB,EAAE,CAAC;IACpC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,KAAK,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QAC3C,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACjD,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAChC,MAAM,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,QAAQ,IAAI,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC;YACxE,SAAS;QACV,CAAC;QACD,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC;QAC1C,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC;YACxC,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,2BAA2B,MAAM,CAAC,IAAI,OAAO,IAAI,EAAE,CAAC,CAAC;QAC9E,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;QACnC,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IACzC,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC;AAC9F,CAAC,CAAC;AAEF,MAAM,SAAS,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;AAE5C,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,KAAoB,EAAU,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,EAAE,SAAS,CAAC,CAAC;AAEnJ,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,OAAiC,EAAU,EAAE,CAC3E,CAAC,GAAG,OAAO,CAAC;KACV,IAAI,CAAC,aAAa,CAAC;KACnB,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC;KACzC,IAAI,CAAC,EAAE,CAAC,CAAC"}
1
+ {"version":3,"file":"format.js","sourceRoot":"","sources":["../../src/baseline/format.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,6 @@ export declare const LEGACY_BASELINE = "quality/baseline.json";
5
5
  export interface LegacyEntry extends BaselineEntry {
6
6
  readonly measure?: number | undefined;
7
7
  }
8
- export declare const decodeLegacyBaseline: (raw: string) => Promise<Decoded<readonly LegacyEntry[]>>;
9
- export declare const convertLegacy: (legacy: readonly LegacyEntry[], violations: readonly Violation[]) => readonly BaselineEntry[];
8
+ export declare function decodeLegacyBaseline(raw: string): Promise<Decoded<readonly LegacyEntry[]>>;
9
+ export declare function convertLegacy(legacy: readonly LegacyEntry[], violations: readonly Violation[]): readonly BaselineEntry[];
10
10
  //# sourceMappingURL=legacy.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"legacy.d.ts","sourceRoot":"","sources":["../../src/baseline/legacy.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,OAAO,EAAc,MAAM,aAAa,CAAC;AACvD,OAAO,EAAkB,KAAK,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEtE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,eAAO,MAAM,eAAe,0BAA0B,CAAC;AAWvD,MAAM,WAAW,WAAY,SAAQ,aAAa;IACjD,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACtC;AAED,eAAO,MAAM,oBAAoB,QAAe,MAAM,KAAG,OAAO,CAAC,OAAO,CAAC,SAAS,WAAW,EAAE,CAAC,CAS/F,CAAC;AAEF,eAAO,MAAM,aAAa,WAAY,SAAS,WAAW,EAAE,cAAc,SAAS,SAAS,EAAE,KAAG,SAAS,aAAa,EAWtH,CAAC"}
1
+ {"version":3,"file":"legacy.d.ts","sourceRoot":"","sources":["../../src/baseline/legacy.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,OAAO,EAAc,MAAM,aAAa,CAAC;AACvD,OAAO,EAAkB,KAAK,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEtE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,eAAO,MAAM,eAAe,0BAA0B,CAAC;AAWvD,MAAM,WAAW,WAAY,SAAQ,aAAa;IACjD,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACtC;AAED,wBAAsB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,WAAW,EAAE,CAAC,CAAC,CAShG;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,SAAS,WAAW,EAAE,EAAE,UAAU,EAAE,SAAS,SAAS,EAAE,GAAG,SAAS,aAAa,EAAE,CAWxH"}
@@ -9,15 +9,15 @@ const Entry = Schema.Struct({
9
9
  });
10
10
  const LegacyFile = Schema.Record(Schema.String, Schema.Record(Schema.String, Entry));
11
11
  const standard = Schema.toStandardSchemaV1(Schema.fromJsonString(LegacyFile), { parseOptions: { errors: "all", onExcessProperty: "error" } });
12
- export const decodeLegacyBaseline = async (raw) => {
12
+ export async function decodeLegacyBaseline(raw) {
13
13
  const decoded = await decodeWith(standard, raw);
14
14
  if (decoded._tag === "Invalid") {
15
15
  return decoded;
16
16
  }
17
17
  const entries = Object.entries(decoded.value).flatMap(([rule, files]) => Object.entries(files).map(([file, stored]) => ({ ...stored, file, rule })));
18
18
  return { _tag: "Valid", value: entries };
19
- };
20
- export const convertLegacy = (legacy, violations) => {
19
+ }
20
+ export function convertLegacy(legacy, violations) {
21
21
  const current = groupBy(violations, (violation) => keyOf(violation.rule, violation.file));
22
22
  return legacy.flatMap(({ count, file, measure, rule }) => {
23
23
  if (measure === undefined) {
@@ -28,5 +28,5 @@ export const convertLegacy = (legacy, violations) => {
28
28
  const converted = threshold === undefined ? countOf(group) : Math.ceil(measure - threshold);
29
29
  return converted > 0 ? [{ count: converted, file, rule }] : [];
30
30
  });
31
- };
31
+ }
32
32
  //# sourceMappingURL=legacy.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"legacy.js","sourceRoot":"","sources":["../../src/baseline/legacy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAgB,UAAU,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAkB,MAAM,sBAAsB,CAAC;AACtE,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAGvC,MAAM,CAAC,MAAM,eAAe,GAAG,uBAAuB,CAAC;AAEvD,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;IAChD,OAAO,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC;CAC1C,CAAC,CAAC;AAEH,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;AAErF,MAAM,QAAQ,GAAG,MAAM,CAAC,kBAAkB,CAAC,MAAM,CAAC,cAAc,CAAC,UAAU,CAAC,EAAE,EAAE,YAAY,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,gBAAgB,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;AAM9I,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,EAAE,GAAW,EAA4C,EAAE;IACnG,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IAChD,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAChC,OAAO,OAAO,CAAC;IAChB,CAAC;IACD,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,CACvE,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAC1E,CAAC;IACF,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;AAC1C,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,MAA8B,EAAE,UAAgC,EAA4B,EAAE;IAC3H,MAAM,OAAO,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;IAC1F,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE;QACxD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC3B,OAAO,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAChC,CAAC;QACD,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;QACnD,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,SAAS,KAAK,SAAS,CAAC,EAAE,SAAS,CAAC;QAC1F,MAAM,SAAS,GAAG,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC,CAAC;QAC5F,OAAO,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAChE,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"legacy.js","sourceRoot":"","sources":["../../src/baseline/legacy.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,3 @@
1
1
  import { type BaselineEntry } from "./format.ts";
2
- export declare const rewriteBaseline: (raw: string | undefined, before: readonly BaselineEntry[], after: readonly BaselineEntry[]) => string;
2
+ export declare function rewriteBaseline(raw: string | undefined, before: readonly BaselineEntry[], after: readonly BaselineEntry[]): string;
3
3
  //# sourceMappingURL=rewrite.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"rewrite.d.ts","sourceRoot":"","sources":["../../src/baseline/rewrite.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,aAAa,EAAuC,MAAM,aAAa,CAAC;AAQtF,eAAO,MAAM,eAAe,QAAS,MAAM,GAAG,SAAS,UAAU,SAAS,aAAa,EAAE,SAAS,SAAS,aAAa,EAAE,KAAG,MAc5H,CAAC"}
1
+ {"version":3,"file":"rewrite.d.ts","sourceRoot":"","sources":["../../src/baseline/rewrite.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,aAAa,EAAuC,MAAM,aAAa,CAAC;AAQtF,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,EAAE,MAAM,EAAE,SAAS,aAAa,EAAE,EAAE,KAAK,EAAE,SAAS,aAAa,EAAE,GAAG,MAAM,CAclI"}
@@ -1,7 +1,7 @@
1
1
  import { keyOf } from "#engine/violation.ts";
2
2
  import { byPathAndRule, encodeEntry, linesOf } from "./format.js";
3
3
  // An untouched entry keeps its exact line and a new one goes before the first line that sorts after it, so two branches conflict only on the same or neighbouring entries.
4
- export const rewriteBaseline = (raw, before, after) => {
4
+ export function rewriteBaseline(raw, before, after) {
5
5
  const wanted = new Map(after.map((entry) => [keyOf(entry.rule, entry.file), entry]));
6
6
  const lines = linesOf(raw);
7
7
  const rows = before.flatMap((old, index) => {
@@ -15,5 +15,5 @@ export const rewriteBaseline = (raw, before, after) => {
15
15
  rows.splice(at === -1 ? rows.length : at, 0, { entry, text: encodeEntry(entry) });
16
16
  }
17
17
  return rows.map((row) => `${row.text}\n`).join("");
18
- };
18
+ }
19
19
  //# sourceMappingURL=rewrite.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"rewrite.js","sourceRoot":"","sources":["../../src/baseline/rewrite.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAC7C,OAAO,EAAsB,aAAa,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAOtF,2KAA2K;AAC3K,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,GAAuB,EAAE,MAAgC,EAAE,KAA+B,EAAU,EAAE;IACrI,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IACrF,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAC3B,MAAM,IAAI,GAAU,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;QACjD,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;QACpD,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;QAC1B,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;QACzC,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,KAAK,SAAS,IAAI,GAAG,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACvI,CAAC,CAAC,CAAC;IACH,KAAK,MAAM,KAAK,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC;QAC9D,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;QACxE,IAAI,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACnF,CAAC;IACD,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACpD,CAAC,CAAC"}
1
+ {"version":3,"file":"rewrite.js","sourceRoot":"","sources":["../../src/baseline/rewrite.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAC7C,OAAO,EAAsB,aAAa,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAOtF,2KAA2K;AAC3K,MAAM,UAAU,eAAe,CAAC,GAAuB,EAAE,MAAgC,EAAE,KAA+B;IACzH,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IACrF,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAC3B,MAAM,IAAI,GAAU,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;QACjD,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;QACpD,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;QAC1B,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;QACzC,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,KAAK,SAAS,IAAI,GAAG,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACvI,CAAC,CAAC,CAAC;IACH,KAAK,MAAM,KAAK,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC;QAC9D,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;QACxE,IAAI,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACnF,CAAC;IACD,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACpD,CAAC"}
@@ -15,10 +15,10 @@ export interface Pruned {
15
15
  readonly moved: number;
16
16
  readonly removed: number;
17
17
  }
18
- export declare const adopt: (existing: readonly BaselineEntry[] | undefined, rules: readonly string[], violations: readonly Violation[], index: RuleIndex) => Adoption;
18
+ export declare function adopt(existing: readonly BaselineEntry[] | undefined, rules: readonly string[], violations: readonly Violation[], index: RuleIndex): Adoption;
19
19
  export interface Scope {
20
20
  readonly files?: ReadonlySet<string> | undefined;
21
21
  readonly moves: ReadonlyMap<string, string>;
22
22
  }
23
- export declare const prune: (existing: readonly BaselineEntry[], violations: readonly Violation[], index: RuleIndex, scope?: Scope) => Pruned;
23
+ export declare function prune(existing: readonly BaselineEntry[], violations: readonly Violation[], index: RuleIndex, scope?: Scope): Pruned;
24
24
  //# sourceMappingURL=update.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../src/baseline/update.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmC,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEvG,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,MAAM,MAAM,QAAQ,GACjB;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,GACjE;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,SAAS,aAAa,EAAE,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC;AAE/H,MAAM,WAAW,MAAM;IACtB,QAAQ,CAAC,OAAO,EAAE,SAAS,aAAa,EAAE,CAAC;IAC3C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CACzB;AAoBD,eAAO,MAAM,KAAK,aACP,SAAS,aAAa,EAAE,GAAG,SAAS,SACvC,SAAS,MAAM,EAAE,cACZ,SAAS,SAAS,EAAE,SACzB,SAAS,KACd,QAaF,CAAC;AAEF,MAAM,WAAW,KAAK;IACrB,QAAQ,CAAC,KAAK,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC;IACjD,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC5C;AAgBD,eAAO,MAAM,KAAK,aACP,SAAS,aAAa,EAAE,cACtB,SAAS,SAAS,EAAE,SACzB,SAAS,UACT,KAAK,KACV,MAsBF,CAAC"}
1
+ {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../src/baseline/update.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmC,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEvG,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,MAAM,MAAM,QAAQ,GACjB;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,GACjE;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,SAAS,aAAa,EAAE,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC;AAE/H,MAAM,WAAW,MAAM;IACtB,QAAQ,CAAC,OAAO,EAAE,SAAS,aAAa,EAAE,CAAC;IAC3C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CACzB;AAqBD,wBAAgB,KAAK,CACpB,QAAQ,EAAE,SAAS,aAAa,EAAE,GAAG,SAAS,EAC9C,KAAK,EAAE,SAAS,MAAM,EAAE,EACxB,UAAU,EAAE,SAAS,SAAS,EAAE,EAChC,KAAK,EAAE,SAAS,GACd,QAAQ,CAeV;AAED,MAAM,WAAW,KAAK;IACrB,QAAQ,CAAC,KAAK,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC;IACjD,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC5C;AAiBD,wBAAgB,KAAK,CACpB,QAAQ,EAAE,SAAS,aAAa,EAAE,EAClC,UAAU,EAAE,SAAS,SAAS,EAAE,EAChC,KAAK,EAAE,SAAS,EAChB,KAAK,GAAE,KAA4B,GACjC,MAAM,CAsBR"}
@@ -1,21 +1,23 @@
1
1
  import { covers, groupBy, keyOf, levelOf } from "#engine/violation.ts";
2
2
  import { countOf } from "./compare.js";
3
- const record = (violations) => [...groupBy(violations, (violation) => keyOf(violation.rule, violation.file)).values()].flatMap((group) => {
4
- const first = group[0];
5
- if (first === undefined) {
6
- return [];
7
- }
8
- const count = countOf(group);
9
- return count > 0 ? [{ count, file: first.file, rule: first.rule }] : [];
10
- });
11
- const refusal = (id, index) => {
3
+ function record(violations) {
4
+ return [...groupBy(violations, (violation) => keyOf(violation.rule, violation.file)).values()].flatMap((group) => {
5
+ const first = group[0];
6
+ if (first === undefined) {
7
+ return [];
8
+ }
9
+ const count = countOf(group);
10
+ return count > 0 ? [{ count, file: first.file, rule: first.rule }] : [];
11
+ });
12
+ }
13
+ function refusal(id, index) {
12
14
  const level = levelOf(index, id);
13
15
  if (level === undefined) {
14
16
  return [`${id}: no built-in or local rule has this id.`];
15
17
  }
16
18
  return level === "error" ? [] : [`${id}: the rule is ${level}. Set it to error before baselining it.`];
17
- };
18
- export const adopt = (existing, rules, violations, index) => {
19
+ }
20
+ export function adopt(existing, rules, violations, index) {
19
21
  if (existing !== undefined && rules.length === 0) {
20
22
  return { _tag: "Refused", reasons: ["a baseline exists. Record a rule with --rule <id>, or drop fixed debt with prune."] };
21
23
  }
@@ -23,19 +25,23 @@ export const adopt = (existing, rules, violations, index) => {
23
25
  if (reasons.length > 0) {
24
26
  return { _tag: "Refused", reasons };
25
27
  }
26
- const named = (rule) => rules.some((name) => covers(name, rule));
28
+ function named(rule) {
29
+ return rules.some((name) => covers(name, rule));
30
+ }
27
31
  const kept = (existing ?? []).filter((entry) => !named(entry.rule));
28
32
  const adopted = violations.filter((violation) => violation.level === "error" && (rules.length === 0 || named(violation.rule)));
29
33
  const added = record(adopted);
30
34
  return { _tag: "Adopted", added: added.length, entries: [...kept, ...added], replaced: (existing ?? []).length - kept.length };
31
- };
32
- const inScope = (entry, scope) => scope.files === undefined || scope.files.has(entry.file) || scope.moves.has(entry.file);
33
- const destination = (before, current, moves, taken) => {
35
+ }
36
+ function inScope(entry, scope) {
37
+ return scope.files === undefined || scope.files.has(entry.file) || scope.moves.has(entry.file);
38
+ }
39
+ function destination(before, current, moves, taken) {
34
40
  const to = moves.get(before.file);
35
41
  const key = to === undefined ? undefined : keyOf(before.rule, to);
36
42
  return key === undefined || taken.has(key) ? undefined : current.get(key);
37
- };
38
- export const prune = (existing, violations, index, scope = { moves: new Map() }) => {
43
+ }
44
+ export function prune(existing, violations, index, scope = { moves: new Map() }) {
39
45
  const current = new Map(record(violations).map((entry) => [keyOf(entry.rule, entry.file), entry]));
40
46
  const taken = new Set(existing.map((entry) => keyOf(entry.rule, entry.file)));
41
47
  let moved = 0;
@@ -57,5 +63,5 @@ export const prune = (existing, violations, index, scope = { moves: new Map() })
57
63
  moved,
58
64
  removed: existing.length - kept.length,
59
65
  };
60
- };
66
+ }
61
67
  //# sourceMappingURL=update.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/baseline/update.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/baseline/update.ts"],"names":[],"mappings":"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"}
@@ -46,5 +46,5 @@ export type Parsed = {
46
46
  readonly problem: string;
47
47
  };
48
48
  export declare const USAGE = "Usage:\n quality lint [--config <file>] [--warnings summary|all]\n quality fix [--config <file>]\n quality exceptions migrate [--config <file>] [--from <registry>]\n quality baseline write [--config <file>] [--rule <id>]...\n quality baseline prune [--config <file>] [--against <ref>]\n quality baseline tighten [--config <file>] [--staged]\n quality baseline migrate [--config <file>] [--from <file>]\n quality hooks install [--config <file>] [--force]\n quality hooks uninstall\n quality hooks pre-commit [--config <file>]\n\nlint Run every rule. Exits 1 on an error-level violation, a file over its baseline, a stale registry entry\n or a baseline entry for a rule that is off or unknown.\nfix Sort every package.json, apply Biome's lint fixes, unsafe ones included, its assist actions and formatting, then format again.\nexceptions migrate Move legacy registry entries and Biome declarations into quality.config.ts exceptions and remove matching root overrides.\nbaseline write Record current error-level violations. Creates the baseline, or records the named rules again, replacing their entries.\nbaseline prune Drop fixed debt, lower entries to what is left and carry entries to files git saw move. Never adds or raises an entry.\nbaseline tighten Prune only the entries of files changed since HEAD, or with --staged, in the index.\nbaseline migrate Move a baseline from the earlier JSON format (--from, quality/baseline.json by default) to the configured file.\nhooks install Install the git pre-commit hook, shared by every worktree, that runs hooks pre-commit. Keeps a hook that is not quality's\n unless --force replaces it.\nhooks uninstall Remove quality's pre-commit hook. Keeps a hook that is not quality's.\nhooks pre-commit What the hook runs: lint, then package.json scripts typecheck and quality:commit when present.\n\n--config <file> Config file; its directory is the repository root. Without this option, uses ./quality.config.ts when present, otherwise defaults.\n--against <ref> The branch the work merges into, whose merge base prune follows moves from. Defaults to origin/HEAD, then origin/main, then origin/master.\nExit codes: 0 passed, 1 failed the gate, 2 could not run.";
49
- export declare const parseCommand: (args: readonly string[]) => Parsed;
49
+ export declare function parseCommand(args: readonly string[]): Parsed;
50
50
  //# sourceMappingURL=args.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"args.d.ts","sourceRoot":"","sources":["../../src/cli/args.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAGvD,MAAM,MAAM,OAAO,GAChB;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAA;CAAE,GAChG;IAAE,QAAQ,CAAC,IAAI,EAAE,mBAAmB,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,GAC9G;IAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,GAC7D;IAAE,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,GAC1G;IAAE,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,GAC7G;IAAE,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;CAAE,GACnG;IAAE,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,GAC5G;IAAE,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;CAAE,GAC/F;IAAE,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAA;CAAE,GACnC;IAAE,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,GACxE;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAE7B,MAAM,MAAM,MAAM,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;CAAE,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAEnI,eAAO,MAAM,KAAK,qvEAAgB,CAAC;AAiFnC,eAAO,MAAM,YAAY,SAAU,SAAS,MAAM,EAAE,KAAG,MAuBtD,CAAC"}
1
+ {"version":3,"file":"args.d.ts","sourceRoot":"","sources":["../../src/cli/args.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAGvD,MAAM,MAAM,OAAO,GAChB;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAA;CAAE,GAChG;IAAE,QAAQ,CAAC,IAAI,EAAE,mBAAmB,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,GAC9G;IAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,GAC7D;IAAE,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,GAC1G;IAAE,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,GAC7G;IAAE,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;CAAE,GACnG;IAAE,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,GAC5G;IAAE,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;CAAE,GAC/F;IAAE,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAA;CAAE,GACnC;IAAE,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,GACxE;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAE7B,MAAM,MAAM,MAAM,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;CAAE,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAEnI,eAAO,MAAM,KAAK,qvEAAgB,CAAC;AAsFnC,wBAAgB,YAAY,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,CAuB5D"}
package/dist/cli/args.js CHANGED
@@ -12,13 +12,17 @@ const OPTIONS = {
12
12
  staged: { type: "boolean" },
13
13
  warnings: { type: "string" },
14
14
  };
15
- const usage = (problem) => ({ _tag: "Usage", problem });
15
+ function usage(problem) {
16
+ return { _tag: "Usage", problem };
17
+ }
16
18
  const SUBCOMMANDS = {
17
19
  baseline: "baseline takes write, prune, tighten or migrate.",
18
20
  exceptions: "exceptions takes migrate.",
19
21
  hooks: "hooks takes install, uninstall or pre-commit.",
20
22
  };
21
- const parsed = (command) => ({ _tag: "Parsed", command });
23
+ function parsed(command) {
24
+ return { _tag: "Parsed", command };
25
+ }
22
26
  const COMMAND_OPTIONS = ["against", "force", "from", "rule", "staged", "warnings"];
23
27
  const ACCEPTS = {
24
28
  "baseline migrate": ["from"],
@@ -32,13 +36,15 @@ const ACCEPTS = {
32
36
  "hooks uninstall": [],
33
37
  lint: ["warnings"],
34
38
  };
35
- const misplaced = (name, values) => {
39
+ function misplaced(name, values) {
36
40
  const option = COMMAND_OPTIONS.find((key) => values[key] !== undefined && !(ACCEPTS[name] ?? []).includes(key));
37
41
  const owners = Object.keys(ACCEPTS).filter((owner) => option !== undefined && (ACCEPTS[owner] ?? []).includes(option));
38
42
  return option === undefined ? undefined : `--${option} applies only to ${owners.join(" and ")}.`;
39
- };
40
- const ref = (against, command) => against?.startsWith("-") === true ? usage(`--against takes a git ref, not "${against}".`) : parsed(command);
41
- const commandFor = (name, values) => {
43
+ }
44
+ function ref(against, command) {
45
+ return against?.startsWith("-") === true ? usage(`--against takes a git ref, not "${against}".`) : parsed(command);
46
+ }
47
+ function commandFor(name, values) {
42
48
  const config = values.config;
43
49
  switch (name) {
44
50
  case "lint": {
@@ -66,8 +72,8 @@ const commandFor = (name, values) => {
66
72
  default:
67
73
  return parsed({ _tag: "BaselineMigrate", config, from: values.from });
68
74
  }
69
- };
70
- export const parseCommand = (args) => {
75
+ }
76
+ export function parseCommand(args) {
71
77
  const result = Result.try({
72
78
  catch: (error) => (error instanceof Error ? error.message : String(error)),
73
79
  try: () => parseArgs({ allowPositionals: true, args: [...args], options: OPTIONS, strict: true }),
@@ -90,5 +96,5 @@ export const parseCommand = (args) => {
90
96
  }
91
97
  const problem = misplaced(name, values);
92
98
  return problem === undefined ? commandFor(name, values) : usage(problem);
93
- };
99
+ }
94
100
  //# sourceMappingURL=args.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"args.js","sourceRoot":"","sources":["../../src/cli/args.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"args.js","sourceRoot":"","sources":["../../src/cli/args.ts"],"names":[],"mappings":"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"}
@@ -3,5 +3,5 @@ import { type Scope } from "#baseline/update.ts";
3
3
  import { type Session } from "#engine/session.ts";
4
4
  import { SetupFailure } from "#failure.ts";
5
5
  export declare const writeBaseline: (cwd: string, config: string | undefined, rules: readonly string[]) => Effect.Effect<void, SetupFailure, FileSystem.FileSystem>;
6
- export declare const shrinkBaseline: <TRequirements>(cwd: string, config: string | undefined, scopeOf: (session: Session) => Effect.Effect<Scope, SetupFailure, TRequirements>) => Effect.Effect<void, SetupFailure, FileSystem.FileSystem | TRequirements>;
6
+ export declare const shrinkBaseline: <TRequirements>(cwd: string, config: string | undefined, scopeOf: (session: Session) => Effect.Effect<Scope, SetupFailure, TRequirements>) => Effect.Effect<void, SetupFailure, TRequirements | FileSystem.FileSystem>;
7
7
  //# sourceMappingURL=baseline.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"baseline.d.ts","sourceRoot":"","sources":["../../src/cli/baseline.ts"],"names":[],"mappings":"AACA,OAAO,EAAW,MAAM,EAAE,KAAK,UAAU,EAAE,MAAM,QAAQ,CAAC;AAG1D,OAAO,EAA6B,KAAK,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAC5E,OAAO,EAAe,KAAK,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE/D,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAY3C,eAAO,MAAM,aAAa,QACpB,MAAM,UACH,MAAM,GAAG,SAAS,SACnB,SAAS,MAAM,EAAE,KACtB,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,YAAY,EAAE,UAAU,CAAC,UAAU,CAcvD,CAAC;AAWJ,eAAO,MAAM,cAAc,GAAI,aAAa,OACtC,MAAM,UACH,MAAM,GAAG,SAAS,WACjB,CAAC,OAAO,EAAE,OAAO,KAAK,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,YAAY,EAAE,aAAa,CAAC,KAC9E,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,YAAY,EAAE,UAAU,CAAC,UAAU,GAAG,aAAa,CAYvE,CAAC"}
1
+ {"version":3,"file":"baseline.d.ts","sourceRoot":"","sources":["../../src/cli/baseline.ts"],"names":[],"mappings":"AACA,OAAO,EAAW,MAAM,EAAE,KAAK,UAAU,EAAE,MAAM,QAAQ,CAAC;AAG1D,OAAO,EAA6B,KAAK,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAC5E,OAAO,EAAe,KAAK,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE/D,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAe3C,eAAO,MAAM,aAAa,iIAiBxB,CAAC;AAWH,eAAO,MAAM,cAAc,GAA8C,aAAa,8DAGlE,OAAO,KAAK,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,YAAY,EAAE,aAAa,CAAC,6EAY/E,CAAC"}
@@ -7,9 +7,13 @@ import { applyRegistry } from "#exceptions/registry.ts";
7
7
  import { SetupFailure } from "#failure.ts";
8
8
  import { writeText } from "#inventory/filesystem.ts";
9
9
  import { plural } from "#report/plural.ts";
10
- const save = (session, entries) => Effect.mapError(writeText(join(session.config.root, session.config.baseline), rewriteBaseline(session.baseline.raw, session.baseline.entries, entries)), (failure) => new SetupFailure({ message: failure.message }));
11
- const unregistered = (session) => applyRegistry(session.violations, session.registry, session.config).kept;
12
- export const writeBaseline = (cwd, config, rules) => Effect.gen(function* () {
10
+ function save(session, entries) {
11
+ return Effect.mapError(writeText(join(session.config.root, session.config.baseline), rewriteBaseline(session.baseline.raw, session.baseline.entries, entries)), (failure) => new SetupFailure({ message: failure.message }));
12
+ }
13
+ function unregistered(session) {
14
+ return applyRegistry(session.violations, session.registry, session.config).kept;
15
+ }
16
+ export const writeBaseline = Effect.fn("Cli.writeBaseline")(function* (cwd, config, rules) {
13
17
  const session = yield* openSession(cwd, config);
14
18
  const existing = session.baseline.raw === undefined ? undefined : session.baseline.entries;
15
19
  const adoption = adopt(existing, rules, unregistered(session), session.config);
@@ -23,15 +27,15 @@ export const writeBaseline = (cwd, config, rules) => Effect.gen(function* () {
23
27
  const replaced = adoption.replaced > 0 ? `, replacing ${plural(adoption.replaced, "entry", "entries")}` : "";
24
28
  yield* Console.log(`quality: recorded ${plural(adoption.added, "entry", "entries")} in ${session.config.baseline}${replaced}.`);
25
29
  });
26
- const changes = (pruned) => {
30
+ function changes(pruned) {
27
31
  const parts = [
28
32
  `removed ${plural(pruned.removed, "entry", "entries")}`,
29
33
  `lowered ${plural(pruned.lowered, "entry", "entries")}`,
30
34
  ...(pruned.moved > 0 ? [`carried ${plural(pruned.moved, "entry", "entries")} to moved files`] : []),
31
35
  ];
32
36
  return `${parts.slice(0, -1).join(", ")} and ${parts.at(-1)}`;
33
- };
34
- export const shrinkBaseline = (cwd, config, scopeOf) => Effect.gen(function* () {
37
+ }
38
+ export const shrinkBaseline = Effect.fn("Cli.shrinkBaseline")(function* (cwd, config, scopeOf) {
35
39
  const session = yield* openSession(cwd, config);
36
40
  if (session.baseline.raw === undefined) {
37
41
  return yield* Console.log(`quality: no baseline at ${session.config.baseline}; nothing to lower.`);
@@ -1 +1 @@
1
- {"version":3,"file":"baseline.js","sourceRoot":"","sources":["../../src/cli/baseline.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"baseline.js","sourceRoot":"","sources":["../../src/cli/baseline.ts"],"names":[],"mappings":"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"}
package/dist/cli/fix.d.ts CHANGED
@@ -10,6 +10,6 @@ export interface Settling<TFailure, TRequirements> {
10
10
  readonly passes: readonly Pass<TFailure, TRequirements>[];
11
11
  readonly snapshot: Effect.Effect<ReadonlyMap<string, string>, TFailure, TRequirements>;
12
12
  }
13
- export declare function settle<TFailure, TRequirements>({ passes, snapshot, }: Settling<TFailure, TRequirements>): Effect.Effect<void, TFailure | SetupFailure, TRequirements>;
14
- export declare function fix(cwd: string, config: string | undefined): Effect.Effect<void, SetupFailure, FileSystem.FileSystem>;
13
+ export declare const settle: <TFailure, TRequirements>(args_0: Settling<TFailure, TRequirements>) => Effect.Effect<void, TFailure | SetupFailure, TRequirements>;
14
+ export declare const fix: (cwd: string, config: string | undefined) => Effect.Effect<void, SetupFailure, FileSystem.FileSystem>;
15
15
  //# sourceMappingURL=fix.d.ts.map