driftdetect-core 0.7.1 → 0.8.1

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 (466) hide show
  1. package/dist/boundaries/types.d.ts +1 -1
  2. package/dist/boundaries/types.d.ts.map +1 -1
  3. package/dist/call-graph/analysis/graph-builder.d.ts.map +1 -1
  4. package/dist/call-graph/analysis/graph-builder.js +2 -0
  5. package/dist/call-graph/analysis/graph-builder.js.map +1 -1
  6. package/dist/call-graph/extractors/cpp-data-access-extractor.d.ts +37 -0
  7. package/dist/call-graph/extractors/cpp-data-access-extractor.d.ts.map +1 -0
  8. package/dist/call-graph/extractors/cpp-data-access-extractor.js +467 -0
  9. package/dist/call-graph/extractors/cpp-data-access-extractor.js.map +1 -0
  10. package/dist/call-graph/extractors/cpp-hybrid-extractor.d.ts +89 -0
  11. package/dist/call-graph/extractors/cpp-hybrid-extractor.d.ts.map +1 -0
  12. package/dist/call-graph/extractors/cpp-hybrid-extractor.js +541 -0
  13. package/dist/call-graph/extractors/cpp-hybrid-extractor.js.map +1 -0
  14. package/dist/call-graph/extractors/index.d.ts +8 -1
  15. package/dist/call-graph/extractors/index.d.ts.map +1 -1
  16. package/dist/call-graph/extractors/index.js +9 -1
  17. package/dist/call-graph/extractors/index.js.map +1 -1
  18. package/dist/call-graph/extractors/regex/cpp-regex.d.ts +46 -0
  19. package/dist/call-graph/extractors/regex/cpp-regex.d.ts.map +1 -0
  20. package/dist/call-graph/extractors/regex/cpp-regex.js +325 -0
  21. package/dist/call-graph/extractors/regex/cpp-regex.js.map +1 -0
  22. package/dist/call-graph/extractors/regex/index.d.ts +2 -0
  23. package/dist/call-graph/extractors/regex/index.d.ts.map +1 -1
  24. package/dist/call-graph/extractors/regex/index.js +16 -0
  25. package/dist/call-graph/extractors/regex/index.js.map +1 -1
  26. package/dist/call-graph/extractors/regex/rust-regex.d.ts +45 -0
  27. package/dist/call-graph/extractors/regex/rust-regex.d.ts.map +1 -0
  28. package/dist/call-graph/extractors/regex/rust-regex.js +517 -0
  29. package/dist/call-graph/extractors/regex/rust-regex.js.map +1 -0
  30. package/dist/call-graph/extractors/rust-data-access-extractor.d.ts +35 -0
  31. package/dist/call-graph/extractors/rust-data-access-extractor.d.ts.map +1 -0
  32. package/dist/call-graph/extractors/rust-data-access-extractor.js +349 -0
  33. package/dist/call-graph/extractors/rust-data-access-extractor.js.map +1 -0
  34. package/dist/call-graph/extractors/rust-extractor.d.ts +125 -0
  35. package/dist/call-graph/extractors/rust-extractor.d.ts.map +1 -0
  36. package/dist/call-graph/extractors/rust-extractor.js +604 -0
  37. package/dist/call-graph/extractors/rust-extractor.js.map +1 -0
  38. package/dist/call-graph/extractors/rust-hybrid-extractor.d.ts +119 -0
  39. package/dist/call-graph/extractors/rust-hybrid-extractor.d.ts.map +1 -0
  40. package/dist/call-graph/extractors/rust-hybrid-extractor.js +548 -0
  41. package/dist/call-graph/extractors/rust-hybrid-extractor.js.map +1 -0
  42. package/dist/call-graph/index.d.ts +2 -0
  43. package/dist/call-graph/index.d.ts.map +1 -1
  44. package/dist/call-graph/index.js +4 -0
  45. package/dist/call-graph/index.js.map +1 -1
  46. package/dist/call-graph/streaming-builder.d.ts +60 -0
  47. package/dist/call-graph/streaming-builder.d.ts.map +1 -0
  48. package/dist/call-graph/streaming-builder.js +204 -0
  49. package/dist/call-graph/streaming-builder.js.map +1 -0
  50. package/dist/call-graph/types.d.ts +1 -1
  51. package/dist/call-graph/types.d.ts.map +1 -1
  52. package/dist/call-graph/unified-provider.d.ts +72 -0
  53. package/dist/call-graph/unified-provider.d.ts.map +1 -0
  54. package/dist/call-graph/unified-provider.js +502 -0
  55. package/dist/call-graph/unified-provider.js.map +1 -0
  56. package/dist/constants/extractors/regex/rust-regex.d.ts +43 -0
  57. package/dist/constants/extractors/regex/rust-regex.d.ts.map +1 -0
  58. package/dist/constants/extractors/regex/rust-regex.js +370 -0
  59. package/dist/constants/extractors/regex/rust-regex.js.map +1 -0
  60. package/dist/constants/types.d.ts +1 -1
  61. package/dist/constants/types.d.ts.map +1 -1
  62. package/dist/constants/types.js.map +1 -1
  63. package/dist/constraints/store/constraint-store.d.ts.map +1 -1
  64. package/dist/constraints/store/constraint-store.js +2 -0
  65. package/dist/constraints/store/constraint-store.js.map +1 -1
  66. package/dist/constraints/types.d.ts +1 -1
  67. package/dist/constraints/types.d.ts.map +1 -1
  68. package/dist/constraints/types.js +2 -0
  69. package/dist/constraints/types.js.map +1 -1
  70. package/dist/context/context-generator.d.ts +38 -0
  71. package/dist/context/context-generator.d.ts.map +1 -0
  72. package/dist/context/context-generator.js +392 -0
  73. package/dist/context/context-generator.js.map +1 -0
  74. package/dist/context/index.d.ts +13 -0
  75. package/dist/context/index.d.ts.map +1 -0
  76. package/dist/context/index.js +14 -0
  77. package/dist/context/index.js.map +1 -0
  78. package/dist/context/package-detector.d.ts +53 -0
  79. package/dist/context/package-detector.d.ts.map +1 -0
  80. package/dist/context/package-detector.js +672 -0
  81. package/dist/context/package-detector.js.map +1 -0
  82. package/dist/context/types.d.ts +258 -0
  83. package/dist/context/types.d.ts.map +1 -0
  84. package/dist/context/types.js +10 -0
  85. package/dist/context/types.js.map +1 -0
  86. package/dist/cpp/cpp-analyzer.d.ts +179 -0
  87. package/dist/cpp/cpp-analyzer.d.ts.map +1 -0
  88. package/dist/cpp/cpp-analyzer.js +532 -0
  89. package/dist/cpp/cpp-analyzer.js.map +1 -0
  90. package/dist/cpp/index.d.ts +9 -0
  91. package/dist/cpp/index.d.ts.map +1 -0
  92. package/dist/cpp/index.js +9 -0
  93. package/dist/cpp/index.js.map +1 -0
  94. package/dist/decisions/analyzer/decision-mining-analyzer.d.ts.map +1 -1
  95. package/dist/decisions/analyzer/decision-mining-analyzer.js +4 -0
  96. package/dist/decisions/analyzer/decision-mining-analyzer.js.map +1 -1
  97. package/dist/decisions/types.d.ts +1 -1
  98. package/dist/decisions/types.d.ts.map +1 -1
  99. package/dist/environment/extractors/cpp-env-extractor.d.ts +58 -0
  100. package/dist/environment/extractors/cpp-env-extractor.d.ts.map +1 -0
  101. package/dist/environment/extractors/cpp-env-extractor.js +298 -0
  102. package/dist/environment/extractors/cpp-env-extractor.js.map +1 -0
  103. package/dist/environment/extractors/index.d.ts +2 -0
  104. package/dist/environment/extractors/index.d.ts.map +1 -1
  105. package/dist/environment/extractors/index.js +2 -0
  106. package/dist/environment/extractors/index.js.map +1 -1
  107. package/dist/environment/extractors/rust-env-extractor.d.ts +58 -0
  108. package/dist/environment/extractors/rust-env-extractor.d.ts.map +1 -0
  109. package/dist/environment/extractors/rust-env-extractor.js +297 -0
  110. package/dist/environment/extractors/rust-env-extractor.js.map +1 -0
  111. package/dist/environment/index.d.ts +1 -1
  112. package/dist/environment/index.d.ts.map +1 -1
  113. package/dist/environment/index.js +1 -1
  114. package/dist/environment/index.js.map +1 -1
  115. package/dist/environment/types.d.ts +2 -2
  116. package/dist/environment/types.d.ts.map +1 -1
  117. package/dist/environment/types.js.map +1 -1
  118. package/dist/index.d.ts +15 -3
  119. package/dist/index.d.ts.map +1 -1
  120. package/dist/index.js +62 -2
  121. package/dist/index.js.map +1 -1
  122. package/dist/licensing/feature-guard.d.ts +103 -0
  123. package/dist/licensing/feature-guard.d.ts.map +1 -0
  124. package/dist/licensing/feature-guard.js +195 -0
  125. package/dist/licensing/feature-guard.js.map +1 -0
  126. package/dist/licensing/index.d.ts +46 -0
  127. package/dist/licensing/index.d.ts.map +1 -0
  128. package/dist/licensing/index.js +47 -0
  129. package/dist/licensing/index.js.map +1 -0
  130. package/dist/licensing/license-manager.d.ts +88 -0
  131. package/dist/licensing/license-manager.d.ts.map +1 -0
  132. package/dist/licensing/license-manager.js +251 -0
  133. package/dist/licensing/license-manager.js.map +1 -0
  134. package/dist/licensing/license-validator.d.ts +60 -0
  135. package/dist/licensing/license-validator.d.ts.map +1 -0
  136. package/dist/licensing/license-validator.js +300 -0
  137. package/dist/licensing/license-validator.js.map +1 -0
  138. package/dist/licensing/types.d.ts +76 -0
  139. package/dist/licensing/types.d.ts.map +1 -0
  140. package/dist/licensing/types.js +51 -0
  141. package/dist/licensing/types.js.map +1 -0
  142. package/dist/parsers/tree-sitter/cpp-loader.d.ts +51 -0
  143. package/dist/parsers/tree-sitter/cpp-loader.d.ts.map +1 -0
  144. package/dist/parsers/tree-sitter/cpp-loader.js +162 -0
  145. package/dist/parsers/tree-sitter/cpp-loader.js.map +1 -0
  146. package/dist/parsers/tree-sitter/index.d.ts +6 -0
  147. package/dist/parsers/tree-sitter/index.d.ts.map +1 -1
  148. package/dist/parsers/tree-sitter/index.js +16 -0
  149. package/dist/parsers/tree-sitter/index.js.map +1 -1
  150. package/dist/parsers/tree-sitter/rust-loader.d.ts +50 -0
  151. package/dist/parsers/tree-sitter/rust-loader.d.ts.map +1 -0
  152. package/dist/parsers/tree-sitter/rust-loader.js +161 -0
  153. package/dist/parsers/tree-sitter/rust-loader.js.map +1 -0
  154. package/dist/parsers/tree-sitter/tree-sitter-cpp-parser.d.ts +198 -0
  155. package/dist/parsers/tree-sitter/tree-sitter-cpp-parser.d.ts.map +1 -0
  156. package/dist/parsers/tree-sitter/tree-sitter-cpp-parser.js +671 -0
  157. package/dist/parsers/tree-sitter/tree-sitter-cpp-parser.js.map +1 -0
  158. package/dist/parsers/tree-sitter/tree-sitter-rust-parser.d.ts +180 -0
  159. package/dist/parsers/tree-sitter/tree-sitter-rust-parser.d.ts.map +1 -0
  160. package/dist/parsers/tree-sitter/tree-sitter-rust-parser.js +478 -0
  161. package/dist/parsers/tree-sitter/tree-sitter-rust-parser.js.map +1 -0
  162. package/dist/parsers/types.d.ts +1 -1
  163. package/dist/parsers/types.d.ts.map +1 -1
  164. package/dist/patterns/adapters/pattern-store-adapter.d.ts.map +1 -1
  165. package/dist/patterns/adapters/pattern-store-adapter.js +35 -10
  166. package/dist/patterns/adapters/pattern-store-adapter.js.map +1 -1
  167. package/dist/quality-gates/gates/base-gate.d.ts +71 -0
  168. package/dist/quality-gates/gates/base-gate.d.ts.map +1 -0
  169. package/dist/quality-gates/gates/base-gate.js +178 -0
  170. package/dist/quality-gates/gates/base-gate.js.map +1 -0
  171. package/dist/quality-gates/gates/constraint-verification/constraint-verification-gate.d.ts +62 -0
  172. package/dist/quality-gates/gates/constraint-verification/constraint-verification-gate.d.ts.map +1 -0
  173. package/dist/quality-gates/gates/constraint-verification/constraint-verification-gate.js +255 -0
  174. package/dist/quality-gates/gates/constraint-verification/constraint-verification-gate.js.map +1 -0
  175. package/dist/quality-gates/gates/constraint-verification/index.d.ts +7 -0
  176. package/dist/quality-gates/gates/constraint-verification/index.d.ts.map +1 -0
  177. package/dist/quality-gates/gates/constraint-verification/index.js +7 -0
  178. package/dist/quality-gates/gates/constraint-verification/index.js.map +1 -0
  179. package/dist/quality-gates/gates/custom-rules/custom-rules-gate.d.ts +73 -0
  180. package/dist/quality-gates/gates/custom-rules/custom-rules-gate.d.ts.map +1 -0
  181. package/dist/quality-gates/gates/custom-rules/custom-rules-gate.js +351 -0
  182. package/dist/quality-gates/gates/custom-rules/custom-rules-gate.js.map +1 -0
  183. package/dist/quality-gates/gates/custom-rules/index.d.ts +7 -0
  184. package/dist/quality-gates/gates/custom-rules/index.d.ts.map +1 -0
  185. package/dist/quality-gates/gates/custom-rules/index.js +7 -0
  186. package/dist/quality-gates/gates/custom-rules/index.js.map +1 -0
  187. package/dist/quality-gates/gates/impact-simulation/impact-simulation-gate.d.ts +61 -0
  188. package/dist/quality-gates/gates/impact-simulation/impact-simulation-gate.d.ts.map +1 -0
  189. package/dist/quality-gates/gates/impact-simulation/impact-simulation-gate.js +318 -0
  190. package/dist/quality-gates/gates/impact-simulation/impact-simulation-gate.js.map +1 -0
  191. package/dist/quality-gates/gates/impact-simulation/index.d.ts +7 -0
  192. package/dist/quality-gates/gates/impact-simulation/index.d.ts.map +1 -0
  193. package/dist/quality-gates/gates/impact-simulation/index.js +7 -0
  194. package/dist/quality-gates/gates/impact-simulation/index.js.map +1 -0
  195. package/dist/quality-gates/gates/index.d.ts +13 -0
  196. package/dist/quality-gates/gates/index.d.ts.map +1 -0
  197. package/dist/quality-gates/gates/index.js +13 -0
  198. package/dist/quality-gates/gates/index.js.map +1 -0
  199. package/dist/quality-gates/gates/pattern-compliance/index.d.ts +7 -0
  200. package/dist/quality-gates/gates/pattern-compliance/index.d.ts.map +1 -0
  201. package/dist/quality-gates/gates/pattern-compliance/index.js +7 -0
  202. package/dist/quality-gates/gates/pattern-compliance/index.js.map +1 -0
  203. package/dist/quality-gates/gates/pattern-compliance/pattern-compliance-gate.d.ts +61 -0
  204. package/dist/quality-gates/gates/pattern-compliance/pattern-compliance-gate.d.ts.map +1 -0
  205. package/dist/quality-gates/gates/pattern-compliance/pattern-compliance-gate.js +261 -0
  206. package/dist/quality-gates/gates/pattern-compliance/pattern-compliance-gate.js.map +1 -0
  207. package/dist/quality-gates/gates/regression-detection/index.d.ts +7 -0
  208. package/dist/quality-gates/gates/regression-detection/index.d.ts.map +1 -0
  209. package/dist/quality-gates/gates/regression-detection/index.js +7 -0
  210. package/dist/quality-gates/gates/regression-detection/index.js.map +1 -0
  211. package/dist/quality-gates/gates/regression-detection/regression-detection-gate.d.ts +69 -0
  212. package/dist/quality-gates/gates/regression-detection/regression-detection-gate.d.ts.map +1 -0
  213. package/dist/quality-gates/gates/regression-detection/regression-detection-gate.js +330 -0
  214. package/dist/quality-gates/gates/regression-detection/regression-detection-gate.js.map +1 -0
  215. package/dist/quality-gates/gates/security-boundary/index.d.ts +7 -0
  216. package/dist/quality-gates/gates/security-boundary/index.d.ts.map +1 -0
  217. package/dist/quality-gates/gates/security-boundary/index.js +7 -0
  218. package/dist/quality-gates/gates/security-boundary/index.js.map +1 -0
  219. package/dist/quality-gates/gates/security-boundary/security-boundary-gate.d.ts +65 -0
  220. package/dist/quality-gates/gates/security-boundary/security-boundary-gate.d.ts.map +1 -0
  221. package/dist/quality-gates/gates/security-boundary/security-boundary-gate.js +307 -0
  222. package/dist/quality-gates/gates/security-boundary/security-boundary-gate.js.map +1 -0
  223. package/dist/quality-gates/index.d.ts +35 -0
  224. package/dist/quality-gates/index.d.ts.map +1 -0
  225. package/dist/quality-gates/index.js +43 -0
  226. package/dist/quality-gates/index.js.map +1 -0
  227. package/dist/quality-gates/orchestrator/gate-orchestrator.d.ts +79 -0
  228. package/dist/quality-gates/orchestrator/gate-orchestrator.d.ts.map +1 -0
  229. package/dist/quality-gates/orchestrator/gate-orchestrator.js +314 -0
  230. package/dist/quality-gates/orchestrator/gate-orchestrator.js.map +1 -0
  231. package/dist/quality-gates/orchestrator/gate-registry.d.ts +53 -0
  232. package/dist/quality-gates/orchestrator/gate-registry.d.ts.map +1 -0
  233. package/dist/quality-gates/orchestrator/gate-registry.js +141 -0
  234. package/dist/quality-gates/orchestrator/gate-registry.js.map +1 -0
  235. package/dist/quality-gates/orchestrator/index.d.ts +10 -0
  236. package/dist/quality-gates/orchestrator/index.d.ts.map +1 -0
  237. package/dist/quality-gates/orchestrator/index.js +10 -0
  238. package/dist/quality-gates/orchestrator/index.js.map +1 -0
  239. package/dist/quality-gates/orchestrator/parallel-executor.d.ts +35 -0
  240. package/dist/quality-gates/orchestrator/parallel-executor.d.ts.map +1 -0
  241. package/dist/quality-gates/orchestrator/parallel-executor.js +70 -0
  242. package/dist/quality-gates/orchestrator/parallel-executor.js.map +1 -0
  243. package/dist/quality-gates/orchestrator/result-aggregator.d.ts +27 -0
  244. package/dist/quality-gates/orchestrator/result-aggregator.d.ts.map +1 -0
  245. package/dist/quality-gates/orchestrator/result-aggregator.js +70 -0
  246. package/dist/quality-gates/orchestrator/result-aggregator.js.map +1 -0
  247. package/dist/quality-gates/policy/default-policies.d.ts +14 -0
  248. package/dist/quality-gates/policy/default-policies.d.ts.map +1 -0
  249. package/dist/quality-gates/policy/default-policies.js +266 -0
  250. package/dist/quality-gates/policy/default-policies.js.map +1 -0
  251. package/dist/quality-gates/policy/index.d.ts +9 -0
  252. package/dist/quality-gates/policy/index.d.ts.map +1 -0
  253. package/dist/quality-gates/policy/index.js +9 -0
  254. package/dist/quality-gates/policy/index.js.map +1 -0
  255. package/dist/quality-gates/policy/policy-evaluator.d.ts +43 -0
  256. package/dist/quality-gates/policy/policy-evaluator.d.ts.map +1 -0
  257. package/dist/quality-gates/policy/policy-evaluator.js +136 -0
  258. package/dist/quality-gates/policy/policy-evaluator.js.map +1 -0
  259. package/dist/quality-gates/policy/policy-loader.d.ts +72 -0
  260. package/dist/quality-gates/policy/policy-loader.d.ts.map +1 -0
  261. package/dist/quality-gates/policy/policy-loader.js +228 -0
  262. package/dist/quality-gates/policy/policy-loader.js.map +1 -0
  263. package/dist/quality-gates/reporters/github-reporter.d.ts +19 -0
  264. package/dist/quality-gates/reporters/github-reporter.d.ts.map +1 -0
  265. package/dist/quality-gates/reporters/github-reporter.js +49 -0
  266. package/dist/quality-gates/reporters/github-reporter.js.map +1 -0
  267. package/dist/quality-gates/reporters/gitlab-reporter.d.ts +20 -0
  268. package/dist/quality-gates/reporters/gitlab-reporter.d.ts.map +1 -0
  269. package/dist/quality-gates/reporters/gitlab-reporter.js +42 -0
  270. package/dist/quality-gates/reporters/gitlab-reporter.js.map +1 -0
  271. package/dist/quality-gates/reporters/index.d.ts +12 -0
  272. package/dist/quality-gates/reporters/index.d.ts.map +1 -0
  273. package/dist/quality-gates/reporters/index.js +12 -0
  274. package/dist/quality-gates/reporters/index.js.map +1 -0
  275. package/dist/quality-gates/reporters/json-reporter.d.ts +18 -0
  276. package/dist/quality-gates/reporters/json-reporter.d.ts.map +1 -0
  277. package/dist/quality-gates/reporters/json-reporter.js +51 -0
  278. package/dist/quality-gates/reporters/json-reporter.js.map +1 -0
  279. package/dist/quality-gates/reporters/reporter-interface.d.ts +35 -0
  280. package/dist/quality-gates/reporters/reporter-interface.d.ts.map +1 -0
  281. package/dist/quality-gates/reporters/reporter-interface.js +22 -0
  282. package/dist/quality-gates/reporters/reporter-interface.js.map +1 -0
  283. package/dist/quality-gates/reporters/sarif-reporter.d.ts +22 -0
  284. package/dist/quality-gates/reporters/sarif-reporter.d.ts.map +1 -0
  285. package/dist/quality-gates/reporters/sarif-reporter.js +85 -0
  286. package/dist/quality-gates/reporters/sarif-reporter.js.map +1 -0
  287. package/dist/quality-gates/reporters/text-reporter.d.ts +18 -0
  288. package/dist/quality-gates/reporters/text-reporter.d.ts.map +1 -0
  289. package/dist/quality-gates/reporters/text-reporter.js +92 -0
  290. package/dist/quality-gates/reporters/text-reporter.js.map +1 -0
  291. package/dist/quality-gates/store/gate-run-store.d.ts +37 -0
  292. package/dist/quality-gates/store/gate-run-store.d.ts.map +1 -0
  293. package/dist/quality-gates/store/gate-run-store.js +104 -0
  294. package/dist/quality-gates/store/gate-run-store.js.map +1 -0
  295. package/dist/quality-gates/store/index.d.ts +8 -0
  296. package/dist/quality-gates/store/index.d.ts.map +1 -0
  297. package/dist/quality-gates/store/index.js +8 -0
  298. package/dist/quality-gates/store/index.js.map +1 -0
  299. package/dist/quality-gates/store/snapshot-store.d.ts +41 -0
  300. package/dist/quality-gates/store/snapshot-store.d.ts.map +1 -0
  301. package/dist/quality-gates/store/snapshot-store.js +117 -0
  302. package/dist/quality-gates/store/snapshot-store.js.map +1 -0
  303. package/dist/quality-gates/types.d.ts +992 -0
  304. package/dist/quality-gates/types.d.ts.map +1 -0
  305. package/dist/quality-gates/types.js +14 -0
  306. package/dist/quality-gates/types.js.map +1 -0
  307. package/dist/rust/index.d.ts +7 -0
  308. package/dist/rust/index.d.ts.map +1 -0
  309. package/dist/rust/index.js +8 -0
  310. package/dist/rust/index.js.map +1 -0
  311. package/dist/rust/rust-analyzer.d.ts +185 -0
  312. package/dist/rust/rust-analyzer.d.ts.map +1 -0
  313. package/dist/rust/rust-analyzer.js +538 -0
  314. package/dist/rust/rust-analyzer.js.map +1 -0
  315. package/dist/scanner/file-walker.d.ts.map +1 -1
  316. package/dist/scanner/file-walker.js +11 -0
  317. package/dist/scanner/file-walker.js.map +1 -1
  318. package/dist/simulation/simulation-engine.d.ts +6 -0
  319. package/dist/simulation/simulation-engine.d.ts.map +1 -1
  320. package/dist/simulation/simulation-engine.js +6 -0
  321. package/dist/simulation/simulation-engine.js.map +1 -1
  322. package/dist/speculative/types.d.ts +1 -1
  323. package/dist/speculative/types.d.ts.map +1 -1
  324. package/dist/speculative/types.js +2 -0
  325. package/dist/speculative/types.js.map +1 -1
  326. package/dist/store/project-config.d.ts +19 -0
  327. package/dist/store/project-config.d.ts.map +1 -1
  328. package/dist/store/project-config.js.map +1 -1
  329. package/dist/telemetry/index.d.ts +10 -0
  330. package/dist/telemetry/index.d.ts.map +1 -0
  331. package/dist/telemetry/index.js +11 -0
  332. package/dist/telemetry/index.js.map +1 -0
  333. package/dist/telemetry/telemetry-client.d.ts +127 -0
  334. package/dist/telemetry/telemetry-client.d.ts.map +1 -0
  335. package/dist/telemetry/telemetry-client.js +373 -0
  336. package/dist/telemetry/telemetry-client.js.map +1 -0
  337. package/dist/telemetry/types.d.ts +160 -0
  338. package/dist/telemetry/types.d.ts.map +1 -0
  339. package/dist/telemetry/types.js +27 -0
  340. package/dist/telemetry/types.js.map +1 -0
  341. package/dist/test-topology/extractors/cpp-test-extractor.d.ts +38 -0
  342. package/dist/test-topology/extractors/cpp-test-extractor.d.ts.map +1 -0
  343. package/dist/test-topology/extractors/cpp-test-extractor.js +507 -0
  344. package/dist/test-topology/extractors/cpp-test-extractor.js.map +1 -0
  345. package/dist/test-topology/extractors/index.d.ts +2 -0
  346. package/dist/test-topology/extractors/index.d.ts.map +1 -1
  347. package/dist/test-topology/extractors/index.js +2 -0
  348. package/dist/test-topology/extractors/index.js.map +1 -1
  349. package/dist/test-topology/extractors/regex/index.d.ts +1 -0
  350. package/dist/test-topology/extractors/regex/index.d.ts.map +1 -1
  351. package/dist/test-topology/extractors/regex/index.js +4 -0
  352. package/dist/test-topology/extractors/regex/index.js.map +1 -1
  353. package/dist/test-topology/extractors/regex/rust-test-regex.d.ts +66 -0
  354. package/dist/test-topology/extractors/regex/rust-test-regex.d.ts.map +1 -0
  355. package/dist/test-topology/extractors/regex/rust-test-regex.js +565 -0
  356. package/dist/test-topology/extractors/regex/rust-test-regex.js.map +1 -0
  357. package/dist/test-topology/extractors/rust-test-extractor.d.ts +49 -0
  358. package/dist/test-topology/extractors/rust-test-extractor.d.ts.map +1 -0
  359. package/dist/test-topology/extractors/rust-test-extractor.js +422 -0
  360. package/dist/test-topology/extractors/rust-test-extractor.js.map +1 -0
  361. package/dist/test-topology/hybrid-test-topology-analyzer.d.ts.map +1 -1
  362. package/dist/test-topology/hybrid-test-topology-analyzer.js +2 -0
  363. package/dist/test-topology/hybrid-test-topology-analyzer.js.map +1 -1
  364. package/dist/test-topology/test-topology-analyzer.d.ts.map +1 -1
  365. package/dist/test-topology/test-topology-analyzer.js +2 -0
  366. package/dist/test-topology/test-topology-analyzer.js.map +1 -1
  367. package/dist/test-topology/types.d.ts +2 -2
  368. package/dist/test-topology/types.d.ts.map +1 -1
  369. package/dist/unified-provider/integration/unified-scanner.d.ts.map +1 -1
  370. package/dist/unified-provider/integration/unified-scanner.js +3 -0
  371. package/dist/unified-provider/integration/unified-scanner.js.map +1 -1
  372. package/dist/unified-provider/matching/diesel-matcher.d.ts +33 -0
  373. package/dist/unified-provider/matching/diesel-matcher.d.ts.map +1 -0
  374. package/dist/unified-provider/matching/diesel-matcher.js +210 -0
  375. package/dist/unified-provider/matching/diesel-matcher.js.map +1 -0
  376. package/dist/unified-provider/matching/index.d.ts +3 -1
  377. package/dist/unified-provider/matching/index.d.ts.map +1 -1
  378. package/dist/unified-provider/matching/index.js +4 -1
  379. package/dist/unified-provider/matching/index.js.map +1 -1
  380. package/dist/unified-provider/matching/matcher-registry.d.ts.map +1 -1
  381. package/dist/unified-provider/matching/matcher-registry.js +7 -2
  382. package/dist/unified-provider/matching/matcher-registry.js.map +1 -1
  383. package/dist/unified-provider/matching/seaorm-matcher.d.ts +35 -0
  384. package/dist/unified-provider/matching/seaorm-matcher.d.ts.map +1 -0
  385. package/dist/unified-provider/matching/seaorm-matcher.js +200 -0
  386. package/dist/unified-provider/matching/seaorm-matcher.js.map +1 -0
  387. package/dist/unified-provider/matching/sqlx-matcher.d.ts +19 -24
  388. package/dist/unified-provider/matching/sqlx-matcher.d.ts.map +1 -1
  389. package/dist/unified-provider/matching/sqlx-matcher.js +171 -149
  390. package/dist/unified-provider/matching/sqlx-matcher.js.map +1 -1
  391. package/dist/unified-provider/normalization/cpp-normalizer.d.ts +62 -0
  392. package/dist/unified-provider/normalization/cpp-normalizer.d.ts.map +1 -0
  393. package/dist/unified-provider/normalization/cpp-normalizer.js +581 -0
  394. package/dist/unified-provider/normalization/cpp-normalizer.js.map +1 -0
  395. package/dist/unified-provider/normalization/index.d.ts +2 -0
  396. package/dist/unified-provider/normalization/index.d.ts.map +1 -1
  397. package/dist/unified-provider/normalization/index.js +11 -1
  398. package/dist/unified-provider/normalization/index.js.map +1 -1
  399. package/dist/unified-provider/normalization/rust-normalizer.d.ts +71 -0
  400. package/dist/unified-provider/normalization/rust-normalizer.d.ts.map +1 -0
  401. package/dist/unified-provider/normalization/rust-normalizer.js +670 -0
  402. package/dist/unified-provider/normalization/rust-normalizer.js.map +1 -0
  403. package/dist/unified-provider/parsing/parser-registry.d.ts.map +1 -1
  404. package/dist/unified-provider/parsing/parser-registry.js +62 -1
  405. package/dist/unified-provider/parsing/parser-registry.js.map +1 -1
  406. package/dist/unified-provider/provider/unified-language-provider.js +1 -1
  407. package/dist/unified-provider/provider/unified-language-provider.js.map +1 -1
  408. package/dist/unified-provider/types.d.ts +1 -1
  409. package/dist/unified-provider/types.d.ts.map +1 -1
  410. package/dist/wrappers/index.d.ts.map +1 -1
  411. package/dist/wrappers/index.js +2 -0
  412. package/dist/wrappers/index.js.map +1 -1
  413. package/dist/wrappers/integration/adapter.d.ts.map +1 -1
  414. package/dist/wrappers/integration/adapter.js +2 -0
  415. package/dist/wrappers/integration/adapter.js.map +1 -1
  416. package/dist/wrappers/integration/scanner.d.ts.map +1 -1
  417. package/dist/wrappers/integration/scanner.js +2 -0
  418. package/dist/wrappers/integration/scanner.js.map +1 -1
  419. package/dist/wrappers/primitives/registry.d.ts +18 -0
  420. package/dist/wrappers/primitives/registry.d.ts.map +1 -1
  421. package/dist/wrappers/primitives/registry.js +190 -0
  422. package/dist/wrappers/primitives/registry.js.map +1 -1
  423. package/dist/wrappers/types.d.ts +1 -1
  424. package/dist/wrappers/types.d.ts.map +1 -1
  425. package/package.json +5 -2
  426. package/LICENSE +0 -21
  427. package/dist/lake/lake.bak/index-store.d.ts +0 -82
  428. package/dist/lake/lake.bak/index-store.d.ts.map +0 -1
  429. package/dist/lake/lake.bak/index-store.js +0 -357
  430. package/dist/lake/lake.bak/index-store.js.map +0 -1
  431. package/dist/lake/lake.bak/index.d.ts +0 -81
  432. package/dist/lake/lake.bak/index.d.ts.map +0 -1
  433. package/dist/lake/lake.bak/index.js +0 -114
  434. package/dist/lake/lake.bak/index.js.map +0 -1
  435. package/dist/lake/lake.bak/manifest-store.d.ts +0 -51
  436. package/dist/lake/lake.bak/manifest-store.d.ts.map +0 -1
  437. package/dist/lake/lake.bak/manifest-store.js +0 -347
  438. package/dist/lake/lake.bak/manifest-store.js.map +0 -1
  439. package/dist/lake/lake.bak/query-engine.d.ts +0 -112
  440. package/dist/lake/lake.bak/query-engine.d.ts.map +0 -1
  441. package/dist/lake/lake.bak/query-engine.js +0 -370
  442. package/dist/lake/lake.bak/query-engine.js.map +0 -1
  443. package/dist/lake/lake.bak/types.d.ts +0 -428
  444. package/dist/lake/lake.bak/types.d.ts.map +0 -1
  445. package/dist/lake/lake.bak/types.js +0 -46
  446. package/dist/lake/lake.bak/types.js.map +0 -1
  447. package/dist/lake/lake.bak/view-materializer.d.ts +0 -70
  448. package/dist/lake/lake.bak/view-materializer.d.ts.map +0 -1
  449. package/dist/lake/lake.bak/view-materializer.js +0 -314
  450. package/dist/lake/lake.bak/view-materializer.js.map +0 -1
  451. package/dist/lake/lake.bak/view-store.d.ts +0 -57
  452. package/dist/lake/lake.bak/view-store.d.ts.map +0 -1
  453. package/dist/lake/lake.bak/view-store.js +0 -348
  454. package/dist/lake/lake.bak/view-store.js.map +0 -1
  455. package/dist/unified-provider/migration/deprecated-extractors.d.ts +0 -104
  456. package/dist/unified-provider/migration/deprecated-extractors.d.ts.map +0 -1
  457. package/dist/unified-provider/migration/deprecated-extractors.js +0 -129
  458. package/dist/unified-provider/migration/deprecated-extractors.js.map +0 -1
  459. package/dist/unified-provider/migration/deprecated-scanner.d.ts +0 -40
  460. package/dist/unified-provider/migration/deprecated-scanner.d.ts.map +0 -1
  461. package/dist/unified-provider/migration/deprecated-scanner.js +0 -49
  462. package/dist/unified-provider/migration/deprecated-scanner.js.map +0 -1
  463. package/dist/unified-provider/migration/index.d.ts +0 -41
  464. package/dist/unified-provider/migration/index.d.ts.map +0 -1
  465. package/dist/unified-provider/migration/index.js +0 -43
  466. package/dist/unified-provider/migration/index.js.map +0 -1
@@ -0,0 +1,261 @@
1
+ /**
2
+ * Pattern Compliance Gate
3
+ *
4
+ * @license Apache-2.0
5
+ *
6
+ * Checks whether changed files follow established patterns in the codebase.
7
+ * This is Drift's unique value - no other tool checks architectural consistency.
8
+ *
9
+ * "SonarQube tells you if your code is bad. Drift tells you if your code fits YOUR codebase."
10
+ */
11
+ import { BaseGate } from '../base-gate.js';
12
+ /**
13
+ * Pattern Compliance Gate
14
+ *
15
+ * Checks whether changed files follow established patterns in the codebase.
16
+ */
17
+ export class PatternComplianceGate extends BaseGate {
18
+ id = 'pattern-compliance';
19
+ name = 'Pattern Compliance';
20
+ description = 'Checks if code follows established patterns';
21
+ async executeGate(input) {
22
+ const config = input.config;
23
+ const patterns = input.context.patterns ?? [];
24
+ // Filter patterns by config
25
+ const relevantPatterns = this.filterPatterns(patterns, config);
26
+ if (relevantPatterns.length === 0) {
27
+ return this.createPassedResult('No patterns to check against', {
28
+ complianceRate: 100,
29
+ patternsChecked: 0,
30
+ filesChecked: input.files.length,
31
+ newOutliers: [],
32
+ existingOutliers: 0,
33
+ byCategory: {},
34
+ }, ['No approved patterns found. Run `drift scan` and `drift approve` first.']);
35
+ }
36
+ // Calculate compliance for changed files
37
+ const compliance = this.calculateCompliance(input.files, relevantPatterns);
38
+ // Detect new outliers in changed files
39
+ const newOutliers = this.detectNewOutliers(input.files, relevantPatterns, input.context.previousSnapshot);
40
+ // Build violations from new outliers
41
+ const violations = this.buildViolations(newOutliers);
42
+ // Determine pass/fail based on thresholds
43
+ const passed = this.evaluateThresholds(compliance, newOutliers, config);
44
+ const score = this.calculateComplianceScore(compliance, newOutliers, config);
45
+ const status = passed ? 'passed' : 'failed';
46
+ const details = {
47
+ complianceRate: compliance.overallRate,
48
+ patternsChecked: relevantPatterns.length,
49
+ filesChecked: input.files.length,
50
+ newOutliers,
51
+ existingOutliers: compliance.existingOutliers,
52
+ byCategory: compliance.byCategory,
53
+ };
54
+ const summary = this.buildSummary(compliance, newOutliers, passed);
55
+ const warnings = this.buildWarnings(compliance, relevantPatterns);
56
+ if (!passed) {
57
+ return this.createFailedResult(summary, violations, details, score, warnings);
58
+ }
59
+ if (violations.length > 0) {
60
+ return this.createWarnedResult(summary, violations, details, score, warnings);
61
+ }
62
+ return {
63
+ gateId: this.id,
64
+ gateName: this.name,
65
+ status,
66
+ passed,
67
+ score,
68
+ summary,
69
+ violations,
70
+ warnings,
71
+ executionTimeMs: 0,
72
+ details: details,
73
+ };
74
+ }
75
+ validateConfig(config) {
76
+ const errors = [];
77
+ const c = config;
78
+ if (c.minComplianceRate < 0 || c.minComplianceRate > 100) {
79
+ errors.push('minComplianceRate must be between 0 and 100');
80
+ }
81
+ if (c.maxNewOutliers < 0) {
82
+ errors.push('maxNewOutliers must be non-negative');
83
+ }
84
+ if (c.minPatternConfidence < 0 || c.minPatternConfidence > 1) {
85
+ errors.push('minPatternConfidence must be between 0 and 1');
86
+ }
87
+ return { valid: errors.length === 0, errors };
88
+ }
89
+ getDefaultConfig() {
90
+ return {
91
+ enabled: true,
92
+ blocking: true,
93
+ minComplianceRate: 80,
94
+ maxNewOutliers: 0,
95
+ categories: [], // Empty = all categories
96
+ minPatternConfidence: 0.7,
97
+ approvedOnly: true,
98
+ };
99
+ }
100
+ /**
101
+ * Filter patterns based on configuration.
102
+ */
103
+ filterPatterns(patterns, config) {
104
+ return patterns.filter(p => {
105
+ // Filter by approval status
106
+ if (config.approvedOnly && p.status !== 'approved')
107
+ return false;
108
+ // Filter by confidence
109
+ if (p.confidence < config.minPatternConfidence)
110
+ return false;
111
+ // Filter by category
112
+ if (config.categories.length > 0 && !config.categories.includes(p.category)) {
113
+ return false;
114
+ }
115
+ return true;
116
+ });
117
+ }
118
+ /**
119
+ * Calculate compliance metrics for changed files.
120
+ */
121
+ calculateCompliance(files, patterns) {
122
+ const byCategory = {};
123
+ let totalLocations = 0;
124
+ let totalOutliers = 0;
125
+ let lowConfidencePatterns = 0;
126
+ for (const pattern of patterns) {
127
+ const category = pattern.category;
128
+ if (!byCategory[category]) {
129
+ byCategory[category] = { compliant: 0, total: 0 };
130
+ }
131
+ // Count locations and outliers in changed files
132
+ const locationsInFiles = (pattern.locations ?? []).filter(loc => files.some(f => loc.file.endsWith(f) || f.endsWith(loc.file)));
133
+ const outliersInFiles = (pattern.outliers ?? []).filter(out => files.some(f => out.file.endsWith(f) || f.endsWith(out.file)));
134
+ const patternLocations = locationsInFiles.length;
135
+ const patternOutliers = outliersInFiles.length;
136
+ const patternTotal = patternLocations + patternOutliers;
137
+ if (patternTotal > 0) {
138
+ byCategory[category].compliant += patternLocations;
139
+ byCategory[category].total += patternTotal;
140
+ totalLocations += patternLocations;
141
+ totalOutliers += patternOutliers;
142
+ }
143
+ if (pattern.confidence < 0.8) {
144
+ lowConfidencePatterns++;
145
+ }
146
+ }
147
+ const total = totalLocations + totalOutliers;
148
+ const overallRate = total > 0 ? (totalLocations / total) * 100 : 100;
149
+ return {
150
+ overallRate,
151
+ existingOutliers: totalOutliers,
152
+ byCategory,
153
+ lowConfidencePatterns,
154
+ };
155
+ }
156
+ /**
157
+ * Detect new outliers that weren't in the previous snapshot.
158
+ */
159
+ detectNewOutliers(files, patterns, previousSnapshot) {
160
+ const newOutliers = [];
161
+ const previousOutlierCounts = new Map();
162
+ // Build map of previous outlier counts
163
+ if (previousSnapshot?.patterns) {
164
+ for (const p of previousSnapshot.patterns) {
165
+ previousOutlierCounts.set(p.patternId, p.outliers);
166
+ }
167
+ }
168
+ for (const pattern of patterns) {
169
+ const outliersInFiles = (pattern.outliers ?? []).filter(out => files.some(f => out.file.endsWith(f) || f.endsWith(out.file)));
170
+ // If no previous snapshot, all outliers in changed files are "new"
171
+ // Otherwise, compare counts
172
+ const previousCount = previousOutlierCounts.get(pattern.id) ?? 0;
173
+ const currentCount = pattern.outliers?.length ?? 0;
174
+ const isNewPattern = !previousOutlierCounts.has(pattern.id);
175
+ for (const outlier of outliersInFiles) {
176
+ newOutliers.push({
177
+ patternId: pattern.id,
178
+ patternName: pattern.name,
179
+ file: outlier.file,
180
+ line: outlier.line,
181
+ reason: outlier.reason,
182
+ isNew: isNewPattern || currentCount > previousCount,
183
+ });
184
+ }
185
+ }
186
+ return newOutliers;
187
+ }
188
+ /**
189
+ * Build violations from outliers.
190
+ */
191
+ buildViolations(outliers) {
192
+ return outliers
193
+ .filter(o => o.isNew) // Only new outliers are violations
194
+ .map(o => this.createViolation({
195
+ severity: 'error',
196
+ file: o.file,
197
+ line: o.line,
198
+ column: 1,
199
+ message: `Deviates from pattern: ${o.patternName}`,
200
+ explanation: o.reason,
201
+ ruleId: o.patternId,
202
+ suggestedFix: `Follow the established ${o.patternName} pattern`,
203
+ }));
204
+ }
205
+ /**
206
+ * Evaluate whether the gate passes based on thresholds.
207
+ */
208
+ evaluateThresholds(compliance, newOutliers, config) {
209
+ // Check compliance rate threshold
210
+ if (compliance.overallRate < config.minComplianceRate) {
211
+ return false;
212
+ }
213
+ // Check new outliers threshold
214
+ const actualNewOutliers = newOutliers.filter(o => o.isNew).length;
215
+ if (actualNewOutliers > config.maxNewOutliers) {
216
+ return false;
217
+ }
218
+ return true;
219
+ }
220
+ /**
221
+ * Calculate the compliance score (0-100).
222
+ */
223
+ calculateComplianceScore(compliance, newOutliers, _config) {
224
+ // Base score from compliance rate
225
+ let score = compliance.overallRate;
226
+ // Penalty for new outliers (5 points each)
227
+ const actualNewOutliers = newOutliers.filter(o => o.isNew).length;
228
+ const outlierPenalty = actualNewOutliers * 5;
229
+ score = Math.max(0, score - outlierPenalty);
230
+ return Math.round(score);
231
+ }
232
+ /**
233
+ * Build human-readable summary.
234
+ */
235
+ buildSummary(compliance, newOutliers, passed) {
236
+ const actualNewOutliers = newOutliers.filter(o => o.isNew).length;
237
+ if (passed) {
238
+ if (actualNewOutliers === 0) {
239
+ return `Pattern compliance: ${compliance.overallRate.toFixed(1)}%`;
240
+ }
241
+ return `Pattern compliance: ${compliance.overallRate.toFixed(1)}% (${actualNewOutliers} new outlier${actualNewOutliers === 1 ? '' : 's'})`;
242
+ }
243
+ return `Pattern compliance failed: ${compliance.overallRate.toFixed(1)}% compliance, ${actualNewOutliers} new outlier${actualNewOutliers === 1 ? '' : 's'}`;
244
+ }
245
+ /**
246
+ * Build warnings for the result.
247
+ */
248
+ buildWarnings(compliance, patterns) {
249
+ const warnings = [];
250
+ // Warn about low-confidence patterns
251
+ if (compliance.lowConfidencePatterns > 0) {
252
+ warnings.push(`${compliance.lowConfidencePatterns} pattern${compliance.lowConfidencePatterns === 1 ? '' : 's'} have low confidence (<80%)`);
253
+ }
254
+ // Warn if very few patterns
255
+ if (patterns.length < 3) {
256
+ warnings.push('Few patterns detected. Consider running more scans to establish patterns.');
257
+ }
258
+ return warnings;
259
+ }
260
+ }
261
+ //# sourceMappingURL=pattern-compliance-gate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pattern-compliance-gate.js","sourceRoot":"","sources":["../../../../src/quality-gates/gates/pattern-compliance/pattern-compliance-gate.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Regression Detection Gate
3
+ *
4
+ * @license Apache-2.0
5
+ */
6
+ export { RegressionDetectionGate } from './regression-detection-gate.js';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/quality-gates/gates/regression-detection/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Regression Detection Gate
3
+ *
4
+ * @license Apache-2.0
5
+ */
6
+ export { RegressionDetectionGate } from './regression-detection-gate.js';
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/quality-gates/gates/regression-detection/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC"}
@@ -0,0 +1,69 @@
1
+ /**
2
+ * Regression Detection Gate
3
+ *
4
+ * @license Apache-2.0
5
+ *
6
+ * Detects pattern regressions by comparing current state against a baseline.
7
+ * Catches when changes cause patterns to degrade (lower confidence, more outliers).
8
+ *
9
+ * FUTURE_GATE: gate:regression-detection (Team tier)
10
+ */
11
+ import { BaseGate } from '../base-gate.js';
12
+ import type { GateId, GateInput, GateResult, GateConfig, RegressionDetectionConfig } from '../../types.js';
13
+ /**
14
+ * Regression Detection Gate
15
+ *
16
+ * Compares current pattern health against a baseline to detect regressions.
17
+ */
18
+ export declare class RegressionDetectionGate extends BaseGate {
19
+ readonly id: GateId;
20
+ readonly name = "Regression Detection";
21
+ readonly description = "Detects pattern regressions from baseline";
22
+ protected executeGate(input: GateInput): Promise<GateResult>;
23
+ validateConfig(config: GateConfig): {
24
+ valid: boolean;
25
+ errors: string[];
26
+ };
27
+ getDefaultConfig(): RegressionDetectionConfig;
28
+ /**
29
+ * Compare current patterns against baseline snapshot.
30
+ */
31
+ private comparePatterns;
32
+ /**
33
+ * Classify regression severity.
34
+ */
35
+ private classifyRegressionSeverity;
36
+ /**
37
+ * Calculate overall health delta.
38
+ */
39
+ private calculateOverallDelta;
40
+ /**
41
+ * Evaluate whether the gate passes based on thresholds.
42
+ */
43
+ private evaluateThresholds;
44
+ /**
45
+ * Get category from regression (simplified - in full impl would track this).
46
+ */
47
+ private getCategoryFromRegression;
48
+ /**
49
+ * Build violations from regressions.
50
+ */
51
+ private buildViolations;
52
+ /**
53
+ * Format regression explanation.
54
+ */
55
+ private formatRegressionExplanation;
56
+ /**
57
+ * Calculate score based on comparison.
58
+ */
59
+ private calculateScore;
60
+ /**
61
+ * Build human-readable summary.
62
+ */
63
+ private buildSummary;
64
+ /**
65
+ * Build warnings for the result.
66
+ */
67
+ private buildWarnings;
68
+ }
69
+ //# sourceMappingURL=regression-detection-gate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"regression-detection-gate.d.ts","sourceRoot":"","sources":["../../../../src/quality-gates/gates/regression-detection/regression-detection-gate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,KAAK,EACV,MAAM,EACN,SAAS,EACT,UAAU,EACV,UAAU,EACV,yBAAyB,EAO1B,MAAM,gBAAgB,CAAC;AAExB;;;;GAIG;AACH,qBAAa,uBAAwB,SAAQ,QAAQ;IACnD,QAAQ,CAAC,EAAE,EAAE,MAAM,CAA0B;IAC7C,QAAQ,CAAC,IAAI,0BAA0B;IACvC,QAAQ,CAAC,WAAW,+CAA+C;cAEnD,WAAW,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC;IAuElE,cAAc,CAAC,MAAM,EAAE,UAAU,GAAG;QAAE,KAAK,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,EAAE,CAAA;KAAE;IAiBxE,gBAAgB,IAAI,yBAAyB;IAY7C;;OAEG;IACH,OAAO,CAAC,eAAe;IAqGvB;;OAEG;IACH,OAAO,CAAC,0BAA0B;IAuBlC;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAM7B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IA4B1B;;OAEG;IACH,OAAO,CAAC,yBAAyB;IAKjC;;OAEG;IACH,OAAO,CAAC,eAAe;IAkBvB;;OAEG;IACH,OAAO,CAAC,2BAA2B;IAqBnC;;OAEG;IACH,OAAO,CAAC,cAAc;IAwBtB;;OAEG;IACH,OAAO,CAAC,YAAY;IAkCpB;;OAEG;IACH,OAAO,CAAC,aAAa;CAoBtB"}