@grafema/core 0.1.0-alpha.5 → 0.1.1-alpha
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 +0 -1
- package/dist/Orchestrator.d.ts +24 -2
- package/dist/Orchestrator.d.ts.map +1 -1
- package/dist/Orchestrator.js +197 -24
- package/dist/config/ConfigLoader.d.ts +72 -0
- package/dist/config/ConfigLoader.d.ts.map +1 -0
- package/dist/config/ConfigLoader.js +187 -0
- package/dist/config/index.d.ts +6 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +4 -0
- package/dist/core/ASTWorker.d.ts +11 -36
- package/dist/core/ASTWorker.d.ts.map +1 -1
- package/dist/core/ASTWorker.js +93 -99
- package/dist/core/CoverageAnalyzer.d.ts +65 -0
- package/dist/core/CoverageAnalyzer.d.ts.map +1 -0
- package/dist/core/CoverageAnalyzer.js +198 -0
- package/dist/core/FileNodeManager.d.ts +40 -0
- package/dist/core/FileNodeManager.d.ts.map +1 -0
- package/dist/core/FileNodeManager.js +84 -0
- package/dist/core/GraphFreshnessChecker.d.ts +33 -0
- package/dist/core/GraphFreshnessChecker.d.ts.map +1 -0
- package/dist/core/GraphFreshnessChecker.js +101 -0
- package/dist/core/HashUtils.d.ts +24 -0
- package/dist/core/HashUtils.d.ts.map +1 -0
- package/dist/core/HashUtils.js +45 -0
- package/dist/core/IncrementalReanalyzer.d.ts +36 -0
- package/dist/core/IncrementalReanalyzer.d.ts.map +1 -0
- package/dist/core/IncrementalReanalyzer.js +132 -0
- package/dist/core/NodeFactory.d.ts +225 -17
- package/dist/core/NodeFactory.d.ts.map +1 -1
- package/dist/core/NodeFactory.js +208 -18
- package/dist/core/ScopeTracker.d.ts +84 -0
- package/dist/core/ScopeTracker.d.ts.map +1 -0
- package/dist/core/ScopeTracker.js +116 -0
- package/dist/core/SemanticId.d.ts +90 -0
- package/dist/core/SemanticId.d.ts.map +1 -0
- package/dist/core/SemanticId.js +115 -0
- package/dist/core/VersionManager.d.ts.map +1 -1
- package/dist/core/VersionManager.js +3 -2
- package/dist/core/nodes/ArgumentExpressionNode.d.ts +43 -0
- package/dist/core/nodes/ArgumentExpressionNode.d.ts.map +1 -0
- package/dist/core/nodes/ArgumentExpressionNode.js +60 -0
- package/dist/core/nodes/ArrayLiteralNode.d.ts +27 -0
- package/dist/core/nodes/ArrayLiteralNode.d.ts.map +1 -0
- package/dist/core/nodes/ArrayLiteralNode.js +41 -0
- package/dist/core/nodes/CallSiteNode.d.ts +28 -0
- package/dist/core/nodes/CallSiteNode.d.ts.map +1 -1
- package/dist/core/nodes/CallSiteNode.js +46 -0
- package/dist/core/nodes/ClassNode.d.ts +33 -1
- package/dist/core/nodes/ClassNode.d.ts.map +1 -1
- package/dist/core/nodes/ClassNode.js +46 -2
- package/dist/core/nodes/DecoratorNode.d.ts +42 -0
- package/dist/core/nodes/DecoratorNode.d.ts.map +1 -0
- package/dist/core/nodes/DecoratorNode.js +62 -0
- package/dist/core/nodes/EnumNode.d.ts +42 -0
- package/dist/core/nodes/EnumNode.d.ts.map +1 -0
- package/dist/core/nodes/EnumNode.js +54 -0
- package/dist/core/nodes/ExportNode.d.ts +37 -1
- package/dist/core/nodes/ExportNode.d.ts.map +1 -1
- package/dist/core/nodes/ExportNode.js +48 -2
- package/dist/core/nodes/ExpressionNode.d.ts +97 -0
- package/dist/core/nodes/ExpressionNode.d.ts.map +1 -0
- package/dist/core/nodes/ExpressionNode.js +178 -0
- package/dist/core/nodes/ExternalModuleNode.d.ts +28 -0
- package/dist/core/nodes/ExternalModuleNode.d.ts.map +1 -0
- package/dist/core/nodes/ExternalModuleNode.js +41 -0
- package/dist/core/nodes/ExternalStdioNode.d.ts +13 -6
- package/dist/core/nodes/ExternalStdioNode.d.ts.map +1 -1
- package/dist/core/nodes/ExternalStdioNode.js +15 -8
- package/dist/core/nodes/FunctionNode.d.ts +36 -0
- package/dist/core/nodes/FunctionNode.d.ts.map +1 -1
- package/dist/core/nodes/FunctionNode.js +80 -1
- package/dist/core/nodes/ImportNode.d.ts +19 -5
- package/dist/core/nodes/ImportNode.d.ts.map +1 -1
- package/dist/core/nodes/ImportNode.js +23 -5
- package/dist/core/nodes/InterfaceNode.d.ts +46 -0
- package/dist/core/nodes/InterfaceNode.d.ts.map +1 -0
- package/dist/core/nodes/InterfaceNode.js +55 -0
- package/dist/core/nodes/IssueNode.d.ts +73 -0
- package/dist/core/nodes/IssueNode.d.ts.map +1 -0
- package/dist/core/nodes/IssueNode.js +129 -0
- package/dist/core/nodes/MethodCallNode.d.ts +30 -0
- package/dist/core/nodes/MethodCallNode.d.ts.map +1 -1
- package/dist/core/nodes/MethodCallNode.js +49 -0
- package/dist/core/nodes/MethodNode.d.ts +32 -0
- package/dist/core/nodes/MethodNode.d.ts.map +1 -1
- package/dist/core/nodes/MethodNode.js +48 -0
- package/dist/core/nodes/ModuleNode.d.ts +31 -0
- package/dist/core/nodes/ModuleNode.d.ts.map +1 -1
- package/dist/core/nodes/ModuleNode.js +37 -0
- package/dist/core/nodes/NetworkRequestNode.d.ts +54 -0
- package/dist/core/nodes/NetworkRequestNode.d.ts.map +1 -0
- package/dist/core/nodes/NetworkRequestNode.js +65 -0
- package/dist/core/nodes/ObjectLiteralNode.d.ts +27 -0
- package/dist/core/nodes/ObjectLiteralNode.d.ts.map +1 -0
- package/dist/core/nodes/ObjectLiteralNode.js +41 -0
- package/dist/core/nodes/ScopeNode.d.ts +31 -0
- package/dist/core/nodes/ScopeNode.d.ts.map +1 -1
- package/dist/core/nodes/ScopeNode.js +49 -0
- package/dist/core/nodes/TypeNode.d.ts +36 -0
- package/dist/core/nodes/TypeNode.d.ts.map +1 -0
- package/dist/core/nodes/TypeNode.js +53 -0
- package/dist/core/nodes/VariableDeclarationNode.d.ts +27 -0
- package/dist/core/nodes/VariableDeclarationNode.d.ts.map +1 -1
- package/dist/core/nodes/VariableDeclarationNode.js +40 -0
- package/dist/core/nodes/index.d.ts +12 -1
- package/dist/core/nodes/index.d.ts.map +1 -1
- package/dist/core/nodes/index.js +14 -0
- package/dist/diagnostics/DiagnosticCollector.d.ts +98 -0
- package/dist/diagnostics/DiagnosticCollector.d.ts.map +1 -0
- package/dist/diagnostics/DiagnosticCollector.js +129 -0
- package/dist/diagnostics/DiagnosticReporter.d.ts +77 -0
- package/dist/diagnostics/DiagnosticReporter.d.ts.map +1 -0
- package/dist/diagnostics/DiagnosticReporter.js +159 -0
- package/dist/diagnostics/DiagnosticWriter.d.ts +31 -0
- package/dist/diagnostics/DiagnosticWriter.d.ts.map +1 -0
- package/dist/diagnostics/DiagnosticWriter.js +43 -0
- package/dist/diagnostics/index.d.ts +14 -0
- package/dist/diagnostics/index.d.ts.map +1 -0
- package/dist/diagnostics/index.js +11 -0
- package/dist/errors/GrafemaError.d.ts +118 -0
- package/dist/errors/GrafemaError.d.ts.map +1 -0
- package/dist/errors/GrafemaError.js +131 -0
- package/dist/index.d.ts +57 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +54 -1
- package/dist/logging/Logger.d.ts +48 -0
- package/dist/logging/Logger.d.ts.map +1 -0
- package/dist/logging/Logger.js +134 -0
- package/dist/plugins/Plugin.d.ts +5 -1
- package/dist/plugins/Plugin.d.ts.map +1 -1
- package/dist/plugins/Plugin.js +33 -0
- package/dist/plugins/analysis/DatabaseAnalyzer.d.ts.map +1 -1
- package/dist/plugins/analysis/DatabaseAnalyzer.js +13 -6
- package/dist/plugins/analysis/ExpressAnalyzer.d.ts.map +1 -1
- package/dist/plugins/analysis/ExpressAnalyzer.js +27 -19
- package/dist/plugins/analysis/ExpressRouteAnalyzer.d.ts.map +1 -1
- package/dist/plugins/analysis/ExpressRouteAnalyzer.js +21 -14
- package/dist/plugins/analysis/FetchAnalyzer.d.ts +1 -0
- package/dist/plugins/analysis/FetchAnalyzer.d.ts.map +1 -1
- package/dist/plugins/analysis/FetchAnalyzer.js +34 -14
- package/dist/plugins/analysis/IncrementalAnalysisPlugin.d.ts +6 -3
- package/dist/plugins/analysis/IncrementalAnalysisPlugin.d.ts.map +1 -1
- package/dist/plugins/analysis/IncrementalAnalysisPlugin.js +76 -80
- package/dist/plugins/analysis/JSASTAnalyzer.d.ts +180 -17
- package/dist/plugins/analysis/JSASTAnalyzer.d.ts.map +1 -1
- package/dist/plugins/analysis/JSASTAnalyzer.js +1171 -471
- package/dist/plugins/analysis/ReactAnalyzer.d.ts.map +1 -1
- package/dist/plugins/analysis/ReactAnalyzer.js +56 -57
- package/dist/plugins/analysis/RustAnalyzer.d.ts.map +1 -1
- package/dist/plugins/analysis/RustAnalyzer.js +15 -10
- package/dist/plugins/analysis/SQLiteAnalyzer.d.ts.map +1 -1
- package/dist/plugins/analysis/SQLiteAnalyzer.js +9 -7
- package/dist/plugins/analysis/ServiceLayerAnalyzer.d.ts.map +1 -1
- package/dist/plugins/analysis/ServiceLayerAnalyzer.js +21 -9
- package/dist/plugins/analysis/SocketIOAnalyzer.d.ts.map +1 -1
- package/dist/plugins/analysis/SocketIOAnalyzer.js +27 -15
- package/dist/plugins/analysis/SystemDbAnalyzer.d.ts.map +1 -1
- package/dist/plugins/analysis/SystemDbAnalyzer.js +15 -5
- package/dist/plugins/analysis/ast/GraphBuilder.d.ts +34 -4
- package/dist/plugins/analysis/ast/GraphBuilder.d.ts.map +1 -1
- package/dist/plugins/analysis/ast/GraphBuilder.js +318 -298
- package/dist/plugins/analysis/ast/IdGenerator.d.ts +105 -0
- package/dist/plugins/analysis/ast/IdGenerator.d.ts.map +1 -0
- package/dist/plugins/analysis/ast/IdGenerator.js +116 -0
- package/dist/plugins/analysis/ast/types.d.ts +176 -5
- package/dist/plugins/analysis/ast/types.d.ts.map +1 -1
- package/dist/plugins/analysis/ast/utils/createParameterNodes.d.ts +33 -0
- package/dist/plugins/analysis/ast/utils/createParameterNodes.d.ts.map +1 -0
- package/dist/plugins/analysis/ast/utils/createParameterNodes.js +89 -0
- package/dist/plugins/analysis/ast/utils/index.d.ts +6 -0
- package/dist/plugins/analysis/ast/utils/index.d.ts.map +1 -0
- package/dist/plugins/analysis/ast/utils/index.js +5 -0
- package/dist/plugins/analysis/ast/utils/location.d.ts +87 -0
- package/dist/plugins/analysis/ast/utils/location.d.ts.map +1 -0
- package/dist/plugins/analysis/ast/utils/location.js +78 -0
- package/dist/plugins/analysis/ast/visitors/ASTVisitor.d.ts +9 -4
- package/dist/plugins/analysis/ast/visitors/ASTVisitor.d.ts.map +1 -1
- package/dist/plugins/analysis/ast/visitors/ASTVisitor.js +6 -5
- package/dist/plugins/analysis/ast/visitors/CallExpressionVisitor.d.ts +99 -9
- package/dist/plugins/analysis/ast/visitors/CallExpressionVisitor.d.ts.map +1 -1
- package/dist/plugins/analysis/ast/visitors/CallExpressionVisitor.js +663 -125
- package/dist/plugins/analysis/ast/visitors/ClassVisitor.d.ts +4 -1
- package/dist/plugins/analysis/ast/visitors/ClassVisitor.d.ts.map +1 -1
- package/dist/plugins/analysis/ast/visitors/ClassVisitor.js +72 -32
- package/dist/plugins/analysis/ast/visitors/FunctionVisitor.d.ts +4 -1
- package/dist/plugins/analysis/ast/visitors/FunctionVisitor.d.ts.map +1 -1
- package/dist/plugins/analysis/ast/visitors/FunctionVisitor.js +128 -63
- package/dist/plugins/analysis/ast/visitors/ImportExportVisitor.d.ts.map +1 -1
- package/dist/plugins/analysis/ast/visitors/ImportExportVisitor.js +11 -8
- package/dist/plugins/analysis/ast/visitors/TypeScriptVisitor.d.ts +12 -1
- package/dist/plugins/analysis/ast/visitors/TypeScriptVisitor.d.ts.map +1 -1
- package/dist/plugins/analysis/ast/visitors/TypeScriptVisitor.js +36 -14
- package/dist/plugins/analysis/ast/visitors/VariableVisitor.d.ts +4 -1
- package/dist/plugins/analysis/ast/visitors/VariableVisitor.d.ts.map +1 -1
- package/dist/plugins/analysis/ast/visitors/VariableVisitor.js +17 -13
- package/dist/plugins/discovery/MonorepoServiceDiscovery.d.ts.map +1 -1
- package/dist/plugins/discovery/MonorepoServiceDiscovery.js +3 -2
- package/dist/plugins/discovery/SimpleProjectDiscovery.d.ts.map +1 -1
- package/dist/plugins/discovery/SimpleProjectDiscovery.js +5 -1
- package/dist/plugins/discovery/WorkspaceDiscovery.d.ts +22 -0
- package/dist/plugins/discovery/WorkspaceDiscovery.d.ts.map +1 -0
- package/dist/plugins/discovery/WorkspaceDiscovery.js +136 -0
- package/dist/plugins/discovery/resolveSourceEntrypoint.d.ts +46 -0
- package/dist/plugins/discovery/resolveSourceEntrypoint.d.ts.map +1 -0
- package/dist/plugins/discovery/resolveSourceEntrypoint.js +86 -0
- package/dist/plugins/discovery/workspaces/detector.d.ts +21 -0
- package/dist/plugins/discovery/workspaces/detector.d.ts.map +1 -0
- package/dist/plugins/discovery/workspaces/detector.js +49 -0
- package/dist/plugins/discovery/workspaces/globResolver.d.ts +35 -0
- package/dist/plugins/discovery/workspaces/globResolver.d.ts.map +1 -0
- package/dist/plugins/discovery/workspaces/globResolver.js +184 -0
- package/dist/plugins/discovery/workspaces/index.d.ts +9 -0
- package/dist/plugins/discovery/workspaces/index.d.ts.map +1 -0
- package/dist/plugins/discovery/workspaces/index.js +8 -0
- package/dist/plugins/discovery/workspaces/parsers.d.ts +38 -0
- package/dist/plugins/discovery/workspaces/parsers.d.ts.map +1 -0
- package/dist/plugins/discovery/workspaces/parsers.js +80 -0
- package/dist/plugins/enrichment/AliasTracker.d.ts.map +1 -1
- package/dist/plugins/enrichment/AliasTracker.js +14 -8
- package/dist/plugins/enrichment/HTTPConnectionEnricher.d.ts.map +1 -1
- package/dist/plugins/enrichment/HTTPConnectionEnricher.js +14 -7
- package/dist/plugins/enrichment/ImportExportLinker.d.ts.map +1 -1
- package/dist/plugins/enrichment/ImportExportLinker.js +23 -6
- package/dist/plugins/enrichment/MethodCallResolver.d.ts.map +1 -1
- package/dist/plugins/enrichment/MethodCallResolver.js +18 -12
- package/dist/plugins/enrichment/MountPointResolver.d.ts.map +1 -1
- package/dist/plugins/enrichment/MountPointResolver.js +8 -3
- package/dist/plugins/enrichment/PrefixEvaluator.d.ts.map +1 -1
- package/dist/plugins/enrichment/PrefixEvaluator.js +16 -7
- package/dist/plugins/enrichment/RustFFIEnricher.d.ts.map +1 -1
- package/dist/plugins/enrichment/RustFFIEnricher.js +6 -5
- package/dist/plugins/enrichment/ValueDomainAnalyzer.d.ts +17 -0
- package/dist/plugins/enrichment/ValueDomainAnalyzer.d.ts.map +1 -1
- package/dist/plugins/enrichment/ValueDomainAnalyzer.js +129 -10
- package/dist/plugins/indexing/IncrementalModuleIndexer.d.ts.map +1 -1
- package/dist/plugins/indexing/IncrementalModuleIndexer.js +23 -14
- package/dist/plugins/indexing/JSModuleIndexer.d.ts.map +1 -1
- package/dist/plugins/indexing/JSModuleIndexer.js +63 -31
- package/dist/plugins/indexing/RustModuleIndexer.d.ts.map +1 -1
- package/dist/plugins/indexing/RustModuleIndexer.js +5 -4
- package/dist/plugins/indexing/ServiceDetector.d.ts +10 -0
- package/dist/plugins/indexing/ServiceDetector.d.ts.map +1 -1
- package/dist/plugins/indexing/ServiceDetector.js +28 -15
- package/dist/plugins/validation/CallResolverValidator.d.ts.map +1 -1
- package/dist/plugins/validation/CallResolverValidator.js +8 -7
- package/dist/plugins/validation/DataFlowValidator.d.ts.map +1 -1
- package/dist/plugins/validation/DataFlowValidator.js +17 -12
- package/dist/plugins/validation/EvalBanValidator.d.ts.map +1 -1
- package/dist/plugins/validation/EvalBanValidator.js +17 -16
- package/dist/plugins/validation/GraphConnectivityValidator.d.ts.map +1 -1
- package/dist/plugins/validation/GraphConnectivityValidator.js +19 -23
- package/dist/plugins/validation/NodeCreationValidator.d.ts +85 -0
- package/dist/plugins/validation/NodeCreationValidator.d.ts.map +1 -0
- package/dist/plugins/validation/NodeCreationValidator.js +415 -0
- package/dist/plugins/validation/SQLInjectionValidator.d.ts.map +1 -1
- package/dist/plugins/validation/SQLInjectionValidator.js +59 -16
- package/dist/plugins/validation/ShadowingDetector.d.ts.map +1 -1
- package/dist/plugins/validation/ShadowingDetector.js +6 -5
- package/dist/plugins/validation/TypeScriptDeadCodeValidator.d.ts.map +1 -1
- package/dist/plugins/validation/TypeScriptDeadCodeValidator.js +12 -11
- package/dist/plugins/vcs/GitPlugin.d.ts.map +1 -1
- package/dist/plugins/vcs/GitPlugin.js +10 -12
- package/dist/plugins/vcs/VCSPlugin.d.ts +3 -2
- package/dist/plugins/vcs/VCSPlugin.d.ts.map +1 -1
- package/dist/plugins/vcs/VCSPlugin.js +5 -5
- package/dist/storage/backends/RFDBServerBackend.d.ts +10 -17
- package/dist/storage/backends/RFDBServerBackend.d.ts.map +1 -1
- package/dist/storage/backends/RFDBServerBackend.js +31 -10
- package/dist/validation/PathValidator.d.ts +1 -2
- package/dist/validation/PathValidator.d.ts.map +1 -1
- package/package.json +3 -3
- package/src/Orchestrator.ts +237 -24
- package/src/config/ConfigLoader.ts +263 -0
- package/src/config/index.ts +5 -0
- package/src/core/ASTWorker.ts +143 -139
- package/src/core/CoverageAnalyzer.ts +243 -0
- package/src/core/FileNodeManager.ts +100 -0
- package/src/core/GraphFreshnessChecker.ts +143 -0
- package/src/core/HashUtils.ts +48 -0
- package/src/core/IncrementalReanalyzer.ts +192 -0
- package/src/core/NodeFactory.ts +401 -18
- package/src/core/ScopeTracker.ts +154 -0
- package/src/core/SemanticId.ts +192 -0
- package/src/core/VersionManager.ts +3 -2
- package/src/core/nodes/ArgumentExpressionNode.ts +89 -0
- package/src/core/nodes/ArrayLiteralNode.ts +65 -0
- package/src/core/nodes/CallSiteNode.ts +58 -0
- package/src/core/nodes/ClassNode.ts +63 -2
- package/src/core/nodes/DecoratorNode.ts +91 -0
- package/src/core/nodes/EnumNode.ts +86 -0
- package/src/core/nodes/ExportNode.ts +70 -2
- package/src/core/nodes/ExpressionNode.ts +231 -0
- package/src/core/nodes/ExternalModuleNode.ts +56 -0
- package/src/core/nodes/ExternalStdioNode.ts +17 -9
- package/src/core/nodes/FunctionNode.ts +101 -1
- package/src/core/nodes/ImportNode.ts +32 -10
- package/src/core/nodes/InterfaceNode.ts +91 -0
- package/src/core/nodes/IssueNode.ts +177 -0
- package/src/core/nodes/MethodCallNode.ts +64 -0
- package/src/core/nodes/MethodNode.ts +63 -0
- package/src/core/nodes/ModuleNode.ts +50 -0
- package/src/core/nodes/NetworkRequestNode.ts +77 -0
- package/src/core/nodes/ObjectLiteralNode.ts +65 -0
- package/src/core/nodes/ScopeNode.ts +65 -0
- package/src/core/nodes/TypeNode.ts +78 -0
- package/src/core/nodes/VariableDeclarationNode.ts +52 -0
- package/src/core/nodes/index.ts +18 -1
- package/src/diagnostics/DiagnosticCollector.ts +163 -0
- package/src/diagnostics/DiagnosticReporter.ts +204 -0
- package/src/diagnostics/DiagnosticWriter.ts +50 -0
- package/src/diagnostics/index.ts +16 -0
- package/src/errors/GrafemaError.ts +174 -0
- package/src/index.ts +148 -1
- package/src/logging/Logger.ts +152 -0
- package/src/plugins/Plugin.ts +42 -0
- package/src/plugins/analysis/DatabaseAnalyzer.ts +14 -8
- package/src/plugins/analysis/ExpressAnalyzer.ts +29 -19
- package/src/plugins/analysis/ExpressRouteAnalyzer.ts +22 -21
- package/src/plugins/analysis/FetchAnalyzer.ts +39 -16
- package/src/plugins/analysis/IncrementalAnalysisPlugin.ts +84 -101
- package/src/plugins/analysis/JSASTAnalyzer.ts +1483 -503
- package/src/plugins/analysis/ReactAnalyzer.ts +57 -57
- package/src/plugins/analysis/RustAnalyzer.ts +15 -10
- package/src/plugins/analysis/SQLiteAnalyzer.ts +10 -7
- package/src/plugins/analysis/ServiceLayerAnalyzer.ts +22 -16
- package/src/plugins/analysis/SocketIOAnalyzer.ts +31 -22
- package/src/plugins/analysis/SystemDbAnalyzer.ts +16 -11
- package/src/plugins/analysis/ast/GraphBuilder.ts +439 -327
- package/src/plugins/analysis/ast/IdGenerator.ts +177 -0
- package/src/plugins/analysis/ast/types.ts +209 -6
- package/src/plugins/analysis/ast/utils/createParameterNodes.ts +104 -0
- package/src/plugins/analysis/ast/utils/index.ts +12 -0
- package/src/plugins/analysis/ast/utils/location.ts +103 -0
- package/src/plugins/analysis/ast/visitors/ASTVisitor.ts +11 -8
- package/src/plugins/analysis/ast/visitors/CallExpressionVisitor.ts +909 -83
- package/src/plugins/analysis/ast/visitors/ClassVisitor.ts +97 -44
- package/src/plugins/analysis/ast/visitors/FunctionVisitor.ts +159 -93
- package/src/plugins/analysis/ast/visitors/ImportExportVisitor.ts +12 -8
- package/src/plugins/analysis/ast/visitors/TypeScriptVisitor.ts +41 -14
- package/src/plugins/analysis/ast/visitors/VariableVisitor.ts +37 -17
- package/src/plugins/discovery/MonorepoServiceDiscovery.ts +3 -2
- package/src/plugins/discovery/SimpleProjectDiscovery.ts +6 -1
- package/src/plugins/discovery/WorkspaceDiscovery.ts +177 -0
- package/src/plugins/discovery/resolveSourceEntrypoint.ts +103 -0
- package/src/plugins/discovery/workspaces/detector.ts +63 -0
- package/src/plugins/discovery/workspaces/globResolver.ts +229 -0
- package/src/plugins/discovery/workspaces/index.ts +23 -0
- package/src/plugins/discovery/workspaces/parsers.ts +99 -0
- package/src/plugins/enrichment/AliasTracker.ts +14 -8
- package/src/plugins/enrichment/HTTPConnectionEnricher.ts +14 -7
- package/src/plugins/enrichment/ImportExportLinker.ts +24 -6
- package/src/plugins/enrichment/MethodCallResolver.ts +18 -12
- package/src/plugins/enrichment/MountPointResolver.ts +8 -3
- package/src/plugins/enrichment/PrefixEvaluator.ts +16 -7
- package/src/plugins/enrichment/RustFFIEnricher.ts +6 -5
- package/src/plugins/enrichment/ValueDomainAnalyzer.ts +149 -12
- package/src/plugins/indexing/IncrementalModuleIndexer.ts +23 -14
- package/src/plugins/indexing/JSModuleIndexer.ts +74 -34
- package/src/plugins/indexing/RustModuleIndexer.ts +5 -4
- package/src/plugins/validation/CallResolverValidator.ts +8 -7
- package/src/plugins/validation/DataFlowValidator.ts +16 -12
- package/src/plugins/validation/EvalBanValidator.ts +17 -16
- package/src/plugins/validation/GraphConnectivityValidator.ts +19 -23
- package/src/plugins/validation/NodeCreationValidator.ts +554 -0
- package/src/plugins/validation/SQLInjectionValidator.ts +61 -15
- package/src/plugins/validation/ShadowingDetector.ts +6 -5
- package/src/plugins/validation/TypeScriptDeadCodeValidator.ts +12 -11
- package/src/plugins/vcs/GitPlugin.ts +40 -12
- package/src/plugins/vcs/VCSPlugin.ts +7 -5
- package/src/storage/backends/RFDBServerBackend.ts +43 -29
- package/src/validation/PathValidator.ts +1 -1
- package/dist/core/AnalysisWorker.d.ts +0 -14
- package/dist/core/AnalysisWorker.d.ts.map +0 -1
- package/dist/core/AnalysisWorker.js +0 -307
- package/dist/core/ParallelAnalyzer.d.ts +0 -120
- package/dist/core/ParallelAnalyzer.d.ts.map +0 -1
- package/dist/core/ParallelAnalyzer.js +0 -331
- package/dist/core/QueueWorker.d.ts +0 -12
- package/dist/core/QueueWorker.d.ts.map +0 -1
- package/dist/core/QueueWorker.js +0 -567
- package/dist/core/RFDBClient.d.ts +0 -179
- package/dist/core/RFDBClient.d.ts.map +0 -1
- package/dist/core/RFDBClient.js +0 -429
- package/dist/plugins/discovery/ZonServiceDiscovery.d.ts +0 -19
- package/dist/plugins/discovery/ZonServiceDiscovery.d.ts.map +0 -1
- package/dist/plugins/discovery/ZonServiceDiscovery.js +0 -204
- package/src/core/AnalysisWorker.ts +0 -410
- package/src/core/ParallelAnalyzer.ts +0 -476
- package/src/core/QueueWorker.ts +0 -780
- package/src/plugins/indexing/ServiceDetector.ts +0 -230
|
@@ -93,6 +93,7 @@ export class RustModuleIndexer extends Plugin {
|
|
|
93
93
|
}
|
|
94
94
|
|
|
95
95
|
async execute(context: PluginContext): Promise<PluginResult> {
|
|
96
|
+
const logger = this.log(context);
|
|
96
97
|
const { manifest, graph, onProgress } = context;
|
|
97
98
|
// Cast manifest to expected shape
|
|
98
99
|
const typedManifest = manifest as { projectPath: string } | undefined;
|
|
@@ -102,14 +103,14 @@ export class RustModuleIndexer extends Plugin {
|
|
|
102
103
|
const rustRoot = resolve(projectPath, 'rust-engine/src');
|
|
103
104
|
|
|
104
105
|
if (!existsSync(rustRoot)) {
|
|
105
|
-
|
|
106
|
+
logger.info('rust-engine/src not found, skipping');
|
|
106
107
|
return createSuccessResult({ nodes: 0, edges: 0 }, { skipped: true });
|
|
107
108
|
}
|
|
108
109
|
|
|
109
110
|
// Discover all .rs files recursively
|
|
110
111
|
const rsFiles = this.findRustFiles(rustRoot);
|
|
111
112
|
|
|
112
|
-
|
|
113
|
+
logger.info('Found Rust files', { count: rsFiles.length });
|
|
113
114
|
|
|
114
115
|
let nodesCreated = 0;
|
|
115
116
|
const errors: Array<{ file: string; error: string }> = [];
|
|
@@ -151,10 +152,10 @@ export class RustModuleIndexer extends Plugin {
|
|
|
151
152
|
}
|
|
152
153
|
|
|
153
154
|
if (errors.length > 0) {
|
|
154
|
-
|
|
155
|
+
logger.warn('Errors during indexing', { errorCount: errors.length });
|
|
155
156
|
}
|
|
156
157
|
|
|
157
|
-
|
|
158
|
+
logger.info('Rust modules indexed', { count: nodesCreated });
|
|
158
159
|
return createSuccessResult({ nodes: nodesCreated, edges: 0 }, { errors: errors.length });
|
|
159
160
|
}
|
|
160
161
|
}
|
|
@@ -70,12 +70,13 @@ export class CallResolverValidator extends Plugin {
|
|
|
70
70
|
|
|
71
71
|
async execute(context: PluginContext): Promise<PluginResult> {
|
|
72
72
|
const { graph } = context;
|
|
73
|
+
const logger = this.log(context);
|
|
73
74
|
|
|
74
|
-
|
|
75
|
+
logger.info('Starting call resolution validation using Datalog');
|
|
75
76
|
|
|
76
77
|
// Check if graph supports checkGuarantee
|
|
77
78
|
if (!graph.checkGuarantee) {
|
|
78
|
-
|
|
79
|
+
logger.debug('Graph does not support checkGuarantee, skipping validation');
|
|
79
80
|
return createSuccessResult({ nodes: 0, edges: 0 }, { skipped: true });
|
|
80
81
|
}
|
|
81
82
|
|
|
@@ -88,7 +89,7 @@ export class CallResolverValidator extends Plugin {
|
|
|
88
89
|
const issues: CallResolverIssue[] = [];
|
|
89
90
|
|
|
90
91
|
if (violations.length > 0) {
|
|
91
|
-
|
|
92
|
+
logger.debug('Unresolved function calls found', { count: violations.length });
|
|
92
93
|
|
|
93
94
|
for (const v of violations) {
|
|
94
95
|
const nodeId = v.bindings.find(b => b.name === 'X')?.value;
|
|
@@ -121,15 +122,15 @@ export class CallResolverValidator extends Plugin {
|
|
|
121
122
|
issues: issues.length
|
|
122
123
|
};
|
|
123
124
|
|
|
124
|
-
|
|
125
|
+
logger.info('Validation complete', { ...summary });
|
|
125
126
|
|
|
126
127
|
if (issues.length > 0) {
|
|
127
|
-
|
|
128
|
+
logger.warn('Unresolved calls detected', { count: issues.length });
|
|
128
129
|
for (const issue of issues.slice(0, 10)) { // Show first 10
|
|
129
|
-
|
|
130
|
+
logger.warn(issue.message);
|
|
130
131
|
}
|
|
131
132
|
if (issues.length > 10) {
|
|
132
|
-
|
|
133
|
+
logger.debug(`... and ${issues.length - 10} more`);
|
|
133
134
|
}
|
|
134
135
|
}
|
|
135
136
|
|
|
@@ -72,12 +72,13 @@ export class DataFlowValidator extends Plugin {
|
|
|
72
72
|
|
|
73
73
|
async execute(context: PluginContext): Promise<PluginResult> {
|
|
74
74
|
const { graph } = context;
|
|
75
|
+
const logger = this.log(context);
|
|
75
76
|
|
|
76
|
-
|
|
77
|
+
logger.info('Starting data flow validation');
|
|
77
78
|
|
|
78
79
|
// Check if graph supports getAllEdges
|
|
79
80
|
if (!graph.getAllEdges) {
|
|
80
|
-
|
|
81
|
+
logger.debug('Graph does not support getAllEdges, skipping validation');
|
|
81
82
|
return createSuccessResult({ nodes: 0, edges: 0 }, { skipped: true });
|
|
82
83
|
}
|
|
83
84
|
|
|
@@ -89,16 +90,16 @@ export class DataFlowValidator extends Plugin {
|
|
|
89
90
|
n.type === 'VARIABLE_DECLARATION' || n.type === 'CONSTANT'
|
|
90
91
|
);
|
|
91
92
|
|
|
92
|
-
|
|
93
|
+
logger.debug('Variables collected', { count: variables.length });
|
|
93
94
|
|
|
94
95
|
const issues: DataFlowIssue[] = [];
|
|
95
96
|
const leafTypes = new Set([
|
|
96
97
|
'LITERAL',
|
|
97
|
-
'
|
|
98
|
-
'
|
|
99
|
-
'
|
|
100
|
-
'
|
|
101
|
-
'
|
|
98
|
+
'net:stdio',
|
|
99
|
+
'db:query',
|
|
100
|
+
'net:request',
|
|
101
|
+
'fs:operation',
|
|
102
|
+
'event:listener',
|
|
102
103
|
'CLASS', // NewExpression - конструкторы классов
|
|
103
104
|
'FUNCTION', // Arrow functions и function expressions
|
|
104
105
|
'METHOD_CALL', // Вызовы методов (промежуточные узлы)
|
|
@@ -167,14 +168,17 @@ export class DataFlowValidator extends Plugin {
|
|
|
167
168
|
summary.byType[issue.type]++;
|
|
168
169
|
}
|
|
169
170
|
|
|
170
|
-
|
|
171
|
+
logger.info('Validation complete', { ...summary });
|
|
171
172
|
|
|
172
173
|
// Выводим issues
|
|
173
174
|
if (issues.length > 0) {
|
|
174
|
-
|
|
175
|
+
logger.warn('Data flow issues found', { count: issues.length });
|
|
175
176
|
for (const issue of issues) {
|
|
176
|
-
|
|
177
|
-
|
|
177
|
+
if (issue.severity === 'ERROR') {
|
|
178
|
+
logger.error(`[${issue.type}] ${issue.message}`);
|
|
179
|
+
} else {
|
|
180
|
+
logger.warn(`[${issue.type}] ${issue.message}`);
|
|
181
|
+
}
|
|
178
182
|
}
|
|
179
183
|
}
|
|
180
184
|
|
|
@@ -69,17 +69,18 @@ export class EvalBanValidator extends Plugin {
|
|
|
69
69
|
|
|
70
70
|
async execute(context: PluginContext): Promise<PluginResult> {
|
|
71
71
|
const { graph } = context;
|
|
72
|
+
const logger = this.log(context);
|
|
72
73
|
|
|
73
|
-
|
|
74
|
+
logger.info('Starting eval/Function usage validation');
|
|
74
75
|
const startTime = Date.now();
|
|
75
76
|
|
|
76
77
|
const issues: EvalBanIssue[] = [];
|
|
77
78
|
|
|
78
|
-
//
|
|
79
|
-
// Datalog
|
|
79
|
+
// OPTIMIZATION: use direct graph queries instead of Datalog (slow full scan)
|
|
80
|
+
// Datalog hangs on large graphs due to lack of indexes
|
|
80
81
|
|
|
81
|
-
// 1.
|
|
82
|
-
|
|
82
|
+
// 1. Direct eval("code") call - find all CALL nodes with name="eval"
|
|
83
|
+
logger.debug('Searching for eval() calls');
|
|
83
84
|
const evalStart = Date.now();
|
|
84
85
|
let evalCount = 0;
|
|
85
86
|
|
|
@@ -96,10 +97,10 @@ export class EvalBanValidator extends Plugin {
|
|
|
96
97
|
});
|
|
97
98
|
}
|
|
98
99
|
}
|
|
99
|
-
|
|
100
|
+
logger.debug('eval() search complete', { timeMs: Date.now() - evalStart, count: evalCount });
|
|
100
101
|
|
|
101
|
-
// 2.
|
|
102
|
-
|
|
102
|
+
// 2. Function("code") or new Function("code") call
|
|
103
|
+
logger.debug('Searching for Function() calls');
|
|
103
104
|
const funcStart = Date.now();
|
|
104
105
|
let funcCount = 0;
|
|
105
106
|
|
|
@@ -116,11 +117,11 @@ export class EvalBanValidator extends Plugin {
|
|
|
116
117
|
});
|
|
117
118
|
}
|
|
118
119
|
}
|
|
119
|
-
|
|
120
|
+
logger.debug('Function() search complete', { timeMs: Date.now() - funcStart, count: funcCount });
|
|
120
121
|
|
|
121
122
|
// 3. Method call: window.eval, globalThis.eval, this.eval
|
|
122
123
|
// Note: METHOD_CALL was merged into CALL - method calls have 'method' attribute
|
|
123
|
-
|
|
124
|
+
logger.debug('Searching for method eval() calls');
|
|
124
125
|
const methodStart = Date.now();
|
|
125
126
|
let methodCount = 0;
|
|
126
127
|
|
|
@@ -141,10 +142,10 @@ export class EvalBanValidator extends Plugin {
|
|
|
141
142
|
});
|
|
142
143
|
}
|
|
143
144
|
}
|
|
144
|
-
|
|
145
|
+
logger.debug('Method eval() search complete', { timeMs: Date.now() - methodStart, count: methodCount });
|
|
145
146
|
|
|
146
147
|
// 4. Aliased eval - SKIP for now (complex Datalog query causes OOM)
|
|
147
|
-
|
|
148
|
+
logger.debug('Skipping aliased eval detection', { reason: 'requires optimized implementation' });
|
|
148
149
|
|
|
149
150
|
const totalTime = ((Date.now() - startTime) / 1000).toFixed(1);
|
|
150
151
|
const summary: ValidationSummary = {
|
|
@@ -156,15 +157,15 @@ export class EvalBanValidator extends Plugin {
|
|
|
156
157
|
timeSeconds: totalTime
|
|
157
158
|
};
|
|
158
159
|
|
|
159
|
-
|
|
160
|
+
logger.info('Validation summary', { ...summary });
|
|
160
161
|
|
|
161
162
|
if (issues.length > 0) {
|
|
162
|
-
|
|
163
|
+
logger.info('Security violations found', { count: issues.length });
|
|
163
164
|
for (const issue of issues) {
|
|
164
|
-
|
|
165
|
+
logger.warn('Violation', { message: issue.message, type: issue.type, file: issue.file, line: issue.line });
|
|
165
166
|
}
|
|
166
167
|
} else {
|
|
167
|
-
|
|
168
|
+
logger.info('Validation passed: no eval/Function usage detected');
|
|
168
169
|
}
|
|
169
170
|
|
|
170
171
|
return createSuccessResult(
|
|
@@ -60,33 +60,34 @@ export class GraphConnectivityValidator extends Plugin {
|
|
|
60
60
|
|
|
61
61
|
async execute(context: PluginContext): Promise<PluginResult> {
|
|
62
62
|
const { graph, manifest } = context;
|
|
63
|
+
const logger = this.log(context);
|
|
63
64
|
const manifestWithValidation = manifest as ManifestWithValidation;
|
|
64
65
|
|
|
65
|
-
|
|
66
|
+
logger.info('Starting connectivity validation');
|
|
66
67
|
|
|
67
68
|
// Получаем все узлы
|
|
68
69
|
const allNodes = await graph.getAllNodes();
|
|
69
|
-
|
|
70
|
+
logger.debug('Nodes collected', { totalNodes: allNodes.length });
|
|
70
71
|
|
|
71
72
|
// Находим корневые узлы (SERVICE, MODULE)
|
|
72
73
|
const rootTypes = ['SERVICE', 'MODULE', 'PROJECT'];
|
|
73
74
|
const rootNodes = allNodes.filter(n => rootTypes.includes(n.type));
|
|
74
|
-
|
|
75
|
+
logger.debug('Root nodes found', { rootCount: rootNodes.length });
|
|
75
76
|
|
|
76
77
|
if (rootNodes.length === 0) {
|
|
77
|
-
|
|
78
|
+
logger.warn('No root nodes found');
|
|
78
79
|
return createSuccessResult({ nodes: 0, edges: 0 }, { skipped: true, reason: 'No root nodes' });
|
|
79
80
|
}
|
|
80
81
|
|
|
81
82
|
// Check if graph supports getAllEdges
|
|
82
83
|
if (!graph.getAllEdges) {
|
|
83
|
-
|
|
84
|
+
logger.debug('Graph does not support getAllEdges, skipping validation');
|
|
84
85
|
return createSuccessResult({ nodes: 0, edges: 0 }, { skipped: true, reason: 'No getAllEdges support' });
|
|
85
86
|
}
|
|
86
87
|
|
|
87
88
|
// Собираем все ребра
|
|
88
89
|
const allEdges = await graph.getAllEdges();
|
|
89
|
-
|
|
90
|
+
logger.debug('Edges collected', { totalEdges: allEdges.length });
|
|
90
91
|
|
|
91
92
|
// Строим карты смежности (обе направления)
|
|
92
93
|
const adjacencyOut = new Map<string, string[]>(); // nodeId -> [targetIds]
|
|
@@ -131,13 +132,10 @@ export class GraphConnectivityValidator extends Plugin {
|
|
|
131
132
|
const unreachable = allNodes.filter(n => !reachable.has(n.id));
|
|
132
133
|
|
|
133
134
|
if (unreachable.length > 0) {
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
console.error(`Found ${unreachable.length} unreachable nodes (${((unreachable.length / allNodes.length) * 100).toFixed(1)}% of total)`);
|
|
139
|
-
console.error(`These nodes are not connected to the main graph (SERVICE/MODULE/PROJECT level)`);
|
|
140
|
-
console.error('');
|
|
135
|
+
const percentage = ((unreachable.length / allNodes.length) * 100).toFixed(1);
|
|
136
|
+
logger.error('GRAPH VALIDATION ERROR: DISCONNECTED NODES FOUND');
|
|
137
|
+
logger.error(`Found ${unreachable.length} unreachable nodes (${percentage}% of total)`);
|
|
138
|
+
logger.error('These nodes are not connected to the main graph (SERVICE/MODULE/PROJECT level)');
|
|
141
139
|
|
|
142
140
|
// Группируем по типам для читаемости
|
|
143
141
|
const byType: Record<string, NodeRecord[]> = {};
|
|
@@ -147,27 +145,25 @@ export class GraphConnectivityValidator extends Plugin {
|
|
|
147
145
|
}
|
|
148
146
|
|
|
149
147
|
for (const [type, nodes] of Object.entries(byType)) {
|
|
150
|
-
|
|
148
|
+
logger.error(`${type}: ${nodes.length} nodes`);
|
|
151
149
|
// Показываем первые 5 для каждого типа
|
|
152
150
|
for (const node of nodes.slice(0, 5)) {
|
|
153
|
-
|
|
151
|
+
logger.debug(` - ${node.name || node.id}`);
|
|
154
152
|
|
|
155
153
|
// Показываем связи этого узла
|
|
156
154
|
const out = adjacencyOut.get(node.id) || [];
|
|
157
155
|
const incoming = adjacencyIn.get(node.id) || [];
|
|
158
156
|
if (out.length > 0 || incoming.length > 0) {
|
|
159
|
-
|
|
157
|
+
logger.debug(` Edges: ${incoming.length} incoming, ${out.length} outgoing`);
|
|
160
158
|
}
|
|
161
159
|
}
|
|
162
160
|
if (nodes.length > 5) {
|
|
163
|
-
|
|
161
|
+
logger.debug(` ... and ${nodes.length - 5} more`);
|
|
164
162
|
}
|
|
165
163
|
}
|
|
166
164
|
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
console.error(' Anonymous functions, callbacks, and method calls should be linked to parent nodes');
|
|
170
|
-
console.error('='.repeat(80) + '\n');
|
|
165
|
+
logger.error('ACTION REQUIRED: Fix analysis plugins to ensure all nodes are connected');
|
|
166
|
+
logger.error('Anonymous functions, callbacks, and method calls should be linked to parent nodes');
|
|
171
167
|
|
|
172
168
|
// Сохраняем информацию в manifest для дальнейшего использования
|
|
173
169
|
if (!manifestWithValidation.validation) manifestWithValidation.validation = {} as ValidationResult;
|
|
@@ -184,14 +180,14 @@ export class GraphConnectivityValidator extends Plugin {
|
|
|
184
180
|
Object.entries(byType).map(([type, nodes]) => [type, nodes.length])
|
|
185
181
|
);
|
|
186
182
|
} else {
|
|
187
|
-
|
|
183
|
+
logger.info('All nodes are reachable from root nodes');
|
|
188
184
|
if (!manifestWithValidation.validation) manifestWithValidation.validation = {} as ValidationResult;
|
|
189
185
|
manifestWithValidation.validation.hasErrors = false;
|
|
190
186
|
manifestWithValidation.validation.totalNodes = allNodes.length;
|
|
191
187
|
manifestWithValidation.validation.reachableNodes = reachable.size;
|
|
192
188
|
}
|
|
193
189
|
|
|
194
|
-
|
|
190
|
+
logger.info('Validation complete', { reachable: reachable.size, total: allNodes.length });
|
|
195
191
|
|
|
196
192
|
return createSuccessResult(
|
|
197
193
|
{ nodes: 0, edges: 0 },
|