hyperframes 0.8.181 → 0.8.183
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.
- package/bin/hyperframes.mjs +3 -1
- package/dist/{add-AWQ2EGBU.js → add-HW3ZGR36.js} +22 -22
- package/dist/{animatedGifPrep-SENXJ7TN.js → animatedGifPrep-EPLN37ZN.js} +13 -13
- package/dist/api.js +28 -28
- package/dist/{asset-XBH3MN3Y.js → asset-TOASKL3Z.js} +3 -3
- package/dist/{assetCataloger-KH4X2CRO.js → assetCataloger-PZN5HYG2.js} +15 -13
- package/dist/{audio-Q7I473UN.js → audio-F5OIQVJO.js} +29 -29
- package/dist/{auth-I7CBTEUS.js → auth-YVQLRS3T.js} +4 -4
- package/dist/{autoUpdate-KY5TLSN7.js → autoUpdate-EG4ZFW4D.js} +2 -2
- package/dist/{backgroundChecks-4Q3VVK5W.js → backgroundChecks-WINNQVR2.js} +3 -3
- package/dist/backgroundChecksWorker.js +3 -3
- package/dist/{batchRender-3AYDQRBI.js → batchRender-PASZTMEE.js} +7 -7
- package/dist/{beats-P4LENNVT.js → beats-KGIOEBLW.js} +12 -12
- package/dist/{benchmark-AXOAECN3.js → benchmark-ZNY2L7HN.js} +24 -24
- package/dist/{browser-XZKB5HGJ.js → browser-REAO7RU4.js} +20 -20
- package/dist/{bundleWithLocalizedFonts-2WCR57IN.js → bundleWithLocalizedFonts-OAYLYC4W.js} +2 -2
- package/dist/{capture-NWARHRHR.js → capture-IK6GWQDD.js} +8 -5
- package/dist/{capture-4RN4APDF.js → capture-WOSF276U.js} +49 -41
- package/dist/{captureCompositionFrame-QOF5BRF4.js → captureCompositionFrame-DDZNKYRE.js} +21 -20
- package/dist/{captureTimeout-K2JNVVCI.js → captureTimeout-RIMG6IYH.js} +1 -1
- package/dist/{catalog-CRPOPVD5.js → catalog-AKTXS7OJ.js} +42 -42
- package/dist/{catch-up-MHWGUQ42.js → catch-up-O3VZMPVE.js} +15 -15
- package/dist/check-6E46NIWI.js +116 -0
- package/dist/checkBrowser-UNZHQFNH.js +117 -0
- package/dist/{chunk-Y2RXRPL2.js → chunk-3BA2GP4H.js} +5 -5
- package/dist/{chunk-N5SXQCJL.js → chunk-3OLIGYWN.js} +3 -3
- package/dist/{chunk-OR5WCFWZ.js → chunk-3Q47QC46.js} +2 -2
- package/dist/{chunk-EOADENKV.js → chunk-4FQKS7BJ.js} +16 -14
- package/dist/{chunk-HODBPO4A.js → chunk-4UFJWRHG.js} +461 -275
- package/dist/{chunk-537IYAEE.js → chunk-4UMPIPCQ.js} +9 -1
- package/dist/{chunk-OJTDUF4W.js → chunk-5MBLWFLM.js} +1 -1
- package/dist/{chunk-UVEQLDKB.js → chunk-5OGDBU4G.js} +3 -2
- package/dist/{chunk-L3YOGIPG.js → chunk-66LREXGS.js} +1 -1
- package/dist/{chunk-YPBIAONI.js → chunk-73LTCCZI.js} +218 -150
- package/dist/{chunk-GZVP4TWN.js → chunk-7JAD4MEW.js} +1 -1
- package/dist/{chunk-NAMGMP3R.js → chunk-7KVVNF7B.js} +1 -1
- package/dist/{chunk-GK2FIKIQ.js → chunk-ADDHW2FS.js} +214 -37
- package/dist/{chunk-WUQUR33W.js → chunk-AKFADCMS.js} +1 -1
- package/dist/{chunk-VAJIPSN6.js → chunk-ANR6WOC3.js} +1 -1
- package/dist/{chunk-4USWWI2Y.js → chunk-ATMDOUNN.js} +2 -2
- package/dist/{chunk-XSRUVMXK.js → chunk-B2SZZFWW.js} +4 -4
- package/dist/{chunk-TO6JNTML.js → chunk-BP4VNTZL.js} +13 -8
- package/dist/{chunk-DJJ7SK4F.js → chunk-CAHTO62O.js} +8 -8
- package/dist/{chunk-GNE57O7U.js → chunk-CGK4XZ2J.js} +1 -1
- package/dist/{chunk-O5AE7HOP.js → chunk-CJYAJ3QM.js} +37 -33
- package/dist/{chunk-5JMZLQT6.js → chunk-COTLNID2.js} +16 -16
- package/dist/{chunk-E24HSMZV.js → chunk-CYBXXSC4.js} +65 -14
- package/dist/{chunk-NZZYJOMJ.js → chunk-CZUAX3BV.js} +6 -5
- package/dist/{chunk-K26FR4SM.js → chunk-DEORFAWP.js} +12 -12
- package/dist/{chunk-GV5R5B7Q.js → chunk-DGECWPTL.js} +1 -1
- package/dist/{chunk-BRHI7EIA.js → chunk-DKPNNYBZ.js} +4 -0
- package/dist/{chunk-5E5EYPZO.js → chunk-DLC2FICN.js} +7 -7
- package/dist/{chunk-D3ZWBHZP.js → chunk-DYAPHNV6.js} +3 -2
- package/dist/{chunk-RGHQID2E.js → chunk-EHSBBBR2.js} +5 -3
- package/dist/{chunk-IWTRHPTP.js → chunk-EVAQPW6O.js} +8 -8
- package/dist/{chunk-S3RYRF3W.js → chunk-F6WHPHLF.js} +1 -1
- package/dist/chunk-FG4BBFZI.js +122 -0
- package/dist/{chunk-WITHUCCB.js → chunk-GAGMLVCV.js} +2 -2
- package/dist/chunk-GMNHAOMJ.js +3805 -0
- package/dist/{chunk-KIO3R4QN.js → chunk-GPE3WWTO.js} +16 -6
- package/dist/{chunk-IL3GTCQY.js → chunk-GTE5WZAM.js} +72 -140
- package/dist/{chunk-55IG255C.js → chunk-HLBODNGW.js} +1 -1
- package/dist/{chunk-KMAAOHLO.js → chunk-HRPWRZGF.js} +1 -1
- package/dist/{chunk-UPFUC4DB.js → chunk-HTIUNMTP.js} +1 -1
- package/dist/{chunk-WUUCEFL5.js → chunk-IC2WYONA.js} +5 -5
- package/dist/{chunk-DUN63LHY.js → chunk-ITSLKUQM.js} +2 -2
- package/dist/{chunk-YJDB4FLT.js → chunk-JQYJXUJW.js} +1 -1
- package/dist/{chunk-PBN6GBJE.js → chunk-JVBRJMOP.js} +14 -1
- package/dist/{chunk-XH262OWN.js → chunk-K2Z5DZBS.js} +1 -1
- package/dist/{chunk-RHWJKSGH.js → chunk-KANNRHY7.js} +1 -1
- package/dist/{chunk-AOWDVB2T.js → chunk-KRFAX5JK.js} +1 -1
- package/dist/{chunk-UIDZRCBG.js → chunk-LBWRQ4XA.js} +1 -1
- package/dist/{chunk-T7UHTUUE.js → chunk-MIZDJVPZ.js} +9 -9
- package/dist/{chunk-32GKETR7.js → chunk-MMQ52NIZ.js} +74 -0
- package/dist/chunk-MOEGCMKI.js +180 -0
- package/dist/{chunk-E6RPWJVC.js → chunk-NAUKCKCJ.js} +5 -1
- package/dist/{chunk-JBCU6NR5.js → chunk-NZ3BE2QE.js} +56 -55
- package/dist/{chunk-JMFJI26U.js → chunk-O7N3A7PE.js} +2 -2
- package/dist/{chunk-3PULCIY5.js → chunk-OH56PXFH.js} +5 -5
- package/dist/{chunk-H4YZZ2VQ.js → chunk-PFD25NAC.js} +1 -1
- package/dist/{check-DJCUOUDI.js → chunk-Q6UYKWBG.js} +198 -142
- package/dist/{chunk-3DKN5WKL.js → chunk-QH3T4WI2.js} +77 -6
- package/dist/{chunk-Y5GY6Y7A.js → chunk-QX4GGPMY.js} +2 -2
- package/dist/{chunk-B6JLCPT3.js → chunk-R6OV4J4K.js} +6 -6
- package/dist/{chunk-XEWHUPFS.js → chunk-RZXUQR42.js} +2 -2
- package/dist/{chunk-YMS6CJCD.js → chunk-SAQYJLI6.js} +1 -1
- package/dist/{chunk-OJDXABUF.js → chunk-TJB4GAV6.js} +2 -2
- package/dist/{checkBrowser-VES2NF3K.js → chunk-TOHA5NAU.js} +187 -114
- package/dist/{chunk-RXQHSGAQ.js → chunk-TXGZZKDF.js} +2 -2
- package/dist/{chunk-3XDOGSRD.js → chunk-U5YVWG5W.js} +3 -3
- package/dist/{chunk-ICMXC3MI.js → chunk-U6RXZNZE.js} +31 -18
- package/dist/{chunk-PF7OWVTL.js → chunk-UNOSCGBG.js} +2 -2
- package/dist/{chunk-X7CCSMRR.js → chunk-VAK7A2N6.js} +16 -16
- package/dist/{chunk-OFY6JTZC.js → chunk-VDJO4DJ7.js} +2 -2
- package/dist/{chunk-LBQFLUIY.js → chunk-VFBAKPRC.js} +9 -49
- package/dist/{chunk-ZUOSILUE.js → chunk-VH5KESLX.js} +1 -1
- package/dist/{chunk-22QHO26F.js → chunk-W64L7IFS.js} +1 -1
- package/dist/{chunk-4IEH6EAC.js → chunk-WT4PYV2J.js} +4 -6
- package/dist/{chunk-XFCLWWL3.js → chunk-X3IA5RYH.js} +2 -2
- package/dist/{chunk-UZOZ2W2E.js → chunk-XAQDR5Y5.js} +2 -2
- package/dist/{chunk-6I7V6Q7F.js → chunk-XJHKJXT4.js} +103 -20
- package/dist/{chunk-V2UNZ7QP.js → chunk-XOVHO3TT.js} +25 -14
- package/dist/{chunk-65WIUIHL.js → chunk-XR5BSEUF.js} +7 -15
- package/dist/{chunk-IZM562YJ.js → chunk-Z4R35NJS.js} +4 -4
- package/dist/{chunk-4OT3FWVV.js → chunk-ZFO3A3QL.js} +2 -2
- package/dist/{clean-GJNDVVDI.js → clean-WNEIVBF3.js} +40 -40
- package/dist/cli.js +68 -64
- package/dist/{cloud-JCWNMKXC.js → cloud-6GSSDCJL.js} +4 -4
- package/dist/{cloudrun-2BKGY53X.js → cloudrun-4NEJRE4T.js} +8 -8
- package/dist/commands/layout-audit.browser.js +15 -4
- package/dist/commands/motion-signature.browser.js +52 -0
- package/dist/{compare-XWM7FAYM.js → compare-2JWQ5ABA.js} +50 -47
- package/dist/{compiler-U3W6CJW7.js → compiler-27KQD7KW.js} +6 -6
- package/dist/{component-CBRAE325.js → component-HCRET3MH.js} +4 -4
- package/dist/{compositions-EZYJEHQ3.js → compositions-HTSQ6SUJ.js} +28 -29
- package/dist/{contactSheet-27SRU7A4.js → contactSheet-CAGMKI3E.js} +3 -1
- package/dist/{delete-JWWMOITI.js → delete-GHQ5UYM7.js} +9 -9
- package/dist/{deploy-UGOV76OH.js → deploy-I3Z3NAVA.js} +11 -11
- package/dist/{destroy-QBLMYDBF.js → destroy-4B5HW5FH.js} +5 -5
- package/dist/{deterministicFonts-L7YEEFGI.js → deterministicFonts-JFLSSKRB.js} +2 -2
- package/dist/{dist-2FMTAVGL.js → dist-SENYPQGW.js} +4 -4
- package/dist/{dist-VO7OXOFK.js → dist-WRDLWRMS.js} +5 -5
- package/dist/{docs-MPOM3PHH.js → docs-UEWLIP6D.js} +1 -1
- package/dist/{doctor-XSKSZRR7.js → doctor-UGFVQZHI.js} +27 -27
- package/dist/{events-AIZODZMP.js → events-BLJGWMNP.js} +9 -9
- package/dist/{events-RGS4MAH4.js → events-YS4OVX3I.js} +6 -6
- package/dist/{feedback-GE3VDZOH.js → feedback-AZ3SJ5HF.js} +35 -35
- package/dist/{ffmpeg-SCXZTR6X.js → ffmpeg-2AECXG7V.js} +15 -15
- package/dist/{figma-3R4XST4Y.js → figma-DRYIJQHV.js} +3 -3
- package/dist/fontLocalizeCli.js +23 -23
- package/dist/{get-4FKJP6IM.js → get-DDEAOFPB.js} +9 -9
- package/dist/{gpuPolicy-4NNXESM7.js → gpuPolicy-UDJT2MQK.js} +13 -13
- package/dist/{grade-compare-FAYVPXUR.js → grade-compare-LJKK5NSY.js} +55 -50
- package/dist/{help-C3UQMYXK.js → help-TQBGYOID.js} +1 -1
- package/dist/{history-LDGQ2IZJ.js → history-5TOOCF2Y.js} +15 -15
- package/dist/hyperframe.manifest.json +1 -1
- package/dist/hyperframe.runtime.iife.js +17 -17
- package/dist/hyperframes-player.global.js +8 -3
- package/dist/{info-KMXFLD3Q.js → info-ENI5MP4W.js} +20 -20
- package/dist/{init-D7GYHSX5.js → init-JXPXWV3G.js} +68 -68
- package/dist/{inspect-CUKWHCGS.js → inspect-WZNYQ5AB.js} +45 -44
- package/dist/{installer-EPRSH6QI.js → installer-3SGRBLJW.js} +7 -7
- package/dist/{keyframes-XCUPHBW3.js → keyframes-HEOC4CT4.js} +16 -16
- package/dist/{lambda-IMORFJHN.js → lambda-2VHQ4AL2.js} +15 -15
- package/dist/{layout-JD2IOBMS.js → layout-7WEUNO6T.js} +45 -44
- package/dist/{lint-FHLER36Y.js → lint-5YMAF3L7.js} +23 -23
- package/dist/{lintProject-ARKJXDQF.js → lintProject-C2ONSH2U.js} +4 -4
- package/dist/{list-MGCFG5MA.js → list-BIE3X7CO.js} +10 -10
- package/dist/{login-QX6M4UTR.js → login-YDIGJWCG.js} +7 -7
- package/dist/{logout-DKJANASY.js → logout-DDC4QLVK.js} +3 -3
- package/dist/{manager-IETAVBZS.js → manager-D2UV6RDQ.js} +16 -16
- package/dist/{manager-V2QCCPOJ.js → manager-UHWEKPXC.js} +8 -3
- package/dist/{media-treatment-MDAQRITV.js → media-treatment-FSKHPMWA.js} +33 -33
- package/dist/{media-use-4XXGABIL.js → media-use-JBN57JE3.js} +1 -1
- package/dist/{models-NZAOSI5A.js → models-COEK6LXG.js} +24 -24
- package/dist/{motionShot-6ZDUM2K4.js → motionShot-HYZ2ZGJQ.js} +28 -26
- package/dist/{normalize-audio-7PRYX6QM.js → normalize-audio-UXR6WQ7Q.js} +12 -12
- package/dist/{open-I254NY5J.js → open-OFT2GIDG.js} +24 -24
- package/dist/{parakeetRunner-TL3TOGUS.js → parakeetRunner-4NZ3QXS3.js} +25 -25
- package/dist/{pipeline-YPERVOQM.js → pipeline-ZKE54JMG.js} +18 -18
- package/dist/{play-MYI7BYKS.js → play-2VG77FT6.js} +39 -38
- package/dist/{policies-5NTZOHJA.js → policies-XXNGXWHV.js} +1 -1
- package/dist/{preflight-HRCSZ52D.js → preflight-QTWDIM5C.js} +18 -18
- package/dist/{present-WYXQDV4Q.js → present-OONXQLJG.js} +33 -33
- package/dist/{preview-535HTWQO.js → preview-6RZJFU76.js} +49 -49
- package/dist/{producer-C76CRJ5O.js → producer-6YM3UH3B.js} +1 -1
- package/dist/{progress-I37JB7R4.js → progress-NHJIHAAG.js} +2 -2
- package/dist/{projectConfig-5QCNTGQT.js → projectConfig-YMW4P2X6.js} +9 -9
- package/dist/{publication-2QT7VVE2.js → publication-SEINUAPZ.js} +5 -5
- package/dist/{publish-53EBL7OO.js → publish-KZBTBWFO.js} +27 -27
- package/dist/{refresh-MGCVWX56.js → refresh-RXTOPRBB.js} +3 -3
- package/dist/{remove-background-OBYHMPD4.js → remove-background-BIQNMIR7.js} +31 -31
- package/dist/{render-5BXTEEG7.js → render-65K3K6SD.js} +31 -31
- package/dist/{render-3MELF6Y3.js → render-FIH37HJA.js} +101 -96
- package/dist/{render-75CRB3BW.js → render-LW76HOMJ.js} +8 -8
- package/dist/{render-batch-CEVWUYBP.js → render-batch-POLEEYD4.js} +8 -8
- package/dist/renderSetupWorker.js +12 -9
- package/dist/{resolver-4ICE2AT6.js → resolver-O2SED3XB.js} +7 -7
- package/dist/{screenshotCapture-HXEZ3TNJ.js → screenshotCapture-UBY6TT75.js} +33 -6
- package/dist/{sherpa-L4UACXT3.js → sherpa-HTFFFTVQ.js} +24 -24
- package/dist/{sites-3ZBYB5X4.js → sites-MAVH57MO.js} +2 -2
- package/dist/skills/hyperframes/references/review-loop.md +1 -1
- package/dist/{skills-DXTQPCAO.js → skills-J6MBGS5O.js} +17 -17
- package/dist/{skillsUpdateCheck-ULXRGLDU.js → skillsUpdateCheck-ZAXNLBF3.js} +3 -3
- package/dist/{snapshot-PWFHQU5E.js → snapshot-TL7TTFS6.js} +72 -71
- package/dist/{src-RDSWHMJS.js → src-EL6HGIS4.js} +33 -26
- package/dist/{src-S7NVL5VF.js → src-Z5H5N5T4.js} +19 -19
- package/dist/{state-KAXGHF77.js → state-ORRPOLMQ.js} +2 -2
- package/dist/{staticProjectServer-GYPUQGI7.js → staticProjectServer-EO7X7RAY.js} +20 -20
- package/dist/{status-BV7QAUQD.js → status-CM7IQTU2.js} +6 -6
- package/dist/studio/assets/{hyperframes-player-DcD3NXpX.js → hyperframes-player-hz_VqxBZ.js} +7 -2
- package/dist/studio/assets/{index-BIDKYk0h.js → index-CV_ojgp5.js} +1 -1
- package/dist/studio/assets/{index-CFrZAwKo.js → index-S1ceEagc.js} +4 -4
- package/dist/studio/index.html +1 -1
- package/dist/{studio-api-IXGX5ZFI.js → studio-api-CUZDC5B3.js} +17 -17
- package/dist/{studioServer-LA5Z7RSS.js → studioServer-EZPRV43Y.js} +90 -84
- package/dist/{telemetry-STEMAMAX.js → telemetry-LFUVHARP.js} +10 -10
- package/dist/{telemetry-CQYHCCPL.js → telemetry-QG5AANZ4.js} +1 -1
- package/dist/{timeline-KLD24EN6.js → timeline-GSH743JE.js} +41 -41
- package/dist/{tokens-ICLORAA4.js → tokens-3ZMPSH7B.js} +3 -3
- package/dist/{transcribe-A6IKK7VS.js → transcribe-4SHNDPWW.js} +47 -47
- package/dist/{transcribe-CTHZLRXF.js → transcribe-TV7JBZQS.js} +19 -19
- package/dist/{tts-EDK3QS7M.js → tts-A2WILYGN.js} +6 -6
- package/dist/{updateCheck-FHCAAAXA.js → updateCheck-W7FTFOQF.js} +2 -2
- package/dist/{upgrade-7EV4F2R7.js → upgrade-7YYYNAPF.js} +3 -3
- package/dist/{urlDownloader-MIMGVASJ.js → urlDownloader-PQSUS2CP.js} +12 -12
- package/dist/{validate-LZF46W3V.js → validate-GCHAEVXM.js} +39 -38
- package/dist/{video-ZC47NFOL.js → video-KGN7NJS5.js} +16 -14
- package/dist/warmCheck.js +227 -0
- package/dist/warmCheckClient.js +139 -0
- package/package.json +4 -2
- package/dist/chunk-BAZ5LCR3.js +0 -3805
- package/dist/hyperframe-runtime.js +0 -1125
- package/dist/{chunk-B4VT6YU2.js → chunk-QGOYNPQT.js} +3 -3
- package/dist/{synthesize-I2C24XJ5.js → synthesize-PKTB5ATG.js} +1 -1
|
@@ -9,10 +9,10 @@ import {
|
|
|
9
9
|
} from "./chunk-K2FLNJVB.js";
|
|
10
10
|
import {
|
|
11
11
|
trackCommandFailure
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-DLC2FICN.js";
|
|
13
13
|
import {
|
|
14
14
|
failCommand
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-JVBRJMOP.js";
|
|
16
16
|
|
|
17
17
|
// src/utils/project.ts
|
|
18
18
|
import { existsSync, statSync } from "fs";
|
|
@@ -8,36 +8,26 @@ import {
|
|
|
8
8
|
auditClipDurations,
|
|
9
9
|
shouldIgnoreHttpError,
|
|
10
10
|
shouldIgnoreRequestFailure
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-VAK7A2N6.js";
|
|
12
12
|
import {
|
|
13
13
|
checkSnapshotDirectory,
|
|
14
14
|
rectToBbox
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-KANNRHY7.js";
|
|
16
16
|
import {
|
|
17
17
|
ambiguousIssue,
|
|
18
18
|
loadBrowserScript
|
|
19
|
-
} from "./chunk-
|
|
20
|
-
import "./chunk-X7MTZ4T2.js";
|
|
21
|
-
import "./chunk-OJDXABUF.js";
|
|
19
|
+
} from "./chunk-CJYAJ3QM.js";
|
|
22
20
|
import {
|
|
23
21
|
serveStaticProjectHtml
|
|
24
|
-
} from "./chunk-
|
|
25
|
-
import "./chunk-UVEQLDKB.js";
|
|
26
|
-
import "./chunk-X7MTZ4T2.js";
|
|
27
|
-
import "./chunk-XUHOIDKG.js";
|
|
28
|
-
import "./chunk-JBCU6NR5.js";
|
|
29
|
-
import "./chunk-IWTRHPTP.js";
|
|
30
|
-
import "./chunk-TTVHYD5R.js";
|
|
31
|
-
import "./chunk-6JR2XUEE.js";
|
|
22
|
+
} from "./chunk-Z4R35NJS.js";
|
|
32
23
|
import {
|
|
33
24
|
FfmpegUnavailableError,
|
|
34
25
|
decideMediaProxyEligibility,
|
|
26
|
+
getProxyCachePath,
|
|
35
27
|
proxyVariantFor,
|
|
36
28
|
resolveProxies,
|
|
37
29
|
scanProjectMediaCodecMap
|
|
38
|
-
} from "./chunk-
|
|
39
|
-
import "./chunk-ICMXC3MI.js";
|
|
40
|
-
import "./chunk-ALVXFXUG.js";
|
|
30
|
+
} from "./chunk-GPE3WWTO.js";
|
|
41
31
|
import {
|
|
42
32
|
AUDIT_SEEK_OPTIONS,
|
|
43
33
|
DEFAULT_ZOOM_PADDING_PX,
|
|
@@ -51,84 +41,21 @@ import {
|
|
|
51
41
|
seekCompositionTimeline,
|
|
52
42
|
seekInPage,
|
|
53
43
|
waitForPreferredSeekTarget
|
|
54
|
-
} from "./chunk-
|
|
55
|
-
import "./chunk-FH7WODJH.js";
|
|
44
|
+
} from "./chunk-XOVHO3TT.js";
|
|
56
45
|
import {
|
|
57
46
|
BrowserCleanupError,
|
|
58
47
|
closeManagedBrowser
|
|
59
|
-
} from "./chunk-
|
|
60
|
-
import "./chunk-XSRUVMXK.js";
|
|
61
|
-
import "./chunk-BRHI7EIA.js";
|
|
62
|
-
import "./chunk-S3RYRF3W.js";
|
|
63
|
-
import "./chunk-K2FLNJVB.js";
|
|
64
|
-
import "./chunk-4OT3FWVV.js";
|
|
65
|
-
import "./chunk-442JNXRM.js";
|
|
66
|
-
import "./chunk-RGHQID2E.js";
|
|
48
|
+
} from "./chunk-GTE5WZAM.js";
|
|
67
49
|
import {
|
|
68
50
|
resolveAutoProxy
|
|
69
|
-
} from "./chunk-
|
|
70
|
-
import "./chunk-XT7X6QCP.js";
|
|
71
|
-
import "./chunk-4YYJOFKS.js";
|
|
72
|
-
import "./chunk-HVW7ABXD.js";
|
|
73
|
-
import "./chunk-WUQUR33W.js";
|
|
74
|
-
import "./chunk-JHOCK3DG.js";
|
|
75
|
-
import "./chunk-OFY6JTZC.js";
|
|
76
|
-
import "./chunk-TO6JNTML.js";
|
|
77
|
-
import "./chunk-AWDFDFI3.js";
|
|
78
|
-
import "./chunk-P6LJ4Y32.js";
|
|
79
|
-
import "./chunk-GMECXFAN.js";
|
|
80
|
-
import "./chunk-5CS4T6C6.js";
|
|
81
|
-
import "./chunk-5E5EYPZO.js";
|
|
82
|
-
import "./chunk-K26FR4SM.js";
|
|
83
|
-
import "./chunk-VWG7OQKU.js";
|
|
84
|
-
import "./chunk-T6AGUTZJ.js";
|
|
85
|
-
import "./chunk-S3S4TGEH.js";
|
|
86
|
-
import "./chunk-54HJ63Q2.js";
|
|
87
|
-
import "./chunk-PBN6GBJE.js";
|
|
88
|
-
import "./chunk-ZTZA4UWZ.js";
|
|
89
|
-
import "./chunk-KLIKCX6Q.js";
|
|
90
|
-
import "./chunk-EVMY7IPL.js";
|
|
91
|
-
import "./chunk-7FMUTGOH.js";
|
|
92
|
-
import "./chunk-VAJIPSN6.js";
|
|
93
|
-
import "./chunk-K4WIOZFP.js";
|
|
94
|
-
import "./chunk-XUXGIA7H.js";
|
|
95
|
-
import "./chunk-WERLJGIC.js";
|
|
96
|
-
import "./chunk-ISN5GRYI.js";
|
|
97
|
-
import "./chunk-XEWHUPFS.js";
|
|
98
|
-
import "./chunk-EOVYQ3IG.js";
|
|
99
|
-
import "./chunk-XT6MXC7A.js";
|
|
100
|
-
import "./chunk-YPBIAONI.js";
|
|
101
|
-
import "./chunk-4IEH6EAC.js";
|
|
102
|
-
import "./chunk-W2LGJSEN.js";
|
|
103
|
-
import "./chunk-LBQFLUIY.js";
|
|
104
|
-
import "./chunk-BAZ5LCR3.js";
|
|
105
|
-
import "./chunk-VC76R6W2.js";
|
|
106
|
-
import "./chunk-UJKQWGFF.js";
|
|
107
|
-
import "./chunk-YMS5FOMC.js";
|
|
108
|
-
import "./chunk-OFQWTKPW.js";
|
|
109
|
-
import "./chunk-DPVXBVLL.js";
|
|
110
|
-
import "./chunk-634HSJ3J.js";
|
|
111
|
-
import "./chunk-FXMKHHPO.js";
|
|
112
|
-
import "./chunk-RQVDTPGD.js";
|
|
113
|
-
import "./chunk-537IYAEE.js";
|
|
114
|
-
import "./chunk-GK2FIKIQ.js";
|
|
115
|
-
import "./chunk-6BNTGNGD.js";
|
|
116
|
-
import "./chunk-VAS6HQX3.js";
|
|
117
|
-
import "./chunk-OYLO6TYK.js";
|
|
118
|
-
import "./chunk-32GKETR7.js";
|
|
119
|
-
import "./chunk-BSQ7XANM.js";
|
|
120
|
-
import "./chunk-SDYDNHEE.js";
|
|
121
|
-
import "./chunk-TYXH3EKP.js";
|
|
122
|
-
import "./chunk-IXLUTE6N.js";
|
|
51
|
+
} from "./chunk-K2Z5DZBS.js";
|
|
123
52
|
import {
|
|
124
53
|
normalizeErrorMessage
|
|
125
54
|
} from "./chunk-KNU5COPB.js";
|
|
126
|
-
import "./chunk-KGPLIH7B.js";
|
|
127
|
-
import "./chunk-3GXQPCJC.js";
|
|
128
|
-
import "./chunk-M2WBOQ2Q.js";
|
|
129
55
|
|
|
130
56
|
// src/utils/checkBrowser.ts
|
|
131
|
-
import { mkdirSync, writeFileSync } from "fs";
|
|
57
|
+
import { existsSync, mkdirSync, writeFileSync } from "fs";
|
|
58
|
+
import os from "os";
|
|
132
59
|
import { join, resolve } from "path";
|
|
133
60
|
|
|
134
61
|
// src/utils/gsapTweenTails.ts
|
|
@@ -268,12 +195,22 @@ async function preResolveHostileMediaProxies(projectDir, html, autoProxyOverride
|
|
|
268
195
|
variant: proxyVariantFor(facts)
|
|
269
196
|
};
|
|
270
197
|
});
|
|
271
|
-
const
|
|
198
|
+
const total = hostileEntries.length;
|
|
199
|
+
const toMake = sources.filter((source) => !proxyCached(projectDir, source)).length;
|
|
200
|
+
if (toMake > 0) {
|
|
201
|
+
console.error(
|
|
202
|
+
`[hyperframes] Making browser-playable copies of ${toMake} video${toMake === 1 ? "" : "s"} Chrome cannot decode. Only the first check of these files waits for this; later checks reuse the copies.`
|
|
203
|
+
);
|
|
204
|
+
}
|
|
205
|
+
let settled = 0;
|
|
206
|
+
const results = await resolveProxies(projectDir, sources, () => {
|
|
207
|
+
settled += 1;
|
|
208
|
+
if (toMake > 0) console.error(`[hyperframes] browser-playable copies: ${settled}/${total}`);
|
|
209
|
+
});
|
|
272
210
|
const failures = sources.flatMap((source, index) => {
|
|
273
211
|
const result = results[index];
|
|
274
212
|
return result.status === "rejected" ? [{ ...source, reason: result.reason }] : [];
|
|
275
213
|
});
|
|
276
|
-
const total = hostileEntries.length;
|
|
277
214
|
console.error(
|
|
278
215
|
`[hyperframes] media proxy pre-resolve: ${total - failures.length}/${total} ready, ${failures.length} failed (${Date.now() - startedAt}ms)`
|
|
279
216
|
);
|
|
@@ -292,11 +229,18 @@ async function preResolveHostileMediaProxies(projectDir, html, autoProxyOverride
|
|
|
292
229
|
}
|
|
293
230
|
return { findings, failedPaths: new Set(failures.map(({ pathname }) => pathname)) };
|
|
294
231
|
}
|
|
232
|
+
function proxyCached(projectDir, source) {
|
|
233
|
+
try {
|
|
234
|
+
return existsSync(getProxyCachePath(projectDir, source.sourcePath, source.variant));
|
|
235
|
+
} catch {
|
|
236
|
+
return false;
|
|
237
|
+
}
|
|
238
|
+
}
|
|
295
239
|
function proxyFailedDraft(message) {
|
|
296
240
|
return { code: "media_proxy_failed", severity: "warning", message, time: 0 };
|
|
297
241
|
}
|
|
298
242
|
async function runBrowserCheck(project, options, motion, runGrid, deadline, prelaunched) {
|
|
299
|
-
const { bundleWithLocalizedFonts } = await import("./bundleWithLocalizedFonts-
|
|
243
|
+
const { bundleWithLocalizedFonts } = await import("./bundleWithLocalizedFonts-OAYLYC4W.js");
|
|
300
244
|
const html = await bundleWithLocalizedFonts(project.dir);
|
|
301
245
|
const { findings: drafts, failedPaths } = await preResolveHostileMediaProxies(
|
|
302
246
|
project.dir,
|
|
@@ -310,18 +254,15 @@ async function runBrowserCheck(project, options, motion, runGrid, deadline, prel
|
|
|
310
254
|
[],
|
|
311
255
|
options.autoProxy
|
|
312
256
|
);
|
|
313
|
-
|
|
314
|
-
const clock = {
|
|
315
|
-
now: () => stamp,
|
|
316
|
-
at: (time) => {
|
|
317
|
-
stamp = { time };
|
|
318
|
-
},
|
|
319
|
-
during: (range) => {
|
|
320
|
-
stamp = { time: range[0], timeRange: range };
|
|
321
|
-
}
|
|
322
|
-
};
|
|
257
|
+
const clock = createRuntimeClock();
|
|
323
258
|
let failure = { kind: "none" };
|
|
324
259
|
let chromeBrowser;
|
|
260
|
+
const helperSession = samplingBrowserCount(options) > 1 ? startHelperSession(html, server.url, options, deadline) : void 0;
|
|
261
|
+
const helperOpen = helperSession?.opened;
|
|
262
|
+
const helpers = helperOpen?.then(
|
|
263
|
+
(helper) => [helper.driver],
|
|
264
|
+
() => []
|
|
265
|
+
);
|
|
325
266
|
try {
|
|
326
267
|
const launchSettleStart = Date.now();
|
|
327
268
|
const session = await openSettledCompositionPage(html, server.url, {
|
|
@@ -343,7 +284,7 @@ async function runBrowserCheck(project, options, motion, runGrid, deadline, prel
|
|
|
343
284
|
await waitForPreferredSeekTarget(page);
|
|
344
285
|
const rootAnchor = await resolveRootAnchor(page);
|
|
345
286
|
const launchSettleMs = Date.now() - launchSettleStart;
|
|
346
|
-
const { analyzeClipMediaFit } = await import("./src-
|
|
287
|
+
const { analyzeClipMediaFit } = await import("./src-EL6HGIS4.js");
|
|
347
288
|
for (const entry of await auditClipDurations(page, analyzeClipMediaFit, options.timeout)) {
|
|
348
289
|
drafts.push({ code: "clip_media_fit", severity: entry.level, message: entry.text, time: 0 });
|
|
349
290
|
}
|
|
@@ -351,14 +292,18 @@ async function runBrowserCheck(project, options, motion, runGrid, deadline, prel
|
|
|
351
292
|
const message = tweenTailMessage(tail);
|
|
352
293
|
drafts.push({ code: "gsap_tween_tail", severity: "warning", message, time: tail.later.end });
|
|
353
294
|
}
|
|
354
|
-
const
|
|
355
|
-
const
|
|
356
|
-
const
|
|
295
|
+
const sampleLog = sampleWindow(drafts);
|
|
296
|
+
const driver = createPageDriver(page, clock, sampleLog);
|
|
297
|
+
const result = await runGrid(driver, options, motion, helpers);
|
|
298
|
+
helperSession?.stop();
|
|
299
|
+
const helper = await helperOpen?.catch(() => void 0);
|
|
300
|
+
const merged = helper ? mergeHelperDrafts(sampleLog, helper.sampleLog) : drafts;
|
|
301
|
+
const broken = await abortedImagesStillBroken(page, merged);
|
|
357
302
|
return {
|
|
358
303
|
...result,
|
|
359
304
|
timings: { ...result.timings, launchSettleMs },
|
|
360
305
|
runtimeFindings: dropFailedProxyEchoes(
|
|
361
|
-
keepBrokenImageAborts(
|
|
306
|
+
keepBrokenImageAborts(merged, broken),
|
|
362
307
|
failedPaths
|
|
363
308
|
).map((draft) => runtimeFinding(draft, rootAnchor))
|
|
364
309
|
};
|
|
@@ -366,12 +311,87 @@ async function runBrowserCheck(project, options, motion, runGrid, deadline, prel
|
|
|
366
311
|
failure = { kind: "failed", error };
|
|
367
312
|
throw error;
|
|
368
313
|
} finally {
|
|
369
|
-
|
|
314
|
+
helperSession?.stop();
|
|
315
|
+
await helperOpen?.catch(() => void 0);
|
|
316
|
+
await closeCheckResources([chromeBrowser, helperSession?.browser()], server, failure);
|
|
370
317
|
}
|
|
371
318
|
}
|
|
319
|
+
function createRuntimeClock() {
|
|
320
|
+
let stamp = { time: 0 };
|
|
321
|
+
return {
|
|
322
|
+
now: () => stamp,
|
|
323
|
+
at: (time) => {
|
|
324
|
+
stamp = { time };
|
|
325
|
+
},
|
|
326
|
+
during: (range) => {
|
|
327
|
+
stamp = { time: range[0], timeRange: range };
|
|
328
|
+
}
|
|
329
|
+
};
|
|
330
|
+
}
|
|
331
|
+
var SAMPLING_BROWSER_BYTES = 250 * 1024 * 1024;
|
|
332
|
+
function samplingBrowserCount(options, cores = os.availableParallelism(), free = Math.min(os.freemem(), process.availableMemory())) {
|
|
333
|
+
if (options.at?.length === 1) return 1;
|
|
334
|
+
return Math.max(1, Math.min(2, cores - 1, Math.floor(free / SAMPLING_BROWSER_BYTES)));
|
|
335
|
+
}
|
|
336
|
+
function sampleWindow(drafts) {
|
|
337
|
+
return { drafts, start: Number.POSITIVE_INFINITY, end: Number.POSITIVE_INFINITY };
|
|
338
|
+
}
|
|
339
|
+
function startHelperSession(html, url, options, deadline) {
|
|
340
|
+
const abort = new AbortController();
|
|
341
|
+
let browser;
|
|
342
|
+
const opened = openHelperSession(html, url, options, deadline, {
|
|
343
|
+
signal: deadline ? AbortSignal.any([deadline.signal, abort.signal]) : abort.signal,
|
|
344
|
+
onBrowser: (launched) => {
|
|
345
|
+
browser = launched;
|
|
346
|
+
deadline?.ownBrowser(launched);
|
|
347
|
+
}
|
|
348
|
+
});
|
|
349
|
+
return {
|
|
350
|
+
opened,
|
|
351
|
+
browser: () => browser,
|
|
352
|
+
stop: () => {
|
|
353
|
+
abort.abort();
|
|
354
|
+
if (browser) void closeManagedBrowser(browser).catch(() => void 0);
|
|
355
|
+
}
|
|
356
|
+
};
|
|
357
|
+
}
|
|
358
|
+
async function openHelperSession(html, url, options, deadline, owner) {
|
|
359
|
+
const sampleLog = sampleWindow([]);
|
|
360
|
+
const clock = createRuntimeClock();
|
|
361
|
+
const session = await openSettledCompositionPage(html, url, {
|
|
362
|
+
navigationTimeoutMs: options.timeout,
|
|
363
|
+
renderReadyTimeoutMs: options.timeout,
|
|
364
|
+
renderReadyWarningSuffix: "checking the current page state",
|
|
365
|
+
browserGpuMode: options.browserGpuMode ?? resolveCliChromeGpuMode(),
|
|
366
|
+
signal: owner.signal,
|
|
367
|
+
onBrowser: owner.onBrowser,
|
|
368
|
+
beforeNavigate: async (page) => {
|
|
369
|
+
wireRuntimeListeners(page, sampleLog.drafts, clock);
|
|
370
|
+
await deadline?.preparePage(page);
|
|
371
|
+
}
|
|
372
|
+
});
|
|
373
|
+
await waitForPreferredSeekTarget(session.page);
|
|
374
|
+
return {
|
|
375
|
+
driver: createPageDriver(session.page, clock, sampleLog),
|
|
376
|
+
sampleLog
|
|
377
|
+
};
|
|
378
|
+
}
|
|
379
|
+
var draftKey = (draft) => `${draft.code} ${draft.time} ${draft.message}`;
|
|
380
|
+
function mergeHelperDrafts(primary, helper) {
|
|
381
|
+
const window2 = ({ drafts, start: start2, end }) => drafts.slice(Math.min(start2, drafts.length), Math.min(end, drafts.length));
|
|
382
|
+
const own = window2(primary);
|
|
383
|
+
const seen = new Set(own.map(draftKey));
|
|
384
|
+
const extra = window2(helper).filter((draft) => !seen.has(draftKey(draft)));
|
|
385
|
+
const start = Math.min(primary.start, primary.drafts.length);
|
|
386
|
+
return [
|
|
387
|
+
...primary.drafts.slice(0, start),
|
|
388
|
+
...[...own, ...extra].sort((a, b) => a.time - b.time),
|
|
389
|
+
...primary.drafts.slice(start + own.length)
|
|
390
|
+
];
|
|
391
|
+
}
|
|
372
392
|
async function captureFindingCrops(project, options, requests, deadline) {
|
|
373
393
|
if (requests.length === 0) return [];
|
|
374
|
-
const { bundleWithLocalizedFonts } = await import("./bundleWithLocalizedFonts-
|
|
394
|
+
const { bundleWithLocalizedFonts } = await import("./bundleWithLocalizedFonts-OAYLYC4W.js");
|
|
375
395
|
const html = await bundleWithLocalizedFonts(project.dir);
|
|
376
396
|
const server = await serveStaticProjectHtml(
|
|
377
397
|
project.dir,
|
|
@@ -415,12 +435,12 @@ async function captureFindingCrops(project, options, requests, deadline) {
|
|
|
415
435
|
failure = { kind: "failed", error };
|
|
416
436
|
throw error;
|
|
417
437
|
} finally {
|
|
418
|
-
await closeCheckResources(chromeBrowser, server, failure);
|
|
438
|
+
await closeCheckResources([chromeBrowser], server, failure);
|
|
419
439
|
}
|
|
420
440
|
}
|
|
421
|
-
async function closeCheckResources(
|
|
441
|
+
async function closeCheckResources(browsers, server, failure) {
|
|
422
442
|
const cleanup = await Promise.allSettled([
|
|
423
|
-
browser ? closeManagedBrowser(browser) : Promise.resolve(),
|
|
443
|
+
...browsers.map((browser) => browser ? closeManagedBrowser(browser) : Promise.resolve()),
|
|
424
444
|
server.close()
|
|
425
445
|
]);
|
|
426
446
|
const errors = cleanup.filter((entry) => entry.status === "rejected").map((entry) => entry.reason);
|
|
@@ -598,9 +618,14 @@ function wireNetworkListeners(page, drafts, clock) {
|
|
|
598
618
|
});
|
|
599
619
|
});
|
|
600
620
|
}
|
|
601
|
-
function createPageDriver(page, clock) {
|
|
621
|
+
function createPageDriver(page, clock = createRuntimeClock(), sampleLog) {
|
|
602
622
|
return {
|
|
603
623
|
initialize: (contrast) => injectAuditScripts(page, contrast),
|
|
624
|
+
markSamples: (phase) => {
|
|
625
|
+
if (!sampleLog) return;
|
|
626
|
+
if (phase === "drop") sampleLog.start = sampleLog.end = Number.POSITIVE_INFINITY;
|
|
627
|
+
else sampleLog[phase] = sampleLog.drafts.length;
|
|
628
|
+
},
|
|
604
629
|
matchComponents: (components, findings) => page.evaluate(matchComponentFindings, { components, findings }),
|
|
605
630
|
getDuration: () => getCompositionDuration(page),
|
|
606
631
|
hasNoTimelineDeclaration: () => hasNoTimelineDeclaration(page),
|
|
@@ -628,6 +653,12 @@ function createPageDriver(page, clock) {
|
|
|
628
653
|
return issues;
|
|
629
654
|
},
|
|
630
655
|
collectLayoutGeometry: () => collectLayoutGeometry(page),
|
|
656
|
+
captureFrame: (scope) => captureFrame(page, scope),
|
|
657
|
+
framesDiffer: (first, second) => page.evaluate(
|
|
658
|
+
(a, b) => Reflect.apply(Reflect.get(window, "__hyperframesFramesDiffer"), window, [a, b]),
|
|
659
|
+
first,
|
|
660
|
+
second
|
|
661
|
+
).then((differ) => differ === true),
|
|
631
662
|
collectSeekClock: () => collectSeekClock(page),
|
|
632
663
|
collectRotationSample: (time) => collectRotationSample(page, time),
|
|
633
664
|
collectOffPivotRotationSample: (time) => collectOffPivotRotationSample(page, time),
|
|
@@ -806,6 +837,44 @@ async function collectOverlapGrid(page, times) {
|
|
|
806
837
|
)
|
|
807
838
|
);
|
|
808
839
|
}
|
|
840
|
+
async function captureFrame(page, scope) {
|
|
841
|
+
if (!scope) return page.screenshot({ encoding: "base64", type: "png" });
|
|
842
|
+
try {
|
|
843
|
+
const box = await page.evaluate(isolateScopePaint, scope);
|
|
844
|
+
if (!box || box.width < 1 || box.height < 1) return "";
|
|
845
|
+
return await page.screenshot({
|
|
846
|
+
encoding: "base64",
|
|
847
|
+
type: "png",
|
|
848
|
+
clip: box,
|
|
849
|
+
omitBackground: true
|
|
850
|
+
});
|
|
851
|
+
} finally {
|
|
852
|
+
await page.evaluate(restoreScopePaint);
|
|
853
|
+
}
|
|
854
|
+
}
|
|
855
|
+
function isolateScopePaint(scope) {
|
|
856
|
+
let target = null;
|
|
857
|
+
try {
|
|
858
|
+
target = document.querySelector(scope);
|
|
859
|
+
} catch {
|
|
860
|
+
return null;
|
|
861
|
+
}
|
|
862
|
+
if (!target) return null;
|
|
863
|
+
const visibility = getComputedStyle(target).visibility;
|
|
864
|
+
target.setAttribute("data-hf-capture-scope", "");
|
|
865
|
+
const style = document.createElement("style");
|
|
866
|
+
style.id = "__hf_capture_scope_style";
|
|
867
|
+
style.textContent = `:not([data-hf-capture-scope], [data-hf-capture-scope] *) { visibility: hidden !important; }
|
|
868
|
+
:root:not([data-hf-capture-scope]), body:not([data-hf-capture-scope]) { background: none !important; }
|
|
869
|
+
[data-hf-capture-scope] { visibility: ${visibility} !important; }`;
|
|
870
|
+
document.head.append(style);
|
|
871
|
+
const rect = target.getBoundingClientRect();
|
|
872
|
+
return { x: rect.left, y: rect.top, width: rect.width, height: rect.height };
|
|
873
|
+
}
|
|
874
|
+
function restoreScopePaint() {
|
|
875
|
+
document.getElementById("__hf_capture_scope_style")?.remove();
|
|
876
|
+
document.querySelector("[data-hf-capture-scope]")?.removeAttribute("data-hf-capture-scope");
|
|
877
|
+
}
|
|
809
878
|
async function collectLayoutGeometry(page) {
|
|
810
879
|
return page.evaluate(() => {
|
|
811
880
|
const geometry = Reflect.get(window, "__hyperframesLayoutGeometry");
|
|
@@ -1476,13 +1545,17 @@ function matchComponentFindings({
|
|
|
1476
1545
|
return matchesSelector(finding.selector) !== false || typeof container === "string" && matchesSelector(container) !== false;
|
|
1477
1546
|
});
|
|
1478
1547
|
}
|
|
1548
|
+
|
|
1479
1549
|
export {
|
|
1550
|
+
preResolveHostileMediaProxies,
|
|
1551
|
+
runBrowserCheck,
|
|
1552
|
+
samplingBrowserCount,
|
|
1553
|
+
mergeHelperDrafts,
|
|
1480
1554
|
captureFindingCrops,
|
|
1481
|
-
captureOverviewShot,
|
|
1482
|
-
collectSeekClock,
|
|
1483
|
-
dropFailedProxyEchoes,
|
|
1484
1555
|
keepBrokenImageAborts,
|
|
1485
|
-
|
|
1486
|
-
|
|
1487
|
-
|
|
1556
|
+
dropFailedProxyEchoes,
|
|
1557
|
+
createPageDriver,
|
|
1558
|
+
collectSeekClock,
|
|
1559
|
+
captureOverviewShot,
|
|
1560
|
+
matchComponentFindings
|
|
1488
1561
|
};
|
|
@@ -12,10 +12,10 @@ import {
|
|
|
12
12
|
} from "./chunk-DCAI5DBR.js";
|
|
13
13
|
import {
|
|
14
14
|
createProjectConfig
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-K2Z5DZBS.js";
|
|
16
16
|
import {
|
|
17
17
|
isHyperframesProject
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-VFBAKPRC.js";
|
|
19
19
|
|
|
20
20
|
// src/utils/desktopApp.ts
|
|
21
21
|
import { spawn, spawnSync } from "child_process";
|
|
@@ -6,7 +6,7 @@ var __filename = __hf_fileURLToPath(import.meta.url);
|
|
|
6
6
|
var __dirname = __hf_dirname(__filename);
|
|
7
7
|
import {
|
|
8
8
|
stoppedByCancelSignal
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-QX4GGPMY.js";
|
|
10
10
|
import {
|
|
11
11
|
DEFAULT_MODEL,
|
|
12
12
|
ensureModel,
|
|
@@ -14,12 +14,12 @@ import {
|
|
|
14
14
|
hasFFmpeg,
|
|
15
15
|
pinnedWhisperModel,
|
|
16
16
|
sha256File
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-SAQYJLI6.js";
|
|
18
18
|
import {
|
|
19
19
|
findFFmpeg,
|
|
20
20
|
findFFprobe,
|
|
21
21
|
getFFmpegInstallHint
|
|
22
|
-
} from "./chunk-
|
|
22
|
+
} from "./chunk-OH56PXFH.js";
|
|
23
23
|
import {
|
|
24
24
|
findWavChunk
|
|
25
25
|
} from "./chunk-UOFAE5RF.js";
|
|
@@ -8,20 +8,20 @@ import {
|
|
|
8
8
|
pinProjectRecord,
|
|
9
9
|
realFilePath
|
|
10
10
|
} from "./chunk-ALVXFXUG.js";
|
|
11
|
-
import {
|
|
12
|
-
isProjectIgnoredDir
|
|
13
|
-
} from "./chunk-EVMY7IPL.js";
|
|
14
11
|
import {
|
|
15
12
|
atomicTempPath,
|
|
16
13
|
isAtomicTempPath,
|
|
17
14
|
replaceFileAtomically
|
|
18
15
|
} from "./chunk-EOVYQ3IG.js";
|
|
16
|
+
import {
|
|
17
|
+
isProjectIgnoredDir
|
|
18
|
+
} from "./chunk-EVMY7IPL.js";
|
|
19
19
|
import {
|
|
20
20
|
isSafePath,
|
|
21
21
|
mkdirWithinProject
|
|
22
22
|
} from "./chunk-OFQWTKPW.js";
|
|
23
23
|
|
|
24
|
-
// ../studio-server/dist/chunk-
|
|
24
|
+
// ../studio-server/dist/chunk-XM2TJIF5.js
|
|
25
25
|
import { randomUUID as randomUUID7 } from "crypto";
|
|
26
26
|
import { mkdir as mkdir2, readdir as readdir3, rm as rm3, rmdir, writeFile } from "fs/promises";
|
|
27
27
|
import {
|
|
@@ -174,6 +174,10 @@ var HistoryBusyError = class extends Error {
|
|
|
174
174
|
pid;
|
|
175
175
|
url;
|
|
176
176
|
};
|
|
177
|
+
var WINDOWS_BUSY = /* @__PURE__ */ new Set(["EPERM", "EBUSY", "EACCES"]);
|
|
178
|
+
function busyOnWindows(error) {
|
|
179
|
+
return process.platform === "win32" && WINDOWS_BUSY.has(error.code ?? "");
|
|
180
|
+
}
|
|
177
181
|
function alive(pid) {
|
|
178
182
|
if (!Number.isInteger(pid) || pid <= 0) return false;
|
|
179
183
|
try {
|
|
@@ -238,27 +242,36 @@ function servedBy(file, urlFile, pid) {
|
|
|
238
242
|
return void 0;
|
|
239
243
|
}
|
|
240
244
|
}
|
|
245
|
+
function attemptClaim(file, urlFile, deadline) {
|
|
246
|
+
if (claim(file)) return "claimed";
|
|
247
|
+
const pid = ownerOf(file);
|
|
248
|
+
if (pid === null) return "retry";
|
|
249
|
+
if (!alive(pid) && evictDeadOwner(file)) return "retry";
|
|
250
|
+
if (Date.now() >= deadline) throw new HistoryBusyError(pid, servedBy(file, urlFile, pid));
|
|
251
|
+
return "wait";
|
|
252
|
+
}
|
|
241
253
|
async function takeHistoryOwnership(home, waitMs, url) {
|
|
242
254
|
const file = join(home, "owner.pid");
|
|
243
255
|
const urlFile = join(home, "owner-url.json");
|
|
244
256
|
const deadline = Date.now() + waitMs;
|
|
245
257
|
mkdirSync(home, { recursive: true });
|
|
246
258
|
for (; ; ) {
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
if (held) releaseOwn(file);
|
|
253
|
-
held = false;
|
|
254
|
-
};
|
|
259
|
+
let next = "wait";
|
|
260
|
+
try {
|
|
261
|
+
next = attemptClaim(file, urlFile, deadline);
|
|
262
|
+
} catch (error) {
|
|
263
|
+
if (!busyOnWindows(error) || Date.now() >= deadline) throw error;
|
|
255
264
|
}
|
|
256
|
-
|
|
257
|
-
if (
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
265
|
+
if (next === "claimed") break;
|
|
266
|
+
if (next === "wait") await new Promise((settle) => setTimeout(settle, 50));
|
|
267
|
+
}
|
|
268
|
+
advertise(urlFile, url);
|
|
269
|
+
let held = true;
|
|
270
|
+
return () => {
|
|
271
|
+
if (held && servedBy(file, urlFile, process.pid)) rmSync(urlFile, { force: true });
|
|
272
|
+
if (held) releaseOwn(file);
|
|
273
|
+
held = false;
|
|
274
|
+
};
|
|
262
275
|
}
|
|
263
276
|
var manifest = ".hyperframes/render-outputs.json";
|
|
264
277
|
function readRenderOutputs(projectDir) {
|
|
@@ -6,11 +6,11 @@ var __filename = __hf_fileURLToPath(import.meta.url);
|
|
|
6
6
|
var __dirname = __hf_dirname(__filename);
|
|
7
7
|
import {
|
|
8
8
|
withOwner
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-O7N3A7PE.js";
|
|
10
10
|
import {
|
|
11
11
|
HistoryBusyError,
|
|
12
12
|
beginArtifactCapture
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-U6RXZNZE.js";
|
|
14
14
|
|
|
15
15
|
// src/utils/artifactCapture.ts
|
|
16
16
|
var SKIP_BUSY_HISTORY = { ownerWaitMs: 0 };
|
|
@@ -6,40 +6,40 @@ var __filename = __hf_fileURLToPath(import.meta.url);
|
|
|
6
6
|
var __dirname = __hf_dirname(__filename);
|
|
7
7
|
import {
|
|
8
8
|
resolveProject
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-TJB4GAV6.js";
|
|
10
10
|
import {
|
|
11
11
|
installPageFunctionGuard,
|
|
12
12
|
resolveCliChromeGpuMode,
|
|
13
13
|
seekCompositionTimeline,
|
|
14
14
|
waitForRuntimeReady
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-XOVHO3TT.js";
|
|
16
16
|
import {
|
|
17
17
|
resolveCompositionViewportFromHtml
|
|
18
18
|
} from "./chunk-FH7WODJH.js";
|
|
19
19
|
import {
|
|
20
20
|
launchManagedBrowser,
|
|
21
21
|
resolveManagedGpuMode
|
|
22
|
-
} from "./chunk-
|
|
22
|
+
} from "./chunk-GTE5WZAM.js";
|
|
23
23
|
import {
|
|
24
24
|
pageNavigationTimeoutMs
|
|
25
|
-
} from "./chunk-
|
|
25
|
+
} from "./chunk-B2SZZFWW.js";
|
|
26
26
|
import {
|
|
27
27
|
defineCommand
|
|
28
28
|
} from "./chunk-S3S4TGEH.js";
|
|
29
29
|
import {
|
|
30
30
|
failCommand,
|
|
31
31
|
setCommandExitCode
|
|
32
|
-
} from "./chunk-
|
|
32
|
+
} from "./chunk-JVBRJMOP.js";
|
|
33
33
|
import {
|
|
34
34
|
c
|
|
35
35
|
} from "./chunk-ZTZA4UWZ.js";
|
|
36
|
-
import {
|
|
37
|
-
printDeprecationNotice,
|
|
38
|
-
withMeta
|
|
39
|
-
} from "./chunk-VAJIPSN6.js";
|
|
40
36
|
import {
|
|
41
37
|
decodeWellFormedEscapes
|
|
42
38
|
} from "./chunk-BSQ7XANM.js";
|
|
39
|
+
import {
|
|
40
|
+
printDeprecationNotice,
|
|
41
|
+
withMeta
|
|
42
|
+
} from "./chunk-ANR6WOC3.js";
|
|
43
43
|
import {
|
|
44
44
|
normalizeErrorMessage
|
|
45
45
|
} from "./chunk-KNU5COPB.js";
|
|
@@ -227,7 +227,7 @@ function extractCompositionErrorsFromLint(lintResult) {
|
|
|
227
227
|
async function localizeRemoteAssets(html) {
|
|
228
228
|
let dir;
|
|
229
229
|
try {
|
|
230
|
-
const { loadProducer } = await import("./producer-
|
|
230
|
+
const { loadProducer } = await import("./producer-6YM3UH3B.js");
|
|
231
231
|
const { localizeRemoteMediaSources, localizeRemoteImageSources, localizeRemoteFontFaces } = await loadProducer();
|
|
232
232
|
dir = mkdtempSync(join(tmpdir(), "hf-validate-assets-"));
|
|
233
233
|
const assetDir = dir;
|
|
@@ -248,10 +248,10 @@ async function localizeRemoteAssets(html) {
|
|
|
248
248
|
}
|
|
249
249
|
async function validateInBrowser(project, opts) {
|
|
250
250
|
const projectDir = project.dir;
|
|
251
|
-
const { bundleToSingleHtml } = await import("./compiler-
|
|
252
|
-
const { ensureBrowser } = await import("./manager-
|
|
253
|
-
const { serveStaticProjectHtml } = await import("./staticProjectServer-
|
|
254
|
-
const { lintProject } = await import("./lintProject-
|
|
251
|
+
const { bundleToSingleHtml } = await import("./compiler-27KQD7KW.js");
|
|
252
|
+
const { ensureBrowser } = await import("./manager-UHWEKPXC.js");
|
|
253
|
+
const { serveStaticProjectHtml } = await import("./staticProjectServer-EO7X7RAY.js");
|
|
254
|
+
const { lintProject } = await import("./lintProject-C2ONSH2U.js");
|
|
255
255
|
const lintResult = await lintProject(projectDir);
|
|
256
256
|
const compositionErrors = extractCompositionErrorsFromLint(lintResult);
|
|
257
257
|
const html = await bundleToSingleHtml(projectDir);
|
|
@@ -272,9 +272,9 @@ async function validateInBrowser(project, opts) {
|
|
|
272
272
|
try {
|
|
273
273
|
const browser = await ensureBrowser();
|
|
274
274
|
const puppeteer = await import("puppeteer-core");
|
|
275
|
-
const { buildChromeArgs, analyzeClipMediaFit } = await import("./src-
|
|
275
|
+
const { buildChromeArgs, analyzeClipMediaFit } = await import("./src-EL6HGIS4.js");
|
|
276
276
|
const requestedGpuMode = resolveCliChromeGpuMode();
|
|
277
|
-
const { assertWebGpuAdapterAvailable, compositionRequiresWebGpu, resolveLocalWebGpu } = await import("./gpuPolicy-
|
|
277
|
+
const { assertWebGpuAdapterAvailable, compositionRequiresWebGpu, resolveLocalWebGpu } = await import("./gpuPolicy-UDJT2MQK.js");
|
|
278
278
|
const resolvedGpuMode = await resolveManagedGpuMode(requestedGpuMode, browser.executablePath);
|
|
279
279
|
const requiresWebGpu = compositionRequiresWebGpu(html);
|
|
280
280
|
const { gpuConfig, softwareWebGpu } = resolveLocalWebGpu(resolvedGpuMode, requiresWebGpu);
|