@grafema/core 0.2.5-beta → 0.2.7

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 (769) hide show
  1. package/README.md +61 -23
  2. package/dist/DiscoveryManager.d.ts +59 -0
  3. package/dist/DiscoveryManager.d.ts.map +1 -0
  4. package/dist/DiscoveryManager.js +249 -0
  5. package/dist/DiscoveryManager.js.map +1 -0
  6. package/dist/GraphInitializer.d.ts +44 -0
  7. package/dist/GraphInitializer.d.ts.map +1 -0
  8. package/dist/GraphInitializer.js +121 -0
  9. package/dist/GraphInitializer.js.map +1 -0
  10. package/dist/GuaranteeChecker.d.ts +35 -0
  11. package/dist/GuaranteeChecker.d.ts.map +1 -0
  12. package/dist/GuaranteeChecker.js +81 -0
  13. package/dist/GuaranteeChecker.js.map +1 -0
  14. package/dist/Orchestrator.d.ts +34 -151
  15. package/dist/Orchestrator.d.ts.map +1 -1
  16. package/dist/Orchestrator.js +173 -741
  17. package/dist/Orchestrator.js.map +1 -1
  18. package/dist/OrchestratorTypes.d.ts +115 -0
  19. package/dist/OrchestratorTypes.d.ts.map +1 -0
  20. package/dist/OrchestratorTypes.js +6 -0
  21. package/dist/OrchestratorTypes.js.map +1 -0
  22. package/dist/ParallelAnalysisRunner.d.ts +43 -0
  23. package/dist/ParallelAnalysisRunner.d.ts.map +1 -0
  24. package/dist/ParallelAnalysisRunner.js +161 -0
  25. package/dist/ParallelAnalysisRunner.js.map +1 -0
  26. package/dist/PhaseRunner.d.ts +94 -0
  27. package/dist/PhaseRunner.d.ts.map +1 -0
  28. package/dist/PhaseRunner.js +332 -0
  29. package/dist/PhaseRunner.js.map +1 -0
  30. package/dist/config/ConfigLoader.d.ts +51 -1
  31. package/dist/config/ConfigLoader.d.ts.map +1 -1
  32. package/dist/config/ConfigLoader.js +121 -1
  33. package/dist/config/ConfigLoader.js.map +1 -1
  34. package/dist/config/index.d.ts +1 -1
  35. package/dist/config/index.d.ts.map +1 -1
  36. package/dist/config/index.js +1 -1
  37. package/dist/config/index.js.map +1 -1
  38. package/dist/core/ASTWorker.d.ts +2 -0
  39. package/dist/core/ASTWorker.d.ts.map +1 -1
  40. package/dist/core/ASTWorker.js +6 -2
  41. package/dist/core/ASTWorker.js.map +1 -1
  42. package/dist/core/FileOverview.d.ts +124 -0
  43. package/dist/core/FileOverview.d.ts.map +1 -0
  44. package/dist/core/FileOverview.js +257 -0
  45. package/dist/core/FileOverview.js.map +1 -0
  46. package/dist/core/GraphFreshnessChecker.d.ts +1 -1
  47. package/dist/core/GraphFreshnessChecker.d.ts.map +1 -1
  48. package/dist/core/GraphFreshnessChecker.js +7 -5
  49. package/dist/core/GraphFreshnessChecker.js.map +1 -1
  50. package/dist/core/GuaranteeManager.d.ts +13 -0
  51. package/dist/core/GuaranteeManager.d.ts.map +1 -1
  52. package/dist/core/GuaranteeManager.js +63 -2
  53. package/dist/core/GuaranteeManager.js.map +1 -1
  54. package/dist/core/IncrementalReanalyzer.d.ts.map +1 -1
  55. package/dist/core/IncrementalReanalyzer.js +6 -3
  56. package/dist/core/IncrementalReanalyzer.js.map +1 -1
  57. package/dist/core/NodeFactory.d.ts +81 -415
  58. package/dist/core/NodeFactory.d.ts.map +1 -1
  59. package/dist/core/NodeFactory.js +139 -336
  60. package/dist/core/NodeFactory.js.map +1 -1
  61. package/dist/core/ResourceRegistry.d.ts +17 -0
  62. package/dist/core/ResourceRegistry.d.ts.map +1 -0
  63. package/dist/core/ResourceRegistry.js +32 -0
  64. package/dist/core/ResourceRegistry.js.map +1 -0
  65. package/dist/core/ScopeTracker.d.ts +12 -0
  66. package/dist/core/ScopeTracker.d.ts.map +1 -1
  67. package/dist/core/ScopeTracker.js +24 -0
  68. package/dist/core/ScopeTracker.js.map +1 -1
  69. package/dist/core/SemanticId.d.ts +69 -0
  70. package/dist/core/SemanticId.d.ts.map +1 -1
  71. package/dist/core/SemanticId.js +134 -0
  72. package/dist/core/SemanticId.js.map +1 -1
  73. package/dist/core/brandNodeInternal.d.ts +14 -0
  74. package/dist/core/brandNodeInternal.d.ts.map +1 -0
  75. package/dist/core/brandNodeInternal.js +4 -0
  76. package/dist/core/brandNodeInternal.js.map +1 -0
  77. package/dist/core/buildDependencyGraph.d.ts +36 -0
  78. package/dist/core/buildDependencyGraph.d.ts.map +1 -0
  79. package/dist/core/buildDependencyGraph.js +78 -0
  80. package/dist/core/buildDependencyGraph.js.map +1 -0
  81. package/dist/core/factories/CoreFactory.d.ts +223 -0
  82. package/dist/core/factories/CoreFactory.d.ts.map +1 -0
  83. package/dist/core/factories/CoreFactory.js +127 -0
  84. package/dist/core/factories/CoreFactory.js.map +1 -0
  85. package/dist/core/factories/DatabaseFactory.d.ts +29 -0
  86. package/dist/core/factories/DatabaseFactory.d.ts.map +1 -0
  87. package/dist/core/factories/DatabaseFactory.js +25 -0
  88. package/dist/core/factories/DatabaseFactory.js.map +1 -0
  89. package/dist/core/factories/ExternalFactory.d.ts +11 -0
  90. package/dist/core/factories/ExternalFactory.d.ts.map +1 -0
  91. package/dist/core/factories/ExternalFactory.js +16 -0
  92. package/dist/core/factories/ExternalFactory.js.map +1 -0
  93. package/dist/core/factories/HttpFactory.d.ts +22 -0
  94. package/dist/core/factories/HttpFactory.d.ts.map +1 -0
  95. package/dist/core/factories/HttpFactory.js +32 -0
  96. package/dist/core/factories/HttpFactory.js.map +1 -0
  97. package/dist/core/factories/ReactFactory.d.ts +14 -0
  98. package/dist/core/factories/ReactFactory.d.ts.map +1 -0
  99. package/dist/core/factories/ReactFactory.js +13 -0
  100. package/dist/core/factories/ReactFactory.js.map +1 -0
  101. package/dist/core/factories/RustFactory.d.ts +62 -0
  102. package/dist/core/factories/RustFactory.d.ts.map +1 -0
  103. package/dist/core/factories/RustFactory.js +32 -0
  104. package/dist/core/factories/RustFactory.js.map +1 -0
  105. package/dist/core/factories/ServiceFactory.d.ts +12 -0
  106. package/dist/core/factories/ServiceFactory.d.ts.map +1 -0
  107. package/dist/core/factories/ServiceFactory.js +22 -0
  108. package/dist/core/factories/ServiceFactory.js.map +1 -0
  109. package/dist/core/factories/SocketFactory.d.ts +31 -0
  110. package/dist/core/factories/SocketFactory.d.ts.map +1 -0
  111. package/dist/core/factories/SocketFactory.js +35 -0
  112. package/dist/core/factories/SocketFactory.js.map +1 -0
  113. package/dist/core/nodes/DatabaseNode.d.ts +85 -0
  114. package/dist/core/nodes/DatabaseNode.d.ts.map +1 -0
  115. package/dist/core/nodes/DatabaseNode.js +118 -0
  116. package/dist/core/nodes/DatabaseNode.js.map +1 -0
  117. package/dist/core/nodes/ExpressMiddlewareNode.d.ts +47 -0
  118. package/dist/core/nodes/ExpressMiddlewareNode.d.ts.map +1 -0
  119. package/dist/core/nodes/ExpressMiddlewareNode.js +63 -0
  120. package/dist/core/nodes/ExpressMiddlewareNode.js.map +1 -0
  121. package/dist/core/nodes/ExpressMountNode.d.ts +44 -0
  122. package/dist/core/nodes/ExpressMountNode.d.ts.map +1 -0
  123. package/dist/core/nodes/ExpressMountNode.js +61 -0
  124. package/dist/core/nodes/ExpressMountNode.js.map +1 -0
  125. package/dist/core/nodes/ExternalApiNode.d.ts +29 -0
  126. package/dist/core/nodes/ExternalApiNode.d.ts.map +1 -0
  127. package/dist/core/nodes/ExternalApiNode.js +41 -0
  128. package/dist/core/nodes/ExternalApiNode.js.map +1 -0
  129. package/dist/core/nodes/ExternalFunctionNode.d.ts +40 -0
  130. package/dist/core/nodes/ExternalFunctionNode.d.ts.map +1 -0
  131. package/dist/core/nodes/ExternalFunctionNode.js +54 -0
  132. package/dist/core/nodes/ExternalFunctionNode.js.map +1 -0
  133. package/dist/core/nodes/FetchRequestNode.d.ts +54 -0
  134. package/dist/core/nodes/FetchRequestNode.d.ts.map +1 -0
  135. package/dist/core/nodes/FetchRequestNode.js +67 -0
  136. package/dist/core/nodes/FetchRequestNode.js.map +1 -0
  137. package/dist/core/nodes/HttpRouteNode.d.ts +58 -0
  138. package/dist/core/nodes/HttpRouteNode.d.ts.map +1 -0
  139. package/dist/core/nodes/HttpRouteNode.js +72 -0
  140. package/dist/core/nodes/HttpRouteNode.js.map +1 -0
  141. package/dist/core/nodes/NodeKind.d.ts +1 -0
  142. package/dist/core/nodes/NodeKind.d.ts.map +1 -1
  143. package/dist/core/nodes/NodeKind.js +1 -0
  144. package/dist/core/nodes/NodeKind.js.map +1 -1
  145. package/dist/core/nodes/ReactNode.d.ts +53 -0
  146. package/dist/core/nodes/ReactNode.d.ts.map +1 -0
  147. package/dist/core/nodes/ReactNode.js +70 -0
  148. package/dist/core/nodes/ReactNode.js.map +1 -0
  149. package/dist/core/nodes/RustCallNode.d.ts +46 -0
  150. package/dist/core/nodes/RustCallNode.d.ts.map +1 -0
  151. package/dist/core/nodes/RustCallNode.js +62 -0
  152. package/dist/core/nodes/RustCallNode.js.map +1 -0
  153. package/dist/core/nodes/RustFunctionNode.d.ts +58 -0
  154. package/dist/core/nodes/RustFunctionNode.d.ts.map +1 -0
  155. package/dist/core/nodes/RustFunctionNode.js +67 -0
  156. package/dist/core/nodes/RustFunctionNode.js.map +1 -0
  157. package/dist/core/nodes/RustImplNode.d.ts +35 -0
  158. package/dist/core/nodes/RustImplNode.d.ts.map +1 -0
  159. package/dist/core/nodes/RustImplNode.js +55 -0
  160. package/dist/core/nodes/RustImplNode.js.map +1 -0
  161. package/dist/core/nodes/RustMethodNode.d.ts +64 -0
  162. package/dist/core/nodes/RustMethodNode.d.ts.map +1 -0
  163. package/dist/core/nodes/RustMethodNode.js +76 -0
  164. package/dist/core/nodes/RustMethodNode.js.map +1 -0
  165. package/dist/core/nodes/RustModuleNode.d.ts +40 -0
  166. package/dist/core/nodes/RustModuleNode.d.ts.map +1 -0
  167. package/dist/core/nodes/RustModuleNode.js +57 -0
  168. package/dist/core/nodes/RustModuleNode.js.map +1 -0
  169. package/dist/core/nodes/RustStructNode.d.ts +38 -0
  170. package/dist/core/nodes/RustStructNode.d.ts.map +1 -0
  171. package/dist/core/nodes/RustStructNode.js +54 -0
  172. package/dist/core/nodes/RustStructNode.js.map +1 -0
  173. package/dist/core/nodes/RustTraitNode.d.ts +40 -0
  174. package/dist/core/nodes/RustTraitNode.d.ts.map +1 -0
  175. package/dist/core/nodes/RustTraitNode.js +52 -0
  176. package/dist/core/nodes/RustTraitNode.js.map +1 -0
  177. package/dist/core/nodes/ServiceLayerNode.d.ts +85 -0
  178. package/dist/core/nodes/ServiceLayerNode.d.ts.map +1 -0
  179. package/dist/core/nodes/ServiceLayerNode.js +122 -0
  180. package/dist/core/nodes/ServiceLayerNode.js.map +1 -0
  181. package/dist/core/nodes/SocketIONode.d.ts +71 -0
  182. package/dist/core/nodes/SocketIONode.d.ts.map +1 -0
  183. package/dist/core/nodes/SocketIONode.js +111 -0
  184. package/dist/core/nodes/SocketIONode.js.map +1 -0
  185. package/dist/core/nodes/SocketNode.d.ts +87 -0
  186. package/dist/core/nodes/SocketNode.d.ts.map +1 -0
  187. package/dist/core/nodes/SocketNode.js +124 -0
  188. package/dist/core/nodes/SocketNode.js.map +1 -0
  189. package/dist/core/nodes/TypeNode.d.ts +26 -1
  190. package/dist/core/nodes/TypeNode.d.ts.map +1 -1
  191. package/dist/core/nodes/TypeNode.js +21 -3
  192. package/dist/core/nodes/TypeNode.js.map +1 -1
  193. package/dist/core/nodes/TypeParameterNode.d.ts +44 -0
  194. package/dist/core/nodes/TypeParameterNode.d.ts.map +1 -0
  195. package/dist/core/nodes/TypeParameterNode.js +64 -0
  196. package/dist/core/nodes/TypeParameterNode.js.map +1 -0
  197. package/dist/core/nodes/index.d.ts +19 -0
  198. package/dist/core/nodes/index.d.ts.map +1 -1
  199. package/dist/core/nodes/index.js +26 -0
  200. package/dist/core/nodes/index.js.map +1 -1
  201. package/dist/index.d.ts +33 -6
  202. package/dist/index.d.ts.map +1 -1
  203. package/dist/index.js +30 -3
  204. package/dist/index.js.map +1 -1
  205. package/dist/plugins/InfraAnalyzer.d.ts +110 -0
  206. package/dist/plugins/InfraAnalyzer.d.ts.map +1 -0
  207. package/dist/plugins/InfraAnalyzer.js +170 -0
  208. package/dist/plugins/InfraAnalyzer.js.map +1 -0
  209. package/dist/plugins/analysis/DatabaseAnalyzer.d.ts.map +1 -1
  210. package/dist/plugins/analysis/DatabaseAnalyzer.js +18 -15
  211. package/dist/plugins/analysis/DatabaseAnalyzer.js.map +1 -1
  212. package/dist/plugins/analysis/ExpressAnalyzer.d.ts.map +1 -1
  213. package/dist/plugins/analysis/ExpressAnalyzer.js +27 -26
  214. package/dist/plugins/analysis/ExpressAnalyzer.js.map +1 -1
  215. package/dist/plugins/analysis/ExpressResponseAnalyzer.d.ts.map +1 -1
  216. package/dist/plugins/analysis/ExpressResponseAnalyzer.js +5 -3
  217. package/dist/plugins/analysis/ExpressResponseAnalyzer.js.map +1 -1
  218. package/dist/plugins/analysis/ExpressRouteAnalyzer.d.ts.map +1 -1
  219. package/dist/plugins/analysis/ExpressRouteAnalyzer.js +36 -39
  220. package/dist/plugins/analysis/ExpressRouteAnalyzer.js.map +1 -1
  221. package/dist/plugins/analysis/FetchAnalyzer.d.ts.map +1 -1
  222. package/dist/plugins/analysis/FetchAnalyzer.js +23 -39
  223. package/dist/plugins/analysis/FetchAnalyzer.js.map +1 -1
  224. package/dist/plugins/analysis/IncrementalAnalysisPlugin.d.ts.map +1 -1
  225. package/dist/plugins/analysis/IncrementalAnalysisPlugin.js +3 -2
  226. package/dist/plugins/analysis/IncrementalAnalysisPlugin.js.map +1 -1
  227. package/dist/plugins/analysis/JSASTAnalyzer.d.ts +23 -85
  228. package/dist/plugins/analysis/JSASTAnalyzer.d.ts.map +1 -1
  229. package/dist/plugins/analysis/JSASTAnalyzer.js +351 -1887
  230. package/dist/plugins/analysis/JSASTAnalyzer.js.map +1 -1
  231. package/dist/plugins/analysis/NestJSRouteAnalyzer.d.ts +28 -0
  232. package/dist/plugins/analysis/NestJSRouteAnalyzer.d.ts.map +1 -0
  233. package/dist/plugins/analysis/NestJSRouteAnalyzer.js +196 -0
  234. package/dist/plugins/analysis/NestJSRouteAnalyzer.js.map +1 -0
  235. package/dist/plugins/analysis/ReactAnalyzer.d.ts +1 -61
  236. package/dist/plugins/analysis/ReactAnalyzer.d.ts.map +1 -1
  237. package/dist/plugins/analysis/ReactAnalyzer.js +24 -915
  238. package/dist/plugins/analysis/ReactAnalyzer.js.map +1 -1
  239. package/dist/plugins/analysis/RustAnalyzer.d.ts.map +1 -1
  240. package/dist/plugins/analysis/RustAnalyzer.js +31 -66
  241. package/dist/plugins/analysis/RustAnalyzer.js.map +1 -1
  242. package/dist/plugins/analysis/SQLiteAnalyzer.d.ts.map +1 -1
  243. package/dist/plugins/analysis/SQLiteAnalyzer.js +13 -6
  244. package/dist/plugins/analysis/SQLiteAnalyzer.js.map +1 -1
  245. package/dist/plugins/analysis/ServiceLayerAnalyzer.d.ts.map +1 -1
  246. package/dist/plugins/analysis/ServiceLayerAnalyzer.js +10 -7
  247. package/dist/plugins/analysis/ServiceLayerAnalyzer.js.map +1 -1
  248. package/dist/plugins/analysis/SocketAnalyzer.d.ts +81 -0
  249. package/dist/plugins/analysis/SocketAnalyzer.d.ts.map +1 -0
  250. package/dist/plugins/analysis/SocketAnalyzer.js +475 -0
  251. package/dist/plugins/analysis/SocketAnalyzer.js.map +1 -0
  252. package/dist/plugins/analysis/SocketIOAnalyzer.d.ts.map +1 -1
  253. package/dist/plugins/analysis/SocketIOAnalyzer.js +13 -18
  254. package/dist/plugins/analysis/SocketIOAnalyzer.js.map +1 -1
  255. package/dist/plugins/analysis/SystemDbAnalyzer.d.ts.map +1 -1
  256. package/dist/plugins/analysis/SystemDbAnalyzer.js +8 -5
  257. package/dist/plugins/analysis/SystemDbAnalyzer.js.map +1 -1
  258. package/dist/plugins/analysis/ast/CollisionResolver.d.ts +65 -0
  259. package/dist/plugins/analysis/ast/CollisionResolver.d.ts.map +1 -0
  260. package/dist/plugins/analysis/ast/CollisionResolver.js +106 -0
  261. package/dist/plugins/analysis/ast/CollisionResolver.js.map +1 -0
  262. package/dist/plugins/analysis/ast/FunctionBodyContext.d.ts +124 -0
  263. package/dist/plugins/analysis/ast/FunctionBodyContext.d.ts.map +1 -0
  264. package/dist/plugins/analysis/ast/FunctionBodyContext.js +151 -0
  265. package/dist/plugins/analysis/ast/FunctionBodyContext.js.map +1 -0
  266. package/dist/plugins/analysis/ast/GraphBuilder.d.ts +26 -261
  267. package/dist/plugins/analysis/ast/GraphBuilder.d.ts.map +1 -1
  268. package/dist/plugins/analysis/ast/GraphBuilder.js +251 -2494
  269. package/dist/plugins/analysis/ast/GraphBuilder.js.map +1 -1
  270. package/dist/plugins/analysis/ast/IdGenerator.d.ts +42 -0
  271. package/dist/plugins/analysis/ast/IdGenerator.d.ts.map +1 -1
  272. package/dist/plugins/analysis/ast/IdGenerator.js +61 -1
  273. package/dist/plugins/analysis/ast/IdGenerator.js.map +1 -1
  274. package/dist/plugins/analysis/ast/builders/AssignmentBuilder.d.ts +15 -0
  275. package/dist/plugins/analysis/ast/builders/AssignmentBuilder.d.ts.map +1 -0
  276. package/dist/plugins/analysis/ast/builders/AssignmentBuilder.js +274 -0
  277. package/dist/plugins/analysis/ast/builders/AssignmentBuilder.js.map +1 -0
  278. package/dist/plugins/analysis/ast/builders/CallFlowBuilder.d.ts +22 -0
  279. package/dist/plugins/analysis/ast/builders/CallFlowBuilder.d.ts.map +1 -0
  280. package/dist/plugins/analysis/ast/builders/CallFlowBuilder.js +178 -0
  281. package/dist/plugins/analysis/ast/builders/CallFlowBuilder.js.map +1 -0
  282. package/dist/plugins/analysis/ast/builders/ControlFlowBuilder.d.ts +76 -0
  283. package/dist/plugins/analysis/ast/builders/ControlFlowBuilder.d.ts.map +1 -0
  284. package/dist/plugins/analysis/ast/builders/ControlFlowBuilder.js +387 -0
  285. package/dist/plugins/analysis/ast/builders/ControlFlowBuilder.js.map +1 -0
  286. package/dist/plugins/analysis/ast/builders/CoreBuilder.d.ts +38 -0
  287. package/dist/plugins/analysis/ast/builders/CoreBuilder.d.ts.map +1 -0
  288. package/dist/plugins/analysis/ast/builders/CoreBuilder.js +240 -0
  289. package/dist/plugins/analysis/ast/builders/CoreBuilder.js.map +1 -0
  290. package/dist/plugins/analysis/ast/builders/ModuleRuntimeBuilder.d.ts +53 -0
  291. package/dist/plugins/analysis/ast/builders/ModuleRuntimeBuilder.d.ts.map +1 -0
  292. package/dist/plugins/analysis/ast/builders/ModuleRuntimeBuilder.js +355 -0
  293. package/dist/plugins/analysis/ast/builders/ModuleRuntimeBuilder.js.map +1 -0
  294. package/dist/plugins/analysis/ast/builders/MutationBuilder.d.ts +46 -0
  295. package/dist/plugins/analysis/ast/builders/MutationBuilder.d.ts.map +1 -0
  296. package/dist/plugins/analysis/ast/builders/MutationBuilder.js +264 -0
  297. package/dist/plugins/analysis/ast/builders/MutationBuilder.js.map +1 -0
  298. package/dist/plugins/analysis/ast/builders/ReturnBuilder.d.ts +23 -0
  299. package/dist/plugins/analysis/ast/builders/ReturnBuilder.d.ts.map +1 -0
  300. package/dist/plugins/analysis/ast/builders/ReturnBuilder.js +206 -0
  301. package/dist/plugins/analysis/ast/builders/ReturnBuilder.js.map +1 -0
  302. package/dist/plugins/analysis/ast/builders/TypeSystemBuilder.d.ts +64 -0
  303. package/dist/plugins/analysis/ast/builders/TypeSystemBuilder.d.ts.map +1 -0
  304. package/dist/plugins/analysis/ast/builders/TypeSystemBuilder.js +370 -0
  305. package/dist/plugins/analysis/ast/builders/TypeSystemBuilder.js.map +1 -0
  306. package/dist/plugins/analysis/ast/builders/UpdateExpressionBuilder.d.ts +46 -0
  307. package/dist/plugins/analysis/ast/builders/UpdateExpressionBuilder.d.ts.map +1 -0
  308. package/dist/plugins/analysis/ast/builders/UpdateExpressionBuilder.js +191 -0
  309. package/dist/plugins/analysis/ast/builders/UpdateExpressionBuilder.js.map +1 -0
  310. package/dist/plugins/analysis/ast/builders/YieldBuilder.d.ts +30 -0
  311. package/dist/plugins/analysis/ast/builders/YieldBuilder.d.ts.map +1 -0
  312. package/dist/plugins/analysis/ast/builders/YieldBuilder.js +214 -0
  313. package/dist/plugins/analysis/ast/builders/YieldBuilder.js.map +1 -0
  314. package/dist/plugins/analysis/ast/builders/index.d.ts +12 -0
  315. package/dist/plugins/analysis/ast/builders/index.d.ts.map +1 -0
  316. package/dist/plugins/analysis/ast/builders/index.js +11 -0
  317. package/dist/plugins/analysis/ast/builders/index.js.map +1 -0
  318. package/dist/plugins/analysis/ast/builders/types.d.ts +30 -0
  319. package/dist/plugins/analysis/ast/builders/types.d.ts.map +1 -0
  320. package/dist/plugins/analysis/ast/builders/types.js +8 -0
  321. package/dist/plugins/analysis/ast/builders/types.js.map +1 -0
  322. package/dist/plugins/analysis/ast/handlers/AnalyzerDelegate.d.ts +50 -0
  323. package/dist/plugins/analysis/ast/handlers/AnalyzerDelegate.d.ts.map +1 -0
  324. package/dist/plugins/analysis/ast/handlers/AnalyzerDelegate.js +2 -0
  325. package/dist/plugins/analysis/ast/handlers/AnalyzerDelegate.js.map +1 -0
  326. package/dist/plugins/analysis/ast/handlers/BranchHandler.d.ts +18 -0
  327. package/dist/plugins/analysis/ast/handlers/BranchHandler.d.ts.map +1 -0
  328. package/dist/plugins/analysis/ast/handlers/BranchHandler.js +244 -0
  329. package/dist/plugins/analysis/ast/handlers/BranchHandler.js.map +1 -0
  330. package/dist/plugins/analysis/ast/handlers/CallExpressionHandler.d.ts +7 -0
  331. package/dist/plugins/analysis/ast/handlers/CallExpressionHandler.d.ts.map +1 -0
  332. package/dist/plugins/analysis/ast/handlers/CallExpressionHandler.js +295 -0
  333. package/dist/plugins/analysis/ast/handlers/CallExpressionHandler.js.map +1 -0
  334. package/dist/plugins/analysis/ast/handlers/FunctionBodyHandler.d.ts +22 -0
  335. package/dist/plugins/analysis/ast/handlers/FunctionBodyHandler.d.ts.map +1 -0
  336. package/dist/plugins/analysis/ast/handlers/FunctionBodyHandler.js +9 -0
  337. package/dist/plugins/analysis/ast/handlers/FunctionBodyHandler.js.map +1 -0
  338. package/dist/plugins/analysis/ast/handlers/LoopHandler.d.ts +13 -0
  339. package/dist/plugins/analysis/ast/handlers/LoopHandler.d.ts.map +1 -0
  340. package/dist/plugins/analysis/ast/handlers/LoopHandler.js +207 -0
  341. package/dist/plugins/analysis/ast/handlers/LoopHandler.js.map +1 -0
  342. package/dist/plugins/analysis/ast/handlers/NestedFunctionHandler.d.ts +13 -0
  343. package/dist/plugins/analysis/ast/handlers/NestedFunctionHandler.d.ts.map +1 -0
  344. package/dist/plugins/analysis/ast/handlers/NestedFunctionHandler.js +174 -0
  345. package/dist/plugins/analysis/ast/handlers/NestedFunctionHandler.js.map +1 -0
  346. package/dist/plugins/analysis/ast/handlers/NewExpressionHandler.d.ts +12 -0
  347. package/dist/plugins/analysis/ast/handlers/NewExpressionHandler.d.ts.map +1 -0
  348. package/dist/plugins/analysis/ast/handlers/NewExpressionHandler.js +135 -0
  349. package/dist/plugins/analysis/ast/handlers/NewExpressionHandler.js.map +1 -0
  350. package/dist/plugins/analysis/ast/handlers/PropertyAccessHandler.d.ts +13 -0
  351. package/dist/plugins/analysis/ast/handlers/PropertyAccessHandler.d.ts.map +1 -0
  352. package/dist/plugins/analysis/ast/handlers/PropertyAccessHandler.js +71 -0
  353. package/dist/plugins/analysis/ast/handlers/PropertyAccessHandler.js.map +1 -0
  354. package/dist/plugins/analysis/ast/handlers/ReturnYieldHandler.d.ts +12 -0
  355. package/dist/plugins/analysis/ast/handlers/ReturnYieldHandler.d.ts.map +1 -0
  356. package/dist/plugins/analysis/ast/handlers/ReturnYieldHandler.js +135 -0
  357. package/dist/plugins/analysis/ast/handlers/ReturnYieldHandler.js.map +1 -0
  358. package/dist/plugins/analysis/ast/handlers/ThrowHandler.d.ts +12 -0
  359. package/dist/plugins/analysis/ast/handlers/ThrowHandler.d.ts.map +1 -0
  360. package/dist/plugins/analysis/ast/handlers/ThrowHandler.js +82 -0
  361. package/dist/plugins/analysis/ast/handlers/ThrowHandler.js.map +1 -0
  362. package/dist/plugins/analysis/ast/handlers/TryCatchHandler.d.ts +14 -0
  363. package/dist/plugins/analysis/ast/handlers/TryCatchHandler.d.ts.map +1 -0
  364. package/dist/plugins/analysis/ast/handlers/TryCatchHandler.js +220 -0
  365. package/dist/plugins/analysis/ast/handlers/TryCatchHandler.js.map +1 -0
  366. package/dist/plugins/analysis/ast/handlers/VariableHandler.d.ts +12 -0
  367. package/dist/plugins/analysis/ast/handlers/VariableHandler.d.ts.map +1 -0
  368. package/dist/plugins/analysis/ast/handlers/VariableHandler.js +57 -0
  369. package/dist/plugins/analysis/ast/handlers/VariableHandler.js.map +1 -0
  370. package/dist/plugins/analysis/ast/handlers/index.d.ts +13 -0
  371. package/dist/plugins/analysis/ast/handlers/index.d.ts.map +1 -0
  372. package/dist/plugins/analysis/ast/handlers/index.js +12 -0
  373. package/dist/plugins/analysis/ast/handlers/index.js.map +1 -0
  374. package/dist/plugins/analysis/ast/types.d.ts +57 -6
  375. package/dist/plugins/analysis/ast/types.d.ts.map +1 -1
  376. package/dist/plugins/analysis/ast/utils/createParameterNodes.d.ts +5 -4
  377. package/dist/plugins/analysis/ast/utils/createParameterNodes.d.ts.map +1 -1
  378. package/dist/plugins/analysis/ast/utils/createParameterNodes.js +94 -13
  379. package/dist/plugins/analysis/ast/utils/createParameterNodes.js.map +1 -1
  380. package/dist/plugins/analysis/ast/utils/extractNamesFromPattern.d.ts +81 -0
  381. package/dist/plugins/analysis/ast/utils/extractNamesFromPattern.d.ts.map +1 -0
  382. package/dist/plugins/analysis/ast/utils/extractNamesFromPattern.js +140 -0
  383. package/dist/plugins/analysis/ast/utils/extractNamesFromPattern.js.map +1 -0
  384. package/dist/plugins/analysis/ast/utils/getExpressionValue.d.ts +22 -0
  385. package/dist/plugins/analysis/ast/utils/getExpressionValue.d.ts.map +1 -0
  386. package/dist/plugins/analysis/ast/utils/getExpressionValue.js +35 -0
  387. package/dist/plugins/analysis/ast/utils/getExpressionValue.js.map +1 -0
  388. package/dist/plugins/analysis/ast/utils/getMemberExpressionName.d.ts +25 -0
  389. package/dist/plugins/analysis/ast/utils/getMemberExpressionName.d.ts.map +1 -0
  390. package/dist/plugins/analysis/ast/utils/getMemberExpressionName.js +21 -0
  391. package/dist/plugins/analysis/ast/utils/getMemberExpressionName.js.map +1 -0
  392. package/dist/plugins/analysis/ast/utils/index.d.ts +2 -0
  393. package/dist/plugins/analysis/ast/utils/index.d.ts.map +1 -1
  394. package/dist/plugins/analysis/ast/utils/index.js +2 -0
  395. package/dist/plugins/analysis/ast/utils/index.js.map +1 -1
  396. package/dist/plugins/analysis/ast/visitors/ArgumentExtractor.d.ts +23 -0
  397. package/dist/plugins/analysis/ast/visitors/ArgumentExtractor.d.ts.map +1 -0
  398. package/dist/plugins/analysis/ast/visitors/ArgumentExtractor.js +241 -0
  399. package/dist/plugins/analysis/ast/visitors/ArgumentExtractor.js.map +1 -0
  400. package/dist/plugins/analysis/ast/visitors/ArrayElementExtractor.d.ts +20 -0
  401. package/dist/plugins/analysis/ast/visitors/ArrayElementExtractor.d.ts.map +1 -0
  402. package/dist/plugins/analysis/ast/visitors/ArrayElementExtractor.js +110 -0
  403. package/dist/plugins/analysis/ast/visitors/ArrayElementExtractor.js.map +1 -0
  404. package/dist/plugins/analysis/ast/visitors/CallExpressionVisitor.d.ts +15 -142
  405. package/dist/plugins/analysis/ast/visitors/CallExpressionVisitor.d.ts.map +1 -1
  406. package/dist/plugins/analysis/ast/visitors/CallExpressionVisitor.js +304 -937
  407. package/dist/plugins/analysis/ast/visitors/CallExpressionVisitor.js.map +1 -1
  408. package/dist/plugins/analysis/ast/visitors/ClassVisitor.d.ts.map +1 -1
  409. package/dist/plugins/analysis/ast/visitors/ClassVisitor.js +26 -11
  410. package/dist/plugins/analysis/ast/visitors/ClassVisitor.js.map +1 -1
  411. package/dist/plugins/analysis/ast/visitors/FunctionVisitor.d.ts.map +1 -1
  412. package/dist/plugins/analysis/ast/visitors/FunctionVisitor.js +21 -6
  413. package/dist/plugins/analysis/ast/visitors/FunctionVisitor.js.map +1 -1
  414. package/dist/plugins/analysis/ast/visitors/MutationDetector.d.ts +25 -0
  415. package/dist/plugins/analysis/ast/visitors/MutationDetector.d.ts.map +1 -0
  416. package/dist/plugins/analysis/ast/visitors/MutationDetector.js +181 -0
  417. package/dist/plugins/analysis/ast/visitors/MutationDetector.js.map +1 -0
  418. package/dist/plugins/analysis/ast/visitors/ObjectPropertyExtractor.d.ts +20 -0
  419. package/dist/plugins/analysis/ast/visitors/ObjectPropertyExtractor.d.ts.map +1 -0
  420. package/dist/plugins/analysis/ast/visitors/ObjectPropertyExtractor.js +155 -0
  421. package/dist/plugins/analysis/ast/visitors/ObjectPropertyExtractor.js.map +1 -0
  422. package/dist/plugins/analysis/ast/visitors/PropertyAccessVisitor.d.ts +9 -1
  423. package/dist/plugins/analysis/ast/visitors/PropertyAccessVisitor.d.ts.map +1 -1
  424. package/dist/plugins/analysis/ast/visitors/PropertyAccessVisitor.js +51 -3
  425. package/dist/plugins/analysis/ast/visitors/PropertyAccessVisitor.js.map +1 -1
  426. package/dist/plugins/analysis/ast/visitors/TypeScriptVisitor.d.ts +20 -0
  427. package/dist/plugins/analysis/ast/visitors/TypeScriptVisitor.d.ts.map +1 -1
  428. package/dist/plugins/analysis/ast/visitors/TypeScriptVisitor.js +188 -12
  429. package/dist/plugins/analysis/ast/visitors/TypeScriptVisitor.js.map +1 -1
  430. package/dist/plugins/analysis/ast/visitors/VariableVisitor.d.ts.map +1 -1
  431. package/dist/plugins/analysis/ast/visitors/VariableVisitor.js +6 -4
  432. package/dist/plugins/analysis/ast/visitors/VariableVisitor.js.map +1 -1
  433. package/dist/plugins/analysis/ast/visitors/call-expression-helpers.d.ts +19 -0
  434. package/dist/plugins/analysis/ast/visitors/call-expression-helpers.d.ts.map +1 -0
  435. package/dist/plugins/analysis/ast/visitors/call-expression-helpers.js +57 -0
  436. package/dist/plugins/analysis/ast/visitors/call-expression-helpers.js.map +1 -0
  437. package/dist/plugins/analysis/ast/visitors/call-expression-types.d.ts +168 -0
  438. package/dist/plugins/analysis/ast/visitors/call-expression-types.d.ts.map +1 -0
  439. package/dist/plugins/analysis/ast/visitors/call-expression-types.js +7 -0
  440. package/dist/plugins/analysis/ast/visitors/call-expression-types.js.map +1 -0
  441. package/dist/plugins/analysis/react-internal/browser-api.d.ts +20 -0
  442. package/dist/plugins/analysis/react-internal/browser-api.d.ts.map +1 -0
  443. package/dist/plugins/analysis/react-internal/browser-api.js +140 -0
  444. package/dist/plugins/analysis/react-internal/browser-api.js.map +1 -0
  445. package/dist/plugins/analysis/react-internal/hooks.d.ts +31 -0
  446. package/dist/plugins/analysis/react-internal/hooks.d.ts.map +1 -0
  447. package/dist/plugins/analysis/react-internal/hooks.js +465 -0
  448. package/dist/plugins/analysis/react-internal/hooks.js.map +1 -0
  449. package/dist/plugins/analysis/react-internal/jsx.d.ts +43 -0
  450. package/dist/plugins/analysis/react-internal/jsx.d.ts.map +1 -0
  451. package/dist/plugins/analysis/react-internal/jsx.js +231 -0
  452. package/dist/plugins/analysis/react-internal/jsx.js.map +1 -0
  453. package/dist/plugins/analysis/react-internal/types.d.ts +116 -0
  454. package/dist/plugins/analysis/react-internal/types.d.ts.map +1 -0
  455. package/dist/plugins/analysis/react-internal/types.js +83 -0
  456. package/dist/plugins/analysis/react-internal/types.js.map +1 -0
  457. package/dist/plugins/discovery/MonorepoServiceDiscovery.d.ts.map +1 -1
  458. package/dist/plugins/discovery/MonorepoServiceDiscovery.js +6 -13
  459. package/dist/plugins/discovery/MonorepoServiceDiscovery.js.map +1 -1
  460. package/dist/plugins/enrichment/AliasTracker.d.ts.map +1 -1
  461. package/dist/plugins/enrichment/AliasTracker.js +3 -1
  462. package/dist/plugins/enrichment/AliasTracker.js.map +1 -1
  463. package/dist/plugins/enrichment/ArgumentParameterLinker.d.ts.map +1 -1
  464. package/dist/plugins/enrichment/ArgumentParameterLinker.js +3 -1
  465. package/dist/plugins/enrichment/ArgumentParameterLinker.js.map +1 -1
  466. package/dist/plugins/enrichment/CallbackCallResolver.d.ts +42 -0
  467. package/dist/plugins/enrichment/CallbackCallResolver.d.ts.map +1 -0
  468. package/dist/plugins/enrichment/CallbackCallResolver.js +311 -0
  469. package/dist/plugins/enrichment/CallbackCallResolver.js.map +1 -0
  470. package/dist/plugins/enrichment/ClosureCaptureEnricher.d.ts.map +1 -1
  471. package/dist/plugins/enrichment/ClosureCaptureEnricher.js +3 -1
  472. package/dist/plugins/enrichment/ClosureCaptureEnricher.js.map +1 -1
  473. package/dist/plugins/enrichment/ConfigRoutingMapBuilder.d.ts +17 -0
  474. package/dist/plugins/enrichment/ConfigRoutingMapBuilder.d.ts.map +1 -0
  475. package/dist/plugins/enrichment/ConfigRoutingMapBuilder.js +55 -0
  476. package/dist/plugins/enrichment/ConfigRoutingMapBuilder.js.map +1 -0
  477. package/dist/plugins/enrichment/ExpressHandlerLinker.d.ts.map +1 -1
  478. package/dist/plugins/enrichment/ExpressHandlerLinker.js +3 -1
  479. package/dist/plugins/enrichment/ExpressHandlerLinker.js.map +1 -1
  480. package/dist/plugins/enrichment/ExternalCallResolver.d.ts.map +1 -1
  481. package/dist/plugins/enrichment/ExternalCallResolver.js +5 -8
  482. package/dist/plugins/enrichment/ExternalCallResolver.js.map +1 -1
  483. package/dist/plugins/enrichment/FunctionCallResolver.d.ts.map +1 -1
  484. package/dist/plugins/enrichment/FunctionCallResolver.js +6 -9
  485. package/dist/plugins/enrichment/FunctionCallResolver.js.map +1 -1
  486. package/dist/plugins/enrichment/HTTPConnectionEnricher.d.ts.map +1 -1
  487. package/dist/plugins/enrichment/HTTPConnectionEnricher.js +3 -1
  488. package/dist/plugins/enrichment/HTTPConnectionEnricher.js.map +1 -1
  489. package/dist/plugins/enrichment/ImportExportLinker.d.ts.map +1 -1
  490. package/dist/plugins/enrichment/ImportExportLinker.js +5 -3
  491. package/dist/plugins/enrichment/ImportExportLinker.js.map +1 -1
  492. package/dist/plugins/enrichment/InstanceOfResolver.d.ts.map +1 -1
  493. package/dist/plugins/enrichment/InstanceOfResolver.js +3 -1
  494. package/dist/plugins/enrichment/InstanceOfResolver.js.map +1 -1
  495. package/dist/plugins/enrichment/MethodCallResolver.d.ts +17 -68
  496. package/dist/plugins/enrichment/MethodCallResolver.d.ts.map +1 -1
  497. package/dist/plugins/enrichment/MethodCallResolver.js +42 -517
  498. package/dist/plugins/enrichment/MethodCallResolver.js.map +1 -1
  499. package/dist/plugins/enrichment/MountPointResolver.d.ts.map +1 -1
  500. package/dist/plugins/enrichment/MountPointResolver.js +9 -2
  501. package/dist/plugins/enrichment/MountPointResolver.js.map +1 -1
  502. package/dist/plugins/enrichment/NodejsBuiltinsResolver.d.ts.map +1 -1
  503. package/dist/plugins/enrichment/NodejsBuiltinsResolver.js +7 -16
  504. package/dist/plugins/enrichment/NodejsBuiltinsResolver.js.map +1 -1
  505. package/dist/plugins/enrichment/PrefixEvaluator.d.ts.map +1 -1
  506. package/dist/plugins/enrichment/PrefixEvaluator.js +6 -2
  507. package/dist/plugins/enrichment/PrefixEvaluator.js.map +1 -1
  508. package/dist/plugins/enrichment/RejectionPropagationEnricher.d.ts.map +1 -1
  509. package/dist/plugins/enrichment/RejectionPropagationEnricher.js +3 -1
  510. package/dist/plugins/enrichment/RejectionPropagationEnricher.js.map +1 -1
  511. package/dist/plugins/enrichment/RustFFIEnricher.d.ts.map +1 -1
  512. package/dist/plugins/enrichment/RustFFIEnricher.js +3 -1
  513. package/dist/plugins/enrichment/RustFFIEnricher.js.map +1 -1
  514. package/dist/plugins/enrichment/ServiceConnectionEnricher.d.ts +76 -0
  515. package/dist/plugins/enrichment/ServiceConnectionEnricher.d.ts.map +1 -0
  516. package/dist/plugins/enrichment/ServiceConnectionEnricher.js +355 -0
  517. package/dist/plugins/enrichment/ServiceConnectionEnricher.js.map +1 -0
  518. package/dist/plugins/enrichment/SocketConnectionEnricher.d.ts +42 -0
  519. package/dist/plugins/enrichment/SocketConnectionEnricher.d.ts.map +1 -0
  520. package/dist/plugins/enrichment/SocketConnectionEnricher.js +166 -0
  521. package/dist/plugins/enrichment/SocketConnectionEnricher.js.map +1 -0
  522. package/dist/plugins/enrichment/ValueDomainAnalyzer.d.ts.map +1 -1
  523. package/dist/plugins/enrichment/ValueDomainAnalyzer.js +3 -1
  524. package/dist/plugins/enrichment/ValueDomainAnalyzer.js.map +1 -1
  525. package/dist/plugins/enrichment/method-call/MethodCallData.d.ts +68 -0
  526. package/dist/plugins/enrichment/method-call/MethodCallData.d.ts.map +1 -0
  527. package/dist/plugins/enrichment/method-call/MethodCallData.js +227 -0
  528. package/dist/plugins/enrichment/method-call/MethodCallData.js.map +1 -0
  529. package/dist/plugins/enrichment/method-call/MethodCallDetectors.d.ts +21 -0
  530. package/dist/plugins/enrichment/method-call/MethodCallDetectors.d.ts.map +1 -0
  531. package/dist/plugins/enrichment/method-call/MethodCallDetectors.js +52 -0
  532. package/dist/plugins/enrichment/method-call/MethodCallDetectors.js.map +1 -0
  533. package/dist/plugins/enrichment/method-call/MethodCallErrorAnalysis.d.ts +22 -0
  534. package/dist/plugins/enrichment/method-call/MethodCallErrorAnalysis.d.ts.map +1 -0
  535. package/dist/plugins/enrichment/method-call/MethodCallErrorAnalysis.js +105 -0
  536. package/dist/plugins/enrichment/method-call/MethodCallErrorAnalysis.js.map +1 -0
  537. package/dist/plugins/enrichment/method-call/MethodCallIndexers.d.ts +19 -0
  538. package/dist/plugins/enrichment/method-call/MethodCallIndexers.d.ts.map +1 -0
  539. package/dist/plugins/enrichment/method-call/MethodCallIndexers.js +63 -0
  540. package/dist/plugins/enrichment/method-call/MethodCallIndexers.js.map +1 -0
  541. package/dist/plugins/enrichment/method-call/MethodCallResolution.d.ts +30 -0
  542. package/dist/plugins/enrichment/method-call/MethodCallResolution.d.ts.map +1 -0
  543. package/dist/plugins/enrichment/method-call/MethodCallResolution.js +138 -0
  544. package/dist/plugins/enrichment/method-call/MethodCallResolution.js.map +1 -0
  545. package/dist/plugins/indexing/IncrementalModuleIndexer.d.ts.map +1 -1
  546. package/dist/plugins/indexing/IncrementalModuleIndexer.js +2 -8
  547. package/dist/plugins/indexing/IncrementalModuleIndexer.js.map +1 -1
  548. package/dist/plugins/indexing/JSModuleIndexer.d.ts.map +1 -1
  549. package/dist/plugins/indexing/JSModuleIndexer.js +13 -20
  550. package/dist/plugins/indexing/JSModuleIndexer.js.map +1 -1
  551. package/dist/plugins/indexing/RustModuleIndexer.d.ts.map +1 -1
  552. package/dist/plugins/indexing/RustModuleIndexer.js +4 -8
  553. package/dist/plugins/indexing/RustModuleIndexer.js.map +1 -1
  554. package/dist/plugins/validation/AwaitInLoopValidator.d.ts +24 -0
  555. package/dist/plugins/validation/AwaitInLoopValidator.d.ts.map +1 -0
  556. package/dist/plugins/validation/AwaitInLoopValidator.js +69 -0
  557. package/dist/plugins/validation/AwaitInLoopValidator.js.map +1 -0
  558. package/dist/plugins/validation/PackageCoverageValidator.d.ts +33 -0
  559. package/dist/plugins/validation/PackageCoverageValidator.d.ts.map +1 -0
  560. package/dist/plugins/validation/PackageCoverageValidator.js +149 -0
  561. package/dist/plugins/validation/PackageCoverageValidator.js.map +1 -0
  562. package/dist/plugins/validation/UnconnectedRouteValidator.d.ts +18 -0
  563. package/dist/plugins/validation/UnconnectedRouteValidator.d.ts.map +1 -0
  564. package/dist/plugins/validation/UnconnectedRouteValidator.js +68 -0
  565. package/dist/plugins/validation/UnconnectedRouteValidator.js.map +1 -0
  566. package/dist/queries/NodeContext.d.ts +81 -0
  567. package/dist/queries/NodeContext.d.ts.map +1 -0
  568. package/dist/queries/NodeContext.js +193 -0
  569. package/dist/queries/NodeContext.js.map +1 -0
  570. package/dist/queries/findCallsInFunction.d.ts.map +1 -1
  571. package/dist/queries/findCallsInFunction.js +10 -2
  572. package/dist/queries/findCallsInFunction.js.map +1 -1
  573. package/dist/queries/findContainingFunction.d.ts +3 -2
  574. package/dist/queries/findContainingFunction.d.ts.map +1 -1
  575. package/dist/queries/findContainingFunction.js +13 -3
  576. package/dist/queries/findContainingFunction.js.map +1 -1
  577. package/dist/queries/index.d.ts +2 -0
  578. package/dist/queries/index.d.ts.map +1 -1
  579. package/dist/queries/index.js +1 -0
  580. package/dist/queries/index.js.map +1 -1
  581. package/dist/resources/InfraResourceMapImpl.d.ts +31 -0
  582. package/dist/resources/InfraResourceMapImpl.d.ts.map +1 -0
  583. package/dist/resources/InfraResourceMapImpl.js +110 -0
  584. package/dist/resources/InfraResourceMapImpl.js.map +1 -0
  585. package/dist/resources/RoutingMapImpl.d.ts +33 -0
  586. package/dist/resources/RoutingMapImpl.d.ts.map +1 -0
  587. package/dist/resources/RoutingMapImpl.js +115 -0
  588. package/dist/resources/RoutingMapImpl.js.map +1 -0
  589. package/dist/storage/backends/RFDBServerBackend.d.ts +35 -6
  590. package/dist/storage/backends/RFDBServerBackend.d.ts.map +1 -1
  591. package/dist/storage/backends/RFDBServerBackend.js +102 -70
  592. package/dist/storage/backends/RFDBServerBackend.js.map +1 -1
  593. package/dist/utils/findRfdbBinary.d.ts +3 -2
  594. package/dist/utils/findRfdbBinary.d.ts.map +1 -1
  595. package/dist/utils/findRfdbBinary.js +22 -7
  596. package/dist/utils/findRfdbBinary.js.map +1 -1
  597. package/dist/utils/moduleResolution.d.ts.map +1 -1
  598. package/dist/utils/moduleResolution.js +26 -1
  599. package/dist/utils/moduleResolution.js.map +1 -1
  600. package/dist/utils/resolveNodeFile.d.ts +13 -0
  601. package/dist/utils/resolveNodeFile.d.ts.map +1 -0
  602. package/dist/utils/resolveNodeFile.js +18 -0
  603. package/dist/utils/resolveNodeFile.js.map +1 -0
  604. package/dist/version.d.ts +11 -0
  605. package/dist/version.d.ts.map +1 -0
  606. package/dist/version.js +26 -0
  607. package/dist/version.js.map +1 -0
  608. package/package.json +3 -3
  609. package/src/DiscoveryManager.ts +279 -0
  610. package/src/GraphInitializer.ts +131 -0
  611. package/src/GuaranteeChecker.ts +90 -0
  612. package/src/Orchestrator.ts +222 -963
  613. package/src/OrchestratorTypes.ts +122 -0
  614. package/src/ParallelAnalysisRunner.ts +188 -0
  615. package/src/PhaseRunner.ts +450 -0
  616. package/src/config/ConfigLoader.ts +176 -2
  617. package/src/config/index.ts +2 -0
  618. package/src/core/ASTWorker.ts +9 -2
  619. package/src/core/FileOverview.ts +374 -0
  620. package/src/core/GraphFreshnessChecker.ts +7 -5
  621. package/src/core/GuaranteeManager.ts +70 -2
  622. package/src/core/IncrementalReanalyzer.ts +6 -3
  623. package/src/core/NodeFactory.ts +173 -652
  624. package/src/core/ResourceRegistry.ts +39 -0
  625. package/src/core/ScopeTracker.ts +23 -0
  626. package/src/core/SemanticId.ts +183 -0
  627. package/src/core/brandNodeInternal.ts +16 -0
  628. package/src/core/buildDependencyGraph.ts +98 -0
  629. package/src/core/factories/CoreFactory.ts +489 -0
  630. package/src/core/factories/DatabaseFactory.ts +63 -0
  631. package/src/core/factories/ExternalFactory.ts +23 -0
  632. package/src/core/factories/HttpFactory.ts +57 -0
  633. package/src/core/factories/ReactFactory.ts +15 -0
  634. package/src/core/factories/RustFactory.ts +128 -0
  635. package/src/core/factories/ServiceFactory.ts +27 -0
  636. package/src/core/factories/SocketFactory.ts +94 -0
  637. package/src/core/nodes/DatabaseNode.ts +175 -0
  638. package/src/core/nodes/ExpressMiddlewareNode.ts +98 -0
  639. package/src/core/nodes/ExpressMountNode.ts +94 -0
  640. package/src/core/nodes/ExternalApiNode.ts +53 -0
  641. package/src/core/nodes/ExternalFunctionNode.ts +77 -0
  642. package/src/core/nodes/FetchRequestNode.ts +105 -0
  643. package/src/core/nodes/HttpRouteNode.ts +113 -0
  644. package/src/core/nodes/NodeKind.ts +1 -0
  645. package/src/core/nodes/ReactNode.ts +78 -0
  646. package/src/core/nodes/RustCallNode.ts +96 -0
  647. package/src/core/nodes/RustFunctionNode.ts +112 -0
  648. package/src/core/nodes/RustImplNode.ts +78 -0
  649. package/src/core/nodes/RustMethodNode.ts +125 -0
  650. package/src/core/nodes/RustModuleNode.ts +84 -0
  651. package/src/core/nodes/RustStructNode.ts +80 -0
  652. package/src/core/nodes/RustTraitNode.ts +82 -0
  653. package/src/core/nodes/ServiceLayerNode.ts +183 -0
  654. package/src/core/nodes/SocketIONode.ts +177 -0
  655. package/src/core/nodes/SocketNode.ts +206 -0
  656. package/src/core/nodes/TypeNode.ts +46 -3
  657. package/src/core/nodes/TypeParameterNode.ts +91 -0
  658. package/src/core/nodes/index.ts +57 -0
  659. package/src/index.ts +60 -4
  660. package/src/plugins/InfraAnalyzer.ts +208 -0
  661. package/src/plugins/analysis/DatabaseAnalyzer.ts +27 -17
  662. package/src/plugins/analysis/ExpressAnalyzer.ts +51 -38
  663. package/src/plugins/analysis/ExpressResponseAnalyzer.ts +15 -12
  664. package/src/plugins/analysis/ExpressRouteAnalyzer.ts +56 -56
  665. package/src/plugins/analysis/FetchAnalyzer.ts +42 -52
  666. package/src/plugins/analysis/IncrementalAnalysisPlugin.ts +3 -2
  667. package/src/plugins/analysis/JSASTAnalyzer.ts +391 -2304
  668. package/src/plugins/analysis/NestJSRouteAnalyzer.ts +241 -0
  669. package/src/plugins/analysis/ReactAnalyzer.ts +33 -1085
  670. package/src/plugins/analysis/RustAnalyzer.ts +112 -116
  671. package/src/plugins/analysis/SQLiteAnalyzer.ts +23 -9
  672. package/src/plugins/analysis/ServiceLayerAnalyzer.ts +32 -10
  673. package/src/plugins/analysis/SocketAnalyzer.ts +601 -0
  674. package/src/plugins/analysis/SocketIOAnalyzer.ts +25 -34
  675. package/src/plugins/analysis/SystemDbAnalyzer.ts +15 -12
  676. package/src/plugins/analysis/ast/CollisionResolver.ts +137 -0
  677. package/src/plugins/analysis/ast/FunctionBodyContext.ts +291 -0
  678. package/src/plugins/analysis/ast/GraphBuilder.ts +274 -3180
  679. package/src/plugins/analysis/ast/IdGenerator.ts +81 -1
  680. package/src/plugins/analysis/ast/builders/AssignmentBuilder.ts +407 -0
  681. package/src/plugins/analysis/ast/builders/CallFlowBuilder.ts +255 -0
  682. package/src/plugins/analysis/ast/builders/ControlFlowBuilder.ts +470 -0
  683. package/src/plugins/analysis/ast/builders/CoreBuilder.ts +306 -0
  684. package/src/plugins/analysis/ast/builders/ModuleRuntimeBuilder.ts +452 -0
  685. package/src/plugins/analysis/ast/builders/MutationBuilder.ts +372 -0
  686. package/src/plugins/analysis/ast/builders/ReturnBuilder.ts +279 -0
  687. package/src/plugins/analysis/ast/builders/TypeSystemBuilder.ts +475 -0
  688. package/src/plugins/analysis/ast/builders/UpdateExpressionBuilder.ts +262 -0
  689. package/src/plugins/analysis/ast/builders/YieldBuilder.ts +287 -0
  690. package/src/plugins/analysis/ast/builders/index.ts +11 -0
  691. package/src/plugins/analysis/ast/builders/types.ts +65 -0
  692. package/src/plugins/analysis/ast/handlers/AnalyzerDelegate.ts +183 -0
  693. package/src/plugins/analysis/ast/handlers/BranchHandler.ts +313 -0
  694. package/src/plugins/analysis/ast/handlers/CallExpressionHandler.ts +347 -0
  695. package/src/plugins/analysis/ast/handlers/FunctionBodyHandler.ts +24 -0
  696. package/src/plugins/analysis/ast/handlers/LoopHandler.ts +240 -0
  697. package/src/plugins/analysis/ast/handlers/NestedFunctionHandler.ts +201 -0
  698. package/src/plugins/analysis/ast/handlers/NewExpressionHandler.ts +159 -0
  699. package/src/plugins/analysis/ast/handlers/PropertyAccessHandler.ts +112 -0
  700. package/src/plugins/analysis/ast/handlers/ReturnYieldHandler.ts +166 -0
  701. package/src/plugins/analysis/ast/handlers/ThrowHandler.ts +101 -0
  702. package/src/plugins/analysis/ast/handlers/TryCatchHandler.ts +262 -0
  703. package/src/plugins/analysis/ast/handlers/VariableHandler.ts +93 -0
  704. package/src/plugins/analysis/ast/handlers/index.ts +12 -0
  705. package/src/plugins/analysis/ast/types.ts +68 -9
  706. package/src/plugins/analysis/ast/utils/createParameterNodes.ts +118 -13
  707. package/src/plugins/analysis/ast/utils/extractNamesFromPattern.ts +166 -0
  708. package/src/plugins/analysis/ast/utils/getExpressionValue.ts +34 -0
  709. package/src/plugins/analysis/ast/utils/getMemberExpressionName.ts +33 -0
  710. package/src/plugins/analysis/ast/utils/index.ts +2 -0
  711. package/src/plugins/analysis/ast/visitors/ArgumentExtractor.ts +307 -0
  712. package/src/plugins/analysis/ast/visitors/ArrayElementExtractor.ts +172 -0
  713. package/src/plugins/analysis/ast/visitors/CallExpressionVisitor.ts +425 -1374
  714. package/src/plugins/analysis/ast/visitors/ClassVisitor.ts +43 -12
  715. package/src/plugins/analysis/ast/visitors/FunctionVisitor.ts +39 -8
  716. package/src/plugins/analysis/ast/visitors/MutationDetector.ts +211 -0
  717. package/src/plugins/analysis/ast/visitors/ObjectPropertyExtractor.ts +217 -0
  718. package/src/plugins/analysis/ast/visitors/PropertyAccessVisitor.ts +69 -4
  719. package/src/plugins/analysis/ast/visitors/TypeScriptVisitor.ts +232 -13
  720. package/src/plugins/analysis/ast/visitors/VariableVisitor.ts +8 -11
  721. package/src/plugins/analysis/ast/visitors/call-expression-helpers.ts +65 -0
  722. package/src/plugins/analysis/ast/visitors/call-expression-types.ts +179 -0
  723. package/src/plugins/analysis/react-internal/browser-api.ts +168 -0
  724. package/src/plugins/analysis/react-internal/hooks.ts +517 -0
  725. package/src/plugins/analysis/react-internal/jsx.ts +279 -0
  726. package/src/plugins/analysis/react-internal/types.ts +183 -0
  727. package/src/plugins/discovery/MonorepoServiceDiscovery.ts +6 -14
  728. package/src/plugins/enrichment/AliasTracker.ts +3 -1
  729. package/src/plugins/enrichment/ArgumentParameterLinker.ts +3 -1
  730. package/src/plugins/enrichment/CallbackCallResolver.ts +398 -0
  731. package/src/plugins/enrichment/ClosureCaptureEnricher.ts +3 -1
  732. package/src/plugins/enrichment/ConfigRoutingMapBuilder.ts +67 -0
  733. package/src/plugins/enrichment/ExpressHandlerLinker.ts +3 -1
  734. package/src/plugins/enrichment/ExternalCallResolver.ts +5 -8
  735. package/src/plugins/enrichment/FunctionCallResolver.ts +6 -9
  736. package/src/plugins/enrichment/HTTPConnectionEnricher.ts +3 -1
  737. package/src/plugins/enrichment/ImportExportLinker.ts +5 -3
  738. package/src/plugins/enrichment/InstanceOfResolver.ts +3 -1
  739. package/src/plugins/enrichment/MethodCallResolver.ts +48 -659
  740. package/src/plugins/enrichment/MountPointResolver.ts +9 -2
  741. package/src/plugins/enrichment/NodejsBuiltinsResolver.ts +13 -18
  742. package/src/plugins/enrichment/PrefixEvaluator.ts +6 -2
  743. package/src/plugins/enrichment/RejectionPropagationEnricher.ts +3 -1
  744. package/src/plugins/enrichment/RustFFIEnricher.ts +3 -1
  745. package/src/plugins/enrichment/ServiceConnectionEnricher.ts +472 -0
  746. package/src/plugins/enrichment/SocketConnectionEnricher.ts +228 -0
  747. package/src/plugins/enrichment/ValueDomainAnalyzer.ts +3 -1
  748. package/src/plugins/enrichment/method-call/MethodCallData.ts +299 -0
  749. package/src/plugins/enrichment/method-call/MethodCallDetectors.ts +70 -0
  750. package/src/plugins/enrichment/method-call/MethodCallErrorAnalysis.ts +131 -0
  751. package/src/plugins/enrichment/method-call/MethodCallIndexers.ts +83 -0
  752. package/src/plugins/enrichment/method-call/MethodCallResolution.ts +181 -0
  753. package/src/plugins/indexing/IncrementalModuleIndexer.ts +5 -10
  754. package/src/plugins/indexing/JSModuleIndexer.ts +17 -21
  755. package/src/plugins/indexing/RustModuleIndexer.ts +14 -13
  756. package/src/plugins/validation/AwaitInLoopValidator.ts +91 -0
  757. package/src/plugins/validation/PackageCoverageValidator.ts +181 -0
  758. package/src/plugins/validation/UnconnectedRouteValidator.ts +93 -0
  759. package/src/queries/NodeContext.ts +277 -0
  760. package/src/queries/findCallsInFunction.ts +11 -2
  761. package/src/queries/findContainingFunction.ts +14 -3
  762. package/src/queries/index.ts +13 -0
  763. package/src/resources/InfraResourceMapImpl.ts +119 -0
  764. package/src/resources/RoutingMapImpl.ts +133 -0
  765. package/src/storage/backends/RFDBServerBackend.ts +106 -77
  766. package/src/utils/findRfdbBinary.ts +22 -7
  767. package/src/utils/moduleResolution.ts +28 -1
  768. package/src/utils/resolveNodeFile.ts +18 -0
  769. package/src/version.ts +28 -0
@@ -0,0 +1,119 @@
1
+ import type { InfraResourceMap, ResourceMapping, AbstractResource, AbstractResourceType, ConcreteResourceRef } from '@grafema/types';
2
+ import { INFRA_RESOURCE_MAP_ID } from '@grafema/types';
3
+
4
+ /**
5
+ * Default implementation of InfraResourceMap.
6
+ *
7
+ * Stores mappings indexed by abstractType -> name -> AbstractResource
8
+ * for O(1) lookup. Multiple concrete resources can map to the same
9
+ * abstract resource (e.g., K8s Deployment + Terraform both create compute:service:api).
10
+ *
11
+ * Complexity:
12
+ * - register: O(1) amortized (map insertions)
13
+ * - findAbstract: O(1) nested map lookup
14
+ * - findByType: O(n) where n = resources of that type
15
+ * - findByEnv: O(N) where N = total resources
16
+ */
17
+ export class InfraResourceMapImpl implements InfraResourceMap {
18
+ readonly id = INFRA_RESOURCE_MAP_ID;
19
+
20
+ /** abstractType -> name -> AbstractResource */
21
+ private byTypeAndName = new Map<string, Map<string, AbstractResource>>();
22
+ /** abstractId -> AbstractResource for O(1) lookup */
23
+ private byId = new Map<string, AbstractResource>();
24
+
25
+ register(mapping: ResourceMapping): void {
26
+ let nameMap = this.byTypeAndName.get(mapping.abstractType);
27
+ if (!nameMap) {
28
+ nameMap = new Map();
29
+ this.byTypeAndName.set(mapping.abstractType, nameMap);
30
+ }
31
+
32
+ const provider: ConcreteResourceRef = {
33
+ id: mapping.concreteId,
34
+ type: mapping.concreteType,
35
+ tool: mapping.sourceTool,
36
+ file: mapping.sourceFile,
37
+ };
38
+
39
+ const existing = nameMap.get(mapping.name);
40
+ if (existing) {
41
+ // Deduplicate providers
42
+ const isDuplicate = existing.providers.some(p => p.id === provider.id);
43
+ if (!isDuplicate) {
44
+ existing.providers.push(provider);
45
+ }
46
+ // Merge metadata (later registrations can add fields)
47
+ existing.metadata = { ...existing.metadata, ...mapping.metadata };
48
+ // Merge env
49
+ if (mapping.env !== undefined) {
50
+ existing.env = mergeEnv(existing.env, mapping.env);
51
+ }
52
+ } else {
53
+ const abstract: AbstractResource = {
54
+ id: mapping.abstractId,
55
+ type: mapping.abstractType,
56
+ name: mapping.name,
57
+ env: mapping.env,
58
+ metadata: { ...mapping.metadata },
59
+ providers: [provider],
60
+ };
61
+ nameMap.set(mapping.name, abstract);
62
+ this.byId.set(mapping.abstractId, abstract);
63
+ }
64
+ }
65
+
66
+ findAbstract(name: string, type: AbstractResourceType): AbstractResource | null {
67
+ return this.byTypeAndName.get(type)?.get(name) ?? null;
68
+ }
69
+
70
+ findConcrete(abstractId: string): ConcreteResourceRef[] {
71
+ const abstract = this.byId.get(abstractId);
72
+ return abstract ? [...abstract.providers] : [];
73
+ }
74
+
75
+ findByType(type: AbstractResourceType): AbstractResource[] {
76
+ const nameMap = this.byTypeAndName.get(type);
77
+ return nameMap ? [...nameMap.values()] : [];
78
+ }
79
+
80
+ findByEnv(env: string): AbstractResource[] {
81
+ const result: AbstractResource[] = [];
82
+ for (const abstract of this.byId.values()) {
83
+ if (matchesEnv(abstract.env, env)) {
84
+ result.push(abstract);
85
+ }
86
+ }
87
+ return result;
88
+ }
89
+
90
+ getAll(): AbstractResource[] {
91
+ return [...this.byId.values()];
92
+ }
93
+
94
+ get resourceCount(): number {
95
+ return this.byId.size;
96
+ }
97
+ }
98
+
99
+ /** Merge environment values, deduplicating */
100
+ function mergeEnv(existing: string | string[] | undefined, incoming: string | string[] | undefined): string | string[] | undefined {
101
+ if (existing === undefined) return incoming;
102
+ if (incoming === undefined) return existing;
103
+ const existingArr = Array.isArray(existing) ? existing : [existing];
104
+ const incomingArr = Array.isArray(incoming) ? incoming : [incoming];
105
+ const merged = [...new Set([...existingArr, ...incomingArr])];
106
+ return merged.length === 1 ? merged[0] : merged;
107
+ }
108
+
109
+ /** Check if resource env matches filter */
110
+ function matchesEnv(resourceEnv: string | string[] | undefined, filterEnv: string): boolean {
111
+ if (resourceEnv === undefined) return true; // undefined = all environments
112
+ if (Array.isArray(resourceEnv)) return resourceEnv.includes(filterEnv);
113
+ return resourceEnv === filterEnv;
114
+ }
115
+
116
+ /** Factory function for creating an InfraResourceMap Resource */
117
+ export function createInfraResourceMap(): InfraResourceMapImpl {
118
+ return new InfraResourceMapImpl();
119
+ }
@@ -0,0 +1,133 @@
1
+ import type { RoutingMap, RoutingRule, MatchContext, MatchResult } from '@grafema/types';
2
+
3
+ /**
4
+ * Default implementation of RoutingMap.
5
+ *
6
+ * Stores rules in a nested Map<fromService, Map<toService, RoutingRule[]>>
7
+ * for O(1) lookup by fromService in findMatch.
8
+ *
9
+ * Complexity:
10
+ * - addRule: O(r) dedup check where r = rules for the pair
11
+ * - findMatch: O(t * r + c * log c) where t = target services for fromService, r = rules per pair, c = matching candidates
12
+ * - findRulesForPair: O(1) nested map lookup + O(r) copy
13
+ */
14
+ export class RoutingMapImpl implements RoutingMap {
15
+ readonly id = 'routing:map' as const;
16
+
17
+ /** Rules indexed by fromService → toService → rules[] for O(1) lookup by service */
18
+ private rulesByFrom = new Map<string, Map<string, RoutingRule[]>>();
19
+ /** All rules in insertion order */
20
+ private allRules: RoutingRule[] = [];
21
+
22
+ addRule(rule: RoutingRule): void {
23
+ let toMap = this.rulesByFrom.get(rule.from);
24
+ if (!toMap) {
25
+ toMap = new Map();
26
+ this.rulesByFrom.set(rule.from, toMap);
27
+ }
28
+
29
+ let rules = toMap.get(rule.to);
30
+ if (!rules) {
31
+ rules = [];
32
+ toMap.set(rule.to, rules);
33
+ }
34
+
35
+ // Deduplicate: skip if identical rule already exists
36
+ const isDuplicate = rules.some(
37
+ r => r.stripPrefix === rule.stripPrefix && r.addPrefix === rule.addPrefix
38
+ );
39
+ if (!isDuplicate) {
40
+ rules.push(rule);
41
+ this.allRules.push(rule);
42
+ }
43
+ }
44
+
45
+ addRules(rules: RoutingRule[]): void {
46
+ for (const rule of rules) {
47
+ this.addRule(rule);
48
+ }
49
+ }
50
+
51
+ findMatch(context: MatchContext): MatchResult | null {
52
+ const toMap = this.rulesByFrom.get(context.fromService);
53
+ if (!toMap) return null;
54
+
55
+ // Collect all matching candidates across all target services
56
+ const candidates: { rule: RoutingRule; transformedUrl: string }[] = [];
57
+
58
+ for (const rules of toMap.values()) {
59
+ for (const rule of rules) {
60
+ const transformed = this.applyRule(context.requestUrl, rule);
61
+ if (transformed !== null) {
62
+ candidates.push({ rule, transformedUrl: transformed });
63
+ }
64
+ }
65
+ }
66
+
67
+ if (candidates.length === 0) return null;
68
+
69
+ // Sort: longer stripPrefix first, then lower priority number
70
+ candidates.sort((a, b) => {
71
+ const aLen = a.rule.stripPrefix?.length ?? 0;
72
+ const bLen = b.rule.stripPrefix?.length ?? 0;
73
+ if (aLen !== bLen) return bLen - aLen;
74
+ return (a.rule.priority ?? 0) - (b.rule.priority ?? 0);
75
+ });
76
+
77
+ const best = candidates[0];
78
+ return {
79
+ transformedUrl: best.transformedUrl,
80
+ targetService: best.rule.to,
81
+ rule: best.rule,
82
+ };
83
+ }
84
+
85
+ findRulesForPair(fromService: string, toService: string): RoutingRule[] {
86
+ return [...(this.rulesByFrom.get(fromService)?.get(toService) ?? [])];
87
+ }
88
+
89
+ getAllRules(): RoutingRule[] {
90
+ return [...this.allRules];
91
+ }
92
+
93
+ get ruleCount(): number {
94
+ return this.allRules.length;
95
+ }
96
+
97
+ /**
98
+ * Apply a routing rule to transform a URL.
99
+ * Returns transformed URL, or null if the rule's stripPrefix doesn't match.
100
+ */
101
+ private applyRule(url: string, rule: RoutingRule): string | null {
102
+ let result = url;
103
+
104
+ // Strip prefix
105
+ if (rule.stripPrefix) {
106
+ if (!result.startsWith(rule.stripPrefix)) {
107
+ return null; // Rule doesn't apply — prefix doesn't match
108
+ }
109
+ const afterPrefix = result.slice(rule.stripPrefix.length);
110
+ // Verify prefix boundary: next char must be '/' or end of string
111
+ if (afterPrefix !== '' && !afterPrefix.startsWith('/')) {
112
+ return null; // Partial prefix match (e.g., /api doesn't strip from /api-v2)
113
+ }
114
+ result = afterPrefix || '/';
115
+ }
116
+
117
+ // Add prefix
118
+ if (rule.addPrefix) {
119
+ if (result.startsWith('/') && rule.addPrefix.endsWith('/')) {
120
+ result = rule.addPrefix + result.slice(1);
121
+ } else {
122
+ result = rule.addPrefix + result;
123
+ }
124
+ }
125
+
126
+ return result;
127
+ }
128
+ }
129
+
130
+ /** Factory function for creating a RoutingMap Resource */
131
+ export function createRoutingMap(): RoutingMapImpl {
132
+ return new RoutingMapImpl();
133
+ }
@@ -22,18 +22,15 @@ import { RFDBClient } from '@grafema/rfdb-client';
22
22
  import { existsSync, unlinkSync } from 'fs';
23
23
  import { spawn, type ChildProcess } from 'child_process';
24
24
  import { join, dirname } from 'path';
25
- import { fileURLToPath } from 'url';
26
- import { createRequire } from 'module';
27
25
  import { setTimeout as sleep } from 'timers/promises';
28
26
 
29
- import type { WireNode, WireEdge, FieldDeclaration, AttrQuery as RFDBAttrQuery } from '@grafema/types';
27
+ import type { WireNode, WireEdge, FieldDeclaration, CommitDelta, AttrQuery as RFDBAttrQuery } from '@grafema/types';
30
28
  import type { NodeType, EdgeType } from '@grafema/types';
31
- import type { BaseNodeRecord, EdgeRecord } from '@grafema/types';
29
+ import { findRfdbBinary } from '../../utils/findRfdbBinary.js';
30
+ import type { BaseNodeRecord, EdgeRecord, AnyBrandedNode } from '@grafema/types';
31
+ import { brandNodeInternal } from '../../core/brandNodeInternal.js';
32
32
  import type { AttrQuery, GraphStats, GraphExport } from '../../core/GraphBackend.js';
33
33
 
34
- const __filename = fileURLToPath(import.meta.url);
35
- const __dirname = dirname(__filename);
36
-
37
34
  /**
38
35
  * Options for RFDBServerBackend
39
36
  */
@@ -105,6 +102,7 @@ export class RFDBServerBackend {
105
102
  private client: RFDBClient | null;
106
103
  private serverProcess: ChildProcess | null;
107
104
  connected: boolean; // Public for compatibility
105
+ private protocolVersion: number = 2; // Negotiated protocol version
108
106
  private edgeTypes: Set<string>;
109
107
  private _cachedNodeCounts: Record<string, number> | undefined;
110
108
  private _cachedEdgeCounts: Record<string, number> | undefined;
@@ -166,7 +164,8 @@ export class RFDBServerBackend {
166
164
  // Verify server is responsive
167
165
  await this.client.ping();
168
166
  this.connected = true;
169
- this.log(`[RFDBServerBackend] Connected to RFDB server at ${this.socketPath}`);
167
+ await this._negotiateProtocol();
168
+ this.log(`[RFDBServerBackend] Connected to RFDB server at ${this.socketPath} (protocol v${this.protocolVersion})`);
170
169
  return;
171
170
  } catch {
172
171
  // Server not running or stale socket
@@ -190,7 +189,8 @@ export class RFDBServerBackend {
190
189
  await this.client.connect();
191
190
  await this.client.ping();
192
191
  this.connected = true;
193
- this.log(`[RFDBServerBackend] Connected to RFDB server at ${this.socketPath}`);
192
+ await this._negotiateProtocol();
193
+ this.log(`[RFDBServerBackend] Connected to RFDB server at ${this.socketPath} (protocol v${this.protocolVersion})`);
194
194
  }
195
195
 
196
196
  /**
@@ -201,62 +201,15 @@ export class RFDBServerBackend {
201
201
  }
202
202
 
203
203
  /**
204
- * Find RFDB server binary in order of preference:
205
- * 1. packages/rfdb-server/target/release (monorepo development - prioritized for dev)
206
- * 2. packages/rfdb-server/target/debug
207
- * 3. @grafema/rfdb npm package
208
- * 4. ~/.local/bin/rfdb-server (user-installed binary)
204
+ * Find RFDB server binary using shared utility.
205
+ * Delegates to findRfdbBinary() for consistent search across all entry points.
209
206
  */
210
207
  private _findServerBinary(): string | null {
211
- // 1. Check packages/rfdb-server in monorepo (prioritized for development)
212
- const projectRoot = join(__dirname, '../../../../..');
213
- const releaseBinary = join(projectRoot, 'packages/rfdb-server/target/release/rfdb-server');
214
- if (existsSync(releaseBinary)) {
215
- this.log(`[RFDBServerBackend] Found release binary: ${releaseBinary}`);
216
- return releaseBinary;
217
- }
218
-
219
- // 2. Check debug build
220
- const debugBinary = join(projectRoot, 'packages/rfdb-server/target/debug/rfdb-server');
221
- if (existsSync(debugBinary)) {
222
- this.log(`[RFDBServerBackend] Found debug binary: ${debugBinary}`);
223
- return debugBinary;
224
- }
225
-
226
- // 3. Check @grafema/rfdb npm package
227
- try {
228
- const require = createRequire(import.meta.url);
229
- const rfdbPkg = require.resolve('@grafema/rfdb');
230
- const rfdbDir = dirname(rfdbPkg);
231
- const platform = process.platform;
232
- const arch = process.arch;
233
-
234
- let platformDir: string;
235
- if (platform === 'darwin') {
236
- platformDir = arch === 'arm64' ? 'darwin-arm64' : 'darwin-x64';
237
- } else if (platform === 'linux') {
238
- platformDir = arch === 'arm64' ? 'linux-arm64' : 'linux-x64';
239
- } else {
240
- platformDir = `${platform}-${arch}`;
241
- }
242
-
243
- const npmBinary = join(rfdbDir, 'prebuilt', platformDir, 'rfdb-server');
244
- if (existsSync(npmBinary)) {
245
- this.log(`[RFDBServerBackend] Found binary in @grafema/rfdb: ${npmBinary}`);
246
- return npmBinary;
247
- }
248
- } catch {
249
- // @grafema/rfdb not installed
250
- }
251
-
252
- // 4. Check ~/.local/bin (user-installed binary for unsupported platforms)
253
- const homeBinary = join(process.env.HOME || '', '.local', 'bin', 'rfdb-server');
254
- if (existsSync(homeBinary)) {
255
- this.log(`[RFDBServerBackend] Found user binary: ${homeBinary}`);
256
- return homeBinary;
208
+ const binaryPath = findRfdbBinary();
209
+ if (binaryPath) {
210
+ this.log(`[RFDBServerBackend] Found binary: ${binaryPath}`);
257
211
  }
258
-
259
- return null;
212
+ return binaryPath;
260
213
  }
261
214
 
262
215
  /**
@@ -310,6 +263,23 @@ export class RFDBServerBackend {
310
263
  this.log(`[RFDBServerBackend] Server started on ${this.socketPath}`);
311
264
  }
312
265
 
266
+ /**
267
+ * Negotiate protocol version with server.
268
+ * Requests v3 (semantic IDs), falls back to v2 if server doesn't support it.
269
+ * Called after ping() confirmed connectivity, so failures here indicate
270
+ * the server doesn't support hello/v3, not network issues.
271
+ */
272
+ private async _negotiateProtocol(): Promise<void> {
273
+ if (!this.client) return;
274
+ try {
275
+ const hello = await this.client.hello(3);
276
+ this.protocolVersion = hello.protocolVersion;
277
+ } catch {
278
+ // Server predates hello command or doesn't support v3 — safe v2 fallback
279
+ this.protocolVersion = 2;
280
+ }
281
+ }
282
+
313
283
  /**
314
284
  * Close client connection. Server continues running to serve other clients.
315
285
  */
@@ -376,18 +346,25 @@ export class RFDBServerBackend {
376
346
  if (!this.client) throw new Error('Not connected');
377
347
  if (!nodes.length) return;
378
348
 
349
+ const useV3 = this.protocolVersion >= 3;
379
350
  const wireNodes: WireNode[] = nodes.map(n => {
380
351
  // Extract metadata from node
381
352
  const { id, type, nodeType, node_type, name, file, exported, ...rest } = n;
382
353
 
383
- return {
354
+ const wire: WireNode = {
384
355
  id: String(id),
385
356
  nodeType: (nodeType || node_type || type || 'UNKNOWN') as NodeType,
386
357
  name: name || '',
387
358
  file: file || '',
388
359
  exported: exported || false,
389
- metadata: JSON.stringify({ originalId: String(id), ...rest }),
360
+ metadata: useV3
361
+ ? JSON.stringify(rest)
362
+ : JSON.stringify({ originalId: String(id), ...rest }),
390
363
  };
364
+ if (useV3) {
365
+ wire.semanticId = String(id);
366
+ }
367
+ return wire;
391
368
  });
392
369
 
393
370
  await this.client.addNodes(wireNodes);
@@ -413,22 +390,19 @@ export class RFDBServerBackend {
413
390
  if (typeof edgeType === 'string') this.edgeTypes.add(edgeType);
414
391
  }
415
392
 
393
+ const useV3 = this.protocolVersion >= 3;
416
394
  const wireEdges: WireEdge[] = edges.map(e => {
417
395
  const { src, dst, type, edgeType, edge_type, etype, metadata, ...rest } = e;
418
396
 
419
397
  // Flatten metadata: spread both edge-level properties and nested metadata
420
- const flatMetadata = {
421
- _origSrc: String(src),
422
- _origDst: String(dst),
423
- ...rest,
424
- ...(typeof metadata === 'object' && metadata !== null ? metadata : {})
425
- };
398
+ const flatMetadata = useV3
399
+ ? { ...rest, ...(typeof metadata === 'object' && metadata !== null ? metadata : {}) }
400
+ : { _origSrc: String(src), _origDst: String(dst), ...rest, ...(typeof metadata === 'object' && metadata !== null ? metadata : {}) };
426
401
 
427
402
  return {
428
403
  src: String(src),
429
404
  dst: String(dst),
430
405
  edgeType: (edgeType || edge_type || etype || type || 'UNKNOWN') as EdgeType,
431
- // Store flattened metadata for retrieval
432
406
  metadata: JSON.stringify(flatMetadata),
433
407
  };
434
408
  });
@@ -474,7 +448,7 @@ export class RFDBServerBackend {
474
448
  /**
475
449
  * Parse a node from wire format to JS format
476
450
  */
477
- private _parseNode(wireNode: WireNode): BaseNodeRecord {
451
+ private _parseNode(wireNode: WireNode): AnyBrandedNode {
478
452
  const metadata: Record<string, unknown> = wireNode.metadata ? JSON.parse(wireNode.metadata) : {};
479
453
 
480
454
  // Parse nested JSON strings
@@ -488,7 +462,9 @@ export class RFDBServerBackend {
488
462
  }
489
463
  }
490
464
 
491
- const humanId = (metadata.originalId as string) || wireNode.id;
465
+ // Prefer metadata.semanticId (original v1 format preserved by RFDB server),
466
+ // then v3 semanticId, then v2 originalId metadata hack, then raw id
467
+ const humanId = (metadata.semanticId as string) || wireNode.semanticId || (metadata.originalId as string) || wireNode.id;
492
468
 
493
469
  // Exclude standard fields from metadata to prevent overwriting wireNode values
494
470
  // REG-325: Metadata spread was overwriting name with LITERAL node data
@@ -500,10 +476,11 @@ export class RFDBServerBackend {
500
476
  exported: _exported,
501
477
  nodeType: _nodeType,
502
478
  originalId: _originalId, // Already extracted above
479
+ semanticId: _semanticId, // Exclude from safeMetadata (used for humanId above)
503
480
  ...safeMetadata
504
481
  } = metadata;
505
482
 
506
- return {
483
+ const parsed = {
507
484
  id: humanId,
508
485
  type: wireNode.nodeType,
509
486
  name: wireNode.name,
@@ -511,6 +488,9 @@ export class RFDBServerBackend {
511
488
  exported: wireNode.exported,
512
489
  ...safeMetadata,
513
490
  };
491
+
492
+ // Re-brand nodes coming from database
493
+ return brandNodeInternal(parsed);
514
494
  }
515
495
 
516
496
  /**
@@ -518,11 +498,18 @@ export class RFDBServerBackend {
518
498
  */
519
499
  private _parseEdge(wireEdge: WireEdge): EdgeRecord {
520
500
  const meta: Record<string, unknown> = wireEdge.metadata ? JSON.parse(wireEdge.metadata) : {};
521
- // Use original string IDs if stored, otherwise use wire IDs
501
+ // v3: server resolves src/dst to semantic IDs, use directly
502
+ // v2: fall back to _origSrc/_origDst metadata hack
522
503
  const { _origSrc, _origDst, ...rest } = meta;
504
+ const src = this.protocolVersion >= 3
505
+ ? wireEdge.src
506
+ : (_origSrc as string) || wireEdge.src;
507
+ const dst = this.protocolVersion >= 3
508
+ ? wireEdge.dst
509
+ : (_origDst as string) || wireEdge.dst;
523
510
  return {
524
- src: (_origSrc as string) || wireEdge.src,
525
- dst: (_origDst as string) || wireEdge.dst,
511
+ src,
512
+ dst,
526
513
  type: wireEdge.edgeType,
527
514
  metadata: Object.keys(rest).length > 0 ? rest : undefined,
528
515
  };
@@ -754,6 +741,48 @@ export class RFDBServerBackend {
754
741
  }));
755
742
  }
756
743
 
744
+ /**
745
+ * Execute unified Datalog query or program.
746
+ * Auto-detects whether input is rules or direct query.
747
+ */
748
+ async executeDatalog(source: string): Promise<Array<{ bindings: Array<{ name: string; value: string }> }>> {
749
+ if (!this.client) throw new Error('Not connected');
750
+ const results = await this.client.executeDatalog(source);
751
+ return results.map(r => ({
752
+ bindings: Object.entries(r.bindings).map(([name, value]) => ({ name, value }))
753
+ }));
754
+ }
755
+
756
+ // ===========================================================================
757
+ // Batch Operations (RFD-16: CommitBatch protocol)
758
+ // ===========================================================================
759
+
760
+ /**
761
+ * Begin a batch operation. While batching, addNodes/addEdges buffer locally.
762
+ * Call commitBatch() to send all buffered data atomically.
763
+ */
764
+ beginBatch(): void {
765
+ if (!this.client) throw new Error('Not connected to RFDB server');
766
+ this.client.beginBatch();
767
+ }
768
+
769
+ /**
770
+ * Commit the current batch to the server atomically.
771
+ * Returns a CommitDelta describing what changed.
772
+ */
773
+ async commitBatch(tags?: string[]): Promise<CommitDelta> {
774
+ if (!this.client) throw new Error('Not connected to RFDB server');
775
+ return this.client.commitBatch(tags);
776
+ }
777
+
778
+ /**
779
+ * Abort the current batch, discarding all buffered data.
780
+ */
781
+ abortBatch(): void {
782
+ if (!this.client) throw new Error('Not connected to RFDB server');
783
+ this.client.abortBatch();
784
+ }
785
+
757
786
  // ===========================================================================
758
787
  // Export/Import
759
788
  // ===========================================================================
@@ -12,12 +12,13 @@
12
12
  * 2. GRAFEMA_RFDB_SERVER environment variable
13
13
  * 3. Monorepo target/release (development)
14
14
  * 4. Monorepo target/debug (development)
15
- * 5. @grafema/rfdb npm package (prebuilt)
16
- * 6. ~/.local/bin/rfdb-server (user-installed)
15
+ * 5. System PATH lookup
16
+ * 6. @grafema/rfdb npm package (prebuilt)
17
+ * 7. ~/.local/bin/rfdb-server (user-installed)
17
18
  */
18
19
 
19
20
  import { existsSync } from 'fs';
20
- import { join, dirname, resolve } from 'path';
21
+ import { join, delimiter, dirname, resolve } from 'path';
21
22
  import { createRequire } from 'module';
22
23
  import { fileURLToPath } from 'url';
23
24
 
@@ -83,7 +84,17 @@ export function findRfdbBinary(options: FindBinaryOptions = {}): string | null {
83
84
  }
84
85
  }
85
86
 
86
- // 5. @grafema/rfdb npm package
87
+ // 5. System PATH lookup
88
+ const pathDirs = (process.env.PATH || '').split(delimiter);
89
+ for (const dir of pathDirs) {
90
+ if (!dir) continue;
91
+ const candidate = join(dir, 'rfdb-server');
92
+ if (existsSync(candidate)) {
93
+ return candidate;
94
+ }
95
+ }
96
+
97
+ // 6. @grafema/rfdb npm package
87
98
  try {
88
99
  const require = createRequire(import.meta.url);
89
100
  const rfdbPkg = require.resolve('@grafema/rfdb');
@@ -97,7 +108,7 @@ export function findRfdbBinary(options: FindBinaryOptions = {}): string | null {
97
108
  // @grafema/rfdb not installed
98
109
  }
99
110
 
100
- // 6. User-installed binary in ~/.local/bin
111
+ // 7. User-installed binary in ~/.local/bin
101
112
  const homeBinary = join(process.env.HOME || '', '.local', 'bin', 'rfdb-server');
102
113
  if (existsSync(homeBinary)) {
103
114
  return homeBinary;
@@ -147,14 +158,18 @@ Options:
147
158
  3. Set environment variable:
148
159
  export GRAFEMA_RFDB_SERVER=/path/to/rfdb-server
149
160
 
150
- 4. Build from source and install:
161
+ 4. Install to system PATH:
162
+ cargo build --release
163
+ cp target/release/rfdb-server /usr/local/bin/
164
+
165
+ 5. Build from source and install:
151
166
  git clone https://github.com/Disentinel/grafema.git
152
167
  cd grafema/packages/rfdb-server
153
168
  cargo build --release
154
169
  mkdir -p ~/.local/bin
155
170
  cp target/release/rfdb-server ~/.local/bin/
156
171
 
157
- 5. Install prebuilt (if available for your platform):
172
+ 6. Install prebuilt (if available for your platform):
158
173
  npm install @grafema/rfdb
159
174
  `;
160
175
  }
@@ -11,7 +11,7 @@
11
11
  */
12
12
 
13
13
  import { existsSync, statSync } from 'fs';
14
- import { dirname, resolve, join } from 'path';
14
+ import { dirname, extname, resolve, join } from 'path';
15
15
 
16
16
  /**
17
17
  * Default file extensions to try when resolving modules.
@@ -19,6 +19,19 @@ import { dirname, resolve, join } from 'path';
19
19
  */
20
20
  export const DEFAULT_EXTENSIONS = ['', '.js', '.mjs', '.cjs', '.jsx', '.ts', '.tsx'];
21
21
 
22
+ /**
23
+ * TypeScript extension redirects (REG-426).
24
+ * Maps JS-family extensions to their TS equivalents.
25
+ * Used when an import specifies a .js extension but only a .ts file exists.
26
+ * This matches TypeScript's own module resolution behavior for ESM.
27
+ */
28
+ const TS_EXTENSION_REDIRECTS: Record<string, string[]> = {
29
+ '.js': ['.ts', '.tsx'],
30
+ '.jsx': ['.tsx'],
31
+ '.mjs': ['.mts'],
32
+ '.cjs': ['.cts'],
33
+ };
34
+
22
35
  /**
23
36
  * Default index files to try when resolving directory imports.
24
37
  * Order: JS variants first (most common), then TS variants.
@@ -177,6 +190,20 @@ export function resolveModulePath(
177
190
  }
178
191
  }
179
192
 
193
+ // TypeScript extension redirect (REG-426):
194
+ // import './foo.js' → try ./foo.ts when ./foo.js doesn't exist
195
+ const ext = extname(normalizedPath);
196
+ const tsAlternatives = TS_EXTENSION_REDIRECTS[ext];
197
+ if (tsAlternatives) {
198
+ const withoutExt = normalizedPath.slice(0, -ext.length);
199
+ for (const tsExt of tsAlternatives) {
200
+ const testPath = withoutExt + tsExt;
201
+ if (pathExists(testPath, useFilesystem, fileIndex)) {
202
+ return testPath;
203
+ }
204
+ }
205
+ }
206
+
180
207
  // Try index files in directory
181
208
  for (const indexFile of indexFiles) {
182
209
  const testPath = join(normalizedPath, indexFile);