| 117 | } |
| 118 | |
| 119 | export interface ParsedFontInfo { |
| 120 | family: string; |
| 121 | style: string; |
| 122 | unitsPerEm: number; |
| 123 | ascender: number; |
| 124 | descender: number; |
| 125 | lineCap: LineCap; |
| 126 | font: opentype.Font; |
| 127 | /** Additional subset fonts (e.g. CJK subsets from Google Fonts) */ |
| 128 | extraFonts?: opentype.Font[]; |
| 129 | /** |
| 130 | * Deduplicated GSUB feature tags declared by the font (e.g. `liga`, `calt`, |
| 131 | * `init`/`medi`/`fina` for Arabic). Detected once at parse time via harfbuzz |
| 132 | * so downstream code — bundle builder, UI feature toggles, live preview — |
| 133 | * never has to re-run detection. |
| 134 | */ |
| 135 | features: string[]; |
| 136 | } |
| 137 | |
| 138 | // ── Bundle types ────────────────────────────────────────────────────────── |
| 139 |
nothing calls this directly
no outgoing calls
no test coverage detected