@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,150 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* VariableVisitor - handles module-level variable declarations
|
|
3
|
+
*
|
|
4
|
+
* Handles:
|
|
5
|
+
* - VariableDeclaration (const, let, var at module level)
|
|
6
|
+
* - NewExpression tracking for class instantiation
|
|
7
|
+
* - Destructuring patterns
|
|
8
|
+
*/
|
|
9
|
+
import { ASTVisitor } from './ASTVisitor.js';
|
|
10
|
+
import { ExpressionEvaluator } from '../ExpressionEvaluator.js';
|
|
11
|
+
export class VariableVisitor extends ASTVisitor {
|
|
12
|
+
extractVariableNamesFromPattern;
|
|
13
|
+
trackVariableAssignment;
|
|
14
|
+
/**
|
|
15
|
+
* @param module - Current module being analyzed
|
|
16
|
+
* @param collections - Must contain arrays and counter refs
|
|
17
|
+
* @param extractVariableNamesFromPattern - Helper for destructuring
|
|
18
|
+
* @param trackVariableAssignment - Helper for data flow tracking
|
|
19
|
+
*/
|
|
20
|
+
constructor(module, collections, extractVariableNamesFromPattern, trackVariableAssignment) {
|
|
21
|
+
super(module, collections);
|
|
22
|
+
this.extractVariableNamesFromPattern = extractVariableNamesFromPattern;
|
|
23
|
+
this.trackVariableAssignment = trackVariableAssignment;
|
|
24
|
+
}
|
|
25
|
+
getHandlers() {
|
|
26
|
+
const { module } = this;
|
|
27
|
+
const variableDeclarations = this.collections.variableDeclarations ?? [];
|
|
28
|
+
const classInstantiations = this.collections.classInstantiations ?? [];
|
|
29
|
+
const literals = (this.collections.literals ?? []);
|
|
30
|
+
const variableAssignments = this.collections.variableAssignments ?? [];
|
|
31
|
+
const varDeclCounterRef = (this.collections.varDeclCounterRef ?? { value: 0 });
|
|
32
|
+
const literalCounterRef = (this.collections.literalCounterRef ?? { value: 0 });
|
|
33
|
+
const extractVariableNamesFromPattern = this.extractVariableNamesFromPattern;
|
|
34
|
+
const trackVariableAssignment = this.trackVariableAssignment;
|
|
35
|
+
return {
|
|
36
|
+
VariableDeclaration: (path) => {
|
|
37
|
+
// Only module-level variables
|
|
38
|
+
const functionParent = path.getFunctionParent();
|
|
39
|
+
if (!functionParent) {
|
|
40
|
+
const varNode = path.node;
|
|
41
|
+
const isConst = varNode.kind === 'const';
|
|
42
|
+
varNode.declarations.forEach((declarator) => {
|
|
43
|
+
// Extract all variable names from the pattern (handles destructuring)
|
|
44
|
+
const variables = extractVariableNamesFromPattern(declarator.id);
|
|
45
|
+
variables.forEach((varInfo) => {
|
|
46
|
+
const literalValue = ExpressionEvaluator.extractLiteralValue(declarator.init);
|
|
47
|
+
const isLiteral = literalValue !== null;
|
|
48
|
+
const isNewExpression = declarator.init && declarator.init.type === 'NewExpression';
|
|
49
|
+
// For const with literal or NewExpression create CONSTANT
|
|
50
|
+
// For everything else - VARIABLE
|
|
51
|
+
const shouldBeConstant = isConst && (isLiteral || isNewExpression);
|
|
52
|
+
const varId = shouldBeConstant
|
|
53
|
+
? `CONSTANT#${varInfo.name}#${module.file}#${varInfo.loc.start.line}:${varInfo.loc.start.column}:${varDeclCounterRef.value++}`
|
|
54
|
+
: `VARIABLE#${varInfo.name}#${module.file}#${varInfo.loc.start.line}:${varInfo.loc.start.column}:${varDeclCounterRef.value++}`;
|
|
55
|
+
if (shouldBeConstant) {
|
|
56
|
+
// CONSTANT node
|
|
57
|
+
const constantData = {
|
|
58
|
+
id: varId,
|
|
59
|
+
type: 'CONSTANT',
|
|
60
|
+
name: varInfo.name,
|
|
61
|
+
file: module.file,
|
|
62
|
+
line: varInfo.loc.start.line,
|
|
63
|
+
parentScopeId: module.id
|
|
64
|
+
};
|
|
65
|
+
if (isLiteral) {
|
|
66
|
+
constantData.value = literalValue;
|
|
67
|
+
}
|
|
68
|
+
variableDeclarations.push(constantData);
|
|
69
|
+
// If NewExpression, track for CLASS and INSTANCE_OF
|
|
70
|
+
if (isNewExpression) {
|
|
71
|
+
const newExpr = declarator.init;
|
|
72
|
+
if (newExpr.callee.type === 'Identifier') {
|
|
73
|
+
const className = newExpr.callee.name;
|
|
74
|
+
classInstantiations.push({
|
|
75
|
+
variableId: varId,
|
|
76
|
+
variableName: varInfo.name,
|
|
77
|
+
className: className,
|
|
78
|
+
line: varInfo.loc.start.line,
|
|
79
|
+
parentScopeId: module.id
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
else {
|
|
85
|
+
variableDeclarations.push({
|
|
86
|
+
id: varId,
|
|
87
|
+
type: 'VARIABLE',
|
|
88
|
+
name: varInfo.name,
|
|
89
|
+
file: module.file,
|
|
90
|
+
line: varInfo.loc.start.line,
|
|
91
|
+
parentScopeId: module.id
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
// Track assignment for data flow analysis
|
|
95
|
+
if (declarator.init) {
|
|
96
|
+
// Handle destructuring - create EXPRESSION for property path
|
|
97
|
+
if (varInfo.propertyPath || varInfo.arrayIndex !== undefined) {
|
|
98
|
+
// Create EXPRESSION node for the property access
|
|
99
|
+
const initName = declarator.init.type === 'Identifier'
|
|
100
|
+
? declarator.init.name
|
|
101
|
+
: 'expr';
|
|
102
|
+
let expressionPath = initName;
|
|
103
|
+
if (varInfo.propertyPath) {
|
|
104
|
+
expressionPath = `${initName}.${varInfo.propertyPath.join('.')}`;
|
|
105
|
+
}
|
|
106
|
+
else if (varInfo.arrayIndex !== undefined) {
|
|
107
|
+
expressionPath = `${initName}[${varInfo.arrayIndex}]`;
|
|
108
|
+
}
|
|
109
|
+
const expressionId = `EXPRESSION#${expressionPath}#${module.file}#${varInfo.loc.start.line}:${varInfo.loc.start.column}`;
|
|
110
|
+
// Create EXPRESSION node representing the property access
|
|
111
|
+
literals.push({
|
|
112
|
+
id: expressionId,
|
|
113
|
+
type: 'EXPRESSION',
|
|
114
|
+
expressionType: varInfo.propertyPath ? 'MemberExpression' : 'ArrayAccess',
|
|
115
|
+
path: expressionPath,
|
|
116
|
+
baseName: initName,
|
|
117
|
+
propertyPath: varInfo.propertyPath || null,
|
|
118
|
+
arrayIndex: varInfo.arrayIndex,
|
|
119
|
+
file: module.file,
|
|
120
|
+
line: varInfo.loc.start.line
|
|
121
|
+
});
|
|
122
|
+
// Create ASSIGNED_FROM edge: VARIABLE -> EXPRESSION
|
|
123
|
+
variableAssignments.push({
|
|
124
|
+
variableId: varId,
|
|
125
|
+
sourceId: expressionId,
|
|
126
|
+
sourceType: 'EXPRESSION'
|
|
127
|
+
});
|
|
128
|
+
// Also create DERIVES_FROM edge: EXPRESSION -> base variable (if identifier)
|
|
129
|
+
if (declarator.init.type === 'Identifier') {
|
|
130
|
+
variableAssignments.push({
|
|
131
|
+
variableId: expressionId,
|
|
132
|
+
sourceId: null, // Will be resolved by name
|
|
133
|
+
sourceName: declarator.init.name,
|
|
134
|
+
sourceType: 'DERIVES_FROM_VARIABLE',
|
|
135
|
+
file: module.file
|
|
136
|
+
});
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
else {
|
|
140
|
+
// Normal assignment tracking
|
|
141
|
+
trackVariableAssignment(declarator.init, varId, varInfo.name, module, varInfo.loc.start.line, literals, variableAssignments, literalCounterRef);
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
});
|
|
145
|
+
});
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
};
|
|
149
|
+
}
|
|
150
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AST Visitors for JSASTAnalyzer
|
|
3
|
+
*
|
|
4
|
+
* Each visitor handles specific AST node types and extracts relevant data
|
|
5
|
+
* into shared collections.
|
|
6
|
+
*/
|
|
7
|
+
export { ASTVisitor } from './ASTVisitor.js';
|
|
8
|
+
export type { VisitorModule, VisitorCollections, VisitorHandlers, VisitorHandler, CounterRef, ProcessedNodes, VariableAssignment, LocationInfo } from './ASTVisitor.js';
|
|
9
|
+
export { ImportExportVisitor } from './ImportExportVisitor.js';
|
|
10
|
+
export { VariableVisitor } from './VariableVisitor.js';
|
|
11
|
+
export type { VariableInfo, ExtractVariableNamesCallback, TrackVariableAssignmentCallback } from './VariableVisitor.js';
|
|
12
|
+
export { FunctionVisitor } from './FunctionVisitor.js';
|
|
13
|
+
export type { AnalyzeFunctionBodyCallback } from './FunctionVisitor.js';
|
|
14
|
+
export { ClassVisitor } from './ClassVisitor.js';
|
|
15
|
+
export { CallExpressionVisitor } from './CallExpressionVisitor.js';
|
|
16
|
+
export { TypeScriptVisitor } from './TypeScriptVisitor.js';
|
|
17
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/plugins/analysis/ast/visitors/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,YAAY,EACV,aAAa,EACb,kBAAkB,EAClB,eAAe,EACf,cAAc,EACd,UAAU,EACV,cAAc,EACd,kBAAkB,EAClB,YAAY,EACb,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAE/D,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,YAAY,EACV,YAAY,EACZ,4BAA4B,EAC5B,+BAA+B,EAChC,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,YAAY,EAAE,2BAA2B,EAAE,MAAM,sBAAsB,CAAC;AAExE,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAEnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AST Visitors for JSASTAnalyzer
|
|
3
|
+
*
|
|
4
|
+
* Each visitor handles specific AST node types and extracts relevant data
|
|
5
|
+
* into shared collections.
|
|
6
|
+
*/
|
|
7
|
+
export { ASTVisitor } from './ASTVisitor.js';
|
|
8
|
+
export { ImportExportVisitor } from './ImportExportVisitor.js';
|
|
9
|
+
export { VariableVisitor } from './VariableVisitor.js';
|
|
10
|
+
export { FunctionVisitor } from './FunctionVisitor.js';
|
|
11
|
+
export { ClassVisitor } from './ClassVisitor.js';
|
|
12
|
+
export { CallExpressionVisitor } from './CallExpressionVisitor.js';
|
|
13
|
+
export { TypeScriptVisitor } from './TypeScriptVisitor.js';
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Базовый класс для плагинов DISCOVERY фазы
|
|
3
|
+
*
|
|
4
|
+
* DISCOVERY фаза отвечает за:
|
|
5
|
+
* 1. Поиск сервисов/компонентов в проекте
|
|
6
|
+
* 2. Создание SERVICE нод
|
|
7
|
+
* 3. Возврат манифеста для последующих фаз
|
|
8
|
+
*/
|
|
9
|
+
import { Plugin } from '../Plugin.js';
|
|
10
|
+
import type { PluginContext, PluginResult, PluginMetadata } from '../Plugin.js';
|
|
11
|
+
export declare abstract class DiscoveryPlugin extends Plugin {
|
|
12
|
+
constructor(config?: Record<string, unknown>);
|
|
13
|
+
get metadata(): PluginMetadata;
|
|
14
|
+
/**
|
|
15
|
+
* Выполнить discovery
|
|
16
|
+
*
|
|
17
|
+
* @param context - PluginContext
|
|
18
|
+
* context.projectPath - корневая директория проекта
|
|
19
|
+
*
|
|
20
|
+
* @returns Promise<PluginResult>
|
|
21
|
+
* result.metadata.services - массив найденных сервисов
|
|
22
|
+
* [
|
|
23
|
+
* {
|
|
24
|
+
* id: string,
|
|
25
|
+
* name: string,
|
|
26
|
+
* path: string,
|
|
27
|
+
* type: string,
|
|
28
|
+
* metadata: Object
|
|
29
|
+
* }
|
|
30
|
+
* ]
|
|
31
|
+
*/
|
|
32
|
+
abstract execute(context: PluginContext): Promise<PluginResult>;
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=DiscoveryPlugin.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DiscoveryPlugin.d.ts","sourceRoot":"","sources":["../../../src/plugins/discovery/DiscoveryPlugin.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAEhF,8BAAsB,eAAgB,SAAQ,MAAM;gBACtC,MAAM,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM;IAIhD,IAAI,QAAQ,IAAI,cAAc,CAW7B;IAED;;;;;;;;;;;;;;;;;OAiBG;IACH,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;CAChE"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Базовый класс для плагинов DISCOVERY фазы
|
|
3
|
+
*
|
|
4
|
+
* DISCOVERY фаза отвечает за:
|
|
5
|
+
* 1. Поиск сервисов/компонентов в проекте
|
|
6
|
+
* 2. Создание SERVICE нод
|
|
7
|
+
* 3. Возврат манифеста для последующих фаз
|
|
8
|
+
*/
|
|
9
|
+
import { Plugin } from '../Plugin.js';
|
|
10
|
+
export class DiscoveryPlugin extends Plugin {
|
|
11
|
+
constructor(config = {}) {
|
|
12
|
+
super(config);
|
|
13
|
+
}
|
|
14
|
+
get metadata() {
|
|
15
|
+
return {
|
|
16
|
+
name: this.constructor.name,
|
|
17
|
+
phase: 'DISCOVERY',
|
|
18
|
+
priority: 100,
|
|
19
|
+
creates: {
|
|
20
|
+
nodes: ['SERVICE'],
|
|
21
|
+
edges: []
|
|
22
|
+
},
|
|
23
|
+
dependencies: []
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MonorepoServiceDiscovery - плагин для поиска сервисов в монорепозитории
|
|
3
|
+
*
|
|
4
|
+
* Стратегия discovery:
|
|
5
|
+
* 1. Ищет директорию pkg/ в корне проекта
|
|
6
|
+
* 2. Каждая поддиректория в pkg/ считается сервисом
|
|
7
|
+
* 3. Создаёт SERVICE ноды для каждого найденного сервиса
|
|
8
|
+
*/
|
|
9
|
+
import { DiscoveryPlugin } from './DiscoveryPlugin.js';
|
|
10
|
+
import type { PluginContext, PluginResult, PluginMetadata } from '../Plugin.js';
|
|
11
|
+
/**
|
|
12
|
+
* Configuration options
|
|
13
|
+
*/
|
|
14
|
+
interface MonorepoConfig extends Record<string, unknown> {
|
|
15
|
+
servicesDir?: string;
|
|
16
|
+
excludeDirs?: string[];
|
|
17
|
+
}
|
|
18
|
+
export declare class MonorepoServiceDiscovery extends DiscoveryPlugin {
|
|
19
|
+
private servicesDir;
|
|
20
|
+
private excludeDirs;
|
|
21
|
+
constructor(config?: MonorepoConfig);
|
|
22
|
+
get metadata(): PluginMetadata;
|
|
23
|
+
execute(context: PluginContext): Promise<PluginResult>;
|
|
24
|
+
}
|
|
25
|
+
export {};
|
|
26
|
+
//# sourceMappingURL=MonorepoServiceDiscovery.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MonorepoServiceDiscovery.d.ts","sourceRoot":"","sources":["../../../src/plugins/discovery/MonorepoServiceDiscovery.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAehF;;GAEG;AACH,UAAU,cAAe,SAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACtD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,qBAAa,wBAAyB,SAAQ,eAAe;IAC3D,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,WAAW,CAAW;gBAElB,MAAM,GAAE,cAAmB;IAOvC,IAAI,QAAQ,IAAI,cAAc,CAW7B;IAEK,OAAO,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;CA0D7D"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MonorepoServiceDiscovery - плагин для поиска сервисов в монорепозитории
|
|
3
|
+
*
|
|
4
|
+
* Стратегия discovery:
|
|
5
|
+
* 1. Ищет директорию pkg/ в корне проекта
|
|
6
|
+
* 2. Каждая поддиректория в pkg/ считается сервисом
|
|
7
|
+
* 3. Создаёт SERVICE ноды для каждого найденного сервиса
|
|
8
|
+
*/
|
|
9
|
+
import { DiscoveryPlugin } from './DiscoveryPlugin.js';
|
|
10
|
+
import { createSuccessResult, createErrorResult } from '../Plugin.js';
|
|
11
|
+
import { readdirSync, statSync, existsSync } from 'fs';
|
|
12
|
+
import { join } from 'path';
|
|
13
|
+
export class MonorepoServiceDiscovery extends DiscoveryPlugin {
|
|
14
|
+
servicesDir;
|
|
15
|
+
excludeDirs;
|
|
16
|
+
constructor(config = {}) {
|
|
17
|
+
super(config);
|
|
18
|
+
// Настройки по умолчанию
|
|
19
|
+
this.servicesDir = config.servicesDir || 'pkg';
|
|
20
|
+
this.excludeDirs = config.excludeDirs || ['.git', 'node_modules', 'build', 'dist'];
|
|
21
|
+
}
|
|
22
|
+
get metadata() {
|
|
23
|
+
return {
|
|
24
|
+
name: 'MonorepoServiceDiscovery',
|
|
25
|
+
phase: 'DISCOVERY',
|
|
26
|
+
priority: 100,
|
|
27
|
+
creates: {
|
|
28
|
+
nodes: ['SERVICE'],
|
|
29
|
+
edges: []
|
|
30
|
+
},
|
|
31
|
+
dependencies: []
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
async execute(context) {
|
|
35
|
+
const { projectPath, graph } = context;
|
|
36
|
+
const servicesPath = join(projectPath, this.servicesDir);
|
|
37
|
+
console.log(`[MonorepoServiceDiscovery] Looking for services in: ${servicesPath}`);
|
|
38
|
+
if (!existsSync(servicesPath)) {
|
|
39
|
+
return createErrorResult(new Error(`Services directory not found: ${servicesPath}`));
|
|
40
|
+
}
|
|
41
|
+
try {
|
|
42
|
+
const services = [];
|
|
43
|
+
const entries = readdirSync(servicesPath);
|
|
44
|
+
console.log(`[MonorepoServiceDiscovery] Found ${entries.length} entries`);
|
|
45
|
+
for (const entry of entries) {
|
|
46
|
+
const fullPath = join(servicesPath, entry);
|
|
47
|
+
const stat = statSync(fullPath);
|
|
48
|
+
// Пропускаем файлы и исключённые директории
|
|
49
|
+
if (!stat.isDirectory() || this.excludeDirs.includes(entry)) {
|
|
50
|
+
continue;
|
|
51
|
+
}
|
|
52
|
+
// Создаём SERVICE ноду
|
|
53
|
+
const serviceId = `service:${entry}`;
|
|
54
|
+
// Cast through unknown since we're creating a dynamic service node
|
|
55
|
+
const serviceNode = {
|
|
56
|
+
id: serviceId,
|
|
57
|
+
type: 'SERVICE',
|
|
58
|
+
name: entry,
|
|
59
|
+
path: fullPath,
|
|
60
|
+
metadata: {
|
|
61
|
+
discoveryMethod: 'monorepo',
|
|
62
|
+
servicePath: fullPath
|
|
63
|
+
}
|
|
64
|
+
};
|
|
65
|
+
await graph.addNode(serviceNode);
|
|
66
|
+
services.push({
|
|
67
|
+
id: serviceId,
|
|
68
|
+
name: entry,
|
|
69
|
+
path: fullPath,
|
|
70
|
+
type: 'monorepo-service'
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
return createSuccessResult({ nodes: services.length, edges: 0 }, { services });
|
|
74
|
+
}
|
|
75
|
+
catch (error) {
|
|
76
|
+
return createErrorResult(error);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SimpleProjectDiscovery - универсальный discovery плагин
|
|
3
|
+
*
|
|
4
|
+
* Находит сервис по package.json в корне проекта.
|
|
5
|
+
* Работает для любого JS/TS проекта.
|
|
6
|
+
* Используется как дефолтный discovery когда нет специфичных плагинов.
|
|
7
|
+
*/
|
|
8
|
+
import { Plugin } from '../Plugin.js';
|
|
9
|
+
import type { PluginContext, PluginResult, PluginMetadata } from '../Plugin.js';
|
|
10
|
+
export declare class SimpleProjectDiscovery extends Plugin {
|
|
11
|
+
get metadata(): PluginMetadata;
|
|
12
|
+
execute(context: PluginContext): Promise<PluginResult>;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=SimpleProjectDiscovery.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SimpleProjectDiscovery.d.ts","sourceRoot":"","sources":["../../../src/plugins/discovery/SimpleProjectDiscovery.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,OAAO,EAAE,MAAM,EAA0C,MAAM,cAAc,CAAC;AAC9E,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AA2BhF,qBAAa,sBAAuB,SAAQ,MAAM;IAEhD,IAAI,QAAQ,IAAI,cAAc,CAW7B;IAEK,OAAO,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;CA+C7D"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SimpleProjectDiscovery - универсальный discovery плагин
|
|
3
|
+
*
|
|
4
|
+
* Находит сервис по package.json в корне проекта.
|
|
5
|
+
* Работает для любого JS/TS проекта.
|
|
6
|
+
* Используется как дефолтный discovery когда нет специфичных плагинов.
|
|
7
|
+
*/
|
|
8
|
+
import { existsSync, readFileSync } from 'fs';
|
|
9
|
+
import { join } from 'path';
|
|
10
|
+
import { NodeFactory } from '../../core/NodeFactory.js';
|
|
11
|
+
import { Plugin, createSuccessResult, createErrorResult } from '../Plugin.js';
|
|
12
|
+
export class SimpleProjectDiscovery extends Plugin {
|
|
13
|
+
get metadata() {
|
|
14
|
+
return {
|
|
15
|
+
name: 'SimpleProjectDiscovery',
|
|
16
|
+
phase: 'DISCOVERY',
|
|
17
|
+
priority: 50, // Lower priority than specialized discovery plugins
|
|
18
|
+
creates: {
|
|
19
|
+
nodes: ['SERVICE'],
|
|
20
|
+
edges: []
|
|
21
|
+
},
|
|
22
|
+
dependencies: []
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
async execute(context) {
|
|
26
|
+
const { graph } = context;
|
|
27
|
+
// projectPath can be at top level (DISCOVERY phase) or in manifest/config
|
|
28
|
+
const projectPath = context.projectPath || context.manifest?.projectPath || context.config?.projectPath;
|
|
29
|
+
if (!projectPath) {
|
|
30
|
+
return createErrorResult(new Error('projectPath not found in context'));
|
|
31
|
+
}
|
|
32
|
+
const packageJsonPath = join(projectPath, 'package.json');
|
|
33
|
+
if (!existsSync(packageJsonPath)) {
|
|
34
|
+
return createErrorResult(new Error(`package.json not found: ${packageJsonPath}`));
|
|
35
|
+
}
|
|
36
|
+
try {
|
|
37
|
+
const packageJson = JSON.parse(readFileSync(packageJsonPath, 'utf-8'));
|
|
38
|
+
const serviceName = packageJson.name || 'unnamed-service';
|
|
39
|
+
const entrypoint = packageJson.main || 'index.js';
|
|
40
|
+
// Используем NodeFactory для создания SERVICE ноды
|
|
41
|
+
const serviceNode = NodeFactory.createService(serviceName, projectPath, {
|
|
42
|
+
discoveryMethod: 'simple',
|
|
43
|
+
entrypoint,
|
|
44
|
+
version: packageJson.version,
|
|
45
|
+
description: packageJson.description,
|
|
46
|
+
dependencies: Object.keys(packageJson.dependencies || {})
|
|
47
|
+
});
|
|
48
|
+
await graph.addNode(serviceNode);
|
|
49
|
+
const service = {
|
|
50
|
+
id: serviceNode.id,
|
|
51
|
+
name: serviceName,
|
|
52
|
+
path: join(projectPath, entrypoint),
|
|
53
|
+
type: 'simple-project',
|
|
54
|
+
metadata: {
|
|
55
|
+
entrypoint: join(projectPath, entrypoint),
|
|
56
|
+
packageJson
|
|
57
|
+
}
|
|
58
|
+
};
|
|
59
|
+
return createSuccessResult({ nodes: 1, edges: 0 }, { services: [service] });
|
|
60
|
+
}
|
|
61
|
+
catch (error) {
|
|
62
|
+
return createErrorResult(error);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ZonServiceDiscovery - плагин для поиска сервисов в zon1 монорепозитории
|
|
3
|
+
*
|
|
4
|
+
* Точная реализация логики из file2host.js:
|
|
5
|
+
* 1. Читает servers.js - база данных серверов
|
|
6
|
+
* 2. Использует zserver_conf.prepare_conf() для получения конфигурации каждого сервера
|
|
7
|
+
* 3. Читает k8s/deploy/configs/apps.json - kubernetes приложения
|
|
8
|
+
* 4. Извлекает entrypoint'ы для каждого сервиса
|
|
9
|
+
*/
|
|
10
|
+
import { DiscoveryPlugin } from './DiscoveryPlugin.js';
|
|
11
|
+
import type { PluginContext, PluginResult, PluginMetadata } from '../Plugin.js';
|
|
12
|
+
export declare class ZonServiceDiscovery extends DiscoveryPlugin {
|
|
13
|
+
constructor(config?: Record<string, unknown>);
|
|
14
|
+
static __loaded: boolean;
|
|
15
|
+
get metadata(): PluginMetadata;
|
|
16
|
+
private hostname_base;
|
|
17
|
+
execute(context: PluginContext): Promise<PluginResult>;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=ZonServiceDiscovery.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ZonServiceDiscovery.d.ts","sourceRoot":"","sources":["../../../src/plugins/discovery/ZonServiceDiscovery.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AA6FhF,qBAAa,mBAAoB,SAAQ,eAAe;gBAC1C,MAAM,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM;IAKhD,MAAM,CAAC,QAAQ,UAOV;IAEL,IAAI,QAAQ,IAAI,cAAc,CAW7B;IAED,OAAO,CAAC,aAAa;IAIf,OAAO,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;CA8L7D"}
|