hyperframes 0.8.140 → 0.8.142

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 (167) hide show
  1. package/dist/{add-7SPPQB64.js → add-YS2RCWEK.js} +11 -11
  2. package/dist/{animatedGifPrep-HN3CJSFX.js → animatedGifPrep-SAMCDT7T.js} +6 -7
  3. package/dist/{asset-AZMFUTRL.js → asset-BLWC2NWB.js} +2 -2
  4. package/dist/{assetCataloger-TQUWYLHE.js → assetCataloger-FVNBBRP3.js} +2 -2
  5. package/dist/{auth-XGY74R4A.js → auth-DRZB7OAC.js} +5 -4
  6. package/dist/{autoUpdate-44NTJBQU.js → autoUpdate-I5I3BOJK.js} +2 -2
  7. package/dist/{backgroundChecks-ET4DJEPG.js → backgroundChecks-VR2QHGNY.js} +3 -3
  8. package/dist/backgroundChecksWorker.js +3 -3
  9. package/dist/{batchRender-HTWWNF3P.js → batchRender-4YUHQI6X.js} +3 -3
  10. package/dist/{beats-4GYTZUZG.js → beats-7OT7ALV3.js} +11 -12
  11. package/dist/{benchmark-CJQHE3QN.js → benchmark-Q2XQCRTR.js} +8 -8
  12. package/dist/{browser-NXOVPGDG.js → browser-7VAWQQZC.js} +3 -3
  13. package/dist/{bundleWithLocalizedFonts-6PJP54TC.js → bundleWithLocalizedFonts-DDMLLL2R.js} +2 -2
  14. package/dist/{capture-EHOMO4MP.js → capture-HEJS6M5A.js} +74 -33
  15. package/dist/{capture-5EHGRJZM.js → capture-U7ABPKS5.js} +24 -8
  16. package/dist/{catalog-PTX5Z52R.js → catalog-DVJ3XPDN.js} +11 -11
  17. package/dist/{catch-up-I45SPSCU.js → catch-up-DF6AVSN2.js} +4 -4
  18. package/dist/{check-LJ7LG7OI.js → check-KXORRWAE.js} +75 -72
  19. package/dist/{checkBrowser-6EK5E4PG.js → checkBrowser-J7HZJTRH.js} +28 -29
  20. package/dist/{chunk-XTFJOR3K.js → chunk-4SFGME7K.js} +1 -1
  21. package/dist/{chunk-EDYBFSPE.js → chunk-6RAD4BCC.js} +5 -8
  22. package/dist/{chunk-MTVDXB6S.js → chunk-6UM3R7PP.js} +21 -13
  23. package/dist/{chunk-IRBESGJ7.js → chunk-6UYZB4TY.js} +1 -1
  24. package/dist/{chunk-VVJFZU6B.js → chunk-75JJVANE.js} +2 -2
  25. package/dist/{chunk-F3SPK6SO.js → chunk-7FCDA4RH.js} +1 -1
  26. package/dist/{chunk-R4QIE6UY.js → chunk-7M4KAPAA.js} +92 -31
  27. package/dist/{chunk-HKCNZITN.js → chunk-AM5L5YIA.js} +1 -1
  28. package/dist/{chunk-BRITLL56.js → chunk-B4P5VDFQ.js} +1 -1
  29. package/dist/{chunk-2GMKWYEH.js → chunk-B6SMSALD.js} +53 -12
  30. package/dist/{chunk-DQNOPYAG.js → chunk-BPZVDBHY.js} +1 -1
  31. package/dist/{chunk-246MOR5U.js → chunk-DKSDVDXG.js} +175 -162
  32. package/dist/{chunk-6U3MN4HW.js → chunk-DPHJKWP5.js} +2 -2
  33. package/dist/{chunk-MUINFURL.js → chunk-DZEVA7DI.js} +2 -2
  34. package/dist/{chunk-KMKWRIMC.js → chunk-EFDXGAAD.js} +1 -1
  35. package/dist/{chunk-LQG6GPVK.js → chunk-FWRNQOLT.js} +1 -1
  36. package/dist/{chunk-IFY57LUW.js → chunk-FZK35GT4.js} +1 -1
  37. package/dist/{chunk-PUBKHEEA.js → chunk-GYE63V4P.js} +10 -10
  38. package/dist/{chunk-WQBA3MH4.js → chunk-H2X52H2N.js} +3 -3
  39. package/dist/{chunk-QG3PDRSO.js → chunk-HMUF7FEO.js} +1 -1
  40. package/dist/{chunk-TPECLKPA.js → chunk-IDX52YJN.js} +5 -5
  41. package/dist/{chunk-ABJNXQUA.js → chunk-IMY4QQTQ.js} +7 -7
  42. package/dist/{chunk-WY5OODN5.js → chunk-IW2CKH6A.js} +3645 -3
  43. package/dist/{chunk-X3X3VETN.js → chunk-IXCTG2WY.js} +3 -3
  44. package/dist/chunk-J4UX3RS3.js +3717 -0
  45. package/dist/{chunk-DDQ4LOML.js → chunk-JLKMWY2T.js} +1 -1
  46. package/dist/{chunk-ASW6NWON.js → chunk-JOTLPC6S.js} +1 -1
  47. package/dist/{chunk-MU6C2VP6.js → chunk-JU6Y5TTZ.js} +2 -2
  48. package/dist/{chunk-PPKFM5WE.js → chunk-KYN364DU.js} +2 -2
  49. package/dist/{chunk-C2JUHIG5.js → chunk-LBKDQKWV.js} +1 -1
  50. package/dist/{chunk-PB3P4MKP.js → chunk-LJAU4TPS.js} +1 -1
  51. package/dist/{chunk-PFJFHNU3.js → chunk-LQASVU3I.js} +3 -3
  52. package/dist/{chunk-KJLY2SDJ.js → chunk-LTGGTEMA.js} +2 -2
  53. package/dist/{chunk-L2H2L22P.js → chunk-MVTUV4TP.js} +2 -2
  54. package/dist/{chunk-QBK7WKHT.js → chunk-OKCR3JTO.js} +104 -4
  55. package/dist/{chunk-BQKEGPPL.js → chunk-OSUKETIH.js} +1 -1
  56. package/dist/chunk-P36MALQF.js +15 -0
  57. package/dist/{chunk-KECV5G4V.js → chunk-QGRFOOLE.js} +10 -10
  58. package/dist/{chunk-5IKJONRY.js → chunk-QXPCARFE.js} +1 -1
  59. package/dist/{chunk-WKTHUC2R.js → chunk-R2JEKLDZ.js} +1 -1
  60. package/dist/{chunk-TYT2TLJR.js → chunk-TY6XOHEM.js} +1 -1
  61. package/dist/{chunk-SLEPCESN.js → chunk-WGVOWWVK.js} +2 -2
  62. package/dist/{chunk-KFQNMY36.js → chunk-WSGY5CDQ.js} +5 -5
  63. package/dist/{chunk-PE2I3AFA.js → chunk-WTMUCJ6Z.js} +1 -1
  64. package/dist/{chunk-JSGANFFH.js → chunk-XGMNQQTJ.js} +1 -1
  65. package/dist/{chunk-BJ5JWOES.js → chunk-XTLBLWOV.js} +1 -1
  66. package/dist/{chunk-QP3BRKGF.js → chunk-YFT3BL7N.js} +19 -1
  67. package/dist/{chunk-MHK5DE2P.js → chunk-YHRZQJXH.js} +59 -37
  68. package/dist/{clean-Y3AQITOX.js → clean-KTHTV5G5.js} +12 -13
  69. package/dist/cli.js +52 -52
  70. package/dist/{cloud-TDPOMBZF.js → cloud-ARSZWALC.js} +4 -4
  71. package/dist/{cloudrun-FPAVAVHP.js → cloudrun-NM7RXOCL.js} +3 -3
  72. package/dist/commands/layout-audit.browser.js +20 -20
  73. package/dist/{compare-LHL225ND.js → compare-CY4UO3RW.js} +23 -24
  74. package/dist/{compiler-RTU3KTLF.js → compiler-VTH2D3ID.js} +3 -4
  75. package/dist/{component-L2YX7J56.js → component-FRUIAXIR.js} +3 -3
  76. package/dist/{compositions-V2UZKG7S.js → compositions-CUSY6ZYY.js} +10 -11
  77. package/dist/{delete-OXZEXUQY.js → delete-KT3VHP4L.js} +5 -5
  78. package/dist/{deterministicFonts-GTITFRSJ.js → deterministicFonts-F6WIVL2W.js} +1 -1
  79. package/dist/{dist-N33CM63P.js → dist-2GC6XKRQ.js} +8 -2
  80. package/dist/{dist-NZSQCYOF.js → dist-7SZU7MA7.js} +1 -2
  81. package/dist/{doctor-MWTPSIVD.js → doctor-4ROTBL5U.js} +8 -9
  82. package/dist/{events-4TZGQZWF.js → events-Q5PXT5UC.js} +2 -2
  83. package/dist/{events-7VJJGC3D.js → events-QJDVMKSR.js} +3 -3
  84. package/dist/{feedback-HSGAPVN7.js → feedback-PQ7TWESA.js} +10 -10
  85. package/dist/{figma-AMC6FAK3.js → figma-JN5DDBDS.js} +3 -3
  86. package/dist/fontLocalizeCli.js +9 -10
  87. package/dist/{get-Y7DFEFYM.js → get-KT6OTERO.js} +5 -5
  88. package/dist/{gpuPolicy-A45VSUKR.js → gpuPolicy-LCBWVGEH.js} +6 -7
  89. package/dist/{grade-compare-ERSA3OUI.js → grade-compare-VS3RP73G.js} +23 -24
  90. package/dist/{help-TW2AADLZ.js → help-AD6FIZIO.js} +1 -1
  91. package/dist/{history-DKGDSVWF.js → history-ZRWYRY7R.js} +5 -5
  92. package/dist/hyperframe-runtime.js +54 -54
  93. package/dist/hyperframe.manifest.json +1 -1
  94. package/dist/hyperframe.runtime.iife.js +54 -54
  95. package/dist/hyperframes-player.global.js +3 -3
  96. package/dist/{info-I3NRRNX4.js → info-WBBQA2AX.js} +7 -7
  97. package/dist/{init-5Y3ZWZNF.js → init-A2XBDFGF.js} +21 -22
  98. package/dist/{inspect-BJQKBB3X.js → inspect-CLTZHA5O.js} +24 -25
  99. package/dist/{installer-27K4JS2I.js → installer-WQDRVXH4.js} +4 -4
  100. package/dist/{keyframes-6V2NZO22.js → keyframes-3FYOK6H6.js} +6 -6
  101. package/dist/{lambda-AIMF3K4A.js → lambda-Y2PA2BGS.js} +4 -4
  102. package/dist/{layout-YAPEBTU4.js → layout-4KP5O7IJ.js} +24 -25
  103. package/dist/{lint-3LWWUIV7.js → lint-V4GRFHOJ.js} +7 -8
  104. package/dist/{lintProject-LM3XZRPZ.js → lintProject-RG2KGAXB.js} +1 -2
  105. package/dist/{list-NTSGEZJ6.js → list-OQ4VED6E.js} +5 -5
  106. package/dist/{login-ZTDFGCCW.js → login-W47NKN5S.js} +20 -24
  107. package/dist/{logout-GJXZQKOA.js → logout-B4KS4A7S.js} +6 -6
  108. package/dist/{media-treatment-ARHX446F.js → media-treatment-HJYL3EME.js} +43 -24
  109. package/dist/{models-VHNQVTHG.js → models-DYBAD2GQ.js} +7 -8
  110. package/dist/{motionShot-35HCSNCI.js → motionShot-7NE2YBB3.js} +12 -13
  111. package/dist/{normalize-audio-AUC73JH3.js → normalize-audio-INKCLMS2.js} +4 -4
  112. package/dist/{open-C5LVNU3U.js → open-TYC5THVY.js} +4 -4
  113. package/dist/{pipeline-4GDTK54T.js → pipeline-EVKEPQEW.js} +6 -7
  114. package/dist/{play-U7UANF7Z.js → play-QMZEM6X3.js} +17 -18
  115. package/dist/{present-X6V6TX3E.js → present-Y7IK3C4W.js} +13 -14
  116. package/dist/{preview-K43RTRU2.js → preview-5OQRYE6A.js} +16 -17
  117. package/dist/{producer-PVMFMW23.js → producer-Q6G6JU7B.js} +1 -1
  118. package/dist/{projectConfig-PI6MEN2T.js → projectConfig-RJN3DKDB.js} +6 -6
  119. package/dist/{publication-67C7KVTL.js → publication-QCPGGN3U.js} +2 -2
  120. package/dist/{publish-RBV7EAMH.js → publish-VZLFIGYY.js} +15 -15
  121. package/dist/{refresh-MFITBIKV.js → refresh-PVHBEABE.js} +2 -2
  122. package/dist/{remove-background-Z2ECZX2Q.js → remove-background-TKOEHBA5.js} +7 -8
  123. package/dist/{render-EFU4BZRZ.js → render-KIIIF6PS.js} +13 -13
  124. package/dist/{render-YBS3XGRJ.js → render-X3NFNVEQ.js} +19 -20
  125. package/dist/{render-2GQMQBU3.js → render-XTXE5CRU.js} +3 -3
  126. package/dist/{render-batch-QC64OTB5.js → render-batch-M55YZLZ5.js} +3 -3
  127. package/dist/{renderCancellation-NTVU7IMB.js → renderCancellation-X5BEHAZU.js} +6 -7
  128. package/dist/renderSetupWorker.js +1 -2
  129. package/dist/{resolver-GBWYG3EI.js → resolver-GAMXRA42.js} +4 -4
  130. package/dist/{screenshotCapture-ECBTLCU6.js → screenshotCapture-TEUIWXWN.js} +53 -33
  131. package/dist/{sherpa-ZW6PWJS4.js → sherpa-ZYTNFHD5.js} +7 -8
  132. package/dist/skills/hyperframes-cli/references/cloud.md +1 -1
  133. package/dist/skills/media-use/SKILL.md +6 -4
  134. package/dist/skills/media-use/audio/scripts/lib/heygen.mjs +47 -4
  135. package/dist/skills/media-use/audio/scripts/lib/heygen.test.mjs +125 -18
  136. package/dist/skills/media-use/references/grading.md +4 -2
  137. package/dist/skills/media-use/references/setup-providers.md +13 -0
  138. package/dist/{skills-VKZAX5AS.js → skills-CZHVAD3J.js} +5 -5
  139. package/dist/{skillsUpdateCheck-PAY2OPDE.js → skillsUpdateCheck-6WLLX53A.js} +3 -3
  140. package/dist/{snapshot-SD5R3NWX.js → snapshot-K7BTJPYQ.js} +24 -25
  141. package/dist/{src-7SSERHNP.js → src-3I3RH3V5.js} +5 -6
  142. package/dist/{src-RXTXL3VL.js → src-YUW26JU5.js} +8 -9
  143. package/dist/{staticProjectServer-XELJXX4J.js → staticProjectServer-IKCSGN2B.js} +13 -14
  144. package/dist/{status-JA6SKQVH.js → status-LXPGSSKY.js} +6 -4
  145. package/dist/studio/assets/hyperframes-player-sAsRuV73.js +473 -0
  146. package/dist/studio/assets/{index-VAHDM_zL.js → index-B-wffzRH.js} +126 -126
  147. package/dist/studio/assets/{index-CWfuDCoA.js → index-D3Vij9t1.js} +1 -1
  148. package/dist/studio/assets/{index-Dr3Bo9uH.js → index-D5q2_7Gw.js} +1 -1
  149. package/dist/studio/index.html +1 -1
  150. package/dist/studio/index.js +46 -15
  151. package/dist/studio/index.js.map +1 -1
  152. package/dist/{studio-api-4FNUZPJ4.js → studio-api-SQ3NXFSM.js} +7 -8
  153. package/dist/{studioServer-GHLL3F2M.js → studioServer-VVEO7XCH.js} +36 -37
  154. package/dist/{telemetry-7AO77PMH.js → telemetry-FQDKR5XA.js} +3 -3
  155. package/dist/{timeline-6LTHSRXM.js → timeline-N6ZASFNE.js} +13 -14
  156. package/dist/{tokens-K6B46KNL.js → tokens-2OIIBBCW.js} +2 -2
  157. package/dist/{transcribe-CLLISRLZ.js → transcribe-4F6MK73N.js} +7 -8
  158. package/dist/{transcribe-K2OU6FZF.js → transcribe-7YTUCXDX.js} +6 -6
  159. package/dist/{updateCheck-X6UQBS6I.js → updateCheck-AZ2COZFR.js} +2 -2
  160. package/dist/{upgrade-BZFKEADI.js → upgrade-QAJEYB4X.js} +2 -2
  161. package/dist/{urlDownloader-VAVUXYEQ.js → urlDownloader-LSMFEO3R.js} +5 -6
  162. package/dist/{validate-VO5KEXWN.js → validate-GW5MDL36.js} +15 -16
  163. package/dist/{video-JV6Y4UJR.js → video-PRNOKUK3.js} +6 -7
  164. package/package.json +1 -1
  165. package/dist/chunk-24OWOBQH.js +0 -3656
  166. package/dist/chunk-B3I3XJ47.js +0 -3711
  167. package/dist/studio/assets/hyperframes-player-BLuyxnK7.js +0 -473
@@ -7,6 +7,9 @@ var __dirname = __hf_dirname(__filename);
7
7
  import {
8
8
  parseCaptureDeadline
9
9
  } from "./chunk-UYEZTK4U.js";
10
+ import {
11
+ DEFAULT_MAX_SCREENSHOTS
12
+ } from "./chunk-P36MALQF.js";
10
13
  import {
11
14
  diag
12
15
  } from "./chunk-VWG7OQKU.js";
@@ -27,11 +30,11 @@ var CAPTURE_PHASE_PREFIX = "HYPERFRAMES_CAPTURE_PHASE ";
27
30
  function emitCapturePhase(event) {
28
31
  diag.notice(`${CAPTURE_PHASE_PREFIX}${JSON.stringify(event)}`);
29
32
  }
30
- function parseCaptureBudget(raw) {
33
+ function parsePositiveInteger(raw, flag, unit = "") {
31
34
  if (raw === void 0) return void 0;
32
35
  const parsed = Number(raw);
33
36
  if (!Number.isInteger(parsed) || parsed <= 0) {
34
- console.error("--capture-budget must be a positive integer in milliseconds.");
37
+ console.error(`${flag} must be a positive integer${unit}.`);
35
38
  failCommand();
36
39
  }
37
40
  return parsed;
@@ -77,7 +80,7 @@ var capture_default = defineCommand({
77
80
  },
78
81
  "max-screenshots": {
79
82
  type: "string",
80
- description: "Maximum screenshots to capture (default: 24)"
83
+ description: `Maximum page-capture files including the full-page plate, excluding derived contact sheets (default: ${DEFAULT_MAX_SCREENSHOTS})`
81
84
  },
82
85
  timeout: {
83
86
  type: "string",
@@ -113,7 +116,7 @@ var capture_default = defineCommand({
113
116
  // fallow-ignore-next-line complexity
114
117
  async run({ args }) {
115
118
  if (args.video) {
116
- const { runVideoMode } = await import("./video-JV6Y4UJR.js");
119
+ const { runVideoMode } = await import("./video-PRNOKUK3.js");
117
120
  await runVideoMode({
118
121
  project: args.video,
119
122
  index: args.index ?? null,
@@ -135,7 +138,15 @@ var capture_default = defineCommand({
135
138
  console.error(`Invalid URL: ${url}`);
136
139
  failCommand();
137
140
  }
138
- const captureBudgetMs = parseCaptureBudget(args["capture-budget"]);
141
+ const captureBudgetMs = parsePositiveInteger(
142
+ args["capture-budget"],
143
+ "--capture-budget",
144
+ " in milliseconds"
145
+ );
146
+ const maxScreenshots = parsePositiveInteger(
147
+ args["max-screenshots"],
148
+ "--max-screenshots"
149
+ );
139
150
  const isDefaultOutput = !args.output;
140
151
  let outputName = args.output ?? "capture";
141
152
  let outputDir = resolve(outputName);
@@ -162,7 +173,8 @@ var capture_default = defineCommand({
162
173
  }
163
174
  console.log();
164
175
  }
165
- const { captureWebsite } = await import("./capture-EHOMO4MP.js");
176
+ const { captureWebsite } = await import("./capture-HEJS6M5A.js");
177
+ let captureFailed = false;
166
178
  try {
167
179
  const result = await captureWebsite(
168
180
  {
@@ -170,7 +182,7 @@ var capture_default = defineCommand({
170
182
  outputDir,
171
183
  skipAssets: args["skip-assets"],
172
184
  skipVision: args["skip-vision"],
173
- maxScreenshots: args["max-screenshots"] ? parseInt(args["max-screenshots"]) : void 0,
185
+ maxScreenshots,
174
186
  timeout: args.timeout ? parseInt(args.timeout) : void 0,
175
187
  postNavigationBudgetMs: captureBudgetMs,
176
188
  captureDeadlineMs: parseCaptureDeadline(process.env.HYPERFRAMES_CAPTURE_DEADLINE_MS),
@@ -192,6 +204,7 @@ var capture_default = defineCommand({
192
204
  console.log(detail ? `${label} ${detail}` : label);
193
205
  }
194
206
  );
207
+ captureFailed = !result.ok;
195
208
  if (isJson) {
196
209
  console.log(
197
210
  JSON.stringify(
@@ -220,7 +233,9 @@ var capture_default = defineCommand({
220
233
  } else {
221
234
  const { c } = await import("./colors-HKWSZCGK.js");
222
235
  console.log();
223
- console.log(c.success("\u25C7") + ` Captured ${c.bold(result.title)} \u2192 ${c.dim(outputDir)}`);
236
+ const icon = result.ok ? c.success("\u25C7") : c.error("\u2717");
237
+ const status = result.ok ? "Captured" : "Capture failed";
238
+ console.log(icon + ` ${status} ${c.bold(result.title)} \u2192 ${c.dim(outputDir)}`);
224
239
  console.log();
225
240
  console.log(` ${c.dim("Screenshots:")} ${result.screenshots.length}`);
226
241
  console.log(` ${c.dim("Assets:")} ${result.assets.length}`);
@@ -282,6 +297,7 @@ URL: ${url}
282
297
  }
283
298
  failCommand();
284
299
  }
300
+ if (captureFailed) failCommand();
285
301
  }
286
302
  });
287
303
  export {
@@ -11,30 +11,30 @@ import {
11
11
  } from "./chunk-3DKN5WKL.js";
12
12
  import {
13
13
  runAdd
14
- } from "./chunk-ABJNXQUA.js";
15
- import "./chunk-DQNOPYAG.js";
14
+ } from "./chunk-IMY4QQTQ.js";
15
+ import "./chunk-BPZVDBHY.js";
16
16
  import {
17
17
  DEFAULT_PROJECT_CONFIG,
18
18
  loadProjectConfig
19
- } from "./chunk-KMKWRIMC.js";
19
+ } from "./chunk-EFDXGAAD.js";
20
20
  import "./chunk-XT7X6QCP.js";
21
21
  import "./chunk-4YYJOFKS.js";
22
22
  import "./chunk-HVW7ABXD.js";
23
23
  import "./chunk-6BEFEWFB.js";
24
24
  import {
25
25
  loadAllItems
26
- } from "./chunk-ASW6NWON.js";
27
- import "./chunk-VVJFZU6B.js";
26
+ } from "./chunk-JOTLPC6S.js";
27
+ import "./chunk-75JJVANE.js";
28
28
  import {
29
29
  fetchRegistryManifest
30
- } from "./chunk-5IKJONRY.js";
30
+ } from "./chunk-QXPCARFE.js";
31
31
  import "./chunk-AWDFDFI3.js";
32
32
  import "./chunk-P6LJ4Y32.js";
33
33
  import {
34
34
  downloadFile
35
35
  } from "./chunk-WCJGTLPF.js";
36
- import "./chunk-JSGANFFH.js";
37
- import "./chunk-C2JUHIG5.js";
36
+ import "./chunk-XGMNQQTJ.js";
37
+ import "./chunk-LBKDQKWV.js";
38
38
  import "./chunk-VWG7OQKU.js";
39
39
  import "./chunk-GQJZORQP.js";
40
40
  import "./chunk-AMKC3AXA.js";
@@ -53,10 +53,10 @@ import {
53
53
  finishCommand
54
54
  } from "./chunk-PBN6GBJE.js";
55
55
  import "./chunk-USDEMXXL.js";
56
- import "./chunk-QP3BRKGF.js";
56
+ import "./chunk-YFT3BL7N.js";
57
57
  import "./chunk-OZUQF4NB.js";
58
58
  import "./chunk-DPVXBVLL.js";
59
- import "./chunk-B3I3XJ47.js";
59
+ import "./chunk-J4UX3RS3.js";
60
60
  import "./chunk-VC76R6W2.js";
61
61
  import "./chunk-YA62XGXS.js";
62
62
  import {
@@ -79,7 +79,7 @@ import {
79
79
  isAttendedTerminal
80
80
  } from "./chunk-WERLJGIC.js";
81
81
  import "./chunk-ISN5GRYI.js";
82
- import "./chunk-MUINFURL.js";
82
+ import "./chunk-DZEVA7DI.js";
83
83
  import "./chunk-KNU5COPB.js";
84
84
  import {
85
85
  c
@@ -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-PB3P4MKP.js";
9
+ } from "./chunk-LJAU4TPS.js";
10
10
  import "./chunk-IHFUKJOR.js";
11
11
  import {
12
12
  filesChangedSince,
@@ -15,8 +15,8 @@ import {
15
15
  unseenTurns
16
16
  } from "./chunk-DCAI5DBR.js";
17
17
  import "./chunk-EOVYQ3IG.js";
18
- import "./chunk-JSGANFFH.js";
19
- import "./chunk-C2JUHIG5.js";
18
+ import "./chunk-XGMNQQTJ.js";
19
+ import "./chunk-LBKDQKWV.js";
20
20
  import "./chunk-VWG7OQKU.js";
21
21
  import "./chunk-GQJZORQP.js";
22
22
  import "./chunk-AMKC3AXA.js";
@@ -33,7 +33,7 @@ import "./chunk-K4WIOZFP.js";
33
33
  import "./chunk-XUXGIA7H.js";
34
34
  import "./chunk-WERLJGIC.js";
35
35
  import "./chunk-ISN5GRYI.js";
36
- import "./chunk-MUINFURL.js";
36
+ import "./chunk-DZEVA7DI.js";
37
37
  import "./chunk-KNU5COPB.js";
38
38
  import {
39
39
  c
@@ -16,57 +16,61 @@ import {
16
16
  dedupeLayoutIssues,
17
17
  evaluateMotion,
18
18
  findMotionSpec,
19
+ findingElementKey,
20
+ formatFindingTimes,
19
21
  formatLayoutIssue,
22
+ groupSampledFindings,
20
23
  limitLayoutIssues,
24
+ longestContiguousRunMs,
21
25
  mergeSampleTimes,
22
26
  parseAt,
23
27
  readMotionSpec
24
- } from "./chunk-2GMKWYEH.js";
28
+ } from "./chunk-B6SMSALD.js";
25
29
  import {
26
30
  loadProducer
27
- } from "./chunk-BJ5JWOES.js";
31
+ } from "./chunk-XTLBLWOV.js";
28
32
  import {
29
33
  trackLintRun
30
- } from "./chunk-WQBA3MH4.js";
31
- import "./chunk-PFJFHNU3.js";
34
+ } from "./chunk-H2X52H2N.js";
35
+ import "./chunk-LQASVU3I.js";
32
36
  import "./chunk-XUHOIDKG.js";
33
37
  import "./chunk-X7MTZ4T2.js";
34
- import "./chunk-KJLY2SDJ.js";
38
+ import "./chunk-LTGGTEMA.js";
35
39
  import {
36
40
  resolveProject
37
- } from "./chunk-PB3P4MKP.js";
38
- import "./chunk-KFQNMY36.js";
41
+ } from "./chunk-LJAU4TPS.js";
42
+ import "./chunk-WSGY5CDQ.js";
39
43
  import "./chunk-5Z63TBTX.js";
40
- import "./chunk-BQKEGPPL.js";
41
- import "./chunk-TYT2TLJR.js";
44
+ import "./chunk-OSUKETIH.js";
45
+ import "./chunk-TY6XOHEM.js";
42
46
  import "./chunk-YEIFI443.js";
43
47
  import "./chunk-IHFUKJOR.js";
44
- import "./chunk-MHK5DE2P.js";
45
- import "./chunk-QBK7WKHT.js";
48
+ import "./chunk-YHRZQJXH.js";
49
+ import "./chunk-OKCR3JTO.js";
46
50
  import "./chunk-QZ3AZTXI.js";
47
51
  import "./chunk-U7E736AJ.js";
48
- import "./chunk-MTVDXB6S.js";
52
+ import "./chunk-6UM3R7PP.js";
49
53
  import "./chunk-G75ENCEZ.js";
50
54
  import "./chunk-EOVYQ3IG.js";
51
55
  import {
52
56
  resolveLocalBrowserGpuMode
53
- } from "./chunk-PE2I3AFA.js";
57
+ } from "./chunk-WTMUCJ6Z.js";
54
58
  import "./chunk-PFCFR3KZ.js";
55
- import "./chunk-KMKWRIMC.js";
59
+ import "./chunk-EFDXGAAD.js";
56
60
  import "./chunk-XT7X6QCP.js";
57
61
  import "./chunk-4YYJOFKS.js";
58
62
  import "./chunk-HVW7ABXD.js";
59
- import "./chunk-ASW6NWON.js";
60
- import "./chunk-VVJFZU6B.js";
61
- import "./chunk-5IKJONRY.js";
63
+ import "./chunk-JOTLPC6S.js";
64
+ import "./chunk-75JJVANE.js";
65
+ import "./chunk-QXPCARFE.js";
62
66
  import "./chunk-AWDFDFI3.js";
63
67
  import "./chunk-P6LJ4Y32.js";
64
68
  import "./chunk-374QQGBQ.js";
65
69
  import {
66
70
  trackCheckReport,
67
71
  trackCommandFailure
68
- } from "./chunk-JSGANFFH.js";
69
- import "./chunk-C2JUHIG5.js";
72
+ } from "./chunk-XGMNQQTJ.js";
73
+ import "./chunk-LBKDQKWV.js";
70
74
  import "./chunk-VWG7OQKU.js";
71
75
  import "./chunk-GQJZORQP.js";
72
76
  import "./chunk-AMKC3AXA.js";
@@ -86,14 +90,14 @@ import "./chunk-TJSTGSAW.js";
86
90
  import {
87
91
  extractMediaMetadata,
88
92
  findHdrAutoPromotion
89
- } from "./chunk-TPECLKPA.js";
90
- import "./chunk-6U3MN4HW.js";
93
+ } from "./chunk-IDX52YJN.js";
94
+ import "./chunk-DPHJKWP5.js";
91
95
  import "./chunk-A4KQZXZI.js";
92
96
  import "./chunk-USDEMXXL.js";
93
- import "./chunk-QP3BRKGF.js";
97
+ import "./chunk-YFT3BL7N.js";
94
98
  import "./chunk-OZUQF4NB.js";
95
99
  import "./chunk-DPVXBVLL.js";
96
- import "./chunk-B3I3XJ47.js";
100
+ import "./chunk-J4UX3RS3.js";
97
101
  import "./chunk-VC76R6W2.js";
98
102
  import "./chunk-YA62XGXS.js";
99
103
  import "./chunk-OFQWTKPW.js";
@@ -105,8 +109,7 @@ import "./chunk-TWWSYAKJ.js";
105
109
  import {
106
110
  lintProject,
107
111
  shouldBlockRender
108
- } from "./chunk-WY5OODN5.js";
109
- import "./chunk-24OWOBQH.js";
112
+ } from "./chunk-IW2CKH6A.js";
110
113
  import {
111
114
  resolveProjectRelativeSrc
112
115
  } from "./chunk-JFKL3WAE.js";
@@ -118,12 +121,12 @@ import "./chunk-2PSPARWP.js";
118
121
  import "./chunk-PMRBLBUP.js";
119
122
  import {
120
123
  withMeta
121
- } from "./chunk-DDQ4LOML.js";
124
+ } from "./chunk-JLKMWY2T.js";
122
125
  import "./chunk-K4WIOZFP.js";
123
126
  import "./chunk-XUXGIA7H.js";
124
127
  import "./chunk-WERLJGIC.js";
125
128
  import "./chunk-ISN5GRYI.js";
126
- import "./chunk-MUINFURL.js";
129
+ import "./chunk-DZEVA7DI.js";
127
130
  import {
128
131
  normalizeErrorMessage
129
132
  } from "./chunk-KNU5COPB.js";
@@ -139,7 +142,7 @@ import { join, relative } from "path";
139
142
 
140
143
  // src/utils/hdrPromotion.ts
141
144
  async function bundleProjectHtml(projectDir) {
142
- const { bundleToSingleHtml } = await import("./compiler-RTU3KTLF.js");
145
+ const { bundleToSingleHtml } = await import("./compiler-VTH2D3ID.js");
143
146
  return bundleToSingleHtml(projectDir);
144
147
  }
145
148
  async function collectBundledRenderMedia(html) {
@@ -343,15 +346,12 @@ function captionFinding(candidate, options, canvas, time) {
343
346
  const text = candidate.text.slice(0, 48);
344
347
  const pctFromBottom = Math.round((canvas.height - cy) / canvas.height * 100);
345
348
  return {
346
- key: `${candidate.tag}|${text}`,
347
- issue: {
348
- ...geometryIssueAnchor(candidate, time),
349
- code: "caption_zone_collision",
350
- severity: zone.severity === "error" ? "error" : "warning",
351
- text,
352
- message: `<${candidate.tag}> "${text}" overlaps the reserved caption band (~${pctFromBottom}% up from the bottom).`,
353
- fixHint: "Keep main content outside the configured caption band, or mark intentional lower-third copy with data-layout-allow-caption-zone."
354
- }
349
+ ...geometryIssueAnchor(candidate, time),
350
+ code: "caption_zone_collision",
351
+ severity: zone.severity === "error" ? "error" : "warning",
352
+ text,
353
+ message: `<${candidate.tag}> "${text}" overlaps the reserved caption band (~${pctFromBottom}% up from the bottom).`,
354
+ fixHint: "Keep main content outside the configured caption band, or mark intentional lower-third copy with data-layout-allow-caption-zone."
355
355
  };
356
356
  }
357
357
  function maxOverflow(candidate) {
@@ -383,34 +383,28 @@ function frameFinding(candidate, options, canvas, time) {
383
383
  if (maxOverflow(candidate) < floor) return null;
384
384
  const text = candidate.text.slice(0, 48);
385
385
  return {
386
- key: `${candidate.tag}|${text}|${Math.round(candidate.rect.left)},${Math.round(candidate.rect.top)}`,
387
- issue: {
388
- ...geometryIssueAnchor(candidate, time),
389
- code: "frame_out_of_frame",
390
- severity: options.frameCheck.severity === "error" ? "error" : "warning",
391
- text,
392
- overflow: candidate.overflow,
393
- message: overflowMessage(candidate),
394
- fixHint: "Keep media within the composition frame's safe area."
395
- }
386
+ ...geometryIssueAnchor(candidate, time),
387
+ code: "frame_out_of_frame",
388
+ severity: options.frameCheck.severity === "error" ? "error" : "warning",
389
+ text,
390
+ overflow: candidate.overflow,
391
+ message: overflowMessage(candidate),
392
+ fixHint: "Keep media within the composition frame's safe area."
396
393
  };
397
394
  }
398
- function appendGeometryFinding(result, seen, issues) {
399
- if (!result || seen.has(result.key)) return;
400
- seen.add(result.key);
401
- issues.push(result.issue);
402
- }
403
- async function collectGeometryAt(driver, options, grid, canvas, time, seen) {
395
+ async function collectGeometryAt(driver, options, grid, canvas, time) {
404
396
  const request = geometryRequest(time, grid, options);
405
397
  if (!request) return [];
406
398
  const candidates = await driver.collectGeometryCandidates(time, request);
407
399
  const issues = [];
408
400
  for (const candidate of candidates) {
409
401
  if (request.text) {
410
- appendGeometryFinding(captionFinding(candidate, options, canvas, time), seen.caption, issues);
402
+ const finding = captionFinding(candidate, options, canvas, time);
403
+ if (finding) issues.push(finding);
411
404
  }
412
405
  if (request.media) {
413
- appendGeometryFinding(frameFinding(candidate, options, canvas, time), seen.frame, issues);
406
+ const finding = frameFinding(candidate, options, canvas, time);
407
+ if (finding) issues.push(finding);
414
408
  }
415
409
  }
416
410
  return issues;
@@ -421,7 +415,6 @@ async function collectGridSamples(driver, options, grid, motion) {
421
415
  const contrastSet = new Set(grid.contrastSamples);
422
416
  const geometryEnabled = grid.captionSamples.length > 0 || grid.frameSamples.length > 0;
423
417
  const canvas = geometryEnabled ? await driver.getCanvas() : null;
424
- const geometrySeen = { caption: /* @__PURE__ */ new Set(), frame: /* @__PURE__ */ new Set() };
425
418
  const collected = {
426
419
  layoutIssues: [],
427
420
  motionFrames: [],
@@ -447,14 +440,7 @@ async function collectGridSamples(driver, options, grid, motion) {
447
440
  collected.indicatorFrames.push(await driver.collectOffPivotRotationSample(time));
448
441
  }
449
442
  if (canvas) {
450
- const geometryIssues = await collectGeometryAt(
451
- driver,
452
- options,
453
- grid,
454
- canvas,
455
- time,
456
- geometrySeen
457
- );
443
+ const geometryIssues = await collectGeometryAt(driver, options, grid, canvas, time);
458
444
  collected.layoutIssues.push(...geometryIssues);
459
445
  issuesAtTime.push(...geometryIssues);
460
446
  }
@@ -1036,12 +1022,12 @@ function contrastFailureHeld(entries) {
1036
1022
  const failureSamples = /* @__PURE__ */ new Map();
1037
1023
  for (const entry of entries) {
1038
1024
  if (entry.wcagAA) continue;
1039
- const key = `${entry.selector}|${entry.text}`;
1025
+ const key = findingElementKey(entry);
1040
1026
  const times = failureSamples.get(key) ?? /* @__PURE__ */ new Set();
1041
1027
  times.add(entry.time);
1042
1028
  failureSamples.set(key, times);
1043
1029
  }
1044
- return (entry) => sampledTimes < 2 || (failureSamples.get(`${entry.selector}|${entry.text}`)?.size ?? 0) >= 2;
1030
+ return (entry) => sampledTimes < 2 || (failureSamples.get(findingElementKey(entry))?.size ?? 0) >= 2;
1045
1031
  }
1046
1032
  function buildContrastResults(entries) {
1047
1033
  const findings = [];
@@ -1072,7 +1058,13 @@ function buildContrastResults(entries) {
1072
1058
  time: entry.time
1073
1059
  });
1074
1060
  }
1075
- return { findings, passed };
1061
+ return {
1062
+ findings: groupSampledFindings(
1063
+ findings,
1064
+ (next, current) => current.ratio / current.requiredRatio - next.ratio / next.requiredRatio
1065
+ ),
1066
+ passed
1067
+ };
1076
1068
  }
1077
1069
  function suggestedColor(fg, bg, requiredRatio) {
1078
1070
  const foreground = parseColorRGBA(fg);
@@ -1179,7 +1171,18 @@ function shapeLayoutSection(issues, browser, options) {
1179
1171
  function shapeLayoutFindings(issues, options, totalSampleCount) {
1180
1172
  const deduped = dedupeLayoutIssues(issues);
1181
1173
  const all = options.collapseStatic ? collapseStaticLayoutIssues(deduped, totalSampleCount) : deduped;
1182
- const limited = limitLayoutIssues(all, options.maxIssues);
1174
+ const anchored = all.map(ensureAnchoredLayoutIssue);
1175
+ let grouped = anchored;
1176
+ if (options.collapseStatic) {
1177
+ grouped = groupSampledFindings(anchored).map((finding) => ({
1178
+ ...finding,
1179
+ firstSeen: finding.times[0] ?? finding.time,
1180
+ lastSeen: finding.times.at(-1) ?? finding.time,
1181
+ occurrences: finding.times.length,
1182
+ heldMs: longestContiguousRunMs(finding.times)
1183
+ }));
1184
+ }
1185
+ const limited = limitLayoutIssues(grouped, options.maxIssues);
1183
1186
  return {
1184
1187
  findings: limited.issues.map(ensureAnchoredLayoutIssue),
1185
1188
  totalIssueCount: limited.totalIssueCount,
@@ -1265,7 +1268,7 @@ function resolveMotionSpec(projectDir) {
1265
1268
  };
1266
1269
  }
1267
1270
  async function runBrowserCheck(project, options, motion) {
1268
- const module = await import("./checkBrowser-6EK5E4PG.js");
1271
+ const module = await import("./checkBrowser-J7HZJTRH.js");
1269
1272
  return module.runBrowserCheck(project, options, motion, runAuditGrid);
1270
1273
  }
1271
1274
  async function writeSnapshot(projectDir, index, time, pngBase64) {
@@ -1277,7 +1280,7 @@ async function writeSnapshot(projectDir, index, time, pngBase64) {
1277
1280
  return join("snapshots", filename);
1278
1281
  }
1279
1282
  async function captureFindingCrops(project, options, requests) {
1280
- const module = await import("./checkBrowser-6EK5E4PG.js");
1283
+ const module = await import("./checkBrowser-J7HZJTRH.js");
1281
1284
  return module.captureFindingCrops(project, options, requests);
1282
1285
  }
1283
1286
  var DEFAULT_DEPENDENCIES2 = {
@@ -1667,7 +1670,7 @@ function printContrastSection(report) {
1667
1670
  }
1668
1671
  for (const finding of section2.findings) {
1669
1672
  console.log(
1670
- ` ${c.error("\u2717")} ${finding.selector} ${finding.ratio}:1 (need ${finding.requiredRatio}:1, t=${finding.time}s)`
1673
+ ` ${c.error("\u2717")} ${finding.selector} ${finding.ratio}:1 (need ${finding.requiredRatio}:1, ${formatFindingTimes(finding)})`
1671
1674
  );
1672
1675
  console.log(` ${c.dim(`Try ${finding.suggestedColor}; source ${finding.sourceFile}`)}`);
1673
1676
  }
@@ -1690,7 +1693,7 @@ function printSnapshotSection(report) {
1690
1693
  }
1691
1694
  }
1692
1695
  function printFinding(finding) {
1693
- const where = `${finding.sourceFile} ${finding.selector} t=${finding.time}s`;
1696
+ const where = `${finding.sourceFile} ${finding.selector} ${formatFindingTimes(finding)}`;
1694
1697
  console.log(` ${findingIcon(finding)} ${finding.code}: ${finding.message}`);
1695
1698
  console.log(` ${c.dim(where)}`);
1696
1699
  if (finding.fixHint) console.log(` ${c.dim(`Fix: ${finding.fixHint}`)}`);
@@ -8,21 +8,21 @@ import {
8
8
  auditClipDurations,
9
9
  shouldIgnoreHttpError,
10
10
  shouldIgnoreRequestFailure
11
- } from "./chunk-PUBKHEEA.js";
11
+ } from "./chunk-GYE63V4P.js";
12
12
  import {
13
13
  rectToBbox
14
14
  } from "./chunk-WBLXWOYK.js";
15
15
  import {
16
16
  ambiguousIssue,
17
17
  loadBrowserScript
18
- } from "./chunk-2GMKWYEH.js";
18
+ } from "./chunk-B6SMSALD.js";
19
19
  import {
20
20
  serveStaticProjectHtml
21
- } from "./chunk-PFJFHNU3.js";
21
+ } from "./chunk-LQASVU3I.js";
22
22
  import "./chunk-XUHOIDKG.js";
23
23
  import "./chunk-X7MTZ4T2.js";
24
- import "./chunk-KJLY2SDJ.js";
25
- import "./chunk-PB3P4MKP.js";
24
+ import "./chunk-LTGGTEMA.js";
25
+ import "./chunk-LJAU4TPS.js";
26
26
  import {
27
27
  AUDIT_SEEK_OPTIONS,
28
28
  DEFAULT_ZOOM_PADDING_PX,
@@ -34,14 +34,14 @@ import {
34
34
  resolveCliChromeGpuMode,
35
35
  seekCompositionTimeline,
36
36
  waitForPreferredSeekTarget
37
- } from "./chunk-KFQNMY36.js";
37
+ } from "./chunk-WSGY5CDQ.js";
38
38
  import "./chunk-5Z63TBTX.js";
39
- import "./chunk-BQKEGPPL.js";
40
- import "./chunk-TYT2TLJR.js";
39
+ import "./chunk-OSUKETIH.js";
40
+ import "./chunk-TY6XOHEM.js";
41
41
  import "./chunk-YEIFI443.js";
42
42
  import "./chunk-IHFUKJOR.js";
43
- import "./chunk-MHK5DE2P.js";
44
- import "./chunk-QBK7WKHT.js";
43
+ import "./chunk-YHRZQJXH.js";
44
+ import "./chunk-OKCR3JTO.js";
45
45
  import "./chunk-QZ3AZTXI.js";
46
46
  import "./chunk-U7E736AJ.js";
47
47
  import {
@@ -49,25 +49,25 @@ import {
49
49
  proxyVariantFor,
50
50
  resolveProxy,
51
51
  scanProjectMediaCodecMap
52
- } from "./chunk-MTVDXB6S.js";
52
+ } from "./chunk-6UM3R7PP.js";
53
53
  import "./chunk-G75ENCEZ.js";
54
54
  import "./chunk-EOVYQ3IG.js";
55
- import "./chunk-PE2I3AFA.js";
55
+ import "./chunk-WTMUCJ6Z.js";
56
56
  import "./chunk-PFCFR3KZ.js";
57
57
  import {
58
58
  resolveAutoProxy
59
- } from "./chunk-KMKWRIMC.js";
59
+ } from "./chunk-EFDXGAAD.js";
60
60
  import "./chunk-XT7X6QCP.js";
61
61
  import "./chunk-4YYJOFKS.js";
62
62
  import "./chunk-HVW7ABXD.js";
63
- import "./chunk-ASW6NWON.js";
64
- import "./chunk-VVJFZU6B.js";
65
- import "./chunk-5IKJONRY.js";
63
+ import "./chunk-JOTLPC6S.js";
64
+ import "./chunk-75JJVANE.js";
65
+ import "./chunk-QXPCARFE.js";
66
66
  import "./chunk-AWDFDFI3.js";
67
67
  import "./chunk-P6LJ4Y32.js";
68
68
  import "./chunk-374QQGBQ.js";
69
- import "./chunk-JSGANFFH.js";
70
- import "./chunk-C2JUHIG5.js";
69
+ import "./chunk-XGMNQQTJ.js";
70
+ import "./chunk-LBKDQKWV.js";
71
71
  import "./chunk-VWG7OQKU.js";
72
72
  import "./chunk-GQJZORQP.js";
73
73
  import "./chunk-AMKC3AXA.js";
@@ -77,14 +77,14 @@ import "./chunk-54HJ63Q2.js";
77
77
  import "./chunk-PBN6GBJE.js";
78
78
  import "./chunk-KC5XXX3X.js";
79
79
  import "./chunk-TJSTGSAW.js";
80
- import "./chunk-TPECLKPA.js";
81
- import "./chunk-6U3MN4HW.js";
80
+ import "./chunk-IDX52YJN.js";
81
+ import "./chunk-DPHJKWP5.js";
82
82
  import "./chunk-A4KQZXZI.js";
83
83
  import "./chunk-USDEMXXL.js";
84
- import "./chunk-QP3BRKGF.js";
84
+ import "./chunk-YFT3BL7N.js";
85
85
  import "./chunk-OZUQF4NB.js";
86
86
  import "./chunk-DPVXBVLL.js";
87
- import "./chunk-B3I3XJ47.js";
87
+ import "./chunk-J4UX3RS3.js";
88
88
  import "./chunk-VC76R6W2.js";
89
89
  import "./chunk-YA62XGXS.js";
90
90
  import "./chunk-OFQWTKPW.js";
@@ -92,8 +92,7 @@ import "./chunk-T76PLPD6.js";
92
92
  import "./chunk-FXMKHHPO.js";
93
93
  import "./chunk-RQVDTPGD.js";
94
94
  import "./chunk-TWWSYAKJ.js";
95
- import "./chunk-WY5OODN5.js";
96
- import "./chunk-24OWOBQH.js";
95
+ import "./chunk-IW2CKH6A.js";
97
96
  import "./chunk-JFKL3WAE.js";
98
97
  import "./chunk-HBBJFK6I.js";
99
98
  import "./chunk-PJ3HDUCY.js";
@@ -101,12 +100,12 @@ import "./chunk-TQFG7HTI.js";
101
100
  import "./chunk-GK4AIFIH.js";
102
101
  import "./chunk-2PSPARWP.js";
103
102
  import "./chunk-PMRBLBUP.js";
104
- import "./chunk-DDQ4LOML.js";
103
+ import "./chunk-JLKMWY2T.js";
105
104
  import "./chunk-K4WIOZFP.js";
106
105
  import "./chunk-XUXGIA7H.js";
107
106
  import "./chunk-WERLJGIC.js";
108
107
  import "./chunk-ISN5GRYI.js";
109
- import "./chunk-MUINFURL.js";
108
+ import "./chunk-DZEVA7DI.js";
110
109
  import {
111
110
  normalizeErrorMessage
112
111
  } from "./chunk-KNU5COPB.js";
@@ -148,7 +147,7 @@ async function preResolveHostileMediaProxies(projectDir, html, autoProxyOverride
148
147
  );
149
148
  }
150
149
  async function runBrowserCheck(project, options, motion, runGrid) {
151
- const { bundleWithLocalizedFonts } = await import("./bundleWithLocalizedFonts-6PJP54TC.js");
150
+ const { bundleWithLocalizedFonts } = await import("./bundleWithLocalizedFonts-DDMLLL2R.js");
152
151
  const html = await bundleWithLocalizedFonts(project.dir);
153
152
  await preResolveHostileMediaProxies(project.dir, html, options.autoProxy);
154
153
  const server = await serveStaticProjectHtml(
@@ -175,7 +174,7 @@ async function runBrowserCheck(project, options, motion, runGrid) {
175
174
  await waitForPreferredSeekTarget(page);
176
175
  const rootAnchor = await resolveRootAnchor(page);
177
176
  const launchSettleMs = Date.now() - launchSettleStart;
178
- const { analyzeClipMediaFit } = await import("./src-7SSERHNP.js");
177
+ const { analyzeClipMediaFit } = await import("./src-3I3RH3V5.js");
179
178
  for (const entry of await auditClipDurations(page, analyzeClipMediaFit, options.timeout)) {
180
179
  drafts.push({ code: "clip_media_fit", severity: entry.level, message: entry.text, time: 0 });
181
180
  }
@@ -198,7 +197,7 @@ async function runBrowserCheck(project, options, motion, runGrid) {
198
197
  }
199
198
  async function captureFindingCrops(project, options, requests) {
200
199
  if (requests.length === 0) return [];
201
- const { bundleWithLocalizedFonts } = await import("./bundleWithLocalizedFonts-6PJP54TC.js");
200
+ const { bundleWithLocalizedFonts } = await import("./bundleWithLocalizedFonts-DDMLLL2R.js");
202
201
  const html = await bundleWithLocalizedFonts(project.dir);
203
202
  const server = await serveStaticProjectHtml(
204
203
  project.dir,
@@ -10,7 +10,7 @@ import {
10
10
  hasPreservedUnknownData,
11
11
  readStore,
12
12
  writeStore
13
- } from "./chunk-246MOR5U.js";
13
+ } from "./chunk-DKSDVDXG.js";
14
14
 
15
15
  // src/auth/user.ts
16
16
  function isUserInfoEmpty(u) {