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.
- package/README.md +23 -196
- package/dist/analyzers/analyzerUtils.d.ts +13 -11
- package/dist/analyzers/analyzerUtils.d.ts.map +1 -1
- package/dist/analyzers/analyzerUtils.js +22 -56
- package/dist/analyzers/analyzerUtils.js.map +1 -1
- package/dist/analyzers/cross-language/APIContractAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/cross-language/CrossLanguageSOLIDAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/cross-language/CrossLanguageSOLIDAnalyzer.js.map +1 -1
- package/dist/analyzers/cross-language/DependencyGraphBuilder.d.ts.map +1 -1
- package/dist/analyzers/cross-language/DependencyGraphBuilder.js.map +1 -1
- package/dist/analyzers/cross-language/SchemaValidator.d.ts.map +1 -1
- package/dist/analyzers/cross-language/SchemaValidator.js.map +1 -1
- package/dist/analyzers/dataAccessAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/dataAccessAnalyzer.js +50 -24
- package/dist/analyzers/dataAccessAnalyzer.js.map +1 -1
- package/dist/analyzers/documentationAnalyzer.d.ts +4 -1
- package/dist/analyzers/documentationAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/documentationAnalyzer.js +210 -111
- package/dist/analyzers/documentationAnalyzer.js.map +1 -1
- package/dist/analyzers/dryAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/dryAnalyzer.js +190 -58
- package/dist/analyzers/dryAnalyzer.js.map +1 -1
- package/dist/analyzers/invariantsAnalyzer.d.ts +20 -0
- package/dist/analyzers/invariantsAnalyzer.d.ts.map +1 -0
- package/dist/analyzers/invariantsAnalyzer.js +148 -0
- package/dist/analyzers/invariantsAnalyzer.js.map +1 -0
- package/dist/analyzers/reactAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/reactAnalyzer.js +2 -2
- package/dist/analyzers/reactAnalyzer.js.map +1 -1
- package/dist/analyzers/schemaAnalyzer.d.ts +2 -0
- package/dist/analyzers/schemaAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/schemaAnalyzer.js +306 -147
- package/dist/analyzers/schemaAnalyzer.js.map +1 -1
- package/dist/analyzers/solidAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/solidAnalyzer.js +145 -119
- package/dist/analyzers/solidAnalyzer.js.map +1 -1
- package/dist/analyzers/universal/UniversalDRYAnalyzer.d.ts +3 -1
- package/dist/analyzers/universal/UniversalDRYAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/universal/UniversalDRYAnalyzer.js +41 -1
- package/dist/analyzers/universal/UniversalDRYAnalyzer.js.map +1 -1
- package/dist/analyzers/universal/UniversalDataAccessAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/universal/UniversalDataAccessAnalyzer.js +8 -8
- package/dist/analyzers/universal/UniversalDataAccessAnalyzer.js.map +1 -1
- package/dist/analyzers/universal/UniversalDocumentationAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/universal/UniversalDocumentationAnalyzer.js +6 -6
- package/dist/analyzers/universal/UniversalDocumentationAnalyzer.js.map +1 -1
- package/dist/analyzers/universal/UniversalSOLIDAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/universal/UniversalSchemaAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/universal/UniversalSchemaAnalyzer.js +1 -1
- package/dist/analyzers/universal/UniversalSchemaAnalyzer.js.map +1 -1
- package/dist/api/index.js +1 -0
- package/dist/api/index.js.map +1 -1
- package/dist/auditRunner.d.ts.map +1 -1
- package/dist/auditRunner.js +367 -24
- package/dist/auditRunner.js.map +1 -1
- package/dist/cli.d.ts +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +740 -18
- package/dist/cli.js.map +1 -1
- package/dist/codeIndexDB-enhanced.d.ts +35 -13
- package/dist/codeIndexDB-enhanced.d.ts.map +1 -1
- package/dist/codeIndexDB-enhanced.js +311 -214
- package/dist/codeIndexDB-enhanced.js.map +1 -1
- package/dist/{codeIndexDb.d.ts → codeIndexDB.d.ts} +51 -224
- package/dist/codeIndexDB.d.ts.map +1 -0
- package/dist/codeIndexDB.js +2042 -0
- package/dist/codeIndexDB.js.map +1 -0
- package/dist/codeIndexService.d.ts.map +1 -1
- package/dist/codeIndexService.js.map +1 -1
- package/dist/componentScanner.d.ts +14 -8
- package/dist/componentScanner.d.ts.map +1 -1
- package/dist/componentScanner.js +136 -113
- package/dist/componentScanner.js.map +1 -1
- package/dist/config/configLoader.d.ts.map +1 -1
- package/dist/config/configLoader.js +10 -7
- package/dist/config/configLoader.js.map +1 -1
- package/dist/config/defaults.d.ts.map +1 -1
- package/dist/constants.js.map +1 -1
- package/dist/fingerprint.d.ts +15 -0
- package/dist/fingerprint.d.ts.map +1 -0
- package/dist/fingerprint.js +32 -0
- package/dist/fingerprint.js.map +1 -0
- package/dist/functionScanner.d.ts +5 -0
- package/dist/functionScanner.d.ts.map +1 -1
- package/dist/functionScanner.js +417 -341
- package/dist/functionScanner.js.map +1 -1
- package/dist/generators/AWSQConfigGenerator.d.ts.map +1 -1
- package/dist/generators/AiderConfigGenerator.d.ts.map +1 -1
- package/dist/generators/BaseConfigGenerator.d.ts.map +1 -1
- package/dist/generators/BaseConfigGenerator.js.map +1 -1
- package/dist/generators/ClaudeConfigGenerator.d.ts.map +1 -1
- package/dist/generators/ClineConfigGenerator.d.ts.map +1 -1
- package/dist/generators/CodeiumConfigGenerator.d.ts.map +1 -1
- package/dist/generators/ConfigGeneratorFactory.d.ts.map +1 -1
- package/dist/generators/ConfigGeneratorFactory.js.map +1 -1
- package/dist/generators/ContinueConfigGenerator.d.ts.map +1 -1
- package/dist/generators/CopilotConfigGenerator.d.ts.map +1 -1
- package/dist/generators/CursorConfigGenerator.d.ts.map +1 -1
- package/dist/generators/JetBrainsConfigGenerator.d.ts.map +1 -1
- package/dist/generators/VSCodeConfigGenerator.d.ts.map +1 -1
- package/dist/grammars/tree-sitter-go.wasm +0 -0
- package/dist/grammars/tree-sitter-javascript.wasm +0 -0
- package/dist/grammars/tree-sitter-tsx.wasm +0 -0
- package/dist/grammars/tree-sitter-typescript.wasm +0 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/invariants/index.d.ts +9 -0
- package/dist/invariants/index.d.ts.map +1 -0
- package/dist/invariants/index.js +4 -0
- package/dist/invariants/index.js.map +1 -0
- package/dist/invariants/invariant-rules.schema.json +137 -0
- package/dist/invariants/ruleEngine.d.ts +32 -0
- package/dist/invariants/ruleEngine.d.ts.map +1 -0
- package/dist/invariants/ruleEngine.js +536 -0
- package/dist/invariants/ruleEngine.js.map +1 -0
- package/dist/invariants/ruleValidator.d.ts +17 -0
- package/dist/invariants/ruleValidator.d.ts.map +1 -0
- package/dist/invariants/ruleValidator.js +264 -0
- package/dist/invariants/ruleValidator.js.map +1 -0
- package/dist/invariants/types.d.ts +78 -0
- package/dist/invariants/types.d.ts.map +1 -0
- package/dist/invariants/types.js +5 -0
- package/dist/invariants/types.js.map +1 -0
- package/dist/languages/LanguageOrchestrator.d.ts.map +1 -1
- package/dist/languages/LanguageOrchestrator.js.map +1 -1
- package/dist/languages/LanguageRegistry.d.ts.map +1 -1
- package/dist/languages/RuntimeManager.d.ts.map +1 -1
- package/dist/languages/RuntimeManager.js +1 -1
- package/dist/languages/RuntimeManager.js.map +1 -1
- package/dist/languages/UniversalAnalyzer.d.ts.map +1 -1
- package/dist/languages/UniversalAnalyzer.js.map +1 -1
- package/dist/languages/adapterBridge.d.ts +102 -0
- package/dist/languages/adapterBridge.d.ts.map +1 -0
- package/dist/languages/adapterBridge.js +382 -0
- package/dist/languages/adapterBridge.js.map +1 -0
- package/dist/languages/go/GoAdapter.d.ts +37 -26
- package/dist/languages/go/GoAdapter.d.ts.map +1 -1
- package/dist/languages/go/GoAdapter.js +560 -281
- package/dist/languages/go/GoAdapter.js.map +1 -1
- package/dist/languages/index.d.ts +5 -2
- package/dist/languages/index.d.ts.map +1 -1
- package/dist/languages/index.js +11 -9
- package/dist/languages/index.js.map +1 -1
- package/dist/languages/tree-sitter/converter.d.ts +43 -0
- package/dist/languages/tree-sitter/converter.d.ts.map +1 -0
- package/dist/languages/tree-sitter/converter.js +150 -0
- package/dist/languages/tree-sitter/converter.js.map +1 -0
- package/dist/languages/tree-sitter/parser.d.ts +36 -0
- package/dist/languages/tree-sitter/parser.d.ts.map +1 -0
- package/dist/languages/tree-sitter/parser.js +114 -0
- package/dist/languages/tree-sitter/parser.js.map +1 -0
- package/dist/languages/types.d.ts +11 -0
- package/dist/languages/types.d.ts.map +1 -1
- package/dist/languages/typescript/TreeSitterTypeScriptAdapter.d.ts +92 -0
- package/dist/languages/typescript/TreeSitterTypeScriptAdapter.d.ts.map +1 -0
- package/dist/languages/typescript/TreeSitterTypeScriptAdapter.js +951 -0
- package/dist/languages/typescript/TreeSitterTypeScriptAdapter.js.map +1 -0
- package/dist/mcp-tools/projectTasks.d.ts +58 -22
- package/dist/mcp-tools/projectTasks.d.ts.map +1 -1
- package/dist/mcp-tools/projectTasks.js +172 -10
- package/dist/mcp-tools/projectTasks.js.map +1 -1
- package/dist/mcp-tools/whitelistTools.d.ts +21 -21
- package/dist/mcp-tools/whitelistTools.d.ts.map +1 -1
- package/dist/mcp-tools/workflowGuide.d.ts.map +1 -1
- package/dist/mcp-tools/workflowGuide.js +130 -126
- package/dist/mcp-tools/workflowGuide.js.map +1 -1
- package/dist/mcp-tools-shared.d.ts.map +1 -1
- package/dist/mcp-tools-shared.js.map +1 -1
- package/dist/mcp-ui-simple.js +1 -1
- package/dist/mcp-ui-simple.js.map +1 -1
- package/dist/mcp.d.ts +1 -1
- package/dist/mcp.d.ts.map +1 -1
- package/dist/mcp.js +1376 -1181
- package/dist/mcp.js.map +1 -1
- package/dist/mcpAuditJobs.d.ts +4 -0
- package/dist/mcpAuditJobs.d.ts.map +1 -1
- package/dist/mcpAuditJobs.js +49 -2
- package/dist/mcpAuditJobs.js.map +1 -1
- package/dist/mcpToolErrors.d.ts.map +1 -1
- package/dist/mcpToolErrors.js.map +1 -1
- package/dist/native/ast-grep-napi.darwin-arm64.node +0 -0
- package/dist/native/ast-grep-napi.darwin-x64.node +0 -0
- package/dist/native/ast-grep-napi.linux-arm64-gnu.node +0 -0
- package/dist/native/ast-grep-napi.linux-arm64-musl.node +0 -0
- package/dist/native/ast-grep-napi.linux-x64-gnu.node +0 -0
- package/dist/native/ast-grep-napi.linux-x64-musl.node +0 -0
- package/dist/native/ast-grep-napi.win32-x64-msvc.node +0 -0
- package/dist/native-bootstrap.d.ts +15 -0
- package/dist/native-bootstrap.d.ts.map +1 -0
- package/dist/native-bootstrap.js +75 -0
- package/dist/native-bootstrap.js.map +1 -0
- package/dist/reporting/csvReportGenerator.d.ts.map +1 -1
- package/dist/reporting/htmlReportGenerator.d.ts.map +1 -1
- package/dist/reporting/jsonReportGenerator.d.ts.map +1 -1
- package/dist/reporting/reportGenerator.d.ts.map +1 -1
- package/dist/reporting/reportGenerator.js +4 -0
- package/dist/reporting/reportGenerator.js.map +1 -1
- package/dist/reporting/sarifReportGenerator.d.ts +39 -0
- package/dist/reporting/sarifReportGenerator.d.ts.map +1 -0
- package/dist/reporting/sarifReportGenerator.js +229 -0
- package/dist/reporting/sarifReportGenerator.js.map +1 -0
- package/dist/search/QueryParser.d.ts +41 -0
- package/dist/search/QueryParser.d.ts.map +1 -1
- package/dist/search/QueryParser.js +200 -19
- package/dist/search/QueryParser.js.map +1 -1
- package/dist/services/CodeMapGenerator.d.ts.map +1 -1
- package/dist/services/CodeMapGenerator.js +4 -4
- package/dist/services/CodeMapGenerator.js.map +1 -1
- package/dist/services/ProjectTaskRepository.d.ts +15 -2
- package/dist/services/ProjectTaskRepository.d.ts.map +1 -1
- package/dist/services/ProjectTaskRepository.js +16 -1
- package/dist/services/ProjectTaskRepository.js.map +1 -1
- package/dist/services/SchemaParser.d.ts.map +1 -1
- package/dist/services/SchemaParser.js +5 -8
- package/dist/services/SchemaParser.js.map +1 -1
- package/dist/services/auditJobService.d.ts +1 -1
- package/dist/services/projectTaskHelpers.js.map +1 -1
- package/dist/services/whitelistService.d.ts.map +1 -1
- package/dist/services/whitelistService.js +1 -1
- package/dist/services/whitelistService.js.map +1 -1
- package/dist/tool-registry.d.ts +79 -0
- package/dist/tool-registry.d.ts.map +1 -0
- package/dist/tool-registry.js +139 -0
- package/dist/tool-registry.js.map +1 -0
- package/dist/types/projectTask.d.ts +4 -0
- package/dist/types/projectTask.d.ts.map +1 -1
- package/dist/types.d.ts +26 -2
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/dist/ui/InteractivePrompts.d.ts.map +1 -1
- package/dist/ui/InteractivePrompts.js.map +1 -1
- package/dist/utils/astParser.d.ts +31 -38
- package/dist/utils/astParser.d.ts.map +1 -1
- package/dist/utils/astParser.js +138 -196
- package/dist/utils/astParser.js.map +1 -1
- package/dist/utils/astUtils.d.ts +87 -58
- package/dist/utils/astUtils.d.ts.map +1 -1
- package/dist/utils/astUtils.js +852 -581
- package/dist/utils/astUtils.js.map +1 -1
- package/dist/utils/componentPatterns.js.map +1 -1
- package/dist/utils/componentResponsibility.d.ts +13 -9
- package/dist/utils/componentResponsibility.d.ts.map +1 -1
- package/dist/utils/componentResponsibility.js +236 -206
- package/dist/utils/componentResponsibility.js.map +1 -1
- package/dist/utils/dependencyExtractor.d.ts +11 -6
- package/dist/utils/dependencyExtractor.d.ts.map +1 -1
- package/dist/utils/dependencyExtractor.js +200 -119
- package/dist/utils/dependencyExtractor.js.map +1 -1
- package/dist/utils/fileDiscovery.d.ts +1 -1
- package/dist/utils/fileDiscovery.d.ts.map +1 -1
- package/dist/utils/fileDiscovery.js +15 -6
- package/dist/utils/fileDiscovery.js.map +1 -1
- package/dist/utils/jsDocParser.d.ts +27 -30
- package/dist/utils/jsDocParser.d.ts.map +1 -1
- package/dist/utils/jsDocParser.js +271 -207
- package/dist/utils/jsDocParser.js.map +1 -1
- package/dist/utils/reactDetection.d.ts +27 -12
- package/dist/utils/reactDetection.d.ts.map +1 -1
- package/dist/utils/reactDetection.js +331 -219
- package/dist/utils/reactDetection.js.map +1 -1
- package/dist/workers/auditWorker.js +17 -3
- package/dist/workers/auditWorker.js.map +1 -1
- package/package.json +54 -51
- package/dist/adapters/GoAdapter.d.ts +0 -53
- package/dist/adapters/GoAdapter.d.ts.map +0 -1
- package/dist/adapters/GoAdapter.js +0 -611
- package/dist/adapters/GoAdapter.js.map +0 -1
- package/dist/adapters/GoConfig.d.ts +0 -35
- package/dist/adapters/GoConfig.d.ts.map +0 -1
- package/dist/adapters/GoConfig.js +0 -155
- package/dist/adapters/GoConfig.js.map +0 -1
- package/dist/adapters/LanguageAdapter.d.ts +0 -135
- package/dist/adapters/LanguageAdapter.d.ts.map +0 -1
- package/dist/adapters/LanguageAdapter.js +0 -47
- package/dist/adapters/LanguageAdapter.js.map +0 -1
- package/dist/adapters/TypeScriptAdapter.d.ts +0 -43
- package/dist/adapters/TypeScriptAdapter.d.ts.map +0 -1
- package/dist/adapters/TypeScriptAdapter.js +0 -386
- package/dist/adapters/TypeScriptAdapter.js.map +0 -1
- package/dist/adapters/UniversalAnalyzer.d.ts +0 -42
- package/dist/adapters/UniversalAnalyzer.d.ts.map +0 -1
- package/dist/adapters/UniversalAnalyzer.js +0 -103
- package/dist/adapters/UniversalAnalyzer.js.map +0 -1
- package/dist/adapters/UniversalSOLIDAnalyzer.d.ts +0 -48
- package/dist/adapters/UniversalSOLIDAnalyzer.d.ts.map +0 -1
- package/dist/adapters/UniversalSOLIDAnalyzer.js +0 -178
- package/dist/adapters/UniversalSOLIDAnalyzer.js.map +0 -1
- package/dist/adapters/solidAnalyzerCompat.d.ts +0 -21
- package/dist/adapters/solidAnalyzerCompat.d.ts.map +0 -1
- package/dist/adapters/solidAnalyzerCompat.js +0 -78
- package/dist/adapters/solidAnalyzerCompat.js.map +0 -1
- package/dist/analyzers/dataAccessAnalyzerCompat.d.ts +0 -20
- package/dist/analyzers/dataAccessAnalyzerCompat.d.ts.map +0 -1
- package/dist/analyzers/dataAccessAnalyzerCompat.js +0 -59
- package/dist/analyzers/dataAccessAnalyzerCompat.js.map +0 -1
- package/dist/analyzers/documentationAnalyzerCompat.d.ts +0 -20
- package/dist/analyzers/documentationAnalyzerCompat.d.ts.map +0 -1
- package/dist/analyzers/documentationAnalyzerCompat.js +0 -52
- package/dist/analyzers/documentationAnalyzerCompat.js.map +0 -1
- package/dist/analyzers/dryAnalyzerCompat.d.ts +0 -20
- package/dist/analyzers/dryAnalyzerCompat.d.ts.map +0 -1
- package/dist/analyzers/dryAnalyzerCompat.js +0 -44
- package/dist/analyzers/dryAnalyzerCompat.js.map +0 -1
- package/dist/analyzers/schemaAnalyzerCompat.d.ts +0 -20
- package/dist/analyzers/schemaAnalyzerCompat.d.ts.map +0 -1
- package/dist/analyzers/schemaAnalyzerCompat.js +0 -69
- package/dist/analyzers/schemaAnalyzerCompat.js.map +0 -1
- package/dist/analyzers/solidAnalyzerCompat.d.ts +0 -20
- package/dist/analyzers/solidAnalyzerCompat.d.ts.map +0 -1
- package/dist/analyzers/solidAnalyzerCompat.js +0 -78
- package/dist/analyzers/solidAnalyzerCompat.js.map +0 -1
- package/dist/codeIndexDb.d.ts.map +0 -1
- package/dist/codeIndexDb.js +0 -2102
- package/dist/codeIndexDb.js.map +0 -1
- package/dist/languages/typescript/TypeScriptAdapter.d.ts +0 -108
- package/dist/languages/typescript/TypeScriptAdapter.d.ts.map +0 -1
- package/dist/languages/typescript/TypeScriptAdapter.js +0 -567
- package/dist/languages/typescript/TypeScriptAdapter.js.map +0 -1
- package/dist/languages/typescript/test-extraction.d.ts +0 -2
- package/dist/languages/typescript/test-extraction.d.ts.map +0 -1
- package/dist/languages/typescript/test-extraction.js +0 -36
- package/dist/languages/typescript/test-extraction.js.map +0 -1
- package/dist/mcp-hybrid.d.ts +0 -10
- package/dist/mcp-hybrid.d.ts.map +0 -1
- package/dist/mcp-hybrid.js +0 -41
- package/dist/mcp-hybrid.js.map +0 -1
- package/dist/mcp-index.d.ts +0 -13
- package/dist/mcp-index.d.ts.map +0 -1
- package/dist/mcp-index.js +0 -136
- package/dist/mcp-index.js.map +0 -1
- package/dist/mcp-standalone.d.ts +0 -3
- package/dist/mcp-standalone.d.ts.map +0 -1
- package/dist/mcp-standalone.js +0 -1324
- package/dist/mcp-standalone.js.map +0 -1
- package/dist/mcp-ui-server.d.ts +0 -27
- package/dist/mcp-ui-server.d.ts.map +0 -1
- package/dist/mcp-ui-server.js +0 -484
- package/dist/mcp-ui-server.js.map +0 -1
- package/dist/test-multi-strategy-search.d.ts +0 -3
- package/dist/test-multi-strategy-search.d.ts.map +0 -1
- package/dist/test-multi-strategy-search.js +0 -170
- 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
|
|
3
|
+
* Extracts JSDoc documentation from tree-sitter AST nodes
|
|
4
4
|
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
* -
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
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
|
-
|
|
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
|
-
*
|
|
16
|
-
*
|
|
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
|
-
|
|
21
|
-
const
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
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
|
-
|
|
37
|
-
|
|
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
|
|
50
|
+
return comments;
|
|
44
51
|
}
|
|
45
52
|
/**
|
|
46
|
-
*
|
|
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
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
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
|
-
*
|
|
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
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
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
|
-
|
|
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
|
-
*
|
|
105
|
+
* Parse a single tag's content into a ParsedTag.
|
|
81
106
|
*/
|
|
82
|
-
function
|
|
83
|
-
const
|
|
107
|
+
function parseTag(tagName, content) {
|
|
108
|
+
const tag = { tagName };
|
|
84
109
|
switch (tagName) {
|
|
85
110
|
case 'param':
|
|
86
|
-
case 'parameter':
|
|
87
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
99
|
-
|
|
143
|
+
}
|
|
144
|
+
case 'example': {
|
|
145
|
+
tag.description = content.trim() || undefined;
|
|
100
146
|
break;
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
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
|
-
*
|
|
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
|
|
111
|
-
|
|
112
|
-
|
|
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
|
-
//
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
//
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
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
|
-
|
|
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
|
-
*
|
|
194
|
+
* Apply a parsed tag to the JSDocInfo object.
|
|
205
195
|
*/
|
|
206
|
-
function
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
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
|
|
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
|
|
222
|
-
|
|
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
|
|
243
|
-
const jsDocInfo = extractJSDoc(node
|
|
280
|
+
export function extractParameters(node) {
|
|
281
|
+
const jsDocInfo = extractJSDoc(node);
|
|
244
282
|
const parameters = [];
|
|
245
|
-
// Extract parameters from
|
|
246
|
-
|
|
247
|
-
|
|
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:
|
|
314
|
+
optional: isOptional,
|
|
251
315
|
};
|
|
252
|
-
// Get type
|
|
253
|
-
|
|
254
|
-
|
|
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
|
-
|
|
257
|
-
|
|
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
|
|
299
|
-
// First try to get the TypeScript return type
|
|
300
|
-
|
|
301
|
-
|
|
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
|
|
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
|
|
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
|
|
317
|
-
return
|
|
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
|
|
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":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AA2BjC;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAAC,IAAa,EAAE,UAAyB;IACnE,MAAM,SAAS,GAAc;QAC3B,IAAI,EAAE,EAAE;KACT,CAAC;IAEF,0CAA0C;IAC1C,MAAM,aAAa,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAE7C,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/B,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,6BAA6B;IAC7B,KAAK,MAAM,KAAK,IAAI,aAAa,EAAE,CAAC;QAClC,sBAAsB;QACtB,MAAM,WAAW,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;QAC9C,IAAI,WAAW,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;YAC1C,SAAS,CAAC,WAAW,GAAG,WAAW,CAAC;QACtC,CAAC;QAED,eAAe;QACf,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;YACf,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;gBAC7B,eAAe,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;YAClC,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;GAEG;AACH,SAAS,gBAAgB,CAAC,IAAa;IACrC,MAAM,UAAU,GAAe,EAAE,CAAC;IAElC,sDAAsD;IACtD,MAAM,aAAa,GAAI,IAAY,CAAC,KAAK,CAAC;IAC1C,IAAI,aAAa,IAAI,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC;QAClD,UAAU,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,CAAC;IACpC,CAAC;IAED,sDAAsD;IACtD,MAAM,eAAe,GAAG,EAAE,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC;IACzD,KAAK,MAAM,IAAI,IAAI,eAAe,EAAE,CAAC;QACnC,IAAI,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YACrB,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxB,CAAC;IACH,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC;AAED;;GAEG;AACH,SAAS,kBAAkB,CAAC,KAAe;IACzC,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;QAClB,IAAI,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;YACtC,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QAC9B,CAAC;aAAM,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;YACxC,iCAAiC;YACjC,OAAO,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAC3B,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,CAChD,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACpB,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;GAEG;AACH,SAAS,eAAe,CAAC,GAAgB,EAAE,SAAoB;IAC7D,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;IAE/C,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,OAAO,CAAC;QACb,KAAK,WAAW;YACd,eAAe,CAAC,GAA2B,EAAE,SAAS,CAAC,CAAC;YACxD,MAAM;QAER,KAAK,SAAS,CAAC;QACf,KAAK,QAAQ;YACX,gBAAgB,CAAC,GAAwB,EAAE,SAAS,CAAC,CAAC;YACtD,MAAM;QAER,KAAK,QAAQ,CAAC;QACd,KAAK,OAAO,CAAC;QACb,KAAK,WAAW;YACd,gBAAgB,CAAC,GAAwB,EAAE,SAAS,CAAC,CAAC;YACtD,MAAM;QAER,KAAK,SAAS;YACZ,iBAAiB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;YAClC,MAAM;QAER;YACE,+BAA+B;YAC/B,iBAAiB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;YAClC,MAAM;IACV,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,eAAe,CAAC,GAAyB,EAAE,SAAoB;IACtE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;QACtB,SAAS,CAAC,MAAM,GAAG,EAAE,CAAC;IACxB,CAAC;IAED,MAAM,KAAK,GAA2B;QACpC,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE;QACxB,QAAQ,EAAE,GAAG,CAAC,WAAW,IAAI,KAAK;KACnC,CAAC;IAEF,4BAA4B;IAC5B,IAAI,GAAG,CAAC,cAAc,EAAE,CAAC;QACvB,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;IACjD,CAAC;IAED,sBAAsB;IACtB,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;QAChB,KAAK,CAAC,WAAW,GAAG,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACrD,CAAC;IAED,wFAAwF;IACxF,MAAM,QAAQ,GAAG,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;IACpC,IAAI,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAC3B,MAAM,CAAC,IAAI,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACjD,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QACzB,KAAK,CAAC,YAAY,GAAG,YAAY,CAAC,IAAI,EAAE,CAAC;QACzC,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC;IACxB,CAAC;IAED,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC/B,CAAC;AAED;;GAEG;AACH,SAAS,gBAAgB,CAAC,GAAsB,EAAE,SAAoB;IACpE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;QACvB,SAAS,CAAC,OAAO,GAAG,EAAE,CAAC;IACzB,CAAC;IAED,4BAA4B;IAC5B,IAAI,GAAG,CAAC,cAAc,EAAE,CAAC;QACvB,SAAS,CAAC,OAAO,CAAC,IAAI,GAAG,GAAG,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;IAC7D,CAAC;IAED,sBAAsB;IACtB,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;QAChB,SAAS,CAAC,OAAO,CAAC,WAAW,GAAG,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACjE,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,gBAAgB,CAAC,GAAsB,EAAE,SAAoB;IACpE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;QACtB,SAAS,CAAC,MAAM,GAAG,EAAE,CAAC;IACxB,CAAC;IAED,MAAM,UAAU,GAA2B,EAAE,CAAC;IAE9C,4BAA4B;IAC5B,IAAI,GAAG,CAAC,cAAc,EAAE,CAAC;QACvB,UAAU,CAAC,IAAI,GAAG,GAAG,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;IACtD,CAAC;IAED,sBAAsB;IACtB,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;QAChB,UAAU,CAAC,WAAW,GAAG,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAC1D,CAAC;IAED,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AACpC,CAAC;AAED;;GAEG;AACH,SAAS,iBAAiB,CAAC,GAAgB,EAAE,SAAoB;IAC/D,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;QACxB,SAAS,CAAC,QAAQ,GAAG,EAAE,CAAC;IAC1B,CAAC;IAED,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;QAChB,MAAM,OAAO,GAAG,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC/C,IAAI,OAAO,EAAE,CAAC;YACZ,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,iBAAiB,CAAC,GAAgB,EAAE,SAAoB;IAC/D,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;IAE/C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAC7B,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;IAC/B,CAAC;IAED,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;QAChB,MAAM,OAAO,GAAG,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC/C,IAAI,OAAO,EAAE,CAAC;YACZ,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;SAAM,CAAC;QACN,wEAAwE;QACxE,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACnC,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,iBAAiB,CAAC,OAA+C;IACxE,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAChC,OAAO,OAAO,CAAC,IAAI,EAAE,CAAC;IACxB,CAAC;SAAM,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QAClC,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CACrB,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,CAChD,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACpB,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAClC,IAA8F,EAC9F,UAAyB;IAEzB,MAAM,SAAS,GAAG,YAAY,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IAEjD,6CAA6C;IAC7C,MAAM,MAAM,GAAsC,EAAE,CAAC;IAErD,IAAI,SAAS,CAAC,WAAW,EAAE,CAAC;QAC1B,MAAM,CAAC,WAAW,GAAG,SAAS,CAAC,WAAW,CAAC;IAC7C,CAAC;IAED,IAAI,SAAS,CAAC,QAAQ,IAAI,SAAS,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxD,MAAM,CAAC,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC;IACvC,CAAC;IAED,IAAI,SAAS,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7D,MAAM,CAAC,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC;IAC/B,CAAC;IAED,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;AAC7D,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAC/B,IAA8F,EAC9F,UAAyB;IAEzB,MAAM,SAAS,GAAG,YAAY,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IACjD,MAAM,UAAU,GAA2C,EAAE,CAAC;IAE9D,iDAAiD;IACjD,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;QACpC,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QACjD,MAAM,SAAS,GAA8C;YAC3D,IAAI,EAAE,SAAS;YACf,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,aAAa,IAAI,CAAC,CAAC,KAAK,CAAC,WAAW;SACvD,CAAC;QAEF,2BAA2B;QAC3B,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;YACf,SAAS,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAClD,CAAC;QAED,oBAAoB;QACpB,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;YACtB,SAAS,CAAC,YAAY,GAAG,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QACjE,CAAC;QAED,4BAA4B;QAC5B,MAAM,UAAU,GAAG,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;QACrE,IAAI,UAAU,EAAE,CAAC;YACf,IAAI,UAAU,CAAC,WAAW,EAAE,CAAC;gBAC3B,SAAS,CAAC,WAAW,GAAG,UAAU,CAAC,WAAW,CAAC;YACjD,CAAC;YACD,kEAAkE;YAClE,IAAI,CAAC,SAAS,CAAC,IAAI,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC;gBACvC,SAAS,CAAC,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC;YACnC,CAAC;YACD,IAAI,UAAU,CAAC,YAAY,EAAE,CAAC;gBAC5B,SAAS,CAAC,YAAY,GAAG,UAAU,CAAC,YAAY,CAAC;YACnD,CAAC;QACH,CAAC;QAED,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC7B,CAAC;IAED,iFAAiF;IACjF,IAAI,SAAS,CAAC,MAAM,EAAE,CAAC;QACrB,KAAK,MAAM,UAAU,IAAI,SAAS,CAAC,MAAM,EAAE,CAAC;YAC1C,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;gBACtD,UAAU,CAAC,IAAI,CAAC;oBACd,IAAI,EAAE,UAAU,CAAC,IAAI;oBACrB,IAAI,EAAE,UAAU,CAAC,IAAI;oBACrB,WAAW,EAAE,UAAU,CAAC,WAAW;oBACnC,QAAQ,EAAE,UAAU,CAAC,QAAQ;oBAC7B,YAAY,EAAE,UAAU,CAAC,YAAY;iBACtC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAC/B,IAA8F,EAC9F,UAAyB;IAEzB,8CAA8C;IAC9C,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IACvC,CAAC;IAED,iCAAiC;IACjC,MAAM,SAAS,GAAG,YAAY,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IACjD,IAAI,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC;QAC5B,OAAO,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC;IAChC,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,QAAQ,CAAC,IAAa;IACpC,MAAM,aAAa,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAC7C,OAAO,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC;AAClC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAAa;IAC/C,MAAM,SAAS,GAAG,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;IAC3D,MAAM,OAAO,GAA6B,EAAE,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC;IAEhE,oCAAoC;IACpC,IAAI,SAAS,CAAC,MAAM,IAAI,SAAS,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpD,OAAO,CAAC,KAAK,GAAG,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CACvC,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CACxF,CAAC;IACJ,CAAC;IAED,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;QACtB,OAAO,CAAC,OAAO,GAAG;YAChB,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,GAAG,SAAS,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,SAAS,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE;SACtH,CAAC;IACJ,CAAC;IAED,IAAI,SAAS,CAAC,MAAM,IAAI,SAAS,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpD,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CACxC,GAAG,CAAC,CAAC,IAAI,IAAI,EAAE,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,CACtE,CAAC;IACJ,CAAC;IAED,IAAI,SAAS,CAAC,QAAQ,IAAI,SAAS,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxD,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC,QAAQ,CAAC;IACvC,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,yBAAyB,CAAC,KAAwC;IAChF,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,CAAC;IAEtB,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;QACtB,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IAChC,CAAC;IAED,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;QACnB,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC;IAChC,CAAC;IAED,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;QACf,KAAK,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YAC3D,KAAK,CAAC,IAAI,CAAC,IAAI,OAAO,EAAE,EAAE,GAAG,MAAM,CAAC,CAAC;QACvC,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;AACvC,CAAC"}
|
|
1
|
+
{"version":3,"file":"jsDocParser.js","sourceRoot":"","sources":["../../src/utils/jsDocParser.ts"],"names":[],"mappings":"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"}
|