@grafema/core 0.1.0-alpha.1

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 (402) hide show
  1. package/LICENSE +190 -0
  2. package/README.md +76 -0
  3. package/dist/Orchestrator.d.ts +142 -0
  4. package/dist/Orchestrator.d.ts.map +1 -0
  5. package/dist/Orchestrator.js +481 -0
  6. package/dist/api/GraphAPI.d.ts +87 -0
  7. package/dist/api/GraphAPI.d.ts.map +1 -0
  8. package/dist/api/GraphAPI.js +210 -0
  9. package/dist/api/GuaranteeAPI.d.ts +147 -0
  10. package/dist/api/GuaranteeAPI.d.ts.map +1 -0
  11. package/dist/api/GuaranteeAPI.js +288 -0
  12. package/dist/core/ASTWorker.d.ts +133 -0
  13. package/dist/core/ASTWorker.d.ts.map +1 -0
  14. package/dist/core/ASTWorker.js +352 -0
  15. package/dist/core/ASTWorkerPool.d.ts +85 -0
  16. package/dist/core/ASTWorkerPool.d.ts.map +1 -0
  17. package/dist/core/ASTWorkerPool.js +207 -0
  18. package/dist/core/AnalysisQueue.d.ts +104 -0
  19. package/dist/core/AnalysisQueue.d.ts.map +1 -0
  20. package/dist/core/AnalysisQueue.js +299 -0
  21. package/dist/core/AnalysisWorker.d.ts +14 -0
  22. package/dist/core/AnalysisWorker.d.ts.map +1 -0
  23. package/dist/core/AnalysisWorker.js +307 -0
  24. package/dist/core/GraphBackend.d.ts +156 -0
  25. package/dist/core/GraphBackend.d.ts.map +1 -0
  26. package/dist/core/GraphBackend.js +85 -0
  27. package/dist/core/GuaranteeManager.d.ts +230 -0
  28. package/dist/core/GuaranteeManager.d.ts.map +1 -0
  29. package/dist/core/GuaranteeManager.js +352 -0
  30. package/dist/core/ManifestStore.d.ts +71 -0
  31. package/dist/core/ManifestStore.d.ts.map +1 -0
  32. package/dist/core/ManifestStore.js +146 -0
  33. package/dist/core/NodeFactory.d.ts +160 -0
  34. package/dist/core/NodeFactory.d.ts.map +1 -0
  35. package/dist/core/NodeFactory.js +137 -0
  36. package/dist/core/NodeId.d.ts +88 -0
  37. package/dist/core/NodeId.d.ts.map +1 -0
  38. package/dist/core/NodeId.js +170 -0
  39. package/dist/core/ParallelAnalyzer.d.ts +120 -0
  40. package/dist/core/ParallelAnalyzer.d.ts.map +1 -0
  41. package/dist/core/ParallelAnalyzer.js +331 -0
  42. package/dist/core/PriorityQueue.d.ts +106 -0
  43. package/dist/core/PriorityQueue.d.ts.map +1 -0
  44. package/dist/core/PriorityQueue.js +168 -0
  45. package/dist/core/Profiler.d.ts +75 -0
  46. package/dist/core/Profiler.d.ts.map +1 -0
  47. package/dist/core/Profiler.js +149 -0
  48. package/dist/core/QueueWorker.d.ts +12 -0
  49. package/dist/core/QueueWorker.d.ts.map +1 -0
  50. package/dist/core/QueueWorker.js +567 -0
  51. package/dist/core/RFDBClient.d.ts +179 -0
  52. package/dist/core/RFDBClient.d.ts.map +1 -0
  53. package/dist/core/RFDBClient.js +429 -0
  54. package/dist/core/Task.d.ts +56 -0
  55. package/dist/core/Task.d.ts.map +1 -0
  56. package/dist/core/Task.js +85 -0
  57. package/dist/core/TaskTypes.d.ts +20 -0
  58. package/dist/core/TaskTypes.d.ts.map +1 -0
  59. package/dist/core/TaskTypes.js +10 -0
  60. package/dist/core/VersionManager.d.ts +166 -0
  61. package/dist/core/VersionManager.d.ts.map +1 -0
  62. package/dist/core/VersionManager.js +237 -0
  63. package/dist/core/WorkerPool.d.ts +82 -0
  64. package/dist/core/WorkerPool.d.ts.map +1 -0
  65. package/dist/core/WorkerPool.js +109 -0
  66. package/dist/core/nodes/CallSiteNode.d.ts +26 -0
  67. package/dist/core/nodes/CallSiteNode.d.ts.map +1 -0
  68. package/dist/core/nodes/CallSiteNode.js +44 -0
  69. package/dist/core/nodes/ClassNode.d.ts +25 -0
  70. package/dist/core/nodes/ClassNode.d.ts.map +1 -0
  71. package/dist/core/nodes/ClassNode.js +40 -0
  72. package/dist/core/nodes/ConstantNode.d.ts +24 -0
  73. package/dist/core/nodes/ConstantNode.d.ts.map +1 -0
  74. package/dist/core/nodes/ConstantNode.js +39 -0
  75. package/dist/core/nodes/DatabaseQueryNode.d.ts +22 -0
  76. package/dist/core/nodes/DatabaseQueryNode.d.ts.map +1 -0
  77. package/dist/core/nodes/DatabaseQueryNode.js +37 -0
  78. package/dist/core/nodes/EntrypointNode.d.ts +102 -0
  79. package/dist/core/nodes/EntrypointNode.d.ts.map +1 -0
  80. package/dist/core/nodes/EntrypointNode.js +119 -0
  81. package/dist/core/nodes/EventListenerNode.d.ts +25 -0
  82. package/dist/core/nodes/EventListenerNode.d.ts.map +1 -0
  83. package/dist/core/nodes/EventListenerNode.js +39 -0
  84. package/dist/core/nodes/ExportNode.d.ts +26 -0
  85. package/dist/core/nodes/ExportNode.d.ts.map +1 -0
  86. package/dist/core/nodes/ExportNode.js +40 -0
  87. package/dist/core/nodes/ExternalStdioNode.d.ts +17 -0
  88. package/dist/core/nodes/ExternalStdioNode.d.ts.map +1 -0
  89. package/dist/core/nodes/ExternalStdioNode.js +26 -0
  90. package/dist/core/nodes/FunctionNode.d.ts +27 -0
  91. package/dist/core/nodes/FunctionNode.d.ts.map +1 -0
  92. package/dist/core/nodes/FunctionNode.js +53 -0
  93. package/dist/core/nodes/GuaranteeNode.d.ts +76 -0
  94. package/dist/core/nodes/GuaranteeNode.d.ts.map +1 -0
  95. package/dist/core/nodes/GuaranteeNode.js +117 -0
  96. package/dist/core/nodes/HttpRequestNode.d.ts +24 -0
  97. package/dist/core/nodes/HttpRequestNode.d.ts.map +1 -0
  98. package/dist/core/nodes/HttpRequestNode.js +38 -0
  99. package/dist/core/nodes/ImportNode.d.ts +27 -0
  100. package/dist/core/nodes/ImportNode.d.ts.map +1 -0
  101. package/dist/core/nodes/ImportNode.js +43 -0
  102. package/dist/core/nodes/LiteralNode.d.ts +26 -0
  103. package/dist/core/nodes/LiteralNode.d.ts.map +1 -0
  104. package/dist/core/nodes/LiteralNode.js +40 -0
  105. package/dist/core/nodes/MethodCallNode.d.ts +29 -0
  106. package/dist/core/nodes/MethodCallNode.d.ts.map +1 -0
  107. package/dist/core/nodes/MethodCallNode.js +47 -0
  108. package/dist/core/nodes/MethodNode.d.ts +29 -0
  109. package/dist/core/nodes/MethodNode.d.ts.map +1 -0
  110. package/dist/core/nodes/MethodNode.js +44 -0
  111. package/dist/core/nodes/ModuleNode.d.ts +29 -0
  112. package/dist/core/nodes/ModuleNode.d.ts.map +1 -0
  113. package/dist/core/nodes/ModuleNode.js +49 -0
  114. package/dist/core/nodes/NodeKind.d.ts +91 -0
  115. package/dist/core/nodes/NodeKind.d.ts.map +1 -0
  116. package/dist/core/nodes/NodeKind.js +146 -0
  117. package/dist/core/nodes/ParameterNode.d.ts +26 -0
  118. package/dist/core/nodes/ParameterNode.d.ts.map +1 -0
  119. package/dist/core/nodes/ParameterNode.js +43 -0
  120. package/dist/core/nodes/ScopeNode.d.ts +32 -0
  121. package/dist/core/nodes/ScopeNode.d.ts.map +1 -0
  122. package/dist/core/nodes/ScopeNode.js +47 -0
  123. package/dist/core/nodes/ServiceNode.d.ts +44 -0
  124. package/dist/core/nodes/ServiceNode.d.ts.map +1 -0
  125. package/dist/core/nodes/ServiceNode.js +49 -0
  126. package/dist/core/nodes/VariableDeclarationNode.d.ts +22 -0
  127. package/dist/core/nodes/VariableDeclarationNode.d.ts.map +1 -0
  128. package/dist/core/nodes/VariableDeclarationNode.js +38 -0
  129. package/dist/core/nodes/index.d.ts +25 -0
  130. package/dist/core/nodes/index.d.ts.map +1 -0
  131. package/dist/core/nodes/index.js +30 -0
  132. package/dist/index.d.ts +57 -0
  133. package/dist/index.d.ts.map +1 -0
  134. package/dist/index.js +63 -0
  135. package/dist/plugins/Plugin.d.ts +44 -0
  136. package/dist/plugins/Plugin.d.ts.map +1 -0
  137. package/dist/plugins/Plugin.js +46 -0
  138. package/dist/plugins/analysis/DatabaseAnalyzer.d.ts +23 -0
  139. package/dist/plugins/analysis/DatabaseAnalyzer.d.ts.map +1 -0
  140. package/dist/plugins/analysis/DatabaseAnalyzer.js +260 -0
  141. package/dist/plugins/analysis/ExpressAnalyzer.d.ts +19 -0
  142. package/dist/plugins/analysis/ExpressAnalyzer.d.ts.map +1 -0
  143. package/dist/plugins/analysis/ExpressAnalyzer.js +306 -0
  144. package/dist/plugins/analysis/ExpressRouteAnalyzer.d.ts +17 -0
  145. package/dist/plugins/analysis/ExpressRouteAnalyzer.d.ts.map +1 -0
  146. package/dist/plugins/analysis/ExpressRouteAnalyzer.js +308 -0
  147. package/dist/plugins/analysis/FetchAnalyzer.d.ts +38 -0
  148. package/dist/plugins/analysis/FetchAnalyzer.d.ts.map +1 -0
  149. package/dist/plugins/analysis/FetchAnalyzer.js +344 -0
  150. package/dist/plugins/analysis/IncrementalAnalysisPlugin.d.ts +65 -0
  151. package/dist/plugins/analysis/IncrementalAnalysisPlugin.d.ts.map +1 -0
  152. package/dist/plugins/analysis/IncrementalAnalysisPlugin.js +472 -0
  153. package/dist/plugins/analysis/JSASTAnalyzer.d.ts +84 -0
  154. package/dist/plugins/analysis/JSASTAnalyzer.d.ts.map +1 -0
  155. package/dist/plugins/analysis/JSASTAnalyzer.js +1378 -0
  156. package/dist/plugins/analysis/ReactAnalyzer.d.ts +90 -0
  157. package/dist/plugins/analysis/ReactAnalyzer.d.ts.map +1 -0
  158. package/dist/plugins/analysis/ReactAnalyzer.js +1153 -0
  159. package/dist/plugins/analysis/RustAnalyzer.d.ts +13 -0
  160. package/dist/plugins/analysis/RustAnalyzer.d.ts.map +1 -0
  161. package/dist/plugins/analysis/RustAnalyzer.js +259 -0
  162. package/dist/plugins/analysis/SQLiteAnalyzer.d.ts +21 -0
  163. package/dist/plugins/analysis/SQLiteAnalyzer.d.ts.map +1 -0
  164. package/dist/plugins/analysis/SQLiteAnalyzer.js +317 -0
  165. package/dist/plugins/analysis/ServiceLayerAnalyzer.d.ts +35 -0
  166. package/dist/plugins/analysis/ServiceLayerAnalyzer.d.ts.map +1 -0
  167. package/dist/plugins/analysis/ServiceLayerAnalyzer.js +303 -0
  168. package/dist/plugins/analysis/SocketIOAnalyzer.d.ts +33 -0
  169. package/dist/plugins/analysis/SocketIOAnalyzer.d.ts.map +1 -0
  170. package/dist/plugins/analysis/SocketIOAnalyzer.js +283 -0
  171. package/dist/plugins/analysis/SystemDbAnalyzer.d.ts +27 -0
  172. package/dist/plugins/analysis/SystemDbAnalyzer.d.ts.map +1 -0
  173. package/dist/plugins/analysis/SystemDbAnalyzer.js +211 -0
  174. package/dist/plugins/analysis/ast/ConditionParser.d.ts +85 -0
  175. package/dist/plugins/analysis/ast/ConditionParser.d.ts.map +1 -0
  176. package/dist/plugins/analysis/ast/ConditionParser.js +277 -0
  177. package/dist/plugins/analysis/ast/ExpressionEvaluator.d.ts +15 -0
  178. package/dist/plugins/analysis/ast/ExpressionEvaluator.d.ts.map +1 -0
  179. package/dist/plugins/analysis/ast/ExpressionEvaluator.js +91 -0
  180. package/dist/plugins/analysis/ast/GraphBuilder.d.ts +77 -0
  181. package/dist/plugins/analysis/ast/GraphBuilder.d.ts.map +1 -0
  182. package/dist/plugins/analysis/ast/GraphBuilder.js +1077 -0
  183. package/dist/plugins/analysis/ast/OxcAdapter.d.ts +41 -0
  184. package/dist/plugins/analysis/ast/OxcAdapter.d.ts.map +1 -0
  185. package/dist/plugins/analysis/ast/OxcAdapter.js +40 -0
  186. package/dist/plugins/analysis/ast/types.d.ts +346 -0
  187. package/dist/plugins/analysis/ast/types.d.ts.map +1 -0
  188. package/dist/plugins/analysis/ast/types.js +4 -0
  189. package/dist/plugins/analysis/ast/visitors/ASTVisitor.d.ts +93 -0
  190. package/dist/plugins/analysis/ast/visitors/ASTVisitor.d.ts.map +1 -0
  191. package/dist/plugins/analysis/ast/visitors/ASTVisitor.js +24 -0
  192. package/dist/plugins/analysis/ast/visitors/CallExpressionVisitor.d.ts +77 -0
  193. package/dist/plugins/analysis/ast/visitors/CallExpressionVisitor.d.ts.map +1 -0
  194. package/dist/plugins/analysis/ast/visitors/CallExpressionVisitor.js +377 -0
  195. package/dist/plugins/analysis/ast/visitors/ClassVisitor.d.ts +27 -0
  196. package/dist/plugins/analysis/ast/visitors/ClassVisitor.d.ts.map +1 -0
  197. package/dist/plugins/analysis/ast/visitors/ClassVisitor.js +232 -0
  198. package/dist/plugins/analysis/ast/visitors/FunctionVisitor.d.ts +25 -0
  199. package/dist/plugins/analysis/ast/visitors/FunctionVisitor.d.ts.map +1 -0
  200. package/dist/plugins/analysis/ast/visitors/FunctionVisitor.js +172 -0
  201. package/dist/plugins/analysis/ast/visitors/ImportExportVisitor.d.ts +29 -0
  202. package/dist/plugins/analysis/ast/visitors/ImportExportVisitor.d.ts.map +1 -0
  203. package/dist/plugins/analysis/ast/visitors/ImportExportVisitor.js +180 -0
  204. package/dist/plugins/analysis/ast/visitors/TypeScriptVisitor.d.ts +14 -0
  205. package/dist/plugins/analysis/ast/visitors/TypeScriptVisitor.d.ts.map +1 -0
  206. package/dist/plugins/analysis/ast/visitors/TypeScriptVisitor.js +200 -0
  207. package/dist/plugins/analysis/ast/visitors/VariableVisitor.d.ts +45 -0
  208. package/dist/plugins/analysis/ast/visitors/VariableVisitor.d.ts.map +1 -0
  209. package/dist/plugins/analysis/ast/visitors/VariableVisitor.js +150 -0
  210. package/dist/plugins/analysis/ast/visitors/index.d.ts +17 -0
  211. package/dist/plugins/analysis/ast/visitors/index.d.ts.map +1 -0
  212. package/dist/plugins/analysis/ast/visitors/index.js +13 -0
  213. package/dist/plugins/discovery/DiscoveryPlugin.d.ts +34 -0
  214. package/dist/plugins/discovery/DiscoveryPlugin.d.ts.map +1 -0
  215. package/dist/plugins/discovery/DiscoveryPlugin.js +26 -0
  216. package/dist/plugins/discovery/MonorepoServiceDiscovery.d.ts +26 -0
  217. package/dist/plugins/discovery/MonorepoServiceDiscovery.d.ts.map +1 -0
  218. package/dist/plugins/discovery/MonorepoServiceDiscovery.js +79 -0
  219. package/dist/plugins/discovery/SimpleProjectDiscovery.d.ts +14 -0
  220. package/dist/plugins/discovery/SimpleProjectDiscovery.d.ts.map +1 -0
  221. package/dist/plugins/discovery/SimpleProjectDiscovery.js +65 -0
  222. package/dist/plugins/discovery/ZonServiceDiscovery.d.ts +19 -0
  223. package/dist/plugins/discovery/ZonServiceDiscovery.d.ts.map +1 -0
  224. package/dist/plugins/discovery/ZonServiceDiscovery.js +204 -0
  225. package/dist/plugins/enrichment/AliasTracker.d.ts +40 -0
  226. package/dist/plugins/enrichment/AliasTracker.d.ts.map +1 -0
  227. package/dist/plugins/enrichment/AliasTracker.js +290 -0
  228. package/dist/plugins/enrichment/HTTPConnectionEnricher.d.ts +30 -0
  229. package/dist/plugins/enrichment/HTTPConnectionEnricher.d.ts.map +1 -0
  230. package/dist/plugins/enrichment/HTTPConnectionEnricher.js +135 -0
  231. package/dist/plugins/enrichment/ImportExportLinker.d.ts +30 -0
  232. package/dist/plugins/enrichment/ImportExportLinker.d.ts.map +1 -0
  233. package/dist/plugins/enrichment/ImportExportLinker.js +176 -0
  234. package/dist/plugins/enrichment/InstanceOfResolver.d.ts +21 -0
  235. package/dist/plugins/enrichment/InstanceOfResolver.d.ts.map +1 -0
  236. package/dist/plugins/enrichment/InstanceOfResolver.js +117 -0
  237. package/dist/plugins/enrichment/MethodCallResolver.d.ts +41 -0
  238. package/dist/plugins/enrichment/MethodCallResolver.d.ts.map +1 -0
  239. package/dist/plugins/enrichment/MethodCallResolver.js +252 -0
  240. package/dist/plugins/enrichment/MountPointResolver.d.ts +26 -0
  241. package/dist/plugins/enrichment/MountPointResolver.d.ts.map +1 -0
  242. package/dist/plugins/enrichment/MountPointResolver.js +189 -0
  243. package/dist/plugins/enrichment/PrefixEvaluator.d.ts +89 -0
  244. package/dist/plugins/enrichment/PrefixEvaluator.d.ts.map +1 -0
  245. package/dist/plugins/enrichment/PrefixEvaluator.js +415 -0
  246. package/dist/plugins/enrichment/RustFFIEnricher.d.ts +25 -0
  247. package/dist/plugins/enrichment/RustFFIEnricher.d.ts.map +1 -0
  248. package/dist/plugins/enrichment/RustFFIEnricher.js +170 -0
  249. package/dist/plugins/enrichment/ValueDomainAnalyzer.d.ts +114 -0
  250. package/dist/plugins/enrichment/ValueDomainAnalyzer.d.ts.map +1 -0
  251. package/dist/plugins/enrichment/ValueDomainAnalyzer.js +464 -0
  252. package/dist/plugins/indexing/IncrementalModuleIndexer.d.ts +27 -0
  253. package/dist/plugins/indexing/IncrementalModuleIndexer.d.ts.map +1 -0
  254. package/dist/plugins/indexing/IncrementalModuleIndexer.js +238 -0
  255. package/dist/plugins/indexing/JSModuleIndexer.d.ts +33 -0
  256. package/dist/plugins/indexing/JSModuleIndexer.d.ts.map +1 -0
  257. package/dist/plugins/indexing/JSModuleIndexer.js +299 -0
  258. package/dist/plugins/indexing/RustModuleIndexer.d.ts +28 -0
  259. package/dist/plugins/indexing/RustModuleIndexer.d.ts.map +1 -0
  260. package/dist/plugins/indexing/RustModuleIndexer.js +140 -0
  261. package/dist/plugins/indexing/ServiceDetector.d.ts +46 -0
  262. package/dist/plugins/indexing/ServiceDetector.d.ts.map +1 -0
  263. package/dist/plugins/indexing/ServiceDetector.js +164 -0
  264. package/dist/plugins/validation/CallResolverValidator.d.ts +23 -0
  265. package/dist/plugins/validation/CallResolverValidator.d.ts.map +1 -0
  266. package/dist/plugins/validation/CallResolverValidator.js +108 -0
  267. package/dist/plugins/validation/DataFlowValidator.d.ts +24 -0
  268. package/dist/plugins/validation/DataFlowValidator.d.ts.map +1 -0
  269. package/dist/plugins/validation/DataFlowValidator.js +148 -0
  270. package/dist/plugins/validation/EvalBanValidator.d.ts +25 -0
  271. package/dist/plugins/validation/EvalBanValidator.d.ts.map +1 -0
  272. package/dist/plugins/validation/EvalBanValidator.js +123 -0
  273. package/dist/plugins/validation/GraphConnectivityValidator.d.ts +11 -0
  274. package/dist/plugins/validation/GraphConnectivityValidator.d.ts.map +1 -0
  275. package/dist/plugins/validation/GraphConnectivityValidator.js +135 -0
  276. package/dist/plugins/validation/SQLInjectionValidator.d.ts +43 -0
  277. package/dist/plugins/validation/SQLInjectionValidator.d.ts.map +1 -0
  278. package/dist/plugins/validation/SQLInjectionValidator.js +251 -0
  279. package/dist/plugins/validation/ShadowingDetector.d.ts +26 -0
  280. package/dist/plugins/validation/ShadowingDetector.d.ts.map +1 -0
  281. package/dist/plugins/validation/ShadowingDetector.js +119 -0
  282. package/dist/plugins/validation/TypeScriptDeadCodeValidator.d.ts +21 -0
  283. package/dist/plugins/validation/TypeScriptDeadCodeValidator.d.ts.map +1 -0
  284. package/dist/plugins/validation/TypeScriptDeadCodeValidator.js +151 -0
  285. package/dist/plugins/vcs/GitPlugin.d.ts +84 -0
  286. package/dist/plugins/vcs/GitPlugin.d.ts.map +1 -0
  287. package/dist/plugins/vcs/GitPlugin.js +295 -0
  288. package/dist/plugins/vcs/VCSPlugin.d.ts +133 -0
  289. package/dist/plugins/vcs/VCSPlugin.d.ts.map +1 -0
  290. package/dist/plugins/vcs/VCSPlugin.js +82 -0
  291. package/dist/plugins/vcs/index.d.ts +10 -0
  292. package/dist/plugins/vcs/index.d.ts.map +1 -0
  293. package/dist/plugins/vcs/index.js +18 -0
  294. package/dist/storage/backends/RFDBServerBackend.d.ts +258 -0
  295. package/dist/storage/backends/RFDBServerBackend.d.ts.map +1 -0
  296. package/dist/storage/backends/RFDBServerBackend.js +565 -0
  297. package/dist/storage/backends/typeValidation.d.ts +47 -0
  298. package/dist/storage/backends/typeValidation.d.ts.map +1 -0
  299. package/dist/storage/backends/typeValidation.js +137 -0
  300. package/dist/validation/PathValidator.d.ts +81 -0
  301. package/dist/validation/PathValidator.d.ts.map +1 -0
  302. package/dist/validation/PathValidator.js +251 -0
  303. package/package.json +57 -0
  304. package/src/.rfguard/current-session.txt +1 -0
  305. package/src/Orchestrator.ts +673 -0
  306. package/src/api/GraphAPI.ts +305 -0
  307. package/src/api/GuaranteeAPI.ts +401 -0
  308. package/src/core/ASTWorker.ts +567 -0
  309. package/src/core/ASTWorkerPool.ts +299 -0
  310. package/src/core/AnalysisQueue.ts +447 -0
  311. package/src/core/AnalysisWorker.ts +410 -0
  312. package/src/core/GraphBackend.ts +265 -0
  313. package/src/core/GuaranteeManager.ts +581 -0
  314. package/src/core/ManifestStore.ts +196 -0
  315. package/src/core/NodeFactory.ts +274 -0
  316. package/src/core/NodeId.ts +257 -0
  317. package/src/core/ParallelAnalyzer.ts +476 -0
  318. package/src/core/PriorityQueue.ts +227 -0
  319. package/src/core/Profiler.ts +188 -0
  320. package/src/core/QueueWorker.ts +780 -0
  321. package/src/core/Task.ts +107 -0
  322. package/src/core/TaskTypes.ts +40 -0
  323. package/src/core/VersionManager.ts +404 -0
  324. package/src/core/WorkerPool.ts +180 -0
  325. package/src/core/nodes/CallSiteNode.ts +72 -0
  326. package/src/core/nodes/ClassNode.ts +69 -0
  327. package/src/core/nodes/ConstantNode.ts +63 -0
  328. package/src/core/nodes/DatabaseQueryNode.ts +60 -0
  329. package/src/core/nodes/EntrypointNode.ts +164 -0
  330. package/src/core/nodes/EventListenerNode.ts +64 -0
  331. package/src/core/nodes/ExportNode.ts +71 -0
  332. package/src/core/nodes/ExternalStdioNode.ts +36 -0
  333. package/src/core/nodes/FunctionNode.ts +78 -0
  334. package/src/core/nodes/GuaranteeNode.ts +162 -0
  335. package/src/core/nodes/HttpRequestNode.ts +63 -0
  336. package/src/core/nodes/ImportNode.ts +75 -0
  337. package/src/core/nodes/LiteralNode.ts +67 -0
  338. package/src/core/nodes/MethodCallNode.ts +79 -0
  339. package/src/core/nodes/MethodNode.ts +78 -0
  340. package/src/core/nodes/ModuleNode.ts +74 -0
  341. package/src/core/nodes/NodeKind.ts +171 -0
  342. package/src/core/nodes/ParameterNode.ts +73 -0
  343. package/src/core/nodes/ScopeNode.ts +80 -0
  344. package/src/core/nodes/ServiceNode.ts +86 -0
  345. package/src/core/nodes/VariableDeclarationNode.ts +60 -0
  346. package/src/core/nodes/index.ts +49 -0
  347. package/src/index.ts +93 -0
  348. package/src/plugins/Plugin.ts +74 -0
  349. package/src/plugins/analysis/DatabaseAnalyzer.ts +322 -0
  350. package/src/plugins/analysis/ExpressAnalyzer.ts +401 -0
  351. package/src/plugins/analysis/ExpressRouteAnalyzer.ts +414 -0
  352. package/src/plugins/analysis/FetchAnalyzer.ts +441 -0
  353. package/src/plugins/analysis/IncrementalAnalysisPlugin.ts +686 -0
  354. package/src/plugins/analysis/JSASTAnalyzer.ts +1680 -0
  355. package/src/plugins/analysis/ReactAnalyzer.ts +1368 -0
  356. package/src/plugins/analysis/RustAnalyzer.ts +438 -0
  357. package/src/plugins/analysis/SQLiteAnalyzer.ts +388 -0
  358. package/src/plugins/analysis/ServiceLayerAnalyzer.ts +429 -0
  359. package/src/plugins/analysis/SocketIOAnalyzer.ts +395 -0
  360. package/src/plugins/analysis/SystemDbAnalyzer.ts +284 -0
  361. package/src/plugins/analysis/ast/ConditionParser.ts +333 -0
  362. package/src/plugins/analysis/ast/ExpressionEvaluator.ts +117 -0
  363. package/src/plugins/analysis/ast/GraphBuilder.ts +1371 -0
  364. package/src/plugins/analysis/ast/OxcAdapter.ts +63 -0
  365. package/src/plugins/analysis/ast/types.ts +400 -0
  366. package/src/plugins/analysis/ast/visitors/ASTVisitor.ts +137 -0
  367. package/src/plugins/analysis/ast/visitors/CallExpressionVisitor.ts +528 -0
  368. package/src/plugins/analysis/ast/visitors/ClassVisitor.ts +339 -0
  369. package/src/plugins/analysis/ast/visitors/FunctionVisitor.ts +273 -0
  370. package/src/plugins/analysis/ast/visitors/ImportExportVisitor.ts +259 -0
  371. package/src/plugins/analysis/ast/visitors/TypeScriptVisitor.ts +235 -0
  372. package/src/plugins/analysis/ast/visitors/VariableVisitor.ts +268 -0
  373. package/src/plugins/analysis/ast/visitors/index.ts +36 -0
  374. package/src/plugins/discovery/DiscoveryPlugin.ts +50 -0
  375. package/src/plugins/discovery/MonorepoServiceDiscovery.ts +117 -0
  376. package/src/plugins/discovery/SimpleProjectDiscovery.ts +102 -0
  377. package/src/plugins/enrichment/AliasTracker.ts +399 -0
  378. package/src/plugins/enrichment/HTTPConnectionEnricher.ts +192 -0
  379. package/src/plugins/enrichment/ImportExportLinker.ts +221 -0
  380. package/src/plugins/enrichment/InstanceOfResolver.ts +165 -0
  381. package/src/plugins/enrichment/MethodCallResolver.ts +333 -0
  382. package/src/plugins/enrichment/MountPointResolver.ts +264 -0
  383. package/src/plugins/enrichment/PrefixEvaluator.ts +527 -0
  384. package/src/plugins/enrichment/RustFFIEnricher.ts +218 -0
  385. package/src/plugins/enrichment/ValueDomainAnalyzer.ts +682 -0
  386. package/src/plugins/indexing/IncrementalModuleIndexer.ts +287 -0
  387. package/src/plugins/indexing/JSModuleIndexer.ts +374 -0
  388. package/src/plugins/indexing/RustModuleIndexer.ts +160 -0
  389. package/src/plugins/indexing/ServiceDetector.ts +230 -0
  390. package/src/plugins/validation/CallResolverValidator.ts +170 -0
  391. package/src/plugins/validation/DataFlowValidator.ts +233 -0
  392. package/src/plugins/validation/EvalBanValidator.ts +175 -0
  393. package/src/plugins/validation/GraphConnectivityValidator.ts +201 -0
  394. package/src/plugins/validation/SQLInjectionValidator.ts +363 -0
  395. package/src/plugins/validation/ShadowingDetector.ts +173 -0
  396. package/src/plugins/validation/TypeScriptDeadCodeValidator.ts +203 -0
  397. package/src/plugins/vcs/GitPlugin.ts +344 -0
  398. package/src/plugins/vcs/VCSPlugin.ts +190 -0
  399. package/src/plugins/vcs/index.ts +32 -0
  400. package/src/storage/backends/RFDBServerBackend.ts +687 -0
  401. package/src/storage/backends/typeValidation.ts +151 -0
  402. package/src/validation/PathValidator.ts +342 -0
@@ -0,0 +1,150 @@
1
+ /**
2
+ * VariableVisitor - handles module-level variable declarations
3
+ *
4
+ * Handles:
5
+ * - VariableDeclaration (const, let, var at module level)
6
+ * - NewExpression tracking for class instantiation
7
+ * - Destructuring patterns
8
+ */
9
+ import { ASTVisitor } from './ASTVisitor.js';
10
+ import { ExpressionEvaluator } from '../ExpressionEvaluator.js';
11
+ export class VariableVisitor extends ASTVisitor {
12
+ extractVariableNamesFromPattern;
13
+ trackVariableAssignment;
14
+ /**
15
+ * @param module - Current module being analyzed
16
+ * @param collections - Must contain arrays and counter refs
17
+ * @param extractVariableNamesFromPattern - Helper for destructuring
18
+ * @param trackVariableAssignment - Helper for data flow tracking
19
+ */
20
+ constructor(module, collections, extractVariableNamesFromPattern, trackVariableAssignment) {
21
+ super(module, collections);
22
+ this.extractVariableNamesFromPattern = extractVariableNamesFromPattern;
23
+ this.trackVariableAssignment = trackVariableAssignment;
24
+ }
25
+ getHandlers() {
26
+ const { module } = this;
27
+ const variableDeclarations = this.collections.variableDeclarations ?? [];
28
+ const classInstantiations = this.collections.classInstantiations ?? [];
29
+ const literals = (this.collections.literals ?? []);
30
+ const variableAssignments = this.collections.variableAssignments ?? [];
31
+ const varDeclCounterRef = (this.collections.varDeclCounterRef ?? { value: 0 });
32
+ const literalCounterRef = (this.collections.literalCounterRef ?? { value: 0 });
33
+ const extractVariableNamesFromPattern = this.extractVariableNamesFromPattern;
34
+ const trackVariableAssignment = this.trackVariableAssignment;
35
+ return {
36
+ VariableDeclaration: (path) => {
37
+ // Only module-level variables
38
+ const functionParent = path.getFunctionParent();
39
+ if (!functionParent) {
40
+ const varNode = path.node;
41
+ const isConst = varNode.kind === 'const';
42
+ varNode.declarations.forEach((declarator) => {
43
+ // Extract all variable names from the pattern (handles destructuring)
44
+ const variables = extractVariableNamesFromPattern(declarator.id);
45
+ variables.forEach((varInfo) => {
46
+ const literalValue = ExpressionEvaluator.extractLiteralValue(declarator.init);
47
+ const isLiteral = literalValue !== null;
48
+ const isNewExpression = declarator.init && declarator.init.type === 'NewExpression';
49
+ // For const with literal or NewExpression create CONSTANT
50
+ // For everything else - VARIABLE
51
+ const shouldBeConstant = isConst && (isLiteral || isNewExpression);
52
+ const varId = shouldBeConstant
53
+ ? `CONSTANT#${varInfo.name}#${module.file}#${varInfo.loc.start.line}:${varInfo.loc.start.column}:${varDeclCounterRef.value++}`
54
+ : `VARIABLE#${varInfo.name}#${module.file}#${varInfo.loc.start.line}:${varInfo.loc.start.column}:${varDeclCounterRef.value++}`;
55
+ if (shouldBeConstant) {
56
+ // CONSTANT node
57
+ const constantData = {
58
+ id: varId,
59
+ type: 'CONSTANT',
60
+ name: varInfo.name,
61
+ file: module.file,
62
+ line: varInfo.loc.start.line,
63
+ parentScopeId: module.id
64
+ };
65
+ if (isLiteral) {
66
+ constantData.value = literalValue;
67
+ }
68
+ variableDeclarations.push(constantData);
69
+ // If NewExpression, track for CLASS and INSTANCE_OF
70
+ if (isNewExpression) {
71
+ const newExpr = declarator.init;
72
+ if (newExpr.callee.type === 'Identifier') {
73
+ const className = newExpr.callee.name;
74
+ classInstantiations.push({
75
+ variableId: varId,
76
+ variableName: varInfo.name,
77
+ className: className,
78
+ line: varInfo.loc.start.line,
79
+ parentScopeId: module.id
80
+ });
81
+ }
82
+ }
83
+ }
84
+ else {
85
+ variableDeclarations.push({
86
+ id: varId,
87
+ type: 'VARIABLE',
88
+ name: varInfo.name,
89
+ file: module.file,
90
+ line: varInfo.loc.start.line,
91
+ parentScopeId: module.id
92
+ });
93
+ }
94
+ // Track assignment for data flow analysis
95
+ if (declarator.init) {
96
+ // Handle destructuring - create EXPRESSION for property path
97
+ if (varInfo.propertyPath || varInfo.arrayIndex !== undefined) {
98
+ // Create EXPRESSION node for the property access
99
+ const initName = declarator.init.type === 'Identifier'
100
+ ? declarator.init.name
101
+ : 'expr';
102
+ let expressionPath = initName;
103
+ if (varInfo.propertyPath) {
104
+ expressionPath = `${initName}.${varInfo.propertyPath.join('.')}`;
105
+ }
106
+ else if (varInfo.arrayIndex !== undefined) {
107
+ expressionPath = `${initName}[${varInfo.arrayIndex}]`;
108
+ }
109
+ const expressionId = `EXPRESSION#${expressionPath}#${module.file}#${varInfo.loc.start.line}:${varInfo.loc.start.column}`;
110
+ // Create EXPRESSION node representing the property access
111
+ literals.push({
112
+ id: expressionId,
113
+ type: 'EXPRESSION',
114
+ expressionType: varInfo.propertyPath ? 'MemberExpression' : 'ArrayAccess',
115
+ path: expressionPath,
116
+ baseName: initName,
117
+ propertyPath: varInfo.propertyPath || null,
118
+ arrayIndex: varInfo.arrayIndex,
119
+ file: module.file,
120
+ line: varInfo.loc.start.line
121
+ });
122
+ // Create ASSIGNED_FROM edge: VARIABLE -> EXPRESSION
123
+ variableAssignments.push({
124
+ variableId: varId,
125
+ sourceId: expressionId,
126
+ sourceType: 'EXPRESSION'
127
+ });
128
+ // Also create DERIVES_FROM edge: EXPRESSION -> base variable (if identifier)
129
+ if (declarator.init.type === 'Identifier') {
130
+ variableAssignments.push({
131
+ variableId: expressionId,
132
+ sourceId: null, // Will be resolved by name
133
+ sourceName: declarator.init.name,
134
+ sourceType: 'DERIVES_FROM_VARIABLE',
135
+ file: module.file
136
+ });
137
+ }
138
+ }
139
+ else {
140
+ // Normal assignment tracking
141
+ trackVariableAssignment(declarator.init, varId, varInfo.name, module, varInfo.loc.start.line, literals, variableAssignments, literalCounterRef);
142
+ }
143
+ }
144
+ });
145
+ });
146
+ }
147
+ }
148
+ };
149
+ }
150
+ }
@@ -0,0 +1,17 @@
1
+ /**
2
+ * AST Visitors for JSASTAnalyzer
3
+ *
4
+ * Each visitor handles specific AST node types and extracts relevant data
5
+ * into shared collections.
6
+ */
7
+ export { ASTVisitor } from './ASTVisitor.js';
8
+ export type { VisitorModule, VisitorCollections, VisitorHandlers, VisitorHandler, CounterRef, ProcessedNodes, VariableAssignment, LocationInfo } from './ASTVisitor.js';
9
+ export { ImportExportVisitor } from './ImportExportVisitor.js';
10
+ export { VariableVisitor } from './VariableVisitor.js';
11
+ export type { VariableInfo, ExtractVariableNamesCallback, TrackVariableAssignmentCallback } from './VariableVisitor.js';
12
+ export { FunctionVisitor } from './FunctionVisitor.js';
13
+ export type { AnalyzeFunctionBodyCallback } from './FunctionVisitor.js';
14
+ export { ClassVisitor } from './ClassVisitor.js';
15
+ export { CallExpressionVisitor } from './CallExpressionVisitor.js';
16
+ export { TypeScriptVisitor } from './TypeScriptVisitor.js';
17
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/plugins/analysis/ast/visitors/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,YAAY,EACV,aAAa,EACb,kBAAkB,EAClB,eAAe,EACf,cAAc,EACd,UAAU,EACV,cAAc,EACd,kBAAkB,EAClB,YAAY,EACb,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAE/D,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,YAAY,EACV,YAAY,EACZ,4BAA4B,EAC5B,+BAA+B,EAChC,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,YAAY,EAAE,2BAA2B,EAAE,MAAM,sBAAsB,CAAC;AAExE,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAEnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * AST Visitors for JSASTAnalyzer
3
+ *
4
+ * Each visitor handles specific AST node types and extracts relevant data
5
+ * into shared collections.
6
+ */
7
+ export { ASTVisitor } from './ASTVisitor.js';
8
+ export { ImportExportVisitor } from './ImportExportVisitor.js';
9
+ export { VariableVisitor } from './VariableVisitor.js';
10
+ export { FunctionVisitor } from './FunctionVisitor.js';
11
+ export { ClassVisitor } from './ClassVisitor.js';
12
+ export { CallExpressionVisitor } from './CallExpressionVisitor.js';
13
+ export { TypeScriptVisitor } from './TypeScriptVisitor.js';
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Базовый класс для плагинов DISCOVERY фазы
3
+ *
4
+ * DISCOVERY фаза отвечает за:
5
+ * 1. Поиск сервисов/компонентов в проекте
6
+ * 2. Создание SERVICE нод
7
+ * 3. Возврат манифеста для последующих фаз
8
+ */
9
+ import { Plugin } from '../Plugin.js';
10
+ import type { PluginContext, PluginResult, PluginMetadata } from '../Plugin.js';
11
+ export declare abstract class DiscoveryPlugin extends Plugin {
12
+ constructor(config?: Record<string, unknown>);
13
+ get metadata(): PluginMetadata;
14
+ /**
15
+ * Выполнить discovery
16
+ *
17
+ * @param context - PluginContext
18
+ * context.projectPath - корневая директория проекта
19
+ *
20
+ * @returns Promise<PluginResult>
21
+ * result.metadata.services - массив найденных сервисов
22
+ * [
23
+ * {
24
+ * id: string,
25
+ * name: string,
26
+ * path: string,
27
+ * type: string,
28
+ * metadata: Object
29
+ * }
30
+ * ]
31
+ */
32
+ abstract execute(context: PluginContext): Promise<PluginResult>;
33
+ }
34
+ //# sourceMappingURL=DiscoveryPlugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DiscoveryPlugin.d.ts","sourceRoot":"","sources":["../../../src/plugins/discovery/DiscoveryPlugin.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAEhF,8BAAsB,eAAgB,SAAQ,MAAM;gBACtC,MAAM,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM;IAIhD,IAAI,QAAQ,IAAI,cAAc,CAW7B;IAED;;;;;;;;;;;;;;;;;OAiBG;IACH,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;CAChE"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Базовый класс для плагинов DISCOVERY фазы
3
+ *
4
+ * DISCOVERY фаза отвечает за:
5
+ * 1. Поиск сервисов/компонентов в проекте
6
+ * 2. Создание SERVICE нод
7
+ * 3. Возврат манифеста для последующих фаз
8
+ */
9
+ import { Plugin } from '../Plugin.js';
10
+ export class DiscoveryPlugin extends Plugin {
11
+ constructor(config = {}) {
12
+ super(config);
13
+ }
14
+ get metadata() {
15
+ return {
16
+ name: this.constructor.name,
17
+ phase: 'DISCOVERY',
18
+ priority: 100,
19
+ creates: {
20
+ nodes: ['SERVICE'],
21
+ edges: []
22
+ },
23
+ dependencies: []
24
+ };
25
+ }
26
+ }
@@ -0,0 +1,26 @@
1
+ /**
2
+ * MonorepoServiceDiscovery - плагин для поиска сервисов в монорепозитории
3
+ *
4
+ * Стратегия discovery:
5
+ * 1. Ищет директорию pkg/ в корне проекта
6
+ * 2. Каждая поддиректория в pkg/ считается сервисом
7
+ * 3. Создаёт SERVICE ноды для каждого найденного сервиса
8
+ */
9
+ import { DiscoveryPlugin } from './DiscoveryPlugin.js';
10
+ import type { PluginContext, PluginResult, PluginMetadata } from '../Plugin.js';
11
+ /**
12
+ * Configuration options
13
+ */
14
+ interface MonorepoConfig extends Record<string, unknown> {
15
+ servicesDir?: string;
16
+ excludeDirs?: string[];
17
+ }
18
+ export declare class MonorepoServiceDiscovery extends DiscoveryPlugin {
19
+ private servicesDir;
20
+ private excludeDirs;
21
+ constructor(config?: MonorepoConfig);
22
+ get metadata(): PluginMetadata;
23
+ execute(context: PluginContext): Promise<PluginResult>;
24
+ }
25
+ export {};
26
+ //# sourceMappingURL=MonorepoServiceDiscovery.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MonorepoServiceDiscovery.d.ts","sourceRoot":"","sources":["../../../src/plugins/discovery/MonorepoServiceDiscovery.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAehF;;GAEG;AACH,UAAU,cAAe,SAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACtD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,qBAAa,wBAAyB,SAAQ,eAAe;IAC3D,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,WAAW,CAAW;gBAElB,MAAM,GAAE,cAAmB;IAOvC,IAAI,QAAQ,IAAI,cAAc,CAW7B;IAEK,OAAO,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;CA0D7D"}
@@ -0,0 +1,79 @@
1
+ /**
2
+ * MonorepoServiceDiscovery - плагин для поиска сервисов в монорепозитории
3
+ *
4
+ * Стратегия discovery:
5
+ * 1. Ищет директорию pkg/ в корне проекта
6
+ * 2. Каждая поддиректория в pkg/ считается сервисом
7
+ * 3. Создаёт SERVICE ноды для каждого найденного сервиса
8
+ */
9
+ import { DiscoveryPlugin } from './DiscoveryPlugin.js';
10
+ import { createSuccessResult, createErrorResult } from '../Plugin.js';
11
+ import { readdirSync, statSync, existsSync } from 'fs';
12
+ import { join } from 'path';
13
+ export class MonorepoServiceDiscovery extends DiscoveryPlugin {
14
+ servicesDir;
15
+ excludeDirs;
16
+ constructor(config = {}) {
17
+ super(config);
18
+ // Настройки по умолчанию
19
+ this.servicesDir = config.servicesDir || 'pkg';
20
+ this.excludeDirs = config.excludeDirs || ['.git', 'node_modules', 'build', 'dist'];
21
+ }
22
+ get metadata() {
23
+ return {
24
+ name: 'MonorepoServiceDiscovery',
25
+ phase: 'DISCOVERY',
26
+ priority: 100,
27
+ creates: {
28
+ nodes: ['SERVICE'],
29
+ edges: []
30
+ },
31
+ dependencies: []
32
+ };
33
+ }
34
+ async execute(context) {
35
+ const { projectPath, graph } = context;
36
+ const servicesPath = join(projectPath, this.servicesDir);
37
+ console.log(`[MonorepoServiceDiscovery] Looking for services in: ${servicesPath}`);
38
+ if (!existsSync(servicesPath)) {
39
+ return createErrorResult(new Error(`Services directory not found: ${servicesPath}`));
40
+ }
41
+ try {
42
+ const services = [];
43
+ const entries = readdirSync(servicesPath);
44
+ console.log(`[MonorepoServiceDiscovery] Found ${entries.length} entries`);
45
+ for (const entry of entries) {
46
+ const fullPath = join(servicesPath, entry);
47
+ const stat = statSync(fullPath);
48
+ // Пропускаем файлы и исключённые директории
49
+ if (!stat.isDirectory() || this.excludeDirs.includes(entry)) {
50
+ continue;
51
+ }
52
+ // Создаём SERVICE ноду
53
+ const serviceId = `service:${entry}`;
54
+ // Cast through unknown since we're creating a dynamic service node
55
+ const serviceNode = {
56
+ id: serviceId,
57
+ type: 'SERVICE',
58
+ name: entry,
59
+ path: fullPath,
60
+ metadata: {
61
+ discoveryMethod: 'monorepo',
62
+ servicePath: fullPath
63
+ }
64
+ };
65
+ await graph.addNode(serviceNode);
66
+ services.push({
67
+ id: serviceId,
68
+ name: entry,
69
+ path: fullPath,
70
+ type: 'monorepo-service'
71
+ });
72
+ }
73
+ return createSuccessResult({ nodes: services.length, edges: 0 }, { services });
74
+ }
75
+ catch (error) {
76
+ return createErrorResult(error);
77
+ }
78
+ }
79
+ }
@@ -0,0 +1,14 @@
1
+ /**
2
+ * SimpleProjectDiscovery - универсальный discovery плагин
3
+ *
4
+ * Находит сервис по package.json в корне проекта.
5
+ * Работает для любого JS/TS проекта.
6
+ * Используется как дефолтный discovery когда нет специфичных плагинов.
7
+ */
8
+ import { Plugin } from '../Plugin.js';
9
+ import type { PluginContext, PluginResult, PluginMetadata } from '../Plugin.js';
10
+ export declare class SimpleProjectDiscovery extends Plugin {
11
+ get metadata(): PluginMetadata;
12
+ execute(context: PluginContext): Promise<PluginResult>;
13
+ }
14
+ //# sourceMappingURL=SimpleProjectDiscovery.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SimpleProjectDiscovery.d.ts","sourceRoot":"","sources":["../../../src/plugins/discovery/SimpleProjectDiscovery.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,OAAO,EAAE,MAAM,EAA0C,MAAM,cAAc,CAAC;AAC9E,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AA2BhF,qBAAa,sBAAuB,SAAQ,MAAM;IAEhD,IAAI,QAAQ,IAAI,cAAc,CAW7B;IAEK,OAAO,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;CA+C7D"}
@@ -0,0 +1,65 @@
1
+ /**
2
+ * SimpleProjectDiscovery - универсальный discovery плагин
3
+ *
4
+ * Находит сервис по package.json в корне проекта.
5
+ * Работает для любого JS/TS проекта.
6
+ * Используется как дефолтный discovery когда нет специфичных плагинов.
7
+ */
8
+ import { existsSync, readFileSync } from 'fs';
9
+ import { join } from 'path';
10
+ import { NodeFactory } from '../../core/NodeFactory.js';
11
+ import { Plugin, createSuccessResult, createErrorResult } from '../Plugin.js';
12
+ export class SimpleProjectDiscovery extends Plugin {
13
+ get metadata() {
14
+ return {
15
+ name: 'SimpleProjectDiscovery',
16
+ phase: 'DISCOVERY',
17
+ priority: 50, // Lower priority than specialized discovery plugins
18
+ creates: {
19
+ nodes: ['SERVICE'],
20
+ edges: []
21
+ },
22
+ dependencies: []
23
+ };
24
+ }
25
+ async execute(context) {
26
+ const { graph } = context;
27
+ // projectPath can be at top level (DISCOVERY phase) or in manifest/config
28
+ const projectPath = context.projectPath || context.manifest?.projectPath || context.config?.projectPath;
29
+ if (!projectPath) {
30
+ return createErrorResult(new Error('projectPath not found in context'));
31
+ }
32
+ const packageJsonPath = join(projectPath, 'package.json');
33
+ if (!existsSync(packageJsonPath)) {
34
+ return createErrorResult(new Error(`package.json not found: ${packageJsonPath}`));
35
+ }
36
+ try {
37
+ const packageJson = JSON.parse(readFileSync(packageJsonPath, 'utf-8'));
38
+ const serviceName = packageJson.name || 'unnamed-service';
39
+ const entrypoint = packageJson.main || 'index.js';
40
+ // Используем NodeFactory для создания SERVICE ноды
41
+ const serviceNode = NodeFactory.createService(serviceName, projectPath, {
42
+ discoveryMethod: 'simple',
43
+ entrypoint,
44
+ version: packageJson.version,
45
+ description: packageJson.description,
46
+ dependencies: Object.keys(packageJson.dependencies || {})
47
+ });
48
+ await graph.addNode(serviceNode);
49
+ const service = {
50
+ id: serviceNode.id,
51
+ name: serviceName,
52
+ path: join(projectPath, entrypoint),
53
+ type: 'simple-project',
54
+ metadata: {
55
+ entrypoint: join(projectPath, entrypoint),
56
+ packageJson
57
+ }
58
+ };
59
+ return createSuccessResult({ nodes: 1, edges: 0 }, { services: [service] });
60
+ }
61
+ catch (error) {
62
+ return createErrorResult(error);
63
+ }
64
+ }
65
+ }
@@ -0,0 +1,19 @@
1
+ /**
2
+ * ZonServiceDiscovery - плагин для поиска сервисов в zon1 монорепозитории
3
+ *
4
+ * Точная реализация логики из file2host.js:
5
+ * 1. Читает servers.js - база данных серверов
6
+ * 2. Использует zserver_conf.prepare_conf() для получения конфигурации каждого сервера
7
+ * 3. Читает k8s/deploy/configs/apps.json - kubernetes приложения
8
+ * 4. Извлекает entrypoint'ы для каждого сервиса
9
+ */
10
+ import { DiscoveryPlugin } from './DiscoveryPlugin.js';
11
+ import type { PluginContext, PluginResult, PluginMetadata } from '../Plugin.js';
12
+ export declare class ZonServiceDiscovery extends DiscoveryPlugin {
13
+ constructor(config?: Record<string, unknown>);
14
+ static __loaded: boolean;
15
+ get metadata(): PluginMetadata;
16
+ private hostname_base;
17
+ execute(context: PluginContext): Promise<PluginResult>;
18
+ }
19
+ //# sourceMappingURL=ZonServiceDiscovery.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ZonServiceDiscovery.d.ts","sourceRoot":"","sources":["../../../src/plugins/discovery/ZonServiceDiscovery.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AA6FhF,qBAAa,mBAAoB,SAAQ,eAAe;gBAC1C,MAAM,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM;IAKhD,MAAM,CAAC,QAAQ,UAOV;IAEL,IAAI,QAAQ,IAAI,cAAc,CAW7B;IAED,OAAO,CAAC,aAAa;IAIf,OAAO,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;CA8L7D"}