@remotion/google-fonts 4.0.516 → 4.0.518
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/cjs/AlanSans.d.ts +9 -1
- package/dist/cjs/AlanSans.js +24 -16
- package/dist/cjs/AsapSharp.d.ts +131 -0
- package/dist/cjs/AsapSharp.js +118 -0
- package/dist/cjs/CaacupeOne.d.ts +38 -0
- package/dist/cjs/CaacupeOne.js +29 -0
- package/dist/cjs/HiburMono.js +4 -4
- package/dist/cjs/LINESeedJP.js +497 -497
- package/dist/cjs/MaShanZheng.js +93 -93
- package/dist/cjs/Murecho.js +1081 -1081
- package/dist/cjs/NotoSansBatak.js +4 -4
- package/dist/cjs/NotoSansMiao.js +4 -4
- package/dist/cjs/Onest.d.ts +31 -1
- package/dist/cjs/Onest.js +76 -38
- package/dist/cjs/Qahiri.js +3 -3
- package/dist/cjs/SawarabiGothic.js +122 -122
- package/dist/cjs/ScoutieSans.d.ts +111 -0
- package/dist/cjs/ScoutieSans.js +98 -0
- package/dist/cjs/ValleySans.d.ts +112 -0
- package/dist/cjs/ValleySans.js +99 -0
- package/dist/cjs/Yuyu.js +3 -3
- package/dist/cjs/YuyuShort.js +3 -3
- package/dist/cjs/index.js +20 -0
- package/dist/esm/AlanSans.mjs +24 -16
- package/dist/esm/AsapSharp.mjs +256 -0
- package/dist/esm/CaacupeOne.mjs +167 -0
- package/dist/esm/HiburMono.mjs +4 -4
- package/dist/esm/LINESeedJP.mjs +497 -497
- package/dist/esm/MaShanZheng.mjs +93 -93
- package/dist/esm/Murecho.mjs +1081 -1081
- package/dist/esm/NotoSansBatak.mjs +4 -4
- package/dist/esm/NotoSansMiao.mjs +4 -4
- package/dist/esm/Onest.mjs +76 -38
- package/dist/esm/Qahiri.mjs +3 -3
- package/dist/esm/SawarabiGothic.mjs +122 -122
- package/dist/esm/ScoutieSans.mjs +236 -0
- package/dist/esm/ValleySans.mjs +237 -0
- package/dist/esm/Yuyu.mjs +3 -3
- package/dist/esm/YuyuShort.mjs +3 -3
- package/dist/esm/index.mjs +20 -0
- package/package.json +14 -2
|
@@ -0,0 +1,236 @@
|
|
|
1
|
+
// src/base.ts
|
|
2
|
+
import { continueRender, delayRender } from "remotion";
|
|
3
|
+
import { NoReactInternals } from "remotion/no-react";
|
|
4
|
+
|
|
5
|
+
// src/resolve-font-subsets.ts
|
|
6
|
+
var isChunkSubset = (subset) => /^\[\d+\]$/.test(subset);
|
|
7
|
+
var compareChunkSubsets = (a, b) => {
|
|
8
|
+
return Number(a.slice(1, -1)) - Number(b.slice(1, -1));
|
|
9
|
+
};
|
|
10
|
+
var resolveFontSubsetKeys = ({
|
|
11
|
+
availableSubsetKeys,
|
|
12
|
+
metaSubsets,
|
|
13
|
+
requestedSubset
|
|
14
|
+
}) => {
|
|
15
|
+
if (availableSubsetKeys.includes(requestedSubset)) {
|
|
16
|
+
return [requestedSubset];
|
|
17
|
+
}
|
|
18
|
+
if (!metaSubsets.includes(requestedSubset)) {
|
|
19
|
+
return [requestedSubset];
|
|
20
|
+
}
|
|
21
|
+
const chunkSubsets = availableSubsetKeys.filter(isChunkSubset).sort(compareChunkSubsets);
|
|
22
|
+
return chunkSubsets.length === 0 ? [requestedSubset] : chunkSubsets;
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
// src/base.ts
|
|
26
|
+
var loadedFonts = {};
|
|
27
|
+
var withResolvers = function() {
|
|
28
|
+
let resolve;
|
|
29
|
+
let reject;
|
|
30
|
+
const promise = new Promise((res, rej) => {
|
|
31
|
+
resolve = res;
|
|
32
|
+
reject = rej;
|
|
33
|
+
});
|
|
34
|
+
return { promise, resolve, reject };
|
|
35
|
+
};
|
|
36
|
+
var loadFontFaceOrTimeoutAfter20Seconds = (fontFace) => {
|
|
37
|
+
const timeout = withResolvers();
|
|
38
|
+
const int = setTimeout(() => {
|
|
39
|
+
timeout.reject(new Error("Timed out loading Google Font"));
|
|
40
|
+
}, 18000);
|
|
41
|
+
return Promise.race([
|
|
42
|
+
fontFace.load().then(() => {
|
|
43
|
+
clearTimeout(int);
|
|
44
|
+
}),
|
|
45
|
+
timeout.promise
|
|
46
|
+
]);
|
|
47
|
+
};
|
|
48
|
+
var loadFonts = (meta, style, options) => {
|
|
49
|
+
const weightsAndSubsetsAreSpecified = Array.isArray(options?.weights) && Array.isArray(options?.subsets) && options.weights.length > 0 && options.subsets.length > 0;
|
|
50
|
+
if (NoReactInternals.ENABLE_V5_BREAKING_CHANGES && !weightsAndSubsetsAreSpecified) {
|
|
51
|
+
throw new Error("Loading Google Fonts without specifying weights and subsets is not supported in Remotion v5. Please specify the weights and subsets you need.");
|
|
52
|
+
}
|
|
53
|
+
const promises = [];
|
|
54
|
+
const styles = style ? [style] : Object.keys(meta.fonts);
|
|
55
|
+
let fontsLoaded = 0;
|
|
56
|
+
for (const style2 of styles) {
|
|
57
|
+
if (typeof FontFace === "undefined") {
|
|
58
|
+
continue;
|
|
59
|
+
}
|
|
60
|
+
if (!meta.fonts[style2]) {
|
|
61
|
+
throw new Error(`The font ${meta.fontFamily} does not have a style ${style2}`);
|
|
62
|
+
}
|
|
63
|
+
const weights = options?.weights ?? Object.keys(meta.fonts[style2]);
|
|
64
|
+
for (const weight of weights) {
|
|
65
|
+
if (!meta.fonts[style2][weight]) {
|
|
66
|
+
throw new Error(`The font ${meta.fontFamily} does not have a weight ${weight} in style ${style2}`);
|
|
67
|
+
}
|
|
68
|
+
const requestedSubsets = options?.subsets ?? Object.keys(meta.fonts[style2][weight]);
|
|
69
|
+
const availableSubsetKeys = Object.keys(meta.fonts[style2][weight]);
|
|
70
|
+
const subsets = [
|
|
71
|
+
...new Set(requestedSubsets.flatMap((requestedSubset) => resolveFontSubsetKeys({
|
|
72
|
+
availableSubsetKeys,
|
|
73
|
+
metaSubsets: meta.subsets,
|
|
74
|
+
requestedSubset
|
|
75
|
+
})))
|
|
76
|
+
];
|
|
77
|
+
for (const subset of subsets) {
|
|
78
|
+
let font = meta.fonts[style2]?.[weight]?.[subset];
|
|
79
|
+
if (!font) {
|
|
80
|
+
throw new Error(`weight: ${weight} subset: ${subset} is not available for '${meta.fontFamily}'`);
|
|
81
|
+
}
|
|
82
|
+
let fontKey = `${meta.fontFamily}-${style2}-${weight}-${subset}`;
|
|
83
|
+
const previousPromise = loadedFonts[fontKey];
|
|
84
|
+
if (previousPromise) {
|
|
85
|
+
promises.push(previousPromise);
|
|
86
|
+
continue;
|
|
87
|
+
}
|
|
88
|
+
const baseLabel = `Fetching ${meta.fontFamily} font ${JSON.stringify({
|
|
89
|
+
style: style2,
|
|
90
|
+
weight,
|
|
91
|
+
subset
|
|
92
|
+
})}`;
|
|
93
|
+
const label = weightsAndSubsetsAreSpecified ? baseLabel : `${baseLabel}. This might be caused by loading too many font variations. Read more: https://www.remotion.dev/docs/troubleshooting/font-loading-errors#render-timeout-when-loading-google-fonts`;
|
|
94
|
+
const handle = delayRender(label, { timeoutInMilliseconds: 60000 });
|
|
95
|
+
fontsLoaded++;
|
|
96
|
+
const fontFace = new FontFace(meta.fontFamily, `url(${font}) format('woff2')`, {
|
|
97
|
+
weight,
|
|
98
|
+
style: style2,
|
|
99
|
+
unicodeRange: meta.unicodeRanges[subset]
|
|
100
|
+
});
|
|
101
|
+
let attempts = 2;
|
|
102
|
+
const tryToLoad = () => {
|
|
103
|
+
if (fontFace.status === "loaded") {
|
|
104
|
+
continueRender(handle);
|
|
105
|
+
return;
|
|
106
|
+
}
|
|
107
|
+
const promise = loadFontFaceOrTimeoutAfter20Seconds(fontFace).then(() => {
|
|
108
|
+
(options?.document ?? document).fonts.add(fontFace);
|
|
109
|
+
continueRender(handle);
|
|
110
|
+
}).catch((err) => {
|
|
111
|
+
loadedFonts[fontKey] = undefined;
|
|
112
|
+
if (attempts === 0) {
|
|
113
|
+
throw err;
|
|
114
|
+
} else {
|
|
115
|
+
attempts--;
|
|
116
|
+
tryToLoad();
|
|
117
|
+
}
|
|
118
|
+
});
|
|
119
|
+
loadedFonts[fontKey] = promise;
|
|
120
|
+
promises.push(promise);
|
|
121
|
+
};
|
|
122
|
+
tryToLoad();
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
if (fontsLoaded > 20 && !options?.ignoreTooManyRequestsWarning) {
|
|
126
|
+
console.warn(`Made ${fontsLoaded} network requests to load fonts for ${meta.fontFamily}. Consider loading fewer weights and subsets by passing options to loadFont(). Disable this warning by passing "ignoreTooManyRequestsWarning: true" to "options".`);
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
return {
|
|
130
|
+
fontFamily: meta.fontFamily,
|
|
131
|
+
fonts: meta.fonts,
|
|
132
|
+
unicodeRanges: meta.unicodeRanges,
|
|
133
|
+
waitUntilDone: () => Promise.all(promises).then(() => {
|
|
134
|
+
return;
|
|
135
|
+
})
|
|
136
|
+
};
|
|
137
|
+
};
|
|
138
|
+
|
|
139
|
+
// src/ScoutieSans.ts
|
|
140
|
+
var getInfo = () => ({
|
|
141
|
+
fontFamily: "Scoutie Sans",
|
|
142
|
+
importName: "ScoutieSans",
|
|
143
|
+
version: "v1",
|
|
144
|
+
url: "https://fonts.googleapis.com/css2?family=Scoutie+Sans:ital,wght@0,200;0,300;0,400;0,500;0,600;0,700;0,800;1,200;1,300;1,400;1,500;1,600;1,700;1,800",
|
|
145
|
+
unicodeRanges: {
|
|
146
|
+
vietnamese: "U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB",
|
|
147
|
+
"latin-ext": "U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF",
|
|
148
|
+
latin: "U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD"
|
|
149
|
+
},
|
|
150
|
+
fonts: {
|
|
151
|
+
italic: {
|
|
152
|
+
"200": {
|
|
153
|
+
vietnamese: "https://fonts.gstatic.com/s/scoutiesans/v1/7Aump_U0nTyGGVyDCHG3pDcdOkkO81wI8A.woff2",
|
|
154
|
+
"latin-ext": "https://fonts.gstatic.com/s/scoutiesans/v1/7Aump_U0nTyGGVyDCHG3pDcdOkkP81wI8A.woff2",
|
|
155
|
+
latin: "https://fonts.gstatic.com/s/scoutiesans/v1/7Aump_U0nTyGGVyDCHG3pDcdOkkB81w.woff2"
|
|
156
|
+
},
|
|
157
|
+
"300": {
|
|
158
|
+
vietnamese: "https://fonts.gstatic.com/s/scoutiesans/v1/7Aump_U0nTyGGVyDCHG3pDcdOkkO81wI8A.woff2",
|
|
159
|
+
"latin-ext": "https://fonts.gstatic.com/s/scoutiesans/v1/7Aump_U0nTyGGVyDCHG3pDcdOkkP81wI8A.woff2",
|
|
160
|
+
latin: "https://fonts.gstatic.com/s/scoutiesans/v1/7Aump_U0nTyGGVyDCHG3pDcdOkkB81w.woff2"
|
|
161
|
+
},
|
|
162
|
+
"400": {
|
|
163
|
+
vietnamese: "https://fonts.gstatic.com/s/scoutiesans/v1/7Aump_U0nTyGGVyDCHG3pDcdOkkO81wI8A.woff2",
|
|
164
|
+
"latin-ext": "https://fonts.gstatic.com/s/scoutiesans/v1/7Aump_U0nTyGGVyDCHG3pDcdOkkP81wI8A.woff2",
|
|
165
|
+
latin: "https://fonts.gstatic.com/s/scoutiesans/v1/7Aump_U0nTyGGVyDCHG3pDcdOkkB81w.woff2"
|
|
166
|
+
},
|
|
167
|
+
"500": {
|
|
168
|
+
vietnamese: "https://fonts.gstatic.com/s/scoutiesans/v1/7Aump_U0nTyGGVyDCHG3pDcdOkkO81wI8A.woff2",
|
|
169
|
+
"latin-ext": "https://fonts.gstatic.com/s/scoutiesans/v1/7Aump_U0nTyGGVyDCHG3pDcdOkkP81wI8A.woff2",
|
|
170
|
+
latin: "https://fonts.gstatic.com/s/scoutiesans/v1/7Aump_U0nTyGGVyDCHG3pDcdOkkB81w.woff2"
|
|
171
|
+
},
|
|
172
|
+
"600": {
|
|
173
|
+
vietnamese: "https://fonts.gstatic.com/s/scoutiesans/v1/7Aump_U0nTyGGVyDCHG3pDcdOkkO81wI8A.woff2",
|
|
174
|
+
"latin-ext": "https://fonts.gstatic.com/s/scoutiesans/v1/7Aump_U0nTyGGVyDCHG3pDcdOkkP81wI8A.woff2",
|
|
175
|
+
latin: "https://fonts.gstatic.com/s/scoutiesans/v1/7Aump_U0nTyGGVyDCHG3pDcdOkkB81w.woff2"
|
|
176
|
+
},
|
|
177
|
+
"700": {
|
|
178
|
+
vietnamese: "https://fonts.gstatic.com/s/scoutiesans/v1/7Aump_U0nTyGGVyDCHG3pDcdOkkO81wI8A.woff2",
|
|
179
|
+
"latin-ext": "https://fonts.gstatic.com/s/scoutiesans/v1/7Aump_U0nTyGGVyDCHG3pDcdOkkP81wI8A.woff2",
|
|
180
|
+
latin: "https://fonts.gstatic.com/s/scoutiesans/v1/7Aump_U0nTyGGVyDCHG3pDcdOkkB81w.woff2"
|
|
181
|
+
},
|
|
182
|
+
"800": {
|
|
183
|
+
vietnamese: "https://fonts.gstatic.com/s/scoutiesans/v1/7Aump_U0nTyGGVyDCHG3pDcdOkkO81wI8A.woff2",
|
|
184
|
+
"latin-ext": "https://fonts.gstatic.com/s/scoutiesans/v1/7Aump_U0nTyGGVyDCHG3pDcdOkkP81wI8A.woff2",
|
|
185
|
+
latin: "https://fonts.gstatic.com/s/scoutiesans/v1/7Aump_U0nTyGGVyDCHG3pDcdOkkB81w.woff2"
|
|
186
|
+
}
|
|
187
|
+
},
|
|
188
|
+
normal: {
|
|
189
|
+
"200": {
|
|
190
|
+
vietnamese: "https://fonts.gstatic.com/s/scoutiesans/v1/7Au4p_U0nTyGGVyDCHG3pDcdMHkD61g.woff2",
|
|
191
|
+
"latin-ext": "https://fonts.gstatic.com/s/scoutiesans/v1/7Au4p_U0nTyGGVyDCHG3pDcdMXkD61g.woff2",
|
|
192
|
+
latin: "https://fonts.gstatic.com/s/scoutiesans/v1/7Au4p_U0nTyGGVyDCHG3pDcdP3kD.woff2"
|
|
193
|
+
},
|
|
194
|
+
"300": {
|
|
195
|
+
vietnamese: "https://fonts.gstatic.com/s/scoutiesans/v1/7Au4p_U0nTyGGVyDCHG3pDcdMHkD61g.woff2",
|
|
196
|
+
"latin-ext": "https://fonts.gstatic.com/s/scoutiesans/v1/7Au4p_U0nTyGGVyDCHG3pDcdMXkD61g.woff2",
|
|
197
|
+
latin: "https://fonts.gstatic.com/s/scoutiesans/v1/7Au4p_U0nTyGGVyDCHG3pDcdP3kD.woff2"
|
|
198
|
+
},
|
|
199
|
+
"400": {
|
|
200
|
+
vietnamese: "https://fonts.gstatic.com/s/scoutiesans/v1/7Au4p_U0nTyGGVyDCHG3pDcdMHkD61g.woff2",
|
|
201
|
+
"latin-ext": "https://fonts.gstatic.com/s/scoutiesans/v1/7Au4p_U0nTyGGVyDCHG3pDcdMXkD61g.woff2",
|
|
202
|
+
latin: "https://fonts.gstatic.com/s/scoutiesans/v1/7Au4p_U0nTyGGVyDCHG3pDcdP3kD.woff2"
|
|
203
|
+
},
|
|
204
|
+
"500": {
|
|
205
|
+
vietnamese: "https://fonts.gstatic.com/s/scoutiesans/v1/7Au4p_U0nTyGGVyDCHG3pDcdMHkD61g.woff2",
|
|
206
|
+
"latin-ext": "https://fonts.gstatic.com/s/scoutiesans/v1/7Au4p_U0nTyGGVyDCHG3pDcdMXkD61g.woff2",
|
|
207
|
+
latin: "https://fonts.gstatic.com/s/scoutiesans/v1/7Au4p_U0nTyGGVyDCHG3pDcdP3kD.woff2"
|
|
208
|
+
},
|
|
209
|
+
"600": {
|
|
210
|
+
vietnamese: "https://fonts.gstatic.com/s/scoutiesans/v1/7Au4p_U0nTyGGVyDCHG3pDcdMHkD61g.woff2",
|
|
211
|
+
"latin-ext": "https://fonts.gstatic.com/s/scoutiesans/v1/7Au4p_U0nTyGGVyDCHG3pDcdMXkD61g.woff2",
|
|
212
|
+
latin: "https://fonts.gstatic.com/s/scoutiesans/v1/7Au4p_U0nTyGGVyDCHG3pDcdP3kD.woff2"
|
|
213
|
+
},
|
|
214
|
+
"700": {
|
|
215
|
+
vietnamese: "https://fonts.gstatic.com/s/scoutiesans/v1/7Au4p_U0nTyGGVyDCHG3pDcdMHkD61g.woff2",
|
|
216
|
+
"latin-ext": "https://fonts.gstatic.com/s/scoutiesans/v1/7Au4p_U0nTyGGVyDCHG3pDcdMXkD61g.woff2",
|
|
217
|
+
latin: "https://fonts.gstatic.com/s/scoutiesans/v1/7Au4p_U0nTyGGVyDCHG3pDcdP3kD.woff2"
|
|
218
|
+
},
|
|
219
|
+
"800": {
|
|
220
|
+
vietnamese: "https://fonts.gstatic.com/s/scoutiesans/v1/7Au4p_U0nTyGGVyDCHG3pDcdMHkD61g.woff2",
|
|
221
|
+
"latin-ext": "https://fonts.gstatic.com/s/scoutiesans/v1/7Au4p_U0nTyGGVyDCHG3pDcdMXkD61g.woff2",
|
|
222
|
+
latin: "https://fonts.gstatic.com/s/scoutiesans/v1/7Au4p_U0nTyGGVyDCHG3pDcdP3kD.woff2"
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
},
|
|
226
|
+
subsets: ["latin", "latin-ext", "vietnamese"]
|
|
227
|
+
});
|
|
228
|
+
var fontFamily = "Scoutie Sans";
|
|
229
|
+
var loadFont = (style, options) => {
|
|
230
|
+
return loadFonts(getInfo(), style, options);
|
|
231
|
+
};
|
|
232
|
+
export {
|
|
233
|
+
loadFont,
|
|
234
|
+
getInfo,
|
|
235
|
+
fontFamily
|
|
236
|
+
};
|
|
@@ -0,0 +1,237 @@
|
|
|
1
|
+
// src/base.ts
|
|
2
|
+
import { continueRender, delayRender } from "remotion";
|
|
3
|
+
import { NoReactInternals } from "remotion/no-react";
|
|
4
|
+
|
|
5
|
+
// src/resolve-font-subsets.ts
|
|
6
|
+
var isChunkSubset = (subset) => /^\[\d+\]$/.test(subset);
|
|
7
|
+
var compareChunkSubsets = (a, b) => {
|
|
8
|
+
return Number(a.slice(1, -1)) - Number(b.slice(1, -1));
|
|
9
|
+
};
|
|
10
|
+
var resolveFontSubsetKeys = ({
|
|
11
|
+
availableSubsetKeys,
|
|
12
|
+
metaSubsets,
|
|
13
|
+
requestedSubset
|
|
14
|
+
}) => {
|
|
15
|
+
if (availableSubsetKeys.includes(requestedSubset)) {
|
|
16
|
+
return [requestedSubset];
|
|
17
|
+
}
|
|
18
|
+
if (!metaSubsets.includes(requestedSubset)) {
|
|
19
|
+
return [requestedSubset];
|
|
20
|
+
}
|
|
21
|
+
const chunkSubsets = availableSubsetKeys.filter(isChunkSubset).sort(compareChunkSubsets);
|
|
22
|
+
return chunkSubsets.length === 0 ? [requestedSubset] : chunkSubsets;
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
// src/base.ts
|
|
26
|
+
var loadedFonts = {};
|
|
27
|
+
var withResolvers = function() {
|
|
28
|
+
let resolve;
|
|
29
|
+
let reject;
|
|
30
|
+
const promise = new Promise((res, rej) => {
|
|
31
|
+
resolve = res;
|
|
32
|
+
reject = rej;
|
|
33
|
+
});
|
|
34
|
+
return { promise, resolve, reject };
|
|
35
|
+
};
|
|
36
|
+
var loadFontFaceOrTimeoutAfter20Seconds = (fontFace) => {
|
|
37
|
+
const timeout = withResolvers();
|
|
38
|
+
const int = setTimeout(() => {
|
|
39
|
+
timeout.reject(new Error("Timed out loading Google Font"));
|
|
40
|
+
}, 18000);
|
|
41
|
+
return Promise.race([
|
|
42
|
+
fontFace.load().then(() => {
|
|
43
|
+
clearTimeout(int);
|
|
44
|
+
}),
|
|
45
|
+
timeout.promise
|
|
46
|
+
]);
|
|
47
|
+
};
|
|
48
|
+
var loadFonts = (meta, style, options) => {
|
|
49
|
+
const weightsAndSubsetsAreSpecified = Array.isArray(options?.weights) && Array.isArray(options?.subsets) && options.weights.length > 0 && options.subsets.length > 0;
|
|
50
|
+
if (NoReactInternals.ENABLE_V5_BREAKING_CHANGES && !weightsAndSubsetsAreSpecified) {
|
|
51
|
+
throw new Error("Loading Google Fonts without specifying weights and subsets is not supported in Remotion v5. Please specify the weights and subsets you need.");
|
|
52
|
+
}
|
|
53
|
+
const promises = [];
|
|
54
|
+
const styles = style ? [style] : Object.keys(meta.fonts);
|
|
55
|
+
let fontsLoaded = 0;
|
|
56
|
+
for (const style2 of styles) {
|
|
57
|
+
if (typeof FontFace === "undefined") {
|
|
58
|
+
continue;
|
|
59
|
+
}
|
|
60
|
+
if (!meta.fonts[style2]) {
|
|
61
|
+
throw new Error(`The font ${meta.fontFamily} does not have a style ${style2}`);
|
|
62
|
+
}
|
|
63
|
+
const weights = options?.weights ?? Object.keys(meta.fonts[style2]);
|
|
64
|
+
for (const weight of weights) {
|
|
65
|
+
if (!meta.fonts[style2][weight]) {
|
|
66
|
+
throw new Error(`The font ${meta.fontFamily} does not have a weight ${weight} in style ${style2}`);
|
|
67
|
+
}
|
|
68
|
+
const requestedSubsets = options?.subsets ?? Object.keys(meta.fonts[style2][weight]);
|
|
69
|
+
const availableSubsetKeys = Object.keys(meta.fonts[style2][weight]);
|
|
70
|
+
const subsets = [
|
|
71
|
+
...new Set(requestedSubsets.flatMap((requestedSubset) => resolveFontSubsetKeys({
|
|
72
|
+
availableSubsetKeys,
|
|
73
|
+
metaSubsets: meta.subsets,
|
|
74
|
+
requestedSubset
|
|
75
|
+
})))
|
|
76
|
+
];
|
|
77
|
+
for (const subset of subsets) {
|
|
78
|
+
let font = meta.fonts[style2]?.[weight]?.[subset];
|
|
79
|
+
if (!font) {
|
|
80
|
+
throw new Error(`weight: ${weight} subset: ${subset} is not available for '${meta.fontFamily}'`);
|
|
81
|
+
}
|
|
82
|
+
let fontKey = `${meta.fontFamily}-${style2}-${weight}-${subset}`;
|
|
83
|
+
const previousPromise = loadedFonts[fontKey];
|
|
84
|
+
if (previousPromise) {
|
|
85
|
+
promises.push(previousPromise);
|
|
86
|
+
continue;
|
|
87
|
+
}
|
|
88
|
+
const baseLabel = `Fetching ${meta.fontFamily} font ${JSON.stringify({
|
|
89
|
+
style: style2,
|
|
90
|
+
weight,
|
|
91
|
+
subset
|
|
92
|
+
})}`;
|
|
93
|
+
const label = weightsAndSubsetsAreSpecified ? baseLabel : `${baseLabel}. This might be caused by loading too many font variations. Read more: https://www.remotion.dev/docs/troubleshooting/font-loading-errors#render-timeout-when-loading-google-fonts`;
|
|
94
|
+
const handle = delayRender(label, { timeoutInMilliseconds: 60000 });
|
|
95
|
+
fontsLoaded++;
|
|
96
|
+
const fontFace = new FontFace(meta.fontFamily, `url(${font}) format('woff2')`, {
|
|
97
|
+
weight,
|
|
98
|
+
style: style2,
|
|
99
|
+
unicodeRange: meta.unicodeRanges[subset]
|
|
100
|
+
});
|
|
101
|
+
let attempts = 2;
|
|
102
|
+
const tryToLoad = () => {
|
|
103
|
+
if (fontFace.status === "loaded") {
|
|
104
|
+
continueRender(handle);
|
|
105
|
+
return;
|
|
106
|
+
}
|
|
107
|
+
const promise = loadFontFaceOrTimeoutAfter20Seconds(fontFace).then(() => {
|
|
108
|
+
(options?.document ?? document).fonts.add(fontFace);
|
|
109
|
+
continueRender(handle);
|
|
110
|
+
}).catch((err) => {
|
|
111
|
+
loadedFonts[fontKey] = undefined;
|
|
112
|
+
if (attempts === 0) {
|
|
113
|
+
throw err;
|
|
114
|
+
} else {
|
|
115
|
+
attempts--;
|
|
116
|
+
tryToLoad();
|
|
117
|
+
}
|
|
118
|
+
});
|
|
119
|
+
loadedFonts[fontKey] = promise;
|
|
120
|
+
promises.push(promise);
|
|
121
|
+
};
|
|
122
|
+
tryToLoad();
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
if (fontsLoaded > 20 && !options?.ignoreTooManyRequestsWarning) {
|
|
126
|
+
console.warn(`Made ${fontsLoaded} network requests to load fonts for ${meta.fontFamily}. Consider loading fewer weights and subsets by passing options to loadFont(). Disable this warning by passing "ignoreTooManyRequestsWarning: true" to "options".`);
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
return {
|
|
130
|
+
fontFamily: meta.fontFamily,
|
|
131
|
+
fonts: meta.fonts,
|
|
132
|
+
unicodeRanges: meta.unicodeRanges,
|
|
133
|
+
waitUntilDone: () => Promise.all(promises).then(() => {
|
|
134
|
+
return;
|
|
135
|
+
})
|
|
136
|
+
};
|
|
137
|
+
};
|
|
138
|
+
|
|
139
|
+
// src/ValleySans.ts
|
|
140
|
+
var getInfo = () => ({
|
|
141
|
+
fontFamily: "Valley Sans",
|
|
142
|
+
importName: "ValleySans",
|
|
143
|
+
version: "v2",
|
|
144
|
+
url: "https://fonts.googleapis.com/css2?family=Valley+Sans:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900",
|
|
145
|
+
unicodeRanges: {
|
|
146
|
+
"latin-ext": "U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF",
|
|
147
|
+
latin: "U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD"
|
|
148
|
+
},
|
|
149
|
+
fonts: {
|
|
150
|
+
italic: {
|
|
151
|
+
"100": {
|
|
152
|
+
"latin-ext": "https://fonts.gstatic.com/s/valleysans/v2/rax7Hieas9oNPmLLK80CdyhYi0P49Aad.woff2",
|
|
153
|
+
latin: "https://fonts.gstatic.com/s/valleysans/v2/rax7Hieas9oNPmLLK80CdyhYi0349A.woff2"
|
|
154
|
+
},
|
|
155
|
+
"200": {
|
|
156
|
+
"latin-ext": "https://fonts.gstatic.com/s/valleysans/v2/rax7Hieas9oNPmLLK80CdyhYi0P49Aad.woff2",
|
|
157
|
+
latin: "https://fonts.gstatic.com/s/valleysans/v2/rax7Hieas9oNPmLLK80CdyhYi0349A.woff2"
|
|
158
|
+
},
|
|
159
|
+
"300": {
|
|
160
|
+
"latin-ext": "https://fonts.gstatic.com/s/valleysans/v2/rax7Hieas9oNPmLLK80CdyhYi0P49Aad.woff2",
|
|
161
|
+
latin: "https://fonts.gstatic.com/s/valleysans/v2/rax7Hieas9oNPmLLK80CdyhYi0349A.woff2"
|
|
162
|
+
},
|
|
163
|
+
"400": {
|
|
164
|
+
"latin-ext": "https://fonts.gstatic.com/s/valleysans/v2/rax7Hieas9oNPmLLK80CdyhYi0P49Aad.woff2",
|
|
165
|
+
latin: "https://fonts.gstatic.com/s/valleysans/v2/rax7Hieas9oNPmLLK80CdyhYi0349A.woff2"
|
|
166
|
+
},
|
|
167
|
+
"500": {
|
|
168
|
+
"latin-ext": "https://fonts.gstatic.com/s/valleysans/v2/rax7Hieas9oNPmLLK80CdyhYi0P49Aad.woff2",
|
|
169
|
+
latin: "https://fonts.gstatic.com/s/valleysans/v2/rax7Hieas9oNPmLLK80CdyhYi0349A.woff2"
|
|
170
|
+
},
|
|
171
|
+
"600": {
|
|
172
|
+
"latin-ext": "https://fonts.gstatic.com/s/valleysans/v2/rax7Hieas9oNPmLLK80CdyhYi0P49Aad.woff2",
|
|
173
|
+
latin: "https://fonts.gstatic.com/s/valleysans/v2/rax7Hieas9oNPmLLK80CdyhYi0349A.woff2"
|
|
174
|
+
},
|
|
175
|
+
"700": {
|
|
176
|
+
"latin-ext": "https://fonts.gstatic.com/s/valleysans/v2/rax7Hieas9oNPmLLK80CdyhYi0P49Aad.woff2",
|
|
177
|
+
latin: "https://fonts.gstatic.com/s/valleysans/v2/rax7Hieas9oNPmLLK80CdyhYi0349A.woff2"
|
|
178
|
+
},
|
|
179
|
+
"800": {
|
|
180
|
+
"latin-ext": "https://fonts.gstatic.com/s/valleysans/v2/rax7Hieas9oNPmLLK80CdyhYi0P49Aad.woff2",
|
|
181
|
+
latin: "https://fonts.gstatic.com/s/valleysans/v2/rax7Hieas9oNPmLLK80CdyhYi0349A.woff2"
|
|
182
|
+
},
|
|
183
|
+
"900": {
|
|
184
|
+
"latin-ext": "https://fonts.gstatic.com/s/valleysans/v2/rax7Hieas9oNPmLLK80CdyhYi0P49Aad.woff2",
|
|
185
|
+
latin: "https://fonts.gstatic.com/s/valleysans/v2/rax7Hieas9oNPmLLK80CdyhYi0349A.woff2"
|
|
186
|
+
}
|
|
187
|
+
},
|
|
188
|
+
normal: {
|
|
189
|
+
"100": {
|
|
190
|
+
"latin-ext": "https://fonts.gstatic.com/s/valleysans/v2/rax5Hieas9oNPmLLK80CdyhTu0_g8A.woff2",
|
|
191
|
+
latin: "https://fonts.gstatic.com/s/valleysans/v2/rax5Hieas9oNPmLLK80Cdyhdu08.woff2"
|
|
192
|
+
},
|
|
193
|
+
"200": {
|
|
194
|
+
"latin-ext": "https://fonts.gstatic.com/s/valleysans/v2/rax5Hieas9oNPmLLK80CdyhTu0_g8A.woff2",
|
|
195
|
+
latin: "https://fonts.gstatic.com/s/valleysans/v2/rax5Hieas9oNPmLLK80Cdyhdu08.woff2"
|
|
196
|
+
},
|
|
197
|
+
"300": {
|
|
198
|
+
"latin-ext": "https://fonts.gstatic.com/s/valleysans/v2/rax5Hieas9oNPmLLK80CdyhTu0_g8A.woff2",
|
|
199
|
+
latin: "https://fonts.gstatic.com/s/valleysans/v2/rax5Hieas9oNPmLLK80Cdyhdu08.woff2"
|
|
200
|
+
},
|
|
201
|
+
"400": {
|
|
202
|
+
"latin-ext": "https://fonts.gstatic.com/s/valleysans/v2/rax5Hieas9oNPmLLK80CdyhTu0_g8A.woff2",
|
|
203
|
+
latin: "https://fonts.gstatic.com/s/valleysans/v2/rax5Hieas9oNPmLLK80Cdyhdu08.woff2"
|
|
204
|
+
},
|
|
205
|
+
"500": {
|
|
206
|
+
"latin-ext": "https://fonts.gstatic.com/s/valleysans/v2/rax5Hieas9oNPmLLK80CdyhTu0_g8A.woff2",
|
|
207
|
+
latin: "https://fonts.gstatic.com/s/valleysans/v2/rax5Hieas9oNPmLLK80Cdyhdu08.woff2"
|
|
208
|
+
},
|
|
209
|
+
"600": {
|
|
210
|
+
"latin-ext": "https://fonts.gstatic.com/s/valleysans/v2/rax5Hieas9oNPmLLK80CdyhTu0_g8A.woff2",
|
|
211
|
+
latin: "https://fonts.gstatic.com/s/valleysans/v2/rax5Hieas9oNPmLLK80Cdyhdu08.woff2"
|
|
212
|
+
},
|
|
213
|
+
"700": {
|
|
214
|
+
"latin-ext": "https://fonts.gstatic.com/s/valleysans/v2/rax5Hieas9oNPmLLK80CdyhTu0_g8A.woff2",
|
|
215
|
+
latin: "https://fonts.gstatic.com/s/valleysans/v2/rax5Hieas9oNPmLLK80Cdyhdu08.woff2"
|
|
216
|
+
},
|
|
217
|
+
"800": {
|
|
218
|
+
"latin-ext": "https://fonts.gstatic.com/s/valleysans/v2/rax5Hieas9oNPmLLK80CdyhTu0_g8A.woff2",
|
|
219
|
+
latin: "https://fonts.gstatic.com/s/valleysans/v2/rax5Hieas9oNPmLLK80Cdyhdu08.woff2"
|
|
220
|
+
},
|
|
221
|
+
"900": {
|
|
222
|
+
"latin-ext": "https://fonts.gstatic.com/s/valleysans/v2/rax5Hieas9oNPmLLK80CdyhTu0_g8A.woff2",
|
|
223
|
+
latin: "https://fonts.gstatic.com/s/valleysans/v2/rax5Hieas9oNPmLLK80Cdyhdu08.woff2"
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
},
|
|
227
|
+
subsets: ["latin", "latin-ext"]
|
|
228
|
+
});
|
|
229
|
+
var fontFamily = "Valley Sans";
|
|
230
|
+
var loadFont = (style, options) => {
|
|
231
|
+
return loadFonts(getInfo(), style, options);
|
|
232
|
+
};
|
|
233
|
+
export {
|
|
234
|
+
loadFont,
|
|
235
|
+
getInfo,
|
|
236
|
+
fontFamily
|
|
237
|
+
};
|
package/dist/esm/Yuyu.mjs
CHANGED
|
@@ -140,7 +140,7 @@ var loadFonts = (meta, style, options) => {
|
|
|
140
140
|
var getInfo = () => ({
|
|
141
141
|
fontFamily: "Yuyu",
|
|
142
142
|
importName: "Yuyu",
|
|
143
|
-
version: "
|
|
143
|
+
version: "v2",
|
|
144
144
|
url: "https://fonts.googleapis.com/css2?family=Yuyu:ital,wght@0,400",
|
|
145
145
|
unicodeRanges: {
|
|
146
146
|
"latin-ext": "U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF",
|
|
@@ -149,8 +149,8 @@ var getInfo = () => ({
|
|
|
149
149
|
fonts: {
|
|
150
150
|
normal: {
|
|
151
151
|
"400": {
|
|
152
|
-
"latin-ext": "https://fonts.gstatic.com/s/yuyu/
|
|
153
|
-
latin: "https://fonts.gstatic.com/s/yuyu/
|
|
152
|
+
"latin-ext": "https://fonts.gstatic.com/s/yuyu/v2/cY9Kfj2VT1Zd2UrkM-_L.woff2",
|
|
153
|
+
latin: "https://fonts.gstatic.com/s/yuyu/v2/cY9Kfj2VT1Zd2UTkMw.woff2"
|
|
154
154
|
}
|
|
155
155
|
}
|
|
156
156
|
},
|
package/dist/esm/YuyuShort.mjs
CHANGED
|
@@ -140,7 +140,7 @@ var loadFonts = (meta, style, options) => {
|
|
|
140
140
|
var getInfo = () => ({
|
|
141
141
|
fontFamily: "Yuyu Short",
|
|
142
142
|
importName: "YuyuShort",
|
|
143
|
-
version: "
|
|
143
|
+
version: "v2",
|
|
144
144
|
url: "https://fonts.googleapis.com/css2?family=Yuyu+Short:ital,wght@0,400",
|
|
145
145
|
unicodeRanges: {
|
|
146
146
|
"latin-ext": "U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF",
|
|
@@ -149,8 +149,8 @@ var getInfo = () => ({
|
|
|
149
149
|
fonts: {
|
|
150
150
|
normal: {
|
|
151
151
|
"400": {
|
|
152
|
-
"latin-ext": "https://fonts.gstatic.com/s/yuyushort/
|
|
153
|
-
latin: "https://fonts.gstatic.com/s/yuyushort/
|
|
152
|
+
"latin-ext": "https://fonts.gstatic.com/s/yuyushort/v2/LDI3apKZLAsqA9YV6Px0A-qMXNrP.woff2",
|
|
153
|
+
latin: "https://fonts.gstatic.com/s/yuyushort/v2/LDI3apKZLAsqA9YV6Px0A-SMXA.woff2"
|
|
154
154
|
}
|
|
155
155
|
}
|
|
156
156
|
},
|
package/dist/esm/index.mjs
CHANGED
|
@@ -599,6 +599,11 @@ export const getAvailableFonts = () => [
|
|
|
599
599
|
importName: 'AsapCondensed',
|
|
600
600
|
load: () => import('./AsapCondensed.mjs'),
|
|
601
601
|
},
|
|
602
|
+
{
|
|
603
|
+
fontFamily: 'Asap Sharp',
|
|
604
|
+
importName: 'AsapSharp',
|
|
605
|
+
load: () => import('./AsapSharp.mjs'),
|
|
606
|
+
},
|
|
602
607
|
{
|
|
603
608
|
fontFamily: 'Asar',
|
|
604
609
|
importName: 'Asar',
|
|
@@ -1384,6 +1389,11 @@ export const getAvailableFonts = () => [
|
|
|
1384
1389
|
importName: 'Bytesized',
|
|
1385
1390
|
load: () => import('./Bytesized.mjs'),
|
|
1386
1391
|
},
|
|
1392
|
+
{
|
|
1393
|
+
fontFamily: 'Caacupe One',
|
|
1394
|
+
importName: 'CaacupeOne',
|
|
1395
|
+
load: () => import('./CaacupeOne.mjs'),
|
|
1396
|
+
},
|
|
1387
1397
|
{
|
|
1388
1398
|
fontFamily: 'Cabin',
|
|
1389
1399
|
importName: 'Cabin',
|
|
@@ -7680,6 +7690,11 @@ export const getAvailableFonts = () => [
|
|
|
7680
7690
|
importName: 'ScopeOne',
|
|
7681
7691
|
load: () => import('./ScopeOne.mjs'),
|
|
7682
7692
|
},
|
|
7693
|
+
{
|
|
7694
|
+
fontFamily: 'Scoutie Sans',
|
|
7695
|
+
importName: 'ScoutieSans',
|
|
7696
|
+
load: () => import('./ScoutieSans.mjs'),
|
|
7697
|
+
},
|
|
7683
7698
|
{
|
|
7684
7699
|
fontFamily: 'Seaweed Script',
|
|
7685
7700
|
importName: 'SeaweedScript',
|
|
@@ -8690,6 +8705,11 @@ export const getAvailableFonts = () => [
|
|
|
8690
8705
|
importName: 'VT323',
|
|
8691
8706
|
load: () => import('./VT323.mjs'),
|
|
8692
8707
|
},
|
|
8708
|
+
{
|
|
8709
|
+
fontFamily: 'Valley Sans',
|
|
8710
|
+
importName: 'ValleySans',
|
|
8711
|
+
load: () => import('./ValleySans.mjs'),
|
|
8712
|
+
},
|
|
8693
8713
|
{
|
|
8694
8714
|
fontFamily: 'Vampiro One',
|
|
8695
8715
|
importName: 'VampiroOne',
|
package/package.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"url": "https://github.com/remotion-dev/remotion/tree/main/packages/google-fonts"
|
|
4
4
|
},
|
|
5
5
|
"name": "@remotion/google-fonts",
|
|
6
|
-
"version": "4.0.
|
|
6
|
+
"version": "4.0.518",
|
|
7
7
|
"description": "Use Google Fonts in Remotion",
|
|
8
8
|
"main": "dist/cjs/index.js",
|
|
9
9
|
"module": "dist/esm/index.mjs",
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
},
|
|
17
17
|
"license": "SEE LICENSE IN LICENSE.md",
|
|
18
18
|
"dependencies": {
|
|
19
|
-
"remotion": "4.0.
|
|
19
|
+
"remotion": "4.0.518"
|
|
20
20
|
},
|
|
21
21
|
"devDependencies": {
|
|
22
22
|
"@types/css-font-loading-module": "0.0.14",
|
|
@@ -387,6 +387,9 @@
|
|
|
387
387
|
"AsapCondensed": [
|
|
388
388
|
"dist/cjs/AsapCondensed.d.ts"
|
|
389
389
|
],
|
|
390
|
+
"AsapSharp": [
|
|
391
|
+
"dist/cjs/AsapSharp.d.ts"
|
|
392
|
+
],
|
|
390
393
|
"Asar": [
|
|
391
394
|
"dist/cjs/Asar.d.ts"
|
|
392
395
|
],
|
|
@@ -858,6 +861,9 @@
|
|
|
858
861
|
"Bytesized": [
|
|
859
862
|
"dist/cjs/Bytesized.d.ts"
|
|
860
863
|
],
|
|
864
|
+
"CaacupeOne": [
|
|
865
|
+
"dist/cjs/CaacupeOne.d.ts"
|
|
866
|
+
],
|
|
861
867
|
"Cabin": [
|
|
862
868
|
"dist/cjs/Cabin.d.ts"
|
|
863
869
|
],
|
|
@@ -4635,6 +4641,9 @@
|
|
|
4635
4641
|
"ScopeOne": [
|
|
4636
4642
|
"dist/cjs/ScopeOne.d.ts"
|
|
4637
4643
|
],
|
|
4644
|
+
"ScoutieSans": [
|
|
4645
|
+
"dist/cjs/ScoutieSans.d.ts"
|
|
4646
|
+
],
|
|
4638
4647
|
"SeaweedScript": [
|
|
4639
4648
|
"dist/cjs/SeaweedScript.d.ts"
|
|
4640
4649
|
],
|
|
@@ -5241,6 +5250,9 @@
|
|
|
5241
5250
|
"VT323": [
|
|
5242
5251
|
"dist/cjs/VT323.d.ts"
|
|
5243
5252
|
],
|
|
5253
|
+
"ValleySans": [
|
|
5254
|
+
"dist/cjs/ValleySans.d.ts"
|
|
5255
|
+
],
|
|
5244
5256
|
"VampiroOne": [
|
|
5245
5257
|
"dist/cjs/VampiroOne.d.ts"
|
|
5246
5258
|
],
|