@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,178 @@
1
+ // @fitness-ignore-file batch-operation-limits -- iterates bounded collections (config entries, registry items, or small analysis results)
2
+ /**
3
+ * @fileoverview Target config loader
4
+ *
5
+ * Loads target configuration from opensip-cli.config.yml in the project root.
6
+ * Validates with Zod and populates a TargetRegistry.
7
+ */
8
+ import { checkOverridesSchema, globalExcludesSchema, pluginsConfigSchema, targetsRecordSchema, } from '@opensip-cli/config';
9
+ import { PROJECT_CONFIG_FILENAME, ValidationError, currentScope, readYamlFileOrThrow, resolveProjectConfigPath, } from '@opensip-cli/core';
10
+ import { z } from 'zod';
11
+ import { TargetRegistry } from './target-registry.js';
12
+ const YAML_FILENAME = PROJECT_CONFIG_FILENAME;
13
+ const DEFAULT_EXCLUDES = ['**/node_modules/**', '**/dist/**'];
14
+ // =============================================================================
15
+ // YAML schemas
16
+ // =============================================================================
17
+ // The targets / globalExcludes / checkOverrides / plugins shapes are owned by
18
+ // @opensip-cli/config (2.10.1, ADR-0023) — the same schemas the host
19
+ // registers as document-level declarations. This loader adds the registry build
20
+ // + cross-validation runtime below.
21
+ const TargetsFileSchema = z.object({
22
+ targets: targetsRecordSchema,
23
+ globalExcludes: globalExcludesSchema.optional(),
24
+ checkOverrides: checkOverridesSchema.optional(),
25
+ plugins: pluginsConfigSchema.optional(),
26
+ });
27
+ // =============================================================================
28
+ // Build registry + config from parsed data
29
+ // =============================================================================
30
+ /** @throws {ValidationError} When checkOverrides references an unknown target */
31
+ // eslint-disable-next-line sonarjs/cognitive-complexity -- inherent complexity: registry population + cross-validation
32
+ function buildFromParsed(targets, rawGlobalExcludes, rawCheckOverrides, sourceLabel, rawPlugins) {
33
+ const registry = new TargetRegistry();
34
+ // ADR-0037 cutover: the host already parsed `targets:` from the single
35
+ // validated config document into `scope.targets` (Phase 1). When that host
36
+ // set is present, fitness CONSUMES it — mirroring the same frozen `Target`
37
+ // references into a fitness registry so the check-domain `findByScope` can run
38
+ // over them — rather than re-deriving its own generic target set. The fitness
39
+ // `toTarget` normalization (build-targets.ts) is byte-identical to the
40
+ // fallback below, so this is a reference copy, not a re-parse.
41
+ const scopeTargets = currentScope()?.targets;
42
+ if (scopeTargets) {
43
+ for (const target of scopeTargets.getAll()) {
44
+ registry.register(target);
45
+ }
46
+ }
47
+ else {
48
+ // Fallback: no host `scope.targets` (a config-less/agnostic run, or a unit
49
+ // test that doesn't wire a scope) — build the registry from the parsed
50
+ // `targets:` block directly. Same normalization the host applies.
51
+ for (const [name, entry] of Object.entries(targets)) {
52
+ const config = Object.freeze({
53
+ name,
54
+ description: entry.description,
55
+ include: Object.freeze([...entry.include]),
56
+ exclude: Object.freeze([...(entry.exclude ?? DEFAULT_EXCLUDES)]),
57
+ ...(entry.tags && { tags: Object.freeze([...entry.tags]) }),
58
+ ...(entry.languages && { languages: Object.freeze([...entry.languages]) }),
59
+ ...(entry.concerns && { concerns: Object.freeze([...entry.concerns]) }),
60
+ });
61
+ registry.register(Object.freeze({ config }));
62
+ }
63
+ }
64
+ // checkOverrides is fitness-namespaced config the host does NOT semantically
65
+ // cross-validate (only fitness knows check slugs). Each referenced target name
66
+ // is validated against `registry` — which now mirrors `scope.targets` (the
67
+ // host-owned set) when present, exactly the cross-reference ADR-0037 requires.
68
+ const checkOverrides = {};
69
+ if (rawCheckOverrides) {
70
+ for (const [checkSlug, targetRef] of Object.entries(rawCheckOverrides)) {
71
+ const targetNames = typeof targetRef === 'string' ? [targetRef] : targetRef;
72
+ for (const name of targetNames) {
73
+ if (!registry.has(name)) {
74
+ // @fitness-ignore-next-line result-pattern-consistency -- infrastructure boundary, throw is appropriate
75
+ throw new ValidationError(`${sourceLabel}: checkOverrides['${checkSlug}'] references unknown target '${name}'. ` +
76
+ `Available targets: ${registry
77
+ .getAll()
78
+ .map((t) => t.config.name)
79
+ .join(', ')}`, { code: 'ERRORS.TARGETS.UNKNOWN_TARGET' });
80
+ }
81
+ }
82
+ checkOverrides[checkSlug] =
83
+ typeof targetRef === 'string' ? targetRef : Object.freeze([...targetRef]);
84
+ }
85
+ }
86
+ const plugins = rawPlugins
87
+ ? Object.freeze({
88
+ ...(rawPlugins.fit && { fit: Object.freeze([...rawPlugins.fit]) }),
89
+ ...(rawPlugins.sim && { sim: Object.freeze([...rawPlugins.sim]) }),
90
+ ...(rawPlugins.checkPackages && {
91
+ checkPackages: Object.freeze([...rawPlugins.checkPackages]),
92
+ }),
93
+ ...(rawPlugins.scenarioPackages && {
94
+ scenarioPackages: Object.freeze([...rawPlugins.scenarioPackages]),
95
+ }),
96
+ ...(rawPlugins.autoDiscoverScenarios === undefined
97
+ ? {}
98
+ : { autoDiscoverScenarios: rawPlugins.autoDiscoverScenarios }),
99
+ ...(rawPlugins.packageScopes && {
100
+ packageScopes: Object.freeze([...rawPlugins.packageScopes]),
101
+ }),
102
+ ...(rawPlugins.graphAdapters && {
103
+ graphAdapters: Object.freeze([...rawPlugins.graphAdapters]),
104
+ }),
105
+ ...(rawPlugins.autoDiscoverGraphAdapters === undefined
106
+ ? {}
107
+ : { autoDiscoverGraphAdapters: rawPlugins.autoDiscoverGraphAdapters }),
108
+ })
109
+ : undefined;
110
+ const config = Object.freeze({
111
+ globalExcludes: Object.freeze(rawGlobalExcludes ? [...rawGlobalExcludes] : []),
112
+ checkOverrides: Object.freeze(checkOverrides),
113
+ ...(plugins && { plugins }),
114
+ });
115
+ return { registry, config };
116
+ }
117
+ // =============================================================================
118
+ // YAML config loader
119
+ // =============================================================================
120
+ /**
121
+ * Validate an already-parsed config document and build the fitness target
122
+ * registry + config from it. Shared by the scope-first and file-read paths —
123
+ * the fitness-specific projection (targets shape) and cross-validation
124
+ * (`checkOverrides` ↔ registry) live here exactly once.
125
+ *
126
+ * @throws {ValidationError} When the document fails schema validation or
127
+ * `checkOverrides` references an unknown target.
128
+ */
129
+ function projectTargetsConfig(parsed, sourceLabel) {
130
+ const result = TargetsFileSchema.safeParse(parsed);
131
+ if (!result.success) {
132
+ const issues = result.error.issues.map((i) => ` ${i.path.join('.')}: ${i.message}`).join('\n');
133
+ // @fitness-ignore-next-line result-pattern-consistency -- infrastructure boundary, throw is appropriate
134
+ throw new ValidationError(`${sourceLabel} validation failed:\n${issues}`, {
135
+ code: 'ERRORS.TARGETS.VALIDATION_FAILED',
136
+ });
137
+ }
138
+ return buildFromParsed(result.data.targets, result.data.globalExcludes, result.data.checkOverrides, sourceLabel, result.data.plugins);
139
+ }
140
+ /**
141
+ * @throws {SystemError} When the file exceeds the shared default 10 MB cap.
142
+ * @throws {ValidationError} When the file is missing, unreadable, contains
143
+ * invalid YAML, or fails schema validation.
144
+ */
145
+ function loadYamlConfig(filePath) {
146
+ // Strict YAML read + parse via the shared core helper (audit-round-3
147
+ // Finding G — completes the round-2 migration that signalers/loader
148
+ // already adopted). Raises `SystemError` for oversized files and
149
+ // `ValidationError` for missing / unreadable / malformed YAML.
150
+ const parsed = readYamlFileOrThrow(filePath, { loader: 'targets' });
151
+ return projectTargetsConfig(parsed, YAML_FILENAME);
152
+ }
153
+ // =============================================================================
154
+ // Public API
155
+ // =============================================================================
156
+ /**
157
+ * Load full targets config including per-check target overrides.
158
+ *
159
+ * SCOPE-FIRST (ADR-0023 one-reader): when the current `RunScope` carries the
160
+ * host-validated config document (`scope.configDocument`), the fitness shapes
161
+ * are projected from THAT document — no second file read. The registry build
162
+ * inside `buildFromParsed` additionally mirrors `scope.targets` (ADR-0037)
163
+ * when the host built it. The file read below serves scope-less callers only
164
+ * (programmatic use, unit tests); it resolves via the shared project-config
165
+ * resolver.
166
+ *
167
+ * @throws {ValidationError} When no targets config file is found or it cannot be loaded
168
+ * @throws {ValidationError} When the config file fails schema validation
169
+ */
170
+ export function loadTargetsConfig(rootDir, explicitPath) {
171
+ const scopeDocument = currentScope()?.configDocument;
172
+ if (scopeDocument !== undefined) {
173
+ return projectTargetsConfig(scopeDocument, YAML_FILENAME);
174
+ }
175
+ const yamlPath = resolveProjectConfigPath(rootDir, explicitPath);
176
+ return loadYamlConfig(yamlPath);
177
+ }
178
+ //# sourceMappingURL=loader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/targets/loader.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * @fileoverview Fitness Target Registry
3
+ *
4
+ * The generic register/get/byTag/has substrate moved to
5
+ * `@opensip-cli/targeting` (ADR-0037, Phase 0). This fitness registry is a
6
+ * thin **subclass** that adds only the check-domain `findByScope` (languages +
7
+ * concerns intersection) — `concerns` is a check-scope concept, so it stays in
8
+ * fitness, not the host substrate.
9
+ *
10
+ * Subclassing keeps every fitness call site (`registry.getByName`,
11
+ * `registry.has`, `registry.getAll`, `registry.findByScope`) working unchanged
12
+ * while the generic surface lives once, in the substrate.
13
+ */
14
+ import { TargetRegistry as SubstrateTargetRegistry } from '@opensip-cli/targeting';
15
+ import type { Target } from './types.js';
16
+ /**
17
+ * Fitness target registry: the substrate registry plus the check-domain
18
+ * scope-matching `findByScope`. IS-A {@link SubstrateTargetRegistry}, so every
19
+ * generic lookup (`register`/`getByName`/`getAll`/`getByTag`/`has`/`size`/
20
+ * `clear`) is inherited unchanged.
21
+ */
22
+ export declare class TargetRegistry extends SubstrateTargetRegistry {
23
+ /**
24
+ * Find targets whose languages and concerns intersect with the given scope.
25
+ *
26
+ * Both dimensions must match (AND logic):
27
+ * - A target matches languages if the intersection is non-empty (or either side is empty/undefined)
28
+ * - A target matches concerns if the intersection is non-empty (or either side is empty/undefined)
29
+ *
30
+ * Language strings are canonicalised on both sides through
31
+ * the scope's `languages.canonicalize`, so a target written
32
+ * with `languages: ['c']` matches a check scoped to `cpp`, and a
33
+ * target with `languages: ['rs']` matches `rust`-scoped checks.
34
+ *
35
+ * @param languages - Languages the check is designed for
36
+ * @param concerns - Semantic concerns the check targets
37
+ * @returns Targets that match both dimensions
38
+ */
39
+ findByScope(languages: readonly string[], concerns: readonly string[]): readonly Target[];
40
+ }
41
+ //# sourceMappingURL=target-registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"target-registry.d.ts","sourceRoot":"","sources":["../../src/targets/target-registry.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;;GAYG;AAGH,OAAO,EAAE,cAAc,IAAI,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAEnF,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAczC;;;;;GAKG;AACH,qBAAa,cAAe,SAAQ,uBAAuB;IACzD;;;;;;;;;;;;;;;OAeG;IACH,WAAW,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,EAAE,QAAQ,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,MAAM,EAAE;CAwB1F"}
@@ -0,0 +1,71 @@
1
+ // @fitness-ignore-file batch-operation-limits -- findByScope's this.getAll() iterates the project's declared target set (a handful of named file-sets per config document), bounded like core's tool registry getAll.
2
+ /**
3
+ * @fileoverview Fitness Target Registry
4
+ *
5
+ * The generic register/get/byTag/has substrate moved to
6
+ * `@opensip-cli/targeting` (ADR-0037, Phase 0). This fitness registry is a
7
+ * thin **subclass** that adds only the check-domain `findByScope` (languages +
8
+ * concerns intersection) — `concerns` is a check-scope concept, so it stays in
9
+ * fitness, not the host substrate.
10
+ *
11
+ * Subclassing keeps every fitness call site (`registry.getByName`,
12
+ * `registry.has`, `registry.getAll`, `registry.findByScope`) working unchanged
13
+ * while the generic surface lives once, in the substrate.
14
+ */
15
+ import { currentScope } from '@opensip-cli/core';
16
+ import { TargetRegistry as SubstrateTargetRegistry } from '@opensip-cli/targeting';
17
+ /**
18
+ * Map a language string (canonical id or alias) to its canonical adapter id.
19
+ * Falls back to a lowercased copy when the language isn't registered, so
20
+ * scope-matching still treats unknown ids as themselves rather than
21
+ * losing them entirely. Falls back to lowercase also when no scope is
22
+ * bound (test contexts that don't wire a scope) — preserves prior behaviour
23
+ * of treating unknown adapters as themselves.
24
+ */
25
+ function toCanonical(lang) {
26
+ return currentScope()?.languages.canonicalize(lang) ?? lang.toLowerCase();
27
+ }
28
+ /**
29
+ * Fitness target registry: the substrate registry plus the check-domain
30
+ * scope-matching `findByScope`. IS-A {@link SubstrateTargetRegistry}, so every
31
+ * generic lookup (`register`/`getByName`/`getAll`/`getByTag`/`has`/`size`/
32
+ * `clear`) is inherited unchanged.
33
+ */
34
+ export class TargetRegistry extends SubstrateTargetRegistry {
35
+ /**
36
+ * Find targets whose languages and concerns intersect with the given scope.
37
+ *
38
+ * Both dimensions must match (AND logic):
39
+ * - A target matches languages if the intersection is non-empty (or either side is empty/undefined)
40
+ * - A target matches concerns if the intersection is non-empty (or either side is empty/undefined)
41
+ *
42
+ * Language strings are canonicalised on both sides through
43
+ * the scope's `languages.canonicalize`, so a target written
44
+ * with `languages: ['c']` matches a check scoped to `cpp`, and a
45
+ * target with `languages: ['rs']` matches `rust`-scoped checks.
46
+ *
47
+ * @param languages - Languages the check is designed for
48
+ * @param concerns - Semantic concerns the check targets
49
+ * @returns Targets that match both dimensions
50
+ */
51
+ findByScope(languages, concerns) {
52
+ const scopeLangs = languages.map(toCanonical);
53
+ return this.getAll().filter((target) => {
54
+ const targetLangs = target.config.languages;
55
+ const targetConcerns = target.config.concerns;
56
+ const targetLangsCanonical = targetLangs?.map(toCanonical);
57
+ // Language matching: if either side has no languages, treat as "matches any"
58
+ const languageMatch = scopeLangs.length === 0 ||
59
+ !targetLangsCanonical ||
60
+ targetLangsCanonical.length === 0 ||
61
+ scopeLangs.some((lang) => targetLangsCanonical.includes(lang));
62
+ // Concern matching: if either side has no concerns, treat as "matches any"
63
+ const concernMatch = concerns.length === 0 ||
64
+ !targetConcerns ||
65
+ targetConcerns.length === 0 ||
66
+ concerns.some((concern) => targetConcerns.includes(concern));
67
+ return languageMatch && concernMatch;
68
+ });
69
+ }
70
+ }
71
+ //# sourceMappingURL=target-registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"target-registry.js","sourceRoot":"","sources":["../../src/targets/target-registry.ts"],"names":[],"mappings":"AAAA,sNAAsN;AACtN;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,cAAc,IAAI,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAInF;;;;;;;GAOG;AACH,SAAS,WAAW,CAAC,IAAY;IAC/B,OAAO,YAAY,EAAE,EAAE,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;AAC5E,CAAC;AAED;;;;;GAKG;AACH,MAAM,OAAO,cAAe,SAAQ,uBAAuB;IACzD;;;;;;;;;;;;;;;OAeG;IACH,WAAW,CAAC,SAA4B,EAAE,QAA2B;QACnE,MAAM,UAAU,GAAG,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAC9C,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE;YACrC,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC;YAC5C,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC;YAC9C,MAAM,oBAAoB,GAAG,WAAW,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC;YAE3D,6EAA6E;YAC7E,MAAM,aAAa,GACjB,UAAU,CAAC,MAAM,KAAK,CAAC;gBACvB,CAAC,oBAAoB;gBACrB,oBAAoB,CAAC,MAAM,KAAK,CAAC;gBACjC,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,oBAAoB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;YAEjE,2EAA2E;YAC3E,MAAM,YAAY,GAChB,QAAQ,CAAC,MAAM,KAAK,CAAC;gBACrB,CAAC,cAAc;gBACf,cAAc,CAAC,MAAM,KAAK,CAAC;gBAC3B,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,cAAc,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;YAE/D,OAAO,aAAa,IAAI,YAAY,CAAC;QACvC,CAAC,CAAC,CAAC;IACL,CAAC;CACF"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * @fileoverview Target type definitions for shared targeting.
3
+ *
4
+ * The targeting document shape (these types) is owned by `@opensip-cli/config`
5
+ * as of 2.10.1 (ADR-0023) — targeting is cross-tool, not a fitness concern. The
6
+ * generic targeting runtime (register/get/byTag, glob expansion, globalExcludes)
7
+ * now lives in `@opensip-cli/targeting` and is consumed via the host-built
8
+ * `scope.targets` (ADR-0037). Fitness keeps only the check-domain layer:
9
+ * `findByScope`, the `checkOverrides` cross-validation, `resolveFilesForCheck`'s
10
+ * 3-tier precedence, and the content `fileCache`. Re-exported here so the
11
+ * engine's existing `./types.js` importers stay stable.
12
+ */
13
+ export type { TargetConfig, Target, CheckTargetMap, PluginsConfig, TargetsConfig, } from '@opensip-cli/config';
14
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/targets/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,YAAY,EACV,YAAY,EACZ,MAAM,EACN,cAAc,EACd,aAAa,EACb,aAAa,GACd,MAAM,qBAAqB,CAAC"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * @fileoverview Target type definitions for shared targeting.
3
+ *
4
+ * The targeting document shape (these types) is owned by `@opensip-cli/config`
5
+ * as of 2.10.1 (ADR-0023) — targeting is cross-tool, not a fitness concern. The
6
+ * generic targeting runtime (register/get/byTag, glob expansion, globalExcludes)
7
+ * now lives in `@opensip-cli/targeting` and is consumed via the host-built
8
+ * `scope.targets` (ADR-0037). Fitness keeps only the check-domain layer:
9
+ * `findByScope`, the `checkOverrides` cross-validation, `resolveFilesForCheck`'s
10
+ * 3-tier precedence, and the content `fileCache`. Re-exported here so the
11
+ * engine's existing `./types.js` importers stay stable.
12
+ */
13
+ export {};
14
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/targets/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG"}
package/dist/tool.d.ts ADDED
@@ -0,0 +1,61 @@
1
+ /**
2
+ * fitnessTool — fitness as a Tool plugin.
3
+ *
4
+ * Owns the `fit`, `fit-list`, `fit-recipes`, and `fit-baseline-export`
5
+ * subcommands. Since release 2.11.0 (Phase 4) the Commander wiring is no longer
6
+ * hand-rolled: the tool exports declarative {@link CommandSpec}s
7
+ * (`commandSpecs`) and the host's `mountCommandSpec` mounts them
8
+ * (name/description/aliases, the ADR-0021 common flags, each command's options)
9
+ * and owns the parse→handler→error→exit pipeline. This file owns only the
10
+ * fitness command-spec assembly + the live-view renderer wiring; the spec
11
+ * modules under `cli/fit/` own the option declarations and handler bodies. (The
12
+ * standalone `report` subcommand is owned by the CLI, which composes it from
13
+ * every tool's contributed data — see
14
+ * packages/cli/src/commands/host-command-specs.ts — and migrates with the host
15
+ * commands in Phase 6.)
16
+ *
17
+ * Two-key registration invariant
18
+ * ------------------------------
19
+ * Fitness contributes TWO distinct identifiers to the CLI's registries
20
+ * and the mismatch is intentional — do not collapse them:
21
+ *
22
+ * - `metadata.id = 'fitness'` is the package-wide tool identifier
23
+ * (conflict-detection key in the CLI-managed tool registry).
24
+ *
25
+ * - `FIT_LIVE_VIEW_KEY = 'fit'` is the live-view key. Used to call
26
+ * `cli.registerLiveView('fit', renderer)` and consumed by
27
+ * `cli.renderLive('fit', args)` in `runLiveMode`. The key matches
28
+ * the `fit` subcommand name so the dispatcher's `renderLive(key)`
29
+ * reads naturally next to the command that triggers it.
30
+ *
31
+ * Layer 5 Phase 3 (closes audit 2026-05-23 F3): fitness now ships its
32
+ * own Ink/React renderer (`renderFitLive` in `cli/fit-runner.tsx`)
33
+ * and registers it directly via `cli.registerLiveView`. The prior
34
+ * `cli.builtinLiveViews` self-lookup handshake is gone.
35
+ *
36
+ * In the spec-mounted world there is no `register()` mount hook, so the live-view
37
+ * renderer is registered lazily on the host context (via {@link setUpFitLiveView})
38
+ * the first time a live `fit` run needs it. `registerLiveView` is an idempotent
39
+ * map write, so doing this once per run — only on the interactive path that needs
40
+ * it — is equivalent to the old mount-time registration.
41
+ *
42
+ * Module layout
43
+ * -------------
44
+ * - This file owns the command-spec assembly + the tool descriptor.
45
+ * - `cli/fit/fit-command-spec.ts` owns the primary `fit` command spec + handler.
46
+ * - `cli/fit/fit-aux-command-specs.ts` owns the aux command specs.
47
+ * - `cli/fit-modes.ts` owns the dispatch branches (gate/list/recipes/json/live).
48
+ */
49
+ import './scope-augmentation.js';
50
+ import type { Tool } from '@opensip-cli/core';
51
+ /**
52
+ * Per-tool contract version for the fitness-specific surface
53
+ * (defineCheck, analysis modes, check packs, recipes, etc.).
54
+ * Independent of the core TOOL_CONTRACT_VERSION (the generic Tool bus).
55
+ * Bumped only on actual changes to this surface; value = major.minor of the
56
+ * CLI release shipping the change (see ADR-0047).
57
+ */
58
+ export declare const FITNESS_CONTRACT_VERSION = "1.0.0";
59
+ export declare const FITNESS_STABLE_ID = "afd68bd3-ff3c-4935-a5b6-76d8fc7a5224";
60
+ export declare const fitnessTool: Tool;
61
+ //# sourceMappingURL=tool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool.d.ts","sourceRoot":"","sources":["../src/tool.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AA4BH,OAAO,yBAAyB,CAAC;AAKjC,OAAO,KAAK,EAIV,IAAI,EAGL,MAAM,mBAAmB,CAAC;AA6I3B;;;;;;GAMG;AACH,eAAO,MAAM,wBAAwB,UAAU,CAAC;AAMhD,eAAO,MAAM,iBAAiB,yCAAyC,CAAC;AAExE,eAAO,MAAM,WAAW,EAAE,IAwDzB,CAAC"}