@hyperframes/engine 0.5.0-alpha.13 → 0.5.0-alpha.15

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 (42) hide show
  1. package/dist/config.d.ts +6 -0
  2. package/dist/config.d.ts.map +1 -1
  3. package/dist/config.js +3 -1
  4. package/dist/config.js.map +1 -1
  5. package/dist/services/browserManager.d.ts +1 -0
  6. package/dist/services/browserManager.d.ts.map +1 -1
  7. package/dist/services/browserManager.js +21 -0
  8. package/dist/services/browserManager.js.map +1 -1
  9. package/dist/services/fileServer.d.ts.map +1 -1
  10. package/dist/services/fileServer.js +1 -60
  11. package/dist/services/fileServer.js.map +1 -1
  12. package/dist/services/frameCapture.d.ts.map +1 -1
  13. package/dist/services/frameCapture.js +59 -3
  14. package/dist/services/frameCapture.js.map +1 -1
  15. package/dist/services/screenshotService.d.ts.map +1 -1
  16. package/dist/services/screenshotService.js +7 -5
  17. package/dist/services/screenshotService.js.map +1 -1
  18. package/dist/services/videoFrameInjector.d.ts +4 -1
  19. package/dist/services/videoFrameInjector.d.ts.map +1 -1
  20. package/dist/services/videoFrameInjector.js +5 -2
  21. package/dist/services/videoFrameInjector.js.map +1 -1
  22. package/dist/types.d.ts +11 -0
  23. package/dist/types.d.ts.map +1 -1
  24. package/dist/utils/htmlTemplate.d.ts.map +1 -1
  25. package/dist/utils/htmlTemplate.js +1 -8
  26. package/dist/utils/htmlTemplate.js.map +1 -1
  27. package/dist/utils/parityContract.d.ts +1 -2
  28. package/dist/utils/parityContract.d.ts.map +1 -1
  29. package/dist/utils/parityContract.js +1 -34
  30. package/dist/utils/parityContract.js.map +1 -1
  31. package/package.json +2 -2
  32. package/src/config.test.ts +23 -0
  33. package/src/config.ts +15 -1
  34. package/src/services/browserManager.test.ts +32 -2
  35. package/src/services/browserManager.ts +24 -0
  36. package/src/services/fileServer.ts +1 -68
  37. package/src/services/frameCapture.ts +72 -2
  38. package/src/services/screenshotService.ts +9 -7
  39. package/src/services/videoFrameInjector.ts +15 -3
  40. package/src/types.ts +11 -0
  41. package/src/utils/htmlTemplate.ts +1 -9
  42. package/src/utils/parityContract.ts +1 -35
@@ -1 +1 @@
1
- {"version":3,"file":"videoFrameInjector.js","sourceRoot":"","sources":["../../src/services/videoFrameInjector.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"videoFrameInjector.js","sourceRoot":"","sources":["../../src/services/videoFrameInjector.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -94,6 +94,17 @@ export interface CaptureOptions {
94
94
  * intrinsic media dimensions.
95
95
  */
96
96
  skipReadinessVideoIds?: readonly string[];
97
+ /**
98
+ * Render-time variable overrides for the composition. The engine injects
99
+ * these as `window.__hfVariables` via `evaluateOnNewDocument` before any
100
+ * page script runs, so the runtime helper `getVariables()` returns the
101
+ * merged result of declared defaults (`data-composition-variables`) and
102
+ * these overrides on its first call.
103
+ *
104
+ * The CLI populates this from `--variables '<json>'` /
105
+ * `--variables-file <path>`. Must be a JSON-serializable plain object.
106
+ */
107
+ variables?: Record<string, unknown>;
97
108
  }
98
109
  export interface CaptureVideoMetadataHint {
99
110
  id: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH;;;;;;GAMG;AACH,MAAM,WAAW,cAAc;IAC7B,+CAA+C;IAC/C,SAAS,EAAE,MAAM,CAAC;IAClB,8BAA8B;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,6DAA6D;IAC7D,SAAS,EAAE,MAAM,CAAC;IAClB,gEAAgE;IAChE,OAAO,EAAE,MAAM,CAAC;IAChB,wDAAwD;IACxD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oCAAoC;IACpC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,8DAA8D;IAC9D,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,gBAAgB;IAC/B,2CAA2C;IAC3C,IAAI,EAAE,MAAM,CAAC;IACb,oCAAoC;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,8CAA8C;IAC9C,MAAM,EAAE,MAAM,CAAC;IACf,+CAA+C;IAC/C,IAAI,EAAE,MAAM,CAAC;IACb,0CAA0C;IAC1C,SAAS,EAAE,MAAM,CAAC;IAClB,sCAAsC;IACtC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;;GAUG;AACH,MAAM,WAAW,UAAU;IACzB,mDAAmD;IACnD,QAAQ,EAAE,MAAM,CAAC;IACjB,yEAAyE;IACzE,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,wDAAwD;IACxD,KAAK,CAAC,EAAE,cAAc,EAAE,CAAC;IACzB,yFAAyF;IACzF,WAAW,CAAC,EAAE,gBAAgB,EAAE,CAAC;CAClC;AAID,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;;;;;OAKG;IACH,kBAAkB,CAAC,EAAE,SAAS,wBAAwB,EAAE,CAAC;IACzD;;;;;;;;OAQG;IACH,qBAAqB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC3C;AAED,MAAM,WAAW,wBAAwB;IACvC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,eAAe,EAAE,MAAM,CAAC;CACzB;AAID,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,MAAM;QACd,IAAI,CAAC,EAAE,UAAU,CAAC;KACnB;CACF"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH;;;;;;GAMG;AACH,MAAM,WAAW,cAAc;IAC7B,+CAA+C;IAC/C,SAAS,EAAE,MAAM,CAAC;IAClB,8BAA8B;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,6DAA6D;IAC7D,SAAS,EAAE,MAAM,CAAC;IAClB,gEAAgE;IAChE,OAAO,EAAE,MAAM,CAAC;IAChB,wDAAwD;IACxD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oCAAoC;IACpC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,8DAA8D;IAC9D,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,gBAAgB;IAC/B,2CAA2C;IAC3C,IAAI,EAAE,MAAM,CAAC;IACb,oCAAoC;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,8CAA8C;IAC9C,MAAM,EAAE,MAAM,CAAC;IACf,+CAA+C;IAC/C,IAAI,EAAE,MAAM,CAAC;IACb,0CAA0C;IAC1C,SAAS,EAAE,MAAM,CAAC;IAClB,sCAAsC;IACtC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;;GAUG;AACH,MAAM,WAAW,UAAU;IACzB,mDAAmD;IACnD,QAAQ,EAAE,MAAM,CAAC;IACjB,yEAAyE;IACzE,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,wDAAwD;IACxD,KAAK,CAAC,EAAE,cAAc,EAAE,CAAC;IACzB,yFAAyF;IACzF,WAAW,CAAC,EAAE,gBAAgB,EAAE,CAAC;CAClC;AAID,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;;;;;OAKG;IACH,kBAAkB,CAAC,EAAE,SAAS,wBAAwB,EAAE,CAAC;IACzD;;;;;;;;OAQG;IACH,qBAAqB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1C;;;;;;;;;OASG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACrC;AAED,MAAM,WAAW,wBAAwB;IACvC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,eAAe,EAAE,MAAM,CAAC;CACzB;AAID,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,MAAM;QACd,IAAI,CAAC,EAAE,UAAU,CAAC;KACnB;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"htmlTemplate.d.ts","sourceRoot":"","sources":["../../src/utils/htmlTemplate.ts"],"names":[],"mappings":"AAsBA;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAqBnD"}
1
+ {"version":3,"file":"htmlTemplate.d.ts","sourceRoot":"","sources":["../../src/utils/htmlTemplate.ts"],"names":[],"mappings":"AAcA;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAqBnD"}
@@ -1,11 +1,4 @@
1
- import { parseHTML } from "linkedom";
2
- function parseHTMLContent(html) {
3
- const trimmed = html.trimStart().toLowerCase();
4
- if (trimmed.startsWith("<!doctype") || trimmed.startsWith("<html")) {
5
- return parseHTML(html).document;
6
- }
7
- return parseHTML(`<!DOCTYPE html><html><head></head><body>${html}</body></html>`).document;
8
- }
1
+ import { parseHTMLContent } from "@hyperframes/core/compiler";
9
2
  function getSingleMeaningfulChild(container) {
10
3
  let child = null;
11
4
  for (const node of Array.from(container.childNodes)) {
@@ -1 +1 @@
1
- {"version":3,"file":"htmlTemplate.js","sourceRoot":"","sources":["../../src/utils/htmlTemplate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAErC,SAAS,gBAAgB,CAAC,IAAY;IACpC,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC,WAAW,EAAE,CAAC;IAC/C,IAAI,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QACnE,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC;IAClC,CAAC;IACD,OAAO,SAAS,CAAC,2CAA2C,IAAI,gBAAgB,CAAC,CAAC,QAAQ,CAAC;AAC7F,CAAC;AAED,SAAS,wBAAwB,CAAC,SAAkB;IAClD,IAAI,KAAK,GAAmB,IAAI,CAAC;IACjC,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC;QACpD,IAAI,IAAI,CAAC,QAAQ,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE;YAAE,SAAS;QACtE,IAAI,IAAI,CAAC,QAAQ,KAAK,CAAC;YAAE,SAAS;QAClC,IAAI,IAAI,CAAC,QAAQ,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QACrC,IAAI,KAAK;YAAE,OAAO,IAAI,CAAC;QACvB,KAAK,GAAG,IAAe,CAAC;IAC1B,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;IACnC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;QACvE,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,EAAE,IAAI,EAAE,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;IACxC,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IAEvB,IAAI,SAAS,GAAY,IAAI,CAAC;IAC9B,MAAM,WAAW,GAAG,wBAAwB,CAAC,SAAS,CAAC,CAAC;IACxD,IAAI,WAAW,EAAE,OAAO,KAAK,MAAM,EAAE,CAAC;QACpC,SAAS,GAAG,WAAW,CAAC;IAC1B,CAAC;IAED,MAAM,QAAQ,GAAG,wBAAwB,CAAC,SAAS,CAAC,CAAC;IACrD,IAAI,QAAQ,EAAE,OAAO,KAAK,UAAU,EAAE,CAAC;QACrC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,QAAQ,CAAC,SAAS,IAAI,IAAI,CAAC;AACpC,CAAC"}
1
+ {"version":3,"file":"htmlTemplate.js","sourceRoot":"","sources":["../../src/utils/htmlTemplate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAE9D,SAAS,wBAAwB,CAAC,SAAkB;IAClD,IAAI,KAAK,GAAmB,IAAI,CAAC;IACjC,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC;QACpD,IAAI,IAAI,CAAC,QAAQ,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE;YAAE,SAAS;QACtE,IAAI,IAAI,CAAC,QAAQ,KAAK,CAAC;YAAE,SAAS;QAClC,IAAI,IAAI,CAAC,QAAQ,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QACrC,IAAI,KAAK;YAAE,OAAO,IAAI,CAAC;QACvB,KAAK,GAAG,IAAe,CAAC;IAC1B,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;IACnC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;QACvE,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,EAAE,IAAI,EAAE,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;IACxC,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IAEvB,IAAI,SAAS,GAAY,IAAI,CAAC;IAC9B,MAAM,WAAW,GAAG,wBAAwB,CAAC,SAAS,CAAC,CAAC;IACxD,IAAI,WAAW,EAAE,OAAO,KAAK,MAAM,EAAE,CAAC;QACpC,SAAS,GAAG,WAAW,CAAC;IAC1B,CAAC;IAED,MAAM,QAAQ,GAAG,wBAAwB,CAAC,SAAS,CAAC,CAAC;IACrD,IAAI,QAAQ,EAAE,OAAO,KAAK,UAAU,EAAE,CAAC;QACrC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,QAAQ,CAAC,SAAS,IAAI,IAAI,CAAC;AACpC,CAAC"}
@@ -1,3 +1,2 @@
1
- export declare const MEDIA_VISUAL_STYLE_PROPERTIES: readonly ["width", "height", "top", "left", "right", "bottom", "inset", "object-fit", "object-position", "z-index", "opacity", "visibility", "filter", "mix-blend-mode", "backdrop-filter", "border-radius", "overflow", "clip-path", "mask", "mask-image", "mask-size", "mask-position", "mask-repeat", "transform", "transform-origin", "box-sizing"];
2
- export declare function quantizeTimeToFrame(timeSeconds: number, fps: number): number;
1
+ export { MEDIA_VISUAL_STYLE_PROPERTIES, quantizeTimeToFrame } from "@hyperframes/core";
3
2
  //# sourceMappingURL=parityContract.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"parityContract.d.ts","sourceRoot":"","sources":["../../src/utils/parityContract.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,6BAA6B,yVA2BhC,CAAC;AAEX,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAK5E"}
1
+ {"version":3,"file":"parityContract.d.ts","sourceRoot":"","sources":["../../src/utils/parityContract.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC"}
@@ -1,35 +1,2 @@
1
- export const MEDIA_VISUAL_STYLE_PROPERTIES = [
2
- "width",
3
- "height",
4
- "top",
5
- "left",
6
- "right",
7
- "bottom",
8
- "inset",
9
- "object-fit",
10
- "object-position",
11
- "z-index",
12
- "opacity",
13
- "visibility",
14
- "filter",
15
- "mix-blend-mode",
16
- "backdrop-filter",
17
- "border-radius",
18
- "overflow",
19
- "clip-path",
20
- "mask",
21
- "mask-image",
22
- "mask-size",
23
- "mask-position",
24
- "mask-repeat",
25
- "transform",
26
- "transform-origin",
27
- "box-sizing",
28
- ];
29
- export function quantizeTimeToFrame(timeSeconds, fps) {
30
- const safeFps = Number.isFinite(fps) && fps > 0 ? fps : 30;
31
- const safeTime = Number.isFinite(timeSeconds) && timeSeconds > 0 ? timeSeconds : 0;
32
- const frameIndex = Math.floor(safeTime * safeFps + 1e-9);
33
- return frameIndex / safeFps;
34
- }
1
+ export { MEDIA_VISUAL_STYLE_PROPERTIES, quantizeTimeToFrame } from "@hyperframes/core";
35
2
  //# sourceMappingURL=parityContract.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"parityContract.js","sourceRoot":"","sources":["../../src/utils/parityContract.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,6BAA6B,GAAG;IAC3C,OAAO;IACP,QAAQ;IACR,KAAK;IACL,MAAM;IACN,OAAO;IACP,QAAQ;IACR,OAAO;IACP,YAAY;IACZ,iBAAiB;IACjB,SAAS;IACT,SAAS;IACT,YAAY;IACZ,QAAQ;IACR,gBAAgB;IAChB,iBAAiB;IACjB,eAAe;IACf,UAAU;IACV,WAAW;IACX,MAAM;IACN,YAAY;IACZ,WAAW;IACX,eAAe;IACf,aAAa;IACb,WAAW;IACX,kBAAkB;IAClB,YAAY;CACJ,CAAC;AAEX,MAAM,UAAU,mBAAmB,CAAC,WAAmB,EAAE,GAAW;IAClE,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3D,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;IACnF,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,OAAO,GAAG,IAAI,CAAC,CAAC;IACzD,OAAO,UAAU,GAAG,OAAO,CAAC;AAC9B,CAAC"}
1
+ {"version":3,"file":"parityContract.js","sourceRoot":"","sources":["../../src/utils/parityContract.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hyperframes/engine",
3
- "version": "0.5.0-alpha.13",
3
+ "version": "0.5.0-alpha.15",
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.5.0-alpha.13"
22
+ "@hyperframes/core": "^0.5.0-alpha.15"
23
23
  },
24
24
  "devDependencies": {
25
25
  "@types/node": "^22.10.1",
@@ -30,6 +30,8 @@ describe("resolveConfig", () => {
30
30
  expect(config.format).toBe("jpeg");
31
31
  expect(config.jpegQuality).toBe(80);
32
32
  expect(config.browserGpuMode).toBe("software");
33
+ expect(config.enableStreamingEncode).toBe(true);
34
+ expect(config.streamingEncodeMaxDurationSeconds).toBe(240);
33
35
  expect(config.audioGain).toBe(1);
34
36
  expect(config.debug).toBe(false);
35
37
  });
@@ -60,6 +62,27 @@ describe("resolveConfig", () => {
60
62
  expect(config.enableBrowserPool).toBe(true);
61
63
  });
62
64
 
65
+ it("lets env vars opt out of default streaming encode", () => {
66
+ setEnv("PRODUCER_ENABLE_STREAMING_ENCODE", "false");
67
+
68
+ const config = resolveConfig();
69
+ expect(config.enableStreamingEncode).toBe(false);
70
+ });
71
+
72
+ it("reads the streaming encode duration cutoff from env", () => {
73
+ setEnv("PRODUCER_STREAMING_ENCODE_MAX_DURATION_SECONDS", "120");
74
+
75
+ const config = resolveConfig();
76
+ expect(config.streamingEncodeMaxDurationSeconds).toBe(120);
77
+ });
78
+
79
+ it("clamps negative streaming encode duration cutoff env values to zero", () => {
80
+ setEnv("PRODUCER_STREAMING_ENCODE_MAX_DURATION_SECONDS", "-1");
81
+
82
+ const config = resolveConfig();
83
+ expect(config.streamingEncodeMaxDurationSeconds).toBe(0);
84
+ });
85
+
63
86
  it("treats non-'true' boolean env vars as false", () => {
64
87
  setEnv("PRODUCER_DISABLE_GPU", "yes");
65
88
 
package/src/config.ts CHANGED
@@ -48,6 +48,12 @@ export interface EngineConfig {
48
48
  enableChunkedEncode: boolean;
49
49
  chunkSizeFrames: number;
50
50
  enableStreamingEncode: boolean;
51
+ /**
52
+ * Max composition duration eligible for streaming encode (seconds).
53
+ * Mirrors GSAP rendering's 4-minute streaming guard: production has seen
54
+ * ffmpeg's streaming pipe hit FFMPEG_STREAMING_TIMEOUT_MS on longer videos.
55
+ */
56
+ streamingEncodeMaxDurationSeconds: number;
51
57
 
52
58
  // ── FFmpeg timeouts ──────────────────────────────────────────────────
53
59
  /** Timeout for FFmpeg frame encoding (ms). Default: 600_000 */
@@ -126,7 +132,8 @@ export const DEFAULT_CONFIG: EngineConfig = {
126
132
 
127
133
  enableChunkedEncode: false,
128
134
  chunkSizeFrames: 360,
129
- enableStreamingEncode: false,
135
+ enableStreamingEncode: true,
136
+ streamingEncodeMaxDurationSeconds: 240,
130
137
 
131
138
  ffmpegEncodeTimeout: 600_000,
132
139
  ffmpegProcessTimeout: 300_000,
@@ -207,6 +214,13 @@ export function resolveConfig(overrides?: Partial<EngineConfig>): EngineConfig {
207
214
  "PRODUCER_ENABLE_STREAMING_ENCODE",
208
215
  DEFAULT_CONFIG.enableStreamingEncode,
209
216
  ),
217
+ streamingEncodeMaxDurationSeconds: Math.max(
218
+ 0,
219
+ envNum(
220
+ "PRODUCER_STREAMING_ENCODE_MAX_DURATION_SECONDS",
221
+ DEFAULT_CONFIG.streamingEncodeMaxDurationSeconds,
222
+ ),
223
+ ),
210
224
 
211
225
  ffmpegEncodeTimeout: envNum("FFMPEG_ENCODE_TIMEOUT_MS", DEFAULT_CONFIG.ffmpegEncodeTimeout),
212
226
  ffmpegProcessTimeout: envNum("FFMPEG_PROCESS_TIMEOUT_MS", DEFAULT_CONFIG.ffmpegProcessTimeout),
@@ -1,6 +1,6 @@
1
- import { describe, expect, it } from "vitest";
1
+ import { describe, expect, it, vi } from "vitest";
2
2
 
3
- import { buildChromeArgs } from "./browserManager.js";
3
+ import { buildChromeArgs, forceReleaseBrowser } from "./browserManager.js";
4
4
 
5
5
  describe("buildChromeArgs browser GPU mode", () => {
6
6
  const base = { width: 1920, height: 1080 };
@@ -46,3 +46,33 @@ describe("buildChromeArgs browser GPU mode", () => {
46
46
  expect(args).not.toContain("--use-angle=metal");
47
47
  });
48
48
  });
49
+
50
+ describe("forceReleaseBrowser", () => {
51
+ it("kills the browser process and disconnects", () => {
52
+ const killFn = vi.fn(() => true);
53
+ const disconnectFn = vi.fn();
54
+ const mockBrowser = {
55
+ process: () => ({ kill: killFn, killed: false }),
56
+ disconnect: disconnectFn,
57
+ } as any;
58
+
59
+ forceReleaseBrowser(mockBrowser);
60
+
61
+ expect(killFn).toHaveBeenCalledWith("SIGKILL");
62
+ expect(disconnectFn).toHaveBeenCalled();
63
+ });
64
+
65
+ it("tolerates an already-killed process", () => {
66
+ const killFn = vi.fn();
67
+ const disconnectFn = vi.fn();
68
+ const mockBrowser = {
69
+ process: () => ({ kill: killFn, killed: true }),
70
+ disconnect: disconnectFn,
71
+ } as any;
72
+
73
+ forceReleaseBrowser(mockBrowser);
74
+
75
+ expect(killFn).not.toHaveBeenCalled();
76
+ expect(disconnectFn).toHaveBeenCalled();
77
+ });
78
+ });
@@ -234,6 +234,30 @@ export async function releaseBrowser(
234
234
  await browser.close().catch(() => {});
235
235
  }
236
236
 
237
+ export function forceReleaseBrowser(browser: Browser): void {
238
+ if (pooledBrowser && pooledBrowser === browser) {
239
+ pooledBrowserRefCount = 0;
240
+ pooledBrowser = null;
241
+ }
242
+ const proc = (
243
+ browser as unknown as {
244
+ process?: () => { kill: (signal?: NodeJS.Signals) => boolean; killed?: boolean } | null;
245
+ }
246
+ ).process?.();
247
+ if (proc && !proc.killed) {
248
+ try {
249
+ proc.kill("SIGKILL");
250
+ } catch {
251
+ // Best-effort cleanup.
252
+ }
253
+ }
254
+ try {
255
+ browser.disconnect();
256
+ } catch {
257
+ // Best-effort cleanup.
258
+ }
259
+ }
260
+
237
261
  export interface BuildChromeArgsOptions {
238
262
  width: number;
239
263
  height: number;
@@ -10,6 +10,7 @@ import { Hono } from "hono";
10
10
  import { serve } from "@hono/node-server";
11
11
  import { readFileSync, existsSync, statSync } from "node:fs";
12
12
  import { join, extname } from "node:path";
13
+ import { injectScriptsIntoHtml } from "@hyperframes/core/compiler";
13
14
 
14
15
  const MIME_TYPES: Record<string, string> = {
15
16
  ".html": "text/html; charset=utf-8",
@@ -34,74 +35,6 @@ const MIME_TYPES: Record<string, string> = {
34
35
  ".otf": "font/otf",
35
36
  };
36
37
 
37
- function stripEmbeddedRuntimeScripts(html: string): string {
38
- if (!html) return html;
39
- const scriptRe = /<script\b[^>]*>[\s\S]*?<\/script>/gi;
40
- const runtimeSrcMarkers = [
41
- "hyperframe.runtime.iife.js",
42
- "hyperframes-runtime.modular.inline.js",
43
- "data-hyperframes-preview-runtime",
44
- ];
45
- const runtimeInlineMarkers = [
46
- "__hyperframeRuntimeBootstrapped",
47
- "__hyperframeRuntime",
48
- "__hyperframeRuntimeTeardown",
49
- "window.__player =",
50
- "window.__playerReady",
51
- "window.__renderReady",
52
- ];
53
-
54
- const shouldStrip = (block: string): boolean => {
55
- const lowered = block.toLowerCase();
56
- for (const marker of runtimeSrcMarkers) {
57
- if (lowered.includes(marker.toLowerCase())) {
58
- return true;
59
- }
60
- }
61
- for (const marker of runtimeInlineMarkers) {
62
- if (block.includes(marker)) {
63
- return true;
64
- }
65
- }
66
- return false;
67
- };
68
-
69
- return html.replace(scriptRe, (block) => (shouldStrip(block) ? "" : block));
70
- }
71
-
72
- function injectScriptsIntoHtml(
73
- html: string,
74
- headScripts: string[],
75
- bodyScripts: string[],
76
- stripEmbedded: boolean,
77
- ): string {
78
- if (stripEmbedded) {
79
- html = stripEmbeddedRuntimeScripts(html);
80
- }
81
-
82
- if (headScripts.length > 0) {
83
- const headTags = headScripts.map((src) => `<script>${src}</script>`).join("\n");
84
- if (html.includes("</head>")) {
85
- html = html.replace("</head>", () => `${headTags}\n</head>`);
86
- } else if (html.includes("<body")) {
87
- html = html.replace("<body", () => `${headTags}\n<body`);
88
- } else {
89
- html = headTags + "\n" + html;
90
- }
91
- }
92
-
93
- if (bodyScripts.length > 0) {
94
- const bodyTags = bodyScripts.map((src) => `<script>${src}</script>`).join("\n");
95
- if (html.includes("</body>")) {
96
- html = html.replace("</body>", () => `${bodyTags}\n</body>`);
97
- } else {
98
- html = html + "\n" + bodyTags;
99
- }
100
- }
101
-
102
- return html;
103
- }
104
-
105
38
  export interface FileServerOptions {
106
39
  projectDir: string;
107
40
  compiledDir?: string;
@@ -16,6 +16,7 @@ import { quantizeTimeToFrame } from "@hyperframes/core";
16
16
  import {
17
17
  acquireBrowser,
18
18
  releaseBrowser,
19
+ forceReleaseBrowser,
19
20
  buildChromeArgs,
20
21
  resolveHeadlessShellPath,
21
22
  type CaptureMode,
@@ -74,6 +75,26 @@ export interface CaptureSession {
74
75
  // Circular buffer for browser console messages dumped on render failure diagnostics.
75
76
  // Complex compositions produce 100+ messages; 50 was too small to capture relevant errors.
76
77
  const BROWSER_CONSOLE_BUFFER_SIZE = 200;
78
+ const CAPTURE_SESSION_CLOSE_TIMEOUT_MS = 5_000;
79
+
80
+ async function waitForCloseWithTimeout(promise: Promise<unknown>): Promise<boolean> {
81
+ let timedOut = false;
82
+ let timer: ReturnType<typeof setTimeout> | undefined;
83
+ await Promise.race([
84
+ promise.then(
85
+ () => undefined,
86
+ () => undefined,
87
+ ),
88
+ new Promise<void>((resolve) => {
89
+ timer = setTimeout(() => {
90
+ timedOut = true;
91
+ resolve();
92
+ }, CAPTURE_SESSION_CLOSE_TIMEOUT_MS);
93
+ }),
94
+ ]);
95
+ if (timer) clearTimeout(timer);
96
+ return !timedOut;
97
+ }
77
98
 
78
99
  export async function createCaptureSession(
79
100
  serverUrl: string,
@@ -134,6 +155,22 @@ export async function createCaptureSession(
134
155
  w.__name = <T>(fn: T, _name: string): T => fn;
135
156
  }
136
157
  });
158
+ // Inject render-time variable overrides before any page script runs, so the
159
+ // runtime helper `getVariables()` returns the merged result on its first
160
+ // call. Pass the JSON string and parse inside the page so we don't require
161
+ // any JSON-incompatible value to round-trip through Puppeteer's serializer.
162
+ if (options.variables && Object.keys(options.variables).length > 0) {
163
+ const variablesJson = JSON.stringify(options.variables);
164
+ await page.evaluateOnNewDocument((json: string) => {
165
+ type WindowWithVariables = Window & { __hfVariables?: Record<string, unknown> };
166
+ try {
167
+ (window as WindowWithVariables).__hfVariables = JSON.parse(json);
168
+ } catch {
169
+ // The CLI validated the JSON before this point — a parse failure here
170
+ // means the page swapped JSON.parse, which is the page's problem.
171
+ }
172
+ }, variablesJson);
173
+ }
137
174
  const browserVersion = await browser.version();
138
175
  const expectedMajor = config?.expectedChromiumMajor;
139
176
  if (Number.isFinite(expectedMajor)) {
@@ -260,6 +297,26 @@ async function applyVideoMetadataHints(
260
297
  );
261
298
  }
262
299
 
300
+ async function waitForOptionalTailwindReady(page: Page, timeoutMs: number): Promise<void> {
301
+ const hasTailwindReady = await page.evaluate(
302
+ `(() => { const ready = window.__tailwindReady; return !!ready && typeof ready.then === "function"; })()`,
303
+ );
304
+ if (!hasTailwindReady) return;
305
+
306
+ const ready = await Promise.race([
307
+ page.evaluate(
308
+ `Promise.resolve(window.__tailwindReady).then(() => true, () => false)`,
309
+ ) as Promise<boolean>,
310
+ new Promise<boolean>((resolve) => setTimeout(() => resolve(false), timeoutMs)),
311
+ ]);
312
+
313
+ if (!ready) {
314
+ throw new Error(
315
+ `[FrameCapture] window.__tailwindReady not resolved after ${timeoutMs}ms. Tailwind browser runtime must finish before frame capture starts.`,
316
+ );
317
+ }
318
+ }
319
+
263
320
  export async function initializeSession(session: CaptureSession): Promise<void> {
264
321
  const { page, serverUrl } = session;
265
322
 
@@ -350,6 +407,7 @@ export async function initializeSession(session: CaptureSession): Promise<void>
350
407
  }
351
408
 
352
409
  await page.evaluate(`document.fonts?.ready`);
410
+ await waitForOptionalTailwindReady(page, pageReadyTimeout);
353
411
 
354
412
  // For PNG captures, force the page background fully transparent so the
355
413
  // captured screenshots carry a real alpha channel. Must run AFTER
@@ -443,6 +501,7 @@ export async function initializeSession(session: CaptureSession): Promise<void>
443
501
 
444
502
  // Font check (no rAF dependency — uses fonts.ready API directly)
445
503
  await page.evaluate(`document.fonts?.ready`);
504
+ await waitForOptionalTailwindReady(page, pageReadyTimeout);
446
505
 
447
506
  // Stop warmup
448
507
  warmupRunning = false;
@@ -652,11 +711,22 @@ export async function closeCaptureSession(session: CaptureSession): Promise<void
652
711
  // but browserReleased=false → second call no-ops on page and retries browser.
653
712
  // This matches the orchestrator's intent for HDR cleanup.
654
713
  if (!session.pageReleased && session.page) {
655
- await session.page.close().catch(() => {});
714
+ const pageClosed = await waitForCloseWithTimeout(session.page.close());
715
+ if (!pageClosed) {
716
+ console.warn("[FrameCapture] Timed out closing page; forcing browser process shutdown");
717
+ forceReleaseBrowser(session.browser);
718
+ session.browserReleased = true;
719
+ }
656
720
  session.pageReleased = true;
657
721
  }
658
722
  if (!session.browserReleased && session.browser) {
659
- await releaseBrowser(session.browser, session.config);
723
+ const browserClosed = await waitForCloseWithTimeout(
724
+ releaseBrowser(session.browser, session.config),
725
+ );
726
+ if (!browserClosed) {
727
+ console.warn("[FrameCapture] Timed out closing browser; forcing browser process shutdown");
728
+ forceReleaseBrowser(session.browser);
729
+ }
660
730
  session.browserReleased = true;
661
731
  }
662
732
  session.isInitialized = false;
@@ -446,13 +446,15 @@ export async function injectVideoFramesBatch(
446
446
  }
447
447
  }
448
448
  img.decoding = "sync";
449
- img.src = item.dataUri;
450
- pendingDecodes.push(
451
- img
452
- .decode()
453
- .catch(() => undefined)
454
- .then(() => undefined),
455
- );
449
+ if (img.getAttribute("src") !== item.dataUri) {
450
+ img.src = item.dataUri;
451
+ pendingDecodes.push(
452
+ img
453
+ .decode()
454
+ .catch(() => undefined)
455
+ .then(() => undefined),
456
+ );
457
+ }
456
458
  img.style.opacity = String(computedOpacity);
457
459
  img.style.visibility = "visible";
458
460
  // Hide the native <video> with visibility only — never clobber inline
@@ -14,7 +14,16 @@ import { injectVideoFramesBatch, syncVideoFrameVisibility } from "./screenshotSe
14
14
  import { type BeforeCaptureHook } from "./frameCapture.js";
15
15
  import { DEFAULT_CONFIG, type EngineConfig } from "../config.js";
16
16
 
17
- function createFrameDataUriCache(cacheLimit: number) {
17
+ export interface VideoFrameInjectorOptions extends Partial<
18
+ Pick<EngineConfig, "frameDataUriCacheLimit">
19
+ > {
20
+ frameSrcResolver?: (framePath: string) => string | null;
21
+ }
22
+
23
+ function createFrameSourceCache(
24
+ cacheLimit: number,
25
+ frameSrcResolver?: (framePath: string) => string | null,
26
+ ) {
18
27
  const cache = new Map<string, string>();
19
28
  const inFlight = new Map<string, Promise<string>>();
20
29
 
@@ -33,6 +42,9 @@ function createFrameDataUriCache(cacheLimit: number) {
33
42
  }
34
43
 
35
44
  async function get(framePath: string): Promise<string> {
45
+ const servedSrc = frameSrcResolver?.(framePath);
46
+ if (servedSrc) return servedSrc;
47
+
36
48
  const cached = cache.get(framePath);
37
49
  if (cached) {
38
50
  remember(framePath, cached);
@@ -67,7 +79,7 @@ function createFrameDataUriCache(cacheLimit: number) {
67
79
  */
68
80
  export function createVideoFrameInjector(
69
81
  frameLookup: FrameLookupTable | null,
70
- config?: Partial<Pick<EngineConfig, "frameDataUriCacheLimit">>,
82
+ config?: VideoFrameInjectorOptions,
71
83
  ): BeforeCaptureHook | null {
72
84
  if (!frameLookup) return null;
73
85
 
@@ -75,7 +87,7 @@ export function createVideoFrameInjector(
75
87
  32,
76
88
  config?.frameDataUriCacheLimit ?? DEFAULT_CONFIG.frameDataUriCacheLimit,
77
89
  );
78
- const frameCache = createFrameDataUriCache(cacheLimit);
90
+ const frameCache = createFrameSourceCache(cacheLimit, config?.frameSrcResolver);
79
91
  const lastInjectedFrameByVideo = new Map<string, number>();
80
92
 
81
93
  return async (page: Page, time: number) => {
package/src/types.ts CHANGED
@@ -102,6 +102,17 @@ export interface CaptureOptions {
102
102
  * intrinsic media dimensions.
103
103
  */
104
104
  skipReadinessVideoIds?: readonly string[];
105
+ /**
106
+ * Render-time variable overrides for the composition. The engine injects
107
+ * these as `window.__hfVariables` via `evaluateOnNewDocument` before any
108
+ * page script runs, so the runtime helper `getVariables()` returns the
109
+ * merged result of declared defaults (`data-composition-variables`) and
110
+ * these overrides on its first call.
111
+ *
112
+ * The CLI populates this from `--variables '<json>'` /
113
+ * `--variables-file <path>`. Must be a JSON-serializable plain object.
114
+ */
115
+ variables?: Record<string, unknown>;
105
116
  }
106
117
 
107
118
  export interface CaptureVideoMetadataHint {