@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,8 @@
1
+ /**
2
+ * @fileoverview Signalers config barrel export
3
+ *
4
+ * Public API for opensip-cli.config.yml:
5
+ * - loadSignalersConfig() — Load and validate signalers config
6
+ */
7
+ export { loadSignalersConfig } from './loader.js';
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/signalers/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * @fileoverview Signalers config barrel export
3
+ *
4
+ * Public API for opensip-cli.config.yml:
5
+ * - loadSignalersConfig() — Load and validate signalers config
6
+ */
7
+ // Loader
8
+ export { loadSignalersConfig } from './loader.js';
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/signalers/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,SAAS;AACT,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * @fileoverview Load and cache opensip-cli.config.yml
3
+ *
4
+ * Reads the signalers config file (path resolved via config-resolution),
5
+ * validates with Zod, and returns a frozen SignalersConfig. Throws when
6
+ * the config file is missing — silent no-op would mask a broken scan.
7
+ */
8
+ import type { SignalersConfig } from './types.js';
9
+ /**
10
+ * Load and validate opensip-cli.config.yml from the given root directory.
11
+ *
12
+ * SCOPE-FIRST (ADR-0023 one-reader): when the current `RunScope` carries the
13
+ * host-validated config document (`scope.configDocument`, attached by the CLI
14
+ * pre-action hook after its single `readYamlFile`), this loader projects the
15
+ * fitness shape from THAT document — no second file read, no chance of the
16
+ * tool resolving a different file than the host did. The file-read fallback
17
+ * below serves scope-less callers only (programmatic use, unit tests).
18
+ *
19
+ * Fallback resolution: --config (explicit) → package.json#opensip-cli.configPath
20
+ * → <rootDir>/opensip-cli.config.yml. See resolveProjectConfigPath().
21
+ * Results are cached per resolved file path.
22
+ *
23
+ * @param rootDir - Absolute path to the project root directory
24
+ * @param explicitPath - Optional config path from --config CLI flag
25
+ * @throws {ValidationError} When no config is found, YAML is invalid, or
26
+ * schema validation fails. Intentionally loud: a missing config means
27
+ * the scan would otherwise silently produce zero findings.
28
+ */
29
+ export declare function loadSignalersConfig(rootDir: string, explicitPath?: string): SignalersConfig;
30
+ //# sourceMappingURL=loader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../src/signalers/loader.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AAaH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AA+ElD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,eAAe,CA8B3F"}
@@ -0,0 +1,120 @@
1
+ // @fitness-ignore-file toctou-race-condition -- cache check + populate is synchronous (sync file I/O + Map.set); no async gap, safe in single-threaded Node.js
2
+ // @fitness-ignore-file batch-operation-limits -- iterates bounded collection (signaler entries listed in opensip-cli.config.yml)
3
+ /**
4
+ * @fileoverview Load and cache opensip-cli.config.yml
5
+ *
6
+ * Reads the signalers config file (path resolved via config-resolution),
7
+ * validates with Zod, and returns a frozen SignalersConfig. Throws when
8
+ * the config file is missing — silent no-op would mask a broken scan.
9
+ */
10
+ import { PROJECT_CONFIG_FILENAME, ValidationError, currentScope, readYamlFileOrThrow, resolveProjectConfigPath, logger, } from '@opensip-cli/core';
11
+ import { SignalersConfigSchema } from './schema.js';
12
+ /**
13
+ * Recursively freeze every nested object so the `DeepReadonly` claim
14
+ * on `SignalersConfig` is honoured at runtime, not just at the type
15
+ * level. The previous implementation aliased `structuredClone` under
16
+ * the name `deepFreeze` — it copied without freezing, so the
17
+ * `SignalersConfig` readonly type was a lie at runtime. Audit-round-2
18
+ * Finding E.
19
+ */
20
+ function deepFreeze(value) {
21
+ if (value !== null && typeof value === 'object' && !Object.isFrozen(value)) {
22
+ for (const key of Object.keys(value)) {
23
+ deepFreeze(value[key]);
24
+ }
25
+ Object.freeze(value);
26
+ }
27
+ return value;
28
+ }
29
+ /** TTL for cached signalers config entries in milliseconds (30 seconds) */
30
+ const SIGNALERS_CACHE_TTL_MS = 30_000;
31
+ /** Cache keyed by resolved absolute file path, not rootDir — avoids
32
+ * stale hits when the same rootDir resolves to different files over
33
+ * time (e.g. --config flag changes between invocations in tests). */
34
+ const cache = new Map();
35
+ /** Per-document memo for the scope-first path: one projection per validated
36
+ * document object (the host builds one document per run, so this is a
37
+ * per-run cache with no TTL/invalidation concerns — the key IS the run's
38
+ * document identity). */
39
+ const scopeDocumentCache = new WeakMap();
40
+ /**
41
+ * Validate an already-parsed config document and project it into the frozen
42
+ * `SignalersConfig` shape. Shared by the scope-first and file-read paths —
43
+ * the fitness-specific projection/validation lives here exactly once.
44
+ *
45
+ * @throws {ValidationError} When the document fails fitness's schema.
46
+ */
47
+ function projectSignalersConfig(parsed, sourceLabel) {
48
+ const result = SignalersConfigSchema.safeParse(parsed);
49
+ if (!result.success) {
50
+ const issues = result.error.issues
51
+ .map((i) => ` ${i.path.join('.')}: ${i.message} (expected: ${i.code})`)
52
+ .join('\n');
53
+ // @fitness-ignore-next-line result-pattern-consistency -- user config error surfaced as a thrown ValidationError (mapped to an exit code by the loader's caller); a malformed signalers config is fail-loud at load time, not an expected-failure Result flow.
54
+ throw new ValidationError(`${sourceLabel} validation failed:\n${issues}`, {
55
+ operation: 'load',
56
+ loader: 'signalers',
57
+ filePath: sourceLabel,
58
+ code: 'ERRORS.SIGNALERS.VALIDATION_FAILED',
59
+ });
60
+ }
61
+ const data = result.data;
62
+ logger.info({
63
+ evt: 'core.signalers.config.loaded',
64
+ module: 'core:signalers',
65
+ file: sourceLabel,
66
+ hasFitness: data.fitness !== undefined,
67
+ hasSimulation: data.simulation !== undefined,
68
+ targetCount: Object.keys(data.targets).length,
69
+ });
70
+ // `data` is typed `z.infer<typeof SignalersConfigSchema>` (mutable).
71
+ // After deepFreeze it's structurally read-only end-to-end; the single
72
+ // cast adds the `DeepReadonly` wrapper that defines `SignalersConfig`.
73
+ return deepFreeze(data);
74
+ }
75
+ /**
76
+ * Load and validate opensip-cli.config.yml from the given root directory.
77
+ *
78
+ * SCOPE-FIRST (ADR-0023 one-reader): when the current `RunScope` carries the
79
+ * host-validated config document (`scope.configDocument`, attached by the CLI
80
+ * pre-action hook after its single `readYamlFile`), this loader projects the
81
+ * fitness shape from THAT document — no second file read, no chance of the
82
+ * tool resolving a different file than the host did. The file-read fallback
83
+ * below serves scope-less callers only (programmatic use, unit tests).
84
+ *
85
+ * Fallback resolution: --config (explicit) → package.json#opensip-cli.configPath
86
+ * → <rootDir>/opensip-cli.config.yml. See resolveProjectConfigPath().
87
+ * Results are cached per resolved file path.
88
+ *
89
+ * @param rootDir - Absolute path to the project root directory
90
+ * @param explicitPath - Optional config path from --config CLI flag
91
+ * @throws {ValidationError} When no config is found, YAML is invalid, or
92
+ * schema validation fails. Intentionally loud: a missing config means
93
+ * the scan would otherwise silently produce zero findings.
94
+ */
95
+ export function loadSignalersConfig(rootDir, explicitPath) {
96
+ const scope = currentScope();
97
+ const scopeDocument = scope?.configDocument;
98
+ if (scopeDocument !== undefined) {
99
+ const memo = scopeDocumentCache.get(scopeDocument);
100
+ if (memo)
101
+ return memo;
102
+ const config = projectSignalersConfig(scopeDocument, scope?.projectContext?.configPath ?? PROJECT_CONFIG_FILENAME);
103
+ scopeDocumentCache.set(scopeDocument, config);
104
+ return config;
105
+ }
106
+ const filePath = resolveProjectConfigPath(rootDir, explicitPath);
107
+ const cached = cache.get(filePath);
108
+ if (cached && Date.now() - cached.cachedAt < SIGNALERS_CACHE_TTL_MS) {
109
+ return cached.config;
110
+ }
111
+ // Strict YAML read + parse via the shared core helper (audit-round-2
112
+ // Finding F). Raises `SystemError` if the file is larger than the
113
+ // default 10 MB cap, `ValidationError` for missing / unreadable /
114
+ // malformed YAML — same shape this loader used to throw inline.
115
+ const parsed = readYamlFileOrThrow(filePath, { loader: 'signalers' });
116
+ const frozen = projectSignalersConfig(parsed, filePath);
117
+ cache.set(filePath, { config: frozen, cachedAt: Date.now(), filePath });
118
+ return frozen;
119
+ }
120
+ //# sourceMappingURL=loader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/signalers/loader.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,60 @@
1
+ /**
2
+ * @fileoverview Zod validation schema for opensip-cli.config.yml
3
+ *
4
+ * Defines the schema for signal producer configuration (fitness,
5
+ * simulation) and file targeting. These settings live alongside the target
6
+ * definitions in opensip-cli.config.yml.
7
+ */
8
+ import { z } from 'zod';
9
+ /** Root schema for opensip-cli.config.yml validation */
10
+ export declare const SignalersConfigSchema: z.ZodObject<{
11
+ schemaVersion: z.ZodDefault<z.ZodNumber>;
12
+ globalExcludes: z.ZodDefault<z.ZodArray<z.ZodString>>;
13
+ targets: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
14
+ description: z.ZodString;
15
+ include: z.ZodArray<z.ZodString>;
16
+ exclude: z.ZodOptional<z.ZodArray<z.ZodString>>;
17
+ tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
18
+ languages: z.ZodOptional<z.ZodArray<z.ZodString>>;
19
+ concerns: z.ZodOptional<z.ZodArray<z.ZodString>>;
20
+ }, z.core.$strip>>>;
21
+ checkOverrides: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>>;
22
+ fitness: z.ZodPreprocess<z.ZodObject<{
23
+ defaultTarget: z.ZodOptional<z.ZodString>;
24
+ maxParallel: z.ZodOptional<z.ZodNumber>;
25
+ timeout: z.ZodOptional<z.ZodNumber>;
26
+ recipe: z.ZodOptional<z.ZodString>;
27
+ failOnErrors: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
28
+ failOnWarnings: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
29
+ disabledChecks: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
30
+ }, z.core.$strip>>;
31
+ simulation: z.ZodPreprocess<z.ZodObject<{
32
+ recipe: z.ZodOptional<z.ZodString>;
33
+ }, z.core.$strip>>;
34
+ cli: z.ZodPreprocess<z.ZodObject<{
35
+ exclude: z.ZodOptional<z.ZodArray<z.ZodString>>;
36
+ verbose: z.ZodOptional<z.ZodBoolean>;
37
+ json: z.ZodOptional<z.ZodBoolean>;
38
+ reportTo: z.ZodOptional<z.ZodURL>;
39
+ apiKey: z.ZodOptional<z.ZodString>;
40
+ fileTypes: z.ZodOptional<z.ZodArray<z.ZodString>>;
41
+ ignore: z.ZodOptional<z.ZodArray<z.ZodString>>;
42
+ debug: z.ZodOptional<z.ZodBoolean>;
43
+ ui: z.ZodOptional<z.ZodObject<{
44
+ banner: z.ZodOptional<z.ZodEnum<{
45
+ lg: "lg";
46
+ md: "md";
47
+ sm: "sm";
48
+ mini: "mini";
49
+ }>>;
50
+ }, z.core.$strip>>;
51
+ cloud: z.ZodOptional<z.ZodObject<{
52
+ sync: z.ZodOptional<z.ZodBoolean>;
53
+ endpoint: z.ZodOptional<z.ZodString>;
54
+ }, z.core.$strip>>;
55
+ }, z.core.$strip>>;
56
+ dashboard: z.ZodPreprocess<z.ZodObject<{
57
+ editor: z.ZodOptional<z.ZodString>;
58
+ }, z.core.$strip>>;
59
+ }, z.core.$strip>;
60
+ //# sourceMappingURL=schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/signalers/schema.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AASH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAoExB,wDAAwD;AACxD,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAahC,CAAC"}
@@ -0,0 +1,74 @@
1
+ /**
2
+ * @fileoverview Zod validation schema for opensip-cli.config.yml
3
+ *
4
+ * Defines the schema for signal producer configuration (fitness,
5
+ * simulation) and file targeting. These settings live alongside the target
6
+ * definitions in opensip-cli.config.yml.
7
+ */
8
+ import { checkOverridesSchema, cliConfigSchema, dashboardConfigSchema, globalExcludesSchema, targetsRecordSchema, } from '@opensip-cli/config';
9
+ import { z } from 'zod';
10
+ import { FITNESS_CONFIG_DEFAULTS, FitnessNamespaceSchema, } from '../config/fitness-config-schema.js';
11
+ // =============================================================================
12
+ // Target Definition Schema — owned by @opensip-cli/config (2.10.1, ADR-0023)
13
+ // =============================================================================
14
+ // `targets` / `globalExcludes` / `checkOverrides` are the shared two-layer scope
15
+ // model; their schemas live in the config layer and the host registers them as
16
+ // document-level declarations. This whole-document loader still validates them
17
+ // because the fit hot path consumes targeting through `loadSignalersConfig`.
18
+ // =============================================================================
19
+ // Producer Schemas
20
+ // =============================================================================
21
+ /** Fitness config parser: one field definition, parser defaults for this loader. */
22
+ const FitnessSchema = FitnessNamespaceSchema.extend({
23
+ failOnErrors: FitnessNamespaceSchema.shape.failOnErrors.default(FITNESS_CONFIG_DEFAULTS.failOnErrors),
24
+ failOnWarnings: FitnessNamespaceSchema.shape.failOnWarnings.default(FITNESS_CONFIG_DEFAULTS.failOnWarnings),
25
+ disabledChecks: FitnessNamespaceSchema.shape.disabledChecks.default([
26
+ ...FITNESS_CONFIG_DEFAULTS.disabledChecks,
27
+ ]),
28
+ });
29
+ /** Schema for simulation engine configuration. */
30
+ const SimulationSchema = z.object({
31
+ // Default recipe for `sim` runs when no `--recipe` flag is given (ADR-0022).
32
+ // Tool-scoped: distinct from `fitness.recipe` / `graph.recipe`. An unknown
33
+ // name here tolerantly falls back to the built-in `default` recipe; an
34
+ // explicit `--recipe` typo still hard-fails.
35
+ recipe: z.string().min(1).max(128).optional(),
36
+ });
37
+ // =============================================================================
38
+ // CLI Defaults + Dashboard — now owned by @opensip-cli/config (2.10.1)
39
+ // =============================================================================
40
+ // The `cli:` and `dashboard:` blocks are tool-agnostic document-level config;
41
+ // their schemas moved to `@opensip-cli/config` in 2.10.1 (ADR-0023) and the
42
+ // host registers them as document-level declarations for the composed STRICT
43
+ // validation. This loader imports the schemas rather than re-defining them, so
44
+ // there is one definition of each.
45
+ const CliDefaultsSchema = cliConfigSchema;
46
+ const DashboardSchema = dashboardConfigSchema;
47
+ // =============================================================================
48
+ // Root Schema
49
+ // =============================================================================
50
+ /** Wrap a section schema so YAML `null` or missing keys are treated as `{}` (all defaults). */
51
+ function section(schema) {
52
+ // Zod 4 change: `.default(...)` no longer re-parses the supplied default through
53
+ // the inner schema, so a literal `{}` default would skip every nested
54
+ // `.default(...)` declaration on the section's fields. Instead, coerce
55
+ // undefined / null inputs to `{}` *before* delegating to the section schema —
56
+ // that way the inner schema parses `{}` and its per-field defaults apply.
57
+ return z.preprocess((v) => v ?? {}, schema);
58
+ }
59
+ /** Root schema for opensip-cli.config.yml validation */
60
+ export const SignalersConfigSchema = z.object({
61
+ // Top-level config schema version. The CLI checks this in pre-action-hook
62
+ // (via readConfigSchemaVersion + checkSchemaCompat in core) BEFORE this
63
+ // strict loader runs. Default 1 keeps existing configs (written before
64
+ // the field existed) valid.
65
+ schemaVersion: z.number().int().min(1).default(1),
66
+ globalExcludes: globalExcludesSchema.default([]),
67
+ targets: targetsRecordSchema.default({}),
68
+ checkOverrides: checkOverridesSchema.optional(),
69
+ fitness: section(FitnessSchema),
70
+ simulation: section(SimulationSchema),
71
+ cli: section(CliDefaultsSchema),
72
+ dashboard: section(DashboardSchema),
73
+ });
74
+ //# sourceMappingURL=schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/signalers/schema.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EACL,oBAAoB,EACpB,eAAe,EACf,qBAAqB,EACrB,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EACL,uBAAuB,EACvB,sBAAsB,GACvB,MAAM,oCAAoC,CAAC;AAE5C,gFAAgF;AAChF,6EAA6E;AAC7E,gFAAgF;AAEhF,iFAAiF;AACjF,+EAA+E;AAC/E,+EAA+E;AAC/E,6EAA6E;AAE7E,gFAAgF;AAChF,mBAAmB;AACnB,gFAAgF;AAEhF,oFAAoF;AACpF,MAAM,aAAa,GAAG,sBAAsB,CAAC,MAAM,CAAC;IAClD,YAAY,EAAE,sBAAsB,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAC7D,uBAAuB,CAAC,YAAY,CACrC;IACD,cAAc,EAAE,sBAAsB,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CACjE,uBAAuB,CAAC,cAAc,CACvC;IACD,cAAc,EAAE,sBAAsB,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC;QAClE,GAAG,uBAAuB,CAAC,cAAc;KAC1C,CAAC;CACH,CAAC,CAAC;AAEH,kDAAkD;AAClD,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChC,6EAA6E;IAC7E,2EAA2E;IAC3E,uEAAuE;IACvE,6CAA6C;IAC7C,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;CAC9C,CAAC,CAAC;AAEH,gFAAgF;AAChF,uEAAuE;AACvE,gFAAgF;AAEhF,8EAA8E;AAC9E,4EAA4E;AAC5E,6EAA6E;AAC7E,+EAA+E;AAC/E,mCAAmC;AACnC,MAAM,iBAAiB,GAAG,eAAe,CAAC;AAC1C,MAAM,eAAe,GAAG,qBAAqB,CAAC;AAE9C,gFAAgF;AAChF,cAAc;AACd,gFAAgF;AAEhF,+FAA+F;AAC/F,SAAS,OAAO,CAAsB,MAAS;IAC7C,iFAAiF;IACjF,sEAAsE;IACtE,uEAAuE;IACvE,8EAA8E;IAC9E,0EAA0E;IAC1E,OAAO,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,MAAM,CAAC,CAAC;AAC9C,CAAC;AAED,wDAAwD;AACxD,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,0EAA0E;IAC1E,wEAAwE;IACxE,uEAAuE;IACvE,4BAA4B;IAC5B,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IACjD,cAAc,EAAE,oBAAoB,CAAC,OAAO,CAAC,EAAE,CAAC;IAChD,OAAO,EAAE,mBAAmB,CAAC,OAAO,CAAC,EAAE,CAAC;IACxC,cAAc,EAAE,oBAAoB,CAAC,QAAQ,EAAE;IAC/C,OAAO,EAAE,OAAO,CAAC,aAAa,CAAC;IAC/B,UAAU,EAAE,OAAO,CAAC,gBAAgB,CAAC;IACrC,GAAG,EAAE,OAAO,CAAC,iBAAiB,CAAC;IAC/B,SAAS,EAAE,OAAO,CAAC,eAAe,CAAC;CACpC,CAAC,CAAC"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * @fileoverview Signalers configuration types — derived from Zod schemas
3
+ */
4
+ import type { SignalersConfigSchema } from './schema.js';
5
+ import type { z } from 'zod';
6
+ /** Recursively marks all properties as readonly. */
7
+ type DeepReadonly<T> = {
8
+ readonly [K in keyof T]: T[K] extends object ? DeepReadonly<T[K]> : T[K];
9
+ };
10
+ /** Top-level signalers configuration. */
11
+ export type SignalersConfig = DeepReadonly<z.infer<typeof SignalersConfigSchema>>;
12
+ export {};
13
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/signalers/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAE7B,oDAAoD;AACpD,KAAK,YAAY,CAAC,CAAC,IAAI;IACrB,QAAQ,EAAE,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CACzE,CAAC;AAEF,yCAAyC;AACzC,MAAM,MAAM,eAAe,GAAG,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC,CAAC"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * @fileoverview Signalers configuration types — derived from Zod schemas
3
+ */
4
+ export {};
5
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/signalers/types.ts"],"names":[],"mappings":"AAAA;;GAEG"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * @fileoverview violation → core `Signal` mapping (ADR-0011, Phase 6).
3
+ *
4
+ * Fitness is NOT signal-native: a check produces `RecipeViolation`s
5
+ * (`{ file, line, column?, message, severity, suggestion? }`) which the
6
+ * legacy `buildCliOutput` flattened straight into the retired
7
+ * `CheckOutput`/`FindingOutput` husk. This module is the new seam — it maps
8
+ * each violation to a core {@link Signal} (the universal output currency), so
9
+ * the run can be assembled into the one {@link SignalEnvelope} the composition
10
+ * root renders, emits, and delivers.
11
+ *
12
+ * `source === ruleId === checkSlug`: a fitness unit's slug IS its check slug,
13
+ * and the terminal table groups signals by `signal.source` into one row per
14
+ * check, so both fields carry the slug (parity with the prior
15
+ * `FindingOutput.ruleId = cr.checkSlug`).
16
+ *
17
+ * Severity: `RecipeViolation.severity` is the 2-level legacy `error|warning`.
18
+ * Per ADR-0011 we PRESERVE the 4-level `SignalSeverity` on the wire, mapping
19
+ * the legacy levels UP (never collapsing): `error → high`, `warning → medium`.
20
+ * That keeps the envelope's error/warning bucketing (`critical|high → error`,
21
+ * `medium|low → warning`) numerically identical to the old check counts, so
22
+ * the gate, verdict, and dashboard all agree.
23
+ */
24
+ import type { RecipeCheckResult } from '../recipes/types.js';
25
+ import type { Signal } from '@opensip-cli/core';
26
+ /** A single fitness violation, as carried on {@link RecipeCheckResult.violations}. */
27
+ type RecipeViolation = NonNullable<RecipeCheckResult['violations']>[number];
28
+ /**
29
+ * Map a single check violation to a core {@link Signal}.
30
+ *
31
+ * Release 2.13.0 (§5.9): delegates to the shared `createSignalFromViolation`, which
32
+ * STAMPS identity — `source`/`ruleId` both carry `checkSlug` (the fitness unit
33
+ * slug) and the wire `severity` is lifted by `SeverityPolicy` (`error → high`,
34
+ * `warning → medium`). Byte-identical to the former hand-mapping.
35
+ */
36
+ export declare function violationToSignal(checkSlug: string, violation: RecipeViolation): Signal;
37
+ export {};
38
+ //# sourceMappingURL=violation-to-signal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"violation-to-signal.d.ts","sourceRoot":"","sources":["../../src/signalers/violation-to-signal.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAIH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEhD,sFAAsF;AACtF,KAAK,eAAe,GAAG,WAAW,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;AAE5E;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,eAAe,GAAG,MAAM,CASvF"}
@@ -0,0 +1,43 @@
1
+ /**
2
+ * @fileoverview violation → core `Signal` mapping (ADR-0011, Phase 6).
3
+ *
4
+ * Fitness is NOT signal-native: a check produces `RecipeViolation`s
5
+ * (`{ file, line, column?, message, severity, suggestion? }`) which the
6
+ * legacy `buildCliOutput` flattened straight into the retired
7
+ * `CheckOutput`/`FindingOutput` husk. This module is the new seam — it maps
8
+ * each violation to a core {@link Signal} (the universal output currency), so
9
+ * the run can be assembled into the one {@link SignalEnvelope} the composition
10
+ * root renders, emits, and delivers.
11
+ *
12
+ * `source === ruleId === checkSlug`: a fitness unit's slug IS its check slug,
13
+ * and the terminal table groups signals by `signal.source` into one row per
14
+ * check, so both fields carry the slug (parity with the prior
15
+ * `FindingOutput.ruleId = cr.checkSlug`).
16
+ *
17
+ * Severity: `RecipeViolation.severity` is the 2-level legacy `error|warning`.
18
+ * Per ADR-0011 we PRESERVE the 4-level `SignalSeverity` on the wire, mapping
19
+ * the legacy levels UP (never collapsing): `error → high`, `warning → medium`.
20
+ * That keeps the envelope's error/warning bucketing (`critical|high → error`,
21
+ * `medium|low → warning`) numerically identical to the old check counts, so
22
+ * the gate, verdict, and dashboard all agree.
23
+ */
24
+ import { createSignalFromViolation } from '@opensip-cli/core';
25
+ /**
26
+ * Map a single check violation to a core {@link Signal}.
27
+ *
28
+ * Release 2.13.0 (§5.9): delegates to the shared `createSignalFromViolation`, which
29
+ * STAMPS identity — `source`/`ruleId` both carry `checkSlug` (the fitness unit
30
+ * slug) and the wire `severity` is lifted by `SeverityPolicy` (`error → high`,
31
+ * `warning → medium`). Byte-identical to the former hand-mapping.
32
+ */
33
+ export function violationToSignal(checkSlug, violation) {
34
+ return createSignalFromViolation(checkSlug, checkSlug, {
35
+ message: violation.message,
36
+ severity: violation.severity,
37
+ suggestion: violation.suggestion,
38
+ file: violation.file,
39
+ line: violation.line,
40
+ column: violation.column,
41
+ });
42
+ }
43
+ //# sourceMappingURL=violation-to-signal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"violation-to-signal.js","sourceRoot":"","sources":["../../src/signalers/violation-to-signal.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAQ9D;;;;;;;GAOG;AACH,MAAM,UAAU,iBAAiB,CAAC,SAAiB,EAAE,SAA0B;IAC7E,OAAO,yBAAyB,CAAC,SAAS,EAAE,SAAS,EAAE;QACrD,OAAO,EAAE,SAAS,CAAC,OAAO;QAC1B,QAAQ,EAAE,SAAS,CAAC,QAAQ;QAC5B,UAAU,EAAE,SAAS,CAAC,UAAU;QAChC,IAAI,EAAE,SAAS,CAAC,IAAI;QACpB,IAAI,EAAE,SAAS,CAAC,IAAI;QACpB,MAAM,EAAE,SAAS,CAAC,MAAM;KACzB,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=loader.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loader.test.d.ts","sourceRoot":"","sources":["../../../src/targets/__tests__/loader.test.ts"],"names":[],"mappings":""}