@grafema/core 0.1.0-alpha.5 → 0.2.0-beta
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 +31 -2
- package/dist/Orchestrator.d.ts.map +1 -1
- package/dist/Orchestrator.js +222 -27
- package/dist/config/ConfigLoader.d.ts +90 -0
- package/dist/config/ConfigLoader.d.ts.map +1 -0
- package/dist/config/ConfigLoader.js +249 -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/FileExplainer.d.ts +101 -0
- package/dist/core/FileExplainer.d.ts.map +1 -0
- package/dist/core/FileExplainer.js +139 -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 +266 -19
- package/dist/core/NodeFactory.d.ts.map +1 -1
- package/dist/core/NodeFactory.js +256 -21
- 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 +43 -0
- package/dist/core/nodes/BranchNode.d.ts +41 -0
- package/dist/core/nodes/BranchNode.d.ts.map +1 -0
- package/dist/core/nodes/BranchNode.js +82 -0
- package/dist/core/nodes/CallSiteNode.d.ts +30 -2
- package/dist/core/nodes/CallSiteNode.d.ts.map +1 -1
- package/dist/core/nodes/CallSiteNode.js +54 -4
- package/dist/core/nodes/CaseNode.d.ts +43 -0
- package/dist/core/nodes/CaseNode.d.ts.map +1 -0
- package/dist/core/nodes/CaseNode.js +81 -0
- package/dist/core/nodes/ClassNode.d.ts +34 -2
- package/dist/core/nodes/ClassNode.d.ts.map +1 -1
- package/dist/core/nodes/ClassNode.js +52 -4
- package/dist/core/nodes/ConstantNode.d.ts +2 -2
- package/dist/core/nodes/ConstantNode.d.ts.map +1 -1
- package/dist/core/nodes/ConstantNode.js +6 -4
- package/dist/core/nodes/ConstructorCallNode.d.ts +51 -0
- package/dist/core/nodes/ConstructorCallNode.d.ts.map +1 -0
- package/dist/core/nodes/ConstructorCallNode.js +171 -0
- package/dist/core/nodes/DatabaseQueryNode.d.ts +3 -2
- package/dist/core/nodes/DatabaseQueryNode.d.ts.map +1 -1
- package/dist/core/nodes/DatabaseQueryNode.js +5 -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 +64 -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 +56 -0
- package/dist/core/nodes/EventListenerNode.d.ts +4 -4
- package/dist/core/nodes/EventListenerNode.d.ts.map +1 -1
- package/dist/core/nodes/EventListenerNode.js +7 -4
- package/dist/core/nodes/ExportNode.d.ts +38 -2
- package/dist/core/nodes/ExportNode.d.ts.map +1 -1
- package/dist/core/nodes/ExportNode.js +54 -4
- 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 +180 -0
- package/dist/core/nodes/ExternalModuleNode.d.ts +32 -0
- package/dist/core/nodes/ExternalModuleNode.d.ts.map +1 -0
- package/dist/core/nodes/ExternalModuleNode.js +49 -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/HttpRequestNode.d.ts +4 -4
- package/dist/core/nodes/HttpRequestNode.d.ts.map +1 -1
- package/dist/core/nodes/HttpRequestNode.js +7 -4
- package/dist/core/nodes/ImportNode.d.ts +28 -6
- package/dist/core/nodes/ImportNode.d.ts.map +1 -1
- package/dist/core/nodes/ImportNode.js +43 -8
- 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 +57 -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/LiteralNode.d.ts +2 -2
- package/dist/core/nodes/LiteralNode.d.ts.map +1 -1
- package/dist/core/nodes/LiteralNode.js +6 -4
- package/dist/core/nodes/MethodCallNode.d.ts +32 -2
- package/dist/core/nodes/MethodCallNode.d.ts.map +1 -1
- package/dist/core/nodes/MethodCallNode.js +57 -4
- package/dist/core/nodes/MethodNode.d.ts +34 -2
- package/dist/core/nodes/MethodNode.d.ts.map +1 -1
- package/dist/core/nodes/MethodNode.js +55 -3
- 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 +43 -0
- package/dist/core/nodes/ParameterNode.d.ts +2 -2
- package/dist/core/nodes/ParameterNode.d.ts.map +1 -1
- package/dist/core/nodes/ParameterNode.js +5 -3
- 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 +55 -0
- package/dist/core/nodes/VariableDeclarationNode.d.ts +29 -2
- package/dist/core/nodes/VariableDeclarationNode.d.ts.map +1 -1
- package/dist/core/nodes/VariableDeclarationNode.js +48 -4
- package/dist/core/nodes/index.d.ts +15 -1
- package/dist/core/nodes/index.d.ts.map +1 -1
- package/dist/core/nodes/index.js +17 -0
- package/dist/data/builtins/BuiltinRegistry.d.ts +78 -0
- package/dist/data/builtins/BuiltinRegistry.d.ts.map +1 -0
- package/dist/data/builtins/BuiltinRegistry.js +110 -0
- package/dist/data/builtins/definitions.d.ts +28 -0
- package/dist/data/builtins/definitions.d.ts.map +1 -0
- package/dist/data/builtins/definitions.js +250 -0
- package/dist/data/builtins/index.d.ts +10 -0
- package/dist/data/builtins/index.d.ts.map +1 -0
- package/dist/data/builtins/index.js +8 -0
- package/dist/data/builtins/jsGlobals.d.ts +18 -0
- package/dist/data/builtins/jsGlobals.d.ts.map +1 -0
- package/dist/data/builtins/jsGlobals.js +26 -0
- package/dist/data/builtins/types.d.ts +34 -0
- package/dist/data/builtins/types.d.ts.map +1 -0
- package/dist/data/builtins/types.js +7 -0
- package/dist/data/globals/definitions.d.ts +27 -0
- package/dist/data/globals/definitions.d.ts.map +1 -0
- package/dist/data/globals/definitions.js +117 -0
- package/dist/data/globals/index.d.ts +36 -0
- package/dist/data/globals/index.d.ts.map +1 -0
- package/dist/data/globals/index.js +52 -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 +100 -0
- package/dist/diagnostics/DiagnosticReporter.d.ts.map +1 -0
- package/dist/diagnostics/DiagnosticReporter.js +247 -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 +161 -0
- package/dist/errors/GrafemaError.d.ts.map +1 -0
- package/dist/errors/GrafemaError.js +181 -0
- package/dist/index.d.ts +73 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +70 -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 +14 -6
- package/dist/plugins/analysis/ExpressAnalyzer.d.ts.map +1 -1
- package/dist/plugins/analysis/ExpressAnalyzer.js +29 -19
- package/dist/plugins/analysis/ExpressResponseAnalyzer.d.ts +148 -0
- package/dist/plugins/analysis/ExpressResponseAnalyzer.d.ts.map +1 -0
- package/dist/plugins/analysis/ExpressResponseAnalyzer.js +495 -0
- package/dist/plugins/analysis/ExpressRouteAnalyzer.d.ts.map +1 -1
- package/dist/plugins/analysis/ExpressRouteAnalyzer.js +71 -29
- package/dist/plugins/analysis/FetchAnalyzer.d.ts +41 -0
- package/dist/plugins/analysis/FetchAnalyzer.d.ts.map +1 -1
- package/dist/plugins/analysis/FetchAnalyzer.js +187 -19
- 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 +313 -19
- package/dist/plugins/analysis/JSASTAnalyzer.d.ts.map +1 -1
- package/dist/plugins/analysis/JSASTAnalyzer.js +3430 -503
- 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 +16 -11
- package/dist/plugins/analysis/SQLiteAnalyzer.d.ts.map +1 -1
- package/dist/plugins/analysis/SQLiteAnalyzer.js +11 -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 +9 -0
- package/dist/plugins/analysis/SocketIOAnalyzer.d.ts.map +1 -1
- package/dist/plugins/analysis/SocketIOAnalyzer.js +117 -21
- 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 +207 -4
- package/dist/plugins/analysis/ast/GraphBuilder.d.ts.map +1 -1
- package/dist/plugins/analysis/ast/GraphBuilder.js +1527 -316
- 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 +470 -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 +14 -5
- 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 +100 -9
- package/dist/plugins/analysis/ast/visitors/CallExpressionVisitor.d.ts.map +1 -1
- package/dist/plugins/analysis/ast/visitors/CallExpressionVisitor.js +674 -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 +14 -1
- package/dist/plugins/analysis/ast/visitors/FunctionVisitor.d.ts.map +1 -1
- package/dist/plugins/analysis/ast/visitors/FunctionVisitor.js +190 -63
- package/dist/plugins/analysis/ast/visitors/ImportExportVisitor.d.ts +4 -0
- package/dist/plugins/analysis/ast/visitors/ImportExportVisitor.d.ts.map +1 -1
- package/dist/plugins/analysis/ast/visitors/ImportExportVisitor.js +112 -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 +20 -2
- package/dist/plugins/analysis/ast/visitors/VariableVisitor.d.ts.map +1 -1
- package/dist/plugins/analysis/ast/visitors/VariableVisitor.js +243 -45
- 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 +141 -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 +29 -8
- package/dist/plugins/enrichment/ArgumentParameterLinker.d.ts +32 -0
- package/dist/plugins/enrichment/ArgumentParameterLinker.d.ts.map +1 -0
- package/dist/plugins/enrichment/ArgumentParameterLinker.js +175 -0
- package/dist/plugins/enrichment/ClosureCaptureEnricher.d.ts +51 -0
- package/dist/plugins/enrichment/ClosureCaptureEnricher.d.ts.map +1 -0
- package/dist/plugins/enrichment/ClosureCaptureEnricher.js +205 -0
- package/dist/plugins/enrichment/ExternalCallResolver.d.ts +42 -0
- package/dist/plugins/enrichment/ExternalCallResolver.d.ts.map +1 -0
- package/dist/plugins/enrichment/ExternalCallResolver.js +213 -0
- package/dist/plugins/enrichment/FunctionCallResolver.d.ts +58 -0
- package/dist/plugins/enrichment/FunctionCallResolver.d.ts.map +1 -0
- package/dist/plugins/enrichment/FunctionCallResolver.js +340 -0
- package/dist/plugins/enrichment/HTTPConnectionEnricher.d.ts +16 -3
- package/dist/plugins/enrichment/HTTPConnectionEnricher.d.ts.map +1 -1
- package/dist/plugins/enrichment/HTTPConnectionEnricher.js +78 -27
- 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 +33 -13
- package/dist/plugins/enrichment/MountPointResolver.d.ts +14 -12
- package/dist/plugins/enrichment/MountPointResolver.d.ts.map +1 -1
- package/dist/plugins/enrichment/MountPointResolver.js +173 -147
- package/dist/plugins/enrichment/NodejsBuiltinsResolver.d.ts +44 -0
- package/dist/plugins/enrichment/NodejsBuiltinsResolver.d.ts.map +1 -0
- package/dist/plugins/enrichment/NodejsBuiltinsResolver.js +271 -0
- 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 +22 -27
- package/dist/plugins/enrichment/ValueDomainAnalyzer.d.ts.map +1 -1
- package/dist/plugins/enrichment/ValueDomainAnalyzer.js +185 -143
- 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 +15 -0
- package/dist/plugins/indexing/JSModuleIndexer.d.ts.map +1 -1
- package/dist/plugins/indexing/JSModuleIndexer.js +121 -31
- package/dist/plugins/indexing/RustModuleIndexer.d.ts +1 -1
- package/dist/plugins/indexing/RustModuleIndexer.d.ts.map +1 -1
- package/dist/plugins/indexing/RustModuleIndexer.js +8 -7
- 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/BrokenImportValidator.d.ts +31 -0
- package/dist/plugins/validation/BrokenImportValidator.d.ts.map +1 -0
- package/dist/plugins/validation/BrokenImportValidator.js +249 -0
- package/dist/plugins/validation/CallResolverValidator.d.ts +21 -10
- package/dist/plugins/validation/CallResolverValidator.d.ts.map +1 -1
- package/dist/plugins/validation/CallResolverValidator.js +103 -77
- package/dist/plugins/validation/DataFlowValidator.d.ts.map +1 -1
- package/dist/plugins/validation/DataFlowValidator.js +62 -49
- 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 +44 -24
- 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 +61 -19
- 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/queries/findCallsInFunction.d.ts +52 -0
- package/dist/queries/findCallsInFunction.d.ts.map +1 -0
- package/dist/queries/findCallsInFunction.js +135 -0
- package/dist/queries/findContainingFunction.d.ts +45 -0
- package/dist/queries/findContainingFunction.d.ts.map +1 -0
- package/dist/queries/findContainingFunction.js +54 -0
- package/dist/queries/index.d.ts +14 -0
- package/dist/queries/index.d.ts.map +1 -0
- package/dist/queries/index.js +11 -0
- package/dist/queries/traceValues.d.ts +70 -0
- package/dist/queries/traceValues.d.ts.map +1 -0
- package/dist/queries/traceValues.js +299 -0
- package/dist/queries/types.d.ts +163 -0
- package/dist/queries/types.d.ts.map +1 -0
- package/dist/queries/types.js +9 -0
- package/dist/schema/GraphSchemaExtractor.d.ts +53 -0
- package/dist/schema/GraphSchemaExtractor.d.ts.map +1 -0
- package/dist/schema/GraphSchemaExtractor.js +124 -0
- package/dist/schema/InterfaceSchemaExtractor.d.ts +73 -0
- package/dist/schema/InterfaceSchemaExtractor.d.ts.map +1 -0
- package/dist/schema/InterfaceSchemaExtractor.js +112 -0
- package/dist/schema/index.d.ts +5 -0
- package/dist/schema/index.d.ts.map +1 -0
- package/dist/schema/index.js +2 -0
- package/dist/storage/backends/RFDBServerBackend.d.ts +21 -34
- package/dist/storage/backends/RFDBServerBackend.d.ts.map +1 -1
- package/dist/storage/backends/RFDBServerBackend.js +72 -62
- package/dist/storage/backends/typeValidation.d.ts.map +1 -1
- package/dist/storage/backends/typeValidation.js +1 -0
- 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 +272 -27
- package/src/config/ConfigLoader.ts +354 -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/FileExplainer.ts +179 -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 +470 -23
- 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 +66 -0
- package/src/core/nodes/BranchNode.ts +113 -0
- package/src/core/nodes/CallSiteNode.ts +64 -4
- package/src/core/nodes/CaseNode.ts +123 -0
- package/src/core/nodes/ClassNode.ts +67 -4
- package/src/core/nodes/ConstantNode.ts +5 -4
- package/src/core/nodes/ConstructorCallNode.ts +217 -0
- package/src/core/nodes/DatabaseQueryNode.ts +5 -1
- package/src/core/nodes/DecoratorNode.ts +92 -0
- package/src/core/nodes/EnumNode.ts +87 -0
- package/src/core/nodes/EventListenerNode.ts +7 -4
- package/src/core/nodes/ExportNode.ts +74 -4
- package/src/core/nodes/ExpressionNode.ts +232 -0
- package/src/core/nodes/ExternalModuleNode.ts +65 -0
- package/src/core/nodes/ExternalStdioNode.ts +17 -9
- package/src/core/nodes/FunctionNode.ts +101 -1
- package/src/core/nodes/HttpRequestNode.ts +7 -4
- package/src/core/nodes/ImportNode.ts +62 -13
- package/src/core/nodes/InterfaceNode.ts +92 -0
- package/src/core/nodes/IssueNode.ts +177 -0
- package/src/core/nodes/LiteralNode.ts +5 -4
- package/src/core/nodes/MethodCallNode.ts +70 -4
- package/src/core/nodes/MethodNode.ts +68 -3
- package/src/core/nodes/ModuleNode.ts +50 -0
- package/src/core/nodes/NetworkRequestNode.ts +77 -0
- package/src/core/nodes/ObjectLiteralNode.ts +66 -0
- package/src/core/nodes/ParameterNode.ts +4 -3
- package/src/core/nodes/ScopeNode.ts +65 -0
- package/src/core/nodes/TypeNode.ts +79 -0
- package/src/core/nodes/VariableDeclarationNode.ts +58 -4
- package/src/core/nodes/index.ts +21 -1
- package/src/data/builtins/BuiltinRegistry.ts +124 -0
- package/src/data/builtins/definitions.ts +267 -0
- package/src/data/builtins/index.ts +10 -0
- package/src/data/builtins/jsGlobals.ts +28 -0
- package/src/data/builtins/types.ts +36 -0
- package/src/data/globals/definitions.ts +156 -0
- package/src/data/globals/index.ts +66 -0
- package/src/diagnostics/DiagnosticCollector.ts +163 -0
- package/src/diagnostics/DiagnosticReporter.ts +324 -0
- package/src/diagnostics/DiagnosticWriter.ts +50 -0
- package/src/diagnostics/index.ts +16 -0
- package/src/errors/GrafemaError.ts +239 -0
- package/src/index.ts +193 -1
- package/src/logging/Logger.ts +152 -0
- package/src/plugins/Plugin.ts +42 -0
- package/src/plugins/analysis/DatabaseAnalyzer.ts +16 -8
- package/src/plugins/analysis/ExpressAnalyzer.ts +33 -19
- package/src/plugins/analysis/ExpressResponseAnalyzer.ts +636 -0
- package/src/plugins/analysis/ExpressRouteAnalyzer.ts +76 -36
- package/src/plugins/analysis/FetchAnalyzer.ts +232 -21
- package/src/plugins/analysis/IncrementalAnalysisPlugin.ts +84 -101
- package/src/plugins/analysis/JSASTAnalyzer.ts +4265 -587
- package/src/plugins/analysis/ReactAnalyzer.ts +57 -57
- package/src/plugins/analysis/RustAnalyzer.ts +16 -11
- package/src/plugins/analysis/SQLiteAnalyzer.ts +13 -7
- package/src/plugins/analysis/ServiceLayerAnalyzer.ts +22 -16
- package/src/plugins/analysis/SocketIOAnalyzer.ts +151 -28
- package/src/plugins/analysis/SystemDbAnalyzer.ts +16 -11
- package/src/plugins/analysis/ast/GraphBuilder.ts +1947 -327
- package/src/plugins/analysis/ast/IdGenerator.ts +177 -0
- package/src/plugins/analysis/ast/types.ts +596 -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 +19 -8
- package/src/plugins/analysis/ast/visitors/CallExpressionVisitor.ts +924 -83
- package/src/plugins/analysis/ast/visitors/ClassVisitor.ts +97 -44
- package/src/plugins/analysis/ast/visitors/FunctionVisitor.ts +234 -93
- package/src/plugins/analysis/ast/visitors/ImportExportVisitor.ts +124 -9
- package/src/plugins/analysis/ast/visitors/TypeScriptVisitor.ts +41 -14
- package/src/plugins/analysis/ast/visitors/VariableVisitor.ts +294 -49
- package/src/plugins/discovery/MonorepoServiceDiscovery.ts +3 -2
- package/src/plugins/discovery/SimpleProjectDiscovery.ts +6 -1
- package/src/plugins/discovery/WorkspaceDiscovery.ts +184 -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 +35 -8
- package/src/plugins/enrichment/ArgumentParameterLinker.ts +240 -0
- package/src/plugins/enrichment/ClosureCaptureEnricher.ts +267 -0
- package/src/plugins/enrichment/ExternalCallResolver.ts +262 -0
- package/src/plugins/enrichment/FunctionCallResolver.ts +456 -0
- package/src/plugins/enrichment/HTTPConnectionEnricher.ts +84 -27
- package/src/plugins/enrichment/ImportExportLinker.ts +24 -6
- package/src/plugins/enrichment/MethodCallResolver.ts +39 -13
- package/src/plugins/enrichment/MountPointResolver.ts +208 -195
- package/src/plugins/enrichment/NodejsBuiltinsResolver.ts +365 -0
- package/src/plugins/enrichment/PrefixEvaluator.ts +16 -7
- package/src/plugins/enrichment/RustFFIEnricher.ts +6 -5
- package/src/plugins/enrichment/ValueDomainAnalyzer.ts +209 -189
- package/src/plugins/indexing/IncrementalModuleIndexer.ts +23 -14
- package/src/plugins/indexing/JSModuleIndexer.ts +140 -34
- package/src/plugins/indexing/RustModuleIndexer.ts +8 -7
- package/src/plugins/validation/BrokenImportValidator.ts +325 -0
- package/src/plugins/validation/CallResolverValidator.ts +131 -110
- package/src/plugins/validation/DataFlowValidator.ts +88 -67
- package/src/plugins/validation/EvalBanValidator.ts +17 -16
- package/src/plugins/validation/GraphConnectivityValidator.ts +58 -24
- package/src/plugins/validation/NodeCreationValidator.ts +554 -0
- package/src/plugins/validation/SQLInjectionValidator.ts +63 -20
- 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/queries/README.md +46 -0
- package/src/queries/findCallsInFunction.ts +206 -0
- package/src/queries/findContainingFunction.ts +83 -0
- package/src/queries/index.ts +23 -0
- package/src/queries/traceValues.ts +398 -0
- package/src/queries/types.ts +187 -0
- package/src/schema/GraphSchemaExtractor.ts +177 -0
- package/src/schema/InterfaceSchemaExtractor.ts +173 -0
- package/src/schema/index.ts +5 -0
- package/src/storage/backends/RFDBServerBackend.ts +100 -98
- package/src/storage/backends/typeValidation.ts +1 -0
- 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
|
@@ -13,7 +13,6 @@ export interface ModuleNode {
|
|
|
13
13
|
}
|
|
14
14
|
export interface FunctionInfo {
|
|
15
15
|
id: string;
|
|
16
|
-
stableId: string;
|
|
17
16
|
type: 'FUNCTION';
|
|
18
17
|
name: string;
|
|
19
18
|
file: string;
|
|
@@ -25,15 +24,19 @@ export interface FunctionInfo {
|
|
|
25
24
|
isAssignment?: boolean;
|
|
26
25
|
isCallback?: boolean;
|
|
27
26
|
parentScopeId?: string;
|
|
27
|
+
controlFlow?: ControlFlowMetadata;
|
|
28
28
|
}
|
|
29
29
|
export interface ParameterInfo {
|
|
30
30
|
id: string;
|
|
31
|
+
semanticId?: string;
|
|
31
32
|
type: 'PARAMETER';
|
|
32
33
|
name: string;
|
|
33
34
|
file: string;
|
|
34
35
|
line: number;
|
|
35
36
|
index?: number;
|
|
36
|
-
|
|
37
|
+
hasDefault?: boolean;
|
|
38
|
+
isRest?: boolean;
|
|
39
|
+
functionId?: string;
|
|
37
40
|
parentFunctionId?: string;
|
|
38
41
|
}
|
|
39
42
|
export interface ScopeInfo {
|
|
@@ -56,8 +59,103 @@ export interface ScopeInfo {
|
|
|
56
59
|
line: number;
|
|
57
60
|
}>;
|
|
58
61
|
}
|
|
62
|
+
export interface BranchInfo {
|
|
63
|
+
id: string;
|
|
64
|
+
semanticId?: string;
|
|
65
|
+
type: 'BRANCH';
|
|
66
|
+
branchType: 'switch' | 'if' | 'ternary';
|
|
67
|
+
file: string;
|
|
68
|
+
line: number;
|
|
69
|
+
parentScopeId?: string;
|
|
70
|
+
discriminantExpressionId?: string;
|
|
71
|
+
discriminantExpressionType?: string;
|
|
72
|
+
discriminantLine?: number;
|
|
73
|
+
discriminantColumn?: number;
|
|
74
|
+
isAlternateOfBranchId?: string;
|
|
75
|
+
consequentExpressionId?: string;
|
|
76
|
+
alternateExpressionId?: string;
|
|
77
|
+
}
|
|
78
|
+
export interface CaseInfo {
|
|
79
|
+
id: string;
|
|
80
|
+
semanticId?: string;
|
|
81
|
+
type: 'CASE';
|
|
82
|
+
value: unknown;
|
|
83
|
+
isDefault: boolean;
|
|
84
|
+
fallsThrough: boolean;
|
|
85
|
+
isEmpty: boolean;
|
|
86
|
+
file: string;
|
|
87
|
+
line: number;
|
|
88
|
+
parentBranchId: string;
|
|
89
|
+
}
|
|
90
|
+
export interface LoopInfo {
|
|
91
|
+
id: string;
|
|
92
|
+
semanticId?: string;
|
|
93
|
+
type: 'LOOP';
|
|
94
|
+
loopType: 'for' | 'for-in' | 'for-of' | 'while' | 'do-while';
|
|
95
|
+
file: string;
|
|
96
|
+
line: number;
|
|
97
|
+
column?: number;
|
|
98
|
+
parentScopeId?: string;
|
|
99
|
+
iteratesOverName?: string;
|
|
100
|
+
iteratesOverLine?: number;
|
|
101
|
+
iteratesOverColumn?: number;
|
|
102
|
+
conditionExpressionId?: string;
|
|
103
|
+
conditionExpressionType?: string;
|
|
104
|
+
conditionLine?: number;
|
|
105
|
+
conditionColumn?: number;
|
|
106
|
+
initVariableName?: string;
|
|
107
|
+
initLine?: number;
|
|
108
|
+
testExpressionId?: string;
|
|
109
|
+
testExpressionType?: string;
|
|
110
|
+
testLine?: number;
|
|
111
|
+
testColumn?: number;
|
|
112
|
+
updateExpressionId?: string;
|
|
113
|
+
updateExpressionType?: string;
|
|
114
|
+
updateLine?: number;
|
|
115
|
+
updateColumn?: number;
|
|
116
|
+
async?: boolean;
|
|
117
|
+
}
|
|
118
|
+
export interface TryBlockInfo {
|
|
119
|
+
id: string;
|
|
120
|
+
semanticId?: string;
|
|
121
|
+
type: 'TRY_BLOCK';
|
|
122
|
+
file: string;
|
|
123
|
+
line: number;
|
|
124
|
+
column?: number;
|
|
125
|
+
parentScopeId?: string;
|
|
126
|
+
}
|
|
127
|
+
export interface CatchBlockInfo {
|
|
128
|
+
id: string;
|
|
129
|
+
semanticId?: string;
|
|
130
|
+
type: 'CATCH_BLOCK';
|
|
131
|
+
file: string;
|
|
132
|
+
line: number;
|
|
133
|
+
column?: number;
|
|
134
|
+
parentScopeId?: string;
|
|
135
|
+
parentTryBlockId: string;
|
|
136
|
+
parameterName?: string;
|
|
137
|
+
}
|
|
138
|
+
export interface FinallyBlockInfo {
|
|
139
|
+
id: string;
|
|
140
|
+
semanticId?: string;
|
|
141
|
+
type: 'FINALLY_BLOCK';
|
|
142
|
+
file: string;
|
|
143
|
+
line: number;
|
|
144
|
+
column?: number;
|
|
145
|
+
parentScopeId?: string;
|
|
146
|
+
parentTryBlockId: string;
|
|
147
|
+
}
|
|
148
|
+
export interface ControlFlowMetadata {
|
|
149
|
+
hasBranches: boolean;
|
|
150
|
+
hasLoops: boolean;
|
|
151
|
+
hasTryCatch: boolean;
|
|
152
|
+
hasEarlyReturn: boolean;
|
|
153
|
+
hasThrow: boolean;
|
|
154
|
+
cyclomaticComplexity: number;
|
|
155
|
+
}
|
|
59
156
|
export interface VariableDeclarationInfo {
|
|
60
157
|
id: string;
|
|
158
|
+
semanticId?: string;
|
|
61
159
|
type: 'VARIABLE' | 'CONSTANT';
|
|
62
160
|
name: string;
|
|
63
161
|
file: string;
|
|
@@ -68,6 +166,7 @@ export interface VariableDeclarationInfo {
|
|
|
68
166
|
}
|
|
69
167
|
export interface CallSiteInfo {
|
|
70
168
|
id: string;
|
|
169
|
+
semanticId?: string;
|
|
71
170
|
type: 'CALL';
|
|
72
171
|
name: string;
|
|
73
172
|
file: string;
|
|
@@ -79,10 +178,13 @@ export interface CallSiteInfo {
|
|
|
79
178
|
}
|
|
80
179
|
export interface MethodCallInfo {
|
|
81
180
|
id: string;
|
|
181
|
+
semanticId?: string;
|
|
82
182
|
type: 'CALL';
|
|
83
183
|
name: string;
|
|
84
184
|
object: string;
|
|
85
185
|
method: string;
|
|
186
|
+
computed?: boolean;
|
|
187
|
+
computedPropertyVar?: string | null;
|
|
86
188
|
file: string;
|
|
87
189
|
line: number;
|
|
88
190
|
column?: number;
|
|
@@ -92,6 +194,7 @@ export interface MethodCallInfo {
|
|
|
92
194
|
}
|
|
93
195
|
export interface EventListenerInfo {
|
|
94
196
|
id: string;
|
|
197
|
+
semanticId?: string;
|
|
95
198
|
type: 'event:listener';
|
|
96
199
|
name: string;
|
|
97
200
|
object: string;
|
|
@@ -107,8 +210,18 @@ export interface ClassInstantiationInfo {
|
|
|
107
210
|
line: number;
|
|
108
211
|
parentScopeId?: string;
|
|
109
212
|
}
|
|
213
|
+
export interface ConstructorCallInfo {
|
|
214
|
+
id: string;
|
|
215
|
+
type: 'CONSTRUCTOR_CALL';
|
|
216
|
+
className: string;
|
|
217
|
+
isBuiltin: boolean;
|
|
218
|
+
file: string;
|
|
219
|
+
line: number;
|
|
220
|
+
column: number;
|
|
221
|
+
}
|
|
110
222
|
export interface ClassDeclarationInfo {
|
|
111
223
|
id: string;
|
|
224
|
+
semanticId?: string;
|
|
112
225
|
type: 'CLASS';
|
|
113
226
|
name: string;
|
|
114
227
|
file: string;
|
|
@@ -119,7 +232,12 @@ export interface ClassDeclarationInfo {
|
|
|
119
232
|
methods: string[];
|
|
120
233
|
}
|
|
121
234
|
export interface InterfaceDeclarationInfo {
|
|
122
|
-
|
|
235
|
+
/**
|
|
236
|
+
* @deprecated ID is now generated by InterfaceNode.create() in GraphBuilder.
|
|
237
|
+
* This field will be removed in a future version.
|
|
238
|
+
*/
|
|
239
|
+
id?: string;
|
|
240
|
+
semanticId?: string;
|
|
123
241
|
type: 'INTERFACE';
|
|
124
242
|
name: string;
|
|
125
243
|
file: string;
|
|
@@ -135,7 +253,12 @@ export interface InterfacePropertyInfo {
|
|
|
135
253
|
readonly?: boolean;
|
|
136
254
|
}
|
|
137
255
|
export interface TypeAliasInfo {
|
|
138
|
-
|
|
256
|
+
/**
|
|
257
|
+
* @deprecated ID is now generated by NodeFactory.createType() in GraphBuilder.
|
|
258
|
+
* This field will be removed in a future version.
|
|
259
|
+
*/
|
|
260
|
+
id?: string;
|
|
261
|
+
semanticId?: string;
|
|
139
262
|
type: 'TYPE';
|
|
140
263
|
name: string;
|
|
141
264
|
file: string;
|
|
@@ -144,7 +267,12 @@ export interface TypeAliasInfo {
|
|
|
144
267
|
aliasOf?: string;
|
|
145
268
|
}
|
|
146
269
|
export interface EnumDeclarationInfo {
|
|
147
|
-
|
|
270
|
+
/**
|
|
271
|
+
* @deprecated ID is now generated by EnumNode.create() in GraphBuilder.
|
|
272
|
+
* This field will be removed in a future version.
|
|
273
|
+
*/
|
|
274
|
+
id?: string;
|
|
275
|
+
semanticId?: string;
|
|
148
276
|
type: 'ENUM';
|
|
149
277
|
name: string;
|
|
150
278
|
file: string;
|
|
@@ -159,6 +287,7 @@ export interface EnumMemberInfo {
|
|
|
159
287
|
}
|
|
160
288
|
export interface DecoratorInfo {
|
|
161
289
|
id: string;
|
|
290
|
+
semanticId?: string;
|
|
162
291
|
type: 'DECORATOR';
|
|
163
292
|
name: string;
|
|
164
293
|
file: string;
|
|
@@ -182,6 +311,10 @@ export interface CallArgumentInfo {
|
|
|
182
311
|
targetId?: string;
|
|
183
312
|
targetName?: string;
|
|
184
313
|
file?: string;
|
|
314
|
+
line?: number;
|
|
315
|
+
column?: number;
|
|
316
|
+
literalValue?: unknown;
|
|
317
|
+
expressionType?: string;
|
|
185
318
|
isSpread?: boolean;
|
|
186
319
|
functionLine?: number;
|
|
187
320
|
functionColumn?: number;
|
|
@@ -195,7 +328,11 @@ export interface ImportInfo {
|
|
|
195
328
|
source: string;
|
|
196
329
|
file: string;
|
|
197
330
|
line: number;
|
|
331
|
+
column?: number;
|
|
198
332
|
specifiers: ImportSpecifier[];
|
|
333
|
+
isDynamic?: boolean;
|
|
334
|
+
isResolvable?: boolean;
|
|
335
|
+
dynamicPath?: string;
|
|
199
336
|
}
|
|
200
337
|
export interface ImportSpecifier {
|
|
201
338
|
imported: string;
|
|
@@ -225,6 +362,7 @@ export interface HttpRequestInfo {
|
|
|
225
362
|
}
|
|
226
363
|
export interface LiteralInfo {
|
|
227
364
|
id: string;
|
|
365
|
+
semanticId?: string;
|
|
228
366
|
type: 'LITERAL' | 'CALL';
|
|
229
367
|
value?: unknown;
|
|
230
368
|
valueType?: string;
|
|
@@ -238,6 +376,160 @@ export interface LiteralInfo {
|
|
|
238
376
|
parentCallId?: string;
|
|
239
377
|
argIndex?: number;
|
|
240
378
|
}
|
|
379
|
+
export interface ObjectLiteralInfo {
|
|
380
|
+
id: string;
|
|
381
|
+
semanticId?: string;
|
|
382
|
+
type: 'OBJECT_LITERAL';
|
|
383
|
+
file: string;
|
|
384
|
+
line: number;
|
|
385
|
+
column: number;
|
|
386
|
+
parentCallId?: string;
|
|
387
|
+
argIndex?: number;
|
|
388
|
+
isSpread?: boolean;
|
|
389
|
+
}
|
|
390
|
+
export interface ObjectPropertyInfo {
|
|
391
|
+
objectId: string;
|
|
392
|
+
propertyName: string;
|
|
393
|
+
valueNodeId?: string;
|
|
394
|
+
valueType: 'LITERAL' | 'VARIABLE' | 'CALL' | 'EXPRESSION' | 'OBJECT_LITERAL' | 'ARRAY_LITERAL' | 'SPREAD';
|
|
395
|
+
valueName?: string;
|
|
396
|
+
literalValue?: unknown;
|
|
397
|
+
file: string;
|
|
398
|
+
line: number;
|
|
399
|
+
column: number;
|
|
400
|
+
callLine?: number;
|
|
401
|
+
callColumn?: number;
|
|
402
|
+
nestedObjectId?: string;
|
|
403
|
+
nestedArrayId?: string;
|
|
404
|
+
valueScopePath?: string[];
|
|
405
|
+
}
|
|
406
|
+
export interface ArrayLiteralInfo {
|
|
407
|
+
id: string;
|
|
408
|
+
semanticId?: string;
|
|
409
|
+
type: 'ARRAY_LITERAL';
|
|
410
|
+
file: string;
|
|
411
|
+
line: number;
|
|
412
|
+
column: number;
|
|
413
|
+
parentCallId?: string;
|
|
414
|
+
argIndex?: number;
|
|
415
|
+
}
|
|
416
|
+
export interface ArrayElementInfo {
|
|
417
|
+
arrayId: string;
|
|
418
|
+
index: number;
|
|
419
|
+
valueNodeId?: string;
|
|
420
|
+
valueType: 'LITERAL' | 'VARIABLE' | 'CALL' | 'EXPRESSION' | 'OBJECT_LITERAL' | 'ARRAY_LITERAL' | 'SPREAD';
|
|
421
|
+
valueName?: string;
|
|
422
|
+
literalValue?: unknown;
|
|
423
|
+
file: string;
|
|
424
|
+
line: number;
|
|
425
|
+
column: number;
|
|
426
|
+
callLine?: number;
|
|
427
|
+
callColumn?: number;
|
|
428
|
+
nestedObjectId?: string;
|
|
429
|
+
nestedArrayId?: string;
|
|
430
|
+
}
|
|
431
|
+
/**
|
|
432
|
+
* Tracks array mutation calls (push, unshift, splice) and indexed assignments
|
|
433
|
+
* Used to create FLOWS_INTO edges in GraphBuilder
|
|
434
|
+
*
|
|
435
|
+
* IMPORTANT: This type is defined ONLY here. Import from this file everywhere.
|
|
436
|
+
*/
|
|
437
|
+
export interface ArrayMutationInfo {
|
|
438
|
+
id?: string;
|
|
439
|
+
arrayName: string;
|
|
440
|
+
arrayLine?: number;
|
|
441
|
+
mutationScopePath?: string[];
|
|
442
|
+
mutationMethod: 'push' | 'unshift' | 'splice' | 'indexed';
|
|
443
|
+
file: string;
|
|
444
|
+
line: number;
|
|
445
|
+
column: number;
|
|
446
|
+
insertedValues: ArrayMutationArgument[];
|
|
447
|
+
isNested?: boolean;
|
|
448
|
+
baseObjectName?: string;
|
|
449
|
+
propertyName?: string;
|
|
450
|
+
}
|
|
451
|
+
export interface ArrayMutationArgument {
|
|
452
|
+
argIndex: number;
|
|
453
|
+
isSpread?: boolean;
|
|
454
|
+
valueType: 'LITERAL' | 'VARIABLE' | 'CALL' | 'EXPRESSION' | 'OBJECT_LITERAL' | 'ARRAY_LITERAL';
|
|
455
|
+
valueName?: string;
|
|
456
|
+
valueNodeId?: string;
|
|
457
|
+
literalValue?: unknown;
|
|
458
|
+
callLine?: number;
|
|
459
|
+
callColumn?: number;
|
|
460
|
+
}
|
|
461
|
+
/**
|
|
462
|
+
* Tracks object property mutations for FLOWS_INTO edge creation in GraphBuilder.
|
|
463
|
+
* Handles: obj.prop = value, obj['prop'] = value, Object.assign(), spread in object literals.
|
|
464
|
+
*
|
|
465
|
+
* IMPORTANT: This type is defined ONLY here. Import from this file everywhere.
|
|
466
|
+
*/
|
|
467
|
+
export interface ObjectMutationInfo {
|
|
468
|
+
id?: string;
|
|
469
|
+
objectName: string;
|
|
470
|
+
objectLine?: number;
|
|
471
|
+
mutationScopePath?: string[];
|
|
472
|
+
enclosingClassName?: string;
|
|
473
|
+
propertyName: string;
|
|
474
|
+
mutationType: 'property' | 'computed' | 'assign' | 'spread';
|
|
475
|
+
computedPropertyVar?: string;
|
|
476
|
+
file: string;
|
|
477
|
+
line: number;
|
|
478
|
+
column: number;
|
|
479
|
+
value: ObjectMutationValue;
|
|
480
|
+
}
|
|
481
|
+
export interface ObjectMutationValue {
|
|
482
|
+
valueType: 'LITERAL' | 'VARIABLE' | 'CALL' | 'EXPRESSION' | 'OBJECT_LITERAL' | 'ARRAY_LITERAL';
|
|
483
|
+
valueName?: string;
|
|
484
|
+
valueNodeId?: string;
|
|
485
|
+
literalValue?: unknown;
|
|
486
|
+
callLine?: number;
|
|
487
|
+
callColumn?: number;
|
|
488
|
+
isSpread?: boolean;
|
|
489
|
+
argIndex?: number;
|
|
490
|
+
}
|
|
491
|
+
/**
|
|
492
|
+
* Tracks return statements for RETURNS edge creation in GraphBuilder.
|
|
493
|
+
* Used to connect returned expressions to their containing functions.
|
|
494
|
+
*
|
|
495
|
+
* Edge direction: returnExpression --RETURNS--> function
|
|
496
|
+
*/
|
|
497
|
+
export interface ReturnStatementInfo {
|
|
498
|
+
parentFunctionId: string;
|
|
499
|
+
file: string;
|
|
500
|
+
line: number;
|
|
501
|
+
column: number;
|
|
502
|
+
returnValueType: 'VARIABLE' | 'CALL_SITE' | 'METHOD_CALL' | 'LITERAL' | 'EXPRESSION' | 'NONE';
|
|
503
|
+
returnValueName?: string;
|
|
504
|
+
returnValueId?: string;
|
|
505
|
+
returnValueLine?: number;
|
|
506
|
+
returnValueColumn?: number;
|
|
507
|
+
returnValueCallName?: string;
|
|
508
|
+
expressionType?: string;
|
|
509
|
+
operator?: string;
|
|
510
|
+
leftSourceName?: string;
|
|
511
|
+
rightSourceName?: string;
|
|
512
|
+
consequentSourceName?: string;
|
|
513
|
+
alternateSourceName?: string;
|
|
514
|
+
object?: string;
|
|
515
|
+
property?: string;
|
|
516
|
+
computed?: boolean;
|
|
517
|
+
objectSourceName?: string;
|
|
518
|
+
expressionSourceNames?: string[];
|
|
519
|
+
unaryArgSourceName?: string;
|
|
520
|
+
isImplicitReturn?: boolean;
|
|
521
|
+
}
|
|
522
|
+
/**
|
|
523
|
+
* Resolution status for computed property names.
|
|
524
|
+
* Used in FLOWS_INTO edge metadata to indicate how property name was determined.
|
|
525
|
+
*
|
|
526
|
+
* - RESOLVED: Single deterministic value traced from literals
|
|
527
|
+
* - RESOLVED_CONDITIONAL: Multiple possible values (ternary, logical OR, etc.)
|
|
528
|
+
* - UNKNOWN_PARAMETER: Variable traces to function parameter
|
|
529
|
+
* - UNKNOWN_RUNTIME: Variable traces to function call result
|
|
530
|
+
* - DEFERRED_CROSS_FILE: Variable traces to import (requires cross-file analysis)
|
|
531
|
+
*/
|
|
532
|
+
export type ResolutionStatus = 'RESOLVED' | 'RESOLVED_CONDITIONAL' | 'UNKNOWN_PARAMETER' | 'UNKNOWN_RUNTIME' | 'DEFERRED_CROSS_FILE';
|
|
241
533
|
export interface VariableAssignmentInfo {
|
|
242
534
|
variableId: string;
|
|
243
535
|
sourceId?: string | null;
|
|
@@ -252,6 +544,7 @@ export interface VariableAssignmentInfo {
|
|
|
252
544
|
className?: string;
|
|
253
545
|
functionName?: string;
|
|
254
546
|
line?: number;
|
|
547
|
+
column?: number;
|
|
255
548
|
expressionType?: string;
|
|
256
549
|
object?: string;
|
|
257
550
|
property?: string;
|
|
@@ -265,6 +558,137 @@ export interface VariableAssignmentInfo {
|
|
|
265
558
|
alternateSourceName?: string | null;
|
|
266
559
|
expressionSourceNames?: string[];
|
|
267
560
|
file?: string;
|
|
561
|
+
path?: string;
|
|
562
|
+
baseName?: string;
|
|
563
|
+
propertyPath?: string[];
|
|
564
|
+
arrayIndex?: number;
|
|
565
|
+
callSourceLine?: number;
|
|
566
|
+
callSourceColumn?: number;
|
|
567
|
+
callSourceFile?: string;
|
|
568
|
+
callSourceName?: string;
|
|
569
|
+
sourceMetadata?: {
|
|
570
|
+
sourceType: 'call' | 'variable' | 'method-call';
|
|
571
|
+
};
|
|
572
|
+
}
|
|
573
|
+
/**
|
|
574
|
+
* Tracks variable reassignments for FLOWS_INTO edge creation.
|
|
575
|
+
* Used when a variable is assigned AFTER its declaration: x = y (not const x = y).
|
|
576
|
+
*
|
|
577
|
+
* Edge direction: value --FLOWS_INTO--> variable
|
|
578
|
+
*
|
|
579
|
+
* Supports:
|
|
580
|
+
* - Simple assignment: x = y
|
|
581
|
+
* - Compound operators: x += y, x -= y, x *= y, x /= y, x %= y, x **= y
|
|
582
|
+
* - Bitwise operators: x &= y, x |= y, x ^= y, x <<= y, x >>= y, x >>>= y
|
|
583
|
+
* - Logical operators: x &&= y, x ||= y, x ??= y
|
|
584
|
+
*
|
|
585
|
+
* For compound operators (operator !== '='), creates TWO edges:
|
|
586
|
+
* - READS_FROM: variable --READS_FROM--> variable (self-loop, reads current value)
|
|
587
|
+
* - FLOWS_INTO: source --FLOWS_INTO--> variable (writes new value)
|
|
588
|
+
*
|
|
589
|
+
* Distinction from VariableAssignmentInfo:
|
|
590
|
+
* - VariableAssignmentInfo: initialization (const x = y) -> ASSIGNED_FROM edge
|
|
591
|
+
* - VariableReassignmentInfo: mutation (x = y, x += y) -> FLOWS_INTO edge
|
|
592
|
+
*/
|
|
593
|
+
export interface VariableReassignmentInfo {
|
|
594
|
+
variableName: string;
|
|
595
|
+
variableLine: number;
|
|
596
|
+
mutationScopePath?: string[];
|
|
597
|
+
valueType: 'VARIABLE' | 'CALL_SITE' | 'METHOD_CALL' | 'LITERAL' | 'EXPRESSION';
|
|
598
|
+
valueName?: string;
|
|
599
|
+
valueId?: string | null;
|
|
600
|
+
callLine?: number;
|
|
601
|
+
callColumn?: number;
|
|
602
|
+
operator: string;
|
|
603
|
+
literalValue?: unknown;
|
|
604
|
+
expressionType?: string;
|
|
605
|
+
expressionMetadata?: {
|
|
606
|
+
object?: string;
|
|
607
|
+
property?: string;
|
|
608
|
+
computed?: boolean;
|
|
609
|
+
computedPropertyVar?: string | null;
|
|
610
|
+
operator?: string;
|
|
611
|
+
leftSourceName?: string;
|
|
612
|
+
rightSourceName?: string;
|
|
613
|
+
consequentSourceName?: string;
|
|
614
|
+
alternateSourceName?: string;
|
|
615
|
+
};
|
|
616
|
+
file: string;
|
|
617
|
+
line: number;
|
|
618
|
+
column: number;
|
|
619
|
+
}
|
|
620
|
+
/**
|
|
621
|
+
* Information about update expressions (increment/decrement).
|
|
622
|
+
*
|
|
623
|
+
* Supports two target types:
|
|
624
|
+
* - IDENTIFIER: Simple variable (i++, --count)
|
|
625
|
+
* - MEMBER_EXPRESSION: Object property (obj.prop++, arr[i]++, this.count++)
|
|
626
|
+
*
|
|
627
|
+
* Creates:
|
|
628
|
+
* - UPDATE_EXPRESSION node with operator and target metadata
|
|
629
|
+
* - MODIFIES edge: UPDATE_EXPRESSION -> target (VARIABLE, PARAMETER, or CLASS)
|
|
630
|
+
* - READS_FROM self-loop: target -> target (reads current value before update)
|
|
631
|
+
* - CONTAINS edge: SCOPE -> UPDATE_EXPRESSION
|
|
632
|
+
*
|
|
633
|
+
* REG-288: Initial implementation for IDENTIFIER targets
|
|
634
|
+
* REG-312: Extended for MEMBER_EXPRESSION targets (obj.prop++, arr[i]++)
|
|
635
|
+
*/
|
|
636
|
+
export interface UpdateExpressionInfo {
|
|
637
|
+
operator: '++' | '--';
|
|
638
|
+
prefix: boolean;
|
|
639
|
+
file: string;
|
|
640
|
+
line: number;
|
|
641
|
+
column: number;
|
|
642
|
+
parentScopeId?: string;
|
|
643
|
+
targetType: 'IDENTIFIER' | 'MEMBER_EXPRESSION';
|
|
644
|
+
variableName?: string;
|
|
645
|
+
variableLine?: number;
|
|
646
|
+
objectName?: string;
|
|
647
|
+
objectLine?: number;
|
|
648
|
+
enclosingClassName?: string;
|
|
649
|
+
propertyName?: string;
|
|
650
|
+
mutationType?: 'property' | 'computed';
|
|
651
|
+
computedPropertyVar?: string;
|
|
652
|
+
}
|
|
653
|
+
/**
|
|
654
|
+
* Tracks Promise executor context during analysis.
|
|
655
|
+
* Used to detect when resolve/reject calls should create RESOLVES_TO edges.
|
|
656
|
+
*
|
|
657
|
+
* Stored in collections.promiseExecutorContexts Map, keyed by executor function's start:end position.
|
|
658
|
+
*/
|
|
659
|
+
export interface PromiseExecutorContext {
|
|
660
|
+
/** ID of the CONSTRUCTOR_CALL node for `new Promise()` */
|
|
661
|
+
constructorCallId: string;
|
|
662
|
+
/** Name of the first parameter (typically 'resolve') */
|
|
663
|
+
resolveName: string;
|
|
664
|
+
/** Name of the second parameter (typically 'reject'), if any */
|
|
665
|
+
rejectName?: string;
|
|
666
|
+
/** File path for edge creation */
|
|
667
|
+
file: string;
|
|
668
|
+
/** Line of the Promise constructor for debugging */
|
|
669
|
+
line: number;
|
|
670
|
+
}
|
|
671
|
+
/**
|
|
672
|
+
* Info for Promise resolution RESOLVES_TO edges.
|
|
673
|
+
* Created when resolve(value) or reject(error) is called inside Promise executor.
|
|
674
|
+
*
|
|
675
|
+
* Graph structure:
|
|
676
|
+
* CALL[resolve(42)] --RESOLVES_TO--> CONSTRUCTOR_CALL[new Promise]
|
|
677
|
+
*
|
|
678
|
+
* Edge direction: resolve CALL -> Promise CONSTRUCTOR_CALL
|
|
679
|
+
* This allows traceValues to follow RESOLVES_TO from Promise to find data sources.
|
|
680
|
+
*/
|
|
681
|
+
export interface PromiseResolutionInfo {
|
|
682
|
+
/** ID of the resolve/reject CALL node */
|
|
683
|
+
callId: string;
|
|
684
|
+
/** ID of the Promise CONSTRUCTOR_CALL node */
|
|
685
|
+
constructorCallId: string;
|
|
686
|
+
/** True if this is reject(), false for resolve() */
|
|
687
|
+
isReject: boolean;
|
|
688
|
+
/** File path */
|
|
689
|
+
file: string;
|
|
690
|
+
/** Line number of resolve/reject call */
|
|
691
|
+
line: number;
|
|
268
692
|
}
|
|
269
693
|
export interface CounterRef {
|
|
270
694
|
value: number;
|
|
@@ -285,11 +709,18 @@ export interface ASTCollections {
|
|
|
285
709
|
functions: FunctionInfo[];
|
|
286
710
|
parameters?: ParameterInfo[];
|
|
287
711
|
scopes: ScopeInfo[];
|
|
712
|
+
branches?: BranchInfo[];
|
|
713
|
+
cases?: CaseInfo[];
|
|
714
|
+
loops?: LoopInfo[];
|
|
715
|
+
tryBlocks?: TryBlockInfo[];
|
|
716
|
+
catchBlocks?: CatchBlockInfo[];
|
|
717
|
+
finallyBlocks?: FinallyBlockInfo[];
|
|
288
718
|
variableDeclarations: VariableDeclarationInfo[];
|
|
289
719
|
callSites: CallSiteInfo[];
|
|
290
720
|
methodCalls?: MethodCallInfo[];
|
|
291
721
|
eventListeners?: EventListenerInfo[];
|
|
292
722
|
classInstantiations?: ClassInstantiationInfo[];
|
|
723
|
+
constructorCalls?: ConstructorCallInfo[];
|
|
293
724
|
classDeclarations?: ClassDeclarationInfo[];
|
|
294
725
|
methodCallbacks?: MethodCallbackInfo[];
|
|
295
726
|
callArguments?: CallArgumentInfo[];
|
|
@@ -298,6 +729,17 @@ export interface ASTCollections {
|
|
|
298
729
|
httpRequests?: HttpRequestInfo[];
|
|
299
730
|
literals?: LiteralInfo[];
|
|
300
731
|
variableAssignments?: VariableAssignmentInfo[];
|
|
732
|
+
objectLiterals?: ObjectLiteralInfo[];
|
|
733
|
+
objectProperties?: ObjectPropertyInfo[];
|
|
734
|
+
arrayLiterals?: ArrayLiteralInfo[];
|
|
735
|
+
arrayElements?: ArrayElementInfo[];
|
|
736
|
+
arrayMutations?: ArrayMutationInfo[];
|
|
737
|
+
objectMutations?: ObjectMutationInfo[];
|
|
738
|
+
variableReassignments?: VariableReassignmentInfo[];
|
|
739
|
+
returnStatements?: ReturnStatementInfo[];
|
|
740
|
+
updateExpressions?: UpdateExpressionInfo[];
|
|
741
|
+
promiseResolutions?: PromiseResolutionInfo[];
|
|
742
|
+
promiseExecutorContexts?: Map<string, PromiseExecutorContext>;
|
|
301
743
|
interfaces?: InterfaceDeclarationInfo[];
|
|
302
744
|
typeAliases?: TypeAliasInfo[];
|
|
303
745
|
enums?: EnumDeclarationInfo[];
|
|
@@ -309,7 +751,16 @@ export interface ASTCollections {
|
|
|
309
751
|
functionCounterRef?: CounterRef;
|
|
310
752
|
httpRequestCounterRef?: CounterRef;
|
|
311
753
|
literalCounterRef?: CounterRef;
|
|
754
|
+
objectLiteralCounterRef?: CounterRef;
|
|
755
|
+
arrayLiteralCounterRef?: CounterRef;
|
|
756
|
+
branchCounterRef?: CounterRef;
|
|
757
|
+
caseCounterRef?: CounterRef;
|
|
758
|
+
loopCounterRef?: CounterRef;
|
|
759
|
+
tryBlockCounterRef?: CounterRef;
|
|
760
|
+
catchBlockCounterRef?: CounterRef;
|
|
761
|
+
finallyBlockCounterRef?: CounterRef;
|
|
312
762
|
processedNodes?: ProcessedNodes;
|
|
763
|
+
scopeTracker?: import('../../../core/ScopeTracker.js').ScopeTracker;
|
|
313
764
|
}
|
|
314
765
|
export interface ExtractedVariable {
|
|
315
766
|
name: string;
|
|
@@ -330,6 +781,11 @@ export interface GraphNode {
|
|
|
330
781
|
file?: string;
|
|
331
782
|
line?: number;
|
|
332
783
|
column?: number;
|
|
784
|
+
source?: string;
|
|
785
|
+
importType?: 'default' | 'named' | 'namespace';
|
|
786
|
+
importBinding?: 'value' | 'type' | 'typeof';
|
|
787
|
+
imported?: string;
|
|
788
|
+
local?: string;
|
|
333
789
|
[key: string]: unknown;
|
|
334
790
|
}
|
|
335
791
|
export interface GraphEdge {
|
|
@@ -337,6 +793,15 @@ export interface GraphEdge {
|
|
|
337
793
|
src: string;
|
|
338
794
|
dst: string;
|
|
339
795
|
index?: number;
|
|
796
|
+
mutationMethod?: string;
|
|
797
|
+
argIndex?: number;
|
|
798
|
+
isSpread?: boolean;
|
|
799
|
+
nestedProperty?: string;
|
|
800
|
+
mutationType?: 'property' | 'computed' | 'assign' | 'spread' | 'this_property';
|
|
801
|
+
propertyName?: string;
|
|
802
|
+
computedPropertyVar?: string;
|
|
803
|
+
resolvedPropertyNames?: string[];
|
|
804
|
+
resolutionStatus?: ResolutionStatus;
|
|
340
805
|
metadata?: Record<string, unknown>;
|
|
341
806
|
}
|
|
342
807
|
export interface BuildResult {
|