@hyperframes/producer 0.9.7 → 0.9.9

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/dist/index.js CHANGED
@@ -13245,6 +13245,7 @@ function resolveParallelRouterRetryPlan(args) {
13245
13245
  function shouldRetryViaPinnedFallback(args) {
13246
13246
  if (args.isCancellation || args.isEncoderInterrupted) return false;
13247
13247
  if (args.isVerifyError || args.isDeCaptureError) return true;
13248
+ if (args.isBeginFrameCapture === true) return true;
13248
13249
  if (args.isDeRendererStall === true || args.isSequentialCaptureStall === true) return true;
13249
13250
  if (args.isParallelCaptureStall === true || args.isEncoderDeath === true) return true;
13250
13251
  if (args.isTransientCaptureError === true) return true;
@@ -14909,7 +14910,8 @@ async function executeRenderPipeline(input) {
14909
14910
  isSequentialCaptureStall: isSequentialStall,
14910
14911
  isParallelCaptureStall: isParallelStall,
14911
14912
  isEncoderDeath,
14912
- isTransientCaptureError: isTransientBrowserError2(err)
14913
+ isTransientCaptureError: isTransientBrowserError2(err),
14914
+ isBeginFrameCapture: !capturePlan.forceScreenshot && !cfg.useDrawElement && parallelCaptureMode === "beginframe"
14913
14915
  }))
14914
14916
  throw err;
14915
14917
  const isMemoryExhaustion = !isVerifyError && isMemoryExhaustionError(err);
@@ -20618,6 +20620,7 @@ function parseRenderOptions(body) {
20618
20620
  const maxRenderMs = typeof body.maxRenderMs === "number" ? body.maxRenderMs : void 0;
20619
20621
  const useGpu = body.gpu === true;
20620
20622
  const debug = body.debug === true;
20623
+ const forceScreenshot = body.forceScreenshot === true ? true : void 0;
20621
20624
  const strictness = body.bestEffort === false ? "strict" : "best-effort";
20622
20625
  const outputPath = parseOutputCandidate(body);
20623
20626
  const entryFile = nonEmptyString(body.entryFile);
@@ -20639,6 +20642,7 @@ function parseRenderOptions(body) {
20639
20642
  bufferSize,
20640
20643
  useGpu,
20641
20644
  debug,
20645
+ forceScreenshot,
20642
20646
  strictness,
20643
20647
  entryFile,
20644
20648
  format,
@@ -20663,6 +20667,7 @@ function buildRenderJobConfig(input, outputPath, log) {
20663
20667
  const request = createRenderRequest({
20664
20668
  projectDir: input.projectDir,
20665
20669
  outputPath,
20670
+ engineOverrides: input.forceScreenshot ? { forceScreenshot: true } : void 0,
20666
20671
  options: {
20667
20672
  fps: input.fps,
20668
20673
  quality: input.quality,
@@ -13221,6 +13221,7 @@ function resolveParallelRouterRetryPlan(args) {
13221
13221
  function shouldRetryViaPinnedFallback(args) {
13222
13222
  if (args.isCancellation || args.isEncoderInterrupted) return false;
13223
13223
  if (args.isVerifyError || args.isDeCaptureError) return true;
13224
+ if (args.isBeginFrameCapture === true) return true;
13224
13225
  if (args.isDeRendererStall === true || args.isSequentialCaptureStall === true) return true;
13225
13226
  if (args.isParallelCaptureStall === true || args.isEncoderDeath === true) return true;
13226
13227
  if (args.isTransientCaptureError === true) return true;
@@ -14885,7 +14886,8 @@ async function executeRenderPipeline(input) {
14885
14886
  isSequentialCaptureStall: isSequentialStall,
14886
14887
  isParallelCaptureStall: isParallelStall,
14887
14888
  isEncoderDeath,
14888
- isTransientCaptureError: isTransientBrowserError2(err)
14889
+ isTransientCaptureError: isTransientBrowserError2(err),
14890
+ isBeginFrameCapture: !capturePlan.forceScreenshot && !cfg.useDrawElement && parallelCaptureMode === "beginframe"
14889
14891
  }))
14890
14892
  throw err;
14891
14893
  const isMemoryExhaustion = !isVerifyError && isMemoryExhaustionError(err);
@@ -16034,6 +16036,7 @@ function parseRenderOptions(body) {
16034
16036
  const maxRenderMs = typeof body.maxRenderMs === "number" ? body.maxRenderMs : void 0;
16035
16037
  const useGpu = body.gpu === true;
16036
16038
  const debug = body.debug === true;
16039
+ const forceScreenshot = body.forceScreenshot === true ? true : void 0;
16037
16040
  const strictness = body.bestEffort === false ? "strict" : "best-effort";
16038
16041
  const outputPath = parseOutputCandidate(body);
16039
16042
  const entryFile = nonEmptyString(body.entryFile);
@@ -16055,6 +16058,7 @@ function parseRenderOptions(body) {
16055
16058
  bufferSize,
16056
16059
  useGpu,
16057
16060
  debug,
16061
+ forceScreenshot,
16058
16062
  strictness,
16059
16063
  entryFile,
16060
16064
  format,
@@ -16079,6 +16083,7 @@ function buildRenderJobConfig(input, outputPath, log) {
16079
16083
  const request = createRenderRequest({
16080
16084
  projectDir: input.projectDir,
16081
16085
  outputPath,
16086
+ engineOverrides: input.forceScreenshot ? { forceScreenshot: true } : void 0,
16082
16087
  options: {
16083
16088
  fps: input.fps,
16084
16089
  quality: input.quality,
package/dist/server.d.ts CHANGED
@@ -54,6 +54,7 @@ interface RenderInput {
54
54
  bufferSize?: string;
55
55
  useGpu: boolean;
56
56
  debug: boolean;
57
+ forceScreenshot?: true;
57
58
  strictness: RenderConfig["strictness"];
58
59
  entryFile?: string;
59
60
  /**
@@ -1099,6 +1099,8 @@ export declare function shouldRetryViaPinnedFallback(args: {
1099
1099
  * that mode otherwise had no whole-render fallback for a one-off refusal.
1100
1100
  */
1101
1101
  isTransientCaptureError?: boolean;
1102
+ /** The failed attempt captured through BeginFrame; screenshot is the baseline for any failure there. */
1103
+ isBeginFrameCapture?: boolean;
1102
1104
  }): boolean;
1103
1105
  /**
1104
1106
  * True for the drawElement per-frame deadline breach raised by the engine when
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hyperframes/producer",
3
- "version": "0.9.7",
3
+ "version": "0.9.9",
4
4
  "description": "HTML-to-video rendering engine using Chrome's BeginFrame API",
5
5
  "repository": {
6
6
  "type": "git",
@@ -35,11 +35,11 @@
35
35
  "postcss": "^8.4.0",
36
36
  "puppeteer": "~25.11.0",
37
37
  "puppeteer-core": "^25.11.0",
38
- "@hyperframes/engine": "0.9.7",
39
- "@hyperframes/core": "0.9.7",
40
- "@hyperframes/lint": "0.9.7",
41
- "@hyperframes/studio-server": "0.9.7",
42
- "@hyperframes/parsers": "0.9.7"
38
+ "@hyperframes/core": "0.9.9",
39
+ "@hyperframes/engine": "0.9.9",
40
+ "@hyperframes/lint": "0.9.9",
41
+ "@hyperframes/studio-server": "0.9.9",
42
+ "@hyperframes/parsers": "0.9.9"
43
43
  },
44
44
  "devDependencies": {
45
45
  "@types/node": "^25.0.10",
@@ -48,7 +48,7 @@
48
48
  "tsx": "^4.21.0",
49
49
  "typescript": "^5.7.2",
50
50
  "vitest": "^4.1.11",
51
- "@hyperframes/aws-lambda": "0.9.7"
51
+ "@hyperframes/aws-lambda": "0.9.9"
52
52
  },
53
53
  "engines": {
54
54
  "node": ">=22"