driftdetect-core 0.5.0 → 0.6.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 (350) 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 +1 -0
  5. package/dist/call-graph/analysis/graph-builder.js.map +1 -1
  6. package/dist/call-graph/extractors/go-data-access-extractor.d.ts +80 -0
  7. package/dist/call-graph/extractors/go-data-access-extractor.d.ts.map +1 -0
  8. package/dist/call-graph/extractors/go-data-access-extractor.js +457 -0
  9. package/dist/call-graph/extractors/go-data-access-extractor.js.map +1 -0
  10. package/dist/call-graph/extractors/go-extractor.d.ts +103 -0
  11. package/dist/call-graph/extractors/go-extractor.d.ts.map +1 -0
  12. package/dist/call-graph/extractors/go-extractor.js +509 -0
  13. package/dist/call-graph/extractors/go-extractor.js.map +1 -0
  14. package/dist/call-graph/extractors/go-hybrid-extractor.d.ts +97 -0
  15. package/dist/call-graph/extractors/go-hybrid-extractor.d.ts.map +1 -0
  16. package/dist/call-graph/extractors/go-hybrid-extractor.js +496 -0
  17. package/dist/call-graph/extractors/go-hybrid-extractor.js.map +1 -0
  18. package/dist/call-graph/extractors/regex/go-regex.d.ts +51 -0
  19. package/dist/call-graph/extractors/regex/go-regex.d.ts.map +1 -0
  20. package/dist/call-graph/extractors/regex/go-regex.js +435 -0
  21. package/dist/call-graph/extractors/regex/go-regex.js.map +1 -0
  22. package/dist/call-graph/extractors/regex/index.d.ts +1 -0
  23. package/dist/call-graph/extractors/regex/index.d.ts.map +1 -1
  24. package/dist/call-graph/extractors/regex/index.js +8 -0
  25. package/dist/call-graph/extractors/regex/index.js.map +1 -1
  26. package/dist/call-graph/index.d.ts +3 -0
  27. package/dist/call-graph/index.d.ts.map +1 -1
  28. package/dist/call-graph/index.js +5 -0
  29. package/dist/call-graph/index.js.map +1 -1
  30. package/dist/call-graph/types.d.ts +1 -1
  31. package/dist/call-graph/types.d.ts.map +1 -1
  32. package/dist/constraints/extraction/constraint-synthesizer.d.ts +72 -0
  33. package/dist/constraints/extraction/constraint-synthesizer.d.ts.map +1 -0
  34. package/dist/constraints/extraction/constraint-synthesizer.js +336 -0
  35. package/dist/constraints/extraction/constraint-synthesizer.js.map +1 -0
  36. package/dist/constraints/extraction/index.d.ts +10 -0
  37. package/dist/constraints/extraction/index.d.ts.map +1 -0
  38. package/dist/constraints/extraction/index.js +10 -0
  39. package/dist/constraints/extraction/index.js.map +1 -0
  40. package/dist/constraints/extraction/invariant-detector.d.ts +109 -0
  41. package/dist/constraints/extraction/invariant-detector.d.ts.map +1 -0
  42. package/dist/constraints/extraction/invariant-detector.js +979 -0
  43. package/dist/constraints/extraction/invariant-detector.js.map +1 -0
  44. package/dist/constraints/index.d.ts +15 -0
  45. package/dist/constraints/index.d.ts.map +1 -0
  46. package/dist/constraints/index.js +16 -0
  47. package/dist/constraints/index.js.map +1 -0
  48. package/dist/constraints/store/constraint-store.d.ts +110 -0
  49. package/dist/constraints/store/constraint-store.d.ts.map +1 -0
  50. package/dist/constraints/store/constraint-store.js +584 -0
  51. package/dist/constraints/store/constraint-store.js.map +1 -0
  52. package/dist/constraints/types.d.ts +605 -0
  53. package/dist/constraints/types.d.ts.map +1 -0
  54. package/dist/constraints/types.js +57 -0
  55. package/dist/constraints/types.js.map +1 -0
  56. package/dist/constraints/verification/constraint-verifier.d.ts +100 -0
  57. package/dist/constraints/verification/constraint-verifier.d.ts.map +1 -0
  58. package/dist/constraints/verification/constraint-verifier.js +638 -0
  59. package/dist/constraints/verification/constraint-verifier.js.map +1 -0
  60. package/dist/constraints/verification/index.d.ts +8 -0
  61. package/dist/constraints/verification/index.d.ts.map +1 -0
  62. package/dist/constraints/verification/index.js +8 -0
  63. package/dist/constraints/verification/index.js.map +1 -0
  64. package/dist/decisions/analyzer/decision-mining-analyzer.d.ts +121 -0
  65. package/dist/decisions/analyzer/decision-mining-analyzer.d.ts.map +1 -0
  66. package/dist/decisions/analyzer/decision-mining-analyzer.js +904 -0
  67. package/dist/decisions/analyzer/decision-mining-analyzer.js.map +1 -0
  68. package/dist/decisions/analyzer/index.d.ts +5 -0
  69. package/dist/decisions/analyzer/index.d.ts.map +1 -0
  70. package/dist/decisions/analyzer/index.js +5 -0
  71. package/dist/decisions/analyzer/index.js.map +1 -0
  72. package/dist/decisions/extractors/base-commit-extractor.d.ts +104 -0
  73. package/dist/decisions/extractors/base-commit-extractor.d.ts.map +1 -0
  74. package/dist/decisions/extractors/base-commit-extractor.js +305 -0
  75. package/dist/decisions/extractors/base-commit-extractor.js.map +1 -0
  76. package/dist/decisions/extractors/csharp-commit-extractor.d.ts +18 -0
  77. package/dist/decisions/extractors/csharp-commit-extractor.d.ts.map +1 -0
  78. package/dist/decisions/extractors/csharp-commit-extractor.js +281 -0
  79. package/dist/decisions/extractors/csharp-commit-extractor.js.map +1 -0
  80. package/dist/decisions/extractors/index.d.ts +31 -0
  81. package/dist/decisions/extractors/index.d.ts.map +1 -0
  82. package/dist/decisions/extractors/index.js +63 -0
  83. package/dist/decisions/extractors/index.js.map +1 -0
  84. package/dist/decisions/extractors/java-commit-extractor.d.ts +18 -0
  85. package/dist/decisions/extractors/java-commit-extractor.d.ts.map +1 -0
  86. package/dist/decisions/extractors/java-commit-extractor.js +248 -0
  87. package/dist/decisions/extractors/java-commit-extractor.js.map +1 -0
  88. package/dist/decisions/extractors/php-commit-extractor.d.ts +18 -0
  89. package/dist/decisions/extractors/php-commit-extractor.d.ts.map +1 -0
  90. package/dist/decisions/extractors/php-commit-extractor.js +280 -0
  91. package/dist/decisions/extractors/php-commit-extractor.js.map +1 -0
  92. package/dist/decisions/extractors/python-commit-extractor.d.ts +18 -0
  93. package/dist/decisions/extractors/python-commit-extractor.d.ts.map +1 -0
  94. package/dist/decisions/extractors/python-commit-extractor.js +248 -0
  95. package/dist/decisions/extractors/python-commit-extractor.js.map +1 -0
  96. package/dist/decisions/extractors/typescript-commit-extractor.d.ts +37 -0
  97. package/dist/decisions/extractors/typescript-commit-extractor.d.ts.map +1 -0
  98. package/dist/decisions/extractors/typescript-commit-extractor.js +229 -0
  99. package/dist/decisions/extractors/typescript-commit-extractor.js.map +1 -0
  100. package/dist/decisions/git/commit-parser.d.ts +58 -0
  101. package/dist/decisions/git/commit-parser.d.ts.map +1 -0
  102. package/dist/decisions/git/commit-parser.js +344 -0
  103. package/dist/decisions/git/commit-parser.js.map +1 -0
  104. package/dist/decisions/git/diff-analyzer.d.ts +30 -0
  105. package/dist/decisions/git/diff-analyzer.d.ts.map +1 -0
  106. package/dist/decisions/git/diff-analyzer.js +492 -0
  107. package/dist/decisions/git/diff-analyzer.js.map +1 -0
  108. package/dist/decisions/git/git-walker.d.ts +64 -0
  109. package/dist/decisions/git/git-walker.d.ts.map +1 -0
  110. package/dist/decisions/git/git-walker.js +441 -0
  111. package/dist/decisions/git/git-walker.js.map +1 -0
  112. package/dist/decisions/git/index.d.ts +11 -0
  113. package/dist/decisions/git/index.d.ts.map +1 -0
  114. package/dist/decisions/git/index.js +13 -0
  115. package/dist/decisions/git/index.js.map +1 -0
  116. package/dist/decisions/git/types.d.ts +223 -0
  117. package/dist/decisions/git/types.d.ts.map +1 -0
  118. package/dist/decisions/git/types.js +7 -0
  119. package/dist/decisions/git/types.js.map +1 -0
  120. package/dist/decisions/index.d.ts +27 -0
  121. package/dist/decisions/index.d.ts.map +1 -0
  122. package/dist/decisions/index.js +45 -0
  123. package/dist/decisions/index.js.map +1 -0
  124. package/dist/decisions/types.d.ts +530 -0
  125. package/dist/decisions/types.d.ts.map +1 -0
  126. package/dist/decisions/types.js +8 -0
  127. package/dist/decisions/types.js.map +1 -0
  128. package/dist/go/go-analyzer.d.ts +203 -0
  129. package/dist/go/go-analyzer.d.ts.map +1 -0
  130. package/dist/go/go-analyzer.js +509 -0
  131. package/dist/go/go-analyzer.js.map +1 -0
  132. package/dist/go/index.d.ts +7 -0
  133. package/dist/go/index.d.ts.map +1 -0
  134. package/dist/go/index.js +8 -0
  135. package/dist/go/index.js.map +1 -0
  136. package/dist/index.d.ts +11 -0
  137. package/dist/index.d.ts.map +1 -1
  138. package/dist/index.js +56 -0
  139. package/dist/index.js.map +1 -1
  140. package/dist/parsers/tree-sitter/go-loader.d.ts +50 -0
  141. package/dist/parsers/tree-sitter/go-loader.d.ts.map +1 -0
  142. package/dist/parsers/tree-sitter/go-loader.js +161 -0
  143. package/dist/parsers/tree-sitter/go-loader.js.map +1 -0
  144. package/dist/parsers/tree-sitter/tree-sitter-go-parser.d.ts +250 -0
  145. package/dist/parsers/tree-sitter/tree-sitter-go-parser.d.ts.map +1 -0
  146. package/dist/parsers/tree-sitter/tree-sitter-go-parser.js +707 -0
  147. package/dist/parsers/tree-sitter/tree-sitter-go-parser.js.map +1 -0
  148. package/dist/parsers/types.d.ts +1 -1
  149. package/dist/parsers/types.d.ts.map +1 -1
  150. package/dist/simulation/approach-generator.d.ts +73 -0
  151. package/dist/simulation/approach-generator.d.ts.map +1 -0
  152. package/dist/simulation/approach-generator.js +371 -0
  153. package/dist/simulation/approach-generator.js.map +1 -0
  154. package/dist/simulation/index.d.ts +14 -0
  155. package/dist/simulation/index.d.ts.map +1 -0
  156. package/dist/simulation/index.js +19 -0
  157. package/dist/simulation/index.js.map +1 -0
  158. package/dist/simulation/language-strategies/csharp-strategies.d.ts +17 -0
  159. package/dist/simulation/language-strategies/csharp-strategies.d.ts.map +1 -0
  160. package/dist/simulation/language-strategies/csharp-strategies.js +118 -0
  161. package/dist/simulation/language-strategies/csharp-strategies.js.map +1 -0
  162. package/dist/simulation/language-strategies/index.d.ts +41 -0
  163. package/dist/simulation/language-strategies/index.d.ts.map +1 -0
  164. package/dist/simulation/language-strategies/index.js +92 -0
  165. package/dist/simulation/language-strategies/index.js.map +1 -0
  166. package/dist/simulation/language-strategies/java-strategies.d.ts +17 -0
  167. package/dist/simulation/language-strategies/java-strategies.d.ts.map +1 -0
  168. package/dist/simulation/language-strategies/java-strategies.js +119 -0
  169. package/dist/simulation/language-strategies/java-strategies.js.map +1 -0
  170. package/dist/simulation/language-strategies/php-strategies.d.ts +17 -0
  171. package/dist/simulation/language-strategies/php-strategies.d.ts.map +1 -0
  172. package/dist/simulation/language-strategies/php-strategies.js +129 -0
  173. package/dist/simulation/language-strategies/php-strategies.js.map +1 -0
  174. package/dist/simulation/language-strategies/python-strategies.d.ts +17 -0
  175. package/dist/simulation/language-strategies/python-strategies.d.ts.map +1 -0
  176. package/dist/simulation/language-strategies/python-strategies.js +208 -0
  177. package/dist/simulation/language-strategies/python-strategies.js.map +1 -0
  178. package/dist/simulation/language-strategies/types.d.ts +67 -0
  179. package/dist/simulation/language-strategies/types.d.ts.map +1 -0
  180. package/dist/simulation/language-strategies/types.js +23 -0
  181. package/dist/simulation/language-strategies/types.js.map +1 -0
  182. package/dist/simulation/language-strategies/typescript-strategies.d.ts +17 -0
  183. package/dist/simulation/language-strategies/typescript-strategies.d.ts.map +1 -0
  184. package/dist/simulation/language-strategies/typescript-strategies.js +251 -0
  185. package/dist/simulation/language-strategies/typescript-strategies.js.map +1 -0
  186. package/dist/simulation/scorers/friction-scorer.d.ts +45 -0
  187. package/dist/simulation/scorers/friction-scorer.d.ts.map +1 -0
  188. package/dist/simulation/scorers/friction-scorer.js +336 -0
  189. package/dist/simulation/scorers/friction-scorer.js.map +1 -0
  190. package/dist/simulation/scorers/impact-scorer.d.ts +56 -0
  191. package/dist/simulation/scorers/impact-scorer.d.ts.map +1 -0
  192. package/dist/simulation/scorers/impact-scorer.js +273 -0
  193. package/dist/simulation/scorers/impact-scorer.js.map +1 -0
  194. package/dist/simulation/scorers/index.d.ts +12 -0
  195. package/dist/simulation/scorers/index.d.ts.map +1 -0
  196. package/dist/simulation/scorers/index.js +12 -0
  197. package/dist/simulation/scorers/index.js.map +1 -0
  198. package/dist/simulation/scorers/pattern-alignment-scorer.d.ts +83 -0
  199. package/dist/simulation/scorers/pattern-alignment-scorer.d.ts.map +1 -0
  200. package/dist/simulation/scorers/pattern-alignment-scorer.js +367 -0
  201. package/dist/simulation/scorers/pattern-alignment-scorer.js.map +1 -0
  202. package/dist/simulation/scorers/security-scorer.d.ts +63 -0
  203. package/dist/simulation/scorers/security-scorer.d.ts.map +1 -0
  204. package/dist/simulation/scorers/security-scorer.js +346 -0
  205. package/dist/simulation/scorers/security-scorer.js.map +1 -0
  206. package/dist/simulation/simulation-engine.d.ts +89 -0
  207. package/dist/simulation/simulation-engine.d.ts.map +1 -0
  208. package/dist/simulation/simulation-engine.js +480 -0
  209. package/dist/simulation/simulation-engine.js.map +1 -0
  210. package/dist/simulation/types.d.ts +200 -0
  211. package/dist/simulation/types.d.ts.map +1 -0
  212. package/dist/simulation/types.js +23 -0
  213. package/dist/simulation/types.js.map +1 -0
  214. package/dist/speculative/approach-generator.d.ts +2 -0
  215. package/dist/speculative/approach-generator.d.ts.map +1 -0
  216. package/dist/speculative/approach-generator.js +2 -0
  217. package/dist/speculative/approach-generator.js.map +1 -0
  218. package/dist/speculative/templates/types.d.ts +133 -0
  219. package/dist/speculative/templates/types.d.ts.map +1 -0
  220. package/dist/speculative/templates/types.js +208 -0
  221. package/dist/speculative/templates/types.js.map +1 -0
  222. package/dist/speculative/types.d.ts +523 -0
  223. package/dist/speculative/types.d.ts.map +1 -0
  224. package/dist/speculative/types.js +71 -0
  225. package/dist/speculative/types.js.map +1 -0
  226. package/dist/test-topology/extractors/base-test-extractor.d.ts +1 -1
  227. package/dist/test-topology/extractors/base-test-extractor.d.ts.map +1 -1
  228. package/dist/test-topology/extractors/base-test-extractor.js.map +1 -1
  229. package/dist/test-topology/extractors/go-test-extractor.d.ts +33 -0
  230. package/dist/test-topology/extractors/go-test-extractor.d.ts.map +1 -0
  231. package/dist/test-topology/extractors/go-test-extractor.js +436 -0
  232. package/dist/test-topology/extractors/go-test-extractor.js.map +1 -0
  233. package/dist/test-topology/extractors/index.d.ts +1 -0
  234. package/dist/test-topology/extractors/index.d.ts.map +1 -1
  235. package/dist/test-topology/extractors/index.js +1 -0
  236. package/dist/test-topology/extractors/index.js.map +1 -1
  237. package/dist/test-topology/extractors/regex/go-test-regex.d.ts +62 -0
  238. package/dist/test-topology/extractors/regex/go-test-regex.d.ts.map +1 -0
  239. package/dist/test-topology/extractors/regex/go-test-regex.js +528 -0
  240. package/dist/test-topology/extractors/regex/go-test-regex.js.map +1 -0
  241. package/dist/test-topology/extractors/regex/index.d.ts +1 -0
  242. package/dist/test-topology/extractors/regex/index.d.ts.map +1 -1
  243. package/dist/test-topology/extractors/regex/index.js +4 -0
  244. package/dist/test-topology/extractors/regex/index.js.map +1 -1
  245. package/dist/test-topology/hybrid-test-topology-analyzer.d.ts.map +1 -1
  246. package/dist/test-topology/hybrid-test-topology-analyzer.js +1 -0
  247. package/dist/test-topology/hybrid-test-topology-analyzer.js.map +1 -1
  248. package/dist/test-topology/test-topology-analyzer.d.ts.map +1 -1
  249. package/dist/test-topology/test-topology-analyzer.js +1 -0
  250. package/dist/test-topology/test-topology-analyzer.js.map +1 -1
  251. package/dist/test-topology/types.d.ts +2 -2
  252. package/dist/test-topology/types.d.ts.map +1 -1
  253. package/dist/unified-provider/matching/database-sql-matcher.d.ts +42 -0
  254. package/dist/unified-provider/matching/database-sql-matcher.d.ts.map +1 -0
  255. package/dist/unified-provider/matching/database-sql-matcher.js +282 -0
  256. package/dist/unified-provider/matching/database-sql-matcher.js.map +1 -0
  257. package/dist/unified-provider/matching/gorm-matcher.d.ts +41 -0
  258. package/dist/unified-provider/matching/gorm-matcher.d.ts.map +1 -0
  259. package/dist/unified-provider/matching/gorm-matcher.js +222 -0
  260. package/dist/unified-provider/matching/gorm-matcher.js.map +1 -0
  261. package/dist/unified-provider/matching/index.d.ts +3 -0
  262. package/dist/unified-provider/matching/index.d.ts.map +1 -1
  263. package/dist/unified-provider/matching/index.js +4 -0
  264. package/dist/unified-provider/matching/index.js.map +1 -1
  265. package/dist/unified-provider/matching/matcher-registry.d.ts.map +1 -1
  266. package/dist/unified-provider/matching/matcher-registry.js +7 -0
  267. package/dist/unified-provider/matching/matcher-registry.js.map +1 -1
  268. package/dist/unified-provider/matching/sqlx-matcher.d.ts +40 -0
  269. package/dist/unified-provider/matching/sqlx-matcher.d.ts.map +1 -0
  270. package/dist/unified-provider/matching/sqlx-matcher.js +214 -0
  271. package/dist/unified-provider/matching/sqlx-matcher.js.map +1 -0
  272. package/dist/unified-provider/normalization/go-normalizer.d.ts +62 -0
  273. package/dist/unified-provider/normalization/go-normalizer.d.ts.map +1 -0
  274. package/dist/unified-provider/normalization/go-normalizer.js +608 -0
  275. package/dist/unified-provider/normalization/go-normalizer.js.map +1 -0
  276. package/dist/unified-provider/normalization/index.d.ts +1 -0
  277. package/dist/unified-provider/normalization/index.d.ts.map +1 -1
  278. package/dist/unified-provider/normalization/index.js +6 -1
  279. package/dist/unified-provider/normalization/index.js.map +1 -1
  280. package/dist/unified-provider/types.d.ts +1 -1
  281. package/dist/unified-provider/types.d.ts.map +1 -1
  282. package/dist/wpf/extractors/binding-error-detector.d.ts +75 -0
  283. package/dist/wpf/extractors/binding-error-detector.d.ts.map +1 -0
  284. package/dist/wpf/extractors/binding-error-detector.js +290 -0
  285. package/dist/wpf/extractors/binding-error-detector.js.map +1 -0
  286. package/dist/wpf/extractors/code-behind-linker.d.ts +70 -0
  287. package/dist/wpf/extractors/code-behind-linker.d.ts.map +1 -0
  288. package/dist/wpf/extractors/code-behind-linker.js +172 -0
  289. package/dist/wpf/extractors/code-behind-linker.js.map +1 -0
  290. package/dist/wpf/extractors/dependency-property-extractor.d.ts +61 -0
  291. package/dist/wpf/extractors/dependency-property-extractor.d.ts.map +1 -0
  292. package/dist/wpf/extractors/dependency-property-extractor.js +201 -0
  293. package/dist/wpf/extractors/dependency-property-extractor.js.map +1 -0
  294. package/dist/wpf/extractors/regex/viewmodel-regex.d.ts +82 -0
  295. package/dist/wpf/extractors/regex/viewmodel-regex.d.ts.map +1 -0
  296. package/dist/wpf/extractors/regex/viewmodel-regex.js +412 -0
  297. package/dist/wpf/extractors/regex/viewmodel-regex.js.map +1 -0
  298. package/dist/wpf/extractors/regex/xaml-regex.d.ts +77 -0
  299. package/dist/wpf/extractors/regex/xaml-regex.d.ts.map +1 -0
  300. package/dist/wpf/extractors/regex/xaml-regex.js +353 -0
  301. package/dist/wpf/extractors/regex/xaml-regex.js.map +1 -0
  302. package/dist/wpf/extractors/resource-dictionary-parser.d.ts +103 -0
  303. package/dist/wpf/extractors/resource-dictionary-parser.d.ts.map +1 -0
  304. package/dist/wpf/extractors/resource-dictionary-parser.js +296 -0
  305. package/dist/wpf/extractors/resource-dictionary-parser.js.map +1 -0
  306. package/dist/wpf/extractors/value-converter-extractor.d.ts +128 -0
  307. package/dist/wpf/extractors/value-converter-extractor.d.ts.map +1 -0
  308. package/dist/wpf/extractors/value-converter-extractor.js +312 -0
  309. package/dist/wpf/extractors/value-converter-extractor.js.map +1 -0
  310. package/dist/wpf/extractors/viewmodel-hybrid-extractor.d.ts +104 -0
  311. package/dist/wpf/extractors/viewmodel-hybrid-extractor.d.ts.map +1 -0
  312. package/dist/wpf/extractors/viewmodel-hybrid-extractor.js +513 -0
  313. package/dist/wpf/extractors/viewmodel-hybrid-extractor.js.map +1 -0
  314. package/dist/wpf/extractors/xaml-hybrid-extractor.d.ts +98 -0
  315. package/dist/wpf/extractors/xaml-hybrid-extractor.d.ts.map +1 -0
  316. package/dist/wpf/extractors/xaml-hybrid-extractor.js +444 -0
  317. package/dist/wpf/extractors/xaml-hybrid-extractor.js.map +1 -0
  318. package/dist/wpf/index.d.ts +25 -0
  319. package/dist/wpf/index.d.ts.map +1 -0
  320. package/dist/wpf/index.js +31 -0
  321. package/dist/wpf/index.js.map +1 -0
  322. package/dist/wpf/integration/wpf-callgraph-adapter.d.ts +82 -0
  323. package/dist/wpf/integration/wpf-callgraph-adapter.d.ts.map +1 -0
  324. package/dist/wpf/integration/wpf-callgraph-adapter.js +311 -0
  325. package/dist/wpf/integration/wpf-callgraph-adapter.js.map +1 -0
  326. package/dist/wpf/integration/wpf-data-flow-tracer.d.ts +129 -0
  327. package/dist/wpf/integration/wpf-data-flow-tracer.d.ts.map +1 -0
  328. package/dist/wpf/integration/wpf-data-flow-tracer.js +367 -0
  329. package/dist/wpf/integration/wpf-data-flow-tracer.js.map +1 -0
  330. package/dist/wpf/linkers/datacontext-resolver.d.ts +66 -0
  331. package/dist/wpf/linkers/datacontext-resolver.d.ts.map +1 -0
  332. package/dist/wpf/linkers/datacontext-resolver.js +240 -0
  333. package/dist/wpf/linkers/datacontext-resolver.js.map +1 -0
  334. package/dist/wpf/linkers/viewmodel-linker.d.ts +71 -0
  335. package/dist/wpf/linkers/viewmodel-linker.d.ts.map +1 -0
  336. package/dist/wpf/linkers/viewmodel-linker.js +268 -0
  337. package/dist/wpf/linkers/viewmodel-linker.js.map +1 -0
  338. package/dist/wpf/types.d.ts +451 -0
  339. package/dist/wpf/types.d.ts.map +1 -0
  340. package/dist/wpf/types.js +8 -0
  341. package/dist/wpf/types.js.map +1 -0
  342. package/dist/wpf/wpf-analyzer.d.ts +114 -0
  343. package/dist/wpf/wpf-analyzer.d.ts.map +1 -0
  344. package/dist/wpf/wpf-analyzer.js +332 -0
  345. package/dist/wpf/wpf-analyzer.js.map +1 -0
  346. package/dist/wrappers/integration/adapter.d.ts.map +1 -1
  347. package/dist/wrappers/integration/adapter.js +1 -0
  348. package/dist/wrappers/integration/adapter.js.map +1 -1
  349. package/package.json +29 -18
  350. package/LICENSE +0 -21
@@ -0,0 +1,367 @@
1
+ /**
2
+ * Pattern Alignment Scorer
3
+ *
4
+ * Calculates how well an approach aligns with existing codebase patterns:
5
+ * - Alignment score
6
+ * - Aligned patterns
7
+ * - Conflicting patterns
8
+ * - Whether it creates new patterns
9
+ * - Whether it would be an outlier
10
+ *
11
+ * @module simulation/scorers/pattern-alignment-scorer
12
+ */
13
+ // ============================================================================
14
+ // Category Mapping
15
+ // ============================================================================
16
+ // Map task categories to pattern categories (using string to avoid type issues)
17
+ const TASK_TO_PATTERN_CATEGORY = {
18
+ 'rate-limiting': ['api'],
19
+ 'authentication': ['auth', 'security'],
20
+ 'authorization': ['auth', 'security'],
21
+ 'api-endpoint': ['api', 'structural'],
22
+ 'data-access': ['data-access', 'structural'],
23
+ 'error-handling': ['errors', 'structural'],
24
+ 'caching': ['performance', 'data-access'],
25
+ 'logging': ['logging', 'structural'],
26
+ 'testing': ['testing'],
27
+ 'validation': ['api', 'types'],
28
+ 'middleware': ['structural'],
29
+ 'refactoring': ['structural'],
30
+ 'generic': ['structural'],
31
+ };
32
+ // ============================================================================
33
+ // Pattern Alignment Scorer
34
+ // ============================================================================
35
+ /**
36
+ * Scores how well an approach aligns with existing patterns
37
+ */
38
+ export class PatternAlignmentScorer {
39
+ config;
40
+ constructor(config) {
41
+ this.config = config;
42
+ }
43
+ /**
44
+ * Calculate pattern alignment metrics for an approach
45
+ */
46
+ async score(approach, taskCategory) {
47
+ // If no pattern service, return default metrics
48
+ if (!this.config.patternService) {
49
+ return this.getDefaultMetrics(approach);
50
+ }
51
+ // Get relevant patterns for the task category
52
+ const relevantPatterns = await this.getRelevantPatterns(taskCategory);
53
+ // Find aligned patterns
54
+ const alignedPatterns = this.findAlignedPatterns(approach, relevantPatterns);
55
+ // Find conflicting patterns
56
+ const conflictingPatterns = this.findConflictingPatterns(approach, relevantPatterns);
57
+ // Calculate alignment score
58
+ const alignmentScore = this.calculateAlignmentScore(alignedPatterns, conflictingPatterns, relevantPatterns.length);
59
+ // Determine if this creates a new pattern
60
+ const createsNewPattern = this.wouldCreateNewPattern(approach, relevantPatterns);
61
+ // Determine if this would be an outlier
62
+ const wouldBeOutlier = this.wouldBeOutlier(approach, relevantPatterns);
63
+ // Suggest patterns to follow
64
+ const suggestedPatterns = this.suggestPatterns(approach, relevantPatterns);
65
+ return {
66
+ alignmentScore,
67
+ alignedPatterns,
68
+ conflictingPatterns,
69
+ createsNewPattern,
70
+ wouldBeOutlier,
71
+ suggestedPatterns,
72
+ };
73
+ }
74
+ // ==========================================================================
75
+ // Pattern Retrieval
76
+ // ==========================================================================
77
+ /**
78
+ * Get patterns relevant to the task category
79
+ */
80
+ async getRelevantPatterns(taskCategory) {
81
+ if (!this.config.patternService) {
82
+ return [];
83
+ }
84
+ const patternCategories = TASK_TO_PATTERN_CATEGORY[taskCategory] ?? ['structural'];
85
+ const patterns = [];
86
+ for (const category of patternCategories) {
87
+ try {
88
+ const result = await this.config.patternService.listByCategory(category, { limit: 20 });
89
+ // Get full pattern details
90
+ for (const summary of result.items) {
91
+ const pattern = await this.config.patternService.getPattern(summary.id);
92
+ if (pattern && pattern.confidence >= (this.config.minPatternConfidence ?? 0.5)) {
93
+ patterns.push(pattern);
94
+ }
95
+ }
96
+ }
97
+ catch {
98
+ // Ignore errors
99
+ }
100
+ }
101
+ return patterns;
102
+ }
103
+ // ==========================================================================
104
+ // Alignment Analysis
105
+ // ==========================================================================
106
+ /**
107
+ * Find patterns that align with the approach
108
+ */
109
+ findAlignedPatterns(approach, patterns) {
110
+ const aligned = [];
111
+ for (const pattern of patterns) {
112
+ const alignmentScore = this.calculatePatternAlignment(approach, pattern);
113
+ if (alignmentScore >= 0.5) {
114
+ const alignedPattern = {
115
+ id: pattern.id,
116
+ name: pattern.name,
117
+ category: pattern.category,
118
+ alignmentScore,
119
+ reason: this.getAlignmentReason(approach, pattern, alignmentScore),
120
+ };
121
+ if (pattern.locations[0]?.file) {
122
+ alignedPattern.exampleFile = pattern.locations[0].file;
123
+ }
124
+ aligned.push(alignedPattern);
125
+ }
126
+ }
127
+ // Sort by alignment score
128
+ return aligned.sort((a, b) => b.alignmentScore - a.alignmentScore);
129
+ }
130
+ /**
131
+ * Calculate alignment between approach and pattern
132
+ */
133
+ calculatePatternAlignment(approach, pattern) {
134
+ let score = 0;
135
+ let factors = 0;
136
+ // Check if approach targets files with this pattern
137
+ const patternFiles = new Set(pattern.locations.map(l => l.file));
138
+ const targetOverlap = approach.targetFiles.filter(f => patternFiles.has(f)).length;
139
+ if (targetOverlap > 0) {
140
+ score += 0.3 * Math.min(1, targetOverlap / approach.targetFiles.length);
141
+ factors++;
142
+ }
143
+ // Check if approach follows this pattern (by ID)
144
+ if (approach.followsPatterns?.includes(pattern.id)) {
145
+ score += 0.4;
146
+ factors++;
147
+ }
148
+ // Check strategy alignment with pattern name/description
149
+ const patternText = `${pattern.name} ${pattern.description ?? ''}`.toLowerCase();
150
+ const strategyKeywords = this.getStrategyKeywords(approach.strategy);
151
+ const keywordMatches = strategyKeywords.filter(k => patternText.includes(k)).length;
152
+ if (keywordMatches > 0) {
153
+ score += 0.3 * Math.min(1, keywordMatches / strategyKeywords.length);
154
+ factors++;
155
+ }
156
+ return factors > 0 ? score / factors * factors : 0;
157
+ }
158
+ /**
159
+ * Get keywords for a strategy
160
+ */
161
+ getStrategyKeywords(strategy) {
162
+ const keywords = {
163
+ middleware: ['middleware', 'pipe', 'chain', 'handler'],
164
+ decorator: ['decorator', 'annotation', 'attribute'],
165
+ wrapper: ['wrapper', 'wrap', 'proxy'],
166
+ 'per-route': ['route', 'endpoint', 'controller'],
167
+ 'per-function': ['function', 'method', 'handler'],
168
+ centralized: ['central', 'single', 'unified'],
169
+ distributed: ['distributed', 'spread', 'multiple'],
170
+ aspect: ['aspect', 'aop', 'cross-cutting'],
171
+ filter: ['filter', 'pipe'],
172
+ interceptor: ['interceptor', 'intercept'],
173
+ guard: ['guard', 'protect', 'check'],
174
+ policy: ['policy', 'rule', 'authorize'],
175
+ dependency: ['inject', 'dependency', 'di'],
176
+ mixin: ['mixin', 'trait', 'compose'],
177
+ custom: [],
178
+ };
179
+ return keywords[strategy] ?? [];
180
+ }
181
+ /**
182
+ * Get reason for alignment
183
+ */
184
+ getAlignmentReason(approach, pattern, score) {
185
+ if (approach.followsPatterns?.includes(pattern.id)) {
186
+ return 'Explicitly follows this pattern';
187
+ }
188
+ if (score >= 0.8) {
189
+ return 'Highly aligned with pattern structure and location';
190
+ }
191
+ if (score >= 0.6) {
192
+ return 'Good alignment with pattern approach';
193
+ }
194
+ return 'Partial alignment with pattern';
195
+ }
196
+ // ==========================================================================
197
+ // Conflict Detection
198
+ // ==========================================================================
199
+ /**
200
+ * Find patterns that conflict with the approach
201
+ */
202
+ findConflictingPatterns(approach, patterns) {
203
+ const conflicts = [];
204
+ for (const pattern of patterns) {
205
+ const conflict = this.detectConflict(approach, pattern);
206
+ if (conflict) {
207
+ conflicts.push(conflict);
208
+ }
209
+ }
210
+ return conflicts;
211
+ }
212
+ /**
213
+ * Detect if approach conflicts with a pattern
214
+ */
215
+ detectConflict(approach, pattern) {
216
+ // Check for strategy conflicts
217
+ const conflictingStrategies = {
218
+ centralized: ['distributed', 'per-route', 'per-function'],
219
+ distributed: ['centralized'],
220
+ middleware: ['per-function'],
221
+ decorator: ['wrapper'],
222
+ };
223
+ const patternText = `${pattern.name} ${pattern.description ?? ''}`.toLowerCase();
224
+ const approachConflicts = conflictingStrategies[approach.strategy] ?? [];
225
+ for (const conflictStrategy of approachConflicts) {
226
+ const conflictKeywords = this.getStrategyKeywords(conflictStrategy);
227
+ if (conflictKeywords.some(k => patternText.includes(k))) {
228
+ return {
229
+ id: pattern.id,
230
+ name: pattern.name,
231
+ category: pattern.category,
232
+ conflictReason: `Pattern uses ${conflictStrategy} approach, but approach uses ${approach.strategy}`,
233
+ severity: 'warning',
234
+ };
235
+ }
236
+ }
237
+ // Check for file overlap with different approach
238
+ const patternFiles = new Set(pattern.locations.map(l => l.file));
239
+ const overlappingFiles = approach.targetFiles.filter(f => patternFiles.has(f));
240
+ if (overlappingFiles.length > 0 && pattern.outliers.length > 0) {
241
+ // Pattern has outliers in overlapping files - potential conflict
242
+ const outlierFiles = new Set(pattern.outliers.map(o => o.file));
243
+ const conflictFiles = overlappingFiles.filter(f => outlierFiles.has(f));
244
+ if (conflictFiles.length > 0) {
245
+ return {
246
+ id: pattern.id,
247
+ name: pattern.name,
248
+ category: pattern.category,
249
+ conflictReason: `Files ${conflictFiles.join(', ')} already have pattern outliers`,
250
+ severity: 'info',
251
+ };
252
+ }
253
+ }
254
+ return null;
255
+ }
256
+ // ==========================================================================
257
+ // Score Calculation
258
+ // ==========================================================================
259
+ /**
260
+ * Calculate overall alignment score
261
+ */
262
+ calculateAlignmentScore(aligned, conflicts, totalPatterns) {
263
+ if (totalPatterns === 0) {
264
+ return 50; // Neutral when no patterns exist
265
+ }
266
+ // Base score from aligned patterns
267
+ let score = 0;
268
+ for (const pattern of aligned) {
269
+ score += pattern.alignmentScore * 20;
270
+ }
271
+ // Penalty for conflicts
272
+ for (const conflict of conflicts) {
273
+ if (conflict.severity === 'error') {
274
+ score -= 30;
275
+ }
276
+ else if (conflict.severity === 'warning') {
277
+ score -= 15;
278
+ }
279
+ else {
280
+ score -= 5;
281
+ }
282
+ }
283
+ // Normalize to 0-100
284
+ return Math.max(0, Math.min(100, 50 + score));
285
+ }
286
+ // ==========================================================================
287
+ // Pattern Prediction
288
+ // ==========================================================================
289
+ /**
290
+ * Determine if approach would create a new pattern
291
+ */
292
+ wouldCreateNewPattern(approach, patterns) {
293
+ // If no similar patterns exist, this would create a new one
294
+ if (patterns.length === 0) {
295
+ return true;
296
+ }
297
+ // Check if any pattern matches the approach strategy
298
+ const strategyKeywords = this.getStrategyKeywords(approach.strategy);
299
+ for (const pattern of patterns) {
300
+ const patternText = `${pattern.name} ${pattern.description ?? ''}`.toLowerCase();
301
+ if (strategyKeywords.some(k => patternText.includes(k))) {
302
+ return false;
303
+ }
304
+ }
305
+ return true;
306
+ }
307
+ /**
308
+ * Determine if approach would be an outlier
309
+ */
310
+ wouldBeOutlier(approach, patterns) {
311
+ // If creating new pattern, not an outlier
312
+ if (this.wouldCreateNewPattern(approach, patterns)) {
313
+ return false;
314
+ }
315
+ // Check if approach deviates from existing patterns
316
+ for (const pattern of patterns) {
317
+ const alignment = this.calculatePatternAlignment(approach, pattern);
318
+ if (alignment >= 0.3 && alignment < 0.7) {
319
+ // Partial alignment suggests potential outlier
320
+ return true;
321
+ }
322
+ }
323
+ return false;
324
+ }
325
+ /**
326
+ * Suggest patterns to follow
327
+ */
328
+ suggestPatterns(approach, patterns) {
329
+ const suggestions = [];
330
+ // Find high-confidence patterns that could apply
331
+ for (const pattern of patterns) {
332
+ if (pattern.confidence >= 0.8 && pattern.status === 'approved') {
333
+ const alignment = this.calculatePatternAlignment(approach, pattern);
334
+ if (alignment < 0.5) {
335
+ suggestions.push(`Consider following "${pattern.name}" pattern`);
336
+ }
337
+ }
338
+ }
339
+ return suggestions.slice(0, 3);
340
+ }
341
+ // ==========================================================================
342
+ // Default Metrics
343
+ // ==========================================================================
344
+ /**
345
+ * Get default metrics when pattern service is not available
346
+ */
347
+ getDefaultMetrics(_approach) {
348
+ return {
349
+ alignmentScore: 50, // Neutral
350
+ alignedPatterns: [],
351
+ conflictingPatterns: [],
352
+ createsNewPattern: true,
353
+ wouldBeOutlier: false,
354
+ suggestedPatterns: [],
355
+ };
356
+ }
357
+ }
358
+ // ============================================================================
359
+ // Factory Function
360
+ // ============================================================================
361
+ /**
362
+ * Create a pattern alignment scorer
363
+ */
364
+ export function createPatternAlignmentScorer(config) {
365
+ return new PatternAlignmentScorer(config);
366
+ }
367
+ //# sourceMappingURL=pattern-alignment-scorer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pattern-alignment-scorer.js","sourceRoot":"","sources":["../../../src/simulation/scorers/pattern-alignment-scorer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,63 @@
1
+ /**
2
+ * Security Scorer
3
+ *
4
+ * Calculates security metrics for an approach using reachability analysis:
5
+ * - Security risk score
6
+ * - Data access implications
7
+ * - Auth implications
8
+ * - Security warnings
9
+ *
10
+ * @module simulation/scorers/security-scorer
11
+ */
12
+ import type { CallGraph } from '../../call-graph/types.js';
13
+ import type { SimulationApproach, SecurityMetrics } from '../types.js';
14
+ export interface SecurityScorerConfig {
15
+ projectRoot: string;
16
+ callGraph?: CallGraph | undefined;
17
+ maxDepth?: number | undefined;
18
+ }
19
+ /**
20
+ * Scores the security implications of an approach
21
+ */
22
+ export declare class SecurityScorer {
23
+ private readonly config;
24
+ private reachabilityEngine;
25
+ constructor(config: SecurityScorerConfig);
26
+ /**
27
+ * Calculate security metrics for an approach
28
+ */
29
+ score(approach: SimulationApproach): Promise<SecurityMetrics>;
30
+ /**
31
+ * Analyze data access implications of the approach
32
+ */
33
+ private analyzeDataAccess;
34
+ /**
35
+ * Get function IDs in a file
36
+ */
37
+ private getFunctionsInFile;
38
+ /**
39
+ * Classify sensitivity of data access
40
+ */
41
+ private classifySensitivity;
42
+ /**
43
+ * Analyze authentication/authorization implications
44
+ */
45
+ private analyzeAuthImplications;
46
+ /**
47
+ * Generate security warnings
48
+ */
49
+ private generateWarnings;
50
+ /**
51
+ * Calculate overall security risk score (0-100)
52
+ */
53
+ private calculateSecurityRisk;
54
+ /**
55
+ * Estimate security when call graph is not available
56
+ */
57
+ private estimateSecurity;
58
+ }
59
+ /**
60
+ * Create a security scorer
61
+ */
62
+ export declare function createSecurityScorer(config: SecurityScorerConfig): SecurityScorer;
63
+ //# sourceMappingURL=security-scorer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"security-scorer.d.ts","sourceRoot":"","sources":["../../../src/simulation/scorers/security-scorer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAE3D,OAAO,KAAK,EACV,kBAAkB,EAClB,eAAe,EAGhB,MAAM,aAAa,CAAC;AAMrB,MAAM,WAAW,oBAAoB;IACnC,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;IAClC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC/B;AAMD;;GAEG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAuB;IAC9C,OAAO,CAAC,kBAAkB,CAAmC;gBAEjD,MAAM,EAAE,oBAAoB;IAOxC;;OAEG;IACG,KAAK,CAAC,QAAQ,EAAE,kBAAkB,GAAG,OAAO,CAAC,eAAe,CAAC;IAkCnE;;OAEG;IACH,OAAO,CAAC,iBAAiB;IA+CzB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAY1B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IA0B3B;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAqC/B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAyFxB;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAqD7B;;OAEG;IACH,OAAO,CAAC,gBAAgB;CAmDzB;AAMD;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,oBAAoB,GAAG,cAAc,CAEjF"}