@defai.digital/ax-cli 3.15.21 → 3.15.24
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 +22 -2
- package/dist/agent/agent-executor.d.ts +1 -1
- package/dist/agent/agent-executor.js +15 -17
- package/dist/agent/agent-executor.js.map +1 -1
- package/dist/agent/execution/tool-executor.d.ts +6 -0
- package/dist/agent/execution/tool-executor.js +16 -1
- package/dist/agent/execution/tool-executor.js.map +1 -1
- package/dist/agent/llm-agent.js +91 -22
- package/dist/agent/llm-agent.js.map +1 -1
- package/dist/agent/parallel-tools.d.ts +65 -0
- package/dist/agent/parallel-tools.js +146 -0
- package/dist/agent/parallel-tools.js.map +1 -0
- package/dist/llm/tools.js +1 -1
- package/dist/llm/tools.js.map +1 -1
- package/dist/ui/components/chat-interface.js +14 -0
- package/dist/ui/components/chat-interface.js.map +1 -1
- package/dist/ui/hooks/use-input-handler.js +2 -2
- package/dist/ui/hooks/use-input-handler.js.map +1 -1
- package/dist/ui/utils/image-handler.js +8 -5
- package/dist/ui/utils/image-handler.js.map +1 -1
- package/package.json +1 -1
- package/dist/analyzers/architecture/anti-pattern-detectors/god-object-detector.d.ts +0 -29
- package/dist/analyzers/architecture/anti-pattern-detectors/god-object-detector.js +0 -103
- package/dist/analyzers/architecture/anti-pattern-detectors/god-object-detector.js.map +0 -1
- package/dist/analyzers/architecture/architecture-analyzer.d.ts +0 -58
- package/dist/analyzers/architecture/architecture-analyzer.js +0 -276
- package/dist/analyzers/architecture/architecture-analyzer.js.map +0 -1
- package/dist/analyzers/architecture/index.d.ts +0 -12
- package/dist/analyzers/architecture/index.js +0 -14
- package/dist/analyzers/architecture/index.js.map +0 -1
- package/dist/analyzers/architecture/pattern-detectors/base-detector.d.ts +0 -27
- package/dist/analyzers/architecture/pattern-detectors/base-detector.js +0 -31
- package/dist/analyzers/architecture/pattern-detectors/base-detector.js.map +0 -1
- package/dist/analyzers/architecture/pattern-detectors/clean-architecture-detector.d.ts +0 -11
- package/dist/analyzers/architecture/pattern-detectors/clean-architecture-detector.js +0 -57
- package/dist/analyzers/architecture/pattern-detectors/clean-architecture-detector.js.map +0 -1
- package/dist/analyzers/architecture/pattern-detectors/mvc-detector.d.ts +0 -11
- package/dist/analyzers/architecture/pattern-detectors/mvc-detector.js +0 -43
- package/dist/analyzers/architecture/pattern-detectors/mvc-detector.js.map +0 -1
- package/dist/analyzers/architecture/pattern-detectors/repository-detector.d.ts +0 -11
- package/dist/analyzers/architecture/pattern-detectors/repository-detector.js +0 -49
- package/dist/analyzers/architecture/pattern-detectors/repository-detector.js.map +0 -1
- package/dist/analyzers/architecture/project-structure-scanner.d.ts +0 -54
- package/dist/analyzers/architecture/project-structure-scanner.js +0 -204
- package/dist/analyzers/architecture/project-structure-scanner.js.map +0 -1
- package/dist/analyzers/ast/index.d.ts +0 -13
- package/dist/analyzers/ast/index.js +0 -16
- package/dist/analyzers/ast/index.js.map +0 -1
- package/dist/analyzers/ast/language-parser.d.ts +0 -59
- package/dist/analyzers/ast/language-parser.js +0 -107
- package/dist/analyzers/ast/language-parser.js.map +0 -1
- package/dist/analyzers/ast/multi-language-parser.d.ts +0 -79
- package/dist/analyzers/ast/multi-language-parser.js +0 -157
- package/dist/analyzers/ast/multi-language-parser.js.map +0 -1
- package/dist/analyzers/ast/node-helpers.d.ts +0 -81
- package/dist/analyzers/ast/node-helpers.js +0 -128
- package/dist/analyzers/ast/node-helpers.js.map +0 -1
- package/dist/analyzers/ast/parser.d.ts +0 -60
- package/dist/analyzers/ast/parser.js +0 -305
- package/dist/analyzers/ast/parser.js.map +0 -1
- package/dist/analyzers/ast/traverser.d.ts +0 -67
- package/dist/analyzers/ast/traverser.js +0 -156
- package/dist/analyzers/ast/traverser.js.map +0 -1
- package/dist/analyzers/ast/types.d.ts +0 -107
- package/dist/analyzers/ast/types.js +0 -7
- package/dist/analyzers/ast/types.js.map +0 -1
- package/dist/analyzers/best-practices/base-rule.d.ts +0 -45
- package/dist/analyzers/best-practices/base-rule.js +0 -45
- package/dist/analyzers/best-practices/base-rule.js.map +0 -1
- package/dist/analyzers/best-practices/best-practice-validator.d.ts +0 -35
- package/dist/analyzers/best-practices/best-practice-validator.js +0 -181
- package/dist/analyzers/best-practices/best-practice-validator.js.map +0 -1
- package/dist/analyzers/best-practices/index.d.ts +0 -10
- package/dist/analyzers/best-practices/index.js +0 -11
- package/dist/analyzers/best-practices/index.js.map +0 -1
- package/dist/analyzers/best-practices/rules/index.d.ts +0 -7
- package/dist/analyzers/best-practices/rules/index.js +0 -56
- package/dist/analyzers/best-practices/rules/index.js.map +0 -1
- package/dist/analyzers/best-practices/rules/typescript/consistent-naming.d.ts +0 -17
- package/dist/analyzers/best-practices/rules/typescript/consistent-naming.js +0 -41
- package/dist/analyzers/best-practices/rules/typescript/consistent-naming.js.map +0 -1
- package/dist/analyzers/best-practices/rules/typescript/function-complexity.d.ts +0 -27
- package/dist/analyzers/best-practices/rules/typescript/function-complexity.js +0 -76
- package/dist/analyzers/best-practices/rules/typescript/function-complexity.js.map +0 -1
- package/dist/analyzers/best-practices/rules/typescript/index.d.ts +0 -15
- package/dist/analyzers/best-practices/rules/typescript/index.js +0 -16
- package/dist/analyzers/best-practices/rules/typescript/index.js.map +0 -1
- package/dist/analyzers/best-practices/rules/typescript/max-file-length.d.ts +0 -18
- package/dist/analyzers/best-practices/rules/typescript/max-file-length.js +0 -25
- package/dist/analyzers/best-practices/rules/typescript/max-file-length.js.map +0 -1
- package/dist/analyzers/best-practices/rules/typescript/no-any-type.d.ts +0 -17
- package/dist/analyzers/best-practices/rules/typescript/no-any-type.js +0 -27
- package/dist/analyzers/best-practices/rules/typescript/no-any-type.js.map +0 -1
- package/dist/analyzers/best-practices/rules/typescript/no-implicit-any.d.ts +0 -18
- package/dist/analyzers/best-practices/rules/typescript/no-implicit-any.js +0 -39
- package/dist/analyzers/best-practices/rules/typescript/no-implicit-any.js.map +0 -1
- package/dist/analyzers/best-practices/rules/typescript/no-magic-numbers.d.ts +0 -17
- package/dist/analyzers/best-practices/rules/typescript/no-magic-numbers.js +0 -38
- package/dist/analyzers/best-practices/rules/typescript/no-magic-numbers.js.map +0 -1
- package/dist/analyzers/best-practices/rules/typescript/no-unused-vars.d.ts +0 -17
- package/dist/analyzers/best-practices/rules/typescript/no-unused-vars.js +0 -38
- package/dist/analyzers/best-practices/rules/typescript/no-unused-vars.js.map +0 -1
- package/dist/analyzers/best-practices/rules/typescript/prefer-const.d.ts +0 -17
- package/dist/analyzers/best-practices/rules/typescript/prefer-const.js +0 -35
- package/dist/analyzers/best-practices/rules/typescript/prefer-const.js.map +0 -1
- package/dist/analyzers/best-practices/rules/typescript/prefer-readonly.d.ts +0 -17
- package/dist/analyzers/best-practices/rules/typescript/prefer-readonly.js +0 -36
- package/dist/analyzers/best-practices/rules/typescript/prefer-readonly.js.map +0 -1
- package/dist/analyzers/best-practices/rules/typescript/proper-error-handling.d.ts +0 -17
- package/dist/analyzers/best-practices/rules/typescript/proper-error-handling.js +0 -27
- package/dist/analyzers/best-practices/rules/typescript/proper-error-handling.js.map +0 -1
- package/dist/analyzers/best-practices/types.d.ts +0 -86
- package/dist/analyzers/best-practices/types.js +0 -7
- package/dist/analyzers/best-practices/types.js.map +0 -1
- package/dist/analyzers/cache/analysis-cache.d.ts +0 -41
- package/dist/analyzers/cache/analysis-cache.js +0 -84
- package/dist/analyzers/cache/analysis-cache.js.map +0 -1
- package/dist/analyzers/code-smells/base-smell-detector.d.ts +0 -30
- package/dist/analyzers/code-smells/base-smell-detector.js +0 -44
- package/dist/analyzers/code-smells/base-smell-detector.js.map +0 -1
- package/dist/analyzers/code-smells/code-smell-analyzer.d.ts +0 -30
- package/dist/analyzers/code-smells/code-smell-analyzer.js +0 -167
- package/dist/analyzers/code-smells/code-smell-analyzer.js.map +0 -1
- package/dist/analyzers/code-smells/detectors/data-clumps-detector.d.ts +0 -11
- package/dist/analyzers/code-smells/detectors/data-clumps-detector.js +0 -64
- package/dist/analyzers/code-smells/detectors/data-clumps-detector.js.map +0 -1
- package/dist/analyzers/code-smells/detectors/dead-code-detector.d.ts +0 -11
- package/dist/analyzers/code-smells/detectors/dead-code-detector.js +0 -58
- package/dist/analyzers/code-smells/detectors/dead-code-detector.js.map +0 -1
- package/dist/analyzers/code-smells/detectors/duplicate-code-detector.d.ts +0 -11
- package/dist/analyzers/code-smells/detectors/duplicate-code-detector.js +0 -69
- package/dist/analyzers/code-smells/detectors/duplicate-code-detector.js.map +0 -1
- package/dist/analyzers/code-smells/detectors/feature-envy-detector.d.ts +0 -11
- package/dist/analyzers/code-smells/detectors/feature-envy-detector.js +0 -70
- package/dist/analyzers/code-smells/detectors/feature-envy-detector.js.map +0 -1
- package/dist/analyzers/code-smells/detectors/inappropriate-intimacy-detector.d.ts +0 -11
- package/dist/analyzers/code-smells/detectors/inappropriate-intimacy-detector.js +0 -59
- package/dist/analyzers/code-smells/detectors/inappropriate-intimacy-detector.js.map +0 -1
- package/dist/analyzers/code-smells/detectors/large-class-detector.d.ts +0 -13
- package/dist/analyzers/code-smells/detectors/large-class-detector.js +0 -61
- package/dist/analyzers/code-smells/detectors/large-class-detector.js.map +0 -1
- package/dist/analyzers/code-smells/detectors/long-method-detector.d.ts +0 -12
- package/dist/analyzers/code-smells/detectors/long-method-detector.js +0 -55
- package/dist/analyzers/code-smells/detectors/long-method-detector.js.map +0 -1
- package/dist/analyzers/code-smells/detectors/long-parameter-list-detector.d.ts +0 -12
- package/dist/analyzers/code-smells/detectors/long-parameter-list-detector.js +0 -53
- package/dist/analyzers/code-smells/detectors/long-parameter-list-detector.js.map +0 -1
- package/dist/analyzers/code-smells/detectors/magic-numbers-detector.d.ts +0 -12
- package/dist/analyzers/code-smells/detectors/magic-numbers-detector.js +0 -56
- package/dist/analyzers/code-smells/detectors/magic-numbers-detector.js.map +0 -1
- package/dist/analyzers/code-smells/detectors/nested-conditionals-detector.d.ts +0 -13
- package/dist/analyzers/code-smells/detectors/nested-conditionals-detector.js +0 -77
- package/dist/analyzers/code-smells/detectors/nested-conditionals-detector.js.map +0 -1
- package/dist/analyzers/code-smells/index.d.ts +0 -16
- package/dist/analyzers/code-smells/index.js +0 -19
- package/dist/analyzers/code-smells/index.js.map +0 -1
- package/dist/analyzers/code-smells/types.d.ts +0 -82
- package/dist/analyzers/code-smells/types.js +0 -30
- package/dist/analyzers/code-smells/types.js.map +0 -1
- package/dist/analyzers/dependency/circular-detector.d.ts +0 -17
- package/dist/analyzers/dependency/circular-detector.js +0 -73
- package/dist/analyzers/dependency/circular-detector.js.map +0 -1
- package/dist/analyzers/dependency/coupling-calculator.d.ts +0 -24
- package/dist/analyzers/dependency/coupling-calculator.js +0 -86
- package/dist/analyzers/dependency/coupling-calculator.js.map +0 -1
- package/dist/analyzers/dependency/dependency-analyzer.d.ts +0 -44
- package/dist/analyzers/dependency/dependency-analyzer.js +0 -218
- package/dist/analyzers/dependency/dependency-analyzer.js.map +0 -1
- package/dist/analyzers/dependency/dependency-graph.d.ts +0 -57
- package/dist/analyzers/dependency/dependency-graph.js +0 -198
- package/dist/analyzers/dependency/dependency-graph.js.map +0 -1
- package/dist/analyzers/dependency/index.d.ts +0 -8
- package/dist/analyzers/dependency/index.js +0 -8
- package/dist/analyzers/dependency/index.js.map +0 -1
- package/dist/analyzers/dependency/types.d.ts +0 -105
- package/dist/analyzers/dependency/types.js +0 -5
- package/dist/analyzers/dependency/types.js.map +0 -1
- package/dist/analyzers/errors.d.ts +0 -51
- package/dist/analyzers/errors.js +0 -79
- package/dist/analyzers/errors.js.map +0 -1
- package/dist/analyzers/git/churn-calculator.d.ts +0 -36
- package/dist/analyzers/git/churn-calculator.js +0 -257
- package/dist/analyzers/git/churn-calculator.js.map +0 -1
- package/dist/analyzers/git/git-analyzer.d.ts +0 -19
- package/dist/analyzers/git/git-analyzer.js +0 -79
- package/dist/analyzers/git/git-analyzer.js.map +0 -1
- package/dist/analyzers/git/hotspot-detector.d.ts +0 -34
- package/dist/analyzers/git/hotspot-detector.js +0 -173
- package/dist/analyzers/git/hotspot-detector.js.map +0 -1
- package/dist/analyzers/git/index.d.ts +0 -7
- package/dist/analyzers/git/index.js +0 -7
- package/dist/analyzers/git/index.js.map +0 -1
- package/dist/analyzers/git/types.d.ts +0 -88
- package/dist/analyzers/git/types.js +0 -5
- package/dist/analyzers/git/types.js.map +0 -1
- package/dist/analyzers/metrics/halstead-calculator.d.ts +0 -30
- package/dist/analyzers/metrics/halstead-calculator.js +0 -150
- package/dist/analyzers/metrics/halstead-calculator.js.map +0 -1
- package/dist/analyzers/metrics/index.d.ts +0 -9
- package/dist/analyzers/metrics/index.js +0 -9
- package/dist/analyzers/metrics/index.js.map +0 -1
- package/dist/analyzers/metrics/maintainability-calculator.d.ts +0 -17
- package/dist/analyzers/metrics/maintainability-calculator.js +0 -46
- package/dist/analyzers/metrics/maintainability-calculator.js.map +0 -1
- package/dist/analyzers/metrics/metrics-analyzer.d.ts +0 -32
- package/dist/analyzers/metrics/metrics-analyzer.js +0 -144
- package/dist/analyzers/metrics/metrics-analyzer.js.map +0 -1
- package/dist/analyzers/metrics/types.d.ts +0 -67
- package/dist/analyzers/metrics/types.js +0 -5
- package/dist/analyzers/metrics/types.js.map +0 -1
- package/dist/analyzers/security/base-detector.d.ts +0 -58
- package/dist/analyzers/security/base-detector.js +0 -104
- package/dist/analyzers/security/base-detector.js.map +0 -1
- package/dist/analyzers/security/detectors/command-injection-detector.d.ts +0 -12
- package/dist/analyzers/security/detectors/command-injection-detector.js +0 -84
- package/dist/analyzers/security/detectors/command-injection-detector.js.map +0 -1
- package/dist/analyzers/security/detectors/hardcoded-secrets-detector.d.ts +0 -16
- package/dist/analyzers/security/detectors/hardcoded-secrets-detector.js +0 -140
- package/dist/analyzers/security/detectors/hardcoded-secrets-detector.js.map +0 -1
- package/dist/analyzers/security/detectors/insecure-deserialization-detector.d.ts +0 -12
- package/dist/analyzers/security/detectors/insecure-deserialization-detector.js +0 -109
- package/dist/analyzers/security/detectors/insecure-deserialization-detector.js.map +0 -1
- package/dist/analyzers/security/detectors/insecure-random-detector.d.ts +0 -12
- package/dist/analyzers/security/detectors/insecure-random-detector.js +0 -61
- package/dist/analyzers/security/detectors/insecure-random-detector.js.map +0 -1
- package/dist/analyzers/security/detectors/path-traversal-detector.d.ts +0 -12
- package/dist/analyzers/security/detectors/path-traversal-detector.js +0 -82
- package/dist/analyzers/security/detectors/path-traversal-detector.js.map +0 -1
- package/dist/analyzers/security/detectors/sql-injection-detector.d.ts +0 -12
- package/dist/analyzers/security/detectors/sql-injection-detector.js +0 -88
- package/dist/analyzers/security/detectors/sql-injection-detector.js.map +0 -1
- package/dist/analyzers/security/detectors/weak-crypto-detector.d.ts +0 -12
- package/dist/analyzers/security/detectors/weak-crypto-detector.js +0 -104
- package/dist/analyzers/security/detectors/weak-crypto-detector.js.map +0 -1
- package/dist/analyzers/security/detectors/xss-detector.d.ts +0 -12
- package/dist/analyzers/security/detectors/xss-detector.js +0 -90
- package/dist/analyzers/security/detectors/xss-detector.js.map +0 -1
- package/dist/analyzers/security/index.d.ts +0 -16
- package/dist/analyzers/security/index.js +0 -18
- package/dist/analyzers/security/index.js.map +0 -1
- package/dist/analyzers/security/security-analyzer.d.ts +0 -38
- package/dist/analyzers/security/security-analyzer.js +0 -215
- package/dist/analyzers/security/security-analyzer.js.map +0 -1
- package/dist/analyzers/security/types.d.ts +0 -95
- package/dist/analyzers/security/types.js +0 -7
- package/dist/analyzers/security/types.js.map +0 -1
- package/dist/tools/analysis-tools/architecture-tool.d.ts +0 -46
- package/dist/tools/analysis-tools/architecture-tool.js +0 -124
- package/dist/tools/analysis-tools/architecture-tool.js.map +0 -1
- package/dist/tools/analysis-tools/validation-tool.d.ts +0 -51
- package/dist/tools/analysis-tools/validation-tool.js +0 -121
- package/dist/tools/analysis-tools/validation-tool.js.map +0 -1
- package/dist/tools/analysis-tools.d.ts +0 -73
- package/dist/tools/analysis-tools.js +0 -422
- package/dist/tools/analysis-tools.js.map +0 -1
- package/dist/types/analysis.d.ts +0 -177
- package/dist/types/analysis.js +0 -8
- package/dist/types/analysis.js.map +0 -1
- package/dist/utils/analysis-logger.d.ts +0 -50
- package/dist/utils/analysis-logger.js +0 -73
- package/dist/utils/analysis-logger.js.map +0 -1
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Multi-Language Parser Facade
|
|
3
|
-
*
|
|
4
|
-
* Unified interface for parsing TypeScript/JavaScript files.
|
|
5
|
-
* Uses ts-morph for accurate type-aware parsing.
|
|
6
|
-
*
|
|
7
|
-
* Note: Previously supported 30+ languages via tree-sitter.
|
|
8
|
-
* Simplified to focus on TypeScript/JavaScript (the primary use case).
|
|
9
|
-
* For other languages, use language-specific tools.
|
|
10
|
-
*/
|
|
11
|
-
import { type SupportedLanguage } from './language-parser.js';
|
|
12
|
-
import type { FileASTInfo } from './types.js';
|
|
13
|
-
import type { SourceFile } from 'ts-morph';
|
|
14
|
-
/**
|
|
15
|
-
* Multi-language parser facade
|
|
16
|
-
*
|
|
17
|
-
* Currently supports TypeScript/JavaScript via ts-morph.
|
|
18
|
-
* Returns empty AST info for unsupported languages.
|
|
19
|
-
*/
|
|
20
|
-
export declare class MultiLanguageParser {
|
|
21
|
-
/**
|
|
22
|
-
* Parse a file, automatically selecting the appropriate parser
|
|
23
|
-
*/
|
|
24
|
-
parseFile(filePath: string): Promise<FileASTInfo>;
|
|
25
|
-
/**
|
|
26
|
-
* Parse content directly with specified language
|
|
27
|
-
*/
|
|
28
|
-
parseContent(content: string, language: SupportedLanguage, filePath?: string): Promise<FileASTInfo>;
|
|
29
|
-
/**
|
|
30
|
-
* Parse TypeScript/JavaScript file using ts-morph
|
|
31
|
-
*/
|
|
32
|
-
private parseTypeScriptFile;
|
|
33
|
-
/**
|
|
34
|
-
* Parse TypeScript/JavaScript content using ts-morph
|
|
35
|
-
*/
|
|
36
|
-
private parseTypeScriptContent;
|
|
37
|
-
/**
|
|
38
|
-
* Check if a language is supported
|
|
39
|
-
*/
|
|
40
|
-
supports(filePath: string): boolean;
|
|
41
|
-
/**
|
|
42
|
-
* Get the language for a file path
|
|
43
|
-
*/
|
|
44
|
-
getLanguage(filePath: string): SupportedLanguage;
|
|
45
|
-
/**
|
|
46
|
-
* Get ts-morph SourceFile for TypeScript/JavaScript files
|
|
47
|
-
* Returns null for other languages
|
|
48
|
-
*/
|
|
49
|
-
getSourceFile(filePath: string): SourceFile | null;
|
|
50
|
-
/**
|
|
51
|
-
* Check if file supports advanced semantic analysis (ts-morph only)
|
|
52
|
-
*/
|
|
53
|
-
supportsSemanticAnalysis(filePath: string): boolean;
|
|
54
|
-
/**
|
|
55
|
-
* Get list of supported languages
|
|
56
|
-
*/
|
|
57
|
-
getSupportedLanguages(): SupportedLanguage[];
|
|
58
|
-
/**
|
|
59
|
-
* Get list of all parseable languages
|
|
60
|
-
* (Same as getSupportedLanguages after tree-sitter removal)
|
|
61
|
-
*/
|
|
62
|
-
getAllParseableLanguages(): string[];
|
|
63
|
-
/**
|
|
64
|
-
* Create empty AST info
|
|
65
|
-
*/
|
|
66
|
-
private createEmptyASTInfo;
|
|
67
|
-
/**
|
|
68
|
-
* Clear cached parser and free memory
|
|
69
|
-
*/
|
|
70
|
-
dispose(): void;
|
|
71
|
-
}
|
|
72
|
-
/**
|
|
73
|
-
* Get the singleton multi-language parser instance
|
|
74
|
-
*/
|
|
75
|
-
export declare function getMultiLanguageParser(): MultiLanguageParser;
|
|
76
|
-
/**
|
|
77
|
-
* Reset the singleton (for testing)
|
|
78
|
-
*/
|
|
79
|
-
export declare function resetMultiLanguageParser(): void;
|
|
@@ -1,157 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Multi-Language Parser Facade
|
|
3
|
-
*
|
|
4
|
-
* Unified interface for parsing TypeScript/JavaScript files.
|
|
5
|
-
* Uses ts-morph for accurate type-aware parsing.
|
|
6
|
-
*
|
|
7
|
-
* Note: Previously supported 30+ languages via tree-sitter.
|
|
8
|
-
* Simplified to focus on TypeScript/JavaScript (the primary use case).
|
|
9
|
-
* For other languages, use language-specific tools.
|
|
10
|
-
*/
|
|
11
|
-
import { ASTParser } from './parser.js';
|
|
12
|
-
import { getLanguageFromPath } from './language-parser.js';
|
|
13
|
-
/**
|
|
14
|
-
* Singleton ts-morph parser
|
|
15
|
-
*/
|
|
16
|
-
let tsMorphParser = null;
|
|
17
|
-
/**
|
|
18
|
-
* Get or create the ts-morph parser (singleton)
|
|
19
|
-
*/
|
|
20
|
-
function getTsMorphParser() {
|
|
21
|
-
if (!tsMorphParser) {
|
|
22
|
-
tsMorphParser = new ASTParser();
|
|
23
|
-
}
|
|
24
|
-
return tsMorphParser;
|
|
25
|
-
}
|
|
26
|
-
/**
|
|
27
|
-
* Multi-language parser facade
|
|
28
|
-
*
|
|
29
|
-
* Currently supports TypeScript/JavaScript via ts-morph.
|
|
30
|
-
* Returns empty AST info for unsupported languages.
|
|
31
|
-
*/
|
|
32
|
-
export class MultiLanguageParser {
|
|
33
|
-
/**
|
|
34
|
-
* Parse a file, automatically selecting the appropriate parser
|
|
35
|
-
*/
|
|
36
|
-
async parseFile(filePath) {
|
|
37
|
-
const language = getLanguageFromPath(filePath);
|
|
38
|
-
if (language === 'typescript' || language === 'javascript') {
|
|
39
|
-
return this.parseTypeScriptFile(filePath);
|
|
40
|
-
}
|
|
41
|
-
// Unsupported language - return empty AST
|
|
42
|
-
return this.createEmptyASTInfo(filePath);
|
|
43
|
-
}
|
|
44
|
-
/**
|
|
45
|
-
* Parse content directly with specified language
|
|
46
|
-
*/
|
|
47
|
-
async parseContent(content, language, filePath = 'temp') {
|
|
48
|
-
if (language === 'typescript' || language === 'javascript') {
|
|
49
|
-
return this.parseTypeScriptContent(content, filePath);
|
|
50
|
-
}
|
|
51
|
-
// Unsupported language - return empty AST
|
|
52
|
-
return this.createEmptyASTInfo(filePath);
|
|
53
|
-
}
|
|
54
|
-
/**
|
|
55
|
-
* Parse TypeScript/JavaScript file using ts-morph
|
|
56
|
-
*/
|
|
57
|
-
parseTypeScriptFile(filePath) {
|
|
58
|
-
const parser = getTsMorphParser();
|
|
59
|
-
return parser.parseFile(filePath);
|
|
60
|
-
}
|
|
61
|
-
/**
|
|
62
|
-
* Parse TypeScript/JavaScript content using ts-morph
|
|
63
|
-
*/
|
|
64
|
-
parseTypeScriptContent(content, filePath) {
|
|
65
|
-
const parser = getTsMorphParser();
|
|
66
|
-
return parser.parseContent(content, filePath);
|
|
67
|
-
}
|
|
68
|
-
/**
|
|
69
|
-
* Check if a language is supported
|
|
70
|
-
*/
|
|
71
|
-
supports(filePath) {
|
|
72
|
-
const language = getLanguageFromPath(filePath);
|
|
73
|
-
return language === 'typescript' || language === 'javascript';
|
|
74
|
-
}
|
|
75
|
-
/**
|
|
76
|
-
* Get the language for a file path
|
|
77
|
-
*/
|
|
78
|
-
getLanguage(filePath) {
|
|
79
|
-
return getLanguageFromPath(filePath);
|
|
80
|
-
}
|
|
81
|
-
/**
|
|
82
|
-
* Get ts-morph SourceFile for TypeScript/JavaScript files
|
|
83
|
-
* Returns null for other languages
|
|
84
|
-
*/
|
|
85
|
-
getSourceFile(filePath) {
|
|
86
|
-
const language = getLanguageFromPath(filePath);
|
|
87
|
-
if (language === 'typescript' || language === 'javascript') {
|
|
88
|
-
return getTsMorphParser().getSourceFile(filePath);
|
|
89
|
-
}
|
|
90
|
-
return null;
|
|
91
|
-
}
|
|
92
|
-
/**
|
|
93
|
-
* Check if file supports advanced semantic analysis (ts-morph only)
|
|
94
|
-
*/
|
|
95
|
-
supportsSemanticAnalysis(filePath) {
|
|
96
|
-
const language = getLanguageFromPath(filePath);
|
|
97
|
-
return language === 'typescript' || language === 'javascript';
|
|
98
|
-
}
|
|
99
|
-
/**
|
|
100
|
-
* Get list of supported languages
|
|
101
|
-
*/
|
|
102
|
-
getSupportedLanguages() {
|
|
103
|
-
return ['typescript', 'javascript'];
|
|
104
|
-
}
|
|
105
|
-
/**
|
|
106
|
-
* Get list of all parseable languages
|
|
107
|
-
* (Same as getSupportedLanguages after tree-sitter removal)
|
|
108
|
-
*/
|
|
109
|
-
getAllParseableLanguages() {
|
|
110
|
-
return ['typescript', 'javascript'];
|
|
111
|
-
}
|
|
112
|
-
/**
|
|
113
|
-
* Create empty AST info
|
|
114
|
-
*/
|
|
115
|
-
createEmptyASTInfo(filePath) {
|
|
116
|
-
return Object.freeze({
|
|
117
|
-
filePath,
|
|
118
|
-
functions: Object.freeze([]),
|
|
119
|
-
classes: Object.freeze([]),
|
|
120
|
-
imports: Object.freeze([]),
|
|
121
|
-
exports: Object.freeze([]),
|
|
122
|
-
totalLines: 0,
|
|
123
|
-
});
|
|
124
|
-
}
|
|
125
|
-
/**
|
|
126
|
-
* Clear cached parser and free memory
|
|
127
|
-
*/
|
|
128
|
-
dispose() {
|
|
129
|
-
if (tsMorphParser) {
|
|
130
|
-
tsMorphParser.clear();
|
|
131
|
-
tsMorphParser = null;
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
/**
|
|
136
|
-
* Singleton instance for convenience
|
|
137
|
-
*/
|
|
138
|
-
let multiLanguageParserInstance = null;
|
|
139
|
-
/**
|
|
140
|
-
* Get the singleton multi-language parser instance
|
|
141
|
-
*/
|
|
142
|
-
export function getMultiLanguageParser() {
|
|
143
|
-
if (!multiLanguageParserInstance) {
|
|
144
|
-
multiLanguageParserInstance = new MultiLanguageParser();
|
|
145
|
-
}
|
|
146
|
-
return multiLanguageParserInstance;
|
|
147
|
-
}
|
|
148
|
-
/**
|
|
149
|
-
* Reset the singleton (for testing)
|
|
150
|
-
*/
|
|
151
|
-
export function resetMultiLanguageParser() {
|
|
152
|
-
if (multiLanguageParserInstance) {
|
|
153
|
-
multiLanguageParserInstance.dispose();
|
|
154
|
-
multiLanguageParserInstance = null;
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
//# sourceMappingURL=multi-language-parser.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"multi-language-parser.js","sourceRoot":"","sources":["../../../src/analyzers/ast/multi-language-parser.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,mBAAmB,EAA0B,MAAM,sBAAsB,CAAC;AAInF;;GAEG;AACH,IAAI,aAAa,GAAqB,IAAI,CAAC;AAE3C;;GAEG;AACH,SAAS,gBAAgB;IACvB,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,aAAa,GAAG,IAAI,SAAS,EAAE,CAAC;IAClC,CAAC;IACD,OAAO,aAAa,CAAC;AACvB,CAAC;AAED;;;;;GAKG;AACH,MAAM,OAAO,mBAAmB;IAC9B;;OAEG;IACH,KAAK,CAAC,SAAS,CAAC,QAAgB;QAC9B,MAAM,QAAQ,GAAG,mBAAmB,CAAC,QAAQ,CAAC,CAAC;QAE/C,IAAI,QAAQ,KAAK,YAAY,IAAI,QAAQ,KAAK,YAAY,EAAE,CAAC;YAC3D,OAAO,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;QAC5C,CAAC;QAED,0CAA0C;QAC1C,OAAO,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IAC3C,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,YAAY,CAAC,OAAe,EAAE,QAA2B,EAAE,WAAmB,MAAM;QACxF,IAAI,QAAQ,KAAK,YAAY,IAAI,QAAQ,KAAK,YAAY,EAAE,CAAC;YAC3D,OAAO,IAAI,CAAC,sBAAsB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QACxD,CAAC;QAED,0CAA0C;QAC1C,OAAO,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IAC3C,CAAC;IAED;;OAEG;IACK,mBAAmB,CAAC,QAAgB;QAC1C,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC;QAClC,OAAO,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IACpC,CAAC;IAED;;OAEG;IACK,sBAAsB,CAAC,OAAe,EAAE,QAAgB;QAC9D,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC;QAClC,OAAO,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAChD,CAAC;IAED;;OAEG;IACH,QAAQ,CAAC,QAAgB;QACvB,MAAM,QAAQ,GAAG,mBAAmB,CAAC,QAAQ,CAAC,CAAC;QAC/C,OAAO,QAAQ,KAAK,YAAY,IAAI,QAAQ,KAAK,YAAY,CAAC;IAChE,CAAC;IAED;;OAEG;IACH,WAAW,CAAC,QAAgB;QAC1B,OAAO,mBAAmB,CAAC,QAAQ,CAAC,CAAC;IACvC,CAAC;IAED;;;OAGG;IACH,aAAa,CAAC,QAAgB;QAC5B,MAAM,QAAQ,GAAG,mBAAmB,CAAC,QAAQ,CAAC,CAAC;QAC/C,IAAI,QAAQ,KAAK,YAAY,IAAI,QAAQ,KAAK,YAAY,EAAE,CAAC;YAC3D,OAAO,gBAAgB,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QACpD,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,wBAAwB,CAAC,QAAgB;QACvC,MAAM,QAAQ,GAAG,mBAAmB,CAAC,QAAQ,CAAC,CAAC;QAC/C,OAAO,QAAQ,KAAK,YAAY,IAAI,QAAQ,KAAK,YAAY,CAAC;IAChE,CAAC;IAED;;OAEG;IACH,qBAAqB;QACnB,OAAO,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;IACtC,CAAC;IAED;;;OAGG;IACH,wBAAwB;QACtB,OAAO,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;IACtC,CAAC;IAED;;OAEG;IACK,kBAAkB,CAAC,QAAgB;QACzC,OAAO,MAAM,CAAC,MAAM,CAAC;YACnB,QAAQ;YACR,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;YAC5B,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;YAC1B,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;YAC1B,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;YAC1B,UAAU,EAAE,CAAC;SACd,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,OAAO;QACL,IAAI,aAAa,EAAE,CAAC;YAClB,aAAa,CAAC,KAAK,EAAE,CAAC;YACtB,aAAa,GAAG,IAAI,CAAC;QACvB,CAAC;IACH,CAAC;CACF;AAED;;GAEG;AACH,IAAI,2BAA2B,GAA+B,IAAI,CAAC;AAEnE;;GAEG;AACH,MAAM,UAAU,sBAAsB;IACpC,IAAI,CAAC,2BAA2B,EAAE,CAAC;QACjC,2BAA2B,GAAG,IAAI,mBAAmB,EAAE,CAAC;IAC1D,CAAC;IACD,OAAO,2BAA2B,CAAC;AACrC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,wBAAwB;IACtC,IAAI,2BAA2B,EAAE,CAAC;QAChC,2BAA2B,CAAC,OAAO,EAAE,CAAC;QACtC,2BAA2B,GAAG,IAAI,CAAC;IACrC,CAAC;AACH,CAAC"}
|
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* AST Node Helper Utilities
|
|
3
|
-
*
|
|
4
|
-
* Type guards and utility functions for working with AST nodes
|
|
5
|
-
*/
|
|
6
|
-
import type { FunctionInfo, ClassInfo, MethodInfo, ImportInfo } from './types.js';
|
|
7
|
-
/**
|
|
8
|
-
* Check if function is a high-complexity function
|
|
9
|
-
*/
|
|
10
|
-
export declare function isHighComplexity(func: FunctionInfo, threshold?: number): boolean;
|
|
11
|
-
/**
|
|
12
|
-
* Check if function is a long function
|
|
13
|
-
*/
|
|
14
|
-
export declare function isLongFunction(func: FunctionInfo, threshold?: number): boolean;
|
|
15
|
-
/**
|
|
16
|
-
* Check if class is a large class (God Object indicator)
|
|
17
|
-
*/
|
|
18
|
-
export declare function isLargeClass(cls: ClassInfo, methodThreshold?: number, lineThreshold?: number): boolean;
|
|
19
|
-
/**
|
|
20
|
-
* Check if method has too many parameters
|
|
21
|
-
*/
|
|
22
|
-
export declare function hasTooManyParameters(method: MethodInfo | FunctionInfo, threshold?: number): boolean;
|
|
23
|
-
/**
|
|
24
|
-
* Get all external imports (from node_modules)
|
|
25
|
-
*/
|
|
26
|
-
export declare function getExternalImports(imports: readonly ImportInfo[]): ImportInfo[];
|
|
27
|
-
/**
|
|
28
|
-
* Get all internal imports (relative paths)
|
|
29
|
-
*/
|
|
30
|
-
export declare function getInternalImports(imports: readonly ImportInfo[]): ImportInfo[];
|
|
31
|
-
/**
|
|
32
|
-
* Calculate class coupling (number of external dependencies)
|
|
33
|
-
*/
|
|
34
|
-
export declare function calculateClassCoupling(imports: readonly ImportInfo[]): number;
|
|
35
|
-
/**
|
|
36
|
-
* Find all async functions in a list
|
|
37
|
-
*/
|
|
38
|
-
export declare function getAsyncFunctions(functions: readonly FunctionInfo[]): FunctionInfo[];
|
|
39
|
-
/**
|
|
40
|
-
* Find all exported functions
|
|
41
|
-
*/
|
|
42
|
-
export declare function getExportedFunctions(functions: readonly FunctionInfo[]): FunctionInfo[];
|
|
43
|
-
/**
|
|
44
|
-
* Get average complexity of functions
|
|
45
|
-
*/
|
|
46
|
-
export declare function getAverageComplexity(functions: readonly FunctionInfo[]): number;
|
|
47
|
-
/**
|
|
48
|
-
* Get average function length
|
|
49
|
-
*/
|
|
50
|
-
export declare function getAverageFunctionLength(functions: readonly FunctionInfo[]): number;
|
|
51
|
-
/**
|
|
52
|
-
* Find all private methods in a class
|
|
53
|
-
*/
|
|
54
|
-
export declare function getPrivateMethods(cls: ClassInfo): MethodInfo[];
|
|
55
|
-
/**
|
|
56
|
-
* Find all public methods in a class
|
|
57
|
-
*/
|
|
58
|
-
export declare function getPublicMethods(cls: ClassInfo): MethodInfo[];
|
|
59
|
-
/**
|
|
60
|
-
* Find all static methods in a class
|
|
61
|
-
*/
|
|
62
|
-
export declare function getStaticMethods(cls: ClassInfo): MethodInfo[];
|
|
63
|
-
/**
|
|
64
|
-
* Calculate method density (methods per line)
|
|
65
|
-
*/
|
|
66
|
-
export declare function calculateMethodDensity(cls: ClassInfo): number;
|
|
67
|
-
/**
|
|
68
|
-
* Check if import is a type-only import
|
|
69
|
-
*/
|
|
70
|
-
export declare function isTypeOnlyImport(imp: ImportInfo): boolean;
|
|
71
|
-
/**
|
|
72
|
-
* Group imports by external/internal
|
|
73
|
-
*/
|
|
74
|
-
export declare function groupImportsByType(imports: readonly ImportInfo[]): {
|
|
75
|
-
external: ImportInfo[];
|
|
76
|
-
internal: ImportInfo[];
|
|
77
|
-
};
|
|
78
|
-
/**
|
|
79
|
-
* Calculate cognitive complexity score for a file
|
|
80
|
-
*/
|
|
81
|
-
export declare function calculateFileCognitiveComplexity(functions: readonly FunctionInfo[], classes: readonly ClassInfo[]): number;
|
|
@@ -1,128 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* AST Node Helper Utilities
|
|
3
|
-
*
|
|
4
|
-
* Type guards and utility functions for working with AST nodes
|
|
5
|
-
*/
|
|
6
|
-
/**
|
|
7
|
-
* Check if function is a high-complexity function
|
|
8
|
-
*/
|
|
9
|
-
export function isHighComplexity(func, threshold = 10) {
|
|
10
|
-
return func.complexity > threshold;
|
|
11
|
-
}
|
|
12
|
-
/**
|
|
13
|
-
* Check if function is a long function
|
|
14
|
-
*/
|
|
15
|
-
export function isLongFunction(func, threshold = 50) {
|
|
16
|
-
return func.length > threshold;
|
|
17
|
-
}
|
|
18
|
-
/**
|
|
19
|
-
* Check if class is a large class (God Object indicator)
|
|
20
|
-
*/
|
|
21
|
-
export function isLargeClass(cls, methodThreshold = 20, lineThreshold = 300) {
|
|
22
|
-
return cls.methods.length > methodThreshold || cls.length > lineThreshold;
|
|
23
|
-
}
|
|
24
|
-
/**
|
|
25
|
-
* Check if method has too many parameters
|
|
26
|
-
*/
|
|
27
|
-
export function hasTooManyParameters(method, threshold = 5) {
|
|
28
|
-
return method.parameters.length > threshold;
|
|
29
|
-
}
|
|
30
|
-
/**
|
|
31
|
-
* Get all external imports (from node_modules)
|
|
32
|
-
*/
|
|
33
|
-
export function getExternalImports(imports) {
|
|
34
|
-
return imports.filter(imp => imp.isExternal);
|
|
35
|
-
}
|
|
36
|
-
/**
|
|
37
|
-
* Get all internal imports (relative paths)
|
|
38
|
-
*/
|
|
39
|
-
export function getInternalImports(imports) {
|
|
40
|
-
return imports.filter(imp => !imp.isExternal);
|
|
41
|
-
}
|
|
42
|
-
/**
|
|
43
|
-
* Calculate class coupling (number of external dependencies)
|
|
44
|
-
*/
|
|
45
|
-
export function calculateClassCoupling(imports) {
|
|
46
|
-
const external = getExternalImports(imports);
|
|
47
|
-
return external.length;
|
|
48
|
-
}
|
|
49
|
-
/**
|
|
50
|
-
* Find all async functions in a list
|
|
51
|
-
*/
|
|
52
|
-
export function getAsyncFunctions(functions) {
|
|
53
|
-
return functions.filter(f => f.isAsync);
|
|
54
|
-
}
|
|
55
|
-
/**
|
|
56
|
-
* Find all exported functions
|
|
57
|
-
*/
|
|
58
|
-
export function getExportedFunctions(functions) {
|
|
59
|
-
return functions.filter(f => f.isExported);
|
|
60
|
-
}
|
|
61
|
-
/**
|
|
62
|
-
* Get average complexity of functions
|
|
63
|
-
*/
|
|
64
|
-
export function getAverageComplexity(functions) {
|
|
65
|
-
if (functions.length === 0)
|
|
66
|
-
return 0;
|
|
67
|
-
const total = functions.reduce((sum, f) => sum + f.complexity, 0);
|
|
68
|
-
return total / functions.length;
|
|
69
|
-
}
|
|
70
|
-
/**
|
|
71
|
-
* Get average function length
|
|
72
|
-
*/
|
|
73
|
-
export function getAverageFunctionLength(functions) {
|
|
74
|
-
if (functions.length === 0)
|
|
75
|
-
return 0;
|
|
76
|
-
const total = functions.reduce((sum, f) => sum + f.length, 0);
|
|
77
|
-
return total / functions.length;
|
|
78
|
-
}
|
|
79
|
-
/**
|
|
80
|
-
* Find all private methods in a class
|
|
81
|
-
*/
|
|
82
|
-
export function getPrivateMethods(cls) {
|
|
83
|
-
return cls.methods.filter(m => m.visibility === 'private');
|
|
84
|
-
}
|
|
85
|
-
/**
|
|
86
|
-
* Find all public methods in a class
|
|
87
|
-
*/
|
|
88
|
-
export function getPublicMethods(cls) {
|
|
89
|
-
return cls.methods.filter(m => m.visibility === 'public');
|
|
90
|
-
}
|
|
91
|
-
/**
|
|
92
|
-
* Find all static methods in a class
|
|
93
|
-
*/
|
|
94
|
-
export function getStaticMethods(cls) {
|
|
95
|
-
return cls.methods.filter(m => m.isStatic);
|
|
96
|
-
}
|
|
97
|
-
/**
|
|
98
|
-
* Calculate method density (methods per line)
|
|
99
|
-
*/
|
|
100
|
-
export function calculateMethodDensity(cls) {
|
|
101
|
-
if (cls.length === 0)
|
|
102
|
-
return 0;
|
|
103
|
-
return cls.methods.length / cls.length;
|
|
104
|
-
}
|
|
105
|
-
/**
|
|
106
|
-
* Check if import is a type-only import
|
|
107
|
-
*/
|
|
108
|
-
export function isTypeOnlyImport(imp) {
|
|
109
|
-
return imp.namedImports.every(name => name.startsWith('type ') || name.includes('Type'));
|
|
110
|
-
}
|
|
111
|
-
/**
|
|
112
|
-
* Group imports by external/internal
|
|
113
|
-
*/
|
|
114
|
-
export function groupImportsByType(imports) {
|
|
115
|
-
return {
|
|
116
|
-
external: getExternalImports(imports),
|
|
117
|
-
internal: getInternalImports(imports),
|
|
118
|
-
};
|
|
119
|
-
}
|
|
120
|
-
/**
|
|
121
|
-
* Calculate cognitive complexity score for a file
|
|
122
|
-
*/
|
|
123
|
-
export function calculateFileCognitiveComplexity(functions, classes) {
|
|
124
|
-
const funcComplexity = functions.reduce((sum, f) => sum + f.complexity, 0);
|
|
125
|
-
const methodComplexity = classes.reduce((sum, c) => sum + c.methods.reduce((mSum, m) => mSum + m.complexity, 0), 0);
|
|
126
|
-
return funcComplexity + methodComplexity;
|
|
127
|
-
}
|
|
128
|
-
//# sourceMappingURL=node-helpers.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"node-helpers.js","sourceRoot":"","sources":["../../../src/analyzers/ast/node-helpers.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* AST Parser
|
|
3
|
-
*
|
|
4
|
-
* Provides TypeScript/JavaScript AST parsing using ts-morph
|
|
5
|
-
*/
|
|
6
|
-
import { SourceFile } from 'ts-morph';
|
|
7
|
-
import type { FileASTInfo } from './types.js';
|
|
8
|
-
export declare class ASTParser {
|
|
9
|
-
private project;
|
|
10
|
-
constructor();
|
|
11
|
-
/**
|
|
12
|
-
* Parse a TypeScript/JavaScript file
|
|
13
|
-
*/
|
|
14
|
-
parseFile(filePath: string): FileASTInfo;
|
|
15
|
-
/**
|
|
16
|
-
* Parse file content directly
|
|
17
|
-
*/
|
|
18
|
-
parseContent(content: string, filePath?: string): FileASTInfo;
|
|
19
|
-
/**
|
|
20
|
-
* Extract all functions from source file
|
|
21
|
-
*/
|
|
22
|
-
private extractFunctions;
|
|
23
|
-
/**
|
|
24
|
-
* Extract all classes from source file
|
|
25
|
-
*/
|
|
26
|
-
private extractClasses;
|
|
27
|
-
/**
|
|
28
|
-
* Extract methods from a class
|
|
29
|
-
*/
|
|
30
|
-
private extractMethods;
|
|
31
|
-
/**
|
|
32
|
-
* Extract properties from a class
|
|
33
|
-
*/
|
|
34
|
-
private extractProperties;
|
|
35
|
-
/**
|
|
36
|
-
* Extract parameters from a function or method
|
|
37
|
-
*/
|
|
38
|
-
private extractParameters;
|
|
39
|
-
/**
|
|
40
|
-
* Extract imports from source file
|
|
41
|
-
*/
|
|
42
|
-
private extractImports;
|
|
43
|
-
/**
|
|
44
|
-
* Extract exports from source file
|
|
45
|
-
*/
|
|
46
|
-
private extractExports;
|
|
47
|
-
/**
|
|
48
|
-
* Calculate cyclomatic complexity (simplified)
|
|
49
|
-
*/
|
|
50
|
-
private calculateCyclomaticComplexity;
|
|
51
|
-
/**
|
|
52
|
-
* Get raw source file for advanced operations
|
|
53
|
-
* Note: This keeps the file in the project for semantic analysis (findReferences, etc.)
|
|
54
|
-
*/
|
|
55
|
-
getSourceFile(filePath: string): SourceFile;
|
|
56
|
-
/**
|
|
57
|
-
* Clear project cache
|
|
58
|
-
*/
|
|
59
|
-
clear(): void;
|
|
60
|
-
}
|