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,444 @@
1
+ /**
2
+ * XAML Hybrid Extractor
3
+ *
4
+ * Combines XML DOM parsing (primary) with regex fallback for enterprise-grade
5
+ * XAML extraction. Follows Drift's hybrid extraction pattern.
6
+ */
7
+ import { XamlRegexExtractor, XAML_REGEX_PATTERNS } from './regex/xaml-regex.js';
8
+ const DEFAULT_CONFIG = {
9
+ enableDomParsing: true,
10
+ enableRegexFallback: true,
11
+ minConfidenceThreshold: 0.8,
12
+ };
13
+ // ============================================================================
14
+ // XAML Hybrid Extractor
15
+ // ============================================================================
16
+ export class XamlHybridExtractor {
17
+ config;
18
+ regexExtractor;
19
+ constructor(config) {
20
+ this.config = { ...DEFAULT_CONFIG, ...config };
21
+ this.regexExtractor = new XamlRegexExtractor();
22
+ }
23
+ /**
24
+ * Check if this extractor can handle a file
25
+ */
26
+ canHandle(filePath) {
27
+ return filePath.endsWith('.xaml');
28
+ }
29
+ /**
30
+ * Extract XAML information with hybrid approach
31
+ */
32
+ async extract(filePath, content) {
33
+ const startTime = performance.now();
34
+ // Try DOM-based extraction first
35
+ if (this.config.enableDomParsing) {
36
+ try {
37
+ const domResult = await this.extractWithDom(content, filePath);
38
+ // If DOM extraction succeeded with good confidence, return it
39
+ if (domResult.confidence >= this.config.minConfidenceThreshold) {
40
+ domResult.method = 'ast';
41
+ return domResult;
42
+ }
43
+ // Supplement with regex if confidence is low
44
+ if (this.config.enableRegexFallback) {
45
+ const regexResult = this.regexExtractor.extract(content, filePath);
46
+ return this.mergeResults(domResult, regexResult, startTime);
47
+ }
48
+ return domResult;
49
+ }
50
+ catch (error) {
51
+ // DOM parsing failed, fall back to regex
52
+ if (this.config.enableRegexFallback) {
53
+ const result = this.regexExtractor.extract(content, filePath);
54
+ result.errors.push(`DOM parsing failed: ${error instanceof Error ? error.message : 'Unknown error'}`);
55
+ return result;
56
+ }
57
+ // No fallback, return error result
58
+ return this.createErrorResult(filePath, error, startTime);
59
+ }
60
+ }
61
+ // DOM disabled, use regex only
62
+ if (this.config.enableRegexFallback) {
63
+ return this.regexExtractor.extract(content, filePath);
64
+ }
65
+ // Nothing enabled
66
+ return this.createEmptyResult(filePath, startTime);
67
+ }
68
+ /**
69
+ * Extract using XML DOM parsing
70
+ */
71
+ async extractWithDom(content, filePath) {
72
+ // Simple XML parsing without external dependencies
73
+ // For production, consider using fast-xml-parser or similar
74
+ const result = this.parseXamlSimple(content, filePath);
75
+ return {
76
+ xClass: result.xClass,
77
+ dataContextType: result.dataContextType,
78
+ bindings: result.bindings,
79
+ commands: result.commands,
80
+ resources: result.resources,
81
+ confidence: result.confidence,
82
+ method: 'ast',
83
+ errors: result.errors,
84
+ };
85
+ }
86
+ /**
87
+ * Simple XAML parser using regex-based XML parsing
88
+ * This is a lightweight alternative to full XML DOM parsing
89
+ */
90
+ parseXamlSimple(content, filePath) {
91
+ const bindings = [];
92
+ const commands = [];
93
+ const resources = [];
94
+ // Extract x:Class
95
+ const xClassMatch = content.match(XAML_REGEX_PATTERNS.xClass);
96
+ const xClass = xClassMatch?.[1] ?? null;
97
+ // Extract DataContext type
98
+ let dataContextType = null;
99
+ // Try design-time DataContext first
100
+ const designDcMatch = content.match(/d:DataContext\s*=\s*["']\{d:DesignInstance\s+(?:Type\s*=\s*)?([^,}"']+)/);
101
+ if (designDcMatch?.[1]) {
102
+ dataContextType = designDcMatch[1].trim();
103
+ }
104
+ // Parse elements and extract bindings
105
+ this.parseElements(content, filePath, bindings, commands, resources);
106
+ // Calculate confidence based on extraction success
107
+ const confidence = this.calculateConfidence(content, bindings, commands, []);
108
+ return {
109
+ xClass,
110
+ dataContextType,
111
+ bindings,
112
+ commands,
113
+ resources,
114
+ confidence,
115
+ method: 'ast',
116
+ errors: [],
117
+ };
118
+ }
119
+ /**
120
+ * Parse XAML elements and extract bindings/commands
121
+ */
122
+ parseElements(content, filePath, bindings, commands, resources) {
123
+ // Match elements with attributes
124
+ const elementPattern = /<(\w+)(?:\s+[^>]*?)>/g;
125
+ let elementMatch;
126
+ while ((elementMatch = elementPattern.exec(content)) !== null) {
127
+ const elementType = elementMatch[1] ?? '';
128
+ const elementContent = elementMatch[0];
129
+ const elementLine = this.getLineNumber(content, elementMatch.index);
130
+ // Extract bindings from this element
131
+ this.extractBindingsFromElement(elementType, elementContent, filePath, elementLine, bindings);
132
+ // Extract commands from this element
133
+ this.extractCommandsFromElement(elementType, elementContent, filePath, elementLine, commands);
134
+ }
135
+ // Extract resources
136
+ this.extractResources(content, filePath, resources);
137
+ }
138
+ /**
139
+ * Extract bindings from a single element
140
+ */
141
+ extractBindingsFromElement(elementType, elementContent, filePath, elementLine, bindings) {
142
+ // Match attribute bindings
143
+ const attrPattern = /(\w+)\s*=\s*["']\{Binding\s+([^}]*)\}["']/g;
144
+ let attrMatch;
145
+ while ((attrMatch = attrPattern.exec(elementContent)) !== null) {
146
+ const property = attrMatch[1] ?? '';
147
+ const bindingExpr = attrMatch[2] ?? '';
148
+ // Skip Command properties (handled separately)
149
+ if (property === 'Command' || property === 'CommandParameter') {
150
+ continue;
151
+ }
152
+ const parsed = this.parseBinding(bindingExpr, property, filePath, elementLine);
153
+ bindings.push({
154
+ elementName: elementType,
155
+ elementType,
156
+ property,
157
+ bindingExpression: `{Binding ${bindingExpr}}`,
158
+ parsed,
159
+ location: { file: filePath, line: elementLine },
160
+ });
161
+ }
162
+ // Also match x:Bind expressions
163
+ const xBindPattern = /(\w+)\s*=\s*["']\{x:Bind\s+([^}]*)\}["']/g;
164
+ while ((attrMatch = xBindPattern.exec(elementContent)) !== null) {
165
+ const property = attrMatch[1] ?? '';
166
+ const bindingExpr = attrMatch[2] ?? '';
167
+ const parsed = this.parseXBind(bindingExpr, property, filePath, elementLine);
168
+ bindings.push({
169
+ elementName: elementType,
170
+ elementType,
171
+ property,
172
+ bindingExpression: `{x:Bind ${bindingExpr}}`,
173
+ parsed,
174
+ location: { file: filePath, line: elementLine },
175
+ });
176
+ }
177
+ }
178
+ /**
179
+ * Extract commands from a single element
180
+ */
181
+ extractCommandsFromElement(elementType, elementContent, filePath, elementLine, commands) {
182
+ // Match Command binding
183
+ const commandMatch = elementContent.match(/Command\s*=\s*["']\{Binding\s+([^}]*)\}["']/);
184
+ if (commandMatch?.[1]) {
185
+ const bindingExpr = commandMatch[1];
186
+ const pathMatch = bindingExpr.match(/(?:Path\s*=\s*)?([^,}\s]+)/);
187
+ const binding = pathMatch?.[1] ?? bindingExpr;
188
+ // Check for CommandParameter
189
+ let parameter;
190
+ const paramMatch = elementContent.match(/CommandParameter\s*=\s*["']\{Binding\s+([^}]*)\}["']/);
191
+ if (paramMatch?.[1]) {
192
+ const paramPath = paramMatch[1].match(/(?:Path\s*=\s*)?([^,}\s]+)/);
193
+ parameter = paramPath?.[1];
194
+ }
195
+ commands.push({
196
+ elementName: elementType,
197
+ binding,
198
+ parameter,
199
+ raw: `{Binding ${bindingExpr}}`,
200
+ location: { file: filePath, line: elementLine },
201
+ });
202
+ }
203
+ }
204
+ /**
205
+ * Parse a Binding expression
206
+ */
207
+ parseBinding(expr, property, filePath, line) {
208
+ // Extract path
209
+ let path = '';
210
+ const pathMatch = expr.match(/(?:Path\s*=\s*)?([^,}\s]+)/);
211
+ if (pathMatch?.[1] && !pathMatch[1].includes('=')) {
212
+ path = pathMatch[1];
213
+ }
214
+ // Extract mode
215
+ let mode = 'Default';
216
+ const modeMatch = expr.match(/Mode\s*=\s*(\w+)/);
217
+ if (modeMatch?.[1]) {
218
+ mode = this.parseMode(modeMatch[1]);
219
+ }
220
+ // Extract converter
221
+ let converter;
222
+ const converterMatch = expr.match(/Converter\s*=\s*\{StaticResource\s+([^}]+)\}/);
223
+ if (converterMatch?.[1]) {
224
+ converter = converterMatch[1].trim();
225
+ }
226
+ // Extract source
227
+ const { sourceType, sourceValue } = this.extractSource(expr);
228
+ // Extract update trigger
229
+ let updateSourceTrigger = 'Default';
230
+ const triggerMatch = expr.match(/UpdateSourceTrigger\s*=\s*(\w+)/);
231
+ if (triggerMatch?.[1]) {
232
+ updateSourceTrigger = this.parseTrigger(triggerMatch[1]);
233
+ }
234
+ return {
235
+ property,
236
+ path,
237
+ mode,
238
+ converter,
239
+ sourceType,
240
+ sourceValue,
241
+ updateSourceTrigger,
242
+ raw: `{Binding ${expr}}`,
243
+ location: { file: filePath, line },
244
+ };
245
+ }
246
+ /**
247
+ * Parse an x:Bind expression
248
+ */
249
+ parseXBind(expr, property, filePath, line) {
250
+ // x:Bind path is the first part
251
+ const parts = expr.split(',').map(p => p.trim());
252
+ const path = parts[0] ?? '';
253
+ // Extract mode
254
+ let mode = 'OneTime'; // x:Bind defaults to OneTime
255
+ const modeMatch = expr.match(/Mode\s*=\s*(\w+)/);
256
+ if (modeMatch?.[1]) {
257
+ mode = this.parseMode(modeMatch[1]);
258
+ }
259
+ return {
260
+ property,
261
+ path,
262
+ mode,
263
+ sourceType: 'DataContext',
264
+ raw: `{x:Bind ${expr}}`,
265
+ location: { file: filePath, line },
266
+ };
267
+ }
268
+ /**
269
+ * Extract binding source type and value
270
+ */
271
+ extractSource(expr) {
272
+ // RelativeSource
273
+ const relativeMatch = expr.match(/RelativeSource\s*=\s*\{RelativeSource\s+([^}]+)\}/);
274
+ if (relativeMatch?.[1]) {
275
+ return { sourceType: 'RelativeSource', sourceValue: relativeMatch[1].trim() };
276
+ }
277
+ // ElementName
278
+ const elementMatch = expr.match(/ElementName\s*=\s*(\w+)/);
279
+ if (elementMatch?.[1]) {
280
+ return { sourceType: 'ElementName', sourceValue: elementMatch[1] };
281
+ }
282
+ // Source={StaticResource}
283
+ const staticMatch = expr.match(/Source\s*=\s*\{StaticResource\s+([^}]+)\}/);
284
+ if (staticMatch?.[1]) {
285
+ return { sourceType: 'StaticResource', sourceValue: staticMatch[1].trim() };
286
+ }
287
+ return { sourceType: 'DataContext' };
288
+ }
289
+ /**
290
+ * Extract resources from XAML
291
+ */
292
+ extractResources(content, filePath, resources) {
293
+ // Styles
294
+ const stylePattern = /<Style\s+(?:[^>]*\s+)?x:Key\s*=\s*["']([^"']+)["'](?:\s+TargetType\s*=\s*["']\{?x:Type\s+)?([^}"']+)?/g;
295
+ let match;
296
+ while ((match = stylePattern.exec(content)) !== null) {
297
+ resources.push({
298
+ key: match[1] ?? '',
299
+ type: 'Style',
300
+ targetType: match[2]?.replace(/[}"']/g, '').trim(),
301
+ location: { file: filePath, line: this.getLineNumber(content, match.index) },
302
+ });
303
+ }
304
+ // DataTemplates
305
+ const templatePattern = /<DataTemplate\s+(?:[^>]*\s+)?x:Key\s*=\s*["']([^"']+)["']/g;
306
+ while ((match = templatePattern.exec(content)) !== null) {
307
+ resources.push({
308
+ key: match[1] ?? '',
309
+ type: 'DataTemplate',
310
+ location: { file: filePath, line: this.getLineNumber(content, match.index) },
311
+ });
312
+ }
313
+ // Converters
314
+ const converterPattern = /<(\w+:)?(\w+Converter)\s+x:Key\s*=\s*["']([^"']+)["']/g;
315
+ while ((match = converterPattern.exec(content)) !== null) {
316
+ resources.push({
317
+ key: match[3] ?? '',
318
+ type: 'Converter',
319
+ converterType: match[2],
320
+ location: { file: filePath, line: this.getLineNumber(content, match.index) },
321
+ });
322
+ }
323
+ }
324
+ /**
325
+ * Parse binding mode
326
+ */
327
+ parseMode(mode) {
328
+ switch (mode.toLowerCase()) {
329
+ case 'oneway': return 'OneWay';
330
+ case 'twoway': return 'TwoWay';
331
+ case 'onetime': return 'OneTime';
332
+ case 'onewaytosource': return 'OneWayToSource';
333
+ default: return 'Default';
334
+ }
335
+ }
336
+ /**
337
+ * Parse update source trigger
338
+ */
339
+ parseTrigger(trigger) {
340
+ switch (trigger.toLowerCase()) {
341
+ case 'propertychanged': return 'PropertyChanged';
342
+ case 'lostfocus': return 'LostFocus';
343
+ case 'explicit': return 'Explicit';
344
+ default: return 'Default';
345
+ }
346
+ }
347
+ /**
348
+ * Calculate extraction confidence
349
+ */
350
+ calculateConfidence(content, bindings, commands, errors) {
351
+ if (errors.length > 0) {
352
+ return 0.5;
353
+ }
354
+ // Count expected bindings using simple regex
355
+ const expectedBindings = (content.match(/\{Binding\s+/g) ?? []).length;
356
+ const expectedCommands = (content.match(/Command\s*=\s*["']\{Binding/g) ?? []).length;
357
+ if (expectedBindings === 0 && expectedCommands === 0) {
358
+ return 0.9; // No bindings expected, high confidence
359
+ }
360
+ const bindingCoverage = expectedBindings > 0
361
+ ? Math.min(1, bindings.length / expectedBindings)
362
+ : 1;
363
+ const commandCoverage = expectedCommands > 0
364
+ ? Math.min(1, commands.length / expectedCommands)
365
+ : 1;
366
+ return (bindingCoverage + commandCoverage) / 2 * 0.9;
367
+ }
368
+ /**
369
+ * Merge DOM and regex results
370
+ */
371
+ mergeResults(domResult, regexResult, _startTime) {
372
+ // Use DOM result as base, supplement with regex
373
+ const merged = {
374
+ xClass: domResult.xClass ?? regexResult.xClass,
375
+ dataContextType: domResult.dataContextType ?? regexResult.dataContextType,
376
+ bindings: [...domResult.bindings],
377
+ commands: [...domResult.commands],
378
+ resources: [...domResult.resources],
379
+ confidence: Math.max(domResult.confidence, regexResult.confidence),
380
+ method: 'hybrid',
381
+ errors: [...domResult.errors],
382
+ };
383
+ // Add unique bindings from regex
384
+ const seenBindings = new Set(merged.bindings.map(b => `${b.property}:${b.location.line}`));
385
+ for (const binding of regexResult.bindings) {
386
+ const key = `${binding.property}:${binding.location.line}`;
387
+ if (!seenBindings.has(key)) {
388
+ merged.bindings.push(binding);
389
+ }
390
+ }
391
+ // Add unique commands from regex
392
+ const seenCommands = new Set(merged.commands.map(c => `${c.binding}:${c.location.line}`));
393
+ for (const command of regexResult.commands) {
394
+ const key = `${command.binding}:${command.location.line}`;
395
+ if (!seenCommands.has(key)) {
396
+ merged.commands.push(command);
397
+ }
398
+ }
399
+ return merged;
400
+ }
401
+ /**
402
+ * Create error result
403
+ */
404
+ createErrorResult(_filePath, error, _startTime) {
405
+ return {
406
+ xClass: null,
407
+ dataContextType: null,
408
+ bindings: [],
409
+ commands: [],
410
+ resources: [],
411
+ confidence: 0,
412
+ method: 'ast',
413
+ errors: [error instanceof Error ? error.message : 'Unknown error'],
414
+ };
415
+ }
416
+ /**
417
+ * Create empty result
418
+ */
419
+ createEmptyResult(_filePath, _startTime) {
420
+ return {
421
+ xClass: null,
422
+ dataContextType: null,
423
+ bindings: [],
424
+ commands: [],
425
+ resources: [],
426
+ confidence: 0,
427
+ method: 'ast',
428
+ errors: ['No extraction method enabled'],
429
+ };
430
+ }
431
+ /**
432
+ * Get line number from character index
433
+ */
434
+ getLineNumber(content, index) {
435
+ return content.slice(0, index).split('\n').length;
436
+ }
437
+ }
438
+ /**
439
+ * Factory function
440
+ */
441
+ export function createXamlHybridExtractor(config) {
442
+ return new XamlHybridExtractor(config);
443
+ }
444
+ //# sourceMappingURL=xaml-hybrid-extractor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"xaml-hybrid-extractor.js","sourceRoot":"","sources":["../../../src/wpf/extractors/xaml-hybrid-extractor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * WPF Framework Support
3
+ *
4
+ * Comprehensive support for Windows Presentation Foundation (WPF) desktop applications.
5
+ * Enables full call graph analysis, data flow mapping, and pattern detection across
6
+ * the XAML UI layer and C# code-behind/ViewModels.
7
+ *
8
+ * @module wpf
9
+ */
10
+ export * from './types.js';
11
+ export { XamlHybridExtractor, createXamlHybridExtractor, type XamlExtractorConfig, } from './extractors/xaml-hybrid-extractor.js';
12
+ export { ViewModelHybridExtractor, createViewModelHybridExtractor, type ViewModelExtractorConfig, } from './extractors/viewmodel-hybrid-extractor.js';
13
+ export { CodeBehindLinker, createCodeBehindLinker, type CodeBehindLink, type EventHandlerLink, type NamedElementLink, } from './extractors/code-behind-linker.js';
14
+ export { ResourceDictionaryParser, createResourceDictionaryParser, type ResourceDictionary, type ResourceResolution, type ValueConverterInfo as ResourceConverterInfo, type ConverterUsage as ResourceConverterUsage, } from './extractors/resource-dictionary-parser.js';
15
+ export { DependencyPropertyExtractor, createDependencyPropertyExtractor, DEPENDENCY_PROPERTY_PATTERNS, type DependencyPropertyExtractionResult, } from './extractors/dependency-property-extractor.js';
16
+ export { ValueConverterExtractor, createValueConverterExtractor, VALUE_CONVERTER_PATTERNS, type ValueConverterInfo, type ConverterUsage, type ConverterMethodInfo, type ValueConverterExtractionResult, } from './extractors/value-converter-extractor.js';
17
+ export { BindingErrorDetector, createBindingErrorDetector, type BindingValidationResult, type BindingWarning, type BindingWarningType, type BindingValidationStats, } from './extractors/binding-error-detector.js';
18
+ export { XamlRegexExtractor, XAML_REGEX_PATTERNS, } from './extractors/regex/xaml-regex.js';
19
+ export { ViewModelRegexExtractor, VIEWMODEL_REGEX_PATTERNS, } from './extractors/regex/viewmodel-regex.js';
20
+ export { DataContextResolver, createDataContextResolver, } from './linkers/datacontext-resolver.js';
21
+ export { ViewModelLinker, createViewModelLinker, type LinkingResult, type UnresolvedBinding, type LinkingStats, } from './linkers/viewmodel-linker.js';
22
+ export { WpfCallGraphAdapter, createWpfCallGraphAdapter, type WpfCallGraphIntegration, type WpfCallGraphStats, } from './integration/wpf-callgraph-adapter.js';
23
+ export { WpfDataFlowTracer, createWpfDataFlowTracer, type DataFlowTrace, type DataFlowStep, type DataFlowStepType, type DataFlowStepDetails, type DataFlowAnalysisResult, type SensitiveDataSummary, type DataFlowStats, } from './integration/wpf-data-flow-tracer.js';
24
+ export { WpfAnalyzer, createWpfAnalyzer, type WpfAnalyzerConfig, type WpfAnalysisResult, type WpfAnalysisStats, } from './wpf-analyzer.js';
25
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/wpf/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,cAAc,YAAY,CAAC;AAG3B,OAAO,EACL,mBAAmB,EACnB,yBAAyB,EACzB,KAAK,mBAAmB,GACzB,MAAM,uCAAuC,CAAC;AAE/C,OAAO,EACL,wBAAwB,EACxB,8BAA8B,EAC9B,KAAK,wBAAwB,GAC9B,MAAM,4CAA4C,CAAC;AAEpD,OAAO,EACL,gBAAgB,EAChB,sBAAsB,EACtB,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,GACtB,MAAM,oCAAoC,CAAC;AAE5C,OAAO,EACL,wBAAwB,EACxB,8BAA8B,EAC9B,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,IAAI,qBAAqB,EAChD,KAAK,cAAc,IAAI,sBAAsB,GAC9C,MAAM,4CAA4C,CAAC;AAEpD,OAAO,EACL,2BAA2B,EAC3B,iCAAiC,EACjC,4BAA4B,EAC5B,KAAK,kCAAkC,GACxC,MAAM,+CAA+C,CAAC;AAEvD,OAAO,EACL,uBAAuB,EACvB,6BAA6B,EAC7B,wBAAwB,EACxB,KAAK,kBAAkB,EACvB,KAAK,cAAc,EACnB,KAAK,mBAAmB,EACxB,KAAK,8BAA8B,GACpC,MAAM,2CAA2C,CAAC;AAEnD,OAAO,EACL,oBAAoB,EACpB,0BAA0B,EAC1B,KAAK,uBAAuB,EAC5B,KAAK,cAAc,EACnB,KAAK,kBAAkB,EACvB,KAAK,sBAAsB,GAC5B,MAAM,wCAAwC,CAAC;AAGhD,OAAO,EACL,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EACL,uBAAuB,EACvB,wBAAwB,GACzB,MAAM,uCAAuC,CAAC;AAG/C,OAAO,EACL,mBAAmB,EACnB,yBAAyB,GAC1B,MAAM,mCAAmC,CAAC;AAE3C,OAAO,EACL,eAAe,EACf,qBAAqB,EACrB,KAAK,aAAa,EAClB,KAAK,iBAAiB,EACtB,KAAK,YAAY,GAClB,MAAM,+BAA+B,CAAC;AAGvC,OAAO,EACL,mBAAmB,EACnB,yBAAyB,EACzB,KAAK,uBAAuB,EAC5B,KAAK,iBAAiB,GACvB,MAAM,wCAAwC,CAAC;AAEhD,OAAO,EACL,iBAAiB,EACjB,uBAAuB,EACvB,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,gBAAgB,EACrB,KAAK,mBAAmB,EACxB,KAAK,sBAAsB,EAC3B,KAAK,oBAAoB,EACzB,KAAK,aAAa,GACnB,MAAM,uCAAuC,CAAC;AAG/C,OAAO,EACL,WAAW,EACX,iBAAiB,EACjB,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,GACtB,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * WPF Framework Support
3
+ *
4
+ * Comprehensive support for Windows Presentation Foundation (WPF) desktop applications.
5
+ * Enables full call graph analysis, data flow mapping, and pattern detection across
6
+ * the XAML UI layer and C# code-behind/ViewModels.
7
+ *
8
+ * @module wpf
9
+ */
10
+ // Types
11
+ export * from './types.js';
12
+ // Extractors
13
+ export { XamlHybridExtractor, createXamlHybridExtractor, } from './extractors/xaml-hybrid-extractor.js';
14
+ export { ViewModelHybridExtractor, createViewModelHybridExtractor, } from './extractors/viewmodel-hybrid-extractor.js';
15
+ export { CodeBehindLinker, createCodeBehindLinker, } from './extractors/code-behind-linker.js';
16
+ export { ResourceDictionaryParser, createResourceDictionaryParser, } from './extractors/resource-dictionary-parser.js';
17
+ export { DependencyPropertyExtractor, createDependencyPropertyExtractor, DEPENDENCY_PROPERTY_PATTERNS, } from './extractors/dependency-property-extractor.js';
18
+ export { ValueConverterExtractor, createValueConverterExtractor, VALUE_CONVERTER_PATTERNS, } from './extractors/value-converter-extractor.js';
19
+ export { BindingErrorDetector, createBindingErrorDetector, } from './extractors/binding-error-detector.js';
20
+ // Regex extractors (for direct use or testing)
21
+ export { XamlRegexExtractor, XAML_REGEX_PATTERNS, } from './extractors/regex/xaml-regex.js';
22
+ export { ViewModelRegexExtractor, VIEWMODEL_REGEX_PATTERNS, } from './extractors/regex/viewmodel-regex.js';
23
+ // Linkers
24
+ export { DataContextResolver, createDataContextResolver, } from './linkers/datacontext-resolver.js';
25
+ export { ViewModelLinker, createViewModelLinker, } from './linkers/viewmodel-linker.js';
26
+ // Integration
27
+ export { WpfCallGraphAdapter, createWpfCallGraphAdapter, } from './integration/wpf-callgraph-adapter.js';
28
+ export { WpfDataFlowTracer, createWpfDataFlowTracer, } from './integration/wpf-data-flow-tracer.js';
29
+ // Main analyzer
30
+ export { WpfAnalyzer, createWpfAnalyzer, } from './wpf-analyzer.js';
31
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/wpf/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,QAAQ;AACR,cAAc,YAAY,CAAC;AAE3B,aAAa;AACb,OAAO,EACL,mBAAmB,EACnB,yBAAyB,GAE1B,MAAM,uCAAuC,CAAC;AAE/C,OAAO,EACL,wBAAwB,EACxB,8BAA8B,GAE/B,MAAM,4CAA4C,CAAC;AAEpD,OAAO,EACL,gBAAgB,EAChB,sBAAsB,GAIvB,MAAM,oCAAoC,CAAC;AAE5C,OAAO,EACL,wBAAwB,EACxB,8BAA8B,GAK/B,MAAM,4CAA4C,CAAC;AAEpD,OAAO,EACL,2BAA2B,EAC3B,iCAAiC,EACjC,4BAA4B,GAE7B,MAAM,+CAA+C,CAAC;AAEvD,OAAO,EACL,uBAAuB,EACvB,6BAA6B,EAC7B,wBAAwB,GAKzB,MAAM,2CAA2C,CAAC;AAEnD,OAAO,EACL,oBAAoB,EACpB,0BAA0B,GAK3B,MAAM,wCAAwC,CAAC;AAEhD,+CAA+C;AAC/C,OAAO,EACL,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EACL,uBAAuB,EACvB,wBAAwB,GACzB,MAAM,uCAAuC,CAAC;AAE/C,UAAU;AACV,OAAO,EACL,mBAAmB,EACnB,yBAAyB,GAC1B,MAAM,mCAAmC,CAAC;AAE3C,OAAO,EACL,eAAe,EACf,qBAAqB,GAItB,MAAM,+BAA+B,CAAC;AAEvC,cAAc;AACd,OAAO,EACL,mBAAmB,EACnB,yBAAyB,GAG1B,MAAM,wCAAwC,CAAC;AAEhD,OAAO,EACL,iBAAiB,EACjB,uBAAuB,GAQxB,MAAM,uCAAuC,CAAC;AAE/C,gBAAgB;AAChB,OAAO,EACL,WAAW,EACX,iBAAiB,GAIlB,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,82 @@
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
+ import type { WpfCallGraphNode, WpfCallGraphEdge, WpfNodeType, XamlExtractionResult, ViewModelAnalysis, ViewModelLink, DataContextResolution } from '../types.js';
8
+ export interface WpfCallGraphIntegration {
9
+ /** WPF-specific nodes */
10
+ nodes: WpfCallGraphNode[];
11
+ /** WPF-specific edges */
12
+ edges: WpfCallGraphEdge[];
13
+ /** Statistics */
14
+ stats: WpfCallGraphStats;
15
+ }
16
+ export interface WpfCallGraphStats {
17
+ /** Total nodes added */
18
+ totalNodes: number;
19
+ /** Total edges added */
20
+ totalEdges: number;
21
+ /** Nodes by type */
22
+ nodesByType: Record<WpfNodeType, number>;
23
+ /** Edges by type */
24
+ edgesByType: Record<string, number>;
25
+ }
26
+ export declare class WpfCallGraphAdapter {
27
+ private nodes;
28
+ private edges;
29
+ /**
30
+ * Build WPF call graph from analysis results
31
+ */
32
+ build(xamlFiles: Map<string, XamlExtractionResult>, viewModels: Map<string, ViewModelAnalysis>, links: ViewModelLink[], dataContexts: DataContextResolution[]): WpfCallGraphIntegration;
33
+ /**
34
+ * Add ViewModel nodes
35
+ */
36
+ private addViewModelNodes;
37
+ /**
38
+ * Add XAML nodes
39
+ */
40
+ private addXamlNodes;
41
+ /**
42
+ * Add binding edge from link
43
+ */
44
+ private addBindingEdge;
45
+ /**
46
+ * Add DataContext inheritance edge
47
+ */
48
+ private addDataContextEdge;
49
+ /**
50
+ * Get node by ID
51
+ */
52
+ getNode(id: string): WpfCallGraphNode | undefined;
53
+ /**
54
+ * Get edges from a node
55
+ */
56
+ getOutgoingEdges(nodeId: string): WpfCallGraphEdge[];
57
+ /**
58
+ * Get edges to a node
59
+ */
60
+ getIncomingEdges(nodeId: string): WpfCallGraphEdge[];
61
+ /**
62
+ * Find path between two nodes
63
+ */
64
+ findPath(sourceId: string, targetId: string, maxDepth?: number): string[] | null;
65
+ /**
66
+ * Get all nodes reachable from a starting node
67
+ */
68
+ getReachableNodes(startId: string, maxDepth?: number): WpfCallGraphNode[];
69
+ /**
70
+ * Calculate statistics
71
+ */
72
+ private calculateStats;
73
+ /**
74
+ * Export to JSON format compatible with existing call graph
75
+ */
76
+ exportToJson(): object;
77
+ }
78
+ /**
79
+ * Factory function
80
+ */
81
+ export declare function createWpfCallGraphAdapter(): WpfCallGraphAdapter;
82
+ //# sourceMappingURL=wpf-callgraph-adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wpf-callgraph-adapter.d.ts","sourceRoot":"","sources":["../../../src/wpf/integration/wpf-callgraph-adapter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,gBAAgB,EAChB,gBAAgB,EAChB,WAAW,EACX,oBAAoB,EACpB,iBAAiB,EACjB,aAAa,EACb,qBAAqB,EACtB,MAAM,aAAa,CAAC;AAMrB,MAAM,WAAW,uBAAuB;IACtC,yBAAyB;IACzB,KAAK,EAAE,gBAAgB,EAAE,CAAC;IAC1B,yBAAyB;IACzB,KAAK,EAAE,gBAAgB,EAAE,CAAC;IAC1B,iBAAiB;IACjB,KAAK,EAAE,iBAAiB,CAAC;CAC1B;AAED,MAAM,WAAW,iBAAiB;IAChC,wBAAwB;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,wBAAwB;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,oBAAoB;IACpB,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IACzC,oBAAoB;IACpB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACrC;AAMD,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,KAAK,CAA4C;IACzD,OAAO,CAAC,KAAK,CAA0B;IAEvC;;OAEG;IACH,KAAK,CACH,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,oBAAoB,CAAC,EAC5C,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,EAC1C,KAAK,EAAE,aAAa,EAAE,EACtB,YAAY,EAAE,qBAAqB,EAAE,GACpC,uBAAuB;IAgC1B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAkDzB;;OAEG;IACH,OAAO,CAAC,YAAY;IAmCpB;;OAEG;IACH,OAAO,CAAC,cAAc;IA0BtB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IA0B1B;;OAEG;IACH,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS;IAIjD;;OAEG;IACH,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,gBAAgB,EAAE;IAIpD;;OAEG;IACH,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,gBAAgB,EAAE;IAIpD;;OAEG;IACH,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAW,GAAG,MAAM,EAAE,GAAG,IAAI;IAkCpF;;OAEG;IACH,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAW,GAAG,gBAAgB,EAAE;IAgC7E;;OAEG;IACH,OAAO,CAAC,cAAc;IA8BtB;;OAEG;IACH,YAAY,IAAI,MAAM;CAkBvB;AAED;;GAEG;AACH,wBAAgB,yBAAyB,IAAI,mBAAmB,CAE/D"}