@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
@@ -1,189 +1,33 @@
1
1
  /**
2
- * MethodCallResolver - обогащает METHOD_CALL ноды связями CALLS к определениям методов
2
+ * MethodCallResolver - enriches METHOD_CALL nodes with CALLS edges to method definitions.
3
3
  *
4
- * Находит вызовы методов (CALL с "object" атрибутом) и пытается связать их с:
5
- * 1. Методами классов в том же файле
6
- * 2. Методами классов в импортированных модулях
7
- * 3. Методами объектов переменных
4
+ * Finds method calls (CALL nodes with "object" attribute) and links them to:
5
+ * 1. Class methods in the same file
6
+ * 2. Class methods in imported modules
7
+ * 3. Object variable methods
8
8
  *
9
- * СОЗДАЁТ РЁБРА:
10
- * - METHOD_CALL -> CALLS -> METHOD (для методов классов)
11
- * - METHOD_CALL -> CALLS -> FUNCTION (для методов объектов)
9
+ * CREATES EDGES:
10
+ * - METHOD_CALL -> CALLS -> METHOD (for class methods)
11
+ * - METHOD_CALL -> CALLS -> FUNCTION (for object methods)
12
+ *
13
+ * Implementation split into focused modules under ./method-call/ (REG-463):
14
+ * - MethodCallData: constants, types, data sets
15
+ * - MethodCallDetectors: external/built-in detection
16
+ * - MethodCallIndexers: class-method and variable-type index building
17
+ * - MethodCallResolution: core resolution logic
18
+ * - MethodCallErrorAnalysis: strict mode error analysis and suggestions
12
19
  */
13
20
  import { Plugin, createSuccessResult } from '../Plugin.js';
14
21
  import { StrictModeError } from '../../errors/GrafemaError.js';
15
- /**
16
- * Built-in JavaScript prototype methods that should never error in strict mode.
17
- * These exist on primitive types and common objects.
18
- */
19
- const BUILTIN_PROTOTYPE_METHODS = new Set([
20
- // Array.prototype
21
- 'concat', 'copyWithin', 'entries', 'every', 'fill', 'filter', 'find',
22
- 'findIndex', 'findLast', 'findLastIndex', 'flat', 'flatMap', 'forEach',
23
- 'includes', 'indexOf', 'join', 'keys', 'lastIndexOf', 'map', 'pop',
24
- 'push', 'reduce', 'reduceRight', 'reverse', 'shift', 'slice', 'some',
25
- 'sort', 'splice', 'toLocaleString', 'toReversed', 'toSorted', 'toSpliced',
26
- 'toString', 'unshift', 'values', 'with', 'at',
27
- // String.prototype
28
- 'charAt', 'charCodeAt', 'codePointAt', 'endsWith', 'localeCompare',
29
- 'match', 'matchAll', 'normalize', 'padEnd', 'padStart', 'repeat',
30
- 'replace', 'replaceAll', 'search', 'split', 'startsWith', 'substring',
31
- 'toLocaleLowerCase', 'toLocaleUpperCase', 'toLowerCase', 'toUpperCase',
32
- 'trim', 'trimEnd', 'trimStart',
33
- // Object.prototype (commonly called on objects)
34
- 'hasOwnProperty', 'isPrototypeOf', 'propertyIsEnumerable', 'valueOf',
35
- // Number.prototype
36
- 'toExponential', 'toFixed', 'toPrecision',
37
- // Date.prototype
38
- 'getDate', 'getDay', 'getFullYear', 'getHours', 'getMilliseconds',
39
- 'getMinutes', 'getMonth', 'getSeconds', 'getTime', 'getTimezoneOffset',
40
- 'getUTCDate', 'getUTCDay', 'getUTCFullYear', 'getUTCHours',
41
- 'getUTCMilliseconds', 'getUTCMinutes', 'getUTCMonth', 'getUTCSeconds',
42
- 'setDate', 'setFullYear', 'setHours', 'setMilliseconds', 'setMinutes',
43
- 'setMonth', 'setSeconds', 'setTime', 'setUTCDate', 'setUTCFullYear',
44
- 'setUTCHours', 'setUTCMilliseconds', 'setUTCMinutes', 'setUTCMonth',
45
- 'setUTCSeconds', 'toDateString', 'toISOString', 'toJSON',
46
- 'toLocaleDateString', 'toLocaleTimeString', 'toTimeString', 'toUTCString',
47
- // Map.prototype
48
- 'clear', 'delete', 'get', 'has', 'set', 'size',
49
- // Set.prototype (same as Map + add)
50
- 'add',
51
- // Promise.prototype
52
- 'then', 'catch', 'finally',
53
- // Function.prototype
54
- 'apply', 'bind', 'call',
55
- // RegExp.prototype
56
- 'exec', 'test',
57
- ]);
58
- /**
59
- * Common library method patterns that should be treated as external.
60
- * These are methods from well-known npm packages.
61
- */
62
- const COMMON_LIBRARY_METHODS = new Set([
63
- // Express/HTTP response
64
- 'json', 'status', 'send', 'redirect', 'render', 'sendFile', 'sendStatus',
65
- 'type', 'format', 'attachment', 'download', 'end', 'cookie', 'clearCookie',
66
- 'location', 'links', 'jsonp', 'vary', 'append', 'header', 'setHeader',
67
- // Express router/app
68
- 'use', 'route', 'param', 'all', 'listen',
69
- // HTTP methods (router.get, router.post, etc.)
70
- // Note: 'get' is also in BUILTIN_PROTOTYPE_METHODS (Map.get)
71
- 'post', 'put', 'patch', 'options', 'head',
72
- // Socket.io
73
- 'on', 'emit', 'to', 'in', 'join', 'leave', 'disconnect', 'broadcast',
74
- 'once', 'off', 'removeListener', 'removeAllListeners',
75
- // EventEmitter
76
- 'addListener', 'prependListener', 'prependOnceListener', 'listeners',
77
- 'listenerCount', 'eventNames', 'rawListeners', 'setMaxListeners',
78
- 'getMaxListeners',
79
- // Fetch API / Response
80
- 'text', 'blob', 'arrayBuffer', 'formData', 'clone', 'ok', 'redirected',
81
- // Node.js streams
82
- 'pipe', 'unpipe', 'read', 'write', 'pause', 'resume', 'destroy', 'cork',
83
- 'uncork', 'setEncoding', 'setDefaultEncoding',
84
- // Axios
85
- 'request', 'interceptors', 'create',
86
- // JWT (jsonwebtoken)
87
- 'sign', 'verify', 'decode',
88
- // Telegram bot API (node-telegram-bot-api)
89
- 'sendMessage', 'sendPhoto', 'sendDocument', 'sendVideo', 'sendAudio',
90
- 'sendSticker', 'sendVoice', 'sendLocation', 'sendVenue', 'sendContact',
91
- 'sendPoll', 'sendDice', 'sendChatAction', 'onText', 'onMessage',
92
- 'answerCallbackQuery', 'editMessageText', 'deleteMessage', 'forwardMessage',
93
- 'copyMessage', 'getUpdates', 'setWebHook', 'deleteWebHook', 'getWebHookInfo',
94
- // Database (SQLite, better-sqlite3, knex, sequelize)
95
- 'run', 'all', 'prepare', 'exec', 'query', 'transaction', 'pragma',
96
- 'backup', 'serialize', 'parallelize', 'raw', 'select', 'insert', 'update',
97
- 'from', 'where', 'whereIn', 'whereNot', 'orWhere', 'andWhere',
98
- 'orderBy', 'groupBy', 'having', 'limit', 'offset', 'first',
99
- // Express-validator
100
- 'custom', 'isEmail', 'isLength', 'isNumeric', 'isInt', 'isFloat',
101
- 'isBoolean', 'isDate', 'isURL', 'isUUID', 'isEmpty', 'isNotEmpty',
102
- 'exists', 'optional', 'notEmpty', 'bail', 'withMessage', 'sanitize',
103
- 'trim', 'escape', 'normalizeEmail', 'toInt', 'toFloat', 'toBoolean',
104
- 'toDate', 'check', 'body', 'param', 'validationResult',
105
- // dotenv
106
- 'config', 'parse',
107
- // SQLite (statement methods)
108
- 'finalize', 'step', 'bind', 'reset', 'columns', 'safeIntegers',
109
- 'pluck', 'expand', 'iterate', 'reader',
110
- // Additional Telegram bot methods
111
- 'editMessageReplyMarkup', 'editMessageCaption', 'editMessageMedia',
112
- 'stopPoll', 'sendMediaGroup', 'sendAnimation', 'sendVideoNote',
113
- 'kickChatMember', 'banChatMember', 'unbanChatMember', 'restrictChatMember',
114
- 'promoteChatMember', 'setChatPermissions', 'setChatPhoto', 'deleteChatPhoto',
115
- 'setChatTitle', 'setChatDescription', 'pinChatMessage', 'unpinChatMessage',
116
- 'leaveChat', 'getChat', 'getChatMember', 'getChatMembersCount',
117
- 'getChatAdministrators', 'answerInlineQuery', 'sendInvoice',
118
- 'answerShippingQuery', 'answerPreCheckoutQuery', 'getMe',
119
- // Crypto
120
- 'digest', 'update', 'hash', 'createHash', 'createHmac', 'createCipheriv',
121
- 'createDecipheriv', 'randomBytes', 'pbkdf2', 'scrypt', 'generateKeyPair',
122
- // Express factory methods
123
- 'urlencoded', 'static', 'Router',
124
- // DOM
125
- 'addEventListener', 'removeEventListener', 'dispatchEvent', 'querySelector',
126
- 'querySelectorAll', 'getElementById', 'getElementsByClassName',
127
- 'getElementsByTagName', 'createElement', 'createTextNode', 'appendChild',
128
- 'removeChild', 'insertBefore', 'replaceChild', 'cloneNode', 'getAttribute',
129
- 'setAttribute', 'removeAttribute', 'hasAttribute', 'classList', 'focus',
130
- 'blur', 'click', 'submit', 'reset', 'preventDefault', 'stopPropagation',
131
- 'stopImmediatePropagation',
132
- // Browser storage
133
- 'getItem', 'setItem', 'removeItem', 'key', 'length',
134
- // React
135
- 'createRoot', 'render', 'unmount', 'useState', 'useEffect', 'useCallback',
136
- 'useMemo', 'useRef', 'useContext', 'useReducer',
137
- ]);
138
- /**
139
- * Semantic groups for library coverage reporting.
140
- * Maps library namespaces to their semantic category and suggested plugin.
141
- */
142
- export const LIBRARY_SEMANTIC_GROUPS = {
143
- // HTTP Clients
144
- axios: { semantic: 'http-client', suggestedPlugin: 'FetchAnalyzer', description: 'HTTP requests not tracked' },
145
- got: { semantic: 'http-client', suggestedPlugin: 'FetchAnalyzer', description: 'HTTP requests not tracked' },
146
- superagent: { semantic: 'http-client', suggestedPlugin: 'FetchAnalyzer', description: 'HTTP requests not tracked' },
147
- request: { semantic: 'http-client', suggestedPlugin: 'FetchAnalyzer', description: 'HTTP requests not tracked' },
148
- ky: { semantic: 'http-client', suggestedPlugin: 'FetchAnalyzer', description: 'HTTP requests not tracked' },
149
- // HTTP Response (Express-like)
150
- res: { semantic: 'http-response', suggestedPlugin: 'ExpressResponseAnalyzer', description: 'Response data flow not tracked' },
151
- ctx: { semantic: 'http-response', suggestedPlugin: 'KoaResponseAnalyzer', description: 'Response data flow not tracked' },
152
- reply: { semantic: 'http-response', suggestedPlugin: 'FastifyResponseAnalyzer', description: 'Response data flow not tracked' },
153
- // Routers
154
- router: { semantic: 'http-router', suggestedPlugin: 'ExpressRouteAnalyzer', description: 'Routes may not be tracked' },
155
- app: { semantic: 'http-router', suggestedPlugin: 'ExpressRouteAnalyzer', description: 'Routes may not be tracked' },
156
- // WebSocket
157
- socket: { semantic: 'websocket', suggestedPlugin: 'SocketIOAnalyzer', description: 'WebSocket events not tracked' },
158
- io: { semantic: 'websocket', suggestedPlugin: 'SocketIOAnalyzer', description: 'WebSocket events not tracked' },
159
- ws: { semantic: 'websocket', suggestedPlugin: 'WebSocketAnalyzer', description: 'WebSocket events not tracked' },
160
- // Database
161
- knex: { semantic: 'database', suggestedPlugin: 'KnexAnalyzer', description: 'Database queries not tracked' },
162
- sequelize: { semantic: 'database', suggestedPlugin: 'SequelizeAnalyzer', description: 'Database queries not tracked' },
163
- prisma: { semantic: 'database', suggestedPlugin: 'PrismaAnalyzer', description: 'Database queries not tracked' },
164
- mongoose: { semantic: 'database', suggestedPlugin: 'MongooseAnalyzer', description: 'Database queries not tracked' },
165
- db: { semantic: 'database', suggestedPlugin: 'DatabaseAnalyzer', description: 'Database queries not tracked' },
166
- pool: { semantic: 'database', suggestedPlugin: 'DatabaseAnalyzer', description: 'Database queries not tracked' },
167
- // Auth
168
- jwt: { semantic: 'auth', suggestedPlugin: 'AuthAnalyzer', description: 'Auth flow not visible' },
169
- jsonwebtoken: { semantic: 'auth', suggestedPlugin: 'AuthAnalyzer', description: 'Auth flow not visible' },
170
- passport: { semantic: 'auth', suggestedPlugin: 'PassportAnalyzer', description: 'Auth strategies not tracked' },
171
- bcrypt: { semantic: 'auth', suggestedPlugin: 'AuthAnalyzer', description: 'Password handling not tracked' },
172
- // Validation
173
- validator: { semantic: 'validation', suggestedPlugin: 'ValidationAnalyzer', description: 'Validation rules not tracked' },
174
- joi: { semantic: 'validation', suggestedPlugin: 'JoiAnalyzer', description: 'Validation schemas not tracked' },
175
- yup: { semantic: 'validation', suggestedPlugin: 'YupAnalyzer', description: 'Validation schemas not tracked' },
176
- zod: { semantic: 'validation', suggestedPlugin: 'ZodAnalyzer', description: 'Validation schemas not tracked' },
177
- // Logging
178
- logger: { semantic: 'logging', suggestedPlugin: 'LoggingAnalyzer', description: 'Log statements not tracked' },
179
- winston: { semantic: 'logging', suggestedPlugin: 'LoggingAnalyzer', description: 'Log statements not tracked' },
180
- pino: { semantic: 'logging', suggestedPlugin: 'LoggingAnalyzer', description: 'Log statements not tracked' },
181
- bunyan: { semantic: 'logging', suggestedPlugin: 'LoggingAnalyzer', description: 'Log statements not tracked' },
182
- // Telegram bot
183
- bot: { semantic: 'telegram-bot', suggestedPlugin: 'TelegramBotAnalyzer', description: 'Bot commands not tracked' },
184
- };
22
+ // Import from extracted modules
23
+ import { BUILTIN_PROTOTYPE_METHODS } from './method-call/MethodCallData.js';
24
+ import { isExternalMethod, isBuiltInObject, trackLibraryCall } from './method-call/MethodCallDetectors.js';
25
+ import { buildClassMethodIndex, buildVariableTypeIndex } from './method-call/MethodCallIndexers.js';
26
+ import { resolveMethodCall } from './method-call/MethodCallResolution.js';
27
+ import { analyzeResolutionFailure, generateContextualSuggestion } from './method-call/MethodCallErrorAnalysis.js';
28
+ // Re-export for backward compatibility (used by packages/core/src/index.ts)
29
+ export { LIBRARY_SEMANTIC_GROUPS } from './method-call/MethodCallData.js';
185
30
  export class MethodCallResolver extends Plugin {
186
- _containingClassCache;
187
31
  get metadata() {
188
32
  return {
189
33
  name: 'MethodCallResolver',
@@ -192,7 +36,9 @@ export class MethodCallResolver extends Plugin {
192
36
  nodes: [],
193
37
  edges: ['CALLS']
194
38
  },
195
- dependencies: ['ImportExportLinker']
39
+ dependencies: ['ImportExportLinker'],
40
+ consumes: ['CONTAINS', 'INSTANCE_OF', 'DERIVES_FROM'],
41
+ produces: ['CALLS']
196
42
  };
197
43
  }
198
44
  async execute(context) {
@@ -207,7 +53,7 @@ export class MethodCallResolver extends Plugin {
207
53
  const errors = [];
208
54
  // Track library calls for coverage reporting
209
55
  const libraryCallStats = new Map();
210
- // Собираем все METHOD_CALL ноды (CALL с object атрибутом)
56
+ // Collect all METHOD_CALL nodes (CALL with object attribute)
211
57
  // REG-332: Deduplicate by (object, method, file, line), preferring nodes with grafemaIgnore
212
58
  const methodCallMap = new Map();
213
59
  for await (const node of graph.queryNodes({ nodeType: 'CALL' })) {
@@ -237,11 +83,12 @@ export class MethodCallResolver extends Plugin {
237
83
  }
238
84
  const methodCalls = Array.from(methodCallMap.values());
239
85
  logger.info('Found method calls to resolve', { count: methodCalls.length });
240
- // Собираем все классы и их методы для быстрого поиска
241
- const classMethodIndex = await this.buildClassMethodIndex(graph, logger);
86
+ // Build indexes for fast lookup
87
+ const classMethodIndex = await buildClassMethodIndex(graph, logger);
242
88
  logger.info('Indexed classes', { count: classMethodIndex.size });
243
- // Собираем переменные и их типы (если известны)
244
- const variableTypes = await this.buildVariableTypeIndex(graph, logger);
89
+ const variableTypes = await buildVariableTypeIndex(graph, logger);
90
+ // Cache for containing class lookups (local to this execution)
91
+ const containingClassCache = new Map();
245
92
  const startTime = Date.now();
246
93
  for (const methodCall of methodCalls) {
247
94
  methodCallsProcessed++;
@@ -267,24 +114,24 @@ export class MethodCallResolver extends Plugin {
267
114
  avgTime: `${avgTime}ms/call`
268
115
  });
269
116
  }
270
- // Пропускаем внешние методы (console, Array.prototype, etc.)
271
- if (this.isExternalMethod(methodCall.object, methodCall.method)) {
117
+ // Skip external methods (console, Array.prototype, etc.)
118
+ if (isExternalMethod(methodCall.object, methodCall.method)) {
272
119
  externalSkipped++;
273
120
  // Track library calls for coverage reporting (skip built-in objects)
274
121
  const obj = methodCall.object;
275
122
  const method = methodCall.method;
276
- if (!this.isBuiltInObject(obj) && !BUILTIN_PROTOTYPE_METHODS.has(method)) {
277
- this.trackLibraryCall(libraryCallStats, obj, method);
123
+ if (!isBuiltInObject(obj) && !BUILTIN_PROTOTYPE_METHODS.has(method)) {
124
+ trackLibraryCall(libraryCallStats, obj, method);
278
125
  }
279
126
  continue;
280
127
  }
281
- // Проверяем есть ли уже CALLS ребро
128
+ // Check if CALLS edge already exists
282
129
  const existingEdges = await graph.getOutgoingEdges(methodCall.id, ['CALLS']);
283
130
  if (existingEdges.length > 0) {
284
- continue; // Уже есть связь
131
+ continue; // Already linked
285
132
  }
286
- // Пытаемся найти определение метода
287
- const targetMethod = await this.resolveMethodCall(methodCall, classMethodIndex, variableTypes, graph);
133
+ // Try to find method definition
134
+ const targetMethod = await resolveMethodCall(methodCall, classMethodIndex, variableTypes, graph, containingClassCache);
288
135
  if (targetMethod) {
289
136
  await graph.addEdge({
290
137
  src: methodCall.id,
@@ -307,9 +154,9 @@ export class MethodCallResolver extends Plugin {
307
154
  continue;
308
155
  }
309
156
  // Analyze WHY resolution failed
310
- const { reason, chain } = this.analyzeResolutionFailure(methodCall, classMethodIndex, variableTypes);
157
+ const { reason, chain } = analyzeResolutionFailure(methodCall, classMethodIndex, variableTypes);
311
158
  // Generate context-aware suggestion based on failure reason
312
- const suggestion = this.generateContextualSuggestion(methodCall.object, methodCall.method, reason, chain);
159
+ const suggestion = generateContextualSuggestion(methodCall.object, methodCall.method, reason, chain);
313
160
  const error = new StrictModeError(`Cannot resolve method call: ${methodCall.object}.${methodCall.method}`, 'STRICT_UNRESOLVED_METHOD', {
314
161
  filePath: methodCall.file,
315
162
  lineNumber: methodCall.line,
@@ -357,327 +204,5 @@ export class MethodCallResolver extends Plugin {
357
204
  }
358
205
  return createSuccessResult({ nodes: 0, edges: edgesCreated }, summary, errors);
359
206
  }
360
- /**
361
- * Строит индекс классов и их методов
362
- */
363
- async buildClassMethodIndex(graph, logger) {
364
- const index = new Map();
365
- const startTime = Date.now();
366
- let classCount = 0;
367
- for await (const classNode of graph.queryNodes({ nodeType: 'CLASS' })) {
368
- classCount++;
369
- if (classCount % 50 === 0) {
370
- logger.debug('Indexing classes', { count: classCount });
371
- }
372
- const className = classNode.name;
373
- if (!className)
374
- continue;
375
- const classEntry = {
376
- classNode,
377
- methods: new Map()
378
- };
379
- const containsEdges = await graph.getOutgoingEdges(classNode.id, ['CONTAINS']);
380
- for (const edge of containsEdges) {
381
- const childNode = await graph.getNode(edge.dst);
382
- if (childNode && (childNode.type === 'METHOD' || childNode.type === 'FUNCTION')) {
383
- if (childNode.name) {
384
- classEntry.methods.set(childNode.name, childNode);
385
- }
386
- }
387
- }
388
- index.set(className, classEntry);
389
- // Также индексируем по файлу для локального резолвинга
390
- const fileKey = `${classNode.file}:${className}`;
391
- index.set(fileKey, classEntry);
392
- }
393
- const totalTime = ((Date.now() - startTime) / 1000).toFixed(1);
394
- logger.debug('Indexed class entries', { count: index.size, time: `${totalTime}s` });
395
- return index;
396
- }
397
- /**
398
- * Строит индекс переменных и их типов (из INSTANCE_OF рёбер)
399
- */
400
- async buildVariableTypeIndex(graph, logger) {
401
- const startTime = Date.now();
402
- const index = new Map();
403
- for await (const classNode of graph.queryNodes({ nodeType: 'CLASS' })) {
404
- if (!classNode.name)
405
- continue;
406
- const incomingEdges = await graph.getIncomingEdges(classNode.id, ['INSTANCE_OF']);
407
- for (const edge of incomingEdges) {
408
- index.set(edge.src.toString(), classNode.name);
409
- }
410
- }
411
- const elapsed = ((Date.now() - startTime) / 1000).toFixed(1);
412
- logger.debug('Built variable type index', { entries: index.size, time: `${elapsed}s` });
413
- return index;
414
- }
415
- /**
416
- * Пытается найти определение метода
417
- */
418
- async resolveMethodCall(methodCall, classMethodIndex, variableTypes, graph) {
419
- const { object, method, file } = methodCall;
420
- if (!object || !method)
421
- return null;
422
- // 1. Проверяем если object - это имя класса напрямую (статический вызов)
423
- if (classMethodIndex.has(object)) {
424
- const classEntry = classMethodIndex.get(object);
425
- if (classEntry.methods.has(method)) {
426
- return classEntry.methods.get(method);
427
- }
428
- }
429
- // 2. Проверяем локальный класс в том же файле
430
- const localKey = `${file}:${object}`;
431
- if (classMethodIndex.has(localKey)) {
432
- const classEntry = classMethodIndex.get(localKey);
433
- if (classEntry.methods.has(method)) {
434
- return classEntry.methods.get(method);
435
- }
436
- }
437
- // 3. Проверяем если object - это "this" (ссылка на текущий класс)
438
- if (object === 'this') {
439
- if (!this._containingClassCache)
440
- this._containingClassCache = new Map();
441
- let containingClass = this._containingClassCache.get(methodCall.id);
442
- if (containingClass === undefined) {
443
- containingClass = await this.findContainingClass(methodCall, graph);
444
- this._containingClassCache.set(methodCall.id, containingClass);
445
- }
446
- if (containingClass && classMethodIndex.has(containingClass.name)) {
447
- const classEntry = classMethodIndex.get(containingClass.name);
448
- if (classEntry.methods.has(method)) {
449
- return classEntry.methods.get(method);
450
- }
451
- }
452
- }
453
- // 4. Используем variableTypes индекс
454
- for (const [, className] of variableTypes.entries()) {
455
- if (className && classMethodIndex.has(className)) {
456
- const classEntry = classMethodIndex.get(className);
457
- if (classEntry.methods.has(method)) {
458
- return classEntry.methods.get(method);
459
- }
460
- }
461
- }
462
- return null;
463
- }
464
- /**
465
- * Находит класс, содержащий данный method call
466
- */
467
- async findContainingClass(methodCall, graph) {
468
- const incomingEdges = await graph.getIncomingEdges(methodCall.id, ['CONTAINS']);
469
- for (const edge of incomingEdges) {
470
- const parentNode = await graph.getNode(edge.src);
471
- if (!parentNode)
472
- continue;
473
- if (parentNode.type === 'CLASS') {
474
- return parentNode;
475
- }
476
- const found = await this.findContainingClassRecursive(parentNode, graph, new Set());
477
- if (found)
478
- return found;
479
- }
480
- return null;
481
- }
482
- async findContainingClassRecursive(node, graph, visited) {
483
- if (visited.has(node.id.toString()))
484
- return null;
485
- visited.add(node.id.toString());
486
- const incomingEdges = await graph.getIncomingEdges(node.id, ['CONTAINS']);
487
- for (const edge of incomingEdges) {
488
- const parentNode = await graph.getNode(edge.src);
489
- if (!parentNode)
490
- continue;
491
- if (parentNode.type === 'CLASS') {
492
- return parentNode;
493
- }
494
- const found = await this.findContainingClassRecursive(parentNode, graph, visited);
495
- if (found)
496
- return found;
497
- }
498
- return null;
499
- }
500
- /**
501
- * Checks if a method call is external (built-in or well-known library).
502
- * In strict mode, external methods are skipped (no error if unresolved).
503
- */
504
- isExternalMethod(object, method) {
505
- // Known global objects (console, Math, etc.)
506
- const externalObjects = new Set([
507
- 'console', 'Math', 'JSON', 'Object', 'Array', 'String', 'Number',
508
- 'Boolean', 'Date', 'RegExp', 'Error', 'Promise', 'Set', 'Map',
509
- 'WeakSet', 'WeakMap', 'Symbol', 'Proxy', 'Reflect', 'Intl',
510
- 'process', 'global', 'window', 'document', 'Buffer',
511
- 'fs', 'path', 'http', 'https', 'crypto', 'os', 'url', 'util',
512
- 'localStorage', 'sessionStorage', 'navigator', 'location', 'history',
513
- 'performance', 'fetch', 'XMLHttpRequest', 'WebSocket',
514
- 'setTimeout', 'setInterval', 'clearTimeout', 'clearInterval',
515
- 'requestAnimationFrame', 'cancelAnimationFrame',
516
- 'Atomics', 'SharedArrayBuffer', 'DataView', 'ArrayBuffer',
517
- 'Int8Array', 'Uint8Array', 'Uint8ClampedArray', 'Int16Array',
518
- 'Uint16Array', 'Int32Array', 'Uint32Array', 'Float32Array',
519
- 'Float64Array', 'BigInt64Array', 'BigUint64Array',
520
- // Common npm package namespaces
521
- 'dotenv', 'express', 'axios', 'lodash', '_', 'moment', 'dayjs',
522
- 'sqlite3', 'pg', 'mysql', 'mysql2', 'mongodb', 'mongoose', 'sequelize',
523
- 'knex', 'typeorm', 'prisma', 'jwt', 'jsonwebtoken', 'bcrypt', 'bcryptjs',
524
- 'passport', 'multer', 'nodemailer', 'winston', 'bunyan', 'pino',
525
- 'chalk', 'colors', 'yargs', 'commander', 'inquirer', 'ora', 'figlet',
526
- 'uuid', 'nanoid', 'shortid', 'validator', 'joi', 'yup', 'zod',
527
- 'cheerio', 'puppeteer', 'playwright', 'selenium', 'sharp', 'jimp',
528
- 'socket', 'io', 'ws', 'Redis', 'redis', 'ioredis', 'amqp', 'amqplib',
529
- 'aws', 'AWS', 's3', 'sqs', 'sns', 'lambda', 'dynamodb',
530
- 'React', 'ReactDOM', 'Vue', 'vue', 'angular', 'Angular',
531
- ]);
532
- // Check if object is a known global
533
- if (externalObjects.has(object)) {
534
- return true;
535
- }
536
- // Check if method is a built-in prototype method
537
- if (BUILTIN_PROTOTYPE_METHODS.has(method)) {
538
- return true;
539
- }
540
- // Check if method is a common library method
541
- if (COMMON_LIBRARY_METHODS.has(method)) {
542
- return true;
543
- }
544
- return false;
545
- }
546
- /**
547
- * Check if object is a built-in JavaScript global (not a library namespace)
548
- */
549
- isBuiltInObject(object) {
550
- const builtInObjects = new Set([
551
- 'console', 'Math', 'JSON', 'Object', 'Array', 'String', 'Number',
552
- 'Boolean', 'Date', 'RegExp', 'Error', 'Promise', 'Set', 'Map',
553
- 'WeakSet', 'WeakMap', 'Symbol', 'Proxy', 'Reflect', 'Intl',
554
- 'process', 'global', 'window', 'document', 'Buffer',
555
- 'fs', 'path', 'http', 'https', 'crypto', 'os', 'url', 'util',
556
- 'localStorage', 'sessionStorage', 'navigator', 'location', 'history',
557
- 'performance', 'fetch', 'XMLHttpRequest', 'WebSocket',
558
- 'setTimeout', 'setInterval', 'clearTimeout', 'clearInterval',
559
- 'requestAnimationFrame', 'cancelAnimationFrame',
560
- 'Atomics', 'SharedArrayBuffer', 'DataView', 'ArrayBuffer',
561
- 'Int8Array', 'Uint8Array', 'Uint8ClampedArray', 'Int16Array',
562
- 'Uint16Array', 'Int32Array', 'Uint32Array', 'Float32Array',
563
- 'Float64Array', 'BigInt64Array', 'BigUint64Array',
564
- ]);
565
- return builtInObjects.has(object);
566
- }
567
- /**
568
- * Track a library method call for coverage reporting
569
- */
570
- trackLibraryCall(stats, object, method) {
571
- if (!stats.has(object)) {
572
- const semanticInfo = LIBRARY_SEMANTIC_GROUPS[object];
573
- stats.set(object, {
574
- object,
575
- methods: new Map(),
576
- totalCalls: 0,
577
- semantic: semanticInfo?.semantic,
578
- suggestedPlugin: semanticInfo?.suggestedPlugin,
579
- description: semanticInfo?.description
580
- });
581
- }
582
- const libStats = stats.get(object);
583
- libStats.totalCalls++;
584
- libStats.methods.set(method, (libStats.methods.get(method) || 0) + 1);
585
- }
586
- /**
587
- * Analyze why method resolution failed (REG-332).
588
- * Returns the failure reason and resolution chain for context-aware suggestions.
589
- */
590
- analyzeResolutionFailure(methodCall, classMethodIndex, _variableTypes) {
591
- const { object, method, file } = methodCall;
592
- const chain = [];
593
- if (!object || !method) {
594
- return { reason: 'unknown', chain };
595
- }
596
- // Check if object is a known class name (static call)
597
- if (classMethodIndex.has(object)) {
598
- const classEntry = classMethodIndex.get(object);
599
- chain.push({
600
- step: `${object} class lookup`,
601
- result: 'found',
602
- file: classEntry.classNode.file,
603
- line: classEntry.classNode.line,
604
- });
605
- if (!classEntry.methods.has(method)) {
606
- chain.push({
607
- step: `${object}.${method} method`,
608
- result: 'NOT FOUND in class',
609
- });
610
- return { reason: 'method_not_found', chain };
611
- }
612
- }
613
- // Check for local class in same file
614
- const localKey = `${file}:${object}`;
615
- if (classMethodIndex.has(localKey)) {
616
- const classEntry = classMethodIndex.get(localKey);
617
- chain.push({
618
- step: `${object} local class`,
619
- result: 'found in same file',
620
- });
621
- if (!classEntry.methods.has(method)) {
622
- chain.push({
623
- step: `${object}.${method} method`,
624
- result: 'NOT FOUND',
625
- });
626
- return { reason: 'method_not_found', chain };
627
- }
628
- }
629
- // Check if this is a library call
630
- if (LIBRARY_SEMANTIC_GROUPS[object]) {
631
- const libInfo = LIBRARY_SEMANTIC_GROUPS[object];
632
- chain.push({
633
- step: `${object} lookup`,
634
- result: `external library (${libInfo.semantic})`,
635
- });
636
- return { reason: 'external_dependency', chain };
637
- }
638
- // Object type is unknown
639
- chain.push({
640
- step: `${object} type lookup`,
641
- result: 'unknown (not in class index)',
642
- });
643
- chain.push({
644
- step: `${object}.${method}`,
645
- result: 'FAILED (no type information)',
646
- });
647
- return { reason: 'unknown_object_type', chain };
648
- }
649
- /**
650
- * Generate context-aware suggestion based on failure reason (REG-332).
651
- */
652
- generateContextualSuggestion(object, method, reason, chain) {
653
- switch (reason) {
654
- case 'unknown_object_type': {
655
- // Find the source in chain that shows "unknown"
656
- const sourceStep = chain.find(s => s.result.includes('unknown'));
657
- const sourceDesc = sourceStep?.step || 'the source';
658
- return `Variable "${object}" has unknown type from ${sourceDesc}. ` +
659
- `Add JSDoc: /** @type {${object}Class} */ or check imports.`;
660
- }
661
- case 'class_not_imported':
662
- return `Class "${object}" is not imported. Check your imports or ensure the class is defined.`;
663
- case 'method_not_found':
664
- return `Class "${object}" exists but has no method "${method}". ` +
665
- `Check spelling or verify the method is defined in the class.`;
666
- case 'external_dependency': {
667
- const libInfo = LIBRARY_SEMANTIC_GROUPS[object];
668
- if (libInfo?.suggestedPlugin) {
669
- return `This call is to external library "${object}" (${libInfo.semantic}). ` +
670
- `Consider using ${libInfo.suggestedPlugin} for semantic analysis.`;
671
- }
672
- return `This call is to external library "${object}". ` +
673
- `Consider adding type stubs or a dedicated analyzer plugin.`;
674
- }
675
- case 'circular_reference':
676
- return `Alias chain for "${object}" is too deep (possible cycle). ` +
677
- `Simplify variable assignments or check for circular references.`;
678
- default:
679
- return `Check if class "${object}" is imported and has method "${method}".`;
680
- }
681
- }
682
207
  }
683
208
  //# sourceMappingURL=MethodCallResolver.js.map