hyperframes 0.8.167 → 0.8.169

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 (163) hide show
  1. package/dist/{add-2FUXQRJJ.js → add-7GLP4BPM.js} +13 -13
  2. package/dist/{animatedGifPrep-LJ4MZ55T.js → animatedGifPrep-NEBEGVSO.js} +8 -8
  3. package/dist/api.js +14 -14
  4. package/dist/{asset-WJ4RZBOZ.js → asset-RORTT5HS.js} +2 -2
  5. package/dist/{assetCataloger-YEOLIVRC.js → assetCataloger-RLJ6MDGF.js} +8 -8
  6. package/dist/{audio-BMQGWYBM.js → audio-OKDGU7TY.js} +14 -14
  7. package/dist/{auth-2N7I575Y.js → auth-QWYNCU5U.js} +1 -1
  8. package/dist/{autoUpdate-QNWSYJTZ.js → autoUpdate-EDJJPWAU.js} +2 -2
  9. package/dist/{backgroundChecks-7XFS3DIS.js → backgroundChecks-KQR6FGVU.js} +3 -3
  10. package/dist/backgroundChecksWorker.js +3 -3
  11. package/dist/{batchRender-H5NAWIHY.js → batchRender-YKTTAIHH.js} +4 -4
  12. package/dist/{beats-YPFOOARR.js → beats-I6AGLTLW.js} +5 -5
  13. package/dist/{benchmark-HPF6KC73.js → benchmark-NBSV7PNB.js} +9 -9
  14. package/dist/{browser-326JM225.js → browser-FPEL5FGW.js} +3 -3
  15. package/dist/{bundleWithLocalizedFonts-4L7VGKHX.js → bundleWithLocalizedFonts-TYQXMNSU.js} +2 -2
  16. package/dist/{capture-R5AUVH3R.js → capture-5BRJJMZB.js} +2 -2
  17. package/dist/{capture-62S3EEMN.js → capture-FXGOI23U.js} +12 -11
  18. package/dist/{catalog-GLYTZLPC.js → catalog-SG3ZIS45.js} +13 -13
  19. package/dist/{catch-up-F7X7ITIH.js → catch-up-ETXUT6Q5.js} +4 -4
  20. package/dist/{check-ZTQ4E5YO.js → check-KXNNIEUR.js} +100 -43
  21. package/dist/{checkBrowser-OGMICBTZ.js → checkBrowser-546UMI3N.js} +39 -31
  22. package/dist/{chunk-G7HJCDEI.js → chunk-2F4HJFGW.js} +2 -2
  23. package/dist/{chunk-EN4ZEUT3.js → chunk-5ETJPA5Z.js} +10 -9
  24. package/dist/{chunk-PYKY63GT.js → chunk-5FWVFCQM.js} +3 -3
  25. package/dist/{chunk-2TD4V5YU.js → chunk-5SQHHBAR.js} +1 -1
  26. package/dist/{chunk-BGPZWFYO.js → chunk-7635SDI5.js} +2 -2
  27. package/dist/{chunk-4U5FN6FY.js → chunk-7FHFPHEM.js} +24 -16
  28. package/dist/{chunk-35GLXVUG.js → chunk-A6K7M46D.js} +1 -1
  29. package/dist/{chunk-IDVQ5AH7.js → chunk-AP5AVVAB.js} +1 -1
  30. package/dist/chunk-BIV5HVTQ.js +3803 -0
  31. package/dist/{chunk-LF6E6N2U.js → chunk-BNEKKUPG.js} +2 -2
  32. package/dist/{chunk-6RSBA4XV.js → chunk-CESKA6VO.js} +1 -1
  33. package/dist/{chunk-2INCSLFS.js → chunk-CNP6AMFM.js} +2 -2
  34. package/dist/{chunk-JK2AETXO.js → chunk-DCG22HKT.js} +10 -7
  35. package/dist/{chunk-EMHFQAFH.js → chunk-EELTMBCC.js} +1 -1
  36. package/dist/{chunk-CBNI34SD.js → chunk-EEP5Y5IE.js} +1 -1
  37. package/dist/{chunk-WPNE5NEP.js → chunk-EFP25BUY.js} +19 -5
  38. package/dist/{chunk-Y5HGSWD6.js → chunk-FQJDV2RI.js} +1 -1
  39. package/dist/{chunk-C6XFNWHU.js → chunk-FSX7GTBB.js} +1 -1
  40. package/dist/{chunk-FETB6SFI.js → chunk-GVX2443P.js} +2 -2
  41. package/dist/{chunk-J4OSFRO6.js → chunk-J5Z56PU3.js} +1 -1
  42. package/dist/{chunk-MZSP2FH7.js → chunk-JPN7SVWC.js} +7 -7
  43. package/dist/{chunk-5HKZOQEV.js → chunk-K5PU5ISL.js} +1 -1
  44. package/dist/{chunk-55IKX25I.js → chunk-KA4LSAD5.js} +1 -1
  45. package/dist/{chunk-OZJ4L6SJ.js → chunk-M4N6IHCQ.js} +1 -1
  46. package/dist/{chunk-ZWZFBVMS.js → chunk-MCPDZWZY.js} +4 -4
  47. package/dist/{chunk-DWMCUUAQ.js → chunk-NKG3LTPI.js} +10 -5
  48. package/dist/{chunk-Q2WGWWJ5.js → chunk-O3J7BHBU.js} +10 -2
  49. package/dist/{chunk-3VGU2SH7.js → chunk-OYLO6TYK.js} +8 -1
  50. package/dist/{chunk-AATVO56S.js → chunk-P24X6CGY.js} +14 -10
  51. package/dist/{chunk-W3B37KCA.js → chunk-PLWORQFC.js} +36 -33
  52. package/dist/{chunk-7DJLJH2Y.js → chunk-PVTHDNDZ.js} +1 -1
  53. package/dist/{chunk-BNH73WSR.js → chunk-Q5K73VW3.js} +2 -2
  54. package/dist/{chunk-KIWXOYBU.js → chunk-QD5VJOQK.js} +3 -3
  55. package/dist/{chunk-5XNGYXPW.js → chunk-QLHXC4E6.js} +1 -1
  56. package/dist/{chunk-VZG6DZ5O.js → chunk-RUYYAL3T.js} +3 -3
  57. package/dist/{chunk-CXUV24HM.js → chunk-RZKQ3G6B.js} +2 -2
  58. package/dist/{chunk-J53OCC2V.js → chunk-S6U7YLPJ.js} +1 -1
  59. package/dist/{chunk-Q2RNXOAQ.js → chunk-SJPNVLYS.js} +2 -2
  60. package/dist/{chunk-P7H2MOWB.js → chunk-T4HL3SZH.js} +2 -2
  61. package/dist/{chunk-YQ5NJCC4.js → chunk-TEFHMDVR.js} +2 -2
  62. package/dist/{chunk-YKMJPYNJ.js → chunk-TVDXMJ43.js} +11 -5
  63. package/dist/{chunk-4PCIW2XN.js → chunk-U7P2XTRY.js} +2 -2
  64. package/dist/{chunk-OI3K7RJZ.js → chunk-UCNQE52B.js} +2843 -2673
  65. package/dist/{chunk-QQCZVVUZ.js → chunk-UISU4SYG.js} +1 -1
  66. package/dist/{chunk-LJ7BKHGT.js → chunk-VCXVZRR2.js} +1 -1
  67. package/dist/{chunk-QCRKQ6BY.js → chunk-WAVFNZB7.js} +27 -2
  68. package/dist/chunk-WICIV6R3.js +42 -0
  69. package/dist/{chunk-AURMZPQ4.js → chunk-XJQ6NN2L.js} +13 -11
  70. package/dist/{chunk-FJ6SHMJW.js → chunk-XK5SZNYE.js} +10 -10
  71. package/dist/{chunk-HAQ4PMF6.js → chunk-XZNHVWDD.js} +37 -15
  72. package/dist/{chunk-5GMAX6HC.js → chunk-YLAREDAU.js} +1 -1
  73. package/dist/{chunk-ALLKNYC3.js → chunk-YMS5FOMC.js} +31 -18
  74. package/dist/{chunk-Q4ZMV6RN.js → chunk-YT6TFGIS.js} +7 -7
  75. package/dist/{chunk-NA7LBT7C.js → chunk-YZRS3COO.js} +1 -1
  76. package/dist/{chunk-N6HMVHOI.js → chunk-ZFJ5RI7A.js} +3 -3
  77. package/dist/{clean-TZVC4SUY.js → clean-ARH23EGW.js} +14 -14
  78. package/dist/cli.js +53 -53
  79. package/dist/{cloud-G4Z54NRA.js → cloud-GBY7MRZM.js} +4 -4
  80. package/dist/{cloudrun-ZKWTTLXC.js → cloudrun-HBVA5UZB.js} +16 -11
  81. package/dist/commands/layout-audit.browser.js +16 -1
  82. package/dist/{compare-HING5JY7.js → compare-Z4YNESYN.js} +27 -26
  83. package/dist/{compiler-E37DHG6R.js → compiler-6WJ5SVTD.js} +5 -5
  84. package/dist/{component-3Y6DSDDQ.js → component-AR4MS4R7.js} +3 -3
  85. package/dist/{compositions-7PCJJOSO.js → compositions-ERZVZBYW.js} +12 -12
  86. package/dist/{delete-C5SIXVQK.js → delete-NWSW3BET.js} +2 -2
  87. package/dist/{deploy-5G4Z6LPA.js → deploy-4MK3Y67M.js} +1 -0
  88. package/dist/{deterministicFonts-35AC2PM5.js → deterministicFonts-KXVO7QEL.js} +2 -2
  89. package/dist/{dist-4PRLFYDO.js → dist-OTCFZEKF.js} +2 -2
  90. package/dist/{dist-KGU4NOEC.js → dist-VKLSNKRZ.js} +7 -3
  91. package/dist/{doctor-6LFPX5YC.js → doctor-P4QZQRCB.js} +10 -10
  92. package/dist/{events-27DBZEP2.js → events-F2UVJQIC.js} +2 -2
  93. package/dist/{events-YS3ENMS3.js → events-SV46AWMI.js} +3 -3
  94. package/dist/{feedback-62AUX5Q6.js → feedback-XS4IK6SW.js} +7 -7
  95. package/dist/{figma-5CYPKHNK.js → figma-DELISEUP.js} +3 -3
  96. package/dist/fontLocalizeCli.js +11 -11
  97. package/dist/{get-HC5BWFCU.js → get-DNGXCEFB.js} +2 -2
  98. package/dist/{gpuPolicy-VGSKTQFS.js → gpuPolicy-JG5PUOJP.js} +8 -8
  99. package/dist/{grade-compare-DASDOOLU.js → grade-compare-F46JWE4O.js} +27 -26
  100. package/dist/{help-7MQDFXVN.js → help-XVEBMX3U.js} +1 -1
  101. package/dist/{history-JV2YA7L3.js → history-NS4PKG4S.js} +6 -6
  102. package/dist/hyperframe-runtime.js +73 -71
  103. package/dist/hyperframe.manifest.json +1 -1
  104. package/dist/hyperframe.runtime.iife.js +73 -71
  105. package/dist/hyperframes-player.global.js +1 -1
  106. package/dist/{info-63STYEXL.js → info-DJ6VNESS.js} +8 -8
  107. package/dist/{init-KBDCFLPO.js → init-TSRTMVRN.js} +23 -23
  108. package/dist/{inspect-NZ7UNTDK.js → inspect-VTZXXDJ4.js} +28 -27
  109. package/dist/{installer-T4SRTKAU.js → installer-3ERHU4CD.js} +6 -6
  110. package/dist/{keyframes-3UIA2BOO.js → keyframes-6DN7BOYJ.js} +6 -6
  111. package/dist/{lambda-X6XMGMTI.js → lambda-RCOIEGL6.js} +31 -18
  112. package/dist/{layout-V2M6NI2A.js → layout-FFGRLVK4.js} +28 -27
  113. package/dist/{lint-26QGRXLI.js → lint-MBYIDFKS.js} +8 -8
  114. package/dist/{lintProject-HV3FBMTU.js → lintProject-PXB5Y6TX.js} +2 -2
  115. package/dist/{list-RVNMXLPY.js → list-KEZDFW5R.js} +2 -2
  116. package/dist/{login-M2YCAF3T.js → login-7ZV374QL.js} +4 -4
  117. package/dist/{media-treatment-6BYVQUWN.js → media-treatment-LGWWRXAX.js} +11 -11
  118. package/dist/{models-4UWTBP2J.js → models-TC4K6UQP.js} +11 -11
  119. package/dist/{motionShot-UZV3LG77.js → motionShot-4E3RTV5O.js} +16 -15
  120. package/dist/{normalize-audio-UR6UPRSM.js → normalize-audio-XCGB2IQP.js} +4 -4
  121. package/dist/{open-K4N4KEFK.js → open-JNNJSNTH.js} +4 -4
  122. package/dist/{parakeetRunner-TH572YPQ.js → parakeetRunner-S3DG4BJB.js} +11 -11
  123. package/dist/{pipeline-4OUHSCE5.js → pipeline-3SIYCBLU.js} +8 -8
  124. package/dist/{play-GSGWTHJT.js → play-LBPOOD3V.js} +19 -19
  125. package/dist/{present-GWODJH4A.js → present-PWEN5SDL.js} +15 -15
  126. package/dist/{preview-UUP7CTJM.js → preview-IS32RLKM.js} +18 -18
  127. package/dist/{producer-F3LUI2LX.js → producer-4UUUEPPS.js} +1 -1
  128. package/dist/{projectConfig-LBESGIM6.js → projectConfig-K347VIO3.js} +8 -8
  129. package/dist/{publication-IGLVPFKB.js → publication-4CQS532O.js} +3 -3
  130. package/dist/{publish-GVDRYMZG.js → publish-OJYF37FY.js} +10 -10
  131. package/dist/{remove-background-3UDPJWO3.js → remove-background-HO6YL2HU.js} +9 -9
  132. package/dist/{render-5VSZHPI5.js → render-L76SEAMC.js} +11 -6
  133. package/dist/{render-C2MSWN5Q.js → render-Q6QAXJCN.js} +9 -9
  134. package/dist/{render-QRPLO4OB.js → render-QBQYF2NC.js} +33 -25
  135. package/dist/{render-batch-YHCKNGLG.js → render-batch-JLANN5Y2.js} +10 -6
  136. package/dist/renderSetupWorker.js +2 -2
  137. package/dist/{resolver-K7Q63AW3.js → resolver-EDUM4DHG.js} +5 -5
  138. package/dist/{sherpa-OEIK4HXX.js → sherpa-QEM5XYHD.js} +10 -10
  139. package/dist/skills/hyperframes/references/skill-lifecycle.md +2 -0
  140. package/dist/{skills-ISZSXESC.js → skills-FSZK6FIG.js} +30 -5
  141. package/dist/{skillsUpdateCheck-2B3CBX4A.js → skillsUpdateCheck-3354HXDJ.js} +3 -3
  142. package/dist/{snapshot-J3JKFCYO.js → snapshot-5VVMFEMM.js} +30 -29
  143. package/dist/{src-ICUQBWEX.js → src-RYILCNU7.js} +10 -10
  144. package/dist/{src-MWQCXKWJ.js → src-ZGMLMQ3B.js} +7 -7
  145. package/dist/{staticProjectServer-2HPLMJLH.js → staticProjectServer-PIVSGEAO.js} +15 -15
  146. package/dist/studio/assets/{hyperframes-player-CJibUtA8.js → hyperframes-player-B04Yx96S.js} +1 -1
  147. package/dist/studio/assets/{index-BS3d2Qdc.js → index-D2e0J6kh.js} +4 -4
  148. package/dist/studio/assets/{index-CDE2YLhz.js → index-D9CDX_Rr.js} +1 -1
  149. package/dist/studio/index.html +1 -1
  150. package/dist/{studio-api-AHUWLJBD.js → studio-api-PHADR6VB.js} +9 -9
  151. package/dist/{studioServer-IBAIGIJD.js → studioServer-5AVDKN5V.js} +41 -40
  152. package/dist/{telemetry-BSURLTGR.js → telemetry-JCTHMPSB.js} +3 -3
  153. package/dist/{timeline-YTVVCN6P.js → timeline-QU2F6R2M.js} +34 -21
  154. package/dist/{tokens-EIXAERED.js → tokens-YYK4G36C.js} +2 -2
  155. package/dist/{transcribe-2CYSICME.js → transcribe-7ORH7R6O.js} +9 -9
  156. package/dist/{transcribe-TE7EPNEM.js → transcribe-PRG4FLLA.js} +15 -15
  157. package/dist/{updateCheck-BI3OKPO4.js → updateCheck-NV7QNANK.js} +2 -2
  158. package/dist/{upgrade-JU4JXYBU.js → upgrade-UZXN36J2.js} +2 -2
  159. package/dist/{urlDownloader-IVYOAE6Q.js → urlDownloader-AW57H722.js} +7 -7
  160. package/dist/{validate-I4PVO46Y.js → validate-QD53ABUM.js} +22 -21
  161. package/dist/{video-WXQT3G5A.js → video-VLVPYQQR.js} +8 -8
  162. package/package.json +1 -1
  163. package/dist/chunk-DJ6L4NZU.js +0 -3795
@@ -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.167" : "0.0.0-dev";
10
- var PRODUCER_VERSION = true ? "0.8.167" : "0.0.0-dev";
9
+ var VERSION = true ? "0.8.169" : "0.0.0-dev";
10
+ var PRODUCER_VERSION = true ? "0.8.169" : "0.0.0-dev";
11
11
 
12
12
  export {
13
13
  VERSION,
@@ -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-ICUQBWEX.js");
10
+ return await import("./src-RYILCNU7.js");
11
11
  }
12
12
 
13
13
  export {
@@ -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-AURMZPQ4.js";
9
+ } from "./chunk-XJQ6NN2L.js";
10
10
  import {
11
11
  injectTagsAtHeadStart
12
- } from "./chunk-DJ6L4NZU.js";
12
+ } from "./chunk-BIV5HVTQ.js";
13
13
 
14
14
  // src/utils/compositionServer.ts
15
15
  import { createHash } from "crypto";
@@ -9,25 +9,28 @@ import {
9
9
  launchManagedBrowser,
10
10
  resolveManagedGpuMode,
11
11
  rethrowAfterBrowserCleanup
12
- } from "./chunk-QCRKQ6BY.js";
12
+ } from "./chunk-WAVFNZB7.js";
13
13
  import {
14
14
  resolveCompositionViewportFromHtml
15
15
  } from "./chunk-FH7WODJH.js";
16
16
  import {
17
17
  resolveDiagnosticNavigationTimeoutMs,
18
18
  windowsChromeCrashRemediation
19
- } from "./chunk-YQ5NJCC4.js";
19
+ } from "./chunk-TEFHMDVR.js";
20
+ import {
21
+ oneProcessOverPipe
22
+ } from "./chunk-WICIV6R3.js";
20
23
  import {
21
24
  resolveLocalBrowserGpuMode,
22
25
  resolveLocalWebGpu
23
- } from "./chunk-BNH73WSR.js";
26
+ } from "./chunk-Q5K73VW3.js";
24
27
  import {
25
28
  c
26
29
  } from "./chunk-ZTZA4UWZ.js";
27
30
  import {
28
31
  assertWebGpuAdapterAvailable,
29
32
  compositionRequiresWebGpu
30
- } from "./chunk-4U5FN6FY.js";
33
+ } from "./chunk-7FHFPHEM.js";
31
34
  import {
32
35
  normalizeErrorMessage
33
36
  } from "./chunk-KNU5COPB.js";
@@ -110,9 +113,9 @@ async function openSettledCompositionPage(html, url, options) {
110
113
  const { ensureBrowser, findSystemBrowser } = await import("./manager-HEUPD2YB.js");
111
114
  const browser = await ensureBrowser({ signal: options.signal });
112
115
  const puppeteer = await import("puppeteer-core");
113
- const { buildChromeArgs } = await import("./src-MWQCXKWJ.js");
116
+ const { buildChromeArgs } = await import("./src-ZGMLMQ3B.js");
114
117
  const requestedGpuMode = options.browserGpuMode ?? resolveCliChromeGpuMode();
115
- const answer = (await import("./staticProjectServer-2HPLMJLH.js")).inProcessAnswer(url);
118
+ const answer = (await import("./staticProjectServer-PIVSGEAO.js")).inProcessAnswer(url);
116
119
  const requiresWebGpu = compositionRequiresWebGpu(html);
117
120
  let softwareWebGpu = false;
118
121
  const launch = async (executablePath) => {
@@ -133,7 +136,7 @@ async function openSettledCompositionPage(html, url, options) {
133
136
  headless: true,
134
137
  signal: options.signal,
135
138
  executablePath,
136
- ...answer ? { pipe: true, args: [...args, "--single-process"] } : { args }
139
+ ...answer ? oneProcessOverPipe({ args }) : { args }
137
140
  });
138
141
  };
139
142
  let chromeBrowser;
@@ -27,7 +27,7 @@ import {
27
27
  } from "./chunk-GMECXFAN.js";
28
28
  import {
29
29
  ITEM_TYPE_DIRS
30
- } from "./chunk-Q2WGWWJ5.js";
30
+ } from "./chunk-O3J7BHBU.js";
31
31
  import {
32
32
  realProjectRoot
33
33
  } from "./chunk-OFQWTKPW.js";
@@ -7,7 +7,7 @@ var __dirname = __hf_dirname(__filename);
7
7
  import {
8
8
  VALID_CANVAS_RESOLUTIONS,
9
9
  resolveResolutionFlagPair
10
- } from "./chunk-ALLKNYC3.js";
10
+ } from "./chunk-YMS5FOMC.js";
11
11
 
12
12
  // src/utils/parseOutputResolution.ts
13
13
  function parseOutputResolutionFlag(raw, options) {
@@ -4,6 +4,13 @@ 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
+ c
9
+ } from "./chunk-ZTZA4UWZ.js";
10
+ import {
11
+ DISTRIBUTED_FPS,
12
+ isDistributedFps
13
+ } from "./chunk-O3J7BHBU.js";
7
14
  import {
8
15
  parseHTML
9
16
  } from "./chunk-SDYDNHEE.js";
@@ -25,20 +32,27 @@ function readCompositionFps(html) {
25
32
  const raw = root?.getAttribute("data-fps")?.trim();
26
33
  return raw ? raw : null;
27
34
  }
28
- function readAllowedCompositionFpsFromDir(projectDir, allowed) {
35
+ var DEFAULT_CLOUD_FPS = 30;
36
+ function defaultCloudFps(projectDir) {
29
37
  let html;
30
38
  try {
31
39
  html = readFileSync(join(projectDir, "index.html"), "utf8");
32
40
  } catch {
33
- return null;
41
+ return DEFAULT_CLOUD_FPS;
34
42
  }
35
43
  const raw = readCompositionFps(html);
36
- if (raw == null) return null;
44
+ if (raw == null) return DEFAULT_CLOUD_FPS;
37
45
  const n = Number(raw);
38
- return Number.isInteger(n) && allowed.includes(n) ? n : null;
46
+ if (isDistributedFps(n)) return n;
47
+ console.warn(
48
+ c.warn(
49
+ `The composition declares data-fps="${raw}", which cloud renders do not support (${DISTRIBUTED_FPS.join(", ")}). Rendering at ${DEFAULT_CLOUD_FPS} fps; pass --fps to choose.`
50
+ )
51
+ );
52
+ return DEFAULT_CLOUD_FPS;
39
53
  }
40
54
 
41
55
  export {
42
56
  readCompositionFps,
43
- readAllowedCompositionFpsFromDir
57
+ defaultCloudFps
44
58
  };
@@ -8,7 +8,7 @@ import {
8
8
  flush,
9
9
  shouldTrack,
10
10
  trackEvent
11
- } from "./chunk-C6XFNWHU.js";
11
+ } from "./chunk-FSX7GTBB.js";
12
12
  import {
13
13
  getPowerState
14
14
  } from "./chunk-QWQ6GQTI.js";
@@ -29,7 +29,7 @@ import {
29
29
  } from "./chunk-XUXGIA7H.js";
30
30
  import {
31
31
  VERSION
32
- } from "./chunk-LF6E6N2U.js";
32
+ } from "./chunk-BNEKKUPG.js";
33
33
  import {
34
34
  CANARIES,
35
35
  canaryEnvVar,
@@ -8,10 +8,10 @@ import {
8
8
  DEFAULT_VP9_CPU_USED,
9
9
  isHttpUrl,
10
10
  runFfmpeg
11
- } from "./chunk-4U5FN6FY.js";
11
+ } from "./chunk-7FHFPHEM.js";
12
12
  import {
13
13
  parseAnimatedGifMetadata
14
- } from "./chunk-Q2WGWWJ5.js";
14
+ } from "./chunk-O3J7BHBU.js";
15
15
  import {
16
16
  parseHTML
17
17
  } from "./chunk-SDYDNHEE.js";
@@ -12,7 +12,7 @@ import {
12
12
  } from "./chunk-HVW7ABXD.js";
13
13
  import {
14
14
  DEFAULT_REGISTRY_URL
15
- } from "./chunk-EMHFQAFH.js";
15
+ } from "./chunk-EELTMBCC.js";
16
16
 
17
17
  // src/utils/projectConfig.ts
18
18
  import { readFileSync, writeFileSync } from "fs";
@@ -7,29 +7,29 @@ var __dirname = __hf_dirname(__filename);
7
7
  import {
8
8
  RegistryCompatibilityError,
9
9
  gateRegistryItemsCompatibility
10
- } from "./chunk-NA7LBT7C.js";
10
+ } from "./chunk-YZRS3COO.js";
11
11
  import {
12
12
  DEFAULT_PROJECT_CONFIG,
13
13
  createProjectConfig,
14
14
  loadProjectConfig,
15
15
  projectConfigPath,
16
16
  recordProjectRegistryItems
17
- } from "./chunk-J4OSFRO6.js";
17
+ } from "./chunk-J5Z56PU3.js";
18
18
  import {
19
19
  resolveItemWithDependencies,
20
20
  resolveItemsByTag
21
- } from "./chunk-2TD4V5YU.js";
21
+ } from "./chunk-5SQHHBAR.js";
22
22
  import {
23
23
  InvalidVariableValuesError,
24
24
  prepareItem,
25
25
  publishItem
26
- } from "./chunk-PYKY63GT.js";
26
+ } from "./chunk-5FWVFCQM.js";
27
27
  import {
28
28
  DEFAULT_REGISTRY_URL
29
- } from "./chunk-EMHFQAFH.js";
29
+ } from "./chunk-EELTMBCC.js";
30
30
  import {
31
31
  trackRegistryItemAdded
32
- } from "./chunk-Y5HGSWD6.js";
32
+ } from "./chunk-FQJDV2RI.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-Q2WGWWJ5.js";
44
+ } from "./chunk-O3J7BHBU.js";
45
45
  import {
46
46
  isProjectRootMissing,
47
47
  realpath
@@ -17,7 +17,7 @@ import {
17
17
  } from "./chunk-ISN5GRYI.js";
18
18
  import {
19
19
  VERSION
20
- } from "./chunk-LF6E6N2U.js";
20
+ } from "./chunk-BNEKKUPG.js";
21
21
 
22
22
  // src/utils/updateCheck.ts
23
23
  import { existsSync, readFileSync } from "fs";
@@ -14,7 +14,7 @@ import {
14
14
  } from "./chunk-AWDFDFI3.js";
15
15
  import {
16
16
  isBlockedNetworkHost
17
- } from "./chunk-4U5FN6FY.js";
17
+ } from "./chunk-7FHFPHEM.js";
18
18
  import {
19
19
  DOMParser,
20
20
  parseHTML
@@ -14,7 +14,7 @@ import {
14
14
  import {
15
15
  FONT_ALIAS_MAP,
16
16
  resolveAliasDisplayName
17
- } from "./chunk-ALLKNYC3.js";
17
+ } from "./chunk-YMS5FOMC.js";
18
18
  import {
19
19
  parseHTML
20
20
  } from "./chunk-SDYDNHEE.js";
@@ -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-J53OCC2V.js";
9
+ } from "./chunk-S6U7YLPJ.js";
10
10
  import {
11
11
  DecodeCancelled,
12
12
  prepareSherpaWav,
13
13
  sherpaUnsupportedReason,
14
14
  transcribeWithSherpa
15
- } from "./chunk-4PCIW2XN.js";
15
+ } from "./chunk-U7P2XTRY.js";
16
16
  import {
17
17
  initialModelForLanguage,
18
18
  transcribe
19
- } from "./chunk-QQCZVVUZ.js";
19
+ } from "./chunk-UISU4SYG.js";
20
20
  import {
21
21
  createRenderCancellationScope,
22
22
  stoppedByCancelSignal
23
- } from "./chunk-35GLXVUG.js";
23
+ } from "./chunk-A6K7M46D.js";
24
24
  import {
25
25
  formatSrt,
26
26
  formatVtt,
@@ -6,17 +6,22 @@ var __filename = __hf_fileURLToPath(import.meta.url);
6
6
  var __dirname = __hf_dirname(__filename);
7
7
  import {
8
8
  withOwner
9
- } from "./chunk-Q4ZMV6RN.js";
9
+ } from "./chunk-YT6TFGIS.js";
10
10
  import {
11
11
  beginArtifactCapture
12
12
  } from "./chunk-JGYHWVXQ.js";
13
13
 
14
14
  // src/utils/artifactCapture.ts
15
+ var SKIP_BUSY_HISTORY = { ownerWaitMs: 0 };
15
16
  async function captureArtifactRevision(projectDir) {
16
- return withOwner(projectDir, async (owner) => {
17
- await owner.checkpoint();
18
- return beginArtifactCapture(projectDir);
19
- });
17
+ return withOwner(
18
+ projectDir,
19
+ async (owner) => {
20
+ await owner.checkpoint();
21
+ return beginArtifactCapture(projectDir);
22
+ },
23
+ SKIP_BUSY_HISTORY
24
+ );
20
25
  }
21
26
 
22
27
  export {
@@ -9,7 +9,7 @@ import {
9
9
  parseStrictFiniteTimingNumber,
10
10
  resolveNaturalMediaTimelineDuration,
11
11
  resolveTimedImageDurationSeconds
12
- } from "./chunk-DJ6L4NZU.js";
12
+ } from "./chunk-BIV5HVTQ.js";
13
13
  import {
14
14
  CANVAS_DIMENSIONS,
15
15
  isCompositionElement,
@@ -17,7 +17,7 @@ import {
17
17
  isTextElement,
18
18
  keyframesToGsapAnimations,
19
19
  serializeGsapAnimations
20
- } from "./chunk-ALLKNYC3.js";
20
+ } from "./chunk-YMS5FOMC.js";
21
21
  import {
22
22
  COMPOSITION_ATTRIBUTES,
23
23
  parseStartExpression
@@ -121,6 +121,12 @@ function parseFpsWithDefault(input) {
121
121
  return parseFps(input);
122
122
  }
123
123
 
124
+ // ../core/dist/distributedFps.js
125
+ var DISTRIBUTED_FPS = [24, 25, 30, 60];
126
+ function isDistributedFps(value) {
127
+ return DISTRIBUTED_FPS.includes(value);
128
+ }
129
+
124
130
  // ../core/dist/templates/base.js
125
131
  function generateBaseHtml(resolution = "portrait") {
126
132
  return `<!DOCTYPE html>
@@ -5551,6 +5557,8 @@ export {
5551
5557
  fpsToFfmpegArg,
5552
5558
  parseFps,
5553
5559
  parseFpsWithDefault,
5560
+ DISTRIBUTED_FPS,
5561
+ isDistributedFps,
5554
5562
  generateBaseHtml,
5555
5563
  getStageStyles,
5556
5564
  gsapCdnDist,
@@ -16,7 +16,14 @@ var CANVAS_DIMENSIONS = {
16
16
  "landscape-4k": { width: 3840, height: 2160 },
17
17
  "portrait-4k": { width: 2160, height: 3840 },
18
18
  square: { width: 1080, height: 1080 },
19
- "square-4k": { width: 2160, height: 2160 }
19
+ "square-4k": { width: 2160, height: 2160 },
20
+ "landscape-720p": { width: 1280, height: 720 },
21
+ "portrait-720p": { width: 720, height: 1280 },
22
+ "square-720p": { width: 720, height: 720 },
23
+ // 480 tall at 16:9 is 853.33 wide: 854 keeps both sides even for 4:2:0 encoders.
24
+ "landscape-480p": { width: 854, height: 480 },
25
+ "portrait-480p": { width: 480, height: 854 },
26
+ "square-480p": { width: 480, height: 480 }
20
27
  };
21
28
  var VALID_CANVAS_RESOLUTIONS = Object.keys(
22
29
  CANVAS_DIMENSIONS
@@ -16,6 +16,7 @@ import {
16
16
  clampDurations,
17
17
  compileTimingAttrs,
18
18
  compositionStyle,
19
+ countPageRoot,
19
20
  cssStyleMergeKey,
20
21
  deferScriptsUntilFonts,
21
22
  enumerateNestedCompositionHosts,
@@ -39,7 +40,7 @@ import {
39
40
  stripEmbeddedRuntimeScripts,
40
41
  styleElementsFor,
41
42
  warnUnknownEnumValues
42
- } from "./chunk-DJ6L4NZU.js";
43
+ } from "./chunk-BIV5HVTQ.js";
43
44
  import {
44
45
  cssVariableName
45
46
  } from "./chunk-VC76R6W2.js";
@@ -49,7 +50,7 @@ import {
49
50
  } from "./chunk-OFQWTKPW.js";
50
51
  import {
51
52
  lintHyperframeHtml
52
- } from "./chunk-W3B37KCA.js";
53
+ } from "./chunk-PLWORQFC.js";
53
54
  import {
54
55
  checkSubCompositionUsability,
55
56
  resolveSubCompositionContent
@@ -880,10 +881,8 @@ function wrapScopedCompositionScript(source, compositionId, errorLabel = "[Hyper
880
881
  if (prop !== __hfCompId) {
881
882
  return Reflect.get(target, prop, target);
882
883
  }
883
- var authoredValue = Reflect.get(target, prop, target);
884
- return authoredValue === undefined
885
- ? Reflect.get(target, __hfTimelineCompId, target)
886
- : authoredValue;
884
+ var runtimeValue = Reflect.get(target, __hfTimelineCompId, target);
885
+ return runtimeValue === undefined ? Reflect.get(target, prop, target) : runtimeValue;
887
886
  },
888
887
  set: function(target, prop, value, receiver) {
889
888
  if (prop !== __hfCompId) {
@@ -891,11 +890,15 @@ function wrapScopedCompositionScript(source, compositionId, errorLabel = "[Hyper
891
890
  }
892
891
  // The authored node remains in the compiled DOM when its local id
893
892
  // differs from the runtime mount id, so readiness legitimately sees
894
- // both compositions. Publish the same timeline under both identities
895
- // instead of replacing one with the other.
896
- var authoredSet = Reflect.set(target, __hfCompId, value, target);
893
+ // both compositions. Publish the same timeline under both identities,
894
+ // unless another mount of the same file already owns the authored one.
895
+ var authoredValue = Reflect.get(target, __hfCompId, target);
896
+ var ownsAuthored =
897
+ authoredValue === undefined ||
898
+ authoredValue === Reflect.get(target, __hfTimelineCompId, target);
897
899
  var runtimeSet = Reflect.set(target, __hfTimelineCompId, value, target);
898
- return authoredSet && runtimeSet;
900
+ if (!ownsAuthored) return runtimeSet;
901
+ return Reflect.set(target, __hfCompId, value, target) && runtimeSet;
899
902
  },
900
903
  });
901
904
  }
@@ -2257,6 +2260,7 @@ function countBundledAuthoredCompositionIds(hosts) {
2257
2260
  continue;
2258
2261
  counts.set(authoredCompositionId, (counts.get(authoredCompositionId) || 0) + 1);
2259
2262
  }
2263
+ countPageRoot(counts, hosts);
2260
2264
  return counts;
2261
2265
  }
2262
2266
  function assignBundledRuntimeCompositionIds(hosts, counts = countBundledAuthoredCompositionIds(hosts)) {
@@ -25,7 +25,7 @@ import {
25
25
  extractMediaSrcMutations,
26
26
  isSafeMediaUrl,
27
27
  resolveAliasDisplayName
28
- } from "./chunk-3VGU2SH7.js";
28
+ } from "./chunk-OYLO6TYK.js";
29
29
  import {
30
30
  findFfBinary
31
31
  } from "./chunk-VAS6HQX3.js";
@@ -7123,37 +7123,6 @@ var compositionRules = [
7123
7123
  // defaults aren't applied.
7124
7124
  // Checked on every element that declares: <html>, or the composition root.
7125
7125
  ({ tags }) => tags.filter((tag) => readJsonAttr(tag.raw, "data-composition-variables")).flatMap((tag) => variablesDeclarationFindings(tag, tags)),
7126
- // html_dir_attribute_breaks_render — valid non-LTR dir values on
7127
- // <html> renders correctly in preview/snapshot but produces a fully
7128
- // blank/black video from render, with no other lint/validate/inspect
7129
- // check catching it (output file size, far smaller than expected, is the
7130
- // only tell). Confirmed independently by two separate reports, both
7131
- // diagnosing the same exact trigger and the same fix: drop dir from
7132
- // <html>, keep lang, and scope `direction: rtl` to individual
7133
- // text-containing elements via CSS instead (text still bidi-shapes
7134
- // correctly). Advisory-only — this does not attempt to fix the render
7135
- // pipeline's own root cause (suspected to be a capture step that clips a
7136
- // fixed top-left-origin screenshot region, which RTL layout can shift the
7137
- // actual content away from), only surfaces the already-confirmed footgun
7138
- // before someone hits it blind.
7139
- ({ tags }) => {
7140
- const htmlTag = findHtmlTag(tags);
7141
- if (!htmlTag) return [];
7142
- const dir = readAttr(htmlTag.raw, "dir");
7143
- if (!dir) return [];
7144
- const normalizedDir = dir.toLowerCase();
7145
- if (normalizedDir !== "rtl" && normalizedDir !== "auto") return [];
7146
- const scopedDirection = normalizedDir === "auto" ? 'dir="auto"' : `direction: ${normalizedDir}`;
7147
- return [
7148
- {
7149
- code: "html_dir_attribute_breaks_render",
7150
- severity: "error",
7151
- message: `<html dir="${dir}"> renders correctly in preview/snapshot but produces a fully blank/black video from render. This is a confirmed, silent failure.`,
7152
- fixHint: `Remove dir="${dir}" from <html>. Keep lang, and scope ${scopedDirection} to individual text-containing elements instead. Text still shapes correctly via the browser's own bidi algorithm.`,
7153
- snippet: truncateSnippet(htmlTag.raw)
7154
- }
7155
- ];
7156
- },
7157
7126
  // subcomposition_blanks_before_host
7158
7127
  // Warns when a full-bleed sub-composition slot ends before the host composition
7159
7128
  // does, leaving the slot blank for the remainder (issue #1540). Scoped narrowly to
@@ -9949,7 +9918,8 @@ var NODE_ATTRS = [
9949
9918
  "data-track-index",
9950
9919
  "data-track-kind",
9951
9920
  "data-composition-id",
9952
- "data-composition-src"
9921
+ "data-composition-src",
9922
+ "data-hf-media-start-basis"
9953
9923
  ];
9954
9924
  function toNode(open) {
9955
9925
  const attrs = {};
@@ -10057,6 +10027,33 @@ function clipsPastRootFindings(root, rows) {
10057
10027
  ];
10058
10028
  });
10059
10029
  }
10030
+ function followsParentVisibility(clip) {
10031
+ return clip.tag !== "audio" && clip.attrs["data-hf-media-start-basis"] !== "global";
10032
+ }
10033
+ function isTimed(timing) {
10034
+ return timing.start !== null && timing.end !== null;
10035
+ }
10036
+ function neverVisibleNestedFindings(parent, severity) {
10037
+ const window = readClipTiming({ getAttribute: (name) => parent.attrs[name] ?? null });
10038
+ return topLevelElements(parent).flatMap((clip) => {
10039
+ const inner = isSubCompositionHost(clip) ? [] : neverVisibleNestedFindings(clip, severity);
10040
+ const own = readClipTiming({ getAttribute: (name) => clip.attrs[name] ?? null });
10041
+ if (!followsParentVisibility(clip) || !isTimed(window) || !isTimed(own)) return inner;
10042
+ if (own.end > window.start && own.start < window.end) return inner;
10043
+ const shows = `${hundredths(window.start)}s to ${hundredths(window.end)}s`;
10044
+ return [
10045
+ {
10046
+ code: "nested_clip_never_visible",
10047
+ severity,
10048
+ message: `${describe(clip)} plays from ${hundredths(own.start)}s to ${hundredths(own.end)}s, but it sits inside ${describe(parent)}, which only shows from ${shows}, so it never appears. A nested data-start counts from the composition's start, not from ${describe(parent)}.`,
10049
+ elementId: clip.attrs.id,
10050
+ fixHint: `Give ${describe(clip)} a data-start between ${shows} in composition time, or move it out of ${describe(parent)}.`,
10051
+ snippet: truncateSnippet(clip.open.raw)
10052
+ },
10053
+ ...inner
10054
+ ];
10055
+ });
10056
+ }
10060
10057
  var structureRules = [
10061
10058
  (ctx) => {
10062
10059
  if (ctx.options.isSubComposition) return [];
@@ -10070,6 +10067,12 @@ var structureRules = [
10070
10067
  ...captionFindings(rows, severity),
10071
10068
  ...clipsPastRootFindings(root, rows)
10072
10069
  ];
10070
+ },
10071
+ (ctx) => {
10072
+ const root = buildTree(ctx);
10073
+ if (!root) return [];
10074
+ const severity = ctx.options.host === "studio" ? "error" : "warning";
10075
+ return topLevelElements(root).filter((row) => !isSubCompositionHost(row)).flatMap((row) => neverVisibleNestedFindings(row, severity));
10073
10076
  }
10074
10077
  ];
10075
10078
  function withoutComments(source) {
@@ -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-YS3ENMS3.js");
1281
+ const { trackCommandFailure } = await import("./events-SV46AWMI.js");
1282
1282
  trackCommandFailure(
1283
1283
  command,
1284
1284
  err,
@@ -7,7 +7,7 @@ var __dirname = __hf_dirname(__filename);
7
7
  import {
8
8
  resolveConfig,
9
9
  usesSoftwareWebGpu
10
- } from "./chunk-4U5FN6FY.js";
10
+ } from "./chunk-7FHFPHEM.js";
11
11
 
12
12
  // src/browser/gpuPolicy.ts
13
13
  function resolveLocalBrowserGpuMode(browserGpuArg, envMode = process.env.PRODUCER_BROWSER_GPU_MODE) {
@@ -17,7 +17,7 @@ function resolveLocalBrowserGpuMode(browserGpuArg, envMode = process.env.PRODUCE
17
17
  return "auto";
18
18
  }
19
19
  async function resolveCaptureBrowserGpuMode(requestedMode, chromePath, probeLifecycle) {
20
- const { resolveBrowserGpuMode } = await import("./src-MWQCXKWJ.js");
20
+ const { resolveBrowserGpuMode } = await import("./src-ZGMLMQ3B.js");
21
21
  return resolveBrowserGpuMode(requestedMode, { chromePath, probeLifecycle });
22
22
  }
23
23
  function resolveLocalWebGpu(browserGpuMode, requiresWebGpu) {
@@ -7,7 +7,7 @@ var __dirname = __hf_dirname(__filename);
7
7
  import {
8
8
  getMimeType,
9
9
  injectMediaCodecMapIntoHtml
10
- } from "./chunk-AURMZPQ4.js";
10
+ } from "./chunk-XJQ6NN2L.js";
11
11
  import {
12
12
  PROXY_VARIANT_CONFIG,
13
13
  ProxyCapacityError,
@@ -18,10 +18,10 @@ import {
18
18
  recordProxyRequest,
19
19
  resolveProxy,
20
20
  resolveProxyVariantRequest
21
- } from "./chunk-P7H2MOWB.js";
21
+ } from "./chunk-T4HL3SZH.js";
22
22
  import {
23
23
  resolveAutoProxy
24
- } from "./chunk-J4OSFRO6.js";
24
+ } from "./chunk-J5Z56PU3.js";
25
25
  import {
26
26
  decodeWellFormedEscapes
27
27
  } from "./chunk-BSQ7XANM.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-C6XFNWHU.js";
9
+ } from "./chunk-FSX7GTBB.js";
10
10
 
11
11
  // src/telemetry/renderObservability.ts
12
12
  function renderObservabilityTelemetryPayload(observability) {
@@ -7,14 +7,14 @@ var __dirname = __hf_dirname(__filename);
7
7
  import {
8
8
  trackLintReport,
9
9
  trackLintRuleStreak
10
- } from "./chunk-Y5HGSWD6.js";
10
+ } from "./chunk-FQJDV2RI.js";
11
11
  import {
12
12
  shouldTrack
13
- } from "./chunk-C6XFNWHU.js";
13
+ } from "./chunk-FSX7GTBB.js";
14
14
  import {
15
15
  LINT_RULE_COUNT,
16
16
  LINT_RULE_GROUP_COUNTS
17
- } from "./chunk-W3B37KCA.js";
17
+ } from "./chunk-PLWORQFC.js";
18
18
 
19
19
  // src/telemetry/lintStreaks.ts
20
20
  import { createHash } from "crypto";
@@ -19,10 +19,10 @@ import {
19
19
  import {
20
20
  formatVariableValidationIssue,
21
21
  validateVariables
22
- } from "./chunk-Q2WGWWJ5.js";
22
+ } from "./chunk-O3J7BHBU.js";
23
23
  import {
24
24
  extractCompositionMetadata
25
- } from "./chunk-ALLKNYC3.js";
25
+ } from "./chunk-YMS5FOMC.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
  import {
8
8
  sherpaParakeetInstalled,
9
9
  sherpaUnsupportedReason
10
- } from "./chunk-4PCIW2XN.js";
10
+ } from "./chunk-U7P2XTRY.js";
11
11
  import {
12
12
  findParakeet
13
13
  } from "./chunk-JZIEZCQM.js";