@samchon/graph 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 (391) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +129 -0
  3. package/lib/AsyncSamchonGraphSource.d.ts +2 -0
  4. package/lib/AsyncSamchonGraphSource.js +3 -0
  5. package/lib/AsyncSamchonGraphSource.js.map +1 -0
  6. package/lib/SamchonGraphApplication.d.ts +10 -0
  7. package/lib/SamchonGraphApplication.js +64 -0
  8. package/lib/SamchonGraphApplication.js.map +1 -0
  9. package/lib/SamchonGraphSource.d.ts +2 -0
  10. package/lib/SamchonGraphSource.js +3 -0
  11. package/lib/SamchonGraphSource.js.map +1 -0
  12. package/lib/application.d.ts +3 -0
  13. package/lib/application.js +20 -0
  14. package/lib/application.js.map +1 -0
  15. package/lib/bin.d.ts +2 -0
  16. package/lib/bin.js +8 -0
  17. package/lib/bin.js.map +1 -0
  18. package/lib/index.d.ts +13 -0
  19. package/lib/index.js +30 -0
  20. package/lib/index.js.map +1 -0
  21. package/lib/indexer/IBuildGraphOptions.d.ts +41 -0
  22. package/lib/indexer/IBuildGraphOptions.js +3 -0
  23. package/lib/indexer/IBuildGraphOptions.js.map +1 -0
  24. package/lib/indexer/IIndexerResult.d.ts +5 -0
  25. package/lib/indexer/IIndexerResult.js +3 -0
  26. package/lib/indexer/IIndexerResult.js.map +1 -0
  27. package/lib/indexer/ILanguageSpec.d.ts +10 -0
  28. package/lib/indexer/ILanguageSpec.js +3 -0
  29. package/lib/indexer/ILanguageSpec.js.map +1 -0
  30. package/lib/indexer/LANGUAGE_SPECS.d.ts +2 -0
  31. package/lib/indexer/LANGUAGE_SPECS.js +114 -0
  32. package/lib/indexer/LANGUAGE_SPECS.js.map +1 -0
  33. package/lib/indexer/allExtensions.d.ts +2 -0
  34. package/lib/indexer/allExtensions.js +16 -0
  35. package/lib/indexer/allExtensions.js.map +1 -0
  36. package/lib/indexer/buildGraph.d.ts +3 -0
  37. package/lib/indexer/buildGraph.js +10 -0
  38. package/lib/indexer/buildGraph.js.map +1 -0
  39. package/lib/indexer/buildGraphDump.d.ts +3 -0
  40. package/lib/indexer/buildGraphDump.js +394 -0
  41. package/lib/indexer/buildGraphDump.js.map +1 -0
  42. package/lib/indexer/buildLspGraph.d.ts +3 -0
  43. package/lib/indexer/buildLspGraph.js +617 -0
  44. package/lib/indexer/buildLspGraph.js.map +1 -0
  45. package/lib/indexer/buildStaticGraph.d.ts +3 -0
  46. package/lib/indexer/buildStaticGraph.js +479 -0
  47. package/lib/indexer/buildStaticGraph.js.map +1 -0
  48. package/lib/indexer/decoratorsAbove.d.ts +1 -0
  49. package/lib/indexer/decoratorsAbove.js +14 -0
  50. package/lib/indexer/decoratorsAbove.js.map +1 -0
  51. package/lib/indexer/languageOf.d.ts +2 -0
  52. package/lib/indexer/languageOf.js +19 -0
  53. package/lib/indexer/languageOf.js.map +1 -0
  54. package/lib/indexer/languages.d.ts +5 -0
  55. package/lib/indexer/languages.js +22 -0
  56. package/lib/indexer/languages.js.map +1 -0
  57. package/lib/indexer/lspIndexer.d.ts +1 -0
  58. package/lib/indexer/lspIndexer.js +18 -0
  59. package/lib/indexer/lspIndexer.js.map +1 -0
  60. package/lib/indexer/overrideEdges.d.ts +2 -0
  61. package/lib/indexer/overrideEdges.js +45 -0
  62. package/lib/indexer/overrideEdges.js.map +1 -0
  63. package/lib/indexer/resolveType.d.ts +2 -0
  64. package/lib/indexer/resolveType.js +11 -0
  65. package/lib/indexer/resolveType.js.map +1 -0
  66. package/lib/indexer/specOf.d.ts +3 -0
  67. package/lib/indexer/specOf.js +8 -0
  68. package/lib/indexer/specOf.js.map +1 -0
  69. package/lib/indexer/staticIndexer.d.ts +1 -0
  70. package/lib/indexer/staticIndexer.js +18 -0
  71. package/lib/indexer/staticIndexer.js.map +1 -0
  72. package/lib/indexer/supertypesOf.d.ts +4 -0
  73. package/lib/indexer/supertypesOf.js +48 -0
  74. package/lib/indexer/supertypesOf.js.map +1 -0
  75. package/lib/lsp/DocumentSymbolResult.d.ts +3 -0
  76. package/lib/lsp/DocumentSymbolResult.js +3 -0
  77. package/lib/lsp/DocumentSymbolResult.js.map +1 -0
  78. package/lib/lsp/IDiagnostic.d.ts +8 -0
  79. package/lib/lsp/IDiagnostic.js +3 -0
  80. package/lib/lsp/IDiagnostic.js.map +1 -0
  81. package/lib/lsp/IDocumentSymbol.d.ts +9 -0
  82. package/lib/lsp/IDocumentSymbol.js +3 -0
  83. package/lib/lsp/IDocumentSymbol.js.map +1 -0
  84. package/lib/lsp/ILocation.d.ts +5 -0
  85. package/lib/lsp/ILocation.js +3 -0
  86. package/lib/lsp/ILocation.js.map +1 -0
  87. package/lib/lsp/IPosition.d.ts +4 -0
  88. package/lib/lsp/IPosition.js +3 -0
  89. package/lib/lsp/IPosition.js.map +1 -0
  90. package/lib/lsp/IRange.d.ts +5 -0
  91. package/lib/lsp/IRange.js +3 -0
  92. package/lib/lsp/IRange.js.map +1 -0
  93. package/lib/lsp/ISymbolInformation.d.ts +7 -0
  94. package/lib/lsp/ISymbolInformation.js +3 -0
  95. package/lib/lsp/ISymbolInformation.js.map +1 -0
  96. package/lib/lsp/LspClient.d.ts +17 -0
  97. package/lib/lsp/LspClient.js +140 -0
  98. package/lib/lsp/LspClient.js.map +1 -0
  99. package/lib/lsp/isDocumentSymbol.d.ts +3 -0
  100. package/lib/lsp/isDocumentSymbol.js +7 -0
  101. package/lib/lsp/isDocumentSymbol.js.map +1 -0
  102. package/lib/lsp/types.d.ts +8 -0
  103. package/lib/lsp/types.js +25 -0
  104. package/lib/lsp/types.js.map +1 -0
  105. package/lib/mcp/createServer.d.ts +3 -0
  106. package/lib/mcp/createServer.js +1947 -0
  107. package/lib/mcp/createServer.js.map +1 -0
  108. package/lib/mcp/startServer.d.ts +5 -0
  109. package/lib/mcp/startServer.js +23 -0
  110. package/lib/mcp/startServer.js.map +1 -0
  111. package/lib/model/GraphMemory.d.ts +25 -0
  112. package/lib/model/GraphMemory.js +141 -0
  113. package/lib/model/GraphMemory.js.map +1 -0
  114. package/lib/operations/bound.d.ts +1 -0
  115. package/lib/operations/bound.js +8 -0
  116. package/lib/operations/bound.js.map +1 -0
  117. package/lib/operations/common.d.ts +15 -0
  118. package/lib/operations/common.js +32 -0
  119. package/lib/operations/common.js.map +1 -0
  120. package/lib/operations/compareEdges.d.ts +2 -0
  121. package/lib/operations/compareEdges.js +10 -0
  122. package/lib/operations/compareEdges.js.map +1 -0
  123. package/lib/operations/edgeRank.d.ts +1 -0
  124. package/lib/operations/edgeRank.js +25 -0
  125. package/lib/operations/edgeRank.js.map +1 -0
  126. package/lib/operations/isExecution.d.ts +1 -0
  127. package/lib/operations/isExecution.js +11 -0
  128. package/lib/operations/isExecution.js.map +1 -0
  129. package/lib/operations/isPublicApiNoisePath.d.ts +2 -0
  130. package/lib/operations/isPublicApiNoisePath.js +11 -0
  131. package/lib/operations/isPublicApiNoisePath.js.map +1 -0
  132. package/lib/operations/isStructural.d.ts +1 -0
  133. package/lib/operations/isStructural.js +7 -0
  134. package/lib/operations/isStructural.js.map +1 -0
  135. package/lib/operations/isSupportPath.d.ts +2 -0
  136. package/lib/operations/isSupportPath.js +16 -0
  137. package/lib/operations/isSupportPath.js.map +1 -0
  138. package/lib/operations/isTestPath.d.ts +1 -0
  139. package/lib/operations/isTestPath.js +9 -0
  140. package/lib/operations/isTestPath.js.map +1 -0
  141. package/lib/operations/isTypeEdge.d.ts +1 -0
  142. package/lib/operations/isTypeEdge.js +11 -0
  143. package/lib/operations/isTypeEdge.js.map +1 -0
  144. package/lib/operations/publicEvidence.d.ts +2 -0
  145. package/lib/operations/publicEvidence.js +13 -0
  146. package/lib/operations/publicEvidence.js.map +1 -0
  147. package/lib/operations/referencesFromEdges.d.ts +3 -0
  148. package/lib/operations/referencesFromEdges.js +38 -0
  149. package/lib/operations/referencesFromEdges.js.map +1 -0
  150. package/lib/operations/resolveHandle.d.ts +6 -0
  151. package/lib/operations/resolveHandle.js +28 -0
  152. package/lib/operations/resolveHandle.js.map +1 -0
  153. package/lib/operations/resultGuide.d.ts +1 -0
  154. package/lib/operations/resultGuide.js +7 -0
  155. package/lib/operations/resultGuide.js.map +1 -0
  156. package/lib/operations/resultNext.d.ts +2 -0
  157. package/lib/operations/resultNext.js +7 -0
  158. package/lib/operations/resultNext.js.map +1 -0
  159. package/lib/operations/runDetails.d.ts +8 -0
  160. package/lib/operations/runDetails.js +190 -0
  161. package/lib/operations/runDetails.js.map +1 -0
  162. package/lib/operations/runEntrypoints.d.ts +9 -0
  163. package/lib/operations/runEntrypoints.js +122 -0
  164. package/lib/operations/runEntrypoints.js.map +1 -0
  165. package/lib/operations/runLookup.d.ts +10 -0
  166. package/lib/operations/runLookup.js +229 -0
  167. package/lib/operations/runLookup.js.map +1 -0
  168. package/lib/operations/runOverview.d.ts +10 -0
  169. package/lib/operations/runOverview.js +142 -0
  170. package/lib/operations/runOverview.js.map +1 -0
  171. package/lib/operations/runTour.d.ts +8 -0
  172. package/lib/operations/runTour.js +539 -0
  173. package/lib/operations/runTour.js.map +1 -0
  174. package/lib/operations/runTrace.d.ts +10 -0
  175. package/lib/operations/runTrace.js +283 -0
  176. package/lib/operations/runTrace.js.map +1 -0
  177. package/lib/operations/signatureOf.d.ts +2 -0
  178. package/lib/operations/signatureOf.js +45 -0
  179. package/lib/operations/signatureOf.js.map +1 -0
  180. package/lib/operations/subwords.d.ts +1 -0
  181. package/lib/operations/subwords.js +12 -0
  182. package/lib/operations/subwords.js.map +1 -0
  183. package/lib/operations/summaryOf.d.ts +2 -0
  184. package/lib/operations/summaryOf.js +24 -0
  185. package/lib/operations/summaryOf.js.map +1 -0
  186. package/lib/runGraph.d.ts +1 -0
  187. package/lib/runGraph.js +165 -0
  188. package/lib/runGraph.js.map +1 -0
  189. package/lib/structures/GraphEdgeKind.d.ts +10 -0
  190. package/lib/structures/GraphEdgeKind.js +3 -0
  191. package/lib/structures/GraphEdgeKind.js.map +1 -0
  192. package/lib/structures/GraphLanguage.d.ts +2 -0
  193. package/lib/structures/GraphLanguage.js +3 -0
  194. package/lib/structures/GraphLanguage.js.map +1 -0
  195. package/lib/structures/GraphNodeKind.d.ts +11 -0
  196. package/lib/structures/GraphNodeKind.js +3 -0
  197. package/lib/structures/GraphNodeKind.js.map +1 -0
  198. package/lib/structures/IGraphDecorator.d.ts +22 -0
  199. package/lib/structures/IGraphDecorator.js +3 -0
  200. package/lib/structures/IGraphDecorator.js.map +1 -0
  201. package/lib/structures/IGraphDetails.d.ts +126 -0
  202. package/lib/structures/IGraphDetails.js +3 -0
  203. package/lib/structures/IGraphDetails.js.map +1 -0
  204. package/lib/structures/IGraphDiagnostic.d.ts +23 -0
  205. package/lib/structures/IGraphDiagnostic.js +3 -0
  206. package/lib/structures/IGraphDiagnostic.js.map +1 -0
  207. package/lib/structures/IGraphDump.d.ts +37 -0
  208. package/lib/structures/IGraphDump.js +3 -0
  209. package/lib/structures/IGraphDump.js.map +1 -0
  210. package/lib/structures/IGraphEdge.d.ts +20 -0
  211. package/lib/structures/IGraphEdge.js +3 -0
  212. package/lib/structures/IGraphEdge.js.map +1 -0
  213. package/lib/structures/IGraphEntrypoints.d.ts +57 -0
  214. package/lib/structures/IGraphEntrypoints.js +3 -0
  215. package/lib/structures/IGraphEntrypoints.js.map +1 -0
  216. package/lib/structures/IGraphEscape.d.ts +40 -0
  217. package/lib/structures/IGraphEscape.js +3 -0
  218. package/lib/structures/IGraphEscape.js.map +1 -0
  219. package/lib/structures/IGraphEvidence.d.ts +24 -0
  220. package/lib/structures/IGraphEvidence.js +3 -0
  221. package/lib/structures/IGraphEvidence.js.map +1 -0
  222. package/lib/structures/IGraphLookup.d.ts +66 -0
  223. package/lib/structures/IGraphLookup.js +3 -0
  224. package/lib/structures/IGraphLookup.js.map +1 -0
  225. package/lib/structures/IGraphNext.d.ts +15 -0
  226. package/lib/structures/IGraphNext.js +3 -0
  227. package/lib/structures/IGraphNext.js.map +1 -0
  228. package/lib/structures/IGraphNode.d.ts +62 -0
  229. package/lib/structures/IGraphNode.js +3 -0
  230. package/lib/structures/IGraphNode.js.map +1 -0
  231. package/lib/structures/IGraphOverview.d.ts +100 -0
  232. package/lib/structures/IGraphOverview.js +3 -0
  233. package/lib/structures/IGraphOverview.js.map +1 -0
  234. package/lib/structures/IGraphTour.d.ts +54 -0
  235. package/lib/structures/IGraphTour.js +3 -0
  236. package/lib/structures/IGraphTour.js.map +1 -0
  237. package/lib/structures/IGraphTrace.d.ts +126 -0
  238. package/lib/structures/IGraphTrace.js +3 -0
  239. package/lib/structures/IGraphTrace.js.map +1 -0
  240. package/lib/structures/ISamchonGraphApplication.d.ts +162 -0
  241. package/lib/structures/ISamchonGraphApplication.js +3 -0
  242. package/lib/structures/ISamchonGraphApplication.js.map +1 -0
  243. package/lib/structures/index.d.ts +18 -0
  244. package/lib/structures/index.js +35 -0
  245. package/lib/structures/index.js.map +1 -0
  246. package/lib/structures.d.ts +1 -0
  247. package/lib/structures.js +18 -0
  248. package/lib/structures.js.map +1 -0
  249. package/lib/utils/DEFAULT_IGNORES.d.ts +1 -0
  250. package/lib/utils/DEFAULT_IGNORES.js +39 -0
  251. package/lib/utils/DEFAULT_IGNORES.js.map +1 -0
  252. package/lib/utils/IWalkOptions.d.ts +5 -0
  253. package/lib/utils/IWalkOptions.js +3 -0
  254. package/lib/utils/IWalkOptions.js.map +1 -0
  255. package/lib/utils/basename.d.ts +1 -0
  256. package/lib/utils/basename.js +10 -0
  257. package/lib/utils/basename.js.map +1 -0
  258. package/lib/utils/dirname.d.ts +1 -0
  259. package/lib/utils/dirname.js +10 -0
  260. package/lib/utils/dirname.js.map +1 -0
  261. package/lib/utils/fileFromUri.d.ts +1 -0
  262. package/lib/utils/fileFromUri.js +20 -0
  263. package/lib/utils/fileFromUri.js.map +1 -0
  264. package/lib/utils/fileUri.d.ts +1 -0
  265. package/lib/utils/fileUri.js +19 -0
  266. package/lib/utils/fileUri.js.map +1 -0
  267. package/lib/utils/fs.d.ts +6 -0
  268. package/lib/utils/fs.js +23 -0
  269. package/lib/utils/fs.js.map +1 -0
  270. package/lib/utils/isSubPath.d.ts +1 -0
  271. package/lib/utils/isSubPath.js +15 -0
  272. package/lib/utils/isSubPath.js.map +1 -0
  273. package/lib/utils/normalizePath.d.ts +1 -0
  274. package/lib/utils/normalizePath.js +7 -0
  275. package/lib/utils/normalizePath.js.map +1 -0
  276. package/lib/utils/path.d.ts +7 -0
  277. package/lib/utils/path.js +24 -0
  278. package/lib/utils/path.js.map +1 -0
  279. package/lib/utils/projectRelative.d.ts +1 -0
  280. package/lib/utils/projectRelative.js +9 -0
  281. package/lib/utils/projectRelative.js.map +1 -0
  282. package/lib/utils/readLines.d.ts +1 -0
  283. package/lib/utils/readLines.js +8 -0
  284. package/lib/utils/readLines.js.map +1 -0
  285. package/lib/utils/readText.d.ts +1 -0
  286. package/lib/utils/readText.js +17 -0
  287. package/lib/utils/readText.js.map +1 -0
  288. package/lib/utils/relativePath.d.ts +1 -0
  289. package/lib/utils/relativePath.js +12 -0
  290. package/lib/utils/relativePath.js.map +1 -0
  291. package/lib/utils/walkSourceFiles.d.ts +2 -0
  292. package/lib/utils/walkSourceFiles.js +44 -0
  293. package/lib/utils/walkSourceFiles.js.map +1 -0
  294. package/package.json +55 -0
  295. package/src/AsyncSamchonGraphSource.ts +5 -0
  296. package/src/SamchonGraphApplication.ts +74 -0
  297. package/src/SamchonGraphSource.ts +3 -0
  298. package/src/application.ts +3 -0
  299. package/src/bin.ts +6 -0
  300. package/src/index.ts +13 -0
  301. package/src/indexer/IBuildGraphOptions.ts +42 -0
  302. package/src/indexer/IIndexerResult.ts +6 -0
  303. package/src/indexer/ILanguageSpec.ts +11 -0
  304. package/src/indexer/LANGUAGE_SPECS.ts +112 -0
  305. package/src/indexer/allExtensions.ts +12 -0
  306. package/src/indexer/buildGraph.ts +10 -0
  307. package/src/indexer/buildGraphDump.ts +29 -0
  308. package/src/indexer/buildLspGraph.ts +710 -0
  309. package/src/indexer/buildStaticGraph.ts +507 -0
  310. package/src/indexer/decoratorsAbove.ts +9 -0
  311. package/src/indexer/languageOf.ts +13 -0
  312. package/src/indexer/languages.ts +5 -0
  313. package/src/indexer/lspIndexer.ts +1 -0
  314. package/src/indexer/overrideEdges.ts +42 -0
  315. package/src/indexer/resolveType.ts +14 -0
  316. package/src/indexer/specOf.ts +7 -0
  317. package/src/indexer/staticIndexer.ts +1 -0
  318. package/src/indexer/supertypesOf.ts +43 -0
  319. package/src/lsp/DocumentSymbolResult.ts +4 -0
  320. package/src/lsp/IDiagnostic.ts +9 -0
  321. package/src/lsp/IDocumentSymbol.ts +10 -0
  322. package/src/lsp/ILocation.ts +6 -0
  323. package/src/lsp/IPosition.ts +4 -0
  324. package/src/lsp/IRange.ts +6 -0
  325. package/src/lsp/ISymbolInformation.ts +8 -0
  326. package/src/lsp/LspClient.ts +165 -0
  327. package/src/lsp/isDocumentSymbol.ts +8 -0
  328. package/src/lsp/types.ts +8 -0
  329. package/src/mcp/createServer.ts +23 -0
  330. package/src/mcp/startServer.ts +23 -0
  331. package/src/model/GraphMemory.ts +165 -0
  332. package/src/operations/bound.ts +9 -0
  333. package/src/operations/common.ts +15 -0
  334. package/src/operations/compareEdges.ts +10 -0
  335. package/src/operations/edgeRank.ts +23 -0
  336. package/src/operations/isExecution.ts +9 -0
  337. package/src/operations/isPublicApiNoisePath.ts +10 -0
  338. package/src/operations/isStructural.ts +3 -0
  339. package/src/operations/isSupportPath.ts +16 -0
  340. package/src/operations/isTestPath.ts +7 -0
  341. package/src/operations/isTypeEdge.ts +9 -0
  342. package/src/operations/publicEvidence.ts +11 -0
  343. package/src/operations/referencesFromEdges.ts +37 -0
  344. package/src/operations/resolveHandle.ts +27 -0
  345. package/src/operations/resultGuide.ts +3 -0
  346. package/src/operations/resultNext.ts +9 -0
  347. package/src/operations/runDetails.ts +240 -0
  348. package/src/operations/runEntrypoints.ts +153 -0
  349. package/src/operations/runLookup.ts +269 -0
  350. package/src/operations/runOverview.ts +158 -0
  351. package/src/operations/runTour.ts +582 -0
  352. package/src/operations/runTrace.ts +339 -0
  353. package/src/operations/signatureOf.ts +40 -0
  354. package/src/operations/subwords.ts +8 -0
  355. package/src/operations/summaryOf.ts +21 -0
  356. package/src/runGraph.ts +144 -0
  357. package/src/structures/GraphEdgeKind.ts +24 -0
  358. package/src/structures/GraphLanguage.ts +21 -0
  359. package/src/structures/GraphNodeKind.ts +27 -0
  360. package/src/structures/IGraphDecorator.ts +25 -0
  361. package/src/structures/IGraphDetails.ts +153 -0
  362. package/src/structures/IGraphDiagnostic.ts +29 -0
  363. package/src/structures/IGraphDump.ts +45 -0
  364. package/src/structures/IGraphEdge.ts +24 -0
  365. package/src/structures/IGraphEntrypoints.ts +70 -0
  366. package/src/structures/IGraphEscape.ts +49 -0
  367. package/src/structures/IGraphEvidence.ts +29 -0
  368. package/src/structures/IGraphLookup.ts +80 -0
  369. package/src/structures/IGraphNext.ts +23 -0
  370. package/src/structures/IGraphNode.ts +76 -0
  371. package/src/structures/IGraphOverview.ts +121 -0
  372. package/src/structures/IGraphTour.ts +68 -0
  373. package/src/structures/IGraphTrace.ts +154 -0
  374. package/src/structures/ISamchonGraphApplication.ts +186 -0
  375. package/src/structures/index.ts +18 -0
  376. package/src/structures.ts +1 -0
  377. package/src/utils/DEFAULT_IGNORES.ts +35 -0
  378. package/src/utils/IWalkOptions.ts +5 -0
  379. package/src/utils/basename.ts +7 -0
  380. package/src/utils/dirname.ts +7 -0
  381. package/src/utils/fileFromUri.ts +14 -0
  382. package/src/utils/fileUri.ts +13 -0
  383. package/src/utils/fs.ts +6 -0
  384. package/src/utils/isSubPath.ts +9 -0
  385. package/src/utils/normalizePath.ts +3 -0
  386. package/src/utils/path.ts +7 -0
  387. package/src/utils/projectRelative.ts +6 -0
  388. package/src/utils/readLines.ts +5 -0
  389. package/src/utils/readText.ts +10 -0
  390. package/src/utils/relativePath.ts +7 -0
  391. package/src/utils/walkSourceFiles.ts +35 -0
@@ -0,0 +1,142 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.runOverview = runOverview;
4
+ const path_1 = require("../utils/path");
5
+ const isPublicApiNoisePath_1 = require("./isPublicApiNoisePath");
6
+ const isSupportPath_1 = require("./isSupportPath");
7
+ const common_1 = require("./common");
8
+ /** Declaration kinds that make up a meaningful public API surface. */
9
+ const API_KINDS = new Set([
10
+ "class",
11
+ "interface",
12
+ "function",
13
+ "type",
14
+ "enum",
15
+ ]);
16
+ /**
17
+ * Project a compact, source-read-free architecture map: counts by kind, folder
18
+ * layering with export density, the highest-dependency symbols (ranked by real
19
+ * fan-in/out, excluding structural edges so nesting does not masquerade as
20
+ * dependency), and the export surface by file. Output is bounded so a model
21
+ * reads structure cheaply.
22
+ */
23
+ function runOverview(graph, props) {
24
+ const aspect = props.aspect ?? "all";
25
+ const want = (a) => aspect === "all" || aspect === a;
26
+ return {
27
+ type: "overview",
28
+ project: graph.project,
29
+ languages: graph.languages,
30
+ counts: counts(graph),
31
+ ...(want("layers") ? { layers: layers(graph) } : {}),
32
+ ...(want("hotspots") ? { hotspots: hotspots(graph) } : {}),
33
+ ...(want("publicApi") ? { publicApi: publicApi(graph) } : {}),
34
+ ...(want("diagnostics") ? { diagnostics: graph.diagnostics.slice(0, 20) } : {}),
35
+ next: (0, common_1.resultNext)("answer", "Counts, layers, hotspots, and public API are sufficient for broad orientation."),
36
+ guide: (0, common_1.resultGuide)("Use counts, layers, hotspots, and public API as a broad orientation map. Do not expand it into file reads unless the user needs exact source body text."),
37
+ };
38
+ }
39
+ function counts(graph) {
40
+ const byKind = {};
41
+ const byLanguage = {};
42
+ let files = 0;
43
+ for (const node of graph.nodes) {
44
+ byKind[node.kind] = (byKind[node.kind] ?? 0) + 1;
45
+ byLanguage[node.language] = (byLanguage[node.language] ?? 0) + 1;
46
+ if (node.kind === "file")
47
+ files++;
48
+ }
49
+ return {
50
+ files,
51
+ nodes: graph.nodes.length,
52
+ edges: graph.edges.length,
53
+ byKind,
54
+ byLanguage,
55
+ };
56
+ }
57
+ /** Folder-level layering: how source and its export surface spread by directory. */
58
+ function layers(graph) {
59
+ const byDir = new Map();
60
+ for (const node of graph.nodes) {
61
+ if (node.external ||
62
+ node.ignored ||
63
+ node.kind === "file" ||
64
+ (0, isSupportPath_1.isSupportPath)(node.file))
65
+ continue;
66
+ const dir = (0, path_1.dirname)(node.file);
67
+ let entry = byDir.get(dir);
68
+ if (entry === undefined) {
69
+ entry = { files: new Set(), exported: 0, languages: new Set() };
70
+ byDir.set(dir, entry);
71
+ }
72
+ entry.files.add(node.file);
73
+ entry.languages.add(node.language);
74
+ if (node.exported)
75
+ entry.exported++;
76
+ }
77
+ return [...byDir.entries()]
78
+ .map(([dir, entry]) => ({
79
+ dir,
80
+ files: entry.files.size,
81
+ exported: entry.exported,
82
+ languages: [...entry.languages],
83
+ }))
84
+ .sort((a, b) => b.files - a.files || b.exported - a.exported)
85
+ .slice(0, 16);
86
+ }
87
+ /**
88
+ * The symbols at the center of the dependency graph, ranked by real fan-in and
89
+ * fan-out. Structural `contains`/`exports`/`imports` edges are excluded so the
90
+ * ranking reflects code dependency, not nesting.
91
+ */
92
+ function hotspots(graph) {
93
+ const real = (id, side) => {
94
+ const edges = side === "in" ? graph.incoming(id) : graph.outgoing(id);
95
+ let n = 0;
96
+ for (const edge of edges)
97
+ if (!(0, common_1.isStructural)(edge.kind))
98
+ n++;
99
+ return n;
100
+ };
101
+ return graph.nodes
102
+ .filter((node) => !node.external &&
103
+ !node.ignored &&
104
+ node.kind !== "file" &&
105
+ !(0, isSupportPath_1.isSupportPath)(node.file))
106
+ .map((node) => ({
107
+ ...(0, common_1.summaryOf)(node),
108
+ fanIn: real(node.id, "in"),
109
+ fanOut: real(node.id, "out"),
110
+ }))
111
+ .filter((h) => h.fanIn + h.fanOut > 0)
112
+ .sort((a, b) => b.fanIn + b.fanOut - (a.fanIn + a.fanOut))
113
+ .slice(0, 12);
114
+ }
115
+ /**
116
+ * The exported API surface: the exported symbols a consumer of the project
117
+ * would use, ranked by how depended-on each is (real fan-in/out, structural
118
+ * edges excluded). Ranking by dependency rather than by which file declares the
119
+ * most exports surfaces the load-bearing types instead of whichever file
120
+ * bundles the most aliases; test, typings, and generated files are dropped so
121
+ * they cannot crowd the real surface out.
122
+ */
123
+ function publicApi(graph) {
124
+ const degree = (id) => {
125
+ let n = 0;
126
+ for (const edge of graph.outgoing(id))
127
+ if (!(0, common_1.isStructural)(edge.kind))
128
+ n++;
129
+ for (const edge of graph.incoming(id))
130
+ if (!(0, common_1.isStructural)(edge.kind))
131
+ n++;
132
+ return n;
133
+ };
134
+ return graph
135
+ .exported()
136
+ .filter((node) => API_KINDS.has(node.kind) && !(0, isPublicApiNoisePath_1.isPublicApiNoisePath)(node.file))
137
+ .map((node) => ({ node, degree: degree(node.id) }))
138
+ .sort((a, b) => b.degree - a.degree)
139
+ .slice(0, 16)
140
+ .map((ranked) => (0, common_1.summaryOf)(ranked.node));
141
+ }
142
+ //# sourceMappingURL=runOverview.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runOverview.js","sourceRoot":"","sources":["../../src/operations/runOverview.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { GraphMemory } from "../model/GraphMemory";
2
+ import { IGraphTour } from "../structures";
3
+ /**
4
+ * Compose a repository-orientation/code-tour answer surface from existing graph
5
+ * operations. It returns selected symbols, flows, nearby edges, test anchors,
6
+ * and answer anchors without reading or embedding source bodies.
7
+ */
8
+ export declare function runTour(graph: GraphMemory, props: IGraphTour.IRequest): IGraphTour;