@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.
Files changed (261) hide show
  1. package/README.md +22 -2
  2. package/dist/agent/agent-executor.d.ts +1 -1
  3. package/dist/agent/agent-executor.js +15 -17
  4. package/dist/agent/agent-executor.js.map +1 -1
  5. package/dist/agent/execution/tool-executor.d.ts +6 -0
  6. package/dist/agent/execution/tool-executor.js +16 -1
  7. package/dist/agent/execution/tool-executor.js.map +1 -1
  8. package/dist/agent/llm-agent.js +91 -22
  9. package/dist/agent/llm-agent.js.map +1 -1
  10. package/dist/agent/parallel-tools.d.ts +65 -0
  11. package/dist/agent/parallel-tools.js +146 -0
  12. package/dist/agent/parallel-tools.js.map +1 -0
  13. package/dist/llm/tools.js +1 -1
  14. package/dist/llm/tools.js.map +1 -1
  15. package/dist/ui/components/chat-interface.js +14 -0
  16. package/dist/ui/components/chat-interface.js.map +1 -1
  17. package/dist/ui/hooks/use-input-handler.js +2 -2
  18. package/dist/ui/hooks/use-input-handler.js.map +1 -1
  19. package/dist/ui/utils/image-handler.js +8 -5
  20. package/dist/ui/utils/image-handler.js.map +1 -1
  21. package/package.json +1 -1
  22. package/dist/analyzers/architecture/anti-pattern-detectors/god-object-detector.d.ts +0 -29
  23. package/dist/analyzers/architecture/anti-pattern-detectors/god-object-detector.js +0 -103
  24. package/dist/analyzers/architecture/anti-pattern-detectors/god-object-detector.js.map +0 -1
  25. package/dist/analyzers/architecture/architecture-analyzer.d.ts +0 -58
  26. package/dist/analyzers/architecture/architecture-analyzer.js +0 -276
  27. package/dist/analyzers/architecture/architecture-analyzer.js.map +0 -1
  28. package/dist/analyzers/architecture/index.d.ts +0 -12
  29. package/dist/analyzers/architecture/index.js +0 -14
  30. package/dist/analyzers/architecture/index.js.map +0 -1
  31. package/dist/analyzers/architecture/pattern-detectors/base-detector.d.ts +0 -27
  32. package/dist/analyzers/architecture/pattern-detectors/base-detector.js +0 -31
  33. package/dist/analyzers/architecture/pattern-detectors/base-detector.js.map +0 -1
  34. package/dist/analyzers/architecture/pattern-detectors/clean-architecture-detector.d.ts +0 -11
  35. package/dist/analyzers/architecture/pattern-detectors/clean-architecture-detector.js +0 -57
  36. package/dist/analyzers/architecture/pattern-detectors/clean-architecture-detector.js.map +0 -1
  37. package/dist/analyzers/architecture/pattern-detectors/mvc-detector.d.ts +0 -11
  38. package/dist/analyzers/architecture/pattern-detectors/mvc-detector.js +0 -43
  39. package/dist/analyzers/architecture/pattern-detectors/mvc-detector.js.map +0 -1
  40. package/dist/analyzers/architecture/pattern-detectors/repository-detector.d.ts +0 -11
  41. package/dist/analyzers/architecture/pattern-detectors/repository-detector.js +0 -49
  42. package/dist/analyzers/architecture/pattern-detectors/repository-detector.js.map +0 -1
  43. package/dist/analyzers/architecture/project-structure-scanner.d.ts +0 -54
  44. package/dist/analyzers/architecture/project-structure-scanner.js +0 -204
  45. package/dist/analyzers/architecture/project-structure-scanner.js.map +0 -1
  46. package/dist/analyzers/ast/index.d.ts +0 -13
  47. package/dist/analyzers/ast/index.js +0 -16
  48. package/dist/analyzers/ast/index.js.map +0 -1
  49. package/dist/analyzers/ast/language-parser.d.ts +0 -59
  50. package/dist/analyzers/ast/language-parser.js +0 -107
  51. package/dist/analyzers/ast/language-parser.js.map +0 -1
  52. package/dist/analyzers/ast/multi-language-parser.d.ts +0 -79
  53. package/dist/analyzers/ast/multi-language-parser.js +0 -157
  54. package/dist/analyzers/ast/multi-language-parser.js.map +0 -1
  55. package/dist/analyzers/ast/node-helpers.d.ts +0 -81
  56. package/dist/analyzers/ast/node-helpers.js +0 -128
  57. package/dist/analyzers/ast/node-helpers.js.map +0 -1
  58. package/dist/analyzers/ast/parser.d.ts +0 -60
  59. package/dist/analyzers/ast/parser.js +0 -305
  60. package/dist/analyzers/ast/parser.js.map +0 -1
  61. package/dist/analyzers/ast/traverser.d.ts +0 -67
  62. package/dist/analyzers/ast/traverser.js +0 -156
  63. package/dist/analyzers/ast/traverser.js.map +0 -1
  64. package/dist/analyzers/ast/types.d.ts +0 -107
  65. package/dist/analyzers/ast/types.js +0 -7
  66. package/dist/analyzers/ast/types.js.map +0 -1
  67. package/dist/analyzers/best-practices/base-rule.d.ts +0 -45
  68. package/dist/analyzers/best-practices/base-rule.js +0 -45
  69. package/dist/analyzers/best-practices/base-rule.js.map +0 -1
  70. package/dist/analyzers/best-practices/best-practice-validator.d.ts +0 -35
  71. package/dist/analyzers/best-practices/best-practice-validator.js +0 -181
  72. package/dist/analyzers/best-practices/best-practice-validator.js.map +0 -1
  73. package/dist/analyzers/best-practices/index.d.ts +0 -10
  74. package/dist/analyzers/best-practices/index.js +0 -11
  75. package/dist/analyzers/best-practices/index.js.map +0 -1
  76. package/dist/analyzers/best-practices/rules/index.d.ts +0 -7
  77. package/dist/analyzers/best-practices/rules/index.js +0 -56
  78. package/dist/analyzers/best-practices/rules/index.js.map +0 -1
  79. package/dist/analyzers/best-practices/rules/typescript/consistent-naming.d.ts +0 -17
  80. package/dist/analyzers/best-practices/rules/typescript/consistent-naming.js +0 -41
  81. package/dist/analyzers/best-practices/rules/typescript/consistent-naming.js.map +0 -1
  82. package/dist/analyzers/best-practices/rules/typescript/function-complexity.d.ts +0 -27
  83. package/dist/analyzers/best-practices/rules/typescript/function-complexity.js +0 -76
  84. package/dist/analyzers/best-practices/rules/typescript/function-complexity.js.map +0 -1
  85. package/dist/analyzers/best-practices/rules/typescript/index.d.ts +0 -15
  86. package/dist/analyzers/best-practices/rules/typescript/index.js +0 -16
  87. package/dist/analyzers/best-practices/rules/typescript/index.js.map +0 -1
  88. package/dist/analyzers/best-practices/rules/typescript/max-file-length.d.ts +0 -18
  89. package/dist/analyzers/best-practices/rules/typescript/max-file-length.js +0 -25
  90. package/dist/analyzers/best-practices/rules/typescript/max-file-length.js.map +0 -1
  91. package/dist/analyzers/best-practices/rules/typescript/no-any-type.d.ts +0 -17
  92. package/dist/analyzers/best-practices/rules/typescript/no-any-type.js +0 -27
  93. package/dist/analyzers/best-practices/rules/typescript/no-any-type.js.map +0 -1
  94. package/dist/analyzers/best-practices/rules/typescript/no-implicit-any.d.ts +0 -18
  95. package/dist/analyzers/best-practices/rules/typescript/no-implicit-any.js +0 -39
  96. package/dist/analyzers/best-practices/rules/typescript/no-implicit-any.js.map +0 -1
  97. package/dist/analyzers/best-practices/rules/typescript/no-magic-numbers.d.ts +0 -17
  98. package/dist/analyzers/best-practices/rules/typescript/no-magic-numbers.js +0 -38
  99. package/dist/analyzers/best-practices/rules/typescript/no-magic-numbers.js.map +0 -1
  100. package/dist/analyzers/best-practices/rules/typescript/no-unused-vars.d.ts +0 -17
  101. package/dist/analyzers/best-practices/rules/typescript/no-unused-vars.js +0 -38
  102. package/dist/analyzers/best-practices/rules/typescript/no-unused-vars.js.map +0 -1
  103. package/dist/analyzers/best-practices/rules/typescript/prefer-const.d.ts +0 -17
  104. package/dist/analyzers/best-practices/rules/typescript/prefer-const.js +0 -35
  105. package/dist/analyzers/best-practices/rules/typescript/prefer-const.js.map +0 -1
  106. package/dist/analyzers/best-practices/rules/typescript/prefer-readonly.d.ts +0 -17
  107. package/dist/analyzers/best-practices/rules/typescript/prefer-readonly.js +0 -36
  108. package/dist/analyzers/best-practices/rules/typescript/prefer-readonly.js.map +0 -1
  109. package/dist/analyzers/best-practices/rules/typescript/proper-error-handling.d.ts +0 -17
  110. package/dist/analyzers/best-practices/rules/typescript/proper-error-handling.js +0 -27
  111. package/dist/analyzers/best-practices/rules/typescript/proper-error-handling.js.map +0 -1
  112. package/dist/analyzers/best-practices/types.d.ts +0 -86
  113. package/dist/analyzers/best-practices/types.js +0 -7
  114. package/dist/analyzers/best-practices/types.js.map +0 -1
  115. package/dist/analyzers/cache/analysis-cache.d.ts +0 -41
  116. package/dist/analyzers/cache/analysis-cache.js +0 -84
  117. package/dist/analyzers/cache/analysis-cache.js.map +0 -1
  118. package/dist/analyzers/code-smells/base-smell-detector.d.ts +0 -30
  119. package/dist/analyzers/code-smells/base-smell-detector.js +0 -44
  120. package/dist/analyzers/code-smells/base-smell-detector.js.map +0 -1
  121. package/dist/analyzers/code-smells/code-smell-analyzer.d.ts +0 -30
  122. package/dist/analyzers/code-smells/code-smell-analyzer.js +0 -167
  123. package/dist/analyzers/code-smells/code-smell-analyzer.js.map +0 -1
  124. package/dist/analyzers/code-smells/detectors/data-clumps-detector.d.ts +0 -11
  125. package/dist/analyzers/code-smells/detectors/data-clumps-detector.js +0 -64
  126. package/dist/analyzers/code-smells/detectors/data-clumps-detector.js.map +0 -1
  127. package/dist/analyzers/code-smells/detectors/dead-code-detector.d.ts +0 -11
  128. package/dist/analyzers/code-smells/detectors/dead-code-detector.js +0 -58
  129. package/dist/analyzers/code-smells/detectors/dead-code-detector.js.map +0 -1
  130. package/dist/analyzers/code-smells/detectors/duplicate-code-detector.d.ts +0 -11
  131. package/dist/analyzers/code-smells/detectors/duplicate-code-detector.js +0 -69
  132. package/dist/analyzers/code-smells/detectors/duplicate-code-detector.js.map +0 -1
  133. package/dist/analyzers/code-smells/detectors/feature-envy-detector.d.ts +0 -11
  134. package/dist/analyzers/code-smells/detectors/feature-envy-detector.js +0 -70
  135. package/dist/analyzers/code-smells/detectors/feature-envy-detector.js.map +0 -1
  136. package/dist/analyzers/code-smells/detectors/inappropriate-intimacy-detector.d.ts +0 -11
  137. package/dist/analyzers/code-smells/detectors/inappropriate-intimacy-detector.js +0 -59
  138. package/dist/analyzers/code-smells/detectors/inappropriate-intimacy-detector.js.map +0 -1
  139. package/dist/analyzers/code-smells/detectors/large-class-detector.d.ts +0 -13
  140. package/dist/analyzers/code-smells/detectors/large-class-detector.js +0 -61
  141. package/dist/analyzers/code-smells/detectors/large-class-detector.js.map +0 -1
  142. package/dist/analyzers/code-smells/detectors/long-method-detector.d.ts +0 -12
  143. package/dist/analyzers/code-smells/detectors/long-method-detector.js +0 -55
  144. package/dist/analyzers/code-smells/detectors/long-method-detector.js.map +0 -1
  145. package/dist/analyzers/code-smells/detectors/long-parameter-list-detector.d.ts +0 -12
  146. package/dist/analyzers/code-smells/detectors/long-parameter-list-detector.js +0 -53
  147. package/dist/analyzers/code-smells/detectors/long-parameter-list-detector.js.map +0 -1
  148. package/dist/analyzers/code-smells/detectors/magic-numbers-detector.d.ts +0 -12
  149. package/dist/analyzers/code-smells/detectors/magic-numbers-detector.js +0 -56
  150. package/dist/analyzers/code-smells/detectors/magic-numbers-detector.js.map +0 -1
  151. package/dist/analyzers/code-smells/detectors/nested-conditionals-detector.d.ts +0 -13
  152. package/dist/analyzers/code-smells/detectors/nested-conditionals-detector.js +0 -77
  153. package/dist/analyzers/code-smells/detectors/nested-conditionals-detector.js.map +0 -1
  154. package/dist/analyzers/code-smells/index.d.ts +0 -16
  155. package/dist/analyzers/code-smells/index.js +0 -19
  156. package/dist/analyzers/code-smells/index.js.map +0 -1
  157. package/dist/analyzers/code-smells/types.d.ts +0 -82
  158. package/dist/analyzers/code-smells/types.js +0 -30
  159. package/dist/analyzers/code-smells/types.js.map +0 -1
  160. package/dist/analyzers/dependency/circular-detector.d.ts +0 -17
  161. package/dist/analyzers/dependency/circular-detector.js +0 -73
  162. package/dist/analyzers/dependency/circular-detector.js.map +0 -1
  163. package/dist/analyzers/dependency/coupling-calculator.d.ts +0 -24
  164. package/dist/analyzers/dependency/coupling-calculator.js +0 -86
  165. package/dist/analyzers/dependency/coupling-calculator.js.map +0 -1
  166. package/dist/analyzers/dependency/dependency-analyzer.d.ts +0 -44
  167. package/dist/analyzers/dependency/dependency-analyzer.js +0 -218
  168. package/dist/analyzers/dependency/dependency-analyzer.js.map +0 -1
  169. package/dist/analyzers/dependency/dependency-graph.d.ts +0 -57
  170. package/dist/analyzers/dependency/dependency-graph.js +0 -198
  171. package/dist/analyzers/dependency/dependency-graph.js.map +0 -1
  172. package/dist/analyzers/dependency/index.d.ts +0 -8
  173. package/dist/analyzers/dependency/index.js +0 -8
  174. package/dist/analyzers/dependency/index.js.map +0 -1
  175. package/dist/analyzers/dependency/types.d.ts +0 -105
  176. package/dist/analyzers/dependency/types.js +0 -5
  177. package/dist/analyzers/dependency/types.js.map +0 -1
  178. package/dist/analyzers/errors.d.ts +0 -51
  179. package/dist/analyzers/errors.js +0 -79
  180. package/dist/analyzers/errors.js.map +0 -1
  181. package/dist/analyzers/git/churn-calculator.d.ts +0 -36
  182. package/dist/analyzers/git/churn-calculator.js +0 -257
  183. package/dist/analyzers/git/churn-calculator.js.map +0 -1
  184. package/dist/analyzers/git/git-analyzer.d.ts +0 -19
  185. package/dist/analyzers/git/git-analyzer.js +0 -79
  186. package/dist/analyzers/git/git-analyzer.js.map +0 -1
  187. package/dist/analyzers/git/hotspot-detector.d.ts +0 -34
  188. package/dist/analyzers/git/hotspot-detector.js +0 -173
  189. package/dist/analyzers/git/hotspot-detector.js.map +0 -1
  190. package/dist/analyzers/git/index.d.ts +0 -7
  191. package/dist/analyzers/git/index.js +0 -7
  192. package/dist/analyzers/git/index.js.map +0 -1
  193. package/dist/analyzers/git/types.d.ts +0 -88
  194. package/dist/analyzers/git/types.js +0 -5
  195. package/dist/analyzers/git/types.js.map +0 -1
  196. package/dist/analyzers/metrics/halstead-calculator.d.ts +0 -30
  197. package/dist/analyzers/metrics/halstead-calculator.js +0 -150
  198. package/dist/analyzers/metrics/halstead-calculator.js.map +0 -1
  199. package/dist/analyzers/metrics/index.d.ts +0 -9
  200. package/dist/analyzers/metrics/index.js +0 -9
  201. package/dist/analyzers/metrics/index.js.map +0 -1
  202. package/dist/analyzers/metrics/maintainability-calculator.d.ts +0 -17
  203. package/dist/analyzers/metrics/maintainability-calculator.js +0 -46
  204. package/dist/analyzers/metrics/maintainability-calculator.js.map +0 -1
  205. package/dist/analyzers/metrics/metrics-analyzer.d.ts +0 -32
  206. package/dist/analyzers/metrics/metrics-analyzer.js +0 -144
  207. package/dist/analyzers/metrics/metrics-analyzer.js.map +0 -1
  208. package/dist/analyzers/metrics/types.d.ts +0 -67
  209. package/dist/analyzers/metrics/types.js +0 -5
  210. package/dist/analyzers/metrics/types.js.map +0 -1
  211. package/dist/analyzers/security/base-detector.d.ts +0 -58
  212. package/dist/analyzers/security/base-detector.js +0 -104
  213. package/dist/analyzers/security/base-detector.js.map +0 -1
  214. package/dist/analyzers/security/detectors/command-injection-detector.d.ts +0 -12
  215. package/dist/analyzers/security/detectors/command-injection-detector.js +0 -84
  216. package/dist/analyzers/security/detectors/command-injection-detector.js.map +0 -1
  217. package/dist/analyzers/security/detectors/hardcoded-secrets-detector.d.ts +0 -16
  218. package/dist/analyzers/security/detectors/hardcoded-secrets-detector.js +0 -140
  219. package/dist/analyzers/security/detectors/hardcoded-secrets-detector.js.map +0 -1
  220. package/dist/analyzers/security/detectors/insecure-deserialization-detector.d.ts +0 -12
  221. package/dist/analyzers/security/detectors/insecure-deserialization-detector.js +0 -109
  222. package/dist/analyzers/security/detectors/insecure-deserialization-detector.js.map +0 -1
  223. package/dist/analyzers/security/detectors/insecure-random-detector.d.ts +0 -12
  224. package/dist/analyzers/security/detectors/insecure-random-detector.js +0 -61
  225. package/dist/analyzers/security/detectors/insecure-random-detector.js.map +0 -1
  226. package/dist/analyzers/security/detectors/path-traversal-detector.d.ts +0 -12
  227. package/dist/analyzers/security/detectors/path-traversal-detector.js +0 -82
  228. package/dist/analyzers/security/detectors/path-traversal-detector.js.map +0 -1
  229. package/dist/analyzers/security/detectors/sql-injection-detector.d.ts +0 -12
  230. package/dist/analyzers/security/detectors/sql-injection-detector.js +0 -88
  231. package/dist/analyzers/security/detectors/sql-injection-detector.js.map +0 -1
  232. package/dist/analyzers/security/detectors/weak-crypto-detector.d.ts +0 -12
  233. package/dist/analyzers/security/detectors/weak-crypto-detector.js +0 -104
  234. package/dist/analyzers/security/detectors/weak-crypto-detector.js.map +0 -1
  235. package/dist/analyzers/security/detectors/xss-detector.d.ts +0 -12
  236. package/dist/analyzers/security/detectors/xss-detector.js +0 -90
  237. package/dist/analyzers/security/detectors/xss-detector.js.map +0 -1
  238. package/dist/analyzers/security/index.d.ts +0 -16
  239. package/dist/analyzers/security/index.js +0 -18
  240. package/dist/analyzers/security/index.js.map +0 -1
  241. package/dist/analyzers/security/security-analyzer.d.ts +0 -38
  242. package/dist/analyzers/security/security-analyzer.js +0 -215
  243. package/dist/analyzers/security/security-analyzer.js.map +0 -1
  244. package/dist/analyzers/security/types.d.ts +0 -95
  245. package/dist/analyzers/security/types.js +0 -7
  246. package/dist/analyzers/security/types.js.map +0 -1
  247. package/dist/tools/analysis-tools/architecture-tool.d.ts +0 -46
  248. package/dist/tools/analysis-tools/architecture-tool.js +0 -124
  249. package/dist/tools/analysis-tools/architecture-tool.js.map +0 -1
  250. package/dist/tools/analysis-tools/validation-tool.d.ts +0 -51
  251. package/dist/tools/analysis-tools/validation-tool.js +0 -121
  252. package/dist/tools/analysis-tools/validation-tool.js.map +0 -1
  253. package/dist/tools/analysis-tools.d.ts +0 -73
  254. package/dist/tools/analysis-tools.js +0 -422
  255. package/dist/tools/analysis-tools.js.map +0 -1
  256. package/dist/types/analysis.d.ts +0 -177
  257. package/dist/types/analysis.js +0 -8
  258. package/dist/types/analysis.js.map +0 -1
  259. package/dist/utils/analysis-logger.d.ts +0 -50
  260. package/dist/utils/analysis-logger.js +0 -73
  261. 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":"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"}
@@ -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
- }