@grafema/core 0.1.0-alpha.5 → 0.1.1-alpha

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 (391) hide show
  1. package/README.md +0 -1
  2. package/dist/Orchestrator.d.ts +24 -2
  3. package/dist/Orchestrator.d.ts.map +1 -1
  4. package/dist/Orchestrator.js +197 -24
  5. package/dist/config/ConfigLoader.d.ts +72 -0
  6. package/dist/config/ConfigLoader.d.ts.map +1 -0
  7. package/dist/config/ConfigLoader.js +187 -0
  8. package/dist/config/index.d.ts +6 -0
  9. package/dist/config/index.d.ts.map +1 -0
  10. package/dist/config/index.js +4 -0
  11. package/dist/core/ASTWorker.d.ts +11 -36
  12. package/dist/core/ASTWorker.d.ts.map +1 -1
  13. package/dist/core/ASTWorker.js +93 -99
  14. package/dist/core/CoverageAnalyzer.d.ts +65 -0
  15. package/dist/core/CoverageAnalyzer.d.ts.map +1 -0
  16. package/dist/core/CoverageAnalyzer.js +198 -0
  17. package/dist/core/FileNodeManager.d.ts +40 -0
  18. package/dist/core/FileNodeManager.d.ts.map +1 -0
  19. package/dist/core/FileNodeManager.js +84 -0
  20. package/dist/core/GraphFreshnessChecker.d.ts +33 -0
  21. package/dist/core/GraphFreshnessChecker.d.ts.map +1 -0
  22. package/dist/core/GraphFreshnessChecker.js +101 -0
  23. package/dist/core/HashUtils.d.ts +24 -0
  24. package/dist/core/HashUtils.d.ts.map +1 -0
  25. package/dist/core/HashUtils.js +45 -0
  26. package/dist/core/IncrementalReanalyzer.d.ts +36 -0
  27. package/dist/core/IncrementalReanalyzer.d.ts.map +1 -0
  28. package/dist/core/IncrementalReanalyzer.js +132 -0
  29. package/dist/core/NodeFactory.d.ts +225 -17
  30. package/dist/core/NodeFactory.d.ts.map +1 -1
  31. package/dist/core/NodeFactory.js +208 -18
  32. package/dist/core/ScopeTracker.d.ts +84 -0
  33. package/dist/core/ScopeTracker.d.ts.map +1 -0
  34. package/dist/core/ScopeTracker.js +116 -0
  35. package/dist/core/SemanticId.d.ts +90 -0
  36. package/dist/core/SemanticId.d.ts.map +1 -0
  37. package/dist/core/SemanticId.js +115 -0
  38. package/dist/core/VersionManager.d.ts.map +1 -1
  39. package/dist/core/VersionManager.js +3 -2
  40. package/dist/core/nodes/ArgumentExpressionNode.d.ts +43 -0
  41. package/dist/core/nodes/ArgumentExpressionNode.d.ts.map +1 -0
  42. package/dist/core/nodes/ArgumentExpressionNode.js +60 -0
  43. package/dist/core/nodes/ArrayLiteralNode.d.ts +27 -0
  44. package/dist/core/nodes/ArrayLiteralNode.d.ts.map +1 -0
  45. package/dist/core/nodes/ArrayLiteralNode.js +41 -0
  46. package/dist/core/nodes/CallSiteNode.d.ts +28 -0
  47. package/dist/core/nodes/CallSiteNode.d.ts.map +1 -1
  48. package/dist/core/nodes/CallSiteNode.js +46 -0
  49. package/dist/core/nodes/ClassNode.d.ts +33 -1
  50. package/dist/core/nodes/ClassNode.d.ts.map +1 -1
  51. package/dist/core/nodes/ClassNode.js +46 -2
  52. package/dist/core/nodes/DecoratorNode.d.ts +42 -0
  53. package/dist/core/nodes/DecoratorNode.d.ts.map +1 -0
  54. package/dist/core/nodes/DecoratorNode.js +62 -0
  55. package/dist/core/nodes/EnumNode.d.ts +42 -0
  56. package/dist/core/nodes/EnumNode.d.ts.map +1 -0
  57. package/dist/core/nodes/EnumNode.js +54 -0
  58. package/dist/core/nodes/ExportNode.d.ts +37 -1
  59. package/dist/core/nodes/ExportNode.d.ts.map +1 -1
  60. package/dist/core/nodes/ExportNode.js +48 -2
  61. package/dist/core/nodes/ExpressionNode.d.ts +97 -0
  62. package/dist/core/nodes/ExpressionNode.d.ts.map +1 -0
  63. package/dist/core/nodes/ExpressionNode.js +178 -0
  64. package/dist/core/nodes/ExternalModuleNode.d.ts +28 -0
  65. package/dist/core/nodes/ExternalModuleNode.d.ts.map +1 -0
  66. package/dist/core/nodes/ExternalModuleNode.js +41 -0
  67. package/dist/core/nodes/ExternalStdioNode.d.ts +13 -6
  68. package/dist/core/nodes/ExternalStdioNode.d.ts.map +1 -1
  69. package/dist/core/nodes/ExternalStdioNode.js +15 -8
  70. package/dist/core/nodes/FunctionNode.d.ts +36 -0
  71. package/dist/core/nodes/FunctionNode.d.ts.map +1 -1
  72. package/dist/core/nodes/FunctionNode.js +80 -1
  73. package/dist/core/nodes/ImportNode.d.ts +19 -5
  74. package/dist/core/nodes/ImportNode.d.ts.map +1 -1
  75. package/dist/core/nodes/ImportNode.js +23 -5
  76. package/dist/core/nodes/InterfaceNode.d.ts +46 -0
  77. package/dist/core/nodes/InterfaceNode.d.ts.map +1 -0
  78. package/dist/core/nodes/InterfaceNode.js +55 -0
  79. package/dist/core/nodes/IssueNode.d.ts +73 -0
  80. package/dist/core/nodes/IssueNode.d.ts.map +1 -0
  81. package/dist/core/nodes/IssueNode.js +129 -0
  82. package/dist/core/nodes/MethodCallNode.d.ts +30 -0
  83. package/dist/core/nodes/MethodCallNode.d.ts.map +1 -1
  84. package/dist/core/nodes/MethodCallNode.js +49 -0
  85. package/dist/core/nodes/MethodNode.d.ts +32 -0
  86. package/dist/core/nodes/MethodNode.d.ts.map +1 -1
  87. package/dist/core/nodes/MethodNode.js +48 -0
  88. package/dist/core/nodes/ModuleNode.d.ts +31 -0
  89. package/dist/core/nodes/ModuleNode.d.ts.map +1 -1
  90. package/dist/core/nodes/ModuleNode.js +37 -0
  91. package/dist/core/nodes/NetworkRequestNode.d.ts +54 -0
  92. package/dist/core/nodes/NetworkRequestNode.d.ts.map +1 -0
  93. package/dist/core/nodes/NetworkRequestNode.js +65 -0
  94. package/dist/core/nodes/ObjectLiteralNode.d.ts +27 -0
  95. package/dist/core/nodes/ObjectLiteralNode.d.ts.map +1 -0
  96. package/dist/core/nodes/ObjectLiteralNode.js +41 -0
  97. package/dist/core/nodes/ScopeNode.d.ts +31 -0
  98. package/dist/core/nodes/ScopeNode.d.ts.map +1 -1
  99. package/dist/core/nodes/ScopeNode.js +49 -0
  100. package/dist/core/nodes/TypeNode.d.ts +36 -0
  101. package/dist/core/nodes/TypeNode.d.ts.map +1 -0
  102. package/dist/core/nodes/TypeNode.js +53 -0
  103. package/dist/core/nodes/VariableDeclarationNode.d.ts +27 -0
  104. package/dist/core/nodes/VariableDeclarationNode.d.ts.map +1 -1
  105. package/dist/core/nodes/VariableDeclarationNode.js +40 -0
  106. package/dist/core/nodes/index.d.ts +12 -1
  107. package/dist/core/nodes/index.d.ts.map +1 -1
  108. package/dist/core/nodes/index.js +14 -0
  109. package/dist/diagnostics/DiagnosticCollector.d.ts +98 -0
  110. package/dist/diagnostics/DiagnosticCollector.d.ts.map +1 -0
  111. package/dist/diagnostics/DiagnosticCollector.js +129 -0
  112. package/dist/diagnostics/DiagnosticReporter.d.ts +77 -0
  113. package/dist/diagnostics/DiagnosticReporter.d.ts.map +1 -0
  114. package/dist/diagnostics/DiagnosticReporter.js +159 -0
  115. package/dist/diagnostics/DiagnosticWriter.d.ts +31 -0
  116. package/dist/diagnostics/DiagnosticWriter.d.ts.map +1 -0
  117. package/dist/diagnostics/DiagnosticWriter.js +43 -0
  118. package/dist/diagnostics/index.d.ts +14 -0
  119. package/dist/diagnostics/index.d.ts.map +1 -0
  120. package/dist/diagnostics/index.js +11 -0
  121. package/dist/errors/GrafemaError.d.ts +118 -0
  122. package/dist/errors/GrafemaError.d.ts.map +1 -0
  123. package/dist/errors/GrafemaError.js +131 -0
  124. package/dist/index.d.ts +57 -1
  125. package/dist/index.d.ts.map +1 -1
  126. package/dist/index.js +54 -1
  127. package/dist/logging/Logger.d.ts +48 -0
  128. package/dist/logging/Logger.d.ts.map +1 -0
  129. package/dist/logging/Logger.js +134 -0
  130. package/dist/plugins/Plugin.d.ts +5 -1
  131. package/dist/plugins/Plugin.d.ts.map +1 -1
  132. package/dist/plugins/Plugin.js +33 -0
  133. package/dist/plugins/analysis/DatabaseAnalyzer.d.ts.map +1 -1
  134. package/dist/plugins/analysis/DatabaseAnalyzer.js +13 -6
  135. package/dist/plugins/analysis/ExpressAnalyzer.d.ts.map +1 -1
  136. package/dist/plugins/analysis/ExpressAnalyzer.js +27 -19
  137. package/dist/plugins/analysis/ExpressRouteAnalyzer.d.ts.map +1 -1
  138. package/dist/plugins/analysis/ExpressRouteAnalyzer.js +21 -14
  139. package/dist/plugins/analysis/FetchAnalyzer.d.ts +1 -0
  140. package/dist/plugins/analysis/FetchAnalyzer.d.ts.map +1 -1
  141. package/dist/plugins/analysis/FetchAnalyzer.js +34 -14
  142. package/dist/plugins/analysis/IncrementalAnalysisPlugin.d.ts +6 -3
  143. package/dist/plugins/analysis/IncrementalAnalysisPlugin.d.ts.map +1 -1
  144. package/dist/plugins/analysis/IncrementalAnalysisPlugin.js +76 -80
  145. package/dist/plugins/analysis/JSASTAnalyzer.d.ts +180 -17
  146. package/dist/plugins/analysis/JSASTAnalyzer.d.ts.map +1 -1
  147. package/dist/plugins/analysis/JSASTAnalyzer.js +1171 -471
  148. package/dist/plugins/analysis/ReactAnalyzer.d.ts.map +1 -1
  149. package/dist/plugins/analysis/ReactAnalyzer.js +56 -57
  150. package/dist/plugins/analysis/RustAnalyzer.d.ts.map +1 -1
  151. package/dist/plugins/analysis/RustAnalyzer.js +15 -10
  152. package/dist/plugins/analysis/SQLiteAnalyzer.d.ts.map +1 -1
  153. package/dist/plugins/analysis/SQLiteAnalyzer.js +9 -7
  154. package/dist/plugins/analysis/ServiceLayerAnalyzer.d.ts.map +1 -1
  155. package/dist/plugins/analysis/ServiceLayerAnalyzer.js +21 -9
  156. package/dist/plugins/analysis/SocketIOAnalyzer.d.ts.map +1 -1
  157. package/dist/plugins/analysis/SocketIOAnalyzer.js +27 -15
  158. package/dist/plugins/analysis/SystemDbAnalyzer.d.ts.map +1 -1
  159. package/dist/plugins/analysis/SystemDbAnalyzer.js +15 -5
  160. package/dist/plugins/analysis/ast/GraphBuilder.d.ts +34 -4
  161. package/dist/plugins/analysis/ast/GraphBuilder.d.ts.map +1 -1
  162. package/dist/plugins/analysis/ast/GraphBuilder.js +318 -298
  163. package/dist/plugins/analysis/ast/IdGenerator.d.ts +105 -0
  164. package/dist/plugins/analysis/ast/IdGenerator.d.ts.map +1 -0
  165. package/dist/plugins/analysis/ast/IdGenerator.js +116 -0
  166. package/dist/plugins/analysis/ast/types.d.ts +176 -5
  167. package/dist/plugins/analysis/ast/types.d.ts.map +1 -1
  168. package/dist/plugins/analysis/ast/utils/createParameterNodes.d.ts +33 -0
  169. package/dist/plugins/analysis/ast/utils/createParameterNodes.d.ts.map +1 -0
  170. package/dist/plugins/analysis/ast/utils/createParameterNodes.js +89 -0
  171. package/dist/plugins/analysis/ast/utils/index.d.ts +6 -0
  172. package/dist/plugins/analysis/ast/utils/index.d.ts.map +1 -0
  173. package/dist/plugins/analysis/ast/utils/index.js +5 -0
  174. package/dist/plugins/analysis/ast/utils/location.d.ts +87 -0
  175. package/dist/plugins/analysis/ast/utils/location.d.ts.map +1 -0
  176. package/dist/plugins/analysis/ast/utils/location.js +78 -0
  177. package/dist/plugins/analysis/ast/visitors/ASTVisitor.d.ts +9 -4
  178. package/dist/plugins/analysis/ast/visitors/ASTVisitor.d.ts.map +1 -1
  179. package/dist/plugins/analysis/ast/visitors/ASTVisitor.js +6 -5
  180. package/dist/plugins/analysis/ast/visitors/CallExpressionVisitor.d.ts +99 -9
  181. package/dist/plugins/analysis/ast/visitors/CallExpressionVisitor.d.ts.map +1 -1
  182. package/dist/plugins/analysis/ast/visitors/CallExpressionVisitor.js +663 -125
  183. package/dist/plugins/analysis/ast/visitors/ClassVisitor.d.ts +4 -1
  184. package/dist/plugins/analysis/ast/visitors/ClassVisitor.d.ts.map +1 -1
  185. package/dist/plugins/analysis/ast/visitors/ClassVisitor.js +72 -32
  186. package/dist/plugins/analysis/ast/visitors/FunctionVisitor.d.ts +4 -1
  187. package/dist/plugins/analysis/ast/visitors/FunctionVisitor.d.ts.map +1 -1
  188. package/dist/plugins/analysis/ast/visitors/FunctionVisitor.js +128 -63
  189. package/dist/plugins/analysis/ast/visitors/ImportExportVisitor.d.ts.map +1 -1
  190. package/dist/plugins/analysis/ast/visitors/ImportExportVisitor.js +11 -8
  191. package/dist/plugins/analysis/ast/visitors/TypeScriptVisitor.d.ts +12 -1
  192. package/dist/plugins/analysis/ast/visitors/TypeScriptVisitor.d.ts.map +1 -1
  193. package/dist/plugins/analysis/ast/visitors/TypeScriptVisitor.js +36 -14
  194. package/dist/plugins/analysis/ast/visitors/VariableVisitor.d.ts +4 -1
  195. package/dist/plugins/analysis/ast/visitors/VariableVisitor.d.ts.map +1 -1
  196. package/dist/plugins/analysis/ast/visitors/VariableVisitor.js +17 -13
  197. package/dist/plugins/discovery/MonorepoServiceDiscovery.d.ts.map +1 -1
  198. package/dist/plugins/discovery/MonorepoServiceDiscovery.js +3 -2
  199. package/dist/plugins/discovery/SimpleProjectDiscovery.d.ts.map +1 -1
  200. package/dist/plugins/discovery/SimpleProjectDiscovery.js +5 -1
  201. package/dist/plugins/discovery/WorkspaceDiscovery.d.ts +22 -0
  202. package/dist/plugins/discovery/WorkspaceDiscovery.d.ts.map +1 -0
  203. package/dist/plugins/discovery/WorkspaceDiscovery.js +136 -0
  204. package/dist/plugins/discovery/resolveSourceEntrypoint.d.ts +46 -0
  205. package/dist/plugins/discovery/resolveSourceEntrypoint.d.ts.map +1 -0
  206. package/dist/plugins/discovery/resolveSourceEntrypoint.js +86 -0
  207. package/dist/plugins/discovery/workspaces/detector.d.ts +21 -0
  208. package/dist/plugins/discovery/workspaces/detector.d.ts.map +1 -0
  209. package/dist/plugins/discovery/workspaces/detector.js +49 -0
  210. package/dist/plugins/discovery/workspaces/globResolver.d.ts +35 -0
  211. package/dist/plugins/discovery/workspaces/globResolver.d.ts.map +1 -0
  212. package/dist/plugins/discovery/workspaces/globResolver.js +184 -0
  213. package/dist/plugins/discovery/workspaces/index.d.ts +9 -0
  214. package/dist/plugins/discovery/workspaces/index.d.ts.map +1 -0
  215. package/dist/plugins/discovery/workspaces/index.js +8 -0
  216. package/dist/plugins/discovery/workspaces/parsers.d.ts +38 -0
  217. package/dist/plugins/discovery/workspaces/parsers.d.ts.map +1 -0
  218. package/dist/plugins/discovery/workspaces/parsers.js +80 -0
  219. package/dist/plugins/enrichment/AliasTracker.d.ts.map +1 -1
  220. package/dist/plugins/enrichment/AliasTracker.js +14 -8
  221. package/dist/plugins/enrichment/HTTPConnectionEnricher.d.ts.map +1 -1
  222. package/dist/plugins/enrichment/HTTPConnectionEnricher.js +14 -7
  223. package/dist/plugins/enrichment/ImportExportLinker.d.ts.map +1 -1
  224. package/dist/plugins/enrichment/ImportExportLinker.js +23 -6
  225. package/dist/plugins/enrichment/MethodCallResolver.d.ts.map +1 -1
  226. package/dist/plugins/enrichment/MethodCallResolver.js +18 -12
  227. package/dist/plugins/enrichment/MountPointResolver.d.ts.map +1 -1
  228. package/dist/plugins/enrichment/MountPointResolver.js +8 -3
  229. package/dist/plugins/enrichment/PrefixEvaluator.d.ts.map +1 -1
  230. package/dist/plugins/enrichment/PrefixEvaluator.js +16 -7
  231. package/dist/plugins/enrichment/RustFFIEnricher.d.ts.map +1 -1
  232. package/dist/plugins/enrichment/RustFFIEnricher.js +6 -5
  233. package/dist/plugins/enrichment/ValueDomainAnalyzer.d.ts +17 -0
  234. package/dist/plugins/enrichment/ValueDomainAnalyzer.d.ts.map +1 -1
  235. package/dist/plugins/enrichment/ValueDomainAnalyzer.js +129 -10
  236. package/dist/plugins/indexing/IncrementalModuleIndexer.d.ts.map +1 -1
  237. package/dist/plugins/indexing/IncrementalModuleIndexer.js +23 -14
  238. package/dist/plugins/indexing/JSModuleIndexer.d.ts.map +1 -1
  239. package/dist/plugins/indexing/JSModuleIndexer.js +63 -31
  240. package/dist/plugins/indexing/RustModuleIndexer.d.ts.map +1 -1
  241. package/dist/plugins/indexing/RustModuleIndexer.js +5 -4
  242. package/dist/plugins/indexing/ServiceDetector.d.ts +10 -0
  243. package/dist/plugins/indexing/ServiceDetector.d.ts.map +1 -1
  244. package/dist/plugins/indexing/ServiceDetector.js +28 -15
  245. package/dist/plugins/validation/CallResolverValidator.d.ts.map +1 -1
  246. package/dist/plugins/validation/CallResolverValidator.js +8 -7
  247. package/dist/plugins/validation/DataFlowValidator.d.ts.map +1 -1
  248. package/dist/plugins/validation/DataFlowValidator.js +17 -12
  249. package/dist/plugins/validation/EvalBanValidator.d.ts.map +1 -1
  250. package/dist/plugins/validation/EvalBanValidator.js +17 -16
  251. package/dist/plugins/validation/GraphConnectivityValidator.d.ts.map +1 -1
  252. package/dist/plugins/validation/GraphConnectivityValidator.js +19 -23
  253. package/dist/plugins/validation/NodeCreationValidator.d.ts +85 -0
  254. package/dist/plugins/validation/NodeCreationValidator.d.ts.map +1 -0
  255. package/dist/plugins/validation/NodeCreationValidator.js +415 -0
  256. package/dist/plugins/validation/SQLInjectionValidator.d.ts.map +1 -1
  257. package/dist/plugins/validation/SQLInjectionValidator.js +59 -16
  258. package/dist/plugins/validation/ShadowingDetector.d.ts.map +1 -1
  259. package/dist/plugins/validation/ShadowingDetector.js +6 -5
  260. package/dist/plugins/validation/TypeScriptDeadCodeValidator.d.ts.map +1 -1
  261. package/dist/plugins/validation/TypeScriptDeadCodeValidator.js +12 -11
  262. package/dist/plugins/vcs/GitPlugin.d.ts.map +1 -1
  263. package/dist/plugins/vcs/GitPlugin.js +10 -12
  264. package/dist/plugins/vcs/VCSPlugin.d.ts +3 -2
  265. package/dist/plugins/vcs/VCSPlugin.d.ts.map +1 -1
  266. package/dist/plugins/vcs/VCSPlugin.js +5 -5
  267. package/dist/storage/backends/RFDBServerBackend.d.ts +10 -17
  268. package/dist/storage/backends/RFDBServerBackend.d.ts.map +1 -1
  269. package/dist/storage/backends/RFDBServerBackend.js +31 -10
  270. package/dist/validation/PathValidator.d.ts +1 -2
  271. package/dist/validation/PathValidator.d.ts.map +1 -1
  272. package/package.json +3 -3
  273. package/src/Orchestrator.ts +237 -24
  274. package/src/config/ConfigLoader.ts +263 -0
  275. package/src/config/index.ts +5 -0
  276. package/src/core/ASTWorker.ts +143 -139
  277. package/src/core/CoverageAnalyzer.ts +243 -0
  278. package/src/core/FileNodeManager.ts +100 -0
  279. package/src/core/GraphFreshnessChecker.ts +143 -0
  280. package/src/core/HashUtils.ts +48 -0
  281. package/src/core/IncrementalReanalyzer.ts +192 -0
  282. package/src/core/NodeFactory.ts +401 -18
  283. package/src/core/ScopeTracker.ts +154 -0
  284. package/src/core/SemanticId.ts +192 -0
  285. package/src/core/VersionManager.ts +3 -2
  286. package/src/core/nodes/ArgumentExpressionNode.ts +89 -0
  287. package/src/core/nodes/ArrayLiteralNode.ts +65 -0
  288. package/src/core/nodes/CallSiteNode.ts +58 -0
  289. package/src/core/nodes/ClassNode.ts +63 -2
  290. package/src/core/nodes/DecoratorNode.ts +91 -0
  291. package/src/core/nodes/EnumNode.ts +86 -0
  292. package/src/core/nodes/ExportNode.ts +70 -2
  293. package/src/core/nodes/ExpressionNode.ts +231 -0
  294. package/src/core/nodes/ExternalModuleNode.ts +56 -0
  295. package/src/core/nodes/ExternalStdioNode.ts +17 -9
  296. package/src/core/nodes/FunctionNode.ts +101 -1
  297. package/src/core/nodes/ImportNode.ts +32 -10
  298. package/src/core/nodes/InterfaceNode.ts +91 -0
  299. package/src/core/nodes/IssueNode.ts +177 -0
  300. package/src/core/nodes/MethodCallNode.ts +64 -0
  301. package/src/core/nodes/MethodNode.ts +63 -0
  302. package/src/core/nodes/ModuleNode.ts +50 -0
  303. package/src/core/nodes/NetworkRequestNode.ts +77 -0
  304. package/src/core/nodes/ObjectLiteralNode.ts +65 -0
  305. package/src/core/nodes/ScopeNode.ts +65 -0
  306. package/src/core/nodes/TypeNode.ts +78 -0
  307. package/src/core/nodes/VariableDeclarationNode.ts +52 -0
  308. package/src/core/nodes/index.ts +18 -1
  309. package/src/diagnostics/DiagnosticCollector.ts +163 -0
  310. package/src/diagnostics/DiagnosticReporter.ts +204 -0
  311. package/src/diagnostics/DiagnosticWriter.ts +50 -0
  312. package/src/diagnostics/index.ts +16 -0
  313. package/src/errors/GrafemaError.ts +174 -0
  314. package/src/index.ts +148 -1
  315. package/src/logging/Logger.ts +152 -0
  316. package/src/plugins/Plugin.ts +42 -0
  317. package/src/plugins/analysis/DatabaseAnalyzer.ts +14 -8
  318. package/src/plugins/analysis/ExpressAnalyzer.ts +29 -19
  319. package/src/plugins/analysis/ExpressRouteAnalyzer.ts +22 -21
  320. package/src/plugins/analysis/FetchAnalyzer.ts +39 -16
  321. package/src/plugins/analysis/IncrementalAnalysisPlugin.ts +84 -101
  322. package/src/plugins/analysis/JSASTAnalyzer.ts +1483 -503
  323. package/src/plugins/analysis/ReactAnalyzer.ts +57 -57
  324. package/src/plugins/analysis/RustAnalyzer.ts +15 -10
  325. package/src/plugins/analysis/SQLiteAnalyzer.ts +10 -7
  326. package/src/plugins/analysis/ServiceLayerAnalyzer.ts +22 -16
  327. package/src/plugins/analysis/SocketIOAnalyzer.ts +31 -22
  328. package/src/plugins/analysis/SystemDbAnalyzer.ts +16 -11
  329. package/src/plugins/analysis/ast/GraphBuilder.ts +439 -327
  330. package/src/plugins/analysis/ast/IdGenerator.ts +177 -0
  331. package/src/plugins/analysis/ast/types.ts +209 -6
  332. package/src/plugins/analysis/ast/utils/createParameterNodes.ts +104 -0
  333. package/src/plugins/analysis/ast/utils/index.ts +12 -0
  334. package/src/plugins/analysis/ast/utils/location.ts +103 -0
  335. package/src/plugins/analysis/ast/visitors/ASTVisitor.ts +11 -8
  336. package/src/plugins/analysis/ast/visitors/CallExpressionVisitor.ts +909 -83
  337. package/src/plugins/analysis/ast/visitors/ClassVisitor.ts +97 -44
  338. package/src/plugins/analysis/ast/visitors/FunctionVisitor.ts +159 -93
  339. package/src/plugins/analysis/ast/visitors/ImportExportVisitor.ts +12 -8
  340. package/src/plugins/analysis/ast/visitors/TypeScriptVisitor.ts +41 -14
  341. package/src/plugins/analysis/ast/visitors/VariableVisitor.ts +37 -17
  342. package/src/plugins/discovery/MonorepoServiceDiscovery.ts +3 -2
  343. package/src/plugins/discovery/SimpleProjectDiscovery.ts +6 -1
  344. package/src/plugins/discovery/WorkspaceDiscovery.ts +177 -0
  345. package/src/plugins/discovery/resolveSourceEntrypoint.ts +103 -0
  346. package/src/plugins/discovery/workspaces/detector.ts +63 -0
  347. package/src/plugins/discovery/workspaces/globResolver.ts +229 -0
  348. package/src/plugins/discovery/workspaces/index.ts +23 -0
  349. package/src/plugins/discovery/workspaces/parsers.ts +99 -0
  350. package/src/plugins/enrichment/AliasTracker.ts +14 -8
  351. package/src/plugins/enrichment/HTTPConnectionEnricher.ts +14 -7
  352. package/src/plugins/enrichment/ImportExportLinker.ts +24 -6
  353. package/src/plugins/enrichment/MethodCallResolver.ts +18 -12
  354. package/src/plugins/enrichment/MountPointResolver.ts +8 -3
  355. package/src/plugins/enrichment/PrefixEvaluator.ts +16 -7
  356. package/src/plugins/enrichment/RustFFIEnricher.ts +6 -5
  357. package/src/plugins/enrichment/ValueDomainAnalyzer.ts +149 -12
  358. package/src/plugins/indexing/IncrementalModuleIndexer.ts +23 -14
  359. package/src/plugins/indexing/JSModuleIndexer.ts +74 -34
  360. package/src/plugins/indexing/RustModuleIndexer.ts +5 -4
  361. package/src/plugins/validation/CallResolverValidator.ts +8 -7
  362. package/src/plugins/validation/DataFlowValidator.ts +16 -12
  363. package/src/plugins/validation/EvalBanValidator.ts +17 -16
  364. package/src/plugins/validation/GraphConnectivityValidator.ts +19 -23
  365. package/src/plugins/validation/NodeCreationValidator.ts +554 -0
  366. package/src/plugins/validation/SQLInjectionValidator.ts +61 -15
  367. package/src/plugins/validation/ShadowingDetector.ts +6 -5
  368. package/src/plugins/validation/TypeScriptDeadCodeValidator.ts +12 -11
  369. package/src/plugins/vcs/GitPlugin.ts +40 -12
  370. package/src/plugins/vcs/VCSPlugin.ts +7 -5
  371. package/src/storage/backends/RFDBServerBackend.ts +43 -29
  372. package/src/validation/PathValidator.ts +1 -1
  373. package/dist/core/AnalysisWorker.d.ts +0 -14
  374. package/dist/core/AnalysisWorker.d.ts.map +0 -1
  375. package/dist/core/AnalysisWorker.js +0 -307
  376. package/dist/core/ParallelAnalyzer.d.ts +0 -120
  377. package/dist/core/ParallelAnalyzer.d.ts.map +0 -1
  378. package/dist/core/ParallelAnalyzer.js +0 -331
  379. package/dist/core/QueueWorker.d.ts +0 -12
  380. package/dist/core/QueueWorker.d.ts.map +0 -1
  381. package/dist/core/QueueWorker.js +0 -567
  382. package/dist/core/RFDBClient.d.ts +0 -179
  383. package/dist/core/RFDBClient.d.ts.map +0 -1
  384. package/dist/core/RFDBClient.js +0 -429
  385. package/dist/plugins/discovery/ZonServiceDiscovery.d.ts +0 -19
  386. package/dist/plugins/discovery/ZonServiceDiscovery.d.ts.map +0 -1
  387. package/dist/plugins/discovery/ZonServiceDiscovery.js +0 -204
  388. package/src/core/AnalysisWorker.ts +0 -410
  389. package/src/core/ParallelAnalyzer.ts +0 -476
  390. package/src/core/QueueWorker.ts +0 -780
  391. package/src/plugins/indexing/ServiceDetector.ts +0 -230
@@ -0,0 +1,86 @@
1
+ /**
2
+ * Resolves TypeScript source entrypoints for projects.
3
+ *
4
+ * This utility prefers TypeScript source files (src/index.ts) over compiled
5
+ * output (dist/index.js) when analyzing TypeScript projects.
6
+ *
7
+ * Resolution order:
8
+ * 1. If no tsconfig.json exists -> return null (not a TypeScript project)
9
+ * 2. Check package.json "source" field (explicit source declaration)
10
+ * 3. Try standard TypeScript source candidates
11
+ * 4. Return null if no source found (caller should fallback to main)
12
+ *
13
+ * @module resolveSourceEntrypoint
14
+ */
15
+ import { existsSync } from 'fs';
16
+ import { join } from 'path';
17
+ /**
18
+ * Standard TypeScript source candidates in priority order.
19
+ *
20
+ * Order rationale:
21
+ * - src/ is the most common convention
22
+ * - lib/ is used by some projects
23
+ * - root-level is fallback
24
+ * - index is more common than main
25
+ * - .ts preferred over .tsx over .mts
26
+ */
27
+ const TS_SOURCE_CANDIDATES = [
28
+ 'src/index.ts',
29
+ 'src/index.tsx',
30
+ 'src/index.mts',
31
+ 'src/main.ts',
32
+ 'src/main.tsx',
33
+ 'lib/index.ts',
34
+ 'lib/index.tsx',
35
+ 'index.ts',
36
+ 'index.tsx',
37
+ 'index.mts',
38
+ 'main.ts',
39
+ 'main.tsx',
40
+ ];
41
+ /**
42
+ * Resolves the source entrypoint for a project, preferring TypeScript source
43
+ * over compiled output.
44
+ *
45
+ * @param projectPath - Absolute path to the project/service directory
46
+ * @param packageJson - Parsed package.json content (only relevant fields needed)
47
+ * @returns Source entrypoint relative to projectPath, or null if not found
48
+ *
49
+ * @example
50
+ * // TypeScript project with src/index.ts
51
+ * resolveSourceEntrypoint('/path/to/project', { main: 'dist/index.js' })
52
+ * // Returns: 'src/index.ts'
53
+ *
54
+ * @example
55
+ * // JavaScript project (no tsconfig.json)
56
+ * resolveSourceEntrypoint('/path/to/project', { main: 'index.js' })
57
+ * // Returns: null
58
+ *
59
+ * @example
60
+ * // TypeScript project with explicit source field
61
+ * resolveSourceEntrypoint('/path/to/project', { main: 'dist/index.js', source: 'lib/entry.ts' })
62
+ * // Returns: 'lib/entry.ts' (if file exists)
63
+ */
64
+ export function resolveSourceEntrypoint(projectPath, packageJson) {
65
+ // Step 1: Check for TypeScript project indicator
66
+ const tsconfigPath = join(projectPath, 'tsconfig.json');
67
+ if (!existsSync(tsconfigPath)) {
68
+ return null; // Not a TypeScript project
69
+ }
70
+ // Step 2: Check package.json "source" field (explicit source declaration)
71
+ if (packageJson.source) {
72
+ const sourcePath = join(projectPath, packageJson.source);
73
+ if (existsSync(sourcePath)) {
74
+ return packageJson.source;
75
+ }
76
+ }
77
+ // Step 3: Try standard TypeScript source candidates
78
+ for (const candidate of TS_SOURCE_CANDIDATES) {
79
+ const candidatePath = join(projectPath, candidate);
80
+ if (existsSync(candidatePath)) {
81
+ return candidate;
82
+ }
83
+ }
84
+ // Step 4: Not found - caller should fallback to main
85
+ return null;
86
+ }
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Workspace Type Detector
3
+ *
4
+ * Detects which workspace system is used in a project by checking
5
+ * for configuration files in priority order: pnpm > npm/yarn > lerna.
6
+ */
7
+ export type WorkspaceType = 'pnpm' | 'npm' | 'yarn' | 'lerna' | null;
8
+ export interface WorkspaceDetectionResult {
9
+ type: WorkspaceType;
10
+ configPath: string | null;
11
+ rootPath: string;
12
+ }
13
+ /**
14
+ * Detect workspace type by checking for configuration files.
15
+ * Priority: pnpm > npm/yarn > lerna (most specific first)
16
+ *
17
+ * @param projectPath - Root directory of the project
18
+ * @returns Detection result with type, config path, and root path
19
+ */
20
+ export declare function detectWorkspaceType(projectPath: string): WorkspaceDetectionResult;
21
+ //# sourceMappingURL=detector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"detector.d.ts","sourceRoot":"","sources":["../../../../src/plugins/discovery/workspaces/detector.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;AAErE,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,aAAa,CAAC;IACpB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,wBAAwB,CAqCjF"}
@@ -0,0 +1,49 @@
1
+ /**
2
+ * Workspace Type Detector
3
+ *
4
+ * Detects which workspace system is used in a project by checking
5
+ * for configuration files in priority order: pnpm > npm/yarn > lerna.
6
+ */
7
+ import { existsSync, readFileSync } from 'fs';
8
+ import { join } from 'path';
9
+ /**
10
+ * Detect workspace type by checking for configuration files.
11
+ * Priority: pnpm > npm/yarn > lerna (most specific first)
12
+ *
13
+ * @param projectPath - Root directory of the project
14
+ * @returns Detection result with type, config path, and root path
15
+ */
16
+ export function detectWorkspaceType(projectPath) {
17
+ // 1. Check for pnpm-workspace.yaml (highest priority)
18
+ const pnpmYaml = join(projectPath, 'pnpm-workspace.yaml');
19
+ const pnpmYml = join(projectPath, 'pnpm-workspace.yml');
20
+ if (existsSync(pnpmYaml)) {
21
+ return { type: 'pnpm', configPath: pnpmYaml, rootPath: projectPath };
22
+ }
23
+ if (existsSync(pnpmYml)) {
24
+ return { type: 'pnpm', configPath: pnpmYml, rootPath: projectPath };
25
+ }
26
+ // 2. Check for npm/yarn workspaces in package.json
27
+ const packageJsonPath = join(projectPath, 'package.json');
28
+ if (existsSync(packageJsonPath)) {
29
+ try {
30
+ const content = readFileSync(packageJsonPath, 'utf-8');
31
+ const pkg = JSON.parse(content);
32
+ if (pkg.workspaces) {
33
+ // Both npm and yarn use package.json workspaces - detect as 'npm'
34
+ // The format is compatible for both
35
+ return { type: 'npm', configPath: packageJsonPath, rootPath: projectPath };
36
+ }
37
+ }
38
+ catch {
39
+ // Ignore JSON parse errors
40
+ }
41
+ }
42
+ // 3. Check for lerna.json
43
+ const lernaJsonPath = join(projectPath, 'lerna.json');
44
+ if (existsSync(lernaJsonPath)) {
45
+ return { type: 'lerna', configPath: lernaJsonPath, rootPath: projectPath };
46
+ }
47
+ // No workspace configuration found
48
+ return { type: null, configPath: null, rootPath: projectPath };
49
+ }
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Glob Resolver for Workspace Packages
3
+ *
4
+ * Resolves workspace glob patterns to actual directories containing package.json.
5
+ * Uses minimatch for pattern matching.
6
+ */
7
+ import type { WorkspaceConfig } from './parsers.js';
8
+ export interface WorkspacePackage {
9
+ path: string;
10
+ name: string;
11
+ relativePath: string;
12
+ packageJson: PackageJson;
13
+ }
14
+ interface PackageJson {
15
+ name?: string;
16
+ version?: string;
17
+ main?: string;
18
+ source?: string;
19
+ description?: string;
20
+ private?: boolean;
21
+ dependencies?: Record<string, string>;
22
+ devDependencies?: Record<string, string>;
23
+ [key: string]: unknown;
24
+ }
25
+ /**
26
+ * Resolve workspace glob patterns to actual packages.
27
+ * Only directories with package.json are considered valid packages.
28
+ *
29
+ * @param projectPath - Root directory of the project
30
+ * @param config - Parsed workspace config with patterns and negativePatterns
31
+ * @returns Array of resolved workspace packages
32
+ */
33
+ export declare function resolveWorkspacePackages(projectPath: string, config: WorkspaceConfig): WorkspacePackage[];
34
+ export {};
35
+ //# sourceMappingURL=globResolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"globResolver.d.ts","sourceRoot":"","sources":["../../../../src/plugins/discovery/workspaces/globResolver.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAEpD,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,WAAW,CAAC;CAC1B;AAED,UAAU,WAAW;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CACtC,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,eAAe,GACtB,gBAAgB,EAAE,CAwCpB"}
@@ -0,0 +1,184 @@
1
+ /**
2
+ * Glob Resolver for Workspace Packages
3
+ *
4
+ * Resolves workspace glob patterns to actual directories containing package.json.
5
+ * Uses minimatch for pattern matching.
6
+ */
7
+ import { readdirSync, existsSync, readFileSync, lstatSync } from 'fs';
8
+ import { join, relative } from 'path';
9
+ import { minimatch } from 'minimatch';
10
+ /**
11
+ * Resolve workspace glob patterns to actual packages.
12
+ * Only directories with package.json are considered valid packages.
13
+ *
14
+ * @param projectPath - Root directory of the project
15
+ * @param config - Parsed workspace config with patterns and negativePatterns
16
+ * @returns Array of resolved workspace packages
17
+ */
18
+ export function resolveWorkspacePackages(projectPath, config) {
19
+ const packages = [];
20
+ const seen = new Set();
21
+ // Expand all positive patterns
22
+ for (const pattern of config.patterns) {
23
+ const matches = expandGlob(projectPath, pattern);
24
+ for (const dir of matches) {
25
+ // Check for package.json
26
+ const pkgJsonPath = join(dir, 'package.json');
27
+ if (!existsSync(pkgJsonPath))
28
+ continue;
29
+ // Check negative patterns
30
+ const relPath = relative(projectPath, dir);
31
+ if (config.negativePatterns.some(neg => matchesPattern(relPath, neg)))
32
+ continue;
33
+ // Avoid duplicates
34
+ if (seen.has(dir))
35
+ continue;
36
+ seen.add(dir);
37
+ // Parse package.json
38
+ let pkgJson;
39
+ try {
40
+ pkgJson = JSON.parse(readFileSync(pkgJsonPath, 'utf-8'));
41
+ }
42
+ catch {
43
+ // Skip malformed package.json
44
+ continue;
45
+ }
46
+ packages.push({
47
+ path: dir,
48
+ name: pkgJson.name || relPath.split('/').pop() || relPath,
49
+ relativePath: relPath,
50
+ packageJson: pkgJson
51
+ });
52
+ }
53
+ }
54
+ return packages;
55
+ }
56
+ /**
57
+ * Check if path matches pattern using minimatch.
58
+ * Normalizes path separators for cross-platform compatibility.
59
+ */
60
+ function matchesPattern(path, pattern) {
61
+ // Normalize path separators
62
+ const normalizedPath = path.replace(/\\/g, '/');
63
+ const normalizedPattern = pattern.replace(/\\/g, '/');
64
+ return minimatch(normalizedPath, normalizedPattern);
65
+ }
66
+ /**
67
+ * Expand glob pattern to actual directories.
68
+ */
69
+ function expandGlob(basePath, pattern) {
70
+ // Handle literal path (no wildcards)
71
+ if (!pattern.includes('*')) {
72
+ const fullPath = join(basePath, pattern);
73
+ if (existsSync(fullPath) && isDirectory(fullPath)) {
74
+ return [fullPath];
75
+ }
76
+ return [];
77
+ }
78
+ // Handle recursive glob (**)
79
+ if (pattern.includes('**')) {
80
+ return expandRecursiveGlob(basePath, pattern);
81
+ }
82
+ // Handle simple glob (packages/*)
83
+ return expandSimpleGlob(basePath, pattern);
84
+ }
85
+ /**
86
+ * Expand simple glob like "packages/*" or "apps/*".
87
+ */
88
+ function expandSimpleGlob(basePath, pattern) {
89
+ const parts = pattern.split('/');
90
+ const results = [];
91
+ // Find the first part with a wildcard
92
+ let currentPath = basePath;
93
+ let patternIndex = 0;
94
+ // Navigate to the parent directory of the glob
95
+ while (patternIndex < parts.length - 1) {
96
+ currentPath = join(currentPath, parts[patternIndex]);
97
+ patternIndex++;
98
+ }
99
+ // The last part contains the wildcard
100
+ const globPart = parts[patternIndex];
101
+ if (!existsSync(currentPath)) {
102
+ return [];
103
+ }
104
+ try {
105
+ const entries = readdirSync(currentPath);
106
+ for (const entry of entries) {
107
+ if (minimatch(entry, globPart)) {
108
+ const fullPath = join(currentPath, entry);
109
+ if (isDirectory(fullPath)) {
110
+ results.push(fullPath);
111
+ }
112
+ }
113
+ }
114
+ }
115
+ catch {
116
+ // Ignore permission errors
117
+ }
118
+ return results;
119
+ }
120
+ /**
121
+ * Expand recursive glob like "apps/**" or "libs/**".
122
+ * Recursively walks directories and matches against pattern.
123
+ */
124
+ function expandRecursiveGlob(basePath, pattern) {
125
+ const results = [];
126
+ const maxDepth = 10; // Safety limit
127
+ function walk(dir, depth) {
128
+ if (depth > maxDepth)
129
+ return;
130
+ try {
131
+ const entries = readdirSync(dir);
132
+ for (const entry of entries) {
133
+ // Skip hidden directories and node_modules
134
+ if (entry.startsWith('.') || entry === 'node_modules')
135
+ continue;
136
+ const fullPath = join(dir, entry);
137
+ // Skip symlinks to avoid infinite loops
138
+ if (!isDirectory(fullPath))
139
+ continue;
140
+ const relPath = relative(basePath, fullPath);
141
+ // Check if this directory matches the pattern
142
+ if (minimatch(relPath, pattern, { dot: false })) {
143
+ results.push(fullPath);
144
+ }
145
+ // Continue walking regardless of match (** can match at any depth)
146
+ walk(fullPath, depth + 1);
147
+ }
148
+ }
149
+ catch {
150
+ // Ignore permission errors
151
+ }
152
+ }
153
+ // Start walking from pattern prefix or base
154
+ const parts = pattern.split('**');
155
+ const prefix = parts[0].replace(/\/$/, ''); // Remove trailing slash
156
+ if (prefix) {
157
+ const startPath = join(basePath, prefix);
158
+ if (existsSync(startPath) && isDirectory(startPath)) {
159
+ // Check if the start path itself matches
160
+ const relPath = relative(basePath, startPath);
161
+ if (minimatch(relPath, pattern, { dot: false })) {
162
+ results.push(startPath);
163
+ }
164
+ walk(startPath, 0);
165
+ }
166
+ }
167
+ else {
168
+ walk(basePath, 0);
169
+ }
170
+ return results;
171
+ }
172
+ /**
173
+ * Check if path is a directory (not following symlinks).
174
+ */
175
+ function isDirectory(path) {
176
+ try {
177
+ const stat = lstatSync(path);
178
+ // Return true for real directories, false for symlinks
179
+ return stat.isDirectory() && !stat.isSymbolicLink();
180
+ }
181
+ catch {
182
+ return false;
183
+ }
184
+ }
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Workspace Detection and Resolution
3
+ *
4
+ * Exports utilities for detecting workspace types and resolving workspace packages.
5
+ */
6
+ export { detectWorkspaceType, type WorkspaceType, type WorkspaceDetectionResult } from './detector.js';
7
+ export { parsePnpmWorkspace, parseNpmWorkspace, parseLernaConfig, type WorkspaceConfig } from './parsers.js';
8
+ export { resolveWorkspacePackages, type WorkspacePackage } from './globResolver.js';
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/plugins/discovery/workspaces/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,mBAAmB,EACnB,KAAK,aAAa,EAClB,KAAK,wBAAwB,EAC9B,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,EAChB,KAAK,eAAe,EACrB,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,wBAAwB,EACxB,KAAK,gBAAgB,EACtB,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Workspace Detection and Resolution
3
+ *
4
+ * Exports utilities for detecting workspace types and resolving workspace packages.
5
+ */
6
+ export { detectWorkspaceType } from './detector.js';
7
+ export { parsePnpmWorkspace, parseNpmWorkspace, parseLernaConfig } from './parsers.js';
8
+ export { resolveWorkspacePackages } from './globResolver.js';
@@ -0,0 +1,38 @@
1
+ /**
2
+ * Workspace Config Parsers
3
+ *
4
+ * Parse workspace configuration files and extract glob patterns.
5
+ * Supports pnpm-workspace.yaml, package.json workspaces, and lerna.json.
6
+ */
7
+ export interface WorkspaceConfig {
8
+ patterns: string[];
9
+ negativePatterns: string[];
10
+ }
11
+ /**
12
+ * Parse pnpm-workspace.yaml
13
+ *
14
+ * Format:
15
+ * packages:
16
+ * - 'packages/*'
17
+ * - 'apps/**'
18
+ * - '!packages/internal'
19
+ */
20
+ export declare function parsePnpmWorkspace(configPath: string): WorkspaceConfig;
21
+ /**
22
+ * Parse npm/yarn workspaces from package.json
23
+ *
24
+ * Formats:
25
+ * - Array: { "workspaces": ["packages/*", "apps/**"] }
26
+ * - Object (yarn): { "workspaces": { "packages": ["packages/*"], "nohoist": [...] } }
27
+ */
28
+ export declare function parseNpmWorkspace(packageJsonPath: string): WorkspaceConfig;
29
+ /**
30
+ * Parse lerna.json
31
+ *
32
+ * Format:
33
+ * { "packages": ["packages/*", "components/*"] }
34
+ *
35
+ * Default: ["packages/*"] if packages field is missing
36
+ */
37
+ export declare function parseLernaConfig(lernaJsonPath: string): WorkspaceConfig;
38
+ //# sourceMappingURL=parsers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parsers.d.ts","sourceRoot":"","sources":["../../../../src/plugins/discovery/workspaces/parsers.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,gBAAgB,EAAE,MAAM,EAAE,CAAC;CAC5B;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,eAAe,CAgBtE;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,eAAe,EAAE,MAAM,GAAG,eAAe,CA0B1E;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,aAAa,EAAE,MAAM,GAAG,eAAe,CAavE"}
@@ -0,0 +1,80 @@
1
+ /**
2
+ * Workspace Config Parsers
3
+ *
4
+ * Parse workspace configuration files and extract glob patterns.
5
+ * Supports pnpm-workspace.yaml, package.json workspaces, and lerna.json.
6
+ */
7
+ import { readFileSync } from 'fs';
8
+ import { parse as parseYaml } from 'yaml';
9
+ /**
10
+ * Parse pnpm-workspace.yaml
11
+ *
12
+ * Format:
13
+ * packages:
14
+ * - 'packages/*'
15
+ * - 'apps/**'
16
+ * - '!packages/internal'
17
+ */
18
+ export function parsePnpmWorkspace(configPath) {
19
+ const content = readFileSync(configPath, 'utf-8');
20
+ const config = parseYaml(content);
21
+ const patterns = [];
22
+ const negativePatterns = [];
23
+ for (const pattern of config.packages || []) {
24
+ if (pattern.startsWith('!')) {
25
+ negativePatterns.push(pattern.slice(1));
26
+ }
27
+ else {
28
+ patterns.push(pattern);
29
+ }
30
+ }
31
+ return { patterns, negativePatterns };
32
+ }
33
+ /**
34
+ * Parse npm/yarn workspaces from package.json
35
+ *
36
+ * Formats:
37
+ * - Array: { "workspaces": ["packages/*", "apps/**"] }
38
+ * - Object (yarn): { "workspaces": { "packages": ["packages/*"], "nohoist": [...] } }
39
+ */
40
+ export function parseNpmWorkspace(packageJsonPath) {
41
+ const content = readFileSync(packageJsonPath, 'utf-8');
42
+ const pkg = JSON.parse(content);
43
+ let workspaces = [];
44
+ if (Array.isArray(pkg.workspaces)) {
45
+ workspaces = pkg.workspaces;
46
+ }
47
+ else if (pkg.workspaces?.packages) {
48
+ workspaces = pkg.workspaces.packages;
49
+ }
50
+ const patterns = [];
51
+ const negativePatterns = [];
52
+ for (const pattern of workspaces) {
53
+ if (pattern.startsWith('!')) {
54
+ negativePatterns.push(pattern.slice(1));
55
+ }
56
+ else {
57
+ patterns.push(pattern);
58
+ }
59
+ }
60
+ return { patterns, negativePatterns };
61
+ }
62
+ /**
63
+ * Parse lerna.json
64
+ *
65
+ * Format:
66
+ * { "packages": ["packages/*", "components/*"] }
67
+ *
68
+ * Default: ["packages/*"] if packages field is missing
69
+ */
70
+ export function parseLernaConfig(lernaJsonPath) {
71
+ const content = readFileSync(lernaJsonPath, 'utf-8');
72
+ const config = JSON.parse(content);
73
+ // Lerna defaults to packages/* if not specified
74
+ const packages = config.packages ?? ['packages/*'];
75
+ // Return empty if explicitly set to empty array
76
+ if (packages.length === 0) {
77
+ return { patterns: [], negativePatterns: [] };
78
+ }
79
+ return { patterns: packages, negativePatterns: [] };
80
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"AliasTracker.d.ts","sourceRoot":"","sources":["../../../src/plugins/enrichment/AliasTracker.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,MAAM,EAAuB,MAAM,cAAc,CAAC;AAC3D,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAgDhF,qBAAa,YAAa,SAAQ,MAAM;IACtC,MAAM,CAAC,SAAS,SAAM;IACtB,OAAO,CAAC,aAAa,CAA2B;IAEhD,IAAI,QAAQ,IAAI,cAAc,CAU7B;IAEK,OAAO,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;IAmH5D;;;OAGG;YACW,eAAe;IAkC7B;;OAEG;YACW,oBAAoB;IAsDlC;;OAEG;YACW,gBAAgB;IAyB9B;;OAEG;YACW,wBAAwB;CA6EvC"}
1
+ {"version":3,"file":"AliasTracker.d.ts","sourceRoot":"","sources":["../../../src/plugins/enrichment/AliasTracker.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,MAAM,EAAuB,MAAM,cAAc,CAAC;AAC3D,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAgDhF,qBAAa,YAAa,SAAQ,MAAM;IACtC,MAAM,CAAC,SAAS,SAAM;IACtB,OAAO,CAAC,aAAa,CAA2B;IAEhD,IAAI,QAAQ,IAAI,cAAc,CAU7B;IAEK,OAAO,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;IAyH5D;;;OAGG;YACW,eAAe;IAkC7B;;OAEG;YACW,oBAAoB;IAsDlC;;OAEG;YACW,gBAAgB;IAyB9B;;OAEG;YACW,wBAAwB;CA6EvC"}
@@ -29,7 +29,8 @@ export class AliasTracker extends Plugin {
29
29
  }
30
30
  async execute(context) {
31
31
  const { graph, onProgress } = context;
32
- console.log('[AliasTracker] Starting alias resolution...');
32
+ const logger = this.log(context);
33
+ logger.info('Starting alias resolution');
33
34
  let callsProcessed = 0;
34
35
  let aliasesFound = 0;
35
36
  let edgesCreated = 0;
@@ -49,10 +50,10 @@ export class AliasTracker extends Plugin {
49
50
  continue;
50
51
  unresolvedCalls.push(callNode);
51
52
  }
52
- console.log(`[AliasTracker] Found ${unresolvedCalls.length} unresolved call sites`);
53
+ logger.info('Found unresolved call sites', { count: unresolvedCalls.length });
53
54
  // 2. Строим индекс алиасов: variableName -> EXPRESSION info
54
55
  const aliasIndex = await this.buildAliasIndex(graph);
55
- console.log(`[AliasTracker] Found ${aliasIndex.size} potential aliases`);
56
+ logger.debug('Found potential aliases', { count: aliasIndex.size });
56
57
  // 3. Строим индекс методов для резолвинга
57
58
  const methodIndex = await this.buildMethodIndex(graph);
58
59
  // 4. Обрабатываем каждый нерезолвленный вызов
@@ -108,12 +109,17 @@ export class AliasTracker extends Plugin {
108
109
  };
109
110
  // Алярм если были превышения глубины
110
111
  if (this.depthExceeded.length > 0) {
111
- console.warn(`[AliasTracker] ⚠️ WARNING: ${this.depthExceeded.length} alias chain(s) exceeded max depth (${AliasTracker.MAX_DEPTH}):`);
112
- for (const info of this.depthExceeded) {
113
- console.warn(` - ${info.file}:${info.name} (chain: ${info.chain.join(' → ')}...)`);
114
- }
112
+ logger.warn('Alias chains exceeded max depth', {
113
+ count: this.depthExceeded.length,
114
+ maxDepth: AliasTracker.MAX_DEPTH,
115
+ examples: this.depthExceeded.slice(0, 5).map(info => ({
116
+ file: info.file,
117
+ name: info.name,
118
+ chain: info.chain.join(' → ')
119
+ }))
120
+ });
115
121
  }
116
- console.log('[AliasTracker] Summary:', summary);
122
+ logger.info('Summary', summary);
117
123
  return createSuccessResult({ nodes: 0, edges: edgesCreated }, summary);
118
124
  }
119
125
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"HTTPConnectionEnricher.d.ts","sourceRoot":"","sources":["../../../src/plugins/enrichment/HTTPConnectionEnricher.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,MAAM,EAA0C,MAAM,cAAc,CAAC;AAC9E,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AA8BhF,qBAAa,sBAAuB,SAAQ,MAAM;IAChD,IAAI,QAAQ,IAAI,cAAc,CAW7B;IAEK,OAAO,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;IAuF5D;;;OAGG;IACH,OAAO,CAAC,UAAU;IAqBlB;;OAEG;IACH,OAAO,CAAC,SAAS;IAIjB;;OAEG;IACH,OAAO,CAAC,eAAe;CAaxB"}
1
+ {"version":3,"file":"HTTPConnectionEnricher.d.ts","sourceRoot":"","sources":["../../../src/plugins/enrichment/HTTPConnectionEnricher.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,MAAM,EAA0C,MAAM,cAAc,CAAC;AAC9E,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AA8BhF,qBAAa,sBAAuB,SAAQ,MAAM;IAChD,IAAI,QAAQ,IAAI,cAAc,CAW7B;IAEK,OAAO,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;IA8F5D;;;OAGG;IACH,OAAO,CAAC,UAAU;IAqBlB;;OAEG;IACH,OAAO,CAAC,SAAS;IAIjB;;OAEG;IACH,OAAO,CAAC,eAAe;CAaxB"}
@@ -24,6 +24,7 @@ export class HTTPConnectionEnricher extends Plugin {
24
24
  }
25
25
  async execute(context) {
26
26
  const { graph } = context;
27
+ const logger = this.log(context);
27
28
  try {
28
29
  // Собираем все http:route (backend endpoints)
29
30
  const routes = [];
@@ -35,11 +36,17 @@ export class HTTPConnectionEnricher extends Plugin {
35
36
  for await (const node of graph.queryNodes({ type: 'http:request' })) {
36
37
  requests.push(node);
37
38
  }
38
- console.log(`[HTTPConnectionEnricher] Found ${routes.length} routes, ${requests.length} requests`);
39
+ logger.debug('Found routes and requests', {
40
+ routes: routes.length,
41
+ requests: requests.length
42
+ });
39
43
  // Дедуплицируем по ID (из-за multi-service анализа)
40
44
  const uniqueRoutes = this.deduplicateById(routes);
41
45
  const uniqueRequests = this.deduplicateById(requests);
42
- console.log(`[HTTPConnectionEnricher] Unique: ${uniqueRoutes.length} routes, ${uniqueRequests.length} requests`);
46
+ logger.info('Unique routes and requests', {
47
+ routes: uniqueRoutes.length,
48
+ requests: uniqueRequests.length
49
+ });
43
50
  let edgesCreated = 0;
44
51
  const connections = [];
45
52
  // Для каждого request ищем matching route
@@ -75,10 +82,10 @@ export class HTTPConnectionEnricher extends Plugin {
75
82
  }
76
83
  // Логируем найденные связи
77
84
  if (connections.length > 0) {
78
- console.log(`[HTTPConnectionEnricher] Connections found:`);
79
- for (const conn of connections) {
80
- console.log(` ${conn.request} → ${conn.route}`);
81
- }
85
+ logger.info('Connections found', {
86
+ count: connections.length,
87
+ examples: connections.slice(0, 5).map(c => `${c.request} → ${c.route}`)
88
+ });
82
89
  }
83
90
  return createSuccessResult({ nodes: 0, edges: edgesCreated }, {
84
91
  connections: connections.length,
@@ -87,7 +94,7 @@ export class HTTPConnectionEnricher extends Plugin {
87
94
  });
88
95
  }
89
96
  catch (error) {
90
- console.error(`[HTTPConnectionEnricher] Error:`, error);
97
+ logger.error('Error in HTTPConnectionEnricher', { error });
91
98
  return createErrorResult(error instanceof Error ? error : new Error(String(error)));
92
99
  }
93
100
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ImportExportLinker.d.ts","sourceRoot":"","sources":["../../../src/plugins/enrichment/ImportExportLinker.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAGH,OAAO,EAAE,MAAM,EAAuB,MAAM,cAAc,CAAC;AAC3D,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAmBhF,qBAAa,kBAAmB,SAAQ,MAAM;IAC5C,IAAI,QAAQ,IAAI,cAAc,CAW7B;IAEK,OAAO,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;IAyH5D;;;OAGG;YACW,gBAAgB;IA+B9B;;OAEG;YACW,iBAAiB;CAWhC"}
1
+ {"version":3,"file":"ImportExportLinker.d.ts","sourceRoot":"","sources":["../../../src/plugins/enrichment/ImportExportLinker.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAGH,OAAO,EAAE,MAAM,EAAuB,MAAM,cAAc,CAAC;AAC3D,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAmBhF,qBAAa,kBAAmB,SAAQ,MAAM;IAC5C,IAAI,QAAQ,IAAI,cAAc,CAW7B;IAEK,OAAO,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;IA2I5D;;;OAGG;YACW,gBAAgB;IA+B9B;;OAEG;YACW,iBAAiB;CAWhC"}