hyperframes 0.8.171 → 0.8.173

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 (159) hide show
  1. package/dist/{add-VMMGTSGT.js → add-V7VBTFNG.js} +12 -12
  2. package/dist/{animatedGifPrep-MVP5LCEM.js → animatedGifPrep-62S72ZY6.js} +8 -8
  3. package/dist/api.js +14 -14
  4. package/dist/{asset-ZERIT5FT.js → asset-Z4JI2F6V.js} +2 -2
  5. package/dist/{assetCataloger-RN5A2SVA.js → assetCataloger-Q7LE7BCC.js} +8 -8
  6. package/dist/{audio-RQUGFWYT.js → audio-HIHNLQJ7.js} +17 -16
  7. package/dist/{auth-I3FNB6N2.js → auth-4K6DSZCD.js} +1 -1
  8. package/dist/{autoUpdate-IBAS4JVK.js → autoUpdate-DXZDD5VT.js} +2 -2
  9. package/dist/{backgroundChecks-7UQBIPQC.js → backgroundChecks-ODMKKJ4S.js} +3 -3
  10. package/dist/backgroundChecksWorker.js +3 -3
  11. package/dist/{batchRender-KWBVAUE3.js → batchRender-I4BFJGPA.js} +4 -4
  12. package/dist/{beats-F2GFGFCV.js → beats-7QCA6GDR.js} +4 -4
  13. package/dist/{benchmark-XPQYX3OX.js → benchmark-IT4WTSMZ.js} +9 -9
  14. package/dist/{browser-QCV62F7R.js → browser-5VHM72PM.js} +3 -3
  15. package/dist/{bundleWithLocalizedFonts-42V34HJF.js → bundleWithLocalizedFonts-MKTQCB2Y.js} +2 -2
  16. package/dist/{capture-OKPMCIAC.js → capture-B5Y45EWD.js} +12 -12
  17. package/dist/{capture-WE32B5UZ.js → capture-CMNNIMIL.js} +2 -2
  18. package/dist/{catalog-2LWFMJM3.js → catalog-AKPJ65GY.js} +12 -12
  19. package/dist/{catch-up-OWUGMOBS.js → catch-up-2SVYRMD3.js} +4 -4
  20. package/dist/{check-7BK6UM3M.js → check-Q7AX6K7O.js} +35 -35
  21. package/dist/{checkBrowser-VG745SEX.js → checkBrowser-CPXD5BZY.js} +32 -32
  22. package/dist/{chunk-X3U6KEID.js → chunk-2BL7BJ22.js} +1 -1
  23. package/dist/{chunk-77QCYRQH.js → chunk-2DWYRHJS.js} +2 -2
  24. package/dist/{chunk-T5LGOTQR.js → chunk-2QJDC4NT.js} +1 -1
  25. package/dist/{chunk-PLWORQFC.js → chunk-2TNPXPI5.js} +2 -2
  26. package/dist/{chunk-7YZSOHSC.js → chunk-2YTOJ447.js} +3 -3
  27. package/dist/{chunk-4QIJFIR5.js → chunk-3O45NOL7.js} +1 -1
  28. package/dist/{chunk-AAYNQ7WL.js → chunk-45IAFBUP.js} +15 -17
  29. package/dist/{chunk-RSW6LGGW.js → chunk-4D2T6Y5Y.js} +3 -3
  30. package/dist/{chunk-ZBUGFQ7Y.js → chunk-4RDDUBOC.js} +7 -7
  31. package/dist/{chunk-JMJTXBVF.js → chunk-5E43335V.js} +1 -1
  32. package/dist/{chunk-GU5FLCZV.js → chunk-5JTRGGTX.js} +1 -1
  33. package/dist/{chunk-IWFLMU2N.js → chunk-6BNTGNGD.js} +56 -16
  34. package/dist/{chunk-L32QQH2K.js → chunk-6HKO6VWS.js} +1 -1
  35. package/dist/{chunk-A3SQJCPU.js → chunk-6JQDH4O6.js} +1 -1
  36. package/dist/{chunk-D2QELIQB.js → chunk-6RIH2NDU.js} +9 -13
  37. package/dist/chunk-7JDEZNBY.js +3805 -0
  38. package/dist/{chunk-EDUBJPGL.js → chunk-BCPJSBCS.js} +28 -6
  39. package/dist/{chunk-WICIV6R3.js → chunk-BRHI7EIA.js} +3 -5
  40. package/dist/{chunk-CO6V4KXX.js → chunk-BTPZ74Z3.js} +1 -1
  41. package/dist/{chunk-6I24ZSCR.js → chunk-BYRHCRU3.js} +1 -1
  42. package/dist/{chunk-CSABTZ6S.js → chunk-BYVBP3U5.js} +12 -12
  43. package/dist/{chunk-4RXJG3SY.js → chunk-C4QGOXO2.js} +10 -10
  44. package/dist/{chunk-JAERN4RH.js → chunk-CBOYQOLY.js} +1 -1
  45. package/dist/{chunk-EDGJ2OMH.js → chunk-CHALU2TF.js} +1 -1
  46. package/dist/{chunk-5HLJ4JMB.js → chunk-ETPPGNJB.js} +1 -1
  47. package/dist/{chunk-IWLOARQZ.js → chunk-FDWTZVA6.js} +1 -1
  48. package/dist/{chunk-UUP4KOMD.js → chunk-H5C375DW.js} +10 -6
  49. package/dist/{chunk-PECICVTJ.js → chunk-HCOL75LA.js} +2 -2
  50. package/dist/{chunk-PXA4S6OE.js → chunk-KR5ZHRF2.js} +2 -2
  51. package/dist/{chunk-KUW4LWY6.js → chunk-KRWEUM4R.js} +1 -1
  52. package/dist/{chunk-XGFYN53T.js → chunk-L3RCYYON.js} +2 -2
  53. package/dist/{chunk-AWSVUIWG.js → chunk-L4SFGSSQ.js} +1 -1
  54. package/dist/{chunk-V2T7FFPB.js → chunk-LN4SZS7W.js} +1 -1
  55. package/dist/{chunk-NYCJCQNY.js → chunk-MWNSVO4P.js} +4 -4
  56. package/dist/{chunk-SLTUINB4.js → chunk-N7RTLKMM.js} +2 -2
  57. package/dist/{chunk-ERJHLFPD.js → chunk-NOMPG5HQ.js} +2 -2
  58. package/dist/{chunk-VKFYI7AQ.js → chunk-O433SZAJ.js} +36 -21
  59. package/dist/{chunk-KQCWIE76.js → chunk-ODR7V2JL.js} +8 -8
  60. package/dist/{chunk-FAORS3UR.js → chunk-OFFNB2SU.js} +3 -3
  61. package/dist/{chunk-UJQQITCY.js → chunk-PBVUVNWP.js} +1 -1
  62. package/dist/{chunk-GBWSBTEE.js → chunk-PCLYCYBK.js} +3 -3
  63. package/dist/{chunk-RTW6WSC7.js → chunk-QURKHVV5.js} +1 -1
  64. package/dist/{chunk-3RM2ETQT.js → chunk-QVPOR7WE.js} +6 -1
  65. package/dist/{chunk-NSJLCWLG.js → chunk-ROQBQHBK.js} +1 -1
  66. package/dist/{chunk-PH3RS5X4.js → chunk-SOAXQ7Q7.js} +2 -2
  67. package/dist/{chunk-TZ3I23TZ.js → chunk-TNHRCZT3.js} +2 -2
  68. package/dist/{chunk-5GQB63WX.js → chunk-TWZRU64W.js} +7 -7
  69. package/dist/{chunk-QZUVPWC4.js → chunk-U7EGMXQR.js} +2 -2
  70. package/dist/{chunk-LMMFO5UV.js → chunk-V2D4QZBC.js} +13 -7
  71. package/dist/{chunk-PAFCKH3S.js → chunk-WIAO42MD.js} +2 -2
  72. package/dist/{chunk-BMPNGUYD.js → chunk-X2ALZSKK.js} +3 -3
  73. package/dist/{chunk-AGHHZIZN.js → chunk-XDPXSQJO.js} +2 -2
  74. package/dist/{chunk-GSABLXZV.js → chunk-XZNKIYIG.js} +1 -1
  75. package/dist/{chunk-BYFG74OA.js → chunk-YOOW26KG.js} +2 -2
  76. package/dist/{clean-FCBNQ3W2.js → clean-SBFI3ZKR.js} +14 -14
  77. package/dist/cli.js +53 -53
  78. package/dist/{cloud-3FZBQBOM.js → cloud-IRE4HLEK.js} +4 -4
  79. package/dist/{cloudrun-CDFL5JBL.js → cloudrun-GIHWEBGM.js} +5 -5
  80. package/dist/{compare-E4332OOZ.js → compare-S6NM2FSV.js} +27 -27
  81. package/dist/{compiler-GU5GPO5A.js → compiler-WCWRB2LZ.js} +5 -5
  82. package/dist/{component-VKSV3OKW.js → component-WDFZQ2HN.js} +3 -3
  83. package/dist/{compositions-GOVXHFXC.js → compositions-RMUBDPD4.js} +12 -12
  84. package/dist/{delete-JYZTEBLQ.js → delete-SDNARGJ4.js} +2 -2
  85. package/dist/{dist-IDZRZHGE.js → dist-65ELHZOF.js} +3 -3
  86. package/dist/{dist-OTCFZEKF.js → dist-FAN2FFAV.js} +3 -3
  87. package/dist/{doctor-ND3FZM6S.js → doctor-YPCZILXV.js} +10 -10
  88. package/dist/{events-27JU7QRQ.js → events-INXDJ44V.js} +2 -2
  89. package/dist/{events-VL2JIO4R.js → events-Q2K7SNEZ.js} +3 -3
  90. package/dist/{feedback-PKVQWCVT.js → feedback-FRGRCTIX.js} +7 -7
  91. package/dist/{figma-FZ4T4SE3.js → figma-C262EFOC.js} +3 -3
  92. package/dist/fontLocalizeCli.js +10 -10
  93. package/dist/{get-HUAIHWXR.js → get-ZIUUGSVI.js} +2 -2
  94. package/dist/{gpuPolicy-QWJYZLVJ.js → gpuPolicy-FRLW63IY.js} +8 -8
  95. package/dist/{grade-compare-CJ2ROYD6.js → grade-compare-DN342HJC.js} +27 -27
  96. package/dist/{help-OJ3QDJYS.js → help-XQPBPSBP.js} +1 -1
  97. package/dist/{history-P4LA65T5.js → history-PF5FUC6M.js} +6 -6
  98. package/dist/hyperframe-runtime.js +56 -56
  99. package/dist/hyperframe.manifest.json +1 -1
  100. package/dist/hyperframe.runtime.iife.js +56 -56
  101. package/dist/hyperframes-player.global.js +1 -1
  102. package/dist/{info-QHRJW6Y3.js → info-PC7IKGVB.js} +8 -8
  103. package/dist/{init-AG6YVVJN.js → init-ORZX3PSQ.js} +23 -23
  104. package/dist/{inspect-TT66DYEC.js → inspect-L5GRL6SP.js} +28 -28
  105. package/dist/{installer-5ZKUQBWW.js → installer-KXS557O7.js} +5 -5
  106. package/dist/{keyframes-CJJGCW3R.js → keyframes-EIZDSXUH.js} +7 -7
  107. package/dist/{lambda-3BMEOSP7.js → lambda-U3N7MRD7.js} +6 -6
  108. package/dist/{layout-BSDCTMJK.js → layout-WHAVE2H5.js} +28 -28
  109. package/dist/{lint-6CL2R2FK.js → lint-I7PYIW56.js} +9 -9
  110. package/dist/{lintProject-PXB5Y6TX.js → lintProject-7IEOAXJY.js} +3 -3
  111. package/dist/{list-5VYOLEFN.js → list-XXQM3WDO.js} +2 -2
  112. package/dist/{login-PNRREAOC.js → login-64NUUDYU.js} +4 -4
  113. package/dist/{media-treatment-KHJX73WZ.js → media-treatment-5XIM4A3F.js} +25 -25
  114. package/dist/{models-INX67ETR.js → models-WRB3S67Z.js} +11 -11
  115. package/dist/{motionShot-VIUXVMTV.js → motionShot-BOFBL73C.js} +18 -18
  116. package/dist/{normalize-audio-T5QMN476.js → normalize-audio-PP4BSZSU.js} +4 -4
  117. package/dist/{open-T57KLGFX.js → open-F4CUWMZF.js} +29 -5
  118. package/dist/{parakeetRunner-PCCBODBS.js → parakeetRunner-O7QYJ7V7.js} +11 -11
  119. package/dist/{pipeline-GDC7SL5N.js → pipeline-BCHSFFT3.js} +8 -8
  120. package/dist/{play-TQWHYMAT.js → play-PPBR2GJK.js} +19 -19
  121. package/dist/{present-U5OFT6IF.js → present-Y7VTCZRZ.js} +15 -15
  122. package/dist/{preview-WWTDQQSB.js → preview-53AD4OME.js} +19 -19
  123. package/dist/{producer-23NJEJRO.js → producer-WBJDNLBF.js} +1 -1
  124. package/dist/{projectConfig-OXNA35QN.js → projectConfig-4KUGQ4P6.js} +7 -7
  125. package/dist/{publication-GY3OJ6VH.js → publication-OFDIFS4R.js} +3 -3
  126. package/dist/{publish-WZD4NLWM.js → publish-RWWTY743.js} +10 -10
  127. package/dist/{remove-background-Q7CQ3PJF.js → remove-background-G7VK3VKP.js} +9 -9
  128. package/dist/{render-RZUU76V5.js → render-52W63I3Y.js} +9 -9
  129. package/dist/{render-24JWWXMA.js → render-6CXZNXXZ.js} +4 -4
  130. package/dist/{render-FTVXKXSQ.js → render-7PPMS4P6.js} +27 -27
  131. package/dist/{render-batch-FCR7RX6U.js → render-batch-2EJVUVVN.js} +4 -4
  132. package/dist/renderSetupWorker.js +3 -3
  133. package/dist/{resolver-4SPHOGY7.js → resolver-FF5GV6IA.js} +5 -5
  134. package/dist/{sherpa-VMADZBF7.js → sherpa-QJPI6B5S.js} +10 -10
  135. package/dist/{skills-7LBLAEH4.js → skills-H6ZJNOLH.js} +5 -5
  136. package/dist/{skillsUpdateCheck-AHK7CQUP.js → skillsUpdateCheck-4EBGMO2A.js} +3 -3
  137. package/dist/{snapshot-DOS6NQXM.js → snapshot-DZRUBWRH.js} +30 -30
  138. package/dist/{src-VFTQPSQD.js → src-WD5GOYON.js} +9 -7
  139. package/dist/{src-J6KABXGZ.js → src-ZL7ACIZ3.js} +9 -9
  140. package/dist/{staticProjectServer-2YNWMUSU.js → staticProjectServer-72JF5PPO.js} +15 -15
  141. package/dist/studio/assets/{hyperframes-player-DohJxMIU.js → hyperframes-player-B-wEZiX3.js} +1 -1
  142. package/dist/studio/assets/{index-BOkm4Ooc.js → index-Bvkb0Zxy.js} +128 -128
  143. package/dist/studio/assets/{index-DkQKsFxx.css → index-CESvLzz0.css} +1 -1
  144. package/dist/studio/assets/{index-DfwtrPPt.js → index-DPugLDRK.js} +1 -1
  145. package/dist/studio/index.html +2 -2
  146. package/dist/{studio-api-NEBM56HH.js → studio-api-BL6CLOA6.js} +9 -9
  147. package/dist/{studioServer-LYDRHW7D.js → studioServer-TRWCZZXP.js} +57 -48
  148. package/dist/{telemetry-FAYON6XS.js → telemetry-FDSW3ZOZ.js} +3 -3
  149. package/dist/{timeline-UKJ53XLC.js → timeline-ZRN336EA.js} +17 -17
  150. package/dist/{tokens-SO3ZXEFM.js → tokens-RMLNQHIB.js} +2 -2
  151. package/dist/{transcribe-PS5XSTXN.js → transcribe-AEHHCYAL.js} +15 -15
  152. package/dist/{transcribe-IM5UNBSH.js → transcribe-SOODKU6H.js} +9 -9
  153. package/dist/{updateCheck-ZV422M72.js → updateCheck-OSPEYRBY.js} +2 -2
  154. package/dist/{upgrade-GHG5FWZJ.js → upgrade-AK4S7DMX.js} +2 -2
  155. package/dist/{urlDownloader-BOLOMGC7.js → urlDownloader-FSCMLFG7.js} +7 -7
  156. package/dist/{validate-K4ZGXH2M.js → validate-JJTCKZIV.js} +22 -24
  157. package/dist/{video-HUNOZDLT.js → video-ZDM5CFI2.js} +8 -8
  158. package/package.json +1 -1
  159. package/dist/chunk-6M3IPJS6.js +0 -3803
@@ -10,7 +10,8 @@ import {
10
10
 
11
11
  // ../parsers/dist/assetResolution.js
12
12
  import { closeSync, constants, existsSync, fstatSync, openSync, readFileSync } from "fs";
13
- import { isAbsolute, join, posix, relative, resolve, sep } from "path";
13
+ import { isAbsolute as isAbsolute2, join as join2, posix as posix2, relative as relative2, resolve as resolve3, sep } from "path";
14
+ import { posix } from "path";
14
15
  function readAttributeValue(html, at) {
15
16
  while (/[\t\n\f\r ]/.test(html.charAt(at))) at++;
16
17
  const quote = ['"', "'"].includes(html.charAt(at)) ? html.charAt(at) : "";
@@ -109,6 +110,38 @@ function decodeWellFormedEscapes(path) {
109
110
  }
110
111
  });
111
112
  }
113
+ function splitUrlSuffix(urlValue) {
114
+ const queryIdx = urlValue.indexOf("?");
115
+ const hashIdx = urlValue.indexOf("#");
116
+ if (queryIdx < 0 && hashIdx < 0) return { basePath: urlValue, suffix: "" };
117
+ let cutIdx = urlValue.length;
118
+ if (queryIdx >= 0) cutIdx = Math.min(cutIdx, queryIdx);
119
+ if (hashIdx >= 0) cutIdx = Math.min(cutIdx, hashIdx);
120
+ return { basePath: urlValue.slice(0, cutIdx), suffix: urlValue.slice(cutIdx) };
121
+ }
122
+ function encodeUrlPath(path) {
123
+ return encodeURIComponent(path).replace(/%2F/g, "/").replace(/['()]/g, (char) => `%${char.charCodeAt(0).toString(16).toUpperCase()}`);
124
+ }
125
+ function isNonRelativeUrl(val) {
126
+ return !val || val.startsWith("http://") || val.startsWith("https://") || val.startsWith("//") || val.startsWith("data:") || val.startsWith("#") || val.startsWith("/");
127
+ }
128
+ var { join, resolve: resolve2, dirname } = posix;
129
+ var isAbsoluteOrSpecial = isNonRelativeUrl;
130
+ function needsRewrite(val) {
131
+ return val.startsWith("../") || val === "..";
132
+ }
133
+ function rewriteAssetPath(compSrcPath, relativePath, assetExists) {
134
+ if (isAbsoluteOrSpecial(relativePath)) return relativePath;
135
+ const compDir = dirname(compSrcPath);
136
+ if (!compDir || compDir === ".") return relativePath;
137
+ const { basePath, suffix } = splitUrlSuffix(relativePath);
138
+ const slashed = basePath.replace(/\\/g, "/");
139
+ if (!slashed || slashed.startsWith("/")) return relativePath;
140
+ const filePath = decodeWellFormedEscapes(slashed);
141
+ const sibling = resolve2("/", join(compDir, filePath)).slice(1);
142
+ if (!needsRewrite(filePath) && (!assetExists || !assetExists(sibling))) return relativePath;
143
+ return encodeUrlPath(sibling) + suffix;
144
+ }
112
145
  function isRemoteOrInlineUrl(url) {
113
146
  return /^(https?:|data:|blob:|\/\/|#)/i.test(url);
114
147
  }
@@ -137,7 +170,7 @@ function collectSubCompositionSrcs(html) {
137
170
  function cleanAssetUrl(url) {
138
171
  return url.trim().split(/[?#]/, 1)[0] ?? "";
139
172
  }
140
- function isWithinProjectRoot(projectDir, candidate, pathModule = { resolve, relative, isAbsolute }) {
173
+ function isWithinProjectRoot(projectDir, candidate, pathModule = { resolve: resolve3, relative: relative2, isAbsolute: isAbsolute2 }) {
141
174
  const projectRoot = pathModule.resolve(projectDir);
142
175
  const relativePath = pathModule.relative(projectRoot, candidate);
143
176
  return relativePath === "" || !relativePath.startsWith("..") && !pathModule.isAbsolute(relativePath);
@@ -147,49 +180,55 @@ function addCandidate(candidates, candidate) {
147
180
  }
148
181
  function resolveLocalAssetCandidates(projectDir, url) {
149
182
  const cleanUrl = cleanAssetUrl(url);
150
- const projectRoot = resolve(projectDir);
183
+ const projectRoot = resolve3(projectDir);
151
184
  const candidates = [];
152
185
  for (const variant of decodeUrlPathVariants(cleanUrl)) {
153
186
  const projectRelative = variant.startsWith("/") ? variant.slice(1) : variant;
154
- const resolved = resolve(projectRoot, projectRelative);
187
+ const resolved = resolve3(projectRoot, projectRelative);
155
188
  if (isWithinProjectRoot(projectRoot, resolved)) {
156
189
  addCandidate(candidates, resolved);
157
190
  continue;
158
191
  }
159
- const normalized = posix.normalize(projectRelative.replace(/\\/g, "/"));
192
+ const normalized = posix2.normalize(projectRelative.replace(/\\/g, "/"));
160
193
  const clamped = normalized.replace(/^(\.\.\/)+/, "");
161
194
  if (clamped && !clamped.startsWith("..")) {
162
- addCandidate(candidates, resolve(projectRoot, clamped));
195
+ addCandidate(candidates, resolve3(projectRoot, clamped));
163
196
  }
164
197
  }
165
198
  return candidates;
166
199
  }
167
200
  function resolveExistingLocalAsset(projectDir, url) {
168
- const projectRoot = resolve(projectDir);
201
+ const projectRoot = resolve3(projectDir);
169
202
  const resolved = resolveLocalAssetCandidates(projectRoot, url).find(existsSync);
170
203
  if (!resolved) return null;
171
- return { resolved, rootRelativePath: relative(projectRoot, resolved) };
204
+ return { resolved, rootRelativePath: relative2(projectRoot, resolved) };
205
+ }
206
+ function resolveAuthoredAssetFile(projectDir, compositionFile, src) {
207
+ const cleanSrc = cleanAssetUrl(src.trim());
208
+ if (!cleanSrc) return null;
209
+ const rootRelative = cleanSrc.startsWith("/") ? cleanSrc : rewriteAssetPath(compositionFile, cleanSrc, (path) => existsSync(join2(projectDir, path)));
210
+ return resolveExistingLocalAsset(projectDir, rootRelative)?.resolved ?? null;
172
211
  }
173
212
  function reanchoredCandidates(variant, baseDir, compiledDir) {
174
- const baseAbs = resolve(baseDir);
175
- const joinedAbs = resolve(join(baseDir, variant));
213
+ const baseAbs = resolve3(baseDir);
214
+ const joinedAbs = resolve3(join2(baseDir, variant));
176
215
  if (joinedAbs === baseAbs || joinedAbs.startsWith(baseAbs + sep)) return [];
177
- const stripped = posix.normalize(variant.replace(/\\/g, "/")).replace(/^(\.\.\/)+/, "");
216
+ const stripped = posix2.normalize(variant.replace(/\\/g, "/")).replace(/^(\.\.\/)+/, "");
178
217
  if (!stripped || stripped === variant || stripped.startsWith("..")) return [];
179
- return compiledDir ? [join(compiledDir, stripped), join(baseDir, stripped)] : [join(baseDir, stripped)];
218
+ return compiledDir ? [join2(compiledDir, stripped), join2(baseDir, stripped)] : [join2(baseDir, stripped)];
180
219
  }
181
220
  function resolveProjectRelativeSrc(src, baseDir, compiledDir) {
182
221
  const cleanSrc = cleanAssetUrl(src);
183
- if (isAbsolute(cleanSrc) && existsSync(cleanSrc)) return cleanSrc;
222
+ if (isAbsolute2(cleanSrc) && existsSync(cleanSrc)) return cleanSrc;
184
223
  const candidates = /* @__PURE__ */ new Set();
185
224
  for (const variant of decodeUrlPathVariants(cleanSrc)) {
186
225
  for (const candidate of reanchoredCandidates(variant, baseDir, compiledDir)) {
187
226
  candidates.add(candidate);
188
227
  }
189
- if (compiledDir) candidates.add(join(compiledDir, variant));
190
- candidates.add(join(baseDir, variant));
228
+ if (compiledDir) candidates.add(join2(compiledDir, variant));
229
+ candidates.add(join2(baseDir, variant));
191
230
  }
192
- return [...candidates].find(existsSync) ?? join(baseDir, cleanSrc);
231
+ return [...candidates].find(existsSync) ?? join2(baseDir, cleanSrc);
193
232
  }
194
233
  function maskRange(src, pattern) {
195
234
  return src.replace(pattern, (m) => " ".repeat(m.length));
@@ -240,6 +279,7 @@ export {
240
279
  isWithinProjectRoot,
241
280
  resolveLocalAssetCandidates,
242
281
  resolveExistingLocalAsset,
282
+ resolveAuthoredAssetFile,
243
283
  resolveProjectRelativeSrc,
244
284
  maskNonScannableRanges,
245
285
  readProjectFile
@@ -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-VL2JIO4R.js");
1281
+ const { trackCommandFailure } = await import("./events-Q2K7SNEZ.js");
1282
1282
  trackCommandFailure(
1283
1283
  command,
1284
1284
  err,
@@ -9,7 +9,7 @@ import {
9
9
  } from "./chunk-K2FLNJVB.js";
10
10
  import {
11
11
  trackCommandFailure
12
- } from "./chunk-6I24ZSCR.js";
12
+ } from "./chunk-BYRHCRU3.js";
13
13
  import {
14
14
  failCommand
15
15
  } from "./chunk-PBN6GBJE.js";
@@ -9,28 +9,28 @@ import {
9
9
  launchManagedBrowser,
10
10
  resolveManagedGpuMode,
11
11
  rethrowAfterBrowserCleanup
12
- } from "./chunk-TZ3I23TZ.js";
12
+ } from "./chunk-TNHRCZT3.js";
13
13
  import {
14
14
  resolveCompositionViewportFromHtml
15
15
  } from "./chunk-FH7WODJH.js";
16
16
  import {
17
- resolveDiagnosticNavigationTimeoutMs,
17
+ pageNavigationTimeoutMs,
18
18
  windowsChromeCrashRemediation
19
- } from "./chunk-LMMFO5UV.js";
19
+ } from "./chunk-V2D4QZBC.js";
20
20
  import {
21
21
  oneProcessOverPipe
22
- } from "./chunk-WICIV6R3.js";
22
+ } from "./chunk-BRHI7EIA.js";
23
23
  import {
24
24
  resolveLocalBrowserGpuMode,
25
25
  resolveLocalWebGpu
26
- } from "./chunk-PXA4S6OE.js";
26
+ } from "./chunk-KR5ZHRF2.js";
27
27
  import {
28
28
  c
29
29
  } from "./chunk-ZTZA4UWZ.js";
30
30
  import {
31
31
  assertWebGpuAdapterAvailable,
32
32
  compositionRequiresWebGpu
33
- } from "./chunk-VKFYI7AQ.js";
33
+ } from "./chunk-O433SZAJ.js";
34
34
  import {
35
35
  normalizeErrorMessage
36
36
  } from "./chunk-KNU5COPB.js";
@@ -114,9 +114,9 @@ async function openSettledCompositionPage(html, url, options) {
114
114
  const { ensureBrowser, findSystemBrowser } = await import("./manager-HEUPD2YB.js");
115
115
  const browser = await ensureBrowser({ signal: options.signal });
116
116
  const puppeteer = await import("puppeteer-core");
117
- const { buildChromeArgs } = await import("./src-VFTQPSQD.js");
117
+ const { buildChromeArgs } = await import("./src-WD5GOYON.js");
118
118
  const requestedGpuMode = options.browserGpuMode ?? resolveCliChromeGpuMode();
119
- const answer = (await import("./staticProjectServer-2YNWMUSU.js")).inProcessAnswer(url);
119
+ const answer = (await import("./staticProjectServer-72JF5PPO.js")).inProcessAnswer(url);
120
120
  const requiresWebGpu = compositionRequiresWebGpu(html);
121
121
  let softwareWebGpu = false;
122
122
  const launch = async (executablePath) => {
@@ -175,11 +175,7 @@ ${remediation}`,
175
175
  await page.setViewport(viewport);
176
176
  if (answer) await answerPageInProcess(page, url, answer);
177
177
  await options.beforeNavigate?.(page);
178
- await gotoWhenSent(
179
- page,
180
- url,
181
- resolveDiagnosticNavigationTimeoutMs(process.env, options.navigationTimeoutMs)
182
- );
178
+ await gotoWhenSent(page, url, pageNavigationTimeoutMs(options.navigationTimeoutMs));
183
179
  await assertWebGpuAdapterAvailable(page, requiresWebGpu, softwareWebGpu);
184
180
  const renderReadyTimedOut = !await waitForCompositionSettle(page, options);
185
181
  return { browser: chromeBrowser, page, renderReadyTimedOut };