@hyperframes/core 0.8.139 → 0.8.141

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.
Files changed (38) hide show
  1. package/dist/beats/beatDetection.d.ts +5 -2
  2. package/dist/beats/beatDetection.d.ts.map +1 -1
  3. package/dist/beats/beatDetection.js +7 -4
  4. package/dist/beats/beatDetection.js.map +1 -1
  5. package/dist/compositionReadiness.d.ts +2 -2
  6. package/dist/compositionReadiness.d.ts.map +1 -1
  7. package/dist/compositionReadiness.js +13 -10
  8. package/dist/compositionReadiness.js.map +1 -1
  9. package/dist/fonts/deterministicFonts.d.ts +7 -0
  10. package/dist/fonts/deterministicFonts.d.ts.map +1 -1
  11. package/dist/fonts/deterministicFonts.js +63 -37
  12. package/dist/fonts/deterministicFonts.js.map +1 -1
  13. package/dist/fonts/fontDiagnostics.d.ts +37 -0
  14. package/dist/fonts/fontDiagnostics.d.ts.map +1 -0
  15. package/dist/fonts/fontDiagnostics.js +31 -0
  16. package/dist/fonts/fontDiagnostics.js.map +1 -0
  17. package/dist/generated/runtime-inline.js +1 -1
  18. package/dist/generated/runtime-inline.js.map +1 -1
  19. package/dist/hyperframe.runtime.iife.js +59 -59
  20. package/dist/index.d.ts +1 -0
  21. package/dist/index.d.ts.map +1 -1
  22. package/dist/index.js +1 -0
  23. package/dist/index.js.map +1 -1
  24. package/dist/previewProxyBox.d.ts +12 -0
  25. package/dist/previewProxyBox.d.ts.map +1 -0
  26. package/dist/previewProxyBox.js +28 -0
  27. package/dist/previewProxyBox.js.map +1 -0
  28. package/dist/runtime/bridge.d.ts +1 -0
  29. package/dist/runtime/bridge.d.ts.map +1 -1
  30. package/dist/runtime/bridge.js +1 -0
  31. package/dist/runtime/bridge.js.map +1 -1
  32. package/dist/runtime/protocol.d.ts +1 -0
  33. package/dist/runtime/protocol.d.ts.map +1 -1
  34. package/dist/runtime/protocol.js +5 -0
  35. package/dist/runtime/protocol.js.map +1 -1
  36. package/dist/runtime/types.d.ts +2 -1
  37. package/dist/runtime/types.d.ts.map +1 -1
  38. package/package.json +8 -4
@@ -18,8 +18,11 @@ export declare function computeRmsAt(channelData: Float32Array, sampleRate: numb
18
18
  /** Normalized beat strength (0–1) at an audio-file time, using a track peak. */
19
19
  export declare function strengthAtTime(analysis: Pick<MusicBeatAnalysis, "channelData" | "sampleRate" | "peak">, time: number): number;
20
20
  export declare function detectBeats(audioBuffer: AudioBuffer): Promise<number[]>;
21
- export declare function analyzeMusicFromBuffer(audioBuffer: AudioBuffer): Promise<MusicBeatAnalysis>;
21
+ export interface MusicAnalysisOptions {
22
+ pause?: () => Promise<void>;
23
+ }
24
+ export declare function analyzeMusicFromBuffer(audioBuffer: AudioBuffer, { pause }?: MusicAnalysisOptions): Promise<MusicBeatAnalysis>;
22
25
  export declare function detectBeatsFromUrl(url: string): Promise<number[]>;
23
- export declare function analyzeMusicFromUrl(url: string): Promise<MusicBeatAnalysis>;
26
+ export declare function analyzeMusicFromUrl(url: string, options?: MusicAnalysisOptions): Promise<MusicBeatAnalysis>;
24
27
  export {};
25
28
  //# sourceMappingURL=beatDetection.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"beatDetection.d.ts","sourceRoot":"","sources":["../../src/beats/beatDetection.ts"],"names":[],"mappings":"AAIA,KAAK,SAAS,GAAG,CAAC,MAAM,EAAE,WAAW,KAAK,MAAM,CAAC;AAOjD,wBAAgB,gBAAgB,CAC9B,QAAQ,GAAE,MAAM,OAAO,CAAC,OAAO,CAA6B,GAC3D,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,CAmB3B;AAKD,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,iFAAiF;IACjF,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,aAAa,EAAE,MAAM,GAAG,KAAK,GAAG,WAAW,CAAC;IAC5C;iFAC6E;IAC7E,WAAW,EAAE,YAAY,GAAG,IAAI,CAAC;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,2DAA2D;IAC3D,IAAI,EAAE,MAAM,CAAC;CACd;AAID,sDAAsD;AACtD,wBAAgB,YAAY,CAAC,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAWhG;AAED,gFAAgF;AAChF,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,IAAI,CAAC,iBAAiB,EAAE,aAAa,GAAG,YAAY,GAAG,MAAM,CAAC,EACxE,IAAI,EAAE,MAAM,GACX,MAAM,CAGR;AAGD,wBAAsB,WAAW,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAwC7E;AAkGD,wBAAsB,sBAAsB,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,iBAAiB,CAAC,CA6DjG;AAED,wBAAsB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAUvE;AAED,wBAAsB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAUjF"}
1
+ {"version":3,"file":"beatDetection.d.ts","sourceRoot":"","sources":["../../src/beats/beatDetection.ts"],"names":[],"mappings":"AAIA,KAAK,SAAS,GAAG,CAAC,MAAM,EAAE,WAAW,KAAK,MAAM,CAAC;AAOjD,wBAAgB,gBAAgB,CAC9B,QAAQ,GAAE,MAAM,OAAO,CAAC,OAAO,CAA6B,GAC3D,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,CAmB3B;AAKD,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,iFAAiF;IACjF,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,aAAa,EAAE,MAAM,GAAG,KAAK,GAAG,WAAW,CAAC;IAC5C;iFAC6E;IAC7E,WAAW,EAAE,YAAY,GAAG,IAAI,CAAC;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,2DAA2D;IAC3D,IAAI,EAAE,MAAM,CAAC;CACd;AAID,sDAAsD;AACtD,wBAAgB,YAAY,CAAC,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAWhG;AAED,gFAAgF;AAChF,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,IAAI,CAAC,iBAAiB,EAAE,aAAa,GAAG,YAAY,GAAG,MAAM,CAAC,EACxE,IAAI,EAAE,MAAM,GACX,MAAM,CAGR;AAGD,wBAAsB,WAAW,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAwC7E;AAiGD,MAAM,WAAW,oBAAoB;IACnC,KAAK,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7B;AAGD,wBAAsB,sBAAsB,CAC1C,WAAW,EAAE,WAAW,EACxB,EAAE,KAAK,EAAE,GAAE,oBAAyB,GACnC,OAAO,CAAC,iBAAiB,CAAC,CAgE5B;AAED,wBAAsB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAUvE;AAED,wBAAsB,mBAAmB,CACvC,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAAC,iBAAiB,CAAC,CAU5B"}
@@ -171,15 +171,17 @@ function gateBeatsBySilence(beats, channelData, sampleRate) {
171
171
  return { times, strengths, peak };
172
172
  }
173
173
  // fallow-ignore-next-line complexity
174
- export async function analyzeMusicFromBuffer(audioBuffer) {
174
+ export async function analyzeMusicFromBuffer(audioBuffer, { pause } = {}) {
175
175
  const channelData = audioBuffer.getChannelData(0);
176
176
  const sampleRate = audioBuffer.sampleRate;
177
177
  const duration = audioBuffer.duration;
178
+ await pause?.();
178
179
  const rawBeats = await detectBeats(audioBuffer);
179
180
  const onsetBpm = computeBpmFromBeats(rawBeats);
180
181
  let detectiveBpm = null;
182
+ const detect = await loadBpmDetective();
183
+ await pause?.();
181
184
  try {
182
- const detect = await loadBpmDetective();
183
185
  if (detect)
184
186
  detectiveBpm = detect(audioBuffer);
185
187
  }
@@ -219,6 +221,7 @@ export async function analyzeMusicFromBuffer(audioBuffer) {
219
221
  confidence = "low";
220
222
  regularizeBpm = detectiveBpm;
221
223
  }
224
+ await pause?.();
222
225
  const gridBeats = regularizeBpm !== null ? regularizeBeats(rawBeats, regularizeBpm, duration) : rawBeats;
223
226
  const gated = gateBeatsBySilence(gridBeats, channelData, sampleRate);
224
227
  return {
@@ -243,13 +246,13 @@ export async function detectBeatsFromUrl(url) {
243
246
  await audioContext.close();
244
247
  }
245
248
  }
246
- export async function analyzeMusicFromUrl(url) {
249
+ export async function analyzeMusicFromUrl(url, options = {}) {
247
250
  const audioContext = new AudioContext();
248
251
  try {
249
252
  const response = await fetch(url);
250
253
  const arrayBuffer = await response.arrayBuffer();
251
254
  const audioBuffer = await audioContext.decodeAudioData(arrayBuffer);
252
- return analyzeMusicFromBuffer(audioBuffer);
255
+ return analyzeMusicFromBuffer(audioBuffer, options);
253
256
  }
254
257
  finally {
255
258
  await audioContext.close();
@@ -1 +1 @@
1
- {"version":3,"file":"beatDetection.js","sourceRoot":"","sources":["../../src/beats/beatDetection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"beatDetection.js","sourceRoot":"","sources":["../../src/beats/beatDetection.ts"],"names":[],"mappings":"AAKA,IAAI,mBAAmB,GAAqC,IAAI,CAAC;AAEjE,MAAM,yBAAyB,GAAG,GAAG,EAAE;AACrC,uDAAuD;AACvD,MAAM,CAAC,eAAe,CAAC,CAAC;AAE1B,MAAM,UAAU,gBAAgB,CAC9B,WAAmC,yBAAyB;IAE5D,MAAM,QAAQ,GAAG,QAAQ,KAAK,yBAAyB,CAAC;IACxD,IAAI,QAAQ,IAAI,mBAAmB,EAAE,CAAC;QACpC,OAAO,mBAAmB,CAAC;IAC7B,CAAC;IAED,MAAM,OAAO,GAAG,QAAQ,EAAE;SACvB,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAE,CAA6B,CAAC,OAAO,IAAK,CAA0B,CAAC,IAAI,IAAI,CAAC;SAC5F,KAAK,CAAC,GAAG,EAAE;QACV,wEAAwE;QACxE,oEAAoE;QACpE,IAAI,QAAQ;YAAE,mBAAmB,GAAG,IAAI,CAAC;QACzC,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;IAEL,IAAI,QAAQ,EAAE,CAAC;QACb,mBAAmB,GAAG,OAAO,CAAC;IAChC,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,WAAW,GAAG,IAAI,CAAC;AACzB,MAAM,QAAQ,GAAG,GAAG,CAAC;AAgBrB,MAAM,iBAAiB,GAAG,IAAI,CAAC,CAAC,mBAAmB;AAEnD,sDAAsD;AACtD,MAAM,UAAU,YAAY,CAAC,WAAyB,EAAE,UAAkB,EAAE,IAAY;IACtF,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,iBAAiB,CAAC,CAAC;IAC9D,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,UAAU,CAAC,CAAC;IAC7C,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,UAAU,CAAC,CAAC;IAC/C,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,CAAC,CAAC;IAC9D,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,KAAK,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;QACjC,MAAM,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC9B,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;IACf,CAAC;IACD,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;AACnD,CAAC;AAED,gFAAgF;AAChF,MAAM,UAAU,cAAc,CAC5B,QAAwE,EACxE,IAAY;IAEZ,IAAI,CAAC,QAAQ,CAAC,WAAW,IAAI,QAAQ,CAAC,IAAI,IAAI,CAAC;QAAE,OAAO,GAAG,CAAC;IAC5D,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;AACpG,CAAC;AAED,qCAAqC;AACrC,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,WAAwB;IACxD,MAAM,WAAW,GAAG,WAAW,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;IAClD,MAAM,UAAU,GAAG,WAAW,CAAC,UAAU,CAAC;IAE1C,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,GAAG,WAAW,EAAE,CAAC,IAAI,QAAQ,EAAE,CAAC;QACpE,IAAI,GAAG,GAAG,CAAC,CAAC;QACZ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC;YACrC,MAAM,MAAM,GAAG,WAAW,CAAC,CAAC,GAAG,CAAC,CAAE,CAAC;YACnC,GAAG,IAAI,MAAM,GAAG,MAAM,CAAC;QACzB,CAAC;QACD,QAAQ,CAAC,IAAI,CAAC,GAAG,GAAG,WAAW,CAAC,CAAC;IACnC,CAAC;IAED,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,eAAe,GAAG,EAAE,CAAC;IAE3B,KAAK,IAAI,CAAC,GAAG,eAAe,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,GAAG,eAAe,EAAE,CAAC,EAAE,EAAE,CAAC;QACzE,IAAI,SAAS,GAAG,CAAC,CAAC;QAClB,KAAK,IAAI,CAAC,GAAG,CAAC,GAAG,eAAe,EAAE,CAAC,GAAG,CAAC,GAAG,eAAe,EAAE,CAAC,EAAE,EAAE,CAAC;YAC/D,SAAS,IAAI,QAAQ,CAAC,CAAC,CAAE,CAAC;QAC5B,CAAC;QACD,SAAS,IAAI,eAAe,GAAG,CAAC,CAAC;QAEjC,MAAM,SAAS,GAAG,SAAS,GAAG,GAAG,CAAC;QAClC,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAE,CAAC;QAE7B,IACE,OAAO,GAAG,SAAS;YACnB,OAAO,GAAG,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;YAChC,OAAO,GAAG,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,EAChC,CAAC;YACD,MAAM,aAAa,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC,GAAG,UAAU,CAAC;YAClD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,aAAa,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAE,GAAG,GAAG,EAAE,CAAC;gBACzE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;YACtD,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,mBAAmB,CAAC,SAAmB;IAC9C,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IACtC,MAAM,IAAI,GAAa,EAAE,CAAC;IAC1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC1C,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAE,GAAG,SAAS,CAAC,CAAC,GAAG,CAAC,CAAE,CAAC,CAAC;IAC/C,CAAC;IACD,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/C,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC1C,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,CAAE,GAAG,MAAM,CAAC,GAAG,CAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAE,CAAC;IACjG,IAAI,SAAS,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAChC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,SAAS,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;AAChD,CAAC;AAED,kDAAkD;AAClD,SAAS,eAAe,CAAC,GAAW;IAClC,IAAI,CAAC,GAAG,GAAG,CAAC;IACZ,OAAO,CAAC,GAAG,GAAG;QAAE,CAAC,IAAI,CAAC,CAAC;IACvB,OAAO,CAAC,GAAG,EAAE;QAAE,CAAC,IAAI,CAAC,CAAC;IACtB,OAAO,CAAC,CAAC;AACX,CAAC;AAED,6EAA6E;AAC7E,+EAA+E;AAC/E,iCAAiC;AACjC,SAAS,cAAc,CAAC,GAAW,EAAE,SAAiB;IACpD,MAAM,UAAU,GAAG,CAAC,GAAG,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC;IAC3C,IAAI,IAAI,GAAG,GAAG,CAAC;IACf,IAAI,QAAQ,GAAG,MAAM,CAAC,iBAAiB,CAAC;IACxC,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;QAC3B,IAAI,CAAC,IAAI,CAAC;YAAE,SAAS;QACrB,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;QACrC,IAAI,IAAI,GAAG,QAAQ,EAAE,CAAC;YACpB,QAAQ,GAAG,IAAI,CAAC;YAChB,IAAI,GAAG,CAAC,CAAC;QACX,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,qCAAqC;AACrC,SAAS,eAAe,CAAC,QAAkB,EAAE,GAAW,EAAE,QAAgB;IACxE,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,QAAQ,IAAI,CAAC;QAAE,OAAO,QAAQ,CAAC;IACxE,MAAM,YAAY,GAAG,EAAE,GAAG,GAAG,CAAC;IAC9B,8EAA8E;IAC9E,+EAA+E;IAC/E,+EAA+E;IAC/E,IAAI,YAAY,GAAG,KAAK;QAAE,OAAO,QAAQ,CAAC;IAC1C,MAAM,SAAS,GAAG,YAAY,GAAG,IAAI,CAAC;IAEtC,0DAA0D;IAC1D,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,IAAI,SAAS,GAAG,CAAC,CAAC,CAAC;IACnB,KAAK,MAAM,MAAM,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;QAC3C,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,GAAG,YAAY,CAAC,GAAG,YAAY,CAAC,GAAG,YAAY,CAAC;QACvE,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,KAAK,MAAM,EAAE,IAAI,QAAQ,EAAE,CAAC;YAC1B,MAAM,KAAK,GAAG,CAAC,CAAC,EAAE,GAAG,YAAY,CAAC,GAAG,YAAY,CAAC,GAAG,YAAY,CAAC;YAClE,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,MAAM,CAAC,EAAE,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC;YACzF,IAAI,IAAI,GAAG,SAAS;gBAAE,KAAK,EAAE,CAAC;QAChC,CAAC;QACD,IAAI,KAAK,GAAG,SAAS,EAAE,CAAC;YACtB,SAAS,GAAG,KAAK,CAAC;YAClB,UAAU,GAAG,MAAM,CAAC;QACtB,CAAC;IACH,CAAC;IAED,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,IAAI,CAAC,GAAG,UAAU,EAAE,CAAC,IAAI,QAAQ,GAAG,KAAK,EAAE,CAAC,IAAI,YAAY,EAAE,CAAC;QAClE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;IAC1C,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,4EAA4E;AAC5E,0EAA0E;AAC1E,SAAS,kBAAkB,CACzB,KAAe,EACf,WAAyB,EACzB,UAAkB;IAElB,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAC3E,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,WAAW,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC;IAC5E,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,QAAQ,EAAE,IAAI,CAAC,CAAC;IACzC,MAAM,SAAS,GAAG,IAAI,GAAG,IAAI,CAAC;IAC9B,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,SAAS,GAAa,EAAE,CAAC;IAC/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,IAAI,QAAQ,CAAC,CAAC,CAAE,IAAI,SAAS,EAAE,CAAC;YAC9B,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,CAAC;YACtB,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAE,GAAG,IAAI,CAAC,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;AACpC,CAAC;AAMD,qCAAqC;AACrC,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,WAAwB,EACxB,EAAE,KAAK,KAA2B,EAAE;IAEpC,MAAM,WAAW,GAAG,WAAW,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;IAClD,MAAM,UAAU,GAAG,WAAW,CAAC,UAAU,CAAC;IAC1C,MAAM,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC;IAEtC,MAAM,KAAK,EAAE,EAAE,CAAC;IAChB,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,WAAW,CAAC,CAAC;IAChD,MAAM,QAAQ,GAAG,mBAAmB,CAAC,QAAQ,CAAC,CAAC;IAE/C,IAAI,YAAY,GAAkB,IAAI,CAAC;IACvC,MAAM,MAAM,GAAG,MAAM,gBAAgB,EAAE,CAAC;IACxC,MAAM,KAAK,EAAE,EAAE,CAAC;IAChB,IAAI,CAAC;QACH,IAAI,MAAM;YAAE,YAAY,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;IACjD,CAAC;IAAC,MAAM,CAAC;QACP,kDAAkD;IACpD,CAAC;IAED,IAAI,GAAG,GAAkB,QAAQ,CAAC;IAClC,IAAI,UAAU,GAAuC,WAAW,CAAC;IACjE,IAAI,aAAa,GAAkB,IAAI,CAAC;IAExC,IAAI,QAAQ,KAAK,IAAI,IAAI,YAAY,KAAK,IAAI,EAAE,CAAC;QAC/C,MAAM,OAAO,GACX,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,QAAQ,CAAC,GAAG,eAAe,CAAC,YAAY,CAAC,CAAC;YACnE,eAAe,CAAC,YAAY,CAAC,CAAC;QAChC,IAAI,OAAO,GAAG,IAAI,EAAE,CAAC;YACnB,0EAA0E;YAC1E,8DAA8D;YAC9D,GAAG,GAAG,cAAc,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;YAC7C,UAAU,GAAG,MAAM,CAAC;YACpB,aAAa,GAAG,GAAG,CAAC;QACtB,CAAC;aAAM,IAAI,OAAO,GAAG,GAAG,EAAE,CAAC;YACzB,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC;YAChD,UAAU,GAAG,KAAK,CAAC;YACnB,aAAa,GAAG,GAAG,CAAC;QACtB,CAAC;aAAM,CAAC;YACN,GAAG,GAAG,QAAQ,CAAC;YACf,UAAU,GAAG,WAAW,CAAC;QAC3B,CAAC;IACH,CAAC;SAAM,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QAC7B,GAAG,GAAG,QAAQ,CAAC;QACf,UAAU,GAAG,KAAK,CAAC;QACnB,aAAa,GAAG,QAAQ,CAAC;IAC3B,CAAC;SAAM,IAAI,YAAY,KAAK,IAAI,EAAE,CAAC;QACjC,GAAG,GAAG,YAAY,CAAC;QACnB,UAAU,GAAG,KAAK,CAAC;QACnB,aAAa,GAAG,YAAY,CAAC;IAC/B,CAAC;IAED,MAAM,KAAK,EAAE,EAAE,CAAC;IAChB,MAAM,SAAS,GACb,aAAa,KAAK,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC,QAAQ,EAAE,aAAa,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;IACzF,MAAM,KAAK,GAAG,kBAAkB,CAAC,SAAS,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;IAErE,OAAO;QACL,SAAS,EAAE,KAAK,CAAC,KAAK;QACtB,aAAa,EAAE,KAAK,CAAC,SAAS;QAC9B,GAAG;QACH,aAAa,EAAE,UAAU;QACzB,WAAW;QACX,UAAU;QACV,IAAI,EAAE,KAAK,CAAC,IAAI;KACjB,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,GAAW;IAClD,MAAM,YAAY,GAAG,IAAI,YAAY,EAAE,CAAC;IACxC,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;QAClC,MAAM,WAAW,GAAG,MAAM,QAAQ,CAAC,WAAW,EAAE,CAAC;QACjD,MAAM,WAAW,GAAG,MAAM,YAAY,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;QACpE,OAAO,WAAW,CAAC,WAAW,CAAC,CAAC;IAClC,CAAC;YAAS,CAAC;QACT,MAAM,YAAY,CAAC,KAAK,EAAE,CAAC;IAC7B,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,GAAW,EACX,UAAgC,EAAE;IAElC,MAAM,YAAY,GAAG,IAAI,YAAY,EAAE,CAAC;IACxC,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;QAClC,MAAM,WAAW,GAAG,MAAM,QAAQ,CAAC,WAAW,EAAE,CAAC;QACjD,MAAM,WAAW,GAAG,MAAM,YAAY,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;QACpE,OAAO,sBAAsB,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IACtD,CAAC;YAAS,CAAC;QACT,MAAM,YAAY,CAAC,KAAK,EAAE,CAAC;IAC7B,CAAC;AACH,CAAC"}
@@ -28,8 +28,8 @@ export declare function mediaReadinessInput(doc: Document, signal: AbortSignal,
28
28
  export declare function computeReadinessInput(doc: Document, signal: AbortSignal): Promise<void> | null;
29
29
  /** Composition-agnostic readiness input: waits for a frame to paint, then
30
30
  * two consecutive quiet frame gaps — an early-out once the main thread is
31
- * free, not a hold on steady sub-20fps painting. See MAX_PAINT_WAIT_MS for
32
- * what this bound does and does not cover. */
31
+ * free relative to its own frame cadence. See MAX_PAINT_WAIT_MS for
32
+ * what this bound does and does not cover. Compute and media inputs own completion. */
33
33
  export declare function paintAndIdleReadinessInput(doc: Document, signal: AbortSignal): Promise<void> | null;
34
34
  export interface CompositionReadinessResult {
35
35
  timedOut: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"compositionReadiness.d.ts","sourceRoot":"","sources":["../src/compositionReadiness.ts"],"names":[],"mappings":"AAKA;;;;4DAI4D;AAC5D,MAAM,MAAM,yBAAyB,GAAG,CACtC,GAAG,EAAE,QAAQ,EACb,MAAM,EAAE,WAAW,KAChB,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;AAE1B,MAAM,WAAW,wBAAwB;IACvC,YAAY,EAAE,gBAAgB,EAAE,CAAC;IACjC,aAAa,EAAE,gBAAgB,EAAE,CAAC;IAClC,YAAY,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,MAAM,yBAAyB,GAAG,KAAK,GAAG,aAAa,CAAC;AAE9D,eAAO,MAAM,2BAA2B,EAAE,yBAAyC,CAAC;AAEpF,MAAM,WAAW,2BAA2B;IAC1C,KAAK,CAAC,EAAE,yBAAyB,CAAC;CACnC;AAWD,wBAAgB,cAAc,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,IAAI,OAAO,CAI1D;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,IAAI,gBAAgB,CAM5E;AAyCD,iEAAiE;AACjE,wBAAgB,4BAA4B,CAC1C,GAAG,EAAE,QAAQ,EACb,EAAE,KAAa,EAAE,GAAE,2BAAgC,GAClD,wBAAwB,CAqC1B;AAmCD;uCACuC;AACvC,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,QAAQ,EACb,MAAM,EAAE,WAAW,EACnB,EAAE,KAAa,EAAE,GAAE,2BAAgC,GAClD,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAMtB;AAkBD;;;mCAGmC;AACnC,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CA0B9F;AAwCD;;;8CAG8C;AAC9C,wBAAgB,0BAA0B,CACxC,GAAG,EAAE,QAAQ,EACb,MAAM,EAAE,WAAW,GAClB,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAgBtB;AAID,MAAM,WAAW,0BAA0B;IACzC,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED;;;;;yEAKyE;AACzE,wBAAgB,0BAA0B,CACxC,GAAG,EAAE,QAAQ,EACb,SAAS,EAAE,CAAC,MAAM,EAAE,0BAA0B,KAAK,IAAI,EACvD,IAAI,GAAE,2BAA2B,GAAG;IAClC,MAAM,CAAC,EAAE,yBAAyB,EAAE,CAAC;IACrC,SAAS,CAAC,EAAE,MAAM,CAAC;CACf,GACL,IAAI,CA6BN;AAED,wBAAgB,oCAAoC,CAClD,GAAG,EAAE,QAAQ,EACb,SAAS,EAAE,CAAC,MAAM,EAAE,0BAA0B,KAAK,IAAI,EACvD,IAAI,GAAE,IAAI,CACR,2BAA2B,GAAG;IAC5B,MAAM,CAAC,EAAE,yBAAyB,EAAE,CAAC;IACrC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,EACD,OAAO,CACH,GACL,IAAI,CAKN"}
1
+ {"version":3,"file":"compositionReadiness.d.ts","sourceRoot":"","sources":["../src/compositionReadiness.ts"],"names":[],"mappings":"AAKA;;;;4DAI4D;AAC5D,MAAM,MAAM,yBAAyB,GAAG,CACtC,GAAG,EAAE,QAAQ,EACb,MAAM,EAAE,WAAW,KAChB,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;AAE1B,MAAM,WAAW,wBAAwB;IACvC,YAAY,EAAE,gBAAgB,EAAE,CAAC;IACjC,aAAa,EAAE,gBAAgB,EAAE,CAAC;IAClC,YAAY,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,MAAM,yBAAyB,GAAG,KAAK,GAAG,aAAa,CAAC;AAE9D,eAAO,MAAM,2BAA2B,EAAE,yBAAyC,CAAC;AAEpF,MAAM,WAAW,2BAA2B;IAC1C,KAAK,CAAC,EAAE,yBAAyB,CAAC;CACnC;AAWD,wBAAgB,cAAc,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,IAAI,OAAO,CAI1D;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,IAAI,gBAAgB,CAM5E;AAyCD,iEAAiE;AACjE,wBAAgB,4BAA4B,CAC1C,GAAG,EAAE,QAAQ,EACb,EAAE,KAAa,EAAE,GAAE,2BAAgC,GAClD,wBAAwB,CAqC1B;AAmCD;uCACuC;AACvC,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,QAAQ,EACb,MAAM,EAAE,WAAW,EACnB,EAAE,KAAa,EAAE,GAAE,2BAAgC,GAClD,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAMtB;AAkBD;;;mCAGmC;AACnC,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CA0B9F;AAuCD;;;uFAGuF;AACvF,wBAAgB,0BAA0B,CACxC,GAAG,EAAE,QAAQ,EACb,MAAM,EAAE,WAAW,GAClB,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAoBtB;AAID,MAAM,WAAW,0BAA0B;IACzC,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED;;;;;yEAKyE;AACzE,wBAAgB,0BAA0B,CACxC,GAAG,EAAE,QAAQ,EACb,SAAS,EAAE,CAAC,MAAM,EAAE,0BAA0B,KAAK,IAAI,EACvD,IAAI,GAAE,2BAA2B,GAAG;IAClC,MAAM,CAAC,EAAE,yBAAyB,EAAE,CAAC;IACrC,SAAS,CAAC,EAAE,MAAM,CAAC;CACf,GACL,IAAI,CA6BN;AAED,wBAAgB,oCAAoC,CAClD,GAAG,EAAE,QAAQ,EACb,SAAS,EAAE,CAAC,MAAM,EAAE,0BAA0B,KAAK,IAAI,EACvD,IAAI,GAAE,IAAI,CACR,2BAA2B,GAAG;IAC5B,MAAM,CAAC,EAAE,yBAAyB,EAAE,CAAC;IACrC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,EACD,OAAO,CACH,GACL,IAAI,CAKN"}
@@ -141,18 +141,17 @@ export function computeReadinessInput(doc, signal) {
141
141
  poll();
142
142
  });
143
143
  }
144
- // Frame-to-frame gap under which the main thread counts as free. Generous
145
- // relative to a 16.7ms (60fps) frame budget — this detects a busy stretch
146
- // (a mesh build, a shader compile), not ordinary frame-time variance.
144
+ // Gaps under this bound count as quiet on any document.
147
145
  const IDLE_FRAME_GAP_MS = 50;
146
+ // Ordinary frame jitter can span 1.5x the document's shortest observed gap.
147
+ const IDLE_FRAME_GAP_RATIO = 1.5;
148
148
  // Two consecutive quiet frames, not one: a single fast gap can follow
149
149
  // directly after the busy work finishes mid-frame and says nothing about
150
150
  // whether the next frame is also free.
151
151
  const IDLE_FRAMES_REQUIRED = 2;
152
- // Gives up on a doc that keeps producing frames below 20fps. Does NOT bound
153
- // a doc that stops painting entirely (backgrounded tab, or fewer than 3
154
- // frames total) — that still rides the full shared 8s timeout, same as
155
- // before this input existed. ponytail: 1500ms is unmeasured, retune later.
152
+ // Bounds continuing stalls. A backgrounded document with no frames still
153
+ // rides the shared timeout; this budget only bounds frames that arrive.
154
+ // ponytail: 1500ms is unmeasured; retune with frame traces.
156
155
  const MAX_PAINT_WAIT_MS = 1_500;
157
156
  // Resolves with -1 on abort instead of rejecting: every caller already
158
157
  // re-checks `signal.aborted` right after awaiting this, so a sentinel value
@@ -179,8 +178,8 @@ function nextAnimationFrame(win, signal) {
179
178
  }
180
179
  /** Composition-agnostic readiness input: waits for a frame to paint, then
181
180
  * two consecutive quiet frame gaps — an early-out once the main thread is
182
- * free, not a hold on steady sub-20fps painting. See MAX_PAINT_WAIT_MS for
183
- * what this bound does and does not cover. */
181
+ * free relative to its own frame cadence. See MAX_PAINT_WAIT_MS for
182
+ * what this bound does and does not cover. Compute and media inputs own completion. */
184
183
  export function paintAndIdleReadinessInput(doc, signal) {
185
184
  const win = doc.defaultView;
186
185
  if (!win)
@@ -190,6 +189,7 @@ export function paintAndIdleReadinessInput(doc, signal) {
190
189
  if (signal.aborted)
191
190
  return;
192
191
  let lastTs = await nextAnimationFrame(win, signal);
192
+ let shortestGap = lastTs - firstTs;
193
193
  let quietStreak = 0;
194
194
  while (!signal.aborted && quietStreak < IDLE_FRAMES_REQUIRED) {
195
195
  if (lastTs - firstTs >= MAX_PAINT_WAIT_MS)
@@ -197,7 +197,10 @@ export function paintAndIdleReadinessInput(doc, signal) {
197
197
  const ts = await nextAnimationFrame(win, signal);
198
198
  if (signal.aborted)
199
199
  return;
200
- quietStreak = ts - lastTs < IDLE_FRAME_GAP_MS ? quietStreak + 1 : 0;
200
+ const gap = ts - lastTs;
201
+ shortestGap = Math.min(shortestGap, gap);
202
+ const quiet = gap < IDLE_FRAME_GAP_MS || gap <= shortestGap * IDLE_FRAME_GAP_RATIO;
203
+ quietStreak = quiet ? quietStreak + 1 : 0;
201
204
  lastTs = ts;
202
205
  }
203
206
  })();
@@ -1 +1 @@
1
- {"version":3,"file":"compositionReadiness.js","sourceRoot":"","sources":["../src/compositionReadiness.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"compositionReadiness.js","sourceRoot":"","sources":["../src/compositionReadiness.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,5 @@
1
+ import { type FontDiagnostics } from "./fontDiagnostics.js";
2
+ export type { FontDiagnostics };
1
3
  type FontFaceSpec = {
2
4
  weight: string;
3
5
  style?: "normal" | "italic";
@@ -79,6 +81,11 @@ export declare class FontFetchError extends Error {
79
81
  readonly cause?: unknown;
80
82
  /** Unlike `message`, holds no URLs: safe for callers that must not echo resolver output. */
81
83
  readonly unresolvedFamilies: readonly string[];
84
+ /**
85
+ * Resolver stage record for log forwarding. Set ONLY on the per-compile Unresolved error; shared
86
+ * (cached or retry-exhausted) errors are never mutated. Never part of `message` or any response body.
87
+ */
88
+ diagnostics?: FontDiagnostics;
82
89
  constructor(familyName: string, url: string, message: string, cause?: unknown, code?: FontFetchErrorCode, unresolvedFamilies?: readonly string[]);
83
90
  }
84
91
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"deterministicFonts.d.ts","sourceRoot":"","sources":["../../src/fonts/deterministicFonts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"deterministicFonts.d.ts","sourceRoot":"","sources":["../../src/fonts/deterministicFonts.ts"],"names":[],"mappings":"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"}
@@ -9,6 +9,7 @@ import postcss from "postcss";
9
9
  import { EMBEDDED_FONT_DATA } from "./fontData.generated.js";
10
10
  import { fontToDataUri } from "./fontCompression.js";
11
11
  import { authoredGoogleFontStylesheets, withPageText } from "./authoredGoogleFonts.js";
12
+ import { FontDiagCollector, } from "./fontDiagnostics.js";
12
13
  /**
13
14
  * Family names that resolve to a host-OS font (or a CSS generic that the
14
15
  * browser substitutes with a host-OS font). Exported so plan-time validators
@@ -591,7 +592,7 @@ async function bundledFamilyFaceRules(canonical, normalizedFamily, emitFamily, o
591
592
  // `emitFamily` so the authored CSS keeps matching.
592
593
  const canonicalFamily = resolveAliasDisplayName(normalizedFamily);
593
594
  const googleFaces = canonicalFamily
594
- ? await fetchFamilyFaces(canonicalFamily, optional, options, fontText)
595
+ ? await fetchFamilyFaces(canonicalFamily, "bundled_supplement", optional, options, fontText)
595
596
  : [];
596
597
  // Bundled weights only cover Latin. Keep other subsets (including
597
598
  // text= responses without a range), even for weights already embedded.
@@ -617,7 +618,7 @@ async function bundledFamilyFaceRules(canonical, normalizedFamily, emitFamily, o
617
618
  }
618
619
  // Path 2: fetch from Google Fonts (with local cache)
619
620
  async function googleFamilyFaceRules(lookupFamily, emitFamily, optional, options, fontText) {
620
- const googleFaces = await fetchFamilyFaces(lookupFamily, optional, options, fontText);
621
+ const googleFaces = await fetchFamilyFaces(lookupFamily, "direct_google", optional, options, fontText);
621
622
  if (googleFaces.length === 0)
622
623
  return null;
623
624
  return googleFaces.map((face) => buildFontFaceRule(emitFamily, face.dataUri, face.weight, face.style, face.unicodeRange));
@@ -817,9 +818,11 @@ async function buildFontFaceCss(requestedFamilies, options, declaredFamilies, fo
817
818
  // Required families fetch first, so optional ones cannot spend the shared fetch budget before them.
818
819
  const requiredFirst = [...requestedFamilies].sort(([, a], [, b]) => Number(a.optional) - Number(b.optional));
819
820
  for (const [normalizedFamily, { family: originalCaseFamily, optional }] of requiredFirst) {
821
+ options.diag.beginFamily(!optional);
820
822
  const familyRules = (await resolveFamilyFaceRules(normalizedFamily, originalCaseFamily, originalCaseFamily, optional, options, fontText)) ??
821
823
  // Last, so a family that already resolves keeps exactly the faces it had.
822
824
  (await resolveDeclaredFamilyAlias(originalCaseFamily, declaredFamilies(), optional, options, fontText));
825
+ options.diag.endFamily(Boolean(familyRules));
823
826
  if (familyRules) {
824
827
  rules.push(...familyRules);
825
828
  continue;
@@ -1083,9 +1086,12 @@ async function fetchFontResource(url, init, readBody, familyName, what, options)
1083
1086
  * (4xx) so the caller skips that face. Throws {@link FontFetchError} on
1084
1087
  * transient (5xx / network) failures when `failClosedFontFetch` is set.
1085
1088
  */
1086
- async function ensureWoff2DataUri(cachePath, woff2Url, familyName, weight, style, options) {
1089
+ async function ensureWoff2DataUri(cachePath, woff2Url, familyName, weight, style, options, tally) {
1090
+ tally.total += 1;
1087
1091
  try {
1088
- return `data:font/woff2;base64,${readFileSync(cachePath).toString("base64")}`;
1092
+ const cached = `data:font/woff2;base64,${readFileSync(cachePath).toString("base64")}`;
1093
+ tally.diskCacheHit += 1;
1094
+ return cached;
1089
1095
  }
1090
1096
  catch {
1091
1097
  // Not cached yet — fall through to fetch.
@@ -1093,11 +1099,15 @@ async function ensureWoff2DataUri(cachePath, woff2Url, familyName, weight, style
1093
1099
  const woff2What = `Google Fonts woff2 (${weight}/${style})`;
1094
1100
  try {
1095
1101
  const fontResult = await fetchFontResource(woff2Url, undefined, (response) => response.arrayBuffer(), familyName, woff2What, options);
1096
- if (!fontResult.ok)
1102
+ if (!fontResult.ok) {
1103
+ const status = String(fontResult.response.status);
1104
+ tally.nonOk[status] = (tally.nonOk[status] ?? 0) + 1;
1097
1105
  return null;
1106
+ }
1098
1107
  // wx = O_CREAT|O_EXCL: atomic create, rejects symlinks, fails with
1099
1108
  // EEXIST if a concurrent call cached it between our read and write.
1100
1109
  writeFileSync(cachePath, Buffer.from(fontResult.body), { flag: "wx", mode: 0o644 });
1110
+ tally.fetchedOk += 1;
1101
1111
  }
1102
1112
  catch (err) {
1103
1113
  throwIfCallerAborted(options.abortSignal);
@@ -1105,6 +1115,7 @@ async function ensureWoff2DataUri(cachePath, woff2Url, familyName, weight, style
1105
1115
  throw err;
1106
1116
  if (err.code === "EEXIST") {
1107
1117
  // Concurrent call wrote it — read their result below.
1118
+ tally.diskCacheHit += 1;
1108
1119
  }
1109
1120
  else if (options.failClosedFontFetch) {
1110
1121
  throw fontFetchError(familyName, woff2Url, woff2What, { error: err });
@@ -1115,9 +1126,6 @@ async function ensureWoff2DataUri(cachePath, woff2Url, familyName, weight, style
1115
1126
  }
1116
1127
  return `data:font/woff2;base64,${readFileSync(cachePath).toString("base64")}`;
1117
1128
  }
1118
- // Per-process cache for Google Fonts CSS lookups, keyed by request URL —
1119
- // repeat compiles of the same family reuse one network round trip. A
1120
- // rejected lookup evicts itself so a later call still retries.
1121
1129
  const googleFontCssCache = new Map();
1122
1130
  /** Test-only reset — the cache is otherwise process-lifetime, shared across calls. */
1123
1131
  export function _clearGoogleFontCssCacheForTests() {
@@ -1135,21 +1143,22 @@ function raceAgainstAbort(promise, signal) {
1135
1143
  promise.then(resolve, reject).finally(() => signal.removeEventListener("abort", onAbort));
1136
1144
  });
1137
1145
  }
1138
- function fetchGoogleFontCss(url, familyName, options) {
1146
+ function fetchGoogleFontCss(url, familyName, options, attempt) {
1139
1147
  // Retries decide the outcome, so only callers with the same mode and attempt count share an entry.
1140
1148
  const mode = options.failClosedFontFetch ? `closed${options.retryPolicy.maxAttempts}` : "open";
1141
1149
  const key = `${mode}:${url}`;
1142
1150
  let shared = googleFontCssCache.get(key);
1151
+ attempt.cssCache = shared ? "hit" : "fresh";
1143
1152
  if (!shared) {
1144
1153
  // The shared fetch must not carry any one caller's abortSignal, or that
1145
1154
  // caller cancelling would fail the lookup for every other waiter.
1146
1155
  shared = fetchFontResource(url, { headers: { "User-Agent": WOFF2_USER_AGENT } }, (response) => response.text(), familyName, "Google Fonts CSS", { ...options, abortSignal: undefined }).then((result) => {
1147
1156
  if (result.ok)
1148
- return { ok: true, body: result.body };
1157
+ return { ok: true, body: result.body, status: result.response.status };
1149
1158
  // A transient status must not stick for the process lifetime.
1150
1159
  if (isRetryableFontFetchStatus(result.response.status))
1151
1160
  googleFontCssCache.delete(key);
1152
- return { ok: false };
1161
+ return { ok: false, status: result.response.status };
1153
1162
  });
1154
1163
  googleFontCssCache.set(key, shared);
1155
1164
  shared.catch(() => googleFontCssCache.delete(key));
@@ -1164,7 +1173,7 @@ function declaredFaceFamily(block) {
1164
1173
  return found?.[1];
1165
1174
  }
1166
1175
  // fallow-ignore-next-line complexity
1167
- async function fetchGoogleFont(familyName, options, fontText) {
1176
+ async function fetchGoogleFont(familyName, path, options, fontText) {
1168
1177
  // Agents sometimes copy the `family=` value from a Google Fonts URL into
1169
1178
  // CSS, where `+` remains a literal character instead of being decoded as a
1170
1179
  // space. Resolve that URL-style spelling through the canonical Google family
@@ -1182,26 +1191,36 @@ async function fetchGoogleFont(familyName, options, fontText) {
1182
1191
  : options.authoredStylesheets.get(normalizedFamily);
1183
1192
  // `text=` asks Google for only the characters on the page. A CJK family
1184
1193
  // without it is a hundred files, and the compile's font budget is 20s.
1185
- const urls = authoredStylesheet
1186
- ? authoredStylesheet.map((url) => withPageText(url, fontText))
1187
- : [
1188
- `https://fonts.googleapis.com/css2?family=${encodedFamily}:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,400;1,700${textParam}`,
1189
- ];
1190
- const faces = [];
1191
- for (const url of urls) {
1192
- faces.push(...(await fetchGoogleFontStylesheet(googleFamilyName, url, options)));
1194
+ const defaultUrl = `https://fonts.googleapis.com/css2?family=${encodedFamily}:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,400;1,700${textParam}`;
1195
+ const fetchStylesheet = (url, urlSource) => fetchGoogleFontStylesheet(googleFamilyName, url, options, options.diag.startAttempt(path, urlSource, /[?&]text=/.test(url) ? "present" : "absent"));
1196
+ if (!authoredStylesheet) {
1197
+ return (await fetchStylesheet(defaultUrl, "default")).faces;
1193
1198
  }
1194
- return faces;
1195
- }
1196
- async function readGoogleFontStylesheet(familyName, url, options) {
1199
+ const faces = [];
1200
+ const outcomes = [];
1201
+ for (const url of authoredStylesheet) {
1202
+ const result = await fetchStylesheet(withPageText(url, fontText), "authored");
1203
+ faces.push(...result.faces);
1204
+ if (result.faces.length === 0)
1205
+ outcomes.push(result.status ? `http_${result.status}` : "no_faces");
1206
+ }
1207
+ if (faces.length > 0)
1208
+ return faces;
1209
+ const fallback = (await fetchStylesheet(defaultUrl, "default")).faces;
1210
+ options.log.warn(`[Compiler] google_font_link_fallback family="${familyName}" link_outcomes=${outcomes.join(",")} ` +
1211
+ `fallback_faces=${fallback.length}`);
1212
+ return fallback;
1213
+ }
1214
+ async function readGoogleFontStylesheet(familyName, url, options, attempt) {
1197
1215
  try {
1198
- const cssResult = await fetchGoogleFontCss(url, familyName, options);
1216
+ const cssResult = await fetchGoogleFontCss(url, familyName, options, attempt);
1217
+ attempt.cssStatus = cssResult.status;
1199
1218
  if (!cssResult.ok) {
1200
1219
  // Missing families are deterministic; transient failures follow the
1201
1220
  // caller's retry and fail-closed policy.
1202
- return null;
1221
+ return { css: null, status: cssResult.status };
1203
1222
  }
1204
- return cssResult.body;
1223
+ return { css: cssResult.body };
1205
1224
  }
1206
1225
  catch (err) {
1207
1226
  // Rethrow typed error untouched. Network / DNS / fetch-throws are
@@ -1213,7 +1232,7 @@ async function readGoogleFontStylesheet(familyName, url, options) {
1213
1232
  if (options.failClosedFontFetch) {
1214
1233
  throw fontFetchError(familyName, url, "Google Fonts CSS", { error: err });
1215
1234
  }
1216
- return null;
1235
+ return { css: null };
1217
1236
  }
1218
1237
  }
1219
1238
  function parseGoogleFontSource(match, familyName) {
@@ -1230,11 +1249,13 @@ function parseGoogleFontSource(match, familyName) {
1230
1249
  unicodeRange: match[4]?.trim() || undefined,
1231
1250
  };
1232
1251
  }
1233
- async function fetchGoogleFontStylesheet(familyName, url, options) {
1252
+ async function fetchGoogleFontStylesheet(familyName, url, options, attempt) {
1234
1253
  const slug = fontSlug(familyName);
1235
- const cssText = await readGoogleFontStylesheet(familyName, url, options);
1236
- if (!cssText)
1237
- return [];
1254
+ const read = await readGoogleFontStylesheet(familyName, url, options, attempt);
1255
+ if (read.css === null)
1256
+ return { faces: [], status: read.status };
1257
+ const cssText = read.css;
1258
+ attempt.blocksTotal = (cssText.match(/@font-face\s*\{/gi) ?? []).length;
1238
1259
  // Parse @font-face blocks from the CSS response. The optional trailing
1239
1260
  // capture grabs each face's `unicode-range` (Google emits it after `src`)
1240
1261
  // so the injected face only claims the codepoints the subset actually
@@ -1244,27 +1265,28 @@ async function fetchGoogleFontStylesheet(familyName, url, options) {
1244
1265
  const faceRegex = /@font-face\s*\{[^}]*font-style:\s*(normal|italic|oblique(?:\s+-?\d+(?:\.\d+)?deg){0,2})\s*;[^}]*font-weight:\s*(\d+(?:\s+\d+)?)[^}]*src:\s*url\(([^)]+)\)\s*format\(['"]woff2['"]\)(?:[^}]*?unicode-range:\s*([^;}]+))?[^}]*\}/gi;
1245
1266
  const faces = [];
1246
1267
  for (const match of cssText.matchAll(faceRegex)) {
1268
+ attempt.regexMatches += 1;
1247
1269
  const source = parseGoogleFontSource(match, familyName);
1248
1270
  if (!source)
1249
1271
  continue;
1250
1272
  const { weight, style, unicodeRange, url: woff2Url } = source;
1251
1273
  const cachePath = cachedWoff2Path(slug, weight, style, subsetToken(woff2Url));
1252
- const dataUri = await ensureWoff2DataUri(cachePath, woff2Url, familyName, weight, style, options);
1274
+ const dataUri = await ensureWoff2DataUri(cachePath, woff2Url, familyName, weight, style, options, attempt.assets);
1253
1275
  if (dataUri)
1254
1276
  faces.push({ weight, style, dataUri, unicodeRange });
1255
1277
  }
1256
1278
  if (faces.length > 0) {
1257
1279
  options.log.info(`[Compiler] Fetched ${faces.length} font face(s) for "${familyName}" from Google Fonts (cached to ${fontCacheDir(slug)})`);
1258
1280
  }
1259
- return faces;
1281
+ return { faces };
1260
1282
  }
1261
1283
  /** An optional family gets one retry on a transient failure, then renders its fallback with a warning. */
1262
- async function fetchFamilyFaces(familyName, optional, options, fontText) {
1284
+ async function fetchFamilyFaces(familyName, path, optional, options, fontText) {
1263
1285
  if (!optional)
1264
- return fetchGoogleFont(familyName, options, fontText);
1286
+ return fetchGoogleFont(familyName, path, options, fontText);
1265
1287
  const maxAttempts = Math.min(options.retryPolicy.maxAttempts, 2);
1266
1288
  try {
1267
- return await fetchGoogleFont(familyName, { ...options, retryPolicy: { ...options.retryPolicy, maxAttempts } }, fontText);
1289
+ return await fetchGoogleFont(familyName, path, { ...options, retryPolicy: { ...options.retryPolicy, maxAttempts } }, fontText);
1268
1290
  }
1269
1291
  catch (err) {
1270
1292
  if (!(err instanceof FontFetchUnavailableError))
@@ -1422,6 +1444,7 @@ function placeAfterEveryStylesheet(document, head, styleEl) {
1422
1444
  head.appendChild(styleEl);
1423
1445
  }
1424
1446
  export async function injectDeterministicFontFaces(html, options = {}) {
1447
+ const diag = new FontDiagCollector();
1425
1448
  const failClosedFontFetch = options.failClosedFontFetch === true;
1426
1449
  const fetchImpl = options.fetchImpl ?? fetch;
1427
1450
  const allowSystemFontCapture = options.allowSystemFontCapture !== false;
@@ -1435,6 +1458,7 @@ export async function injectDeterministicFontFaces(html, options = {}) {
1435
1458
  retryPolicy,
1436
1459
  retryDeadlineMs: Date.now() + retryPolicy.maxElapsedMs,
1437
1460
  authoredStylesheets: authoredGoogleFontStylesheets(html),
1461
+ diag,
1438
1462
  };
1439
1463
  const existingFaces = extractExistingFontFaces(html);
1440
1464
  const requestedFamilies = extractRequestedFontFamilies(html);
@@ -1452,8 +1476,10 @@ export async function injectDeterministicFontFaces(html, options = {}) {
1452
1476
  // An optional family that no source serves, or that stayed unavailable, is tolerated.
1453
1477
  const required = unresolved.filter((family) => !pendingFamilies.get(family.toLowerCase())?.optional);
1454
1478
  if (required.length > 0 && options.failClosedFontFetch) {
1455
- throw new FontFetchError(required.join(", "), "", `[Compiler] Unresolved fonts in fail-closed mode: ${required.join(", ")}. ` +
1479
+ const unresolvedError = new FontFetchError(required.join(", "), "", `[Compiler] Unresolved fonts in fail-closed mode: ${required.join(", ")}. ` +
1456
1480
  `Distributed renders require all fonts to be resolvable.`, undefined, FONT_FETCH_FAILED, unresolved);
1481
+ unresolvedError.diagnostics = diag.snapshot();
1482
+ throw unresolvedError;
1457
1483
  }
1458
1484
  if (!css) {
1459
1485
  if (unresolved.length > 0) {