codeguardian-mcp 1.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.
- package/LICENSE +21 -0
- package/README.md +348 -0
- package/dist/agent/agentTools.d.ts +26 -0
- package/dist/agent/agentTools.d.ts.map +1 -0
- package/dist/agent/agentTools.js +699 -0
- package/dist/agent/agentTools.js.map +1 -0
- package/dist/agent/autoValidator.d.ts +110 -0
- package/dist/agent/autoValidator.d.ts.map +1 -0
- package/dist/agent/autoValidator.js +964 -0
- package/dist/agent/autoValidator.js.map +1 -0
- package/dist/agent/fileWatcher.d.ts +28 -0
- package/dist/agent/fileWatcher.d.ts.map +1 -0
- package/dist/agent/fileWatcher.js +88 -0
- package/dist/agent/fileWatcher.js.map +1 -0
- package/dist/agent/guardianPersistence.d.ts +98 -0
- package/dist/agent/guardianPersistence.d.ts.map +1 -0
- package/dist/agent/guardianPersistence.js +296 -0
- package/dist/agent/guardianPersistence.js.map +1 -0
- package/dist/agent/mcpNotifications.d.ts +38 -0
- package/dist/agent/mcpNotifications.d.ts.map +1 -0
- package/dist/agent/mcpNotifications.js +81 -0
- package/dist/agent/mcpNotifications.js.map +1 -0
- package/dist/analyzers/aiPatterns.d.ts +16 -0
- package/dist/analyzers/aiPatterns.d.ts.map +1 -0
- package/dist/analyzers/aiPatterns.js +103 -0
- package/dist/analyzers/aiPatterns.js.map +1 -0
- package/dist/analyzers/antiPatterns.d.ts +60 -0
- package/dist/analyzers/antiPatterns.d.ts.map +1 -0
- package/dist/analyzers/antiPatterns.js +198 -0
- package/dist/analyzers/antiPatterns.js.map +1 -0
- package/dist/analyzers/builtinTypes.d.ts +18 -0
- package/dist/analyzers/builtinTypes.d.ts.map +1 -0
- package/dist/analyzers/builtinTypes.js +1275 -0
- package/dist/analyzers/builtinTypes.js.map +1 -0
- package/dist/analyzers/complexity.d.ts +14 -0
- package/dist/analyzers/complexity.d.ts.map +1 -0
- package/dist/analyzers/complexity.js +610 -0
- package/dist/analyzers/complexity.js.map +1 -0
- package/dist/analyzers/findingVerifier.d.ts +59 -0
- package/dist/analyzers/findingVerifier.d.ts.map +1 -0
- package/dist/analyzers/findingVerifier.js +1169 -0
- package/dist/analyzers/findingVerifier.js.map +1 -0
- package/dist/analyzers/impactAnalyzer.d.ts +53 -0
- package/dist/analyzers/impactAnalyzer.d.ts.map +1 -0
- package/dist/analyzers/impactAnalyzer.js +152 -0
- package/dist/analyzers/impactAnalyzer.js.map +1 -0
- package/dist/analyzers/languageDetector.d.ts +48 -0
- package/dist/analyzers/languageDetector.d.ts.map +1 -0
- package/dist/analyzers/languageDetector.js +404 -0
- package/dist/analyzers/languageDetector.js.map +1 -0
- package/dist/analyzers/parsers/incrementalParser.d.ts +53 -0
- package/dist/analyzers/parsers/incrementalParser.d.ts.map +1 -0
- package/dist/analyzers/parsers/incrementalParser.js +193 -0
- package/dist/analyzers/parsers/incrementalParser.js.map +1 -0
- package/dist/analyzers/parsers/scopeResolver.d.ts +92 -0
- package/dist/analyzers/parsers/scopeResolver.d.ts.map +1 -0
- package/dist/analyzers/parsers/scopeResolver.js +324 -0
- package/dist/analyzers/parsers/scopeResolver.js.map +1 -0
- package/dist/analyzers/parsers/semanticIndex.d.ts +127 -0
- package/dist/analyzers/parsers/semanticIndex.d.ts.map +1 -0
- package/dist/analyzers/parsers/semanticIndex.js +429 -0
- package/dist/analyzers/parsers/semanticIndex.js.map +1 -0
- package/dist/analyzers/parsers/sessionDiffAnalyzer.d.ts +42 -0
- package/dist/analyzers/parsers/sessionDiffAnalyzer.d.ts.map +1 -0
- package/dist/analyzers/parsers/sessionDiffAnalyzer.js +233 -0
- package/dist/analyzers/parsers/sessionDiffAnalyzer.js.map +1 -0
- package/dist/analyzers/parsers/treeSitterParser.d.ts +76 -0
- package/dist/analyzers/parsers/treeSitterParser.d.ts.map +1 -0
- package/dist/analyzers/parsers/treeSitterParser.js +709 -0
- package/dist/analyzers/parsers/treeSitterParser.js.map +1 -0
- package/dist/analyzers/relevanceScorer.d.ts +43 -0
- package/dist/analyzers/relevanceScorer.d.ts.map +1 -0
- package/dist/analyzers/relevanceScorer.js +200 -0
- package/dist/analyzers/relevanceScorer.js.map +1 -0
- package/dist/analyzers/standardLibrary.d.ts +22 -0
- package/dist/analyzers/standardLibrary.d.ts.map +1 -0
- package/dist/analyzers/standardLibrary.js +211 -0
- package/dist/analyzers/standardLibrary.js.map +1 -0
- package/dist/analyzers/symbolGraph.d.ts +30 -0
- package/dist/analyzers/symbolGraph.d.ts.map +1 -0
- package/dist/analyzers/symbolGraph.js +380 -0
- package/dist/analyzers/symbolGraph.js.map +1 -0
- package/dist/analyzers/symbolTable.d.ts +18 -0
- package/dist/analyzers/symbolTable.d.ts.map +1 -0
- package/dist/analyzers/symbolTable.js +176 -0
- package/dist/analyzers/symbolTable.js.map +1 -0
- package/dist/analyzers/typeChecker.d.ts +13 -0
- package/dist/analyzers/typeChecker.d.ts.map +1 -0
- package/dist/analyzers/typeChecker.js +580 -0
- package/dist/analyzers/typeChecker.js.map +1 -0
- package/dist/analyzers/usagePatterns.d.ts +42 -0
- package/dist/analyzers/usagePatterns.d.ts.map +1 -0
- package/dist/analyzers/usagePatterns.js +75 -0
- package/dist/analyzers/usagePatterns.js.map +1 -0
- package/dist/api-contract/context/backend.d.ts +19 -0
- package/dist/api-contract/context/backend.d.ts.map +1 -0
- package/dist/api-contract/context/backend.js +64 -0
- package/dist/api-contract/context/backend.js.map +1 -0
- package/dist/api-contract/context/contract.d.ts +34 -0
- package/dist/api-contract/context/contract.d.ts.map +1 -0
- package/dist/api-contract/context/contract.js +306 -0
- package/dist/api-contract/context/contract.js.map +1 -0
- package/dist/api-contract/context/frontend.d.ts +19 -0
- package/dist/api-contract/context/frontend.d.ts.map +1 -0
- package/dist/api-contract/context/frontend.js +64 -0
- package/dist/api-contract/context/frontend.js.map +1 -0
- package/dist/api-contract/detector.d.ts +28 -0
- package/dist/api-contract/detector.d.ts.map +1 -0
- package/dist/api-contract/detector.js +393 -0
- package/dist/api-contract/detector.js.map +1 -0
- package/dist/api-contract/extractors/python.d.ts +32 -0
- package/dist/api-contract/extractors/python.d.ts.map +1 -0
- package/dist/api-contract/extractors/python.js +521 -0
- package/dist/api-contract/extractors/python.js.map +1 -0
- package/dist/api-contract/extractors/pythonAstUtils.d.ts +44 -0
- package/dist/api-contract/extractors/pythonAstUtils.d.ts.map +1 -0
- package/dist/api-contract/extractors/pythonAstUtils.js +489 -0
- package/dist/api-contract/extractors/pythonAstUtils.js.map +1 -0
- package/dist/api-contract/extractors/tsAstUtils.d.ts +47 -0
- package/dist/api-contract/extractors/tsAstUtils.d.ts.map +1 -0
- package/dist/api-contract/extractors/tsAstUtils.js +173 -0
- package/dist/api-contract/extractors/tsAstUtils.js.map +1 -0
- package/dist/api-contract/extractors/typescript.d.ts +32 -0
- package/dist/api-contract/extractors/typescript.d.ts.map +1 -0
- package/dist/api-contract/extractors/typescript.js +666 -0
- package/dist/api-contract/extractors/typescript.js.map +1 -0
- package/dist/api-contract/index.d.ts +104 -0
- package/dist/api-contract/index.d.ts.map +1 -0
- package/dist/api-contract/index.js +232 -0
- package/dist/api-contract/index.js.map +1 -0
- package/dist/api-contract/types.d.ts +151 -0
- package/dist/api-contract/types.d.ts.map +1 -0
- package/dist/api-contract/types.js +19 -0
- package/dist/api-contract/types.js.map +1 -0
- package/dist/api-contract/validators/endpoint.d.ts +21 -0
- package/dist/api-contract/validators/endpoint.d.ts.map +1 -0
- package/dist/api-contract/validators/endpoint.js +224 -0
- package/dist/api-contract/validators/endpoint.js.map +1 -0
- package/dist/api-contract/validators/index.d.ts +40 -0
- package/dist/api-contract/validators/index.d.ts.map +1 -0
- package/dist/api-contract/validators/index.js +875 -0
- package/dist/api-contract/validators/index.js.map +1 -0
- package/dist/api-contract/validators/parameter.d.ts +17 -0
- package/dist/api-contract/validators/parameter.d.ts.map +1 -0
- package/dist/api-contract/validators/parameter.js +250 -0
- package/dist/api-contract/validators/parameter.js.map +1 -0
- package/dist/api-contract/validators/type.d.ts +38 -0
- package/dist/api-contract/validators/type.d.ts.map +1 -0
- package/dist/api-contract/validators/type.js +244 -0
- package/dist/api-contract/validators/type.js.map +1 -0
- package/dist/context/apiContract/complexTypeSupport.d.ts +83 -0
- package/dist/context/apiContract/complexTypeSupport.d.ts.map +1 -0
- package/dist/context/apiContract/complexTypeSupport.js +665 -0
- package/dist/context/apiContract/complexTypeSupport.js.map +1 -0
- package/dist/context/apiContract/graphqlSupport.d.ts +105 -0
- package/dist/context/apiContract/graphqlSupport.d.ts.map +1 -0
- package/dist/context/apiContract/graphqlSupport.js +671 -0
- package/dist/context/apiContract/graphqlSupport.js.map +1 -0
- package/dist/context/apiContract/index.d.ts +14 -0
- package/dist/context/apiContract/index.d.ts.map +1 -0
- package/dist/context/apiContract/index.js +17 -0
- package/dist/context/apiContract/index.js.map +1 -0
- package/dist/context/apiContract/webSocketSupport.d.ts +104 -0
- package/dist/context/apiContract/webSocketSupport.d.ts.map +1 -0
- package/dist/context/apiContract/webSocketSupport.js +465 -0
- package/dist/context/apiContract/webSocketSupport.js.map +1 -0
- package/dist/context/apiContractContext.d.ts +15 -0
- package/dist/context/apiContractContext.d.ts.map +1 -0
- package/dist/context/apiContractContext.js +979 -0
- package/dist/context/apiContractContext.js.map +1 -0
- package/dist/context/apiContractExtraction.d.ts +52 -0
- package/dist/context/apiContractExtraction.d.ts.map +1 -0
- package/dist/context/apiContractExtraction.js +438 -0
- package/dist/context/apiContractExtraction.js.map +1 -0
- package/dist/context/contextLineage.d.ts +79 -0
- package/dist/context/contextLineage.d.ts.map +1 -0
- package/dist/context/contextLineage.js +259 -0
- package/dist/context/contextLineage.js.map +1 -0
- package/dist/context/contextOrchestrator.d.ts +57 -0
- package/dist/context/contextOrchestrator.d.ts.map +1 -0
- package/dist/context/contextOrchestrator.js +162 -0
- package/dist/context/contextOrchestrator.js.map +1 -0
- package/dist/context/intentTracker.d.ts +73 -0
- package/dist/context/intentTracker.d.ts.map +1 -0
- package/dist/context/intentTracker.js +168 -0
- package/dist/context/intentTracker.js.map +1 -0
- package/dist/context/projectContext.d.ts +219 -0
- package/dist/context/projectContext.d.ts.map +1 -0
- package/dist/context/projectContext.js +1984 -0
- package/dist/context/projectContext.js.map +1 -0
- package/dist/prompts/index.d.ts +17 -0
- package/dist/prompts/index.d.ts.map +1 -0
- package/dist/prompts/index.js +260 -0
- package/dist/prompts/index.js.map +1 -0
- package/dist/prompts/library.d.ts +51 -0
- package/dist/prompts/library.d.ts.map +1 -0
- package/dist/prompts/library.js +65 -0
- package/dist/prompts/library.js.map +1 -0
- package/dist/prompts/templates.d.ts +44 -0
- package/dist/prompts/templates.d.ts.map +1 -0
- package/dist/prompts/templates.js +97 -0
- package/dist/prompts/templates.js.map +1 -0
- package/dist/queue/jobPersistence.d.ts +46 -0
- package/dist/queue/jobPersistence.d.ts.map +1 -0
- package/dist/queue/jobPersistence.js +158 -0
- package/dist/queue/jobPersistence.js.map +1 -0
- package/dist/queue/jobQueue.d.ts +116 -0
- package/dist/queue/jobQueue.d.ts.map +1 -0
- package/dist/queue/jobQueue.js +275 -0
- package/dist/queue/jobQueue.js.map +1 -0
- package/dist/queue/validationJob.d.ts +69 -0
- package/dist/queue/validationJob.d.ts.map +1 -0
- package/dist/queue/validationJob.js +435 -0
- package/dist/queue/validationJob.js.map +1 -0
- package/dist/resources/index.d.ts +15 -0
- package/dist/resources/index.d.ts.map +1 -0
- package/dist/resources/index.js +328 -0
- package/dist/resources/index.js.map +1 -0
- package/dist/resources/validationReportStore.d.ts +170 -0
- package/dist/resources/validationReportStore.d.ts.map +1 -0
- package/dist/resources/validationReportStore.js +515 -0
- package/dist/resources/validationReportStore.js.map +1 -0
- package/dist/server.d.ts +12 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +102 -0
- package/dist/server.js.map +1 -0
- package/dist/tools/asyncValidation.d.ts +19 -0
- package/dist/tools/asyncValidation.d.ts.map +1 -0
- package/dist/tools/asyncValidation.js +346 -0
- package/dist/tools/asyncValidation.js.map +1 -0
- package/dist/tools/buildContext.d.ts +17 -0
- package/dist/tools/buildContext.d.ts.map +1 -0
- package/dist/tools/buildContext.js +188 -0
- package/dist/tools/buildContext.js.map +1 -0
- package/dist/tools/getDependencyGraph.d.ts +16 -0
- package/dist/tools/getDependencyGraph.d.ts.map +1 -0
- package/dist/tools/getDependencyGraph.js +436 -0
- package/dist/tools/getDependencyGraph.js.map +1 -0
- package/dist/tools/incrementalValidation.d.ts +71 -0
- package/dist/tools/incrementalValidation.d.ts.map +1 -0
- package/dist/tools/incrementalValidation.js +203 -0
- package/dist/tools/incrementalValidation.js.map +1 -0
- package/dist/tools/index.d.ts +24 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +106 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/validateCode.d.ts +17 -0
- package/dist/tools/validateCode.d.ts.map +1 -0
- package/dist/tools/validateCode.js +368 -0
- package/dist/tools/validateCode.js.map +1 -0
- package/dist/tools/validateCodeLite.d.ts +2 -0
- package/dist/tools/validateCodeLite.d.ts.map +1 -0
- package/dist/tools/validateCodeLite.js +2 -0
- package/dist/tools/validateCodeLite.js.map +1 -0
- package/dist/tools/validation/builtins.d.ts +92 -0
- package/dist/tools/validation/builtins.d.ts.map +1 -0
- package/dist/tools/validation/builtins.js +2184 -0
- package/dist/tools/validation/builtins.js.map +1 -0
- package/dist/tools/validation/contextualNaming.d.ts +99 -0
- package/dist/tools/validation/contextualNaming.d.ts.map +1 -0
- package/dist/tools/validation/contextualNaming.js +959 -0
- package/dist/tools/validation/contextualNaming.js.map +1 -0
- package/dist/tools/validation/deadCode.d.ts +115 -0
- package/dist/tools/validation/deadCode.d.ts.map +1 -0
- package/dist/tools/validation/deadCode.js +861 -0
- package/dist/tools/validation/deadCode.js.map +1 -0
- package/dist/tools/validation/extractors/index.d.ts +131 -0
- package/dist/tools/validation/extractors/index.d.ts.map +1 -0
- package/dist/tools/validation/extractors/index.js +233 -0
- package/dist/tools/validation/extractors/index.js.map +1 -0
- package/dist/tools/validation/extractors/javascript.d.ts +73 -0
- package/dist/tools/validation/extractors/javascript.d.ts.map +1 -0
- package/dist/tools/validation/extractors/javascript.js +1841 -0
- package/dist/tools/validation/extractors/javascript.js.map +1 -0
- package/dist/tools/validation/extractors/python.d.ts +93 -0
- package/dist/tools/validation/extractors/python.d.ts.map +1 -0
- package/dist/tools/validation/extractors/python.js +799 -0
- package/dist/tools/validation/extractors/python.js.map +1 -0
- package/dist/tools/validation/manifest.d.ts +45 -0
- package/dist/tools/validation/manifest.d.ts.map +1 -0
- package/dist/tools/validation/manifest.js +719 -0
- package/dist/tools/validation/manifest.js.map +1 -0
- package/dist/tools/validation/parser.d.ts +58 -0
- package/dist/tools/validation/parser.d.ts.map +1 -0
- package/dist/tools/validation/parser.js +232 -0
- package/dist/tools/validation/parser.js.map +1 -0
- package/dist/tools/validation/registry.d.ts +15 -0
- package/dist/tools/validation/registry.d.ts.map +1 -0
- package/dist/tools/validation/registry.js +169 -0
- package/dist/tools/validation/registry.js.map +1 -0
- package/dist/tools/validation/scoring.d.ts +54 -0
- package/dist/tools/validation/scoring.d.ts.map +1 -0
- package/dist/tools/validation/scoring.js +242 -0
- package/dist/tools/validation/scoring.js.map +1 -0
- package/dist/tools/validation/types.d.ts +120 -0
- package/dist/tools/validation/types.d.ts.map +1 -0
- package/dist/tools/validation/types.js +11 -0
- package/dist/tools/validation/types.js.map +1 -0
- package/dist/tools/validation/unusedLocals.d.ts +36 -0
- package/dist/tools/validation/unusedLocals.d.ts.map +1 -0
- package/dist/tools/validation/unusedLocals.js +333 -0
- package/dist/tools/validation/unusedLocals.js.map +1 -0
- package/dist/tools/validation/validation.d.ts +98 -0
- package/dist/tools/validation/validation.d.ts.map +1 -0
- package/dist/tools/validation/validation.js +1837 -0
- package/dist/tools/validation/validation.js.map +1 -0
- package/dist/types/codeGraph.d.ts +163 -0
- package/dist/types/codeGraph.d.ts.map +1 -0
- package/dist/types/codeGraph.js +9 -0
- package/dist/types/codeGraph.js.map +1 -0
- package/dist/types/symbolGraph.d.ts +68 -0
- package/dist/types/symbolGraph.d.ts.map +1 -0
- package/dist/types/symbolGraph.js +10 -0
- package/dist/types/symbolGraph.js.map +1 -0
- package/dist/types/tools.d.ts +43 -0
- package/dist/types/tools.d.ts.map +1 -0
- package/dist/types/tools.js +7 -0
- package/dist/types/tools.js.map +1 -0
- package/dist/utils/fileFilter.d.ts +37 -0
- package/dist/utils/fileFilter.d.ts.map +1 -0
- package/dist/utils/fileFilter.js +91 -0
- package/dist/utils/fileFilter.js.map +1 -0
- package/dist/utils/gitUtils.d.ts +28 -0
- package/dist/utils/gitUtils.d.ts.map +1 -0
- package/dist/utils/gitUtils.js +81 -0
- package/dist/utils/gitUtils.js.map +1 -0
- package/dist/utils/logger.d.ts +15 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +38 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/serialization.d.ts +25 -0
- package/dist/utils/serialization.d.ts.map +1 -0
- package/dist/utils/serialization.js +53 -0
- package/dist/utils/serialization.js.map +1 -0
- package/package.json +90 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"javascript.js","sourceRoot":"","sources":["../../../../src/tools/validation/extractors/javascript.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Python Extractor Module - Python-specific AST Extraction
|
|
3
|
+
*
|
|
4
|
+
* This module extracts symbols, usages, imports, and type references from Python code
|
|
5
|
+
* using Tree-sitter AST parsing. It handles Python-specific syntax including:
|
|
6
|
+
* - Function and class definitions
|
|
7
|
+
* - Method definitions with class context
|
|
8
|
+
* - Decorators
|
|
9
|
+
* - Async functions
|
|
10
|
+
* - Import statements (import and from...import)
|
|
11
|
+
* - Type hints and annotations
|
|
12
|
+
* - Class inheritance
|
|
13
|
+
*
|
|
14
|
+
* @format
|
|
15
|
+
*/
|
|
16
|
+
import type Parser from "tree-sitter";
|
|
17
|
+
import type { ASTSymbol, ASTUsage, ASTImport, ASTTypeReference } from "../types.js";
|
|
18
|
+
/**
|
|
19
|
+
* Extract all symbol definitions from Python AST.
|
|
20
|
+
* Recursively traverses the AST to find function definitions, class definitions,
|
|
21
|
+
* method definitions, and module-level variable assignments.
|
|
22
|
+
*
|
|
23
|
+
* @param node - The AST node to extract symbols from
|
|
24
|
+
* @param code - The source code string
|
|
25
|
+
* @param filePath - Path to the file being analyzed
|
|
26
|
+
* @param symbols - Array to accumulate extracted symbols
|
|
27
|
+
* @param currentClass - Name of the current class context (for methods), or null
|
|
28
|
+
*/
|
|
29
|
+
export declare function extractPythonSymbols(node: Parser.SyntaxNode, code: string, filePath: string, symbols: ASTSymbol[], currentClass: string | null): void;
|
|
30
|
+
/**
|
|
31
|
+
* Collect all locally-defined identifier names in a Python AST.
|
|
32
|
+
* This pre-pass collects assignment targets, function parameters, for-loop variables,
|
|
33
|
+
* with-as targets, except-as targets, comprehension variables, and function/class names.
|
|
34
|
+
* Used to prevent false positives when these names appear as references later in the code.
|
|
35
|
+
*
|
|
36
|
+
* @param node - The root AST node to walk
|
|
37
|
+
* @param code - The source code string
|
|
38
|
+
* @param definitions - Set to accumulate locally-defined names
|
|
39
|
+
*/
|
|
40
|
+
export declare function collectPythonLocalDefinitions(node: Parser.SyntaxNode, code: string, definitions: Set<string>): void;
|
|
41
|
+
/**
|
|
42
|
+
* Extract all symbol usages from Python AST.
|
|
43
|
+
* Finds function calls, method calls, and attribute access.
|
|
44
|
+
* Skips imported symbols, built-in functions, and locally-defined variables to avoid false positives.
|
|
45
|
+
*
|
|
46
|
+
* @param node - The AST node to extract usages from
|
|
47
|
+
* @param code - The source code string
|
|
48
|
+
* @param usages - Array to accumulate extracted usages
|
|
49
|
+
* @param externalSymbols - Set of imported symbol names to skip
|
|
50
|
+
* @param localDefinitions - Set of locally-defined names to skip (from collectPythonLocalDefinitions)
|
|
51
|
+
*/
|
|
52
|
+
export declare function extractPythonUsages(node: Parser.SyntaxNode, code: string, usages: ASTUsage[], externalSymbols: Set<string>, localDefinitions?: Set<string>, isRoot?: boolean): void;
|
|
53
|
+
/**
|
|
54
|
+
* Extract all import statements from Python AST.
|
|
55
|
+
* Handles both "import module" and "from module import name" statements.
|
|
56
|
+
* Determines if imports are external (third-party) or internal (project files).
|
|
57
|
+
*
|
|
58
|
+
* @param node - The AST node to extract imports from
|
|
59
|
+
* @param code - The source code string
|
|
60
|
+
* @param imports - Array to accumulate extracted imports
|
|
61
|
+
*/
|
|
62
|
+
export declare function extractPythonImports(node: Parser.SyntaxNode, code: string, imports: ASTImport[]): void;
|
|
63
|
+
/**
|
|
64
|
+
* Extract type references from Python type hints.
|
|
65
|
+
* Handles function parameter annotations, return types, variable annotations,
|
|
66
|
+
* and class inheritance.
|
|
67
|
+
*
|
|
68
|
+
* @param node - The AST node to extract type references from
|
|
69
|
+
* @param code - The source code string
|
|
70
|
+
* @param references - Array to accumulate extracted type references
|
|
71
|
+
*/
|
|
72
|
+
export declare function extractPythonTypeReferences(node: Parser.SyntaxNode, code: string, references: ASTTypeReference[]): void;
|
|
73
|
+
/**
|
|
74
|
+
* Extract parameter names from a Python function parameters node.
|
|
75
|
+
* Filters out 'self' and 'cls' parameters which are implicit in Python methods.
|
|
76
|
+
*
|
|
77
|
+
* @param paramsNode - The parameters node from the function definition
|
|
78
|
+
* @param code - The source code string
|
|
79
|
+
* @returns Array of parameter names (excluding self/cls)
|
|
80
|
+
*/
|
|
81
|
+
export declare function extractPythonParams(paramsNode: Parser.SyntaxNode | null, code: string): string[];
|
|
82
|
+
/**
|
|
83
|
+
* Extract type names from Python type hint nodes.
|
|
84
|
+
* Handles simple types, generic types, union types, and attribute access.
|
|
85
|
+
* Recursively processes complex type expressions.
|
|
86
|
+
*
|
|
87
|
+
* @param node - The type hint node to extract names from
|
|
88
|
+
* @param code - The source code string
|
|
89
|
+
* @param references - Array to accumulate extracted type references
|
|
90
|
+
* @param context - The context in which the type appears
|
|
91
|
+
*/
|
|
92
|
+
export declare function extractPythonTypeNamesFromNode(node: Parser.SyntaxNode, code: string, references: ASTTypeReference[], context: ASTTypeReference["context"]): void;
|
|
93
|
+
//# sourceMappingURL=python.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"python.d.ts","sourceRoot":"","sources":["../../../../src/tools/validation/extractors/python.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AACtC,OAAO,KAAK,EACV,SAAS,EACT,QAAQ,EACR,SAAS,EACT,gBAAgB,EACjB,MAAM,aAAa,CAAC;AAerB;;;;;;;;;;GAUG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,MAAM,CAAC,UAAU,EACvB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,SAAS,EAAE,EACpB,YAAY,EAAE,MAAM,GAAG,IAAI,GAC1B,IAAI,CA6HN;AAED;;;;;;;;;GASG;AACH,wBAAgB,6BAA6B,CAC3C,IAAI,EAAE,MAAM,CAAC,UAAU,EACvB,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,GACvB,IAAI,CAqEN;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,CAAC,UAAU,EACvB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,QAAQ,EAAE,EAClB,eAAe,EAAE,GAAG,CAAC,MAAM,CAAC,EAC5B,gBAAgB,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,EAC9B,MAAM,GAAE,OAAc,GACrB,IAAI,CA0KN;AAED;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,MAAM,CAAC,UAAU,EACvB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,SAAS,EAAE,GACnB,IAAI,CAyFN;AAED;;;;;;;;GAQG;AACH,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,MAAM,CAAC,UAAU,EACvB,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,gBAAgB,EAAE,GAC7B,IAAI,CAkEN;AAKD;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,MAAM,CAAC,UAAU,GAAG,IAAI,EACpC,IAAI,EAAE,MAAM,GACX,MAAM,EAAE,CAwBV;AAED;;;;;;;;;GASG;AACH,wBAAgB,8BAA8B,CAC5C,IAAI,EAAE,MAAM,CAAC,UAAU,EACvB,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,gBAAgB,EAAE,EAC9B,OAAO,EAAE,gBAAgB,CAAC,SAAS,CAAC,GACnC,IAAI,CA+FN"}
|