@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.
- package/README.md +61 -23
- package/dist/DiscoveryManager.d.ts +59 -0
- package/dist/DiscoveryManager.d.ts.map +1 -0
- package/dist/DiscoveryManager.js +249 -0
- package/dist/DiscoveryManager.js.map +1 -0
- package/dist/GraphInitializer.d.ts +44 -0
- package/dist/GraphInitializer.d.ts.map +1 -0
- package/dist/GraphInitializer.js +121 -0
- package/dist/GraphInitializer.js.map +1 -0
- package/dist/GuaranteeChecker.d.ts +35 -0
- package/dist/GuaranteeChecker.d.ts.map +1 -0
- package/dist/GuaranteeChecker.js +81 -0
- package/dist/GuaranteeChecker.js.map +1 -0
- package/dist/Orchestrator.d.ts +34 -151
- package/dist/Orchestrator.d.ts.map +1 -1
- package/dist/Orchestrator.js +173 -741
- package/dist/Orchestrator.js.map +1 -1
- package/dist/OrchestratorTypes.d.ts +115 -0
- package/dist/OrchestratorTypes.d.ts.map +1 -0
- package/dist/OrchestratorTypes.js +6 -0
- package/dist/OrchestratorTypes.js.map +1 -0
- package/dist/ParallelAnalysisRunner.d.ts +43 -0
- package/dist/ParallelAnalysisRunner.d.ts.map +1 -0
- package/dist/ParallelAnalysisRunner.js +161 -0
- package/dist/ParallelAnalysisRunner.js.map +1 -0
- package/dist/PhaseRunner.d.ts +94 -0
- package/dist/PhaseRunner.d.ts.map +1 -0
- package/dist/PhaseRunner.js +332 -0
- package/dist/PhaseRunner.js.map +1 -0
- package/dist/config/ConfigLoader.d.ts +51 -1
- package/dist/config/ConfigLoader.d.ts.map +1 -1
- package/dist/config/ConfigLoader.js +121 -1
- package/dist/config/ConfigLoader.js.map +1 -1
- package/dist/config/index.d.ts +1 -1
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/index.js +1 -1
- package/dist/config/index.js.map +1 -1
- package/dist/core/ASTWorker.d.ts +2 -0
- package/dist/core/ASTWorker.d.ts.map +1 -1
- package/dist/core/ASTWorker.js +6 -2
- package/dist/core/ASTWorker.js.map +1 -1
- package/dist/core/FileOverview.d.ts +124 -0
- package/dist/core/FileOverview.d.ts.map +1 -0
- package/dist/core/FileOverview.js +257 -0
- package/dist/core/FileOverview.js.map +1 -0
- package/dist/core/GraphFreshnessChecker.d.ts +1 -1
- package/dist/core/GraphFreshnessChecker.d.ts.map +1 -1
- package/dist/core/GraphFreshnessChecker.js +7 -5
- package/dist/core/GraphFreshnessChecker.js.map +1 -1
- package/dist/core/GuaranteeManager.d.ts +13 -0
- package/dist/core/GuaranteeManager.d.ts.map +1 -1
- package/dist/core/GuaranteeManager.js +63 -2
- package/dist/core/GuaranteeManager.js.map +1 -1
- package/dist/core/IncrementalReanalyzer.d.ts.map +1 -1
- package/dist/core/IncrementalReanalyzer.js +6 -3
- package/dist/core/IncrementalReanalyzer.js.map +1 -1
- package/dist/core/NodeFactory.d.ts +81 -415
- package/dist/core/NodeFactory.d.ts.map +1 -1
- package/dist/core/NodeFactory.js +139 -336
- package/dist/core/NodeFactory.js.map +1 -1
- package/dist/core/ResourceRegistry.d.ts +17 -0
- package/dist/core/ResourceRegistry.d.ts.map +1 -0
- package/dist/core/ResourceRegistry.js +32 -0
- package/dist/core/ResourceRegistry.js.map +1 -0
- package/dist/core/ScopeTracker.d.ts +12 -0
- package/dist/core/ScopeTracker.d.ts.map +1 -1
- package/dist/core/ScopeTracker.js +24 -0
- package/dist/core/ScopeTracker.js.map +1 -1
- package/dist/core/SemanticId.d.ts +69 -0
- package/dist/core/SemanticId.d.ts.map +1 -1
- package/dist/core/SemanticId.js +134 -0
- package/dist/core/SemanticId.js.map +1 -1
- package/dist/core/brandNodeInternal.d.ts +14 -0
- package/dist/core/brandNodeInternal.d.ts.map +1 -0
- package/dist/core/brandNodeInternal.js +4 -0
- package/dist/core/brandNodeInternal.js.map +1 -0
- package/dist/core/buildDependencyGraph.d.ts +36 -0
- package/dist/core/buildDependencyGraph.d.ts.map +1 -0
- package/dist/core/buildDependencyGraph.js +78 -0
- package/dist/core/buildDependencyGraph.js.map +1 -0
- package/dist/core/factories/CoreFactory.d.ts +223 -0
- package/dist/core/factories/CoreFactory.d.ts.map +1 -0
- package/dist/core/factories/CoreFactory.js +127 -0
- package/dist/core/factories/CoreFactory.js.map +1 -0
- package/dist/core/factories/DatabaseFactory.d.ts +29 -0
- package/dist/core/factories/DatabaseFactory.d.ts.map +1 -0
- package/dist/core/factories/DatabaseFactory.js +25 -0
- package/dist/core/factories/DatabaseFactory.js.map +1 -0
- package/dist/core/factories/ExternalFactory.d.ts +11 -0
- package/dist/core/factories/ExternalFactory.d.ts.map +1 -0
- package/dist/core/factories/ExternalFactory.js +16 -0
- package/dist/core/factories/ExternalFactory.js.map +1 -0
- package/dist/core/factories/HttpFactory.d.ts +22 -0
- package/dist/core/factories/HttpFactory.d.ts.map +1 -0
- package/dist/core/factories/HttpFactory.js +32 -0
- package/dist/core/factories/HttpFactory.js.map +1 -0
- package/dist/core/factories/ReactFactory.d.ts +14 -0
- package/dist/core/factories/ReactFactory.d.ts.map +1 -0
- package/dist/core/factories/ReactFactory.js +13 -0
- package/dist/core/factories/ReactFactory.js.map +1 -0
- package/dist/core/factories/RustFactory.d.ts +62 -0
- package/dist/core/factories/RustFactory.d.ts.map +1 -0
- package/dist/core/factories/RustFactory.js +32 -0
- package/dist/core/factories/RustFactory.js.map +1 -0
- package/dist/core/factories/ServiceFactory.d.ts +12 -0
- package/dist/core/factories/ServiceFactory.d.ts.map +1 -0
- package/dist/core/factories/ServiceFactory.js +22 -0
- package/dist/core/factories/ServiceFactory.js.map +1 -0
- package/dist/core/factories/SocketFactory.d.ts +31 -0
- package/dist/core/factories/SocketFactory.d.ts.map +1 -0
- package/dist/core/factories/SocketFactory.js +35 -0
- package/dist/core/factories/SocketFactory.js.map +1 -0
- package/dist/core/nodes/DatabaseNode.d.ts +85 -0
- package/dist/core/nodes/DatabaseNode.d.ts.map +1 -0
- package/dist/core/nodes/DatabaseNode.js +118 -0
- package/dist/core/nodes/DatabaseNode.js.map +1 -0
- package/dist/core/nodes/ExpressMiddlewareNode.d.ts +47 -0
- package/dist/core/nodes/ExpressMiddlewareNode.d.ts.map +1 -0
- package/dist/core/nodes/ExpressMiddlewareNode.js +63 -0
- package/dist/core/nodes/ExpressMiddlewareNode.js.map +1 -0
- package/dist/core/nodes/ExpressMountNode.d.ts +44 -0
- package/dist/core/nodes/ExpressMountNode.d.ts.map +1 -0
- package/dist/core/nodes/ExpressMountNode.js +61 -0
- package/dist/core/nodes/ExpressMountNode.js.map +1 -0
- package/dist/core/nodes/ExternalApiNode.d.ts +29 -0
- package/dist/core/nodes/ExternalApiNode.d.ts.map +1 -0
- package/dist/core/nodes/ExternalApiNode.js +41 -0
- package/dist/core/nodes/ExternalApiNode.js.map +1 -0
- package/dist/core/nodes/ExternalFunctionNode.d.ts +40 -0
- package/dist/core/nodes/ExternalFunctionNode.d.ts.map +1 -0
- package/dist/core/nodes/ExternalFunctionNode.js +54 -0
- package/dist/core/nodes/ExternalFunctionNode.js.map +1 -0
- package/dist/core/nodes/FetchRequestNode.d.ts +54 -0
- package/dist/core/nodes/FetchRequestNode.d.ts.map +1 -0
- package/dist/core/nodes/FetchRequestNode.js +67 -0
- package/dist/core/nodes/FetchRequestNode.js.map +1 -0
- package/dist/core/nodes/HttpRouteNode.d.ts +58 -0
- package/dist/core/nodes/HttpRouteNode.d.ts.map +1 -0
- package/dist/core/nodes/HttpRouteNode.js +72 -0
- package/dist/core/nodes/HttpRouteNode.js.map +1 -0
- package/dist/core/nodes/NodeKind.d.ts +1 -0
- package/dist/core/nodes/NodeKind.d.ts.map +1 -1
- package/dist/core/nodes/NodeKind.js +1 -0
- package/dist/core/nodes/NodeKind.js.map +1 -1
- package/dist/core/nodes/ReactNode.d.ts +53 -0
- package/dist/core/nodes/ReactNode.d.ts.map +1 -0
- package/dist/core/nodes/ReactNode.js +70 -0
- package/dist/core/nodes/ReactNode.js.map +1 -0
- package/dist/core/nodes/RustCallNode.d.ts +46 -0
- package/dist/core/nodes/RustCallNode.d.ts.map +1 -0
- package/dist/core/nodes/RustCallNode.js +62 -0
- package/dist/core/nodes/RustCallNode.js.map +1 -0
- package/dist/core/nodes/RustFunctionNode.d.ts +58 -0
- package/dist/core/nodes/RustFunctionNode.d.ts.map +1 -0
- package/dist/core/nodes/RustFunctionNode.js +67 -0
- package/dist/core/nodes/RustFunctionNode.js.map +1 -0
- package/dist/core/nodes/RustImplNode.d.ts +35 -0
- package/dist/core/nodes/RustImplNode.d.ts.map +1 -0
- package/dist/core/nodes/RustImplNode.js +55 -0
- package/dist/core/nodes/RustImplNode.js.map +1 -0
- package/dist/core/nodes/RustMethodNode.d.ts +64 -0
- package/dist/core/nodes/RustMethodNode.d.ts.map +1 -0
- package/dist/core/nodes/RustMethodNode.js +76 -0
- package/dist/core/nodes/RustMethodNode.js.map +1 -0
- package/dist/core/nodes/RustModuleNode.d.ts +40 -0
- package/dist/core/nodes/RustModuleNode.d.ts.map +1 -0
- package/dist/core/nodes/RustModuleNode.js +57 -0
- package/dist/core/nodes/RustModuleNode.js.map +1 -0
- package/dist/core/nodes/RustStructNode.d.ts +38 -0
- package/dist/core/nodes/RustStructNode.d.ts.map +1 -0
- package/dist/core/nodes/RustStructNode.js +54 -0
- package/dist/core/nodes/RustStructNode.js.map +1 -0
- package/dist/core/nodes/RustTraitNode.d.ts +40 -0
- package/dist/core/nodes/RustTraitNode.d.ts.map +1 -0
- package/dist/core/nodes/RustTraitNode.js +52 -0
- package/dist/core/nodes/RustTraitNode.js.map +1 -0
- package/dist/core/nodes/ServiceLayerNode.d.ts +85 -0
- package/dist/core/nodes/ServiceLayerNode.d.ts.map +1 -0
- package/dist/core/nodes/ServiceLayerNode.js +122 -0
- package/dist/core/nodes/ServiceLayerNode.js.map +1 -0
- package/dist/core/nodes/SocketIONode.d.ts +71 -0
- package/dist/core/nodes/SocketIONode.d.ts.map +1 -0
- package/dist/core/nodes/SocketIONode.js +111 -0
- package/dist/core/nodes/SocketIONode.js.map +1 -0
- package/dist/core/nodes/SocketNode.d.ts +87 -0
- package/dist/core/nodes/SocketNode.d.ts.map +1 -0
- package/dist/core/nodes/SocketNode.js +124 -0
- package/dist/core/nodes/SocketNode.js.map +1 -0
- package/dist/core/nodes/TypeNode.d.ts +26 -1
- package/dist/core/nodes/TypeNode.d.ts.map +1 -1
- package/dist/core/nodes/TypeNode.js +21 -3
- package/dist/core/nodes/TypeNode.js.map +1 -1
- package/dist/core/nodes/TypeParameterNode.d.ts +44 -0
- package/dist/core/nodes/TypeParameterNode.d.ts.map +1 -0
- package/dist/core/nodes/TypeParameterNode.js +64 -0
- package/dist/core/nodes/TypeParameterNode.js.map +1 -0
- package/dist/core/nodes/index.d.ts +19 -0
- package/dist/core/nodes/index.d.ts.map +1 -1
- package/dist/core/nodes/index.js +26 -0
- package/dist/core/nodes/index.js.map +1 -1
- package/dist/index.d.ts +33 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +30 -3
- package/dist/index.js.map +1 -1
- package/dist/plugins/InfraAnalyzer.d.ts +110 -0
- package/dist/plugins/InfraAnalyzer.d.ts.map +1 -0
- package/dist/plugins/InfraAnalyzer.js +170 -0
- package/dist/plugins/InfraAnalyzer.js.map +1 -0
- package/dist/plugins/analysis/DatabaseAnalyzer.d.ts.map +1 -1
- package/dist/plugins/analysis/DatabaseAnalyzer.js +18 -15
- package/dist/plugins/analysis/DatabaseAnalyzer.js.map +1 -1
- package/dist/plugins/analysis/ExpressAnalyzer.d.ts.map +1 -1
- package/dist/plugins/analysis/ExpressAnalyzer.js +27 -26
- package/dist/plugins/analysis/ExpressAnalyzer.js.map +1 -1
- package/dist/plugins/analysis/ExpressResponseAnalyzer.d.ts.map +1 -1
- package/dist/plugins/analysis/ExpressResponseAnalyzer.js +5 -3
- package/dist/plugins/analysis/ExpressResponseAnalyzer.js.map +1 -1
- package/dist/plugins/analysis/ExpressRouteAnalyzer.d.ts.map +1 -1
- package/dist/plugins/analysis/ExpressRouteAnalyzer.js +36 -39
- package/dist/plugins/analysis/ExpressRouteAnalyzer.js.map +1 -1
- package/dist/plugins/analysis/FetchAnalyzer.d.ts.map +1 -1
- package/dist/plugins/analysis/FetchAnalyzer.js +23 -39
- package/dist/plugins/analysis/FetchAnalyzer.js.map +1 -1
- package/dist/plugins/analysis/IncrementalAnalysisPlugin.d.ts.map +1 -1
- package/dist/plugins/analysis/IncrementalAnalysisPlugin.js +3 -2
- package/dist/plugins/analysis/IncrementalAnalysisPlugin.js.map +1 -1
- package/dist/plugins/analysis/JSASTAnalyzer.d.ts +23 -85
- package/dist/plugins/analysis/JSASTAnalyzer.d.ts.map +1 -1
- package/dist/plugins/analysis/JSASTAnalyzer.js +351 -1887
- package/dist/plugins/analysis/JSASTAnalyzer.js.map +1 -1
- package/dist/plugins/analysis/NestJSRouteAnalyzer.d.ts +28 -0
- package/dist/plugins/analysis/NestJSRouteAnalyzer.d.ts.map +1 -0
- package/dist/plugins/analysis/NestJSRouteAnalyzer.js +196 -0
- package/dist/plugins/analysis/NestJSRouteAnalyzer.js.map +1 -0
- package/dist/plugins/analysis/ReactAnalyzer.d.ts +1 -61
- package/dist/plugins/analysis/ReactAnalyzer.d.ts.map +1 -1
- package/dist/plugins/analysis/ReactAnalyzer.js +24 -915
- package/dist/plugins/analysis/ReactAnalyzer.js.map +1 -1
- package/dist/plugins/analysis/RustAnalyzer.d.ts.map +1 -1
- package/dist/plugins/analysis/RustAnalyzer.js +31 -66
- package/dist/plugins/analysis/RustAnalyzer.js.map +1 -1
- package/dist/plugins/analysis/SQLiteAnalyzer.d.ts.map +1 -1
- package/dist/plugins/analysis/SQLiteAnalyzer.js +13 -6
- package/dist/plugins/analysis/SQLiteAnalyzer.js.map +1 -1
- package/dist/plugins/analysis/ServiceLayerAnalyzer.d.ts.map +1 -1
- package/dist/plugins/analysis/ServiceLayerAnalyzer.js +10 -7
- package/dist/plugins/analysis/ServiceLayerAnalyzer.js.map +1 -1
- package/dist/plugins/analysis/SocketAnalyzer.d.ts +81 -0
- package/dist/plugins/analysis/SocketAnalyzer.d.ts.map +1 -0
- package/dist/plugins/analysis/SocketAnalyzer.js +475 -0
- package/dist/plugins/analysis/SocketAnalyzer.js.map +1 -0
- package/dist/plugins/analysis/SocketIOAnalyzer.d.ts.map +1 -1
- package/dist/plugins/analysis/SocketIOAnalyzer.js +13 -18
- package/dist/plugins/analysis/SocketIOAnalyzer.js.map +1 -1
- package/dist/plugins/analysis/SystemDbAnalyzer.d.ts.map +1 -1
- package/dist/plugins/analysis/SystemDbAnalyzer.js +8 -5
- package/dist/plugins/analysis/SystemDbAnalyzer.js.map +1 -1
- package/dist/plugins/analysis/ast/CollisionResolver.d.ts +65 -0
- package/dist/plugins/analysis/ast/CollisionResolver.d.ts.map +1 -0
- package/dist/plugins/analysis/ast/CollisionResolver.js +106 -0
- package/dist/plugins/analysis/ast/CollisionResolver.js.map +1 -0
- package/dist/plugins/analysis/ast/FunctionBodyContext.d.ts +124 -0
- package/dist/plugins/analysis/ast/FunctionBodyContext.d.ts.map +1 -0
- package/dist/plugins/analysis/ast/FunctionBodyContext.js +151 -0
- package/dist/plugins/analysis/ast/FunctionBodyContext.js.map +1 -0
- package/dist/plugins/analysis/ast/GraphBuilder.d.ts +26 -261
- package/dist/plugins/analysis/ast/GraphBuilder.d.ts.map +1 -1
- package/dist/plugins/analysis/ast/GraphBuilder.js +251 -2494
- package/dist/plugins/analysis/ast/GraphBuilder.js.map +1 -1
- package/dist/plugins/analysis/ast/IdGenerator.d.ts +42 -0
- package/dist/plugins/analysis/ast/IdGenerator.d.ts.map +1 -1
- package/dist/plugins/analysis/ast/IdGenerator.js +61 -1
- package/dist/plugins/analysis/ast/IdGenerator.js.map +1 -1
- package/dist/plugins/analysis/ast/builders/AssignmentBuilder.d.ts +15 -0
- package/dist/plugins/analysis/ast/builders/AssignmentBuilder.d.ts.map +1 -0
- package/dist/plugins/analysis/ast/builders/AssignmentBuilder.js +274 -0
- package/dist/plugins/analysis/ast/builders/AssignmentBuilder.js.map +1 -0
- package/dist/plugins/analysis/ast/builders/CallFlowBuilder.d.ts +22 -0
- package/dist/plugins/analysis/ast/builders/CallFlowBuilder.d.ts.map +1 -0
- package/dist/plugins/analysis/ast/builders/CallFlowBuilder.js +178 -0
- package/dist/plugins/analysis/ast/builders/CallFlowBuilder.js.map +1 -0
- package/dist/plugins/analysis/ast/builders/ControlFlowBuilder.d.ts +76 -0
- package/dist/plugins/analysis/ast/builders/ControlFlowBuilder.d.ts.map +1 -0
- package/dist/plugins/analysis/ast/builders/ControlFlowBuilder.js +387 -0
- package/dist/plugins/analysis/ast/builders/ControlFlowBuilder.js.map +1 -0
- package/dist/plugins/analysis/ast/builders/CoreBuilder.d.ts +38 -0
- package/dist/plugins/analysis/ast/builders/CoreBuilder.d.ts.map +1 -0
- package/dist/plugins/analysis/ast/builders/CoreBuilder.js +240 -0
- package/dist/plugins/analysis/ast/builders/CoreBuilder.js.map +1 -0
- package/dist/plugins/analysis/ast/builders/ModuleRuntimeBuilder.d.ts +53 -0
- package/dist/plugins/analysis/ast/builders/ModuleRuntimeBuilder.d.ts.map +1 -0
- package/dist/plugins/analysis/ast/builders/ModuleRuntimeBuilder.js +355 -0
- package/dist/plugins/analysis/ast/builders/ModuleRuntimeBuilder.js.map +1 -0
- package/dist/plugins/analysis/ast/builders/MutationBuilder.d.ts +46 -0
- package/dist/plugins/analysis/ast/builders/MutationBuilder.d.ts.map +1 -0
- package/dist/plugins/analysis/ast/builders/MutationBuilder.js +264 -0
- package/dist/plugins/analysis/ast/builders/MutationBuilder.js.map +1 -0
- package/dist/plugins/analysis/ast/builders/ReturnBuilder.d.ts +23 -0
- package/dist/plugins/analysis/ast/builders/ReturnBuilder.d.ts.map +1 -0
- package/dist/plugins/analysis/ast/builders/ReturnBuilder.js +206 -0
- package/dist/plugins/analysis/ast/builders/ReturnBuilder.js.map +1 -0
- package/dist/plugins/analysis/ast/builders/TypeSystemBuilder.d.ts +64 -0
- package/dist/plugins/analysis/ast/builders/TypeSystemBuilder.d.ts.map +1 -0
- package/dist/plugins/analysis/ast/builders/TypeSystemBuilder.js +370 -0
- package/dist/plugins/analysis/ast/builders/TypeSystemBuilder.js.map +1 -0
- package/dist/plugins/analysis/ast/builders/UpdateExpressionBuilder.d.ts +46 -0
- package/dist/plugins/analysis/ast/builders/UpdateExpressionBuilder.d.ts.map +1 -0
- package/dist/plugins/analysis/ast/builders/UpdateExpressionBuilder.js +191 -0
- package/dist/plugins/analysis/ast/builders/UpdateExpressionBuilder.js.map +1 -0
- package/dist/plugins/analysis/ast/builders/YieldBuilder.d.ts +30 -0
- package/dist/plugins/analysis/ast/builders/YieldBuilder.d.ts.map +1 -0
- package/dist/plugins/analysis/ast/builders/YieldBuilder.js +214 -0
- package/dist/plugins/analysis/ast/builders/YieldBuilder.js.map +1 -0
- package/dist/plugins/analysis/ast/builders/index.d.ts +12 -0
- package/dist/plugins/analysis/ast/builders/index.d.ts.map +1 -0
- package/dist/plugins/analysis/ast/builders/index.js +11 -0
- package/dist/plugins/analysis/ast/builders/index.js.map +1 -0
- package/dist/plugins/analysis/ast/builders/types.d.ts +30 -0
- package/dist/plugins/analysis/ast/builders/types.d.ts.map +1 -0
- package/dist/plugins/analysis/ast/builders/types.js +8 -0
- package/dist/plugins/analysis/ast/builders/types.js.map +1 -0
- package/dist/plugins/analysis/ast/handlers/AnalyzerDelegate.d.ts +50 -0
- package/dist/plugins/analysis/ast/handlers/AnalyzerDelegate.d.ts.map +1 -0
- package/dist/plugins/analysis/ast/handlers/AnalyzerDelegate.js +2 -0
- package/dist/plugins/analysis/ast/handlers/AnalyzerDelegate.js.map +1 -0
- package/dist/plugins/analysis/ast/handlers/BranchHandler.d.ts +18 -0
- package/dist/plugins/analysis/ast/handlers/BranchHandler.d.ts.map +1 -0
- package/dist/plugins/analysis/ast/handlers/BranchHandler.js +244 -0
- package/dist/plugins/analysis/ast/handlers/BranchHandler.js.map +1 -0
- package/dist/plugins/analysis/ast/handlers/CallExpressionHandler.d.ts +7 -0
- package/dist/plugins/analysis/ast/handlers/CallExpressionHandler.d.ts.map +1 -0
- package/dist/plugins/analysis/ast/handlers/CallExpressionHandler.js +295 -0
- package/dist/plugins/analysis/ast/handlers/CallExpressionHandler.js.map +1 -0
- package/dist/plugins/analysis/ast/handlers/FunctionBodyHandler.d.ts +22 -0
- package/dist/plugins/analysis/ast/handlers/FunctionBodyHandler.d.ts.map +1 -0
- package/dist/plugins/analysis/ast/handlers/FunctionBodyHandler.js +9 -0
- package/dist/plugins/analysis/ast/handlers/FunctionBodyHandler.js.map +1 -0
- package/dist/plugins/analysis/ast/handlers/LoopHandler.d.ts +13 -0
- package/dist/plugins/analysis/ast/handlers/LoopHandler.d.ts.map +1 -0
- package/dist/plugins/analysis/ast/handlers/LoopHandler.js +207 -0
- package/dist/plugins/analysis/ast/handlers/LoopHandler.js.map +1 -0
- package/dist/plugins/analysis/ast/handlers/NestedFunctionHandler.d.ts +13 -0
- package/dist/plugins/analysis/ast/handlers/NestedFunctionHandler.d.ts.map +1 -0
- package/dist/plugins/analysis/ast/handlers/NestedFunctionHandler.js +174 -0
- package/dist/plugins/analysis/ast/handlers/NestedFunctionHandler.js.map +1 -0
- package/dist/plugins/analysis/ast/handlers/NewExpressionHandler.d.ts +12 -0
- package/dist/plugins/analysis/ast/handlers/NewExpressionHandler.d.ts.map +1 -0
- package/dist/plugins/analysis/ast/handlers/NewExpressionHandler.js +135 -0
- package/dist/plugins/analysis/ast/handlers/NewExpressionHandler.js.map +1 -0
- package/dist/plugins/analysis/ast/handlers/PropertyAccessHandler.d.ts +13 -0
- package/dist/plugins/analysis/ast/handlers/PropertyAccessHandler.d.ts.map +1 -0
- package/dist/plugins/analysis/ast/handlers/PropertyAccessHandler.js +71 -0
- package/dist/plugins/analysis/ast/handlers/PropertyAccessHandler.js.map +1 -0
- package/dist/plugins/analysis/ast/handlers/ReturnYieldHandler.d.ts +12 -0
- package/dist/plugins/analysis/ast/handlers/ReturnYieldHandler.d.ts.map +1 -0
- package/dist/plugins/analysis/ast/handlers/ReturnYieldHandler.js +135 -0
- package/dist/plugins/analysis/ast/handlers/ReturnYieldHandler.js.map +1 -0
- package/dist/plugins/analysis/ast/handlers/ThrowHandler.d.ts +12 -0
- package/dist/plugins/analysis/ast/handlers/ThrowHandler.d.ts.map +1 -0
- package/dist/plugins/analysis/ast/handlers/ThrowHandler.js +82 -0
- package/dist/plugins/analysis/ast/handlers/ThrowHandler.js.map +1 -0
- package/dist/plugins/analysis/ast/handlers/TryCatchHandler.d.ts +14 -0
- package/dist/plugins/analysis/ast/handlers/TryCatchHandler.d.ts.map +1 -0
- package/dist/plugins/analysis/ast/handlers/TryCatchHandler.js +220 -0
- package/dist/plugins/analysis/ast/handlers/TryCatchHandler.js.map +1 -0
- package/dist/plugins/analysis/ast/handlers/VariableHandler.d.ts +12 -0
- package/dist/plugins/analysis/ast/handlers/VariableHandler.d.ts.map +1 -0
- package/dist/plugins/analysis/ast/handlers/VariableHandler.js +57 -0
- package/dist/plugins/analysis/ast/handlers/VariableHandler.js.map +1 -0
- package/dist/plugins/analysis/ast/handlers/index.d.ts +13 -0
- package/dist/plugins/analysis/ast/handlers/index.d.ts.map +1 -0
- package/dist/plugins/analysis/ast/handlers/index.js +12 -0
- package/dist/plugins/analysis/ast/handlers/index.js.map +1 -0
- package/dist/plugins/analysis/ast/types.d.ts +57 -6
- package/dist/plugins/analysis/ast/types.d.ts.map +1 -1
- package/dist/plugins/analysis/ast/utils/createParameterNodes.d.ts +5 -4
- package/dist/plugins/analysis/ast/utils/createParameterNodes.d.ts.map +1 -1
- package/dist/plugins/analysis/ast/utils/createParameterNodes.js +94 -13
- package/dist/plugins/analysis/ast/utils/createParameterNodes.js.map +1 -1
- package/dist/plugins/analysis/ast/utils/extractNamesFromPattern.d.ts +81 -0
- package/dist/plugins/analysis/ast/utils/extractNamesFromPattern.d.ts.map +1 -0
- package/dist/plugins/analysis/ast/utils/extractNamesFromPattern.js +140 -0
- package/dist/plugins/analysis/ast/utils/extractNamesFromPattern.js.map +1 -0
- package/dist/plugins/analysis/ast/utils/getExpressionValue.d.ts +22 -0
- package/dist/plugins/analysis/ast/utils/getExpressionValue.d.ts.map +1 -0
- package/dist/plugins/analysis/ast/utils/getExpressionValue.js +35 -0
- package/dist/plugins/analysis/ast/utils/getExpressionValue.js.map +1 -0
- package/dist/plugins/analysis/ast/utils/getMemberExpressionName.d.ts +25 -0
- package/dist/plugins/analysis/ast/utils/getMemberExpressionName.d.ts.map +1 -0
- package/dist/plugins/analysis/ast/utils/getMemberExpressionName.js +21 -0
- package/dist/plugins/analysis/ast/utils/getMemberExpressionName.js.map +1 -0
- package/dist/plugins/analysis/ast/utils/index.d.ts +2 -0
- package/dist/plugins/analysis/ast/utils/index.d.ts.map +1 -1
- package/dist/plugins/analysis/ast/utils/index.js +2 -0
- package/dist/plugins/analysis/ast/utils/index.js.map +1 -1
- package/dist/plugins/analysis/ast/visitors/ArgumentExtractor.d.ts +23 -0
- package/dist/plugins/analysis/ast/visitors/ArgumentExtractor.d.ts.map +1 -0
- package/dist/plugins/analysis/ast/visitors/ArgumentExtractor.js +241 -0
- package/dist/plugins/analysis/ast/visitors/ArgumentExtractor.js.map +1 -0
- package/dist/plugins/analysis/ast/visitors/ArrayElementExtractor.d.ts +20 -0
- package/dist/plugins/analysis/ast/visitors/ArrayElementExtractor.d.ts.map +1 -0
- package/dist/plugins/analysis/ast/visitors/ArrayElementExtractor.js +110 -0
- package/dist/plugins/analysis/ast/visitors/ArrayElementExtractor.js.map +1 -0
- package/dist/plugins/analysis/ast/visitors/CallExpressionVisitor.d.ts +15 -142
- package/dist/plugins/analysis/ast/visitors/CallExpressionVisitor.d.ts.map +1 -1
- package/dist/plugins/analysis/ast/visitors/CallExpressionVisitor.js +304 -937
- package/dist/plugins/analysis/ast/visitors/CallExpressionVisitor.js.map +1 -1
- package/dist/plugins/analysis/ast/visitors/ClassVisitor.d.ts.map +1 -1
- package/dist/plugins/analysis/ast/visitors/ClassVisitor.js +26 -11
- package/dist/plugins/analysis/ast/visitors/ClassVisitor.js.map +1 -1
- package/dist/plugins/analysis/ast/visitors/FunctionVisitor.d.ts.map +1 -1
- package/dist/plugins/analysis/ast/visitors/FunctionVisitor.js +21 -6
- package/dist/plugins/analysis/ast/visitors/FunctionVisitor.js.map +1 -1
- package/dist/plugins/analysis/ast/visitors/MutationDetector.d.ts +25 -0
- package/dist/plugins/analysis/ast/visitors/MutationDetector.d.ts.map +1 -0
- package/dist/plugins/analysis/ast/visitors/MutationDetector.js +181 -0
- package/dist/plugins/analysis/ast/visitors/MutationDetector.js.map +1 -0
- package/dist/plugins/analysis/ast/visitors/ObjectPropertyExtractor.d.ts +20 -0
- package/dist/plugins/analysis/ast/visitors/ObjectPropertyExtractor.d.ts.map +1 -0
- package/dist/plugins/analysis/ast/visitors/ObjectPropertyExtractor.js +155 -0
- package/dist/plugins/analysis/ast/visitors/ObjectPropertyExtractor.js.map +1 -0
- package/dist/plugins/analysis/ast/visitors/PropertyAccessVisitor.d.ts +9 -1
- package/dist/plugins/analysis/ast/visitors/PropertyAccessVisitor.d.ts.map +1 -1
- package/dist/plugins/analysis/ast/visitors/PropertyAccessVisitor.js +51 -3
- package/dist/plugins/analysis/ast/visitors/PropertyAccessVisitor.js.map +1 -1
- package/dist/plugins/analysis/ast/visitors/TypeScriptVisitor.d.ts +20 -0
- package/dist/plugins/analysis/ast/visitors/TypeScriptVisitor.d.ts.map +1 -1
- package/dist/plugins/analysis/ast/visitors/TypeScriptVisitor.js +188 -12
- package/dist/plugins/analysis/ast/visitors/TypeScriptVisitor.js.map +1 -1
- package/dist/plugins/analysis/ast/visitors/VariableVisitor.d.ts.map +1 -1
- package/dist/plugins/analysis/ast/visitors/VariableVisitor.js +6 -4
- package/dist/plugins/analysis/ast/visitors/VariableVisitor.js.map +1 -1
- package/dist/plugins/analysis/ast/visitors/call-expression-helpers.d.ts +19 -0
- package/dist/plugins/analysis/ast/visitors/call-expression-helpers.d.ts.map +1 -0
- package/dist/plugins/analysis/ast/visitors/call-expression-helpers.js +57 -0
- package/dist/plugins/analysis/ast/visitors/call-expression-helpers.js.map +1 -0
- package/dist/plugins/analysis/ast/visitors/call-expression-types.d.ts +168 -0
- package/dist/plugins/analysis/ast/visitors/call-expression-types.d.ts.map +1 -0
- package/dist/plugins/analysis/ast/visitors/call-expression-types.js +7 -0
- package/dist/plugins/analysis/ast/visitors/call-expression-types.js.map +1 -0
- package/dist/plugins/analysis/react-internal/browser-api.d.ts +20 -0
- package/dist/plugins/analysis/react-internal/browser-api.d.ts.map +1 -0
- package/dist/plugins/analysis/react-internal/browser-api.js +140 -0
- package/dist/plugins/analysis/react-internal/browser-api.js.map +1 -0
- package/dist/plugins/analysis/react-internal/hooks.d.ts +31 -0
- package/dist/plugins/analysis/react-internal/hooks.d.ts.map +1 -0
- package/dist/plugins/analysis/react-internal/hooks.js +465 -0
- package/dist/plugins/analysis/react-internal/hooks.js.map +1 -0
- package/dist/plugins/analysis/react-internal/jsx.d.ts +43 -0
- package/dist/plugins/analysis/react-internal/jsx.d.ts.map +1 -0
- package/dist/plugins/analysis/react-internal/jsx.js +231 -0
- package/dist/plugins/analysis/react-internal/jsx.js.map +1 -0
- package/dist/plugins/analysis/react-internal/types.d.ts +116 -0
- package/dist/plugins/analysis/react-internal/types.d.ts.map +1 -0
- package/dist/plugins/analysis/react-internal/types.js +83 -0
- package/dist/plugins/analysis/react-internal/types.js.map +1 -0
- package/dist/plugins/discovery/MonorepoServiceDiscovery.d.ts.map +1 -1
- package/dist/plugins/discovery/MonorepoServiceDiscovery.js +6 -13
- package/dist/plugins/discovery/MonorepoServiceDiscovery.js.map +1 -1
- package/dist/plugins/enrichment/AliasTracker.d.ts.map +1 -1
- package/dist/plugins/enrichment/AliasTracker.js +3 -1
- package/dist/plugins/enrichment/AliasTracker.js.map +1 -1
- package/dist/plugins/enrichment/ArgumentParameterLinker.d.ts.map +1 -1
- package/dist/plugins/enrichment/ArgumentParameterLinker.js +3 -1
- package/dist/plugins/enrichment/ArgumentParameterLinker.js.map +1 -1
- package/dist/plugins/enrichment/CallbackCallResolver.d.ts +42 -0
- package/dist/plugins/enrichment/CallbackCallResolver.d.ts.map +1 -0
- package/dist/plugins/enrichment/CallbackCallResolver.js +311 -0
- package/dist/plugins/enrichment/CallbackCallResolver.js.map +1 -0
- package/dist/plugins/enrichment/ClosureCaptureEnricher.d.ts.map +1 -1
- package/dist/plugins/enrichment/ClosureCaptureEnricher.js +3 -1
- package/dist/plugins/enrichment/ClosureCaptureEnricher.js.map +1 -1
- package/dist/plugins/enrichment/ConfigRoutingMapBuilder.d.ts +17 -0
- package/dist/plugins/enrichment/ConfigRoutingMapBuilder.d.ts.map +1 -0
- package/dist/plugins/enrichment/ConfigRoutingMapBuilder.js +55 -0
- package/dist/plugins/enrichment/ConfigRoutingMapBuilder.js.map +1 -0
- package/dist/plugins/enrichment/ExpressHandlerLinker.d.ts.map +1 -1
- package/dist/plugins/enrichment/ExpressHandlerLinker.js +3 -1
- package/dist/plugins/enrichment/ExpressHandlerLinker.js.map +1 -1
- package/dist/plugins/enrichment/ExternalCallResolver.d.ts.map +1 -1
- package/dist/plugins/enrichment/ExternalCallResolver.js +5 -8
- package/dist/plugins/enrichment/ExternalCallResolver.js.map +1 -1
- package/dist/plugins/enrichment/FunctionCallResolver.d.ts.map +1 -1
- package/dist/plugins/enrichment/FunctionCallResolver.js +6 -9
- package/dist/plugins/enrichment/FunctionCallResolver.js.map +1 -1
- package/dist/plugins/enrichment/HTTPConnectionEnricher.d.ts.map +1 -1
- package/dist/plugins/enrichment/HTTPConnectionEnricher.js +3 -1
- package/dist/plugins/enrichment/HTTPConnectionEnricher.js.map +1 -1
- package/dist/plugins/enrichment/ImportExportLinker.d.ts.map +1 -1
- package/dist/plugins/enrichment/ImportExportLinker.js +5 -3
- package/dist/plugins/enrichment/ImportExportLinker.js.map +1 -1
- package/dist/plugins/enrichment/InstanceOfResolver.d.ts.map +1 -1
- package/dist/plugins/enrichment/InstanceOfResolver.js +3 -1
- package/dist/plugins/enrichment/InstanceOfResolver.js.map +1 -1
- package/dist/plugins/enrichment/MethodCallResolver.d.ts +17 -68
- package/dist/plugins/enrichment/MethodCallResolver.d.ts.map +1 -1
- package/dist/plugins/enrichment/MethodCallResolver.js +42 -517
- package/dist/plugins/enrichment/MethodCallResolver.js.map +1 -1
- package/dist/plugins/enrichment/MountPointResolver.d.ts.map +1 -1
- package/dist/plugins/enrichment/MountPointResolver.js +9 -2
- package/dist/plugins/enrichment/MountPointResolver.js.map +1 -1
- package/dist/plugins/enrichment/NodejsBuiltinsResolver.d.ts.map +1 -1
- package/dist/plugins/enrichment/NodejsBuiltinsResolver.js +7 -16
- package/dist/plugins/enrichment/NodejsBuiltinsResolver.js.map +1 -1
- package/dist/plugins/enrichment/PrefixEvaluator.d.ts.map +1 -1
- package/dist/plugins/enrichment/PrefixEvaluator.js +6 -2
- package/dist/plugins/enrichment/PrefixEvaluator.js.map +1 -1
- package/dist/plugins/enrichment/RejectionPropagationEnricher.d.ts.map +1 -1
- package/dist/plugins/enrichment/RejectionPropagationEnricher.js +3 -1
- package/dist/plugins/enrichment/RejectionPropagationEnricher.js.map +1 -1
- package/dist/plugins/enrichment/RustFFIEnricher.d.ts.map +1 -1
- package/dist/plugins/enrichment/RustFFIEnricher.js +3 -1
- package/dist/plugins/enrichment/RustFFIEnricher.js.map +1 -1
- package/dist/plugins/enrichment/ServiceConnectionEnricher.d.ts +76 -0
- package/dist/plugins/enrichment/ServiceConnectionEnricher.d.ts.map +1 -0
- package/dist/plugins/enrichment/ServiceConnectionEnricher.js +355 -0
- package/dist/plugins/enrichment/ServiceConnectionEnricher.js.map +1 -0
- package/dist/plugins/enrichment/SocketConnectionEnricher.d.ts +42 -0
- package/dist/plugins/enrichment/SocketConnectionEnricher.d.ts.map +1 -0
- package/dist/plugins/enrichment/SocketConnectionEnricher.js +166 -0
- package/dist/plugins/enrichment/SocketConnectionEnricher.js.map +1 -0
- package/dist/plugins/enrichment/ValueDomainAnalyzer.d.ts.map +1 -1
- package/dist/plugins/enrichment/ValueDomainAnalyzer.js +3 -1
- package/dist/plugins/enrichment/ValueDomainAnalyzer.js.map +1 -1
- package/dist/plugins/enrichment/method-call/MethodCallData.d.ts +68 -0
- package/dist/plugins/enrichment/method-call/MethodCallData.d.ts.map +1 -0
- package/dist/plugins/enrichment/method-call/MethodCallData.js +227 -0
- package/dist/plugins/enrichment/method-call/MethodCallData.js.map +1 -0
- package/dist/plugins/enrichment/method-call/MethodCallDetectors.d.ts +21 -0
- package/dist/plugins/enrichment/method-call/MethodCallDetectors.d.ts.map +1 -0
- package/dist/plugins/enrichment/method-call/MethodCallDetectors.js +52 -0
- package/dist/plugins/enrichment/method-call/MethodCallDetectors.js.map +1 -0
- package/dist/plugins/enrichment/method-call/MethodCallErrorAnalysis.d.ts +22 -0
- package/dist/plugins/enrichment/method-call/MethodCallErrorAnalysis.d.ts.map +1 -0
- package/dist/plugins/enrichment/method-call/MethodCallErrorAnalysis.js +105 -0
- package/dist/plugins/enrichment/method-call/MethodCallErrorAnalysis.js.map +1 -0
- package/dist/plugins/enrichment/method-call/MethodCallIndexers.d.ts +19 -0
- package/dist/plugins/enrichment/method-call/MethodCallIndexers.d.ts.map +1 -0
- package/dist/plugins/enrichment/method-call/MethodCallIndexers.js +63 -0
- package/dist/plugins/enrichment/method-call/MethodCallIndexers.js.map +1 -0
- package/dist/plugins/enrichment/method-call/MethodCallResolution.d.ts +30 -0
- package/dist/plugins/enrichment/method-call/MethodCallResolution.d.ts.map +1 -0
- package/dist/plugins/enrichment/method-call/MethodCallResolution.js +138 -0
- package/dist/plugins/enrichment/method-call/MethodCallResolution.js.map +1 -0
- package/dist/plugins/indexing/IncrementalModuleIndexer.d.ts.map +1 -1
- package/dist/plugins/indexing/IncrementalModuleIndexer.js +2 -8
- package/dist/plugins/indexing/IncrementalModuleIndexer.js.map +1 -1
- package/dist/plugins/indexing/JSModuleIndexer.d.ts.map +1 -1
- package/dist/plugins/indexing/JSModuleIndexer.js +13 -20
- package/dist/plugins/indexing/JSModuleIndexer.js.map +1 -1
- package/dist/plugins/indexing/RustModuleIndexer.d.ts.map +1 -1
- package/dist/plugins/indexing/RustModuleIndexer.js +4 -8
- package/dist/plugins/indexing/RustModuleIndexer.js.map +1 -1
- package/dist/plugins/validation/AwaitInLoopValidator.d.ts +24 -0
- package/dist/plugins/validation/AwaitInLoopValidator.d.ts.map +1 -0
- package/dist/plugins/validation/AwaitInLoopValidator.js +69 -0
- package/dist/plugins/validation/AwaitInLoopValidator.js.map +1 -0
- package/dist/plugins/validation/PackageCoverageValidator.d.ts +33 -0
- package/dist/plugins/validation/PackageCoverageValidator.d.ts.map +1 -0
- package/dist/plugins/validation/PackageCoverageValidator.js +149 -0
- package/dist/plugins/validation/PackageCoverageValidator.js.map +1 -0
- package/dist/plugins/validation/UnconnectedRouteValidator.d.ts +18 -0
- package/dist/plugins/validation/UnconnectedRouteValidator.d.ts.map +1 -0
- package/dist/plugins/validation/UnconnectedRouteValidator.js +68 -0
- package/dist/plugins/validation/UnconnectedRouteValidator.js.map +1 -0
- package/dist/queries/NodeContext.d.ts +81 -0
- package/dist/queries/NodeContext.d.ts.map +1 -0
- package/dist/queries/NodeContext.js +193 -0
- package/dist/queries/NodeContext.js.map +1 -0
- package/dist/queries/findCallsInFunction.d.ts.map +1 -1
- package/dist/queries/findCallsInFunction.js +10 -2
- package/dist/queries/findCallsInFunction.js.map +1 -1
- package/dist/queries/findContainingFunction.d.ts +3 -2
- package/dist/queries/findContainingFunction.d.ts.map +1 -1
- package/dist/queries/findContainingFunction.js +13 -3
- package/dist/queries/findContainingFunction.js.map +1 -1
- package/dist/queries/index.d.ts +2 -0
- package/dist/queries/index.d.ts.map +1 -1
- package/dist/queries/index.js +1 -0
- package/dist/queries/index.js.map +1 -1
- package/dist/resources/InfraResourceMapImpl.d.ts +31 -0
- package/dist/resources/InfraResourceMapImpl.d.ts.map +1 -0
- package/dist/resources/InfraResourceMapImpl.js +110 -0
- package/dist/resources/InfraResourceMapImpl.js.map +1 -0
- package/dist/resources/RoutingMapImpl.d.ts +33 -0
- package/dist/resources/RoutingMapImpl.d.ts.map +1 -0
- package/dist/resources/RoutingMapImpl.js +115 -0
- package/dist/resources/RoutingMapImpl.js.map +1 -0
- package/dist/storage/backends/RFDBServerBackend.d.ts +35 -6
- package/dist/storage/backends/RFDBServerBackend.d.ts.map +1 -1
- package/dist/storage/backends/RFDBServerBackend.js +102 -70
- package/dist/storage/backends/RFDBServerBackend.js.map +1 -1
- package/dist/utils/findRfdbBinary.d.ts +3 -2
- package/dist/utils/findRfdbBinary.d.ts.map +1 -1
- package/dist/utils/findRfdbBinary.js +22 -7
- package/dist/utils/findRfdbBinary.js.map +1 -1
- package/dist/utils/moduleResolution.d.ts.map +1 -1
- package/dist/utils/moduleResolution.js +26 -1
- package/dist/utils/moduleResolution.js.map +1 -1
- package/dist/utils/resolveNodeFile.d.ts +13 -0
- package/dist/utils/resolveNodeFile.d.ts.map +1 -0
- package/dist/utils/resolveNodeFile.js +18 -0
- package/dist/utils/resolveNodeFile.js.map +1 -0
- package/dist/version.d.ts +11 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +26 -0
- package/dist/version.js.map +1 -0
- package/package.json +3 -3
- package/src/DiscoveryManager.ts +279 -0
- package/src/GraphInitializer.ts +131 -0
- package/src/GuaranteeChecker.ts +90 -0
- package/src/Orchestrator.ts +222 -963
- package/src/OrchestratorTypes.ts +122 -0
- package/src/ParallelAnalysisRunner.ts +188 -0
- package/src/PhaseRunner.ts +450 -0
- package/src/config/ConfigLoader.ts +176 -2
- package/src/config/index.ts +2 -0
- package/src/core/ASTWorker.ts +9 -2
- package/src/core/FileOverview.ts +374 -0
- package/src/core/GraphFreshnessChecker.ts +7 -5
- package/src/core/GuaranteeManager.ts +70 -2
- package/src/core/IncrementalReanalyzer.ts +6 -3
- package/src/core/NodeFactory.ts +173 -652
- package/src/core/ResourceRegistry.ts +39 -0
- package/src/core/ScopeTracker.ts +23 -0
- package/src/core/SemanticId.ts +183 -0
- package/src/core/brandNodeInternal.ts +16 -0
- package/src/core/buildDependencyGraph.ts +98 -0
- package/src/core/factories/CoreFactory.ts +489 -0
- package/src/core/factories/DatabaseFactory.ts +63 -0
- package/src/core/factories/ExternalFactory.ts +23 -0
- package/src/core/factories/HttpFactory.ts +57 -0
- package/src/core/factories/ReactFactory.ts +15 -0
- package/src/core/factories/RustFactory.ts +128 -0
- package/src/core/factories/ServiceFactory.ts +27 -0
- package/src/core/factories/SocketFactory.ts +94 -0
- package/src/core/nodes/DatabaseNode.ts +175 -0
- package/src/core/nodes/ExpressMiddlewareNode.ts +98 -0
- package/src/core/nodes/ExpressMountNode.ts +94 -0
- package/src/core/nodes/ExternalApiNode.ts +53 -0
- package/src/core/nodes/ExternalFunctionNode.ts +77 -0
- package/src/core/nodes/FetchRequestNode.ts +105 -0
- package/src/core/nodes/HttpRouteNode.ts +113 -0
- package/src/core/nodes/NodeKind.ts +1 -0
- package/src/core/nodes/ReactNode.ts +78 -0
- package/src/core/nodes/RustCallNode.ts +96 -0
- package/src/core/nodes/RustFunctionNode.ts +112 -0
- package/src/core/nodes/RustImplNode.ts +78 -0
- package/src/core/nodes/RustMethodNode.ts +125 -0
- package/src/core/nodes/RustModuleNode.ts +84 -0
- package/src/core/nodes/RustStructNode.ts +80 -0
- package/src/core/nodes/RustTraitNode.ts +82 -0
- package/src/core/nodes/ServiceLayerNode.ts +183 -0
- package/src/core/nodes/SocketIONode.ts +177 -0
- package/src/core/nodes/SocketNode.ts +206 -0
- package/src/core/nodes/TypeNode.ts +46 -3
- package/src/core/nodes/TypeParameterNode.ts +91 -0
- package/src/core/nodes/index.ts +57 -0
- package/src/index.ts +60 -4
- package/src/plugins/InfraAnalyzer.ts +208 -0
- package/src/plugins/analysis/DatabaseAnalyzer.ts +27 -17
- package/src/plugins/analysis/ExpressAnalyzer.ts +51 -38
- package/src/plugins/analysis/ExpressResponseAnalyzer.ts +15 -12
- package/src/plugins/analysis/ExpressRouteAnalyzer.ts +56 -56
- package/src/plugins/analysis/FetchAnalyzer.ts +42 -52
- package/src/plugins/analysis/IncrementalAnalysisPlugin.ts +3 -2
- package/src/plugins/analysis/JSASTAnalyzer.ts +391 -2304
- package/src/plugins/analysis/NestJSRouteAnalyzer.ts +241 -0
- package/src/plugins/analysis/ReactAnalyzer.ts +33 -1085
- package/src/plugins/analysis/RustAnalyzer.ts +112 -116
- package/src/plugins/analysis/SQLiteAnalyzer.ts +23 -9
- package/src/plugins/analysis/ServiceLayerAnalyzer.ts +32 -10
- package/src/plugins/analysis/SocketAnalyzer.ts +601 -0
- package/src/plugins/analysis/SocketIOAnalyzer.ts +25 -34
- package/src/plugins/analysis/SystemDbAnalyzer.ts +15 -12
- package/src/plugins/analysis/ast/CollisionResolver.ts +137 -0
- package/src/plugins/analysis/ast/FunctionBodyContext.ts +291 -0
- package/src/plugins/analysis/ast/GraphBuilder.ts +274 -3180
- package/src/plugins/analysis/ast/IdGenerator.ts +81 -1
- package/src/plugins/analysis/ast/builders/AssignmentBuilder.ts +407 -0
- package/src/plugins/analysis/ast/builders/CallFlowBuilder.ts +255 -0
- package/src/plugins/analysis/ast/builders/ControlFlowBuilder.ts +470 -0
- package/src/plugins/analysis/ast/builders/CoreBuilder.ts +306 -0
- package/src/plugins/analysis/ast/builders/ModuleRuntimeBuilder.ts +452 -0
- package/src/plugins/analysis/ast/builders/MutationBuilder.ts +372 -0
- package/src/plugins/analysis/ast/builders/ReturnBuilder.ts +279 -0
- package/src/plugins/analysis/ast/builders/TypeSystemBuilder.ts +475 -0
- package/src/plugins/analysis/ast/builders/UpdateExpressionBuilder.ts +262 -0
- package/src/plugins/analysis/ast/builders/YieldBuilder.ts +287 -0
- package/src/plugins/analysis/ast/builders/index.ts +11 -0
- package/src/plugins/analysis/ast/builders/types.ts +65 -0
- package/src/plugins/analysis/ast/handlers/AnalyzerDelegate.ts +183 -0
- package/src/plugins/analysis/ast/handlers/BranchHandler.ts +313 -0
- package/src/plugins/analysis/ast/handlers/CallExpressionHandler.ts +347 -0
- package/src/plugins/analysis/ast/handlers/FunctionBodyHandler.ts +24 -0
- package/src/plugins/analysis/ast/handlers/LoopHandler.ts +240 -0
- package/src/plugins/analysis/ast/handlers/NestedFunctionHandler.ts +201 -0
- package/src/plugins/analysis/ast/handlers/NewExpressionHandler.ts +159 -0
- package/src/plugins/analysis/ast/handlers/PropertyAccessHandler.ts +112 -0
- package/src/plugins/analysis/ast/handlers/ReturnYieldHandler.ts +166 -0
- package/src/plugins/analysis/ast/handlers/ThrowHandler.ts +101 -0
- package/src/plugins/analysis/ast/handlers/TryCatchHandler.ts +262 -0
- package/src/plugins/analysis/ast/handlers/VariableHandler.ts +93 -0
- package/src/plugins/analysis/ast/handlers/index.ts +12 -0
- package/src/plugins/analysis/ast/types.ts +68 -9
- package/src/plugins/analysis/ast/utils/createParameterNodes.ts +118 -13
- package/src/plugins/analysis/ast/utils/extractNamesFromPattern.ts +166 -0
- package/src/plugins/analysis/ast/utils/getExpressionValue.ts +34 -0
- package/src/plugins/analysis/ast/utils/getMemberExpressionName.ts +33 -0
- package/src/plugins/analysis/ast/utils/index.ts +2 -0
- package/src/plugins/analysis/ast/visitors/ArgumentExtractor.ts +307 -0
- package/src/plugins/analysis/ast/visitors/ArrayElementExtractor.ts +172 -0
- package/src/plugins/analysis/ast/visitors/CallExpressionVisitor.ts +425 -1374
- package/src/plugins/analysis/ast/visitors/ClassVisitor.ts +43 -12
- package/src/plugins/analysis/ast/visitors/FunctionVisitor.ts +39 -8
- package/src/plugins/analysis/ast/visitors/MutationDetector.ts +211 -0
- package/src/plugins/analysis/ast/visitors/ObjectPropertyExtractor.ts +217 -0
- package/src/plugins/analysis/ast/visitors/PropertyAccessVisitor.ts +69 -4
- package/src/plugins/analysis/ast/visitors/TypeScriptVisitor.ts +232 -13
- package/src/plugins/analysis/ast/visitors/VariableVisitor.ts +8 -11
- package/src/plugins/analysis/ast/visitors/call-expression-helpers.ts +65 -0
- package/src/plugins/analysis/ast/visitors/call-expression-types.ts +179 -0
- package/src/plugins/analysis/react-internal/browser-api.ts +168 -0
- package/src/plugins/analysis/react-internal/hooks.ts +517 -0
- package/src/plugins/analysis/react-internal/jsx.ts +279 -0
- package/src/plugins/analysis/react-internal/types.ts +183 -0
- package/src/plugins/discovery/MonorepoServiceDiscovery.ts +6 -14
- package/src/plugins/enrichment/AliasTracker.ts +3 -1
- package/src/plugins/enrichment/ArgumentParameterLinker.ts +3 -1
- package/src/plugins/enrichment/CallbackCallResolver.ts +398 -0
- package/src/plugins/enrichment/ClosureCaptureEnricher.ts +3 -1
- package/src/plugins/enrichment/ConfigRoutingMapBuilder.ts +67 -0
- package/src/plugins/enrichment/ExpressHandlerLinker.ts +3 -1
- package/src/plugins/enrichment/ExternalCallResolver.ts +5 -8
- package/src/plugins/enrichment/FunctionCallResolver.ts +6 -9
- package/src/plugins/enrichment/HTTPConnectionEnricher.ts +3 -1
- package/src/plugins/enrichment/ImportExportLinker.ts +5 -3
- package/src/plugins/enrichment/InstanceOfResolver.ts +3 -1
- package/src/plugins/enrichment/MethodCallResolver.ts +48 -659
- package/src/plugins/enrichment/MountPointResolver.ts +9 -2
- package/src/plugins/enrichment/NodejsBuiltinsResolver.ts +13 -18
- package/src/plugins/enrichment/PrefixEvaluator.ts +6 -2
- package/src/plugins/enrichment/RejectionPropagationEnricher.ts +3 -1
- package/src/plugins/enrichment/RustFFIEnricher.ts +3 -1
- package/src/plugins/enrichment/ServiceConnectionEnricher.ts +472 -0
- package/src/plugins/enrichment/SocketConnectionEnricher.ts +228 -0
- package/src/plugins/enrichment/ValueDomainAnalyzer.ts +3 -1
- package/src/plugins/enrichment/method-call/MethodCallData.ts +299 -0
- package/src/plugins/enrichment/method-call/MethodCallDetectors.ts +70 -0
- package/src/plugins/enrichment/method-call/MethodCallErrorAnalysis.ts +131 -0
- package/src/plugins/enrichment/method-call/MethodCallIndexers.ts +83 -0
- package/src/plugins/enrichment/method-call/MethodCallResolution.ts +181 -0
- package/src/plugins/indexing/IncrementalModuleIndexer.ts +5 -10
- package/src/plugins/indexing/JSModuleIndexer.ts +17 -21
- package/src/plugins/indexing/RustModuleIndexer.ts +14 -13
- package/src/plugins/validation/AwaitInLoopValidator.ts +91 -0
- package/src/plugins/validation/PackageCoverageValidator.ts +181 -0
- package/src/plugins/validation/UnconnectedRouteValidator.ts +93 -0
- package/src/queries/NodeContext.ts +277 -0
- package/src/queries/findCallsInFunction.ts +11 -2
- package/src/queries/findContainingFunction.ts +14 -3
- package/src/queries/index.ts +13 -0
- package/src/resources/InfraResourceMapImpl.ts +119 -0
- package/src/resources/RoutingMapImpl.ts +133 -0
- package/src/storage/backends/RFDBServerBackend.ts +106 -77
- package/src/utils/findRfdbBinary.ts +22 -7
- package/src/utils/moduleResolution.ts +28 -1
- package/src/utils/resolveNodeFile.ts +18 -0
- package/src/version.ts +28 -0
|
@@ -13,18 +13,18 @@ import type { NodePath } from '@babel/traverse';
|
|
|
13
13
|
import { Plugin, createSuccessResult, createErrorResult } from '../Plugin.js';
|
|
14
14
|
import type { PluginContext, PluginResult, PluginMetadata } from '../Plugin.js';
|
|
15
15
|
import type { NodeRecord } from '@grafema/types';
|
|
16
|
-
import {
|
|
16
|
+
import type { AnyBrandedNode } from '@grafema/types';
|
|
17
|
+
import { NodeFactory } from '../../core/NodeFactory.js';
|
|
17
18
|
import { getLine, getColumn } from './ast/utils/location.js';
|
|
18
19
|
import { getTraverseFunction } from './ast/utils/babelTraverse.js';
|
|
20
|
+
import { resolveNodeFile } from '../../utils/resolveNodeFile.js';
|
|
19
21
|
|
|
20
22
|
const traverse = getTraverseFunction(traverseModule);
|
|
21
23
|
|
|
22
24
|
/**
|
|
23
|
-
*
|
|
25
|
+
* Collected endpoint info (before creating branded nodes)
|
|
24
26
|
*/
|
|
25
|
-
interface
|
|
26
|
-
id: string;
|
|
27
|
-
type: 'http:route';
|
|
27
|
+
interface EndpointInfo {
|
|
28
28
|
method: string;
|
|
29
29
|
path: string;
|
|
30
30
|
localPath: string;
|
|
@@ -35,11 +35,9 @@ interface EndpointNode {
|
|
|
35
35
|
}
|
|
36
36
|
|
|
37
37
|
/**
|
|
38
|
-
*
|
|
38
|
+
* Collected mount point info (before creating branded nodes)
|
|
39
39
|
*/
|
|
40
|
-
interface
|
|
41
|
-
id: string;
|
|
42
|
-
type: 'express:mount';
|
|
40
|
+
interface MountPointInfo {
|
|
43
41
|
prefix: string;
|
|
44
42
|
targetFunction: string | null;
|
|
45
43
|
targetVariable: string | null;
|
|
@@ -85,14 +83,15 @@ export class ExpressAnalyzer extends Plugin {
|
|
|
85
83
|
|
|
86
84
|
try {
|
|
87
85
|
const { graph } = context;
|
|
86
|
+
const projectPath = (context.manifest as { projectPath?: string })?.projectPath ?? '';
|
|
88
87
|
|
|
89
88
|
// Batch arrays
|
|
90
|
-
const nodes:
|
|
89
|
+
const nodes: AnyBrandedNode[] = [];
|
|
91
90
|
const edges: Array<{type: string; src: string; dst: string; [key: string]: unknown}> = [];
|
|
92
91
|
|
|
93
92
|
// Create net:request singleton (GraphBackend handles deduplication)
|
|
94
|
-
const networkNode =
|
|
95
|
-
nodes.push(networkNode
|
|
93
|
+
const networkNode = NodeFactory.createNetworkRequest();
|
|
94
|
+
nodes.push(networkNode);
|
|
96
95
|
|
|
97
96
|
// Получаем все MODULE ноды
|
|
98
97
|
const modules = await this.getModules(graph);
|
|
@@ -103,7 +102,7 @@ export class ExpressAnalyzer extends Plugin {
|
|
|
103
102
|
|
|
104
103
|
// Анализируем каждый модуль
|
|
105
104
|
for (const module of modules) {
|
|
106
|
-
const result = await this.analyzeModule(module, graph, networkNode.id, nodes, edges);
|
|
105
|
+
const result = await this.analyzeModule(module, graph, projectPath, networkNode.id, nodes, edges);
|
|
107
106
|
endpointsCreated += result.endpoints;
|
|
108
107
|
mountPointsCreated += result.mountPoints;
|
|
109
108
|
edgesCreated += result.edges;
|
|
@@ -138,8 +137,9 @@ export class ExpressAnalyzer extends Plugin {
|
|
|
138
137
|
private async analyzeModule(
|
|
139
138
|
module: NodeRecord,
|
|
140
139
|
graph: PluginContext['graph'],
|
|
140
|
+
projectPath: string,
|
|
141
141
|
networkId: string,
|
|
142
|
-
nodes:
|
|
142
|
+
nodes: AnyBrandedNode[],
|
|
143
143
|
edges: Array<{type: string; src: string; dst: string; [key: string]: unknown}>
|
|
144
144
|
): Promise<AnalysisResult> {
|
|
145
145
|
let endpointsCreated = 0;
|
|
@@ -148,14 +148,14 @@ export class ExpressAnalyzer extends Plugin {
|
|
|
148
148
|
|
|
149
149
|
try {
|
|
150
150
|
// Читаем и парсим файл
|
|
151
|
-
const code = readFileSync(module.file!, 'utf-8');
|
|
151
|
+
const code = readFileSync(resolveNodeFile(module.file!, projectPath), 'utf-8');
|
|
152
152
|
const ast = parse(code, {
|
|
153
153
|
sourceType: 'module',
|
|
154
154
|
plugins: ['jsx'] as ParserPlugin[]
|
|
155
155
|
});
|
|
156
156
|
|
|
157
|
-
const endpoints:
|
|
158
|
-
const mountPoints:
|
|
157
|
+
const endpoints: EndpointInfo[] = [];
|
|
158
|
+
const mountPoints: MountPointInfo[] = [];
|
|
159
159
|
const imports: ImportInfo[] = [];
|
|
160
160
|
|
|
161
161
|
// Собираем импорты для резолвинга mount points
|
|
@@ -216,8 +216,6 @@ export class ExpressAnalyzer extends Plugin {
|
|
|
216
216
|
if (routePath) {
|
|
217
217
|
const method = methodName.toUpperCase();
|
|
218
218
|
endpoints.push({
|
|
219
|
-
id: `http:route#${method}:${routePath}#${module.file}#${getLine(node)}`,
|
|
220
|
-
type: 'http:route',
|
|
221
219
|
method: method,
|
|
222
220
|
path: routePath,
|
|
223
221
|
localPath: routePath,
|
|
@@ -294,8 +292,6 @@ export class ExpressAnalyzer extends Plugin {
|
|
|
294
292
|
// Создаём mount point
|
|
295
293
|
if ((targetFunction || targetVariable) && prefix) {
|
|
296
294
|
mountPoints.push({
|
|
297
|
-
id: `express:mount#${prefix}#${module.file}#${getLine(node)}`,
|
|
298
|
-
type: 'express:mount',
|
|
299
295
|
prefix: prefix,
|
|
300
296
|
targetFunction: targetFunction,
|
|
301
297
|
targetVariable: targetVariable,
|
|
@@ -312,21 +308,32 @@ export class ExpressAnalyzer extends Plugin {
|
|
|
312
308
|
|
|
313
309
|
// Создаём ENDPOINT ноды
|
|
314
310
|
for (const endpoint of endpoints) {
|
|
315
|
-
|
|
311
|
+
const brandedNode = NodeFactory.createHttpRoute(
|
|
312
|
+
endpoint.method,
|
|
313
|
+
endpoint.path,
|
|
314
|
+
endpoint.file,
|
|
315
|
+
endpoint.line,
|
|
316
|
+
{
|
|
317
|
+
column: endpoint.column,
|
|
318
|
+
localPath: endpoint.localPath,
|
|
319
|
+
mountedOn: endpoint.mountedOn,
|
|
320
|
+
}
|
|
321
|
+
);
|
|
322
|
+
nodes.push(brandedNode);
|
|
316
323
|
endpointsCreated++;
|
|
317
324
|
|
|
318
325
|
// MODULE --EXPOSES--> ENDPOINT
|
|
319
326
|
edges.push({
|
|
320
327
|
type: 'EXPOSES',
|
|
321
328
|
src: module.id,
|
|
322
|
-
dst:
|
|
329
|
+
dst: brandedNode.id
|
|
323
330
|
});
|
|
324
331
|
edgesCreated++;
|
|
325
332
|
|
|
326
333
|
// ENDPOINT --INTERACTS_WITH--> EXTERNAL_NETWORK
|
|
327
334
|
edges.push({
|
|
328
335
|
type: 'INTERACTS_WITH',
|
|
329
|
-
src:
|
|
336
|
+
src: brandedNode.id,
|
|
330
337
|
dst: networkId
|
|
331
338
|
});
|
|
332
339
|
edgesCreated++;
|
|
@@ -334,19 +341,30 @@ export class ExpressAnalyzer extends Plugin {
|
|
|
334
341
|
|
|
335
342
|
// Создаём MOUNT_POINT ноды
|
|
336
343
|
for (const mountPoint of mountPoints) {
|
|
337
|
-
|
|
344
|
+
const brandedNode = NodeFactory.createExpressMount(
|
|
345
|
+
mountPoint.prefix,
|
|
346
|
+
mountPoint.file,
|
|
347
|
+
mountPoint.line,
|
|
348
|
+
mountPoint.column,
|
|
349
|
+
{
|
|
350
|
+
targetFunction: mountPoint.targetFunction,
|
|
351
|
+
targetVariable: mountPoint.targetVariable,
|
|
352
|
+
mountedOn: mountPoint.mountedOn,
|
|
353
|
+
}
|
|
354
|
+
);
|
|
355
|
+
nodes.push(brandedNode);
|
|
338
356
|
mountPointsCreated++;
|
|
339
357
|
|
|
340
358
|
// MODULE --DEFINES--> MOUNT_POINT
|
|
341
359
|
edges.push({
|
|
342
360
|
type: 'DEFINES',
|
|
343
361
|
src: module.id,
|
|
344
|
-
dst:
|
|
362
|
+
dst: brandedNode.id
|
|
345
363
|
});
|
|
346
364
|
edgesCreated++;
|
|
347
365
|
|
|
348
366
|
// Создаём MOUNTS рёбра
|
|
349
|
-
const mountEdges = await this.createMountEdges(mountPoint, module, imports, graph, edges);
|
|
367
|
+
const mountEdges = await this.createMountEdges(brandedNode.id, mountPoint, module, imports, graph, projectPath, edges);
|
|
350
368
|
edgesCreated += mountEdges;
|
|
351
369
|
}
|
|
352
370
|
} catch {
|
|
@@ -364,10 +382,12 @@ export class ExpressAnalyzer extends Plugin {
|
|
|
364
382
|
* Создать MOUNTS рёбра для mount point
|
|
365
383
|
*/
|
|
366
384
|
private async createMountEdges(
|
|
367
|
-
|
|
385
|
+
mountNodeId: string,
|
|
386
|
+
mountPoint: MountPointInfo,
|
|
368
387
|
module: NodeRecord,
|
|
369
388
|
imports: ImportInfo[],
|
|
370
389
|
graph: PluginContext['graph'],
|
|
390
|
+
projectPath: string,
|
|
371
391
|
edges: Array<{type: string; src: string; dst: string; [key: string]: unknown}>
|
|
372
392
|
): Promise<number> {
|
|
373
393
|
let edgesCreated = 0;
|
|
@@ -388,7 +408,7 @@ export class ExpressAnalyzer extends Plugin {
|
|
|
388
408
|
|
|
389
409
|
if (hasTarget) {
|
|
390
410
|
// Резолвим путь к модулю
|
|
391
|
-
const currentDir = dirname(module.file
|
|
411
|
+
const currentDir = dirname(resolveNodeFile(module.file!, projectPath));
|
|
392
412
|
targetModulePath = resolve(currentDir, imp.source);
|
|
393
413
|
break;
|
|
394
414
|
}
|
|
@@ -397,14 +417,7 @@ export class ExpressAnalyzer extends Plugin {
|
|
|
397
417
|
|
|
398
418
|
// Если нашли целевой модуль, создаем MOUNTS ребро
|
|
399
419
|
if (targetModulePath) {
|
|
400
|
-
|
|
401
|
-
// module.file is absolute path, module.name is relative path
|
|
402
|
-
const moduleAbsPath = module.file!;
|
|
403
|
-
const moduleRelPath = module.name!;
|
|
404
|
-
// projectRoot = absolute path minus relative path suffix
|
|
405
|
-
const projectRoot = moduleAbsPath.endsWith(moduleRelPath)
|
|
406
|
-
? moduleAbsPath.slice(0, moduleAbsPath.length - moduleRelPath.length)
|
|
407
|
-
: dirname(moduleAbsPath); // fallback
|
|
420
|
+
const projectRoot = projectPath;
|
|
408
421
|
|
|
409
422
|
// Convert target absolute path to relative path for semantic ID
|
|
410
423
|
const targetRelativePath = relative(projectRoot, targetModulePath);
|
|
@@ -415,7 +428,7 @@ export class ExpressAnalyzer extends Plugin {
|
|
|
415
428
|
if (targetModule) {
|
|
416
429
|
edges.push({
|
|
417
430
|
type: 'MOUNTS',
|
|
418
|
-
src:
|
|
431
|
+
src: mountNodeId,
|
|
419
432
|
dst: targetModuleId
|
|
420
433
|
});
|
|
421
434
|
edgesCreated++;
|
|
@@ -20,9 +20,10 @@ import type { CallExpression, Identifier, MemberExpression, Node, ArrowFunctionE
|
|
|
20
20
|
import type { NodePath } from '@babel/traverse';
|
|
21
21
|
import { Plugin, createSuccessResult, createErrorResult } from '../Plugin.js';
|
|
22
22
|
import type { PluginContext, PluginResult, PluginMetadata } from '../Plugin.js';
|
|
23
|
-
import type { NodeRecord } from '@grafema/types';
|
|
23
|
+
import type { NodeRecord, AnyBrandedNode } from '@grafema/types';
|
|
24
24
|
import { NodeFactory } from '../../core/NodeFactory.js';
|
|
25
25
|
import { getLine } from './ast/utils/location.js';
|
|
26
|
+
import { resolveNodeFile } from '../../utils/resolveNodeFile.js';
|
|
26
27
|
|
|
27
28
|
const traverse = (traverseModule as any).default || traverseModule;
|
|
28
29
|
|
|
@@ -60,6 +61,7 @@ export class ExpressResponseAnalyzer extends Plugin {
|
|
|
60
61
|
|
|
61
62
|
try {
|
|
62
63
|
const { graph } = context;
|
|
64
|
+
const projectPath = (context.manifest as { projectPath?: string })?.projectPath ?? '';
|
|
63
65
|
|
|
64
66
|
// Get all http:route nodes
|
|
65
67
|
const routes: NodeRecord[] = [];
|
|
@@ -71,11 +73,11 @@ export class ExpressResponseAnalyzer extends Plugin {
|
|
|
71
73
|
|
|
72
74
|
let edgesCreated = 0;
|
|
73
75
|
let nodesCreated = 0;
|
|
74
|
-
const allNodes:
|
|
76
|
+
const allNodes: AnyBrandedNode[] = [];
|
|
75
77
|
const allEdges: Array<{ type: string; src: string; dst: string; metadata?: unknown }> = [];
|
|
76
78
|
|
|
77
79
|
for (const route of routes) {
|
|
78
|
-
const result = await this.analyzeRouteResponses(route, graph, allNodes, allEdges);
|
|
80
|
+
const result = await this.analyzeRouteResponses(route, graph, projectPath, allNodes, allEdges);
|
|
79
81
|
edgesCreated += result.edges;
|
|
80
82
|
nodesCreated += result.nodes;
|
|
81
83
|
}
|
|
@@ -103,7 +105,8 @@ export class ExpressResponseAnalyzer extends Plugin {
|
|
|
103
105
|
private async analyzeRouteResponses(
|
|
104
106
|
route: NodeRecord,
|
|
105
107
|
graph: PluginContext['graph'],
|
|
106
|
-
|
|
108
|
+
projectPath: string,
|
|
109
|
+
nodes: AnyBrandedNode[],
|
|
107
110
|
edges: Array<{ type: string; src: string; dst: string; metadata?: unknown }>
|
|
108
111
|
): Promise<{ nodes: number; edges: number }> {
|
|
109
112
|
let edgesCreated = 0;
|
|
@@ -126,7 +129,7 @@ export class ExpressResponseAnalyzer extends Plugin {
|
|
|
126
129
|
}
|
|
127
130
|
|
|
128
131
|
// Parse the file and find response calls in handler
|
|
129
|
-
const code = readFileSync(handlerNode.file, 'utf-8');
|
|
132
|
+
const code = readFileSync(resolveNodeFile(handlerNode.file, projectPath), 'utf-8');
|
|
130
133
|
const ast = parse(code, {
|
|
131
134
|
sourceType: 'module',
|
|
132
135
|
plugins: ['jsx', 'typescript'] as ParserPlugin[]
|
|
@@ -351,7 +354,7 @@ export class ExpressResponseAnalyzer extends Plugin {
|
|
|
351
354
|
call: ResponseCallInfo,
|
|
352
355
|
routeId: string,
|
|
353
356
|
handlerSemanticId: string,
|
|
354
|
-
nodes:
|
|
357
|
+
nodes: AnyBrandedNode[]
|
|
355
358
|
): Promise<{ nodeId: string; nodesCreated: number }> {
|
|
356
359
|
const { argLine, argColumn, argType, identifierName } = call;
|
|
357
360
|
|
|
@@ -576,7 +579,7 @@ export class ExpressResponseAnalyzer extends Plugin {
|
|
|
576
579
|
column: number,
|
|
577
580
|
astType: string,
|
|
578
581
|
_routeId: string,
|
|
579
|
-
nodes:
|
|
582
|
+
nodes: AnyBrandedNode[]
|
|
580
583
|
): string {
|
|
581
584
|
const counter = this.responseNodeCounter++;
|
|
582
585
|
|
|
@@ -586,33 +589,33 @@ export class ExpressResponseAnalyzer extends Plugin {
|
|
|
586
589
|
const node = NodeFactory.createObjectLiteral(file, line, column, {
|
|
587
590
|
argIndex: counter
|
|
588
591
|
});
|
|
589
|
-
nodes.push(node
|
|
592
|
+
nodes.push(node);
|
|
590
593
|
return node.id;
|
|
591
594
|
}
|
|
592
595
|
case 'Identifier': {
|
|
593
596
|
const node = NodeFactory.createVariableDeclaration('<response>', file, line, column, {
|
|
594
597
|
counter
|
|
595
598
|
});
|
|
596
|
-
nodes.push(node
|
|
599
|
+
nodes.push(node);
|
|
597
600
|
return node.id;
|
|
598
601
|
}
|
|
599
602
|
case 'CallExpression': {
|
|
600
603
|
const node = NodeFactory.createCallSite('<response>', file, line, column, {
|
|
601
604
|
counter
|
|
602
605
|
});
|
|
603
|
-
nodes.push(node
|
|
606
|
+
nodes.push(node);
|
|
604
607
|
return node.id;
|
|
605
608
|
}
|
|
606
609
|
case 'ArrayExpression': {
|
|
607
610
|
const node = NodeFactory.createArrayLiteral(file, line, column, {
|
|
608
611
|
argIndex: counter
|
|
609
612
|
});
|
|
610
|
-
nodes.push(node
|
|
613
|
+
nodes.push(node);
|
|
611
614
|
return node.id;
|
|
612
615
|
}
|
|
613
616
|
default: {
|
|
614
617
|
const node = NodeFactory.createExpression(astType, file, line, column);
|
|
615
|
-
nodes.push(node
|
|
618
|
+
nodes.push(node);
|
|
616
619
|
return node.id;
|
|
617
620
|
}
|
|
618
621
|
}
|
|
@@ -17,34 +17,31 @@ import type { NodePath } from '@babel/traverse';
|
|
|
17
17
|
import { Plugin, createSuccessResult, createErrorResult } from '../Plugin.js';
|
|
18
18
|
import type { PluginContext, PluginResult, PluginMetadata } from '../Plugin.js';
|
|
19
19
|
import type { NodeRecord } from '@grafema/types';
|
|
20
|
+
import type { AnyBrandedNode } from '@grafema/types';
|
|
21
|
+
import { NodeFactory } from '../../core/NodeFactory.js';
|
|
20
22
|
import { getLine, getColumn } from './ast/utils/location.js';
|
|
23
|
+
import { resolveNodeFile } from '../../utils/resolveNodeFile.js';
|
|
21
24
|
|
|
22
25
|
const traverse = (traverseModule as any).default || traverseModule;
|
|
23
26
|
|
|
24
27
|
/**
|
|
25
|
-
*
|
|
28
|
+
* Collected endpoint info (before creating branded nodes)
|
|
26
29
|
*/
|
|
27
|
-
interface
|
|
28
|
-
id: string;
|
|
29
|
-
type: 'http:route';
|
|
30
|
+
interface EndpointInfo {
|
|
30
31
|
method: string;
|
|
31
32
|
path: string;
|
|
32
33
|
file: string;
|
|
33
34
|
line: number;
|
|
34
35
|
column: number;
|
|
35
36
|
routerName: string;
|
|
36
|
-
handlerLine: number;
|
|
37
|
-
handlerColumn: number;
|
|
38
37
|
handlerStart?: number; // Byte offset for inline handlers
|
|
39
38
|
handlerName?: string; // Function name for named handler references
|
|
40
39
|
}
|
|
41
40
|
|
|
42
41
|
/**
|
|
43
|
-
*
|
|
42
|
+
* Collected middleware info (before creating branded nodes)
|
|
44
43
|
*/
|
|
45
|
-
interface
|
|
46
|
-
id: string;
|
|
47
|
-
type: 'express:middleware';
|
|
44
|
+
interface MiddlewareInfo {
|
|
48
45
|
name: string;
|
|
49
46
|
file: string;
|
|
50
47
|
line: number;
|
|
@@ -84,6 +81,7 @@ export class ExpressRouteAnalyzer extends Plugin {
|
|
|
84
81
|
|
|
85
82
|
try {
|
|
86
83
|
const { graph } = context;
|
|
84
|
+
const projectPath = (context.manifest as { projectPath?: string })?.projectPath ?? '';
|
|
87
85
|
|
|
88
86
|
// Получаем все MODULE ноды
|
|
89
87
|
const modules = await this.getModules(graph);
|
|
@@ -97,7 +95,7 @@ export class ExpressRouteAnalyzer extends Plugin {
|
|
|
97
95
|
// Анализируем каждый модуль
|
|
98
96
|
for (let i = 0; i < modules.length; i++) {
|
|
99
97
|
const module = modules[i];
|
|
100
|
-
const result = await this.analyzeModule(module, graph);
|
|
98
|
+
const result = await this.analyzeModule(module, graph, projectPath);
|
|
101
99
|
endpointsCreated += result.endpoints;
|
|
102
100
|
middlewareCreated += result.middleware;
|
|
103
101
|
edgesCreated += result.edges;
|
|
@@ -132,7 +130,8 @@ export class ExpressRouteAnalyzer extends Plugin {
|
|
|
132
130
|
|
|
133
131
|
private async analyzeModule(
|
|
134
132
|
module: NodeRecord,
|
|
135
|
-
graph: PluginContext['graph']
|
|
133
|
+
graph: PluginContext['graph'],
|
|
134
|
+
projectPath: string
|
|
136
135
|
): Promise<AnalysisResult> {
|
|
137
136
|
let endpointsCreated = 0;
|
|
138
137
|
let middlewareCreated = 0;
|
|
@@ -140,7 +139,7 @@ export class ExpressRouteAnalyzer extends Plugin {
|
|
|
140
139
|
|
|
141
140
|
try {
|
|
142
141
|
// Читаем файл
|
|
143
|
-
const code = readFileSync(module.file!, 'utf-8');
|
|
142
|
+
const code = readFileSync(resolveNodeFile(module.file!, projectPath), 'utf-8');
|
|
144
143
|
|
|
145
144
|
// Парсим AST
|
|
146
145
|
const ast = parse(code, {
|
|
@@ -148,8 +147,8 @@ export class ExpressRouteAnalyzer extends Plugin {
|
|
|
148
147
|
plugins: ['jsx', 'typescript'] as ParserPlugin[]
|
|
149
148
|
});
|
|
150
149
|
|
|
151
|
-
const endpoints:
|
|
152
|
-
const middlewares:
|
|
150
|
+
const endpoints: EndpointInfo[] = [];
|
|
151
|
+
const middlewares: MiddlewareInfo[] = [];
|
|
153
152
|
|
|
154
153
|
// Находим все переменные созданные от express() или express.Router()
|
|
155
154
|
const expressVars = new Set(['app', 'router']);
|
|
@@ -250,9 +249,6 @@ export class ExpressRouteAnalyzer extends Plugin {
|
|
|
250
249
|
// Все предыдущие - middleware
|
|
251
250
|
const middlewareHandlers = handlers.slice(0, -1);
|
|
252
251
|
|
|
253
|
-
// Создаём http:route
|
|
254
|
-
const endpointId = `http:route#${method.toUpperCase()}:${routePath}#${module.file}#${getLine(node)}`;
|
|
255
|
-
|
|
256
252
|
// Determine handler identification for HANDLED_BY linking:
|
|
257
253
|
// - Inline functions (arrow/function expressions): use byte offset (start)
|
|
258
254
|
// - Named references (Identifier): use function name
|
|
@@ -266,24 +262,19 @@ export class ExpressRouteAnalyzer extends Plugin {
|
|
|
266
262
|
}
|
|
267
263
|
|
|
268
264
|
endpoints.push({
|
|
269
|
-
id: endpointId,
|
|
270
|
-
type: 'http:route',
|
|
271
265
|
method: method.toUpperCase(),
|
|
272
266
|
path: routePath,
|
|
273
267
|
file: module.file!,
|
|
274
268
|
line: getLine(node),
|
|
275
269
|
column: getColumn(node),
|
|
276
270
|
routerName: objectName,
|
|
277
|
-
handlerLine: actualHandler.loc
|
|
278
|
-
? getLine(actualHandler)
|
|
279
|
-
: getLine(node),
|
|
280
|
-
handlerColumn: actualHandler.loc
|
|
281
|
-
? getColumn(actualHandler)
|
|
282
|
-
: getColumn(node),
|
|
283
271
|
handlerStart,
|
|
284
272
|
handlerName
|
|
285
273
|
});
|
|
286
274
|
|
|
275
|
+
// Compute endpoint ID (matches factory output) for middleware linking
|
|
276
|
+
const endpointId = `http:route#${method.toUpperCase()}:${routePath}#${module.file}#${getLine(node)}`;
|
|
277
|
+
|
|
287
278
|
// Обрабатываем middleware
|
|
288
279
|
middlewareHandlers.forEach((mw, index) => {
|
|
289
280
|
let middlewareName: string | null = null;
|
|
@@ -306,11 +297,7 @@ export class ExpressRouteAnalyzer extends Plugin {
|
|
|
306
297
|
}
|
|
307
298
|
|
|
308
299
|
if (middlewareName) {
|
|
309
|
-
const middlewareId = `express:middleware#${middlewareName}#${module.file}#${getLine(mwNode)}`;
|
|
310
|
-
|
|
311
300
|
middlewares.push({
|
|
312
|
-
id: middlewareId,
|
|
313
|
-
type: 'express:middleware',
|
|
314
301
|
name: middlewareName,
|
|
315
302
|
file: module.file!,
|
|
316
303
|
line: mwNode.loc ? getLine(mwNode) : getLine(node),
|
|
@@ -351,11 +338,7 @@ export class ExpressRouteAnalyzer extends Plugin {
|
|
|
351
338
|
}
|
|
352
339
|
|
|
353
340
|
if (middlewareName) {
|
|
354
|
-
const middlewareId = `express:middleware#${middlewareName}#${module.file}#${getLine(node)}`;
|
|
355
|
-
|
|
356
341
|
middlewares.push({
|
|
357
|
-
id: middlewareId,
|
|
358
|
-
type: 'express:middleware',
|
|
359
342
|
name: middlewareName,
|
|
360
343
|
file: module.file!,
|
|
361
344
|
line: getLine(node),
|
|
@@ -372,30 +355,35 @@ export class ExpressRouteAnalyzer extends Plugin {
|
|
|
372
355
|
});
|
|
373
356
|
|
|
374
357
|
// Collect all nodes and edges for batch operations
|
|
375
|
-
const nodes:
|
|
358
|
+
const nodes: AnyBrandedNode[] = [];
|
|
376
359
|
const edges: Array<{ type: string; src: string; dst: string }> = [];
|
|
377
360
|
|
|
378
361
|
// Prepare ENDPOINT nodes
|
|
379
362
|
for (const endpoint of endpoints) {
|
|
380
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
381
|
-
const { handlerLine: _hl, handlerColumn: _hc, handlerStart, handlerName, routerName, ...endpointData } = endpoint;
|
|
382
|
-
|
|
383
363
|
// Store handler identification in metadata for ExpressHandlerLinker enricher
|
|
384
|
-
const
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
364
|
+
const metadata: Record<string, unknown> = {};
|
|
365
|
+
if (endpoint.handlerStart !== undefined) metadata.handlerStart = endpoint.handlerStart;
|
|
366
|
+
if (endpoint.handlerName !== undefined) metadata.handlerName = endpoint.handlerName;
|
|
367
|
+
|
|
368
|
+
const brandedNode = NodeFactory.createHttpRoute(
|
|
369
|
+
endpoint.method,
|
|
370
|
+
endpoint.path,
|
|
371
|
+
endpoint.file,
|
|
372
|
+
endpoint.line,
|
|
373
|
+
{
|
|
374
|
+
column: endpoint.column,
|
|
375
|
+
routerName: endpoint.routerName,
|
|
376
|
+
metadata: Object.keys(metadata).length > 0 ? metadata : undefined,
|
|
389
377
|
}
|
|
390
|
-
|
|
391
|
-
nodes.push(
|
|
378
|
+
);
|
|
379
|
+
nodes.push(brandedNode);
|
|
392
380
|
endpointsCreated++;
|
|
393
381
|
|
|
394
382
|
// MODULE -> CONTAINS -> ENDPOINT
|
|
395
383
|
edges.push({
|
|
396
384
|
type: 'CONTAINS',
|
|
397
385
|
src: module.id,
|
|
398
|
-
dst:
|
|
386
|
+
dst: brandedNode.id
|
|
399
387
|
});
|
|
400
388
|
edgesCreated++;
|
|
401
389
|
|
|
@@ -403,28 +391,38 @@ export class ExpressRouteAnalyzer extends Plugin {
|
|
|
403
391
|
// using handlerStart (byte offset) or handlerName stored in node metadata
|
|
404
392
|
}
|
|
405
393
|
|
|
406
|
-
// Prepare MIDDLEWARE nodes
|
|
394
|
+
// Prepare MIDDLEWARE nodes - track branded IDs for edge creation
|
|
395
|
+
const middlewareNodeIds: string[] = [];
|
|
407
396
|
for (const middleware of middlewares) {
|
|
408
|
-
const
|
|
409
|
-
|
|
410
|
-
|
|
397
|
+
const brandedNode = NodeFactory.createExpressMiddleware(
|
|
398
|
+
middleware.name,
|
|
399
|
+
middleware.file,
|
|
400
|
+
middleware.line,
|
|
401
|
+
middleware.column,
|
|
402
|
+
{
|
|
403
|
+
mountPath: middleware.mountPath,
|
|
404
|
+
isGlobal: middleware.isGlobal,
|
|
405
|
+
}
|
|
406
|
+
);
|
|
407
|
+
nodes.push(brandedNode);
|
|
408
|
+
middlewareNodeIds.push(brandedNode.id);
|
|
411
409
|
middlewareCreated++;
|
|
412
410
|
|
|
413
411
|
// MODULE -> CONTAINS -> MIDDLEWARE
|
|
414
412
|
edges.push({
|
|
415
413
|
type: 'CONTAINS',
|
|
416
414
|
src: module.id,
|
|
417
|
-
dst:
|
|
415
|
+
dst: brandedNode.id
|
|
418
416
|
});
|
|
419
417
|
edgesCreated++;
|
|
420
418
|
|
|
421
419
|
// Если есть связанный endpoint
|
|
422
|
-
if (endpointId) {
|
|
420
|
+
if (middleware.endpointId) {
|
|
423
421
|
// ENDPOINT -> USES_MIDDLEWARE -> MIDDLEWARE
|
|
424
422
|
edges.push({
|
|
425
423
|
type: 'USES_MIDDLEWARE',
|
|
426
|
-
src: endpointId,
|
|
427
|
-
dst:
|
|
424
|
+
src: middleware.endpointId,
|
|
425
|
+
dst: brandedNode.id
|
|
428
426
|
});
|
|
429
427
|
edgesCreated++;
|
|
430
428
|
}
|
|
@@ -434,7 +432,9 @@ export class ExpressRouteAnalyzer extends Plugin {
|
|
|
434
432
|
await graph.addNodes(nodes);
|
|
435
433
|
|
|
436
434
|
// Query for HANDLED_BY edges (needs nodes to exist first)
|
|
437
|
-
for (
|
|
435
|
+
for (let i = 0; i < middlewares.length; i++) {
|
|
436
|
+
const middleware = middlewares[i];
|
|
437
|
+
const middlewareId = middlewareNodeIds[i];
|
|
438
438
|
// Ищем FUNCTION ноду для middleware (если это именованная функция)
|
|
439
439
|
if (!middleware.name.startsWith('inline:')) {
|
|
440
440
|
for await (const fn of graph.queryNodes({
|
|
@@ -445,7 +445,7 @@ export class ExpressRouteAnalyzer extends Plugin {
|
|
|
445
445
|
// MIDDLEWARE -> HANDLED_BY -> FUNCTION
|
|
446
446
|
edges.push({
|
|
447
447
|
type: 'HANDLED_BY',
|
|
448
|
-
src:
|
|
448
|
+
src: middlewareId,
|
|
449
449
|
dst: fn.id
|
|
450
450
|
});
|
|
451
451
|
edgesCreated++;
|