@yalehwang/archguard 0.1.0

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 (427) hide show
  1. package/README.md +537 -0
  2. package/dist/cli/cache/arch-json-disk-cache.d.ts +12 -0
  3. package/dist/cli/cache/arch-json-disk-cache.d.ts.map +1 -0
  4. package/dist/cli/cache/arch-json-disk-cache.js +51 -0
  5. package/dist/cli/cache/arch-json-disk-cache.js.map +1 -0
  6. package/dist/cli/cache-manager.d.ts +28 -0
  7. package/dist/cli/cache-manager.d.ts.map +1 -0
  8. package/dist/cli/cache-manager.js +126 -0
  9. package/dist/cli/cache-manager.js.map +1 -0
  10. package/dist/cli/commands/analyze.d.ts +7 -0
  11. package/dist/cli/commands/analyze.d.ts.map +1 -0
  12. package/dist/cli/commands/analyze.js +212 -0
  13. package/dist/cli/commands/analyze.js.map +1 -0
  14. package/dist/cli/commands/cache.d.ts +3 -0
  15. package/dist/cli/commands/cache.d.ts.map +1 -0
  16. package/dist/cli/commands/cache.js +56 -0
  17. package/dist/cli/commands/cache.js.map +1 -0
  18. package/dist/cli/commands/init.d.ts +3 -0
  19. package/dist/cli/commands/init.d.ts.map +1 -0
  20. package/dist/cli/commands/init.js +34 -0
  21. package/dist/cli/commands/init.js.map +1 -0
  22. package/dist/cli/config-loader.d.ts +701 -0
  23. package/dist/cli/config-loader.d.ts.map +1 -0
  24. package/dist/cli/config-loader.js +259 -0
  25. package/dist/cli/config-loader.js.map +1 -0
  26. package/dist/cli/error-handler.d.ts +15 -0
  27. package/dist/cli/error-handler.d.ts.map +1 -0
  28. package/dist/cli/error-handler.js +127 -0
  29. package/dist/cli/error-handler.js.map +1 -0
  30. package/dist/cli/errors.d.ts +15 -0
  31. package/dist/cli/errors.d.ts.map +1 -0
  32. package/dist/cli/errors.js +31 -0
  33. package/dist/cli/errors.js.map +1 -0
  34. package/dist/cli/index.d.ts +4 -0
  35. package/dist/cli/index.d.ts.map +1 -0
  36. package/dist/cli/index.js +27 -0
  37. package/dist/cli/index.js.map +1 -0
  38. package/dist/cli/processors/diagram-processor.d.ts +61 -0
  39. package/dist/cli/processors/diagram-processor.d.ts.map +1 -0
  40. package/dist/cli/processors/diagram-processor.js +610 -0
  41. package/dist/cli/processors/diagram-processor.js.map +1 -0
  42. package/dist/cli/progress/parallel-progress.d.ts +16 -0
  43. package/dist/cli/progress/parallel-progress.d.ts.map +1 -0
  44. package/dist/cli/progress/parallel-progress.js +49 -0
  45. package/dist/cli/progress/parallel-progress.js.map +1 -0
  46. package/dist/cli/progress.d.ts +36 -0
  47. package/dist/cli/progress.d.ts.map +1 -0
  48. package/dist/cli/progress.js +127 -0
  49. package/dist/cli/progress.js.map +1 -0
  50. package/dist/cli/types.d.ts +37 -0
  51. package/dist/cli/types.d.ts.map +1 -0
  52. package/dist/cli/types.js +2 -0
  53. package/dist/cli/types.js.map +1 -0
  54. package/dist/cli/utils/cpp-project-structure-detector.d.ts +10 -0
  55. package/dist/cli/utils/cpp-project-structure-detector.d.ts.map +1 -0
  56. package/dist/cli/utils/cpp-project-structure-detector.js +99 -0
  57. package/dist/cli/utils/cpp-project-structure-detector.js.map +1 -0
  58. package/dist/cli/utils/diagram-index-generator.d.ts +12 -0
  59. package/dist/cli/utils/diagram-index-generator.d.ts.map +1 -0
  60. package/dist/cli/utils/diagram-index-generator.js +94 -0
  61. package/dist/cli/utils/diagram-index-generator.js.map +1 -0
  62. package/dist/cli/utils/file-discovery-service.d.ts +10 -0
  63. package/dist/cli/utils/file-discovery-service.d.ts.map +1 -0
  64. package/dist/cli/utils/file-discovery-service.js +56 -0
  65. package/dist/cli/utils/file-discovery-service.js.map +1 -0
  66. package/dist/cli/utils/output-path-resolver.d.ts +34 -0
  67. package/dist/cli/utils/output-path-resolver.d.ts.map +1 -0
  68. package/dist/cli/utils/output-path-resolver.js +91 -0
  69. package/dist/cli/utils/output-path-resolver.js.map +1 -0
  70. package/dist/cli/utils/project-structure-detector.d.ts +6 -0
  71. package/dist/cli/utils/project-structure-detector.d.ts.map +1 -0
  72. package/dist/cli/utils/project-structure-detector.js +159 -0
  73. package/dist/cli/utils/project-structure-detector.js.map +1 -0
  74. package/dist/core/interfaces/dependency.d.ts +14 -0
  75. package/dist/core/interfaces/dependency.d.ts.map +1 -0
  76. package/dist/core/interfaces/dependency.js +2 -0
  77. package/dist/core/interfaces/dependency.js.map +1 -0
  78. package/dist/core/interfaces/errors.d.ts +29 -0
  79. package/dist/core/interfaces/errors.d.ts.map +1 -0
  80. package/dist/core/interfaces/errors.js +59 -0
  81. package/dist/core/interfaces/errors.js.map +1 -0
  82. package/dist/core/interfaces/index.d.ts +6 -0
  83. package/dist/core/interfaces/index.d.ts.map +1 -0
  84. package/dist/core/interfaces/index.js +2 -0
  85. package/dist/core/interfaces/index.js.map +1 -0
  86. package/dist/core/interfaces/language-plugin.d.ts +34 -0
  87. package/dist/core/interfaces/language-plugin.d.ts.map +1 -0
  88. package/dist/core/interfaces/language-plugin.js +2 -0
  89. package/dist/core/interfaces/language-plugin.js.map +1 -0
  90. package/dist/core/interfaces/parser.d.ts +15 -0
  91. package/dist/core/interfaces/parser.d.ts.map +1 -0
  92. package/dist/core/interfaces/parser.js +2 -0
  93. package/dist/core/interfaces/parser.js.map +1 -0
  94. package/dist/core/interfaces/validation.d.ts +24 -0
  95. package/dist/core/interfaces/validation.d.ts.map +1 -0
  96. package/dist/core/interfaces/validation.js +2 -0
  97. package/dist/core/interfaces/validation.js.map +1 -0
  98. package/dist/core/plugin-registry.d.ts +19 -0
  99. package/dist/core/plugin-registry.d.ts.map +1 -0
  100. package/dist/core/plugin-registry.js +137 -0
  101. package/dist/core/plugin-registry.js.map +1 -0
  102. package/dist/index.d.ts +4 -0
  103. package/dist/index.d.ts.map +1 -0
  104. package/dist/index.js +4 -0
  105. package/dist/index.js.map +1 -0
  106. package/dist/mermaid/auto-repair.d.ts +23 -0
  107. package/dist/mermaid/auto-repair.d.ts.map +1 -0
  108. package/dist/mermaid/auto-repair.js +197 -0
  109. package/dist/mermaid/auto-repair.js.map +1 -0
  110. package/dist/mermaid/comment-generator.d.ts +10 -0
  111. package/dist/mermaid/comment-generator.d.ts.map +1 -0
  112. package/dist/mermaid/comment-generator.js +213 -0
  113. package/dist/mermaid/comment-generator.js.map +1 -0
  114. package/dist/mermaid/cpp-package-flowchart-generator.d.ts +5 -0
  115. package/dist/mermaid/cpp-package-flowchart-generator.d.ts.map +1 -0
  116. package/dist/mermaid/cpp-package-flowchart-generator.js +33 -0
  117. package/dist/mermaid/cpp-package-flowchart-generator.js.map +1 -0
  118. package/dist/mermaid/diagram-generator.d.ts +31 -0
  119. package/dist/mermaid/diagram-generator.d.ts.map +1 -0
  120. package/dist/mermaid/diagram-generator.js +194 -0
  121. package/dist/mermaid/diagram-generator.js.map +1 -0
  122. package/dist/mermaid/external-dependencies.d.ts +3 -0
  123. package/dist/mermaid/external-dependencies.d.ts.map +1 -0
  124. package/dist/mermaid/external-dependencies.js +38 -0
  125. package/dist/mermaid/external-dependencies.js.map +1 -0
  126. package/dist/mermaid/generator.d.ts +44 -0
  127. package/dist/mermaid/generator.d.ts.map +1 -0
  128. package/dist/mermaid/generator.js +511 -0
  129. package/dist/mermaid/generator.js.map +1 -0
  130. package/dist/mermaid/grouper.d.ts +15 -0
  131. package/dist/mermaid/grouper.d.ts.map +1 -0
  132. package/dist/mermaid/grouper.js +194 -0
  133. package/dist/mermaid/grouper.js.map +1 -0
  134. package/dist/mermaid/index.d.ts +14 -0
  135. package/dist/mermaid/index.d.ts.map +1 -0
  136. package/dist/mermaid/index.js +13 -0
  137. package/dist/mermaid/index.js.map +1 -0
  138. package/dist/mermaid/progress.d.ts +15 -0
  139. package/dist/mermaid/progress.d.ts.map +1 -0
  140. package/dist/mermaid/progress.js +8 -0
  141. package/dist/mermaid/progress.js.map +1 -0
  142. package/dist/mermaid/render-worker-pool.d.ts +29 -0
  143. package/dist/mermaid/render-worker-pool.d.ts.map +1 -0
  144. package/dist/mermaid/render-worker-pool.js +73 -0
  145. package/dist/mermaid/render-worker-pool.js.map +1 -0
  146. package/dist/mermaid/render-worker.d.ts +2 -0
  147. package/dist/mermaid/render-worker.d.ts.map +1 -0
  148. package/dist/mermaid/render-worker.js +22 -0
  149. package/dist/mermaid/render-worker.js.map +1 -0
  150. package/dist/mermaid/renderer.d.ts +17 -0
  151. package/dist/mermaid/renderer.d.ts.map +1 -0
  152. package/dist/mermaid/renderer.js +204 -0
  153. package/dist/mermaid/renderer.js.map +1 -0
  154. package/dist/mermaid/ts-module-graph-renderer.d.ts +3 -0
  155. package/dist/mermaid/ts-module-graph-renderer.d.ts.map +1 -0
  156. package/dist/mermaid/ts-module-graph-renderer.js +180 -0
  157. package/dist/mermaid/ts-module-graph-renderer.js.map +1 -0
  158. package/dist/mermaid/types.d.ts +122 -0
  159. package/dist/mermaid/types.d.ts.map +1 -0
  160. package/dist/mermaid/types.js +2 -0
  161. package/dist/mermaid/types.js.map +1 -0
  162. package/dist/mermaid/validation-pipeline.d.ts +29 -0
  163. package/dist/mermaid/validation-pipeline.d.ts.map +1 -0
  164. package/dist/mermaid/validation-pipeline.js +163 -0
  165. package/dist/mermaid/validation-pipeline.js.map +1 -0
  166. package/dist/mermaid/validator-parse.d.ts +11 -0
  167. package/dist/mermaid/validator-parse.d.ts.map +1 -0
  168. package/dist/mermaid/validator-parse.js +130 -0
  169. package/dist/mermaid/validator-parse.js.map +1 -0
  170. package/dist/mermaid/validator-quality.d.ts +17 -0
  171. package/dist/mermaid/validator-quality.d.ts.map +1 -0
  172. package/dist/mermaid/validator-quality.js +187 -0
  173. package/dist/mermaid/validator-quality.js.map +1 -0
  174. package/dist/mermaid/validator-render.d.ts +12 -0
  175. package/dist/mermaid/validator-render.d.ts.map +1 -0
  176. package/dist/mermaid/validator-render.js +98 -0
  177. package/dist/mermaid/validator-render.js.map +1 -0
  178. package/dist/mermaid/validator-structural.d.ts +11 -0
  179. package/dist/mermaid/validator-structural.d.ts.map +1 -0
  180. package/dist/mermaid/validator-structural.js +116 -0
  181. package/dist/mermaid/validator-structural.js.map +1 -0
  182. package/dist/parser/archjson-aggregator.d.ts +11 -0
  183. package/dist/parser/archjson-aggregator.d.ts.map +1 -0
  184. package/dist/parser/archjson-aggregator.js +113 -0
  185. package/dist/parser/archjson-aggregator.js.map +1 -0
  186. package/dist/parser/base-extractor.d.ts +6 -0
  187. package/dist/parser/base-extractor.d.ts.map +1 -0
  188. package/dist/parser/base-extractor.js +13 -0
  189. package/dist/parser/base-extractor.js.map +1 -0
  190. package/dist/parser/class-extractor.d.ts +17 -0
  191. package/dist/parser/class-extractor.d.ts.map +1 -0
  192. package/dist/parser/class-extractor.js +144 -0
  193. package/dist/parser/class-extractor.js.map +1 -0
  194. package/dist/parser/enum-extractor.d.ts +9 -0
  195. package/dist/parser/enum-extractor.d.ts.map +1 -0
  196. package/dist/parser/enum-extractor.js +45 -0
  197. package/dist/parser/enum-extractor.js.map +1 -0
  198. package/dist/parser/errors.d.ts +7 -0
  199. package/dist/parser/errors.d.ts.map +1 -0
  200. package/dist/parser/errors.js +14 -0
  201. package/dist/parser/errors.js.map +1 -0
  202. package/dist/parser/function-extractor.d.ts +7 -0
  203. package/dist/parser/function-extractor.d.ts.map +1 -0
  204. package/dist/parser/function-extractor.js +59 -0
  205. package/dist/parser/function-extractor.js.map +1 -0
  206. package/dist/parser/index.d.ts +10 -0
  207. package/dist/parser/index.d.ts.map +1 -0
  208. package/dist/parser/index.js +9 -0
  209. package/dist/parser/index.js.map +1 -0
  210. package/dist/parser/interface-extractor.d.ts +14 -0
  211. package/dist/parser/interface-extractor.d.ts.map +1 -0
  212. package/dist/parser/interface-extractor.js +90 -0
  213. package/dist/parser/interface-extractor.js.map +1 -0
  214. package/dist/parser/metrics-calculator.d.ts +9 -0
  215. package/dist/parser/metrics-calculator.d.ts.map +1 -0
  216. package/dist/parser/metrics-calculator.js +84 -0
  217. package/dist/parser/metrics-calculator.js.map +1 -0
  218. package/dist/parser/parallel-parser.d.ts +38 -0
  219. package/dist/parser/parallel-parser.d.ts.map +1 -0
  220. package/dist/parser/parallel-parser.js +170 -0
  221. package/dist/parser/parallel-parser.js.map +1 -0
  222. package/dist/parser/parse-cache.d.ts +8 -0
  223. package/dist/parser/parse-cache.d.ts.map +1 -0
  224. package/dist/parser/parse-cache.js +25 -0
  225. package/dist/parser/parse-cache.js.map +1 -0
  226. package/dist/parser/relation-extractor.d.ts +14 -0
  227. package/dist/parser/relation-extractor.d.ts.map +1 -0
  228. package/dist/parser/relation-extractor.js +203 -0
  229. package/dist/parser/relation-extractor.js.map +1 -0
  230. package/dist/parser/typescript-parser.d.ts +19 -0
  231. package/dist/parser/typescript-parser.d.ts.map +1 -0
  232. package/dist/parser/typescript-parser.js +182 -0
  233. package/dist/parser/typescript-parser.js.map +1 -0
  234. package/dist/plugins/cpp/archjson-mapper.d.ts +13 -0
  235. package/dist/plugins/cpp/archjson-mapper.d.ts.map +1 -0
  236. package/dist/plugins/cpp/archjson-mapper.js +180 -0
  237. package/dist/plugins/cpp/archjson-mapper.js.map +1 -0
  238. package/dist/plugins/cpp/builders/class-builder.d.ts +15 -0
  239. package/dist/plugins/cpp/builders/class-builder.d.ts.map +1 -0
  240. package/dist/plugins/cpp/builders/class-builder.js +102 -0
  241. package/dist/plugins/cpp/builders/class-builder.js.map +1 -0
  242. package/dist/plugins/cpp/builders/header-merger.d.ts +8 -0
  243. package/dist/plugins/cpp/builders/header-merger.d.ts.map +1 -0
  244. package/dist/plugins/cpp/builders/header-merger.js +65 -0
  245. package/dist/plugins/cpp/builders/header-merger.js.map +1 -0
  246. package/dist/plugins/cpp/cpp-type-extractor.d.ts +13 -0
  247. package/dist/plugins/cpp/cpp-type-extractor.d.ts.map +1 -0
  248. package/dist/plugins/cpp/cpp-type-extractor.js +153 -0
  249. package/dist/plugins/cpp/cpp-type-extractor.js.map +1 -0
  250. package/dist/plugins/cpp/dependency-extractor.d.ts +5 -0
  251. package/dist/plugins/cpp/dependency-extractor.d.ts.map +1 -0
  252. package/dist/plugins/cpp/dependency-extractor.js +28 -0
  253. package/dist/plugins/cpp/dependency-extractor.js.map +1 -0
  254. package/dist/plugins/cpp/index.d.ts +21 -0
  255. package/dist/plugins/cpp/index.d.ts.map +1 -0
  256. package/dist/plugins/cpp/index.js +113 -0
  257. package/dist/plugins/cpp/index.js.map +1 -0
  258. package/dist/plugins/cpp/tree-sitter-bridge.d.ts +20 -0
  259. package/dist/plugins/cpp/tree-sitter-bridge.d.ts.map +1 -0
  260. package/dist/plugins/cpp/tree-sitter-bridge.js +258 -0
  261. package/dist/plugins/cpp/tree-sitter-bridge.js.map +1 -0
  262. package/dist/plugins/cpp/types.d.ts +75 -0
  263. package/dist/plugins/cpp/types.d.ts.map +1 -0
  264. package/dist/plugins/cpp/types.js +2 -0
  265. package/dist/plugins/cpp/types.js.map +1 -0
  266. package/dist/plugins/golang/archjson-mapper.d.ts +10 -0
  267. package/dist/plugins/golang/archjson-mapper.d.ts.map +1 -0
  268. package/dist/plugins/golang/archjson-mapper.js +121 -0
  269. package/dist/plugins/golang/archjson-mapper.js.map +1 -0
  270. package/dist/plugins/golang/atlas/behavior-analyzer.d.ts +16 -0
  271. package/dist/plugins/golang/atlas/behavior-analyzer.d.ts.map +1 -0
  272. package/dist/plugins/golang/atlas/behavior-analyzer.js +32 -0
  273. package/dist/plugins/golang/atlas/behavior-analyzer.js.map +1 -0
  274. package/dist/plugins/golang/atlas/builders/capability-graph-builder.d.ts +12 -0
  275. package/dist/plugins/golang/atlas/builders/capability-graph-builder.d.ts.map +1 -0
  276. package/dist/plugins/golang/atlas/builders/capability-graph-builder.js +219 -0
  277. package/dist/plugins/golang/atlas/builders/capability-graph-builder.js.map +1 -0
  278. package/dist/plugins/golang/atlas/builders/flow-graph-builder.d.ts +18 -0
  279. package/dist/plugins/golang/atlas/builders/flow-graph-builder.d.ts.map +1 -0
  280. package/dist/plugins/golang/atlas/builders/flow-graph-builder.js +300 -0
  281. package/dist/plugins/golang/atlas/builders/flow-graph-builder.js.map +1 -0
  282. package/dist/plugins/golang/atlas/builders/goroutine-topology-builder.d.ts +15 -0
  283. package/dist/plugins/golang/atlas/builders/goroutine-topology-builder.d.ts.map +1 -0
  284. package/dist/plugins/golang/atlas/builders/goroutine-topology-builder.js +254 -0
  285. package/dist/plugins/golang/atlas/builders/goroutine-topology-builder.js.map +1 -0
  286. package/dist/plugins/golang/atlas/builders/i-atlas-builder.d.ts +5 -0
  287. package/dist/plugins/golang/atlas/builders/i-atlas-builder.d.ts.map +1 -0
  288. package/dist/plugins/golang/atlas/builders/i-atlas-builder.js +2 -0
  289. package/dist/plugins/golang/atlas/builders/i-atlas-builder.js.map +1 -0
  290. package/dist/plugins/golang/atlas/builders/index.d.ts +6 -0
  291. package/dist/plugins/golang/atlas/builders/index.d.ts.map +1 -0
  292. package/dist/plugins/golang/atlas/builders/index.js +5 -0
  293. package/dist/plugins/golang/atlas/builders/index.js.map +1 -0
  294. package/dist/plugins/golang/atlas/builders/package-graph-builder.d.ts +14 -0
  295. package/dist/plugins/golang/atlas/builders/package-graph-builder.d.ts.map +1 -0
  296. package/dist/plugins/golang/atlas/builders/package-graph-builder.js +115 -0
  297. package/dist/plugins/golang/atlas/builders/package-graph-builder.js.map +1 -0
  298. package/dist/plugins/golang/atlas/framework-detector.d.ts +11 -0
  299. package/dist/plugins/golang/atlas/framework-detector.d.ts.map +1 -0
  300. package/dist/plugins/golang/atlas/framework-detector.js +82 -0
  301. package/dist/plugins/golang/atlas/framework-detector.js.map +1 -0
  302. package/dist/plugins/golang/atlas/go-mod-resolver.d.ts +21 -0
  303. package/dist/plugins/golang/atlas/go-mod-resolver.d.ts.map +1 -0
  304. package/dist/plugins/golang/atlas/go-mod-resolver.js +90 -0
  305. package/dist/plugins/golang/atlas/go-mod-resolver.js.map +1 -0
  306. package/dist/plugins/golang/atlas/index.d.ts +28 -0
  307. package/dist/plugins/golang/atlas/index.d.ts.map +1 -0
  308. package/dist/plugins/golang/atlas/index.js +166 -0
  309. package/dist/plugins/golang/atlas/index.js.map +1 -0
  310. package/dist/plugins/golang/atlas/renderers/atlas-renderer.d.ts +7 -0
  311. package/dist/plugins/golang/atlas/renderers/atlas-renderer.d.ts.map +1 -0
  312. package/dist/plugins/golang/atlas/renderers/atlas-renderer.js +62 -0
  313. package/dist/plugins/golang/atlas/renderers/atlas-renderer.js.map +1 -0
  314. package/dist/plugins/golang/atlas/renderers/mermaid-templates.d.ts +24 -0
  315. package/dist/plugins/golang/atlas/renderers/mermaid-templates.d.ts.map +1 -0
  316. package/dist/plugins/golang/atlas/renderers/mermaid-templates.js +688 -0
  317. package/dist/plugins/golang/atlas/renderers/mermaid-templates.js.map +1 -0
  318. package/dist/plugins/golang/atlas/types.d.ts +63 -0
  319. package/dist/plugins/golang/atlas/types.d.ts.map +1 -0
  320. package/dist/plugins/golang/atlas/types.js +2 -0
  321. package/dist/plugins/golang/atlas/types.js.map +1 -0
  322. package/dist/plugins/golang/dependency-extractor.d.ts +7 -0
  323. package/dist/plugins/golang/dependency-extractor.d.ts.map +1 -0
  324. package/dist/plugins/golang/dependency-extractor.js +100 -0
  325. package/dist/plugins/golang/dependency-extractor.js.map +1 -0
  326. package/dist/plugins/golang/gopls-client.d.ts +38 -0
  327. package/dist/plugins/golang/gopls-client.d.ts.map +1 -0
  328. package/dist/plugins/golang/gopls-client.js +354 -0
  329. package/dist/plugins/golang/gopls-client.js.map +1 -0
  330. package/dist/plugins/golang/index.d.ts +29 -0
  331. package/dist/plugins/golang/index.d.ts.map +1 -0
  332. package/dist/plugins/golang/index.js +242 -0
  333. package/dist/plugins/golang/index.js.map +1 -0
  334. package/dist/plugins/golang/interface-matcher.d.ts +14 -0
  335. package/dist/plugins/golang/interface-matcher.d.ts.map +1 -0
  336. package/dist/plugins/golang/interface-matcher.js +235 -0
  337. package/dist/plugins/golang/interface-matcher.js.map +1 -0
  338. package/dist/plugins/golang/tree-sitter-bridge.d.ts +32 -0
  339. package/dist/plugins/golang/tree-sitter-bridge.d.ts.map +1 -0
  340. package/dist/plugins/golang/tree-sitter-bridge.js +579 -0
  341. package/dist/plugins/golang/tree-sitter-bridge.js.map +1 -0
  342. package/dist/plugins/golang/types.d.ts +119 -0
  343. package/dist/plugins/golang/types.d.ts.map +1 -0
  344. package/dist/plugins/golang/types.js +2 -0
  345. package/dist/plugins/golang/types.js.map +1 -0
  346. package/dist/plugins/java/archjson-mapper.d.ts +15 -0
  347. package/dist/plugins/java/archjson-mapper.d.ts.map +1 -0
  348. package/dist/plugins/java/archjson-mapper.js +273 -0
  349. package/dist/plugins/java/archjson-mapper.js.map +1 -0
  350. package/dist/plugins/java/dependency-extractor.d.ts +9 -0
  351. package/dist/plugins/java/dependency-extractor.d.ts.map +1 -0
  352. package/dist/plugins/java/dependency-extractor.js +99 -0
  353. package/dist/plugins/java/dependency-extractor.js.map +1 -0
  354. package/dist/plugins/java/index.d.ts +21 -0
  355. package/dist/plugins/java/index.d.ts.map +1 -0
  356. package/dist/plugins/java/index.js +167 -0
  357. package/dist/plugins/java/index.js.map +1 -0
  358. package/dist/plugins/java/tree-sitter-bridge.d.ts +19 -0
  359. package/dist/plugins/java/tree-sitter-bridge.d.ts.map +1 -0
  360. package/dist/plugins/java/tree-sitter-bridge.js +334 -0
  361. package/dist/plugins/java/tree-sitter-bridge.js.map +1 -0
  362. package/dist/plugins/java/types.d.ts +81 -0
  363. package/dist/plugins/java/types.d.ts.map +1 -0
  364. package/dist/plugins/java/types.js +2 -0
  365. package/dist/plugins/java/types.js.map +1 -0
  366. package/dist/plugins/python/archjson-mapper.d.ts +19 -0
  367. package/dist/plugins/python/archjson-mapper.d.ts.map +1 -0
  368. package/dist/plugins/python/archjson-mapper.js +170 -0
  369. package/dist/plugins/python/archjson-mapper.js.map +1 -0
  370. package/dist/plugins/python/dependency-extractor.d.ts +11 -0
  371. package/dist/plugins/python/dependency-extractor.d.ts.map +1 -0
  372. package/dist/plugins/python/dependency-extractor.js +186 -0
  373. package/dist/plugins/python/dependency-extractor.js.map +1 -0
  374. package/dist/plugins/python/index.d.ts +21 -0
  375. package/dist/plugins/python/index.d.ts.map +1 -0
  376. package/dist/plugins/python/index.js +142 -0
  377. package/dist/plugins/python/index.js.map +1 -0
  378. package/dist/plugins/python/tree-sitter-bridge.d.ts +16 -0
  379. package/dist/plugins/python/tree-sitter-bridge.d.ts.map +1 -0
  380. package/dist/plugins/python/tree-sitter-bridge.js +352 -0
  381. package/dist/plugins/python/tree-sitter-bridge.js.map +1 -0
  382. package/dist/plugins/python/types.d.ts +86 -0
  383. package/dist/plugins/python/types.d.ts.map +1 -0
  384. package/dist/plugins/python/types.js +2 -0
  385. package/dist/plugins/python/types.js.map +1 -0
  386. package/dist/plugins/shared/mapper-utils.d.ts +4 -0
  387. package/dist/plugins/shared/mapper-utils.d.ts.map +1 -0
  388. package/dist/plugins/shared/mapper-utils.js +12 -0
  389. package/dist/plugins/shared/mapper-utils.js.map +1 -0
  390. package/dist/plugins/typescript/builders/module-graph-builder.d.ts +8 -0
  391. package/dist/plugins/typescript/builders/module-graph-builder.d.ts.map +1 -0
  392. package/dist/plugins/typescript/builders/module-graph-builder.js +175 -0
  393. package/dist/plugins/typescript/builders/module-graph-builder.js.map +1 -0
  394. package/dist/plugins/typescript/index.d.ts +26 -0
  395. package/dist/plugins/typescript/index.d.ts.map +1 -0
  396. package/dist/plugins/typescript/index.js +232 -0
  397. package/dist/plugins/typescript/index.js.map +1 -0
  398. package/dist/plugins/typescript/typescript-analyzer.d.ts +8 -0
  399. package/dist/plugins/typescript/typescript-analyzer.d.ts.map +1 -0
  400. package/dist/plugins/typescript/typescript-analyzer.js +13 -0
  401. package/dist/plugins/typescript/typescript-analyzer.js.map +1 -0
  402. package/dist/scripts/migrate-to-mermaid.js +214 -0
  403. package/dist/types/config.d.ts +140 -0
  404. package/dist/types/config.d.ts.map +1 -0
  405. package/dist/types/config.js +6 -0
  406. package/dist/types/config.js.map +1 -0
  407. package/dist/types/extensions.d.ts +224 -0
  408. package/dist/types/extensions.d.ts.map +1 -0
  409. package/dist/types/extensions.js +3 -0
  410. package/dist/types/extensions.js.map +1 -0
  411. package/dist/types/index.d.ts +89 -0
  412. package/dist/types/index.d.ts.map +1 -0
  413. package/dist/types/index.js +3 -0
  414. package/dist/types/index.js.map +1 -0
  415. package/dist/utils/cli-detector.d.ts +8 -0
  416. package/dist/utils/cli-detector.d.ts.map +1 -0
  417. package/dist/utils/cli-detector.js +38 -0
  418. package/dist/utils/cli-detector.js.map +1 -0
  419. package/dist/utils/index.d.ts +4 -0
  420. package/dist/utils/index.d.ts.map +1 -0
  421. package/dist/utils/index.js +3 -0
  422. package/dist/utils/index.js.map +1 -0
  423. package/dist/utils/tsconfig-finder.d.ts +7 -0
  424. package/dist/utils/tsconfig-finder.d.ts.map +1 -0
  425. package/dist/utils/tsconfig-finder.js +31 -0
  426. package/dist/utils/tsconfig-finder.js.map +1 -0
  427. package/package.json +95 -0
@@ -0,0 +1,300 @@
1
+ const FRAMEWORK_PATTERNS = {
2
+ 'net/http': [
3
+ { method: 'HandleFunc', protocol: 'http' },
4
+ { method: 'Handle', protocol: 'http' },
5
+ ],
6
+ 'gin': [
7
+ { method: 'GET', protocol: 'http', httpMethod: 'GET' },
8
+ { method: 'POST', protocol: 'http', httpMethod: 'POST' },
9
+ { method: 'PUT', protocol: 'http', httpMethod: 'PUT' },
10
+ { method: 'DELETE', protocol: 'http', httpMethod: 'DELETE' },
11
+ { method: 'PATCH', protocol: 'http', httpMethod: 'PATCH' },
12
+ { method: 'Any', protocol: 'http', httpMethod: 'ANY' },
13
+ ],
14
+ 'gorilla/mux': [
15
+ { method: 'Handle', receiverContains: 'mux.Router', protocol: 'http' },
16
+ { method: 'HandleFunc', receiverContains: 'mux.Router', protocol: 'http' },
17
+ ],
18
+ 'echo': [
19
+ { method: 'GET', protocol: 'http', httpMethod: 'GET' },
20
+ { method: 'POST', protocol: 'http', httpMethod: 'POST' },
21
+ { method: 'PUT', protocol: 'http', httpMethod: 'PUT' },
22
+ { method: 'DELETE', protocol: 'http', httpMethod: 'DELETE' },
23
+ { method: 'PATCH', protocol: 'http', httpMethod: 'PATCH' },
24
+ ],
25
+ 'chi': [
26
+ { method: 'Get', protocol: 'http', httpMethod: 'GET' },
27
+ { method: 'Post', protocol: 'http', httpMethod: 'POST' },
28
+ { method: 'Put', protocol: 'http', httpMethod: 'PUT' },
29
+ { method: 'Delete', protocol: 'http', httpMethod: 'DELETE' },
30
+ { method: 'Patch', protocol: 'http', httpMethod: 'PATCH' },
31
+ ],
32
+ 'cobra': [
33
+ { method: 'AddCommand', protocol: 'cli' },
34
+ ],
35
+ 'grpc': [
36
+ { methodSuffix: 'Server', protocol: 'grpc' },
37
+ ],
38
+ 'kafka-go': [
39
+ { method: 'ConsumePartition', protocol: 'message' },
40
+ ],
41
+ 'sarama': [
42
+ { method: 'ConsumePartition', protocol: 'message' },
43
+ ],
44
+ 'nats': [
45
+ { method: 'Subscribe', protocol: 'message' },
46
+ { method: 'QueueSubscribe', protocol: 'message' },
47
+ ],
48
+ 'cron': [
49
+ { method: 'AddFunc', protocol: 'scheduler' },
50
+ { method: 'AddJob', protocol: 'scheduler' },
51
+ ],
52
+ };
53
+ function matchesPattern(call, p) {
54
+ if (p.method && call.functionName !== p.method)
55
+ return false;
56
+ if (p.methodSuffix && !call.functionName.endsWith(p.methodSuffix))
57
+ return false;
58
+ if (p.receiverContains && call.receiverType) {
59
+ if (!call.receiverType.includes(p.receiverContains))
60
+ return false;
61
+ }
62
+ return true;
63
+ }
64
+ export class FlowGraphBuilder {
65
+ static STDLIB_PREFIXES = new Set([
66
+ 'fmt', 'json', 'strconv', 'time', 'errors', 'strings', 'sort', 'sync',
67
+ 'io', 'bytes', 'math', 'os', 'log', 'context', 'net', 'http', 'reflect',
68
+ 'unicode', 'filepath', 'path', 'regexp', 'bufio', 'runtime',
69
+ ]);
70
+ static BUILTINS = new Set([
71
+ 'make', 'len', 'append', 'cap', 'new', 'delete', 'copy', 'close',
72
+ 'panic', 'recover', 'print', 'println', 'int', 'int8', 'int16', 'int32',
73
+ 'int64', 'uint', 'uint8', 'uint16', 'uint32', 'uint64', 'string', 'bool',
74
+ 'float32', 'float64', 'byte', 'rune', 'error',
75
+ ]);
76
+ static buildInterfaceNameSet(rawData) {
77
+ const names = new Set();
78
+ for (const pkg of rawData.packages) {
79
+ for (const iface of pkg.interfaces || []) {
80
+ names.add(iface.name);
81
+ }
82
+ }
83
+ return names;
84
+ }
85
+ static buildContextTypes(fields) {
86
+ const map = new Map();
87
+ for (const field of fields) {
88
+ if (field.name) {
89
+ map.set(field.name, field.type);
90
+ }
91
+ }
92
+ return map;
93
+ }
94
+ static classifyCallType(call, contextTypes, interfaceNames) {
95
+ if (!call.packageName)
96
+ return 'direct';
97
+ const segments = call.packageName.split('.');
98
+ const receiverVar = segments[segments.length - 1];
99
+ const declaredType = contextTypes.get(receiverVar);
100
+ if (!declaredType)
101
+ return 'direct';
102
+ const stripped = declaredType.startsWith('*') ? declaredType.slice(1) : declaredType;
103
+ const shortName = stripped.includes('.') ? stripped.split('.').at(-1) : stripped;
104
+ if (interfaceNames.has(stripped) || interfaceNames.has(shortName)) {
105
+ return 'interface';
106
+ }
107
+ return 'direct';
108
+ }
109
+ static isNoisyCall(call) {
110
+ const to = call.to;
111
+ if (FlowGraphBuilder.BUILTINS.has(to))
112
+ return true;
113
+ const dotIdx = to.indexOf('.');
114
+ if (dotIdx > 0) {
115
+ const pkg = to.slice(0, dotIdx);
116
+ if (FlowGraphBuilder.STDLIB_PREFIXES.has(pkg))
117
+ return true;
118
+ }
119
+ if (to.startsWith('w.'))
120
+ return true;
121
+ if (/^r\.(URL|Context|Body|Header|PathValue|Method|Form)/.test(to))
122
+ return true;
123
+ if (to.startsWith('ctx.'))
124
+ return true;
125
+ if (to.startsWith('err.'))
126
+ return true;
127
+ return false;
128
+ }
129
+ build(rawData, options = { detectedFrameworks: new Set(['net/http']) }) {
130
+ const entryPoints = this.detectEntryPoints(rawData, options);
131
+ const callChains = this.buildCallChains(rawData, entryPoints);
132
+ let graph = { entryPoints, callChains };
133
+ if (options.protocols && options.protocols.length > 0) {
134
+ const allowed = new Set(options.protocols);
135
+ graph.entryPoints = graph.entryPoints.filter(e => allowed.has(e.protocol));
136
+ const kept = new Set(graph.entryPoints.map(e => e.id));
137
+ graph.callChains = graph.callChains.filter(c => kept.has(c.entryPoint));
138
+ }
139
+ return Promise.resolve(graph);
140
+ }
141
+ detectEntryPoints(rawData, options) {
142
+ const entryPoints = [];
143
+ const { detectedFrameworks, customFrameworks = [], entryPoints: manualEntryPoints = [] } = options;
144
+ const activePatterns = [];
145
+ for (const key of detectedFrameworks) {
146
+ const patterns = FRAMEWORK_PATTERNS[key];
147
+ if (patterns) {
148
+ for (const p of patterns) {
149
+ activePatterns.push({ frameworkKey: key, pattern: p });
150
+ }
151
+ }
152
+ }
153
+ for (const cf of customFrameworks) {
154
+ for (const cp of cf.patterns) {
155
+ const pattern = {
156
+ method: cp.method,
157
+ methodSuffix: cp.methodSuffix,
158
+ receiverContains: cp.receiverContains,
159
+ protocol: cf.protocol,
160
+ };
161
+ activePatterns.push({ frameworkKey: cf.name, pattern });
162
+ }
163
+ }
164
+ for (const pkg of rawData.packages) {
165
+ for (const func of pkg.functions) {
166
+ if (!func.body)
167
+ continue;
168
+ for (const call of func.body.calls) {
169
+ const entry = this.matchCallPattern(call, pkg, activePatterns);
170
+ if (entry)
171
+ entryPoints.push(entry);
172
+ }
173
+ }
174
+ for (const struct of pkg.structs || []) {
175
+ for (const method of struct.methods || []) {
176
+ if (!method.body)
177
+ continue;
178
+ for (const call of method.body.calls) {
179
+ const entry = this.matchCallPattern(call, pkg, activePatterns);
180
+ if (entry)
181
+ entryPoints.push(entry);
182
+ }
183
+ }
184
+ }
185
+ if (pkg.name === 'main' && detectedFrameworks.has('main')) {
186
+ for (const func of pkg.functions) {
187
+ if (func.name === 'main') {
188
+ entryPoints.push({
189
+ id: `entry-${pkg.fullName}-main`,
190
+ protocol: 'cli',
191
+ framework: 'main',
192
+ path: '',
193
+ handler: 'main.main',
194
+ middleware: [],
195
+ package: pkg.fullName,
196
+ location: { file: func.location.file, line: func.location.startLine },
197
+ });
198
+ }
199
+ }
200
+ }
201
+ }
202
+ for (const manual of manualEntryPoints) {
203
+ entryPoints.push({
204
+ id: `entry-manual-${manual.function.replace(/[^a-zA-Z0-9]/g, '_')}`,
205
+ protocol: manual.protocol,
206
+ framework: 'manual',
207
+ path: '',
208
+ handler: manual.function,
209
+ middleware: [],
210
+ location: { file: 'manual', line: 0 },
211
+ });
212
+ }
213
+ return entryPoints;
214
+ }
215
+ matchCallPattern(call, pkg, activePatterns) {
216
+ const path = call.args?.[0] ?? '';
217
+ const rawHandler = call.args?.[1] ?? '';
218
+ const handler = rawHandler.startsWith('func(') ? '' : rawHandler;
219
+ for (const { frameworkKey, pattern } of activePatterns) {
220
+ if (matchesPattern(call, pattern)) {
221
+ return {
222
+ id: `entry-${pkg.fullName}-${call.location.startLine}`,
223
+ protocol: pattern.protocol,
224
+ method: pattern.httpMethod,
225
+ framework: frameworkKey,
226
+ path,
227
+ handler,
228
+ middleware: [],
229
+ package: pkg.fullName,
230
+ location: { file: call.location.file, line: call.location.startLine },
231
+ };
232
+ }
233
+ }
234
+ return null;
235
+ }
236
+ buildCallChains(rawData, entryPoints) {
237
+ const interfaceNames = FlowGraphBuilder.buildInterfaceNameSet(rawData);
238
+ const chains = [];
239
+ for (const entry of entryPoints) {
240
+ const calls = this.traceCallsFromEntry(rawData, entry, interfaceNames);
241
+ chains.push({
242
+ id: `chain-${entry.id}`,
243
+ entryPoint: entry.id,
244
+ calls,
245
+ });
246
+ }
247
+ return chains;
248
+ }
249
+ traceCallsFromEntry(rawData, entry, interfaceNames) {
250
+ const calls = [];
251
+ if (!entry.handler)
252
+ return calls;
253
+ const handlerFnName = entry.handler.split('.').at(-1) ?? entry.handler;
254
+ for (const pkg of rawData.packages) {
255
+ for (const func of pkg.functions) {
256
+ if (func.name !== handlerFnName || !func.body)
257
+ continue;
258
+ const contextTypes = FlowGraphBuilder.buildContextTypes(func.parameters);
259
+ for (const call of func.body.calls) {
260
+ const callType = FlowGraphBuilder.classifyCallType(call, contextTypes, interfaceNames);
261
+ calls.push({
262
+ from: entry.handler,
263
+ to: call.packageName ? `${call.packageName}.${call.functionName}` : call.functionName,
264
+ type: callType,
265
+ confidence: callType === 'interface' ? 0.8 : 0.7,
266
+ });
267
+ }
268
+ }
269
+ for (const struct of pkg.structs || []) {
270
+ const method = (struct.methods || []).find((m) => m.name === handlerFnName);
271
+ if (!method || !method.body)
272
+ continue;
273
+ const contextTypes = new Map([
274
+ ...FlowGraphBuilder.buildContextTypes(struct.fields),
275
+ ...FlowGraphBuilder.buildContextTypes(method.parameters),
276
+ ]);
277
+ for (const call of method.body.calls) {
278
+ const callType = FlowGraphBuilder.classifyCallType(call, contextTypes, interfaceNames);
279
+ calls.push({
280
+ from: entry.handler,
281
+ to: call.packageName ? `${call.packageName}.${call.functionName}` : call.functionName,
282
+ type: callType,
283
+ confidence: callType === 'interface' ? 0.8 : 0.7,
284
+ });
285
+ }
286
+ }
287
+ }
288
+ const seen = new Set();
289
+ return calls
290
+ .filter((call) => {
291
+ const key = `${call.from}\x00${call.to}`;
292
+ if (seen.has(key))
293
+ return false;
294
+ seen.add(key);
295
+ return true;
296
+ })
297
+ .filter((call) => !FlowGraphBuilder.isNoisyCall(call));
298
+ }
299
+ }
300
+ //# sourceMappingURL=flow-graph-builder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flow-graph-builder.js","sourceRoot":"","sources":["../../../../../src/plugins/golang/atlas/builders/flow-graph-builder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import type { GoRawData } from '../../types.js';
2
+ import type { GoroutineTopology } from '../types.js';
3
+ import type { IAtlasBuilder } from './i-atlas-builder.js';
4
+ export declare class GoroutineTopologyBuilder implements IAtlasBuilder<GoroutineTopology> {
5
+ build(rawData: GoRawData): Promise<GoroutineTopology>;
6
+ private extractGoroutineNodes;
7
+ private extractSpawnedNodes;
8
+ private buildSpawnRelations;
9
+ private extractChannelInfo;
10
+ private buildChannelEdges;
11
+ private extractBodyChannelEdges;
12
+ private buildLifecycle;
13
+ private classifyPattern;
14
+ }
15
+ //# sourceMappingURL=goroutine-topology-builder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"goroutine-topology-builder.d.ts","sourceRoot":"","sources":["../../../../../src/plugins/golang/atlas/builders/goroutine-topology-builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAsD,MAAM,gBAAgB,CAAC;AACpG,OAAO,KAAK,EACV,iBAAiB,EAOlB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAQ1D,qBAAa,wBAAyB,YAAW,aAAa,CAAC,iBAAiB,CAAC;IAC/E,KAAK,CAAC,OAAO,EAAE,SAAS,GAAG,OAAO,CAAC,iBAAiB,CAAC;IA4BrD,OAAO,CAAC,qBAAqB;IAuC7B,OAAO,CAAC,mBAAmB;IAmB3B,OAAO,CAAC,mBAAmB;IAsC3B,OAAO,CAAC,kBAAkB;IAkC1B,OAAO,CAAC,iBAAiB;IAyBzB,OAAO,CAAC,uBAAuB;IAyC/B,OAAO,CAAC,cAAc;IA6HtB,OAAO,CAAC,eAAe;CAQxB"}
@@ -0,0 +1,254 @@
1
+ export class GoroutineTopologyBuilder {
2
+ build(rawData) {
3
+ const nodes = this.extractGoroutineNodes(rawData);
4
+ const edges = this.buildSpawnRelations(rawData);
5
+ const channels = this.extractChannelInfo(rawData);
6
+ const channelEdges = this.buildChannelEdges(rawData);
7
+ for (const node of nodes) {
8
+ node.pattern = this.classifyPattern(node, edges, channels);
9
+ }
10
+ const lifecycle = this.buildLifecycle(rawData);
11
+ return Promise.resolve({
12
+ nodes,
13
+ edges,
14
+ channels,
15
+ channelEdges,
16
+ lifecycle: lifecycle.length > 0 ? lifecycle : undefined,
17
+ });
18
+ }
19
+ extractGoroutineNodes(rawData) {
20
+ const nodes = [];
21
+ for (const pkg of rawData.packages) {
22
+ for (const func of pkg.functions) {
23
+ if (func.name === 'main' && pkg.name === 'main') {
24
+ nodes.push({
25
+ id: `${pkg.fullName}.main`,
26
+ name: `${pkg.fullName}.main`,
27
+ type: 'main',
28
+ package: pkg.fullName,
29
+ location: { file: func.location.file, line: func.location.startLine },
30
+ });
31
+ }
32
+ if (func.body) {
33
+ this.extractSpawnedNodes(func.body.goSpawns, pkg, func.name, nodes);
34
+ }
35
+ }
36
+ for (const struct of pkg.structs) {
37
+ for (const method of struct.methods) {
38
+ if (method.body) {
39
+ this.extractSpawnedNodes(method.body.goSpawns, pkg, `${struct.name}.${method.name}`, nodes);
40
+ }
41
+ }
42
+ }
43
+ }
44
+ return nodes;
45
+ }
46
+ extractSpawnedNodes(goSpawns, pkg, parentName, nodes) {
47
+ for (const spawn of goSpawns) {
48
+ const isAnonymous = spawn.call.functionName === '<anonymous>';
49
+ nodes.push({
50
+ id: `${pkg.fullName}.${parentName}.spawn-${spawn.location.startLine}`,
51
+ name: spawn.call.functionName,
52
+ type: 'spawned',
53
+ spawnType: isAnonymous ? 'anonymous_func' : 'named_func',
54
+ package: pkg.fullName,
55
+ location: { file: spawn.location.file, line: spawn.location.startLine },
56
+ });
57
+ }
58
+ }
59
+ buildSpawnRelations(rawData) {
60
+ const relations = [];
61
+ for (const pkg of rawData.packages) {
62
+ for (const func of pkg.functions) {
63
+ if (!func.body)
64
+ continue;
65
+ const fromId = `${pkg.fullName}.${func.name}`;
66
+ for (const spawn of func.body.goSpawns) {
67
+ relations.push({
68
+ from: fromId,
69
+ to: `${pkg.fullName}.${func.name}.spawn-${spawn.location.startLine}`,
70
+ spawnType: spawn.call.functionName === '<anonymous>' ? 'go-func' : 'go-stmt',
71
+ });
72
+ }
73
+ }
74
+ for (const struct of pkg.structs) {
75
+ for (const method of struct.methods) {
76
+ if (!method.body)
77
+ continue;
78
+ const fromId = `${pkg.fullName}.${struct.name}.${method.name}`;
79
+ for (const spawn of method.body.goSpawns) {
80
+ relations.push({
81
+ from: fromId,
82
+ to: `${pkg.fullName}.${struct.name}.${method.name}.spawn-${spawn.location.startLine}`,
83
+ spawnType: spawn.call.functionName === '<anonymous>' ? 'go-func' : 'go-stmt',
84
+ });
85
+ }
86
+ }
87
+ }
88
+ }
89
+ return relations;
90
+ }
91
+ extractChannelInfo(rawData) {
92
+ const channels = [];
93
+ const scanBody = (body, pkg) => {
94
+ for (const op of body.channelOps) {
95
+ if (op.operation === 'make') {
96
+ channels.push({
97
+ id: `chan-${pkg.fullName}-${op.location.startLine}`,
98
+ name: op.channelName,
99
+ type: 'chan',
100
+ direction: 'bidirectional',
101
+ location: { file: op.location.file, line: op.location.startLine },
102
+ });
103
+ }
104
+ }
105
+ };
106
+ for (const pkg of rawData.packages) {
107
+ for (const func of pkg.functions) {
108
+ if (func.body)
109
+ scanBody(func.body, pkg);
110
+ }
111
+ for (const struct of pkg.structs) {
112
+ for (const method of struct.methods) {
113
+ if (method.body)
114
+ scanBody(method.body, pkg);
115
+ }
116
+ }
117
+ }
118
+ return channels;
119
+ }
120
+ buildChannelEdges(rawData) {
121
+ const channelEdges = [];
122
+ for (const pkg of rawData.packages) {
123
+ for (const func of pkg.functions) {
124
+ if (!func.body)
125
+ continue;
126
+ const spawnerId = `${pkg.fullName}.${func.name}`;
127
+ this.extractBodyChannelEdges(func.body, pkg, spawnerId, func.name, channelEdges);
128
+ }
129
+ for (const struct of pkg.structs) {
130
+ for (const method of struct.methods) {
131
+ if (!method.body)
132
+ continue;
133
+ const spawnerId = `${pkg.fullName}.${struct.name}.${method.name}`;
134
+ const parentName = `${struct.name}.${method.name}`;
135
+ this.extractBodyChannelEdges(method.body, pkg, spawnerId, parentName, channelEdges);
136
+ }
137
+ }
138
+ }
139
+ return channelEdges;
140
+ }
141
+ extractBodyChannelEdges(body, pkg, spawnerId, parentName, channelEdges) {
142
+ const scopeMap = new Map();
143
+ for (const op of body.channelOps) {
144
+ if (op.operation === 'make' && op.channelName) {
145
+ const channelId = `chan-${pkg.fullName}-${op.location.startLine}`;
146
+ scopeMap.set(op.channelName, channelId);
147
+ channelEdges.push({ from: spawnerId, to: channelId, edgeType: 'make' });
148
+ }
149
+ }
150
+ for (const spawn of body.goSpawns) {
151
+ const args = spawn.call.args ?? [];
152
+ for (const arg of args) {
153
+ const channelId = scopeMap.get(arg);
154
+ if (channelId !== undefined) {
155
+ const spawnedId = `${pkg.fullName}.${parentName}.spawn-${spawn.location.startLine}`;
156
+ channelEdges.push({ from: channelId, to: spawnedId, edgeType: 'recv' });
157
+ break;
158
+ }
159
+ }
160
+ }
161
+ }
162
+ buildLifecycle(rawData) {
163
+ const summaries = [];
164
+ const STOP_CHANNEL_NAMES = new Set(['done', 'stop', 'quit', 'cancel', 'stopCh', 'doneCh']);
165
+ for (const pkg of rawData.packages) {
166
+ const funcByName = new Map();
167
+ for (const func of pkg.functions) {
168
+ funcByName.set(func.name, { params: func.parameters ?? [], body: func.body });
169
+ }
170
+ const allSpawns = [];
171
+ for (const func of pkg.functions) {
172
+ if (func.body) {
173
+ for (const spawn of func.body.goSpawns) {
174
+ allSpawns.push({ spawn, parentName: func.name });
175
+ }
176
+ }
177
+ }
178
+ for (const struct of pkg.structs) {
179
+ for (const method of struct.methods) {
180
+ if (method.body) {
181
+ for (const spawn of method.body.goSpawns) {
182
+ allSpawns.push({ spawn, parentName: `${struct.name}.${method.name}` });
183
+ }
184
+ }
185
+ }
186
+ }
187
+ for (const { spawn, parentName } of allSpawns) {
188
+ const nodeId = `${pkg.fullName}.${parentName}.spawn-${spawn.location.startLine}`;
189
+ const targetName = spawn.call.functionName;
190
+ const isAnonymous = targetName === '<anonymous>';
191
+ if (isAnonymous) {
192
+ summaries.push({
193
+ nodeId,
194
+ spawnTargetName: '<anonymous>',
195
+ receivesContext: false,
196
+ cancellationCheckAvailable: false,
197
+ orphan: true,
198
+ });
199
+ continue;
200
+ }
201
+ const targetFunc = funcByName.get(targetName);
202
+ if (!targetFunc) {
203
+ summaries.push({
204
+ nodeId,
205
+ spawnTargetName: targetName,
206
+ receivesContext: false,
207
+ cancellationCheckAvailable: false,
208
+ orphan: true,
209
+ });
210
+ continue;
211
+ }
212
+ const ctxParam = targetFunc.params.find((p) => p.type?.includes('context.Context'));
213
+ const receivesContext = ctxParam !== undefined;
214
+ const ctxVarName = ctxParam?.name;
215
+ if (!targetFunc.body) {
216
+ summaries.push({
217
+ nodeId,
218
+ spawnTargetName: targetName,
219
+ receivesContext,
220
+ cancellationCheckAvailable: false,
221
+ orphan: !receivesContext,
222
+ });
223
+ continue;
224
+ }
225
+ const body = targetFunc.body;
226
+ const hasCtxDone = receivesContext &&
227
+ ctxVarName != null &&
228
+ (body.calls ?? []).some((c) => c.functionName === 'Done' && c.packageName === ctxVarName);
229
+ const hasStopChannel = (body.channelOps ?? []).some((op) => op.operation === 'receive' && STOP_CHANNEL_NAMES.has(op.channelName));
230
+ const hasCancellationCheck = hasCtxDone || hasStopChannel;
231
+ const cancellationMechanism = hasCtxDone
232
+ ? 'context'
233
+ : hasStopChannel
234
+ ? 'channel'
235
+ : undefined;
236
+ const orphan = !receivesContext && !hasCancellationCheck;
237
+ summaries.push({
238
+ nodeId,
239
+ spawnTargetName: targetName,
240
+ receivesContext,
241
+ cancellationCheckAvailable: true,
242
+ hasCancellationCheck,
243
+ ...(cancellationMechanism !== undefined ? { cancellationMechanism } : {}),
244
+ orphan,
245
+ });
246
+ }
247
+ }
248
+ return summaries;
249
+ }
250
+ classifyPattern(_node, _edges, _channels) {
251
+ return undefined;
252
+ }
253
+ }
254
+ //# sourceMappingURL=goroutine-topology-builder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"goroutine-topology-builder.js","sourceRoot":"","sources":["../../../../../src/plugins/golang/atlas/builders/goroutine-topology-builder.ts"],"names":[],"mappings":"AAkBA,MAAM,OAAO,wBAAwB;IACnC,KAAK,CAAC,OAAkB;QACtB,MAAM,KAAK,GAAG,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC;QAClD,MAAM,KAAK,GAAG,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;QAChD,MAAM,QAAQ,GAAG,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;QAClD,MAAM,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;QAGrD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;QAC7D,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QAE/C,OAAO,OAAO,CAAC,OAAO,CAAC;YACrB,KAAK;YACL,KAAK;YACL,QAAQ;YACR,YAAY;YACZ,SAAS,EAAE,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;SACxD,CAAC,CAAC;IACL,CAAC;IAQO,qBAAqB,CAAC,OAAkB;QAC9C,MAAM,KAAK,GAAoB,EAAE,CAAC;QAElC,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;YAEnC,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC;gBACjC,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;oBAChD,KAAK,CAAC,IAAI,CAAC;wBACT,EAAE,EAAE,GAAG,GAAG,CAAC,QAAQ,OAAO;wBAC1B,IAAI,EAAE,GAAG,GAAG,CAAC,QAAQ,OAAO;wBAC5B,IAAI,EAAE,MAAM;wBACZ,OAAO,EAAE,GAAG,CAAC,QAAQ;wBACrB,QAAQ,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE;qBACtE,CAAC,CAAC;gBACL,CAAC;gBAED,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;oBACd,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;gBACtE,CAAC;YACH,CAAC;YAGD,KAAK,MAAM,MAAM,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;gBACjC,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;oBACpC,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;wBAChB,IAAI,CAAC,mBAAmB,CACtB,MAAM,CAAC,IAAI,CAAC,QAAQ,EACpB,GAAG,EACH,GAAG,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,EAAE,EAC/B,KAAK,CACN,CAAC;oBACJ,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAEO,mBAAmB,CACzB,QAAuB,EACvB,GAAiB,EACjB,UAAkB,EAClB,KAAsB;QAEtB,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;YAC7B,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,YAAY,KAAK,aAAa,CAAC;YAC9D,KAAK,CAAC,IAAI,CAAC;gBACT,EAAE,EAAE,GAAG,GAAG,CAAC,QAAQ,IAAI,UAAU,UAAU,KAAK,CAAC,QAAQ,CAAC,SAAS,EAAE;gBACrE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,YAAY;gBAC7B,IAAI,EAAE,SAAS;gBACf,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,YAAY;gBACxD,OAAO,EAAE,GAAG,CAAC,QAAQ;gBACrB,QAAQ,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC,SAAS,EAAE;aACxE,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAEO,mBAAmB,CAAC,OAAkB;QAC5C,MAAM,SAAS,GAAoB,EAAE,CAAC;QAEtC,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;YAEnC,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC;gBACjC,IAAI,CAAC,IAAI,CAAC,IAAI;oBAAE,SAAS;gBACzB,MAAM,MAAM,GAAG,GAAG,GAAG,CAAC,QAAQ,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;gBAE9C,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACvC,SAAS,CAAC,IAAI,CAAC;wBACb,IAAI,EAAE,MAAM;wBACZ,EAAE,EAAE,GAAG,GAAG,CAAC,QAAQ,IAAI,IAAI,CAAC,IAAI,UAAU,KAAK,CAAC,QAAQ,CAAC,SAAS,EAAE;wBACpE,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,YAAY,KAAK,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;qBAC7E,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YAGD,KAAK,MAAM,MAAM,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;gBACjC,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;oBACpC,IAAI,CAAC,MAAM,CAAC,IAAI;wBAAE,SAAS;oBAC3B,MAAM,MAAM,GAAG,GAAG,GAAG,CAAC,QAAQ,IAAI,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;oBAE/D,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;wBACzC,SAAS,CAAC,IAAI,CAAC;4BACb,IAAI,EAAE,MAAM;4BACZ,EAAE,EAAE,GAAG,GAAG,CAAC,QAAQ,IAAI,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,UAAU,KAAK,CAAC,QAAQ,CAAC,SAAS,EAAE;4BACrF,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,YAAY,KAAK,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;yBAC7E,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAEO,kBAAkB,CAAC,OAAkB;QAC3C,MAAM,QAAQ,GAAkB,EAAE,CAAC;QAEnC,MAAM,QAAQ,GAAG,CACf,IAAuE,EACvE,GAAiB,EACjB,EAAE;YACF,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;gBACjC,IAAI,EAAE,CAAC,SAAS,KAAK,MAAM,EAAE,CAAC;oBAC5B,QAAQ,CAAC,IAAI,CAAC;wBACZ,EAAE,EAAE,QAAQ,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC,QAAQ,CAAC,SAAS,EAAE;wBACnD,IAAI,EAAE,EAAE,CAAC,WAAW;wBACpB,IAAI,EAAE,MAAM;wBACZ,SAAS,EAAE,eAAe;wBAC1B,QAAQ,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,SAAS,EAAE;qBAClE,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC,CAAC;QAEF,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;YACnC,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC;gBACjC,IAAI,IAAI,CAAC,IAAI;oBAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;YAC1C,CAAC;YACD,KAAK,MAAM,MAAM,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;gBACjC,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;oBACpC,IAAI,MAAM,CAAC,IAAI;wBAAE,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;gBAC9C,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEO,iBAAiB,CAAC,OAAkB;QAC1C,MAAM,YAAY,GAAkB,EAAE,CAAC;QAEvC,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;YAEnC,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC;gBACjC,IAAI,CAAC,IAAI,CAAC,IAAI;oBAAE,SAAS;gBACzB,MAAM,SAAS,GAAG,GAAG,GAAG,CAAC,QAAQ,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;gBACjD,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;YACnF,CAAC;YAGD,KAAK,MAAM,MAAM,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;gBACjC,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;oBACpC,IAAI,CAAC,MAAM,CAAC,IAAI;wBAAE,SAAS;oBAC3B,MAAM,SAAS,GAAG,GAAG,GAAG,CAAC,QAAQ,IAAI,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;oBAClE,MAAM,UAAU,GAAG,GAAG,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;oBACnD,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC;gBACtF,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,YAAY,CAAC;IACtB,CAAC;IAEO,uBAAuB,CAC7B,IAAoB,EACpB,GAAiB,EACjB,SAAiB,EACjB,UAAkB,EAClB,YAA2B;QAG3B,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAkB,CAAC;QAC3C,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACjC,IAAI,EAAE,CAAC,SAAS,KAAK,MAAM,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;gBAC9C,MAAM,SAAS,GAAG,QAAQ,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC;gBAClE,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;gBAExC,YAAY,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;YAC1E,CAAC;QACH,CAAC;QAGD,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClC,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;YACnC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;gBACvB,MAAM,SAAS,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACpC,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;oBAC5B,MAAM,SAAS,GAAG,GAAG,GAAG,CAAC,QAAQ,IAAI,UAAU,UAAU,KAAK,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC;oBACpF,YAAY,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;oBACxE,MAAM;gBACR,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAWO,cAAc,CAAC,OAAkB;QACvC,MAAM,SAAS,GAAgC,EAAE,CAAC;QAGlD,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;QAE3F,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;YAGnC,MAAM,UAAU,GAAG,IAAI,GAAG,EAAmE,CAAC;YAE9F,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC;gBACjC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,UAAU,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;YAChF,CAAC;YAID,MAAM,SAAS,GAAsD,EAAE,CAAC;YAExE,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC;gBACjC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;oBACd,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;wBACvC,SAAS,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;oBACnD,CAAC;gBACH,CAAC;YACH,CAAC;YAED,KAAK,MAAM,MAAM,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;gBACjC,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;oBACpC,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;wBAChB,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;4BACzC,SAAS,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;wBACzE,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;YAED,KAAK,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,SAAS,EAAE,CAAC;gBAC9C,MAAM,MAAM,GAAG,GAAG,GAAG,CAAC,QAAQ,IAAI,UAAU,UAAU,KAAK,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC;gBACjF,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC;gBAC3C,MAAM,WAAW,GAAG,UAAU,KAAK,aAAa,CAAC;gBAEjD,IAAI,WAAW,EAAE,CAAC;oBAChB,SAAS,CAAC,IAAI,CAAC;wBACb,MAAM;wBACN,eAAe,EAAE,aAAa;wBAC9B,eAAe,EAAE,KAAK;wBACtB,0BAA0B,EAAE,KAAK;wBACjC,MAAM,EAAE,IAAI;qBACb,CAAC,CAAC;oBACH,SAAS;gBACX,CAAC;gBAGD,MAAM,UAAU,GAAG,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;gBAE9C,IAAI,CAAC,UAAU,EAAE,CAAC;oBAEhB,SAAS,CAAC,IAAI,CAAC;wBACb,MAAM;wBACN,eAAe,EAAE,UAAU;wBAC3B,eAAe,EAAE,KAAK;wBACtB,0BAA0B,EAAE,KAAK;wBACjC,MAAM,EAAE,IAAI;qBACb,CAAC,CAAC;oBACH,SAAS;gBACX,CAAC;gBAGD,MAAM,QAAQ,GAAG,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,QAAQ,CAAC,iBAAiB,CAAC,CAAC,CAAC;gBACpF,MAAM,eAAe,GAAG,QAAQ,KAAK,SAAS,CAAC;gBAC/C,MAAM,UAAU,GAAG,QAAQ,EAAE,IAAI,CAAC;gBAElC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;oBAErB,SAAS,CAAC,IAAI,CAAC;wBACb,MAAM;wBACN,eAAe,EAAE,UAAU;wBAC3B,eAAe;wBACf,0BAA0B,EAAE,KAAK;wBACjC,MAAM,EAAE,CAAC,eAAe;qBACzB,CAAC,CAAC;oBACH,SAAS;gBACX,CAAC;gBAGD,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC;gBAG7B,MAAM,UAAU,GACd,eAAe;oBACf,UAAU,IAAI,IAAI;oBAClB,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,KAAK,MAAM,IAAI,CAAC,CAAC,WAAW,KAAK,UAAU,CAAC,CAAC;gBAG5F,MAAM,cAAc,GAAG,CAAC,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,IAAI,CACjD,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,SAAS,KAAK,SAAS,IAAI,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC,WAAW,CAAC,CAC7E,CAAC;gBAEF,MAAM,oBAAoB,GAAG,UAAU,IAAI,cAAc,CAAC;gBAC1D,MAAM,qBAAqB,GAAsC,UAAU;oBACzE,CAAC,CAAC,SAAS;oBACX,CAAC,CAAC,cAAc;wBACd,CAAC,CAAC,SAAS;wBACX,CAAC,CAAC,SAAS,CAAC;gBAIhB,MAAM,MAAM,GAAG,CAAC,eAAe,IAAI,CAAC,oBAAoB,CAAC;gBAEzD,SAAS,CAAC,IAAI,CAAC;oBACb,MAAM;oBACN,eAAe,EAAE,UAAU;oBAC3B,eAAe;oBACf,0BAA0B,EAAE,IAAI;oBAChC,oBAAoB;oBACpB,GAAG,CAAC,qBAAqB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,qBAAqB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACzE,MAAM;iBACP,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAEO,eAAe,CACrB,KAAoB,EACpB,MAAuB,EACvB,SAAwB;QAGxB,OAAO,SAAS,CAAC;IACnB,CAAC;CACF"}
@@ -0,0 +1,5 @@
1
+ import type { GoRawData } from '../../types.js';
2
+ export interface IAtlasBuilder<T> {
3
+ build(rawData: GoRawData, options?: any): Promise<T>;
4
+ }
5
+ //# sourceMappingURL=i-atlas-builder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"i-atlas-builder.d.ts","sourceRoot":"","sources":["../../../../../src/plugins/golang/atlas/builders/i-atlas-builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAOhD,MAAM,WAAW,aAAa,CAAC,CAAC;IAE9B,KAAK,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;CACtD"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=i-atlas-builder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"i-atlas-builder.js","sourceRoot":"","sources":["../../../../../src/plugins/golang/atlas/builders/i-atlas-builder.ts"],"names":[],"mappings":""}
@@ -0,0 +1,6 @@
1
+ export type { IAtlasBuilder } from './i-atlas-builder.js';
2
+ export { PackageGraphBuilder } from './package-graph-builder.js';
3
+ export { CapabilityGraphBuilder } from './capability-graph-builder.js';
4
+ export { GoroutineTopologyBuilder } from './goroutine-topology-builder.js';
5
+ export { FlowGraphBuilder } from './flow-graph-builder.js';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/plugins/golang/atlas/builders/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAC3E,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC"}
@@ -0,0 +1,5 @@
1
+ export { PackageGraphBuilder } from './package-graph-builder.js';
2
+ export { CapabilityGraphBuilder } from './capability-graph-builder.js';
3
+ export { GoroutineTopologyBuilder } from './goroutine-topology-builder.js';
4
+ export { FlowGraphBuilder } from './flow-graph-builder.js';
5
+ //# sourceMappingURL=index.js.map