@turntrout/subfont 1.7.0 → 1.7.1
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/lib/FontTracerPool.d.ts +37 -0
- package/lib/FontTracerPool.d.ts.map +1 -0
- package/lib/FontTracerPool.js +210 -219
- package/lib/FontTracerPool.js.map +1 -0
- package/lib/cli.d.ts +3 -0
- package/lib/cli.d.ts.map +1 -0
- package/lib/cli.js +15 -12
- package/lib/cli.js.map +1 -0
- package/lib/subfont.d.ts +33 -0
- package/lib/subfont.d.ts.map +1 -0
- package/lib/subfont.js +530 -629
- package/lib/subfont.js.map +1 -0
- package/lib/subsetFontWithGlyphs.d.ts +17 -0
- package/lib/subsetFontWithGlyphs.d.ts.map +1 -0
- package/lib/subsetFontWithGlyphs.js +223 -256
- package/lib/subsetFontWithGlyphs.js.map +1 -0
- package/lib/subsetFonts.d.ts +59 -0
- package/lib/subsetFonts.d.ts.map +1 -0
- package/lib/subsetFonts.js +898 -1200
- package/lib/subsetFonts.js.map +1 -0
- package/lib/subsetGeneration.d.ts +39 -0
- package/lib/subsetGeneration.d.ts.map +1 -0
- package/lib/subsetGeneration.js +294 -324
- package/lib/subsetGeneration.js.map +1 -0
- package/package.json +11 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"subfont.js","sourceRoot":"","sources":["../src/subfont.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
type VariationAxisValue = number | {
|
|
2
|
+
min: number;
|
|
3
|
+
max: number;
|
|
4
|
+
default?: number;
|
|
5
|
+
};
|
|
6
|
+
interface SubsetFontWithGlyphsOptions {
|
|
7
|
+
targetFormat?: string;
|
|
8
|
+
glyphIds?: number[];
|
|
9
|
+
variationAxes?: Record<string, VariationAxisValue>;
|
|
10
|
+
}
|
|
11
|
+
interface SubsetFontWithGlyphsFn {
|
|
12
|
+
(originalFont: Buffer | Uint8Array, text: string, options?: SubsetFontWithGlyphsOptions): Promise<Buffer>;
|
|
13
|
+
warmup(): Promise<void>;
|
|
14
|
+
}
|
|
15
|
+
declare const _default: SubsetFontWithGlyphsFn;
|
|
16
|
+
export = _default;
|
|
17
|
+
//# sourceMappingURL=subsetFontWithGlyphs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"subsetFontWithGlyphs.d.ts","sourceRoot":"","sources":["../src/subsetFontWithGlyphs.ts"],"names":[],"mappings":"AAiEA,KAAK,kBAAkB,GACnB,MAAM,GACN;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAEnD,UAAU,2BAA2B;IACnC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;CACpD;AA8PD,UAAU,sBAAsB;IAC9B,CACE,YAAY,EAAE,MAAM,GAAG,UAAU,EACjC,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,2BAA2B,GACpC,OAAO,CAAC,MAAM,CAAC,CAAC;IACnB,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACzB;wBAyEgC,sBAAsB;AAAvD,kBAAwD"}
|
|
@@ -1,316 +1,283 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
const os = require("os");
|
|
36
|
+
const promises_1 = require("fs/promises");
|
|
37
|
+
const fontverter = __importStar(require("fontverter"));
|
|
38
|
+
const sfntCache_1 = require("./sfntCache");
|
|
39
|
+
const fontConverter_1 = require("./fontConverter");
|
|
7
40
|
// hb_subset_sets_t enum values — https://github.com/harfbuzz/harfbuzz/blob/main/src/hb-subset.h
|
|
8
41
|
const HB_SUBSET_SETS_GLYPH_INDEX = 0;
|
|
9
42
|
const HB_SUBSET_SETS_DROP_TABLE_TAG = 5;
|
|
10
43
|
const HB_SUBSET_SETS_LAYOUT_FEATURE_TAG = 6;
|
|
11
44
|
const HB_SUBSET_SETS_NAME_ID = 4;
|
|
12
|
-
|
|
13
45
|
// hb_subset_flags_t
|
|
14
46
|
const HB_SUBSET_FLAGS_NO_HINTING = 0x00000001;
|
|
15
|
-
|
|
16
47
|
// Pool of WASM instances for parallel subsetting. Each instance has its
|
|
17
48
|
// own linear memory so concurrent calls are safe. The module is compiled
|
|
18
49
|
// once and instantiated N times (N = CPU count, capped at 8).
|
|
19
50
|
let _compilePromise;
|
|
20
51
|
function compileModule() {
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
}
|
|
28
|
-
return _compilePromise;
|
|
52
|
+
if (!_compilePromise) {
|
|
53
|
+
// Assign the promise synchronously so concurrent callers share it
|
|
54
|
+
// (an async function would await readFile before the assignment).
|
|
55
|
+
_compilePromise = (0, promises_1.readFile)(require.resolve('harfbuzzjs/hb-subset.wasm')).then((buf) => WebAssembly.compile(buf));
|
|
56
|
+
}
|
|
57
|
+
return _compilePromise;
|
|
29
58
|
}
|
|
30
|
-
|
|
31
|
-
const _pool = []; // Array of { exports, busy: boolean }
|
|
59
|
+
const _pool = [];
|
|
32
60
|
let _poolReady;
|
|
33
61
|
const POOL_SIZE = Math.max(1, Math.min(os.cpus().length, 8));
|
|
34
|
-
|
|
35
62
|
async function initPool() {
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
63
|
+
if (!_poolReady) {
|
|
64
|
+
_poolReady = (async () => {
|
|
65
|
+
const mod = await compileModule();
|
|
66
|
+
const instantiations = [];
|
|
67
|
+
for (let i = 0; i < POOL_SIZE; i++) {
|
|
68
|
+
instantiations.push(WebAssembly.instantiate(mod).then((inst) => {
|
|
69
|
+
_pool.push({
|
|
70
|
+
// WebAssembly.Exports is opaque (Record<string, ExportValue>);
|
|
71
|
+
// bridge it to our typed surface in one place.
|
|
72
|
+
// eslint-disable-next-line no-restricted-syntax
|
|
73
|
+
exports: inst.exports,
|
|
74
|
+
busy: false,
|
|
75
|
+
});
|
|
76
|
+
}));
|
|
77
|
+
}
|
|
78
|
+
await Promise.all(instantiations);
|
|
79
|
+
})();
|
|
80
|
+
}
|
|
81
|
+
return _poolReady;
|
|
51
82
|
}
|
|
52
|
-
|
|
53
83
|
// Waiters queue: callers waiting for an idle WASM instance.
|
|
54
84
|
const _waiters = [];
|
|
55
85
|
const ACQUIRE_TIMEOUT_MS = 120_000;
|
|
56
|
-
|
|
57
86
|
async function acquireInstance() {
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
)
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
};
|
|
80
|
-
_waiters.push(entry);
|
|
81
|
-
});
|
|
87
|
+
await initPool();
|
|
88
|
+
const idle = _pool.find((inst) => !inst.busy);
|
|
89
|
+
if (idle) {
|
|
90
|
+
idle.busy = true;
|
|
91
|
+
return idle;
|
|
92
|
+
}
|
|
93
|
+
// All instances busy — wait for one to be released.
|
|
94
|
+
return new Promise((resolve, reject) => {
|
|
95
|
+
const timer = setTimeout(() => {
|
|
96
|
+
const idx = _waiters.indexOf(entry);
|
|
97
|
+
if (idx !== -1)
|
|
98
|
+
_waiters.splice(idx, 1);
|
|
99
|
+
reject(new Error(`Timed out waiting for a WASM subsetting instance after ${ACQUIRE_TIMEOUT_MS}ms`));
|
|
100
|
+
}, ACQUIRE_TIMEOUT_MS);
|
|
101
|
+
timer.unref();
|
|
102
|
+
const entry = (inst) => {
|
|
103
|
+
clearTimeout(timer);
|
|
104
|
+
resolve(inst);
|
|
105
|
+
};
|
|
106
|
+
_waiters.push(entry);
|
|
107
|
+
});
|
|
82
108
|
}
|
|
83
|
-
|
|
84
109
|
function releaseInstance(inst) {
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
110
|
+
inst.busy = false;
|
|
111
|
+
if (_waiters.length > 0) {
|
|
112
|
+
inst.busy = true;
|
|
113
|
+
const waiter = _waiters.shift();
|
|
114
|
+
if (waiter)
|
|
115
|
+
waiter(inst);
|
|
116
|
+
}
|
|
90
117
|
}
|
|
91
|
-
|
|
92
118
|
// woff2 encode/decode uses wawoff2's WASM module, which has a shared
|
|
93
119
|
// instance that corrupts memory under concurrent use. Instead of
|
|
94
120
|
// serializing to p-limit(1) in the main thread, we route woff2
|
|
95
121
|
// operations through fontConverterPool — each worker thread loads its
|
|
96
122
|
// own wawoff2 instance, enabling safe parallel compression.
|
|
97
|
-
|
|
98
123
|
// Re-create on every call — WASM memory.buffer is detached when memory grows,
|
|
99
124
|
// so a cached Uint8Array would silently read/write stale data.
|
|
100
125
|
function getHeapu8(exports) {
|
|
101
|
-
|
|
126
|
+
return new Uint8Array(exports.memory.buffer);
|
|
102
127
|
}
|
|
103
|
-
|
|
104
128
|
// >>> 0 keeps the accumulator unsigned; without it, tags whose first byte
|
|
105
129
|
// exceeds 0x7F would overflow into negative i32 territory after << 24.
|
|
106
130
|
function HB_TAG(str) {
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
131
|
+
return str.split('').reduce(function (a, ch) {
|
|
132
|
+
return ((a << 8) >>> 0) + ch.charCodeAt(0);
|
|
133
|
+
}, 0);
|
|
110
134
|
}
|
|
111
|
-
|
|
112
135
|
function pinAxisLocation(exports, input, face, axisName, value) {
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
value
|
|
118
|
-
);
|
|
119
|
-
if (!ok) {
|
|
120
|
-
throw new Error(`Failed to pin axis ${axisName} to ${value}`);
|
|
121
|
-
}
|
|
136
|
+
const ok = exports.hb_subset_input_pin_axis_location(input, face, HB_TAG(axisName), value);
|
|
137
|
+
if (!ok) {
|
|
138
|
+
throw new Error(`Failed to pin axis ${axisName} to ${value}`);
|
|
139
|
+
}
|
|
122
140
|
}
|
|
123
|
-
|
|
124
141
|
function setAxisRange(exports, input, face, axisName, value) {
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
value.min,
|
|
130
|
-
value.max,
|
|
131
|
-
value.default ?? NaN
|
|
132
|
-
);
|
|
133
|
-
if (!ok) {
|
|
134
|
-
throw new Error(`Failed to set axis range for ${axisName}`);
|
|
135
|
-
}
|
|
142
|
+
const ok = exports.hb_subset_input_set_axis_range(input, face, HB_TAG(axisName), value.min, value.max, value.default ?? NaN);
|
|
143
|
+
if (!ok) {
|
|
144
|
+
throw new Error(`Failed to set axis range for ${axisName}`);
|
|
145
|
+
}
|
|
136
146
|
}
|
|
137
|
-
|
|
138
147
|
// Tables unnecessary for web rendering — safe to drop unconditionally.
|
|
139
148
|
// gasp is only meaningful when hinting is present (which we strip above).
|
|
140
149
|
const DROP_TABLE_TAGS = ['DSIG', 'LTSH', 'VDMX', 'hdmx', 'gasp', 'PCLT'];
|
|
141
|
-
|
|
142
150
|
// Name IDs needed for web fonts: family (1), subfamily (2), full name (4),
|
|
143
151
|
// PostScript name (6). Copyright (0), unique ID (3), version (5), and
|
|
144
152
|
// everything above 6 are display/license metadata that browsers never read.
|
|
145
153
|
const KEEP_NAME_IDS = [1, 2, 4, 6];
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
);
|
|
160
|
-
exports.hb_set_clear(layoutFeatures);
|
|
161
|
-
exports.hb_set_invert(layoutFeatures);
|
|
162
|
-
|
|
163
|
-
// --- Strip hinting instructions (ignored by modern browsers) ---
|
|
164
|
-
const flags = exports.hb_subset_input_get_flags(input);
|
|
165
|
-
exports.hb_subset_input_set_flags(input, flags | HB_SUBSET_FLAGS_NO_HINTING);
|
|
166
|
-
|
|
167
|
-
// --- Keep only essential name table entries ---
|
|
168
|
-
const nameIdSet = exports.hb_subset_input_set(input, HB_SUBSET_SETS_NAME_ID);
|
|
169
|
-
exports.hb_set_clear(nameIdSet);
|
|
170
|
-
for (const id of KEEP_NAME_IDS) {
|
|
171
|
-
exports.hb_set_add(nameIdSet, id);
|
|
172
|
-
}
|
|
173
|
-
|
|
174
|
-
// --- Drop tables not needed for web rendering ---
|
|
175
|
-
const dropTableSet = exports.hb_subset_input_set(
|
|
176
|
-
input,
|
|
177
|
-
HB_SUBSET_SETS_DROP_TABLE_TAG
|
|
178
|
-
);
|
|
179
|
-
for (const tag of DROP_TABLE_TAGS) {
|
|
180
|
-
exports.hb_set_add(dropTableSet, HB_TAG(tag));
|
|
181
|
-
}
|
|
182
|
-
|
|
183
|
-
// --- Add unicode codepoints ---
|
|
184
|
-
const inputUnicodes = exports.hb_subset_input_unicode_set(input);
|
|
185
|
-
// Include codepoints from both NFC and NFD normalized forms so the
|
|
186
|
-
// subsetter covers precomposed and decomposed character variants.
|
|
187
|
-
// This guards against harfbuzz subsetter not always expanding
|
|
188
|
-
// codepoints to their NFC/NFD equivalents (harfbuzz issue #2283).
|
|
189
|
-
const nfc = text.normalize('NFC');
|
|
190
|
-
const nfd = text.normalize('NFD');
|
|
191
|
-
for (const c of nfc) {
|
|
192
|
-
exports.hb_set_add(inputUnicodes, c.codePointAt(0));
|
|
193
|
-
}
|
|
194
|
-
for (const c of nfd) {
|
|
195
|
-
exports.hb_set_add(inputUnicodes, c.codePointAt(0));
|
|
196
|
-
}
|
|
197
|
-
|
|
198
|
-
// --- Add explicit glyph IDs (from feature glyph collection) ---
|
|
199
|
-
if (glyphIds && glyphIds.length > 0) {
|
|
200
|
-
const glyphSet = exports.hb_subset_input_set(
|
|
201
|
-
input,
|
|
202
|
-
HB_SUBSET_SETS_GLYPH_INDEX
|
|
203
|
-
);
|
|
204
|
-
for (const gid of glyphIds) {
|
|
205
|
-
exports.hb_set_add(glyphSet, gid);
|
|
154
|
+
function configureSubsetInput(exports, input, face, text, glyphIds, variationAxes) {
|
|
155
|
+
// --- Retain all layout features ---
|
|
156
|
+
const layoutFeatures = exports.hb_subset_input_set(input, HB_SUBSET_SETS_LAYOUT_FEATURE_TAG);
|
|
157
|
+
exports.hb_set_clear(layoutFeatures);
|
|
158
|
+
exports.hb_set_invert(layoutFeatures);
|
|
159
|
+
// --- Strip hinting instructions (ignored by modern browsers) ---
|
|
160
|
+
const flags = exports.hb_subset_input_get_flags(input);
|
|
161
|
+
exports.hb_subset_input_set_flags(input, flags | HB_SUBSET_FLAGS_NO_HINTING);
|
|
162
|
+
// --- Keep only essential name table entries ---
|
|
163
|
+
const nameIdSet = exports.hb_subset_input_set(input, HB_SUBSET_SETS_NAME_ID);
|
|
164
|
+
exports.hb_set_clear(nameIdSet);
|
|
165
|
+
for (const id of KEEP_NAME_IDS) {
|
|
166
|
+
exports.hb_set_add(nameIdSet, id);
|
|
206
167
|
}
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
168
|
+
// --- Drop tables not needed for web rendering ---
|
|
169
|
+
const dropTableSet = exports.hb_subset_input_set(input, HB_SUBSET_SETS_DROP_TABLE_TAG);
|
|
170
|
+
for (const tag of DROP_TABLE_TAGS) {
|
|
171
|
+
exports.hb_set_add(dropTableSet, HB_TAG(tag));
|
|
172
|
+
}
|
|
173
|
+
// --- Add unicode codepoints ---
|
|
174
|
+
const inputUnicodes = exports.hb_subset_input_unicode_set(input);
|
|
175
|
+
// Include codepoints from both NFC and NFD normalized forms so the
|
|
176
|
+
// subsetter covers precomposed and decomposed character variants.
|
|
177
|
+
// This guards against harfbuzz subsetter not always expanding
|
|
178
|
+
// codepoints to their NFC/NFD equivalents (harfbuzz issue #2283).
|
|
179
|
+
const nfc = text.normalize('NFC');
|
|
180
|
+
const nfd = text.normalize('NFD');
|
|
181
|
+
for (const c of nfc) {
|
|
182
|
+
exports.hb_set_add(inputUnicodes, c.codePointAt(0));
|
|
183
|
+
}
|
|
184
|
+
for (const c of nfd) {
|
|
185
|
+
exports.hb_set_add(inputUnicodes, c.codePointAt(0));
|
|
186
|
+
}
|
|
187
|
+
// --- Add explicit glyph IDs (from feature glyph collection) ---
|
|
188
|
+
if (glyphIds && glyphIds.length > 0) {
|
|
189
|
+
const glyphSet = exports.hb_subset_input_set(input, HB_SUBSET_SETS_GLYPH_INDEX);
|
|
190
|
+
for (const gid of glyphIds) {
|
|
191
|
+
exports.hb_set_add(glyphSet, gid);
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
// --- Pin/reduce variation axes ---
|
|
195
|
+
if (variationAxes) {
|
|
196
|
+
for (const [axisName, value] of Object.entries(variationAxes)) {
|
|
197
|
+
if (typeof value === 'number') {
|
|
198
|
+
pinAxisLocation(exports, input, face, axisName, value);
|
|
199
|
+
}
|
|
200
|
+
else if (value && typeof value === 'object') {
|
|
201
|
+
setAxisRange(exports, input, face, axisName, value);
|
|
202
|
+
}
|
|
203
|
+
}
|
|
217
204
|
}
|
|
218
|
-
}
|
|
219
205
|
}
|
|
220
|
-
|
|
221
206
|
function extractSubsetFont(exports, subset) {
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
207
|
+
const result = exports.hb_face_reference_blob(subset);
|
|
208
|
+
const offset = exports.hb_blob_get_data(result, 0);
|
|
209
|
+
const subsetByteLength = exports.hb_blob_get_length(result);
|
|
210
|
+
if (subsetByteLength === 0) {
|
|
211
|
+
exports.hb_blob_destroy(result);
|
|
212
|
+
throw new Error('Failed to create subset font');
|
|
213
|
+
}
|
|
214
|
+
// Fresh view AFTER the WASM calls above — memory.buffer may have been
|
|
215
|
+
// detached by a grow during hb_face_reference_blob / hb_blob_get_data.
|
|
216
|
+
const heapu8 = getHeapu8(exports);
|
|
217
|
+
if (offset + subsetByteLength > heapu8.byteLength) {
|
|
218
|
+
exports.hb_blob_destroy(result);
|
|
219
|
+
throw new Error(`WASM returned out-of-bounds offset ${offset} + length ${subsetByteLength} (heap size ${heapu8.byteLength})`);
|
|
220
|
+
}
|
|
221
|
+
const subsetFont = Buffer.from(heapu8.subarray(offset, offset + subsetByteLength));
|
|
236
222
|
exports.hb_blob_destroy(result);
|
|
237
|
-
|
|
238
|
-
`WASM returned out-of-bounds offset ${offset} + length ${subsetByteLength} (heap size ${heapu8.byteLength})`
|
|
239
|
-
);
|
|
240
|
-
}
|
|
241
|
-
|
|
242
|
-
const subsetFont = Buffer.from(
|
|
243
|
-
heapu8.subarray(offset, offset + subsetByteLength)
|
|
244
|
-
);
|
|
245
|
-
exports.hb_blob_destroy(result);
|
|
246
|
-
return subsetFont;
|
|
223
|
+
return subsetFont;
|
|
247
224
|
}
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
)
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
// sfntCache routes woff2 decompression through the worker pool.
|
|
257
|
-
const ttf = await toSfnt(originalFont);
|
|
258
|
-
|
|
259
|
-
const inst = await acquireInstance();
|
|
260
|
-
const { exports } = inst;
|
|
261
|
-
let released = false;
|
|
262
|
-
try {
|
|
263
|
-
const fontBuffer = exports.malloc(ttf.byteLength);
|
|
264
|
-
// Fresh view — memory.buffer may have been detached by a prior malloc/grow.
|
|
265
|
-
getHeapu8(exports).set(new Uint8Array(ttf), fontBuffer);
|
|
266
|
-
|
|
267
|
-
const blob = exports.hb_blob_create(fontBuffer, ttf.byteLength, 2, 0, 0);
|
|
268
|
-
const face = exports.hb_face_create(blob, 0);
|
|
269
|
-
exports.hb_blob_destroy(blob);
|
|
270
|
-
|
|
271
|
-
const input = exports.hb_subset_input_create_or_fail();
|
|
272
|
-
if (input === 0) {
|
|
273
|
-
exports.hb_face_destroy(face);
|
|
274
|
-
exports.free(fontBuffer);
|
|
275
|
-
throw new Error('hb_subset_input_create_or_fail returned zero');
|
|
276
|
-
}
|
|
277
|
-
|
|
278
|
-
let subsetFont;
|
|
279
|
-
let subset = 0;
|
|
225
|
+
async function subsetFontWithGlyphs(originalFont, text, { targetFormat, glyphIds, variationAxes } = {}) {
|
|
226
|
+
// Reuse cached sfnt conversion when available (same buffer may have
|
|
227
|
+
// been converted by getFontInfo or collectFeatureGlyphIds already).
|
|
228
|
+
// sfntCache routes woff2 decompression through the worker pool.
|
|
229
|
+
const ttf = await (0, sfntCache_1.toSfnt)(originalFont);
|
|
230
|
+
const inst = await acquireInstance();
|
|
231
|
+
const { exports } = inst;
|
|
232
|
+
let released = false;
|
|
280
233
|
try {
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
234
|
+
const fontBuffer = exports.malloc(ttf.byteLength);
|
|
235
|
+
// Fresh view — memory.buffer may have been detached by a prior malloc/grow.
|
|
236
|
+
getHeapu8(exports).set(new Uint8Array(ttf), fontBuffer);
|
|
237
|
+
const blob = exports.hb_blob_create(fontBuffer, ttf.byteLength, 2, 0, 0);
|
|
238
|
+
const face = exports.hb_face_create(blob, 0);
|
|
239
|
+
exports.hb_blob_destroy(blob);
|
|
240
|
+
const input = exports.hb_subset_input_create_or_fail();
|
|
241
|
+
if (input === 0) {
|
|
242
|
+
exports.hb_face_destroy(face);
|
|
243
|
+
exports.free(fontBuffer);
|
|
244
|
+
throw new Error('hb_subset_input_create_or_fail returned zero');
|
|
245
|
+
}
|
|
246
|
+
let subsetFont;
|
|
247
|
+
let subset = 0;
|
|
248
|
+
try {
|
|
249
|
+
configureSubsetInput(exports, input, face, text, glyphIds, variationAxes);
|
|
250
|
+
subset = exports.hb_subset_or_fail(face, input);
|
|
251
|
+
if (subset === 0) {
|
|
252
|
+
throw new Error('hb_subset_or_fail returned zero');
|
|
253
|
+
}
|
|
254
|
+
subsetFont = extractSubsetFont(exports, subset);
|
|
255
|
+
}
|
|
256
|
+
finally {
|
|
257
|
+
// Clean up all WASM resources while we still own the instance.
|
|
258
|
+
if (subset)
|
|
259
|
+
exports.hb_face_destroy(subset);
|
|
260
|
+
exports.hb_subset_input_destroy(input);
|
|
261
|
+
exports.hb_face_destroy(face);
|
|
262
|
+
exports.free(fontBuffer);
|
|
263
|
+
}
|
|
264
|
+
// Instance is fully cleaned up — release it so other subsetting
|
|
265
|
+
// calls can proceed while we wait for the serialized WOFF2 step.
|
|
266
|
+
released = true;
|
|
267
|
+
releaseInstance(inst);
|
|
268
|
+
// Route woff2 compression to a worker thread (each spawns its own
|
|
269
|
+
// wawoff2 WASM instance). Non-woff2 formats use JS-based converters
|
|
270
|
+
// that are safe to call concurrently in the main thread.
|
|
271
|
+
return targetFormat === 'woff2'
|
|
272
|
+
? (0, fontConverter_1.convert)(subsetFont, targetFormat, 'truetype')
|
|
273
|
+
: fontverter.convert(subsetFont, targetFormat, 'truetype');
|
|
274
|
+
}
|
|
275
|
+
finally {
|
|
276
|
+
if (!released)
|
|
277
|
+
releaseInstance(inst);
|
|
295
278
|
}
|
|
296
|
-
|
|
297
|
-
// Instance is fully cleaned up — release it so other subsetting
|
|
298
|
-
// calls can proceed while we wait for the serialized WOFF2 step.
|
|
299
|
-
released = true;
|
|
300
|
-
releaseInstance(inst);
|
|
301
|
-
|
|
302
|
-
// Route woff2 compression to a worker thread (each spawns its own
|
|
303
|
-
// wawoff2 WASM instance). Non-woff2 formats use JS-based converters
|
|
304
|
-
// that are safe to call concurrently in the main thread.
|
|
305
|
-
return targetFormat === 'woff2'
|
|
306
|
-
? convertInWorker(subsetFont, targetFormat, 'truetype')
|
|
307
|
-
: fontverter.convert(subsetFont, targetFormat, 'truetype');
|
|
308
|
-
} finally {
|
|
309
|
-
if (!released) releaseInstance(inst);
|
|
310
|
-
}
|
|
311
279
|
}
|
|
312
|
-
|
|
313
280
|
// Pre-warm the WASM pool: call early to overlap compilation with other work.
|
|
314
281
|
subsetFontWithGlyphs.warmup = () => initPool();
|
|
315
|
-
|
|
316
282
|
module.exports = subsetFontWithGlyphs;
|
|
283
|
+
//# sourceMappingURL=subsetFontWithGlyphs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"subsetFontWithGlyphs.js","sourceRoot":"","sources":["../src/subsetFontWithGlyphs.ts"],"names":[],"mappings":"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"}
|