hyperframes 0.8.179 → 0.8.181

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (158) hide show
  1. package/dist/{add-2CCBND75.js → add-AWQ2EGBU.js} +11 -11
  2. package/dist/{animatedGifPrep-S6XXOOXK.js → animatedGifPrep-SENXJ7TN.js} +5 -5
  3. package/dist/api.js +13 -13
  4. package/dist/{asset-7HOLVSD5.js → asset-XBH3MN3Y.js} +2 -2
  5. package/dist/{assetCataloger-MSAMR77T.js → assetCataloger-KH4X2CRO.js} +5 -5
  6. package/dist/{audio-356GVOLJ.js → audio-Q7I473UN.js} +11 -11
  7. package/dist/{auth-YHI5VR4X.js → auth-I7CBTEUS.js} +1 -1
  8. package/dist/{autoUpdate-OP345EBV.js → autoUpdate-KY5TLSN7.js} +2 -2
  9. package/dist/{backgroundChecks-6NVELE25.js → backgroundChecks-4Q3VVK5W.js} +3 -3
  10. package/dist/backgroundChecksWorker.js +3 -3
  11. package/dist/{batchRender-OOQYGH5A.js → batchRender-3AYDQRBI.js} +3 -3
  12. package/dist/{beats-DQH5SOHM.js → beats-P4LENNVT.js} +4 -4
  13. package/dist/{benchmark-2W2NPNLJ.js → benchmark-AXOAECN3.js} +8 -8
  14. package/dist/{browser-SCM75524.js → browser-XZKB5HGJ.js} +3 -3
  15. package/dist/{bundleWithLocalizedFonts-4F6HKLMZ.js → bundleWithLocalizedFonts-2WCR57IN.js} +2 -2
  16. package/dist/{capture-YRS6SZ6B.js → capture-4RN4APDF.js} +8 -8
  17. package/dist/{capture-ZBGAJYVH.js → capture-NWARHRHR.js} +2 -2
  18. package/dist/{captureCompositionFrame-Z33NWUED.js → captureCompositionFrame-QOF5BRF4.js} +9 -9
  19. package/dist/{catalog-MOSGL65T.js → catalog-CRPOPVD5.js} +11 -11
  20. package/dist/{catch-up-TCAZFTMO.js → catch-up-MHWGUQ42.js} +4 -4
  21. package/dist/{check-QVXSTHZB.js → check-DJCUOUDI.js} +32 -32
  22. package/dist/{checkBrowser-NF2CMWYR.js → checkBrowser-VES2NF3K.js} +28 -28
  23. package/dist/{chunk-5RS2FIZU.js → chunk-3PULCIY5.js} +1 -1
  24. package/dist/{chunk-DHKYJYOY.js → chunk-3XDOGSRD.js} +3 -3
  25. package/dist/{chunk-PU33GPG4.js → chunk-4IEH6EAC.js} +1 -1
  26. package/dist/{chunk-A2BB2XQU.js → chunk-4OT3FWVV.js} +2 -2
  27. package/dist/{chunk-FIAQ4J45.js → chunk-4USWWI2Y.js} +2 -2
  28. package/dist/{chunk-WOXRCPJU.js → chunk-55IG255C.js} +1 -1
  29. package/dist/{chunk-COK5OUBX.js → chunk-5E5EYPZO.js} +1 -1
  30. package/dist/{chunk-N3U7WHQK.js → chunk-5JMZLQT6.js} +5 -5
  31. package/dist/{chunk-IHWI3KZY.js → chunk-65WIUIHL.js} +3 -3
  32. package/dist/{chunk-TINAVSGR.js → chunk-6I7V6Q7F.js} +1 -1
  33. package/dist/{chunk-MK6D6HVT.js → chunk-AOWDVB2T.js} +1 -1
  34. package/dist/{chunk-ILLFG4RN.js → chunk-B6JLCPT3.js} +3 -3
  35. package/dist/{chunk-PLNQW2C6.js → chunk-BAZ5LCR3.js} +1 -1
  36. package/dist/{chunk-VI7IQ2QF.js → chunk-DJJ7SK4F.js} +7 -7
  37. package/dist/{chunk-5HZAIPHY.js → chunk-DUN63LHY.js} +1 -1
  38. package/dist/{chunk-BNGRVR3Y.js → chunk-EOADENKV.js} +4 -4
  39. package/dist/{chunk-F3GML67X.js → chunk-GNE57O7U.js} +1 -1
  40. package/dist/{chunk-JRIXYXG3.js → chunk-HODBPO4A.js} +134 -44
  41. package/dist/{chunk-52L2L46Q.js → chunk-IL3GTCQY.js} +1 -1
  42. package/dist/{chunk-BGKZ37BC.js → chunk-IWTRHPTP.js} +2 -2
  43. package/dist/{chunk-VCDWVVDV.js → chunk-IZM562YJ.js} +3 -3
  44. package/dist/{chunk-3EJYUZHW.js → chunk-JBCU6NR5.js} +6 -6
  45. package/dist/{chunk-OXP77SHD.js → chunk-JMFJI26U.js} +1 -1
  46. package/dist/{chunk-M5CJQ6EH.js → chunk-K26FR4SM.js} +1 -1
  47. package/dist/{chunk-UOHQV6AV.js → chunk-KIO3R4QN.js} +1 -1
  48. package/dist/{chunk-AHS5QYKF.js → chunk-LBQFLUIY.js} +1 -1
  49. package/dist/{chunk-NTMCSIQB.js → chunk-N5SXQCJL.js} +2 -2
  50. package/dist/{chunk-C5XU53VP.js → chunk-O5AE7HOP.js} +9 -9
  51. package/dist/{chunk-YH7VQAKX.js → chunk-OFY6JTZC.js} +2 -2
  52. package/dist/{chunk-XX4ZYQR6.js → chunk-OJDXABUF.js} +1 -1
  53. package/dist/{chunk-RJIJWETG.js → chunk-OJTDUF4W.js} +1 -1
  54. package/dist/{chunk-BJJ3QF7T.js → chunk-OR5WCFWZ.js} +1 -1
  55. package/dist/{chunk-OINJILMB.js → chunk-PF7OWVTL.js} +1 -1
  56. package/dist/{chunk-ZAJO3YCQ.js → chunk-RXQHSGAQ.js} +2 -2
  57. package/dist/{chunk-A3RUVTGB.js → chunk-S3RYRF3W.js} +1 -1
  58. package/dist/{chunk-UWPUEI5U.js → chunk-T7UHTUUE.js} +1 -1
  59. package/dist/{chunk-AFKVI7FJ.js → chunk-TO6JNTML.js} +1 -1
  60. package/dist/{chunk-AEWZDKFS.js → chunk-UIDZRCBG.js} +1 -1
  61. package/dist/{chunk-FTWOVWHR.js → chunk-UVEQLDKB.js} +2 -2
  62. package/dist/{chunk-ORM7SJ7K.js → chunk-V2UNZ7QP.js} +6 -6
  63. package/dist/{chunk-HU4PBQGJ.js → chunk-VAJIPSN6.js} +1 -1
  64. package/dist/{chunk-LBRJKTVY.js → chunk-WITHUCCB.js} +2 -2
  65. package/dist/{chunk-32GKQ73S.js → chunk-WUQUR33W.js} +1 -1
  66. package/dist/{chunk-MXNKK7HY.js → chunk-WUUCEFL5.js} +3 -3
  67. package/dist/{chunk-Q73AGCTV.js → chunk-X7CCSMRR.js} +10 -10
  68. package/dist/{chunk-DLF5KIBL.js → chunk-XEWHUPFS.js} +2 -2
  69. package/dist/{chunk-IE6O2VXV.js → chunk-XH262OWN.js} +1 -1
  70. package/dist/{chunk-LO4DHZLH.js → chunk-XSRUVMXK.js} +3 -3
  71. package/dist/{chunk-BW2UQR4A.js → chunk-Y2RXRPL2.js} +5 -5
  72. package/dist/{chunk-XSQWXUK2.js → chunk-Y5GY6Y7A.js} +1 -1
  73. package/dist/{chunk-M2DZX2DP.js → chunk-YMS6CJCD.js} +1 -1
  74. package/dist/{chunk-VU4JLRNH.js → chunk-YPBIAONI.js} +33 -36
  75. package/dist/{chunk-CW3VIQMZ.js → chunk-ZUOSILUE.js} +1 -1
  76. package/dist/{clean-SJ2UIDKG.js → clean-GJNDVVDI.js} +13 -13
  77. package/dist/cli.js +53 -53
  78. package/dist/{cloud-DH7QGNPZ.js → cloud-JCWNMKXC.js} +4 -4
  79. package/dist/{cloudrun-ZA2ZH2VZ.js → cloudrun-2BKGY53X.js} +4 -4
  80. package/dist/{compare-5JNN5BHX.js → compare-XWM7FAYM.js} +23 -23
  81. package/dist/{compiler-CQ6OKYT5.js → compiler-U3W6CJW7.js} +2 -2
  82. package/dist/{component-LJQWLOXZ.js → component-CBRAE325.js} +3 -3
  83. package/dist/{compositions-UILNO2RF.js → compositions-EZYJEHQ3.js} +9 -9
  84. package/dist/{delete-WIO2MDPB.js → delete-JWWMOITI.js} +2 -2
  85. package/dist/{deploy-BUEYC7MP.js → deploy-UGOV76OH.js} +1 -1
  86. package/dist/{dist-MHJYD5IZ.js → dist-VO7OXOFK.js} +2 -2
  87. package/dist/{doctor-5G2RXBQX.js → doctor-XSKSZRR7.js} +9 -9
  88. package/dist/{events-2LHNVY2F.js → events-AIZODZMP.js} +3 -3
  89. package/dist/{events-BXODXMJ6.js → events-RGS4MAH4.js} +2 -2
  90. package/dist/{feedback-57END2CW.js → feedback-GE3VDZOH.js} +6 -6
  91. package/dist/{ffmpeg-64E4VH6W.js → ffmpeg-SCXZTR6X.js} +5 -5
  92. package/dist/{figma-O5MO4GF5.js → figma-3R4XST4Y.js} +3 -3
  93. package/dist/fontLocalizeCli.js +7 -7
  94. package/dist/{get-OEWPJ4HH.js → get-4FKJP6IM.js} +2 -2
  95. package/dist/{gpuPolicy-IGZOHHMX.js → gpuPolicy-4NNXESM7.js} +5 -5
  96. package/dist/{grade-compare-PG2UOMHO.js → grade-compare-FAYVPXUR.js} +24 -24
  97. package/dist/{help-44J4SQTE.js → help-C3UQMYXK.js} +1 -1
  98. package/dist/{history-CUA53AOE.js → history-LDGQ2IZJ.js} +6 -6
  99. package/dist/hyperframe-runtime.js +54 -54
  100. package/dist/hyperframe.manifest.json +1 -1
  101. package/dist/hyperframe.runtime.iife.js +54 -54
  102. package/dist/hyperframes-player.global.js +1 -1
  103. package/dist/{info-UDXYDQVK.js → info-KMXFLD3Q.js} +7 -7
  104. package/dist/{init-CVT6HLW2.js → init-D7GYHSX5.js} +25 -25
  105. package/dist/{inspect-6F72RJQG.js → inspect-CUKWHCGS.js} +24 -24
  106. package/dist/{installer-ADKWK4I4.js → installer-EPRSH6QI.js} +4 -4
  107. package/dist/{keyframes-GJ7EEWW2.js → keyframes-XCUPHBW3.js} +6 -6
  108. package/dist/{lambda-WFSBYU6U.js → lambda-IMORFJHN.js} +6 -6
  109. package/dist/{layout-SASENZOG.js → layout-JD2IOBMS.js} +24 -24
  110. package/dist/{lint-JX57B52X.js → lint-FHLER36Y.js} +6 -6
  111. package/dist/{list-WG7NTE63.js → list-MGCFG5MA.js} +2 -2
  112. package/dist/{login-3NFLD65G.js → login-QX6M4UTR.js} +4 -4
  113. package/dist/{manager-BKHRATMY.js → manager-IETAVBZS.js} +6 -6
  114. package/dist/{media-treatment-QI5F2SMU.js → media-treatment-MDAQRITV.js} +11 -11
  115. package/dist/{models-TXURF3J6.js → models-NZAOSI5A.js} +9 -9
  116. package/dist/{motionShot-HRM6NMT4.js → motionShot-6ZDUM2K4.js} +12 -12
  117. package/dist/{normalize-audio-IEKL43N4.js → normalize-audio-7PRYX6QM.js} +4 -4
  118. package/dist/{open-GU3I75TB.js → open-I254NY5J.js} +11 -11
  119. package/dist/{parakeetRunner-S2QI3PCA.js → parakeetRunner-TL3TOGUS.js} +10 -10
  120. package/dist/{pipeline-OO2MYYIV.js → pipeline-YPERVOQM.js} +6 -6
  121. package/dist/{play-VL2WQCT3.js → play-MYI7BYKS.js} +16 -16
  122. package/dist/{preflight-GBPRLIM6.js → preflight-HRCSZ52D.js} +6 -6
  123. package/dist/{present-YWSFX5CH.js → present-WYXQDV4Q.js} +12 -12
  124. package/dist/{preview-SMG6GXLY.js → preview-535HTWQO.js} +16 -16
  125. package/dist/{producer-67RIQCWZ.js → producer-C76CRJ5O.js} +1 -1
  126. package/dist/{projectConfig-NQQDEDAK.js → projectConfig-5QCNTGQT.js} +6 -6
  127. package/dist/{publication-7DW4IJPC.js → publication-2QT7VVE2.js} +2 -2
  128. package/dist/{publish-FJKJ74IF.js → publish-53EBL7OO.js} +7 -7
  129. package/dist/{remove-background-HO2NBZCJ.js → remove-background-OBYHMPD4.js} +7 -7
  130. package/dist/{render-MB7PW2YQ.js → render-3MELF6Y3.js} +25 -25
  131. package/dist/{render-DH4CGGLO.js → render-5BXTEEG7.js} +8 -8
  132. package/dist/{render-5TTZDI5N.js → render-75CRB3BW.js} +3 -3
  133. package/dist/{render-batch-4RPH66OX.js → render-batch-CEVWUYBP.js} +3 -3
  134. package/dist/{resolver-UW6NYBJA.js → resolver-4ICE2AT6.js} +4 -4
  135. package/dist/{sherpa-LVXRZGE3.js → sherpa-L4UACXT3.js} +9 -9
  136. package/dist/{skills-NDWQPEUD.js → skills-DXTQPCAO.js} +5 -5
  137. package/dist/{skillsUpdateCheck-HZVZ3IUU.js → skillsUpdateCheck-ULXRGLDU.js} +3 -3
  138. package/dist/{snapshot-MCHWMAPH.js → snapshot-PWFHQU5E.js} +77 -60
  139. package/dist/{src-XRFOS5LP.js → src-RDSWHMJS.js} +6 -4
  140. package/dist/{src-E34ZBMAS.js → src-S7NVL5VF.js} +6 -6
  141. package/dist/{staticProjectServer-COEAKTGH.js → staticProjectServer-GYPUQGI7.js} +12 -12
  142. package/dist/studio/assets/{hyperframes-player-C0SyMC21.js → hyperframes-player-DcD3NXpX.js} +1 -1
  143. package/dist/studio/assets/{index-DHUassFP.js → index-BIDKYk0h.js} +1 -1
  144. package/dist/studio/assets/{index-ueMRyAJ2.js → index-CFrZAwKo.js} +71 -71
  145. package/dist/studio/index.html +1 -1
  146. package/dist/{studio-api-455XWQPD.js → studio-api-IXGX5ZFI.js} +6 -6
  147. package/dist/{studioServer-XK5N6PIB.js → studioServer-LA5Z7RSS.js} +41 -41
  148. package/dist/{telemetry-DD5ZIBOK.js → telemetry-STEMAMAX.js} +3 -3
  149. package/dist/{timeline-MJJEX5CU.js → timeline-KLD24EN6.js} +14 -14
  150. package/dist/{tokens-AKUZMYRE.js → tokens-ICLORAA4.js} +2 -2
  151. package/dist/{transcribe-ZQI5P2LH.js → transcribe-A6IKK7VS.js} +14 -14
  152. package/dist/{transcribe-ER7GGF4L.js → transcribe-CTHZLRXF.js} +8 -8
  153. package/dist/{updateCheck-GYFCXFWR.js → updateCheck-FHCAAAXA.js} +2 -2
  154. package/dist/{upgrade-UNWHMZP5.js → upgrade-7EV4F2R7.js} +2 -2
  155. package/dist/{urlDownloader-QF7EBQC2.js → urlDownloader-MIMGVASJ.js} +4 -4
  156. package/dist/{validate-32CQZFNZ.js → validate-LZF46W3V.js} +18 -18
  157. package/dist/{video-2KGC3RIQ.js → video-ZC47NFOL.js} +5 -5
  158. package/package.json +1 -1
@@ -7,29 +7,29 @@ var __dirname = __hf_dirname(__filename);
7
7
  import {
8
8
  RegistryCompatibilityError,
9
9
  gateRegistryItemsCompatibility
10
- } from "./chunk-AEWZDKFS.js";
10
+ } from "./chunk-UIDZRCBG.js";
11
11
  import {
12
12
  DEFAULT_PROJECT_CONFIG,
13
13
  createProjectConfig,
14
14
  loadProjectConfig,
15
15
  projectConfigPath,
16
16
  recordProjectRegistryItems
17
- } from "./chunk-IE6O2VXV.js";
17
+ } from "./chunk-XH262OWN.js";
18
18
  import {
19
19
  resolveItemWithDependencies,
20
20
  resolveItemsByTag
21
- } from "./chunk-32GKQ73S.js";
21
+ } from "./chunk-WUQUR33W.js";
22
22
  import {
23
23
  InvalidVariableValuesError,
24
24
  prepareItem,
25
25
  publishItem
26
- } from "./chunk-YH7VQAKX.js";
26
+ } from "./chunk-OFY6JTZC.js";
27
27
  import {
28
28
  DEFAULT_REGISTRY_URL
29
- } from "./chunk-AFKVI7FJ.js";
29
+ } from "./chunk-TO6JNTML.js";
30
30
  import {
31
31
  trackRegistryItemAdded
32
- } from "./chunk-COK5OUBX.js";
32
+ } from "./chunk-5E5EYPZO.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-AHS5QYKF.js";
44
+ } from "./chunk-LBQFLUIY.js";
45
45
  import {
46
46
  isProjectRootMissing,
47
47
  realpath
@@ -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-2LHNVY2F.js");
1281
+ const { trackCommandFailure } = await import("./events-AIZODZMP.js");
1282
1282
  trackCommandFailure(
1283
1283
  command,
1284
1284
  err,
@@ -11,14 +11,14 @@ import {
11
11
  } from "./chunk-6JR2XUEE.js";
12
12
  import {
13
13
  readCompositionFps
14
- } from "./chunk-A3RUVTGB.js";
14
+ } from "./chunk-S3RYRF3W.js";
15
15
  import {
16
16
  HF_AUDIO_GROUP_ATTR,
17
17
  extractAudioMetadata,
18
18
  extractMediaMetadata,
19
19
  resolveReferencedDuration,
20
20
  resolveReferencedStart
21
- } from "./chunk-VU4JLRNH.js";
21
+ } from "./chunk-YPBIAONI.js";
22
22
  import {
23
23
  byStart,
24
24
  compositionOriginSeconds,
@@ -27,14 +27,14 @@ import {
27
27
  hostInPointSeconds,
28
28
  parseFpsWithDefault,
29
29
  resolveMediaStartSeconds
30
- } from "./chunk-AHS5QYKF.js";
30
+ } from "./chunk-LBQFLUIY.js";
31
31
  import {
32
32
  HF_AUDIO_AUTOMATION_ATTR,
33
33
  HF_AUDIO_FX_ATTR,
34
34
  parseAudioFxChain,
35
35
  parseAutomation,
36
36
  resolveAutomation
37
- } from "./chunk-PLNQW2C6.js";
37
+ } from "./chunk-BAZ5LCR3.js";
38
38
  import {
39
39
  isSubCompositionHost,
40
40
  topLevelElements,
@@ -10,7 +10,7 @@ import {
10
10
  isDevice,
11
11
  isQuality,
12
12
  render
13
- } from "./chunk-IHWI3KZY.js";
13
+ } from "./chunk-65WIUIHL.js";
14
14
 
15
15
  // src/api/removeBackground.ts
16
16
  import { resolve } from "path";
@@ -23,7 +23,7 @@ import {
23
23
  EncoderInterruptedError,
24
24
  encoderFailureError,
25
25
  prepareAnimatedGifInputs
26
- } from "./chunk-FIAQ4J45.js";
26
+ } from "./chunk-4USWWI2Y.js";
27
27
  import {
28
28
  BROWSER_GPU_NOT_SOFTWARE,
29
29
  CaptureFailure,
@@ -37,6 +37,7 @@ import {
37
37
  ManagedChildProcess,
38
38
  NotMediaPayloadError,
39
39
  VIDEO_FRAME_FORMATS,
40
+ aacSegmentCount,
40
41
  analyzeCompositionHdr,
41
42
  analyzeKeyframeIntervals,
42
43
  appendRenderProvenanceArgs,
@@ -152,7 +153,7 @@ import {
152
153
  validateEngineConfigSnapshot,
153
154
  verifyDiskDrawElementSamples,
154
155
  writeCapturedFrame
155
- } from "./chunk-VU4JLRNH.js";
156
+ } from "./chunk-YPBIAONI.js";
156
157
  import {
157
158
  assignBundledRuntimeCompositionIds,
158
159
  buildVariablesByCompScript,
@@ -165,7 +166,7 @@ import {
165
166
  isTemplateEntry,
166
167
  parsesAsScript,
167
168
  prepareFlattenedInnerRoot
168
- } from "./chunk-PU33GPG4.js";
169
+ } from "./chunk-4IEH6EAC.js";
169
170
  import {
170
171
  LOW_MEMORY_TOTAL_MB_THRESHOLD,
171
172
  getCgroupMemoryLimitMb,
@@ -191,7 +192,7 @@ import {
191
192
  resolveAbsoluteMediaStartSeconds,
192
193
  resolveAuthoredTimingWindow,
193
194
  toFps
194
- } from "./chunk-AHS5QYKF.js";
195
+ } from "./chunk-LBQFLUIY.js";
195
196
  import {
196
197
  COMPOSITION_SOURCE_URL,
197
198
  HF_COLOR_GRADING_ATTR,
@@ -219,7 +220,7 @@ import {
219
220
  shouldClampResolvedMediaDuration,
220
221
  sourceTimeAt,
221
222
  styleElementsFor
222
- } from "./chunk-PLNQW2C6.js";
223
+ } from "./chunk-BAZ5LCR3.js";
223
224
  import {
224
225
  MAX_AUDIO_GAIN
225
226
  } from "./chunk-UJKQWGFF.js";
@@ -9974,6 +9975,75 @@ import { extname as extname3 } from "path";
9974
9975
  import { spawn } from "child_process";
9975
9976
  import { mkdtempSync as mkdtempSync3, renameSync as renameSync3, rmSync as rmSync7 } from "fs";
9976
9977
  import { dirname as dirname8, join as join24 } from "path";
9978
+
9979
+ // ../producer/src/services/render/audioTruePeak.ts
9980
+ var toDbfs = (token) => token.toLowerCase() === "-inf" ? Number.NEGATIVE_INFINITY : Number(token);
9981
+ function checkedDbfs(value) {
9982
+ if (Number.isNaN(value) || value === Number.POSITIVE_INFINITY) {
9983
+ throw new Error("[audioTruePeak] FFmpeg did not report AAC true peak");
9984
+ }
9985
+ return value;
9986
+ }
9987
+ async function scanTruePeak(audioPath, trim, timeoutMs, signal) {
9988
+ let firstBlock;
9989
+ let laterBlocks = Number.NEGATIVE_INFINITY;
9990
+ let partialLine = "";
9991
+ const readLines = (chunk) => {
9992
+ const lines = (partialLine + chunk).split(/\r|\n/);
9993
+ partialLine = lines.pop() ?? "";
9994
+ for (const line of lines) {
9995
+ const ftpk = /FTPK:([^d]*)dBFS/.exec(line)?.[1];
9996
+ if (!ftpk) continue;
9997
+ const block = Math.max(...ftpk.trim().split(/\s+/).map(toDbfs));
9998
+ if (firstBlock === void 0) firstBlock = block;
9999
+ else laterBlocks = Math.max(laterBlocks, block);
10000
+ }
10001
+ };
10002
+ const result = await runFfmpeg(
10003
+ ["-i", audioPath, "-map", "0:a:0", "-vn", "-af", `${trim}ebur128=peak=true`, "-f", "null", "-"],
10004
+ { signal, timeout: timeoutMs, onStderr: readLines }
10005
+ );
10006
+ if (!result.success) {
10007
+ throw new Error(`[audioTruePeak] ${describeFfmpegFailure(result, timeoutMs)}`);
10008
+ }
10009
+ const summary = [...result.stderr.matchAll(/^\s*Peak:\s*([+-]?(?:[\d.]+|inf)) dBFS$/gim)];
10010
+ return {
10011
+ peak: checkedDbfs(toDbfs(summary.at(-1)?.[1] ?? "nan")),
10012
+ firstBlock: checkedDbfs(firstBlock ?? Number.NEGATIVE_INFINITY),
10013
+ laterBlocks: checkedDbfs(laterBlocks)
10014
+ };
10015
+ }
10016
+ async function measureTruePeakDbfs(audioPath, options) {
10017
+ const { timeoutMs, signal, segments } = options;
10018
+ const wholeFile = async () => (await scanTruePeak(audioPath, "", timeoutMs, signal)).peak;
10019
+ const block = 4800;
10020
+ const count = segments?.sampleRate === 48e3 ? aacSegmentCount(segments.durationSeconds) : 1;
10021
+ if (!segments || count === 1) return wholeFile();
10022
+ const cut = (k) => k * Math.floor(segments.durationSeconds * 10 / count) * block;
10023
+ const peers = new AbortController();
10024
+ const segmentSignal = signal ? AbortSignal.any([signal, peers.signal]) : peers.signal;
10025
+ const scans = await Promise.all(
10026
+ Array.from({ length: count }, (_, k) => {
10027
+ const start = k === 0 ? 0 : cut(k) - block;
10028
+ const end = k === count - 1 ? "" : `:end_sample=${cut(k + 1)}`;
10029
+ return scanTruePeak(
10030
+ audioPath,
10031
+ `atrim=start_sample=${start}${end},`,
10032
+ timeoutMs,
10033
+ segmentSignal
10034
+ );
10035
+ })
10036
+ ).catch((error) => {
10037
+ peers.abort();
10038
+ throw error;
10039
+ });
10040
+ const last = scans[count - 1];
10041
+ const counted = Math.max(scans[0].peak, ...scans.slice(1).map((scan) => scan.laterBlocks));
10042
+ if (last.peak > last.firstBlock || last.peak <= counted) return Math.max(counted, last.peak);
10043
+ return wholeFile();
10044
+ }
10045
+
10046
+ // ../producer/src/services/render/audioPadTrim.ts
9977
10047
  var AUDIO_DURATION_TOLERANCE_SECONDS = 1e-3;
9978
10048
  var AAC_DELIVERY_TRUE_PEAK_DBFS = -1;
9979
10049
  var AAC_TRUE_PEAK_CORRECTION_HEADROOM_DB = 0.5;
@@ -10073,7 +10143,7 @@ async function padOrTrimAudioToVideoFrameCount(input) {
10073
10143
  const probeAudio = input.probeAudioInfo ?? defaultProbeAudioInfo;
10074
10144
  const timeoutMs = input.timeoutMs ?? DEFAULT_CONFIG.ffmpegProcessTimeout;
10075
10145
  const runner = input.runFfmpeg ?? ((args) => defaultRunFfmpeg(args, timeoutMs, input.signal));
10076
- const probeTruePeak = input.probeAudioTruePeakDbfs ?? (input.runFfmpeg ? void 0 : (audioPath, signal) => defaultProbeAudioTruePeakDbfs(audioPath, timeoutMs, signal));
10146
+ const probeTruePeak = input.probeAudioTruePeakDbfs ?? (input.runFfmpeg ? void 0 : (audioPath, signal) => measureTruePeakDbfs(audioPath, { timeoutMs, signal }));
10077
10147
  const [videoResult, audioResult] = await Promise.allSettled([
10078
10148
  probeVideo(input.videoPath),
10079
10149
  probeAudio(input.audioPath, input.signal)
@@ -10182,7 +10252,11 @@ async function constrainAacTruePeak(input) {
10182
10252
  audioPath: input.audioPath,
10183
10253
  targetDurationSeconds: input.targetDurationSeconds,
10184
10254
  signal: input.signal,
10185
- probeTruePeak: (audioPath, signal) => defaultProbeAudioTruePeakDbfs(audioPath, timeoutMs, signal),
10255
+ probeTruePeak: async (audioPath, signal) => {
10256
+ const { sampleRate } = await extractAudioMetadata(audioPath, { signal });
10257
+ const segments = { durationSeconds: input.targetDurationSeconds, sampleRate };
10258
+ return measureTruePeakDbfs(audioPath, { timeoutMs, signal, segments });
10259
+ },
10186
10260
  runner: (args) => defaultRunFfmpeg(args, timeoutMs, input.signal)
10187
10261
  });
10188
10262
  }
@@ -10319,22 +10393,6 @@ async function defaultProbeAudioInfo(audioPath, signal) {
10319
10393
  audioCodec: metadata.audioCodec
10320
10394
  };
10321
10395
  }
10322
- async function defaultProbeAudioTruePeakDbfs(audioPath, timeoutMs, signal) {
10323
- const result = await runFfmpeg(
10324
- ["-i", audioPath, "-map", "0:a:0", "-vn", "-af", "ebur128=peak=true", "-f", "null", "-"],
10325
- { signal, timeout: timeoutMs }
10326
- );
10327
- if (!result.success) {
10328
- throw new Error(`[audioPadTrim] ${describeFfmpegFailure(result, timeoutMs)}`);
10329
- }
10330
- const matches = [...result.stderr.matchAll(/^\s*Peak:\s*([+-]?(?:[\d.]+|inf)) dBFS$/gim)];
10331
- const token = matches.at(-1)?.[1]?.toLowerCase();
10332
- const value = token === "-inf" ? Number.NEGATIVE_INFINITY : Number(token);
10333
- if (Number.isNaN(value) || value === Number.POSITIVE_INFINITY) {
10334
- throw new Error("[audioPadTrim] FFmpeg did not report AAC true peak");
10335
- }
10336
- return value;
10337
- }
10338
10396
  async function defaultRunFfmpeg(args, timeoutMs, signal) {
10339
10397
  const result = await runFfmpeg(args, { signal, timeout: timeoutMs });
10340
10398
  if (result.success) return { success: true };
@@ -13476,6 +13534,7 @@ var FFMPEG_VERSION_MISMATCH = "FFMPEG_VERSION_MISMATCH";
13476
13534
  var PLAN_HASH_MISMATCH = "PLAN_HASH_MISMATCH";
13477
13535
  var MISSING_PLAN_ARTIFACT = "MISSING_PLAN_ARTIFACT";
13478
13536
  var CHUNK_INDEX_OUT_OF_RANGE = "CHUNK_INDEX_OUT_OF_RANGE";
13537
+ var CHUNK_FRAME_RANGE_INVALID = "CHUNK_FRAME_RANGE_INVALID";
13479
13538
  var MISSING_RUNTIME_ENV_SNAPSHOT = "MISSING_RUNTIME_ENV_SNAPSHOT";
13480
13539
  var RenderChunkValidationError = class extends Error {
13481
13540
  code;
@@ -13727,7 +13786,8 @@ var DISTRIBUTED_RENDER_CAPABILITIES = Object.freeze({
13727
13786
  accepts: Object.freeze([PLAN_PROTOCOL_V1, PLAN_PROTOCOL_V2]),
13728
13787
  acceptsLegacyV1WithoutDescriptor: true
13729
13788
  })
13730
- })
13789
+ }),
13790
+ chunkFrameRange: true
13731
13791
  });
13732
13792
  function getDistributedRenderCapabilities() {
13733
13793
  return DISTRIBUTED_RENDER_CAPABILITIES;
@@ -14441,6 +14501,18 @@ function audioCutForChunk(grid, chunks, index, fps) {
14441
14501
  const durationSeconds = end === grid.packetCount ? null : cutSeconds(end) - (seekSeconds ?? 0);
14442
14502
  return { seekSeconds, durationSeconds, firstPacket: first, packetCount: end - first };
14443
14503
  }
14504
+ function chunksWithSubRange(chunks, index, range) {
14505
+ const slice = chunks[index];
14506
+ const parts = [
14507
+ { startFrame: slice.startFrame, endFrame: range.startFrame },
14508
+ range,
14509
+ { startFrame: range.endFrame, endFrame: slice.endFrame }
14510
+ ].filter((part) => part.endFrame > part.startFrame);
14511
+ const split = [...chunks.slice(0, index), ...parts, ...chunks.slice(index + 1)].map(
14512
+ (chunk, i) => ({ index: i, startFrame: chunk.startFrame, endFrame: chunk.endFrame })
14513
+ );
14514
+ return { chunks: split, index: range.startFrame > slice.startFrame ? index + 1 : index };
14515
+ }
14444
14516
  async function probeAacPacketGrid(audioPath) {
14445
14517
  const probe = await runFfprobeJson([
14446
14518
  "-v",
@@ -15195,7 +15267,7 @@ async function buildLocalExecutionPlan(projectDir, config, executionPlanDir, opt
15195
15267
  if (probeResult.fileServer) closeFileServerSafely(probeResult.fileServer, "plan", log);
15196
15268
  if (probeResult.probeSession) {
15197
15269
  try {
15198
- const { closeCaptureSession: closeCaptureSession2 } = await import("./src-XRFOS5LP.js");
15270
+ const { closeCaptureSession: closeCaptureSession2 } = await import("./src-RDSWHMJS.js");
15199
15271
  await closeCaptureSession2(probeResult.probeSession);
15200
15272
  } catch (err) {
15201
15273
  log.warn("[plan] probe session close failed", {
@@ -16789,7 +16861,7 @@ function startServer(options = {}) {
16789
16861
  });
16790
16862
  async function shutdown(signal) {
16791
16863
  log.info(`Received ${signal}, shutting down`);
16792
- const { drainBrowserPool } = await import("./src-XRFOS5LP.js");
16864
+ const { drainBrowserPool } = await import("./src-RDSWHMJS.js");
16793
16865
  await drainBrowserPool().catch(() => {
16794
16866
  });
16795
16867
  const handle = await Promise.race([
@@ -17729,11 +17801,12 @@ function cfrRateControlArgs(locked) {
17729
17801
  }
17730
17802
  return ["-preset", preset.preset, "-crf", String(locked.crf ?? preset.quality)];
17731
17803
  }
17732
- async function assemble(planDir, chunkPaths, audioPath, outputPath, options) {
17804
+ async function assemble(planDir, chunkOutputs, audioPath, outputPath, options) {
17733
17805
  const start = Date.now();
17734
17806
  const log = options?.logger ?? defaultLogger;
17735
17807
  const cfr = options?.cfr === true;
17736
- const plan2 = readAssemblePlan(planDir, chunkPaths);
17808
+ const plan2 = readAssemblePlan(planDir, chunkOutputs);
17809
+ const chunkPaths = chunkOutputs.flat();
17737
17810
  if (plan2.dimensions.format === "png-sequence") {
17738
17811
  return mergePngFrameDirs(chunkPaths, outputPath, plan2.totalFrames, audioPath, start);
17739
17812
  }
@@ -17816,7 +17889,12 @@ function readAssemblePlan(planDir, chunkPaths) {
17816
17889
  `[assemble] chunkPaths length (${chunkPaths.length}) does not match chunks.json length (${chunks.length}). Adapters must pass one path per chunk, ordered by index.`
17817
17890
  );
17818
17891
  }
17819
- for (const path of chunkPaths) {
17892
+ for (const [index, entry] of chunkPaths.entries()) {
17893
+ if (typeof entry !== "string" && entry.length === 0) {
17894
+ throw new Error(`[assemble] chunk ${index} has an empty list of parts`);
17895
+ }
17896
+ }
17897
+ for (const path of chunkPaths.flat()) {
17820
17898
  if (!existsSync26(path)) {
17821
17899
  throw new Error(`[assemble] chunk path does not exist: ${path}`);
17822
17900
  }
@@ -18019,6 +18097,17 @@ function validatePlanVideosForChunk(value) {
18019
18097
  );
18020
18098
  }
18021
18099
  }
18100
+ function resolveChunkFrameRange(slice, chunkIndex, frameRange) {
18101
+ if (frameRange === void 0) return { startFrame: slice.startFrame, endFrame: slice.endFrame };
18102
+ const { startFrame, endFrame } = frameRange;
18103
+ if (!Number.isSafeInteger(startFrame) || !Number.isSafeInteger(endFrame) || startFrame < slice.startFrame || endFrame > slice.endFrame || endFrame <= startFrame) {
18104
+ throw new RenderChunkValidationError(
18105
+ CHUNK_FRAME_RANGE_INVALID,
18106
+ `[renderChunk] frameRange ${JSON.stringify(frameRange)} must be a non-empty integer range inside chunk ${chunkIndex}'s slice [${slice.startFrame}, ${slice.endFrame})`
18107
+ );
18108
+ }
18109
+ return { startFrame, endFrame };
18110
+ }
18022
18111
  var distributedCaptureSessionDependencies = {
18023
18112
  createCaptureSession,
18024
18113
  assertSwiftShader,
@@ -18089,7 +18178,7 @@ function resolveLockedVp9CpuUsed(lockedEncoder) {
18089
18178
  if (lockedEncoder.encoder !== "libvpx-vp9-software") return void 0;
18090
18179
  return lockedEncoder.vp9CpuUsed ?? LEGACY_DISTRIBUTED_VP9_CPU_USED;
18091
18180
  }
18092
- async function renderChunk(planDir, chunkIndex, outputChunkPath) {
18181
+ async function renderChunk(planDir, chunkIndex, outputChunkPath, options) {
18093
18182
  const start = Date.now();
18094
18183
  const log = defaultLogger;
18095
18184
  const planJsonPath = join41(planDir, "plan.json");
@@ -18143,13 +18232,15 @@ async function renderChunk(planDir, chunkIndex, outputChunkPath) {
18143
18232
  if (slice === void 0) {
18144
18233
  throw new RenderChunkValidationError(CHUNK_INDEX_OUT_OF_RANGE, "[renderChunk] missing slice");
18145
18234
  }
18146
- const framesInChunk = slice.endFrame - slice.startFrame;
18147
- if (framesInChunk <= 0) {
18235
+ const sliceFrames = slice.endFrame - slice.startFrame;
18236
+ if (sliceFrames <= 0) {
18148
18237
  throw new RenderChunkValidationError(
18149
18238
  CHUNK_INDEX_OUT_OF_RANGE,
18150
- `[renderChunk] chunk ${chunkIndex} has non-positive frame count: ${framesInChunk}`
18239
+ `[renderChunk] chunk ${chunkIndex} has non-positive frame count: ${sliceFrames}`
18151
18240
  );
18152
18241
  }
18242
+ const range = resolveChunkFrameRange(slice, chunkIndex, options?.frameRange);
18243
+ const framesInChunk = range.endFrame - range.startFrame;
18153
18244
  const compiledDir = join41(planDir, "compiled");
18154
18245
  if (!existsSync27(compiledDir)) {
18155
18246
  throw new RenderChunkValidationError(
@@ -18214,10 +18305,7 @@ async function renderChunk(planDir, chunkIndex, outputChunkPath) {
18214
18305
  const deferredVideoFrames = planVideos ? await extractDeferredVideoFramesForChunk({
18215
18306
  planDir,
18216
18307
  planVideos,
18217
- frames: Array.from(
18218
- { length: slice.endFrame - slice.startFrame },
18219
- (_, i) => slice.startFrame + i
18220
- ),
18308
+ frames: Array.from({ length: framesInChunk }, (_, i) => range.startFrame + i),
18221
18309
  fps: { num: plan2.dimensions.fpsNum, den: plan2.dimensions.fpsDen },
18222
18310
  outputRoot: videoFramesDir,
18223
18311
  cfg,
@@ -18373,7 +18461,7 @@ async function renderChunk(planDir, chunkIndex, outputChunkPath) {
18373
18461
  abortSignal: void 0,
18374
18462
  assertNotAborted: () => {
18375
18463
  },
18376
- frameRange: { startFrame: slice.startFrame, endFrame: slice.endFrame }
18464
+ frameRange: range
18377
18465
  });
18378
18466
  const observedModes = new Set(capturePerfs.map((perf) => perf.captureMode));
18379
18467
  if (observedModes.size !== 1 || ![...observedModes].every(isCaptureMode)) {
@@ -18467,12 +18555,13 @@ async function renderChunk(planDir, chunkIndex, outputChunkPath) {
18467
18555
  });
18468
18556
  if (encoder.chunksCarryAudio) {
18469
18557
  const audioScratchPath = `${outputChunkPath}.audio.m4a`;
18558
+ const audioChunks = options?.frameRange ? chunksWithSubRange(chunks, chunkIndex, range) : { chunks, index: chunkIndex };
18470
18559
  await muxChunkWithAudio({
18471
18560
  videoPath: videoOnlyPath,
18472
18561
  audioPath: chunkAudioSource(planDir, chunkIndex, audioScratchPath),
18473
18562
  outputPath: outputChunkPath,
18474
- chunks,
18475
- chunkIndex,
18563
+ chunks: audioChunks.chunks,
18564
+ chunkIndex: audioChunks.index,
18476
18565
  fps: { num: plan2.dimensions.fpsNum, den: plan2.dimensions.fpsDen },
18477
18566
  timeoutMs: cfg.ffmpegProcessTimeout
18478
18567
  });
@@ -18501,8 +18590,8 @@ async function renderChunk(planDir, chunkIndex, outputChunkPath) {
18501
18590
  const perfPayload = {
18502
18591
  planHash: plan2.planHash,
18503
18592
  chunkIndex,
18504
- startFrame: slice.startFrame,
18505
- endFrame: slice.endFrame,
18593
+ startFrame: range.startFrame,
18594
+ endFrame: range.endFrame,
18506
18595
  framesEncoded,
18507
18596
  durationMs,
18508
18597
  planHashMs,
@@ -18531,6 +18620,7 @@ async function renderChunk(planDir, chunkIndex, outputChunkPath) {
18531
18620
  outputPath: outputChunkPath,
18532
18621
  outputKind,
18533
18622
  framesEncoded,
18623
+ frameRange: range,
18534
18624
  sha256,
18535
18625
  durationMs,
18536
18626
  planHashMs,
@@ -18547,12 +18637,12 @@ async function renderChunk(planDir, chunkIndex, outputChunkPath) {
18547
18637
  }
18548
18638
 
18549
18639
  // ../producer/src/services/distributed/planV2Execution.ts
18550
- async function renderChunkV2(planV2Dir, chunkIndex, outputChunkPath) {
18640
+ async function renderChunkV2(planV2Dir, chunkIndex, outputChunkPath, options) {
18551
18641
  const workRoot = mkdtempSync9(join42(tmpdir5(), "hf-plan-v2-chunk-"));
18552
18642
  const materializedPlanDir = join42(workRoot, "plan");
18553
18643
  try {
18554
18644
  materializePlanV2Target(planV2Dir, { role: "chunk", chunkIndex }, materializedPlanDir);
18555
- return await renderChunk(materializedPlanDir, chunkIndex, outputChunkPath);
18645
+ return await renderChunk(materializedPlanDir, chunkIndex, outputChunkPath, options);
18556
18646
  } finally {
18557
18647
  rmSync16(workRoot, { recursive: true, force: true });
18558
18648
  }
@@ -13,7 +13,7 @@ import {
13
13
  } from "./chunk-BRHI7EIA.js";
14
14
  import {
15
15
  resolveCaptureBrowserGpuMode
16
- } from "./chunk-A2BB2XQU.js";
16
+ } from "./chunk-4OT3FWVV.js";
17
17
  import {
18
18
  isNavigationTimeoutError,
19
19
  withRemainingBudget
@@ -12,12 +12,12 @@ import {
12
12
  ensureHfIds,
13
13
  mintHfId,
14
14
  walkCompositionDescendants
15
- } from "./chunk-PU33GPG4.js";
15
+ } from "./chunk-4IEH6EAC.js";
16
16
  import {
17
17
  isAllowedHtmlAttribute,
18
18
  isSafeAttributeValue,
19
19
  sanitizeRichTextChildren
20
- } from "./chunk-AHS5QYKF.js";
20
+ } from "./chunk-LBQFLUIY.js";
21
21
  import {
22
22
  decodedUrlPath,
23
23
  removeElementWithGsapCascade
@@ -7,7 +7,7 @@ var __dirname = __hf_dirname(__filename);
7
7
  import {
8
8
  getMimeType,
9
9
  injectMediaCodecMapIntoHtml
10
- } from "./chunk-3EJYUZHW.js";
10
+ } from "./chunk-JBCU6NR5.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-UOHQV6AV.js";
21
+ } from "./chunk-KIO3R4QN.js";
22
22
  import {
23
23
  resolveAutoProxy
24
- } from "./chunk-IE6O2VXV.js";
24
+ } from "./chunk-XH262OWN.js";
25
25
  import {
26
26
  decodeWellFormedEscapes
27
27
  } from "./chunk-BSQ7XANM.js";
@@ -19,7 +19,7 @@ import {
19
19
  splitElementInHtml,
20
20
  unwrapElementsFromHtml,
21
21
  wrapElementsInHtml
22
- } from "./chunk-BGKZ37BC.js";
22
+ } from "./chunk-IWTRHPTP.js";
23
23
  import {
24
24
  DEFAULT_TARGET_LUFS,
25
25
  absoluteLoudnessPlan,
@@ -54,7 +54,7 @@ import {
54
54
  scanProjectMediaCodecMap,
55
55
  shouldPrewarmProxy,
56
56
  waitForProxy
57
- } from "./chunk-UOHQV6AV.js";
57
+ } from "./chunk-KIO3R4QN.js";
58
58
  import {
59
59
  HistoryBusyError,
60
60
  MAX_WINDOW_IDLE_MS,
@@ -105,7 +105,7 @@ import {
105
105
  addScenePartsManifest,
106
106
  ensureHfIds,
107
107
  stampHfIdsInPlace
108
- } from "./chunk-PU33GPG4.js";
108
+ } from "./chunk-4IEH6EAC.js";
109
109
  import {
110
110
  PREVIEW_PROXY_BOX_PARAM,
111
111
  formatPreviewProxyBox,
@@ -114,7 +114,7 @@ import {
114
114
  motionPathPluginUrl,
115
115
  parseFps,
116
116
  parsePreviewProxyBox
117
- } from "./chunk-AHS5QYKF.js";
117
+ } from "./chunk-LBQFLUIY.js";
118
118
  import {
119
119
  AFTER_FONTS_SCRIPT_TYPE,
120
120
  RUNTIME_BOOTSTRAP_ATTR,
@@ -128,7 +128,7 @@ import {
128
128
  resolveRateSpec,
129
129
  sourceTimeAt,
130
130
  stripEmbeddedRuntimeScripts
131
- } from "./chunk-PLNQW2C6.js";
131
+ } from "./chunk-BAZ5LCR3.js";
132
132
  import {
133
133
  HTML_ATTRIBUTE_ENTITIES,
134
134
  MagicString,
@@ -5499,7 +5499,7 @@ async function prepareGsapMutationScript(c, res, firstMutation) {
5499
5499
  let block = extractGsapScriptBlock(html);
5500
5500
  if (!block && (firstMutation.type === "add" || firstMutation.type === "add-with-keyframes")) {
5501
5501
  const compId = html.match(/data-composition-id="([^"]+)"/)?.[1] ?? "main";
5502
- const { GSAP_CDN } = await import("./dist-MHJYD5IZ.js");
5502
+ const { GSAP_CDN } = await import("./dist-VO7OXOFK.js");
5503
5503
  const bootstrap = [
5504
5504
  `<script src="${GSAP_CDN}"></script>`,
5505
5505
  "<script>",
@@ -6,7 +6,7 @@ var __filename = __hf_fileURLToPath(import.meta.url);
6
6
  var __dirname = __hf_dirname(__filename);
7
7
  import {
8
8
  resolveProject
9
- } from "./chunk-XX4ZYQR6.js";
9
+ } from "./chunk-OJDXABUF.js";
10
10
  import {
11
11
  DEFAULT_HISTORY_ROOT,
12
12
  HistoryBusyError,
@@ -29,7 +29,7 @@ import {
29
29
  } from "./chunk-XUXGIA7H.js";
30
30
  import {
31
31
  VERSION
32
- } from "./chunk-DLF5KIBL.js";
32
+ } from "./chunk-XEWHUPFS.js";
33
33
  import {
34
34
  CANARIES,
35
35
  canaryEnvVar,
@@ -9,7 +9,7 @@ import {
9
9
  formatPreviewProxyBox,
10
10
  hdrToSdrToneMapFilter,
11
11
  parseFirstFrameColour
12
- } from "./chunk-AHS5QYKF.js";
12
+ } from "./chunk-LBQFLUIY.js";
13
13
  import {
14
14
  decodeAuthoredAttribute,
15
15
  scanHtmlOpeningTags
@@ -9,7 +9,7 @@ import {
9
9
  parseStrictFiniteTimingNumber,
10
10
  resolveNaturalMediaTimelineDuration,
11
11
  resolveTimedImageDurationSeconds
12
- } from "./chunk-PLNQW2C6.js";
12
+ } from "./chunk-BAZ5LCR3.js";
13
13
  import {
14
14
  CANVAS_DIMENSIONS,
15
15
  isCompositionElement,
@@ -7,10 +7,10 @@ var __dirname = __hf_dirname(__filename);
7
7
  import {
8
8
  trackLintReport,
9
9
  trackLintRuleStreak
10
- } from "./chunk-COK5OUBX.js";
10
+ } from "./chunk-5E5EYPZO.js";
11
11
  import {
12
12
  shouldTrack
13
- } from "./chunk-M5CJQ6EH.js";
13
+ } from "./chunk-K26FR4SM.js";
14
14
  import {
15
15
  LINT_RULE_COUNT,
16
16
  LINT_RULE_GROUP_COUNTS