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,353 @@
1
+ /**
2
+ * XAML Regex Extractor
3
+ *
4
+ * Regex-based fallback extractor for XAML files when XML DOM parsing fails.
5
+ * Follows Drift's hybrid extraction pattern: AST first, regex fallback.
6
+ */
7
+ // ============================================================================
8
+ // Regex Patterns
9
+ // ============================================================================
10
+ export const XAML_REGEX_PATTERNS = {
11
+ // x:Class declaration
12
+ xClass: /x:Class\s*=\s*["']([^"']+)["']/,
13
+ // Standard bindings: {Binding Path=Name} or {Binding Name}
14
+ binding: /\{Binding\s+(?:Path\s*=\s*)?["']?([^,}"'\s]+)["']?(?:[^}]*)?\}/g,
15
+ // Binding with full details
16
+ bindingFull: /(\w+)\s*=\s*["']\{Binding\s+([^}]+)\}["']/g,
17
+ // x:Bind expressions (compiled bindings)
18
+ xBind: /\{x:Bind\s+([^,}]+)(?:,\s*Mode\s*=\s*(\w+))?[^}]*\}/g,
19
+ // Command bindings
20
+ command: /Command\s*=\s*["']\{Binding\s+([^}]+)\}["']/g,
21
+ // CommandParameter bindings
22
+ commandParameter: /CommandParameter\s*=\s*["']\{Binding\s+([^}]+)\}["']/g,
23
+ // DataContext assignments
24
+ dataContext: /DataContext\s*=\s*["']\{([^}]+)\}["']/g,
25
+ // Design-time DataContext
26
+ designDataContext: /d:DataContext\s*=\s*["']\{d:DesignInstance\s+(?:Type\s*=\s*)?([^,}"']+)/g,
27
+ // StaticResource references
28
+ staticResource: /\{StaticResource\s+([^}]+)\}/g,
29
+ // DynamicResource references
30
+ dynamicResource: /\{DynamicResource\s+([^}]+)\}/g,
31
+ // x:Name declarations
32
+ xName: /x:Name\s*=\s*["']([^"']+)["']/g,
33
+ // Event handlers in XAML
34
+ eventHandler: /(\w+)\s*=\s*["']([A-Z]\w+_\w+)["']/g,
35
+ // Converter references
36
+ converter: /Converter\s*=\s*\{StaticResource\s+([^}]+)\}/g,
37
+ // ItemsSource bindings
38
+ itemsSource: /ItemsSource\s*=\s*["']\{Binding\s+([^}]+)\}["']/g,
39
+ // SelectedItem bindings
40
+ selectedItem: /SelectedItem\s*=\s*["']\{Binding\s+([^}]+)\}["']/g,
41
+ // Style definitions
42
+ style: /<Style\s+(?:[^>]*\s+)?x:Key\s*=\s*["']([^"']+)["'](?:\s+TargetType\s*=\s*["']\{?x:Type\s+)?([^}"']+)?/g,
43
+ // DataTemplate definitions
44
+ dataTemplate: /<DataTemplate\s+(?:[^>]*\s+)?x:Key\s*=\s*["']([^"']+)["'](?:\s+DataType\s*=\s*["']\{?x:Type\s+)?([^}"']+)?/g,
45
+ // Converter definitions
46
+ converterDef: /<(\w+:)?(\w+Converter)\s+x:Key\s*=\s*["']([^"']+)["']/g,
47
+ // Element with binding (captures element type)
48
+ elementWithBinding: /<(\w+)(?:\s+[^>]*?)(\w+)\s*=\s*["']\{Binding\s+([^}]+)\}["']/g,
49
+ // Mode extraction from binding
50
+ bindingMode: /Mode\s*=\s*(\w+)/,
51
+ // UpdateSourceTrigger extraction
52
+ updateSourceTrigger: /UpdateSourceTrigger\s*=\s*(\w+)/,
53
+ // FallbackValue extraction
54
+ fallbackValue: /FallbackValue\s*=\s*([^,}]+)/,
55
+ // TargetNullValue extraction
56
+ targetNullValue: /TargetNullValue\s*=\s*([^,}]+)/,
57
+ // RelativeSource extraction
58
+ relativeSource: /RelativeSource\s*=\s*\{RelativeSource\s+([^}]+)\}/,
59
+ // ElementName extraction
60
+ elementName: /ElementName\s*=\s*(\w+)/,
61
+ };
62
+ // ============================================================================
63
+ // XAML Regex Extractor
64
+ // ============================================================================
65
+ export class XamlRegexExtractor {
66
+ /**
67
+ * Extract XAML information using regex patterns
68
+ */
69
+ extract(content, filePath) {
70
+ const bindings = [];
71
+ const commands = [];
72
+ const resources = [];
73
+ const errors = [];
74
+ try {
75
+ // Extract x:Class
76
+ const xClassMatch = content.match(XAML_REGEX_PATTERNS.xClass);
77
+ const xClass = xClassMatch ? xClassMatch[1] ?? null : null;
78
+ // Extract DataContext type
79
+ const dataContextType = this.extractDataContextType(content);
80
+ // Extract all bindings
81
+ this.extractBindings(content, filePath, bindings);
82
+ // Extract commands
83
+ this.extractCommands(content, filePath, commands);
84
+ // Extract resources
85
+ this.extractResources(content, filePath, resources);
86
+ return {
87
+ xClass,
88
+ dataContextType,
89
+ bindings,
90
+ commands,
91
+ resources,
92
+ confidence: 0.6, // Regex has lower confidence than AST
93
+ method: 'regex',
94
+ errors,
95
+ };
96
+ }
97
+ catch (error) {
98
+ errors.push(error instanceof Error ? error.message : 'Unknown extraction error');
99
+ return {
100
+ xClass: null,
101
+ dataContextType: null,
102
+ bindings,
103
+ commands,
104
+ resources,
105
+ confidence: 0.3,
106
+ method: 'regex',
107
+ errors,
108
+ };
109
+ }
110
+ }
111
+ /**
112
+ * Extract DataContext type from various sources
113
+ */
114
+ extractDataContextType(content) {
115
+ // Try design-time DataContext first (most reliable)
116
+ const designMatch = XAML_REGEX_PATTERNS.designDataContext.exec(content);
117
+ if (designMatch?.[1]) {
118
+ return designMatch[1].trim();
119
+ }
120
+ // Try explicit DataContext binding
121
+ const dcMatch = XAML_REGEX_PATTERNS.dataContext.exec(content);
122
+ if (dcMatch?.[1]) {
123
+ // Parse the binding to extract type if possible
124
+ const binding = dcMatch[1];
125
+ const sourceMatch = binding.match(/Source\s*=\s*\{StaticResource\s+(\w+)\}/);
126
+ if (sourceMatch?.[1]) {
127
+ return sourceMatch[1];
128
+ }
129
+ }
130
+ return null;
131
+ }
132
+ /**
133
+ * Extract all bindings from XAML content
134
+ */
135
+ extractBindings(content, filePath, bindings) {
136
+ // Reset regex lastIndex
137
+ XAML_REGEX_PATTERNS.elementWithBinding.lastIndex = 0;
138
+ let match;
139
+ while ((match = XAML_REGEX_PATTERNS.elementWithBinding.exec(content)) !== null) {
140
+ const elementType = match[1] ?? 'Unknown';
141
+ const property = match[2] ?? '';
142
+ const bindingExpr = match[3] ?? '';
143
+ const line = this.getLineNumber(content, match.index);
144
+ const parsed = this.parseBindingExpression(bindingExpr, property, filePath, line);
145
+ bindings.push({
146
+ elementName: elementType,
147
+ elementType,
148
+ property,
149
+ bindingExpression: `{Binding ${bindingExpr}}`,
150
+ parsed,
151
+ location: { file: filePath, line },
152
+ });
153
+ }
154
+ // Also extract bindings using simpler pattern for edge cases
155
+ XAML_REGEX_PATTERNS.bindingFull.lastIndex = 0;
156
+ const seen = new Set(bindings.map(b => `${b.property}:${b.location.line}`));
157
+ while ((match = XAML_REGEX_PATTERNS.bindingFull.exec(content)) !== null) {
158
+ const property = match[1] ?? '';
159
+ const bindingExpr = match[2] ?? '';
160
+ const line = this.getLineNumber(content, match.index);
161
+ const key = `${property}:${line}`;
162
+ if (seen.has(key))
163
+ continue;
164
+ seen.add(key);
165
+ const parsed = this.parseBindingExpression(bindingExpr, property, filePath, line);
166
+ bindings.push({
167
+ elementName: 'Unknown',
168
+ elementType: 'Unknown',
169
+ property,
170
+ bindingExpression: `{Binding ${bindingExpr}}`,
171
+ parsed,
172
+ location: { file: filePath, line },
173
+ });
174
+ }
175
+ }
176
+ /**
177
+ * Parse a binding expression into structured data
178
+ */
179
+ parseBindingExpression(expr, property, filePath, line) {
180
+ // Extract path (first part or Path= value)
181
+ let path = '';
182
+ const pathMatch = expr.match(/(?:Path\s*=\s*)?([^,}\s]+)/);
183
+ if (pathMatch?.[1] && !pathMatch[1].includes('=')) {
184
+ path = pathMatch[1];
185
+ }
186
+ // Extract mode
187
+ let mode = 'Default';
188
+ const modeMatch = expr.match(XAML_REGEX_PATTERNS.bindingMode);
189
+ if (modeMatch?.[1]) {
190
+ mode = this.parseBindingMode(modeMatch[1]);
191
+ }
192
+ // Extract converter
193
+ let converter;
194
+ const converterMatch = expr.match(/Converter\s*=\s*\{StaticResource\s+([^}]+)\}/);
195
+ if (converterMatch?.[1]) {
196
+ converter = converterMatch[1].trim();
197
+ }
198
+ // Extract source type
199
+ const { sourceType, sourceValue } = this.extractBindingSource(expr);
200
+ // Extract update trigger
201
+ let updateSourceTrigger = 'Default';
202
+ const triggerMatch = expr.match(XAML_REGEX_PATTERNS.updateSourceTrigger);
203
+ if (triggerMatch?.[1]) {
204
+ updateSourceTrigger = this.parseUpdateTrigger(triggerMatch[1]);
205
+ }
206
+ // Extract fallback value
207
+ let fallbackValue;
208
+ const fallbackMatch = expr.match(XAML_REGEX_PATTERNS.fallbackValue);
209
+ if (fallbackMatch?.[1]) {
210
+ fallbackValue = fallbackMatch[1].trim();
211
+ }
212
+ return {
213
+ property,
214
+ path,
215
+ mode,
216
+ converter,
217
+ sourceType,
218
+ sourceValue,
219
+ updateSourceTrigger,
220
+ fallbackValue,
221
+ raw: `{Binding ${expr}}`,
222
+ location: { file: filePath, line },
223
+ };
224
+ }
225
+ /**
226
+ * Extract binding source type and value
227
+ */
228
+ extractBindingSource(expr) {
229
+ // Check for RelativeSource
230
+ const relativeMatch = expr.match(XAML_REGEX_PATTERNS.relativeSource);
231
+ if (relativeMatch?.[1]) {
232
+ return { sourceType: 'RelativeSource', sourceValue: relativeMatch[1].trim() };
233
+ }
234
+ // Check for ElementName
235
+ const elementMatch = expr.match(XAML_REGEX_PATTERNS.elementName);
236
+ if (elementMatch?.[1]) {
237
+ return { sourceType: 'ElementName', sourceValue: elementMatch[1] };
238
+ }
239
+ // Check for Source={StaticResource}
240
+ const staticMatch = expr.match(/Source\s*=\s*\{StaticResource\s+([^}]+)\}/);
241
+ if (staticMatch?.[1]) {
242
+ return { sourceType: 'StaticResource', sourceValue: staticMatch[1].trim() };
243
+ }
244
+ return { sourceType: 'DataContext' };
245
+ }
246
+ /**
247
+ * Parse binding mode string
248
+ */
249
+ parseBindingMode(mode) {
250
+ switch (mode.toLowerCase()) {
251
+ case 'oneway': return 'OneWay';
252
+ case 'twoway': return 'TwoWay';
253
+ case 'onetime': return 'OneTime';
254
+ case 'onewaytosource': return 'OneWayToSource';
255
+ default: return 'Default';
256
+ }
257
+ }
258
+ /**
259
+ * Parse update source trigger string
260
+ */
261
+ parseUpdateTrigger(trigger) {
262
+ switch (trigger.toLowerCase()) {
263
+ case 'propertychanged': return 'PropertyChanged';
264
+ case 'lostfocus': return 'LostFocus';
265
+ case 'explicit': return 'Explicit';
266
+ default: return 'Default';
267
+ }
268
+ }
269
+ /**
270
+ * Extract commands from XAML content
271
+ */
272
+ extractCommands(content, filePath, commands) {
273
+ XAML_REGEX_PATTERNS.command.lastIndex = 0;
274
+ let match;
275
+ while ((match = XAML_REGEX_PATTERNS.command.exec(content)) !== null) {
276
+ const bindingExpr = match[1] ?? '';
277
+ const line = this.getLineNumber(content, match.index);
278
+ // Extract command path
279
+ const pathMatch = bindingExpr.match(/(?:Path\s*=\s*)?([^,}\s]+)/);
280
+ const binding = pathMatch?.[1] ?? bindingExpr;
281
+ // Look for CommandParameter nearby
282
+ const contextStart = Math.max(0, match.index - 200);
283
+ const contextEnd = Math.min(content.length, match.index + 200);
284
+ const context = content.slice(contextStart, contextEnd);
285
+ let parameter;
286
+ const paramMatch = context.match(/CommandParameter\s*=\s*["']\{Binding\s+([^}]+)\}["']/);
287
+ if (paramMatch?.[1]) {
288
+ const paramPath = paramMatch[1].match(/(?:Path\s*=\s*)?([^,}\s]+)/);
289
+ parameter = paramPath?.[1];
290
+ }
291
+ commands.push({
292
+ elementName: 'Unknown',
293
+ binding,
294
+ parameter,
295
+ raw: `{Binding ${bindingExpr}}`,
296
+ location: { file: filePath, line },
297
+ });
298
+ }
299
+ }
300
+ /**
301
+ * Extract resources from XAML content
302
+ */
303
+ extractResources(content, filePath, resources) {
304
+ // Extract styles
305
+ XAML_REGEX_PATTERNS.style.lastIndex = 0;
306
+ let match;
307
+ while ((match = XAML_REGEX_PATTERNS.style.exec(content)) !== null) {
308
+ const key = match[1] ?? '';
309
+ const targetType = match[2]?.replace(/[}"']/g, '').trim();
310
+ const line = this.getLineNumber(content, match.index);
311
+ resources.push({
312
+ key,
313
+ type: 'Style',
314
+ targetType,
315
+ location: { file: filePath, line },
316
+ });
317
+ }
318
+ // Extract data templates
319
+ XAML_REGEX_PATTERNS.dataTemplate.lastIndex = 0;
320
+ while ((match = XAML_REGEX_PATTERNS.dataTemplate.exec(content)) !== null) {
321
+ const key = match[1] ?? '';
322
+ const targetType = match[2]?.replace(/[}"']/g, '').trim();
323
+ const line = this.getLineNumber(content, match.index);
324
+ resources.push({
325
+ key,
326
+ type: 'DataTemplate',
327
+ targetType,
328
+ location: { file: filePath, line },
329
+ });
330
+ }
331
+ // Extract converters
332
+ XAML_REGEX_PATTERNS.converterDef.lastIndex = 0;
333
+ while ((match = XAML_REGEX_PATTERNS.converterDef.exec(content)) !== null) {
334
+ const converterType = match[2] ?? '';
335
+ const key = match[3] ?? '';
336
+ const line = this.getLineNumber(content, match.index);
337
+ resources.push({
338
+ key,
339
+ type: 'Converter',
340
+ converterType,
341
+ location: { file: filePath, line },
342
+ });
343
+ }
344
+ }
345
+ /**
346
+ * Get line number from character index
347
+ */
348
+ getLineNumber(content, index) {
349
+ const lines = content.slice(0, index).split('\n');
350
+ return lines.length;
351
+ }
352
+ }
353
+ //# sourceMappingURL=xaml-regex.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"xaml-regex.js","sourceRoot":"","sources":["../../../../src/wpf/extractors/regex/xaml-regex.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,103 @@
1
+ /**
2
+ * Resource Dictionary Parser
3
+ *
4
+ * Parses merged resource dictionaries and resolves resource references.
5
+ * Extracts styles, templates, converters, and other resources.
6
+ */
7
+ import type { XamlResource, XamlResourceType, SourceLocation } from '../types.js';
8
+ export interface ResourceDictionary {
9
+ /** File path */
10
+ path: string;
11
+ /** Merged dictionaries (paths) */
12
+ mergedDictionaries: string[];
13
+ /** Resources in this dictionary */
14
+ resources: Map<string, XamlResource>;
15
+ /** Source attribute (for merged dictionaries) */
16
+ source?: string | undefined;
17
+ }
18
+ export interface ResourceResolution {
19
+ /** Resource key */
20
+ key: string;
21
+ /** Resolved resource */
22
+ resource: XamlResource | null;
23
+ /** Resolution path (which dictionaries were searched) */
24
+ searchPath: string[];
25
+ /** Found in dictionary */
26
+ foundIn?: string | undefined;
27
+ }
28
+ export interface ValueConverterInfo {
29
+ /** Resource key */
30
+ resourceKey: string;
31
+ /** C# class name */
32
+ converterClass: string;
33
+ /** Full type name with namespace */
34
+ fullTypeName: string;
35
+ /** File where defined */
36
+ definedIn: string;
37
+ /** Usages in XAML */
38
+ usages: ConverterUsage[];
39
+ /** Source location */
40
+ location: SourceLocation;
41
+ }
42
+ export interface ConverterUsage {
43
+ /** XAML file */
44
+ xamlFile: string;
45
+ /** Binding property */
46
+ property: string;
47
+ /** Line number */
48
+ line: number;
49
+ }
50
+ export declare class ResourceDictionaryParser {
51
+ private dictionaries;
52
+ private converters;
53
+ private namespaces;
54
+ /**
55
+ * Parse a resource dictionary file
56
+ */
57
+ parse(filePath: string, content: string): Promise<ResourceDictionary>;
58
+ /**
59
+ * Parse all resource dictionaries in a directory
60
+ */
61
+ parseAll(rootDir: string): Promise<Map<string, ResourceDictionary>>;
62
+ /**
63
+ * Find resource dictionary files
64
+ */
65
+ private findResourceDictionaries;
66
+ /**
67
+ * Extract namespace declarations
68
+ */
69
+ private extractNamespaces;
70
+ /**
71
+ * Resolve a resource by key
72
+ */
73
+ resolve(key: string, startingDictionary?: string): ResourceResolution;
74
+ /**
75
+ * Get all converters
76
+ */
77
+ getConverters(): ValueConverterInfo[];
78
+ /**
79
+ * Track converter usage
80
+ */
81
+ trackConverterUsage(converterKey: string, xamlFile: string, property: string, line: number): void;
82
+ /**
83
+ * Find converter usages in XAML content
84
+ */
85
+ findConverterUsages(xamlFile: string, content: string): void;
86
+ /**
87
+ * Get all resources of a specific type
88
+ */
89
+ getResourcesByType(type: XamlResourceType): XamlResource[];
90
+ /**
91
+ * Clear all parsed data
92
+ */
93
+ clear(): void;
94
+ /**
95
+ * Get line number from character index
96
+ */
97
+ private getLineNumber;
98
+ }
99
+ /**
100
+ * Factory function
101
+ */
102
+ export declare function createResourceDictionaryParser(): ResourceDictionaryParser;
103
+ //# sourceMappingURL=resource-dictionary-parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resource-dictionary-parser.d.ts","sourceRoot":"","sources":["../../../src/wpf/extractors/resource-dictionary-parser.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAMlF,MAAM,WAAW,kBAAkB;IACjC,gBAAgB;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,kCAAkC;IAClC,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,mCAAmC;IACnC,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IACrC,iDAAiD;IACjD,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC7B;AAED,MAAM,WAAW,kBAAkB;IACjC,mBAAmB;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,wBAAwB;IACxB,QAAQ,EAAE,YAAY,GAAG,IAAI,CAAC;IAC9B,yDAAyD;IACzD,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,0BAA0B;IAC1B,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC9B;AAED,MAAM,WAAW,kBAAkB;IACjC,mBAAmB;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,oBAAoB;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,oCAAoC;IACpC,YAAY,EAAE,MAAM,CAAC;IACrB,yBAAyB;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,qBAAqB;IACrB,MAAM,EAAE,cAAc,EAAE,CAAC;IACzB,sBAAsB;IACtB,QAAQ,EAAE,cAAc,CAAC;CAC1B;AAED,MAAM,WAAW,cAAc;IAC7B,gBAAgB;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,uBAAuB;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,kBAAkB;IAClB,IAAI,EAAE,MAAM,CAAC;CACd;AA0CD,qBAAa,wBAAwB;IACnC,OAAO,CAAC,YAAY,CAA8C;IAClE,OAAO,CAAC,UAAU,CAA8C;IAChE,OAAO,CAAC,UAAU,CAAkC;IAEpD;;OAEG;IACG,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAoG3E;;OAEG;IACG,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IAgBzE;;OAEG;YACW,wBAAwB;IAqCtC;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAUzB;;OAEG;IACH,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,kBAAkB,CAAC,EAAE,MAAM,GAAG,kBAAkB;IAsCrE;;OAEG;IACH,aAAa,IAAI,kBAAkB,EAAE;IAIrC;;OAEG;IACH,mBAAmB,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAOjG;;OAEG;IACH,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAU5D;;OAEG;IACH,kBAAkB,CAAC,IAAI,EAAE,gBAAgB,GAAG,YAAY,EAAE;IAY1D;;OAEG;IACH,KAAK,IAAI,IAAI;IAMb;;OAEG;IACH,OAAO,CAAC,aAAa;CAGtB;AAED;;GAEG;AACH,wBAAgB,8BAA8B,IAAI,wBAAwB,CAEzE"}