@shivaedev/quality 0.23.0 → 0.25.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 (411) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/README.md +6 -2
  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 +6 -4
  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 +27 -21
  22. package/dist/baseline/update.js.map +1 -1
  23. package/dist/cli/args.d.ts +2 -4
  24. package/dist/cli/args.d.ts.map +1 -1
  25. package/dist/cli/args.js +19 -18
  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 +35 -41
  34. package/dist/cli/fix.js.map +1 -1
  35. package/dist/cli/lint.d.ts +1 -2
  36. package/dist/cli/lint.d.ts.map +1 -1
  37. package/dist/cli/lint.js +1 -2
  38. package/dist/cli/lint.js.map +1 -1
  39. package/dist/cli/messages.d.ts +1 -1
  40. package/dist/cli/messages.d.ts.map +1 -1
  41. package/dist/cli/messages.js +2 -2
  42. package/dist/cli/migrate.d.ts.map +1 -1
  43. package/dist/cli/migrate.js +2 -2
  44. package/dist/cli/migrate.js.map +1 -1
  45. package/dist/cli/migrateExceptions.js +1 -1
  46. package/dist/cli/migrateExceptions.js.map +1 -1
  47. package/dist/cli/program.js +1 -1
  48. package/dist/cli/program.js.map +1 -1
  49. package/dist/cli/{run-main.d.ts → runMain.d.ts} +1 -1
  50. package/dist/cli/runMain.d.ts.map +1 -0
  51. package/dist/cli/{run-main.js → runMain.js} +3 -3
  52. package/dist/cli/runMain.js.map +1 -0
  53. package/dist/cli/shrink.d.ts +2 -2
  54. package/dist/cli/shrink.d.ts.map +1 -1
  55. package/dist/cli/shrink.js +9 -3
  56. package/dist/cli/shrink.js.map +1 -1
  57. package/dist/cli.js +1 -1
  58. package/dist/cli.js.map +1 -1
  59. package/dist/config/decode.d.ts +1 -1
  60. package/dist/config/decode.d.ts.map +1 -1
  61. package/dist/config/decode.js +13 -9
  62. package/dist/config/decode.js.map +1 -1
  63. package/dist/config/load.d.ts.map +1 -1
  64. package/dist/config/load.js +26 -20
  65. package/dist/config/load.js.map +1 -1
  66. package/dist/config/resolve.d.ts +23 -3
  67. package/dist/config/resolve.d.ts.map +1 -1
  68. package/dist/config/resolve.js +19 -11
  69. package/dist/config/resolve.js.map +1 -1
  70. package/dist/config.d.ts +3 -3
  71. package/dist/config.d.ts.map +1 -1
  72. package/dist/config.js +3 -1
  73. package/dist/config.js.map +1 -1
  74. package/dist/decoded.d.ts +3 -3
  75. package/dist/decoded.d.ts.map +1 -1
  76. package/dist/decoded.js +8 -6
  77. package/dist/decoded.js.map +1 -1
  78. package/dist/engine/{baseline-file.d.ts → baselineFile.d.ts} +2 -2
  79. package/dist/engine/baselineFile.d.ts.map +1 -0
  80. package/dist/engine/{baseline-file.js → baselineFile.js} +5 -3
  81. package/dist/engine/baselineFile.js.map +1 -0
  82. package/dist/engine/evaluate.d.ts +2 -3
  83. package/dist/engine/evaluate.d.ts.map +1 -1
  84. package/dist/engine/evaluate.js +6 -5
  85. package/dist/engine/evaluate.js.map +1 -1
  86. package/dist/engine/{run-rules.d.ts → runRules.d.ts} +2 -2
  87. package/dist/engine/runRules.d.ts.map +1 -0
  88. package/dist/engine/runRules.js +44 -0
  89. package/dist/engine/runRules.js.map +1 -0
  90. package/dist/engine/session.d.ts +1 -1
  91. package/dist/engine/session.d.ts.map +1 -1
  92. package/dist/engine/session.js +10 -6
  93. package/dist/engine/session.js.map +1 -1
  94. package/dist/engine/violation.d.ts +8 -8
  95. package/dist/engine/violation.d.ts.map +1 -1
  96. package/dist/engine/violation.js +23 -11
  97. package/dist/engine/violation.js.map +1 -1
  98. package/dist/exceptions/registry.d.ts +2 -2
  99. package/dist/exceptions/registry.d.ts.map +1 -1
  100. package/dist/exceptions/registry.js +10 -6
  101. package/dist/exceptions/registry.js.map +1 -1
  102. package/dist/git/base.d.ts +1 -2
  103. package/dist/git/base.d.ts.map +1 -1
  104. package/dist/git/base.js +22 -10
  105. package/dist/git/base.js.map +1 -1
  106. package/dist/git/command.d.ts +2 -2
  107. package/dist/git/command.d.ts.map +1 -1
  108. package/dist/git/command.js +13 -9
  109. package/dist/git/command.js.map +1 -1
  110. package/dist/git/history.d.ts +1 -1
  111. package/dist/git/history.d.ts.map +1 -1
  112. package/dist/git/history.js +5 -3
  113. package/dist/git/history.js.map +1 -1
  114. package/dist/hooks/preCommit.js +1 -1
  115. package/dist/hooks/preCommit.js.map +1 -1
  116. package/dist/imports/generated.js +1 -1
  117. package/dist/imports/generated.js.map +1 -1
  118. package/dist/imports/{pnpm-workspace.d.ts → pnpmWorkspacePatterns.d.ts} +1 -1
  119. package/dist/imports/pnpmWorkspacePatterns.d.ts.map +1 -0
  120. package/dist/imports/{pnpm-workspace.js → pnpmWorkspacePatterns.js} +1 -1
  121. package/dist/imports/pnpmWorkspacePatterns.js.map +1 -0
  122. package/dist/imports/resolve.js +1 -1
  123. package/dist/imports/resolve.js.map +1 -1
  124. package/dist/imports/workspace.js +1 -1
  125. package/dist/imports/workspace.js.map +1 -1
  126. package/dist/inventory/collect.d.ts +1 -1
  127. package/dist/inventory/collect.d.ts.map +1 -1
  128. package/dist/inventory/collect.js +8 -6
  129. package/dist/inventory/collect.js.map +1 -1
  130. package/dist/inventory/filesystem.d.ts +1 -1
  131. package/dist/inventory/filesystem.d.ts.map +1 -1
  132. package/dist/inventory/filesystem.js +11 -7
  133. package/dist/inventory/filesystem.js.map +1 -1
  134. package/dist/inventory/ignoreScope.d.ts +17 -0
  135. package/dist/inventory/ignoreScope.d.ts.map +1 -0
  136. package/dist/inventory/{ignore-scope.js → ignoreScope.js} +19 -10
  137. package/dist/inventory/ignoreScope.js.map +1 -0
  138. package/dist/inventory/walk.d.ts +1 -1
  139. package/dist/inventory/walk.d.ts.map +1 -1
  140. package/dist/inventory/walk.js +1 -1
  141. package/dist/inventory/walk.js.map +1 -1
  142. package/dist/manifests/sorted.d.ts +1 -1
  143. package/dist/manifests/sorted.d.ts.map +1 -1
  144. package/dist/manifests/sorted.js +15 -17
  145. package/dist/manifests/sorted.js.map +1 -1
  146. package/dist/report/plural.d.ts +1 -1
  147. package/dist/report/plural.d.ts.map +1 -1
  148. package/dist/report/plural.js +3 -1
  149. package/dist/report/plural.js.map +1 -1
  150. package/dist/report/render.d.ts +1 -3
  151. package/dist/report/render.d.ts.map +1 -1
  152. package/dist/report/render.js +30 -32
  153. package/dist/report/render.js.map +1 -1
  154. package/dist/report/stale.d.ts +1 -1
  155. package/dist/report/stale.d.ts.map +1 -1
  156. package/dist/report/stale.js +18 -8
  157. package/dist/report/stale.js.map +1 -1
  158. package/dist/rule.d.ts +14 -14
  159. package/dist/rule.d.ts.map +1 -1
  160. package/dist/rule.js +11 -9
  161. package/dist/rule.js.map +1 -1
  162. package/dist/rules/{built-in.d.ts → builtIn.d.ts} +3 -3
  163. package/dist/rules/builtIn.d.ts.map +1 -0
  164. package/dist/rules/{built-in.js → builtIn.js} +17 -13
  165. package/dist/rules/builtIn.js.map +1 -0
  166. package/dist/rules/comments/{pattern-rule.d.ts → definePattern.d.ts} +2 -2
  167. package/dist/rules/comments/definePattern.d.ts.map +1 -0
  168. package/dist/rules/comments/definePattern.js +18 -0
  169. package/dist/rules/comments/definePattern.js.map +1 -0
  170. package/dist/rules/comments/kinds.d.ts +4 -4
  171. package/dist/rules/comments/kinds.d.ts.map +1 -1
  172. package/dist/rules/comments/kinds.js +16 -8
  173. package/dist/rules/comments/kinds.js.map +1 -1
  174. package/dist/rules/comments/{max-per-file.d.ts → maxPerFile.d.ts} +1 -1
  175. package/dist/rules/comments/maxPerFile.d.ts.map +1 -0
  176. package/dist/rules/comments/{max-per-file.js → maxPerFile.js} +14 -10
  177. package/dist/rules/comments/maxPerFile.js.map +1 -0
  178. package/dist/rules/comments/{no-banner.d.ts → noBanner.d.ts} +1 -1
  179. package/dist/rules/comments/noBanner.d.ts.map +1 -0
  180. package/dist/rules/comments/{no-banner.js → noBanner.js} +2 -2
  181. package/dist/rules/comments/noBanner.js.map +1 -0
  182. package/dist/rules/comments/{no-environment-pragma.d.ts → noEnvironmentPragma.d.ts} +1 -1
  183. package/dist/rules/comments/noEnvironmentPragma.d.ts.map +1 -0
  184. package/dist/rules/comments/{no-environment-pragma.js → noEnvironmentPragma.js} +2 -2
  185. package/dist/rules/comments/noEnvironmentPragma.js.map +1 -0
  186. package/dist/rules/comments/{no-jsdoc.d.ts → noJsdoc.d.ts} +1 -1
  187. package/dist/rules/comments/noJsdoc.d.ts.map +1 -0
  188. package/dist/rules/comments/{no-jsdoc.js → noJsdoc.js} +1 -1
  189. package/dist/rules/comments/noJsdoc.js.map +1 -0
  190. package/dist/rules/comments/{no-line-reference.d.ts → noLineReference.d.ts} +1 -1
  191. package/dist/rules/comments/noLineReference.d.ts.map +1 -0
  192. package/dist/rules/comments/{no-line-reference.js → noLineReference.js} +2 -2
  193. package/dist/rules/comments/noLineReference.js.map +1 -0
  194. package/dist/rules/comments/{no-pr-reference.d.ts → noPrReference.d.ts} +1 -1
  195. package/dist/rules/comments/noPrReference.d.ts.map +1 -0
  196. package/dist/rules/comments/{no-pr-reference.js → noPrReference.js} +2 -2
  197. package/dist/rules/comments/noPrReference.js.map +1 -0
  198. package/dist/rules/comments/{no-todo.d.ts → noTodo.d.ts} +1 -1
  199. package/dist/rules/comments/noTodo.d.ts.map +1 -0
  200. package/dist/rules/comments/{no-todo.js → noTodo.js} +2 -2
  201. package/dist/rules/comments/noTodo.js.map +1 -0
  202. package/dist/rules/comments/scan.d.ts +3 -3
  203. package/dist/rules/comments/scan.d.ts.map +1 -1
  204. package/dist/rules/comments/scan.js +23 -19
  205. package/dist/rules/comments/scan.js.map +1 -1
  206. package/dist/rules/{manifests-sorted.d.ts → manifestsSorted.d.ts} +1 -1
  207. package/dist/rules/manifestsSorted.d.ts.map +1 -0
  208. package/dist/rules/{manifests-sorted.js → manifestsSorted.js} +1 -1
  209. package/dist/rules/manifestsSorted.js.map +1 -0
  210. package/dist/rules/manifestsSourceFirst.d.ts +2 -0
  211. package/dist/rules/manifestsSourceFirst.d.ts.map +1 -0
  212. package/dist/rules/manifestsSourceFirst.js +43 -0
  213. package/dist/rules/manifestsSourceFirst.js.map +1 -0
  214. package/dist/rules/{max-lines.d.ts → maxLines.d.ts} +1 -1
  215. package/dist/rules/maxLines.d.ts.map +1 -0
  216. package/dist/rules/{max-lines.js → maxLines.js} +13 -11
  217. package/dist/rules/maxLines.js.map +1 -0
  218. package/dist/rules/stories/origins.d.ts +10 -0
  219. package/dist/rules/stories/origins.d.ts.map +1 -0
  220. package/dist/rules/stories/origins.js +129 -0
  221. package/dist/rules/stories/origins.js.map +1 -0
  222. package/dist/rules/stories/prerequisites.d.ts +4 -0
  223. package/dist/rules/stories/prerequisites.d.ts.map +1 -0
  224. package/dist/rules/stories/prerequisites.js +32 -0
  225. package/dist/rules/stories/prerequisites.js.map +1 -0
  226. package/dist/rules/stories/program.d.ts +5 -0
  227. package/dist/rules/stories/program.d.ts.map +1 -0
  228. package/dist/rules/stories/program.js +22 -0
  229. package/dist/rules/stories/program.js.map +1 -0
  230. package/dist/rules/stories/specs.d.ts +2 -0
  231. package/dist/rules/stories/specs.d.ts.map +1 -0
  232. package/dist/rules/stories/specs.js +80 -0
  233. package/dist/rules/stories/specs.js.map +1 -0
  234. package/dist/rules/suppressions/biome/configs.d.ts +1 -1
  235. package/dist/rules/suppressions/biome/configs.d.ts.map +1 -1
  236. package/dist/rules/suppressions/biome/configs.js +23 -17
  237. package/dist/rules/suppressions/biome/configs.js.map +1 -1
  238. package/dist/rules/suppressions/biome/declarations.d.ts +4 -4
  239. package/dist/rules/suppressions/biome/declarations.d.ts.map +1 -1
  240. package/dist/rules/suppressions/biome/declarations.js +15 -7
  241. package/dist/rules/suppressions/biome/declarations.js.map +1 -1
  242. package/dist/rules/suppressions/biome/json.d.ts +6 -6
  243. package/dist/rules/suppressions/biome/json.d.ts.map +1 -1
  244. package/dist/rules/suppressions/biome/json.js +27 -13
  245. package/dist/rules/suppressions/biome/json.js.map +1 -1
  246. package/dist/rules/suppressions/biome/resolve.d.ts +1 -1
  247. package/dist/rules/suppressions/biome/resolve.d.ts.map +1 -1
  248. package/dist/rules/suppressions/biome/resolve.js +23 -17
  249. package/dist/rules/suppressions/biome/resolve.js.map +1 -1
  250. package/dist/rules/suppressions/biome/weakenings.d.ts +1 -1
  251. package/dist/rules/suppressions/biome/weakenings.d.ts.map +1 -1
  252. package/dist/rules/suppressions/biome/weakenings.js +78 -52
  253. package/dist/rules/suppressions/biome/weakenings.js.map +1 -1
  254. package/dist/rules/suppressions/{biome-overrides.d.ts → biomeOverrides.d.ts} +1 -1
  255. package/dist/rules/suppressions/biomeOverrides.d.ts.map +1 -0
  256. package/dist/rules/suppressions/biomeOverrides.js +75 -0
  257. package/dist/rules/suppressions/biomeOverrides.js.map +1 -0
  258. package/dist/rules/suppressions/directives.d.ts +1 -1
  259. package/dist/rules/suppressions/directives.d.ts.map +1 -1
  260. package/dist/rules/suppressions/directives.js +5 -3
  261. package/dist/rules/suppressions/directives.js.map +1 -1
  262. package/dist/rules/suppressions/{no-double-cast.d.ts → noDoubleCast.d.ts} +1 -1
  263. package/dist/rules/suppressions/noDoubleCast.d.ts.map +1 -0
  264. package/dist/rules/suppressions/{no-double-cast.js → noDoubleCast.js} +15 -11
  265. package/dist/rules/suppressions/noDoubleCast.js.map +1 -0
  266. package/dist/rules/suppressions/noIgnoreDeprecations.js +1 -1
  267. package/dist/rules/suppressions/noIgnoreDeprecations.js.map +1 -1
  268. package/dist/rules/suppressions/{no-inline.d.ts → noInline.d.ts} +1 -1
  269. package/dist/rules/suppressions/noInline.d.ts.map +1 -0
  270. package/dist/rules/suppressions/{no-inline.js → noInline.js} +10 -8
  271. package/dist/rules/suppressions/noInline.js.map +1 -0
  272. package/dist/rules/suppressions/stylesheetComments.d.ts +4 -0
  273. package/dist/rules/suppressions/stylesheetComments.d.ts.map +1 -0
  274. package/dist/rules/suppressions/{stylesheet-comments.js → stylesheetComments.js} +12 -6
  275. package/dist/rules/suppressions/stylesheetComments.js.map +1 -0
  276. package/dist/rules/syntax.d.ts +1 -1
  277. package/dist/rules/syntax.d.ts.map +1 -1
  278. package/dist/rules/syntax.js +2 -2
  279. package/dist/rules/syntax.js.map +1 -1
  280. package/dist/{standard-schema.d.ts → standardSchema.d.ts} +7 -7
  281. package/dist/standardSchema.d.ts.map +1 -0
  282. package/dist/{standard-schema.js → standardSchema.js} +1 -1
  283. package/dist/standardSchema.js.map +1 -0
  284. package/docs/debt-and-hooks.md +2 -2
  285. package/docs/modules.md +27 -24
  286. package/docs/roadmap.md +1 -1
  287. package/docs/rules.md +2 -0
  288. package/package.json +2 -3
  289. package/src/baseline/compare.ts +6 -4
  290. package/src/baseline/format.ts +17 -10
  291. package/src/baseline/legacy.ts +4 -4
  292. package/src/baseline/rewrite.ts +2 -2
  293. package/src/baseline/update.ts +23 -19
  294. package/src/cli/args.ts +20 -21
  295. package/src/cli/baseline.ts +36 -35
  296. package/src/cli/fix.ts +40 -43
  297. package/src/cli/lint.ts +17 -21
  298. package/src/cli/messages.ts +2 -2
  299. package/src/cli/migrate.ts +21 -22
  300. package/src/cli/migrateExceptions.ts +1 -1
  301. package/src/cli/program.ts +1 -1
  302. package/src/cli/{run-main.ts → runMain.ts} +2 -2
  303. package/src/cli/shrink.ts +11 -8
  304. package/src/cli.ts +1 -1
  305. package/src/config/decode.ts +15 -10
  306. package/src/config/load.ts +44 -37
  307. package/src/config/resolve.ts +34 -29
  308. package/src/config.ts +5 -3
  309. package/src/decoded.ts +6 -5
  310. package/src/engine/baselineFile.ts +29 -0
  311. package/src/engine/evaluate.ts +7 -8
  312. package/src/engine/{run-rules.ts → runRules.ts} +22 -14
  313. package/src/engine/session.ts +34 -27
  314. package/src/engine/violation.ts +24 -13
  315. package/src/exceptions/registry.ts +10 -8
  316. package/src/git/base.ts +45 -37
  317. package/src/git/command.ts +6 -4
  318. package/src/git/history.ts +5 -4
  319. package/src/hooks/preCommit.ts +1 -1
  320. package/src/imports/generated.ts +1 -1
  321. package/src/imports/resolve.ts +1 -1
  322. package/src/imports/workspace.ts +1 -1
  323. package/src/inventory/collect.ts +40 -35
  324. package/src/inventory/filesystem.ts +38 -30
  325. package/src/inventory/{ignore-scope.ts → ignoreScope.ts} +20 -10
  326. package/src/inventory/walk.ts +1 -1
  327. package/src/manifests/sorted.ts +19 -19
  328. package/src/report/plural.ts +3 -1
  329. package/src/report/render.ts +24 -39
  330. package/src/report/stale.ts +33 -25
  331. package/src/rule.ts +26 -20
  332. package/src/rules/{built-in.ts → builtIn.ts} +16 -12
  333. package/src/rules/comments/{pattern-rule.ts → definePattern.ts} +5 -4
  334. package/src/rules/comments/kinds.ts +16 -9
  335. package/src/rules/comments/{max-per-file.ts → maxPerFile.ts} +15 -11
  336. package/src/rules/comments/{no-banner.ts → noBanner.ts} +1 -1
  337. package/src/rules/comments/{no-environment-pragma.ts → noEnvironmentPragma.ts} +1 -1
  338. package/src/rules/comments/{no-line-reference.ts → noLineReference.ts} +1 -1
  339. package/src/rules/comments/{no-pr-reference.ts → noPrReference.ts} +1 -1
  340. package/src/rules/comments/{no-todo.ts → noTodo.ts} +1 -1
  341. package/src/rules/comments/scan.ts +18 -15
  342. package/src/rules/manifestsSourceFirst.ts +48 -0
  343. package/src/rules/{max-lines.ts → maxLines.ts} +3 -2
  344. package/src/rules/stories/origins.ts +147 -0
  345. package/src/rules/stories/prerequisites.ts +37 -0
  346. package/src/rules/stories/program.ts +29 -0
  347. package/src/rules/stories/specs.ts +93 -0
  348. package/src/rules/suppressions/biome/configs.ts +23 -17
  349. package/src/rules/suppressions/biome/declarations.ts +15 -10
  350. package/src/rules/suppressions/biome/json.ts +25 -13
  351. package/src/rules/suppressions/biome/resolve.ts +23 -18
  352. package/src/rules/suppressions/biome/weakenings.ts +60 -41
  353. package/src/rules/suppressions/{biome-overrides.ts → biomeOverrides.ts} +32 -22
  354. package/src/rules/suppressions/directives.ts +5 -4
  355. package/src/rules/suppressions/{no-double-cast.ts → noDoubleCast.ts} +14 -10
  356. package/src/rules/suppressions/noIgnoreDeprecations.ts +1 -1
  357. package/src/rules/suppressions/{no-inline.ts → noInline.ts} +6 -5
  358. package/src/rules/suppressions/{stylesheet-comments.ts → stylesheetComments.ts} +11 -6
  359. package/src/rules/syntax.ts +2 -2
  360. package/src/{standard-schema.ts → standardSchema.ts} +4 -4
  361. package/dist/cli/run-main.d.ts.map +0 -1
  362. package/dist/cli/run-main.js.map +0 -1
  363. package/dist/engine/baseline-file.d.ts.map +0 -1
  364. package/dist/engine/baseline-file.js.map +0 -1
  365. package/dist/engine/run-rules.d.ts.map +0 -1
  366. package/dist/engine/run-rules.js +0 -34
  367. package/dist/engine/run-rules.js.map +0 -1
  368. package/dist/imports/pnpm-workspace.d.ts.map +0 -1
  369. package/dist/imports/pnpm-workspace.js.map +0 -1
  370. package/dist/inventory/ignore-scope.d.ts +0 -17
  371. package/dist/inventory/ignore-scope.d.ts.map +0 -1
  372. package/dist/inventory/ignore-scope.js.map +0 -1
  373. package/dist/rules/built-in.d.ts.map +0 -1
  374. package/dist/rules/built-in.js.map +0 -1
  375. package/dist/rules/comments/max-per-file.d.ts.map +0 -1
  376. package/dist/rules/comments/max-per-file.js.map +0 -1
  377. package/dist/rules/comments/no-banner.d.ts.map +0 -1
  378. package/dist/rules/comments/no-banner.js.map +0 -1
  379. package/dist/rules/comments/no-environment-pragma.d.ts.map +0 -1
  380. package/dist/rules/comments/no-environment-pragma.js.map +0 -1
  381. package/dist/rules/comments/no-jsdoc.d.ts.map +0 -1
  382. package/dist/rules/comments/no-jsdoc.js.map +0 -1
  383. package/dist/rules/comments/no-line-reference.d.ts.map +0 -1
  384. package/dist/rules/comments/no-line-reference.js.map +0 -1
  385. package/dist/rules/comments/no-pr-reference.d.ts.map +0 -1
  386. package/dist/rules/comments/no-pr-reference.js.map +0 -1
  387. package/dist/rules/comments/no-todo.d.ts.map +0 -1
  388. package/dist/rules/comments/no-todo.js.map +0 -1
  389. package/dist/rules/comments/pattern-rule.d.ts.map +0 -1
  390. package/dist/rules/comments/pattern-rule.js +0 -16
  391. package/dist/rules/comments/pattern-rule.js.map +0 -1
  392. package/dist/rules/manifests-sorted.d.ts.map +0 -1
  393. package/dist/rules/manifests-sorted.js.map +0 -1
  394. package/dist/rules/max-lines.d.ts.map +0 -1
  395. package/dist/rules/max-lines.js.map +0 -1
  396. package/dist/rules/suppressions/biome-overrides.d.ts.map +0 -1
  397. package/dist/rules/suppressions/biome-overrides.js +0 -63
  398. package/dist/rules/suppressions/biome-overrides.js.map +0 -1
  399. package/dist/rules/suppressions/no-double-cast.d.ts.map +0 -1
  400. package/dist/rules/suppressions/no-double-cast.js.map +0 -1
  401. package/dist/rules/suppressions/no-inline.d.ts.map +0 -1
  402. package/dist/rules/suppressions/no-inline.js.map +0 -1
  403. package/dist/rules/suppressions/stylesheet-comments.d.ts +0 -4
  404. package/dist/rules/suppressions/stylesheet-comments.d.ts.map +0 -1
  405. package/dist/rules/suppressions/stylesheet-comments.js.map +0 -1
  406. package/dist/standard-schema.d.ts.map +0 -1
  407. package/dist/standard-schema.js.map +0 -1
  408. package/src/engine/baseline-file.ts +0 -27
  409. /package/src/imports/{pnpm-workspace.ts → pnpmWorkspacePatterns.ts} +0 -0
  410. /package/src/rules/comments/{no-jsdoc.ts → noJsdoc.ts} +0 -0
  411. /package/src/rules/{manifests-sorted.ts → manifestsSorted.ts} +0 -0
@@ -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
@@ -1 +1 @@
1
- {"version":3,"file":"load.js","sourceRoot":"","sources":["../../src/config/load.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"load.js","sourceRoot":"","sources":["../../src/config/load.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,30 @@
1
1
  import { Effect } from "effect";
2
2
  import type { Decoded } from "#decoded.ts";
3
- import type { ActiveRule } from "#engine/run-rules.ts";
3
+ import type { ActiveRule } from "#engine/runRules.ts";
4
4
  import type { RuleIndex } from "#engine/violation.ts";
5
- import type { ConfigInput } from "./decode.ts";
5
+ import type { Rule } from "#rule.ts";
6
6
  export interface ResolvedRules extends RuleIndex {
7
7
  readonly active: readonly ActiveRule[];
8
8
  }
9
- export declare const resolveRules: (config: ConfigInput) => Effect.Effect<Decoded<ResolvedRules>>;
9
+ export declare const resolveRules: (config: {
10
+ readonly adopt?: never;
11
+ readonly baseline?: string;
12
+ readonly exceptions?: readonly {
13
+ readonly files: readonly [string, ...string[]];
14
+ readonly reason: string;
15
+ readonly rules: readonly [string, ...string[]];
16
+ readonly subject?: string;
17
+ }[];
18
+ readonly extensions?: readonly string[];
19
+ readonly local?: readonly Rule<string, unknown>[];
20
+ readonly preCommit?: never;
21
+ readonly registry?: string;
22
+ readonly rules?: {
23
+ readonly [x: string]: "error" | {
24
+ readonly level?: "error";
25
+ readonly options?: unknown;
26
+ };
27
+ };
28
+ readonly sources?: readonly string[];
29
+ }) => Effect.Effect<Decoded<ResolvedRules>, never, never>;
10
30
  //# sourceMappingURL=resolve.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../../src/config/resolve.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAGtD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C,MAAM,WAAW,aAAc,SAAQ,SAAS;IAC/C,QAAQ,CAAC,MAAM,EAAE,SAAS,UAAU,EAAE,CAAC;CACvC;AAwCD,eAAO,MAAM,YAAY,WAAY,WAAW,KAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,CAoBpF,CAAC"}
1
+ {"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../../src/config/resolve.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAIrC,MAAM,WAAW,aAAc,SAAQ,SAAS;IAC/C,QAAQ,CAAC,MAAM,EAAE,SAAS,UAAU,EAAE,CAAC;CACvC;AA8CD,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;yDAmBvB,CAAC"}
@@ -1,8 +1,14 @@
1
1
  import { Effect } from "effect";
2
- import { builtInRules } from "#rules/built-in.ts";
3
- const messageOf = (cause) => (cause instanceof Error ? cause.message : String(cause));
4
- const optionsOf = (setting) => (typeof setting === "object" ? setting.options : undefined);
5
- const duplicateIssues = (rules) => rules.flatMap((rule, index) => rules.findIndex((other) => other.id === rule.id) === index ? [] : [`local: rule id "${rule.id}" is already defined`]);
2
+ import { builtInRules } from "#rules/builtIn.ts";
3
+ function messageOf(cause) {
4
+ return cause instanceof Error ? cause.message : String(cause);
5
+ }
6
+ function optionsOf(setting) {
7
+ return typeof setting === "object" ? setting.options : undefined;
8
+ }
9
+ function duplicateIssues(rules) {
10
+ return rules.flatMap((rule, index) => rules.findIndex((other) => other.id === rule.id) === index ? [] : [`local: rule id "${rule.id}" is already defined`]);
11
+ }
6
12
  function activeRule(rule, check) {
7
13
  return {
8
14
  check,
@@ -13,13 +19,15 @@ function activeRule(rule, check) {
13
19
  registrable: rule.registrable !== false,
14
20
  };
15
21
  }
16
- const activate = (rule, setting) => Effect.tryPromise({ catch: messageOf, try: () => rule.configure(optionsOf(setting)) }).pipe(Effect.map((configured) => configured._tag === "Invalid"
17
- ? { _tag: "Invalid", issues: configured.issues.map((issue) => `rules.${rule.id}.options: ${issue}`) }
18
- : {
19
- _tag: "Valid",
20
- value: activeRule(rule, configured.check),
21
- }), Effect.catch((failure) => Effect.succeed({ _tag: "Invalid", issues: [`rules.${rule.id}.options: validation threw: ${failure}`] })));
22
- export const resolveRules = (config) => Effect.gen(function* () {
22
+ function activate(rule, setting) {
23
+ return Effect.tryPromise({ catch: messageOf, try: () => rule.configure(optionsOf(setting)) }).pipe(Effect.map((configured) => configured._tag === "Invalid"
24
+ ? { _tag: "Invalid", issues: configured.issues.map((issue) => `rules.${rule.id}.options: ${issue}`) }
25
+ : {
26
+ _tag: "Valid",
27
+ value: activeRule(rule, configured.check),
28
+ }), Effect.catch((failure) => Effect.succeed({ _tag: "Invalid", issues: [`rules.${rule.id}.options: validation threw: ${failure}`] })));
29
+ }
30
+ export const resolveRules = Effect.fn("Config.resolveRules")(function* (config) {
23
31
  const rules = [...builtInRules, ...(config.local ?? [])];
24
32
  const settings = config.rules ?? {};
25
33
  const known = new Set(rules.map((rule) => rule.id));
@@ -1 +1 @@
1
- {"version":3,"file":"resolve.js","sourceRoot":"","sources":["../../src/config/resolve.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resolve.js","sourceRoot":"","sources":["../../src/config/resolve.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAKhC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AASjD,SAAS,SAAS,CAAC,KAAc;IAChC,OAAO,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC/D,CAAC;AAED,SAAS,SAAS,CAAC,OAA4B;IAC9C,OAAO,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;AAClE,CAAC;AAED,SAAS,eAAe,CAAC,KAAsB;IAC9C,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CACpC,KAAK,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,mBAAmB,IAAI,CAAC,EAAE,sBAAsB,CAAC,CACpH,CAAC;AACH,CAAC;AAED,SAAS,UAAU,CAAC,IAAU,EAAE,KAA0B;IACzD,OAAO;QACN,KAAK;QACL,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,MAAM,EAAE,IAAI,CAAC,MAAM,KAAK,IAAI;QAC5B,EAAE,EAAE,IAAI,CAAC,EAAE;QACX,KAAK,EAAE,OAAO;QACd,WAAW,EAAE,IAAI,CAAC,WAAW,KAAK,KAAK;KACvC,CAAC;AACH,CAAC;AAED,SAAS,QAAQ,CAAC,IAAU,EAAE,OAA4B;IACzD,OAAO,MAAM,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CACjG,MAAM,CAAC,GAAG,CACT,CAAC,UAAU,EAAuB,EAAE,CACnC,UAAU,CAAC,IAAI,KAAK,SAAS;QAC5B,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,SAAS,IAAI,CAAC,EAAE,aAAa,KAAK,EAAE,CAAC,EAAE;QACrG,CAAC,CAAC;YACA,IAAI,EAAE,OAAO;YACb,KAAK,EAAE,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,KAAK,CAAC;SACzC,CACJ,EACD,MAAM,CAAC,KAAK,CAAC,CAAC,OAAe,EAAE,EAAE,CAChC,MAAM,CAAC,OAAO,CAAsB,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,SAAS,IAAI,CAAC,EAAE,+BAA+B,OAAO,EAAE,CAAC,EAAE,CAAC,CAC5H,CACD,CAAC;AACH,CAAC;AAED,MAAM,CAAC,MAAM,YAAY,GAAG,MAAM,CAAC,EAAE,CAAC,qBAAqB,CAAC,CAAC,QAAQ,CAAC,EAAE,MAAmB;IAC1F,MAAM,KAAK,GAAoB,CAAC,GAAG,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC;IAC1E,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC;IACpC,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;IACpD,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;IAC9F,MAAM,OAAO,GAAG;QACf,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC;aACtB,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;aAC9B,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC;KAC5B,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,IAAI,yCAAyC,CAAC,CAAC;IAClE,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC5F,MAAM,MAAM,GAAG,CAAC,GAAG,eAAe,CAAC,KAAK,CAAC,EAAE,GAAG,OAAO,EAAE,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC3I,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC;IACpC,CAAC;IACD,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC9F,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,OAAgB,CAAC,CAAC,CAAC,CAAC;IACzE,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,KAAK,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;IACzG,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAE,EAAE,CAAC;AAC9E,CAAC,CAAC,CAAC"}
package/dist/config.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import type { ExceptionDeclaration } from "#exceptions/declaration.ts";
2
- import type { builtInRules } from "#rules/built-in.ts";
2
+ import type { builtInRules } from "#rules/builtIn.ts";
3
3
  import type { Rule } from "./rule.ts";
4
- export type Level = "error" | "warn" | "off";
4
+ export type Level = "error";
5
5
  export type RuleSetting<TInput> = "error" | {
6
6
  readonly level?: "error";
7
7
  readonly options?: TInput;
@@ -20,6 +20,6 @@ export interface QualityConfig<TLocal extends readonly Rule[] = readonly Rule[]>
20
20
  readonly rules?: RuleSettings<readonly [...BuiltInRules, ...TLocal]>;
21
21
  readonly sources?: readonly string[];
22
22
  }
23
- export declare const defineConfig: <const TLocal extends readonly Rule[] = readonly []>(config: QualityConfig<TLocal>) => QualityConfig<TLocal>;
23
+ export declare function defineConfig<const TLocal extends readonly Rule[] = readonly []>(config: QualityConfig<TLocal>): QualityConfig<TLocal>;
24
24
  export {};
25
25
  //# sourceMappingURL=config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AACvE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEtC,MAAM,MAAM,KAAK,GAAG,OAAO,GAAG,MAAM,GAAG,KAAK,CAAC;AAE7C,MAAM,MAAM,WAAW,CAAC,MAAM,IAAI,OAAO,GAAG;IAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAEpG,KAAK,OAAO,CAAC,UAAU,IAAI,UAAU,SAAS,IAAI,CAAC,MAAM,EAAE,MAAM,MAAM,CAAC,GAAG,MAAM,GAAG,KAAK,CAAC;AAE1F,MAAM,MAAM,YAAY,CAAC,MAAM,SAAS,SAAS,IAAI,EAAE,IAAI;IAC1D,QAAQ,EAAE,UAAU,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;CAC9F,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG,OAAO,YAAY,CAAC;AAE/C,MAAM,WAAW,aAAa,CAAC,MAAM,SAAS,SAAS,IAAI,EAAE,GAAG,SAAS,IAAI,EAAE;IAC9E,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,oBAAoB,EAAE,CAAC;IACtD,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACxC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,KAAK,CAAC,EAAE,YAAY,CAAC,SAAS,CAAC,GAAG,YAAY,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC;IACrE,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACrC;AAED,eAAO,MAAM,YAAY,GAAI,KAAK,CAAC,MAAM,SAAS,SAAS,IAAI,EAAE,GAAG,SAAS,EAAE,UAAU,aAAa,CAAC,MAAM,CAAC,KAAG,aAAa,CAAC,MAAM,CAAW,CAAC"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AACvE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEtC,MAAM,MAAM,KAAK,GAAG,OAAO,CAAC;AAE5B,MAAM,MAAM,WAAW,CAAC,MAAM,IAAI,OAAO,GAAG;IAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAEpG,KAAK,OAAO,CAAC,UAAU,IAAI,UAAU,SAAS,IAAI,CAAC,MAAM,EAAE,MAAM,MAAM,CAAC,GAAG,MAAM,GAAG,KAAK,CAAC;AAE1F,MAAM,MAAM,YAAY,CAAC,MAAM,SAAS,SAAS,IAAI,EAAE,IAAI;IAC1D,QAAQ,EAAE,UAAU,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;CAC9F,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG,OAAO,YAAY,CAAC;AAE/C,MAAM,WAAW,aAAa,CAAC,MAAM,SAAS,SAAS,IAAI,EAAE,GAAG,SAAS,IAAI,EAAE;IAC9E,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,oBAAoB,EAAE,CAAC;IACtD,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACxC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,KAAK,CAAC,EAAE,YAAY,CAAC,SAAS,CAAC,GAAG,YAAY,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC;IACrE,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACrC;AAED,wBAAgB,YAAY,CAAC,KAAK,CAAC,MAAM,SAAS,SAAS,IAAI,EAAE,GAAG,SAAS,EAAE,EAAE,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,aAAa,CAAC,MAAM,CAAC,CAErI"}
package/dist/config.js CHANGED
@@ -1,2 +1,4 @@
1
- export const defineConfig = (config) => config;
1
+ export function defineConfig(config) {
2
+ return config;
3
+ }
2
4
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AA0BA,MAAM,CAAC,MAAM,YAAY,GAAG,CAAqD,MAA6B,EAAyB,EAAE,CAAC,MAAM,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AA0BA,MAAM,UAAU,YAAY,CAAqD,MAA6B;IAC7G,OAAO,MAAM,CAAC;AACf,CAAC"}
package/dist/decoded.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { Effect } from "effect";
2
2
  import { SetupFailure } from "./failure.ts";
3
- import { type StandardSchemaV1 } from "./standard-schema.ts";
3
+ import { type StandardSchemaV1 } from "./standardSchema.ts";
4
4
  export type Decoded<TValue> = {
5
5
  readonly _tag: "Valid";
6
6
  readonly value: TValue;
@@ -8,6 +8,6 @@ export type Decoded<TValue> = {
8
8
  readonly _tag: "Invalid";
9
9
  readonly issues: readonly string[];
10
10
  };
11
- export declare const decodeWith: <TOutput>(schema: StandardSchemaV1<unknown, TOutput>, value: unknown) => Promise<Decoded<TOutput>>;
12
- export declare const validOrFail: <TValue>(file: string, decoded: Decoded<TValue>) => Effect.Effect<TValue, SetupFailure>;
11
+ export declare function decodeWith<TOutput>(schema: StandardSchemaV1<unknown, TOutput>, value: unknown): Promise<Decoded<TOutput>>;
12
+ export declare function validOrFail<TValue>(file: string, decoded: Decoded<TValue>): Effect.Effect<TValue, SetupFailure>;
13
13
  //# sourceMappingURL=decoded.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"decoded.d.ts","sourceRoot":"","sources":["../src/decoded.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAiB,KAAK,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAE5E,MAAM,MAAM,OAAO,CAAC,MAAM,IAAI;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,CAAC;AAEpJ,eAAO,MAAM,UAAU,GAAU,OAAO,UAAU,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC,SAAS,OAAO,KAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAG9H,CAAC;AAEF,eAAO,MAAM,WAAW,GAAI,MAAM,QAAQ,MAAM,WAAW,OAAO,CAAC,MAAM,CAAC,KAAG,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,YAAY,CAGmB,CAAC"}
1
+ {"version":3,"file":"decoded.d.ts","sourceRoot":"","sources":["../src/decoded.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAiB,KAAK,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAE3E,MAAM,MAAM,OAAO,CAAC,MAAM,IAAI;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,CAAC;AAEpJ,wBAAsB,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAG/H;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAI/G"}
package/dist/decoded.js CHANGED
@@ -1,11 +1,13 @@
1
1
  import { Effect } from "effect";
2
2
  import { SetupFailure } from "./failure.js";
3
- import { describeIssue } from "./standard-schema.js";
4
- export const decodeWith = async (schema, value) => {
3
+ import { describeIssue } from "./standardSchema.js";
4
+ export async function decodeWith(schema, value) {
5
5
  const result = await schema["~standard"].validate(value);
6
6
  return result.issues === undefined ? { _tag: "Valid", value: result.value } : { _tag: "Invalid", issues: result.issues.map(describeIssue) };
7
- };
8
- export const validOrFail = (file, decoded) => decoded._tag === "Valid"
9
- ? Effect.succeed(decoded.value)
10
- : Effect.fail(new SetupFailure({ message: `${file} is invalid:\n${decoded.issues.map((issue) => ` - ${issue}`).join("\n")}` }));
7
+ }
8
+ export function validOrFail(file, decoded) {
9
+ return decoded._tag === "Valid"
10
+ ? Effect.succeed(decoded.value)
11
+ : Effect.fail(new SetupFailure({ message: `${file} is invalid:\n${decoded.issues.map((issue) => ` - ${issue}`).join("\n")}` }));
12
+ }
11
13
  //# sourceMappingURL=decoded.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"decoded.js","sourceRoot":"","sources":["../src/decoded.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAyB,MAAM,sBAAsB,CAAC;AAI5E,MAAM,CAAC,MAAM,UAAU,GAAG,KAAK,EAAW,MAA0C,EAAE,KAAc,EAA6B,EAAE;IAClI,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACzD,OAAO,MAAM,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC;AAC7I,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,CAAS,IAAY,EAAE,OAAwB,EAAuC,EAAE,CAClH,OAAO,CAAC,IAAI,KAAK,OAAO;IACvB,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC;IAC/B,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,YAAY,CAAC,EAAE,OAAO,EAAE,GAAG,IAAI,iBAAiB,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"decoded.js","sourceRoot":"","sources":["../src/decoded.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAyB,MAAM,qBAAqB,CAAC;AAI3E,MAAM,CAAC,KAAK,UAAU,UAAU,CAAU,MAA0C,EAAE,KAAc;IACnG,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACzD,OAAO,MAAM,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC;AAC7I,CAAC;AAED,MAAM,UAAU,WAAW,CAAS,IAAY,EAAE,OAAwB;IACzE,OAAO,OAAO,CAAC,IAAI,KAAK,OAAO;QAC9B,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC;QAC/B,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,YAAY,CAAC,EAAE,OAAO,EAAE,GAAG,IAAI,iBAAiB,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AACnI,CAAC"}
@@ -6,6 +6,6 @@ export interface BaselineFile {
6
6
  readonly entries: readonly BaselineEntry[];
7
7
  readonly raw: string | undefined;
8
8
  }
9
- export declare const readInput: (root: string, path: string) => Effect.Effect<string | undefined, SetupFailure, FileSystem.FileSystem>;
9
+ export declare function readInput(root: string, path: string): Effect.Effect<string | undefined, SetupFailure, FileSystem.FileSystem>;
10
10
  export declare const readBaseline: (config: ResolvedConfig) => Effect.Effect<BaselineFile, SetupFailure, FileSystem.FileSystem>;
11
- //# sourceMappingURL=baseline-file.d.ts.map
11
+ //# sourceMappingURL=baselineFile.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"baselineFile.d.ts","sourceRoot":"","sources":["../../src/engine/baselineFile.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,KAAK,UAAU,EAAE,MAAM,QAAQ,CAAC;AACjD,OAAO,EAAE,KAAK,aAAa,EAAkB,MAAM,qBAAqB,CAAC;AAEzE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEtD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAG3C,MAAM,WAAW,YAAY;IAC5B,QAAQ,CAAC,OAAO,EAAE,SAAS,aAAa,EAAE,CAAC;IAC3C,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC;CACjC;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,SAAS,EAAE,YAAY,EAAE,UAAU,CAAC,UAAU,CAAC,CAE5H;AAED,eAAO,MAAM,YAAY,8FAUvB,CAAC"}
@@ -5,8 +5,10 @@ import { LEGACY_BASELINE } from "#baseline/legacy.ts";
5
5
  import { validOrFail } from "#decoded.ts";
6
6
  import { SetupFailure } from "#failure.ts";
7
7
  import { readOptionalText } from "#inventory/filesystem.ts";
8
- export const readInput = (root, path) => Effect.mapError(readOptionalText(join(root, path)), (failure) => new SetupFailure({ message: failure.message }));
9
- export const readBaseline = (config) => Effect.gen(function* () {
8
+ export function readInput(root, path) {
9
+ return Effect.mapError(readOptionalText(join(root, path)), (failure) => new SetupFailure({ message: failure.message }));
10
+ }
11
+ export const readBaseline = Effect.fn("Engine.readBaseline")(function* (config) {
10
12
  const raw = yield* readInput(config.root, config.baseline);
11
13
  if (raw === undefined && config.baseline !== LEGACY_BASELINE && (yield* readInput(config.root, LEGACY_BASELINE)) !== undefined) {
12
14
  return yield* new SetupFailure({
@@ -15,4 +17,4 @@ export const readBaseline = (config) => Effect.gen(function* () {
15
17
  }
16
18
  return { entries: yield* validOrFail(config.baseline, yield* Effect.promise(() => decodeBaseline(raw))), raw };
17
19
  });
18
- //# sourceMappingURL=baseline-file.js.map
20
+ //# sourceMappingURL=baselineFile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"baselineFile.js","sourceRoot":"","sources":["../../src/engine/baselineFile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,MAAM,EAAmB,MAAM,QAAQ,CAAC;AACjD,OAAO,EAAsB,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACzE,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAO5D,MAAM,UAAU,SAAS,CAAC,IAAY,EAAE,IAAY;IACnD,OAAO,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,YAAY,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;AACzH,CAAC;AAED,MAAM,CAAC,MAAM,YAAY,GAAG,MAAM,CAAC,EAAE,CAAC,qBAAqB,CAAC,CAAC,QAAQ,CAAC,EACrE,MAAsB;IAEtB,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC3D,IAAI,GAAG,KAAK,SAAS,IAAI,MAAM,CAAC,QAAQ,KAAK,eAAe,IAAI,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;QAChI,OAAO,KAAK,CAAC,CAAC,IAAI,YAAY,CAAC;YAC9B,OAAO,EAAE,GAAG,eAAe,gGAAgG,MAAM,CAAC,QAAQ,GAAG;SAC7I,CAAC,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC;AAChH,CAAC,CAAC,CAAC"}
@@ -10,8 +10,7 @@ export interface Outcome {
10
10
  readonly regressions: readonly Regression[];
11
11
  readonly staleBaseline: readonly StaleBaselineEntry[];
12
12
  readonly staleRegistry: readonly StaleRegistryEntry[];
13
- readonly warnings: readonly Violation[];
14
13
  }
15
- export declare const evaluate: (violations: readonly Violation[], registry: readonly RegistryEntry[], baseline: readonly BaselineEntry[], rules: RuleIndex) => Outcome;
16
- export declare const passes: (outcome: Outcome) => boolean;
14
+ export declare function evaluate(violations: readonly Violation[], registry: readonly RegistryEntry[], baseline: readonly BaselineEntry[], rules: RuleIndex): Outcome;
15
+ export declare function passes(outcome: Outcome): boolean;
17
16
  //# sourceMappingURL=evaluate.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"evaluate.d.ts","sourceRoot":"","sources":["../../src/engine/evaluate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,UAAU,EAAE,KAAK,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC/F,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAiB,KAAK,aAAa,EAAE,KAAK,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AACrG,OAAO,EAAc,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE5E,MAAM,WAAW,OAAO;IACvB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,SAAS,SAAS,EAAE,CAAC;IACtC,QAAQ,CAAC,aAAa,EAAE,SAAS,kBAAkB,EAAE,CAAC;IACtD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,WAAW,EAAE,SAAS,UAAU,EAAE,CAAC;IAC5C,QAAQ,CAAC,aAAa,EAAE,SAAS,kBAAkB,EAAE,CAAC;IACtD,QAAQ,CAAC,aAAa,EAAE,SAAS,kBAAkB,EAAE,CAAC;IACtD,QAAQ,CAAC,QAAQ,EAAE,SAAS,SAAS,EAAE,CAAC;CACxC;AAED,eAAO,MAAM,QAAQ,eACR,SAAS,SAAS,EAAE,YACtB,SAAS,aAAa,EAAE,YACxB,SAAS,aAAa,EAAE,SAC3B,SAAS,KACd,OAcF,CAAC;AAEF,eAAO,MAAM,MAAM,YAAa,OAAO,KAAG,OAC8D,CAAC"}
1
+ {"version":3,"file":"evaluate.d.ts","sourceRoot":"","sources":["../../src/engine/evaluate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,UAAU,EAAE,KAAK,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC/F,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAiB,KAAK,aAAa,EAAE,KAAK,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AACrG,OAAO,EAAc,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE5E,MAAM,WAAW,OAAO;IACvB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,SAAS,SAAS,EAAE,CAAC;IACtC,QAAQ,CAAC,aAAa,EAAE,SAAS,kBAAkB,EAAE,CAAC;IACtD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,WAAW,EAAE,SAAS,UAAU,EAAE,CAAC;IAC5C,QAAQ,CAAC,aAAa,EAAE,SAAS,kBAAkB,EAAE,CAAC;IACtD,QAAQ,CAAC,aAAa,EAAE,SAAS,kBAAkB,EAAE,CAAC;CACtD;AAED,wBAAgB,QAAQ,CACvB,UAAU,EAAE,SAAS,SAAS,EAAE,EAChC,QAAQ,EAAE,SAAS,aAAa,EAAE,EAClC,QAAQ,EAAE,SAAS,aAAa,EAAE,EAClC,KAAK,EAAE,SAAS,GACd,OAAO,CAaT;AAED,wBAAgB,MAAM,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAEhD"}
@@ -1,20 +1,21 @@
1
1
  import { applyBaseline } from "#baseline/compare.ts";
2
2
  import { applyRegistry } from "#exceptions/registry.ts";
3
3
  import { byLocation } from "./violation.js";
4
- export const evaluate = (violations, registry, baseline, rules) => {
4
+ export function evaluate(violations, registry, baseline, rules) {
5
5
  const registered = applyRegistry(violations, registry, rules);
6
6
  const baselined = applyBaseline(registered.kept, baseline, rules);
7
7
  const kept = [...baselined.kept].sort(byLocation);
8
8
  return {
9
9
  baselined: baselined.baselined,
10
- errors: kept.filter((violation) => violation.level === "error"),
10
+ errors: kept,
11
11
  looseBaseline: baselined.loose,
12
12
  registered: registered.registered,
13
13
  regressions: baselined.regressions,
14
14
  staleBaseline: baselined.stale,
15
15
  staleRegistry: registered.stale,
16
- warnings: kept.filter((violation) => violation.level === "warn"),
17
16
  };
18
- };
19
- export const passes = (outcome) => outcome.errors.length === 0 && outcome.staleBaseline.length === 0 && outcome.staleRegistry.length === 0;
17
+ }
18
+ export function passes(outcome) {
19
+ return outcome.errors.length === 0 && outcome.staleBaseline.length === 0 && outcome.staleRegistry.length === 0;
20
+ }
20
21
  //# sourceMappingURL=evaluate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"evaluate.js","sourceRoot":"","sources":["../../src/engine/evaluate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAA4C,MAAM,sBAAsB,CAAC;AAE/F,OAAO,EAAE,aAAa,EAA+C,MAAM,yBAAyB,CAAC;AACrG,OAAO,EAAE,UAAU,EAAkC,MAAM,gBAAgB,CAAC;AAa5E,MAAM,CAAC,MAAM,QAAQ,GAAG,CACvB,UAAgC,EAChC,QAAkC,EAClC,QAAkC,EAClC,KAAgB,EACN,EAAE;IACZ,MAAM,UAAU,GAAG,aAAa,CAAC,UAAU,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;IAC9D,MAAM,SAAS,GAAG,aAAa,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;IAClE,MAAM,IAAI,GAAG,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAClD,OAAO;QACN,SAAS,EAAE,SAAS,CAAC,SAAS;QAC9B,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,KAAK,KAAK,OAAO,CAAC;QAC/D,aAAa,EAAE,SAAS,CAAC,KAAK;QAC9B,UAAU,EAAE,UAAU,CAAC,UAAU;QACjC,WAAW,EAAE,SAAS,CAAC,WAAW;QAClC,aAAa,EAAE,SAAS,CAAC,KAAK;QAC9B,aAAa,EAAE,UAAU,CAAC,KAAK;QAC/B,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,KAAK,KAAK,MAAM,CAAC;KAChE,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,OAAgB,EAAW,EAAE,CACnD,OAAO,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,CAAC"}
1
+ {"version":3,"file":"evaluate.js","sourceRoot":"","sources":["../../src/engine/evaluate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAA4C,MAAM,sBAAsB,CAAC;AAE/F,OAAO,EAAE,aAAa,EAA+C,MAAM,yBAAyB,CAAC;AACrG,OAAO,EAAE,UAAU,EAAkC,MAAM,gBAAgB,CAAC;AAY5E,MAAM,UAAU,QAAQ,CACvB,UAAgC,EAChC,QAAkC,EAClC,QAAkC,EAClC,KAAgB;IAEhB,MAAM,UAAU,GAAG,aAAa,CAAC,UAAU,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;IAC9D,MAAM,SAAS,GAAG,aAAa,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;IAClE,MAAM,IAAI,GAAG,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAClD,OAAO;QACN,SAAS,EAAE,SAAS,CAAC,SAAS;QAC9B,MAAM,EAAE,IAAI;QACZ,aAAa,EAAE,SAAS,CAAC,KAAK;QAC9B,UAAU,EAAE,UAAU,CAAC,UAAU;QACjC,WAAW,EAAE,SAAS,CAAC,WAAW;QAClC,aAAa,EAAE,SAAS,CAAC,KAAK;QAC9B,aAAa,EAAE,UAAU,CAAC,KAAK;KAC/B,CAAC;AACH,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,OAAgB;IACtC,OAAO,OAAO,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,CAAC;AAChH,CAAC"}
@@ -10,5 +10,5 @@ export interface ActiveRule {
10
10
  readonly level: ActiveLevel;
11
11
  readonly registrable?: boolean;
12
12
  }
13
- export declare const runRules: (rules: readonly ActiveRule[], inputs: RuleInputs) => Effect.Effect<readonly Violation[], SetupFailure>;
14
- //# sourceMappingURL=run-rules.d.ts.map
13
+ export declare function runRules(rules: readonly ActiveRule[], inputs: RuleInputs): Effect.Effect<readonly Violation[], SetupFailure>;
14
+ //# sourceMappingURL=runRules.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runRules.d.ts","sourceRoot":"","sources":["../../src/engine/runRules.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,OAAO,KAAK,EAAW,QAAQ,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE7D,MAAM,WAAW,UAAU;IAC1B,QAAQ,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC1D,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;IAC5B,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;CAC/B;AA8CD,wBAAgB,QAAQ,CAAC,KAAK,EAAE,SAAS,UAAU,EAAE,EAAE,MAAM,EAAE,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,SAAS,EAAE,EAAE,YAAY,CAAC,CAK5H"}
@@ -0,0 +1,44 @@
1
+ import { isAbsolute, relative } from "node:path";
2
+ import { Effect } from "effect";
3
+ import { SetupFailure } from "#failure.ts";
4
+ import { posix } from "#inventory/ignoreScope.ts";
5
+ function messageOf(cause) {
6
+ return cause instanceof Error ? cause.message : String(cause);
7
+ }
8
+ // Registry and baseline entries match on the path, so every finding names its file the same way.
9
+ function repositoryPath(root, file) {
10
+ return posix(isAbsolute(file) ? relative(root, file) : file).replace(/^(?:\.\/)+/u, "");
11
+ }
12
+ function exceptionHint(rule, finding, file, config) {
13
+ const id = rule.family && finding.subject !== undefined ? `${rule.id}/${finding.subject}` : rule.id;
14
+ const biome = /^biome\/(?:lint|assist)\/[a-zA-Z]+\/[a-zA-Z]+$/u.test(id);
15
+ if (!biome && rule.registrable === false) {
16
+ return "";
17
+ }
18
+ const shape = JSON.stringify({
19
+ files: [file],
20
+ reason: "Explain why this exception is permanent.",
21
+ rules: [id],
22
+ ...(!rule.family && finding.subject !== undefined ? { subject: finding.subject } : {}),
23
+ });
24
+ return ` For a permanent exception, add to exceptions in ${config}: ${shape}.`;
25
+ }
26
+ function violationOf(rule, root, finding, exceptionFile) {
27
+ return {
28
+ ...finding,
29
+ file: repositoryPath(root, finding.file),
30
+ level: rule.level,
31
+ message: finding.message + exceptionHint(rule, finding, repositoryPath(root, finding.file), exceptionFile),
32
+ rule: rule.family && finding.subject !== undefined ? `${rule.id}/${finding.subject}` : rule.id,
33
+ };
34
+ }
35
+ function runRule(rule, inputs, exceptionFile) {
36
+ return Effect.map(Effect.tryPromise({
37
+ catch: (cause) => new SetupFailure({ message: `rule ${rule.id} failed: ${messageOf(cause)}` }),
38
+ try: () => rule.check(inputs),
39
+ }), (findings) => findings.map((finding) => violationOf(rule, inputs.root, finding, exceptionFile)));
40
+ }
41
+ export function runRules(rules, inputs) {
42
+ return Effect.map(Effect.forEach(rules, (rule) => runRule(rule, inputs, inputs.configFile ?? "quality.config.ts"), { concurrency: "unbounded" }), (results) => results.flat());
43
+ }
44
+ //# sourceMappingURL=runRules.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runRules.js","sourceRoot":"","sources":["../../src/engine/runRules.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@ import { type ResolvedConfig } from "#config/load.ts";
3
3
  import { type RegistryEntry } from "#exceptions/registry.ts";
4
4
  import { SetupFailure } from "#failure.ts";
5
5
  import { type Inventory } from "#inventory/collect.ts";
6
- import { type BaselineFile } from "./baseline-file.ts";
6
+ import { type BaselineFile } from "./baselineFile.ts";
7
7
  import type { Violation } from "./violation.ts";
8
8
  export interface Session {
9
9
  readonly baseline: BaselineFile;
@@ -1 +1 @@
1
- {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/engine/session.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,KAAK,UAAU,EAAE,MAAM,QAAQ,CAAC;AACjD,OAAO,EAAc,KAAK,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAElE,OAAO,EAAkB,KAAK,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAE7E,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAoB,KAAK,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAEzE,OAAO,EAAE,KAAK,YAAY,EAA2B,MAAM,oBAAoB,CAAC;AAEhF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEhD,MAAM,WAAW,OAAO;IACvB,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC;IAChC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAChC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,QAAQ,CAAC,QAAQ,EAAE,SAAS,aAAa,EAAE,CAAC;IAC5C,QAAQ,CAAC,UAAU,EAAE,SAAS,SAAS,EAAE,CAAC;CAC1C;AAMD,eAAO,MAAM,IAAI,WAAY,cAAc,KAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,GAAG,YAAY,CAAC,EAAE,YAAY,EAAE,UAAU,CAAC,UAAU,CAcvI,CAAC;AAEJ,eAAO,MAAM,WAAW,QAAS,MAAM,cAAc,MAAM,GAAG,SAAS,KAAG,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,YAAY,EAAE,UAAU,CAAC,UAAU,CAQjI,CAAC"}
1
+ {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/engine/session.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,KAAK,UAAU,EAAE,MAAM,QAAQ,CAAC;AACjD,OAAO,EAAc,KAAK,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAElE,OAAO,EAAkB,KAAK,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAE7E,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAoB,KAAK,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAEzE,OAAO,EAAE,KAAK,YAAY,EAA2B,MAAM,mBAAmB,CAAC;AAE/E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEhD,MAAM,WAAW,OAAO;IACvB,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC;IAChC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAChC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,QAAQ,CAAC,QAAQ,EAAE,SAAS,aAAa,EAAE,CAAC;IAC5C,QAAQ,CAAC,UAAU,EAAE,SAAS,SAAS,EAAE,CAAC;CAC1C;AAQD,eAAO,MAAM,IAAI,2HAiBf,CAAC;AAEH,eAAO,MAAM,WAAW,8GAUtB,CAAC"}
@@ -7,13 +7,17 @@ import { registryEntries } from "#exceptions/registryEntries.ts";
7
7
  import { SetupFailure } from "#failure.ts";
8
8
  import { collectInventory } from "#inventory/collect.ts";
9
9
  import { readOptionalText } from "#inventory/filesystem.ts";
10
- import { readBaseline, readInput } from "./baseline-file.js";
11
- import { runRules } from "./run-rules.js";
12
- const setup = (effect) => Effect.mapError(effect, (failure) => new SetupFailure({ message: failure.message }));
13
- export const scan = (config) => Effect.gen(function* () {
10
+ import { readBaseline, readInput } from "./baselineFile.js";
11
+ import { runRules } from "./runRules.js";
12
+ function setup(effect) {
13
+ return Effect.mapError(effect, (failure) => new SetupFailure({ message: failure.message }));
14
+ }
15
+ export const scan = Effect.fn("Engine.scan")(function* (config) {
14
16
  const inventory = yield* setup(collectInventory(config.root, config));
15
17
  const services = yield* Effect.context();
16
- const readText = (path) => Effect.runPromiseWith(services)(readOptionalText(resolve(config.root, path)));
18
+ function readText(path) {
19
+ return Effect.runPromiseWith(services)(readOptionalText(resolve(config.root, path)));
20
+ }
17
21
  const violations = yield* runRules(config.active, {
18
22
  configFile: relative(config.root, config.file),
19
23
  exceptions: config.exceptions,
@@ -24,7 +28,7 @@ export const scan = (config) => Effect.gen(function* () {
24
28
  });
25
29
  return { inventory, violations };
26
30
  });
27
- export const openSession = (cwd, configPath) => Effect.gen(function* () {
31
+ export const openSession = Effect.fn("Engine.openSession")(function* (cwd, configPath) {
28
32
  const config = yield* loadConfig(cwd, configPath);
29
33
  const registryRaw = yield* readInput(config.root, config.registry);
30
34
  const registry = yield* validOrFail(config.registry, yield* Effect.promise(() => decodeRegistry(registryRaw)));
@@ -1 +1 @@
1
- {"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/engine/session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/engine/session.ts"],"names":[],"mappings":"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"}
@@ -1,20 +1,20 @@
1
1
  import type { Level } from "#config.ts";
2
2
  import type { Finding } from "#rule.ts";
3
- export type ActiveLevel = "error" | "warn";
3
+ export type ActiveLevel = "error";
4
4
  export interface Violation extends Finding {
5
5
  readonly level: ActiveLevel;
6
6
  readonly rule: string;
7
7
  }
8
- export declare const keyOf: (rule: string, file: string) => string;
9
- export declare const byLocation: (left: Violation, right: Violation) => number;
10
- export declare const groupBy: <TItem>(items: readonly TItem[], key: (item: TItem) => string) => ReadonlyMap<string, readonly TItem[]>;
8
+ export declare function keyOf(rule: string, file: string): string;
9
+ export declare function byLocation(left: Violation, right: Violation): number;
10
+ export declare function groupBy<TItem>(items: readonly TItem[], key: (item: TItem) => string): ReadonlyMap<string, readonly TItem[]>;
11
11
  export interface RuleIndex {
12
12
  readonly families: ReadonlySet<string>;
13
13
  readonly levels: ReadonlyMap<string, Level>;
14
14
  readonly unregistrable: ReadonlySet<string>;
15
15
  }
16
- export declare const covers: (name: string, rule: string) => boolean;
17
- export declare const levelOf: (index: RuleIndex, rule: string) => Level | undefined;
18
- export declare const registrable: (index: RuleIndex, rule: string) => boolean;
19
- export declare const unusedEntryProblem: (index: RuleIndex, rule: string, unused: string) => string;
16
+ export declare function covers(name: string, rule: string): boolean;
17
+ export declare function levelOf(index: RuleIndex, rule: string): Level | undefined;
18
+ export declare function registrable(index: RuleIndex, rule: string): boolean;
19
+ export declare function unusedEntryProblem(index: RuleIndex, rule: string, unused: string): string;
20
20
  //# sourceMappingURL=violation.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"violation.d.ts","sourceRoot":"","sources":["../../src/engine/violation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAExC,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,MAAM,CAAC;AAE3C,MAAM,WAAW,SAAU,SAAQ,OAAO;IACzC,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACtB;AAED,eAAO,MAAM,KAAK,SAAU,MAAM,QAAQ,MAAM,KAAG,MAAgC,CAAC;AAEpF,eAAO,MAAM,UAAU,SAAU,SAAS,SAAS,SAAS,KAAG,MACoD,CAAC;AAEpH,eAAO,MAAM,OAAO,GAAI,KAAK,SAAS,SAAS,KAAK,EAAE,OAAO,CAAC,IAAI,EAAE,KAAK,KAAK,MAAM,KAAG,WAAW,CAAC,MAAM,EAAE,SAAS,KAAK,EAAE,CAW1H,CAAC;AAEF,MAAM,WAAW,SAAS;IACzB,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACvC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC5C,QAAQ,CAAC,aAAa,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CAC5C;AAED,eAAO,MAAM,MAAM,SAAU,MAAM,QAAQ,MAAM,KAAG,OAAuD,CAAC;AAI5G,eAAO,MAAM,OAAO,UAAW,SAAS,QAAQ,MAAM,KAAG,KAAK,GAAG,SAAmD,CAAC;AAErH,eAAO,MAAM,WAAW,UAAW,SAAS,QAAQ,MAAM,KAAG,OAAyD,CAAC;AAEvH,eAAO,MAAM,kBAAkB,UAAW,SAAS,QAAQ,MAAM,UAAU,MAAM,KAAG,MAMnF,CAAC"}
1
+ {"version":3,"file":"violation.d.ts","sourceRoot":"","sources":["../../src/engine/violation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAExC,MAAM,MAAM,WAAW,GAAG,OAAO,CAAC;AAElC,MAAM,WAAW,SAAU,SAAQ,OAAO;IACzC,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACtB;AAED,wBAAgB,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAExD;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,GAAG,MAAM,CAEpE;AAED,wBAAgB,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,KAAK,EAAE,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,KAAK,KAAK,MAAM,GAAG,WAAW,CAAC,MAAM,EAAE,SAAS,KAAK,EAAE,CAAC,CAW3H;AAED,MAAM,WAAW,SAAS;IACzB,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACvC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC5C,QAAQ,CAAC,aAAa,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CAC5C;AAED,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAE1D;AAMD,wBAAgB,OAAO,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,GAAG,KAAK,GAAG,SAAS,CAEzE;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAEnE;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAMzF"}