hyperframes 0.8.158 → 0.8.159

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 (148) hide show
  1. package/README.md +14 -0
  2. package/dist/{add-VBBOJ3RB.js → add-7UMRT6IJ.js} +11 -11
  3. package/dist/{animatedGifPrep-MTJRHJ5G.js → animatedGifPrep-COFZMEVD.js} +5 -5
  4. package/dist/api.js +11 -11
  5. package/dist/{asset-3MLXYJCT.js → asset-N37XIJTB.js} +2 -2
  6. package/dist/{assetCataloger-DI7FC5KZ.js → assetCataloger-ZOQ67MGR.js} +2 -2
  7. package/dist/{auth-RJCTHSMH.js → auth-GKFS2PL6.js} +1 -1
  8. package/dist/{autoUpdate-VD6R34HF.js → autoUpdate-V4PLREDQ.js} +2 -2
  9. package/dist/{backgroundChecks-CWWIZDTW.js → backgroundChecks-TVOKARY2.js} +3 -3
  10. package/dist/backgroundChecksWorker.js +3 -3
  11. package/dist/{batchRender-FTZ67377.js → batchRender-IARQXQHN.js} +3 -3
  12. package/dist/{beats-6CN4BEXJ.js → beats-FY4UDXBL.js} +10 -10
  13. package/dist/{benchmark-4QSNJZXI.js → benchmark-ZJYFRFYF.js} +8 -8
  14. package/dist/{browser-H7PRFBJV.js → browser-WRZOH4PD.js} +3 -3
  15. package/dist/{bundleWithLocalizedFonts-IVO43QBQ.js → bundleWithLocalizedFonts-SFHKZZAX.js} +2 -2
  16. package/dist/{capture-IEEQTPAS.js → capture-KFYPMVTT.js} +8 -8
  17. package/dist/{capture-GZSY7LZJ.js → capture-LLLIHYEF.js} +2 -2
  18. package/dist/{catalog-PD25CVG3.js → catalog-QO762U7V.js} +11 -11
  19. package/dist/{catch-up-2TGBK342.js → catch-up-MELHNTGB.js} +4 -4
  20. package/dist/{check-HFNJEV3O.js → check-RX3LTKYB.js} +37 -37
  21. package/dist/{checkBrowser-767LAZKF.js → checkBrowser-EUUMEILI.js} +34 -34
  22. package/dist/{chunk-LAPUMJOC.js → chunk-24N3BB5M.js} +3 -3
  23. package/dist/{chunk-IRRRH66M.js → chunk-2CEH75X3.js} +115 -13
  24. package/dist/{chunk-LQXHRO6F.js → chunk-3W3MOLRL.js} +2 -2
  25. package/dist/{chunk-7FGHFHWD.js → chunk-4D5RBIX6.js} +30 -10
  26. package/dist/{chunk-4YDQQQY6.js → chunk-4DEBDQD4.js} +2 -2
  27. package/dist/{chunk-EDEFAJI5.js → chunk-4IKI2RYR.js} +11 -11
  28. package/dist/{chunk-YVD5M26L.js → chunk-5GPX4X4L.js} +2 -2
  29. package/dist/{chunk-L6AJC7UQ.js → chunk-5HNZQSO4.js} +1 -1
  30. package/dist/{chunk-OTG5H2VM.js → chunk-5O6I5ZV7.js} +2 -2
  31. package/dist/{chunk-DISITOR6.js → chunk-5RSV6DWB.js} +1 -1
  32. package/dist/{chunk-J4SSEVRU.js → chunk-5YCFHCD4.js} +2 -2
  33. package/dist/{chunk-EY6ISRP3.js → chunk-6TDZJ43G.js} +1 -1
  34. package/dist/{chunk-7ZWOLEGS.js → chunk-76NO4ZRM.js} +1 -1
  35. package/dist/{chunk-3FRK53UC.js → chunk-7RTTPSXG.js} +1 -1
  36. package/dist/{chunk-3MQBIZHG.js → chunk-7XEVZDKU.js} +7 -7
  37. package/dist/{chunk-56QTFOWH.js → chunk-A5RDOXZE.js} +1 -1
  38. package/dist/{chunk-GPUVPZRK.js → chunk-AEQWF7PE.js} +1 -1
  39. package/dist/{chunk-Z347DFOL.js → chunk-AFYZWHR7.js} +7 -7
  40. package/dist/{chunk-EGKIQS5J.js → chunk-AQXJC64X.js} +1 -1
  41. package/dist/{chunk-Y6E2PW7Z.js → chunk-BEW7RCCW.js} +1 -1
  42. package/dist/{chunk-QH2PL6J4.js → chunk-DLQQA25O.js} +1 -1
  43. package/dist/{chunk-23VDPRQ3.js → chunk-DVAEX52Q.js} +1 -1
  44. package/dist/{chunk-J7WFHOCW.js → chunk-EGJVFPUX.js} +1 -1
  45. package/dist/{chunk-T76NSAXO.js → chunk-ESOAYGIT.js} +6 -4
  46. package/dist/{chunk-W2SNLHKF.js → chunk-EWAAH7AU.js} +1 -1
  47. package/dist/{chunk-QRPYTJBW.js → chunk-FEKRMXT6.js} +1 -1
  48. package/dist/{chunk-J6SJCYAQ.js → chunk-GGDCBVXK.js} +4 -4
  49. package/dist/{chunk-YB26LWR2.js → chunk-H6BKVVU4.js} +2 -2
  50. package/dist/{chunk-EEEUI3ON.js → chunk-HEEN6X6O.js} +15 -8
  51. package/dist/{chunk-H6BWNY56.js → chunk-HO3SITVT.js} +1 -1
  52. package/dist/{chunk-3UMNI4XZ.js → chunk-IJ7JPX4W.js} +2 -2
  53. package/dist/{chunk-4R6OZQGX.js → chunk-IKDBT5WT.js} +79 -4
  54. package/dist/{chunk-FJT35XBA.js → chunk-INNBWSZK.js} +1 -1
  55. package/dist/{chunk-SLUFA6UM.js → chunk-IWOEAWIP.js} +1 -1
  56. package/dist/{chunk-NNQP5TNO.js → chunk-JZLFHF2M.js} +2 -2
  57. package/dist/{chunk-PKHDQELW.js → chunk-K5BMHQOU.js} +9 -9
  58. package/dist/{chunk-LAAGHMRC.js → chunk-MMYY4KV3.js} +6 -2
  59. package/dist/{chunk-RU6AIVON.js → chunk-MTUC2Z32.js} +2 -2
  60. package/dist/{chunk-2XUQPJ3W.js → chunk-NCVGBBWC.js} +1 -1
  61. package/dist/{chunk-NFX4K6OW.js → chunk-NIGOOCVS.js} +1 -1
  62. package/dist/{chunk-DCQCGE2W.js → chunk-ODE7HHNN.js} +19 -19
  63. package/dist/chunk-TWBTXEDZ.js +3795 -0
  64. package/dist/{chunk-T243WV6D.js → chunk-UK4KRTIX.js} +1 -1
  65. package/dist/{chunk-SGIZMTWO.js → chunk-V5J4XEBG.js} +1 -1
  66. package/dist/{chunk-ZZ3ZWTOI.js → chunk-WWMFR4SH.js} +1 -1
  67. package/dist/{chunk-SHEVPNUR.js → chunk-YITZFHRJ.js} +1 -1
  68. package/dist/{clean-FQUVFH6H.js → clean-RW7Z4XM6.js} +18 -18
  69. package/dist/cli.js +52 -52
  70. package/dist/{cloud-BHAYVT6F.js → cloud-EEOV7JKB.js} +4 -4
  71. package/dist/{cloudrun-STLNWUBW.js → cloudrun-EZAXYVXG.js} +3 -3
  72. package/dist/{compare-2FRBIK5Z.js → compare-5UARQFXX.js} +28 -28
  73. package/dist/{compiler-VFJVUZWR.js → compiler-THI7BXZU.js} +2 -2
  74. package/dist/{component-DRKXJVXB.js → component-AYOFPL33.js} +3 -3
  75. package/dist/{compositions-D3SN64J3.js → compositions-XJNJBOMG.js} +9 -9
  76. package/dist/{delete-NA5WC2IR.js → delete-653AOR25.js} +2 -2
  77. package/dist/{dist-SVTSOG4Q.js → dist-DLR4X3KN.js} +2 -2
  78. package/dist/{doctor-VXCMPOY3.js → doctor-WA6VRRE7.js} +7 -7
  79. package/dist/{events-QAHWXFFG.js → events-U5COLUWT.js} +2 -2
  80. package/dist/{events-ZJEPMUWT.js → events-XXBCP2I4.js} +3 -3
  81. package/dist/{feedback-UGOQ57TU.js → feedback-DX6Q3LN7.js} +8 -8
  82. package/dist/{figma-YO2MJZDP.js → figma-LCQVLBXF.js} +3 -3
  83. package/dist/fontLocalizeCli.js +8 -8
  84. package/dist/{get-WMJAYRNF.js → get-UYNPFMHX.js} +2 -2
  85. package/dist/{gpuPolicy-VXNJ4UBN.js → gpuPolicy-YIW3HL3B.js} +5 -5
  86. package/dist/{grade-compare-QZ7BG2AP.js → grade-compare-YQEYATJV.js} +28 -28
  87. package/dist/{help-AR4MX2AH.js → help-FDURC7WR.js} +1 -1
  88. package/dist/{history-NF764OFQ.js → history-EU5UZLHT.js} +10 -10
  89. package/dist/hyperframe-runtime.js +55 -55
  90. package/dist/hyperframe.manifest.json +1 -1
  91. package/dist/hyperframe.runtime.iife.js +55 -55
  92. package/dist/hyperframes-player.global.js +1 -1
  93. package/dist/{info-476ERK4G.js → info-7T6CK6CL.js} +7 -7
  94. package/dist/{init-M6YUOBBZ.js → init-KQYSKFVU.js} +21 -21
  95. package/dist/{inspect-QYPUG3UZ.js → inspect-HQBV7VHS.js} +27 -27
  96. package/dist/{installer-HF5BXXXM.js → installer-OKKPQNKS.js} +4 -4
  97. package/dist/{keyframes-MTZRE34W.js → keyframes-SK74JHOA.js} +6 -6
  98. package/dist/{lambda-ZCX7KGTY.js → lambda-S2N4VTRO.js} +4 -4
  99. package/dist/{layout-DLX4HQFL.js → layout-MTE5Y6DE.js} +27 -27
  100. package/dist/{lint-OQ5QWCHZ.js → lint-FJGGJYB7.js} +8 -8
  101. package/dist/{list-AZ6OIOIK.js → list-MBPALK5U.js} +2 -2
  102. package/dist/{login-DJPYT4YZ.js → login-HDN4T5E4.js} +4 -4
  103. package/dist/{media-treatment-4YKC4LGB.js → media-treatment-IP34DXWN.js} +11 -11
  104. package/dist/{models-WHDUQZQZ.js → models-W5TASRHD.js} +8 -8
  105. package/dist/{motionShot-KEHC5AMK.js → motionShot-2WYEMOPJ.js} +11 -11
  106. package/dist/{normalize-audio-ATAQGUPX.js → normalize-audio-F4NQPXII.js} +7 -7
  107. package/dist/{open-4DXBEX2U.js → open-DRXNALDE.js} +7 -7
  108. package/dist/{parakeetRunner-5PNBGCGH.js → parakeetRunner-VISBF2EA.js} +8 -8
  109. package/dist/{pipeline-QA2422UI.js → pipeline-A2XOVZOM.js} +5 -5
  110. package/dist/{play-SKTSHZM5.js → play-W2QELQX7.js} +26 -26
  111. package/dist/{present-KSQ5GASH.js → present-NHYRS4F4.js} +20 -20
  112. package/dist/{preview-TDD3QDR3.js → preview-SMJVUPXE.js} +21 -21
  113. package/dist/{producer-PQMZ7OYH.js → producer-276O3CKW.js} +1 -1
  114. package/dist/{projectConfig-EYYDESVO.js → projectConfig-FXFUHFPZ.js} +6 -6
  115. package/dist/{publication-MJY3XYYV.js → publication-SSQO6ECV.js} +2 -2
  116. package/dist/{publish-5TZIKVLW.js → publish-UHDKDXZI.js} +10 -10
  117. package/dist/{remove-background-HT73ZUIG.js → remove-background-IG6U56HC.js} +6 -6
  118. package/dist/{render-KJCDJEGI.js → render-6P5RSFS3.js} +12 -12
  119. package/dist/{render-YTJ3SMCD.js → render-XQONIJEJ.js} +3 -3
  120. package/dist/{render-ADBL3C7S.js → render-ZJPSLTKV.js} +49 -28
  121. package/dist/{render-batch-AFB2XK3I.js → render-batch-MH3Z6IPT.js} +3 -3
  122. package/dist/{resolver-F2D2YCSQ.js → resolver-JMSGO2JF.js} +4 -4
  123. package/dist/{sherpa-IBKSF6GX.js → sherpa-64JLV4YM.js} +7 -7
  124. package/dist/{skills-E75DFHGG.js → skills-UXOL62PY.js} +5 -5
  125. package/dist/{skillsUpdateCheck-EPTKOBR6.js → skillsUpdateCheck-5Y6676K6.js} +3 -3
  126. package/dist/{snapshot-Z6T4I5TE.js → snapshot-SQBPCXOV.js} +74 -48
  127. package/dist/{src-NDI4KNT3.js → src-N42CT3YR.js} +6 -4
  128. package/dist/{src-4GCHM2LX.js → src-RQMK5INS.js} +7 -7
  129. package/dist/{staticProjectServer-ITNEQNQ7.js → staticProjectServer-AQXVWMLU.js} +15 -13
  130. package/dist/studio/assets/{hyperframes-player-DX8LgKgb.js → hyperframes-player-kqB1psAJ.js} +1 -1
  131. package/dist/studio/assets/{index-DB0YwjiT.js → index-BrViH8hj.js} +1 -1
  132. package/dist/studio/assets/{index-BdnuQ7ta.js → index-C3AZLr-0.js} +1 -1
  133. package/dist/studio/assets/{index-7Ljcoa9s.js → index-X_d1b5vz.js} +4 -4
  134. package/dist/studio/index.html +1 -1
  135. package/dist/{studio-api-JMWUSAG7.js → studio-api-GY5D7RAP.js} +9 -9
  136. package/dist/{studioServer-MWZNMAVJ.js → studioServer-O3VONODG.js} +49 -49
  137. package/dist/{telemetry-D6A2TRK6.js → telemetry-V2K5P7CI.js} +3 -3
  138. package/dist/{timeline-VIF4G3IT.js → timeline-YU3YPLKB.js} +18 -18
  139. package/dist/{tokens-ORS6MFMG.js → tokens-NPSSSG2A.js} +2 -2
  140. package/dist/{transcribe-DZ6O6EG5.js → transcribe-BXJNS3RZ.js} +6 -6
  141. package/dist/{transcribe-DNRG7OGE.js → transcribe-FNBDG24U.js} +12 -12
  142. package/dist/{updateCheck-YY4BPYNT.js → updateCheck-MB3RHSVK.js} +2 -2
  143. package/dist/{upgrade-CUDVTTF5.js → upgrade-5VNRUR37.js} +2 -2
  144. package/dist/{urlDownloader-INLS5A6I.js → urlDownloader-WCT7FMLA.js} +4 -4
  145. package/dist/{validate-CQCQVHUX.js → validate-UXSXRCE6.js} +19 -19
  146. package/dist/{video-3GLT6U6Z.js → video-NRNQBZMV.js} +5 -5
  147. package/package.json +1 -1
  148. package/dist/chunk-LPOTN5GW.js +0 -3795
@@ -4,6 +4,9 @@ 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
+ writeCaptureFileSync
9
+ } from "./chunk-MRF4AMKD.js";
7
10
  import {
8
11
  parseAngle
9
12
  } from "./chunk-KZI44OPA.js";
@@ -14,14 +17,8 @@ import {
14
17
  } from "./chunk-57GN6KWT.js";
15
18
  import {
16
19
  captureArtifactRevision
17
- } from "./chunk-Y6E2PW7Z.js";
18
- import "./chunk-Z347DFOL.js";
19
- import {
20
- serveStaticProjectHtml
21
- } from "./chunk-4R6OZQGX.js";
22
- import "./chunk-XUHOIDKG.js";
23
- import "./chunk-J4SSEVRU.js";
24
- import "./chunk-X7MTZ4T2.js";
20
+ } from "./chunk-BEW7RCCW.js";
21
+ import "./chunk-AFYZWHR7.js";
25
22
  import {
26
23
  DEFAULT_ZOOM_SCALE,
27
24
  captureRegionCrop,
@@ -30,46 +27,52 @@ import {
30
27
  resolveCropRegion,
31
28
  runFfmpegOnce,
32
29
  seekCompositionTimeline
33
- } from "./chunk-7FGHFHWD.js";
30
+ } from "./chunk-4D5RBIX6.js";
34
31
  import "./chunk-FH7WODJH.js";
35
- import "./chunk-LAAGHMRC.js";
36
- import "./chunk-J7WFHOCW.js";
32
+ import "./chunk-MMYY4KV3.js";
33
+ import "./chunk-EGJVFPUX.js";
37
34
  import "./chunk-WPNE5NEP.js";
38
- import "./chunk-DCQCGE2W.js";
39
- import "./chunk-56QTFOWH.js";
40
- import "./chunk-C6TPGUWD.js";
41
- import {
42
- artifactDirectory,
43
- forgetRecordedArtifacts,
44
- recordArtifacts
45
- } from "./chunk-6PIGOKTE.js";
46
- import "./chunk-DISITOR6.js";
47
- import "./chunk-FFDC5OWV.js";
48
- import {
49
- resolveProject
50
- } from "./chunk-L6AJC7UQ.js";
51
35
  import {
52
36
  formatLintFindings
53
37
  } from "./chunk-6CSYCFQV.js";
38
+ import {
39
+ resolveProject
40
+ } from "./chunk-5HNZQSO4.js";
54
41
  import "./chunk-K2FLNJVB.js";
42
+ import {
43
+ serveStaticProjectHtml
44
+ } from "./chunk-IKDBT5WT.js";
45
+ import "./chunk-X7MTZ4T2.js";
46
+ import "./chunk-5YCFHCD4.js";
55
47
  import "./chunk-DQBY7FRR.js";
56
48
  import {
57
49
  resolveLocalBrowserGpuMode
58
- } from "./chunk-YB26LWR2.js";
50
+ } from "./chunk-H6BKVVU4.js";
59
51
  import "./chunk-442JNXRM.js";
60
- import "./chunk-GPUVPZRK.js";
52
+ import "./chunk-XUHOIDKG.js";
53
+ import "./chunk-ODE7HHNN.js";
54
+ import "./chunk-A5RDOXZE.js";
55
+ import "./chunk-C6TPGUWD.js";
56
+ import "./chunk-5RSV6DWB.js";
57
+ import {
58
+ artifactDirectory,
59
+ forgetRecordedArtifacts,
60
+ recordArtifacts
61
+ } from "./chunk-6PIGOKTE.js";
62
+ import "./chunk-FFDC5OWV.js";
63
+ import "./chunk-AEQWF7PE.js";
61
64
  import "./chunk-XT7X6QCP.js";
62
65
  import "./chunk-4YYJOFKS.js";
63
66
  import "./chunk-HVW7ABXD.js";
64
- import "./chunk-3FRK53UC.js";
65
- import "./chunk-LQXHRO6F.js";
66
- import "./chunk-QRPYTJBW.js";
67
+ import "./chunk-7RTTPSXG.js";
68
+ import "./chunk-3W3MOLRL.js";
69
+ import "./chunk-FEKRMXT6.js";
67
70
  import "./chunk-AWDFDFI3.js";
68
71
  import "./chunk-P6LJ4Y32.js";
69
72
  import "./chunk-GMECXFAN.js";
70
73
  import "./chunk-5CS4T6C6.js";
71
- import "./chunk-2XUQPJ3W.js";
72
- import "./chunk-H6BWNY56.js";
74
+ import "./chunk-NCVGBBWC.js";
75
+ import "./chunk-HO3SITVT.js";
73
76
  import "./chunk-VWG7OQKU.js";
74
77
  import "./chunk-QWQ6GQTI.js";
75
78
  import {
@@ -93,7 +96,7 @@ import "./chunk-K4WIOZFP.js";
93
96
  import "./chunk-XUXGIA7H.js";
94
97
  import "./chunk-WERLJGIC.js";
95
98
  import "./chunk-ISN5GRYI.js";
96
- import "./chunk-RU6AIVON.js";
99
+ import "./chunk-MTUC2Z32.js";
97
100
  import {
98
101
  loadOptionalPackage
99
102
  } from "./chunk-3DKN5WKL.js";
@@ -105,8 +108,8 @@ import {
105
108
  getFFmpegInstallHint
106
109
  } from "./chunk-KEGTYA7V.js";
107
110
  import "./chunk-XT6MXC7A.js";
108
- import "./chunk-IRRRH66M.js";
109
- import "./chunk-FJT35XBA.js";
111
+ import "./chunk-2CEH75X3.js";
112
+ import "./chunk-INNBWSZK.js";
110
113
  import "./chunk-KCF6GHJP.js";
111
114
  import "./chunk-JYVGYKXG.js";
112
115
  import "./chunk-7KDQAD2W.js";
@@ -114,12 +117,12 @@ import {
114
117
  createRuntimeStartTimeResolver,
115
118
  isClipVisibleAt,
116
119
  isInClipWindow
117
- } from "./chunk-SGIZMTWO.js";
120
+ } from "./chunk-V5J4XEBG.js";
118
121
  import {
119
122
  readElementRateSpec,
120
123
  sourceTimeAt,
121
124
  timeAtSourceTime
122
- } from "./chunk-LPOTN5GW.js";
125
+ } from "./chunk-TWBTXEDZ.js";
123
126
  import "./chunk-VC76R6W2.js";
124
127
  import "./chunk-UJKQWGFF.js";
125
128
  import "./chunk-ALLKNYC3.js";
@@ -231,6 +234,19 @@ var FFMPEG_EXTRACT_TIMEOUT_MS = 3e4;
231
234
  function formatSnapshotTimestamp(time) {
232
235
  return `${Number(time.toFixed(3))}s`;
233
236
  }
237
+ function assertDistinctKeepNames(times) {
238
+ const timeByLabel = /* @__PURE__ */ new Map();
239
+ for (const time of times) {
240
+ const label = formatSnapshotTimestamp(time);
241
+ const other = timeByLabel.get(label);
242
+ if (other !== void 0 && other !== time) {
243
+ throw new Error(
244
+ `--keep would name both ${other} and ${time} at-${label}.png; pass times at least 1 ms apart`
245
+ );
246
+ }
247
+ timeByLabel.set(label, time);
248
+ }
249
+ }
234
250
  function resolveSnapshotVideoFrameTime(input) {
235
251
  const { globalTime, clipStart, clipDuration, sourceDuration, compositionDuration } = input;
236
252
  const clipEnd = clipStart + clipDuration;
@@ -442,7 +458,7 @@ function computeSnapshotTimes(duration, opts) {
442
458
  return { times: times.map(round), appendedTail: false };
443
459
  }
444
460
  async function captureSnapshots(projectDir, opts) {
445
- const { bundleWithLocalizedFonts } = await import("./bundleWithLocalizedFonts-IVO43QBQ.js");
461
+ const { bundleWithLocalizedFonts } = await import("./bundleWithLocalizedFonts-SFHKZZAX.js");
446
462
  const capture = await captureArtifactRevision(projectDir).catch(warnSnapshotsNotRecorded);
447
463
  const invocation = randomUUID();
448
464
  const artifacts = [];
@@ -542,7 +558,7 @@ async function captureSnapshots(projectDir, opts) {
542
558
  mkdirSync(snapshotDir, { recursive: true });
543
559
  try {
544
560
  const { readdirSync } = await import("fs");
545
- for (const file of readdirSync(snapshotDir)) {
561
+ for (const file of opts.keep ? [] : readdirSync(snapshotDir)) {
546
562
  if (/\.(png|jpg|jpeg)$/i.test(file)) {
547
563
  const path = resolve(snapshotDir, file);
548
564
  replaced.push(path);
@@ -555,7 +571,7 @@ async function captureSnapshots(projectDir, opts) {
555
571
  let syncVideoFrameVisibility = null;
556
572
  let extractMediaMetadata = null;
557
573
  try {
558
- const engine = await import("./src-NDI4KNT3.js");
574
+ const engine = await import("./src-N42CT3YR.js");
559
575
  injectVideoFramesBatch = engine.injectVideoFramesBatch;
560
576
  syncVideoFrameVisibility = engine.syncVideoFrameVisibility;
561
577
  extractMediaMetadata = engine.extractMediaMetadata;
@@ -685,8 +701,8 @@ async function captureSnapshots(projectDir, opts) {
685
701
  }
686
702
  await recaptureSnapshotComposite(page);
687
703
  const timeLabel = formatSnapshotTimestamp(time);
688
- const index = String(i).padStart(2, "0");
689
- const filename = `frame-${index}-at-${timeLabel}.png`;
704
+ const slot = opts.keep ? `at-${timeLabel}` : `${String(i).padStart(2, "0")}-at-${timeLabel}`;
705
+ const filename = opts.keep ? `${slot}.png` : `frame-${slot}.png`;
690
706
  const framePath = join(snapshotDir, filename);
691
707
  let crop;
692
708
  if (opts.zoom) {
@@ -708,9 +724,12 @@ async function captureSnapshots(projectDir, opts) {
708
724
  region,
709
725
  opts.zoomScale ?? DEFAULT_ZOOM_SCALE
710
726
  );
711
- writeFileSync(framePath, buffer);
727
+ writeCaptureFileSync(framePath, buffer);
712
728
  } else {
713
- await page.screenshot({ path: framePath, type: "png", omitBackground: true });
729
+ writeCaptureFileSync(
730
+ framePath,
731
+ await page.screenshot({ type: "png", omitBackground: true })
732
+ );
714
733
  }
715
734
  artifacts.push({
716
735
  id: `${invocation}-${i}`,
@@ -732,9 +751,9 @@ async function captureSnapshots(projectDir, opts) {
732
751
  ` ${c.warn("\u26A0")} --against has no frame at ${timeLabel} \u2014 reference pair skipped`
733
752
  );
734
753
  } else {
735
- const refPath = join(snapshotDir, `ref-${index}-at-${timeLabel}.png`);
736
- writeFileSync(refPath, refPng);
737
- const pairPath = join(snapshotDir, `pair-${index}-at-${timeLabel}.jpg`);
754
+ const refPath = join(snapshotDir, `ref-${slot}.png`);
755
+ writeCaptureFileSync(refPath, refPng);
756
+ const pairPath = join(snapshotDir, `pair-${slot}.jpg`);
738
757
  const { createContactSheet } = await import("./contactSheet-27SRU7A4.js");
739
758
  await createContactSheet([framePath, refPath], pairPath, {
740
759
  cols: 2,
@@ -837,6 +856,11 @@ var snapshot_default = defineCommand({
837
856
  description: "Always include a readable end-of-timeline frame (default: true). Pass --no-end to capture only your exact --at times.",
838
857
  default: true
839
858
  },
859
+ keep: {
860
+ type: "boolean",
861
+ description: "Add to --output instead of clearing it, naming each still at-<seconds>s.png (at-0s, at-1.5s, at-12.25s: no trailing zeros), so snapshotting one moment again replaces only that still. Times less than 1 ms apart share a name, so one run may not pass two of them. No contact sheet.",
862
+ default: false
863
+ },
840
864
  zoom: {
841
865
  type: "string",
842
866
  description: "Zoom into a CSS selector or an exact pixel region 'x,y,w,h'. Crops a high-density screenshot instead of the full frame \u2014 a raised deviceScaleFactor, never CSS zoom or viewport resizing, so layout stays identical. A selector matching nothing is an error, not a silent full-frame shot."
@@ -902,6 +926,7 @@ var snapshot_default = defineCommand({
902
926
  }
903
927
  const timeout = parseInt(args.timeout, 10) || 5e3;
904
928
  const atTimestamps = args.at ? String(args.at).split(",").map((s) => parseFloat(s.trim())).filter((n) => !isNaN(n)) : void 0;
929
+ if (args.keep === true && atTimestamps) assertDistinctKeepNames(atTimestamps);
905
930
  const describeArg = args.describe === void 0 ? "true" : String(args.describe) === "false" ? null : String(args.describe);
906
931
  const camera = args.angle ? parseAngle(String(args.angle)) : void 0;
907
932
  const zoomTarget = args.zoom ? parseZoomTarget(String(args.zoom)) : void 0;
@@ -930,7 +955,8 @@ var snapshot_default = defineCommand({
930
955
  zoomScale,
931
956
  autoProxy: args.proxy,
932
957
  browserGpuMode: resolveLocalBrowserGpuMode(args["browser-gpu"]),
933
- against
958
+ against,
959
+ keep: args.keep === true
934
960
  });
935
961
  reportArtifacts(
936
962
  "snapshot",
@@ -956,7 +982,7 @@ ${c.success("\u25C7")} ${paths.length} snapshots saved to ${snapshotDir}`);
956
982
  }
957
983
  try {
958
984
  const { createSnapshotContactSheet } = await import("./contactSheet-27SRU7A4.js");
959
- const sheets = await createSnapshotContactSheet(
985
+ const sheets = args.keep === true ? [] : await createSnapshotContactSheet(
960
986
  snapshotDir,
961
987
  join(snapshotDir, "contact-sheet.jpg")
962
988
  );
@@ -53,6 +53,7 @@ import {
53
53
  assertPublicHttpsUrl,
54
54
  assertSwiftShader,
55
55
  assertWebGpuAdapterAvailable,
56
+ audioFailureDiagnostics,
56
57
  augmentPageNavigationTimeoutError,
57
58
  augmentProtocolTimeoutError,
58
59
  beginFrameCapture,
@@ -216,8 +217,8 @@ import {
216
217
  verifyGpuParity,
217
218
  writeCapturedFrame,
218
219
  writeUrlDownloadTelemetry
219
- } from "./chunk-IRRRH66M.js";
220
- import "./chunk-FJT35XBA.js";
220
+ } from "./chunk-2CEH75X3.js";
221
+ import "./chunk-INNBWSZK.js";
221
222
  import "./chunk-KCF6GHJP.js";
222
223
  import {
223
224
  LOW_MEMORY_TOTAL_MB_THRESHOLD,
@@ -229,8 +230,8 @@ import "./chunk-7KDQAD2W.js";
229
230
  import {
230
231
  MEDIA_VISUAL_STYLE_PROPERTIES,
231
232
  quantizeTimeToFrame
232
- } from "./chunk-SGIZMTWO.js";
233
- import "./chunk-LPOTN5GW.js";
233
+ } from "./chunk-V5J4XEBG.js";
234
+ import "./chunk-TWBTXEDZ.js";
234
235
  import "./chunk-VC76R6W2.js";
235
236
  import "./chunk-UJKQWGFF.js";
236
237
  import "./chunk-ALLKNYC3.js";
@@ -319,6 +320,7 @@ export {
319
320
  assertPublicHttpsUrl,
320
321
  assertSwiftShader,
321
322
  assertWebGpuAdapterAvailable,
323
+ audioFailureDiagnostics,
322
324
  augmentPageNavigationTimeoutError,
323
325
  augmentProtocolTimeoutError,
324
326
  beginFrameCapture,
@@ -69,7 +69,7 @@ import {
69
69
  serializeRenderRequest,
70
70
  startServer,
71
71
  validatePlanV2MaterializedTarget
72
- } from "./chunk-EEEUI3ON.js";
72
+ } from "./chunk-HEEN6X6O.js";
73
73
  import {
74
74
  FONT_FETCH_FAILED,
75
75
  FONT_FETCH_UNAVAILABLE,
@@ -78,11 +78,11 @@ import {
78
78
  injectDeterministicFontFaces
79
79
  } from "./chunk-3QATT3QF.js";
80
80
  import "./chunk-FI4I7CME.js";
81
- import "./chunk-T76NSAXO.js";
81
+ import "./chunk-ESOAYGIT.js";
82
+ import "./chunk-BZ56MTDX.js";
82
83
  import "./chunk-KLIKCX6Q.js";
83
84
  import "./chunk-EOOEC32M.js";
84
85
  import "./chunk-TJSTGSAW.js";
85
- import "./chunk-BZ56MTDX.js";
86
86
  import {
87
87
  DEFAULT_CONFIG,
88
88
  captureFrame,
@@ -96,15 +96,15 @@ import {
96
96
  isTransientBrowserError,
97
97
  prepareCaptureSessionForReuse,
98
98
  resolveConfig
99
- } from "./chunk-IRRRH66M.js";
100
- import "./chunk-FJT35XBA.js";
99
+ } from "./chunk-2CEH75X3.js";
100
+ import "./chunk-INNBWSZK.js";
101
101
  import "./chunk-KCF6GHJP.js";
102
102
  import "./chunk-JYVGYKXG.js";
103
103
  import "./chunk-7KDQAD2W.js";
104
104
  import {
105
105
  quantizeTimeToFrame
106
- } from "./chunk-SGIZMTWO.js";
107
- import "./chunk-LPOTN5GW.js";
106
+ } from "./chunk-V5J4XEBG.js";
107
+ import "./chunk-TWBTXEDZ.js";
108
108
  import "./chunk-VC76R6W2.js";
109
109
  import "./chunk-UJKQWGFF.js";
110
110
  import "./chunk-ALLKNYC3.js";
@@ -5,24 +5,25 @@ var require = __hf_createRequire(import.meta.url);
5
5
  var __filename = __hf_fileURLToPath(import.meta.url);
6
6
  var __dirname = __hf_dirname(__filename);
7
7
  import {
8
+ inProcessAnswer,
8
9
  serveStaticProjectHtml
9
- } from "./chunk-4R6OZQGX.js";
10
- import "./chunk-XUHOIDKG.js";
11
- import "./chunk-J4SSEVRU.js";
10
+ } from "./chunk-IKDBT5WT.js";
12
11
  import "./chunk-X7MTZ4T2.js";
13
- import "./chunk-DCQCGE2W.js";
14
- import "./chunk-56QTFOWH.js";
12
+ import "./chunk-5YCFHCD4.js";
13
+ import "./chunk-XUHOIDKG.js";
14
+ import "./chunk-ODE7HHNN.js";
15
+ import "./chunk-A5RDOXZE.js";
15
16
  import "./chunk-C6TPGUWD.js";
17
+ import "./chunk-5RSV6DWB.js";
16
18
  import "./chunk-6PIGOKTE.js";
17
- import "./chunk-DISITOR6.js";
18
19
  import "./chunk-FFDC5OWV.js";
19
- import "./chunk-GPUVPZRK.js";
20
+ import "./chunk-AEQWF7PE.js";
20
21
  import "./chunk-XT7X6QCP.js";
21
22
  import "./chunk-4YYJOFKS.js";
22
23
  import "./chunk-HVW7ABXD.js";
23
- import "./chunk-3FRK53UC.js";
24
- import "./chunk-LQXHRO6F.js";
25
- import "./chunk-QRPYTJBW.js";
24
+ import "./chunk-7RTTPSXG.js";
25
+ import "./chunk-3W3MOLRL.js";
26
+ import "./chunk-FEKRMXT6.js";
26
27
  import "./chunk-AWDFDFI3.js";
27
28
  import "./chunk-P6LJ4Y32.js";
28
29
  import "./chunk-GMECXFAN.js";
@@ -31,10 +32,10 @@ import "./chunk-KLIKCX6Q.js";
31
32
  import "./chunk-EOOEC32M.js";
32
33
  import "./chunk-TJSTGSAW.js";
33
34
  import "./chunk-EOVYQ3IG.js";
34
- import "./chunk-FJT35XBA.js";
35
+ import "./chunk-INNBWSZK.js";
35
36
  import "./chunk-KCF6GHJP.js";
36
- import "./chunk-SGIZMTWO.js";
37
- import "./chunk-LPOTN5GW.js";
37
+ import "./chunk-V5J4XEBG.js";
38
+ import "./chunk-TWBTXEDZ.js";
38
39
  import "./chunk-VC76R6W2.js";
39
40
  import "./chunk-UJKQWGFF.js";
40
41
  import "./chunk-ALLKNYC3.js";
@@ -54,5 +55,6 @@ import "./chunk-TYXH3EKP.js";
54
55
  import "./chunk-IXLUTE6N.js";
55
56
  import "./chunk-M2WBOQ2Q.js";
56
57
  export {
58
+ inProcessAnswer,
57
59
  serveStaticProjectHtml
58
60
  };
@@ -1,4 +1,4 @@
1
- var xe=Object.defineProperty;var Ie=(r,i,e)=>i in r?xe(r,i,{enumerable:!0,configurable:!0,writable:!0,value:e}):r[i]=e;var l=(r,i,e)=>Ie(r,typeof i!="symbol"?i+"":i,e);import{S as Oe,r as Ne,a as fe,i as Fe,b as w,c as _e,p as Ve,d as Ue,e as He,f as We,s as ze,g as ge,F as ye}from"./index-7Ljcoa9s.js";function $e(r){return r.hasRuntime||r.runtimeInjected?!1:!!(r.hasNestedCompositions||r.hasTimelines&&r.attempts>=5)}function x(r){return typeof r=="object"&&r!==null}function je(r){return x(r)&&typeof r.getDuration=="function"}function Be(r){return x(r)&&typeof r.duration=="function"&&typeof r.time=="function"&&typeof r.seek=="function"&&typeof r.play=="function"&&typeof r.pause=="function"}function qe(r){if(!/^\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?(?:\+[0-9A-Za-z.-]+)?$/.test(r))throw new Error(`Invalid HyperFrames runtime version: ${r}`);return`https://cdn.jsdelivr.net/npm/@hyperframes/core@${r}/dist/hyperframe.runtime.iife.js`}const W=typeof __HYPERFRAMES_RUNTIME_CDN_URL__=="string"?__HYPERFRAMES_RUNTIME_CDN_URL__:qe("0.0.0-dev");function $(r){if(r===null)return null;const i=Number.parseInt(r,10);return Number.isFinite(i)&&i>0?i:null}function Ge(r){const i=(r==null?void 0:r.querySelector("[data-composition-id][data-width][data-height]"))??(r==null?void 0:r.querySelector("[data-width][data-height]"));if(!i)return null;const e=$(i.getAttribute("data-width")),t=$(i.getAttribute("data-height"));return e!==null&&t!==null?{width:e,height:t}:null}function Ye(r){return Array.isArray(r)?r.find(i=>typeof i=="string"&&i.trim()!==""&&i!=="[object Event]")??null:null}class Xe{constructor(i,e){l(this,"_interval",null);l(this,"_runtimeInjected",!1);l(this,"_runtimeScript",null);l(this,"_failure",null);this._iframe=i,this._callbacks=e}get failed(){return this._failure!==null&&this._failure.document===this._iframe.contentDocument}get runtimeInjected(){return this._runtimeInjected}start(){this.stop(),this._failure=null,this._runtimeInjected=!1;let i=0;this._interval=setInterval(()=>{i++;let e=null;try{e=this._poll(i)}catch(t){t instanceof DOMException&&t.name==="SecurityError"||(e={kind:"error",message:t instanceof Error?t.message:String(t)})}if(e){this.stop(),e.kind==="error"?(this._failure={document:this._iframe.contentDocument},this._callbacks.onError(e.message)):this._callbacks.onReady(e.result);return}i>=40&&(this.stop(),this._failure={document:this._iframe.contentDocument},this._callbacks.onError("Composition timeline not found after 8s"))},200)}_poll(i){const e=this._iframe.contentWindow;if(!e)return null;const t=Ye(Reflect.get(e,Oe));if(t!==null)return{kind:"error",message:t};const s=this._iframe.contentDocument,n=Reflect.get(e,"__timelines"),o=this.hasRuntimeBridge(e);if($e({hasRuntime:o,hasTimelines:x(n)&&Object.keys(n).length>0,hasNestedCompositions:!!(s!=null&&s.querySelector("[data-composition-src]")),runtimeInjected:this._runtimeInjected,attempts:i}))return this._injectRuntime(),null;if(this._runtimeInjected&&!o)return null;const a=this._resolveReadyResult(e,s);return a?{kind:"ready",result:a}:null}_resolveReadyResult(i,e){var n;const t=this._resolvePlaybackDurationAdapter(i)??{kind:"document",getDuration:()=>0};let s=t.getDuration();if(!Number.isFinite(s)||s<=0){if(t.kind==="direct-timeline")return null;s=e?((n=Ne(e))==null?void 0:n.durationSeconds)??0:0}return s<=0?null:{duration:s,adapter:{...t,getDuration:()=>s},compositionSize:Ge(e)}}stop(){this._runtimeScript&&(this._runtimeScript.onerror=null,this._runtimeScript=null),this.failed||(this._failure=null),this._interval!==null&&(clearInterval(this._interval),this._interval=null)}resolveDirectTimelineAdapter(){try{const i=this._iframe.contentWindow;return i?this._resolveDirectTimelineAdapterFromWindow(i):null}catch{return null}}resolveDirectTimelineAdapterFromWindow(i){return this._resolveDirectTimelineAdapterFromWindow(i)}hasRuntimeBridge(i){return x(Reflect.get(i,"__player"))}_injectRuntime(){var i,e,t,s;this._runtimeInjected=!0;try{const n=this._iframe.contentDocument;if(!n)return;const o=n.createElement("script");o.src=((e=(i=this._callbacks).resolveRuntimeUrl)==null?void 0:e.call(i))??W,this._runtimeScript=o,o.onerror=()=>{this._runtimeScript!==o||this._iframe.contentDocument!==n||(this.stop(),this._failure={document:n},this._callbacks.onError("HyperFrames runtime failed to load from "+o.src))},(n.head||n.documentElement).appendChild(o),(s=(t=this._callbacks).onRuntimeInjected)==null||s.call(t)}catch{}}_resolveDirectTimelineAdapterFromWindow(i){var a,c;if(this.hasRuntimeBridge(i))return null;const e=Reflect.get(i,"__timelines");if(!x(e))return null;const t=Object.keys(e);if(t.length===0)return null;const s=(c=(a=this._iframe.contentDocument)==null?void 0:a.querySelector("[data-composition-id]"))==null?void 0:c.getAttribute("data-composition-id"),n=s&&s in e?s:t[t.length-1],o=e[n];return Be(o)?o:null}_resolvePlaybackDurationAdapter(i){const e=Reflect.get(i,"__player");if(je(e))return{kind:"runtime",getDuration:()=>e.getDuration()};const t=this._resolveDirectTimelineAdapterFromWindow(i);return t?{kind:"direct-timeline",timeline:t,getDuration:()=>t.duration()}:null}}const Ze=`
1
+ var xe=Object.defineProperty;var Ie=(r,i,e)=>i in r?xe(r,i,{enumerable:!0,configurable:!0,writable:!0,value:e}):r[i]=e;var l=(r,i,e)=>Ie(r,typeof i!="symbol"?i+"":i,e);import{S as Oe,r as Ne,a as fe,i as Fe,b as w,c as _e,p as Ve,d as Ue,e as He,f as We,s as ze,g as ge,F as ye}from"./index-X_d1b5vz.js";function $e(r){return r.hasRuntime||r.runtimeInjected?!1:!!(r.hasNestedCompositions||r.hasTimelines&&r.attempts>=5)}function x(r){return typeof r=="object"&&r!==null}function je(r){return x(r)&&typeof r.getDuration=="function"}function Be(r){return x(r)&&typeof r.duration=="function"&&typeof r.time=="function"&&typeof r.seek=="function"&&typeof r.play=="function"&&typeof r.pause=="function"}function qe(r){if(!/^\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?(?:\+[0-9A-Za-z.-]+)?$/.test(r))throw new Error(`Invalid HyperFrames runtime version: ${r}`);return`https://cdn.jsdelivr.net/npm/@hyperframes/core@${r}/dist/hyperframe.runtime.iife.js`}const W=typeof __HYPERFRAMES_RUNTIME_CDN_URL__=="string"?__HYPERFRAMES_RUNTIME_CDN_URL__:qe("0.0.0-dev");function $(r){if(r===null)return null;const i=Number.parseInt(r,10);return Number.isFinite(i)&&i>0?i:null}function Ge(r){const i=(r==null?void 0:r.querySelector("[data-composition-id][data-width][data-height]"))??(r==null?void 0:r.querySelector("[data-width][data-height]"));if(!i)return null;const e=$(i.getAttribute("data-width")),t=$(i.getAttribute("data-height"));return e!==null&&t!==null?{width:e,height:t}:null}function Ye(r){return Array.isArray(r)?r.find(i=>typeof i=="string"&&i.trim()!==""&&i!=="[object Event]")??null:null}class Xe{constructor(i,e){l(this,"_interval",null);l(this,"_runtimeInjected",!1);l(this,"_runtimeScript",null);l(this,"_failure",null);this._iframe=i,this._callbacks=e}get failed(){return this._failure!==null&&this._failure.document===this._iframe.contentDocument}get runtimeInjected(){return this._runtimeInjected}start(){this.stop(),this._failure=null,this._runtimeInjected=!1;let i=0;this._interval=setInterval(()=>{i++;let e=null;try{e=this._poll(i)}catch(t){t instanceof DOMException&&t.name==="SecurityError"||(e={kind:"error",message:t instanceof Error?t.message:String(t)})}if(e){this.stop(),e.kind==="error"?(this._failure={document:this._iframe.contentDocument},this._callbacks.onError(e.message)):this._callbacks.onReady(e.result);return}i>=40&&(this.stop(),this._failure={document:this._iframe.contentDocument},this._callbacks.onError("Composition timeline not found after 8s"))},200)}_poll(i){const e=this._iframe.contentWindow;if(!e)return null;const t=Ye(Reflect.get(e,Oe));if(t!==null)return{kind:"error",message:t};const s=this._iframe.contentDocument,n=Reflect.get(e,"__timelines"),o=this.hasRuntimeBridge(e);if($e({hasRuntime:o,hasTimelines:x(n)&&Object.keys(n).length>0,hasNestedCompositions:!!(s!=null&&s.querySelector("[data-composition-src]")),runtimeInjected:this._runtimeInjected,attempts:i}))return this._injectRuntime(),null;if(this._runtimeInjected&&!o)return null;const a=this._resolveReadyResult(e,s);return a?{kind:"ready",result:a}:null}_resolveReadyResult(i,e){var n;const t=this._resolvePlaybackDurationAdapter(i)??{kind:"document",getDuration:()=>0};let s=t.getDuration();if(!Number.isFinite(s)||s<=0){if(t.kind==="direct-timeline")return null;s=e?((n=Ne(e))==null?void 0:n.durationSeconds)??0:0}return s<=0?null:{duration:s,adapter:{...t,getDuration:()=>s},compositionSize:Ge(e)}}stop(){this._runtimeScript&&(this._runtimeScript.onerror=null,this._runtimeScript=null),this.failed||(this._failure=null),this._interval!==null&&(clearInterval(this._interval),this._interval=null)}resolveDirectTimelineAdapter(){try{const i=this._iframe.contentWindow;return i?this._resolveDirectTimelineAdapterFromWindow(i):null}catch{return null}}resolveDirectTimelineAdapterFromWindow(i){return this._resolveDirectTimelineAdapterFromWindow(i)}hasRuntimeBridge(i){return x(Reflect.get(i,"__player"))}_injectRuntime(){var i,e,t,s;this._runtimeInjected=!0;try{const n=this._iframe.contentDocument;if(!n)return;const o=n.createElement("script");o.src=((e=(i=this._callbacks).resolveRuntimeUrl)==null?void 0:e.call(i))??W,this._runtimeScript=o,o.onerror=()=>{this._runtimeScript!==o||this._iframe.contentDocument!==n||(this.stop(),this._failure={document:n},this._callbacks.onError("HyperFrames runtime failed to load from "+o.src))},(n.head||n.documentElement).appendChild(o),(s=(t=this._callbacks).onRuntimeInjected)==null||s.call(t)}catch{}}_resolveDirectTimelineAdapterFromWindow(i){var a,c;if(this.hasRuntimeBridge(i))return null;const e=Reflect.get(i,"__timelines");if(!x(e))return null;const t=Object.keys(e);if(t.length===0)return null;const s=(c=(a=this._iframe.contentDocument)==null?void 0:a.querySelector("[data-composition-id]"))==null?void 0:c.getAttribute("data-composition-id"),n=s&&s in e?s:t[t.length-1],o=e[n];return Be(o)?o:null}_resolvePlaybackDurationAdapter(i){const e=Reflect.get(i,"__player");if(je(e))return{kind:"runtime",getDuration:()=>e.getDuration()};const t=this._resolveDirectTimelineAdapterFromWindow(i);return t?{kind:"direct-timeline",timeline:t,getDuration:()=>t.duration()}:null}}const Ze=`
2
2
  :host {
3
3
  display: block;
4
4
  position: relative;
@@ -1,4 +1,4 @@
1
- import{n as Qi}from"./index-7Ljcoa9s.js";/*!
1
+ import{n as Qi}from"./index-X_d1b5vz.js";/*!
2
2
  * Copyright (c) 2026-present, Vanilagy and contributors
3
3
  *
4
4
  * This Source Code Form is subject to the terms of the Mozilla Public
@@ -1 +1 @@
1
- import{h as P}from"./index-7Ljcoa9s.js";function j(c,d){for(var s=0;s<d.length;s++){const a=d[s];if(typeof a!="string"&&!Array.isArray(a)){for(const i in a)if(i!=="default"&&!(i in c)){const l=Object.getOwnPropertyDescriptor(a,i);l&&Object.defineProperty(c,i,l.get?l:{enumerable:!0,get:()=>a[i]})}}}return Object.freeze(Object.defineProperty(c,Symbol.toStringTag,{value:"Module"}))}var v={},w;function k(){if(w)return v;w=1,Object.defineProperty(v,"__esModule",{value:!0}),v.default=d;var c=window.OfflineAudioContext||window.webkitOfflineAudioContext;function d(e){var r=a(e);return r.start(0),[i,y,O(e.sampleRate),s].reduce(function(t,o){return o(t)},r.buffer.getChannelData(0))}function s(e){return e.sort(function(r,t){return t.count-r.count}).splice(0,5)[0].tempo}function a(e){var r=e.length,t=e.numberOfChannels,o=e.sampleRate,n=new c(t,r,o),u=n.createBufferSource();u.buffer=e;var f=n.createBiquadFilter();return f.type="lowpass",u.connect(f),f.connect(n.destination),u}function i(e){for(var r=[],t=.9,o=.3,n=15;r.length<n&&t>=o;)r=l(e,t),t-=.05;if(r.length<n)throw new Error("Could not find enough samples for a reliable detection.");return r}function l(e,r){for(var t=[],o=0,n=e.length;o<n;o+=1)e[o]>r&&(t.push(o),o+=1e4);return t}function y(e){var r=[];return e.forEach(function(t,o){for(var n=function(x){var h=e[o+x]-t,_=r.some(function(g){if(g.interval===h)return g.count+=1});_||r.push({interval:h,count:1})},u=0;u<10;u+=1)n(u)}),r}function O(e){return function(r){var t=[];return r.forEach(function(o){if(o.interval!==0){for(var n=60/(o.interval/e);n<90;)n*=2;for(;n>180;)n/=2;n=Math.round(n);var u=t.some(function(f){if(f.tempo===n)return f.count+=o.count});u||t.push({tempo:n,count:o.count})}}),t}}return v}var p,b;function q(){return b||(b=1,p=k().default),p}var m=q();const A=P(m),D=j({__proto__:null,default:A},[m]);export{D as i};
1
+ import{h as P}from"./index-X_d1b5vz.js";function j(c,d){for(var s=0;s<d.length;s++){const a=d[s];if(typeof a!="string"&&!Array.isArray(a)){for(const i in a)if(i!=="default"&&!(i in c)){const l=Object.getOwnPropertyDescriptor(a,i);l&&Object.defineProperty(c,i,l.get?l:{enumerable:!0,get:()=>a[i]})}}}return Object.freeze(Object.defineProperty(c,Symbol.toStringTag,{value:"Module"}))}var v={},w;function k(){if(w)return v;w=1,Object.defineProperty(v,"__esModule",{value:!0}),v.default=d;var c=window.OfflineAudioContext||window.webkitOfflineAudioContext;function d(e){var r=a(e);return r.start(0),[i,y,O(e.sampleRate),s].reduce(function(t,o){return o(t)},r.buffer.getChannelData(0))}function s(e){return e.sort(function(r,t){return t.count-r.count}).splice(0,5)[0].tempo}function a(e){var r=e.length,t=e.numberOfChannels,o=e.sampleRate,n=new c(t,r,o),u=n.createBufferSource();u.buffer=e;var f=n.createBiquadFilter();return f.type="lowpass",u.connect(f),f.connect(n.destination),u}function i(e){for(var r=[],t=.9,o=.3,n=15;r.length<n&&t>=o;)r=l(e,t),t-=.05;if(r.length<n)throw new Error("Could not find enough samples for a reliable detection.");return r}function l(e,r){for(var t=[],o=0,n=e.length;o<n;o+=1)e[o]>r&&(t.push(o),o+=1e4);return t}function y(e){var r=[];return e.forEach(function(t,o){for(var n=function(x){var h=e[o+x]-t,_=r.some(function(g){if(g.interval===h)return g.count+=1});_||r.push({interval:h,count:1})},u=0;u<10;u+=1)n(u)}),r}function O(e){return function(r){var t=[];return r.forEach(function(o){if(o.interval!==0){for(var n=60/(o.interval/e);n<90;)n*=2;for(;n>180;)n/=2;n=Math.round(n);var u=t.some(function(f){if(f.tempo===n)return f.count+=o.count});u||t.push({tempo:n,count:o.count})}}),t}}return v}var p,b;function q(){return b||(b=1,p=k().default),p}var m=q();const A=P(m),D=j({__proto__:null,default:A},[m]);export{D as i};