@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
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import type { InfraResourceMap, ResourceMapping, AbstractResource, AbstractResourceType, ConcreteResourceRef } from '@grafema/types';
|
|
2
|
+
import { INFRA_RESOURCE_MAP_ID } from '@grafema/types';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Default implementation of InfraResourceMap.
|
|
6
|
+
*
|
|
7
|
+
* Stores mappings indexed by abstractType -> name -> AbstractResource
|
|
8
|
+
* for O(1) lookup. Multiple concrete resources can map to the same
|
|
9
|
+
* abstract resource (e.g., K8s Deployment + Terraform both create compute:service:api).
|
|
10
|
+
*
|
|
11
|
+
* Complexity:
|
|
12
|
+
* - register: O(1) amortized (map insertions)
|
|
13
|
+
* - findAbstract: O(1) nested map lookup
|
|
14
|
+
* - findByType: O(n) where n = resources of that type
|
|
15
|
+
* - findByEnv: O(N) where N = total resources
|
|
16
|
+
*/
|
|
17
|
+
export class InfraResourceMapImpl implements InfraResourceMap {
|
|
18
|
+
readonly id = INFRA_RESOURCE_MAP_ID;
|
|
19
|
+
|
|
20
|
+
/** abstractType -> name -> AbstractResource */
|
|
21
|
+
private byTypeAndName = new Map<string, Map<string, AbstractResource>>();
|
|
22
|
+
/** abstractId -> AbstractResource for O(1) lookup */
|
|
23
|
+
private byId = new Map<string, AbstractResource>();
|
|
24
|
+
|
|
25
|
+
register(mapping: ResourceMapping): void {
|
|
26
|
+
let nameMap = this.byTypeAndName.get(mapping.abstractType);
|
|
27
|
+
if (!nameMap) {
|
|
28
|
+
nameMap = new Map();
|
|
29
|
+
this.byTypeAndName.set(mapping.abstractType, nameMap);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
const provider: ConcreteResourceRef = {
|
|
33
|
+
id: mapping.concreteId,
|
|
34
|
+
type: mapping.concreteType,
|
|
35
|
+
tool: mapping.sourceTool,
|
|
36
|
+
file: mapping.sourceFile,
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
const existing = nameMap.get(mapping.name);
|
|
40
|
+
if (existing) {
|
|
41
|
+
// Deduplicate providers
|
|
42
|
+
const isDuplicate = existing.providers.some(p => p.id === provider.id);
|
|
43
|
+
if (!isDuplicate) {
|
|
44
|
+
existing.providers.push(provider);
|
|
45
|
+
}
|
|
46
|
+
// Merge metadata (later registrations can add fields)
|
|
47
|
+
existing.metadata = { ...existing.metadata, ...mapping.metadata };
|
|
48
|
+
// Merge env
|
|
49
|
+
if (mapping.env !== undefined) {
|
|
50
|
+
existing.env = mergeEnv(existing.env, mapping.env);
|
|
51
|
+
}
|
|
52
|
+
} else {
|
|
53
|
+
const abstract: AbstractResource = {
|
|
54
|
+
id: mapping.abstractId,
|
|
55
|
+
type: mapping.abstractType,
|
|
56
|
+
name: mapping.name,
|
|
57
|
+
env: mapping.env,
|
|
58
|
+
metadata: { ...mapping.metadata },
|
|
59
|
+
providers: [provider],
|
|
60
|
+
};
|
|
61
|
+
nameMap.set(mapping.name, abstract);
|
|
62
|
+
this.byId.set(mapping.abstractId, abstract);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
findAbstract(name: string, type: AbstractResourceType): AbstractResource | null {
|
|
67
|
+
return this.byTypeAndName.get(type)?.get(name) ?? null;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
findConcrete(abstractId: string): ConcreteResourceRef[] {
|
|
71
|
+
const abstract = this.byId.get(abstractId);
|
|
72
|
+
return abstract ? [...abstract.providers] : [];
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
findByType(type: AbstractResourceType): AbstractResource[] {
|
|
76
|
+
const nameMap = this.byTypeAndName.get(type);
|
|
77
|
+
return nameMap ? [...nameMap.values()] : [];
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
findByEnv(env: string): AbstractResource[] {
|
|
81
|
+
const result: AbstractResource[] = [];
|
|
82
|
+
for (const abstract of this.byId.values()) {
|
|
83
|
+
if (matchesEnv(abstract.env, env)) {
|
|
84
|
+
result.push(abstract);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
return result;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
getAll(): AbstractResource[] {
|
|
91
|
+
return [...this.byId.values()];
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
get resourceCount(): number {
|
|
95
|
+
return this.byId.size;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
/** Merge environment values, deduplicating */
|
|
100
|
+
function mergeEnv(existing: string | string[] | undefined, incoming: string | string[] | undefined): string | string[] | undefined {
|
|
101
|
+
if (existing === undefined) return incoming;
|
|
102
|
+
if (incoming === undefined) return existing;
|
|
103
|
+
const existingArr = Array.isArray(existing) ? existing : [existing];
|
|
104
|
+
const incomingArr = Array.isArray(incoming) ? incoming : [incoming];
|
|
105
|
+
const merged = [...new Set([...existingArr, ...incomingArr])];
|
|
106
|
+
return merged.length === 1 ? merged[0] : merged;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
/** Check if resource env matches filter */
|
|
110
|
+
function matchesEnv(resourceEnv: string | string[] | undefined, filterEnv: string): boolean {
|
|
111
|
+
if (resourceEnv === undefined) return true; // undefined = all environments
|
|
112
|
+
if (Array.isArray(resourceEnv)) return resourceEnv.includes(filterEnv);
|
|
113
|
+
return resourceEnv === filterEnv;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
/** Factory function for creating an InfraResourceMap Resource */
|
|
117
|
+
export function createInfraResourceMap(): InfraResourceMapImpl {
|
|
118
|
+
return new InfraResourceMapImpl();
|
|
119
|
+
}
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
import type { RoutingMap, RoutingRule, MatchContext, MatchResult } from '@grafema/types';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Default implementation of RoutingMap.
|
|
5
|
+
*
|
|
6
|
+
* Stores rules in a nested Map<fromService, Map<toService, RoutingRule[]>>
|
|
7
|
+
* for O(1) lookup by fromService in findMatch.
|
|
8
|
+
*
|
|
9
|
+
* Complexity:
|
|
10
|
+
* - addRule: O(r) dedup check where r = rules for the pair
|
|
11
|
+
* - findMatch: O(t * r + c * log c) where t = target services for fromService, r = rules per pair, c = matching candidates
|
|
12
|
+
* - findRulesForPair: O(1) nested map lookup + O(r) copy
|
|
13
|
+
*/
|
|
14
|
+
export class RoutingMapImpl implements RoutingMap {
|
|
15
|
+
readonly id = 'routing:map' as const;
|
|
16
|
+
|
|
17
|
+
/** Rules indexed by fromService → toService → rules[] for O(1) lookup by service */
|
|
18
|
+
private rulesByFrom = new Map<string, Map<string, RoutingRule[]>>();
|
|
19
|
+
/** All rules in insertion order */
|
|
20
|
+
private allRules: RoutingRule[] = [];
|
|
21
|
+
|
|
22
|
+
addRule(rule: RoutingRule): void {
|
|
23
|
+
let toMap = this.rulesByFrom.get(rule.from);
|
|
24
|
+
if (!toMap) {
|
|
25
|
+
toMap = new Map();
|
|
26
|
+
this.rulesByFrom.set(rule.from, toMap);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
let rules = toMap.get(rule.to);
|
|
30
|
+
if (!rules) {
|
|
31
|
+
rules = [];
|
|
32
|
+
toMap.set(rule.to, rules);
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
// Deduplicate: skip if identical rule already exists
|
|
36
|
+
const isDuplicate = rules.some(
|
|
37
|
+
r => r.stripPrefix === rule.stripPrefix && r.addPrefix === rule.addPrefix
|
|
38
|
+
);
|
|
39
|
+
if (!isDuplicate) {
|
|
40
|
+
rules.push(rule);
|
|
41
|
+
this.allRules.push(rule);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
addRules(rules: RoutingRule[]): void {
|
|
46
|
+
for (const rule of rules) {
|
|
47
|
+
this.addRule(rule);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
findMatch(context: MatchContext): MatchResult | null {
|
|
52
|
+
const toMap = this.rulesByFrom.get(context.fromService);
|
|
53
|
+
if (!toMap) return null;
|
|
54
|
+
|
|
55
|
+
// Collect all matching candidates across all target services
|
|
56
|
+
const candidates: { rule: RoutingRule; transformedUrl: string }[] = [];
|
|
57
|
+
|
|
58
|
+
for (const rules of toMap.values()) {
|
|
59
|
+
for (const rule of rules) {
|
|
60
|
+
const transformed = this.applyRule(context.requestUrl, rule);
|
|
61
|
+
if (transformed !== null) {
|
|
62
|
+
candidates.push({ rule, transformedUrl: transformed });
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
if (candidates.length === 0) return null;
|
|
68
|
+
|
|
69
|
+
// Sort: longer stripPrefix first, then lower priority number
|
|
70
|
+
candidates.sort((a, b) => {
|
|
71
|
+
const aLen = a.rule.stripPrefix?.length ?? 0;
|
|
72
|
+
const bLen = b.rule.stripPrefix?.length ?? 0;
|
|
73
|
+
if (aLen !== bLen) return bLen - aLen;
|
|
74
|
+
return (a.rule.priority ?? 0) - (b.rule.priority ?? 0);
|
|
75
|
+
});
|
|
76
|
+
|
|
77
|
+
const best = candidates[0];
|
|
78
|
+
return {
|
|
79
|
+
transformedUrl: best.transformedUrl,
|
|
80
|
+
targetService: best.rule.to,
|
|
81
|
+
rule: best.rule,
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
findRulesForPair(fromService: string, toService: string): RoutingRule[] {
|
|
86
|
+
return [...(this.rulesByFrom.get(fromService)?.get(toService) ?? [])];
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
getAllRules(): RoutingRule[] {
|
|
90
|
+
return [...this.allRules];
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
get ruleCount(): number {
|
|
94
|
+
return this.allRules.length;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
/**
|
|
98
|
+
* Apply a routing rule to transform a URL.
|
|
99
|
+
* Returns transformed URL, or null if the rule's stripPrefix doesn't match.
|
|
100
|
+
*/
|
|
101
|
+
private applyRule(url: string, rule: RoutingRule): string | null {
|
|
102
|
+
let result = url;
|
|
103
|
+
|
|
104
|
+
// Strip prefix
|
|
105
|
+
if (rule.stripPrefix) {
|
|
106
|
+
if (!result.startsWith(rule.stripPrefix)) {
|
|
107
|
+
return null; // Rule doesn't apply — prefix doesn't match
|
|
108
|
+
}
|
|
109
|
+
const afterPrefix = result.slice(rule.stripPrefix.length);
|
|
110
|
+
// Verify prefix boundary: next char must be '/' or end of string
|
|
111
|
+
if (afterPrefix !== '' && !afterPrefix.startsWith('/')) {
|
|
112
|
+
return null; // Partial prefix match (e.g., /api doesn't strip from /api-v2)
|
|
113
|
+
}
|
|
114
|
+
result = afterPrefix || '/';
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
// Add prefix
|
|
118
|
+
if (rule.addPrefix) {
|
|
119
|
+
if (result.startsWith('/') && rule.addPrefix.endsWith('/')) {
|
|
120
|
+
result = rule.addPrefix + result.slice(1);
|
|
121
|
+
} else {
|
|
122
|
+
result = rule.addPrefix + result;
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
return result;
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
/** Factory function for creating a RoutingMap Resource */
|
|
131
|
+
export function createRoutingMap(): RoutingMapImpl {
|
|
132
|
+
return new RoutingMapImpl();
|
|
133
|
+
}
|
|
@@ -22,18 +22,15 @@ import { RFDBClient } from '@grafema/rfdb-client';
|
|
|
22
22
|
import { existsSync, unlinkSync } from 'fs';
|
|
23
23
|
import { spawn, type ChildProcess } from 'child_process';
|
|
24
24
|
import { join, dirname } from 'path';
|
|
25
|
-
import { fileURLToPath } from 'url';
|
|
26
|
-
import { createRequire } from 'module';
|
|
27
25
|
import { setTimeout as sleep } from 'timers/promises';
|
|
28
26
|
|
|
29
|
-
import type { WireNode, WireEdge, FieldDeclaration, AttrQuery as RFDBAttrQuery } from '@grafema/types';
|
|
27
|
+
import type { WireNode, WireEdge, FieldDeclaration, CommitDelta, AttrQuery as RFDBAttrQuery } from '@grafema/types';
|
|
30
28
|
import type { NodeType, EdgeType } from '@grafema/types';
|
|
31
|
-
import
|
|
29
|
+
import { findRfdbBinary } from '../../utils/findRfdbBinary.js';
|
|
30
|
+
import type { BaseNodeRecord, EdgeRecord, AnyBrandedNode } from '@grafema/types';
|
|
31
|
+
import { brandNodeInternal } from '../../core/brandNodeInternal.js';
|
|
32
32
|
import type { AttrQuery, GraphStats, GraphExport } from '../../core/GraphBackend.js';
|
|
33
33
|
|
|
34
|
-
const __filename = fileURLToPath(import.meta.url);
|
|
35
|
-
const __dirname = dirname(__filename);
|
|
36
|
-
|
|
37
34
|
/**
|
|
38
35
|
* Options for RFDBServerBackend
|
|
39
36
|
*/
|
|
@@ -105,6 +102,7 @@ export class RFDBServerBackend {
|
|
|
105
102
|
private client: RFDBClient | null;
|
|
106
103
|
private serverProcess: ChildProcess | null;
|
|
107
104
|
connected: boolean; // Public for compatibility
|
|
105
|
+
private protocolVersion: number = 2; // Negotiated protocol version
|
|
108
106
|
private edgeTypes: Set<string>;
|
|
109
107
|
private _cachedNodeCounts: Record<string, number> | undefined;
|
|
110
108
|
private _cachedEdgeCounts: Record<string, number> | undefined;
|
|
@@ -166,7 +164,8 @@ export class RFDBServerBackend {
|
|
|
166
164
|
// Verify server is responsive
|
|
167
165
|
await this.client.ping();
|
|
168
166
|
this.connected = true;
|
|
169
|
-
this.
|
|
167
|
+
await this._negotiateProtocol();
|
|
168
|
+
this.log(`[RFDBServerBackend] Connected to RFDB server at ${this.socketPath} (protocol v${this.protocolVersion})`);
|
|
170
169
|
return;
|
|
171
170
|
} catch {
|
|
172
171
|
// Server not running or stale socket
|
|
@@ -190,7 +189,8 @@ export class RFDBServerBackend {
|
|
|
190
189
|
await this.client.connect();
|
|
191
190
|
await this.client.ping();
|
|
192
191
|
this.connected = true;
|
|
193
|
-
this.
|
|
192
|
+
await this._negotiateProtocol();
|
|
193
|
+
this.log(`[RFDBServerBackend] Connected to RFDB server at ${this.socketPath} (protocol v${this.protocolVersion})`);
|
|
194
194
|
}
|
|
195
195
|
|
|
196
196
|
/**
|
|
@@ -201,62 +201,15 @@ export class RFDBServerBackend {
|
|
|
201
201
|
}
|
|
202
202
|
|
|
203
203
|
/**
|
|
204
|
-
* Find RFDB server binary
|
|
205
|
-
*
|
|
206
|
-
* 2. packages/rfdb-server/target/debug
|
|
207
|
-
* 3. @grafema/rfdb npm package
|
|
208
|
-
* 4. ~/.local/bin/rfdb-server (user-installed binary)
|
|
204
|
+
* Find RFDB server binary using shared utility.
|
|
205
|
+
* Delegates to findRfdbBinary() for consistent search across all entry points.
|
|
209
206
|
*/
|
|
210
207
|
private _findServerBinary(): string | null {
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
if (existsSync(releaseBinary)) {
|
|
215
|
-
this.log(`[RFDBServerBackend] Found release binary: ${releaseBinary}`);
|
|
216
|
-
return releaseBinary;
|
|
217
|
-
}
|
|
218
|
-
|
|
219
|
-
// 2. Check debug build
|
|
220
|
-
const debugBinary = join(projectRoot, 'packages/rfdb-server/target/debug/rfdb-server');
|
|
221
|
-
if (existsSync(debugBinary)) {
|
|
222
|
-
this.log(`[RFDBServerBackend] Found debug binary: ${debugBinary}`);
|
|
223
|
-
return debugBinary;
|
|
224
|
-
}
|
|
225
|
-
|
|
226
|
-
// 3. Check @grafema/rfdb npm package
|
|
227
|
-
try {
|
|
228
|
-
const require = createRequire(import.meta.url);
|
|
229
|
-
const rfdbPkg = require.resolve('@grafema/rfdb');
|
|
230
|
-
const rfdbDir = dirname(rfdbPkg);
|
|
231
|
-
const platform = process.platform;
|
|
232
|
-
const arch = process.arch;
|
|
233
|
-
|
|
234
|
-
let platformDir: string;
|
|
235
|
-
if (platform === 'darwin') {
|
|
236
|
-
platformDir = arch === 'arm64' ? 'darwin-arm64' : 'darwin-x64';
|
|
237
|
-
} else if (platform === 'linux') {
|
|
238
|
-
platformDir = arch === 'arm64' ? 'linux-arm64' : 'linux-x64';
|
|
239
|
-
} else {
|
|
240
|
-
platformDir = `${platform}-${arch}`;
|
|
241
|
-
}
|
|
242
|
-
|
|
243
|
-
const npmBinary = join(rfdbDir, 'prebuilt', platformDir, 'rfdb-server');
|
|
244
|
-
if (existsSync(npmBinary)) {
|
|
245
|
-
this.log(`[RFDBServerBackend] Found binary in @grafema/rfdb: ${npmBinary}`);
|
|
246
|
-
return npmBinary;
|
|
247
|
-
}
|
|
248
|
-
} catch {
|
|
249
|
-
// @grafema/rfdb not installed
|
|
250
|
-
}
|
|
251
|
-
|
|
252
|
-
// 4. Check ~/.local/bin (user-installed binary for unsupported platforms)
|
|
253
|
-
const homeBinary = join(process.env.HOME || '', '.local', 'bin', 'rfdb-server');
|
|
254
|
-
if (existsSync(homeBinary)) {
|
|
255
|
-
this.log(`[RFDBServerBackend] Found user binary: ${homeBinary}`);
|
|
256
|
-
return homeBinary;
|
|
208
|
+
const binaryPath = findRfdbBinary();
|
|
209
|
+
if (binaryPath) {
|
|
210
|
+
this.log(`[RFDBServerBackend] Found binary: ${binaryPath}`);
|
|
257
211
|
}
|
|
258
|
-
|
|
259
|
-
return null;
|
|
212
|
+
return binaryPath;
|
|
260
213
|
}
|
|
261
214
|
|
|
262
215
|
/**
|
|
@@ -310,6 +263,23 @@ export class RFDBServerBackend {
|
|
|
310
263
|
this.log(`[RFDBServerBackend] Server started on ${this.socketPath}`);
|
|
311
264
|
}
|
|
312
265
|
|
|
266
|
+
/**
|
|
267
|
+
* Negotiate protocol version with server.
|
|
268
|
+
* Requests v3 (semantic IDs), falls back to v2 if server doesn't support it.
|
|
269
|
+
* Called after ping() confirmed connectivity, so failures here indicate
|
|
270
|
+
* the server doesn't support hello/v3, not network issues.
|
|
271
|
+
*/
|
|
272
|
+
private async _negotiateProtocol(): Promise<void> {
|
|
273
|
+
if (!this.client) return;
|
|
274
|
+
try {
|
|
275
|
+
const hello = await this.client.hello(3);
|
|
276
|
+
this.protocolVersion = hello.protocolVersion;
|
|
277
|
+
} catch {
|
|
278
|
+
// Server predates hello command or doesn't support v3 — safe v2 fallback
|
|
279
|
+
this.protocolVersion = 2;
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
|
|
313
283
|
/**
|
|
314
284
|
* Close client connection. Server continues running to serve other clients.
|
|
315
285
|
*/
|
|
@@ -376,18 +346,25 @@ export class RFDBServerBackend {
|
|
|
376
346
|
if (!this.client) throw new Error('Not connected');
|
|
377
347
|
if (!nodes.length) return;
|
|
378
348
|
|
|
349
|
+
const useV3 = this.protocolVersion >= 3;
|
|
379
350
|
const wireNodes: WireNode[] = nodes.map(n => {
|
|
380
351
|
// Extract metadata from node
|
|
381
352
|
const { id, type, nodeType, node_type, name, file, exported, ...rest } = n;
|
|
382
353
|
|
|
383
|
-
|
|
354
|
+
const wire: WireNode = {
|
|
384
355
|
id: String(id),
|
|
385
356
|
nodeType: (nodeType || node_type || type || 'UNKNOWN') as NodeType,
|
|
386
357
|
name: name || '',
|
|
387
358
|
file: file || '',
|
|
388
359
|
exported: exported || false,
|
|
389
|
-
metadata:
|
|
360
|
+
metadata: useV3
|
|
361
|
+
? JSON.stringify(rest)
|
|
362
|
+
: JSON.stringify({ originalId: String(id), ...rest }),
|
|
390
363
|
};
|
|
364
|
+
if (useV3) {
|
|
365
|
+
wire.semanticId = String(id);
|
|
366
|
+
}
|
|
367
|
+
return wire;
|
|
391
368
|
});
|
|
392
369
|
|
|
393
370
|
await this.client.addNodes(wireNodes);
|
|
@@ -413,22 +390,19 @@ export class RFDBServerBackend {
|
|
|
413
390
|
if (typeof edgeType === 'string') this.edgeTypes.add(edgeType);
|
|
414
391
|
}
|
|
415
392
|
|
|
393
|
+
const useV3 = this.protocolVersion >= 3;
|
|
416
394
|
const wireEdges: WireEdge[] = edges.map(e => {
|
|
417
395
|
const { src, dst, type, edgeType, edge_type, etype, metadata, ...rest } = e;
|
|
418
396
|
|
|
419
397
|
// Flatten metadata: spread both edge-level properties and nested metadata
|
|
420
|
-
const flatMetadata =
|
|
421
|
-
|
|
422
|
-
_origDst: String(dst),
|
|
423
|
-
...rest,
|
|
424
|
-
...(typeof metadata === 'object' && metadata !== null ? metadata : {})
|
|
425
|
-
};
|
|
398
|
+
const flatMetadata = useV3
|
|
399
|
+
? { ...rest, ...(typeof metadata === 'object' && metadata !== null ? metadata : {}) }
|
|
400
|
+
: { _origSrc: String(src), _origDst: String(dst), ...rest, ...(typeof metadata === 'object' && metadata !== null ? metadata : {}) };
|
|
426
401
|
|
|
427
402
|
return {
|
|
428
403
|
src: String(src),
|
|
429
404
|
dst: String(dst),
|
|
430
405
|
edgeType: (edgeType || edge_type || etype || type || 'UNKNOWN') as EdgeType,
|
|
431
|
-
// Store flattened metadata for retrieval
|
|
432
406
|
metadata: JSON.stringify(flatMetadata),
|
|
433
407
|
};
|
|
434
408
|
});
|
|
@@ -474,7 +448,7 @@ export class RFDBServerBackend {
|
|
|
474
448
|
/**
|
|
475
449
|
* Parse a node from wire format to JS format
|
|
476
450
|
*/
|
|
477
|
-
private _parseNode(wireNode: WireNode):
|
|
451
|
+
private _parseNode(wireNode: WireNode): AnyBrandedNode {
|
|
478
452
|
const metadata: Record<string, unknown> = wireNode.metadata ? JSON.parse(wireNode.metadata) : {};
|
|
479
453
|
|
|
480
454
|
// Parse nested JSON strings
|
|
@@ -488,7 +462,9 @@ export class RFDBServerBackend {
|
|
|
488
462
|
}
|
|
489
463
|
}
|
|
490
464
|
|
|
491
|
-
|
|
465
|
+
// Prefer metadata.semanticId (original v1 format preserved by RFDB server),
|
|
466
|
+
// then v3 semanticId, then v2 originalId metadata hack, then raw id
|
|
467
|
+
const humanId = (metadata.semanticId as string) || wireNode.semanticId || (metadata.originalId as string) || wireNode.id;
|
|
492
468
|
|
|
493
469
|
// Exclude standard fields from metadata to prevent overwriting wireNode values
|
|
494
470
|
// REG-325: Metadata spread was overwriting name with LITERAL node data
|
|
@@ -500,10 +476,11 @@ export class RFDBServerBackend {
|
|
|
500
476
|
exported: _exported,
|
|
501
477
|
nodeType: _nodeType,
|
|
502
478
|
originalId: _originalId, // Already extracted above
|
|
479
|
+
semanticId: _semanticId, // Exclude from safeMetadata (used for humanId above)
|
|
503
480
|
...safeMetadata
|
|
504
481
|
} = metadata;
|
|
505
482
|
|
|
506
|
-
|
|
483
|
+
const parsed = {
|
|
507
484
|
id: humanId,
|
|
508
485
|
type: wireNode.nodeType,
|
|
509
486
|
name: wireNode.name,
|
|
@@ -511,6 +488,9 @@ export class RFDBServerBackend {
|
|
|
511
488
|
exported: wireNode.exported,
|
|
512
489
|
...safeMetadata,
|
|
513
490
|
};
|
|
491
|
+
|
|
492
|
+
// Re-brand nodes coming from database
|
|
493
|
+
return brandNodeInternal(parsed);
|
|
514
494
|
}
|
|
515
495
|
|
|
516
496
|
/**
|
|
@@ -518,11 +498,18 @@ export class RFDBServerBackend {
|
|
|
518
498
|
*/
|
|
519
499
|
private _parseEdge(wireEdge: WireEdge): EdgeRecord {
|
|
520
500
|
const meta: Record<string, unknown> = wireEdge.metadata ? JSON.parse(wireEdge.metadata) : {};
|
|
521
|
-
//
|
|
501
|
+
// v3: server resolves src/dst to semantic IDs, use directly
|
|
502
|
+
// v2: fall back to _origSrc/_origDst metadata hack
|
|
522
503
|
const { _origSrc, _origDst, ...rest } = meta;
|
|
504
|
+
const src = this.protocolVersion >= 3
|
|
505
|
+
? wireEdge.src
|
|
506
|
+
: (_origSrc as string) || wireEdge.src;
|
|
507
|
+
const dst = this.protocolVersion >= 3
|
|
508
|
+
? wireEdge.dst
|
|
509
|
+
: (_origDst as string) || wireEdge.dst;
|
|
523
510
|
return {
|
|
524
|
-
src
|
|
525
|
-
dst
|
|
511
|
+
src,
|
|
512
|
+
dst,
|
|
526
513
|
type: wireEdge.edgeType,
|
|
527
514
|
metadata: Object.keys(rest).length > 0 ? rest : undefined,
|
|
528
515
|
};
|
|
@@ -754,6 +741,48 @@ export class RFDBServerBackend {
|
|
|
754
741
|
}));
|
|
755
742
|
}
|
|
756
743
|
|
|
744
|
+
/**
|
|
745
|
+
* Execute unified Datalog query or program.
|
|
746
|
+
* Auto-detects whether input is rules or direct query.
|
|
747
|
+
*/
|
|
748
|
+
async executeDatalog(source: string): Promise<Array<{ bindings: Array<{ name: string; value: string }> }>> {
|
|
749
|
+
if (!this.client) throw new Error('Not connected');
|
|
750
|
+
const results = await this.client.executeDatalog(source);
|
|
751
|
+
return results.map(r => ({
|
|
752
|
+
bindings: Object.entries(r.bindings).map(([name, value]) => ({ name, value }))
|
|
753
|
+
}));
|
|
754
|
+
}
|
|
755
|
+
|
|
756
|
+
// ===========================================================================
|
|
757
|
+
// Batch Operations (RFD-16: CommitBatch protocol)
|
|
758
|
+
// ===========================================================================
|
|
759
|
+
|
|
760
|
+
/**
|
|
761
|
+
* Begin a batch operation. While batching, addNodes/addEdges buffer locally.
|
|
762
|
+
* Call commitBatch() to send all buffered data atomically.
|
|
763
|
+
*/
|
|
764
|
+
beginBatch(): void {
|
|
765
|
+
if (!this.client) throw new Error('Not connected to RFDB server');
|
|
766
|
+
this.client.beginBatch();
|
|
767
|
+
}
|
|
768
|
+
|
|
769
|
+
/**
|
|
770
|
+
* Commit the current batch to the server atomically.
|
|
771
|
+
* Returns a CommitDelta describing what changed.
|
|
772
|
+
*/
|
|
773
|
+
async commitBatch(tags?: string[]): Promise<CommitDelta> {
|
|
774
|
+
if (!this.client) throw new Error('Not connected to RFDB server');
|
|
775
|
+
return this.client.commitBatch(tags);
|
|
776
|
+
}
|
|
777
|
+
|
|
778
|
+
/**
|
|
779
|
+
* Abort the current batch, discarding all buffered data.
|
|
780
|
+
*/
|
|
781
|
+
abortBatch(): void {
|
|
782
|
+
if (!this.client) throw new Error('Not connected to RFDB server');
|
|
783
|
+
this.client.abortBatch();
|
|
784
|
+
}
|
|
785
|
+
|
|
757
786
|
// ===========================================================================
|
|
758
787
|
// Export/Import
|
|
759
788
|
// ===========================================================================
|
|
@@ -12,12 +12,13 @@
|
|
|
12
12
|
* 2. GRAFEMA_RFDB_SERVER environment variable
|
|
13
13
|
* 3. Monorepo target/release (development)
|
|
14
14
|
* 4. Monorepo target/debug (development)
|
|
15
|
-
* 5.
|
|
16
|
-
* 6.
|
|
15
|
+
* 5. System PATH lookup
|
|
16
|
+
* 6. @grafema/rfdb npm package (prebuilt)
|
|
17
|
+
* 7. ~/.local/bin/rfdb-server (user-installed)
|
|
17
18
|
*/
|
|
18
19
|
|
|
19
20
|
import { existsSync } from 'fs';
|
|
20
|
-
import { join, dirname, resolve } from 'path';
|
|
21
|
+
import { join, delimiter, dirname, resolve } from 'path';
|
|
21
22
|
import { createRequire } from 'module';
|
|
22
23
|
import { fileURLToPath } from 'url';
|
|
23
24
|
|
|
@@ -83,7 +84,17 @@ export function findRfdbBinary(options: FindBinaryOptions = {}): string | null {
|
|
|
83
84
|
}
|
|
84
85
|
}
|
|
85
86
|
|
|
86
|
-
// 5.
|
|
87
|
+
// 5. System PATH lookup
|
|
88
|
+
const pathDirs = (process.env.PATH || '').split(delimiter);
|
|
89
|
+
for (const dir of pathDirs) {
|
|
90
|
+
if (!dir) continue;
|
|
91
|
+
const candidate = join(dir, 'rfdb-server');
|
|
92
|
+
if (existsSync(candidate)) {
|
|
93
|
+
return candidate;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
// 6. @grafema/rfdb npm package
|
|
87
98
|
try {
|
|
88
99
|
const require = createRequire(import.meta.url);
|
|
89
100
|
const rfdbPkg = require.resolve('@grafema/rfdb');
|
|
@@ -97,7 +108,7 @@ export function findRfdbBinary(options: FindBinaryOptions = {}): string | null {
|
|
|
97
108
|
// @grafema/rfdb not installed
|
|
98
109
|
}
|
|
99
110
|
|
|
100
|
-
//
|
|
111
|
+
// 7. User-installed binary in ~/.local/bin
|
|
101
112
|
const homeBinary = join(process.env.HOME || '', '.local', 'bin', 'rfdb-server');
|
|
102
113
|
if (existsSync(homeBinary)) {
|
|
103
114
|
return homeBinary;
|
|
@@ -147,14 +158,18 @@ Options:
|
|
|
147
158
|
3. Set environment variable:
|
|
148
159
|
export GRAFEMA_RFDB_SERVER=/path/to/rfdb-server
|
|
149
160
|
|
|
150
|
-
4.
|
|
161
|
+
4. Install to system PATH:
|
|
162
|
+
cargo build --release
|
|
163
|
+
cp target/release/rfdb-server /usr/local/bin/
|
|
164
|
+
|
|
165
|
+
5. Build from source and install:
|
|
151
166
|
git clone https://github.com/Disentinel/grafema.git
|
|
152
167
|
cd grafema/packages/rfdb-server
|
|
153
168
|
cargo build --release
|
|
154
169
|
mkdir -p ~/.local/bin
|
|
155
170
|
cp target/release/rfdb-server ~/.local/bin/
|
|
156
171
|
|
|
157
|
-
|
|
172
|
+
6. Install prebuilt (if available for your platform):
|
|
158
173
|
npm install @grafema/rfdb
|
|
159
174
|
`;
|
|
160
175
|
}
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
*/
|
|
12
12
|
|
|
13
13
|
import { existsSync, statSync } from 'fs';
|
|
14
|
-
import { dirname, resolve, join } from 'path';
|
|
14
|
+
import { dirname, extname, resolve, join } from 'path';
|
|
15
15
|
|
|
16
16
|
/**
|
|
17
17
|
* Default file extensions to try when resolving modules.
|
|
@@ -19,6 +19,19 @@ import { dirname, resolve, join } from 'path';
|
|
|
19
19
|
*/
|
|
20
20
|
export const DEFAULT_EXTENSIONS = ['', '.js', '.mjs', '.cjs', '.jsx', '.ts', '.tsx'];
|
|
21
21
|
|
|
22
|
+
/**
|
|
23
|
+
* TypeScript extension redirects (REG-426).
|
|
24
|
+
* Maps JS-family extensions to their TS equivalents.
|
|
25
|
+
* Used when an import specifies a .js extension but only a .ts file exists.
|
|
26
|
+
* This matches TypeScript's own module resolution behavior for ESM.
|
|
27
|
+
*/
|
|
28
|
+
const TS_EXTENSION_REDIRECTS: Record<string, string[]> = {
|
|
29
|
+
'.js': ['.ts', '.tsx'],
|
|
30
|
+
'.jsx': ['.tsx'],
|
|
31
|
+
'.mjs': ['.mts'],
|
|
32
|
+
'.cjs': ['.cts'],
|
|
33
|
+
};
|
|
34
|
+
|
|
22
35
|
/**
|
|
23
36
|
* Default index files to try when resolving directory imports.
|
|
24
37
|
* Order: JS variants first (most common), then TS variants.
|
|
@@ -177,6 +190,20 @@ export function resolveModulePath(
|
|
|
177
190
|
}
|
|
178
191
|
}
|
|
179
192
|
|
|
193
|
+
// TypeScript extension redirect (REG-426):
|
|
194
|
+
// import './foo.js' → try ./foo.ts when ./foo.js doesn't exist
|
|
195
|
+
const ext = extname(normalizedPath);
|
|
196
|
+
const tsAlternatives = TS_EXTENSION_REDIRECTS[ext];
|
|
197
|
+
if (tsAlternatives) {
|
|
198
|
+
const withoutExt = normalizedPath.slice(0, -ext.length);
|
|
199
|
+
for (const tsExt of tsAlternatives) {
|
|
200
|
+
const testPath = withoutExt + tsExt;
|
|
201
|
+
if (pathExists(testPath, useFilesystem, fileIndex)) {
|
|
202
|
+
return testPath;
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
|
|
180
207
|
// Try index files in directory
|
|
181
208
|
for (const indexFile of indexFiles) {
|
|
182
209
|
const testPath = join(normalizedPath, indexFile);
|