code-auditor-mcp 2.6.2 → 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 (343) 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 → 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.map +1 -1
  254. package/dist/utils/jsDocParser.d.ts +27 -30
  255. package/dist/utils/jsDocParser.d.ts.map +1 -1
  256. package/dist/utils/jsDocParser.js +271 -207
  257. package/dist/utils/jsDocParser.js.map +1 -1
  258. package/dist/utils/reactDetection.d.ts +27 -12
  259. package/dist/utils/reactDetection.d.ts.map +1 -1
  260. package/dist/utils/reactDetection.js +331 -219
  261. package/dist/utils/reactDetection.js.map +1 -1
  262. package/dist/workers/auditWorker.js +17 -3
  263. package/dist/workers/auditWorker.js.map +1 -1
  264. package/package.json +54 -51
  265. package/dist/adapters/GoAdapter.d.ts +0 -53
  266. package/dist/adapters/GoAdapter.d.ts.map +0 -1
  267. package/dist/adapters/GoAdapter.js +0 -611
  268. package/dist/adapters/GoAdapter.js.map +0 -1
  269. package/dist/adapters/GoConfig.d.ts +0 -35
  270. package/dist/adapters/GoConfig.d.ts.map +0 -1
  271. package/dist/adapters/GoConfig.js +0 -155
  272. package/dist/adapters/GoConfig.js.map +0 -1
  273. package/dist/adapters/LanguageAdapter.d.ts +0 -135
  274. package/dist/adapters/LanguageAdapter.d.ts.map +0 -1
  275. package/dist/adapters/LanguageAdapter.js +0 -47
  276. package/dist/adapters/LanguageAdapter.js.map +0 -1
  277. package/dist/adapters/TypeScriptAdapter.d.ts +0 -43
  278. package/dist/adapters/TypeScriptAdapter.d.ts.map +0 -1
  279. package/dist/adapters/TypeScriptAdapter.js +0 -386
  280. package/dist/adapters/TypeScriptAdapter.js.map +0 -1
  281. package/dist/adapters/UniversalAnalyzer.d.ts +0 -42
  282. package/dist/adapters/UniversalAnalyzer.d.ts.map +0 -1
  283. package/dist/adapters/UniversalAnalyzer.js +0 -103
  284. package/dist/adapters/UniversalAnalyzer.js.map +0 -1
  285. package/dist/adapters/UniversalSOLIDAnalyzer.d.ts +0 -48
  286. package/dist/adapters/UniversalSOLIDAnalyzer.d.ts.map +0 -1
  287. package/dist/adapters/UniversalSOLIDAnalyzer.js +0 -178
  288. package/dist/adapters/UniversalSOLIDAnalyzer.js.map +0 -1
  289. package/dist/adapters/solidAnalyzerCompat.d.ts +0 -21
  290. package/dist/adapters/solidAnalyzerCompat.d.ts.map +0 -1
  291. package/dist/adapters/solidAnalyzerCompat.js +0 -78
  292. package/dist/adapters/solidAnalyzerCompat.js.map +0 -1
  293. package/dist/analyzers/dataAccessAnalyzerCompat.d.ts +0 -20
  294. package/dist/analyzers/dataAccessAnalyzerCompat.d.ts.map +0 -1
  295. package/dist/analyzers/dataAccessAnalyzerCompat.js +0 -59
  296. package/dist/analyzers/dataAccessAnalyzerCompat.js.map +0 -1
  297. package/dist/analyzers/documentationAnalyzerCompat.d.ts +0 -20
  298. package/dist/analyzers/documentationAnalyzerCompat.d.ts.map +0 -1
  299. package/dist/analyzers/documentationAnalyzerCompat.js +0 -52
  300. package/dist/analyzers/documentationAnalyzerCompat.js.map +0 -1
  301. package/dist/analyzers/dryAnalyzerCompat.d.ts +0 -20
  302. package/dist/analyzers/dryAnalyzerCompat.d.ts.map +0 -1
  303. package/dist/analyzers/dryAnalyzerCompat.js +0 -44
  304. package/dist/analyzers/dryAnalyzerCompat.js.map +0 -1
  305. package/dist/analyzers/schemaAnalyzerCompat.d.ts +0 -20
  306. package/dist/analyzers/schemaAnalyzerCompat.d.ts.map +0 -1
  307. package/dist/analyzers/schemaAnalyzerCompat.js +0 -69
  308. package/dist/analyzers/schemaAnalyzerCompat.js.map +0 -1
  309. package/dist/analyzers/solidAnalyzerCompat.d.ts +0 -20
  310. package/dist/analyzers/solidAnalyzerCompat.d.ts.map +0 -1
  311. package/dist/analyzers/solidAnalyzerCompat.js +0 -78
  312. package/dist/analyzers/solidAnalyzerCompat.js.map +0 -1
  313. package/dist/codeIndexDb.d.ts.map +0 -1
  314. package/dist/codeIndexDb.js +0 -2102
  315. package/dist/codeIndexDb.js.map +0 -1
  316. package/dist/languages/typescript/TypeScriptAdapter.d.ts +0 -108
  317. package/dist/languages/typescript/TypeScriptAdapter.d.ts.map +0 -1
  318. package/dist/languages/typescript/TypeScriptAdapter.js +0 -567
  319. package/dist/languages/typescript/TypeScriptAdapter.js.map +0 -1
  320. package/dist/languages/typescript/test-extraction.d.ts +0 -2
  321. package/dist/languages/typescript/test-extraction.d.ts.map +0 -1
  322. package/dist/languages/typescript/test-extraction.js +0 -36
  323. package/dist/languages/typescript/test-extraction.js.map +0 -1
  324. package/dist/mcp-hybrid.d.ts +0 -10
  325. package/dist/mcp-hybrid.d.ts.map +0 -1
  326. package/dist/mcp-hybrid.js +0 -41
  327. package/dist/mcp-hybrid.js.map +0 -1
  328. package/dist/mcp-index.d.ts +0 -13
  329. package/dist/mcp-index.d.ts.map +0 -1
  330. package/dist/mcp-index.js +0 -136
  331. package/dist/mcp-index.js.map +0 -1
  332. package/dist/mcp-standalone.d.ts +0 -3
  333. package/dist/mcp-standalone.d.ts.map +0 -1
  334. package/dist/mcp-standalone.js +0 -1324
  335. package/dist/mcp-standalone.js.map +0 -1
  336. package/dist/mcp-ui-server.d.ts +0 -27
  337. package/dist/mcp-ui-server.d.ts.map +0 -1
  338. package/dist/mcp-ui-server.js +0 -484
  339. package/dist/mcp-ui-server.js.map +0 -1
  340. package/dist/test-multi-strategy-search.d.ts +0 -3
  341. package/dist/test-multi-strategy-search.d.ts.map +0 -1
  342. package/dist/test-multi-strategy-search.js +0 -170
  343. package/dist/test-multi-strategy-search.js.map +0 -1
@@ -1,225 +1,264 @@
1
1
  /**
2
2
  * JSDoc Parser Utilities
3
- * Extracts JSDoc documentation from TypeScript AST nodes
3
+ * Extracts JSDoc documentation from tree-sitter AST nodes
4
4
  *
5
- * Provides comprehensive extraction of JSDoc comments including:
6
- * - Description
7
- * - Parameters (@param)
8
- * - Return values (@returns, @return)
9
- * - Thrown exceptions (@throws)
10
- * - Examples (@example)
11
- * - Other tags (deprecated, since, see, etc.)
5
+ * ## Migration: TypeScript Compiler API tree-sitter
6
+ *
7
+ * Tree-sitter treats comments as real grammar nodes (`comment` type). JSDoc content
8
+ * (@tags, descriptions) is parsed textually from comment text — the same effective
9
+ * approach the TS API used (it walked JSDoc trivia). One path, no fallback.
10
+ *
11
+ * All `ts.Node`/`ts.SourceFile`/`ts.JSDoc`/`ts.JSDocTag` usage replaced with
12
+ * tree-sitter `ASTNode` + plain-text parsing of comment content.
12
13
  */
13
- import * as ts from 'typescript';
14
+ // ---------------------------------------------------------------------------
15
+ // Helpers
16
+ // ---------------------------------------------------------------------------
17
+ /** Get raw text from a tree-sitter node (stored on ASTNode.raw). */
18
+ function rawText(node) {
19
+ return node.raw?.text ?? '';
20
+ }
21
+ /** Find the first child of a given type. */
22
+ function findChildOfType(node, type) {
23
+ return node.children?.find(c => c.type === type);
24
+ }
25
+ // ---------------------------------------------------------------------------
26
+ // Comment location & text parsing
27
+ // ---------------------------------------------------------------------------
14
28
  /**
15
- * Extract JSDoc information from a TypeScript node
16
- * @param node The AST node to extract JSDoc from
17
- * @param sourceFile The source file containing the node
18
- * @returns Extracted JSDoc information
29
+ * Find JSDoc comments that immediately precede a node.
30
+ * In tree-sitter, comments are `comment` type sibling nodes in the parent's children array.
19
31
  */
20
- export function extractJSDoc(node, sourceFile) {
21
- const jsDocInfo = {
22
- tags: {}
23
- };
24
- // Get JSDoc comments attached to the node
25
- const jsDocComments = getJSDocComments(node);
26
- if (jsDocComments.length === 0) {
27
- return jsDocInfo;
28
- }
29
- // Process each JSDoc comment
30
- for (const jsDoc of jsDocComments) {
31
- // Extract description
32
- const description = extractDescription(jsDoc);
33
- if (description && !jsDocInfo.description) {
34
- jsDocInfo.description = description;
32
+ function getPrecedingComments(node) {
33
+ const parent = node.parent;
34
+ if (!parent || !parent.children)
35
+ return [];
36
+ const nodeIndex = parent.children.indexOf(node);
37
+ if (nodeIndex <= 0)
38
+ return [];
39
+ const comments = [];
40
+ // Walk backwards through siblings to collect consecutive comment nodes
41
+ for (let i = nodeIndex - 1; i >= 0; i--) {
42
+ const sibling = parent.children[i];
43
+ if (sibling.type === 'comment') {
44
+ comments.unshift(sibling);
35
45
  }
36
- // Extract tags
37
- if (jsDoc.tags) {
38
- for (const tag of jsDoc.tags) {
39
- processJSDocTag(tag, jsDocInfo);
40
- }
46
+ else {
47
+ break; // Stop when we hit a non-comment sibling
41
48
  }
42
49
  }
43
- return jsDocInfo;
50
+ return comments;
44
51
  }
45
52
  /**
46
- * Get JSDoc comments from a node
53
+ * Clean JSDoc comment text by stripping delimiters and leading asterisks.
54
+ * e.g., "/**\n * Description\n * @param x\n *\/" → "Description\n@param x"
47
55
  */
48
- function getJSDocComments(node) {
49
- const jsDocNodes = [];
50
- // TypeScript provides JSDoc comments through the node
51
- const jsDocComments = node.jsDoc;
52
- if (jsDocComments && Array.isArray(jsDocComments)) {
53
- jsDocNodes.push(...jsDocComments);
54
- }
55
- // Alternative method using ts.getJSDocCommentsAndTags
56
- const commentsAndTags = ts.getJSDocCommentsAndTags(node);
57
- for (const item of commentsAndTags) {
58
- if (ts.isJSDoc(item)) {
59
- jsDocNodes.push(item);
60
- }
61
- }
62
- return jsDocNodes;
56
+ function cleanCommentText(raw) {
57
+ // Remove /** and */
58
+ let text = raw
59
+ .replace(/^\/\*\*?\s*/, '') // Remove opening /** or /*
60
+ .replace(/\s*\*\/\s*$/, ''); // Remove closing */
61
+ // Remove leading * from each line
62
+ text = text
63
+ .split('\n')
64
+ .map(line => line.replace(/^\s*\*\s?/, ''))
65
+ .join('\n')
66
+ .trim();
67
+ return text;
63
68
  }
64
69
  /**
65
- * Extract description from JSDoc
70
+ * Parse JSDoc tags from cleaned comment text.
71
+ * Extracts all @tag annotations and the description text before the first tag.
66
72
  */
67
- function extractDescription(jsDoc) {
68
- if (jsDoc.comment) {
69
- if (typeof jsDoc.comment === 'string') {
70
- return jsDoc.comment.trim();
71
- }
72
- else if (Array.isArray(jsDoc.comment)) {
73
- // Handle NodeArray<JSDocComment>
74
- return jsDoc.comment.map(c => typeof c === 'string' ? c : c.getText?.() || '').join('').trim();
75
- }
73
+ function parseJSDocTags(commentText) {
74
+ const tags = [];
75
+ let description;
76
+ // Split by @tag markers. Each match captures: the tag name, and the content until next @tag or end.
77
+ const tagRegex = /@(\w+)([\s\S]*?)(?=@\w+\s|$)/g;
78
+ const tagMatches = [];
79
+ let match;
80
+ while ((match = tagRegex.exec(commentText)) !== null) {
81
+ tagMatches.push({
82
+ tagName: match[1].toLowerCase(),
83
+ content: match[2].trim(),
84
+ });
85
+ }
86
+ // Extract description: everything before the first @tag
87
+ const firstTagIndex = commentText.search(/@\w+\s/);
88
+ if (firstTagIndex >= 0) {
89
+ const descText = commentText.substring(0, firstTagIndex).trim();
90
+ if (descText)
91
+ description = descText;
76
92
  }
77
- return undefined;
93
+ else {
94
+ // No tags at all — the entire comment is the description
95
+ if (commentText.trim())
96
+ description = commentText.trim();
97
+ }
98
+ // Parse each tag
99
+ for (const tm of tagMatches) {
100
+ tags.push(parseTag(tm.tagName, tm.content));
101
+ }
102
+ return { description, tags };
78
103
  }
79
104
  /**
80
- * Process a JSDoc tag and add information to the JSDocInfo object
105
+ * Parse a single tag's content into a ParsedTag.
81
106
  */
82
- function processJSDocTag(tag, jsDocInfo) {
83
- const tagName = tag.tagName.text.toLowerCase();
107
+ function parseTag(tagName, content) {
108
+ const tag = { tagName };
84
109
  switch (tagName) {
85
110
  case 'param':
86
- case 'parameter':
87
- processParamTag(tag, jsDocInfo);
111
+ case 'parameter': {
112
+ // @param {Type} [name=default] Description
113
+ const paramMatch = content.match(/^\s*(?:\{([^}]+)\}\s*)?(?:\[\s*(\w+)\s*(?:=\s*([^\]]+))?\s*\]|(\w+))?\s*(.*)$/s);
114
+ if (paramMatch) {
115
+ tag.type = paramMatch[1];
116
+ tag.isOptional = !!paramMatch[2];
117
+ tag.name = paramMatch[2] || paramMatch[4];
118
+ tag.defaultValue = paramMatch[3];
119
+ tag.description = paramMatch[5]?.trim() || undefined;
120
+ }
88
121
  break;
122
+ }
89
123
  case 'returns':
90
- case 'return':
91
- processReturnTag(tag, jsDocInfo);
124
+ case 'return': {
125
+ // @returns {Type} Description
126
+ const retMatch = content.match(/^\s*(?:\{([^}]+)\}\s*)?([\s\S]*)$/);
127
+ if (retMatch) {
128
+ tag.type = retMatch[1];
129
+ tag.description = retMatch[2]?.trim() || undefined;
130
+ }
92
131
  break;
132
+ }
93
133
  case 'throws':
94
134
  case 'throw':
95
- case 'exception':
96
- processThrowsTag(tag, jsDocInfo);
135
+ case 'exception': {
136
+ // @throws {Type} Description
137
+ const throwsMatch = content.match(/^\s*(?:\{([^}]+)\}\s*)?([\s\S]*)$/);
138
+ if (throwsMatch) {
139
+ tag.type = throwsMatch[1];
140
+ tag.description = throwsMatch[2]?.trim() || undefined;
141
+ }
97
142
  break;
98
- case 'example':
99
- processExampleTag(tag, jsDocInfo);
143
+ }
144
+ case 'example': {
145
+ tag.description = content.trim() || undefined;
100
146
  break;
101
- default:
102
- // Store other tags generically
103
- processGenericTag(tag, jsDocInfo);
147
+ }
148
+ default: {
149
+ // Generic tag: @deprecated Description, @since 1.0, etc.
150
+ tag.description = content.trim() || undefined;
104
151
  break;
152
+ }
105
153
  }
154
+ return tag;
106
155
  }
156
+ // ---------------------------------------------------------------------------
157
+ // Public API — JSDoc extraction
158
+ // ---------------------------------------------------------------------------
107
159
  /**
108
- * Process @param tag
160
+ * Extract JSDoc information from a tree-sitter AST node.
161
+ * @param node The AST node to extract JSDoc from
162
+ * @returns Extracted JSDoc information
109
163
  */
110
- function processParamTag(tag, jsDocInfo) {
111
- if (!jsDocInfo.params) {
112
- jsDocInfo.params = [];
113
- }
114
- const param = {
115
- name: tag.name.getText(),
116
- optional: tag.isBracketed || false
164
+ export function extractJSDoc(node) {
165
+ const jsDocInfo = {
166
+ tags: {}
117
167
  };
118
- // Extract type if available
119
- if (tag.typeExpression) {
120
- param.type = tag.typeExpression.type.getText();
121
- }
122
- // Extract description
123
- if (tag.comment) {
124
- param.description = extractTagComment(tag.comment);
125
- }
126
- // Check for default value in description (common pattern: @param {type} [name=default])
127
- const nameText = tag.name.getText();
128
- if (nameText.includes('=')) {
129
- const [name, defaultValue] = nameText.split('=');
130
- param.name = name.trim();
131
- param.defaultValue = defaultValue.trim();
132
- param.optional = true;
133
- }
134
- jsDocInfo.params.push(param);
135
- }
136
- /**
137
- * Process @returns tag
138
- */
139
- function processReturnTag(tag, jsDocInfo) {
140
- if (!jsDocInfo.returns) {
141
- jsDocInfo.returns = {};
142
- }
143
- // Extract type if available
144
- if (tag.typeExpression) {
145
- jsDocInfo.returns.type = tag.typeExpression.type.getText();
146
- }
147
- // Extract description
148
- if (tag.comment) {
149
- jsDocInfo.returns.description = extractTagComment(tag.comment);
150
- }
151
- }
152
- /**
153
- * Process @throws tag
154
- */
155
- function processThrowsTag(tag, jsDocInfo) {
156
- if (!jsDocInfo.throws) {
157
- jsDocInfo.throws = [];
158
- }
159
- const throwsInfo = {};
160
- // Extract type if available
161
- if (tag.typeExpression) {
162
- throwsInfo.type = tag.typeExpression.type.getText();
163
- }
164
- // Extract description
165
- if (tag.comment) {
166
- throwsInfo.description = extractTagComment(tag.comment);
167
- }
168
- jsDocInfo.throws.push(throwsInfo);
169
- }
170
- /**
171
- * Process @example tag
172
- */
173
- function processExampleTag(tag, jsDocInfo) {
174
- if (!jsDocInfo.examples) {
175
- jsDocInfo.examples = [];
176
- }
177
- if (tag.comment) {
178
- const example = extractTagComment(tag.comment);
179
- if (example) {
180
- jsDocInfo.examples.push(example);
168
+ // Find JSDoc comments preceding the node
169
+ const comments = getPrecedingComments(node);
170
+ if (comments.length === 0)
171
+ return jsDocInfo;
172
+ // Process each comment's text
173
+ for (const comment of comments) {
174
+ const commentText = rawText(comment);
175
+ if (!commentText)
176
+ continue;
177
+ // Only process JSDoc-style comments (/** ... */)
178
+ if (!commentText.startsWith('/**'))
179
+ continue;
180
+ const cleaned = cleanCommentText(commentText);
181
+ if (!cleaned)
182
+ continue;
183
+ const { description, tags } = parseJSDocTags(cleaned);
184
+ if (description && !jsDocInfo.description) {
185
+ jsDocInfo.description = description;
181
186
  }
182
- }
183
- }
184
- /**
185
- * Process generic tags (deprecated, since, see, etc.)
186
- */
187
- function processGenericTag(tag, jsDocInfo) {
188
- const tagName = tag.tagName.text.toLowerCase();
189
- if (!jsDocInfo.tags[tagName]) {
190
- jsDocInfo.tags[tagName] = [];
191
- }
192
- if (tag.comment) {
193
- const comment = extractTagComment(tag.comment);
194
- if (comment) {
195
- jsDocInfo.tags[tagName].push(comment);
187
+ for (const tag of tags) {
188
+ applyParsedTag(tag, jsDocInfo);
196
189
  }
197
190
  }
198
- else {
199
- // Some tags don't have comments (e.g., @deprecated without description)
200
- jsDocInfo.tags[tagName].push('');
201
- }
191
+ return jsDocInfo;
202
192
  }
203
193
  /**
204
- * Extract comment text from JSDoc comment
194
+ * Apply a parsed tag to the JSDocInfo object.
205
195
  */
206
- function extractTagComment(comment) {
207
- if (typeof comment === 'string') {
208
- return comment.trim();
209
- }
210
- else if (Array.isArray(comment)) {
211
- return comment.map(c => typeof c === 'string' ? c : c.getText?.() || '').join('').trim();
196
+ function applyParsedTag(tag, jsDocInfo) {
197
+ switch (tag.tagName) {
198
+ case 'param':
199
+ case 'parameter':
200
+ if (!jsDocInfo.params)
201
+ jsDocInfo.params = [];
202
+ jsDocInfo.params.push({
203
+ name: tag.name || 'unknown',
204
+ type: tag.type,
205
+ description: tag.description,
206
+ optional: tag.isOptional,
207
+ defaultValue: tag.defaultValue,
208
+ });
209
+ break;
210
+ case 'returns':
211
+ case 'return':
212
+ jsDocInfo.returns = {
213
+ type: tag.type,
214
+ description: tag.description,
215
+ };
216
+ break;
217
+ case 'throws':
218
+ case 'throw':
219
+ case 'exception':
220
+ if (!jsDocInfo.throws)
221
+ jsDocInfo.throws = [];
222
+ jsDocInfo.throws.push({
223
+ type: tag.type,
224
+ description: tag.description,
225
+ });
226
+ break;
227
+ case 'example':
228
+ if (!jsDocInfo.examples)
229
+ jsDocInfo.examples = [];
230
+ if (tag.description) {
231
+ jsDocInfo.examples.push(tag.description);
232
+ }
233
+ break;
234
+ default:
235
+ if (!jsDocInfo.tags)
236
+ jsDocInfo.tags = {};
237
+ if (!jsDocInfo.tags[tag.tagName]) {
238
+ jsDocInfo.tags[tag.tagName] = [];
239
+ }
240
+ jsDocInfo.tags[tag.tagName].push(tag.description || '');
241
+ break;
212
242
  }
213
- return '';
214
243
  }
244
+ // ---------------------------------------------------------------------------
245
+ // Public API — function-level JSDoc
246
+ // ---------------------------------------------------------------------------
215
247
  /**
216
- * Extract JSDoc for function-like declarations
217
- * @param node Function declaration, method declaration, or arrow function
218
- * @param sourceFile The source file containing the node
248
+ * Extract JSDoc for function-like declarations.
249
+ * @param node Function declaration, method definition, or arrow function AST node
219
250
  * @returns JSDoc information formatted for EnhancedFunctionMetadata
220
251
  */
221
- export function extractFunctionJSDoc(node, sourceFile) {
222
- const jsDocInfo = extractJSDoc(node, sourceFile);
252
+ export function extractFunctionJSDoc(node) {
253
+ // Also check the parent for JSDoc that might be attached to a variable declarator
254
+ // (e.g., const x = () => {} where JSDoc is above the variable statement)
255
+ let jsDocInfo = extractJSDoc(node);
256
+ // If no JSDoc found directly, check parent (for variable declarations with JSDoc)
257
+ if (!jsDocInfo.description && !jsDocInfo.params?.length && !jsDocInfo.returns &&
258
+ node.parent && (node.parent.type === 'variable_declarator' ||
259
+ node.parent.type === 'lexical_declaration' || node.parent.type === 'variable_declaration')) {
260
+ jsDocInfo = extractJSDoc(node.parent);
261
+ }
223
262
  // Convert to EnhancedFunctionMetadata format
224
263
  const result = {};
225
264
  if (jsDocInfo.description) {
@@ -234,28 +273,53 @@ export function extractFunctionJSDoc(node, sourceFile) {
234
273
  return Object.keys(result).length > 0 ? result : undefined;
235
274
  }
236
275
  /**
237
- * Extract parameter information including JSDoc
238
- * @param node Function-like declaration
239
- * @param sourceFile The source file containing the node
276
+ * Extract parameter information including JSDoc.
277
+ * @param node Function-like declaration AST node
240
278
  * @returns Array of parameter information
241
279
  */
242
- export function extractParameters(node, sourceFile) {
243
- const jsDocInfo = extractJSDoc(node, sourceFile);
280
+ export function extractParameters(node) {
281
+ const jsDocInfo = extractJSDoc(node);
244
282
  const parameters = [];
245
- // Extract parameters from the function signature
246
- for (const param of node.parameters) {
247
- const paramName = param.name.getText(sourceFile);
283
+ // Extract parameters from formal_parameters child
284
+ const formalParams = findChildOfType(node, 'formal_parameters');
285
+ const paramNodes = formalParams?.children?.filter(c => c.type === 'required_parameter' || c.type === 'optional_parameter' || c.type === 'rest_parameter') ?? [];
286
+ for (const param of paramNodes) {
287
+ // Find the parameter name (first identifier or rest_pattern child)
288
+ let nameNode;
289
+ if (param.type === 'rest_parameter') {
290
+ // rest_parameter: ['...', identifier]
291
+ nameNode = param.children?.find(c => c.type === 'identifier');
292
+ }
293
+ else {
294
+ // required_parameter / optional_parameter: [identifier] or [identifier, ':', type]
295
+ nameNode = param.children?.find(c => c.type === 'identifier');
296
+ }
297
+ if (!nameNode)
298
+ continue;
299
+ const paramName = rawText(nameNode);
300
+ // Check for optional (has '?' token)
301
+ let isOptional = param.type === 'optional_parameter';
302
+ // Check for initializer (default value) — parameter has '=' child followed by value
303
+ let defaultValue;
304
+ const eqIndex = param.children?.findIndex(c => c.type === '=');
305
+ if (eqIndex !== undefined && eqIndex >= 0) {
306
+ const defaultNode = param.children[eqIndex + 1];
307
+ if (defaultNode) {
308
+ defaultValue = rawText(defaultNode);
309
+ isOptional = true;
310
+ }
311
+ }
248
312
  const paramInfo = {
249
313
  name: paramName,
250
- optional: !!param.questionToken || !!param.initializer
314
+ optional: isOptional,
251
315
  };
252
- // Get type from TypeScript
253
- if (param.type) {
254
- paramInfo.type = param.type.getText(sourceFile);
316
+ // Get type annotation
317
+ const typeAnnot = findChildOfType(param, 'type_annotation');
318
+ if (typeAnnot) {
319
+ paramInfo.type = rawText(typeAnnot).replace(/^:\s*/, '').trim();
255
320
  }
256
- // Get default value
257
- if (param.initializer) {
258
- paramInfo.defaultValue = param.initializer.getText(sourceFile);
321
+ if (defaultValue) {
322
+ paramInfo.defaultValue = defaultValue;
259
323
  }
260
324
  // Find matching JSDoc param
261
325
  const jsDocParam = jsDocInfo.params?.find(p => p.name === paramName);
@@ -290,39 +354,39 @@ export function extractParameters(node, sourceFile) {
290
354
  return parameters;
291
355
  }
292
356
  /**
293
- * Extract return type information including JSDoc
294
- * @param node Function-like declaration
295
- * @param sourceFile The source file containing the node
357
+ * Extract return type information including JSDoc.
358
+ * @param node Function-like declaration AST node
296
359
  * @returns Return type string or undefined
297
360
  */
298
- export function extractReturnType(node, sourceFile) {
299
- // First try to get the TypeScript return type
300
- if (node.type) {
301
- return node.type.getText(sourceFile);
361
+ export function extractReturnType(node) {
362
+ // First try to get the TypeScript return type annotation
363
+ const typeAnnot = findChildOfType(node, 'type_annotation');
364
+ if (typeAnnot) {
365
+ return rawText(typeAnnot).replace(/^:\s*/, '').trim();
302
366
  }
303
367
  // Fall back to JSDoc return type
304
- const jsDocInfo = extractJSDoc(node, sourceFile);
368
+ const jsDocInfo = extractJSDoc(node);
305
369
  if (jsDocInfo.returns?.type) {
306
370
  return jsDocInfo.returns.type;
307
371
  }
308
372
  return undefined;
309
373
  }
310
374
  /**
311
- * Check if a function has JSDoc documentation
312
- * @param node Function-like declaration
375
+ * Check if a function has JSDoc documentation.
376
+ * @param node The AST node
313
377
  * @returns True if the function has JSDoc
314
378
  */
315
379
  export function hasJSDoc(node) {
316
- const jsDocComments = getJSDocComments(node);
317
- return jsDocComments.length > 0;
380
+ const comments = getPrecedingComments(node);
381
+ return comments.some(c => rawText(c).startsWith('/**'));
318
382
  }
319
383
  /**
320
- * Extract all JSDoc tags from a node
384
+ * Extract all JSDoc tags from a node.
321
385
  * @param node The AST node
322
386
  * @returns Map of tag names to their values
323
387
  */
324
388
  export function extractAllJSDocTags(node) {
325
- const jsDocInfo = extractJSDoc(node, node.getSourceFile());
389
+ const jsDocInfo = extractJSDoc(node);
326
390
  const allTags = { ...jsDocInfo.tags };
327
391
  // Add structured tags to the result
328
392
  if (jsDocInfo.params && jsDocInfo.params.length > 0) {
@@ -342,7 +406,7 @@ export function extractAllJSDocTags(node) {
342
406
  return allTags;
343
407
  }
344
408
  /**
345
- * Create a searchable text representation of JSDoc
409
+ * Create a searchable text representation of JSDoc.
346
410
  * @param jsDoc JSDoc information
347
411
  * @returns Searchable text string
348
412
  */
@@ -1 +1 @@
1
- {"version":3,"file":"jsDocParser.js","sourceRoot":"","sources":["../../src/utils/jsDocParser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"jsDocParser.js","sourceRoot":"","sources":["../../src/utils/jsDocParser.ts"],"names":[],"mappings":"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"}