@documonster/mcp 0.15.0 → 0.16.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 (37) hide show
  1. package/README.md +60 -1
  2. package/dist/config.d.ts +25 -2
  3. package/dist/config.d.ts.map +1 -1
  4. package/dist/config.js +22 -3
  5. package/dist/config.js.map +1 -1
  6. package/dist/tools/diagram-markdown.d.ts +5 -2
  7. package/dist/tools/diagram-markdown.d.ts.map +1 -1
  8. package/dist/tools/diagram-markdown.js +29 -2
  9. package/dist/tools/diagram-markdown.js.map +1 -1
  10. package/dist/tools/diagram-render.d.ts +7 -0
  11. package/dist/tools/diagram-render.d.ts.map +1 -1
  12. package/dist/tools/diagram-render.js +104 -92
  13. package/dist/tools/diagram-render.js.map +1 -1
  14. package/dist/tools/diagram.d.ts +25 -2
  15. package/dist/tools/diagram.d.ts.map +1 -1
  16. package/dist/tools/diagram.js +16 -4
  17. package/dist/tools/diagram.js.map +1 -1
  18. package/dist/tools/doc-convert.d.ts.map +1 -1
  19. package/dist/tools/doc-convert.js +7 -5
  20. package/dist/tools/doc-convert.js.map +1 -1
  21. package/dist/tools/doc-write.d.ts.map +1 -1
  22. package/dist/tools/doc-write.js +4 -3
  23. package/dist/tools/doc-write.js.map +1 -1
  24. package/dist/tools/help.d.ts +13 -0
  25. package/dist/tools/help.d.ts.map +1 -1
  26. package/dist/tools/help.js +13 -0
  27. package/dist/tools/help.js.map +1 -1
  28. package/dist/tools/pdf-edit.d.ts.map +1 -1
  29. package/dist/tools/pdf-edit.js +12 -0
  30. package/dist/tools/pdf-edit.js.map +1 -1
  31. package/dist/tools/pdf-fonts.d.ts +59 -4
  32. package/dist/tools/pdf-fonts.d.ts.map +1 -1
  33. package/dist/tools/pdf-fonts.js +128 -14
  34. package/dist/tools/pdf-fonts.js.map +1 -1
  35. package/dist/tools/sheet-write.js +6 -1
  36. package/dist/tools/sheet-write.js.map +1 -1
  37. package/package.json +2 -2
package/README.md CHANGED
@@ -71,7 +71,8 @@ No install needed — point your MCP client at `npx`.
71
71
  | `--enable <groups>` | all | Comma-separated tool groups: `core`, `excel`, `word`, `pdf`, `forms`, `archive`, `diagram`. `core` is always on. |
72
72
  | `--max-file-size <bytes>` | 67108864 | Reject larger input documents. |
73
73
  | `--max-output-chars <n>` | 40000 | Truncate tool output — a token budget in disguise. |
74
- | `--pdf-font <file>` | none | TrueType font embedded in every PDF written. See [PDF fonts](#pdf-fonts). |
74
+ | `--pdf-font <file>[#i]` | none | TrueType face embedded in every PDF and diagram written. See [PDF fonts](#pdf-fonts). |
75
+ | `--pdf-font-fallback <f>` | none | Faces tried, in order, for characters the primary lacks. Repeatable, or comma-separated. |
75
76
 
76
77
  ### PDF fonts
77
78
 
@@ -102,6 +103,58 @@ Naming a font removes the host from the answer:
102
103
  }
103
104
  ```
104
105
 
106
+ #### Selecting a face inside a `.ttc`
107
+
108
+ A collection holds several faces and the first is rarely the one wanted: on macOS
109
+ `Songti.ttc` opens at **weight 900**, so naming the file alone sets Chinese body text
110
+ in the heaviest weight the family ships. Append the index to choose:
111
+
112
+ ```
113
+ --pdf-font /System/Library/Fonts/Supplemental/Songti.ttc#6
114
+ ```
115
+
116
+ The order inside a collection is arbitrary and not worth guessing — that file happens to
117
+ run Black, Bold, TC-Bold, Light, STSong, TC-Light, **Regular**, TC-Regular, so Regular is
118
+ face 6 and face 3 is Light. Check the file rather than assuming, and confirm what was
119
+ embedded by looking for `/BaseFont` in the PDF: `STSongti-SC-Regular-Subset` is the
120
+ answer you want, `-Light-` or `-Black-` means the index was wrong.
121
+
122
+ An index on a file that holds one face is rejected at startup rather than ignored.
123
+
124
+ #### More than one face
125
+
126
+ One face cannot serve a document that mixes scripts. A Chinese face has no Arabic, so a
127
+ page of Chinese prose quoting an Arabic phrase either loses the phrase to `.notdef` boxes
128
+ or — if you reach for a pan-Unicode face to cover both — has _all_ of its Han drawn by a
129
+ face whose glyphs follow Japanese conventions. Give the regional face first and let the
130
+ rest fall back:
131
+
132
+ ```
133
+ --pdf-font Songti.ttc#6 --pdf-font-fallback ArialUnicode.ttf,Symbols.ttf
134
+ ```
135
+
136
+ #### What the fonts cover
137
+
138
+ Every place this server draws text of its own: converted documents, diagrams rendered
139
+ to PNG or PDF, diagrams embedded in a `.docx`, and `pdf_edit`'s watermarks, stamps and
140
+ page numbers. Configuring a font also switches the host's own fonts **off** for these
141
+ renders, which is the point — the output then depends on the files you named and not on
142
+ the machine.
143
+
144
+ Only `pdf_edit` cannot honour a `#index`: its overlay API takes bytes, so a `.ttc` there
145
+ embeds the collection's first face.
146
+
147
+ #### Choosing the regional hand
148
+
149
+ `textLanguage` is a per-call parameter on `doc_write` and `doc_convert`, not a server
150
+ flag, because it is a property of the document — one session legitimately converts a
151
+ Chinese file and then a Japanese one. Han characters are shared between the three
152
+ languages and drawn differently, so a font picked purely by coverage can be correct and
153
+ still look wrong. Omitted, the library infers it from the text, which falls back to
154
+ Chinese for characters common to all three.
155
+
156
+ #### Requirements
157
+
105
158
  It must be a TrueType font — `.ttf` or `.ttc` with `glyf` outlines. A
106
159
  CFF-flavoured `.otf` is rejected at startup rather than at conversion time,
107
160
  because the subsetting embedder cannot use CFF outlines: that rules out macOS
@@ -118,6 +171,12 @@ symbol blocks are drawn from built-in outlines and never trigger it; CJK, and an
118
171
  script this library has no glyphs for, needs `--pdf-font`. Pass
119
172
  `allowMissingGlyphs: true` on the call to accept the boxes on purpose.
120
173
 
174
+ **A diagram cannot fail this way, so it is reported instead.** A rasteriser has no
175
+ `.notdef` to draw — an uncovered character paints _nothing_ — so `diagram_render`, and any
176
+ tool embedding a `mermaid` fence, names the code points it could not draw and says the
177
+ labels are blank. There is no equivalent refusal because the image is not terminal: it
178
+ sits inside a document you can regenerate.
179
+
121
180
  ## Security
122
181
 
123
182
  An MCP server hands a model the ability to name files, so the boundaries are
package/dist/config.d.ts CHANGED
@@ -39,7 +39,7 @@ export interface ServerConfig {
39
39
  /** Truncate tool output beyond this many characters. */
40
40
  readonly maxOutputChars: number;
41
41
  /**
42
- * Absolute path to a TrueType font every PDF this server writes embeds.
42
+ * The TrueType face every PDF this server writes embeds.
43
43
  *
44
44
  * Unset, PDF text outside WinAnsi — CJK, Cyrillic, Greek — depends on the host
45
45
  * having a usable face installed, and a host that has none renders `.notdef`
@@ -47,7 +47,30 @@ export interface ServerConfig {
47
47
  * Markdown produces a readable PDF on a laptop and a boxed one in a container.
48
48
  * Naming a font here removes the host from the answer.
49
49
  */
50
- readonly pdfFont?: string;
50
+ readonly pdfFont?: PdfFontRef;
51
+ /**
52
+ * Faces consulted, in order, for characters {@link pdfFont} has no glyph for.
53
+ *
54
+ * One face is not enough for a document that mixes scripts, and the failure is not
55
+ * hypothetical: a Chinese face carries no Arabic, so a page of Chinese prose quoting one
56
+ * Arabic phrase either loses the phrase to `.notdef` boxes or — if the operator picks a
57
+ * pan-Unicode face to cover both — has all of its Han drawn by a face whose glyphs follow
58
+ * Japanese conventions. A chain lets the primary face be the regional one.
59
+ */
60
+ readonly pdfFontFallbacks?: readonly PdfFontRef[];
61
+ }
62
+ /**
63
+ * One face, and which face inside the file when the file is a collection.
64
+ *
65
+ * `collectionIndex` exists because a `.ttc` holds several faces and the first one is not
66
+ * usually the one wanted: on macOS, `Songti.ttc` opens at weight 900, so naming that file
67
+ * and taking face 0 — which is what this server did — set every paragraph of Chinese body
68
+ * text in the heaviest weight the family ships. Its order is Black, Bold, TC-Bold, Light,
69
+ * STSong, TC-Light, Regular, TC-Regular, so the one wanted for body text is face 6.
70
+ */
71
+ export interface PdfFontRef {
72
+ readonly path: string;
73
+ readonly collectionIndex?: number;
51
74
  }
52
75
  export declare class ConfigError extends Error {
53
76
  readonly name = "ConfigError";
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAOH;;;;;;;;GAQG;AACH,eAAO,MAAM,WAAW,YAAI,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,CAAU,CAAC;AAEpG,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC;AAuBrD,MAAM,WAAW,YAAY;IAC3B;;;OAGG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB;;;;OAIG;IACH,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,+EAA+E;IAC/E,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAC/B,6EAA6E;IAC7E,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,mDAAmD;IACnD,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;IACxC,0DAA0D;IAC1D,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,wDAAwD;IACxD,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC;;;;;;;;OAQG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,qBAAa,WAAY,SAAQ,KAAK;IACpC,SAAkB,IAAI,iBAAiB;CACxC;AAED,MAAM,WAAW,oBAAoB;IACnC,gDAAgD;IAChD,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAC3B,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,OAAO,GAAE,oBAAyB,GACjC,YAAY,CA2Ed;AAgDD,qFAAqF;AACrF,wBAAgB,aAAa,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAK1F;AA2CD,+BAA+B;AAC/B,wBAAgB,KAAK,IAAI,MAAM,CAuC9B"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAOH;;;;;;;;GAQG;AACH,eAAO,MAAM,WAAW,YAAI,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,CAAU,CAAC;AAEpG,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC;AAuBrD,MAAM,WAAW,YAAY;IAC3B;;;OAGG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB;;;;OAIG;IACH,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,+EAA+E;IAC/E,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAC/B,6EAA6E;IAC7E,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,mDAAmD;IACnD,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;IACxC,0DAA0D;IAC1D,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,wDAAwD;IACxD,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC;;;;;;;;OAQG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,UAAU,CAAC;IAC9B;;;;;;;;OAQG;IACH,QAAQ,CAAC,gBAAgB,CAAC,EAAE,SAAS,UAAU,EAAE,CAAC;CACnD;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;CACnC;AAED,qBAAa,WAAY,SAAQ,KAAK;IACpC,SAAkB,IAAI,iBAAiB;CACxC;AAED,MAAM,WAAW,oBAAoB;IACnC,gDAAgD;IAChD,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAC3B,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,OAAO,GAAE,oBAAyB,GACjC,YAAY,CAkFd;AA8DD,qFAAqF;AACrF,wBAAgB,aAAa,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAK1F;AA2CD,+BAA+B;AAC/B,wBAAgB,KAAK,IAAI,MAAM,CAuC9B"}
package/dist/config.js CHANGED
@@ -62,6 +62,7 @@ export function resolveConfig(argv, options = {}) {
62
62
  "max-file-size": { type: "string" },
63
63
  "max-output-chars": { type: "string" },
64
64
  "pdf-font": { type: "string" },
65
+ "pdf-font-fallback": { type: "string", multiple: true },
65
66
  help: { type: "boolean", short: "h", default: false },
66
67
  version: { type: "boolean", short: "v", default: false }
67
68
  },
@@ -105,6 +106,11 @@ export function resolveConfig(argv, options = {}) {
105
106
  throw new ConfigError("--output-root must be disjoint from --root (neither may contain the other)");
106
107
  }
107
108
  const pdfFont = resolvePdfFont(values["pdf-font"], cwd);
109
+ const pdfFontFallbacks = (values["pdf-font-fallback"] ?? [])
110
+ .flatMap(entry => entry.split(","))
111
+ .map(entry => entry.trim())
112
+ .filter(entry => entry.length > 0)
113
+ .map(entry => resolvePdfFont(entry, cwd));
108
114
  return {
109
115
  root,
110
116
  outputRoot,
@@ -113,7 +119,8 @@ export function resolveConfig(argv, options = {}) {
113
119
  groups: parseGroups(values.enable),
114
120
  maxFileSize: parseByteCount(values["max-file-size"], "--max-file-size", DEFAULT_MAX_FILE_SIZE),
115
121
  maxOutputChars: parseByteCount(values["max-output-chars"], "--max-output-chars", DEFAULT_MAX_OUTPUT_CHARS),
116
- ...(pdfFont === undefined ? {} : { pdfFont })
122
+ ...(pdfFont === undefined ? {} : { pdfFont }),
123
+ ...(pdfFontFallbacks.length === 0 ? {} : { pdfFontFallbacks })
117
124
  };
118
125
  }
119
126
  /**
@@ -131,7 +138,15 @@ function resolvePdfFont(input, cwd) {
131
138
  if (input === undefined) {
132
139
  return undefined;
133
140
  }
134
- const absolute = path.resolve(cwd, input);
141
+ // `path#index` selects a face inside a collection. Split from the right so a directory
142
+ // containing a `#` does not break, and only when what follows is entirely digits — a bare
143
+ // `#` in a filename is then left alone rather than read as a malformed index.
144
+ const hash = input.lastIndexOf("#");
145
+ const suffix = hash < 0 ? "" : input.slice(hash + 1);
146
+ const indexed = hash > 0 && /^\d+$/.test(suffix);
147
+ const file = indexed ? input.slice(0, hash) : input;
148
+ const collectionIndex = indexed ? Number(suffix) : undefined;
149
+ const absolute = path.resolve(cwd, file);
135
150
  let head;
136
151
  try {
137
152
  head = readFileSync(absolute).subarray(0, 4);
@@ -148,7 +163,11 @@ function resolvePdfFont(input, cwd) {
148
163
  if (version !== 0x00010000 && magic !== "true" && magic !== "ttcf") {
149
164
  throw new ConfigError(`--pdf-font is not a TrueType font: ${input}. Expected a .ttf or .ttc file.`);
150
165
  }
151
- return absolute;
166
+ if (collectionIndex !== undefined && magic !== "ttcf") {
167
+ throw new ConfigError(`--pdf-font names face ${collectionIndex} of ${file}, which is not a font collection. ` +
168
+ `Drop the "#${suffix}" — a .ttf holds one face.`);
169
+ }
170
+ return collectionIndex === undefined ? { path: absolute } : { path: absolute, collectionIndex };
152
171
  }
153
172
  function containsPath(parent, child) {
154
173
  const relative = path.relative(parent, child);
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
@@ -18,7 +18,7 @@
18
18
  * edge of the paper. Fitting to the text width is the difference between a
19
19
  * document and a broken one.
20
20
  */
21
- import { type DrawList } from "documonster/draw";
21
+ import { type DrawList, type RasterFontSource } from "documonster/draw";
22
22
  import type { MermaidRenderOptions } from "documonster/mermaid";
23
23
  import type { MarkdownImportOptions } from "documonster/word/markdown";
24
24
  import { type DiagramStyleArgs } from "./diagram.js";
@@ -73,5 +73,8 @@ export declare function fitToColumn(source: string, options: MermaidRenderOption
73
73
  * throw away the nine paragraphs that were fine, and the note names the line to
74
74
  * fix.
75
75
  */
76
- export declare function prepareMarkdownDiagrams(markdown: string, style?: DiagramStyleArgs): Promise<PreparedMarkdown>;
76
+ export declare function prepareMarkdownDiagrams(markdown: string, style?: DiagramStyleArgs, fonts?: {
77
+ readonly raster?: readonly RasterFontSource[];
78
+ readonly useSystemFonts?: boolean;
79
+ }): Promise<PreparedMarkdown>;
77
80
  //# sourceMappingURL=diagram-markdown.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"diagram-markdown.d.ts","sourceRoot":"","sources":["../../src/tools/diagram-markdown.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAGH,OAAO,EAA8B,KAAK,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC7E,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,KAAK,EAAqB,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAI1F,OAAO,EAML,KAAK,gBAAgB,EACtB,MAAM,cAAc,CAAC;AAWtB;;;;;;;GAOG;AAIH,eAAO,MAAM,uBAAuB,MAAM,CAAC;AAyE3C,MAAM,WAAW,gBAAgB;IAC/B,4EAA4E;IAC5E,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B;;;OAGG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,qBAAqB,CAAC,cAAc,CAAC,CAAC;IAC9D,2CAA2C;IAC3C,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;CACnC;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,WAAW,CACzB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,oBAAoB,GAAG;IAAE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;CAAE,EAC/D,IAAI,EAAE,OAAO,GACZ;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,CAwBjD;AAKD;;;;;;;GAOG;AACH,wBAAsB,uBAAuB,CAC3C,QAAQ,EAAE,MAAM,EAChB,KAAK,GAAE,gBAAqB,GAC3B,OAAO,CAAC,gBAAgB,CAAC,CAqJ3B"}
1
+ {"version":3,"file":"diagram-markdown.d.ts","sourceRoot":"","sources":["../../src/tools/diagram-markdown.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAGH,OAAO,EAA8B,KAAK,QAAQ,EAAE,KAAK,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpG,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,KAAK,EAAqB,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAI1F,OAAO,EAML,KAAK,gBAAgB,EACtB,MAAM,cAAc,CAAC;AAWtB;;;;;;;GAOG;AAIH,eAAO,MAAM,uBAAuB,MAAM,CAAC;AAyE3C,MAAM,WAAW,gBAAgB;IAC/B,4EAA4E;IAC5E,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B;;;OAGG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,qBAAqB,CAAC,cAAc,CAAC,CAAC;IAC9D,2CAA2C;IAC3C,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;CACnC;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,WAAW,CACzB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,oBAAoB,GAAG;IAAE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;CAAE,EAC/D,IAAI,EAAE,OAAO,GACZ;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,CAwBjD;AAKD;;;;;;;GAOG;AACH,wBAAsB,uBAAuB,CAC3C,QAAQ,EAAE,MAAM,EAChB,KAAK,GAAE,gBAAqB,EAC5B,KAAK,CAAC,EAAE;IAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,gBAAgB,EAAE,CAAC;IAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAA;CAAE,GAC3F,OAAO,CAAC,gBAAgB,CAAC,CAkL3B"}
@@ -158,7 +158,7 @@ const DEFAULT_DIAGRAM_FONT_POINTS = 14;
158
158
  * throw away the nine paragraphs that were fine, and the note names the line to
159
159
  * fix.
160
160
  */
161
- export async function prepareMarkdownDiagrams(markdown, style = {}) {
161
+ export async function prepareMarkdownDiagrams(markdown, style = {}, fonts) {
162
162
  const fences = findMermaidFences(markdown);
163
163
  if (fences.length === 0) {
164
164
  return { markdown, notes: [] };
@@ -171,6 +171,14 @@ export async function prepareMarkdownDiagrams(markdown, style = {}) {
171
171
  const tune = style.maxLabelWidth === undefined && style.nodeGap === undefined && style.rankGap === undefined;
172
172
  const images = new Map();
173
173
  const failures = [];
174
+ /**
175
+ * Code points no available face could draw in any embedded diagram.
176
+ *
177
+ * Reported for the same reason the standalone PNG path reports it, and it matters more here:
178
+ * the reader opens a .docx and sees a diagram whose labels are simply absent, with no clue
179
+ * that a font was the problem. A raster has no `.notdef` to draw, so this is the only signal.
180
+ */
181
+ const uncovered = new Set();
174
182
  const cramped = [];
175
183
  const split = [];
176
184
  const forced = [];
@@ -215,7 +223,14 @@ export async function prepareMarkdownDiagrams(markdown, style = {}) {
215
223
  }
216
224
  ]
217
225
  };
218
- const piece = rasterizeToRgba(slice, { scale: EMBED_SCALE * fit });
226
+ const piece = rasterizeToRgba(slice, {
227
+ scale: EMBED_SCALE * fit,
228
+ // An embedded diagram is rasterised, so it needs the operator's faces exactly as a
229
+ // standalone PNG does. Without them, `--pdf-font` made the prose of a converted
230
+ // document readable and left the labels inside its diagrams blank.
231
+ ...(fonts?.raster === undefined ? {} : { fonts: fonts.raster }),
232
+ ...(fonts?.useSystemFonts === undefined ? {} : { useSystemFonts: fonts.useSystemFonts })
233
+ });
219
234
  const encoded = {
220
235
  bytes: encodePng(piece.data, piece.width, piece.height, {
221
236
  // Pixels and the OOXML extent have both already been reduced by
@@ -226,6 +241,9 @@ export async function prepareMarkdownDiagrams(markdown, style = {}) {
226
241
  width: piece.width,
227
242
  height: piece.height
228
243
  };
244
+ for (const codePoint of piece.uncoveredCodePoints) {
245
+ uncovered.add(codePoint);
246
+ }
229
247
  spendEmbedBudget(fenceBudget, encoded, fence.line);
230
248
  const url = cuts.length === 1
231
249
  ? `${DIAGRAM_URL_PREFIX}${fence.ordinal}`
@@ -284,6 +302,15 @@ export async function prepareMarkdownDiagrams(markdown, style = {}) {
284
302
  : [
285
303
  `- diagram(s) at line ${[...cramped].reverse().join(", ")} are wider than the text column allows: their text lands under ${MIN_EMBED_FONT_POINTS}pt even at the tightest layout. Split the widest rank, or render them separately with diagram_render.`
286
304
  ]),
305
+ ...(uncovered.size === 0
306
+ ? []
307
+ : [
308
+ `- ⚠ no available font covers ${[...uncovered]
309
+ .sort((a, b) => a - b)
310
+ .slice(0, 12)
311
+ .map(codePoint => `U+${codePoint.toString(16).toUpperCase().padStart(4, "0")}`)
312
+ .join(" ")}${uncovered.size > 12 ? ` (and ${uncovered.size - 12} more)` : ""} — those characters are **blank** inside the diagram image(s). Configure a font with \`--pdf-font\`.`
313
+ ]),
287
314
  ...failures
288
315
  ];
289
316
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"diagram-markdown.js","sourceRoot":"","sources":["../../src/tools/diagram-markdown.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"diagram-markdown.js","sourceRoot":"","sources":["../../src/tools/diagram-markdown.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,SAAS,EAAwC,MAAM,kBAAkB,CAAC;AAIpG,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EACL,aAAa,EACb,aAAa,EACb,iBAAiB,EACjB,YAAY,EACZ,eAAe,EAEhB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,cAAc,EAAoB,MAAM,YAAY,CAAC;AAE9D;;;;;GAKG;AACH,MAAM,sBAAsB,GAAG,GAAG,CAAC;AAEnC;;;;;;;GAOG;AACH,wEAAwE;AACxE,6EAA6E;AAC7E,sEAAsE;AACtE,MAAM,CAAC,MAAM,uBAAuB,GAAG,GAAG,CAAC;AAE3C;;;;;;;;;;GAUG;AACH,MAAM,qBAAqB,GAAG,CAAC,CAAC;AAEhC;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,GAAoC;IAClD,2EAA2E;IAC3E,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;IAC5B,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;IAC5B,oBAAoB;IACpB,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,iBAAiB,EAAE,GAAG,EAAE;IACpD,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,iBAAiB,EAAE,GAAG,EAAE;IACpD,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,iBAAiB,EAAE,EAAE,EAAE;IACnD,uCAAuC;IACvC,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,iBAAiB,EAAE,EAAE,EAAE,aAAa,EAAE,GAAG,EAAE;IACvE,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,iBAAiB,EAAE,EAAE,EAAE,aAAa,EAAE,GAAG,EAAE;IACvE,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,iBAAiB,EAAE,EAAE,EAAE,aAAa,EAAE,GAAG,EAAE;IACvE,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,iBAAiB,EAAE,EAAE,EAAE,aAAa,EAAE,GAAG,EAAE;IACvE,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,iBAAiB,EAAE,EAAE,EAAE,aAAa,EAAE,GAAG,EAAE;CACxE,CAAC;AAEF;;;;;;;;GAQG;AACH,MAAM,WAAW,GAAG,CAAC,CAAC;AAEtB,wEAAwE;AACxE,MAAM,kBAAkB,GAAG,sBAAsB,CAAC;AAElD,oFAAoF;AACpF,MAAM,qBAAqB,GAAG,EAAE,CAAC;AAEjC,4DAA4D;AAC5D,MAAM,qBAAqB,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC;AAC/C,MAAM,sBAAsB,GAAG,UAAU,CAAC;AAC1C,mEAAmE;AACnE,MAAM,mBAAmB,GAAG,EAAE,CAAC;AAc/B;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,WAAW,CACzB,MAAc,EACd,OAA+D,EAC/D,IAAa;IAEb,MAAM,OAAO,GAAG,CAAC,IAAc,EAAmD,EAAE;QAClF,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,sBAAsB,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QAC7D,2EAA2E;QAC3E,wEAAwE;QACxE,4EAA4E;QAC5E,MAAM,IAAI,GAAG,CAAC,OAAO,CAAC,QAAQ,IAAI,2BAA2B,CAAC,GAAG,GAAG,CAAC;QACrE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,GAAG,qBAAqB,EAAE,CAAC;IAC5D,CAAC,CAAC;IAEF,IAAI,IAAI,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACnD,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;QACzB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;QAC9B,MAAM,OAAO,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,EAAE,EAAE,GAAG,OAAO,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC;QACxE,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YACzC,IAAI,GAAG,OAAO,CAAC;QACjB,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACnB,OAAO,OAAO,CAAC;QACjB,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,2FAA2F;AAC3F,MAAM,2BAA2B,GAAG,EAAE,CAAC;AAEvC;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,QAAgB,EAChB,KAAK,GAAqB,EAAE,EAC5B,KAA4F;IAE5F,MAAM,MAAM,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IAC3C,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;IACjC,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,GAAG,qBAAqB,EAAE,CAAC;QAC1C,MAAM,SAAS,CAAC,QAAQ,CACtB,qBAAqB,MAAM,CAAC,MAAM,6BAA6B,qBAAqB,qBAAqB,EACzG,2KAA2K,CAC5K,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;IACvC,sDAAsD;IACtD,MAAM,IAAI,GACR,KAAK,CAAC,aAAa,KAAK,SAAS,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS,CAAC;IAClG,MAAM,MAAM,GAAG,IAAI,GAAG,EAA6B,CAAC;IACpD,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B;;;;;;OAMG;IACH,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC;IACpC,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,MAAM,KAAK,GAAuC,EAAE,CAAC;IACrD,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,+EAA+E;IAC/E,kFAAkF;IAClF,MAAM,MAAM,GAAG,cAAc,EAAE,CAAC;IAChC,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,SAAS,GAAG,QAAQ,CAAC;IAEzB,0EAA0E;IAC1E,KAAK,MAAM,KAAK,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC;QAC1C,IAAI,UAAkB,CAAC;QACvB,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAC3C,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,WAAW,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;YACtE,IAAI,KAAK,EAAE,CAAC;gBACV,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC3B,CAAC;YACD,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,UAAU,CAAC;YACvD,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,EAAE,GAAG,EAAE,uBAAuB,CAAC,CAAC;YAC5D,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;gBACjC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC1B,CAAC;YACD,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACpB,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;YACxD,CAAC;YACD,MAAM,KAAK,GAAa,EAAE,CAAC;YAC3B,MAAM,OAAO,GAAqD,EAAE,CAAC;YACrE,MAAM,WAAW,GAAG,EAAE,GAAG,MAAM,EAAE,CAAC;YAClC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;gBAC1B,qEAAqE;gBACrE,uEAAuE;gBACvE,wEAAwE;gBACxE,MAAM,WAAW,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;gBACjD,MAAM,KAAK,GAAa;oBACtB,GAAG,IAAI;oBACP,MAAM,EAAE,WAAW;oBACnB,QAAQ,EAAE;wBACR;4BACE,IAAI,EAAE,OAAO;4BACb,SAAS,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC;4BACvC,QAAQ,EAAE,IAAI,CAAC,QAAQ;yBACxB;qBACF;iBACF,CAAC;gBACF,MAAM,KAAK,GAAG,eAAe,CAAC,KAAK,EAAE;oBACnC,KAAK,EAAE,WAAW,GAAG,GAAG;oBACxB,mFAAmF;oBACnF,gFAAgF;oBAChF,mEAAmE;oBACnE,GAAG,CAAC,KAAK,EAAE,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC;oBAC/D,GAAG,CAAC,KAAK,EAAE,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,KAAK,CAAC,cAAc,EAAE,CAAC;iBACzF,CAAC,CAAC;gBACH,MAAM,OAAO,GAAG;oBACd,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE;wBACtD,gEAAgE;wBAChE,kEAAkE;wBAClE,wDAAwD;wBACxD,GAAG,EAAE,EAAE,GAAG,WAAW;qBACtB,CAAC;oBACF,KAAK,EAAE,KAAK,CAAC,KAAK;oBAClB,MAAM,EAAE,KAAK,CAAC,MAAM;iBACrB,CAAC;gBACF,KAAK,MAAM,SAAS,IAAI,KAAK,CAAC,mBAAmB,EAAE,CAAC;oBAClD,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;gBAC3B,CAAC;gBACD,gBAAgB,CAAC,WAAW,EAAE,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;gBACnD,MAAM,GAAG,GACP,IAAI,CAAC,MAAM,KAAK,CAAC;oBACf,CAAC,CAAC,GAAG,kBAAkB,GAAG,KAAK,CAAC,OAAO,EAAE;oBACzC,CAAC,CAAC,GAAG,kBAAkB,GAAG,KAAK,CAAC,OAAO,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;gBAC3D,OAAO,CAAC,IAAI,CAAC;oBACX,GAAG;oBACH,KAAK,EAAE;wBACL,IAAI,EAAE,OAAO,CAAC,KAAK;wBACnB,SAAS,EAAE,KAAK;wBAChB,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,GAAG,GAAG,aAAa,CAAC;wBACnD,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC;qBAC3D;iBACF,CAAC,CAAC;gBACH,oFAAoF;gBACpF,iDAAiD;gBACjD,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,KAAK,KAAK,GAAG,CAAC,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC;gBAClF,KAAK,CAAC,IAAI,CAAC,KAAK,SAAS,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC;YAC/C,CAAC,CAAC,CAAC;YACH,uEAAuE;YACvE,yEAAyE;YACzE,uDAAuD;YACvD,KAAK,MAAM,YAAY,IAAI,OAAO,EAAE,CAAC;gBACnC,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC;YACnD,CAAC;YACD,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;YACnC,KAAK,EAAE,CAAC;YACR,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAClC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,qEAAqE;YACrE,qEAAqE;YACrE,IAAI,KAAK,YAAY,YAAY,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;gBAChE,MAAM,KAAK,CAAC;YACd,CAAC;YACD,QAAQ,CAAC,IAAI,CACX,uBAAuB,KAAK,CAAC,IAAI,4BAA4B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CACtH,CAAC;YACF,SAAS;QACX,CAAC;QAED,oEAAoE;QACpE,yDAAyD;QACzD,SAAS,GAAG,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,UAAU,KAAK,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;IACjG,CAAC;IAED,MAAM,KAAK,GACT,MAAM,CAAC,IAAI,KAAK,CAAC;QACf,CAAC,CAAC,QAAQ;QACV,CAAC,CAAC;YACE,KAAK,KAAK,6EAA6E;YACvF,GAAG,CAAC,GAAG,KAAK,CAAC;iBACV,OAAO,EAAE;iBACT,GAAG,CACF,KAAK,CAAC,EAAE,CACN,qBAAqB,KAAK,CAAC,IAAI,sCAAsC,KAAK,CAAC,MAAM,4CAA4C,CAChI;YACH,GAAG,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC;gBACrB,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC;oBACE,wBAAwB,CAAC,GAAG,MAAM,CAAC,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,oEAAoE;iBAC7H,CAAC;YACN,GAAG,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;gBACtB,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC;oBACE,wBAAwB,CAAC,GAAG,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,kEAAkE,qBAAqB,uGAAuG;iBACxP,CAAC;YACN,GAAG,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC;gBACtB,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC;oBACE,gCAAgC,CAAC,GAAG,SAAS,CAAC;yBAC3C,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;yBACrB,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;yBACZ,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,KAAK,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;yBAC9E,IAAI,CACH,GAAG,CACJ,GAAG,SAAS,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,SAAS,SAAS,CAAC,IAAI,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,sGAAsG;iBAC5K,CAAC;YACN,GAAG,QAAQ;SACZ,CAAC;IAER,OAAO;QACL,QAAQ,EAAE,SAAS;QACnB,GAAG,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;QAChF,KAAK;KACN,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,SAAS,gBAAgB,CACvB,MAAmB,EACnB,QAAyF,EACzF,IAAY;IAEZ,MAAM,CAAC,KAAK,IAAI,CAAC,CAAC;IAClB,MAAM,CAAC,KAAK,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC;IACtC,MAAM,CAAC,MAAM,IAAI,QAAQ,CAAC,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC;IAClD,IACE,MAAM,CAAC,KAAK,GAAG,mBAAmB;QAClC,MAAM,CAAC,KAAK,GAAG,qBAAqB;QACpC,MAAM,CAAC,MAAM,GAAG,sBAAsB,EACtC,CAAC;QACD,MAAM,SAAS,CAAC,QAAQ,CACtB,oGAAoG,IAAI,GAAG,EAC3G,uGAAuG,CACxG,CAAC;IACJ,CAAC;AACH,CAAC;AAED,gFAAgF;AAChF,SAAS,SAAS,CAAC,IAAY;IAC7B,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;AACtF,CAAC"}
@@ -10,5 +10,12 @@
10
10
  * claim, and this tool is a consumer of the published API exercising it from
11
11
  * outside the library.
12
12
  */
13
+ import { renderDiagram } from "./diagram.js";
14
+ interface DiagramRenderDependencies {
15
+ readonly render: typeof renderDiagram;
16
+ }
17
+ /** Construct the tool with an observable rendering boundary for focused tests. */
18
+ export declare function createDiagramRenderTool(dependencies?: DiagramRenderDependencies): import("./types.js").AnyToolDefinition;
13
19
  export declare const diagramRenderTool: import("./types.js").AnyToolDefinition;
20
+ export {};
14
21
  //# sourceMappingURL=diagram-render.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"diagram-render.d.ts","sourceRoot":"","sources":["../../src/tools/diagram-render.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAoBH,eAAO,MAAM,iBAAiB,wCAwH5B,CAAC"}
1
+ {"version":3,"file":"diagram-render.d.ts","sourceRoot":"","sources":["../../src/tools/diagram-render.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAMH,OAAO,EAKL,aAAa,EAId,MAAM,cAAc,CAAC;AAMtB,UAAU,yBAAyB;IACjC,QAAQ,CAAC,MAAM,EAAE,OAAO,aAAa,CAAC;CACvC;AAED,kFAAkF;AAClF,wBAAgB,uBAAuB,CACrC,YAAY,GAAE,yBAAqD,0CAmIpE;AAED,eAAO,MAAM,iBAAiB,wCAA4B,CAAC"}
@@ -15,101 +15,113 @@ import { toolError } from "../errors.js";
15
15
  import { assertWritable, outputDisplay, resolveOutputPath } from "../sandbox.js";
16
16
  import { buildDrawList, describeDiagram, diagramStyleShape, parseDiagram, renderDiagram, requireDiagramFormat, resolveDiagramSource, toRenderOptions } from "./diagram.js";
17
17
  import { writeBytesWithPolicy } from "./fs-helpers.js";
18
+ import { diagramFontOptions } from "./pdf-fonts.js";
18
19
  import { formatBytes, textResult } from "./result.js";
19
20
  import { defineTool } from "./types.js";
20
- export const diagramRenderTool = defineTool({
21
- name: "diagram_render",
22
- group: "diagram",
23
- title: "Render a Mermaid diagram",
24
- description: "Draw a Mermaid diagram as .svg, .png or .pdf. Takes the diagram text in `source`, or reads it from a .mmd file or a ```mermaid fence in a .md file via `from`. Supports flowchart, sequenceDiagram, classDiagram, stateDiagram, erDiagram, gantt, gitGraph, mindmap, timeline, journey, kanban, quadrantChart, xychart, radar, sankey, packet, block, pie, C4, requirementDiagram and architecture. The result reports the parsed structure, which is the only way to verify the picture is right.",
25
- inputSchema: {
26
- source: z
27
- .string()
28
- .optional()
29
- .describe("Mermaid diagram text. Use this or `from`, not both. A ```mermaid wrapper is stripped for you."),
30
- from: z
31
- .string()
32
- .optional()
33
- .describe("Read the diagram from a file instead: a .mmd/.mermaid file, or a .md file containing ```mermaid fences."),
34
- index: z
35
- .number()
36
- .int()
37
- .positive()
38
- .optional()
39
- .describe("Which ```mermaid fence to use when `from` is a Markdown file with several. 1-based, defaults to 1."),
40
- to: z
41
- .string()
42
- .min(1)
43
- .describe("Destination path below --output-root. The extension picks the format: .svg, .png or .pdf. Returned as @output/<path>."),
44
- width: z
45
- .number()
46
- .positive()
47
- .max(20_000)
48
- .optional()
49
- .describe("Output width in points. Omit to use the diagram's natural size; the drawing is fitted into the box uniformly, never stretched."),
50
- height: z.number().positive().max(20_000).optional().describe("Output height in points."),
51
- scale: z
52
- .number()
53
- .min(0.5)
54
- .max(8)
55
- .optional()
56
- .describe("PNG only — rejected for .svg/.pdf, which have no pixels. Pixels per point, so the file is width × scale pixels wide. Defaults to 2 (144 DPI)."),
57
- ...diagramStyleShape,
58
- overwrite: z
59
- .boolean()
60
- .optional()
61
- .describe("Replace the destination if it exists. Defaults to false.")
62
- },
63
- annotations: {
64
- readOnlyHint: false,
65
- destructiveHint: false,
66
- idempotentHint: true,
67
- openWorldHint: false
68
- },
69
- mutates: true,
70
- handler: async (args, context) => {
71
- const { config } = context;
72
- assertWritable(config);
73
- const format = requireDiagramFormat(args.to, "to");
74
- if (args.scale !== undefined && format !== "png") {
75
- // Accepting it and ignoring it is the problem: a caller who set `scale: 4`
76
- // for a PDF got the same file as `scale: 1` and no indication why. SVG and
77
- // PDF are resolution-independent, so the knob has no meaning there.
78
- throw toolError.invalidInput(`\`scale\` applies to PNG output only, not ${format}`, `${format.toUpperCase()} is resolution-independent — it has no pixels to scale. Use \`width\`/\`height\` to change its size, or write a .png if you want a specific pixel count.`);
21
+ /** Construct the tool with an observable rendering boundary for focused tests. */
22
+ export function createDiagramRenderTool(dependencies = { render: renderDiagram }) {
23
+ return defineTool({
24
+ name: "diagram_render",
25
+ group: "diagram",
26
+ title: "Render a Mermaid diagram",
27
+ description: "Draw a Mermaid diagram as .svg, .png or .pdf. Takes the diagram text in `source`, or reads it from a .mmd file or a ```mermaid fence in a .md file via `from`. Supports flowchart, sequenceDiagram, classDiagram, stateDiagram, erDiagram, gantt, gitGraph, mindmap, timeline, journey, kanban, quadrantChart, xychart, radar, sankey, packet, block, pie, C4, requirementDiagram and architecture. The result reports the parsed structure, which is the only way to verify the picture is right.",
28
+ inputSchema: {
29
+ source: z
30
+ .string()
31
+ .optional()
32
+ .describe("Mermaid diagram text. Use this or `from`, not both. A ```mermaid wrapper is stripped for you."),
33
+ from: z
34
+ .string()
35
+ .optional()
36
+ .describe("Read the diagram from a file instead: a .mmd/.mermaid file, or a .md file containing ```mermaid fences."),
37
+ index: z
38
+ .number()
39
+ .int()
40
+ .positive()
41
+ .optional()
42
+ .describe("Which ```mermaid fence to use when `from` is a Markdown file with several. 1-based, defaults to 1."),
43
+ to: z
44
+ .string()
45
+ .min(1)
46
+ .describe("Destination path below --output-root. The extension picks the format: .svg, .png or .pdf. Returned as @output/<path>."),
47
+ width: z
48
+ .number()
49
+ .positive()
50
+ .max(20_000)
51
+ .optional()
52
+ .describe("Output width in points. Omit to use the diagram's natural size; the drawing is fitted into the box uniformly, never stretched."),
53
+ height: z.number().positive().max(20_000).optional().describe("Output height in points."),
54
+ scale: z
55
+ .number()
56
+ .min(0.5)
57
+ .max(8)
58
+ .optional()
59
+ .describe("PNG only — rejected for .svg/.pdf, which have no pixels. Pixels per point, so the file is width × scale pixels wide. Defaults to 2 (144 DPI)."),
60
+ ...diagramStyleShape,
61
+ overwrite: z
62
+ .boolean()
63
+ .optional()
64
+ .describe("Replace the destination if it exists. Defaults to false.")
65
+ },
66
+ annotations: {
67
+ readOnlyHint: false,
68
+ destructiveHint: false,
69
+ idempotentHint: true,
70
+ openWorldHint: false
71
+ },
72
+ mutates: true,
73
+ handler: async (args, context) => {
74
+ const { config } = context;
75
+ assertWritable(config);
76
+ const format = requireDiagramFormat(args.to, "to");
77
+ if (args.scale !== undefined && format !== "png") {
78
+ // Accepting it and ignoring it is the problem: a caller who set `scale: 4`
79
+ // for a PDF got the same file as `scale: 1` and no indication why. SVG and
80
+ // PDF are resolution-independent, so the knob has no meaning there.
81
+ throw toolError.invalidInput(`\`scale\` applies to PNG output only, not ${format}`, `${format.toUpperCase()} is resolution-independent — it has no pixels to scale. Use \`width\`/\`height\` to change its size, or write a .png if you want a specific pixel count.`);
82
+ }
83
+ const target = await resolveOutputPath(config, args.to);
84
+ const resolved = await resolveDiagramSource(config, args);
85
+ // Parsed separately from the draw list so the structural read-back reports the
86
+ // same tree that was drawn, without drawing it twice.
87
+ const diagram = parseDiagram(resolved.source);
88
+ const style = toRenderOptions(args);
89
+ const list = buildDrawList(resolved.source, style);
90
+ const rendered = await dependencies.render(list, format, {
91
+ ...(args.width === undefined ? {} : { width: args.width }),
92
+ ...(args.height === undefined ? {} : { height: args.height }),
93
+ ...(args.scale === undefined ? {} : { scale: args.scale })
94
+ }, style.background, diagramFontOptions(config));
95
+ await writeBytesWithPolicy(target, args.overwrite === true, rendered.bytes);
96
+ const unit = format === "png" ? "px" : "pt";
97
+ return textResult(config, [
98
+ `Rendered **${outputDisplay(args.to)}** (${format}, ${formatBytes(rendered.bytes.byteLength)}, ${round(rendered.width)}×${round(rendered.height)} ${unit}).`,
99
+ // Reported because a raster cannot fail visibly: a character no face covers paints
100
+ // nothing, so the picture is silently missing a label unless this says so.
101
+ ...(rendered.uncovered === undefined
102
+ ? []
103
+ : [
104
+ `- ⚠ no available font covers ${rendered.uncovered.slice(0, 12).join(" ")}${rendered.uncovered.length > 12 ? ` (and ${rendered.uncovered.length - 12} more)` : ""} — those characters are **blank** in the image. Configure a font with \`--pdf-font\`.`
105
+ ]),
106
+ // Only when it came from a file; an inline source has nothing to name.
107
+ ...(resolved.origin === "inline"
108
+ ? []
109
+ : [
110
+ `- source: ${resolved.origin}${resolved.selected === undefined ? "" : ` (mermaid fence ${resolved.selected} of ${resolved.fences.length})`}`
111
+ ]),
112
+ "",
113
+ "## What was drawn",
114
+ "",
115
+ ...describeDiagram(diagram),
116
+ "",
117
+ "Check that list against what you intended. The parser implements a subset of",
118
+ "Mermaid and a statement it does not recognise is **dropped silently** — a missing",
119
+ "node or edge here is the only sign, since nothing about the file itself looks wrong."
120
+ ].join("\n"));
79
121
  }
80
- const target = await resolveOutputPath(config, args.to);
81
- const resolved = await resolveDiagramSource(config, args);
82
- // Parsed separately from the draw list so the structural read-back reports the
83
- // same tree that was drawn, without drawing it twice.
84
- const diagram = parseDiagram(resolved.source);
85
- const style = toRenderOptions(args);
86
- const list = buildDrawList(resolved.source, style);
87
- const rendered = await renderDiagram(list, format, {
88
- ...(args.width === undefined ? {} : { width: args.width }),
89
- ...(args.height === undefined ? {} : { height: args.height }),
90
- ...(args.scale === undefined ? {} : { scale: args.scale })
91
- }, style.background);
92
- await writeBytesWithPolicy(target, args.overwrite === true, rendered.bytes);
93
- const unit = format === "png" ? "px" : "pt";
94
- return textResult(config, [
95
- `Rendered **${outputDisplay(args.to)}** (${format}, ${formatBytes(rendered.bytes.byteLength)}, ${round(rendered.width)}×${round(rendered.height)} ${unit}).`,
96
- // Only when it came from a file; an inline source has nothing to name.
97
- ...(resolved.origin === "inline"
98
- ? []
99
- : [
100
- `- source: ${resolved.origin}${resolved.selected === undefined ? "" : ` (mermaid fence ${resolved.selected} of ${resolved.fences.length})`}`
101
- ]),
102
- "",
103
- "## What was drawn",
104
- "",
105
- ...describeDiagram(diagram),
106
- "",
107
- "Check that list against what you intended. The parser implements a subset of",
108
- "Mermaid and a statement it does not recognise is **dropped silently** — a missing",
109
- "node or edge here is the only sign, since nothing about the file itself looks wrong."
110
- ].join("\n"));
111
- }
112
- });
122
+ });
123
+ }
124
+ export const diagramRenderTool = createDiagramRenderTool();
113
125
  /** One decimal place: a diagram's natural size is rarely a whole number. */
114
126
  function round(value) {
115
127
  return Math.round(value * 10) / 10;
@@ -1 +1 @@
1
- {"version":3,"file":"diagram-render.js","sourceRoot":"","sources":["../../src/tools/diagram-render.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"diagram-render.js","sourceRoot":"","sources":["../../src/tools/diagram-render.ts"],"names":[],"mappings":"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"}