@grafema/core 0.1.0-alpha.5 → 0.1.1-alpha

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (391) hide show
  1. package/README.md +0 -1
  2. package/dist/Orchestrator.d.ts +24 -2
  3. package/dist/Orchestrator.d.ts.map +1 -1
  4. package/dist/Orchestrator.js +197 -24
  5. package/dist/config/ConfigLoader.d.ts +72 -0
  6. package/dist/config/ConfigLoader.d.ts.map +1 -0
  7. package/dist/config/ConfigLoader.js +187 -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/FileNodeManager.d.ts +40 -0
  18. package/dist/core/FileNodeManager.d.ts.map +1 -0
  19. package/dist/core/FileNodeManager.js +84 -0
  20. package/dist/core/GraphFreshnessChecker.d.ts +33 -0
  21. package/dist/core/GraphFreshnessChecker.d.ts.map +1 -0
  22. package/dist/core/GraphFreshnessChecker.js +101 -0
  23. package/dist/core/HashUtils.d.ts +24 -0
  24. package/dist/core/HashUtils.d.ts.map +1 -0
  25. package/dist/core/HashUtils.js +45 -0
  26. package/dist/core/IncrementalReanalyzer.d.ts +36 -0
  27. package/dist/core/IncrementalReanalyzer.d.ts.map +1 -0
  28. package/dist/core/IncrementalReanalyzer.js +132 -0
  29. package/dist/core/NodeFactory.d.ts +225 -17
  30. package/dist/core/NodeFactory.d.ts.map +1 -1
  31. package/dist/core/NodeFactory.js +208 -18
  32. package/dist/core/ScopeTracker.d.ts +84 -0
  33. package/dist/core/ScopeTracker.d.ts.map +1 -0
  34. package/dist/core/ScopeTracker.js +116 -0
  35. package/dist/core/SemanticId.d.ts +90 -0
  36. package/dist/core/SemanticId.d.ts.map +1 -0
  37. package/dist/core/SemanticId.js +115 -0
  38. package/dist/core/VersionManager.d.ts.map +1 -1
  39. package/dist/core/VersionManager.js +3 -2
  40. package/dist/core/nodes/ArgumentExpressionNode.d.ts +43 -0
  41. package/dist/core/nodes/ArgumentExpressionNode.d.ts.map +1 -0
  42. package/dist/core/nodes/ArgumentExpressionNode.js +60 -0
  43. package/dist/core/nodes/ArrayLiteralNode.d.ts +27 -0
  44. package/dist/core/nodes/ArrayLiteralNode.d.ts.map +1 -0
  45. package/dist/core/nodes/ArrayLiteralNode.js +41 -0
  46. package/dist/core/nodes/CallSiteNode.d.ts +28 -0
  47. package/dist/core/nodes/CallSiteNode.d.ts.map +1 -1
  48. package/dist/core/nodes/CallSiteNode.js +46 -0
  49. package/dist/core/nodes/ClassNode.d.ts +33 -1
  50. package/dist/core/nodes/ClassNode.d.ts.map +1 -1
  51. package/dist/core/nodes/ClassNode.js +46 -2
  52. package/dist/core/nodes/DecoratorNode.d.ts +42 -0
  53. package/dist/core/nodes/DecoratorNode.d.ts.map +1 -0
  54. package/dist/core/nodes/DecoratorNode.js +62 -0
  55. package/dist/core/nodes/EnumNode.d.ts +42 -0
  56. package/dist/core/nodes/EnumNode.d.ts.map +1 -0
  57. package/dist/core/nodes/EnumNode.js +54 -0
  58. package/dist/core/nodes/ExportNode.d.ts +37 -1
  59. package/dist/core/nodes/ExportNode.d.ts.map +1 -1
  60. package/dist/core/nodes/ExportNode.js +48 -2
  61. package/dist/core/nodes/ExpressionNode.d.ts +97 -0
  62. package/dist/core/nodes/ExpressionNode.d.ts.map +1 -0
  63. package/dist/core/nodes/ExpressionNode.js +178 -0
  64. package/dist/core/nodes/ExternalModuleNode.d.ts +28 -0
  65. package/dist/core/nodes/ExternalModuleNode.d.ts.map +1 -0
  66. package/dist/core/nodes/ExternalModuleNode.js +41 -0
  67. package/dist/core/nodes/ExternalStdioNode.d.ts +13 -6
  68. package/dist/core/nodes/ExternalStdioNode.d.ts.map +1 -1
  69. package/dist/core/nodes/ExternalStdioNode.js +15 -8
  70. package/dist/core/nodes/FunctionNode.d.ts +36 -0
  71. package/dist/core/nodes/FunctionNode.d.ts.map +1 -1
  72. package/dist/core/nodes/FunctionNode.js +80 -1
  73. package/dist/core/nodes/ImportNode.d.ts +19 -5
  74. package/dist/core/nodes/ImportNode.d.ts.map +1 -1
  75. package/dist/core/nodes/ImportNode.js +23 -5
  76. package/dist/core/nodes/InterfaceNode.d.ts +46 -0
  77. package/dist/core/nodes/InterfaceNode.d.ts.map +1 -0
  78. package/dist/core/nodes/InterfaceNode.js +55 -0
  79. package/dist/core/nodes/IssueNode.d.ts +73 -0
  80. package/dist/core/nodes/IssueNode.d.ts.map +1 -0
  81. package/dist/core/nodes/IssueNode.js +129 -0
  82. package/dist/core/nodes/MethodCallNode.d.ts +30 -0
  83. package/dist/core/nodes/MethodCallNode.d.ts.map +1 -1
  84. package/dist/core/nodes/MethodCallNode.js +49 -0
  85. package/dist/core/nodes/MethodNode.d.ts +32 -0
  86. package/dist/core/nodes/MethodNode.d.ts.map +1 -1
  87. package/dist/core/nodes/MethodNode.js +48 -0
  88. package/dist/core/nodes/ModuleNode.d.ts +31 -0
  89. package/dist/core/nodes/ModuleNode.d.ts.map +1 -1
  90. package/dist/core/nodes/ModuleNode.js +37 -0
  91. package/dist/core/nodes/NetworkRequestNode.d.ts +54 -0
  92. package/dist/core/nodes/NetworkRequestNode.d.ts.map +1 -0
  93. package/dist/core/nodes/NetworkRequestNode.js +65 -0
  94. package/dist/core/nodes/ObjectLiteralNode.d.ts +27 -0
  95. package/dist/core/nodes/ObjectLiteralNode.d.ts.map +1 -0
  96. package/dist/core/nodes/ObjectLiteralNode.js +41 -0
  97. package/dist/core/nodes/ScopeNode.d.ts +31 -0
  98. package/dist/core/nodes/ScopeNode.d.ts.map +1 -1
  99. package/dist/core/nodes/ScopeNode.js +49 -0
  100. package/dist/core/nodes/TypeNode.d.ts +36 -0
  101. package/dist/core/nodes/TypeNode.d.ts.map +1 -0
  102. package/dist/core/nodes/TypeNode.js +53 -0
  103. package/dist/core/nodes/VariableDeclarationNode.d.ts +27 -0
  104. package/dist/core/nodes/VariableDeclarationNode.d.ts.map +1 -1
  105. package/dist/core/nodes/VariableDeclarationNode.js +40 -0
  106. package/dist/core/nodes/index.d.ts +12 -1
  107. package/dist/core/nodes/index.d.ts.map +1 -1
  108. package/dist/core/nodes/index.js +14 -0
  109. package/dist/diagnostics/DiagnosticCollector.d.ts +98 -0
  110. package/dist/diagnostics/DiagnosticCollector.d.ts.map +1 -0
  111. package/dist/diagnostics/DiagnosticCollector.js +129 -0
  112. package/dist/diagnostics/DiagnosticReporter.d.ts +77 -0
  113. package/dist/diagnostics/DiagnosticReporter.d.ts.map +1 -0
  114. package/dist/diagnostics/DiagnosticReporter.js +159 -0
  115. package/dist/diagnostics/DiagnosticWriter.d.ts +31 -0
  116. package/dist/diagnostics/DiagnosticWriter.d.ts.map +1 -0
  117. package/dist/diagnostics/DiagnosticWriter.js +43 -0
  118. package/dist/diagnostics/index.d.ts +14 -0
  119. package/dist/diagnostics/index.d.ts.map +1 -0
  120. package/dist/diagnostics/index.js +11 -0
  121. package/dist/errors/GrafemaError.d.ts +118 -0
  122. package/dist/errors/GrafemaError.d.ts.map +1 -0
  123. package/dist/errors/GrafemaError.js +131 -0
  124. package/dist/index.d.ts +57 -1
  125. package/dist/index.d.ts.map +1 -1
  126. package/dist/index.js +54 -1
  127. package/dist/logging/Logger.d.ts +48 -0
  128. package/dist/logging/Logger.d.ts.map +1 -0
  129. package/dist/logging/Logger.js +134 -0
  130. package/dist/plugins/Plugin.d.ts +5 -1
  131. package/dist/plugins/Plugin.d.ts.map +1 -1
  132. package/dist/plugins/Plugin.js +33 -0
  133. package/dist/plugins/analysis/DatabaseAnalyzer.d.ts.map +1 -1
  134. package/dist/plugins/analysis/DatabaseAnalyzer.js +13 -6
  135. package/dist/plugins/analysis/ExpressAnalyzer.d.ts.map +1 -1
  136. package/dist/plugins/analysis/ExpressAnalyzer.js +27 -19
  137. package/dist/plugins/analysis/ExpressRouteAnalyzer.d.ts.map +1 -1
  138. package/dist/plugins/analysis/ExpressRouteAnalyzer.js +21 -14
  139. package/dist/plugins/analysis/FetchAnalyzer.d.ts +1 -0
  140. package/dist/plugins/analysis/FetchAnalyzer.d.ts.map +1 -1
  141. package/dist/plugins/analysis/FetchAnalyzer.js +34 -14
  142. package/dist/plugins/analysis/IncrementalAnalysisPlugin.d.ts +6 -3
  143. package/dist/plugins/analysis/IncrementalAnalysisPlugin.d.ts.map +1 -1
  144. package/dist/plugins/analysis/IncrementalAnalysisPlugin.js +76 -80
  145. package/dist/plugins/analysis/JSASTAnalyzer.d.ts +180 -17
  146. package/dist/plugins/analysis/JSASTAnalyzer.d.ts.map +1 -1
  147. package/dist/plugins/analysis/JSASTAnalyzer.js +1171 -471
  148. package/dist/plugins/analysis/ReactAnalyzer.d.ts.map +1 -1
  149. package/dist/plugins/analysis/ReactAnalyzer.js +56 -57
  150. package/dist/plugins/analysis/RustAnalyzer.d.ts.map +1 -1
  151. package/dist/plugins/analysis/RustAnalyzer.js +15 -10
  152. package/dist/plugins/analysis/SQLiteAnalyzer.d.ts.map +1 -1
  153. package/dist/plugins/analysis/SQLiteAnalyzer.js +9 -7
  154. package/dist/plugins/analysis/ServiceLayerAnalyzer.d.ts.map +1 -1
  155. package/dist/plugins/analysis/ServiceLayerAnalyzer.js +21 -9
  156. package/dist/plugins/analysis/SocketIOAnalyzer.d.ts.map +1 -1
  157. package/dist/plugins/analysis/SocketIOAnalyzer.js +27 -15
  158. package/dist/plugins/analysis/SystemDbAnalyzer.d.ts.map +1 -1
  159. package/dist/plugins/analysis/SystemDbAnalyzer.js +15 -5
  160. package/dist/plugins/analysis/ast/GraphBuilder.d.ts +34 -4
  161. package/dist/plugins/analysis/ast/GraphBuilder.d.ts.map +1 -1
  162. package/dist/plugins/analysis/ast/GraphBuilder.js +318 -298
  163. package/dist/plugins/analysis/ast/IdGenerator.d.ts +105 -0
  164. package/dist/plugins/analysis/ast/IdGenerator.d.ts.map +1 -0
  165. package/dist/plugins/analysis/ast/IdGenerator.js +116 -0
  166. package/dist/plugins/analysis/ast/types.d.ts +176 -5
  167. package/dist/plugins/analysis/ast/types.d.ts.map +1 -1
  168. package/dist/plugins/analysis/ast/utils/createParameterNodes.d.ts +33 -0
  169. package/dist/plugins/analysis/ast/utils/createParameterNodes.d.ts.map +1 -0
  170. package/dist/plugins/analysis/ast/utils/createParameterNodes.js +89 -0
  171. package/dist/plugins/analysis/ast/utils/index.d.ts +6 -0
  172. package/dist/plugins/analysis/ast/utils/index.d.ts.map +1 -0
  173. package/dist/plugins/analysis/ast/utils/index.js +5 -0
  174. package/dist/plugins/analysis/ast/utils/location.d.ts +87 -0
  175. package/dist/plugins/analysis/ast/utils/location.d.ts.map +1 -0
  176. package/dist/plugins/analysis/ast/utils/location.js +78 -0
  177. package/dist/plugins/analysis/ast/visitors/ASTVisitor.d.ts +9 -4
  178. package/dist/plugins/analysis/ast/visitors/ASTVisitor.d.ts.map +1 -1
  179. package/dist/plugins/analysis/ast/visitors/ASTVisitor.js +6 -5
  180. package/dist/plugins/analysis/ast/visitors/CallExpressionVisitor.d.ts +99 -9
  181. package/dist/plugins/analysis/ast/visitors/CallExpressionVisitor.d.ts.map +1 -1
  182. package/dist/plugins/analysis/ast/visitors/CallExpressionVisitor.js +663 -125
  183. package/dist/plugins/analysis/ast/visitors/ClassVisitor.d.ts +4 -1
  184. package/dist/plugins/analysis/ast/visitors/ClassVisitor.d.ts.map +1 -1
  185. package/dist/plugins/analysis/ast/visitors/ClassVisitor.js +72 -32
  186. package/dist/plugins/analysis/ast/visitors/FunctionVisitor.d.ts +4 -1
  187. package/dist/plugins/analysis/ast/visitors/FunctionVisitor.d.ts.map +1 -1
  188. package/dist/plugins/analysis/ast/visitors/FunctionVisitor.js +128 -63
  189. package/dist/plugins/analysis/ast/visitors/ImportExportVisitor.d.ts.map +1 -1
  190. package/dist/plugins/analysis/ast/visitors/ImportExportVisitor.js +11 -8
  191. package/dist/plugins/analysis/ast/visitors/TypeScriptVisitor.d.ts +12 -1
  192. package/dist/plugins/analysis/ast/visitors/TypeScriptVisitor.d.ts.map +1 -1
  193. package/dist/plugins/analysis/ast/visitors/TypeScriptVisitor.js +36 -14
  194. package/dist/plugins/analysis/ast/visitors/VariableVisitor.d.ts +4 -1
  195. package/dist/plugins/analysis/ast/visitors/VariableVisitor.d.ts.map +1 -1
  196. package/dist/plugins/analysis/ast/visitors/VariableVisitor.js +17 -13
  197. package/dist/plugins/discovery/MonorepoServiceDiscovery.d.ts.map +1 -1
  198. package/dist/plugins/discovery/MonorepoServiceDiscovery.js +3 -2
  199. package/dist/plugins/discovery/SimpleProjectDiscovery.d.ts.map +1 -1
  200. package/dist/plugins/discovery/SimpleProjectDiscovery.js +5 -1
  201. package/dist/plugins/discovery/WorkspaceDiscovery.d.ts +22 -0
  202. package/dist/plugins/discovery/WorkspaceDiscovery.d.ts.map +1 -0
  203. package/dist/plugins/discovery/WorkspaceDiscovery.js +136 -0
  204. package/dist/plugins/discovery/resolveSourceEntrypoint.d.ts +46 -0
  205. package/dist/plugins/discovery/resolveSourceEntrypoint.d.ts.map +1 -0
  206. package/dist/plugins/discovery/resolveSourceEntrypoint.js +86 -0
  207. package/dist/plugins/discovery/workspaces/detector.d.ts +21 -0
  208. package/dist/plugins/discovery/workspaces/detector.d.ts.map +1 -0
  209. package/dist/plugins/discovery/workspaces/detector.js +49 -0
  210. package/dist/plugins/discovery/workspaces/globResolver.d.ts +35 -0
  211. package/dist/plugins/discovery/workspaces/globResolver.d.ts.map +1 -0
  212. package/dist/plugins/discovery/workspaces/globResolver.js +184 -0
  213. package/dist/plugins/discovery/workspaces/index.d.ts +9 -0
  214. package/dist/plugins/discovery/workspaces/index.d.ts.map +1 -0
  215. package/dist/plugins/discovery/workspaces/index.js +8 -0
  216. package/dist/plugins/discovery/workspaces/parsers.d.ts +38 -0
  217. package/dist/plugins/discovery/workspaces/parsers.d.ts.map +1 -0
  218. package/dist/plugins/discovery/workspaces/parsers.js +80 -0
  219. package/dist/plugins/enrichment/AliasTracker.d.ts.map +1 -1
  220. package/dist/plugins/enrichment/AliasTracker.js +14 -8
  221. package/dist/plugins/enrichment/HTTPConnectionEnricher.d.ts.map +1 -1
  222. package/dist/plugins/enrichment/HTTPConnectionEnricher.js +14 -7
  223. package/dist/plugins/enrichment/ImportExportLinker.d.ts.map +1 -1
  224. package/dist/plugins/enrichment/ImportExportLinker.js +23 -6
  225. package/dist/plugins/enrichment/MethodCallResolver.d.ts.map +1 -1
  226. package/dist/plugins/enrichment/MethodCallResolver.js +18 -12
  227. package/dist/plugins/enrichment/MountPointResolver.d.ts.map +1 -1
  228. package/dist/plugins/enrichment/MountPointResolver.js +8 -3
  229. package/dist/plugins/enrichment/PrefixEvaluator.d.ts.map +1 -1
  230. package/dist/plugins/enrichment/PrefixEvaluator.js +16 -7
  231. package/dist/plugins/enrichment/RustFFIEnricher.d.ts.map +1 -1
  232. package/dist/plugins/enrichment/RustFFIEnricher.js +6 -5
  233. package/dist/plugins/enrichment/ValueDomainAnalyzer.d.ts +17 -0
  234. package/dist/plugins/enrichment/ValueDomainAnalyzer.d.ts.map +1 -1
  235. package/dist/plugins/enrichment/ValueDomainAnalyzer.js +129 -10
  236. package/dist/plugins/indexing/IncrementalModuleIndexer.d.ts.map +1 -1
  237. package/dist/plugins/indexing/IncrementalModuleIndexer.js +23 -14
  238. package/dist/plugins/indexing/JSModuleIndexer.d.ts.map +1 -1
  239. package/dist/plugins/indexing/JSModuleIndexer.js +63 -31
  240. package/dist/plugins/indexing/RustModuleIndexer.d.ts.map +1 -1
  241. package/dist/plugins/indexing/RustModuleIndexer.js +5 -4
  242. package/dist/plugins/indexing/ServiceDetector.d.ts +10 -0
  243. package/dist/plugins/indexing/ServiceDetector.d.ts.map +1 -1
  244. package/dist/plugins/indexing/ServiceDetector.js +28 -15
  245. package/dist/plugins/validation/CallResolverValidator.d.ts.map +1 -1
  246. package/dist/plugins/validation/CallResolverValidator.js +8 -7
  247. package/dist/plugins/validation/DataFlowValidator.d.ts.map +1 -1
  248. package/dist/plugins/validation/DataFlowValidator.js +17 -12
  249. package/dist/plugins/validation/EvalBanValidator.d.ts.map +1 -1
  250. package/dist/plugins/validation/EvalBanValidator.js +17 -16
  251. package/dist/plugins/validation/GraphConnectivityValidator.d.ts.map +1 -1
  252. package/dist/plugins/validation/GraphConnectivityValidator.js +19 -23
  253. package/dist/plugins/validation/NodeCreationValidator.d.ts +85 -0
  254. package/dist/plugins/validation/NodeCreationValidator.d.ts.map +1 -0
  255. package/dist/plugins/validation/NodeCreationValidator.js +415 -0
  256. package/dist/plugins/validation/SQLInjectionValidator.d.ts.map +1 -1
  257. package/dist/plugins/validation/SQLInjectionValidator.js +59 -16
  258. package/dist/plugins/validation/ShadowingDetector.d.ts.map +1 -1
  259. package/dist/plugins/validation/ShadowingDetector.js +6 -5
  260. package/dist/plugins/validation/TypeScriptDeadCodeValidator.d.ts.map +1 -1
  261. package/dist/plugins/validation/TypeScriptDeadCodeValidator.js +12 -11
  262. package/dist/plugins/vcs/GitPlugin.d.ts.map +1 -1
  263. package/dist/plugins/vcs/GitPlugin.js +10 -12
  264. package/dist/plugins/vcs/VCSPlugin.d.ts +3 -2
  265. package/dist/plugins/vcs/VCSPlugin.d.ts.map +1 -1
  266. package/dist/plugins/vcs/VCSPlugin.js +5 -5
  267. package/dist/storage/backends/RFDBServerBackend.d.ts +10 -17
  268. package/dist/storage/backends/RFDBServerBackend.d.ts.map +1 -1
  269. package/dist/storage/backends/RFDBServerBackend.js +31 -10
  270. package/dist/validation/PathValidator.d.ts +1 -2
  271. package/dist/validation/PathValidator.d.ts.map +1 -1
  272. package/package.json +3 -3
  273. package/src/Orchestrator.ts +237 -24
  274. package/src/config/ConfigLoader.ts +263 -0
  275. package/src/config/index.ts +5 -0
  276. package/src/core/ASTWorker.ts +143 -139
  277. package/src/core/CoverageAnalyzer.ts +243 -0
  278. package/src/core/FileNodeManager.ts +100 -0
  279. package/src/core/GraphFreshnessChecker.ts +143 -0
  280. package/src/core/HashUtils.ts +48 -0
  281. package/src/core/IncrementalReanalyzer.ts +192 -0
  282. package/src/core/NodeFactory.ts +401 -18
  283. package/src/core/ScopeTracker.ts +154 -0
  284. package/src/core/SemanticId.ts +192 -0
  285. package/src/core/VersionManager.ts +3 -2
  286. package/src/core/nodes/ArgumentExpressionNode.ts +89 -0
  287. package/src/core/nodes/ArrayLiteralNode.ts +65 -0
  288. package/src/core/nodes/CallSiteNode.ts +58 -0
  289. package/src/core/nodes/ClassNode.ts +63 -2
  290. package/src/core/nodes/DecoratorNode.ts +91 -0
  291. package/src/core/nodes/EnumNode.ts +86 -0
  292. package/src/core/nodes/ExportNode.ts +70 -2
  293. package/src/core/nodes/ExpressionNode.ts +231 -0
  294. package/src/core/nodes/ExternalModuleNode.ts +56 -0
  295. package/src/core/nodes/ExternalStdioNode.ts +17 -9
  296. package/src/core/nodes/FunctionNode.ts +101 -1
  297. package/src/core/nodes/ImportNode.ts +32 -10
  298. package/src/core/nodes/InterfaceNode.ts +91 -0
  299. package/src/core/nodes/IssueNode.ts +177 -0
  300. package/src/core/nodes/MethodCallNode.ts +64 -0
  301. package/src/core/nodes/MethodNode.ts +63 -0
  302. package/src/core/nodes/ModuleNode.ts +50 -0
  303. package/src/core/nodes/NetworkRequestNode.ts +77 -0
  304. package/src/core/nodes/ObjectLiteralNode.ts +65 -0
  305. package/src/core/nodes/ScopeNode.ts +65 -0
  306. package/src/core/nodes/TypeNode.ts +78 -0
  307. package/src/core/nodes/VariableDeclarationNode.ts +52 -0
  308. package/src/core/nodes/index.ts +18 -1
  309. package/src/diagnostics/DiagnosticCollector.ts +163 -0
  310. package/src/diagnostics/DiagnosticReporter.ts +204 -0
  311. package/src/diagnostics/DiagnosticWriter.ts +50 -0
  312. package/src/diagnostics/index.ts +16 -0
  313. package/src/errors/GrafemaError.ts +174 -0
  314. package/src/index.ts +148 -1
  315. package/src/logging/Logger.ts +152 -0
  316. package/src/plugins/Plugin.ts +42 -0
  317. package/src/plugins/analysis/DatabaseAnalyzer.ts +14 -8
  318. package/src/plugins/analysis/ExpressAnalyzer.ts +29 -19
  319. package/src/plugins/analysis/ExpressRouteAnalyzer.ts +22 -21
  320. package/src/plugins/analysis/FetchAnalyzer.ts +39 -16
  321. package/src/plugins/analysis/IncrementalAnalysisPlugin.ts +84 -101
  322. package/src/plugins/analysis/JSASTAnalyzer.ts +1483 -503
  323. package/src/plugins/analysis/ReactAnalyzer.ts +57 -57
  324. package/src/plugins/analysis/RustAnalyzer.ts +15 -10
  325. package/src/plugins/analysis/SQLiteAnalyzer.ts +10 -7
  326. package/src/plugins/analysis/ServiceLayerAnalyzer.ts +22 -16
  327. package/src/plugins/analysis/SocketIOAnalyzer.ts +31 -22
  328. package/src/plugins/analysis/SystemDbAnalyzer.ts +16 -11
  329. package/src/plugins/analysis/ast/GraphBuilder.ts +439 -327
  330. package/src/plugins/analysis/ast/IdGenerator.ts +177 -0
  331. package/src/plugins/analysis/ast/types.ts +209 -6
  332. package/src/plugins/analysis/ast/utils/createParameterNodes.ts +104 -0
  333. package/src/plugins/analysis/ast/utils/index.ts +12 -0
  334. package/src/plugins/analysis/ast/utils/location.ts +103 -0
  335. package/src/plugins/analysis/ast/visitors/ASTVisitor.ts +11 -8
  336. package/src/plugins/analysis/ast/visitors/CallExpressionVisitor.ts +909 -83
  337. package/src/plugins/analysis/ast/visitors/ClassVisitor.ts +97 -44
  338. package/src/plugins/analysis/ast/visitors/FunctionVisitor.ts +159 -93
  339. package/src/plugins/analysis/ast/visitors/ImportExportVisitor.ts +12 -8
  340. package/src/plugins/analysis/ast/visitors/TypeScriptVisitor.ts +41 -14
  341. package/src/plugins/analysis/ast/visitors/VariableVisitor.ts +37 -17
  342. package/src/plugins/discovery/MonorepoServiceDiscovery.ts +3 -2
  343. package/src/plugins/discovery/SimpleProjectDiscovery.ts +6 -1
  344. package/src/plugins/discovery/WorkspaceDiscovery.ts +177 -0
  345. package/src/plugins/discovery/resolveSourceEntrypoint.ts +103 -0
  346. package/src/plugins/discovery/workspaces/detector.ts +63 -0
  347. package/src/plugins/discovery/workspaces/globResolver.ts +229 -0
  348. package/src/plugins/discovery/workspaces/index.ts +23 -0
  349. package/src/plugins/discovery/workspaces/parsers.ts +99 -0
  350. package/src/plugins/enrichment/AliasTracker.ts +14 -8
  351. package/src/plugins/enrichment/HTTPConnectionEnricher.ts +14 -7
  352. package/src/plugins/enrichment/ImportExportLinker.ts +24 -6
  353. package/src/plugins/enrichment/MethodCallResolver.ts +18 -12
  354. package/src/plugins/enrichment/MountPointResolver.ts +8 -3
  355. package/src/plugins/enrichment/PrefixEvaluator.ts +16 -7
  356. package/src/plugins/enrichment/RustFFIEnricher.ts +6 -5
  357. package/src/plugins/enrichment/ValueDomainAnalyzer.ts +149 -12
  358. package/src/plugins/indexing/IncrementalModuleIndexer.ts +23 -14
  359. package/src/plugins/indexing/JSModuleIndexer.ts +74 -34
  360. package/src/plugins/indexing/RustModuleIndexer.ts +5 -4
  361. package/src/plugins/validation/CallResolverValidator.ts +8 -7
  362. package/src/plugins/validation/DataFlowValidator.ts +16 -12
  363. package/src/plugins/validation/EvalBanValidator.ts +17 -16
  364. package/src/plugins/validation/GraphConnectivityValidator.ts +19 -23
  365. package/src/plugins/validation/NodeCreationValidator.ts +554 -0
  366. package/src/plugins/validation/SQLInjectionValidator.ts +61 -15
  367. package/src/plugins/validation/ShadowingDetector.ts +6 -5
  368. package/src/plugins/validation/TypeScriptDeadCodeValidator.ts +12 -11
  369. package/src/plugins/vcs/GitPlugin.ts +40 -12
  370. package/src/plugins/vcs/VCSPlugin.ts +7 -5
  371. package/src/storage/backends/RFDBServerBackend.ts +43 -29
  372. package/src/validation/PathValidator.ts +1 -1
  373. package/dist/core/AnalysisWorker.d.ts +0 -14
  374. package/dist/core/AnalysisWorker.d.ts.map +0 -1
  375. package/dist/core/AnalysisWorker.js +0 -307
  376. package/dist/core/ParallelAnalyzer.d.ts +0 -120
  377. package/dist/core/ParallelAnalyzer.d.ts.map +0 -1
  378. package/dist/core/ParallelAnalyzer.js +0 -331
  379. package/dist/core/QueueWorker.d.ts +0 -12
  380. package/dist/core/QueueWorker.d.ts.map +0 -1
  381. package/dist/core/QueueWorker.js +0 -567
  382. package/dist/core/RFDBClient.d.ts +0 -179
  383. package/dist/core/RFDBClient.d.ts.map +0 -1
  384. package/dist/core/RFDBClient.js +0 -429
  385. package/dist/plugins/discovery/ZonServiceDiscovery.d.ts +0 -19
  386. package/dist/plugins/discovery/ZonServiceDiscovery.d.ts.map +0 -1
  387. package/dist/plugins/discovery/ZonServiceDiscovery.js +0 -204
  388. package/src/core/AnalysisWorker.ts +0 -410
  389. package/src/core/ParallelAnalyzer.ts +0 -476
  390. package/src/core/QueueWorker.ts +0 -780
  391. package/src/plugins/indexing/ServiceDetector.ts +0 -230
@@ -0,0 +1,159 @@
1
+ /**
2
+ * DiagnosticReporter - Formats diagnostics for output
3
+ *
4
+ * Supports multiple output formats:
5
+ * - text: Human-readable format with severity indicators
6
+ * - json: Machine-readable JSON format for CI integration
7
+ * - csv: Spreadsheet-compatible format
8
+ *
9
+ * Usage:
10
+ * const reporter = new DiagnosticReporter(collector);
11
+ * console.log(reporter.report({ format: 'text', includeSummary: true }));
12
+ * console.log(reporter.summary());
13
+ */
14
+ /**
15
+ * DiagnosticReporter - formats diagnostics for different output formats
16
+ */
17
+ export class DiagnosticReporter {
18
+ collector;
19
+ constructor(collector) {
20
+ this.collector = collector;
21
+ }
22
+ /**
23
+ * Generate a formatted report of all diagnostics.
24
+ */
25
+ report(options) {
26
+ const diagnostics = this.collector.getAll();
27
+ if (options.format === 'json') {
28
+ return this.jsonReport(diagnostics, options);
29
+ }
30
+ else if (options.format === 'csv') {
31
+ return this.csvReport(diagnostics);
32
+ }
33
+ else {
34
+ return this.textReport(diagnostics, options);
35
+ }
36
+ }
37
+ /**
38
+ * Generate a human-readable summary of diagnostic counts.
39
+ */
40
+ summary() {
41
+ const stats = this.getStats();
42
+ if (stats.total === 0) {
43
+ return 'No issues found.';
44
+ }
45
+ const parts = [];
46
+ if (stats.fatal > 0) {
47
+ parts.push(`Fatal: ${stats.fatal}`);
48
+ }
49
+ if (stats.errors > 0) {
50
+ parts.push(`Errors: ${stats.errors}`);
51
+ }
52
+ if (stats.warnings > 0) {
53
+ parts.push(`Warnings: ${stats.warnings}`);
54
+ }
55
+ return parts.join(', ');
56
+ }
57
+ /**
58
+ * Get diagnostic statistics by severity.
59
+ */
60
+ getStats() {
61
+ const diagnostics = this.collector.getAll();
62
+ return {
63
+ total: diagnostics.length,
64
+ fatal: diagnostics.filter(d => d.severity === 'fatal').length,
65
+ errors: diagnostics.filter(d => d.severity === 'error').length,
66
+ warnings: diagnostics.filter(d => d.severity === 'warning').length,
67
+ info: diagnostics.filter(d => d.severity === 'info').length,
68
+ };
69
+ }
70
+ /**
71
+ * Generate human-readable text report.
72
+ */
73
+ textReport(diagnostics, options) {
74
+ if (diagnostics.length === 0) {
75
+ return 'No issues found.';
76
+ }
77
+ const lines = [];
78
+ for (const diag of diagnostics) {
79
+ const icon = this.getSeverityIcon(diag.severity);
80
+ const location = this.formatLocation(diag);
81
+ lines.push(`${icon} ${diag.code} ${location} ${diag.message}`);
82
+ if (diag.suggestion) {
83
+ lines.push(` Suggestion: ${diag.suggestion}`);
84
+ }
85
+ }
86
+ if (options.includeSummary) {
87
+ lines.push('');
88
+ lines.push(this.summary());
89
+ }
90
+ return lines.join('\n');
91
+ }
92
+ /**
93
+ * Generate JSON report.
94
+ */
95
+ jsonReport(diagnostics, options) {
96
+ const result = {
97
+ diagnostics,
98
+ };
99
+ if (options.includeSummary) {
100
+ result.summary = this.getStats();
101
+ }
102
+ return JSON.stringify(result, null, 2);
103
+ }
104
+ /**
105
+ * Generate CSV report.
106
+ */
107
+ csvReport(diagnostics) {
108
+ const header = 'severity,code,file,line,message,plugin,phase,suggestion';
109
+ const rows = diagnostics.map(d => [
110
+ d.severity,
111
+ d.code,
112
+ d.file || '',
113
+ d.line || '',
114
+ this.csvEscape(d.message),
115
+ d.plugin,
116
+ d.phase,
117
+ d.suggestion ? this.csvEscape(d.suggestion) : '',
118
+ ].join(','));
119
+ return [header, ...rows].join('\n');
120
+ }
121
+ /**
122
+ * Get severity indicator for text output.
123
+ */
124
+ getSeverityIcon(severity) {
125
+ switch (severity) {
126
+ case 'fatal':
127
+ return '[FATAL]';
128
+ case 'error':
129
+ return '[ERROR]';
130
+ case 'warning':
131
+ return '[WARN]';
132
+ case 'info':
133
+ return '[INFO]';
134
+ default:
135
+ return '[?]';
136
+ }
137
+ }
138
+ /**
139
+ * Format file location for display.
140
+ */
141
+ formatLocation(diag) {
142
+ if (!diag.file) {
143
+ return '';
144
+ }
145
+ if (diag.line) {
146
+ return `(${diag.file}:${diag.line})`;
147
+ }
148
+ return `(${diag.file})`;
149
+ }
150
+ /**
151
+ * Escape a value for CSV output.
152
+ * Wraps in quotes and escapes internal quotes.
153
+ */
154
+ csvEscape(value) {
155
+ // Always quote to handle commas and special characters
156
+ const escaped = value.replace(/"/g, '""');
157
+ return `"${escaped}"`;
158
+ }
159
+ }
@@ -0,0 +1,31 @@
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
+ import type { DiagnosticCollector } from './DiagnosticCollector.js';
15
+ /**
16
+ * DiagnosticWriter - writes diagnostics.log file
17
+ */
18
+ export declare class DiagnosticWriter {
19
+ /**
20
+ * Write all diagnostics to .grafema/diagnostics.log
21
+ *
22
+ * Creates the directory if it doesn't exist.
23
+ * Overwrites existing file.
24
+ */
25
+ write(collector: DiagnosticCollector, grafemaDir: string): Promise<void>;
26
+ /**
27
+ * Get the path to the diagnostics.log file
28
+ */
29
+ getLogPath(grafemaDir: string): string;
30
+ }
31
+ //# sourceMappingURL=DiagnosticWriter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DiagnosticWriter.d.ts","sourceRoot":"","sources":["../../src/diagnostics/DiagnosticWriter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAKH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAEpE;;GAEG;AACH,qBAAa,gBAAgB;IAC3B;;;;;OAKG;IACG,KAAK,CAAC,SAAS,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAc9E;;OAEG;IACH,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM;CAGvC"}
@@ -0,0 +1,43 @@
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
+ import { writeFileSync, existsSync, mkdirSync } from 'fs';
15
+ import { join, dirname } from 'path';
16
+ /**
17
+ * DiagnosticWriter - writes diagnostics.log file
18
+ */
19
+ export class DiagnosticWriter {
20
+ /**
21
+ * Write all diagnostics to .grafema/diagnostics.log
22
+ *
23
+ * Creates the directory if it doesn't exist.
24
+ * Overwrites existing file.
25
+ */
26
+ async write(collector, grafemaDir) {
27
+ const logPath = this.getLogPath(grafemaDir);
28
+ // Create directory if it doesn't exist
29
+ const dir = dirname(logPath);
30
+ if (!existsSync(dir)) {
31
+ mkdirSync(dir, { recursive: true });
32
+ }
33
+ // Write diagnostics as JSON lines
34
+ const content = collector.toDiagnosticsLog();
35
+ writeFileSync(logPath, content, 'utf-8');
36
+ }
37
+ /**
38
+ * Get the path to the diagnostics.log file
39
+ */
40
+ getLogPath(grafemaDir) {
41
+ return join(grafemaDir, 'diagnostics.log');
42
+ }
43
+ }
@@ -0,0 +1,14 @@
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
+ export { DiagnosticCollector } from './DiagnosticCollector.js';
10
+ export type { Diagnostic, DiagnosticInput } from './DiagnosticCollector.js';
11
+ export { DiagnosticReporter } from './DiagnosticReporter.js';
12
+ export type { ReportOptions, SummaryStats } from './DiagnosticReporter.js';
13
+ export { DiagnosticWriter } from './DiagnosticWriter.js';
14
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/diagnostics/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,YAAY,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAE5E,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAE3E,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC"}
@@ -0,0 +1,11 @@
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
+ export { DiagnosticCollector } from './DiagnosticCollector.js';
10
+ export { DiagnosticReporter } from './DiagnosticReporter.js';
11
+ export { DiagnosticWriter } from './DiagnosticWriter.js';
@@ -0,0 +1,118 @@
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
+ import type { PluginPhase } from '@grafema/types';
16
+ /**
17
+ * Context for error reporting
18
+ */
19
+ export interface ErrorContext {
20
+ filePath?: string;
21
+ lineNumber?: number;
22
+ phase?: PluginPhase;
23
+ plugin?: string;
24
+ [key: string]: unknown;
25
+ }
26
+ /**
27
+ * JSON representation of GrafemaError
28
+ */
29
+ export interface GrafemaErrorJSON {
30
+ code: string;
31
+ severity: 'fatal' | 'error' | 'warning';
32
+ message: string;
33
+ context: ErrorContext;
34
+ suggestion?: string;
35
+ }
36
+ /**
37
+ * Abstract base class for all Grafema errors.
38
+ *
39
+ * Extends native Error for compatibility with PluginResult.errors[].
40
+ */
41
+ export declare abstract class GrafemaError extends Error {
42
+ abstract readonly code: string;
43
+ abstract readonly severity: 'fatal' | 'error' | 'warning';
44
+ readonly context: ErrorContext;
45
+ readonly suggestion?: string;
46
+ constructor(message: string, context?: ErrorContext, suggestion?: string);
47
+ /**
48
+ * Serialize error to JSON for diagnostics.log
49
+ */
50
+ toJSON(): GrafemaErrorJSON;
51
+ }
52
+ /**
53
+ * Configuration error - config.json parsing, validation, missing required fields
54
+ *
55
+ * Severity: fatal (always)
56
+ * Codes: ERR_CONFIG_INVALID, ERR_CONFIG_MISSING_FIELD
57
+ */
58
+ export declare class ConfigError extends GrafemaError {
59
+ readonly code: string;
60
+ readonly severity: "fatal";
61
+ constructor(message: string, code: string, context?: ErrorContext, suggestion?: string);
62
+ }
63
+ /**
64
+ * File access error - unreadable files, missing git, permissions
65
+ *
66
+ * Severity: error (default)
67
+ * Codes: ERR_FILE_UNREADABLE, ERR_GIT_NOT_FOUND, ERR_GIT_ACCESS_DENIED
68
+ */
69
+ export declare class FileAccessError extends GrafemaError {
70
+ readonly code: string;
71
+ readonly severity: "error";
72
+ constructor(message: string, code: string, context?: ErrorContext, suggestion?: string);
73
+ }
74
+ /**
75
+ * Language error - unsupported file type, unparseable syntax
76
+ *
77
+ * Severity: warning (always)
78
+ * Codes: ERR_UNSUPPORTED_LANG, ERR_PARSE_FAILURE
79
+ */
80
+ export declare class LanguageError extends GrafemaError {
81
+ readonly code: string;
82
+ readonly severity: "warning";
83
+ constructor(message: string, code: string, context?: ErrorContext, suggestion?: string);
84
+ }
85
+ /**
86
+ * Database error - RFDB connection, corruption, lock
87
+ *
88
+ * Severity: fatal (always)
89
+ * Codes: ERR_DATABASE_LOCKED, ERR_DATABASE_CORRUPTED
90
+ */
91
+ export declare class DatabaseError extends GrafemaError {
92
+ readonly code: string;
93
+ readonly severity: "fatal";
94
+ constructor(message: string, code: string, context?: ErrorContext, suggestion?: string);
95
+ }
96
+ /**
97
+ * Plugin error - plugin execution failed, dependency missing
98
+ *
99
+ * Severity: error (default)
100
+ * Codes: ERR_PLUGIN_FAILED, ERR_PLUGIN_DEPENDENCY_MISSING
101
+ */
102
+ export declare class PluginError extends GrafemaError {
103
+ readonly code: string;
104
+ readonly severity: "error";
105
+ constructor(message: string, code: string, context?: ErrorContext, suggestion?: string);
106
+ }
107
+ /**
108
+ * Analysis error - internal analyzer failure, timeout
109
+ *
110
+ * Severity: error (default)
111
+ * Codes: ERR_ANALYSIS_TIMEOUT, ERR_ANALYSIS_INTERNAL
112
+ */
113
+ export declare class AnalysisError extends GrafemaError {
114
+ readonly code: string;
115
+ readonly severity: "error";
116
+ constructor(message: string, code: string, context?: ErrorContext, suggestion?: string);
117
+ }
118
+ //# sourceMappingURL=GrafemaError.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GrafemaError.d.ts","sourceRoot":"","sources":["../../src/errors/GrafemaError.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,131 @@
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
+ * Abstract base class for all Grafema errors.
17
+ *
18
+ * Extends native Error for compatibility with PluginResult.errors[].
19
+ */
20
+ export class GrafemaError extends Error {
21
+ context;
22
+ suggestion;
23
+ constructor(message, context = {}, suggestion) {
24
+ super(message);
25
+ this.name = this.constructor.name;
26
+ this.context = context;
27
+ this.suggestion = suggestion;
28
+ // Ensure proper prototype chain for instanceof checks
29
+ Object.setPrototypeOf(this, new.target.prototype);
30
+ // Capture stack trace (V8 specific)
31
+ if (Error.captureStackTrace) {
32
+ Error.captureStackTrace(this, this.constructor);
33
+ }
34
+ }
35
+ /**
36
+ * Serialize error to JSON for diagnostics.log
37
+ */
38
+ toJSON() {
39
+ return {
40
+ code: this.code,
41
+ severity: this.severity,
42
+ message: this.message,
43
+ context: this.context,
44
+ suggestion: this.suggestion,
45
+ };
46
+ }
47
+ }
48
+ /**
49
+ * Configuration error - config.json parsing, validation, missing required fields
50
+ *
51
+ * Severity: fatal (always)
52
+ * Codes: ERR_CONFIG_INVALID, ERR_CONFIG_MISSING_FIELD
53
+ */
54
+ export class ConfigError extends GrafemaError {
55
+ code;
56
+ severity = 'fatal';
57
+ constructor(message, code, context = {}, suggestion) {
58
+ super(message, context, suggestion);
59
+ this.code = code;
60
+ }
61
+ }
62
+ /**
63
+ * File access error - unreadable files, missing git, permissions
64
+ *
65
+ * Severity: error (default)
66
+ * Codes: ERR_FILE_UNREADABLE, ERR_GIT_NOT_FOUND, ERR_GIT_ACCESS_DENIED
67
+ */
68
+ export class FileAccessError extends GrafemaError {
69
+ code;
70
+ severity = 'error';
71
+ constructor(message, code, context = {}, suggestion) {
72
+ super(message, context, suggestion);
73
+ this.code = code;
74
+ }
75
+ }
76
+ /**
77
+ * Language error - unsupported file type, unparseable syntax
78
+ *
79
+ * Severity: warning (always)
80
+ * Codes: ERR_UNSUPPORTED_LANG, ERR_PARSE_FAILURE
81
+ */
82
+ export class LanguageError extends GrafemaError {
83
+ code;
84
+ severity = 'warning';
85
+ constructor(message, code, context = {}, suggestion) {
86
+ super(message, context, suggestion);
87
+ this.code = code;
88
+ }
89
+ }
90
+ /**
91
+ * Database error - RFDB connection, corruption, lock
92
+ *
93
+ * Severity: fatal (always)
94
+ * Codes: ERR_DATABASE_LOCKED, ERR_DATABASE_CORRUPTED
95
+ */
96
+ export class DatabaseError extends GrafemaError {
97
+ code;
98
+ severity = 'fatal';
99
+ constructor(message, code, context = {}, suggestion) {
100
+ super(message, context, suggestion);
101
+ this.code = code;
102
+ }
103
+ }
104
+ /**
105
+ * Plugin error - plugin execution failed, dependency missing
106
+ *
107
+ * Severity: error (default)
108
+ * Codes: ERR_PLUGIN_FAILED, ERR_PLUGIN_DEPENDENCY_MISSING
109
+ */
110
+ export class PluginError extends GrafemaError {
111
+ code;
112
+ severity = 'error';
113
+ constructor(message, code, context = {}, suggestion) {
114
+ super(message, context, suggestion);
115
+ this.code = code;
116
+ }
117
+ }
118
+ /**
119
+ * Analysis error - internal analyzer failure, timeout
120
+ *
121
+ * Severity: error (default)
122
+ * Codes: ERR_ANALYSIS_TIMEOUT, ERR_ANALYSIS_INTERNAL
123
+ */
124
+ export class AnalysisError extends GrafemaError {
125
+ code;
126
+ severity = 'error';
127
+ constructor(message, code, context = {}, suggestion) {
128
+ super(message, context, suggestion);
129
+ this.code = code;
130
+ }
131
+ }
package/dist/index.d.ts CHANGED
@@ -1,6 +1,14 @@
1
1
  /**
2
2
  * @grafema/core - Core analysis engine for GraphDD
3
3
  */
4
+ export { GrafemaError, ConfigError, FileAccessError, LanguageError, DatabaseError, PluginError, AnalysisError, } from './errors/GrafemaError.js';
5
+ export type { ErrorContext, GrafemaErrorJSON } from './errors/GrafemaError.js';
6
+ export { Logger, ConsoleLogger, createLogger } from './logging/Logger.js';
7
+ export type { LogLevel } from './logging/Logger.js';
8
+ export { DiagnosticCollector, DiagnosticReporter, DiagnosticWriter } from './diagnostics/index.js';
9
+ export type { Diagnostic, DiagnosticInput, ReportOptions, SummaryStats } from './diagnostics/index.js';
10
+ export { loadConfig, DEFAULT_CONFIG } from './config/index.js';
11
+ export type { GrafemaConfig } from './config/index.js';
4
12
  export { Orchestrator } from './Orchestrator.js';
5
13
  export type { OrchestratorOptions, ProgressCallback, ProgressInfo, ParallelConfig, ServiceInfo, EntrypointInfo, DiscoveryManifest, IndexingUnit, } from './Orchestrator.js';
6
14
  export { Plugin } from './plugins/Plugin.js';
@@ -11,17 +19,55 @@ export { RFDBClient } from '@grafema/rfdb-client';
11
19
  export { RFDBServerBackend } from './storage/backends/RFDBServerBackend.js';
12
20
  export { NodeFactory } from './core/NodeFactory.js';
13
21
  export { Profiler } from './core/Profiler.js';
22
+ export { computeSemanticId, parseSemanticId, computeDiscriminator } from './core/SemanticId.js';
23
+ export type { Location, ScopeContext, SemanticIdOptions, ParsedSemanticId, LocatedItem } from './core/SemanticId.js';
24
+ export { ScopeTracker } from './core/ScopeTracker.js';
25
+ export type { ScopeEntry, CountedScopeResult } from './core/ScopeTracker.js';
14
26
  export { AnalysisQueue } from './core/AnalysisQueue.js';
27
+ export { ASTWorkerPool, type ModuleInfo as ASTModuleInfo, type ParseResult, type ASTWorkerPoolStats } from './core/ASTWorkerPool.js';
15
28
  export { GuaranteeManager } from './core/GuaranteeManager.js';
16
29
  export type { GuaranteeGraph } from './core/GuaranteeManager.js';
30
+ export { clearFileNodesIfNeeded, clearServiceNodeIfExists } from './core/FileNodeManager.js';
31
+ export { CoverageAnalyzer } from './core/CoverageAnalyzer.js';
32
+ export type { CoverageResult } from './core/CoverageAnalyzer.js';
33
+ export { calculateFileHash, calculateFileHashAsync, calculateContentHash } from './core/HashUtils.js';
34
+ export { levenshtein, checkTypoAgainstKnownTypes, resetKnownNodeTypes, getKnownNodeTypes } from './storage/backends/typeValidation.js';
35
+ export { PathValidator } from './validation/PathValidator.js';
36
+ export type { PathValidationResult, EndpointDiff } from './validation/PathValidator.js';
37
+ export { VersionManager, versionManager } from './core/VersionManager.js';
38
+ export type { VersionedNode, VersionConstants, EnrichOptions, ModifiedNodeInfo, ChangesSummary, ClassifyChangesResult } from './core/VersionManager.js';
39
+ export { GraphFreshnessChecker } from './core/GraphFreshnessChecker.js';
40
+ export type { FreshnessGraph, FreshnessResult, StaleModule } from './core/GraphFreshnessChecker.js';
41
+ export { IncrementalReanalyzer } from './core/IncrementalReanalyzer.js';
42
+ export type { ReanalysisOptions, ReanalysisProgress, ReanalysisResult } from './core/IncrementalReanalyzer.js';
17
43
  export { GraphAPI } from './api/GraphAPI.js';
18
44
  export { GuaranteeAPI } from './api/GuaranteeAPI.js';
19
45
  export type { GuaranteeGraphBackend } from './api/GuaranteeAPI.js';
20
46
  export { isGuaranteeType } from './core/nodes/NodeKind.js';
47
+ export { IssueNode, type IssueNodeRecord, type IssueSeverity, type IssueType } from './core/nodes/IssueNode.js';
48
+ export { FunctionNode } from './core/nodes/FunctionNode.js';
49
+ export { CallSiteNode } from './core/nodes/CallSiteNode.js';
50
+ export { MethodCallNode } from './core/nodes/MethodCallNode.js';
51
+ export { ScopeNode } from './core/nodes/ScopeNode.js';
52
+ export { ClassNode } from './core/nodes/ClassNode.js';
53
+ export { MethodNode } from './core/nodes/MethodNode.js';
54
+ export { ExportNode } from './core/nodes/ExportNode.js';
55
+ export { VariableDeclarationNode } from './core/nodes/VariableDeclarationNode.js';
56
+ export { ExternalModuleNode } from './core/nodes/ExternalModuleNode.js';
57
+ export { NetworkRequestNode } from './core/nodes/NetworkRequestNode.js';
58
+ export { InterfaceNode, type InterfacePropertyRecord } from './core/nodes/InterfaceNode.js';
59
+ export { TypeNode } from './core/nodes/TypeNode.js';
60
+ export { EnumNode, type EnumMemberRecord } from './core/nodes/EnumNode.js';
61
+ export { DecoratorNode, type DecoratorTargetType } from './core/nodes/DecoratorNode.js';
62
+ export { ExpressionNode, type ExpressionNodeOptions } from './core/nodes/ExpressionNode.js';
63
+ export { ArgumentExpressionNode, type ArgumentExpressionNodeRecord, type ArgumentExpressionNodeOptions } from './core/nodes/ArgumentExpressionNode.js';
64
+ export { ASTVisitor, ImportExportVisitor, VariableVisitor, FunctionVisitor, ClassVisitor, CallExpressionVisitor, TypeScriptVisitor } from './plugins/analysis/ast/visitors/index.js';
65
+ export type { VisitorModule, VisitorCollections, VisitorHandlers, VisitorHandler, VariableInfo, ExtractVariableNamesCallback, TrackVariableAssignmentCallback, AnalyzeFunctionBodyCallback } from './plugins/analysis/ast/visitors/index.js';
66
+ export { getNodeLocation, getLine, getColumn, getEndLocation, UNKNOWN_LOCATION } from './plugins/analysis/ast/utils/location.js';
67
+ export type { NodeLocation } from './plugins/analysis/ast/utils/location.js';
21
68
  export { JSModuleIndexer } from './plugins/indexing/JSModuleIndexer.js';
22
69
  export { IncrementalModuleIndexer } from './plugins/indexing/IncrementalModuleIndexer.js';
23
70
  export { RustModuleIndexer } from './plugins/indexing/RustModuleIndexer.js';
24
- export { ServiceDetector } from './plugins/indexing/ServiceDetector.js';
25
71
  export { JSASTAnalyzer } from './plugins/analysis/JSASTAnalyzer.js';
26
72
  export { ExpressRouteAnalyzer } from './plugins/analysis/ExpressRouteAnalyzer.js';
27
73
  export { ExpressAnalyzer } from './plugins/analysis/ExpressAnalyzer.js';
@@ -50,8 +96,18 @@ export { ShadowingDetector } from './plugins/validation/ShadowingDetector.js';
50
96
  export { GraphConnectivityValidator } from './plugins/validation/GraphConnectivityValidator.js';
51
97
  export { DataFlowValidator } from './plugins/validation/DataFlowValidator.js';
52
98
  export { TypeScriptDeadCodeValidator } from './plugins/validation/TypeScriptDeadCodeValidator.js';
99
+ export { NodeCreationValidator } from './plugins/validation/NodeCreationValidator.js';
53
100
  export { SimpleProjectDiscovery } from './plugins/discovery/SimpleProjectDiscovery.js';
54
101
  export { DiscoveryPlugin } from './plugins/discovery/DiscoveryPlugin.js';
55
102
  export { MonorepoServiceDiscovery } from './plugins/discovery/MonorepoServiceDiscovery.js';
103
+ export { WorkspaceDiscovery } from './plugins/discovery/WorkspaceDiscovery.js';
104
+ export { resolveSourceEntrypoint } from './plugins/discovery/resolveSourceEntrypoint.js';
105
+ export type { PackageJsonForResolution } from './plugins/discovery/resolveSourceEntrypoint.js';
106
+ export { detectWorkspaceType, parsePnpmWorkspace, parseNpmWorkspace, parseLernaConfig, resolveWorkspacePackages } from './plugins/discovery/workspaces/index.js';
107
+ export type { WorkspaceType, WorkspaceDetectionResult, WorkspaceConfig, WorkspacePackage } from './plugins/discovery/workspaces/index.js';
108
+ export { GitPlugin } from './plugins/vcs/GitPlugin.js';
109
+ export { VCSPlugin, VCSPluginFactory, FileStatus } from './plugins/vcs/VCSPlugin.js';
110
+ export type { VCSConfig, VCSPluginMetadata, ChangedFile, FileDiff, DiffHunk, } from './plugins/vcs/VCSPlugin.js';
111
+ export type { CommitInfo } from './plugins/vcs/GitPlugin.js';
56
112
  export type * from '@grafema/types';
57
113
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}