ts-knowledge-graph 0.1.2 → 0.1.6

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 (335) hide show
  1. package/README.md +99 -41
  2. package/contribs/webview/README.md +83 -0
  3. package/contribs/webview/web/css/style.css +310 -0
  4. package/contribs/webview/web/index.html +109 -0
  5. package/contribs/webview/web/js/app.js +1249 -0
  6. package/contribs/webview/web/js_autogenerated/.gitignore +3 -0
  7. package/contribs/webview/web/js_autogenerated/kind_descriptions.js +39 -0
  8. package/contribs/webview/web/types/app_globals.d.ts +154 -0
  9. package/dist/benchmark/benchmark_stats.d.ts +41 -0
  10. package/dist/benchmark/benchmark_stats.d.ts.map +1 -0
  11. package/dist/benchmark/benchmark_stats.js +61 -0
  12. package/dist/benchmark/benchmark_stats.js.map +1 -0
  13. package/dist/benchmark/node_benchmark.d.ts +78 -0
  14. package/dist/benchmark/node_benchmark.d.ts.map +1 -0
  15. package/dist/benchmark/node_benchmark.js +112 -0
  16. package/dist/benchmark/node_benchmark.js.map +1 -0
  17. package/dist/cli.d.ts.map +1 -1
  18. package/dist/cli.js +16 -4
  19. package/dist/cli.js.map +1 -1
  20. package/dist/cluster/cluster_weights.d.ts +20 -0
  21. package/dist/cluster/cluster_weights.d.ts.map +1 -0
  22. package/dist/cluster/cluster_weights.js +32 -0
  23. package/dist/cluster/cluster_weights.js.map +1 -0
  24. package/dist/cluster/community_detector.d.ts +61 -0
  25. package/dist/cluster/community_detector.d.ts.map +1 -0
  26. package/dist/cluster/community_detector.js +120 -0
  27. package/dist/cluster/community_detector.js.map +1 -0
  28. package/dist/cluster/community_labeler.d.ts +84 -0
  29. package/dist/cluster/community_labeler.d.ts.map +1 -0
  30. package/dist/cluster/community_labeler.js +194 -0
  31. package/dist/cluster/community_labeler.js.map +1 -0
  32. package/dist/cluster/graph_clusterer.d.ts +47 -0
  33. package/dist/cluster/graph_clusterer.d.ts.map +1 -0
  34. package/dist/cluster/graph_clusterer.js +126 -0
  35. package/dist/cluster/graph_clusterer.js.map +1 -0
  36. package/dist/commands/benchmark_command.d.ts +11 -0
  37. package/dist/commands/benchmark_command.d.ts.map +1 -0
  38. package/dist/commands/benchmark_command.js +94 -0
  39. package/dist/commands/benchmark_command.js.map +1 -0
  40. package/dist/commands/blast_radius_command.d.ts.map +1 -1
  41. package/dist/commands/blast_radius_command.js +7 -6
  42. package/dist/commands/blast_radius_command.js.map +1 -1
  43. package/dist/commands/cluster_command.d.ts +7 -0
  44. package/dist/commands/cluster_command.d.ts.map +1 -0
  45. package/dist/commands/cluster_command.js +55 -0
  46. package/dist/commands/cluster_command.js.map +1 -0
  47. package/dist/commands/command_helpers.d.ts +9 -4
  48. package/dist/commands/command_helpers.d.ts.map +1 -1
  49. package/dist/commands/command_helpers.js +13 -8
  50. package/dist/commands/command_helpers.js.map +1 -1
  51. package/dist/commands/cost_command.d.ts +13 -0
  52. package/dist/commands/cost_command.d.ts.map +1 -0
  53. package/dist/commands/cost_command.js +139 -0
  54. package/dist/commands/cost_command.js.map +1 -0
  55. package/dist/commands/{load.d.ts → enrich_command.d.ts} +3 -2
  56. package/dist/commands/enrich_command.d.ts.map +1 -0
  57. package/dist/commands/enrich_command.js +64 -0
  58. package/dist/commands/enrich_command.js.map +1 -0
  59. package/dist/commands/extract_command.d.ts.map +1 -1
  60. package/dist/commands/extract_command.js +12 -6
  61. package/dist/commands/extract_command.js.map +1 -1
  62. package/dist/commands/hotspots_command.d.ts +7 -0
  63. package/dist/commands/hotspots_command.d.ts.map +1 -0
  64. package/dist/commands/hotspots_command.js +68 -0
  65. package/dist/commands/hotspots_command.js.map +1 -0
  66. package/dist/commands/install_command.d.ts +15 -6
  67. package/dist/commands/install_command.d.ts.map +1 -1
  68. package/dist/commands/install_command.js +62 -25
  69. package/dist/commands/install_command.js.map +1 -1
  70. package/dist/commands/load_command.d.ts.map +1 -1
  71. package/dist/commands/load_command.js +20 -13
  72. package/dist/commands/load_command.js.map +1 -1
  73. package/dist/commands/neighbors_command.d.ts.map +1 -1
  74. package/dist/commands/neighbors_command.js +6 -5
  75. package/dist/commands/neighbors_command.js.map +1 -1
  76. package/dist/commands/references_command.d.ts.map +1 -1
  77. package/dist/commands/references_command.js +6 -5
  78. package/dist/commands/references_command.js.map +1 -1
  79. package/dist/commands/report_command.d.ts +16 -0
  80. package/dist/commands/report_command.d.ts.map +1 -0
  81. package/dist/commands/report_command.js +115 -0
  82. package/dist/commands/report_command.js.map +1 -0
  83. package/dist/commands/verify_command.d.ts +8 -0
  84. package/dist/commands/verify_command.d.ts.map +1 -0
  85. package/dist/commands/verify_command.js +57 -0
  86. package/dist/commands/verify_command.js.map +1 -0
  87. package/dist/commands/web_command.d.ts +27 -0
  88. package/dist/commands/web_command.d.ts.map +1 -1
  89. package/dist/commands/web_command.js +109 -3
  90. package/dist/commands/web_command.js.map +1 -1
  91. package/dist/commands/webview_command.d.ts +36 -0
  92. package/dist/commands/webview_command.d.ts.map +1 -0
  93. package/dist/commands/webview_command.js +186 -0
  94. package/dist/commands/webview_command.js.map +1 -0
  95. package/dist/enrich/cpu_profile.d.ts +160 -0
  96. package/dist/enrich/cpu_profile.d.ts.map +1 -0
  97. package/dist/enrich/cpu_profile.js +185 -0
  98. package/dist/enrich/cpu_profile.js.map +1 -0
  99. package/dist/enrich/runtime_enricher.d.ts +64 -0
  100. package/dist/enrich/runtime_enricher.d.ts.map +1 -0
  101. package/dist/enrich/runtime_enricher.js +98 -0
  102. package/dist/enrich/runtime_enricher.js.map +1 -0
  103. package/dist/enrich/runtime_join.d.ts +124 -0
  104. package/dist/enrich/runtime_join.d.ts.map +1 -0
  105. package/dist/enrich/runtime_join.js +270 -0
  106. package/dist/enrich/runtime_join.js.map +1 -0
  107. package/dist/extract/api_extractor.d.ts +24 -0
  108. package/dist/extract/api_extractor.d.ts.map +1 -0
  109. package/dist/extract/api_extractor.js +71 -0
  110. package/dist/extract/api_extractor.js.map +1 -0
  111. package/dist/extract/config_extractor.d.ts +22 -0
  112. package/dist/extract/config_extractor.d.ts.map +1 -0
  113. package/dist/extract/config_extractor.js +61 -0
  114. package/dist/extract/config_extractor.js.map +1 -0
  115. package/dist/extract/endpoint_extractor.d.ts +36 -0
  116. package/dist/extract/endpoint_extractor.d.ts.map +1 -0
  117. package/dist/extract/endpoint_extractor.js +117 -0
  118. package/dist/extract/endpoint_extractor.js.map +1 -0
  119. package/dist/extract/git_source.d.ts +23 -0
  120. package/dist/extract/git_source.d.ts.map +1 -0
  121. package/dist/extract/git_source.js +75 -0
  122. package/dist/extract/git_source.js.map +1 -0
  123. package/dist/extract/graph_builder.d.ts +8 -0
  124. package/dist/extract/graph_builder.d.ts.map +1 -1
  125. package/dist/extract/graph_builder.js +23 -1
  126. package/dist/extract/graph_builder.js.map +1 -1
  127. package/dist/extract/node_id.d.ts +16 -0
  128. package/dist/extract/node_id.d.ts.map +1 -1
  129. package/dist/extract/node_id.js +22 -0
  130. package/dist/extract/node_id.js.map +1 -1
  131. package/dist/extract/scope_resolver.d.ts +22 -0
  132. package/dist/extract/scope_resolver.d.ts.map +1 -0
  133. package/dist/extract/scope_resolver.js +53 -0
  134. package/dist/extract/scope_resolver.js.map +1 -0
  135. package/dist/extract/semantic_extractor.d.ts +25 -0
  136. package/dist/extract/semantic_extractor.d.ts.map +1 -1
  137. package/dist/extract/semantic_extractor.js +96 -2
  138. package/dist/extract/semantic_extractor.js.map +1 -1
  139. package/dist/extract/structural_extractor.d.ts +6 -0
  140. package/dist/extract/structural_extractor.d.ts.map +1 -1
  141. package/dist/extract/structural_extractor.js +22 -12
  142. package/dist/extract/structural_extractor.js.map +1 -1
  143. package/dist/project_root.d.ts +7 -0
  144. package/dist/project_root.d.ts.map +1 -0
  145. package/dist/project_root.js +9 -0
  146. package/dist/project_root.js.map +1 -0
  147. package/dist/query/graph_query.d.ts +269 -0
  148. package/dist/query/graph_query.d.ts.map +1 -1
  149. package/dist/query/graph_query.js +585 -11
  150. package/dist/query/graph_query.js.map +1 -1
  151. package/dist/report/graph_report.d.ts +51 -0
  152. package/dist/report/graph_report.d.ts.map +1 -0
  153. package/dist/report/graph_report.js +312 -0
  154. package/dist/report/graph_report.js.map +1 -0
  155. package/dist/report/pdf_renderer.d.ts +22 -0
  156. package/dist/report/pdf_renderer.d.ts.map +1 -0
  157. package/dist/report/pdf_renderer.js +54 -0
  158. package/dist/report/pdf_renderer.js.map +1 -0
  159. package/dist/report/report_data.d.ts +128 -0
  160. package/dist/report/report_data.d.ts.map +1 -0
  161. package/dist/report/report_data.js +191 -0
  162. package/dist/report/report_data.js.map +1 -0
  163. package/dist/schema/edge.d.ts +40 -5
  164. package/dist/schema/edge.d.ts.map +1 -1
  165. package/dist/schema/edge.js +73 -0
  166. package/dist/schema/edge.js.map +1 -1
  167. package/dist/schema/node.d.ts +20 -5
  168. package/dist/schema/node.d.ts.map +1 -1
  169. package/dist/schema/node.js +36 -0
  170. package/dist/schema/node.js.map +1 -1
  171. package/dist/schema/runtime_manifest.d.ts +36 -0
  172. package/dist/schema/runtime_manifest.d.ts.map +1 -0
  173. package/dist/schema/runtime_manifest.js +23 -0
  174. package/dist/schema/runtime_manifest.js.map +1 -0
  175. package/dist/schema/source_manifest.d.ts +30 -0
  176. package/dist/schema/source_manifest.d.ts.map +1 -0
  177. package/dist/schema/source_manifest.js +21 -0
  178. package/dist/schema/source_manifest.js.map +1 -0
  179. package/dist/store/jsonl_reader.d.ts +4 -0
  180. package/dist/store/jsonl_reader.d.ts.map +1 -1
  181. package/dist/store/jsonl_reader.js +13 -1
  182. package/dist/store/jsonl_reader.js.map +1 -1
  183. package/dist/store/jsonl_store.d.ts +2 -1
  184. package/dist/store/jsonl_store.d.ts.map +1 -1
  185. package/dist/store/jsonl_store.js +4 -1
  186. package/dist/store/jsonl_store.js.map +1 -1
  187. package/dist/store/kuzu_store.d.ts +59 -0
  188. package/dist/store/kuzu_store.d.ts.map +1 -1
  189. package/dist/store/kuzu_store.js +124 -5
  190. package/dist/store/kuzu_store.js.map +1 -1
  191. package/dist/store/output_folder.d.ts +43 -0
  192. package/dist/store/output_folder.d.ts.map +1 -0
  193. package/dist/store/output_folder.js +61 -0
  194. package/dist/store/output_folder.js.map +1 -0
  195. package/dist/verify/project_verifier.d.ts +85 -0
  196. package/dist/verify/project_verifier.d.ts.map +1 -0
  197. package/dist/verify/project_verifier.js +138 -0
  198. package/dist/verify/project_verifier.js.map +1 -0
  199. package/dotclaude_folder/commands/code-graph-interview.md +123 -0
  200. package/dotclaude_folder/commands/code-graph-optimize.md +65 -0
  201. package/{skills/ts-knowledge-graph → dotclaude_folder/skills/code-graph-query}/SKILL.md +6 -6
  202. package/package.json +99 -10
  203. package/.env-sample +0 -34
  204. package/contribs/web_visualisation/README.md +0 -55
  205. package/contribs/web_visualisation/web/css/style.css +0 -115
  206. package/contribs/web_visualisation/web/data/.gitignore +0 -2
  207. package/contribs/web_visualisation/web/index.html +0 -58
  208. package/contribs/web_visualisation/web/js/app.js +0 -364
  209. package/dist/agent/agent-tools.d.ts +0 -13
  210. package/dist/agent/agent-tools.d.ts.map +0 -1
  211. package/dist/agent/agent-tools.js +0 -153
  212. package/dist/agent/agent-tools.js.map +0 -1
  213. package/dist/agent/agent_tools.d.ts +0 -13
  214. package/dist/agent/agent_tools.d.ts.map +0 -1
  215. package/dist/agent/agent_tools.js +0 -153
  216. package/dist/agent/agent_tools.js.map +0 -1
  217. package/dist/agent/code-editor.d.ts +0 -18
  218. package/dist/agent/code-editor.d.ts.map +0 -1
  219. package/dist/agent/code-editor.js +0 -43
  220. package/dist/agent/code-editor.js.map +0 -1
  221. package/dist/agent/code_editor.d.ts +0 -18
  222. package/dist/agent/code_editor.d.ts.map +0 -1
  223. package/dist/agent/code_editor.js +0 -43
  224. package/dist/agent/code_editor.js.map +0 -1
  225. package/dist/agent/optimizer-agent.d.ts +0 -30
  226. package/dist/agent/optimizer-agent.d.ts.map +0 -1
  227. package/dist/agent/optimizer-agent.js +0 -97
  228. package/dist/agent/optimizer-agent.js.map +0 -1
  229. package/dist/agent/optimizer_agent.d.ts +0 -30
  230. package/dist/agent/optimizer_agent.d.ts.map +0 -1
  231. package/dist/agent/optimizer_agent.js +0 -97
  232. package/dist/agent/optimizer_agent.js.map +0 -1
  233. package/dist/agent/verifier.d.ts +0 -9
  234. package/dist/agent/verifier.d.ts.map +0 -1
  235. package/dist/agent/verifier.js +0 -19
  236. package/dist/agent/verifier.js.map +0 -1
  237. package/dist/commands/blast-radius.d.ts +0 -5
  238. package/dist/commands/blast-radius.d.ts.map +0 -1
  239. package/dist/commands/blast-radius.js +0 -18
  240. package/dist/commands/blast-radius.js.map +0 -1
  241. package/dist/commands/blast_radius.d.ts +0 -5
  242. package/dist/commands/blast_radius.d.ts.map +0 -1
  243. package/dist/commands/blast_radius.js +0 -18
  244. package/dist/commands/blast_radius.js.map +0 -1
  245. package/dist/commands/calls.d.ts +0 -5
  246. package/dist/commands/calls.d.ts.map +0 -1
  247. package/dist/commands/calls.js +0 -7
  248. package/dist/commands/calls.js.map +0 -1
  249. package/dist/commands/command-helpers.d.ts +0 -15
  250. package/dist/commands/command-helpers.d.ts.map +0 -1
  251. package/dist/commands/command-helpers.js +0 -61
  252. package/dist/commands/command-helpers.js.map +0 -1
  253. package/dist/commands/dead-exports.d.ts +0 -5
  254. package/dist/commands/dead-exports.d.ts.map +0 -1
  255. package/dist/commands/dead-exports.js +0 -7
  256. package/dist/commands/dead-exports.js.map +0 -1
  257. package/dist/commands/dead_exports.d.ts +0 -5
  258. package/dist/commands/dead_exports.d.ts.map +0 -1
  259. package/dist/commands/dead_exports.js +0 -7
  260. package/dist/commands/dead_exports.js.map +0 -1
  261. package/dist/commands/extract.d.ts +0 -8
  262. package/dist/commands/extract.d.ts.map +0 -1
  263. package/dist/commands/extract.js +0 -49
  264. package/dist/commands/extract.js.map +0 -1
  265. package/dist/commands/find.d.ts +0 -5
  266. package/dist/commands/find.d.ts.map +0 -1
  267. package/dist/commands/find.js +0 -7
  268. package/dist/commands/find.js.map +0 -1
  269. package/dist/commands/load.d.ts.map +0 -1
  270. package/dist/commands/load.js +0 -28
  271. package/dist/commands/load.js.map +0 -1
  272. package/dist/commands/neighbors.d.ts +0 -5
  273. package/dist/commands/neighbors.d.ts.map +0 -1
  274. package/dist/commands/neighbors.js +0 -17
  275. package/dist/commands/neighbors.js.map +0 -1
  276. package/dist/commands/optimize.d.ts +0 -6
  277. package/dist/commands/optimize.d.ts.map +0 -1
  278. package/dist/commands/optimize.js +0 -59
  279. package/dist/commands/optimize.js.map +0 -1
  280. package/dist/commands/optimize_command.d.ts +0 -6
  281. package/dist/commands/optimize_command.d.ts.map +0 -1
  282. package/dist/commands/optimize_command.js +0 -59
  283. package/dist/commands/optimize_command.js.map +0 -1
  284. package/dist/commands/references.d.ts +0 -5
  285. package/dist/commands/references.d.ts.map +0 -1
  286. package/dist/commands/references.js +0 -17
  287. package/dist/commands/references.js.map +0 -1
  288. package/dist/commands/web.d.ts +0 -19
  289. package/dist/commands/web.d.ts.map +0 -1
  290. package/dist/commands/web.js +0 -120
  291. package/dist/commands/web.js.map +0 -1
  292. package/dist/commands/who-calls.d.ts +0 -5
  293. package/dist/commands/who-calls.d.ts.map +0 -1
  294. package/dist/commands/who-calls.js +0 -7
  295. package/dist/commands/who-calls.js.map +0 -1
  296. package/dist/commands/who_calls.d.ts +0 -5
  297. package/dist/commands/who_calls.d.ts.map +0 -1
  298. package/dist/commands/who_calls.js +0 -7
  299. package/dist/commands/who_calls.js.map +0 -1
  300. package/dist/extract/graph-builder.d.ts +0 -16
  301. package/dist/extract/graph-builder.d.ts.map +0 -1
  302. package/dist/extract/graph-builder.js +0 -39
  303. package/dist/extract/graph-builder.js.map +0 -1
  304. package/dist/extract/node-id.d.ts +0 -8
  305. package/dist/extract/node-id.d.ts.map +0 -1
  306. package/dist/extract/node-id.js +0 -22
  307. package/dist/extract/node-id.js.map +0 -1
  308. package/dist/extract/project-loader.d.ts +0 -5
  309. package/dist/extract/project-loader.d.ts.map +0 -1
  310. package/dist/extract/project-loader.js +0 -19
  311. package/dist/extract/project-loader.js.map +0 -1
  312. package/dist/extract/semantic-extractor.d.ts +0 -22
  313. package/dist/extract/semantic-extractor.d.ts.map +0 -1
  314. package/dist/extract/semantic-extractor.js +0 -254
  315. package/dist/extract/semantic-extractor.js.map +0 -1
  316. package/dist/extract/structural-extractor.d.ts +0 -18
  317. package/dist/extract/structural-extractor.d.ts.map +0 -1
  318. package/dist/extract/structural-extractor.js +0 -97
  319. package/dist/extract/structural-extractor.js.map +0 -1
  320. package/dist/query/graph-query.d.ts +0 -28
  321. package/dist/query/graph-query.d.ts.map +0 -1
  322. package/dist/query/graph-query.js +0 -93
  323. package/dist/query/graph-query.js.map +0 -1
  324. package/dist/store/jsonl-reader.d.ts +0 -11
  325. package/dist/store/jsonl-reader.d.ts.map +0 -1
  326. package/dist/store/jsonl-reader.js +0 -19
  327. package/dist/store/jsonl-reader.js.map +0 -1
  328. package/dist/store/jsonl-store.d.ts +0 -7
  329. package/dist/store/jsonl-store.d.ts.map +0 -1
  330. package/dist/store/jsonl-store.js +0 -13
  331. package/dist/store/jsonl-store.js.map +0 -1
  332. package/dist/store/kuzu-store.d.ts +0 -14
  333. package/dist/store/kuzu-store.d.ts.map +0 -1
  334. package/dist/store/kuzu-store.js +0 -52
  335. package/dist/store/kuzu-store.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"graph_query.js","sourceRoot":"","sources":["../../src/query/graph_query.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"graph_query.js","sourceRoot":"","sources":["../../src/query/graph_query.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,51 @@
1
+ import { SourceManifest } from '../schema/source_manifest.js';
2
+ import { GraphReportData, ReportSymbol } from './report_data.js';
3
+ /** The text formats {@link GraphReport.render} produces directly. PDF is derived from the visual HTML by the command. */
4
+ export type ReportFormat = 'markdown' | 'json';
5
+ /**
6
+ * Renders a {@link GraphReportData} to a string. Pure: the same data object maps
7
+ * deterministically to markdown, JSON, or the self-contained visual HTML the PDF
8
+ * path is built from — no store access, no clock, no filesystem — which keeps
9
+ * every format unit-testable in isolation. Mirrors how {@link CommunityDetector}
10
+ * is the pure core that {@link GraphClusterer} wraps with I/O.
11
+ */
12
+ export declare class GraphReport {
13
+ static render(data: GraphReportData, format: ReportFormat): string;
14
+ /** The GitHub permalink for a symbol, or null when the graph recorded no source provenance. */
15
+ static permalink(provenance: SourceManifest | null, symbol: ReportSymbol): string | null;
16
+ /**
17
+ * A location cell: a markdown link to the symbol on GitHub when source
18
+ * provenance was recorded, falling back to a plain `path:line` code span.
19
+ */
20
+ private static location;
21
+ private static renderMarkdown;
22
+ private static provenanceLine;
23
+ private static banner;
24
+ private static snapshotLine;
25
+ private static kindTable;
26
+ private static rankSection;
27
+ private static communitySection;
28
+ private static runtimeSection;
29
+ private static structureSection;
30
+ private static groupLine;
31
+ private static cycleSection;
32
+ private static boundarySection;
33
+ private static deadExportSection;
34
+ private static nextStepsSection;
35
+ private static table;
36
+ /** Escapes the pipe character so a symbol name never breaks a markdown table row. */
37
+ private static cell;
38
+ private static pct0;
39
+ private static pct1;
40
+ /**
41
+ * Renders a self-contained, print-ready HTML document for the same data — the
42
+ * substrate the `pdf` format is converted from, and a usable artifact on its own.
43
+ * Light theme, system fonts, inline styles, CSS-only bar charts: no external
44
+ * assets, so it renders identically offline and in a headless browser.
45
+ */
46
+ static renderVisualHtml(data: GraphReportData): string;
47
+ private static htmlProvenance;
48
+ private static htmlDocument;
49
+ private static escapeHtml;
50
+ }
51
+ //# sourceMappingURL=graph_report.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graph_report.d.ts","sourceRoot":"","sources":["../../src/report/graph_report.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAgB,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAE/E,yHAAyH;AACzH,MAAM,MAAM,YAAY,GAAG,UAAU,GAAG,MAAM,CAAC;AAK/C;;;;;;GAMG;AACH,qBAAa,WAAW;IACvB,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,YAAY,GAAG,MAAM;IAOlE,+FAA+F;IAC/F,MAAM,CAAC,SAAS,CAAC,UAAU,EAAE,cAAc,GAAG,IAAI,EAAE,MAAM,EAAE,YAAY,GAAG,MAAM,GAAG,IAAI;IAOxF;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ;IAMvB,OAAO,CAAC,MAAM,CAAC,cAAc;IA8C7B,OAAO,CAAC,MAAM,CAAC,cAAc;IAY7B,OAAO,CAAC,MAAM,CAAC,MAAM;IAOrB,OAAO,CAAC,MAAM,CAAC,YAAY;IAY3B,OAAO,CAAC,MAAM,CAAC,SAAS;IAOxB,OAAO,CAAC,MAAM,CAAC,WAAW;IAW1B,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAO/B,OAAO,CAAC,MAAM,CAAC,cAAc;IAyB7B,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAQ/B,OAAO,CAAC,MAAM,CAAC,SAAS;IAKxB,OAAO,CAAC,MAAM,CAAC,YAAY;IAO3B,OAAO,CAAC,MAAM,CAAC,eAAe;IAiB9B,OAAO,CAAC,MAAM,CAAC,iBAAiB;IAchC,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAsB/B,OAAO,CAAC,MAAM,CAAC,KAAK;IAOpB,qFAAqF;IACrF,OAAO,CAAC,MAAM,CAAC,IAAI;IAInB,OAAO,CAAC,MAAM,CAAC,IAAI;IAInB,OAAO,CAAC,MAAM,CAAC,IAAI;IAInB;;;;;OAKG;IACH,MAAM,CAAC,gBAAgB,CAAC,IAAI,EAAE,eAAe,GAAG,MAAM;IA4DtD,OAAO,CAAC,MAAM,CAAC,cAAc;IAU7B,OAAO,CAAC,MAAM,CAAC,YAAY;IAmC3B,OAAO,CAAC,MAAM,CAAC,UAAU;CAOzB"}
@@ -0,0 +1,312 @@
1
+ /** The tool's own repository, linked from the report footer. */
2
+ const TOOL_REPO_URL = 'https://github.com/jeromeetienne/ts_knowledge_graph';
3
+ /**
4
+ * Renders a {@link GraphReportData} to a string. Pure: the same data object maps
5
+ * deterministically to markdown, JSON, or the self-contained visual HTML the PDF
6
+ * path is built from — no store access, no clock, no filesystem — which keeps
7
+ * every format unit-testable in isolation. Mirrors how {@link CommunityDetector}
8
+ * is the pure core that {@link GraphClusterer} wraps with I/O.
9
+ */
10
+ export class GraphReport {
11
+ static render(data, format) {
12
+ if (format === 'json') {
13
+ return JSON.stringify(data, null, 2);
14
+ }
15
+ return GraphReport.renderMarkdown(data);
16
+ }
17
+ /** The GitHub permalink for a symbol, or null when the graph recorded no source provenance. */
18
+ static permalink(provenance, symbol) {
19
+ if (provenance === null) {
20
+ return null;
21
+ }
22
+ return `${provenance.baseUrl}/blob/${provenance.commit}/${provenance.prefix}${symbol.filePath}#L${symbol.startLine}`;
23
+ }
24
+ /**
25
+ * A location cell: a markdown link to the symbol on GitHub when source
26
+ * provenance was recorded, falling back to a plain `path:line` code span.
27
+ */
28
+ static location(provenance, symbol) {
29
+ const label = `\`${symbol.filePath}:${symbol.startLine}\``;
30
+ const link = GraphReport.permalink(provenance, symbol);
31
+ return link === null ? label : `[${label}](${link})`;
32
+ }
33
+ static renderMarkdown(data) {
34
+ const lines = [];
35
+ lines.push(`# Codebase brief — ${data.project}`, '');
36
+ lines.push(GraphReport.provenanceLine(data), '');
37
+ lines.push(GraphReport.banner(data), '');
38
+ lines.push(`> ${data.verdict}`, '');
39
+ lines.push('## Snapshot', '', GraphReport.snapshotLine(data), '');
40
+ lines.push('## Composition', '');
41
+ lines.push('**Symbols by kind**', '', ...GraphReport.kindTable(data.nodeKinds), '');
42
+ lines.push('**Relationships by kind**', '', ...GraphReport.kindTable(data.edgeKinds), '');
43
+ lines.push('## Load-bearing code', '');
44
+ lines.push('**Most depended-upon** — direct callers', '');
45
+ lines.push(...GraphReport.rankSection(data.hubsByCallers, 'Callers', 'No call edges — run `extract --semantic`.', data.provenance), '');
46
+ lines.push('**Largest blast radius** — symbols transitively affected by a change', '');
47
+ lines.push(...GraphReport.rankSection(data.hubsByBlastRadius, 'Impacted', 'No call edges — run `extract --semantic`.', data.provenance), '');
48
+ lines.push('## Communities', '');
49
+ lines.push(...GraphReport.communitySection(data), '');
50
+ lines.push('## Runtime', '');
51
+ lines.push(...GraphReport.runtimeSection(data), '');
52
+ if (data.enriched === true) {
53
+ lines.push('## Structure vs. runtime', '');
54
+ lines.push(...GraphReport.structureSection(data.structureVsRuntime), '');
55
+ }
56
+ lines.push('## Cycles', '');
57
+ lines.push(...GraphReport.cycleSection(data), '');
58
+ lines.push('## System boundary', '');
59
+ lines.push(...GraphReport.boundarySection(data), '');
60
+ lines.push('## Cleanup candidates', '');
61
+ lines.push(...GraphReport.deadExportSection(data), '');
62
+ lines.push('## Where to go next', '');
63
+ lines.push(...GraphReport.nextStepsSection(data), '');
64
+ lines.push(`*Generated by [ts-knowledge-graph](${TOOL_REPO_URL})*`, '');
65
+ return lines.join('\n');
66
+ }
67
+ static provenanceLine(data) {
68
+ const parts = [];
69
+ if (data.provenance !== null) {
70
+ if (data.provenance.prefix.length > 0) {
71
+ parts.push(`\`${data.provenance.prefix}\``);
72
+ }
73
+ parts.push(`commit \`${data.provenance.commit.slice(0, 7)}\``);
74
+ }
75
+ parts.push(`generated ${data.generatedAt}`);
76
+ return parts.join(' · ');
77
+ }
78
+ static banner(data) {
79
+ const semantic = `semantic ${data.semantic === true ? '✓' : '—'}`;
80
+ const enriched = `enriched ${data.enriched === true ? '✓' : '—'}`;
81
+ const coverage = data.coverage === null ? '' : ` · runtime coverage ${GraphReport.pct0(data.coverage)}`;
82
+ return `**${semantic} · ${enriched}${coverage}**`;
83
+ }
84
+ static snapshotLine(data) {
85
+ const quality = data.communityQuality === null ? '' : ` (quality ${data.communityQuality.toFixed(2)})`;
86
+ return [
87
+ `${data.totals.symbols} symbols`,
88
+ `${data.totals.files} files`,
89
+ `${data.totals.relationships} relationships`,
90
+ `${data.totals.communities} communities${quality}`,
91
+ `${data.totals.deadExports} dead exports`,
92
+ `${data.totals.cycles} cycles`,
93
+ ].join(' · ');
94
+ }
95
+ static kindTable(kinds) {
96
+ if (kinds.length === 0) {
97
+ return ['_(none)_'];
98
+ }
99
+ return GraphReport.table(['Kind', 'Count'], kinds.map((entry) => [`\`${entry.kind}\``, String(entry.count)]), ['left', 'right']);
100
+ }
101
+ static rankSection(items, scoreHeader, empty, provenance) {
102
+ if (items.length === 0) {
103
+ return [`_${empty}_`];
104
+ }
105
+ return GraphReport.table(['Symbol', scoreHeader, 'Location'], items.map((item) => [`\`${item.name}\``, String(item.score), GraphReport.location(provenance, item)]), ['left', 'right', 'left']);
106
+ }
107
+ static communitySection(data) {
108
+ if (data.communities.length === 0) {
109
+ return ['_No communities assigned — run `cluster` to populate._'];
110
+ }
111
+ return GraphReport.table(['Community', 'Size'], data.communities.map((community) => [GraphReport.cell(community.label), String(community.size)]), ['left', 'right']);
112
+ }
113
+ static runtimeSection(data) {
114
+ if (data.enriched === false) {
115
+ return ['_Run `enrich` to populate the runtime sections (hotspots, cost, structure-vs-runtime)._'];
116
+ }
117
+ const lines = [];
118
+ lines.push('**Hotspots** — exclusive self-time', '');
119
+ lines.push(...GraphReport.table(['Symbol', 'Self-time (ms)', 'Location'], data.hotspots.map((hotspot) => [`\`${hotspot.name}\``, hotspot.score.toFixed(1), GraphReport.location(data.provenance, hotspot)]), ['left', 'right', 'left']), '');
120
+ lines.push('**Cost** — inclusive, share of total runtime', '');
121
+ lines.push(...GraphReport.table(['Symbol', 'Inclusive (ms)', 'Share', 'Location'], data.cost.map((node) => [
122
+ `\`${node.name}\`${node.cyclic === true ? ' ↺' : ''}`,
123
+ node.inclusiveCost.toFixed(1),
124
+ GraphReport.pct1(node.shareOfTotal),
125
+ GraphReport.location(data.provenance, node),
126
+ ]), ['left', 'right', 'right', 'left']));
127
+ return lines;
128
+ }
129
+ static structureSection(structure) {
130
+ return [
131
+ GraphReport.groupLine('Orchestrators', 'high inclusive cost, ~0 self — optimize their callees', structure.orchestrators),
132
+ GraphReport.groupLine('Hidden hotspots', 'hot, but few callers — easy to miss in review', structure.hiddenHotspots),
133
+ GraphReport.groupLine('Aligned core', 'most depended-upon and hottest — genuine hotspots', structure.alignedCore),
134
+ ];
135
+ }
136
+ static groupLine(title, description, members) {
137
+ const names = members.length === 0 ? '—' : members.map((member) => `\`${member.name}\``).join(', ');
138
+ return `- **${title}** (${description}): ${names}`;
139
+ }
140
+ static cycleSection(data) {
141
+ if (data.cycles.length === 0) {
142
+ return ['_No call cycles detected — the call graph is acyclic._'];
143
+ }
144
+ return data.cycles.map((cycle) => `- ${cycle.size}-symbol cycle: ${cycle.members.map((member) => `\`${member.name}\``).join(', ')}`);
145
+ }
146
+ static boundarySection(data) {
147
+ const { endpoints, configFlags, externalApis } = data.boundary;
148
+ if (endpoints.length === 0 && configFlags.length === 0 && externalApis.length === 0) {
149
+ return ['_No endpoints, configuration flags, or external API calls detected._'];
150
+ }
151
+ const lines = [];
152
+ const list = (label, items) => {
153
+ if (items.length > 0) {
154
+ lines.push(`- **${label}** (${items.length}): ${items.map((item) => `\`${item.name}\``).join(', ')}`);
155
+ }
156
+ };
157
+ list('Endpoints', endpoints);
158
+ list('Configuration flags', configFlags);
159
+ list('External APIs', externalApis);
160
+ return lines;
161
+ }
162
+ static deadExportSection(data) {
163
+ if (data.deadExports.length === 0) {
164
+ return ['_No dead exports._'];
165
+ }
166
+ return [
167
+ 'Exported but never referenced:',
168
+ '',
169
+ ...GraphReport.table(['Symbol', 'Kind', 'Location'], data.deadExports.map((symbol) => [`\`${symbol.name}\``, symbol.kind, GraphReport.location(data.provenance, symbol)])),
170
+ ];
171
+ }
172
+ static nextStepsSection(data) {
173
+ const commands = [];
174
+ if (data.enriched === true) {
175
+ commands.push('# rank where runtime is spent, and who is responsible for it', `ts-knowledge-graph hotspots -o ${data.outputFolder}`, `ts-knowledge-graph cost -o ${data.outputFolder}`);
176
+ }
177
+ else if (data.hubsByBlastRadius.length > 0) {
178
+ commands.push('# the highest-impact symbols to change carefully', `ts-knowledge-graph hotspots --by blast-radius -o ${data.outputFolder}`);
179
+ }
180
+ if (data.deadExports.length > 0) {
181
+ commands.push('# confirm dead code before deleting', `ts-knowledge-graph dead-exports -o ${data.outputFolder}`);
182
+ }
183
+ commands.push('# explore the whole graph interactively', `ts-knowledge-graph webview -o ${data.outputFolder}`);
184
+ const lines = ['```sh', ...commands, '```'];
185
+ const focus = data.enriched === true && data.hotspots.length > 0 ? data.hotspots[0] : data.hubsByBlastRadius[0];
186
+ const link = focus === undefined ? null : GraphReport.permalink(data.provenance, focus);
187
+ if (link !== null) {
188
+ const label = data.enriched === true ? 'Hottest symbol' : 'Highest-impact symbol';
189
+ lines.push('', `${label} on GitHub: [\`${focus.name}\`](${link})`);
190
+ }
191
+ return lines;
192
+ }
193
+ static table(headers, rows, align = []) {
194
+ const head = `| ${headers.join(' | ')} |`;
195
+ const separator = `| ${headers.map((_, index) => (align[index] === 'right' ? '---:' : '---')).join(' | ')} |`;
196
+ const body = rows.map((row) => `| ${row.map(GraphReport.cell).join(' | ')} |`);
197
+ return [head, separator, ...body];
198
+ }
199
+ /** Escapes the pipe character so a symbol name never breaks a markdown table row. */
200
+ static cell(value) {
201
+ return value.replace(/\|/g, '\\|');
202
+ }
203
+ static pct0(value) {
204
+ return `${(value * 100).toFixed(0)}%`;
205
+ }
206
+ static pct1(value) {
207
+ return `${(value * 100).toFixed(1)}%`;
208
+ }
209
+ /**
210
+ * Renders a self-contained, print-ready HTML document for the same data — the
211
+ * substrate the `pdf` format is converted from, and a usable artifact on its own.
212
+ * Light theme, system fonts, inline styles, CSS-only bar charts: no external
213
+ * assets, so it renders identically offline and in a headless browser.
214
+ */
215
+ static renderVisualHtml(data) {
216
+ const esc = GraphReport.escapeHtml;
217
+ const badge = (label, on) => `<span class="badge ${on === true ? 'ok' : 'off'}">${esc(label)} ${on === true ? '✓' : '—'}</span>`;
218
+ const coverageBadge = data.coverage === null ? '' : `<span class="badge info">coverage ${GraphReport.pct0(data.coverage)}</span>`;
219
+ const metric = (label, value) => `<div class="metric"><div class="metric-label">${esc(label)}</div><div class="metric-value">${esc(value)}</div></div>`;
220
+ const maxSelf = data.hotspots.reduce((max, hotspot) => Math.max(max, hotspot.score), 0);
221
+ const bar = (label, value, fraction, color) => `<div class="bar-row"><span class="bar-name">${esc(label)}</span>`
222
+ + `<span class="bar-track"><span class="bar-fill" style="width:${Math.min(100, Math.max(0, fraction * 100)).toFixed(1)}%;background:${color}"></span></span>`
223
+ + `<span class="bar-val">${esc(value)}</span></div>`;
224
+ const sections = [];
225
+ sections.push(`<header><h1>Codebase brief — ${esc(data.project)}</h1>`
226
+ + `<p class="sub">${esc(GraphReport.htmlProvenance(data))}</p>`
227
+ + `<p class="badges">${badge('semantic', data.semantic)} ${badge('enriched', data.enriched)} ${coverageBadge}</p>`
228
+ + `<p class="verdict">${esc(data.verdict)}</p></header>`);
229
+ sections.push('<div class="metrics">'
230
+ + metric('symbols', String(data.totals.symbols))
231
+ + metric('files', String(data.totals.files))
232
+ + metric('relationships', String(data.totals.relationships))
233
+ + metric('communities', String(data.totals.communities))
234
+ + metric('dead exports', String(data.totals.deadExports))
235
+ + metric('cycles', String(data.totals.cycles))
236
+ + '</div>');
237
+ if (data.enriched === true && data.cost.length > 0) {
238
+ const rows = data.cost.map((node) => bar(node.name, `${GraphReport.pct1(node.shareOfTotal)}`, node.shareOfTotal, '#185FA5')).join('');
239
+ sections.push(`<section><h2>Inclusive cost — share of total runtime</h2>${rows}</section>`);
240
+ }
241
+ if (data.enriched === true && data.hotspots.length > 0) {
242
+ const rows = data.hotspots.map((hotspot) => bar(hotspot.name, `${hotspot.score.toFixed(1)} ms`, maxSelf > 0 ? hotspot.score / maxSelf : 0, '#854F0B')).join('');
243
+ sections.push(`<section><h2>Self-time — exclusive milliseconds</h2>${rows}</section>`);
244
+ }
245
+ if (data.enriched === true) {
246
+ const card = (title, description, members, tone) => `<div class="svr ${tone}"><div class="svr-title">${esc(title)}</div>`
247
+ + `<div class="svr-members">${members.length === 0 ? '—' : members.map((member) => esc(member.name)).join(' · ')}</div>`
248
+ + `<div class="svr-note">${esc(description)}</div></div>`;
249
+ sections.push('<section><h2>Structure vs. runtime</h2><div class="svr-grid">'
250
+ + card('Orchestrators', 'high inclusive cost, ~0 self — optimize their callees', data.structureVsRuntime.orchestrators, 'neutral')
251
+ + card('Hidden hotspots', 'hot, but few callers — easy to miss', data.structureVsRuntime.hiddenHotspots, 'warn')
252
+ + card('Aligned core', 'central and hot — genuine hotspots', data.structureVsRuntime.alignedCore, 'ok')
253
+ + '</div></section>');
254
+ }
255
+ if (data.deadExports.length > 0) {
256
+ const rows = data.deadExports.map((symbol) => `<tr><td class="mono">${esc(symbol.name)}</td><td>${esc(symbol.kind)}</td><td class="mono dim">${esc(`${symbol.filePath}:${symbol.startLine}`)}</td></tr>`).join('');
257
+ sections.push(`<section><h2>Dead exports</h2><table><thead><tr><th>Symbol</th><th>Kind</th><th>Location</th></tr></thead><tbody>${rows}</tbody></table></section>`);
258
+ }
259
+ return GraphReport.htmlDocument(data.project, sections.join(''));
260
+ }
261
+ static htmlProvenance(data) {
262
+ const parts = [];
263
+ if (data.provenance !== null) {
264
+ parts.push(`${data.provenance.baseUrl.replace(/^https?:\/\//, '')}`);
265
+ parts.push(`commit ${data.provenance.commit.slice(0, 7)}`);
266
+ }
267
+ parts.push(`generated ${data.generatedAt}`);
268
+ return parts.join(' · ');
269
+ }
270
+ static htmlDocument(title, body) {
271
+ const style = [
272
+ '*{box-sizing:border-box}',
273
+ 'body{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif;color:#1b1b1a;background:#fff;max-width:820px;margin:0 auto;padding:40px 32px;line-height:1.5}',
274
+ 'h1{font-size:24px;font-weight:600;margin:0}',
275
+ 'h2{font-size:15px;font-weight:600;color:#5f5e5a;margin:28px 0 12px;text-transform:none}',
276
+ '.sub{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;color:#888780;margin:4px 0 12px}',
277
+ '.badges{margin:0 0 14px}',
278
+ '.badge{display:inline-block;font-size:12px;padding:3px 9px;border-radius:6px;margin-right:6px}',
279
+ '.badge.ok{background:#E1F5EE;color:#0F6E56}.badge.off{background:#F1EFE8;color:#5F5E5A}.badge.info{background:#E6F1FB;color:#185FA5}',
280
+ '.verdict{font-size:15px;background:#F1EFE8;border-radius:10px;padding:12px 14px;margin:0}',
281
+ '.metrics{display:flex;flex-wrap:wrap;gap:10px;margin:18px 0}',
282
+ '.metric{background:#F1EFE8;border-radius:8px;padding:10px 14px;min-width:96px}',
283
+ '.metric-label{font-size:12px;color:#5f5e5a}.metric-value{font-size:22px;font-weight:600}',
284
+ '.bar-row{display:flex;align-items:center;gap:10px;margin:6px 0}',
285
+ '.bar-name{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px;width:190px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}',
286
+ '.bar-track{flex:1;height:9px;background:#F1EFE8;border-radius:999px;overflow:hidden}',
287
+ '.bar-fill{display:block;height:100%}',
288
+ '.bar-val{font-size:12px;color:#5f5e5a;width:74px;text-align:right}',
289
+ '.svr-grid{display:flex;gap:10px;flex-wrap:wrap}',
290
+ '.svr{flex:1;min-width:200px;border-radius:10px;padding:12px}',
291
+ '.svr.neutral{background:#F1EFE8}.svr.warn{background:#FAEEDA}.svr.ok{background:#E1F5EE}',
292
+ '.svr-title{font-size:13px;font-weight:600;margin-bottom:6px}',
293
+ '.svr-members{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;margin-bottom:6px}',
294
+ '.svr-note{font-size:12px;color:#5f5e5a}',
295
+ 'table{width:100%;border-collapse:collapse;font-size:13px}',
296
+ 'th{text-align:left;color:#5f5e5a;font-weight:500;border-bottom:1px solid #D3D1C7;padding:6px 8px}',
297
+ 'td{padding:6px 8px;border-bottom:1px solid #F1EFE8}',
298
+ '.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.dim{color:#888780}',
299
+ 'footer{margin-top:32px;font-size:12px;color:#888780}',
300
+ ].join('');
301
+ return `<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><title>Codebase brief — ${GraphReport.escapeHtml(title)}</title><style>${style}</style></head>`
302
+ + `<body>${body}<footer>Generated by <a href="${TOOL_REPO_URL}">ts-knowledge-graph</a></footer></body></html>`;
303
+ }
304
+ static escapeHtml(value) {
305
+ return value
306
+ .replace(/&/g, '&amp;')
307
+ .replace(/</g, '&lt;')
308
+ .replace(/>/g, '&gt;')
309
+ .replace(/"/g, '&quot;');
310
+ }
311
+ }
312
+ //# sourceMappingURL=graph_report.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graph_report.js","sourceRoot":"","sources":["../../src/report/graph_report.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ /** Thrown when no HTML-to-PDF engine is installed, so callers can fall back gracefully. */
2
+ export declare class PdfUnavailableError extends Error {
3
+ constructor(message: string);
4
+ }
5
+ /**
6
+ * Converts the report's visual HTML to a PDF through an optional, lazily-loaded
7
+ * headless-browser engine (Puppeteer). The engine is never a hard dependency, so
8
+ * `markdown`/`json` users never pull it in; when it is absent this throws
9
+ * {@link PdfUnavailableError} for the command to handle (it falls back to writing
10
+ * the HTML). Keeping the conversion here leaves {@link GraphReport} pure.
11
+ */
12
+ export declare class PdfRenderer {
13
+ static fromHtml(html: string): Promise<Uint8Array>;
14
+ /**
15
+ * Resolves the optional PDF engine by name at runtime. The specifier is a
16
+ * `string`-typed variable on purpose, so the type checker treats it as a dynamic
17
+ * import (`Promise<unknown>`) and does not require `puppeteer` to be installed
18
+ * to type-check the project.
19
+ */
20
+ private static loadEngine;
21
+ }
22
+ //# sourceMappingURL=pdf_renderer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pdf_renderer.d.ts","sourceRoot":"","sources":["../../src/report/pdf_renderer.ts"],"names":[],"mappings":"AAAA,2FAA2F;AAC3F,qBAAa,mBAAoB,SAAQ,KAAK;gBACjC,OAAO,EAAE,MAAM;CAI3B;AAgBD;;;;;;GAMG;AACH,qBAAa,WAAW;WACV,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAgBxD;;;;;OAKG;mBACkB,UAAU;CAc/B"}
@@ -0,0 +1,54 @@
1
+ /** Thrown when no HTML-to-PDF engine is installed, so callers can fall back gracefully. */
2
+ export class PdfUnavailableError extends Error {
3
+ constructor(message) {
4
+ super(message);
5
+ this.name = 'PdfUnavailableError';
6
+ }
7
+ }
8
+ /**
9
+ * Converts the report's visual HTML to a PDF through an optional, lazily-loaded
10
+ * headless-browser engine (Puppeteer). The engine is never a hard dependency, so
11
+ * `markdown`/`json` users never pull it in; when it is absent this throws
12
+ * {@link PdfUnavailableError} for the command to handle (it falls back to writing
13
+ * the HTML). Keeping the conversion here leaves {@link GraphReport} pure.
14
+ */
15
+ export class PdfRenderer {
16
+ static async fromHtml(html) {
17
+ const engine = await PdfRenderer.loadEngine();
18
+ const browser = await engine.launch({ headless: true });
19
+ try {
20
+ const page = await browser.newPage();
21
+ await page.setContent(html, { waitUntil: 'networkidle0' });
22
+ return await page.pdf({
23
+ format: 'A4',
24
+ printBackground: true,
25
+ margin: { top: '14mm', bottom: '14mm', left: '12mm', right: '12mm' },
26
+ });
27
+ }
28
+ finally {
29
+ await browser.close();
30
+ }
31
+ }
32
+ /**
33
+ * Resolves the optional PDF engine by name at runtime. The specifier is a
34
+ * `string`-typed variable on purpose, so the type checker treats it as a dynamic
35
+ * import (`Promise<unknown>`) and does not require `puppeteer` to be installed
36
+ * to type-check the project.
37
+ */
38
+ static async loadEngine() {
39
+ const moduleName = 'puppeteer';
40
+ let imported;
41
+ try {
42
+ imported = (await import(moduleName));
43
+ }
44
+ catch {
45
+ throw new PdfUnavailableError('PDF output needs a headless-browser engine — install one with `npm i -D puppeteer`.');
46
+ }
47
+ const engine = imported.default ?? (imported.launch !== undefined ? imported : undefined);
48
+ if (engine === undefined) {
49
+ throw new PdfUnavailableError('the installed `puppeteer` does not expose a launch() entry point.');
50
+ }
51
+ return engine;
52
+ }
53
+ }
54
+ //# sourceMappingURL=pdf_renderer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pdf_renderer.js","sourceRoot":"","sources":["../../src/report/pdf_renderer.ts"],"names":[],"mappings":"AAAA,2FAA2F;AAC3F,MAAM,OAAO,mBAAoB,SAAQ,KAAK;IAC7C,YAAY,OAAe;QAC1B,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;IACnC,CAAC;CACD;AAgBD;;;;;;GAMG;AACH,MAAM,OAAO,WAAW;IACvB,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAY;QACjC,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,UAAU,EAAE,CAAC;QAC9C,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QACxD,IAAI,CAAC;YACJ,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;YACrC,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC,CAAC;YAC3D,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC;gBACrB,MAAM,EAAE,IAAI;gBACZ,eAAe,EAAE,IAAI;gBACrB,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;aACpE,CAAC,CAAC;QACJ,CAAC;gBAAS,CAAC;YACV,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;QACvB,CAAC;IACF,CAAC;IAED;;;;;OAKG;IACK,MAAM,CAAC,KAAK,CAAC,UAAU;QAC9B,MAAM,UAAU,GAAW,WAAW,CAAC;QACvC,IAAI,QAAsD,CAAC;QAC3D,IAAI,CAAC;YACJ,QAAQ,GAAG,CAAC,MAAM,MAAM,CAAC,UAAU,CAAC,CAAiD,CAAC;QACvF,CAAC;QAAC,MAAM,CAAC;YACR,MAAM,IAAI,mBAAmB,CAAC,qFAAqF,CAAC,CAAC;QACtH,CAAC;QACD,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAE,QAAsB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QACzG,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YAC1B,MAAM,IAAI,mBAAmB,CAAC,mEAAmE,CAAC,CAAC;QACpG,CAAC;QACD,OAAO,MAAM,CAAC;IACf,CAAC;CACD"}