hyperframes 0.8.136 → 0.8.138
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/{add-MD4CNRQV.js → add-IZQPSHT5.js} +15 -15
- package/dist/{animatedGifPrep-3AKQSXPU.js → animatedGifPrep-MQF3GRFW.js} +6 -6
- package/dist/appHistory-TH3TL6N6.js +31 -0
- package/dist/{asset-UPNW7262.js → asset-RNZX4ISG.js} +2 -2
- package/dist/{assetCataloger-KBN5LNK4.js → assetCataloger-5YRUY3PJ.js} +2 -2
- package/dist/{auth-63PKUA76.js → auth-LUELYGJ4.js} +2 -2
- package/dist/{autoUpdate-CLB47L2W.js → autoUpdate-ECMQWUU5.js} +2 -2
- package/dist/{backgroundChecks-JW7XF7JA.js → backgroundChecks-PBEJMSA3.js} +3 -3
- package/dist/backgroundChecksWorker.js +3 -3
- package/dist/{batchRender-VFXGGGJG.js → batchRender-2GXKBPFQ.js} +3 -3
- package/dist/{beats-3CO6EGBG.js → beats-AAAZVDOY.js} +14 -14
- package/dist/{benchmark-CYTMATA7.js → benchmark-EI767IB4.js} +12 -12
- package/dist/{browser-QMLZJM2K.js → browser-KAA2VXYH.js} +9 -9
- package/dist/{bundleWithLocalizedFonts-5ATL25BF.js → bundleWithLocalizedFonts-MWDYAPGB.js} +2 -2
- package/dist/{capture-UEJG6BUX.js → capture-IRRHK6BT.js} +2 -2
- package/dist/{capture-DYBK5LGE.js → capture-VYT5NQQI.js} +13 -13
- package/dist/{catalog-G773J4K4.js → catalog-FYTZ2ET6.js} +22 -22
- package/dist/catch-up-XH3OAKQR.js +123 -0
- package/dist/{check-NCXITJWK.js → check-MUMIOK5K.js} +38 -38
- package/dist/{checkBrowser-IJQ2WCOB.js → checkBrowser-LKSZFOU6.js} +36 -36
- package/dist/{chunk-2EAXUCCE.js → chunk-2NCHQUPX.js} +1 -1
- package/dist/{chunk-XT5P4QMO.js → chunk-3DKN5WKL.js} +31 -11
- package/dist/{chunk-XLO327OK.js → chunk-3F6YLT72.js} +11 -11
- package/dist/{chunk-V2J2ZWPR.js → chunk-5K33TNUJ.js} +2 -2
- package/dist/{chunk-JBI43NRR.js → chunk-7OLMGFDN.js} +3 -3
- package/dist/{chunk-N3KRRPL7.js → chunk-7Y5SMPRV.js} +3 -3
- package/dist/{chunk-SXE656MT.js → chunk-APMG37MX.js} +1 -1
- package/dist/{chunk-37EDNWLQ.js → chunk-ASPTQ6DT.js} +1 -1
- package/dist/chunk-DCAI5DBR.js +218 -0
- package/dist/{chunk-KZJPREW7.js → chunk-DJMXTKKK.js} +1 -1
- package/dist/{chunk-YDBQRLRI.js → chunk-DXHYACUC.js} +3 -3
- package/dist/{chunk-GULOKZLI.js → chunk-EDUBJPGL.js} +14 -9
- package/dist/{chunk-527WRFUQ.js → chunk-FSSMOTMS.js} +1 -1
- package/dist/{chunk-FTR6KLIG.js → chunk-GJGVYREG.js} +59 -226
- package/dist/{chunk-V26IB6L2.js → chunk-GNHJ4ONK.js} +2 -2
- package/dist/{chunk-BQIFI4GV.js → chunk-HUZYBV2Z.js} +1 -1
- package/dist/{chunk-ECAXTQGU.js → chunk-HXXX6N2G.js} +2 -2
- package/dist/{chunk-2BJCQN7K.js → chunk-I3BRUEKD.js} +1 -1
- package/dist/{chunk-BSU7EOWJ.js → chunk-IC5L6L7K.js} +1 -1
- package/dist/{chunk-P3UNVJXX.js → chunk-IRYC5BRO.js} +4 -4
- package/dist/{chunk-V32SGDX7.js → chunk-JCRJBB4E.js} +10 -10
- package/dist/{chunk-H4UIYRZZ.js → chunk-JOUVZO7M.js} +1 -1
- package/dist/{chunk-XZABUQTX.js → chunk-JYYOAKHS.js} +1 -1
- package/dist/{chunk-Z3EFUXL5.js → chunk-KBUUCAIZ.js} +6 -6
- package/dist/{chunk-RTURM45Q.js → chunk-KRLYIT22.js} +1 -1
- package/dist/{chunk-5K573LFX.js → chunk-L5E5ZN6G.js} +1 -1
- package/dist/{chunk-4AXZWUQ6.js → chunk-MIOBYUXT.js} +1 -1
- package/dist/{chunk-ZBNFAZQB.js → chunk-MKVKVMUH.js} +7 -7
- package/dist/{chunk-XE6S5CE6.js → chunk-OBC75KXL.js} +1 -1
- package/dist/{chunk-PGFP4FLW.js → chunk-P5WDMFBB.js} +405 -205
- package/dist/{chunk-WFZEW4AC.js → chunk-P75OFLZN.js} +2 -2
- package/dist/{chunk-OSSVNAI5.js → chunk-PHRWQQOJ.js} +1 -1
- package/dist/{chunk-5ALWCRBU.js → chunk-PHXBLIKK.js} +10 -10
- package/dist/{chunk-OAF4XJOW.js → chunk-PXSM4HPB.js} +7 -2
- package/dist/{chunk-3E3WVNVP.js → chunk-QPOK6I32.js} +2 -2
- package/dist/{chunk-GK5W3SIJ.js → chunk-R6C6URKB.js} +3 -3
- package/dist/{chunk-EXNGSOQG.js → chunk-RH5VML6E.js} +12 -12
- package/dist/{chunk-BHOKLX4F.js → chunk-RLNB3JCY.js} +1 -1
- package/dist/{chunk-IQ3OUQ5Z.js → chunk-S3S2LSZX.js} +22 -2
- package/dist/{chunk-LO7L5PJ3.js → chunk-SDRKEYZV.js} +5 -5
- package/dist/{chunk-T5LPCY6I.js → chunk-SIMYRD5P.js} +27 -41
- package/dist/{chunk-VDQCNWQI.js → chunk-STA43FMY.js} +1 -1
- package/dist/{chunk-VNC6YQOC.js → chunk-SZITAGRK.js} +1 -1
- package/dist/chunk-UINDCCO7.js +3742 -0
- package/dist/{chunk-BWJ27MQP.js → chunk-UUMK6VME.js} +1 -1
- package/dist/{chunk-CG6OUDMX.js → chunk-VR5UQWGV.js} +3 -3
- package/dist/{chunk-RVG35AL2.js → chunk-W3KQCJVP.js} +217 -6
- package/dist/{chunk-X5HWXQPU.js → chunk-WCJGTLPF.js} +22 -10
- package/dist/{chunk-M5WGAAML.js → chunk-WH6PRFNX.js} +3 -3
- package/dist/{chunk-WTMA6JQD.js → chunk-XQODEVF3.js} +1 -1
- package/dist/{chunk-32QEFPDS.js → chunk-YGXLBX3N.js} +1 -1
- package/dist/{chunk-CYG3HXBE.js → chunk-YNBXJWSD.js} +1 -1
- package/dist/{clean-UCLCH4YA.js → clean-LZPDOAV4.js} +21 -21
- package/dist/cli.js +62 -52
- package/dist/{cloud-LVP33D4N.js → cloud-RVAH5NNL.js} +4 -4
- package/dist/{cloudrun-FA4XHPZS.js → cloudrun-NFGM6TRT.js} +3 -3
- package/dist/{compare-TOTN2CVX.js → compare-S3M5OAL2.js} +29 -29
- package/dist/{compiler-XZ654ZH2.js → compiler-SZ4GTYFB.js} +3 -3
- package/dist/{component-B5QZZJJA.js → component-PR2WZTQ4.js} +3 -3
- package/dist/{compositions-REMCVXXP.js → compositions-6RYXH2UA.js} +11 -11
- package/dist/{delete-H2P6PYT5.js → delete-EO7C3LQ6.js} +3 -3
- package/dist/{deterministicFonts-U2EXY2KQ.js → deterministicFonts-GTITFRSJ.js} +2 -2
- package/dist/{dist-QS5WEGBE.js → dist-OJTEVNJR.js} +1 -1
- package/dist/{dist-HVJAGLHF.js → dist-RVC3JTID.js} +2 -2
- package/dist/{doctor-HCGHEJDN.js → doctor-UTCCMN32.js} +12 -12
- package/dist/{events-2LS5WRYL.js → events-RCGWL4LI.js} +9 -9
- package/dist/{events-V5QLQAN4.js → events-RE3OR6KY.js} +8 -8
- package/dist/{feedback-WBOC7SAW.js → feedback-V7C64JIR.js} +12 -12
- package/dist/{figma-HRUWQ5FO.js → figma-26LOX5PV.js} +3 -3
- package/dist/fontLocalizeCli.js +10 -10
- package/dist/{get-FS5GMKBK.js → get-E2K2JRTV.js} +3 -3
- package/dist/{gpuPolicy-ON3RMSWD.js → gpuPolicy-Z3PQN6ZK.js} +6 -6
- package/dist/{grade-compare-G7Z5DWKW.js → grade-compare-OTZDU463.js} +26 -26
- package/dist/{help-27P7K7JZ.js → help-IRSQLNI5.js} +3 -2
- package/dist/{history-5E46VSDM.js → history-G44U6762.js} +18 -18
- package/dist/hyperframe-runtime.js +64 -182
- package/dist/hyperframe.manifest.json +1 -1
- package/dist/hyperframe.runtime.iife.js +64 -182
- package/dist/hyperframes-player.global.js +1 -1
- package/dist/{info-2ZYYJL3I.js → info-KXQ2TAHX.js} +11 -11
- package/dist/{init-ZI75FWLJ.js → init-7SXMLHJE.js} +27 -27
- package/dist/{inspect-YLQN7QL6.js → inspect-7JTINR25.js} +27 -27
- package/dist/{installer-DDJVY4TO.js → installer-RH4E6WXT.js} +4 -4
- package/dist/{keyframes-JONXVQWD.js → keyframes-PIV573S6.js} +12 -12
- package/dist/{lambda-LPLYOEYY.js → lambda-GO5HAA4S.js} +4 -4
- package/dist/{layout-ZP4WDRSA.js → layout-N2736OO3.js} +27 -27
- package/dist/{lint-XGMUBMLE.js → lint-WUXZ5WWZ.js} +14 -14
- package/dist/{lintProject-EPVG2EFE.js → lintProject-ANMPLBIT.js} +1 -1
- package/dist/{list-NBXJMDON.js → list-QF7AMX5F.js} +3 -3
- package/dist/{login-XIH4H4RH.js → login-6RGSXHQJ.js} +4 -4
- package/dist/{manager-GFN75DM4.js → manager-524RPYO7.js} +2 -2
- package/dist/{manager-67P2XFXQ.js → manager-DXB7JDHU.js} +2 -2
- package/dist/{media-treatment-QYKJDWHD.js → media-treatment-T4KDEDYW.js} +14 -14
- package/dist/{models-54NL5PRB.js → models-6JMNK3XI.js} +19 -12
- package/dist/{motionShot-Y4D7LHU4.js → motionShot-74WM7KF6.js} +12 -12
- package/dist/{normalize-audio-6RR6UGAJ.js → normalize-audio-ZZU36ZMD.js} +14 -14
- package/dist/{open-TYFT2DQC.js → open-G523K45B.js} +20 -13
- package/dist/{pipeline-P7QRGI5H.js → pipeline-AKDGCWRE.js} +10 -10
- package/dist/{play-IZXA4GO3.js → play-SHIGXVON.js} +30 -30
- package/dist/{preflight-X3XFRJPQ.js → preflight-6ERLORWK.js} +7 -7
- package/dist/{present-JS2KNZLT.js → present-QOYYNZCE.js} +19 -19
- package/dist/{preview-M6PED6DU.js → preview-KUXTDJL3.js} +26 -24
- package/dist/{producer-KQNJKM7F.js → producer-CH33JXHK.js} +1 -1
- package/dist/{projectConfig-EAAQYRMP.js → projectConfig-NKIPRWAE.js} +6 -6
- package/dist/{publication-H3G346EX.js → publication-4RBVVR5Z.js} +2 -2
- package/dist/{publish-NEGKIS35.js → publish-OLHR4Z4U.js} +12 -11
- package/dist/{remove-background-HU4S4HH5.js → remove-background-NPKZSIPY.js} +12 -12
- package/dist/{render-24OQFSYB.js → render-GYYGWYQC.js} +17 -17
- package/dist/{render-IZHBGVPP.js → render-P4NWFUS7.js} +29 -27
- package/dist/{render-F3CNO2IE.js → render-UOKPAJNH.js} +3 -3
- package/dist/{render-batch-63CBIJYR.js → render-batch-ZDG3EXSD.js} +3 -3
- package/dist/{renderCancellation-FT3JJ7GB.js → renderCancellation-QYQLWHZY.js} +6 -6
- package/dist/renderSetupWorker.js +1 -1
- package/dist/{resolver-YJJKOGQF.js → resolver-CWH3VVB7.js} +4 -4
- package/dist/{sherpa-3BQDMJPJ.js → sherpa-WEQE23S5.js} +130 -47
- package/dist/sherpaWorker.js +4 -8
- package/dist/skills/hyperframes/SKILL.md +2 -0
- package/dist/skills/hyperframes-cli/SKILL.md +1 -1
- package/dist/{skills-T2O7PD6Q.js → skills-BVONI6TC.js} +14 -14
- package/dist/{skillsUpdateCheck-VYEGOAEI.js → skillsUpdateCheck-KKDPTFM7.js} +3 -3
- package/dist/{snapshot-NLTL7ZOM.js → snapshot-PWZFJEDR.js} +36 -36
- package/dist/{src-ZPAJ44CP.js → src-HH4C5GZV.js} +9 -9
- package/dist/{src-CUR36DBE.js → src-YO7MAWGD.js} +5 -5
- package/dist/{staticProjectServer-WN4BSLI3.js → staticProjectServer-PR5INXSA.js} +14 -14
- package/dist/{status-6CGT2PJT.js → status-AK67DTED.js} +6 -6
- package/dist/studio/assets/{hyperframes-player-ukvUFqdg.js → hyperframes-player-B30apksz.js} +1 -1
- package/dist/studio/assets/{index-C-pD9_xY.js → index-BdjA0CLD.js} +147 -147
- package/dist/studio/assets/{index-syMK0_9C.css → index-CVd4O6eH.css} +1 -1
- package/dist/studio/assets/{index-CRRgIxsS.js → index-DIJuIBwI.js} +1 -1
- package/dist/studio/assets/{index-BY_myArg.js → index-DXVvWfQG.js} +1 -1
- package/dist/studio/{chunk-QRLKWENQ.js → chunk-4S3AYCOG.js} +2 -2
- package/dist/studio/{chunk-NM7BXNZ7.js → chunk-LOVBLSMR.js} +10 -4
- package/dist/studio/chunk-LOVBLSMR.js.map +1 -0
- package/dist/studio/index.html +2 -2
- package/dist/studio/index.js +2852 -2852
- package/dist/studio/index.js.map +1 -1
- package/dist/studio/player.js +2 -2
- package/dist/studio/styles.css +1 -1
- package/dist/studio/ui.d.ts +2 -1
- package/dist/studio/ui.js +1 -1
- package/dist/{studio-api-KTRRONOC.js → studio-api-NFJMFAB7.js} +13 -11
- package/dist/{studioServer-O6P3TBDJ.js → studioServer-TQZVCIEL.js} +51 -50
- package/dist/{synthesize-K62TIZWI.js → synthesize-77PTU6C5.js} +6 -6
- package/dist/{system-3BTZGJNK.js → system-ZWIBWWE6.js} +6 -6
- package/dist/{telemetry-G4QOG4OF.js → telemetry-63L2ORO3.js} +9 -9
- package/dist/templates/_shared/AGENTS.md +2 -0
- package/dist/templates/_shared/CLAUDE.md +2 -0
- package/dist/{timeline-JS5QNPLA.js → timeline-QKZQL5DJ.js} +18 -18
- package/dist/{tokens-JKLDRW7A.js → tokens-ELK62U4A.js} +2 -2
- package/dist/{transcribe-HC35FL6W.js → transcribe-OSK7HEOJ.js} +9 -9
- package/dist/{transcribe-CP6ZCDVR.js → transcribe-VKSXTM7K.js} +80 -24
- package/dist/{tts-P3LIPIL5.js → tts-FU35O6YB.js} +3 -3
- package/dist/{updateCheck-L2UJCCL4.js → updateCheck-PM4FEI7P.js} +2 -2
- package/dist/{upgrade-NW7YFVUM.js → upgrade-G635QCNO.js} +2 -2
- package/dist/{urlDownloader-A5TT3AFE.js → urlDownloader-MVYQTP73.js} +5 -5
- package/dist/{validate-D3ZH3JQ7.js → validate-AZTMI3HR.js} +16 -16
- package/dist/{video-USXMJDEZ.js → video-H56FK33V.js} +6 -6
- package/package.json +1 -1
- package/dist/chunk-SRXQEQWZ.js +0 -3742
- package/dist/studio/chunk-NM7BXNZ7.js.map +0 -1
- package/dist/{chunk-WJFCDDP7.js → chunk-R4QIE6UY.js} +3 -3
- /package/dist/studio/{chunk-QRLKWENQ.js.map → chunk-4S3AYCOG.js.map} +0 -0
|
@@ -12,7 +12,7 @@ import {
|
|
|
12
12
|
} from "./chunk-ZTZA4UWZ.js";
|
|
13
13
|
import {
|
|
14
14
|
getSystemMeta
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-MIOBYUXT.js";
|
|
16
16
|
import {
|
|
17
17
|
getInvocationId
|
|
18
18
|
} from "./chunk-54HJ63Q2.js";
|
|
@@ -23,7 +23,7 @@ import {
|
|
|
23
23
|
evaluateCanary,
|
|
24
24
|
findCanary,
|
|
25
25
|
parseCanaryOverride
|
|
26
|
-
} from "./chunk-
|
|
26
|
+
} from "./chunk-RLNB3JCY.js";
|
|
27
27
|
import {
|
|
28
28
|
hostAnswers
|
|
29
29
|
} from "./chunk-K4WIOZFP.js";
|
|
@@ -37,7 +37,7 @@ import {
|
|
|
37
37
|
} from "./chunk-XUXGIA7H.js";
|
|
38
38
|
import {
|
|
39
39
|
VERSION
|
|
40
|
-
} from "./chunk-
|
|
40
|
+
} from "./chunk-P75OFLZN.js";
|
|
41
41
|
|
|
42
42
|
// src/telemetry/transport.ts
|
|
43
43
|
import { spawn } from "child_process";
|
|
@@ -4,11 +4,14 @@ import { dirname as __hf_dirname } from "node:path";
|
|
|
4
4
|
var require = __hf_createRequire(import.meta.url);
|
|
5
5
|
var __filename = __hf_fileURLToPath(import.meta.url);
|
|
6
6
|
var __dirname = __hf_dirname(__filename);
|
|
7
|
+
import {
|
|
8
|
+
STUDIO_MANUAL_EDITS_PATH
|
|
9
|
+
} from "./chunk-KC5XXX3X.js";
|
|
7
10
|
import {
|
|
8
11
|
firstFrameColourArgs,
|
|
9
12
|
hdrToSdrToneMapFilter,
|
|
10
13
|
parseFirstFrameColour
|
|
11
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-RLNB3JCY.js";
|
|
12
15
|
import {
|
|
13
16
|
mkdirWithinProject,
|
|
14
17
|
realProjectRoot,
|
|
@@ -21,7 +24,7 @@ import {
|
|
|
21
24
|
isUnresolvedAssetPlaceholder,
|
|
22
25
|
maskNonScannableRanges,
|
|
23
26
|
resolveLocalAssetCandidates
|
|
24
|
-
} from "./chunk-
|
|
27
|
+
} from "./chunk-STA43FMY.js";
|
|
25
28
|
import {
|
|
26
29
|
findFfBinary
|
|
27
30
|
} from "./chunk-PJ3HDUCY.js";
|
|
@@ -29,9 +32,200 @@ import {
|
|
|
29
32
|
rewriteAssetPath
|
|
30
33
|
} from "./chunk-TQFG7HTI.js";
|
|
31
34
|
|
|
32
|
-
// ../studio-server/dist/chunk-
|
|
35
|
+
// ../studio-server/dist/chunk-4ETS2LXI.js
|
|
36
|
+
var STUDIO_MOTION_PATH = ".hyperframes/studio-motion.json";
|
|
37
|
+
function hasStudioMotionEntries(manifestContent) {
|
|
38
|
+
try {
|
|
39
|
+
const parsed = JSON.parse(manifestContent);
|
|
40
|
+
return Array.isArray(parsed.motions) && parsed.motions.length > 0;
|
|
41
|
+
} catch {
|
|
42
|
+
return false;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
function createStudioMotionRenderBodyScript(manifestContent, options = {}) {
|
|
46
|
+
if (!manifestContent.trim() || !hasStudioMotionEntries(manifestContent)) return null;
|
|
47
|
+
return `(${studioMotionRenderRuntime.toString()})(${JSON.stringify(manifestContent)}, ${JSON.stringify(options.activeCompositionPath ?? null)});`;
|
|
48
|
+
}
|
|
49
|
+
function studioMotionRenderRuntime(manifestContent, activeCompositionPath) {
|
|
50
|
+
const STUDIO_MOTION_TIMELINE_ID = "studio-motion";
|
|
51
|
+
const STUDIO_MOTION_ATTR = "data-hf-studio-motion";
|
|
52
|
+
const ORIGINAL_TRANSFORM_ATTR = "data-hf-studio-motion-original-transform";
|
|
53
|
+
const ORIGINAL_OPACITY_ATTR = "data-hf-studio-motion-original-opacity";
|
|
54
|
+
const ORIGINAL_VISIBILITY_ATTR = "data-hf-studio-motion-original-visibility";
|
|
55
|
+
const objectRecord = (value) => value && typeof value === "object" ? value : null;
|
|
56
|
+
const finiteNumber = (value) => typeof value === "number" && Number.isFinite(value) ? value : null;
|
|
57
|
+
const runtimeWindow = window;
|
|
58
|
+
const parseMotionValues = (value) => {
|
|
59
|
+
const record = objectRecord(value);
|
|
60
|
+
if (!record) return null;
|
|
61
|
+
const parsed = {};
|
|
62
|
+
for (const key of ["x", "y", "scale", "rotation", "opacity", "autoAlpha"]) {
|
|
63
|
+
const next = finiteNumber(record[key]);
|
|
64
|
+
if (next != null) parsed[key] = next;
|
|
65
|
+
}
|
|
66
|
+
return Object.keys(parsed).length > 0 ? parsed : null;
|
|
67
|
+
};
|
|
68
|
+
const parseCustomEase = (value) => {
|
|
69
|
+
const record = objectRecord(value);
|
|
70
|
+
if (!record) return null;
|
|
71
|
+
const id = typeof record.id === "string" ? record.id.trim() : "";
|
|
72
|
+
const data = typeof record.data === "string" ? record.data.trim() : "";
|
|
73
|
+
if (!id || !data) return null;
|
|
74
|
+
return { id, data };
|
|
75
|
+
};
|
|
76
|
+
const parsedManifest = (() => {
|
|
77
|
+
try {
|
|
78
|
+
return objectRecord(JSON.parse(manifestContent));
|
|
79
|
+
} catch {
|
|
80
|
+
return null;
|
|
81
|
+
}
|
|
82
|
+
})();
|
|
83
|
+
const manifestMotions = Array.isArray(parsedManifest?.motions) ? parsedManifest.motions : [];
|
|
84
|
+
const sourceFileForElement = (element) => {
|
|
85
|
+
let current = element;
|
|
86
|
+
while (current) {
|
|
87
|
+
const sourceFile = current.getAttribute("data-composition-file") ?? current.getAttribute("data-composition-src");
|
|
88
|
+
if (sourceFile) return sourceFile;
|
|
89
|
+
current = current.parentElement;
|
|
90
|
+
}
|
|
91
|
+
return activeCompositionPath ?? "index.html";
|
|
92
|
+
};
|
|
93
|
+
const elementMatchesSourceFile = (element, sourceFile) => sourceFileForElement(element) === sourceFile;
|
|
94
|
+
const isHTMLElement = (element) => element instanceof HTMLElement;
|
|
95
|
+
const querySelectorCandidates = (selector) => {
|
|
96
|
+
const className = selector.match(/^\.([A-Za-z0-9_-]+)$/)?.[1];
|
|
97
|
+
if (className) {
|
|
98
|
+
return Array.from(document.getElementsByTagName("*")).filter(
|
|
99
|
+
(element) => isHTMLElement(element) && element.classList.contains(className)
|
|
100
|
+
);
|
|
101
|
+
}
|
|
102
|
+
if (/^[A-Za-z][A-Za-z0-9-]*$/.test(selector)) {
|
|
103
|
+
return Array.from(document.getElementsByTagName(selector)).filter(isHTMLElement);
|
|
104
|
+
}
|
|
105
|
+
return Array.from(document.querySelectorAll(selector)).filter(isHTMLElement);
|
|
106
|
+
};
|
|
107
|
+
const resolveTarget = (targetRecord) => {
|
|
108
|
+
const sourceFile = typeof targetRecord.sourceFile === "string" ? targetRecord.sourceFile : "";
|
|
109
|
+
if (!sourceFile) return null;
|
|
110
|
+
const id = typeof targetRecord.id === "string" ? targetRecord.id : "";
|
|
111
|
+
if (id) {
|
|
112
|
+
const byId = document.getElementById(id);
|
|
113
|
+
if (isHTMLElement(byId) && elementMatchesSourceFile(byId, sourceFile)) return byId;
|
|
114
|
+
}
|
|
115
|
+
const selector = typeof targetRecord.selector === "string" ? targetRecord.selector : "";
|
|
116
|
+
if (!selector) return null;
|
|
117
|
+
try {
|
|
118
|
+
const selectorIndex = Math.max(0, Math.floor(finiteNumber(targetRecord.selectorIndex) ?? 0));
|
|
119
|
+
return querySelectorCandidates(selector).filter(
|
|
120
|
+
(element) => elementMatchesSourceFile(element, sourceFile)
|
|
121
|
+
)[selectorIndex] ?? null;
|
|
122
|
+
} catch {
|
|
123
|
+
return null;
|
|
124
|
+
}
|
|
125
|
+
};
|
|
126
|
+
const restoreElement = (element) => {
|
|
127
|
+
runtimeWindow.gsap?.set?.(element, { clearProps: "transform,opacity,visibility" });
|
|
128
|
+
element.style.transform = element.getAttribute(ORIGINAL_TRANSFORM_ATTR) ?? "";
|
|
129
|
+
element.style.opacity = element.getAttribute(ORIGINAL_OPACITY_ATTR) ?? "";
|
|
130
|
+
element.style.visibility = element.getAttribute(ORIGINAL_VISIBILITY_ATTR) ?? "";
|
|
131
|
+
element.removeAttribute(STUDIO_MOTION_ATTR);
|
|
132
|
+
element.removeAttribute(ORIGINAL_TRANSFORM_ATTR);
|
|
133
|
+
element.removeAttribute(ORIGINAL_OPACITY_ATTR);
|
|
134
|
+
element.removeAttribute(ORIGINAL_VISIBILITY_ATTR);
|
|
135
|
+
};
|
|
136
|
+
const restoreStudioMotionElements = () => {
|
|
137
|
+
for (const element of Array.from(document.querySelectorAll(`[${STUDIO_MOTION_ATTR}]`))) {
|
|
138
|
+
if (isHTMLElement(element)) restoreElement(element);
|
|
139
|
+
}
|
|
140
|
+
};
|
|
141
|
+
const readCurrentTime = () => {
|
|
142
|
+
try {
|
|
143
|
+
const playerTime = runtimeWindow.__player?.getTime?.();
|
|
144
|
+
if (typeof playerTime === "number" && Number.isFinite(playerTime)) {
|
|
145
|
+
return Math.max(0, playerTime);
|
|
146
|
+
}
|
|
147
|
+
} catch {
|
|
148
|
+
}
|
|
149
|
+
try {
|
|
150
|
+
const timelineTime = runtimeWindow.__timeline?.time?.();
|
|
151
|
+
if (typeof timelineTime === "number" && Number.isFinite(timelineTime)) {
|
|
152
|
+
return Math.max(0, timelineTime);
|
|
153
|
+
}
|
|
154
|
+
} catch {
|
|
155
|
+
}
|
|
156
|
+
return 0;
|
|
157
|
+
};
|
|
158
|
+
const resolveEase = (motion) => {
|
|
159
|
+
const fallback = typeof motion.ease === "string" && motion.ease.trim() ? motion.ease.trim() : "none";
|
|
160
|
+
const customEase = parseCustomEase(motion.customEase);
|
|
161
|
+
const customEasePlugin = runtimeWindow.CustomEase;
|
|
162
|
+
if (!customEase || typeof customEasePlugin?.create !== "function") return fallback;
|
|
163
|
+
try {
|
|
164
|
+
runtimeWindow.gsap?.registerPlugin?.(customEasePlugin);
|
|
165
|
+
customEasePlugin.create(customEase.id, customEase.data);
|
|
166
|
+
return customEase.id;
|
|
167
|
+
} catch {
|
|
168
|
+
return fallback;
|
|
169
|
+
}
|
|
170
|
+
};
|
|
171
|
+
const applyManifest = () => {
|
|
172
|
+
runtimeWindow.__timelines = runtimeWindow.__timelines ?? {};
|
|
173
|
+
runtimeWindow.__timelines[STUDIO_MOTION_TIMELINE_ID]?.kill?.();
|
|
174
|
+
delete runtimeWindow.__timelines[STUDIO_MOTION_TIMELINE_ID];
|
|
175
|
+
restoreStudioMotionElements();
|
|
176
|
+
const gsap = runtimeWindow.gsap;
|
|
177
|
+
if (!gsap?.timeline || manifestMotions.length === 0) return 0;
|
|
178
|
+
const timeline = gsap.timeline({ paused: true, defaults: { overwrite: "auto" } });
|
|
179
|
+
let applied = 0;
|
|
180
|
+
for (const motionValue of manifestMotions) {
|
|
181
|
+
const motion = objectRecord(motionValue);
|
|
182
|
+
if (!motion || motion.kind !== "gsap-motion") continue;
|
|
183
|
+
const targetRecord = objectRecord(motion.target);
|
|
184
|
+
if (!targetRecord) continue;
|
|
185
|
+
const target = resolveTarget(targetRecord);
|
|
186
|
+
if (!target || typeof timeline.fromTo !== "function") continue;
|
|
187
|
+
const start = finiteNumber(motion.start);
|
|
188
|
+
const duration = finiteNumber(motion.duration);
|
|
189
|
+
if (start == null || duration == null || start < 0 || duration <= 0) continue;
|
|
190
|
+
const from = parseMotionValues(motion.from);
|
|
191
|
+
const to = parseMotionValues(motion.to);
|
|
192
|
+
if (!from || !to) continue;
|
|
193
|
+
if (!target.hasAttribute(STUDIO_MOTION_ATTR)) {
|
|
194
|
+
target.setAttribute(ORIGINAL_TRANSFORM_ATTR, target.style.transform);
|
|
195
|
+
target.setAttribute(ORIGINAL_OPACITY_ATTR, target.style.opacity);
|
|
196
|
+
target.setAttribute(ORIGINAL_VISIBILITY_ATTR, target.style.visibility);
|
|
197
|
+
}
|
|
198
|
+
target.setAttribute(STUDIO_MOTION_ATTR, "true");
|
|
199
|
+
timeline.fromTo(
|
|
200
|
+
target,
|
|
201
|
+
from,
|
|
202
|
+
{ ...to, duration, ease: resolveEase(motion), overwrite: "auto", immediateRender: false },
|
|
203
|
+
start
|
|
204
|
+
);
|
|
205
|
+
applied += 1;
|
|
206
|
+
}
|
|
207
|
+
if (applied === 0) {
|
|
208
|
+
timeline.kill?.();
|
|
209
|
+
return 0;
|
|
210
|
+
}
|
|
211
|
+
runtimeWindow.__timelines[STUDIO_MOTION_TIMELINE_ID] = timeline;
|
|
212
|
+
timeline.pause?.();
|
|
213
|
+
const currentTime = readCurrentTime();
|
|
214
|
+
if (typeof timeline.totalTime === "function") timeline.totalTime(currentTime, false);
|
|
215
|
+
else timeline.time?.(currentTime);
|
|
216
|
+
return applied;
|
|
217
|
+
};
|
|
218
|
+
runtimeWindow.__hfStudioMotionApply = applyManifest;
|
|
219
|
+
applyManifest();
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
// ../studio-server/dist/chunk-DTKK7TKL.js
|
|
33
223
|
import { basename, dirname, isAbsolute, join, relative, sep } from "path";
|
|
34
224
|
import { readdirSync } from "fs";
|
|
225
|
+
function resolveWithinProject2(base, relativePath) {
|
|
226
|
+
const resolved = resolveWithinProject(base, relativePath);
|
|
227
|
+
return resolved && !isPrivateProjectFile(base, resolved) ? resolved : null;
|
|
228
|
+
}
|
|
35
229
|
function realFilePath(filePath) {
|
|
36
230
|
try {
|
|
37
231
|
return realpath(filePath);
|
|
@@ -40,8 +234,20 @@ function realFilePath(filePath) {
|
|
|
40
234
|
return dir === filePath ? filePath : join(realFilePath(dir), basename(filePath));
|
|
41
235
|
}
|
|
42
236
|
}
|
|
237
|
+
var STUDIO_FILES = /* @__PURE__ */ new Set([STUDIO_MOTION_PATH, STUDIO_MANUAL_EDITS_PATH]);
|
|
238
|
+
var STUDIO_FOLDERS = [".hyperframes/prepared-assets", ".hyperframes/requests"];
|
|
239
|
+
function isPrivateProjectPath(relPath) {
|
|
240
|
+
const path = relPath.toLowerCase();
|
|
241
|
+
return (path === ".hyperframes" || path.startsWith(".hyperframes/")) && !STUDIO_FILES.has(path) && !STUDIO_FOLDERS.some((folder) => path === folder || path.startsWith(`${folder}/`));
|
|
242
|
+
}
|
|
243
|
+
function isPrivateProjectFile(projectDir, filePath) {
|
|
244
|
+
const rel = (from, to) => relative(from, to).split(sep).join("/");
|
|
245
|
+
return [rel(projectDir, filePath), rel(realFilePath(projectDir), realFilePath(filePath))].some(
|
|
246
|
+
isPrivateProjectPath
|
|
247
|
+
);
|
|
248
|
+
}
|
|
43
249
|
function pinWithinProject(base, relativePath) {
|
|
44
|
-
const checked =
|
|
250
|
+
const checked = resolveWithinProject2(base, relativePath);
|
|
45
251
|
if (!checked) return null;
|
|
46
252
|
const inside = relative(realFilePath(base), realFilePath(checked));
|
|
47
253
|
const escapes = inside === ".." || inside.startsWith(`..${sep}`) || isAbsolute(inside);
|
|
@@ -84,7 +290,7 @@ function walkDir(dir, prefix = "") {
|
|
|
84
290
|
return files;
|
|
85
291
|
}
|
|
86
292
|
|
|
87
|
-
// ../studio-server/dist/chunk-
|
|
293
|
+
// ../studio-server/dist/chunk-74JVVCWL.js
|
|
88
294
|
import { existsSync, statSync } from "fs";
|
|
89
295
|
import { relative as relative2, resolve, sep as sep2 } from "path";
|
|
90
296
|
import { execFile } from "child_process";
|
|
@@ -390,7 +596,7 @@ async function scanProjectMediaCodecMap(projectDir, htmlSources, options = {}) {
|
|
|
390
596
|
return map;
|
|
391
597
|
}
|
|
392
598
|
|
|
393
|
-
// ../studio-server/dist/chunk-
|
|
599
|
+
// ../studio-server/dist/chunk-6RFZWPPN.js
|
|
394
600
|
import { spawn } from "child_process";
|
|
395
601
|
import { createHash, randomUUID } from "crypto";
|
|
396
602
|
import { existsSync as existsSync2, renameSync, statSync as statSync2, unlinkSync as unlinkSync2, utimesSync } from "fs";
|
|
@@ -830,7 +1036,12 @@ async function resolveProxy(projectDir, absoluteSourcePath, variant = "h264") {
|
|
|
830
1036
|
}
|
|
831
1037
|
|
|
832
1038
|
export {
|
|
1039
|
+
STUDIO_MOTION_PATH,
|
|
1040
|
+
createStudioMotionRenderBodyScript,
|
|
1041
|
+
resolveWithinProject2 as resolveWithinProject,
|
|
833
1042
|
realFilePath,
|
|
1043
|
+
isPrivateProjectPath,
|
|
1044
|
+
isPrivateProjectFile,
|
|
834
1045
|
pinWithinProject,
|
|
835
1046
|
isInHiddenOrVendorDir,
|
|
836
1047
|
walkDir,
|
|
@@ -23,22 +23,32 @@ function removePartialFile(path) {
|
|
|
23
23
|
} catch {
|
|
24
24
|
}
|
|
25
25
|
}
|
|
26
|
-
function
|
|
27
|
-
|
|
28
|
-
|
|
26
|
+
function measureDownload(options, contentLength) {
|
|
27
|
+
const length = Number(contentLength);
|
|
28
|
+
const totalBytes = Number.isSafeInteger(length) && length >= 0 ? length : null;
|
|
29
|
+
let receivedBytes = 0;
|
|
30
|
+
let reportedAt = Date.now();
|
|
31
|
+
options.onProgress?.(0, totalBytes);
|
|
32
|
+
const stream = new Transform({
|
|
29
33
|
transform(chunk, _encoding, callback) {
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
34
|
+
receivedBytes += chunk.byteLength;
|
|
35
|
+
if (options.maxBytes !== void 0 && receivedBytes > options.maxBytes) {
|
|
36
|
+
callback(new Error(`Download exceeded ${options.maxBytes} bytes`));
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
const now = Date.now();
|
|
40
|
+
if (now - reportedAt >= 100) {
|
|
41
|
+
options.onProgress?.(receivedBytes, totalBytes);
|
|
42
|
+
reportedAt = now;
|
|
43
|
+
}
|
|
44
|
+
callback(null, chunk);
|
|
35
45
|
}
|
|
36
46
|
});
|
|
47
|
+
return { stream, complete: () => options.onProgress?.(receivedBytes, totalBytes) };
|
|
37
48
|
}
|
|
38
49
|
function downloadFile(url, dest, options = {}) {
|
|
39
50
|
const tmp = `${dest}.${process.pid}.${randomUUID()}.tmp`;
|
|
40
51
|
const timeoutMs = options.timeoutMs ?? DEFAULT_DOWNLOAD_TIMEOUT_MS;
|
|
41
|
-
const maxBytes = options.maxBytes;
|
|
42
52
|
return new Promise((resolve, reject) => {
|
|
43
53
|
const follow = (u, hops = 0) => {
|
|
44
54
|
let activeResponse;
|
|
@@ -75,11 +85,13 @@ function downloadFile(url, dest, options = {}) {
|
|
|
75
85
|
reject(new Error(`Download failed: HTTP ${res.statusCode}`));
|
|
76
86
|
return;
|
|
77
87
|
}
|
|
88
|
+
const meter = measureDownload(options, res.headers["content-length"]);
|
|
78
89
|
const file = createWriteStream(tmp);
|
|
79
90
|
responsePipelineStarted = true;
|
|
80
|
-
const transfer =
|
|
91
|
+
const transfer = pipeline(res, meter.stream, file);
|
|
81
92
|
transfer.then(() => {
|
|
82
93
|
renameSync(tmp, dest);
|
|
94
|
+
meter.complete();
|
|
83
95
|
resolve();
|
|
84
96
|
}).catch((err) => {
|
|
85
97
|
removePartialFile(tmp);
|
|
@@ -8,16 +8,16 @@ import {
|
|
|
8
8
|
flush,
|
|
9
9
|
shouldTrack,
|
|
10
10
|
trackEvent
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-VR5UQWGV.js";
|
|
12
12
|
import {
|
|
13
13
|
getPowerState
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-MIOBYUXT.js";
|
|
15
15
|
import {
|
|
16
16
|
CliRuntimeError
|
|
17
17
|
} from "./chunk-PBN6GBJE.js";
|
|
18
18
|
import {
|
|
19
19
|
redactTelemetryString
|
|
20
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-RLNB3JCY.js";
|
|
21
21
|
import {
|
|
22
22
|
readConfig
|
|
23
23
|
} from "./chunk-XUXGIA7H.js";
|
|
@@ -1278,7 +1278,7 @@ async function withFigmaErrors(command, fn) {
|
|
|
1278
1278
|
} catch (err) {
|
|
1279
1279
|
if (err instanceof Error) {
|
|
1280
1280
|
try {
|
|
1281
|
-
const { trackCommandFailure } = await import("./events-
|
|
1281
|
+
const { trackCommandFailure } = await import("./events-RCGWL4LI.js");
|
|
1282
1282
|
trackCommandFailure(
|
|
1283
1283
|
command,
|
|
1284
1284
|
err,
|
|
@@ -6,34 +6,36 @@ var __filename = __hf_fileURLToPath(import.meta.url);
|
|
|
6
6
|
var __dirname = __hf_dirname(__filename);
|
|
7
7
|
import {
|
|
8
8
|
redactHome
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-JCRJBB4E.js";
|
|
10
10
|
import "./chunk-Z27A7NUB.js";
|
|
11
11
|
import "./chunk-5ETJX6WM.js";
|
|
12
12
|
import {
|
|
13
13
|
loadProducer
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-FSSMOTMS.js";
|
|
15
|
+
import "./chunk-3DKN5WKL.js";
|
|
16
|
+
import {
|
|
17
|
+
formatBytes
|
|
18
|
+
} from "./chunk-IHFUKJOR.js";
|
|
15
19
|
import {
|
|
16
20
|
DEFAULT_HISTORY_ROOT,
|
|
17
21
|
listProjectHistories,
|
|
18
22
|
pruneGoneProjectHistories
|
|
19
|
-
} from "./chunk-
|
|
20
|
-
import "./chunk-
|
|
21
|
-
import "./chunk-
|
|
22
|
-
import "./chunk-37EDNWLQ.js";
|
|
23
|
+
} from "./chunk-GJGVYREG.js";
|
|
24
|
+
import "./chunk-R6C6URKB.js";
|
|
25
|
+
import "./chunk-ASPTQ6DT.js";
|
|
23
26
|
import {
|
|
24
27
|
CACHE_DIR_NAME,
|
|
25
28
|
cleanupProxyCache
|
|
26
|
-
} from "./chunk-
|
|
27
|
-
import
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
import "./chunk-BWJ27MQP.js";
|
|
29
|
+
} from "./chunk-W3KQCJVP.js";
|
|
30
|
+
import "./chunk-EOVYQ3IG.js";
|
|
31
|
+
import "./chunk-UUMK6VME.js";
|
|
32
|
+
import "./chunk-6BEFEWFB.js";
|
|
31
33
|
import "./chunk-TVCRUG2S.js";
|
|
32
34
|
import "./chunk-374QQGBQ.js";
|
|
33
35
|
import {
|
|
34
36
|
c
|
|
35
37
|
} from "./chunk-ZTZA4UWZ.js";
|
|
36
|
-
import "./chunk-
|
|
38
|
+
import "./chunk-MIOBYUXT.js";
|
|
37
39
|
import "./chunk-AMKC3AXA.js";
|
|
38
40
|
import {
|
|
39
41
|
defineCommand
|
|
@@ -48,18 +50,18 @@ import {
|
|
|
48
50
|
directorySizeBytes,
|
|
49
51
|
gcExtractionCache,
|
|
50
52
|
resolveExtractCacheDir
|
|
51
|
-
} from "./chunk-
|
|
52
|
-
import "./chunk-
|
|
53
|
+
} from "./chunk-7Y5SMPRV.js";
|
|
54
|
+
import "./chunk-RLNB3JCY.js";
|
|
53
55
|
import "./chunk-OZUQF4NB.js";
|
|
54
56
|
import "./chunk-DPVXBVLL.js";
|
|
55
|
-
import "./chunk-
|
|
56
|
-
import "./chunk-
|
|
57
|
+
import "./chunk-P5WDMFBB.js";
|
|
58
|
+
import "./chunk-UINDCCO7.js";
|
|
57
59
|
import "./chunk-VC76R6W2.js";
|
|
58
60
|
import "./chunk-OFQWTKPW.js";
|
|
59
61
|
import "./chunk-4PFZPP2N.js";
|
|
60
62
|
import "./chunk-LCSMOLGX.js";
|
|
61
63
|
import "./chunk-TWWSYAKJ.js";
|
|
62
|
-
import "./chunk-
|
|
64
|
+
import "./chunk-STA43FMY.js";
|
|
63
65
|
import "./chunk-HBBJFK6I.js";
|
|
64
66
|
import "./chunk-PJ3HDUCY.js";
|
|
65
67
|
import "./chunk-TQFG7HTI.js";
|
|
@@ -67,15 +69,13 @@ import "./chunk-GK4AIFIH.js";
|
|
|
67
69
|
import "./chunk-2PSPARWP.js";
|
|
68
70
|
import {
|
|
69
71
|
withMeta
|
|
70
|
-
} from "./chunk-
|
|
72
|
+
} from "./chunk-YNBXJWSD.js";
|
|
71
73
|
import "./chunk-K4WIOZFP.js";
|
|
72
74
|
import "./chunk-XUXGIA7H.js";
|
|
73
75
|
import "./chunk-WERLJGIC.js";
|
|
74
76
|
import "./chunk-ISN5GRYI.js";
|
|
75
|
-
import "./chunk-
|
|
77
|
+
import "./chunk-P75OFLZN.js";
|
|
76
78
|
import "./chunk-KNU5COPB.js";
|
|
77
|
-
import "./chunk-XT5P4QMO.js";
|
|
78
|
-
import "./chunk-6BEFEWFB.js";
|
|
79
79
|
import "./chunk-3GXQPCJC.js";
|
|
80
80
|
import "./chunk-RQVDTPGD.js";
|
|
81
81
|
import "./chunk-PMRBLBUP.js";
|