@vercel/og 0.10.0 → 0.11.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/dist/index.node.js
CHANGED
|
@@ -21139,11 +21139,11 @@ var FontDetector = class {
|
|
|
21139
21139
|
constructor() {
|
|
21140
21140
|
this.rangesByLang = {};
|
|
21141
21141
|
}
|
|
21142
|
-
async detect(text,
|
|
21143
|
-
await this.load(
|
|
21142
|
+
async detect(text, fonts2) {
|
|
21143
|
+
await this.load(fonts2);
|
|
21144
21144
|
const result = {};
|
|
21145
21145
|
for (const segment of text) {
|
|
21146
|
-
const lang = this.detectSegment(segment,
|
|
21146
|
+
const lang = this.detectSegment(segment, fonts2);
|
|
21147
21147
|
if (lang) {
|
|
21148
21148
|
result[lang] = result[lang] || "";
|
|
21149
21149
|
result[lang] += segment;
|
|
@@ -21151,8 +21151,8 @@ var FontDetector = class {
|
|
|
21151
21151
|
}
|
|
21152
21152
|
return result;
|
|
21153
21153
|
}
|
|
21154
|
-
detectSegment(segment,
|
|
21155
|
-
for (const font of
|
|
21154
|
+
detectSegment(segment, fonts2) {
|
|
21155
|
+
for (const font of fonts2) {
|
|
21156
21156
|
const range = this.rangesByLang[font];
|
|
21157
21157
|
if (range && checkSegmentInRange(segment, range)) {
|
|
21158
21158
|
return font;
|
|
@@ -21160,10 +21160,10 @@ var FontDetector = class {
|
|
|
21160
21160
|
}
|
|
21161
21161
|
return null;
|
|
21162
21162
|
}
|
|
21163
|
-
async load(
|
|
21163
|
+
async load(fonts2) {
|
|
21164
21164
|
let params = "";
|
|
21165
21165
|
const existingLang = Object.keys(this.rangesByLang);
|
|
21166
|
-
const langNeedsToLoad =
|
|
21166
|
+
const langNeedsToLoad = fonts2.filter((font) => !existingLang.includes(font));
|
|
21167
21167
|
if (langNeedsToLoad.length === 0) {
|
|
21168
21168
|
return;
|
|
21169
21169
|
}
|
|
@@ -21270,9 +21270,9 @@ var loadDynamicAsset = ({ emoji }) => {
|
|
|
21270
21270
|
return [];
|
|
21271
21271
|
try {
|
|
21272
21272
|
const textByFont = await detector.detect(text, names);
|
|
21273
|
-
const
|
|
21273
|
+
const fonts2 = Object.keys(textByFont);
|
|
21274
21274
|
const fontData2 = await Promise.all(
|
|
21275
|
-
|
|
21275
|
+
fonts2.map((font) => loadGoogleFont(font, textByFont[font]))
|
|
21276
21276
|
);
|
|
21277
21277
|
return fontData2.map((data, index) => ({
|
|
21278
21278
|
name: `satori_${codes[index]}_fallback_${text}`,
|
|
@@ -21334,19 +21334,27 @@ async function render(satori2, resvg, sharp, opts, defaultFonts, element) {
|
|
|
21334
21334
|
// src/index.node.ts
|
|
21335
21335
|
var satori = sI.default || sI;
|
|
21336
21336
|
var fontData = fs2.readFileSync(
|
|
21337
|
-
fileURLToPath(new URL("./
|
|
21337
|
+
fileURLToPath(new URL("./Geist-Regular.ttf", import.meta.url))
|
|
21338
21338
|
);
|
|
21339
21339
|
var resvg_wasm = fs2.readFileSync(
|
|
21340
21340
|
fileURLToPath(new URL("./resvg.wasm", import.meta.url))
|
|
21341
21341
|
);
|
|
21342
|
+
var fonts = [
|
|
21343
|
+
{
|
|
21344
|
+
name: "geist",
|
|
21345
|
+
data: fontData,
|
|
21346
|
+
weight: 400,
|
|
21347
|
+
style: "normal"
|
|
21348
|
+
}
|
|
21349
|
+
];
|
|
21342
21350
|
var initializedResvg = initWasm(resvg_wasm);
|
|
21343
21351
|
var _sharp;
|
|
21344
|
-
function getSharp() {
|
|
21352
|
+
async function getSharp() {
|
|
21345
21353
|
if (_sharp) {
|
|
21346
21354
|
return _sharp;
|
|
21347
21355
|
}
|
|
21348
21356
|
try {
|
|
21349
|
-
_sharp = (
|
|
21357
|
+
_sharp = (await import("sharp")).default;
|
|
21350
21358
|
} catch (e) {
|
|
21351
21359
|
return void 0;
|
|
21352
21360
|
}
|
|
@@ -21362,18 +21370,10 @@ var ImageResponse = class extends Response {
|
|
|
21362
21370
|
const result = new ReadableStream({
|
|
21363
21371
|
async start(controller) {
|
|
21364
21372
|
await initializedResvg;
|
|
21365
|
-
const fonts = [
|
|
21366
|
-
{
|
|
21367
|
-
name: "sans serif",
|
|
21368
|
-
data: fontData,
|
|
21369
|
-
weight: 700,
|
|
21370
|
-
style: "normal"
|
|
21371
|
-
}
|
|
21372
|
-
];
|
|
21373
21373
|
const result2 = await render(
|
|
21374
21374
|
satori,
|
|
21375
21375
|
resvg_wasm_exports,
|
|
21376
|
-
getSharp(),
|
|
21376
|
+
await getSharp(),
|
|
21377
21377
|
options,
|
|
21378
21378
|
fonts,
|
|
21379
21379
|
element
|
|
@@ -21395,7 +21395,7 @@ var ImageResponse = class extends Response {
|
|
|
21395
21395
|
};
|
|
21396
21396
|
async function unstable_createNodejsStream(element, options = {}) {
|
|
21397
21397
|
await initializedResvg;
|
|
21398
|
-
const
|
|
21398
|
+
const fonts2 = [
|
|
21399
21399
|
{
|
|
21400
21400
|
name: "sans serif",
|
|
21401
21401
|
data: fontData,
|
|
@@ -21406,9 +21406,9 @@ async function unstable_createNodejsStream(element, options = {}) {
|
|
|
21406
21406
|
const result = await render(
|
|
21407
21407
|
satori,
|
|
21408
21408
|
resvg_wasm_exports,
|
|
21409
|
-
getSharp(),
|
|
21409
|
+
await getSharp(),
|
|
21410
21410
|
options,
|
|
21411
|
-
|
|
21411
|
+
fonts2,
|
|
21412
21412
|
element
|
|
21413
21413
|
);
|
|
21414
21414
|
return Readable.from(Buffer.from(result));
|