@hyperframes/producer 0.8.192 → 0.8.193

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.
@@ -219,6 +219,8 @@ export interface RemoteProjectFile {
219
219
  readonly url: string;
220
220
  /** A file of only this video's audio, when one was stored: the audio mix reads it, not the video. */
221
221
  readonly audioSidecarUrl?: string;
222
+ /** The file's stored ffprobe JSON: the plan reads it instead of probing the file over the network. */
223
+ readonly probeFactsUrl?: string;
222
224
  readonly sha256: string;
223
225
  readonly sizeBytes: number;
224
226
  }
@@ -0,0 +1,4 @@
1
+ export declare function wantsProbeFacts(path: string): boolean;
2
+ /** `unavailable`: no ffprobe on this machine. `none`: the file cannot be probed. */
3
+ export type ProbeFactsOutcome = "built" | "none" | "unavailable";
4
+ export declare function buildProbeFacts(inputPath: string, outputPath: string, signal?: AbortSignal): Promise<ProbeFactsOutcome>;
@@ -24,6 +24,12 @@ export declare function worstSubTimelineWaitOutcome(perfs: CapturePerfSummary[])
24
24
  export declare function pushWorkerDedupPerfs(results: ReadonlyArray<{
25
25
  perf?: CapturePerfSummary;
26
26
  }>, sink: CapturePerfSummary[]): void;
27
+ /** Adds each worker's page-error console lines to `sink`, once per distinct line. */
28
+ export declare function pushWorkerPageErrors(results: ReadonlyArray<{
29
+ pageErrorLines?: string[];
30
+ }>, sink: string[]): void;
31
+ /** The console lines plus the workers' page-error lines the console does not already hold. */
32
+ export declare function withWorkerPageErrors(consoleLines: string[], workerLines: string[]): string[];
27
33
  /**
28
34
  * Collapse per-session/per-worker static-dedup perf into one render-level
29
35
  * outcome. enabled/armed = OR across workers (they run the same gates on the
@@ -17,7 +17,7 @@
17
17
  * - `perfStages.audioProcessMs` is set whether or not the call ran.
18
18
  */
19
19
  import type { Fps } from "@hyperframes/core";
20
- import { type AudioProcessingFailure } from "@hyperframes/engine";
20
+ import { type AudioProcessingFailure, type MixResult } from "@hyperframes/engine";
21
21
  import type { CompositionMetadata } from "../shared.js";
22
22
  import type { ProducerLogger } from "../../../logger.js";
23
23
  export interface AudioStageInput {
@@ -59,5 +59,7 @@ export interface AudioStageResult {
59
59
  audioError?: string;
60
60
  /** Bounded typed causes for policy, telemetry, and caller classification. */
61
61
  audioFailures?: AudioProcessingFailure[];
62
+ /** Wall ms per phase of the audio mix. */
63
+ audioPhaseMs?: MixResult["phaseMs"];
62
64
  }
63
65
  export declare function runAudioStage(input: AudioStageInput): Promise<AudioStageResult>;
@@ -603,6 +603,8 @@ export declare function executeDiskCaptureWithAdaptiveRetry(options: {
603
603
  frameRangeStart?: number;
604
604
  /** Mutated in place — replaced each attempt so only the final attempt's worker perf survives (see retry reset below). */
605
605
  dedupPerfs: CapturePerfSummary[];
606
+ /** Mutated in place: the workers' page-error console lines, for the render's error count. */
607
+ pageErrorLines?: string[];
606
608
  }): Promise<CaptureAttemptSummary[]>;
607
609
  export type RenderConfigInput = Omit<RenderConfig, "fps"> & {
608
610
  fps: FpsInput;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hyperframes/producer",
3
- "version": "0.8.192",
3
+ "version": "0.8.193",
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.2.1",
37
37
  "puppeteer-core": "^25.2.1",
38
- "@hyperframes/lint": "0.8.192",
39
- "@hyperframes/core": "0.8.192",
40
- "@hyperframes/parsers": "0.8.192",
41
- "@hyperframes/studio-server": "0.8.192",
42
- "@hyperframes/engine": "0.8.192"
38
+ "@hyperframes/engine": "0.8.193",
39
+ "@hyperframes/core": "0.8.193",
40
+ "@hyperframes/parsers": "0.8.193",
41
+ "@hyperframes/lint": "0.8.193",
42
+ "@hyperframes/studio-server": "0.8.193"
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.8.192"
51
+ "@hyperframes/aws-lambda": "0.8.193"
52
52
  },
53
53
  "engines": {
54
54
  "node": ">=22"