@hyperframes/studio-server 0.8.177 → 0.8.178
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/{chunk-GG4AS4RK.js → chunk-6PE5OD32.js} +4 -4
- package/dist/{chunk-KJZ6WB6Z.js → chunk-7L3DUCM3.js} +6 -4
- package/dist/{chunk-EZMTFRUX.js → chunk-E3VGIAMJ.js} +1 -1
- package/dist/{chunk-KR3B6IJC.js → chunk-ERQWOZ7E.js} +1 -1
- package/dist/{chunk-47NKWXAA.js → chunk-FJBJJURY.js} +1 -1
- package/dist/{chunk-K56J3CL7.js → chunk-QF7MFJJU.js} +3 -1
- package/dist/{chunk-XRUVTG5G.js → chunk-QFJR3NIL.js} +23 -11
- package/dist/helpers/hfIdPersist.js +2 -2
- package/dist/helpers/loudness.js +2 -2
- package/dist/helpers/mediaCodecMap.js +2 -2
- package/dist/helpers/mediaProxyPreview.d.ts +1 -1
- package/dist/helpers/mediaProxyPreview.js +4 -4
- package/dist/helpers/proxyTranscoder.d.ts +3 -3
- package/dist/helpers/proxyTranscoder.js +3 -3
- package/dist/helpers/safePath.js +1 -1
- package/dist/history/index.js +2 -2
- package/dist/index.d.ts +4 -6
- package/dist/index.js +7 -7
- package/dist/{mediaProxyPreview-6bL5skob.d.ts → mediaProxyPreview-DIAid9-k.d.ts} +3 -1
- package/package.json +3 -3
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
mkdirWithinProject,
|
|
4
4
|
pinProjectRecord,
|
|
5
5
|
realFilePath
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-QF7MFJJU.js";
|
|
7
7
|
|
|
8
8
|
// src/history/projectHistory.ts
|
|
9
9
|
import { randomUUID as randomUUID7 } from "crypto";
|
|
@@ -258,7 +258,7 @@ import { createHash as createHash2 } from "crypto";
|
|
|
258
258
|
import { lstatSync, readFileSync as readFileSync3, readdirSync } from "fs";
|
|
259
259
|
import { extname, isAbsolute as isAbsolute2, relative as relative2, resolve as resolve2, sep as sep2 } from "path";
|
|
260
260
|
import { isAtomicTempPath } from "@hyperframes/core/atomic-file";
|
|
261
|
-
import {
|
|
261
|
+
import { isProjectIgnoredDir } from "@hyperframes/core/project-folders";
|
|
262
262
|
var SIGNATURE_TEXT_EXTENSIONS = /* @__PURE__ */ new Set([
|
|
263
263
|
".cjs",
|
|
264
264
|
".css",
|
|
@@ -284,7 +284,7 @@ function affectsProjectSignature(projectDir, changedPath) {
|
|
|
284
284
|
if (isRenderOutput(projectDir, changedPath, readRenderOutputsOrNone(projectDir))) return false;
|
|
285
285
|
const segments = relativePath.split(sep2);
|
|
286
286
|
if (STUDIO_SIGNATURE_MANIFEST_PATHS.includes(segments.join("/"))) return true;
|
|
287
|
-
return !segments.some(
|
|
287
|
+
return !segments.some(isProjectIgnoredDir);
|
|
288
288
|
}
|
|
289
289
|
var projectSignatureCache = /* @__PURE__ */ new Map();
|
|
290
290
|
var COARSEST_FILE_TIME_TICK_MS = 2e3;
|
|
@@ -295,7 +295,7 @@ function isPathWithin(parentDir, childPath) {
|
|
|
295
295
|
function isTextContentEligible(file, size) {
|
|
296
296
|
return SIGNATURE_TEXT_EXTENSIONS.has(extname(file).toLowerCase()) && size <= MAX_SIGNATURE_TEXT_BYTES;
|
|
297
297
|
}
|
|
298
|
-
var isSkippedEntry = (entry) =>
|
|
298
|
+
var isSkippedEntry = (entry) => isProjectIgnoredDir(entry) || isAtomicTempPath(entry);
|
|
299
299
|
function signatureEntryStat(projectDir, entry, file, outputs) {
|
|
300
300
|
if (isSkippedEntry(entry) || !isPathWithin(projectDir, file)) return null;
|
|
301
301
|
if (isRenderOutput(projectDir, file, outputs)) return null;
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import {
|
|
2
2
|
PROXY_PARAMS_VERSION,
|
|
3
3
|
resolveProxy
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-QFJR3NIL.js";
|
|
5
5
|
import {
|
|
6
6
|
createMediaCodecProbeCache,
|
|
7
7
|
proxyVariantFor,
|
|
8
8
|
recordProxyPrewarm,
|
|
9
9
|
scanProjectMediaCodecMap,
|
|
10
10
|
shouldPrewarmProxy
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-E3VGIAMJ.js";
|
|
12
12
|
|
|
13
13
|
// src/helpers/mediaProxyPreview.ts
|
|
14
14
|
import { resolve } from "path";
|
|
@@ -24,7 +24,7 @@ function proxyEtagSalt(raw, box) {
|
|
|
24
24
|
if (raw === void 0) return "";
|
|
25
25
|
return `:proxy:${raw}:${PROXY_PARAMS_VERSION}${box ? `:${formatPreviewProxyBox(box)}` : ""}`;
|
|
26
26
|
}
|
|
27
|
-
async function injectMediaCodecMapIntoHtml(html, projectDir, htmlSources, probeCache, prewarm = true) {
|
|
27
|
+
async function injectMediaCodecMapIntoHtml(html, projectDir, htmlSources, probeCache, prewarm = true, signal) {
|
|
28
28
|
let map;
|
|
29
29
|
try {
|
|
30
30
|
map = await scanProjectMediaCodecMap(
|
|
@@ -42,7 +42,9 @@ async function injectMediaCodecMapIntoHtml(html, projectDir, htmlSources, probeC
|
|
|
42
42
|
resolveProxy(
|
|
43
43
|
projectDir,
|
|
44
44
|
resolve(projectDir, rootRelativePathname.replace(/^\/+/, "")),
|
|
45
|
-
proxyVariantFor(facts)
|
|
45
|
+
proxyVariantFor(facts),
|
|
46
|
+
void 0,
|
|
47
|
+
{ signal }
|
|
46
48
|
).catch(() => {
|
|
47
49
|
});
|
|
48
50
|
}
|
|
@@ -9,6 +9,7 @@ import {
|
|
|
9
9
|
import { basename, dirname, isAbsolute, join, relative, sep } from "path";
|
|
10
10
|
import { readdirSync } from "fs";
|
|
11
11
|
import { realpath, resolveWithinProject as resolveInProject } from "@hyperframes/core/safe-path";
|
|
12
|
+
import { RENDER_TEMP_DIR } from "@hyperframes/core/project-folders";
|
|
12
13
|
import {
|
|
13
14
|
folderGone,
|
|
14
15
|
isProjectRootMissing,
|
|
@@ -80,7 +81,8 @@ function walkDir(dir, prefix = "") {
|
|
|
80
81
|
const files = [];
|
|
81
82
|
for (const entry of entries) {
|
|
82
83
|
const rel = prefix ? `${prefix}/${entry.name}` : entry.name;
|
|
83
|
-
if (IGNORE_DIRS.has(entry.name) || shouldIgnoreDir(rel))
|
|
84
|
+
if (IGNORE_DIRS.has(entry.name) || RENDER_TEMP_DIR.test(entry.name) || shouldIgnoreDir(rel))
|
|
85
|
+
continue;
|
|
84
86
|
if (entry.isDirectory()) {
|
|
85
87
|
files.push(...walkDir(join(dir, entry.name), rel));
|
|
86
88
|
} else {
|
|
@@ -2,12 +2,12 @@ import {
|
|
|
2
2
|
PROXY_VARIANT_CONFIG,
|
|
3
3
|
probeFirstFrameColour,
|
|
4
4
|
probeMediaMetadata
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-E3VGIAMJ.js";
|
|
6
6
|
import {
|
|
7
7
|
mkdirWithinProject,
|
|
8
8
|
realProjectRoot,
|
|
9
9
|
realpath
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-QF7MFJJU.js";
|
|
11
11
|
|
|
12
12
|
// src/helpers/proxyTranscoder.ts
|
|
13
13
|
import { spawn } from "child_process";
|
|
@@ -239,7 +239,7 @@ function getProxyCachePath(projectDir, absoluteSourcePath, variant = "h264", box
|
|
|
239
239
|
}
|
|
240
240
|
var ProxyDroppedError = class extends ProxyTranscodeError {
|
|
241
241
|
constructor() {
|
|
242
|
-
super("media proxy copy dropped: every caller left
|
|
242
|
+
super("media proxy copy dropped: every caller left", null, "");
|
|
243
243
|
this.name = "ProxyDroppedError";
|
|
244
244
|
}
|
|
245
245
|
};
|
|
@@ -292,7 +292,13 @@ function prioritize(job) {
|
|
|
292
292
|
}
|
|
293
293
|
function leave(job) {
|
|
294
294
|
job.callers--;
|
|
295
|
-
if (job.callers
|
|
295
|
+
if (job.callers > 0) return;
|
|
296
|
+
if (job.queued) {
|
|
297
|
+
job.queued.drop();
|
|
298
|
+
return;
|
|
299
|
+
}
|
|
300
|
+
forget(job);
|
|
301
|
+
job.abandoned.abort();
|
|
296
302
|
}
|
|
297
303
|
var inFlight = /* @__PURE__ */ new Map();
|
|
298
304
|
function forget(job) {
|
|
@@ -365,7 +371,7 @@ function stderrReason(stderrTail) {
|
|
|
365
371
|
const line = errorLines.at(-1) ?? lines.at(-1);
|
|
366
372
|
return line ? `: ${line.replace(/[.!]+$/, "")}` : "";
|
|
367
373
|
}
|
|
368
|
-
async function runFfmpeg(sourcePath, outputPath, variant, box) {
|
|
374
|
+
async function runFfmpeg(sourcePath, outputPath, variant, box, signal) {
|
|
369
375
|
const metadata = await probeMediaMetadata(sourcePath);
|
|
370
376
|
const ffmpegPath = findFfBinary("ffmpeg", { configuredMustExist: true });
|
|
371
377
|
if (!ffmpegPath) {
|
|
@@ -436,10 +442,12 @@ async function runFfmpeg(sourcePath, outputPath, variant, box) {
|
|
|
436
442
|
"libopus"
|
|
437
443
|
];
|
|
438
444
|
const args = [...commonArgs, ...variant === "vp8" ? vp8Args : h264Args, outputPath];
|
|
445
|
+
signal.throwIfAborted();
|
|
439
446
|
const proc = spawn(ffmpegPath, args, {
|
|
440
447
|
stdio: ["ignore", "ignore", "pipe"],
|
|
441
448
|
timeout: TRANSCODE_TIMEOUT_MS,
|
|
442
449
|
killSignal: "SIGKILL",
|
|
450
|
+
signal,
|
|
443
451
|
windowsHide: true
|
|
444
452
|
});
|
|
445
453
|
let stderrTail = "";
|
|
@@ -447,15 +455,16 @@ async function runFfmpeg(sourcePath, outputPath, variant, box) {
|
|
|
447
455
|
stderrTail = (stderrTail + chunk.toString()).slice(-STDERR_TAIL_MAX_CHARS);
|
|
448
456
|
});
|
|
449
457
|
proc.on("error", (err) => {
|
|
458
|
+
if (signal.aborted) return;
|
|
450
459
|
reject(new FfmpegUnavailableError(`failed to spawn ffmpeg: ${err.message}`, stderrTail));
|
|
451
460
|
});
|
|
452
|
-
proc.on("close", (code,
|
|
461
|
+
proc.on("close", (code, signal2) => {
|
|
453
462
|
if (code === 0) {
|
|
454
463
|
resolvePromise();
|
|
455
|
-
} else if (
|
|
464
|
+
} else if (signal2) {
|
|
456
465
|
reject(
|
|
457
466
|
new ProxyTranscodeError(
|
|
458
|
-
`ffmpeg killed by ${
|
|
467
|
+
`ffmpeg killed by ${signal2} (timeout ${TRANSCODE_TIMEOUT_MS}ms or external kill)`,
|
|
459
468
|
null,
|
|
460
469
|
stderrTail
|
|
461
470
|
)
|
|
@@ -480,7 +489,7 @@ async function transcodeToCache(job, projectDir, absoluteSourcePath, cachePath,
|
|
|
480
489
|
mkdirWithinProject(projectDir, cacheDir);
|
|
481
490
|
const tempPath = join2(cacheDir, `.tmp-${randomUUID()}-${basename(cachePath)}`);
|
|
482
491
|
try {
|
|
483
|
-
await runFfmpeg(absoluteSourcePath, tempPath, variant, box);
|
|
492
|
+
await runFfmpeg(absoluteSourcePath, tempPath, variant, box, job.abandoned.signal);
|
|
484
493
|
renameSync(tempPath, cachePath);
|
|
485
494
|
maintainProxyCache(cacheDir);
|
|
486
495
|
return cachePath;
|
|
@@ -521,7 +530,8 @@ async function resolveProxy(projectDir, absoluteSourcePath, variant = "h264", bo
|
|
|
521
530
|
const job = {
|
|
522
531
|
cachePath,
|
|
523
532
|
priority: options.priority === true,
|
|
524
|
-
callers: 0
|
|
533
|
+
callers: 0,
|
|
534
|
+
abandoned: new AbortController()
|
|
525
535
|
};
|
|
526
536
|
const promise = transcodeToCache(
|
|
527
537
|
job,
|
|
@@ -531,7 +541,9 @@ async function resolveProxy(projectDir, absoluteSourcePath, variant = "h264", bo
|
|
|
531
541
|
variant,
|
|
532
542
|
box
|
|
533
543
|
).catch((err) => {
|
|
534
|
-
if (!(err instanceof ProxyDroppedError)
|
|
544
|
+
if (!(err instanceof ProxyDroppedError) && !job.abandoned.signal.aborted) {
|
|
545
|
+
rememberFailure(cachePath, err);
|
|
546
|
+
}
|
|
535
547
|
throw err;
|
|
536
548
|
}).finally(() => {
|
|
537
549
|
forget(job);
|
|
@@ -2,8 +2,8 @@ import {
|
|
|
2
2
|
isCompositionSource,
|
|
3
3
|
stampFileHfIds,
|
|
4
4
|
stampProjectHfIds
|
|
5
|
-
} from "../chunk-
|
|
6
|
-
import "../chunk-
|
|
5
|
+
} from "../chunk-FJBJJURY.js";
|
|
6
|
+
import "../chunk-QF7MFJJU.js";
|
|
7
7
|
import "../chunk-SVQFE44C.js";
|
|
8
8
|
import "../chunk-L3HJVTQE.js";
|
|
9
9
|
export {
|
package/dist/helpers/loudness.js
CHANGED
|
@@ -11,8 +11,8 @@ import {
|
|
|
11
11
|
requiredFfmpeg,
|
|
12
12
|
resolveLocalAudioPath,
|
|
13
13
|
updateAudioVolume
|
|
14
|
-
} from "../chunk-
|
|
15
|
-
import "../chunk-
|
|
14
|
+
} from "../chunk-ERQWOZ7E.js";
|
|
15
|
+
import "../chunk-QF7MFJJU.js";
|
|
16
16
|
import "../chunk-SVQFE44C.js";
|
|
17
17
|
import "../chunk-L3HJVTQE.js";
|
|
18
18
|
export {
|
|
@@ -13,8 +13,8 @@ import {
|
|
|
13
13
|
resolveProxyVariantRequest,
|
|
14
14
|
scanProjectMediaCodecMap,
|
|
15
15
|
shouldPrewarmProxy
|
|
16
|
-
} from "../chunk-
|
|
17
|
-
import "../chunk-
|
|
16
|
+
} from "../chunk-E3VGIAMJ.js";
|
|
17
|
+
import "../chunk-QF7MFJJU.js";
|
|
18
18
|
import "../chunk-SVQFE44C.js";
|
|
19
19
|
import "../chunk-L3HJVTQE.js";
|
|
20
20
|
export {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import '@hyperframes/core';
|
|
2
|
-
export { a as PreviewApiAdapter, P as PreviewDocumentStore, i as injectMediaCodecMap, f as injectMediaCodecMapIntoHtml, g as isAutoProxyEnabled, p as proxyEtagSalt, r as resolvePreviewMediaCodecProbeCache } from '../mediaProxyPreview-
|
|
2
|
+
export { a as PreviewApiAdapter, P as PreviewDocumentStore, i as injectMediaCodecMap, f as injectMediaCodecMapIntoHtml, g as isAutoProxyEnabled, p as proxyEtagSalt, r as resolvePreviewMediaCodecProbeCache } from '../mediaProxyPreview-DIAid9-k.js';
|
|
3
3
|
import './mediaCodecMap.js';
|
|
4
4
|
import '@hyperframes/parsers';
|
|
5
5
|
import '@hyperframes/core/compiler';
|
|
@@ -4,10 +4,10 @@ import {
|
|
|
4
4
|
isAutoProxyEnabled,
|
|
5
5
|
proxyEtagSalt,
|
|
6
6
|
resolvePreviewMediaCodecProbeCache
|
|
7
|
-
} from "../chunk-
|
|
8
|
-
import "../chunk-
|
|
9
|
-
import "../chunk-
|
|
10
|
-
import "../chunk-
|
|
7
|
+
} from "../chunk-7L3DUCM3.js";
|
|
8
|
+
import "../chunk-QFJR3NIL.js";
|
|
9
|
+
import "../chunk-E3VGIAMJ.js";
|
|
10
|
+
import "../chunk-QF7MFJJU.js";
|
|
11
11
|
import "../chunk-SVQFE44C.js";
|
|
12
12
|
import "../chunk-L3HJVTQE.js";
|
|
13
13
|
export {
|
|
@@ -7,9 +7,9 @@ import { ProxyVariant } from './mediaCodecMap.js';
|
|
|
7
7
|
* project routes (U3/U4) to serve a `?hf-proxy=` request; never used on
|
|
8
8
|
* the render path (render always sees the original file).
|
|
9
9
|
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
10
|
+
* Every caller of a cache key shares one ffmpeg child (in-flight dedupe below). A
|
|
11
|
+
* caller's `signal` detaches that caller; once no caller is left, the copy is
|
|
12
|
+
* dropped from the queue or its ffmpeg is killed.
|
|
13
13
|
*/
|
|
14
14
|
declare const PROXY_PARAMS_VERSION = "v5";
|
|
15
15
|
declare const CACHE_DIR_NAME = ".transcode-cache";
|
|
@@ -16,9 +16,9 @@ import {
|
|
|
16
16
|
resolveProxies,
|
|
17
17
|
resolveProxy,
|
|
18
18
|
waitForProxy
|
|
19
|
-
} from "../chunk-
|
|
20
|
-
import "../chunk-
|
|
21
|
-
import "../chunk-
|
|
19
|
+
} from "../chunk-QFJR3NIL.js";
|
|
20
|
+
import "../chunk-E3VGIAMJ.js";
|
|
21
|
+
import "../chunk-QF7MFJJU.js";
|
|
22
22
|
import "../chunk-SVQFE44C.js";
|
|
23
23
|
import "../chunk-L3HJVTQE.js";
|
|
24
24
|
export {
|
package/dist/helpers/safePath.js
CHANGED
package/dist/history/index.js
CHANGED
|
@@ -20,8 +20,8 @@ import {
|
|
|
20
20
|
recordRenderSuccess,
|
|
21
21
|
registerRenderOutput,
|
|
22
22
|
retainSnapshotOutput
|
|
23
|
-
} from "../chunk-
|
|
24
|
-
import "../chunk-
|
|
23
|
+
} from "../chunk-6PE5OD32.js";
|
|
24
|
+
import "../chunk-QF7MFJJU.js";
|
|
25
25
|
import "../chunk-SVQFE44C.js";
|
|
26
26
|
import "../chunk-L3HJVTQE.js";
|
|
27
27
|
export {
|
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Hono } from 'hono';
|
|
2
|
-
import { S as StudioApiAdapter, P as PreviewDocumentStore, M as MediaProcessingJobState } from './mediaProxyPreview-
|
|
3
|
-
export { L as LintResult, a as PreviewApiAdapter, R as RenderJobState, b as ResolvedProject, c as StudioSelectionResponse, d as StudioSelectionSnapshot, e as StudioSelectionTextField } from './mediaProxyPreview-
|
|
2
|
+
import { S as StudioApiAdapter, P as PreviewDocumentStore, M as MediaProcessingJobState } from './mediaProxyPreview-DIAid9-k.js';
|
|
3
|
+
export { L as LintResult, a as PreviewApiAdapter, R as RenderJobState, b as ResolvedProject, c as StudioSelectionResponse, d as StudioSelectionSnapshot, e as StudioSelectionTextField } from './mediaProxyPreview-DIAid9-k.js';
|
|
4
4
|
export { C as ClosedWindow, D as DEFAULT_HISTORY_ROOT, S as HISTORY_START, H as HistoryClosedError, a as HistoryEntry, b as HistoryEntrySide, c as HistoryFileChange, d as HistoryListItem, e as HistoryResult, f as HistoryTarget, g as HistoryWho, h as HistoryWindow, M as MAX_WINDOW_IDLE_MS, P as ProjectHistory, i as ProjectHistoryOptions, j as ProjectHistoryView, U as UNDO_MODES, k as UndoMode, o as openProjectHistory, r as readProjectHistory } from './projectHistory-ByC9sa3X.js';
|
|
5
5
|
export { ArtifactCapture, ArtifactInput, ArtifactRecord, HistoryBusyError, HistoryIdError, ProjectHistoryRecord, PrunedHistory, RenderRecord, VideoState, artifactDirectory, beginArtifactCapture, finishSnapshotRun, forgetRecordedArtifacts, historyCache, listProjectHistories, pruneGoneProjectHistories, recordArtifact, recordArtifacts, recordRenderSuccess, registerRenderOutput, retainSnapshotOutput } from './history/index.js';
|
|
6
6
|
export { CACHE_DIR_NAME as PROXY_CACHE_DIR_NAME } from './helpers/proxyTranscoder.js';
|
|
@@ -39,10 +39,8 @@ declare const STUDIO_SIGNATURE_MANIFEST_PATHS: readonly [".hyperframes/studio-ma
|
|
|
39
39
|
* preview, so an unfiltered watcher discards the memo on roughly every request of
|
|
40
40
|
* the one workload the memo exists for.
|
|
41
41
|
*
|
|
42
|
-
*
|
|
43
|
-
*
|
|
44
|
-
* files from inside it, so filtering with that set would stop motion-state saves
|
|
45
|
-
* from ever invalidating.
|
|
42
|
+
* The watcher shares `isProjectIgnoredDir` but drops all of `.hyperframes/`; the two
|
|
43
|
+
* manifest files read from inside it are let through first so motion-state saves invalidate.
|
|
46
44
|
*
|
|
47
45
|
* Every segment is tested, not just the parents, so a directory event on an
|
|
48
46
|
* excluded dir itself (`unlinkDir .thumbnails`) is filtered too. The cost is that
|
package/dist/index.js
CHANGED
|
@@ -21,7 +21,7 @@ import {
|
|
|
21
21
|
import {
|
|
22
22
|
isCompositionSource,
|
|
23
23
|
stampProjectHfIds
|
|
24
|
-
} from "./chunk-
|
|
24
|
+
} from "./chunk-FJBJJURY.js";
|
|
25
25
|
import {
|
|
26
26
|
parseEncoderOptions
|
|
27
27
|
} from "./chunk-GR4TX52A.js";
|
|
@@ -60,7 +60,7 @@ import {
|
|
|
60
60
|
resolveProjectSignature,
|
|
61
61
|
retainSnapshotOutput,
|
|
62
62
|
settledFileTag
|
|
63
|
-
} from "./chunk-
|
|
63
|
+
} from "./chunk-6PE5OD32.js";
|
|
64
64
|
import {
|
|
65
65
|
clearElementScreenshotIsolation,
|
|
66
66
|
getElementScreenshotClip
|
|
@@ -74,13 +74,13 @@ import {
|
|
|
74
74
|
requestedProjectPath,
|
|
75
75
|
requiredFfmpeg,
|
|
76
76
|
resolveLocalAudioPath
|
|
77
|
-
} from "./chunk-
|
|
77
|
+
} from "./chunk-ERQWOZ7E.js";
|
|
78
78
|
import {
|
|
79
79
|
injectMediaCodecMap,
|
|
80
80
|
isAutoProxyEnabled,
|
|
81
81
|
proxyEtagSalt,
|
|
82
82
|
resolvePreviewMediaCodecProbeCache
|
|
83
|
-
} from "./chunk-
|
|
83
|
+
} from "./chunk-7L3DUCM3.js";
|
|
84
84
|
import {
|
|
85
85
|
CACHE_DIR_NAME,
|
|
86
86
|
PROXY_PENDING_RETRY_AFTER_SECONDS,
|
|
@@ -91,7 +91,7 @@ import {
|
|
|
91
91
|
proxyActivityMark,
|
|
92
92
|
resolveProxy,
|
|
93
93
|
waitForProxy
|
|
94
|
-
} from "./chunk-
|
|
94
|
+
} from "./chunk-QFJR3NIL.js";
|
|
95
95
|
import {
|
|
96
96
|
PROXY_VARIANT_CONFIG,
|
|
97
97
|
decideMediaProxyEligibility,
|
|
@@ -100,7 +100,7 @@ import {
|
|
|
100
100
|
probeMediaMetadata,
|
|
101
101
|
recordProxyRequest,
|
|
102
102
|
resolveProxyVariantRequest
|
|
103
|
-
} from "./chunk-
|
|
103
|
+
} from "./chunk-E3VGIAMJ.js";
|
|
104
104
|
import {
|
|
105
105
|
folderGone,
|
|
106
106
|
isInHiddenOrVendorDir,
|
|
@@ -114,7 +114,7 @@ import {
|
|
|
114
114
|
realpath,
|
|
115
115
|
resolveWithinProject,
|
|
116
116
|
walkDir
|
|
117
|
-
} from "./chunk-
|
|
117
|
+
} from "./chunk-QF7MFJJU.js";
|
|
118
118
|
import {
|
|
119
119
|
STUDIO_MANUAL_EDITS_PATH,
|
|
120
120
|
createStudioManualEditsRenderBodyScript,
|
|
@@ -297,7 +297,9 @@ declare function proxyEtagSalt(raw: string | undefined, box?: PreviewProxyBox):
|
|
|
297
297
|
* Empty maps leave HTML untouched, preserving the normal no-hostile-media
|
|
298
298
|
* preview path. On-demand proxy requests enforce the same eligibility gate.
|
|
299
299
|
*/
|
|
300
|
-
declare function injectMediaCodecMapIntoHtml(html: string, projectDir: string, htmlSources: HtmlSourceLike[], probeCache?: MediaCodecProbeCache, prewarm?: boolean
|
|
300
|
+
declare function injectMediaCodecMapIntoHtml(html: string, projectDir: string, htmlSources: HtmlSourceLike[], probeCache?: MediaCodecProbeCache, prewarm?: boolean,
|
|
301
|
+
/** Aborting it stops the pre-warms nobody else waits for. */
|
|
302
|
+
signal?: AbortSignal): Promise<string>;
|
|
301
303
|
/**
|
|
302
304
|
* Adapter-aware wrapper used by the studio preview routes: skipped entirely
|
|
303
305
|
* (no scan, no injection) when auto-proxy is off for this adapter.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hyperframes/studio-server",
|
|
3
|
-
"version": "0.8.
|
|
3
|
+
"version": "0.8.178",
|
|
4
4
|
"repository": {
|
|
5
5
|
"type": "git",
|
|
6
6
|
"url": "https://github.com/heygen-com/hyperframes",
|
|
@@ -85,8 +85,8 @@
|
|
|
85
85
|
"postcss": "^8.5.8",
|
|
86
86
|
"postcss-selector-parser": "^7.1.2",
|
|
87
87
|
"sharp": "^0.35.0",
|
|
88
|
-
"@hyperframes/core": "0.8.
|
|
89
|
-
"@hyperframes/parsers": "0.8.
|
|
88
|
+
"@hyperframes/core": "0.8.178",
|
|
89
|
+
"@hyperframes/parsers": "0.8.178"
|
|
90
90
|
},
|
|
91
91
|
"devDependencies": {
|
|
92
92
|
"@types/node": "^25.0.10",
|