@turntrout/subfont 1.6.0 → 1.7.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +43 -43
- package/lib/FontTracerPool.d.ts +37 -0
- package/lib/FontTracerPool.d.ts.map +1 -0
- package/lib/FontTracerPool.js +212 -173
- package/lib/FontTracerPool.js.map +1 -0
- package/lib/HeadlessBrowser.js +11 -3
- package/lib/cli.d.ts +3 -0
- package/lib/cli.d.ts.map +1 -0
- package/lib/cli.js +15 -12
- package/lib/cli.js.map +1 -0
- package/lib/collectTextsByPage.js +425 -352
- package/lib/escapeJsStringLiteral.js +13 -0
- package/lib/extractVisibleText.js +6 -2
- package/lib/fontConverter.js +25 -0
- package/lib/fontConverterWorker.js +16 -0
- package/lib/fontFaceHelpers.js +16 -4
- package/lib/gatherStylesheetsWithPredicates.js +4 -5
- package/lib/normalizeFontPropertyValue.js +1 -1
- package/lib/sfntCache.js +10 -7
- package/lib/subfont.d.ts +33 -0
- package/lib/subfont.d.ts.map +1 -0
- package/lib/subfont.js +533 -591
- package/lib/subfont.js.map +1 -0
- package/lib/subsetFontWithGlyphs.d.ts +17 -0
- package/lib/subsetFontWithGlyphs.d.ts.map +1 -0
- package/lib/subsetFontWithGlyphs.js +231 -253
- package/lib/subsetFontWithGlyphs.js.map +1 -0
- package/lib/subsetFonts.d.ts +59 -0
- package/lib/subsetFonts.d.ts.map +1 -0
- package/lib/subsetFonts.js +921 -1180
- package/lib/subsetFonts.js.map +1 -0
- package/lib/subsetGeneration.d.ts +39 -0
- package/lib/subsetGeneration.d.ts.map +1 -0
- package/lib/subsetGeneration.js +294 -324
- package/lib/subsetGeneration.js.map +1 -0
- package/lib/unquote.js +9 -4
- package/lib/warnAboutMissingGlyphs.js +36 -25
- package/lib/wasmQueue.js +6 -2
- package/package.json +11 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"subsetGeneration.js","sourceRoot":"","sources":["../src/subsetGeneration.ts"],"names":[],"mappings":"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"}
|
package/lib/unquote.js
CHANGED
|
@@ -1,10 +1,15 @@
|
|
|
1
1
|
function unescapeCssString(str) {
|
|
2
2
|
return str.replace(
|
|
3
3
|
/\\([0-9a-f]{1,6})(\s?)/gi,
|
|
4
|
-
($0, hexChars, followingWhitespace) =>
|
|
5
|
-
|
|
6
|
-
hexChars
|
|
7
|
-
|
|
4
|
+
($0, hexChars, followingWhitespace) => {
|
|
5
|
+
try {
|
|
6
|
+
return `${String.fromCodePoint(parseInt(hexChars, 16))}${
|
|
7
|
+
hexChars.length === 6 ? followingWhitespace : ''
|
|
8
|
+
}`;
|
|
9
|
+
} catch {
|
|
10
|
+
return $0;
|
|
11
|
+
}
|
|
12
|
+
}
|
|
8
13
|
);
|
|
9
14
|
}
|
|
10
15
|
|
|
@@ -42,6 +42,41 @@ async function warnAboutMissingGlyphs(
|
|
|
42
42
|
accumulatedFontFaceDeclarations,
|
|
43
43
|
} of htmlOrSvgAssetTextsWithProps) {
|
|
44
44
|
let linesAndColumns;
|
|
45
|
+
// Dedupe scans for the same missing char across different fontUsages on
|
|
46
|
+
// this page. On KaTeX-heavy pages the same symbol is often missing in
|
|
47
|
+
// several font-families, and each scan is an O(N) walk of the HTML text.
|
|
48
|
+
const charLookupCache = new Map();
|
|
49
|
+
const lookupChar = (char) => {
|
|
50
|
+
let cached = charLookupCache.get(char);
|
|
51
|
+
if (cached) return cached;
|
|
52
|
+
let firstLocation;
|
|
53
|
+
let occurrences = 0;
|
|
54
|
+
if (char.length > 0) {
|
|
55
|
+
const sourceText = htmlOrSvgAsset.text;
|
|
56
|
+
let searchIdx = 0;
|
|
57
|
+
while (true) {
|
|
58
|
+
const charIdx = sourceText.indexOf(char, searchIdx);
|
|
59
|
+
if (charIdx === -1) break;
|
|
60
|
+
occurrences++;
|
|
61
|
+
if (occurrences === 1) {
|
|
62
|
+
if (!linesAndColumns) {
|
|
63
|
+
linesAndColumns = new LinesAndColumns(sourceText);
|
|
64
|
+
}
|
|
65
|
+
const position = linesAndColumns.locationForIndex(charIdx);
|
|
66
|
+
firstLocation = `${htmlOrSvgAsset.urlOrDescription}:${
|
|
67
|
+
position.line + 1
|
|
68
|
+
}:${position.column + 1}`;
|
|
69
|
+
}
|
|
70
|
+
searchIdx = charIdx + char.length;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
if (!firstLocation) {
|
|
74
|
+
firstLocation = `${htmlOrSvgAsset.urlOrDescription} (generated content)`;
|
|
75
|
+
}
|
|
76
|
+
cached = { firstLocation, occurrences };
|
|
77
|
+
charLookupCache.set(char, cached);
|
|
78
|
+
return cached;
|
|
79
|
+
};
|
|
45
80
|
for (const fontUsage of fontUsages) {
|
|
46
81
|
if (!fontUsage.subsets) continue;
|
|
47
82
|
const subsetBuffer = Object.values(fontUsage.subsets)[0];
|
|
@@ -63,31 +98,7 @@ async function warnAboutMissingGlyphs(
|
|
|
63
98
|
// Report only the first location plus a count of remaining
|
|
64
99
|
// occurrences. A character like U+200B can appear thousands of
|
|
65
100
|
// times on a page and per-occurrence lines drown the log.
|
|
66
|
-
|
|
67
|
-
let occurrences = 0;
|
|
68
|
-
if (char.length > 0) {
|
|
69
|
-
const sourceText = htmlOrSvgAsset.text;
|
|
70
|
-
let searchIdx = 0;
|
|
71
|
-
while (true) {
|
|
72
|
-
const charIdx = sourceText.indexOf(char, searchIdx);
|
|
73
|
-
if (charIdx === -1) break;
|
|
74
|
-
occurrences++;
|
|
75
|
-
if (occurrences === 1) {
|
|
76
|
-
if (!linesAndColumns) {
|
|
77
|
-
linesAndColumns = new LinesAndColumns(sourceText);
|
|
78
|
-
}
|
|
79
|
-
const position = linesAndColumns.locationForIndex(charIdx);
|
|
80
|
-
firstLocation = `${htmlOrSvgAsset.urlOrDescription}:${
|
|
81
|
-
position.line + 1
|
|
82
|
-
}:${position.column + 1}`;
|
|
83
|
-
}
|
|
84
|
-
searchIdx = charIdx + char.length;
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
if (!firstLocation) {
|
|
89
|
-
firstLocation = `${htmlOrSvgAsset.urlOrDescription} (generated content)`;
|
|
90
|
-
}
|
|
101
|
+
const { firstLocation, occurrences } = lookupChar(char);
|
|
91
102
|
|
|
92
103
|
missingGlyphsErrors.push({
|
|
93
104
|
codePoint,
|
package/lib/wasmQueue.js
CHANGED
|
@@ -5,10 +5,14 @@
|
|
|
5
5
|
let queue = Promise.resolve();
|
|
6
6
|
|
|
7
7
|
function enqueue(fn) {
|
|
8
|
-
|
|
8
|
+
// Chain fn after the previous task settles. Both handlers wrap fn() in
|
|
9
|
+
// an arrow to avoid leaking the previous result/error as an argument.
|
|
10
|
+
// The error handler ensures a prior rejection doesn't block the queue.
|
|
11
|
+
queue = queue.then(
|
|
9
12
|
() => fn(),
|
|
10
13
|
() => fn()
|
|
11
|
-
)
|
|
14
|
+
);
|
|
15
|
+
return queue;
|
|
12
16
|
}
|
|
13
17
|
|
|
14
18
|
module.exports = enqueue;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@turntrout/subfont",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.7.1",
|
|
4
4
|
"description": "Automatically subset web fonts to only the characters used on your pages. Fork of Munter/subfont with modern defaults.",
|
|
5
5
|
"engines": {
|
|
6
6
|
"node": ">=18.0.0"
|
|
@@ -57,7 +57,6 @@
|
|
|
57
57
|
"jsdom": "^25.0.0",
|
|
58
58
|
"lines-and-columns": "^1.1.6",
|
|
59
59
|
"memoizesync": "^1.1.1",
|
|
60
|
-
"p-limit": "^3.0.0",
|
|
61
60
|
"parse5": "^7.0.0",
|
|
62
61
|
"postcss": "^8.3.11",
|
|
63
62
|
"postcss-value-parser": "^4.0.2",
|
|
@@ -69,6 +68,8 @@
|
|
|
69
68
|
"yargs": "^17.7.2"
|
|
70
69
|
},
|
|
71
70
|
"devDependencies": {
|
|
71
|
+
"@types/node": "^20.0.0",
|
|
72
|
+
"@types/yargs": "^17.0.0",
|
|
72
73
|
"canvas": "npm:@napi-rs/canvas@^0.1.97",
|
|
73
74
|
"combos": "^0.2.0",
|
|
74
75
|
"coveralls": "^3.0.9",
|
|
@@ -87,7 +88,10 @@
|
|
|
87
88
|
"prettier": "^3.0.0",
|
|
88
89
|
"proxyquire": "^2.1.1",
|
|
89
90
|
"puppeteer": "^24.39.1",
|
|
91
|
+
"rimraf": "^6.0.0",
|
|
90
92
|
"sinon": "^19.0.0",
|
|
93
|
+
"typescript": "^5.6.0",
|
|
94
|
+
"typescript-eslint": "^8.59.0",
|
|
91
95
|
"unexpected": "^11.8.1",
|
|
92
96
|
"unexpected-check": "^2.3.1",
|
|
93
97
|
"unexpected-resemble": "^5.0.1",
|
|
@@ -95,7 +99,11 @@
|
|
|
95
99
|
"unexpected-sinon": "^10.11.2"
|
|
96
100
|
},
|
|
97
101
|
"scripts": {
|
|
98
|
-
"
|
|
102
|
+
"build": "tsc && chmod +x lib/cli.js",
|
|
103
|
+
"clean": "rimraf 'lib/{cli,subfont,subsetFonts,FontTracerPool,subsetFontWithGlyphs,subsetGeneration}.{js,d.ts,d.ts.map,js.map}'",
|
|
104
|
+
"typecheck": "tsc --noEmit",
|
|
105
|
+
"lint": "eslint . && prettier --check '**/*.{js,ts,md}'",
|
|
106
|
+
"pretest": "npm run build",
|
|
99
107
|
"test": "mocha && npm run lint",
|
|
100
108
|
"coverage": "nyc --reporter=lcov --reporter=text -- mocha",
|
|
101
109
|
"check-coverage": "nyc check-coverage",
|