@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
@@ -93,6 +93,7 @@ export class RustModuleIndexer extends Plugin {
93
93
  }
94
94
 
95
95
  async execute(context: PluginContext): Promise<PluginResult> {
96
+ const logger = this.log(context);
96
97
  const { manifest, graph, onProgress } = context;
97
98
  // Cast manifest to expected shape
98
99
  const typedManifest = manifest as { projectPath: string } | undefined;
@@ -102,14 +103,14 @@ export class RustModuleIndexer extends Plugin {
102
103
  const rustRoot = resolve(projectPath, 'rust-engine/src');
103
104
 
104
105
  if (!existsSync(rustRoot)) {
105
- console.log('[RustModuleIndexer] rust-engine/src not found, skipping');
106
+ logger.info('rust-engine/src not found, skipping');
106
107
  return createSuccessResult({ nodes: 0, edges: 0 }, { skipped: true });
107
108
  }
108
109
 
109
110
  // Discover all .rs files recursively
110
111
  const rsFiles = this.findRustFiles(rustRoot);
111
112
 
112
- console.log(`[RustModuleIndexer] Found ${rsFiles.length} .rs files`);
113
+ logger.info('Found Rust files', { count: rsFiles.length });
113
114
 
114
115
  let nodesCreated = 0;
115
116
  const errors: Array<{ file: string; error: string }> = [];
@@ -151,10 +152,10 @@ export class RustModuleIndexer extends Plugin {
151
152
  }
152
153
 
153
154
  if (errors.length > 0) {
154
- console.warn(`[RustModuleIndexer] ${errors.length} errors during indexing`);
155
+ logger.warn('Errors during indexing', { errorCount: errors.length });
155
156
  }
156
157
 
157
- console.log(`[RustModuleIndexer] Indexed ${nodesCreated} Rust modules`);
158
+ logger.info('Rust modules indexed', { count: nodesCreated });
158
159
  return createSuccessResult({ nodes: nodesCreated, edges: 0 }, { errors: errors.length });
159
160
  }
160
161
  }
@@ -70,12 +70,13 @@ export class CallResolverValidator extends Plugin {
70
70
 
71
71
  async execute(context: PluginContext): Promise<PluginResult> {
72
72
  const { graph } = context;
73
+ const logger = this.log(context);
73
74
 
74
- console.log('[CallResolverValidator] Starting call resolution validation using Datalog...');
75
+ logger.info('Starting call resolution validation using Datalog');
75
76
 
76
77
  // Check if graph supports checkGuarantee
77
78
  if (!graph.checkGuarantee) {
78
- console.log('[CallResolverValidator] Graph does not support checkGuarantee, skipping validation');
79
+ logger.debug('Graph does not support checkGuarantee, skipping validation');
79
80
  return createSuccessResult({ nodes: 0, edges: 0 }, { skipped: true });
80
81
  }
81
82
 
@@ -88,7 +89,7 @@ export class CallResolverValidator extends Plugin {
88
89
  const issues: CallResolverIssue[] = [];
89
90
 
90
91
  if (violations.length > 0) {
91
- console.log(`[CallResolverValidator] Found ${violations.length} unresolved function calls`);
92
+ logger.debug('Unresolved function calls found', { count: violations.length });
92
93
 
93
94
  for (const v of violations) {
94
95
  const nodeId = v.bindings.find(b => b.name === 'X')?.value;
@@ -121,15 +122,15 @@ export class CallResolverValidator extends Plugin {
121
122
  issues: issues.length
122
123
  };
123
124
 
124
- console.log('[CallResolverValidator] Summary:', summary);
125
+ logger.info('Validation complete', { ...summary });
125
126
 
126
127
  if (issues.length > 0) {
127
- console.log(`[CallResolverValidator] Unresolved calls:`);
128
+ logger.warn('Unresolved calls detected', { count: issues.length });
128
129
  for (const issue of issues.slice(0, 10)) { // Show first 10
129
- console.log(` ⚠️ ${issue.message}`);
130
+ logger.warn(issue.message);
130
131
  }
131
132
  if (issues.length > 10) {
132
- console.log(` ... and ${issues.length - 10} more`);
133
+ logger.debug(`... and ${issues.length - 10} more`);
133
134
  }
134
135
  }
135
136
 
@@ -72,12 +72,13 @@ export class DataFlowValidator extends Plugin {
72
72
 
73
73
  async execute(context: PluginContext): Promise<PluginResult> {
74
74
  const { graph } = context;
75
+ const logger = this.log(context);
75
76
 
76
- console.log('[DataFlowValidator] Starting data flow validation...');
77
+ logger.info('Starting data flow validation');
77
78
 
78
79
  // Check if graph supports getAllEdges
79
80
  if (!graph.getAllEdges) {
80
- console.log('[DataFlowValidator] Graph does not support getAllEdges, skipping validation');
81
+ logger.debug('Graph does not support getAllEdges, skipping validation');
81
82
  return createSuccessResult({ nodes: 0, edges: 0 }, { skipped: true });
82
83
  }
83
84
 
@@ -89,16 +90,16 @@ export class DataFlowValidator extends Plugin {
89
90
  n.type === 'VARIABLE_DECLARATION' || n.type === 'CONSTANT'
90
91
  );
91
92
 
92
- console.log(`[DataFlowValidator] Found ${variables.length} variables to validate`);
93
+ logger.debug('Variables collected', { count: variables.length });
93
94
 
94
95
  const issues: DataFlowIssue[] = [];
95
96
  const leafTypes = new Set([
96
97
  'LITERAL',
97
- 'EXTERNAL_STDIO',
98
- 'EXTERNAL_DATABASE',
99
- 'EXTERNAL_NETWORK',
100
- 'EXTERNAL_FILESYSTEM',
101
- 'EVENT_LISTENER',
98
+ 'net:stdio',
99
+ 'db:query',
100
+ 'net:request',
101
+ 'fs:operation',
102
+ 'event:listener',
102
103
  'CLASS', // NewExpression - конструкторы классов
103
104
  'FUNCTION', // Arrow functions и function expressions
104
105
  'METHOD_CALL', // Вызовы методов (промежуточные узлы)
@@ -167,14 +168,17 @@ export class DataFlowValidator extends Plugin {
167
168
  summary.byType[issue.type]++;
168
169
  }
169
170
 
170
- console.log('[DataFlowValidator] Summary:', summary);
171
+ logger.info('Validation complete', { ...summary });
171
172
 
172
173
  // Выводим issues
173
174
  if (issues.length > 0) {
174
- console.log(`[DataFlowValidator] Found ${issues.length} issues:`);
175
+ logger.warn('Data flow issues found', { count: issues.length });
175
176
  for (const issue of issues) {
176
- const level = issue.severity === 'ERROR' ? '❌' : '⚠️';
177
- console.log(` ${level} [${issue.type}] ${issue.message}`);
177
+ if (issue.severity === 'ERROR') {
178
+ logger.error(`[${issue.type}] ${issue.message}`);
179
+ } else {
180
+ logger.warn(`[${issue.type}] ${issue.message}`);
181
+ }
178
182
  }
179
183
  }
180
184
 
@@ -69,17 +69,18 @@ export class EvalBanValidator extends Plugin {
69
69
 
70
70
  async execute(context: PluginContext): Promise<PluginResult> {
71
71
  const { graph } = context;
72
+ const logger = this.log(context);
72
73
 
73
- console.log('[EvalBanValidator] Checking for eval/Function usage...');
74
+ logger.info('Starting eval/Function usage validation');
74
75
  const startTime = Date.now();
75
76
 
76
77
  const issues: EvalBanIssue[] = [];
77
78
 
78
- // ОПТИМИЗАЦИЯ: вместо Datalog (медленный full scan), используем прямые graph queries
79
- // Datalog зависает на больших графах из-за отсутствия индексов
79
+ // OPTIMIZATION: use direct graph queries instead of Datalog (slow full scan)
80
+ // Datalog hangs on large graphs due to lack of indexes
80
81
 
81
- // 1. Прямой вызов eval("code") - ищем все CALL ноды с name="eval"
82
- console.log('[EvalBanValidator] Searching for eval() calls...');
82
+ // 1. Direct eval("code") call - find all CALL nodes with name="eval"
83
+ logger.debug('Searching for eval() calls');
83
84
  const evalStart = Date.now();
84
85
  let evalCount = 0;
85
86
 
@@ -96,10 +97,10 @@ export class EvalBanValidator extends Plugin {
96
97
  });
97
98
  }
98
99
  }
99
- console.log(`[EvalBanValidator] eval() search took ${Date.now() - evalStart}ms, found ${evalCount} violations`);
100
+ logger.debug('eval() search complete', { timeMs: Date.now() - evalStart, count: evalCount });
100
101
 
101
- // 2. Вызов Function("code") или new Function("code")
102
- console.log('[EvalBanValidator] Searching for Function() calls...');
102
+ // 2. Function("code") or new Function("code") call
103
+ logger.debug('Searching for Function() calls');
103
104
  const funcStart = Date.now();
104
105
  let funcCount = 0;
105
106
 
@@ -116,11 +117,11 @@ export class EvalBanValidator extends Plugin {
116
117
  });
117
118
  }
118
119
  }
119
- console.log(`[EvalBanValidator] Function() search took ${Date.now() - funcStart}ms, found ${funcCount} violations`);
120
+ logger.debug('Function() search complete', { timeMs: Date.now() - funcStart, count: funcCount });
120
121
 
121
122
  // 3. Method call: window.eval, globalThis.eval, this.eval
122
123
  // Note: METHOD_CALL was merged into CALL - method calls have 'method' attribute
123
- console.log('[EvalBanValidator] Searching for method eval() calls...');
124
+ logger.debug('Searching for method eval() calls');
124
125
  const methodStart = Date.now();
125
126
  let methodCount = 0;
126
127
 
@@ -141,10 +142,10 @@ export class EvalBanValidator extends Plugin {
141
142
  });
142
143
  }
143
144
  }
144
- console.log(`[EvalBanValidator] method eval() search took ${Date.now() - methodStart}ms, found ${methodCount} violations`);
145
+ logger.debug('Method eval() search complete', { timeMs: Date.now() - methodStart, count: methodCount });
145
146
 
146
147
  // 4. Aliased eval - SKIP for now (complex Datalog query causes OOM)
147
- console.log('[EvalBanValidator] Skipping aliased eval detection (requires optimized implementation)');
148
+ logger.debug('Skipping aliased eval detection', { reason: 'requires optimized implementation' });
148
149
 
149
150
  const totalTime = ((Date.now() - startTime) / 1000).toFixed(1);
150
151
  const summary: ValidationSummary = {
@@ -156,15 +157,15 @@ export class EvalBanValidator extends Plugin {
156
157
  timeSeconds: totalTime
157
158
  };
158
159
 
159
- console.log('[EvalBanValidator] Summary:', summary);
160
+ logger.info('Validation summary', { ...summary });
160
161
 
161
162
  if (issues.length > 0) {
162
- console.log('[EvalBanValidator] ❌ Security violations found:');
163
+ logger.info('Security violations found', { count: issues.length });
163
164
  for (const issue of issues) {
164
- console.log(` 🚫 ${issue.message}`);
165
+ logger.warn('Violation', { message: issue.message, type: issue.type, file: issue.file, line: issue.line });
165
166
  }
166
167
  } else {
167
- console.log('[EvalBanValidator] No eval/Function usage detected');
168
+ logger.info('Validation passed: no eval/Function usage detected');
168
169
  }
169
170
 
170
171
  return createSuccessResult(
@@ -60,33 +60,34 @@ export class GraphConnectivityValidator extends Plugin {
60
60
 
61
61
  async execute(context: PluginContext): Promise<PluginResult> {
62
62
  const { graph, manifest } = context;
63
+ const logger = this.log(context);
63
64
  const manifestWithValidation = manifest as ManifestWithValidation;
64
65
 
65
- console.log('[GraphConnectivityValidator] Starting connectivity validation...');
66
+ logger.info('Starting connectivity validation');
66
67
 
67
68
  // Получаем все узлы
68
69
  const allNodes = await graph.getAllNodes();
69
- console.log(`[GraphConnectivityValidator] Total nodes: ${allNodes.length}`);
70
+ logger.debug('Nodes collected', { totalNodes: allNodes.length });
70
71
 
71
72
  // Находим корневые узлы (SERVICE, MODULE)
72
73
  const rootTypes = ['SERVICE', 'MODULE', 'PROJECT'];
73
74
  const rootNodes = allNodes.filter(n => rootTypes.includes(n.type));
74
- console.log(`[GraphConnectivityValidator] Root nodes: ${rootNodes.length}`);
75
+ logger.debug('Root nodes found', { rootCount: rootNodes.length });
75
76
 
76
77
  if (rootNodes.length === 0) {
77
- console.warn('[GraphConnectivityValidator] No root nodes found!');
78
+ logger.warn('No root nodes found');
78
79
  return createSuccessResult({ nodes: 0, edges: 0 }, { skipped: true, reason: 'No root nodes' });
79
80
  }
80
81
 
81
82
  // Check if graph supports getAllEdges
82
83
  if (!graph.getAllEdges) {
83
- console.log('[GraphConnectivityValidator] Graph does not support getAllEdges, skipping validation');
84
+ logger.debug('Graph does not support getAllEdges, skipping validation');
84
85
  return createSuccessResult({ nodes: 0, edges: 0 }, { skipped: true, reason: 'No getAllEdges support' });
85
86
  }
86
87
 
87
88
  // Собираем все ребра
88
89
  const allEdges = await graph.getAllEdges();
89
- console.log(`[GraphConnectivityValidator] Total edges: ${allEdges.length}`);
90
+ logger.debug('Edges collected', { totalEdges: allEdges.length });
90
91
 
91
92
  // Строим карты смежности (обе направления)
92
93
  const adjacencyOut = new Map<string, string[]>(); // nodeId -> [targetIds]
@@ -131,13 +132,10 @@ export class GraphConnectivityValidator extends Plugin {
131
132
  const unreachable = allNodes.filter(n => !reachable.has(n.id));
132
133
 
133
134
  if (unreachable.length > 0) {
134
- // ЯРКОЕ ПРЕДУПРЕЖДЕНИЕ В КОНСОЛИ
135
- console.error('\n' + '='.repeat(80));
136
- console.error('⚠️ GRAPH VALIDATION ERROR: DISCONNECTED NODES FOUND');
137
- console.error('='.repeat(80));
138
- console.error(`Found ${unreachable.length} unreachable nodes (${((unreachable.length / allNodes.length) * 100).toFixed(1)}% of total)`);
139
- console.error(`These nodes are not connected to the main graph (SERVICE/MODULE/PROJECT level)`);
140
- console.error('');
135
+ const percentage = ((unreachable.length / allNodes.length) * 100).toFixed(1);
136
+ logger.error('GRAPH VALIDATION ERROR: DISCONNECTED NODES FOUND');
137
+ logger.error(`Found ${unreachable.length} unreachable nodes (${percentage}% of total)`);
138
+ logger.error('These nodes are not connected to the main graph (SERVICE/MODULE/PROJECT level)');
141
139
 
142
140
  // Группируем по типам для читаемости
143
141
  const byType: Record<string, NodeRecord[]> = {};
@@ -147,27 +145,25 @@ export class GraphConnectivityValidator extends Plugin {
147
145
  }
148
146
 
149
147
  for (const [type, nodes] of Object.entries(byType)) {
150
- console.error(` ${type}: ${nodes.length} nodes`);
148
+ logger.error(`${type}: ${nodes.length} nodes`);
151
149
  // Показываем первые 5 для каждого типа
152
150
  for (const node of nodes.slice(0, 5)) {
153
- console.error(` - ${node.name || node.id}`);
151
+ logger.debug(` - ${node.name || node.id}`);
154
152
 
155
153
  // Показываем связи этого узла
156
154
  const out = adjacencyOut.get(node.id) || [];
157
155
  const incoming = adjacencyIn.get(node.id) || [];
158
156
  if (out.length > 0 || incoming.length > 0) {
159
- console.error(` Edges: ${incoming.length} incoming, ${out.length} outgoing`);
157
+ logger.debug(` Edges: ${incoming.length} incoming, ${out.length} outgoing`);
160
158
  }
161
159
  }
162
160
  if (nodes.length > 5) {
163
- console.error(` ... and ${nodes.length - 5} more`);
161
+ logger.debug(` ... and ${nodes.length - 5} more`);
164
162
  }
165
163
  }
166
164
 
167
- console.error('');
168
- console.error('💡 ACTION REQUIRED: Fix analysis plugins to ensure all nodes are connected');
169
- console.error(' Anonymous functions, callbacks, and method calls should be linked to parent nodes');
170
- console.error('='.repeat(80) + '\n');
165
+ logger.error('ACTION REQUIRED: Fix analysis plugins to ensure all nodes are connected');
166
+ logger.error('Anonymous functions, callbacks, and method calls should be linked to parent nodes');
171
167
 
172
168
  // Сохраняем информацию в manifest для дальнейшего использования
173
169
  if (!manifestWithValidation.validation) manifestWithValidation.validation = {} as ValidationResult;
@@ -184,14 +180,14 @@ export class GraphConnectivityValidator extends Plugin {
184
180
  Object.entries(byType).map(([type, nodes]) => [type, nodes.length])
185
181
  );
186
182
  } else {
187
- console.log('[GraphConnectivityValidator] ✅ All nodes are reachable from root nodes');
183
+ logger.info('All nodes are reachable from root nodes');
188
184
  if (!manifestWithValidation.validation) manifestWithValidation.validation = {} as ValidationResult;
189
185
  manifestWithValidation.validation.hasErrors = false;
190
186
  manifestWithValidation.validation.totalNodes = allNodes.length;
191
187
  manifestWithValidation.validation.reachableNodes = reachable.size;
192
188
  }
193
189
 
194
- console.log(`[GraphConnectivityValidator] Validation complete: ${reachable.size}/${allNodes.length} nodes reachable`);
190
+ logger.info('Validation complete', { reachable: reachable.size, total: allNodes.length });
195
191
 
196
192
  return createSuccessResult(
197
193
  { nodes: 0, edges: 0 },