hyperframes 0.8.116 → 0.8.117

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.
Files changed (147) hide show
  1. package/dist/{add-5AOKGJRR.js → add-IIQPNPGC.js} +14 -14
  2. package/dist/{animatedGifPrep-XKCVQ4ZL.js → animatedGifPrep-Z2SW4EP4.js} +5 -5
  3. package/dist/{asset-QE74HE7H.js → asset-G2YFF22T.js} +2 -2
  4. package/dist/{assetCataloger-3VJRWB3N.js → assetCataloger-D5JB2JMJ.js} +2 -2
  5. package/dist/{auth-HQE2GKY2.js → auth-TLQUVQZM.js} +2 -2
  6. package/dist/{autoUpdate-MH57H575.js → autoUpdate-H6AOMII5.js} +2 -2
  7. package/dist/{backgroundChecks-JP2GHEP4.js → backgroundChecks-RYFTDMFT.js} +3 -3
  8. package/dist/backgroundChecksWorker.js +3 -3
  9. package/dist/{batchRender-KIFBKKVN.js → batchRender-YIAVYPWT.js} +3 -3
  10. package/dist/{beats-V334Q2GV.js → beats-VO3VHQWQ.js} +11 -11
  11. package/dist/{benchmark-62QZH5YE.js → benchmark-34XZJT2Q.js} +11 -11
  12. package/dist/{browser-EK7OBU6W.js → browser-LACRZ6JL.js} +8 -8
  13. package/dist/{bundleWithLocalizedFonts-263BUY7C.js → bundleWithLocalizedFonts-EYKE5ZX6.js} +2 -2
  14. package/dist/{capture-6F3XPKXI.js → capture-MMS22F4Q.js} +2 -2
  15. package/dist/{capture-56HMZGJW.js → capture-ZQTC6I6C.js} +8 -8
  16. package/dist/{catalog-JO7WHBYC.js → catalog-TH4AFNHA.js} +14 -14
  17. package/dist/{check-S4RZIS26.js → check-3ECOPYGB.js} +30 -30
  18. package/dist/{checkBrowser-NVWULRE7.js → checkBrowser-6KZQZ56A.js} +29 -29
  19. package/dist/{chunk-EWR3SLQV.js → chunk-2LT5WBQR.js} +1 -1
  20. package/dist/{chunk-AKZD7VWZ.js → chunk-2NC676XZ.js} +1 -1
  21. package/dist/{chunk-6FRHKGRY.js → chunk-5KSSEDQS.js} +1 -1
  22. package/dist/{chunk-34AE4KPB.js → chunk-6QJZ5ELI.js} +2 -2
  23. package/dist/{chunk-S5Q46UEI.js → chunk-6SHCWTLO.js} +5 -5
  24. package/dist/{chunk-MZPMAU25.js → chunk-7CXLMMUA.js} +1 -1
  25. package/dist/{chunk-TEYBS6T3.js → chunk-7PWGR3MW.js} +5 -5
  26. package/dist/{chunk-CCWSLTWA.js → chunk-AFG4DOYJ.js} +7 -7
  27. package/dist/{chunk-VU5IDWKX.js → chunk-AFUXSLNG.js} +1 -1
  28. package/dist/{chunk-QITH7ALB.js → chunk-AGLQPT3K.js} +4 -4
  29. package/dist/{chunk-JBZYEZPZ.js → chunk-AJU4HUC6.js} +1 -1
  30. package/dist/{chunk-NCQV2NMY.js → chunk-AWEJWZVO.js} +1 -1
  31. package/dist/{chunk-2E4A277E.js → chunk-BPZSP7ZJ.js} +1 -1
  32. package/dist/{chunk-CVE7OUZE.js → chunk-BRWHMATR.js} +3 -3
  33. package/dist/{chunk-IX75NQSA.js → chunk-CUU2MHZJ.js} +2 -2
  34. package/dist/{chunk-VLB4NGRR.js → chunk-D5DP3BQJ.js} +1 -1
  35. package/dist/{chunk-PHBPRHKK.js → chunk-DZNISW63.js} +1 -1
  36. package/dist/{chunk-7Z2XNQ7F.js → chunk-EGBBEKJJ.js} +2 -2
  37. package/dist/{chunk-WN62HDA7.js → chunk-EH2XJW65.js} +1 -1
  38. package/dist/{chunk-WUUEWXA2.js → chunk-IUNDV47P.js} +1 -1
  39. package/dist/{chunk-RTLYNXAC.js → chunk-JQJPJ6VZ.js} +1 -1
  40. package/dist/{chunk-XTCMIITZ.js → chunk-KGFTVLNQ.js} +1 -1
  41. package/dist/{chunk-VJ2RAP65.js → chunk-KKWOE65F.js} +2 -2
  42. package/dist/{chunk-KNCLHJB5.js → chunk-L3MEJHF4.js} +2 -2
  43. package/dist/{chunk-WWL6YGYK.js → chunk-L6TT37IY.js} +1 -1
  44. package/dist/{chunk-IGWZCCLO.js → chunk-LAV6WGPA.js} +7 -7
  45. package/dist/{chunk-CHWO3UN6.js → chunk-LX3VVPMN.js} +2 -2
  46. package/dist/{chunk-6TSA2KDM.js → chunk-MIBZTWN4.js} +1 -1
  47. package/dist/{chunk-ENQL7NCM.js → chunk-O27US3U4.js} +3 -3
  48. package/dist/{chunk-DRLB5STV.js → chunk-P3REWAFF.js} +2 -2
  49. package/dist/{chunk-FFF36PQA.js → chunk-PEZCMM6X.js} +2 -2
  50. package/dist/{chunk-PAZUQZYV.js → chunk-QNC5C6DU.js} +1 -1
  51. package/dist/{chunk-FERBBWDU.js → chunk-QNQJ3WAL.js} +1 -1
  52. package/dist/{chunk-23KZNTIV.js → chunk-R6BVKVII.js} +1 -1
  53. package/dist/{chunk-EWUI4PU6.js → chunk-SH4GCZVF.js} +1 -1
  54. package/dist/{chunk-JYB7NKO6.js → chunk-SXOYBUM7.js} +3 -3
  55. package/dist/{chunk-SXV67HVP.js → chunk-TC26HGZB.js} +84 -65
  56. package/dist/{chunk-YX55Y7UO.js → chunk-UDAEVABF.js} +9 -9
  57. package/dist/{chunk-C47XJXSK.js → chunk-UWROQP7K.js} +9 -9
  58. package/dist/{chunk-TY76XMMP.js → chunk-XTBM64YY.js} +1 -1
  59. package/dist/{chunk-GNQF4NZW.js → chunk-XZEU47V2.js} +1 -1
  60. package/dist/{chunk-2HE5ZOXK.js → chunk-YB4QYTVZ.js} +1 -1
  61. package/dist/{chunk-63O3AR5U.js → chunk-Z3QXVEZM.js} +12 -4
  62. package/dist/{clean-DPW2FTMM.js → clean-CU7GAMS4.js} +14 -14
  63. package/dist/cli.js +50 -50
  64. package/dist/{cloud-OAYSRXAJ.js → cloud-QT372KIW.js} +4 -4
  65. package/dist/{cloudrun-NM2ZMAJV.js → cloudrun-3LJRT5XM.js} +3 -3
  66. package/dist/{compare-CZC6ROYF.js → compare-IOPOTPI2.js} +24 -24
  67. package/dist/{compiler-3MFRD377.js → compiler-66K2RT7V.js} +2 -2
  68. package/dist/{component-6D5RBOWZ.js → component-URUXOWQL.js} +3 -3
  69. package/dist/{compositions-5KCUVODZ.js → compositions-GT4Z5OLP.js} +10 -10
  70. package/dist/{delete-ZGLELTUJ.js → delete-COWZD2Z3.js} +2 -2
  71. package/dist/{dist-XSSXGBRH.js → dist-HJS3UTNS.js} +2 -2
  72. package/dist/{doctor-CICSVC7I.js → doctor-WKGV26CY.js} +9 -9
  73. package/dist/{events-V3O6Q5ZH.js → events-BMKJDGYG.js} +7 -7
  74. package/dist/{events-Y4NBIJBP.js → events-TR7DJB73.js} +8 -8
  75. package/dist/{feedback-EA3K6QXT.js → feedback-TFJPY3BO.js} +9 -9
  76. package/dist/{figma-WOOHCXDA.js → figma-YGJ6Z7LR.js} +3 -3
  77. package/dist/fontLocalizeCli.js +7 -7
  78. package/dist/{get-64SDPINM.js → get-AYASBZBE.js} +2 -2
  79. package/dist/{gpuPolicy-TFCLAD64.js → gpuPolicy-H6MUFZ7D.js} +5 -5
  80. package/dist/{grade-compare-NXAFWDBR.js → grade-compare-2T2NKG27.js} +24 -24
  81. package/dist/{gsapParser-KVMPC2SC.js → gsapParser-ZGBBDA54.js} +30 -12
  82. package/dist/{help-6H4ICA27.js → help-AH4GQKJV.js} +1 -1
  83. package/dist/{history-TPRRROOR.js → history-DG67TNAR.js} +14 -14
  84. package/dist/hyperframe-runtime.js +33 -33
  85. package/dist/hyperframe.manifest.json +1 -1
  86. package/dist/hyperframe.runtime.iife.js +33 -33
  87. package/dist/hyperframes-player.global.js +1 -1
  88. package/dist/{info-DDXWWAM3.js → info-EEH52AYK.js} +10 -10
  89. package/dist/{init-KULZFAS7.js → init-VONKWUCG.js} +21 -21
  90. package/dist/{inspect-VEJH72DJ.js → inspect-IQM3SHDV.js} +25 -25
  91. package/dist/{installer-TBL3PE2J.js → installer-PA5MGVDO.js} +4 -4
  92. package/dist/{keyframes-W6KIRZ4O.js → keyframes-6HCXBPLQ.js} +11 -11
  93. package/dist/{lambda-JJXODPS5.js → lambda-YIHWNJEH.js} +4 -4
  94. package/dist/{layout-KVG7PJ3F.js → layout-YLB6OPZY.js} +25 -25
  95. package/dist/{lint-GQ5IVVCN.js → lint-2EFYARRR.js} +11 -11
  96. package/dist/{list-QZ7LV6HF.js → list-QIHEPPHZ.js} +2 -2
  97. package/dist/{login-526R3KCB.js → login-UZUODUQC.js} +4 -4
  98. package/dist/{media-treatment-H7LGSO3I.js → media-treatment-FG4RMJXK.js} +11 -11
  99. package/dist/{models-WOEP555T.js → models-SUK4QOJ5.js} +6 -6
  100. package/dist/{motionShot-235LNUY7.js → motionShot-BEHZNNNU.js} +10 -10
  101. package/dist/{normalize-audio-GTAESDG6.js → normalize-audio-H3YZQLBO.js} +10 -10
  102. package/dist/{pipeline-NBHOEZPA.js → pipeline-5LVBTW62.js} +5 -5
  103. package/dist/{play-SBTJLOWX.js → play-CRJFW3QL.js} +19 -19
  104. package/dist/{preflight-KQCXRC6W.js → preflight-3MQ7JMHN.js} +6 -6
  105. package/dist/{present-TXULFA2J.js → present-NQBKJXIK.js} +15 -15
  106. package/dist/{preview-E2U4ER7H.js → preview-FWHELX4C.js} +16 -16
  107. package/dist/{producer-DR3TOPSC.js → producer-LKUMV4PJ.js} +1 -1
  108. package/dist/{projectConfig-QBYFCJYE.js → projectConfig-LKX4GGB2.js} +6 -6
  109. package/dist/{publication-TWGRIP5F.js → publication-AFF2GNOK.js} +2 -2
  110. package/dist/{publish-JOUHOKGX.js → publish-OIXKASHL.js} +7 -7
  111. package/dist/{remove-background-GQZIZBHM.js → remove-background-GEIGOOB6.js} +6 -6
  112. package/dist/{render-UVGS7PLJ.js → render-CRILOZHZ.js} +20 -20
  113. package/dist/{render-2LC2DUR3.js → render-J3OXL3L3.js} +11 -11
  114. package/dist/{render-JR3YIYZ4.js → render-QVLJLHQ7.js} +3 -3
  115. package/dist/{render-batch-MYH6ZGO3.js → render-batch-3JQIYKPW.js} +3 -3
  116. package/dist/{renderCancellation-EIBZHTFW.js → renderCancellation-XHKRCKT5.js} +5 -5
  117. package/dist/{resolver-4Z5YISAU.js → resolver-BT3HKPZI.js} +4 -4
  118. package/dist/{sherpa-UX3MQXO5.js → sherpa-QGPYYPAD.js} +6 -6
  119. package/dist/{skills-GXETMIED.js → skills-CZJLCXUA.js} +10 -10
  120. package/dist/{skillsUpdateCheck-XS7OE6FX.js → skillsUpdateCheck-OXJP2M7T.js} +3 -3
  121. package/dist/{snapshot-OAHQ3EVJ.js → snapshot-QZJWBKZN.js} +25 -25
  122. package/dist/{src-AZ5YCYQP.js → src-J5MXEA24.js} +6 -6
  123. package/dist/{src-X6ACPJHG.js → src-SMYS3ES6.js} +4 -4
  124. package/dist/{staticProjectServer-P4QSLLF6.js → staticProjectServer-6PXSZKJQ.js} +13 -13
  125. package/dist/{status-KDRWJBPW.js → status-SN6EI5XW.js} +5 -5
  126. package/dist/studio/assets/{hyperframes-player-mGYvPVpw.js → hyperframes-player-5fcgSstJ.js} +1 -1
  127. package/dist/studio/assets/{index-DYNaXPVf.js → index-C5qKdpgl.js} +178 -176
  128. package/dist/studio/assets/{index-BWHt0-ir.js → index-XJSawwYe.js} +1 -1
  129. package/dist/studio/assets/{index-Dr3hNpvS.js → index-tg2LXUeu.js} +1 -1
  130. package/dist/studio/index.d.ts +28 -19
  131. package/dist/studio/index.html +1 -1
  132. package/dist/studio/index.js +77 -64
  133. package/dist/studio/index.js.map +1 -1
  134. package/dist/{studio-api-SYQOPCMB.js → studio-api-NDOUNA7Q.js} +7 -7
  135. package/dist/{studioServer-ANSX6DY2.js → studioServer-KOZN6A7J.js} +37 -37
  136. package/dist/{system-B6UYANYL.js → system-SQ6LYDVJ.js} +5 -5
  137. package/dist/{telemetry-AZEW2DZP.js → telemetry-JK7FY3NA.js} +8 -8
  138. package/dist/{timeline-VIKY65W6.js → timeline-I6XEIRSM.js} +14 -14
  139. package/dist/{tokens-SSGCAC7E.js → tokens-AMSWSL2S.js} +2 -2
  140. package/dist/{transcribe-O33POKJY.js → transcribe-XGX6PHHX.js} +11 -11
  141. package/dist/{transcribe-PF6BUHHQ.js → transcribe-YTDPY4NU.js} +6 -6
  142. package/dist/{updateCheck-Y4SUY6VE.js → updateCheck-MW2L5VMR.js} +2 -2
  143. package/dist/{upgrade-EGIS5OCB.js → upgrade-ERWPVZRE.js} +2 -2
  144. package/dist/{urlDownloader-UBY27GFW.js → urlDownloader-QNEGOWQO.js} +4 -4
  145. package/dist/{validate-FE74RMPD.js → validate-HSIBDBTS.js} +15 -15
  146. package/dist/{video-DODRESEY.js → video-GMTTFD2W.js} +5 -5
  147. package/package.json +1 -1
@@ -7,29 +7,29 @@ var __dirname = __hf_dirname(__filename);
7
7
  import {
8
8
  RegistryCompatibilityError,
9
9
  gateRegistryItemsCompatibility
10
- } from "./chunk-6TSA2KDM.js";
10
+ } from "./chunk-MIBZTWN4.js";
11
11
  import {
12
12
  DEFAULT_PROJECT_CONFIG,
13
13
  createProjectConfig,
14
14
  loadProjectConfig,
15
15
  projectConfigPath,
16
16
  recordProjectRegistryItems
17
- } from "./chunk-FERBBWDU.js";
17
+ } from "./chunk-QNQJ3WAL.js";
18
18
  import {
19
19
  resolveItemWithDependencies,
20
20
  resolveItemsByTag
21
- } from "./chunk-VLB4NGRR.js";
21
+ } from "./chunk-D5DP3BQJ.js";
22
22
  import {
23
23
  InvalidVariableValuesError,
24
24
  prepareItem,
25
25
  publishItem
26
- } from "./chunk-FFF36PQA.js";
26
+ } from "./chunk-PEZCMM6X.js";
27
27
  import {
28
28
  DEFAULT_REGISTRY_URL
29
- } from "./chunk-PAZUQZYV.js";
29
+ } from "./chunk-QNC5C6DU.js";
30
30
  import {
31
31
  trackRegistryItemAdded
32
- } from "./chunk-JYB7NKO6.js";
32
+ } from "./chunk-SXOYBUM7.js";
33
33
  import {
34
34
  c
35
35
  } from "./chunk-ZTZA4UWZ.js";
@@ -41,7 +41,7 @@ import {
41
41
  } from "./chunk-PBN6GBJE.js";
42
42
  import {
43
43
  ITEM_TYPE_DIRS
44
- } from "./chunk-AKZD7VWZ.js";
44
+ } from "./chunk-2NC676XZ.js";
45
45
  import {
46
46
  isProjectRootMissing,
47
47
  realpath
@@ -6,10 +6,10 @@ var __filename = __hf_fileURLToPath(import.meta.url);
6
6
  var __dirname = __hf_dirname(__filename);
7
7
  import {
8
8
  getMimeType
9
- } from "./chunk-SXV67HVP.js";
9
+ } from "./chunk-TC26HGZB.js";
10
10
  import {
11
11
  injectTagsAtHeadStart
12
- } from "./chunk-WWL6YGYK.js";
12
+ } from "./chunk-L6TT37IY.js";
13
13
 
14
14
  // src/utils/compositionServer.ts
15
15
  import { createHash } from "crypto";
@@ -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-DRLB5STV.js";
9
+ } from "./chunk-P3REWAFF.js";
10
10
 
11
11
  // src/registry/compatibility.ts
12
12
  import { compareVersions } from "compare-versions";
@@ -12,7 +12,7 @@ import {
12
12
  } from "./chunk-ZTZA4UWZ.js";
13
13
  import {
14
14
  getSystemMeta
15
- } from "./chunk-2E4A277E.js";
15
+ } from "./chunk-BPZSP7ZJ.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-AKZD7VWZ.js";
26
+ } from "./chunk-2NC676XZ.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-DRLB5STV.js";
40
+ } from "./chunk-P3REWAFF.js";
41
41
 
42
42
  // src/telemetry/transport.ts
43
43
  import { spawn } from "child_process";
@@ -6,8 +6,8 @@ var __filename = __hf_fileURLToPath(import.meta.url);
6
6
  var __dirname = __hf_dirname(__filename);
7
7
 
8
8
  // src/version.ts
9
- var VERSION = true ? "0.8.116" : "0.0.0-dev";
10
- var PRODUCER_VERSION = true ? "0.8.116" : "0.0.0-dev";
9
+ var VERSION = true ? "0.8.117" : "0.0.0-dev";
10
+ var PRODUCER_VERSION = true ? "0.8.117" : "0.0.0-dev";
11
11
 
12
12
  export {
13
13
  VERSION,
@@ -8,14 +8,14 @@ import {
8
8
  DEFAULT_REGISTRY_URL,
9
9
  fetchItemFile,
10
10
  validRegistryItem
11
- } from "./chunk-PAZUQZYV.js";
11
+ } from "./chunk-QNC5C6DU.js";
12
12
  import {
13
13
  publishRegistryFile,
14
14
  registryTargetPath
15
15
  } from "./chunk-GMECXFAN.js";
16
16
  import {
17
17
  validateVariables
18
- } from "./chunk-AKZD7VWZ.js";
18
+ } from "./chunk-2NC676XZ.js";
19
19
  import {
20
20
  realProjectRoot
21
21
  } from "./chunk-OFQWTKPW.js";
@@ -27,7 +27,7 @@ import {
27
27
  } from "./chunk-GMECXFAN.js";
28
28
  import {
29
29
  ITEM_TYPE_DIRS
30
- } from "./chunk-AKZD7VWZ.js";
30
+ } from "./chunk-2NC676XZ.js";
31
31
  import {
32
32
  realProjectRoot
33
33
  } from "./chunk-OFQWTKPW.js";
@@ -12,7 +12,7 @@ import {
12
12
  } from "./chunk-HVW7ABXD.js";
13
13
  import {
14
14
  DEFAULT_REGISTRY_URL
15
- } from "./chunk-PAZUQZYV.js";
15
+ } from "./chunk-QNC5C6DU.js";
16
16
 
17
17
  // src/utils/projectConfig.ts
18
18
  import { readFileSync, writeFileSync } from "fs";
@@ -8,7 +8,7 @@ import {
8
8
  MAX_AUDIO_GAIN_DB,
9
9
  formatAudioGain,
10
10
  isAudibleVideoElement
11
- } from "./chunk-WWL6YGYK.js";
11
+ } from "./chunk-L6TT37IY.js";
12
12
  import {
13
13
  findFfBinary
14
14
  } from "./chunk-PJ3HDUCY.js";
@@ -6,7 +6,7 @@ var __filename = __hf_fileURLToPath(import.meta.url);
6
6
  var __dirname = __hf_dirname(__filename);
7
7
  import {
8
8
  updateNoticesSuppressed
9
- } from "./chunk-EWR3SLQV.js";
9
+ } from "./chunk-2LT5WBQR.js";
10
10
  import {
11
11
  hostAnswers
12
12
  } from "./chunk-K4WIOZFP.js";
@@ -8,16 +8,16 @@ import {
8
8
  flush,
9
9
  shouldTrack,
10
10
  trackEvent
11
- } from "./chunk-ENQL7NCM.js";
11
+ } from "./chunk-O27US3U4.js";
12
12
  import {
13
13
  getPowerState
14
- } from "./chunk-2E4A277E.js";
14
+ } from "./chunk-BPZSP7ZJ.js";
15
15
  import {
16
16
  CliRuntimeError
17
17
  } from "./chunk-PBN6GBJE.js";
18
18
  import {
19
19
  redactTelemetryString
20
- } from "./chunk-AKZD7VWZ.js";
20
+ } from "./chunk-2NC676XZ.js";
21
21
  import {
22
22
  readConfig
23
23
  } from "./chunk-XUXGIA7H.js";
@@ -20,7 +20,7 @@ import {
20
20
  splitElementInHtml,
21
21
  unwrapElementsFromHtml,
22
22
  wrapElementsInHtml
23
- } from "./chunk-34AE4KPB.js";
23
+ } from "./chunk-6QJZ5ELI.js";
24
24
  import {
25
25
  atomicTempPath,
26
26
  createFileAtomically,
@@ -33,7 +33,7 @@ import {
33
33
  measureAudio,
34
34
  requiredFfmpeg,
35
35
  resolveLocalAudioPath
36
- } from "./chunk-23KZNTIV.js";
36
+ } from "./chunk-R6BVKVII.js";
37
37
  import {
38
38
  PROXY_PARAMS_VERSION,
39
39
  PROXY_PENDING_RETRY_AFTER_SECONDS,
@@ -59,7 +59,7 @@ import {
59
59
  shouldPrewarmProxy,
60
60
  waitForProxy,
61
61
  walkDir
62
- } from "./chunk-TY76XMMP.js";
62
+ } from "./chunk-XTBM64YY.js";
63
63
  import {
64
64
  findTimelineScript,
65
65
  parseGsapScriptAcorn
@@ -78,7 +78,7 @@ import {
78
78
  formatRenderOutputTimestamp,
79
79
  parseFps,
80
80
  sameInstant
81
- } from "./chunk-AKZD7VWZ.js";
81
+ } from "./chunk-2NC676XZ.js";
82
82
  import {
83
83
  MagicString,
84
84
  VALID_CANVAS_RESOLUTIONS,
@@ -87,7 +87,7 @@ import {
87
87
  import {
88
88
  addScenePartsManifest,
89
89
  ensureHfIds
90
- } from "./chunk-MZPMAU25.js";
90
+ } from "./chunk-7CXLMMUA.js";
91
91
  import {
92
92
  findStartTags,
93
93
  injectScriptsIntoHtml,
@@ -97,7 +97,7 @@ import {
97
97
  resolveRateSpec,
98
98
  sourceTimeAt,
99
99
  stripEmbeddedRuntimeScripts
100
- } from "./chunk-WWL6YGYK.js";
100
+ } from "./chunk-L6TT37IY.js";
101
101
  import {
102
102
  ProjectRootMissingError,
103
103
  folderGone,
@@ -2185,9 +2185,11 @@ var PROP_TO_GROUP2 = /* @__PURE__ */ new Map();
2185
2185
  for (const [group, props] of Object.entries(PROPERTY_GROUPS2)) {
2186
2186
  for (const p of props) PROP_TO_GROUP2.set(p, group);
2187
2187
  }
2188
+ function writesProperty(animation, property) {
2189
+ return property in animation.properties || !!animation.fromProperties && property in animation.fromProperties || !!animation.keyframes?.keyframes.some((k) => property in k.properties);
2190
+ }
2188
2191
  function isXYPositionWrite(a) {
2189
- const xy = (props) => !!props && ("x" in props || "y" in props);
2190
- return a.propertyGroup === "position" && (xy(a.properties) || xy(a.fromProperties) || !!a.keyframes?.keyframes.some((k) => xy(k.properties)));
2192
+ return a.propertyGroup === "position" && (writesProperty(a, "x") || writesProperty(a, "y"));
2191
2193
  }
2192
2194
  function classifyPropertyGroup2(prop) {
2193
2195
  return PROP_TO_GROUP2.get(prop) ?? "other";
@@ -2202,6 +2204,30 @@ function classifyTweenPropertyGroup(properties) {
2202
2204
  if (groups.size === 1) return groups.values().next().value;
2203
2205
  return void 0;
2204
2206
  }
2207
+ function knownStart(animation) {
2208
+ if (animation.resolvedStart !== void 0) return animation.resolvedStart;
2209
+ return typeof animation.position === "number" ? animation.position : void 0;
2210
+ }
2211
+ function positionHoldForAnimation(animation, animations) {
2212
+ if (!animation.keyframes) return null;
2213
+ const start = knownStart(animation) ?? 0;
2214
+ if (!(start > 1e-3)) return null;
2215
+ const first = [...animation.keyframes.keyframes].sort(
2216
+ (left, right) => left.percentage - right.percentage
2217
+ )[0];
2218
+ if (!first) return null;
2219
+ const earlier = animations.filter((other) => {
2220
+ const otherStart = knownStart(other);
2221
+ return other !== animation && !other.global && other.targetSelector === animation.targetSelector && otherStart !== void 0 && otherStart < start - 1e-3;
2222
+ });
2223
+ const position = {};
2224
+ for (const [property, value] of Object.entries(first.properties)) {
2225
+ if (classifyPropertyGroup2(property) !== "position" || typeof value !== "number") continue;
2226
+ if (earlier.some((other) => writesProperty(other, property))) continue;
2227
+ position[property] = value;
2228
+ }
2229
+ return Object.keys(position).length > 0 ? position : null;
2230
+ }
2205
2231
  function mergePercentageKeyframes(keyframes) {
2206
2232
  const byPercentage = /* @__PURE__ */ new Map();
2207
2233
  for (const keyframe of keyframes) {
@@ -4827,7 +4853,8 @@ function insertInheritedStateSetInScript(script, selector, position, properties)
4827
4853
  const tlDecl = findTimelineDeclarationStatement(parsed.ast, parsed.timelineVar);
4828
4854
  const firstLocated = parsed.located[0];
4829
4855
  if (tlDecl) {
4830
- ms.appendLeft(tlDecl.end, "\n" + code);
4856
+ const ownLineEnd = script[tlDecl.end] === "\n" ? "" : "\n";
4857
+ ms.appendLeft(tlDecl.end, "\n" + code + ownLineEnd);
4831
4858
  } else if (firstLocated) {
4832
4859
  const firstCall = firstLocated.call;
4833
4860
  const exprStmt = findEnclosingExpressionStatement(firstCall.ancestors);
@@ -4849,38 +4876,15 @@ function removeStudioHoldSets(script, parsed) {
4849
4876
  for (const hold of staleHolds) removeCallFromMagicString(ms, hold.call, script);
4850
4877
  return ms.toString();
4851
4878
  }
4852
- function animationStart(animation) {
4853
- if (animation.resolvedStart !== void 0) return animation.resolvedStart;
4854
- return typeof animation.position === "number" ? animation.position : 0;
4855
- }
4856
- function positionProperties(properties) {
4857
- const position = {};
4858
- for (const [property, value] of Object.entries(properties)) {
4859
- if (classifyPropertyGroup2(property) === "position" && typeof value === "number") {
4860
- position[property] = value;
4861
- }
4862
- }
4863
- return position;
4864
- }
4865
- function positionHoldForAnimation(animation) {
4866
- if (!animation.keyframes) return null;
4867
- if (!(animationStart(animation) > 1e-3)) return null;
4868
- const first = [...animation.keyframes.keyframes].sort(
4869
- (left, right) => left.percentage - right.percentage
4870
- )[0];
4871
- if (!first) return null;
4872
- const position = positionProperties(first.properties);
4873
- return Object.keys(position).length > 0 ? position : null;
4874
- }
4875
4879
  function syncPositionHoldsBeforeKeyframes(script) {
4876
4880
  const parsed = parseGsapScriptAcornForWrite(script);
4877
4881
  if (!parsed) return script;
4878
4882
  let result = removeStudioHoldSets(script, parsed);
4879
4883
  const current = parseGsapScriptAcornForWrite(result);
4880
4884
  if (!current) return result;
4881
- for (const entry of current.located) {
4882
- const animation = entry.animation;
4883
- const position = positionHoldForAnimation(animation);
4885
+ const animations = current.located.map((entry) => entry.animation);
4886
+ for (const animation of animations) {
4887
+ const position = positionHoldForAnimation(animation, animations);
4884
4888
  if (!position) continue;
4885
4889
  result = insertInheritedStateSetInScript(result, animation.targetSelector, 0, {
4886
4890
  ...position,
@@ -5220,23 +5224,23 @@ import { createHash as createHash32 } from "crypto";
5220
5224
  import { existsSync as existsSync7, readFileSync as readFileSync10, statSync as statSync7 } from "fs";
5221
5225
  import { join as join12, resolve as resolve52 } from "path";
5222
5226
  import { execFile } from "child_process";
5223
- import { existsSync as existsSync8, readFileSync as readFileSync11, statSync as statSync8 } from "fs";
5227
+ import { closeSync as closeSync32, openSync as openSync32, readFileSync as readFileSync11, rmSync as rmSync5, statSync as statSync8 } from "fs";
5224
5228
  import { dirname as dirname52, join as join13, relative as relative4, sep as sep22 } from "path";
5225
5229
  import { createHash as createHash5, randomBytes } from "crypto";
5226
- import { existsSync as existsSync9 } from "fs";
5227
- import { existsSync as existsSync10, readFileSync as readFileSync12, statSync as statSync9 } from "fs";
5230
+ import { existsSync as existsSync8 } from "fs";
5231
+ import { existsSync as existsSync9, readFileSync as readFileSync12, statSync as statSync9 } from "fs";
5228
5232
  import { join as join14, resolve as resolve6 } from "path";
5229
5233
  import { execFile as execFile2, spawn as spawn2 } from "child_process";
5230
5234
  import { promisify } from "util";
5231
- import { closeSync as closeSync32, constants as constants3, fstatSync as fstatSync3, openSync as openSync32, readSync } from "fs";
5235
+ import { closeSync as closeSync4, constants as constants3, fstatSync as fstatSync3, openSync as openSync4, readSync } from "fs";
5232
5236
  import { streamSSE as streamSSE2 } from "hono/streaming";
5233
- import { existsSync as existsSync11 } from "fs";
5237
+ import { existsSync as existsSync10 } from "fs";
5234
5238
  import { basename as basename22, dirname as dirname6, extname as extname2, join as join15, posix } from "path";
5235
- import { existsSync as existsSync12, readFileSync as readFileSync13 } from "fs";
5239
+ import { existsSync as existsSync11, readFileSync as readFileSync13 } from "fs";
5236
5240
  import { homedir as homedir2 } from "os";
5237
5241
  import { join as join16 } from "path";
5238
5242
  import { createHash as createHash6 } from "crypto";
5239
- import { readFileSync as readFileSync14, readdirSync as readdirSync5, rmSync as rmSync5 } from "fs";
5243
+ import { readFileSync as readFileSync14, readdirSync as readdirSync5, rmSync as rmSync6 } from "fs";
5240
5244
  import { join as join17 } from "path";
5241
5245
  async function filterCompositionFiles(projectDir, files) {
5242
5246
  const htmlFiles = files.filter((f) => f.endsWith(".html") && !isInHiddenOrVendorDir(f));
@@ -5916,7 +5920,7 @@ function requestSubPath(url, route) {
5916
5920
  return decodeURIComponent(segments.slice(start + routeSegments.length).join("/"));
5917
5921
  }
5918
5922
  async function loadGsapParser() {
5919
- return import("./gsapParser-KVMPC2SC.js");
5923
+ return import("./gsapParser-ZGBBDA54.js");
5920
5924
  }
5921
5925
  function isDanglingSymlinkInProject(projectDir, lexicalPath) {
5922
5926
  if (!isSafePath(projectDir, dirname32(lexicalPath))) return false;
@@ -6562,7 +6566,7 @@ async function prepareGsapMutationScript(c, res, firstMutation) {
6562
6566
  let block = extractGsapScriptBlock(html);
6563
6567
  if (!block && (firstMutation.type === "add" || firstMutation.type === "add-with-keyframes")) {
6564
6568
  const compId = html.match(/data-composition-id="([^"]+)"/)?.[1] ?? "main";
6565
- const { GSAP_CDN } = await import("./dist-XSSXGBRH.js");
6569
+ const { GSAP_CDN } = await import("./dist-HJS3UTNS.js");
6566
6570
  const bootstrap = [
6567
6571
  `<script src="${GSAP_CDN}"></script>`,
6568
6572
  "<script>",
@@ -9825,7 +9829,7 @@ function freezeFrameMediaTime(input) {
9825
9829
  return input.mediaStart + sourceTimeAt(rate, Math.max(0, input.playhead - input.clipStart));
9826
9830
  }
9827
9831
  function freezeExtractArgs(src, mediaTime, output) {
9828
- return ["-n", "-ss", String(round3(mediaTime)), "-i", src, "-frames:v", "1", output];
9832
+ return ["-y", "-ss", String(round3(mediaTime)), "-i", src, "-frames:v", "1", output];
9829
9833
  }
9830
9834
  var randomStillToken = () => randomBytes(4).toString("hex");
9831
9835
  function freezeStillFileName(clipId, playhead, token = randomStillToken()) {
@@ -9996,6 +10000,15 @@ function readExpected(absPath, expectedVersion) {
9996
10000
  }
9997
10001
  return fileContentVersion(content) === expectedVersion ? { content } : { error: "file conflict", status: 409 };
9998
10002
  }
10003
+ function claimStillNameBeforeExtracting(path) {
10004
+ try {
10005
+ closeSync32(openSync32(path, "wx"));
10006
+ return true;
10007
+ } catch (error) {
10008
+ if (error.code === "EEXIST") return false;
10009
+ throw error;
10010
+ }
10011
+ }
9999
10012
  async function extractStill(projectDir, absPath, source, playhead, tools) {
10000
10013
  const fileDir = dirname52(absPath);
10001
10014
  const mediaPath = pinWithinProject(projectDir, relative4(projectDir, join13(fileDir, source.src)));
@@ -10007,17 +10020,18 @@ async function extractStill(projectDir, absPath, source, playhead, tools) {
10007
10020
  if (!imagePath || dirname52(imagePath) !== freezeDir) {
10008
10021
  return { error: `forbidden freeze path: ${fileName}`, status: 403 };
10009
10022
  }
10010
- if (existsSync8(imagePath))
10023
+ if (!claimStillNameBeforeExtracting(imagePath))
10011
10024
  return { error: `freeze still already exists: ${fileName}`, status: 409 };
10012
10025
  const extracted = await tools.extract(freezeExtractArgs(mediaPath, source.mediaTime, imagePath));
10013
- if (!extracted.ok) {
10014
- return {
10015
- error: `Could not extract the frame: ${extracted.error ?? "ffmpeg failed"}`,
10016
- status: 500
10017
- };
10026
+ const partialOrNoFrame = !extracted.ok || statSync8(imagePath).size === 0;
10027
+ if (partialOrNoFrame) {
10028
+ rmSync5(imagePath, { force: true });
10029
+ const reason = extracted.ok ? "no frame at this time" : extracted.error ?? "ffmpeg failed";
10030
+ return { error: `Could not extract the frame: ${reason}`, status: 500 };
10018
10031
  }
10019
10032
  const depth = relative4(projectDir, fileDir).split(sep22).filter(Boolean).length;
10020
- return { imageSrc: `${"../".repeat(depth)}${FREEZE_DIR.join("/")}/${fileName}` };
10033
+ const stillPath = `${FREEZE_DIR.join("/")}/${fileName}`;
10034
+ return { imageSrc: `${"../".repeat(depth)}${stillPath}`, stillPath, imagePath };
10021
10035
  }
10022
10036
  function writeFolded(projectDir, absPath, path, before, after, options) {
10023
10037
  if (readFileSync11(absPath, "utf-8") !== before) {
@@ -10051,17 +10065,21 @@ function registerFreezeFrameRoutes(api, adapter, extract = ffmpegExtractor, stil
10051
10065
  stillToken
10052
10066
  });
10053
10067
  if ("error" in still) return c.json({ error: still.error }, still.status);
10054
- const { imageSrc } = still;
10068
+ const { imageSrc, stillPath, imagePath } = still;
10055
10069
  const folded = applyFreezeFrameToHtml(before, {
10056
10070
  target: body.target,
10057
10071
  playhead: body.playhead,
10058
10072
  imageSrc
10059
10073
  });
10060
- if (!folded) return c.json({ error: "Freeze target was not found in the file" }, 400);
10074
+ const failAndRemoveStill = (error, status) => {
10075
+ rmSync5(imagePath, { force: true });
10076
+ return c.json({ error }, status);
10077
+ };
10078
+ if (!folded) return failAndRemoveStill("Freeze target was not found in the file", 400);
10061
10079
  const written = writeFolded(project.dir, absPath, body.path, before, folded.html, {
10062
10080
  token: body.transactionToken ?? c.req.header("X-Hyperframes-Write-Token")
10063
10081
  });
10064
- if ("error" in written) return c.json({ error: written.error }, written.status);
10082
+ if ("error" in written) return failAndRemoveStill(written.error, written.status);
10065
10083
  const { version, writeToken, backupPath } = written;
10066
10084
  return c.json({
10067
10085
  ok: true,
@@ -10072,7 +10090,8 @@ function registerFreezeFrameRoutes(api, adapter, extract = ffmpegExtractor, stil
10072
10090
  writeToken,
10073
10091
  backupPath,
10074
10092
  freezeId: folded.freezeId,
10075
- imageSrc
10093
+ imageSrc,
10094
+ stillPath
10076
10095
  });
10077
10096
  });
10078
10097
  }
@@ -10126,7 +10145,7 @@ function registerLoudnessRoutes(api, adapter, measure = defaultMeasure) {
10126
10145
  } catch (error) {
10127
10146
  return c.json({ error: error instanceof Error ? error.message : String(error) }, 400);
10128
10147
  }
10129
- if (!existsSync9(file)) return c.json({ error: "file not found" }, 404);
10148
+ if (!existsSync8(file)) return c.json({ error: "file not found" }, 404);
10130
10149
  try {
10131
10150
  const measurement = await measure(file, request.window);
10132
10151
  const plan = absoluteLoudnessPlan(
@@ -10247,7 +10266,7 @@ function decodeOnce(cachePath, mediaPath, decode) {
10247
10266
  }
10248
10267
  function readCachedBins(cacheDir, cachePath) {
10249
10268
  try {
10250
- if (!isWaveformCacheDirectory(cacheDir) || !existsSync10(cachePath)) return null;
10269
+ if (!isWaveformCacheDirectory(cacheDir) || !existsSync9(cachePath)) return null;
10251
10270
  const parsed = JSON.parse(readFileSync12(cachePath, "utf-8"));
10252
10271
  return Array.isArray(parsed) && parsed.every((n) => typeof n === "number") ? parsed : null;
10253
10272
  } catch {
@@ -10380,7 +10399,7 @@ function registerFontRoutes(api) {
10380
10399
  if (!located) return c.json({ error: "font not found" }, 404);
10381
10400
  let fd;
10382
10401
  try {
10383
- fd = openSync32(located.path, constants3.O_RDONLY | constants3.O_NOFOLLOW);
10402
+ fd = openSync4(located.path, constants3.O_RDONLY | constants3.O_NOFOLLOW);
10384
10403
  } catch {
10385
10404
  return c.json({ error: "font file not accessible" }, 404);
10386
10405
  }
@@ -10402,7 +10421,7 @@ function registerFontRoutes(api) {
10402
10421
  } catch {
10403
10422
  return c.json({ error: "failed to read font file" }, 500);
10404
10423
  } finally {
10405
- closeSync32(fd);
10424
+ closeSync4(fd);
10406
10425
  }
10407
10426
  });
10408
10427
  }
@@ -10567,7 +10586,7 @@ function uniqueAssetPath(projectDir, assetPath, taken) {
10567
10586
  const ext = extname2(assetPath);
10568
10587
  const withoutExt = assetPath.slice(0, -ext.length);
10569
10588
  let candidate = assetPath;
10570
- for (let index = 2; taken.has(candidate) || existsSync11(join15(projectDir, candidate)); index++) {
10589
+ for (let index = 2; taken.has(candidate) || existsSync10(join15(projectDir, candidate)); index++) {
10571
10590
  candidate = `${withoutExt}-${index}${ext}`;
10572
10591
  }
10573
10592
  return candidate;
@@ -10628,7 +10647,7 @@ function registerMediaRoutes(api, adapter, options = {}) {
10628
10647
  }
10629
10648
  const filePath = resolveWithinProject(project.dir, assetPath);
10630
10649
  if (!filePath) return c.json({ error: "forbidden" }, 403);
10631
- if (!existsSync11(filePath)) return c.json({ error: "media not found" }, 404);
10650
+ if (!existsSync10(filePath)) return c.json({ error: "media not found" }, 404);
10632
10651
  return c.json({ path: assetPath, metadata: await readMediaMetadata(filePath) });
10633
10652
  });
10634
10653
  api.post(
@@ -10650,7 +10669,7 @@ function registerMediaRoutes(api, adapter, options = {}) {
10650
10669
  }
10651
10670
  const inputPath = resolveWithinProject(project.dir, inputAssetPath);
10652
10671
  if (!inputPath) return c.json({ error: "forbidden" }, 403);
10653
- if (!existsSync11(inputPath)) return c.json({ error: "input media not found" }, 404);
10672
+ if (!existsSync10(inputPath)) return c.json({ error: "input media not found" }, 404);
10654
10673
  const inputIsVideo = isVideoPath(inputAssetPath);
10655
10674
  const inputIsImage = isImagePath(inputAssetPath);
10656
10675
  if (!inputIsVideo && !inputIsImage) {
@@ -10744,7 +10763,7 @@ function registerMediaRoutes(api, adapter, options = {}) {
10744
10763
  }
10745
10764
  function readGlobalAssets(home = homedir2()) {
10746
10765
  const manifestPath = join16(home, ".media", "manifest.jsonl");
10747
- if (!existsSync12(manifestPath)) return [];
10766
+ if (!existsSync11(manifestPath)) return [];
10748
10767
  const out = [];
10749
10768
  for (const line of readFileSync13(manifestPath, "utf8").split("\n")) {
10750
10769
  if (!line.trim()) continue;
@@ -11005,7 +11024,7 @@ ${key}`).digest("hex").slice(0, 32)}.html`);
11005
11024
  const file = fileFor(key);
11006
11025
  replaceFileAtomically(file, html, 420);
11007
11026
  for (const name of readdirSync5(dir)) {
11008
- if (join17(dir, name) !== file) rmSync5(join17(dir, name), { force: true });
11027
+ if (join17(dir, name) !== file) rmSync6(join17(dir, name), { force: true });
11009
11028
  }
11010
11029
  } catch {
11011
11030
  }
@@ -6,23 +6,23 @@ var __filename = __hf_fileURLToPath(import.meta.url);
6
6
  var __dirname = __hf_dirname(__filename);
7
7
  import {
8
8
  serveStaticProjectHtml
9
- } from "./chunk-CVE7OUZE.js";
9
+ } from "./chunk-BRWHMATR.js";
10
10
  import {
11
11
  AUDIT_SEEK_OPTIONS,
12
12
  installPageFunctionGuard,
13
13
  seekCompositionTimeline,
14
14
  waitForCompositionFonts
15
- } from "./chunk-TEYBS6T3.js";
15
+ } from "./chunk-7PWGR3MW.js";
16
16
  import {
17
17
  launchManagedBrowser,
18
18
  resolveManagedGpuMode
19
- } from "./chunk-WN62HDA7.js";
19
+ } from "./chunk-EH2XJW65.js";
20
20
  import {
21
21
  resolveDiagnosticNavigationTimeoutMs
22
- } from "./chunk-NCQV2NMY.js";
22
+ } from "./chunk-AWEJWZVO.js";
23
23
  import {
24
24
  resolveProject
25
- } from "./chunk-RTLYNXAC.js";
25
+ } from "./chunk-JQJPJ6VZ.js";
26
26
  import {
27
27
  c
28
28
  } from "./chunk-ZTZA4UWZ.js";
@@ -36,7 +36,7 @@ import {
36
36
  import {
37
37
  printDeprecationNotice,
38
38
  withMeta
39
- } from "./chunk-EWR3SLQV.js";
39
+ } from "./chunk-2LT5WBQR.js";
40
40
  import {
41
41
  normalizeErrorMessage
42
42
  } from "./chunk-KNU5COPB.js";
@@ -669,7 +669,7 @@ async function collectTweenBoundaries(page) {
669
669
  });
670
670
  }
671
671
  async function bundleProjectHtml(projectDir) {
672
- const { bundleToSingleHtml } = await import("./compiler-3MFRD377.js");
672
+ const { bundleToSingleHtml } = await import("./compiler-66K2RT7V.js");
673
673
  return bundleToSingleHtml(projectDir);
674
674
  }
675
675
  async function alignViewportToComposition(page, url) {
@@ -691,8 +691,8 @@ async function alignViewportToComposition(page, url) {
691
691
  async function runLayoutAudit(projectDir, opts) {
692
692
  const { ensureBrowser } = await import("./manager-CT3D67CG.js");
693
693
  const puppeteer = await import("puppeteer-core");
694
- const { buildChromeArgs } = await import("./src-X6ACPJHG.js");
695
- const { assertWebGpuAdapterAvailable, compositionRequiresWebGpu, resolveLocalBrowserGpuMode } = await import("./gpuPolicy-TFCLAD64.js");
694
+ const { buildChromeArgs } = await import("./src-SMYS3ES6.js");
695
+ const { assertWebGpuAdapterAvailable, compositionRequiresWebGpu, resolveLocalBrowserGpuMode } = await import("./gpuPolicy-H6MUFZ7D.js");
696
696
  const html = await bundleProjectHtml(projectDir);
697
697
  const server = await serveStaticProjectHtml(
698
698
  projectDir,