hyperframes 0.8.125 → 0.8.127

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 (158) hide show
  1. package/dist/{add-IFW36THF.js → add-7CE5XYK2.js} +16 -16
  2. package/dist/{animatedGifPrep-RWLNZGK4.js → animatedGifPrep-4VAIRX7D.js} +7 -7
  3. package/dist/{asset-WMPG6T2H.js → asset-22WQELZE.js} +2 -2
  4. package/dist/{assetCataloger-KJRYDRTK.js → assetCataloger-A2AITAHA.js} +3 -3
  5. package/dist/{auth-552SJTZY.js → auth-33GV2LO2.js} +2 -2
  6. package/dist/{autoUpdate-2EEU2WEN.js → autoUpdate-OIXGTNLS.js} +2 -2
  7. package/dist/{backgroundChecks-EO47KLYR.js → backgroundChecks-BVP36PXK.js} +3 -3
  8. package/dist/backgroundChecksWorker.js +3 -3
  9. package/dist/{batchRender-ZKBWCNPW.js → batchRender-URT4LT44.js} +4 -4
  10. package/dist/{beats-JSLKCIMO.js → beats-U34XHTAA.js} +13 -13
  11. package/dist/{benchmark-4OITC52U.js → benchmark-FNGERKUQ.js} +13 -13
  12. package/dist/{browser-7KKHZVZG.js → browser-35LEQMCO.js} +10 -10
  13. package/dist/{bundleWithLocalizedFonts-VYYJV4MC.js → bundleWithLocalizedFonts-4CGUDHCA.js} +2 -2
  14. package/dist/{capture-Q4HT2YI3.js → capture-GZKMVNKK.js} +2 -2
  15. package/dist/{capture-6OXDGVSK.js → capture-M2JJS4F2.js} +10 -10
  16. package/dist/{catalog-PZXB7JKY.js → catalog-OVTLU2MC.js} +16 -16
  17. package/dist/{check-O4VPFH7X.js → check-DBVGHGKO.js} +33 -33
  18. package/dist/{checkBrowser-FKXDR2O3.js → checkBrowser-2SQIUOXA.js} +32 -32
  19. package/dist/{chunk-NSY245QZ.js → chunk-4C656PVL.js} +1 -1
  20. package/dist/{chunk-EZ54IXGG.js → chunk-6252EFFW.js} +1 -1
  21. package/dist/{chunk-SD4TJSOZ.js → chunk-6ACXAUBT.js} +4 -4
  22. package/dist/{chunk-F7MXHGU3.js → chunk-7DPBFAYT.js} +20 -12
  23. package/dist/{chunk-GA46NF76.js → chunk-7TSIAYXZ.js} +1 -1
  24. package/dist/{chunk-IWF6XF2V.js → chunk-7YJ7CCKW.js} +1 -1
  25. package/dist/{chunk-ZGGEWKPA.js → chunk-AGNZ2QLE.js} +2 -2
  26. package/dist/chunk-AQIS2UNW.js +3578 -0
  27. package/dist/{chunk-CML2M4A5.js → chunk-BE6X3G5C.js} +1 -1
  28. package/dist/{chunk-PEOAH4LM.js → chunk-BYI2K4RN.js} +2 -2
  29. package/dist/{chunk-HUJT2WV7.js → chunk-CSHKZ3SL.js} +1 -1
  30. package/dist/{chunk-EJA7FDVA.js → chunk-CX7NQZDE.js} +3 -3
  31. package/dist/{chunk-T7KM6AG5.js → chunk-D4NPKZFY.js} +3 -3
  32. package/dist/{chunk-T64K236B.js → chunk-EKGD52A2.js} +2 -2
  33. package/dist/{chunk-CANIQ65S.js → chunk-F4WYYNNG.js} +1 -1
  34. package/dist/{chunk-IBSKMPBO.js → chunk-G33WTKF3.js} +2 -2
  35. package/dist/{chunk-FMTOCJN6.js → chunk-GBTGTS35.js} +1 -1
  36. package/dist/{chunk-OLLALODH.js → chunk-HXGPETEM.js} +1 -1
  37. package/dist/{chunk-CZBP6WD7.js → chunk-HZHXHO4V.js} +1 -1
  38. package/dist/{chunk-BVC2TTOR.js → chunk-IAKZWKNV.js} +4 -4
  39. package/dist/{chunk-FWJDB65E.js → chunk-K3ZB5A3K.js} +12 -11
  40. package/dist/{chunk-SBMSZEBS.js → chunk-KPY6JX4K.js} +9 -9
  41. package/dist/{chunk-Y6UZPO7H.js → chunk-L32XKBOF.js} +1 -1
  42. package/dist/{chunk-75Z3SG7S.js → chunk-LLU2BJYY.js} +2 -2
  43. package/dist/{chunk-K4DH364E.js → chunk-MK2HBL6E.js} +1 -1
  44. package/dist/{chunk-NGQ5NP2Q.js → chunk-NDPSG5WQ.js} +2 -2
  45. package/dist/{chunk-M4LHIME7.js → chunk-OE66T7R2.js} +1 -1
  46. package/dist/{chunk-QM7YQ35N.js → chunk-OLVR6P6R.js} +40 -48
  47. package/dist/{chunk-I33AB6HW.js → chunk-OQN3AUOV.js} +10 -10
  48. package/dist/{chunk-CYILDWZD.js → chunk-P4PMYDLR.js} +1 -1
  49. package/dist/{chunk-HN63O2Y6.js → chunk-PVVUMILD.js} +1 -1
  50. package/dist/{chunk-QV4PJ5EE.js → chunk-PZSNUSBM.js} +2 -2
  51. package/dist/{chunk-MKTOQKW4.js → chunk-Q3I4JEGM.js} +49 -53
  52. package/dist/{chunk-WZQYKSDF.js → chunk-QR7IRRUX.js} +5 -5
  53. package/dist/{chunk-SDRIDMMN.js → chunk-RHBM33JF.js} +7 -7
  54. package/dist/{chunk-NSVHO5LZ.js → chunk-RUYSBG3F.js} +20 -12
  55. package/dist/{chunk-2K3QXNHK.js → chunk-S2WNVYLQ.js} +1 -1
  56. package/dist/{chunk-JD6UVTTT.js → chunk-S4AMCVAK.js} +5 -5
  57. package/dist/{chunk-YVFBNUUH.js → chunk-SC4T53X4.js} +3 -3
  58. package/dist/{chunk-AZP4Q3HX.js → chunk-T6HJCRJC.js} +2 -2
  59. package/dist/{chunk-6AGYEZQ7.js → chunk-TL7Y6IBY.js} +3 -3
  60. package/dist/{chunk-OHE54L2X.js → chunk-TP4PR3SL.js} +3 -3
  61. package/dist/{chunk-N4RVOW43.js → chunk-TPWWGKU7.js} +2 -2
  62. package/dist/{chunk-OJ3NJ54J.js → chunk-V6LLKVWS.js} +1 -1
  63. package/dist/{chunk-RGDS435K.js → chunk-YII7JZ2C.js} +1 -1
  64. package/dist/{chunk-TSJNOSJF.js → chunk-YSCN66NT.js} +1 -1
  65. package/dist/{chunk-IJPINTW6.js → chunk-ZOUDTLLH.js} +2 -2
  66. package/dist/{chunk-HIPHGIMM.js → chunk-ZZAHIKFK.js} +1 -1
  67. package/dist/{clean-ZQ3QVGVU.js → clean-STQ2XPVL.js} +17 -17
  68. package/dist/cli.js +51 -51
  69. package/dist/{cloud-E4GWT7KZ.js → cloud-OQNTIR2N.js} +4 -4
  70. package/dist/{cloudrun-RRNAJMHQ.js → cloudrun-ELOBBQHC.js} +5 -5
  71. package/dist/{compare-4IMB3KDE.js → compare-7PHURXFI.js} +27 -27
  72. package/dist/{compiler-GM4XUGUA.js → compiler-A3FX5DBC.js} +7 -3
  73. package/dist/{component-ZIKBZXGS.js → component-56DVF6XU.js} +3 -3
  74. package/dist/{compositions-DRFZ36DG.js → compositions-2DMUUOFR.js} +12 -12
  75. package/dist/{delete-7LIHYMTQ.js → delete-EECQVAVJ.js} +2 -2
  76. package/dist/{deterministicFonts-HHGHYN6V.js → deterministicFonts-64U7A25I.js} +2 -2
  77. package/dist/{dist-57EISMJZ.js → dist-IPEAV427.js} +3 -3
  78. package/dist/{dist-RUZFIHUD.js → dist-OJYO32WN.js} +1 -1
  79. package/dist/{doctor-GVRY22DC.js → doctor-F3CXFLFV.js} +11 -11
  80. package/dist/{events-XHIAV6Q6.js → events-2LJGIZKG.js} +10 -10
  81. package/dist/{events-P3XLY3QN.js → events-H5RGIYVK.js} +9 -9
  82. package/dist/{feedback-I2IJMVE6.js → feedback-VCMOOK2O.js} +11 -11
  83. package/dist/{figma-KXZD5OXU.js → figma-BL4HCJ5P.js} +3 -3
  84. package/dist/fontLocalizeCli.js +10 -10
  85. package/dist/{get-3TF6CQRJ.js → get-HWN5Z3BL.js} +2 -2
  86. package/dist/{gpuPolicy-GUILWNQI.js → gpuPolicy-37CE57HN.js} +7 -7
  87. package/dist/{grade-compare-6A4MPRDT.js → grade-compare-3OPZYNNZ.js} +27 -27
  88. package/dist/{gsapParser-ZGBBDA54.js → gsapParser-LOSAMHNR.js} +20 -12
  89. package/dist/{gsapParserAcorn-3Z742FXU.js → gsapParserAcorn-ZO2LPEZY.js} +1 -1
  90. package/dist/{help-P2LXSWPH.js → help-X3EPTRKV.js} +1 -1
  91. package/dist/{history-TIEBO3TQ.js → history-YR6YTOLT.js} +17 -17
  92. package/dist/hyperframe-runtime.js +48 -48
  93. package/dist/hyperframe.manifest.json +1 -1
  94. package/dist/hyperframe.runtime.iife.js +48 -48
  95. package/dist/hyperframes-player.global.js +1 -1
  96. package/dist/{info-RDYN6M4J.js → info-QG7OXNW6.js} +12 -12
  97. package/dist/{init-FWKYWNED.js → init-JUHW2ZN3.js} +23 -23
  98. package/dist/{inspect-4X3GCH7D.js → inspect-LIDYSXAG.js} +28 -28
  99. package/dist/{installer-HBBKRFDP.js → installer-YH76H5ML.js} +5 -5
  100. package/dist/{keyframes-7D4TUZZ2.js → keyframes-ZLHVLMRA.js} +33 -25
  101. package/dist/{lambda-AYYSPAYH.js → lambda-T33I4AX6.js} +6 -6
  102. package/dist/{layout-J2IBMYTZ.js → layout-VD36CWWV.js} +28 -28
  103. package/dist/{lint-H7QFZNTA.js → lint-JAWDGLYW.js} +13 -13
  104. package/dist/{lintProject-MXUZEBDH.js → lintProject-IOQ4DBS4.js} +1 -1
  105. package/dist/{list-SPHCGWNR.js → list-24TGFCB3.js} +2 -2
  106. package/dist/{login-A4GMDPEZ.js → login-E2PE6CAD.js} +4 -4
  107. package/dist/{media-treatment-QOA3QGWO.js → media-treatment-2BMUTUGD.js} +13 -13
  108. package/dist/{models-ZDGTC4SZ.js → models-TS5PWNPS.js} +8 -8
  109. package/dist/{motionShot-QS5SVOHF.js → motionShot-RU4MTVOO.js} +13 -13
  110. package/dist/{normalize-audio-OPQAYTZV.js → normalize-audio-245DPF4X.js} +12 -12
  111. package/dist/{open-UKGA7TPU.js → open-RH7YWUVH.js} +11 -11
  112. package/dist/{pipeline-G5NLBVNJ.js → pipeline-ZK3JBXX5.js} +7 -7
  113. package/dist/{play-C7GBF6WB.js → play-VK6IF765.js} +22 -22
  114. package/dist/{preflight-DIJQBGM4.js → preflight-H7YMOAYQ.js} +8 -8
  115. package/dist/{present-DWKHRNIC.js → present-CLKL6QSK.js} +18 -18
  116. package/dist/{preview-FGLYZD5S.js → preview-GEPWX2GX.js} +18 -18
  117. package/dist/{producer-NP2763FP.js → producer-HBP36IDM.js} +1 -1
  118. package/dist/{projectConfig-MVB3R3H4.js → projectConfig-FPSBKFQO.js} +7 -7
  119. package/dist/{publication-UBT6VC5K.js → publication-ACSV54DD.js} +3 -3
  120. package/dist/{publish-EP4CNDPL.js → publish-L2NGI7MV.js} +9 -9
  121. package/dist/{remove-background-BSWFZHW3.js → remove-background-JRRBJN4U.js} +8 -8
  122. package/dist/{render-4Q23SIOZ.js → render-LZEOB6JN.js} +4 -4
  123. package/dist/{render-4BL4C55X.js → render-RXMA4QYX.js} +13 -13
  124. package/dist/{render-I3S3XTXQ.js → render-TDSGRTQQ.js} +22 -22
  125. package/dist/{render-batch-6MCTZTJR.js → render-batch-ZJQ5VHY6.js} +4 -4
  126. package/dist/{renderCancellation-N3E4RU7B.js → renderCancellation-MS5MAATT.js} +7 -7
  127. package/dist/renderSetupWorker.js +1 -1
  128. package/dist/{resolver-2D5RWIQP.js → resolver-WODAPAQC.js} +5 -5
  129. package/dist/{sherpa-XLMKWU7U.js → sherpa-B3IHJHTK.js} +8 -8
  130. package/dist/{skills-HIHYTIAV.js → skills-56DFZVPS.js} +12 -12
  131. package/dist/{skillsUpdateCheck-5YHBTQ6C.js → skillsUpdateCheck-AXKUBY44.js} +3 -3
  132. package/dist/{snapshot-OHAYOW4C.js → snapshot-NYQJL43J.js} +28 -28
  133. package/dist/{src-ESCXJW7I.js → src-4K2RSSO5.js} +6 -6
  134. package/dist/{src-IXQPVJNK.js → src-UQ72QBPU.js} +9 -9
  135. package/dist/{staticProjectServer-BP5PM77J.js → staticProjectServer-OJH6TFA3.js} +16 -16
  136. package/dist/{status-BB22DSC3.js → status-MZT3S6U2.js} +7 -7
  137. package/dist/studio/assets/{hyperframes-player-CmIh-wq9.js → hyperframes-player-uqzDaxVL.js} +1 -1
  138. package/dist/studio/assets/{index-4LRR6o2F.js → index-CLBNYlDY.js} +1 -1
  139. package/dist/studio/assets/{index-CrYoEZ5p.js → index-COhbL1xq.js} +177 -177
  140. package/dist/studio/assets/{index-yCK8osBg.js → index-DXSYlqmV.js} +1 -1
  141. package/dist/studio/index.html +1 -1
  142. package/dist/studio/index.js +5368 -4986
  143. package/dist/studio/index.js.map +1 -1
  144. package/dist/{studio-api-MPH3F7Y5.js → studio-api-IT5SYLXJ.js} +10 -10
  145. package/dist/{studioServer-JD5KIYR6.js → studioServer-KHYH2K3Q.js} +42 -42
  146. package/dist/{system-JPG4ILMN.js → system-4KER4Y62.js} +7 -7
  147. package/dist/{telemetry-VP5MPNOI.js → telemetry-G3NYQGWI.js} +10 -10
  148. package/dist/{timeline-TKJJ7RHM.js → timeline-CXK4RVZE.js} +17 -17
  149. package/dist/{tokens-DRCIONI6.js → tokens-RLU7WBIC.js} +2 -2
  150. package/dist/{transcribe-ZOGMUKWL.js → transcribe-SOY2USBA.js} +8 -8
  151. package/dist/{transcribe-7TASY37D.js → transcribe-Y37DWCAV.js} +13 -13
  152. package/dist/{updateCheck-G5JNP5U5.js → updateCheck-EJ5SAGDC.js} +2 -2
  153. package/dist/{upgrade-B2IT4JO4.js → upgrade-MBWWBNGK.js} +2 -2
  154. package/dist/{urlDownloader-VQNIYP7Y.js → urlDownloader-ZJ2TZQ7C.js} +6 -6
  155. package/dist/{validate-ENFIOU6R.js → validate-4J3OCFET.js} +17 -17
  156. package/dist/{video-MJBFMRFI.js → video-43437E6M.js} +7 -7
  157. package/package.json +1 -1
  158. package/dist/chunk-YKSQOWAL.js +0 -3571
@@ -8,7 +8,7 @@ import {
8
8
  DEFAULT_REGISTRY_URL,
9
9
  fetchItemManifest,
10
10
  fetchRegistryManifest
11
- } from "./chunk-EZ54IXGG.js";
11
+ } from "./chunk-6252EFFW.js";
12
12
 
13
13
  // src/registry/resolver.ts
14
14
  function defaultWarn(message) {
@@ -8,7 +8,7 @@ import {
8
8
  firstFrameColourArgs,
9
9
  hdrToSdrToneMapFilter,
10
10
  parseFirstFrameColour
11
- } from "./chunk-ZGGEWKPA.js";
11
+ } from "./chunk-AGNZ2QLE.js";
12
12
  import {
13
13
  mkdirWithinProject,
14
14
  realProjectRoot,
@@ -21,7 +21,7 @@ import {
21
21
  isUnresolvedAssetPlaceholder,
22
22
  maskNonScannableRanges,
23
23
  resolveLocalAssetCandidates
24
- } from "./chunk-N4RVOW43.js";
24
+ } from "./chunk-TPWWGKU7.js";
25
25
  import {
26
26
  findFfBinary
27
27
  } from "./chunk-PJ3HDUCY.js";
@@ -21,7 +21,7 @@ import {
21
21
  splitElementInHtml,
22
22
  unwrapElementsFromHtml,
23
23
  wrapElementsInHtml
24
- } from "./chunk-BVC2TTOR.js";
24
+ } from "./chunk-IAKZWKNV.js";
25
25
  import {
26
26
  atomicTempPath,
27
27
  createFileAtomically,
@@ -34,7 +34,7 @@ import {
34
34
  measureAudio,
35
35
  requiredFfmpeg,
36
36
  resolveLocalAudioPath
37
- } from "./chunk-CML2M4A5.js";
37
+ } from "./chunk-BE6X3G5C.js";
38
38
  import {
39
39
  PROXY_PARAMS_VERSION,
40
40
  PROXY_PENDING_RETRY_AFTER_SECONDS,
@@ -60,11 +60,11 @@ import {
60
60
  shouldPrewarmProxy,
61
61
  waitForProxy,
62
62
  walkDir
63
- } from "./chunk-QV4PJ5EE.js";
63
+ } from "./chunk-PZSNUSBM.js";
64
64
  import {
65
65
  findTimelineScript,
66
66
  parseGsapScriptAcorn
67
- } from "./chunk-NSVHO5LZ.js";
67
+ } from "./chunk-RUYSBG3F.js";
68
68
  import {
69
69
  STUDIO_MANUAL_EDITS_PATH
70
70
  } from "./chunk-KC5XXX3X.js";
@@ -81,28 +81,30 @@ import {
81
81
  motionPathPluginUrl,
82
82
  parseFps,
83
83
  sameInstant
84
- } from "./chunk-ZGGEWKPA.js";
84
+ } from "./chunk-AGNZ2QLE.js";
85
85
  import {
86
86
  MagicString,
87
87
  VALID_CANVAS_RESOLUTIONS,
88
88
  unrollComputedTimeline
89
- } from "./chunk-F7MXHGU3.js";
89
+ } from "./chunk-7DPBFAYT.js";
90
90
  import {
91
91
  AFTER_FONTS_SCRIPT_TYPE,
92
92
  addScenePartsManifest,
93
93
  deferScriptsUntilFonts,
94
94
  ensureHfIds
95
- } from "./chunk-QM7YQ35N.js";
95
+ } from "./chunk-OLVR6P6R.js";
96
96
  import {
97
+ RUNTIME_BOOTSTRAP_ATTR,
97
98
  findStartTags,
98
99
  hasCompositionOutsideTemplates,
99
100
  injectTagsAtHeadStart,
100
101
  insertBeforeCloseTag,
102
+ insertRuntimeTag,
101
103
  isFullHtmlDocument,
102
104
  resolveRateSpec,
103
105
  sourceTimeAt,
104
106
  stripEmbeddedRuntimeScripts
105
- } from "./chunk-YKSQOWAL.js";
107
+ } from "./chunk-AQIS2UNW.js";
106
108
  import {
107
109
  ProjectRootMissingError,
108
110
  folderGone,
@@ -115,7 +117,7 @@ import {
115
117
  import {
116
118
  isWithinProjectRoot,
117
119
  readProjectFile
118
- } from "./chunk-N4RVOW43.js";
120
+ } from "./chunk-TPWWGKU7.js";
119
121
  import {
120
122
  FFPROBE_PATH_ENV,
121
123
  findFfBinary
@@ -2211,6 +2213,25 @@ function classifyPropertyGroup(prop) {
2211
2213
  }
2212
2214
 
2213
2215
  // ../parsers/dist/gsapWriterAcorn.js
2216
+ var BUILTIN_VAR_KEYS = /* @__PURE__ */ new Set(["duration", "ease", "delay"]);
2217
+ var DROPPED_VAR_KEYS = /* @__PURE__ */ new Set([
2218
+ "onComplete",
2219
+ "onStart",
2220
+ "onUpdate",
2221
+ "onRepeat"
2222
+ ]);
2223
+ var EXTRAS_KEYS = /* @__PURE__ */ new Set([
2224
+ "stagger",
2225
+ "yoyo",
2226
+ "repeat",
2227
+ "repeatDelay",
2228
+ "snap",
2229
+ "overwrite",
2230
+ "immediateRender"
2231
+ ]);
2232
+ function isTweenConfigKey(key) {
2233
+ return BUILTIN_VAR_KEYS.has(key) || DROPPED_VAR_KEYS.has(key) || EXTRAS_KEYS.has(key);
2234
+ }
2214
2235
  var PROPERTY_GROUPS2 = {
2215
2236
  position: /* @__PURE__ */ new Set(["x", "y", "xPercent", "yPercent"]),
2216
2237
  scale: /* @__PURE__ */ new Set(["scale", "scaleX", "scaleY"]),
@@ -2952,17 +2973,6 @@ function findTimelineVar(ast, scope) {
2952
2973
  });
2953
2974
  return { timelineVar, ref, timelineCount, defaults };
2954
2975
  }
2955
- var BUILTIN_VAR_KEYS = /* @__PURE__ */ new Set(["duration", "ease", "delay"]);
2956
- var DROPPED_VAR_KEYS = /* @__PURE__ */ new Set(["onComplete", "onStart", "onUpdate", "onRepeat"]);
2957
- var EXTRAS_KEYS = /* @__PURE__ */ new Set([
2958
- "stagger",
2959
- "yoyo",
2960
- "repeat",
2961
- "repeatDelay",
2962
- "snap",
2963
- "overwrite",
2964
- "immediateRender"
2965
- ]);
2966
2976
  function isTimelineRootedCall(callNode, ref) {
2967
2977
  let obj = callNode.callee?.object;
2968
2978
  while (obj?.type === "CallExpression") {
@@ -3082,11 +3092,12 @@ function computeKeyframesTotalDuration(varsNode, scope, source) {
3082
3092
  }
3083
3093
  return getObjectArrayKeyframeTiming(durations)?.totalDuration;
3084
3094
  }
3095
+ var isFullyReadableStep = (el) => el?.type === "ObjectExpression" && !el.properties.some((p) => p.type === "SpreadElement");
3085
3096
  function parseObjectArrayKeyframes(node, scope, source) {
3086
3097
  const elements = node.elements ?? [];
3087
3098
  const raw = [];
3088
3099
  for (const el of elements) {
3089
- if (!el || el.type !== "ObjectExpression") continue;
3100
+ if (!isFullyReadableStep(el)) return void 0;
3090
3101
  const record = objectExpressionToRecord(el, scope, source);
3091
3102
  const properties = {};
3092
3103
  let duration;
@@ -3098,6 +3109,8 @@ function parseObjectArrayKeyframes(node, scope, source) {
3098
3109
  ease = v;
3099
3110
  } else if (typeof v === "number" || typeof v === "string") {
3100
3111
  properties[k] = v;
3112
+ } else {
3113
+ return void 0;
3101
3114
  }
3102
3115
  }
3103
3116
  raw.push({ properties, duration, ease });
@@ -3676,24 +3689,8 @@ function upsertProp(ms, objNode, key, value) {
3676
3689
  ms.appendLeft(objNode.end - 1, `${sep4}${safeKey(key)}: ${valueToCode(value)}`);
3677
3690
  }
3678
3691
  }
3679
- var NON_EDITABLE_PROP_KEYS = /* @__PURE__ */ new Set([
3680
- "duration",
3681
- "ease",
3682
- "delay",
3683
- "onComplete",
3684
- "onStart",
3685
- "onUpdate",
3686
- "onRepeat",
3687
- "stagger",
3688
- "yoyo",
3689
- "repeat",
3690
- "repeatDelay",
3691
- "snap",
3692
- "overwrite",
3693
- "immediateRender"
3694
- ]);
3695
3692
  function isEditableVarKey(key) {
3696
- return !NON_EDITABLE_PROP_KEYS.has(key);
3693
+ return !isTweenConfigKey(key);
3697
3694
  }
3698
3695
  function preservedEntries(objNode, source, drop, overrides) {
3699
3696
  const entries = [];
@@ -5959,7 +5956,7 @@ function requestSubPath(url, route) {
5959
5956
  return decodeURIComponent(segments.slice(start + routeSegments.length).join("/"));
5960
5957
  }
5961
5958
  async function loadGsapParser() {
5962
- return import("./gsapParser-ZGBBDA54.js");
5959
+ return import("./gsapParser-LOSAMHNR.js");
5963
5960
  }
5964
5961
  function isDanglingSymlinkInProject(projectDir, lexicalPath) {
5965
5962
  if (!isSafePath(projectDir, dirname32(lexicalPath))) return false;
@@ -6620,7 +6617,7 @@ async function prepareGsapMutationScript(c, res, firstMutation) {
6620
6617
  let block = extractGsapScriptBlock(html);
6621
6618
  if (!block && (firstMutation.type === "add" || firstMutation.type === "add-with-keyframes")) {
6622
6619
  const compId = html.match(/data-composition-id="([^"]+)"/)?.[1] ?? "main";
6623
- const { GSAP_CDN } = await import("./dist-57EISMJZ.js");
6620
+ const { GSAP_CDN } = await import("./dist-IPEAV427.js");
6624
6621
  const bootstrap = [
6625
6622
  `<script src="${GSAP_CDN}"></script>`,
6626
6623
  "<script>",
@@ -8473,10 +8470,8 @@ ${headContent}`;
8473
8470
  if (compHeadContent) headContent += `
8474
8471
  ${compHeadContent}`;
8475
8472
  headContent = stripEmbeddedRuntimeScripts(headContent);
8476
- if (!headContent.includes("hyperframe.runtime") && !headContent.includes("hyperframes-preview-runtime")) {
8477
- headContent += `
8478
- <script data-hyperframes-preview-runtime="1" src="${runtimeUrl}"></script>`;
8479
- }
8473
+ headContent += `
8474
+ <script ${RUNTIME_BOOTSTRAP_ATTR}="1" src="${runtimeUrl}"></script>`;
8480
8475
  if (!headContent.includes("gsap")) {
8481
8476
  headContent += `
8482
8477
  <script src="${gsapCdnDist()}gsap.min.js"></script>`;
@@ -8648,6 +8643,10 @@ function parseStudioMotionManifestContent(content) {
8648
8643
  return { hasMotion: false, hasCustomEase: false };
8649
8644
  }
8650
8645
  }
8646
+ function withPreviewRuntime(html, runtimeUrl) {
8647
+ const tag = `<script ${RUNTIME_BOOTSTRAP_ATTR}="1" src="${runtimeUrl}"></script>`;
8648
+ return insertRuntimeTag(stripEmbeddedRuntimeScripts(html), tag);
8649
+ }
8651
8650
  function injectScriptTagIntoHead(html, scriptTag) {
8652
8651
  return insertBeforeCloseTag(html, "head", `${scriptTag}
8653
8652
  `) ?? `${scriptTag}
@@ -8844,7 +8843,6 @@ function registerPreviewRoutes(api, adapter) {
8844
8843
  const previewBuilds = /* @__PURE__ */ new Map();
8845
8844
  async function buildPreview(project, previewVariables, builtKey, capture, signature) {
8846
8845
  const diskMain = resolveProjectMainHtml(project.dir, project.id);
8847
- const normalizedDisk = diskMain ? ensureHfIds(diskMain.html) : null;
8848
8846
  try {
8849
8847
  let bundled = await adapter.bundle(project.dir, {
8850
8848
  stampHfIds: true,
@@ -8853,17 +8851,12 @@ function registerPreviewRoutes(api, adapter) {
8853
8851
  let mainCompositionPath = "index.html";
8854
8852
  if (!bundled) {
8855
8853
  if (!diskMain) return null;
8856
- bundled = stripEmbeddedRuntimeScripts(normalizedDisk ?? diskMain.html);
8854
+ bundled = ensureHfIds(diskMain.html);
8857
8855
  mainCompositionPath = diskMain.compositionPath;
8858
8856
  }
8857
+ bundled = withPreviewRuntime(bundled, adapter.runtimeUrl);
8859
8858
  recordPreviewReferences(project.dir, bundled);
8860
8859
  recordPreviewBuilt(project.dir);
8861
- if (!bundled.includes("hyperframe.runtime") && !bundled.includes("hyperframes-preview-runtime")) {
8862
- const runtimeTag = `<script src="${adapter.runtimeUrl}"></script>`;
8863
- bundled = insertBeforeCloseTag(bundled, "body", `${runtimeTag}
8864
- `) ?? `${bundled}
8865
- ${runtimeTag}`;
8866
- }
8867
8860
  bundled = withPreviewBase(bundled, project.id);
8868
8861
  bundled = injectStudioPreviewAugmentations(
8869
8862
  ensureHfIds(await transformPreviewHtml(bundled, adapter, project, mainCompositionPath)),
@@ -8889,7 +8882,10 @@ ${runtimeTag}`;
8889
8882
  } catch {
8890
8883
  const fallback = resolveProjectMainHtml(project.dir, project.id);
8891
8884
  if (fallback) {
8892
- const fallbackHtml = withPreviewBase(ensureHfIds(fallback.html), project.id);
8885
+ const fallbackHtml = withPreviewBase(
8886
+ withPreviewRuntime(ensureHfIds(fallback.html), adapter.runtimeUrl),
8887
+ project.id
8888
+ );
8893
8889
  let fallbackAugmented = injectStudioPreviewAugmentations(
8894
8890
  await transformPreviewHtml(fallbackHtml, adapter, project, fallback.compositionPath),
8895
8891
  adapter,
@@ -16,7 +16,7 @@ import {
16
16
  } from "./chunk-5ETJX6WM.js";
17
17
  import {
18
18
  runEnvironmentChecks
19
- } from "./chunk-TSJNOSJF.js";
19
+ } from "./chunk-YSCN66NT.js";
20
20
  import {
21
21
  c
22
22
  } from "./chunk-ZTZA4UWZ.js";
@@ -25,24 +25,24 @@ import {
25
25
  getFreeDiskMb,
26
26
  getShmSizeMb,
27
27
  getSystemMeta
28
- } from "./chunk-K4DH364E.js";
28
+ } from "./chunk-MK2HBL6E.js";
29
29
  import {
30
30
  defineCommand
31
31
  } from "./chunk-S3S4TGEH.js";
32
32
  import {
33
33
  resolveExtractCacheDir
34
- } from "./chunk-T7KM6AG5.js";
34
+ } from "./chunk-D4NPKZFY.js";
35
35
  import {
36
36
  getUpdateMeta,
37
37
  withMeta
38
- } from "./chunk-OLLALODH.js";
38
+ } from "./chunk-HXGPETEM.js";
39
39
  import {
40
40
  CONFIG_PATH,
41
41
  withFileLock
42
42
  } from "./chunk-XUXGIA7H.js";
43
43
  import {
44
44
  VERSION
45
- } from "./chunk-IBSKMPBO.js";
45
+ } from "./chunk-G33WTKF3.js";
46
46
  import {
47
47
  normalizeErrorMessage
48
48
  } from "./chunk-KNU5COPB.js";
@@ -7,29 +7,29 @@ var __dirname = __hf_dirname(__filename);
7
7
  import {
8
8
  RegistryCompatibilityError,
9
9
  gateRegistryItemsCompatibility
10
- } from "./chunk-Y6UZPO7H.js";
10
+ } from "./chunk-L32XKBOF.js";
11
11
  import {
12
12
  DEFAULT_PROJECT_CONFIG,
13
13
  createProjectConfig,
14
14
  loadProjectConfig,
15
15
  projectConfigPath,
16
16
  recordProjectRegistryItems
17
- } from "./chunk-CANIQ65S.js";
17
+ } from "./chunk-F4WYYNNG.js";
18
18
  import {
19
19
  resolveItemWithDependencies,
20
20
  resolveItemsByTag
21
- } from "./chunk-HN63O2Y6.js";
21
+ } from "./chunk-PVVUMILD.js";
22
22
  import {
23
23
  InvalidVariableValuesError,
24
24
  prepareItem,
25
25
  publishItem
26
- } from "./chunk-NGQ5NP2Q.js";
26
+ } from "./chunk-NDPSG5WQ.js";
27
27
  import {
28
28
  DEFAULT_REGISTRY_URL
29
- } from "./chunk-EZ54IXGG.js";
29
+ } from "./chunk-6252EFFW.js";
30
30
  import {
31
31
  trackRegistryItemAdded
32
- } from "./chunk-OHE54L2X.js";
32
+ } from "./chunk-TP4PR3SL.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-ZGGEWKPA.js";
44
+ } from "./chunk-AGNZ2QLE.js";
45
45
  import {
46
46
  isProjectRootMissing,
47
47
  realpath
@@ -11,6 +11,22 @@ import {
11
11
  } from "./chunk-2PSPARWP.js";
12
12
 
13
13
  // ../parsers/dist/gsapParserAcorn.js
14
+ var BUILTIN_VAR_KEYS = /* @__PURE__ */ new Set(["duration", "ease", "delay"]);
15
+ var DROPPED_VAR_KEYS = /* @__PURE__ */ new Set([
16
+ "onComplete",
17
+ "onStart",
18
+ "onUpdate",
19
+ "onRepeat"
20
+ ]);
21
+ var EXTRAS_KEYS = /* @__PURE__ */ new Set([
22
+ "stagger",
23
+ "yoyo",
24
+ "repeat",
25
+ "repeatDelay",
26
+ "snap",
27
+ "overwrite",
28
+ "immediateRender"
29
+ ]);
14
30
  var PROPERTY_GROUPS = {
15
31
  position: /* @__PURE__ */ new Set(["x", "y", "xPercent", "yPercent"]),
16
32
  scale: /* @__PURE__ */ new Set(["scale", "scaleX", "scaleY"]),
@@ -1126,17 +1142,6 @@ function findTimelineVar(ast, scope) {
1126
1142
  });
1127
1143
  return { timelineVar, ref, timelineCount, defaults };
1128
1144
  }
1129
- var BUILTIN_VAR_KEYS = /* @__PURE__ */ new Set(["duration", "ease", "delay"]);
1130
- var DROPPED_VAR_KEYS = /* @__PURE__ */ new Set(["onComplete", "onStart", "onUpdate", "onRepeat"]);
1131
- var EXTRAS_KEYS = /* @__PURE__ */ new Set([
1132
- "stagger",
1133
- "yoyo",
1134
- "repeat",
1135
- "repeatDelay",
1136
- "snap",
1137
- "overwrite",
1138
- "immediateRender"
1139
- ]);
1140
1145
  function isTimelineRootedCall(callNode, ref) {
1141
1146
  let obj = callNode.callee?.object;
1142
1147
  while (obj?.type === "CallExpression") {
@@ -1256,11 +1261,12 @@ function computeKeyframesTotalDuration(varsNode, scope, source) {
1256
1261
  }
1257
1262
  return getObjectArrayKeyframeTiming(durations)?.totalDuration;
1258
1263
  }
1264
+ var isFullyReadableStep = (el) => el?.type === "ObjectExpression" && !el.properties.some((p) => p.type === "SpreadElement");
1259
1265
  function parseObjectArrayKeyframes(node, scope, source) {
1260
1266
  const elements = node.elements ?? [];
1261
1267
  const raw = [];
1262
1268
  for (const el of elements) {
1263
- if (!el || el.type !== "ObjectExpression") continue;
1269
+ if (!isFullyReadableStep(el)) return void 0;
1264
1270
  const record = objectExpressionToRecord(el, scope, source);
1265
1271
  const properties = {};
1266
1272
  let duration;
@@ -1272,6 +1278,8 @@ function parseObjectArrayKeyframes(node, scope, source) {
1272
1278
  ease = v;
1273
1279
  } else if (typeof v === "number" || typeof v === "string") {
1274
1280
  properties[k] = v;
1281
+ } else {
1282
+ return void 0;
1275
1283
  }
1276
1284
  }
1277
1285
  raw.push({ properties, duration, ease });
@@ -15,7 +15,7 @@ import {
15
15
  } from "./chunk-PBN6GBJE.js";
16
16
  import {
17
17
  parseFps
18
- } from "./chunk-ZGGEWKPA.js";
18
+ } from "./chunk-AGNZ2QLE.js";
19
19
 
20
20
  // src/browser/windowsCrash.ts
21
21
  var STATUS_STACK_BUFFER_OVERRUN_DEC = "3221225595";
@@ -10,21 +10,21 @@ import {
10
10
  import {
11
11
  launchManagedBrowser,
12
12
  resolveManagedGpuMode
13
- } from "./chunk-HUJT2WV7.js";
13
+ } from "./chunk-CSHKZ3SL.js";
14
14
  import {
15
15
  resolveDiagnosticNavigationTimeoutMs,
16
16
  windowsChromeCrashRemediation
17
- } from "./chunk-2K3QXNHK.js";
17
+ } from "./chunk-S2WNVYLQ.js";
18
18
  import {
19
19
  resolveLocalBrowserGpuMode
20
- } from "./chunk-CYILDWZD.js";
20
+ } from "./chunk-P4PMYDLR.js";
21
21
  import {
22
22
  c
23
23
  } from "./chunk-ZTZA4UWZ.js";
24
24
  import {
25
25
  assertWebGpuAdapterAvailable,
26
26
  compositionRequiresWebGpu
27
- } from "./chunk-T7KM6AG5.js";
27
+ } from "./chunk-D4NPKZFY.js";
28
28
  import {
29
29
  normalizeErrorMessage
30
30
  } from "./chunk-KNU5COPB.js";
@@ -103,7 +103,7 @@ async function openSettledCompositionPage(html, url, options) {
103
103
  const { ensureBrowser, findSystemBrowser } = await import("./manager-CT3D67CG.js");
104
104
  const browser = await ensureBrowser();
105
105
  const puppeteer = await import("puppeteer-core");
106
- const { buildChromeArgs } = await import("./src-ESCXJW7I.js");
106
+ const { buildChromeArgs } = await import("./src-4K2RSSO5.js");
107
107
  const requestedGpuMode = options.browserGpuMode ?? resolveCliChromeGpuMode();
108
108
  const requiresWebGpu = compositionRequiresWebGpu(html);
109
109
  const launch = async (executablePath) => {
@@ -12,7 +12,7 @@ import {
12
12
  } from "./chunk-ZTZA4UWZ.js";
13
13
  import {
14
14
  getSystemMeta
15
- } from "./chunk-K4DH364E.js";
15
+ } from "./chunk-MK2HBL6E.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-ZGGEWKPA.js";
26
+ } from "./chunk-AGNZ2QLE.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-IBSKMPBO.js";
40
+ } from "./chunk-G33WTKF3.js";
41
41
 
42
42
  // src/telemetry/transport.ts
43
43
  import { spawn } from "child_process";
@@ -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-MKTOQKW4.js";
9
+ } from "./chunk-Q3I4JEGM.js";
10
10
  import {
11
11
  injectTagsAtHeadStart
12
- } from "./chunk-YKSQOWAL.js";
12
+ } from "./chunk-AQIS2UNW.js";
13
13
 
14
14
  // src/utils/compositionServer.ts
15
15
  import { createHash } from "crypto";
@@ -7,14 +7,14 @@ var __dirname = __hf_dirname(__filename);
7
7
  import {
8
8
  trackLintReport,
9
9
  trackLintRuleStreak
10
- } from "./chunk-OHE54L2X.js";
10
+ } from "./chunk-TP4PR3SL.js";
11
11
  import {
12
12
  shouldTrack
13
- } from "./chunk-YVFBNUUH.js";
13
+ } from "./chunk-SC4T53X4.js";
14
14
  import {
15
15
  LINT_RULE_COUNT,
16
16
  LINT_RULE_GROUP_COUNTS
17
- } from "./chunk-N4RVOW43.js";
17
+ } from "./chunk-TPWWGKU7.js";
18
18
 
19
19
  // src/telemetry/lintStreaks.ts
20
20
  import { createHash } from "crypto";
@@ -8,16 +8,16 @@ import {
8
8
  flush,
9
9
  shouldTrack,
10
10
  trackEvent
11
- } from "./chunk-YVFBNUUH.js";
11
+ } from "./chunk-SC4T53X4.js";
12
12
  import {
13
13
  getPowerState
14
- } from "./chunk-K4DH364E.js";
14
+ } from "./chunk-MK2HBL6E.js";
15
15
  import {
16
16
  CliRuntimeError
17
17
  } from "./chunk-PBN6GBJE.js";
18
18
  import {
19
19
  redactTelemetryString
20
- } from "./chunk-ZGGEWKPA.js";
20
+ } from "./chunk-AGNZ2QLE.js";
21
21
  import {
22
22
  readConfig
23
23
  } from "./chunk-XUXGIA7H.js";
@@ -7534,11 +7534,11 @@ function deriveDurationFromClips(tags, rootTag) {
7534
7534
  return resolveCompositionDuration({ authoredDurationSeconds: null, clipEndsSeconds: clipEnds });
7535
7535
  }
7536
7536
  async function loadParseGsapScript() {
7537
- const mod = await import("./gsapParserAcorn-3Z742FXU.js");
7537
+ const mod = await import("./gsapParserAcorn-ZO2LPEZY.js");
7538
7538
  return mod.parseGsapScriptAcorn;
7539
7539
  }
7540
7540
  async function loadGsapScriptMotionPathFirstUseIndex() {
7541
- const mod = await import("./gsapParserAcorn-3Z742FXU.js");
7541
+ const mod = await import("./gsapParserAcorn-ZO2LPEZY.js");
7542
7542
  return mod.gsapScriptMotionPathFirstUseIndex;
7543
7543
  }
7544
7544
  var SCENE_BOUNDARY_EPSILON_SECONDS = 0.05;
@@ -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-OLLALODH.js";
9
+ } from "./chunk-HXGPETEM.js";
10
10
  import {
11
11
  hostAnswers
12
12
  } from "./chunk-K4WIOZFP.js";
@@ -9,7 +9,7 @@ import {
9
9
  } from "./chunk-IHFUKJOR.js";
10
10
  import {
11
11
  trackCommandFailure
12
- } from "./chunk-OHE54L2X.js";
12
+ } from "./chunk-TP4PR3SL.js";
13
13
  import {
14
14
  failCommand
15
15
  } from "./chunk-PBN6GBJE.js";
@@ -13,7 +13,7 @@ import {
13
13
  } from "./chunk-TVCRUG2S.js";
14
14
  import {
15
15
  getFreeDiskMb
16
- } from "./chunk-K4DH364E.js";
16
+ } from "./chunk-MK2HBL6E.js";
17
17
  import {
18
18
  ensureBrowser,
19
19
  findBrowser
@@ -19,10 +19,10 @@ import {
19
19
  import {
20
20
  formatVariableValidationIssue,
21
21
  validateVariables
22
- } from "./chunk-ZGGEWKPA.js";
22
+ } from "./chunk-AGNZ2QLE.js";
23
23
  import {
24
24
  extractCompositionMetadata
25
- } from "./chunk-F7MXHGU3.js";
25
+ } from "./chunk-7DPBFAYT.js";
26
26
 
27
27
  // src/utils/variables.ts
28
28
  import { readFileSync } from "fs";
@@ -7,7 +7,7 @@ var __dirname = __hf_dirname(__filename);
7
7
 
8
8
  // src/utils/producer.ts
9
9
  async function loadProducer() {
10
- return await import("./src-IXQPVJNK.js");
10
+ return await import("./src-UQ72QBPU.js");
11
11
  }
12
12
 
13
13
  export {