hyperframes 0.8.186 → 0.8.189

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 (186) hide show
  1. package/dist/{add-UGK7AZI6.js → add-TIKUM2YX.js} +12 -12
  2. package/dist/{animatedGifPrep-HPZPSB43.js → animatedGifPrep-25X4G5IE.js} +7 -7
  3. package/dist/api.js +15 -15
  4. package/dist/{asset-X2GTFWOY.js → asset-TPKLIP4R.js} +2 -2
  5. package/dist/{assetCataloger-5NWEG4IU.js → assetCataloger-PQAIV3FI.js} +7 -7
  6. package/dist/{audio-7PBM5F3H.js → audio-6RLPKB5X.js} +15 -15
  7. package/dist/{auth-WABSMO46.js → auth-O7QSTP6Y.js} +1 -1
  8. package/dist/{autoUpdate-6SCMLTSC.js → autoUpdate-TIEJODP7.js} +2 -2
  9. package/dist/{backgroundChecks-XOGPAAR3.js → backgroundChecks-K2AXYDYG.js} +3 -3
  10. package/dist/backgroundChecksWorker.js +3 -3
  11. package/dist/{batchRender-VR6IA77K.js → batchRender-ORVWYJAH.js} +4 -4
  12. package/dist/{beats-3IWXLMSC.js → beats-2VTB2ATR.js} +4 -4
  13. package/dist/{benchmark-2SSYATCX.js → benchmark-NLNBL6YR.js} +9 -9
  14. package/dist/{browser-PMRN345D.js → browser-M5UV6VJB.js} +3 -3
  15. package/dist/{bundleWithLocalizedFonts-TT32MZBO.js → bundleWithLocalizedFonts-EDD2XDS2.js} +2 -2
  16. package/dist/{capture-4VD6AKUJ.js → capture-JSYVNFKO.js} +10 -10
  17. package/dist/{capture-BDGYTE57.js → capture-WHWEE5FE.js} +2 -2
  18. package/dist/{captureCompositionFrame-5FVLAETA.js → captureCompositionFrame-JANGQCIA.js} +13 -13
  19. package/dist/{catalog-HUYZO5D7.js → catalog-MPOOKNSZ.js} +12 -12
  20. package/dist/{catch-up-SSGTR2ZT.js → catch-up-6KZV3UMZ.js} +4 -4
  21. package/dist/{check-JWUWHGM2.js → check-G273NWK7.js} +37 -36
  22. package/dist/{checkBrowser-X7G6YNR7.js → checkBrowser-G53E2ZQI.js} +32 -33
  23. package/dist/{chunk-WHMFW5ET.js → chunk-2CYM34M7.js} +3 -3
  24. package/dist/{chunk-HZ7M2MZA.js → chunk-37EPEFXM.js} +1 -1
  25. package/dist/{chunk-4XFFJAWS.js → chunk-3OLOVRWS.js} +1 -1
  26. package/dist/{chunk-ZIRIDSDB.js → chunk-3X6LH25W.js} +1 -1
  27. package/dist/{chunk-TH7J3JZ5.js → chunk-44TJOEH5.js} +92 -25
  28. package/dist/{chunk-K6KBOORN.js → chunk-4DZ3HBKF.js} +2 -2
  29. package/dist/{chunk-U7QTMRLW.js → chunk-4QFKGRTB.js} +2 -2
  30. package/dist/{chunk-7MVODWQF.js → chunk-5544QB3U.js} +1 -1
  31. package/dist/{chunk-7AUMTARQ.js → chunk-565X6Q4X.js} +3 -3
  32. package/dist/{chunk-J36JVBLR.js → chunk-5C7R55BJ.js} +1 -1
  33. package/dist/{chunk-YRAJDFIN.js → chunk-5HJJEHGE.js} +1 -1
  34. package/dist/{chunk-5UBZPG74.js → chunk-6A45RKAK.js} +1 -1
  35. package/dist/{chunk-ROWEDRVX.js → chunk-6RA4TWGV.js} +1 -1
  36. package/dist/{chunk-3YHGQJI6.js → chunk-74Y43RJZ.js} +3 -3
  37. package/dist/{chunk-4AFNEKU7.js → chunk-ANYBRVPF.js} +1 -1
  38. package/dist/{chunk-R6IGQ5NO.js → chunk-AQ3L7DVB.js} +2 -2
  39. package/dist/{chunk-LDW3KVGK.js → chunk-ASZ4IQB4.js} +2 -2
  40. package/dist/{chunk-DQZMJS2P.js → chunk-AYBKDHYD.js} +2 -2
  41. package/dist/{chunk-RVZNSKRH.js → chunk-B52BJM5K.js} +2 -2
  42. package/dist/{chunk-GTMBII7X.js → chunk-B634ZCY2.js} +1 -1
  43. package/dist/chunk-BPX7LZG6.js +3896 -0
  44. package/dist/{chunk-5ZMIVTHN.js → chunk-BZQLTNMB.js} +219 -79
  45. package/dist/{chunk-MY6CVBDD.js → chunk-CE7EQUBV.js} +1 -1
  46. package/dist/{chunk-ZVBEGBII.js → chunk-CSYSEPWL.js} +31 -7
  47. package/dist/{chunk-EZINX6HH.js → chunk-CTF7BYCV.js} +3 -3
  48. package/dist/{chunk-2II34JPM.js → chunk-E676Y7AY.js} +82 -29
  49. package/dist/{chunk-YQICCAVA.js → chunk-E7TI5PAQ.js} +1 -1
  50. package/dist/{chunk-TTVHYD5R.js → chunk-EI7FP7F3.js} +1 -1
  51. package/dist/{chunk-UJZT6HNN.js → chunk-F45HHA3M.js} +1 -1
  52. package/dist/{chunk-TQ2RRB5V.js → chunk-FJF5JBYU.js} +1 -1
  53. package/dist/{chunk-Z5233OAN.js → chunk-GBT7P3OQ.js} +5 -5
  54. package/dist/{chunk-NPDPDEPP.js → chunk-GWYMAII7.js} +1 -1
  55. package/dist/{chunk-UAJCTEK2.js → chunk-HNMDLKA4.js} +1 -1
  56. package/dist/{chunk-FCWFV4P7.js → chunk-HQIFMCQN.js} +2278 -2273
  57. package/dist/{chunk-DTXDQ6OP.js → chunk-HUG47UEE.js} +1 -1
  58. package/dist/{chunk-7M7TMM4S.js → chunk-HXM2ISEK.js} +264 -124
  59. package/dist/{chunk-WLHNIIXU.js → chunk-IFXOMIBP.js} +3 -3
  60. package/dist/{chunk-77QM6YRQ.js → chunk-IPEP346Y.js} +1 -1
  61. package/dist/{chunk-22QKQDEE.js → chunk-JIPUWKLA.js} +14 -14
  62. package/dist/{chunk-YNH6ERDL.js → chunk-JZDVIDFH.js} +2 -2
  63. package/dist/{chunk-KNLSYCI5.js → chunk-KLWUB37U.js} +7 -7
  64. package/dist/{chunk-PEIV2SOG.js → chunk-KS4HMJJD.js} +1 -1
  65. package/dist/{chunk-4NTW45W5.js → chunk-M6FHSQZ3.js} +3 -3
  66. package/dist/{chunk-RFJ6SX4U.js → chunk-NDBWI7OA.js} +5 -5
  67. package/dist/{chunk-ACLABKEF.js → chunk-NSJ5HD6A.js} +5 -5
  68. package/dist/{chunk-FRLTKTOR.js → chunk-OHXHBMF4.js} +1 -1
  69. package/dist/{chunk-7MLFYMFB.js → chunk-QMFI4N7J.js} +1 -1
  70. package/dist/{chunk-HOFX63F2.js → chunk-QYQ2EYOI.js} +3 -3
  71. package/dist/{chunk-27H2363S.js → chunk-R5FS7GFU.js} +1 -1
  72. package/dist/{chunk-PFD25NAC.js → chunk-RIJHDTM5.js} +4 -0
  73. package/dist/{chunk-FH7WODJH.js → chunk-SGFMCNLY.js} +8 -0
  74. package/dist/{chunk-BRTDLVK3.js → chunk-SMF6YAUL.js} +9 -11
  75. package/dist/{chunk-6IOBAOU7.js → chunk-T37XXYRK.js} +1 -1
  76. package/dist/{chunk-T4RP55P2.js → chunk-TFUAKV6O.js} +1 -1
  77. package/dist/{chunk-U6RXZNZE.js → chunk-TMBUBLZB.js} +55 -23
  78. package/dist/{chunk-5ZMXGNGC.js → chunk-TPTQHOXU.js} +9 -9
  79. package/dist/{chunk-U4BMRIE6.js → chunk-TREMHDWT.js} +12 -10
  80. package/dist/{chunk-Q447CX26.js → chunk-TSFA2Y5C.js} +60 -47
  81. package/dist/{chunk-Y2M6XSNK.js → chunk-VRQU564T.js} +1 -1
  82. package/dist/{chunk-ID5AJ4L3.js → chunk-WMJJCHVQ.js} +2 -2
  83. package/dist/{chunk-RNZEQTWZ.js → chunk-WYCFMNU3.js} +15 -2
  84. package/dist/{chunk-UJKQWGFF.js → chunk-X7HBSTCZ.js} +8 -0
  85. package/dist/{chunk-ZKBW7NU2.js → chunk-XJVXROOL.js} +2 -2
  86. package/dist/{chunk-CML25PAF.js → chunk-XNFDDVJS.js} +27 -3
  87. package/dist/{chunk-RPUIMFHF.js → chunk-Z2BW2WJS.js} +1 -1
  88. package/dist/{chunk-2PZZMAME.js → chunk-ZPMF6GAQ.js} +17 -12
  89. package/dist/{clean-IM2JIAUT.js → clean-PS4VYGQ6.js} +17 -17
  90. package/dist/cli.js +53 -53
  91. package/dist/{cloud-6IPBCJSX.js → cloud-E47CE5VQ.js} +4 -4
  92. package/dist/{cloudrun-MWZ6S2I2.js → cloudrun-3J4SQBXE.js} +5 -5
  93. package/dist/{compare-WD7A2TV5.js → compare-EAKHXBDO.js} +29 -29
  94. package/dist/{compiler-2EKSMC3I.js → compiler-23MT6CX6.js} +4 -4
  95. package/dist/{component-JKALWH36.js → component-QBOXYJJS.js} +3 -3
  96. package/dist/{compositions-643NAG4A.js → compositions-QC3EO3MJ.js} +11 -11
  97. package/dist/{delete-EASPXKHQ.js → delete-TXEOLPC6.js} +4 -4
  98. package/dist/deploy-3B3WJ6PM.js +300 -0
  99. package/dist/{destroy-4B5HW5FH.js → destroy-SSPAKADI.js} +13 -3
  100. package/dist/{dist-F6FOKRSU.js → dist-F4UJFK4S.js} +5 -3
  101. package/dist/{dist-LM7AVHOU.js → dist-JH32CBQL.js} +1 -1
  102. package/dist/{doctor-7XUVYDJQ.js → doctor-2CRFH4B3.js} +11 -11
  103. package/dist/{events-TULV6D3G.js → events-GUIOSBIB.js} +3 -3
  104. package/dist/{events-5TTPYBKG.js → events-KVTX3QFV.js} +2 -2
  105. package/dist/{feedback-4FTPWM6P.js → feedback-VQIOSTIB.js} +7 -7
  106. package/dist/{ffmpeg-MP7ZVYLZ.js → ffmpeg-BPCZGXFW.js} +7 -7
  107. package/dist/{figma-B7LFWYKO.js → figma-QIOKCH26.js} +3 -3
  108. package/dist/fontLocalizeCli.js +9 -9
  109. package/dist/{get-F7W4AQ2V.js → get-TU45SNXF.js} +4 -4
  110. package/dist/{gpuPolicy-NSNVDFXC.js → gpuPolicy-AWAJBGYY.js} +7 -7
  111. package/dist/{grade-compare-6QXDTLS2.js → grade-compare-LDNUXX3Q.js} +30 -30
  112. package/dist/{help-RJAA4O74.js → help-YUCHJKKL.js} +1 -1
  113. package/dist/{history-OOQBDVV5.js → history-MMHFUMIG.js} +7 -7
  114. package/dist/hyperframe.manifest.json +1 -1
  115. package/dist/hyperframe.runtime.iife.js +65 -64
  116. package/dist/hyperframes-player.global.js +3 -3
  117. package/dist/{info-5OGGYYLO.js → info-HBHOFSC2.js} +8 -8
  118. package/dist/{init-DM3TJKW2.js → init-3E4GUXIZ.js} +27 -27
  119. package/dist/{inspect-FECQCLS5.js → inspect-YNUPJVIH.js} +30 -30
  120. package/dist/{installer-WOG4VORV.js → installer-WLCRP33K.js} +5 -5
  121. package/dist/{keyframes-SZHWUF5Y.js → keyframes-Z47GHCGO.js} +6 -6
  122. package/dist/{lambda-JG2ZRGMC.js → lambda-CA4PEUO2.js} +20 -13
  123. package/dist/{layout-7ACF7ZKC.js → layout-YPV6PIKF.js} +30 -30
  124. package/dist/{lint-ZCQGMILV.js → lint-3AVVQ74A.js} +7 -7
  125. package/dist/{lintProject-JATQKR64.js → lintProject-XM3DLUKG.js} +1 -1
  126. package/dist/{list-MH2X3Y2T.js → list-JH52Y735.js} +7 -7
  127. package/dist/{login-CK46WX5U.js → login-G7NPJUAW.js} +4 -4
  128. package/dist/{manager-GXTPNJVW.js → manager-2LSMMZY4.js} +8 -8
  129. package/dist/{media-treatment-EH2AT34Z.js → media-treatment-BVMMD5EN.js} +13 -13
  130. package/dist/{models-D5XP2UK6.js → models-P3TNRVRV.js} +11 -11
  131. package/dist/{motionShot-UR7D3SRQ.js → motionShot-LK62QHNE.js} +18 -18
  132. package/dist/{normalize-audio-635JOR5W.js → normalize-audio-Y7BAQ7AR.js} +6 -6
  133. package/dist/{open-6WE5WFVM.js → open-CCFFLAT7.js} +12 -12
  134. package/dist/{parakeetRunner-STHZPG32.js → parakeetRunner-N2BWSOSD.js} +12 -12
  135. package/dist/{pipeline-LVEKRETU.js → pipeline-3VT2DQGU.js} +8 -8
  136. package/dist/{play-W6TDW4FE.js → play-G4I5IFHO.js} +20 -20
  137. package/dist/{policies-XXNGXWHV.js → policies-MBWGLMWB.js} +17 -0
  138. package/dist/{preflight-LIMQXLR7.js → preflight-2KU2QLCZ.js} +8 -8
  139. package/dist/{present-RX5QX6UR.js → present-EJ7XHGQO.js} +16 -16
  140. package/dist/{preview-KIWTWK63.js → preview-O23BYFAY.js} +18 -18
  141. package/dist/{producer-TSNKSCUM.js → producer-UJQVLKLP.js} +1 -1
  142. package/dist/{progress-NHJIHAAG.js → progress-PX3PVAIM.js} +5 -3
  143. package/dist/{projectConfig-NCP7JRH4.js → projectConfig-QFVIBT37.js} +7 -7
  144. package/dist/{publication-5W5UZWGC.js → publication-4UYGFB2X.js} +3 -3
  145. package/dist/{publish-7WR4XJ6I.js → publish-MHLVJLCR.js} +9 -9
  146. package/dist/{remove-background-43JGBRWQ.js → remove-background-N7AHTZWP.js} +9 -9
  147. package/dist/{render-7T44HIM6.js → render-6HQV4LZJ.js} +11 -9
  148. package/dist/{render-WHMLYIOI.js → render-CDATEVDJ.js} +31 -22
  149. package/dist/{render-456HCO6O.js → render-EI2ODKOP.js} +45 -29
  150. package/dist/{render-batch-LURBJTBV.js → render-batch-F7HMC7XH.js} +7 -7
  151. package/dist/renderSetupWorker.js +1 -1
  152. package/dist/{resolver-MBIW4VC4.js → resolver-63DB5JCY.js} +5 -5
  153. package/dist/{sam-MC24SZHC.js → sam-FHJ7IL7T.js} +3 -1
  154. package/dist/{sherpa-5J2AALED.js → sherpa-AK3MTPL3.js} +11 -11
  155. package/dist/{sites-MAVH57MO.js → sites-5PWHAMEG.js} +1 -1
  156. package/dist/skills/hyperframes/references/motion.md +1 -0
  157. package/dist/{skills-UHOXOGGF.js → skills-EVIDL7PV.js} +5 -5
  158. package/dist/{skillsUpdateCheck-PDZIFUJE.js → skillsUpdateCheck-YCNJYDJO.js} +3 -3
  159. package/dist/{snapshot-PFV7ALLH.js → snapshot-WSYZKR3C.js} +35 -35
  160. package/dist/{src-XK5YIR6L.js → src-KTD6WTEV.js} +8 -8
  161. package/dist/{src-DCVSEODX.js → src-YNXBU4ZQ.js} +12 -6
  162. package/dist/{state-ORRPOLMQ.js → state-JPNCCXAV.js} +3 -1
  163. package/dist/{staticProjectServer-4IE4G4JO.js → staticProjectServer-D2D3BKBP.js} +18 -16
  164. package/dist/studio/assets/{hyperframes-player-B_skzvYC.js → hyperframes-player-CkK8Zijf.js} +1 -1
  165. package/dist/studio/assets/{index-CgLbvCUo.js → index-ATnRoBug.js} +1 -1
  166. package/dist/studio/assets/{index-Dn5FAk2e.js → index-B2JcCaRF.js} +130 -130
  167. package/dist/studio/index.html +1 -1
  168. package/dist/{studio-api-JMWYU7KF.js → studio-api-3ZGQPE5J.js} +10 -10
  169. package/dist/{studioServer-BWLSTGIG.js → studioServer-VWM4J7ZP.js} +48 -48
  170. package/dist/{telemetry-JCU3AV7W.js → telemetry-BEVI64BB.js} +3 -3
  171. package/dist/templates/_shared/AGENTS.md +5 -0
  172. package/dist/templates/_shared/CLAUDE.md +5 -0
  173. package/dist/{timeline-BCIFQYOM.js → timeline-P57FUXJQ.js} +18 -18
  174. package/dist/{tokens-7IXKALMQ.js → tokens-OUQY6LPD.js} +2 -2
  175. package/dist/{transcribe-ZUQD3B32.js → transcribe-CK66VIU4.js} +10 -10
  176. package/dist/{transcribe-HW7HGJ4V.js → transcribe-QUPX67KC.js} +16 -16
  177. package/dist/{updateCheck-Z6LNEK7B.js → updateCheck-XZ43CH3L.js} +2 -2
  178. package/dist/{upgrade-JYH72JGL.js → upgrade-7QQNGI7I.js} +2 -2
  179. package/dist/{urlDownloader-WKLFHSUH.js → urlDownloader-ESAEL6YX.js} +6 -6
  180. package/dist/{validate-QCC27YYI.js → validate-5GZ6KFRU.js} +24 -24
  181. package/dist/{video-EZ7ONY6L.js → video-AQNVR6PE.js} +7 -7
  182. package/dist/warmCheck.js +37 -38
  183. package/package.json +18 -2
  184. package/dist/chunk-KANNRHY7.js +0 -53
  185. package/dist/chunk-UOZX5W5T.js +0 -3852
  186. package/dist/deploy-CDKCQ5MX.js +0 -196
@@ -4,22 +4,22 @@ import { dirname as __hf_dirname } from "node:path";
4
4
  var require = __hf_createRequire(import.meta.url);
5
5
  var __filename = __hf_fileURLToPath(import.meta.url);
6
6
  var __dirname = __hf_dirname(__filename);
7
+ import {
8
+ ambiguousIssue,
9
+ loadBrowserScript
10
+ } from "./chunk-TPTQHOXU.js";
7
11
  import {
8
12
  auditClipDurations,
9
13
  shouldIgnoreHttpError,
10
14
  shouldIgnoreRequestFailure
11
- } from "./chunk-22QKQDEE.js";
12
- import {
13
- checkSnapshotDirectory,
14
- rectToBbox
15
- } from "./chunk-KANNRHY7.js";
16
- import {
17
- ambiguousIssue,
18
- loadBrowserScript
19
- } from "./chunk-5ZMXGNGC.js";
15
+ } from "./chunk-JIPUWKLA.js";
20
16
  import {
21
17
  serveStaticProjectHtml
22
- } from "./chunk-ZVBEGBII.js";
18
+ } from "./chunk-CSYSEPWL.js";
19
+ import {
20
+ artifactDirectory,
21
+ finishSnapshotRun
22
+ } from "./chunk-TMBUBLZB.js";
23
23
  import {
24
24
  FfmpegUnavailableError,
25
25
  decideMediaProxyEligibility,
@@ -27,7 +27,7 @@ import {
27
27
  proxyVariantFor,
28
28
  resolveProxies,
29
29
  scanProjectMediaCodecMap
30
- } from "./chunk-5ZMIVTHN.js";
30
+ } from "./chunk-BZQLTNMB.js";
31
31
  import {
32
32
  AUDIT_SEEK_OPTIONS,
33
33
  DEFAULT_ZOOM_PADDING_PX,
@@ -41,14 +41,17 @@ import {
41
41
  seekCompositionTimeline,
42
42
  seekInPage,
43
43
  waitForPreferredSeekTarget
44
- } from "./chunk-U4BMRIE6.js";
44
+ } from "./chunk-TREMHDWT.js";
45
45
  import {
46
46
  BrowserCleanupError,
47
47
  closeManagedBrowser
48
- } from "./chunk-UAJCTEK2.js";
48
+ } from "./chunk-HNMDLKA4.js";
49
+ import {
50
+ findStageProxyBox
51
+ } from "./chunk-SGFMCNLY.js";
49
52
  import {
50
53
  resolveAutoProxy
51
- } from "./chunk-RPUIMFHF.js";
54
+ } from "./chunk-Z2BW2WJS.js";
52
55
  import {
53
56
  normalizeErrorMessage
54
57
  } from "./chunk-KNU5COPB.js";
@@ -95,7 +98,7 @@ function motionBlurDrafts(probe) {
95
98
  code: "motion_blur_no_movers",
96
99
  severity: "info",
97
100
  message: `${ASKED} nothing in the composition moves fast enough to blur, so it has no effect`,
98
- fixHint: "animate an element's transform or position by 2+ px per frame, or drop data-motion-blur",
101
+ fixHint: `animate an element's transform or position by 2+ px per frame; if the motion is set from a timeline callback (onUpdate, render(t)), add data-motion-blur-events="on"; otherwise drop data-motion-blur`,
99
102
  time: 0
100
103
  }
101
104
  ];
@@ -132,10 +135,41 @@ function dropMotionBlurConsoleEcho(drafts, found) {
132
135
  );
133
136
  }
134
137
 
138
+ // src/utils/checkSnapshotDirectory.ts
139
+ import { resolve } from "path";
140
+ var runDirectories = /* @__PURE__ */ new Map();
141
+ var activeChecks = /* @__PURE__ */ new Map();
142
+ function beginCheckSnapshots(projectDir) {
143
+ const project = resolve(projectDir);
144
+ activeChecks.set(project, (activeChecks.get(project) ?? 0) + 1);
145
+ }
146
+ function checkSnapshotDirectory(projectDir) {
147
+ const project = resolve(projectDir);
148
+ let directory = runDirectories.get(project);
149
+ if (!directory) {
150
+ directory = artifactDirectory(project, "snapshots");
151
+ runDirectories.set(project, directory);
152
+ }
153
+ return directory;
154
+ }
155
+ async function finishCheckSnapshots(projectDir) {
156
+ const project = resolve(projectDir);
157
+ const remaining = Math.max(0, (activeChecks.get(project) ?? 1) - 1);
158
+ if (remaining > 0) {
159
+ activeChecks.set(project, remaining);
160
+ return;
161
+ }
162
+ activeChecks.delete(project);
163
+ const path = runDirectories.get(project);
164
+ if (!path) return;
165
+ runDirectories.delete(project);
166
+ await finishSnapshotRun(project, path);
167
+ }
168
+
135
169
  // src/utils/checkBrowser.ts
136
170
  import { existsSync, mkdirSync, writeFileSync } from "fs";
137
171
  import os from "os";
138
- import { join, resolve } from "path";
172
+ import { join, resolve as resolve2 } from "path";
139
173
 
140
174
  // src/utils/gsapTweenTails.ts
141
175
  var TWEEN_TAIL_WINDOW = 0.25;
@@ -247,9 +281,14 @@ function collectTweenRecords() {
247
281
  );
248
282
  }
249
283
 
284
+ // src/utils/checkTypes.ts
285
+ function rectToBbox(rect) {
286
+ return { x: rect.left, y: rect.top, width: rect.width, height: rect.height };
287
+ }
288
+
250
289
  // src/utils/checkBrowser.ts
251
290
  async function preResolveHostileMediaProxies(projectDir, html, autoProxyOverride) {
252
- const none = { findings: [], failedPaths: /* @__PURE__ */ new Set() };
291
+ const none = { findings: [], failedPaths: /* @__PURE__ */ new Set(), files: [] };
253
292
  if (!resolveAutoProxy(projectDir, autoProxyOverride)) return none;
254
293
  let codecMap;
255
294
  try {
@@ -265,17 +304,20 @@ async function preResolveHostileMediaProxies(projectDir, html, autoProxyOverride
265
304
  );
266
305
  if (hostileEntries.length === 0) return none;
267
306
  const startedAt = Date.now();
307
+ const stageBox = findStageProxyBox(html);
268
308
  const sources = hostileEntries.map(([pathname, facts]) => {
269
309
  const file = pathname.replace(/^\/+/, "");
270
310
  return {
271
311
  pathname,
272
312
  file,
273
- sourcePath: resolve(projectDir, file),
274
- variant: proxyVariantFor(facts)
313
+ sourcePath: resolve2(projectDir, file),
314
+ variant: proxyVariantFor(facts),
315
+ box: stageBox
275
316
  };
276
317
  });
277
318
  const total = hostileEntries.length;
278
- const toMake = sources.filter((source) => !proxyCached(projectDir, source)).length;
319
+ const cached = sources.map((source) => proxyCached(projectDir, source));
320
+ const toMake = cached.filter((isCached) => !isCached).length;
279
321
  if (toMake > 0) {
280
322
  console.error(
281
323
  `[hyperframes] Making browser-playable copies of ${toMake} video${toMake === 1 ? "" : "s"} Chrome cannot decode. Only the first check of these files waits for this; later checks reuse the copies.`
@@ -306,11 +348,18 @@ async function preResolveHostileMediaProxies(projectDir, html, autoProxyOverride
306
348
  )
307
349
  );
308
350
  }
309
- return { findings, failedPaths: new Set(failures.map(({ pathname }) => pathname)) };
351
+ const files = sources.map(({ file }, index) => {
352
+ const result = results[index];
353
+ if (result.status === "rejected") {
354
+ return { file, state: "failed", reason: normalizeErrorMessage(result.reason) };
355
+ }
356
+ return { file, state: cached[index] ? "cached" : "ready" };
357
+ });
358
+ return { findings, failedPaths: new Set(failures.map(({ pathname }) => pathname)), files };
310
359
  }
311
360
  function proxyCached(projectDir, source) {
312
361
  try {
313
- return existsSync(getProxyCachePath(projectDir, source.sourcePath, source.variant));
362
+ return existsSync(getProxyCachePath(projectDir, source.sourcePath, source.variant, source.box));
314
363
  } catch {
315
364
  return false;
316
365
  }
@@ -319,7 +368,7 @@ function proxyFailedDraft(message) {
319
368
  return { code: "media_proxy_failed", severity: "warning", message, time: 0 };
320
369
  }
321
370
  async function runBrowserCheck(project, options, motion, runGrid, deadline, prelaunched) {
322
- const { bundleWithLocalizedFonts } = await import("./bundleWithLocalizedFonts-TT32MZBO.js");
371
+ const { bundleWithLocalizedFonts } = await import("./bundleWithLocalizedFonts-EDD2XDS2.js");
323
372
  const html = await bundleWithLocalizedFonts(project.dir);
324
373
  deadline?.enter("copies");
325
374
  const { findings: drafts, failedPaths } = await preResolveHostileMediaProxies(
@@ -366,7 +415,7 @@ async function runBrowserCheck(project, options, motion, runGrid, deadline, prel
366
415
  await waitForPreferredSeekTarget(page);
367
416
  const rootAnchor = await resolveRootAnchor(page);
368
417
  const launchSettleMs = Date.now() - launchSettleStart;
369
- const { analyzeClipMediaFit } = await import("./src-DCVSEODX.js");
418
+ const { analyzeClipMediaFit } = await import("./src-YNXBU4ZQ.js");
370
419
  for (const entry of await auditClipDurations(page, analyzeClipMediaFit, options.timeout)) {
371
420
  drafts.push({ code: "clip_media_fit", severity: entry.level, message: entry.text, time: 0 });
372
421
  }
@@ -475,7 +524,7 @@ function mergeHelperDrafts(primary, helper) {
475
524
  }
476
525
  async function captureFindingCrops(project, options, requests, deadline) {
477
526
  if (requests.length === 0) return [];
478
- const { bundleWithLocalizedFonts } = await import("./bundleWithLocalizedFonts-TT32MZBO.js");
527
+ const { bundleWithLocalizedFonts } = await import("./bundleWithLocalizedFonts-EDD2XDS2.js");
479
528
  const html = await bundleWithLocalizedFonts(project.dir);
480
529
  const server = await serveStaticProjectHtml(
481
530
  project.dir,
@@ -651,11 +700,11 @@ async function abortedImagesStillBroken(page, drafts) {
651
700
  if (urls.length === 0) return /* @__PURE__ */ new Set();
652
701
  const broken = await page.evaluate(
653
702
  async (candidates, capMs) => {
654
- const fails = (img) => new Promise((resolve2) => {
655
- const cap = setTimeout(() => resolve2(false), capMs);
703
+ const fails = (img) => new Promise((resolve3) => {
704
+ const cap = setTimeout(() => resolve3(false), capMs);
656
705
  img.decode().then(
657
- () => resolve2(false),
658
- () => resolve2(true)
706
+ () => resolve3(false),
707
+ () => resolve3(true)
659
708
  ).finally(() => clearTimeout(cap));
660
709
  });
661
710
  const stillBroken = await Promise.all(
@@ -1680,6 +1729,10 @@ function matchComponentFindings({
1680
1729
  }
1681
1730
 
1682
1731
  export {
1732
+ beginCheckSnapshots,
1733
+ checkSnapshotDirectory,
1734
+ finishCheckSnapshots,
1735
+ rectToBbox,
1683
1736
  preResolveHostileMediaProxies,
1684
1737
  runBrowserCheck,
1685
1738
  samplingBrowserCount,
@@ -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-TULV6D3G.js");
1281
+ const { trackCommandFailure } = await import("./events-GUIOSBIB.js");
1282
1282
  trackCommandFailure(
1283
1283
  command,
1284
1284
  err,
@@ -11,7 +11,7 @@ import {
11
11
  MAX_AUDIO_GAIN_DB,
12
12
  formatAudioGain,
13
13
  isAudibleVideoElement
14
- } from "./chunk-UJKQWGFF.js";
14
+ } from "./chunk-X7HBSTCZ.js";
15
15
  import {
16
16
  findFfBinary
17
17
  } from "./chunk-VAS6HQX3.js";
@@ -6,7 +6,7 @@ var __filename = __hf_fileURLToPath(import.meta.url);
6
6
  var __dirname = __hf_dirname(__filename);
7
7
  import {
8
8
  shouldTrack
9
- } from "./chunk-6IOBAOU7.js";
9
+ } from "./chunk-T37XXYRK.js";
10
10
 
11
11
  // src/telemetry/renderObservability.ts
12
12
  function renderObservabilityTelemetryPayload(observability) {
@@ -17,7 +17,7 @@ import {
17
17
  } from "./chunk-AWDFDFI3.js";
18
18
  import {
19
19
  isBlockedNetworkHost
20
- } from "./chunk-7M7TMM4S.js";
20
+ } from "./chunk-HXM2ISEK.js";
21
21
  import {
22
22
  DOMParser,
23
23
  parseHTML
@@ -14,24 +14,24 @@ import {
14
14
  } from "./chunk-6JR2XUEE.js";
15
15
  import {
16
16
  readCompositionFps
17
- } from "./chunk-DTXDQ6OP.js";
17
+ } from "./chunk-HUG47UEE.js";
18
18
  import {
19
19
  HF_AUDIO_GROUP_ATTR,
20
20
  extractAudioMetadata,
21
21
  extractMediaMetadata
22
- } from "./chunk-7M7TMM4S.js";
22
+ } from "./chunk-HXM2ISEK.js";
23
23
  import {
24
24
  byStart,
25
25
  fpsToNumber,
26
26
  parseFpsWithDefault
27
- } from "./chunk-RNZEQTWZ.js";
27
+ } from "./chunk-WYCFMNU3.js";
28
28
  import {
29
29
  HF_AUDIO_AUTOMATION_ATTR,
30
30
  HF_AUDIO_FX_ATTR,
31
31
  parseAudioFxChain,
32
32
  parseAutomation,
33
33
  resolveAutomation
34
- } from "./chunk-UOZX5W5T.js";
34
+ } from "./chunk-BPX7LZG6.js";
35
35
  import {
36
36
  isSubCompositionHost,
37
37
  topLevelElements,
@@ -40,7 +40,7 @@ import {
40
40
  import {
41
41
  resolveReferencedDuration,
42
42
  resolveReferencedStart
43
- } from "./chunk-Q447CX26.js";
43
+ } from "./chunk-TSFA2Y5C.js";
44
44
  import {
45
45
  resolveAuthoredAssetFile
46
46
  } from "./chunk-6BNTGNGD.js";
@@ -7,7 +7,7 @@ var __dirname = __hf_dirname(__filename);
7
7
  import {
8
8
  sherpaParakeetInstalled,
9
9
  sherpaUnsupportedReason
10
- } from "./chunk-4NTW45W5.js";
10
+ } from "./chunk-M6FHSQZ3.js";
11
11
  import {
12
12
  findParakeet
13
13
  } from "./chunk-JZIEZCQM.js";
@@ -14,7 +14,7 @@ import {
14
14
  } from "./chunk-DKPNNYBZ.js";
15
15
  import {
16
16
  resolveCaptureBrowserGpuMode
17
- } from "./chunk-RVZNSKRH.js";
17
+ } from "./chunk-B52BJM5K.js";
18
18
  import {
19
19
  requestCliExit
20
20
  } from "./chunk-JVBRJMOP.js";