hyperframes 0.7.87 → 0.7.89
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/cli.js +123 -58
- package/dist/hyperframes-player.global.js +1 -1
- package/dist/studio/assets/{hyperframes-player-BFqB5AWJ.js → hyperframes-player-DVTnBvSO.js} +1 -1
- package/dist/studio/assets/{index-BblzZ6Av.js → index-CddKwfQ1.js} +3 -3
- package/dist/studio/assets/{index-D_JU4EeH.js → index-Qvx7boWH.js} +1 -1
- package/dist/studio/assets/{index-B1Vf4vCl.js → index-ulQEdWKo.js} +1 -1
- package/dist/studio/index.html +1 -1
- package/package.json +1 -1
package/dist/cli.js
CHANGED
|
@@ -50,7 +50,7 @@ var VERSION;
|
|
|
50
50
|
var init_version = __esm({
|
|
51
51
|
"src/version.ts"() {
|
|
52
52
|
"use strict";
|
|
53
|
-
VERSION = true ? "0.7.
|
|
53
|
+
VERSION = true ? "0.7.89" : "0.0.0-dev";
|
|
54
54
|
}
|
|
55
55
|
});
|
|
56
56
|
|
|
@@ -68786,6 +68786,8 @@ var init_runFfmpeg = __esm({
|
|
|
68786
68786
|
// ../engine/src/utils/ffprobe.ts
|
|
68787
68787
|
import { spawn as spawn3 } from "child_process";
|
|
68788
68788
|
import { readFileSync as readFileSync3 } from "fs";
|
|
68789
|
+
import * as zlib from "zlib";
|
|
68790
|
+
import { StringDecoder } from "string_decoder";
|
|
68789
68791
|
import { basename as basename2, extname } from "path";
|
|
68790
68792
|
function redactFfprobeInput(stderr, filePath) {
|
|
68791
68793
|
if (!filePath) return stderr;
|
|
@@ -68811,12 +68813,26 @@ function sanitizeFfprobeDiagnostic(stderr, filePath) {
|
|
|
68811
68813
|
return `\u2026${redacted.slice(-(FFPROBE_ERROR_MAX_CHARS - 1))}`;
|
|
68812
68814
|
}
|
|
68813
68815
|
async function runFfprobe(filePath, argsWithoutInput, signal) {
|
|
68816
|
+
if (filePath === "-") {
|
|
68817
|
+
throw new Error('[FFmpeg] Refusing to probe "-": stdin is not a supported input path.');
|
|
68818
|
+
}
|
|
68814
68819
|
const command2 = getFfprobeBinary();
|
|
68815
|
-
const proc = spawn3(command2, ["-v", "error", ...argsWithoutInput, "--", filePath]
|
|
68820
|
+
const proc = spawn3(command2, ["-v", "error", ...argsWithoutInput, "--", filePath], {
|
|
68821
|
+
// Nothing is ever written to the child's stdin; leaving it as a pipe is
|
|
68822
|
+
// what lets a stdin-reading invocation block indefinitely.
|
|
68823
|
+
stdio: ["ignore", "pipe", "pipe"]
|
|
68824
|
+
});
|
|
68816
68825
|
trackChildProcess(proc);
|
|
68826
|
+
const decoder = new StringDecoder("utf8");
|
|
68817
68827
|
let stdout2 = "";
|
|
68828
|
+
let stdoutTruncated = false;
|
|
68818
68829
|
proc.stdout.on("data", (data2) => {
|
|
68819
|
-
|
|
68830
|
+
if (stdoutTruncated) return;
|
|
68831
|
+
stdout2 += decoder.write(data2);
|
|
68832
|
+
if (stdout2.length > FFPROBE_STDOUT_MAX_CHARS) {
|
|
68833
|
+
stdoutTruncated = true;
|
|
68834
|
+
stdout2 = "";
|
|
68835
|
+
}
|
|
68820
68836
|
});
|
|
68821
68837
|
const managed = new ManagedChildProcess(proc, {
|
|
68822
68838
|
signal,
|
|
@@ -68824,6 +68840,12 @@ async function runFfprobe(filePath, argsWithoutInput, signal) {
|
|
|
68824
68840
|
stderrMaxBytes: FFPROBE_STDERR_MAX_BYTES
|
|
68825
68841
|
});
|
|
68826
68842
|
const outcome = await managed.wait();
|
|
68843
|
+
stdout2 += decoder.end();
|
|
68844
|
+
if (stdoutTruncated) {
|
|
68845
|
+
throw new Error(
|
|
68846
|
+
`[FFmpeg] ffprobe output exceeded ${FFPROBE_STDOUT_MAX_CHARS} characters; refusing to parse a truncated result.`
|
|
68847
|
+
);
|
|
68848
|
+
}
|
|
68827
68849
|
if (outcome.reason === "spawn_error") {
|
|
68828
68850
|
if (outcome.error?.code === "ENOENT") {
|
|
68829
68851
|
const configured = process.env[FFPROBE_PATH_ENV]?.trim();
|
|
@@ -68850,10 +68872,10 @@ function parseProbeJson(stdout2) {
|
|
|
68850
68872
|
);
|
|
68851
68873
|
}
|
|
68852
68874
|
}
|
|
68853
|
-
function
|
|
68854
|
-
let crc = 4294967295;
|
|
68855
|
-
for (let i2 = 0; i2 <
|
|
68856
|
-
crc ^=
|
|
68875
|
+
function crc32Fallback(data2, seed) {
|
|
68876
|
+
let crc = seed ^ 4294967295;
|
|
68877
|
+
for (let i2 = 0; i2 < data2.length; i2++) {
|
|
68878
|
+
crc ^= data2[i2] ?? 0;
|
|
68857
68879
|
for (let bit = 0; bit < 8; bit++) {
|
|
68858
68880
|
const mask = -(crc & 1);
|
|
68859
68881
|
crc = crc >>> 1 ^ 3988292384 & mask;
|
|
@@ -68861,6 +68883,11 @@ function crc32(buf) {
|
|
|
68861
68883
|
}
|
|
68862
68884
|
return (crc ^ 4294967295) >>> 0;
|
|
68863
68885
|
}
|
|
68886
|
+
function chunkCrc32(chunkType, chunkData) {
|
|
68887
|
+
const typeBytes = Buffer.from(chunkType, "ascii");
|
|
68888
|
+
if (nativeCrc32) return nativeCrc32(chunkData, nativeCrc32(typeBytes));
|
|
68889
|
+
return crc32Fallback(chunkData, crc32Fallback(typeBytes, 0));
|
|
68890
|
+
}
|
|
68864
68891
|
function extractPngMetadataFromBuffer(buf) {
|
|
68865
68892
|
if (buf.length < 8 || buf[0] !== 137 || buf[1] !== 80 || buf[2] !== 78 || buf[3] !== 71 || buf[4] !== 13 || buf[5] !== 10 || buf[6] !== 26 || buf[7] !== 10) {
|
|
68866
68893
|
return null;
|
|
@@ -68876,9 +68903,8 @@ function extractPngMetadataFromBuffer(buf) {
|
|
|
68876
68903
|
if (pos + 12 + chunkLen > buf.length) return null;
|
|
68877
68904
|
const chunkData = buf.subarray(pos + 8, pos + 8 + chunkLen);
|
|
68878
68905
|
const chunkCrc = buf.readUInt32BE(pos + 8 + chunkLen);
|
|
68879
|
-
|
|
68880
|
-
if (
|
|
68881
|
-
if (chunkType === "IHDR" && chunkLen >= 8) {
|
|
68906
|
+
if (chunkCrc32(chunkType, chunkData) !== chunkCrc) return null;
|
|
68907
|
+
if (chunkType === "IHDR" && chunkLen >= 13 && width === 0 && height === 0) {
|
|
68882
68908
|
width = buf.readUInt32BE(pos + 8);
|
|
68883
68909
|
height = buf.readUInt32BE(pos + 12);
|
|
68884
68910
|
}
|
|
@@ -68895,11 +68921,15 @@ function extractPngMetadataFromBuffer(buf) {
|
|
|
68895
68921
|
colorSpace: matrixCode === 9 ? "bt2020nc" : matrixCode === 0 ? "gbr" : `unknown-${matrixCode}`
|
|
68896
68922
|
};
|
|
68897
68923
|
}
|
|
68924
|
+
if (width > 0 && height > 0 && colorSpaceFromCicp !== null) break;
|
|
68898
68925
|
if (chunkType === "IEND") break;
|
|
68899
68926
|
pos += 12 + chunkLen;
|
|
68900
68927
|
}
|
|
68901
68928
|
return width > 0 && height > 0 ? { width, height, colorSpace: colorSpaceFromCicp } : null;
|
|
68902
68929
|
}
|
|
68930
|
+
function pixelFormatHasAlpha(pixelFormat) {
|
|
68931
|
+
return /^(?:yuva|rgba|argb|bgra|abgr|gbrap|ya|ayuv)/i.test(pixelFormat);
|
|
68932
|
+
}
|
|
68903
68933
|
function extractStillImageMetadata(filePath) {
|
|
68904
68934
|
if (extname(filePath).toLowerCase() !== ".png") return null;
|
|
68905
68935
|
try {
|
|
@@ -68919,22 +68949,28 @@ function readTagCI(tags, name) {
|
|
|
68919
68949
|
function parseFrameRate(frameRateStr) {
|
|
68920
68950
|
if (!frameRateStr) return 0;
|
|
68921
68951
|
const parts = frameRateStr.split("/");
|
|
68922
|
-
if (parts.length
|
|
68923
|
-
|
|
68924
|
-
|
|
68925
|
-
|
|
68926
|
-
|
|
68927
|
-
|
|
68928
|
-
return
|
|
68929
|
-
}
|
|
68930
|
-
|
|
68931
|
-
|
|
68952
|
+
if (parts.length > 2) return 0;
|
|
68953
|
+
const strict = (part) => part === void 0 || part.trim() === "" ? NaN : Number(part.trim());
|
|
68954
|
+
const raw = parts.length === 2 ? (() => {
|
|
68955
|
+
const num2 = strict(parts[0]);
|
|
68956
|
+
const den = strict(parts[1]);
|
|
68957
|
+
if (!Number.isFinite(num2) || !Number.isFinite(den) || den === 0) return NaN;
|
|
68958
|
+
return num2 / den;
|
|
68959
|
+
})() : strict(frameRateStr);
|
|
68960
|
+
if (!Number.isFinite(raw) || raw <= 0) return 0;
|
|
68961
|
+
const rounded = Math.round(raw * 100) / 100;
|
|
68962
|
+
if (!Number.isFinite(rounded)) return 0;
|
|
68963
|
+
return rounded > 0 ? rounded : 0.01;
|
|
68932
68964
|
}
|
|
68933
68965
|
async function extractMediaMetadata(filePath) {
|
|
68934
68966
|
const cached2 = videoMetadataCache.get(filePath);
|
|
68935
68967
|
if (cached2) return cached2;
|
|
68936
68968
|
const probePromise = (async () => {
|
|
68937
|
-
|
|
68969
|
+
let stillImageMetaMemo;
|
|
68970
|
+
const stillImage = () => {
|
|
68971
|
+
stillImageMetaMemo ??= extractStillImageMetadata(filePath);
|
|
68972
|
+
return stillImageMetaMemo;
|
|
68973
|
+
};
|
|
68938
68974
|
let output = null;
|
|
68939
68975
|
try {
|
|
68940
68976
|
const stdout2 = await runFfprobe(filePath, [
|
|
@@ -68945,10 +68981,11 @@ async function extractMediaMetadata(filePath) {
|
|
|
68945
68981
|
]);
|
|
68946
68982
|
output = parseProbeJson(stdout2);
|
|
68947
68983
|
} catch (error) {
|
|
68948
|
-
if (!
|
|
68984
|
+
if (!stillImage()) throw error;
|
|
68949
68985
|
}
|
|
68950
68986
|
const videoStream = output?.streams.find((s2) => s2.codec_type === "video");
|
|
68951
68987
|
if (!videoStream) {
|
|
68988
|
+
const stillImageMeta = stillImage();
|
|
68952
68989
|
if (stillImageMeta) {
|
|
68953
68990
|
return {
|
|
68954
68991
|
durationSeconds: 0,
|
|
@@ -68972,18 +69009,23 @@ async function extractMediaMetadata(filePath) {
|
|
|
68972
69009
|
const colorTransfer = videoStream.color_transfer || "";
|
|
68973
69010
|
const colorPrimaries = videoStream.color_primaries || "";
|
|
68974
69011
|
const colorSpaceVal = videoStream.color_space || "";
|
|
68975
|
-
const
|
|
68976
|
-
const
|
|
69012
|
+
const cicp = colorTransfer && colorPrimaries && colorSpaceVal ? null : stillImage()?.colorSpace;
|
|
69013
|
+
const merged = {
|
|
69014
|
+
colorTransfer: colorTransfer || cicp?.colorTransfer || "",
|
|
69015
|
+
colorPrimaries: colorPrimaries || cicp?.colorPrimaries || "",
|
|
69016
|
+
colorSpace: colorSpaceVal || cicp?.colorSpace || ""
|
|
69017
|
+
};
|
|
69018
|
+
const colorSpace = merged.colorTransfer || merged.colorPrimaries || merged.colorSpace ? merged : null;
|
|
68977
69019
|
const pixelFormat = videoStream.pix_fmt || "";
|
|
68978
69020
|
const alphaMode = readTagCI(videoStream.tags, "alpha_mode");
|
|
68979
|
-
const hasAlpha =
|
|
69021
|
+
const hasAlpha = pixelFormatHasAlpha(pixelFormat) || alphaMode === "1";
|
|
68980
69022
|
const containerDuration = output?.format.duration ? parseFloat(output.format.duration) : 0;
|
|
68981
69023
|
const streamDuration = videoStream.duration ? parseFloat(videoStream.duration) : 0;
|
|
68982
69024
|
return {
|
|
68983
69025
|
durationSeconds: containerDuration,
|
|
68984
69026
|
videoStreamDurationSeconds: streamDuration > 0 ? streamDuration : containerDuration,
|
|
68985
|
-
width: videoStream.width ||
|
|
68986
|
-
height: videoStream.height ||
|
|
69027
|
+
width: videoStream.width || stillImage()?.width || 0,
|
|
69028
|
+
height: videoStream.height || stillImage()?.height || 0,
|
|
68987
69029
|
fps,
|
|
68988
69030
|
videoCodec: videoStream.codec_name || "unknown",
|
|
68989
69031
|
hasAudio: output?.streams.some((s2) => s2.codec_type === "audio") ?? false,
|
|
@@ -69016,20 +69058,29 @@ async function extractAudioMetadata(filePath, options) {
|
|
|
69016
69058
|
const streamDuration = audioStream.duration ? parseFloat(audioStream.duration) : void 0;
|
|
69017
69059
|
const sampleRate = audioStream.sample_rate ? parseInt(audioStream.sample_rate) : 44100;
|
|
69018
69060
|
const audioCodec = audioStream.codec_name || "unknown";
|
|
69019
|
-
|
|
69020
|
-
|
|
69021
|
-
|
|
69022
|
-
|
|
69023
|
-
|
|
69024
|
-
|
|
69025
|
-
|
|
69026
|
-
|
|
69027
|
-
|
|
69028
|
-
|
|
69029
|
-
|
|
69030
|
-
|
|
69031
|
-
|
|
69032
|
-
|
|
69061
|
+
const isAacLc = /^\s*LC\s*$/i.test(audioStream.profile ?? "");
|
|
69062
|
+
if (audioCodec === "aac" && isAacLc && sampleRate > 0) {
|
|
69063
|
+
try {
|
|
69064
|
+
const packetStdout = await runFfprobe(
|
|
69065
|
+
filePath,
|
|
69066
|
+
[
|
|
69067
|
+
"-select_streams",
|
|
69068
|
+
"a:0",
|
|
69069
|
+
"-count_packets",
|
|
69070
|
+
"-show_entries",
|
|
69071
|
+
"stream=nb_read_packets",
|
|
69072
|
+
"-print_format",
|
|
69073
|
+
"json"
|
|
69074
|
+
],
|
|
69075
|
+
options?.signal
|
|
69076
|
+
);
|
|
69077
|
+
const packetOutput = parseProbeJson(packetStdout);
|
|
69078
|
+
const packetCount = Number(packetOutput.streams[0]?.nb_read_packets);
|
|
69079
|
+
if (Number.isFinite(packetCount) && packetCount > 0) {
|
|
69080
|
+
durationSeconds = packetCount * AAC_LC_SAMPLES_PER_PACKET / sampleRate;
|
|
69081
|
+
}
|
|
69082
|
+
} catch (error) {
|
|
69083
|
+
if (options?.signal?.aborted) throw error;
|
|
69033
69084
|
}
|
|
69034
69085
|
}
|
|
69035
69086
|
return {
|
|
@@ -69097,7 +69148,7 @@ async function analyzeKeyframeIntervalsUncached(filePath) {
|
|
|
69097
69148
|
isProblematic: maxInterval > 2
|
|
69098
69149
|
};
|
|
69099
69150
|
}
|
|
69100
|
-
var FFPROBE_STDERR_MAX_BYTES, FFPROBE_ERROR_MAX_CHARS, videoMetadataCache, audioMetadataCache, AAC_LC_SAMPLES_PER_PACKET, extractVideoMetadata, keyframeCache;
|
|
69151
|
+
var FFPROBE_STDERR_MAX_BYTES, FFPROBE_STDOUT_MAX_CHARS, FFPROBE_ERROR_MAX_CHARS, videoMetadataCache, audioMetadataCache, AAC_LC_SAMPLES_PER_PACKET, nativeCrc32, extractVideoMetadata, keyframeCache;
|
|
69101
69152
|
var init_ffprobe = __esm({
|
|
69102
69153
|
"../engine/src/utils/ffprobe.ts"() {
|
|
69103
69154
|
"use strict";
|
|
@@ -69106,10 +69157,12 @@ var init_ffprobe = __esm({
|
|
|
69106
69157
|
init_managedChildProcess();
|
|
69107
69158
|
init_processTracker();
|
|
69108
69159
|
FFPROBE_STDERR_MAX_BYTES = 8 * 1024;
|
|
69160
|
+
FFPROBE_STDOUT_MAX_CHARS = 8e6;
|
|
69109
69161
|
FFPROBE_ERROR_MAX_CHARS = 4 * 1024;
|
|
69110
69162
|
videoMetadataCache = /* @__PURE__ */ new Map();
|
|
69111
69163
|
audioMetadataCache = /* @__PURE__ */ new Map();
|
|
69112
69164
|
AAC_LC_SAMPLES_PER_PACKET = 1024;
|
|
69165
|
+
nativeCrc32 = typeof zlib.crc32 === "function" ? zlib.crc32 : void 0;
|
|
69113
69166
|
extractVideoMetadata = extractMediaMetadata;
|
|
69114
69167
|
keyframeCache = /* @__PURE__ */ new Map();
|
|
69115
69168
|
}
|
|
@@ -96046,7 +96099,10 @@ var init_fileWatcher = __esm({
|
|
|
96046
96099
|
".git",
|
|
96047
96100
|
".hyperframes",
|
|
96048
96101
|
".next",
|
|
96102
|
+
".thumbnails",
|
|
96103
|
+
".transcode-cache",
|
|
96049
96104
|
".vite",
|
|
96105
|
+
".waveform-cache",
|
|
96050
96106
|
"build",
|
|
96051
96107
|
"coverage",
|
|
96052
96108
|
"dist",
|
|
@@ -97057,7 +97113,7 @@ function colorLabel(input2) {
|
|
|
97057
97113
|
}
|
|
97058
97114
|
return "SDR/unknown";
|
|
97059
97115
|
}
|
|
97060
|
-
function
|
|
97116
|
+
function pixelFormatHasAlpha2(pixFmt) {
|
|
97061
97117
|
return pixFmt !== void 0 && ALPHA_PIX_FMT_RE.test(pixFmt.toLowerCase());
|
|
97062
97118
|
}
|
|
97063
97119
|
function classifyMediaColor(stream) {
|
|
@@ -97151,7 +97207,7 @@ async function probeAssetCodec(filePath, runner) {
|
|
|
97151
97207
|
if (metadata.kind !== "video" || metadata.probeError) return null;
|
|
97152
97208
|
const codecName = metadata.color.codecName;
|
|
97153
97209
|
if (!codecName) return null;
|
|
97154
|
-
return codecFactsFor(codecName,
|
|
97210
|
+
return codecFactsFor(codecName, pixelFormatHasAlpha2(metadata.color.pixelFormat));
|
|
97155
97211
|
}
|
|
97156
97212
|
function createMediaCodecProbeCache() {
|
|
97157
97213
|
return /* @__PURE__ */ new Map();
|
|
@@ -108720,7 +108776,13 @@ var init_dist9 = __esm({
|
|
|
108720
108776
|
init_dist2();
|
|
108721
108777
|
init_dist3();
|
|
108722
108778
|
init_systemFontLocator();
|
|
108723
|
-
IGNORE_DIRS = /* @__PURE__ */ new Set([
|
|
108779
|
+
IGNORE_DIRS = /* @__PURE__ */ new Set([
|
|
108780
|
+
".thumbnails",
|
|
108781
|
+
".transcode-cache",
|
|
108782
|
+
".waveform-cache",
|
|
108783
|
+
"node_modules",
|
|
108784
|
+
".git"
|
|
108785
|
+
]);
|
|
108724
108786
|
SIGNATURE_TEXT_EXTENSIONS = /* @__PURE__ */ new Set([
|
|
108725
108787
|
".cjs",
|
|
108726
108788
|
".css",
|
|
@@ -108738,7 +108800,10 @@ var init_dist9 = __esm({
|
|
|
108738
108800
|
".git",
|
|
108739
108801
|
".hyperframes",
|
|
108740
108802
|
".next",
|
|
108803
|
+
".thumbnails",
|
|
108804
|
+
".transcode-cache",
|
|
108741
108805
|
".vite",
|
|
108806
|
+
".waveform-cache",
|
|
108742
108807
|
"build",
|
|
108743
108808
|
"coverage",
|
|
108744
108809
|
"dist",
|
|
@@ -155962,7 +156027,7 @@ __export(src_exports3, {
|
|
|
155962
156027
|
});
|
|
155963
156028
|
import http3 from "http";
|
|
155964
156029
|
import https from "https";
|
|
155965
|
-
import
|
|
156030
|
+
import zlib2 from "zlib";
|
|
155966
156031
|
import Stream2, { PassThrough as PassThrough2, pipeline as pump } from "stream";
|
|
155967
156032
|
import { Buffer as Buffer4 } from "buffer";
|
|
155968
156033
|
async function fetch3(url, options_) {
|
|
@@ -156134,11 +156199,11 @@ async function fetch3(url, options_) {
|
|
|
156134
156199
|
return;
|
|
156135
156200
|
}
|
|
156136
156201
|
const zlibOptions = {
|
|
156137
|
-
flush:
|
|
156138
|
-
finishFlush:
|
|
156202
|
+
flush: zlib2.Z_SYNC_FLUSH,
|
|
156203
|
+
finishFlush: zlib2.Z_SYNC_FLUSH
|
|
156139
156204
|
};
|
|
156140
156205
|
if (codings === "gzip" || codings === "x-gzip") {
|
|
156141
|
-
body = pump(body,
|
|
156206
|
+
body = pump(body, zlib2.createGunzip(zlibOptions), (error) => {
|
|
156142
156207
|
if (error) {
|
|
156143
156208
|
reject(error);
|
|
156144
156209
|
}
|
|
@@ -156155,13 +156220,13 @@ async function fetch3(url, options_) {
|
|
|
156155
156220
|
});
|
|
156156
156221
|
raw.once("data", (chunk) => {
|
|
156157
156222
|
if ((chunk[0] & 15) === 8) {
|
|
156158
|
-
body = pump(body,
|
|
156223
|
+
body = pump(body, zlib2.createInflate(), (error) => {
|
|
156159
156224
|
if (error) {
|
|
156160
156225
|
reject(error);
|
|
156161
156226
|
}
|
|
156162
156227
|
});
|
|
156163
156228
|
} else {
|
|
156164
|
-
body = pump(body,
|
|
156229
|
+
body = pump(body, zlib2.createInflateRaw(), (error) => {
|
|
156165
156230
|
if (error) {
|
|
156166
156231
|
reject(error);
|
|
156167
156232
|
}
|
|
@@ -156179,7 +156244,7 @@ async function fetch3(url, options_) {
|
|
|
156179
156244
|
return;
|
|
156180
156245
|
}
|
|
156181
156246
|
if (codings === "br") {
|
|
156182
|
-
body = pump(body,
|
|
156247
|
+
body = pump(body, zlib2.createBrotliDecompress(), (error) => {
|
|
156183
156248
|
if (error) {
|
|
156184
156249
|
reject(error);
|
|
156185
156250
|
}
|
|
@@ -166296,7 +166361,7 @@ var require_limiter = __commonJS({
|
|
|
166296
166361
|
var require_permessage_deflate = __commonJS({
|
|
166297
166362
|
"../../node_modules/.bun/ws@8.20.0/node_modules/ws/lib/permessage-deflate.js"(exports, module) {
|
|
166298
166363
|
"use strict";
|
|
166299
|
-
var
|
|
166364
|
+
var zlib3 = __require("zlib");
|
|
166300
166365
|
var bufferUtil = require_buffer_util();
|
|
166301
166366
|
var Limiter = require_limiter();
|
|
166302
166367
|
var { kStatusCode } = require_constants();
|
|
@@ -166563,8 +166628,8 @@ var require_permessage_deflate = __commonJS({
|
|
|
166563
166628
|
const endpoint = this._isServer ? "client" : "server";
|
|
166564
166629
|
if (!this._inflate) {
|
|
166565
166630
|
const key2 = `${endpoint}_max_window_bits`;
|
|
166566
|
-
const windowBits = typeof this.params[key2] !== "number" ?
|
|
166567
|
-
this._inflate =
|
|
166631
|
+
const windowBits = typeof this.params[key2] !== "number" ? zlib3.Z_DEFAULT_WINDOWBITS : this.params[key2];
|
|
166632
|
+
this._inflate = zlib3.createInflateRaw({
|
|
166568
166633
|
...this._options.zlibInflateOptions,
|
|
166569
166634
|
windowBits
|
|
166570
166635
|
});
|
|
@@ -166614,8 +166679,8 @@ var require_permessage_deflate = __commonJS({
|
|
|
166614
166679
|
const endpoint = this._isServer ? "server" : "client";
|
|
166615
166680
|
if (!this._deflate) {
|
|
166616
166681
|
const key2 = `${endpoint}_max_window_bits`;
|
|
166617
|
-
const windowBits = typeof this.params[key2] !== "number" ?
|
|
166618
|
-
this._deflate =
|
|
166682
|
+
const windowBits = typeof this.params[key2] !== "number" ? zlib3.Z_DEFAULT_WINDOWBITS : this.params[key2];
|
|
166683
|
+
this._deflate = zlib3.createDeflateRaw({
|
|
166619
166684
|
...this._options.zlibDeflateOptions,
|
|
166620
166685
|
windowBits
|
|
166621
166686
|
});
|
|
@@ -166625,7 +166690,7 @@ var require_permessage_deflate = __commonJS({
|
|
|
166625
166690
|
}
|
|
166626
166691
|
this._deflate[kCallback] = callback;
|
|
166627
166692
|
this._deflate.write(data2);
|
|
166628
|
-
this._deflate.flush(
|
|
166693
|
+
this._deflate.flush(zlib3.Z_SYNC_FLUSH, () => {
|
|
166629
166694
|
if (!this._deflate) {
|
|
166630
166695
|
return;
|
|
166631
166696
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";var HyperframesPlayer=(()=>{var J=Object.defineProperty;var Ge=Object.getOwnPropertyDescriptor;var qe=Object.getOwnPropertyNames;var Ye=Object.prototype.hasOwnProperty;var Xe=(i,e)=>{for(var t in e)J(i,t,{get:e[t],enumerable:!0})},Ze=(i,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of qe(e))!Ye.call(i,n)&&n!==t&&J(i,n,{get:()=>e[n],enumerable:!(r=Ge(e,n))||r.enumerable});return i};var Qe=i=>Ze(J({},"__esModule",{value:!0}),i);var Lt={};Xe(Lt,{HyperframesPlayer:()=>Q,SPEED_PRESETS:()=>te,formatSpeed:()=>N,formatTime:()=>$});function ye(i){return i.hasRuntime||i.runtimeInjected?!1:!!(i.hasNestedCompositions||i.hasTimelines&&i.attempts>=5)}function I(i){return typeof i=="object"&&i!==null}function Ee(i){return I(i)&&typeof i.getDuration=="function"}function Se(i){return I(i)&&typeof i.duration=="function"&&typeof i.time=="function"&&typeof i.seek=="function"&&typeof i.play=="function"&&typeof i.pause=="function"}var Je="https://cdn.jsdelivr.net/npm/@hyperframes/core@0.7.
|
|
1
|
+
"use strict";var HyperframesPlayer=(()=>{var J=Object.defineProperty;var Ge=Object.getOwnPropertyDescriptor;var qe=Object.getOwnPropertyNames;var Ye=Object.prototype.hasOwnProperty;var Xe=(i,e)=>{for(var t in e)J(i,t,{get:e[t],enumerable:!0})},Ze=(i,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of qe(e))!Ye.call(i,n)&&n!==t&&J(i,n,{get:()=>e[n],enumerable:!(r=Ge(e,n))||r.enumerable});return i};var Qe=i=>Ze(J({},"__esModule",{value:!0}),i);var Lt={};Xe(Lt,{HyperframesPlayer:()=>Q,SPEED_PRESETS:()=>te,formatSpeed:()=>N,formatTime:()=>$});function ye(i){return i.hasRuntime||i.runtimeInjected?!1:!!(i.hasNestedCompositions||i.hasTimelines&&i.attempts>=5)}function I(i){return typeof i=="object"&&i!==null}function Ee(i){return I(i)&&typeof i.getDuration=="function"}function Se(i){return I(i)&&typeof i.duration=="function"&&typeof i.time=="function"&&typeof i.seek=="function"&&typeof i.play=="function"&&typeof i.pause=="function"}var Je="https://cdn.jsdelivr.net/npm/@hyperframes/core@0.7.89/dist/hyperframe.runtime.iife.js";function D(i){if(i===null)return null;let e=Number.parseInt(i,10);return Number.isFinite(e)&&e>0?e:null}function Ke(i){let e=i?.querySelector("[data-composition-id][data-width][data-height]")??i?.querySelector("[data-width][data-height]");if(!e)return null;let t=D(e.getAttribute("data-width")),r=D(e.getAttribute("data-height"));return t!==null&&r!==null?{width:t,height:r}:null}var j=class{constructor(e,t){this._iframe=e;this._callbacks=t}_iframe;_callbacks;_interval=null;_runtimeInjected=!1;get runtimeInjected(){return this._runtimeInjected}start(){this.stop(),this._runtimeInjected=!1;let e=0;this._interval=setInterval(()=>{e++;try{let t=this._iframe.contentWindow;if(!t)return;let r=!!(t.__hf||t.__player),n=!!(t.__timelines&&Object.keys(t.__timelines).length>0),o=!!this._iframe.contentDocument?.querySelector("[data-composition-src]");if(ye({hasRuntime:r,hasTimelines:n,hasNestedCompositions:o,runtimeInjected:this._runtimeInjected,attempts:e})){this._injectRuntime();return}if(this._runtimeInjected&&!r)return;let s=this._resolvePlaybackDurationAdapter(t);if(s&&s.getDuration()>0){this.stop();let l=Ke(this._iframe.contentDocument);this._callbacks.onReady({duration:s.getDuration(),adapter:s,compositionSize:l});return}}catch{}e>=40&&(this.stop(),this._callbacks.onError("Composition timeline not found after 8s"))},200)}stop(){this._interval!==null&&(clearInterval(this._interval),this._interval=null)}resolveDirectTimelineAdapter(){try{let e=this._iframe.contentWindow;return e?this._resolveDirectTimelineAdapterFromWindow(e):null}catch{return null}}resolveDirectTimelineAdapterFromWindow(e){return this._resolveDirectTimelineAdapterFromWindow(e)}hasRuntimeBridge(e){return Reflect.get(e,"__hf")!==void 0||I(Reflect.get(e,"__player"))}_injectRuntime(){this._runtimeInjected=!0;try{let e=this._iframe.contentDocument;if(!e)return;let t=e.createElement("script");t.src=Je,(e.head||e.documentElement).appendChild(t),this._callbacks.onRuntimeInjected?.()}catch{}}_resolveDirectTimelineAdapterFromWindow(e){if(this.hasRuntimeBridge(e))return null;let t=Reflect.get(e,"__timelines");if(!I(t))return null;let r=Object.keys(t);if(r.length===0)return null;let n=this._iframe.contentDocument?.querySelector("[data-composition-id]")?.getAttribute("data-composition-id"),o=n&&n in t?n:r[r.length-1],s=t[o];return Se(s)?s:null}_resolvePlaybackDurationAdapter(e){let t=Reflect.get(e,"__player");if(Ee(t))return{kind:"runtime",getDuration:()=>t.getDuration()};let r=this._resolveDirectTimelineAdapterFromWindow(e);return r?{kind:"direct-timeline",timeline:r,getDuration:()=>r.duration()}:null}};var Te=`
|
|
2
2
|
:host {
|
|
3
3
|
display: block;
|
|
4
4
|
position: relative;
|
package/dist/studio/assets/{hyperframes-player-BFqB5AWJ.js → hyperframes-player-DVTnBvSO.js}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var ce=Object.defineProperty;var pe=(r,t,e)=>t in r?ce(r,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):r[t]=e;var c=(r,t,e)=>pe(r,typeof t!="symbol"?t+"":t,e);import{r as ne,i as me,a as fe}from"./index-
|
|
1
|
+
var ce=Object.defineProperty;var pe=(r,t,e)=>t in r?ce(r,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):r[t]=e;var c=(r,t,e)=>pe(r,typeof t!="symbol"?t+"":t,e);import{r as ne,i as me,a as fe}from"./index-CddKwfQ1.js";function _e(r){return r.hasRuntime||r.runtimeInjected?!1:!!(r.hasNestedCompositions||r.hasTimelines&&r.attempts>=5)}function F(r){return typeof r=="object"&&r!==null}function ge(r){return F(r)&&typeof r.getDuration=="function"}function ye(r){return F(r)&&typeof r.duration=="function"&&typeof r.time=="function"&&typeof r.seek=="function"&&typeof r.play=="function"&&typeof r.pause=="function"}function ve(r){if(!/^\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?(?:\+[0-9A-Za-z.-]+)?$/.test(r))throw new Error(`Invalid HyperFrames runtime version: ${r}`);return`https://cdn.jsdelivr.net/npm/@hyperframes/core@${r}/dist/hyperframe.runtime.iife.js`}const be=typeof __HYPERFRAMES_RUNTIME_CDN_URL__=="string"?__HYPERFRAMES_RUNTIME_CDN_URL__:ve("0.0.0-dev");function H(r){if(r===null)return null;const t=Number.parseInt(r,10);return Number.isFinite(t)&&t>0?t:null}function we(r){const t=(r==null?void 0:r.querySelector("[data-composition-id][data-width][data-height]"))??(r==null?void 0:r.querySelector("[data-width][data-height]"));if(!t)return null;const e=H(t.getAttribute("data-width")),i=H(t.getAttribute("data-height"));return e!==null&&i!==null?{width:e,height:i}:null}class Ae{constructor(t,e){c(this,"_interval",null);c(this,"_runtimeInjected",!1);this._iframe=t,this._callbacks=e}get runtimeInjected(){return this._runtimeInjected}start(){this.stop(),this._runtimeInjected=!1;let t=0;this._interval=setInterval(()=>{var e;t++;try{const i=this._iframe.contentWindow;if(!i)return;const s=!!(i.__hf||i.__player),o=!!(i.__timelines&&Object.keys(i.__timelines).length>0),d=!!((e=this._iframe.contentDocument)!=null&&e.querySelector("[data-composition-src]"));if(_e({hasRuntime:s,hasTimelines:o,hasNestedCompositions:d,runtimeInjected:this._runtimeInjected,attempts:t})){this._injectRuntime();return}if(this._runtimeInjected&&!s)return;const a=this._resolvePlaybackDurationAdapter(i);if(a&&a.getDuration()>0){this.stop();const h=we(this._iframe.contentDocument);this._callbacks.onReady({duration:a.getDuration(),adapter:a,compositionSize:h});return}}catch{}t>=40&&(this.stop(),this._callbacks.onError("Composition timeline not found after 8s"))},200)}stop(){this._interval!==null&&(clearInterval(this._interval),this._interval=null)}resolveDirectTimelineAdapter(){try{const t=this._iframe.contentWindow;return t?this._resolveDirectTimelineAdapterFromWindow(t):null}catch{return null}}resolveDirectTimelineAdapterFromWindow(t){return this._resolveDirectTimelineAdapterFromWindow(t)}hasRuntimeBridge(t){return Reflect.get(t,"__hf")!==void 0||F(Reflect.get(t,"__player"))}_injectRuntime(){var t,e;this._runtimeInjected=!0;try{const i=this._iframe.contentDocument;if(!i)return;const s=i.createElement("script");s.src=be,(i.head||i.documentElement).appendChild(s),(e=(t=this._callbacks).onRuntimeInjected)==null||e.call(t)}catch{}}_resolveDirectTimelineAdapterFromWindow(t){var a,h;if(this.hasRuntimeBridge(t))return null;const e=Reflect.get(t,"__timelines");if(!F(e))return null;const i=Object.keys(e);if(i.length===0)return null;const s=(h=(a=this._iframe.contentDocument)==null?void 0:a.querySelector("[data-composition-id]"))==null?void 0:h.getAttribute("data-composition-id"),o=s&&s in e?s:i[i.length-1],d=e[o];return ye(d)?d:null}_resolvePlaybackDurationAdapter(t){const e=Reflect.get(t,"__player");if(ge(e))return{kind:"runtime",getDuration:()=>e.getDuration()};const i=this._resolveDirectTimelineAdapterFromWindow(t);return i?{kind:"direct-timeline",timeline:i,getDuration:()=>i.duration()}:null}}const Ee=`
|
|
2
2
|
:host {
|
|
3
3
|
display: block;
|
|
4
4
|
position: relative;
|