@grafema/core 0.1.0-alpha.1
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/LICENSE +190 -0
- package/README.md +76 -0
- package/dist/Orchestrator.d.ts +142 -0
- package/dist/Orchestrator.d.ts.map +1 -0
- package/dist/Orchestrator.js +481 -0
- package/dist/api/GraphAPI.d.ts +87 -0
- package/dist/api/GraphAPI.d.ts.map +1 -0
- package/dist/api/GraphAPI.js +210 -0
- package/dist/api/GuaranteeAPI.d.ts +147 -0
- package/dist/api/GuaranteeAPI.d.ts.map +1 -0
- package/dist/api/GuaranteeAPI.js +288 -0
- package/dist/core/ASTWorker.d.ts +133 -0
- package/dist/core/ASTWorker.d.ts.map +1 -0
- package/dist/core/ASTWorker.js +352 -0
- package/dist/core/ASTWorkerPool.d.ts +85 -0
- package/dist/core/ASTWorkerPool.d.ts.map +1 -0
- package/dist/core/ASTWorkerPool.js +207 -0
- package/dist/core/AnalysisQueue.d.ts +104 -0
- package/dist/core/AnalysisQueue.d.ts.map +1 -0
- package/dist/core/AnalysisQueue.js +299 -0
- package/dist/core/AnalysisWorker.d.ts +14 -0
- package/dist/core/AnalysisWorker.d.ts.map +1 -0
- package/dist/core/AnalysisWorker.js +307 -0
- package/dist/core/GraphBackend.d.ts +156 -0
- package/dist/core/GraphBackend.d.ts.map +1 -0
- package/dist/core/GraphBackend.js +85 -0
- package/dist/core/GuaranteeManager.d.ts +230 -0
- package/dist/core/GuaranteeManager.d.ts.map +1 -0
- package/dist/core/GuaranteeManager.js +352 -0
- package/dist/core/ManifestStore.d.ts +71 -0
- package/dist/core/ManifestStore.d.ts.map +1 -0
- package/dist/core/ManifestStore.js +146 -0
- package/dist/core/NodeFactory.d.ts +160 -0
- package/dist/core/NodeFactory.d.ts.map +1 -0
- package/dist/core/NodeFactory.js +137 -0
- package/dist/core/NodeId.d.ts +88 -0
- package/dist/core/NodeId.d.ts.map +1 -0
- package/dist/core/NodeId.js +170 -0
- package/dist/core/ParallelAnalyzer.d.ts +120 -0
- package/dist/core/ParallelAnalyzer.d.ts.map +1 -0
- package/dist/core/ParallelAnalyzer.js +331 -0
- package/dist/core/PriorityQueue.d.ts +106 -0
- package/dist/core/PriorityQueue.d.ts.map +1 -0
- package/dist/core/PriorityQueue.js +168 -0
- package/dist/core/Profiler.d.ts +75 -0
- package/dist/core/Profiler.d.ts.map +1 -0
- package/dist/core/Profiler.js +149 -0
- package/dist/core/QueueWorker.d.ts +12 -0
- package/dist/core/QueueWorker.d.ts.map +1 -0
- package/dist/core/QueueWorker.js +567 -0
- package/dist/core/RFDBClient.d.ts +179 -0
- package/dist/core/RFDBClient.d.ts.map +1 -0
- package/dist/core/RFDBClient.js +429 -0
- package/dist/core/Task.d.ts +56 -0
- package/dist/core/Task.d.ts.map +1 -0
- package/dist/core/Task.js +85 -0
- package/dist/core/TaskTypes.d.ts +20 -0
- package/dist/core/TaskTypes.d.ts.map +1 -0
- package/dist/core/TaskTypes.js +10 -0
- package/dist/core/VersionManager.d.ts +166 -0
- package/dist/core/VersionManager.d.ts.map +1 -0
- package/dist/core/VersionManager.js +237 -0
- package/dist/core/WorkerPool.d.ts +82 -0
- package/dist/core/WorkerPool.d.ts.map +1 -0
- package/dist/core/WorkerPool.js +109 -0
- package/dist/core/nodes/CallSiteNode.d.ts +26 -0
- package/dist/core/nodes/CallSiteNode.d.ts.map +1 -0
- package/dist/core/nodes/CallSiteNode.js +44 -0
- package/dist/core/nodes/ClassNode.d.ts +25 -0
- package/dist/core/nodes/ClassNode.d.ts.map +1 -0
- package/dist/core/nodes/ClassNode.js +40 -0
- package/dist/core/nodes/ConstantNode.d.ts +24 -0
- package/dist/core/nodes/ConstantNode.d.ts.map +1 -0
- package/dist/core/nodes/ConstantNode.js +39 -0
- package/dist/core/nodes/DatabaseQueryNode.d.ts +22 -0
- package/dist/core/nodes/DatabaseQueryNode.d.ts.map +1 -0
- package/dist/core/nodes/DatabaseQueryNode.js +37 -0
- package/dist/core/nodes/EntrypointNode.d.ts +102 -0
- package/dist/core/nodes/EntrypointNode.d.ts.map +1 -0
- package/dist/core/nodes/EntrypointNode.js +119 -0
- package/dist/core/nodes/EventListenerNode.d.ts +25 -0
- package/dist/core/nodes/EventListenerNode.d.ts.map +1 -0
- package/dist/core/nodes/EventListenerNode.js +39 -0
- package/dist/core/nodes/ExportNode.d.ts +26 -0
- package/dist/core/nodes/ExportNode.d.ts.map +1 -0
- package/dist/core/nodes/ExportNode.js +40 -0
- package/dist/core/nodes/ExternalStdioNode.d.ts +17 -0
- package/dist/core/nodes/ExternalStdioNode.d.ts.map +1 -0
- package/dist/core/nodes/ExternalStdioNode.js +26 -0
- package/dist/core/nodes/FunctionNode.d.ts +27 -0
- package/dist/core/nodes/FunctionNode.d.ts.map +1 -0
- package/dist/core/nodes/FunctionNode.js +53 -0
- package/dist/core/nodes/GuaranteeNode.d.ts +76 -0
- package/dist/core/nodes/GuaranteeNode.d.ts.map +1 -0
- package/dist/core/nodes/GuaranteeNode.js +117 -0
- package/dist/core/nodes/HttpRequestNode.d.ts +24 -0
- package/dist/core/nodes/HttpRequestNode.d.ts.map +1 -0
- package/dist/core/nodes/HttpRequestNode.js +38 -0
- package/dist/core/nodes/ImportNode.d.ts +27 -0
- package/dist/core/nodes/ImportNode.d.ts.map +1 -0
- package/dist/core/nodes/ImportNode.js +43 -0
- package/dist/core/nodes/LiteralNode.d.ts +26 -0
- package/dist/core/nodes/LiteralNode.d.ts.map +1 -0
- package/dist/core/nodes/LiteralNode.js +40 -0
- package/dist/core/nodes/MethodCallNode.d.ts +29 -0
- package/dist/core/nodes/MethodCallNode.d.ts.map +1 -0
- package/dist/core/nodes/MethodCallNode.js +47 -0
- package/dist/core/nodes/MethodNode.d.ts +29 -0
- package/dist/core/nodes/MethodNode.d.ts.map +1 -0
- package/dist/core/nodes/MethodNode.js +44 -0
- package/dist/core/nodes/ModuleNode.d.ts +29 -0
- package/dist/core/nodes/ModuleNode.d.ts.map +1 -0
- package/dist/core/nodes/ModuleNode.js +49 -0
- package/dist/core/nodes/NodeKind.d.ts +91 -0
- package/dist/core/nodes/NodeKind.d.ts.map +1 -0
- package/dist/core/nodes/NodeKind.js +146 -0
- package/dist/core/nodes/ParameterNode.d.ts +26 -0
- package/dist/core/nodes/ParameterNode.d.ts.map +1 -0
- package/dist/core/nodes/ParameterNode.js +43 -0
- package/dist/core/nodes/ScopeNode.d.ts +32 -0
- package/dist/core/nodes/ScopeNode.d.ts.map +1 -0
- package/dist/core/nodes/ScopeNode.js +47 -0
- package/dist/core/nodes/ServiceNode.d.ts +44 -0
- package/dist/core/nodes/ServiceNode.d.ts.map +1 -0
- package/dist/core/nodes/ServiceNode.js +49 -0
- package/dist/core/nodes/VariableDeclarationNode.d.ts +22 -0
- package/dist/core/nodes/VariableDeclarationNode.d.ts.map +1 -0
- package/dist/core/nodes/VariableDeclarationNode.js +38 -0
- package/dist/core/nodes/index.d.ts +25 -0
- package/dist/core/nodes/index.d.ts.map +1 -0
- package/dist/core/nodes/index.js +30 -0
- package/dist/index.d.ts +57 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +63 -0
- package/dist/plugins/Plugin.d.ts +44 -0
- package/dist/plugins/Plugin.d.ts.map +1 -0
- package/dist/plugins/Plugin.js +46 -0
- package/dist/plugins/analysis/DatabaseAnalyzer.d.ts +23 -0
- package/dist/plugins/analysis/DatabaseAnalyzer.d.ts.map +1 -0
- package/dist/plugins/analysis/DatabaseAnalyzer.js +260 -0
- package/dist/plugins/analysis/ExpressAnalyzer.d.ts +19 -0
- package/dist/plugins/analysis/ExpressAnalyzer.d.ts.map +1 -0
- package/dist/plugins/analysis/ExpressAnalyzer.js +306 -0
- package/dist/plugins/analysis/ExpressRouteAnalyzer.d.ts +17 -0
- package/dist/plugins/analysis/ExpressRouteAnalyzer.d.ts.map +1 -0
- package/dist/plugins/analysis/ExpressRouteAnalyzer.js +308 -0
- package/dist/plugins/analysis/FetchAnalyzer.d.ts +38 -0
- package/dist/plugins/analysis/FetchAnalyzer.d.ts.map +1 -0
- package/dist/plugins/analysis/FetchAnalyzer.js +344 -0
- package/dist/plugins/analysis/IncrementalAnalysisPlugin.d.ts +65 -0
- package/dist/plugins/analysis/IncrementalAnalysisPlugin.d.ts.map +1 -0
- package/dist/plugins/analysis/IncrementalAnalysisPlugin.js +472 -0
- package/dist/plugins/analysis/JSASTAnalyzer.d.ts +84 -0
- package/dist/plugins/analysis/JSASTAnalyzer.d.ts.map +1 -0
- package/dist/plugins/analysis/JSASTAnalyzer.js +1378 -0
- package/dist/plugins/analysis/ReactAnalyzer.d.ts +90 -0
- package/dist/plugins/analysis/ReactAnalyzer.d.ts.map +1 -0
- package/dist/plugins/analysis/ReactAnalyzer.js +1153 -0
- package/dist/plugins/analysis/RustAnalyzer.d.ts +13 -0
- package/dist/plugins/analysis/RustAnalyzer.d.ts.map +1 -0
- package/dist/plugins/analysis/RustAnalyzer.js +259 -0
- package/dist/plugins/analysis/SQLiteAnalyzer.d.ts +21 -0
- package/dist/plugins/analysis/SQLiteAnalyzer.d.ts.map +1 -0
- package/dist/plugins/analysis/SQLiteAnalyzer.js +317 -0
- package/dist/plugins/analysis/ServiceLayerAnalyzer.d.ts +35 -0
- package/dist/plugins/analysis/ServiceLayerAnalyzer.d.ts.map +1 -0
- package/dist/plugins/analysis/ServiceLayerAnalyzer.js +303 -0
- package/dist/plugins/analysis/SocketIOAnalyzer.d.ts +33 -0
- package/dist/plugins/analysis/SocketIOAnalyzer.d.ts.map +1 -0
- package/dist/plugins/analysis/SocketIOAnalyzer.js +283 -0
- package/dist/plugins/analysis/SystemDbAnalyzer.d.ts +27 -0
- package/dist/plugins/analysis/SystemDbAnalyzer.d.ts.map +1 -0
- package/dist/plugins/analysis/SystemDbAnalyzer.js +211 -0
- package/dist/plugins/analysis/ast/ConditionParser.d.ts +85 -0
- package/dist/plugins/analysis/ast/ConditionParser.d.ts.map +1 -0
- package/dist/plugins/analysis/ast/ConditionParser.js +277 -0
- package/dist/plugins/analysis/ast/ExpressionEvaluator.d.ts +15 -0
- package/dist/plugins/analysis/ast/ExpressionEvaluator.d.ts.map +1 -0
- package/dist/plugins/analysis/ast/ExpressionEvaluator.js +91 -0
- package/dist/plugins/analysis/ast/GraphBuilder.d.ts +77 -0
- package/dist/plugins/analysis/ast/GraphBuilder.d.ts.map +1 -0
- package/dist/plugins/analysis/ast/GraphBuilder.js +1077 -0
- package/dist/plugins/analysis/ast/OxcAdapter.d.ts +41 -0
- package/dist/plugins/analysis/ast/OxcAdapter.d.ts.map +1 -0
- package/dist/plugins/analysis/ast/OxcAdapter.js +40 -0
- package/dist/plugins/analysis/ast/types.d.ts +346 -0
- package/dist/plugins/analysis/ast/types.d.ts.map +1 -0
- package/dist/plugins/analysis/ast/types.js +4 -0
- package/dist/plugins/analysis/ast/visitors/ASTVisitor.d.ts +93 -0
- package/dist/plugins/analysis/ast/visitors/ASTVisitor.d.ts.map +1 -0
- package/dist/plugins/analysis/ast/visitors/ASTVisitor.js +24 -0
- package/dist/plugins/analysis/ast/visitors/CallExpressionVisitor.d.ts +77 -0
- package/dist/plugins/analysis/ast/visitors/CallExpressionVisitor.d.ts.map +1 -0
- package/dist/plugins/analysis/ast/visitors/CallExpressionVisitor.js +377 -0
- package/dist/plugins/analysis/ast/visitors/ClassVisitor.d.ts +27 -0
- package/dist/plugins/analysis/ast/visitors/ClassVisitor.d.ts.map +1 -0
- package/dist/plugins/analysis/ast/visitors/ClassVisitor.js +232 -0
- package/dist/plugins/analysis/ast/visitors/FunctionVisitor.d.ts +25 -0
- package/dist/plugins/analysis/ast/visitors/FunctionVisitor.d.ts.map +1 -0
- package/dist/plugins/analysis/ast/visitors/FunctionVisitor.js +172 -0
- package/dist/plugins/analysis/ast/visitors/ImportExportVisitor.d.ts +29 -0
- package/dist/plugins/analysis/ast/visitors/ImportExportVisitor.d.ts.map +1 -0
- package/dist/plugins/analysis/ast/visitors/ImportExportVisitor.js +180 -0
- package/dist/plugins/analysis/ast/visitors/TypeScriptVisitor.d.ts +14 -0
- package/dist/plugins/analysis/ast/visitors/TypeScriptVisitor.d.ts.map +1 -0
- package/dist/plugins/analysis/ast/visitors/TypeScriptVisitor.js +200 -0
- package/dist/plugins/analysis/ast/visitors/VariableVisitor.d.ts +45 -0
- package/dist/plugins/analysis/ast/visitors/VariableVisitor.d.ts.map +1 -0
- package/dist/plugins/analysis/ast/visitors/VariableVisitor.js +150 -0
- package/dist/plugins/analysis/ast/visitors/index.d.ts +17 -0
- package/dist/plugins/analysis/ast/visitors/index.d.ts.map +1 -0
- package/dist/plugins/analysis/ast/visitors/index.js +13 -0
- package/dist/plugins/discovery/DiscoveryPlugin.d.ts +34 -0
- package/dist/plugins/discovery/DiscoveryPlugin.d.ts.map +1 -0
- package/dist/plugins/discovery/DiscoveryPlugin.js +26 -0
- package/dist/plugins/discovery/MonorepoServiceDiscovery.d.ts +26 -0
- package/dist/plugins/discovery/MonorepoServiceDiscovery.d.ts.map +1 -0
- package/dist/plugins/discovery/MonorepoServiceDiscovery.js +79 -0
- package/dist/plugins/discovery/SimpleProjectDiscovery.d.ts +14 -0
- package/dist/plugins/discovery/SimpleProjectDiscovery.d.ts.map +1 -0
- package/dist/plugins/discovery/SimpleProjectDiscovery.js +65 -0
- package/dist/plugins/discovery/ZonServiceDiscovery.d.ts +19 -0
- package/dist/plugins/discovery/ZonServiceDiscovery.d.ts.map +1 -0
- package/dist/plugins/discovery/ZonServiceDiscovery.js +204 -0
- package/dist/plugins/enrichment/AliasTracker.d.ts +40 -0
- package/dist/plugins/enrichment/AliasTracker.d.ts.map +1 -0
- package/dist/plugins/enrichment/AliasTracker.js +290 -0
- package/dist/plugins/enrichment/HTTPConnectionEnricher.d.ts +30 -0
- package/dist/plugins/enrichment/HTTPConnectionEnricher.d.ts.map +1 -0
- package/dist/plugins/enrichment/HTTPConnectionEnricher.js +135 -0
- package/dist/plugins/enrichment/ImportExportLinker.d.ts +30 -0
- package/dist/plugins/enrichment/ImportExportLinker.d.ts.map +1 -0
- package/dist/plugins/enrichment/ImportExportLinker.js +176 -0
- package/dist/plugins/enrichment/InstanceOfResolver.d.ts +21 -0
- package/dist/plugins/enrichment/InstanceOfResolver.d.ts.map +1 -0
- package/dist/plugins/enrichment/InstanceOfResolver.js +117 -0
- package/dist/plugins/enrichment/MethodCallResolver.d.ts +41 -0
- package/dist/plugins/enrichment/MethodCallResolver.d.ts.map +1 -0
- package/dist/plugins/enrichment/MethodCallResolver.js +252 -0
- package/dist/plugins/enrichment/MountPointResolver.d.ts +26 -0
- package/dist/plugins/enrichment/MountPointResolver.d.ts.map +1 -0
- package/dist/plugins/enrichment/MountPointResolver.js +189 -0
- package/dist/plugins/enrichment/PrefixEvaluator.d.ts +89 -0
- package/dist/plugins/enrichment/PrefixEvaluator.d.ts.map +1 -0
- package/dist/plugins/enrichment/PrefixEvaluator.js +415 -0
- package/dist/plugins/enrichment/RustFFIEnricher.d.ts +25 -0
- package/dist/plugins/enrichment/RustFFIEnricher.d.ts.map +1 -0
- package/dist/plugins/enrichment/RustFFIEnricher.js +170 -0
- package/dist/plugins/enrichment/ValueDomainAnalyzer.d.ts +114 -0
- package/dist/plugins/enrichment/ValueDomainAnalyzer.d.ts.map +1 -0
- package/dist/plugins/enrichment/ValueDomainAnalyzer.js +464 -0
- package/dist/plugins/indexing/IncrementalModuleIndexer.d.ts +27 -0
- package/dist/plugins/indexing/IncrementalModuleIndexer.d.ts.map +1 -0
- package/dist/plugins/indexing/IncrementalModuleIndexer.js +238 -0
- package/dist/plugins/indexing/JSModuleIndexer.d.ts +33 -0
- package/dist/plugins/indexing/JSModuleIndexer.d.ts.map +1 -0
- package/dist/plugins/indexing/JSModuleIndexer.js +299 -0
- package/dist/plugins/indexing/RustModuleIndexer.d.ts +28 -0
- package/dist/plugins/indexing/RustModuleIndexer.d.ts.map +1 -0
- package/dist/plugins/indexing/RustModuleIndexer.js +140 -0
- package/dist/plugins/indexing/ServiceDetector.d.ts +46 -0
- package/dist/plugins/indexing/ServiceDetector.d.ts.map +1 -0
- package/dist/plugins/indexing/ServiceDetector.js +164 -0
- package/dist/plugins/validation/CallResolverValidator.d.ts +23 -0
- package/dist/plugins/validation/CallResolverValidator.d.ts.map +1 -0
- package/dist/plugins/validation/CallResolverValidator.js +108 -0
- package/dist/plugins/validation/DataFlowValidator.d.ts +24 -0
- package/dist/plugins/validation/DataFlowValidator.d.ts.map +1 -0
- package/dist/plugins/validation/DataFlowValidator.js +148 -0
- package/dist/plugins/validation/EvalBanValidator.d.ts +25 -0
- package/dist/plugins/validation/EvalBanValidator.d.ts.map +1 -0
- package/dist/plugins/validation/EvalBanValidator.js +123 -0
- package/dist/plugins/validation/GraphConnectivityValidator.d.ts +11 -0
- package/dist/plugins/validation/GraphConnectivityValidator.d.ts.map +1 -0
- package/dist/plugins/validation/GraphConnectivityValidator.js +135 -0
- package/dist/plugins/validation/SQLInjectionValidator.d.ts +43 -0
- package/dist/plugins/validation/SQLInjectionValidator.d.ts.map +1 -0
- package/dist/plugins/validation/SQLInjectionValidator.js +251 -0
- package/dist/plugins/validation/ShadowingDetector.d.ts +26 -0
- package/dist/plugins/validation/ShadowingDetector.d.ts.map +1 -0
- package/dist/plugins/validation/ShadowingDetector.js +119 -0
- package/dist/plugins/validation/TypeScriptDeadCodeValidator.d.ts +21 -0
- package/dist/plugins/validation/TypeScriptDeadCodeValidator.d.ts.map +1 -0
- package/dist/plugins/validation/TypeScriptDeadCodeValidator.js +151 -0
- package/dist/plugins/vcs/GitPlugin.d.ts +84 -0
- package/dist/plugins/vcs/GitPlugin.d.ts.map +1 -0
- package/dist/plugins/vcs/GitPlugin.js +295 -0
- package/dist/plugins/vcs/VCSPlugin.d.ts +133 -0
- package/dist/plugins/vcs/VCSPlugin.d.ts.map +1 -0
- package/dist/plugins/vcs/VCSPlugin.js +82 -0
- package/dist/plugins/vcs/index.d.ts +10 -0
- package/dist/plugins/vcs/index.d.ts.map +1 -0
- package/dist/plugins/vcs/index.js +18 -0
- package/dist/storage/backends/RFDBServerBackend.d.ts +258 -0
- package/dist/storage/backends/RFDBServerBackend.d.ts.map +1 -0
- package/dist/storage/backends/RFDBServerBackend.js +565 -0
- package/dist/storage/backends/typeValidation.d.ts +47 -0
- package/dist/storage/backends/typeValidation.d.ts.map +1 -0
- package/dist/storage/backends/typeValidation.js +137 -0
- package/dist/validation/PathValidator.d.ts +81 -0
- package/dist/validation/PathValidator.d.ts.map +1 -0
- package/dist/validation/PathValidator.js +251 -0
- package/package.json +57 -0
- package/src/.rfguard/current-session.txt +1 -0
- package/src/Orchestrator.ts +673 -0
- package/src/api/GraphAPI.ts +305 -0
- package/src/api/GuaranteeAPI.ts +401 -0
- package/src/core/ASTWorker.ts +567 -0
- package/src/core/ASTWorkerPool.ts +299 -0
- package/src/core/AnalysisQueue.ts +447 -0
- package/src/core/AnalysisWorker.ts +410 -0
- package/src/core/GraphBackend.ts +265 -0
- package/src/core/GuaranteeManager.ts +581 -0
- package/src/core/ManifestStore.ts +196 -0
- package/src/core/NodeFactory.ts +274 -0
- package/src/core/NodeId.ts +257 -0
- package/src/core/ParallelAnalyzer.ts +476 -0
- package/src/core/PriorityQueue.ts +227 -0
- package/src/core/Profiler.ts +188 -0
- package/src/core/QueueWorker.ts +780 -0
- package/src/core/Task.ts +107 -0
- package/src/core/TaskTypes.ts +40 -0
- package/src/core/VersionManager.ts +404 -0
- package/src/core/WorkerPool.ts +180 -0
- package/src/core/nodes/CallSiteNode.ts +72 -0
- package/src/core/nodes/ClassNode.ts +69 -0
- package/src/core/nodes/ConstantNode.ts +63 -0
- package/src/core/nodes/DatabaseQueryNode.ts +60 -0
- package/src/core/nodes/EntrypointNode.ts +164 -0
- package/src/core/nodes/EventListenerNode.ts +64 -0
- package/src/core/nodes/ExportNode.ts +71 -0
- package/src/core/nodes/ExternalStdioNode.ts +36 -0
- package/src/core/nodes/FunctionNode.ts +78 -0
- package/src/core/nodes/GuaranteeNode.ts +162 -0
- package/src/core/nodes/HttpRequestNode.ts +63 -0
- package/src/core/nodes/ImportNode.ts +75 -0
- package/src/core/nodes/LiteralNode.ts +67 -0
- package/src/core/nodes/MethodCallNode.ts +79 -0
- package/src/core/nodes/MethodNode.ts +78 -0
- package/src/core/nodes/ModuleNode.ts +74 -0
- package/src/core/nodes/NodeKind.ts +171 -0
- package/src/core/nodes/ParameterNode.ts +73 -0
- package/src/core/nodes/ScopeNode.ts +80 -0
- package/src/core/nodes/ServiceNode.ts +86 -0
- package/src/core/nodes/VariableDeclarationNode.ts +60 -0
- package/src/core/nodes/index.ts +49 -0
- package/src/index.ts +93 -0
- package/src/plugins/Plugin.ts +74 -0
- package/src/plugins/analysis/DatabaseAnalyzer.ts +322 -0
- package/src/plugins/analysis/ExpressAnalyzer.ts +401 -0
- package/src/plugins/analysis/ExpressRouteAnalyzer.ts +414 -0
- package/src/plugins/analysis/FetchAnalyzer.ts +441 -0
- package/src/plugins/analysis/IncrementalAnalysisPlugin.ts +686 -0
- package/src/plugins/analysis/JSASTAnalyzer.ts +1680 -0
- package/src/plugins/analysis/ReactAnalyzer.ts +1368 -0
- package/src/plugins/analysis/RustAnalyzer.ts +438 -0
- package/src/plugins/analysis/SQLiteAnalyzer.ts +388 -0
- package/src/plugins/analysis/ServiceLayerAnalyzer.ts +429 -0
- package/src/plugins/analysis/SocketIOAnalyzer.ts +395 -0
- package/src/plugins/analysis/SystemDbAnalyzer.ts +284 -0
- package/src/plugins/analysis/ast/ConditionParser.ts +333 -0
- package/src/plugins/analysis/ast/ExpressionEvaluator.ts +117 -0
- package/src/plugins/analysis/ast/GraphBuilder.ts +1371 -0
- package/src/plugins/analysis/ast/OxcAdapter.ts +63 -0
- package/src/plugins/analysis/ast/types.ts +400 -0
- package/src/plugins/analysis/ast/visitors/ASTVisitor.ts +137 -0
- package/src/plugins/analysis/ast/visitors/CallExpressionVisitor.ts +528 -0
- package/src/plugins/analysis/ast/visitors/ClassVisitor.ts +339 -0
- package/src/plugins/analysis/ast/visitors/FunctionVisitor.ts +273 -0
- package/src/plugins/analysis/ast/visitors/ImportExportVisitor.ts +259 -0
- package/src/plugins/analysis/ast/visitors/TypeScriptVisitor.ts +235 -0
- package/src/plugins/analysis/ast/visitors/VariableVisitor.ts +268 -0
- package/src/plugins/analysis/ast/visitors/index.ts +36 -0
- package/src/plugins/discovery/DiscoveryPlugin.ts +50 -0
- package/src/plugins/discovery/MonorepoServiceDiscovery.ts +117 -0
- package/src/plugins/discovery/SimpleProjectDiscovery.ts +102 -0
- package/src/plugins/enrichment/AliasTracker.ts +399 -0
- package/src/plugins/enrichment/HTTPConnectionEnricher.ts +192 -0
- package/src/plugins/enrichment/ImportExportLinker.ts +221 -0
- package/src/plugins/enrichment/InstanceOfResolver.ts +165 -0
- package/src/plugins/enrichment/MethodCallResolver.ts +333 -0
- package/src/plugins/enrichment/MountPointResolver.ts +264 -0
- package/src/plugins/enrichment/PrefixEvaluator.ts +527 -0
- package/src/plugins/enrichment/RustFFIEnricher.ts +218 -0
- package/src/plugins/enrichment/ValueDomainAnalyzer.ts +682 -0
- package/src/plugins/indexing/IncrementalModuleIndexer.ts +287 -0
- package/src/plugins/indexing/JSModuleIndexer.ts +374 -0
- package/src/plugins/indexing/RustModuleIndexer.ts +160 -0
- package/src/plugins/indexing/ServiceDetector.ts +230 -0
- package/src/plugins/validation/CallResolverValidator.ts +170 -0
- package/src/plugins/validation/DataFlowValidator.ts +233 -0
- package/src/plugins/validation/EvalBanValidator.ts +175 -0
- package/src/plugins/validation/GraphConnectivityValidator.ts +201 -0
- package/src/plugins/validation/SQLInjectionValidator.ts +363 -0
- package/src/plugins/validation/ShadowingDetector.ts +173 -0
- package/src/plugins/validation/TypeScriptDeadCodeValidator.ts +203 -0
- package/src/plugins/vcs/GitPlugin.ts +344 -0
- package/src/plugins/vcs/VCSPlugin.ts +190 -0
- package/src/plugins/vcs/index.ts +32 -0
- package/src/storage/backends/RFDBServerBackend.ts +687 -0
- package/src/storage/backends/typeValidation.ts +151 -0
- package/src/validation/PathValidator.ts +342 -0
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Базовый класс для VCS плагинов (Version Control System)
|
|
3
|
+
*
|
|
4
|
+
* Этот плагин не работает с графом напрямую, а предоставляет
|
|
5
|
+
* информацию о версиях файлов для incremental analysis
|
|
6
|
+
*
|
|
7
|
+
* Поддерживаемые VCS:
|
|
8
|
+
* - Git
|
|
9
|
+
* - CVS
|
|
10
|
+
* - SVN
|
|
11
|
+
* - Mercurial
|
|
12
|
+
* - Perforce
|
|
13
|
+
*/
|
|
14
|
+
/**
|
|
15
|
+
* VCS Plugin configuration
|
|
16
|
+
*/
|
|
17
|
+
export interface VCSConfig {
|
|
18
|
+
rootPath?: string;
|
|
19
|
+
[key: string]: unknown;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* VCS Plugin metadata
|
|
23
|
+
*/
|
|
24
|
+
export interface VCSPluginMetadata {
|
|
25
|
+
name: string;
|
|
26
|
+
type: 'vcs';
|
|
27
|
+
supported: boolean;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Changed file info
|
|
31
|
+
*/
|
|
32
|
+
export interface ChangedFile {
|
|
33
|
+
path: string;
|
|
34
|
+
status: string;
|
|
35
|
+
oldPath?: string;
|
|
36
|
+
contentHash?: string | null;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Diff hunk
|
|
40
|
+
*/
|
|
41
|
+
export interface DiffHunk {
|
|
42
|
+
oldStart: number;
|
|
43
|
+
oldLines: number;
|
|
44
|
+
newStart: number;
|
|
45
|
+
newLines: number;
|
|
46
|
+
lines: string[];
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* File diff
|
|
50
|
+
*/
|
|
51
|
+
export interface FileDiff {
|
|
52
|
+
path: string;
|
|
53
|
+
hunks: DiffHunk[];
|
|
54
|
+
}
|
|
55
|
+
export declare abstract class VCSPlugin {
|
|
56
|
+
config: VCSConfig;
|
|
57
|
+
rootPath: string;
|
|
58
|
+
constructor(config?: VCSConfig);
|
|
59
|
+
/**
|
|
60
|
+
* Метаданные плагина
|
|
61
|
+
*/
|
|
62
|
+
abstract get metadata(): VCSPluginMetadata;
|
|
63
|
+
/**
|
|
64
|
+
* Проверить, доступна ли VCS в текущей директории
|
|
65
|
+
*/
|
|
66
|
+
abstract isAvailable(): Promise<boolean>;
|
|
67
|
+
/**
|
|
68
|
+
* Получить список изменённых файлов (uncommitted changes)
|
|
69
|
+
*/
|
|
70
|
+
abstract getChangedFiles(): Promise<ChangedFile[]>;
|
|
71
|
+
/**
|
|
72
|
+
* Получить содержимое файла из последнего коммита (main version)
|
|
73
|
+
*/
|
|
74
|
+
abstract getCommittedContent(filePath: string): Promise<string | null>;
|
|
75
|
+
/**
|
|
76
|
+
* Получить diff для конкретного файла
|
|
77
|
+
*/
|
|
78
|
+
abstract getFileDiff(filePath: string): Promise<FileDiff>;
|
|
79
|
+
/**
|
|
80
|
+
* Получить текущую ветку
|
|
81
|
+
*/
|
|
82
|
+
abstract getCurrentBranch(): Promise<string>;
|
|
83
|
+
/**
|
|
84
|
+
* Получить хеш последнего коммита
|
|
85
|
+
*/
|
|
86
|
+
abstract getLastCommitHash(): Promise<string | null>;
|
|
87
|
+
/**
|
|
88
|
+
* Проверить, является ли файл отслеживаемым (tracked)
|
|
89
|
+
*/
|
|
90
|
+
abstract isTracked(filePath: string): Promise<boolean>;
|
|
91
|
+
/**
|
|
92
|
+
* Проверить, есть ли uncommitted изменения
|
|
93
|
+
*/
|
|
94
|
+
hasUncommittedChanges(): Promise<boolean>;
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Вспомогательные типы для результатов
|
|
98
|
+
*/
|
|
99
|
+
export declare const FileStatus: {
|
|
100
|
+
readonly ADDED: "added";
|
|
101
|
+
readonly MODIFIED: "modified";
|
|
102
|
+
readonly DELETED: "deleted";
|
|
103
|
+
readonly RENAMED: "renamed";
|
|
104
|
+
readonly COPIED: "copied";
|
|
105
|
+
readonly UNTRACKED: "untracked";
|
|
106
|
+
};
|
|
107
|
+
export type FileStatusType = typeof FileStatus[keyof typeof FileStatus];
|
|
108
|
+
/**
|
|
109
|
+
* VCS Plugin class constructor type
|
|
110
|
+
*/
|
|
111
|
+
export interface VCSPluginConstructor {
|
|
112
|
+
new (config?: VCSConfig): VCSPlugin;
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Фабрика для создания VCS плагинов
|
|
116
|
+
* Автоматически определяет доступную VCS систему
|
|
117
|
+
*/
|
|
118
|
+
export declare class VCSPluginFactory {
|
|
119
|
+
static availablePlugins: VCSPluginConstructor[];
|
|
120
|
+
/**
|
|
121
|
+
* Зарегистрировать VCS плагин
|
|
122
|
+
*/
|
|
123
|
+
static register(pluginClass: VCSPluginConstructor): void;
|
|
124
|
+
/**
|
|
125
|
+
* Автоматически определить и создать подходящий VCS плагин
|
|
126
|
+
*/
|
|
127
|
+
static detect(config?: VCSConfig): Promise<VCSPlugin | null>;
|
|
128
|
+
/**
|
|
129
|
+
* Создать плагин по имени
|
|
130
|
+
*/
|
|
131
|
+
static create(name: string, config?: VCSConfig): VCSPlugin | null;
|
|
132
|
+
}
|
|
133
|
+
//# sourceMappingURL=VCSPlugin.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VCSPlugin.d.ts","sourceRoot":"","sources":["../../../src/plugins/vcs/VCSPlugin.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,KAAK,CAAC;IACZ,SAAS,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,QAAQ,EAAE,CAAC;CACnB;AAED,8BAAsB,SAAS;IAC7B,MAAM,EAAE,SAAS,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;gBAEL,MAAM,GAAE,SAAc;IAKlC;;OAEG;IACH,QAAQ,KAAK,QAAQ,IAAI,iBAAiB,CAAC;IAE3C;;OAEG;IACH,QAAQ,CAAC,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAExC;;OAEG;IACH,QAAQ,CAAC,eAAe,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;IAElD;;OAEG;IACH,QAAQ,CAAC,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAEtE;;OAEG;IACH,QAAQ,CAAC,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IAEzD;;OAEG;IACH,QAAQ,CAAC,gBAAgB,IAAI,OAAO,CAAC,MAAM,CAAC;IAE5C;;OAEG;IACH,QAAQ,CAAC,iBAAiB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAEpD;;OAEG;IACH,QAAQ,CAAC,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAEtD;;OAEG;IACG,qBAAqB,IAAI,OAAO,CAAC,OAAO,CAAC;CAIhD;AAED;;GAEG;AACH,eAAO,MAAM,UAAU;;;;;;;CAOb,CAAC;AAEX,MAAM,MAAM,cAAc,GAAG,OAAO,UAAU,CAAC,MAAM,OAAO,UAAU,CAAC,CAAC;AAExE;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,KAAK,MAAM,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;CACrC;AAED;;;GAGG;AACH,qBAAa,gBAAgB;IAC3B,MAAM,CAAC,gBAAgB,EAAE,oBAAoB,EAAE,CAAM;IAErD;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,oBAAoB,GAAG,IAAI;IAIxD;;OAEG;WACU,MAAM,CAAC,MAAM,GAAE,SAAc,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;IAkBtE;;OAEG;IACH,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,GAAE,SAAc,GAAG,SAAS,GAAG,IAAI;CAYtE"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Базовый класс для VCS плагинов (Version Control System)
|
|
3
|
+
*
|
|
4
|
+
* Этот плагин не работает с графом напрямую, а предоставляет
|
|
5
|
+
* информацию о версиях файлов для incremental analysis
|
|
6
|
+
*
|
|
7
|
+
* Поддерживаемые VCS:
|
|
8
|
+
* - Git
|
|
9
|
+
* - CVS
|
|
10
|
+
* - SVN
|
|
11
|
+
* - Mercurial
|
|
12
|
+
* - Perforce
|
|
13
|
+
*/
|
|
14
|
+
export class VCSPlugin {
|
|
15
|
+
config;
|
|
16
|
+
rootPath;
|
|
17
|
+
constructor(config = {}) {
|
|
18
|
+
this.config = config;
|
|
19
|
+
this.rootPath = config.rootPath || process.cwd();
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Проверить, есть ли uncommitted изменения
|
|
23
|
+
*/
|
|
24
|
+
async hasUncommittedChanges() {
|
|
25
|
+
const changedFiles = await this.getChangedFiles();
|
|
26
|
+
return changedFiles.length > 0;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Вспомогательные типы для результатов
|
|
31
|
+
*/
|
|
32
|
+
export const FileStatus = {
|
|
33
|
+
ADDED: 'added',
|
|
34
|
+
MODIFIED: 'modified',
|
|
35
|
+
DELETED: 'deleted',
|
|
36
|
+
RENAMED: 'renamed',
|
|
37
|
+
COPIED: 'copied',
|
|
38
|
+
UNTRACKED: 'untracked'
|
|
39
|
+
};
|
|
40
|
+
/**
|
|
41
|
+
* Фабрика для создания VCS плагинов
|
|
42
|
+
* Автоматически определяет доступную VCS систему
|
|
43
|
+
*/
|
|
44
|
+
export class VCSPluginFactory {
|
|
45
|
+
static availablePlugins = [];
|
|
46
|
+
/**
|
|
47
|
+
* Зарегистрировать VCS плагин
|
|
48
|
+
*/
|
|
49
|
+
static register(pluginClass) {
|
|
50
|
+
this.availablePlugins.push(pluginClass);
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Автоматически определить и создать подходящий VCS плагин
|
|
54
|
+
*/
|
|
55
|
+
static async detect(config = {}) {
|
|
56
|
+
for (const PluginClass of this.availablePlugins) {
|
|
57
|
+
const plugin = new PluginClass(config);
|
|
58
|
+
try {
|
|
59
|
+
if (await plugin.isAvailable()) {
|
|
60
|
+
console.log(`[VCS] Detected ${plugin.metadata.name}`);
|
|
61
|
+
return plugin;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
catch {
|
|
65
|
+
// Игнорируем ошибки и пробуем следующий плагин
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
console.warn('[VCS] No VCS system detected');
|
|
69
|
+
return null;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Создать плагин по имени
|
|
73
|
+
*/
|
|
74
|
+
static create(name, config = {}) {
|
|
75
|
+
const PluginClass = this.availablePlugins.find(Plugin => new Plugin(config).metadata.name === name);
|
|
76
|
+
if (!PluginClass) {
|
|
77
|
+
console.error(`[VCS] Plugin "${name}" not found`);
|
|
78
|
+
return null;
|
|
79
|
+
}
|
|
80
|
+
return new PluginClass(config);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* VCS Plugins Export
|
|
3
|
+
*
|
|
4
|
+
* Экспортируем VCS плагины для работы с различными системами контроля версий
|
|
5
|
+
*/
|
|
6
|
+
export { VCSPlugin, FileStatus, VCSPluginFactory } from './VCSPlugin.js';
|
|
7
|
+
export type { VCSConfig, VCSPluginMetadata, ChangedFile, DiffHunk, FileDiff, FileStatusType, VCSPluginConstructor } from './VCSPlugin.js';
|
|
8
|
+
export { GitPlugin } from './GitPlugin.js';
|
|
9
|
+
export type { CommitInfo } from './GitPlugin.js';
|
|
10
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/plugins/vcs/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AACzE,YAAY,EACV,SAAS,EACT,iBAAiB,EACjB,WAAW,EACX,QAAQ,EACR,QAAQ,EACR,cAAc,EACd,oBAAoB,EACrB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,YAAY,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* VCS Plugins Export
|
|
3
|
+
*
|
|
4
|
+
* Экспортируем VCS плагины для работы с различными системами контроля версий
|
|
5
|
+
*/
|
|
6
|
+
export { VCSPlugin, FileStatus, VCSPluginFactory } from './VCSPlugin.js';
|
|
7
|
+
export { GitPlugin } from './GitPlugin.js';
|
|
8
|
+
/**
|
|
9
|
+
* Автоматическая регистрация всех VCS плагинов
|
|
10
|
+
*/
|
|
11
|
+
import { VCSPluginFactory } from './VCSPlugin.js';
|
|
12
|
+
import { GitPlugin } from './GitPlugin.js';
|
|
13
|
+
// Регистрируем Git плагин
|
|
14
|
+
VCSPluginFactory.register(GitPlugin);
|
|
15
|
+
// В будущем добавим:
|
|
16
|
+
// VCSPluginFactory.register(CVSPlugin);
|
|
17
|
+
// VCSPluginFactory.register(SVNPlugin);
|
|
18
|
+
// VCSPluginFactory.register(MercurialPlugin);
|
|
@@ -0,0 +1,258 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* RFDBServerBackend - Graph backend using RFDB server via Unix socket
|
|
3
|
+
*
|
|
4
|
+
* Replaces ReginaFlowBackend's direct NAPI binding with socket-based
|
|
5
|
+
* communication to a shared RFDB server. This allows multiple processes
|
|
6
|
+
* (MCP server, analysis workers) to share the same graph database.
|
|
7
|
+
*
|
|
8
|
+
* Socket path defaults to `{dbPath}/../rfdb.sock` (e.g., .grafema/rfdb.sock),
|
|
9
|
+
* ensuring each project has its own socket and avoiding conflicts when
|
|
10
|
+
* multiple MCP instances run simultaneously.
|
|
11
|
+
*
|
|
12
|
+
* Usage:
|
|
13
|
+
* const backend = new RFDBServerBackend({
|
|
14
|
+
* dbPath: '/project/.grafema/graph.rfdb' // socket will be /project/.grafema/rfdb.sock
|
|
15
|
+
* });
|
|
16
|
+
* await backend.connect();
|
|
17
|
+
* await backend.addNodes([...]);
|
|
18
|
+
* await backend.flush();
|
|
19
|
+
*/
|
|
20
|
+
import type { NodeType, EdgeType } from '@grafema/types';
|
|
21
|
+
import type { AttrQuery, GraphStats, GraphExport } from '../../core/GraphBackend.js';
|
|
22
|
+
/**
|
|
23
|
+
* Options for RFDBServerBackend
|
|
24
|
+
*/
|
|
25
|
+
export interface RFDBServerBackendOptions {
|
|
26
|
+
socketPath?: string;
|
|
27
|
+
dbPath?: string;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Node as returned from the backend
|
|
31
|
+
*/
|
|
32
|
+
export interface BackendNode {
|
|
33
|
+
id: string;
|
|
34
|
+
type: string;
|
|
35
|
+
nodeType: string;
|
|
36
|
+
name: string;
|
|
37
|
+
file: string;
|
|
38
|
+
exported: boolean;
|
|
39
|
+
[key: string]: unknown;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Edge as returned from the backend
|
|
43
|
+
*/
|
|
44
|
+
export interface BackendEdge {
|
|
45
|
+
src: string;
|
|
46
|
+
dst: string;
|
|
47
|
+
type: string;
|
|
48
|
+
edgeType: string;
|
|
49
|
+
[key: string]: unknown;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Input node format (flexible)
|
|
53
|
+
*/
|
|
54
|
+
export interface InputNode {
|
|
55
|
+
id: string;
|
|
56
|
+
type?: string;
|
|
57
|
+
nodeType?: string;
|
|
58
|
+
node_type?: string;
|
|
59
|
+
name?: string;
|
|
60
|
+
file?: string;
|
|
61
|
+
exported?: boolean;
|
|
62
|
+
[key: string]: unknown;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Input edge format (flexible)
|
|
66
|
+
*/
|
|
67
|
+
export interface InputEdge {
|
|
68
|
+
src: string;
|
|
69
|
+
dst: string;
|
|
70
|
+
type?: string;
|
|
71
|
+
edgeType?: string;
|
|
72
|
+
edge_type?: string;
|
|
73
|
+
[key: string]: unknown;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Query for finding nodes
|
|
77
|
+
*/
|
|
78
|
+
export interface NodeQuery {
|
|
79
|
+
nodeType?: NodeType;
|
|
80
|
+
type?: NodeType;
|
|
81
|
+
name?: string;
|
|
82
|
+
file?: string;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Backend statistics
|
|
86
|
+
*/
|
|
87
|
+
export interface BackendStats extends GraphStats {
|
|
88
|
+
nodesByType: Record<string, number>;
|
|
89
|
+
edgesByType: Record<string, number>;
|
|
90
|
+
}
|
|
91
|
+
export declare class RFDBServerBackend {
|
|
92
|
+
readonly socketPath: string;
|
|
93
|
+
readonly dbPath: string | undefined;
|
|
94
|
+
private client;
|
|
95
|
+
private serverProcess;
|
|
96
|
+
connected: boolean;
|
|
97
|
+
private edgeTypes;
|
|
98
|
+
private _cachedNodeCounts;
|
|
99
|
+
private _cachedEdgeCounts;
|
|
100
|
+
constructor(options?: RFDBServerBackendOptions);
|
|
101
|
+
/**
|
|
102
|
+
* Connect to RFDB server, starting it if necessary
|
|
103
|
+
*/
|
|
104
|
+
connect(): Promise<void>;
|
|
105
|
+
/**
|
|
106
|
+
* Alias for connect()
|
|
107
|
+
*/
|
|
108
|
+
initialize(): Promise<void>;
|
|
109
|
+
/**
|
|
110
|
+
* Start RFDB server process
|
|
111
|
+
*/
|
|
112
|
+
private _startServer;
|
|
113
|
+
/**
|
|
114
|
+
* Close connection and stop server if we started it
|
|
115
|
+
*/
|
|
116
|
+
close(): Promise<void>;
|
|
117
|
+
/**
|
|
118
|
+
* Clear the database
|
|
119
|
+
*/
|
|
120
|
+
clear(): Promise<void>;
|
|
121
|
+
/**
|
|
122
|
+
* Flush data to disk
|
|
123
|
+
*/
|
|
124
|
+
flush(): Promise<void>;
|
|
125
|
+
/**
|
|
126
|
+
* Add a single node
|
|
127
|
+
*/
|
|
128
|
+
addNode(node: InputNode): Promise<void>;
|
|
129
|
+
/**
|
|
130
|
+
* Add multiple nodes
|
|
131
|
+
*/
|
|
132
|
+
addNodes(nodes: InputNode[]): Promise<void>;
|
|
133
|
+
/**
|
|
134
|
+
* Add a single edge
|
|
135
|
+
*/
|
|
136
|
+
addEdge(edge: InputEdge): Promise<void>;
|
|
137
|
+
/**
|
|
138
|
+
* Add multiple edges
|
|
139
|
+
*/
|
|
140
|
+
addEdges(edges: InputEdge[], skipValidation?: boolean): Promise<void>;
|
|
141
|
+
/**
|
|
142
|
+
* Get a node by ID
|
|
143
|
+
*/
|
|
144
|
+
getNode(id: string): Promise<BackendNode | null>;
|
|
145
|
+
/**
|
|
146
|
+
* Check if node exists
|
|
147
|
+
*/
|
|
148
|
+
nodeExists(id: string): Promise<boolean>;
|
|
149
|
+
/**
|
|
150
|
+
* Delete a node
|
|
151
|
+
*/
|
|
152
|
+
deleteNode(id: string): Promise<void>;
|
|
153
|
+
/**
|
|
154
|
+
* Find nodes by attributes
|
|
155
|
+
*/
|
|
156
|
+
findByAttr(query: AttrQuery): Promise<string[]>;
|
|
157
|
+
/**
|
|
158
|
+
* Parse a node from wire format to JS format
|
|
159
|
+
*/
|
|
160
|
+
private _parseNode;
|
|
161
|
+
/**
|
|
162
|
+
* Async generator for querying nodes
|
|
163
|
+
*/
|
|
164
|
+
queryNodes(query: NodeQuery): AsyncGenerator<BackendNode, void, unknown>;
|
|
165
|
+
/**
|
|
166
|
+
* Get ALL nodes matching query (collects from queryNodes into array)
|
|
167
|
+
*/
|
|
168
|
+
getAllNodes(query?: NodeQuery): Promise<BackendNode[]>;
|
|
169
|
+
/**
|
|
170
|
+
* Delete an edge
|
|
171
|
+
*/
|
|
172
|
+
deleteEdge(src: string, dst: string, type: string): Promise<void>;
|
|
173
|
+
/**
|
|
174
|
+
* Get all edges
|
|
175
|
+
*/
|
|
176
|
+
getAllEdges(): Promise<BackendEdge[]>;
|
|
177
|
+
/**
|
|
178
|
+
* Get all edges (async version)
|
|
179
|
+
*/
|
|
180
|
+
getAllEdgesAsync(): Promise<BackendEdge[]>;
|
|
181
|
+
/**
|
|
182
|
+
* Get outgoing edges from a node
|
|
183
|
+
*/
|
|
184
|
+
getOutgoingEdges(nodeId: string, edgeTypes?: EdgeType[] | null): Promise<BackendEdge[]>;
|
|
185
|
+
/**
|
|
186
|
+
* Get incoming edges to a node
|
|
187
|
+
*/
|
|
188
|
+
getIncomingEdges(nodeId: string, edgeTypes?: EdgeType[] | null): Promise<BackendEdge[]>;
|
|
189
|
+
/**
|
|
190
|
+
* BFS traversal
|
|
191
|
+
*/
|
|
192
|
+
bfs(startIds: string[], maxDepth: number, edgeTypes: EdgeType[]): Promise<string[]>;
|
|
193
|
+
/**
|
|
194
|
+
* DFS traversal
|
|
195
|
+
*/
|
|
196
|
+
dfs(startIds: string[], maxDepth: number, edgeTypes?: EdgeType[]): Promise<string[]>;
|
|
197
|
+
/**
|
|
198
|
+
* Get node count
|
|
199
|
+
*/
|
|
200
|
+
nodeCount(): Promise<number>;
|
|
201
|
+
/**
|
|
202
|
+
* Get edge count
|
|
203
|
+
*/
|
|
204
|
+
edgeCount(): Promise<number>;
|
|
205
|
+
/**
|
|
206
|
+
* Get statistics
|
|
207
|
+
*/
|
|
208
|
+
getStats(): Promise<BackendStats>;
|
|
209
|
+
/**
|
|
210
|
+
* Count nodes by type (sync, returns cached value)
|
|
211
|
+
*/
|
|
212
|
+
countNodesByType(_types?: string[] | null): Promise<Record<string, number>>;
|
|
213
|
+
/**
|
|
214
|
+
* Count edges by type
|
|
215
|
+
*/
|
|
216
|
+
countEdgesByType(_edgeTypes?: string[] | null): Promise<Record<string, number>>;
|
|
217
|
+
/**
|
|
218
|
+
* Refresh cached counts (call after analysis)
|
|
219
|
+
*/
|
|
220
|
+
refreshCounts(): Promise<void>;
|
|
221
|
+
/**
|
|
222
|
+
* Check a guarantee (Datalog rule) and return violations
|
|
223
|
+
*/
|
|
224
|
+
checkGuarantee(ruleSource: string): Promise<Array<{
|
|
225
|
+
bindings: Array<{
|
|
226
|
+
name: string;
|
|
227
|
+
value: string;
|
|
228
|
+
}>;
|
|
229
|
+
}>>;
|
|
230
|
+
/**
|
|
231
|
+
* Load Datalog rules
|
|
232
|
+
*/
|
|
233
|
+
datalogLoadRules(source: string): Promise<number>;
|
|
234
|
+
/**
|
|
235
|
+
* Clear Datalog rules
|
|
236
|
+
*/
|
|
237
|
+
datalogClearRules(): Promise<void>;
|
|
238
|
+
/**
|
|
239
|
+
* Run a Datalog query
|
|
240
|
+
*/
|
|
241
|
+
datalogQuery(query: string): Promise<Array<{
|
|
242
|
+
bindings: Array<{
|
|
243
|
+
name: string;
|
|
244
|
+
value: string;
|
|
245
|
+
}>;
|
|
246
|
+
}>>;
|
|
247
|
+
/**
|
|
248
|
+
* Export graph (for tests)
|
|
249
|
+
*/
|
|
250
|
+
export(): Promise<GraphExport>;
|
|
251
|
+
/**
|
|
252
|
+
* Find nodes by predicate (for compatibility)
|
|
253
|
+
*/
|
|
254
|
+
findNodes(predicate: (node: BackendNode) => boolean): Promise<BackendNode[]>;
|
|
255
|
+
get graph(): this;
|
|
256
|
+
}
|
|
257
|
+
export default RFDBServerBackend;
|
|
258
|
+
//# sourceMappingURL=RFDBServerBackend.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RFDBServerBackend.d.ts","sourceRoot":"","sources":["../../../src/storage/backends/RFDBServerBackend.ts"],"names":[],"mappings":"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"}
|