@turntrout/subfont 1.8.1 → 1.8.3

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.
@@ -34,6 +34,7 @@ var __importStar = (this && this.__importStar) || (function () {
34
34
  })();
35
35
  const urltools = __importStar(require("urltools"));
36
36
  const fontverter = __importStar(require("fontverter"));
37
+ const shared_1 = require("./types/shared");
37
38
  const compileQuery = require("assetgraph/lib/compileQuery");
38
39
  const findCustomPropertyDefinitions = require("./findCustomPropertyDefinitions");
39
40
  const extractReferencedCustomPropertyNames = require("./extractReferencedCustomPropertyNames");
@@ -361,76 +362,24 @@ function buildFontInfoReport(htmlOrSvgAssetTextsWithProps) {
361
362
  fontUsages: fontUsages.map((fontUsage) => (({ subsets, hasFontFeatureSettings, fontFeatureTags, ...rest }) => rest)(fontUsage)),
362
363
  }));
363
364
  }
364
- async function subsetFonts(assetGraph, { formats = ['woff2'], subsetPath = 'subfont/', omitFallbacks = false, inlineCss = false, fontDisplay, hrefType = 'rootRelative', onlyInfo, dynamic, console = global.console, text, sourceMaps = false, debug = false, concurrency, chromeArgs = [], cacheDir = null, } = {}) {
365
- if (fontDisplay && !validFontDisplayValues.includes(fontDisplay)) {
366
- fontDisplay = undefined;
367
- }
368
- // Pre-warm the WASM pool: start compiling harfbuzz WASM while
369
- // collectTextsByPage traces fonts. Compilation (~50-200ms) overlaps
370
- // with tracing work rather than appearing on the critical path.
371
- subsetFontWithGlyphs.warmup().catch((err) => {
372
- if (debug) {
373
- console.warn('WASM warmup failed (will retry on first subset call):', err);
374
- }
375
- });
376
- const subsetUrl = urltools.ensureTrailingSlash(assetGraph.root + subsetPath);
377
- const timings = {};
378
- const trackPhase = (0, progress_1.makePhaseTracker)(console, debug);
379
- const applySourceMapsPhase = trackPhase('applySourceMaps');
380
- if (sourceMaps) {
381
- await assetGraph.applySourceMaps({ type: 'Css' });
382
- }
383
- timings.applySourceMaps = applySourceMapsPhase.end();
384
- const googlePopulatePhase = trackPhase('populate (google fonts)');
385
- const hasGoogleFonts = await populateGoogleFontsIfPresent(assetGraph);
386
- timings['populate (google fonts)'] = googlePopulatePhase.end(hasGoogleFonts ? null : 'skipped, no Google Fonts found');
387
- const htmlOrSvgAssets = assetGraph.findAssets({
388
- $or: [
389
- {
390
- type: 'Html',
391
- isInline: false,
392
- },
393
- {
394
- type: 'Svg',
395
- },
396
- ],
397
- });
398
- const collectPhase = trackPhase(`collectTextsByPage (${htmlOrSvgAssets.length} pages)`);
399
- const { htmlOrSvgAssetTextsWithProps, fontFaceDeclarationsByHtmlOrSvgAsset, subTimings, } = await collectTextsByPage(assetGraph, htmlOrSvgAssets, {
400
- text,
401
- console,
402
- dynamic,
403
- debug,
404
- concurrency,
405
- chromeArgs,
406
- });
407
- timings.collectTextsByPage = collectPhase.end();
408
- timings.collectTextsByPageDetails = subTimings;
409
- const omitFallbacksPhase = trackPhase('omitFallbacks processing');
410
- const potentiallyOrphanedAssets = new Set();
411
- if (omitFallbacks) {
412
- removeOriginalFontFaceRules(htmlOrSvgAssets, fontFaceDeclarationsByHtmlOrSvgAsset, potentiallyOrphanedAssets);
413
- }
414
- timings['omitFallbacks processing'] = omitFallbacksPhase.end();
415
- const codepointPhase = trackPhase('codepoint generation');
365
+ // Compute codepoint sets (original, used, unused, page) for every fontUsage
366
+ // and attach them to the fontUsage objects. Also applies fontDisplay if set.
367
+ async function computeCodepoints(assetGraph, htmlOrSvgAssetTextsWithProps, fontDisplay) {
416
368
  if (fontDisplay) {
417
- for (const htmlOrSvgAssetTextWithProps of htmlOrSvgAssetTextsWithProps) {
418
- for (const fontUsage of htmlOrSvgAssetTextWithProps.fontUsages) {
369
+ for (const { fontUsages } of htmlOrSvgAssetTextsWithProps) {
370
+ for (const fontUsage of fontUsages) {
419
371
  fontUsage.props['font-display'] = fontDisplay;
420
372
  }
421
373
  }
422
374
  }
423
- // Pre-compute the global codepoints (original, used, unused) once per fontUrl
424
- // since fontUsage.text is the same global union on every page.
425
- // Pre-index all loaded assets by URL for O(1) lookups instead of O(n) scans.
426
375
  const loadedAssetsByUrl = new Map();
427
376
  for (const asset of assetGraph.findAssets({ isLoaded: true })) {
428
377
  if (asset.url)
429
378
  loadedAssetsByUrl.set(asset.url, asset);
430
379
  }
431
380
  const codepointFontAssetByUrl = new Map();
432
- for (const htmlOrSvgAssetTextWithProps of htmlOrSvgAssetTextsWithProps) {
433
- for (const fontUsage of htmlOrSvgAssetTextWithProps.fontUsages) {
381
+ for (const { fontUsages } of htmlOrSvgAssetTextsWithProps) {
382
+ for (const fontUsage of fontUsages) {
434
383
  if (fontUsage.fontUrl &&
435
384
  !codepointFontAssetByUrl.has(fontUsage.fontUrl)) {
436
385
  const originalFont = loadedAssetsByUrl.get(fontUsage.fontUrl);
@@ -446,22 +395,16 @@ async function subsetFonts(assetGraph, { formats = ['woff2'], subsetPath = 'subf
446
395
  fontInfoPromises.set(fontUrl,
447
396
  // eslint-disable-next-line no-restricted-syntax
448
397
  getFontInfo(fontAsset.rawSrc).catch((rawErr) => {
449
- const err = rawErr instanceof Error
450
- ? rawErr
451
- : new Error(String(rawErr));
452
- err.asset =
453
- err.asset || fontAsset;
454
- assetGraph.warn(err);
398
+ assetGraph.warn((0, shared_1.wrapAssetGraphError)(rawErr, fontAsset));
455
399
  return null;
456
400
  }));
457
401
  }
458
402
  }
459
403
  const fontInfoResults = new Map(await Promise.all([...fontInfoPromises].map(async ([key, promise]) => [key, await promise])));
460
- // Build global codepoints synchronously from pre-fetched results
461
404
  const globalCodepointsByFontUrl = new Map();
462
405
  const codepointsCache = new Map();
463
- for (const htmlOrSvgAssetTextWithProps of htmlOrSvgAssetTextsWithProps) {
464
- for (const fontUsage of htmlOrSvgAssetTextWithProps.fontUsages) {
406
+ for (const { fontUsages } of htmlOrSvgAssetTextsWithProps) {
407
+ for (const fontUsage of fontUsages) {
465
408
  let cached = globalCodepointsByFontUrl.get(fontUsage.fontUrl);
466
409
  if (!cached) {
467
410
  cached = { originalCodepoints: null };
@@ -479,8 +422,6 @@ async function subsetFonts(assetGraph, { formats = ['woff2'], subsetPath = 'subf
479
422
  globalCodepointsByFontUrl.set(fontUsage.fontUrl, cached);
480
423
  }
481
424
  if (cached.originalCodepoints) {
482
- // Cache getCodepoints result by pageText string to avoid
483
- // recomputing for pages with identical text per font
484
425
  const pageText = fontUsage.pageText ?? '';
485
426
  let pageCodepoints = codepointsCache.get(pageText);
486
427
  if (!pageCodepoints) {
@@ -504,13 +445,177 @@ async function subsetFonts(assetGraph, { formats = ['woff2'], subsetPath = 'subf
504
445
  }
505
446
  }
506
447
  }
448
+ }
449
+ // Inject __subset font-family names into CSS declarations and SVG attributes
450
+ // so the browser picks up the subset fonts instead of the originals.
451
+ function injectSubsetFontFamilies(assetGraph, htmlOrSvgAssetTextsWithProps, omitFallbacks) {
452
+ const webfontNameMap = Object.create(null);
453
+ for (const { fontUsages } of htmlOrSvgAssetTextsWithProps) {
454
+ for (const { subsets, fontFamilies, props } of fontUsages) {
455
+ if (subsets) {
456
+ for (const fontFamily of fontFamilies) {
457
+ webfontNameMap[fontFamily.toLowerCase()] =
458
+ `${props['font-family']}__subset`;
459
+ }
460
+ }
461
+ }
462
+ }
463
+ let customPropertyDefinitions;
464
+ const cssAssetsDirtiedByCustomProps = new Set();
465
+ for (const svgAsset of assetGraph.findAssets({ type: 'Svg' })) {
466
+ if (!svgAsset.isLoaded)
467
+ continue;
468
+ let changesMade = false;
469
+ for (const element of Array.from(svgAsset.parseTree.querySelectorAll('[font-family]'))) {
470
+ const fontFamilies = cssListHelpers.splitByCommas(element.getAttribute('font-family'));
471
+ for (let i = 0; i < fontFamilies.length; i += 1) {
472
+ const subsetFontFamily = webfontNameMap[cssFontParser.parseFontFamily(fontFamilies[i])[0].toLowerCase()];
473
+ if (subsetFontFamily && !fontFamilies.includes(subsetFontFamily)) {
474
+ fontFamilies.splice(i, omitFallbacks ? 1 : 0, (0, fontFaceHelpers_1.maybeCssQuote)(subsetFontFamily));
475
+ i += 1;
476
+ element.setAttribute('font-family', fontFamilies.join(', '));
477
+ changesMade = true;
478
+ }
479
+ }
480
+ }
481
+ if (changesMade) {
482
+ svgAsset.markDirty();
483
+ }
484
+ }
485
+ const cssAssets = assetGraph.findAssets({ type: 'Css', isLoaded: true });
486
+ const parseTreeToAsset = new Map();
487
+ for (const cssAsset of cssAssets) {
488
+ parseTreeToAsset.set(cssAsset.parseTree, cssAsset);
489
+ }
490
+ for (const cssAsset of cssAssets) {
491
+ let changesMade = false;
492
+ cssAsset.eachRuleInParseTree((cssRule) => {
493
+ if (cssRule.parent.type !== 'rule' || cssRule.type !== 'decl')
494
+ return;
495
+ const propName = cssRule.prop.toLowerCase();
496
+ if ((propName === 'font' || propName === 'font-family') &&
497
+ cssRule.value.includes('var(')) {
498
+ if (!customPropertyDefinitions) {
499
+ customPropertyDefinitions = findCustomPropertyDefinitions(cssAssets);
500
+ }
501
+ for (const customPropertyName of extractReferencedCustomPropertyNames(cssRule.value)) {
502
+ for (const relatedCssRule of [
503
+ cssRule,
504
+ ...(customPropertyDefinitions[customPropertyName] || []),
505
+ ]) {
506
+ const modifiedValue = injectSubsetDefinitions(relatedCssRule.value, webfontNameMap, omitFallbacks);
507
+ if (modifiedValue !== relatedCssRule.value) {
508
+ relatedCssRule.value = modifiedValue;
509
+ const ownerAsset = parseTreeToAsset.get(relatedCssRule.root());
510
+ if (ownerAsset) {
511
+ cssAssetsDirtiedByCustomProps.add(ownerAsset);
512
+ }
513
+ }
514
+ }
515
+ }
516
+ }
517
+ else if (propName === 'font-family') {
518
+ const fontFamilies = cssListHelpers.splitByCommas(cssRule.value);
519
+ for (let i = 0; i < fontFamilies.length; i += 1) {
520
+ const subsetFontFamily = webfontNameMap[cssFontParser.parseFontFamily(fontFamilies[i])[0].toLowerCase()];
521
+ if (subsetFontFamily && !fontFamilies.includes(subsetFontFamily)) {
522
+ fontFamilies.splice(i, omitFallbacks ? 1 : 0, (0, fontFaceHelpers_1.maybeCssQuote)(subsetFontFamily));
523
+ i += 1;
524
+ cssRule.value = fontFamilies.join(', ');
525
+ changesMade = true;
526
+ }
527
+ }
528
+ }
529
+ else if (propName === 'font') {
530
+ const fontProperties = cssFontParser.parseFont(cssRule.value);
531
+ const fontFamilies = fontProperties && fontProperties['font-family'].map(unquote);
532
+ if (!fontFamilies)
533
+ return;
534
+ const subsetFontFamily = webfontNameMap[fontFamilies[0].toLowerCase()];
535
+ if (!subsetFontFamily || fontFamilies.includes(subsetFontFamily))
536
+ return;
537
+ if (omitFallbacks) {
538
+ fontFamilies.shift();
539
+ }
540
+ fontFamilies.unshift(subsetFontFamily);
541
+ const stylePrefix = fontProperties['font-style']
542
+ ? `${fontProperties['font-style']} `
543
+ : '';
544
+ const weightPrefix = fontProperties['font-weight']
545
+ ? `${fontProperties['font-weight']} `
546
+ : '';
547
+ const lineHeightSuffix = fontProperties['line-height']
548
+ ? `/${fontProperties['line-height']}`
549
+ : '';
550
+ cssRule.value = `${stylePrefix}${weightPrefix}${fontProperties['font-size']}${lineHeightSuffix} ${fontFamilies.map(fontFaceHelpers_1.maybeCssQuote).join(', ')}`;
551
+ changesMade = true;
552
+ }
553
+ });
554
+ if (changesMade) {
555
+ cssAsset.markDirty();
556
+ }
557
+ }
558
+ for (const dirtiedAsset of cssAssetsDirtiedByCustomProps) {
559
+ dirtiedAsset.markDirty();
560
+ }
561
+ }
562
+ async function subsetFonts(assetGraph, { formats = ['woff2'], subsetPath = 'subfont/', omitFallbacks = false, inlineCss = false, fontDisplay, hrefType = 'rootRelative', onlyInfo, dynamic, console = global.console, text, sourceMaps = false, debug = false, concurrency, chromeArgs = [], cacheDir = null, } = {}) {
563
+ if (fontDisplay && !validFontDisplayValues.includes(fontDisplay)) {
564
+ fontDisplay = undefined;
565
+ }
566
+ // Pre-warm the WASM pool: start compiling harfbuzz WASM while
567
+ // collectTextsByPage traces fonts. Compilation (~50-200ms) overlaps
568
+ // with tracing work rather than appearing on the critical path.
569
+ subsetFontWithGlyphs.warmup().catch((err) => {
570
+ if (debug) {
571
+ console.warn('WASM warmup failed (will retry on first subset call):', err);
572
+ }
573
+ });
574
+ const subsetUrl = urltools.ensureTrailingSlash(assetGraph.root + subsetPath);
575
+ const timings = {};
576
+ const trackPhase = (0, progress_1.makePhaseTracker)(console, debug);
577
+ const applySourceMapsPhase = trackPhase('applySourceMaps');
578
+ if (sourceMaps) {
579
+ await assetGraph.applySourceMaps({ type: 'Css' });
580
+ }
581
+ timings.applySourceMaps = applySourceMapsPhase.end();
582
+ const googlePopulatePhase = trackPhase('populate (google fonts)');
583
+ const hasGoogleFonts = await populateGoogleFontsIfPresent(assetGraph);
584
+ timings['populate (google fonts)'] = googlePopulatePhase.end(hasGoogleFonts ? null : 'skipped, no Google Fonts found');
585
+ const htmlOrSvgAssets = assetGraph.findAssets({
586
+ $or: [
587
+ {
588
+ type: 'Html',
589
+ isInline: false,
590
+ },
591
+ {
592
+ type: 'Svg',
593
+ },
594
+ ],
595
+ });
596
+ const collectPhase = trackPhase(`collectTextsByPage (${htmlOrSvgAssets.length} pages)`);
597
+ const { htmlOrSvgAssetTextsWithProps, fontFaceDeclarationsByHtmlOrSvgAsset, subTimings, } = await collectTextsByPage(assetGraph, htmlOrSvgAssets, {
598
+ text,
599
+ console,
600
+ dynamic,
601
+ debug,
602
+ concurrency,
603
+ chromeArgs,
604
+ });
605
+ timings.collectTextsByPage = collectPhase.end();
606
+ timings.collectTextsByPageDetails = subTimings;
607
+ const omitFallbacksPhase = trackPhase('omitFallbacks processing');
608
+ const potentiallyOrphanedAssets = new Set();
609
+ if (omitFallbacks) {
610
+ removeOriginalFontFaceRules(htmlOrSvgAssets, fontFaceDeclarationsByHtmlOrSvgAsset, potentiallyOrphanedAssets);
611
+ }
612
+ timings['omitFallbacks processing'] = omitFallbacksPhase.end();
613
+ const codepointPhase = trackPhase('codepoint generation');
614
+ await computeCodepoints(assetGraph, htmlOrSvgAssetTextsWithProps, fontDisplay);
507
615
  timings['codepoint generation'] = codepointPhase.end();
508
616
  if (onlyInfo) {
509
617
  return {
510
- fontInfo: htmlOrSvgAssetTextsWithProps.map(({ fontUsages, htmlOrSvgAsset }) => ({
511
- assetFileName: htmlOrSvgAsset.nonInlineAncestor.urlOrDescription,
512
- fontUsages: fontUsages.map((fontUsage) => (({ hasFontFeatureSettings, fontFeatureTags, ...rest }) => rest)(fontUsage)),
513
- })),
618
+ fontInfo: buildFontInfoReport(htmlOrSvgAssetTextsWithProps),
514
619
  timings,
515
620
  };
516
621
  }
@@ -857,124 +962,7 @@ async function subsetFonts(assetGraph, { formats = ['woff2'], subsetPath = 'subf
857
962
  }
858
963
  timings['Google Fonts + cleanup'] = googleCleanupPhase.end();
859
964
  const injectPhase = trackPhase('inject subset font-family into CSS/SVG');
860
- // Use subsets in font-family:
861
- const webfontNameMap = Object.create(null);
862
- for (const { fontUsages } of htmlOrSvgAssetTextsWithProps) {
863
- for (const { subsets, fontFamilies, props } of fontUsages) {
864
- if (subsets) {
865
- for (const fontFamily of fontFamilies) {
866
- webfontNameMap[fontFamily.toLowerCase()] =
867
- `${props['font-family']}__subset`;
868
- }
869
- }
870
- }
871
- }
872
- let customPropertyDefinitions;
873
- const cssAssetsDirtiedByCustomProps = new Set();
874
- // Inject subset font name before original webfont in SVG font-family attributes
875
- const svgAssets = assetGraph.findAssets({ type: 'Svg' });
876
- for (const svgAsset of svgAssets) {
877
- if (!svgAsset.isLoaded)
878
- continue;
879
- let changesMade = false;
880
- for (const element of Array.from(svgAsset.parseTree.querySelectorAll('[font-family]'))) {
881
- const fontFamilies = cssListHelpers.splitByCommas(element.getAttribute('font-family'));
882
- for (let i = 0; i < fontFamilies.length; i += 1) {
883
- const subsetFontFamily = webfontNameMap[cssFontParser.parseFontFamily(fontFamilies[i])[0].toLowerCase()];
884
- if (subsetFontFamily && !fontFamilies.includes(subsetFontFamily)) {
885
- fontFamilies.splice(i, omitFallbacks ? 1 : 0, (0, fontFaceHelpers_1.maybeCssQuote)(subsetFontFamily));
886
- i += 1;
887
- element.setAttribute('font-family', fontFamilies.join(', '));
888
- changesMade = true;
889
- }
890
- }
891
- }
892
- if (changesMade) {
893
- svgAsset.markDirty();
894
- }
895
- }
896
- // Inject subset font name before original webfont in CSS
897
- const cssAssets = assetGraph.findAssets({
898
- type: 'Css',
899
- isLoaded: true,
900
- });
901
- const parseTreeToAsset = new Map();
902
- for (const cssAsset of cssAssets) {
903
- parseTreeToAsset.set(cssAsset.parseTree, cssAsset);
904
- }
905
- for (const cssAsset of cssAssets) {
906
- let changesMade = false;
907
- cssAsset.eachRuleInParseTree((cssRule) => {
908
- if (cssRule.parent.type !== 'rule' || cssRule.type !== 'decl')
909
- return;
910
- const propName = cssRule.prop.toLowerCase();
911
- if ((propName === 'font' || propName === 'font-family') &&
912
- cssRule.value.includes('var(')) {
913
- if (!customPropertyDefinitions) {
914
- customPropertyDefinitions = findCustomPropertyDefinitions(cssAssets);
915
- }
916
- for (const customPropertyName of extractReferencedCustomPropertyNames(cssRule.value)) {
917
- for (const relatedCssRule of [
918
- cssRule,
919
- ...(customPropertyDefinitions[customPropertyName] || []),
920
- ]) {
921
- const modifiedValue = injectSubsetDefinitions(relatedCssRule.value, webfontNameMap, omitFallbacks // replaceOriginal
922
- );
923
- if (modifiedValue !== relatedCssRule.value) {
924
- relatedCssRule.value = modifiedValue;
925
- const ownerAsset = parseTreeToAsset.get(relatedCssRule.root());
926
- if (ownerAsset) {
927
- cssAssetsDirtiedByCustomProps.add(ownerAsset);
928
- }
929
- }
930
- }
931
- }
932
- }
933
- else if (propName === 'font-family') {
934
- const fontFamilies = cssListHelpers.splitByCommas(cssRule.value);
935
- for (let i = 0; i < fontFamilies.length; i += 1) {
936
- const subsetFontFamily = webfontNameMap[cssFontParser.parseFontFamily(fontFamilies[i])[0].toLowerCase()];
937
- if (subsetFontFamily && !fontFamilies.includes(subsetFontFamily)) {
938
- fontFamilies.splice(i, omitFallbacks ? 1 : 0, (0, fontFaceHelpers_1.maybeCssQuote)(subsetFontFamily));
939
- i += 1;
940
- cssRule.value = fontFamilies.join(', ');
941
- changesMade = true;
942
- }
943
- }
944
- }
945
- else if (propName === 'font') {
946
- const fontProperties = cssFontParser.parseFont(cssRule.value);
947
- const fontFamilies = fontProperties && fontProperties['font-family'].map(unquote);
948
- if (!fontFamilies)
949
- return;
950
- const subsetFontFamily = webfontNameMap[fontFamilies[0].toLowerCase()];
951
- if (!subsetFontFamily || fontFamilies.includes(subsetFontFamily))
952
- return;
953
- // Rebuild the font shorthand with the subset family prepended
954
- if (omitFallbacks) {
955
- fontFamilies.shift();
956
- }
957
- fontFamilies.unshift(subsetFontFamily);
958
- const stylePrefix = fontProperties['font-style']
959
- ? `${fontProperties['font-style']} `
960
- : '';
961
- const weightPrefix = fontProperties['font-weight']
962
- ? `${fontProperties['font-weight']} `
963
- : '';
964
- const lineHeightSuffix = fontProperties['line-height']
965
- ? `/${fontProperties['line-height']}`
966
- : '';
967
- cssRule.value = `${stylePrefix}${weightPrefix}${fontProperties['font-size']}${lineHeightSuffix} ${fontFamilies.map(fontFaceHelpers_1.maybeCssQuote).join(', ')}`;
968
- changesMade = true;
969
- }
970
- });
971
- if (changesMade) {
972
- cssAsset.markDirty();
973
- }
974
- }
975
- for (const dirtiedAsset of cssAssetsDirtiedByCustomProps) {
976
- dirtiedAsset.markDirty();
977
- }
965
+ injectSubsetFontFamilies(assetGraph, htmlOrSvgAssetTextsWithProps, omitFallbacks);
978
966
  timings['inject subset font-family'] = injectPhase.end();
979
967
  const orphanCleanupPhase = trackPhase('source maps + orphan cleanup');
980
968
  if (sourceMaps) {
@@ -1 +1 @@
1
- {"version":3,"file":"subsetFonts.js","sourceRoot":"","sources":["../src/subsetFonts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"subsetFonts.js","sourceRoot":"","sources":["../src/subsetFonts.ts"],"names":[],"mappings":"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"}
@@ -1,24 +1,10 @@
1
1
  import type { Asset, AssetGraph } from 'assetgraph';
2
- import type { VariationAxes } from './types/shared';
2
+ import type { VariationAxes, FontUsage } from './types/shared';
3
3
  type FontBuffer = Buffer | Uint8Array;
4
- interface FontUsage {
5
- text: string;
6
- pageText?: string;
7
- fontUrl?: string;
8
- hasFontFeatureSettings?: boolean;
9
- fontFeatureTags?: Iterable<string>;
10
- subsets?: Record<string, Buffer>;
11
- smallestSubsetSize?: number;
12
- smallestSubsetFormat?: string;
13
- variationAxes?: VariationAxes;
14
- fullyInstanced?: boolean;
15
- numAxesPinned?: number;
16
- numAxesReduced?: number;
17
- }
18
4
  interface AssetTextWithProps {
19
5
  fontUsages: FontUsage[];
20
6
  }
21
- type ExtraSubsetCacheOptions = Record<string, boolean | string[]>;
7
+ type ExtraSubsetCacheOptions = Record<string, boolean | string[] | undefined>;
22
8
  declare function subsetCacheKey(fontBuffer: FontBuffer, text: string, targetFormat: string, variationAxes: VariationAxes, featureGlyphIds: number[] | undefined, extraOptions?: ExtraSubsetCacheOptions | undefined): string;
23
9
  declare class SubsetDiskCache {
24
10
  private _cacheDir;
@@ -1 +1 @@
1
- {"version":3,"file":"subsetGeneration.d.ts","sourceRoot":"","sources":["../src/subsetGeneration.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACpD,OAAO,KAAK,EAAE,aAAa,EAAmB,MAAM,gBAAgB,CAAC;AAcrE,KAAK,UAAU,GAAG,MAAM,GAAG,UAAU,CAAC;AAEtC,UAAU,SAAS;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,eAAe,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IACnC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,UAAU,kBAAkB;IAC1B,UAAU,EAAE,SAAS,EAAE,CAAC;CACzB;AAwBD,KAAK,uBAAuB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,EAAE,CAAC,CAAC;AAElE,iBAAS,cAAc,CACrB,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,MAAM,EACpB,aAAa,EAAE,aAAa,EAC5B,eAAe,EAAE,MAAM,EAAE,GAAG,SAAS,EACrC,YAAY,GAAE,uBAAuB,GAAG,SAAqB,GAC5D,MAAM,CAWR;AAED,cAAM,eAAe;IACnB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,QAAQ,CAAiB;IACjC,OAAO,CAAC,QAAQ,CAAU;IAC1B,OAAO,CAAC,YAAY,CAAU;gBAElB,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,GAAG,SAAS;YAOnD,UAAU;IAkBlB,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAS7C,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CA0BtD;AAED,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,MAAM,EACd,aAAa,GAAE,aAAa,GAAG,IAAW,GACzC,MAAM,CAOR;AAED,wBAAsB,sBAAsB,CAC1C,UAAU,EAAE,UAAU,EACtB,4BAA4B,EAAE,kBAAkB,EAAE,EAClD,OAAO,EAAE,MAAM,EAAE,EACjB,kCAAkC,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EACzE,QAAQ,GAAE,MAAM,GAAG,IAAW,EAC9B,OAAO,GAAE,OAAO,GAAG,IAAW,EAC9B,KAAK,UAAQ,GACZ,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CA2Q7B;AAGD,OAAO,EACL,cAAc,IAAI,eAAe,EACjC,eAAe,IAAI,gBAAgB,GACpC,CAAC"}
1
+ {"version":3,"file":"subsetGeneration.d.ts","sourceRoot":"","sources":["../src/subsetGeneration.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACpD,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAe/D,KAAK,UAAU,GAAG,MAAM,GAAG,UAAU,CAAC;AAEtC,UAAU,kBAAkB;IAC1B,UAAU,EAAE,SAAS,EAAE,CAAC;CACzB;AA2BD,KAAK,uBAAuB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC;AAE9E,iBAAS,cAAc,CACrB,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,MAAM,EACpB,aAAa,EAAE,aAAa,EAC5B,eAAe,EAAE,MAAM,EAAE,GAAG,SAAS,EACrC,YAAY,GAAE,uBAAuB,GAAG,SAAqB,GAC5D,MAAM,CAWR;AAED,cAAM,eAAe;IACnB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,QAAQ,CAAiB;IACjC,OAAO,CAAC,QAAQ,CAAU;IAC1B,OAAO,CAAC,YAAY,CAAU;gBAElB,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,GAAG,SAAS;YAOnD,UAAU;IAkBlB,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAS7C,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CA0BtD;AAID,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,MAAM,EACd,aAAa,GAAE,aAAa,GAAG,IAAW,GACzC,MAAM,CAOR;AAED,wBAAsB,sBAAsB,CAC1C,UAAU,EAAE,UAAU,EACtB,4BAA4B,EAAE,kBAAkB,EAAE,EAClD,OAAO,EAAE,MAAM,EAAE,EACjB,kCAAkC,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EACzE,QAAQ,GAAE,MAAM,GAAG,IAAW,EAC9B,OAAO,GAAE,OAAO,GAAG,IAAW,EAC9B,KAAK,UAAQ,GACZ,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAqQ7B;AAGD,OAAO,EACL,cAAc,IAAI,eAAe,EACjC,eAAe,IAAI,gBAAgB,GACpC,CAAC"}