@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
@@ -13,7 +13,6 @@ export interface ModuleNode {
13
13
  }
14
14
  export interface FunctionInfo {
15
15
  id: string;
16
- stableId: string;
17
16
  type: 'FUNCTION';
18
17
  name: string;
19
18
  file: string;
@@ -25,15 +24,19 @@ export interface FunctionInfo {
25
24
  isAssignment?: boolean;
26
25
  isCallback?: boolean;
27
26
  parentScopeId?: string;
27
+ controlFlow?: ControlFlowMetadata;
28
28
  }
29
29
  export interface ParameterInfo {
30
30
  id: string;
31
+ semanticId?: string;
31
32
  type: 'PARAMETER';
32
33
  name: string;
33
34
  file: string;
34
35
  line: number;
35
36
  index?: number;
36
- functionId: string;
37
+ hasDefault?: boolean;
38
+ isRest?: boolean;
39
+ functionId?: string;
37
40
  parentFunctionId?: string;
38
41
  }
39
42
  export interface ScopeInfo {
@@ -56,8 +59,103 @@ export interface ScopeInfo {
56
59
  line: number;
57
60
  }>;
58
61
  }
62
+ export interface BranchInfo {
63
+ id: string;
64
+ semanticId?: string;
65
+ type: 'BRANCH';
66
+ branchType: 'switch' | 'if' | 'ternary';
67
+ file: string;
68
+ line: number;
69
+ parentScopeId?: string;
70
+ discriminantExpressionId?: string;
71
+ discriminantExpressionType?: string;
72
+ discriminantLine?: number;
73
+ discriminantColumn?: number;
74
+ isAlternateOfBranchId?: string;
75
+ consequentExpressionId?: string;
76
+ alternateExpressionId?: string;
77
+ }
78
+ export interface CaseInfo {
79
+ id: string;
80
+ semanticId?: string;
81
+ type: 'CASE';
82
+ value: unknown;
83
+ isDefault: boolean;
84
+ fallsThrough: boolean;
85
+ isEmpty: boolean;
86
+ file: string;
87
+ line: number;
88
+ parentBranchId: string;
89
+ }
90
+ export interface LoopInfo {
91
+ id: string;
92
+ semanticId?: string;
93
+ type: 'LOOP';
94
+ loopType: 'for' | 'for-in' | 'for-of' | 'while' | 'do-while';
95
+ file: string;
96
+ line: number;
97
+ column?: number;
98
+ parentScopeId?: string;
99
+ iteratesOverName?: string;
100
+ iteratesOverLine?: number;
101
+ iteratesOverColumn?: number;
102
+ conditionExpressionId?: string;
103
+ conditionExpressionType?: string;
104
+ conditionLine?: number;
105
+ conditionColumn?: number;
106
+ initVariableName?: string;
107
+ initLine?: number;
108
+ testExpressionId?: string;
109
+ testExpressionType?: string;
110
+ testLine?: number;
111
+ testColumn?: number;
112
+ updateExpressionId?: string;
113
+ updateExpressionType?: string;
114
+ updateLine?: number;
115
+ updateColumn?: number;
116
+ async?: boolean;
117
+ }
118
+ export interface TryBlockInfo {
119
+ id: string;
120
+ semanticId?: string;
121
+ type: 'TRY_BLOCK';
122
+ file: string;
123
+ line: number;
124
+ column?: number;
125
+ parentScopeId?: string;
126
+ }
127
+ export interface CatchBlockInfo {
128
+ id: string;
129
+ semanticId?: string;
130
+ type: 'CATCH_BLOCK';
131
+ file: string;
132
+ line: number;
133
+ column?: number;
134
+ parentScopeId?: string;
135
+ parentTryBlockId: string;
136
+ parameterName?: string;
137
+ }
138
+ export interface FinallyBlockInfo {
139
+ id: string;
140
+ semanticId?: string;
141
+ type: 'FINALLY_BLOCK';
142
+ file: string;
143
+ line: number;
144
+ column?: number;
145
+ parentScopeId?: string;
146
+ parentTryBlockId: string;
147
+ }
148
+ export interface ControlFlowMetadata {
149
+ hasBranches: boolean;
150
+ hasLoops: boolean;
151
+ hasTryCatch: boolean;
152
+ hasEarlyReturn: boolean;
153
+ hasThrow: boolean;
154
+ cyclomaticComplexity: number;
155
+ }
59
156
  export interface VariableDeclarationInfo {
60
157
  id: string;
158
+ semanticId?: string;
61
159
  type: 'VARIABLE' | 'CONSTANT';
62
160
  name: string;
63
161
  file: string;
@@ -68,6 +166,7 @@ export interface VariableDeclarationInfo {
68
166
  }
69
167
  export interface CallSiteInfo {
70
168
  id: string;
169
+ semanticId?: string;
71
170
  type: 'CALL';
72
171
  name: string;
73
172
  file: string;
@@ -79,10 +178,13 @@ export interface CallSiteInfo {
79
178
  }
80
179
  export interface MethodCallInfo {
81
180
  id: string;
181
+ semanticId?: string;
82
182
  type: 'CALL';
83
183
  name: string;
84
184
  object: string;
85
185
  method: string;
186
+ computed?: boolean;
187
+ computedPropertyVar?: string | null;
86
188
  file: string;
87
189
  line: number;
88
190
  column?: number;
@@ -92,6 +194,7 @@ export interface MethodCallInfo {
92
194
  }
93
195
  export interface EventListenerInfo {
94
196
  id: string;
197
+ semanticId?: string;
95
198
  type: 'event:listener';
96
199
  name: string;
97
200
  object: string;
@@ -107,8 +210,18 @@ export interface ClassInstantiationInfo {
107
210
  line: number;
108
211
  parentScopeId?: string;
109
212
  }
213
+ export interface ConstructorCallInfo {
214
+ id: string;
215
+ type: 'CONSTRUCTOR_CALL';
216
+ className: string;
217
+ isBuiltin: boolean;
218
+ file: string;
219
+ line: number;
220
+ column: number;
221
+ }
110
222
  export interface ClassDeclarationInfo {
111
223
  id: string;
224
+ semanticId?: string;
112
225
  type: 'CLASS';
113
226
  name: string;
114
227
  file: string;
@@ -119,7 +232,12 @@ export interface ClassDeclarationInfo {
119
232
  methods: string[];
120
233
  }
121
234
  export interface InterfaceDeclarationInfo {
122
- id: string;
235
+ /**
236
+ * @deprecated ID is now generated by InterfaceNode.create() in GraphBuilder.
237
+ * This field will be removed in a future version.
238
+ */
239
+ id?: string;
240
+ semanticId?: string;
123
241
  type: 'INTERFACE';
124
242
  name: string;
125
243
  file: string;
@@ -135,7 +253,12 @@ export interface InterfacePropertyInfo {
135
253
  readonly?: boolean;
136
254
  }
137
255
  export interface TypeAliasInfo {
138
- id: string;
256
+ /**
257
+ * @deprecated ID is now generated by NodeFactory.createType() in GraphBuilder.
258
+ * This field will be removed in a future version.
259
+ */
260
+ id?: string;
261
+ semanticId?: string;
139
262
  type: 'TYPE';
140
263
  name: string;
141
264
  file: string;
@@ -144,7 +267,12 @@ export interface TypeAliasInfo {
144
267
  aliasOf?: string;
145
268
  }
146
269
  export interface EnumDeclarationInfo {
147
- id: string;
270
+ /**
271
+ * @deprecated ID is now generated by EnumNode.create() in GraphBuilder.
272
+ * This field will be removed in a future version.
273
+ */
274
+ id?: string;
275
+ semanticId?: string;
148
276
  type: 'ENUM';
149
277
  name: string;
150
278
  file: string;
@@ -159,6 +287,7 @@ export interface EnumMemberInfo {
159
287
  }
160
288
  export interface DecoratorInfo {
161
289
  id: string;
290
+ semanticId?: string;
162
291
  type: 'DECORATOR';
163
292
  name: string;
164
293
  file: string;
@@ -182,6 +311,10 @@ export interface CallArgumentInfo {
182
311
  targetId?: string;
183
312
  targetName?: string;
184
313
  file?: string;
314
+ line?: number;
315
+ column?: number;
316
+ literalValue?: unknown;
317
+ expressionType?: string;
185
318
  isSpread?: boolean;
186
319
  functionLine?: number;
187
320
  functionColumn?: number;
@@ -195,7 +328,11 @@ export interface ImportInfo {
195
328
  source: string;
196
329
  file: string;
197
330
  line: number;
331
+ column?: number;
198
332
  specifiers: ImportSpecifier[];
333
+ isDynamic?: boolean;
334
+ isResolvable?: boolean;
335
+ dynamicPath?: string;
199
336
  }
200
337
  export interface ImportSpecifier {
201
338
  imported: string;
@@ -225,6 +362,7 @@ export interface HttpRequestInfo {
225
362
  }
226
363
  export interface LiteralInfo {
227
364
  id: string;
365
+ semanticId?: string;
228
366
  type: 'LITERAL' | 'CALL';
229
367
  value?: unknown;
230
368
  valueType?: string;
@@ -238,6 +376,160 @@ export interface LiteralInfo {
238
376
  parentCallId?: string;
239
377
  argIndex?: number;
240
378
  }
379
+ export interface ObjectLiteralInfo {
380
+ id: string;
381
+ semanticId?: string;
382
+ type: 'OBJECT_LITERAL';
383
+ file: string;
384
+ line: number;
385
+ column: number;
386
+ parentCallId?: string;
387
+ argIndex?: number;
388
+ isSpread?: boolean;
389
+ }
390
+ export interface ObjectPropertyInfo {
391
+ objectId: string;
392
+ propertyName: string;
393
+ valueNodeId?: string;
394
+ valueType: 'LITERAL' | 'VARIABLE' | 'CALL' | 'EXPRESSION' | 'OBJECT_LITERAL' | 'ARRAY_LITERAL' | 'SPREAD';
395
+ valueName?: string;
396
+ literalValue?: unknown;
397
+ file: string;
398
+ line: number;
399
+ column: number;
400
+ callLine?: number;
401
+ callColumn?: number;
402
+ nestedObjectId?: string;
403
+ nestedArrayId?: string;
404
+ valueScopePath?: string[];
405
+ }
406
+ export interface ArrayLiteralInfo {
407
+ id: string;
408
+ semanticId?: string;
409
+ type: 'ARRAY_LITERAL';
410
+ file: string;
411
+ line: number;
412
+ column: number;
413
+ parentCallId?: string;
414
+ argIndex?: number;
415
+ }
416
+ export interface ArrayElementInfo {
417
+ arrayId: string;
418
+ index: number;
419
+ valueNodeId?: string;
420
+ valueType: 'LITERAL' | 'VARIABLE' | 'CALL' | 'EXPRESSION' | 'OBJECT_LITERAL' | 'ARRAY_LITERAL' | 'SPREAD';
421
+ valueName?: string;
422
+ literalValue?: unknown;
423
+ file: string;
424
+ line: number;
425
+ column: number;
426
+ callLine?: number;
427
+ callColumn?: number;
428
+ nestedObjectId?: string;
429
+ nestedArrayId?: string;
430
+ }
431
+ /**
432
+ * Tracks array mutation calls (push, unshift, splice) and indexed assignments
433
+ * Used to create FLOWS_INTO edges in GraphBuilder
434
+ *
435
+ * IMPORTANT: This type is defined ONLY here. Import from this file everywhere.
436
+ */
437
+ export interface ArrayMutationInfo {
438
+ id?: string;
439
+ arrayName: string;
440
+ arrayLine?: number;
441
+ mutationScopePath?: string[];
442
+ mutationMethod: 'push' | 'unshift' | 'splice' | 'indexed';
443
+ file: string;
444
+ line: number;
445
+ column: number;
446
+ insertedValues: ArrayMutationArgument[];
447
+ isNested?: boolean;
448
+ baseObjectName?: string;
449
+ propertyName?: string;
450
+ }
451
+ export interface ArrayMutationArgument {
452
+ argIndex: number;
453
+ isSpread?: boolean;
454
+ valueType: 'LITERAL' | 'VARIABLE' | 'CALL' | 'EXPRESSION' | 'OBJECT_LITERAL' | 'ARRAY_LITERAL';
455
+ valueName?: string;
456
+ valueNodeId?: string;
457
+ literalValue?: unknown;
458
+ callLine?: number;
459
+ callColumn?: number;
460
+ }
461
+ /**
462
+ * Tracks object property mutations for FLOWS_INTO edge creation in GraphBuilder.
463
+ * Handles: obj.prop = value, obj['prop'] = value, Object.assign(), spread in object literals.
464
+ *
465
+ * IMPORTANT: This type is defined ONLY here. Import from this file everywhere.
466
+ */
467
+ export interface ObjectMutationInfo {
468
+ id?: string;
469
+ objectName: string;
470
+ objectLine?: number;
471
+ mutationScopePath?: string[];
472
+ enclosingClassName?: string;
473
+ propertyName: string;
474
+ mutationType: 'property' | 'computed' | 'assign' | 'spread';
475
+ computedPropertyVar?: string;
476
+ file: string;
477
+ line: number;
478
+ column: number;
479
+ value: ObjectMutationValue;
480
+ }
481
+ export interface ObjectMutationValue {
482
+ valueType: 'LITERAL' | 'VARIABLE' | 'CALL' | 'EXPRESSION' | 'OBJECT_LITERAL' | 'ARRAY_LITERAL';
483
+ valueName?: string;
484
+ valueNodeId?: string;
485
+ literalValue?: unknown;
486
+ callLine?: number;
487
+ callColumn?: number;
488
+ isSpread?: boolean;
489
+ argIndex?: number;
490
+ }
491
+ /**
492
+ * Tracks return statements for RETURNS edge creation in GraphBuilder.
493
+ * Used to connect returned expressions to their containing functions.
494
+ *
495
+ * Edge direction: returnExpression --RETURNS--> function
496
+ */
497
+ export interface ReturnStatementInfo {
498
+ parentFunctionId: string;
499
+ file: string;
500
+ line: number;
501
+ column: number;
502
+ returnValueType: 'VARIABLE' | 'CALL_SITE' | 'METHOD_CALL' | 'LITERAL' | 'EXPRESSION' | 'NONE';
503
+ returnValueName?: string;
504
+ returnValueId?: string;
505
+ returnValueLine?: number;
506
+ returnValueColumn?: number;
507
+ returnValueCallName?: string;
508
+ expressionType?: string;
509
+ operator?: string;
510
+ leftSourceName?: string;
511
+ rightSourceName?: string;
512
+ consequentSourceName?: string;
513
+ alternateSourceName?: string;
514
+ object?: string;
515
+ property?: string;
516
+ computed?: boolean;
517
+ objectSourceName?: string;
518
+ expressionSourceNames?: string[];
519
+ unaryArgSourceName?: string;
520
+ isImplicitReturn?: boolean;
521
+ }
522
+ /**
523
+ * Resolution status for computed property names.
524
+ * Used in FLOWS_INTO edge metadata to indicate how property name was determined.
525
+ *
526
+ * - RESOLVED: Single deterministic value traced from literals
527
+ * - RESOLVED_CONDITIONAL: Multiple possible values (ternary, logical OR, etc.)
528
+ * - UNKNOWN_PARAMETER: Variable traces to function parameter
529
+ * - UNKNOWN_RUNTIME: Variable traces to function call result
530
+ * - DEFERRED_CROSS_FILE: Variable traces to import (requires cross-file analysis)
531
+ */
532
+ export type ResolutionStatus = 'RESOLVED' | 'RESOLVED_CONDITIONAL' | 'UNKNOWN_PARAMETER' | 'UNKNOWN_RUNTIME' | 'DEFERRED_CROSS_FILE';
241
533
  export interface VariableAssignmentInfo {
242
534
  variableId: string;
243
535
  sourceId?: string | null;
@@ -252,6 +544,7 @@ export interface VariableAssignmentInfo {
252
544
  className?: string;
253
545
  functionName?: string;
254
546
  line?: number;
547
+ column?: number;
255
548
  expressionType?: string;
256
549
  object?: string;
257
550
  property?: string;
@@ -265,6 +558,137 @@ export interface VariableAssignmentInfo {
265
558
  alternateSourceName?: string | null;
266
559
  expressionSourceNames?: string[];
267
560
  file?: string;
561
+ path?: string;
562
+ baseName?: string;
563
+ propertyPath?: string[];
564
+ arrayIndex?: number;
565
+ callSourceLine?: number;
566
+ callSourceColumn?: number;
567
+ callSourceFile?: string;
568
+ callSourceName?: string;
569
+ sourceMetadata?: {
570
+ sourceType: 'call' | 'variable' | 'method-call';
571
+ };
572
+ }
573
+ /**
574
+ * Tracks variable reassignments for FLOWS_INTO edge creation.
575
+ * Used when a variable is assigned AFTER its declaration: x = y (not const x = y).
576
+ *
577
+ * Edge direction: value --FLOWS_INTO--> variable
578
+ *
579
+ * Supports:
580
+ * - Simple assignment: x = y
581
+ * - Compound operators: x += y, x -= y, x *= y, x /= y, x %= y, x **= y
582
+ * - Bitwise operators: x &= y, x |= y, x ^= y, x <<= y, x >>= y, x >>>= y
583
+ * - Logical operators: x &&= y, x ||= y, x ??= y
584
+ *
585
+ * For compound operators (operator !== '='), creates TWO edges:
586
+ * - READS_FROM: variable --READS_FROM--> variable (self-loop, reads current value)
587
+ * - FLOWS_INTO: source --FLOWS_INTO--> variable (writes new value)
588
+ *
589
+ * Distinction from VariableAssignmentInfo:
590
+ * - VariableAssignmentInfo: initialization (const x = y) -> ASSIGNED_FROM edge
591
+ * - VariableReassignmentInfo: mutation (x = y, x += y) -> FLOWS_INTO edge
592
+ */
593
+ export interface VariableReassignmentInfo {
594
+ variableName: string;
595
+ variableLine: number;
596
+ mutationScopePath?: string[];
597
+ valueType: 'VARIABLE' | 'CALL_SITE' | 'METHOD_CALL' | 'LITERAL' | 'EXPRESSION';
598
+ valueName?: string;
599
+ valueId?: string | null;
600
+ callLine?: number;
601
+ callColumn?: number;
602
+ operator: string;
603
+ literalValue?: unknown;
604
+ expressionType?: string;
605
+ expressionMetadata?: {
606
+ object?: string;
607
+ property?: string;
608
+ computed?: boolean;
609
+ computedPropertyVar?: string | null;
610
+ operator?: string;
611
+ leftSourceName?: string;
612
+ rightSourceName?: string;
613
+ consequentSourceName?: string;
614
+ alternateSourceName?: string;
615
+ };
616
+ file: string;
617
+ line: number;
618
+ column: number;
619
+ }
620
+ /**
621
+ * Information about update expressions (increment/decrement).
622
+ *
623
+ * Supports two target types:
624
+ * - IDENTIFIER: Simple variable (i++, --count)
625
+ * - MEMBER_EXPRESSION: Object property (obj.prop++, arr[i]++, this.count++)
626
+ *
627
+ * Creates:
628
+ * - UPDATE_EXPRESSION node with operator and target metadata
629
+ * - MODIFIES edge: UPDATE_EXPRESSION -> target (VARIABLE, PARAMETER, or CLASS)
630
+ * - READS_FROM self-loop: target -> target (reads current value before update)
631
+ * - CONTAINS edge: SCOPE -> UPDATE_EXPRESSION
632
+ *
633
+ * REG-288: Initial implementation for IDENTIFIER targets
634
+ * REG-312: Extended for MEMBER_EXPRESSION targets (obj.prop++, arr[i]++)
635
+ */
636
+ export interface UpdateExpressionInfo {
637
+ operator: '++' | '--';
638
+ prefix: boolean;
639
+ file: string;
640
+ line: number;
641
+ column: number;
642
+ parentScopeId?: string;
643
+ targetType: 'IDENTIFIER' | 'MEMBER_EXPRESSION';
644
+ variableName?: string;
645
+ variableLine?: number;
646
+ objectName?: string;
647
+ objectLine?: number;
648
+ enclosingClassName?: string;
649
+ propertyName?: string;
650
+ mutationType?: 'property' | 'computed';
651
+ computedPropertyVar?: string;
652
+ }
653
+ /**
654
+ * Tracks Promise executor context during analysis.
655
+ * Used to detect when resolve/reject calls should create RESOLVES_TO edges.
656
+ *
657
+ * Stored in collections.promiseExecutorContexts Map, keyed by executor function's start:end position.
658
+ */
659
+ export interface PromiseExecutorContext {
660
+ /** ID of the CONSTRUCTOR_CALL node for `new Promise()` */
661
+ constructorCallId: string;
662
+ /** Name of the first parameter (typically 'resolve') */
663
+ resolveName: string;
664
+ /** Name of the second parameter (typically 'reject'), if any */
665
+ rejectName?: string;
666
+ /** File path for edge creation */
667
+ file: string;
668
+ /** Line of the Promise constructor for debugging */
669
+ line: number;
670
+ }
671
+ /**
672
+ * Info for Promise resolution RESOLVES_TO edges.
673
+ * Created when resolve(value) or reject(error) is called inside Promise executor.
674
+ *
675
+ * Graph structure:
676
+ * CALL[resolve(42)] --RESOLVES_TO--> CONSTRUCTOR_CALL[new Promise]
677
+ *
678
+ * Edge direction: resolve CALL -> Promise CONSTRUCTOR_CALL
679
+ * This allows traceValues to follow RESOLVES_TO from Promise to find data sources.
680
+ */
681
+ export interface PromiseResolutionInfo {
682
+ /** ID of the resolve/reject CALL node */
683
+ callId: string;
684
+ /** ID of the Promise CONSTRUCTOR_CALL node */
685
+ constructorCallId: string;
686
+ /** True if this is reject(), false for resolve() */
687
+ isReject: boolean;
688
+ /** File path */
689
+ file: string;
690
+ /** Line number of resolve/reject call */
691
+ line: number;
268
692
  }
269
693
  export interface CounterRef {
270
694
  value: number;
@@ -285,11 +709,18 @@ export interface ASTCollections {
285
709
  functions: FunctionInfo[];
286
710
  parameters?: ParameterInfo[];
287
711
  scopes: ScopeInfo[];
712
+ branches?: BranchInfo[];
713
+ cases?: CaseInfo[];
714
+ loops?: LoopInfo[];
715
+ tryBlocks?: TryBlockInfo[];
716
+ catchBlocks?: CatchBlockInfo[];
717
+ finallyBlocks?: FinallyBlockInfo[];
288
718
  variableDeclarations: VariableDeclarationInfo[];
289
719
  callSites: CallSiteInfo[];
290
720
  methodCalls?: MethodCallInfo[];
291
721
  eventListeners?: EventListenerInfo[];
292
722
  classInstantiations?: ClassInstantiationInfo[];
723
+ constructorCalls?: ConstructorCallInfo[];
293
724
  classDeclarations?: ClassDeclarationInfo[];
294
725
  methodCallbacks?: MethodCallbackInfo[];
295
726
  callArguments?: CallArgumentInfo[];
@@ -298,6 +729,17 @@ export interface ASTCollections {
298
729
  httpRequests?: HttpRequestInfo[];
299
730
  literals?: LiteralInfo[];
300
731
  variableAssignments?: VariableAssignmentInfo[];
732
+ objectLiterals?: ObjectLiteralInfo[];
733
+ objectProperties?: ObjectPropertyInfo[];
734
+ arrayLiterals?: ArrayLiteralInfo[];
735
+ arrayElements?: ArrayElementInfo[];
736
+ arrayMutations?: ArrayMutationInfo[];
737
+ objectMutations?: ObjectMutationInfo[];
738
+ variableReassignments?: VariableReassignmentInfo[];
739
+ returnStatements?: ReturnStatementInfo[];
740
+ updateExpressions?: UpdateExpressionInfo[];
741
+ promiseResolutions?: PromiseResolutionInfo[];
742
+ promiseExecutorContexts?: Map<string, PromiseExecutorContext>;
301
743
  interfaces?: InterfaceDeclarationInfo[];
302
744
  typeAliases?: TypeAliasInfo[];
303
745
  enums?: EnumDeclarationInfo[];
@@ -309,7 +751,16 @@ export interface ASTCollections {
309
751
  functionCounterRef?: CounterRef;
310
752
  httpRequestCounterRef?: CounterRef;
311
753
  literalCounterRef?: CounterRef;
754
+ objectLiteralCounterRef?: CounterRef;
755
+ arrayLiteralCounterRef?: CounterRef;
756
+ branchCounterRef?: CounterRef;
757
+ caseCounterRef?: CounterRef;
758
+ loopCounterRef?: CounterRef;
759
+ tryBlockCounterRef?: CounterRef;
760
+ catchBlockCounterRef?: CounterRef;
761
+ finallyBlockCounterRef?: CounterRef;
312
762
  processedNodes?: ProcessedNodes;
763
+ scopeTracker?: import('../../../core/ScopeTracker.js').ScopeTracker;
313
764
  }
314
765
  export interface ExtractedVariable {
315
766
  name: string;
@@ -330,6 +781,11 @@ export interface GraphNode {
330
781
  file?: string;
331
782
  line?: number;
332
783
  column?: number;
784
+ source?: string;
785
+ importType?: 'default' | 'named' | 'namespace';
786
+ importBinding?: 'value' | 'type' | 'typeof';
787
+ imported?: string;
788
+ local?: string;
333
789
  [key: string]: unknown;
334
790
  }
335
791
  export interface GraphEdge {
@@ -337,6 +793,15 @@ export interface GraphEdge {
337
793
  src: string;
338
794
  dst: string;
339
795
  index?: number;
796
+ mutationMethod?: string;
797
+ argIndex?: number;
798
+ isSpread?: boolean;
799
+ nestedProperty?: string;
800
+ mutationType?: 'property' | 'computed' | 'assign' | 'spread' | 'this_property';
801
+ propertyName?: string;
802
+ computedPropertyVar?: string;
803
+ resolvedPropertyNames?: string[];
804
+ resolutionStatus?: ResolutionStatus;
340
805
  metadata?: Record<string, unknown>;
341
806
  }
342
807
  export interface BuildResult {