code-auditor-mcp 2.6.1 → 3.0.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 (347) hide show
  1. package/README.md +319 -147
  2. package/dist/analyzers/analyzerUtils.d.ts +13 -11
  3. package/dist/analyzers/analyzerUtils.d.ts.map +1 -1
  4. package/dist/analyzers/analyzerUtils.js +22 -56
  5. package/dist/analyzers/analyzerUtils.js.map +1 -1
  6. package/dist/analyzers/cross-language/APIContractAnalyzer.d.ts.map +1 -1
  7. package/dist/analyzers/cross-language/CrossLanguageSOLIDAnalyzer.d.ts.map +1 -1
  8. package/dist/analyzers/cross-language/CrossLanguageSOLIDAnalyzer.js.map +1 -1
  9. package/dist/analyzers/cross-language/DependencyGraphBuilder.d.ts.map +1 -1
  10. package/dist/analyzers/cross-language/DependencyGraphBuilder.js.map +1 -1
  11. package/dist/analyzers/cross-language/SchemaValidator.d.ts.map +1 -1
  12. package/dist/analyzers/cross-language/SchemaValidator.js.map +1 -1
  13. package/dist/analyzers/dataAccessAnalyzer.d.ts.map +1 -1
  14. package/dist/analyzers/dataAccessAnalyzer.js +50 -24
  15. package/dist/analyzers/dataAccessAnalyzer.js.map +1 -1
  16. package/dist/analyzers/documentationAnalyzer.d.ts +4 -1
  17. package/dist/analyzers/documentationAnalyzer.d.ts.map +1 -1
  18. package/dist/analyzers/documentationAnalyzer.js +210 -111
  19. package/dist/analyzers/documentationAnalyzer.js.map +1 -1
  20. package/dist/analyzers/dryAnalyzer.d.ts.map +1 -1
  21. package/dist/analyzers/dryAnalyzer.js +190 -58
  22. package/dist/analyzers/dryAnalyzer.js.map +1 -1
  23. package/dist/analyzers/invariantsAnalyzer.d.ts +20 -0
  24. package/dist/analyzers/invariantsAnalyzer.d.ts.map +1 -0
  25. package/dist/analyzers/invariantsAnalyzer.js +148 -0
  26. package/dist/analyzers/invariantsAnalyzer.js.map +1 -0
  27. package/dist/analyzers/reactAnalyzer.d.ts.map +1 -1
  28. package/dist/analyzers/reactAnalyzer.js +2 -2
  29. package/dist/analyzers/reactAnalyzer.js.map +1 -1
  30. package/dist/analyzers/schemaAnalyzer.d.ts +2 -0
  31. package/dist/analyzers/schemaAnalyzer.d.ts.map +1 -1
  32. package/dist/analyzers/schemaAnalyzer.js +306 -147
  33. package/dist/analyzers/schemaAnalyzer.js.map +1 -1
  34. package/dist/analyzers/solidAnalyzer.d.ts.map +1 -1
  35. package/dist/analyzers/solidAnalyzer.js +145 -119
  36. package/dist/analyzers/solidAnalyzer.js.map +1 -1
  37. package/dist/analyzers/universal/UniversalDRYAnalyzer.d.ts +3 -1
  38. package/dist/analyzers/universal/UniversalDRYAnalyzer.d.ts.map +1 -1
  39. package/dist/analyzers/universal/UniversalDRYAnalyzer.js +41 -1
  40. package/dist/analyzers/universal/UniversalDRYAnalyzer.js.map +1 -1
  41. package/dist/analyzers/universal/UniversalDataAccessAnalyzer.d.ts.map +1 -1
  42. package/dist/analyzers/universal/UniversalDataAccessAnalyzer.js +8 -8
  43. package/dist/analyzers/universal/UniversalDataAccessAnalyzer.js.map +1 -1
  44. package/dist/analyzers/universal/UniversalDocumentationAnalyzer.d.ts.map +1 -1
  45. package/dist/analyzers/universal/UniversalDocumentationAnalyzer.js +6 -6
  46. package/dist/analyzers/universal/UniversalDocumentationAnalyzer.js.map +1 -1
  47. package/dist/analyzers/universal/UniversalSOLIDAnalyzer.d.ts.map +1 -1
  48. package/dist/analyzers/universal/UniversalSchemaAnalyzer.d.ts.map +1 -1
  49. package/dist/analyzers/universal/UniversalSchemaAnalyzer.js +1 -1
  50. package/dist/analyzers/universal/UniversalSchemaAnalyzer.js.map +1 -1
  51. package/dist/api/index.js +1 -0
  52. package/dist/api/index.js.map +1 -1
  53. package/dist/auditRunner.d.ts.map +1 -1
  54. package/dist/auditRunner.js +367 -24
  55. package/dist/auditRunner.js.map +1 -1
  56. package/dist/cli.d.ts +1 -1
  57. package/dist/cli.d.ts.map +1 -1
  58. package/dist/cli.js +740 -18
  59. package/dist/cli.js.map +1 -1
  60. package/dist/codeIndexDB-enhanced.d.ts +35 -13
  61. package/dist/codeIndexDB-enhanced.d.ts.map +1 -1
  62. package/dist/codeIndexDB-enhanced.js +311 -214
  63. package/dist/codeIndexDB-enhanced.js.map +1 -1
  64. package/dist/codeIndexDB.d.ts +222 -0
  65. package/dist/codeIndexDB.d.ts.map +1 -0
  66. package/dist/codeIndexDB.js +2042 -0
  67. package/dist/codeIndexDB.js.map +1 -0
  68. package/dist/codeIndexService.d.ts.map +1 -1
  69. package/dist/codeIndexService.js.map +1 -1
  70. package/dist/componentScanner.d.ts +14 -8
  71. package/dist/componentScanner.d.ts.map +1 -1
  72. package/dist/componentScanner.js +136 -113
  73. package/dist/componentScanner.js.map +1 -1
  74. package/dist/config/configLoader.d.ts.map +1 -1
  75. package/dist/config/configLoader.js +10 -7
  76. package/dist/config/configLoader.js.map +1 -1
  77. package/dist/config/defaults.d.ts.map +1 -1
  78. package/dist/constants.js.map +1 -1
  79. package/dist/fingerprint.d.ts +15 -0
  80. package/dist/fingerprint.d.ts.map +1 -0
  81. package/dist/fingerprint.js +32 -0
  82. package/dist/fingerprint.js.map +1 -0
  83. package/dist/functionScanner.d.ts +5 -0
  84. package/dist/functionScanner.d.ts.map +1 -1
  85. package/dist/functionScanner.js +417 -341
  86. package/dist/functionScanner.js.map +1 -1
  87. package/dist/generators/AWSQConfigGenerator.d.ts.map +1 -1
  88. package/dist/generators/AiderConfigGenerator.d.ts.map +1 -1
  89. package/dist/generators/BaseConfigGenerator.d.ts.map +1 -1
  90. package/dist/generators/BaseConfigGenerator.js.map +1 -1
  91. package/dist/generators/ClaudeConfigGenerator.d.ts.map +1 -1
  92. package/dist/generators/ClineConfigGenerator.d.ts.map +1 -1
  93. package/dist/generators/CodeiumConfigGenerator.d.ts.map +1 -1
  94. package/dist/generators/ConfigGeneratorFactory.d.ts.map +1 -1
  95. package/dist/generators/ConfigGeneratorFactory.js.map +1 -1
  96. package/dist/generators/ContinueConfigGenerator.d.ts.map +1 -1
  97. package/dist/generators/CopilotConfigGenerator.d.ts.map +1 -1
  98. package/dist/generators/CursorConfigGenerator.d.ts.map +1 -1
  99. package/dist/generators/JetBrainsConfigGenerator.d.ts.map +1 -1
  100. package/dist/generators/VSCodeConfigGenerator.d.ts.map +1 -1
  101. package/dist/grammars/tree-sitter-go.wasm +0 -0
  102. package/dist/grammars/tree-sitter-javascript.wasm +0 -0
  103. package/dist/grammars/tree-sitter-tsx.wasm +0 -0
  104. package/dist/grammars/tree-sitter-typescript.wasm +0 -0
  105. package/dist/index.d.ts +1 -0
  106. package/dist/index.d.ts.map +1 -1
  107. package/dist/index.js +2 -1
  108. package/dist/index.js.map +1 -1
  109. package/dist/invariants/index.d.ts +9 -0
  110. package/dist/invariants/index.d.ts.map +1 -0
  111. package/dist/invariants/index.js +4 -0
  112. package/dist/invariants/index.js.map +1 -0
  113. package/dist/invariants/invariant-rules.schema.json +137 -0
  114. package/dist/invariants/ruleEngine.d.ts +32 -0
  115. package/dist/invariants/ruleEngine.d.ts.map +1 -0
  116. package/dist/invariants/ruleEngine.js +536 -0
  117. package/dist/invariants/ruleEngine.js.map +1 -0
  118. package/dist/invariants/ruleValidator.d.ts +17 -0
  119. package/dist/invariants/ruleValidator.d.ts.map +1 -0
  120. package/dist/invariants/ruleValidator.js +264 -0
  121. package/dist/invariants/ruleValidator.js.map +1 -0
  122. package/dist/invariants/types.d.ts +78 -0
  123. package/dist/invariants/types.d.ts.map +1 -0
  124. package/dist/invariants/types.js +5 -0
  125. package/dist/invariants/types.js.map +1 -0
  126. package/dist/languages/LanguageOrchestrator.d.ts.map +1 -1
  127. package/dist/languages/LanguageOrchestrator.js.map +1 -1
  128. package/dist/languages/LanguageRegistry.d.ts.map +1 -1
  129. package/dist/languages/RuntimeManager.d.ts.map +1 -1
  130. package/dist/languages/RuntimeManager.js +1 -1
  131. package/dist/languages/RuntimeManager.js.map +1 -1
  132. package/dist/languages/UniversalAnalyzer.d.ts.map +1 -1
  133. package/dist/languages/UniversalAnalyzer.js.map +1 -1
  134. package/dist/languages/adapterBridge.d.ts +102 -0
  135. package/dist/languages/adapterBridge.d.ts.map +1 -0
  136. package/dist/languages/adapterBridge.js +382 -0
  137. package/dist/languages/adapterBridge.js.map +1 -0
  138. package/dist/languages/go/GoAdapter.d.ts +37 -26
  139. package/dist/languages/go/GoAdapter.d.ts.map +1 -1
  140. package/dist/languages/go/GoAdapter.js +560 -281
  141. package/dist/languages/go/GoAdapter.js.map +1 -1
  142. package/dist/languages/index.d.ts +5 -2
  143. package/dist/languages/index.d.ts.map +1 -1
  144. package/dist/languages/index.js +11 -9
  145. package/dist/languages/index.js.map +1 -1
  146. package/dist/languages/tree-sitter/converter.d.ts +43 -0
  147. package/dist/languages/tree-sitter/converter.d.ts.map +1 -0
  148. package/dist/languages/tree-sitter/converter.js +150 -0
  149. package/dist/languages/tree-sitter/converter.js.map +1 -0
  150. package/dist/languages/tree-sitter/parser.d.ts +36 -0
  151. package/dist/languages/tree-sitter/parser.d.ts.map +1 -0
  152. package/dist/languages/tree-sitter/parser.js +114 -0
  153. package/dist/languages/tree-sitter/parser.js.map +1 -0
  154. package/dist/languages/types.d.ts +11 -0
  155. package/dist/languages/types.d.ts.map +1 -1
  156. package/dist/languages/typescript/TreeSitterTypeScriptAdapter.d.ts +92 -0
  157. package/dist/languages/typescript/TreeSitterTypeScriptAdapter.d.ts.map +1 -0
  158. package/dist/languages/typescript/TreeSitterTypeScriptAdapter.js +951 -0
  159. package/dist/languages/typescript/TreeSitterTypeScriptAdapter.js.map +1 -0
  160. package/dist/mcp-tools/projectTasks.d.ts +80 -11
  161. package/dist/mcp-tools/projectTasks.d.ts.map +1 -1
  162. package/dist/mcp-tools/projectTasks.js +279 -13
  163. package/dist/mcp-tools/projectTasks.js.map +1 -1
  164. package/dist/mcp-tools/whitelistTools.d.ts +21 -21
  165. package/dist/mcp-tools/whitelistTools.d.ts.map +1 -1
  166. package/dist/mcp-tools/workflowGuide.d.ts.map +1 -1
  167. package/dist/mcp-tools/workflowGuide.js +130 -126
  168. package/dist/mcp-tools/workflowGuide.js.map +1 -1
  169. package/dist/mcp-tools-shared.d.ts.map +1 -1
  170. package/dist/mcp-tools-shared.js.map +1 -1
  171. package/dist/mcp-ui-simple.js +1 -1
  172. package/dist/mcp-ui-simple.js.map +1 -1
  173. package/dist/mcp.d.ts +1 -1
  174. package/dist/mcp.d.ts.map +1 -1
  175. package/dist/mcp.js +1455 -1132
  176. package/dist/mcp.js.map +1 -1
  177. package/dist/mcpAuditJobs.d.ts +4 -0
  178. package/dist/mcpAuditJobs.d.ts.map +1 -1
  179. package/dist/mcpAuditJobs.js +49 -2
  180. package/dist/mcpAuditJobs.js.map +1 -1
  181. package/dist/mcpDiagnostics.d.ts.map +1 -1
  182. package/dist/mcpDiagnostics.js +8 -5
  183. package/dist/mcpDiagnostics.js.map +1 -1
  184. package/dist/mcpToolErrors.d.ts.map +1 -1
  185. package/dist/mcpToolErrors.js.map +1 -1
  186. package/dist/native/ast-grep-napi.darwin-arm64.node +0 -0
  187. package/dist/native/ast-grep-napi.darwin-x64.node +0 -0
  188. package/dist/native/ast-grep-napi.linux-arm64-gnu.node +0 -0
  189. package/dist/native/ast-grep-napi.linux-arm64-musl.node +0 -0
  190. package/dist/native/ast-grep-napi.linux-x64-gnu.node +0 -0
  191. package/dist/native/ast-grep-napi.linux-x64-musl.node +0 -0
  192. package/dist/native/ast-grep-napi.win32-x64-msvc.node +0 -0
  193. package/dist/native-bootstrap.d.ts +15 -0
  194. package/dist/native-bootstrap.d.ts.map +1 -0
  195. package/dist/native-bootstrap.js +75 -0
  196. package/dist/native-bootstrap.js.map +1 -0
  197. package/dist/reporting/csvReportGenerator.d.ts.map +1 -1
  198. package/dist/reporting/htmlReportGenerator.d.ts.map +1 -1
  199. package/dist/reporting/jsonReportGenerator.d.ts.map +1 -1
  200. package/dist/reporting/reportGenerator.d.ts.map +1 -1
  201. package/dist/reporting/reportGenerator.js +4 -0
  202. package/dist/reporting/reportGenerator.js.map +1 -1
  203. package/dist/reporting/sarifReportGenerator.d.ts +39 -0
  204. package/dist/reporting/sarifReportGenerator.d.ts.map +1 -0
  205. package/dist/reporting/sarifReportGenerator.js +229 -0
  206. package/dist/reporting/sarifReportGenerator.js.map +1 -0
  207. package/dist/search/QueryParser.d.ts +41 -0
  208. package/dist/search/QueryParser.d.ts.map +1 -1
  209. package/dist/search/QueryParser.js +200 -19
  210. package/dist/search/QueryParser.js.map +1 -1
  211. package/dist/services/CodeMapGenerator.d.ts.map +1 -1
  212. package/dist/services/CodeMapGenerator.js +4 -4
  213. package/dist/services/CodeMapGenerator.js.map +1 -1
  214. package/dist/services/ProjectTaskRepository.d.ts +34 -9
  215. package/dist/services/ProjectTaskRepository.d.ts.map +1 -1
  216. package/dist/services/ProjectTaskRepository.js +385 -10
  217. package/dist/services/ProjectTaskRepository.js.map +1 -1
  218. package/dist/services/SchemaParser.d.ts.map +1 -1
  219. package/dist/services/SchemaParser.js +5 -8
  220. package/dist/services/SchemaParser.js.map +1 -1
  221. package/dist/services/auditJobService.d.ts +1 -1
  222. package/dist/services/projectTaskHelpers.js.map +1 -1
  223. package/dist/services/whitelistService.d.ts.map +1 -1
  224. package/dist/services/whitelistService.js +1 -1
  225. package/dist/services/whitelistService.js.map +1 -1
  226. package/dist/tool-registry.d.ts +79 -0
  227. package/dist/tool-registry.d.ts.map +1 -0
  228. package/dist/tool-registry.js +139 -0
  229. package/dist/tool-registry.js.map +1 -0
  230. package/dist/types/projectTask.d.ts +31 -0
  231. package/dist/types/projectTask.d.ts.map +1 -1
  232. package/dist/types.d.ts +26 -2
  233. package/dist/types.d.ts.map +1 -1
  234. package/dist/types.js.map +1 -1
  235. package/dist/ui/InteractivePrompts.d.ts.map +1 -1
  236. package/dist/ui/InteractivePrompts.js.map +1 -1
  237. package/dist/utils/astParser.d.ts +31 -38
  238. package/dist/utils/astParser.d.ts.map +1 -1
  239. package/dist/utils/astParser.js +138 -196
  240. package/dist/utils/astParser.js.map +1 -1
  241. package/dist/utils/astUtils.d.ts +87 -58
  242. package/dist/utils/astUtils.d.ts.map +1 -1
  243. package/dist/utils/astUtils.js +852 -581
  244. package/dist/utils/astUtils.js.map +1 -1
  245. package/dist/utils/componentPatterns.js.map +1 -1
  246. package/dist/utils/componentResponsibility.d.ts +13 -9
  247. package/dist/utils/componentResponsibility.d.ts.map +1 -1
  248. package/dist/utils/componentResponsibility.js +236 -206
  249. package/dist/utils/componentResponsibility.js.map +1 -1
  250. package/dist/utils/dependencyExtractor.d.ts +11 -6
  251. package/dist/utils/dependencyExtractor.d.ts.map +1 -1
  252. package/dist/utils/dependencyExtractor.js +200 -119
  253. package/dist/utils/dependencyExtractor.js.map +1 -1
  254. package/dist/utils/fileDiscovery.d.ts +1 -1
  255. package/dist/utils/fileDiscovery.d.ts.map +1 -1
  256. package/dist/utils/fileDiscovery.js.map +1 -1
  257. package/dist/utils/jsDocParser.d.ts +27 -30
  258. package/dist/utils/jsDocParser.d.ts.map +1 -1
  259. package/dist/utils/jsDocParser.js +271 -207
  260. package/dist/utils/jsDocParser.js.map +1 -1
  261. package/dist/utils/reactDetection.d.ts +27 -12
  262. package/dist/utils/reactDetection.d.ts.map +1 -1
  263. package/dist/utils/reactDetection.js +331 -219
  264. package/dist/utils/reactDetection.js.map +1 -1
  265. package/dist/workers/auditWorker.js +17 -3
  266. package/dist/workers/auditWorker.js.map +1 -1
  267. package/package.json +54 -51
  268. package/dist/adapters/GoAdapter.d.ts +0 -53
  269. package/dist/adapters/GoAdapter.d.ts.map +0 -1
  270. package/dist/adapters/GoAdapter.js +0 -611
  271. package/dist/adapters/GoAdapter.js.map +0 -1
  272. package/dist/adapters/GoConfig.d.ts +0 -35
  273. package/dist/adapters/GoConfig.d.ts.map +0 -1
  274. package/dist/adapters/GoConfig.js +0 -155
  275. package/dist/adapters/GoConfig.js.map +0 -1
  276. package/dist/adapters/LanguageAdapter.d.ts +0 -135
  277. package/dist/adapters/LanguageAdapter.d.ts.map +0 -1
  278. package/dist/adapters/LanguageAdapter.js +0 -47
  279. package/dist/adapters/LanguageAdapter.js.map +0 -1
  280. package/dist/adapters/TypeScriptAdapter.d.ts +0 -43
  281. package/dist/adapters/TypeScriptAdapter.d.ts.map +0 -1
  282. package/dist/adapters/TypeScriptAdapter.js +0 -386
  283. package/dist/adapters/TypeScriptAdapter.js.map +0 -1
  284. package/dist/adapters/UniversalAnalyzer.d.ts +0 -42
  285. package/dist/adapters/UniversalAnalyzer.d.ts.map +0 -1
  286. package/dist/adapters/UniversalAnalyzer.js +0 -103
  287. package/dist/adapters/UniversalAnalyzer.js.map +0 -1
  288. package/dist/adapters/UniversalSOLIDAnalyzer.d.ts +0 -48
  289. package/dist/adapters/UniversalSOLIDAnalyzer.d.ts.map +0 -1
  290. package/dist/adapters/UniversalSOLIDAnalyzer.js +0 -178
  291. package/dist/adapters/UniversalSOLIDAnalyzer.js.map +0 -1
  292. package/dist/adapters/solidAnalyzerCompat.d.ts +0 -21
  293. package/dist/adapters/solidAnalyzerCompat.d.ts.map +0 -1
  294. package/dist/adapters/solidAnalyzerCompat.js +0 -78
  295. package/dist/adapters/solidAnalyzerCompat.js.map +0 -1
  296. package/dist/analyzers/dataAccessAnalyzerCompat.d.ts +0 -20
  297. package/dist/analyzers/dataAccessAnalyzerCompat.d.ts.map +0 -1
  298. package/dist/analyzers/dataAccessAnalyzerCompat.js +0 -59
  299. package/dist/analyzers/dataAccessAnalyzerCompat.js.map +0 -1
  300. package/dist/analyzers/documentationAnalyzerCompat.d.ts +0 -20
  301. package/dist/analyzers/documentationAnalyzerCompat.d.ts.map +0 -1
  302. package/dist/analyzers/documentationAnalyzerCompat.js +0 -52
  303. package/dist/analyzers/documentationAnalyzerCompat.js.map +0 -1
  304. package/dist/analyzers/dryAnalyzerCompat.d.ts +0 -20
  305. package/dist/analyzers/dryAnalyzerCompat.d.ts.map +0 -1
  306. package/dist/analyzers/dryAnalyzerCompat.js +0 -44
  307. package/dist/analyzers/dryAnalyzerCompat.js.map +0 -1
  308. package/dist/analyzers/schemaAnalyzerCompat.d.ts +0 -20
  309. package/dist/analyzers/schemaAnalyzerCompat.d.ts.map +0 -1
  310. package/dist/analyzers/schemaAnalyzerCompat.js +0 -69
  311. package/dist/analyzers/schemaAnalyzerCompat.js.map +0 -1
  312. package/dist/analyzers/solidAnalyzerCompat.d.ts +0 -20
  313. package/dist/analyzers/solidAnalyzerCompat.d.ts.map +0 -1
  314. package/dist/analyzers/solidAnalyzerCompat.js +0 -78
  315. package/dist/analyzers/solidAnalyzerCompat.js.map +0 -1
  316. package/dist/codeIndexDb.d.ts +0 -394
  317. package/dist/codeIndexDb.d.ts.map +0 -1
  318. package/dist/codeIndexDb.js +0 -2077
  319. package/dist/codeIndexDb.js.map +0 -1
  320. package/dist/languages/typescript/TypeScriptAdapter.d.ts +0 -108
  321. package/dist/languages/typescript/TypeScriptAdapter.d.ts.map +0 -1
  322. package/dist/languages/typescript/TypeScriptAdapter.js +0 -567
  323. package/dist/languages/typescript/TypeScriptAdapter.js.map +0 -1
  324. package/dist/languages/typescript/test-extraction.d.ts +0 -2
  325. package/dist/languages/typescript/test-extraction.d.ts.map +0 -1
  326. package/dist/languages/typescript/test-extraction.js +0 -36
  327. package/dist/languages/typescript/test-extraction.js.map +0 -1
  328. package/dist/mcp-hybrid.d.ts +0 -10
  329. package/dist/mcp-hybrid.d.ts.map +0 -1
  330. package/dist/mcp-hybrid.js +0 -41
  331. package/dist/mcp-hybrid.js.map +0 -1
  332. package/dist/mcp-index.d.ts +0 -13
  333. package/dist/mcp-index.d.ts.map +0 -1
  334. package/dist/mcp-index.js +0 -123
  335. package/dist/mcp-index.js.map +0 -1
  336. package/dist/mcp-standalone.d.ts +0 -3
  337. package/dist/mcp-standalone.d.ts.map +0 -1
  338. package/dist/mcp-standalone.js +0 -1201
  339. package/dist/mcp-standalone.js.map +0 -1
  340. package/dist/mcp-ui-server.d.ts +0 -27
  341. package/dist/mcp-ui-server.d.ts.map +0 -1
  342. package/dist/mcp-ui-server.js +0 -484
  343. package/dist/mcp-ui-server.js.map +0 -1
  344. package/dist/test-multi-strategy-search.d.ts +0 -3
  345. package/dist/test-multi-strategy-search.d.ts.map +0 -1
  346. package/dist/test-multi-strategy-search.js +0 -170
  347. package/dist/test-multi-strategy-search.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"schemaAnalyzer.js","sourceRoot":"","sources":["../../src/analyzers/schemaAnalyzer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,IAAI,CAAC;AACpC,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,YAAY,CAAC;AAa5B,MAAM,cAAc,GAAyB;IAC3C,wBAAwB,EAAE,IAAI;IAC9B,sBAAsB,EAAE,IAAI;IAC5B,sBAAsB,EAAE,IAAI;IAC5B,kBAAkB,EAAE,KAAK;IACzB,qBAAqB,EAAE,IAAI;IAC3B,qBAAqB,EAAE,CAAC;IACxB,oBAAoB,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC;IAC9D,eAAe,EAAE,EAAE;CACpB,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAqB,KAAK,EAClD,KAAe,EACf,SAAwC,EAAE,EAC1C,OAAO,GAAG,EAAE,EACZ,gBAAgB,EAChB,EAAE;IACF,MAAM,WAAW,GAAG,EAAE,GAAG,cAAc,EAAE,GAAG,MAAM,EAAE,CAAC;IACrD,MAAM,UAAU,GAAsB,EAAE,CAAC;IACzC,MAAM,MAAM,GAA2C,EAAE,CAAC;IAC1D,IAAI,cAAc,GAAG,CAAC,CAAC;IACvB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAE7B,sBAAsB;IACtB,MAAM,EAAE,GAAG,WAAW,CAAC,WAAW,EAAE,CAAC;IACrC,MAAM,EAAE,CAAC,UAAU,EAAE,CAAC;IAEtB,yBAAyB;IACzB,MAAM,aAAa,GAAG,MAAM,EAAE,CAAC,aAAa,EAAE,CAAC;IAE/C,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,IAAI,WAAW,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzE,UAAU,CAAC,IAAI,CAAC;YACd,IAAI,EAAE,SAAS;YACf,QAAQ,EAAE,SAAS;YACnB,OAAO,EAAE,yCAAyC;YAClD,UAAU,EAAE,mBAAmB;YAC/B,OAAO,EAAE,uDAAuD;SACjE,CAAC,CAAC;IACL,CAAC;IAED,0CAA0C;IAC1C,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC;IACpC,MAAM,aAAa,GAAG,IAAI,GAAG,EAAkB,CAAC;IAEhD,KAAK,MAAM,EAAE,MAAM,EAAE,IAAI,aAAa,EAAE,CAAC;QACvC,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;YACxC,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;gBACpC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC1B,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;YAC7C,CAAC;QACH,CAAC;IACH,CAAC;IAED,oBAAoB;IACpB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC;YACH,gBAAgB,EAAE,CAAC;gBACjB,OAAO,EAAE,cAAc;gBACvB,KAAK,EAAE,KAAK,CAAC,MAAM;gBACnB,QAAQ,EAAE,QAAQ;gBAClB,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;gBACzB,KAAK,EAAE,WAAW;aACnB,CAAC,CAAC;YAEH,wBAAwB;YACxB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,EAAE,CAAC;gBACtC,SAAS;YACX,CAAC;YAED,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YACjD,MAAM,cAAc,GAAG,MAAM,WAAW,CACtC,IAAI,EACJ,OAAO,EACP,SAAS,EACT,aAAa,EACb,WAAW,EACX,EAAE,CACH,CAAC;YAEF,UAAU,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC,CAAC;YACnC,cAAc,EAAE,CAAC;QAEnB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI;gBACJ,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe;aAChE,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO;QACL,UAAU;QACV,cAAc;QACd,aAAa,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;QACrC,MAAM,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;QAC9C,YAAY,EAAE,QAAQ;QACtB,QAAQ,EAAE;YACR,aAAa,EAAE,aAAa,CAAC,MAAM;YACnC,WAAW,EAAE,SAAS,CAAC,IAAI;YAC3B,MAAM,EAAE,WAAW;SACpB;KACF,CAAC;AACJ,CAAC,CAAC;AAEF,KAAK,UAAU,WAAW,CACxB,QAAgB,EAChB,OAAe,EACf,SAAsB,EACtB,aAAkC,EAClC,MAA4B,EAC5B,EAAe;IAEf,MAAM,UAAU,GAAsB,EAAE,CAAC;IAEzC,8BAA8B;IAC9B,MAAM,UAAU,GAAG,EAAE,CAAC,gBAAgB,CACpC,QAAQ,EACR,OAAO,EACP,EAAE,CAAC,YAAY,CAAC,MAAM,EACtB,IAAI,CACL,CAAC;IAEF,mCAAmC;IACnC,MAAM,YAAY,GAOb,EAAE,CAAC;IAER,kBAAkB;IAClB,SAAS,KAAK,CAAC,IAAa,EAAE,eAAwB;QACpD,+BAA+B;QAE/B,gDAAgD;QAChD,IAAI,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;YAClE,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;YACtC,IAAI,CAAC,SAAS,EAAE,YAAY,EAAE,aAAa,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAChE,MAAM,SAAS,GAAG,2BAA2B,CAAC,IAAI,CAAC,CAAC;gBACpD,IAAI,SAAS,EAAE,CAAC;oBACd,MAAM,GAAG,GAAG,UAAU,CAAC,6BAA6B,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;oBACtE,YAAY,CAAC,IAAI,CAAC;wBAChB,SAAS;wBACT,YAAY,EAAE,eAAe,IAAI,mBAAmB;wBACpD,SAAS,EAAE,WAAoB;wBAC/B,IAAI,EAAE,GAAG,CAAC,IAAI,GAAG,CAAC;wBAClB,MAAM,EAAE,GAAG,CAAC,SAAS,GAAG,CAAC;qBAC1B,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;QAED,iCAAiC;QACjC,IAAI,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;YACjE,MAAM,aAAa,GAAG,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACxD,IAAI,aAAa,KAAK,QAAQ,EAAE,CAAC;gBAC/B,2CAA2C;gBAC3C,MAAM,SAAS,GAAG,2BAA2B,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBAC/D,IAAI,SAAS,EAAE,CAAC;oBACd,MAAM,GAAG,GAAG,UAAU,CAAC,6BAA6B,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;oBACtE,YAAY,CAAC,IAAI,CAAC;wBAChB,SAAS;wBACT,YAAY,EAAE,eAAe,IAAI,mBAAmB;wBACpD,SAAS,EAAE,WAAoB;wBAC/B,IAAI,EAAE,GAAG,CAAC,IAAI,GAAG,CAAC;wBAClB,MAAM,EAAE,GAAG,CAAC,SAAS,GAAG,CAAC;qBAC1B,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;QAED,oCAAoC;QACpC,IAAI,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;YACjE,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACtC,qDAAqD;gBACrD,qBAAqB,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;YAC/C,CAAC;QACH,CAAC;QAED,2CAA2C;QAC3C,IAAI,EAAE,CAAC,0BAA0B,CAAC,IAAI,CAAC,EAAE,CAAC;YACxC,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;YACpC,6EAA6E;YAC7E,IAAI,qBAAqB,CAAC,IAAI,CAAC,EAAE,CAAC;gBAChC,MAAM,GAAG,GAAG,UAAU,CAAC,6BAA6B,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;gBACtE,YAAY,CAAC,IAAI,CAAC;oBAChB,SAAS,EAAE,YAAY;oBACvB,YAAY,EAAE,eAAe,IAAI,SAAS;oBAC1C,SAAS,EAAE,OAAgB;oBAC3B,IAAI,EAAE,GAAG,CAAC,IAAI,GAAG,CAAC;oBAClB,MAAM,EAAE,GAAG,CAAC,SAAS,GAAG,CAAC;iBAC1B,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,8DAA8D;QAC9D,IAAI,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAAE,CAAC;YAC9D,MAAM,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;YACrC,IAAI,SAAS,EAAE,CAAC;gBACd,MAAM,aAAa,GAAG,YAAY,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;gBACnE,UAAU,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC;gBAE7C,sBAAsB;gBACtB,KAAK,MAAM,KAAK,IAAI,aAAa,CAAC,MAAM,EAAE,CAAC;oBACzC,MAAM,GAAG,GAAG,UAAU,CAAC,6BAA6B,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;oBACtE,YAAY,CAAC,IAAI,CAAC;wBAChB,SAAS,EAAE,KAAK;wBAChB,YAAY,EAAE,eAAe,IAAI,SAAS;wBAC1C,SAAS,EAAE,aAAa,CAAC,IAA8D;wBACvF,IAAI,EAAE,GAAG,CAAC,IAAI,GAAG,CAAC;wBAClB,MAAM,EAAE,GAAG,CAAC,SAAS,GAAG,CAAC;wBACzB,QAAQ,EAAE,SAAS;qBACpB,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;QAED,8BAA8B;QAC9B,IAAI,EAAE,CAAC,0BAA0B,CAAC,IAAI,CAAC,EAAE,CAAC;YACxC,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;YACpC,IAAI,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC;gBAChC,MAAM,GAAG,GAAG,UAAU,CAAC,6BAA6B,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;gBACtE,YAAY,CAAC,IAAI,CAAC;oBAChB,SAAS,EAAE,YAAY;oBACvB,YAAY,EAAE,eAAe,IAAI,SAAS;oBAC1C,SAAS,EAAE,WAAoB;oBAC/B,IAAI,EAAE,GAAG,CAAC,IAAI,GAAG,CAAC;oBAClB,MAAM,EAAE,GAAG,CAAC,SAAS,GAAG,CAAC;iBAC1B,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,iCAAiC;QACjC,IAAI,QAAQ,GAAG,eAAe,CAAC;QAC/B,IAAI,EAAE,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;YAC/F,IAAI,EAAE,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;gBAChD,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;YAC5B,CAAC;iBAAM,IAAI,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBACtE,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;YAC5B,CAAC;QACH,CAAC;QAED,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;IACzD,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,CAAC;IAElB,mCAAmC;IACnC,IAAI,MAAM,CAAC,wBAAwB,EAAE,CAAC;QACpC,KAAK,MAAM,KAAK,IAAI,YAAY,EAAE,CAAC;YACjC,MAAM,EAAE,CAAC,iBAAiB,CAAC;gBACzB,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,QAAQ;gBACR,YAAY,EAAE,KAAK,CAAC,YAAY;gBAChC,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,QAAQ,EAAE,KAAK,CAAC,QAAQ;aACzB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,uBAAuB;IACvB,IAAI,MAAM,CAAC,sBAAsB,EAAE,CAAC;QAClC,UAAU,CAAC,IAAI,CAAC,GAAG,2BAA2B,CAAC,YAAY,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC;IACrF,CAAC;IAED,IAAI,MAAM,CAAC,qBAAqB,EAAE,CAAC;QACjC,UAAU,CAAC,IAAI,CAAC,GAAG,qBAAqB,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;IAC5E,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAS,YAAY,CAAC,IAA8C;IAClE,IAAI,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QACrC,6BAA6B;QAC7B,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;YAClD,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;YAClD,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YACrD,OAAO,IAAI,CAAC,IAAI,CAAC;QACnB,CAAC;IACH,CAAC;IAED,IAAI,EAAE,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAAE,CAAC;QAClC,wCAAwC;QACxC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QAC9C,IAAI,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC;YAC1D,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC/D,2CAA2C;YAC3C,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC;QACjC,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,YAAY,CAAC,KAAa,EAAE,SAAsB,EAAE,QAAgB;IAK3E,MAAM,UAAU,GAAsB,EAAE,CAAC;IACzC,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;IAEvC,IAAI,IAAI,GAAG,OAAO,CAAC;IACnB,IAAI,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAAE,IAAI,GAAG,OAAO,CAAC;SAC7C,IAAI,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAAE,IAAI,GAAG,QAAQ,CAAC;SACnD,IAAI,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAAE,IAAI,GAAG,QAAQ,CAAC;SACnD,IAAI,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAAE,IAAI,GAAG,QAAQ,CAAC;IAExD,wDAAwD;IACxD,MAAM,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC,wDAAwD,CAAC,CAAC;IAE3F,IAAI,YAAY,EAAE,CAAC;QACjB,KAAK,MAAM,KAAK,IAAI,YAAY,EAAE,CAAC;YACjC,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC;YAC3C,IAAI,SAAS,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC3C,UAAU,CAAC,IAAI,CAAC;oBACd,IAAI,EAAE,QAAQ;oBACd,QAAQ,EAAE,SAAS;oBACnB,OAAO,EAAE,UAAU,SAAS,+BAA+B;oBAC3D,UAAU,EAAE,mBAAmB;oBAC/B,SAAS;oBACT,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC;oBAChC,UAAU,EAAE,mEAAmE;iBAChF,CAAC,CAAC;YACL,CAAC;iBAAM,IAAI,SAAS,EAAE,CAAC;gBACrB,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACzB,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;AACtC,CAAC;AAED,SAAS,2BAA2B,CAClC,MAAkD,EAClD,SAAsB,EACtB,QAAgB;IAEhB,MAAM,UAAU,GAAsB,EAAE,CAAC;IAEzC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;YACpC,UAAU,CAAC,IAAI,CAAC;gBACd,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,QAAQ,EAAE,SAAS;gBACnB,OAAO,EAAE,+BAA+B,KAAK,CAAC,SAAS,GAAG;gBAC1D,UAAU,EAAE,mBAAmB;gBAC/B,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,UAAU,EAAE,mDAAmD;aAChE,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAS,qBAAqB,CAC5B,MAA0D,EAC1D,MAA4B,EAC5B,QAAgB;IAEhB,MAAM,UAAU,GAAsB,EAAE,CAAC;IAEzC,6BAA6B;IAC7B,MAAM,kBAAkB,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;QACtD,IAAI,KAAK,CAAC,SAAS,KAAK,WAAW,EAAE,CAAC;YACpC,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QAC/D,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC,EAAE,EAA4B,CAAC,CAAC;IAEjC,4CAA4C;IAC5C,KAAK,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,kBAAkB,CAAC,EAAE,CAAC;QACnE,IAAI,KAAK,GAAG,MAAM,CAAC,qBAAqB,EAAE,CAAC;YACzC,UAAU,CAAC,IAAI,CAAC;gBACd,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,YAAY;gBACtB,OAAO,EAAE,aAAa,QAAQ,SAAS,KAAK,uCAAuC,MAAM,CAAC,qBAAqB,GAAG;gBAClH,UAAU,EAAE,mBAAmB;gBAC/B,UAAU,EAAE,qEAAqE;aAClF,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,gCAAgC;AAChC,SAAS,2BAA2B,CAAC,IAAuB;IAC1D,0CAA0C;IAC1C,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACvE,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAChC,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAuB;IAC/C,IAAI,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;QACrC,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;IAC9B,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,2BAA2B,CAAC,IAAuB;IAC1D,oEAAoE;IACpE,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9B,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QACnC,IAAI,EAAE,CAAC,eAAe,CAAC,QAAQ,CAAC,EAAE,CAAC;YACjC,OAAO,QAAQ,CAAC,IAAI,CAAC;QACvB,CAAC;QACD,IAAI,EAAE,CAAC,yBAAyB,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC3C,yBAAyB;YACzB,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC;gBACvC,IAAI,EAAE,CAAC,oBAAoB,CAAC,IAAI,CAAC;oBAC7B,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC;oBAC1B,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM;oBACzB,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;oBACzC,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;gBAC/B,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,qBAAqB,CAAC,IAAsB,EAAE,eAAwB;IAC7E,uEAAuE;IACvE,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChD,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QACpC,IAAI,EAAE,CAAC,yBAAyB,CAAC,SAAS,CAAC,EAAE,CAAC;YAC5C,sDAAsD;YACtD,0BAA0B,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;QACzD,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,0BAA0B,CAAC,GAA+B,EAAE,eAAwB;IAC3F,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;QAClC,IAAI,EAAE,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,yBAAyB,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;YACpF,wBAAwB;YACxB,KAAK,MAAM,UAAU,IAAI,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,CAAC;gBACrD,IAAI,EAAE,CAAC,oBAAoB,CAAC,UAAU,CAAC;oBACnC,EAAE,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC;oBAChC,UAAU,CAAC,IAAI,CAAC,IAAI,KAAK,KAAK;oBAC9B,EAAE,CAAC,eAAe,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;oBAC/C,qCAAqC;oBACrC,MAAM,eAAe,GAAG,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC;oBACpD,+BAA+B;oBAC/B,kEAAkE;gBACpE,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,qBAAqB,CAAC,IAAiC;IAC9D,sDAAsD;IACtD,IAAI,EAAE,CAAC,0BAA0B,CAAC,IAAI,CAAC,UAAU,CAAC;QAC9C,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAChD,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC;QACjD,sCAAsC;QACtC,OAAO,CAAC,QAAQ,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;IACrE,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAuB;IAChD,IAAI,EAAE,QAAQ;IACd,OAAO,EAAE,aAAa;IACtB,aAAa,EAAE,cAAc;IAC7B,WAAW,EAAE,6FAA6F;IAC1G,QAAQ,EAAE,aAAa;CACxB,CAAC"}
1
+ {"version":3,"file":"schemaAnalyzer.js","sourceRoot":"","sources":["../../src/analyzers/schemaAnalyzer.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"solidAnalyzer.d.ts","sourceRoot":"","sources":["../../src/analyzers/solidAnalyzer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAEL,kBAAkB,EAClB,sBAAsB,EAMvB,MAAM,aAAa,CAAC;AAuBrB;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,sBAAsB,EAAE,MAAM,CAAC;IAC/B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,wBAAwB,EAAE,OAAO,CAAC;IAClC,yBAAyB,EAAE,OAAO,CAAC;IACnC,uBAAuB,EAAE,OAAO,CAAC;IAEjC,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,iBAAiB,CAAC,EAAE,sBAAsB,CAAC;IAC3C,4BAA4B,CAAC,EAAE,MAAM,CAAC;IACtC,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,8BAA8B,CAAC,EAAE,OAAO,CAAC;IACzC,iBAAiB,CAAC,EAAE;QAClB,CAAC,WAAW,EAAE,MAAM,GAAG;YACrB,mBAAmB,EAAE,MAAM,CAAC;SAC7B,CAAC;KACH,CAAC;CACH;AA66BD;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,kBAU3B,CAAC"}
1
+ {"version":3,"file":"solidAnalyzer.d.ts","sourceRoot":"","sources":["../../src/analyzers/solidAnalyzer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAEL,kBAAkB,EAClB,sBAAsB,EAMvB,MAAM,aAAa,CAAC;AAkCrB;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,sBAAsB,EAAE,MAAM,CAAC;IAC/B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,wBAAwB,EAAE,OAAO,CAAC;IAClC,yBAAyB,EAAE,OAAO,CAAC;IACnC,uBAAuB,EAAE,OAAO,CAAC;IAEjC,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,iBAAiB,CAAC,EAAE,sBAAsB,CAAC;IAC3C,4BAA4B,CAAC,EAAE,MAAM,CAAC;IACtC,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,8BAA8B,CAAC,EAAE,OAAO,CAAC;IACzC,iBAAiB,CAAC,EAAE;QAClB,CAAC,WAAW,EAAE,MAAM,GAAG;YACrB,mBAAmB,EAAE,MAAM,CAAC;SAC7B,CAAC;KACH,CAAC;CACH;AAu7BD;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,kBAU3B,CAAC"}
@@ -2,14 +2,23 @@
2
2
  * SOLID Principles Analyzer - Functional Implementation
3
3
  * Detects violations of SOLID principles in TypeScript/JavaScript code
4
4
  */
5
- import * as ts from 'typescript';
6
5
  import { ResponsibilityType } from '../types.js';
7
6
  import { createViolation, getNodePosition, findNodesOfType, getNodeName, traverseAST, processFiles } from './analyzerUtils.js';
7
+ import { hasModifier } from '../languages/adapterBridge.js';
8
8
  import { isReactComponent, getComponentName, detectComponentType, extractHooks, extractPropTypes } from '../utils/reactDetection.js';
9
9
  import { detectComponentResponsibilities, areResponsibilitiesRelated } from '../utils/componentResponsibility.js';
10
- import { detectComponentPattern, getUnrelatedResponsibilities, DEFAULT_PATTERNS } from '../utils/componentPatterns.js';
10
+ import { detectComponentPattern, getUnrelatedResponsibilities } from '../utils/componentPatterns.js';
11
11
  import { CodeIndexDB } from '../codeIndexDB.js';
12
12
  import { WhitelistType } from '../types/whitelist.js';
13
+ // ---------------------------------------------------------------------------
14
+ // Helpers
15
+ // ---------------------------------------------------------------------------
16
+ /** Get raw text from a tree-sitter node (stored on ASTNode.raw). */
17
+ function rawText(node) {
18
+ if (!node)
19
+ return '';
20
+ return node.raw?.text ?? '';
21
+ }
13
22
  /**
14
23
  * Default configuration
15
24
  */
@@ -81,27 +90,37 @@ function isFrameworkImport(importPath) {
81
90
  /**
82
91
  * Helper: Find import declaration for an identifier
83
92
  */
84
- function findImportForIdentifier(sourceFile, identifier) {
93
+ function findImportForIdentifier(rootNode, identifier) {
85
94
  let importPath;
86
- ts.forEachChild(sourceFile, node => {
87
- if (ts.isImportDeclaration(node) && node.moduleSpecifier && ts.isStringLiteral(node.moduleSpecifier)) {
88
- const moduleSpecifier = node.moduleSpecifier.text;
89
- // Check named imports
90
- if (node.importClause && node.importClause.namedBindings) {
91
- if (ts.isNamedImports(node.importClause.namedBindings)) {
92
- for (const element of node.importClause.namedBindings.elements) {
93
- if (element.name.text === identifier ||
94
- (element.propertyName && element.propertyName.text === identifier)) {
95
- importPath = moduleSpecifier;
96
- return;
97
- }
95
+ traverseAST(rootNode, node => {
96
+ if (node.type !== 'import_statement')
97
+ return;
98
+ const stringNode = node.children?.find(c => c.type === 'string');
99
+ if (!stringNode)
100
+ return;
101
+ const moduleSpecifier = rawText(stringNode).replace(/^["']|["']$/g, '');
102
+ const importClause = node.children?.find(c => c.type === 'import_clause');
103
+ if (!importClause)
104
+ return;
105
+ // Check named imports
106
+ const namedImports = importClause.children?.find(c => c.type === 'named_imports');
107
+ if (namedImports) {
108
+ for (const spec of namedImports.children ?? []) {
109
+ if (spec.type !== 'import_specifier')
110
+ continue;
111
+ const identifiers = spec.children?.filter(c => c.type === 'identifier') ?? [];
112
+ for (const idNode of identifiers) {
113
+ if (rawText(idNode) === identifier) {
114
+ importPath = moduleSpecifier;
115
+ return;
98
116
  }
99
117
  }
100
118
  }
101
- // Check default import
102
- if (node.importClause && node.importClause.name && node.importClause.name.text === identifier) {
103
- importPath = moduleSpecifier;
104
- }
119
+ }
120
+ // Check default import
121
+ const defaultImport = importClause.children?.find(c => c.type === 'identifier');
122
+ if (defaultImport && rawText(defaultImport) === identifier) {
123
+ importPath = moduleSpecifier;
105
124
  }
106
125
  });
107
126
  return importPath;
@@ -217,9 +236,10 @@ function isTestFile(filePath) {
217
236
  /**
218
237
  * Analyze a file for SOLID violations
219
238
  */
220
- const analyzeFile = async (filePath, sourceFile, config) => {
239
+ const analyzeFile = async (filePath, ast, config) => {
221
240
  const violations = [];
222
241
  const isTest = isTestFile(filePath);
242
+ const rootNode = ast.root;
223
243
  // Detect architectural layer for context-aware analysis
224
244
  const layer = detectArchitecturalLayer(filePath);
225
245
  const layerThresholds = getLayerThresholds(layer, config);
@@ -227,70 +247,71 @@ const analyzeFile = async (filePath, sourceFile, config) => {
227
247
  // Only apply layer defaults if the user hasn't configured them
228
248
  const effectiveConfig = { ...layerThresholds, ...config };
229
249
  // Check Single Responsibility Principle for classes
230
- const classes = findNodesOfType(sourceFile, ts.isClassDeclaration);
250
+ const classes = findNodesOfType(rootNode, n => n.type === 'class_declaration');
231
251
  classes.forEach(cls => {
232
- violations.push(...checkSingleResponsibility(cls, sourceFile, filePath, effectiveConfig));
252
+ violations.push(...checkSingleResponsibility(cls, filePath, effectiveConfig));
233
253
  });
234
254
  // Check Single Responsibility Principle for React components
235
255
  if (config.enableComponentSRP) {
236
256
  const processedComponents = new Set();
237
- traverseAST(sourceFile, node => {
257
+ traverseAST(rootNode, node => {
238
258
  if (isReactComponent(node)) {
239
259
  // Skip if this is an arrow function that's part of a variable declaration
240
260
  // that we've already processed
241
- if (ts.isArrowFunction(node) && node.parent &&
242
- ts.isVariableDeclaration(node.parent) &&
261
+ if (node.type === 'arrow_function' && node.parent?.type === 'variable_declarator' &&
243
262
  processedComponents.has(node.parent)) {
244
263
  return;
245
264
  }
246
265
  // For variable declarations with arrow functions, process the declaration
247
266
  // not the arrow function itself
248
- if (ts.isVariableDeclaration(node) && node.initializer &&
249
- ts.isArrowFunction(node.initializer)) {
250
- if (!processedComponents.has(node)) {
251
- processedComponents.add(node);
252
- violations.push(...checkComponentSRP(node, sourceFile, filePath, effectiveConfig));
267
+ if (node.type === 'variable_declarator') {
268
+ const initializer = node.children?.find(c => c.type !== 'identifier' && c.type !== 'type_annotation');
269
+ if (initializer?.type === 'arrow_function') {
270
+ if (!processedComponents.has(node)) {
271
+ processedComponents.add(node);
272
+ violations.push(...checkComponentSRP(node, filePath, effectiveConfig));
273
+ }
253
274
  }
254
275
  }
255
276
  else if (!processedComponents.has(node)) {
256
277
  processedComponents.add(node);
257
- violations.push(...checkComponentSRP(node, sourceFile, filePath, effectiveConfig));
278
+ violations.push(...checkComponentSRP(node, filePath, effectiveConfig));
258
279
  }
259
280
  }
260
281
  });
261
282
  }
262
283
  // Check Open/Closed Principle
263
- traverseAST(sourceFile, node => {
264
- violations.push(...checkOpenClosed(node, sourceFile, filePath, effectiveConfig));
284
+ traverseAST(rootNode, node => {
285
+ violations.push(...checkOpenClosed(node, filePath, effectiveConfig));
265
286
  });
266
287
  // Check Liskov Substitution Principle
267
288
  if (effectiveConfig.checkLiskovSubstitution) {
268
- violations.push(...checkLiskovSubstitution(sourceFile, filePath, effectiveConfig));
289
+ violations.push(...checkLiskovSubstitution(rootNode, filePath, effectiveConfig));
269
290
  }
270
291
  // Check Interface Segregation Principle
271
292
  if (effectiveConfig.checkInterfaceSegregation) {
272
- const interfaces = findNodesOfType(sourceFile, ts.isInterfaceDeclaration);
293
+ const interfaces = findNodesOfType(rootNode, n => n.type === 'interface_declaration');
273
294
  interfaces.forEach(iface => {
274
- violations.push(...checkInterfaceSegregation(iface, sourceFile, filePath, effectiveConfig));
295
+ violations.push(...checkInterfaceSegregation(iface, filePath, effectiveConfig));
275
296
  });
276
297
  }
277
298
  // Check Dependency Inversion Principle (skip for test files)
278
299
  if (effectiveConfig.checkDependencyInversion && !isTest) {
279
- violations.push(...await checkDependencyInversion(sourceFile, filePath, effectiveConfig));
300
+ violations.push(...await checkDependencyInversion(rootNode, filePath, effectiveConfig));
280
301
  }
281
302
  return violations;
282
303
  };
283
304
  /**
284
305
  * Check Single Responsibility Principle
285
306
  */
286
- function checkSingleResponsibility(node, sourceFile, filePath, config) {
307
+ function checkSingleResponsibility(node, filePath, config) {
287
308
  const violations = [];
288
309
  const className = getNodeName(node) || 'Anonymous';
289
310
  // Count methods
290
- const methods = findNodesOfType(node, ts.isMethodDeclaration);
291
- const publicMethods = methods.filter(m => !m.modifiers?.some(mod => mod.kind === ts.SyntaxKind.PrivateKeyword));
311
+ const methods = findNodesOfType(node, n => n.type === 'method_definition');
312
+ const publicMethods = methods.filter(m => !hasModifier(m, 'private'));
292
313
  if (publicMethods.length > config.maxMethodsPerClass) {
293
- const { line, column } = getNodePosition(sourceFile, node);
314
+ const { line, column } = getNodePosition(node);
294
315
  violations.push(createViolation({
295
316
  analyzer: 'solid',
296
317
  file: filePath,
@@ -311,7 +332,7 @@ function checkSingleResponsibility(node, sourceFile, filePath, config) {
311
332
  // Check for multiple responsibilities
312
333
  const responsibilities = detectResponsibilities(node);
313
334
  if (responsibilities.length > 1) {
314
- const { line, column } = getNodePosition(sourceFile, node);
335
+ const { line, column } = getNodePosition(node);
315
336
  violations.push(createViolation({
316
337
  analyzer: 'solid',
317
338
  file: filePath,
@@ -333,13 +354,13 @@ function checkSingleResponsibility(node, sourceFile, filePath, config) {
333
354
  /**
334
355
  * Check Open/Closed Principle
335
356
  */
336
- function checkOpenClosed(node, sourceFile, filePath, config) {
357
+ function checkOpenClosed(node, filePath, config) {
337
358
  const violations = [];
338
359
  // Check for long if-else chains
339
- if (ts.isIfStatement(node)) {
360
+ if (node.type === 'if_statement') {
340
361
  const chainLength = countIfElseChain(node);
341
362
  if (chainLength > 3) {
342
- const { line, column } = getNodePosition(sourceFile, node);
363
+ const { line, column } = getNodePosition(node);
343
364
  violations.push(createViolation({
344
365
  analyzer: 'solid',
345
366
  file: filePath,
@@ -357,10 +378,10 @@ function checkOpenClosed(node, sourceFile, filePath, config) {
357
378
  }
358
379
  }
359
380
  // Check for switch statements with many cases
360
- if (ts.isSwitchStatement(node)) {
361
- const cases = findNodesOfType(node, ts.isCaseClause);
381
+ if (node.type === 'switch_statement') {
382
+ const cases = findNodesOfType(node, n => n.type === 'switch_case' || n.type === 'case_clause');
362
383
  if (cases.length > 5) {
363
- const { line, column } = getNodePosition(sourceFile, node);
384
+ const { line, column } = getNodePosition(node);
364
385
  violations.push(createViolation({
365
386
  analyzer: 'solid',
366
387
  file: filePath,
@@ -382,16 +403,18 @@ function checkOpenClosed(node, sourceFile, filePath, config) {
382
403
  /**
383
404
  * Check Liskov Substitution Principle
384
405
  */
385
- function checkLiskovSubstitution(sourceFile, filePath, config) {
406
+ function checkLiskovSubstitution(rootNode, filePath, config) {
386
407
  const violations = [];
387
408
  // Find method overrides that throw errors
388
- traverseAST(sourceFile, node => {
389
- if (ts.isMethodDeclaration(node) && node.modifiers?.some(m => m.kind === ts.SyntaxKind.OverrideKeyword)) {
390
- const hasThrow = findNodesOfType(node, ts.isThrowStatement).length > 0;
391
- const isNotImplemented = node.body?.statements.length === 0 ||
392
- (node.body?.statements.length === 1 && ts.isThrowStatement(node.body.statements[0]));
409
+ traverseAST(rootNode, node => {
410
+ if (node.type === 'method_definition' && hasModifier(node, 'override')) {
411
+ const hasThrow = findNodesOfType(node, n => n.type === 'throw_statement').length > 0;
412
+ const body = node.children?.find(c => c.type === 'statement_block');
413
+ const bodyChildren = body?.children ?? [];
414
+ const isNotImplemented = bodyChildren.length === 0 ||
415
+ (bodyChildren.length === 1 && bodyChildren[0].type === 'throw_statement');
393
416
  if (hasThrow || isNotImplemented) {
394
- const { line, column } = getNodePosition(sourceFile, node);
417
+ const { line, column } = getNodePosition(node);
395
418
  const methodName = getNodeName(node) || 'unknown';
396
419
  violations.push(createViolation({
397
420
  analyzer: 'solid',
@@ -415,24 +438,26 @@ function checkLiskovSubstitution(sourceFile, filePath, config) {
415
438
  /**
416
439
  * Check Interface Segregation Principle
417
440
  */
418
- function checkInterfaceSegregation(node, sourceFile, filePath, config) {
441
+ function checkInterfaceSegregation(node, filePath, config) {
419
442
  const violations = [];
420
443
  const interfaceName = getNodeName(node) || 'Anonymous';
421
- if (node.members.length > config.maxInterfaceMembers) {
422
- const { line, column } = getNodePosition(sourceFile, node);
444
+ // Count interface members (property_signature + method_signature children)
445
+ const memberCount = (node.children ?? []).filter(c => c.type === 'property_signature' || c.type === 'method_signature').length;
446
+ if (memberCount > config.maxInterfaceMembers) {
447
+ const { line, column } = getNodePosition(node);
423
448
  violations.push(createViolation({
424
449
  analyzer: 'solid',
425
450
  file: filePath,
426
451
  line,
427
452
  column,
428
453
  severity: 'critical',
429
- message: `Interface "${interfaceName}" has too many members (${node.members.length})`,
454
+ message: `Interface "${interfaceName}" has too many members (${memberCount})`,
430
455
  type: 'solid',
431
456
  principle: 'interface-segregation',
432
457
  recommendation: 'Split this interface into smaller, more focused interfaces',
433
458
  details: {
434
459
  interfaceName,
435
- memberCount: node.members.length,
460
+ memberCount,
436
461
  threshold: config.maxInterfaceMembers
437
462
  }
438
463
  }));
@@ -442,50 +467,52 @@ function checkInterfaceSegregation(node, sourceFile, filePath, config) {
442
467
  /**
443
468
  * Check Dependency Inversion Principle
444
469
  */
445
- async function checkDependencyInversion(sourceFile, filePath, config) {
470
+ async function checkDependencyInversion(rootNode, filePath, config) {
446
471
  const violations = [];
447
472
  // Skip import checking - DI principle should focus on instantiation, not imports
448
473
  // Imports are necessary and checking them creates too many false positives
449
474
  // Check for 'new' expressions (direct instantiation)
450
- const newExpressions = findNodesOfType(sourceFile, ts.isNewExpression);
475
+ const newExpressions = findNodesOfType(rootNode, n => n.type === 'new_expression');
451
476
  for (const expr of newExpressions) {
452
- if (ts.isIdentifier(expr.expression)) {
453
- const className = expr.expression.text;
454
- // Skip if this is inside a singleton pattern
455
- if (isInsideSingletonPattern(expr)) {
456
- continue;
457
- }
458
- // Skip if this is inside a factory method
459
- if (isInsideFactoryMethod(expr)) {
460
- continue;
461
- }
462
- // Skip Error classes - they need to be instantiated
463
- if (isErrorClass(className)) {
464
- continue;
465
- }
466
- // Check if this class is imported from a framework/library
467
- const importPath = findImportForIdentifier(sourceFile, className);
468
- if (importPath && isFrameworkImport(importPath)) {
469
- continue; // Skip framework classes
470
- }
471
- if (await isConcreteClass(className)) {
472
- const { line, column } = getNodePosition(sourceFile, expr);
473
- violations.push(createViolation({
474
- analyzer: 'solid',
475
- file: filePath,
476
- line,
477
- column,
478
- severity: 'warning',
479
- message: `Direct instantiation of concrete class "${className}"`,
480
- type: 'solid',
481
- principle: 'dependency-inversion',
482
- recommendation: 'Consider using dependency injection or factory pattern',
483
- details: {
484
- className,
485
- importPath: importPath || 'local'
486
- }
487
- }));
488
- }
477
+ // Find the class name identifier (first non-keyword named child)
478
+ const exprIdent = expr.children?.find(c => c.type === 'identifier');
479
+ if (!exprIdent)
480
+ continue;
481
+ const className = rawText(exprIdent);
482
+ // Skip if this is inside a singleton pattern
483
+ if (isInsideSingletonPattern(expr)) {
484
+ continue;
485
+ }
486
+ // Skip if this is inside a factory method
487
+ if (isInsideFactoryMethod(expr)) {
488
+ continue;
489
+ }
490
+ // Skip Error classes - they need to be instantiated
491
+ if (isErrorClass(className)) {
492
+ continue;
493
+ }
494
+ // Check if this class is imported from a framework/library
495
+ const importPath = findImportForIdentifier(rootNode, className);
496
+ if (importPath && isFrameworkImport(importPath)) {
497
+ continue; // Skip framework classes
498
+ }
499
+ if (await isConcreteClass(className)) {
500
+ const { line, column } = getNodePosition(expr);
501
+ violations.push(createViolation({
502
+ analyzer: 'solid',
503
+ file: filePath,
504
+ line,
505
+ column,
506
+ severity: 'warning',
507
+ message: `Direct instantiation of concrete class "${className}"`,
508
+ type: 'solid',
509
+ principle: 'dependency-inversion',
510
+ recommendation: 'Consider using dependency injection or factory pattern',
511
+ details: {
512
+ className,
513
+ importPath: importPath || 'local'
514
+ }
515
+ }));
489
516
  }
490
517
  }
491
518
  return violations;
@@ -495,7 +522,7 @@ async function checkDependencyInversion(sourceFile, filePath, config) {
495
522
  */
496
523
  function detectResponsibilities(node) {
497
524
  const responsibilities = new Set();
498
- const methods = findNodesOfType(node, ts.isMethodDeclaration);
525
+ const methods = findNodesOfType(node, n => n.type === 'method_definition');
499
526
  methods.forEach(method => {
500
527
  const name = getNodeName(method)?.toLowerCase() || '';
501
528
  // Detect different concerns
@@ -519,7 +546,7 @@ function detectResponsibilities(node) {
519
546
  }
520
547
  });
521
548
  // Check for too many public methods as a responsibility
522
- const publicMethods = methods.filter(m => !m.modifiers?.some(mod => mod.kind === ts.SyntaxKind.PrivateKeyword));
549
+ const publicMethods = methods.filter(m => !hasModifier(m, 'private'));
523
550
  if (publicMethods.length > 10) {
524
551
  responsibilities.add('too many methods');
525
552
  }
@@ -530,11 +557,12 @@ function detectResponsibilities(node) {
530
557
  */
531
558
  function countIfElseChain(node) {
532
559
  let count = 1;
533
- let current = node.elseStatement;
534
- while (current) {
560
+ let elseClause = node.children?.find(c => c.type === 'else_clause');
561
+ while (elseClause) {
535
562
  count++;
536
- if (ts.isIfStatement(current)) {
537
- current = current.elseStatement;
563
+ const statement = elseClause.children?.find(c => c.type !== 'else');
564
+ if (statement?.type === 'if_statement') {
565
+ elseClause = statement.children?.find(c => c.type === 'else_clause');
538
566
  }
539
567
  else {
540
568
  break;
@@ -591,18 +619,17 @@ function isInsideSingletonPattern(node) {
591
619
  let parent = node.parent;
592
620
  while (parent) {
593
621
  // Check if we're inside a method named getInstance, instance, singleton, etc.
594
- if (ts.isMethodDeclaration(parent) || ts.isFunctionDeclaration(parent)) {
622
+ if (parent.type === 'method_definition' || parent.type === 'function_declaration') {
595
623
  const methodName = getNodeName(parent)?.toLowerCase();
596
624
  if (methodName && (methodName.includes('getinstance') ||
597
625
  methodName === 'instance' ||
598
626
  methodName === 'singleton' ||
599
- methodName === 'create' && parent.parent && ts.isClassDeclaration(parent.parent))) {
627
+ (methodName === 'create' && parent.parent?.type === 'class_declaration'))) {
600
628
  return true;
601
629
  }
602
630
  }
603
631
  // Check if we're inside a static property initialization
604
- if (ts.isPropertyDeclaration(parent) &&
605
- parent.modifiers?.some(m => m.kind === ts.SyntaxKind.StaticKeyword)) {
632
+ if (parent.type === 'public_field_definition' && hasModifier(parent, 'static')) {
606
633
  const propName = getNodeName(parent)?.toLowerCase();
607
634
  if (propName && (propName === 'instance' || propName === '_instance')) {
608
635
  return true;
@@ -619,7 +646,7 @@ function isInsideFactoryMethod(node) {
619
646
  let parent = node.parent;
620
647
  while (parent) {
621
648
  // Check if we're inside a method with 'create' or 'factory' in its name
622
- if (ts.isMethodDeclaration(parent) || ts.isFunctionDeclaration(parent)) {
649
+ if (parent.type === 'method_definition' || parent.type === 'function_declaration') {
623
650
  const methodName = getNodeName(parent)?.toLowerCase();
624
651
  if (methodName && (methodName.includes('create') ||
625
652
  methodName.includes('factory') ||
@@ -629,7 +656,7 @@ function isInsideFactoryMethod(node) {
629
656
  }
630
657
  }
631
658
  // Check if we're inside a class with Factory in its name
632
- if (ts.isClassDeclaration(parent)) {
659
+ if (parent.type === 'class_declaration') {
633
660
  const className = getNodeName(parent);
634
661
  if (className && className.toLowerCase().includes('factory')) {
635
662
  return true;
@@ -668,19 +695,19 @@ async function isConcreteClass(className) {
668
695
  /**
669
696
  * Check Component Single Responsibility Principle
670
697
  */
671
- function checkComponentSRP(node, sourceFile, filePath, config) {
698
+ function checkComponentSRP(node, filePath, config) {
672
699
  const violations = [];
673
700
  // Extract component metadata
674
701
  const componentType = detectComponentType(node);
675
702
  if (!componentType)
676
703
  return violations;
677
704
  const componentName = getComponentName(node) || 'AnonymousComponent';
678
- const hooks = extractHooks(node, sourceFile);
679
- const props = extractPropTypes(node, sourceFile);
705
+ const hooks = extractHooks(node);
706
+ const props = extractPropTypes(node);
680
707
  const componentInfo = {
681
708
  name: componentName,
682
709
  filePath,
683
- lineNumber: getNodePosition(sourceFile, node).line,
710
+ lineNumber: getNodePosition(node).line,
684
711
  language: 'typescript',
685
712
  dependencies: [],
686
713
  purpose: '',
@@ -692,9 +719,8 @@ function checkComponentSRP(node, sourceFile, filePath, config) {
692
719
  isExported: true
693
720
  };
694
721
  // Detect component responsibilities
695
- const responsibilities = detectComponentResponsibilities(sourceFile, node, componentInfo);
722
+ const responsibilities = detectComponentResponsibilities(node, componentInfo);
696
723
  // Detect component pattern
697
- const patterns = config.componentPatterns?.patterns || DEFAULT_PATTERNS;
698
724
  const pattern = detectComponentPattern(componentName, filePath, componentInfo.props?.map(p => p.name) || [], componentInfo.hooks?.map(h => h.name) || [], [] // TODO: Extract imports if needed
699
725
  );
700
726
  // Apply context-aware thresholds
@@ -733,7 +759,7 @@ function checkComponentSRP(node, sourceFile, filePath, config) {
733
759
  const realUnrelatedGroups = unrelatedGroups.filter(group => group.length >= 2);
734
760
  // Only check for unrelated groups if enabled in config
735
761
  if (config.checkUnrelatedResponsibilities && realUnrelatedGroups.length > 0 && uniqueTypes.length > 1) {
736
- const { line, column } = getNodePosition(sourceFile, node);
762
+ const { line, column } = getNodePosition(node);
737
763
  // Main violation for mixed responsibilities
738
764
  violations.push(createViolation({
739
765
  analyzer: 'solid',
@@ -759,7 +785,7 @@ function checkComponentSRP(node, sourceFile, filePath, config) {
759
785
  }
760
786
  // Check for too many responsibilities overall
761
787
  if (uniqueTypes.length > effectiveMaxResponsibilities) {
762
- const { line, column } = getNodePosition(sourceFile, node);
788
+ const { line, column } = getNodePosition(node);
763
789
  violations.push(createViolation({
764
790
  analyzer: 'solid',
765
791
  file: filePath,