@hyperframes/engine 0.4.2 → 0.4.4

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.
@@ -38,6 +38,20 @@ export interface CaptureSession {
38
38
  config?: Partial<EngineConfig>;
39
39
  }
40
40
  export declare function createCaptureSession(serverUrl: string, outputDir: string, options: CaptureOptions, onBeforeCapture?: BeforeCaptureHook | null, config?: Partial<EngineConfig>): Promise<CaptureSession>;
41
+ /**
42
+ * Classify a console "Failed to load resource" error as a font-load failure.
43
+ *
44
+ * These are expected when deterministic font injection replaces Google Fonts
45
+ * @import URLs with embedded base64 — or when the render environment has no
46
+ * network access to Google Fonts. Suppressing them reduces noise in render
47
+ * output without hiding real asset failures (images, videos, scripts, etc.).
48
+ *
49
+ * Chrome's `msg.text()` for a failed resource is typically just
50
+ * `"Failed to load resource: net::ERR_FAILED"` — the URL is only on
51
+ * `msg.location().url`. We match against both so the filter works regardless
52
+ * of which form Chrome emits.
53
+ */
54
+ export declare function isFontResourceError(type: string, text: string, locationUrl: string): boolean;
41
55
  export declare function initializeSession(session: CaptureSession): Promise<void>;
42
56
  export declare function captureFrame(session: CaptureSession, frameIndex: number, time: number): Promise<CaptureResult>;
43
57
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"frameCapture.d.ts","sourceRoot":"","sources":["../../src/services/frameCapture.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,IAAI,EAAsC,MAAM,gBAAgB,CAAC;AAM7F,OAAO,EAKL,KAAK,WAAW,EACjB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAkB,KAAK,YAAY,EAAE,MAAM,cAAc,CAAC;AACjE,OAAO,KAAK,EACV,cAAc,EACd,aAAa,EACb,mBAAmB,EACnB,kBAAkB,EACnB,MAAM,aAAa,CAAC;AAErB,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,CAAC;AAEvF,wGAAwG;AACxG,MAAM,MAAM,iBAAiB,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AAE5E,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,IAAI,CAAC;IACX,OAAO,EAAE,cAAc,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,iBAAiB,GAAG,IAAI,CAAC;IAC1C,aAAa,EAAE,OAAO,CAAC;IACvB,oBAAoB,EAAE,MAAM,EAAE,CAAC;IAC/B,WAAW,EAAE;QACX,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;QACf,eAAe,EAAE,MAAM,CAAC;QACxB,YAAY,EAAE,MAAM,CAAC;QACrB,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,WAAW,EAAE,WAAW,CAAC;IAEzB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,wBAAwB,EAAE,MAAM,CAAC;IACjC,uBAAuB,EAAE,MAAM,CAAC;IAChC,qFAAqF;IACrF,MAAM,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;CAChC;AAMD,wBAAsB,oBAAoB,CACxC,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,cAAc,EACvB,eAAe,GAAE,iBAAiB,GAAG,IAAW,EAChD,MAAM,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,GAC7B,OAAO,CAAC,cAAc,CAAC,CAsEzB;AAED,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAyJ9E;AA4ID,wBAAsB,YAAY,CAChC,OAAO,EAAE,cAAc,EACvB,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,aAAa,CAAC,CAcxB;AAED;;;GAGG;AACH,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,cAAc,EACvB,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,mBAAmB,CAAC,CAI9B;AAED,wBAAsB,mBAAmB,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAIhF;AAED,wBAAgB,6BAA6B,CAC3C,OAAO,EAAE,cAAc,EACvB,SAAS,EAAE,MAAM,EACjB,eAAe,EAAE,iBAAiB,GAAG,IAAI,GACxC,IAAI,CAeN;AAED,wBAAsB,sBAAsB,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAMrF;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,cAAc,GAAG,kBAAkB,CASjF"}
1
+ {"version":3,"file":"frameCapture.d.ts","sourceRoot":"","sources":["../../src/services/frameCapture.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,IAAI,EAAsC,MAAM,gBAAgB,CAAC;AAM7F,OAAO,EAKL,KAAK,WAAW,EACjB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAkB,KAAK,YAAY,EAAE,MAAM,cAAc,CAAC;AACjE,OAAO,KAAK,EACV,cAAc,EACd,aAAa,EACb,mBAAmB,EACnB,kBAAkB,EACnB,MAAM,aAAa,CAAC;AAErB,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,CAAC;AAEvF,wGAAwG;AACxG,MAAM,MAAM,iBAAiB,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AAE5E,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,IAAI,CAAC;IACX,OAAO,EAAE,cAAc,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,iBAAiB,GAAG,IAAI,CAAC;IAC1C,aAAa,EAAE,OAAO,CAAC;IACvB,oBAAoB,EAAE,MAAM,EAAE,CAAC;IAC/B,WAAW,EAAE;QACX,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;QACf,eAAe,EAAE,MAAM,CAAC;QACxB,YAAY,EAAE,MAAM,CAAC;QACrB,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,WAAW,EAAE,WAAW,CAAC;IAEzB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,wBAAwB,EAAE,MAAM,CAAC;IACjC,uBAAuB,EAAE,MAAM,CAAC;IAChC,qFAAqF;IACrF,MAAM,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;CAChC;AAMD,wBAAsB,oBAAoB,CACxC,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,cAAc,EACvB,eAAe,GAAE,iBAAiB,GAAG,IAAW,EAChD,MAAM,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,GAC7B,OAAO,CAAC,cAAc,CAAC,CAsEzB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAM5F;AAED,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAoJ9E;AA4ID,wBAAsB,YAAY,CAChC,OAAO,EAAE,cAAc,EACvB,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,aAAa,CAAC,CAcxB;AAED;;;GAGG;AACH,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,cAAc,EACvB,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,mBAAmB,CAAC,CAI9B;AAED,wBAAsB,mBAAmB,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAIhF;AAED,wBAAgB,6BAA6B,CAC3C,OAAO,EAAE,cAAc,EACvB,SAAS,EAAE,MAAM,EACjB,eAAe,EAAE,iBAAiB,GAAG,IAAI,GACxC,IAAI,CAeN;AAED,wBAAsB,sBAAsB,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAMrF;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,cAAc,GAAG,kBAAkB,CASjF"}
@@ -74,17 +74,34 @@ export async function createCaptureSession(serverUrl, outputDir, options, onBefo
74
74
  config,
75
75
  };
76
76
  }
77
+ /**
78
+ * Classify a console "Failed to load resource" error as a font-load failure.
79
+ *
80
+ * These are expected when deterministic font injection replaces Google Fonts
81
+ * @import URLs with embedded base64 — or when the render environment has no
82
+ * network access to Google Fonts. Suppressing them reduces noise in render
83
+ * output without hiding real asset failures (images, videos, scripts, etc.).
84
+ *
85
+ * Chrome's `msg.text()` for a failed resource is typically just
86
+ * `"Failed to load resource: net::ERR_FAILED"` — the URL is only on
87
+ * `msg.location().url`. We match against both so the filter works regardless
88
+ * of which form Chrome emits.
89
+ */
90
+ export function isFontResourceError(type, text, locationUrl) {
91
+ if (type !== "error")
92
+ return false;
93
+ if (!text.startsWith("Failed to load resource"))
94
+ return false;
95
+ return /fonts\.googleapis|fonts\.gstatic|\.(woff2?|ttf|otf)(\b|$)/i.test(`${locationUrl} ${text}`);
96
+ }
77
97
  export async function initializeSession(session) {
78
98
  const { page, serverUrl } = session;
79
99
  // Forward browser console to host with [Browser] prefix
80
100
  page.on("console", (msg) => {
81
101
  const type = msg.type();
82
102
  const text = msg.text();
83
- // Suppress font-loading 404s entirely. These are expected when deterministic
84
- // font injection replaces Google Fonts @import URLs with embedded base64.
85
- const isFontLoadError = type === "error" &&
86
- text.startsWith("Failed to load resource") &&
87
- /fonts\.googleapis|fonts\.gstatic|\.woff2?(\b|$)/i.test(text);
103
+ const locationUrl = msg.location()?.url ?? "";
104
+ const isFontLoadError = isFontResourceError(type, text, locationUrl);
88
105
  // Other "Failed to load resource" 404s are typically non-blocking (e.g.
89
106
  // favicon, sourcemaps, optional assets). Prefix them so users know they
90
107
  // are harmless and don't confuse them with real render errors.
@@ -1 +1 @@
1
- {"version":3,"file":"frameCapture.js","sourceRoot":"","sources":["../../src/services/frameCapture.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"frameCapture.js","sourceRoot":"","sources":["../../src/services/frameCapture.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hyperframes/engine",
3
- "version": "0.4.2",
3
+ "version": "0.4.4",
4
4
  "description": "Seekable web page to video rendering engine (Puppeteer + FFmpeg)",
5
5
  "repository": {
6
6
  "type": "git",
@@ -19,7 +19,7 @@
19
19
  "linkedom": "^0.18.12",
20
20
  "puppeteer": "^24.0.0",
21
21
  "puppeteer-core": "^24.39.1",
22
- "@hyperframes/core": "^0.4.2"
22
+ "@hyperframes/core": "^0.4.4"
23
23
  },
24
24
  "devDependencies": {
25
25
  "@types/node": "^22.10.1",
@@ -0,0 +1,112 @@
1
+ import { describe, it, expect } from "vitest";
2
+ import { isFontResourceError } from "./frameCapture.js";
3
+
4
+ describe("isFontResourceError", () => {
5
+ it("matches Google Fonts CSS load failures via location.url", () => {
6
+ expect(
7
+ isFontResourceError(
8
+ "error",
9
+ "Failed to load resource: net::ERR_FAILED",
10
+ "https://fonts.googleapis.com/css2?family=Inter",
11
+ ),
12
+ ).toBe(true);
13
+ });
14
+
15
+ it("matches gstatic font binaries via location.url", () => {
16
+ expect(
17
+ isFontResourceError(
18
+ "error",
19
+ "Failed to load resource: the server responded with a status of 404 (Not Found)",
20
+ "https://fonts.gstatic.com/s/inter/v12/foo.woff2",
21
+ ),
22
+ ).toBe(true);
23
+ });
24
+
25
+ it("matches self-hosted woff2 failures", () => {
26
+ expect(
27
+ isFontResourceError(
28
+ "error",
29
+ "Failed to load resource: net::ERR_CONNECTION_REFUSED",
30
+ "http://localhost:9999/font.woff2",
31
+ ),
32
+ ).toBe(true);
33
+ });
34
+
35
+ it("matches .ttf and .otf URLs", () => {
36
+ expect(
37
+ isFontResourceError("error", "Failed to load resource: 404", "http://example.com/a.ttf"),
38
+ ).toBe(true);
39
+ expect(
40
+ isFontResourceError("error", "Failed to load resource: 404", "http://example.com/b.otf"),
41
+ ).toBe(true);
42
+ });
43
+
44
+ it("does NOT match non-font resources (images, scripts, videos)", () => {
45
+ expect(
46
+ isFontResourceError("error", "Failed to load resource: 404", "https://example.com/img.png"),
47
+ ).toBe(false);
48
+ expect(
49
+ isFontResourceError(
50
+ "error",
51
+ "Failed to load resource: 404",
52
+ "https://cdn.example.com/bundle.js",
53
+ ),
54
+ ).toBe(false);
55
+ expect(
56
+ isFontResourceError("error", "Failed to load resource: 404", "https://example.com/video.mp4"),
57
+ ).toBe(false);
58
+ });
59
+
60
+ it("does NOT match when location.url is missing and text has no URL (safe default)", () => {
61
+ expect(isFontResourceError("error", "Failed to load resource: 404", "")).toBe(false);
62
+ });
63
+
64
+ it("still matches when URL appears in text (older Chrome formats)", () => {
65
+ expect(
66
+ isFontResourceError(
67
+ "error",
68
+ "Failed to load resource: https://fonts.googleapis.com/... 404",
69
+ "",
70
+ ),
71
+ ).toBe(true);
72
+ });
73
+
74
+ it("does NOT match non-error console messages", () => {
75
+ expect(
76
+ isFontResourceError(
77
+ "warn",
78
+ "Failed to load resource: 404",
79
+ "https://fonts.googleapis.com/css2",
80
+ ),
81
+ ).toBe(false);
82
+ expect(
83
+ isFontResourceError(
84
+ "info",
85
+ "Failed to load resource: 404",
86
+ "https://fonts.googleapis.com/css2",
87
+ ),
88
+ ).toBe(false);
89
+ });
90
+
91
+ it("does NOT match unrelated error messages", () => {
92
+ expect(isFontResourceError("error", "Uncaught ReferenceError: x is not defined", "")).toBe(
93
+ false,
94
+ );
95
+ expect(
96
+ isFontResourceError("error", "Some other error", "https://fonts.googleapis.com/css2"),
97
+ ).toBe(false);
98
+ });
99
+
100
+ it("is case-insensitive for URL matching", () => {
101
+ expect(
102
+ isFontResourceError(
103
+ "error",
104
+ "Failed to load resource: 404",
105
+ "https://FONTS.GOOGLEAPIS.COM/css2",
106
+ ),
107
+ ).toBe(true);
108
+ expect(
109
+ isFontResourceError("error", "Failed to load resource: 404", "http://example.com/FONT.WOFF2"),
110
+ ).toBe(true);
111
+ });
112
+ });
@@ -142,6 +142,27 @@ export async function createCaptureSession(
142
142
  };
143
143
  }
144
144
 
145
+ /**
146
+ * Classify a console "Failed to load resource" error as a font-load failure.
147
+ *
148
+ * These are expected when deterministic font injection replaces Google Fonts
149
+ * @import URLs with embedded base64 — or when the render environment has no
150
+ * network access to Google Fonts. Suppressing them reduces noise in render
151
+ * output without hiding real asset failures (images, videos, scripts, etc.).
152
+ *
153
+ * Chrome's `msg.text()` for a failed resource is typically just
154
+ * `"Failed to load resource: net::ERR_FAILED"` — the URL is only on
155
+ * `msg.location().url`. We match against both so the filter works regardless
156
+ * of which form Chrome emits.
157
+ */
158
+ export function isFontResourceError(type: string, text: string, locationUrl: string): boolean {
159
+ if (type !== "error") return false;
160
+ if (!text.startsWith("Failed to load resource")) return false;
161
+ return /fonts\.googleapis|fonts\.gstatic|\.(woff2?|ttf|otf)(\b|$)/i.test(
162
+ `${locationUrl} ${text}`,
163
+ );
164
+ }
165
+
145
166
  export async function initializeSession(session: CaptureSession): Promise<void> {
146
167
  const { page, serverUrl } = session;
147
168
 
@@ -149,13 +170,8 @@ export async function initializeSession(session: CaptureSession): Promise<void>
149
170
  page.on("console", (msg: ConsoleMessage) => {
150
171
  const type = msg.type();
151
172
  const text = msg.text();
152
-
153
- // Suppress font-loading 404s entirely. These are expected when deterministic
154
- // font injection replaces Google Fonts @import URLs with embedded base64.
155
- const isFontLoadError =
156
- type === "error" &&
157
- text.startsWith("Failed to load resource") &&
158
- /fonts\.googleapis|fonts\.gstatic|\.woff2?(\b|$)/i.test(text);
173
+ const locationUrl = msg.location()?.url ?? "";
174
+ const isFontLoadError = isFontResourceError(type, text, locationUrl);
159
175
 
160
176
  // Other "Failed to load resource" 404s are typically non-blocking (e.g.
161
177
  // favicon, sourcemaps, optional assets). Prefix them so users know they