@arcblock/did-connect-service 4.1.58 → 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/assets/fonts/subset-v1/noto-sans-sc-regular.otf +0 -0
- 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 +60 -0
- package/dist/og/font-subset.d.ts.map +1 -0
- package/dist/og/font-subset.js +271 -0
- package/dist/og/font-subset.js.map +1 -0
- package/dist/og/generator.d.ts +4 -2
- package/dist/og/generator.d.ts.map +1 -1
- package/dist/og/generator.js +66 -11
- 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 +104 -0
- package/dist/og/subset-fonts.generated.d.ts.map +1 -0
- package/dist/og/subset-fonts.generated.js +46 -0
- package/dist/og/subset-fonts.generated.js.map +1 -0
- package/dist/og/tree-node.d.ts +22 -3
- package/dist/og/tree-node.d.ts.map +1 -1
- package/dist/og/tree-node.js +87 -22
- package/dist/og/tree-node.js.map +1 -1
- package/dist/og/worker.d.ts +63 -4
- package/dist/og/worker.d.ts.map +1 -1
- package/dist/og/worker.js +339 -67
- package/dist/og/worker.js.map +1 -1
- package/package.json +3 -3
package/dist/og/worker.js
CHANGED
|
@@ -1,10 +1,14 @@
|
|
|
1
1
|
import stringify from "fast-json-stable-stringify";
|
|
2
2
|
import satori from "satori/standalone";
|
|
3
3
|
import { consoleLogger } from "../logger.js";
|
|
4
|
+
import { OG_CJK_FALLBACK_PREFERENCE, ogFallbackIgnorable, ogFontSetBytes, ogFontSetFits, planOgFontFallbacks, } from "./font-fallback.js";
|
|
5
|
+
import { collectOgTreeCodepoints, ogFontSha256, ogFullFontMaps, ogSubsetCovers, ogSubsetFontKey, ogSubsetFontSets, } from "./font-subset.js";
|
|
4
6
|
import { initializeRendererWasm, Resvg } from "./resvg-runtime.js";
|
|
5
7
|
import { prepareOgRender } from "./shared.js";
|
|
6
8
|
import { getTemplate } from "./templates.js";
|
|
7
9
|
import { createSerialQueue, OG_RENDER_UNAVAILABLE_CODES, OG_TREE_ERROR_CODES, OgRenderUnavailableError, OgTreeRenderError, ogImageMime, prepareOgTree, sniffOgImageKind, wantsBold, withTimeout, } from "./tree.js";
|
|
10
|
+
export { OG_CJK_FALLBACK_PREFERENCE, OG_FONT_RENDER_BUDGET_BYTES } from "./font-fallback.js";
|
|
11
|
+
export { OG_SUBSET_FONTS, OG_SUBSET_PREFIX } from "./font-subset.js";
|
|
8
12
|
export { inspectOgImage, OG_RENDER_UNAVAILABLE_CODES, OG_TREE_ERROR_CODES, OG_TREE_FONT_FAMILY, OG_TREE_LIMITS, OgRenderUnavailableError, OgTreeRenderError, sniffOgImageKind, validateOgTree, } from "./tree.js";
|
|
9
13
|
/** Default deadline for one font object read from the bucket. */
|
|
10
14
|
export const OG_FONT_READ_TIMEOUT_MS = 10_000;
|
|
@@ -32,8 +36,28 @@ export const OG_WORKER_BOLD_FONT_KEYS = {
|
|
|
32
36
|
const TRANSPARENT_PNG_DATA_URI = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=";
|
|
33
37
|
const CACHE_ORIGIN = "https://og-cache.invalid";
|
|
34
38
|
let wasmInitialization;
|
|
35
|
-
|
|
39
|
+
/**
|
|
40
|
+
* Raw font bytes kept between renders (ArcBlock/did#300, arc#8832): an LRU of
|
|
41
|
+
* font objects by bucket key, bounded by {@link OG_WORKER_FONT_CACHE_BYTES}.
|
|
42
|
+
* A render may need more than one family (its locale's primary plus
|
|
43
|
+
* cross-script fallbacks, `font-fallback.ts`), so the cache is keyed by object,
|
|
44
|
+
* not by locale. The least recently used objects are dropped once the resident
|
|
45
|
+
* total exceeds the budget; a different bucket clears it. Objects that are
|
|
46
|
+
* missing (or fail their sha256 check) are remembered as `null` for
|
|
47
|
+
* {@link MISSING_RECHECK_MS}, then probed again.
|
|
48
|
+
*
|
|
49
|
+
* Parsed fonts are never kept: each render hands satori fresh copies (see
|
|
50
|
+
* `font-subset.ts` for why a resident parse would grow without bound).
|
|
51
|
+
*/
|
|
52
|
+
export const OG_WORKER_FONT_CACHE_BYTES = 20 * 1024 * 1024;
|
|
53
|
+
const MISSING_RECHECK_MS = 5 * 60_000;
|
|
54
|
+
let cacheBucket;
|
|
55
|
+
const fontCache = new Map();
|
|
56
|
+
/** Locale of the most recent render (for {@link getOgWorkerFontCacheStats}). */
|
|
57
|
+
let lastLocale;
|
|
36
58
|
let boldMissingWarned = false;
|
|
59
|
+
let subsetMissingWarned = false;
|
|
60
|
+
let fallbackMissingWarned = false;
|
|
37
61
|
/** Every satori + resvg pass in this isolate runs through this FIFO queue. */
|
|
38
62
|
const serialRender = createSerialQueue();
|
|
39
63
|
export function normalizeOgLocale(locale) {
|
|
@@ -67,68 +91,251 @@ export function resetOgWorkerWasmForTesting() {
|
|
|
67
91
|
function readFontObject(bucket, key, timeoutMs) {
|
|
68
92
|
return withTimeout(bucket.get(key).then(async (object) => (object ? new Uint8Array(await object.arrayBuffer()) : null)), timeoutMs, () => new OgRenderUnavailableError(OG_RENDER_UNAVAILABLE_CODES.fontTimeout, `font read exceeded ${timeoutMs}ms`));
|
|
69
93
|
}
|
|
70
|
-
function
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
const
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
94
|
+
function evictOver(keep) {
|
|
95
|
+
let total = 0;
|
|
96
|
+
for (const entry of fontCache.values())
|
|
97
|
+
total += entry.bytes;
|
|
98
|
+
for (const [key, entry] of fontCache) {
|
|
99
|
+
if (total <= OG_WORKER_FONT_CACHE_BYTES)
|
|
100
|
+
break;
|
|
101
|
+
if (key === keep || entry.bytes === 0)
|
|
102
|
+
continue;
|
|
103
|
+
fontCache.delete(key);
|
|
104
|
+
total -= entry.bytes;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
/** `load()` through the LRU; a rejection is not cached, so the next render retries. */
|
|
108
|
+
function cachedFont(bucket, key, load) {
|
|
109
|
+
if (cacheBucket !== bucket) {
|
|
110
|
+
fontCache.clear();
|
|
111
|
+
cacheBucket = bucket;
|
|
112
|
+
}
|
|
113
|
+
const hit = fontCache.get(key);
|
|
114
|
+
fontCache.delete(key);
|
|
115
|
+
if (hit && (hit.missingAt === undefined || Date.now() - hit.missingAt < MISSING_RECHECK_MS)) {
|
|
116
|
+
fontCache.set(key, hit); // most recently used
|
|
117
|
+
return hit.promise;
|
|
118
|
+
}
|
|
119
|
+
const entry = { promise: Promise.resolve(null), bytes: 0 };
|
|
120
|
+
entry.promise = load().then((bytes) => {
|
|
121
|
+
if (fontCache.get(key) === entry) {
|
|
122
|
+
if (bytes) {
|
|
123
|
+
entry.bytes = bytes.byteLength;
|
|
124
|
+
evictOver(key);
|
|
125
|
+
}
|
|
126
|
+
else {
|
|
127
|
+
entry.missingAt = Date.now();
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
return bytes;
|
|
87
131
|
});
|
|
88
|
-
|
|
89
|
-
|
|
132
|
+
entry.promise.catch(() => {
|
|
133
|
+
if (fontCache.get(key) === entry)
|
|
134
|
+
fontCache.delete(key);
|
|
135
|
+
});
|
|
136
|
+
fontCache.set(key, entry);
|
|
137
|
+
return entry.promise;
|
|
138
|
+
}
|
|
139
|
+
/** A full font object, or `null` when it is missing from the bucket. */
|
|
140
|
+
function loadFullObject(bucket, key, timeoutMs) {
|
|
141
|
+
return cachedFont(bucket, key, () => readFontObject(bucket, key, timeoutMs));
|
|
90
142
|
}
|
|
91
|
-
/** Regular bytes for `locale
|
|
92
|
-
function loadRegularFont(bucket, locale, timeoutMs) {
|
|
93
|
-
|
|
143
|
+
/** Full Regular bytes for `locale` (the primary: missing is an error). */
|
|
144
|
+
async function loadRegularFont(bucket, locale, timeoutMs) {
|
|
145
|
+
const key = OG_WORKER_FONT_KEYS[locale];
|
|
146
|
+
const bytes = await loadFullObject(bucket, key, timeoutMs);
|
|
147
|
+
if (!bytes)
|
|
148
|
+
throw new Error(`OG font unavailable: ${key}`);
|
|
149
|
+
return bytes;
|
|
94
150
|
}
|
|
95
|
-
/** Bold bytes for `locale`, or `null` (warned once per isolate) when the object is missing. */
|
|
151
|
+
/** Full Bold bytes for `locale`, or `null` (warned once per isolate) when the object is missing. */
|
|
96
152
|
async function loadBoldFont(bucket, locale, logger, timeoutMs) {
|
|
97
|
-
const
|
|
98
|
-
|
|
99
|
-
const key = OG_WORKER_BOLD_FONT_KEYS[locale];
|
|
100
|
-
const bold = readFontObject(bucket, key, timeoutMs);
|
|
101
|
-
bold.catch(() => {
|
|
102
|
-
if (slot.bold === bold)
|
|
103
|
-
slot.bold = undefined;
|
|
104
|
-
});
|
|
105
|
-
slot.bold = bold;
|
|
106
|
-
}
|
|
107
|
-
const bytes = await slot.bold;
|
|
153
|
+
const key = OG_WORKER_BOLD_FONT_KEYS[locale];
|
|
154
|
+
const bytes = await loadFullObject(bucket, key, timeoutMs);
|
|
108
155
|
if (!bytes && !boldMissingWarned) {
|
|
109
156
|
boldMissingWarned = true;
|
|
110
157
|
logger.warn({
|
|
111
158
|
message: "[og] bold font missing; rendering weight 700 with the regular face",
|
|
112
159
|
mod: "og",
|
|
113
|
-
key
|
|
160
|
+
key,
|
|
114
161
|
locale,
|
|
115
162
|
});
|
|
116
163
|
}
|
|
117
164
|
return bytes;
|
|
118
165
|
}
|
|
119
|
-
/**
|
|
166
|
+
/** One subset object, or `null` when it is missing or not the build's bytes (warned once per isolate). */
|
|
167
|
+
function loadSubsetObject(bucket, file, locale, logger, timeoutMs) {
|
|
168
|
+
const key = ogSubsetFontKey(file.file);
|
|
169
|
+
return cachedFont(bucket, key, async () => {
|
|
170
|
+
const bytes = await readFontObject(bucket, key, timeoutMs);
|
|
171
|
+
const reason = !bytes ? "missing" : (await ogFontSha256(bytes)) !== file.sha256 ? "sha256 mismatch" : undefined;
|
|
172
|
+
if (!reason)
|
|
173
|
+
return bytes;
|
|
174
|
+
if (!subsetMissingWarned) {
|
|
175
|
+
subsetMissingWarned = true;
|
|
176
|
+
logger.warn({ message: `[og] subset font ${reason}; rendering with the full font`, mod: "og", key, locale });
|
|
177
|
+
}
|
|
178
|
+
return null;
|
|
179
|
+
});
|
|
180
|
+
}
|
|
181
|
+
/**
|
|
182
|
+
* Subset Regular (+ Bold when `bold`) of `locale`'s set, or `null` when there
|
|
183
|
+
* is no usable subset — every requested weight must be present, else the
|
|
184
|
+
* render uses the full fonts. A read error / timeout rejects like a full-font
|
|
185
|
+
* read (503), and the next render retries.
|
|
186
|
+
*/
|
|
187
|
+
async function loadSubsetFonts(bucket, locale, bold, logger, timeoutMs) {
|
|
188
|
+
const set = ogSubsetFontSets()[locale];
|
|
189
|
+
if (!set || (bold && !set.bold))
|
|
190
|
+
return null;
|
|
191
|
+
const regular = await loadSubsetObject(bucket, set.regular, locale, logger, timeoutMs);
|
|
192
|
+
if (!regular)
|
|
193
|
+
return null;
|
|
194
|
+
if (!bold)
|
|
195
|
+
return { regular, bold: null };
|
|
196
|
+
const boldBytes = await loadSubsetObject(bucket, set.bold, locale, logger, timeoutMs);
|
|
197
|
+
return boldBytes ? { regular, bold: boldBytes } : null;
|
|
198
|
+
}
|
|
199
|
+
/**
|
|
200
|
+
* Whether `codepoints` are covered by `locale`'s subset. A locale without a
|
|
201
|
+
* subset counts as covered, so the render reports `"absent"`, not `"miss"`.
|
|
202
|
+
*/
|
|
203
|
+
function coveredForLocale(locale, codepoints) {
|
|
204
|
+
const set = ogSubsetFontSets()[locale];
|
|
205
|
+
return !set || ogSubsetCovers(set, codepoints);
|
|
206
|
+
}
|
|
207
|
+
/** The fallback families this renderer can load (every CJK family the subset table describes). */
|
|
208
|
+
function fallbackCandidates() {
|
|
209
|
+
const sets = ogSubsetFontSets();
|
|
210
|
+
return OG_CJK_FALLBACK_PREFERENCE.flatMap((family) => (sets[family] ? [{ family, set: sets[family] }] : []));
|
|
211
|
+
}
|
|
212
|
+
/** Loads one planned fallback: its subset when planned and usable, else its full font (if still within budget). */
|
|
213
|
+
async function loadFallback(bucket, choice, bold, fullAllowed, logger, timeoutMs) {
|
|
214
|
+
if (choice.subset) {
|
|
215
|
+
const subset = await loadSubsetFonts(bucket, choice.family, bold, logger, timeoutMs);
|
|
216
|
+
if (subset)
|
|
217
|
+
return { key: ogSubsetFontKey(choice.set.regular.file), ...subset };
|
|
218
|
+
if (!fullAllowed)
|
|
219
|
+
return "over-budget";
|
|
220
|
+
}
|
|
221
|
+
const key = OG_WORKER_FONT_KEYS[choice.family];
|
|
222
|
+
const [regular, boldBytes] = await Promise.all([
|
|
223
|
+
loadFullObject(bucket, key, timeoutMs),
|
|
224
|
+
bold ? loadFullObject(bucket, OG_WORKER_BOLD_FONT_KEYS[choice.family], timeoutMs) : Promise.resolve(null),
|
|
225
|
+
]);
|
|
226
|
+
if (!regular) {
|
|
227
|
+
if (!fallbackMissingWarned) {
|
|
228
|
+
fallbackMissingWarned = true;
|
|
229
|
+
logger.warn({ message: "[og] fallback font missing; its characters render as .notdef", mod: "og", key, family: choice.family });
|
|
230
|
+
}
|
|
231
|
+
return "missing";
|
|
232
|
+
}
|
|
233
|
+
return { key, regular, bold: boldBytes };
|
|
234
|
+
}
|
|
235
|
+
/**
|
|
236
|
+
* The fonts for one render: the locale's subset when `covered` and available,
|
|
237
|
+
* else its full fonts (Bold only when `bold`); then the cross-script fallbacks
|
|
238
|
+
* planned from the ACTUAL primary bytes (`font-fallback.ts`).
|
|
239
|
+
*/
|
|
240
|
+
async function loadRenderFonts(bucket, locale, codepoints, covered, bold, logger, timeoutMs) {
|
|
241
|
+
lastLocale = locale;
|
|
242
|
+
let primary;
|
|
243
|
+
if (covered) {
|
|
244
|
+
const subset = await loadSubsetFonts(bucket, locale, bold, logger, timeoutMs);
|
|
245
|
+
if (subset)
|
|
246
|
+
primary = { ...subset, fontSubset: "hit" };
|
|
247
|
+
}
|
|
248
|
+
if (!primary) {
|
|
249
|
+
const [regular, boldBytes] = await Promise.all([
|
|
250
|
+
loadRegularFont(bucket, locale, timeoutMs),
|
|
251
|
+
bold ? loadBoldFont(bucket, locale, logger, timeoutMs) : Promise.resolve(null),
|
|
252
|
+
]);
|
|
253
|
+
primary = { regular, bold: boldBytes, fontSubset: covered ? "absent" : "miss" };
|
|
254
|
+
}
|
|
255
|
+
const fonts = { ...primary, fallbacks: [], skipped: [], degraded: false };
|
|
256
|
+
const primarySet = ogSubsetFontSets()[locale];
|
|
257
|
+
if (!primarySet)
|
|
258
|
+
return fonts;
|
|
259
|
+
const primaryBytes = primary.regular.byteLength + (primary.bold?.byteLength ?? 0);
|
|
260
|
+
const planPrimary = { primaryBytes, primaryFull: primary.fontSubset !== "hit", primaryCjk: locale !== "en" };
|
|
261
|
+
const plan = planOgFontFallbacks({
|
|
262
|
+
primary: primarySet,
|
|
263
|
+
...planPrimary,
|
|
264
|
+
codepoints,
|
|
265
|
+
candidates: fallbackCandidates(),
|
|
266
|
+
bold,
|
|
267
|
+
});
|
|
268
|
+
fonts.skipped.push(...plan.overBudget);
|
|
269
|
+
if (!plan.fallbacks.length)
|
|
270
|
+
return fonts;
|
|
271
|
+
// Planned subsets/fulls load in parallel; a planned subset whose object is
|
|
272
|
+
// unusable may then load its full font, one at a time, only while the whole
|
|
273
|
+
// set (with the upgrades accepted so far) still fits the budget.
|
|
274
|
+
const loaded = await Promise.all(plan.fallbacks.map((choice) => loadFallback(bucket, choice, bold, false, logger, timeoutMs)));
|
|
275
|
+
const effective = plan.fallbacks.map((c) => ({ subset: c.subset, bytes: c.bytes }));
|
|
276
|
+
for (const [i, choice] of plan.fallbacks.entries()) {
|
|
277
|
+
if (loaded[i] !== "over-budget")
|
|
278
|
+
continue;
|
|
279
|
+
fonts.degraded = true; // its subset object is missing / not the build's bytes
|
|
280
|
+
const asFull = effective.map((e, j) => (j === i ? { subset: false, bytes: ogFontSetBytes(choice.set, false, bold) } : e));
|
|
281
|
+
if (!ogFontSetFits(planPrimary, asFull))
|
|
282
|
+
continue;
|
|
283
|
+
loaded[i] = await loadFallback(bucket, { ...choice, subset: false }, bold, true, logger, timeoutMs);
|
|
284
|
+
if (typeof loaded[i] !== "string")
|
|
285
|
+
effective[i] = asFull[i];
|
|
286
|
+
}
|
|
287
|
+
plan.fallbacks.forEach((choice, i) => {
|
|
288
|
+
const result = loaded[i];
|
|
289
|
+
if (typeof result === "string") {
|
|
290
|
+
fonts.skipped.push(choice.family);
|
|
291
|
+
if (result === "missing")
|
|
292
|
+
fonts.degraded = true;
|
|
293
|
+
return;
|
|
294
|
+
}
|
|
295
|
+
// A missing fallback Bold draws 700 with its Regular: do not cache that for a year either.
|
|
296
|
+
if (bold && !result.bold)
|
|
297
|
+
fonts.degraded = true;
|
|
298
|
+
fonts.fallbacks.push({ family: choice.family, ...result });
|
|
299
|
+
});
|
|
300
|
+
return fonts;
|
|
301
|
+
}
|
|
302
|
+
/** Test isolation: drop the raw font cache and re-arm the warnings. */
|
|
120
303
|
export function resetOgWorkerFontCacheForTesting() {
|
|
121
|
-
|
|
304
|
+
fontCache.clear();
|
|
305
|
+
cacheBucket = undefined;
|
|
306
|
+
lastLocale = undefined;
|
|
122
307
|
boldMissingWarned = false;
|
|
308
|
+
subsetMissingWarned = false;
|
|
309
|
+
fallbackMissingWarned = false;
|
|
123
310
|
}
|
|
124
|
-
/**
|
|
311
|
+
/**
|
|
312
|
+
* Introspection for tests/benchmarks: the most recent render's locale and how
|
|
313
|
+
* many of its bytes are resident (`regularBytes` / `boldBytes`: its full
|
|
314
|
+
* fonts; `subset*`: its subset objects), plus every resident object
|
|
315
|
+
* (`totalBytes`, `keys`, least recently used first).
|
|
316
|
+
*/
|
|
125
317
|
export async function getOgWorkerFontCacheStats() {
|
|
126
|
-
const
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
const
|
|
130
|
-
|
|
131
|
-
|
|
318
|
+
const size = async (key) => key && fontCache.has(key) ? ((await fontCache.get(key).promise.catch(() => null))?.byteLength ?? 0) : 0;
|
|
319
|
+
const keys = [];
|
|
320
|
+
let totalBytes = 0;
|
|
321
|
+
for (const [key, entry] of fontCache) {
|
|
322
|
+
const bytes = await entry.promise.catch(() => null);
|
|
323
|
+
if (!bytes)
|
|
324
|
+
continue;
|
|
325
|
+
keys.push(key);
|
|
326
|
+
totalBytes += bytes.byteLength;
|
|
327
|
+
}
|
|
328
|
+
const locale = lastLocale;
|
|
329
|
+
const set = locale ? ogSubsetFontSets()[locale] : undefined;
|
|
330
|
+
return {
|
|
331
|
+
locale,
|
|
332
|
+
regularBytes: await size(locale && OG_WORKER_FONT_KEYS[locale]),
|
|
333
|
+
boldBytes: await size(locale && OG_WORKER_BOLD_FONT_KEYS[locale]),
|
|
334
|
+
subsetRegularBytes: await size(set && ogSubsetFontKey(set.regular.file)),
|
|
335
|
+
subsetBoldBytes: await size(set?.bold && ogSubsetFontKey(set.bold.file)),
|
|
336
|
+
totalBytes,
|
|
337
|
+
keys,
|
|
338
|
+
};
|
|
132
339
|
}
|
|
133
340
|
async function sha256(value) {
|
|
134
341
|
const bytes = new TextEncoder().encode(value);
|
|
@@ -173,21 +380,33 @@ export function resolveOgWorkerLogoDataUri(asset) {
|
|
|
173
380
|
// WebP (RIFF….WEBP) or anything else satori/resvg cannot rasterize.
|
|
174
381
|
return { skipped: "unsupported-format" };
|
|
175
382
|
}
|
|
383
|
+
/** satori font name of a fallback family (distinct from the trees' `Noto`, so weights match per family). */
|
|
384
|
+
const fallbackFontName = (family) => `Noto ${family}`;
|
|
176
385
|
/**
|
|
177
386
|
* satori → resvg for one tree. Callers hold the {@link serialRender} queue.
|
|
178
|
-
*
|
|
179
|
-
* garbage once this returns — only the raw bytes stay in
|
|
180
|
-
*
|
|
181
|
-
*
|
|
387
|
+
* The fonts are copied per render (`slice()`), so satori's parse of them is
|
|
388
|
+
* garbage once this returns — only the raw bytes stay in the font cache.
|
|
389
|
+
* satori gets the primary (`Noto`) first, then each fallback family under its
|
|
390
|
+
* own name: it draws every character with the first font that maps it.
|
|
391
|
+
* resvg gets the primary Regular only, as before: satori already turns tree
|
|
392
|
+
* text into paths, and resvg-wasm draws no text inside embedded SVG images
|
|
393
|
+
* whatever fonts it is given (og-font-fallback.test.ts), so a fallback buffer
|
|
394
|
+
* there would only grow its wasm heap.
|
|
182
395
|
*/
|
|
183
|
-
async function rasterizeTree(tree, width, height,
|
|
184
|
-
const
|
|
185
|
-
if (bold)
|
|
186
|
-
|
|
187
|
-
|
|
396
|
+
async function rasterizeTree(tree, width, height, fonts) {
|
|
397
|
+
const satoriFonts = [{ name: "Noto", data: fonts.regular.slice().buffer, weight: 400, style: "normal" }];
|
|
398
|
+
if (fonts.bold)
|
|
399
|
+
satoriFonts.push({ name: "Noto", data: fonts.bold.slice().buffer, weight: 700, style: "normal" });
|
|
400
|
+
for (const fallback of fonts.fallbacks) {
|
|
401
|
+
const name = fallbackFontName(fallback.family);
|
|
402
|
+
satoriFonts.push({ name, data: fallback.regular.slice().buffer, weight: 400, style: "normal" });
|
|
403
|
+
if (fallback.bold)
|
|
404
|
+
satoriFonts.push({ name, data: fallback.bold.slice().buffer, weight: 700, style: "normal" });
|
|
405
|
+
}
|
|
406
|
+
const svg = await satori(tree, { width, height, fonts: satoriFonts });
|
|
188
407
|
const resvg = new Resvg(svg, {
|
|
189
408
|
fitTo: { mode: "original" },
|
|
190
|
-
font: { fontBuffers: [regular], loadSystemFonts: false, defaultFontFamily: "Noto" },
|
|
409
|
+
font: { fontBuffers: [fonts.regular], loadSystemFonts: false, defaultFontFamily: "Noto" },
|
|
191
410
|
});
|
|
192
411
|
try {
|
|
193
412
|
const rendered = resvg.render();
|
|
@@ -202,6 +421,38 @@ async function rasterizeTree(tree, width, height, regular, bold) {
|
|
|
202
421
|
resvg.free();
|
|
203
422
|
}
|
|
204
423
|
}
|
|
424
|
+
/** The `og-render` fields describing the fallbacks of one render. */
|
|
425
|
+
function fallbackEventFields(fonts) {
|
|
426
|
+
return {
|
|
427
|
+
...(fonts.fallbacks.length ? { fontFallbacks: fonts.fallbacks.map((f) => f.key) } : {}),
|
|
428
|
+
...(fonts.skipped.length ? { fontFallbacksSkipped: [...new Set(fonts.skipped)] } : {}),
|
|
429
|
+
};
|
|
430
|
+
}
|
|
431
|
+
/**
|
|
432
|
+
* True when some text of an og.png template's params is missing from the
|
|
433
|
+
* locale's full font but another CJK family has it — the card renders with a
|
|
434
|
+
* fallback, which earlier renderers did not. Such cards get a distinct cache
|
|
435
|
+
* key, so a card cached before arc#8832 (drawn with .notdef) is not served.
|
|
436
|
+
* Every other card keeps its existing key.
|
|
437
|
+
*/
|
|
438
|
+
function paramsNeedFallback(locale, params) {
|
|
439
|
+
const primary = ogSubsetFontSets()[locale];
|
|
440
|
+
if (!primary)
|
|
441
|
+
return false;
|
|
442
|
+
const candidates = fallbackCandidates().filter((c) => c.set !== primary);
|
|
443
|
+
for (const value of Object.values(params)) {
|
|
444
|
+
if (typeof value !== "string" || value.startsWith("data:"))
|
|
445
|
+
continue;
|
|
446
|
+
for (const ch of value) {
|
|
447
|
+
const cp = ch.codePointAt(0);
|
|
448
|
+
if (cp < 0x80 || ogFallbackIgnorable(cp) || ogFullFontMaps(primary, cp))
|
|
449
|
+
continue;
|
|
450
|
+
if (candidates.some((c) => ogFullFontMaps(c.set, cp)))
|
|
451
|
+
return true;
|
|
452
|
+
}
|
|
453
|
+
}
|
|
454
|
+
return false;
|
|
455
|
+
}
|
|
205
456
|
/**
|
|
206
457
|
* Renders a caller-built satori tree to PNG (ArcBlock/did#300).
|
|
207
458
|
*
|
|
@@ -210,6 +461,14 @@ async function rasterizeTree(tree, width, height, regular, bold) {
|
|
|
210
461
|
* render with an `OgTreeRenderError` and nothing is fetched.
|
|
211
462
|
* - Fonts come from `fontBucket` by locale: Regular always, Bold when
|
|
212
463
|
* `weights` includes 700 (missing Bold ⇒ Regular + one warning per isolate).
|
|
464
|
+
* When every character of the tree is covered by the locale's subset fonts
|
|
465
|
+
* (`fonts/subset-v1/…`, ArcBlock/arc#8800) those are used instead — same
|
|
466
|
+
* pixels, a fraction of the parse; otherwise, or when the subset object is
|
|
467
|
+
* missing (one warning per isolate), the full fonts.
|
|
468
|
+
* - Characters the locale's full font does not have at all are drawn by
|
|
469
|
+
* cross-script fallback families added after it (arc#8832,
|
|
470
|
+
* `font-fallback.ts`; subset or full, within a per-render byte budget); a
|
|
471
|
+
* missing fallback object renders without it (one warning per isolate).
|
|
213
472
|
* - Runs inside the isolate-wide serial queue, so concurrent calls never
|
|
214
473
|
* parse fonts or grow the wasm heap in parallel.
|
|
215
474
|
* - No cache: callers version and cache the result themselves.
|
|
@@ -221,23 +480,24 @@ export async function renderOgTree(options) {
|
|
|
221
480
|
const logger = options.logger ?? consoleLogger;
|
|
222
481
|
const fontTimeout = options.fontReadTimeoutMs ?? OG_FONT_READ_TIMEOUT_MS;
|
|
223
482
|
const bold = wantsBold(options.weights);
|
|
224
|
-
const
|
|
483
|
+
const codepoints = collectOgTreeCodepoints(tree);
|
|
484
|
+
const covered = coveredForLocale(locale, codepoints);
|
|
485
|
+
const { body, queueMs, fontReadMs, fonts } = await serialRender(async ({ queueMs }) => {
|
|
225
486
|
const fontStart = performance.now();
|
|
226
|
-
const [
|
|
227
|
-
|
|
228
|
-
bold ? loadBoldFont(options.fontBucket, locale, logger, fontTimeout) : Promise.resolve(null),
|
|
487
|
+
const [fonts] = await Promise.all([
|
|
488
|
+
loadRenderFonts(options.fontBucket, locale, codepoints, covered, bold, logger, fontTimeout),
|
|
229
489
|
ensureWasm(),
|
|
230
490
|
]);
|
|
231
491
|
const fontReadMs = performance.now() - fontStart;
|
|
232
492
|
let body;
|
|
233
493
|
try {
|
|
234
|
-
body = await rasterizeTree(tree, options.width, options.height,
|
|
494
|
+
body = await rasterizeTree(tree, options.width, options.height, fonts);
|
|
235
495
|
}
|
|
236
496
|
catch {
|
|
237
497
|
// satori/resvg messages can quote the input; report a generic 400.
|
|
238
498
|
throw new OgTreeRenderError(OG_TREE_ERROR_CODES.renderFailed, "the tree could not be rendered");
|
|
239
499
|
}
|
|
240
|
-
return { body, queueMs, fontReadMs,
|
|
500
|
+
return { body, queueMs, fontReadMs, fonts };
|
|
241
501
|
}, { maxWaitMs: options.queueMaxWaitMs ?? OG_QUEUE_MAX_WAIT_MS });
|
|
242
502
|
options.observer?.({
|
|
243
503
|
locale,
|
|
@@ -245,8 +505,10 @@ export async function renderOgTree(options) {
|
|
|
245
505
|
durationMs: performance.now() - startedAt,
|
|
246
506
|
queueMs,
|
|
247
507
|
fontReadMs,
|
|
508
|
+
fontSubset: fonts.fontSubset,
|
|
509
|
+
...fallbackEventFields(fonts),
|
|
248
510
|
template: "tree",
|
|
249
|
-
...(bold && !
|
|
511
|
+
...(bold && !fonts.bold ? { boldFallback: true } : {}),
|
|
250
512
|
});
|
|
251
513
|
return body;
|
|
252
514
|
}
|
|
@@ -295,6 +557,8 @@ export function createOgWorkerRenderer(options) {
|
|
|
295
557
|
// changes supported/unsupported format.
|
|
296
558
|
logoHash,
|
|
297
559
|
params,
|
|
560
|
+
// Only cards drawn with a cross-script fallback (arc#8832) get a new key.
|
|
561
|
+
...(paramsNeedFallback(locale, params) ? { fontFallback: 1 } : {}),
|
|
298
562
|
}));
|
|
299
563
|
const cacheRequest = new Request(`${CACHE_ORIGIN}/${OG_WORKER_RENDERER_VERSION}/${cacheHash}`);
|
|
300
564
|
const cache = options.cache ?? defaultCache();
|
|
@@ -317,20 +581,26 @@ export function createOgWorkerRenderer(options) {
|
|
|
317
581
|
const { dataUri: logoDataUri, skipped: logoSkipped } = resolveOgWorkerLogoDataUri(logoAsset ?? undefined);
|
|
318
582
|
params.logo = logoDataUri ?? TRANSPARENT_PNG_DATA_URI;
|
|
319
583
|
const tree = await getTemplate(params);
|
|
320
|
-
const
|
|
584
|
+
const codepoints = collectOgTreeCodepoints(tree);
|
|
585
|
+
const covered = coveredForLocale(locale, codepoints);
|
|
586
|
+
const logger = options.logger ?? consoleLogger;
|
|
587
|
+
const { body, queueMs, fontReadMs, fonts } = await serialRender(async ({ queueMs }) => {
|
|
321
588
|
const fontStart = performance.now();
|
|
322
|
-
const [
|
|
323
|
-
|
|
589
|
+
const [fonts] = await Promise.all([
|
|
590
|
+
loadRenderFonts(options.fontBucket, locale, codepoints, covered, false, logger, options.fontReadTimeoutMs ?? OG_FONT_READ_TIMEOUT_MS),
|
|
324
591
|
ensureWasm(),
|
|
325
592
|
]);
|
|
326
593
|
const fontReadMs = performance.now() - fontStart;
|
|
327
|
-
|
|
594
|
+
const body = await rasterizeTree(tree, params.width, params.height, fonts);
|
|
595
|
+
return { body, queueMs, fontReadMs, fonts };
|
|
328
596
|
}, { maxWaitMs: options.queueMaxWaitMs ?? OG_QUEUE_MAX_WAIT_MS });
|
|
329
597
|
const responseBody = body.slice().buffer;
|
|
330
598
|
const response = new Response(responseBody, {
|
|
331
599
|
headers: { "Content-Type": "image/png", "Cache-Control": "public, max-age=31536000, immutable" },
|
|
332
600
|
});
|
|
333
|
-
|
|
601
|
+
// A card missing a fallback object would be cached for a year as drawn
|
|
602
|
+
// now (with .notdef): serve it, but render again until the object exists.
|
|
603
|
+
if (!prepared.nocache && !fonts.degraded) {
|
|
334
604
|
try {
|
|
335
605
|
await cache.put(cacheRequest, response.clone());
|
|
336
606
|
}
|
|
@@ -345,6 +615,8 @@ export function createOgWorkerRenderer(options) {
|
|
|
345
615
|
durationMs: performance.now() - startedAt,
|
|
346
616
|
queueMs,
|
|
347
617
|
fontReadMs,
|
|
618
|
+
fontSubset: fonts.fontSubset,
|
|
619
|
+
...fallbackEventFields(fonts),
|
|
348
620
|
template: params.template,
|
|
349
621
|
...(logoSkipped ? { logoSkipped } : {}),
|
|
350
622
|
});
|
package/dist/og/worker.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worker.js","sourceRoot":"","sources":["../../src/og/worker.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"worker.js","sourceRoot":"","sources":["../../src/og/worker.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@arcblock/did-connect-service",
|
|
3
|
-
"version": "4.1.
|
|
3
|
+
"version": "4.1.60",
|
|
4
4
|
"description": "Multi-runtime authentication service framework — Passkey, DID Connect, OAuth, Email, Team, RBAC",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -61,8 +61,8 @@
|
|
|
61
61
|
"sharp": "^0.35.5",
|
|
62
62
|
"ufo": "^1.6.4",
|
|
63
63
|
"valibot": "^1.4.2",
|
|
64
|
-
"@arcblock/did-connect-core": "^4.1.
|
|
65
|
-
"@arcblock/did-connect-js": "^4.1.
|
|
64
|
+
"@arcblock/did-connect-core": "^4.1.60",
|
|
65
|
+
"@arcblock/did-connect-js": "^4.1.60"
|
|
66
66
|
},
|
|
67
67
|
"optionalDependencies": {
|
|
68
68
|
"@aigne/afs": "^1.11.0-beta.13"
|