@grafema/core 0.1.1-alpha → 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 (319) hide show
  1. package/dist/Orchestrator.d.ts +7 -0
  2. package/dist/Orchestrator.d.ts.map +1 -1
  3. package/dist/Orchestrator.js +25 -3
  4. package/dist/config/ConfigLoader.d.ts +18 -0
  5. package/dist/config/ConfigLoader.d.ts.map +1 -1
  6. package/dist/config/ConfigLoader.js +65 -3
  7. package/dist/core/FileExplainer.d.ts +101 -0
  8. package/dist/core/FileExplainer.d.ts.map +1 -0
  9. package/dist/core/FileExplainer.js +139 -0
  10. package/dist/core/NodeFactory.d.ts +44 -5
  11. package/dist/core/NodeFactory.d.ts.map +1 -1
  12. package/dist/core/NodeFactory.js +52 -7
  13. package/dist/core/nodes/ArrayLiteralNode.d.ts.map +1 -1
  14. package/dist/core/nodes/ArrayLiteralNode.js +4 -2
  15. package/dist/core/nodes/BranchNode.d.ts +41 -0
  16. package/dist/core/nodes/BranchNode.d.ts.map +1 -0
  17. package/dist/core/nodes/BranchNode.js +82 -0
  18. package/dist/core/nodes/CallSiteNode.d.ts +2 -2
  19. package/dist/core/nodes/CallSiteNode.d.ts.map +1 -1
  20. package/dist/core/nodes/CallSiteNode.js +9 -5
  21. package/dist/core/nodes/CaseNode.d.ts +43 -0
  22. package/dist/core/nodes/CaseNode.d.ts.map +1 -0
  23. package/dist/core/nodes/CaseNode.js +81 -0
  24. package/dist/core/nodes/ClassNode.d.ts +2 -2
  25. package/dist/core/nodes/ClassNode.d.ts.map +1 -1
  26. package/dist/core/nodes/ClassNode.js +8 -4
  27. package/dist/core/nodes/ConstantNode.d.ts +2 -2
  28. package/dist/core/nodes/ConstantNode.d.ts.map +1 -1
  29. package/dist/core/nodes/ConstantNode.js +6 -4
  30. package/dist/core/nodes/ConstructorCallNode.d.ts +51 -0
  31. package/dist/core/nodes/ConstructorCallNode.d.ts.map +1 -0
  32. package/dist/core/nodes/ConstructorCallNode.js +171 -0
  33. package/dist/core/nodes/DatabaseQueryNode.d.ts +3 -2
  34. package/dist/core/nodes/DatabaseQueryNode.d.ts.map +1 -1
  35. package/dist/core/nodes/DatabaseQueryNode.js +5 -2
  36. package/dist/core/nodes/DecoratorNode.d.ts +2 -2
  37. package/dist/core/nodes/DecoratorNode.d.ts.map +1 -1
  38. package/dist/core/nodes/DecoratorNode.js +5 -3
  39. package/dist/core/nodes/EnumNode.d.ts +2 -2
  40. package/dist/core/nodes/EnumNode.d.ts.map +1 -1
  41. package/dist/core/nodes/EnumNode.js +5 -3
  42. package/dist/core/nodes/EventListenerNode.d.ts +4 -4
  43. package/dist/core/nodes/EventListenerNode.d.ts.map +1 -1
  44. package/dist/core/nodes/EventListenerNode.js +7 -4
  45. package/dist/core/nodes/ExportNode.d.ts +2 -2
  46. package/dist/core/nodes/ExportNode.d.ts.map +1 -1
  47. package/dist/core/nodes/ExportNode.js +8 -4
  48. package/dist/core/nodes/ExpressionNode.d.ts +2 -2
  49. package/dist/core/nodes/ExpressionNode.d.ts.map +1 -1
  50. package/dist/core/nodes/ExpressionNode.js +6 -4
  51. package/dist/core/nodes/ExternalModuleNode.d.ts +4 -0
  52. package/dist/core/nodes/ExternalModuleNode.d.ts.map +1 -1
  53. package/dist/core/nodes/ExternalModuleNode.js +10 -2
  54. package/dist/core/nodes/HttpRequestNode.d.ts +4 -4
  55. package/dist/core/nodes/HttpRequestNode.d.ts.map +1 -1
  56. package/dist/core/nodes/HttpRequestNode.js +7 -4
  57. package/dist/core/nodes/ImportNode.d.ts +10 -2
  58. package/dist/core/nodes/ImportNode.d.ts.map +1 -1
  59. package/dist/core/nodes/ImportNode.js +21 -4
  60. package/dist/core/nodes/InterfaceNode.d.ts +2 -2
  61. package/dist/core/nodes/InterfaceNode.d.ts.map +1 -1
  62. package/dist/core/nodes/InterfaceNode.js +5 -3
  63. package/dist/core/nodes/LiteralNode.d.ts +2 -2
  64. package/dist/core/nodes/LiteralNode.d.ts.map +1 -1
  65. package/dist/core/nodes/LiteralNode.js +6 -4
  66. package/dist/core/nodes/MethodCallNode.d.ts +2 -2
  67. package/dist/core/nodes/MethodCallNode.d.ts.map +1 -1
  68. package/dist/core/nodes/MethodCallNode.js +9 -5
  69. package/dist/core/nodes/MethodNode.d.ts +2 -2
  70. package/dist/core/nodes/MethodNode.d.ts.map +1 -1
  71. package/dist/core/nodes/MethodNode.js +8 -4
  72. package/dist/core/nodes/ObjectLiteralNode.d.ts.map +1 -1
  73. package/dist/core/nodes/ObjectLiteralNode.js +4 -2
  74. package/dist/core/nodes/ParameterNode.d.ts +2 -2
  75. package/dist/core/nodes/ParameterNode.d.ts.map +1 -1
  76. package/dist/core/nodes/ParameterNode.js +5 -3
  77. package/dist/core/nodes/TypeNode.d.ts +2 -2
  78. package/dist/core/nodes/TypeNode.d.ts.map +1 -1
  79. package/dist/core/nodes/TypeNode.js +5 -3
  80. package/dist/core/nodes/VariableDeclarationNode.d.ts +2 -2
  81. package/dist/core/nodes/VariableDeclarationNode.d.ts.map +1 -1
  82. package/dist/core/nodes/VariableDeclarationNode.js +9 -5
  83. package/dist/core/nodes/index.d.ts +3 -0
  84. package/dist/core/nodes/index.d.ts.map +1 -1
  85. package/dist/core/nodes/index.js +3 -0
  86. package/dist/data/builtins/BuiltinRegistry.d.ts +78 -0
  87. package/dist/data/builtins/BuiltinRegistry.d.ts.map +1 -0
  88. package/dist/data/builtins/BuiltinRegistry.js +110 -0
  89. package/dist/data/builtins/definitions.d.ts +28 -0
  90. package/dist/data/builtins/definitions.d.ts.map +1 -0
  91. package/dist/data/builtins/definitions.js +250 -0
  92. package/dist/data/builtins/index.d.ts +10 -0
  93. package/dist/data/builtins/index.d.ts.map +1 -0
  94. package/dist/data/builtins/index.js +8 -0
  95. package/dist/data/builtins/jsGlobals.d.ts +18 -0
  96. package/dist/data/builtins/jsGlobals.d.ts.map +1 -0
  97. package/dist/data/builtins/jsGlobals.js +26 -0
  98. package/dist/data/builtins/types.d.ts +34 -0
  99. package/dist/data/builtins/types.d.ts.map +1 -0
  100. package/dist/data/builtins/types.js +7 -0
  101. package/dist/data/globals/definitions.d.ts +27 -0
  102. package/dist/data/globals/definitions.d.ts.map +1 -0
  103. package/dist/data/globals/definitions.js +117 -0
  104. package/dist/data/globals/index.d.ts +36 -0
  105. package/dist/data/globals/index.d.ts.map +1 -0
  106. package/dist/data/globals/index.js +52 -0
  107. package/dist/diagnostics/DiagnosticReporter.d.ts +23 -0
  108. package/dist/diagnostics/DiagnosticReporter.d.ts.map +1 -1
  109. package/dist/diagnostics/DiagnosticReporter.js +88 -0
  110. package/dist/diagnostics/index.d.ts +1 -1
  111. package/dist/diagnostics/index.d.ts.map +1 -1
  112. package/dist/errors/GrafemaError.d.ts +43 -0
  113. package/dist/errors/GrafemaError.d.ts.map +1 -1
  114. package/dist/errors/GrafemaError.js +50 -0
  115. package/dist/index.d.ts +17 -1
  116. package/dist/index.d.ts.map +1 -1
  117. package/dist/index.js +17 -1
  118. package/dist/plugins/analysis/DatabaseAnalyzer.d.ts.map +1 -1
  119. package/dist/plugins/analysis/DatabaseAnalyzer.js +3 -2
  120. package/dist/plugins/analysis/ExpressAnalyzer.d.ts.map +1 -1
  121. package/dist/plugins/analysis/ExpressAnalyzer.js +3 -1
  122. package/dist/plugins/analysis/ExpressResponseAnalyzer.d.ts +148 -0
  123. package/dist/plugins/analysis/ExpressResponseAnalyzer.d.ts.map +1 -0
  124. package/dist/plugins/analysis/ExpressResponseAnalyzer.js +495 -0
  125. package/dist/plugins/analysis/ExpressRouteAnalyzer.d.ts.map +1 -1
  126. package/dist/plugins/analysis/ExpressRouteAnalyzer.js +53 -18
  127. package/dist/plugins/analysis/FetchAnalyzer.d.ts +40 -0
  128. package/dist/plugins/analysis/FetchAnalyzer.d.ts.map +1 -1
  129. package/dist/plugins/analysis/FetchAnalyzer.js +163 -15
  130. package/dist/plugins/analysis/JSASTAnalyzer.d.ts +157 -26
  131. package/dist/plugins/analysis/JSASTAnalyzer.d.ts.map +1 -1
  132. package/dist/plugins/analysis/JSASTAnalyzer.js +2418 -191
  133. package/dist/plugins/analysis/RustAnalyzer.js +4 -4
  134. package/dist/plugins/analysis/SQLiteAnalyzer.d.ts.map +1 -1
  135. package/dist/plugins/analysis/SQLiteAnalyzer.js +4 -2
  136. package/dist/plugins/analysis/SocketIOAnalyzer.d.ts +9 -0
  137. package/dist/plugins/analysis/SocketIOAnalyzer.d.ts.map +1 -1
  138. package/dist/plugins/analysis/SocketIOAnalyzer.js +91 -7
  139. package/dist/plugins/analysis/ast/GraphBuilder.d.ts +173 -0
  140. package/dist/plugins/analysis/ast/GraphBuilder.d.ts.map +1 -1
  141. package/dist/plugins/analysis/ast/GraphBuilder.js +1256 -65
  142. package/dist/plugins/analysis/ast/types.d.ts +294 -0
  143. package/dist/plugins/analysis/ast/types.d.ts.map +1 -1
  144. package/dist/plugins/analysis/ast/visitors/ASTVisitor.d.ts +5 -1
  145. package/dist/plugins/analysis/ast/visitors/ASTVisitor.d.ts.map +1 -1
  146. package/dist/plugins/analysis/ast/visitors/CallExpressionVisitor.d.ts +1 -0
  147. package/dist/plugins/analysis/ast/visitors/CallExpressionVisitor.d.ts.map +1 -1
  148. package/dist/plugins/analysis/ast/visitors/CallExpressionVisitor.js +12 -1
  149. package/dist/plugins/analysis/ast/visitors/FunctionVisitor.d.ts +10 -0
  150. package/dist/plugins/analysis/ast/visitors/FunctionVisitor.d.ts.map +1 -1
  151. package/dist/plugins/analysis/ast/visitors/FunctionVisitor.js +62 -0
  152. package/dist/plugins/analysis/ast/visitors/ImportExportVisitor.d.ts +4 -0
  153. package/dist/plugins/analysis/ast/visitors/ImportExportVisitor.d.ts.map +1 -1
  154. package/dist/plugins/analysis/ast/visitors/ImportExportVisitor.js +101 -0
  155. package/dist/plugins/analysis/ast/visitors/VariableVisitor.d.ts +16 -1
  156. package/dist/plugins/analysis/ast/visitors/VariableVisitor.d.ts.map +1 -1
  157. package/dist/plugins/analysis/ast/visitors/VariableVisitor.js +233 -39
  158. package/dist/plugins/discovery/WorkspaceDiscovery.d.ts.map +1 -1
  159. package/dist/plugins/discovery/WorkspaceDiscovery.js +9 -4
  160. package/dist/plugins/enrichment/AliasTracker.d.ts.map +1 -1
  161. package/dist/plugins/enrichment/AliasTracker.js +16 -1
  162. package/dist/plugins/enrichment/ArgumentParameterLinker.d.ts +32 -0
  163. package/dist/plugins/enrichment/ArgumentParameterLinker.d.ts.map +1 -0
  164. package/dist/plugins/enrichment/ArgumentParameterLinker.js +175 -0
  165. package/dist/plugins/enrichment/ClosureCaptureEnricher.d.ts +51 -0
  166. package/dist/plugins/enrichment/ClosureCaptureEnricher.d.ts.map +1 -0
  167. package/dist/plugins/enrichment/ClosureCaptureEnricher.js +205 -0
  168. package/dist/plugins/enrichment/ExternalCallResolver.d.ts +42 -0
  169. package/dist/plugins/enrichment/ExternalCallResolver.d.ts.map +1 -0
  170. package/dist/plugins/enrichment/ExternalCallResolver.js +213 -0
  171. package/dist/plugins/enrichment/FunctionCallResolver.d.ts +58 -0
  172. package/dist/plugins/enrichment/FunctionCallResolver.d.ts.map +1 -0
  173. package/dist/plugins/enrichment/FunctionCallResolver.js +340 -0
  174. package/dist/plugins/enrichment/HTTPConnectionEnricher.d.ts +16 -3
  175. package/dist/plugins/enrichment/HTTPConnectionEnricher.d.ts.map +1 -1
  176. package/dist/plugins/enrichment/HTTPConnectionEnricher.js +64 -20
  177. package/dist/plugins/enrichment/MethodCallResolver.d.ts.map +1 -1
  178. package/dist/plugins/enrichment/MethodCallResolver.js +15 -1
  179. package/dist/plugins/enrichment/MountPointResolver.d.ts +14 -12
  180. package/dist/plugins/enrichment/MountPointResolver.d.ts.map +1 -1
  181. package/dist/plugins/enrichment/MountPointResolver.js +172 -151
  182. package/dist/plugins/enrichment/NodejsBuiltinsResolver.d.ts +44 -0
  183. package/dist/plugins/enrichment/NodejsBuiltinsResolver.d.ts.map +1 -0
  184. package/dist/plugins/enrichment/NodejsBuiltinsResolver.js +271 -0
  185. package/dist/plugins/enrichment/ValueDomainAnalyzer.d.ts +5 -27
  186. package/dist/plugins/enrichment/ValueDomainAnalyzer.d.ts.map +1 -1
  187. package/dist/plugins/enrichment/ValueDomainAnalyzer.js +62 -139
  188. package/dist/plugins/indexing/JSModuleIndexer.d.ts +15 -0
  189. package/dist/plugins/indexing/JSModuleIndexer.d.ts.map +1 -1
  190. package/dist/plugins/indexing/JSModuleIndexer.js +58 -0
  191. package/dist/plugins/indexing/RustModuleIndexer.d.ts +1 -1
  192. package/dist/plugins/indexing/RustModuleIndexer.js +4 -4
  193. package/dist/plugins/validation/BrokenImportValidator.d.ts +31 -0
  194. package/dist/plugins/validation/BrokenImportValidator.d.ts.map +1 -0
  195. package/dist/plugins/validation/BrokenImportValidator.js +249 -0
  196. package/dist/plugins/validation/CallResolverValidator.d.ts +21 -10
  197. package/dist/plugins/validation/CallResolverValidator.d.ts.map +1 -1
  198. package/dist/plugins/validation/CallResolverValidator.js +101 -76
  199. package/dist/plugins/validation/DataFlowValidator.d.ts.map +1 -1
  200. package/dist/plugins/validation/DataFlowValidator.js +49 -41
  201. package/dist/plugins/validation/GraphConnectivityValidator.d.ts.map +1 -1
  202. package/dist/plugins/validation/GraphConnectivityValidator.js +25 -1
  203. package/dist/plugins/validation/SQLInjectionValidator.d.ts.map +1 -1
  204. package/dist/plugins/validation/SQLInjectionValidator.js +2 -3
  205. package/dist/queries/findCallsInFunction.d.ts +52 -0
  206. package/dist/queries/findCallsInFunction.d.ts.map +1 -0
  207. package/dist/queries/findCallsInFunction.js +135 -0
  208. package/dist/queries/findContainingFunction.d.ts +45 -0
  209. package/dist/queries/findContainingFunction.d.ts.map +1 -0
  210. package/dist/queries/findContainingFunction.js +54 -0
  211. package/dist/queries/index.d.ts +14 -0
  212. package/dist/queries/index.d.ts.map +1 -0
  213. package/dist/queries/index.js +11 -0
  214. package/dist/queries/traceValues.d.ts +70 -0
  215. package/dist/queries/traceValues.d.ts.map +1 -0
  216. package/dist/queries/traceValues.js +299 -0
  217. package/dist/queries/types.d.ts +163 -0
  218. package/dist/queries/types.d.ts.map +1 -0
  219. package/dist/queries/types.js +9 -0
  220. package/dist/schema/GraphSchemaExtractor.d.ts +53 -0
  221. package/dist/schema/GraphSchemaExtractor.d.ts.map +1 -0
  222. package/dist/schema/GraphSchemaExtractor.js +124 -0
  223. package/dist/schema/InterfaceSchemaExtractor.d.ts +73 -0
  224. package/dist/schema/InterfaceSchemaExtractor.d.ts.map +1 -0
  225. package/dist/schema/InterfaceSchemaExtractor.js +112 -0
  226. package/dist/schema/index.d.ts +5 -0
  227. package/dist/schema/index.d.ts.map +1 -0
  228. package/dist/schema/index.js +2 -0
  229. package/dist/storage/backends/RFDBServerBackend.d.ts +12 -18
  230. package/dist/storage/backends/RFDBServerBackend.d.ts.map +1 -1
  231. package/dist/storage/backends/RFDBServerBackend.js +41 -52
  232. package/dist/storage/backends/typeValidation.d.ts.map +1 -1
  233. package/dist/storage/backends/typeValidation.js +1 -0
  234. package/package.json +3 -3
  235. package/src/Orchestrator.ts +35 -3
  236. package/src/config/ConfigLoader.ts +94 -3
  237. package/src/core/FileExplainer.ts +179 -0
  238. package/src/core/NodeFactory.ts +72 -8
  239. package/src/core/nodes/ArrayLiteralNode.ts +3 -2
  240. package/src/core/nodes/BranchNode.ts +113 -0
  241. package/src/core/nodes/CallSiteNode.ts +7 -5
  242. package/src/core/nodes/CaseNode.ts +123 -0
  243. package/src/core/nodes/ClassNode.ts +6 -4
  244. package/src/core/nodes/ConstantNode.ts +5 -4
  245. package/src/core/nodes/ConstructorCallNode.ts +217 -0
  246. package/src/core/nodes/DatabaseQueryNode.ts +5 -1
  247. package/src/core/nodes/DecoratorNode.ts +4 -3
  248. package/src/core/nodes/EnumNode.ts +4 -3
  249. package/src/core/nodes/EventListenerNode.ts +7 -4
  250. package/src/core/nodes/ExportNode.ts +6 -4
  251. package/src/core/nodes/ExpressionNode.ts +5 -4
  252. package/src/core/nodes/ExternalModuleNode.ts +11 -2
  253. package/src/core/nodes/HttpRequestNode.ts +7 -4
  254. package/src/core/nodes/ImportNode.ts +31 -4
  255. package/src/core/nodes/InterfaceNode.ts +4 -3
  256. package/src/core/nodes/LiteralNode.ts +5 -4
  257. package/src/core/nodes/MethodCallNode.ts +7 -5
  258. package/src/core/nodes/MethodNode.ts +6 -4
  259. package/src/core/nodes/ObjectLiteralNode.ts +3 -2
  260. package/src/core/nodes/ParameterNode.ts +4 -3
  261. package/src/core/nodes/TypeNode.ts +4 -3
  262. package/src/core/nodes/VariableDeclarationNode.ts +7 -5
  263. package/src/core/nodes/index.ts +3 -0
  264. package/src/data/builtins/BuiltinRegistry.ts +124 -0
  265. package/src/data/builtins/definitions.ts +267 -0
  266. package/src/data/builtins/index.ts +10 -0
  267. package/src/data/builtins/jsGlobals.ts +28 -0
  268. package/src/data/builtins/types.ts +36 -0
  269. package/src/data/globals/definitions.ts +156 -0
  270. package/src/data/globals/index.ts +66 -0
  271. package/src/diagnostics/DiagnosticReporter.ts +120 -0
  272. package/src/diagnostics/index.ts +1 -1
  273. package/src/errors/GrafemaError.ts +65 -0
  274. package/src/index.ts +45 -0
  275. package/src/plugins/analysis/DatabaseAnalyzer.ts +4 -2
  276. package/src/plugins/analysis/ExpressAnalyzer.ts +5 -1
  277. package/src/plugins/analysis/ExpressResponseAnalyzer.ts +636 -0
  278. package/src/plugins/analysis/ExpressRouteAnalyzer.ts +57 -18
  279. package/src/plugins/analysis/FetchAnalyzer.ts +204 -16
  280. package/src/plugins/analysis/JSASTAnalyzer.ts +2958 -260
  281. package/src/plugins/analysis/RustAnalyzer.ts +4 -4
  282. package/src/plugins/analysis/SQLiteAnalyzer.ts +5 -2
  283. package/src/plugins/analysis/SocketIOAnalyzer.ts +121 -7
  284. package/src/plugins/analysis/ast/GraphBuilder.ts +1578 -70
  285. package/src/plugins/analysis/ast/types.ts +387 -0
  286. package/src/plugins/analysis/ast/visitors/ASTVisitor.ts +8 -0
  287. package/src/plugins/analysis/ast/visitors/CallExpressionVisitor.ts +16 -1
  288. package/src/plugins/analysis/ast/visitors/FunctionVisitor.ts +77 -2
  289. package/src/plugins/analysis/ast/visitors/ImportExportVisitor.ts +112 -1
  290. package/src/plugins/analysis/ast/visitors/VariableVisitor.ts +272 -47
  291. package/src/plugins/discovery/WorkspaceDiscovery.ts +11 -4
  292. package/src/plugins/enrichment/AliasTracker.ts +22 -1
  293. package/src/plugins/enrichment/ArgumentParameterLinker.ts +240 -0
  294. package/src/plugins/enrichment/ClosureCaptureEnricher.ts +267 -0
  295. package/src/plugins/enrichment/ExternalCallResolver.ts +262 -0
  296. package/src/plugins/enrichment/FunctionCallResolver.ts +456 -0
  297. package/src/plugins/enrichment/HTTPConnectionEnricher.ts +70 -20
  298. package/src/plugins/enrichment/MethodCallResolver.ts +21 -1
  299. package/src/plugins/enrichment/MountPointResolver.ts +206 -198
  300. package/src/plugins/enrichment/NodejsBuiltinsResolver.ts +365 -0
  301. package/src/plugins/enrichment/ValueDomainAnalyzer.ts +67 -184
  302. package/src/plugins/indexing/JSModuleIndexer.ts +66 -0
  303. package/src/plugins/indexing/RustModuleIndexer.ts +4 -4
  304. package/src/plugins/validation/BrokenImportValidator.ts +325 -0
  305. package/src/plugins/validation/CallResolverValidator.ts +129 -109
  306. package/src/plugins/validation/DataFlowValidator.ts +75 -58
  307. package/src/plugins/validation/GraphConnectivityValidator.ts +39 -1
  308. package/src/plugins/validation/SQLInjectionValidator.ts +2 -5
  309. package/src/queries/README.md +46 -0
  310. package/src/queries/findCallsInFunction.ts +206 -0
  311. package/src/queries/findContainingFunction.ts +83 -0
  312. package/src/queries/index.ts +23 -0
  313. package/src/queries/traceValues.ts +398 -0
  314. package/src/queries/types.ts +187 -0
  315. package/src/schema/GraphSchemaExtractor.ts +177 -0
  316. package/src/schema/InterfaceSchemaExtractor.ts +173 -0
  317. package/src/schema/index.ts +5 -0
  318. package/src/storage/backends/RFDBServerBackend.ts +58 -70
  319. package/src/storage/backends/typeValidation.ts +1 -0
@@ -5,13 +5,13 @@
5
5
  */
6
6
  import { readFileSync } from 'fs';
7
7
  import { Plugin, createSuccessResult } from '../Plugin.js';
8
- // NAPI binding - will be exported from rust-engine after build
8
+ // NAPI binding - will be exported from packages/rfdb-server after build
9
9
  let parseRustFile;
10
10
  // Try to load the native binding
11
- // Path: from dist/plugins/analysis/ go up 5 levels to reach project root, then rust-engine/
11
+ // Path: from dist/plugins/analysis/ go up 5 levels to reach project root, then packages/rfdb-server/
12
12
  try {
13
13
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
14
- const nativeBinding = await import('../../../../../rust-engine/grafema-graph-engine.node');
14
+ const nativeBinding = await import('../../../../../packages/rfdb-server/grafema-graph-engine.node');
15
15
  parseRustFile = nativeBinding.parseRustFile;
16
16
  }
17
17
  catch {
@@ -19,7 +19,7 @@ catch {
19
19
  try {
20
20
  const { createRequire } = await import('module');
21
21
  const require = createRequire(import.meta.url);
22
- const nativeBinding = require('../../../../../rust-engine/grafema-graph-engine.node');
22
+ const nativeBinding = require('../../../../../packages/rfdb-server/grafema-graph-engine.node');
23
23
  parseRustFile = nativeBinding.parseRustFile;
24
24
  }
25
25
  catch {
@@ -1 +1 @@
1
- {"version":3,"file":"SQLiteAnalyzer.d.ts","sourceRoot":"","sources":["../../../src/plugins/analysis/SQLiteAnalyzer.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAOH,OAAO,EAAE,MAAM,EAA0C,MAAM,cAAc,CAAC;AAC9E,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAkChF,qBAAa,cAAe,SAAQ,MAAM;IACxC,IAAI,QAAQ,IAAI,cAAc,CAW7B;IAEK,OAAO,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;YAiC9C,aAAa;IAiO3B,OAAO,CAAC,aAAa;IAWrB,OAAO,CAAC,sBAAsB;IAY9B,OAAO,CAAC,mBAAmB;IAY3B,OAAO,CAAC,gBAAgB;CAiCzB"}
1
+ {"version":3,"file":"SQLiteAnalyzer.d.ts","sourceRoot":"","sources":["../../../src/plugins/analysis/SQLiteAnalyzer.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAOH,OAAO,EAAE,MAAM,EAA0C,MAAM,cAAc,CAAC;AAC9E,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAmChF,qBAAa,cAAe,SAAQ,MAAM;IACxC,IAAI,QAAQ,IAAI,cAAc,CAW7B;IAEK,OAAO,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;YAiC9C,aAAa;IAmO3B,OAAO,CAAC,aAAa;IAWrB,OAAO,CAAC,sBAAsB;IAY9B,OAAO,CAAC,mBAAmB;IAY3B,OAAO,CAAC,gBAAgB;CAiCzB"}
@@ -11,7 +11,7 @@ import { readFileSync } from 'fs';
11
11
  import { parse } from '@babel/parser';
12
12
  import traverseModule from '@babel/traverse';
13
13
  import { Plugin, createSuccessResult, createErrorResult } from '../Plugin.js';
14
- import { getLine } from './ast/utils/location.js';
14
+ import { getLine, getColumn } from './ast/utils/location.js';
15
15
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
16
16
  const traverse = traverseModule.default || traverseModule;
17
17
  const SQLITE_METHODS = ['all', 'get', 'run', 'exec', 'prepare', 'query', 'execute'];
@@ -124,7 +124,8 @@ export class SQLiteAnalyzer extends Plugin {
124
124
  operationType: operationType,
125
125
  tableName: tableName,
126
126
  file: module.file,
127
- line: getLine(node)
127
+ line: getLine(node),
128
+ column: getColumn(node)
128
129
  });
129
130
  }
130
131
  }
@@ -187,6 +188,7 @@ export class SQLiteAnalyzer extends Plugin {
187
188
  tableName: tableName,
188
189
  file: module.file,
189
190
  line: getLine(innerNode),
191
+ column: getColumn(innerNode),
190
192
  promiseWrapped: true
191
193
  });
192
194
  }
@@ -19,6 +19,15 @@ import type { PluginContext, PluginResult, PluginMetadata } from '../Plugin.js';
19
19
  export declare class SocketIOAnalyzer extends Plugin {
20
20
  get metadata(): PluginMetadata;
21
21
  execute(context: PluginContext): Promise<PluginResult>;
22
+ /**
23
+ * Create event channel nodes and connect them to emits/listeners
24
+ *
25
+ * This runs AFTER all modules are analyzed, so all emit/listener nodes exist.
26
+ * Creates one socketio:event node per unique event name, then connects:
27
+ * - socketio:emit → EMITS_EVENT → socketio:event
28
+ * - socketio:event → LISTENED_BY → socketio:on
29
+ */
30
+ private createEventChannels;
22
31
  private analyzeModule;
23
32
  /**
24
33
  * Извлекает имя объекта из MemberExpression
@@ -1 +1 @@
1
- {"version":3,"file":"SocketIOAnalyzer.d.ts","sourceRoot":"","sources":["../../../src/plugins/analysis/SocketIOAnalyzer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAOH,OAAO,EAAE,MAAM,EAA0C,MAAM,cAAc,CAAC;AAC9E,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AA0DhF,qBAAa,gBAAiB,SAAQ,MAAM;IAC1C,IAAI,QAAQ,IAAI,cAAc,CAW7B;IAEK,OAAO,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;YAkD9C,aAAa;IAoN3B;;;OAGG;IACH,OAAO,CAAC,aAAa;IAWrB;;OAEG;IACH,OAAO,CAAC,gBAAgB;CA4BzB"}
1
+ {"version":3,"file":"SocketIOAnalyzer.d.ts","sourceRoot":"","sources":["../../../src/plugins/analysis/SocketIOAnalyzer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAOH,OAAO,EAAE,MAAM,EAA0C,MAAM,cAAc,CAAC;AAC9E,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAwEhF,qBAAa,gBAAiB,SAAQ,MAAM;IAC1C,IAAI,QAAQ,IAAI,cAAc,CAW7B;IAEK,OAAO,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;IA2D5D;;;;;;;OAOG;YACW,mBAAmB;YAiFnB,aAAa;IAsN3B;;;OAGG;IACH,OAAO,CAAC,aAAa;IAWrB;;OAEG;IACH,OAAO,CAAC,gBAAgB;CA4BzB"}
@@ -28,8 +28,8 @@ export class SocketIOAnalyzer extends Plugin {
28
28
  phase: 'ANALYSIS',
29
29
  priority: 75, // После JSASTAnalyzer (80)
30
30
  creates: {
31
- nodes: ['socketio:emit', 'socketio:on', 'socketio:room'],
32
- edges: ['CONTAINS', 'EMITS_EVENT', 'LISTENS_TO', 'JOINS_ROOM']
31
+ nodes: ['socketio:emit', 'socketio:on', 'socketio:room', 'socketio:event'],
32
+ edges: ['CONTAINS', 'EMITS_EVENT', 'LISTENS_TO', 'JOINS_ROOM', 'LISTENED_BY']
33
33
  },
34
34
  dependencies: ['JSModuleIndexer', 'JSASTAnalyzer']
35
35
  };
@@ -45,6 +45,7 @@ export class SocketIOAnalyzer extends Plugin {
45
45
  let listenersCount = 0;
46
46
  let roomsCount = 0;
47
47
  const startTime = Date.now();
48
+ // PHASE 1: Analyze modules and create emit/listener/room nodes
48
49
  for (let i = 0; i < modules.length; i++) {
49
50
  const module = modules[i];
50
51
  const result = await this.analyzeModule(module, graph);
@@ -63,17 +64,98 @@ export class SocketIOAnalyzer extends Plugin {
63
64
  });
64
65
  }
65
66
  }
66
- logger.info('Analysis complete', { emitsCount, listenersCount, roomsCount });
67
+ // PHASE 2: Create event channel nodes and edges
68
+ const eventCount = await this.createEventChannels(graph, logger);
69
+ logger.info('Analysis complete', {
70
+ emitsCount,
71
+ listenersCount,
72
+ roomsCount,
73
+ eventCount
74
+ });
67
75
  return createSuccessResult({
68
- nodes: emitsCount + listenersCount + roomsCount,
76
+ nodes: emitsCount + listenersCount + roomsCount + eventCount,
69
77
  edges: 0
70
- }, { emitsCount, listenersCount, roomsCount });
78
+ }, { emitsCount, listenersCount, roomsCount, eventCount });
71
79
  }
72
80
  catch (error) {
73
81
  logger.error('Analysis failed', { error });
74
82
  return createErrorResult(error);
75
83
  }
76
84
  }
85
+ /**
86
+ * Create event channel nodes and connect them to emits/listeners
87
+ *
88
+ * This runs AFTER all modules are analyzed, so all emit/listener nodes exist.
89
+ * Creates one socketio:event node per unique event name, then connects:
90
+ * - socketio:emit → EMITS_EVENT → socketio:event
91
+ * - socketio:event → LISTENED_BY → socketio:on
92
+ */
93
+ async createEventChannels(graph, logger) {
94
+ try {
95
+ // Step 1: Get all emit and listener nodes
96
+ const allEmits = await graph.getAllNodes({ type: 'socketio:emit' });
97
+ const allListeners = await graph.getAllNodes({ type: 'socketio:on' });
98
+ logger.debug('Creating event channels', {
99
+ emits: allEmits.length,
100
+ listeners: allListeners.length
101
+ });
102
+ // Step 2: Extract unique event names
103
+ const eventNames = new Set();
104
+ for (const emit of allEmits) {
105
+ if (emit.event && typeof emit.event === 'string') {
106
+ eventNames.add(emit.event);
107
+ }
108
+ }
109
+ for (const listener of allListeners) {
110
+ if (listener.event && typeof listener.event === 'string') {
111
+ eventNames.add(listener.event);
112
+ }
113
+ }
114
+ logger.debug('Unique events found', { count: eventNames.size });
115
+ // Step 3: Create event channel node for each unique event
116
+ let createdCount = 0;
117
+ for (const eventName of eventNames) {
118
+ const eventNodeId = `socketio:event#${eventName}`;
119
+ // Create event channel node
120
+ const eventNode = {
121
+ id: eventNodeId,
122
+ type: 'socketio:event',
123
+ name: eventName,
124
+ event: eventName
125
+ };
126
+ await graph.addNode(eventNode);
127
+ createdCount++;
128
+ // Step 4: Connect all emits of this event to the channel
129
+ const matchingEmits = allEmits.filter(e => e.event === eventName);
130
+ for (const emit of matchingEmits) {
131
+ await graph.addEdge({
132
+ type: 'EMITS_EVENT',
133
+ src: emit.id,
134
+ dst: eventNodeId
135
+ });
136
+ }
137
+ // Step 5: Connect event channel to all listeners of this event
138
+ const matchingListeners = allListeners.filter(l => l.event === eventName);
139
+ for (const listener of matchingListeners) {
140
+ await graph.addEdge({
141
+ type: 'LISTENED_BY',
142
+ src: eventNodeId,
143
+ dst: listener.id
144
+ });
145
+ }
146
+ logger.debug('Created event channel', {
147
+ event: eventName,
148
+ emits: matchingEmits.length,
149
+ listeners: matchingListeners.length
150
+ });
151
+ }
152
+ return createdCount;
153
+ }
154
+ catch (error) {
155
+ logger.error('Failed to create event channels', { error });
156
+ return 0;
157
+ }
158
+ }
77
159
  async analyzeModule(module, graph) {
78
160
  try {
79
161
  const code = readFileSync(module.file, 'utf-8');
@@ -168,7 +250,8 @@ export class SocketIOAnalyzer extends Plugin {
168
250
  handlerName: handlerName,
169
251
  handlerLine: handlerLine,
170
252
  file: module.file,
171
- line: line
253
+ line: line,
254
+ column: getColumn(node)
172
255
  });
173
256
  }
174
257
  // Pattern: socket.join(room)
@@ -185,7 +268,8 @@ export class SocketIOAnalyzer extends Plugin {
185
268
  room: roomName,
186
269
  objectName: objectName,
187
270
  file: module.file,
188
- line: line
271
+ line: line,
272
+ column: getColumn(node)
189
273
  });
190
274
  }
191
275
  }
@@ -31,6 +31,69 @@ export declare class GraphBuilder {
31
31
  build(module: ModuleNode, graph: GraphBackend, projectPath: string, data: ASTCollections): Promise<BuildResult>;
32
32
  private bufferFunctionEdges;
33
33
  private bufferScopeEdges;
34
+ /**
35
+ * Buffer LOOP edges (CONTAINS, HAS_BODY, ITERATES_OVER)
36
+ *
37
+ * Creates edges for:
38
+ * - Parent -> CONTAINS -> LOOP
39
+ * - LOOP -> HAS_BODY -> body SCOPE
40
+ * - LOOP -> ITERATES_OVER -> collection VARIABLE/PARAMETER (for for-in/for-of)
41
+ *
42
+ * Scope-aware variable lookup for ITERATES_OVER:
43
+ * For for-of/for-in, finds the iterated variable preferring:
44
+ * 1. Variables declared before the loop on same or earlier line (closest first)
45
+ * 2. Parameters (function arguments)
46
+ */
47
+ private bufferLoopEdges;
48
+ /**
49
+ * Buffer HAS_CONDITION edges from LOOP to condition EXPRESSION/CALL nodes.
50
+ * Also creates EXPRESSION nodes for non-CallExpression conditions.
51
+ *
52
+ * REG-280: For while/do-while/for loops, creates HAS_CONDITION edge to the
53
+ * condition expression. For-in/for-of loops don't have conditions (use ITERATES_OVER).
54
+ *
55
+ * For CallExpression conditions, links to existing CALL_SITE node by coordinates.
56
+ */
57
+ private bufferLoopConditionEdges;
58
+ /**
59
+ * Buffer EXPRESSION nodes for loop condition expressions (non-CallExpression).
60
+ * Similar to bufferDiscriminantExpressions but for loops.
61
+ *
62
+ * REG-280: Creates EXPRESSION nodes for while/do-while/for loop conditions.
63
+ * CallExpression conditions use existing CALL_SITE nodes (no EXPRESSION created).
64
+ */
65
+ private bufferLoopConditionExpressions;
66
+ /**
67
+ * Buffer BRANCH edges (CONTAINS, HAS_CONDITION, HAS_CONSEQUENT, HAS_ALTERNATE)
68
+ *
69
+ * REG-275: For CallExpression discriminants (switch(getType())), looks up the
70
+ * actual CALL_SITE node by coordinates since the CALL_SITE uses semantic IDs.
71
+ *
72
+ * Phase 3 (REG-267): For if-branches, creates HAS_CONSEQUENT and HAS_ALTERNATE edges
73
+ * pointing to the if-body and else-body SCOPEs.
74
+ */
75
+ private bufferBranchEdges;
76
+ /**
77
+ * Buffer CASE edges (HAS_CASE, HAS_DEFAULT)
78
+ */
79
+ private bufferCaseEdges;
80
+ /**
81
+ * Buffer edges for TRY_BLOCK, CATCH_BLOCK, FINALLY_BLOCK nodes (Phase 4)
82
+ *
83
+ * Creates edges for:
84
+ * - Parent -> CONTAINS -> TRY_BLOCK
85
+ * - TRY_BLOCK -> HAS_CATCH -> CATCH_BLOCK
86
+ * - TRY_BLOCK -> HAS_FINALLY -> FINALLY_BLOCK
87
+ */
88
+ private bufferTryCatchFinallyEdges;
89
+ /**
90
+ * Buffer EXPRESSION nodes for switch discriminants
91
+ * Uses stored metadata directly instead of parsing from ID (Linus improvement)
92
+ *
93
+ * REG-275: For CallExpression discriminants, we don't create nodes here since
94
+ * bufferBranchEdges links to the existing CALL_SITE node by coordinates.
95
+ */
96
+ private bufferDiscriminantExpressions;
34
97
  private bufferVariableEdges;
35
98
  private bufferCallSiteEdges;
36
99
  private bufferMethodCalls;
@@ -89,6 +152,108 @@ export declare class GraphBuilder {
89
152
  * to the CLASS node with mutationType: 'this_property'.
90
153
  */
91
154
  private bufferObjectMutationEdges;
155
+ /**
156
+ * Resolve variable by name using scope chain lookup (REG-309).
157
+ * Mirrors JavaScript lexical scoping: search current scope, then parent, then grandparent, etc.
158
+ *
159
+ * @param name - Variable name
160
+ * @param scopePath - Scope path where reference occurs (from ScopeTracker)
161
+ * @param file - File path
162
+ * @param variables - All variable declarations
163
+ * @returns Variable declaration or null if not found
164
+ */
165
+ private resolveVariableInScope;
166
+ /**
167
+ * Resolve parameter by name using scope chain lookup (REG-309).
168
+ * Same semantics as resolveVariableInScope but for parameters.
169
+ *
170
+ * @param name - Parameter name
171
+ * @param scopePath - Scope path where reference occurs (from ScopeTracker)
172
+ * @param file - File path
173
+ * @param parameters - All parameter declarations
174
+ * @returns Parameter declaration or null if not found
175
+ */
176
+ private resolveParameterInScope;
177
+ /**
178
+ * Check if two scope paths match (REG-309).
179
+ * Handles: ['foo', 'if#0'] vs ['foo', 'if#0']
180
+ */
181
+ private scopePathsMatch;
182
+ /**
183
+ * Buffer FLOWS_INTO edges for variable reassignments.
184
+ * Handles: x = y, x += y (when x is already declared, not initialization)
185
+ *
186
+ * Edge patterns:
187
+ * - Simple assignment (=): source --FLOWS_INTO--> variable
188
+ * - Compound operators (+=, -=, etc.):
189
+ * - source --FLOWS_INTO--> variable (write new value)
190
+ * - variable --READS_FROM--> variable (self-loop: reads current value before write)
191
+ *
192
+ * REG-309: Uses scope-aware variable lookup via resolveVariableInScope().
193
+ *
194
+ * REG-290: Complete implementation with inline node creation (no continue statements).
195
+ */
196
+ private bufferVariableReassignmentEdges;
197
+ /**
198
+ * Buffer RETURNS edges connecting return expressions to their containing functions.
199
+ *
200
+ * Edge direction: returnExpression --RETURNS--> function
201
+ *
202
+ * This enables tracing data flow through function calls:
203
+ * - Query: "What does formatDate return?"
204
+ * - Answer: Follow RETURNS edges from function to see all possible return values
205
+ */
206
+ private bufferReturnEdges;
207
+ /**
208
+ * Buffer UPDATE_EXPRESSION nodes and edges for increment/decrement operations.
209
+ *
210
+ * Handles two target types:
211
+ * - IDENTIFIER: Simple variable (i++, --count)
212
+ * - MEMBER_EXPRESSION: Object property (obj.prop++, arr[i]++, this.count++)
213
+ *
214
+ * Creates:
215
+ * - UPDATE_EXPRESSION node with operator and target metadata
216
+ * - MODIFIES edge: UPDATE_EXPRESSION -> target (VARIABLE, PARAMETER, or CLASS)
217
+ * - READS_FROM self-loop: target -> target (reads current value before update)
218
+ * - CONTAINS edge: SCOPE -> UPDATE_EXPRESSION
219
+ *
220
+ * REG-288: Initial implementation for IDENTIFIER targets
221
+ * REG-312: Extended for MEMBER_EXPRESSION targets
222
+ */
223
+ private bufferUpdateExpressionEdges;
224
+ /**
225
+ * Buffer UPDATE_EXPRESSION node and edges for simple identifier updates (i++, --count)
226
+ * REG-288: Original implementation extracted for clarity
227
+ */
228
+ private bufferIdentifierUpdate;
229
+ /**
230
+ * Buffer UPDATE_EXPRESSION node and edges for member expression updates (obj.prop++, arr[i]++)
231
+ * REG-312: New implementation for member expression targets
232
+ *
233
+ * Creates:
234
+ * - UPDATE_EXPRESSION node with member expression metadata
235
+ * - MODIFIES edge: UPDATE_EXPRESSION -> VARIABLE(object) or CLASS (for this.prop++)
236
+ * - READS_FROM self-loop: VARIABLE(object) -> VARIABLE(object)
237
+ * - CONTAINS edge: SCOPE -> UPDATE_EXPRESSION
238
+ */
239
+ private bufferMemberExpressionUpdate;
240
+ /**
241
+ * Buffer RESOLVES_TO edges for Promise resolution data flow (REG-334).
242
+ *
243
+ * Links resolve/reject CALL nodes to their parent Promise CONSTRUCTOR_CALL.
244
+ * This enables traceValues to follow Promise data flow:
245
+ *
246
+ * Example:
247
+ * ```
248
+ * const result = new Promise((resolve) => {
249
+ * resolve(42); // CALL[resolve] --RESOLVES_TO--> CONSTRUCTOR_CALL[Promise]
250
+ * });
251
+ * ```
252
+ *
253
+ * The edge direction (CALL -> CONSTRUCTOR_CALL) matches data flow semantics:
254
+ * data flows FROM resolve(value) TO the Promise result.
255
+ */
256
+ private bufferPromiseResolutionEdges;
92
257
  /**
93
258
  * Buffer OBJECT_LITERAL nodes to the graph.
94
259
  * These are object literals passed as function arguments or nested in other literals.
@@ -99,6 +264,14 @@ export declare class GraphBuilder {
99
264
  * These are array literals passed as function arguments or nested in other literals.
100
265
  */
101
266
  private bufferArrayLiteralNodes;
267
+ /**
268
+ * Buffer HAS_PROPERTY edges connecting OBJECT_LITERAL nodes to their property values.
269
+ * Creates edges from object literal to its property value nodes (LITERAL, nested OBJECT_LITERAL, ARRAY_LITERAL, etc.)
270
+ *
271
+ * REG-329: Adds scope-aware variable resolution for VARIABLE property values.
272
+ * Uses the same resolveVariableInScope infrastructure as mutation handlers.
273
+ */
274
+ private bufferObjectPropertyEdges;
102
275
  /**
103
276
  * Handle CLASS ASSIGNED_FROM edges asynchronously (needs graph queries)
104
277
  */
@@ -1 +1 @@
1
- {"version":3,"file":"GraphBuilder.d.ts","sourceRoot":"","sources":["../../../../src/plugins/analysis/ast/GraphBuilder.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAOnD,OAAO,KAAK,EACV,UAAU,EAyBV,cAAc,EAGd,WAAW,EACZ,MAAM,YAAY,CAAC;AAEpB,qBAAa,YAAY;IAEvB,OAAO,CAAC,kBAAkB,CAA0B;IAGpD,OAAO,CAAC,WAAW,CAAmB;IACtC,OAAO,CAAC,WAAW,CAAmB;IAEtC;;OAEG;IACH,OAAO,CAAC,WAAW;IAInB;;OAEG;IACH,OAAO,CAAC,WAAW;IAInB;;OAEG;YACW,WAAW;IAWzB;;;OAGG;YACW,WAAW;IAUzB;;OAEG;IACG,KAAK,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,WAAW,CAAC;IAoKrH,OAAO,CAAC,mBAAmB;IAsB3B,OAAO,CAAC,gBAAgB;IA+CxB,OAAO,CAAC,mBAAmB;IAa3B,OAAO,CAAC,mBAAmB;IAuB3B,OAAO,CAAC,iBAAiB;IAgBzB,OAAO,CAAC,gBAAgB;IAyBxB,OAAO,CAAC,2BAA2B;IAwCnC,OAAO,CAAC,gBAAgB;IAgCxB,OAAO,CAAC,mBAAmB;IAkB3B,OAAO,CAAC,iBAAiB;IAiDzB,OAAO,CAAC,iBAAiB;IAmFzB,OAAO,CAAC,oBAAoB;IA6B5B,OAAO,CAAC,kBAAkB;IA4C1B,OAAO,CAAC,cAAc;IAOtB,OAAO,CAAC,qBAAqB;IA2R7B,OAAO,CAAC,mBAAmB;IAsE3B;;;;;;OAMG;IACH,OAAO,CAAC,oBAAoB;IA8D5B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAqB5B;;;OAGG;IACH,OAAO,CAAC,eAAe;IA0BvB;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAwB5B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAoC7B;;;;;;;;;OASG;IACH,OAAO,CAAC,wBAAwB;IA2EhC;;;;;;OAMG;IACH,OAAO,CAAC,yBAAyB;IAkEjC;;;OAGG;IACH,OAAO,CAAC,wBAAwB;IAehC;;;OAGG;IACH,OAAO,CAAC,uBAAuB;IAe/B;;OAEG;YACW,0BAA0B;CA+BzC"}
1
+ {"version":3,"file":"GraphBuilder.d.ts","sourceRoot":"","sources":["../../../../src/plugins/analysis/ast/GraphBuilder.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAQnD,OAAO,KAAK,EACV,UAAU,EAqCV,cAAc,EAGd,WAAW,EACZ,MAAM,YAAY,CAAC;AAEpB,qBAAa,YAAY;IAEvB,OAAO,CAAC,kBAAkB,CAA0B;IAGpD,OAAO,CAAC,WAAW,CAAmB;IACtC,OAAO,CAAC,WAAW,CAAmB;IAEtC;;OAEG;IACH,OAAO,CAAC,WAAW;IAInB;;OAEG;IACH,OAAO,CAAC,WAAW;IAInB;;OAEG;YACW,WAAW;IAWzB;;;OAGG;YACW,WAAW;IAUzB;;OAEG;IACG,KAAK,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,WAAW,CAAC;IAmRrH,OAAO,CAAC,mBAAmB;IAsB3B,OAAO,CAAC,gBAAgB;IA+CxB;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,eAAe;IAqIvB;;;;;;;;OAQG;IACH,OAAO,CAAC,wBAAwB;IAoChC;;;;;;OAMG;IACH,OAAO,CAAC,8BAA8B;IA6BtC;;;;;;;;OAQG;IACH,OAAO,CAAC,iBAAiB;IA8FzB;;OAEG;IACH,OAAO,CAAC,eAAe;IAYvB;;;;;;;OAOG;IACH,OAAO,CAAC,0BAA0B;IAsClC;;;;;;OAMG;IACH,OAAO,CAAC,6BAA6B;IAwBrC,OAAO,CAAC,mBAAmB;IAa3B,OAAO,CAAC,mBAAmB;IAuB3B,OAAO,CAAC,iBAAiB;IAqDzB,OAAO,CAAC,gBAAgB;IAyBxB,OAAO,CAAC,2BAA2B;IAyCnC,OAAO,CAAC,gBAAgB;IAmCxB,OAAO,CAAC,mBAAmB;IAkB3B,OAAO,CAAC,iBAAiB;IAmGzB,OAAO,CAAC,iBAAiB;IAmFzB,OAAO,CAAC,oBAAoB;IA6B5B,OAAO,CAAC,kBAAkB;IA4C1B,OAAO,CAAC,cAAc;IAOtB,OAAO,CAAC,qBAAqB;IAyW7B,OAAO,CAAC,mBAAmB;IA4E3B;;;;;;OAMG;IACH,OAAO,CAAC,oBAAoB;IA8D5B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAqB5B;;;OAGG;IACH,OAAO,CAAC,eAAe;IA0BvB;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAwB5B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAoC7B;;;;;;;;;OASG;IACH,OAAO,CAAC,wBAAwB;IAkEhC;;;;;;OAMG;IACH,OAAO,CAAC,yBAAyB;IAqEjC;;;;;;;;;OASG;IACH,OAAO,CAAC,sBAAsB;IAwC9B;;;;;;;;;OASG;IACH,OAAO,CAAC,uBAAuB;IAkC/B;;;OAGG;IACH,OAAO,CAAC,eAAe;IAKvB;;;;;;;;;;;;;OAaG;IACH,OAAO,CAAC,+BAA+B;IAuHvC;;;;;;;;OAQG;IACH,OAAO,CAAC,iBAAiB;IA8OzB;;;;;;;;;;;;;;;OAeG;IACH,OAAO,CAAC,2BAA2B;IA4BnC;;;OAGG;IACH,OAAO,CAAC,sBAAsB;IAmE9B;;;;;;;;;OASG;IACH,OAAO,CAAC,4BAA4B;IAyGpC;;;;;;;;;;;;;;;OAeG;IACH,OAAO,CAAC,4BAA4B;IAapC;;;OAGG;IACH,OAAO,CAAC,wBAAwB;IAehC;;;OAGG;IACH,OAAO,CAAC,uBAAuB;IAe/B;;;;;;OAMG;IACH,OAAO,CAAC,yBAAyB;IA4CjC;;OAEG;YACW,0BAA0B;CA+BzC"}