@opensip-cli/fitness 0.1.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 (576) hide show
  1. package/LICENSE +202 -0
  2. package/NOTICE +8 -0
  3. package/README.md +31 -0
  4. package/dist/__tests__/baseline-plane.test.d.ts +12 -0
  5. package/dist/__tests__/baseline-plane.test.d.ts.map +1 -0
  6. package/dist/__tests__/baseline-plane.test.js +63 -0
  7. package/dist/__tests__/baseline-plane.test.js.map +1 -0
  8. package/dist/__tests__/check-utils.test.d.ts +10 -0
  9. package/dist/__tests__/check-utils.test.d.ts.map +1 -0
  10. package/dist/__tests__/check-utils.test.js +193 -0
  11. package/dist/__tests__/check-utils.test.js.map +1 -0
  12. package/dist/__tests__/fingerprint-parity.test.d.ts +14 -0
  13. package/dist/__tests__/fingerprint-parity.test.d.ts.map +1 -0
  14. package/dist/__tests__/fingerprint-parity.test.js +59 -0
  15. package/dist/__tests__/fingerprint-parity.test.js.map +1 -0
  16. package/dist/__tests__/fit-execute-opts.test.d.ts +15 -0
  17. package/dist/__tests__/fit-execute-opts.test.d.ts.map +1 -0
  18. package/dist/__tests__/fit-execute-opts.test.js +124 -0
  19. package/dist/__tests__/fit-execute-opts.test.js.map +1 -0
  20. package/dist/__tests__/public-api.test.d.ts +19 -0
  21. package/dist/__tests__/public-api.test.d.ts.map +1 -0
  22. package/dist/__tests__/public-api.test.js +85 -0
  23. package/dist/__tests__/public-api.test.js.map +1 -0
  24. package/dist/__tests__/tool.test.d.ts +10 -0
  25. package/dist/__tests__/tool.test.d.ts.map +1 -0
  26. package/dist/__tests__/tool.test.js +57 -0
  27. package/dist/__tests__/tool.test.js.map +1 -0
  28. package/dist/baseline-strategy.d.ts +21 -0
  29. package/dist/baseline-strategy.d.ts.map +1 -0
  30. package/dist/baseline-strategy.js +21 -0
  31. package/dist/baseline-strategy.js.map +1 -0
  32. package/dist/check-utils/display.d.ts +52 -0
  33. package/dist/check-utils/display.d.ts.map +1 -0
  34. package/dist/check-utils/display.js +66 -0
  35. package/dist/check-utils/display.js.map +1 -0
  36. package/dist/check-utils/index.d.ts +17 -0
  37. package/dist/check-utils/index.d.ts.map +1 -0
  38. package/dist/check-utils/index.js +13 -0
  39. package/dist/check-utils/index.js.map +1 -0
  40. package/dist/check-utils/path-matching.d.ts +40 -0
  41. package/dist/check-utils/path-matching.d.ts.map +1 -0
  42. package/dist/check-utils/path-matching.js +38 -0
  43. package/dist/check-utils/path-matching.js.map +1 -0
  44. package/dist/check-utils/source-analysis.d.ts +36 -0
  45. package/dist/check-utils/source-analysis.d.ts.map +1 -0
  46. package/dist/check-utils/source-analysis.js +44 -0
  47. package/dist/check-utils/source-analysis.js.map +1 -0
  48. package/dist/check-utils/test-helpers.d.ts +57 -0
  49. package/dist/check-utils/test-helpers.d.ts.map +1 -0
  50. package/dist/check-utils/test-helpers.js +71 -0
  51. package/dist/check-utils/test-helpers.js.map +1 -0
  52. package/dist/cli/__tests__/fit-gate-mode.test.d.ts +14 -0
  53. package/dist/cli/__tests__/fit-gate-mode.test.d.ts.map +1 -0
  54. package/dist/cli/__tests__/fit-gate-mode.test.js +110 -0
  55. package/dist/cli/__tests__/fit-gate-mode.test.js.map +1 -0
  56. package/dist/cli/__tests__/fit-modes-live.test.d.ts +13 -0
  57. package/dist/cli/__tests__/fit-modes-live.test.d.ts.map +1 -0
  58. package/dist/cli/__tests__/fit-modes-live.test.js +182 -0
  59. package/dist/cli/__tests__/fit-modes-live.test.js.map +1 -0
  60. package/dist/cli/__tests__/report-data.test.d.ts +12 -0
  61. package/dist/cli/__tests__/report-data.test.d.ts.map +1 -0
  62. package/dist/cli/__tests__/report-data.test.js +113 -0
  63. package/dist/cli/__tests__/report-data.test.js.map +1 -0
  64. package/dist/cli/fit/__tests__/display-fold.test.d.ts +8 -0
  65. package/dist/cli/fit/__tests__/display-fold.test.d.ts.map +1 -0
  66. package/dist/cli/fit/__tests__/display-fold.test.js +87 -0
  67. package/dist/cli/fit/__tests__/display-fold.test.js.map +1 -0
  68. package/dist/cli/fit/__tests__/gate-resolved-config.test.d.ts +16 -0
  69. package/dist/cli/fit/__tests__/gate-resolved-config.test.d.ts.map +1 -0
  70. package/dist/cli/fit/__tests__/gate-resolved-config.test.js +62 -0
  71. package/dist/cli/fit/__tests__/gate-resolved-config.test.js.map +1 -0
  72. package/dist/cli/fit/check-loader.d.ts +37 -0
  73. package/dist/cli/fit/check-loader.d.ts.map +1 -0
  74. package/dist/cli/fit/check-loader.js +154 -0
  75. package/dist/cli/fit/check-loader.js.map +1 -0
  76. package/dist/cli/fit/config-loader.d.ts +55 -0
  77. package/dist/cli/fit/config-loader.d.ts.map +1 -0
  78. package/dist/cli/fit/config-loader.js +107 -0
  79. package/dist/cli/fit/config-loader.js.map +1 -0
  80. package/dist/cli/fit/display-registry.d.ts +19 -0
  81. package/dist/cli/fit/display-registry.d.ts.map +1 -0
  82. package/dist/cli/fit/display-registry.js +33 -0
  83. package/dist/cli/fit/display-registry.js.map +1 -0
  84. package/dist/cli/fit/envelope-view.d.ts +49 -0
  85. package/dist/cli/fit/envelope-view.d.ts.map +1 -0
  86. package/dist/cli/fit/envelope-view.js +85 -0
  87. package/dist/cli/fit/envelope-view.js.map +1 -0
  88. package/dist/cli/fit/fit-aux-command-specs.d.ts +35 -0
  89. package/dist/cli/fit/fit-aux-command-specs.d.ts.map +1 -0
  90. package/dist/cli/fit/fit-aux-command-specs.js +110 -0
  91. package/dist/cli/fit/fit-aux-command-specs.js.map +1 -0
  92. package/dist/cli/fit/fit-command-spec.d.ts +24 -0
  93. package/dist/cli/fit/fit-command-spec.d.ts.map +1 -0
  94. package/dist/cli/fit/fit-command-spec.js +131 -0
  95. package/dist/cli/fit/fit-command-spec.js.map +1 -0
  96. package/dist/cli/fit/gate-compare-render.d.ts +13 -0
  97. package/dist/cli/fit/gate-compare-render.d.ts.map +1 -0
  98. package/dist/cli/fit/gate-compare-render.js +87 -0
  99. package/dist/cli/fit/gate-compare-render.js.map +1 -0
  100. package/dist/cli/fit/recipe-selector.d.ts +53 -0
  101. package/dist/cli/fit/recipe-selector.d.ts.map +1 -0
  102. package/dist/cli/fit/recipe-selector.js +106 -0
  103. package/dist/cli/fit/recipe-selector.js.map +1 -0
  104. package/dist/cli/fit/recipe-selector.test.d.ts +2 -0
  105. package/dist/cli/fit/recipe-selector.test.d.ts.map +1 -0
  106. package/dist/cli/fit/recipe-selector.test.js +69 -0
  107. package/dist/cli/fit/recipe-selector.test.js.map +1 -0
  108. package/dist/cli/fit/resolved-fitness-config.d.ts +48 -0
  109. package/dist/cli/fit/resolved-fitness-config.d.ts.map +1 -0
  110. package/dist/cli/fit/resolved-fitness-config.js +46 -0
  111. package/dist/cli/fit/resolved-fitness-config.js.map +1 -0
  112. package/dist/cli/fit/result-builders.d.ts +91 -0
  113. package/dist/cli/fit/result-builders.d.ts.map +1 -0
  114. package/dist/cli/fit/result-builders.js +206 -0
  115. package/dist/cli/fit/result-builders.js.map +1 -0
  116. package/dist/cli/fit-list.d.ts +7 -0
  117. package/dist/cli/fit-list.d.ts.map +1 -0
  118. package/dist/cli/fit-list.js +24 -0
  119. package/dist/cli/fit-list.js.map +1 -0
  120. package/dist/cli/fit-modes.d.ts +42 -0
  121. package/dist/cli/fit-modes.d.ts.map +1 -0
  122. package/dist/cli/fit-modes.js +322 -0
  123. package/dist/cli/fit-modes.js.map +1 -0
  124. package/dist/cli/fit-recipes.d.ts +7 -0
  125. package/dist/cli/fit-recipes.d.ts.map +1 -0
  126. package/dist/cli/fit-recipes.js +34 -0
  127. package/dist/cli/fit-recipes.js.map +1 -0
  128. package/dist/cli/fit-runner-views.d.ts +33 -0
  129. package/dist/cli/fit-runner-views.d.ts.map +1 -0
  130. package/dist/cli/fit-runner-views.js +92 -0
  131. package/dist/cli/fit-runner-views.js.map +1 -0
  132. package/dist/cli/fit-runner.d.ts +44 -0
  133. package/dist/cli/fit-runner.d.ts.map +1 -0
  134. package/dist/cli/fit-runner.js +250 -0
  135. package/dist/cli/fit-runner.js.map +1 -0
  136. package/dist/cli/fit-worker.d.ts +26 -0
  137. package/dist/cli/fit-worker.d.ts.map +1 -0
  138. package/dist/cli/fit-worker.js +67 -0
  139. package/dist/cli/fit-worker.js.map +1 -0
  140. package/dist/cli/fit.d.ts +74 -0
  141. package/dist/cli/fit.d.ts.map +1 -0
  142. package/dist/cli/fit.js +149 -0
  143. package/dist/cli/fit.js.map +1 -0
  144. package/dist/cli/report-data.d.ts +44 -0
  145. package/dist/cli/report-data.d.ts.map +1 -0
  146. package/dist/cli/report-data.js +89 -0
  147. package/dist/cli/report-data.js.map +1 -0
  148. package/dist/config/__tests__/fitness-config-schema.test.d.ts +6 -0
  149. package/dist/config/__tests__/fitness-config-schema.test.d.ts.map +1 -0
  150. package/dist/config/__tests__/fitness-config-schema.test.js +37 -0
  151. package/dist/config/__tests__/fitness-config-schema.test.js.map +1 -0
  152. package/dist/config/fitness-config-schema.d.ts +48 -0
  153. package/dist/config/fitness-config-schema.d.ts.map +1 -0
  154. package/dist/config/fitness-config-schema.js +62 -0
  155. package/dist/config/fitness-config-schema.js.map +1 -0
  156. package/dist/framework/__tests__/abortable-exec.test.d.ts +9 -0
  157. package/dist/framework/__tests__/abortable-exec.test.d.ts.map +1 -0
  158. package/dist/framework/__tests__/abortable-exec.test.js +102 -0
  159. package/dist/framework/__tests__/abortable-exec.test.js.map +1 -0
  160. package/dist/framework/__tests__/check-config.test.d.ts +2 -0
  161. package/dist/framework/__tests__/check-config.test.d.ts.map +1 -0
  162. package/dist/framework/__tests__/check-config.test.js +56 -0
  163. package/dist/framework/__tests__/check-config.test.js.map +1 -0
  164. package/dist/framework/__tests__/check-types.test.d.ts +2 -0
  165. package/dist/framework/__tests__/check-types.test.d.ts.map +1 -0
  166. package/dist/framework/__tests__/check-types.test.js +76 -0
  167. package/dist/framework/__tests__/check-types.test.js.map +1 -0
  168. package/dist/framework/__tests__/command-executor.test.d.ts +2 -0
  169. package/dist/framework/__tests__/command-executor.test.d.ts.map +1 -0
  170. package/dist/framework/__tests__/command-executor.test.js +110 -0
  171. package/dist/framework/__tests__/command-executor.test.js.map +1 -0
  172. package/dist/framework/__tests__/content-filter-dispatch.test.d.ts +2 -0
  173. package/dist/framework/__tests__/content-filter-dispatch.test.d.ts.map +1 -0
  174. package/dist/framework/__tests__/content-filter-dispatch.test.js +122 -0
  175. package/dist/framework/__tests__/content-filter-dispatch.test.js.map +1 -0
  176. package/dist/framework/__tests__/define-check.test.d.ts +2 -0
  177. package/dist/framework/__tests__/define-check.test.d.ts.map +1 -0
  178. package/dist/framework/__tests__/define-check.test.js +402 -0
  179. package/dist/framework/__tests__/define-check.test.js.map +1 -0
  180. package/dist/framework/__tests__/define-regex-list-check.test.d.ts +15 -0
  181. package/dist/framework/__tests__/define-regex-list-check.test.d.ts.map +1 -0
  182. package/dist/framework/__tests__/define-regex-list-check.test.js +299 -0
  183. package/dist/framework/__tests__/define-regex-list-check.test.js.map +1 -0
  184. package/dist/framework/__tests__/directive-inventory.test.d.ts +2 -0
  185. package/dist/framework/__tests__/directive-inventory.test.d.ts.map +1 -0
  186. package/dist/framework/__tests__/directive-inventory.test.js +111 -0
  187. package/dist/framework/__tests__/directive-inventory.test.js.map +1 -0
  188. package/dist/framework/__tests__/directive-parsing.test.d.ts +13 -0
  189. package/dist/framework/__tests__/directive-parsing.test.d.ts.map +1 -0
  190. package/dist/framework/__tests__/directive-parsing.test.js +86 -0
  191. package/dist/framework/__tests__/directive-parsing.test.js.map +1 -0
  192. package/dist/framework/__tests__/execution-context.globalexcludes-parity.test.d.ts +2 -0
  193. package/dist/framework/__tests__/execution-context.globalexcludes-parity.test.d.ts.map +1 -0
  194. package/dist/framework/__tests__/execution-context.globalexcludes-parity.test.js +56 -0
  195. package/dist/framework/__tests__/execution-context.globalexcludes-parity.test.js.map +1 -0
  196. package/dist/framework/__tests__/execution-context.test.d.ts +2 -0
  197. package/dist/framework/__tests__/execution-context.test.d.ts.map +1 -0
  198. package/dist/framework/__tests__/execution-context.test.js +140 -0
  199. package/dist/framework/__tests__/execution-context.test.js.map +1 -0
  200. package/dist/framework/__tests__/file-accessor.test.d.ts +2 -0
  201. package/dist/framework/__tests__/file-accessor.test.d.ts.map +1 -0
  202. package/dist/framework/__tests__/file-accessor.test.js +106 -0
  203. package/dist/framework/__tests__/file-accessor.test.js.map +1 -0
  204. package/dist/framework/__tests__/file-cache.test.d.ts +2 -0
  205. package/dist/framework/__tests__/file-cache.test.d.ts.map +1 -0
  206. package/dist/framework/__tests__/file-cache.test.js +122 -0
  207. package/dist/framework/__tests__/file-cache.test.js.map +1 -0
  208. package/dist/framework/__tests__/file-type-filter.test.d.ts +9 -0
  209. package/dist/framework/__tests__/file-type-filter.test.d.ts.map +1 -0
  210. package/dist/framework/__tests__/file-type-filter.test.js +39 -0
  211. package/dist/framework/__tests__/file-type-filter.test.js.map +1 -0
  212. package/dist/framework/__tests__/ignore-processing.test.d.ts +11 -0
  213. package/dist/framework/__tests__/ignore-processing.test.d.ts.map +1 -0
  214. package/dist/framework/__tests__/ignore-processing.test.js +175 -0
  215. package/dist/framework/__tests__/ignore-processing.test.js.map +1 -0
  216. package/dist/framework/__tests__/import-graph.test.d.ts +15 -0
  217. package/dist/framework/__tests__/import-graph.test.d.ts.map +1 -0
  218. package/dist/framework/__tests__/import-graph.test.js +164 -0
  219. package/dist/framework/__tests__/import-graph.test.js.map +1 -0
  220. package/dist/framework/__tests__/memory-profiler.test.d.ts +9 -0
  221. package/dist/framework/__tests__/memory-profiler.test.d.ts.map +1 -0
  222. package/dist/framework/__tests__/memory-profiler.test.js +108 -0
  223. package/dist/framework/__tests__/memory-profiler.test.js.map +1 -0
  224. package/dist/framework/__tests__/parse-cache.test.d.ts +9 -0
  225. package/dist/framework/__tests__/parse-cache.test.d.ts.map +1 -0
  226. package/dist/framework/__tests__/parse-cache.test.js +51 -0
  227. package/dist/framework/__tests__/parse-cache.test.js.map +1 -0
  228. package/dist/framework/__tests__/path-matcher.test.d.ts +2 -0
  229. package/dist/framework/__tests__/path-matcher.test.d.ts.map +1 -0
  230. package/dist/framework/__tests__/path-matcher.test.js +113 -0
  231. package/dist/framework/__tests__/path-matcher.test.js.map +1 -0
  232. package/dist/framework/__tests__/register-helpers.test.d.ts +2 -0
  233. package/dist/framework/__tests__/register-helpers.test.d.ts.map +1 -0
  234. package/dist/framework/__tests__/register-helpers.test.js +51 -0
  235. package/dist/framework/__tests__/register-helpers.test.js.map +1 -0
  236. package/dist/framework/__tests__/registry.test.d.ts +2 -0
  237. package/dist/framework/__tests__/registry.test.d.ts.map +1 -0
  238. package/dist/framework/__tests__/registry.test.js +211 -0
  239. package/dist/framework/__tests__/registry.test.js.map +1 -0
  240. package/dist/framework/__tests__/result-builder.test.d.ts +2 -0
  241. package/dist/framework/__tests__/result-builder.test.d.ts.map +1 -0
  242. package/dist/framework/__tests__/result-builder.test.js +153 -0
  243. package/dist/framework/__tests__/result-builder.test.js.map +1 -0
  244. package/dist/framework/__tests__/scope-registry.test.d.ts +8 -0
  245. package/dist/framework/__tests__/scope-registry.test.d.ts.map +1 -0
  246. package/dist/framework/__tests__/scope-registry.test.js +156 -0
  247. package/dist/framework/__tests__/scope-registry.test.js.map +1 -0
  248. package/dist/framework/__tests__/scope-resolver.golden.test.d.ts +2 -0
  249. package/dist/framework/__tests__/scope-resolver.golden.test.d.ts.map +1 -0
  250. package/dist/framework/__tests__/scope-resolver.golden.test.js +105 -0
  251. package/dist/framework/__tests__/scope-resolver.golden.test.js.map +1 -0
  252. package/dist/framework/__tests__/scope-resolver.test.d.ts +2 -0
  253. package/dist/framework/__tests__/scope-resolver.test.d.ts.map +1 -0
  254. package/dist/framework/__tests__/scope-resolver.test.js +150 -0
  255. package/dist/framework/__tests__/scope-resolver.test.js.map +1 -0
  256. package/dist/framework/__tests__/severity-mapping.test.d.ts +2 -0
  257. package/dist/framework/__tests__/severity-mapping.test.d.ts.map +1 -0
  258. package/dist/framework/__tests__/severity-mapping.test.js +74 -0
  259. package/dist/framework/__tests__/severity-mapping.test.js.map +1 -0
  260. package/dist/framework/__tests__/strip-literals.test.d.ts +2 -0
  261. package/dist/framework/__tests__/strip-literals.test.d.ts.map +1 -0
  262. package/dist/framework/__tests__/strip-literals.test.js +87 -0
  263. package/dist/framework/__tests__/strip-literals.test.js.map +1 -0
  264. package/dist/framework/abortable-exec.d.ts +34 -0
  265. package/dist/framework/abortable-exec.d.ts.map +1 -0
  266. package/dist/framework/abortable-exec.js +143 -0
  267. package/dist/framework/abortable-exec.js.map +1 -0
  268. package/dist/framework/check-config.d.ts +175 -0
  269. package/dist/framework/check-config.d.ts.map +1 -0
  270. package/dist/framework/check-config.js +115 -0
  271. package/dist/framework/check-config.js.map +1 -0
  272. package/dist/framework/check-types.d.ts +82 -0
  273. package/dist/framework/check-types.d.ts.map +1 -0
  274. package/dist/framework/check-types.js +63 -0
  275. package/dist/framework/check-types.js.map +1 -0
  276. package/dist/framework/command-executor.d.ts +25 -0
  277. package/dist/framework/command-executor.d.ts.map +1 -0
  278. package/dist/framework/command-executor.js +63 -0
  279. package/dist/framework/command-executor.js.map +1 -0
  280. package/dist/framework/comment-openers.d.ts +11 -0
  281. package/dist/framework/comment-openers.d.ts.map +1 -0
  282. package/dist/framework/comment-openers.js +11 -0
  283. package/dist/framework/comment-openers.js.map +1 -0
  284. package/dist/framework/constants.d.ts +9 -0
  285. package/dist/framework/constants.d.ts.map +1 -0
  286. package/dist/framework/constants.js +16 -0
  287. package/dist/framework/constants.js.map +1 -0
  288. package/dist/framework/define-check.d.ts +38 -0
  289. package/dist/framework/define-check.d.ts.map +1 -0
  290. package/dist/framework/define-check.js +296 -0
  291. package/dist/framework/define-check.js.map +1 -0
  292. package/dist/framework/define-regex-list-check.d.ts +160 -0
  293. package/dist/framework/define-regex-list-check.d.ts.map +1 -0
  294. package/dist/framework/define-regex-list-check.js +177 -0
  295. package/dist/framework/define-regex-list-check.js.map +1 -0
  296. package/dist/framework/directive-inventory.d.ts +37 -0
  297. package/dist/framework/directive-inventory.d.ts.map +1 -0
  298. package/dist/framework/directive-inventory.js +82 -0
  299. package/dist/framework/directive-inventory.js.map +1 -0
  300. package/dist/framework/directive-parsing.d.ts +23 -0
  301. package/dist/framework/directive-parsing.d.ts.map +1 -0
  302. package/dist/framework/directive-parsing.js +39 -0
  303. package/dist/framework/directive-parsing.js.map +1 -0
  304. package/dist/framework/execution-context.d.ts +98 -0
  305. package/dist/framework/execution-context.d.ts.map +1 -0
  306. package/dist/framework/execution-context.js +145 -0
  307. package/dist/framework/execution-context.js.map +1 -0
  308. package/dist/framework/file-accessor.d.ts +20 -0
  309. package/dist/framework/file-accessor.d.ts.map +1 -0
  310. package/dist/framework/file-accessor.js +122 -0
  311. package/dist/framework/file-accessor.js.map +1 -0
  312. package/dist/framework/file-cache.d.ts +70 -0
  313. package/dist/framework/file-cache.d.ts.map +1 -0
  314. package/dist/framework/file-cache.js +199 -0
  315. package/dist/framework/file-cache.js.map +1 -0
  316. package/dist/framework/file-type-filter.d.ts +11 -0
  317. package/dist/framework/file-type-filter.d.ts.map +1 -0
  318. package/dist/framework/file-type-filter.js +21 -0
  319. package/dist/framework/file-type-filter.js.map +1 -0
  320. package/dist/framework/ignore-processing.d.ts +36 -0
  321. package/dist/framework/ignore-processing.d.ts.map +1 -0
  322. package/dist/framework/ignore-processing.js +172 -0
  323. package/dist/framework/ignore-processing.js.map +1 -0
  324. package/dist/framework/import-graph.d.ts +51 -0
  325. package/dist/framework/import-graph.d.ts.map +1 -0
  326. package/dist/framework/import-graph.js +217 -0
  327. package/dist/framework/import-graph.js.map +1 -0
  328. package/dist/framework/memory-profiler.d.ts +53 -0
  329. package/dist/framework/memory-profiler.d.ts.map +1 -0
  330. package/dist/framework/memory-profiler.js +92 -0
  331. package/dist/framework/memory-profiler.js.map +1 -0
  332. package/dist/framework/parse-cache.d.ts +24 -0
  333. package/dist/framework/parse-cache.d.ts.map +1 -0
  334. package/dist/framework/parse-cache.js +41 -0
  335. package/dist/framework/parse-cache.js.map +1 -0
  336. package/dist/framework/path-matcher.d.ts +86 -0
  337. package/dist/framework/path-matcher.d.ts.map +1 -0
  338. package/dist/framework/path-matcher.js +138 -0
  339. package/dist/framework/path-matcher.js.map +1 -0
  340. package/dist/framework/register-helpers.d.ts +11 -0
  341. package/dist/framework/register-helpers.d.ts.map +1 -0
  342. package/dist/framework/register-helpers.js +19 -0
  343. package/dist/framework/register-helpers.js.map +1 -0
  344. package/dist/framework/registry.d.ts +51 -0
  345. package/dist/framework/registry.d.ts.map +1 -0
  346. package/dist/framework/registry.js +131 -0
  347. package/dist/framework/registry.js.map +1 -0
  348. package/dist/framework/result-builder.d.ts +74 -0
  349. package/dist/framework/result-builder.d.ts.map +1 -0
  350. package/dist/framework/result-builder.js +154 -0
  351. package/dist/framework/result-builder.js.map +1 -0
  352. package/dist/framework/scope-registry.d.ts +38 -0
  353. package/dist/framework/scope-registry.d.ts.map +1 -0
  354. package/dist/framework/scope-registry.js +77 -0
  355. package/dist/framework/scope-registry.js.map +1 -0
  356. package/dist/framework/scope-resolver.d.ts +23 -0
  357. package/dist/framework/scope-resolver.d.ts.map +1 -0
  358. package/dist/framework/scope-resolver.js +102 -0
  359. package/dist/framework/scope-resolver.js.map +1 -0
  360. package/dist/framework/severity-mapping.d.ts +17 -0
  361. package/dist/framework/severity-mapping.d.ts.map +1 -0
  362. package/dist/framework/severity-mapping.js +71 -0
  363. package/dist/framework/severity-mapping.js.map +1 -0
  364. package/dist/framework/strip-literals.d.ts +73 -0
  365. package/dist/framework/strip-literals.d.ts.map +1 -0
  366. package/dist/framework/strip-literals.js +213 -0
  367. package/dist/framework/strip-literals.js.map +1 -0
  368. package/dist/index.d.ts +47 -0
  369. package/dist/index.d.ts.map +1 -0
  370. package/dist/index.js +64 -0
  371. package/dist/index.js.map +1 -0
  372. package/dist/internal.d.ts +17 -0
  373. package/dist/internal.d.ts.map +1 -0
  374. package/dist/internal.js +17 -0
  375. package/dist/internal.js.map +1 -0
  376. package/dist/persistence/session-payload.d.ts +68 -0
  377. package/dist/persistence/session-payload.d.ts.map +1 -0
  378. package/dist/persistence/session-payload.js +78 -0
  379. package/dist/persistence/session-payload.js.map +1 -0
  380. package/dist/persistence/session-payload.test.d.ts +11 -0
  381. package/dist/persistence/session-payload.test.d.ts.map +1 -0
  382. package/dist/persistence/session-payload.test.js +80 -0
  383. package/dist/persistence/session-payload.test.js.map +1 -0
  384. package/dist/persistence/session-replay.d.ts +14 -0
  385. package/dist/persistence/session-replay.d.ts.map +1 -0
  386. package/dist/persistence/session-replay.js +85 -0
  387. package/dist/persistence/session-replay.js.map +1 -0
  388. package/dist/persistence/session-replay.test.d.ts +10 -0
  389. package/dist/persistence/session-replay.test.d.ts.map +1 -0
  390. package/dist/persistence/session-replay.test.js +171 -0
  391. package/dist/persistence/session-replay.test.js.map +1 -0
  392. package/dist/plugins/__tests__/check-package-discovery.test.d.ts +2 -0
  393. package/dist/plugins/__tests__/check-package-discovery.test.d.ts.map +1 -0
  394. package/dist/plugins/__tests__/check-package-discovery.test.js +48 -0
  395. package/dist/plugins/__tests__/check-package-discovery.test.js.map +1 -0
  396. package/dist/plugins/__tests__/lang-domain.test.d.ts +2 -0
  397. package/dist/plugins/__tests__/lang-domain.test.d.ts.map +1 -0
  398. package/dist/plugins/__tests__/lang-domain.test.js +192 -0
  399. package/dist/plugins/__tests__/lang-domain.test.js.map +1 -0
  400. package/dist/plugins/__tests__/loader.test.d.ts +2 -0
  401. package/dist/plugins/__tests__/loader.test.d.ts.map +1 -0
  402. package/dist/plugins/__tests__/loader.test.js +271 -0
  403. package/dist/plugins/__tests__/loader.test.js.map +1 -0
  404. package/dist/plugins/check-package-discovery.d.ts +19 -0
  405. package/dist/plugins/check-package-discovery.d.ts.map +1 -0
  406. package/dist/plugins/check-package-discovery.js +34 -0
  407. package/dist/plugins/check-package-discovery.js.map +1 -0
  408. package/dist/plugins/loader.d.ts +32 -0
  409. package/dist/plugins/loader.d.ts.map +1 -0
  410. package/dist/plugins/loader.js +198 -0
  411. package/dist/plugins/loader.js.map +1 -0
  412. package/dist/plugins/types.d.ts +29 -0
  413. package/dist/plugins/types.d.ts.map +1 -0
  414. package/dist/plugins/types.js +9 -0
  415. package/dist/plugins/types.js.map +1 -0
  416. package/dist/recipes/__tests__/built-in-recipes.test.d.ts +2 -0
  417. package/dist/recipes/__tests__/built-in-recipes.test.d.ts.map +1 -0
  418. package/dist/recipes/__tests__/built-in-recipes.test.js +93 -0
  419. package/dist/recipes/__tests__/built-in-recipes.test.js.map +1 -0
  420. package/dist/recipes/__tests__/check-config.test.d.ts +12 -0
  421. package/dist/recipes/__tests__/check-config.test.d.ts.map +1 -0
  422. package/dist/recipes/__tests__/check-config.test.js +90 -0
  423. package/dist/recipes/__tests__/check-config.test.js.map +1 -0
  424. package/dist/recipes/__tests__/check-resolution.test.d.ts +2 -0
  425. package/dist/recipes/__tests__/check-resolution.test.d.ts.map +1 -0
  426. package/dist/recipes/__tests__/check-resolution.test.js +160 -0
  427. package/dist/recipes/__tests__/check-resolution.test.js.map +1 -0
  428. package/dist/recipes/__tests__/execution-branches.test.d.ts +10 -0
  429. package/dist/recipes/__tests__/execution-branches.test.d.ts.map +1 -0
  430. package/dist/recipes/__tests__/execution-branches.test.js +612 -0
  431. package/dist/recipes/__tests__/execution-branches.test.js.map +1 -0
  432. package/dist/recipes/__tests__/execution-paths.test.d.ts +10 -0
  433. package/dist/recipes/__tests__/execution-paths.test.d.ts.map +1 -0
  434. package/dist/recipes/__tests__/execution-paths.test.js +280 -0
  435. package/dist/recipes/__tests__/execution-paths.test.js.map +1 -0
  436. package/dist/recipes/__tests__/registry.test.d.ts +2 -0
  437. package/dist/recipes/__tests__/registry.test.d.ts.map +1 -0
  438. package/dist/recipes/__tests__/registry.test.js +89 -0
  439. package/dist/recipes/__tests__/registry.test.js.map +1 -0
  440. package/dist/recipes/__tests__/retry.test.d.ts +2 -0
  441. package/dist/recipes/__tests__/retry.test.d.ts.map +1 -0
  442. package/dist/recipes/__tests__/retry.test.js +75 -0
  443. package/dist/recipes/__tests__/retry.test.js.map +1 -0
  444. package/dist/recipes/__tests__/run-one-check.test.d.ts +14 -0
  445. package/dist/recipes/__tests__/run-one-check.test.d.ts.map +1 -0
  446. package/dist/recipes/__tests__/run-one-check.test.js +182 -0
  447. package/dist/recipes/__tests__/run-one-check.test.js.map +1 -0
  448. package/dist/recipes/__tests__/service.test.d.ts +11 -0
  449. package/dist/recipes/__tests__/service.test.d.ts.map +1 -0
  450. package/dist/recipes/__tests__/service.test.js +572 -0
  451. package/dist/recipes/__tests__/service.test.js.map +1 -0
  452. package/dist/recipes/built-in-recipes.d.ts +14 -0
  453. package/dist/recipes/built-in-recipes.d.ts.map +1 -0
  454. package/dist/recipes/built-in-recipes.js +241 -0
  455. package/dist/recipes/built-in-recipes.js.map +1 -0
  456. package/dist/recipes/check-config.d.ts +56 -0
  457. package/dist/recipes/check-config.d.ts.map +1 -0
  458. package/dist/recipes/check-config.js +61 -0
  459. package/dist/recipes/check-config.js.map +1 -0
  460. package/dist/recipes/check-resolution.d.ts +36 -0
  461. package/dist/recipes/check-resolution.d.ts.map +1 -0
  462. package/dist/recipes/check-resolution.js +81 -0
  463. package/dist/recipes/check-resolution.js.map +1 -0
  464. package/dist/recipes/check-result-processor.d.ts +51 -0
  465. package/dist/recipes/check-result-processor.d.ts.map +1 -0
  466. package/dist/recipes/check-result-processor.js +197 -0
  467. package/dist/recipes/check-result-processor.js.map +1 -0
  468. package/dist/recipes/parallel-execution.d.ts +38 -0
  469. package/dist/recipes/parallel-execution.d.ts.map +1 -0
  470. package/dist/recipes/parallel-execution.js +61 -0
  471. package/dist/recipes/parallel-execution.js.map +1 -0
  472. package/dist/recipes/registry.d.ts +47 -0
  473. package/dist/recipes/registry.d.ts.map +1 -0
  474. package/dist/recipes/registry.js +70 -0
  475. package/dist/recipes/registry.js.map +1 -0
  476. package/dist/recipes/retry.d.ts +29 -0
  477. package/dist/recipes/retry.d.ts.map +1 -0
  478. package/dist/recipes/retry.js +23 -0
  479. package/dist/recipes/retry.js.map +1 -0
  480. package/dist/recipes/run-one-check.d.ts +59 -0
  481. package/dist/recipes/run-one-check.d.ts.map +1 -0
  482. package/dist/recipes/run-one-check.js +174 -0
  483. package/dist/recipes/run-one-check.js.map +1 -0
  484. package/dist/recipes/sequential-execution.d.ts +12 -0
  485. package/dist/recipes/sequential-execution.d.ts.map +1 -0
  486. package/dist/recipes/sequential-execution.js +48 -0
  487. package/dist/recipes/sequential-execution.js.map +1 -0
  488. package/dist/recipes/service-types.d.ts +87 -0
  489. package/dist/recipes/service-types.d.ts.map +1 -0
  490. package/dist/recipes/service-types.js +8 -0
  491. package/dist/recipes/service-types.js.map +1 -0
  492. package/dist/recipes/service.d.ts +73 -0
  493. package/dist/recipes/service.d.ts.map +1 -0
  494. package/dist/recipes/service.js +438 -0
  495. package/dist/recipes/service.js.map +1 -0
  496. package/dist/recipes/types.d.ts +155 -0
  497. package/dist/recipes/types.d.ts.map +1 -0
  498. package/dist/recipes/types.js +56 -0
  499. package/dist/recipes/types.js.map +1 -0
  500. package/dist/scaffold/config-block.d.ts +17 -0
  501. package/dist/scaffold/config-block.d.ts.map +1 -0
  502. package/dist/scaffold/config-block.js +30 -0
  503. package/dist/scaffold/config-block.js.map +1 -0
  504. package/dist/scaffold/examples.d.ts +30 -0
  505. package/dist/scaffold/examples.d.ts.map +1 -0
  506. package/dist/scaffold/examples.js +129 -0
  507. package/dist/scaffold/examples.js.map +1 -0
  508. package/dist/scope-augmentation.d.ts +77 -0
  509. package/dist/scope-augmentation.d.ts.map +1 -0
  510. package/dist/scope-augmentation.js +31 -0
  511. package/dist/scope-augmentation.js.map +1 -0
  512. package/dist/signalers/__tests__/loader.test.d.ts +2 -0
  513. package/dist/signalers/__tests__/loader.test.d.ts.map +1 -0
  514. package/dist/signalers/__tests__/loader.test.js +141 -0
  515. package/dist/signalers/__tests__/loader.test.js.map +1 -0
  516. package/dist/signalers/__tests__/violation-to-signal.test.d.ts +2 -0
  517. package/dist/signalers/__tests__/violation-to-signal.test.d.ts.map +1 -0
  518. package/dist/signalers/__tests__/violation-to-signal.test.js +59 -0
  519. package/dist/signalers/__tests__/violation-to-signal.test.js.map +1 -0
  520. package/dist/signalers/index.d.ts +8 -0
  521. package/dist/signalers/index.d.ts.map +1 -0
  522. package/dist/signalers/index.js +9 -0
  523. package/dist/signalers/index.js.map +1 -0
  524. package/dist/signalers/loader.d.ts +30 -0
  525. package/dist/signalers/loader.d.ts.map +1 -0
  526. package/dist/signalers/loader.js +120 -0
  527. package/dist/signalers/loader.js.map +1 -0
  528. package/dist/signalers/schema.d.ts +60 -0
  529. package/dist/signalers/schema.d.ts.map +1 -0
  530. package/dist/signalers/schema.js +74 -0
  531. package/dist/signalers/schema.js.map +1 -0
  532. package/dist/signalers/types.d.ts +13 -0
  533. package/dist/signalers/types.d.ts.map +1 -0
  534. package/dist/signalers/types.js +5 -0
  535. package/dist/signalers/types.js.map +1 -0
  536. package/dist/signalers/violation-to-signal.d.ts +38 -0
  537. package/dist/signalers/violation-to-signal.d.ts.map +1 -0
  538. package/dist/signalers/violation-to-signal.js +43 -0
  539. package/dist/signalers/violation-to-signal.js.map +1 -0
  540. package/dist/targets/__tests__/loader.test.d.ts +2 -0
  541. package/dist/targets/__tests__/loader.test.d.ts.map +1 -0
  542. package/dist/targets/__tests__/loader.test.js +190 -0
  543. package/dist/targets/__tests__/loader.test.js.map +1 -0
  544. package/dist/targets/__tests__/target-registry.test.d.ts +2 -0
  545. package/dist/targets/__tests__/target-registry.test.d.ts.map +1 -0
  546. package/dist/targets/__tests__/target-registry.test.js +182 -0
  547. package/dist/targets/__tests__/target-registry.test.js.map +1 -0
  548. package/dist/targets/index.d.ts +18 -0
  549. package/dist/targets/index.d.ts.map +1 -0
  550. package/dist/targets/index.js +21 -0
  551. package/dist/targets/index.js.map +1 -0
  552. package/dist/targets/loader.d.ts +27 -0
  553. package/dist/targets/loader.d.ts.map +1 -0
  554. package/dist/targets/loader.js +178 -0
  555. package/dist/targets/loader.js.map +1 -0
  556. package/dist/targets/target-registry.d.ts +41 -0
  557. package/dist/targets/target-registry.d.ts.map +1 -0
  558. package/dist/targets/target-registry.js +71 -0
  559. package/dist/targets/target-registry.js.map +1 -0
  560. package/dist/targets/types.d.ts +14 -0
  561. package/dist/targets/types.d.ts.map +1 -0
  562. package/dist/targets/types.js +14 -0
  563. package/dist/targets/types.js.map +1 -0
  564. package/dist/tool.d.ts +61 -0
  565. package/dist/tool.d.ts.map +1 -0
  566. package/dist/tool.js +260 -0
  567. package/dist/tool.js.map +1 -0
  568. package/dist/types/findings.d.ts +113 -0
  569. package/dist/types/findings.d.ts.map +1 -0
  570. package/dist/types/findings.js +89 -0
  571. package/dist/types/findings.js.map +1 -0
  572. package/dist/types/severity.d.ts +15 -0
  573. package/dist/types/severity.d.ts.map +1 -0
  574. package/dist/types/severity.js +33 -0
  575. package/dist/types/severity.js.map +1 -0
  576. package/package.json +137 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"define-check.js","sourceRoot":"","sources":["../../src/framework/define-check.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,160 @@
1
+ /**
2
+ * @fileoverview defineRegexListCheck - Template helper for regex-list scanners.
3
+ *
4
+ * Wraps {@link defineCheck} for the common "for line; for pattern; emit one
5
+ * violation per match" shape that ~13 sites in @opensip-cli/checks-universal
6
+ * (and a handful in @opensip-cli/checks-typescript) reimplement, often with
7
+ * subtly different `lastIndex`-reset, comment-skip, and test-file-skip
8
+ * semantics.
9
+ *
10
+ * Adopters declare patterns with {@link RegexListCheckPattern} tuples; this
11
+ * helper handles iteration, regex state reset, optional comment/test-file
12
+ * skipping, and per-pattern slug tagging in the violation `type` field.
13
+ *
14
+ * The shape mirrors the existing `no-console-log.ts` reference: each pattern
15
+ * has its own `id` (UUID) and `slug`. The pattern's `slug` is emitted on
16
+ * each violation as `type: pattern.slug`, matching the established
17
+ * convention used by `heavy-import-detection` (`type: 'HEAVY_IMPORT' | ...`).
18
+ * The `id` is purely descriptive metadata for the pattern author and is
19
+ * not added to violation output.
20
+ *
21
+ * @example
22
+ * ```typescript
23
+ * export const noConsoleLog = defineRegexListCheck({
24
+ * id: '86403377-5903-478a-bdf2-e4f2f17df39f',
25
+ * slug: 'no-console-log',
26
+ * description: 'Disallow console.log in production code',
27
+ * tags: ['logging', 'quality'],
28
+ * scope: { languages: ['typescript'], concerns: ['backend'] },
29
+ * fileTypes: ['ts'],
30
+ * contentFilter: 'strip-strings',
31
+ * options: { skipCommentLines: true },
32
+ * patterns: [
33
+ * {
34
+ * id: '38b2df63-54c3-4ab9-8a4d-5050384fa56b',
35
+ * slug: 'console-log',
36
+ * regex: /console\.log\s{0,10}\(/g,
37
+ * message: 'console.log detected',
38
+ * suggestion: 'Use a structured logger',
39
+ * },
40
+ * // ... more patterns
41
+ * ],
42
+ * })
43
+ * ```
44
+ */
45
+ import type { CheckScope } from './check-config.js';
46
+ import type { Check } from './check-types.js';
47
+ /**
48
+ * A single regex pattern entry consumed by {@link defineRegexListCheck}.
49
+ *
50
+ * Each entry has a stable UUID `id` and a kebab-case `slug` so the pattern
51
+ * is individually addressable for documentation and developer tooling. The
52
+ * `slug` is emitted on every produced violation as `type: pattern.slug`.
53
+ *
54
+ * @remarks Per-pattern attribution (e.g. an Aristotle SDO/SAX `provider`)
55
+ * is intentionally NOT modelled here. The `provider` on
56
+ * {@link DefineRegexListCheckConfig} is **check-level only** — every
57
+ * pattern in a single helper invocation shares the same provider. Splitting
58
+ * a pattern list into two helpers is the supported workaround when one
59
+ * subset needs distinct attribution. A per-pattern field will be added
60
+ * if/when a real driver appears (audit 2026-05-23 F1).
61
+ */
62
+ export interface RegexListCheckPattern {
63
+ /** Stable UUID identifying this pattern. Purely descriptive. */
64
+ readonly id: string;
65
+ /** Kebab-case slug for this pattern (e.g. `'console-log'`). Emitted as `type` on each violation. */
66
+ readonly slug: string;
67
+ /** Regex executed against each (non-skipped) line. Global flag is recommended for multi-match-per-line behaviour. */
68
+ readonly regex: RegExp;
69
+ /** Violation message reported on a match. */
70
+ readonly message: string;
71
+ /** Optional suggestion text for the violation. */
72
+ readonly suggestion?: string;
73
+ /**
74
+ * Per-pattern severity. Defaults to `'warning'`. Pattern-level severity
75
+ * is preferred over a per-check default because most adopters mix
76
+ * error-class and warning-class patterns inside the same regex list.
77
+ */
78
+ readonly severity?: 'error' | 'warning';
79
+ }
80
+ /**
81
+ * Options governing line iteration in {@link defineRegexListCheck}.
82
+ */
83
+ export interface RegexListCheckOptions {
84
+ /**
85
+ * Skip lines that {@link isCommentLine} reports as comments.
86
+ * Default: `true`.
87
+ */
88
+ readonly skipCommentLines?: boolean;
89
+ /**
90
+ * Skip files that {@link isTestFile} reports as test files. Useful for
91
+ * checks that should not run against `*.test.ts` / `*.spec.ts` /
92
+ * `__tests__/` paths.
93
+ * Default: `false`.
94
+ */
95
+ readonly skipTestFiles?: boolean;
96
+ /**
97
+ * Custom file-path predicate. When provided AND it returns `true`,
98
+ * the file is skipped entirely. Used by sites with site-specific
99
+ * allowlists that the helper does not model (e.g. CLI-output paths
100
+ * like `/commands/`, `/display/`, `/bin/`).
101
+ *
102
+ * The predicate runs once per file before any line iteration.
103
+ */
104
+ readonly skipFile?: (filePath: string) => boolean;
105
+ /**
106
+ * Additional per-line skip predicate evaluated AFTER comment/test
107
+ * filters but BEFORE pattern matching. Use for site-specific filters
108
+ * the helper doesn't model (e.g. `no-window-alert` skips lines
109
+ * starting with `import `).
110
+ */
111
+ readonly skipLine?: (trimmedLine: string, rawLine: string) => boolean;
112
+ /**
113
+ * When `true`, after a violation is emitted on a line, skip remaining
114
+ * patterns for that line — at most one violation per line in total.
115
+ * Use for sites that historically emit one violation per line across
116
+ * all patterns (e.g. `no-window-alert`, `no-eval`).
117
+ *
118
+ * Note this short-circuits at the line level, NOT the pattern level:
119
+ * within a single pattern's match loop (relevant only for global
120
+ * regexes), multiple matches are still emitted before the next line
121
+ * starts. Combine with non-global regexes for true "one per line".
122
+ *
123
+ * Default: `false` (each matching pattern emits its own violation).
124
+ */
125
+ readonly oneViolationPerLine?: boolean;
126
+ }
127
+ /**
128
+ * Configuration accepted by {@link defineRegexListCheck}.
129
+ *
130
+ * The fields above `patterns` mirror {@link defineCheck}'s analyze-mode
131
+ * `BaseCheckConfig`. The `analyze` function is synthesised by this helper.
132
+ */
133
+ export interface DefineRegexListCheckConfig {
134
+ readonly id: string;
135
+ readonly slug: string;
136
+ readonly description: string;
137
+ readonly longDescription?: string;
138
+ readonly tags: readonly string[];
139
+ readonly scope?: CheckScope;
140
+ readonly fileTypes?: readonly string[];
141
+ readonly contentFilter?: 'raw' | 'strip-strings' | 'strip-strings-and-comments';
142
+ readonly confidence?: 'high' | 'medium' | 'low';
143
+ readonly disabled?: boolean;
144
+ readonly timeout?: number;
145
+ readonly docs?: string;
146
+ /**
147
+ * Aristotle SDO/SAX provider attribution applied to every pattern in
148
+ * this check. **Check-level only** — there is no per-pattern override.
149
+ * If two pattern subsets need distinct attribution, define them as two
150
+ * separate checks (audit 2026-05-23 F1).
151
+ */
152
+ readonly provider?: string;
153
+ /** The list of regex patterns to scan each line against. */
154
+ readonly patterns: readonly RegexListCheckPattern[];
155
+ /** Line- and file-level skip toggles. */
156
+ readonly options?: RegexListCheckOptions;
157
+ }
158
+ /** Factory for the common "scan each line against a regex list" check pattern. */
159
+ export declare function defineRegexListCheck(config: DefineRegexListCheckConfig): Check;
160
+ //# sourceMappingURL=define-regex-list-check.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"define-regex-list-check.d.ts","sourceRoot":"","sources":["../../src/framework/define-regex-list-check.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AAOH,OAAO,KAAK,EAAE,UAAU,EAAkB,MAAM,mBAAmB,CAAC;AACpE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAE9C;;;;;;;;;;;;;;GAcG;AACH,MAAM,WAAW,qBAAqB;IACpC,gEAAgE;IAChE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,oGAAoG;IACpG,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,qHAAqH;IACrH,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,6CAA6C;IAC7C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,kDAAkD;IAClD,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CACzC;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC;;;OAGG;IACH,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IACpC;;;;;OAKG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC;IACjC;;;;;;;OAOG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC;IAClD;;;;;OAKG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC;IACtE;;;;;;;;;;;;OAYG;IACH,QAAQ,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAC;CACxC;AAED;;;;;GAKG;AACH,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC,QAAQ,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC;IAC5B,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC,QAAQ,CAAC,aAAa,CAAC,EAAE,KAAK,GAAG,eAAe,GAAG,4BAA4B,CAAC;IAChF,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;IAChD,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB;;;;;OAKG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,4DAA4D;IAC5D,QAAQ,CAAC,QAAQ,EAAE,SAAS,qBAAqB,EAAE,CAAC;IACpD,yCAAyC;IACzC,QAAQ,CAAC,OAAO,CAAC,EAAE,qBAAqB,CAAC;CAC1C;AAqHD,kFAAkF;AAClF,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,0BAA0B,GAAG,KAAK,CAmC9E"}
@@ -0,0 +1,177 @@
1
+ /**
2
+ * @fileoverview defineRegexListCheck - Template helper for regex-list scanners.
3
+ *
4
+ * Wraps {@link defineCheck} for the common "for line; for pattern; emit one
5
+ * violation per match" shape that ~13 sites in @opensip-cli/checks-universal
6
+ * (and a handful in @opensip-cli/checks-typescript) reimplement, often with
7
+ * subtly different `lastIndex`-reset, comment-skip, and test-file-skip
8
+ * semantics.
9
+ *
10
+ * Adopters declare patterns with {@link RegexListCheckPattern} tuples; this
11
+ * helper handles iteration, regex state reset, optional comment/test-file
12
+ * skipping, and per-pattern slug tagging in the violation `type` field.
13
+ *
14
+ * The shape mirrors the existing `no-console-log.ts` reference: each pattern
15
+ * has its own `id` (UUID) and `slug`. The pattern's `slug` is emitted on
16
+ * each violation as `type: pattern.slug`, matching the established
17
+ * convention used by `heavy-import-detection` (`type: 'HEAVY_IMPORT' | ...`).
18
+ * The `id` is purely descriptive metadata for the pattern author and is
19
+ * not added to violation output.
20
+ *
21
+ * @example
22
+ * ```typescript
23
+ * export const noConsoleLog = defineRegexListCheck({
24
+ * id: '86403377-5903-478a-bdf2-e4f2f17df39f',
25
+ * slug: 'no-console-log',
26
+ * description: 'Disallow console.log in production code',
27
+ * tags: ['logging', 'quality'],
28
+ * scope: { languages: ['typescript'], concerns: ['backend'] },
29
+ * fileTypes: ['ts'],
30
+ * contentFilter: 'strip-strings',
31
+ * options: { skipCommentLines: true },
32
+ * patterns: [
33
+ * {
34
+ * id: '38b2df63-54c3-4ab9-8a4d-5050384fa56b',
35
+ * slug: 'console-log',
36
+ * regex: /console\.log\s{0,10}\(/g,
37
+ * message: 'console.log detected',
38
+ * suggestion: 'Use a structured logger',
39
+ * },
40
+ * // ... more patterns
41
+ * ],
42
+ * })
43
+ * ```
44
+ */
45
+ import { isCommentLine } from '../check-utils/source-analysis.js';
46
+ import { isTestFile } from '../check-utils/test-helpers.js';
47
+ import { defineCheck } from './define-check.js';
48
+ /**
49
+ * Build a {@link Check} that scans every line of every matched file
50
+ * against a list of regex patterns and emits one violation per match.
51
+ *
52
+ * Iteration semantics:
53
+ * - For each line in the file content (split on `\n`).
54
+ * - Optionally skip lines that {@link isCommentLine} flags as comments
55
+ * (controlled by `options.skipCommentLines`, default `true`).
56
+ * - For each pattern: reset `pattern.regex.lastIndex = 0`, then iterate
57
+ * `pattern.regex.exec(line)` until it returns `null`. This produces
58
+ * one violation per match for global-flag regexes, and exactly one
59
+ * violation when the regex has no global flag (because non-global
60
+ * `exec` always starts at position 0). Resetting `lastIndex` is
61
+ * required because pattern objects are reused across lines and
62
+ * files; the audit notes several existing sites get this wrong.
63
+ *
64
+ * Optionally skip whole files when `options.skipTestFiles` is `true` and
65
+ * {@link isTestFile} returns true for the file path.
66
+ *
67
+ * @remarks This helper synthesises only `defineCheck`'s **per-file
68
+ * `analyze` mode** — it processes one file at a time, with no awareness
69
+ * of cross-file state. Cross-file regex-list semantics (e.g. correlated
70
+ * patterns across `package.json` + `Dockerfile`) are out of scope; an
71
+ * `analyzeAll`-mode wrapper would be a separate helper. The factor-out
72
+ * point if/when one is needed is `processFile` (the per-file pure
73
+ * function) — call it from an `analyzeAll` callback that walks an
74
+ * accessor (audit 2026-05-23 F8).
75
+ *
76
+ * @throws {ValidationError} via {@link defineCheck} when the synthesised
77
+ * config is invalid.
78
+ */
79
+ /**
80
+ * Match a single pattern against a single line, pushing one violation
81
+ * per match into `violations`. For global regexes this emits multiple
82
+ * violations per line; for non-global regexes it emits at most one.
83
+ *
84
+ * When `singleMatch` is true, only the first match is emitted (used for
85
+ * `oneViolationPerLine` semantics).
86
+ *
87
+ * Returns `true` if at least one violation was pushed.
88
+ */
89
+ function matchPatternOnLine(pattern, line, lineNum, violations, singleMatch) {
90
+ // Reset lastIndex — pattern objects are reused across lines and files;
91
+ // failing to reset would skip matches at low positions on subsequent
92
+ // calls.
93
+ pattern.regex.lastIndex = 0;
94
+ let pushed = false;
95
+ let match = pattern.regex.exec(line);
96
+ while (match !== null) {
97
+ violations.push({
98
+ line: lineNum,
99
+ column: match.index,
100
+ message: pattern.message,
101
+ severity: pattern.severity ?? 'warning',
102
+ suggestion: pattern.suggestion,
103
+ match: match[0],
104
+ type: pattern.slug,
105
+ });
106
+ pushed = true;
107
+ // Non-global regex: stop after the first match. Otherwise exec
108
+ // would loop forever (lastIndex stays at 0).
109
+ if (!pattern.regex.global)
110
+ break;
111
+ if (singleMatch)
112
+ break;
113
+ match = pattern.regex.exec(line);
114
+ }
115
+ return pushed;
116
+ }
117
+ function processFile(opts) {
118
+ const violations = [];
119
+ const lines = opts.content.split('\n');
120
+ for (const [i, line_] of lines.entries()) {
121
+ const line = line_ ?? '';
122
+ if (opts.skipComments && isCommentLine(line))
123
+ continue;
124
+ if (opts.skipLine?.(line.trim(), line) === true)
125
+ continue;
126
+ processLine(line, i + 1, opts.patterns, opts.oneViolationPerLine, violations);
127
+ }
128
+ return violations;
129
+ }
130
+ function processLine(line, lineNum, patterns, oneViolationPerLine, violations) {
131
+ let lineHasViolation = false;
132
+ for (const pattern of patterns) {
133
+ if (oneViolationPerLine && lineHasViolation)
134
+ break;
135
+ const pushed = matchPatternOnLine(pattern, line, lineNum, violations, oneViolationPerLine);
136
+ if (pushed)
137
+ lineHasViolation = true;
138
+ }
139
+ }
140
+ /** Factory for the common "scan each line against a regex list" check pattern. */
141
+ export function defineRegexListCheck(config) {
142
+ const skipComments = config.options?.skipCommentLines ?? true;
143
+ const skipTests = config.options?.skipTestFiles ?? false;
144
+ const skipFile = config.options?.skipFile;
145
+ const skipLine = config.options?.skipLine;
146
+ const oneViolationPerLine = config.options?.oneViolationPerLine ?? false;
147
+ const patterns = config.patterns;
148
+ return defineCheck({
149
+ id: config.id,
150
+ slug: config.slug,
151
+ description: config.description,
152
+ longDescription: config.longDescription,
153
+ tags: config.tags,
154
+ scope: config.scope,
155
+ fileTypes: config.fileTypes,
156
+ contentFilter: config.contentFilter,
157
+ confidence: config.confidence,
158
+ disabled: config.disabled,
159
+ timeout: config.timeout,
160
+ docs: config.docs,
161
+ provider: config.provider,
162
+ analyze(content, filePath) {
163
+ if (skipTests && isTestFile(filePath))
164
+ return [];
165
+ if (skipFile?.(filePath) === true)
166
+ return [];
167
+ return processFile({
168
+ content,
169
+ patterns,
170
+ skipComments,
171
+ skipLine,
172
+ oneViolationPerLine,
173
+ });
174
+ },
175
+ });
176
+ }
177
+ //# sourceMappingURL=define-regex-list-check.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"define-regex-list-check.js","sourceRoot":"","sources":["../../src/framework/define-regex-list-check.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAClE,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAE5D,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAuHhD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH;;;;;;;;;GASG;AACH,SAAS,kBAAkB,CACzB,OAA8B,EAC9B,IAAY,EACZ,OAAe,EACf,UAA4B,EAC5B,WAAoB;IAEpB,uEAAuE;IACvE,qEAAqE;IACrE,SAAS;IACT,OAAO,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC;IAC5B,IAAI,MAAM,GAAG,KAAK,CAAC;IACnB,IAAI,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACrC,OAAO,KAAK,KAAK,IAAI,EAAE,CAAC;QACtB,UAAU,CAAC,IAAI,CAAC;YACd,IAAI,EAAE,OAAO;YACb,MAAM,EAAE,KAAK,CAAC,KAAK;YACnB,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,SAAS;YACvC,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;YACf,IAAI,EAAE,OAAO,CAAC,IAAI;SACnB,CAAC,CAAC;QACH,MAAM,GAAG,IAAI,CAAC;QACd,+DAA+D;QAC/D,6CAA6C;QAC7C,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM;YAAE,MAAM;QACjC,IAAI,WAAW;YAAE,MAAM;QACvB,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAgBD,SAAS,WAAW,CAAC,IAAwB;IAC3C,MAAM,UAAU,GAAqB,EAAE,CAAC;IACxC,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACvC,KAAK,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;QACzC,MAAM,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,YAAY,IAAI,aAAa,CAAC,IAAI,CAAC;YAAE,SAAS;QACvD,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,KAAK,IAAI;YAAE,SAAS;QAC1D,WAAW,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,mBAAmB,EAAE,UAAU,CAAC,CAAC;IAChF,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAS,WAAW,CAClB,IAAY,EACZ,OAAe,EACf,QAA0C,EAC1C,mBAA4B,EAC5B,UAA4B;IAE5B,IAAI,gBAAgB,GAAG,KAAK,CAAC;IAC7B,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,IAAI,mBAAmB,IAAI,gBAAgB;YAAE,MAAM;QACnD,MAAM,MAAM,GAAG,kBAAkB,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,mBAAmB,CAAC,CAAC;QAC3F,IAAI,MAAM;YAAE,gBAAgB,GAAG,IAAI,CAAC;IACtC,CAAC;AACH,CAAC;AAED,kFAAkF;AAClF,MAAM,UAAU,oBAAoB,CAAC,MAAkC;IACrE,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,EAAE,gBAAgB,IAAI,IAAI,CAAC;IAC9D,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,EAAE,aAAa,IAAI,KAAK,CAAC;IACzD,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC;IAC1C,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC;IAC1C,MAAM,mBAAmB,GAAG,MAAM,CAAC,OAAO,EAAE,mBAAmB,IAAI,KAAK,CAAC;IACzE,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;IAEjC,OAAO,WAAW,CAAC;QACjB,EAAE,EAAE,MAAM,CAAC,EAAE;QACb,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,eAAe,EAAE,MAAM,CAAC,eAAe;QACvC,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,aAAa,EAAE,MAAM,CAAC,aAAa;QACnC,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,QAAQ,EAAE,MAAM,CAAC,QAAQ;QAEzB,OAAO,CAAC,OAAe,EAAE,QAAgB;YACvC,IAAI,SAAS,IAAI,UAAU,CAAC,QAAQ,CAAC;gBAAE,OAAO,EAAE,CAAC;YACjD,IAAI,QAAQ,EAAE,CAAC,QAAQ,CAAC,KAAK,IAAI;gBAAE,OAAO,EAAE,CAAC;YAC7C,OAAO,WAAW,CAAC;gBACjB,OAAO;gBACP,QAAQ;gBACR,YAAY;gBACZ,QAAQ;gBACR,mBAAmB;aACpB,CAAC,CAAC;QACL,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * @fileoverview Directive Inventory - shared parsing logic for
3
+ * fitness-ignore directives.
4
+ */
5
+ /** A single fitness-ignore directive found in a source file. */
6
+ export interface DirectiveEntry {
7
+ filePath: string;
8
+ lineNumber: number;
9
+ type: 'file' | 'next-line';
10
+ checkId: string;
11
+ group: string;
12
+ reason: string | null;
13
+ weakReason: boolean;
14
+ }
15
+ /**
16
+ * Parse a file-level or next-line directive from a comment line.
17
+ *
18
+ * Accepts every comment opener the suppression parser supports
19
+ * (`//`, `/*`, `<!--`, `#`) — sourced from the shared COMMENT_OPENERS
20
+ * table so the inventory and the suppressor stay in sync. Previously
21
+ * the inventory only recognized `// ` and `/* `, so block-comment
22
+ * directives suppressed findings but vanished from inventory counts.
23
+ */
24
+ export declare function parseDirectiveLine(line: string): {
25
+ type: 'file' | 'next-line';
26
+ checkId: string;
27
+ reason: string | null;
28
+ } | null;
29
+ /**
30
+ * Check if a reason is weak/generic. Missing reason (null) is considered weak.
31
+ */
32
+ export declare function isWeakReason(reason: string | null): boolean;
33
+ /**
34
+ * Extract the group prefix from a check ID (the directory name).
35
+ */
36
+ export declare function extractGroup(checkId: string): string;
37
+ //# sourceMappingURL=directive-inventory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"directive-inventory.d.ts","sourceRoot":"","sources":["../../src/framework/directive-inventory.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAQH,gEAAgE;AAChE,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,UAAU,EAAE,OAAO,CAAC;CACrB;AAwBD;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG;IAChD,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB,GAAG,IAAI,CAkBP;AAyBD;;GAEG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAG3D;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAGpD"}
@@ -0,0 +1,82 @@
1
+ /**
2
+ * @fileoverview Directive Inventory - shared parsing logic for
3
+ * fitness-ignore directives.
4
+ */
5
+ import { stripCommentOpener } from './comment-openers.js';
6
+ // =============================================================================
7
+ // Shared Constants
8
+ // =============================================================================
9
+ /** Patterns that indicate a weak or generic ignore reason. */
10
+ const WEAK_REASON_PATTERNS = Object.freeze([
11
+ /^ignore$/i,
12
+ /^skip$/i,
13
+ /^todo$/i,
14
+ /^fixme$/i,
15
+ /^temporary$/i,
16
+ /^temp$/i,
17
+ /^wip$/i,
18
+ /^disable$/i,
19
+ /^suppress$/i,
20
+ /^\s*$/,
21
+ ]);
22
+ // =============================================================================
23
+ // Shared Parsing
24
+ // =============================================================================
25
+ /**
26
+ * Parse a file-level or next-line directive from a comment line.
27
+ *
28
+ * Accepts every comment opener the suppression parser supports
29
+ * (`//`, `/*`, `<!--`, `#`) — sourced from the shared COMMENT_OPENERS
30
+ * table so the inventory and the suppressor stay in sync. Previously
31
+ * the inventory only recognized `// ` and `/* `, so block-comment
32
+ * directives suppressed findings but vanished from inventory counts.
33
+ */
34
+ export function parseDirectiveLine(line) {
35
+ const trimmed = line.trimStart();
36
+ const stripped = stripCommentOpener(trimmed);
37
+ if (stripped === null)
38
+ return null;
39
+ const afterComment = stripped.trimStart();
40
+ if (afterComment.startsWith('@fitness-ignore-file ')) {
41
+ const rest = afterComment.slice('@fitness-ignore-file '.length);
42
+ return parseDirectiveRest(rest, 'file');
43
+ }
44
+ if (afterComment.startsWith('@fitness-ignore-next-line ')) {
45
+ const rest = afterComment.slice('@fitness-ignore-next-line '.length);
46
+ return parseDirectiveRest(rest, 'next-line');
47
+ }
48
+ return null;
49
+ }
50
+ function parseDirectiveRest(rest, type) {
51
+ // Strip trailing block-comment terminators: `*/` (C-family) and `-->` (HTML).
52
+ // eslint-disable-next-line sonarjs/slow-regex -- anchored at end-of-string, bounded \s* runs; no ReDoS exposure
53
+ const normalized = rest.replace(/\s*(?:\*\/|-->)\s*$/, '').trimEnd();
54
+ const separatorIndex = normalized.indexOf(' -- ');
55
+ if (separatorIndex === -1) {
56
+ const checkId = normalized.trim();
57
+ if (!checkId || checkId.includes(' '))
58
+ return null;
59
+ return { type, checkId, reason: null };
60
+ }
61
+ const checkId = normalized.slice(0, separatorIndex).trim();
62
+ const reason = normalized.slice(separatorIndex + 4).trim();
63
+ if (!checkId || checkId.includes(' '))
64
+ return null;
65
+ return { type, checkId, reason: reason || null };
66
+ }
67
+ /**
68
+ * Check if a reason is weak/generic. Missing reason (null) is considered weak.
69
+ */
70
+ export function isWeakReason(reason) {
71
+ if (reason === null)
72
+ return true;
73
+ return WEAK_REASON_PATTERNS.some((pattern) => pattern.test(reason.trim()));
74
+ }
75
+ /**
76
+ * Extract the group prefix from a check ID (the directory name).
77
+ */
78
+ export function extractGroup(checkId) {
79
+ const slashIndex = checkId.indexOf('/');
80
+ return slashIndex > 0 ? checkId.slice(0, slashIndex) : 'other';
81
+ }
82
+ //# sourceMappingURL=directive-inventory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"directive-inventory.js","sourceRoot":"","sources":["../../src/framework/directive-inventory.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * @fileoverview Fitness ignore-directive parsing — thin wrappers over the
3
+ * shared core suppression scanner (ADR-0014).
4
+ *
5
+ * The directive-scanning algorithm lives once in `@opensip-cli/core`
6
+ * (`scanSuppressionDirectives`). These wrappers bind it to the fitness
7
+ * keywords (`@fitness-ignore-file` / `@fitness-ignore-next-line`) and the
8
+ * historical `boolean` / `Set<number>` signatures the fitness framework and
9
+ * its tests depend on. No scanning logic is duplicated here.
10
+ */
11
+ import { type SuppressionKeywords } from '@opensip-cli/core';
12
+ export declare const FITNESS_KEYWORDS: SuppressionKeywords;
13
+ /**
14
+ * Parse file-level ignore directive from file content.
15
+ * Returns true if the file should be entirely ignored for that check.
16
+ */
17
+ export declare function parseFileIgnoreDirective(content: string, checkId: string | readonly string[]): boolean;
18
+ /**
19
+ * Parse next-line ignore directives from file content.
20
+ * Returns the set of 1-based line numbers that should be ignored.
21
+ */
22
+ export declare function parseIgnoreDirectives(content: string, checkId: string | readonly string[]): Set<number>;
23
+ //# sourceMappingURL=directive-parsing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"directive-parsing.d.ts","sourceRoot":"","sources":["../../src/framework/directive-parsing.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAA6B,KAAK,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAExF,eAAO,MAAM,gBAAgB,EAAE,mBAG9B,CAAC;AAEF;;;GAGG;AACH,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,GAClC,OAAO,CAIT;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,GAClC,GAAG,CAAC,MAAM,CAAC,CAQb"}
@@ -0,0 +1,39 @@
1
+ /**
2
+ * @fileoverview Fitness ignore-directive parsing — thin wrappers over the
3
+ * shared core suppression scanner (ADR-0014).
4
+ *
5
+ * The directive-scanning algorithm lives once in `@opensip-cli/core`
6
+ * (`scanSuppressionDirectives`). These wrappers bind it to the fitness
7
+ * keywords (`@fitness-ignore-file` / `@fitness-ignore-next-line`) and the
8
+ * historical `boolean` / `Set<number>` signatures the fitness framework and
9
+ * its tests depend on. No scanning logic is duplicated here.
10
+ */
11
+ import { scanSuppressionDirectives } from '@opensip-cli/core';
12
+ export const FITNESS_KEYWORDS = {
13
+ file: '@fitness-ignore-file',
14
+ nextLine: '@fitness-ignore-next-line',
15
+ };
16
+ /**
17
+ * Parse file-level ignore directive from file content.
18
+ * Returns true if the file should be entirely ignored for that check.
19
+ */
20
+ export function parseFileIgnoreDirective(content, checkId) {
21
+ const checkIds = Array.isArray(checkId) ? checkId : [checkId];
22
+ const { fileIgnoredIds } = scanSuppressionDirectives(content, FITNESS_KEYWORDS);
23
+ return checkIds.some((id) => fileIgnoredIds.has(id));
24
+ }
25
+ /**
26
+ * Parse next-line ignore directives from file content.
27
+ * Returns the set of 1-based line numbers that should be ignored.
28
+ */
29
+ export function parseIgnoreDirectives(content, checkId) {
30
+ const checkIds = Array.isArray(checkId) ? checkId : [checkId];
31
+ const { lineIgnoredIds } = scanSuppressionDirectives(content, FITNESS_KEYWORDS);
32
+ const ignoredLines = new Set();
33
+ for (const [line, ids] of lineIgnoredIds) {
34
+ if (checkIds.some((id) => ids.has(id)))
35
+ ignoredLines.add(line);
36
+ }
37
+ return ignoredLines;
38
+ }
39
+ //# sourceMappingURL=directive-parsing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"directive-parsing.js","sourceRoot":"","sources":["../../src/framework/directive-parsing.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,yBAAyB,EAA4B,MAAM,mBAAmB,CAAC;AAExF,MAAM,CAAC,MAAM,gBAAgB,GAAwB;IACnD,IAAI,EAAE,sBAAsB;IAC5B,QAAQ,EAAE,2BAA2B;CACtC,CAAC;AAEF;;;GAGG;AACH,MAAM,UAAU,wBAAwB,CACtC,OAAe,EACf,OAAmC;IAEnC,MAAM,QAAQ,GAAsB,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IACjF,MAAM,EAAE,cAAc,EAAE,GAAG,yBAAyB,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;IAChF,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;AACvD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CACnC,OAAe,EACf,OAAmC;IAEnC,MAAM,QAAQ,GAAsB,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IACjF,MAAM,EAAE,cAAc,EAAE,GAAG,yBAAyB,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;IAChF,MAAM,YAAY,GAAG,IAAI,GAAG,EAAU,CAAC;IACvC,KAAK,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,cAAc,EAAE,CAAC;QACzC,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAAE,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACjE,CAAC;IACD,OAAO,YAAY,CAAC;AACtB,CAAC"}