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
|
@@ -21,20 +21,14 @@ import {
|
|
|
21
21
|
splitElementInHtml,
|
|
22
22
|
unwrapElementsFromHtml,
|
|
23
23
|
wrapElementsInHtml
|
|
24
|
-
} from "./chunk-
|
|
25
|
-
import {
|
|
26
|
-
atomicTempPath,
|
|
27
|
-
createFileAtomically,
|
|
28
|
-
isAtomicTempPath,
|
|
29
|
-
replaceFileAtomically
|
|
30
|
-
} from "./chunk-EOVYQ3IG.js";
|
|
24
|
+
} from "./chunk-R6C6URKB.js";
|
|
31
25
|
import {
|
|
32
26
|
DEFAULT_TARGET_LUFS,
|
|
33
27
|
absoluteLoudnessPlan,
|
|
34
28
|
measureAudio,
|
|
35
29
|
requiredFfmpeg,
|
|
36
30
|
resolveLocalAudioPath
|
|
37
|
-
} from "./chunk-
|
|
31
|
+
} from "./chunk-ASPTQ6DT.js";
|
|
38
32
|
import {
|
|
39
33
|
PROXY_PARAMS_VERSION,
|
|
40
34
|
PROXY_PENDING_RETRY_AFTER_SECONDS,
|
|
@@ -42,9 +36,13 @@ import {
|
|
|
42
36
|
ProxyCapacityError,
|
|
43
37
|
ProxyTranscodeError,
|
|
44
38
|
ProxyWaitTimeoutError,
|
|
39
|
+
STUDIO_MOTION_PATH,
|
|
45
40
|
createMediaCodecProbeCache,
|
|
41
|
+
createStudioMotionRenderBodyScript,
|
|
46
42
|
decideMediaProxyEligibility,
|
|
47
43
|
isInHiddenOrVendorDir,
|
|
44
|
+
isPrivateProjectFile,
|
|
45
|
+
isPrivateProjectPath,
|
|
48
46
|
isProxyVariantRequest,
|
|
49
47
|
pinWithinProject,
|
|
50
48
|
probeAssetCodec,
|
|
@@ -56,11 +54,18 @@ import {
|
|
|
56
54
|
recordProxyRequest,
|
|
57
55
|
resolveProxy,
|
|
58
56
|
resolveProxyVariantRequest,
|
|
57
|
+
resolveWithinProject,
|
|
59
58
|
scanProjectMediaCodecMap,
|
|
60
59
|
shouldPrewarmProxy,
|
|
61
60
|
waitForProxy,
|
|
62
61
|
walkDir
|
|
63
|
-
} from "./chunk-
|
|
62
|
+
} from "./chunk-W3KQCJVP.js";
|
|
63
|
+
import {
|
|
64
|
+
atomicTempPath,
|
|
65
|
+
createFileAtomically,
|
|
66
|
+
isAtomicTempPath,
|
|
67
|
+
replaceFileAtomically
|
|
68
|
+
} from "./chunk-EOVYQ3IG.js";
|
|
64
69
|
import {
|
|
65
70
|
findTimelineScript,
|
|
66
71
|
parseGsapScriptAcorn
|
|
@@ -81,7 +86,7 @@ import {
|
|
|
81
86
|
motionPathPluginUrl,
|
|
82
87
|
parseFps,
|
|
83
88
|
sameInstant
|
|
84
|
-
} from "./chunk-
|
|
89
|
+
} from "./chunk-RLNB3JCY.js";
|
|
85
90
|
import {
|
|
86
91
|
MagicString,
|
|
87
92
|
VALID_CANVAS_RESOLUTIONS,
|
|
@@ -90,7 +95,7 @@ import {
|
|
|
90
95
|
import {
|
|
91
96
|
addScenePartsManifest,
|
|
92
97
|
ensureHfIds
|
|
93
|
-
} from "./chunk-
|
|
98
|
+
} from "./chunk-P5WDMFBB.js";
|
|
94
99
|
import {
|
|
95
100
|
AFTER_FONTS_SCRIPT_TYPE,
|
|
96
101
|
RUNTIME_BOOTSTRAP_ATTR,
|
|
@@ -104,20 +109,19 @@ import {
|
|
|
104
109
|
resolveRateSpec,
|
|
105
110
|
sourceTimeAt,
|
|
106
111
|
stripEmbeddedRuntimeScripts
|
|
107
|
-
} from "./chunk-
|
|
112
|
+
} from "./chunk-UINDCCO7.js";
|
|
108
113
|
import {
|
|
109
114
|
ProjectRootMissingError,
|
|
110
115
|
folderGone,
|
|
111
116
|
isProjectRootMissing,
|
|
112
117
|
isSafePath,
|
|
113
118
|
mkdirWithinProject,
|
|
114
|
-
realpath
|
|
115
|
-
resolveWithinProject
|
|
119
|
+
realpath
|
|
116
120
|
} from "./chunk-OFQWTKPW.js";
|
|
117
121
|
import {
|
|
118
122
|
isWithinProjectRoot,
|
|
119
123
|
readProjectFile
|
|
120
|
-
} from "./chunk-
|
|
124
|
+
} from "./chunk-STA43FMY.js";
|
|
121
125
|
import {
|
|
122
126
|
FFPROBE_PATH_ENV,
|
|
123
127
|
findFfBinary
|
|
@@ -138,7 +142,7 @@ import {
|
|
|
138
142
|
simple
|
|
139
143
|
} from "./chunk-2PSPARWP.js";
|
|
140
144
|
|
|
141
|
-
// ../studio-server/dist/chunk-
|
|
145
|
+
// ../studio-server/dist/chunk-DG2VOIGR.js
|
|
142
146
|
import { createHash } from "crypto";
|
|
143
147
|
import { closeSync, constants, fstatSync, openSync, readFileSync, writeFileSync } from "fs";
|
|
144
148
|
import { dirname, join } from "path";
|
|
@@ -222,7 +226,7 @@ function stampFileHfIds(filePath) {
|
|
|
222
226
|
}
|
|
223
227
|
}
|
|
224
228
|
|
|
225
|
-
// ../studio-server/dist/chunk-
|
|
229
|
+
// ../studio-server/dist/chunk-K3H6HTVC.js
|
|
226
230
|
import { randomUUID as randomUUID6 } from "crypto";
|
|
227
231
|
import { mkdir as mkdir2, readdir as readdir3, rm as rm3, rmdir, writeFile } from "fs/promises";
|
|
228
232
|
import {
|
|
@@ -1963,7 +1967,7 @@ function clearElementScreenshotIsolation() {
|
|
|
1963
1967
|
page.__hfThumbnailFaded = [];
|
|
1964
1968
|
}
|
|
1965
1969
|
|
|
1966
|
-
// ../studio-server/dist/chunk-
|
|
1970
|
+
// ../studio-server/dist/chunk-G7FEKQ32.js
|
|
1967
1971
|
import { resolve as resolve4 } from "path";
|
|
1968
1972
|
function isAutoProxyEnabled(adapter) {
|
|
1969
1973
|
return adapter.autoProxy !== false;
|
|
@@ -2008,193 +2012,6 @@ async function injectMediaCodecMap(html, adapter, projectDir, compSrcPath, probe
|
|
|
2008
2012
|
return injectMediaCodecMapIntoHtml(html, projectDir, [{ html, compSrcPath }], probeCache);
|
|
2009
2013
|
}
|
|
2010
2014
|
|
|
2011
|
-
// ../studio-server/dist/chunk-4ETS2LXI.js
|
|
2012
|
-
var STUDIO_MOTION_PATH = ".hyperframes/studio-motion.json";
|
|
2013
|
-
function hasStudioMotionEntries(manifestContent) {
|
|
2014
|
-
try {
|
|
2015
|
-
const parsed = JSON.parse(manifestContent);
|
|
2016
|
-
return Array.isArray(parsed.motions) && parsed.motions.length > 0;
|
|
2017
|
-
} catch {
|
|
2018
|
-
return false;
|
|
2019
|
-
}
|
|
2020
|
-
}
|
|
2021
|
-
function createStudioMotionRenderBodyScript(manifestContent, options = {}) {
|
|
2022
|
-
if (!manifestContent.trim() || !hasStudioMotionEntries(manifestContent)) return null;
|
|
2023
|
-
return `(${studioMotionRenderRuntime.toString()})(${JSON.stringify(manifestContent)}, ${JSON.stringify(options.activeCompositionPath ?? null)});`;
|
|
2024
|
-
}
|
|
2025
|
-
function studioMotionRenderRuntime(manifestContent, activeCompositionPath) {
|
|
2026
|
-
const STUDIO_MOTION_TIMELINE_ID = "studio-motion";
|
|
2027
|
-
const STUDIO_MOTION_ATTR = "data-hf-studio-motion";
|
|
2028
|
-
const ORIGINAL_TRANSFORM_ATTR = "data-hf-studio-motion-original-transform";
|
|
2029
|
-
const ORIGINAL_OPACITY_ATTR = "data-hf-studio-motion-original-opacity";
|
|
2030
|
-
const ORIGINAL_VISIBILITY_ATTR = "data-hf-studio-motion-original-visibility";
|
|
2031
|
-
const objectRecord = (value) => value && typeof value === "object" ? value : null;
|
|
2032
|
-
const finiteNumber = (value) => typeof value === "number" && Number.isFinite(value) ? value : null;
|
|
2033
|
-
const runtimeWindow = window;
|
|
2034
|
-
const parseMotionValues = (value) => {
|
|
2035
|
-
const record = objectRecord(value);
|
|
2036
|
-
if (!record) return null;
|
|
2037
|
-
const parsed = {};
|
|
2038
|
-
for (const key of ["x", "y", "scale", "rotation", "opacity", "autoAlpha"]) {
|
|
2039
|
-
const next = finiteNumber(record[key]);
|
|
2040
|
-
if (next != null) parsed[key] = next;
|
|
2041
|
-
}
|
|
2042
|
-
return Object.keys(parsed).length > 0 ? parsed : null;
|
|
2043
|
-
};
|
|
2044
|
-
const parseCustomEase = (value) => {
|
|
2045
|
-
const record = objectRecord(value);
|
|
2046
|
-
if (!record) return null;
|
|
2047
|
-
const id = typeof record.id === "string" ? record.id.trim() : "";
|
|
2048
|
-
const data = typeof record.data === "string" ? record.data.trim() : "";
|
|
2049
|
-
if (!id || !data) return null;
|
|
2050
|
-
return { id, data };
|
|
2051
|
-
};
|
|
2052
|
-
const parsedManifest = (() => {
|
|
2053
|
-
try {
|
|
2054
|
-
return objectRecord(JSON.parse(manifestContent));
|
|
2055
|
-
} catch {
|
|
2056
|
-
return null;
|
|
2057
|
-
}
|
|
2058
|
-
})();
|
|
2059
|
-
const manifestMotions = Array.isArray(parsedManifest?.motions) ? parsedManifest.motions : [];
|
|
2060
|
-
const sourceFileForElement = (element) => {
|
|
2061
|
-
let current = element;
|
|
2062
|
-
while (current) {
|
|
2063
|
-
const sourceFile = current.getAttribute("data-composition-file") ?? current.getAttribute("data-composition-src");
|
|
2064
|
-
if (sourceFile) return sourceFile;
|
|
2065
|
-
current = current.parentElement;
|
|
2066
|
-
}
|
|
2067
|
-
return activeCompositionPath ?? "index.html";
|
|
2068
|
-
};
|
|
2069
|
-
const elementMatchesSourceFile = (element, sourceFile) => sourceFileForElement(element) === sourceFile;
|
|
2070
|
-
const isHTMLElement2 = (element) => element instanceof HTMLElement;
|
|
2071
|
-
const querySelectorCandidates = (selector) => {
|
|
2072
|
-
const className = selector.match(/^\.([A-Za-z0-9_-]+)$/)?.[1];
|
|
2073
|
-
if (className) {
|
|
2074
|
-
return Array.from(document.getElementsByTagName("*")).filter(
|
|
2075
|
-
(element) => isHTMLElement2(element) && element.classList.contains(className)
|
|
2076
|
-
);
|
|
2077
|
-
}
|
|
2078
|
-
if (/^[A-Za-z][A-Za-z0-9-]*$/.test(selector)) {
|
|
2079
|
-
return Array.from(document.getElementsByTagName(selector)).filter(isHTMLElement2);
|
|
2080
|
-
}
|
|
2081
|
-
return Array.from(document.querySelectorAll(selector)).filter(isHTMLElement2);
|
|
2082
|
-
};
|
|
2083
|
-
const resolveTarget = (targetRecord) => {
|
|
2084
|
-
const sourceFile = typeof targetRecord.sourceFile === "string" ? targetRecord.sourceFile : "";
|
|
2085
|
-
if (!sourceFile) return null;
|
|
2086
|
-
const id = typeof targetRecord.id === "string" ? targetRecord.id : "";
|
|
2087
|
-
if (id) {
|
|
2088
|
-
const byId = document.getElementById(id);
|
|
2089
|
-
if (isHTMLElement2(byId) && elementMatchesSourceFile(byId, sourceFile)) return byId;
|
|
2090
|
-
}
|
|
2091
|
-
const selector = typeof targetRecord.selector === "string" ? targetRecord.selector : "";
|
|
2092
|
-
if (!selector) return null;
|
|
2093
|
-
try {
|
|
2094
|
-
const selectorIndex = Math.max(0, Math.floor(finiteNumber(targetRecord.selectorIndex) ?? 0));
|
|
2095
|
-
return querySelectorCandidates(selector).filter(
|
|
2096
|
-
(element) => elementMatchesSourceFile(element, sourceFile)
|
|
2097
|
-
)[selectorIndex] ?? null;
|
|
2098
|
-
} catch {
|
|
2099
|
-
return null;
|
|
2100
|
-
}
|
|
2101
|
-
};
|
|
2102
|
-
const restoreElement = (element) => {
|
|
2103
|
-
runtimeWindow.gsap?.set?.(element, { clearProps: "transform,opacity,visibility" });
|
|
2104
|
-
element.style.transform = element.getAttribute(ORIGINAL_TRANSFORM_ATTR) ?? "";
|
|
2105
|
-
element.style.opacity = element.getAttribute(ORIGINAL_OPACITY_ATTR) ?? "";
|
|
2106
|
-
element.style.visibility = element.getAttribute(ORIGINAL_VISIBILITY_ATTR) ?? "";
|
|
2107
|
-
element.removeAttribute(STUDIO_MOTION_ATTR);
|
|
2108
|
-
element.removeAttribute(ORIGINAL_TRANSFORM_ATTR);
|
|
2109
|
-
element.removeAttribute(ORIGINAL_OPACITY_ATTR);
|
|
2110
|
-
element.removeAttribute(ORIGINAL_VISIBILITY_ATTR);
|
|
2111
|
-
};
|
|
2112
|
-
const restoreStudioMotionElements = () => {
|
|
2113
|
-
for (const element of Array.from(document.querySelectorAll(`[${STUDIO_MOTION_ATTR}]`))) {
|
|
2114
|
-
if (isHTMLElement2(element)) restoreElement(element);
|
|
2115
|
-
}
|
|
2116
|
-
};
|
|
2117
|
-
const readCurrentTime = () => {
|
|
2118
|
-
try {
|
|
2119
|
-
const playerTime = runtimeWindow.__player?.getTime?.();
|
|
2120
|
-
if (typeof playerTime === "number" && Number.isFinite(playerTime)) {
|
|
2121
|
-
return Math.max(0, playerTime);
|
|
2122
|
-
}
|
|
2123
|
-
} catch {
|
|
2124
|
-
}
|
|
2125
|
-
try {
|
|
2126
|
-
const timelineTime = runtimeWindow.__timeline?.time?.();
|
|
2127
|
-
if (typeof timelineTime === "number" && Number.isFinite(timelineTime)) {
|
|
2128
|
-
return Math.max(0, timelineTime);
|
|
2129
|
-
}
|
|
2130
|
-
} catch {
|
|
2131
|
-
}
|
|
2132
|
-
return 0;
|
|
2133
|
-
};
|
|
2134
|
-
const resolveEase = (motion) => {
|
|
2135
|
-
const fallback = typeof motion.ease === "string" && motion.ease.trim() ? motion.ease.trim() : "none";
|
|
2136
|
-
const customEase = parseCustomEase(motion.customEase);
|
|
2137
|
-
const customEasePlugin = runtimeWindow.CustomEase;
|
|
2138
|
-
if (!customEase || typeof customEasePlugin?.create !== "function") return fallback;
|
|
2139
|
-
try {
|
|
2140
|
-
runtimeWindow.gsap?.registerPlugin?.(customEasePlugin);
|
|
2141
|
-
customEasePlugin.create(customEase.id, customEase.data);
|
|
2142
|
-
return customEase.id;
|
|
2143
|
-
} catch {
|
|
2144
|
-
return fallback;
|
|
2145
|
-
}
|
|
2146
|
-
};
|
|
2147
|
-
const applyManifest = () => {
|
|
2148
|
-
runtimeWindow.__timelines = runtimeWindow.__timelines ?? {};
|
|
2149
|
-
runtimeWindow.__timelines[STUDIO_MOTION_TIMELINE_ID]?.kill?.();
|
|
2150
|
-
delete runtimeWindow.__timelines[STUDIO_MOTION_TIMELINE_ID];
|
|
2151
|
-
restoreStudioMotionElements();
|
|
2152
|
-
const gsap = runtimeWindow.gsap;
|
|
2153
|
-
if (!gsap?.timeline || manifestMotions.length === 0) return 0;
|
|
2154
|
-
const timeline = gsap.timeline({ paused: true, defaults: { overwrite: "auto" } });
|
|
2155
|
-
let applied = 0;
|
|
2156
|
-
for (const motionValue of manifestMotions) {
|
|
2157
|
-
const motion = objectRecord(motionValue);
|
|
2158
|
-
if (!motion || motion.kind !== "gsap-motion") continue;
|
|
2159
|
-
const targetRecord = objectRecord(motion.target);
|
|
2160
|
-
if (!targetRecord) continue;
|
|
2161
|
-
const target = resolveTarget(targetRecord);
|
|
2162
|
-
if (!target || typeof timeline.fromTo !== "function") continue;
|
|
2163
|
-
const start = finiteNumber(motion.start);
|
|
2164
|
-
const duration = finiteNumber(motion.duration);
|
|
2165
|
-
if (start == null || duration == null || start < 0 || duration <= 0) continue;
|
|
2166
|
-
const from = parseMotionValues(motion.from);
|
|
2167
|
-
const to = parseMotionValues(motion.to);
|
|
2168
|
-
if (!from || !to) continue;
|
|
2169
|
-
if (!target.hasAttribute(STUDIO_MOTION_ATTR)) {
|
|
2170
|
-
target.setAttribute(ORIGINAL_TRANSFORM_ATTR, target.style.transform);
|
|
2171
|
-
target.setAttribute(ORIGINAL_OPACITY_ATTR, target.style.opacity);
|
|
2172
|
-
target.setAttribute(ORIGINAL_VISIBILITY_ATTR, target.style.visibility);
|
|
2173
|
-
}
|
|
2174
|
-
target.setAttribute(STUDIO_MOTION_ATTR, "true");
|
|
2175
|
-
timeline.fromTo(
|
|
2176
|
-
target,
|
|
2177
|
-
from,
|
|
2178
|
-
{ ...to, duration, ease: resolveEase(motion), overwrite: "auto", immediateRender: false },
|
|
2179
|
-
start
|
|
2180
|
-
);
|
|
2181
|
-
applied += 1;
|
|
2182
|
-
}
|
|
2183
|
-
if (applied === 0) {
|
|
2184
|
-
timeline.kill?.();
|
|
2185
|
-
return 0;
|
|
2186
|
-
}
|
|
2187
|
-
runtimeWindow.__timelines[STUDIO_MOTION_TIMELINE_ID] = timeline;
|
|
2188
|
-
timeline.pause?.();
|
|
2189
|
-
const currentTime = readCurrentTime();
|
|
2190
|
-
if (typeof timeline.totalTime === "function") timeline.totalTime(currentTime, false);
|
|
2191
|
-
else timeline.time?.(currentTime);
|
|
2192
|
-
return applied;
|
|
2193
|
-
};
|
|
2194
|
-
runtimeWindow.__hfStudioMotionApply = applyManifest;
|
|
2195
|
-
applyManifest();
|
|
2196
|
-
}
|
|
2197
|
-
|
|
2198
2015
|
// ../studio-server/dist/chunk-X62ASOGO.js
|
|
2199
2016
|
function findUnsafeMutationValues(value, path = "body", options = {}) {
|
|
2200
2017
|
if (value === null) {
|
|
@@ -5439,6 +5256,7 @@ import { createHash as createHash23 } from "crypto";
|
|
|
5439
5256
|
// ../core/dist/studioPreviewMark.js
|
|
5440
5257
|
var STUDIO_PREVIEW_MARK_META = "hyperframes-studio-preview";
|
|
5441
5258
|
var STUDIO_PREVIEW_LAZY_ATTR = "data-hf-preview-lazy";
|
|
5259
|
+
var STUDIO_PREVIEW_ERRORS = "__hfPreviewErrors";
|
|
5442
5260
|
|
|
5443
5261
|
// ../studio-server/dist/index.js
|
|
5444
5262
|
import { readlinkSync as readlinkSync2 } from "fs";
|
|
@@ -5446,7 +5264,7 @@ import { dirname as dirname42, join as join7, parse as parse2, relative as relat
|
|
|
5446
5264
|
import { readFileSync as readFileSync72 } from "fs";
|
|
5447
5265
|
import { join as join9 } from "path";
|
|
5448
5266
|
import { streamSSE } from "hono/streaming";
|
|
5449
|
-
import { existsSync as existsSync6, readFileSync as readFileSync8, unlinkSync as unlinkSync3, readdirSync as readdirSync32, statSync as statSync5 } from "fs";
|
|
5267
|
+
import { existsSync as existsSync6, lstatSync as lstatSync32, readFileSync as readFileSync8, unlinkSync as unlinkSync3, readdirSync as readdirSync32, statSync as statSync5 } from "fs";
|
|
5450
5268
|
import { join as join10 } from "path";
|
|
5451
5269
|
import { HTTPException } from "hono/http-exception";
|
|
5452
5270
|
import { open, stat as stat2 } from "fs/promises";
|
|
@@ -5522,7 +5340,7 @@ function registerProjectRoutes(api, adapter) {
|
|
|
5522
5340
|
api.get("/projects/:id", async (c) => {
|
|
5523
5341
|
const project = await adapter.resolveProject(c.req.param("id"));
|
|
5524
5342
|
if (!project) return c.json({ error: "not found" }, 404);
|
|
5525
|
-
const files = walkDir(project.dir);
|
|
5343
|
+
const files = walkDir(project.dir).filter((file) => !isPrivateProjectPath(file));
|
|
5526
5344
|
const compositions = await filterCompositionFiles(project.dir, files);
|
|
5527
5345
|
return c.json({ id: project.id, dir: project.dir, title: project.title, files, compositions });
|
|
5528
5346
|
});
|
|
@@ -6805,7 +6623,7 @@ function updateReferences(projectDir, oldPath, newPath, isDirectory) {
|
|
|
6805
6623
|
const rewrite = referenceRewriter(oldPath, newPath, isDirectory, projectPaths(projectDir));
|
|
6806
6624
|
let updatedCount = 0;
|
|
6807
6625
|
for (const file of textFiles) {
|
|
6808
|
-
if (!isSafePath(projectDir, file)) continue;
|
|
6626
|
+
if (!isSafePath(projectDir, file) || isPrivateProjectFile(projectDir, file)) continue;
|
|
6809
6627
|
const content = readableText(file);
|
|
6810
6628
|
if (content === null) continue;
|
|
6811
6629
|
const updated = rewrite(content);
|
|
@@ -7097,7 +6915,7 @@ async function prepareGsapMutationScript(c, res, firstMutation) {
|
|
|
7097
6915
|
let block = extractGsapScriptBlock(html);
|
|
7098
6916
|
if (!block && (firstMutation.type === "add" || firstMutation.type === "add-with-keyframes")) {
|
|
7099
6917
|
const compId = html.match(/data-composition-id="([^"]+)"/)?.[1] ?? "main";
|
|
7100
|
-
const { GSAP_CDN } = await import("./dist-
|
|
6918
|
+
const { GSAP_CDN } = await import("./dist-RVC3JTID.js");
|
|
7101
6919
|
const bootstrap = [
|
|
7102
6920
|
`<script src="${GSAP_CDN}"></script>`,
|
|
7103
6921
|
"<script>",
|
|
@@ -7914,8 +7732,8 @@ async function foldAtomicCutFile(c, file, absPath, before, writer) {
|
|
|
7914
7732
|
skippedSelectors: [...skippedSelectors]
|
|
7915
7733
|
};
|
|
7916
7734
|
}
|
|
7735
|
+
var MAX_UPLOAD_BYTES = 500 * 1024 * 1024;
|
|
7917
7736
|
async function processUploadedFiles(formData, targetDir, projectDir) {
|
|
7918
|
-
const MAX_UPLOAD_BYTES = 500 * 1024 * 1024;
|
|
7919
7737
|
const uploaded = [];
|
|
7920
7738
|
const skipped = [];
|
|
7921
7739
|
const invalid = [];
|
|
@@ -7949,7 +7767,7 @@ async function processUploadedFiles(formData, targetDir, projectDir) {
|
|
|
7949
7767
|
finalName = `${base} (${n})${ext}`;
|
|
7950
7768
|
finalPath = resolve22(targetDir, finalName);
|
|
7951
7769
|
}
|
|
7952
|
-
if (!isSafePath(projectDir, finalPath)) continue;
|
|
7770
|
+
if (!isSafePath(projectDir, finalPath) || isPrivateProjectFile(projectDir, finalPath)) continue;
|
|
7953
7771
|
const buffer = Buffer.from(await value.arrayBuffer());
|
|
7954
7772
|
const validation = validateUploadedMediaBuffer(finalName, buffer);
|
|
7955
7773
|
if (!validation.ok) {
|
|
@@ -8728,7 +8546,6 @@ function registerFileRoutes(api, adapter) {
|
|
|
8728
8546
|
}
|
|
8729
8547
|
return c.json({ ok: true, path: copyPath }, 201);
|
|
8730
8548
|
});
|
|
8731
|
-
const MAX_UPLOAD_BYTES = 500 * 1024 * 1024;
|
|
8732
8549
|
api.post(
|
|
8733
8550
|
"/projects/:id/upload",
|
|
8734
8551
|
bodyLimit({
|
|
@@ -9102,15 +8919,17 @@ var GSAP_CDN_FALLBACK_SCRIPT = `<script ${GSAP_FALLBACK_ATTR}>
|
|
|
9102
8919
|
if(loaded[file])return loaded[file];
|
|
9103
8920
|
return loaded[file]=new Promise(function(ok,fail){
|
|
9104
8921
|
var s=document.createElement("script");
|
|
9105
|
-
s.src=cdnBase+file;s.onload=ok;s.onerror=fail;
|
|
8922
|
+
s.src=cdnBase+file;s.hfGsapFallback=true;s.onload=ok;s.onerror=fail;
|
|
9106
8923
|
document.head.appendChild(s);
|
|
9107
8924
|
});
|
|
9108
8925
|
}
|
|
9109
8926
|
document.addEventListener("error",function(e){
|
|
9110
8927
|
var t=e.target;
|
|
9111
|
-
if(!t||t.tagName!=="SCRIPT"||!t.src)return;
|
|
8928
|
+
if(!t||t.tagName!=="SCRIPT"||!t.src||t.hfGsapFallback)return;
|
|
9112
8929
|
var m=t.src.match(/gsap[^/]*\\/dist\\/(.+\\.js)/);
|
|
9113
|
-
if(m)loadFallback(m[1])
|
|
8930
|
+
if(m)loadFallback(m[1]).catch(function(){
|
|
8931
|
+
reportError(new Error("GSAP could not load from "+t.src+" or "+cdnBase+m[1]+", so this preview's animations will not play."));
|
|
8932
|
+
});
|
|
9114
8933
|
},true);
|
|
9115
8934
|
})();
|
|
9116
8935
|
</script>`;
|
|
@@ -9142,8 +8961,13 @@ function previewVariablesFromRequest(rawVariables) {
|
|
|
9142
8961
|
return { raw: rawVariables, values: parse22.values };
|
|
9143
8962
|
}
|
|
9144
8963
|
var PREVIEW_CAPTURE_PARAM = "hf-capture";
|
|
8964
|
+
var EARLY_ERRORS_SCRIPT = `<script>(function(){var seen=window.${STUDIO_PREVIEW_ERRORS}=[];
|
|
8965
|
+
addEventListener("error",function(e){seen.push(e.message||String(e))});})();</script>`;
|
|
9145
8966
|
function injectStudioPreviewAugmentations(html, adapter, projectDir, activeCompositionPath, capture) {
|
|
9146
|
-
const marked = capture ? html : injectTagsAtHeadStart(
|
|
8967
|
+
const marked = capture ? html : injectTagsAtHeadStart(
|
|
8968
|
+
lazyPreviewImages(html),
|
|
8969
|
+
`<meta name="${STUDIO_PREVIEW_MARK_META}">${EARLY_ERRORS_SCRIPT}`
|
|
8970
|
+
);
|
|
9147
8971
|
return injectStudioMotionScript(
|
|
9148
8972
|
injectMotionPathPluginIfNeeded(
|
|
9149
8973
|
injectGsapCdnFallback(
|
|
@@ -9364,7 +9188,7 @@ ${etag}`;
|
|
|
9364
9188
|
const subPath = requestSubPath(c.req.url, "projects/:id/preview");
|
|
9365
9189
|
const candidate = resolve42(project.dir, subPath);
|
|
9366
9190
|
const file = isWithinProjectRoot(project.dir, candidate) ? candidate : null;
|
|
9367
|
-
if (!file) {
|
|
9191
|
+
if (!file || isPrivateProjectFile(project.dir, file)) {
|
|
9368
9192
|
return c.text("not found", 404);
|
|
9369
9193
|
}
|
|
9370
9194
|
recordPreviewRead(project.dir, file);
|
|
@@ -9635,6 +9459,13 @@ function registerRenderRoutes(api, adapter) {
|
|
|
9635
9459
|
".mov": "video/quicktime"
|
|
9636
9460
|
};
|
|
9637
9461
|
const RENDER_EXTENSIONS = Object.keys(RENDER_MIME);
|
|
9462
|
+
const isPlainFile = (path) => {
|
|
9463
|
+
try {
|
|
9464
|
+
return lstatSync32(path).isFile();
|
|
9465
|
+
} catch {
|
|
9466
|
+
return false;
|
|
9467
|
+
}
|
|
9468
|
+
};
|
|
9638
9469
|
function renderContentType(filePath) {
|
|
9639
9470
|
const ext = RENDER_EXTENSIONS.find((e) => filePath.endsWith(e));
|
|
9640
9471
|
return (ext && RENDER_MIME[ext]) ?? "video/mp4";
|
|
@@ -9642,7 +9473,7 @@ function registerRenderRoutes(api, adapter) {
|
|
|
9642
9473
|
api.get("/render/:jobId/view", (c) => {
|
|
9643
9474
|
const { jobId } = c.req.param();
|
|
9644
9475
|
const job = renderJobs.get(jobId);
|
|
9645
|
-
if (!job?.outputPath || !
|
|
9476
|
+
if (!job?.outputPath || !isPlainFile(job.outputPath)) {
|
|
9646
9477
|
return c.json({ error: "not found" }, 404);
|
|
9647
9478
|
}
|
|
9648
9479
|
const contentType = renderContentType(job.outputPath);
|
|
@@ -9660,7 +9491,7 @@ function registerRenderRoutes(api, adapter) {
|
|
|
9660
9491
|
api.get("/render/:jobId/download", (c) => {
|
|
9661
9492
|
const { jobId } = c.req.param();
|
|
9662
9493
|
const job = renderJobs.get(jobId);
|
|
9663
|
-
if (!job?.outputPath || !
|
|
9494
|
+
if (!job?.outputPath || !isPlainFile(job.outputPath)) {
|
|
9664
9495
|
return c.json({ error: "not found" }, 404);
|
|
9665
9496
|
}
|
|
9666
9497
|
const contentType = renderContentType(job.outputPath);
|
|
@@ -9695,7 +9526,7 @@ function registerRenderRoutes(api, adapter) {
|
|
|
9695
9526
|
if (!filename) return c.json({ error: "missing filename" }, 400);
|
|
9696
9527
|
const rendersDir = adapter.rendersDir(project);
|
|
9697
9528
|
const fp = resolveWithinProject(rendersDir, filename);
|
|
9698
|
-
if (!fp) return c.json({ error: "forbidden" }, 403);
|
|
9529
|
+
if (!fp || isPrivateProjectFile(project.dir, fp)) return c.json({ error: "forbidden" }, 403);
|
|
9699
9530
|
if (!existsSync6(fp)) return c.json({ error: "not found" }, 404);
|
|
9700
9531
|
const contentType = renderContentType(fp);
|
|
9701
9532
|
const content = readFileSync8(fp);
|
|
@@ -9713,8 +9544,10 @@ function registerRenderRoutes(api, adapter) {
|
|
|
9713
9544
|
if (!project) return c.json({ error: "not found" }, 404);
|
|
9714
9545
|
const rendersDir = adapter.rendersDir(project);
|
|
9715
9546
|
if (!existsSync6(rendersDir)) return c.json({ renders: [] });
|
|
9716
|
-
const files = readdirSync32(rendersDir).filter((f) => f.endsWith(".mp4") || f.endsWith(".webm") || f.endsWith(".mov")).
|
|
9717
|
-
const fp =
|
|
9547
|
+
const files = readdirSync32(rendersDir).filter((f) => f.endsWith(".mp4") || f.endsWith(".webm") || f.endsWith(".mov")).flatMap((f) => {
|
|
9548
|
+
const fp = resolveWithinProject(rendersDir, f);
|
|
9549
|
+
return fp && !isPrivateProjectFile(project.dir, fp) ? [{ f, fp }] : [];
|
|
9550
|
+
}).map(({ f, fp }) => {
|
|
9718
9551
|
const stat22 = statSync5(fp);
|
|
9719
9552
|
const rid = f.replace(/\.(mp4|webm|mov)$/, "");
|
|
9720
9553
|
const metaPath = join10(rendersDir, `${rid}.meta.json`);
|
|
@@ -9733,6 +9566,7 @@ function registerRenderRoutes(api, adapter) {
|
|
|
9733
9566
|
return {
|
|
9734
9567
|
id: rid,
|
|
9735
9568
|
filename: f,
|
|
9569
|
+
path: fp,
|
|
9736
9570
|
size: stat22.size,
|
|
9737
9571
|
createdAt: stat22.mtimeMs,
|
|
9738
9572
|
status,
|
|
@@ -9746,12 +9580,12 @@ function registerRenderRoutes(api, adapter) {
|
|
|
9746
9580
|
id: file.id,
|
|
9747
9581
|
status: file.status,
|
|
9748
9582
|
progress: 100,
|
|
9749
|
-
outputPath:
|
|
9583
|
+
outputPath: file.path,
|
|
9750
9584
|
createdAt: file.createdAt
|
|
9751
9585
|
});
|
|
9752
9586
|
}
|
|
9753
9587
|
}
|
|
9754
|
-
return c.json({ renders: files });
|
|
9588
|
+
return c.json({ renders: files.map(({ path: _path, ...render }) => render) });
|
|
9755
9589
|
});
|
|
9756
9590
|
}
|
|
9757
9591
|
var ThumbnailGenerationCoordinator = class {
|
|
@@ -11528,14 +11362,13 @@ export {
|
|
|
11528
11362
|
getElementScreenshotClip,
|
|
11529
11363
|
clearElementScreenshotIsolation,
|
|
11530
11364
|
injectMediaCodecMapIntoHtml,
|
|
11531
|
-
STUDIO_MOTION_PATH,
|
|
11532
|
-
createStudioMotionRenderBodyScript,
|
|
11533
11365
|
MIME_TYPES,
|
|
11534
11366
|
getMimeType,
|
|
11535
11367
|
buildSubCompositionHtml,
|
|
11536
11368
|
compositionsAffectedBy,
|
|
11537
11369
|
applyFileMutations,
|
|
11538
11370
|
requestSubPath,
|
|
11371
|
+
MAX_UPLOAD_BYTES,
|
|
11539
11372
|
affectsPreview,
|
|
11540
11373
|
PREVIEW_BUNDLE_OPTIONS,
|
|
11541
11374
|
createStudioApi,
|
|
@@ -8,10 +8,10 @@ import {
|
|
|
8
8
|
DEFAULT_VP9_CPU_USED,
|
|
9
9
|
isHttpUrl,
|
|
10
10
|
runFfmpeg
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-7Y5SMPRV.js";
|
|
12
12
|
import {
|
|
13
13
|
parseAnimatedGifMetadata
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-RLNB3JCY.js";
|
|
15
15
|
import {
|
|
16
16
|
parseHTML
|
|
17
17
|
} from "./chunk-GK4AIFIH.js";
|
|
@@ -6,7 +6,7 @@ var __filename = __hf_fileURLToPath(import.meta.url);
|
|
|
6
6
|
var __dirname = __hf_dirname(__filename);
|
|
7
7
|
import {
|
|
8
8
|
VERSION
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-P75OFLZN.js";
|
|
10
10
|
|
|
11
11
|
// src/registry/compatibility.ts
|
|
12
12
|
import { compareVersions } from "compare-versions";
|
|
@@ -20,7 +20,7 @@ import {
|
|
|
20
20
|
typeDirPath,
|
|
21
21
|
updateRecord,
|
|
22
22
|
withFigmaErrors
|
|
23
|
-
} from "./chunk-
|
|
23
|
+
} from "./chunk-XQODEVF3.js";
|
|
24
24
|
import {
|
|
25
25
|
defineCommand
|
|
26
26
|
} from "./chunk-S3S4TGEH.js";
|
|
@@ -221,7 +221,7 @@ var asset_default = defineCommand({
|
|
|
221
221
|
rendered > 0 ? `(${results.length} nodes, ${rendered} rendered in 1 figma request)` : `(${results.length} nodes, all reused from cache \u2014 no figma request)`
|
|
222
222
|
);
|
|
223
223
|
}
|
|
224
|
-
const { trackFigmaImport } = await import("./telemetry-
|
|
224
|
+
const { trackFigmaImport } = await import("./telemetry-63L2ORO3.js");
|
|
225
225
|
trackFigmaImport({
|
|
226
226
|
phase: "asset",
|
|
227
227
|
reused: results.every((r) => r.reused),
|
|
@@ -7,16 +7,16 @@ var __dirname = __hf_dirname(__filename);
|
|
|
7
7
|
import {
|
|
8
8
|
parseFeedbackRating,
|
|
9
9
|
trackRenderFeedback
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-WH6PRFNX.js";
|
|
11
11
|
import {
|
|
12
12
|
shouldTrack
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-VR5UQWGV.js";
|
|
14
14
|
import {
|
|
15
15
|
c
|
|
16
16
|
} from "./chunk-ZTZA4UWZ.js";
|
|
17
17
|
import {
|
|
18
18
|
detectAgentRuntime
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-MIOBYUXT.js";
|
|
20
20
|
import {
|
|
21
21
|
readConfig,
|
|
22
22
|
writeConfig
|
|
@@ -83,7 +83,7 @@ async function maybePromptRenderFeedback(opts) {
|
|
|
83
83
|
async function getDoctorSummary() {
|
|
84
84
|
try {
|
|
85
85
|
const [{ getSystemMeta }, { findFFmpeg }] = await Promise.all([
|
|
86
|
-
import("./system-
|
|
86
|
+
import("./system-ZWIBWWE6.js"),
|
|
87
87
|
import("./ffmpeg-QIUFEFTY.js")
|
|
88
88
|
]);
|
|
89
89
|
const sys = getSystemMeta();
|
|
@@ -14,9 +14,13 @@ import {
|
|
|
14
14
|
describeRejectedPythonOverride,
|
|
15
15
|
hasPythonModules
|
|
16
16
|
} from "./chunk-5ETJX6WM.js";
|
|
17
|
+
import {
|
|
18
|
+
OPTIONAL_PACKAGES,
|
|
19
|
+
installedOptionalPackageVersion
|
|
20
|
+
} from "./chunk-3DKN5WKL.js";
|
|
17
21
|
import {
|
|
18
22
|
runEnvironmentChecks
|
|
19
|
-
} from "./chunk-
|
|
23
|
+
} from "./chunk-UUMK6VME.js";
|
|
20
24
|
import {
|
|
21
25
|
c
|
|
22
26
|
} from "./chunk-ZTZA4UWZ.js";
|
|
@@ -25,31 +29,27 @@ import {
|
|
|
25
29
|
getFreeDiskMb,
|
|
26
30
|
getShmSizeMb,
|
|
27
31
|
getSystemMeta
|
|
28
|
-
} from "./chunk-
|
|
32
|
+
} from "./chunk-MIOBYUXT.js";
|
|
29
33
|
import {
|
|
30
34
|
defineCommand
|
|
31
35
|
} from "./chunk-S3S4TGEH.js";
|
|
32
36
|
import {
|
|
33
37
|
resolveExtractCacheDir
|
|
34
|
-
} from "./chunk-
|
|
38
|
+
} from "./chunk-7Y5SMPRV.js";
|
|
35
39
|
import {
|
|
36
40
|
getUpdateMeta,
|
|
37
41
|
withMeta
|
|
38
|
-
} from "./chunk-
|
|
42
|
+
} from "./chunk-YNBXJWSD.js";
|
|
39
43
|
import {
|
|
40
44
|
CONFIG_PATH,
|
|
41
45
|
withFileLock
|
|
42
46
|
} from "./chunk-XUXGIA7H.js";
|
|
43
47
|
import {
|
|
44
48
|
VERSION
|
|
45
|
-
} from "./chunk-
|
|
49
|
+
} from "./chunk-P75OFLZN.js";
|
|
46
50
|
import {
|
|
47
51
|
normalizeErrorMessage
|
|
48
52
|
} from "./chunk-KNU5COPB.js";
|
|
49
|
-
import {
|
|
50
|
-
OPTIONAL_PACKAGES,
|
|
51
|
-
installedOptionalPackageVersion
|
|
52
|
-
} from "./chunk-XT5P4QMO.js";
|
|
53
53
|
|
|
54
54
|
// src/commands/doctor.ts
|
|
55
55
|
import { execFileSync, execSync } from "child_process";
|
|
@@ -232,7 +232,7 @@ function checkEnvironment() {
|
|
|
232
232
|
return { ok: true, detail: parts.join(" \xB7 ") };
|
|
233
233
|
}
|
|
234
234
|
async function checkWhisper() {
|
|
235
|
-
const { findWhisper, getInstallInstructions } = await import("./manager-
|
|
235
|
+
const { findWhisper, getInstallInstructions } = await import("./manager-DXB7JDHU.js");
|
|
236
236
|
const result = findWhisper();
|
|
237
237
|
if (result) {
|
|
238
238
|
return { ok: true, detail: result.executablePath };
|