code-auditor-mcp 3.1.1 → 3.4.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 (357) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/CHANGELOG.md +665 -1
  3. package/README.md +85 -11
  4. package/dist/__test_tmp__/spec18_test.d.ts +2 -0
  5. package/dist/__test_tmp__/spec18_test.d.ts.map +1 -0
  6. package/dist/__test_tmp__/spec18_test.js +5 -0
  7. package/dist/__test_tmp__/spec18_test.js.map +1 -0
  8. package/dist/__tests__/fixtures/spec-20/scripts/tool.d.ts +6 -0
  9. package/dist/__tests__/fixtures/spec-20/scripts/tool.d.ts.map +1 -0
  10. package/dist/__tests__/fixtures/spec-20/scripts/tool.js +12 -0
  11. package/dist/__tests__/fixtures/spec-20/scripts/tool.js.map +1 -0
  12. package/dist/__tests__/fixtures/spec-20/src/demo-module.d.ts +7 -0
  13. package/dist/__tests__/fixtures/spec-20/src/demo-module.d.ts.map +1 -0
  14. package/dist/__tests__/fixtures/spec-20/src/demo-module.js +13 -0
  15. package/dist/__tests__/fixtures/spec-20/src/demo-module.js.map +1 -0
  16. package/dist/analyzers/analyzerUtils.js +2 -2
  17. package/dist/analyzers/analyzerUtils.js.map +1 -1
  18. package/dist/analyzers/cross-language/APIContractAnalyzer.d.ts +1 -1
  19. package/dist/analyzers/cross-language/APIContractAnalyzer.d.ts.map +1 -1
  20. package/dist/analyzers/cross-language/APIContractAnalyzer.js +2 -2
  21. package/dist/analyzers/cross-language/APIContractAnalyzer.js.map +1 -1
  22. package/dist/analyzers/cross-language/CrossLanguageSOLIDAnalyzer.d.ts +3 -0
  23. package/dist/analyzers/cross-language/CrossLanguageSOLIDAnalyzer.d.ts.map +1 -1
  24. package/dist/analyzers/cross-language/CrossLanguageSOLIDAnalyzer.js +3 -3
  25. package/dist/analyzers/cross-language/CrossLanguageSOLIDAnalyzer.js.map +1 -1
  26. package/dist/analyzers/cross-language/SchemaValidator.d.ts +1 -1
  27. package/dist/analyzers/cross-language/SchemaValidator.d.ts.map +1 -1
  28. package/dist/analyzers/cross-language/SchemaValidator.js +2 -2
  29. package/dist/analyzers/cross-language/SchemaValidator.js.map +1 -1
  30. package/dist/analyzers/crossDomain/CrossDomainAnalyzer.d.ts +83 -0
  31. package/dist/analyzers/crossDomain/CrossDomainAnalyzer.d.ts.map +1 -0
  32. package/dist/analyzers/crossDomain/CrossDomainAnalyzer.js +611 -0
  33. package/dist/analyzers/crossDomain/CrossDomainAnalyzer.js.map +1 -0
  34. package/dist/analyzers/documentationAnalyzer.d.ts.map +1 -1
  35. package/dist/analyzers/documentationAnalyzer.js +8 -4
  36. package/dist/analyzers/documentationAnalyzer.js.map +1 -1
  37. package/dist/analyzers/orm/adapterRegistry.d.ts +41 -0
  38. package/dist/analyzers/orm/adapterRegistry.d.ts.map +1 -0
  39. package/dist/analyzers/orm/adapterRegistry.js +73 -0
  40. package/dist/analyzers/orm/adapterRegistry.js.map +1 -0
  41. package/dist/analyzers/orm/drizzleAdapter.d.ts +42 -0
  42. package/dist/analyzers/orm/drizzleAdapter.d.ts.map +1 -0
  43. package/dist/analyzers/orm/drizzleAdapter.js +166 -0
  44. package/dist/analyzers/orm/drizzleAdapter.js.map +1 -0
  45. package/dist/analyzers/orm/index.d.ts +14 -0
  46. package/dist/analyzers/orm/index.d.ts.map +1 -0
  47. package/dist/analyzers/orm/index.js +24 -0
  48. package/dist/analyzers/orm/index.js.map +1 -0
  49. package/dist/analyzers/orm/prismaAdapter.d.ts +45 -0
  50. package/dist/analyzers/orm/prismaAdapter.d.ts.map +1 -0
  51. package/dist/analyzers/orm/prismaAdapter.js +170 -0
  52. package/dist/analyzers/orm/prismaAdapter.js.map +1 -0
  53. package/dist/analyzers/orm/types.d.ts +63 -0
  54. package/dist/analyzers/orm/types.d.ts.map +1 -0
  55. package/dist/analyzers/orm/types.js +10 -0
  56. package/dist/analyzers/orm/types.js.map +1 -0
  57. package/dist/analyzers/provenance.d.ts +133 -0
  58. package/dist/analyzers/provenance.d.ts.map +1 -0
  59. package/dist/analyzers/provenance.js +1041 -0
  60. package/dist/analyzers/provenance.js.map +1 -0
  61. package/dist/analyzers/reactAnalyzer.d.ts.map +1 -1
  62. package/dist/analyzers/reactAnalyzer.js +117 -1
  63. package/dist/analyzers/reactAnalyzer.js.map +1 -1
  64. package/dist/analyzers/ruleRegistry.d.ts +38 -0
  65. package/dist/analyzers/ruleRegistry.d.ts.map +1 -0
  66. package/dist/analyzers/ruleRegistry.js +123 -0
  67. package/dist/analyzers/ruleRegistry.js.map +1 -0
  68. package/dist/analyzers/universal/UniversalConventionsAnalyzer.d.ts +58 -0
  69. package/dist/analyzers/universal/UniversalConventionsAnalyzer.d.ts.map +1 -0
  70. package/dist/analyzers/universal/UniversalConventionsAnalyzer.js +445 -0
  71. package/dist/analyzers/universal/UniversalConventionsAnalyzer.js.map +1 -0
  72. package/dist/analyzers/universal/UniversalDRYAnalyzer.d.ts +52 -0
  73. package/dist/analyzers/universal/UniversalDRYAnalyzer.d.ts.map +1 -1
  74. package/dist/analyzers/universal/UniversalDRYAnalyzer.js +108 -26
  75. package/dist/analyzers/universal/UniversalDRYAnalyzer.js.map +1 -1
  76. package/dist/analyzers/universal/UniversalDataAccessAnalyzer.d.ts +64 -0
  77. package/dist/analyzers/universal/UniversalDataAccessAnalyzer.d.ts.map +1 -1
  78. package/dist/analyzers/universal/UniversalDataAccessAnalyzer.js +259 -53
  79. package/dist/analyzers/universal/UniversalDataAccessAnalyzer.js.map +1 -1
  80. package/dist/analyzers/universal/UniversalDocumentationAnalyzer.d.ts.map +1 -1
  81. package/dist/analyzers/universal/UniversalDocumentationAnalyzer.js +5 -15
  82. package/dist/analyzers/universal/UniversalDocumentationAnalyzer.js.map +1 -1
  83. package/dist/analyzers/universal/UniversalSOLIDAnalyzer.d.ts.map +1 -1
  84. package/dist/analyzers/universal/UniversalSOLIDAnalyzer.js +10 -10
  85. package/dist/analyzers/universal/UniversalSOLIDAnalyzer.js.map +1 -1
  86. package/dist/analyzers/universal/UniversalSchemaAnalyzer.d.ts +25 -0
  87. package/dist/analyzers/universal/UniversalSchemaAnalyzer.d.ts.map +1 -1
  88. package/dist/analyzers/universal/UniversalSchemaAnalyzer.js +250 -59
  89. package/dist/analyzers/universal/UniversalSchemaAnalyzer.js.map +1 -1
  90. package/dist/analyzers/universal/UniversalStylesAnalyzer.d.ts +103 -0
  91. package/dist/analyzers/universal/UniversalStylesAnalyzer.d.ts.map +1 -0
  92. package/dist/analyzers/universal/UniversalStylesAnalyzer.js +750 -0
  93. package/dist/analyzers/universal/UniversalStylesAnalyzer.js.map +1 -0
  94. package/dist/auditRunner.d.ts.map +1 -1
  95. package/dist/auditRunner.js +483 -3
  96. package/dist/auditRunner.js.map +1 -1
  97. package/dist/baseline.d.ts +98 -0
  98. package/dist/baseline.d.ts.map +1 -0
  99. package/dist/baseline.js +184 -0
  100. package/dist/baseline.js.map +1 -0
  101. package/dist/churn/churnExtractor.d.ts +32 -0
  102. package/dist/churn/churnExtractor.d.ts.map +1 -0
  103. package/dist/churn/churnExtractor.js +261 -0
  104. package/dist/churn/churnExtractor.js.map +1 -0
  105. package/dist/cli.js +1215 -11
  106. package/dist/cli.js.map +1 -1
  107. package/dist/codeIndexDB-enhanced.js +1 -1
  108. package/dist/codeIndexDB-enhanced.js.map +1 -1
  109. package/dist/codeIndexDB.d.ts +101 -0
  110. package/dist/codeIndexDB.d.ts.map +1 -1
  111. package/dist/codeIndexDB.js +661 -5
  112. package/dist/codeIndexDB.js.map +1 -1
  113. package/dist/config/configLoader.d.ts.map +1 -1
  114. package/dist/config/configLoader.js +95 -1
  115. package/dist/config/configLoader.js.map +1 -1
  116. package/dist/config/defaults.d.ts +72 -1
  117. package/dist/config/defaults.d.ts.map +1 -1
  118. package/dist/config/defaults.js +146 -15
  119. package/dist/config/defaults.js.map +1 -1
  120. package/dist/config/pathProfiles.d.ts +38 -0
  121. package/dist/config/pathProfiles.d.ts.map +1 -0
  122. package/dist/config/pathProfiles.js +47 -0
  123. package/dist/config/pathProfiles.js.map +1 -0
  124. package/dist/conventions/conventionMiner.d.ts +63 -0
  125. package/dist/conventions/conventionMiner.d.ts.map +1 -0
  126. package/dist/conventions/conventionMiner.js +696 -0
  127. package/dist/conventions/conventionMiner.js.map +1 -0
  128. package/dist/coverage/coverageService.d.ts +49 -0
  129. package/dist/coverage/coverageService.d.ts.map +1 -0
  130. package/dist/coverage/coverageService.js +117 -0
  131. package/dist/coverage/coverageService.js.map +1 -0
  132. package/dist/coverage/istanbulParser.d.ts +84 -0
  133. package/dist/coverage/istanbulParser.d.ts.map +1 -0
  134. package/dist/coverage/istanbulParser.js +120 -0
  135. package/dist/coverage/istanbulParser.js.map +1 -0
  136. package/dist/coverage/lcovParser.d.ts +40 -0
  137. package/dist/coverage/lcovParser.d.ts.map +1 -0
  138. package/dist/coverage/lcovParser.js +168 -0
  139. package/dist/coverage/lcovParser.js.map +1 -0
  140. package/dist/fingerprint.d.ts +17 -0
  141. package/dist/fingerprint.d.ts.map +1 -1
  142. package/dist/fingerprint.js +42 -0
  143. package/dist/fingerprint.js.map +1 -1
  144. package/dist/grammars/tree-sitter-css.wasm +0 -0
  145. package/dist/graph/blastRadius.d.ts +27 -0
  146. package/dist/graph/blastRadius.d.ts.map +1 -0
  147. package/dist/graph/blastRadius.js +150 -0
  148. package/dist/graph/blastRadius.js.map +1 -0
  149. package/dist/graph/callGraph.d.ts +78 -0
  150. package/dist/graph/callGraph.d.ts.map +1 -0
  151. package/dist/graph/callGraph.js +484 -0
  152. package/dist/graph/callGraph.js.map +1 -0
  153. package/dist/graph/importGraph.d.ts +91 -0
  154. package/dist/graph/importGraph.d.ts.map +1 -0
  155. package/dist/graph/importGraph.js +602 -0
  156. package/dist/graph/importGraph.js.map +1 -0
  157. package/dist/graph/outputFormatter.d.ts +55 -0
  158. package/dist/graph/outputFormatter.d.ts.map +1 -0
  159. package/dist/graph/outputFormatter.js +283 -0
  160. package/dist/graph/outputFormatter.js.map +1 -0
  161. package/dist/hooks/codex.d.ts +36 -1
  162. package/dist/hooks/codex.d.ts.map +1 -1
  163. package/dist/hooks/codex.js +88 -54
  164. package/dist/hooks/codex.js.map +1 -1
  165. package/dist/hotspots/hotspotScorer.d.ts +20 -0
  166. package/dist/hotspots/hotspotScorer.d.ts.map +1 -0
  167. package/dist/hotspots/hotspotScorer.js +202 -0
  168. package/dist/hotspots/hotspotScorer.js.map +1 -0
  169. package/dist/invariants/invariant-rules.schema.json +42 -1
  170. package/dist/invariants/ruleEngine.d.ts +4 -1
  171. package/dist/invariants/ruleEngine.d.ts.map +1 -1
  172. package/dist/invariants/ruleEngine.js +141 -5
  173. package/dist/invariants/ruleEngine.js.map +1 -1
  174. package/dist/invariants/ruleValidator.d.ts.map +1 -1
  175. package/dist/invariants/ruleValidator.js +62 -1
  176. package/dist/invariants/ruleValidator.js.map +1 -1
  177. package/dist/invariants/types.d.ts +23 -2
  178. package/dist/invariants/types.d.ts.map +1 -1
  179. package/dist/languages/UniversalAnalyzer.d.ts +1 -1
  180. package/dist/languages/UniversalAnalyzer.d.ts.map +1 -1
  181. package/dist/languages/UniversalAnalyzer.js +61 -4
  182. package/dist/languages/UniversalAnalyzer.js.map +1 -1
  183. package/dist/languages/index.d.ts +1 -0
  184. package/dist/languages/index.d.ts.map +1 -1
  185. package/dist/languages/index.js +3 -0
  186. package/dist/languages/index.js.map +1 -1
  187. package/dist/languages/tree-sitter/TreeSitterCssAdapter.d.ts +59 -0
  188. package/dist/languages/tree-sitter/TreeSitterCssAdapter.d.ts.map +1 -0
  189. package/dist/languages/tree-sitter/TreeSitterCssAdapter.js +236 -0
  190. package/dist/languages/tree-sitter/TreeSitterCssAdapter.js.map +1 -0
  191. package/dist/languages/tree-sitter/parser.d.ts.map +1 -1
  192. package/dist/languages/tree-sitter/parser.js +2 -0
  193. package/dist/languages/tree-sitter/parser.js.map +1 -1
  194. package/dist/languages/typescript/TreeSitterTypeScriptAdapter.d.ts.map +1 -1
  195. package/dist/languages/typescript/TreeSitterTypeScriptAdapter.js +61 -10
  196. package/dist/languages/typescript/TreeSitterTypeScriptAdapter.js.map +1 -1
  197. package/dist/ledger.d.ts +128 -0
  198. package/dist/ledger.d.ts.map +1 -0
  199. package/dist/ledger.js +345 -0
  200. package/dist/ledger.js.map +1 -0
  201. package/dist/mcp-tools/projectTasks.d.ts.map +1 -1
  202. package/dist/mcp-tools/projectTasks.js +9 -14
  203. package/dist/mcp-tools/projectTasks.js.map +1 -1
  204. package/dist/mcp.js +0 -0
  205. package/dist/mcpAuditJobs.d.ts.map +1 -1
  206. package/dist/mcpAuditJobs.js +3 -0
  207. package/dist/mcpAuditJobs.js.map +1 -1
  208. package/dist/reporting/csvReportGenerator.d.ts.map +1 -1
  209. package/dist/reporting/csvReportGenerator.js +7 -1
  210. package/dist/reporting/csvReportGenerator.js.map +1 -1
  211. package/dist/reporting/htmlReportGenerator.d.ts.map +1 -1
  212. package/dist/reporting/htmlReportGenerator.js +5 -1
  213. package/dist/reporting/htmlReportGenerator.js.map +1 -1
  214. package/dist/reporting/jsonReportGenerator.d.ts.map +1 -1
  215. package/dist/reporting/jsonReportGenerator.js +10 -2
  216. package/dist/reporting/jsonReportGenerator.js.map +1 -1
  217. package/dist/reporting/sarifReportGenerator.d.ts.map +1 -1
  218. package/dist/reporting/sarifReportGenerator.js +17 -17
  219. package/dist/reporting/sarifReportGenerator.js.map +1 -1
  220. package/dist/scripts/runBench.d.ts +94 -0
  221. package/dist/scripts/runBench.d.ts.map +1 -0
  222. package/dist/scripts/runBench.js +1559 -0
  223. package/dist/scripts/runBench.js.map +1 -0
  224. package/dist/search/QueryParser.d.ts.map +1 -1
  225. package/dist/search/QueryParser.js +51 -4
  226. package/dist/search/QueryParser.js.map +1 -1
  227. package/dist/services/CodeMapGenerator.d.ts +33 -0
  228. package/dist/services/CodeMapGenerator.d.ts.map +1 -1
  229. package/dist/services/CodeMapGenerator.js +404 -0
  230. package/dist/services/CodeMapGenerator.js.map +1 -1
  231. package/dist/styles/normalizer.d.ts +37 -0
  232. package/dist/styles/normalizer.d.ts.map +1 -0
  233. package/dist/styles/normalizer.js +301 -0
  234. package/dist/styles/normalizer.js.map +1 -0
  235. package/dist/styles/styleExtractor.d.ts +38 -0
  236. package/dist/styles/styleExtractor.d.ts.map +1 -0
  237. package/dist/styles/styleExtractor.js +630 -0
  238. package/dist/styles/styleExtractor.js.map +1 -0
  239. package/dist/styles/styleIndexer.d.ts +35 -0
  240. package/dist/styles/styleIndexer.d.ts.map +1 -0
  241. package/dist/styles/styleIndexer.js +266 -0
  242. package/dist/styles/styleIndexer.js.map +1 -0
  243. package/dist/styles/tailwindConfigLoader.d.ts +38 -0
  244. package/dist/styles/tailwindConfigLoader.d.ts.map +1 -0
  245. package/dist/styles/tailwindConfigLoader.js +374 -0
  246. package/dist/styles/tailwindConfigLoader.js.map +1 -0
  247. package/dist/styles/tailwindExpander.d.ts +38 -0
  248. package/dist/styles/tailwindExpander.d.ts.map +1 -0
  249. package/dist/styles/tailwindExpander.js +637 -0
  250. package/dist/styles/tailwindExpander.js.map +1 -0
  251. package/dist/styles/types.d.ts +92 -0
  252. package/dist/styles/types.d.ts.map +1 -0
  253. package/dist/styles/types.js +10 -0
  254. package/dist/styles/types.js.map +1 -0
  255. package/dist/symbols.d.ts +21 -0
  256. package/dist/symbols.d.ts.map +1 -0
  257. package/dist/symbols.js +31 -0
  258. package/dist/symbols.js.map +1 -0
  259. package/dist/types.d.ts +326 -3
  260. package/dist/types.d.ts.map +1 -1
  261. package/dist/types.js.map +1 -1
  262. package/package.json +9 -5
  263. package/plugin/.claude-plugin/plugin.json +1 -1
  264. package/plugin/scripts/hook-audit.sh +5 -1
  265. package/plugin/skills/code-auditor/SKILL.md +51 -0
  266. package/dist/analyzers/__tests__/fixtures/spec-17/anonymous-callback-map.d.ts +0 -21
  267. package/dist/analyzers/__tests__/fixtures/spec-17/anonymous-callback-map.d.ts.map +0 -1
  268. package/dist/analyzers/__tests__/fixtures/spec-17/anonymous-callback-map.js +0 -21
  269. package/dist/analyzers/__tests__/fixtures/spec-17/anonymous-callback-map.js.map +0 -1
  270. package/dist/analyzers/__tests__/fixtures/spec-17/barrel-test-migration.d.ts +0 -13
  271. package/dist/analyzers/__tests__/fixtures/spec-17/barrel-test-migration.d.ts.map +0 -1
  272. package/dist/analyzers/__tests__/fixtures/spec-17/barrel-test-migration.js +0 -12
  273. package/dist/analyzers/__tests__/fixtures/spec-17/barrel-test-migration.js.map +0 -1
  274. package/dist/analyzers/__tests__/fixtures/spec-17/direct-access-allow-config.d.ts +0 -11
  275. package/dist/analyzers/__tests__/fixtures/spec-17/direct-access-allow-config.d.ts.map +0 -1
  276. package/dist/analyzers/__tests__/fixtures/spec-17/direct-access-allow-config.js +0 -22
  277. package/dist/analyzers/__tests__/fixtures/spec-17/direct-access-allow-config.js.map +0 -1
  278. package/dist/analyzers/__tests__/fixtures/spec-17/exported-undocumented.d.ts +0 -9
  279. package/dist/analyzers/__tests__/fixtures/spec-17/exported-undocumented.d.ts.map +0 -1
  280. package/dist/analyzers/__tests__/fixtures/spec-17/exported-undocumented.js +0 -13
  281. package/dist/analyzers/__tests__/fixtures/spec-17/exported-undocumented.js.map +0 -1
  282. package/dist/analyzers/__tests__/fixtures/spec-17/for-loop-query.d.ts +0 -13
  283. package/dist/analyzers/__tests__/fixtures/spec-17/for-loop-query.d.ts.map +0 -1
  284. package/dist/analyzers/__tests__/fixtures/spec-17/for-loop-query.js +0 -18
  285. package/dist/analyzers/__tests__/fixtures/spec-17/for-loop-query.js.map +0 -1
  286. package/dist/analyzers/__tests__/fixtures/spec-17/import-node-builtin.d.ts +0 -10
  287. package/dist/analyzers/__tests__/fixtures/spec-17/import-node-builtin.d.ts.map +0 -1
  288. package/dist/analyzers/__tests__/fixtures/spec-17/import-node-builtin.js +0 -16
  289. package/dist/analyzers/__tests__/fixtures/spec-17/import-node-builtin.js.map +0 -1
  290. package/dist/analyzers/__tests__/fixtures/spec-17/jsx-event-handler.d.ts +0 -14
  291. package/dist/analyzers/__tests__/fixtures/spec-17/jsx-event-handler.d.ts.map +0 -1
  292. package/dist/analyzers/__tests__/fixtures/spec-17/jsx-event-handler.js +0 -18
  293. package/dist/analyzers/__tests__/fixtures/spec-17/jsx-event-handler.js.map +0 -1
  294. package/dist/analyzers/__tests__/fixtures/spec-17/nested-loops-query.d.ts +0 -13
  295. package/dist/analyzers/__tests__/fixtures/spec-17/nested-loops-query.d.ts.map +0 -1
  296. package/dist/analyzers/__tests__/fixtures/spec-17/nested-loops-query.js +0 -22
  297. package/dist/analyzers/__tests__/fixtures/spec-17/nested-loops-query.js.map +0 -1
  298. package/dist/analyzers/__tests__/fixtures/spec-17/nine-line-repeated.d.ts +0 -10
  299. package/dist/analyzers/__tests__/fixtures/spec-17/nine-line-repeated.d.ts.map +0 -1
  300. package/dist/analyzers/__tests__/fixtures/spec-17/nine-line-repeated.js +0 -20
  301. package/dist/analyzers/__tests__/fixtures/spec-17/nine-line-repeated.js.map +0 -1
  302. package/dist/analyzers/__tests__/fixtures/spec-17/private-methods.d.ts +0 -18
  303. package/dist/analyzers/__tests__/fixtures/spec-17/private-methods.d.ts.map +0 -1
  304. package/dist/analyzers/__tests__/fixtures/spec-17/private-methods.js +0 -28
  305. package/dist/analyzers/__tests__/fixtures/spec-17/private-methods.js.map +0 -1
  306. package/dist/analyzers/__tests__/fixtures/spec-17/scope-all-config.d.ts +0 -11
  307. package/dist/analyzers/__tests__/fixtures/spec-17/scope-all-config.d.ts.map +0 -1
  308. package/dist/analyzers/__tests__/fixtures/spec-17/scope-all-config.js +0 -31
  309. package/dist/analyzers/__tests__/fixtures/spec-17/scope-all-config.js.map +0 -1
  310. package/dist/analyzers/__tests__/fixtures/spec-17/sql-tagged-template.d.ts +0 -11
  311. package/dist/analyzers/__tests__/fixtures/spec-17/sql-tagged-template.d.ts.map +0 -1
  312. package/dist/analyzers/__tests__/fixtures/spec-17/sql-tagged-template.js +0 -18
  313. package/dist/analyzers/__tests__/fixtures/spec-17/sql-tagged-template.js.map +0 -1
  314. package/dist/analyzers/__tests__/fixtures/spec-17/structural-similar-methods.d.ts +0 -13
  315. package/dist/analyzers/__tests__/fixtures/spec-17/structural-similar-methods.d.ts.map +0 -1
  316. package/dist/analyzers/__tests__/fixtures/spec-17/structural-similar-methods.js +0 -61
  317. package/dist/analyzers/__tests__/fixtures/spec-17/structural-similar-methods.js.map +0 -1
  318. package/dist/analyzers/__tests__/fixtures/spec-17/template-prefix-table.d.ts +0 -10
  319. package/dist/analyzers/__tests__/fixtures/spec-17/template-prefix-table.d.ts.map +0 -1
  320. package/dist/analyzers/__tests__/fixtures/spec-17/template-prefix-table.js +0 -15
  321. package/dist/analyzers/__tests__/fixtures/spec-17/template-prefix-table.js.map +0 -1
  322. package/dist/analyzers/__tests__/fixtures/spec-17/token-identical-20-lines.d.ts +0 -11
  323. package/dist/analyzers/__tests__/fixtures/spec-17/token-identical-20-lines.d.ts.map +0 -1
  324. package/dist/analyzers/__tests__/fixtures/spec-17/token-identical-20-lines.js +0 -49
  325. package/dist/analyzers/__tests__/fixtures/spec-17/token-identical-20-lines.js.map +0 -1
  326. package/dist/analyzers/__tests__/fixtures/spec-17/tsx-no-db-usage.d.ts +0 -10
  327. package/dist/analyzers/__tests__/fixtures/spec-17/tsx-no-db-usage.d.ts.map +0 -1
  328. package/dist/analyzers/__tests__/fixtures/spec-17/tsx-no-db-usage.js +0 -19
  329. package/dist/analyzers/__tests__/fixtures/spec-17/tsx-no-db-usage.js.map +0 -1
  330. package/dist/analyzers/__tests__/fixtures/spec-17/twenty-methods-vs-complex.d.ts +0 -37
  331. package/dist/analyzers/__tests__/fixtures/spec-17/twenty-methods-vs-complex.d.ts.map +0 -1
  332. package/dist/analyzers/__tests__/fixtures/spec-17/twenty-methods-vs-complex.js +0 -73
  333. package/dist/analyzers/__tests__/fixtures/spec-17/twenty-methods-vs-complex.js.map +0 -1
  334. package/dist/analyzers/__tests__/fixtures/spec-17/unique-method-74-lines.d.ts +0 -12
  335. package/dist/analyzers/__tests__/fixtures/spec-17/unique-method-74-lines.d.ts.map +0 -1
  336. package/dist/analyzers/__tests__/fixtures/spec-17/unique-method-74-lines.js +0 -82
  337. package/dist/analyzers/__tests__/fixtures/spec-17/unique-method-74-lines.js.map +0 -1
  338. package/dist/analyzers/__tests__/fixtures/spec-17/word-the-in-comment.d.ts +0 -10
  339. package/dist/analyzers/__tests__/fixtures/spec-17/word-the-in-comment.d.ts.map +0 -1
  340. package/dist/analyzers/__tests__/fixtures/spec-17/word-the-in-comment.js +0 -15
  341. package/dist/analyzers/__tests__/fixtures/spec-17/word-the-in-comment.js.map +0 -1
  342. package/dist/analyzers/dataAccessAnalyzer.d.ts +0 -46
  343. package/dist/analyzers/dataAccessAnalyzer.d.ts.map +0 -1
  344. package/dist/analyzers/dataAccessAnalyzer.js +0 -474
  345. package/dist/analyzers/dataAccessAnalyzer.js.map +0 -1
  346. package/dist/analyzers/dryAnalyzer.d.ts +0 -31
  347. package/dist/analyzers/dryAnalyzer.d.ts.map +0 -1
  348. package/dist/analyzers/dryAnalyzer.js +0 -734
  349. package/dist/analyzers/dryAnalyzer.js.map +0 -1
  350. package/dist/analyzers/schemaAnalyzer.d.ts +0 -23
  351. package/dist/analyzers/schemaAnalyzer.d.ts.map +0 -1
  352. package/dist/analyzers/schemaAnalyzer.js +0 -564
  353. package/dist/analyzers/schemaAnalyzer.js.map +0 -1
  354. package/dist/analyzers/solidAnalyzer.d.ts +0 -33
  355. package/dist/analyzers/solidAnalyzer.d.ts.map +0 -1
  356. package/dist/analyzers/solidAnalyzer.js +0 -847
  357. package/dist/analyzers/solidAnalyzer.js.map +0 -1
@@ -0,0 +1,374 @@
1
+ /**
2
+ * Tailwind config loader — Spec 10.
3
+ *
4
+ * Loads a project's Tailwind configuration to resolve design tokens
5
+ * (colors, spacing, font sizes, etc.) for utility expansion.
6
+ *
7
+ * Three-tier resolution:
8
+ * 1. Tailwind v3 JS config (tailwind.config.js / tailwind.config.ts)
9
+ * 2. Tailwind v4 CSS config (@theme blocks in CSS files)
10
+ * 3. Bundled default design tokens (Tailwind v4 defaults)
11
+ *
12
+ * Falls back gracefully — no config means we use defaults only.
13
+ */
14
+ import { existsSync, readFileSync } from 'node:fs';
15
+ import { join } from 'node:path';
16
+ import { createRequire } from 'node:module';
17
+ // ---------------------------------------------------------------------------
18
+ // Tailwind v4 Default Design Tokens
19
+ // ---------------------------------------------------------------------------
20
+ /**
21
+ * Bundled Tailwind v4 default design tokens.
22
+ * This is a simplified subset covering the most-used values.
23
+ * Full Tailwind v4 theme is massive; we cover the common scales.
24
+ */
25
+ const DEFAULT_TOKENS = {
26
+ colors: defaultColorScale(),
27
+ spacing: defaultSpacingScale(),
28
+ fontSize: defaultFontSizeScale(),
29
+ borderRadius: defaultBorderRadiusScale(),
30
+ };
31
+ // ---------------------------------------------------------------------------
32
+ // Public API
33
+ // ---------------------------------------------------------------------------
34
+ /**
35
+ * Load Tailwind config tokens from a project root.
36
+ * Returns default tokens if no config is found — this is always graceful.
37
+ */
38
+ export function loadTailwindConfig(projectRoot) {
39
+ // Tier 1: Tailwind v3 JS config
40
+ const v3Result = tryLoadV3Config(projectRoot);
41
+ if (v3Result)
42
+ return v3Result;
43
+ // Tier 2: Tailwind v4 CSS config
44
+ const v4Result = tryLoadV4Config(projectRoot);
45
+ if (v4Result)
46
+ return v4Result;
47
+ // Tier 3: Bundled defaults
48
+ return {
49
+ tokens: { ...DEFAULT_TOKENS },
50
+ source: 'defaults',
51
+ configPath: null,
52
+ };
53
+ }
54
+ /**
55
+ * Get the tokens as StyleToken[] for storage in the style index.
56
+ */
57
+ export function tokensToStyleTokens(result, projectRoot) {
58
+ const tokens = [];
59
+ const configPath = result.configPath ?? 'built-in defaults';
60
+ for (const [name, value] of Object.entries(result.tokens.colors)) {
61
+ tokens.push({
62
+ name: `colors.${name}`,
63
+ value,
64
+ filePath: configPath,
65
+ mechanism: 'tailwind-theme',
66
+ });
67
+ }
68
+ for (const [name, value] of Object.entries(result.tokens.spacing)) {
69
+ tokens.push({
70
+ name: `spacing.${name}`,
71
+ value,
72
+ filePath: configPath,
73
+ mechanism: 'tailwind-theme',
74
+ });
75
+ }
76
+ for (const [name, value] of Object.entries(result.tokens.fontSize)) {
77
+ tokens.push({
78
+ name: `fontSize.${name}`,
79
+ value,
80
+ filePath: configPath,
81
+ mechanism: 'tailwind-theme',
82
+ });
83
+ }
84
+ for (const [name, value] of Object.entries(result.tokens.borderRadius)) {
85
+ tokens.push({
86
+ name: `borderRadius.${name}`,
87
+ value,
88
+ filePath: configPath,
89
+ mechanism: 'tailwind-theme',
90
+ });
91
+ }
92
+ return tokens;
93
+ }
94
+ // ---------------------------------------------------------------------------
95
+ // Tier 1: v3 JS config
96
+ // ---------------------------------------------------------------------------
97
+ function tryLoadV3Config(projectRoot) {
98
+ const candidates = [
99
+ 'tailwind.config.js',
100
+ 'tailwind.config.ts',
101
+ 'tailwind.config.cjs',
102
+ 'tailwind.config.mjs',
103
+ ];
104
+ for (const candidate of candidates) {
105
+ const configPath = join(projectRoot, candidate);
106
+ if (!existsSync(configPath))
107
+ continue;
108
+ try {
109
+ const tokens = loadV3ConfigFile(configPath);
110
+ if (tokens) {
111
+ return { tokens, source: 'v3-js', configPath };
112
+ }
113
+ }
114
+ catch {
115
+ // Silently fall through — config exists but can't be parsed
116
+ }
117
+ }
118
+ return null;
119
+ }
120
+ function loadV3ConfigFile(configPath) {
121
+ try {
122
+ // Dynamic require to load the config module
123
+ const require = createRequire(import.meta.url);
124
+ const config = require(configPath);
125
+ // Handle default exports
126
+ const resolved = config.default ?? config;
127
+ if (!resolved || !resolved.theme)
128
+ return null;
129
+ const theme = resolved.theme;
130
+ const extend = theme.extend ?? {};
131
+ // Merge extend over theme
132
+ return {
133
+ colors: mergeThemeConfig(theme.colors ?? {}, extend.colors ?? {}),
134
+ spacing: mergeThemeConfig(resolveSpacing(theme.spacing), resolveSpacing(extend.spacing)),
135
+ fontSize: mergeThemeConfig(theme.fontSize ?? {}, extend.fontSize ?? {}),
136
+ borderRadius: mergeThemeConfig(theme.borderRadius ?? {}, extend.borderRadius ?? {}),
137
+ };
138
+ }
139
+ catch {
140
+ return null;
141
+ }
142
+ }
143
+ // ---------------------------------------------------------------------------
144
+ // Tier 2: v4 CSS config
145
+ // ---------------------------------------------------------------------------
146
+ function tryLoadV4Config(projectRoot) {
147
+ // Tailwind v4 typically uses app.css or globals.css with @theme
148
+ const candidates = [
149
+ 'app/globals.css',
150
+ 'src/app/globals.css',
151
+ 'app.css',
152
+ 'src/styles/globals.css',
153
+ 'styles/globals.css',
154
+ 'globals.css',
155
+ ];
156
+ for (const candidate of candidates) {
157
+ const configPath = join(projectRoot, candidate);
158
+ if (!existsSync(configPath))
159
+ continue;
160
+ try {
161
+ const content = readFileSync(configPath, 'utf-8');
162
+ const tokens = parseV4ThemeBlocks(content);
163
+ // Only return if we actually found @theme directives
164
+ if (tokens.colors.size > 0 || tokens.spacing.size > 0 ||
165
+ tokens.fontSize.size > 0 || tokens.borderRadius.size > 0) {
166
+ return {
167
+ tokens: {
168
+ colors: Object.fromEntries(tokens.colors),
169
+ spacing: Object.fromEntries(tokens.spacing),
170
+ fontSize: Object.fromEntries(tokens.fontSize),
171
+ borderRadius: Object.fromEntries(tokens.borderRadius),
172
+ },
173
+ source: 'v4-css',
174
+ configPath,
175
+ };
176
+ }
177
+ }
178
+ catch {
179
+ // Silently continue
180
+ }
181
+ }
182
+ return null;
183
+ }
184
+ function parseV4ThemeBlocks(css) {
185
+ const tokens = {
186
+ colors: new Map(),
187
+ spacing: new Map(),
188
+ fontSize: new Map(),
189
+ borderRadius: new Map(),
190
+ };
191
+ // Match @theme { ... } blocks
192
+ const themeRegex = /@theme\s*\{([^}]*(?:\{[^}]*\}[^}]*)*)\}/g;
193
+ let match;
194
+ while ((match = themeRegex.exec(css)) !== null) {
195
+ const block = match[1];
196
+ // Parse individual declarations: --key: value;
197
+ const declRegex = /--([a-zA-Z0-9_-]+)\s*:\s*([^;]+);/g;
198
+ let declMatch;
199
+ while ((declMatch = declRegex.exec(block)) !== null) {
200
+ const name = declMatch[1].trim();
201
+ const value = declMatch[2].trim();
202
+ // Classify the token by naming convention
203
+ if (name.startsWith('color-') || name === 'colors') {
204
+ const colorName = name.startsWith('color-') ? name.slice(6) : name;
205
+ tokens.colors.set(colorName, value);
206
+ }
207
+ else if (name.startsWith('spacing-') || name.endsWith('-spacing')) {
208
+ const spaceName = name.startsWith('spacing-') ? name.slice(8) : name;
209
+ tokens.spacing.set(spaceName, value);
210
+ }
211
+ else if (name.startsWith('font-size-') || name.endsWith('-font-size')) {
212
+ const fontSizeName = name.startsWith('font-size-') ? name.slice(10) : name;
213
+ tokens.fontSize.set(fontSizeName, value);
214
+ }
215
+ else if (name.startsWith('radius-') || name.endsWith('-radius')) {
216
+ const radiusName = name.startsWith('radius-') ? name.slice(7) : name;
217
+ tokens.borderRadius.set(radiusName, value);
218
+ }
219
+ // Many v4 themes use dotted notation: --color-blue-500, --spacing-4
220
+ if (name.startsWith('color-')) {
221
+ const colorName = name.slice(6);
222
+ tokens.colors.set(colorName, value);
223
+ }
224
+ }
225
+ // Re-parse: dotted notation like --color-blue-500, --color-red-400
226
+ resetLastIndex(declRegex);
227
+ while ((declMatch = declRegex.exec(block)) !== null) {
228
+ const name = declMatch[1].trim();
229
+ const value = declMatch[2].trim();
230
+ if (name.startsWith('color-')) {
231
+ const colorName = name.slice(6);
232
+ if (!tokens.colors.has(colorName)) {
233
+ tokens.colors.set(colorName, value);
234
+ }
235
+ }
236
+ }
237
+ }
238
+ return tokens;
239
+ }
240
+ // ---------------------------------------------------------------------------
241
+ // Helpers
242
+ // ---------------------------------------------------------------------------
243
+ function mergeThemeConfig(base, extend) {
244
+ const merged = {};
245
+ for (const [key, value] of Object.entries(base)) {
246
+ if (typeof value === 'string') {
247
+ merged[key] = value;
248
+ }
249
+ else if (typeof value === 'object' && value !== null) {
250
+ // Nested objects like colors: { blue: { 500: '#...' } }
251
+ flattenNested(key, value, merged);
252
+ }
253
+ }
254
+ for (const [key, value] of Object.entries(extend)) {
255
+ if (typeof value === 'string') {
256
+ merged[key] = value;
257
+ }
258
+ else if (typeof value === 'object' && value !== null) {
259
+ flattenNested(key, value, merged);
260
+ }
261
+ }
262
+ return merged;
263
+ }
264
+ function flattenNested(prefix, obj, out) {
265
+ for (const [key, value] of Object.entries(obj)) {
266
+ if (typeof value === 'string') {
267
+ // Handle DEFAULT key: "DEFAULT": "#fff" → out["blue"] = "#fff"
268
+ if (key === 'DEFAULT') {
269
+ out[prefix] = value;
270
+ }
271
+ else {
272
+ out[`${prefix}.${key}`] = value;
273
+ }
274
+ }
275
+ else if (typeof value === 'object' && value !== null) {
276
+ // Nested object: { blue: { 500: '#...', 600: '#...' } }
277
+ flattenNested(`${prefix}.${key}`, value, out);
278
+ }
279
+ }
280
+ }
281
+ function resolveSpacing(spacing) {
282
+ if (!spacing)
283
+ return {};
284
+ if (typeof spacing === 'function') {
285
+ // Spacing in Tailwind v3 can be a function
286
+ try {
287
+ return spacing();
288
+ }
289
+ catch {
290
+ return {};
291
+ }
292
+ }
293
+ return spacing;
294
+ }
295
+ function resetLastIndex(regex) {
296
+ regex.lastIndex = 0;
297
+ }
298
+ // ---------------------------------------------------------------------------
299
+ // Bundled Defaults
300
+ // ---------------------------------------------------------------------------
301
+ function defaultColorScale() {
302
+ // Tailwind v4 default color palette (subset — core grays + popular hues)
303
+ return {
304
+ 'white': '#ffffff',
305
+ 'black': '#000000',
306
+ 'transparent': 'transparent',
307
+ 'current': 'currentColor',
308
+ // Slate
309
+ 'slate.50': '#f8fafc', 'slate.100': '#f1f5f9', 'slate.200': '#e2e8f0',
310
+ 'slate.300': '#cbd5e1', 'slate.400': '#94a3b8', 'slate.500': '#64748b',
311
+ 'slate.600': '#475569', 'slate.700': '#334155', 'slate.800': '#1e293b',
312
+ 'slate.900': '#0f172a', 'slate.950': '#020617',
313
+ // Gray
314
+ 'gray.50': '#f9fafb', 'gray.100': '#f3f4f6', 'gray.200': '#e5e7eb',
315
+ 'gray.300': '#d1d5db', 'gray.400': '#9ca3af', 'gray.500': '#6b7280',
316
+ 'gray.600': '#4b5563', 'gray.700': '#374151', 'gray.800': '#1f2937',
317
+ 'gray.900': '#111827', 'gray.950': '#030712',
318
+ // Red
319
+ 'red.50': '#fef2f2', 'red.100': '#fee2e2', 'red.200': '#fecaca',
320
+ 'red.300': '#fca5a5', 'red.400': '#f87171', 'red.500': '#ef4444',
321
+ 'red.600': '#dc2626', 'red.700': '#b91c1c', 'red.800': '#991b1b',
322
+ 'red.900': '#7f1d1d', 'red.950': '#450a0a',
323
+ // Blue
324
+ 'blue.50': '#eff6ff', 'blue.100': '#dbeafe', 'blue.200': '#bfdbfe',
325
+ 'blue.300': '#93c5fd', 'blue.400': '#60a5fa', 'blue.500': '#3b82f6',
326
+ 'blue.600': '#2563eb', 'blue.700': '#1d4ed8', 'blue.800': '#1e40af',
327
+ 'blue.900': '#1e3a8a', 'blue.950': '#172554',
328
+ // Green
329
+ 'green.50': '#f0fdf4', 'green.100': '#dcfce7', 'green.200': '#bbf7d0',
330
+ 'green.300': '#86efac', 'green.400': '#4ade80', 'green.500': '#22c55e',
331
+ 'green.600': '#16a34a', 'green.700': '#15803d', 'green.800': '#166534',
332
+ 'green.900': '#14532d', 'green.950': '#052e16',
333
+ // Yellow
334
+ 'yellow.50': '#fefce8', 'yellow.100': '#fef9c3', 'yellow.200': '#fef08a',
335
+ 'yellow.300': '#fde047', 'yellow.400': '#facc15', 'yellow.500': '#eab308',
336
+ 'yellow.600': '#ca8a04', 'yellow.700': '#a16207', 'yellow.800': '#854d0e',
337
+ 'yellow.900': '#713f12', 'yellow.950': '#422006',
338
+ // Indigo
339
+ 'indigo.50': '#eef2ff', 'indigo.100': '#e0e7ff', 'indigo.200': '#c7d2fe',
340
+ 'indigo.300': '#a5b4fc', 'indigo.400': '#818cf8', 'indigo.500': '#6366f1',
341
+ 'indigo.600': '#4f46e5', 'indigo.700': '#4338ca', 'indigo.800': '#3730a3',
342
+ 'indigo.900': '#312e81', 'indigo.950': '#1e1b4b',
343
+ };
344
+ }
345
+ function defaultSpacingScale() {
346
+ // Tailwind spacing scale (px values)
347
+ return {
348
+ '0': '0px', 'px': '1px', '0.5': '2px',
349
+ '1': '4px', '2': '8px', '3': '12px', '4': '16px',
350
+ '5': '20px', '6': '24px', '7': '28px', '8': '32px',
351
+ '9': '36px', '10': '40px', '11': '44px', '12': '48px',
352
+ '14': '56px', '16': '64px', '20': '80px', '24': '96px',
353
+ '28': '112px', '32': '128px', '36': '144px', '40': '160px',
354
+ '44': '176px', '48': '192px', '52': '208px', '56': '224px',
355
+ '60': '240px', '64': '256px', '72': '288px', '80': '320px',
356
+ '96': '384px',
357
+ };
358
+ }
359
+ function defaultFontSizeScale() {
360
+ return {
361
+ 'xs': '12px', 'sm': '14px', 'base': '16px',
362
+ 'lg': '18px', 'xl': '20px', '2xl': '24px',
363
+ '3xl': '30px', '4xl': '36px', '5xl': '48px',
364
+ '6xl': '60px', '7xl': '72px', '8xl': '96px', '9xl': '128px',
365
+ };
366
+ }
367
+ function defaultBorderRadiusScale() {
368
+ return {
369
+ 'none': '0px', 'sm': '2px', '': '4px', 'DEFAULT': '4px',
370
+ 'md': '6px', 'lg': '8px', 'xl': '12px', '2xl': '16px',
371
+ '3xl': '24px', 'full': '9999px',
372
+ };
373
+ }
374
+ //# sourceMappingURL=tailwindConfigLoader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tailwindConfigLoader.js","sourceRoot":"","sources":["../../src/styles/tailwindConfigLoader.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * Tailwind utility class expander — Spec 10.
3
+ *
4
+ * Expands Tailwind utility classes into normalized CSS declarations.
5
+ * Uses design tokens from the config loader for value resolution.
6
+ *
7
+ * Three-tier resolution for values:
8
+ * 1. Arbitrary values: mt-[17px] → margin-top: 17px
9
+ * 2. Theme tokens: bg-blue-500 → background-color: #3b82f6
10
+ * 3. Fixed scale: rounded-lg → border-radius: 8px
11
+ */
12
+ import type { NormalizedDeclaration } from './types.js';
13
+ import type { TailwindThemeTokens } from './tailwindConfigLoader.js';
14
+ /**
15
+ * Expand a single Tailwind utility class into normalized declarations.
16
+ *
17
+ * @param className - The utility class (e.g. "bg-blue-500", "mt-4", "hover:bg-red-500")
18
+ * @param tokens - Theme tokens from config loader (or defaults)
19
+ * @param filePath - Source file path (for the declaration)
20
+ * @param line - Line number (for the declaration)
21
+ * @returns Array of NormalizedDeclaration, or empty if the class can't be expanded.
22
+ */
23
+ export declare function expandUtility(className: string, tokens: TailwindThemeTokens, filePath: string, line: number): NormalizedDeclaration[];
24
+ /**
25
+ * Expand variant-prefixed declarations by applying variantContext.
26
+ * This is a convenience wrapper that first expands the utility, then
27
+ * applies the variant context.
28
+ *
29
+ * @param variantPrefix - e.g. "hover", "sm:dark"
30
+ * @param declarations - Declarations to apply the variant to
31
+ */
32
+ export declare function expandVariant(variantPrefix: string, declarations: NormalizedDeclaration[]): NormalizedDeclaration[];
33
+ /**
34
+ * Heuristic check: does this class name look like a Tailwind utility?
35
+ * Used to skip non-utility class names without attempting expansion.
36
+ */
37
+ export declare function looksLikeTailwind(className: string): boolean;
38
+ //# sourceMappingURL=tailwindExpander.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tailwindExpander.d.ts","sourceRoot":"","sources":["../../src/styles/tailwindExpander.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,qBAAqB,EAAmC,MAAM,YAAY,CAAC;AAEzF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAkNrE;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAC3B,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,mBAAmB,EAC3B,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,GACX,qBAAqB,EAAE,CAqBzB;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAC3B,aAAa,EAAE,MAAM,EACrB,YAAY,EAAE,qBAAqB,EAAE,GACpC,qBAAqB,EAAE,CAQzB;AAmeD;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAe5D"}