@yalehwang/archguard 0.1.23 → 0.1.31

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 (689) hide show
  1. package/README.md +80 -23
  2. package/dist/analysis/atlas-metrics-analysis.d.ts +11 -0
  3. package/dist/analysis/atlas-metrics-analysis.d.ts.map +1 -0
  4. package/dist/analysis/atlas-metrics-analysis.js +17 -0
  5. package/dist/analysis/atlas-metrics-analysis.js.map +1 -0
  6. package/dist/analysis/fitness/dependency-checker.d.ts +4 -0
  7. package/dist/analysis/fitness/dependency-checker.d.ts.map +1 -0
  8. package/dist/analysis/fitness/dependency-checker.js +16 -0
  9. package/dist/analysis/fitness/dependency-checker.js.map +1 -0
  10. package/dist/analysis/fitness/rule-evaluator.d.ts +6 -0
  11. package/dist/analysis/fitness/rule-evaluator.d.ts.map +1 -0
  12. package/dist/analysis/fitness/rule-evaluator.js +64 -0
  13. package/dist/analysis/fitness/rule-evaluator.js.map +1 -0
  14. package/dist/analysis/fitness/rule-types.d.ts +34 -0
  15. package/dist/analysis/fitness/rule-types.d.ts.map +1 -0
  16. package/dist/analysis/fitness/rule-types.js +2 -0
  17. package/dist/analysis/fitness/rule-types.js.map +1 -0
  18. package/dist/analysis/gim/direction-hint.d.ts +18 -0
  19. package/dist/analysis/gim/direction-hint.d.ts.map +1 -0
  20. package/dist/analysis/gim/direction-hint.js +76 -0
  21. package/dist/analysis/gim/direction-hint.js.map +1 -0
  22. package/dist/analysis/gim/gim-loss-evaluator.d.ts +14 -0
  23. package/dist/analysis/gim/gim-loss-evaluator.d.ts.map +1 -0
  24. package/dist/analysis/gim/gim-loss-evaluator.js +80 -0
  25. package/dist/analysis/gim/gim-loss-evaluator.js.map +1 -0
  26. package/dist/analysis/gini.d.ts +2 -0
  27. package/dist/analysis/gini.d.ts.map +1 -0
  28. package/dist/analysis/gini.js +12 -0
  29. package/dist/analysis/gini.js.map +1 -0
  30. package/dist/analysis/git-history/git-log-reader.d.ts +24 -0
  31. package/dist/analysis/git-history/git-log-reader.d.ts.map +1 -0
  32. package/dist/analysis/git-history/git-log-reader.js +117 -0
  33. package/dist/analysis/git-history/git-log-reader.js.map +1 -0
  34. package/dist/analysis/git-history/history-aggregator.d.ts +19 -0
  35. package/dist/analysis/git-history/history-aggregator.d.ts.map +1 -0
  36. package/dist/analysis/git-history/history-aggregator.js +291 -0
  37. package/dist/analysis/git-history/history-aggregator.js.map +1 -0
  38. package/dist/analysis/git-history/history-query.d.ts +111 -0
  39. package/dist/analysis/git-history/history-query.d.ts.map +1 -0
  40. package/dist/analysis/git-history/history-query.js +201 -0
  41. package/dist/analysis/git-history/history-query.js.map +1 -0
  42. package/dist/analysis/git-history/index.d.ts +4 -0
  43. package/dist/analysis/git-history/index.d.ts.map +1 -0
  44. package/dist/analysis/git-history/index.js +4 -0
  45. package/dist/analysis/git-history/index.js.map +1 -0
  46. package/dist/analysis/metric-vector-builder.d.ts +5 -0
  47. package/dist/analysis/metric-vector-builder.d.ts.map +1 -0
  48. package/dist/analysis/metric-vector-builder.js +47 -0
  49. package/dist/analysis/metric-vector-builder.js.map +1 -0
  50. package/dist/analysis/metrics-history-reader.d.ts +4 -0
  51. package/dist/analysis/metrics-history-reader.d.ts.map +1 -0
  52. package/dist/analysis/metrics-history-reader.js +24 -0
  53. package/dist/analysis/metrics-history-reader.js.map +1 -0
  54. package/dist/analysis/package-metrics-analysis.d.ts +18 -0
  55. package/dist/analysis/package-metrics-analysis.d.ts.map +1 -0
  56. package/dist/analysis/package-metrics-analysis.js +59 -0
  57. package/dist/analysis/package-metrics-analysis.js.map +1 -0
  58. package/dist/analysis/project-semantics-loader.d.ts +3 -0
  59. package/dist/analysis/project-semantics-loader.d.ts.map +1 -0
  60. package/dist/analysis/project-semantics-loader.js +25 -0
  61. package/dist/analysis/project-semantics-loader.js.map +1 -0
  62. package/dist/analysis/snapshot-diff.d.ts +19 -0
  63. package/dist/analysis/snapshot-diff.d.ts.map +1 -0
  64. package/dist/analysis/snapshot-diff.js +54 -0
  65. package/dist/analysis/snapshot-diff.js.map +1 -0
  66. package/dist/analysis/snapshot-store.d.ts +15 -0
  67. package/dist/analysis/snapshot-store.d.ts.map +1 -0
  68. package/dist/analysis/snapshot-store.js +96 -0
  69. package/dist/analysis/snapshot-store.js.map +1 -0
  70. package/dist/analysis/test-analyzer.d.ts +4 -1
  71. package/dist/analysis/test-analyzer.d.ts.map +1 -1
  72. package/dist/analysis/test-analyzer.js +67 -14
  73. package/dist/analysis/test-analyzer.js.map +1 -1
  74. package/dist/analysis/test-coverage-mapper.d.ts +1 -1
  75. package/dist/analysis/test-coverage-mapper.d.ts.map +1 -1
  76. package/dist/analysis/test-coverage-mapper.js +32 -2
  77. package/dist/analysis/test-coverage-mapper.js.map +1 -1
  78. package/dist/analysis/test-issue-detector.d.ts +1 -1
  79. package/dist/analysis/test-issue-detector.d.ts.map +1 -1
  80. package/dist/analysis/test-issue-detector.js +7 -2
  81. package/dist/analysis/test-issue-detector.js.map +1 -1
  82. package/dist/analysis/test-pattern-advisor.d.ts +2 -0
  83. package/dist/analysis/test-pattern-advisor.d.ts.map +1 -0
  84. package/dist/analysis/test-pattern-advisor.js +59 -0
  85. package/dist/analysis/test-pattern-advisor.js.map +1 -0
  86. package/dist/cli/analyze/normalize-to-diagrams.d.ts +9 -0
  87. package/dist/cli/analyze/normalize-to-diagrams.d.ts.map +1 -1
  88. package/dist/cli/analyze/normalize-to-diagrams.js +35 -26
  89. package/dist/cli/analyze/normalize-to-diagrams.js.map +1 -1
  90. package/dist/cli/analyze/run-analysis.d.ts +1 -1
  91. package/dist/cli/analyze/run-analysis.d.ts.map +1 -1
  92. package/dist/cli/analyze/run-analysis.js +186 -32
  93. package/dist/cli/analyze/run-analysis.js.map +1 -1
  94. package/dist/cli/{cache-manager.d.ts → cache/cache-manager.d.ts} +1 -1
  95. package/dist/cli/cache/cache-manager.d.ts.map +1 -0
  96. package/dist/cli/{cache-manager.js → cache/cache-manager.js} +2 -2
  97. package/dist/cli/cache/cache-manager.js.map +1 -0
  98. package/dist/cli/cognitive/ccb-assembler.d.ts +8 -0
  99. package/dist/cli/cognitive/ccb-assembler.d.ts.map +1 -0
  100. package/dist/cli/cognitive/ccb-assembler.js +213 -0
  101. package/dist/cli/cognitive/ccb-assembler.js.map +1 -0
  102. package/dist/cli/cognitive/ccb-reader.d.ts +7 -0
  103. package/dist/cli/cognitive/ccb-reader.d.ts.map +1 -0
  104. package/dist/cli/cognitive/ccb-reader.js +27 -0
  105. package/dist/cli/cognitive/ccb-reader.js.map +1 -0
  106. package/dist/cli/cognitive/ccb-schema.d.ts +36 -0
  107. package/dist/cli/cognitive/ccb-schema.d.ts.map +1 -0
  108. package/dist/cli/cognitive/ccb-schema.js +2 -0
  109. package/dist/cli/cognitive/ccb-schema.js.map +1 -0
  110. package/dist/cli/cognitive/ccb-writer.d.ts +3 -0
  111. package/dist/cli/cognitive/ccb-writer.d.ts.map +1 -0
  112. package/dist/cli/cognitive/ccb-writer.js +12 -0
  113. package/dist/cli/cognitive/ccb-writer.js.map +1 -0
  114. package/dist/cli/commands/analyze.d.ts.map +1 -1
  115. package/dist/cli/commands/analyze.js +23 -4
  116. package/dist/cli/commands/analyze.js.map +1 -1
  117. package/dist/cli/commands/cache.js +2 -2
  118. package/dist/cli/commands/cache.js.map +1 -1
  119. package/dist/cli/commands/check.d.ts +3 -0
  120. package/dist/cli/commands/check.d.ts.map +1 -0
  121. package/dist/cli/commands/check.js +48 -0
  122. package/dist/cli/commands/check.js.map +1 -0
  123. package/dist/cli/commands/diff.d.ts +3 -0
  124. package/dist/cli/commands/diff.d.ts.map +1 -0
  125. package/dist/cli/commands/diff.js +89 -0
  126. package/dist/cli/commands/diff.js.map +1 -0
  127. package/dist/cli/commands/init.d.ts.map +1 -1
  128. package/dist/cli/commands/init.js +1 -2
  129. package/dist/cli/commands/init.js.map +1 -1
  130. package/dist/cli/commands/query.d.ts +51 -0
  131. package/dist/cli/commands/query.d.ts.map +1 -1
  132. package/dist/cli/commands/query.js +373 -17
  133. package/dist/cli/commands/query.js.map +1 -1
  134. package/dist/cli/config-loader.d.ts +50 -0
  135. package/dist/cli/config-loader.d.ts.map +1 -1
  136. package/dist/cli/config-loader.js +33 -0
  137. package/dist/cli/config-loader.js.map +1 -1
  138. package/dist/cli/{errors.d.ts → errors/index.d.ts} +16 -2
  139. package/dist/cli/errors/index.d.ts.map +1 -0
  140. package/dist/cli/{error-handler.js → errors/index.js} +32 -2
  141. package/dist/cli/errors/index.js.map +1 -0
  142. package/dist/cli/git-history/git-log-reader.d.ts +2 -0
  143. package/dist/cli/git-history/git-log-reader.d.ts.map +1 -0
  144. package/dist/cli/git-history/git-log-reader.js +2 -0
  145. package/dist/cli/git-history/git-log-reader.js.map +1 -0
  146. package/dist/cli/git-history/history-aggregator.d.ts +2 -0
  147. package/dist/cli/git-history/history-aggregator.d.ts.map +1 -0
  148. package/dist/cli/git-history/history-aggregator.js +2 -0
  149. package/dist/cli/git-history/history-aggregator.js.map +1 -0
  150. package/dist/cli/git-history/history-loader.d.ts +11 -0
  151. package/dist/cli/git-history/history-loader.d.ts.map +1 -0
  152. package/dist/cli/git-history/history-loader.js +30 -0
  153. package/dist/cli/git-history/history-loader.js.map +1 -0
  154. package/dist/cli/git-history/history-query.d.ts +2 -0
  155. package/dist/cli/git-history/history-query.d.ts.map +1 -0
  156. package/dist/cli/git-history/history-query.js +2 -0
  157. package/dist/cli/git-history/history-query.js.map +1 -0
  158. package/dist/cli/git-history/history-writer.d.ts +3 -0
  159. package/dist/cli/git-history/history-writer.d.ts.map +1 -0
  160. package/dist/cli/git-history/history-writer.js +14 -0
  161. package/dist/cli/git-history/history-writer.js.map +1 -0
  162. package/dist/cli/index.d.ts.map +1 -1
  163. package/dist/cli/index.js +5 -1
  164. package/dist/cli/index.js.map +1 -1
  165. package/dist/cli/mcp/analyze-tool.d.ts.map +1 -1
  166. package/dist/cli/mcp/analyze-tool.js +10 -4
  167. package/dist/cli/mcp/analyze-tool.js.map +1 -1
  168. package/dist/cli/mcp/mcp-server.d.ts.map +1 -1
  169. package/dist/cli/mcp/mcp-server.js +166 -47
  170. package/dist/cli/mcp/mcp-server.js.map +1 -1
  171. package/dist/cli/mcp/tools/atlas-analytics-tools.d.ts +7 -0
  172. package/dist/cli/mcp/tools/atlas-analytics-tools.d.ts.map +1 -0
  173. package/dist/cli/mcp/tools/atlas-analytics-tools.js +190 -0
  174. package/dist/cli/mcp/tools/atlas-analytics-tools.js.map +1 -0
  175. package/dist/cli/mcp/tools/call-graph-tools.d.ts +3 -0
  176. package/dist/cli/mcp/tools/call-graph-tools.d.ts.map +1 -0
  177. package/dist/cli/mcp/tools/call-graph-tools.js +47 -0
  178. package/dist/cli/mcp/tools/call-graph-tools.js.map +1 -0
  179. package/dist/cli/mcp/tools/ccb-tool.d.ts +3 -0
  180. package/dist/cli/mcp/tools/ccb-tool.d.ts.map +1 -0
  181. package/dist/cli/mcp/tools/ccb-tool.js +63 -0
  182. package/dist/cli/mcp/tools/ccb-tool.js.map +1 -0
  183. package/dist/cli/mcp/tools/cognitive-summary-tool.d.ts +3 -0
  184. package/dist/cli/mcp/tools/cognitive-summary-tool.d.ts.map +1 -0
  185. package/dist/cli/mcp/tools/cognitive-summary-tool.js +118 -0
  186. package/dist/cli/mcp/tools/cognitive-summary-tool.js.map +1 -0
  187. package/dist/cli/mcp/tools/gim-tools.d.ts +3 -0
  188. package/dist/cli/mcp/tools/gim-tools.d.ts.map +1 -0
  189. package/dist/cli/mcp/tools/gim-tools.js +78 -0
  190. package/dist/cli/mcp/tools/gim-tools.js.map +1 -0
  191. package/dist/cli/mcp/tools/git-history-analyze-tool.d.ts +3 -0
  192. package/dist/cli/mcp/tools/git-history-analyze-tool.d.ts.map +1 -0
  193. package/dist/cli/mcp/tools/git-history-analyze-tool.js +172 -0
  194. package/dist/cli/mcp/tools/git-history-analyze-tool.js.map +1 -0
  195. package/dist/cli/mcp/tools/git-history-evidence-pack-tool.d.ts +3 -0
  196. package/dist/cli/mcp/tools/git-history-evidence-pack-tool.d.ts.map +1 -0
  197. package/dist/cli/mcp/tools/git-history-evidence-pack-tool.js +87 -0
  198. package/dist/cli/mcp/tools/git-history-evidence-pack-tool.js.map +1 -0
  199. package/dist/cli/mcp/tools/git-history-tools.d.ts +3 -0
  200. package/dist/cli/mcp/tools/git-history-tools.d.ts.map +1 -0
  201. package/dist/cli/mcp/tools/git-history-tools.js +125 -0
  202. package/dist/cli/mcp/tools/git-history-tools.js.map +1 -0
  203. package/dist/cli/mcp/tools/metric-trend-tools.d.ts +8 -0
  204. package/dist/cli/mcp/tools/metric-trend-tools.d.ts.map +1 -0
  205. package/dist/cli/mcp/tools/metric-trend-tools.js +50 -0
  206. package/dist/cli/mcp/tools/metric-trend-tools.js.map +1 -0
  207. package/dist/cli/mcp/tools/package-metrics-tools.d.ts +7 -0
  208. package/dist/cli/mcp/tools/package-metrics-tools.d.ts.map +1 -0
  209. package/dist/cli/mcp/tools/package-metrics-tools.js +62 -0
  210. package/dist/cli/mcp/tools/package-metrics-tools.js.map +1 -0
  211. package/dist/cli/mcp/tools/test-analysis-tools.d.ts.map +1 -1
  212. package/dist/cli/mcp/tools/test-analysis-tools.js +75 -84
  213. package/dist/cli/mcp/tools/test-analysis-tools.js.map +1 -1
  214. package/dist/cli/metrics-history-writer.d.ts +16 -0
  215. package/dist/cli/metrics-history-writer.d.ts.map +1 -0
  216. package/dist/cli/metrics-history-writer.js +16 -0
  217. package/dist/cli/metrics-history-writer.js.map +1 -0
  218. package/dist/cli/processors/arch-json-provider-types.d.ts +12 -0
  219. package/dist/cli/processors/arch-json-provider-types.d.ts.map +1 -0
  220. package/dist/cli/processors/arch-json-provider-types.js +2 -0
  221. package/dist/cli/processors/arch-json-provider-types.js.map +1 -0
  222. package/dist/cli/processors/arch-json-provider.d.ts +4 -13
  223. package/dist/cli/processors/arch-json-provider.d.ts.map +1 -1
  224. package/dist/cli/processors/arch-json-provider.js +54 -76
  225. package/dist/cli/processors/arch-json-provider.js.map +1 -1
  226. package/dist/cli/processors/arch-json-utils.d.ts +4 -0
  227. package/dist/cli/processors/arch-json-utils.d.ts.map +1 -0
  228. package/dist/cli/processors/arch-json-utils.js +73 -0
  229. package/dist/cli/processors/arch-json-utils.js.map +1 -0
  230. package/dist/cli/processors/diagram-output-router.d.ts +3 -1
  231. package/dist/cli/processors/diagram-output-router.d.ts.map +1 -1
  232. package/dist/cli/processors/diagram-output-router.js +28 -3
  233. package/dist/cli/processors/diagram-output-router.js.map +1 -1
  234. package/dist/cli/processors/diagram-pipeline-runner.d.ts +20 -0
  235. package/dist/cli/processors/diagram-pipeline-runner.d.ts.map +1 -0
  236. package/dist/cli/processors/diagram-pipeline-runner.js +171 -0
  237. package/dist/cli/processors/diagram-pipeline-runner.js.map +1 -0
  238. package/dist/cli/processors/diagram-processor.d.ts +11 -8
  239. package/dist/cli/processors/diagram-processor.d.ts.map +1 -1
  240. package/dist/cli/processors/diagram-processor.js +19 -148
  241. package/dist/cli/processors/diagram-processor.js.map +1 -1
  242. package/dist/cli/processors/query-scope-collector.d.ts +11 -0
  243. package/dist/cli/processors/query-scope-collector.d.ts.map +1 -0
  244. package/dist/cli/processors/query-scope-collector.js +44 -0
  245. package/dist/cli/processors/query-scope-collector.js.map +1 -0
  246. package/dist/cli/processors/test-coverage-writer.d.ts +4 -0
  247. package/dist/cli/processors/test-coverage-writer.d.ts.map +1 -0
  248. package/dist/cli/processors/test-coverage-writer.js +22 -0
  249. package/dist/cli/processors/test-coverage-writer.js.map +1 -0
  250. package/dist/cli/processors/worker-pool-factory.d.ts +6 -0
  251. package/dist/cli/processors/worker-pool-factory.d.ts.map +1 -0
  252. package/dist/cli/processors/worker-pool-factory.js +22 -0
  253. package/dist/cli/processors/worker-pool-factory.js.map +1 -0
  254. package/dist/cli/{progress.d.ts → progress/index.d.ts} +1 -1
  255. package/dist/cli/progress/index.d.ts.map +1 -0
  256. package/dist/cli/{progress.js → progress/index.js} +1 -1
  257. package/dist/cli/progress/index.js.map +1 -0
  258. package/dist/cli/query/arch-index-builder.d.ts +1 -3
  259. package/dist/cli/query/arch-index-builder.d.ts.map +1 -1
  260. package/dist/cli/query/arch-index-builder.js +1 -125
  261. package/dist/cli/query/arch-index-builder.js.map +1 -1
  262. package/dist/cli/query/arch-index.d.ts +2 -16
  263. package/dist/cli/query/arch-index.d.ts.map +1 -1
  264. package/dist/cli/query/arch-index.js +1 -1
  265. package/dist/cli/query/arch-index.js.map +1 -1
  266. package/dist/cli/query/engine-loader.d.ts +9 -1
  267. package/dist/cli/query/engine-loader.d.ts.map +1 -1
  268. package/dist/cli/query/engine-loader.js +5 -1
  269. package/dist/cli/query/engine-loader.js.map +1 -1
  270. package/dist/cli/query/query-artifacts.d.ts.map +1 -1
  271. package/dist/cli/query/query-artifacts.js +2 -1
  272. package/dist/cli/query/query-artifacts.js.map +1 -1
  273. package/dist/cli/query/query-engine.d.ts +3 -105
  274. package/dist/cli/query/query-engine.d.ts.map +1 -1
  275. package/dist/cli/query/query-engine.js +1 -417
  276. package/dist/cli/query/query-engine.js.map +1 -1
  277. package/dist/cli/utils/java-project-structure-detector.js +1 -1
  278. package/dist/cli/utils/java-project-structure-detector.js.map +1 -1
  279. package/dist/cli/utils/kotlin-project-structure-detector.d.ts +7 -0
  280. package/dist/cli/utils/kotlin-project-structure-detector.d.ts.map +1 -0
  281. package/dist/cli/utils/kotlin-project-structure-detector.js +101 -0
  282. package/dist/cli/utils/kotlin-project-structure-detector.js.map +1 -0
  283. package/dist/cli/utils/output-path-resolver.d.ts.map +1 -1
  284. package/dist/cli/utils/output-path-resolver.js.map +1 -1
  285. package/dist/cli/utils/project-language-detector.d.ts +1 -1
  286. package/dist/cli/utils/project-language-detector.d.ts.map +1 -1
  287. package/dist/cli/utils/project-language-detector.js +5 -1
  288. package/dist/cli/utils/project-language-detector.js.map +1 -1
  289. package/dist/cli/utils/project-structure-detector.js +3 -3
  290. package/dist/cli/utils/project-structure-detector.js.map +1 -1
  291. package/dist/cli/utils/test-output-writer.d.ts +1 -1
  292. package/dist/cli/utils/test-output-writer.d.ts.map +1 -1
  293. package/dist/cli/utils/test-output-writer.js.map +1 -1
  294. package/dist/core/entity-type-registry.d.ts +10 -0
  295. package/dist/core/entity-type-registry.d.ts.map +1 -0
  296. package/dist/core/entity-type-registry.js +17 -0
  297. package/dist/core/entity-type-registry.js.map +1 -0
  298. package/dist/core/interfaces/dependency.d.ts +1 -1
  299. package/dist/core/interfaces/dependency.d.ts.map +1 -1
  300. package/dist/core/interfaces/index.d.ts +2 -0
  301. package/dist/core/interfaces/index.d.ts.map +1 -1
  302. package/dist/core/interfaces/index.js.map +1 -1
  303. package/dist/core/interfaces/language-plugin.d.ts +8 -1
  304. package/dist/core/interfaces/language-plugin.d.ts.map +1 -1
  305. package/dist/core/interfaces/parser-facade.d.ts +5 -0
  306. package/dist/core/interfaces/parser-facade.d.ts.map +1 -0
  307. package/dist/core/interfaces/parser-facade.js +2 -0
  308. package/dist/core/interfaces/parser-facade.js.map +1 -0
  309. package/dist/core/interfaces/renderer-facade.d.ts +8 -0
  310. package/dist/core/interfaces/renderer-facade.d.ts.map +1 -0
  311. package/dist/core/interfaces/renderer-facade.js +2 -0
  312. package/dist/core/interfaces/renderer-facade.js.map +1 -0
  313. package/dist/core/interfaces/validation.d.ts.map +1 -1
  314. package/dist/core/plugin-registry.d.ts.map +1 -1
  315. package/dist/core/plugin-registry.js +2 -0
  316. package/dist/core/plugin-registry.js.map +1 -1
  317. package/dist/core/query/arch-index-builder.d.ts +4 -0
  318. package/dist/core/query/arch-index-builder.d.ts.map +1 -0
  319. package/dist/core/query/arch-index-builder.js +126 -0
  320. package/dist/core/query/arch-index-builder.js.map +1 -0
  321. package/dist/core/query/arch-index.d.ts +17 -0
  322. package/dist/core/query/arch-index.d.ts.map +1 -0
  323. package/dist/core/query/arch-index.js +2 -0
  324. package/dist/core/query/arch-index.js.map +1 -0
  325. package/dist/core/query/arch-metrics-cognitive.d.ts +32 -0
  326. package/dist/core/query/arch-metrics-cognitive.d.ts.map +1 -0
  327. package/dist/core/query/arch-metrics-cognitive.js +60 -0
  328. package/dist/core/query/arch-metrics-cognitive.js.map +1 -0
  329. package/dist/core/query/arch-metrics-quality.d.ts +24 -0
  330. package/dist/core/query/arch-metrics-quality.d.ts.map +1 -0
  331. package/dist/core/query/arch-metrics-quality.js +86 -0
  332. package/dist/core/query/arch-metrics-quality.js.map +1 -0
  333. package/dist/core/query/arch-metrics-structure.d.ts +43 -0
  334. package/dist/core/query/arch-metrics-structure.d.ts.map +1 -0
  335. package/dist/core/query/arch-metrics-structure.js +291 -0
  336. package/dist/core/query/arch-metrics-structure.js.map +1 -0
  337. package/dist/core/query/arch-metrics.d.ts +54 -0
  338. package/dist/core/query/arch-metrics.d.ts.map +1 -0
  339. package/dist/core/query/arch-metrics.js +42 -0
  340. package/dist/core/query/arch-metrics.js.map +1 -0
  341. package/dist/core/query/edge-list-serializer.d.ts +4 -0
  342. package/dist/core/query/edge-list-serializer.d.ts.map +1 -0
  343. package/dist/core/query/edge-list-serializer.js +24 -0
  344. package/dist/core/query/edge-list-serializer.js.map +1 -0
  345. package/dist/core/query/entity-query-service.d.ts +15 -0
  346. package/dist/core/query/entity-query-service.d.ts.map +1 -0
  347. package/dist/core/query/entity-query-service.js +51 -0
  348. package/dist/core/query/entity-query-service.js.map +1 -0
  349. package/dist/core/query/extension-accessor.d.ts +15 -0
  350. package/dist/core/query/extension-accessor.d.ts.map +1 -0
  351. package/dist/core/query/extension-accessor.js +28 -0
  352. package/dist/core/query/extension-accessor.js.map +1 -0
  353. package/dist/core/query/index.d.ts +8 -0
  354. package/dist/core/query/index.d.ts.map +1 -0
  355. package/dist/core/query/index.js +6 -0
  356. package/dist/core/query/index.js.map +1 -0
  357. package/dist/core/query/output-scope-filter.d.ts +6 -0
  358. package/dist/core/query/output-scope-filter.d.ts.map +1 -0
  359. package/dist/core/query/output-scope-filter.js +45 -0
  360. package/dist/core/query/output-scope-filter.js.map +1 -0
  361. package/dist/core/query/query-engine.d.ts +116 -0
  362. package/dist/core/query/query-engine.d.ts.map +1 -0
  363. package/dist/core/query/query-engine.js +105 -0
  364. package/dist/core/query/query-engine.js.map +1 -0
  365. package/dist/core/query/relation-query-service.d.ts +21 -0
  366. package/dist/core/query/relation-query-service.d.ts.map +1 -0
  367. package/dist/core/query/relation-query-service.js +124 -0
  368. package/dist/core/query/relation-query-service.js.map +1 -0
  369. package/dist/mermaid/auto-repair.d.ts +1 -1
  370. package/dist/mermaid/auto-repair.d.ts.map +1 -1
  371. package/dist/mermaid/auto-repair.js +6 -6
  372. package/dist/mermaid/auto-repair.js.map +1 -1
  373. package/dist/mermaid/cpp-package-flowchart-generator.js +1 -1
  374. package/dist/mermaid/cpp-package-flowchart-generator.js.map +1 -1
  375. package/dist/mermaid/diagram-generator.d.ts +2 -1
  376. package/dist/mermaid/diagram-generator.d.ts.map +1 -1
  377. package/dist/mermaid/diagram-generator.js +17 -16
  378. package/dist/mermaid/diagram-generator.js.map +1 -1
  379. package/dist/mermaid/generator-formatting.d.ts +1 -1
  380. package/dist/mermaid/generator-formatting.d.ts.map +1 -1
  381. package/dist/mermaid/generator-formatting.js +2 -0
  382. package/dist/mermaid/generator-formatting.js.map +1 -1
  383. package/dist/mermaid/generator-validation.d.ts.map +1 -1
  384. package/dist/mermaid/generator-validation.js.map +1 -1
  385. package/dist/mermaid/generator.d.ts +5 -10
  386. package/dist/mermaid/generator.d.ts.map +1 -1
  387. package/dist/mermaid/generator.js +192 -227
  388. package/dist/mermaid/generator.js.map +1 -1
  389. package/dist/mermaid/grouper.d.ts.map +1 -1
  390. package/dist/mermaid/grouper.js.map +1 -1
  391. package/dist/mermaid/test-coverage-renderer.d.ts +1 -1
  392. package/dist/mermaid/test-coverage-renderer.d.ts.map +1 -1
  393. package/dist/mermaid/ts-module-graph-renderer.d.ts +6 -2
  394. package/dist/mermaid/ts-module-graph-renderer.d.ts.map +1 -1
  395. package/dist/mermaid/ts-module-graph-renderer.js +49 -2
  396. package/dist/mermaid/ts-module-graph-renderer.js.map +1 -1
  397. package/dist/mermaid/validator-quality.js +1 -1
  398. package/dist/mermaid/validator-quality.js.map +1 -1
  399. package/dist/mermaid/validator-render.js +1 -1
  400. package/dist/mermaid/validator-render.js.map +1 -1
  401. package/dist/parser/archjson-aggregator.d.ts +1 -0
  402. package/dist/parser/archjson-aggregator.d.ts.map +1 -1
  403. package/dist/parser/archjson-aggregator.js +37 -7
  404. package/dist/parser/archjson-aggregator.js.map +1 -1
  405. package/dist/parser/call-edge-extractor.d.ts +13 -0
  406. package/dist/parser/call-edge-extractor.d.ts.map +1 -0
  407. package/dist/parser/call-edge-extractor.js +70 -0
  408. package/dist/parser/call-edge-extractor.js.map +1 -0
  409. package/dist/parser/metrics-calculator.d.ts.map +1 -1
  410. package/dist/parser/metrics-calculator.js +2 -1
  411. package/dist/parser/metrics-calculator.js.map +1 -1
  412. package/dist/parser/parallel-parser.d.ts +2 -1
  413. package/dist/parser/parallel-parser.d.ts.map +1 -1
  414. package/dist/parser/parallel-parser.js +4 -2
  415. package/dist/parser/parallel-parser.js.map +1 -1
  416. package/dist/parser/relation-extractor.d.ts +1 -0
  417. package/dist/parser/relation-extractor.d.ts.map +1 -1
  418. package/dist/parser/relation-extractor.js +84 -4
  419. package/dist/parser/relation-extractor.js.map +1 -1
  420. package/dist/parser/typescript-parser.d.ts +2 -0
  421. package/dist/parser/typescript-parser.d.ts.map +1 -1
  422. package/dist/parser/typescript-parser.js +44 -5
  423. package/dist/parser/typescript-parser.js.map +1 -1
  424. package/dist/plugins/cpp/archjson-mapper.d.ts.map +1 -1
  425. package/dist/plugins/cpp/archjson-mapper.js.map +1 -1
  426. package/dist/plugins/cpp/builders/class-builder.d.ts.map +1 -1
  427. package/dist/plugins/cpp/builders/class-builder.js +6 -1
  428. package/dist/plugins/cpp/builders/class-builder.js.map +1 -1
  429. package/dist/plugins/cpp/index.d.ts +3 -3
  430. package/dist/plugins/cpp/index.d.ts.map +1 -1
  431. package/dist/plugins/cpp/index.js +36 -7
  432. package/dist/plugins/cpp/index.js.map +1 -1
  433. package/dist/plugins/cpp/tree-sitter-bridge.d.ts.map +1 -1
  434. package/dist/plugins/cpp/tree-sitter-bridge.js +10 -7
  435. package/dist/plugins/cpp/tree-sitter-bridge.js.map +1 -1
  436. package/dist/plugins/golang/archjson-mapper.d.ts +3 -1
  437. package/dist/plugins/golang/archjson-mapper.d.ts.map +1 -1
  438. package/dist/plugins/golang/archjson-mapper.js +56 -1
  439. package/dist/plugins/golang/archjson-mapper.js.map +1 -1
  440. package/dist/plugins/golang/atlas/behavior-analyzer.d.ts +2 -1
  441. package/dist/plugins/golang/atlas/behavior-analyzer.d.ts.map +1 -1
  442. package/dist/plugins/golang/atlas/behavior-analyzer.js +2 -2
  443. package/dist/plugins/golang/atlas/behavior-analyzer.js.map +1 -1
  444. package/dist/plugins/golang/atlas/builders/capability-graph-builder.d.ts +5 -1
  445. package/dist/plugins/golang/atlas/builders/capability-graph-builder.d.ts.map +1 -1
  446. package/dist/plugins/golang/atlas/builders/capability-graph-builder.js +43 -1
  447. package/dist/plugins/golang/atlas/builders/capability-graph-builder.js.map +1 -1
  448. package/dist/plugins/golang/atlas/builders/flow-graph-builder.d.ts +3 -0
  449. package/dist/plugins/golang/atlas/builders/flow-graph-builder.d.ts.map +1 -1
  450. package/dist/plugins/golang/atlas/builders/flow-graph-builder.js +166 -6
  451. package/dist/plugins/golang/atlas/builders/flow-graph-builder.js.map +1 -1
  452. package/dist/plugins/golang/atlas/builders/goroutine-topology-builder.d.ts.map +1 -1
  453. package/dist/plugins/golang/atlas/builders/goroutine-topology-builder.js +12 -5
  454. package/dist/plugins/golang/atlas/builders/goroutine-topology-builder.js.map +1 -1
  455. package/dist/plugins/golang/atlas/builders/package-graph-builder.js +5 -5
  456. package/dist/plugins/golang/atlas/builders/package-graph-builder.js.map +1 -1
  457. package/dist/plugins/golang/atlas/framework-detector.d.ts.map +1 -1
  458. package/dist/plugins/golang/atlas/framework-detector.js +2 -0
  459. package/dist/plugins/golang/atlas/framework-detector.js.map +1 -1
  460. package/dist/plugins/golang/atlas/go-mod-resolver.d.ts.map +1 -1
  461. package/dist/plugins/golang/atlas/go-mod-resolver.js +3 -3
  462. package/dist/plugins/golang/atlas/go-mod-resolver.js.map +1 -1
  463. package/dist/plugins/golang/atlas/renderers/atlas-renderer.d.ts.map +1 -1
  464. package/dist/plugins/golang/atlas/renderers/atlas-renderer.js +32 -2
  465. package/dist/plugins/golang/atlas/renderers/atlas-renderer.js.map +1 -1
  466. package/dist/plugins/golang/atlas/renderers/capability-mermaid-template.d.ts.map +1 -1
  467. package/dist/plugins/golang/atlas/renderers/capability-mermaid-template.js +16 -5
  468. package/dist/plugins/golang/atlas/renderers/capability-mermaid-template.js.map +1 -1
  469. package/dist/plugins/golang/atlas/renderers/flow-mermaid-template.js.map +1 -1
  470. package/dist/plugins/golang/atlas/renderers/goroutine-mermaid-template.d.ts.map +1 -1
  471. package/dist/plugins/golang/atlas/renderers/goroutine-mermaid-template.js.map +1 -1
  472. package/dist/plugins/golang/atlas/renderers/mermaid-templates.d.ts.map +1 -1
  473. package/dist/plugins/golang/atlas/renderers/mermaid-templates.js.map +1 -1
  474. package/dist/plugins/golang/atlas/renderers/package-mermaid-template.d.ts.map +1 -1
  475. package/dist/plugins/golang/atlas/renderers/package-mermaid-template.js +5 -5
  476. package/dist/plugins/golang/atlas/renderers/package-mermaid-template.js.map +1 -1
  477. package/dist/plugins/golang/atlas/renderers/template-shared.d.ts.map +1 -1
  478. package/dist/plugins/golang/atlas/renderers/template-shared.js.map +1 -1
  479. package/dist/plugins/golang/atlas/types.d.ts +9 -3
  480. package/dist/plugins/golang/atlas/types.d.ts.map +1 -1
  481. package/dist/plugins/golang/atlas/types.js +1 -1
  482. package/dist/plugins/golang/atlas/types.js.map +1 -1
  483. package/dist/plugins/golang/builders/function-builder.d.ts +19 -0
  484. package/dist/plugins/golang/builders/function-builder.d.ts.map +1 -0
  485. package/dist/plugins/golang/builders/function-builder.js +206 -0
  486. package/dist/plugins/golang/builders/function-builder.js.map +1 -0
  487. package/dist/plugins/golang/builders/goroutine-builder.d.ts +11 -0
  488. package/dist/plugins/golang/builders/goroutine-builder.d.ts.map +1 -0
  489. package/dist/plugins/golang/builders/goroutine-builder.js +147 -0
  490. package/dist/plugins/golang/builders/goroutine-builder.js.map +1 -0
  491. package/dist/plugins/golang/builders/interface-builder.d.ts +9 -0
  492. package/dist/plugins/golang/builders/interface-builder.d.ts.map +1 -0
  493. package/dist/plugins/golang/builders/interface-builder.js +126 -0
  494. package/dist/plugins/golang/builders/interface-builder.js.map +1 -0
  495. package/dist/plugins/golang/builders/node-utils.d.ts +8 -0
  496. package/dist/plugins/golang/builders/node-utils.d.ts.map +1 -0
  497. package/dist/plugins/golang/builders/node-utils.js +18 -0
  498. package/dist/plugins/golang/builders/node-utils.js.map +1 -0
  499. package/dist/plugins/golang/builders/struct-builder.d.ts +12 -0
  500. package/dist/plugins/golang/builders/struct-builder.d.ts.map +1 -0
  501. package/dist/plugins/golang/builders/struct-builder.js +81 -0
  502. package/dist/plugins/golang/builders/struct-builder.js.map +1 -0
  503. package/dist/plugins/golang/go-atlas-adapter.d.ts +11 -0
  504. package/dist/plugins/golang/go-atlas-adapter.d.ts.map +1 -0
  505. package/dist/plugins/golang/go-atlas-adapter.js +47 -0
  506. package/dist/plugins/golang/go-atlas-adapter.js.map +1 -0
  507. package/dist/plugins/golang/go-atlas-coordinator.d.ts +12 -0
  508. package/dist/plugins/golang/go-atlas-coordinator.d.ts.map +1 -0
  509. package/dist/plugins/golang/go-atlas-coordinator.js +76 -0
  510. package/dist/plugins/golang/go-atlas-coordinator.js.map +1 -0
  511. package/dist/plugins/golang/go-mod-reader.d.ts +2 -0
  512. package/dist/plugins/golang/go-mod-reader.d.ts.map +1 -0
  513. package/dist/plugins/golang/go-mod-reader.js +12 -0
  514. package/dist/plugins/golang/go-mod-reader.js.map +1 -0
  515. package/dist/plugins/golang/go-parse-coordinator.d.ts +23 -0
  516. package/dist/plugins/golang/go-parse-coordinator.d.ts.map +1 -0
  517. package/dist/plugins/golang/go-parse-coordinator.js +137 -0
  518. package/dist/plugins/golang/go-parse-coordinator.js.map +1 -0
  519. package/dist/plugins/golang/go-test-analyzer.d.ts +10 -0
  520. package/dist/plugins/golang/go-test-analyzer.d.ts.map +1 -0
  521. package/dist/plugins/golang/go-test-analyzer.js +90 -0
  522. package/dist/plugins/golang/go-test-analyzer.js.map +1 -0
  523. package/dist/plugins/golang/gopls-client.js +6 -6
  524. package/dist/plugins/golang/gopls-client.js.map +1 -1
  525. package/dist/plugins/golang/gopls-interface-resolver.d.ts +19 -0
  526. package/dist/plugins/golang/gopls-interface-resolver.d.ts.map +1 -0
  527. package/dist/plugins/golang/gopls-interface-resolver.js +49 -0
  528. package/dist/plugins/golang/gopls-interface-resolver.js.map +1 -0
  529. package/dist/plugins/golang/index.d.ts +12 -17
  530. package/dist/plugins/golang/index.d.ts.map +1 -1
  531. package/dist/plugins/golang/index.js +44 -326
  532. package/dist/plugins/golang/index.js.map +1 -1
  533. package/dist/plugins/golang/tree-sitter-bridge.d.ts +4 -24
  534. package/dist/plugins/golang/tree-sitter-bridge.d.ts.map +1 -1
  535. package/dist/plugins/golang/tree-sitter-bridge.js +16 -526
  536. package/dist/plugins/golang/tree-sitter-bridge.js.map +1 -1
  537. package/dist/plugins/golang/types.d.ts +5 -0
  538. package/dist/plugins/golang/types.d.ts.map +1 -1
  539. package/dist/plugins/java/archjson-mapper.d.ts +3 -1
  540. package/dist/plugins/java/archjson-mapper.d.ts.map +1 -1
  541. package/dist/plugins/java/archjson-mapper.js +123 -0
  542. package/dist/plugins/java/archjson-mapper.js.map +1 -1
  543. package/dist/plugins/java/dependency-extractor.js +2 -2
  544. package/dist/plugins/java/dependency-extractor.js.map +1 -1
  545. package/dist/plugins/java/index.d.ts +2 -2
  546. package/dist/plugins/java/index.d.ts.map +1 -1
  547. package/dist/plugins/java/index.js +73 -16
  548. package/dist/plugins/java/index.js.map +1 -1
  549. package/dist/plugins/java/maven-crossmodule-parser.d.ts +9 -0
  550. package/dist/plugins/java/maven-crossmodule-parser.d.ts.map +1 -0
  551. package/dist/plugins/java/maven-crossmodule-parser.js +54 -0
  552. package/dist/plugins/java/maven-crossmodule-parser.js.map +1 -0
  553. package/dist/plugins/java/tree-sitter-bridge.d.ts +2 -0
  554. package/dist/plugins/java/tree-sitter-bridge.d.ts.map +1 -1
  555. package/dist/plugins/java/tree-sitter-bridge.js +70 -7
  556. package/dist/plugins/java/tree-sitter-bridge.js.map +1 -1
  557. package/dist/plugins/java/types.d.ts +7 -0
  558. package/dist/plugins/java/types.d.ts.map +1 -1
  559. package/dist/plugins/kotlin/archjson-mapper.d.ts +12 -0
  560. package/dist/plugins/kotlin/archjson-mapper.d.ts.map +1 -0
  561. package/dist/plugins/kotlin/archjson-mapper.js +157 -0
  562. package/dist/plugins/kotlin/archjson-mapper.js.map +1 -0
  563. package/dist/plugins/kotlin/builders/class-builder.d.ts +26 -0
  564. package/dist/plugins/kotlin/builders/class-builder.d.ts.map +1 -0
  565. package/dist/plugins/kotlin/builders/class-builder.js +366 -0
  566. package/dist/plugins/kotlin/builders/class-builder.js.map +1 -0
  567. package/dist/plugins/kotlin/builders/function-builder.d.ts +15 -0
  568. package/dist/plugins/kotlin/builders/function-builder.d.ts.map +1 -0
  569. package/dist/plugins/kotlin/builders/function-builder.js +172 -0
  570. package/dist/plugins/kotlin/builders/function-builder.js.map +1 -0
  571. package/dist/plugins/kotlin/builders/import-resolver.d.ts +5 -0
  572. package/dist/plugins/kotlin/builders/import-resolver.d.ts.map +1 -0
  573. package/dist/plugins/kotlin/builders/import-resolver.js +10 -0
  574. package/dist/plugins/kotlin/builders/import-resolver.js.map +1 -0
  575. package/dist/plugins/kotlin/dependency-extractor.d.ts +13 -0
  576. package/dist/plugins/kotlin/dependency-extractor.d.ts.map +1 -0
  577. package/dist/plugins/kotlin/dependency-extractor.js +104 -0
  578. package/dist/plugins/kotlin/dependency-extractor.js.map +1 -0
  579. package/dist/plugins/kotlin/index.d.ts +26 -0
  580. package/dist/plugins/kotlin/index.d.ts.map +1 -0
  581. package/dist/plugins/kotlin/index.js +238 -0
  582. package/dist/plugins/kotlin/index.js.map +1 -0
  583. package/dist/plugins/kotlin/kotlin-type-extractor.d.ts +7 -0
  584. package/dist/plugins/kotlin/kotlin-type-extractor.d.ts.map +1 -0
  585. package/dist/plugins/kotlin/kotlin-type-extractor.js +96 -0
  586. package/dist/plugins/kotlin/kotlin-type-extractor.js.map +1 -0
  587. package/dist/plugins/kotlin/tree-sitter-bridge.d.ts +15 -0
  588. package/dist/plugins/kotlin/tree-sitter-bridge.d.ts.map +1 -0
  589. package/dist/plugins/kotlin/tree-sitter-bridge.js +79 -0
  590. package/dist/plugins/kotlin/tree-sitter-bridge.js.map +1 -0
  591. package/dist/plugins/kotlin/types.d.ts +48 -0
  592. package/dist/plugins/kotlin/types.d.ts.map +1 -0
  593. package/dist/plugins/kotlin/types.js +2 -0
  594. package/dist/plugins/kotlin/types.js.map +1 -0
  595. package/dist/plugins/python/archjson-mapper.d.ts +7 -2
  596. package/dist/plugins/python/archjson-mapper.d.ts.map +1 -1
  597. package/dist/plugins/python/archjson-mapper.js +117 -10
  598. package/dist/plugins/python/archjson-mapper.js.map +1 -1
  599. package/dist/plugins/python/dependency-extractor.js +1 -1
  600. package/dist/plugins/python/dependency-extractor.js.map +1 -1
  601. package/dist/plugins/python/import-extractor.d.ts +11 -0
  602. package/dist/plugins/python/import-extractor.d.ts.map +1 -0
  603. package/dist/plugins/python/import-extractor.js +67 -0
  604. package/dist/plugins/python/import-extractor.js.map +1 -0
  605. package/dist/plugins/python/index.d.ts +4 -3
  606. package/dist/plugins/python/index.d.ts.map +1 -1
  607. package/dist/plugins/python/index.js +86 -11
  608. package/dist/plugins/python/index.js.map +1 -1
  609. package/dist/plugins/python/tree-sitter-bridge.d.ts +2 -0
  610. package/dist/plugins/python/tree-sitter-bridge.d.ts.map +1 -1
  611. package/dist/plugins/python/tree-sitter-bridge.js +67 -1
  612. package/dist/plugins/python/tree-sitter-bridge.js.map +1 -1
  613. package/dist/plugins/python/types.d.ts +6 -0
  614. package/dist/plugins/python/types.d.ts.map +1 -1
  615. package/dist/plugins/shared/mapper-utils.d.ts +1 -1
  616. package/dist/plugins/shared/mapper-utils.d.ts.map +1 -1
  617. package/dist/plugins/shared/mapper-utils.js.map +1 -1
  618. package/dist/plugins/typescript/builders/module-graph-builder.d.ts +2 -2
  619. package/dist/plugins/typescript/builders/module-graph-builder.d.ts.map +1 -1
  620. package/dist/plugins/typescript/builders/module-graph-builder.js +29 -8
  621. package/dist/plugins/typescript/builders/module-graph-builder.js.map +1 -1
  622. package/dist/plugins/typescript/index.d.ts +3 -2
  623. package/dist/plugins/typescript/index.d.ts.map +1 -1
  624. package/dist/plugins/typescript/index.js +116 -10
  625. package/dist/plugins/typescript/index.js.map +1 -1
  626. package/dist/plugins/typescript/typescript-analyzer.d.ts +2 -2
  627. package/dist/plugins/typescript/typescript-analyzer.d.ts.map +1 -1
  628. package/dist/plugins/typescript/typescript-analyzer.js +1 -1
  629. package/dist/plugins/typescript/typescript-analyzer.js.map +1 -1
  630. package/dist/types/cognitive-summary.d.ts +20 -0
  631. package/dist/types/cognitive-summary.d.ts.map +1 -0
  632. package/dist/types/cognitive-summary.js +2 -0
  633. package/dist/types/cognitive-summary.js.map +1 -0
  634. package/dist/types/config-cli.d.ts +4 -0
  635. package/dist/types/config-cli.d.ts.map +1 -1
  636. package/dist/types/config-global.d.ts +4 -0
  637. package/dist/types/config-global.d.ts.map +1 -1
  638. package/dist/types/{extensions.d.ts → extensions/go-atlas.d.ts} +5 -106
  639. package/dist/types/extensions/go-atlas.d.ts.map +1 -0
  640. package/dist/types/extensions/go-atlas.js +2 -0
  641. package/dist/types/extensions/go-atlas.js.map +1 -0
  642. package/dist/types/extensions/index.d.ts +15 -0
  643. package/dist/types/extensions/index.d.ts.map +1 -0
  644. package/dist/types/extensions/index.js +5 -0
  645. package/dist/types/extensions/index.js.map +1 -0
  646. package/dist/types/extensions/project-semantics.d.ts +55 -0
  647. package/dist/types/extensions/project-semantics.d.ts.map +1 -0
  648. package/dist/types/extensions/project-semantics.js +126 -0
  649. package/dist/types/extensions/project-semantics.js.map +1 -0
  650. package/dist/types/extensions/test-analysis.d.ts +68 -0
  651. package/dist/types/extensions/test-analysis.d.ts.map +1 -0
  652. package/dist/types/extensions/test-analysis.js +2 -0
  653. package/dist/types/extensions/test-analysis.js.map +1 -0
  654. package/dist/types/extensions/ts-analysis.d.ts +33 -0
  655. package/dist/types/extensions/ts-analysis.d.ts.map +1 -0
  656. package/dist/types/extensions/ts-analysis.js +2 -0
  657. package/dist/types/extensions/ts-analysis.js.map +1 -0
  658. package/dist/types/git-history.d.ts +68 -0
  659. package/dist/types/git-history.d.ts.map +1 -0
  660. package/dist/types/git-history.js +2 -0
  661. package/dist/types/git-history.js.map +1 -0
  662. package/dist/types/index.d.ts +38 -29
  663. package/dist/types/index.d.ts.map +1 -1
  664. package/dist/types/index.js +2 -1
  665. package/dist/types/index.js.map +1 -1
  666. package/dist/types/metric-vector.d.ts +17 -0
  667. package/dist/types/metric-vector.d.ts.map +1 -0
  668. package/dist/types/metric-vector.js +2 -0
  669. package/dist/types/metric-vector.js.map +1 -0
  670. package/dist/utils/cli-detector.js +2 -2
  671. package/dist/utils/cli-detector.js.map +1 -1
  672. package/dist/utils/tsconfig-finder.d.ts.map +1 -1
  673. package/dist/utils/tsconfig-finder.js +6 -1
  674. package/dist/utils/tsconfig-finder.js.map +1 -1
  675. package/node_modules/tree-sitter/prebuilds/linux-x64/node.napi.glibc.node +0 -0
  676. package/package.json +5 -2
  677. package/dist/cli/cache-manager.d.ts.map +0 -1
  678. package/dist/cli/cache-manager.js.map +0 -1
  679. package/dist/cli/error-handler.d.ts +0 -15
  680. package/dist/cli/error-handler.d.ts.map +0 -1
  681. package/dist/cli/error-handler.js.map +0 -1
  682. package/dist/cli/errors.d.ts.map +0 -1
  683. package/dist/cli/errors.js +0 -31
  684. package/dist/cli/errors.js.map +0 -1
  685. package/dist/cli/progress.d.ts.map +0 -1
  686. package/dist/cli/progress.js.map +0 -1
  687. package/dist/types/extensions.d.ts.map +0 -1
  688. package/dist/types/extensions.js +0 -4
  689. package/dist/types/extensions.js.map +0 -1
@@ -1,17 +1,19 @@
1
+ import path from 'path';
2
+ import { globalEntityTypeRegistry } from '../core/entity-type-registry.js';
1
3
  import { CommentGenerator } from './comment-generator.js';
2
4
  import { groupEntitiesByPackage } from './generator-grouping.js';
3
5
  import { validateGeneratorInput } from './generator-validation.js';
4
- const ENTITY_CLASSDEF_STYLES = {
5
- classNode: 'fill:#f6f8fa,stroke:#d0d7de,color:#24292f',
6
- interface: 'fill:#ddf4ff,stroke:#54aeff,color:#0969da',
7
- enum: 'fill:#fff8c5,stroke:#d4a72c,color:#633c01',
8
- struct: 'fill:#f6f8fa,stroke:#d0d7de,color:#24292f',
9
- trait: 'fill:#ddf4ff,stroke:#54aeff,color:#0969da',
10
- abstract_class: 'fill:#fdf4ff,stroke:#d2a8ff,color:#8250df',
11
- function: 'fill:#f6f8fa,stroke:#d0d7de,color:#57606a',
12
- };
13
- function entityTypeToClassDef(type) {
14
- return type === 'class' ? 'classNode' : type;
6
+ import { ENTITY_CLASSDEF_STYLES, normalizeEntityName, escapeId, generateRelationLine as _generateRelationLine, isNoisyTarget, generateClassDefinition as _generateClassDefinition, } from './generator-formatting.js';
7
+ function entityTypeToClassDef(type, registry = globalEntityTypeRegistry) {
8
+ if (type === 'class')
9
+ return 'classNode';
10
+ if (type in ENTITY_CLASSDEF_STYLES)
11
+ return type;
12
+ const custom = registry.get(type);
13
+ if (custom?.mermaidShape && custom.mermaidShape !== 'default') {
14
+ return custom.mermaidShape === 'component' ? 'interface' : 'classNode';
15
+ }
16
+ return 'classNode';
15
17
  }
16
18
  export class ValidatedMermaidGenerator {
17
19
  archJson;
@@ -36,14 +38,6 @@ export class ValidatedMermaidGenerator {
36
38
  }
37
39
  generate() {
38
40
  validateGeneratorInput(this.archJson, this.verbose);
39
- const lines = ['classDiagram'];
40
- if (this.diagramConfig && this.diagramConfig.annotations?.enableComments !== false) {
41
- const comments = this.commentGenerator.generateAll(this.diagramConfig);
42
- if (comments) {
43
- lines.push(comments);
44
- lines.push('');
45
- }
46
- }
47
41
  let diagramCode;
48
42
  switch (this.options.level) {
49
43
  case 'package':
@@ -57,7 +51,16 @@ export class ValidatedMermaidGenerator {
57
51
  diagramCode = this.generateClassLevel();
58
52
  break;
59
53
  }
60
- const diagramLines = diagramCode.split('\n').slice(1);
54
+ const diagramLines = diagramCode.split('\n');
55
+ const header = diagramLines.shift() || 'classDiagram';
56
+ const lines = [header];
57
+ if (this.diagramConfig && this.diagramConfig.annotations?.enableComments !== false) {
58
+ const comments = this.commentGenerator.generateAll(this.diagramConfig);
59
+ if (comments) {
60
+ lines.push(comments);
61
+ lines.push('');
62
+ }
63
+ }
61
64
  lines.push(...diagramLines);
62
65
  if (this.diagramConfig && this.diagramConfig.annotations?.enableVisibleTitle) {
63
66
  const visibleTitle = this.commentGenerator.generateVisibleTitle(this.diagramConfig);
@@ -67,7 +70,7 @@ export class ValidatedMermaidGenerator {
67
70
  lines.push(visibleTitle);
68
71
  }
69
72
  else {
70
- const insertIndex = lines.findIndex((line) => !line.startsWith('%%') && line !== 'classDiagram');
73
+ const insertIndex = lines.findIndex((line) => !line.startsWith('%%') && line !== header);
71
74
  if (insertIndex !== -1) {
72
75
  lines.splice(insertIndex, 0, visibleTitle);
73
76
  }
@@ -78,6 +81,9 @@ export class ValidatedMermaidGenerator {
78
81
  return this.postProcess(code);
79
82
  }
80
83
  generatePackageLevel() {
84
+ if (this.getArchitecturalLayers()) {
85
+ return this.generateLayeredPackageLevel();
86
+ }
81
87
  const lines = ['classDiagram'];
82
88
  const packageGroups = groupEntitiesByPackage(this.archJson, this.options.grouping);
83
89
  for (const group of packageGroups) {
@@ -85,18 +91,105 @@ export class ValidatedMermaidGenerator {
85
91
  for (const entityId of group.entities) {
86
92
  const entity = this.archJson.entities.find((e) => e.id === entityId);
87
93
  if (entity) {
88
- entityLines.push(` class ${this.escapeId(this.normalizeEntityName(entity.name))}`);
94
+ entityLines.push(` class ${escapeId(normalizeEntityName(entity.name))}`);
89
95
  }
90
96
  }
91
97
  if (entityLines.length === 0)
92
98
  continue;
93
- lines.push(` namespace ${this.escapeId(group.name)} {`);
99
+ lines.push(` namespace ${escapeId(group.name)} {`);
94
100
  lines.push(...entityLines);
95
101
  lines.push(' }');
96
102
  }
97
103
  lines.push(...this.generateRelations(packageGroups));
98
104
  return lines.join('\n');
99
105
  }
106
+ getArchitecturalLayers() {
107
+ const layers = this.archJson.extensions?.projectSemantics?.architecturalLayers;
108
+ return layers && Object.keys(layers).length > 0 ? layers : undefined;
109
+ }
110
+ normalizePackagePath(filePath) {
111
+ const normalizedFile = filePath.replace(/\\/g, '/');
112
+ const workspaceRoot = this.archJson.workspaceRoot?.replace(/\\/g, '/');
113
+ if (workspaceRoot && path.isAbsolute(filePath)) {
114
+ return path.posix.dirname(path.posix.relative(workspaceRoot, normalizedFile));
115
+ }
116
+ return path.posix.dirname(normalizedFile);
117
+ }
118
+ findMatchingLayer(packageName, layers) {
119
+ const normalizedPackage = packageName.replace(/\\/g, '/');
120
+ const candidates = Object.entries(layers)
121
+ .map(([key, label]) => ({ key: key.replace(/\\/g, '/'), label }))
122
+ .filter(({ key }) => normalizedPackage === key || normalizedPackage.startsWith(`${key}/`))
123
+ .sort((left, right) => right.key.length - left.key.length);
124
+ return candidates[0] ?? null;
125
+ }
126
+ generateLayeredPackageLevel() {
127
+ const architecturalLayers = this.getArchitecturalLayers();
128
+ if (!architecturalLayers) {
129
+ return this.generatePackageLevel();
130
+ }
131
+ const direction = this.options.grouping.layout?.direction ?? 'TB';
132
+ const lines = [`flowchart ${direction}`];
133
+ const entityPackageIndex = new Map();
134
+ const packageNames = [];
135
+ const seenPackages = new Set();
136
+ for (const entity of this.archJson.entities) {
137
+ const sourceFile = entity.sourceLocation?.file;
138
+ if (!sourceFile)
139
+ continue;
140
+ const packageName = this.normalizePackagePath(sourceFile);
141
+ if (!packageName || packageName === '.')
142
+ continue;
143
+ entityPackageIndex.set(entity.id, packageName);
144
+ entityPackageIndex.set(entity.name, packageName);
145
+ if (!seenPackages.has(packageName)) {
146
+ seenPackages.add(packageName);
147
+ packageNames.push(packageName);
148
+ }
149
+ }
150
+ const groupedPackages = new Map();
151
+ const unmatchedPackages = [];
152
+ for (const packageName of packageNames) {
153
+ const layerMatch = this.findMatchingLayer(packageName, architecturalLayers);
154
+ if (!layerMatch) {
155
+ unmatchedPackages.push(packageName);
156
+ continue;
157
+ }
158
+ if (!groupedPackages.has(layerMatch.label)) {
159
+ groupedPackages.set(layerMatch.label, []);
160
+ }
161
+ groupedPackages.get(layerMatch.label)?.push(packageName);
162
+ }
163
+ const nodeIdForPackage = (packageName) => escapeId(`pkg_${packageName}`);
164
+ for (const [label, layerPackages] of groupedPackages.entries()) {
165
+ if (layerPackages.length === 0)
166
+ continue;
167
+ lines.push(` subgraph ${escapeId(`layer_${label}`)}["${label}"]`);
168
+ for (const packageName of layerPackages) {
169
+ lines.push(` ${nodeIdForPackage(packageName)}["${packageName}"]`);
170
+ }
171
+ lines.push(' end');
172
+ }
173
+ for (const packageName of unmatchedPackages) {
174
+ lines.push(` ${nodeIdForPackage(packageName)}["${packageName}"]`);
175
+ }
176
+ const relationEdges = new Set();
177
+ for (const relation of this.archJson.relations) {
178
+ const sourcePackage = entityPackageIndex.get(relation.source) ??
179
+ entityPackageIndex.get(normalizeEntityName(relation.source));
180
+ const targetPackage = entityPackageIndex.get(relation.target) ??
181
+ entityPackageIndex.get(normalizeEntityName(relation.target));
182
+ if (!sourcePackage || !targetPackage || sourcePackage === targetPackage) {
183
+ continue;
184
+ }
185
+ const edge = ` ${nodeIdForPackage(sourcePackage)} --> ${nodeIdForPackage(targetPackage)}`;
186
+ if (!relationEdges.has(edge)) {
187
+ relationEdges.add(edge);
188
+ lines.push(edge);
189
+ }
190
+ }
191
+ return lines.join('\n');
192
+ }
100
193
  generateClassLevel() {
101
194
  const lines = ['classDiagram'];
102
195
  for (const [name, style] of Object.entries(ENTITY_CLASSDEF_STYLES)) {
@@ -107,40 +200,57 @@ export class ValidatedMermaidGenerator {
107
200
  const visibleEntities = this.archJson.entities.filter((e) => e.type !== 'function');
108
201
  const knownEntityNames = new Set(visibleEntities.map((e) => e.name));
109
202
  const knownEntityIds = new Set(visibleEntities.map((e) => e.id));
203
+ const modulePrefixIndex = this.buildModulePrefixIndex(knownEntityIds);
110
204
  if (packageGroups.length > 0 && packageGroups[0]?.name !== 'Default') {
111
205
  for (const group of packageGroups) {
112
206
  const entityLines = [];
113
207
  for (const entityId of group.entities) {
114
208
  const entity = visibleEntities.find((e) => e.id === entityId);
115
209
  if (entity) {
116
- entityLines.push(...this.generateClassDefinition(entity, 2, true));
210
+ entityLines.push(..._generateClassDefinition(entity, 2, this.options));
117
211
  }
118
212
  }
119
213
  if (entityLines.length === 0)
120
214
  continue;
121
- lines.push(` namespace ${this.escapeId(group.name)} {`);
215
+ lines.push(` namespace ${escapeId(group.name)} {`);
122
216
  lines.push(...entityLines);
123
217
  lines.push(' }');
124
218
  }
125
219
  for (const relation of this.archJson.relations) {
126
- if ((knownEntityNames.has(relation.source) || knownEntityIds.has(relation.source)) &&
127
- (knownEntityIds.has(relation.target) ||
128
- knownEntityNames.has(relation.target) ||
129
- !this.isNoisyTarget(relation.target))) {
130
- lines.push(` ${this.generateRelationLine(relation)}`);
220
+ const sourceKnownDirect = knownEntityNames.has(relation.source) || knownEntityIds.has(relation.source);
221
+ const sourceKnownViaPrefix = !sourceKnownDirect && modulePrefixIndex.has(relation.source);
222
+ const sourceKnown = sourceKnownDirect || sourceKnownViaPrefix;
223
+ const targetOk = knownEntityIds.has(relation.target) ||
224
+ knownEntityNames.has(relation.target) ||
225
+ sourceKnownViaPrefix ||
226
+ !isNoisyTarget(relation.target);
227
+ if (sourceKnown && targetOk) {
228
+ {
229
+ const _line = _generateRelationLine(relation, this.entityIdToName);
230
+ if (_line !== null)
231
+ lines.push(` ${_line}`);
232
+ }
131
233
  }
132
234
  }
133
235
  }
134
236
  else {
135
237
  for (const entity of visibleEntities) {
136
- lines.push(...this.generateClassDefinition(entity, 1, true));
238
+ lines.push(..._generateClassDefinition(entity, 1, this.options));
137
239
  }
138
240
  for (const relation of this.archJson.relations) {
139
- if ((knownEntityNames.has(relation.source) || knownEntityIds.has(relation.source)) &&
140
- (knownEntityIds.has(relation.target) ||
141
- knownEntityNames.has(relation.target) ||
142
- !this.isNoisyTarget(relation.target))) {
143
- lines.push(` ${this.generateRelationLine(relation)}`);
241
+ const sourceKnownDirect = knownEntityNames.has(relation.source) || knownEntityIds.has(relation.source);
242
+ const sourceKnownViaPrefix = !sourceKnownDirect && modulePrefixIndex.has(relation.source);
243
+ const sourceKnown = sourceKnownDirect || sourceKnownViaPrefix;
244
+ const targetOk = knownEntityIds.has(relation.target) ||
245
+ knownEntityNames.has(relation.target) ||
246
+ sourceKnownViaPrefix ||
247
+ !isNoisyTarget(relation.target);
248
+ if (sourceKnown && targetOk) {
249
+ {
250
+ const _line = _generateRelationLine(relation, this.entityIdToName);
251
+ if (_line !== null)
252
+ lines.push(` ${_line}`);
253
+ }
144
254
  }
145
255
  }
146
256
  }
@@ -148,7 +258,7 @@ export class ValidatedMermaidGenerator {
148
258
  lines.push(' %% Node type annotations');
149
259
  const seenAnnotationsClass = new Set();
150
260
  for (const entity of visibleEntities) {
151
- const normalizedId = this.escapeId(this.normalizeEntityName(entity.name));
261
+ const normalizedId = escapeId(normalizeEntityName(entity.name));
152
262
  if (seenAnnotationsClass.has(normalizedId))
153
263
  continue;
154
264
  seenAnnotationsClass.add(normalizedId);
@@ -172,32 +282,37 @@ export class ValidatedMermaidGenerator {
172
282
  for (const entityId of group.entities) {
173
283
  const entity = visibleEntities.find((e) => e.id === entityId);
174
284
  if (entity) {
175
- entityLines.push(...this.generateClassDefinition(entity, 2, true));
285
+ entityLines.push(..._generateClassDefinition(entity, 2, this.options));
176
286
  }
177
287
  }
178
288
  if (entityLines.length === 0)
179
289
  continue;
180
- lines.push(` namespace ${this.escapeId(group.name)} {`);
290
+ lines.push(` namespace ${escapeId(group.name)} {`);
181
291
  lines.push(...entityLines);
182
292
  lines.push(' }');
183
293
  }
184
294
  }
185
295
  else {
186
296
  for (const entity of visibleEntities) {
187
- lines.push(...this.generateClassDefinition(entity, 1, true));
297
+ lines.push(..._generateClassDefinition(entity, 1, this.options));
188
298
  }
189
299
  }
300
+ const modulePrefixIndexMethod = this.buildModulePrefixIndex(knownEntityIds);
190
301
  for (const relation of this.archJson.relations) {
191
- if ((knownEntityNames.has(relation.source) || knownEntityIds.has(relation.source)) &&
192
- !this.isNoisyTarget(relation.target)) {
193
- lines.push(` ${this.generateRelationLine(relation)}`);
302
+ const sourceKnownDirect = knownEntityNames.has(relation.source) || knownEntityIds.has(relation.source);
303
+ const sourceKnownViaPrefix = !sourceKnownDirect && modulePrefixIndexMethod.has(relation.source);
304
+ const sourceKnown = sourceKnownDirect || sourceKnownViaPrefix;
305
+ if (sourceKnown && (sourceKnownViaPrefix || !isNoisyTarget(relation.target))) {
306
+ const _line = _generateRelationLine(relation, this.entityIdToName);
307
+ if (_line !== null)
308
+ lines.push(` ${_line}`);
194
309
  }
195
310
  }
196
311
  lines.push('');
197
312
  lines.push(' %% Node type annotations');
198
313
  const seenAnnotationsMethod = new Set();
199
314
  for (const entity of visibleEntities) {
200
- const normalizedId = this.escapeId(this.normalizeEntityName(entity.name));
315
+ const normalizedId = escapeId(normalizeEntityName(entity.name));
201
316
  if (seenAnnotationsMethod.has(normalizedId))
202
317
  continue;
203
318
  seenAnnotationsMethod.add(normalizedId);
@@ -205,119 +320,38 @@ export class ValidatedMermaidGenerator {
205
320
  }
206
321
  return lines.join('\n');
207
322
  }
208
- generateClassDefinition(entity, indent, detailed = false) {
209
- const lines = [];
210
- const padding = ' '.repeat(indent);
211
- const className = this.escapeId(this.normalizeEntityName(entity.name));
212
- const classType = 'class';
213
- lines.push(`${padding}${classType} ${className} {`);
214
- const members = entity.members || [];
215
- for (const member of members) {
216
- if (!this.shouldIncludeMember(member)) {
217
- continue;
218
- }
219
- const memberLine = this.generateMemberLine(member, detailed);
220
- lines.push(`${padding} ${memberLine}`);
221
- }
222
- lines.push(`${padding}}`);
223
- return lines;
224
- }
225
- generateMemberLine(member, detailed) {
226
- const visibility = this.getVisibilitySymbol(member.visibility);
227
- const staticModifier = member.isStatic ? 'static ' : '';
228
- const abstractModifier = member.isAbstract ? 'abstract ' : '';
229
- if (member.type === 'property') {
230
- const readonly = member.isReadonly ? 'readonly ' : '';
231
- const optional = member.isOptional ? '?' : '';
232
- const type = member.fieldType ? `: ${this.sanitizeType(member.fieldType)}` : '';
233
- return `${visibility}${staticModifier}${abstractModifier}${readonly}${member.name}${optional}${type}`;
234
- }
235
- else if (member.type === 'method' || member.type === 'constructor') {
236
- const async = member.isAsync ? 'async ' : '';
237
- const returnType = member.returnType ? `: ${this.sanitizeType(member.returnType)}` : '';
238
- const params = member.parameters
239
- ?.map((p) => {
240
- const optional = p.isOptional ? '?' : '';
241
- const paramType = p.type ? `: ${this.sanitizeType(p.type)}` : '';
242
- return `${p.name}${optional}${paramType}`;
243
- })
244
- .join(', ') || '';
245
- return `${visibility}${staticModifier}${abstractModifier}${async}${member.name}(${params})${returnType}`;
246
- }
247
- else {
248
- return `${visibility}${member.name}`;
249
- }
250
- }
251
- normalizeEntityName(name) {
252
- if (name.startsWith('import(')) {
253
- const match = name.match(/^import\([^)]+\)\.\s*([\w.]+)/);
254
- if (match) {
255
- return match[2];
256
- }
257
- }
258
- if (name.startsWith('import___')) {
259
- const parts = name.split('___');
260
- if (parts.length > 0) {
261
- const lastPart = parts[parts.length - 1];
262
- if (lastPart && lastPart.length > 0) {
263
- return lastPart;
264
- }
265
- }
266
- }
267
- const scopedMatch = name.match(/(?:\.ts|\.js)\.([A-Za-z_$][A-Za-z0-9_$]*)$/);
268
- if (scopedMatch) {
269
- return scopedMatch[1];
270
- }
271
- if (name.startsWith('{') || name.includes('=>')) {
272
- return '[Type]';
273
- }
274
- return name;
275
- }
276
323
  get entityIdToName() {
277
324
  if (!this._entityIdToName) {
278
325
  this._entityIdToName = new Map(this.archJson.entities.map((e) => [e.id, e.name]));
279
326
  }
280
327
  return this._entityIdToName;
281
328
  }
282
- generateRelationLine(relation) {
283
- const resolve = (id) => {
284
- const simpleName = this.entityIdToName.get(id);
285
- return this.escapeId(this.normalizeEntityName(simpleName ?? id));
286
- };
287
- const source = resolve(relation.source);
288
- const target = resolve(relation.target);
289
- switch (relation.type) {
290
- case 'inheritance':
291
- return `${target} <|-- ${source}`;
292
- case 'implementation':
293
- return `${target} <|.. ${source}`;
294
- case 'composition':
295
- return `${source} *-- ${target}`;
296
- case 'aggregation':
297
- return `${source} o-- ${target}`;
298
- case 'dependency':
299
- default:
300
- return `${source} --> ${target}`;
329
+ buildModulePrefixIndex(entityIds) {
330
+ const index = new Map();
331
+ for (const entityId of entityIds) {
332
+ const lastDot = entityId.lastIndexOf('.');
333
+ if (lastDot > 0) {
334
+ const moduleId = entityId.substring(0, lastDot);
335
+ if (!index.has(moduleId)) {
336
+ index.set(moduleId, entityId);
337
+ }
338
+ }
301
339
  }
302
- }
303
- isNoisyTarget(target) {
304
- return (target.startsWith('{') ||
305
- target.startsWith('"') ||
306
- target.startsWith("'") ||
307
- target.startsWith('(') ||
308
- target.includes('=>') ||
309
- /^\d/.test(target) ||
310
- /^[A-Z]$/.test(target) ||
311
- /^[a-z]\w*\./.test(target));
340
+ return index;
312
341
  }
313
342
  generateRelations(_packageGroups) {
314
343
  const lines = [];
315
344
  const knownEntityNames = new Set(this.archJson.entities.map((e) => e.name));
316
345
  const knownEntityIds = new Set(this.archJson.entities.map((e) => e.id));
346
+ const modulePrefixIndex = this.buildModulePrefixIndex(knownEntityIds);
317
347
  for (const relation of this.archJson.relations) {
318
- if ((knownEntityNames.has(relation.source) || knownEntityIds.has(relation.source)) &&
319
- !this.isNoisyTarget(relation.target)) {
320
- lines.push(` ${this.generateRelationLine(relation)}`);
348
+ const sourceKnownDirect = knownEntityNames.has(relation.source) || knownEntityIds.has(relation.source);
349
+ const sourceKnownViaPrefix = !sourceKnownDirect && modulePrefixIndex.has(relation.source);
350
+ const sourceKnown = sourceKnownDirect || sourceKnownViaPrefix;
351
+ if (sourceKnown && (sourceKnownViaPrefix || !isNoisyTarget(relation.target))) {
352
+ const _line = _generateRelationLine(relation, this.entityIdToName);
353
+ if (_line !== null)
354
+ lines.push(` ${_line}`);
321
355
  }
322
356
  }
323
357
  return lines;
@@ -338,83 +372,6 @@ export class ValidatedMermaidGenerator {
338
372
  reasoning: pkg.reasoning,
339
373
  }));
340
374
  }
341
- shouldIncludeMember(member) {
342
- if (member.visibility === 'private' && !this.options.includePrivate) {
343
- return false;
344
- }
345
- if (member.visibility === 'protected' && !this.options.includeProtected) {
346
- return false;
347
- }
348
- return true;
349
- }
350
- getVisibilitySymbol(visibility) {
351
- switch (visibility) {
352
- case 'public':
353
- return '+';
354
- case 'private':
355
- return '-';
356
- case 'protected':
357
- return '#';
358
- default:
359
- return '+';
360
- }
361
- }
362
- escapeId(id) {
363
- if (!id)
364
- return 'Unknown';
365
- let escaped = id;
366
- escaped = escaped.replace(/<[^>]*>$/g, '');
367
- return escaped.replace(/[^a-zA-Z0-9_]/g, '_');
368
- }
369
- sanitizeType(type) {
370
- if (!type)
371
- return 'any';
372
- type = this.normalizeTypeName(type);
373
- let simplified = type;
374
- let prevLength;
375
- do {
376
- prevLength = simplified.length;
377
- simplified = simplified.replace(/\{[^{}]*\}/g, 'object');
378
- } while (simplified.length !== prevLength && simplified.includes('{'));
379
- const advancedTypePattern = /^(Partial|Required|Readonly|Pick|Omit|Record|Exclude|Extract|ReturnType|Parameters|DeepPartial)<.+>$/;
380
- if (advancedTypePattern.test(simplified)) {
381
- return 'any';
382
- }
383
- simplified = simplified.replace(/\([^)]*\)\s*=>\s*/g, 'Function');
384
- while (simplified.includes('Promise<')) {
385
- simplified = simplified.replace(/(\w+)<([^<>]*)>/g, '$1');
386
- simplified = simplified.replace(/\bPromise\b/g, 'any');
387
- }
388
- if (simplified.includes('|')) {
389
- return 'any';
390
- }
391
- if (simplified.includes('&')) {
392
- return 'object';
393
- }
394
- let prevLength2;
395
- do {
396
- prevLength2 = simplified.length;
397
- simplified = simplified.replace(/Array<[^>]+>/g, 'Array');
398
- } while (simplified.length !== prevLength2);
399
- simplified = simplified.replace(/\w+\[\]/g, 'Array');
400
- simplified = simplified.replace(/Array+/g, 'Array');
401
- while (simplified.match(/\w+</)) {
402
- simplified = simplified.replace(/(\w+)<([^<>]*)>/g, '$1');
403
- }
404
- simplified = simplified.replace(/\bz\.infer\b/g, 'any');
405
- simplified = simplified.replace(/\s+/g, ' ').trim();
406
- if (simplified.length > 50 || simplified === '') {
407
- return 'any';
408
- }
409
- return simplified;
410
- }
411
- normalizeTypeName(type) {
412
- const importPattern = /import\([^)]+\)\.\s*([\w.]+)/g;
413
- type = type.replace(importPattern, '$1');
414
- const importPathPattern = /import___[^_]+___([\w]+)/g;
415
- type = type.replace(importPathPattern, '$1');
416
- return type;
417
- }
418
375
  generateClassDiagrams(maxNodesPerDiagram) {
419
376
  const visibleEntities = this.archJson.entities.filter((e) => e.type !== 'function');
420
377
  const packageGroups = groupEntitiesByPackage(this.archJson, this.options.grouping);
@@ -441,23 +398,31 @@ export class ValidatedMermaidGenerator {
441
398
  lines.push(` classDef ${name} ${style}`);
442
399
  }
443
400
  lines.push('');
444
- lines.push(` namespace ${this.escapeId(group.name)} {`);
401
+ lines.push(` namespace ${escapeId(group.name)} {`);
445
402
  for (const entity of groupEntities) {
446
- lines.push(...this.generateClassDefinition(entity, 2, true));
403
+ lines.push(..._generateClassDefinition(entity, 2, this.options));
447
404
  }
448
405
  lines.push(' }');
406
+ const modulePrefixIndexGroup = this.buildModulePrefixIndex(knownEntityIds);
449
407
  for (const relation of this.archJson.relations) {
450
- const sourceInGroup = groupEntityIdSet.has(relation.source) || groupEntityNames.has(relation.source);
408
+ const sourceInGroupDirect = groupEntityIdSet.has(relation.source) || groupEntityNames.has(relation.source);
409
+ const sourceViaPrefix = !sourceInGroupDirect && modulePrefixIndexGroup.has(relation.source);
410
+ const sourceInGroup = sourceInGroupDirect || sourceViaPrefix;
451
411
  const targetKnown = knownEntityIds.has(relation.target) || knownEntityNames.has(relation.target);
452
- if (sourceInGroup && (targetKnown || !this.isNoisyTarget(relation.target))) {
453
- lines.push(` ${this.generateRelationLine(relation)}`);
412
+ const targetOk = targetKnown || sourceViaPrefix || !isNoisyTarget(relation.target);
413
+ if (sourceInGroup && targetOk) {
414
+ {
415
+ const _line = _generateRelationLine(relation, this.entityIdToName);
416
+ if (_line !== null)
417
+ lines.push(` ${_line}`);
418
+ }
454
419
  }
455
420
  }
456
421
  lines.push('');
457
422
  lines.push(' %% Node type annotations');
458
423
  const seenAnnotations = new Set();
459
424
  for (const entity of groupEntities) {
460
- const normalizedId = this.escapeId(this.normalizeEntityName(entity.name));
425
+ const normalizedId = escapeId(normalizeEntityName(entity.name));
461
426
  if (seenAnnotations.has(normalizedId))
462
427
  continue;
463
428
  seenAnnotations.add(normalizedId);