@grafema/core 0.1.1-alpha → 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/dist/Orchestrator.d.ts +7 -0
- package/dist/Orchestrator.d.ts.map +1 -1
- package/dist/Orchestrator.js +25 -3
- package/dist/config/ConfigLoader.d.ts +18 -0
- package/dist/config/ConfigLoader.d.ts.map +1 -1
- package/dist/config/ConfigLoader.js +65 -3
- 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/NodeFactory.d.ts +44 -5
- package/dist/core/NodeFactory.d.ts.map +1 -1
- package/dist/core/NodeFactory.js +52 -7
- package/dist/core/nodes/ArrayLiteralNode.d.ts.map +1 -1
- package/dist/core/nodes/ArrayLiteralNode.js +4 -2
- 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 +2 -2
- package/dist/core/nodes/CallSiteNode.d.ts.map +1 -1
- package/dist/core/nodes/CallSiteNode.js +9 -5
- 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 +2 -2
- package/dist/core/nodes/ClassNode.d.ts.map +1 -1
- package/dist/core/nodes/ClassNode.js +8 -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 +2 -2
- package/dist/core/nodes/DecoratorNode.d.ts.map +1 -1
- package/dist/core/nodes/DecoratorNode.js +5 -3
- package/dist/core/nodes/EnumNode.d.ts +2 -2
- package/dist/core/nodes/EnumNode.d.ts.map +1 -1
- package/dist/core/nodes/EnumNode.js +5 -3
- 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 +2 -2
- package/dist/core/nodes/ExportNode.d.ts.map +1 -1
- package/dist/core/nodes/ExportNode.js +8 -4
- package/dist/core/nodes/ExpressionNode.d.ts +2 -2
- package/dist/core/nodes/ExpressionNode.d.ts.map +1 -1
- package/dist/core/nodes/ExpressionNode.js +6 -4
- package/dist/core/nodes/ExternalModuleNode.d.ts +4 -0
- package/dist/core/nodes/ExternalModuleNode.d.ts.map +1 -1
- package/dist/core/nodes/ExternalModuleNode.js +10 -2
- 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 +10 -2
- package/dist/core/nodes/ImportNode.d.ts.map +1 -1
- package/dist/core/nodes/ImportNode.js +21 -4
- package/dist/core/nodes/InterfaceNode.d.ts +2 -2
- package/dist/core/nodes/InterfaceNode.d.ts.map +1 -1
- package/dist/core/nodes/InterfaceNode.js +5 -3
- 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 +2 -2
- package/dist/core/nodes/MethodCallNode.d.ts.map +1 -1
- package/dist/core/nodes/MethodCallNode.js +9 -5
- package/dist/core/nodes/MethodNode.d.ts +2 -2
- package/dist/core/nodes/MethodNode.d.ts.map +1 -1
- package/dist/core/nodes/MethodNode.js +8 -4
- package/dist/core/nodes/ObjectLiteralNode.d.ts.map +1 -1
- package/dist/core/nodes/ObjectLiteralNode.js +4 -2
- 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/TypeNode.d.ts +2 -2
- package/dist/core/nodes/TypeNode.d.ts.map +1 -1
- package/dist/core/nodes/TypeNode.js +5 -3
- package/dist/core/nodes/VariableDeclarationNode.d.ts +2 -2
- package/dist/core/nodes/VariableDeclarationNode.d.ts.map +1 -1
- package/dist/core/nodes/VariableDeclarationNode.js +9 -5
- package/dist/core/nodes/index.d.ts +3 -0
- package/dist/core/nodes/index.d.ts.map +1 -1
- package/dist/core/nodes/index.js +3 -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/DiagnosticReporter.d.ts +23 -0
- package/dist/diagnostics/DiagnosticReporter.d.ts.map +1 -1
- package/dist/diagnostics/DiagnosticReporter.js +88 -0
- package/dist/diagnostics/index.d.ts +1 -1
- package/dist/diagnostics/index.d.ts.map +1 -1
- package/dist/errors/GrafemaError.d.ts +43 -0
- package/dist/errors/GrafemaError.d.ts.map +1 -1
- package/dist/errors/GrafemaError.js +50 -0
- package/dist/index.d.ts +17 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +17 -1
- package/dist/plugins/analysis/DatabaseAnalyzer.d.ts.map +1 -1
- package/dist/plugins/analysis/DatabaseAnalyzer.js +3 -2
- package/dist/plugins/analysis/ExpressAnalyzer.d.ts.map +1 -1
- package/dist/plugins/analysis/ExpressAnalyzer.js +3 -1
- 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 +53 -18
- package/dist/plugins/analysis/FetchAnalyzer.d.ts +40 -0
- package/dist/plugins/analysis/FetchAnalyzer.d.ts.map +1 -1
- package/dist/plugins/analysis/FetchAnalyzer.js +163 -15
- package/dist/plugins/analysis/JSASTAnalyzer.d.ts +157 -26
- package/dist/plugins/analysis/JSASTAnalyzer.d.ts.map +1 -1
- package/dist/plugins/analysis/JSASTAnalyzer.js +2418 -191
- package/dist/plugins/analysis/RustAnalyzer.js +4 -4
- package/dist/plugins/analysis/SQLiteAnalyzer.d.ts.map +1 -1
- package/dist/plugins/analysis/SQLiteAnalyzer.js +4 -2
- 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 +91 -7
- package/dist/plugins/analysis/ast/GraphBuilder.d.ts +173 -0
- package/dist/plugins/analysis/ast/GraphBuilder.d.ts.map +1 -1
- package/dist/plugins/analysis/ast/GraphBuilder.js +1256 -65
- package/dist/plugins/analysis/ast/types.d.ts +294 -0
- package/dist/plugins/analysis/ast/types.d.ts.map +1 -1
- package/dist/plugins/analysis/ast/visitors/ASTVisitor.d.ts +5 -1
- package/dist/plugins/analysis/ast/visitors/ASTVisitor.d.ts.map +1 -1
- package/dist/plugins/analysis/ast/visitors/CallExpressionVisitor.d.ts +1 -0
- package/dist/plugins/analysis/ast/visitors/CallExpressionVisitor.d.ts.map +1 -1
- package/dist/plugins/analysis/ast/visitors/CallExpressionVisitor.js +12 -1
- package/dist/plugins/analysis/ast/visitors/FunctionVisitor.d.ts +10 -0
- package/dist/plugins/analysis/ast/visitors/FunctionVisitor.d.ts.map +1 -1
- package/dist/plugins/analysis/ast/visitors/FunctionVisitor.js +62 -0
- 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 +101 -0
- package/dist/plugins/analysis/ast/visitors/VariableVisitor.d.ts +16 -1
- package/dist/plugins/analysis/ast/visitors/VariableVisitor.d.ts.map +1 -1
- package/dist/plugins/analysis/ast/visitors/VariableVisitor.js +233 -39
- package/dist/plugins/discovery/WorkspaceDiscovery.d.ts.map +1 -1
- package/dist/plugins/discovery/WorkspaceDiscovery.js +9 -4
- package/dist/plugins/enrichment/AliasTracker.d.ts.map +1 -1
- package/dist/plugins/enrichment/AliasTracker.js +16 -1
- 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 +64 -20
- package/dist/plugins/enrichment/MethodCallResolver.d.ts.map +1 -1
- package/dist/plugins/enrichment/MethodCallResolver.js +15 -1
- 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 +172 -151
- 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/ValueDomainAnalyzer.d.ts +5 -27
- package/dist/plugins/enrichment/ValueDomainAnalyzer.d.ts.map +1 -1
- package/dist/plugins/enrichment/ValueDomainAnalyzer.js +62 -139
- 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 +58 -0
- package/dist/plugins/indexing/RustModuleIndexer.d.ts +1 -1
- package/dist/plugins/indexing/RustModuleIndexer.js +4 -4
- 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 +101 -76
- package/dist/plugins/validation/DataFlowValidator.d.ts.map +1 -1
- package/dist/plugins/validation/DataFlowValidator.js +49 -41
- package/dist/plugins/validation/GraphConnectivityValidator.d.ts.map +1 -1
- package/dist/plugins/validation/GraphConnectivityValidator.js +25 -1
- package/dist/plugins/validation/SQLInjectionValidator.d.ts.map +1 -1
- package/dist/plugins/validation/SQLInjectionValidator.js +2 -3
- 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 +12 -18
- package/dist/storage/backends/RFDBServerBackend.d.ts.map +1 -1
- package/dist/storage/backends/RFDBServerBackend.js +41 -52
- package/dist/storage/backends/typeValidation.d.ts.map +1 -1
- package/dist/storage/backends/typeValidation.js +1 -0
- package/package.json +3 -3
- package/src/Orchestrator.ts +35 -3
- package/src/config/ConfigLoader.ts +94 -3
- package/src/core/FileExplainer.ts +179 -0
- package/src/core/NodeFactory.ts +72 -8
- package/src/core/nodes/ArrayLiteralNode.ts +3 -2
- package/src/core/nodes/BranchNode.ts +113 -0
- package/src/core/nodes/CallSiteNode.ts +7 -5
- package/src/core/nodes/CaseNode.ts +123 -0
- package/src/core/nodes/ClassNode.ts +6 -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 +4 -3
- package/src/core/nodes/EnumNode.ts +4 -3
- package/src/core/nodes/EventListenerNode.ts +7 -4
- package/src/core/nodes/ExportNode.ts +6 -4
- package/src/core/nodes/ExpressionNode.ts +5 -4
- package/src/core/nodes/ExternalModuleNode.ts +11 -2
- package/src/core/nodes/HttpRequestNode.ts +7 -4
- package/src/core/nodes/ImportNode.ts +31 -4
- package/src/core/nodes/InterfaceNode.ts +4 -3
- package/src/core/nodes/LiteralNode.ts +5 -4
- package/src/core/nodes/MethodCallNode.ts +7 -5
- package/src/core/nodes/MethodNode.ts +6 -4
- package/src/core/nodes/ObjectLiteralNode.ts +3 -2
- package/src/core/nodes/ParameterNode.ts +4 -3
- package/src/core/nodes/TypeNode.ts +4 -3
- package/src/core/nodes/VariableDeclarationNode.ts +7 -5
- package/src/core/nodes/index.ts +3 -0
- 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/DiagnosticReporter.ts +120 -0
- package/src/diagnostics/index.ts +1 -1
- package/src/errors/GrafemaError.ts +65 -0
- package/src/index.ts +45 -0
- package/src/plugins/analysis/DatabaseAnalyzer.ts +4 -2
- package/src/plugins/analysis/ExpressAnalyzer.ts +5 -1
- package/src/plugins/analysis/ExpressResponseAnalyzer.ts +636 -0
- package/src/plugins/analysis/ExpressRouteAnalyzer.ts +57 -18
- package/src/plugins/analysis/FetchAnalyzer.ts +204 -16
- package/src/plugins/analysis/JSASTAnalyzer.ts +2958 -260
- package/src/plugins/analysis/RustAnalyzer.ts +4 -4
- package/src/plugins/analysis/SQLiteAnalyzer.ts +5 -2
- package/src/plugins/analysis/SocketIOAnalyzer.ts +121 -7
- package/src/plugins/analysis/ast/GraphBuilder.ts +1578 -70
- package/src/plugins/analysis/ast/types.ts +387 -0
- package/src/plugins/analysis/ast/visitors/ASTVisitor.ts +8 -0
- package/src/plugins/analysis/ast/visitors/CallExpressionVisitor.ts +16 -1
- package/src/plugins/analysis/ast/visitors/FunctionVisitor.ts +77 -2
- package/src/plugins/analysis/ast/visitors/ImportExportVisitor.ts +112 -1
- package/src/plugins/analysis/ast/visitors/VariableVisitor.ts +272 -47
- package/src/plugins/discovery/WorkspaceDiscovery.ts +11 -4
- package/src/plugins/enrichment/AliasTracker.ts +22 -1
- 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 +70 -20
- package/src/plugins/enrichment/MethodCallResolver.ts +21 -1
- package/src/plugins/enrichment/MountPointResolver.ts +206 -198
- package/src/plugins/enrichment/NodejsBuiltinsResolver.ts +365 -0
- package/src/plugins/enrichment/ValueDomainAnalyzer.ts +67 -184
- package/src/plugins/indexing/JSModuleIndexer.ts +66 -0
- package/src/plugins/indexing/RustModuleIndexer.ts +4 -4
- package/src/plugins/validation/BrokenImportValidator.ts +325 -0
- package/src/plugins/validation/CallResolverValidator.ts +129 -109
- package/src/plugins/validation/DataFlowValidator.ts +75 -58
- package/src/plugins/validation/GraphConnectivityValidator.ts +39 -1
- package/src/plugins/validation/SQLInjectionValidator.ts +2 -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 +58 -70
- package/src/storage/backends/typeValidation.ts +1 -0
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* BuiltinRegistry - Registry for Node.js builtin functions (REG-218)
|
|
3
|
+
*
|
|
4
|
+
* Provides lookup for Node.js builtin modules and functions.
|
|
5
|
+
* Used by NodejsBuiltinsResolver for lazy EXTERNAL_FUNCTION node creation.
|
|
6
|
+
*
|
|
7
|
+
* Usage:
|
|
8
|
+
* const registry = new BuiltinRegistry();
|
|
9
|
+
* if (registry.isBuiltinModule('fs')) {
|
|
10
|
+
* const funcDef = registry.getFunction('fs', 'readFile');
|
|
11
|
+
* if (funcDef) {
|
|
12
|
+
* // Create EXTERNAL_FUNCTION node with metadata
|
|
13
|
+
* }
|
|
14
|
+
* }
|
|
15
|
+
*/
|
|
16
|
+
import type { BuiltinFunctionDef, BuiltinModuleDef } from './types.js';
|
|
17
|
+
export declare class BuiltinRegistry {
|
|
18
|
+
/** Map of module name to module definition */
|
|
19
|
+
private modules;
|
|
20
|
+
/** Map of "module:funcName" to function definition for fast lookup */
|
|
21
|
+
private functions;
|
|
22
|
+
constructor(modules?: BuiltinModuleDef[]);
|
|
23
|
+
/**
|
|
24
|
+
* Check if module is a Node.js builtin module.
|
|
25
|
+
* Handles node: prefix automatically.
|
|
26
|
+
*
|
|
27
|
+
* @param moduleName - Module name (e.g., 'fs', 'node:fs', 'fs/promises')
|
|
28
|
+
* @returns true if module is a known builtin
|
|
29
|
+
*/
|
|
30
|
+
isBuiltinModule(moduleName: string): boolean;
|
|
31
|
+
/**
|
|
32
|
+
* Normalize module name by stripping node: prefix.
|
|
33
|
+
*
|
|
34
|
+
* @param moduleName - Module name (e.g., 'node:fs', 'fs')
|
|
35
|
+
* @returns Normalized module name (e.g., 'fs')
|
|
36
|
+
*/
|
|
37
|
+
normalizeModule(moduleName: string): string;
|
|
38
|
+
/**
|
|
39
|
+
* Get function definition by module and function name.
|
|
40
|
+
*
|
|
41
|
+
* @param module - Module name (e.g., 'fs', 'node:fs')
|
|
42
|
+
* @param funcName - Function name (e.g., 'readFile')
|
|
43
|
+
* @returns Function definition or null if not found
|
|
44
|
+
*/
|
|
45
|
+
getFunction(module: string, funcName: string): BuiltinFunctionDef | null;
|
|
46
|
+
/**
|
|
47
|
+
* Check if function is a known builtin function.
|
|
48
|
+
*
|
|
49
|
+
* @param module - Module name
|
|
50
|
+
* @param funcName - Function name
|
|
51
|
+
* @returns true if function is known
|
|
52
|
+
*/
|
|
53
|
+
isKnownFunction(module: string, funcName: string): boolean;
|
|
54
|
+
/**
|
|
55
|
+
* Get all functions for a module.
|
|
56
|
+
*
|
|
57
|
+
* @param module - Module name
|
|
58
|
+
* @returns Array of function definitions (empty if module not found)
|
|
59
|
+
*/
|
|
60
|
+
getAllFunctions(module: string): BuiltinFunctionDef[];
|
|
61
|
+
/**
|
|
62
|
+
* List all supported builtin module names.
|
|
63
|
+
*
|
|
64
|
+
* @returns Array of module names
|
|
65
|
+
*/
|
|
66
|
+
listModules(): string[];
|
|
67
|
+
/**
|
|
68
|
+
* Create node ID for EXTERNAL_FUNCTION node.
|
|
69
|
+
*
|
|
70
|
+
* Format: EXTERNAL_FUNCTION:{module}.{funcName}
|
|
71
|
+
*
|
|
72
|
+
* @param module - Module name (will be normalized)
|
|
73
|
+
* @param funcName - Function name
|
|
74
|
+
* @returns Node ID string
|
|
75
|
+
*/
|
|
76
|
+
createNodeId(module: string, funcName: string): string;
|
|
77
|
+
}
|
|
78
|
+
//# sourceMappingURL=BuiltinRegistry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BuiltinRegistry.d.ts","sourceRoot":"","sources":["../../../src/data/builtins/BuiltinRegistry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAGvE,qBAAa,eAAe;IAC1B,8CAA8C;IAC9C,OAAO,CAAC,OAAO,CAAgC;IAE/C,sEAAsE;IACtE,OAAO,CAAC,SAAS,CAAkC;gBAEvC,OAAO,GAAE,gBAAgB,EAAwB;IAc7D;;;;;;OAMG;IACH,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO;IAK5C;;;;;OAKG;IACH,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM;IAO3C;;;;;;OAMG;IACH,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,kBAAkB,GAAG,IAAI;IAMxE;;;;;;OAMG;IACH,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO;IAI1D;;;;;OAKG;IACH,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,kBAAkB,EAAE;IAMrD;;;;OAIG;IACH,WAAW,IAAI,MAAM,EAAE;IAIvB;;;;;;;;OAQG;IACH,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM;CAIvD"}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* BuiltinRegistry - Registry for Node.js builtin functions (REG-218)
|
|
3
|
+
*
|
|
4
|
+
* Provides lookup for Node.js builtin modules and functions.
|
|
5
|
+
* Used by NodejsBuiltinsResolver for lazy EXTERNAL_FUNCTION node creation.
|
|
6
|
+
*
|
|
7
|
+
* Usage:
|
|
8
|
+
* const registry = new BuiltinRegistry();
|
|
9
|
+
* if (registry.isBuiltinModule('fs')) {
|
|
10
|
+
* const funcDef = registry.getFunction('fs', 'readFile');
|
|
11
|
+
* if (funcDef) {
|
|
12
|
+
* // Create EXTERNAL_FUNCTION node with metadata
|
|
13
|
+
* }
|
|
14
|
+
* }
|
|
15
|
+
*/
|
|
16
|
+
import { ALL_BUILTIN_MODULES } from './definitions.js';
|
|
17
|
+
export class BuiltinRegistry {
|
|
18
|
+
/** Map of module name to module definition */
|
|
19
|
+
modules;
|
|
20
|
+
/** Map of "module:funcName" to function definition for fast lookup */
|
|
21
|
+
functions;
|
|
22
|
+
constructor(modules = ALL_BUILTIN_MODULES) {
|
|
23
|
+
this.modules = new Map();
|
|
24
|
+
this.functions = new Map();
|
|
25
|
+
for (const mod of modules) {
|
|
26
|
+
this.modules.set(mod.name, mod);
|
|
27
|
+
for (const func of mod.functions) {
|
|
28
|
+
const key = `${mod.name}:${func.name}`;
|
|
29
|
+
this.functions.set(key, func);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Check if module is a Node.js builtin module.
|
|
35
|
+
* Handles node: prefix automatically.
|
|
36
|
+
*
|
|
37
|
+
* @param moduleName - Module name (e.g., 'fs', 'node:fs', 'fs/promises')
|
|
38
|
+
* @returns true if module is a known builtin
|
|
39
|
+
*/
|
|
40
|
+
isBuiltinModule(moduleName) {
|
|
41
|
+
const normalized = this.normalizeModule(moduleName);
|
|
42
|
+
return this.modules.has(normalized);
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Normalize module name by stripping node: prefix.
|
|
46
|
+
*
|
|
47
|
+
* @param moduleName - Module name (e.g., 'node:fs', 'fs')
|
|
48
|
+
* @returns Normalized module name (e.g., 'fs')
|
|
49
|
+
*/
|
|
50
|
+
normalizeModule(moduleName) {
|
|
51
|
+
if (moduleName.startsWith('node:')) {
|
|
52
|
+
return moduleName.slice(5); // Remove 'node:' prefix
|
|
53
|
+
}
|
|
54
|
+
return moduleName;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Get function definition by module and function name.
|
|
58
|
+
*
|
|
59
|
+
* @param module - Module name (e.g., 'fs', 'node:fs')
|
|
60
|
+
* @param funcName - Function name (e.g., 'readFile')
|
|
61
|
+
* @returns Function definition or null if not found
|
|
62
|
+
*/
|
|
63
|
+
getFunction(module, funcName) {
|
|
64
|
+
const normalizedModule = this.normalizeModule(module);
|
|
65
|
+
const key = `${normalizedModule}:${funcName}`;
|
|
66
|
+
return this.functions.get(key) || null;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Check if function is a known builtin function.
|
|
70
|
+
*
|
|
71
|
+
* @param module - Module name
|
|
72
|
+
* @param funcName - Function name
|
|
73
|
+
* @returns true if function is known
|
|
74
|
+
*/
|
|
75
|
+
isKnownFunction(module, funcName) {
|
|
76
|
+
return this.getFunction(module, funcName) !== null;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Get all functions for a module.
|
|
80
|
+
*
|
|
81
|
+
* @param module - Module name
|
|
82
|
+
* @returns Array of function definitions (empty if module not found)
|
|
83
|
+
*/
|
|
84
|
+
getAllFunctions(module) {
|
|
85
|
+
const normalizedModule = this.normalizeModule(module);
|
|
86
|
+
const mod = this.modules.get(normalizedModule);
|
|
87
|
+
return mod ? mod.functions : [];
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* List all supported builtin module names.
|
|
91
|
+
*
|
|
92
|
+
* @returns Array of module names
|
|
93
|
+
*/
|
|
94
|
+
listModules() {
|
|
95
|
+
return Array.from(this.modules.keys());
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Create node ID for EXTERNAL_FUNCTION node.
|
|
99
|
+
*
|
|
100
|
+
* Format: EXTERNAL_FUNCTION:{module}.{funcName}
|
|
101
|
+
*
|
|
102
|
+
* @param module - Module name (will be normalized)
|
|
103
|
+
* @param funcName - Function name
|
|
104
|
+
* @returns Node ID string
|
|
105
|
+
*/
|
|
106
|
+
createNodeId(module, funcName) {
|
|
107
|
+
const normalizedModule = this.normalizeModule(module);
|
|
108
|
+
return `EXTERNAL_FUNCTION:${normalizedModule}.${funcName}`;
|
|
109
|
+
}
|
|
110
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Node.js Builtin Definitions (REG-218)
|
|
3
|
+
*
|
|
4
|
+
* Tier 1 builtin module definitions:
|
|
5
|
+
* - fs (filesystem)
|
|
6
|
+
* - fs/promises (async filesystem)
|
|
7
|
+
* - path (path manipulation)
|
|
8
|
+
* - http/https (network)
|
|
9
|
+
* - crypto (cryptography)
|
|
10
|
+
* - child_process (process execution)
|
|
11
|
+
*
|
|
12
|
+
* Additional modules (Tier 2):
|
|
13
|
+
* - url, util, os, events, stream, buffer, worker_threads
|
|
14
|
+
*/
|
|
15
|
+
import type { BuiltinModuleDef } from './types.js';
|
|
16
|
+
/**
|
|
17
|
+
* Tier 1: Core Node.js modules (most commonly used)
|
|
18
|
+
*/
|
|
19
|
+
export declare const TIER_1_MODULES: BuiltinModuleDef[];
|
|
20
|
+
/**
|
|
21
|
+
* Tier 2: Additional commonly used modules
|
|
22
|
+
*/
|
|
23
|
+
export declare const TIER_2_MODULES: BuiltinModuleDef[];
|
|
24
|
+
/**
|
|
25
|
+
* All builtin modules combined
|
|
26
|
+
*/
|
|
27
|
+
export declare const ALL_BUILTIN_MODULES: BuiltinModuleDef[];
|
|
28
|
+
//# sourceMappingURL=definitions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"definitions.d.ts","sourceRoot":"","sources":["../../../src/data/builtins/definitions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEnD;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,gBAAgB,EAgJ5C,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,gBAAgB,EAyF5C,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,mBAAmB,EAAE,gBAAgB,EAGjD,CAAC"}
|
|
@@ -0,0 +1,250 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Node.js Builtin Definitions (REG-218)
|
|
3
|
+
*
|
|
4
|
+
* Tier 1 builtin module definitions:
|
|
5
|
+
* - fs (filesystem)
|
|
6
|
+
* - fs/promises (async filesystem)
|
|
7
|
+
* - path (path manipulation)
|
|
8
|
+
* - http/https (network)
|
|
9
|
+
* - crypto (cryptography)
|
|
10
|
+
* - child_process (process execution)
|
|
11
|
+
*
|
|
12
|
+
* Additional modules (Tier 2):
|
|
13
|
+
* - url, util, os, events, stream, buffer, worker_threads
|
|
14
|
+
*/
|
|
15
|
+
/**
|
|
16
|
+
* Tier 1: Core Node.js modules (most commonly used)
|
|
17
|
+
*/
|
|
18
|
+
export const TIER_1_MODULES = [
|
|
19
|
+
// fs - Filesystem operations
|
|
20
|
+
{
|
|
21
|
+
name: 'fs',
|
|
22
|
+
functions: [
|
|
23
|
+
{ name: 'readFile', module: 'fs', security: 'file-io', pure: false },
|
|
24
|
+
{ name: 'readFileSync', module: 'fs', security: 'file-io', pure: false },
|
|
25
|
+
{ name: 'writeFile', module: 'fs', security: 'file-io', pure: false },
|
|
26
|
+
{ name: 'writeFileSync', module: 'fs', security: 'file-io', pure: false },
|
|
27
|
+
{ name: 'appendFile', module: 'fs', security: 'file-io', pure: false },
|
|
28
|
+
{ name: 'appendFileSync', module: 'fs', security: 'file-io', pure: false },
|
|
29
|
+
{ name: 'readdir', module: 'fs', security: 'file-io', pure: false },
|
|
30
|
+
{ name: 'readdirSync', module: 'fs', security: 'file-io', pure: false },
|
|
31
|
+
{ name: 'mkdir', module: 'fs', security: 'file-io', pure: false },
|
|
32
|
+
{ name: 'mkdirSync', module: 'fs', security: 'file-io', pure: false },
|
|
33
|
+
{ name: 'rmdir', module: 'fs', security: 'file-io', pure: false },
|
|
34
|
+
{ name: 'rmdirSync', module: 'fs', security: 'file-io', pure: false },
|
|
35
|
+
{ name: 'rm', module: 'fs', security: 'file-io', pure: false },
|
|
36
|
+
{ name: 'rmSync', module: 'fs', security: 'file-io', pure: false },
|
|
37
|
+
{ name: 'unlink', module: 'fs', security: 'file-io', pure: false },
|
|
38
|
+
{ name: 'unlinkSync', module: 'fs', security: 'file-io', pure: false },
|
|
39
|
+
{ name: 'stat', module: 'fs', security: 'file-io', pure: false },
|
|
40
|
+
{ name: 'statSync', module: 'fs', security: 'file-io', pure: false },
|
|
41
|
+
{ name: 'lstat', module: 'fs', security: 'file-io', pure: false },
|
|
42
|
+
{ name: 'lstatSync', module: 'fs', security: 'file-io', pure: false },
|
|
43
|
+
{ name: 'access', module: 'fs', security: 'file-io', pure: false },
|
|
44
|
+
{ name: 'accessSync', module: 'fs', security: 'file-io', pure: false },
|
|
45
|
+
{ name: 'chmod', module: 'fs', security: 'file-io', pure: false },
|
|
46
|
+
{ name: 'chmodSync', module: 'fs', security: 'file-io', pure: false },
|
|
47
|
+
{ name: 'chown', module: 'fs', security: 'file-io', pure: false },
|
|
48
|
+
{ name: 'chownSync', module: 'fs', security: 'file-io', pure: false },
|
|
49
|
+
{ name: 'rename', module: 'fs', security: 'file-io', pure: false },
|
|
50
|
+
{ name: 'renameSync', module: 'fs', security: 'file-io', pure: false },
|
|
51
|
+
{ name: 'copyFile', module: 'fs', security: 'file-io', pure: false },
|
|
52
|
+
{ name: 'copyFileSync', module: 'fs', security: 'file-io', pure: false },
|
|
53
|
+
{ name: 'createReadStream', module: 'fs', security: 'file-io', pure: false },
|
|
54
|
+
{ name: 'createWriteStream', module: 'fs', security: 'file-io', pure: false },
|
|
55
|
+
{ name: 'watch', module: 'fs', security: 'file-io', pure: false },
|
|
56
|
+
{ name: 'watchFile', module: 'fs', security: 'file-io', pure: false },
|
|
57
|
+
{ name: 'existsSync', module: 'fs', security: 'file-io', pure: false },
|
|
58
|
+
{ name: 'truncate', module: 'fs', security: 'file-io', pure: false },
|
|
59
|
+
{ name: 'truncateSync', module: 'fs', security: 'file-io', pure: false },
|
|
60
|
+
]
|
|
61
|
+
},
|
|
62
|
+
// fs/promises - Async filesystem operations
|
|
63
|
+
{
|
|
64
|
+
name: 'fs/promises',
|
|
65
|
+
functions: [
|
|
66
|
+
{ name: 'readFile', module: 'fs/promises', security: 'file-io', pure: false },
|
|
67
|
+
{ name: 'writeFile', module: 'fs/promises', security: 'file-io', pure: false },
|
|
68
|
+
{ name: 'appendFile', module: 'fs/promises', security: 'file-io', pure: false },
|
|
69
|
+
{ name: 'readdir', module: 'fs/promises', security: 'file-io', pure: false },
|
|
70
|
+
{ name: 'mkdir', module: 'fs/promises', security: 'file-io', pure: false },
|
|
71
|
+
{ name: 'rmdir', module: 'fs/promises', security: 'file-io', pure: false },
|
|
72
|
+
{ name: 'rm', module: 'fs/promises', security: 'file-io', pure: false },
|
|
73
|
+
{ name: 'unlink', module: 'fs/promises', security: 'file-io', pure: false },
|
|
74
|
+
{ name: 'stat', module: 'fs/promises', security: 'file-io', pure: false },
|
|
75
|
+
{ name: 'lstat', module: 'fs/promises', security: 'file-io', pure: false },
|
|
76
|
+
{ name: 'access', module: 'fs/promises', security: 'file-io', pure: false },
|
|
77
|
+
{ name: 'chmod', module: 'fs/promises', security: 'file-io', pure: false },
|
|
78
|
+
{ name: 'chown', module: 'fs/promises', security: 'file-io', pure: false },
|
|
79
|
+
{ name: 'rename', module: 'fs/promises', security: 'file-io', pure: false },
|
|
80
|
+
{ name: 'copyFile', module: 'fs/promises', security: 'file-io', pure: false },
|
|
81
|
+
{ name: 'truncate', module: 'fs/promises', security: 'file-io', pure: false },
|
|
82
|
+
]
|
|
83
|
+
},
|
|
84
|
+
// path - Path manipulation (pure functions)
|
|
85
|
+
{
|
|
86
|
+
name: 'path',
|
|
87
|
+
functions: [
|
|
88
|
+
{ name: 'join', module: 'path', pure: true },
|
|
89
|
+
{ name: 'resolve', module: 'path', pure: true },
|
|
90
|
+
{ name: 'normalize', module: 'path', pure: true },
|
|
91
|
+
{ name: 'basename', module: 'path', pure: true },
|
|
92
|
+
{ name: 'dirname', module: 'path', pure: true },
|
|
93
|
+
{ name: 'extname', module: 'path', pure: true },
|
|
94
|
+
{ name: 'parse', module: 'path', pure: true },
|
|
95
|
+
{ name: 'format', module: 'path', pure: true },
|
|
96
|
+
{ name: 'relative', module: 'path', pure: true },
|
|
97
|
+
{ name: 'isAbsolute', module: 'path', pure: true },
|
|
98
|
+
{ name: 'sep', module: 'path', pure: true },
|
|
99
|
+
{ name: 'delimiter', module: 'path', pure: true },
|
|
100
|
+
]
|
|
101
|
+
},
|
|
102
|
+
// http - HTTP server/client
|
|
103
|
+
{
|
|
104
|
+
name: 'http',
|
|
105
|
+
functions: [
|
|
106
|
+
{ name: 'createServer', module: 'http', security: 'net', pure: false },
|
|
107
|
+
{ name: 'request', module: 'http', security: 'net', pure: false },
|
|
108
|
+
{ name: 'get', module: 'http', security: 'net', pure: false },
|
|
109
|
+
]
|
|
110
|
+
},
|
|
111
|
+
// https - HTTPS server/client
|
|
112
|
+
{
|
|
113
|
+
name: 'https',
|
|
114
|
+
functions: [
|
|
115
|
+
{ name: 'createServer', module: 'https', security: 'net', pure: false },
|
|
116
|
+
{ name: 'request', module: 'https', security: 'net', pure: false },
|
|
117
|
+
{ name: 'get', module: 'https', security: 'net', pure: false },
|
|
118
|
+
]
|
|
119
|
+
},
|
|
120
|
+
// crypto - Cryptographic operations
|
|
121
|
+
{
|
|
122
|
+
name: 'crypto',
|
|
123
|
+
functions: [
|
|
124
|
+
{ name: 'createHash', module: 'crypto', security: 'crypto', pure: false },
|
|
125
|
+
{ name: 'createHmac', module: 'crypto', security: 'crypto', pure: false },
|
|
126
|
+
{ name: 'createCipher', module: 'crypto', security: 'crypto', pure: false },
|
|
127
|
+
{ name: 'createDecipher', module: 'crypto', security: 'crypto', pure: false },
|
|
128
|
+
{ name: 'createCipheriv', module: 'crypto', security: 'crypto', pure: false },
|
|
129
|
+
{ name: 'createDecipheriv', module: 'crypto', security: 'crypto', pure: false },
|
|
130
|
+
{ name: 'randomBytes', module: 'crypto', security: 'crypto', pure: false },
|
|
131
|
+
{ name: 'randomFill', module: 'crypto', security: 'crypto', pure: false },
|
|
132
|
+
{ name: 'randomFillSync', module: 'crypto', security: 'crypto', pure: false },
|
|
133
|
+
{ name: 'randomUUID', module: 'crypto', security: 'crypto', pure: false },
|
|
134
|
+
{ name: 'pbkdf2', module: 'crypto', security: 'crypto', pure: false },
|
|
135
|
+
{ name: 'pbkdf2Sync', module: 'crypto', security: 'crypto', pure: false },
|
|
136
|
+
{ name: 'scrypt', module: 'crypto', security: 'crypto', pure: false },
|
|
137
|
+
{ name: 'scryptSync', module: 'crypto', security: 'crypto', pure: false },
|
|
138
|
+
{ name: 'generateKey', module: 'crypto', security: 'crypto', pure: false },
|
|
139
|
+
{ name: 'generateKeyPair', module: 'crypto', security: 'crypto', pure: false },
|
|
140
|
+
{ name: 'generateKeyPairSync', module: 'crypto', security: 'crypto', pure: false },
|
|
141
|
+
]
|
|
142
|
+
},
|
|
143
|
+
// child_process - Process execution (SECURITY SENSITIVE)
|
|
144
|
+
{
|
|
145
|
+
name: 'child_process',
|
|
146
|
+
functions: [
|
|
147
|
+
{ name: 'exec', module: 'child_process', security: 'exec', pure: false },
|
|
148
|
+
{ name: 'execSync', module: 'child_process', security: 'exec', pure: false },
|
|
149
|
+
{ name: 'execFile', module: 'child_process', security: 'exec', pure: false },
|
|
150
|
+
{ name: 'execFileSync', module: 'child_process', security: 'exec', pure: false },
|
|
151
|
+
{ name: 'spawn', module: 'child_process', security: 'exec', pure: false },
|
|
152
|
+
{ name: 'spawnSync', module: 'child_process', security: 'exec', pure: false },
|
|
153
|
+
{ name: 'fork', module: 'child_process', security: 'exec', pure: false },
|
|
154
|
+
]
|
|
155
|
+
},
|
|
156
|
+
];
|
|
157
|
+
/**
|
|
158
|
+
* Tier 2: Additional commonly used modules
|
|
159
|
+
*/
|
|
160
|
+
export const TIER_2_MODULES = [
|
|
161
|
+
// url - URL parsing
|
|
162
|
+
{
|
|
163
|
+
name: 'url',
|
|
164
|
+
functions: [
|
|
165
|
+
{ name: 'parse', module: 'url', pure: true },
|
|
166
|
+
{ name: 'format', module: 'url', pure: true },
|
|
167
|
+
{ name: 'resolve', module: 'url', pure: true },
|
|
168
|
+
{ name: 'fileURLToPath', module: 'url', pure: true },
|
|
169
|
+
{ name: 'pathToFileURL', module: 'url', pure: true },
|
|
170
|
+
]
|
|
171
|
+
},
|
|
172
|
+
// util - Utilities
|
|
173
|
+
{
|
|
174
|
+
name: 'util',
|
|
175
|
+
functions: [
|
|
176
|
+
{ name: 'promisify', module: 'util', pure: true },
|
|
177
|
+
{ name: 'callbackify', module: 'util', pure: true },
|
|
178
|
+
{ name: 'inspect', module: 'util', pure: true },
|
|
179
|
+
{ name: 'format', module: 'util', pure: true },
|
|
180
|
+
{ name: 'deprecate', module: 'util', pure: false },
|
|
181
|
+
{ name: 'inherits', module: 'util', pure: false },
|
|
182
|
+
]
|
|
183
|
+
},
|
|
184
|
+
// os - Operating system info
|
|
185
|
+
{
|
|
186
|
+
name: 'os',
|
|
187
|
+
functions: [
|
|
188
|
+
{ name: 'platform', module: 'os', pure: true },
|
|
189
|
+
{ name: 'arch', module: 'os', pure: true },
|
|
190
|
+
{ name: 'cpus', module: 'os', pure: false },
|
|
191
|
+
{ name: 'hostname', module: 'os', pure: false },
|
|
192
|
+
{ name: 'homedir', module: 'os', pure: false },
|
|
193
|
+
{ name: 'tmpdir', module: 'os', pure: false },
|
|
194
|
+
{ name: 'type', module: 'os', pure: true },
|
|
195
|
+
{ name: 'release', module: 'os', pure: true },
|
|
196
|
+
{ name: 'totalmem', module: 'os', pure: false },
|
|
197
|
+
{ name: 'freemem', module: 'os', pure: false },
|
|
198
|
+
]
|
|
199
|
+
},
|
|
200
|
+
// events - Event emitter
|
|
201
|
+
{
|
|
202
|
+
name: 'events',
|
|
203
|
+
functions: [
|
|
204
|
+
{ name: 'EventEmitter', module: 'events', pure: false },
|
|
205
|
+
{ name: 'once', module: 'events', pure: false },
|
|
206
|
+
{ name: 'on', module: 'events', pure: false },
|
|
207
|
+
]
|
|
208
|
+
},
|
|
209
|
+
// stream - Streams
|
|
210
|
+
{
|
|
211
|
+
name: 'stream',
|
|
212
|
+
functions: [
|
|
213
|
+
{ name: 'Readable', module: 'stream', pure: false },
|
|
214
|
+
{ name: 'Writable', module: 'stream', pure: false },
|
|
215
|
+
{ name: 'Duplex', module: 'stream', pure: false },
|
|
216
|
+
{ name: 'Transform', module: 'stream', pure: false },
|
|
217
|
+
{ name: 'pipeline', module: 'stream', pure: false },
|
|
218
|
+
{ name: 'finished', module: 'stream', pure: false },
|
|
219
|
+
]
|
|
220
|
+
},
|
|
221
|
+
// buffer - Buffer operations
|
|
222
|
+
{
|
|
223
|
+
name: 'buffer',
|
|
224
|
+
functions: [
|
|
225
|
+
{ name: 'Buffer', module: 'buffer', pure: false },
|
|
226
|
+
{ name: 'alloc', module: 'buffer', pure: true },
|
|
227
|
+
{ name: 'allocUnsafe', module: 'buffer', pure: true },
|
|
228
|
+
{ name: 'from', module: 'buffer', pure: true },
|
|
229
|
+
{ name: 'concat', module: 'buffer', pure: true },
|
|
230
|
+
{ name: 'isBuffer', module: 'buffer', pure: true },
|
|
231
|
+
]
|
|
232
|
+
},
|
|
233
|
+
// worker_threads - Worker threads
|
|
234
|
+
{
|
|
235
|
+
name: 'worker_threads',
|
|
236
|
+
functions: [
|
|
237
|
+
{ name: 'Worker', module: 'worker_threads', pure: false },
|
|
238
|
+
{ name: 'isMainThread', module: 'worker_threads', pure: true },
|
|
239
|
+
{ name: 'parentPort', module: 'worker_threads', pure: false },
|
|
240
|
+
{ name: 'workerData', module: 'worker_threads', pure: false },
|
|
241
|
+
]
|
|
242
|
+
},
|
|
243
|
+
];
|
|
244
|
+
/**
|
|
245
|
+
* All builtin modules combined
|
|
246
|
+
*/
|
|
247
|
+
export const ALL_BUILTIN_MODULES = [
|
|
248
|
+
...TIER_1_MODULES,
|
|
249
|
+
...TIER_2_MODULES,
|
|
250
|
+
];
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Node.js Builtins Registry (REG-218)
|
|
3
|
+
*
|
|
4
|
+
* Exports for builtin function registry.
|
|
5
|
+
*/
|
|
6
|
+
export { BuiltinRegistry } from './BuiltinRegistry.js';
|
|
7
|
+
export type { BuiltinFunctionDef, BuiltinModuleDef, SecurityCategory } from './types.js';
|
|
8
|
+
export { ALL_BUILTIN_MODULES, TIER_1_MODULES, TIER_2_MODULES } from './definitions.js';
|
|
9
|
+
export { JS_GLOBAL_FUNCTIONS } from './jsGlobals.js';
|
|
10
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/data/builtins/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,YAAY,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACzF,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvF,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Node.js Builtins Registry (REG-218)
|
|
3
|
+
*
|
|
4
|
+
* Exports for builtin function registry.
|
|
5
|
+
*/
|
|
6
|
+
export { BuiltinRegistry } from './BuiltinRegistry.js';
|
|
7
|
+
export { ALL_BUILTIN_MODULES, TIER_1_MODULES, TIER_2_MODULES } from './definitions.js';
|
|
8
|
+
export { JS_GLOBAL_FUNCTIONS } from './jsGlobals.js';
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* JavaScript Global Functions (REG-227)
|
|
3
|
+
*
|
|
4
|
+
* These are functions intrinsic to the JS runtime that don't need CALLS edges.
|
|
5
|
+
* They're available in all JS environments (browser, Node.js, etc.) and aren't
|
|
6
|
+
* "callable definitions" in the code sense.
|
|
7
|
+
*
|
|
8
|
+
* What is NOT included:
|
|
9
|
+
* - Constructors (Array, Object, Error) - handled as constructor calls
|
|
10
|
+
* - Objects with methods (Math, JSON) - method calls go through MethodCallResolver
|
|
11
|
+
* - Environment globals (window, document) - not functions, they're objects
|
|
12
|
+
*
|
|
13
|
+
* Used by:
|
|
14
|
+
* - ExternalCallResolver: skips these when resolving external calls
|
|
15
|
+
* - CallResolverValidator: recognizes these as resolved (no violation)
|
|
16
|
+
*/
|
|
17
|
+
export declare const JS_GLOBAL_FUNCTIONS: Set<string>;
|
|
18
|
+
//# sourceMappingURL=jsGlobals.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jsGlobals.d.ts","sourceRoot":"","sources":["../../../src/data/builtins/jsGlobals.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,mBAAmB,aAW9B,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* JavaScript Global Functions (REG-227)
|
|
3
|
+
*
|
|
4
|
+
* These are functions intrinsic to the JS runtime that don't need CALLS edges.
|
|
5
|
+
* They're available in all JS environments (browser, Node.js, etc.) and aren't
|
|
6
|
+
* "callable definitions" in the code sense.
|
|
7
|
+
*
|
|
8
|
+
* What is NOT included:
|
|
9
|
+
* - Constructors (Array, Object, Error) - handled as constructor calls
|
|
10
|
+
* - Objects with methods (Math, JSON) - method calls go through MethodCallResolver
|
|
11
|
+
* - Environment globals (window, document) - not functions, they're objects
|
|
12
|
+
*
|
|
13
|
+
* Used by:
|
|
14
|
+
* - ExternalCallResolver: skips these when resolving external calls
|
|
15
|
+
* - CallResolverValidator: recognizes these as resolved (no violation)
|
|
16
|
+
*/
|
|
17
|
+
export const JS_GLOBAL_FUNCTIONS = new Set([
|
|
18
|
+
// Global functions (truly called as standalone functions)
|
|
19
|
+
'parseInt', 'parseFloat', 'isNaN', 'isFinite', 'eval',
|
|
20
|
+
'encodeURI', 'decodeURI', 'encodeURIComponent', 'decodeURIComponent',
|
|
21
|
+
// Timers (global functions in browser & Node.js)
|
|
22
|
+
'setTimeout', 'setInterval', 'setImmediate',
|
|
23
|
+
'clearTimeout', 'clearInterval', 'clearImmediate',
|
|
24
|
+
// CommonJS (special case - global in CJS environments)
|
|
25
|
+
'require'
|
|
26
|
+
]);
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* BuiltinRegistry Types (REG-218)
|
|
3
|
+
*
|
|
4
|
+
* Type definitions for Node.js builtin function registry.
|
|
5
|
+
* Used for lazy EXTERNAL_FUNCTION node creation.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Security category for builtin functions.
|
|
9
|
+
* Used for security analysis and auditing.
|
|
10
|
+
*/
|
|
11
|
+
export type SecurityCategory = 'file-io' | 'exec' | 'net' | 'crypto';
|
|
12
|
+
/**
|
|
13
|
+
* Definition of a single builtin function.
|
|
14
|
+
*/
|
|
15
|
+
export interface BuiltinFunctionDef {
|
|
16
|
+
/** Function name (e.g., 'readFile') */
|
|
17
|
+
name: string;
|
|
18
|
+
/** Module name (e.g., 'fs', 'path', 'fs/promises') */
|
|
19
|
+
module: string;
|
|
20
|
+
/** Security category (for dangerous functions) */
|
|
21
|
+
security?: SecurityCategory;
|
|
22
|
+
/** Whether function is pure (no side effects) */
|
|
23
|
+
pure?: boolean;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Definition of a builtin module with its functions.
|
|
27
|
+
*/
|
|
28
|
+
export interface BuiltinModuleDef {
|
|
29
|
+
/** Module name (e.g., 'fs', 'path') */
|
|
30
|
+
name: string;
|
|
31
|
+
/** List of functions in this module */
|
|
32
|
+
functions: BuiltinFunctionDef[];
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/data/builtins/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;GAGG;AACH,MAAM,MAAM,gBAAgB,GAAG,SAAS,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,CAAC;AAErE;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,uCAAuC;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,sDAAsD;IACtD,MAAM,EAAE,MAAM,CAAC;IACf,kDAAkD;IAClD,QAAQ,CAAC,EAAE,gBAAgB,CAAC;IAC5B,iDAAiD;IACjD,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,uCAAuC;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,uCAAuC;IACvC,SAAS,EAAE,kBAAkB,EAAE,CAAC;CACjC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Global Symbol Definitions
|
|
3
|
+
*
|
|
4
|
+
* JavaScript/TypeScript globals that should not be reported as undefined.
|
|
5
|
+
* Organized by environment and category.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* ECMAScript standard globals (available in all JS environments)
|
|
9
|
+
*/
|
|
10
|
+
export declare const ECMASCRIPT_GLOBALS: string[];
|
|
11
|
+
/**
|
|
12
|
+
* Node.js-specific globals
|
|
13
|
+
*/
|
|
14
|
+
export declare const NODEJS_GLOBALS: string[];
|
|
15
|
+
/**
|
|
16
|
+
* Browser-specific globals (commonly used, may appear in isomorphic code)
|
|
17
|
+
*/
|
|
18
|
+
export declare const BROWSER_GLOBALS: string[];
|
|
19
|
+
/**
|
|
20
|
+
* Test framework globals (common testing environments)
|
|
21
|
+
*/
|
|
22
|
+
export declare const TEST_GLOBALS: string[];
|
|
23
|
+
/**
|
|
24
|
+
* All default globals combined
|
|
25
|
+
*/
|
|
26
|
+
export declare const ALL_GLOBALS: Set<string>;
|
|
27
|
+
//# sourceMappingURL=definitions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"definitions.d.ts","sourceRoot":"","sources":["../../../src/data/globals/definitions.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;GAEG;AACH,eAAO,MAAM,kBAAkB,EAAE,MAAM,EAsCtC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,MAAM,EAwClC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,MAAM,EA8BnC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,YAAY,EAAE,MAAM,EAYhC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,WAAW,EAAE,GAAG,CAAC,MAAM,CAKlC,CAAC"}
|