driftdetect-core 0.5.0 → 0.6.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 (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,311 @@
1
+ /**
2
+ * WPF Call Graph Adapter
3
+ *
4
+ * Integrates WPF-specific nodes into the existing call graph.
5
+ * Creates edges between XAML bindings, ViewModels, and data access.
6
+ */
7
+ // ============================================================================
8
+ // WPF Call Graph Adapter
9
+ // ============================================================================
10
+ export class WpfCallGraphAdapter {
11
+ nodes = new Map();
12
+ edges = [];
13
+ /**
14
+ * Build WPF call graph from analysis results
15
+ */
16
+ build(xamlFiles, viewModels, links, dataContexts) {
17
+ // Clear previous data
18
+ this.nodes.clear();
19
+ this.edges = [];
20
+ // Add ViewModel nodes
21
+ for (const vm of viewModels.values()) {
22
+ this.addViewModelNodes(vm);
23
+ }
24
+ // Add XAML nodes
25
+ for (const [filePath, xaml] of xamlFiles) {
26
+ this.addXamlNodes(filePath, xaml);
27
+ }
28
+ // Add binding edges from links
29
+ for (const link of links) {
30
+ this.addBindingEdge(link);
31
+ }
32
+ // Add DataContext inheritance edges
33
+ for (const dc of dataContexts) {
34
+ this.addDataContextEdge(dc);
35
+ }
36
+ return {
37
+ nodes: Array.from(this.nodes.values()),
38
+ edges: this.edges,
39
+ stats: this.calculateStats(),
40
+ };
41
+ }
42
+ /**
43
+ * Add ViewModel nodes
44
+ */
45
+ addViewModelNodes(vm) {
46
+ // Add property nodes
47
+ for (const prop of vm.properties) {
48
+ const nodeId = `csharp:${vm.className}:${prop.name}`;
49
+ this.nodes.set(nodeId, {
50
+ id: nodeId,
51
+ type: 'viewmodel-property',
52
+ name: prop.name,
53
+ file: vm.filePath,
54
+ line: prop.location.line,
55
+ metadata: {
56
+ propertyType: prop.type,
57
+ notifiesChange: prop.raisesPropertyChanged,
58
+ },
59
+ });
60
+ }
61
+ // Add command nodes
62
+ for (const cmd of vm.commands) {
63
+ const nodeId = `csharp:${vm.className}:${cmd.name}`;
64
+ const metadata = {};
65
+ if (cmd.executeMethod !== undefined) {
66
+ metadata['executeMethod'] = cmd.executeMethod;
67
+ }
68
+ if (cmd.canExecuteMethod !== undefined) {
69
+ metadata['canExecuteMethod'] = cmd.canExecuteMethod;
70
+ }
71
+ this.nodes.set(nodeId, {
72
+ id: nodeId,
73
+ type: 'viewmodel-command',
74
+ name: cmd.name,
75
+ file: vm.filePath,
76
+ line: cmd.location.line,
77
+ metadata,
78
+ });
79
+ // Add edge to execute method if known
80
+ if (cmd.executeMethod) {
81
+ const executeNodeId = `csharp:${vm.className}:${cmd.executeMethod}`;
82
+ this.edges.push({
83
+ source: nodeId,
84
+ target: executeNodeId,
85
+ type: 'invokes-command',
86
+ confidence: 0.95,
87
+ });
88
+ }
89
+ }
90
+ }
91
+ /**
92
+ * Add XAML nodes
93
+ */
94
+ addXamlNodes(filePath, xaml) {
95
+ const xClass = xaml.xClass ?? filePath;
96
+ // Add binding nodes
97
+ for (const binding of xaml.bindings) {
98
+ const nodeId = `xaml:${xClass}:${binding.elementName}:${binding.property}`;
99
+ this.nodes.set(nodeId, {
100
+ id: nodeId,
101
+ type: 'xaml-binding',
102
+ name: `${binding.elementName}.${binding.property}`,
103
+ file: filePath,
104
+ line: binding.location.line,
105
+ metadata: {
106
+ bindingPath: binding.parsed.path,
107
+ bindingMode: binding.parsed.mode,
108
+ },
109
+ });
110
+ }
111
+ // Add command nodes
112
+ for (const command of xaml.commands) {
113
+ const nodeId = `xaml:${xClass}:${command.elementName}:Command`;
114
+ this.nodes.set(nodeId, {
115
+ id: nodeId,
116
+ type: 'xaml-command',
117
+ name: `${command.elementName}.Command`,
118
+ file: filePath,
119
+ line: command.location.line,
120
+ metadata: {
121
+ bindingPath: command.binding,
122
+ },
123
+ });
124
+ }
125
+ }
126
+ /**
127
+ * Add binding edge from link
128
+ */
129
+ addBindingEdge(link) {
130
+ const sourceId = `xaml:${link.xamlFile}:${link.xamlElement}:${link.bindingPath}`;
131
+ const targetId = `csharp:${link.viewModelClass}:${link.viewModelProperty}`;
132
+ // Ensure nodes exist
133
+ if (!this.nodes.has(sourceId)) {
134
+ this.nodes.set(sourceId, {
135
+ id: sourceId,
136
+ type: 'xaml-binding',
137
+ name: `${link.xamlElement}.${link.bindingPath}`,
138
+ file: link.xamlFile,
139
+ line: link.locations.xaml.line,
140
+ metadata: {
141
+ bindingPath: link.bindingPath,
142
+ },
143
+ });
144
+ }
145
+ this.edges.push({
146
+ source: sourceId,
147
+ target: targetId,
148
+ type: 'binds-to',
149
+ confidence: link.confidence,
150
+ });
151
+ }
152
+ /**
153
+ * Add DataContext inheritance edge
154
+ */
155
+ addDataContextEdge(dc) {
156
+ if (!dc.resolvedType)
157
+ return;
158
+ const sourceId = `xaml:${dc.xamlFile}:root`;
159
+ const targetId = `csharp:${dc.resolvedType}`;
160
+ // Add root element node if not exists
161
+ if (!this.nodes.has(sourceId)) {
162
+ this.nodes.set(sourceId, {
163
+ id: sourceId,
164
+ type: 'xaml-element',
165
+ name: dc.xamlFile,
166
+ file: dc.xamlFile,
167
+ line: 1,
168
+ metadata: {},
169
+ });
170
+ }
171
+ this.edges.push({
172
+ source: sourceId,
173
+ target: targetId,
174
+ type: 'inherits-context',
175
+ confidence: dc.confidence === 'high' ? 0.95 : dc.confidence === 'medium' ? 0.7 : 0.4,
176
+ });
177
+ }
178
+ /**
179
+ * Get node by ID
180
+ */
181
+ getNode(id) {
182
+ return this.nodes.get(id);
183
+ }
184
+ /**
185
+ * Get edges from a node
186
+ */
187
+ getOutgoingEdges(nodeId) {
188
+ return this.edges.filter(e => e.source === nodeId);
189
+ }
190
+ /**
191
+ * Get edges to a node
192
+ */
193
+ getIncomingEdges(nodeId) {
194
+ return this.edges.filter(e => e.target === nodeId);
195
+ }
196
+ /**
197
+ * Find path between two nodes
198
+ */
199
+ findPath(sourceId, targetId, maxDepth = 10) {
200
+ const visited = new Set();
201
+ const queue = [{ nodeId: sourceId, path: [sourceId] }];
202
+ while (queue.length > 0) {
203
+ const current = queue.shift();
204
+ if (current.nodeId === targetId) {
205
+ return current.path;
206
+ }
207
+ if (current.path.length >= maxDepth) {
208
+ continue;
209
+ }
210
+ if (visited.has(current.nodeId)) {
211
+ continue;
212
+ }
213
+ visited.add(current.nodeId);
214
+ const outgoing = this.getOutgoingEdges(current.nodeId);
215
+ for (const edge of outgoing) {
216
+ if (!visited.has(edge.target)) {
217
+ queue.push({
218
+ nodeId: edge.target,
219
+ path: [...current.path, edge.target],
220
+ });
221
+ }
222
+ }
223
+ }
224
+ return null;
225
+ }
226
+ /**
227
+ * Get all nodes reachable from a starting node
228
+ */
229
+ getReachableNodes(startId, maxDepth = 10) {
230
+ const visited = new Set();
231
+ const queue = [{ nodeId: startId, depth: 0 }];
232
+ const reachable = [];
233
+ while (queue.length > 0) {
234
+ const current = queue.shift();
235
+ if (visited.has(current.nodeId) || current.depth > maxDepth) {
236
+ continue;
237
+ }
238
+ visited.add(current.nodeId);
239
+ const node = this.nodes.get(current.nodeId);
240
+ if (node) {
241
+ reachable.push(node);
242
+ }
243
+ const outgoing = this.getOutgoingEdges(current.nodeId);
244
+ for (const edge of outgoing) {
245
+ if (!visited.has(edge.target)) {
246
+ queue.push({
247
+ nodeId: edge.target,
248
+ depth: current.depth + 1,
249
+ });
250
+ }
251
+ }
252
+ }
253
+ return reachable;
254
+ }
255
+ /**
256
+ * Calculate statistics
257
+ */
258
+ calculateStats() {
259
+ const nodesByType = {
260
+ 'xaml-element': 0,
261
+ 'xaml-binding': 0,
262
+ 'xaml-command': 0,
263
+ 'viewmodel-property': 0,
264
+ 'viewmodel-command': 0,
265
+ 'dependency-property': 0,
266
+ 'value-converter': 0,
267
+ 'code-behind-handler': 0,
268
+ };
269
+ const edgesByType = {};
270
+ for (const node of this.nodes.values()) {
271
+ nodesByType[node.type]++;
272
+ }
273
+ for (const edge of this.edges) {
274
+ edgesByType[edge.type] = (edgesByType[edge.type] ?? 0) + 1;
275
+ }
276
+ return {
277
+ totalNodes: this.nodes.size,
278
+ totalEdges: this.edges.length,
279
+ nodesByType,
280
+ edgesByType,
281
+ };
282
+ }
283
+ /**
284
+ * Export to JSON format compatible with existing call graph
285
+ */
286
+ exportToJson() {
287
+ return {
288
+ nodes: Array.from(this.nodes.values()).map(node => ({
289
+ id: node.id,
290
+ type: node.type,
291
+ name: node.name,
292
+ file: node.file,
293
+ line: node.line,
294
+ ...node.metadata,
295
+ })),
296
+ edges: this.edges.map(edge => ({
297
+ source: edge.source,
298
+ target: edge.target,
299
+ type: edge.type,
300
+ confidence: edge.confidence,
301
+ })),
302
+ };
303
+ }
304
+ }
305
+ /**
306
+ * Factory function
307
+ */
308
+ export function createWpfCallGraphAdapter() {
309
+ return new WpfCallGraphAdapter();
310
+ }
311
+ //# sourceMappingURL=wpf-callgraph-adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wpf-callgraph-adapter.js","sourceRoot":"","sources":["../../../src/wpf/integration/wpf-callgraph-adapter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,129 @@
1
+ /**
2
+ * WPF Data Flow Tracer
3
+ *
4
+ * Traces data flow from UI elements through ViewModels to data access.
5
+ * Identifies sensitive data paths and potential security concerns.
6
+ */
7
+ import type { XamlExtractionResult, ViewModelAnalysis, ViewModelLink } from '../types.js';
8
+ export interface DataFlowTrace {
9
+ /** Starting element */
10
+ element: string;
11
+ /** Flow steps */
12
+ steps: DataFlowStep[];
13
+ /** Reaches database */
14
+ reachesDatabase: boolean;
15
+ /** Sensitive data accessed */
16
+ sensitiveDataAccessed: string[];
17
+ /** Total depth */
18
+ depth: number;
19
+ /** Confidence score */
20
+ confidence: number;
21
+ }
22
+ export interface DataFlowStep {
23
+ /** Step type */
24
+ type: DataFlowStepType;
25
+ /** Location description */
26
+ location: string;
27
+ /** File path */
28
+ file: string;
29
+ /** Line number */
30
+ line: number;
31
+ /** Additional details */
32
+ details?: DataFlowStepDetails | undefined;
33
+ }
34
+ export type DataFlowStepType = 'xaml-element' | 'binding' | 'viewmodel-property' | 'viewmodel-command' | 'method-call' | 'service-call' | 'ef-query' | 'database-table';
35
+ export interface DataFlowStepDetails {
36
+ /** Property or method name */
37
+ name?: string | undefined;
38
+ /** Type information */
39
+ type?: string | undefined;
40
+ /** Table name for database steps */
41
+ table?: string | undefined;
42
+ /** Binding path */
43
+ bindingPath?: string | undefined;
44
+ /** Command name */
45
+ commandName?: string | undefined;
46
+ }
47
+ export interface DataFlowAnalysisResult {
48
+ /** All traced flows */
49
+ flows: DataFlowTrace[];
50
+ /** Elements with database access */
51
+ elementsWithDbAccess: string[];
52
+ /** Sensitive data summary */
53
+ sensitiveDataSummary: SensitiveDataSummary;
54
+ /** Statistics */
55
+ stats: DataFlowStats;
56
+ }
57
+ export interface SensitiveDataSummary {
58
+ /** Fields accessed */
59
+ fields: string[];
60
+ /** Tables accessed */
61
+ tables: string[];
62
+ /** Entry points */
63
+ entryPoints: string[];
64
+ }
65
+ export interface DataFlowStats {
66
+ /** Total elements traced */
67
+ totalElements: number;
68
+ /** Elements reaching database */
69
+ reachingDatabase: number;
70
+ /** Average flow depth */
71
+ averageDepth: number;
72
+ /** Max flow depth */
73
+ maxDepth: number;
74
+ }
75
+ export declare class WpfDataFlowTracer {
76
+ private xamlFiles;
77
+ private viewModels;
78
+ private links;
79
+ private csharpContents;
80
+ /**
81
+ * Initialize with analysis data
82
+ */
83
+ initialize(xamlFiles: Map<string, XamlExtractionResult>, viewModels: Map<string, ViewModelAnalysis>, links: ViewModelLink[], csharpContents?: Map<string, string>): void;
84
+ /**
85
+ * Trace data flow from a specific element
86
+ */
87
+ trace(elementName: string): DataFlowTrace;
88
+ /**
89
+ * Trace all elements in the project
90
+ */
91
+ traceAll(): DataFlowAnalysisResult;
92
+ /**
93
+ * Find element in XAML files
94
+ */
95
+ private findElement;
96
+ /**
97
+ * Find binding for an element
98
+ */
99
+ private findBindingForElement;
100
+ /**
101
+ * Find command for an element
102
+ */
103
+ private findCommandForElement;
104
+ /**
105
+ * Trace flow through ViewModel
106
+ */
107
+ private traceViewModelFlow;
108
+ /**
109
+ * Trace command execution flow
110
+ */
111
+ private traceCommandFlow;
112
+ /**
113
+ * Check for sensitive data in a name
114
+ */
115
+ private checkSensitiveData;
116
+ /**
117
+ * Collect all element names from XAML
118
+ */
119
+ private collectAllElements;
120
+ /**
121
+ * Calculate confidence score for a trace
122
+ */
123
+ private calculateConfidence;
124
+ }
125
+ /**
126
+ * Factory function
127
+ */
128
+ export declare function createWpfDataFlowTracer(): WpfDataFlowTracer;
129
+ //# sourceMappingURL=wpf-data-flow-tracer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wpf-data-flow-tracer.d.ts","sourceRoot":"","sources":["../../../src/wpf/integration/wpf-data-flow-tracer.ts"],"names":[],"mappings":"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"}