@hyperframes/producer 0.4.30 → 0.4.32
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +62 -12
- package/dist/hyperframe.manifest.json +1 -1
- package/dist/hyperframe.runtime.iife.js +172 -7
- package/dist/index.js +451 -159
- package/dist/index.js.map +4 -4
- package/dist/parity-fixtures.d.ts +2 -0
- package/dist/parity-fixtures.d.ts.map +1 -0
- package/dist/public-server.js +451 -159
- package/dist/public-server.js.map +4 -4
- package/dist/services/htmlCompiler.d.ts.map +1 -1
- package/dist/services/renderOrchestrator.d.ts +34 -2
- package/dist/services/renderOrchestrator.d.ts.map +1 -1
- package/dist/transparency-test.d.ts +19 -0
- package/dist/transparency-test.d.ts.map +1 -0
- package/package.json +6 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"htmlCompiler.d.ts","sourceRoot":"","sources":["../../src/services/htmlCompiler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;
|
|
1
|
+
{"version":3,"file":"htmlCompiler.d.ts","sourceRoot":"","sources":["../../src/services/htmlCompiler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAKH,OAAO,EAKL,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EAGvB,MAAM,mBAAmB,CAAC;AAI3B,OAAO,EAGL,KAAK,YAAY,EACjB,KAAK,YAAY,EAEjB,KAAK,YAAY,EAElB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAG3C,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,MAAM,EAAE,YAAY,EAAE,CAAC;IACvB,MAAM,EAAE,YAAY,EAAE,CAAC;IACvB,MAAM,EAAE,YAAY,EAAE,CAAC;IACvB,sBAAsB,EAAE,iBAAiB,EAAE,CAAC;IAC5C,oHAAoH;IACpH,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,eAAe,CAAC;CAClC;AAED,MAAM,MAAM,kBAAkB,GAAG,QAAQ,GAAG,uBAAuB,CAAC;AAEpE,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,kBAAkB,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,eAAe;IAC9B,mBAAmB,EAAE,OAAO,CAAC;IAC7B,OAAO,EAAE,cAAc,EAAE,CAAC;CAC3B;AA4BD,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,CA+BnE;AA2mBD;;;GAGG;AACH,wBAAsB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAoDzE;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,GACjB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,CA6EvD;AAED;;;GAGG;AACH,wBAAsB,gBAAgB,CACpC,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,mBAAmB,CAAC,CAuH9B;AAED;;;;;GAKG;AACH,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,wBAAsB,wBAAwB,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAgDzF;AAED;;;GAGG;AACH,wBAAsB,2BAA2B,CAC/C,IAAI,EAAE,IAAI,EACV,UAAU,EAAE,iBAAiB,EAAE,GAC9B,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAiD7B;AAED;;;GAGG;AACH,wBAAsB,wBAAwB,CAC5C,QAAQ,EAAE,mBAAmB,EAC7B,WAAW,EAAE,gBAAgB,EAAE,EAC/B,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,mBAAmB,CAAC,CAqC9B"}
|
|
@@ -19,8 +19,40 @@ export type RenderStatus = "queued" | "preprocessing" | "rendering" | "encoding"
|
|
|
19
19
|
export interface RenderConfig {
|
|
20
20
|
fps: 24 | 30 | 60;
|
|
21
21
|
quality: "draft" | "standard" | "high";
|
|
22
|
-
/**
|
|
23
|
-
|
|
22
|
+
/**
|
|
23
|
+
* Output container format. Defaults to `"mp4"`; existing renders are
|
|
24
|
+
* unaffected unless this field is set explicitly.
|
|
25
|
+
*
|
|
26
|
+
* - `"mp4"`: H.264 (or H.265 + HDR10 when `hdr: true`). Opaque. The
|
|
27
|
+
* default streaming/social deliverable. Faststart is applied so the
|
|
28
|
+
* `moov` atom sits at the file start and the file plays from a
|
|
29
|
+
* partial download.
|
|
30
|
+
* - `"webm"`: VP9 + `yuva420p` pixel format → **true alpha channel**, no
|
|
31
|
+
* chroma key. Plays in Chrome, Edge, and Firefox; Safari support for
|
|
32
|
+
* alpha-WebM is incomplete. Use this when the output should drop
|
|
33
|
+
* straight into a `<video>` over a colored background on the web.
|
|
34
|
+
* Audio is muxed as Opus.
|
|
35
|
+
* - `"mov"`: ProRes 4444 + `yuva444p10le` → **true alpha channel +
|
|
36
|
+
* 10-bit color**. Sized for editor ingest (Premiere, Final Cut Pro,
|
|
37
|
+
* DaVinci Resolve), not direct web playback. Audio is muxed as AAC.
|
|
38
|
+
* - `"png-sequence"`: a directory of zero-padded RGBA PNGs
|
|
39
|
+
* (`frame_000001.png` …). Lossless alpha, largest on disk, no muxed
|
|
40
|
+
* audio (an `audio.aac` sidecar is written alongside the PNGs when
|
|
41
|
+
* the composition has audio elements). Use for After Effects / Nuke
|
|
42
|
+
* / Fusion ingest, or when frames need post-processing before
|
|
43
|
+
* encoding. `outputPath` is treated as a directory; it is created if
|
|
44
|
+
* it doesn't exist.
|
|
45
|
+
*
|
|
46
|
+
* Alpha output (`"webm"`, `"mov"`, `"png-sequence"`) automatically
|
|
47
|
+
* forces screenshot capture (Chrome's BeginFrame compositor does not
|
|
48
|
+
* preserve alpha on Linux headless-shell) and disables HDR — HDR +
|
|
49
|
+
* alpha is not a supported combination, a warning is logged and HDR
|
|
50
|
+
* falls back to SDR. The transparent-background CSS is injected by
|
|
51
|
+
* the engine's `initTransparentBackground` helper, so authors should
|
|
52
|
+
* not paint a fullscreen `body` / `#root` background in their
|
|
53
|
+
* compositions when targeting alpha output.
|
|
54
|
+
*/
|
|
55
|
+
format?: "mp4" | "webm" | "mov" | "png-sequence";
|
|
24
56
|
workers?: number;
|
|
25
57
|
useGpu?: boolean;
|
|
26
58
|
debug?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"renderOrchestrator.d.ts","sourceRoot":"","sources":["../../src/services/renderOrchestrator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAcH,OAAO,EACL,KAAK,YAAY,EAGjB,KAAK,wBAAwB,EAE7B,KAAK,YAAY,EAqBjB,KAAK,YAAY,EACjB,KAAK,YAAY,EAiClB,MAAM,qBAAqB,CAAC;AAM7B,OAAO,EAKL,KAAK,mBAAmB,EACzB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAiB,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;AA+FlE,MAAM,MAAM,YAAY,GACpB,QAAQ,GACR,eAAe,GACf,WAAW,GACX,UAAU,GACV,YAAY,GACZ,UAAU,GACV,QAAQ,GACR,WAAW,CAAC;AAEhB,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;IAClB,OAAO,EAAE,OAAO,GAAG,UAAU,GAAG,MAAM,CAAC;IACvC
|
|
1
|
+
{"version":3,"file":"renderOrchestrator.d.ts","sourceRoot":"","sources":["../../src/services/renderOrchestrator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Transparency Regression Test
|
|
3
|
+
*
|
|
4
|
+
* Exercises the alpha-output pipelines (webm + png-sequence) end-to-end
|
|
5
|
+
* against `tests/transparency-regression/`. Asserts that:
|
|
6
|
+
*
|
|
7
|
+
* 1. Pixels that were transparent in the browser stay transparent in the
|
|
8
|
+
* output (alpha = 0).
|
|
9
|
+
* 2. Pixels covered by the opaque red `.card` element stay fully opaque
|
|
10
|
+
* (alpha = 255) and keep their red color.
|
|
11
|
+
*
|
|
12
|
+
* This is intentionally NOT wired into `regression-harness.ts` — the harness
|
|
13
|
+
* compares each fixture against a golden MP4, but transparency requires a
|
|
14
|
+
* different validation strategy (pixel inspection of the alpha channel). Run
|
|
15
|
+
* this script via `bun run --filter @hyperframes/producer test:transparency`
|
|
16
|
+
* or directly via `tsx src/transparency-test.ts` from this package.
|
|
17
|
+
*/
|
|
18
|
+
export {};
|
|
19
|
+
//# sourceMappingURL=transparency-test.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transparency-test.d.ts","sourceRoot":"","sources":["../src/transparency-test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hyperframes/producer",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.32",
|
|
4
4
|
"description": "HTML-to-video rendering engine using Chrome's BeginFrame API",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -44,8 +44,8 @@
|
|
|
44
44
|
"postcss": "^8.4.0",
|
|
45
45
|
"puppeteer": "^24.0.0",
|
|
46
46
|
"puppeteer-core": "^24.39.1",
|
|
47
|
-
"@hyperframes/
|
|
48
|
-
"@hyperframes/
|
|
47
|
+
"@hyperframes/engine": "^0.4.32",
|
|
48
|
+
"@hyperframes/core": "^0.4.32"
|
|
49
49
|
},
|
|
50
50
|
"devDependencies": {
|
|
51
51
|
"@fontsource/lato": "^5.2.7",
|
|
@@ -76,8 +76,9 @@
|
|
|
76
76
|
"check:runtime-conformance": "tsx src/runtime-conformance.ts",
|
|
77
77
|
"benchmark": "tsx src/benchmark.ts",
|
|
78
78
|
"bench:hdr": "tsx src/benchmark.ts --tags hdr",
|
|
79
|
-
"test": "tsx src/regression-harness.ts",
|
|
80
|
-
"test:update": "tsx src/regression-harness.ts --update",
|
|
79
|
+
"test": "tsx src/regression-harness.ts --exclude-tags transparency",
|
|
80
|
+
"test:update": "tsx src/regression-harness.ts --update --exclude-tags transparency",
|
|
81
|
+
"test:transparency": "tsx src/transparency-test.ts",
|
|
81
82
|
"docker:build:test": "docker build -f ../../Dockerfile.test -t hyperframes-producer:test ../..",
|
|
82
83
|
"docker:test": "docker run --rm --security-opt seccomp=unconfined --shm-size=2g -v ./tests:/app/packages/producer/tests hyperframes-producer:test",
|
|
83
84
|
"docker:test:update": "docker run --rm --security-opt seccomp=unconfined --shm-size=2g -v ./tests:/app/packages/producer/tests hyperframes-producer:test --update"
|