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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (391) hide show
  1. package/README.md +0 -1
  2. package/dist/Orchestrator.d.ts +24 -2
  3. package/dist/Orchestrator.d.ts.map +1 -1
  4. package/dist/Orchestrator.js +197 -24
  5. package/dist/config/ConfigLoader.d.ts +72 -0
  6. package/dist/config/ConfigLoader.d.ts.map +1 -0
  7. package/dist/config/ConfigLoader.js +187 -0
  8. package/dist/config/index.d.ts +6 -0
  9. package/dist/config/index.d.ts.map +1 -0
  10. package/dist/config/index.js +4 -0
  11. package/dist/core/ASTWorker.d.ts +11 -36
  12. package/dist/core/ASTWorker.d.ts.map +1 -1
  13. package/dist/core/ASTWorker.js +93 -99
  14. package/dist/core/CoverageAnalyzer.d.ts +65 -0
  15. package/dist/core/CoverageAnalyzer.d.ts.map +1 -0
  16. package/dist/core/CoverageAnalyzer.js +198 -0
  17. package/dist/core/FileNodeManager.d.ts +40 -0
  18. package/dist/core/FileNodeManager.d.ts.map +1 -0
  19. package/dist/core/FileNodeManager.js +84 -0
  20. package/dist/core/GraphFreshnessChecker.d.ts +33 -0
  21. package/dist/core/GraphFreshnessChecker.d.ts.map +1 -0
  22. package/dist/core/GraphFreshnessChecker.js +101 -0
  23. package/dist/core/HashUtils.d.ts +24 -0
  24. package/dist/core/HashUtils.d.ts.map +1 -0
  25. package/dist/core/HashUtils.js +45 -0
  26. package/dist/core/IncrementalReanalyzer.d.ts +36 -0
  27. package/dist/core/IncrementalReanalyzer.d.ts.map +1 -0
  28. package/dist/core/IncrementalReanalyzer.js +132 -0
  29. package/dist/core/NodeFactory.d.ts +225 -17
  30. package/dist/core/NodeFactory.d.ts.map +1 -1
  31. package/dist/core/NodeFactory.js +208 -18
  32. package/dist/core/ScopeTracker.d.ts +84 -0
  33. package/dist/core/ScopeTracker.d.ts.map +1 -0
  34. package/dist/core/ScopeTracker.js +116 -0
  35. package/dist/core/SemanticId.d.ts +90 -0
  36. package/dist/core/SemanticId.d.ts.map +1 -0
  37. package/dist/core/SemanticId.js +115 -0
  38. package/dist/core/VersionManager.d.ts.map +1 -1
  39. package/dist/core/VersionManager.js +3 -2
  40. package/dist/core/nodes/ArgumentExpressionNode.d.ts +43 -0
  41. package/dist/core/nodes/ArgumentExpressionNode.d.ts.map +1 -0
  42. package/dist/core/nodes/ArgumentExpressionNode.js +60 -0
  43. package/dist/core/nodes/ArrayLiteralNode.d.ts +27 -0
  44. package/dist/core/nodes/ArrayLiteralNode.d.ts.map +1 -0
  45. package/dist/core/nodes/ArrayLiteralNode.js +41 -0
  46. package/dist/core/nodes/CallSiteNode.d.ts +28 -0
  47. package/dist/core/nodes/CallSiteNode.d.ts.map +1 -1
  48. package/dist/core/nodes/CallSiteNode.js +46 -0
  49. package/dist/core/nodes/ClassNode.d.ts +33 -1
  50. package/dist/core/nodes/ClassNode.d.ts.map +1 -1
  51. package/dist/core/nodes/ClassNode.js +46 -2
  52. package/dist/core/nodes/DecoratorNode.d.ts +42 -0
  53. package/dist/core/nodes/DecoratorNode.d.ts.map +1 -0
  54. package/dist/core/nodes/DecoratorNode.js +62 -0
  55. package/dist/core/nodes/EnumNode.d.ts +42 -0
  56. package/dist/core/nodes/EnumNode.d.ts.map +1 -0
  57. package/dist/core/nodes/EnumNode.js +54 -0
  58. package/dist/core/nodes/ExportNode.d.ts +37 -1
  59. package/dist/core/nodes/ExportNode.d.ts.map +1 -1
  60. package/dist/core/nodes/ExportNode.js +48 -2
  61. package/dist/core/nodes/ExpressionNode.d.ts +97 -0
  62. package/dist/core/nodes/ExpressionNode.d.ts.map +1 -0
  63. package/dist/core/nodes/ExpressionNode.js +178 -0
  64. package/dist/core/nodes/ExternalModuleNode.d.ts +28 -0
  65. package/dist/core/nodes/ExternalModuleNode.d.ts.map +1 -0
  66. package/dist/core/nodes/ExternalModuleNode.js +41 -0
  67. package/dist/core/nodes/ExternalStdioNode.d.ts +13 -6
  68. package/dist/core/nodes/ExternalStdioNode.d.ts.map +1 -1
  69. package/dist/core/nodes/ExternalStdioNode.js +15 -8
  70. package/dist/core/nodes/FunctionNode.d.ts +36 -0
  71. package/dist/core/nodes/FunctionNode.d.ts.map +1 -1
  72. package/dist/core/nodes/FunctionNode.js +80 -1
  73. package/dist/core/nodes/ImportNode.d.ts +19 -5
  74. package/dist/core/nodes/ImportNode.d.ts.map +1 -1
  75. package/dist/core/nodes/ImportNode.js +23 -5
  76. package/dist/core/nodes/InterfaceNode.d.ts +46 -0
  77. package/dist/core/nodes/InterfaceNode.d.ts.map +1 -0
  78. package/dist/core/nodes/InterfaceNode.js +55 -0
  79. package/dist/core/nodes/IssueNode.d.ts +73 -0
  80. package/dist/core/nodes/IssueNode.d.ts.map +1 -0
  81. package/dist/core/nodes/IssueNode.js +129 -0
  82. package/dist/core/nodes/MethodCallNode.d.ts +30 -0
  83. package/dist/core/nodes/MethodCallNode.d.ts.map +1 -1
  84. package/dist/core/nodes/MethodCallNode.js +49 -0
  85. package/dist/core/nodes/MethodNode.d.ts +32 -0
  86. package/dist/core/nodes/MethodNode.d.ts.map +1 -1
  87. package/dist/core/nodes/MethodNode.js +48 -0
  88. package/dist/core/nodes/ModuleNode.d.ts +31 -0
  89. package/dist/core/nodes/ModuleNode.d.ts.map +1 -1
  90. package/dist/core/nodes/ModuleNode.js +37 -0
  91. package/dist/core/nodes/NetworkRequestNode.d.ts +54 -0
  92. package/dist/core/nodes/NetworkRequestNode.d.ts.map +1 -0
  93. package/dist/core/nodes/NetworkRequestNode.js +65 -0
  94. package/dist/core/nodes/ObjectLiteralNode.d.ts +27 -0
  95. package/dist/core/nodes/ObjectLiteralNode.d.ts.map +1 -0
  96. package/dist/core/nodes/ObjectLiteralNode.js +41 -0
  97. package/dist/core/nodes/ScopeNode.d.ts +31 -0
  98. package/dist/core/nodes/ScopeNode.d.ts.map +1 -1
  99. package/dist/core/nodes/ScopeNode.js +49 -0
  100. package/dist/core/nodes/TypeNode.d.ts +36 -0
  101. package/dist/core/nodes/TypeNode.d.ts.map +1 -0
  102. package/dist/core/nodes/TypeNode.js +53 -0
  103. package/dist/core/nodes/VariableDeclarationNode.d.ts +27 -0
  104. package/dist/core/nodes/VariableDeclarationNode.d.ts.map +1 -1
  105. package/dist/core/nodes/VariableDeclarationNode.js +40 -0
  106. package/dist/core/nodes/index.d.ts +12 -1
  107. package/dist/core/nodes/index.d.ts.map +1 -1
  108. package/dist/core/nodes/index.js +14 -0
  109. package/dist/diagnostics/DiagnosticCollector.d.ts +98 -0
  110. package/dist/diagnostics/DiagnosticCollector.d.ts.map +1 -0
  111. package/dist/diagnostics/DiagnosticCollector.js +129 -0
  112. package/dist/diagnostics/DiagnosticReporter.d.ts +77 -0
  113. package/dist/diagnostics/DiagnosticReporter.d.ts.map +1 -0
  114. package/dist/diagnostics/DiagnosticReporter.js +159 -0
  115. package/dist/diagnostics/DiagnosticWriter.d.ts +31 -0
  116. package/dist/diagnostics/DiagnosticWriter.d.ts.map +1 -0
  117. package/dist/diagnostics/DiagnosticWriter.js +43 -0
  118. package/dist/diagnostics/index.d.ts +14 -0
  119. package/dist/diagnostics/index.d.ts.map +1 -0
  120. package/dist/diagnostics/index.js +11 -0
  121. package/dist/errors/GrafemaError.d.ts +118 -0
  122. package/dist/errors/GrafemaError.d.ts.map +1 -0
  123. package/dist/errors/GrafemaError.js +131 -0
  124. package/dist/index.d.ts +57 -1
  125. package/dist/index.d.ts.map +1 -1
  126. package/dist/index.js +54 -1
  127. package/dist/logging/Logger.d.ts +48 -0
  128. package/dist/logging/Logger.d.ts.map +1 -0
  129. package/dist/logging/Logger.js +134 -0
  130. package/dist/plugins/Plugin.d.ts +5 -1
  131. package/dist/plugins/Plugin.d.ts.map +1 -1
  132. package/dist/plugins/Plugin.js +33 -0
  133. package/dist/plugins/analysis/DatabaseAnalyzer.d.ts.map +1 -1
  134. package/dist/plugins/analysis/DatabaseAnalyzer.js +13 -6
  135. package/dist/plugins/analysis/ExpressAnalyzer.d.ts.map +1 -1
  136. package/dist/plugins/analysis/ExpressAnalyzer.js +27 -19
  137. package/dist/plugins/analysis/ExpressRouteAnalyzer.d.ts.map +1 -1
  138. package/dist/plugins/analysis/ExpressRouteAnalyzer.js +21 -14
  139. package/dist/plugins/analysis/FetchAnalyzer.d.ts +1 -0
  140. package/dist/plugins/analysis/FetchAnalyzer.d.ts.map +1 -1
  141. package/dist/plugins/analysis/FetchAnalyzer.js +34 -14
  142. package/dist/plugins/analysis/IncrementalAnalysisPlugin.d.ts +6 -3
  143. package/dist/plugins/analysis/IncrementalAnalysisPlugin.d.ts.map +1 -1
  144. package/dist/plugins/analysis/IncrementalAnalysisPlugin.js +76 -80
  145. package/dist/plugins/analysis/JSASTAnalyzer.d.ts +180 -17
  146. package/dist/plugins/analysis/JSASTAnalyzer.d.ts.map +1 -1
  147. package/dist/plugins/analysis/JSASTAnalyzer.js +1171 -471
  148. package/dist/plugins/analysis/ReactAnalyzer.d.ts.map +1 -1
  149. package/dist/plugins/analysis/ReactAnalyzer.js +56 -57
  150. package/dist/plugins/analysis/RustAnalyzer.d.ts.map +1 -1
  151. package/dist/plugins/analysis/RustAnalyzer.js +15 -10
  152. package/dist/plugins/analysis/SQLiteAnalyzer.d.ts.map +1 -1
  153. package/dist/plugins/analysis/SQLiteAnalyzer.js +9 -7
  154. package/dist/plugins/analysis/ServiceLayerAnalyzer.d.ts.map +1 -1
  155. package/dist/plugins/analysis/ServiceLayerAnalyzer.js +21 -9
  156. package/dist/plugins/analysis/SocketIOAnalyzer.d.ts.map +1 -1
  157. package/dist/plugins/analysis/SocketIOAnalyzer.js +27 -15
  158. package/dist/plugins/analysis/SystemDbAnalyzer.d.ts.map +1 -1
  159. package/dist/plugins/analysis/SystemDbAnalyzer.js +15 -5
  160. package/dist/plugins/analysis/ast/GraphBuilder.d.ts +34 -4
  161. package/dist/plugins/analysis/ast/GraphBuilder.d.ts.map +1 -1
  162. package/dist/plugins/analysis/ast/GraphBuilder.js +318 -298
  163. package/dist/plugins/analysis/ast/IdGenerator.d.ts +105 -0
  164. package/dist/plugins/analysis/ast/IdGenerator.d.ts.map +1 -0
  165. package/dist/plugins/analysis/ast/IdGenerator.js +116 -0
  166. package/dist/plugins/analysis/ast/types.d.ts +176 -5
  167. package/dist/plugins/analysis/ast/types.d.ts.map +1 -1
  168. package/dist/plugins/analysis/ast/utils/createParameterNodes.d.ts +33 -0
  169. package/dist/plugins/analysis/ast/utils/createParameterNodes.d.ts.map +1 -0
  170. package/dist/plugins/analysis/ast/utils/createParameterNodes.js +89 -0
  171. package/dist/plugins/analysis/ast/utils/index.d.ts +6 -0
  172. package/dist/plugins/analysis/ast/utils/index.d.ts.map +1 -0
  173. package/dist/plugins/analysis/ast/utils/index.js +5 -0
  174. package/dist/plugins/analysis/ast/utils/location.d.ts +87 -0
  175. package/dist/plugins/analysis/ast/utils/location.d.ts.map +1 -0
  176. package/dist/plugins/analysis/ast/utils/location.js +78 -0
  177. package/dist/plugins/analysis/ast/visitors/ASTVisitor.d.ts +9 -4
  178. package/dist/plugins/analysis/ast/visitors/ASTVisitor.d.ts.map +1 -1
  179. package/dist/plugins/analysis/ast/visitors/ASTVisitor.js +6 -5
  180. package/dist/plugins/analysis/ast/visitors/CallExpressionVisitor.d.ts +99 -9
  181. package/dist/plugins/analysis/ast/visitors/CallExpressionVisitor.d.ts.map +1 -1
  182. package/dist/plugins/analysis/ast/visitors/CallExpressionVisitor.js +663 -125
  183. package/dist/plugins/analysis/ast/visitors/ClassVisitor.d.ts +4 -1
  184. package/dist/plugins/analysis/ast/visitors/ClassVisitor.d.ts.map +1 -1
  185. package/dist/plugins/analysis/ast/visitors/ClassVisitor.js +72 -32
  186. package/dist/plugins/analysis/ast/visitors/FunctionVisitor.d.ts +4 -1
  187. package/dist/plugins/analysis/ast/visitors/FunctionVisitor.d.ts.map +1 -1
  188. package/dist/plugins/analysis/ast/visitors/FunctionVisitor.js +128 -63
  189. package/dist/plugins/analysis/ast/visitors/ImportExportVisitor.d.ts.map +1 -1
  190. package/dist/plugins/analysis/ast/visitors/ImportExportVisitor.js +11 -8
  191. package/dist/plugins/analysis/ast/visitors/TypeScriptVisitor.d.ts +12 -1
  192. package/dist/plugins/analysis/ast/visitors/TypeScriptVisitor.d.ts.map +1 -1
  193. package/dist/plugins/analysis/ast/visitors/TypeScriptVisitor.js +36 -14
  194. package/dist/plugins/analysis/ast/visitors/VariableVisitor.d.ts +4 -1
  195. package/dist/plugins/analysis/ast/visitors/VariableVisitor.d.ts.map +1 -1
  196. package/dist/plugins/analysis/ast/visitors/VariableVisitor.js +17 -13
  197. package/dist/plugins/discovery/MonorepoServiceDiscovery.d.ts.map +1 -1
  198. package/dist/plugins/discovery/MonorepoServiceDiscovery.js +3 -2
  199. package/dist/plugins/discovery/SimpleProjectDiscovery.d.ts.map +1 -1
  200. package/dist/plugins/discovery/SimpleProjectDiscovery.js +5 -1
  201. package/dist/plugins/discovery/WorkspaceDiscovery.d.ts +22 -0
  202. package/dist/plugins/discovery/WorkspaceDiscovery.d.ts.map +1 -0
  203. package/dist/plugins/discovery/WorkspaceDiscovery.js +136 -0
  204. package/dist/plugins/discovery/resolveSourceEntrypoint.d.ts +46 -0
  205. package/dist/plugins/discovery/resolveSourceEntrypoint.d.ts.map +1 -0
  206. package/dist/plugins/discovery/resolveSourceEntrypoint.js +86 -0
  207. package/dist/plugins/discovery/workspaces/detector.d.ts +21 -0
  208. package/dist/plugins/discovery/workspaces/detector.d.ts.map +1 -0
  209. package/dist/plugins/discovery/workspaces/detector.js +49 -0
  210. package/dist/plugins/discovery/workspaces/globResolver.d.ts +35 -0
  211. package/dist/plugins/discovery/workspaces/globResolver.d.ts.map +1 -0
  212. package/dist/plugins/discovery/workspaces/globResolver.js +184 -0
  213. package/dist/plugins/discovery/workspaces/index.d.ts +9 -0
  214. package/dist/plugins/discovery/workspaces/index.d.ts.map +1 -0
  215. package/dist/plugins/discovery/workspaces/index.js +8 -0
  216. package/dist/plugins/discovery/workspaces/parsers.d.ts +38 -0
  217. package/dist/plugins/discovery/workspaces/parsers.d.ts.map +1 -0
  218. package/dist/plugins/discovery/workspaces/parsers.js +80 -0
  219. package/dist/plugins/enrichment/AliasTracker.d.ts.map +1 -1
  220. package/dist/plugins/enrichment/AliasTracker.js +14 -8
  221. package/dist/plugins/enrichment/HTTPConnectionEnricher.d.ts.map +1 -1
  222. package/dist/plugins/enrichment/HTTPConnectionEnricher.js +14 -7
  223. package/dist/plugins/enrichment/ImportExportLinker.d.ts.map +1 -1
  224. package/dist/plugins/enrichment/ImportExportLinker.js +23 -6
  225. package/dist/plugins/enrichment/MethodCallResolver.d.ts.map +1 -1
  226. package/dist/plugins/enrichment/MethodCallResolver.js +18 -12
  227. package/dist/plugins/enrichment/MountPointResolver.d.ts.map +1 -1
  228. package/dist/plugins/enrichment/MountPointResolver.js +8 -3
  229. package/dist/plugins/enrichment/PrefixEvaluator.d.ts.map +1 -1
  230. package/dist/plugins/enrichment/PrefixEvaluator.js +16 -7
  231. package/dist/plugins/enrichment/RustFFIEnricher.d.ts.map +1 -1
  232. package/dist/plugins/enrichment/RustFFIEnricher.js +6 -5
  233. package/dist/plugins/enrichment/ValueDomainAnalyzer.d.ts +17 -0
  234. package/dist/plugins/enrichment/ValueDomainAnalyzer.d.ts.map +1 -1
  235. package/dist/plugins/enrichment/ValueDomainAnalyzer.js +129 -10
  236. package/dist/plugins/indexing/IncrementalModuleIndexer.d.ts.map +1 -1
  237. package/dist/plugins/indexing/IncrementalModuleIndexer.js +23 -14
  238. package/dist/plugins/indexing/JSModuleIndexer.d.ts.map +1 -1
  239. package/dist/plugins/indexing/JSModuleIndexer.js +63 -31
  240. package/dist/plugins/indexing/RustModuleIndexer.d.ts.map +1 -1
  241. package/dist/plugins/indexing/RustModuleIndexer.js +5 -4
  242. package/dist/plugins/indexing/ServiceDetector.d.ts +10 -0
  243. package/dist/plugins/indexing/ServiceDetector.d.ts.map +1 -1
  244. package/dist/plugins/indexing/ServiceDetector.js +28 -15
  245. package/dist/plugins/validation/CallResolverValidator.d.ts.map +1 -1
  246. package/dist/plugins/validation/CallResolverValidator.js +8 -7
  247. package/dist/plugins/validation/DataFlowValidator.d.ts.map +1 -1
  248. package/dist/plugins/validation/DataFlowValidator.js +17 -12
  249. package/dist/plugins/validation/EvalBanValidator.d.ts.map +1 -1
  250. package/dist/plugins/validation/EvalBanValidator.js +17 -16
  251. package/dist/plugins/validation/GraphConnectivityValidator.d.ts.map +1 -1
  252. package/dist/plugins/validation/GraphConnectivityValidator.js +19 -23
  253. package/dist/plugins/validation/NodeCreationValidator.d.ts +85 -0
  254. package/dist/plugins/validation/NodeCreationValidator.d.ts.map +1 -0
  255. package/dist/plugins/validation/NodeCreationValidator.js +415 -0
  256. package/dist/plugins/validation/SQLInjectionValidator.d.ts.map +1 -1
  257. package/dist/plugins/validation/SQLInjectionValidator.js +59 -16
  258. package/dist/plugins/validation/ShadowingDetector.d.ts.map +1 -1
  259. package/dist/plugins/validation/ShadowingDetector.js +6 -5
  260. package/dist/plugins/validation/TypeScriptDeadCodeValidator.d.ts.map +1 -1
  261. package/dist/plugins/validation/TypeScriptDeadCodeValidator.js +12 -11
  262. package/dist/plugins/vcs/GitPlugin.d.ts.map +1 -1
  263. package/dist/plugins/vcs/GitPlugin.js +10 -12
  264. package/dist/plugins/vcs/VCSPlugin.d.ts +3 -2
  265. package/dist/plugins/vcs/VCSPlugin.d.ts.map +1 -1
  266. package/dist/plugins/vcs/VCSPlugin.js +5 -5
  267. package/dist/storage/backends/RFDBServerBackend.d.ts +10 -17
  268. package/dist/storage/backends/RFDBServerBackend.d.ts.map +1 -1
  269. package/dist/storage/backends/RFDBServerBackend.js +31 -10
  270. package/dist/validation/PathValidator.d.ts +1 -2
  271. package/dist/validation/PathValidator.d.ts.map +1 -1
  272. package/package.json +6 -3
  273. package/src/Orchestrator.ts +237 -24
  274. package/src/config/ConfigLoader.ts +263 -0
  275. package/src/config/index.ts +5 -0
  276. package/src/core/ASTWorker.ts +143 -139
  277. package/src/core/CoverageAnalyzer.ts +243 -0
  278. package/src/core/FileNodeManager.ts +100 -0
  279. package/src/core/GraphFreshnessChecker.ts +143 -0
  280. package/src/core/HashUtils.ts +48 -0
  281. package/src/core/IncrementalReanalyzer.ts +192 -0
  282. package/src/core/NodeFactory.ts +401 -18
  283. package/src/core/ScopeTracker.ts +154 -0
  284. package/src/core/SemanticId.ts +192 -0
  285. package/src/core/VersionManager.ts +3 -2
  286. package/src/core/nodes/ArgumentExpressionNode.ts +89 -0
  287. package/src/core/nodes/ArrayLiteralNode.ts +65 -0
  288. package/src/core/nodes/CallSiteNode.ts +58 -0
  289. package/src/core/nodes/ClassNode.ts +63 -2
  290. package/src/core/nodes/DecoratorNode.ts +91 -0
  291. package/src/core/nodes/EnumNode.ts +86 -0
  292. package/src/core/nodes/ExportNode.ts +70 -2
  293. package/src/core/nodes/ExpressionNode.ts +231 -0
  294. package/src/core/nodes/ExternalModuleNode.ts +56 -0
  295. package/src/core/nodes/ExternalStdioNode.ts +17 -9
  296. package/src/core/nodes/FunctionNode.ts +101 -1
  297. package/src/core/nodes/ImportNode.ts +32 -10
  298. package/src/core/nodes/InterfaceNode.ts +91 -0
  299. package/src/core/nodes/IssueNode.ts +177 -0
  300. package/src/core/nodes/MethodCallNode.ts +64 -0
  301. package/src/core/nodes/MethodNode.ts +63 -0
  302. package/src/core/nodes/ModuleNode.ts +50 -0
  303. package/src/core/nodes/NetworkRequestNode.ts +77 -0
  304. package/src/core/nodes/ObjectLiteralNode.ts +65 -0
  305. package/src/core/nodes/ScopeNode.ts +65 -0
  306. package/src/core/nodes/TypeNode.ts +78 -0
  307. package/src/core/nodes/VariableDeclarationNode.ts +52 -0
  308. package/src/core/nodes/index.ts +18 -1
  309. package/src/diagnostics/DiagnosticCollector.ts +163 -0
  310. package/src/diagnostics/DiagnosticReporter.ts +204 -0
  311. package/src/diagnostics/DiagnosticWriter.ts +50 -0
  312. package/src/diagnostics/index.ts +16 -0
  313. package/src/errors/GrafemaError.ts +174 -0
  314. package/src/index.ts +148 -1
  315. package/src/logging/Logger.ts +152 -0
  316. package/src/plugins/Plugin.ts +42 -0
  317. package/src/plugins/analysis/DatabaseAnalyzer.ts +14 -8
  318. package/src/plugins/analysis/ExpressAnalyzer.ts +29 -19
  319. package/src/plugins/analysis/ExpressRouteAnalyzer.ts +22 -21
  320. package/src/plugins/analysis/FetchAnalyzer.ts +39 -16
  321. package/src/plugins/analysis/IncrementalAnalysisPlugin.ts +84 -101
  322. package/src/plugins/analysis/JSASTAnalyzer.ts +1483 -503
  323. package/src/plugins/analysis/ReactAnalyzer.ts +57 -57
  324. package/src/plugins/analysis/RustAnalyzer.ts +15 -10
  325. package/src/plugins/analysis/SQLiteAnalyzer.ts +10 -7
  326. package/src/plugins/analysis/ServiceLayerAnalyzer.ts +22 -16
  327. package/src/plugins/analysis/SocketIOAnalyzer.ts +31 -22
  328. package/src/plugins/analysis/SystemDbAnalyzer.ts +16 -11
  329. package/src/plugins/analysis/ast/GraphBuilder.ts +439 -327
  330. package/src/plugins/analysis/ast/IdGenerator.ts +177 -0
  331. package/src/plugins/analysis/ast/types.ts +209 -6
  332. package/src/plugins/analysis/ast/utils/createParameterNodes.ts +104 -0
  333. package/src/plugins/analysis/ast/utils/index.ts +12 -0
  334. package/src/plugins/analysis/ast/utils/location.ts +103 -0
  335. package/src/plugins/analysis/ast/visitors/ASTVisitor.ts +11 -8
  336. package/src/plugins/analysis/ast/visitors/CallExpressionVisitor.ts +909 -83
  337. package/src/plugins/analysis/ast/visitors/ClassVisitor.ts +97 -44
  338. package/src/plugins/analysis/ast/visitors/FunctionVisitor.ts +159 -93
  339. package/src/plugins/analysis/ast/visitors/ImportExportVisitor.ts +12 -8
  340. package/src/plugins/analysis/ast/visitors/TypeScriptVisitor.ts +41 -14
  341. package/src/plugins/analysis/ast/visitors/VariableVisitor.ts +37 -17
  342. package/src/plugins/discovery/MonorepoServiceDiscovery.ts +3 -2
  343. package/src/plugins/discovery/SimpleProjectDiscovery.ts +6 -1
  344. package/src/plugins/discovery/WorkspaceDiscovery.ts +177 -0
  345. package/src/plugins/discovery/resolveSourceEntrypoint.ts +103 -0
  346. package/src/plugins/discovery/workspaces/detector.ts +63 -0
  347. package/src/plugins/discovery/workspaces/globResolver.ts +229 -0
  348. package/src/plugins/discovery/workspaces/index.ts +23 -0
  349. package/src/plugins/discovery/workspaces/parsers.ts +99 -0
  350. package/src/plugins/enrichment/AliasTracker.ts +14 -8
  351. package/src/plugins/enrichment/HTTPConnectionEnricher.ts +14 -7
  352. package/src/plugins/enrichment/ImportExportLinker.ts +24 -6
  353. package/src/plugins/enrichment/MethodCallResolver.ts +18 -12
  354. package/src/plugins/enrichment/MountPointResolver.ts +8 -3
  355. package/src/plugins/enrichment/PrefixEvaluator.ts +16 -7
  356. package/src/plugins/enrichment/RustFFIEnricher.ts +6 -5
  357. package/src/plugins/enrichment/ValueDomainAnalyzer.ts +149 -12
  358. package/src/plugins/indexing/IncrementalModuleIndexer.ts +23 -14
  359. package/src/plugins/indexing/JSModuleIndexer.ts +74 -34
  360. package/src/plugins/indexing/RustModuleIndexer.ts +5 -4
  361. package/src/plugins/validation/CallResolverValidator.ts +8 -7
  362. package/src/plugins/validation/DataFlowValidator.ts +16 -12
  363. package/src/plugins/validation/EvalBanValidator.ts +17 -16
  364. package/src/plugins/validation/GraphConnectivityValidator.ts +19 -23
  365. package/src/plugins/validation/NodeCreationValidator.ts +554 -0
  366. package/src/plugins/validation/SQLInjectionValidator.ts +61 -15
  367. package/src/plugins/validation/ShadowingDetector.ts +6 -5
  368. package/src/plugins/validation/TypeScriptDeadCodeValidator.ts +12 -11
  369. package/src/plugins/vcs/GitPlugin.ts +40 -12
  370. package/src/plugins/vcs/VCSPlugin.ts +7 -5
  371. package/src/storage/backends/RFDBServerBackend.ts +43 -29
  372. package/src/validation/PathValidator.ts +1 -1
  373. package/dist/core/AnalysisWorker.d.ts +0 -14
  374. package/dist/core/AnalysisWorker.d.ts.map +0 -1
  375. package/dist/core/AnalysisWorker.js +0 -307
  376. package/dist/core/ParallelAnalyzer.d.ts +0 -120
  377. package/dist/core/ParallelAnalyzer.d.ts.map +0 -1
  378. package/dist/core/ParallelAnalyzer.js +0 -331
  379. package/dist/core/QueueWorker.d.ts +0 -12
  380. package/dist/core/QueueWorker.d.ts.map +0 -1
  381. package/dist/core/QueueWorker.js +0 -567
  382. package/dist/core/RFDBClient.d.ts +0 -179
  383. package/dist/core/RFDBClient.d.ts.map +0 -1
  384. package/dist/core/RFDBClient.js +0 -429
  385. package/dist/plugins/discovery/ZonServiceDiscovery.d.ts +0 -19
  386. package/dist/plugins/discovery/ZonServiceDiscovery.d.ts.map +0 -1
  387. package/dist/plugins/discovery/ZonServiceDiscovery.js +0 -204
  388. package/src/core/AnalysisWorker.ts +0 -410
  389. package/src/core/ParallelAnalyzer.ts +0 -476
  390. package/src/core/QueueWorker.ts +0 -780
  391. package/src/plugins/indexing/ServiceDetector.ts +0 -230
@@ -1,7 +1,15 @@
1
1
  /**
2
2
  * MethodCallNode - contract for METHOD_CALL node
3
+ *
4
+ * Supports two creation modes:
5
+ * 1. createWithContext() - NEW: Uses ScopeContext + Location for semantic IDs
6
+ * 2. create() - LEGACY: Uses line-based IDs for backward compatibility
7
+ *
8
+ * Semantic ID format: {file}->{scope_path}->CALL->{object.method}#N
9
+ * Example: src/app.js->handler->CALL->db.query#0
3
10
  */
4
11
  import type { BaseNodeRecord } from '@grafema/types';
12
+ import { type ScopeContext, type Location } from '../SemanticId.js';
5
13
  interface MethodCallNodeRecord extends BaseNodeRecord {
6
14
  type: 'METHOD_CALL';
7
15
  object?: string;
@@ -15,6 +23,14 @@ interface MethodCallNodeOptions {
15
23
  args?: unknown[];
16
24
  counter?: number;
17
25
  }
26
+ /**
27
+ * Options for createWithContext
28
+ */
29
+ interface MethodCallContextOptions {
30
+ discriminator: number;
31
+ parentScopeId?: string;
32
+ args?: unknown[];
33
+ }
18
34
  export declare class MethodCallNode {
19
35
  static readonly TYPE: "METHOD_CALL";
20
36
  static readonly REQUIRED: readonly ["name", "file", "line", "args"];
@@ -23,6 +39,20 @@ export declare class MethodCallNode {
23
39
  * Create METHOD_CALL node
24
40
  */
25
41
  static create(objectName: string | undefined, methodName: string, file: string, line: number, column: number, options?: MethodCallNodeOptions): MethodCallNodeRecord;
42
+ /**
43
+ * Create METHOD_CALL node with semantic ID (NEW API)
44
+ *
45
+ * Uses ScopeContext from ScopeTracker for stable identifiers.
46
+ * Requires discriminator for multiple calls to same method within scope.
47
+ *
48
+ * @param objectName - Object name (can be undefined for bare function calls)
49
+ * @param methodName - Method name
50
+ * @param context - Scope context from ScopeTracker.getContext()
51
+ * @param location - Source location { line, column }
52
+ * @param options - Options including required discriminator
53
+ * @returns MethodCallNodeRecord with semantic ID
54
+ */
55
+ static createWithContext(objectName: string | undefined, methodName: string, context: ScopeContext, location: Partial<Location>, options: MethodCallContextOptions): MethodCallNodeRecord;
26
56
  static validate(node: MethodCallNodeRecord): string[];
27
57
  }
28
58
  export type { MethodCallNodeRecord };
@@ -1 +1 @@
1
- {"version":3,"file":"MethodCallNode.d.ts","sourceRoot":"","sources":["../../../src/core/nodes/MethodCallNode.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAErD,UAAU,oBAAqB,SAAQ,cAAc;IACnD,IAAI,EAAE,aAAa,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,IAAI,EAAE,OAAO,EAAE,CAAC;CACjB;AAED,UAAU,qBAAqB;IAC7B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,cAAc;IACzB,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAG,aAAa,CAAU;IAE9C,MAAM,CAAC,QAAQ,CAAC,QAAQ,4CAA6C;IACrE,MAAM,CAAC,QAAQ,CAAC,QAAQ,2DAA4D;IAEpF;;OAEG;IACH,MAAM,CAAC,MAAM,CACX,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,qBAA0B,GAClC,oBAAoB;IAuBvB,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,oBAAoB,GAAG,MAAM,EAAE;CAgBtD;AAED,YAAY,EAAE,oBAAoB,EAAE,CAAC"}
1
+ {"version":3,"file":"MethodCallNode.d.ts","sourceRoot":"","sources":["../../../src/core/nodes/MethodCallNode.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAqB,KAAK,YAAY,EAAE,KAAK,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAEvF,UAAU,oBAAqB,SAAQ,cAAc;IACnD,IAAI,EAAE,aAAa,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,IAAI,EAAE,OAAO,EAAE,CAAC;CACjB;AAED,UAAU,qBAAqB;IAC7B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,UAAU,wBAAwB;IAChC,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC;CAClB;AAED,qBAAa,cAAc;IACzB,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAG,aAAa,CAAU;IAE9C,MAAM,CAAC,QAAQ,CAAC,QAAQ,4CAA6C;IACrE,MAAM,CAAC,QAAQ,CAAC,QAAQ,2DAA4D;IAEpF;;OAEG;IACH,MAAM,CAAC,MAAM,CACX,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,qBAA0B,GAClC,oBAAoB;IAuBvB;;;;;;;;;;;;OAYG;IACH,MAAM,CAAC,iBAAiB,CACtB,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,YAAY,EACrB,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,EAC3B,OAAO,EAAE,wBAAwB,GAChC,oBAAoB;IA4BvB,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,oBAAoB,GAAG,MAAM,EAAE;CAgBtD;AAED,YAAY,EAAE,oBAAoB,EAAE,CAAC"}
@@ -1,6 +1,14 @@
1
1
  /**
2
2
  * MethodCallNode - contract for METHOD_CALL node
3
+ *
4
+ * Supports two creation modes:
5
+ * 1. createWithContext() - NEW: Uses ScopeContext + Location for semantic IDs
6
+ * 2. create() - LEGACY: Uses line-based IDs for backward compatibility
7
+ *
8
+ * Semantic ID format: {file}->{scope_path}->CALL->{object.method}#N
9
+ * Example: src/app.js->handler->CALL->db.query#0
3
10
  */
11
+ import { computeSemanticId } from '../SemanticId.js';
4
12
  export class MethodCallNode {
5
13
  static TYPE = 'METHOD_CALL';
6
14
  static REQUIRED = ['name', 'file', 'line', 'args'];
@@ -31,6 +39,47 @@ export class MethodCallNode {
31
39
  args: options.args || []
32
40
  };
33
41
  }
42
+ /**
43
+ * Create METHOD_CALL node with semantic ID (NEW API)
44
+ *
45
+ * Uses ScopeContext from ScopeTracker for stable identifiers.
46
+ * Requires discriminator for multiple calls to same method within scope.
47
+ *
48
+ * @param objectName - Object name (can be undefined for bare function calls)
49
+ * @param methodName - Method name
50
+ * @param context - Scope context from ScopeTracker.getContext()
51
+ * @param location - Source location { line, column }
52
+ * @param options - Options including required discriminator
53
+ * @returns MethodCallNodeRecord with semantic ID
54
+ */
55
+ static createWithContext(objectName, methodName, context, location, options) {
56
+ // Validate required fields
57
+ if (!methodName)
58
+ throw new Error('MethodCallNode.createWithContext: methodName is required');
59
+ if (!context.file)
60
+ throw new Error('MethodCallNode.createWithContext: file is required');
61
+ if (location.line === undefined)
62
+ throw new Error('MethodCallNode.createWithContext: line is required');
63
+ if (options.discriminator === undefined)
64
+ throw new Error('MethodCallNode.createWithContext: discriminator is required');
65
+ const fullName = objectName ? `${objectName}.${methodName}` : methodName;
66
+ // Compute semantic ID with discriminator
67
+ const id = computeSemanticId('CALL', fullName, context, {
68
+ discriminator: options.discriminator
69
+ });
70
+ return {
71
+ id,
72
+ type: this.TYPE,
73
+ name: fullName,
74
+ object: objectName,
75
+ method: methodName,
76
+ file: context.file,
77
+ line: location.line,
78
+ column: location.column ?? 0,
79
+ parentScopeId: options.parentScopeId,
80
+ args: options.args || []
81
+ };
82
+ }
34
83
  static validate(node) {
35
84
  const errors = [];
36
85
  if (node.type !== this.TYPE) {
@@ -1,7 +1,15 @@
1
1
  /**
2
2
  * MethodNode - contract for METHOD node (class method)
3
+ *
4
+ * Supports two creation modes:
5
+ * 1. createWithContext() - NEW: Uses ScopeContext + Location for semantic IDs
6
+ * 2. create() - LEGACY: Uses line-based IDs for backward compatibility
7
+ *
8
+ * Semantic ID format: {file}->{className}->METHOD->{name}
9
+ * Example: src/services/UserService.js->UserService->METHOD->login
3
10
  */
4
11
  import type { BaseNodeRecord } from '@grafema/types';
12
+ import { type ScopeContext, type Location } from '../SemanticId.js';
5
13
  type MethodKind = 'method' | 'get' | 'set' | 'constructor';
6
14
  interface MethodNodeRecord extends BaseNodeRecord {
7
15
  type: 'METHOD';
@@ -18,11 +26,35 @@ interface MethodNodeOptions {
18
26
  static?: boolean;
19
27
  kind?: MethodKind;
20
28
  }
29
+ /**
30
+ * Options for createWithContext
31
+ */
32
+ interface MethodContextOptions {
33
+ async?: boolean;
34
+ generator?: boolean;
35
+ static?: boolean;
36
+ kind?: MethodKind;
37
+ }
21
38
  export declare class MethodNode {
22
39
  static readonly TYPE: "METHOD";
23
40
  static readonly REQUIRED: readonly ["name", "file", "line", "className"];
24
41
  static readonly OPTIONAL: readonly ["column", "async", "generator", "static", "kind"];
25
42
  static create(name: string, file: string, line: number, column: number, className: string, options?: MethodNodeOptions): MethodNodeRecord;
43
+ /**
44
+ * Create METHOD node with semantic ID (NEW API)
45
+ *
46
+ * Uses ScopeContext from ScopeTracker for stable identifiers.
47
+ * Method names are unique within class, so no discriminator needed.
48
+ * Context should include the class in scopePath.
49
+ *
50
+ * @param name - Method name
51
+ * @param className - Name of the class containing this method
52
+ * @param context - Scope context from ScopeTracker.getContext() (should be inside class)
53
+ * @param location - Source location { line, column }
54
+ * @param options - Optional method properties
55
+ * @returns MethodNodeRecord with semantic ID
56
+ */
57
+ static createWithContext(name: string, className: string, context: ScopeContext, location: Partial<Location>, options?: MethodContextOptions): MethodNodeRecord;
26
58
  static validate(node: MethodNodeRecord): string[];
27
59
  }
28
60
  export type { MethodNodeRecord, MethodKind };
@@ -1 +1 @@
1
- {"version":3,"file":"MethodNode.d.ts","sourceRoot":"","sources":["../../../src/core/nodes/MethodNode.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAErD,KAAK,UAAU,GAAG,QAAQ,GAAG,KAAK,GAAG,KAAK,GAAG,aAAa,CAAC;AAE3D,UAAU,gBAAiB,SAAQ,cAAc;IAC/C,IAAI,EAAE,QAAQ,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,OAAO,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,OAAO,CAAC;IAChB,IAAI,EAAE,UAAU,CAAC;CAClB;AAED,UAAU,iBAAiB;IACzB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,UAAU,CAAC;CACnB;AAED,qBAAa,UAAU;IACrB,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAG,QAAQ,CAAU;IAEzC,MAAM,CAAC,QAAQ,CAAC,QAAQ,iDAAkD;IAC1E,MAAM,CAAC,QAAQ,CAAC,QAAQ,8DAA+D;IAEvF,MAAM,CAAC,MAAM,CACX,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,iBAAsB,GAC9B,gBAAgB;IAqBnB,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,gBAAgB,GAAG,MAAM,EAAE;CAgBlD;AAED,YAAY,EAAE,gBAAgB,EAAE,UAAU,EAAE,CAAC"}
1
+ {"version":3,"file":"MethodNode.d.ts","sourceRoot":"","sources":["../../../src/core/nodes/MethodNode.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAqB,KAAK,YAAY,EAAE,KAAK,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAEvF,KAAK,UAAU,GAAG,QAAQ,GAAG,KAAK,GAAG,KAAK,GAAG,aAAa,CAAC;AAE3D,UAAU,gBAAiB,SAAQ,cAAc;IAC/C,IAAI,EAAE,QAAQ,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,OAAO,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,OAAO,CAAC;IAChB,IAAI,EAAE,UAAU,CAAC;CAClB;AAED,UAAU,iBAAiB;IACzB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,UAAU,CAAC;CACnB;AAED;;GAEG;AACH,UAAU,oBAAoB;IAC5B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,UAAU,CAAC;CACnB;AAED,qBAAa,UAAU;IACrB,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAG,QAAQ,CAAU;IAEzC,MAAM,CAAC,QAAQ,CAAC,QAAQ,iDAAkD;IAC1E,MAAM,CAAC,QAAQ,CAAC,QAAQ,8DAA+D;IAEvF,MAAM,CAAC,MAAM,CACX,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,iBAAsB,GAC9B,gBAAgB;IAqBnB;;;;;;;;;;;;;OAaG;IACH,MAAM,CAAC,iBAAiB,CACtB,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,YAAY,EACrB,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,EAC3B,OAAO,GAAE,oBAAyB,GACjC,gBAAgB;IAyBnB,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,gBAAgB,GAAG,MAAM,EAAE;CAgBlD;AAED,YAAY,EAAE,gBAAgB,EAAE,UAAU,EAAE,CAAC"}
@@ -1,6 +1,14 @@
1
1
  /**
2
2
  * MethodNode - contract for METHOD node (class method)
3
+ *
4
+ * Supports two creation modes:
5
+ * 1. createWithContext() - NEW: Uses ScopeContext + Location for semantic IDs
6
+ * 2. create() - LEGACY: Uses line-based IDs for backward compatibility
7
+ *
8
+ * Semantic ID format: {file}->{className}->METHOD->{name}
9
+ * Example: src/services/UserService.js->UserService->METHOD->login
3
10
  */
11
+ import { computeSemanticId } from '../SemanticId.js';
4
12
  export class MethodNode {
5
13
  static TYPE = 'METHOD';
6
14
  static REQUIRED = ['name', 'file', 'line', 'className'];
@@ -28,6 +36,46 @@ export class MethodNode {
28
36
  kind: options.kind || 'method'
29
37
  };
30
38
  }
39
+ /**
40
+ * Create METHOD node with semantic ID (NEW API)
41
+ *
42
+ * Uses ScopeContext from ScopeTracker for stable identifiers.
43
+ * Method names are unique within class, so no discriminator needed.
44
+ * Context should include the class in scopePath.
45
+ *
46
+ * @param name - Method name
47
+ * @param className - Name of the class containing this method
48
+ * @param context - Scope context from ScopeTracker.getContext() (should be inside class)
49
+ * @param location - Source location { line, column }
50
+ * @param options - Optional method properties
51
+ * @returns MethodNodeRecord with semantic ID
52
+ */
53
+ static createWithContext(name, className, context, location, options = {}) {
54
+ // Validate required fields
55
+ if (!name)
56
+ throw new Error('MethodNode.createWithContext: name is required');
57
+ if (!className)
58
+ throw new Error('MethodNode.createWithContext: className is required');
59
+ if (!context.file)
60
+ throw new Error('MethodNode.createWithContext: file is required');
61
+ if (location.line === undefined)
62
+ throw new Error('MethodNode.createWithContext: line is required');
63
+ // Compute semantic ID
64
+ const id = computeSemanticId(this.TYPE, name, context);
65
+ return {
66
+ id,
67
+ type: this.TYPE,
68
+ name,
69
+ file: context.file,
70
+ line: location.line,
71
+ column: location.column ?? 0,
72
+ className,
73
+ async: options.async || false,
74
+ generator: options.generator || false,
75
+ static: options.static || false,
76
+ kind: options.kind || 'method'
77
+ };
78
+ }
31
79
  static validate(node) {
32
80
  const errors = [];
33
81
  if (node.type !== this.TYPE) {
@@ -1,7 +1,17 @@
1
1
  /**
2
2
  * ModuleNode - contract for MODULE node
3
+ *
4
+ * Supports two creation modes:
5
+ * 1. createWithContext() - NEW: Uses ScopeContext for semantic IDs
6
+ * 2. create() - LEGACY: Uses hash-based IDs for backward compatibility
7
+ *
8
+ * Semantic ID format: {file}->global->MODULE->module
9
+ * Example: src/index.js->global->MODULE->module
10
+ *
11
+ * Each file has exactly one MODULE node. The name in the ID is always "module".
3
12
  */
4
13
  import type { BaseNodeRecord } from '@grafema/types';
14
+ import { type ScopeContext } from '../SemanticId.js';
5
15
  interface ModuleNodeRecord extends BaseNodeRecord {
6
16
  type: 'MODULE';
7
17
  contentHash: string;
@@ -10,6 +20,13 @@ interface ModuleNodeRecord extends BaseNodeRecord {
10
20
  interface ModuleNodeOptions {
11
21
  isTest?: boolean;
12
22
  }
23
+ /**
24
+ * Options for createWithContext
25
+ */
26
+ interface ModuleContextOptions {
27
+ contentHash?: string;
28
+ isTest?: boolean;
29
+ }
13
30
  export declare class ModuleNode {
14
31
  static readonly TYPE: "MODULE";
15
32
  static readonly REQUIRED: readonly ["name", "file", "contentHash"];
@@ -22,6 +39,20 @@ export declare class ModuleNode {
22
39
  * @param options - Additional options (isTest, etc.)
23
40
  */
24
41
  static create(filePath: string, relativePath: string, contentHash: string, options?: ModuleNodeOptions): ModuleNodeRecord;
42
+ /**
43
+ * Create MODULE node with semantic ID (NEW API)
44
+ *
45
+ * Uses ScopeContext for stable identifiers that don't change
46
+ * when file content changes (unlike hash-based IDs).
47
+ *
48
+ * Each file has exactly one MODULE node.
49
+ * The name in the semantic ID is always "module".
50
+ *
51
+ * @param context - Scope context with file path (relative to project root)
52
+ * @param options - Optional contentHash and isTest flag
53
+ * @returns ModuleNodeRecord with semantic ID
54
+ */
55
+ static createWithContext(context: ScopeContext, options?: ModuleContextOptions): ModuleNodeRecord;
25
56
  static _hashPath(path: string): string;
26
57
  static validate(node: ModuleNodeRecord): string[];
27
58
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ModuleNode.d.ts","sourceRoot":"","sources":["../../../src/core/nodes/ModuleNode.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAErD,UAAU,gBAAiB,SAAQ,cAAc;IAC/C,IAAI,EAAE,QAAQ,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,UAAU,iBAAiB;IACzB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,qBAAa,UAAU;IACrB,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAG,QAAQ,CAAU;IAEzC,MAAM,CAAC,QAAQ,CAAC,QAAQ,2CAA4C;IACpE,MAAM,CAAC,QAAQ,CAAC,QAAQ,sBAAuB;IAE/C;;;;;;OAMG;IACH,MAAM,CAAC,MAAM,CACX,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE,iBAAsB,GAC9B,gBAAgB;IAgBnB,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAItC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,gBAAgB,GAAG,MAAM,EAAE;CAgBlD;AAED,YAAY,EAAE,gBAAgB,EAAE,CAAC"}
1
+ {"version":3,"file":"ModuleNode.d.ts","sourceRoot":"","sources":["../../../src/core/nodes/ModuleNode.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAqB,KAAK,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAExE,UAAU,gBAAiB,SAAQ,cAAc;IAC/C,IAAI,EAAE,QAAQ,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,UAAU,iBAAiB;IACzB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;GAEG;AACH,UAAU,oBAAoB;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,qBAAa,UAAU;IACrB,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAG,QAAQ,CAAU;IAEzC,MAAM,CAAC,QAAQ,CAAC,QAAQ,2CAA4C;IACpE,MAAM,CAAC,QAAQ,CAAC,QAAQ,sBAAuB;IAE/C;;;;;;OAMG;IACH,MAAM,CAAC,MAAM,CACX,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE,iBAAsB,GAC9B,gBAAgB;IAgBnB;;;;;;;;;;;;OAYG;IACH,MAAM,CAAC,iBAAiB,CACtB,OAAO,EAAE,YAAY,EACrB,OAAO,GAAE,oBAAyB,GACjC,gBAAgB;IAgBnB,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAItC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,gBAAgB,GAAG,MAAM,EAAE;CAgBlD;AAED,YAAY,EAAE,gBAAgB,EAAE,CAAC"}
@@ -1,7 +1,17 @@
1
1
  /**
2
2
  * ModuleNode - contract for MODULE node
3
+ *
4
+ * Supports two creation modes:
5
+ * 1. createWithContext() - NEW: Uses ScopeContext for semantic IDs
6
+ * 2. create() - LEGACY: Uses hash-based IDs for backward compatibility
7
+ *
8
+ * Semantic ID format: {file}->global->MODULE->module
9
+ * Example: src/index.js->global->MODULE->module
10
+ *
11
+ * Each file has exactly one MODULE node. The name in the ID is always "module".
3
12
  */
4
13
  import { createHash } from 'crypto';
14
+ import { computeSemanticId } from '../SemanticId.js';
5
15
  export class ModuleNode {
6
16
  static TYPE = 'MODULE';
7
17
  static REQUIRED = ['name', 'file', 'contentHash'];
@@ -30,6 +40,33 @@ export class ModuleNode {
30
40
  isTest: options.isTest || false
31
41
  };
32
42
  }
43
+ /**
44
+ * Create MODULE node with semantic ID (NEW API)
45
+ *
46
+ * Uses ScopeContext for stable identifiers that don't change
47
+ * when file content changes (unlike hash-based IDs).
48
+ *
49
+ * Each file has exactly one MODULE node.
50
+ * The name in the semantic ID is always "module".
51
+ *
52
+ * @param context - Scope context with file path (relative to project root)
53
+ * @param options - Optional contentHash and isTest flag
54
+ * @returns ModuleNodeRecord with semantic ID
55
+ */
56
+ static createWithContext(context, options = {}) {
57
+ if (!context.file)
58
+ throw new Error('ModuleNode.createWithContext: file is required in context');
59
+ const id = computeSemanticId(this.TYPE, 'module', context);
60
+ return {
61
+ id,
62
+ type: this.TYPE,
63
+ name: context.file,
64
+ file: context.file,
65
+ line: 0,
66
+ contentHash: options.contentHash || '',
67
+ isTest: options.isTest || false
68
+ };
69
+ }
33
70
  static _hashPath(path) {
34
71
  return createHash('md5').update(path).digest('hex').substring(0, 12);
35
72
  }
@@ -0,0 +1,54 @@
1
+ /**
2
+ * NetworkRequestNode - contract for net:request singleton node
3
+ *
4
+ * Represents the external network as a system resource.
5
+ * All HTTP_REQUEST nodes connect to this singleton via CALLS edges.
6
+ *
7
+ * This is NOT the same as HttpRequestNode (type: HTTP_REQUEST), which represents
8
+ * individual HTTP request call sites in source code.
9
+ *
10
+ * Architectural role:
11
+ * - net:request is a singleton representing external network (like net:stdio for console I/O)
12
+ * - HTTP_REQUEST nodes are call sites that connect to this singleton via CALLS edges
13
+ *
14
+ * Example graph structure:
15
+ * ```
16
+ * /app/api.ts:HTTP_REQUEST:GET:15:0 --CALLS--> net:request#__network__
17
+ * /app/service.ts:HTTP_REQUEST:POST:42:0 --CALLS--> net:request#__network__
18
+ * ```
19
+ */
20
+ import type { BaseNodeRecord } from '@grafema/types';
21
+ interface NetworkRequestNodeRecord extends BaseNodeRecord {
22
+ type: 'net:request';
23
+ }
24
+ export declare class NetworkRequestNode {
25
+ static readonly TYPE: "net:request";
26
+ static readonly SINGLETON_ID = "net:request#__network__";
27
+ static readonly REQUIRED: readonly ["name", "file"];
28
+ static readonly OPTIONAL: readonly [];
29
+ /**
30
+ * Create net:request singleton node
31
+ *
32
+ * This node represents the external network as a system resource.
33
+ * All HTTP_REQUEST nodes connect to this singleton via CALLS edges.
34
+ *
35
+ * Should be created once per graph. GraphBuilder and ExpressAnalyzer
36
+ * use singleton deduplication to ensure only one instance exists.
37
+ *
38
+ * @returns NetworkRequestNodeRecord - singleton node
39
+ */
40
+ static create(): NetworkRequestNodeRecord;
41
+ /**
42
+ * Validate net:request node structure
43
+ *
44
+ * Ensures:
45
+ * - type is net:request (NOT NET_REQUEST)
46
+ * - id matches SINGLETON_ID
47
+ *
48
+ * @param node - Node to validate
49
+ * @returns Array of error messages (empty if valid)
50
+ */
51
+ static validate(node: NetworkRequestNodeRecord): string[];
52
+ }
53
+ export type { NetworkRequestNodeRecord };
54
+ //# sourceMappingURL=NetworkRequestNode.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NetworkRequestNode.d.ts","sourceRoot":"","sources":["../../../src/core/nodes/NetworkRequestNode.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAErD,UAAU,wBAAyB,SAAQ,cAAc;IACvD,IAAI,EAAE,aAAa,CAAC;CACrB;AAED,qBAAa,kBAAkB;IAC7B,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAG,aAAa,CAAU;IAC9C,MAAM,CAAC,QAAQ,CAAC,YAAY,6BAA6B;IAEzD,MAAM,CAAC,QAAQ,CAAC,QAAQ,4BAA6B;IACrD,MAAM,CAAC,QAAQ,CAAC,QAAQ,cAAe;IAEvC;;;;;;;;;;OAUG;IACH,MAAM,CAAC,MAAM,IAAI,wBAAwB;IAUzC;;;;;;;;;OASG;IACH,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,wBAAwB,GAAG,MAAM,EAAE;CAU1D;AAED,YAAY,EAAE,wBAAwB,EAAE,CAAC"}
@@ -0,0 +1,65 @@
1
+ /**
2
+ * NetworkRequestNode - contract for net:request singleton node
3
+ *
4
+ * Represents the external network as a system resource.
5
+ * All HTTP_REQUEST nodes connect to this singleton via CALLS edges.
6
+ *
7
+ * This is NOT the same as HttpRequestNode (type: HTTP_REQUEST), which represents
8
+ * individual HTTP request call sites in source code.
9
+ *
10
+ * Architectural role:
11
+ * - net:request is a singleton representing external network (like net:stdio for console I/O)
12
+ * - HTTP_REQUEST nodes are call sites that connect to this singleton via CALLS edges
13
+ *
14
+ * Example graph structure:
15
+ * ```
16
+ * /app/api.ts:HTTP_REQUEST:GET:15:0 --CALLS--> net:request#__network__
17
+ * /app/service.ts:HTTP_REQUEST:POST:42:0 --CALLS--> net:request#__network__
18
+ * ```
19
+ */
20
+ export class NetworkRequestNode {
21
+ static TYPE = 'net:request';
22
+ static SINGLETON_ID = 'net:request#__network__';
23
+ static REQUIRED = ['name', 'file'];
24
+ static OPTIONAL = [];
25
+ /**
26
+ * Create net:request singleton node
27
+ *
28
+ * This node represents the external network as a system resource.
29
+ * All HTTP_REQUEST nodes connect to this singleton via CALLS edges.
30
+ *
31
+ * Should be created once per graph. GraphBuilder and ExpressAnalyzer
32
+ * use singleton deduplication to ensure only one instance exists.
33
+ *
34
+ * @returns NetworkRequestNodeRecord - singleton node
35
+ */
36
+ static create() {
37
+ return {
38
+ id: this.SINGLETON_ID,
39
+ type: this.TYPE,
40
+ name: '__network__',
41
+ file: '__builtin__',
42
+ line: 0
43
+ };
44
+ }
45
+ /**
46
+ * Validate net:request node structure
47
+ *
48
+ * Ensures:
49
+ * - type is net:request (NOT NET_REQUEST)
50
+ * - id matches SINGLETON_ID
51
+ *
52
+ * @param node - Node to validate
53
+ * @returns Array of error messages (empty if valid)
54
+ */
55
+ static validate(node) {
56
+ const errors = [];
57
+ if (node.type !== this.TYPE) {
58
+ errors.push(`Expected type ${this.TYPE}, got ${node.type}`);
59
+ }
60
+ if (node.id !== this.SINGLETON_ID) {
61
+ errors.push(`Invalid singleton ID: expected ${this.SINGLETON_ID}, got ${node.id}`);
62
+ }
63
+ return errors;
64
+ }
65
+ }
@@ -0,0 +1,27 @@
1
+ /**
2
+ * ObjectLiteralNode - contract for OBJECT_LITERAL node
3
+ *
4
+ * Represents an object literal expression: { key: value, ... }
5
+ * Used for tracking data flow through object construction.
6
+ */
7
+ import type { BaseNodeRecord } from '@grafema/types';
8
+ interface ObjectLiteralNodeRecord extends BaseNodeRecord {
9
+ type: 'OBJECT_LITERAL';
10
+ column: number;
11
+ parentCallId?: string;
12
+ argIndex?: number;
13
+ }
14
+ interface ObjectLiteralNodeOptions {
15
+ parentCallId?: string;
16
+ argIndex?: number;
17
+ counter?: number;
18
+ }
19
+ export declare class ObjectLiteralNode {
20
+ static readonly TYPE: "OBJECT_LITERAL";
21
+ static readonly REQUIRED: readonly ["file", "line", "column"];
22
+ static readonly OPTIONAL: readonly ["parentCallId", "argIndex"];
23
+ static create(file: string, line: number, column: number, options?: ObjectLiteralNodeOptions): ObjectLiteralNodeRecord;
24
+ static validate(node: ObjectLiteralNodeRecord): string[];
25
+ }
26
+ export type { ObjectLiteralNodeRecord, ObjectLiteralNodeOptions };
27
+ //# sourceMappingURL=ObjectLiteralNode.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ObjectLiteralNode.d.ts","sourceRoot":"","sources":["../../../src/core/nodes/ObjectLiteralNode.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAErD,UAAU,uBAAwB,SAAQ,cAAc;IACtD,IAAI,EAAE,gBAAgB,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,UAAU,wBAAwB;IAChC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,iBAAiB;IAC5B,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAG,gBAAgB,CAAU;IAEjD,MAAM,CAAC,QAAQ,CAAC,QAAQ,sCAAuC;IAC/D,MAAM,CAAC,QAAQ,CAAC,QAAQ,wCAAyC;IAEjE,MAAM,CAAC,MAAM,CACX,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,wBAA6B,GACrC,uBAAuB;IAoB1B,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,uBAAuB,GAAG,MAAM,EAAE;CASzD;AAED,YAAY,EAAE,uBAAuB,EAAE,wBAAwB,EAAE,CAAC"}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * ObjectLiteralNode - contract for OBJECT_LITERAL node
3
+ *
4
+ * Represents an object literal expression: { key: value, ... }
5
+ * Used for tracking data flow through object construction.
6
+ */
7
+ export class ObjectLiteralNode {
8
+ static TYPE = 'OBJECT_LITERAL';
9
+ static REQUIRED = ['file', 'line', 'column'];
10
+ static OPTIONAL = ['parentCallId', 'argIndex'];
11
+ static create(file, line, column, options = {}) {
12
+ if (!file)
13
+ throw new Error('ObjectLiteralNode.create: file is required');
14
+ if (line === undefined)
15
+ throw new Error('ObjectLiteralNode.create: line is required');
16
+ const counter = options.counter !== undefined ? `:${options.counter}` : '';
17
+ const argSuffix = options.argIndex !== undefined ? `arg${options.argIndex}` : 'obj';
18
+ const id = `OBJECT_LITERAL#${argSuffix}#${file}#${line}:${column || 0}${counter}`;
19
+ return {
20
+ id,
21
+ type: this.TYPE,
22
+ name: `<object>`,
23
+ file,
24
+ line,
25
+ column: column || 0,
26
+ parentCallId: options.parentCallId,
27
+ argIndex: options.argIndex
28
+ };
29
+ }
30
+ static validate(node) {
31
+ const errors = [];
32
+ if (node.type !== this.TYPE)
33
+ errors.push(`Expected type ${this.TYPE}`);
34
+ const nodeRecord = node;
35
+ for (const field of this.REQUIRED) {
36
+ if (nodeRecord[field] === undefined)
37
+ errors.push(`Missing: ${field}`);
38
+ }
39
+ return errors;
40
+ }
41
+ }
@@ -1,7 +1,15 @@
1
1
  /**
2
2
  * ScopeNode - contract for SCOPE node
3
+ *
4
+ * Supports two creation modes:
5
+ * 1. createWithContext() - NEW: Uses ScopeContext + Location for semantic IDs
6
+ * 2. create() - LEGACY: Uses line-based IDs for backward compatibility
7
+ *
8
+ * Semantic ID format: {file}->{scope_path}->SCOPE->{scopeType}#N
9
+ * Example: src/app.js->handler->SCOPE->if#0
3
10
  */
4
11
  import type { BaseNodeRecord } from '@grafema/types';
12
+ import { type ScopeContext, type Location } from '../SemanticId.js';
5
13
  interface ScopeNodeRecord extends BaseNodeRecord {
6
14
  type: 'SCOPE';
7
15
  scopeType: string;
@@ -18,6 +26,16 @@ interface ScopeNodeOptions {
18
26
  capturesFrom?: string[];
19
27
  counter?: number;
20
28
  }
29
+ /**
30
+ * Options for createWithContext
31
+ */
32
+ interface ScopeContextOptions {
33
+ discriminator: number;
34
+ conditional?: boolean;
35
+ parentScopeId?: string;
36
+ parentFunctionId?: string;
37
+ capturesFrom?: string[];
38
+ }
21
39
  export declare class ScopeNode {
22
40
  static readonly TYPE: "SCOPE";
23
41
  static readonly REQUIRED: readonly ["scopeType", "file", "line"];
@@ -26,6 +44,19 @@ export declare class ScopeNode {
26
44
  * Create SCOPE node
27
45
  */
28
46
  static create(scopeType: string, file: string, line: number, options?: ScopeNodeOptions): ScopeNodeRecord;
47
+ /**
48
+ * Create SCOPE node with semantic ID (NEW API)
49
+ *
50
+ * Uses ScopeContext from ScopeTracker for stable identifiers.
51
+ * Requires discriminator for multiple scopes of same type within parent scope.
52
+ *
53
+ * @param scopeType - Type of scope (if, else, try, catch, finally, for, while, switch)
54
+ * @param context - Scope context from ScopeTracker.getContext()
55
+ * @param location - Source location { line }
56
+ * @param options - Options including required discriminator
57
+ * @returns ScopeNodeRecord with semantic ID
58
+ */
59
+ static createWithContext(scopeType: string, context: ScopeContext, location: Partial<Location>, options: ScopeContextOptions): ScopeNodeRecord;
29
60
  static validate(node: ScopeNodeRecord): string[];
30
61
  }
31
62
  export type { ScopeNodeRecord };
@@ -1 +1 @@
1
- {"version":3,"file":"ScopeNode.d.ts","sourceRoot":"","sources":["../../../src/core/nodes/ScopeNode.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAErD,UAAU,eAAgB,SAAQ,cAAc;IAC9C,IAAI,EAAE,OAAO,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,OAAO,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB;AAED,UAAU,gBAAgB;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,SAAS;IACpB,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAG,OAAO,CAAU;IAExC,MAAM,CAAC,QAAQ,CAAC,QAAQ,yCAA0C;IAClE,MAAM,CAAC,QAAQ,CAAC,QAAQ,wFAAyF;IAEjH;;OAEG;IACH,MAAM,CAAC,MAAM,CACX,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,gBAAqB,GAC7B,eAAe;IAuBlB,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,eAAe,GAAG,MAAM,EAAE;CAgBjD;AAED,YAAY,EAAE,eAAe,EAAE,CAAC"}
1
+ {"version":3,"file":"ScopeNode.d.ts","sourceRoot":"","sources":["../../../src/core/nodes/ScopeNode.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAqB,KAAK,YAAY,EAAE,KAAK,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAEvF,UAAU,eAAgB,SAAQ,cAAc;IAC9C,IAAI,EAAE,OAAO,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,OAAO,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB;AAED,UAAU,gBAAgB;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,UAAU,mBAAmB;IAC3B,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB;AAED,qBAAa,SAAS;IACpB,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAG,OAAO,CAAU;IAExC,MAAM,CAAC,QAAQ,CAAC,QAAQ,yCAA0C;IAClE,MAAM,CAAC,QAAQ,CAAC,QAAQ,wFAAyF;IAEjH;;OAEG;IACH,MAAM,CAAC,MAAM,CACX,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,gBAAqB,GAC7B,eAAe;IAuBlB;;;;;;;;;;;OAWG;IACH,MAAM,CAAC,iBAAiB,CACtB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,YAAY,EACrB,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,EAC3B,OAAO,EAAE,mBAAmB,GAC3B,eAAe;IA6BlB,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,eAAe,GAAG,MAAM,EAAE;CAgBjD;AAED,YAAY,EAAE,eAAe,EAAE,CAAC"}