@michelabboud/visual-forge-mcp 0.11.4 → 0.12.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.
- package/CHANGELOG.md +29 -0
- package/config/pricing.json +1 -1
- package/dist/pdf/font-manager.d.ts +11 -0
- package/dist/pdf/font-manager.d.ts.map +1 -1
- package/dist/pdf/font-manager.js +36 -0
- package/dist/pdf/font-manager.js.map +1 -1
- package/dist/pdf/index.d.ts +2 -0
- package/dist/pdf/index.d.ts.map +1 -1
- package/dist/pdf/index.js +2 -0
- package/dist/pdf/index.js.map +1 -1
- package/dist/pdf/woff2-converter.d.ts +53 -0
- package/dist/pdf/woff2-converter.d.ts.map +1 -0
- package/dist/pdf/woff2-converter.js +169 -0
- package/dist/pdf/woff2-converter.js.map +1 -0
- package/fonts/README.md +81 -0
- package/fonts/minimal/Inter-Bold.ttf +0 -0
- package/fonts/minimal/Inter-Regular.ttf +0 -0
- package/fonts/minimal/JetBrainsMono-Bold.ttf +0 -0
- package/fonts/minimal/JetBrainsMono-Regular.ttf +0 -0
- package/fonts/minimal/LiberationMono-Bold.ttf +0 -0
- package/fonts/minimal/LiberationMono-BoldItalic.ttf +0 -0
- package/fonts/minimal/LiberationMono-Italic.ttf +0 -0
- package/fonts/minimal/LiberationMono-Regular.ttf +0 -0
- package/fonts/minimal/LiberationSans-Bold.ttf +0 -0
- package/fonts/minimal/LiberationSans-BoldItalic.ttf +0 -0
- package/fonts/minimal/LiberationSans-Italic.ttf +0 -0
- package/fonts/minimal/LiberationSans-Regular.ttf +0 -0
- package/fonts/minimal/LiberationSerif-Bold.ttf +0 -0
- package/fonts/minimal/LiberationSerif-BoldItalic.ttf +0 -0
- package/fonts/minimal/LiberationSerif-Italic.ttf +0 -0
- package/fonts/minimal/LiberationSerif-Regular.ttf +0 -0
- package/fonts/minimal/licenses/Inter-LICENSE.txt +6 -0
- package/fonts/minimal/licenses/JetBrainsMono-LICENSE.txt +6 -0
- package/fonts/minimal/licenses/Liberation-LICENSE.txt +7 -0
- package/package.json +4 -1
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,35 @@ All notable changes to Visual Forge MCP will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [0.12.0] - 2026-01-17
|
|
9
|
+
|
|
10
|
+
### Added - Bundled Fonts & WOFF2 Conversion
|
|
11
|
+
|
|
12
|
+
#### Bundled Minimal Fonts
|
|
13
|
+
Visual Forge now includes essential fonts out-of-the-box for PDF generation without additional setup:
|
|
14
|
+
|
|
15
|
+
- **Inter** (Regular, Bold) - Modern UI font
|
|
16
|
+
- **JetBrains Mono** (Regular, Bold) - Code blocks
|
|
17
|
+
- **Liberation Serif/Sans/Mono** (4 variants each) - Microsoft Office compatible
|
|
18
|
+
|
|
19
|
+
Total: 16 fonts (~4.5 MB) bundled in `fonts/minimal/`
|
|
20
|
+
|
|
21
|
+
#### WOFF2 Font Conversion
|
|
22
|
+
New TTF to WOFF2 conversion for HTML output using wawoff2 (WebAssembly):
|
|
23
|
+
|
|
24
|
+
- `convertTtfToWoff2(ttfPath, outputPath)` - Convert single font
|
|
25
|
+
- `convertTtfBatch(paths, outputDir)` - Batch conversion with concurrency
|
|
26
|
+
- `convertDirectoryToWoff2(dir, outputDir)` - Convert all fonts in directory
|
|
27
|
+
- `fontManager.convertFontsToWoff2(outputDir)` - Convert all available fonts
|
|
28
|
+
|
|
29
|
+
WOFF2 provides 30-50% smaller file sizes than TTF for web delivery.
|
|
30
|
+
|
|
31
|
+
### Changed
|
|
32
|
+
- Font packages now use published npm versions instead of local file references
|
|
33
|
+
- `@michelabboud/visual-forge-fonts-standard` updated to ^1.0.1
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
8
37
|
## [0.11.4] - 2026-01-17
|
|
9
38
|
|
|
10
39
|
### Added - Font Manager with Auto-Install
|
package/config/pricing.json
CHANGED
|
@@ -107,6 +107,17 @@ export declare class FontManager {
|
|
|
107
107
|
* Get recommended package based on use case
|
|
108
108
|
*/
|
|
109
109
|
getRecommendedPackage(useCase: 'document' | 'code' | 'design' | 'all'): FontPackageInfo | null;
|
|
110
|
+
/**
|
|
111
|
+
* Convert all TTF fonts to WOFF2 for HTML output
|
|
112
|
+
* @param outputDir Output directory for WOFF2 files
|
|
113
|
+
* @returns Conversion results
|
|
114
|
+
*/
|
|
115
|
+
convertFontsToWoff2(outputDir: string): Promise<{
|
|
116
|
+
success: boolean;
|
|
117
|
+
converted: number;
|
|
118
|
+
failed: number;
|
|
119
|
+
outputDir: string;
|
|
120
|
+
}>;
|
|
110
121
|
}
|
|
111
122
|
/**
|
|
112
123
|
* Singleton font manager instance
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"font-manager.d.ts","sourceRoot":"","sources":["../../src/pdf/font-manager.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAcH;;GAEG;AACH,UAAU,WAAW;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,UAAU,eAAe;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAsDD;;GAEG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,eAAe,CAAgB;IACvC,OAAO,CAAC,iBAAiB,CAAqB;IAC9C,OAAO,CAAC,WAAW,CAAS;;IAM5B;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IA4CjC;;OAEG;YACW,cAAc;IAU5B;;OAEG;IACH,eAAe,IAAI,MAAM,EAAE;IAe3B;;OAEG;IACH,eAAe,IAAI,MAAM,EAAE;IAM3B;;OAEG;IACH,kBAAkB,IAAI,MAAM,EAAE;IAW9B;;OAEG;IACH,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAMtC;;OAEG;IACH,oBAAoB,IAAI,WAAW,EAAE;IAIrC;;OAEG;IACH,qBAAqB,IAAI,MAAM,EAAE;IAyBjC;;OAEG;IACH,SAAS,IAAI;QACX,YAAY,EAAE,MAAM,EAAE,CAAC;QACvB,iBAAiB,EAAE,MAAM,EAAE,CAAC;QAC5B,aAAa,EAAE,MAAM,CAAC;QACtB,WAAW,EAAE,MAAM,EAAE,CAAC;KACvB;IASD;;OAEG;IACH,oBAAoB,IAAI,eAAe,EAAE;IAOzC;;OAEG;IACH,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS;IAIhE;;;;;OAKG;IACG,kBAAkB,CACtB,WAAW,EAAE,MAAM,EACnB,MAAM,UAAQ,GACb,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAuDlE;;OAEG;IACG,mBAAmB,CACvB,YAAY,EAAE,MAAM,EAAE,EACtB,MAAM,UAAQ,GACb,OAAO,CAAC;QAAE,OAAO,EAAE,KAAK,CAAC;YAAE,OAAO,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,OAAO,CAAC;YAAC,OAAO,EAAE,MAAM,CAAA;SAAE,CAAC,CAAA;KAAE,CAAC;IAetF;;OAEG;IACH,qBAAqB,CAAC,OAAO,EAAE,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,GAAG,eAAe,GAAG,IAAI;
|
|
1
|
+
{"version":3,"file":"font-manager.d.ts","sourceRoot":"","sources":["../../src/pdf/font-manager.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAcH;;GAEG;AACH,UAAU,WAAW;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,UAAU,eAAe;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAsDD;;GAEG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,eAAe,CAAgB;IACvC,OAAO,CAAC,iBAAiB,CAAqB;IAC9C,OAAO,CAAC,WAAW,CAAS;;IAM5B;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IA4CjC;;OAEG;YACW,cAAc;IAU5B;;OAEG;IACH,eAAe,IAAI,MAAM,EAAE;IAe3B;;OAEG;IACH,eAAe,IAAI,MAAM,EAAE;IAM3B;;OAEG;IACH,kBAAkB,IAAI,MAAM,EAAE;IAW9B;;OAEG;IACH,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAMtC;;OAEG;IACH,oBAAoB,IAAI,WAAW,EAAE;IAIrC;;OAEG;IACH,qBAAqB,IAAI,MAAM,EAAE;IAyBjC;;OAEG;IACH,SAAS,IAAI;QACX,YAAY,EAAE,MAAM,EAAE,CAAC;QACvB,iBAAiB,EAAE,MAAM,EAAE,CAAC;QAC5B,aAAa,EAAE,MAAM,CAAC;QACtB,WAAW,EAAE,MAAM,EAAE,CAAC;KACvB;IASD;;OAEG;IACH,oBAAoB,IAAI,eAAe,EAAE;IAOzC;;OAEG;IACH,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS;IAIhE;;;;;OAKG;IACG,kBAAkB,CACtB,WAAW,EAAE,MAAM,EACnB,MAAM,UAAQ,GACb,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAuDlE;;OAEG;IACG,mBAAmB,CACvB,YAAY,EAAE,MAAM,EAAE,EACtB,MAAM,UAAQ,GACb,OAAO,CAAC;QAAE,OAAO,EAAE,KAAK,CAAC;YAAE,OAAO,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,OAAO,CAAC;YAAC,OAAO,EAAE,MAAM,CAAA;SAAE,CAAC,CAAA;KAAE,CAAC;IAetF;;OAEG;IACH,qBAAqB,CAAC,OAAO,EAAE,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,GAAG,eAAe,GAAG,IAAI;IAyB9F;;;;OAIG;IACG,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;QACpD,OAAO,EAAE,OAAO,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;CAiCH;AAED;;GAEG;AACH,eAAO,MAAM,WAAW,aAAoB,CAAC;AAE7C;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,EAAE,CAE5C;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,EAAE,CAE5C"}
|
package/dist/pdf/font-manager.js
CHANGED
|
@@ -310,6 +310,42 @@ export class FontManager {
|
|
|
310
310
|
}
|
|
311
311
|
return null;
|
|
312
312
|
}
|
|
313
|
+
/**
|
|
314
|
+
* Convert all TTF fonts to WOFF2 for HTML output
|
|
315
|
+
* @param outputDir Output directory for WOFF2 files
|
|
316
|
+
* @returns Conversion results
|
|
317
|
+
*/
|
|
318
|
+
async convertFontsToWoff2(outputDir) {
|
|
319
|
+
const { convertDirectoryToWoff2 } = await import('./woff2-converter.js');
|
|
320
|
+
let totalConverted = 0;
|
|
321
|
+
let totalFailed = 0;
|
|
322
|
+
// Convert builtin fonts
|
|
323
|
+
try {
|
|
324
|
+
const builtinResult = await convertDirectoryToWoff2(this.builtinPath, outputDir);
|
|
325
|
+
totalConverted += builtinResult.successful;
|
|
326
|
+
totalFailed += builtinResult.failed;
|
|
327
|
+
}
|
|
328
|
+
catch (error) {
|
|
329
|
+
logger.warn('Failed to convert builtin fonts', { error });
|
|
330
|
+
}
|
|
331
|
+
// Convert fonts from installed packages
|
|
332
|
+
for (const fontPath of this.additionalPaths) {
|
|
333
|
+
try {
|
|
334
|
+
const result = await convertDirectoryToWoff2(fontPath, outputDir);
|
|
335
|
+
totalConverted += result.successful;
|
|
336
|
+
totalFailed += result.failed;
|
|
337
|
+
}
|
|
338
|
+
catch (error) {
|
|
339
|
+
logger.warn('Failed to convert fonts from package', { path: fontPath, error });
|
|
340
|
+
}
|
|
341
|
+
}
|
|
342
|
+
return {
|
|
343
|
+
success: totalFailed === 0,
|
|
344
|
+
converted: totalConverted,
|
|
345
|
+
failed: totalFailed,
|
|
346
|
+
outputDir
|
|
347
|
+
};
|
|
348
|
+
}
|
|
313
349
|
}
|
|
314
350
|
/**
|
|
315
351
|
* Singleton font manager instance
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"font-manager.js","sourceRoot":"","sources":["../../src/pdf/font-manager.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,EAAE,MAAM,aAAa,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AACjC,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAE3C,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;AAElC,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;AAuB3C;;GAEG;AACH,MAAM,iBAAiB,GAAoC;IACzD,2CAA2C,EAAE;QAC3C,IAAI,EAAE,2CAA2C;QACjD,WAAW,EAAE,+CAA+C;QAC5D,SAAS,EAAE,EAAE;QACb,aAAa,EAAE,QAAQ;QACvB,SAAS,EAAE,0CAA0C;KACtD;IACD,uCAAuC,EAAE;QACvC,IAAI,EAAE,uCAAuC;QAC7C,WAAW,EAAE,qCAAqC;QAClD,SAAS,EAAE,EAAE;QACb,aAAa,EAAE,QAAQ;QACvB,SAAS,EAAE,2CAA2C;KACvD;IACD,uCAAuC,EAAE;QACvC,IAAI,EAAE,uCAAuC;QAC7C,WAAW,EAAE,6BAA6B;QAC1C,SAAS,EAAE,EAAE;QACb,aAAa,EAAE,QAAQ;KACxB;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,sBAAsB,GAAG;IAC7B,2CAA2C;IAC3C,uCAAuC;IACvC,uCAAuC;CACxC,CAAC;AAEF;;GAEG;AACH,MAAM,aAAa,GAAG;IACpB,QAAQ,EAAE;QACR,kBAAkB;QAClB,iBAAiB;QACjB,iBAAiB;QACjB,OAAO;QACP,gBAAgB;QAChB,cAAc,EAAK,iBAAiB;QACpC,aAAa,EAAM,iBAAiB;QACpC,kBAAkB,CAAC,iBAAiB;KACrC;IACD,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,qBAAqB,CAAC;CAClD,CAAC;AAEF;;GAEG;AACH,MAAM,OAAO,WAAW;IACd,WAAW,CAAS;IACpB,eAAe,GAAa,EAAE,CAAC;IAC/B,iBAAiB,GAAkB,EAAE,CAAC;IACtC,WAAW,GAAG,KAAK,CAAC;IAE5B;QACE,IAAI,CAAC,WAAW,GAAG,aAAa,CAAC,IAAI,CAAC;IACxC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU;QACd,IAAI,IAAI,CAAC,WAAW;YAAE,OAAO;QAE7B,mCAAmC;QACnC,KAAK,MAAM,OAAO,IAAI,sBAAsB,EAAE,CAAC;YAC7C,IAAI,CAAC;gBACH,6BAA6B;gBAC7B,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;gBAC/C,IAAI,GAAG,EAAE,CAAC;oBACR,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC;wBAC1B,IAAI,EAAE,OAAO;wBACb,IAAI,EAAE,GAAG,CAAC,SAAS,IAAI,GAAG,CAAC,YAAY,EAAE,EAAE,IAAI,EAAE;wBACjD,QAAQ,EAAE,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,eAAe,EAAE,EAAE,IAAI,EAAE;wBACvD,SAAS,EAAE,IAAI;qBAChB,CAAC,CAAC;oBAEH,4DAA4D;oBAC5D,IAAI,GAAG,CAAC,eAAe,EAAE,CAAC;wBACxB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,eAAe,EAAE,CAAC,CAAC;oBACtD,CAAC;yBAAM,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC;wBACzB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;oBAC3C,CAAC;oBAED,MAAM,CAAC,IAAI,CAAC,0BAA0B,OAAO,EAAE,CAAC,CAAC;gBACnD,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,qCAAqC;YACvC,CAAC;QACH,CAAC;QAED,+BAA+B;QAC/B,IAAI,CAAC;YACH,MAAM,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAClC,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACjD,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;gBAC9D,MAAM,CAAC,IAAI,CAAC,0BAA0B,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;YACtE,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,CAAC,IAAI,CAAC,0DAA0D,CAAC,CAAC;QAC1E,CAAC;QAED,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;IAC1B,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,cAAc,CAAC,OAAe;QAC1C,IAAI,CAAC;YACH,gCAAgC;YAChC,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,CAAC;YAClC,OAAO,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC;QAC5B,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED;;OAEG;IACH,eAAe;QACb,MAAM,KAAK,GAAa,EAAE,CAAC;QAE3B,gCAAgC;QAChC,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC/B,CAAC;QAED,+CAA+C;QAC/C,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC;QAEpC,oBAAoB;QACpB,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,eAAe;QACb,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QACrC,gEAAgE;QAChE,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;IAC9C,CAAC;IAED;;OAEG;IACH,kBAAkB;QAChB,MAAM,QAAQ,GAAG,CAAC,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;QAE7C,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACzC,QAAQ,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC;QACjC,CAAC;QAED,oBAAoB;QACpB,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;IAChC,CAAC;IAED;;OAEG;IACH,aAAa,CAAC,MAAc;QAC1B,OAAO,IAAI,CAAC,kBAAkB,EAAE,CAAC,IAAI,CACnC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC,WAAW,EAAE,CAC9C,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,oBAAoB;QAClB,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAChC,CAAC;IAED;;OAEG;IACH,qBAAqB;QACnB,MAAM,WAAW,GAAa,EAAE,CAAC;QACjC,MAAM,SAAS,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAE1D,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,2CAA2C,CAAC,EAAE,CAAC;YACrE,WAAW,CAAC,IAAI,CACd,4EAA4E,CAC7E,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,uCAAuC,CAAC,EAAE,CAAC;YACjE,WAAW,CAAC,IAAI,CACd,4EAA4E,CAC7E,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,uCAAuC,CAAC,EAAE,CAAC;YACjE,WAAW,CAAC,IAAI,CACd,6EAA6E,CAC9E,CAAC;QACJ,CAAC;QAED,OAAO,WAAW,CAAC;IACrB,CAAC;IAED;;OAEG;IACH,SAAS;QAMP,OAAO;YACL,YAAY,EAAE,aAAa,CAAC,QAAQ;YACpC,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;YAC1D,aAAa,EAAE,IAAI,CAAC,kBAAkB,EAAE,CAAC,MAAM;YAC/C,WAAW,EAAE,IAAI,CAAC,qBAAqB,EAAE;SAC1C,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,oBAAoB;QAClB,MAAM,SAAS,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC1D,OAAO,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,MAAM,CAC5C,GAAG,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CACrC,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,cAAc,CAAC,WAAmB;QAChC,OAAO,iBAAiB,CAAC,WAAW,CAAC,CAAC;IACxC,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,kBAAkB,CACtB,WAAmB,EACnB,MAAM,GAAG,KAAK;QAEd,wBAAwB;QACxB,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;YAClD,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,OAAO,EAAE,oBAAoB,WAAW,yBAAyB,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;aACrG,CAAC;QACJ,CAAC;QAED,6BAA6B;QAC7B,MAAM,SAAS,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC1D,IAAI,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;YACpC,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,OAAO,EAAE,WAAW,WAAW,uBAAuB;aACvD,CAAC;QACJ,CAAC;QAED,MAAM,OAAO,GAAG,iBAAiB,CAAC,WAAW,CAAC,CAAC;QAC/C,MAAM,CAAC,IAAI,CAAC,4BAA4B,WAAW,EAAE,EAAE;YACrD,IAAI,EAAE,OAAO,EAAE,aAAa;YAC5B,KAAK,EAAE,OAAO,EAAE,SAAS;SAC1B,CAAC,CAAC;QAEH,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;YACvC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,SAAS,CACxC,eAAe,UAAU,GAAG,WAAW,EAAE,EACzC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,sCAAsC;aAC3D,CAAC;YAEF,sCAAsC;YACtC,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;YACzB,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;YAC5B,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;YAC1B,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;YAExB,MAAM,CAAC,IAAI,CAAC,0BAA0B,WAAW,EAAE,CAAC,CAAC;YAErD,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,0BAA0B,WAAW,KAAK,OAAO,EAAE,SAAS,WAAW,OAAO,EAAE,aAAa,GAAG;gBACzG,MAAM,EAAE,MAAM,IAAI,MAAM;aACzB,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,QAAQ,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACxE,MAAM,CAAC,KAAK,CAAC,qBAAqB,WAAW,EAAE,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;YAEtE,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,OAAO,EAAE,qBAAqB,WAAW,KAAK,QAAQ,EAAE;aACzD,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,mBAAmB,CACvB,YAAsB,EACtB,MAAM,GAAG,KAAK;QAEd,MAAM,OAAO,GAAkE,EAAE,CAAC;QAElF,KAAK,MAAM,OAAO,IAAI,YAAY,EAAE,CAAC;YACnC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YAC9D,OAAO,CAAC,IAAI,CAAC;gBACX,OAAO,EAAE,OAAO;gBAChB,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,OAAO,EAAE,MAAM,CAAC,OAAO;aACxB,CAAC,CAAC;QACL,CAAC;QAED,OAAO,EAAE,OAAO,EAAE,CAAC;IACrB,CAAC;IAED;;OAEG;IACH,qBAAqB,CAAC,OAA+C;QACnE,MAAM,SAAS,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAE1D,QAAQ,OAAO,EAAE,CAAC;YAChB,KAAK,MAAM;gBACT,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,uCAAuC,CAAC,EAAE,CAAC;oBACjE,OAAO,iBAAiB,CAAC,uCAAuC,CAAC,CAAC;gBACpE,CAAC;gBACD,MAAM;YACR,KAAK,UAAU;gBACb,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,2CAA2C,CAAC,EAAE,CAAC;oBACrE,OAAO,iBAAiB,CAAC,2CAA2C,CAAC,CAAC;gBACxE,CAAC;gBACD,MAAM;YACR,KAAK,QAAQ,CAAC;YACd,KAAK,KAAK;gBACR,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,uCAAuC,CAAC,EAAE,CAAC;oBACjE,OAAO,iBAAiB,CAAC,uCAAuC,CAAC,CAAC;gBACpE,CAAC;gBACD,MAAM;QACV,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC;AAE7C;;GAEG;AACH,MAAM,UAAU,iBAAiB;IAC/B,OAAO,WAAW,CAAC,eAAe,EAAE,CAAC;AACvC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB;IAC/B,OAAO,WAAW,CAAC,kBAAkB,EAAE,CAAC;AAC1C,CAAC"}
|
|
1
|
+
{"version":3,"file":"font-manager.js","sourceRoot":"","sources":["../../src/pdf/font-manager.ts"],"names":[],"mappings":"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"}
|
package/dist/pdf/index.d.ts
CHANGED
|
@@ -6,5 +6,7 @@ export * from './pdf-types.js';
|
|
|
6
6
|
export { ImageConverter, imageConverter } from './image-converter.js';
|
|
7
7
|
export { FontManager, fontManager, getTypstFontPaths, getAvailableFonts, } from './font-manager.js';
|
|
8
8
|
export type { FontManager as FontManagerType } from './font-manager.js';
|
|
9
|
+
export { convertTtfToWoff2, convertTtfBatch, convertDirectoryToWoff2, hasUpToDateWoff2, } from './woff2-converter.js';
|
|
10
|
+
export type { ConversionResult, BatchConversionResult } from './woff2-converter.js';
|
|
9
11
|
export { TypstEngine, typstEngine, generatePDF, generateBatchPDF, } from './typst-engine.js';
|
|
10
12
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/pdf/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/pdf/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,cAAc,gBAAgB,CAAC;AAG/B,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAGtE,OAAO,EACL,WAAW,EACX,WAAW,EACX,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,mBAAmB,CAAC;AAG3B,YAAY,EAAE,WAAW,IAAI,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAGxE,OAAO,EACL,WAAW,EACX,WAAW,EACX,WAAW,EACX,gBAAgB,GACjB,MAAM,mBAAmB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/pdf/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,cAAc,gBAAgB,CAAC;AAG/B,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAGtE,OAAO,EACL,WAAW,EACX,WAAW,EACX,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,mBAAmB,CAAC;AAG3B,YAAY,EAAE,WAAW,IAAI,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAGxE,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,uBAAuB,EACvB,gBAAgB,GACjB,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAGpF,OAAO,EACL,WAAW,EACX,WAAW,EACX,WAAW,EACX,gBAAgB,GACjB,MAAM,mBAAmB,CAAC"}
|
package/dist/pdf/index.js
CHANGED
|
@@ -8,6 +8,8 @@ export * from './pdf-types.js';
|
|
|
8
8
|
export { ImageConverter, imageConverter } from './image-converter.js';
|
|
9
9
|
// Font manager
|
|
10
10
|
export { FontManager, fontManager, getTypstFontPaths, getAvailableFonts, } from './font-manager.js';
|
|
11
|
+
// WOFF2 converter (for HTML output)
|
|
12
|
+
export { convertTtfToWoff2, convertTtfBatch, convertDirectoryToWoff2, hasUpToDateWoff2, } from './woff2-converter.js';
|
|
11
13
|
// Typst engine
|
|
12
14
|
export { TypstEngine, typstEngine, generatePDF, generateBatchPDF, } from './typst-engine.js';
|
|
13
15
|
//# sourceMappingURL=index.js.map
|
package/dist/pdf/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/pdf/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,QAAQ;AACR,cAAc,gBAAgB,CAAC;AAE/B,kBAAkB;AAClB,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtE,eAAe;AACf,OAAO,EACL,WAAW,EACX,WAAW,EACX,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,mBAAmB,CAAC;AAK3B,eAAe;AACf,OAAO,EACL,WAAW,EACX,WAAW,EACX,WAAW,EACX,gBAAgB,GACjB,MAAM,mBAAmB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/pdf/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,QAAQ;AACR,cAAc,gBAAgB,CAAC;AAE/B,kBAAkB;AAClB,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtE,eAAe;AACf,OAAO,EACL,WAAW,EACX,WAAW,EACX,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,mBAAmB,CAAC;AAK3B,oCAAoC;AACpC,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,uBAAuB,EACvB,gBAAgB,GACjB,MAAM,sBAAsB,CAAC;AAG9B,eAAe;AACf,OAAO,EACL,WAAW,EACX,WAAW,EACX,WAAW,EACX,gBAAgB,GACjB,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Visual Forge MCP - WOFF2 Converter
|
|
3
|
+
* Converts TTF fonts to WOFF2 for HTML output
|
|
4
|
+
* Uses wawoff2 (WebAssembly-based, no native dependencies)
|
|
5
|
+
*/
|
|
6
|
+
export interface ConversionResult {
|
|
7
|
+
success: boolean;
|
|
8
|
+
inputPath: string;
|
|
9
|
+
outputPath?: string;
|
|
10
|
+
inputSize?: number;
|
|
11
|
+
outputSize?: number;
|
|
12
|
+
compressionRatio?: number;
|
|
13
|
+
error?: string;
|
|
14
|
+
}
|
|
15
|
+
export interface BatchConversionResult {
|
|
16
|
+
total: number;
|
|
17
|
+
successful: number;
|
|
18
|
+
failed: number;
|
|
19
|
+
results: ConversionResult[];
|
|
20
|
+
totalInputSize: number;
|
|
21
|
+
totalOutputSize: number;
|
|
22
|
+
overallCompressionRatio: number;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Convert a TTF font file to WOFF2
|
|
26
|
+
* @param ttfPath Path to the TTF file
|
|
27
|
+
* @param outputPath Optional output path (defaults to same location with .woff2 extension)
|
|
28
|
+
* @returns Conversion result
|
|
29
|
+
*/
|
|
30
|
+
export declare function convertTtfToWoff2(ttfPath: string, outputPath?: string): Promise<ConversionResult>;
|
|
31
|
+
/**
|
|
32
|
+
* Convert multiple TTF files to WOFF2
|
|
33
|
+
* @param ttfPaths Array of TTF file paths
|
|
34
|
+
* @param outputDir Optional output directory (defaults to same location as each file)
|
|
35
|
+
* @param concurrency Number of parallel conversions (default: 4)
|
|
36
|
+
* @returns Batch conversion result
|
|
37
|
+
*/
|
|
38
|
+
export declare function convertTtfBatch(ttfPaths: string[], outputDir?: string, concurrency?: number): Promise<BatchConversionResult>;
|
|
39
|
+
/**
|
|
40
|
+
* Convert all TTF files in a directory to WOFF2
|
|
41
|
+
* @param inputDir Directory containing TTF files
|
|
42
|
+
* @param outputDir Output directory (defaults to inputDir)
|
|
43
|
+
* @param recursive Whether to search subdirectories
|
|
44
|
+
* @returns Batch conversion result
|
|
45
|
+
*/
|
|
46
|
+
export declare function convertDirectoryToWoff2(inputDir: string, outputDir?: string, recursive?: boolean): Promise<BatchConversionResult>;
|
|
47
|
+
/**
|
|
48
|
+
* Check if WOFF2 version of a font exists and is up to date
|
|
49
|
+
* @param ttfPath Path to TTF file
|
|
50
|
+
* @returns True if WOFF2 exists and is newer than TTF
|
|
51
|
+
*/
|
|
52
|
+
export declare function hasUpToDateWoff2(ttfPath: string): Promise<boolean>;
|
|
53
|
+
//# sourceMappingURL=woff2-converter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"woff2-converter.d.ts","sourceRoot":"","sources":["../../src/pdf/woff2-converter.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,gBAAgB,EAAE,CAAC;IAC5B,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;IACxB,uBAAuB,EAAE,MAAM,CAAC;CACjC;AAED;;;;;GAKG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,MAAM,EACf,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,gBAAgB,CAAC,CAwD3B;AAED;;;;;;GAMG;AACH,wBAAsB,eAAe,CACnC,QAAQ,EAAE,MAAM,EAAE,EAClB,SAAS,CAAC,EAAE,MAAM,EAClB,WAAW,SAAI,GACd,OAAO,CAAC,qBAAqB,CAAC,CAkDhC;AAED;;;;;;GAMG;AACH,wBAAsB,uBAAuB,CAC3C,QAAQ,EAAE,MAAM,EAChB,SAAS,CAAC,EAAE,MAAM,EAClB,SAAS,UAAQ,GAChB,OAAO,CAAC,qBAAqB,CAAC,CAgChC;AAED;;;;GAIG;AACH,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAaxE"}
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Visual Forge MCP - WOFF2 Converter
|
|
3
|
+
* Converts TTF fonts to WOFF2 for HTML output
|
|
4
|
+
* Uses wawoff2 (WebAssembly-based, no native dependencies)
|
|
5
|
+
*/
|
|
6
|
+
import * as fs from 'fs/promises';
|
|
7
|
+
import * as path from 'path';
|
|
8
|
+
import wawoff2 from 'wawoff2';
|
|
9
|
+
import { logger } from '../utils/index.js';
|
|
10
|
+
/**
|
|
11
|
+
* Convert a TTF font file to WOFF2
|
|
12
|
+
* @param ttfPath Path to the TTF file
|
|
13
|
+
* @param outputPath Optional output path (defaults to same location with .woff2 extension)
|
|
14
|
+
* @returns Conversion result
|
|
15
|
+
*/
|
|
16
|
+
export async function convertTtfToWoff2(ttfPath, outputPath) {
|
|
17
|
+
try {
|
|
18
|
+
// Validate input file exists
|
|
19
|
+
const stats = await fs.stat(ttfPath);
|
|
20
|
+
if (!stats.isFile()) {
|
|
21
|
+
return {
|
|
22
|
+
success: false,
|
|
23
|
+
inputPath: ttfPath,
|
|
24
|
+
error: 'Input path is not a file'
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
// Read TTF file
|
|
28
|
+
const ttfBuffer = await fs.readFile(ttfPath);
|
|
29
|
+
const inputSize = ttfBuffer.length;
|
|
30
|
+
// Convert to WOFF2
|
|
31
|
+
const woff2Buffer = await wawoff2.compress(ttfBuffer);
|
|
32
|
+
const outputSize = woff2Buffer.length;
|
|
33
|
+
// Determine output path
|
|
34
|
+
const finalOutputPath = outputPath || ttfPath.replace(/\.ttf$/i, '.woff2');
|
|
35
|
+
// Ensure output directory exists
|
|
36
|
+
await fs.mkdir(path.dirname(finalOutputPath), { recursive: true });
|
|
37
|
+
// Write WOFF2 file
|
|
38
|
+
await fs.writeFile(finalOutputPath, woff2Buffer);
|
|
39
|
+
const compressionRatio = ((inputSize - outputSize) / inputSize) * 100;
|
|
40
|
+
logger.debug('Converted TTF to WOFF2', {
|
|
41
|
+
input: path.basename(ttfPath),
|
|
42
|
+
inputSize: `${(inputSize / 1024).toFixed(1)} KB`,
|
|
43
|
+
outputSize: `${(outputSize / 1024).toFixed(1)} KB`,
|
|
44
|
+
compression: `${compressionRatio.toFixed(1)}%`
|
|
45
|
+
});
|
|
46
|
+
return {
|
|
47
|
+
success: true,
|
|
48
|
+
inputPath: ttfPath,
|
|
49
|
+
outputPath: finalOutputPath,
|
|
50
|
+
inputSize,
|
|
51
|
+
outputSize,
|
|
52
|
+
compressionRatio
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
catch (error) {
|
|
56
|
+
const errorMsg = error instanceof Error ? error.message : String(error);
|
|
57
|
+
logger.error('Failed to convert TTF to WOFF2', { path: ttfPath, error: errorMsg });
|
|
58
|
+
return {
|
|
59
|
+
success: false,
|
|
60
|
+
inputPath: ttfPath,
|
|
61
|
+
error: errorMsg
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Convert multiple TTF files to WOFF2
|
|
67
|
+
* @param ttfPaths Array of TTF file paths
|
|
68
|
+
* @param outputDir Optional output directory (defaults to same location as each file)
|
|
69
|
+
* @param concurrency Number of parallel conversions (default: 4)
|
|
70
|
+
* @returns Batch conversion result
|
|
71
|
+
*/
|
|
72
|
+
export async function convertTtfBatch(ttfPaths, outputDir, concurrency = 4) {
|
|
73
|
+
const results = [];
|
|
74
|
+
let totalInputSize = 0;
|
|
75
|
+
let totalOutputSize = 0;
|
|
76
|
+
// Process in batches for concurrency control
|
|
77
|
+
for (let i = 0; i < ttfPaths.length; i += concurrency) {
|
|
78
|
+
const batch = ttfPaths.slice(i, i + concurrency);
|
|
79
|
+
const batchResults = await Promise.all(batch.map(ttfPath => {
|
|
80
|
+
const outputPath = outputDir
|
|
81
|
+
? path.join(outputDir, path.basename(ttfPath).replace(/\.ttf$/i, '.woff2'))
|
|
82
|
+
: undefined;
|
|
83
|
+
return convertTtfToWoff2(ttfPath, outputPath);
|
|
84
|
+
}));
|
|
85
|
+
for (const result of batchResults) {
|
|
86
|
+
results.push(result);
|
|
87
|
+
if (result.success && result.inputSize && result.outputSize) {
|
|
88
|
+
totalInputSize += result.inputSize;
|
|
89
|
+
totalOutputSize += result.outputSize;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
const successful = results.filter(r => r.success).length;
|
|
94
|
+
const failed = results.filter(r => !r.success).length;
|
|
95
|
+
const overallCompressionRatio = totalInputSize > 0
|
|
96
|
+
? ((totalInputSize - totalOutputSize) / totalInputSize) * 100
|
|
97
|
+
: 0;
|
|
98
|
+
logger.info('Batch WOFF2 conversion complete', {
|
|
99
|
+
total: ttfPaths.length,
|
|
100
|
+
successful,
|
|
101
|
+
failed,
|
|
102
|
+
inputSize: `${(totalInputSize / 1024 / 1024).toFixed(2)} MB`,
|
|
103
|
+
outputSize: `${(totalOutputSize / 1024 / 1024).toFixed(2)} MB`,
|
|
104
|
+
compression: `${overallCompressionRatio.toFixed(1)}%`
|
|
105
|
+
});
|
|
106
|
+
return {
|
|
107
|
+
total: ttfPaths.length,
|
|
108
|
+
successful,
|
|
109
|
+
failed,
|
|
110
|
+
results,
|
|
111
|
+
totalInputSize,
|
|
112
|
+
totalOutputSize,
|
|
113
|
+
overallCompressionRatio
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Convert all TTF files in a directory to WOFF2
|
|
118
|
+
* @param inputDir Directory containing TTF files
|
|
119
|
+
* @param outputDir Output directory (defaults to inputDir)
|
|
120
|
+
* @param recursive Whether to search subdirectories
|
|
121
|
+
* @returns Batch conversion result
|
|
122
|
+
*/
|
|
123
|
+
export async function convertDirectoryToWoff2(inputDir, outputDir, recursive = false) {
|
|
124
|
+
const ttfPaths = [];
|
|
125
|
+
async function scanDir(dir) {
|
|
126
|
+
const entries = await fs.readdir(dir, { withFileTypes: true });
|
|
127
|
+
for (const entry of entries) {
|
|
128
|
+
const fullPath = path.join(dir, entry.name);
|
|
129
|
+
if (entry.isFile() && entry.name.toLowerCase().endsWith('.ttf')) {
|
|
130
|
+
ttfPaths.push(fullPath);
|
|
131
|
+
}
|
|
132
|
+
else if (recursive && entry.isDirectory()) {
|
|
133
|
+
await scanDir(fullPath);
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
await scanDir(inputDir);
|
|
138
|
+
if (ttfPaths.length === 0) {
|
|
139
|
+
return {
|
|
140
|
+
total: 0,
|
|
141
|
+
successful: 0,
|
|
142
|
+
failed: 0,
|
|
143
|
+
results: [],
|
|
144
|
+
totalInputSize: 0,
|
|
145
|
+
totalOutputSize: 0,
|
|
146
|
+
overallCompressionRatio: 0
|
|
147
|
+
};
|
|
148
|
+
}
|
|
149
|
+
return convertTtfBatch(ttfPaths, outputDir || inputDir);
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* Check if WOFF2 version of a font exists and is up to date
|
|
153
|
+
* @param ttfPath Path to TTF file
|
|
154
|
+
* @returns True if WOFF2 exists and is newer than TTF
|
|
155
|
+
*/
|
|
156
|
+
export async function hasUpToDateWoff2(ttfPath) {
|
|
157
|
+
const woff2Path = ttfPath.replace(/\.ttf$/i, '.woff2');
|
|
158
|
+
try {
|
|
159
|
+
const [ttfStats, woff2Stats] = await Promise.all([
|
|
160
|
+
fs.stat(ttfPath),
|
|
161
|
+
fs.stat(woff2Path)
|
|
162
|
+
]);
|
|
163
|
+
return woff2Stats.mtime >= ttfStats.mtime;
|
|
164
|
+
}
|
|
165
|
+
catch {
|
|
166
|
+
return false;
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
//# sourceMappingURL=woff2-converter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"woff2-converter.js","sourceRoot":"","sources":["../../src/pdf/woff2-converter.ts"],"names":[],"mappings":"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"}
|
package/fonts/README.md
ADDED
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
# Visual Forge Fonts
|
|
2
|
+
|
|
3
|
+
This directory contains fonts for PDF generation.
|
|
4
|
+
|
|
5
|
+
## Bundled Fonts (fonts/minimal/)
|
|
6
|
+
|
|
7
|
+
Visual Forge includes a minimal set of fonts for out-of-the-box PDF generation:
|
|
8
|
+
|
|
9
|
+
| Font | Type | Use Case | License |
|
|
10
|
+
|------|------|----------|---------|
|
|
11
|
+
| Inter | Sans-serif | Modern UI, headings | OFL |
|
|
12
|
+
| JetBrains Mono | Monospace | Code blocks | OFL |
|
|
13
|
+
| Liberation Serif | Serif | Body text, formal docs | OFL |
|
|
14
|
+
| Liberation Sans | Sans-serif | Alternative to Arial | OFL |
|
|
15
|
+
| Liberation Mono | Monospace | Alternative to Courier | OFL |
|
|
16
|
+
|
|
17
|
+
These fonts are automatically detected by the font-manager.
|
|
18
|
+
|
|
19
|
+
## Additional Font Packages
|
|
20
|
+
|
|
21
|
+
Install additional fonts via npm:
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
# Standard bundle (11 document fonts)
|
|
25
|
+
npm install @michelabboud/visual-forge-fonts-standard
|
|
26
|
+
|
|
27
|
+
# Full bundle (35 fonts including display)
|
|
28
|
+
npm install @michelabboud/visual-forge-fonts-full
|
|
29
|
+
|
|
30
|
+
# Programming fonts only
|
|
31
|
+
npm install @michelabboud/visual-forge-fonts-code
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
## Default Fonts (Built into Typst)
|
|
35
|
+
|
|
36
|
+
Typst also includes **DejaVu** fonts as built-ins:
|
|
37
|
+
- DejaVu Serif (body text)
|
|
38
|
+
- DejaVu Sans (headings, UI elements)
|
|
39
|
+
- DejaVu Sans Mono (code blocks)
|
|
40
|
+
|
|
41
|
+
## Using Custom Fonts
|
|
42
|
+
|
|
43
|
+
### Option 1: System Fonts
|
|
44
|
+
|
|
45
|
+
Typst automatically detects fonts installed on your system:
|
|
46
|
+
|
|
47
|
+
**Ubuntu/Debian:**
|
|
48
|
+
```bash
|
|
49
|
+
sudo apt install fonts-open-sans fonts-roboto
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
**macOS:**
|
|
53
|
+
Fonts in `~/Library/Fonts` or `/Library/Fonts` are auto-detected.
|
|
54
|
+
|
|
55
|
+
**Windows:**
|
|
56
|
+
Fonts in `C:\Windows\Fonts` are auto-detected.
|
|
57
|
+
|
|
58
|
+
### Option 2: Project Fonts
|
|
59
|
+
|
|
60
|
+
Place `.ttf` or `.otf` files in this `fonts/` directory.
|
|
61
|
+
|
|
62
|
+
### Option 3: Environment Variable
|
|
63
|
+
|
|
64
|
+
Set `TYPST_FONT_PATHS` to include additional font directories:
|
|
65
|
+
|
|
66
|
+
```bash
|
|
67
|
+
export TYPST_FONT_PATHS="/path/to/fonts:/another/path"
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
## Listing Available Fonts
|
|
71
|
+
|
|
72
|
+
To see all fonts Typst can find:
|
|
73
|
+
|
|
74
|
+
```bash
|
|
75
|
+
typst fonts
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
## Font Licenses
|
|
79
|
+
|
|
80
|
+
All bundled fonts are licensed under SIL Open Font License 1.1.
|
|
81
|
+
See `fonts/minimal/licenses/` for individual license files.
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
Copyright 2020 The JetBrains Mono Project Authors (https://github.com/JetBrains/JetBrainsMono)
|
|
2
|
+
|
|
3
|
+
SIL Open Font License 1.1
|
|
4
|
+
|
|
5
|
+
This Font Software is licensed under the SIL Open Font License, Version 1.1.
|
|
6
|
+
This license is available with a FAQ at: https://scripts.sil.org/OFL
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
Digitized data copyright (c) 2010 Google Corporation
|
|
2
|
+
with Reserved Font Arimo, Tinos and Cousine.
|
|
3
|
+
Copyright (c) 2012 Red Hat, Inc.
|
|
4
|
+
with Reserved Font Name Liberation.
|
|
5
|
+
|
|
6
|
+
This Font Software is licensed under the SIL Open Font License, Version 1.1.
|
|
7
|
+
This license is available with a FAQ at: https://scripts.sil.org/OFL
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@michelabboud/visual-forge-mcp",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.12.0",
|
|
4
4
|
"description": "MCP server for AI image generation from markdown and HTML with multi-provider support, model testing, and automatic web optimization",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -52,6 +52,7 @@
|
|
|
52
52
|
"author": "Michel Abboud",
|
|
53
53
|
"license": "SEE LICENSE IN LICENSE",
|
|
54
54
|
"dependencies": {
|
|
55
|
+
"@michelabboud/visual-forge-fonts-standard": "^1.0.1",
|
|
55
56
|
"@modelcontextprotocol/sdk": "^1.25.2",
|
|
56
57
|
"axios": "^1.7.0",
|
|
57
58
|
"axios-retry": "^4.5.0",
|
|
@@ -64,6 +65,7 @@
|
|
|
64
65
|
"ora": "^8.1.0",
|
|
65
66
|
"sharp": "^0.33.0",
|
|
66
67
|
"uuid": "^10.0.0",
|
|
68
|
+
"wawoff2": "^2.0.1",
|
|
67
69
|
"zod": "^3.25.0"
|
|
68
70
|
},
|
|
69
71
|
"devDependencies": {
|
|
@@ -84,6 +86,7 @@
|
|
|
84
86
|
"files": [
|
|
85
87
|
"dist",
|
|
86
88
|
"templates",
|
|
89
|
+
"fonts",
|
|
87
90
|
"config/pricing.json",
|
|
88
91
|
"config/pricing-schema.json",
|
|
89
92
|
"scripts/update-pricing.js",
|