@arcblock/did-connect-service 4.1.59 → 4.1.60
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/dist/og/font-fallback.d.ts +105 -0
- package/dist/og/font-fallback.d.ts.map +1 -0
- package/dist/og/font-fallback.js +170 -0
- package/dist/og/font-fallback.js.map +1 -0
- package/dist/og/font-subset.d.ts +4 -0
- package/dist/og/font-subset.d.ts.map +1 -1
- package/dist/og/font-subset.js +17 -12
- package/dist/og/font-subset.js.map +1 -1
- package/dist/og/generator.d.ts +2 -2
- package/dist/og/generator.d.ts.map +1 -1
- package/dist/og/generator.js +64 -10
- package/dist/og/generator.js.map +1 -1
- package/dist/og/node-font-files.d.ts +86 -0
- package/dist/og/node-font-files.d.ts.map +1 -0
- package/dist/og/node-font-files.js +280 -0
- package/dist/og/node-font-files.js.map +1 -0
- package/dist/og/subset-fonts.generated.d.ts +40 -6
- package/dist/og/subset-fonts.generated.d.ts.map +1 -1
- package/dist/og/subset-fonts.generated.js +24 -19
- package/dist/og/subset-fonts.generated.js.map +1 -1
- package/dist/og/tree-node.d.ts +11 -8
- package/dist/og/tree-node.d.ts.map +1 -1
- package/dist/og/tree-node.js +39 -109
- package/dist/og/tree-node.js.map +1 -1
- package/dist/og/worker.d.ts +42 -5
- package/dist/og/worker.d.ts.map +1 -1
- package/dist/og/worker.js +290 -92
- package/dist/og/worker.js.map +1 -1
- package/package.json +3 -3
- package/dist/http/security-headers.d.ts +0 -38
- package/dist/http/security-headers.d.ts.map +0 -1
- package/dist/http/security-headers.js +0 -67
- package/dist/http/security-headers.js.map +0 -1
package/dist/og/tree-node.d.ts
CHANGED
|
@@ -27,6 +27,10 @@
|
|
|
27
27
|
* fraction of the parse). A Bold subset is needed only when a full Bold
|
|
28
28
|
* exists. Otherwise — unknown font, missing file, uncovered text — the full
|
|
29
29
|
* fonts, as before (`fontSubset` on the event says which).
|
|
30
|
+
* - Fallbacks (ArcBlock/arc#8832): characters the Regular font lacks are drawn
|
|
31
|
+
* by other CJK families found NEXT TO it under the font-bucket file names
|
|
32
|
+
* (`node-font-files.ts`), chosen like the Worker (`font-fallback.ts`). The
|
|
33
|
+
* bundled face has none next to it, so the default renders as before.
|
|
30
34
|
*
|
|
31
35
|
* No wall-clock guard around satori/resvg here (`Resvg.render()` is one
|
|
32
36
|
* synchronous wasm call; a timer cannot interrupt it). Render cost is bounded
|
|
@@ -37,6 +41,7 @@
|
|
|
37
41
|
* (ArcBlock/arc#8746) if still wanted.
|
|
38
42
|
*/
|
|
39
43
|
import { type Logger } from "../logger.js";
|
|
44
|
+
import type { OgCjkFamily } from "./font-fallback.js";
|
|
40
45
|
import { type OgFontSubsetStatus } from "./font-subset.js";
|
|
41
46
|
import { type OgTreeRenderOptions } from "./tree.js";
|
|
42
47
|
/** Default deadline for waiting in the process render queue. */
|
|
@@ -51,8 +56,12 @@ export interface OgNodeRenderEvent {
|
|
|
51
56
|
template: "tree";
|
|
52
57
|
/** Weight 700 was requested but no Bold font could be loaded — drawn with Regular. */
|
|
53
58
|
boldFallback?: boolean;
|
|
54
|
-
/**
|
|
59
|
+
/** The primary font's subset used (`"hit"`), not covering what it draws (`"miss"`), or unavailable (`"absent"`). Always set by `renderOgTree`. */
|
|
55
60
|
fontSubset?: OgFontSubsetStatus;
|
|
61
|
+
/** Cross-script fallback fonts added after the primary (arc#8832), as the URL of each family's Regular file. */
|
|
62
|
+
fontFallbacks?: string[];
|
|
63
|
+
/** Fallback families the text needed but the render did not load (over budget, or files missing). */
|
|
64
|
+
fontFallbacksSkipped?: OgCjkFamily[];
|
|
56
65
|
}
|
|
57
66
|
export interface OgNodeTreeRenderOptions extends OgTreeRenderOptions {
|
|
58
67
|
/** Regular font URL. Defaults to `CONNECT_OG_FONT_URL`, then the bundled face. */
|
|
@@ -70,13 +79,7 @@ export interface OgNodeTreeRenderOptions extends OgTreeRenderOptions {
|
|
|
70
79
|
logger?: Logger;
|
|
71
80
|
observer?: (event: OgNodeRenderEvent) => void;
|
|
72
81
|
}
|
|
73
|
-
|
|
74
|
-
export declare function deriveBoldFontUrl(regularUrl: string | undefined): string | undefined;
|
|
75
|
-
/** `…/NotoSansSC-Regular.otf` → `…/subset-v1/NotoSansSC-Regular.otf` (and the file name). */
|
|
76
|
-
export declare function deriveSubsetFontUrl(url: string | undefined): {
|
|
77
|
-
url: string;
|
|
78
|
-
file: string;
|
|
79
|
-
} | undefined;
|
|
82
|
+
export { deriveBoldFontUrl, deriveSubsetFontUrl } from "./node-font-files.js";
|
|
80
83
|
/** Test isolation: forget cached Bold / subset bytes and re-arm the warnings. */
|
|
81
84
|
export declare function resetOgNodeTreeFontsForTesting(): void;
|
|
82
85
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tree-node.d.ts","sourceRoot":"","sources":["../../src/og/tree-node.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"tree-node.d.ts","sourceRoot":"","sources":["../../src/og/tree-node.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AAQH,OAAO,EAAiB,KAAK,MAAM,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAA2B,KAAK,kBAAkB,EAAwC,MAAM,kBAAkB,CAAC;AAe1H,OAAO,EAML,KAAK,mBAAmB,EAIzB,MAAM,WAAW,CAAC;AAEnB,gEAAgE;AAChE,eAAO,MAAM,yBAAyB,QAAS,CAAC;AAEhD,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,QAAQ,CAAC;IACtB,yEAAyE;IACzE,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,sFAAsF;IACtF,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,kJAAkJ;IAClJ,UAAU,CAAC,EAAE,kBAAkB,CAAC;IAChC,gHAAgH;IAChH,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,qGAAqG;IACrG,oBAAoB,CAAC,EAAE,WAAW,EAAE,CAAC;CACtC;AAED,MAAM,WAAW,uBAAwB,SAAQ,mBAAmB;IAClE,kFAAkF;IAClF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gGAAgG;IAChG,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,yEAAyE;IACzE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,+DAA+D;IAC/D,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IACzB,0FAA0F;IAC1F,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,+GAA+G;IAC/G,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,CAAC;CAC/C;AAED,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AA6E9E,iFAAiF;AACjF,wBAAgB,8BAA8B,IAAI,IAAI,CAIrD;AAED;;;;;GAKG;AACH,wBAAsB,YAAY,CAAC,OAAO,EAAE,uBAAuB,GAAG,OAAO,CAAC,UAAU,CAAC,CA+HxF"}
|
package/dist/og/tree-node.js
CHANGED
|
@@ -27,6 +27,10 @@
|
|
|
27
27
|
* fraction of the parse). A Bold subset is needed only when a full Bold
|
|
28
28
|
* exists. Otherwise — unknown font, missing file, uncovered text — the full
|
|
29
29
|
* fonts, as before (`fontSubset` on the event says which).
|
|
30
|
+
* - Fallbacks (ArcBlock/arc#8832): characters the Regular font lacks are drawn
|
|
31
|
+
* by other CJK families found NEXT TO it under the font-bucket file names
|
|
32
|
+
* (`node-font-files.ts`), chosen like the Worker (`font-fallback.ts`). The
|
|
33
|
+
* bundled face has none next to it, so the default renders as before.
|
|
30
34
|
*
|
|
31
35
|
* No wall-clock guard around satori/resvg here (`Resvg.render()` is one
|
|
32
36
|
* synchronous wasm call; a timer cannot interrupt it). Render cost is bounded
|
|
@@ -36,21 +40,22 @@
|
|
|
36
40
|
* Moving renders into `worker_threads` with a timeout is left to the host
|
|
37
41
|
* (ArcBlock/arc#8746) if still wanted.
|
|
38
42
|
*/
|
|
39
|
-
import {
|
|
40
|
-
import { existsSync, mkdirSync, readFileSync, rmSync, writeFileSync } from "node:fs";
|
|
43
|
+
import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
|
|
41
44
|
import { readFile } from "node:fs/promises";
|
|
42
45
|
import { createRequire } from "node:module";
|
|
43
46
|
import { tmpdir } from "node:os";
|
|
44
47
|
import { dirname, join } from "node:path";
|
|
45
48
|
import { fileURLToPath, pathToFileURL } from "node:url";
|
|
46
49
|
import { consoleLogger } from "../logger.js";
|
|
47
|
-
import {
|
|
50
|
+
import { collectOgTreeCodepoints, ogSubsetCovers } from "./font-subset.js";
|
|
48
51
|
import { FONT_FETCH_TIMEOUT_MS, FONT_PATH, loadFont } from "./generator.js";
|
|
49
52
|
import { resolveNodeOgConfig } from "./node-config.js";
|
|
53
|
+
import { deriveBoldFontUrl, deriveSubsetFontUrl, loadNodeFallbackFonts, loadSubsetFile, md5, nodeFallbackFamiliesWanted, nodeFontSetFor, resetOgNodeFontFilesForTesting, } from "./node-font-files.js";
|
|
50
54
|
import { rasterizeSvgToPngWithWasm } from "./node-wasm-fallback.js";
|
|
51
55
|
import { createSerialQueue, OG_RENDER_UNAVAILABLE_CODES, OG_TREE_ERROR_CODES, OgRenderUnavailableError, OgTreeRenderError, prepareOgTree, wantsBold, withTimeout, } from "./tree.js";
|
|
52
56
|
/** Default deadline for waiting in the process render queue. */
|
|
53
57
|
export const OG_NODE_QUEUE_MAX_WAIT_MS = 20_000;
|
|
58
|
+
export { deriveBoldFontUrl, deriveSubsetFontUrl } from "./node-font-files.js";
|
|
54
59
|
const serialRender = createSerialQueue();
|
|
55
60
|
let satoriReady;
|
|
56
61
|
/** One cached Bold result (keyed by its URL); a different URL replaces it. `null` = no Bold. */
|
|
@@ -75,19 +80,6 @@ function loadSatori() {
|
|
|
75
80
|
}
|
|
76
81
|
return satoriReady;
|
|
77
82
|
}
|
|
78
|
-
function md5(s) {
|
|
79
|
-
return createHash("md5").update(s).digest("hex");
|
|
80
|
-
}
|
|
81
|
-
/** `…Regular…` → `…Bold…` in the last path segment; undefined when the name has no Regular marker. */
|
|
82
|
-
export function deriveBoldFontUrl(regularUrl) {
|
|
83
|
-
if (!regularUrl)
|
|
84
|
-
return undefined;
|
|
85
|
-
const slash = regularUrl.lastIndexOf("/");
|
|
86
|
-
const head = regularUrl.slice(0, slash + 1);
|
|
87
|
-
const name = regularUrl.slice(slash + 1);
|
|
88
|
-
const bold = name.replace(/Regular/, "Bold").replace(/regular/, "bold");
|
|
89
|
-
return bold === name ? undefined : head + bold;
|
|
90
|
-
}
|
|
91
83
|
async function fetchFontBytes(url, fontCacheDir, fetchImpl) {
|
|
92
84
|
if (url.startsWith("file:"))
|
|
93
85
|
return readFile(fileURLToPath(url));
|
|
@@ -127,101 +119,16 @@ async function loadBold(explicitUrl, regularUrl, fontCacheDir, fetchImpl, logger
|
|
|
127
119
|
return null;
|
|
128
120
|
}
|
|
129
121
|
}
|
|
130
|
-
// ---------------------------------------------------------------------------
|
|
131
|
-
// Subset fonts (ArcBlock/arc#8800)
|
|
132
|
-
// ---------------------------------------------------------------------------
|
|
133
|
-
const SUBSET_DIR = OG_SUBSET_PREFIX.slice(OG_SUBSET_PREFIX.lastIndexOf("/") + 1);
|
|
134
|
-
/** `…/NotoSansSC-Regular.otf` → `…/subset-v1/NotoSansSC-Regular.otf` (and the file name). */
|
|
135
|
-
export function deriveSubsetFontUrl(url) {
|
|
136
|
-
if (!url)
|
|
137
|
-
return undefined;
|
|
138
|
-
let parsed;
|
|
139
|
-
try {
|
|
140
|
-
parsed = new URL(url);
|
|
141
|
-
}
|
|
142
|
-
catch {
|
|
143
|
-
return undefined;
|
|
144
|
-
}
|
|
145
|
-
const slash = parsed.pathname.lastIndexOf("/");
|
|
146
|
-
const name = parsed.pathname.slice(slash + 1);
|
|
147
|
-
if (!name)
|
|
148
|
-
return undefined;
|
|
149
|
-
parsed.pathname = `${parsed.pathname.slice(0, slash + 1)}${SUBSET_DIR}/${name}`;
|
|
150
|
-
let file;
|
|
151
|
-
try {
|
|
152
|
-
file = decodeURIComponent(name);
|
|
153
|
-
}
|
|
154
|
-
catch {
|
|
155
|
-
return undefined;
|
|
156
|
-
}
|
|
157
|
-
return { url: parsed.href, file };
|
|
158
|
-
}
|
|
159
|
-
/** Subset file bytes by URL; `null` = missing or not the build's bytes (cached). Errors are not cached. */
|
|
160
|
-
const subsetFiles = new Map();
|
|
161
|
-
let subsetMissingWarned = false;
|
|
162
|
-
async function readSubsetFile(url, fontCacheDir, fetchImpl) {
|
|
163
|
-
if (url.startsWith("file:")) {
|
|
164
|
-
try {
|
|
165
|
-
return await readFile(fileURLToPath(url));
|
|
166
|
-
}
|
|
167
|
-
catch (err) {
|
|
168
|
-
if (err.code === "ENOENT")
|
|
169
|
-
return null;
|
|
170
|
-
throw err;
|
|
171
|
-
}
|
|
172
|
-
}
|
|
173
|
-
const diskPath = join(fontCacheDir, `${md5(url)}.font`);
|
|
174
|
-
if (existsSync(diskPath))
|
|
175
|
-
return readFile(diskPath);
|
|
176
|
-
const res = await fetchImpl(url, { signal: AbortSignal.timeout(FONT_FETCH_TIMEOUT_MS) });
|
|
177
|
-
if (res.status === 404 || res.status === 403)
|
|
178
|
-
return null;
|
|
179
|
-
if (!res.ok)
|
|
180
|
-
throw new Error(`subset font fetch failed: ${res.status}`);
|
|
181
|
-
const buf = Buffer.from(await res.arrayBuffer());
|
|
182
|
-
mkdirSync(dirname(diskPath), { recursive: true });
|
|
183
|
-
writeFileSync(diskPath, buf);
|
|
184
|
-
return buf;
|
|
185
|
-
}
|
|
186
|
-
function loadSubsetFile(url, sha256, fontCacheDir, fetchImpl, logger) {
|
|
187
|
-
let entry = subsetFiles.get(url);
|
|
188
|
-
if (!entry) {
|
|
189
|
-
const created = readSubsetFile(url, fontCacheDir, fetchImpl).then(async (bytes) => {
|
|
190
|
-
const reason = !bytes ? "missing" : (await ogFontSha256(bytes)) !== sha256 ? "sha256 mismatch" : undefined;
|
|
191
|
-
if (!reason)
|
|
192
|
-
return bytes;
|
|
193
|
-
// A stale / corrupt download must not stay on disk for the next process.
|
|
194
|
-
if (bytes && !url.startsWith("file:"))
|
|
195
|
-
rmSync(join(fontCacheDir, `${md5(url)}.font`), { force: true });
|
|
196
|
-
if (!subsetMissingWarned) {
|
|
197
|
-
subsetMissingWarned = true;
|
|
198
|
-
logger.warn({ message: `[og] subset font ${reason}; rendering with the full font`, mod: "og" });
|
|
199
|
-
}
|
|
200
|
-
return null;
|
|
201
|
-
});
|
|
202
|
-
created.catch(() => {
|
|
203
|
-
if (subsetFiles.get(url) === created)
|
|
204
|
-
subsetFiles.delete(url);
|
|
205
|
-
});
|
|
206
|
-
subsetFiles.set(url, created);
|
|
207
|
-
entry = created;
|
|
208
|
-
}
|
|
209
|
-
return entry;
|
|
210
|
-
}
|
|
211
122
|
/** The subset set built from the Regular font at `regularUrl` (the bundled face when unset). */
|
|
212
123
|
function subsetPlanFor(regularUrl) {
|
|
213
|
-
const
|
|
214
|
-
|
|
215
|
-
return undefined;
|
|
216
|
-
const set = Object.values(ogSubsetFontSets()).find((candidate) => candidate.regular.file === derived.file);
|
|
217
|
-
return set ? { set, url: derived.url } : undefined;
|
|
124
|
+
const found = nodeFontSetFor(regularUrl);
|
|
125
|
+
return found ? { set: found.set, url: found.subsetUrl } : undefined;
|
|
218
126
|
}
|
|
219
127
|
/** Test isolation: forget cached Bold / subset bytes and re-arm the warnings. */
|
|
220
128
|
export function resetOgNodeTreeFontsForTesting() {
|
|
221
129
|
boldSlot = undefined;
|
|
222
130
|
boldMissingWarned = false;
|
|
223
|
-
|
|
224
|
-
subsetMissingWarned = false;
|
|
131
|
+
resetOgNodeFontFilesForTesting();
|
|
225
132
|
}
|
|
226
133
|
/**
|
|
227
134
|
* Renders a caller-built satori tree to PNG bytes. Rejects with an
|
|
@@ -241,8 +148,10 @@ export async function renderOgTree(options) {
|
|
|
241
148
|
const explicitBoldUrl = options.boldFontUrl ?? config.boldFontUrl;
|
|
242
149
|
const timeoutError = () => new OgRenderUnavailableError(OG_RENDER_UNAVAILABLE_CODES.fontTimeout, `font load exceeded ${fontTimeout}ms`);
|
|
243
150
|
const boldWanted = wantsBold(options.weights);
|
|
244
|
-
const
|
|
245
|
-
const
|
|
151
|
+
const resolvedRegularUrl = regularUrl ?? pathToFileURL(FONT_PATH).href;
|
|
152
|
+
const plan = subsetPlanFor(resolvedRegularUrl);
|
|
153
|
+
const codepoints = collectOgTreeCodepoints(tree);
|
|
154
|
+
const covered = plan ? ogSubsetCovers(plan.set, codepoints) : false;
|
|
246
155
|
/** Full Bold (cached), bounded by the font deadline. */
|
|
247
156
|
const fullBold = () => withTimeout(loadBold(explicitBoldUrl, regularUrl, fontCacheDir, fetchImpl, logger), fontTimeout, timeoutError);
|
|
248
157
|
/** Subset Regular (+ Bold), or null when the full fonts must be used. Errors ⇒ null for this render. */
|
|
@@ -256,7 +165,7 @@ export async function renderOgTree(options) {
|
|
|
256
165
|
return null;
|
|
257
166
|
if (!boldWanted)
|
|
258
167
|
return { regular, bold: null };
|
|
259
|
-
const boldSubset = deriveSubsetFontUrl(explicitBoldUrl ?? deriveBoldFontUrl(
|
|
168
|
+
const boldSubset = deriveSubsetFontUrl(explicitBoldUrl ?? deriveBoldFontUrl(resolvedRegularUrl));
|
|
260
169
|
if (plan.set.bold && boldSubset?.file === plan.set.bold.file) {
|
|
261
170
|
const bold = await load(boldSubset.url, plan.set.bold.sha256);
|
|
262
171
|
if (bold)
|
|
@@ -271,7 +180,18 @@ export async function renderOgTree(options) {
|
|
|
271
180
|
return null;
|
|
272
181
|
}
|
|
273
182
|
}
|
|
274
|
-
|
|
183
|
+
/** Cross-script fallbacks (arc#8832); a failure renders without them for this render. */
|
|
184
|
+
async function fallbackFonts(primaryBytes, primaryFull) {
|
|
185
|
+
try {
|
|
186
|
+
return await withTimeout(loadNodeFallbackFonts({ regularUrl: resolvedRegularUrl, primaryBytes, primaryFull, codepoints, bold: boldWanted, fontCacheDir, fetchImpl, logger }), fontTimeout, timeoutError);
|
|
187
|
+
}
|
|
188
|
+
catch (err) {
|
|
189
|
+
logger.warn({ message: "[og] fallback font load failed; rendering without fallbacks", mod: "og", err });
|
|
190
|
+
const wanted = { regularUrl: resolvedRegularUrl, primaryBytes, primaryFull, codepoints, bold: boldWanted };
|
|
191
|
+
return { fallbacks: [], skipped: nodeFallbackFamiliesWanted(wanted), degraded: true };
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
const { png, queueMs, fontReadMs, boldFallback, fontSubset, fallbacks } = await serialRender(async ({ queueMs }) => {
|
|
275
195
|
const satori = await loadSatori();
|
|
276
196
|
const fontStart = performance.now();
|
|
277
197
|
const subset = await subsetFonts();
|
|
@@ -286,6 +206,7 @@ export async function renderOgTree(options) {
|
|
|
286
206
|
logger.warn({ message: "[og] bold font missing; rendering weight 700 with the regular face", mod: "og" });
|
|
287
207
|
}
|
|
288
208
|
}
|
|
209
|
+
const fallbacks = await fallbackFonts(regular.byteLength + (bold?.byteLength ?? 0), !subset);
|
|
289
210
|
const fontReadMs = performance.now() - fontStart;
|
|
290
211
|
// Fresh ArrayBuffer copies per render: satori's parsed font objects are
|
|
291
212
|
// released with them instead of staying resident (same as the Worker).
|
|
@@ -295,6 +216,13 @@ export async function renderOgTree(options) {
|
|
|
295
216
|
];
|
|
296
217
|
if (bold)
|
|
297
218
|
fonts.push({ name: "Noto", data: copy(bold), weight: 700, style: "normal" });
|
|
219
|
+
// Fallback families after the primary, each under its own name (same as the Worker).
|
|
220
|
+
for (const fallback of fallbacks.fallbacks) {
|
|
221
|
+
const name = `Noto ${fallback.family}`;
|
|
222
|
+
fonts.push({ name, data: copy(fallback.regular), weight: 400, style: "normal" });
|
|
223
|
+
if (fallback.bold)
|
|
224
|
+
fonts.push({ name, data: copy(fallback.bold), weight: 700, style: "normal" });
|
|
225
|
+
}
|
|
298
226
|
let png;
|
|
299
227
|
try {
|
|
300
228
|
// No `loadAdditionalAsset`: og.png's emoji loader downloads glyphs, and a
|
|
@@ -310,7 +238,7 @@ export async function renderOgTree(options) {
|
|
|
310
238
|
// satori/resvg messages can quote the input; report a generic 400.
|
|
311
239
|
throw new OgTreeRenderError(OG_TREE_ERROR_CODES.renderFailed, "the tree could not be rendered");
|
|
312
240
|
}
|
|
313
|
-
return { png, queueMs, fontReadMs, boldFallback: boldWanted && !bold, fontSubset };
|
|
241
|
+
return { png, queueMs, fontReadMs, boldFallback: boldWanted && !bold, fontSubset, fallbacks };
|
|
314
242
|
}, { maxWaitMs: options.queueMaxWaitMs ?? OG_NODE_QUEUE_MAX_WAIT_MS });
|
|
315
243
|
options.observer?.({
|
|
316
244
|
locale: options.locale,
|
|
@@ -319,6 +247,8 @@ export async function renderOgTree(options) {
|
|
|
319
247
|
queueMs,
|
|
320
248
|
fontReadMs,
|
|
321
249
|
fontSubset,
|
|
250
|
+
...(fallbacks.fallbacks.length ? { fontFallbacks: fallbacks.fallbacks.map((f) => f.url) } : {}),
|
|
251
|
+
...(fallbacks.skipped.length ? { fontFallbacksSkipped: fallbacks.skipped } : {}),
|
|
322
252
|
template: "tree",
|
|
323
253
|
...(boldFallback ? { boldFallback: true } : {}),
|
|
324
254
|
});
|
package/dist/og/tree-node.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tree-node.js","sourceRoot":"","sources":["../../src/og/tree-node.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tree-node.js","sourceRoot":"","sources":["../../src/og/tree-node.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AAEH,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACxD,OAAO,EAAE,aAAa,EAAe,MAAM,cAAc,CAAC;AAE1D,OAAO,EAAE,uBAAuB,EAAiD,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC1H,OAAO,EAAE,qBAAqB,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC5E,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,qBAAqB,EACrB,cAAc,EACd,GAAG,EAEH,0BAA0B,EAC1B,cAAc,EACd,8BAA8B,GAC/B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,EACL,iBAAiB,EACjB,2BAA2B,EAC3B,mBAAmB,EACnB,wBAAwB,EACxB,iBAAiB,EAEjB,aAAa,EACb,SAAS,EACT,WAAW,GACZ,MAAM,WAAW,CAAC;AAEnB,gEAAgE;AAChE,MAAM,CAAC,MAAM,yBAAyB,GAAG,MAAM,CAAC;AAqChD,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAE9E,MAAM,YAAY,GAAG,iBAAiB,EAAE,CAAC;AACzC,IAAI,WAA4E,CAAC;AAEjF,gGAAgG;AAChG,IAAI,QAA2D,CAAC;AAChE,IAAI,iBAAiB,GAAG,KAAK,CAAC;AAE9B;;;;GAIG;AACH,SAAS,UAAU;IACjB,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,WAAW,GAAG,CAAC,KAAK,IAAI,EAAE;YACxB,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC,CAAC;YACpE,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC/C,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;YAC9D,OAAO,MAAM,CAAC;QAChB,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;YAC5B,WAAW,GAAG,SAAS,CAAC;YACxB,MAAM,KAAK,CAAC;QACd,CAAC,CAAC,CAAC;IACL,CAAC;IACD,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,KAAK,UAAU,cAAc,CAAC,GAAW,EAAE,YAAoB,EAAE,SAAuB;IACtF,IAAI,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC;QAAE,OAAO,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC;IACjE,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,EAAE,GAAG,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACxD,IAAI,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACpD,MAAM,GAAG,GAAG,MAAM,SAAS,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,qBAAqB,CAAC,EAAE,CAAC,CAAC;IACzF,IAAI,CAAC,GAAG,CAAC,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;IACjE,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;IACjD,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAClD,aAAa,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IAC7B,OAAO,GAAG,CAAC;AACb,CAAC;AAED,KAAK,UAAU,QAAQ,CACrB,WAA+B,EAC/B,UAA8B,EAC9B,YAAoB,EACpB,SAAuB,EACvB,MAAc;IAEd,MAAM,GAAG,GAAG,WAAW,IAAI,iBAAiB,CAAC,UAAU,CAAC,CAAC;IACzD,MAAM,GAAG,GAAG,GAAG,IAAI,kBAAkB,CAAC;IACtC,IAAI,QAAQ,EAAE,GAAG,KAAK,GAAG;QAAE,OAAO,QAAQ,CAAC,KAAK,CAAC;IACjD,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,QAAQ,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QAChC,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,MAAM,cAAc,CAAC,GAAG,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC;QACjE,QAAQ,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC;QAC1B,OAAO,KAAK,CAAC;IACf,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,4EAA4E;YAC5E,QAAQ,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;YAChC,OAAO,IAAI,CAAC;QACd,CAAC;QACD,wEAAwE;QACxE,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,wEAAwE,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;QACnH,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,gGAAgG;AAChG,SAAS,aAAa,CAAC,UAAkB;IACvC,MAAM,KAAK,GAAG,cAAc,CAAC,UAAU,CAAC,CAAC;IACzC,OAAO,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;AACtE,CAAC;AAED,iFAAiF;AACjF,MAAM,UAAU,8BAA8B;IAC5C,QAAQ,GAAG,SAAS,CAAC;IACrB,iBAAiB,GAAG,KAAK,CAAC;IAC1B,8BAA8B,EAAE,CAAC;AACnC,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,OAAgC;IACjE,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;IACpC,MAAM,IAAI,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;IACpC,MAAM,MAAM,GAAG,mBAAmB,EAAE,CAAC;IACrC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,aAAa,CAAC;IAC/C,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,KAAK,CAAC;IAC7C,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE,UAAU,CAAC,CAAC;IACxE,MAAM,WAAW,GAAG,OAAO,CAAC,iBAAiB,IAAI,qBAAqB,CAAC;IACvE,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC;IACrD,MAAM,eAAe,GAAG,OAAO,CAAC,WAAW,IAAI,MAAM,CAAC,WAAW,CAAC;IAClE,MAAM,YAAY,GAAG,GAAG,EAAE,CACxB,IAAI,wBAAwB,CAAC,2BAA2B,CAAC,WAAW,EAAE,sBAAsB,WAAW,IAAI,CAAC,CAAC;IAC/G,MAAM,UAAU,GAAG,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9C,MAAM,kBAAkB,GAAG,UAAU,IAAI,aAAa,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC;IACvE,MAAM,IAAI,GAAG,aAAa,CAAC,kBAAkB,CAAC,CAAC;IAC/C,MAAM,UAAU,GAAG,uBAAuB,CAAC,IAAI,CAAC,CAAC;IACjD,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAEpE,wDAAwD;IACxD,MAAM,QAAQ,GAAG,GAAG,EAAE,CACpB,WAAW,CAAC,QAAQ,CAAC,eAAe,EAAE,UAAU,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC;IAEjH,wGAAwG;IACxG,KAAK,UAAU,WAAW;QACxB,IAAI,CAAC,IAAI,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC;QACnC,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,CAAC,GAAW,EAAE,MAAc,EAAE,EAAE,CAC3C,WAAW,CAAC,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC;YACvG,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YAC9D,IAAI,CAAC,OAAO;gBAAE,OAAO,IAAI,CAAC;YAC1B,IAAI,CAAC,UAAU;gBAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;YAChD,MAAM,UAAU,GAAG,mBAAmB,CAAC,eAAe,IAAI,iBAAiB,CAAC,kBAAkB,CAAC,CAAC,CAAC;YACjG,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,UAAU,EAAE,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;gBAC7D,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAC9D,IAAI,IAAI;oBAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;YACrC,CAAC;YACD,wEAAwE;YACxE,2DAA2D;YAC3D,OAAO,CAAC,MAAM,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QAC7D,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,4DAA4D,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;YACvG,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,yFAAyF;IACzF,KAAK,UAAU,aAAa,CAAC,YAAoB,EAAE,WAAoB;QACrE,IAAI,CAAC;YACH,OAAO,MAAM,WAAW,CACtB,qBAAqB,CAAC,EAAE,UAAU,EAAE,kBAAkB,EAAE,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,EACnJ,WAAW,EACX,YAAY,CACb,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,6DAA6D,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;YACxG,MAAM,MAAM,GAAG,EAAE,UAAU,EAAE,kBAAkB,EAAE,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;YAC3G,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE,OAAO,EAAE,0BAA0B,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QACxF,CAAC;IACH,CAAC;IAED,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,MAAM,YAAY,CAC1F,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;QACpB,MAAM,MAAM,GAAG,MAAM,UAAU,EAAE,CAAC;QAClC,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;QACpC,MAAM,MAAM,GAAG,MAAM,WAAW,EAAE,CAAC;QACnC,MAAM,UAAU,GAAuB,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC;QAC7F,MAAM,OAAO,GACX,MAAM,EAAE,OAAO;YACf,CAAC,MAAM,WAAW,CAChB,QAAQ,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,EAC1F,WAAW,EACX,YAAY,CACb,CAAC,CAAC;QACL,IAAI,IAAI,GAAkB,IAAI,CAAC;QAC/B,IAAI,UAAU,EAAE,CAAC;YACf,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,QAAQ,EAAE,CAAC;YAC/C,IAAI,CAAC,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBAChC,iBAAiB,GAAG,IAAI,CAAC;gBACzB,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,oEAAoE,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;YAC5G,CAAC;QACH,CAAC;QACD,MAAM,SAAS,GAAG,MAAM,aAAa,CAAC,OAAO,CAAC,UAAU,GAAG,CAAC,IAAI,EAAE,UAAU,IAAI,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;QAC7F,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;QACjD,wEAAwE;QACxE,uEAAuE;QACvE,MAAM,IAAI,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,UAAU,CAAgB,CAAC;QACrG,MAAM,KAAK,GAAmF;YAC5F,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE;SACpE,CAAC;QACF,IAAI,IAAI;YAAE,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;QACvF,qFAAqF;QACrF,KAAK,MAAM,QAAQ,IAAI,SAAS,CAAC,SAAS,EAAE,CAAC;YAC3C,MAAM,IAAI,GAAG,QAAQ,QAAQ,CAAC,MAAM,EAAE,CAAC;YACvC,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;YACjF,IAAI,QAAQ,CAAC,IAAI;gBAAE,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;QACnG,CAAC;QACD,IAAI,GAAW,CAAC;QAChB,IAAI,CAAC;YACH,0EAA0E;YAC1E,6DAA6D;YAC7D,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,IAAoC,EAAE;gBAC7D,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,KAAK;aACN,CAAC,CAAC;YACH,GAAG,GAAG,MAAM,yBAAyB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QACtD,CAAC;QAAC,MAAM,CAAC;YACP,mEAAmE;YACnE,MAAM,IAAI,iBAAiB,CAAC,mBAAmB,CAAC,YAAY,EAAE,gCAAgC,CAAC,CAAC;QAClG,CAAC;QACD,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC;IAChG,CAAC,EACD,EAAE,SAAS,EAAE,OAAO,CAAC,cAAc,IAAI,yBAAyB,EAAE,CACnE,CAAC;IACF,OAAO,CAAC,QAAQ,EAAE,CAAC;QACjB,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,WAAW,EAAE,QAAQ;QACrB,UAAU,EAAE,WAAW,CAAC,GAAG,EAAE,GAAG,SAAS;QACzC,OAAO;QACP,UAAU;QACV,UAAU;QACV,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/F,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,oBAAoB,EAAE,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAChF,QAAQ,EAAE,MAAM;QAChB,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAChD,CAAC,CAAC;IACH,OAAO,IAAI,UAAU,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;AACpE,CAAC"}
|
package/dist/og/worker.d.ts
CHANGED
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
import { type Logger } from "../logger.js";
|
|
2
|
+
import { type OgCjkFamily } from "./font-fallback.js";
|
|
2
3
|
import { type OgFontSubsetStatus } from "./font-subset.js";
|
|
3
4
|
import { type OgTreeRenderOptions } from "./tree.js";
|
|
4
5
|
import type { OgGenerateOptions } from "./types.js";
|
|
6
|
+
export type { OgCjkFamily } from "./font-fallback.js";
|
|
7
|
+
export { OG_CJK_FALLBACK_PREFERENCE, OG_FONT_RENDER_BUDGET_BYTES } from "./font-fallback.js";
|
|
5
8
|
export type { OgFontSubsetStatus } from "./font-subset.js";
|
|
6
9
|
export { OG_SUBSET_FONTS, OG_SUBSET_PREFIX } from "./font-subset.js";
|
|
7
10
|
export type { OgImageInspection, OgImageKind, OgRenderUnavailableCode, OgTreeErrorCode, OgTreeImageStats, OgTreeNode, OgTreeRenderOptions, OgTreeWeight, } from "./tree.js";
|
|
@@ -64,8 +67,21 @@ export interface OgWorkerRenderEvent {
|
|
|
64
67
|
queueMs?: number;
|
|
65
68
|
/** Time spent loading fonts — I/O (≈0 when the raw-font slot already held them; includes first wasm init on a cold isolate). */
|
|
66
69
|
fontReadMs?: number;
|
|
67
|
-
/**
|
|
70
|
+
/**
|
|
71
|
+
* The PRIMARY (locale) font only: its subset used (`"hit"`), not covering the
|
|
72
|
+
* characters it draws (`"miss"`), or unavailable (`"absent"`) — renders only.
|
|
73
|
+
* See {@link OgFontSubsetStatus}. Characters the primary's full font does not
|
|
74
|
+
* have at all are drawn by fallbacks and do not make it a miss.
|
|
75
|
+
*/
|
|
68
76
|
fontSubset?: OgFontSubsetStatus;
|
|
77
|
+
/**
|
|
78
|
+
* Cross-script fallback fonts added after the primary (ArcBlock/arc#8832), in
|
|
79
|
+
* satori order, as the bucket key of each family's Regular object
|
|
80
|
+
* (`fonts/subset-v1/…` = its subset). Absent when the primary draws everything.
|
|
81
|
+
*/
|
|
82
|
+
fontFallbacks?: string[];
|
|
83
|
+
/** Fallback families the text needed but the render did not load (over the byte budget, or object missing). */
|
|
84
|
+
fontFallbacksSkipped?: OgCjkFamily[];
|
|
69
85
|
/** Weight 700 was requested but the Bold object is missing — drawn with Regular. */
|
|
70
86
|
boldFallback?: boolean;
|
|
71
87
|
/** `"tree"` for {@link OgWorkerRenderer.renderTree}; the template name for og.png renders. */
|
|
@@ -121,15 +137,30 @@ export interface OgWorkerTreeRenderOptions extends OgTreeRenderOptions, OgWorker
|
|
|
121
137
|
/** Defaults to the console logger. */
|
|
122
138
|
logger?: OgWorkerLogger;
|
|
123
139
|
}
|
|
140
|
+
/**
|
|
141
|
+
* Raw font bytes kept between renders (ArcBlock/did#300, arc#8832): an LRU of
|
|
142
|
+
* font objects by bucket key, bounded by {@link OG_WORKER_FONT_CACHE_BYTES}.
|
|
143
|
+
* A render may need more than one family (its locale's primary plus
|
|
144
|
+
* cross-script fallbacks, `font-fallback.ts`), so the cache is keyed by object,
|
|
145
|
+
* not by locale. The least recently used objects are dropped once the resident
|
|
146
|
+
* total exceeds the budget; a different bucket clears it. Objects that are
|
|
147
|
+
* missing (or fail their sha256 check) are remembered as `null` for
|
|
148
|
+
* {@link MISSING_RECHECK_MS}, then probed again.
|
|
149
|
+
*
|
|
150
|
+
* Parsed fonts are never kept: each render hands satori fresh copies (see
|
|
151
|
+
* `font-subset.ts` for why a resident parse would grow without bound).
|
|
152
|
+
*/
|
|
153
|
+
export declare const OG_WORKER_FONT_CACHE_BYTES: number;
|
|
124
154
|
export declare function normalizeOgLocale(locale: string | undefined): OgWorkerLocale;
|
|
125
155
|
/** Test isolation for exercising retry after a rejected initialization promise. */
|
|
126
156
|
export declare function resetOgWorkerWasmForTesting(): void;
|
|
127
|
-
/** Test isolation: drop the raw font
|
|
157
|
+
/** Test isolation: drop the raw font cache and re-arm the warnings. */
|
|
128
158
|
export declare function resetOgWorkerFontCacheForTesting(): void;
|
|
129
159
|
/**
|
|
130
|
-
* Introspection for tests/benchmarks:
|
|
131
|
-
*
|
|
132
|
-
* subset objects)
|
|
160
|
+
* Introspection for tests/benchmarks: the most recent render's locale and how
|
|
161
|
+
* many of its bytes are resident (`regularBytes` / `boldBytes`: its full
|
|
162
|
+
* fonts; `subset*`: its subset objects), plus every resident object
|
|
163
|
+
* (`totalBytes`, `keys`, least recently used first).
|
|
133
164
|
*/
|
|
134
165
|
export declare function getOgWorkerFontCacheStats(): Promise<{
|
|
135
166
|
locale?: OgWorkerLocale;
|
|
@@ -137,6 +168,8 @@ export declare function getOgWorkerFontCacheStats(): Promise<{
|
|
|
137
168
|
boldBytes: number;
|
|
138
169
|
subsetRegularBytes: number;
|
|
139
170
|
subsetBoldBytes: number;
|
|
171
|
+
totalBytes: number;
|
|
172
|
+
keys: string[];
|
|
140
173
|
}>;
|
|
141
174
|
/**
|
|
142
175
|
* Resolves a stored branding-logo asset to a satori/resvg-compatible data
|
|
@@ -159,6 +192,10 @@ export declare function resolveOgWorkerLogoDataUri(asset: OgWorkerLogoAsset | nu
|
|
|
159
192
|
* (`fonts/subset-v1/…`, ArcBlock/arc#8800) those are used instead — same
|
|
160
193
|
* pixels, a fraction of the parse; otherwise, or when the subset object is
|
|
161
194
|
* missing (one warning per isolate), the full fonts.
|
|
195
|
+
* - Characters the locale's full font does not have at all are drawn by
|
|
196
|
+
* cross-script fallback families added after it (arc#8832,
|
|
197
|
+
* `font-fallback.ts`; subset or full, within a per-render byte budget); a
|
|
198
|
+
* missing fallback object renders without it (one warning per isolate).
|
|
162
199
|
* - Runs inside the isolate-wide serial queue, so concurrent calls never
|
|
163
200
|
* parse fonts or grow the wasm heap in parallel.
|
|
164
201
|
* - No cache: callers version and cache the result themselves.
|
package/dist/og/worker.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../../src/og/worker.ts"],"names":[],"mappings":"AAEA,OAAO,EAAiB,KAAK,MAAM,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,
|
|
1
|
+
{"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../../src/og/worker.ts"],"names":[],"mappings":"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"}
|