hyperframes 0.8.90 → 0.8.92

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 (154) hide show
  1. package/dist/{add-QCKUCHLO.js → add-GCLS5XT7.js} +16 -16
  2. package/dist/{animatedGifPrep-JV7YPNCR.js → animatedGifPrep-VMFM2PBA.js} +6 -6
  3. package/dist/{asset-X5G7FLIA.js → asset-NFBCQ2QB.js} +2 -2
  4. package/dist/{assetCataloger-MYUR6H4S.js → assetCataloger-27YXPNX2.js} +2 -2
  5. package/dist/{auth-HUTOY6UC.js → auth-J6MHERMA.js} +2 -2
  6. package/dist/{autoUpdate-GVXUAVME.js → autoUpdate-D7RMTMHF.js} +2 -2
  7. package/dist/{backgroundChecks-DP64TQBS.js → backgroundChecks-ZUXDCYTJ.js} +3 -3
  8. package/dist/backgroundChecksWorker.js +3 -3
  9. package/dist/{batchRender-MIBYP2SP.js → batchRender-DCN2X35X.js} +3 -3
  10. package/dist/{beats-2BAVXPN4.js → beats-5FEJVZZY.js} +10 -10
  11. package/dist/{benchmark-AXEIQN5S.js → benchmark-ZBDA5GFV.js} +12 -12
  12. package/dist/{browser-GOL5PWIJ.js → browser-EAGFAPYB.js} +9 -9
  13. package/dist/{bundleWithLocalizedFonts-CCWJW35L.js → bundleWithLocalizedFonts-W7JJ23TN.js} +2 -2
  14. package/dist/{capture-CFMXNRM6.js → capture-27ZCA6CP.js} +7 -7
  15. package/dist/{capture-MWX7ONGJ.js → capture-W5XUURVP.js} +2 -2
  16. package/dist/{catalog-UDASP3IK.js → catalog-SPPSMRB5.js} +16 -16
  17. package/dist/{check-IMDTJ2RH.js → check-NV3OKYHO.js} +30 -30
  18. package/dist/{checkBrowser-OCN4Z4FT.js → checkBrowser-KL4V257E.js} +29 -29
  19. package/dist/{chunk-UXTEARGO.js → chunk-2A6FVDIZ.js} +1 -1
  20. package/dist/{chunk-JVYVKXTA.js → chunk-2E4WZU4S.js} +3 -3
  21. package/dist/{chunk-77SYQXQN.js → chunk-2RWYPLRR.js} +2 -2
  22. package/dist/{chunk-HMQ27CEJ.js → chunk-6WIXZ3HB.js} +3 -3
  23. package/dist/{chunk-4HDAVJMN.js → chunk-7AGI2TLZ.js} +2 -2
  24. package/dist/{chunk-FPWCGP7T.js → chunk-AIW6VOK6.js} +3 -3
  25. package/dist/{chunk-LP4D3V7E.js → chunk-BMQLA6GZ.js} +35 -42
  26. package/dist/{chunk-MGUSGIWE.js → chunk-CU2N7HZD.js} +1 -1
  27. package/dist/{chunk-W7KUW4QD.js → chunk-DKTP377I.js} +1 -1
  28. package/dist/{chunk-AUON4YVS.js → chunk-DU2IMZTI.js} +2 -2
  29. package/dist/{chunk-VBXD76KN.js → chunk-E3UXLITA.js} +1 -1
  30. package/dist/{chunk-PQ3I6CAC.js → chunk-ENV2LB4E.js} +3 -3
  31. package/dist/{chunk-6QBQPTRJ.js → chunk-FLGA3ZUU.js} +5 -5
  32. package/dist/{chunk-SGJSK536.js → chunk-FWLRQHMF.js} +1 -1
  33. package/dist/{chunk-U325D5ZG.js → chunk-GXIHEX7Z.js} +1 -1
  34. package/dist/{chunk-PWAWHXTQ.js → chunk-J7PWGYI3.js} +3 -3
  35. package/dist/{chunk-NL6WSNWA.js → chunk-JYEIGPLH.js} +4 -4
  36. package/dist/{chunk-DGPMOHUO.js → chunk-JZP473HH.js} +9 -9
  37. package/dist/{chunk-U24VGXGA.js → chunk-KVA65K7M.js} +39 -10
  38. package/dist/{chunk-VQX6DC4V.js → chunk-LNYBSC5Z.js} +114 -62
  39. package/dist/{chunk-WLIQG73N.js → chunk-MCR5L5H5.js} +1 -1
  40. package/dist/{chunk-MEIIOQNR.js → chunk-MWVZQN2E.js} +1 -1
  41. package/dist/{chunk-ANWEGAE6.js → chunk-NRAXUJQS.js} +3 -3
  42. package/dist/{chunk-AAW5AF54.js → chunk-NRQLS4HO.js} +4 -4
  43. package/dist/{chunk-OV4CCBM3.js → chunk-NZVRTDVW.js} +1 -1
  44. package/dist/{chunk-KRXGOOP3.js → chunk-O63VBAED.js} +1 -1
  45. package/dist/{chunk-FWDM3N34.js → chunk-QOJZKPIC.js} +4 -4
  46. package/dist/{chunk-KGDCJK72.js → chunk-QVOBDLUO.js} +3 -3
  47. package/dist/{chunk-GVHRNT6C.js → chunk-R7RHFXEK.js} +1 -1
  48. package/dist/{chunk-CYG65ZCX.js → chunk-RP6O7QFB.js} +74 -63
  49. package/dist/{chunk-WJ4NAOYT.js → chunk-RZC26MUU.js} +1 -1
  50. package/dist/{chunk-YQ5SWLDS.js → chunk-SSAULSQM.js} +8 -8
  51. package/dist/{chunk-TQGNT45W.js → chunk-SVQIWXWC.js} +2 -2
  52. package/dist/{chunk-XLJXHNXC.js → chunk-TDMX5OUY.js} +1 -1
  53. package/dist/{chunk-M3K5IF5G.js → chunk-TXN5R33Q.js} +2 -2
  54. package/dist/{chunk-2YPJQAU5.js → chunk-UURZ5VB2.js} +1 -1
  55. package/dist/{chunk-GK6OCEV7.js → chunk-WBASC4GU.js} +3 -3
  56. package/dist/chunk-WNYPPH3Y.js +3528 -0
  57. package/dist/{chunk-AP2WIRY6.js → chunk-WRN74OOR.js} +1 -1
  58. package/dist/{chunk-WRZG77MO.js → chunk-XGVMRQ6N.js} +8 -8
  59. package/dist/{chunk-GSWG25MG.js → chunk-YB7OWCJ7.js} +1 -1
  60. package/dist/{chunk-BNHS2BR4.js → chunk-Z44U3GMN.js} +1 -1
  61. package/dist/{chunk-WCQOPUJ4.js → chunk-ZOF426FA.js} +23 -10
  62. package/dist/{clean-F7NNEFPY.js → clean-CKYQK575.js} +14 -14
  63. package/dist/cli.js +50 -50
  64. package/dist/{cloud-GSFIMHVY.js → cloud-HRH5HUBL.js} +4 -4
  65. package/dist/{cloudrun-ZUZ35J2A.js → cloudrun-HSHBRCS4.js} +3 -3
  66. package/dist/{compare-26UBKHZI.js → compare-45VBPJBR.js} +24 -24
  67. package/dist/{compiler-XICNIB6E.js → compiler-HBDJ2FCK.js} +13 -3
  68. package/dist/{component-5QG3ILQS.js → component-IOAEAQSN.js} +3 -3
  69. package/dist/{compositions-IFRNCQ5G.js → compositions-VECXWCML.js} +17 -15
  70. package/dist/{delete-Z2L6F346.js → delete-ESBMF3XA.js} +2 -2
  71. package/dist/{dist-V6OCFIID.js → dist-COKVABAK.js} +2 -2
  72. package/dist/{dist-5Q62YHZI.js → dist-HJFL4ZN5.js} +1 -1
  73. package/dist/{doctor-WLSP4XWV.js → doctor-AGIH65QA.js} +10 -10
  74. package/dist/{events-FERXZJ74.js → events-EAINIMXE.js} +9 -9
  75. package/dist/{events-SFI5FAYU.js → events-INGDO67S.js} +8 -8
  76. package/dist/{feedback-6ZIZEN2J.js → feedback-XISLH3UL.js} +10 -10
  77. package/dist/{figma-OKUQYGPU.js → figma-O36BE6S7.js} +3 -3
  78. package/dist/fontLocalizeCli.js +8 -8
  79. package/dist/{get-JFVMDJ4K.js → get-2TBRXWDH.js} +2 -2
  80. package/dist/{gpuPolicy-Z3VMNZAH.js → gpuPolicy-FDXLHK7O.js} +6 -6
  81. package/dist/{grade-compare-TGVT536U.js → grade-compare-3AH3U2UM.js} +24 -24
  82. package/dist/{help-JHJAEATI.js → help-AQHVWZ7U.js} +1 -1
  83. package/dist/{history-IKW2UMZJ.js → history-YUY6U7VJ.js} +14 -14
  84. package/dist/hyperframe-runtime.js +55 -55
  85. package/dist/hyperframe.manifest.json +1 -1
  86. package/dist/hyperframe.runtime.iife.js +55 -55
  87. package/dist/hyperframes-player.global.js +3 -3
  88. package/dist/{info-GOMASHNG.js → info-CG74OV3N.js} +11 -11
  89. package/dist/{init-VHK4JK2I.js → init-BSRRUJTN.js} +21 -21
  90. package/dist/{inspect-NR4M3D3O.js → inspect-T6XSKC5K.js} +25 -25
  91. package/dist/{installer-IZI7H77F.js → installer-EGIOS5UQ.js} +5 -5
  92. package/dist/{keyframes-4Z6UHXTR.js → keyframes-HBASU3QG.js} +22 -17
  93. package/dist/{lambda-QOMWH34Y.js → lambda-64LK5VBR.js} +4 -4
  94. package/dist/{layout-F5STB2UB.js → layout-QVKBBOF5.js} +25 -25
  95. package/dist/{lint-XIKDK5NE.js → lint-GQPGCGYW.js} +12 -12
  96. package/dist/{lintProject-OUOTD5DS.js → lintProject-ESEUOGXF.js} +1 -1
  97. package/dist/{list-PV5AVDEA.js → list-MFG3CWUG.js} +2 -2
  98. package/dist/{login-4JVYU5EP.js → login-UY5HMZ63.js} +4 -4
  99. package/dist/{media-treatment-DQWRIN3R.js → media-treatment-PLRQ4NJB.js} +12 -12
  100. package/dist/{models-QMYYYGH4.js → models-VK3NR4ZI.js} +7 -7
  101. package/dist/{motionShot-F7PMQYSA.js → motionShot-VNNW6WV6.js} +10 -10
  102. package/dist/{normalize-audio-AVLP7MKR.js → normalize-audio-LWC5EDG4.js} +10 -10
  103. package/dist/{pipeline-437AL3MK.js → pipeline-S24AZTNK.js} +6 -6
  104. package/dist/{play-4GAAK5T4.js → play-WOGMI4FU.js} +20 -20
  105. package/dist/{preflight-AUMMYJTT.js → preflight-O7TG2WSZ.js} +7 -7
  106. package/dist/{present-WIRBZKR2.js → present-NK4CEHVO.js} +15 -15
  107. package/dist/{preview-NUQRYW6F.js → preview-6IFZAPIL.js} +18 -18
  108. package/dist/{producer-O7IG6IS4.js → producer-ULL2HNOC.js} +1 -1
  109. package/dist/{projectConfig-6RZN57VN.js → projectConfig-6DIB7H7E.js} +7 -7
  110. package/dist/{publication-Z64ENECQ.js → publication-OAGIQJHU.js} +3 -3
  111. package/dist/{publish-6LR5HSDV.js → publish-XRUKN32V.js} +9 -9
  112. package/dist/{remove-background-SOPXL32V.js → remove-background-P2W275SH.js} +7 -7
  113. package/dist/{render-ZVTBJQGB.js → render-APAOFW2G.js} +3 -3
  114. package/dist/{render-MDIGXG66.js → render-BQ55H4P5.js} +22 -22
  115. package/dist/{render-LUZG33CD.js → render-W5KZWLFB.js} +12 -12
  116. package/dist/{render-batch-SWB7ZEVV.js → render-batch-WPWPY5UA.js} +3 -3
  117. package/dist/{renderCancellation-34NDBFXL.js → renderCancellation-LN37WZR4.js} +6 -6
  118. package/dist/renderSetupWorker.js +1 -1
  119. package/dist/{resolver-XCOW3Q47.js → resolver-DMRC6NBN.js} +5 -5
  120. package/dist/{sherpa-ZRV5HYUT.js → sherpa-7DHFDVXD.js} +7 -7
  121. package/dist/{skills-YZOZUC2R.js → skills-P42VIJ2S.js} +11 -11
  122. package/dist/{skillsUpdateCheck-V2MIGABK.js → skillsUpdateCheck-MV4HDYO7.js} +3 -3
  123. package/dist/{snapshot-DEKOD4F6.js → snapshot-OFUU3SMV.js} +25 -25
  124. package/dist/{src-ZL5S6ZOV.js → src-6CP5D2JF.js} +5 -5
  125. package/dist/{src-WPCXIBAP.js → src-YUWEFLV4.js} +7 -7
  126. package/dist/{staticProjectServer-JSX6RZC3.js → staticProjectServer-FPLN4VJQ.js} +14 -14
  127. package/dist/{status-YW2IXW7Y.js → status-Z3CRKR35.js} +6 -6
  128. package/dist/studio/assets/{hyperframes-player-DDjER_ii.js → hyperframes-player-DKJPDHUp.js} +1 -1
  129. package/dist/studio/assets/{index-BKE3_N4v.js → index-C5_j5-3u.js} +178 -178
  130. package/dist/studio/assets/{index-5SFeUXP8.js → index-CHZ4kFWm.js} +1 -1
  131. package/dist/studio/assets/{index-CVsCxnlz.js → index-DpzpqJ_j.js} +1 -1
  132. package/dist/studio/{chunk-KU4F7QZ3.js → chunk-QPSOTK6M.js} +8 -1
  133. package/dist/studio/chunk-QPSOTK6M.js.map +1 -0
  134. package/dist/studio/index.d.ts +18 -14
  135. package/dist/studio/index.html +1 -1
  136. package/dist/studio/index.js +9190 -8916
  137. package/dist/studio/index.js.map +1 -1
  138. package/dist/studio/player.js +1 -1
  139. package/dist/{studio-api-JLNPQ3TO.js → studio-api-4FHIU7WA.js} +7 -7
  140. package/dist/{studioServer-ZCL433KM.js → studioServer-PIPRPNH2.js} +38 -38
  141. package/dist/{system-L4N5VQRB.js → system-47NPBMGC.js} +6 -6
  142. package/dist/{telemetry-RPKG2UZI.js → telemetry-AH7RMCZ5.js} +9 -9
  143. package/dist/{timeline-DUIEKLUY.js → timeline-E7QT5JZZ.js} +14 -14
  144. package/dist/{tokens-KPHKWWZ6.js → tokens-OJWP37XP.js} +2 -2
  145. package/dist/{transcribe-4SDPHYKI.js → transcribe-AZ3MXBCY.js} +7 -7
  146. package/dist/{transcribe-TNYWMNAY.js → transcribe-ZUVU222E.js} +12 -12
  147. package/dist/{updateCheck-PBVAHMGC.js → updateCheck-B57VMFQ3.js} +2 -2
  148. package/dist/{upgrade-CFBD6XYU.js → upgrade-P67KFD64.js} +2 -2
  149. package/dist/{urlDownloader-AQDUJKGE.js → urlDownloader-3LDWI4UF.js} +5 -5
  150. package/dist/{validate-INYRDUJN.js → validate-I7W4ERNH.js} +15 -15
  151. package/dist/{video-PWBBDS2L.js → video-X4WQOX3E.js} +6 -6
  152. package/package.json +1 -1
  153. package/dist/chunk-247O73KD.js +0 -3528
  154. package/dist/studio/chunk-KU4F7QZ3.js.map +0 -1
@@ -16,7 +16,7 @@ import {
16
16
  } from "./chunk-5ETJX6WM.js";
17
17
  import {
18
18
  runEnvironmentChecks
19
- } from "./chunk-UXTEARGO.js";
19
+ } from "./chunk-2A6FVDIZ.js";
20
20
  import {
21
21
  c
22
22
  } from "./chunk-ZTZA4UWZ.js";
@@ -25,24 +25,24 @@ import {
25
25
  getFreeDiskMb,
26
26
  getShmSizeMb,
27
27
  getSystemMeta
28
- } from "./chunk-AP2WIRY6.js";
28
+ } from "./chunk-WRN74OOR.js";
29
29
  import {
30
30
  defineCommand
31
31
  } from "./chunk-S3S4TGEH.js";
32
32
  import {
33
33
  resolveExtractCacheDir
34
- } from "./chunk-ANWEGAE6.js";
34
+ } from "./chunk-NRAXUJQS.js";
35
35
  import {
36
36
  getUpdateMeta,
37
37
  withMeta
38
- } from "./chunk-U325D5ZG.js";
38
+ } from "./chunk-GXIHEX7Z.js";
39
39
  import {
40
40
  CONFIG_PATH,
41
41
  withFileLock
42
42
  } from "./chunk-XUXGIA7H.js";
43
43
  import {
44
44
  VERSION
45
- } from "./chunk-77SYQXQN.js";
45
+ } from "./chunk-2RWYPLRR.js";
46
46
  import {
47
47
  normalizeErrorMessage
48
48
  } from "./chunk-KNU5COPB.js";
@@ -13,7 +13,7 @@ function resolveLocalBrowserGpuMode(browserGpuArg, envMode = process.env.PRODUCE
13
13
  return "auto";
14
14
  }
15
15
  async function resolveCaptureBrowserGpuMode(requestedMode, chromePath) {
16
- const { resolveBrowserGpuMode } = await import("./src-ZL5S6ZOV.js");
16
+ const { resolveBrowserGpuMode } = await import("./src-6CP5D2JF.js");
17
17
  return resolveBrowserGpuMode(requestedMode, { chromePath });
18
18
  }
19
19
 
@@ -17,7 +17,7 @@ import {
17
17
  } from "./chunk-ISN5GRYI.js";
18
18
  import {
19
19
  VERSION
20
- } from "./chunk-77SYQXQN.js";
20
+ } from "./chunk-2RWYPLRR.js";
21
21
 
22
22
  // src/utils/updateCheck.ts
23
23
  import { existsSync, readFileSync } from "fs";
@@ -9,13 +9,13 @@ import {
9
9
  } from "./chunk-AWDFDFI3.js";
10
10
  import {
11
11
  publishRegistryFile
12
- } from "./chunk-VBXD76KN.js";
12
+ } from "./chunk-E3UXLITA.js";
13
13
  import {
14
14
  ITEM_TYPE_DIRS
15
- } from "./chunk-WCQOPUJ4.js";
15
+ } from "./chunk-ZOF426FA.js";
16
16
  import {
17
17
  realProjectRoot
18
- } from "./chunk-247O73KD.js";
18
+ } from "./chunk-WNYPPH3Y.js";
19
19
  import {
20
20
  __commonJS,
21
21
  __toESM
@@ -12,18 +12,18 @@ import {
12
12
  } from "./chunk-262C25DQ.js";
13
13
  import {
14
14
  resolveDiagnosticNavigationTimeoutMs
15
- } from "./chunk-WJ4NAOYT.js";
15
+ } from "./chunk-RZC26MUU.js";
16
16
  import {
17
17
  resolveCaptureBrowserGpuMode,
18
18
  resolveLocalBrowserGpuMode
19
- } from "./chunk-SGJSK536.js";
19
+ } from "./chunk-FWLRQHMF.js";
20
20
  import {
21
21
  c
22
22
  } from "./chunk-ZTZA4UWZ.js";
23
23
  import {
24
24
  assertWebGpuAdapterAvailable,
25
25
  compositionRequiresWebGpu
26
- } from "./chunk-ANWEGAE6.js";
26
+ } from "./chunk-NRAXUJQS.js";
27
27
  import {
28
28
  normalizeErrorMessage
29
29
  } from "./chunk-KNU5COPB.js";
@@ -99,7 +99,7 @@ async function openSettledCompositionPage(html, url, options) {
99
99
  const { ensureBrowser, findSystemBrowser } = await import("./manager-NEVLEZK3.js");
100
100
  const browser = await ensureBrowser();
101
101
  const puppeteer = await import("puppeteer-core");
102
- const { buildChromeArgs } = await import("./src-ZL5S6ZOV.js");
102
+ const { buildChromeArgs } = await import("./src-6CP5D2JF.js");
103
103
  const requestedGpuMode = options.browserGpuMode ?? resolveCliChromeGpuMode();
104
104
  const requiresWebGpu = compositionRequiresWebGpu(html);
105
105
  const launch = async (executablePath) => {
@@ -8,13 +8,13 @@ import {
8
8
  installPageFunctionGuard,
9
9
  resolveCliChromeGpuMode,
10
10
  seekCompositionTimeline
11
- } from "./chunk-NL6WSNWA.js";
11
+ } from "./chunk-JYEIGPLH.js";
12
12
  import {
13
13
  resolveCompositionViewportFromHtml
14
14
  } from "./chunk-5Z63TBTX.js";
15
15
  import {
16
16
  resolveProject
17
- } from "./chunk-GSWG25MG.js";
17
+ } from "./chunk-YB7OWCJ7.js";
18
18
  import {
19
19
  c
20
20
  } from "./chunk-ZTZA4UWZ.js";
@@ -28,7 +28,7 @@ import {
28
28
  import {
29
29
  printDeprecationNotice,
30
30
  withMeta
31
- } from "./chunk-U325D5ZG.js";
31
+ } from "./chunk-GXIHEX7Z.js";
32
32
  import {
33
33
  normalizeErrorMessage
34
34
  } from "./chunk-KNU5COPB.js";
@@ -217,7 +217,7 @@ function extractCompositionErrorsFromLint(lintResult) {
217
217
  async function localizeRemoteAssets(html) {
218
218
  let dir;
219
219
  try {
220
- const { loadProducer } = await import("./producer-O7IG6IS4.js");
220
+ const { loadProducer } = await import("./producer-ULL2HNOC.js");
221
221
  const { localizeRemoteMediaSources, localizeRemoteImageSources, localizeRemoteFontFaces } = await loadProducer();
222
222
  dir = mkdtempSync(join(tmpdir(), "hf-validate-assets-"));
223
223
  const assetDir = dir;
@@ -238,10 +238,10 @@ async function localizeRemoteAssets(html) {
238
238
  }
239
239
  async function validateInBrowser(project, opts) {
240
240
  const projectDir = project.dir;
241
- const { bundleToSingleHtml } = await import("./compiler-XICNIB6E.js");
241
+ const { bundleToSingleHtml } = await import("./compiler-HBDJ2FCK.js");
242
242
  const { ensureBrowser } = await import("./manager-NEVLEZK3.js");
243
- const { serveStaticProjectHtml } = await import("./staticProjectServer-JSX6RZC3.js");
244
- const { lintProject } = await import("./lintProject-OUOTD5DS.js");
243
+ const { serveStaticProjectHtml } = await import("./staticProjectServer-FPLN4VJQ.js");
244
+ const { lintProject } = await import("./lintProject-ESEUOGXF.js");
245
245
  const lintResult = await lintProject(projectDir);
246
246
  const compositionErrors = extractCompositionErrorsFromLint(lintResult);
247
247
  const html = await bundleToSingleHtml(projectDir);
@@ -262,13 +262,13 @@ async function validateInBrowser(project, opts) {
262
262
  try {
263
263
  const browser = await ensureBrowser();
264
264
  const puppeteer = await import("puppeteer-core");
265
- const { buildChromeArgs, analyzeClipMediaFit } = await import("./src-ZL5S6ZOV.js");
265
+ const { buildChromeArgs, analyzeClipMediaFit } = await import("./src-6CP5D2JF.js");
266
266
  const requestedGpuMode = resolveCliChromeGpuMode();
267
267
  const {
268
268
  assertWebGpuAdapterAvailable,
269
269
  compositionRequiresWebGpu,
270
270
  resolveCaptureBrowserGpuMode
271
- } = await import("./gpuPolicy-Z3VMNZAH.js");
271
+ } = await import("./gpuPolicy-FDXLHK7O.js");
272
272
  const resolvedGpuMode = await resolveCaptureBrowserGpuMode(
273
273
  requestedGpuMode,
274
274
  browser.executablePath
@@ -3748,11 +3748,11 @@ function trackKindOf(node) {
3748
3748
 
3749
3749
  // ../lint/dist/index.js
3750
3750
  import { createHash } from "crypto";
3751
- import { existsSync as existsSync2, readFileSync, readdirSync } from "fs";
3751
+ import { existsSync as existsSync2, readFileSync as readFileSync2, readdirSync } from "fs";
3752
3752
  import { dirname, extname, join as join2, relative as relative2, resolve as resolve2 } from "path";
3753
3753
 
3754
3754
  // ../parsers/dist/assetResolution.js
3755
- import { existsSync } from "fs";
3755
+ import { closeSync, constants, existsSync, fstatSync, openSync, readFileSync } from "fs";
3756
3756
  import { isAbsolute, join, posix, relative, resolve, sep } from "path";
3757
3757
  function decodeUrlPathVariants(path) {
3758
3758
  const variants = [path];
@@ -3875,6 +3875,23 @@ function maskNonScannableRanges(html) {
3875
3875
  out = maskRange(out, /<script\b[^>]*>[\s\S]*?<\/script\b[^>]*>/gi);
3876
3876
  return out;
3877
3877
  }
3878
+ function readProjectFile(path) {
3879
+ let fd;
3880
+ try {
3881
+ fd = openSync(path, constants.O_RDONLY | (constants.O_NONBLOCK ?? 0), 384);
3882
+ } catch (error) {
3883
+ const code = error.code ?? "";
3884
+ if (["EISDIR", "ENXIO"].includes(code)) return { kind: "folder" };
3885
+ if (["ENOENT", "ENOTDIR", "ELOOP", "ENAMETOOLONG"].includes(code)) return { kind: "missing" };
3886
+ throw error;
3887
+ }
3888
+ try {
3889
+ if (!fstatSync(fd).isFile()) return { kind: "folder" };
3890
+ return { kind: "file", text: readFileSync(fd, "utf-8") };
3891
+ } finally {
3892
+ closeSync(fd);
3893
+ }
3894
+ }
3878
3895
 
3879
3896
  // ../lint/dist/index.js
3880
3897
  import { execFile } from "child_process";
@@ -10204,7 +10221,7 @@ function collectLocalStylesheets(projectDir, document, compSrcPath) {
10204
10221
  if (!stylesheet) continue;
10205
10222
  styles.push({
10206
10223
  href,
10207
- content: readFileSync(stylesheet.resolved, "utf-8"),
10224
+ content: readFileSync2(stylesheet.resolved, "utf-8"),
10208
10225
  rootRelativePath: stylesheet.rootRelativePath
10209
10226
  });
10210
10227
  }
@@ -10266,7 +10283,7 @@ async function lintProject(projectDir, entryFile, hostOptions = {}) {
10266
10283
  let totalErrors = 0;
10267
10284
  let totalWarnings = 0;
10268
10285
  let totalInfos = 0;
10269
- const rootHtml = readFileSync(indexPath, "utf-8");
10286
+ const rootHtml = readFileSync2(indexPath, "utf-8");
10270
10287
  const rootResult = await lintHyperframeHtml(rootHtml, {
10271
10288
  ...hostOptions,
10272
10289
  filePath: indexPath,
@@ -10295,7 +10312,7 @@ async function lintProject(projectDir, entryFile, hostOptions = {}) {
10295
10312
  const files = collectHtmlFiles(compositionsDir, "").sort();
10296
10313
  for (const file of files) {
10297
10314
  const filePath = join2(compositionsDir, file);
10298
- const html = readFileSync(filePath, "utf-8");
10315
+ const html = readFileSync2(filePath, "utf-8");
10299
10316
  const compSrcPath = `compositions/${file}`;
10300
10317
  allHtmlSources.push({ html, compSrcPath });
10301
10318
  if (isSnippetFragment(html)) continue;
@@ -10510,7 +10527,7 @@ function lintMultipleRootCompositions(projectDir) {
10510
10527
  const rootCompositions = [];
10511
10528
  for (const file of rootHtmlFiles) {
10512
10529
  if (file === "caption-skin.html") continue;
10513
- const content = readFileSync(join2(projectDir, file), "utf-8");
10530
+ const content = readFileSync2(join2(projectDir, file), "utf-8");
10514
10531
  if (/data-composition-id/i.test(content)) {
10515
10532
  rootCompositions.push(file);
10516
10533
  }
@@ -10580,13 +10597,24 @@ function lintMissingOrEmptySubComposition(projectDir, rootHtml) {
10580
10597
  const filePath = resolve2(projectDir, srcPath);
10581
10598
  if (visited.has(filePath)) continue;
10582
10599
  visited.add(filePath);
10583
- if (!existsSync2(filePath)) {
10600
+ const read = readProjectFile(filePath);
10601
+ if (read.kind === "missing") {
10584
10602
  if (!checked.has(srcPath)) {
10585
10603
  checked.set(srcPath, { srcPath, problem: "the file does not exist" });
10586
10604
  }
10587
10605
  continue;
10588
10606
  }
10589
- const fileHtml = readFileSync(filePath, "utf-8");
10607
+ if (read.kind === "folder") {
10608
+ if (!checked.has(srcPath)) {
10609
+ checked.set(srcPath, {
10610
+ srcPath,
10611
+ problem: "it is a folder, not an HTML file",
10612
+ folder: true
10613
+ });
10614
+ }
10615
+ continue;
10616
+ }
10617
+ const fileHtml = read.text;
10590
10618
  const validity = checkSubCompositionUsability(fileHtml, parseSubCompHtml);
10591
10619
  if (!validity.ok) {
10592
10620
  if (!checked.has(srcPath)) {
@@ -10602,12 +10630,12 @@ function lintMissingOrEmptySubComposition(projectDir, rootHtml) {
10602
10630
  };
10603
10631
  walk(rootHtml);
10604
10632
  const findings = [];
10605
- for (const { srcPath, problem } of checked.values()) {
10633
+ for (const { srcPath, problem, folder } of checked.values()) {
10606
10634
  findings.push({
10607
10635
  code: "missing_or_empty_sub_composition",
10608
10636
  severity: "error",
10609
10637
  message: `data-composition-src references "${srcPath}", but ${problem}.`,
10610
- fixHint: `Fix this before rendering \u2014 the render pre-flight rejects unusable sub-compositions. Write valid HTML into "${srcPath}" \u2014 it needs a <template> or <body> containing an element with data-composition-id, data-width, and data-height. Preview/studio still tolerates and skips the scene while you author it. If a scene-authoring step is still running, wait for it to finish before referencing the file, or re-run the step that generates it.`
10638
+ fixHint: folder ? `Point data-composition-src at the HTML file inside the folder, such as "${srcPath}/index.html".` : `Fix this before rendering \u2014 the render pre-flight rejects unusable sub-compositions. Write valid HTML into "${srcPath}" \u2014 it needs a <template> or <body> containing an element with data-composition-id, data-width, and data-height. Preview/studio still tolerates and skips the scene while you author it. If a scene-authoring step is still running, wait for it to finish before referencing the file, or re-run the step that generates it.`
10611
10639
  });
10612
10640
  }
10613
10641
  return findings;
@@ -10628,6 +10656,7 @@ export {
10628
10656
  resolveExistingLocalAsset,
10629
10657
  resolveProjectRelativeSrc,
10630
10658
  maskNonScannableRanges,
10659
+ readProjectFile,
10631
10660
  require_dist,
10632
10661
  LINT_RULE_COUNT,
10633
10662
  LINT_RULE_GROUP_COUNTS,
@@ -23,13 +23,13 @@ import {
23
23
  shouldClampResolvedMediaDuration,
24
24
  stripEmbeddedRuntimeScripts,
25
25
  warnUnknownEnumValues
26
- } from "./chunk-247O73KD.js";
26
+ } from "./chunk-WNYPPH3Y.js";
27
27
  import {
28
28
  cssVariableName
29
29
  } from "./chunk-VC76R6W2.js";
30
30
  import {
31
31
  lintHyperframeHtml
32
- } from "./chunk-U24VGXGA.js";
32
+ } from "./chunk-KVA65K7M.js";
33
33
  import {
34
34
  CSS_URL_RE,
35
35
  checkSubCompositionUsability,
@@ -119,6 +119,58 @@ function inlineScriptRuns(scripts, isPinned = () => false) {
119
119
  runs.push({ members, anchor: null });
120
120
  return runs;
121
121
  }
122
+ function cssStyleMergeKey(el) {
123
+ const rawType = el.getAttribute("type") ?? "";
124
+ const type = el.tagName.toLowerCase() === "link" ? rawType.split(";")[0].trim() : rawType;
125
+ if (type !== "" && type.toLowerCase() !== "text/css")
126
+ return void 0;
127
+ const media = (el.getAttribute("media") ?? "").trim().toLowerCase();
128
+ return JSON.stringify([media === "all" ? "" : media, el.getAttribute("title") ?? ""]);
129
+ }
130
+ var UNCONDITIONAL_CSS_KEY = JSON.stringify(["", ""]);
131
+ function linkDedupeKey(el) {
132
+ return JSON.stringify([
133
+ el.getAttribute("href"),
134
+ (el.getAttribute("rel") ?? "").trim().toLowerCase(),
135
+ cssStyleMergeKey(el) ?? el.getAttribute("type"),
136
+ el.hasAttribute("disabled")
137
+ ]);
138
+ }
139
+ function hasSameLink(scope, link) {
140
+ const key = linkDedupeKey(link);
141
+ return [...scope.querySelectorAll("link[href]")].some((other) => !other.closest("noscript") && linkDedupeKey(other) === key);
142
+ }
143
+ function headStyleRuns(styles, isPinned = () => false) {
144
+ const runs = [];
145
+ let previousKey;
146
+ for (const el of styles) {
147
+ const key = isPinned(el) ? void 0 : cssStyleMergeKey(el);
148
+ if (key !== void 0 && key === previousKey)
149
+ runs.at(-1).push(el);
150
+ else if (key !== void 0)
151
+ runs.push([el]);
152
+ previousKey = key;
153
+ }
154
+ return runs;
155
+ }
156
+ function compositionStyle(el, css) {
157
+ return { css, media: el.getAttribute("media"), title: el.getAttribute("title") };
158
+ }
159
+ function styleElementsFor(document, sheets, join) {
160
+ const elements = sheets.map(({ css, media, title }) => {
161
+ const el = document.createElement("style");
162
+ if (media !== null)
163
+ el.setAttribute("media", media);
164
+ if (title !== null)
165
+ el.setAttribute("title", title);
166
+ el.textContent = css;
167
+ return el;
168
+ });
169
+ return headStyleRuns(elements).map((run) => {
170
+ run[0].textContent = join(run.map((el) => el.textContent || ""));
171
+ return run[0];
172
+ });
173
+ }
122
174
 
123
175
  // ../core/dist/sceneParts.js
124
176
  var SCENE_PART_ATTR = "data-hf-scene";
@@ -979,6 +1031,20 @@ var reaches = (host, selector) => {
979
1031
  return false;
980
1032
  }
981
1033
  };
1034
+ function ensureExternalLinkTag(doc, link) {
1035
+ const el = doc.createElement("link");
1036
+ el.setAttribute("rel", link.rel);
1037
+ el.setAttribute("href", link.href);
1038
+ for (const name of ["crossorigin", "media", "title", "type"]) {
1039
+ const value = link[name];
1040
+ if (value != null)
1041
+ el.setAttribute(name, value);
1042
+ }
1043
+ if (link.disabled)
1044
+ el.setAttribute("disabled", "");
1045
+ if (!hasSameLink(doc, el))
1046
+ doc.head.appendChild(el);
1047
+ }
982
1048
  function defaultBuildScopeSelector(compId) {
983
1049
  const escaped = compId.replace(/\\/g, "\\\\").replace(/"/g, '\\"');
984
1050
  return `[data-composition-id="${escaped}"]`;
@@ -993,7 +1059,6 @@ function inlineSubCompositions(document, hosts, options) {
993
1059
  const importMaps = [];
994
1060
  const moduleScripts = [];
995
1061
  const externalLinks = [];
996
- const seenLinkHrefs = /* @__PURE__ */ new Set();
997
1062
  const variablesByComp = {};
998
1063
  const sceneHosts = /* @__PURE__ */ new Map();
999
1064
  const queue = hosts.map((element) => ({
@@ -1084,15 +1149,20 @@ function inlineSubCompositions(document, hosts, options) {
1084
1149
  };
1085
1150
  for (const link of plan.linkSources) {
1086
1151
  const href = resolveSubAssetPath(link.getAttribute("href"));
1087
- if (href && !seenLinkHrefs.has(href)) {
1088
- seenLinkHrefs.add(href);
1152
+ if (href) {
1089
1153
  const rel = (link.getAttribute("rel") || "").trim();
1090
1154
  const crossorigin = link.hasAttribute("crossorigin") ? link.getAttribute("crossorigin") || "" : void 0;
1091
- externalLinks.push({ href, rel, crossorigin });
1155
+ const media = link.getAttribute("media") ?? void 0;
1156
+ const title = link.getAttribute("title") ?? void 0;
1157
+ const type = link.getAttribute("type") ?? void 0;
1158
+ const disabled = link.hasAttribute("disabled") ? true : void 0;
1159
+ externalLinks.push({ href, rel, crossorigin, media, title, type, disabled });
1092
1160
  }
1093
1161
  }
1094
1162
  for (const styleEl of plan.styleSources) {
1095
- styles.push(scopeSubStyle(styleEl.textContent || ""));
1163
+ if (cssStyleMergeKey(styleEl) === void 0)
1164
+ continue;
1165
+ styles.push(compositionStyle(styleEl, scopeSubStyle(styleEl.textContent || "")));
1096
1166
  if (scene)
1097
1167
  styleScenes.push(scene);
1098
1168
  styleEl.remove();
@@ -1876,8 +1946,7 @@ function placeSceneStylesLikeRender(document) {
1876
1946
  first.before(holder);
1877
1947
  }
1878
1948
  function isAlwaysAppliedStyle(el) {
1879
- const type = el.getAttribute("type")?.trim().toLowerCase();
1880
- return !el.hasAttribute("media") && (!type || type === "text/css") && !el.closest("template, noscript, svg");
1949
+ return cssStyleMergeKey(el) === UNCONDITIONAL_CSS_KEY && !el.closest("template, noscript, svg");
1881
1950
  }
1882
1951
  function pushRun(runs, scene, chunk) {
1883
1952
  const last = runs.at(-1);
@@ -1888,14 +1957,8 @@ function pushRun(runs, scene, chunk) {
1888
1957
  }
1889
1958
  function coalesceHeadStylesAndBodyScripts(document) {
1890
1959
  const allHeadStyles = [...document.querySelectorAll("head style")];
1891
- const untaggedRuns = [[]];
1892
- for (const el of allHeadStyles) {
1893
- if (el.hasAttribute(SCENE_PART_ATTR))
1894
- untaggedRuns.push([]);
1895
- else
1896
- untaggedRuns.at(-1).push(el);
1897
- }
1898
- for (const run of allHeadStyles.length > 1 ? untaggedRuns : []) {
1960
+ const isScenePart = (el) => el.hasAttribute(SCENE_PART_ATTR);
1961
+ for (const run of allHeadStyles.length > 1 ? headStyleRuns(allHeadStyles, isScenePart) : []) {
1899
1962
  const merged = joinCssHoistingImports(run.map((el) => el.textContent || ""));
1900
1963
  if (!merged)
1901
1964
  continue;
@@ -1903,7 +1966,7 @@ function coalesceHeadStylesAndBodyScripts(document) {
1903
1966
  for (const el of run.slice(1))
1904
1967
  el.remove();
1905
1968
  }
1906
- if (untaggedRuns.length > 1)
1969
+ if (allHeadStyles.some(isScenePart))
1907
1970
  placeSceneStylesLikeRender(document);
1908
1971
  const isPinned = (el) => el.hasAttribute(RUNTIME_BOOTSTRAP_ATTR) || el.hasAttribute(SCENE_PART_ATTR);
1909
1972
  for (const { members, anchor } of inlineScriptRuns([...document.querySelectorAll("body script")], isPinned)) {
@@ -2016,11 +2079,11 @@ async function bundleProject(projectDir, options) {
2016
2079
  if (resolve2(sourceDir) !== resolve2(projectDir)) {
2017
2080
  rebaseEntryAuthoredAssetPaths(document, sourceDir, projectDir);
2018
2081
  }
2019
- const localCssChunks = [];
2020
- let cssAnchorPlaced = false;
2021
2082
  for (const el of [...document.querySelectorAll('link[rel="stylesheet"]')]) {
2022
2083
  const href = el.getAttribute("href");
2023
- if (!href || !isRelativeUrl(href))
2084
+ if (!href || !isRelativeUrl(href) || cssStyleMergeKey(el) === void 0)
2085
+ continue;
2086
+ if (el.hasAttribute("disabled"))
2024
2087
  continue;
2025
2088
  const cssPath = resolveEntryPath(href);
2026
2089
  if (!cssPath)
@@ -2028,26 +2091,14 @@ async function bundleProject(projectDir, options) {
2028
2091
  const css = safeReadFile(cssPath);
2029
2092
  if (css == null)
2030
2093
  continue;
2031
- localCssChunks.push(inlineCssFile(css, dirname(cssPath), projectDir));
2032
- if (!cssAnchorPlaced) {
2033
- const anchor = document.createElement("style");
2034
- anchor.setAttribute("data-hf-bundled-local-css", "1");
2035
- el.replaceWith(anchor);
2036
- cssAnchorPlaced = true;
2037
- } else {
2038
- el.remove();
2039
- }
2040
- }
2041
- if (localCssChunks.length > 0) {
2042
- const anchor = document.querySelector('style[data-hf-bundled-local-css="1"]');
2043
- if (anchor) {
2044
- anchor.removeAttribute("data-hf-bundled-local-css");
2045
- anchor.textContent = localCssChunks.join("\n\n");
2046
- } else {
2047
- const style = document.createElement("style");
2048
- style.textContent = localCssChunks.join("\n\n");
2049
- document.head.appendChild(style);
2094
+ const style = document.createElement("style");
2095
+ for (const name of ["media", "title"]) {
2096
+ const value = el.getAttribute(name);
2097
+ if (value !== null)
2098
+ style.setAttribute(name, value);
2050
2099
  }
2100
+ style.textContent = inlineCssFile(css, dirname(cssPath), projectDir);
2101
+ el.replaceWith(style);
2051
2102
  }
2052
2103
  const rootScripts = options?.sceneParts ? [
2053
2104
  ...document.querySelectorAll(`script:not([${RUNTIME_BOOTSTRAP_ATTR}])`),
@@ -2094,7 +2145,7 @@ async function bundleProject(projectDir, options) {
2094
2145
  });
2095
2146
  refuseSwapsReachedByRootScripts(document, rootScripts);
2096
2147
  const styleRuns = [];
2097
- subCompResult.styles.forEach((css, i) => pushRun(styleRuns, subCompResult.styleScenes[i], css));
2148
+ subCompResult.styles.forEach((style, i) => pushRun(styleRuns, subCompResult.styleScenes[i], style));
2098
2149
  const scriptRuns = [];
2099
2150
  const compStyleChunks = [];
2100
2151
  const compScriptChunks = [];
@@ -2159,10 +2210,12 @@ async function bundleProject(projectDir, options) {
2159
2210
  pushSubCompVariableStyles(innerDoc, innerRoot, mergedVariables, runtimeScope, compStyleChunks);
2160
2211
  if (innerRoot) {
2161
2212
  for (const styleEl of [...innerRoot.querySelectorAll("style")]) {
2213
+ if (cssStyleMergeKey(styleEl) === void 0)
2214
+ continue;
2162
2215
  const css = styleEl.textContent || "";
2163
- compStyleChunks.push(compId ? scopeCssToComposition(css, compId, runtimeScope, authoredRootId, {
2216
+ compStyleChunks.push(compositionStyle(styleEl, compId ? scopeCssToComposition(css, compId, runtimeScope, authoredRootId, {
2164
2217
  scopeRootSelectors: true
2165
- }) : css);
2218
+ }) : css));
2166
2219
  styleEl.remove();
2167
2220
  }
2168
2221
  hoistCompositionScripts(innerRoot, {
@@ -2185,10 +2238,12 @@ async function bundleProject(projectDir, options) {
2185
2238
  host.innerHTML = preparedInnerRoot.outerHTML || "";
2186
2239
  } else {
2187
2240
  for (const styleEl of [...innerDoc.querySelectorAll("style")]) {
2241
+ if (cssStyleMergeKey(styleEl) === void 0)
2242
+ continue;
2188
2243
  const css = styleEl.textContent || "";
2189
- compStyleChunks.push(compId ? scopeCssToComposition(css, compId, runtimeScope, void 0, {
2244
+ compStyleChunks.push(compositionStyle(styleEl, compId ? scopeCssToComposition(css, compId, runtimeScope, void 0, {
2190
2245
  scopeRootSelectors: true
2191
- }) : css);
2246
+ }) : css));
2192
2247
  styleEl.remove();
2193
2248
  }
2194
2249
  hoistCompositionScripts(innerDoc, {
@@ -2242,17 +2297,8 @@ async function bundleProject(projectDir, options) {
2242
2297
  document.body.appendChild(script);
2243
2298
  }
2244
2299
  }
2245
- for (const link of compExternalLinks) {
2246
- const escapedHref = link.href.replace(/\\/g, "\\\\").replace(/"/g, '\\"');
2247
- if (!document.querySelector(`link[href="${escapedHref}"]`)) {
2248
- const linkEl = document.createElement("link");
2249
- linkEl.setAttribute("rel", link.rel);
2250
- linkEl.setAttribute("href", link.href);
2251
- if (link.crossorigin != null)
2252
- linkEl.setAttribute("crossorigin", link.crossorigin);
2253
- document.head.appendChild(linkEl);
2254
- }
2255
- }
2300
+ for (const link of compExternalLinks)
2301
+ ensureExternalLinkTag(document, link);
2256
2302
  for (const css of compStyleChunks)
2257
2303
  pushRun(styleRuns, void 0, css);
2258
2304
  for (const chunk of compScriptChunks)
@@ -2265,11 +2311,12 @@ async function bundleProject(projectDir, options) {
2265
2311
  scriptRuns.unshift({ chunks: [variablesByCompScript] });
2266
2312
  }
2267
2313
  for (const { scene, chunks } of styleRuns) {
2268
- const style = document.createElement("style");
2269
- if (scene)
2270
- style.setAttribute(SCENE_PART_ATTR, scene);
2271
- style.textContent = scene ? joinCssHoistingImports(chunks) : chunks.join("\n\n");
2272
- document.head.appendChild(style);
2314
+ const join = scene ? joinCssHoistingImports : (css) => css.join("\n\n");
2315
+ for (const style of styleElementsFor(document, chunks, join)) {
2316
+ if (scene)
2317
+ style.setAttribute(SCENE_PART_ATTR, scene);
2318
+ document.head.appendChild(style);
2319
+ }
2273
2320
  }
2274
2321
  for (const { scene, chunks } of scriptRuns) {
2275
2322
  const script = document.createElement("script");
@@ -2429,7 +2476,7 @@ function pushSubCompVariableStyles(innerDoc, innerRoot, mergedVariables, runtime
2429
2476
  Object.assign(declaredForCss, readDeclaredDefaults(innerRootForVars));
2430
2477
  const cssVars = compositionVariablesCssBlock({ ...declaredForCss, ...mergedVariables }, runtimeScope);
2431
2478
  if (cssVars)
2432
- compStyleChunks.push(cssVars);
2479
+ compStyleChunks.push({ css: cssVars, media: null, title: null });
2433
2480
  }
2434
2481
 
2435
2482
  // ../core/dist/compiler/htmlParityContract.js
@@ -2560,6 +2607,10 @@ function addScenePartsManifest(html, ignore = []) {
2560
2607
  export {
2561
2608
  compileHtml,
2562
2609
  inlineScriptRuns,
2610
+ cssStyleMergeKey,
2611
+ headStyleRuns,
2612
+ compositionStyle,
2613
+ styleElementsFor,
2563
2614
  ensureExternalScriptTag,
2564
2615
  emitMountedModuleScripts,
2565
2616
  FLATTENED_INNER_ROOT_STRIP_ATTRS,
@@ -2567,6 +2618,7 @@ export {
2567
2618
  wrapScopedCompositionScript,
2568
2619
  buildVariablesByCompScript,
2569
2620
  validateHyperframeHtmlContract,
2621
+ ensureExternalLinkTag,
2570
2622
  inlineSubCompositions,
2571
2623
  EXCLUDED_TAGS,
2572
2624
  mintHfId,
@@ -19,7 +19,7 @@ import {
19
19
  import {
20
20
  formatVariableValidationIssue,
21
21
  validateVariables
22
- } from "./chunk-WCQOPUJ4.js";
22
+ } from "./chunk-ZOF426FA.js";
23
23
  import {
24
24
  extractCompositionMetadata
25
25
  } from "./chunk-WFO4PSIZ.js";
@@ -12,7 +12,7 @@ import {
12
12
  } from "./chunk-HVW7ABXD.js";
13
13
  import {
14
14
  DEFAULT_REGISTRY_URL
15
- } from "./chunk-PWAWHXTQ.js";
15
+ } from "./chunk-J7PWGYI3.js";
16
16
 
17
17
  // src/utils/projectConfig.ts
18
18
  import { readFileSync, writeFileSync } from "fs";
@@ -22,7 +22,7 @@ import {
22
22
  renderFrameIdForRenderId,
23
23
  resolveAuthoredTimingWindow,
24
24
  toFps
25
- } from "./chunk-WCQOPUJ4.js";
25
+ } from "./chunk-ZOF426FA.js";
26
26
  import {
27
27
  AUDIO_GROUP_RENDER_ID_ATTR,
28
28
  COLOR_GRADING_SOURCE_HIDDEN_ATTR,
@@ -51,7 +51,7 @@ import {
51
51
  shiftRateLane,
52
52
  sourceTimeAt,
53
53
  timeAtSourceTime
54
- } from "./chunk-247O73KD.js";
54
+ } from "./chunk-WNYPPH3Y.js";
55
55
  import {
56
56
  chromeMajorCeiling,
57
57
  exceedsChromeCeiling
@@ -59,7 +59,7 @@ import {
59
59
  import {
60
60
  isWithinProjectRoot,
61
61
  resolveProjectRelativeSrc
62
- } from "./chunk-U24VGXGA.js";
62
+ } from "./chunk-KVA65K7M.js";
63
63
  import {
64
64
  FFMPEG_PATH_ENV,
65
65
  FFPROBE_PATH_ENV,