code-auditor-mcp 2.6.2 → 3.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (344) hide show
  1. package/README.md +23 -196
  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 → codeIndexDB.d.ts} +51 -224
  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 +58 -22
  161. package/dist/mcp-tools/projectTasks.d.ts.map +1 -1
  162. package/dist/mcp-tools/projectTasks.js +172 -10
  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 +1376 -1181
  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/mcpToolErrors.d.ts.map +1 -1
  182. package/dist/mcpToolErrors.js.map +1 -1
  183. package/dist/native/ast-grep-napi.darwin-arm64.node +0 -0
  184. package/dist/native/ast-grep-napi.darwin-x64.node +0 -0
  185. package/dist/native/ast-grep-napi.linux-arm64-gnu.node +0 -0
  186. package/dist/native/ast-grep-napi.linux-arm64-musl.node +0 -0
  187. package/dist/native/ast-grep-napi.linux-x64-gnu.node +0 -0
  188. package/dist/native/ast-grep-napi.linux-x64-musl.node +0 -0
  189. package/dist/native/ast-grep-napi.win32-x64-msvc.node +0 -0
  190. package/dist/native-bootstrap.d.ts +15 -0
  191. package/dist/native-bootstrap.d.ts.map +1 -0
  192. package/dist/native-bootstrap.js +75 -0
  193. package/dist/native-bootstrap.js.map +1 -0
  194. package/dist/reporting/csvReportGenerator.d.ts.map +1 -1
  195. package/dist/reporting/htmlReportGenerator.d.ts.map +1 -1
  196. package/dist/reporting/jsonReportGenerator.d.ts.map +1 -1
  197. package/dist/reporting/reportGenerator.d.ts.map +1 -1
  198. package/dist/reporting/reportGenerator.js +4 -0
  199. package/dist/reporting/reportGenerator.js.map +1 -1
  200. package/dist/reporting/sarifReportGenerator.d.ts +39 -0
  201. package/dist/reporting/sarifReportGenerator.d.ts.map +1 -0
  202. package/dist/reporting/sarifReportGenerator.js +229 -0
  203. package/dist/reporting/sarifReportGenerator.js.map +1 -0
  204. package/dist/search/QueryParser.d.ts +41 -0
  205. package/dist/search/QueryParser.d.ts.map +1 -1
  206. package/dist/search/QueryParser.js +200 -19
  207. package/dist/search/QueryParser.js.map +1 -1
  208. package/dist/services/CodeMapGenerator.d.ts.map +1 -1
  209. package/dist/services/CodeMapGenerator.js +4 -4
  210. package/dist/services/CodeMapGenerator.js.map +1 -1
  211. package/dist/services/ProjectTaskRepository.d.ts +15 -2
  212. package/dist/services/ProjectTaskRepository.d.ts.map +1 -1
  213. package/dist/services/ProjectTaskRepository.js +16 -1
  214. package/dist/services/ProjectTaskRepository.js.map +1 -1
  215. package/dist/services/SchemaParser.d.ts.map +1 -1
  216. package/dist/services/SchemaParser.js +5 -8
  217. package/dist/services/SchemaParser.js.map +1 -1
  218. package/dist/services/auditJobService.d.ts +1 -1
  219. package/dist/services/projectTaskHelpers.js.map +1 -1
  220. package/dist/services/whitelistService.d.ts.map +1 -1
  221. package/dist/services/whitelistService.js +1 -1
  222. package/dist/services/whitelistService.js.map +1 -1
  223. package/dist/tool-registry.d.ts +79 -0
  224. package/dist/tool-registry.d.ts.map +1 -0
  225. package/dist/tool-registry.js +139 -0
  226. package/dist/tool-registry.js.map +1 -0
  227. package/dist/types/projectTask.d.ts +4 -0
  228. package/dist/types/projectTask.d.ts.map +1 -1
  229. package/dist/types.d.ts +26 -2
  230. package/dist/types.d.ts.map +1 -1
  231. package/dist/types.js.map +1 -1
  232. package/dist/ui/InteractivePrompts.d.ts.map +1 -1
  233. package/dist/ui/InteractivePrompts.js.map +1 -1
  234. package/dist/utils/astParser.d.ts +31 -38
  235. package/dist/utils/astParser.d.ts.map +1 -1
  236. package/dist/utils/astParser.js +138 -196
  237. package/dist/utils/astParser.js.map +1 -1
  238. package/dist/utils/astUtils.d.ts +87 -58
  239. package/dist/utils/astUtils.d.ts.map +1 -1
  240. package/dist/utils/astUtils.js +852 -581
  241. package/dist/utils/astUtils.js.map +1 -1
  242. package/dist/utils/componentPatterns.js.map +1 -1
  243. package/dist/utils/componentResponsibility.d.ts +13 -9
  244. package/dist/utils/componentResponsibility.d.ts.map +1 -1
  245. package/dist/utils/componentResponsibility.js +236 -206
  246. package/dist/utils/componentResponsibility.js.map +1 -1
  247. package/dist/utils/dependencyExtractor.d.ts +11 -6
  248. package/dist/utils/dependencyExtractor.d.ts.map +1 -1
  249. package/dist/utils/dependencyExtractor.js +200 -119
  250. package/dist/utils/dependencyExtractor.js.map +1 -1
  251. package/dist/utils/fileDiscovery.d.ts +1 -1
  252. package/dist/utils/fileDiscovery.d.ts.map +1 -1
  253. package/dist/utils/fileDiscovery.js +15 -6
  254. package/dist/utils/fileDiscovery.js.map +1 -1
  255. package/dist/utils/jsDocParser.d.ts +27 -30
  256. package/dist/utils/jsDocParser.d.ts.map +1 -1
  257. package/dist/utils/jsDocParser.js +271 -207
  258. package/dist/utils/jsDocParser.js.map +1 -1
  259. package/dist/utils/reactDetection.d.ts +27 -12
  260. package/dist/utils/reactDetection.d.ts.map +1 -1
  261. package/dist/utils/reactDetection.js +331 -219
  262. package/dist/utils/reactDetection.js.map +1 -1
  263. package/dist/workers/auditWorker.js +17 -3
  264. package/dist/workers/auditWorker.js.map +1 -1
  265. package/package.json +54 -51
  266. package/dist/adapters/GoAdapter.d.ts +0 -53
  267. package/dist/adapters/GoAdapter.d.ts.map +0 -1
  268. package/dist/adapters/GoAdapter.js +0 -611
  269. package/dist/adapters/GoAdapter.js.map +0 -1
  270. package/dist/adapters/GoConfig.d.ts +0 -35
  271. package/dist/adapters/GoConfig.d.ts.map +0 -1
  272. package/dist/adapters/GoConfig.js +0 -155
  273. package/dist/adapters/GoConfig.js.map +0 -1
  274. package/dist/adapters/LanguageAdapter.d.ts +0 -135
  275. package/dist/adapters/LanguageAdapter.d.ts.map +0 -1
  276. package/dist/adapters/LanguageAdapter.js +0 -47
  277. package/dist/adapters/LanguageAdapter.js.map +0 -1
  278. package/dist/adapters/TypeScriptAdapter.d.ts +0 -43
  279. package/dist/adapters/TypeScriptAdapter.d.ts.map +0 -1
  280. package/dist/adapters/TypeScriptAdapter.js +0 -386
  281. package/dist/adapters/TypeScriptAdapter.js.map +0 -1
  282. package/dist/adapters/UniversalAnalyzer.d.ts +0 -42
  283. package/dist/adapters/UniversalAnalyzer.d.ts.map +0 -1
  284. package/dist/adapters/UniversalAnalyzer.js +0 -103
  285. package/dist/adapters/UniversalAnalyzer.js.map +0 -1
  286. package/dist/adapters/UniversalSOLIDAnalyzer.d.ts +0 -48
  287. package/dist/adapters/UniversalSOLIDAnalyzer.d.ts.map +0 -1
  288. package/dist/adapters/UniversalSOLIDAnalyzer.js +0 -178
  289. package/dist/adapters/UniversalSOLIDAnalyzer.js.map +0 -1
  290. package/dist/adapters/solidAnalyzerCompat.d.ts +0 -21
  291. package/dist/adapters/solidAnalyzerCompat.d.ts.map +0 -1
  292. package/dist/adapters/solidAnalyzerCompat.js +0 -78
  293. package/dist/adapters/solidAnalyzerCompat.js.map +0 -1
  294. package/dist/analyzers/dataAccessAnalyzerCompat.d.ts +0 -20
  295. package/dist/analyzers/dataAccessAnalyzerCompat.d.ts.map +0 -1
  296. package/dist/analyzers/dataAccessAnalyzerCompat.js +0 -59
  297. package/dist/analyzers/dataAccessAnalyzerCompat.js.map +0 -1
  298. package/dist/analyzers/documentationAnalyzerCompat.d.ts +0 -20
  299. package/dist/analyzers/documentationAnalyzerCompat.d.ts.map +0 -1
  300. package/dist/analyzers/documentationAnalyzerCompat.js +0 -52
  301. package/dist/analyzers/documentationAnalyzerCompat.js.map +0 -1
  302. package/dist/analyzers/dryAnalyzerCompat.d.ts +0 -20
  303. package/dist/analyzers/dryAnalyzerCompat.d.ts.map +0 -1
  304. package/dist/analyzers/dryAnalyzerCompat.js +0 -44
  305. package/dist/analyzers/dryAnalyzerCompat.js.map +0 -1
  306. package/dist/analyzers/schemaAnalyzerCompat.d.ts +0 -20
  307. package/dist/analyzers/schemaAnalyzerCompat.d.ts.map +0 -1
  308. package/dist/analyzers/schemaAnalyzerCompat.js +0 -69
  309. package/dist/analyzers/schemaAnalyzerCompat.js.map +0 -1
  310. package/dist/analyzers/solidAnalyzerCompat.d.ts +0 -20
  311. package/dist/analyzers/solidAnalyzerCompat.d.ts.map +0 -1
  312. package/dist/analyzers/solidAnalyzerCompat.js +0 -78
  313. package/dist/analyzers/solidAnalyzerCompat.js.map +0 -1
  314. package/dist/codeIndexDb.d.ts.map +0 -1
  315. package/dist/codeIndexDb.js +0 -2102
  316. package/dist/codeIndexDb.js.map +0 -1
  317. package/dist/languages/typescript/TypeScriptAdapter.d.ts +0 -108
  318. package/dist/languages/typescript/TypeScriptAdapter.d.ts.map +0 -1
  319. package/dist/languages/typescript/TypeScriptAdapter.js +0 -567
  320. package/dist/languages/typescript/TypeScriptAdapter.js.map +0 -1
  321. package/dist/languages/typescript/test-extraction.d.ts +0 -2
  322. package/dist/languages/typescript/test-extraction.d.ts.map +0 -1
  323. package/dist/languages/typescript/test-extraction.js +0 -36
  324. package/dist/languages/typescript/test-extraction.js.map +0 -1
  325. package/dist/mcp-hybrid.d.ts +0 -10
  326. package/dist/mcp-hybrid.d.ts.map +0 -1
  327. package/dist/mcp-hybrid.js +0 -41
  328. package/dist/mcp-hybrid.js.map +0 -1
  329. package/dist/mcp-index.d.ts +0 -13
  330. package/dist/mcp-index.d.ts.map +0 -1
  331. package/dist/mcp-index.js +0 -136
  332. package/dist/mcp-index.js.map +0 -1
  333. package/dist/mcp-standalone.d.ts +0 -3
  334. package/dist/mcp-standalone.d.ts.map +0 -1
  335. package/dist/mcp-standalone.js +0 -1324
  336. package/dist/mcp-standalone.js.map +0 -1
  337. package/dist/mcp-ui-server.d.ts +0 -27
  338. package/dist/mcp-ui-server.d.ts.map +0 -1
  339. package/dist/mcp-ui-server.js +0 -484
  340. package/dist/mcp-ui-server.js.map +0 -1
  341. package/dist/test-multi-strategy-search.d.ts +0 -3
  342. package/dist/test-multi-strategy-search.d.ts.map +0 -1
  343. package/dist/test-multi-strategy-search.js +0 -170
  344. package/dist/test-multi-strategy-search.js.map +0 -1
@@ -1,178 +0,0 @@
1
- /**
2
- * Universal SOLID Analyzer
3
- *
4
- * Implements SOLID principle analysis using the language adapter pattern.
5
- * This analyzer works across multiple languages by using the abstraction layer.
6
- */
7
- import { UniversalAnalyzer } from './UniversalAnalyzer.js';
8
- const DEFAULT_CONFIG = {
9
- maxMethodsPerClass: 15,
10
- maxLinesPerMethod: 50,
11
- maxParametersPerMethod: 4,
12
- maxClassComplexity: 50,
13
- maxInterfaceMembers: 10,
14
- checkDependencyInversion: true,
15
- checkInterfaceSegregation: true,
16
- checkLiskovSubstitution: true,
17
- srp: {
18
- maxResponsibilities: 3,
19
- maxLinesPerFunction: 50,
20
- maxParametersPerFunction: 4
21
- },
22
- ocp: {
23
- checkForDirectModification: true
24
- },
25
- lsp: {
26
- checkForExceptions: true
27
- },
28
- isp: {
29
- maxMethodsPerInterface: 10
30
- },
31
- dip: {
32
- checkForConcreteClasses: true
33
- }
34
- };
35
- export class UniversalSOLIDAnalyzer extends UniversalAnalyzer {
36
- name = 'solid';
37
- description = 'Analyzes code for SOLID principle violations across multiple languages';
38
- async analyzeAST(ast, adapter, config) {
39
- console.error(`[DEBUG] SOLID: analyzeAST called for: ${ast.filePath}`);
40
- const solidConfig = { ...DEFAULT_CONFIG, ...config };
41
- const violations = [];
42
- // For Go files, check if pre-computed violations are available from the Go analyzer
43
- if (adapter.name === 'go' && ast.root.raw?.violations) {
44
- console.error(`[DEBUG] SOLID: Using pre-computed Go violations for ${ast.filePath}`);
45
- console.error(`[DEBUG] SOLID: Found ${ast.root.raw.violations.length} pre-computed violations`);
46
- // Convert Go violations to our format
47
- const goViolations = ast.root.raw.violations.map((gv) => ({
48
- file: ast.filePath,
49
- line: gv.Line,
50
- column: 1, // Go analyzer doesn't provide column info
51
- severity: gv.Severity.toLowerCase(),
52
- message: gv.Message,
53
- rule: gv.Category || 'solid',
54
- analyzer: 'solid',
55
- metadata: gv.Details
56
- }));
57
- violations.push(...goViolations);
58
- console.error(`[DEBUG] SOLID: Converted ${goViolations.length} Go violations`);
59
- return violations;
60
- }
61
- // For other languages (TypeScript, JavaScript), do traditional analysis
62
- console.error(`[DEBUG] SOLID: Performing traditional analysis for ${adapter.name} file: ${ast.filePath}`);
63
- // Extract language-agnostic entities
64
- const functions = adapter.extractFunctions(ast);
65
- const classes = adapter.extractClasses(ast);
66
- console.error(`[DEBUG] SOLID: Found ${functions.length} functions and ${classes.length} classes in ${ast.filePath}`);
67
- // Analyze Single Responsibility Principle
68
- violations.push(...this.analyzeSRP(functions, classes, solidConfig, ast.filePath));
69
- // Analyze Open/Closed Principle
70
- violations.push(...this.analyzeOCP(classes, solidConfig, ast.filePath));
71
- // Analyze Interface Segregation Principle
72
- violations.push(...this.analyzeISP(ast, adapter, solidConfig));
73
- // Analyze Dependency Inversion Principle
74
- violations.push(...this.analyzeDIP(classes, solidConfig, ast.filePath));
75
- console.error(`[DEBUG] SOLID: Analysis complete for ${ast.filePath}, found ${violations.length} violations`);
76
- return violations;
77
- }
78
- analyzeSRP(functions, classes, config, filePath) {
79
- const violations = [];
80
- // Check functions for too many responsibilities
81
- for (const func of functions) {
82
- // Check function length
83
- if (this.countFunctionLines(func) > config.srp.maxLinesPerFunction) {
84
- violations.push(this.createViolation(filePath, func.location.start.line, func.location.start.column, `Function "${func.name}" has ${this.countFunctionLines(func)} lines, exceeding the maximum of ${config.srp.maxLinesPerFunction}. Consider breaking it down.`, 'warning', 'single-responsibility', { principle: 'single-responsibility' }));
85
- }
86
- // Check parameter count
87
- if (func.parameters.length > config.srp.maxParametersPerFunction) {
88
- violations.push(this.createViolation(filePath, func.location.start.line, func.location.start.column, `Function "${func.name}" has ${func.parameters.length} parameters, exceeding the maximum of ${config.srp.maxParametersPerFunction}. Consider using an options object.`, 'warning', 'single-responsibility', { principle: 'single-responsibility' }));
89
- }
90
- }
91
- // Check classes for too many responsibilities
92
- for (const cls of classes) {
93
- // Check method count
94
- if (cls.methods.length > config.maxMethodsPerClass) {
95
- violations.push(this.createViolation(filePath, cls.location.start.line, cls.location.start.column, `Class "${cls.name}" has ${cls.methods.length} methods, exceeding the maximum of ${config.maxMethodsPerClass}. Consider splitting responsibilities.`, 'warning', 'single-responsibility', { principle: 'single-responsibility' }));
96
- }
97
- // Check class complexity (simplified calculation)
98
- const complexity = this.calculateClassComplexity(cls);
99
- if (complexity > config.maxClassComplexity) {
100
- violations.push(this.createViolation(filePath, cls.location.start.line, cls.location.start.column, `Class "${cls.name}" has a complexity of ${complexity}, exceeding the maximum of ${config.maxClassComplexity}. Consider refactoring.`, 'critical', 'single-responsibility', { principle: 'single-responsibility' }));
101
- }
102
- }
103
- return violations;
104
- }
105
- analyzeOCP(classes, config, filePath) {
106
- const violations = [];
107
- if (!config.ocp.checkForDirectModification) {
108
- return violations;
109
- }
110
- // Check for classes that appear to be frequently modified
111
- // This is a simplified heuristic - in practice you'd analyze git history
112
- for (const cls of classes) {
113
- // Look for classes with many conditional branches or switch statements
114
- // This suggests the class needs modification for new functionality
115
- const methodCount = cls.methods.length;
116
- const hasComplexMethods = cls.methods.some(method => this.countFunctionLines(method) > config.maxLinesPerMethod);
117
- if (methodCount > config.maxMethodsPerClass && hasComplexMethods) {
118
- violations.push(this.createViolation(filePath, cls.location.start.line, cls.location.start.column, `Class "${cls.name}" appears to be frequently modified. Consider using composition or inheritance for extension.`, 'warning', 'open-closed', { principle: 'open-closed' }));
119
- }
120
- }
121
- return violations;
122
- }
123
- analyzeISP(ast, adapter, config) {
124
- const violations = [];
125
- if (!config.checkInterfaceSegregation) {
126
- return violations;
127
- }
128
- // Find interface-like structures in the AST
129
- const interfaces = adapter.findNodes(ast, {
130
- custom: (node) => adapter.isInterface(node)
131
- });
132
- for (const interfaceNode of interfaces) {
133
- const children = adapter.getChildren(interfaceNode);
134
- const methods = children.filter(child => adapter.isFunction(child));
135
- if (methods.length > config.isp.maxMethodsPerInterface) {
136
- const location = this.getSourceLocation(adapter, interfaceNode);
137
- const name = adapter.getNodeName(interfaceNode) || '<anonymous>';
138
- violations.push(this.createViolation(ast.filePath, location.line, location.column, `Interface "${name}" has ${methods.length} methods, exceeding the maximum of ${config.isp.maxMethodsPerInterface}. Consider splitting into smaller interfaces.`, 'warning', 'interface-segregation', { principle: 'interface-segregation' }));
139
- }
140
- }
141
- return violations;
142
- }
143
- analyzeDIP(classes, config, filePath) {
144
- const violations = [];
145
- if (!config.checkDependencyInversion) {
146
- return violations;
147
- }
148
- // Check for classes that directly instantiate dependencies
149
- // This is a simplified check - in practice you'd analyze constructor patterns
150
- for (const cls of classes) {
151
- // Look for classes with many concrete dependencies (simplified heuristic)
152
- if (cls.methods.length > 0) {
153
- const hasConstructor = cls.methods.some(method => method.name === 'constructor' || method.name === cls.name);
154
- if (hasConstructor) {
155
- // In practice, you'd analyze the constructor to see if it's directly
156
- // instantiating dependencies instead of accepting them as parameters
157
- violations.push(this.createViolation(filePath, cls.location.start.line, cls.location.start.column, `Class "${cls.name}" directly instantiates dependencies. Consider dependency injection.`, 'warning', 'dependency-inversion', { principle: 'dependency-inversion' }));
158
- }
159
- }
160
- }
161
- return violations;
162
- }
163
- countFunctionLines(func) {
164
- // Simplified line counting - in practice you'd analyze the actual function body
165
- return func.location.end.line - func.location.start.line + 1;
166
- }
167
- calculateClassComplexity(cls) {
168
- // Simplified complexity calculation
169
- let complexity = cls.methods.length * 2; // Base complexity for methods
170
- complexity += cls.properties.length; // Add property count
171
- // Add complexity for method parameter counts
172
- for (const method of cls.methods) {
173
- complexity += method.parameters.length;
174
- }
175
- return complexity;
176
- }
177
- }
178
- //# sourceMappingURL=UniversalSOLIDAnalyzer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"UniversalSOLIDAnalyzer.js","sourceRoot":"","sources":["../../src/adapters/UniversalSOLIDAnalyzer.ts"],"names":[],"mappings":"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"}
@@ -1,21 +0,0 @@
1
- /**
2
- * SOLID Analyzer Compatibility Layer
3
- *
4
- * This bridges the new Universal Analyzer system with the existing audit infrastructure.
5
- * It allows gradual migration without breaking existing functionality.
6
- */
7
- import { AnalyzerDefinition, AnalyzerResult } from '../types.js';
8
- /**
9
- * Compatibility wrapper that makes the Universal SOLID analyzer work with existing infrastructure
10
- */
11
- export declare class SOLIDAnalyzerCompat implements AnalyzerDefinition {
12
- name: string;
13
- description: string;
14
- private universalAnalyzer;
15
- private initialized;
16
- constructor();
17
- private initializeAdapters;
18
- analyze(files: string[], config?: any, options?: any): Promise<AnalyzerResult>;
19
- }
20
- export declare function createSOLIDAnalyzer(): AnalyzerDefinition;
21
- //# sourceMappingURL=solidAnalyzerCompat.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"solidAnalyzerCompat.d.ts","sourceRoot":"","sources":["../../src/adapters/solidAnalyzerCompat.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAa,MAAM,aAAa,CAAC;AAM5E;;GAEG;AACH,qBAAa,mBAAoB,YAAW,kBAAkB;IAC5D,IAAI,SAAW;IACf,WAAW,SAA2D;IAEtE,OAAO,CAAC,iBAAiB,CAAyB;IAClD,OAAO,CAAC,WAAW,CAAS;;YAOd,kBAAkB;IAiC1B,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,MAAM,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,cAAc,CAAC;CA0BrF;AAGD,wBAAgB,mBAAmB,IAAI,kBAAkB,CAExD"}
@@ -1,78 +0,0 @@
1
- /**
2
- * SOLID Analyzer Compatibility Layer
3
- *
4
- * This bridges the new Universal Analyzer system with the existing audit infrastructure.
5
- * It allows gradual migration without breaking existing functionality.
6
- */
7
- import { UniversalSOLIDAnalyzer } from './UniversalSOLIDAnalyzer.js';
8
- import { TypeScriptAdapter } from './TypeScriptAdapter.js';
9
- import { LanguageRegistry } from './LanguageAdapter.js';
10
- import { createGoAdapter, getGoConfigFromEnv } from './GoConfig.js';
11
- /**
12
- * Compatibility wrapper that makes the Universal SOLID analyzer work with existing infrastructure
13
- */
14
- export class SOLIDAnalyzerCompat {
15
- name = 'solid';
16
- description = 'SOLID principles analyzer with multi-language support';
17
- universalAnalyzer;
18
- initialized = false;
19
- constructor() {
20
- this.universalAnalyzer = new UniversalSOLIDAnalyzer();
21
- // Note: initializeAdapters() is now async and called in analyze()
22
- }
23
- async initializeAdapters() {
24
- if (this.initialized)
25
- return;
26
- console.error('[DEBUG] SOLID compat layer: Initializing language adapters...');
27
- const registry = LanguageRegistry.getInstance();
28
- // Register TypeScript adapter (always available)
29
- const tsAdapter = new TypeScriptAdapter();
30
- registry.register(tsAdapter);
31
- console.error('[DEBUG] SOLID compat layer: TypeScript adapter registered');
32
- // Conditionally register Go adapter
33
- const goEnvConfig = getGoConfigFromEnv();
34
- if (goEnvConfig.disabled) {
35
- console.error('[DEBUG] SOLID compat layer: Go support disabled via environment variable');
36
- }
37
- else {
38
- console.error('[DEBUG] SOLID compat layer: Detecting Go configuration...');
39
- const goAdapter = await createGoAdapter(goEnvConfig.customPath);
40
- if (goAdapter) {
41
- registry.register(goAdapter);
42
- console.error('[DEBUG] SOLID compat layer: Go adapter registered successfully');
43
- }
44
- else {
45
- console.error('[DEBUG] SOLID compat layer: Go adapter not available - continuing with TypeScript-only support');
46
- }
47
- }
48
- this.initialized = true;
49
- console.error('[DEBUG] SOLID compat layer: Language adapters initialization complete');
50
- }
51
- async analyze(files, config, options) {
52
- console.error('[DEBUG] SOLID compat layer called with files:', files.map(f => f.substring(f.lastIndexOf('/') + 1)));
53
- console.error('[DEBUG] SOLID compat layer: File extensions in input:', files.map(f => f.substring(f.lastIndexOf('.'))));
54
- console.error('[DEBUG] SOLID compat layer: Go files count:', files.filter(f => f.endsWith('.go')).length);
55
- console.error('[DEBUG] SOLID compat layer: Total files count:', files.length);
56
- // Ensure adapters are initialized before analysis
57
- await this.initializeAdapters();
58
- try {
59
- const result = await this.universalAnalyzer.analyze(files, config, options);
60
- console.error(`[DEBUG] SOLID compat layer: Universal analyzer returned ${result.violations.length} violations`);
61
- return result;
62
- }
63
- catch (error) {
64
- console.error('[DEBUG] SOLID compat layer: Error in universal analyzer:', error);
65
- // Return empty result on error to prevent breaking the audit
66
- return {
67
- violations: [],
68
- filesProcessed: 0,
69
- executionTime: 0
70
- };
71
- }
72
- }
73
- }
74
- // Export a function that creates the compat analyzer (matches existing pattern)
75
- export function createSOLIDAnalyzer() {
76
- return new SOLIDAnalyzerCompat();
77
- }
78
- //# sourceMappingURL=solidAnalyzerCompat.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"solidAnalyzerCompat.js","sourceRoot":"","sources":["../../src/adapters/solidAnalyzerCompat.ts"],"names":[],"mappings":"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"}
@@ -1,20 +0,0 @@
1
- /**
2
- * Compatibility layer for Data Access Analyzer
3
- * Ensures the new universal analyzer produces similar results to the legacy one
4
- */
5
- import type { AnalyzerFunction } from '../types.js';
6
- /**
7
- * Legacy-compatible data access analyzer function
8
- * This wraps the new UniversalDataAccessAnalyzer to maintain API compatibility
9
- */
10
- export declare const analyzeDataAccess: AnalyzerFunction;
11
- /**
12
- * Analyzer definition for registration
13
- */
14
- export declare const dataAccessAnalyzer: {
15
- name: string;
16
- description: string;
17
- category: string;
18
- analyze: AnalyzerFunction;
19
- };
20
- //# sourceMappingURL=dataAccessAnalyzerCompat.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dataAccessAnalyzerCompat.d.ts","sourceRoot":"","sources":["../../src/analyzers/dataAccessAnalyzerCompat.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAOpD;;;GAGG;AACH,eAAO,MAAM,iBAAiB,EAAE,gBAqC/B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,kBAAkB;;;;;CAK9B,CAAC"}
@@ -1,59 +0,0 @@
1
- /**
2
- * Compatibility layer for Data Access Analyzer
3
- * Ensures the new universal analyzer produces similar results to the legacy one
4
- */
5
- import { UniversalDataAccessAnalyzer } from './universal/UniversalDataAccessAnalyzer.js';
6
- import { initializeLanguages } from '../languages/index.js';
7
- // Initialize language system on module load
8
- initializeLanguages();
9
- /**
10
- * Legacy-compatible data access analyzer function
11
- * This wraps the new UniversalDataAccessAnalyzer to maintain API compatibility
12
- */
13
- export const analyzeDataAccess = async (files, config = {}, options = {}, progressCallback) => {
14
- const analyzer = new UniversalDataAccessAnalyzer();
15
- // Map legacy config to universal config, only including defined values
16
- const universalConfig = {};
17
- if (config.databases !== undefined)
18
- universalConfig.databases = config.databases;
19
- if (config.organizationPatterns !== undefined)
20
- universalConfig.organizationPatterns = config.organizationPatterns;
21
- if (config.tablePatterns !== undefined)
22
- universalConfig.tablePatterns = config.tablePatterns;
23
- if (config.performanceThresholds !== undefined)
24
- universalConfig.performanceThresholds = config.performanceThresholds;
25
- if (config.securityPatterns !== undefined)
26
- universalConfig.securityPatterns = config.securityPatterns;
27
- if (config.checkOrgFilters !== undefined)
28
- universalConfig.checkOrgFilters = config.checkOrgFilters;
29
- if (config.checkSQLInjection !== undefined)
30
- universalConfig.checkSQLInjection = config.checkSQLInjection;
31
- if (config.checkPerformance !== undefined)
32
- universalConfig.checkPerformance = config.checkPerformance;
33
- // Call the universal analyzer
34
- const result = await analyzer.analyze(files, universalConfig, {
35
- progressCallback: progressCallback ? (progress) => {
36
- progressCallback({
37
- current: Math.floor(progress * 100),
38
- total: 100,
39
- analyzer: 'data-access',
40
- phase: 'analyzing'
41
- });
42
- } : undefined,
43
- ...options
44
- });
45
- // Transform result to include data access patterns
46
- // Note: The universal analyzer focuses on violations, while the legacy one
47
- // also returned DataAccessPattern objects. For now, we'll just return violations.
48
- return result;
49
- };
50
- /**
51
- * Analyzer definition for registration
52
- */
53
- export const dataAccessAnalyzer = {
54
- name: 'data-access',
55
- description: 'Analyzes database access patterns and data layer interactions',
56
- category: 'security',
57
- analyze: analyzeDataAccess
58
- };
59
- //# sourceMappingURL=dataAccessAnalyzerCompat.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dataAccessAnalyzerCompat.js","sourceRoot":"","sources":["../../src/analyzers/dataAccessAnalyzerCompat.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,2BAA2B,EAAE,MAAM,4CAA4C,CAAC;AACzF,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D,4CAA4C;AAC5C,mBAAmB,EAAE,CAAC;AAEtB;;;GAGG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAqB,KAAK,EACtD,KAAe,EACf,SAAc,EAAE,EAChB,OAAO,GAAG,EAAE,EACZ,gBAAgB,EAChB,EAAE;IACF,MAAM,QAAQ,GAAG,IAAI,2BAA2B,EAAE,CAAC;IAEnD,uEAAuE;IACvE,MAAM,eAAe,GAAQ,EAAE,CAAC;IAEhC,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS;QAAE,eAAe,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;IACjF,IAAI,MAAM,CAAC,oBAAoB,KAAK,SAAS;QAAE,eAAe,CAAC,oBAAoB,GAAG,MAAM,CAAC,oBAAoB,CAAC;IAClH,IAAI,MAAM,CAAC,aAAa,KAAK,SAAS;QAAE,eAAe,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;IAC7F,IAAI,MAAM,CAAC,qBAAqB,KAAK,SAAS;QAAE,eAAe,CAAC,qBAAqB,GAAG,MAAM,CAAC,qBAAqB,CAAC;IACrH,IAAI,MAAM,CAAC,gBAAgB,KAAK,SAAS;QAAE,eAAe,CAAC,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,CAAC;IACtG,IAAI,MAAM,CAAC,eAAe,KAAK,SAAS;QAAE,eAAe,CAAC,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC;IACnG,IAAI,MAAM,CAAC,iBAAiB,KAAK,SAAS;QAAE,eAAe,CAAC,iBAAiB,GAAG,MAAM,CAAC,iBAAiB,CAAC;IACzG,IAAI,MAAM,CAAC,gBAAgB,KAAK,SAAS;QAAE,eAAe,CAAC,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,CAAC;IAEtG,8BAA8B;IAC9B,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,eAAe,EAAE;QAC5D,gBAAgB,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC,QAAgB,EAAE,EAAE;YACxD,gBAAgB,CAAC;gBACf,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,GAAG,CAAC;gBACnC,KAAK,EAAE,GAAG;gBACV,QAAQ,EAAE,aAAa;gBACvB,KAAK,EAAE,WAAW;aACnB,CAAC,CAAC;QACL,CAAC,CAAC,CAAC,CAAC,SAAS;QACb,GAAG,OAAO;KACX,CAAC,CAAC;IAEH,mDAAmD;IACnD,2EAA2E;IAC3E,kFAAkF;IAClF,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,IAAI,EAAE,aAAa;IACnB,WAAW,EAAE,+DAA+D;IAC5E,QAAQ,EAAE,UAAU;IACpB,OAAO,EAAE,iBAAiB;CAC3B,CAAC"}
@@ -1,20 +0,0 @@
1
- /**
2
- * Compatibility layer for DocumentationAnalyzer
3
- * Ensures the new universal analyzer produces identical results to the legacy one
4
- */
5
- import type { AnalyzerFunction } from '../types.js';
6
- /**
7
- * Legacy-compatible documentation analyzer function
8
- * This wraps the new UniversalDocumentationAnalyzer to maintain API compatibility
9
- */
10
- export declare const analyzeDocumentation: AnalyzerFunction;
11
- /**
12
- * Analyzer definition for registration
13
- */
14
- export declare const documentationAnalyzer: {
15
- name: string;
16
- description: string;
17
- category: string;
18
- analyze: AnalyzerFunction;
19
- };
20
- //# sourceMappingURL=documentationAnalyzerCompat.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"documentationAnalyzerCompat.d.ts","sourceRoot":"","sources":["../../src/analyzers/documentationAnalyzerCompat.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAOpD;;;GAGG;AACH,eAAO,MAAM,oBAAoB,EAAE,gBAqClC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,qBAAqB;;;;;CAKjC,CAAC"}
@@ -1,52 +0,0 @@
1
- /**
2
- * Compatibility layer for DocumentationAnalyzer
3
- * Ensures the new universal analyzer produces identical results to the legacy one
4
- */
5
- import { UniversalDocumentationAnalyzer } from './universal/UniversalDocumentationAnalyzer.js';
6
- import { initializeLanguages } from '../languages/index.js';
7
- // Initialize language system on module load
8
- initializeLanguages();
9
- /**
10
- * Legacy-compatible documentation analyzer function
11
- * This wraps the new UniversalDocumentationAnalyzer to maintain API compatibility
12
- */
13
- export const analyzeDocumentation = async (files, config = {}, options = {}, progressCallback) => {
14
- console.log('[DEBUG] DocumentationAnalyzerCompat called with files:', files);
15
- console.log('[DEBUG] DocumentationAnalyzerCompat config:', config);
16
- const analyzer = new UniversalDocumentationAnalyzer();
17
- // Convert legacy config format if needed
18
- const universalConfig = {
19
- requireFunctionDocs: config.requireFunctionDocs ?? true,
20
- requireClassDocs: config.requireComponentDocs ?? true, // Map component → class
21
- requireFileDocs: config.requireFileDocs ?? true,
22
- requireParamDocs: config.requireParamDocs ?? true,
23
- requireReturnDocs: config.requireReturnDocs ?? true,
24
- minDescriptionLength: config.minDescriptionLength ?? 10,
25
- checkExportedOnly: config.checkExportedOnly ?? false,
26
- exemptPatterns: config.exemptPatterns ?? ['test', 'spec', '\\.d\\.ts$', 'mock', 'fixture']
27
- };
28
- // Call the universal analyzer
29
- const result = await analyzer.analyze(files, universalConfig, {
30
- progressCallback: progressCallback ? (progress) => {
31
- progressCallback({
32
- current: Math.floor(progress * 100),
33
- total: 100,
34
- analyzer: 'documentation',
35
- phase: 'analyzing'
36
- });
37
- } : undefined,
38
- ...options
39
- });
40
- // The result format should be identical, but we can add any necessary transformations here
41
- return result;
42
- };
43
- /**
44
- * Analyzer definition for registration
45
- */
46
- export const documentationAnalyzer = {
47
- name: 'documentation',
48
- description: 'Analyzes documentation quality across the codebase',
49
- category: 'documentation',
50
- analyze: analyzeDocumentation
51
- };
52
- //# sourceMappingURL=documentationAnalyzerCompat.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"documentationAnalyzerCompat.js","sourceRoot":"","sources":["../../src/analyzers/documentationAnalyzerCompat.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,8BAA8B,EAAE,MAAM,+CAA+C,CAAC;AAC/F,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D,4CAA4C;AAC5C,mBAAmB,EAAE,CAAC;AAEtB;;;GAGG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAqB,KAAK,EACzD,KAAe,EACf,SAAc,EAAE,EAChB,OAAO,GAAG,EAAE,EACZ,gBAAgB,EAChB,EAAE;IACF,OAAO,CAAC,GAAG,CAAC,wDAAwD,EAAE,KAAK,CAAC,CAAC;IAC7E,OAAO,CAAC,GAAG,CAAC,6CAA6C,EAAE,MAAM,CAAC,CAAC;IACnE,MAAM,QAAQ,GAAG,IAAI,8BAA8B,EAAE,CAAC;IAEtD,yCAAyC;IACzC,MAAM,eAAe,GAAG;QACtB,mBAAmB,EAAE,MAAM,CAAC,mBAAmB,IAAI,IAAI;QACvD,gBAAgB,EAAE,MAAM,CAAC,oBAAoB,IAAI,IAAI,EAAG,wBAAwB;QAChF,eAAe,EAAE,MAAM,CAAC,eAAe,IAAI,IAAI;QAC/C,gBAAgB,EAAE,MAAM,CAAC,gBAAgB,IAAI,IAAI;QACjD,iBAAiB,EAAE,MAAM,CAAC,iBAAiB,IAAI,IAAI;QACnD,oBAAoB,EAAE,MAAM,CAAC,oBAAoB,IAAI,EAAE;QACvD,iBAAiB,EAAE,MAAM,CAAC,iBAAiB,IAAI,KAAK;QACpD,cAAc,EAAE,MAAM,CAAC,cAAc,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,SAAS,CAAC;KAC3F,CAAC;IAEF,8BAA8B;IAC9B,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,eAAe,EAAE;QAC5D,gBAAgB,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC,QAAgB,EAAE,EAAE;YACxD,gBAAgB,CAAC;gBACf,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,GAAG,CAAC;gBACnC,KAAK,EAAE,GAAG;gBACV,QAAQ,EAAE,eAAe;gBACzB,KAAK,EAAE,WAAW;aACnB,CAAC,CAAC;QACL,CAAC,CAAC,CAAC,CAAC,SAAS;QACb,GAAG,OAAO;KACX,CAAC,CAAC;IAEH,2FAA2F;IAC3F,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,IAAI,EAAE,eAAe;IACrB,WAAW,EAAE,oDAAoD;IACjE,QAAQ,EAAE,eAAe;IACzB,OAAO,EAAE,oBAAoB;CAC9B,CAAC"}
@@ -1,20 +0,0 @@
1
- /**
2
- * Compatibility layer for DRY Analyzer
3
- * Ensures the new universal analyzer produces identical results to the legacy one
4
- */
5
- import type { AnalyzerFunction } from '../types.js';
6
- /**
7
- * Legacy-compatible DRY analyzer function
8
- * This wraps the new UniversalDRYAnalyzer to maintain API compatibility
9
- */
10
- export declare const analyzeDRY: AnalyzerFunction;
11
- /**
12
- * Analyzer definition for registration
13
- */
14
- export declare const dryAnalyzer: {
15
- name: string;
16
- description: string;
17
- category: string;
18
- analyze: AnalyzerFunction;
19
- };
20
- //# sourceMappingURL=dryAnalyzerCompat.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dryAnalyzerCompat.d.ts","sourceRoot":"","sources":["../../src/analyzers/dryAnalyzerCompat.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAOpD;;;GAGG;AACH,eAAO,MAAM,UAAU,EAAE,gBA6BxB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,WAAW;;;;;CAKvB,CAAC"}
@@ -1,44 +0,0 @@
1
- /**
2
- * Compatibility layer for DRY Analyzer
3
- * Ensures the new universal analyzer produces identical results to the legacy one
4
- */
5
- import { UniversalDRYAnalyzer } from './universal/UniversalDRYAnalyzer.js';
6
- import { initializeLanguages } from '../languages/index.js';
7
- // Initialize language system on module load
8
- initializeLanguages();
9
- /**
10
- * Legacy-compatible DRY analyzer function
11
- * This wraps the new UniversalDRYAnalyzer to maintain API compatibility
12
- */
13
- export const analyzeDRY = async (files, config = {}, options = {}, progressCallback) => {
14
- const analyzer = new UniversalDRYAnalyzer();
15
- // The config format should be mostly compatible
16
- const universalConfig = {
17
- ...config,
18
- // Map any legacy config fields if needed
19
- };
20
- // Call the universal analyzer
21
- const result = await analyzer.analyze(files, universalConfig, {
22
- progressCallback: progressCallback ? (progress) => {
23
- progressCallback({
24
- current: Math.floor(progress * 100),
25
- total: 100,
26
- analyzer: 'dry',
27
- phase: 'analyzing'
28
- });
29
- } : undefined,
30
- ...options
31
- });
32
- // The result format should be identical, but we can add any necessary transformations here
33
- return result;
34
- };
35
- /**
36
- * Analyzer definition for registration
37
- */
38
- export const dryAnalyzer = {
39
- name: 'dry',
40
- description: 'Detects code duplication across the codebase',
41
- category: 'maintainability',
42
- analyze: analyzeDRY
43
- };
44
- //# sourceMappingURL=dryAnalyzerCompat.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dryAnalyzerCompat.js","sourceRoot":"","sources":["../../src/analyzers/dryAnalyzerCompat.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAC3E,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D,4CAA4C;AAC5C,mBAAmB,EAAE,CAAC;AAEtB;;;GAGG;AACH,MAAM,CAAC,MAAM,UAAU,GAAqB,KAAK,EAC/C,KAAe,EACf,SAAc,EAAE,EAChB,OAAO,GAAG,EAAE,EACZ,gBAAgB,EAChB,EAAE;IACF,MAAM,QAAQ,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAE5C,gDAAgD;IAChD,MAAM,eAAe,GAAG;QACtB,GAAG,MAAM;QACT,yCAAyC;KAC1C,CAAC;IAEF,8BAA8B;IAC9B,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,eAAe,EAAE;QAC5D,gBAAgB,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC,QAAgB,EAAE,EAAE;YACxD,gBAAgB,CAAC;gBACf,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,GAAG,CAAC;gBACnC,KAAK,EAAE,GAAG;gBACV,QAAQ,EAAE,KAAK;gBACf,KAAK,EAAE,WAAW;aACnB,CAAC,CAAC;QACL,CAAC,CAAC,CAAC,CAAC,SAAS;QACb,GAAG,OAAO;KACX,CAAC,CAAC;IAEH,2FAA2F;IAC3F,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,IAAI,EAAE,KAAK;IACX,WAAW,EAAE,8CAA8C;IAC3D,QAAQ,EAAE,iBAAiB;IAC3B,OAAO,EAAE,UAAU;CACpB,CAAC"}
@@ -1,20 +0,0 @@
1
- /**
2
- * Compatibility layer for Schema Analyzer
3
- * Ensures the new universal analyzer produces similar results to the legacy one
4
- */
5
- import type { AnalyzerFunction } from '../types.js';
6
- /**
7
- * Legacy-compatible schema analyzer function
8
- * This wraps the new UniversalSchemaAnalyzer to maintain API compatibility
9
- */
10
- export declare const analyzeSchema: AnalyzerFunction;
11
- /**
12
- * Analyzer definition for registration
13
- */
14
- export declare const schemaAnalyzer: {
15
- name: string;
16
- description: string;
17
- category: string;
18
- analyze: AnalyzerFunction;
19
- };
20
- //# sourceMappingURL=schemaAnalyzerCompat.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"schemaAnalyzerCompat.d.ts","sourceRoot":"","sources":["../../src/analyzers/schemaAnalyzerCompat.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAQpD;;;GAGG;AACH,eAAO,MAAM,aAAa,EAAE,gBAyD3B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,cAAc;;;;;CAK1B,CAAC"}