@hyperframes/producer 0.9.21 → 0.9.22
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
|
@@ -331,7 +331,7 @@ function buildVirtualTimeShim(options) {
|
|
|
331
331
|
} catch (e) {}
|
|
332
332
|
}
|
|
333
333
|
` : "";
|
|
334
|
-
const seekToTimeReseedCall = seedRandomFromFrame ? "reseedRngFromTime(safeTimeMs);\n
|
|
334
|
+
const seekToTimeReseedCall = seedRandomFromFrame ? "reseedRngFromTime(safeTimeMs);\n " : "";
|
|
335
335
|
return String.raw`(function() {
|
|
336
336
|
if (window.__HF_VIRTUAL_TIME__) return;
|
|
337
337
|
|
|
@@ -472,6 +472,20 @@ ${seededRandomBlock}
|
|
|
472
472
|
if (!cancelTimer(id)) originalClearInterval(id);
|
|
473
473
|
};
|
|
474
474
|
|
|
475
|
+
function seekToTime(nextTimeMs) {
|
|
476
|
+
var safeTimeMs = Math.max(0, Number(nextTimeMs) || 0);
|
|
477
|
+
if (!rendering && window.__renderReady === true) {
|
|
478
|
+
rendering = true;
|
|
479
|
+
// A worker whose first frame is past the start plays the film's first frame first, so timers the
|
|
480
|
+
// page starts there keep the schedule a one-worker render gives them.
|
|
481
|
+
if (safeTimeMs > 0) seekToTime(0);
|
|
482
|
+
}
|
|
483
|
+
${seekToTimeReseedCall}fireDueTimers(safeTimeMs);
|
|
484
|
+
virtualNowMs = safeTimeMs;
|
|
485
|
+
flushAnimationFrame();
|
|
486
|
+
return virtualNowMs;
|
|
487
|
+
}
|
|
488
|
+
|
|
475
489
|
window.__HF_VIRTUAL_TIME__ = {
|
|
476
490
|
originalSetTimeout: originalSetTimeout,
|
|
477
491
|
originalClearTimeout: originalClearTimeout,
|
|
@@ -479,14 +493,7 @@ ${seededRandomBlock}
|
|
|
479
493
|
originalClearInterval: originalClearInterval,
|
|
480
494
|
originalRequestAnimationFrame: originalRequestAnimationFrame,
|
|
481
495
|
originalCancelAnimationFrame: originalCancelAnimationFrame,
|
|
482
|
-
seekToTime:
|
|
483
|
-
var safeTimeMs = Math.max(0, Number(nextTimeMs) || 0);
|
|
484
|
-
if (window.__renderReady === true) rendering = true;
|
|
485
|
-
${seekToTimeReseedCall}fireDueTimers(safeTimeMs);
|
|
486
|
-
virtualNowMs = safeTimeMs;
|
|
487
|
-
flushAnimationFrame();
|
|
488
|
-
return virtualNowMs;
|
|
489
|
-
},
|
|
496
|
+
seekToTime: seekToTime,
|
|
490
497
|
getTime: function() {
|
|
491
498
|
return virtualNowMs;
|
|
492
499
|
},
|
|
@@ -16892,13 +16899,14 @@ var RenderChunkValidationError = class extends Error {
|
|
|
16892
16899
|
this.code = code;
|
|
16893
16900
|
}
|
|
16894
16901
|
};
|
|
16902
|
+
var chunkFrameInjectorDependencies = { createVideoFrameInjector: createVideoFrameInjector3 };
|
|
16895
16903
|
function createChunkVideoFrameInjectorFactory(frameLookup, options) {
|
|
16896
16904
|
if (!(frameLookup instanceof Promise))
|
|
16897
|
-
return () =>
|
|
16905
|
+
return () => chunkFrameInjectorDependencies.createVideoFrameInjector(frameLookup, options);
|
|
16898
16906
|
return () => {
|
|
16899
16907
|
let hook;
|
|
16900
16908
|
return async (page, time, heldVideoTime) => {
|
|
16901
|
-
hook ??=
|
|
16909
|
+
hook ??= chunkFrameInjectorDependencies.createVideoFrameInjector(await frameLookup, options);
|
|
16902
16910
|
await hook?.(page, time, heldVideoTime);
|
|
16903
16911
|
};
|
|
16904
16912
|
};
|
package/dist/public-server.js
CHANGED
|
@@ -348,7 +348,7 @@ function buildVirtualTimeShim(options) {
|
|
|
348
348
|
} catch (e) {}
|
|
349
349
|
}
|
|
350
350
|
` : "";
|
|
351
|
-
const seekToTimeReseedCall = seedRandomFromFrame ? "reseedRngFromTime(safeTimeMs);\n
|
|
351
|
+
const seekToTimeReseedCall = seedRandomFromFrame ? "reseedRngFromTime(safeTimeMs);\n " : "";
|
|
352
352
|
return String.raw`(function() {
|
|
353
353
|
if (window.__HF_VIRTUAL_TIME__) return;
|
|
354
354
|
|
|
@@ -489,6 +489,20 @@ ${seededRandomBlock}
|
|
|
489
489
|
if (!cancelTimer(id)) originalClearInterval(id);
|
|
490
490
|
};
|
|
491
491
|
|
|
492
|
+
function seekToTime(nextTimeMs) {
|
|
493
|
+
var safeTimeMs = Math.max(0, Number(nextTimeMs) || 0);
|
|
494
|
+
if (!rendering && window.__renderReady === true) {
|
|
495
|
+
rendering = true;
|
|
496
|
+
// A worker whose first frame is past the start plays the film's first frame first, so timers the
|
|
497
|
+
// page starts there keep the schedule a one-worker render gives them.
|
|
498
|
+
if (safeTimeMs > 0) seekToTime(0);
|
|
499
|
+
}
|
|
500
|
+
${seekToTimeReseedCall}fireDueTimers(safeTimeMs);
|
|
501
|
+
virtualNowMs = safeTimeMs;
|
|
502
|
+
flushAnimationFrame();
|
|
503
|
+
return virtualNowMs;
|
|
504
|
+
}
|
|
505
|
+
|
|
492
506
|
window.__HF_VIRTUAL_TIME__ = {
|
|
493
507
|
originalSetTimeout: originalSetTimeout,
|
|
494
508
|
originalClearTimeout: originalClearTimeout,
|
|
@@ -496,14 +510,7 @@ ${seededRandomBlock}
|
|
|
496
510
|
originalClearInterval: originalClearInterval,
|
|
497
511
|
originalRequestAnimationFrame: originalRequestAnimationFrame,
|
|
498
512
|
originalCancelAnimationFrame: originalCancelAnimationFrame,
|
|
499
|
-
seekToTime:
|
|
500
|
-
var safeTimeMs = Math.max(0, Number(nextTimeMs) || 0);
|
|
501
|
-
if (window.__renderReady === true) rendering = true;
|
|
502
|
-
${seekToTimeReseedCall}fireDueTimers(safeTimeMs);
|
|
503
|
-
virtualNowMs = safeTimeMs;
|
|
504
|
-
flushAnimationFrame();
|
|
505
|
-
return virtualNowMs;
|
|
506
|
-
},
|
|
513
|
+
seekToTime: seekToTime,
|
|
507
514
|
getTime: function() {
|
|
508
515
|
return virtualNowMs;
|
|
509
516
|
},
|
|
@@ -16,6 +16,9 @@ export declare class RenderChunkValidationError extends Error {
|
|
|
16
16
|
readonly code: RenderChunkValidationCode;
|
|
17
17
|
constructor(code: RenderChunkValidationCode, message: string);
|
|
18
18
|
}
|
|
19
|
+
export declare const chunkFrameInjectorDependencies: {
|
|
20
|
+
createVideoFrameInjector: typeof createVideoFrameInjector;
|
|
21
|
+
};
|
|
19
22
|
/** One injector per browser session: a hook reused on a fresh page can skip its first injection. */
|
|
20
23
|
export declare function createChunkVideoFrameInjectorFactory(frameLookup: FrameLookupTable | Promise<FrameLookupTable> | null, options?: Parameters<typeof createVideoFrameInjector>[1]): () => BeforeCaptureHook | null;
|
|
21
24
|
/**
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hyperframes/producer",
|
|
3
|
-
"version": "0.9.
|
|
3
|
+
"version": "0.9.22",
|
|
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/
|
|
39
|
-
"@hyperframes/parsers": "0.9.
|
|
40
|
-
"@hyperframes/
|
|
41
|
-
"@hyperframes/
|
|
42
|
-
"@hyperframes/
|
|
38
|
+
"@hyperframes/core": "0.9.22",
|
|
39
|
+
"@hyperframes/parsers": "0.9.22",
|
|
40
|
+
"@hyperframes/lint": "0.9.22",
|
|
41
|
+
"@hyperframes/engine": "0.9.22",
|
|
42
|
+
"@hyperframes/studio-server": "0.9.22"
|
|
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.
|
|
51
|
+
"@hyperframes/aws-lambda": "0.9.22"
|
|
52
52
|
},
|
|
53
53
|
"engines": {
|
|
54
54
|
"node": ">=22"
|