hyperframes 0.8.151 → 0.8.152

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 (165) hide show
  1. package/dist/{add-QKZZG7A2.js → add-SA33REHW.js} +14 -14
  2. package/dist/{animatedGifPrep-YQDPYGOD.js → animatedGifPrep-3YXJQZ7L.js} +9 -9
  3. package/dist/api.js +15 -15
  4. package/dist/{asset-3Q737Y4H.js → asset-PUVPTWPD.js} +2 -2
  5. package/dist/{assetCataloger-BTHEBJJB.js → assetCataloger-VWE2PLBX.js} +4 -4
  6. package/dist/{auth-XL7EU3SO.js → auth-PS3M6AI7.js} +1 -1
  7. package/dist/{autoUpdate-PJFLTQ3U.js → autoUpdate-CMO4SHWU.js} +2 -2
  8. package/dist/{backgroundChecks-T5TIR5WK.js → backgroundChecks-EDZ2A55J.js} +3 -3
  9. package/dist/backgroundChecksWorker.js +3 -3
  10. package/dist/{batchRender-NFLVIDB4.js → batchRender-7PLJISCN.js} +5 -5
  11. package/dist/{beats-JU4GZ26R.js → beats-2MDSIOE7.js} +14 -14
  12. package/dist/{benchmark-7U2YWLTW.js → benchmark-KBBXAPI4.js} +10 -10
  13. package/dist/{browser-D57UPYDA.js → browser-OMWKZRSW.js} +3 -3
  14. package/dist/{bundleWithLocalizedFonts-26MXQOZG.js → bundleWithLocalizedFonts-76DMCRIW.js} +2 -2
  15. package/dist/{capture-47BV25G3.js → capture-LRUUXH5Q.js} +2 -2
  16. package/dist/{capture-LT252COQ.js → capture-YGDC7GN3.js} +12 -12
  17. package/dist/{catalog-BEZXOV4O.js → catalog-SMEBKEVO.js} +14 -14
  18. package/dist/{catch-up-KVV5X6BF.js → catch-up-OMILX3WE.js} +4 -4
  19. package/dist/{check-6KQ433E6.js → check-NUZ62LIW.js} +131 -43
  20. package/dist/{checkBrowser-PRDR6XBY.js → checkBrowser-MSTVEL4V.js} +39 -38
  21. package/dist/{chunk-L6RIMCMG.js → chunk-3DZBQ7MH.js} +3 -3
  22. package/dist/{chunk-POEEDPJI.js → chunk-3E4OCOC5.js} +1 -1
  23. package/dist/{chunk-YZTVHRJ2.js → chunk-3HPJM5IQ.js} +1 -1
  24. package/dist/{chunk-OZ4K46OV.js → chunk-3LO7BBJX.js} +2 -2
  25. package/dist/{chunk-APDLWWFG.js → chunk-3VGU2SH7.js} +1 -1
  26. package/dist/{chunk-RRBKEHST.js → chunk-4UMKAUZI.js} +1 -1
  27. package/dist/{chunk-DHPFXAUF.js → chunk-57GN6KWT.js} +17 -3
  28. package/dist/{chunk-374QQGBQ.js → chunk-5CS4T6C6.js} +63 -12
  29. package/dist/{chunk-XQKVEQNY.js → chunk-5ERVRJMV.js} +2 -2
  30. package/dist/{chunk-S22FKF6G.js → chunk-5VMSUW4Z.js} +2 -2
  31. package/dist/{chunk-N4IXP3MY.js → chunk-6Z4YJ5Q3.js} +3 -3
  32. package/dist/{chunk-FJWEYVEM.js → chunk-7FYFEXD2.js} +658 -198
  33. package/dist/{chunk-4LE27ST4.js → chunk-7NPSXBIN.js} +2 -2
  34. package/dist/chunk-7TASSBN2.js +215 -0
  35. package/dist/{chunk-IP73NMQT.js → chunk-ANS56TPS.js} +10 -10
  36. package/dist/{chunk-PUIELIFA.js → chunk-BQK3J7XO.js} +1 -1
  37. package/dist/{chunk-RJRGR5KF.js → chunk-BYJYQWEX.js} +9 -9
  38. package/dist/{chunk-XXPYZBZ3.js → chunk-C6TPGUWD.js} +2 -2
  39. package/dist/{chunk-FAIYEIZ4.js → chunk-D6RJXQLD.js} +1 -1
  40. package/dist/{chunk-N3I6RAOR.js → chunk-DFXK7KUO.js} +11 -11
  41. package/dist/{chunk-DIOBKUBV.js → chunk-E6EYZ33P.js} +2 -2
  42. package/dist/{chunk-ZGCRVM5M.js → chunk-EVTHG34H.js} +2 -2
  43. package/dist/{chunk-IZPN423R.js → chunk-EXH6L2XZ.js} +2 -2
  44. package/dist/{chunk-AIJS74LG.js → chunk-FFDC5OWV.js} +8 -2
  45. package/dist/{chunk-KQGWP4KH.js → chunk-FNN5QINS.js} +1 -1
  46. package/dist/{chunk-DMKI64EZ.js → chunk-FSZAFCU7.js} +1 -1
  47. package/dist/{chunk-L3N7RJHS.js → chunk-GQETH4PE.js} +3 -3
  48. package/dist/{chunk-ZD3RDNZI.js → chunk-H2SGM2V2.js} +1 -1
  49. package/dist/{chunk-OSAH7S5M.js → chunk-H7FXBK3Q.js} +1 -1
  50. package/dist/{chunk-BRF3O35X.js → chunk-HBCRRCTX.js} +109 -31
  51. package/dist/{chunk-KXX6NLOT.js → chunk-IBYC3VUA.js} +1 -1
  52. package/dist/{chunk-IPDS2SWI.js → chunk-IEDT4EXE.js} +1 -1
  53. package/dist/{chunk-TCWMDCBX.js → chunk-IZIRIDJH.js} +2 -2
  54. package/dist/{chunk-4PKQEKAI.js → chunk-IZKXUYZE.js} +2 -2
  55. package/dist/chunk-KCFF4ENE.js +24 -0
  56. package/dist/{chunk-IZ7L6V76.js → chunk-KZ3L3W4Q.js} +1 -1
  57. package/dist/{chunk-YEBKEWKB.js → chunk-LECTCGGS.js} +1 -1
  58. package/dist/{chunk-O3DUX6P2.js → chunk-LVPSWUS6.js} +4 -4
  59. package/dist/{chunk-LKQS72D5.js → chunk-MNHPG2UO.js} +1 -1
  60. package/dist/{chunk-XKKBIFE5.js → chunk-NHAG2KCE.js} +7 -7
  61. package/dist/{chunk-HVXRYMGQ.js → chunk-PKO2EWO7.js} +1 -1
  62. package/dist/{chunk-XNDXENJQ.js → chunk-PRXAOZWZ.js} +3 -3
  63. package/dist/{chunk-4YZYYP7V.js → chunk-PTXZDSW5.js} +3 -3
  64. package/dist/{chunk-QF7AE3DB.js → chunk-QECEOV6W.js} +1 -1
  65. package/dist/{chunk-XGLNQDLN.js → chunk-QESSGUKX.js} +1 -1
  66. package/dist/{chunk-3SVC7SW4.js → chunk-RN5I2DP5.js} +3 -3
  67. package/dist/{chunk-QBYHNRHU.js → chunk-S3RCK56N.js} +1 -1
  68. package/dist/{chunk-RYL6ZIJP.js → chunk-SWCSL6WS.js} +5 -5
  69. package/dist/{chunk-2PSPARWP.js → chunk-TYXH3EKP.js} +4 -0
  70. package/dist/{chunk-FMNVTKX2.js → chunk-U3BCDVZO.js} +1 -1
  71. package/dist/{chunk-FLVI7FHU.js → chunk-VS732BUG.js} +1 -1
  72. package/dist/{chunk-LFNQDTSH.js → chunk-VYKPBRCB.js} +63 -12
  73. package/dist/{chunk-QLGBNGXC.js → chunk-XEFFJRYX.js} +2 -2
  74. package/dist/{chunk-3ZPFRDEJ.js → chunk-XINGD6MS.js} +4 -4
  75. package/dist/chunk-XSEGMQYA.js +30 -0
  76. package/dist/{chunk-GNTVYF7E.js → chunk-YOEGUBBY.js} +5 -5
  77. package/dist/{chunk-35PWWBGZ.js → chunk-YYEYOFHW.js} +1 -1
  78. package/dist/{chunk-XYHBVSWD.js → chunk-ZTM3RMAD.js} +2 -2
  79. package/dist/{clean-RLTHFTQA.js → clean-F75G45BI.js} +52 -31
  80. package/dist/cli.js +53 -53
  81. package/dist/{cloud-Q5TGBTW3.js → cloud-KVJAOUWH.js} +4 -4
  82. package/dist/{cloudrun-4UZF74MV.js → cloudrun-Q7Q7O4GY.js} +6 -6
  83. package/dist/{compare-Q5UNR2V4.js → compare-DGUJ4QWU.js} +30 -30
  84. package/dist/{compiler-ZXT27Z62.js → compiler-NCN6PTVH.js} +6 -6
  85. package/dist/{component-H734P32V.js → component-PSYGT3JV.js} +3 -3
  86. package/dist/{compositions-YEHDSTDR.js → compositions-J3GAETIC.js} +13 -13
  87. package/dist/{delete-LDBMPWRT.js → delete-MR7LRGRP.js} +2 -2
  88. package/dist/{deterministicFonts-C5JQLCTS.js → deterministicFonts-EOMDR6ZF.js} +3 -3
  89. package/dist/{dist-RGE4QASU.js → dist-2YYJYYPY.js} +3 -3
  90. package/dist/{dist-7JXLFD6U.js → dist-3MHXG6EJ.js} +4 -4
  91. package/dist/{doctor-XNJFIWJ7.js → doctor-JOUGR5UK.js} +11 -11
  92. package/dist/{events-UKCPUWMH.js → events-63BKDWVO.js} +3 -3
  93. package/dist/{events-G6UFLNXR.js → events-FZFBJCIH.js} +2 -2
  94. package/dist/{feedback-CK3KZ7DE.js → feedback-QLKWUDXR.js} +8 -8
  95. package/dist/{figma-3D5C737B.js → figma-YJ7HGVQC.js} +3 -3
  96. package/dist/fontLocalizeCli.js +12 -12
  97. package/dist/{get-QGTQUWFT.js → get-54MUUXMR.js} +2 -2
  98. package/dist/{gpuPolicy-G5QAQDYF.js → gpuPolicy-5OVNR75D.js} +9 -9
  99. package/dist/{grade-compare-XIHOM62P.js → grade-compare-7IDUF673.js} +30 -30
  100. package/dist/{gsapParserAcorn-VXZ3ZIF2.js → gsapParserAcorn-7NCK2LVT.js} +2 -2
  101. package/dist/{help-U5UBXT52.js → help-GQFYO5LU.js} +1 -1
  102. package/dist/{history-5J73QZSA.js → history-UI3O7CSO.js} +77 -205
  103. package/dist/hyperframes-player.global.js +1 -1
  104. package/dist/{info-RJHQQQUP.js → info-VQV3APEX.js} +9 -9
  105. package/dist/{init-M6UQOYYC.js → init-2UBFV5D7.js} +24 -24
  106. package/dist/{inspect-PRQWDBTP.js → inspect-36ACJ3CO.js} +31 -31
  107. package/dist/{installer-ZL7UKYK5.js → installer-GDUZDJG4.js} +7 -7
  108. package/dist/{keyframes-VMUJYTCQ.js → keyframes-GPBU34BG.js} +227 -82
  109. package/dist/{lambda-ON42DRQD.js → lambda-CBJVLTHY.js} +7 -7
  110. package/dist/{layout-QKBFVDVY.js → layout-2IHFV6EI.js} +31 -31
  111. package/dist/{lint-ZQHHL2SV.js → lint-IR6IYCEO.js} +9 -9
  112. package/dist/{lintProject-3Z6OJCSO.js → lintProject-XQWXJYSC.js} +3 -3
  113. package/dist/{list-YBRKIWGF.js → list-UAGKWARH.js} +2 -2
  114. package/dist/{login-4B2YXGLB.js → login-2GYCNCZF.js} +4 -4
  115. package/dist/{media-treatment-5C5EJAAP.js → media-treatment-Z553F7XI.js} +12 -12
  116. package/dist/{models-R7ZDWBJ6.js → models-6AZTNNSO.js} +12 -12
  117. package/dist/{motionShot-ZHESZNUL.js → motionShot-ARRL7WXT.js} +28 -15
  118. package/dist/{normalize-audio-EVWZVTBM.js → normalize-audio-CME4NUB6.js} +6 -6
  119. package/dist/{open-TV6HT4UT.js → open-HU2VXUFD.js} +4 -4
  120. package/dist/{parakeetRunner-YVVF4CG6.js → parakeetRunner-X5MKFMCB.js} +12 -12
  121. package/dist/{pipeline-ETR5SEBS.js → pipeline-MNFTEBJU.js} +9 -9
  122. package/dist/{play-C6WONRZV.js → play-2BBJDDAZ.js} +24 -24
  123. package/dist/{present-RANXTVPA.js → present-OE2WL2NY.js} +20 -20
  124. package/dist/{preview-KF6UMBT2.js → preview-RYSCCAWJ.js} +19 -19
  125. package/dist/{producer-CY2GXBWN.js → producer-SQWNRO66.js} +1 -1
  126. package/dist/{projectConfig-KPXCNMBM.js → projectConfig-B55Z7YKQ.js} +9 -9
  127. package/dist/{publication-Y36N4A7E.js → publication-MDZCOBJP.js} +4 -4
  128. package/dist/{publish-RCQJO35C.js → publish-AILV36BO.js} +12 -12
  129. package/dist/{remove-background-3ZMXVWLB.js → remove-background-6F72LKHG.js} +10 -10
  130. package/dist/{render-PTNEFO5U.js → render-2MZKU3L5.js} +10 -10
  131. package/dist/{render-FKVRCDT2.js → render-5EREH6YD.js} +57 -22
  132. package/dist/{render-WUSTRMUD.js → render-6GH5FSXU.js} +5 -5
  133. package/dist/{render-batch-AQHU2JWZ.js → render-batch-UMBUQWWS.js} +5 -5
  134. package/dist/renderSetupWorker.js +3 -3
  135. package/dist/{resolver-L5BDZJKU.js → resolver-KO6WWO5P.js} +6 -6
  136. package/dist/{sherpa-3S3ISG7G.js → sherpa-DADGYWNR.js} +11 -11
  137. package/dist/skills/hyperframes-cli/SKILL.md +3 -0
  138. package/dist/skills/hyperframes-cli/references/lint-validate-inspect.md +5 -1
  139. package/dist/{skills-X4WQEKNF.js → skills-QLKSNU4Y.js} +5 -5
  140. package/dist/{skillsUpdateCheck-UYCVHDZ6.js → skillsUpdateCheck-Z2QQGF2W.js} +3 -3
  141. package/dist/{snapshot-YEYHQEZQ.js → snapshot-D5BBFXOS.js} +118 -41
  142. package/dist/{src-2NN2WB6X.js → src-AVQBAECC.js} +8 -8
  143. package/dist/{src-OLBDPEG6.js → src-V7263E47.js} +11 -11
  144. package/dist/{staticProjectServer-7H35NMWB.js → staticProjectServer-HNWSVEWN.js} +20 -20
  145. package/dist/studio/assets/{hyperframes-player-DJt8E7k4.js → hyperframes-player-0BY7-PK7.js} +1 -1
  146. package/dist/studio/assets/{index-DWIHrAY2.js → index-COrWdzlj.js} +1 -1
  147. package/dist/studio/assets/{index-BGks9KLI.js → index-p-VXwuJ2.js} +132 -132
  148. package/dist/studio/assets/{index-DgbLblGR.js → index-rmD5k_ES.js} +1 -1
  149. package/dist/studio/index.html +1 -1
  150. package/dist/{studio-api-HGM2A5I3.js → studio-api-UXKTDWLT.js} +30 -16
  151. package/dist/{studioServer-M6XFL7N6.js → studioServer-JOVR24O3.js} +43 -43
  152. package/dist/{synthesize-22B7L5GX.js → synthesize-MBDVUSH3.js} +2 -1
  153. package/dist/{telemetry-KVCZKVTE.js → telemetry-UW7XAM5W.js} +3 -3
  154. package/dist/{timeline-VYYKZR4V.js → timeline-JSGTZ3AN.js} +20 -20
  155. package/dist/{tokens-B5NFFL55.js → tokens-ADDBGTQ7.js} +2 -2
  156. package/dist/{transcribe-SBETOIWI.js → transcribe-FEHOK626.js} +10 -10
  157. package/dist/{transcribe-WNFRYZAC.js → transcribe-P6MJGSZJ.js} +16 -16
  158. package/dist/{tts-QSAQZVEZ.js → tts-POI553RG.js} +1 -1
  159. package/dist/{updateCheck-5MM2DFUC.js → updateCheck-IBWMLXQ4.js} +2 -2
  160. package/dist/{upgrade-LWID54R3.js → upgrade-NHZ7AYPO.js} +2 -2
  161. package/dist/{urlDownloader-CVLNXFDG.js → urlDownloader-ULDRBWS5.js} +8 -8
  162. package/dist/{validate-V4CGQ6OF.js → validate-NVWNXNBV.js} +25 -25
  163. package/dist/{video-VJB2KRSS.js → video-74DRD2DN.js} +9 -9
  164. package/package.json +1 -1
  165. package/dist/chunk-WBLXWOYK.js +0 -15
@@ -21,7 +21,16 @@ import {
21
21
  splitElementInHtml,
22
22
  unwrapElementsFromHtml,
23
23
  wrapElementsInHtml
24
- } from "./chunk-XNDXENJQ.js";
24
+ } from "./chunk-PRXAOZWZ.js";
25
+ import {
26
+ DEFAULT_TARGET_LUFS,
27
+ absoluteLoudnessPlan,
28
+ measureAudio,
29
+ requestSubPath,
30
+ requestedProjectPath,
31
+ requiredFfmpeg,
32
+ resolveLocalAudioPath
33
+ } from "./chunk-C6TPGUWD.js";
25
34
  import {
26
35
  MAX_WINDOW_IDLE_MS,
27
36
  STUDIO_SIGNATURE_MANIFEST_PATHS,
@@ -34,16 +43,7 @@ import {
34
43
  resolveProjectAndSignature,
35
44
  resolveProjectSignature,
36
45
  settledFileTag
37
- } from "./chunk-FJWEYVEM.js";
38
- import {
39
- DEFAULT_TARGET_LUFS,
40
- absoluteLoudnessPlan,
41
- measureAudio,
42
- requestSubPath,
43
- requestedProjectPath,
44
- requiredFfmpeg,
45
- resolveLocalAudioPath
46
- } from "./chunk-XXPYZBZ3.js";
46
+ } from "./chunk-7FYFEXD2.js";
47
47
  import {
48
48
  PROXY_PARAMS_VERSION,
49
49
  PROXY_PENDING_RETRY_AFTER_SECONDS,
@@ -65,7 +65,7 @@ import {
65
65
  scanProjectMediaCodecMap,
66
66
  shouldPrewarmProxy,
67
67
  waitForProxy
68
- } from "./chunk-3ZPFRDEJ.js";
68
+ } from "./chunk-XINGD6MS.js";
69
69
  import {
70
70
  STUDIO_MOTION_PATH,
71
71
  createStudioMotionRenderBodyScript,
@@ -76,11 +76,11 @@ import {
76
76
  realFilePath,
77
77
  resolveWithinProject,
78
78
  walkDir
79
- } from "./chunk-AIJS74LG.js";
79
+ } from "./chunk-FFDC5OWV.js";
80
80
  import {
81
81
  findTimelineScript,
82
82
  parseGsapScriptAcorn
83
- } from "./chunk-374QQGBQ.js";
83
+ } from "./chunk-5CS4T6C6.js";
84
84
  import {
85
85
  STUDIO_MANUAL_EDITS_PATH
86
86
  } from "./chunk-EOOEC32M.js";
@@ -98,7 +98,7 @@ import {
98
98
  } from "./chunk-EOVYQ3IG.js";
99
99
  import {
100
100
  addScenePartsManifest
101
- } from "./chunk-3SVC7SW4.js";
101
+ } from "./chunk-RN5I2DP5.js";
102
102
  import {
103
103
  ensureHfIds
104
104
  } from "./chunk-NE55C6S5.js";
@@ -111,7 +111,7 @@ import {
111
111
  parseFps,
112
112
  parsePreviewProxyBox,
113
113
  sameInstant
114
- } from "./chunk-XQKVEQNY.js";
114
+ } from "./chunk-5ERVRJMV.js";
115
115
  import {
116
116
  AFTER_FONTS_SCRIPT_TYPE,
117
117
  RUNTIME_BOOTSTRAP_ATTR,
@@ -125,7 +125,7 @@ import {
125
125
  resolveRateSpec,
126
126
  sourceTimeAt,
127
127
  stripEmbeddedRuntimeScripts
128
- } from "./chunk-QBYHNRHU.js";
128
+ } from "./chunk-S3RCK56N.js";
129
129
  import {
130
130
  HTML_ATTRIBUTE_ENTITIES,
131
131
  MagicString,
@@ -133,7 +133,7 @@ import {
133
133
  decodeAuthoredAttribute,
134
134
  scanHtmlOpeningTags,
135
135
  unrollComputedTimeline
136
- } from "./chunk-LFNQDTSH.js";
136
+ } from "./chunk-VYKPBRCB.js";
137
137
  import {
138
138
  ProjectRootMissingError,
139
139
  folderGone,
@@ -168,9 +168,9 @@ import {
168
168
  full,
169
169
  parse,
170
170
  simple
171
- } from "./chunk-2PSPARWP.js";
171
+ } from "./chunk-TYXH3EKP.js";
172
172
 
173
- // ../studio-server/dist/chunk-3RUFN2CK.js
173
+ // ../studio-server/dist/chunk-6RICWA3B.js
174
174
  import { createHash } from "crypto";
175
175
  import { closeSync, constants, fstatSync, openSync, readFileSync, writeFileSync } from "fs";
176
176
  import { dirname, join } from "path";
@@ -300,7 +300,7 @@ function clearElementScreenshotIsolation() {
300
300
  page.__hfThumbnailFaded = [];
301
301
  }
302
302
 
303
- // ../studio-server/dist/chunk-ZNRTEXK2.js
303
+ // ../studio-server/dist/chunk-RHYH6YOX.js
304
304
  import { resolve } from "path";
305
305
  function isAutoProxyEnabled(adapter) {
306
306
  return adapter.autoProxy !== false;
@@ -914,19 +914,19 @@ function collectIdentifierBindingIndex(ast) {
914
914
  }
915
915
  }
916
916
  function addBinding(bindings, scopeNode, name, selector) {
917
- let scoped = bindings.get(scopeNode);
917
+ let scoped = bindings.byScope.get(scopeNode);
918
918
  if (!scoped) {
919
919
  scoped = /* @__PURE__ */ new Map();
920
- bindings.set(scopeNode, scoped);
920
+ bindings.byScope.set(scopeNode, scoped);
921
921
  }
922
922
  if (!scoped.has(name)) scoped.set(name, selector);
923
923
  }
924
924
  function lookupBindingFromAncestors(name, ancestors, bindings) {
925
925
  for (const scopeNode of scopeChainFromAncestors(ancestors)) {
926
- const selector = bindings.get(scopeNode)?.get(name);
926
+ const selector = bindings.byScope.get(scopeNode)?.get(name);
927
927
  if (selector !== void 0) return selector;
928
928
  }
929
- return bindings.get(null)?.get(name) ?? null;
929
+ return bindings.byScope.get(null)?.get(name) ?? null;
930
930
  }
931
931
  function isFunctionNode(node) {
932
932
  return node?.type === "ArrowFunctionExpression" || node?.type === "FunctionExpression" || node?.type === "FunctionDeclaration";
@@ -965,7 +965,7 @@ function collectScopeBindings(ast) {
965
965
  return bindings;
966
966
  }
967
967
  function collectTargetBindings(ast, scope, identifierBindings) {
968
- const bindings = /* @__PURE__ */ new Map();
968
+ const bindings = { byScope: /* @__PURE__ */ new Map(), identifiers: identifierBindings };
969
969
  ancestor(ast, {
970
970
  VariableDeclarator(node, _, ancestors) {
971
971
  const name = node.id?.name;
@@ -1046,7 +1046,18 @@ function resolveTargetSelector(node, ancestors, scope, bindings) {
1046
1046
  return typeof node.value === "string" ? node.value : null;
1047
1047
  }
1048
1048
  if (node.type === "Identifier") {
1049
- return lookupBindingFromAncestors(node.name, ancestors, bindings);
1049
+ const bound = lookupBindingFromAncestors(node.name, ancestors, bindings);
1050
+ if (bound) return bound;
1051
+ const declaration = findVisibleIdentifierDeclaration(
1052
+ node.name,
1053
+ ancestors,
1054
+ bindings.identifiers,
1055
+ node.start
1056
+ );
1057
+ if (declaration?.kind !== "const" || bindings.identifiers.reassignedDeclarations.has(declaration.node))
1058
+ return null;
1059
+ const literal = resolveNode(declaration.node.init, scope);
1060
+ return typeof literal === "string" ? literal : null;
1050
1061
  }
1051
1062
  if (node.type === "CallExpression") {
1052
1063
  return selectorFromQueryCall(node, scope);
@@ -1071,7 +1082,7 @@ function describeProxyTarget(targetNode, varsNode, scope) {
1071
1082
  const onUpdate = findPropertyNode(varsNode, "onUpdate");
1072
1083
  const driven = onUpdate ? drivenDomChannel(onUpdate) : void 0;
1073
1084
  if (driven) return `proxy \u2192 ${driven}`;
1074
- return "dwell/hold";
1085
+ return objNode.properties.length === 0 && !onUpdate ? "dwell/hold" : "proxy (unresolved DOM association)";
1075
1086
  }
1076
1087
  function isStyleAssignmentTarget(left) {
1077
1088
  return left?.type === "MemberExpression" && left.object?.type === "MemberExpression" && left.object.property?.name === "style" && !!left.property?.name;
@@ -1587,6 +1598,8 @@ function tweenCallToAnimation(call, scope, source, identifierBindings) {
1587
1598
  duration,
1588
1599
  ease
1589
1600
  };
1601
+ if (["stagger", "repeat", "repeatDelay", "delay"].some((key) => findPropertyNode(call.varsArg, key)))
1602
+ anim.inspectionTiming = inspectionTiming(call.varsArg, scope);
1590
1603
  if (targetIdentity) anim.targetIdentity = targetIdentity;
1591
1604
  if (!hasPositionArg) anim.implicitPosition = true;
1592
1605
  let group = classifyTweenPropertyGroup(properties);
@@ -1609,6 +1622,36 @@ function tweenCallToAnimation(call, scope, source, identifierBindings) {
1609
1622
  if (provenance) anim.provenance = provenance;
1610
1623
  return anim;
1611
1624
  }
1625
+ function inspectionTiming(varsNode, scope) {
1626
+ const numeric = (key) => {
1627
+ const node2 = findPropertyNode(varsNode, key);
1628
+ if (!node2) return 0;
1629
+ const value = resolveNode(node2, scope);
1630
+ return typeof value === "number" && Number.isFinite(value) ? value : null;
1631
+ };
1632
+ const node = findPropertyNode(varsNode, "stagger");
1633
+ let stagger = { each: 0 };
1634
+ if (node) {
1635
+ const value = resolveNode(node, scope);
1636
+ stagger = typeof value === "number" ? { each: value } : null;
1637
+ if (node.type === "ObjectExpression" && !(node.properties ?? []).some(
1638
+ (p) => !["each", "amount", "from", "ease", "axis", "grid"].includes(propKeyName(p) ?? "")
1639
+ )) {
1640
+ const each = resolveNode(findPropertyNode(node, "each"), scope);
1641
+ const amount = resolveNode(findPropertyNode(node, "amount"), scope);
1642
+ if (!findPropertyNode(node, "grid") && !findPropertyNode(node, "axis")) {
1643
+ if (typeof amount === "number") stagger = { amount };
1644
+ else if (typeof each === "number") stagger = { each };
1645
+ }
1646
+ }
1647
+ }
1648
+ return {
1649
+ repeat: numeric("repeat"),
1650
+ repeatDelay: numeric("repeatDelay"),
1651
+ delay: numeric("delay"),
1652
+ stagger
1653
+ };
1654
+ }
1612
1655
  function resolvePositionString(pos, cursor, prevStart) {
1613
1656
  const trimmed = pos.trim();
1614
1657
  if (trimmed === "") return cursor;
@@ -5446,7 +5489,7 @@ async function prepareGsapMutationScript(c, res, firstMutation) {
5446
5489
  let block = extractGsapScriptBlock(html);
5447
5490
  if (!block && (firstMutation.type === "add" || firstMutation.type === "add-with-keyframes")) {
5448
5491
  const compId = html.match(/data-composition-id="([^"]+)"/)?.[1] ?? "main";
5449
- const { GSAP_CDN } = await import("./dist-7JXLFD6U.js");
5492
+ const { GSAP_CDN } = await import("./dist-3MHXG6EJ.js");
5450
5493
  const bootstrap = [
5451
5494
  `<script src="${GSAP_CDN}"></script>`,
5452
5495
  "<script>",
@@ -9601,6 +9644,29 @@ function versionsOf(value) {
9601
9644
  );
9602
9645
  return pairs.length ? Object.fromEntries(pairs) : void 0;
9603
9646
  }
9647
+ function targetsOf(value) {
9648
+ if (!Array.isArray(value)) return void 0;
9649
+ const targets = value.flatMap((item) => targetOf2(item) ?? []);
9650
+ return targets.length ? targets : void 0;
9651
+ }
9652
+ function targetOf2(item) {
9653
+ if (!item || typeof item !== "object") return null;
9654
+ const fields = item;
9655
+ if (typeof fields.file !== "string") return null;
9656
+ const target = { file: fields.file, ...identityOf(fields) };
9657
+ if (!target.id && !target.hfId && !target.selector) return null;
9658
+ if (isSelectorIndex(fields.selectorIndex)) target.selectorIndex = fields.selectorIndex;
9659
+ return target;
9660
+ }
9661
+ function identityOf(fields) {
9662
+ const identity = {};
9663
+ for (const key of ["id", "hfId", "selector"]) {
9664
+ const field = fields[key];
9665
+ if (typeof field === "string" && field) identity[key] = field;
9666
+ }
9667
+ return identity;
9668
+ }
9669
+ var isSelectorIndex = (value) => typeof value === "number" && Number.isSafeInteger(value) && value >= 0;
9604
9670
  function nextStep(history, direction) {
9605
9671
  const target = history.next(direction, YOU);
9606
9672
  if (!target) return null;
@@ -9626,6 +9692,13 @@ function registerHistoryRoutes(api, adapter) {
9626
9692
  return { entries, back: nextStep(history, "back"), forward: nextStep(history, "forward") };
9627
9693
  })
9628
9694
  );
9695
+ api.post(
9696
+ `${base}/checkpoint`,
9697
+ (c) => withHistory(adapter, c, async (history) => {
9698
+ await history.checkpoint();
9699
+ return { ok: true };
9700
+ })
9701
+ );
9629
9702
  api.post(
9630
9703
  `${base}/step`,
9631
9704
  (c) => withHistory(
@@ -9674,9 +9747,11 @@ function registerHistoryRoutes(api, adapter) {
9674
9747
  const paths = Array.isArray(body.paths) ? body.paths.filter((path) => text(path)) : [];
9675
9748
  const coalesceKey = text(body.coalesceKey) ?? void 0;
9676
9749
  const overwrote = versionsOf(body.overwrote);
9750
+ const targets = targetsOf(body.targets);
9677
9751
  const claimed = await history.claim(YOU, text(body.label) ?? "Edited in Studio", paths, {
9678
9752
  ...coalesceKey && { coalesceKey, idleMs: idleOf(body) ?? Infinity },
9679
- ...overwrote && { overwrote }
9753
+ ...overwrote && { overwrote },
9754
+ ...targets && { targets }
9680
9755
  });
9681
9756
  return { claimed };
9682
9757
  })
@@ -9688,7 +9763,10 @@ function registerHistoryRoutes(api, adapter) {
9688
9763
  const window2 = await history.beginWindow(
9689
9764
  whoOf(body),
9690
9765
  text(body.label) ?? "Edited in Studio",
9691
- idleMs ? { idleMs } : void 0
9766
+ {
9767
+ ...idleMs ? { idleMs } : {},
9768
+ ...body.exclusive === true && { exclusive: true }
9769
+ }
9692
9770
  );
9693
9771
  windows.set(window2.id, { history, window: window2 });
9694
9772
  return { windowId: window2.id, startedAt: window2.startedAt };
@@ -9,7 +9,7 @@ import {
9
9
  } from "./chunk-K2FLNJVB.js";
10
10
  import {
11
11
  trackCommandFailure
12
- } from "./chunk-ZD3RDNZI.js";
12
+ } from "./chunk-H2SGM2V2.js";
13
13
  import {
14
14
  failCommand
15
15
  } from "./chunk-PBN6GBJE.js";
@@ -7,7 +7,7 @@ var __dirname = __hf_dirname(__filename);
7
7
  import {
8
8
  sherpaParakeetInstalled,
9
9
  sherpaUnsupportedReason
10
- } from "./chunk-DIOBKUBV.js";
10
+ } from "./chunk-E6EYZ33P.js";
11
11
  import {
12
12
  findParakeet
13
13
  } from "./chunk-JZIEZCQM.js";
@@ -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.151" : "0.0.0-dev";
10
- var PRODUCER_VERSION = true ? "0.8.151" : "0.0.0-dev";
9
+ var VERSION = true ? "0.8.152" : "0.0.0-dev";
10
+ var PRODUCER_VERSION = true ? "0.8.152" : "0.0.0-dev";
11
11
 
12
12
  export {
13
13
  VERSION,
@@ -20,7 +20,7 @@ import {
20
20
  typeDirPath,
21
21
  updateRecord,
22
22
  withFigmaErrors
23
- } from "./chunk-YEBKEWKB.js";
23
+ } from "./chunk-LECTCGGS.js";
24
24
  import {
25
25
  defineCommand
26
26
  } from "./chunk-S3S4TGEH.js";
@@ -229,7 +229,7 @@ var asset_default = defineCommand({
229
229
  rendered > 0 ? `(${results.length} nodes, ${rendered} rendered in 1 figma request)` : `(${results.length} nodes, all reused from cache \u2014 no figma request)`
230
230
  );
231
231
  }
232
- const { trackFigmaImport } = await import("./telemetry-KVCZKVTE.js");
232
+ const { trackFigmaImport } = await import("./telemetry-UW7XAM5W.js");
233
233
  trackFigmaImport({
234
234
  phase: "asset",
235
235
  reused: results.every((r) => r.reused),
@@ -0,0 +1,24 @@
1
+ import { createRequire as __hf_createRequire } from "node:module";
2
+ import { fileURLToPath as __hf_fileURLToPath } from "node:url";
3
+ import { dirname as __hf_dirname } from "node:path";
4
+ var require = __hf_createRequire(import.meta.url);
5
+ var __filename = __hf_fileURLToPath(import.meta.url);
6
+ var __dirname = __hf_dirname(__filename);
7
+ import {
8
+ withOwner
9
+ } from "./chunk-7TASSBN2.js";
10
+ import {
11
+ beginArtifactCapture
12
+ } from "./chunk-7FYFEXD2.js";
13
+
14
+ // src/utils/artifactCapture.ts
15
+ async function captureArtifactRevision(projectDir) {
16
+ return withOwner(projectDir, async (owner) => {
17
+ await owner.checkpoint();
18
+ return beginArtifactCapture(projectDir);
19
+ });
20
+ }
21
+
22
+ export {
23
+ captureArtifactRevision
24
+ };
@@ -29,7 +29,7 @@ import {
29
29
  } from "./chunk-XUXGIA7H.js";
30
30
  import {
31
31
  VERSION
32
- } from "./chunk-TCWMDCBX.js";
32
+ } from "./chunk-IZIRIDJH.js";
33
33
  import {
34
34
  CANARIES,
35
35
  canaryEnvVar,
@@ -1278,7 +1278,7 @@ async function withFigmaErrors(command, fn) {
1278
1278
  } catch (err) {
1279
1279
  if (err instanceof Error) {
1280
1280
  try {
1281
- const { trackCommandFailure } = await import("./events-UKCPUWMH.js");
1281
+ const { trackCommandFailure } = await import("./events-63BKDWVO.js");
1282
1282
  trackCommandFailure(
1283
1283
  command,
1284
1284
  err,
@@ -6,21 +6,21 @@ var __filename = __hf_fileURLToPath(import.meta.url);
6
6
  var __dirname = __hf_dirname(__filename);
7
7
  import {
8
8
  parakeetRunner
9
- } from "./chunk-IPDS2SWI.js";
9
+ } from "./chunk-IEDT4EXE.js";
10
10
  import {
11
11
  DecodeCancelled,
12
12
  prepareSherpaWav,
13
13
  sherpaUnsupportedReason,
14
14
  transcribeWithSherpa
15
- } from "./chunk-DIOBKUBV.js";
15
+ } from "./chunk-E6EYZ33P.js";
16
16
  import {
17
17
  initialModelForLanguage,
18
18
  transcribe
19
- } from "./chunk-QF7AE3DB.js";
19
+ } from "./chunk-QECEOV6W.js";
20
20
  import {
21
21
  createRenderCancellationScope,
22
22
  stoppedByCancelSignal
23
- } from "./chunk-KQGWP4KH.js";
23
+ } from "./chunk-FNN5QINS.js";
24
24
  import {
25
25
  formatSrt,
26
26
  formatVtt,
@@ -14,7 +14,7 @@ import {
14
14
  } from "./chunk-AWDFDFI3.js";
15
15
  import {
16
16
  isBlockedNetworkHost
17
- } from "./chunk-IZPN423R.js";
17
+ } from "./chunk-EXH6L2XZ.js";
18
18
  import {
19
19
  DOMParser,
20
20
  parseHTML
@@ -7,29 +7,29 @@ var __dirname = __hf_dirname(__filename);
7
7
  import {
8
8
  RegistryCompatibilityError,
9
9
  gateRegistryItemsCompatibility
10
- } from "./chunk-PUIELIFA.js";
10
+ } from "./chunk-BQK3J7XO.js";
11
11
  import {
12
12
  DEFAULT_PROJECT_CONFIG,
13
13
  createProjectConfig,
14
14
  loadProjectConfig,
15
15
  projectConfigPath,
16
16
  recordProjectRegistryItems
17
- } from "./chunk-FAIYEIZ4.js";
17
+ } from "./chunk-D6RJXQLD.js";
18
18
  import {
19
19
  resolveItemWithDependencies,
20
20
  resolveItemsByTag
21
- } from "./chunk-XGLNQDLN.js";
21
+ } from "./chunk-QESSGUKX.js";
22
22
  import {
23
23
  InvalidVariableValuesError,
24
24
  prepareItem,
25
25
  publishItem
26
- } from "./chunk-N4IXP3MY.js";
26
+ } from "./chunk-6Z4YJ5Q3.js";
27
27
  import {
28
28
  DEFAULT_REGISTRY_URL
29
- } from "./chunk-YZTVHRJ2.js";
29
+ } from "./chunk-3HPJM5IQ.js";
30
30
  import {
31
31
  trackRegistryItemAdded
32
- } from "./chunk-ZD3RDNZI.js";
32
+ } from "./chunk-H2SGM2V2.js";
33
33
  import {
34
34
  defineCommand
35
35
  } from "./chunk-S3S4TGEH.js";
@@ -41,7 +41,7 @@ import {
41
41
  } from "./chunk-ZTZA4UWZ.js";
42
42
  import {
43
43
  ITEM_TYPE_DIRS
44
- } from "./chunk-XQKVEQNY.js";
44
+ } from "./chunk-5ERVRJMV.js";
45
45
  import {
46
46
  isProjectRootMissing,
47
47
  realpath
@@ -15,7 +15,7 @@ import {
15
15
  } from "./chunk-PBN6GBJE.js";
16
16
  import {
17
17
  parseFps
18
- } from "./chunk-XQKVEQNY.js";
18
+ } from "./chunk-5ERVRJMV.js";
19
19
 
20
20
  // src/browser/windowsCrash.ts
21
21
  var STATUS_STACK_BUFFER_OVERRUN_DEC = "3221225595";
@@ -14,14 +14,14 @@ import {
14
14
  isAllowedHtmlAttribute,
15
15
  isSafeAttributeValue,
16
16
  sanitizeRichTextChildren
17
- } from "./chunk-XQKVEQNY.js";
17
+ } from "./chunk-5ERVRJMV.js";
18
18
  import {
19
19
  decodedUrlPath,
20
20
  removeElementWithGsapCascade
21
- } from "./chunk-LFNQDTSH.js";
21
+ } from "./chunk-VYKPBRCB.js";
22
22
  import {
23
23
  require_dist
24
- } from "./chunk-GNTVYF7E.js";
24
+ } from "./chunk-YOEGUBBY.js";
25
25
  import {
26
26
  readClipTiming,
27
27
  writeClipTiming
@@ -32,21 +32,21 @@ import {
32
32
  import {
33
33
  getUpdateMeta,
34
34
  withMeta
35
- } from "./chunk-35PWWBGZ.js";
35
+ } from "./chunk-YYEYOFHW.js";
36
36
  import {
37
37
  CONFIG_PATH,
38
38
  withFileLock
39
39
  } from "./chunk-XUXGIA7H.js";
40
40
  import {
41
41
  VERSION
42
- } from "./chunk-TCWMDCBX.js";
42
+ } from "./chunk-IZIRIDJH.js";
43
43
  import {
44
44
  OPTIONAL_PACKAGES,
45
45
  installedOptionalPackageVersion
46
46
  } from "./chunk-3DKN5WKL.js";
47
47
  import {
48
48
  resolveExtractCacheDir
49
- } from "./chunk-IZPN423R.js";
49
+ } from "./chunk-EXH6L2XZ.js";
50
50
  import {
51
51
  normalizeErrorMessage
52
52
  } from "./chunk-KNU5COPB.js";
@@ -6,7 +6,7 @@ var __filename = __hf_fileURLToPath(import.meta.url);
6
6
  var __dirname = __hf_dirname(__filename);
7
7
  import {
8
8
  stoppedByCancelSignal
9
- } from "./chunk-KQGWP4KH.js";
9
+ } from "./chunk-FNN5QINS.js";
10
10
  import {
11
11
  DEFAULT_MODEL,
12
12
  ensureModel,
@@ -8,7 +8,7 @@ import {
8
8
  DEFAULT_REGISTRY_URL,
9
9
  fetchItemManifest,
10
10
  fetchRegistryManifest
11
- } from "./chunk-YZTVHRJ2.js";
11
+ } from "./chunk-3HPJM5IQ.js";
12
12
 
13
13
  // src/registry/resolver.ts
14
14
  function defaultWarn(message) {
@@ -39,7 +39,7 @@ import {
39
39
  stripEmbeddedRuntimeScripts,
40
40
  styleElementsFor,
41
41
  warnUnknownEnumValues
42
- } from "./chunk-QBYHNRHU.js";
42
+ } from "./chunk-S3RCK56N.js";
43
43
  import {
44
44
  cssVariableName
45
45
  } from "./chunk-VC76R6W2.js";
@@ -49,7 +49,7 @@ import {
49
49
  } from "./chunk-OFQWTKPW.js";
50
50
  import {
51
51
  lintHyperframeHtml
52
- } from "./chunk-GNTVYF7E.js";
52
+ } from "./chunk-YOEGUBBY.js";
53
53
  import {
54
54
  checkSubCompositionUsability,
55
55
  resolveSubCompositionContent
@@ -72,7 +72,7 @@ import {
72
72
  } from "./chunk-SDYDNHEE.js";
73
73
  import {
74
74
  parse
75
- } from "./chunk-2PSPARWP.js";
75
+ } from "./chunk-TYXH3EKP.js";
76
76
 
77
77
  // ../core/dist/compiler/htmlCompiler.js
78
78
  import { resolve } from "path";
@@ -11,7 +11,7 @@ import {
11
11
  import {
12
12
  decodeAuthoredAttribute,
13
13
  scanHtmlOpeningTags
14
- } from "./chunk-LFNQDTSH.js";
14
+ } from "./chunk-VYKPBRCB.js";
15
15
  import {
16
16
  COLOR_GRADING_ADJUST_KEYS,
17
17
  COLOR_GRADING_ADVANCED_LIMITS,
@@ -10,22 +10,22 @@ import {
10
10
  import {
11
11
  launchManagedBrowser,
12
12
  resolveManagedGpuMode
13
- } from "./chunk-RRBKEHST.js";
13
+ } from "./chunk-4UMKAUZI.js";
14
14
  import {
15
15
  resolveDiagnosticNavigationTimeoutMs,
16
16
  windowsChromeCrashRemediation
17
- } from "./chunk-HVXRYMGQ.js";
17
+ } from "./chunk-PKO2EWO7.js";
18
18
  import {
19
19
  resolveLocalBrowserGpuMode,
20
20
  resolveLocalWebGpu
21
- } from "./chunk-ZGCRVM5M.js";
21
+ } from "./chunk-EVTHG34H.js";
22
22
  import {
23
23
  c
24
24
  } from "./chunk-ZTZA4UWZ.js";
25
25
  import {
26
26
  assertWebGpuAdapterAvailable,
27
27
  compositionRequiresWebGpu
28
- } from "./chunk-IZPN423R.js";
28
+ } from "./chunk-EXH6L2XZ.js";
29
29
  import {
30
30
  normalizeErrorMessage
31
31
  } from "./chunk-KNU5COPB.js";
@@ -107,7 +107,7 @@ async function openSettledCompositionPage(html, url, options) {
107
107
  const { ensureBrowser, findSystemBrowser } = await import("./manager-ZLJD3EAY.js");
108
108
  const browser = await ensureBrowser();
109
109
  const puppeteer = await import("puppeteer-core");
110
- const { buildChromeArgs } = await import("./src-2NN2WB6X.js");
110
+ const { buildChromeArgs } = await import("./src-AVQBAECC.js");
111
111
  const requestedGpuMode = options.browserGpuMode ?? resolveCliChromeGpuMode();
112
112
  const requiresWebGpu = compositionRequiresWebGpu(html);
113
113
  let softwareWebGpu = false;
@@ -5691,6 +5691,9 @@ Parser.acorn = {
5691
5691
  function parse3(input, options) {
5692
5692
  return Parser.parse(input, options);
5693
5693
  }
5694
+ function parseExpressionAt2(input, pos, options) {
5695
+ return Parser.parseExpressionAt(input, pos, options);
5696
+ }
5694
5697
 
5695
5698
  // ../../node_modules/.bun/acorn-walk@8.3.5/node_modules/acorn-walk/dist/walk.mjs
5696
5699
  function simple(node, visitors, baseVisitor, state, override) {
@@ -6052,6 +6055,7 @@ base.MethodDefinition = base.PropertyDefinition = base.Property = function(node,
6052
6055
 
6053
6056
  export {
6054
6057
  parse3 as parse,
6058
+ parseExpressionAt2 as parseExpressionAt,
6055
6059
  simple,
6056
6060
  ancestor,
6057
6061
  full
@@ -14,7 +14,7 @@ import {
14
14
  import {
15
15
  FONT_ALIAS_MAP,
16
16
  resolveAliasDisplayName
17
- } from "./chunk-LFNQDTSH.js";
17
+ } from "./chunk-VYKPBRCB.js";
18
18
  import {
19
19
  parseHTML
20
20
  } from "./chunk-SDYDNHEE.js";
@@ -10,7 +10,7 @@ import {
10
10
  isDevice,
11
11
  isQuality,
12
12
  render
13
- } from "./chunk-S22FKF6G.js";
13
+ } from "./chunk-5VMSUW4Z.js";
14
14
 
15
15
  // src/api/removeBackground.ts
16
16
  import { resolve } from "path";