@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.
Files changed (319) hide show
  1. package/dist/Orchestrator.d.ts +7 -0
  2. package/dist/Orchestrator.d.ts.map +1 -1
  3. package/dist/Orchestrator.js +25 -3
  4. package/dist/config/ConfigLoader.d.ts +18 -0
  5. package/dist/config/ConfigLoader.d.ts.map +1 -1
  6. package/dist/config/ConfigLoader.js +65 -3
  7. package/dist/core/FileExplainer.d.ts +101 -0
  8. package/dist/core/FileExplainer.d.ts.map +1 -0
  9. package/dist/core/FileExplainer.js +139 -0
  10. package/dist/core/NodeFactory.d.ts +44 -5
  11. package/dist/core/NodeFactory.d.ts.map +1 -1
  12. package/dist/core/NodeFactory.js +52 -7
  13. package/dist/core/nodes/ArrayLiteralNode.d.ts.map +1 -1
  14. package/dist/core/nodes/ArrayLiteralNode.js +4 -2
  15. package/dist/core/nodes/BranchNode.d.ts +41 -0
  16. package/dist/core/nodes/BranchNode.d.ts.map +1 -0
  17. package/dist/core/nodes/BranchNode.js +82 -0
  18. package/dist/core/nodes/CallSiteNode.d.ts +2 -2
  19. package/dist/core/nodes/CallSiteNode.d.ts.map +1 -1
  20. package/dist/core/nodes/CallSiteNode.js +9 -5
  21. package/dist/core/nodes/CaseNode.d.ts +43 -0
  22. package/dist/core/nodes/CaseNode.d.ts.map +1 -0
  23. package/dist/core/nodes/CaseNode.js +81 -0
  24. package/dist/core/nodes/ClassNode.d.ts +2 -2
  25. package/dist/core/nodes/ClassNode.d.ts.map +1 -1
  26. package/dist/core/nodes/ClassNode.js +8 -4
  27. package/dist/core/nodes/ConstantNode.d.ts +2 -2
  28. package/dist/core/nodes/ConstantNode.d.ts.map +1 -1
  29. package/dist/core/nodes/ConstantNode.js +6 -4
  30. package/dist/core/nodes/ConstructorCallNode.d.ts +51 -0
  31. package/dist/core/nodes/ConstructorCallNode.d.ts.map +1 -0
  32. package/dist/core/nodes/ConstructorCallNode.js +171 -0
  33. package/dist/core/nodes/DatabaseQueryNode.d.ts +3 -2
  34. package/dist/core/nodes/DatabaseQueryNode.d.ts.map +1 -1
  35. package/dist/core/nodes/DatabaseQueryNode.js +5 -2
  36. package/dist/core/nodes/DecoratorNode.d.ts +2 -2
  37. package/dist/core/nodes/DecoratorNode.d.ts.map +1 -1
  38. package/dist/core/nodes/DecoratorNode.js +5 -3
  39. package/dist/core/nodes/EnumNode.d.ts +2 -2
  40. package/dist/core/nodes/EnumNode.d.ts.map +1 -1
  41. package/dist/core/nodes/EnumNode.js +5 -3
  42. package/dist/core/nodes/EventListenerNode.d.ts +4 -4
  43. package/dist/core/nodes/EventListenerNode.d.ts.map +1 -1
  44. package/dist/core/nodes/EventListenerNode.js +7 -4
  45. package/dist/core/nodes/ExportNode.d.ts +2 -2
  46. package/dist/core/nodes/ExportNode.d.ts.map +1 -1
  47. package/dist/core/nodes/ExportNode.js +8 -4
  48. package/dist/core/nodes/ExpressionNode.d.ts +2 -2
  49. package/dist/core/nodes/ExpressionNode.d.ts.map +1 -1
  50. package/dist/core/nodes/ExpressionNode.js +6 -4
  51. package/dist/core/nodes/ExternalModuleNode.d.ts +4 -0
  52. package/dist/core/nodes/ExternalModuleNode.d.ts.map +1 -1
  53. package/dist/core/nodes/ExternalModuleNode.js +10 -2
  54. package/dist/core/nodes/HttpRequestNode.d.ts +4 -4
  55. package/dist/core/nodes/HttpRequestNode.d.ts.map +1 -1
  56. package/dist/core/nodes/HttpRequestNode.js +7 -4
  57. package/dist/core/nodes/ImportNode.d.ts +10 -2
  58. package/dist/core/nodes/ImportNode.d.ts.map +1 -1
  59. package/dist/core/nodes/ImportNode.js +21 -4
  60. package/dist/core/nodes/InterfaceNode.d.ts +2 -2
  61. package/dist/core/nodes/InterfaceNode.d.ts.map +1 -1
  62. package/dist/core/nodes/InterfaceNode.js +5 -3
  63. package/dist/core/nodes/LiteralNode.d.ts +2 -2
  64. package/dist/core/nodes/LiteralNode.d.ts.map +1 -1
  65. package/dist/core/nodes/LiteralNode.js +6 -4
  66. package/dist/core/nodes/MethodCallNode.d.ts +2 -2
  67. package/dist/core/nodes/MethodCallNode.d.ts.map +1 -1
  68. package/dist/core/nodes/MethodCallNode.js +9 -5
  69. package/dist/core/nodes/MethodNode.d.ts +2 -2
  70. package/dist/core/nodes/MethodNode.d.ts.map +1 -1
  71. package/dist/core/nodes/MethodNode.js +8 -4
  72. package/dist/core/nodes/ObjectLiteralNode.d.ts.map +1 -1
  73. package/dist/core/nodes/ObjectLiteralNode.js +4 -2
  74. package/dist/core/nodes/ParameterNode.d.ts +2 -2
  75. package/dist/core/nodes/ParameterNode.d.ts.map +1 -1
  76. package/dist/core/nodes/ParameterNode.js +5 -3
  77. package/dist/core/nodes/TypeNode.d.ts +2 -2
  78. package/dist/core/nodes/TypeNode.d.ts.map +1 -1
  79. package/dist/core/nodes/TypeNode.js +5 -3
  80. package/dist/core/nodes/VariableDeclarationNode.d.ts +2 -2
  81. package/dist/core/nodes/VariableDeclarationNode.d.ts.map +1 -1
  82. package/dist/core/nodes/VariableDeclarationNode.js +9 -5
  83. package/dist/core/nodes/index.d.ts +3 -0
  84. package/dist/core/nodes/index.d.ts.map +1 -1
  85. package/dist/core/nodes/index.js +3 -0
  86. package/dist/data/builtins/BuiltinRegistry.d.ts +78 -0
  87. package/dist/data/builtins/BuiltinRegistry.d.ts.map +1 -0
  88. package/dist/data/builtins/BuiltinRegistry.js +110 -0
  89. package/dist/data/builtins/definitions.d.ts +28 -0
  90. package/dist/data/builtins/definitions.d.ts.map +1 -0
  91. package/dist/data/builtins/definitions.js +250 -0
  92. package/dist/data/builtins/index.d.ts +10 -0
  93. package/dist/data/builtins/index.d.ts.map +1 -0
  94. package/dist/data/builtins/index.js +8 -0
  95. package/dist/data/builtins/jsGlobals.d.ts +18 -0
  96. package/dist/data/builtins/jsGlobals.d.ts.map +1 -0
  97. package/dist/data/builtins/jsGlobals.js +26 -0
  98. package/dist/data/builtins/types.d.ts +34 -0
  99. package/dist/data/builtins/types.d.ts.map +1 -0
  100. package/dist/data/builtins/types.js +7 -0
  101. package/dist/data/globals/definitions.d.ts +27 -0
  102. package/dist/data/globals/definitions.d.ts.map +1 -0
  103. package/dist/data/globals/definitions.js +117 -0
  104. package/dist/data/globals/index.d.ts +36 -0
  105. package/dist/data/globals/index.d.ts.map +1 -0
  106. package/dist/data/globals/index.js +52 -0
  107. package/dist/diagnostics/DiagnosticReporter.d.ts +23 -0
  108. package/dist/diagnostics/DiagnosticReporter.d.ts.map +1 -1
  109. package/dist/diagnostics/DiagnosticReporter.js +88 -0
  110. package/dist/diagnostics/index.d.ts +1 -1
  111. package/dist/diagnostics/index.d.ts.map +1 -1
  112. package/dist/errors/GrafemaError.d.ts +43 -0
  113. package/dist/errors/GrafemaError.d.ts.map +1 -1
  114. package/dist/errors/GrafemaError.js +50 -0
  115. package/dist/index.d.ts +17 -1
  116. package/dist/index.d.ts.map +1 -1
  117. package/dist/index.js +17 -1
  118. package/dist/plugins/analysis/DatabaseAnalyzer.d.ts.map +1 -1
  119. package/dist/plugins/analysis/DatabaseAnalyzer.js +3 -2
  120. package/dist/plugins/analysis/ExpressAnalyzer.d.ts.map +1 -1
  121. package/dist/plugins/analysis/ExpressAnalyzer.js +3 -1
  122. package/dist/plugins/analysis/ExpressResponseAnalyzer.d.ts +148 -0
  123. package/dist/plugins/analysis/ExpressResponseAnalyzer.d.ts.map +1 -0
  124. package/dist/plugins/analysis/ExpressResponseAnalyzer.js +495 -0
  125. package/dist/plugins/analysis/ExpressRouteAnalyzer.d.ts.map +1 -1
  126. package/dist/plugins/analysis/ExpressRouteAnalyzer.js +53 -18
  127. package/dist/plugins/analysis/FetchAnalyzer.d.ts +40 -0
  128. package/dist/plugins/analysis/FetchAnalyzer.d.ts.map +1 -1
  129. package/dist/plugins/analysis/FetchAnalyzer.js +163 -15
  130. package/dist/plugins/analysis/JSASTAnalyzer.d.ts +157 -26
  131. package/dist/plugins/analysis/JSASTAnalyzer.d.ts.map +1 -1
  132. package/dist/plugins/analysis/JSASTAnalyzer.js +2418 -191
  133. package/dist/plugins/analysis/RustAnalyzer.js +4 -4
  134. package/dist/plugins/analysis/SQLiteAnalyzer.d.ts.map +1 -1
  135. package/dist/plugins/analysis/SQLiteAnalyzer.js +4 -2
  136. package/dist/plugins/analysis/SocketIOAnalyzer.d.ts +9 -0
  137. package/dist/plugins/analysis/SocketIOAnalyzer.d.ts.map +1 -1
  138. package/dist/plugins/analysis/SocketIOAnalyzer.js +91 -7
  139. package/dist/plugins/analysis/ast/GraphBuilder.d.ts +173 -0
  140. package/dist/plugins/analysis/ast/GraphBuilder.d.ts.map +1 -1
  141. package/dist/plugins/analysis/ast/GraphBuilder.js +1256 -65
  142. package/dist/plugins/analysis/ast/types.d.ts +294 -0
  143. package/dist/plugins/analysis/ast/types.d.ts.map +1 -1
  144. package/dist/plugins/analysis/ast/visitors/ASTVisitor.d.ts +5 -1
  145. package/dist/plugins/analysis/ast/visitors/ASTVisitor.d.ts.map +1 -1
  146. package/dist/plugins/analysis/ast/visitors/CallExpressionVisitor.d.ts +1 -0
  147. package/dist/plugins/analysis/ast/visitors/CallExpressionVisitor.d.ts.map +1 -1
  148. package/dist/plugins/analysis/ast/visitors/CallExpressionVisitor.js +12 -1
  149. package/dist/plugins/analysis/ast/visitors/FunctionVisitor.d.ts +10 -0
  150. package/dist/plugins/analysis/ast/visitors/FunctionVisitor.d.ts.map +1 -1
  151. package/dist/plugins/analysis/ast/visitors/FunctionVisitor.js +62 -0
  152. package/dist/plugins/analysis/ast/visitors/ImportExportVisitor.d.ts +4 -0
  153. package/dist/plugins/analysis/ast/visitors/ImportExportVisitor.d.ts.map +1 -1
  154. package/dist/plugins/analysis/ast/visitors/ImportExportVisitor.js +101 -0
  155. package/dist/plugins/analysis/ast/visitors/VariableVisitor.d.ts +16 -1
  156. package/dist/plugins/analysis/ast/visitors/VariableVisitor.d.ts.map +1 -1
  157. package/dist/plugins/analysis/ast/visitors/VariableVisitor.js +233 -39
  158. package/dist/plugins/discovery/WorkspaceDiscovery.d.ts.map +1 -1
  159. package/dist/plugins/discovery/WorkspaceDiscovery.js +9 -4
  160. package/dist/plugins/enrichment/AliasTracker.d.ts.map +1 -1
  161. package/dist/plugins/enrichment/AliasTracker.js +16 -1
  162. package/dist/plugins/enrichment/ArgumentParameterLinker.d.ts +32 -0
  163. package/dist/plugins/enrichment/ArgumentParameterLinker.d.ts.map +1 -0
  164. package/dist/plugins/enrichment/ArgumentParameterLinker.js +175 -0
  165. package/dist/plugins/enrichment/ClosureCaptureEnricher.d.ts +51 -0
  166. package/dist/plugins/enrichment/ClosureCaptureEnricher.d.ts.map +1 -0
  167. package/dist/plugins/enrichment/ClosureCaptureEnricher.js +205 -0
  168. package/dist/plugins/enrichment/ExternalCallResolver.d.ts +42 -0
  169. package/dist/plugins/enrichment/ExternalCallResolver.d.ts.map +1 -0
  170. package/dist/plugins/enrichment/ExternalCallResolver.js +213 -0
  171. package/dist/plugins/enrichment/FunctionCallResolver.d.ts +58 -0
  172. package/dist/plugins/enrichment/FunctionCallResolver.d.ts.map +1 -0
  173. package/dist/plugins/enrichment/FunctionCallResolver.js +340 -0
  174. package/dist/plugins/enrichment/HTTPConnectionEnricher.d.ts +16 -3
  175. package/dist/plugins/enrichment/HTTPConnectionEnricher.d.ts.map +1 -1
  176. package/dist/plugins/enrichment/HTTPConnectionEnricher.js +64 -20
  177. package/dist/plugins/enrichment/MethodCallResolver.d.ts.map +1 -1
  178. package/dist/plugins/enrichment/MethodCallResolver.js +15 -1
  179. package/dist/plugins/enrichment/MountPointResolver.d.ts +14 -12
  180. package/dist/plugins/enrichment/MountPointResolver.d.ts.map +1 -1
  181. package/dist/plugins/enrichment/MountPointResolver.js +172 -151
  182. package/dist/plugins/enrichment/NodejsBuiltinsResolver.d.ts +44 -0
  183. package/dist/plugins/enrichment/NodejsBuiltinsResolver.d.ts.map +1 -0
  184. package/dist/plugins/enrichment/NodejsBuiltinsResolver.js +271 -0
  185. package/dist/plugins/enrichment/ValueDomainAnalyzer.d.ts +5 -27
  186. package/dist/plugins/enrichment/ValueDomainAnalyzer.d.ts.map +1 -1
  187. package/dist/plugins/enrichment/ValueDomainAnalyzer.js +62 -139
  188. package/dist/plugins/indexing/JSModuleIndexer.d.ts +15 -0
  189. package/dist/plugins/indexing/JSModuleIndexer.d.ts.map +1 -1
  190. package/dist/plugins/indexing/JSModuleIndexer.js +58 -0
  191. package/dist/plugins/indexing/RustModuleIndexer.d.ts +1 -1
  192. package/dist/plugins/indexing/RustModuleIndexer.js +4 -4
  193. package/dist/plugins/validation/BrokenImportValidator.d.ts +31 -0
  194. package/dist/plugins/validation/BrokenImportValidator.d.ts.map +1 -0
  195. package/dist/plugins/validation/BrokenImportValidator.js +249 -0
  196. package/dist/plugins/validation/CallResolverValidator.d.ts +21 -10
  197. package/dist/plugins/validation/CallResolverValidator.d.ts.map +1 -1
  198. package/dist/plugins/validation/CallResolverValidator.js +101 -76
  199. package/dist/plugins/validation/DataFlowValidator.d.ts.map +1 -1
  200. package/dist/plugins/validation/DataFlowValidator.js +49 -41
  201. package/dist/plugins/validation/GraphConnectivityValidator.d.ts.map +1 -1
  202. package/dist/plugins/validation/GraphConnectivityValidator.js +25 -1
  203. package/dist/plugins/validation/SQLInjectionValidator.d.ts.map +1 -1
  204. package/dist/plugins/validation/SQLInjectionValidator.js +2 -3
  205. package/dist/queries/findCallsInFunction.d.ts +52 -0
  206. package/dist/queries/findCallsInFunction.d.ts.map +1 -0
  207. package/dist/queries/findCallsInFunction.js +135 -0
  208. package/dist/queries/findContainingFunction.d.ts +45 -0
  209. package/dist/queries/findContainingFunction.d.ts.map +1 -0
  210. package/dist/queries/findContainingFunction.js +54 -0
  211. package/dist/queries/index.d.ts +14 -0
  212. package/dist/queries/index.d.ts.map +1 -0
  213. package/dist/queries/index.js +11 -0
  214. package/dist/queries/traceValues.d.ts +70 -0
  215. package/dist/queries/traceValues.d.ts.map +1 -0
  216. package/dist/queries/traceValues.js +299 -0
  217. package/dist/queries/types.d.ts +163 -0
  218. package/dist/queries/types.d.ts.map +1 -0
  219. package/dist/queries/types.js +9 -0
  220. package/dist/schema/GraphSchemaExtractor.d.ts +53 -0
  221. package/dist/schema/GraphSchemaExtractor.d.ts.map +1 -0
  222. package/dist/schema/GraphSchemaExtractor.js +124 -0
  223. package/dist/schema/InterfaceSchemaExtractor.d.ts +73 -0
  224. package/dist/schema/InterfaceSchemaExtractor.d.ts.map +1 -0
  225. package/dist/schema/InterfaceSchemaExtractor.js +112 -0
  226. package/dist/schema/index.d.ts +5 -0
  227. package/dist/schema/index.d.ts.map +1 -0
  228. package/dist/schema/index.js +2 -0
  229. package/dist/storage/backends/RFDBServerBackend.d.ts +12 -18
  230. package/dist/storage/backends/RFDBServerBackend.d.ts.map +1 -1
  231. package/dist/storage/backends/RFDBServerBackend.js +41 -52
  232. package/dist/storage/backends/typeValidation.d.ts.map +1 -1
  233. package/dist/storage/backends/typeValidation.js +1 -0
  234. package/package.json +3 -3
  235. package/src/Orchestrator.ts +35 -3
  236. package/src/config/ConfigLoader.ts +94 -3
  237. package/src/core/FileExplainer.ts +179 -0
  238. package/src/core/NodeFactory.ts +72 -8
  239. package/src/core/nodes/ArrayLiteralNode.ts +3 -2
  240. package/src/core/nodes/BranchNode.ts +113 -0
  241. package/src/core/nodes/CallSiteNode.ts +7 -5
  242. package/src/core/nodes/CaseNode.ts +123 -0
  243. package/src/core/nodes/ClassNode.ts +6 -4
  244. package/src/core/nodes/ConstantNode.ts +5 -4
  245. package/src/core/nodes/ConstructorCallNode.ts +217 -0
  246. package/src/core/nodes/DatabaseQueryNode.ts +5 -1
  247. package/src/core/nodes/DecoratorNode.ts +4 -3
  248. package/src/core/nodes/EnumNode.ts +4 -3
  249. package/src/core/nodes/EventListenerNode.ts +7 -4
  250. package/src/core/nodes/ExportNode.ts +6 -4
  251. package/src/core/nodes/ExpressionNode.ts +5 -4
  252. package/src/core/nodes/ExternalModuleNode.ts +11 -2
  253. package/src/core/nodes/HttpRequestNode.ts +7 -4
  254. package/src/core/nodes/ImportNode.ts +31 -4
  255. package/src/core/nodes/InterfaceNode.ts +4 -3
  256. package/src/core/nodes/LiteralNode.ts +5 -4
  257. package/src/core/nodes/MethodCallNode.ts +7 -5
  258. package/src/core/nodes/MethodNode.ts +6 -4
  259. package/src/core/nodes/ObjectLiteralNode.ts +3 -2
  260. package/src/core/nodes/ParameterNode.ts +4 -3
  261. package/src/core/nodes/TypeNode.ts +4 -3
  262. package/src/core/nodes/VariableDeclarationNode.ts +7 -5
  263. package/src/core/nodes/index.ts +3 -0
  264. package/src/data/builtins/BuiltinRegistry.ts +124 -0
  265. package/src/data/builtins/definitions.ts +267 -0
  266. package/src/data/builtins/index.ts +10 -0
  267. package/src/data/builtins/jsGlobals.ts +28 -0
  268. package/src/data/builtins/types.ts +36 -0
  269. package/src/data/globals/definitions.ts +156 -0
  270. package/src/data/globals/index.ts +66 -0
  271. package/src/diagnostics/DiagnosticReporter.ts +120 -0
  272. package/src/diagnostics/index.ts +1 -1
  273. package/src/errors/GrafemaError.ts +65 -0
  274. package/src/index.ts +45 -0
  275. package/src/plugins/analysis/DatabaseAnalyzer.ts +4 -2
  276. package/src/plugins/analysis/ExpressAnalyzer.ts +5 -1
  277. package/src/plugins/analysis/ExpressResponseAnalyzer.ts +636 -0
  278. package/src/plugins/analysis/ExpressRouteAnalyzer.ts +57 -18
  279. package/src/plugins/analysis/FetchAnalyzer.ts +204 -16
  280. package/src/plugins/analysis/JSASTAnalyzer.ts +2958 -260
  281. package/src/plugins/analysis/RustAnalyzer.ts +4 -4
  282. package/src/plugins/analysis/SQLiteAnalyzer.ts +5 -2
  283. package/src/plugins/analysis/SocketIOAnalyzer.ts +121 -7
  284. package/src/plugins/analysis/ast/GraphBuilder.ts +1578 -70
  285. package/src/plugins/analysis/ast/types.ts +387 -0
  286. package/src/plugins/analysis/ast/visitors/ASTVisitor.ts +8 -0
  287. package/src/plugins/analysis/ast/visitors/CallExpressionVisitor.ts +16 -1
  288. package/src/plugins/analysis/ast/visitors/FunctionVisitor.ts +77 -2
  289. package/src/plugins/analysis/ast/visitors/ImportExportVisitor.ts +112 -1
  290. package/src/plugins/analysis/ast/visitors/VariableVisitor.ts +272 -47
  291. package/src/plugins/discovery/WorkspaceDiscovery.ts +11 -4
  292. package/src/plugins/enrichment/AliasTracker.ts +22 -1
  293. package/src/plugins/enrichment/ArgumentParameterLinker.ts +240 -0
  294. package/src/plugins/enrichment/ClosureCaptureEnricher.ts +267 -0
  295. package/src/plugins/enrichment/ExternalCallResolver.ts +262 -0
  296. package/src/plugins/enrichment/FunctionCallResolver.ts +456 -0
  297. package/src/plugins/enrichment/HTTPConnectionEnricher.ts +70 -20
  298. package/src/plugins/enrichment/MethodCallResolver.ts +21 -1
  299. package/src/plugins/enrichment/MountPointResolver.ts +206 -198
  300. package/src/plugins/enrichment/NodejsBuiltinsResolver.ts +365 -0
  301. package/src/plugins/enrichment/ValueDomainAnalyzer.ts +67 -184
  302. package/src/plugins/indexing/JSModuleIndexer.ts +66 -0
  303. package/src/plugins/indexing/RustModuleIndexer.ts +4 -4
  304. package/src/plugins/validation/BrokenImportValidator.ts +325 -0
  305. package/src/plugins/validation/CallResolverValidator.ts +129 -109
  306. package/src/plugins/validation/DataFlowValidator.ts +75 -58
  307. package/src/plugins/validation/GraphConnectivityValidator.ts +39 -1
  308. package/src/plugins/validation/SQLInjectionValidator.ts +2 -5
  309. package/src/queries/README.md +46 -0
  310. package/src/queries/findCallsInFunction.ts +206 -0
  311. package/src/queries/findContainingFunction.ts +83 -0
  312. package/src/queries/index.ts +23 -0
  313. package/src/queries/traceValues.ts +398 -0
  314. package/src/queries/types.ts +187 -0
  315. package/src/schema/GraphSchemaExtractor.ts +177 -0
  316. package/src/schema/InterfaceSchemaExtractor.ts +173 -0
  317. package/src/schema/index.ts +5 -0
  318. package/src/storage/backends/RFDBServerBackend.ts +58 -70
  319. 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,7 @@
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
+ export {};
@@ -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"}