@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
@@ -1 +1 @@
1
- {"version":3,"file":"fix.d.ts","sourceRoot":"","sources":["../../src/cli/fix.ts"],"names":[],"mappings":"AACA,OAAO,EAAW,MAAM,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAIrD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAM3C,eAAO,MAAM,cAAc,IAAI,CAAC;AAahC,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,YAAY,EAAE,UAAU,CAAC,UAAU,CAAC,CAUxH;AAED,MAAM,WAAW,IAAI,CAAC,QAAQ,EAAE,aAAa;IAC5C,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;CAC7D;AAED,MAAM,WAAW,QAAQ,CAAC,QAAQ,EAAE,aAAa;IAChD,QAAQ,CAAC,MAAM,EAAE,SAAS,IAAI,CAAC,QAAQ,EAAE,aAAa,CAAC,EAAE,CAAC;IAC1D,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;CACvF;AA0DD,wBAAgB,MAAM,CAAC,QAAQ,EAAE,aAAa,EAAE,EAC/C,MAAM,EACN,QAAQ,GACR,EAAE,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,GAAG,YAAY,EAAE,aAAa,CAAC,CAoBjG;AAED,wBAAgB,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,YAAY,EAAE,UAAU,CAAC,UAAU,CAAC,CAOrH"}
1
+ {"version":3,"file":"fix.d.ts","sourceRoot":"","sources":["../../src/cli/fix.ts"],"names":[],"mappings":"AACA,OAAO,EAAW,MAAM,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAIrD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAM3C,eAAO,MAAM,cAAc,IAAI,CAAC;AAahC,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,YAAY,EAAE,UAAU,CAAC,UAAU,CAAC,CAUxH;AAED,MAAM,WAAW,IAAI,CAAC,QAAQ,EAAE,aAAa;IAC5C,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;CAC7D;AAED,MAAM,WAAW,QAAQ,CAAC,QAAQ,EAAE,aAAa;IAChD,QAAQ,CAAC,MAAM,EAAE,SAAS,IAAI,CAAC,QAAQ,EAAE,aAAa,CAAC,EAAE,CAAC;IAC1D,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;CACvF;AAwDD,eAAO,MAAM,MAAM,GAAsC,QAAQ,EAAE,aAAa,2GAqB9E,CAAC;AAEH,eAAO,MAAM,GAAG,uGAQd,CAAC"}
package/dist/cli/fix.js CHANGED
@@ -38,20 +38,18 @@ function biomePasses(root, exceptions) {
38
38
  { label: "with the format pass", run: changedBy(root, ["format", "--write"], exceptions) },
39
39
  ];
40
40
  }
41
- function round(passes, index, afterEachPass) {
42
- return Effect.gen(function* () {
43
- let total = 0;
44
- const parts = [];
45
- for (const pass of passes) {
46
- const changed = yield* pass.run;
47
- total += changed;
48
- parts.push(`${plural(changed, "file")} ${pass.label}`);
49
- yield* afterEachPass;
50
- }
51
- yield* Console.log(`quality: Biome round ${index} rewrote ${parts.join(" and ")}.`);
52
- return total;
53
- });
54
- }
41
+ const round = Effect.fn("Cli.round")(function* (passes, index, afterEachPass) {
42
+ let total = 0;
43
+ const parts = [];
44
+ for (const pass of passes) {
45
+ const changed = yield* pass.run;
46
+ total += changed;
47
+ parts.push(`${plural(changed, "file")} ${pass.label}`);
48
+ yield* afterEachPass;
49
+ }
50
+ yield* Console.log(`quality: Biome round ${index} rewrote ${parts.join(" and ")}.`);
51
+ return total;
52
+ });
55
53
  function changedBetween(before, after) {
56
54
  return [...new Set([...before.keys(), ...after.keys()])].filter((path) => before.get(path) !== after.get(path));
57
55
  }
@@ -68,33 +66,29 @@ function unsettled(changed) {
68
66
  message: [...named, "Two fixes probably undo each other there. Repair the conflicting code by hand so both checks pass."].join("\n"),
69
67
  });
70
68
  }
71
- export function settle({ passes, snapshot, }) {
72
- return Effect.gen(function* () {
73
- for (let index = 1; index < MAX_FIX_ROUNDS; index += 1) {
74
- if ((yield* round(passes, index, Effect.void)) === 0) {
75
- return;
76
- }
77
- }
78
- const changed = new Set();
79
- let previous = yield* snapshot;
80
- const record = Effect.map(snapshot, (current) => {
81
- for (const path of changedBetween(previous, current)) {
82
- changed.add(path);
83
- }
84
- previous = current;
85
- });
86
- if ((yield* round(passes, MAX_FIX_ROUNDS, record)) === 0) {
69
+ export const settle = Effect.fn("Cli.settle")(function* ({ passes, snapshot, }) {
70
+ for (let index = 1; index < MAX_FIX_ROUNDS; index += 1) {
71
+ if ((yield* round(passes, index, Effect.void)) === 0) {
87
72
  return;
88
73
  }
89
- return yield* unsettled(changed);
90
- });
91
- }
92
- export function fix(cwd, config) {
93
- return Effect.gen(function* () {
94
- const { root, exceptions } = yield* loadConfig(cwd, config);
95
- const sorted = yield* Effect.mapError(sortManifests(root), (failure) => new SetupFailure({ message: failure.message }));
96
- yield* Console.log(`quality: sort-package-json rewrote ${plural(sorted, "manifest")}.`);
97
- yield* settle({ passes: biomePasses(root, exceptions), snapshot: snapshotOf(root) });
74
+ }
75
+ const changed = new Set();
76
+ let previous = yield* snapshot;
77
+ const record = Effect.map(snapshot, (current) => {
78
+ for (const path of changedBetween(previous, current)) {
79
+ changed.add(path);
80
+ }
81
+ previous = current;
98
82
  });
99
- }
83
+ if ((yield* round(passes, MAX_FIX_ROUNDS, record)) === 0) {
84
+ return;
85
+ }
86
+ return yield* unsettled(changed);
87
+ });
88
+ export const fix = Effect.fn("Cli.fix")(function* (cwd, config) {
89
+ const { root, exceptions } = yield* loadConfig(cwd, config);
90
+ const sorted = yield* Effect.mapError(sortManifests(root), (failure) => new SetupFailure({ message: failure.message }));
91
+ yield* Console.log(`quality: sort-package-json rewrote ${plural(sorted, "manifest")}.`);
92
+ yield* settle({ passes: biomePasses(root, exceptions), snapshot: snapshotOf(root) });
93
+ });
100
94
  //# sourceMappingURL=fix.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fix.js","sourceRoot":"","sources":["../../src/cli/fix.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fix.js","sourceRoot":"","sources":["../../src/cli/fix.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { Effect, type FileSystem } from "effect";
2
2
  import { GateFailed, type SetupFailure } from "#failure.ts";
3
3
  import { type WarningDetail } from "#report/render.ts";
4
- export declare const lint: (cwd: string, config: string | undefined, warnings: WarningDetail) => Effect.Effect<void, SetupFailure | GateFailed, FileSystem.FileSystem>;
4
+ export declare const lint: (cwd: string, config: string | undefined, warnings: WarningDetail) => Effect.Effect<void, GateFailed | SetupFailure, FileSystem.FileSystem>;
5
5
  //# sourceMappingURL=lint.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"lint.d.ts","sourceRoot":"","sources":["../../src/cli/lint.ts"],"names":[],"mappings":"AACA,OAAO,EAAW,MAAM,EAAE,KAAK,UAAU,EAAE,MAAM,QAAQ,CAAC;AAG1D,OAAO,EAAE,UAAU,EAAE,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAC5D,OAAO,EAAU,KAAK,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAE/D,eAAO,MAAM,IAAI,QACX,MAAM,UACH,MAAM,GAAG,SAAS,YAChB,aAAa,KACrB,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,YAAY,GAAG,UAAU,EAAE,UAAU,CAAC,UAAU,CAiBpE,CAAC"}
1
+ {"version":3,"file":"lint.d.ts","sourceRoot":"","sources":["../../src/cli/lint.ts"],"names":[],"mappings":"AACA,OAAO,EAAW,MAAM,EAAE,KAAK,UAAU,EAAE,MAAM,QAAQ,CAAC;AAG1D,OAAO,EAAE,UAAU,EAAE,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAC5D,OAAO,EAAU,KAAK,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAE/D,eAAO,MAAM,IAAI,6IAmBf,CAAC"}
package/dist/cli/lint.js CHANGED
@@ -4,7 +4,7 @@ import { evaluate, passes } from "#engine/evaluate.ts";
4
4
  import { openSession } from "#engine/session.ts";
5
5
  import { GateFailed } from "#failure.ts";
6
6
  import { render } from "#report/render.ts";
7
- export const lint = (cwd, config, warnings) => Effect.gen(function* () {
7
+ export const lint = Effect.fn("Cli.lint")(function* (cwd, config, warnings) {
8
8
  const session = yield* openSession(cwd, config);
9
9
  const outcome = evaluate(session.violations, session.registry, session.baseline.entries, session.config);
10
10
  yield* Console.log(render(outcome, {
@@ -1 +1 @@
1
- {"version":3,"file":"lint.js","sourceRoot":"","sources":["../../src/cli/lint.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAmB,MAAM,QAAQ,CAAC;AAC1D,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAqB,MAAM,aAAa,CAAC;AAC5D,OAAO,EAAE,MAAM,EAAsB,MAAM,mBAAmB,CAAC;AAE/D,MAAM,CAAC,MAAM,IAAI,GAAG,CACnB,GAAW,EACX,MAA0B,EAC1B,QAAuB,EACiD,EAAE,CAC1E,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IACnB,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IAChD,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IACzG,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,CACjB,MAAM,CAAC,OAAO,EAAE;QACf,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,QAAQ;QACjC,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM;QACzC,YAAY,EAAE,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;QACvF,QAAQ,EACP,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa;QACtI,QAAQ;KACR,CAAC,CACF,CAAC;IACF,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;QACtB,OAAO,KAAK,CAAC,CAAC,IAAI,UAAU,EAAE,CAAC;IAChC,CAAC;AACF,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"lint.js","sourceRoot":"","sources":["../../src/cli/lint.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAmB,MAAM,QAAQ,CAAC;AAC1D,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAqB,MAAM,aAAa,CAAC;AAC5D,OAAO,EAAE,MAAM,EAAsB,MAAM,mBAAmB,CAAC;AAE/D,MAAM,CAAC,MAAM,IAAI,GAAG,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,EAClD,GAAW,EACX,MAA0B,EAC1B,QAAuB;IAEvB,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IAChD,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IACzG,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,CACjB,MAAM,CAAC,OAAO,EAAE;QACf,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,QAAQ;QACjC,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM;QACzC,YAAY,EAAE,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;QACvF,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa;QAC/I,QAAQ;KACR,CAAC,CACF,CAAC;IACF,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;QACtB,OAAO,KAAK,CAAC,CAAC,IAAI,UAAU,EAAE,CAAC;IAChC,CAAC;AACF,CAAC,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"migrate.d.ts","sourceRoot":"","sources":["../../src/cli/migrate.ts"],"names":[],"mappings":"AACA,OAAO,EAAW,MAAM,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAOrD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAI3C,eAAO,MAAM,eAAe,QACtB,MAAM,cACC,MAAM,GAAG,SAAS,QACxB,MAAM,GAAG,SAAS,KACtB,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,YAAY,EAAE,UAAU,CAAC,UAAU,CAmBvD,CAAC"}
1
+ {"version":3,"file":"migrate.d.ts","sourceRoot":"","sources":["../../src/cli/migrate.ts"],"names":[],"mappings":"AACA,OAAO,EAAW,MAAM,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAOrD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAI3C,eAAO,MAAM,eAAe,qIAsB1B,CAAC"}
@@ -9,7 +9,7 @@ import { scan } from "#engine/session.ts";
9
9
  import { SetupFailure } from "#failure.ts";
10
10
  import { writeText } from "#inventory/filesystem.ts";
11
11
  import { plural } from "#report/plural.ts";
12
- export const migrateBaseline = (cwd, configPath, from) => Effect.gen(function* () {
12
+ export const migrateBaseline = Effect.fn("Cli.migrateBaseline")(function* (cwd, configPath, from) {
13
13
  const config = yield* loadConfig(cwd, configPath);
14
14
  const source = from ?? LEGACY_BASELINE;
15
15
  if (source === config.baseline || (yield* readInput(config.root, config.baseline)) !== undefined) {
@@ -1 +1 @@
1
- {"version":3,"file":"migrate.js","sourceRoot":"","sources":["../../src/cli/migrate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3F,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAE3C,MAAM,CAAC,MAAM,eAAe,GAAG,CAC9B,GAAW,EACX,UAA8B,EAC9B,IAAwB,EACmC,EAAE,CAC7D,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IACnB,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;IAClD,MAAM,MAAM,GAAG,IAAI,IAAI,eAAe,CAAC;IACvC,IAAI,MAAM,KAAK,MAAM,CAAC,QAAQ,IAAI,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;QAClG,OAAO,KAAK,CAAC,CAAC,IAAI,YAAY,CAAC,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC,QAAQ,wEAAwE,EAAE,CAAC,CAAC;IACzI,CAAC;IACD,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAClD,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QACvB,OAAO,KAAK,CAAC,CAAC,IAAI,YAAY,CAAC,EAAE,OAAO,EAAE,kBAAkB,MAAM,0CAA0C,EAAE,CAAC,CAAC;IACjH,CAAC;IACD,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,WAAW,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAClG,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;IACxE,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC;IACxC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IAC7I,KAAK,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,YAAY,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IAC7F,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAC7C,MAAM,OAAO,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,cAAc,MAAM,CAAC,KAAK,EAAE,aAAa,EAAE,eAAe,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC/F,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC,SAAS,MAAM,OAAO,MAAM,CAAC,QAAQ,GAAG,OAAO,GAAG,CAAC,CAAC;AACpI,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"migrate.js","sourceRoot":"","sources":["../../src/cli/migrate.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { Effect } from "effect";
2
+ import { SetupFailure } from "#failure.ts";
3
+ import type { Launch } from "#hooks/command.ts";
4
+ export interface Invocation {
5
+ readonly cwd: string;
6
+ readonly launch: Launch;
7
+ }
8
+ export declare const program: (args: readonly string[], args_1: Invocation) => Effect.Effect<void, import("#failure.ts").GateFailed | SetupFailure, import("effect/process/ChildProcessSpawner").ChildProcessSpawner | import("effect/FileSystem").FileSystem>;
9
+ //# sourceMappingURL=program.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"program.d.ts","sourceRoot":"","sources":["../../src/cli/program.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,MAAM,EAAE,MAAM,QAAQ,CAAC;AAQzC,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAKhD,MAAM,WAAW,UAAU;IAC1B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACxB;AAED,eAAO,MAAM,OAAO,kOA8BlB,CAAC"}
@@ -0,0 +1,44 @@
1
+ import { Console, Effect } from "effect";
2
+ import { parseCommand, USAGE } from "#cli/args.ts";
3
+ import { writeBaseline } from "#cli/baseline.ts";
4
+ import { fix } from "#cli/fix.ts";
5
+ import { lint } from "#cli/lint.ts";
6
+ import { migrateBaseline } from "#cli/migrate.ts";
7
+ import { migrateExceptions } from "#cli/migrateExceptions.ts";
8
+ import { pruneBaseline, tightenBaseline } from "#cli/shrink.ts";
9
+ import { SetupFailure } from "#failure.ts";
10
+ import { installHook } from "#hooks/install.ts";
11
+ import { preCommitHook } from "#hooks/preCommit.ts";
12
+ import { uninstallHook } from "#hooks/uninstall.ts";
13
+ export const program = Effect.fn("Cli.program")(function* (args, { cwd, launch }) {
14
+ const parsed = parseCommand(args);
15
+ if (parsed._tag === "Usage") {
16
+ return yield* new SetupFailure({ message: `${parsed.problem}\n\n${USAGE}` });
17
+ }
18
+ const command = parsed.command;
19
+ switch (command._tag) {
20
+ case "Help":
21
+ return yield* Console.log(USAGE);
22
+ case "Lint":
23
+ return yield* lint(cwd, command.config, command.warnings);
24
+ case "Fix":
25
+ return yield* fix(cwd, command.config);
26
+ case "BaselineWrite":
27
+ return yield* writeBaseline(cwd, command.config, command.rules);
28
+ case "BaselinePrune":
29
+ return yield* pruneBaseline(cwd, command.config, command.against);
30
+ case "BaselineTighten":
31
+ return yield* tightenBaseline(cwd, command.config, command.staged);
32
+ case "ExceptionsMigrate":
33
+ return yield* migrateExceptions(cwd, command.config, command.from);
34
+ case "BaselineMigrate":
35
+ return yield* migrateBaseline(cwd, command.config, command.from);
36
+ case "HooksInstall":
37
+ return yield* installHook({ config: command.config, cwd, force: command.force, launch });
38
+ case "HooksUninstall":
39
+ return yield* uninstallHook(cwd);
40
+ case "HooksPreCommit":
41
+ return yield* preCommitHook(cwd, command.config);
42
+ }
43
+ });
44
+ //# sourceMappingURL=program.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"program.js","sourceRoot":"","sources":["../../src/cli/program.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACpC,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAOpD,MAAM,CAAC,MAAM,OAAO,GAAG,MAAM,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,EAAE,IAAuB,EAAE,EAAE,GAAG,EAAE,MAAM,EAAc;IAC9G,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IAClC,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC7B,OAAO,KAAK,CAAC,CAAC,IAAI,YAAY,CAAC,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC,OAAO,OAAO,KAAK,EAAE,EAAE,CAAC,CAAC;IAC9E,CAAC;IACD,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;IAC/B,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;QACtB,KAAK,MAAM;YACV,OAAO,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAClC,KAAK,MAAM;YACV,OAAO,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC3D,KAAK,KAAK;YACT,OAAO,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QACxC,KAAK,eAAe;YACnB,OAAO,KAAK,CAAC,CAAC,aAAa,CAAC,GAAG,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;QACjE,KAAK,eAAe;YACnB,OAAO,KAAK,CAAC,CAAC,aAAa,CAAC,GAAG,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;QACnE,KAAK,iBAAiB;YACrB,OAAO,KAAK,CAAC,CAAC,eAAe,CAAC,GAAG,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QACpE,KAAK,mBAAmB;YACvB,OAAO,KAAK,CAAC,CAAC,iBAAiB,CAAC,GAAG,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;QACpE,KAAK,iBAAiB;YACrB,OAAO,KAAK,CAAC,CAAC,eAAe,CAAC,GAAG,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;QAClE,KAAK,cAAc;YAClB,OAAO,KAAK,CAAC,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QAC1F,KAAK,gBAAgB;YACpB,OAAO,KAAK,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;QAClC,KAAK,gBAAgB;YACpB,OAAO,KAAK,CAAC,CAAC,aAAa,CAAC,GAAG,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IACnD,CAAC;AACF,CAAC,CAAC,CAAC"}
@@ -1,6 +1,9 @@
1
1
  import type { EventEmitter } from "node:events";
2
- import { Effect, type FileSystem } from "effect";
2
+ import { Effect, Exit, type FileSystem, Layer } from "effect";
3
3
  import type { Git } from "#git/command.ts";
4
+ export declare function exitCode(exit: Exit.Exit<unknown, unknown>): number;
4
5
  export declare function quietOnClosedPipe(stream: EventEmitter): void;
5
- export declare const runMain: <TValue, TError>(program: Effect.Effect<TValue, TError, FileSystem.FileSystem | Git>) => void;
6
+ export declare const services: Layer.Layer<import("effect/process/ChildProcessSpawner").ChildProcessSpawner | FileSystem.FileSystem | import("effect/Path").Path, never, never>;
7
+ export declare function explained<TValue, TError, TRequirements>(program: Effect.Effect<TValue, TError, TRequirements>): Effect.Effect<TValue, TError, TRequirements>;
8
+ export declare function runMain<TValue, TError>(program: Effect.Effect<TValue, TError, FileSystem.FileSystem | Git>): void;
6
9
  //# sourceMappingURL=run-main.d.ts.map
@@ -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,MAAM,EAAE,MAAM,WAAW,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,UAAU,GAAG,GAAG,CAAC,KAAG,IAK7G,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,EAAE,IAAI,EAAE,KAAK,UAAU,EAAE,KAAK,EAAW,MAAM,QAAQ,CAAC;AAEvF,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AAiB3C,wBAAgB,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,MAAM,CAKlE;AAUD,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAM5D;AAED,eAAO,MAAM,QAAQ,kJAA+G,CAAC;AAErI,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,aAAa,EACtD,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,aAAa,CAAC,GACnD,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,aAAa,CAAC,CAE9C;AAED,wBAAgB,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,UAAU,GAAG,GAAG,CAAC,GAAG,IAAI,CAIjH"}
@@ -7,23 +7,25 @@ import { Cause, Console, Effect, Exit, Layer, Runtime } from "effect";
7
7
  import { SetupFailure } from "#failure.ts";
8
8
  const INTERRUPTED = 130;
9
9
  const COULD_NOT_RUN = 2;
10
- const explain = (cause) => {
10
+ function explain(cause) {
11
11
  const error = Cause.squash(cause);
12
12
  if (error instanceof SetupFailure) {
13
13
  return Console.error(`quality: ${error.message}`);
14
14
  }
15
15
  return Runtime.getErrorReported(error) ? Console.error(`quality: internal error\n${Cause.pretty(cause)}`) : Effect.void;
16
- };
17
- const exitCodeOf = (error) => typeof error === "object" && error !== null && Runtime.errorExitCode in error ? Runtime.getErrorExitCode(error) : COULD_NOT_RUN;
18
- const exitCode = (exit) => {
16
+ }
17
+ function exitCodeOf(error) {
18
+ return typeof error === "object" && error !== null && Runtime.errorExitCode in error ? Runtime.getErrorExitCode(error) : COULD_NOT_RUN;
19
+ }
20
+ export function exitCode(exit) {
19
21
  if (Exit.isSuccess(exit)) {
20
22
  return 0;
21
23
  }
22
24
  return Cause.hasInterruptsOnly(exit.cause) ? INTERRUPTED : exitCodeOf(Cause.squash(exit.cause));
23
- };
24
- const teardown = (exit, onExit) => {
25
+ }
26
+ function teardown(exit, onExit) {
25
27
  process.stdout.write("", () => process.stderr.write("", () => onExit(exitCode(exit))));
26
- };
28
+ }
27
29
  function isClosedPipe(error) {
28
30
  return error instanceof Error && "code" in error && error.code === "EPIPE";
29
31
  }
@@ -34,11 +36,13 @@ export function quietOnClosedPipe(stream) {
34
36
  }
35
37
  });
36
38
  }
37
- const services = NodeChildProcessSpawner.layer.pipe(Layer.provideMerge(Layer.mergeAll(NodeFileSystem.layer, NodePath.layer)));
38
- export const runMain = (program) => {
39
+ export const services = NodeChildProcessSpawner.layer.pipe(Layer.provideMerge(Layer.mergeAll(NodeFileSystem.layer, NodePath.layer)));
40
+ export function explained(program) {
41
+ return Effect.tapCause(program, (cause) => (Cause.hasInterruptsOnly(cause) ? Effect.void : explain(cause)));
42
+ }
43
+ export function runMain(program) {
39
44
  quietOnClosedPipe(process.stdout);
40
45
  quietOnClosedPipe(process.stderr);
41
- const explained = Effect.tapCause(program, (cause) => (Cause.hasInterruptsOnly(cause) ? Effect.void : explain(cause)));
42
- NodeRuntime.runMain(Effect.provide(explained, services), { disableErrorReporting: true, teardown });
43
- };
46
+ NodeRuntime.runMain(Effect.provide(explained(program), services), { disableErrorReporting: true, teardown });
47
+ }
44
48
  //# sourceMappingURL=run-main.js.map
@@ -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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"}
@@ -1,6 +1,6 @@
1
1
  import { Effect, type FileSystem } from "effect";
2
2
  import type { SetupFailure } from "#failure.ts";
3
3
  import type { Git } from "#git/command.ts";
4
- export declare const pruneBaseline: (cwd: string, config: string | undefined, against: string | undefined) => Effect.Effect<void, SetupFailure, FileSystem.FileSystem | Git>;
5
- export declare const tightenBaseline: (cwd: string, config: string | undefined, staged: boolean) => Effect.Effect<void, SetupFailure, FileSystem.FileSystem | Git>;
4
+ export declare function pruneBaseline(cwd: string, config: string | undefined, against: string | undefined): Effect.Effect<void, SetupFailure, FileSystem.FileSystem | Git>;
5
+ export declare function tightenBaseline(cwd: string, config: string | undefined, staged: boolean): Effect.Effect<void, SetupFailure, FileSystem.FileSystem | Git>;
6
6
  //# sourceMappingURL=shrink.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"shrink.d.ts","sourceRoot":"","sources":["../../src/cli/shrink.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,MAAM,EAAE,KAAK,UAAU,EAAE,MAAM,QAAQ,CAAC;AAE1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AAc3C,eAAO,MAAM,aAAa,QACpB,MAAM,UACH,MAAM,GAAG,SAAS,WACjB,MAAM,GAAG,SAAS,KACzB,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,YAAY,EAAE,UAAU,CAAC,UAAU,GAAG,GAAG,CACsB,CAAC;AAEvF,eAAO,MAAM,eAAe,QACtB,MAAM,UACH,MAAM,GAAG,SAAS,UAClB,OAAO,KACb,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,YAAY,EAAE,UAAU,CAAC,UAAU,GAAG,GAAG,CAC8C,CAAC"}
1
+ {"version":3,"file":"shrink.d.ts","sourceRoot":"","sources":["../../src/cli/shrink.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,MAAM,EAAE,KAAK,UAAU,EAAE,MAAM,QAAQ,CAAC;AAE1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AAe3C,wBAAgB,aAAa,CAC5B,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,OAAO,EAAE,MAAM,GAAG,SAAS,GACzB,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,YAAY,EAAE,UAAU,CAAC,UAAU,GAAG,GAAG,CAAC,CAEhE;AAED,wBAAgB,eAAe,CAC9B,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,MAAM,EAAE,OAAO,GACb,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,YAAY,EAAE,UAAU,CAAC,UAAU,GAAG,GAAG,CAAC,CAEhE"}
@@ -2,7 +2,13 @@ import { Console, Effect } from "effect";
2
2
  import { resolveBase } from "#git/base.ts";
3
3
  import { changesSince } from "#git/history.ts";
4
4
  import { shrinkBaseline } from "./baseline.js";
5
- const followedMoves = (root, against) => resolveBase(root, against).pipe(Effect.flatMap((base) => changesSince(root, [base.commit])), Effect.map((changes) => ({ moves: changes.moves })), Effect.catchIf(() => against === undefined, (failure) => Effect.as(Console.error(`quality: moved files are not followed: ${failure.message}`), { moves: new Map() })));
6
- export const pruneBaseline = (cwd, config, against) => shrinkBaseline(cwd, config, (session) => followedMoves(session.config.root, against));
7
- export const tightenBaseline = (cwd, config, staged) => shrinkBaseline(cwd, config, (session) => changesSince(session.config.root, staged ? ["--cached"] : ["HEAD"]));
5
+ function followedMoves(root, against) {
6
+ return resolveBase(root, against).pipe(Effect.flatMap((base) => changesSince(root, [base.commit])), Effect.map((changes) => ({ moves: changes.moves })), Effect.catchIf(() => against === undefined, (failure) => Effect.as(Console.error(`quality: moved files are not followed: ${failure.message}`), { moves: new Map() })));
7
+ }
8
+ export function pruneBaseline(cwd, config, against) {
9
+ return shrinkBaseline(cwd, config, (session) => followedMoves(session.config.root, against));
10
+ }
11
+ export function tightenBaseline(cwd, config, staged) {
12
+ return shrinkBaseline(cwd, config, (session) => changesSince(session.config.root, staged ? ["--cached"] : ["HEAD"]));
13
+ }
8
14
  //# sourceMappingURL=shrink.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"shrink.js","sourceRoot":"","sources":["../../src/cli/shrink.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAmB,MAAM,QAAQ,CAAC;AAG1D,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE/C,MAAM,aAAa,GAAG,CAAC,IAAY,EAAE,OAA2B,EAA2C,EAAE,CAC5G,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,IAAI,CAC9B,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAC3D,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,EAAS,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,EAC1D,MAAM,CAAC,OAAO,CACb,GAAG,EAAE,CAAC,OAAO,KAAK,SAAS,EAC3B,CAAC,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,0CAA0C,OAAO,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,GAAG,EAAE,EAAE,CAAC,CACxH,CACD,CAAC;AAEH,MAAM,CAAC,MAAM,aAAa,GAAG,CAC5B,GAAW,EACX,MAA0B,EAC1B,OAA2B,EACsC,EAAE,CACnE,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;AAEvF,MAAM,CAAC,MAAM,eAAe,GAAG,CAC9B,GAAW,EACX,MAA0B,EAC1B,MAAe,EACkD,EAAE,CACnE,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"shrink.js","sourceRoot":"","sources":["../../src/cli/shrink.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAmB,MAAM,QAAQ,CAAC;AAG1D,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE/C,SAAS,aAAa,CAAC,IAAY,EAAE,OAA2B;IAC/D,OAAO,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,IAAI,CACrC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAC3D,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,EAAS,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,EAC1D,MAAM,CAAC,OAAO,CACb,GAAG,EAAE,CAAC,OAAO,KAAK,SAAS,EAC3B,CAAC,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,0CAA0C,OAAO,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,GAAG,EAAE,EAAE,CAAC,CACxH,CACD,CAAC;AACH,CAAC;AAED,MAAM,UAAU,aAAa,CAC5B,GAAW,EACX,MAA0B,EAC1B,OAA2B;IAE3B,OAAO,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;AAC9F,CAAC;AAED,MAAM,UAAU,eAAe,CAC9B,GAAW,EACX,MAA0B,EAC1B,MAAe;IAEf,OAAO,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACtH,CAAC"}
package/dist/cli.js CHANGED
@@ -1,53 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
  import process from "node:process";
3
- import { Console, Effect } from "effect";
4
- import { parseCommand, USAGE } from "#cli/args.ts";
5
- import { writeBaseline } from "#cli/baseline.ts";
6
- import { fix } from "#cli/fix.ts";
7
- import { lint } from "#cli/lint.ts";
8
- import { migrateBaseline } from "#cli/migrate.ts";
9
- import { migrateExceptions } from "#cli/migrateExceptions.ts";
3
+ import { program } from "#cli/program.ts";
10
4
  import { runMain } from "#cli/run-main.ts";
11
- import { pruneBaseline, tightenBaseline } from "#cli/shrink.ts";
12
- import { installHook } from "#hooks/install.ts";
13
- import { preCommitHook } from "#hooks/preCommit.ts";
14
- import { uninstallHook } from "#hooks/uninstall.ts";
15
- import { SetupFailure } from "./failure.js";
16
- const parsed = parseCommand(process.argv.slice(2));
17
- const program = Effect.gen(function* () {
18
- if (parsed._tag === "Usage") {
19
- return yield* new SetupFailure({ message: `${parsed.problem}\n\n${USAGE}` });
20
- }
21
- const command = parsed.command;
22
- switch (command._tag) {
23
- case "Help":
24
- return yield* Console.log(USAGE);
25
- case "Lint":
26
- return yield* lint(process.cwd(), command.config, command.warnings);
27
- case "Fix":
28
- return yield* fix(process.cwd(), command.config);
29
- case "BaselineWrite":
30
- return yield* writeBaseline(process.cwd(), command.config, command.rules);
31
- case "BaselinePrune":
32
- return yield* pruneBaseline(process.cwd(), command.config, command.against);
33
- case "BaselineTighten":
34
- return yield* tightenBaseline(process.cwd(), command.config, command.staged);
35
- case "ExceptionsMigrate":
36
- return yield* migrateExceptions(process.cwd(), command.config, command.from);
37
- case "BaselineMigrate":
38
- return yield* migrateBaseline(process.cwd(), command.config, command.from);
39
- case "HooksInstall":
40
- return yield* installHook({
41
- config: command.config,
42
- cwd: process.cwd(),
43
- force: command.force,
44
- launch: { options: process.execArgv, script: process.argv[1] ?? "" },
45
- });
46
- case "HooksUninstall":
47
- return yield* uninstallHook(process.cwd());
48
- case "HooksPreCommit":
49
- return yield* preCommitHook(process.cwd(), command.config);
50
- }
51
- });
52
- runMain(program);
5
+ runMain(program(process.argv.slice(2), { cwd: process.cwd(), launch: { options: process.execArgv, script: process.argv[1] ?? "" } }));
53
6
  //# sourceMappingURL=cli.js.map
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA,OAAO,OAAO,MAAM,cAAc,CAAC;AACnC,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAE3C,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC"}
@@ -21,6 +21,6 @@ declare const ConfigInput: Schema.Struct<{
21
21
  readonly sources: Schema.optionalKey<Schema.$Array<Schema.String>>;
22
22
  }>;
23
23
  export type ConfigInput = typeof ConfigInput.Type;
24
- export declare const decodeConfig: (value: unknown) => Promise<Decoded<ConfigInput>>;
24
+ export declare function decodeConfig(value: unknown): Promise<Decoded<ConfigInput>>;
25
25
  export {};
26
26
  //# sourceMappingURL=decode.d.ts.map
@@ -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;AAEvD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AA2BrC,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;AAEvD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AA8BrC,QAAA,MAAM,WAAW;;;;;;;;;;;;;;;;;;EAUf,CAAC;AAEH,MAAM,MAAM,WAAW,GAAG,OAAO,WAAW,CAAC,IAAI,CAAC;AAIlD,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAE1E"}
@@ -1,14 +1,16 @@
1
1
  import { Schema } from "effect";
2
2
  import { decodeWith } from "#decoded.ts";
3
3
  import { ExceptionDeclaration } from "#exceptions/declaration.ts";
4
- const isRule = (value) => typeof value === "object"
5
- && value !== null
6
- && "id" in value
7
- && typeof value.id === "string"
8
- && "description" in value
9
- && typeof value.description === "string"
10
- && "configure" in value
11
- && typeof value.configure === "function";
4
+ function isRule(value) {
5
+ return (typeof value === "object"
6
+ && value !== null
7
+ && "id" in value
8
+ && typeof value.id === "string"
9
+ && "description" in value
10
+ && typeof value.description === "string"
11
+ && "configure" in value
12
+ && typeof value.configure === "function");
13
+ }
12
14
  const Level = Schema.Literal("error");
13
15
  const Setting = Schema.Union([Level, Schema.Struct({ level: Schema.optionalKey(Level), options: Schema.optionalKey(Schema.Unknown) })]);
14
16
  const LocalRule = Schema.declare(isRule, { expected: "a rule made with defineRule" });
@@ -30,5 +32,7 @@ const ConfigInput = Schema.Struct({
30
32
  sources: Schema.optionalKey(Schema.Array(Schema.String)),
31
33
  });
32
34
  const standard = Schema.toStandardSchemaV1(ConfigInput, { parseOptions: { errors: "all", onExcessProperty: "error" } });
33
- export const decodeConfig = (value) => decodeWith(standard, value);
35
+ export function decodeConfig(value) {
36
+ return decodeWith(standard, value);
37
+ }
34
38
  //# sourceMappingURL=decode.js.map
@@ -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;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAGlE,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,oBAAoB,CAAC,CAAC;IAClE,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
+ {"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;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAGlE,SAAS,MAAM,CAAC,KAAc;IAC7B,OAAO,CACN,OAAO,KAAK,KAAK,QAAQ;WACtB,KAAK,KAAK,IAAI;WACd,IAAI,IAAI,KAAK;WACb,OAAO,KAAK,CAAC,EAAE,KAAK,QAAQ;WAC5B,aAAa,IAAI,KAAK;WACtB,OAAO,KAAK,CAAC,WAAW,KAAK,QAAQ;WACrC,WAAW,IAAI,KAAK;WACpB,OAAO,KAAK,CAAC,SAAS,KAAK,UAAU,CACxC,CAAC;AACH,CAAC;AAED,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,oBAAoB,CAAC,CAAC;IAClE,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,UAAU,YAAY,CAAC,KAAc;IAC1C,OAAO,UAAU,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;AACpC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"load.d.ts","sourceRoot":"","sources":["../../src/config/load.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAU,MAAM,QAAQ,CAAC;AAEpD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AACvE,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAE5D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2CAA2C,CAAC;AAG7E,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,iBAAiB,EAAE,SAAS,WAAW,EAAE,CAAC;IACnD,QAAQ,CAAC,UAAU,EAAE,SAAS,oBAAoB,EAAE,CAAC;IACrD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACtB;AAoCD,eAAO,MAAM,UAAU,QAAS,MAAM,QAAQ,MAAM,GAAG,SAAS,KAAG,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE,YAAY,EAAE,UAAU,CAAC,UAAU,CAqBjI,CAAC"}
1
+ {"version":3,"file":"load.d.ts","sourceRoot":"","sources":["../../src/config/load.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAU,MAAM,QAAQ,CAAC;AAEpD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AACvE,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAE5D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2CAA2C,CAAC;AAG7E,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,iBAAiB,EAAE,SAAS,WAAW,EAAE,CAAC;IACnD,QAAQ,CAAC,UAAU,EAAE,SAAS,oBAAoB,EAAE,CAAC;IACrD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACtB;AAyCD,eAAO,MAAM,UAAU,+GAuBrB,CAAC"}
@@ -16,32 +16,38 @@ import { decodeConfig } from "./decode.js";
16
16
  import { CONFIG_FILE } from "./file.js";
17
17
  import { resolveRules } from "./resolve.js";
18
18
  const DEFAULT_EXTENSIONS = [".ts", ".tsx", ".mts", ".cts", ".js", ".jsx", ".mjs", ".cjs"];
19
- const messageOf = (cause) => (cause instanceof Error ? cause.message : String(cause));
20
- const importDefault = (file) => Effect.flatMap(Effect.tryPromise({
21
- catch: (cause) => new SetupFailure({ message: `cannot load ${file}: ${messageOf(cause)}` }),
22
- try: async () => import(__rewriteRelativeImportExtension(pathToFileURL(file).href)),
23
- }), (loaded) => typeof loaded === "object" && loaded !== null && "default" in loaded
24
- ? Effect.succeed(loaded.default)
25
- : Effect.fail(new SetupFailure({ message: `${file} has no default export. Export defineConfig({ ... }) as the default.` })));
19
+ function messageOf(cause) {
20
+ return cause instanceof Error ? cause.message : String(cause);
21
+ }
22
+ function importDefault(file) {
23
+ return Effect.flatMap(Effect.tryPromise({
24
+ catch: (cause) => new SetupFailure({ message: `cannot load ${file}: ${messageOf(cause)}` }),
25
+ try: async () => import(__rewriteRelativeImportExtension(pathToFileURL(file).href)),
26
+ }), (loaded) => typeof loaded === "object" && loaded !== null && "default" in loaded
27
+ ? Effect.succeed(loaded.default)
28
+ : Effect.fail(new SetupFailure({ message: `${file} has no default export. Export defineConfig({ ... }) as the default.` })));
29
+ }
26
30
  const LegacyOptions = Schema.Struct({ declared: Schema.Array(ConsumerDeclaration) });
27
31
  function biomeDeclarations(config) {
28
32
  const setting = config.rules?.["suppressions/biome-overrides"];
29
33
  const options = typeof setting === "object" ? setting.options : undefined;
30
34
  return Schema.is(LegacyOptions)(options) ? options.declared : [];
31
35
  }
32
- const resolved = (root, file, config, rules) => ({
33
- ...rules,
34
- baseline: config.baseline ?? "quality/baseline.jsonl",
35
- biomeDeclarations: biomeDeclarations(config),
36
- exceptions: config.exceptions ?? [],
37
- exclude: [],
38
- extensions: config.extensions ?? DEFAULT_EXTENSIONS,
39
- file,
40
- registry: config.registry ?? "quality/registry.json",
41
- root,
42
- sources: config.sources ?? ["."],
43
- });
44
- export const loadConfig = (cwd, path) => Effect.gen(function* () {
36
+ function resolved(root, file, config, rules) {
37
+ return {
38
+ ...rules,
39
+ baseline: config.baseline ?? "quality/baseline.jsonl",
40
+ biomeDeclarations: biomeDeclarations(config),
41
+ exceptions: config.exceptions ?? [],
42
+ exclude: [],
43
+ extensions: config.extensions ?? DEFAULT_EXTENSIONS,
44
+ file,
45
+ registry: config.registry ?? "quality/registry.json",
46
+ root,
47
+ sources: config.sources ?? ["."],
48
+ };
49
+ }
50
+ export const loadConfig = Effect.fn("Config.loadConfig")(function* (cwd, path) {
45
51
  const fs = yield* FileSystem.FileSystem;
46
52
  const file = resolve(cwd, path ?? CONFIG_FILE);
47
53
  const entries = yield* fs