@grafema/core 0.1.0-alpha.5 → 0.2.0-beta

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (530) hide show
  1. package/README.md +0 -1
  2. package/dist/Orchestrator.d.ts +31 -2
  3. package/dist/Orchestrator.d.ts.map +1 -1
  4. package/dist/Orchestrator.js +222 -27
  5. package/dist/config/ConfigLoader.d.ts +90 -0
  6. package/dist/config/ConfigLoader.d.ts.map +1 -0
  7. package/dist/config/ConfigLoader.js +249 -0
  8. package/dist/config/index.d.ts +6 -0
  9. package/dist/config/index.d.ts.map +1 -0
  10. package/dist/config/index.js +4 -0
  11. package/dist/core/ASTWorker.d.ts +11 -36
  12. package/dist/core/ASTWorker.d.ts.map +1 -1
  13. package/dist/core/ASTWorker.js +93 -99
  14. package/dist/core/CoverageAnalyzer.d.ts +65 -0
  15. package/dist/core/CoverageAnalyzer.d.ts.map +1 -0
  16. package/dist/core/CoverageAnalyzer.js +198 -0
  17. package/dist/core/FileExplainer.d.ts +101 -0
  18. package/dist/core/FileExplainer.d.ts.map +1 -0
  19. package/dist/core/FileExplainer.js +139 -0
  20. package/dist/core/FileNodeManager.d.ts +40 -0
  21. package/dist/core/FileNodeManager.d.ts.map +1 -0
  22. package/dist/core/FileNodeManager.js +84 -0
  23. package/dist/core/GraphFreshnessChecker.d.ts +33 -0
  24. package/dist/core/GraphFreshnessChecker.d.ts.map +1 -0
  25. package/dist/core/GraphFreshnessChecker.js +101 -0
  26. package/dist/core/HashUtils.d.ts +24 -0
  27. package/dist/core/HashUtils.d.ts.map +1 -0
  28. package/dist/core/HashUtils.js +45 -0
  29. package/dist/core/IncrementalReanalyzer.d.ts +36 -0
  30. package/dist/core/IncrementalReanalyzer.d.ts.map +1 -0
  31. package/dist/core/IncrementalReanalyzer.js +132 -0
  32. package/dist/core/NodeFactory.d.ts +266 -19
  33. package/dist/core/NodeFactory.d.ts.map +1 -1
  34. package/dist/core/NodeFactory.js +256 -21
  35. package/dist/core/ScopeTracker.d.ts +84 -0
  36. package/dist/core/ScopeTracker.d.ts.map +1 -0
  37. package/dist/core/ScopeTracker.js +116 -0
  38. package/dist/core/SemanticId.d.ts +90 -0
  39. package/dist/core/SemanticId.d.ts.map +1 -0
  40. package/dist/core/SemanticId.js +115 -0
  41. package/dist/core/VersionManager.d.ts.map +1 -1
  42. package/dist/core/VersionManager.js +3 -2
  43. package/dist/core/nodes/ArgumentExpressionNode.d.ts +43 -0
  44. package/dist/core/nodes/ArgumentExpressionNode.d.ts.map +1 -0
  45. package/dist/core/nodes/ArgumentExpressionNode.js +60 -0
  46. package/dist/core/nodes/ArrayLiteralNode.d.ts +27 -0
  47. package/dist/core/nodes/ArrayLiteralNode.d.ts.map +1 -0
  48. package/dist/core/nodes/ArrayLiteralNode.js +43 -0
  49. package/dist/core/nodes/BranchNode.d.ts +41 -0
  50. package/dist/core/nodes/BranchNode.d.ts.map +1 -0
  51. package/dist/core/nodes/BranchNode.js +82 -0
  52. package/dist/core/nodes/CallSiteNode.d.ts +30 -2
  53. package/dist/core/nodes/CallSiteNode.d.ts.map +1 -1
  54. package/dist/core/nodes/CallSiteNode.js +54 -4
  55. package/dist/core/nodes/CaseNode.d.ts +43 -0
  56. package/dist/core/nodes/CaseNode.d.ts.map +1 -0
  57. package/dist/core/nodes/CaseNode.js +81 -0
  58. package/dist/core/nodes/ClassNode.d.ts +34 -2
  59. package/dist/core/nodes/ClassNode.d.ts.map +1 -1
  60. package/dist/core/nodes/ClassNode.js +52 -4
  61. package/dist/core/nodes/ConstantNode.d.ts +2 -2
  62. package/dist/core/nodes/ConstantNode.d.ts.map +1 -1
  63. package/dist/core/nodes/ConstantNode.js +6 -4
  64. package/dist/core/nodes/ConstructorCallNode.d.ts +51 -0
  65. package/dist/core/nodes/ConstructorCallNode.d.ts.map +1 -0
  66. package/dist/core/nodes/ConstructorCallNode.js +171 -0
  67. package/dist/core/nodes/DatabaseQueryNode.d.ts +3 -2
  68. package/dist/core/nodes/DatabaseQueryNode.d.ts.map +1 -1
  69. package/dist/core/nodes/DatabaseQueryNode.js +5 -2
  70. package/dist/core/nodes/DecoratorNode.d.ts +42 -0
  71. package/dist/core/nodes/DecoratorNode.d.ts.map +1 -0
  72. package/dist/core/nodes/DecoratorNode.js +64 -0
  73. package/dist/core/nodes/EnumNode.d.ts +42 -0
  74. package/dist/core/nodes/EnumNode.d.ts.map +1 -0
  75. package/dist/core/nodes/EnumNode.js +56 -0
  76. package/dist/core/nodes/EventListenerNode.d.ts +4 -4
  77. package/dist/core/nodes/EventListenerNode.d.ts.map +1 -1
  78. package/dist/core/nodes/EventListenerNode.js +7 -4
  79. package/dist/core/nodes/ExportNode.d.ts +38 -2
  80. package/dist/core/nodes/ExportNode.d.ts.map +1 -1
  81. package/dist/core/nodes/ExportNode.js +54 -4
  82. package/dist/core/nodes/ExpressionNode.d.ts +97 -0
  83. package/dist/core/nodes/ExpressionNode.d.ts.map +1 -0
  84. package/dist/core/nodes/ExpressionNode.js +180 -0
  85. package/dist/core/nodes/ExternalModuleNode.d.ts +32 -0
  86. package/dist/core/nodes/ExternalModuleNode.d.ts.map +1 -0
  87. package/dist/core/nodes/ExternalModuleNode.js +49 -0
  88. package/dist/core/nodes/ExternalStdioNode.d.ts +13 -6
  89. package/dist/core/nodes/ExternalStdioNode.d.ts.map +1 -1
  90. package/dist/core/nodes/ExternalStdioNode.js +15 -8
  91. package/dist/core/nodes/FunctionNode.d.ts +36 -0
  92. package/dist/core/nodes/FunctionNode.d.ts.map +1 -1
  93. package/dist/core/nodes/FunctionNode.js +80 -1
  94. package/dist/core/nodes/HttpRequestNode.d.ts +4 -4
  95. package/dist/core/nodes/HttpRequestNode.d.ts.map +1 -1
  96. package/dist/core/nodes/HttpRequestNode.js +7 -4
  97. package/dist/core/nodes/ImportNode.d.ts +28 -6
  98. package/dist/core/nodes/ImportNode.d.ts.map +1 -1
  99. package/dist/core/nodes/ImportNode.js +43 -8
  100. package/dist/core/nodes/InterfaceNode.d.ts +46 -0
  101. package/dist/core/nodes/InterfaceNode.d.ts.map +1 -0
  102. package/dist/core/nodes/InterfaceNode.js +57 -0
  103. package/dist/core/nodes/IssueNode.d.ts +73 -0
  104. package/dist/core/nodes/IssueNode.d.ts.map +1 -0
  105. package/dist/core/nodes/IssueNode.js +129 -0
  106. package/dist/core/nodes/LiteralNode.d.ts +2 -2
  107. package/dist/core/nodes/LiteralNode.d.ts.map +1 -1
  108. package/dist/core/nodes/LiteralNode.js +6 -4
  109. package/dist/core/nodes/MethodCallNode.d.ts +32 -2
  110. package/dist/core/nodes/MethodCallNode.d.ts.map +1 -1
  111. package/dist/core/nodes/MethodCallNode.js +57 -4
  112. package/dist/core/nodes/MethodNode.d.ts +34 -2
  113. package/dist/core/nodes/MethodNode.d.ts.map +1 -1
  114. package/dist/core/nodes/MethodNode.js +55 -3
  115. package/dist/core/nodes/ModuleNode.d.ts +31 -0
  116. package/dist/core/nodes/ModuleNode.d.ts.map +1 -1
  117. package/dist/core/nodes/ModuleNode.js +37 -0
  118. package/dist/core/nodes/NetworkRequestNode.d.ts +54 -0
  119. package/dist/core/nodes/NetworkRequestNode.d.ts.map +1 -0
  120. package/dist/core/nodes/NetworkRequestNode.js +65 -0
  121. package/dist/core/nodes/ObjectLiteralNode.d.ts +27 -0
  122. package/dist/core/nodes/ObjectLiteralNode.d.ts.map +1 -0
  123. package/dist/core/nodes/ObjectLiteralNode.js +43 -0
  124. package/dist/core/nodes/ParameterNode.d.ts +2 -2
  125. package/dist/core/nodes/ParameterNode.d.ts.map +1 -1
  126. package/dist/core/nodes/ParameterNode.js +5 -3
  127. package/dist/core/nodes/ScopeNode.d.ts +31 -0
  128. package/dist/core/nodes/ScopeNode.d.ts.map +1 -1
  129. package/dist/core/nodes/ScopeNode.js +49 -0
  130. package/dist/core/nodes/TypeNode.d.ts +36 -0
  131. package/dist/core/nodes/TypeNode.d.ts.map +1 -0
  132. package/dist/core/nodes/TypeNode.js +55 -0
  133. package/dist/core/nodes/VariableDeclarationNode.d.ts +29 -2
  134. package/dist/core/nodes/VariableDeclarationNode.d.ts.map +1 -1
  135. package/dist/core/nodes/VariableDeclarationNode.js +48 -4
  136. package/dist/core/nodes/index.d.ts +15 -1
  137. package/dist/core/nodes/index.d.ts.map +1 -1
  138. package/dist/core/nodes/index.js +17 -0
  139. package/dist/data/builtins/BuiltinRegistry.d.ts +78 -0
  140. package/dist/data/builtins/BuiltinRegistry.d.ts.map +1 -0
  141. package/dist/data/builtins/BuiltinRegistry.js +110 -0
  142. package/dist/data/builtins/definitions.d.ts +28 -0
  143. package/dist/data/builtins/definitions.d.ts.map +1 -0
  144. package/dist/data/builtins/definitions.js +250 -0
  145. package/dist/data/builtins/index.d.ts +10 -0
  146. package/dist/data/builtins/index.d.ts.map +1 -0
  147. package/dist/data/builtins/index.js +8 -0
  148. package/dist/data/builtins/jsGlobals.d.ts +18 -0
  149. package/dist/data/builtins/jsGlobals.d.ts.map +1 -0
  150. package/dist/data/builtins/jsGlobals.js +26 -0
  151. package/dist/data/builtins/types.d.ts +34 -0
  152. package/dist/data/builtins/types.d.ts.map +1 -0
  153. package/dist/data/builtins/types.js +7 -0
  154. package/dist/data/globals/definitions.d.ts +27 -0
  155. package/dist/data/globals/definitions.d.ts.map +1 -0
  156. package/dist/data/globals/definitions.js +117 -0
  157. package/dist/data/globals/index.d.ts +36 -0
  158. package/dist/data/globals/index.d.ts.map +1 -0
  159. package/dist/data/globals/index.js +52 -0
  160. package/dist/diagnostics/DiagnosticCollector.d.ts +98 -0
  161. package/dist/diagnostics/DiagnosticCollector.d.ts.map +1 -0
  162. package/dist/diagnostics/DiagnosticCollector.js +129 -0
  163. package/dist/diagnostics/DiagnosticReporter.d.ts +100 -0
  164. package/dist/diagnostics/DiagnosticReporter.d.ts.map +1 -0
  165. package/dist/diagnostics/DiagnosticReporter.js +247 -0
  166. package/dist/diagnostics/DiagnosticWriter.d.ts +31 -0
  167. package/dist/diagnostics/DiagnosticWriter.d.ts.map +1 -0
  168. package/dist/diagnostics/DiagnosticWriter.js +43 -0
  169. package/dist/diagnostics/index.d.ts +14 -0
  170. package/dist/diagnostics/index.d.ts.map +1 -0
  171. package/dist/diagnostics/index.js +11 -0
  172. package/dist/errors/GrafemaError.d.ts +161 -0
  173. package/dist/errors/GrafemaError.d.ts.map +1 -0
  174. package/dist/errors/GrafemaError.js +181 -0
  175. package/dist/index.d.ts +73 -1
  176. package/dist/index.d.ts.map +1 -1
  177. package/dist/index.js +70 -1
  178. package/dist/logging/Logger.d.ts +48 -0
  179. package/dist/logging/Logger.d.ts.map +1 -0
  180. package/dist/logging/Logger.js +134 -0
  181. package/dist/plugins/Plugin.d.ts +5 -1
  182. package/dist/plugins/Plugin.d.ts.map +1 -1
  183. package/dist/plugins/Plugin.js +33 -0
  184. package/dist/plugins/analysis/DatabaseAnalyzer.d.ts.map +1 -1
  185. package/dist/plugins/analysis/DatabaseAnalyzer.js +14 -6
  186. package/dist/plugins/analysis/ExpressAnalyzer.d.ts.map +1 -1
  187. package/dist/plugins/analysis/ExpressAnalyzer.js +29 -19
  188. package/dist/plugins/analysis/ExpressResponseAnalyzer.d.ts +148 -0
  189. package/dist/plugins/analysis/ExpressResponseAnalyzer.d.ts.map +1 -0
  190. package/dist/plugins/analysis/ExpressResponseAnalyzer.js +495 -0
  191. package/dist/plugins/analysis/ExpressRouteAnalyzer.d.ts.map +1 -1
  192. package/dist/plugins/analysis/ExpressRouteAnalyzer.js +71 -29
  193. package/dist/plugins/analysis/FetchAnalyzer.d.ts +41 -0
  194. package/dist/plugins/analysis/FetchAnalyzer.d.ts.map +1 -1
  195. package/dist/plugins/analysis/FetchAnalyzer.js +187 -19
  196. package/dist/plugins/analysis/IncrementalAnalysisPlugin.d.ts +6 -3
  197. package/dist/plugins/analysis/IncrementalAnalysisPlugin.d.ts.map +1 -1
  198. package/dist/plugins/analysis/IncrementalAnalysisPlugin.js +76 -80
  199. package/dist/plugins/analysis/JSASTAnalyzer.d.ts +313 -19
  200. package/dist/plugins/analysis/JSASTAnalyzer.d.ts.map +1 -1
  201. package/dist/plugins/analysis/JSASTAnalyzer.js +3430 -503
  202. package/dist/plugins/analysis/ReactAnalyzer.d.ts.map +1 -1
  203. package/dist/plugins/analysis/ReactAnalyzer.js +56 -57
  204. package/dist/plugins/analysis/RustAnalyzer.d.ts.map +1 -1
  205. package/dist/plugins/analysis/RustAnalyzer.js +16 -11
  206. package/dist/plugins/analysis/SQLiteAnalyzer.d.ts.map +1 -1
  207. package/dist/plugins/analysis/SQLiteAnalyzer.js +11 -7
  208. package/dist/plugins/analysis/ServiceLayerAnalyzer.d.ts.map +1 -1
  209. package/dist/plugins/analysis/ServiceLayerAnalyzer.js +21 -9
  210. package/dist/plugins/analysis/SocketIOAnalyzer.d.ts +9 -0
  211. package/dist/plugins/analysis/SocketIOAnalyzer.d.ts.map +1 -1
  212. package/dist/plugins/analysis/SocketIOAnalyzer.js +117 -21
  213. package/dist/plugins/analysis/SystemDbAnalyzer.d.ts.map +1 -1
  214. package/dist/plugins/analysis/SystemDbAnalyzer.js +15 -5
  215. package/dist/plugins/analysis/ast/GraphBuilder.d.ts +207 -4
  216. package/dist/plugins/analysis/ast/GraphBuilder.d.ts.map +1 -1
  217. package/dist/plugins/analysis/ast/GraphBuilder.js +1527 -316
  218. package/dist/plugins/analysis/ast/IdGenerator.d.ts +105 -0
  219. package/dist/plugins/analysis/ast/IdGenerator.d.ts.map +1 -0
  220. package/dist/plugins/analysis/ast/IdGenerator.js +116 -0
  221. package/dist/plugins/analysis/ast/types.d.ts +470 -5
  222. package/dist/plugins/analysis/ast/types.d.ts.map +1 -1
  223. package/dist/plugins/analysis/ast/utils/createParameterNodes.d.ts +33 -0
  224. package/dist/plugins/analysis/ast/utils/createParameterNodes.d.ts.map +1 -0
  225. package/dist/plugins/analysis/ast/utils/createParameterNodes.js +89 -0
  226. package/dist/plugins/analysis/ast/utils/index.d.ts +6 -0
  227. package/dist/plugins/analysis/ast/utils/index.d.ts.map +1 -0
  228. package/dist/plugins/analysis/ast/utils/index.js +5 -0
  229. package/dist/plugins/analysis/ast/utils/location.d.ts +87 -0
  230. package/dist/plugins/analysis/ast/utils/location.d.ts.map +1 -0
  231. package/dist/plugins/analysis/ast/utils/location.js +78 -0
  232. package/dist/plugins/analysis/ast/visitors/ASTVisitor.d.ts +14 -5
  233. package/dist/plugins/analysis/ast/visitors/ASTVisitor.d.ts.map +1 -1
  234. package/dist/plugins/analysis/ast/visitors/ASTVisitor.js +6 -5
  235. package/dist/plugins/analysis/ast/visitors/CallExpressionVisitor.d.ts +100 -9
  236. package/dist/plugins/analysis/ast/visitors/CallExpressionVisitor.d.ts.map +1 -1
  237. package/dist/plugins/analysis/ast/visitors/CallExpressionVisitor.js +674 -125
  238. package/dist/plugins/analysis/ast/visitors/ClassVisitor.d.ts +4 -1
  239. package/dist/plugins/analysis/ast/visitors/ClassVisitor.d.ts.map +1 -1
  240. package/dist/plugins/analysis/ast/visitors/ClassVisitor.js +72 -32
  241. package/dist/plugins/analysis/ast/visitors/FunctionVisitor.d.ts +14 -1
  242. package/dist/plugins/analysis/ast/visitors/FunctionVisitor.d.ts.map +1 -1
  243. package/dist/plugins/analysis/ast/visitors/FunctionVisitor.js +190 -63
  244. package/dist/plugins/analysis/ast/visitors/ImportExportVisitor.d.ts +4 -0
  245. package/dist/plugins/analysis/ast/visitors/ImportExportVisitor.d.ts.map +1 -1
  246. package/dist/plugins/analysis/ast/visitors/ImportExportVisitor.js +112 -8
  247. package/dist/plugins/analysis/ast/visitors/TypeScriptVisitor.d.ts +12 -1
  248. package/dist/plugins/analysis/ast/visitors/TypeScriptVisitor.d.ts.map +1 -1
  249. package/dist/plugins/analysis/ast/visitors/TypeScriptVisitor.js +36 -14
  250. package/dist/plugins/analysis/ast/visitors/VariableVisitor.d.ts +20 -2
  251. package/dist/plugins/analysis/ast/visitors/VariableVisitor.d.ts.map +1 -1
  252. package/dist/plugins/analysis/ast/visitors/VariableVisitor.js +243 -45
  253. package/dist/plugins/discovery/MonorepoServiceDiscovery.d.ts.map +1 -1
  254. package/dist/plugins/discovery/MonorepoServiceDiscovery.js +3 -2
  255. package/dist/plugins/discovery/SimpleProjectDiscovery.d.ts.map +1 -1
  256. package/dist/plugins/discovery/SimpleProjectDiscovery.js +5 -1
  257. package/dist/plugins/discovery/WorkspaceDiscovery.d.ts +22 -0
  258. package/dist/plugins/discovery/WorkspaceDiscovery.d.ts.map +1 -0
  259. package/dist/plugins/discovery/WorkspaceDiscovery.js +141 -0
  260. package/dist/plugins/discovery/resolveSourceEntrypoint.d.ts +46 -0
  261. package/dist/plugins/discovery/resolveSourceEntrypoint.d.ts.map +1 -0
  262. package/dist/plugins/discovery/resolveSourceEntrypoint.js +86 -0
  263. package/dist/plugins/discovery/workspaces/detector.d.ts +21 -0
  264. package/dist/plugins/discovery/workspaces/detector.d.ts.map +1 -0
  265. package/dist/plugins/discovery/workspaces/detector.js +49 -0
  266. package/dist/plugins/discovery/workspaces/globResolver.d.ts +35 -0
  267. package/dist/plugins/discovery/workspaces/globResolver.d.ts.map +1 -0
  268. package/dist/plugins/discovery/workspaces/globResolver.js +184 -0
  269. package/dist/plugins/discovery/workspaces/index.d.ts +9 -0
  270. package/dist/plugins/discovery/workspaces/index.d.ts.map +1 -0
  271. package/dist/plugins/discovery/workspaces/index.js +8 -0
  272. package/dist/plugins/discovery/workspaces/parsers.d.ts +38 -0
  273. package/dist/plugins/discovery/workspaces/parsers.d.ts.map +1 -0
  274. package/dist/plugins/discovery/workspaces/parsers.js +80 -0
  275. package/dist/plugins/enrichment/AliasTracker.d.ts.map +1 -1
  276. package/dist/plugins/enrichment/AliasTracker.js +29 -8
  277. package/dist/plugins/enrichment/ArgumentParameterLinker.d.ts +32 -0
  278. package/dist/plugins/enrichment/ArgumentParameterLinker.d.ts.map +1 -0
  279. package/dist/plugins/enrichment/ArgumentParameterLinker.js +175 -0
  280. package/dist/plugins/enrichment/ClosureCaptureEnricher.d.ts +51 -0
  281. package/dist/plugins/enrichment/ClosureCaptureEnricher.d.ts.map +1 -0
  282. package/dist/plugins/enrichment/ClosureCaptureEnricher.js +205 -0
  283. package/dist/plugins/enrichment/ExternalCallResolver.d.ts +42 -0
  284. package/dist/plugins/enrichment/ExternalCallResolver.d.ts.map +1 -0
  285. package/dist/plugins/enrichment/ExternalCallResolver.js +213 -0
  286. package/dist/plugins/enrichment/FunctionCallResolver.d.ts +58 -0
  287. package/dist/plugins/enrichment/FunctionCallResolver.d.ts.map +1 -0
  288. package/dist/plugins/enrichment/FunctionCallResolver.js +340 -0
  289. package/dist/plugins/enrichment/HTTPConnectionEnricher.d.ts +16 -3
  290. package/dist/plugins/enrichment/HTTPConnectionEnricher.d.ts.map +1 -1
  291. package/dist/plugins/enrichment/HTTPConnectionEnricher.js +78 -27
  292. package/dist/plugins/enrichment/ImportExportLinker.d.ts.map +1 -1
  293. package/dist/plugins/enrichment/ImportExportLinker.js +23 -6
  294. package/dist/plugins/enrichment/MethodCallResolver.d.ts.map +1 -1
  295. package/dist/plugins/enrichment/MethodCallResolver.js +33 -13
  296. package/dist/plugins/enrichment/MountPointResolver.d.ts +14 -12
  297. package/dist/plugins/enrichment/MountPointResolver.d.ts.map +1 -1
  298. package/dist/plugins/enrichment/MountPointResolver.js +173 -147
  299. package/dist/plugins/enrichment/NodejsBuiltinsResolver.d.ts +44 -0
  300. package/dist/plugins/enrichment/NodejsBuiltinsResolver.d.ts.map +1 -0
  301. package/dist/plugins/enrichment/NodejsBuiltinsResolver.js +271 -0
  302. package/dist/plugins/enrichment/PrefixEvaluator.d.ts.map +1 -1
  303. package/dist/plugins/enrichment/PrefixEvaluator.js +16 -7
  304. package/dist/plugins/enrichment/RustFFIEnricher.d.ts.map +1 -1
  305. package/dist/plugins/enrichment/RustFFIEnricher.js +6 -5
  306. package/dist/plugins/enrichment/ValueDomainAnalyzer.d.ts +22 -27
  307. package/dist/plugins/enrichment/ValueDomainAnalyzer.d.ts.map +1 -1
  308. package/dist/plugins/enrichment/ValueDomainAnalyzer.js +185 -143
  309. package/dist/plugins/indexing/IncrementalModuleIndexer.d.ts.map +1 -1
  310. package/dist/plugins/indexing/IncrementalModuleIndexer.js +23 -14
  311. package/dist/plugins/indexing/JSModuleIndexer.d.ts +15 -0
  312. package/dist/plugins/indexing/JSModuleIndexer.d.ts.map +1 -1
  313. package/dist/plugins/indexing/JSModuleIndexer.js +121 -31
  314. package/dist/plugins/indexing/RustModuleIndexer.d.ts +1 -1
  315. package/dist/plugins/indexing/RustModuleIndexer.d.ts.map +1 -1
  316. package/dist/plugins/indexing/RustModuleIndexer.js +8 -7
  317. package/dist/plugins/indexing/ServiceDetector.d.ts +10 -0
  318. package/dist/plugins/indexing/ServiceDetector.d.ts.map +1 -1
  319. package/dist/plugins/indexing/ServiceDetector.js +28 -15
  320. package/dist/plugins/validation/BrokenImportValidator.d.ts +31 -0
  321. package/dist/plugins/validation/BrokenImportValidator.d.ts.map +1 -0
  322. package/dist/plugins/validation/BrokenImportValidator.js +249 -0
  323. package/dist/plugins/validation/CallResolverValidator.d.ts +21 -10
  324. package/dist/plugins/validation/CallResolverValidator.d.ts.map +1 -1
  325. package/dist/plugins/validation/CallResolverValidator.js +103 -77
  326. package/dist/plugins/validation/DataFlowValidator.d.ts.map +1 -1
  327. package/dist/plugins/validation/DataFlowValidator.js +62 -49
  328. package/dist/plugins/validation/EvalBanValidator.d.ts.map +1 -1
  329. package/dist/plugins/validation/EvalBanValidator.js +17 -16
  330. package/dist/plugins/validation/GraphConnectivityValidator.d.ts.map +1 -1
  331. package/dist/plugins/validation/GraphConnectivityValidator.js +44 -24
  332. package/dist/plugins/validation/NodeCreationValidator.d.ts +85 -0
  333. package/dist/plugins/validation/NodeCreationValidator.d.ts.map +1 -0
  334. package/dist/plugins/validation/NodeCreationValidator.js +415 -0
  335. package/dist/plugins/validation/SQLInjectionValidator.d.ts.map +1 -1
  336. package/dist/plugins/validation/SQLInjectionValidator.js +61 -19
  337. package/dist/plugins/validation/ShadowingDetector.d.ts.map +1 -1
  338. package/dist/plugins/validation/ShadowingDetector.js +6 -5
  339. package/dist/plugins/validation/TypeScriptDeadCodeValidator.d.ts.map +1 -1
  340. package/dist/plugins/validation/TypeScriptDeadCodeValidator.js +12 -11
  341. package/dist/plugins/vcs/GitPlugin.d.ts.map +1 -1
  342. package/dist/plugins/vcs/GitPlugin.js +10 -12
  343. package/dist/plugins/vcs/VCSPlugin.d.ts +3 -2
  344. package/dist/plugins/vcs/VCSPlugin.d.ts.map +1 -1
  345. package/dist/plugins/vcs/VCSPlugin.js +5 -5
  346. package/dist/queries/findCallsInFunction.d.ts +52 -0
  347. package/dist/queries/findCallsInFunction.d.ts.map +1 -0
  348. package/dist/queries/findCallsInFunction.js +135 -0
  349. package/dist/queries/findContainingFunction.d.ts +45 -0
  350. package/dist/queries/findContainingFunction.d.ts.map +1 -0
  351. package/dist/queries/findContainingFunction.js +54 -0
  352. package/dist/queries/index.d.ts +14 -0
  353. package/dist/queries/index.d.ts.map +1 -0
  354. package/dist/queries/index.js +11 -0
  355. package/dist/queries/traceValues.d.ts +70 -0
  356. package/dist/queries/traceValues.d.ts.map +1 -0
  357. package/dist/queries/traceValues.js +299 -0
  358. package/dist/queries/types.d.ts +163 -0
  359. package/dist/queries/types.d.ts.map +1 -0
  360. package/dist/queries/types.js +9 -0
  361. package/dist/schema/GraphSchemaExtractor.d.ts +53 -0
  362. package/dist/schema/GraphSchemaExtractor.d.ts.map +1 -0
  363. package/dist/schema/GraphSchemaExtractor.js +124 -0
  364. package/dist/schema/InterfaceSchemaExtractor.d.ts +73 -0
  365. package/dist/schema/InterfaceSchemaExtractor.d.ts.map +1 -0
  366. package/dist/schema/InterfaceSchemaExtractor.js +112 -0
  367. package/dist/schema/index.d.ts +5 -0
  368. package/dist/schema/index.d.ts.map +1 -0
  369. package/dist/schema/index.js +2 -0
  370. package/dist/storage/backends/RFDBServerBackend.d.ts +21 -34
  371. package/dist/storage/backends/RFDBServerBackend.d.ts.map +1 -1
  372. package/dist/storage/backends/RFDBServerBackend.js +72 -62
  373. package/dist/storage/backends/typeValidation.d.ts.map +1 -1
  374. package/dist/storage/backends/typeValidation.js +1 -0
  375. package/dist/validation/PathValidator.d.ts +1 -2
  376. package/dist/validation/PathValidator.d.ts.map +1 -1
  377. package/package.json +3 -3
  378. package/src/Orchestrator.ts +272 -27
  379. package/src/config/ConfigLoader.ts +354 -0
  380. package/src/config/index.ts +5 -0
  381. package/src/core/ASTWorker.ts +143 -139
  382. package/src/core/CoverageAnalyzer.ts +243 -0
  383. package/src/core/FileExplainer.ts +179 -0
  384. package/src/core/FileNodeManager.ts +100 -0
  385. package/src/core/GraphFreshnessChecker.ts +143 -0
  386. package/src/core/HashUtils.ts +48 -0
  387. package/src/core/IncrementalReanalyzer.ts +192 -0
  388. package/src/core/NodeFactory.ts +470 -23
  389. package/src/core/ScopeTracker.ts +154 -0
  390. package/src/core/SemanticId.ts +192 -0
  391. package/src/core/VersionManager.ts +3 -2
  392. package/src/core/nodes/ArgumentExpressionNode.ts +89 -0
  393. package/src/core/nodes/ArrayLiteralNode.ts +66 -0
  394. package/src/core/nodes/BranchNode.ts +113 -0
  395. package/src/core/nodes/CallSiteNode.ts +64 -4
  396. package/src/core/nodes/CaseNode.ts +123 -0
  397. package/src/core/nodes/ClassNode.ts +67 -4
  398. package/src/core/nodes/ConstantNode.ts +5 -4
  399. package/src/core/nodes/ConstructorCallNode.ts +217 -0
  400. package/src/core/nodes/DatabaseQueryNode.ts +5 -1
  401. package/src/core/nodes/DecoratorNode.ts +92 -0
  402. package/src/core/nodes/EnumNode.ts +87 -0
  403. package/src/core/nodes/EventListenerNode.ts +7 -4
  404. package/src/core/nodes/ExportNode.ts +74 -4
  405. package/src/core/nodes/ExpressionNode.ts +232 -0
  406. package/src/core/nodes/ExternalModuleNode.ts +65 -0
  407. package/src/core/nodes/ExternalStdioNode.ts +17 -9
  408. package/src/core/nodes/FunctionNode.ts +101 -1
  409. package/src/core/nodes/HttpRequestNode.ts +7 -4
  410. package/src/core/nodes/ImportNode.ts +62 -13
  411. package/src/core/nodes/InterfaceNode.ts +92 -0
  412. package/src/core/nodes/IssueNode.ts +177 -0
  413. package/src/core/nodes/LiteralNode.ts +5 -4
  414. package/src/core/nodes/MethodCallNode.ts +70 -4
  415. package/src/core/nodes/MethodNode.ts +68 -3
  416. package/src/core/nodes/ModuleNode.ts +50 -0
  417. package/src/core/nodes/NetworkRequestNode.ts +77 -0
  418. package/src/core/nodes/ObjectLiteralNode.ts +66 -0
  419. package/src/core/nodes/ParameterNode.ts +4 -3
  420. package/src/core/nodes/ScopeNode.ts +65 -0
  421. package/src/core/nodes/TypeNode.ts +79 -0
  422. package/src/core/nodes/VariableDeclarationNode.ts +58 -4
  423. package/src/core/nodes/index.ts +21 -1
  424. package/src/data/builtins/BuiltinRegistry.ts +124 -0
  425. package/src/data/builtins/definitions.ts +267 -0
  426. package/src/data/builtins/index.ts +10 -0
  427. package/src/data/builtins/jsGlobals.ts +28 -0
  428. package/src/data/builtins/types.ts +36 -0
  429. package/src/data/globals/definitions.ts +156 -0
  430. package/src/data/globals/index.ts +66 -0
  431. package/src/diagnostics/DiagnosticCollector.ts +163 -0
  432. package/src/diagnostics/DiagnosticReporter.ts +324 -0
  433. package/src/diagnostics/DiagnosticWriter.ts +50 -0
  434. package/src/diagnostics/index.ts +16 -0
  435. package/src/errors/GrafemaError.ts +239 -0
  436. package/src/index.ts +193 -1
  437. package/src/logging/Logger.ts +152 -0
  438. package/src/plugins/Plugin.ts +42 -0
  439. package/src/plugins/analysis/DatabaseAnalyzer.ts +16 -8
  440. package/src/plugins/analysis/ExpressAnalyzer.ts +33 -19
  441. package/src/plugins/analysis/ExpressResponseAnalyzer.ts +636 -0
  442. package/src/plugins/analysis/ExpressRouteAnalyzer.ts +76 -36
  443. package/src/plugins/analysis/FetchAnalyzer.ts +232 -21
  444. package/src/plugins/analysis/IncrementalAnalysisPlugin.ts +84 -101
  445. package/src/plugins/analysis/JSASTAnalyzer.ts +4265 -587
  446. package/src/plugins/analysis/ReactAnalyzer.ts +57 -57
  447. package/src/plugins/analysis/RustAnalyzer.ts +16 -11
  448. package/src/plugins/analysis/SQLiteAnalyzer.ts +13 -7
  449. package/src/plugins/analysis/ServiceLayerAnalyzer.ts +22 -16
  450. package/src/plugins/analysis/SocketIOAnalyzer.ts +151 -28
  451. package/src/plugins/analysis/SystemDbAnalyzer.ts +16 -11
  452. package/src/plugins/analysis/ast/GraphBuilder.ts +1947 -327
  453. package/src/plugins/analysis/ast/IdGenerator.ts +177 -0
  454. package/src/plugins/analysis/ast/types.ts +596 -6
  455. package/src/plugins/analysis/ast/utils/createParameterNodes.ts +104 -0
  456. package/src/plugins/analysis/ast/utils/index.ts +12 -0
  457. package/src/plugins/analysis/ast/utils/location.ts +103 -0
  458. package/src/plugins/analysis/ast/visitors/ASTVisitor.ts +19 -8
  459. package/src/plugins/analysis/ast/visitors/CallExpressionVisitor.ts +924 -83
  460. package/src/plugins/analysis/ast/visitors/ClassVisitor.ts +97 -44
  461. package/src/plugins/analysis/ast/visitors/FunctionVisitor.ts +234 -93
  462. package/src/plugins/analysis/ast/visitors/ImportExportVisitor.ts +124 -9
  463. package/src/plugins/analysis/ast/visitors/TypeScriptVisitor.ts +41 -14
  464. package/src/plugins/analysis/ast/visitors/VariableVisitor.ts +294 -49
  465. package/src/plugins/discovery/MonorepoServiceDiscovery.ts +3 -2
  466. package/src/plugins/discovery/SimpleProjectDiscovery.ts +6 -1
  467. package/src/plugins/discovery/WorkspaceDiscovery.ts +184 -0
  468. package/src/plugins/discovery/resolveSourceEntrypoint.ts +103 -0
  469. package/src/plugins/discovery/workspaces/detector.ts +63 -0
  470. package/src/plugins/discovery/workspaces/globResolver.ts +229 -0
  471. package/src/plugins/discovery/workspaces/index.ts +23 -0
  472. package/src/plugins/discovery/workspaces/parsers.ts +99 -0
  473. package/src/plugins/enrichment/AliasTracker.ts +35 -8
  474. package/src/plugins/enrichment/ArgumentParameterLinker.ts +240 -0
  475. package/src/plugins/enrichment/ClosureCaptureEnricher.ts +267 -0
  476. package/src/plugins/enrichment/ExternalCallResolver.ts +262 -0
  477. package/src/plugins/enrichment/FunctionCallResolver.ts +456 -0
  478. package/src/plugins/enrichment/HTTPConnectionEnricher.ts +84 -27
  479. package/src/plugins/enrichment/ImportExportLinker.ts +24 -6
  480. package/src/plugins/enrichment/MethodCallResolver.ts +39 -13
  481. package/src/plugins/enrichment/MountPointResolver.ts +208 -195
  482. package/src/plugins/enrichment/NodejsBuiltinsResolver.ts +365 -0
  483. package/src/plugins/enrichment/PrefixEvaluator.ts +16 -7
  484. package/src/plugins/enrichment/RustFFIEnricher.ts +6 -5
  485. package/src/plugins/enrichment/ValueDomainAnalyzer.ts +209 -189
  486. package/src/plugins/indexing/IncrementalModuleIndexer.ts +23 -14
  487. package/src/plugins/indexing/JSModuleIndexer.ts +140 -34
  488. package/src/plugins/indexing/RustModuleIndexer.ts +8 -7
  489. package/src/plugins/validation/BrokenImportValidator.ts +325 -0
  490. package/src/plugins/validation/CallResolverValidator.ts +131 -110
  491. package/src/plugins/validation/DataFlowValidator.ts +88 -67
  492. package/src/plugins/validation/EvalBanValidator.ts +17 -16
  493. package/src/plugins/validation/GraphConnectivityValidator.ts +58 -24
  494. package/src/plugins/validation/NodeCreationValidator.ts +554 -0
  495. package/src/plugins/validation/SQLInjectionValidator.ts +63 -20
  496. package/src/plugins/validation/ShadowingDetector.ts +6 -5
  497. package/src/plugins/validation/TypeScriptDeadCodeValidator.ts +12 -11
  498. package/src/plugins/vcs/GitPlugin.ts +40 -12
  499. package/src/plugins/vcs/VCSPlugin.ts +7 -5
  500. package/src/queries/README.md +46 -0
  501. package/src/queries/findCallsInFunction.ts +206 -0
  502. package/src/queries/findContainingFunction.ts +83 -0
  503. package/src/queries/index.ts +23 -0
  504. package/src/queries/traceValues.ts +398 -0
  505. package/src/queries/types.ts +187 -0
  506. package/src/schema/GraphSchemaExtractor.ts +177 -0
  507. package/src/schema/InterfaceSchemaExtractor.ts +173 -0
  508. package/src/schema/index.ts +5 -0
  509. package/src/storage/backends/RFDBServerBackend.ts +100 -98
  510. package/src/storage/backends/typeValidation.ts +1 -0
  511. package/src/validation/PathValidator.ts +1 -1
  512. package/dist/core/AnalysisWorker.d.ts +0 -14
  513. package/dist/core/AnalysisWorker.d.ts.map +0 -1
  514. package/dist/core/AnalysisWorker.js +0 -307
  515. package/dist/core/ParallelAnalyzer.d.ts +0 -120
  516. package/dist/core/ParallelAnalyzer.d.ts.map +0 -1
  517. package/dist/core/ParallelAnalyzer.js +0 -331
  518. package/dist/core/QueueWorker.d.ts +0 -12
  519. package/dist/core/QueueWorker.d.ts.map +0 -1
  520. package/dist/core/QueueWorker.js +0 -567
  521. package/dist/core/RFDBClient.d.ts +0 -179
  522. package/dist/core/RFDBClient.d.ts.map +0 -1
  523. package/dist/core/RFDBClient.js +0 -429
  524. package/dist/plugins/discovery/ZonServiceDiscovery.d.ts +0 -19
  525. package/dist/plugins/discovery/ZonServiceDiscovery.d.ts.map +0 -1
  526. package/dist/plugins/discovery/ZonServiceDiscovery.js +0 -204
  527. package/src/core/AnalysisWorker.ts +0 -410
  528. package/src/core/ParallelAnalyzer.ts +0 -476
  529. package/src/core/QueueWorker.ts +0 -780
  530. package/src/plugins/indexing/ServiceDetector.ts +0 -230
@@ -0,0 +1,50 @@
1
+ /**
2
+ * DiagnosticWriter - Writes diagnostics to .grafema/diagnostics.log
3
+ *
4
+ * Writes diagnostics in JSON lines format (one JSON object per line).
5
+ * This format is:
6
+ * - Easy to parse line-by-line
7
+ * - Appendable without reading entire file
8
+ * - Compatible with streaming tools (grep, jq, etc.)
9
+ *
10
+ * Usage:
11
+ * const writer = new DiagnosticWriter();
12
+ * await writer.write(collector, '/project/.grafema');
13
+ */
14
+
15
+ import { writeFileSync, existsSync, mkdirSync } from 'fs';
16
+ import { join, dirname } from 'path';
17
+
18
+ import type { DiagnosticCollector } from './DiagnosticCollector.js';
19
+
20
+ /**
21
+ * DiagnosticWriter - writes diagnostics.log file
22
+ */
23
+ export class DiagnosticWriter {
24
+ /**
25
+ * Write all diagnostics to .grafema/diagnostics.log
26
+ *
27
+ * Creates the directory if it doesn't exist.
28
+ * Overwrites existing file.
29
+ */
30
+ async write(collector: DiagnosticCollector, grafemaDir: string): Promise<void> {
31
+ const logPath = this.getLogPath(grafemaDir);
32
+
33
+ // Create directory if it doesn't exist
34
+ const dir = dirname(logPath);
35
+ if (!existsSync(dir)) {
36
+ mkdirSync(dir, { recursive: true });
37
+ }
38
+
39
+ // Write diagnostics as JSON lines
40
+ const content = collector.toDiagnosticsLog();
41
+ writeFileSync(logPath, content, 'utf-8');
42
+ }
43
+
44
+ /**
45
+ * Get the path to the diagnostics.log file
46
+ */
47
+ getLogPath(grafemaDir: string): string {
48
+ return join(grafemaDir, 'diagnostics.log');
49
+ }
50
+ }
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Diagnostics - Error collection, reporting, and logging
3
+ *
4
+ * This module provides the diagnostics infrastructure for Grafema:
5
+ * - DiagnosticCollector: Collects errors from plugin execution
6
+ * - DiagnosticReporter: Formats diagnostics for output (text/json/csv)
7
+ * - DiagnosticWriter: Writes diagnostics.log file
8
+ */
9
+
10
+ export { DiagnosticCollector } from './DiagnosticCollector.js';
11
+ export type { Diagnostic, DiagnosticInput } from './DiagnosticCollector.js';
12
+
13
+ export { DiagnosticReporter } from './DiagnosticReporter.js';
14
+ export type { ReportOptions, SummaryStats, CategoryCount, CategorizedSummaryStats } from './DiagnosticReporter.js';
15
+
16
+ export { DiagnosticWriter } from './DiagnosticWriter.js';
@@ -0,0 +1,239 @@
1
+ /**
2
+ * GrafemaError - Error hierarchy for Grafema
3
+ *
4
+ * All errors extend the native JavaScript Error class for compatibility
5
+ * with PluginResult.errors[] (Error[]).
6
+ *
7
+ * Error types:
8
+ * - ConfigError: Configuration parsing/validation errors (fatal)
9
+ * - FileAccessError: File system access errors (error)
10
+ * - LanguageError: Unsupported language/parsing errors (warning)
11
+ * - DatabaseError: RFDB database errors (fatal)
12
+ * - PluginError: Plugin execution errors (error)
13
+ * - AnalysisError: Analysis/timeout errors (error)
14
+ */
15
+
16
+ import type { PluginPhase } from '@grafema/types';
17
+
18
+ /**
19
+ * Context for error reporting
20
+ */
21
+ export interface ErrorContext {
22
+ filePath?: string;
23
+ lineNumber?: number;
24
+ phase?: PluginPhase;
25
+ plugin?: string;
26
+ [key: string]: unknown;
27
+ }
28
+
29
+ /**
30
+ * JSON representation of GrafemaError
31
+ */
32
+ export interface GrafemaErrorJSON {
33
+ code: string;
34
+ severity: 'fatal' | 'error' | 'warning';
35
+ message: string;
36
+ context: ErrorContext;
37
+ suggestion?: string;
38
+ }
39
+
40
+ /**
41
+ * Abstract base class for all Grafema errors.
42
+ *
43
+ * Extends native Error for compatibility with PluginResult.errors[].
44
+ */
45
+ export abstract class GrafemaError extends Error {
46
+ abstract readonly code: string;
47
+ abstract readonly severity: 'fatal' | 'error' | 'warning';
48
+ readonly context: ErrorContext;
49
+ readonly suggestion?: string;
50
+
51
+ constructor(message: string, context: ErrorContext = {}, suggestion?: string) {
52
+ super(message);
53
+ this.name = this.constructor.name;
54
+ this.context = context;
55
+ this.suggestion = suggestion;
56
+
57
+ // Ensure proper prototype chain for instanceof checks
58
+ Object.setPrototypeOf(this, new.target.prototype);
59
+
60
+ // Capture stack trace (V8 specific)
61
+ if (Error.captureStackTrace) {
62
+ Error.captureStackTrace(this, this.constructor);
63
+ }
64
+ }
65
+
66
+ /**
67
+ * Serialize error to JSON for diagnostics.log
68
+ */
69
+ toJSON(): GrafemaErrorJSON {
70
+ return {
71
+ code: this.code,
72
+ severity: this.severity,
73
+ message: this.message,
74
+ context: this.context,
75
+ suggestion: this.suggestion,
76
+ };
77
+ }
78
+ }
79
+
80
+ /**
81
+ * Configuration error - config.json parsing, validation, missing required fields
82
+ *
83
+ * Severity: fatal (always)
84
+ * Codes: ERR_CONFIG_INVALID, ERR_CONFIG_MISSING_FIELD
85
+ */
86
+ export class ConfigError extends GrafemaError {
87
+ readonly code: string;
88
+ readonly severity = 'fatal' as const;
89
+
90
+ constructor(message: string, code: string, context: ErrorContext = {}, suggestion?: string) {
91
+ super(message, context, suggestion);
92
+ this.code = code;
93
+ }
94
+ }
95
+
96
+ /**
97
+ * File access error - unreadable files, missing git, permissions
98
+ *
99
+ * Severity: error (default)
100
+ * Codes: ERR_FILE_UNREADABLE, ERR_GIT_NOT_FOUND, ERR_GIT_ACCESS_DENIED
101
+ */
102
+ export class FileAccessError extends GrafemaError {
103
+ readonly code: string;
104
+ readonly severity = 'error' as const;
105
+
106
+ constructor(message: string, code: string, context: ErrorContext = {}, suggestion?: string) {
107
+ super(message, context, suggestion);
108
+ this.code = code;
109
+ }
110
+ }
111
+
112
+ /**
113
+ * Language error - unsupported file type, unparseable syntax
114
+ *
115
+ * Severity: warning (always)
116
+ * Codes: ERR_UNSUPPORTED_LANG, ERR_PARSE_FAILURE
117
+ */
118
+ export class LanguageError extends GrafemaError {
119
+ readonly code: string;
120
+ readonly severity = 'warning' as const;
121
+
122
+ constructor(message: string, code: string, context: ErrorContext = {}, suggestion?: string) {
123
+ super(message, context, suggestion);
124
+ this.code = code;
125
+ }
126
+ }
127
+
128
+ /**
129
+ * Database error - RFDB connection, corruption, lock
130
+ *
131
+ * Severity: fatal (always)
132
+ * Codes: ERR_DATABASE_LOCKED, ERR_DATABASE_CORRUPTED
133
+ */
134
+ export class DatabaseError extends GrafemaError {
135
+ readonly code: string;
136
+ readonly severity = 'fatal' as const;
137
+
138
+ constructor(message: string, code: string, context: ErrorContext = {}, suggestion?: string) {
139
+ super(message, context, suggestion);
140
+ this.code = code;
141
+ }
142
+ }
143
+
144
+ /**
145
+ * Plugin error - plugin execution failed, dependency missing
146
+ *
147
+ * Severity: error (default)
148
+ * Codes: ERR_PLUGIN_FAILED, ERR_PLUGIN_DEPENDENCY_MISSING
149
+ */
150
+ export class PluginError extends GrafemaError {
151
+ readonly code: string;
152
+ readonly severity = 'error' as const;
153
+
154
+ constructor(message: string, code: string, context: ErrorContext = {}, suggestion?: string) {
155
+ super(message, context, suggestion);
156
+ this.code = code;
157
+ }
158
+ }
159
+
160
+ /**
161
+ * Analysis error - internal analyzer failure, timeout
162
+ *
163
+ * Severity: error (default)
164
+ * Codes: ERR_ANALYSIS_TIMEOUT, ERR_ANALYSIS_INTERNAL
165
+ */
166
+ export class AnalysisError extends GrafemaError {
167
+ readonly code: string;
168
+ readonly severity = 'error' as const;
169
+
170
+ constructor(message: string, code: string, context: ErrorContext = {}, suggestion?: string) {
171
+ super(message, context, suggestion);
172
+ this.code = code;
173
+ }
174
+ }
175
+
176
+ /**
177
+ * Validation error - issues found by validators during VALIDATION phase
178
+ *
179
+ * Unlike other error classes, ValidationError has CONFIGURABLE severity because
180
+ * validators report issues of varying importance:
181
+ * - warning: informational issues (unresolved calls, missing assignments)
182
+ * - error: problems that may indicate bugs (broken references)
183
+ * - fatal: critical issues that should fail the analysis
184
+ *
185
+ * Codes:
186
+ * - ERR_UNRESOLVED_CALL: function call doesn't resolve to definition
187
+ * - ERR_DISCONNECTED_NODES: graph nodes not connected to root
188
+ * - ERR_DISCONNECTED_NODE: individual disconnected node
189
+ * - ERR_MISSING_ASSIGNMENT: variable has no ASSIGNED_FROM edge
190
+ * - ERR_BROKEN_REFERENCE: reference to non-existent node
191
+ * - ERR_NO_LEAF_NODE: data flow doesn't reach leaf node
192
+ */
193
+ export class ValidationError extends GrafemaError {
194
+ readonly code: string;
195
+ readonly severity: 'fatal' | 'error' | 'warning';
196
+
197
+ constructor(
198
+ message: string,
199
+ code: string,
200
+ context: ErrorContext = {},
201
+ suggestion?: string,
202
+ severity: 'fatal' | 'error' | 'warning' = 'warning'
203
+ ) {
204
+ super(message, context, suggestion);
205
+ this.code = code;
206
+ this.severity = severity;
207
+ }
208
+ }
209
+
210
+ /**
211
+ * Strict mode error - reported when strictMode=true and an enricher
212
+ * cannot resolve a reference.
213
+ *
214
+ * Unlike other errors, StrictModeError is used to collect issues that
215
+ * would normally be silently skipped. All collected StrictModeErrors
216
+ * cause analysis to fail after the ENRICHMENT phase completes.
217
+ *
218
+ * Severity: fatal (always)
219
+ * Codes:
220
+ * - STRICT_UNRESOLVED_METHOD: Method call cannot be resolved to definition
221
+ * - STRICT_UNRESOLVED_CALL: Function call cannot be resolved to definition
222
+ * - STRICT_UNRESOLVED_ARGUMENT: Argument cannot be linked to parameter
223
+ * - STRICT_ALIAS_DEPTH_EXCEEDED: Alias chain too deep (potential cycle)
224
+ * - STRICT_BROKEN_IMPORT: Import/re-export chain broken
225
+ */
226
+ export class StrictModeError extends GrafemaError {
227
+ readonly code: string;
228
+ readonly severity = 'fatal' as const;
229
+
230
+ constructor(
231
+ message: string,
232
+ code: string,
233
+ context: ErrorContext = {},
234
+ suggestion?: string
235
+ ) {
236
+ super(message, context, suggestion);
237
+ this.code = code;
238
+ }
239
+ }
package/src/index.ts CHANGED
@@ -2,6 +2,32 @@
2
2
  * @grafema/core - Core analysis engine for GraphDD
3
3
  */
4
4
 
5
+ // Error types
6
+ export {
7
+ GrafemaError,
8
+ ConfigError,
9
+ FileAccessError,
10
+ LanguageError,
11
+ DatabaseError,
12
+ PluginError,
13
+ AnalysisError,
14
+ ValidationError,
15
+ StrictModeError,
16
+ } from './errors/GrafemaError.js';
17
+ export type { ErrorContext, GrafemaErrorJSON } from './errors/GrafemaError.js';
18
+
19
+ // Logging
20
+ export { Logger, ConsoleLogger, createLogger } from './logging/Logger.js';
21
+ export type { LogLevel } from './logging/Logger.js';
22
+
23
+ // Diagnostics
24
+ export { DiagnosticCollector, DiagnosticReporter, DiagnosticWriter } from './diagnostics/index.js';
25
+ export type { Diagnostic, DiagnosticInput, ReportOptions, SummaryStats } from './diagnostics/index.js';
26
+
27
+ // Config
28
+ export { loadConfig, DEFAULT_CONFIG } from './config/index.js';
29
+ export type { GrafemaConfig } from './config/index.js';
30
+
5
31
  // Main orchestrator
6
32
  export { Orchestrator } from './Orchestrator.js';
7
33
  export type {
@@ -30,9 +56,52 @@ export { RFDBServerBackend } from './storage/backends/RFDBServerBackend.js';
30
56
  // Core utilities
31
57
  export { NodeFactory } from './core/NodeFactory.js';
32
58
  export { Profiler } from './core/Profiler.js';
59
+ export {
60
+ computeSemanticId,
61
+ parseSemanticId,
62
+ computeDiscriminator
63
+ } from './core/SemanticId.js';
64
+ export type {
65
+ Location,
66
+ ScopeContext,
67
+ SemanticIdOptions,
68
+ ParsedSemanticId,
69
+ LocatedItem
70
+ } from './core/SemanticId.js';
71
+ export { ScopeTracker } from './core/ScopeTracker.js';
72
+ export type { ScopeEntry, CountedScopeResult } from './core/ScopeTracker.js';
33
73
  export { AnalysisQueue } from './core/AnalysisQueue.js';
74
+ export { ASTWorkerPool, type ModuleInfo as ASTModuleInfo, type ParseResult, type ASTWorkerPoolStats } from './core/ASTWorkerPool.js';
34
75
  export { GuaranteeManager } from './core/GuaranteeManager.js';
35
76
  export type { GuaranteeGraph } from './core/GuaranteeManager.js';
77
+ export { clearFileNodesIfNeeded, clearServiceNodeIfExists } from './core/FileNodeManager.js';
78
+ export { CoverageAnalyzer } from './core/CoverageAnalyzer.js';
79
+ export type { CoverageResult } from './core/CoverageAnalyzer.js';
80
+ export { FileExplainer } from './core/FileExplainer.js';
81
+ export type { FileExplainResult, EnhancedNode } from './core/FileExplainer.js';
82
+
83
+ // Hash utilities
84
+ export { calculateFileHash, calculateFileHashAsync, calculateContentHash } from './core/HashUtils.js';
85
+
86
+ // Type validation and path validation
87
+ export {
88
+ levenshtein,
89
+ checkTypoAgainstKnownTypes,
90
+ resetKnownNodeTypes,
91
+ getKnownNodeTypes
92
+ } from './storage/backends/typeValidation.js';
93
+ export { PathValidator } from './validation/PathValidator.js';
94
+ export type { PathValidationResult, EndpointDiff } from './validation/PathValidator.js';
95
+
96
+ // Version management
97
+ export { VersionManager, versionManager } from './core/VersionManager.js';
98
+ export type { VersionedNode, VersionConstants, EnrichOptions, ModifiedNodeInfo, ChangesSummary, ClassifyChangesResult } from './core/VersionManager.js';
99
+
100
+ // Freshness checking and incremental reanalysis
101
+ export { GraphFreshnessChecker } from './core/GraphFreshnessChecker.js';
102
+ export type { FreshnessGraph, FreshnessResult, StaleModule } from './core/GraphFreshnessChecker.js';
103
+ export { IncrementalReanalyzer } from './core/IncrementalReanalyzer.js';
104
+ export type { ReanalysisOptions, ReanalysisProgress, ReanalysisResult } from './core/IncrementalReanalyzer.js';
36
105
 
37
106
  // API
38
107
  export { GraphAPI } from './api/GraphAPI.js';
@@ -42,17 +111,69 @@ export type { GuaranteeGraphBackend } from './api/GuaranteeAPI.js';
42
111
  // Node kinds
43
112
  export { isGuaranteeType } from './core/nodes/NodeKind.js';
44
113
 
114
+ // Issue nodes (detected problems)
115
+ export { IssueNode, type IssueNodeRecord, type IssueSeverity, type IssueType } from './core/nodes/IssueNode.js';
116
+
117
+ // Node contracts
118
+ export { FunctionNode } from './core/nodes/FunctionNode.js';
119
+ export { CallSiteNode } from './core/nodes/CallSiteNode.js';
120
+ export { MethodCallNode } from './core/nodes/MethodCallNode.js';
121
+ export { ScopeNode } from './core/nodes/ScopeNode.js';
122
+ export { ClassNode } from './core/nodes/ClassNode.js';
123
+ export { MethodNode } from './core/nodes/MethodNode.js';
124
+ export { ExportNode } from './core/nodes/ExportNode.js';
125
+ export { VariableDeclarationNode } from './core/nodes/VariableDeclarationNode.js';
126
+ export { ExternalModuleNode } from './core/nodes/ExternalModuleNode.js';
127
+ export { NetworkRequestNode } from './core/nodes/NetworkRequestNode.js';
128
+ export { InterfaceNode, type InterfacePropertyRecord } from './core/nodes/InterfaceNode.js';
129
+ export { TypeNode } from './core/nodes/TypeNode.js';
130
+ export { EnumNode, type EnumMemberRecord } from './core/nodes/EnumNode.js';
131
+ export { DecoratorNode, type DecoratorTargetType } from './core/nodes/DecoratorNode.js';
132
+ export { ExpressionNode, type ExpressionNodeOptions } from './core/nodes/ExpressionNode.js';
133
+ export { ArgumentExpressionNode, type ArgumentExpressionNodeRecord, type ArgumentExpressionNodeOptions } from './core/nodes/ArgumentExpressionNode.js';
134
+
135
+ // AST Visitors (for advanced usage)
136
+ export {
137
+ ASTVisitor,
138
+ ImportExportVisitor,
139
+ VariableVisitor,
140
+ FunctionVisitor,
141
+ ClassVisitor,
142
+ CallExpressionVisitor,
143
+ TypeScriptVisitor
144
+ } from './plugins/analysis/ast/visitors/index.js';
145
+ export type {
146
+ VisitorModule,
147
+ VisitorCollections,
148
+ VisitorHandlers,
149
+ VisitorHandler,
150
+ VariableInfo,
151
+ ExtractVariableNamesCallback,
152
+ TrackVariableAssignmentCallback,
153
+ AnalyzeFunctionBodyCallback
154
+ } from './plugins/analysis/ast/visitors/index.js';
155
+
156
+ // AST Location utilities (REG-122)
157
+ export {
158
+ getNodeLocation,
159
+ getLine,
160
+ getColumn,
161
+ getEndLocation,
162
+ UNKNOWN_LOCATION
163
+ } from './plugins/analysis/ast/utils/location.js';
164
+ export type { NodeLocation } from './plugins/analysis/ast/utils/location.js';
165
+
45
166
  // === PLUGINS ===
46
167
 
47
168
  // Indexing plugins
48
169
  export { JSModuleIndexer } from './plugins/indexing/JSModuleIndexer.js';
49
170
  export { IncrementalModuleIndexer } from './plugins/indexing/IncrementalModuleIndexer.js';
50
171
  export { RustModuleIndexer } from './plugins/indexing/RustModuleIndexer.js';
51
- export { ServiceDetector } from './plugins/indexing/ServiceDetector.js';
52
172
 
53
173
  // Analysis plugins
54
174
  export { JSASTAnalyzer } from './plugins/analysis/JSASTAnalyzer.js';
55
175
  export { ExpressRouteAnalyzer } from './plugins/analysis/ExpressRouteAnalyzer.js';
176
+ export { ExpressResponseAnalyzer } from './plugins/analysis/ExpressResponseAnalyzer.js';
56
177
  export { ExpressAnalyzer } from './plugins/analysis/ExpressAnalyzer.js';
57
178
  export { SocketIOAnalyzer } from './plugins/analysis/SocketIOAnalyzer.js';
58
179
  export { DatabaseAnalyzer } from './plugins/analysis/DatabaseAnalyzer.js';
@@ -66,6 +187,7 @@ export { IncrementalAnalysisPlugin } from './plugins/analysis/IncrementalAnalysi
66
187
 
67
188
  // Enrichment plugins
68
189
  export { MethodCallResolver } from './plugins/enrichment/MethodCallResolver.js';
190
+ export { ArgumentParameterLinker } from './plugins/enrichment/ArgumentParameterLinker.js';
69
191
  export { AliasTracker } from './plugins/enrichment/AliasTracker.js';
70
192
  export { ValueDomainAnalyzer } from './plugins/enrichment/ValueDomainAnalyzer.js';
71
193
  export { MountPointResolver } from './plugins/enrichment/MountPointResolver.js';
@@ -73,7 +195,18 @@ export { PrefixEvaluator } from './plugins/enrichment/PrefixEvaluator.js';
73
195
  export { InstanceOfResolver } from './plugins/enrichment/InstanceOfResolver.js';
74
196
  export { HTTPConnectionEnricher } from './plugins/enrichment/HTTPConnectionEnricher.js';
75
197
  export { ImportExportLinker } from './plugins/enrichment/ImportExportLinker.js';
198
+ export { FunctionCallResolver } from './plugins/enrichment/FunctionCallResolver.js';
76
199
  export { RustFFIEnricher } from './plugins/enrichment/RustFFIEnricher.js';
200
+ export { NodejsBuiltinsResolver } from './plugins/enrichment/NodejsBuiltinsResolver.js';
201
+ export { ExternalCallResolver } from './plugins/enrichment/ExternalCallResolver.js';
202
+ export { ClosureCaptureEnricher } from './plugins/enrichment/ClosureCaptureEnricher.js';
203
+
204
+ // Builtin registry
205
+ export { BuiltinRegistry } from './data/builtins/index.js';
206
+ export type { BuiltinFunctionDef, BuiltinModuleDef, SecurityCategory } from './data/builtins/index.js';
207
+
208
+ // Globals registry
209
+ export { GlobalsRegistry, ALL_GLOBALS } from './data/globals/index.js';
77
210
 
78
211
  // Validation plugins
79
212
  export { CallResolverValidator } from './plugins/validation/CallResolverValidator.js';
@@ -83,11 +216,70 @@ export { ShadowingDetector } from './plugins/validation/ShadowingDetector.js';
83
216
  export { GraphConnectivityValidator } from './plugins/validation/GraphConnectivityValidator.js';
84
217
  export { DataFlowValidator } from './plugins/validation/DataFlowValidator.js';
85
218
  export { TypeScriptDeadCodeValidator } from './plugins/validation/TypeScriptDeadCodeValidator.js';
219
+ export { NodeCreationValidator } from './plugins/validation/NodeCreationValidator.js';
220
+ export { BrokenImportValidator } from './plugins/validation/BrokenImportValidator.js';
86
221
 
87
222
  // Discovery plugins
88
223
  export { SimpleProjectDiscovery } from './plugins/discovery/SimpleProjectDiscovery.js';
89
224
  export { DiscoveryPlugin } from './plugins/discovery/DiscoveryPlugin.js';
90
225
  export { MonorepoServiceDiscovery } from './plugins/discovery/MonorepoServiceDiscovery.js';
226
+ export { WorkspaceDiscovery } from './plugins/discovery/WorkspaceDiscovery.js';
227
+ export { resolveSourceEntrypoint } from './plugins/discovery/resolveSourceEntrypoint.js';
228
+ export type { PackageJsonForResolution } from './plugins/discovery/resolveSourceEntrypoint.js';
229
+
230
+ // Workspace detection utilities
231
+ export {
232
+ detectWorkspaceType,
233
+ parsePnpmWorkspace,
234
+ parseNpmWorkspace,
235
+ parseLernaConfig,
236
+ resolveWorkspacePackages
237
+ } from './plugins/discovery/workspaces/index.js';
238
+ export type {
239
+ WorkspaceType,
240
+ WorkspaceDetectionResult,
241
+ WorkspaceConfig,
242
+ WorkspacePackage
243
+ } from './plugins/discovery/workspaces/index.js';
244
+
245
+ // VCS plugins
246
+ export { GitPlugin } from './plugins/vcs/GitPlugin.js';
247
+ export { VCSPlugin, VCSPluginFactory, FileStatus } from './plugins/vcs/VCSPlugin.js';
248
+ export type {
249
+ VCSConfig,
250
+ VCSPluginMetadata,
251
+ ChangedFile,
252
+ FileDiff,
253
+ DiffHunk,
254
+ } from './plugins/vcs/VCSPlugin.js';
255
+ export type { CommitInfo } from './plugins/vcs/GitPlugin.js';
256
+
257
+ // Schema extraction
258
+ export { InterfaceSchemaExtractor, GraphSchemaExtractor } from './schema/index.js';
259
+ export type {
260
+ InterfaceSchema,
261
+ PropertySchema,
262
+ ExtractOptions,
263
+ GraphSchema,
264
+ NodeTypeSchema,
265
+ EdgeTypeSchema,
266
+ GraphExtractOptions,
267
+ } from './schema/index.js';
268
+
269
+ // Graph Query Utilities
270
+ export { findCallsInFunction, findContainingFunction, traceValues, aggregateValues, NONDETERMINISTIC_PATTERNS, NONDETERMINISTIC_OBJECTS } from './queries/index.js';
271
+ export type {
272
+ CallInfo,
273
+ CallerInfo,
274
+ FindCallsOptions,
275
+ TracedValue,
276
+ ValueSource,
277
+ UnknownReason,
278
+ TraceValuesOptions,
279
+ ValueSetResult,
280
+ TraceValuesGraphBackend,
281
+ NondeterministicPattern,
282
+ } from './queries/index.js';
91
283
 
92
284
  // Re-export types for convenience
93
285
  export type * from '@grafema/types';