@grafema/core 0.1.0-alpha.5 → 0.2.0-beta

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 (530) hide show
  1. package/README.md +0 -1
  2. package/dist/Orchestrator.d.ts +31 -2
  3. package/dist/Orchestrator.d.ts.map +1 -1
  4. package/dist/Orchestrator.js +222 -27
  5. package/dist/config/ConfigLoader.d.ts +90 -0
  6. package/dist/config/ConfigLoader.d.ts.map +1 -0
  7. package/dist/config/ConfigLoader.js +249 -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/FileExplainer.d.ts +101 -0
  18. package/dist/core/FileExplainer.d.ts.map +1 -0
  19. package/dist/core/FileExplainer.js +139 -0
  20. package/dist/core/FileNodeManager.d.ts +40 -0
  21. package/dist/core/FileNodeManager.d.ts.map +1 -0
  22. package/dist/core/FileNodeManager.js +84 -0
  23. package/dist/core/GraphFreshnessChecker.d.ts +33 -0
  24. package/dist/core/GraphFreshnessChecker.d.ts.map +1 -0
  25. package/dist/core/GraphFreshnessChecker.js +101 -0
  26. package/dist/core/HashUtils.d.ts +24 -0
  27. package/dist/core/HashUtils.d.ts.map +1 -0
  28. package/dist/core/HashUtils.js +45 -0
  29. package/dist/core/IncrementalReanalyzer.d.ts +36 -0
  30. package/dist/core/IncrementalReanalyzer.d.ts.map +1 -0
  31. package/dist/core/IncrementalReanalyzer.js +132 -0
  32. package/dist/core/NodeFactory.d.ts +266 -19
  33. package/dist/core/NodeFactory.d.ts.map +1 -1
  34. package/dist/core/NodeFactory.js +256 -21
  35. package/dist/core/ScopeTracker.d.ts +84 -0
  36. package/dist/core/ScopeTracker.d.ts.map +1 -0
  37. package/dist/core/ScopeTracker.js +116 -0
  38. package/dist/core/SemanticId.d.ts +90 -0
  39. package/dist/core/SemanticId.d.ts.map +1 -0
  40. package/dist/core/SemanticId.js +115 -0
  41. package/dist/core/VersionManager.d.ts.map +1 -1
  42. package/dist/core/VersionManager.js +3 -2
  43. package/dist/core/nodes/ArgumentExpressionNode.d.ts +43 -0
  44. package/dist/core/nodes/ArgumentExpressionNode.d.ts.map +1 -0
  45. package/dist/core/nodes/ArgumentExpressionNode.js +60 -0
  46. package/dist/core/nodes/ArrayLiteralNode.d.ts +27 -0
  47. package/dist/core/nodes/ArrayLiteralNode.d.ts.map +1 -0
  48. package/dist/core/nodes/ArrayLiteralNode.js +43 -0
  49. package/dist/core/nodes/BranchNode.d.ts +41 -0
  50. package/dist/core/nodes/BranchNode.d.ts.map +1 -0
  51. package/dist/core/nodes/BranchNode.js +82 -0
  52. package/dist/core/nodes/CallSiteNode.d.ts +30 -2
  53. package/dist/core/nodes/CallSiteNode.d.ts.map +1 -1
  54. package/dist/core/nodes/CallSiteNode.js +54 -4
  55. package/dist/core/nodes/CaseNode.d.ts +43 -0
  56. package/dist/core/nodes/CaseNode.d.ts.map +1 -0
  57. package/dist/core/nodes/CaseNode.js +81 -0
  58. package/dist/core/nodes/ClassNode.d.ts +34 -2
  59. package/dist/core/nodes/ClassNode.d.ts.map +1 -1
  60. package/dist/core/nodes/ClassNode.js +52 -4
  61. package/dist/core/nodes/ConstantNode.d.ts +2 -2
  62. package/dist/core/nodes/ConstantNode.d.ts.map +1 -1
  63. package/dist/core/nodes/ConstantNode.js +6 -4
  64. package/dist/core/nodes/ConstructorCallNode.d.ts +51 -0
  65. package/dist/core/nodes/ConstructorCallNode.d.ts.map +1 -0
  66. package/dist/core/nodes/ConstructorCallNode.js +171 -0
  67. package/dist/core/nodes/DatabaseQueryNode.d.ts +3 -2
  68. package/dist/core/nodes/DatabaseQueryNode.d.ts.map +1 -1
  69. package/dist/core/nodes/DatabaseQueryNode.js +5 -2
  70. package/dist/core/nodes/DecoratorNode.d.ts +42 -0
  71. package/dist/core/nodes/DecoratorNode.d.ts.map +1 -0
  72. package/dist/core/nodes/DecoratorNode.js +64 -0
  73. package/dist/core/nodes/EnumNode.d.ts +42 -0
  74. package/dist/core/nodes/EnumNode.d.ts.map +1 -0
  75. package/dist/core/nodes/EnumNode.js +56 -0
  76. package/dist/core/nodes/EventListenerNode.d.ts +4 -4
  77. package/dist/core/nodes/EventListenerNode.d.ts.map +1 -1
  78. package/dist/core/nodes/EventListenerNode.js +7 -4
  79. package/dist/core/nodes/ExportNode.d.ts +38 -2
  80. package/dist/core/nodes/ExportNode.d.ts.map +1 -1
  81. package/dist/core/nodes/ExportNode.js +54 -4
  82. package/dist/core/nodes/ExpressionNode.d.ts +97 -0
  83. package/dist/core/nodes/ExpressionNode.d.ts.map +1 -0
  84. package/dist/core/nodes/ExpressionNode.js +180 -0
  85. package/dist/core/nodes/ExternalModuleNode.d.ts +32 -0
  86. package/dist/core/nodes/ExternalModuleNode.d.ts.map +1 -0
  87. package/dist/core/nodes/ExternalModuleNode.js +49 -0
  88. package/dist/core/nodes/ExternalStdioNode.d.ts +13 -6
  89. package/dist/core/nodes/ExternalStdioNode.d.ts.map +1 -1
  90. package/dist/core/nodes/ExternalStdioNode.js +15 -8
  91. package/dist/core/nodes/FunctionNode.d.ts +36 -0
  92. package/dist/core/nodes/FunctionNode.d.ts.map +1 -1
  93. package/dist/core/nodes/FunctionNode.js +80 -1
  94. package/dist/core/nodes/HttpRequestNode.d.ts +4 -4
  95. package/dist/core/nodes/HttpRequestNode.d.ts.map +1 -1
  96. package/dist/core/nodes/HttpRequestNode.js +7 -4
  97. package/dist/core/nodes/ImportNode.d.ts +28 -6
  98. package/dist/core/nodes/ImportNode.d.ts.map +1 -1
  99. package/dist/core/nodes/ImportNode.js +43 -8
  100. package/dist/core/nodes/InterfaceNode.d.ts +46 -0
  101. package/dist/core/nodes/InterfaceNode.d.ts.map +1 -0
  102. package/dist/core/nodes/InterfaceNode.js +57 -0
  103. package/dist/core/nodes/IssueNode.d.ts +73 -0
  104. package/dist/core/nodes/IssueNode.d.ts.map +1 -0
  105. package/dist/core/nodes/IssueNode.js +129 -0
  106. package/dist/core/nodes/LiteralNode.d.ts +2 -2
  107. package/dist/core/nodes/LiteralNode.d.ts.map +1 -1
  108. package/dist/core/nodes/LiteralNode.js +6 -4
  109. package/dist/core/nodes/MethodCallNode.d.ts +32 -2
  110. package/dist/core/nodes/MethodCallNode.d.ts.map +1 -1
  111. package/dist/core/nodes/MethodCallNode.js +57 -4
  112. package/dist/core/nodes/MethodNode.d.ts +34 -2
  113. package/dist/core/nodes/MethodNode.d.ts.map +1 -1
  114. package/dist/core/nodes/MethodNode.js +55 -3
  115. package/dist/core/nodes/ModuleNode.d.ts +31 -0
  116. package/dist/core/nodes/ModuleNode.d.ts.map +1 -1
  117. package/dist/core/nodes/ModuleNode.js +37 -0
  118. package/dist/core/nodes/NetworkRequestNode.d.ts +54 -0
  119. package/dist/core/nodes/NetworkRequestNode.d.ts.map +1 -0
  120. package/dist/core/nodes/NetworkRequestNode.js +65 -0
  121. package/dist/core/nodes/ObjectLiteralNode.d.ts +27 -0
  122. package/dist/core/nodes/ObjectLiteralNode.d.ts.map +1 -0
  123. package/dist/core/nodes/ObjectLiteralNode.js +43 -0
  124. package/dist/core/nodes/ParameterNode.d.ts +2 -2
  125. package/dist/core/nodes/ParameterNode.d.ts.map +1 -1
  126. package/dist/core/nodes/ParameterNode.js +5 -3
  127. package/dist/core/nodes/ScopeNode.d.ts +31 -0
  128. package/dist/core/nodes/ScopeNode.d.ts.map +1 -1
  129. package/dist/core/nodes/ScopeNode.js +49 -0
  130. package/dist/core/nodes/TypeNode.d.ts +36 -0
  131. package/dist/core/nodes/TypeNode.d.ts.map +1 -0
  132. package/dist/core/nodes/TypeNode.js +55 -0
  133. package/dist/core/nodes/VariableDeclarationNode.d.ts +29 -2
  134. package/dist/core/nodes/VariableDeclarationNode.d.ts.map +1 -1
  135. package/dist/core/nodes/VariableDeclarationNode.js +48 -4
  136. package/dist/core/nodes/index.d.ts +15 -1
  137. package/dist/core/nodes/index.d.ts.map +1 -1
  138. package/dist/core/nodes/index.js +17 -0
  139. package/dist/data/builtins/BuiltinRegistry.d.ts +78 -0
  140. package/dist/data/builtins/BuiltinRegistry.d.ts.map +1 -0
  141. package/dist/data/builtins/BuiltinRegistry.js +110 -0
  142. package/dist/data/builtins/definitions.d.ts +28 -0
  143. package/dist/data/builtins/definitions.d.ts.map +1 -0
  144. package/dist/data/builtins/definitions.js +250 -0
  145. package/dist/data/builtins/index.d.ts +10 -0
  146. package/dist/data/builtins/index.d.ts.map +1 -0
  147. package/dist/data/builtins/index.js +8 -0
  148. package/dist/data/builtins/jsGlobals.d.ts +18 -0
  149. package/dist/data/builtins/jsGlobals.d.ts.map +1 -0
  150. package/dist/data/builtins/jsGlobals.js +26 -0
  151. package/dist/data/builtins/types.d.ts +34 -0
  152. package/dist/data/builtins/types.d.ts.map +1 -0
  153. package/dist/data/builtins/types.js +7 -0
  154. package/dist/data/globals/definitions.d.ts +27 -0
  155. package/dist/data/globals/definitions.d.ts.map +1 -0
  156. package/dist/data/globals/definitions.js +117 -0
  157. package/dist/data/globals/index.d.ts +36 -0
  158. package/dist/data/globals/index.d.ts.map +1 -0
  159. package/dist/data/globals/index.js +52 -0
  160. package/dist/diagnostics/DiagnosticCollector.d.ts +98 -0
  161. package/dist/diagnostics/DiagnosticCollector.d.ts.map +1 -0
  162. package/dist/diagnostics/DiagnosticCollector.js +129 -0
  163. package/dist/diagnostics/DiagnosticReporter.d.ts +100 -0
  164. package/dist/diagnostics/DiagnosticReporter.d.ts.map +1 -0
  165. package/dist/diagnostics/DiagnosticReporter.js +247 -0
  166. package/dist/diagnostics/DiagnosticWriter.d.ts +31 -0
  167. package/dist/diagnostics/DiagnosticWriter.d.ts.map +1 -0
  168. package/dist/diagnostics/DiagnosticWriter.js +43 -0
  169. package/dist/diagnostics/index.d.ts +14 -0
  170. package/dist/diagnostics/index.d.ts.map +1 -0
  171. package/dist/diagnostics/index.js +11 -0
  172. package/dist/errors/GrafemaError.d.ts +161 -0
  173. package/dist/errors/GrafemaError.d.ts.map +1 -0
  174. package/dist/errors/GrafemaError.js +181 -0
  175. package/dist/index.d.ts +73 -1
  176. package/dist/index.d.ts.map +1 -1
  177. package/dist/index.js +70 -1
  178. package/dist/logging/Logger.d.ts +48 -0
  179. package/dist/logging/Logger.d.ts.map +1 -0
  180. package/dist/logging/Logger.js +134 -0
  181. package/dist/plugins/Plugin.d.ts +5 -1
  182. package/dist/plugins/Plugin.d.ts.map +1 -1
  183. package/dist/plugins/Plugin.js +33 -0
  184. package/dist/plugins/analysis/DatabaseAnalyzer.d.ts.map +1 -1
  185. package/dist/plugins/analysis/DatabaseAnalyzer.js +14 -6
  186. package/dist/plugins/analysis/ExpressAnalyzer.d.ts.map +1 -1
  187. package/dist/plugins/analysis/ExpressAnalyzer.js +29 -19
  188. package/dist/plugins/analysis/ExpressResponseAnalyzer.d.ts +148 -0
  189. package/dist/plugins/analysis/ExpressResponseAnalyzer.d.ts.map +1 -0
  190. package/dist/plugins/analysis/ExpressResponseAnalyzer.js +495 -0
  191. package/dist/plugins/analysis/ExpressRouteAnalyzer.d.ts.map +1 -1
  192. package/dist/plugins/analysis/ExpressRouteAnalyzer.js +71 -29
  193. package/dist/plugins/analysis/FetchAnalyzer.d.ts +41 -0
  194. package/dist/plugins/analysis/FetchAnalyzer.d.ts.map +1 -1
  195. package/dist/plugins/analysis/FetchAnalyzer.js +187 -19
  196. package/dist/plugins/analysis/IncrementalAnalysisPlugin.d.ts +6 -3
  197. package/dist/plugins/analysis/IncrementalAnalysisPlugin.d.ts.map +1 -1
  198. package/dist/plugins/analysis/IncrementalAnalysisPlugin.js +76 -80
  199. package/dist/plugins/analysis/JSASTAnalyzer.d.ts +313 -19
  200. package/dist/plugins/analysis/JSASTAnalyzer.d.ts.map +1 -1
  201. package/dist/plugins/analysis/JSASTAnalyzer.js +3430 -503
  202. package/dist/plugins/analysis/ReactAnalyzer.d.ts.map +1 -1
  203. package/dist/plugins/analysis/ReactAnalyzer.js +56 -57
  204. package/dist/plugins/analysis/RustAnalyzer.d.ts.map +1 -1
  205. package/dist/plugins/analysis/RustAnalyzer.js +16 -11
  206. package/dist/plugins/analysis/SQLiteAnalyzer.d.ts.map +1 -1
  207. package/dist/plugins/analysis/SQLiteAnalyzer.js +11 -7
  208. package/dist/plugins/analysis/ServiceLayerAnalyzer.d.ts.map +1 -1
  209. package/dist/plugins/analysis/ServiceLayerAnalyzer.js +21 -9
  210. package/dist/plugins/analysis/SocketIOAnalyzer.d.ts +9 -0
  211. package/dist/plugins/analysis/SocketIOAnalyzer.d.ts.map +1 -1
  212. package/dist/plugins/analysis/SocketIOAnalyzer.js +117 -21
  213. package/dist/plugins/analysis/SystemDbAnalyzer.d.ts.map +1 -1
  214. package/dist/plugins/analysis/SystemDbAnalyzer.js +15 -5
  215. package/dist/plugins/analysis/ast/GraphBuilder.d.ts +207 -4
  216. package/dist/plugins/analysis/ast/GraphBuilder.d.ts.map +1 -1
  217. package/dist/plugins/analysis/ast/GraphBuilder.js +1527 -316
  218. package/dist/plugins/analysis/ast/IdGenerator.d.ts +105 -0
  219. package/dist/plugins/analysis/ast/IdGenerator.d.ts.map +1 -0
  220. package/dist/plugins/analysis/ast/IdGenerator.js +116 -0
  221. package/dist/plugins/analysis/ast/types.d.ts +470 -5
  222. package/dist/plugins/analysis/ast/types.d.ts.map +1 -1
  223. package/dist/plugins/analysis/ast/utils/createParameterNodes.d.ts +33 -0
  224. package/dist/plugins/analysis/ast/utils/createParameterNodes.d.ts.map +1 -0
  225. package/dist/plugins/analysis/ast/utils/createParameterNodes.js +89 -0
  226. package/dist/plugins/analysis/ast/utils/index.d.ts +6 -0
  227. package/dist/plugins/analysis/ast/utils/index.d.ts.map +1 -0
  228. package/dist/plugins/analysis/ast/utils/index.js +5 -0
  229. package/dist/plugins/analysis/ast/utils/location.d.ts +87 -0
  230. package/dist/plugins/analysis/ast/utils/location.d.ts.map +1 -0
  231. package/dist/plugins/analysis/ast/utils/location.js +78 -0
  232. package/dist/plugins/analysis/ast/visitors/ASTVisitor.d.ts +14 -5
  233. package/dist/plugins/analysis/ast/visitors/ASTVisitor.d.ts.map +1 -1
  234. package/dist/plugins/analysis/ast/visitors/ASTVisitor.js +6 -5
  235. package/dist/plugins/analysis/ast/visitors/CallExpressionVisitor.d.ts +100 -9
  236. package/dist/plugins/analysis/ast/visitors/CallExpressionVisitor.d.ts.map +1 -1
  237. package/dist/plugins/analysis/ast/visitors/CallExpressionVisitor.js +674 -125
  238. package/dist/plugins/analysis/ast/visitors/ClassVisitor.d.ts +4 -1
  239. package/dist/plugins/analysis/ast/visitors/ClassVisitor.d.ts.map +1 -1
  240. package/dist/plugins/analysis/ast/visitors/ClassVisitor.js +72 -32
  241. package/dist/plugins/analysis/ast/visitors/FunctionVisitor.d.ts +14 -1
  242. package/dist/plugins/analysis/ast/visitors/FunctionVisitor.d.ts.map +1 -1
  243. package/dist/plugins/analysis/ast/visitors/FunctionVisitor.js +190 -63
  244. package/dist/plugins/analysis/ast/visitors/ImportExportVisitor.d.ts +4 -0
  245. package/dist/plugins/analysis/ast/visitors/ImportExportVisitor.d.ts.map +1 -1
  246. package/dist/plugins/analysis/ast/visitors/ImportExportVisitor.js +112 -8
  247. package/dist/plugins/analysis/ast/visitors/TypeScriptVisitor.d.ts +12 -1
  248. package/dist/plugins/analysis/ast/visitors/TypeScriptVisitor.d.ts.map +1 -1
  249. package/dist/plugins/analysis/ast/visitors/TypeScriptVisitor.js +36 -14
  250. package/dist/plugins/analysis/ast/visitors/VariableVisitor.d.ts +20 -2
  251. package/dist/plugins/analysis/ast/visitors/VariableVisitor.d.ts.map +1 -1
  252. package/dist/plugins/analysis/ast/visitors/VariableVisitor.js +243 -45
  253. package/dist/plugins/discovery/MonorepoServiceDiscovery.d.ts.map +1 -1
  254. package/dist/plugins/discovery/MonorepoServiceDiscovery.js +3 -2
  255. package/dist/plugins/discovery/SimpleProjectDiscovery.d.ts.map +1 -1
  256. package/dist/plugins/discovery/SimpleProjectDiscovery.js +5 -1
  257. package/dist/plugins/discovery/WorkspaceDiscovery.d.ts +22 -0
  258. package/dist/plugins/discovery/WorkspaceDiscovery.d.ts.map +1 -0
  259. package/dist/plugins/discovery/WorkspaceDiscovery.js +141 -0
  260. package/dist/plugins/discovery/resolveSourceEntrypoint.d.ts +46 -0
  261. package/dist/plugins/discovery/resolveSourceEntrypoint.d.ts.map +1 -0
  262. package/dist/plugins/discovery/resolveSourceEntrypoint.js +86 -0
  263. package/dist/plugins/discovery/workspaces/detector.d.ts +21 -0
  264. package/dist/plugins/discovery/workspaces/detector.d.ts.map +1 -0
  265. package/dist/plugins/discovery/workspaces/detector.js +49 -0
  266. package/dist/plugins/discovery/workspaces/globResolver.d.ts +35 -0
  267. package/dist/plugins/discovery/workspaces/globResolver.d.ts.map +1 -0
  268. package/dist/plugins/discovery/workspaces/globResolver.js +184 -0
  269. package/dist/plugins/discovery/workspaces/index.d.ts +9 -0
  270. package/dist/plugins/discovery/workspaces/index.d.ts.map +1 -0
  271. package/dist/plugins/discovery/workspaces/index.js +8 -0
  272. package/dist/plugins/discovery/workspaces/parsers.d.ts +38 -0
  273. package/dist/plugins/discovery/workspaces/parsers.d.ts.map +1 -0
  274. package/dist/plugins/discovery/workspaces/parsers.js +80 -0
  275. package/dist/plugins/enrichment/AliasTracker.d.ts.map +1 -1
  276. package/dist/plugins/enrichment/AliasTracker.js +29 -8
  277. package/dist/plugins/enrichment/ArgumentParameterLinker.d.ts +32 -0
  278. package/dist/plugins/enrichment/ArgumentParameterLinker.d.ts.map +1 -0
  279. package/dist/plugins/enrichment/ArgumentParameterLinker.js +175 -0
  280. package/dist/plugins/enrichment/ClosureCaptureEnricher.d.ts +51 -0
  281. package/dist/plugins/enrichment/ClosureCaptureEnricher.d.ts.map +1 -0
  282. package/dist/plugins/enrichment/ClosureCaptureEnricher.js +205 -0
  283. package/dist/plugins/enrichment/ExternalCallResolver.d.ts +42 -0
  284. package/dist/plugins/enrichment/ExternalCallResolver.d.ts.map +1 -0
  285. package/dist/plugins/enrichment/ExternalCallResolver.js +213 -0
  286. package/dist/plugins/enrichment/FunctionCallResolver.d.ts +58 -0
  287. package/dist/plugins/enrichment/FunctionCallResolver.d.ts.map +1 -0
  288. package/dist/plugins/enrichment/FunctionCallResolver.js +340 -0
  289. package/dist/plugins/enrichment/HTTPConnectionEnricher.d.ts +16 -3
  290. package/dist/plugins/enrichment/HTTPConnectionEnricher.d.ts.map +1 -1
  291. package/dist/plugins/enrichment/HTTPConnectionEnricher.js +78 -27
  292. package/dist/plugins/enrichment/ImportExportLinker.d.ts.map +1 -1
  293. package/dist/plugins/enrichment/ImportExportLinker.js +23 -6
  294. package/dist/plugins/enrichment/MethodCallResolver.d.ts.map +1 -1
  295. package/dist/plugins/enrichment/MethodCallResolver.js +33 -13
  296. package/dist/plugins/enrichment/MountPointResolver.d.ts +14 -12
  297. package/dist/plugins/enrichment/MountPointResolver.d.ts.map +1 -1
  298. package/dist/plugins/enrichment/MountPointResolver.js +173 -147
  299. package/dist/plugins/enrichment/NodejsBuiltinsResolver.d.ts +44 -0
  300. package/dist/plugins/enrichment/NodejsBuiltinsResolver.d.ts.map +1 -0
  301. package/dist/plugins/enrichment/NodejsBuiltinsResolver.js +271 -0
  302. package/dist/plugins/enrichment/PrefixEvaluator.d.ts.map +1 -1
  303. package/dist/plugins/enrichment/PrefixEvaluator.js +16 -7
  304. package/dist/plugins/enrichment/RustFFIEnricher.d.ts.map +1 -1
  305. package/dist/plugins/enrichment/RustFFIEnricher.js +6 -5
  306. package/dist/plugins/enrichment/ValueDomainAnalyzer.d.ts +22 -27
  307. package/dist/plugins/enrichment/ValueDomainAnalyzer.d.ts.map +1 -1
  308. package/dist/plugins/enrichment/ValueDomainAnalyzer.js +185 -143
  309. package/dist/plugins/indexing/IncrementalModuleIndexer.d.ts.map +1 -1
  310. package/dist/plugins/indexing/IncrementalModuleIndexer.js +23 -14
  311. package/dist/plugins/indexing/JSModuleIndexer.d.ts +15 -0
  312. package/dist/plugins/indexing/JSModuleIndexer.d.ts.map +1 -1
  313. package/dist/plugins/indexing/JSModuleIndexer.js +121 -31
  314. package/dist/plugins/indexing/RustModuleIndexer.d.ts +1 -1
  315. package/dist/plugins/indexing/RustModuleIndexer.d.ts.map +1 -1
  316. package/dist/plugins/indexing/RustModuleIndexer.js +8 -7
  317. package/dist/plugins/indexing/ServiceDetector.d.ts +10 -0
  318. package/dist/plugins/indexing/ServiceDetector.d.ts.map +1 -1
  319. package/dist/plugins/indexing/ServiceDetector.js +28 -15
  320. package/dist/plugins/validation/BrokenImportValidator.d.ts +31 -0
  321. package/dist/plugins/validation/BrokenImportValidator.d.ts.map +1 -0
  322. package/dist/plugins/validation/BrokenImportValidator.js +249 -0
  323. package/dist/plugins/validation/CallResolverValidator.d.ts +21 -10
  324. package/dist/plugins/validation/CallResolverValidator.d.ts.map +1 -1
  325. package/dist/plugins/validation/CallResolverValidator.js +103 -77
  326. package/dist/plugins/validation/DataFlowValidator.d.ts.map +1 -1
  327. package/dist/plugins/validation/DataFlowValidator.js +62 -49
  328. package/dist/plugins/validation/EvalBanValidator.d.ts.map +1 -1
  329. package/dist/plugins/validation/EvalBanValidator.js +17 -16
  330. package/dist/plugins/validation/GraphConnectivityValidator.d.ts.map +1 -1
  331. package/dist/plugins/validation/GraphConnectivityValidator.js +44 -24
  332. package/dist/plugins/validation/NodeCreationValidator.d.ts +85 -0
  333. package/dist/plugins/validation/NodeCreationValidator.d.ts.map +1 -0
  334. package/dist/plugins/validation/NodeCreationValidator.js +415 -0
  335. package/dist/plugins/validation/SQLInjectionValidator.d.ts.map +1 -1
  336. package/dist/plugins/validation/SQLInjectionValidator.js +61 -19
  337. package/dist/plugins/validation/ShadowingDetector.d.ts.map +1 -1
  338. package/dist/plugins/validation/ShadowingDetector.js +6 -5
  339. package/dist/plugins/validation/TypeScriptDeadCodeValidator.d.ts.map +1 -1
  340. package/dist/plugins/validation/TypeScriptDeadCodeValidator.js +12 -11
  341. package/dist/plugins/vcs/GitPlugin.d.ts.map +1 -1
  342. package/dist/plugins/vcs/GitPlugin.js +10 -12
  343. package/dist/plugins/vcs/VCSPlugin.d.ts +3 -2
  344. package/dist/plugins/vcs/VCSPlugin.d.ts.map +1 -1
  345. package/dist/plugins/vcs/VCSPlugin.js +5 -5
  346. package/dist/queries/findCallsInFunction.d.ts +52 -0
  347. package/dist/queries/findCallsInFunction.d.ts.map +1 -0
  348. package/dist/queries/findCallsInFunction.js +135 -0
  349. package/dist/queries/findContainingFunction.d.ts +45 -0
  350. package/dist/queries/findContainingFunction.d.ts.map +1 -0
  351. package/dist/queries/findContainingFunction.js +54 -0
  352. package/dist/queries/index.d.ts +14 -0
  353. package/dist/queries/index.d.ts.map +1 -0
  354. package/dist/queries/index.js +11 -0
  355. package/dist/queries/traceValues.d.ts +70 -0
  356. package/dist/queries/traceValues.d.ts.map +1 -0
  357. package/dist/queries/traceValues.js +299 -0
  358. package/dist/queries/types.d.ts +163 -0
  359. package/dist/queries/types.d.ts.map +1 -0
  360. package/dist/queries/types.js +9 -0
  361. package/dist/schema/GraphSchemaExtractor.d.ts +53 -0
  362. package/dist/schema/GraphSchemaExtractor.d.ts.map +1 -0
  363. package/dist/schema/GraphSchemaExtractor.js +124 -0
  364. package/dist/schema/InterfaceSchemaExtractor.d.ts +73 -0
  365. package/dist/schema/InterfaceSchemaExtractor.d.ts.map +1 -0
  366. package/dist/schema/InterfaceSchemaExtractor.js +112 -0
  367. package/dist/schema/index.d.ts +5 -0
  368. package/dist/schema/index.d.ts.map +1 -0
  369. package/dist/schema/index.js +2 -0
  370. package/dist/storage/backends/RFDBServerBackend.d.ts +21 -34
  371. package/dist/storage/backends/RFDBServerBackend.d.ts.map +1 -1
  372. package/dist/storage/backends/RFDBServerBackend.js +72 -62
  373. package/dist/storage/backends/typeValidation.d.ts.map +1 -1
  374. package/dist/storage/backends/typeValidation.js +1 -0
  375. package/dist/validation/PathValidator.d.ts +1 -2
  376. package/dist/validation/PathValidator.d.ts.map +1 -1
  377. package/package.json +3 -3
  378. package/src/Orchestrator.ts +272 -27
  379. package/src/config/ConfigLoader.ts +354 -0
  380. package/src/config/index.ts +5 -0
  381. package/src/core/ASTWorker.ts +143 -139
  382. package/src/core/CoverageAnalyzer.ts +243 -0
  383. package/src/core/FileExplainer.ts +179 -0
  384. package/src/core/FileNodeManager.ts +100 -0
  385. package/src/core/GraphFreshnessChecker.ts +143 -0
  386. package/src/core/HashUtils.ts +48 -0
  387. package/src/core/IncrementalReanalyzer.ts +192 -0
  388. package/src/core/NodeFactory.ts +470 -23
  389. package/src/core/ScopeTracker.ts +154 -0
  390. package/src/core/SemanticId.ts +192 -0
  391. package/src/core/VersionManager.ts +3 -2
  392. package/src/core/nodes/ArgumentExpressionNode.ts +89 -0
  393. package/src/core/nodes/ArrayLiteralNode.ts +66 -0
  394. package/src/core/nodes/BranchNode.ts +113 -0
  395. package/src/core/nodes/CallSiteNode.ts +64 -4
  396. package/src/core/nodes/CaseNode.ts +123 -0
  397. package/src/core/nodes/ClassNode.ts +67 -4
  398. package/src/core/nodes/ConstantNode.ts +5 -4
  399. package/src/core/nodes/ConstructorCallNode.ts +217 -0
  400. package/src/core/nodes/DatabaseQueryNode.ts +5 -1
  401. package/src/core/nodes/DecoratorNode.ts +92 -0
  402. package/src/core/nodes/EnumNode.ts +87 -0
  403. package/src/core/nodes/EventListenerNode.ts +7 -4
  404. package/src/core/nodes/ExportNode.ts +74 -4
  405. package/src/core/nodes/ExpressionNode.ts +232 -0
  406. package/src/core/nodes/ExternalModuleNode.ts +65 -0
  407. package/src/core/nodes/ExternalStdioNode.ts +17 -9
  408. package/src/core/nodes/FunctionNode.ts +101 -1
  409. package/src/core/nodes/HttpRequestNode.ts +7 -4
  410. package/src/core/nodes/ImportNode.ts +62 -13
  411. package/src/core/nodes/InterfaceNode.ts +92 -0
  412. package/src/core/nodes/IssueNode.ts +177 -0
  413. package/src/core/nodes/LiteralNode.ts +5 -4
  414. package/src/core/nodes/MethodCallNode.ts +70 -4
  415. package/src/core/nodes/MethodNode.ts +68 -3
  416. package/src/core/nodes/ModuleNode.ts +50 -0
  417. package/src/core/nodes/NetworkRequestNode.ts +77 -0
  418. package/src/core/nodes/ObjectLiteralNode.ts +66 -0
  419. package/src/core/nodes/ParameterNode.ts +4 -3
  420. package/src/core/nodes/ScopeNode.ts +65 -0
  421. package/src/core/nodes/TypeNode.ts +79 -0
  422. package/src/core/nodes/VariableDeclarationNode.ts +58 -4
  423. package/src/core/nodes/index.ts +21 -1
  424. package/src/data/builtins/BuiltinRegistry.ts +124 -0
  425. package/src/data/builtins/definitions.ts +267 -0
  426. package/src/data/builtins/index.ts +10 -0
  427. package/src/data/builtins/jsGlobals.ts +28 -0
  428. package/src/data/builtins/types.ts +36 -0
  429. package/src/data/globals/definitions.ts +156 -0
  430. package/src/data/globals/index.ts +66 -0
  431. package/src/diagnostics/DiagnosticCollector.ts +163 -0
  432. package/src/diagnostics/DiagnosticReporter.ts +324 -0
  433. package/src/diagnostics/DiagnosticWriter.ts +50 -0
  434. package/src/diagnostics/index.ts +16 -0
  435. package/src/errors/GrafemaError.ts +239 -0
  436. package/src/index.ts +193 -1
  437. package/src/logging/Logger.ts +152 -0
  438. package/src/plugins/Plugin.ts +42 -0
  439. package/src/plugins/analysis/DatabaseAnalyzer.ts +16 -8
  440. package/src/plugins/analysis/ExpressAnalyzer.ts +33 -19
  441. package/src/plugins/analysis/ExpressResponseAnalyzer.ts +636 -0
  442. package/src/plugins/analysis/ExpressRouteAnalyzer.ts +76 -36
  443. package/src/plugins/analysis/FetchAnalyzer.ts +232 -21
  444. package/src/plugins/analysis/IncrementalAnalysisPlugin.ts +84 -101
  445. package/src/plugins/analysis/JSASTAnalyzer.ts +4265 -587
  446. package/src/plugins/analysis/ReactAnalyzer.ts +57 -57
  447. package/src/plugins/analysis/RustAnalyzer.ts +16 -11
  448. package/src/plugins/analysis/SQLiteAnalyzer.ts +13 -7
  449. package/src/plugins/analysis/ServiceLayerAnalyzer.ts +22 -16
  450. package/src/plugins/analysis/SocketIOAnalyzer.ts +151 -28
  451. package/src/plugins/analysis/SystemDbAnalyzer.ts +16 -11
  452. package/src/plugins/analysis/ast/GraphBuilder.ts +1947 -327
  453. package/src/plugins/analysis/ast/IdGenerator.ts +177 -0
  454. package/src/plugins/analysis/ast/types.ts +596 -6
  455. package/src/plugins/analysis/ast/utils/createParameterNodes.ts +104 -0
  456. package/src/plugins/analysis/ast/utils/index.ts +12 -0
  457. package/src/plugins/analysis/ast/utils/location.ts +103 -0
  458. package/src/plugins/analysis/ast/visitors/ASTVisitor.ts +19 -8
  459. package/src/plugins/analysis/ast/visitors/CallExpressionVisitor.ts +924 -83
  460. package/src/plugins/analysis/ast/visitors/ClassVisitor.ts +97 -44
  461. package/src/plugins/analysis/ast/visitors/FunctionVisitor.ts +234 -93
  462. package/src/plugins/analysis/ast/visitors/ImportExportVisitor.ts +124 -9
  463. package/src/plugins/analysis/ast/visitors/TypeScriptVisitor.ts +41 -14
  464. package/src/plugins/analysis/ast/visitors/VariableVisitor.ts +294 -49
  465. package/src/plugins/discovery/MonorepoServiceDiscovery.ts +3 -2
  466. package/src/plugins/discovery/SimpleProjectDiscovery.ts +6 -1
  467. package/src/plugins/discovery/WorkspaceDiscovery.ts +184 -0
  468. package/src/plugins/discovery/resolveSourceEntrypoint.ts +103 -0
  469. package/src/plugins/discovery/workspaces/detector.ts +63 -0
  470. package/src/plugins/discovery/workspaces/globResolver.ts +229 -0
  471. package/src/plugins/discovery/workspaces/index.ts +23 -0
  472. package/src/plugins/discovery/workspaces/parsers.ts +99 -0
  473. package/src/plugins/enrichment/AliasTracker.ts +35 -8
  474. package/src/plugins/enrichment/ArgumentParameterLinker.ts +240 -0
  475. package/src/plugins/enrichment/ClosureCaptureEnricher.ts +267 -0
  476. package/src/plugins/enrichment/ExternalCallResolver.ts +262 -0
  477. package/src/plugins/enrichment/FunctionCallResolver.ts +456 -0
  478. package/src/plugins/enrichment/HTTPConnectionEnricher.ts +84 -27
  479. package/src/plugins/enrichment/ImportExportLinker.ts +24 -6
  480. package/src/plugins/enrichment/MethodCallResolver.ts +39 -13
  481. package/src/plugins/enrichment/MountPointResolver.ts +208 -195
  482. package/src/plugins/enrichment/NodejsBuiltinsResolver.ts +365 -0
  483. package/src/plugins/enrichment/PrefixEvaluator.ts +16 -7
  484. package/src/plugins/enrichment/RustFFIEnricher.ts +6 -5
  485. package/src/plugins/enrichment/ValueDomainAnalyzer.ts +209 -189
  486. package/src/plugins/indexing/IncrementalModuleIndexer.ts +23 -14
  487. package/src/plugins/indexing/JSModuleIndexer.ts +140 -34
  488. package/src/plugins/indexing/RustModuleIndexer.ts +8 -7
  489. package/src/plugins/validation/BrokenImportValidator.ts +325 -0
  490. package/src/plugins/validation/CallResolverValidator.ts +131 -110
  491. package/src/plugins/validation/DataFlowValidator.ts +88 -67
  492. package/src/plugins/validation/EvalBanValidator.ts +17 -16
  493. package/src/plugins/validation/GraphConnectivityValidator.ts +58 -24
  494. package/src/plugins/validation/NodeCreationValidator.ts +554 -0
  495. package/src/plugins/validation/SQLInjectionValidator.ts +63 -20
  496. package/src/plugins/validation/ShadowingDetector.ts +6 -5
  497. package/src/plugins/validation/TypeScriptDeadCodeValidator.ts +12 -11
  498. package/src/plugins/vcs/GitPlugin.ts +40 -12
  499. package/src/plugins/vcs/VCSPlugin.ts +7 -5
  500. package/src/queries/README.md +46 -0
  501. package/src/queries/findCallsInFunction.ts +206 -0
  502. package/src/queries/findContainingFunction.ts +83 -0
  503. package/src/queries/index.ts +23 -0
  504. package/src/queries/traceValues.ts +398 -0
  505. package/src/queries/types.ts +187 -0
  506. package/src/schema/GraphSchemaExtractor.ts +177 -0
  507. package/src/schema/InterfaceSchemaExtractor.ts +173 -0
  508. package/src/schema/index.ts +5 -0
  509. package/src/storage/backends/RFDBServerBackend.ts +100 -98
  510. package/src/storage/backends/typeValidation.ts +1 -0
  511. package/src/validation/PathValidator.ts +1 -1
  512. package/dist/core/AnalysisWorker.d.ts +0 -14
  513. package/dist/core/AnalysisWorker.d.ts.map +0 -1
  514. package/dist/core/AnalysisWorker.js +0 -307
  515. package/dist/core/ParallelAnalyzer.d.ts +0 -120
  516. package/dist/core/ParallelAnalyzer.d.ts.map +0 -1
  517. package/dist/core/ParallelAnalyzer.js +0 -331
  518. package/dist/core/QueueWorker.d.ts +0 -12
  519. package/dist/core/QueueWorker.d.ts.map +0 -1
  520. package/dist/core/QueueWorker.js +0 -567
  521. package/dist/core/RFDBClient.d.ts +0 -179
  522. package/dist/core/RFDBClient.d.ts.map +0 -1
  523. package/dist/core/RFDBClient.js +0 -429
  524. package/dist/plugins/discovery/ZonServiceDiscovery.d.ts +0 -19
  525. package/dist/plugins/discovery/ZonServiceDiscovery.d.ts.map +0 -1
  526. package/dist/plugins/discovery/ZonServiceDiscovery.js +0 -204
  527. package/src/core/AnalysisWorker.ts +0 -410
  528. package/src/core/ParallelAnalyzer.ts +0 -476
  529. package/src/core/QueueWorker.ts +0 -780
  530. package/src/plugins/indexing/ServiceDetector.ts +0 -230
@@ -7,15 +7,7 @@ import * as t from '@babel/types';
7
7
  import { Plugin } from '../Plugin.js';
8
8
  import { type VisitorModule, type VisitorCollections } from './ast/visitors/index.js';
9
9
  import type { PluginContext, PluginResult, PluginMetadata, GraphBackend } from '@grafema/types';
10
- import type { ModuleNode, LiteralInfo, VariableAssignmentInfo, CounterRef, ExtractedVariable } from './ast/types.js';
11
- /**
12
- * Context for tracking semantic IDs within a scope hierarchy.
13
- * Used to generate stable, line-number-independent IDs for SCOPE nodes.
14
- */
15
- interface ScopeContext {
16
- semanticPath: string;
17
- siblingCounters: Map<string, number>;
18
- }
10
+ import type { ModuleNode, LiteralInfo, VariableAssignmentInfo, ObjectLiteralInfo, ObjectPropertyInfo, CounterRef, ExtractedVariable } from './ast/types.js';
19
11
  interface AnalysisManifest {
20
12
  projectPath: string;
21
13
  [key: string]: unknown;
@@ -24,13 +16,14 @@ interface AnalyzeContext extends PluginContext {
24
16
  manifest?: AnalysisManifest;
25
17
  forceAnalysis?: boolean;
26
18
  workerCount?: number;
19
+ /** Enable parallel parsing using ASTWorkerPool (worker_threads) */
20
+ parallelParsing?: boolean;
27
21
  onProgress?: (info: Record<string, unknown>) => void;
28
22
  }
29
23
  export declare class JSASTAnalyzer extends Plugin {
30
24
  private graphBuilder;
31
25
  private analyzedModules;
32
26
  private profiler;
33
- private _cacheCleared;
34
27
  constructor();
35
28
  get metadata(): PluginMetadata;
36
29
  /**
@@ -42,6 +35,19 @@ export declare class JSASTAnalyzer extends Plugin {
42
35
  */
43
36
  shouldAnalyzeModule(module: ModuleNode, graph: GraphBackend, forceAnalysis: boolean): Promise<boolean>;
44
37
  execute(context: AnalyzeContext): Promise<PluginResult>;
38
+ /**
39
+ * Execute parallel analysis using ASTWorkerPool (worker_threads).
40
+ *
41
+ * This method uses actual OS threads for true parallel CPU-intensive parsing.
42
+ * Workers generate semantic IDs using ScopeTracker, matching sequential behavior.
43
+ *
44
+ * @param modules - Modules to analyze
45
+ * @param graph - Graph backend for writing results
46
+ * @param projectPath - Project root path
47
+ * @param context - Analysis context with options
48
+ * @returns Plugin result with node/edge counts
49
+ */
50
+ private executeParallel;
45
51
  /**
46
52
  * Extract variable names from destructuring patterns
47
53
  * Uses t.isX() type guards to avoid casts
@@ -50,7 +56,43 @@ export declare class JSASTAnalyzer extends Plugin {
50
56
  /**
51
57
  * Отслеживает присваивание переменной для data flow анализа
52
58
  */
53
- trackVariableAssignment(initNode: t.Expression | null | undefined, variableId: string, variableName: string, module: VisitorModule, line: number, literals: LiteralInfo[], variableAssignments: VariableAssignmentInfo[], literalCounterRef: CounterRef): void;
59
+ trackVariableAssignment(initNode: t.Expression | null | undefined, variableId: string, variableName: string, module: VisitorModule, line: number, literals: LiteralInfo[], variableAssignments: VariableAssignmentInfo[], literalCounterRef: CounterRef, objectLiterals: ObjectLiteralInfo[], objectProperties: ObjectPropertyInfo[], objectLiteralCounterRef: CounterRef): void;
60
+ /**
61
+ * Extract object properties and create ObjectPropertyInfo records.
62
+ * Handles nested object/array literals recursively. (REG-328)
63
+ */
64
+ private extractObjectProperties;
65
+ /**
66
+ * Recursively unwrap AwaitExpression to get the underlying expression.
67
+ * await await fetch() -> fetch()
68
+ */
69
+ private unwrapAwaitExpression;
70
+ /**
71
+ * Extract call site information from CallExpression.
72
+ * Returns null if not a valid CallExpression.
73
+ */
74
+ private extractCallInfo;
75
+ /**
76
+ * Check if expression is CallExpression or AwaitExpression wrapping a call.
77
+ */
78
+ private isCallOrAwaitExpression;
79
+ /**
80
+ * Tracks destructuring assignments for data flow analysis.
81
+ *
82
+ * For ObjectPattern: creates EXPRESSION nodes representing source.property
83
+ * For ArrayPattern: creates EXPRESSION nodes representing source[index]
84
+ *
85
+ * Supports:
86
+ * - Phase 1 (REG-201): Identifier init expressions (const { x } = obj)
87
+ * - Phase 2 (REG-223): CallExpression/AwaitExpression init (const { x } = getConfig())
88
+ *
89
+ * @param pattern - The destructuring pattern (ObjectPattern or ArrayPattern)
90
+ * @param initNode - The init expression (right-hand side)
91
+ * @param variables - Extracted variables with propertyPath/arrayIndex metadata and IDs
92
+ * @param module - Module context
93
+ * @param variableAssignments - Collection to push assignment info to
94
+ */
95
+ private trackDestructuringAssignment;
54
96
  /**
55
97
  * Получить все MODULE ноды из графа
56
98
  */
@@ -63,22 +105,274 @@ export declare class JSASTAnalyzer extends Plugin {
63
105
  edges: number;
64
106
  }>;
65
107
  /**
66
- * Helper to generate semantic ID for a scope and update counters
108
+ * Helper to generate semantic ID for a scope using ScopeTracker.
109
+ * Format: "scopePath:scopeType[index]" e.g. "MyClass->myMethod:if_statement[0]"
67
110
  */
68
111
  private generateSemanticId;
69
112
  /**
70
- * Helper to create child scope context from a semantic ID
113
+ * Generate a unique anonymous function name within the current scope.
114
+ * Uses ScopeTracker.getSiblingIndex() for stable naming.
71
115
  */
72
- private createChildScopeContext;
116
+ private generateAnonymousName;
73
117
  /**
74
- * Generate a unique anonymous function name within the current scope
75
- * Uses scopeCtx.siblingCounters to ensure stability across JS/TS versions
118
+ * Factory method to create loop scope handlers.
119
+ * All loop statements (for, for-in, for-of, while, do-while) follow the same pattern:
120
+ * 1. Create scope with SCOPE#<scopeType>#file#line:counter
121
+ * 2. Generate semantic ID
122
+ * 3. Push to scopes array
123
+ * 4. Enter/exit scope tracker
124
+ *
125
+ * @param trackerScopeType - Scope type for ScopeTracker (e.g., 'for', 'for-in', 'while')
126
+ * @param scopeType - Scope type for the graph node (e.g., 'for-loop', 'for-in-loop')
127
+ * @param parentScopeId - Parent scope ID for the scope node
128
+ * @param module - Module context
129
+ * @param scopes - Collection to push scope nodes to
130
+ * @param scopeCounterRef - Counter for unique scope IDs
131
+ * @param scopeTracker - Tracker for semantic ID generation
76
132
  */
77
- private generateAnonymousName;
78
133
  /**
79
- * Анализирует тело функции и извлекает переменные, вызовы, условные блоки
134
+ * Handles VariableDeclaration nodes within function bodies.
135
+ *
136
+ * Extracts variable names from patterns (including destructuring), determines
137
+ * if the variable should be CONSTANT or VARIABLE, generates semantic or legacy IDs,
138
+ * and tracks class instantiations and variable assignments.
139
+ *
140
+ * @param varPath - The NodePath for the VariableDeclaration
141
+ * @param parentScopeId - Parent scope ID for the variable
142
+ * @param module - Module context with file info
143
+ * @param variableDeclarations - Collection to push variable declarations to
144
+ * @param classInstantiations - Collection to push class instantiations to
145
+ * @param literals - Collection for literal tracking
146
+ * @param variableAssignments - Collection for variable assignment tracking
147
+ * @param varDeclCounterRef - Counter for unique variable declaration IDs
148
+ * @param literalCounterRef - Counter for unique literal IDs
149
+ * @param scopeTracker - Tracker for semantic ID generation
150
+ * @param parentScopeVariables - Set to track variables for closure analysis
151
+ * @param objectLiterals - Collection for object literal nodes (REG-328)
152
+ * @param objectProperties - Collection for object property edges (REG-328)
153
+ * @param objectLiteralCounterRef - Counter for unique object literal IDs (REG-328)
154
+ */
155
+ private handleVariableDeclaration;
156
+ private createLoopScopeHandler;
157
+ /**
158
+ * Factory method to create TryStatement handler.
159
+ * Creates TRY_BLOCK, CATCH_BLOCK, FINALLY_BLOCK nodes and body SCOPEs.
160
+ * Does NOT use skip() - allows normal traversal for CallExpression/NewExpression visitors.
161
+ *
162
+ * Phase 4 (REG-267): Creates control flow nodes with HAS_CATCH and HAS_FINALLY edges.
163
+ *
164
+ * @param parentScopeId - Parent scope ID for the scope nodes
165
+ * @param module - Module context
166
+ * @param scopes - Collection to push scope nodes to
167
+ * @param tryBlocks - Collection to push TRY_BLOCK nodes to
168
+ * @param catchBlocks - Collection to push CATCH_BLOCK nodes to
169
+ * @param finallyBlocks - Collection to push FINALLY_BLOCK nodes to
170
+ * @param scopeCounterRef - Counter for unique scope IDs
171
+ * @param tryBlockCounterRef - Counter for unique TRY_BLOCK IDs
172
+ * @param catchBlockCounterRef - Counter for unique CATCH_BLOCK IDs
173
+ * @param finallyBlockCounterRef - Counter for unique FINALLY_BLOCK IDs
174
+ * @param scopeTracker - Tracker for semantic ID generation
175
+ * @param tryScopeMap - Map to track try/catch/finally scope transitions
176
+ * @param scopeIdStack - Stack for tracking current scope ID for CONTAINS edges
177
+ */
178
+ private createTryStatementHandler;
179
+ /**
180
+ * Factory method to create CatchClause handler.
181
+ * Handles scope transition from try to catch and processes catch parameter.
182
+ *
183
+ * @param module - Module context
184
+ * @param variableDeclarations - Collection to push variable declarations to
185
+ * @param varDeclCounterRef - Counter for unique variable declaration IDs
186
+ * @param scopeTracker - Tracker for semantic ID generation
187
+ * @param tryScopeMap - Map to track try/catch/finally scope transitions
188
+ * @param scopeIdStack - Stack for tracking current scope ID for CONTAINS edges
189
+ */
190
+ private createCatchClauseHandler;
191
+ /**
192
+ * Handles SwitchStatement nodes.
193
+ * Creates BRANCH node for switch, CASE nodes for each case clause,
194
+ * and EXPRESSION node for discriminant.
195
+ *
196
+ * @param switchPath - The NodePath for the SwitchStatement
197
+ * @param parentScopeId - Parent scope ID
198
+ * @param module - Module context
199
+ * @param collections - AST collections
200
+ * @param scopeTracker - Tracker for semantic ID generation
201
+ */
202
+ private handleSwitchStatement;
203
+ /**
204
+ * Extract EXPRESSION node ID and metadata for switch discriminant
205
+ */
206
+ private extractDiscriminantExpression;
207
+ /**
208
+ * Extract case test value as a primitive
209
+ */
210
+ private extractCaseValue;
211
+ /**
212
+ * Check if case clause terminates (has break, return, throw)
213
+ */
214
+ private caseTerminates;
215
+ /**
216
+ * Check if a block/statement terminates
217
+ */
218
+ private blockTerminates;
219
+ /**
220
+ * Count logical operators (&& and ||) in a condition expression.
221
+ * Used for cyclomatic complexity calculation (Phase 6 REG-267).
222
+ *
223
+ * @param node - The condition expression to analyze
224
+ * @returns Number of logical operators found
225
+ */
226
+ private countLogicalOperators;
227
+ /**
228
+ * Convert MemberExpression to string representation
229
+ */
230
+ private memberExpressionToString;
231
+ /**
232
+ * Factory method to create IfStatement handler.
233
+ * Creates BRANCH node for if statement and SCOPE nodes for if/else bodies.
234
+ * Tracks if/else scope transitions via ifElseScopeMap.
235
+ *
236
+ * Phase 3 (REG-267): Creates BRANCH node with branchType='if' and
237
+ * HAS_CONSEQUENT/HAS_ALTERNATE edges to body SCOPEs.
238
+ *
239
+ * @param parentScopeId - Parent scope ID for the scope nodes
240
+ * @param module - Module context
241
+ * @param scopes - Collection to push scope nodes to
242
+ * @param branches - Collection to push BRANCH nodes to
243
+ * @param ifScopeCounterRef - Counter for unique if scope IDs
244
+ * @param branchCounterRef - Counter for unique BRANCH IDs
245
+ * @param scopeTracker - Tracker for semantic ID generation
246
+ * @param sourceCode - Source code for extracting condition text
247
+ * @param ifElseScopeMap - Map to track if/else scope transitions
248
+ * @param scopeIdStack - Stack for tracking current scope ID for CONTAINS edges
249
+ */
250
+ private createIfStatementHandler;
251
+ /**
252
+ * Factory method to create ConditionalExpression (ternary) handler.
253
+ * Creates BRANCH nodes with branchType='ternary' and increments branchCount for cyclomatic complexity.
254
+ *
255
+ * Key difference from IfStatement: ternary has EXPRESSIONS as branches, not SCOPE blocks.
256
+ * We store consequentExpressionId and alternateExpressionId in BranchInfo for HAS_CONSEQUENT/HAS_ALTERNATE edges.
257
+ *
258
+ * @param parentScopeId - Parent scope ID for the BRANCH node
259
+ * @param module - Module context
260
+ * @param branches - Collection to push BRANCH nodes to
261
+ * @param branchCounterRef - Counter for unique BRANCH IDs
262
+ * @param scopeTracker - Tracker for semantic ID generation
263
+ * @param scopeIdStack - Stack for tracking current scope ID for CONTAINS edges
264
+ * @param controlFlowState - State for tracking control flow metrics (complexity)
265
+ * @param countLogicalOperators - Function to count logical operators in condition
266
+ */
267
+ private createConditionalExpressionHandler;
268
+ /**
269
+ * Factory method to create BlockStatement handler for tracking if/else and try/finally transitions.
270
+ * When entering an else block, switches scope from if to else.
271
+ * When entering a finally block, switches scope from try/catch to finally.
272
+ *
273
+ * @param scopeTracker - Tracker for semantic ID generation
274
+ * @param ifElseScopeMap - Map to track if/else scope transitions
275
+ * @param tryScopeMap - Map to track try/catch/finally scope transitions
276
+ * @param scopeIdStack - Stack for tracking current scope ID for CONTAINS edges
277
+ */
278
+ private createBlockStatementHandler;
279
+ /**
280
+ * Анализирует тело функции и извлекает переменные, вызовы, условные блоки.
281
+ * Uses ScopeTracker from collections for semantic ID generation.
282
+ */
283
+ analyzeFunctionBody(funcPath: NodePath<t.Function>, parentScopeId: string, module: VisitorModule, collections: VisitorCollections): void;
284
+ /**
285
+ * Handle CallExpression nodes: direct function calls (greet(), main())
286
+ * and method calls (obj.method(), data.process()).
287
+ *
288
+ * Handles:
289
+ * - Direct function calls (Identifier callee) → callSites collection
290
+ * - Method calls (MemberExpression callee) → methodCalls collection
291
+ * - Array mutation detection (push, unshift, splice)
292
+ * - Object.assign() detection
293
+ *
294
+ * @param callNode - The call expression AST node
295
+ * @param processedCallSites - Set of already processed call site keys to avoid duplicates
296
+ * @param processedMethodCalls - Set of already processed method call keys to avoid duplicates
297
+ * @param callSites - Collection for direct function calls
298
+ * @param methodCalls - Collection for method calls
299
+ * @param module - Current module being analyzed
300
+ * @param callSiteCounterRef - Counter for legacy ID generation
301
+ * @param scopeTracker - Optional scope tracker for semantic ID generation
302
+ * @param parentScopeId - ID of the parent scope containing this call
303
+ * @param collections - Full collections object for array/object mutations
304
+ */
305
+ private handleCallExpression;
306
+ /**
307
+ * Detect array mutation calls (push, unshift, splice) inside functions
308
+ * and collect mutation info for FLOWS_INTO edge creation in GraphBuilder
309
+ *
310
+ * REG-117: Added isNested, baseObjectName, propertyName for nested mutations
311
+ *
312
+ * @param callNode - The call expression node
313
+ * @param arrayName - Name of the array being mutated
314
+ * @param method - The mutation method (push, unshift, splice)
315
+ * @param module - Current module being analyzed
316
+ * @param arrayMutations - Collection to push mutation info into
317
+ * @param scopeTracker - Optional scope tracker for semantic IDs
318
+ * @param isNested - REG-117: true if this is a nested mutation (obj.arr.push)
319
+ * @param baseObjectName - REG-117: base object name for nested mutations
320
+ * @param propertyName - REG-117: property name for nested mutations
321
+ */
322
+ private detectArrayMutationInFunction;
323
+ /**
324
+ * Detect indexed array assignment: arr[i] = value
325
+ * Creates ArrayMutationInfo for FLOWS_INTO edge generation in GraphBuilder
326
+ *
327
+ * @param assignNode - The assignment expression node
328
+ * @param module - Current module being analyzed
329
+ * @param arrayMutations - Collection to push mutation info into
330
+ */
331
+ private detectIndexedArrayAssignment;
332
+ /**
333
+ * Detect object property assignment: obj.prop = value, obj['prop'] = value
334
+ * Creates ObjectMutationInfo for FLOWS_INTO edge generation in GraphBuilder
335
+ *
336
+ * @param assignNode - The assignment expression node
337
+ * @param module - Current module being analyzed
338
+ * @param objectMutations - Collection to push mutation info into
339
+ * @param scopeTracker - Optional scope tracker for semantic IDs
340
+ */
341
+ private detectObjectPropertyAssignment;
342
+ /**
343
+ * Collect update expression info for graph building (i++, obj.prop++, arr[i]++).
344
+ *
345
+ * REG-288: Simple identifiers (i++, --count)
346
+ * REG-312: Member expressions (obj.prop++, arr[i]++, this.count++)
347
+ *
348
+ * Creates UpdateExpressionInfo entries that GraphBuilder uses to create:
349
+ * - UPDATE_EXPRESSION nodes
350
+ * - MODIFIES edges to target variables/objects
351
+ * - READS_FROM self-loops
352
+ * - CONTAINS edges for scope hierarchy
353
+ */
354
+ private collectUpdateExpression;
355
+ /**
356
+ * Detect variable reassignment for FLOWS_INTO edge creation.
357
+ * Handles all assignment operators: =, +=, -=, *=, /=, etc.
358
+ *
359
+ * Captures COMPLETE metadata for:
360
+ * - LITERAL values (literalValue field)
361
+ * - EXPRESSION nodes (expressionType, expressionMetadata fields)
362
+ * - VARIABLE, CALL_SITE, METHOD_CALL references
363
+ *
364
+ * REG-290: No deferred functionality - all value types captured.
365
+ */
366
+ private detectVariableReassignment;
367
+ /**
368
+ * Extract value information from an expression for mutation tracking
369
+ */
370
+ private extractMutationValue;
371
+ /**
372
+ * Detect Object.assign() calls inside functions
373
+ * Creates ObjectMutationInfo for FLOWS_INTO edge generation in GraphBuilder
80
374
  */
81
- analyzeFunctionBody(funcPath: NodePath<t.Function>, parentScopeId: string, module: VisitorModule, collections: VisitorCollections, scopeCtx?: ScopeContext): void;
375
+ private detectObjectAssignInFunction;
82
376
  }
83
377
  export {};
84
378
  //# sourceMappingURL=JSASTAnalyzer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"JSASTAnalyzer.d.ts","sourceRoot":"","sources":["../../../src/plugins/analysis/JSASTAnalyzer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"JSASTAnalyzer.d.ts","sourceRoot":"","sources":["../../../src/plugins/analysis/JSASTAnalyzer.ts"],"names":[],"mappings":"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"}