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,412 @@
1
+ /**
2
+ * ViewModel Regex Extractor
3
+ *
4
+ * Regex-based fallback extractor for C# ViewModel classes.
5
+ * Detects INotifyPropertyChanged, commands, and observable properties.
6
+ */
7
+ // ============================================================================
8
+ // Regex Patterns
9
+ // ============================================================================
10
+ export const VIEWMODEL_REGEX_PATTERNS = {
11
+ // INotifyPropertyChanged implementation
12
+ inpcImplementation: /:\s*(?:[\w.]+,\s*)*INotifyPropertyChanged/,
13
+ // ViewModelBase / BindableBase inheritance
14
+ viewModelBase: /class\s+(\w+)\s*:\s*(?:ViewModelBase|BindableBase|ObservableObject|BaseViewModel|NotifyPropertyChanged)/,
15
+ // Property with backing field pattern
16
+ propertyWithBacking: /private\s+(\w+(?:<[^>]+>)?)\s+_(\w+);\s*(?:[\s\S]*?)public\s+\1\s+(\w+)\s*\{/g,
17
+ // Auto-property
18
+ autoProperty: /public\s+(\w+(?:<[^>]+>)?(?:\?)?)\s+(\w+)\s*\{\s*get;\s*(?:private\s+)?set;\s*\}/g,
19
+ // OnPropertyChanged/RaisePropertyChanged calls
20
+ propertyChanged: /(?:OnPropertyChanged|RaisePropertyChanged|NotifyPropertyChanged|NotifyOfPropertyChange)\s*\(\s*(?:nameof\s*\(\s*(\w+)\s*\)|["'](\w+)["'])/g,
21
+ // SetProperty pattern (MVVM Toolkit style)
22
+ setProperty: /SetProperty\s*\(\s*ref\s+_?(\w+)\s*,\s*value\s*(?:,\s*nameof\s*\(\s*(\w+)\s*\))?\)/g,
23
+ // Set pattern (Prism style)
24
+ setMethod: /Set\s*\(\s*ref\s+_?(\w+)\s*,\s*value\s*(?:,\s*\(\)\s*=>\s*(\w+))?\)/g,
25
+ // ICommand property declarations
26
+ commandProperty: /public\s+(?:ICommand|IRelayCommand|IAsyncRelayCommand|RelayCommand|DelegateCommand|AsyncRelayCommand|AsyncCommand)(?:<[^>]+>)?\s+(\w+)\s*\{/g,
27
+ // RelayCommand instantiation
28
+ relayCommandInit: /(\w+)\s*=\s*new\s+(?:Relay|Delegate|Async)?Command(?:<[^>]+>)?\s*\(\s*(\w+)(?:\s*,\s*(\w+))?\s*\)/g,
29
+ // Command with lambda
30
+ commandLambda: /(\w+)\s*=\s*new\s+(?:Relay|Delegate|Async)?Command(?:<[^>]+>)?\s*\(\s*(?:async\s*)?\(\s*\)\s*=>/g,
31
+ // ObservableCollection declarations
32
+ observableCollection: /(?:public|private)\s+ObservableCollection<(\w+)>\s+(\w+)/g,
33
+ // [ObservableProperty] attribute (MVVM Toolkit source generators)
34
+ observablePropertyAttr: /\[ObservableProperty\]\s*(?:\[[\w\(\)]+\]\s*)*private\s+(\w+(?:<[^>]+>)?(?:\?)?)\s+_?(\w+)/g,
35
+ // [RelayCommand] attribute
36
+ relayCommandAttr: /\[RelayCommand(?:\([^\)]*\))?\]\s*(?:private|public)?\s*(?:async\s+)?(?:Task|void)\s+(\w+)\s*\(/g,
37
+ // Class declaration
38
+ classDeclaration: /(?:public|internal|private)?\s*(?:partial\s+)?class\s+(\w+)(?:<[^>]+>)?(?:\s*:\s*([^{]+))?\s*\{/g,
39
+ // Namespace declaration
40
+ namespaceDeclaration: /namespace\s+([\w.]+)/,
41
+ // Property getter/setter
42
+ propertyAccessors: /\{\s*(get\s*(?:\{[^}]*\}|;))?\s*(set\s*(?:\{[^}]*\}|;))?\s*\}/,
43
+ // PropertyChanged event declaration
44
+ propertyChangedEvent: /public\s+event\s+PropertyChangedEventHandler\s+PropertyChanged/,
45
+ // CanExecute method pattern
46
+ canExecuteMethod: /(?:private|public)?\s*bool\s+Can(\w+)\s*\(/g,
47
+ };
48
+ // ============================================================================
49
+ // ViewModel Regex Extractor
50
+ // ============================================================================
51
+ export class ViewModelRegexExtractor {
52
+ /**
53
+ * Extract ViewModel information using regex patterns
54
+ */
55
+ extract(content, filePath) {
56
+ // Find class declaration
57
+ const classMatch = this.findViewModelClass(content);
58
+ if (!classMatch) {
59
+ return null;
60
+ }
61
+ const { className, baseClass, startLine, endLine } = classMatch;
62
+ // Extract namespace
63
+ const namespaceMatch = content.match(VIEWMODEL_REGEX_PATTERNS.namespaceDeclaration);
64
+ const namespace = namespaceMatch?.[1] ?? '';
65
+ const qualifiedName = namespace ? `${namespace}.${className}` : className;
66
+ // Check for INPC implementation
67
+ const implementsINPC = this.checkINPCImplementation(content, baseClass);
68
+ // Extract properties
69
+ const properties = this.extractProperties(content, filePath);
70
+ // Extract commands
71
+ const commands = this.extractCommands(content, filePath);
72
+ return {
73
+ className,
74
+ qualifiedName,
75
+ filePath,
76
+ properties,
77
+ commands,
78
+ implementsINPC,
79
+ baseClass,
80
+ startLine,
81
+ endLine,
82
+ };
83
+ }
84
+ /**
85
+ * Find ViewModel class in content
86
+ */
87
+ findViewModelClass(content) {
88
+ VIEWMODEL_REGEX_PATTERNS.classDeclaration.lastIndex = 0;
89
+ let match;
90
+ while ((match = VIEWMODEL_REGEX_PATTERNS.classDeclaration.exec(content)) !== null) {
91
+ const className = match[1] ?? '';
92
+ const inheritance = match[2] ?? '';
93
+ // Check if this looks like a ViewModel
94
+ const isViewModel = className.endsWith('ViewModel') ||
95
+ className.endsWith('VM') ||
96
+ inheritance.includes('ViewModel') ||
97
+ inheritance.includes('BindableBase') ||
98
+ inheritance.includes('ObservableObject') ||
99
+ inheritance.includes('INotifyPropertyChanged');
100
+ if (isViewModel) {
101
+ const startLine = this.getLineNumber(content, match.index);
102
+ const endLine = this.findClassEndLine(content, match.index);
103
+ const baseClass = this.extractBaseClass(inheritance);
104
+ return { className, baseClass, startLine, endLine };
105
+ }
106
+ }
107
+ return null;
108
+ }
109
+ /**
110
+ * Extract base class from inheritance string
111
+ */
112
+ extractBaseClass(inheritance) {
113
+ if (!inheritance)
114
+ return undefined;
115
+ // Split by comma and get first non-interface
116
+ const parts = inheritance.split(',').map(p => p.trim());
117
+ for (const part of parts) {
118
+ // Skip interfaces (start with I and have capital second letter)
119
+ if (!/^I[A-Z]/.test(part)) {
120
+ return part.replace(/<[^>]+>/, '').trim();
121
+ }
122
+ }
123
+ return undefined;
124
+ }
125
+ /**
126
+ * Check if class implements INotifyPropertyChanged
127
+ */
128
+ checkINPCImplementation(content, baseClass) {
129
+ // Direct implementation
130
+ if (VIEWMODEL_REGEX_PATTERNS.inpcImplementation.test(content)) {
131
+ return true;
132
+ }
133
+ // Through base class
134
+ if (baseClass) {
135
+ const knownINPCBases = [
136
+ 'ViewModelBase',
137
+ 'BindableBase',
138
+ 'ObservableObject',
139
+ 'BaseViewModel',
140
+ 'NotifyPropertyChanged',
141
+ 'ObservableRecipient',
142
+ 'Screen', // Caliburn.Micro
143
+ 'PropertyChangedBase', // Caliburn.Micro
144
+ ];
145
+ if (knownINPCBases.some(b => baseClass.includes(b))) {
146
+ return true;
147
+ }
148
+ }
149
+ // Has PropertyChanged event
150
+ if (VIEWMODEL_REGEX_PATTERNS.propertyChangedEvent.test(content)) {
151
+ return true;
152
+ }
153
+ return false;
154
+ }
155
+ /**
156
+ * Extract properties from ViewModel
157
+ */
158
+ extractProperties(content, filePath) {
159
+ const properties = [];
160
+ const seen = new Set();
161
+ // Extract properties with backing fields
162
+ VIEWMODEL_REGEX_PATTERNS.propertyWithBacking.lastIndex = 0;
163
+ let match;
164
+ while ((match = VIEWMODEL_REGEX_PATTERNS.propertyWithBacking.exec(content)) !== null) {
165
+ const type = match[1] ?? '';
166
+ const backingField = `_${match[2]}`;
167
+ const name = match[3] ?? '';
168
+ if (seen.has(name))
169
+ continue;
170
+ seen.add(name);
171
+ const line = this.getLineNumber(content, match.index);
172
+ const raisesPropertyChanged = this.checkPropertyRaisesChanged(content, name);
173
+ properties.push({
174
+ name,
175
+ type,
176
+ hasGetter: true,
177
+ hasSetter: true,
178
+ raisesPropertyChanged,
179
+ backingField,
180
+ location: { file: filePath, line },
181
+ });
182
+ }
183
+ // Extract auto-properties
184
+ VIEWMODEL_REGEX_PATTERNS.autoProperty.lastIndex = 0;
185
+ while ((match = VIEWMODEL_REGEX_PATTERNS.autoProperty.exec(content)) !== null) {
186
+ const type = match[1] ?? '';
187
+ const name = match[2] ?? '';
188
+ if (seen.has(name))
189
+ continue;
190
+ seen.add(name);
191
+ const line = this.getLineNumber(content, match.index);
192
+ properties.push({
193
+ name,
194
+ type,
195
+ hasGetter: true,
196
+ hasSetter: true,
197
+ raisesPropertyChanged: false, // Auto-properties don't raise by default
198
+ location: { file: filePath, line },
199
+ });
200
+ }
201
+ // Extract MVVM Toolkit source-generated properties
202
+ VIEWMODEL_REGEX_PATTERNS.observablePropertyAttr.lastIndex = 0;
203
+ while ((match = VIEWMODEL_REGEX_PATTERNS.observablePropertyAttr.exec(content)) !== null) {
204
+ const type = match[1] ?? '';
205
+ const fieldName = match[2] ?? '';
206
+ const name = this.toPascalCase(fieldName);
207
+ if (seen.has(name))
208
+ continue;
209
+ seen.add(name);
210
+ const line = this.getLineNumber(content, match.index);
211
+ properties.push({
212
+ name,
213
+ type,
214
+ hasGetter: true,
215
+ hasSetter: true,
216
+ raisesPropertyChanged: true, // Source generator handles this
217
+ backingField: fieldName.startsWith('_') ? fieldName : `_${fieldName}`,
218
+ isSourceGenerated: true,
219
+ location: { file: filePath, line },
220
+ });
221
+ }
222
+ return properties;
223
+ }
224
+ /**
225
+ * Check if a property raises PropertyChanged
226
+ */
227
+ checkPropertyRaisesChanged(content, propertyName) {
228
+ // Check for OnPropertyChanged(nameof(PropertyName))
229
+ const namedPattern = new RegExp(`(?:OnPropertyChanged|RaisePropertyChanged|NotifyPropertyChanged)\\s*\\(\\s*nameof\\s*\\(\\s*${propertyName}\\s*\\)`, 'i');
230
+ if (namedPattern.test(content)) {
231
+ return true;
232
+ }
233
+ // Check for OnPropertyChanged("PropertyName")
234
+ const stringPattern = new RegExp(`(?:OnPropertyChanged|RaisePropertyChanged|NotifyPropertyChanged)\\s*\\(\\s*["']${propertyName}["']`, 'i');
235
+ if (stringPattern.test(content)) {
236
+ return true;
237
+ }
238
+ // Check for SetProperty pattern
239
+ const setPropertyPattern = new RegExp(`SetProperty\\s*\\([^)]*nameof\\s*\\(\\s*${propertyName}\\s*\\)`, 'i');
240
+ if (setPropertyPattern.test(content)) {
241
+ return true;
242
+ }
243
+ return false;
244
+ }
245
+ /**
246
+ * Extract commands from ViewModel
247
+ */
248
+ extractCommands(content, filePath) {
249
+ const commands = [];
250
+ const seen = new Set();
251
+ // Extract ICommand properties
252
+ VIEWMODEL_REGEX_PATTERNS.commandProperty.lastIndex = 0;
253
+ let match;
254
+ while ((match = VIEWMODEL_REGEX_PATTERNS.commandProperty.exec(content)) !== null) {
255
+ const name = match[1] ?? '';
256
+ if (seen.has(name))
257
+ continue;
258
+ seen.add(name);
259
+ const line = this.getLineNumber(content, match.index);
260
+ const commandType = this.inferCommandType(content, name);
261
+ const { executeMethod, canExecuteMethod } = this.findCommandMethods(content, name);
262
+ commands.push({
263
+ name,
264
+ commandType,
265
+ executeMethod,
266
+ canExecuteMethod,
267
+ isAsync: commandType.includes('Async'),
268
+ location: { file: filePath, line },
269
+ });
270
+ }
271
+ // Extract commands from RelayCommand instantiation
272
+ VIEWMODEL_REGEX_PATTERNS.relayCommandInit.lastIndex = 0;
273
+ while ((match = VIEWMODEL_REGEX_PATTERNS.relayCommandInit.exec(content)) !== null) {
274
+ const name = match[1] ?? '';
275
+ const executeMethod = match[2];
276
+ const canExecuteMethod = match[3];
277
+ if (seen.has(name))
278
+ continue;
279
+ seen.add(name);
280
+ const line = this.getLineNumber(content, match.index);
281
+ commands.push({
282
+ name,
283
+ commandType: 'RelayCommand',
284
+ executeMethod,
285
+ canExecuteMethod,
286
+ location: { file: filePath, line },
287
+ });
288
+ }
289
+ // Extract MVVM Toolkit [RelayCommand] attributed methods
290
+ VIEWMODEL_REGEX_PATTERNS.relayCommandAttr.lastIndex = 0;
291
+ while ((match = VIEWMODEL_REGEX_PATTERNS.relayCommandAttr.exec(content)) !== null) {
292
+ const methodName = match[1] ?? '';
293
+ const commandName = `${methodName}Command`;
294
+ if (seen.has(commandName))
295
+ continue;
296
+ seen.add(commandName);
297
+ const line = this.getLineNumber(content, match.index);
298
+ const isAsync = match[0].includes('async') || match[0].includes('Task');
299
+ // Look for CanExecute method
300
+ const canExecuteMethod = this.findCanExecuteForMethod(content, methodName);
301
+ commands.push({
302
+ name: commandName,
303
+ commandType: isAsync ? 'AsyncRelayCommand' : 'RelayCommand',
304
+ executeMethod: methodName,
305
+ canExecuteMethod,
306
+ isAsync,
307
+ isSourceGenerated: true,
308
+ location: { file: filePath, line },
309
+ });
310
+ }
311
+ return commands;
312
+ }
313
+ /**
314
+ * Infer command type from content
315
+ */
316
+ inferCommandType(content, commandName) {
317
+ // Look for initialization
318
+ const initPattern = new RegExp(`${commandName}\\s*=\\s*new\\s+(\\w+Command)`, 'i');
319
+ const match = content.match(initPattern);
320
+ if (match?.[1]) {
321
+ return match[1];
322
+ }
323
+ // Look for property type
324
+ const typePattern = new RegExp(`(\\w+Command(?:<[^>]+>)?)\\s+${commandName}\\s*\\{`, 'i');
325
+ const typeMatch = content.match(typePattern);
326
+ if (typeMatch?.[1]) {
327
+ return typeMatch[1];
328
+ }
329
+ return 'ICommand';
330
+ }
331
+ /**
332
+ * Find execute and canExecute methods for a command
333
+ */
334
+ findCommandMethods(content, commandName) {
335
+ // Common naming conventions
336
+ const baseName = commandName.replace(/Command$/, '');
337
+ // Look for execute method
338
+ const executePatterns = [
339
+ new RegExp(`(?:private|public)?\\s*(?:async\\s+)?(?:Task|void)\\s+(${baseName})\\s*\\(`),
340
+ new RegExp(`(?:private|public)?\\s*(?:async\\s+)?(?:Task|void)\\s+(Execute${baseName})\\s*\\(`),
341
+ new RegExp(`(?:private|public)?\\s*(?:async\\s+)?(?:Task|void)\\s+(On${baseName})\\s*\\(`),
342
+ ];
343
+ let executeMethod;
344
+ for (const pattern of executePatterns) {
345
+ const match = content.match(pattern);
346
+ if (match?.[1]) {
347
+ executeMethod = match[1];
348
+ break;
349
+ }
350
+ }
351
+ // Look for canExecute method
352
+ const canExecutePatterns = [
353
+ new RegExp(`(?:private|public)?\\s*bool\\s+(Can${baseName})\\s*\\(`),
354
+ new RegExp(`(?:private|public)?\\s*bool\\s+(${baseName}CanExecute)\\s*\\(`),
355
+ ];
356
+ let canExecuteMethod;
357
+ for (const pattern of canExecutePatterns) {
358
+ const match = content.match(pattern);
359
+ if (match?.[1]) {
360
+ canExecuteMethod = match[1];
361
+ break;
362
+ }
363
+ }
364
+ return { executeMethod, canExecuteMethod };
365
+ }
366
+ /**
367
+ * Find CanExecute method for a [RelayCommand] attributed method
368
+ */
369
+ findCanExecuteForMethod(content, methodName) {
370
+ const pattern = new RegExp(`(?:private|public)?\\s*bool\\s+(Can${methodName})\\s*\\(`);
371
+ const match = content.match(pattern);
372
+ return match?.[1];
373
+ }
374
+ /**
375
+ * Convert to PascalCase
376
+ */
377
+ toPascalCase(str) {
378
+ // Remove leading underscore
379
+ const clean = str.startsWith('_') ? str.slice(1) : str;
380
+ // Capitalize first letter
381
+ return clean.charAt(0).toUpperCase() + clean.slice(1);
382
+ }
383
+ /**
384
+ * Get line number from character index
385
+ */
386
+ getLineNumber(content, index) {
387
+ const lines = content.slice(0, index).split('\n');
388
+ return lines.length;
389
+ }
390
+ /**
391
+ * Find class end line
392
+ */
393
+ findClassEndLine(content, startIndex) {
394
+ let depth = 0;
395
+ let inClass = false;
396
+ for (let i = startIndex; i < content.length; i++) {
397
+ const char = content[i];
398
+ if (char === '{') {
399
+ depth++;
400
+ inClass = true;
401
+ }
402
+ else if (char === '}') {
403
+ depth--;
404
+ if (inClass && depth === 0) {
405
+ return this.getLineNumber(content, i);
406
+ }
407
+ }
408
+ }
409
+ return this.getLineNumber(content, content.length);
410
+ }
411
+ }
412
+ //# sourceMappingURL=viewmodel-regex.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"viewmodel-regex.js","sourceRoot":"","sources":["../../../../src/wpf/extractors/regex/viewmodel-regex.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,77 @@
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
+ import type { XamlExtractionResult } from '../../types.js';
8
+ export declare const XAML_REGEX_PATTERNS: {
9
+ xClass: RegExp;
10
+ binding: RegExp;
11
+ bindingFull: RegExp;
12
+ xBind: RegExp;
13
+ command: RegExp;
14
+ commandParameter: RegExp;
15
+ dataContext: RegExp;
16
+ designDataContext: RegExp;
17
+ staticResource: RegExp;
18
+ dynamicResource: RegExp;
19
+ xName: RegExp;
20
+ eventHandler: RegExp;
21
+ converter: RegExp;
22
+ itemsSource: RegExp;
23
+ selectedItem: RegExp;
24
+ style: RegExp;
25
+ dataTemplate: RegExp;
26
+ converterDef: RegExp;
27
+ elementWithBinding: RegExp;
28
+ bindingMode: RegExp;
29
+ updateSourceTrigger: RegExp;
30
+ fallbackValue: RegExp;
31
+ targetNullValue: RegExp;
32
+ relativeSource: RegExp;
33
+ elementName: RegExp;
34
+ };
35
+ export declare class XamlRegexExtractor {
36
+ /**
37
+ * Extract XAML information using regex patterns
38
+ */
39
+ extract(content: string, filePath: string): XamlExtractionResult;
40
+ /**
41
+ * Extract DataContext type from various sources
42
+ */
43
+ private extractDataContextType;
44
+ /**
45
+ * Extract all bindings from XAML content
46
+ */
47
+ private extractBindings;
48
+ /**
49
+ * Parse a binding expression into structured data
50
+ */
51
+ private parseBindingExpression;
52
+ /**
53
+ * Extract binding source type and value
54
+ */
55
+ private extractBindingSource;
56
+ /**
57
+ * Parse binding mode string
58
+ */
59
+ private parseBindingMode;
60
+ /**
61
+ * Parse update source trigger string
62
+ */
63
+ private parseUpdateTrigger;
64
+ /**
65
+ * Extract commands from XAML content
66
+ */
67
+ private extractCommands;
68
+ /**
69
+ * Extract resources from XAML content
70
+ */
71
+ private extractResources;
72
+ /**
73
+ * Get line number from character index
74
+ */
75
+ private getLineNumber;
76
+ }
77
+ //# sourceMappingURL=xaml-regex.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"xaml-regex.d.ts","sourceRoot":"","sources":["../../../../src/wpf/extractors/regex/xaml-regex.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,oBAAoB,EAQrB,MAAM,gBAAgB,CAAC;AAMxB,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;CA2E/B,CAAC;AAMF,qBAAa,kBAAkB;IAC7B;;OAEG;IACH,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,oBAAoB;IAgDhE;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAqB9B;;OAEG;IACH,OAAO,CAAC,eAAe;IAqDvB;;OAEG;IACH,OAAO,CAAC,sBAAsB;IA0D9B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAsB5B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAUxB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAS1B;;OAEG;IACH,OAAO,CAAC,eAAe;IAsCvB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAuDxB;;OAEG;IACH,OAAO,CAAC,aAAa;CAItB"}