@vercel/cli-support 0.0.0 → 65.4.0
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/LICENSE +202 -0
- package/README.md +100 -3
- package/dist/chunks/add-7NS6HIWC.js +8 -0
- package/dist/chunks/add-NMYFDVXW.js +8 -0
- package/dist/chunks/add-PMJ5BECU.js +8 -0
- package/dist/chunks/build-BCY6HQJG.js +7 -0
- package/dist/chunks/chunk-25565AGS.js +7 -0
- package/dist/chunks/chunk-2EYYB6YN.js +7 -0
- package/dist/chunks/chunk-2GHZGOWT.js +7 -0
- package/dist/chunks/chunk-2K3ISCQ6.js +7 -0
- package/dist/chunks/chunk-2NABMKFV.js +29 -0
- package/dist/chunks/chunk-2S6PE6GB.js +7 -0
- package/dist/chunks/chunk-2TUVL6WE.js +12 -0
- package/dist/chunks/chunk-363SJ4TN.js +7 -0
- package/dist/chunks/chunk-3G3FQYMW.js +7 -0
- package/dist/chunks/chunk-3LIKVGFT.js +8 -0
- package/dist/chunks/chunk-3XW7N4W3.js +9 -0
- package/dist/chunks/chunk-462YCCJZ.js +7 -0
- package/dist/chunks/chunk-4CACOKMS.js +7 -0
- package/dist/chunks/chunk-4N6LMERQ.js +57 -0
- package/dist/chunks/chunk-4NTBYNFR.js +17 -0
- package/dist/chunks/chunk-4SAVH3H7.js +7 -0
- package/dist/chunks/chunk-4VFYJU37.js +7 -0
- package/dist/chunks/chunk-527GBU3K.js +7 -0
- package/dist/chunks/chunk-5IWFRZQT.js +10 -0
- package/dist/chunks/chunk-5KUUMQ3M.js +7 -0
- package/dist/chunks/chunk-5RMIM4S2.js +7 -0
- package/dist/chunks/chunk-5V53NA6C.js +7 -0
- package/dist/chunks/chunk-67GZ5REA.js +7 -0
- package/dist/chunks/chunk-6I6QJHCY.js +7 -0
- package/dist/chunks/chunk-6IDNVZZR.js +7 -0
- package/dist/chunks/chunk-6OVX3PWM.js +7 -0
- package/dist/chunks/chunk-6QKS6QK7.js +7 -0
- package/dist/chunks/chunk-6TXEVQA4.js +7 -0
- package/dist/chunks/chunk-6VH56CX2.js +19 -0
- package/dist/chunks/chunk-6Y2ZL5XJ.js +98 -0
- package/dist/chunks/chunk-6YXIWZ3X.js +25 -0
- package/dist/chunks/chunk-773GOZIR.js +13 -0
- package/dist/chunks/chunk-7E3WREH5.js +7 -0
- package/dist/chunks/chunk-7EJQLVWX.js +7 -0
- package/dist/chunks/chunk-7L2K4OKM.js +63 -0
- package/dist/chunks/chunk-7L5QUDUR.js +8 -0
- package/dist/chunks/chunk-7QAGSRCU.js +7 -0
- package/dist/chunks/chunk-7R6TRRG5.js +7 -0
- package/dist/chunks/chunk-7YKFF6CE.js +7 -0
- package/dist/chunks/chunk-A2RZZQEP.js +7 -0
- package/dist/chunks/chunk-ADLBLGT3.js +8 -0
- package/dist/chunks/chunk-AM46JVVN.js +7 -0
- package/dist/chunks/chunk-ANMDN3EG.js +9 -0
- package/dist/chunks/chunk-AYUUSAB7.js +7 -0
- package/dist/chunks/chunk-BLUPZPAS.js +7 -0
- package/dist/chunks/chunk-BPUANOGW.js +7 -0
- package/dist/chunks/chunk-BRQUZ5NC.js +7 -0
- package/dist/chunks/chunk-BS32OUOC.js +7 -0
- package/dist/chunks/chunk-BTI5TG6Q.js +7 -0
- package/dist/chunks/chunk-BUJITHGZ.js +8 -0
- package/dist/chunks/chunk-BVGGTBYE.js +7 -0
- package/dist/chunks/chunk-BVH2AEFE.js +7 -0
- package/dist/chunks/chunk-BZENIQ7N.js +7 -0
- package/dist/chunks/chunk-C6GY2G73.js +7 -0
- package/dist/chunks/chunk-C7FQMC6D.js +7 -0
- package/dist/chunks/chunk-CBVKB3DT.js +21 -0
- package/dist/chunks/chunk-CC6FLKIP.js +11 -0
- package/dist/chunks/chunk-COD3WAUI.js +7 -0
- package/dist/chunks/chunk-CR3NBTHV.js +7 -0
- package/dist/chunks/chunk-CWM2F235.js +7 -0
- package/dist/chunks/chunk-CZSOZKHX.js +7 -0
- package/dist/chunks/chunk-D3AHZ5LI.js +7 -0
- package/dist/chunks/chunk-D6REP5QQ.js +15 -0
- package/dist/chunks/chunk-DFVNL5ML.js +7 -0
- package/dist/chunks/chunk-DKJL2KV7.js +7 -0
- package/dist/chunks/chunk-DQ2SVW4R.js +12 -0
- package/dist/chunks/chunk-DWZBL4NK.js +7 -0
- package/dist/chunks/chunk-EAUDC24V.js +9 -0
- package/dist/chunks/chunk-EAXMWCOL.js +63 -0
- package/dist/chunks/chunk-ECEDD646.js +8 -0
- package/dist/chunks/chunk-ECQIO5K3.js +7 -0
- package/dist/chunks/chunk-EEUJLJEJ.js +7 -0
- package/dist/chunks/chunk-EGNR2DEI.js +7 -0
- package/dist/chunks/chunk-EISD3RG7.js +11 -0
- package/dist/chunks/chunk-EKZTFGDX.js +7 -0
- package/dist/chunks/chunk-ETV3C2CV.js +7 -0
- package/dist/chunks/chunk-EU2GBIPC.js +7 -0
- package/dist/chunks/chunk-F4KY2TOK.js +7 -0
- package/dist/chunks/chunk-F53OKXYI.js +7 -0
- package/dist/chunks/chunk-F6EBOT64.js +7 -0
- package/dist/chunks/chunk-F7AVGV4Y.js +7 -0
- package/dist/chunks/chunk-FBYA6LLM.js +7 -0
- package/dist/chunks/chunk-FGFLTLEA.js +7 -0
- package/dist/chunks/chunk-FHU2O7ZJ.js +8 -0
- package/dist/chunks/chunk-FLHO75XC.js +8 -0
- package/dist/chunks/chunk-FSPPKNKN.js +7 -0
- package/dist/chunks/chunk-FUX6LKNP.js +7 -0
- package/dist/chunks/chunk-GA277JFB.js +20 -0
- package/dist/chunks/chunk-GCZVIDNG.js +86 -0
- package/dist/chunks/chunk-GD7AV7BO.js +9 -0
- package/dist/chunks/chunk-GG5RME4X.js +7 -0
- package/dist/chunks/chunk-GHAY4PSD.js +7 -0
- package/dist/chunks/chunk-GYVJIIYL.js +7 -0
- package/dist/chunks/chunk-GZNDA6SV.js +8 -0
- package/dist/chunks/chunk-HCRD3JFL.js +7 -0
- package/dist/chunks/chunk-HEGJZJO7.js +7 -0
- package/dist/chunks/chunk-HRR57QNP.js +7 -0
- package/dist/chunks/chunk-HSFKISDH.js +9 -0
- package/dist/chunks/chunk-HTXDC7E2.js +10 -0
- package/dist/chunks/chunk-ID663OJ7.js +7 -0
- package/dist/chunks/chunk-IOZ3I765.js +7 -0
- package/dist/chunks/chunk-IQ7FPAI4.js +7 -0
- package/dist/chunks/chunk-IQKGQ2Y2.js +15 -0
- package/dist/chunks/chunk-ISWW3DKF.js +7 -0
- package/dist/chunks/chunk-IVSSTHB6.js +7 -0
- package/dist/chunks/chunk-J24BABG4.js +21 -0
- package/dist/chunks/chunk-JALVF3C2.js +7 -0
- package/dist/chunks/chunk-JELLVPCM.js +8 -0
- package/dist/chunks/chunk-JESNVRVR.js +7 -0
- package/dist/chunks/chunk-JLE7K4SY.js +9 -0
- package/dist/chunks/chunk-JLEJB6KM.js +7 -0
- package/dist/chunks/chunk-JP33AIDQ.js +7 -0
- package/dist/chunks/chunk-JRPNHWA3.js +7 -0
- package/dist/chunks/chunk-JUSR7V2L.js +7 -0
- package/dist/chunks/chunk-JWCEHQQF.js +29 -0
- package/dist/chunks/chunk-K5U47EVH.js +7 -0
- package/dist/chunks/chunk-KCKYPLIH.js +7 -0
- package/dist/chunks/chunk-KGBIRIFF.js +7 -0
- package/dist/chunks/chunk-KJA2GKPT.js +7 -0
- package/dist/chunks/chunk-KPQLUGFI.js +32 -0
- package/dist/chunks/chunk-KQCFC2JL.js +7 -0
- package/dist/chunks/chunk-KQCROPL3.js +8 -0
- package/dist/chunks/chunk-KRPY5FHJ.js +7 -0
- package/dist/chunks/chunk-KW6GSQXV.js +7 -0
- package/dist/chunks/chunk-KY335KWI.js +7 -0
- package/dist/chunks/chunk-L3JYCXVB.js +23 -0
- package/dist/chunks/chunk-LFOWP74R.js +7 -0
- package/dist/chunks/chunk-LOBA3E72.js +7 -0
- package/dist/chunks/chunk-LQVSU5HR.js +7 -0
- package/dist/chunks/chunk-LSF7FY6X.js +7 -0
- package/dist/chunks/chunk-LSQREJXO.js +11 -0
- package/dist/chunks/chunk-LW4N3CW6.js +9 -0
- package/dist/chunks/chunk-M2NXKZKX.js +16 -0
- package/dist/chunks/chunk-MBEKRUTQ.js +8 -0
- package/dist/chunks/chunk-MCRKBVZA.js +7 -0
- package/dist/chunks/chunk-MVGTMPMI.js +23 -0
- package/dist/chunks/chunk-MXTC4ZAQ.js +7 -0
- package/dist/chunks/chunk-N2FLYCCO.js +9 -0
- package/dist/chunks/chunk-N6JBQMOF.js +20 -0
- package/dist/chunks/chunk-NAX6IARA.js +11 -0
- package/dist/chunks/chunk-NB2WLB3J.js +12 -0
- package/dist/chunks/chunk-NGKO2OOU.js +8 -0
- package/dist/chunks/chunk-NW7WWUCQ.js +9 -0
- package/dist/chunks/chunk-NWGBDBZI.js +7 -0
- package/dist/chunks/chunk-NZ2TFADV.js +7 -0
- package/dist/chunks/chunk-O4WNSKQR.js +15 -0
- package/dist/chunks/chunk-O72YDZKD.js +10 -0
- package/dist/chunks/chunk-OAM5NJCU.js +9 -0
- package/dist/chunks/chunk-OCR5CRTH.js +10 -0
- package/dist/chunks/chunk-OFDTADPQ.js +7 -0
- package/dist/chunks/chunk-OHEOYFBU.js +9 -0
- package/dist/chunks/chunk-OO572JUC.js +7 -0
- package/dist/chunks/chunk-OPORM35X.js +7 -0
- package/dist/chunks/chunk-OZCQTXI4.js +7 -0
- package/dist/chunks/chunk-PADL3C6Z.js +7 -0
- package/dist/chunks/chunk-PFD7LETF.js +7 -0
- package/dist/chunks/chunk-PFPJLIFF.js +33 -0
- package/dist/chunks/chunk-PSOVLGHP.js +7 -0
- package/dist/chunks/chunk-PUKYAALC.js +7 -0
- package/dist/chunks/chunk-PVASGBEF.js +7 -0
- package/dist/chunks/chunk-Q4KTAQB3.js +7 -0
- package/dist/chunks/chunk-Q5ODLDCU.js +7 -0
- package/dist/chunks/chunk-Q7D7RGXM.js +7 -0
- package/dist/chunks/chunk-QB7F3UAP.js +7 -0
- package/dist/chunks/chunk-QHJLRTVY.js +7 -0
- package/dist/chunks/chunk-QIVX6SCR.js +27 -0
- package/dist/chunks/chunk-QVHXFHBV.js +14 -0
- package/dist/chunks/chunk-QVXS234E.js +7 -0
- package/dist/chunks/chunk-QVZAAMGQ.js +39 -0
- package/dist/chunks/chunk-R2BUF6Z7.js +7 -0
- package/dist/chunks/chunk-R2XHJDAP.js +7 -0
- package/dist/chunks/chunk-R6BEOVTU.js +7 -0
- package/dist/chunks/chunk-RLKS5G6C.js +12 -0
- package/dist/chunks/chunk-RM3ZDRYE.js +7 -0
- package/dist/chunks/chunk-RMZTB2IU.js +7 -0
- package/dist/chunks/chunk-RRDNKB2X.js +7 -0
- package/dist/chunks/chunk-RW3X523R.js +8 -0
- package/dist/chunks/chunk-S3L2OHPO.js +7 -0
- package/dist/chunks/chunk-SACGQMVQ.js +13 -0
- package/dist/chunks/chunk-SCV7XEEO.js +7 -0
- package/dist/chunks/chunk-SF4E3AQ3.js +7 -0
- package/dist/chunks/chunk-SLGUYM42.js +10 -0
- package/dist/chunks/chunk-SYFG2RM6.js +10 -0
- package/dist/chunks/chunk-T6243EDS.js +7 -0
- package/dist/chunks/chunk-TAAWMNNL.js +7 -0
- package/dist/chunks/chunk-TAISZMA2.js +7 -0
- package/dist/chunks/chunk-TEYREL44.js +7 -0
- package/dist/chunks/chunk-TG2RCYTH.js +7 -0
- package/dist/chunks/chunk-TIPQQ4TG.js +17 -0
- package/dist/chunks/chunk-U2OBPULW.js +7 -0
- package/dist/chunks/chunk-U4Z2MMOF.js +301 -0
- package/dist/chunks/chunk-U56NHYAH.js +7 -0
- package/dist/chunks/chunk-UGNIIDHR.js +32 -0
- package/dist/chunks/chunk-UHBMX3OK.js +7 -0
- package/dist/chunks/chunk-UVHKXCR5.js +11 -0
- package/dist/chunks/chunk-V6Y6UK6B.js +43 -0
- package/dist/chunks/chunk-VNIKIQVE.js +10 -0
- package/dist/chunks/chunk-VT6RIZJH.js +7 -0
- package/dist/chunks/chunk-WDXW6A4H.js +10 -0
- package/dist/chunks/chunk-WEH6XC4Y.js +22 -0
- package/dist/chunks/chunk-WKZ6JSGZ.js +7 -0
- package/dist/chunks/chunk-WVHCBDTB.js +7 -0
- package/dist/chunks/chunk-XC46OAAT.js +9 -0
- package/dist/chunks/chunk-XGTKHQTT.js +7 -0
- package/dist/chunks/chunk-XOETL6DB.js +96 -0
- package/dist/chunks/chunk-XP3FT56R.js +27 -0
- package/dist/chunks/chunk-XR6QY7RR.js +7 -0
- package/dist/chunks/chunk-XVDRGWXM.js +16 -0
- package/dist/chunks/chunk-Y5ZMKL7E.js +7 -0
- package/dist/chunks/chunk-YEZJNXQX.js +7 -0
- package/dist/chunks/chunk-YHPPP3SF.js +7 -0
- package/dist/chunks/chunk-YHULP2KK.js +7 -0
- package/dist/chunks/chunk-YMZ6WBKB.js +21 -0
- package/dist/chunks/chunk-ZF27J6FQ.js +7 -0
- package/dist/chunks/chunk-ZFRNVIHI.js +7 -0
- package/dist/chunks/chunk-ZN6CQWVP.js +7 -0
- package/dist/chunks/chunk-ZQBSAMFL.js +24 -0
- package/dist/chunks/cjs-2SMN43VH.js +54 -0
- package/dist/chunks/clear-FKVWDCVA.js +8 -0
- package/dist/chunks/compile-vercel-config-GWAJE44R.js +7 -0
- package/dist/chunks/config-5WVLG5SE.js +8 -0
- package/dist/chunks/config-RMOHN5YT.js +7 -0
- package/dist/chunks/config-validator.mjs +1 -0
- package/dist/chunks/connect-git-provider-FS5Q2HO4.js +7 -0
- package/dist/chunks/constants-JAB7MRSK.js +7 -0
- package/dist/chunks/create-project-IKCB6MB2.js +7 -0
- package/dist/chunks/delete-5WMB4WFR.js +9 -0
- package/dist/chunks/delete-EM4JZPFA.js +10 -0
- package/dist/chunks/detect-projects-OD4JEAW2.js +7 -0
- package/dist/chunks/detect-services-BSJGB4RM.js +7 -0
- package/dist/chunks/disable-QOM7UHQC.js +7 -0
- package/dist/chunks/discard-L5ZH7P5B.js +14 -0
- package/dist/chunks/dist-33WTJLVQ.js +7 -0
- package/dist/chunks/dist-RXYNZPEA.js +7 -0
- package/dist/chunks/edit-F3VJGCG2.js +9 -0
- package/dist/chunks/edit-TM7YCWBU.js +8 -0
- package/dist/chunks/enable-72C3QX34.js +7 -0
- package/dist/chunks/esm-33752ISR.js +7 -0
- package/dist/chunks/esm-4JKEE7PC.js +7 -0
- package/dist/chunks/esm-BYG5BWYH.js +9 -0
- package/dist/chunks/esm-DFFBNKNU.js +20 -0
- package/dist/chunks/esm-IF453UWS.js +7 -0
- package/dist/chunks/esm-LABWDJ72.js +7 -0
- package/dist/chunks/esm-TG37FXTU.js +9 -0
- package/dist/chunks/exec-OZSY46V6.js +16372 -0
- package/dist/chunks/export-EPLYZF2Q.js +19 -0
- package/dist/chunks/fetch-proxy-45DGILKR.js +67 -0
- package/dist/chunks/future-V77DRMQG.js +7 -0
- package/dist/chunks/generate-cert-for-deploy-Y3YHBMPU.js +7 -0
- package/dist/chunks/image-CVXEXU5R.js +7 -0
- package/dist/chunks/import-builders-PGRKJOOE.js +7 -0
- package/dist/chunks/inspect-BTRNXRJT.js +9 -0
- package/dist/chunks/inspect-CZ7WXYE5.js +20 -0
- package/dist/chunks/inspect-FGDVWAQP.js +13 -0
- package/dist/chunks/inspect-HFDGZNWC.js +15 -0
- package/dist/chunks/inspect-T2AIREYK.js +19 -0
- package/dist/chunks/list-CKRRHAOE.js +12 -0
- package/dist/chunks/list-FLREMGJR.js +16 -0
- package/dist/chunks/list-ON4YTQRN.js +10 -0
- package/dist/chunks/login-55LJ5ZA6.js +9 -0
- package/dist/chunks/login-DQRZSD4Z.js +7 -0
- package/dist/chunks/logs-2HQXWOHM.js +7 -0
- package/dist/chunks/ls-2HUJHVLA.js +12 -0
- package/dist/chunks/ls-3DVM5HLK.js +12 -0
- package/dist/chunks/ls-4B3QYHCI.js +8 -0
- package/dist/chunks/ls-A7K4XDQB.js +8 -0
- package/dist/chunks/ls-FK5XEJEU.js +12 -0
- package/dist/chunks/ls-QGUKJJY5.js +12 -0
- package/dist/chunks/ls-VTKHPDWS.js +11 -0
- package/dist/chunks/mutate-7ADZBCZM.js +9 -0
- package/dist/chunks/notifications-XZJXE2K4.js +7 -0
- package/dist/chunks/open-EE5IZQD7.js +7 -0
- package/dist/chunks/openapi-QBX62ZXC.js +7 -0
- package/dist/chunks/permissions-VYJ4LL5R.js +7 -0
- package/dist/chunks/pkg-EDJQLCNP.js +7 -0
- package/dist/chunks/plugin-offer-TEGYA3TA.js +9 -0
- package/dist/chunks/prompt-missing-credentials-VP6OVCFM.js +7 -0
- package/dist/chunks/publish-2HEK5UMJ.js +15 -0
- package/dist/chunks/pull-WRTTSY7J.js +7 -0
- package/dist/chunks/purchase-domain-if-available-6S3NLTUI.js +7 -0
- package/dist/chunks/push-L3QRGGLC.js +7 -0
- package/dist/chunks/query-FXXLX6UB.js +12 -0
- package/dist/chunks/reauthenticate-IXQDC4UZ.js +7 -0
- package/dist/chunks/reorder-B4OXSYCI.js +10 -0
- package/dist/chunks/reply-F637K6XH.js +9 -0
- package/dist/chunks/repo-info-to-url-XQSULSEO.js +7 -0
- package/dist/chunks/resolve-E3F6NYQZ.js +12 -0
- package/dist/chunks/resolve-agent-team-EIPCH766.js +7 -0
- package/dist/chunks/resolve-deployment-framework-preset-AXXYBFCL.js +7 -0
- package/dist/chunks/restore-Q25KRZPH.js +16 -0
- package/dist/chunks/rm-FWD2NUGX.js +8 -0
- package/dist/chunks/rm-JMQ4QKCC.js +8 -0
- package/dist/chunks/rm-PPG7P3GN.js +8 -0
- package/dist/chunks/rm-SH3DYKNS.js +8 -0
- package/dist/chunks/rm-UEBLKFVC.js +8 -0
- package/dist/chunks/routes-PKTWMDWQ.js +7 -0
- package/dist/chunks/rule-inspect-LKQA5I4V.js +8 -0
- package/dist/chunks/schema-FBV42W7N.js +14 -0
- package/dist/chunks/schema-ZWE5MNMG.js +44 -0
- package/dist/chunks/select-org-WMB752Z6.js +7 -0
- package/dist/chunks/set-UTYIPOLC.js +7 -0
- package/dist/chunks/setup-and-link-ZLY5XQW5.js +7 -0
- package/dist/chunks/skills-RKIGVVNM.js +590 -0
- package/dist/chunks/slugify-NMMUASYK.js +7 -0
- package/dist/chunks/stamp-TKONNIJ5.js +7 -0
- package/dist/chunks/tags-UCLZ5UMX.js +7 -0
- package/dist/chunks/token-W6P2KNI5.js +7 -0
- package/dist/chunks/token-util-JDQI37VN.js +7 -0
- package/dist/chunks/types-YM7TMHXW.js +14 -0
- package/dist/chunks/update-BGDQ5TXO.js +8 -0
- package/dist/chunks/update-route-version-KWK5S4UW.js +7 -0
- package/dist/chunks/utils-IQZEE4DT.js +86 -0
- package/dist/chunks/vlt-builder-graph-XL2XRO4V.js +7 -0
- package/dist/chunks/vlt-builder-importer-RBUPAB6J.js +11 -0
- package/dist/chunks/zod-2C2SXNIK.js +7 -0
- package/dist/commands/build/builder-worker.cjs +281 -0
- package/dist/commands/build/index.js +34 -0
- package/dist/commands/deploy/index.js +72 -0
- package/dist/commands/dev/builder-worker.cjs +110 -0
- package/dist/commands/dev/index.js +157 -0
- package/dist/commands/env/index.js +40 -0
- package/dist/commands/link/index.js +10 -0
- package/dist/commands/list/index.js +14 -0
- package/dist/commands/project/index.js +113 -0
- package/dist/commands-account.js +209 -0
- package/dist/commands-ai.js +200 -0
- package/dist/commands-blob.js +107 -0
- package/dist/commands-core.js +222 -0
- package/dist/commands-deployments.js +84 -0
- package/dist/commands-flags.js +377 -0
- package/dist/commands-integrations.js +143 -0
- package/dist/commands-observability.js +122 -0
- package/dist/commands-routing.js +273 -0
- package/dist/fetch-dist-tags.cjs +60 -0
- package/dist/get-latest-worker.cjs +222 -0
- package/dist/help.js +7 -0
- package/dist/index.js +27 -0
- package/dist/internal-build-worker.js +10 -0
- package/dist/internal-build.js +11 -0
- package/dist/package.json +264 -0
- package/dist/root-help-commands.mjs +1 -0
- package/dist/runtime-assets/dev-tunnel/api/tunnel.ts +443 -0
- package/dist/runtime-assets/dev-tunnel/lib/env.ts +25 -0
- package/dist/runtime-assets/dev-tunnel/lib/tunnel_pb.ts +505 -0
- package/dist/runtime-assets/node-preloads/next-dev-websocket.cjs +220 -0
- package/dist/vc.js +404 -0
- package/dist/version.mjs +2 -0
- package/package.json +224 -14
- package/index.js +0 -1
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
const https = require('https');
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Fetches the dist tags from npm for a given package.
|
|
5
|
+
*
|
|
6
|
+
* This is a shared CJS module used by both:
|
|
7
|
+
* - `get-latest-worker.cjs` (background cache refresh, spawned process)
|
|
8
|
+
* - `get-latest-version/index.ts` (fresh pre-prompt lookup, main process)
|
|
9
|
+
*
|
|
10
|
+
* @param {string} name The package name
|
|
11
|
+
* @param {{ timeout?: number }} [options]
|
|
12
|
+
* @param {number} [options.timeout] Maximum time to wait, in milliseconds
|
|
13
|
+
* @returns {Promise<Record<string, string> | undefined>} A map of dist tags
|
|
14
|
+
* to versions, or `undefined` on any error/timeout.
|
|
15
|
+
*/
|
|
16
|
+
function fetchDistTags(name, options) {
|
|
17
|
+
const timeout = (options && options.timeout) || 3000;
|
|
18
|
+
const agent = new https.Agent({
|
|
19
|
+
keepAlive: true,
|
|
20
|
+
maxSockets: 15, // See: `npm config get maxsockets`
|
|
21
|
+
});
|
|
22
|
+
const headers = {
|
|
23
|
+
accept:
|
|
24
|
+
'application/vnd.npm.install-v1+json; q=1.0, application/json; q=0.8, */*',
|
|
25
|
+
};
|
|
26
|
+
const url = `https://registry.npmjs.org/-/package/${name}/dist-tags`;
|
|
27
|
+
|
|
28
|
+
return new Promise(resolve => {
|
|
29
|
+
const timer = setTimeout(() => {
|
|
30
|
+
req.destroy();
|
|
31
|
+
resolve(undefined);
|
|
32
|
+
}, timeout);
|
|
33
|
+
|
|
34
|
+
const req = https.get(url, { agent, headers }, res => {
|
|
35
|
+
let buf = '';
|
|
36
|
+
res.on('data', chunk => {
|
|
37
|
+
buf += chunk;
|
|
38
|
+
});
|
|
39
|
+
res.on('end', () => {
|
|
40
|
+
clearTimeout(timer);
|
|
41
|
+
try {
|
|
42
|
+
if (res.statusCode && res.statusCode >= 400) {
|
|
43
|
+
resolve(undefined);
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
resolve(JSON.parse(buf));
|
|
47
|
+
} catch {
|
|
48
|
+
resolve(undefined);
|
|
49
|
+
}
|
|
50
|
+
});
|
|
51
|
+
});
|
|
52
|
+
|
|
53
|
+
req.on('error', () => {
|
|
54
|
+
clearTimeout(timer);
|
|
55
|
+
resolve(undefined);
|
|
56
|
+
});
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
module.exports = { fetchDistTags };
|
|
@@ -0,0 +1,222 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This file is spawned in the background and checks npm for the latest version
|
|
3
|
+
* of the CLI, then writes the version to the cache file.
|
|
4
|
+
*
|
|
5
|
+
* NOTE: Since this file runs asynchronously in the background, it's possible
|
|
6
|
+
* for multiple instances of this file to be running at the same time leading
|
|
7
|
+
* to a race condition where the most recent instance will overwrite the
|
|
8
|
+
* previous cache file resetting the `notified` flag and cause the update
|
|
9
|
+
* notification to appear for multiple consequetive commands. Not the end of
|
|
10
|
+
* the world, but something to be aware of.
|
|
11
|
+
*
|
|
12
|
+
* IMPORTANT! This file must NOT depend on any 3rd party dependencies. This
|
|
13
|
+
* file is NOT bundled by `esbuild` and thus any 3rd party dependencies will
|
|
14
|
+
* never be available.
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
const { mkdirSync, writeFileSync } = require('fs');
|
|
18
|
+
const { access, mkdir, readFile, unlink, writeFile } = require('fs/promises');
|
|
19
|
+
const path = require('path');
|
|
20
|
+
const { format, inspect } = require('util');
|
|
21
|
+
const { fetchDistTags } = require('./fetch-dist-tags.cjs');
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* An simple output helper which accumulates error and debug log messages in
|
|
25
|
+
* memory for potential persistence to disk while immediately outputting errors
|
|
26
|
+
* and debug messages, when the `--debug` flag is set, to `stderr`.
|
|
27
|
+
*/
|
|
28
|
+
class WorkerOutput {
|
|
29
|
+
debugLog = [];
|
|
30
|
+
logFile = null;
|
|
31
|
+
|
|
32
|
+
constructor({ debug = true }) {
|
|
33
|
+
this.debugOutputEnabled = debug;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
debug(...args) {
|
|
37
|
+
this.print('debug', args);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
error(...args) {
|
|
41
|
+
this.print('error', args);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
print(type, args) {
|
|
45
|
+
// note: `args` may contain an `Error` that will be toString()'d and thus
|
|
46
|
+
// no stack trace
|
|
47
|
+
const str = format(
|
|
48
|
+
...args.map(s => (typeof s === 'string' ? s : inspect(s)))
|
|
49
|
+
);
|
|
50
|
+
this.debugLog.push(`[${new Date().toISOString()}] [${type}] ${str}`);
|
|
51
|
+
if (type === 'debug' && this.debugOutputEnabled) {
|
|
52
|
+
// biome-ignore lint/suspicious/noConsole: intentional console usage
|
|
53
|
+
console.error(`> '[debug] [${new Date().toISOString()}] ${str}`);
|
|
54
|
+
} else if (type === 'error') {
|
|
55
|
+
// biome-ignore lint/suspicious/noConsole: intentional console usage
|
|
56
|
+
console.error(`Error: ${str}`);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
setLogFile(file) {
|
|
61
|
+
// wire up the exit handler the first time the log file is set
|
|
62
|
+
if (this.logFile === null) {
|
|
63
|
+
process.on('exit', () => {
|
|
64
|
+
if (this.debugLog.length) {
|
|
65
|
+
mkdirSync(path.dirname(this.logFile), { recursive: true });
|
|
66
|
+
writeFileSync(this.logFile, this.debugLog.join('\n'));
|
|
67
|
+
}
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
this.logFile = file;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
const output = new WorkerOutput({
|
|
75
|
+
// enable the debug logging if the `--debug` is set or if this worker script
|
|
76
|
+
// was directly executed
|
|
77
|
+
debug: process.argv.includes('--debug') || !process.connected,
|
|
78
|
+
});
|
|
79
|
+
|
|
80
|
+
process.on('unhandledRejection', err => {
|
|
81
|
+
output.error('Exiting worker due to unhandled rejection:', err);
|
|
82
|
+
process.exit(1);
|
|
83
|
+
});
|
|
84
|
+
|
|
85
|
+
// this timer will prevent this worker process from running longer than 10s
|
|
86
|
+
const timer = setTimeout(() => {
|
|
87
|
+
output.error('Worker timed out after 10 seconds');
|
|
88
|
+
process.exit(1);
|
|
89
|
+
}, 10000);
|
|
90
|
+
|
|
91
|
+
// wait for the parent to give us the work payload
|
|
92
|
+
process.once('message', async msg => {
|
|
93
|
+
output.debug('Received message from parent:', msg);
|
|
94
|
+
|
|
95
|
+
output.debug('Disconnecting from parent');
|
|
96
|
+
process.disconnect();
|
|
97
|
+
|
|
98
|
+
const { cacheFile, distTag, name, updateCheckInterval } = msg;
|
|
99
|
+
const cacheFileParsed = path.parse(cacheFile);
|
|
100
|
+
await mkdir(cacheFileParsed.dir, { recursive: true });
|
|
101
|
+
|
|
102
|
+
output.setLogFile(
|
|
103
|
+
path.join(cacheFileParsed.dir, `${cacheFileParsed.name}.log`)
|
|
104
|
+
);
|
|
105
|
+
|
|
106
|
+
const lockFile = path.join(
|
|
107
|
+
cacheFileParsed.dir,
|
|
108
|
+
`${cacheFileParsed.name}.lock`
|
|
109
|
+
);
|
|
110
|
+
|
|
111
|
+
try {
|
|
112
|
+
// check for a lock file and either bail if running or write our pid and continue
|
|
113
|
+
output.debug(`Checking lock file: ${lockFile}`);
|
|
114
|
+
if (await isRunning(lockFile)) {
|
|
115
|
+
output.debug('Worker already running, exiting');
|
|
116
|
+
process.exit(1);
|
|
117
|
+
}
|
|
118
|
+
output.debug(`Initializing lock file with pid ${process.pid}`);
|
|
119
|
+
await writeFile(lockFile, String(process.pid), 'utf-8');
|
|
120
|
+
|
|
121
|
+
output.debug(`Fetching dist-tags for ${name}`);
|
|
122
|
+
const tags = await fetchDistTags(name, { timeout: 8000 });
|
|
123
|
+
if (!tags) {
|
|
124
|
+
throw new Error('Failed to fetch dist-tags from npm');
|
|
125
|
+
}
|
|
126
|
+
const version = tags[distTag];
|
|
127
|
+
const expireAt = Date.now() + updateCheckInterval;
|
|
128
|
+
const notifyAt = await getNotifyAt(cacheFile, version);
|
|
129
|
+
|
|
130
|
+
if (version) {
|
|
131
|
+
output.debug(`Found dist tag "${distTag}" with version "${version}"`);
|
|
132
|
+
} else {
|
|
133
|
+
output.error(`Dist tag "${distTag}" not found`);
|
|
134
|
+
output.debug('Available dist tags:', Object.keys(tags));
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
output.debug(`Writing cache file: ${cacheFile}`);
|
|
138
|
+
await writeFile(
|
|
139
|
+
cacheFile,
|
|
140
|
+
JSON.stringify({
|
|
141
|
+
expireAt,
|
|
142
|
+
notifyAt,
|
|
143
|
+
version,
|
|
144
|
+
})
|
|
145
|
+
);
|
|
146
|
+
} catch (err) {
|
|
147
|
+
output.error(`Failed to get package info:`, err);
|
|
148
|
+
} finally {
|
|
149
|
+
clearTimeout(timer);
|
|
150
|
+
|
|
151
|
+
if (await fileExists(lockFile)) {
|
|
152
|
+
output.debug(`Releasing lock file: ${lockFile}`);
|
|
153
|
+
await unlink(lockFile);
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
output.debug(`Worker finished successfully!`);
|
|
157
|
+
|
|
158
|
+
// force the worker to exit
|
|
159
|
+
process.exit(0);
|
|
160
|
+
}
|
|
161
|
+
});
|
|
162
|
+
|
|
163
|
+
// signal the parent process we're ready
|
|
164
|
+
if (process.connected) {
|
|
165
|
+
output.debug("Notifying parent we're ready");
|
|
166
|
+
process.send({ type: 'ready' });
|
|
167
|
+
} else {
|
|
168
|
+
// biome-ignore lint/suspicious/noConsole: intentional console usage
|
|
169
|
+
console.error('No IPC bridge detected, exiting');
|
|
170
|
+
process.exit(1);
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
async function fileExists(file) {
|
|
174
|
+
return access(file)
|
|
175
|
+
.then(() => true)
|
|
176
|
+
.catch(() => false);
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
async function isRunning(lockFile) {
|
|
180
|
+
try {
|
|
181
|
+
const pid = parseInt(await readFile(lockFile, 'utf-8'));
|
|
182
|
+
output.debug(`Found lock file with pid: ${pid}`);
|
|
183
|
+
|
|
184
|
+
// checks for existence of a process; throws if not found
|
|
185
|
+
process.kill(pid, 0);
|
|
186
|
+
|
|
187
|
+
// process is still running
|
|
188
|
+
return true;
|
|
189
|
+
} catch (err) {
|
|
190
|
+
if (await fileExists(lockFile)) {
|
|
191
|
+
// lock file does not exist or process is not running and pid is stale
|
|
192
|
+
output.debug(`Resetting lock file: ${err.toString()}`);
|
|
193
|
+
await unlink(lockFile);
|
|
194
|
+
}
|
|
195
|
+
return false;
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
/**
|
|
200
|
+
* Attempts to load and return the previous `notifyAt` value.
|
|
201
|
+
*
|
|
202
|
+
* If the latest version is newer than the previous latest version, then
|
|
203
|
+
* return `undefined` to invalidate `notifyAt` which forces the notification
|
|
204
|
+
* to be displayed, otherwise keep the existing `notifyAt`.
|
|
205
|
+
*
|
|
206
|
+
* @param {string} cacheFile The path to the cache file
|
|
207
|
+
* @param {string} version The latest version
|
|
208
|
+
* @returns {number | undefined} The previous notifyAt
|
|
209
|
+
*/
|
|
210
|
+
async function getNotifyAt(cacheFile, version) {
|
|
211
|
+
try {
|
|
212
|
+
const old = JSON.parse(await readFile(cacheFile, 'utf-8'));
|
|
213
|
+
if (old?.version && old.version === version) {
|
|
214
|
+
return old.notifyAt;
|
|
215
|
+
}
|
|
216
|
+
} catch (err) {
|
|
217
|
+
// cache does not exist or malformed
|
|
218
|
+
if (err.code !== 'ENOENT') {
|
|
219
|
+
output.debug(`Error reading latest package cache file: ${err}`);
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
}
|
package/dist/help.js
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { createRequire as __createRequire } from 'node:module';
|
|
2
|
+
import { fileURLToPath as __fileURLToPath } from 'node:url';
|
|
3
|
+
import { dirname as __dirname_ } from 'node:path';
|
|
4
|
+
const require = __createRequire(import.meta.url);
|
|
5
|
+
const __filename = __fileURLToPath(import.meta.url);
|
|
6
|
+
const __dirname = __dirname_(__filename);
|
|
7
|
+
import{help}from"./chunks/chunk-EAXMWCOL.js";import"./chunks/chunk-NB2WLB3J.js";import"./chunks/chunk-ISWW3DKF.js";import"./chunks/chunk-BRQUZ5NC.js";import"./chunks/chunk-BZENIQ7N.js";export{help};
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { createRequire as __createRequire } from 'node:module';
|
|
2
|
+
import { fileURLToPath as __fileURLToPath } from 'node:url';
|
|
3
|
+
import { dirname as __dirname_ } from 'node:path';
|
|
4
|
+
const require = __createRequire(import.meta.url);
|
|
5
|
+
const __filename = __fileURLToPath(import.meta.url);
|
|
6
|
+
const __dirname = __dirname_(__filename);
|
|
7
|
+
import{handleCommandTypo}from"./chunks/chunk-EISD3RG7.js";import{help}from"./chunks/chunk-EAXMWCOL.js";import{checkTelemetryStatus,earlyGetConfig,exitWithUnexpectedError,getDirectBuildFallbackAttributes,getSentry,handleUnexpectedError,installProcessGuards,isOutputDebugEnabled,registerUnexpectedErrorHandlers,reportError}from"./chunks/chunk-LW4N3CW6.js";import{BUILD_LABEL}from"./chunks/chunk-WKZ6JSGZ.js";import"./chunks/chunk-R2XHJDAP.js";import{canAutoUpdate,executeAutomaticUpgrade,executeUpgrade,getWhoamiCachedAnswer,hasAutoUpdatePreference,require_xdg_app_paths,scheduleNativeAutoUpdate,setAutoUpdate}from"./chunks/chunk-CBVKB3DT.js";import{getUpdateCommand}from"./chunks/chunk-KQCFC2JL.js";import{require_semver}from"./chunks/chunk-BPUANOGW.js";import"./chunks/chunk-U56NHYAH.js";import{box}from"./chunks/chunk-RLKS5G6C.js";import"./chunks/chunk-DWZBL4NK.js";import{matchesCliApiTag}from"./chunks/chunk-363SJ4TN.js";import"./chunks/chunk-KRPY5FHJ.js";import"./chunks/chunk-D6REP5QQ.js";import{RootTelemetryClient,asksForVersion,deployAcceptsOptions,getCommandPathOptions,printCommandHelp,printGroupHelp,printUnknownCommand,tokensAfterCommand}from"./chunks/chunk-5IWFRZQT.js";import{require_ci_info}from"./chunks/chunk-2EYYB6YN.js";import"./chunks/chunk-FBYA6LLM.js";import"./chunks/chunk-25565AGS.js";import"./chunks/chunk-7EJQLVWX.js";import{getFalseValueWarnings}from"./chunks/chunk-Y5ZMKL7E.js";import{getTeams}from"./chunks/chunk-FGFLTLEA.js";import"./chunks/chunk-SCV7XEEO.js";import{commands,commandsStructs,executionsListSubcommand,schedulesCommand}from"./chunks/chunk-O4WNSKQR.js";import"./chunks/chunk-6I6QJHCY.js";import"./chunks/chunk-EKZTFGDX.js";import"./chunks/chunk-462YCCJZ.js";import"./chunks/chunk-WVHCBDTB.js";import"./chunks/chunk-TAISZMA2.js";import"./chunks/chunk-527GBU3K.js";import"./chunks/chunk-CR3NBTHV.js";import"./chunks/chunk-BVGGTBYE.js";import"./chunks/chunk-6TXEVQA4.js";import"./chunks/chunk-5KUUMQ3M.js";import"./chunks/chunk-UHBMX3OK.js";import"./chunks/chunk-EEUJLJEJ.js";import"./chunks/chunk-NW7WWUCQ.js";import"./chunks/chunk-F6EBOT64.js";import"./chunks/chunk-LFOWP74R.js";import"./chunks/chunk-LOBA3E72.js";import"./chunks/chunk-7R6TRRG5.js";import"./chunks/chunk-JALVF3C2.js";import"./chunks/chunk-OZCQTXI4.js";import"./chunks/chunk-FSPPKNKN.js";import"./chunks/chunk-FLHO75XC.js";import"./chunks/chunk-773GOZIR.js";import{printError}from"./chunks/chunk-HSFKISDH.js";import"./chunks/chunk-67GZ5REA.js";import"./chunks/chunk-BS32OUOC.js";import{param}from"./chunks/chunk-3G3FQYMW.js";import{TelemetryEventStore}from"./chunks/chunk-6YXIWZ3X.js";import"./chunks/chunk-PUKYAALC.js";import{forgetCachedTeamSlug,isAppPrincipalEnabled,resolveAppTokenScope}from"./chunks/chunk-K5U47EVH.js";import"./chunks/chunk-MXTC4ZAQ.js";import{isNativeBinaryInstall}from"./chunks/chunk-NWGBDBZI.js";import{AGENT_REASON,AGENT_STATUS,isHelpInvocation,shouldEmitNonInteractiveCommandError,trackAgentCommandOutcome}from"./chunks/chunk-WDXW6A4H.js";import"./chunks/chunk-DKJL2KV7.js";import{Client,TEAM_NOT_CHOSEN,getAuthConfigFilePath,getConfigFilePath,getLinkFromDir,getLinkedProjectIdSync,getUser,getVercelDirectory,hasLocalProjectLink,highlight,humanizePath,isValidAccessToken,readAuthConfigFile,readConfigFile,require_lib,writeToConfigFile}from"./chunks/chunk-4N6LMERQ.js";import"./chunks/chunk-ADLBLGT3.js";import{getGlobalPathConfig}from"./chunks/chunk-CWM2F235.js";import"./chunks/chunk-4NTBYNFR.js";import{getUsedDeprecatedShorthands,parseArguments,require_arg}from"./chunks/chunk-KCKYPLIH.js";import{getTeamByIdOrSlug}from"./chunks/chunk-F53OKXYI.js";import{arg_common_default,getFlagsSpecification,globalCommandOptions,shouldPrintVersionBanner,wantsMachineReadableOutput,warnDeprecatedInput}from"./chunks/chunk-QVXS234E.js";import{setFetchDispatcher}from"./chunks/chunk-FUX6LKNP.js";import"./chunks/chunk-OPORM35X.js";import{require_cli_config}from"./chunks/chunk-4SAVH3H7.js";import{APIError,CantFindConfig,CantParseJSONFile}from"./chunks/chunk-6VH56CX2.js";import{cmd,getCommandNamePlain,getTitleName}from"./chunks/chunk-JESNVRVR.js";import{UNCLASSIFIED_ERROR_CODE,cliErrorFromUnknown,output_manager_default,recordCliError,recordCliErrorFromOutput,require_build_utils,takeCliError}from"./chunks/chunk-XP3FT56R.js";import"./chunks/chunk-BLUPZPAS.js";import{require_dist}from"./chunks/chunk-RM3ZDRYE.js";import{pkg_default}from"./chunks/chunk-OO572JUC.js";import"./chunks/chunk-D3AHZ5LI.js";import"./chunks/chunk-2GHZGOWT.js";import"./chunks/chunk-YHPPP3SF.js";import{require_source}from"./chunks/chunk-NB2WLB3J.js";import"./chunks/chunk-ISWW3DKF.js";import"./chunks/chunk-BRQUZ5NC.js";import{__commonJS,__require,__toESM}from"./chunks/chunk-BZENIQ7N.js";var require_fetch_dist_tags=__commonJS({"src/util/get-latest-version/fetch-dist-tags.cjs"(exports,module){"use strict";var https=__require("https");function fetchDistTags2(name,options){let timeout=options&&options.timeout||3e3,agent=new https.Agent({keepAlive:!0,maxSockets:15}),headers={accept:"application/vnd.npm.install-v1+json; q=1.0, application/json; q=0.8, */*"},url=`https://registry.npmjs.org/-/package/${name}/dist-tags`;return new Promise(resolve2=>{let timer=setTimeout(()=>{req.destroy(),resolve2(void 0)},timeout),req=https.get(url,{agent,headers},res=>{let buf="";res.on("data",chunk=>{buf+=chunk}),res.on("end",()=>{clearTimeout(timer);try{if(res.statusCode&&res.statusCode>=400){resolve2(void 0);return}resolve2(JSON.parse(buf))}catch{resolve2(void 0)}})});req.on("error",()=>{clearTimeout(timer),resolve2(void 0)})})}module.exports={fetchDistTags:fetchDistTags2}}});var import_error_utils=__toESM(require_dist(),1),import_fs_extra2=__toESM(require_lib(),1),import_chalk=__toESM(require_source(),1),import_semver2=__toESM(require_semver(),1);import{join as join2,resolve}from"path";import{existsSync as existsSync2}from"fs";var import_semver=__toESM(require_semver(),1),import_xdg_app_paths=__toESM(require_xdg_app_paths(),1),import_fs_extra=__toESM(require_lib(),1);import{dirname,parse as parsePath,resolve as resolvePath}from"path";import{spawn}from"child_process";var import_fetch_dist_tags=__toESM(require_fetch_dist_tags(),1);function getLatestVersion({cacheDir=(0,import_xdg_app_paths.default)("com.vercel.cli").cache(),distTag="latest",notifyInterval=1e3*60*60*24*3,pkg,updateCheckInterval=1e3*60*60*24,consumeNotification=!0}){if(!pkg||typeof pkg!="object"||!pkg.name||typeof pkg.name!="string")throw new TypeError("Expected package to be an object with a package name");let cacheFile=resolvePath(cacheDir,"package-updates",`${pkg.name}-${distTag}.json`),cache;try{cache=(0,import_fs_extra.readJSONSync)(cacheFile)}catch(err){err.code!=="ENOENT"&&output_manager_default?.debug(`Error reading latest package cache file: ${err}`)}if((!cache||!cache.expireAt||cache.expireAt<=Date.now())&&spawnWorker({cacheFile,distTag,name:pkg.name,updateCheckInterval}),cache){let shouldNotify=!cache.notifyAt||cache.notifyAt<=Date.now(),updateAvailable=!1;if(cache.version&&pkg.version&&(updateAvailable=import_semver.default.lt(pkg.version,cache.version)),shouldNotify&&updateAvailable)return consumeNotification&&(cache.notifyAt=Date.now()+notifyInterval,(0,import_fs_extra.outputJSONSync)(cacheFile,cache)),cache.version}}function spawnWorker(payload){let dir=dirname(__filename),script=resolvePath(dir,"dist","get-latest-worker.cjs"),{root}=parsePath(dir);for(;!(0,import_fs_extra.existsSync)(script);){if(dir=dirname(dir),dir===root){output_manager_default?.debug("Failed to find the get latest worker script!");return}script=resolvePath(dir,"dist","get-latest-worker.cjs")}output_manager_default?.debug(`Spawning ${script}`);let args=[script];output_manager_default?.debugEnabled&&args.push("--debug");let worker=spawn(process.execPath,args,{stdio:["inherit","inherit","inherit","ipc"],windowsHide:!0}),workerReadyTimer=setTimeout(()=>worker.kill(),2e3),onClose=code=>{output_manager_default?.debug(`Get latest worker exited (code ${code})`)};worker.on("close",onClose),worker.on("error",err=>{output_manager_default?.log(`Failed to spawn get latest worker: ${err.stack}`)}),worker.once("message",()=>{clearTimeout(workerReadyTimer),worker.removeListener("close",onClose),worker.send(payload),worker.unref()})}async function fetchLatestVersion({name,distTag="latest",timeout=3e3}){return(await(0,import_fetch_dist_tags.fetchDistTags)(name,{timeout}))?.[distTag]}function updateLatestVersionCache({cacheDir=(0,import_xdg_app_paths.default)("com.vercel.cli").cache(),distTag="latest",name,version,updateCheckInterval=1e3*60*60*24}){let cacheFile=resolvePath(cacheDir,"package-updates",`${name}-${distTag}.json`),notifyAt;try{notifyAt=(0,import_fs_extra.readJSONSync)(cacheFile)?.notifyAt}catch{}(0,import_fs_extra.outputJSONSync)(cacheFile,{expireAt:Date.now()+updateCheckInterval,notifyAt,version})}import{URL}from"url";var SUBCOMMANDS_WITHOUT_TOKEN=["login","logout","signup","help","init","build","builders","changelog","pricing","feedback","deploy","sandbox","telemetry","upgrade","version","skills","health","status-page","agent","whoami"];var import_arg=__toESM(require_arg(),1);var flagsSpecification={...getFlagsSpecification([...schedulesCommand.options,...schedulesCommand.subcommands.flatMap(command=>command.options),...executionsListSubcommand.options]),"--local":Boolean,"-L":"--local","--changelog":Boolean};function parseSchedulesArguments(argv){let parsed=parseArguments(argv.slice(2),flagsSpecification,{warnDeprecated:!1});return{...parsed,args:[...argv.slice(0,2),...parsed.args]}}function isSchedulesCommand(argv){try{let{_:args}=(0,import_arg.default)({...arg_common_default(),...flagsSpecification},{argv:argv.slice(2),stopAtPositional:!0});return args[0]==="schedules"||args[0]==="help"&&args[1]==="schedules"}catch{return!1}}function isLocalSchedulesCommand(argv){try{let{args,flags}=parseSchedulesArguments(argv);return(args[2]==="schedules"||args[2]==="help"&&args[3]==="schedules")&&flags["--local"]===!0}catch{return!1}}function getSchedulesErrorContext(argv){let spec={...arg_common_default(),...flagsSpecification},local=!1,nonInteractive;for(let i=2;i<argv.length;i++){let token=argv[i];if(token==="--")break;if(!token.startsWith("-")||token==="-")continue;let options=token.startsWith("--")?[token]:[...token.slice(1)].map(letter=>`-${letter}`);for(let j=0;j<options.length;j++){let[option,value]=options[j].split(/=(.*)/,2),name=typeof spec[option]=="string"?spec[option]:option,handler=spec[name];if(!handler)break;if(handler!==Boolean){if(j<options.length-1)break;let next=argv[i+1];value===void 0&&next!==void 0&&(!next.startsWith("-")||next==="-"||handler===Number&&/^-?\d*(\.(?=\d))?\d*$/.test(next))&&i++;continue}if(name==="--local"&&(local=!0),name==="--non-interactive"){let separateFalse=value===void 0&&argv[i+1]==="false";value==="false"||separateFalse?(nonInteractive=!1,separateFalse&&i++):nonInteractive!==!1&&(nonInteractive=!0)}}}return{local,nonInteractive}}function getCachedScopeTeamId(config,scope){return config.cachedTeamIds?.[scope]}function setCachedScopeTeamId(client2,scope,teamId,persistedTeamId){if(getCachedScopeTeamId(client2.config,scope)===teamId)return;let config=client2.config;config.cachedTeamIds={...config.cachedTeamIds,[scope]:teamId},writeToConfigFile({...config,currentTeam:persistedTeamId})}function attempt(fn){try{return fn()}catch{return}}function createRunTelemetry({isAgent,telemetry,store,getClient,getConfigIdentity,getProjectId}){let runEndTracked=!1,saveStarted=!1,trackFailedRunError=(exitCode,client2)=>{let details=takeCliError();!isAgent||exitCode===0&&!details?.reportOnSuccess||isHelpInvocation(client2?.argv??process.argv)||(telemetry.trackErrorStatus(details?.status),telemetry.trackErrorCode(details?.code??UNCLASSIFIED_ERROR_CODE),telemetry.trackErrorSlug(details?.slug),telemetry.trackErrorAction(details?.action),telemetry.trackErrorServerMessage(details?.serverMessage))},trackRunEnd=exitCode=>{if(runEndTracked)return;runEndTracked=!0;let client2=getClient();trackFailedRunError(exitCode,client2),client2&&trackAgentCommandOutcome(client2,exitCode)};return{trackRunEnd,markSaveStarted:()=>{saveStarted=!0},get saveStarted(){return saveStarted},flushOnExit:exitCode=>{if(saveStarted)return;saveStarted=!0,attempt(()=>trackRunEnd(exitCode));let client2=getClient(),identity=attempt(getConfigIdentity);attempt(()=>store.updateTeamId(client2?.config.currentTeam??identity?.teamId)),attempt(()=>store.updateUserId(client2?.authConfig.userId??identity?.userId));let projectId=attempt(getProjectId);projectId&&store.updateProjectId(projectId),attempt(()=>telemetry.trackProjectId(store.currentProjectId)),attempt(()=>store.save({detach:!0}).catch(()=>{}))}}}function captureStdoutErrors(stream){let write=stream.write;return stream.write=function(chunk,...rest){return recordCliErrorFromOutput(chunk),Reflect.apply(write,this,[chunk,...rest])},()=>{stream.write=write}}var import_ci_info=__toESM(require_ci_info(),1),BRIDGE_TAG=/^[a-zA-Z0-9_.:-]{1,80}$/;function getOutcome({exitCode,completion}){return exitCode===130?"canceled":exitCode!==0?"failure":completion==="process_exit"?"unknown":"success"}function toCommandTrace(event,context){let tags={command:context.command,invocation_id:context.invocationId,cli_version:context.cliVersion,release_channel:context.releaseChannel,platform:process.platform,arch:process.arch,is_agent:String(context.isAgent),exit_code:String(context.exitCode),completion:context.completion,outcome:getOutcome(context)};return context.agentName&&BRIDGE_TAG.test(context.agentName)&&(tags.agent_name=context.agentName),import_ci_info.default.id&&(tags.ci=import_ci_info.default.id),{id:event.id,name:event.name,timestamp:event.timestamp,startTime:event.startTime,duration:event.duration,tags}}var import_cli_config=__toESM(require_cli_config(),1);var RELEASE_NOTES_URL="https://vercel.com/docs/cli/release-notes";function getReleaseNotesUrl(version){return`${RELEASE_NOTES_URL}#vercel@${version}`}async function runUpdateMaintenance(exitCode,update){try{return await update()}catch(error){return output_manager_default.stopSpinner(),output_manager_default.debug(`Post-command update failed; preserving exit code ${exitCode??0}: ${error instanceof Error?error.message:String(error)}`),exitCode}}function shouldStartUserLookupForTelemetry({authConfig,hasTelemetryUserId}){return!hasTelemetryUserId&&!authConfig.userId&&isValidAccessToken(authConfig)}import{readFileSync}from"node:fs";import{homedir}from"node:os";import{join}from"node:path";var ACTIVE_SESSION_MARKER_PATH=join(homedir(),".config","vercel-plugin","active-session.json"),SEMVERISH_RE=/^\d+\.\d+\.\d+(?:[-+][0-9A-Za-z.-]+)?$/;function isRecord(value){return typeof value=="object"&&value!==null}function readVercelPluginActiveSessionMarker(opts={}){let filePath=opts.filePath??ACTIVE_SESSION_MARKER_PATH,now=opts.now?.()??Date.now();try{let marker=JSON.parse(readFileSync(filePath,"utf-8"));return!isRecord(marker)||marker.schema!==1||marker.active!==!0||typeof marker.expiresAt!="number"||marker.expiresAt<=now||typeof marker.pluginVersion!="string"||!SEMVERISH_RE.test(marker.pluginVersion)?null:{pluginVersion:marker.pluginVersion}}catch{return null}}var BETA_COMMANDS=new Set(["budget","budgets","crons","daemons","kms","schedules"]);var BASIC_COMMANDS=new Set(["build","cache","deploy","dev","env","git","help","init","inspect","install","integration","link","list","login","logout","open","promote","pull","redeploy","rollback","signup","switch"]),DEPRECATED_COMMANDS=new Set(["integration-resource"]),DEFAULT_COMMAND="deploy",HELP_ROW={names:["help"],description:"Show help for a command",basic:!0,default:!1};function summarize(description){let firstLine=description.trim().split(`
|
|
8
|
+
`)[0],sentenceEnd=/[^.]\.(\s|$)/.exec(firstLine);return(sentenceEnd?firstLine.slice(0,sentenceEnd.index+1):firstLine).replace(/\.$/,"")}function getRootHelpCommands(commands2){let rows=[HELP_ROW];for(let command of commands2){if(!("description"in command)||command.hidden||DEPRECATED_COMMANDS.has(command.name))continue;let description=summarize(command.description);BETA_COMMANDS.has(command.name)&&(description+=" [beta]"),rows.push({names:[command.name],description,basic:BASIC_COMMANDS.has(command.name),default:command.name===DEFAULT_COMMAND});for(let alias of command.aliases){let subcommand=command.subcommands?.find(candidate=>candidate.name===alias&&!candidate.hidden);subcommand&&rows.push({names:[alias],description:summarize(subcommand.description),basic:BASIC_COMMANDS.has(alias),default:!1})}}return rows.sort((a,b)=>a.default!==b.default?a.default?-1:1:a.names[a.names.length-1].localeCompare(b.names[b.names.length-1]))}function checkGuidanceStatus({config}){process.env.FF_GUIDANCE_MODE&&(process.env.CI||process.env.VERCEL_GUIDANCE_DISABLED||config.guidance||(output_manager_default.note("The Vercel CLI can suggest common follow-up commands and steps to help guide new users."),output_manager_default.log("You can disable this feature by running:"),output_manager_default.log("vercel guidance disable"),output_manager_default.log("or by setting VERCEL_GUIDANCE_DISABLED=1"),config.guidance={enabled:!0},writeToConfigFile(config)))}import{determineAgent}from"@vercel/detect-agent";var import_build_utils=__toESM(require_build_utils(),1);import{mkdir,writeFile}from"fs/promises";try{process.cwd()}catch(err){(0,import_error_utils.isError)(err)&&err.message.includes("uv_cwd")&&(console.error("Error: The current working directory does not exist."),process.exit(1))}var VERCEL_DIR=getGlobalPathConfig(),VERCEL_CONFIG_PATH=getConfigFilePath(),VERCEL_AUTH_CONFIG_PATH=getAuthConfigFilePath(),GLOBAL_COMMANDS=new Set(["help"]);function hasProxyConfig(){return["HTTP_PROXY","HTTPS_PROXY","http_proxy","https_proxy","ALL_PROXY","all_proxy"].some(v=>process.env[v])}installProcessGuards();var client,resolvedCommandForUpdate;registerUnexpectedErrorHandlers(()=>client);process.env.CLAUDECODE&&process.stderr.write(`<claude-code-hint v="1" type="plugin" value="vercel@claude-plugins-official" />
|
|
9
|
+
`);var IS_LOCAL_SCHEDULES_COMMAND=isLocalSchedulesCommand(process.argv),SHOULD_CHECK_FOR_UPDATES=!IS_LOCAL_SCHEDULES_COMMAND&&!process.env.NO_UPDATE_NOTIFIER&&!process.env.VERCEL,{isTTY}=process.stdout,apiUrl="https://api.vercel.com",InMemoryReporter=class{constructor(){this.events=[]}report(event){this.events.push(event)}},main=async()=>{let traceReporter=new InMemoryReporter,rootSpan=new import_build_utils.Span({name:"vc.cli",reporter:traceReporter,attrs:getDirectBuildFallbackAttributes()}),isTelemetryFlushCommand=process.argv[2]==="telemetry"&&process.argv[3]==="flush";process.env.FORCE_TTY==="1"&&(isTTY=!0,process.stdout.isTTY=!0,process.stdin.isTTY=!0);let parseInitialArgs=({keepNegations=!1}={})=>IS_LOCAL_SCHEDULES_COMMAND||isSchedulesCommand(process.argv)?parseSchedulesArguments(process.argv):parseArguments(process.argv,{"--version":Boolean,"-v":"--version","--changelog":Boolean,"--non-interactive":Boolean},{permissive:!0,keepNegations}),emitSchedulesArgumentError=async message=>{if(isSchedulesCommand(process.argv)){let context=getSchedulesErrorContext(process.argv);if(context.nonInteractive??((await determineAgent()).isAgent&&process.stdin?.isTTY!==!0))return process.stdout.write(`${JSON.stringify({status:AGENT_STATUS.ERROR,reason:AGENT_REASON.INVALID_ARGUMENTS,message,next:[{command:getCommandNamePlain(`schedules${context.local?" --local":""} --help`),when:"Review the supported schedules options"}]},null,2)}
|
|
10
|
+
`),!0}return!1},parsedArgs;try{parsedArgs=parseInitialArgs();let isDebugging=isOutputDebugEnabled(parsedArgs.flags["--debug"]),isNoColor=parsedArgs.flags["--no-color"];output_manager_default.initialize({debug:isDebugging,noColor:isNoColor})}catch(err){return await emitSchedulesArgumentError(err instanceof Error?err.message:String(err))||printError(err),2}if(IS_LOCAL_SCHEDULES_COMMAND&&(parsedArgs.flags["--token"]!==void 0||parsedArgs.flags["--scope"]!==void 0||parsedArgs.flags["--team"]!==void 0)){let message="Can't combine `--local` with `--token`, `--scope`, or `--team`. Remove the cloud options to manage local schedules.";return await emitSchedulesArgumentError(message)||output_manager_default.fatal(message),2}let localConfigPath=parsedArgs.flags["--local-config"],localConfig=await earlyGetConfig(localConfigPath);if(localConfig instanceof CantParseJSONFile)return output_manager_default.error(`Couldn't parse JSON file ${localConfig.meta.file}.`),1;if(localConfig instanceof CantFindConfig){if(localConfigPath)return output_manager_default.error(`Couldn't find a project configuration file at
|
|
11
|
+
${localConfig.meta.paths.join(` or
|
|
12
|
+
`)}`),1;localConfig=void 0}if(localConfig instanceof Error)return output_manager_default.prettyError(localConfig),1;let targetOrSubcommand=parsedArgs.args[2]||(parsedArgs.flags["--changelog"]?"changelog":void 0),subSubCommand=parsedArgs.args[3],shortBuildLabel=void 0?` (${(void 0).split(" ")[0]})`:"",versionBanner=isNativeBinaryInstall()?`${getTitleName()} CLI ${pkg_default.version}${shortBuildLabel}`:`${getTitleName()} CLI ${pkg_default.version}${shortBuildLabel} (Node.js ${process.versions.node})`,msg=versionBanner;if(targetOrSubcommand==="ci"?msg=`${versionBanner} | ci is in beta`:targetOrSubcommand&&BETA_COMMANDS.has(targetOrSubcommand)&&(msg=`${versionBanner} | ${targetOrSubcommand} is in beta \u2014 https://vercel.com/feedback`),shouldPrintVersionBanner(targetOrSubcommand,process.argv)&&output_manager_default.print(`${import_chalk.default.dim(msg)}
|
|
13
|
+
`),!targetOrSubcommand&&parsedArgs.flags["--help"]||targetOrSubcommand==="help"&&(!subSubCommand||subSubCommand==="help"))return process.stdout.write(help(getRootHelpCommands(commandsStructs),process.stdout.columns)),0;if(!targetOrSubcommand&&parsedArgs.flags["--version"])return console.log(pkg_default.version),0;try{await(0,import_fs_extra2.mkdirp)(VERCEL_DIR)}catch(err){return output_manager_default.error(`An unexpected error occurred while trying to create the global directory "${humanizePath(VERCEL_DIR)}" ${(0,import_error_utils.errorToString)(err)}`),1}let config;try{config=readConfigFile()}catch(err){if((0,import_error_utils.isErrnoException)(err)&&err.code==="ENOENT"){config=import_cli_config.defaultGlobalConfig;try{writeToConfigFile(config)}catch(err2){return output_manager_default.error(`An unexpected error occurred while trying to save the config to "${humanizePath(VERCEL_CONFIG_PATH)}" ${(0,import_error_utils.errorToString)(err2)}`),1}}else return output_manager_default.error(`An unexpected error occurred while trying to read the config in "${humanizePath(VERCEL_CONFIG_PATH)}" ${(0,import_error_utils.errorToString)(err)}`),1}let tokenSource,explicitToken;typeof parsedArgs.flags["--token"]=="string"?(explicitToken=parsedArgs.flags["--token"],tokenSource="flag"):!IS_LOCAL_SCHEDULES_COMMAND&&process.env.VERCEL_TOKEN&&(explicitToken=process.env.VERCEL_TOKEN,tokenSource="env");let authConfig;if(IS_LOCAL_SCHEDULES_COMMAND||tokenSource)authConfig=(0,import_cli_config.getDefaultAuthConfig)();else try{authConfig=readAuthConfigFile(config)}catch(err){if((0,import_error_utils.isErrnoException)(err)&&err.code==="ENOENT")authConfig=(0,import_cli_config.getDefaultAuthConfig)();else return output_manager_default.error(`An unexpected error occurred while trying to read the auth config in "${humanizePath(VERCEL_AUTH_CONFIG_PATH)}" ${(0,import_error_utils.errorToString)(err)}`),1}let telemetryEventStore=new TelemetryEventStore({isDebug:process.env.VERCEL_TELEMETRY_DEBUG==="1",config:config.telemetry,globalConfigDir:VERCEL_DIR,cliDevice:isTelemetryFlushCommand?void 0:{filePath:join2(VERCEL_DIR,"telemetry-device.json")},cliSession:isTelemetryFlushCommand?void 0:{filePath:join2(VERCEL_DIR,"telemetry-session.json")}});checkTelemetryStatus({config}),process.env.FF_GUIDANCE_MODE&&checkGuidanceStatus({config});let telemetry=new RootTelemetryClient({opts:{store:telemetryEventStore}}),{isAgent,agent:detectedAgent}=await determineAgent();isAgent&&output_manager_default.initialize({hideSpinners:!0}),telemetry.trackInvocationId(telemetryEventStore.currentInvocationId),telemetry.trackDeviceId(telemetryEventStore.currentDeviceId);let vercelPluginMarker=readVercelPluginActiveSessionMarker();vercelPluginMarker&&(telemetry.trackVercelPluginActiveSession(),telemetry.trackVercelPluginVersion(vercelPluginMarker.pluginVersion)),telemetry.trackAgenticUse(detectedAgent?.name),telemetry.trackCPUs(),telemetry.trackPlatform(),telemetry.trackArch(),telemetry.trackLibc(telemetryEventStore.currentLibc),telemetry.trackCliLaunch(),telemetry.trackCIVendorName(),telemetry.trackStdinIsTTY(process.stdin?.isTTY===!0),telemetry.trackVersion(pkg_default.version),telemetry.trackCliOptionCwd(parsedArgs.flags["--cwd"]),telemetry.trackCliOptionLocalConfig(parsedArgs.flags["--local-config"]),telemetry.trackCliOptionGlobalConfig(parsedArgs.flags["--global-config"]),telemetry.trackCliFlagDebug(parsedArgs.flags["--debug"]),telemetry.trackCliFlagNoColor(parsedArgs.flags["--no-color"]),telemetry.trackCliOptionScope(parsedArgs.flags["--scope"]),telemetry.trackCliOptionToken(parsedArgs.flags["--token"]),telemetry.trackCliOptionTeam(parsedArgs.flags["--team"]),telemetry.trackCliOptionApi(parsedArgs.flags["--api"]);let earlyGetUserPromise,trackAgenticErrorTelemetry=err=>{recordCliError(cliErrorFromUnknown(err,{includeMessage:!0}),{override:!0})},runTelemetry=createRunTelemetry({isAgent,telemetry,store:telemetryEventStore,getClient:()=>client,getConfigIdentity:()=>({teamId:config.currentTeam,userId:authConfig.userId}),getProjectId:()=>(0,import_build_utils.getPlatformEnv)("PROJECT_ID")??getLinkedProjectIdSync(getVercelDirectory(client?.cwd||(typeof parsedArgs.flags["--cwd"]=="string"?parsedArgs.flags["--cwd"]:process.cwd())))}),saveTelemetry=async()=>{if(runTelemetry.saveStarted)return;let postCommandSpan=rootSpan.child("vc.postCommand");if(client&&telemetryEventStore.updateConfig(client.config.telemetry),telemetryEventStore.updateTeamId(client?.config.currentTeam??config.currentTeam),telemetryEventStore.updateUserId(client?.authConfig.userId??authConfig.userId),!telemetryEventStore.hasUserId){let getUserSpan=postCommandSpan.child("vc.postCommand.getUser");try{let user=await earlyGetUserPromise;user&&telemetryEventStore.updateUserId(user.id)}catch{}finally{getUserSpan.stop()}}try{let envProjectId=(0,import_build_utils.getPlatformEnv)("PROJECT_ID");if(envProjectId)telemetryEventStore.updateProjectId(envProjectId);else{let cwdForProjectId=client?.cwd||(typeof parsedArgs.flags["--cwd"]=="string"?parsedArgs.flags["--cwd"]:process.cwd()),link=await getLinkFromDir(getVercelDirectory(cwdForProjectId));link&&telemetryEventStore.updateProjectId(link.projectId)}}catch{}telemetry.trackProjectId(telemetryEventStore.currentProjectId),telemetry.trackCliDeprecatedShorthands(getUsedDeprecatedShorthands()),runTelemetry.markSaveStarted(),await telemetryEventStore.save(),postCommandSpan.stop()},runningCommandSpan,queueCommandTrace=(exitCode2,completion)=>{if(isTelemetryFlushCommand||!resolvedCommandForUpdate)return;let event=traceReporter.events.find(e=>e.name==="vc.cli.command");event&&telemetryEventStore.setCommandTrace(toCommandTrace(event,{command:resolvedCommandForUpdate,invocationId:telemetryEventStore.currentInvocationId,cliVersion:pkg_default.version,releaseChannel:String(import_semver2.default.prerelease(pkg_default.version)?.[0]??"stable"),isAgent,agentName:detectedAgent?.name,exitCode:exitCode2,completion}),void 0)},finishWithExitCode=async code=>(runTelemetry.trackRunEnd(code),queueCommandTrace(code,"completed"),await saveTelemetry(),code);process.once("exit",code=>{runTelemetry.saveStarted||(attempt(()=>runningCommandSpan?.stop()),attempt(()=>queueCommandTrace(code,"process_exit"))),runTelemetry.flushOnExit(code)}),isAgent&&(captureStdoutErrors(process.stdout),process.on("uncaughtExceptionMonitor",err=>{recordCliError(cliErrorFromUnknown(err))})),!IS_LOCAL_SCHEDULES_COMMAND&&typeof parsedArgs.flags["--api"]=="string"?apiUrl=parsedArgs.flags["--api"]:!IS_LOCAL_SCHEDULES_COMMAND&&config&&config.api&&(apiUrl=config.api);try{new URL(apiUrl)}catch{return output_manager_default.error(`Please provide a valid URL instead of ${highlight(apiUrl)}.`),finishWithExitCode(1)}let stdinIsTTY=process.stdin?.isTTY===!0,nonInteractiveFlag=parsedArgs.flags["--non-interactive"]===!0,argv=process.argv,explicitNonInteractiveFalse=argv.includes("--non-interactive=false")||argv.includes("--no-non-interactive")||argv.includes("--non-interactive")&&argv[argv.indexOf("--non-interactive")+1]==="false",nonInteractive=explicitNonInteractiveFalse?!1:nonInteractiveFlag||isAgent&&!stdinIsTTY;if(output_manager_default.debug(`Agent/TTY/nonInteractive: isAgent=${isAgent} agentName=${detectedAgent?.name??"none"} stdin.isTTY=${String(process.stdin?.isTTY)} --non-interactive=${nonInteractiveFlag} explicitFalse=${explicitNonInteractiveFalse} => nonInteractive=${nonInteractive}`),!IS_LOCAL_SCHEDULES_COMMAND&&hasProxyConfig()){let{EnvProxyDispatcher}=await import("./chunks/fetch-proxy-45DGILKR.js");setFetchDispatcher(new EnvProxyDispatcher)}client=new Client({apiUrl,stdin:process.stdin,stdout:process.stdout,stderr:output_manager_default.stream,config,authConfig,localConfig,localConfigPath,argv:process.argv,telemetryEventStore,isAgent,agentName:detectedAgent?.name,nonInteractive}),client.rootSpan=rootSpan,parsedArgs.flags["--cwd"]&&(client.cwd=parsedArgs.flags["--cwd"]);let{cwd}=client,defaultDeploy=!1,subcommand,userSuppliedSubCommand="";if(targetOrSubcommand){let targetPath=resolve(cwd,targetOrSubcommand),targetPathExists=existsSync2(targetPath),subcommandExists=GLOBAL_COMMANDS.has(targetOrSubcommand)||commands.has(targetOrSubcommand);if(targetPathExists&&subcommandExists&&!parsedArgs.flags["--cwd"]&&!process.env.NOW_BUILDER&&!wantsMachineReadableOutput(targetOrSubcommand,process.argv)&&!await hasLocalProjectLink(client,cwd)&&output_manager_default.warn(`Did you mean to deploy the subdirectory "${targetOrSubcommand}"? Use \`vc --cwd ${targetOrSubcommand}\` instead.`),subcommandExists)output_manager_default.debug(`user supplied known subcommand: "${targetOrSubcommand}"`),subcommand=targetOrSubcommand,userSuppliedSubCommand=targetOrSubcommand;else if(output_manager_default.debug("user supplied a possible target for deployment or an extension"),process.env.VERCEL_AUTO_API&&await matchesCliApiTag(targetOrSubcommand)){output_manager_default.debug(`first token "${targetOrSubcommand}" matches an OpenAPI tag; routing to api`);let tag=targetOrSubcommand,{tryOpenApiFallback}=await import("./chunks/openapi-QBX62ZXC.js"),result=await tryOpenApiFallback(client,parsedArgs.args.slice(3),async()=>tag);return finishWithExitCode(result??1)}else targetPathExists&&(subcommand="deploy",userSuppliedSubCommand=targetOrSubcommand,output_manager_default.debug(`first token "${targetOrSubcommand}" is an existing path; routing to deploy`))}else output_manager_default.debug("user supplied no target, defaulting to deploy"),subcommand="deploy",defaultDeploy=!0;let helpCommandTarget;if(subcommand==="help"){telemetry.trackCliCommandHelp("help");let isDeployPath=subSubCommand!==void 0&&!commands.has(subSubCommand)&&existsSync2(resolve(cwd,subSubCommand));helpCommandTarget=isDeployPath?void 0:subSubCommand,subcommand=isDeployPath?"deploy":subSubCommand||"deploy";let helpTokenIndex=client.argv.indexOf("help",2);helpTokenIndex!==-1&&client.argv.splice(helpTokenIndex,1),client.argv.push("-h")}let helpRequested=parsedArgs.args[2]==="help"||parsedArgs.flags["--help"]===!0;if(helpRequested){let helpExitCode=printCommandHelp(client,subcommand,tokensAfterCommand(client.argv));if(helpExitCode!==void 0)return finishWithExitCode(helpExitCode)}else{if(parsedArgs.flags["--version"]&&asksForVersion(subcommand??(targetOrSubcommand?.startsWith("-")&&deployAcceptsOptions(client.argv)?"deploy":void 0),client.argv))return client.stdout.write(wantsMachineReadableOutput(void 0,client.argv)?`${JSON.stringify({version:pkg_default.version})}
|
|
14
|
+
`:`${pkg_default.version}
|
|
15
|
+
`),finishWithExitCode(0);{let groupHelpExitCode=printGroupHelp(client,subcommand,tokensAfterCommand(client.argv));if(groupHelpExitCode!==void 0)return finishWithExitCode(groupHelpExitCode)}}let commandPathOptions=getCommandPathOptions(subcommand,tokensAfterCommand(client.argv));if(commandPathOptions&&!wantsMachineReadableOutput(void 0,client.argv))for(let warning of getFalseValueWarnings(client.argv.slice(2),[...globalCommandOptions,...commandPathOptions]))output_manager_default.warning(warning);let subcommandsWithoutToken=[...SUBCOMMANDS_WITHOUT_TOKEN],isPublicDomainsCommand=typeof subcommand=="string"&&commands.get(subcommand)==="domains"&&["check","price","search"].includes(subSubCommand);subcommand&&isPublicDomainsCommand&&subcommandsWithoutToken.push(subcommand),process.env.FF_GUIDANCE_MODE&&subcommandsWithoutToken.push("guidance"),subcommand==="dev"&&(client.argv.includes("--local")||client.argv.includes("-L"))&&subcommandsWithoutToken.push("dev");let isSdkKeyFlagsDatafile=subcommand==="flags"&&subSubCommand==="datafile"&&client.argv.some(arg2=>arg2==="--sdk-key"||arg2.startsWith("--sdk-key="));if(subcommand==="flags"&&(subSubCommand==="prepare"||isSdkKeyFlagsDatafile)&&subcommandsWithoutToken.push("flags"),subcommand==="setup"&&subSubCommand==="skills"&&subcommandsWithoutToken.push("setup"),tokenSource==="env"&&explicitToken&&(parsedArgs.flags["--token"]=explicitToken),!IS_LOCAL_SCHEDULES_COMMAND&&(!authConfig||!authConfig.token)&&!client.argv.includes("-h")&&!client.argv.includes("--help")&&typeof parsedArgs.flags["--token"]!="string"&&subcommand&&!subcommandsWithoutToken.includes(subcommand)){let{default:promptMissingCredentials}=await import("./chunks/prompt-missing-credentials-VP6OVCFM.js"),result=await promptMissingCredentials(client,trackAgenticErrorTelemetry);if(result!==0)return finishWithExitCode(result)}if(typeof parsedArgs.flags["--token"]=="string"&&subcommand==="switch")return output_manager_default.prettyError({message:`This command doesn't work with ${param("--token")}. Please use ${param("--scope")}.`,link:"https://err.sh/vercel/no-token-allowed"}),finishWithExitCode(2);if(typeof parsedArgs.flags["--token"]=="string"){let token=parsedArgs.flags["--token"];if(token.length===0)return output_manager_default.prettyError({message:`You defined ${param("--token")}, but it's missing a value`,link:"https://err.sh/vercel/missing-token-value"}),finishWithExitCode(2);let invalid=token.match(/(\W)/g);if(invalid){let notContain=Array.from(new Set(invalid)).sort();return output_manager_default.prettyError({message:`You defined ${param("--token")}, but its contents are invalid. Must not contain: ${notContain.map(c=>JSON.stringify(c)).join(", ")}`,link:"https://err.sh/vercel/invalid-token-value"}),finishWithExitCode(2)}client.authConfig={token,skipWrite:!0,tokenSource},client.config&&client.config.currentTeam&&delete client.config.currentTeam}parsedArgs.flags["--team"]&&warnDeprecatedInput(client,"--team","--scope");let targetCommand=typeof subcommand=="string"?commands.get(subcommand):void 0,scope=parsedArgs.flags["--scope"]||parsedArgs.flags["--team"]||localConfig?.scope,separatorIndex=client.argv.indexOf("--"),cliArgs=separatorIndex===-1?client.argv:client.argv.slice(0,separatorIndex),buildNeedsRemoteProjectScope=targetCommand==="build"&&cliArgs.some(arg2=>arg2==="--project"||arg2.startsWith("--project="));if(!IS_LOCAL_SCHEDULES_COMMAND&&typeof scope=="string"&&(!isPublicDomainsCommand||client.authConfig.token)&&(!isSdkKeyFlagsDatafile||client.authConfig.token)&&targetCommand!=="login"&&targetCommand!=="signup"&&targetCommand!=="feedback"&&targetCommand!=="health"&&(targetCommand!=="build"||buildNeedsRemoteProjectScope)&&targetCommand!=="sandbox"&&!(targetCommand==="whoami"&&getWhoamiCachedAnswer(cliArgs,client.authConfig))){let persistedTeamId=client.config.currentTeam,cachedTeamId=getCachedScopeTeamId(client.config,scope);if(cachedTeamId)client.config.currentTeam=cachedTeamId;else{let user=null;try{user=await getUser(client),telemetryEventStore.updateUserId(user.id)}catch(err){if(err instanceof Error&&output_manager_default.debug(err.stack||err.toString()),!((0,import_error_utils.isErrnoException)(err)&&err.code==="NOT_AUTHORIZED"&&isAppPrincipalEnabled()&&await resolveAppTokenScope(client,scope)))return(0,import_error_utils.isErrnoException)(err)&&err.code==="NOT_AUTHORIZED"?(output_manager_default.prettyError({message:"You do not have access to the specified account",link:"https://err.sh/vercel/scope-not-accessible"}),trackAgenticErrorTelemetry(err),finishWithExitCode(1)):(output_manager_default.error(`Not able to load user because of unexpected error: ${(0,import_error_utils.errorToString)(err)}`),trackAgenticErrorTelemetry(err),finishWithExitCode(1))}if(user){let scopeMatchesUserIdentity=user.id===scope||user.email===scope||user.username===scope,related;try{related=await getTeamByIdOrSlug(client,scope,{useCurrentTeam:!1})}catch(err){output_manager_default.debug(`Direct team lookup for scope "${scope}" failed: ${(0,import_error_utils.errorToString)(err)}`)}if(!related){let teams=[];try{teams=await getTeams(client)}catch(err){if(scopeMatchesUserIdentity)output_manager_default.debug("Ignoring failure to load teams; scope matches the current user's identity");else return(0,import_error_utils.isErrnoException)(err)&&err.code==="not_authorized"?(output_manager_default.prettyError({message:"You do not have access to the specified team",link:"https://err.sh/vercel/scope-not-accessible"}),trackAgenticErrorTelemetry(err),finishWithExitCode(1)):(0,import_error_utils.isErrnoException)(err)&&err.code==="rate_limited"?(output_manager_default.prettyError({message:"Rate limited. Too many requests to the same endpoint: /teams"}),trackAgenticErrorTelemetry(err),finishWithExitCode(1)):(output_manager_default.error("Not able to load teams"),trackAgenticErrorTelemetry(err),finishWithExitCode(1))}related=teams.find(team=>team.id===scope||team.slug===scope)}if(related)client.config.currentTeam=related.id,setCachedScopeTeamId(client,scope,related.id,persistedTeamId);else if(scopeMatchesUserIdentity){if(user.version==="northstar")return output_manager_default.error("You cannot set your Personal Account as the scope."),finishWithExitCode(1);delete client.config.currentTeam}else return output_manager_default.prettyError({message:"The specified scope does not exist",link:"https://err.sh/vercel/scope-not-existent"}),finishWithExitCode(1)}}}client.ignoresSavedTeam&&typeof scope!="string"&&targetCommand!=="login"&&targetCommand!=="logout"&&targetCommand!=="signup"&&(client.config.currentTeam=isPublicDomainsCommand?void 0:TEAM_NOT_CHOSEN);let exitCode;try{if(!targetCommand){targetCommand=helpCommandTarget??parsedArgs.args[2];try{let{execExtension}=await import("./chunks/exec-OZSY46V6.js"),typedArgs=parseInitialArgs({keepNegations:!0}).args,commandIndex=typedArgs.indexOf(targetCommand,helpCommandTarget?3:2),extensionArgs=commandIndex===-1?parsedArgs.args.slice(helpCommandTarget?4:3):typedArgs.slice(commandIndex+1);exitCode=await execExtension(client,targetCommand,helpCommandTarget?[...extensionArgs,"--help"]:extensionArgs,cwd),telemetry.trackCliExtension()}catch(err){if((0,import_error_utils.isErrnoException)(err)&&err.code==="ENOENT"){if(handleCommandTypo({client,command:targetCommand,availableCommands:commandsStructs}))return finishWithExitCode(2);if(helpRequested)return printUnknownCommand(client,targetCommand),finishWithExitCode(2);targetCommand=subcommand="deploy"}else throw err}}if(subcommand){let func;switch(targetCommand){case"deploy":telemetry.trackCliCommandDeploy(userSuppliedSubCommand),telemetry.trackCliDefaultDeploy(defaultDeploy),func=(await import("./commands/deploy/index.js")).default;break;case"dev":telemetry.trackCliCommandDev(userSuppliedSubCommand),func=(await import("./commands/dev/index.js")).default;break;case"env":telemetry.trackCliCommandEnv(userSuppliedSubCommand),func=(await import("./commands/env/index.js")).default;break;case"build":telemetry.trackCliCommandBuild(userSuppliedSubCommand),func=(await import("./commands/build/index.js")).default;break;case"list":telemetry.trackCliCommandList(userSuppliedSubCommand),func=(await import("./commands/list/index.js")).default;break;case"link":telemetry.trackCliCommandLink(userSuppliedSubCommand),func=(await import("./commands/link/index.js")).default;break;case"project":telemetry.trackCliCommandProject(userSuppliedSubCommand),func=(await import("./commands/project/index.js")).default;break;case"agent":telemetry.trackCliCommandAgent(userSuppliedSubCommand),func=(await import("./commands-core.js")).agent;break;case"agent-runs":telemetry.trackCliCommandAgentRuns(userSuppliedSubCommand),func=(await import("./commands-account.js")).agentRuns;break;case"ai-gateway":telemetry.trackCliCommandAiGateway(userSuppliedSubCommand),func=(await import("./commands-ai.js")).aiGateway;break;case"token-pass":telemetry.trackCliCommandTokenPass(userSuppliedSubCommand),func=(await import("./commands-ai.js")).tokenPass;break;case"alias":telemetry.trackCliCommandAlias(userSuppliedSubCommand),func=(await import("./commands-account.js")).alias;break;case"activity":telemetry.trackCliCommandActivity(userSuppliedSubCommand),func=(await import("./commands-core.js")).activity;break;case"alerts":telemetry.trackCliCommandAlerts(userSuppliedSubCommand),func=(await import("./commands-core.js")).alerts;break;case"api":telemetry.trackCliCommandApi(userSuppliedSubCommand),func=(await import("./commands-account.js")).api;break;case"bisect":telemetry.trackCliCommandBisect(userSuppliedSubCommand),func=(await import("./commands-account.js")).bisect;break;case"blob":telemetry.trackCliCommandBlob(userSuppliedSubCommand),func=(await import("./commands-blob.js")).blob;break;case"budgets":telemetry.trackCliCommandBudgets(userSuppliedSubCommand),func=(await import("./commands-account.js")).budget;break;case"builders":func=(await import("./commands-core.js")).builders;break;case"buy":telemetry.trackCliCommandBuy(userSuppliedSubCommand),func=(await import("./commands-account.js")).buy;break;case"init":telemetry.trackCliCommandInit(userSuppliedSubCommand),func=(await import("./commands-account.js")).init;break;case"cache":telemetry.trackCliCommandCache(userSuppliedSubCommand),func=(await import("./commands-core.js")).cache;break;case"connect":telemetry.trackCliCommandConnex(userSuppliedSubCommand),func=(await import("./commands-integrations.js")).connex;break;case"contract":telemetry.trackCliCommandContract(userSuppliedSubCommand),func=(await import("./commands-core.js")).contract;break;case"certs":telemetry.trackCliCommandCerts(userSuppliedSubCommand),func=(await import("./commands-account.js")).certs;break;case"ci":telemetry.trackCliCommandCi(userSuppliedSubCommand),func=(await import("./commands-observability.js")).ci;break;case"changelog":telemetry.trackCliCommandChangelog(userSuppliedSubCommand),func=(await import("./commands-core.js")).changelog;break;case"comments":telemetry.trackCliCommandComments(userSuppliedSubCommand),func=(await import("./commands-core.js")).comments;break;case"crons":case"cron":telemetry.trackCliCommandCrons(userSuppliedSubCommand),func=(await import("./commands-core.js")).crons;break;case"curl":telemetry.trackCliCommandCurl(userSuppliedSubCommand),func=(await import("./commands-core.js")).curl;break;case"daemons":telemetry.trackCliCommandDaemons(userSuppliedSubCommand),func=(await import("./commands-routing.js")).daemons;break;case"dns":telemetry.trackCliCommandDns(userSuppliedSubCommand),func=(await import("./commands-account.js")).dns;break;case"deploy-hooks":case"deploy-hook":telemetry.trackCliCommandDeployHooks(userSuppliedSubCommand),func=(await import("./commands-core.js")).deployHooks;break;case"global-config":telemetry.trackCliCommandGlobalConfig(userSuppliedSubCommand),func=(await import("./commands-account.js")).globalConfig;break;case"domains":telemetry.trackCliCommandDomains(userSuppliedSubCommand),func=(await import("./commands-ai.js")).domains;break;case"drains":telemetry.trackCliCommandDrains(userSuppliedSubCommand),func=(await import("./commands-observability.js")).drains;break;case"experiments":telemetry.trackCliCommandExperiments(userSuppliedSubCommand),func=(await import("./commands-routing.js")).experiments;break;case"feedback":telemetry.trackCliCommandFeedback(userSuppliedSubCommand),func=(await import("./commands-flags.js")).feedback;break;case"firewall":telemetry.trackCliCommandFirewall(userSuppliedSubCommand),func=(await import("./commands-flags.js")).firewall;break;case"flags":telemetry.trackCliCommandFlags(userSuppliedSubCommand),func=(await import("./commands-flags.js")).flags;break;case"git":telemetry.trackCliCommandGit(userSuppliedSubCommand),func=(await import("./commands-account.js")).git;break;case"guidance":if(process.env.FF_GUIDANCE_MODE){telemetry.trackCliCommandGuidance(userSuppliedSubCommand),func=(await import("./commands-core.js")).guidance;break}else{func=null;break}case"health":telemetry.trackCliCommandHealth(userSuppliedSubCommand),func=(await import("./commands-observability.js")).health;break;case"httpstat":telemetry.trackCliCommandHttpstat(userSuppliedSubCommand),func=(await import("./commands-core.js")).httpstat;break;case"install":telemetry.trackCliCommandInstall(userSuppliedSubCommand),func=(await import("./commands-integrations.js")).install;break;case"integration":telemetry.trackCliCommandIntegration(userSuppliedSubCommand),func=(await import("./commands-integrations.js")).integration;break;case"integration-resource":telemetry.trackCliCommandIntegrationResource(userSuppliedSubCommand),func=(await import("./commands-integrations.js")).integrationResource;break;case"kms":telemetry.trackCliCommandKms(userSuppliedSubCommand),func=(await import("./commands-routing.js")).kms;break;case"mcp":func=(await import("./commands-core.js")).mcp;break;case"logout":telemetry.trackCliCommandLogout(userSuppliedSubCommand),func=(await import("./commands-core.js")).logout;break;case"login":telemetry.trackCliCommandLogin(userSuppliedSubCommand),func=c=>import("./commands-core.js").then(m=>m.login(c,{shouldParseArgs:!0}));break;case"inspect":telemetry.trackCliCommandInspect(userSuppliedSubCommand),func=(await import("./commands-deployments.js")).inspect;break;case"logs":telemetry.trackCliCommandLogs(userSuppliedSubCommand),func=(await import("./commands-deployments.js")).logs;break;case"metrics":telemetry.trackCliCommandMetrics(userSuppliedSubCommand),func=(await import("./commands-core.js")).metrics;break;case"microfrontends":telemetry.trackCliCommandMicrofrontends(userSuppliedSubCommand),func=(await import("./commands-routing.js")).microfrontends;break;case"monitors":telemetry.trackCliCommandMonitors(userSuppliedSubCommand),func=(await import("./commands-core.js")).monitors;break;case"open":telemetry.trackCliCommandOpen(userSuppliedSubCommand),func=(await import("./commands-core.js")).open;break;case"organizations":telemetry.trackCliCommandOrganizations(userSuppliedSubCommand),func=(await import("./commands-account.js")).organizations;break;case"pricing":telemetry.trackCliCommandPricing(userSuppliedSubCommand),func=(await import("./commands-core.js")).pricing;break;case"promote":telemetry.trackCliCommandPromote(userSuppliedSubCommand),func=(await import("./commands-core.js")).promote;break;case"pull":telemetry.trackCliCommandPull(userSuppliedSubCommand),func=(await import("./commands-observability.js")).pull;break;case"redeploy":telemetry.trackCliCommandRedeploy(userSuppliedSubCommand),func=(await import("./commands-routing.js")).redeploy;break;case"redirects":telemetry.trackCliCommandRedirects(userSuppliedSubCommand),func=(await import("./commands-routing.js")).redirects;break;case"routes":telemetry.trackCliCommandRoutes(userSuppliedSubCommand),func=(await import("./commands-routing.js")).routes;break;case"remove":telemetry.trackCliCommandRemove(userSuppliedSubCommand),func=(await import("./commands-routing.js")).remove;break;case"rollback":telemetry.trackCliCommandRollback(userSuppliedSubCommand),func=(await import("./commands-core.js")).rollback;break;case"rr":case"release":case"rolling-release":telemetry.trackCliCommandRollingRelease(userSuppliedSubCommand),func=(await import("./commands-core.js")).rollingRelease;break;case"sandbox":telemetry.trackCliCommandSandbox(userSuppliedSubCommand),func=(await import("./commands-core.js")).sandbox;break;case"schedules":telemetry.trackCliCommandSchedules(userSuppliedSubCommand),func=(await import("./commands-routing.js")).schedules;break;case"security":telemetry.trackCliCommandSecurity(userSuppliedSubCommand),func=(await import("./commands-core.js")).security;break;case"signup":telemetry.trackCliCommandSignup(userSuppliedSubCommand),func=(await import("./commands-core.js")).signup;break;case"skills":telemetry.trackCliCommandSkills(userSuppliedSubCommand),func=(await import("./commands-blob.js")).skills;break;case"setup":telemetry.trackCliCommandSetup(userSuppliedSubCommand),func=(await import("./commands-ai.js")).setup;break;case"storage":telemetry.trackCliCommandStorage(userSuppliedSubCommand),func=(await import("./commands-integrations.js")).storage;break;case"environments":telemetry.trackCliCommandEnvironments(userSuppliedSubCommand),func=(await import("./commands-core.js")).target;break;case"teams":telemetry.trackCliCommandTeams(userSuppliedSubCommand),func=(await import("./commands-account.js")).teams;break;case"tokens":telemetry.trackCliCommandTokens(userSuppliedSubCommand),func=(await import("./commands-account.js")).tokens;break;case"telemetry":telemetry.trackCliCommandTelemetry(userSuppliedSubCommand),func=(await import("./commands-core.js")).telemetry;break;case"traces":telemetry.trackCliCommandTraces(userSuppliedSubCommand),func=(await import("./commands-observability.js")).traces;break;case"upgrade":telemetry.trackCliCommandUpgrade(userSuppliedSubCommand),func=(await import("./commands-core.js")).upgrade;break;case"version":telemetry.trackCliCommandVersion(userSuppliedSubCommand),func=(await import("./commands-core.js")).version;break;case"webhooks":telemetry.trackCliCommandWebhooks(userSuppliedSubCommand),func=(await import("./commands-account.js")).webhooks;break;case"usage":telemetry.trackCliCommandUsage(userSuppliedSubCommand),func=(await import("./commands-integrations.js")).usage;break;case"vcr":telemetry.trackCliCommandVcr(userSuppliedSubCommand),func=(await import("./commands-core.js")).vcr;break;case"whoami":telemetry.trackCliCommandWhoami(userSuppliedSubCommand),func=(await import("./commands-core.js")).whoami;break;default:func=null;break}if(!func||!targetCommand)return handleCommandTypo({client,command:subcommand,availableCommands:commandsStructs})||output_manager_default.error(`The ${param(subcommand)} subcommand does not exist`),finishWithExitCode(2);func.default&&(func=func.default),!IS_LOCAL_SCHEDULES_COMMAND&&targetCommand!=="feedback"&&targetCommand!=="health"&&shouldStartUserLookupForTelemetry({authConfig:client.authConfig,hasTelemetryUserId:telemetryEventStore.hasUserId})&&(earlyGetUserPromise=getUser(client).catch(()=>{})),resolvedCommandForUpdate=targetCommand,runningCommandSpan=rootSpan.child("vc.cli.command",{command:subcommand||"deploy"});try{exitCode=await runningCommandSpan.trace(()=>func(client))}finally{runningCommandSpan=void 0}}}catch(err){trackAgenticErrorTelemetry(err),err instanceof APIError&&err.status===403&&client.config.currentTeam&&forgetCachedTeamSlug(client,client.config.currentTeam);let isUsageError=(0,import_error_utils.isError)(err)&&"code"in err&&(err.code==="ARG_UNKNOWN_OPTION"||err.code==="ARG_MISSING_REQUIRED_LONGARG"||err.code==="ARG_MISSING_REQUIRED_SHORTARG"||err.code==="ARG_CONFLICTING_OPTIONS");if(shouldEmitNonInteractiveCommandError(client)&&((0,import_error_utils.isError)(err)&&"status"in err||isUsageError))return printError(err,client),finishWithExitCode(isUsageError?2:1);if(isUsageError)return printError(err,client),finishWithExitCode(2);if((0,import_error_utils.isErrnoException)(err)&&err.code==="ENOTFOUND"){let matches=/getaddrinfo ENOTFOUND (.*)$/.exec(err.message||"");if(matches&&matches[1]){let hostname=matches[1];output_manager_default.error(`The hostname ${highlight(hostname)} could not be resolved. Please verify your internet connectivity and DNS configuration.`)}return typeof err.stack=="string"&&output_manager_default.debug(err.stack),finishWithExitCode(1)}if((0,import_error_utils.isErrnoException)(err)&&err.code==="ECONNRESET"){let hostname=/request to https:\/\/(.*?)\//.exec(err.message||"")?.[1];return hostname&&output_manager_default.error(`Connection to ${highlight(hostname)} interrupted. Please verify your internet connectivity and DNS configuration.`),finishWithExitCode(1)}return(0,import_error_utils.isErrnoException)(err)&&(err.code==="NOT_AUTHORIZED"||err.code==="TEAM_DELETED")?(output_manager_default.prettyError(err),finishWithExitCode(1)):err instanceof APIError&&400<=err.status&&err.status<=499?(err.message=err.serverMessage,output_manager_default.prettyError(err),finishWithExitCode(1)):((0,import_error_utils.isErrnoException)(err)?(typeof err.stack=="string"&&output_manager_default.debug(err.stack),output_manager_default.prettyError(err)):(await reportError(await getSentry(),client,err),output_manager_default.error(`An unexpected error occurred in ${subcommand}: ${err}`)),finishWithExitCode(1))}if(await finishWithExitCode(exitCode??0),rootSpan.stop(),client.traceDiagnosticsPath)try{await mkdir(join2(client.traceDiagnosticsPath,".."),{recursive:!0}),await writeFile(client.traceDiagnosticsPath,JSON.stringify(traceReporter.events))}catch(err){output_manager_default.error("Failed to write diagnostics trace file"),output_manager_default.prettyError(err)}return exitCode},cachedLatest,freshLookupPromise;SHOULD_CHECK_FOR_UPDATES&&!isNativeBinaryInstall()&&(cachedLatest=getLatestVersion({pkg:pkg_default,consumeNotification:!1}),cachedLatest&&(output_manager_default.debug("Update may be available, fetching fresh version..."),freshLookupPromise=fetchLatestVersion({name:pkg_default.name,timeout:3e3}).catch(()=>{})));async function promptAndUpgrade(client2,targetVersion){try{if(!await client2.input.confirm("Would you like to upgrade now?",!0))return;let upgradeExitCode=await executeUpgrade(targetVersion,client2);if(upgradeExitCode===0&&!hasAutoUpdatePreference(client2.config)){let enableAutoUpdates=await client2.input.confirm("Enable automatic CLI updates for future releases?",!1);setAutoUpdate(client2,enableAutoUpdates)}return upgradeExitCode}catch(err){if(err instanceof Error&&err.message.includes("User force closed the prompt"))return;throw err}}async function runPostCommandUpdates(exitCode){let originalExitCode=typeof exitCode=="number"?exitCode:0;if(SHOULD_CHECK_FOR_UPDATES&&isNativeBinaryInstall()&&resolvedCommandForUpdate!=="version"&&scheduleNativeAutoUpdate(client,originalExitCode),cachedLatest&&resolvedCommandForUpdate!=="upgrade"){let fresh=freshLookupPromise?await freshLookupPromise:void 0;output_manager_default.debug(`Fresh lookup result: ${fresh??"failed"}`);let latest,userUpToDate=!1;if(fresh&&(updateLatestVersionCache({name:pkg_default.name,version:fresh}),import_semver2.default.lt(pkg_default.version,fresh)?latest=fresh:userUpToDate=!0),getLatestVersion({pkg:pkg_default}),!userUpToDate&&await canAutoUpdate(client,originalExitCode,resolvedCommandForUpdate))return await executeAutomaticUpgrade(client)!==0&&output_manager_default.log(`Automatic update failed. Continuing with original exit code ${originalExitCode}.`),originalExitCode;if(latest){let changelog=getReleaseNotesUrl(latest);if(isTTY){let errorMsg=exitCode&&exitCode!==2?import_chalk.default.magenta(` The latest update ${import_chalk.default.italic("may")} fix any errors that occurred.`):"";output_manager_default.print(`
|
|
16
|
+
Update available for Vercel CLI (${import_chalk.default.gray(`v${pkg_default.version}`)} \u2192 ${import_chalk.default.green(`v${latest}`)})${errorMsg}
|
|
17
|
+
`),output_manager_default.print(`Changelog: ${output_manager_default.link(changelog,changelog,{fallback:!1})}
|
|
18
|
+
`);let upgradeExitCode=await promptAndUpgrade(client,latest);if(upgradeExitCode!==void 0)return upgradeExitCode}else{let errorMsg=exitCode&&exitCode!==2?import_chalk.default.magenta(`
|
|
19
|
+
|
|
20
|
+
The latest update ${import_chalk.default.italic("may")} fix any errors that occurred.`):"";output_manager_default.print(box(`Update available! ${import_chalk.default.gray(`v${pkg_default.version}`)} \u226B ${import_chalk.default.green(`v${latest}`)}
|
|
21
|
+
Changelog: ${output_manager_default.link(changelog,changelog,{fallback:!1})}
|
|
22
|
+
Run ${import_chalk.default.cyan(cmd(await getUpdateCommand()))} to update.${errorMsg}`)),output_manager_default.print(`
|
|
23
|
+
`)}}else if(!fresh)if(isTTY){output_manager_default.print(`
|
|
24
|
+
A newer version of Vercel CLI may be available.
|
|
25
|
+
`);let upgradeExitCode=await promptAndUpgrade(client);if(upgradeExitCode!==void 0)return upgradeExitCode}else output_manager_default.print(box(`A newer version of Vercel CLI may be available.
|
|
26
|
+
Run ${import_chalk.default.cyan(cmd(await getUpdateCommand()))} to update.`)),output_manager_default.print(`
|
|
27
|
+
`)}return exitCode}async function runFirstRunPluginOffer(exitCode){if(client?.config.usedBefore===!1)try{let{offerVercelPluginToNewUser}=await import("./chunks/plugin-offer-TEGYA3TA.js");await offerVercelPluginToNewUser(client,exitCode,resolvedCommandForUpdate)}catch(err){output_manager_default.stopSpinner(),output_manager_default.debug(`Vercel plugin offer failed: ${(0,import_error_utils.errorToString)(err)}`)}}var cliPromise=main().then(async exitCode=>{await runFirstRunPluginOffer(exitCode);let finalExitCode=await runUpdateMaintenance(exitCode,()=>runPostCommandUpdates(exitCode));return process.exitCode=finalExitCode,finalExitCode}).catch(async error=>{recordCliError(cliErrorFromUnknown(error)),await handleUnexpectedError(client,error),await exitWithUnexpectedError(error)});export{cliPromise};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { createRequire as __createRequire } from 'node:module';
|
|
2
|
+
import { fileURLToPath as __fileURLToPath } from 'node:url';
|
|
3
|
+
import { dirname as __dirname_ } from 'node:path';
|
|
4
|
+
const require = __createRequire(import.meta.url);
|
|
5
|
+
const __filename = __fileURLToPath(import.meta.url);
|
|
6
|
+
const __dirname = __dirname_(__filename);
|
|
7
|
+
import"./chunks/chunk-BZENIQ7N.js";import{readdirSync}from"node:fs";import{chmod,lstat,mkdir,unlink,writeFile}from"node:fs/promises";import*as nodeModule from"node:module";import{createServer}from"node:net";import{dirname,isAbsolute}from"node:path";var MAX_REQUEST_BYTES=1024*1024,REQUEST_TIMEOUT_MS=3e4;function getCompileCacheDir2(){return nodeModule.getCompileCacheDir?.()}function countCompileCacheEntries(dir){if(dir)try{return readdirSync(dir).length}catch{return}}var InternalBuildWorkerReport=class{constructor({entryAt}={}){this.settledListeners=[];let compileCacheDir=getCompileCacheDir2();this.timings={timeOrigin:Math.round(performance.timeOrigin),node:process.versions.node,vltPreloadState:"notStarted",compileCacheDir,compileCacheEntriesAtStart:countCompileCacheEntries(compileCacheDir)},entryAt!==void 0&&(this.timings.entryAt=Math.round(entryAt))}mark(name){this.timings[name]??=Math.round(performance.now())}vltPreloadStarted(){this.mark("vltPreloadStartedAt"),this.timings.vltPreloadState="inFlight"}vltPreloadSettled(error){error===void 0?(this.mark("vltPreloadDoneAt"),this.timings.vltPreloadState="done"):(this.timings.vltPreloadState="failed",this.timings.vltPreloadError=error instanceof Error?error.message:String(error));for(let listener of this.settledListeners.splice(0))listener()}onVltPreloadSettled(listener){this.timings.vltPreloadState==="done"||this.timings.vltPreloadState==="failed"?listener():this.settledListeners.push(listener)}flushCompileCache(){try{nodeModule.flushCompileCache?.()}catch{}this.timings.compileCacheEntriesAtEnd=countCompileCacheEntries(this.timings.compileCacheDir)}snapshot(){return{...this.timings}}};async function parseBuildRequest(payload){let{z}=await import("./chunks/zod-2C2SXNIK.js");return z.object({type:z.literal("build"),id:z.string().min(1).max(128),cwd:z.string().min(1).refine(isAbsolute,{message:"cwd must be absolute"}),argv:z.array(z.string().max(4096)).min(1).max(64).refine(argv=>argv[0]==="build",{message:'argv must begin with "build"'}),env:z.record(z.string(),z.string())}).parse(JSON.parse(payload))}function writeMessage(socket,message){socket.write(`${JSON.stringify(message)}
|
|
8
|
+
`)}async function removeSocket(socketPath){try{await unlink(socketPath)}catch(error){if(error.code!=="ENOENT")throw error}}async function assertUnusedSocketPath(socketPath){if(!isAbsolute(socketPath))throw new Error("The worker socket path must be absolute");try{await lstat(socketPath)}catch(error){if(error.code==="ENOENT")return;throw error}throw new Error(`The worker socket path already exists: ${socketPath}`)}async function closeServer(server){await new Promise((resolve,reject)=>{server.close(error=>{error&&error.code!=="ERR_SERVER_NOT_RUNNING"?reject(error):resolve()})})}async function bind(server,socketPath){let originalUmask=process.umask(63);try{await new Promise((resolve,reject)=>{let onError=error=>{server.off("listening",onListening),reject(error)},onListening=()=>{server.off("error",onError),resolve()};server.once("error",onError),server.once("listening",onListening),server.listen(socketPath)})}finally{process.umask(originalUmask)}}function parseWorkerArgs(argv){let usage="Expected --internal-build-worker --socket <path> [--ready-file <path>]";if(argv.length!==3&&argv.length!==5||argv[0]!=="--internal-build-worker"||argv[1]!=="--socket"||argv.length===5&&argv[3]!=="--ready-file")throw new Error(usage);let readyFile=argv[4];if(readyFile!==void 0&&!isAbsolute(readyFile))throw new Error("The worker ready file path must be absolute");return{socketPath:argv[2],readyFile}}async function writeReadyFile(readyFile){try{await mkdir(dirname(readyFile),{recursive:!0}),await writeFile(readyFile,"")}catch{}}async function preloadInternalBuild(loadBuildCommand,loadInternalBuild,report){let[{preloadVltBuilderImports}]=await Promise.all([loadBuildCommand(),loadInternalBuild()]);report?.mark("buildModuleLoadedAt"),report?.vltPreloadStarted(),preloadVltBuilderImports().then(()=>report?.vltPreloadSettled(),error=>report?.vltPreloadSettled(error??new Error("vlt preload failed")))}function applyInternalBuildRequest(request){for(let key of Object.keys(process.env))Object.hasOwn(request.env,key)||delete process.env[key];Object.assign(process.env,request.env,{VERCEL_VC_NATIVE:"1"}),process.chdir(request.cwd),process.argv=[process.execPath,process.argv[1],...request.argv]}async function waitForInternalBuildRequest(argv,preloadBuildCommand,{removeSocket:removeSocketFile=removeSocket,report=new InternalBuildWorkerReport,requestTimeoutMs=REQUEST_TIMEOUT_MS}={}){let{socketPath,readyFile}=parseWorkerArgs(argv);await assertUnusedSocketPath(socketPath);let server=createServer({allowHalfOpen:!0}),startPreload,buildCommandReady=new Promise((resolve,reject)=>{startPreload=()=>{try{resolve(preloadBuildCommand())}catch(error){reject(error)}}});return buildCommandReady.then(()=>report.mark("readyAt"),()=>{}),new Promise((resolve,reject)=>{let listening=!1,accepted=!1,settled=!1,terminalSent=!1,sendTerminal=async(socket,message)=>{if(terminalSent||(terminalSent=!0,socket.setTimeout(0),socket.destroyed))return;report.mark("terminalAt"),report.flushCompileCache();let terminal={...message,timings:report.snapshot()};await new Promise(done=>{let finish=()=>{socket.off("error",finish),done()};socket.once("error",finish),socket.end(`${JSON.stringify(terminal)}
|
|
9
|
+
`,finish)}),socket.destroy()},fail=async(socket,error)=>{if(settled)return;settled=!0;let cleanup=Promise.allSettled([closeServer(server),removeSocketFile(socketPath)]);try{await sendTerminal(socket,{type:"error",message:error.message})}finally{await cleanup,reject(error)}};server.on("error",error=>{listening&&(settled=!0,Promise.allSettled([closeServer(server),removeSocketFile(socketPath)]).then(()=>reject(error)))}),server.on("connection",socket=>{if(accepted){socket.destroy();return}accepted=!0,report.mark("connectionAt"),closeServer(server).catch(error=>{fail(socket,error)}),socket.setEncoding("utf8");let received="",parsing=!1;buildCommandReady.then(()=>{if(!settled&&!socket.destroyed){socket.setTimeout(requestTimeoutMs,()=>{fail(socket,new Error("Timed out waiting for build request"))}),report.mark("readySentAt");let timings=report.snapshot();if(writeMessage(socket,{type:"ready",protocol:1,runtime:`node${process.versions.node.split(".")[0]}`,timings}),timings.vltPreloadState!=="inFlight")return;report.onVltPreloadSettled(()=>{!terminalSent&&!socket.destroyed&&writeMessage(socket,{type:"preload",timings:report.snapshot()})})}},error=>{fail(socket,error instanceof Error?error:new Error("Failed to preload build command"))}),socket.on("data",chunk=>{if(settled||parsing)return;if(received+=chunk,Buffer.byteLength(received)>MAX_REQUEST_BYTES){fail(socket,new Error("Request is too large"));return}let newline=received.indexOf(`
|
|
10
|
+
`);if(newline===-1)return;report.mark("handoffReceivedAt"),parsing=!0;let payload=received.slice(0,newline),trailing=received.slice(newline+1).trim();buildCommandReady.then(async()=>{if(trailing)throw new Error("Only one build request is allowed");let request;try{request=await parseBuildRequest(payload)}catch{throw new Error("Invalid build request")}await removeSocketFile(socketPath),settled=!0,socket.setTimeout(0),resolve({request,complete:exitCode=>sendTerminal(socket,{type:"complete",exitCode}),error:error=>sendTerminal(socket,{type:"error",message:error instanceof Error?error.message:"Build failed"})})},error=>{fail(socket,error instanceof Error?error:new Error("Failed to preload build command"))}).catch(error=>{fail(socket,error instanceof Error?error:new Error("Invalid build request"))})}),socket.on("end",()=>{!settled&&!parsing&&fail(socket,new Error("Build request connection ended"))}),socket.on("error",error=>{fail(socket,error)})});let abort=error=>{if(!settled){if(settled=!0,!server.listening){reject(error);return}Promise.allSettled([closeServer(server),removeSocketFile(socketPath)]).then(()=>reject(error))}};bind(server,socketPath).then(()=>{listening=!0,report.mark("listenAt"),startPreload(),readyFile&&buildCommandReady.then(()=>writeReadyFile(readyFile),()=>{}),chmod(socketPath,384).catch(error=>{accepted||abort(error)})},abort)})}export{InternalBuildWorkerReport,applyInternalBuildRequest,preloadInternalBuild,waitForInternalBuildRequest};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { createRequire as __createRequire } from 'node:module';
|
|
2
|
+
import { fileURLToPath as __fileURLToPath } from 'node:url';
|
|
3
|
+
import { dirname as __dirname_ } from 'node:path';
|
|
4
|
+
const require = __createRequire(import.meta.url);
|
|
5
|
+
const __filename = __fileURLToPath(import.meta.url);
|
|
6
|
+
const __dirname = __dirname_(__filename);
|
|
7
|
+
import{checkTelemetryStatus,earlyGetConfig,exitWithUnexpectedError,handleUnexpectedError,installProcessGuards,isOutputDebugEnabled,recordDirectBuildFallback,registerUnexpectedErrorHandlers}from"./chunks/chunk-LW4N3CW6.js";import{BUILD_LABEL}from"./chunks/chunk-WKZ6JSGZ.js";import"./chunks/chunk-R2XHJDAP.js";import"./chunks/chunk-25565AGS.js";import{param}from"./chunks/chunk-3G3FQYMW.js";import{TelemetryEventStore}from"./chunks/chunk-6YXIWZ3X.js";import"./chunks/chunk-PUKYAALC.js";import"./chunks/chunk-K5U47EVH.js";import"./chunks/chunk-MXTC4ZAQ.js";import{isNativeBinaryInstall}from"./chunks/chunk-NWGBDBZI.js";import"./chunks/chunk-WDXW6A4H.js";import"./chunks/chunk-DKJL2KV7.js";import{Client,getAuthConfigFilePath,getConfigFilePath,hasLocalProjectLink,highlight,humanizePath,readAuthConfigFile,readConfigFile,require_lib,writeToConfigFile}from"./chunks/chunk-4N6LMERQ.js";import"./chunks/chunk-ADLBLGT3.js";import{getGlobalPathConfig}from"./chunks/chunk-CWM2F235.js";import"./chunks/chunk-4NTBYNFR.js";import{parseArguments}from"./chunks/chunk-KCKYPLIH.js";import"./chunks/chunk-F53OKXYI.js";import{shouldPrintVersionBanner,wantsMachineReadableOutput}from"./chunks/chunk-QVXS234E.js";import{setFetchDispatcher}from"./chunks/chunk-FUX6LKNP.js";import"./chunks/chunk-OPORM35X.js";import{require_cli_config}from"./chunks/chunk-4SAVH3H7.js";import{CantFindConfig,CantParseJSONFile}from"./chunks/chunk-6VH56CX2.js";import{getTitleName}from"./chunks/chunk-JESNVRVR.js";import{output_manager_default,require_build_utils}from"./chunks/chunk-XP3FT56R.js";import"./chunks/chunk-BLUPZPAS.js";import{require_dist}from"./chunks/chunk-RM3ZDRYE.js";import{pkg_default}from"./chunks/chunk-OO572JUC.js";import"./chunks/chunk-D3AHZ5LI.js";import"./chunks/chunk-2GHZGOWT.js";import"./chunks/chunk-YHPPP3SF.js";import{require_source}from"./chunks/chunk-NB2WLB3J.js";import"./chunks/chunk-ISWW3DKF.js";import"./chunks/chunk-BRQUZ5NC.js";import{__toESM}from"./chunks/chunk-BZENIQ7N.js";var import_chalk=__toESM(require_source(),1),import_fs_extra=__toESM(require_lib(),1),import_error_utils=__toESM(require_dist(),1),import_cli_config=__toESM(require_cli_config(),1),import_build_utils=__toESM(require_build_utils(),1);import{existsSync}from"node:fs";import{mkdir,writeFile}from"node:fs/promises";import{join}from"node:path";import{determineAgent}from"@vercel/detect-agent";var DIRECT_GLOBAL_FLAGS=new Set(["--cwd","--debug","--global-config","--local-config","--no-color","--non-interactive","--scope","--token"]),PROXY_ENV_VARS=["HTTP_PROXY","HTTPS_PROXY","http_proxy","https_proxy","ALL_PROXY","all_proxy"],InMemoryReporter=class{constructor(){this.events=[]}report(event){this.events.push(event)}};function parseInitialArgs(argv){return parseArguments(argv,{"--version":Boolean,"-v":"--version","--changelog":Boolean,"--non-interactive":Boolean},{permissive:!0})}function getDirectBuildFallbackReason(argv=process.argv,env=process.env){let parsedArgs;try{parsedArgs=parseInitialArgs(argv)}catch{return"invalid_arguments"}if(parsedArgs.args[2]!=="build"||argv[2]!=="build")return"not_build";for(let[flag,value]of Object.entries(parsedArgs.flags))if(value!==void 0&&!DIRECT_GLOBAL_FLAGS.has(flag))return`flag:${flag}`;let separatorIndex=argv.indexOf("--");if((separatorIndex===-1?argv:argv.slice(0,separatorIndex)).some(arg=>arg==="--project"||arg.startsWith("--project=")))return"project_scope";if(env.FORCE_TTY==="1")return"force_tty";if(env.FF_GUIDANCE_MODE)return"guidance_mode";if(!env.VERCEL_TELEMETRY_DISABLED)return"telemetry_enabled";if(env.VERCEL_TELEMETRY_DEBUG==="1")return"telemetry_debug";if(!env.NO_UPDATE_NOTIFIER&&!env.VERCEL&&!isNativeBinaryInstall())return"update_check"}async function runInternalBuild(){let fallbackReason=getDirectBuildFallbackReason();if(fallbackReason!==void 0){recordDirectBuildFallback(fallbackReason);return}installProcessGuards();let client;registerUnexpectedErrorHandlers(()=>client),process.env.CLAUDECODE&&process.stderr.write(`<claude-code-hint v="1" type="plugin" value="vercel@claude-plugins-official" />
|
|
8
|
+
`);try{let exitCode=await main(c=>{client=c});return process.exitCode=exitCode,exitCode??0}catch(error){return await handleUnexpectedError(client,error),exitWithUnexpectedError(error)}}async function main(setClient){let vercelDir=getGlobalPathConfig(),traceReporter=new InMemoryReporter,rootSpan=new import_build_utils.Span({name:"vc.cli",reporter:traceReporter,attrs:{directBuild:"true"}}),parsedArgs=parseInitialArgs(process.argv);output_manager_default.initialize({debug:isOutputDebugEnabled(parsedArgs.flags["--debug"]),noColor:parsedArgs.flags["--no-color"]});let localConfigPath=parsedArgs.flags["--local-config"],localConfig=await earlyGetConfig(localConfigPath);if(localConfig instanceof CantParseJSONFile)return output_manager_default.error(`Couldn't parse JSON file ${localConfig.meta.file}.`),1;if(localConfig instanceof CantFindConfig){if(localConfigPath)return output_manager_default.error(`Couldn't find a project configuration file at
|
|
9
|
+
${localConfig.meta.paths.join(` or
|
|
10
|
+
`)}`),1;localConfig=void 0}if(localConfig instanceof Error)return output_manager_default.prettyError(localConfig),1;let shortBuildLabel=void 0?` (${(void 0).split(" ")[0]})`:"",versionBanner=isNativeBinaryInstall()?`${getTitleName()} CLI ${pkg_default.version}${shortBuildLabel}`:`${getTitleName()} CLI ${pkg_default.version}${shortBuildLabel} (Node.js ${process.versions.node})`;shouldPrintVersionBanner("build",process.argv)&&output_manager_default.print(`${import_chalk.default.dim(versionBanner)}
|
|
11
|
+
`);try{await(0,import_fs_extra.mkdirp)(vercelDir)}catch(err){return output_manager_default.error(`An unexpected error occurred while trying to create the global directory "${humanizePath(vercelDir)}" ${(0,import_error_utils.errorToString)(err)}`),1}let config;try{config=readConfigFile()}catch(err){if((0,import_error_utils.isErrnoException)(err)&&err.code==="ENOENT"){config=import_cli_config.defaultGlobalConfig;try{writeToConfigFile(config)}catch(err2){return output_manager_default.error(`An unexpected error occurred while trying to save the config to "${humanizePath(getConfigFilePath())}" ${(0,import_error_utils.errorToString)(err2)}`),1}}else return output_manager_default.error(`An unexpected error occurred while trying to read the config in "${humanizePath(getConfigFilePath())}" ${(0,import_error_utils.errorToString)(err)}`),1}let tokenSource,explicitToken;typeof parsedArgs.flags["--token"]=="string"?(explicitToken=parsedArgs.flags["--token"],tokenSource="flag"):process.env.VERCEL_TOKEN&&(explicitToken=process.env.VERCEL_TOKEN,tokenSource="env");let authConfig;if(tokenSource)authConfig=(0,import_cli_config.getDefaultAuthConfig)();else try{authConfig=readAuthConfigFile(config)}catch(err){if((0,import_error_utils.isErrnoException)(err)&&err.code==="ENOENT")authConfig=(0,import_cli_config.getDefaultAuthConfig)();else return output_manager_default.error(`An unexpected error occurred while trying to read the auth config in "${humanizePath(getAuthConfigFilePath())}" ${(0,import_error_utils.errorToString)(err)}`),1}let telemetryEventStore=new TelemetryEventStore({config:config.telemetry,cliDevice:{filePath:join(vercelDir,"telemetry-device.json")},cliSession:{filePath:join(vercelDir,"telemetry-session.json")}});checkTelemetryStatus({config});let{isAgent,agent:detectedAgent}=await determineAgent(),apiUrl="https://api.vercel.com";config&&config.api&&(apiUrl=config.api);let client;try{new URL(apiUrl)}catch{return output_manager_default.error(`Please provide a valid URL instead of ${highlight(apiUrl)}.`),1}let stdinIsTTY=process.stdin?.isTTY===!0,nonInteractiveFlag=parsedArgs.flags["--non-interactive"]===!0,argv=process.argv,explicitNonInteractiveFalse=argv.includes("--non-interactive=false")||argv.includes("--no-non-interactive")||argv.includes("--non-interactive")&&argv[argv.indexOf("--non-interactive")+1]==="false",nonInteractive=explicitNonInteractiveFalse?!1:nonInteractiveFlag||isAgent&&!stdinIsTTY;if(output_manager_default.debug(`Agent/TTY/nonInteractive: isAgent=${isAgent} agentName=${detectedAgent?.name??"none"} stdin.isTTY=${String(process.stdin?.isTTY)} --non-interactive=${nonInteractiveFlag} explicitFalse=${explicitNonInteractiveFalse} => nonInteractive=${nonInteractive}`),PROXY_ENV_VARS.some(v=>process.env[v])){let{EnvProxyDispatcher}=await import("./chunks/fetch-proxy-45DGILKR.js");setFetchDispatcher(new EnvProxyDispatcher)}client=new Client({apiUrl,stdin:process.stdin,stdout:process.stdout,stderr:output_manager_default.stream,config,authConfig,localConfig,localConfigPath,argv:process.argv,telemetryEventStore,isAgent,agentName:detectedAgent?.name,nonInteractive}),setClient(client),client.rootSpan=rootSpan,parsedArgs.flags["--cwd"]&&(client.cwd=parsedArgs.flags["--cwd"]);let{cwd}=client;if(existsSync(join(cwd,"build"))&&!parsedArgs.flags["--cwd"]&&!process.env.NOW_BUILDER&&!wantsMachineReadableOutput("build",process.argv)&&!await hasLocalProjectLink(client,cwd)&&output_manager_default.warn('Did you mean to deploy the subdirectory "build"? Use `vc --cwd build` instead.'),output_manager_default.debug('user supplied known subcommand: "build"'),tokenSource==="env"&&explicitToken&&(parsedArgs.flags["--token"]=explicitToken),typeof parsedArgs.flags["--token"]=="string"){let token=parsedArgs.flags["--token"];if(token.length===0)return output_manager_default.prettyError({message:`You defined ${param("--token")}, but it's missing a value`,link:"https://err.sh/vercel/missing-token-value"}),2;let invalid=token.match(/(\W)/g);if(invalid){let notContain=Array.from(new Set(invalid)).sort();return output_manager_default.prettyError({message:`You defined ${param("--token")}, but its contents are invalid. Must not contain: ${notContain.map(c=>JSON.stringify(c)).join(", ")}`,link:"https://err.sh/vercel/invalid-token-value"}),2}client.authConfig={token,skipWrite:!0,tokenSource},client.config&&client.config.currentTeam&&delete client.config.currentTeam}let exitCode;try{let buildCommand=(await import("./commands/build/index.js")).default,buildClient=client;exitCode=await rootSpan.child("vc.cli.command",{command:"build"}).trace(()=>buildCommand(buildClient))}catch(err){return output_manager_default.prettyError(err),1}if(rootSpan.stop(),client.traceDiagnosticsPath)try{await mkdir(join(client.traceDiagnosticsPath,".."),{recursive:!0}),await writeFile(client.traceDiagnosticsPath,JSON.stringify(traceReporter.events))}catch(err){output_manager_default.error("Failed to write diagnostics trace file"),output_manager_default.prettyError(err)}return exitCode}export{getDirectBuildFallbackReason,runInternalBuild};
|