@vercel/cli-support 65.3.1 → 65.5.0-snapshot-13615777d933
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/README.md +23 -1
- package/dist/chunks/add-6UOKR26K.js +8 -0
- package/dist/chunks/add-GULZ6EGJ.js +8 -0
- package/dist/chunks/add-RPAOJH5O.js +8 -0
- package/dist/chunks/build-MLAKPRSC.js +7 -0
- package/dist/chunks/{chunk-ADLBLGT3.js → chunk-26QK3I2S.js} +1 -1
- package/dist/chunks/chunk-2BKALEOP.js +7 -0
- package/dist/chunks/chunk-2FHZYQPY.js +7 -0
- package/dist/chunks/{chunk-6KVHNQW4.js → chunk-2QIJEHNE.js} +1 -1
- package/dist/chunks/{chunk-3JGBBS6V.js → chunk-36NK2Z3C.js} +1 -1
- package/dist/chunks/{chunk-D6REP5QQ.js → chunk-3E364MJE.js} +1 -1
- package/dist/chunks/{chunk-IGDG5CWT.js → chunk-3H36RI7C.js} +1 -1
- package/dist/chunks/{chunk-D2BZMGHP.js → chunk-3NG2EYQ5.js} +1 -1
- package/dist/chunks/{chunk-WCWP4GBR.js → chunk-4G7ZQONX.js} +1 -1
- package/dist/chunks/{chunk-7BGKE3JW.js → chunk-4HJGSSSZ.js} +1 -1
- package/dist/chunks/{chunk-BBKEP7RO.js → chunk-55H6G46X.js} +1 -1
- package/dist/chunks/chunk-5CZNUB7Y.js +7 -0
- package/dist/chunks/{chunk-URPEIX6M.js → chunk-5EMSOR2P.js} +1 -1
- package/dist/chunks/{chunk-OCQPXOTX.js → chunk-5K426HWC.js} +1 -1
- package/dist/chunks/{chunk-773GOZIR.js → chunk-5SIC5273.js} +1 -1
- package/dist/chunks/chunk-5WYPJ2T5.js +25 -0
- package/dist/chunks/{chunk-F2SWJEYV.js → chunk-6IATT2ID.js} +2 -2
- package/dist/chunks/{chunk-S5IWVPYT.js → chunk-6WMO5G45.js} +3 -3
- package/dist/chunks/{chunk-6OVX3PWM.js → chunk-75JI2SZX.js} +1 -1
- package/dist/chunks/{chunk-LRYGNQ6C.js → chunk-7G4PQR6J.js} +1 -1
- package/dist/chunks/chunk-7SAEZ4NC.js +7 -0
- package/dist/chunks/{chunk-22FDWPWY.js → chunk-7VTPAXDC.js} +1 -1
- package/dist/chunks/chunk-A2UZ2O7H.js +7 -0
- package/dist/chunks/{chunk-3LIKVGFT.js → chunk-A3RU52F4.js} +1 -1
- package/dist/chunks/{chunk-FDNYYENK.js → chunk-AIRQFG5A.js} +1 -1
- package/dist/chunks/{chunk-76SVVWPH.js → chunk-AOC6XXOO.js} +1 -1
- package/dist/chunks/chunk-ARQMFBV4.js +11 -0
- package/dist/chunks/{chunk-NQWGRKF4.js → chunk-AUY363W7.js} +1 -1
- package/dist/chunks/chunk-BGWS5R5R.js +9 -0
- package/dist/chunks/chunk-C6IITJ5S.js +7 -0
- package/dist/chunks/{chunk-LKLH6DZP.js → chunk-CLVEFWEX.js} +1 -1
- package/dist/chunks/{chunk-2WYYGGEO.js → chunk-CU2FTX57.js} +1 -1
- package/dist/chunks/{chunk-VMMMBWD3.js → chunk-CWO4HMKU.js} +1 -1
- package/dist/chunks/{chunk-CEMPU323.js → chunk-CZINAGH6.js} +1 -1
- package/dist/chunks/{chunk-TZFDVQ72.js → chunk-DAUAVRFC.js} +1 -1
- package/dist/chunks/{chunk-GA277JFB.js → chunk-DPM33VFZ.js} +1 -1
- package/dist/chunks/{chunk-Q5ODLDCU.js → chunk-DSY2S2YT.js} +1 -1
- package/dist/chunks/{chunk-XP3FT56R.js → chunk-DWOJP4ST.js} +3 -3
- package/dist/chunks/chunk-ED3VA7D4.js +7 -0
- package/dist/chunks/{chunk-GG5RME4X.js → chunk-EE2FTI3R.js} +1 -1
- package/dist/chunks/{chunk-SXOSF4O6.js → chunk-EFEQQXRU.js} +1 -1
- package/dist/chunks/{chunk-IUXSJWL3.js → chunk-EPO7P734.js} +1 -1
- package/dist/chunks/{chunk-X4762EE4.js → chunk-EQT2VHL2.js} +1 -1
- package/dist/chunks/chunk-ETEVOJQJ.js +8 -0
- package/dist/chunks/chunk-EWP5WICJ.js +10 -0
- package/dist/chunks/chunk-F22QLVTX.js +7 -0
- package/dist/chunks/{chunk-COM5YCHF.js → chunk-FAEC4BER.js} +1 -1
- package/dist/chunks/{chunk-LSQREJXO.js → chunk-FAELJM4F.js} +1 -1
- package/dist/chunks/{chunk-NTZ5WWYV.js → chunk-FNA4MIOH.js} +1 -1
- package/dist/chunks/{chunk-OWOWPOIE.js → chunk-GFD6UAAO.js} +2 -2
- package/dist/chunks/{chunk-DUT4U5YY.js → chunk-GP55VEOQ.js} +1 -1
- package/dist/chunks/chunk-GVPVWHFK.js +7 -0
- package/dist/chunks/chunk-HMWDOAWO.js +7 -0
- package/dist/chunks/{chunk-7L2K4OKM.js → chunk-HVDGNAPM.js} +1 -1
- package/dist/chunks/{chunk-7Y46LB43.js → chunk-I2WEQWCA.js} +1 -1
- package/dist/chunks/{chunk-ULHNMQ7C.js → chunk-IC3THLYP.js} +1 -1
- package/dist/chunks/{chunk-IQKGQ2Y2.js → chunk-J6L5MDTX.js} +1 -1
- package/dist/chunks/{chunk-OMCGXRSA.js → chunk-JCGEXU7T.js} +3 -3
- package/dist/chunks/{chunk-Y6AGOERS.js → chunk-JGMJP4T3.js} +1 -1
- package/dist/chunks/{chunk-YK7XLFU2.js → chunk-JHNLBVO2.js} +1 -1
- package/dist/chunks/{chunk-OQCMRU3J.js → chunk-JMLKK7RL.js} +2 -2
- package/dist/chunks/chunk-JSAY52FE.js +7 -0
- package/dist/chunks/{chunk-YN3C5BL5.js → chunk-JWUXHL35.js} +1 -1
- package/dist/chunks/{chunk-XXXRTHTP.js → chunk-JXAEI2GJ.js} +1 -1
- package/dist/chunks/{chunk-QMCHGGDX.js → chunk-KHADRPBJ.js} +1 -1
- package/dist/chunks/{chunk-43GBAKL2.js → chunk-KWKEBKUR.js} +1 -1
- package/dist/chunks/chunk-KY7LDQRX.js +7 -0
- package/dist/chunks/{chunk-NEFDNROD.js → chunk-L4XLDN6T.js} +1 -1
- package/dist/chunks/chunk-LFOWP74R.js +7 -0
- package/dist/chunks/{chunk-VQSLPYAF.js → chunk-LOO42IMZ.js} +1 -1
- package/dist/chunks/{chunk-2U7DJZSQ.js → chunk-LT5UZRMK.js} +1 -1
- package/dist/chunks/{chunk-FUX6LKNP.js → chunk-LUX4PBJL.js} +1 -1
- package/dist/chunks/chunk-M7LUSXMG.js +7 -0
- package/dist/chunks/{chunk-ANMDN3EG.js → chunk-MFW6IJIK.js} +1 -1
- package/dist/chunks/{chunk-OQPXJCMK.js → chunk-MLGQ233X.js} +1 -1
- package/dist/chunks/chunk-MY4MONOH.js +7 -0
- package/dist/chunks/{chunk-ZH6KHD55.js → chunk-MZQEDXOH.js} +2 -2
- package/dist/chunks/chunk-N5CXIFE2.js +7 -0
- package/dist/chunks/{chunk-XZV4BFM5.js → chunk-NM44RWS6.js} +1 -1
- package/dist/chunks/chunk-NVNE3W7S.js +8 -0
- package/dist/chunks/chunk-NZPGWZLV.js +9 -0
- package/dist/chunks/chunk-O7COT3YB.js +7 -0
- package/dist/chunks/{chunk-3KKFLKQG.js → chunk-ODAV7Z2H.js} +1 -1
- package/dist/chunks/{chunk-HCRD3JFL.js → chunk-OKNDHNH6.js} +1 -1
- package/dist/chunks/{chunk-LCHECISY.js → chunk-OQX4YVGU.js} +1 -1
- package/dist/chunks/chunk-ORJBK5FT.js +9 -0
- package/dist/chunks/chunk-OTYF3ZZW.js +7 -0
- package/dist/chunks/{chunk-FGFLTLEA.js → chunk-P6ZTEDX2.js} +1 -1
- package/dist/chunks/{chunk-7Z3WUAO5.js → chunk-PHHZ6J7Q.js} +1 -1
- package/dist/chunks/{chunk-E6CO6TUM.js → chunk-PRFIFS3Q.js} +1 -1
- package/dist/chunks/{chunk-OGPENBY2.js → chunk-QDPYU6KS.js} +1 -1
- package/dist/chunks/{chunk-JLEJB6KM.js → chunk-QHM6OK76.js} +1 -1
- package/dist/chunks/chunk-QNL22LAW.js +7 -0
- package/dist/chunks/{chunk-IVSC7ZFJ.js → chunk-QUSEBFDO.js} +1 -1
- package/dist/chunks/{chunk-2ACMWVTB.js → chunk-R3BEQTZZ.js} +1 -1
- package/dist/chunks/{chunk-BUJITHGZ.js → chunk-RCUDI7OF.js} +1 -1
- package/dist/chunks/{chunk-IKQTP764.js → chunk-RMW2FDXS.js} +1 -1
- package/dist/chunks/{chunk-KRPY5FHJ.js → chunk-RQVIMYKN.js} +1 -1
- package/dist/chunks/chunk-RWPQOJTT.js +22 -0
- package/dist/chunks/{chunk-BL3HBRF6.js → chunk-SDOPVIKJ.js} +1 -1
- package/dist/chunks/{chunk-3XW7N4W3.js → chunk-SKSOCUDZ.js} +1 -1
- package/dist/chunks/chunk-SLDWAIO3.js +18 -0
- package/dist/chunks/{chunk-XB4SKARZ.js → chunk-SW3JRXUW.js} +1 -1
- package/dist/chunks/{chunk-6ISAISGD.js → chunk-TGOGYSBO.js} +1 -1
- package/dist/chunks/chunk-TZT3VYZ3.js +7 -0
- package/dist/chunks/{chunk-3ADDGPEN.js → chunk-UJQ6PBRF.js} +1 -1
- package/dist/chunks/chunk-UWMPVTXG.js +7 -0
- package/dist/chunks/{chunk-R6BEOVTU.js → chunk-VAWZZK3Y.js} +1 -1
- package/dist/chunks/{chunk-KNLGWGUE.js → chunk-VLYVVC3P.js} +11 -11
- package/dist/chunks/{chunk-G4T7VBGN.js → chunk-VQ755MPP.js} +1 -1
- package/dist/chunks/{chunk-QB7F3UAP.js → chunk-VUQWLLNI.js} +1 -1
- package/dist/chunks/chunk-VWHIWUGJ.js +7 -0
- package/dist/chunks/chunk-WDUHDLUA.js +14 -0
- package/dist/chunks/chunk-WICRM2JL.js +7 -0
- package/dist/chunks/{chunk-TKBORMUF.js → chunk-WKZ6JSGZ.js} +1 -1
- package/dist/chunks/{chunk-RRREFECI.js → chunk-WSVYZKI6.js} +1 -1
- package/dist/chunks/{chunk-UJSW56GS.js → chunk-XAU3KTPX.js} +1 -1
- package/dist/chunks/chunk-XCKUJZUG.js +10 -0
- package/dist/chunks/{chunk-DGYHWXD2.js → chunk-XE24Y6NM.js} +3 -3
- package/dist/chunks/{chunk-RW3X523R.js → chunk-XSQVCDSD.js} +1 -1
- package/dist/chunks/{chunk-KW6GSQXV.js → chunk-XTKGBVSF.js} +1 -1
- package/dist/chunks/{chunk-SKYDLHEZ.js → chunk-YALEYPMP.js} +1 -1
- package/dist/chunks/chunk-YCJHUYBJ.js +19 -0
- package/dist/chunks/{chunk-TO5PJDEN.js → chunk-YIRSRF6D.js} +1 -1
- package/dist/chunks/chunk-YQDOADMG.js +10 -0
- package/dist/chunks/{chunk-PFPJLIFF.js → chunk-YT3QAZQF.js} +1 -1
- package/dist/chunks/chunk-ZQUVDDPB.js +7 -0
- package/dist/chunks/{chunk-WBF36MYT.js → chunk-ZUNQHI5Y.js} +1 -1
- package/dist/chunks/{chunk-S4SJ7GIZ.js → chunk-ZUYPTLVO.js} +1 -1
- package/dist/chunks/clear-UZWOOGOH.js +8 -0
- package/dist/chunks/compile-vercel-config-2RQDL3RD.js +7 -0
- package/dist/chunks/config-C76IGJ6B.js +8 -0
- package/dist/chunks/config-RMJWRS7O.js +7 -0
- package/dist/chunks/config-validator.mjs +1 -1
- package/dist/chunks/{connect-git-provider-FS5Q2HO4.js → connect-git-provider-IQ7N2NPY.js} +1 -1
- package/dist/chunks/{constants-ICJL2EO5.js → constants-JAB7MRSK.js} +1 -1
- package/dist/chunks/delete-2WBR5JQW.js +9 -0
- package/dist/chunks/delete-OKOBDL7Z.js +10 -0
- package/dist/chunks/{detect-projects-OD4JEAW2.js → detect-projects-XPB3R7VS.js} +1 -1
- package/dist/chunks/detect-services-DRHV22O5.js +7 -0
- package/dist/chunks/disable-DFEABU2Z.js +7 -0
- package/dist/chunks/discard-KGBEMNFT.js +14 -0
- package/dist/chunks/edit-5XIRLUKG.js +9 -0
- package/dist/chunks/edit-PJIDMKUS.js +8 -0
- package/dist/chunks/enable-UDWDPFOI.js +7 -0
- package/dist/chunks/{exec-OZSY46V6.js → exec-PX4GTZNE.js} +1 -1
- package/dist/chunks/{export-MHSH7QCX.js → export-W75EA6EQ.js} +1 -1
- package/dist/chunks/future-PHSAEQIE.js +7 -0
- package/dist/chunks/generate-cert-for-deploy-C67VL5Z6.js +7 -0
- package/dist/chunks/image-U5CV2PRP.js +7 -0
- package/dist/chunks/import-builders-PHIIX7HW.js +7 -0
- package/dist/chunks/inspect-AU3MX7E2.js +13 -0
- package/dist/chunks/{inspect-IAWVHJXQ.js → inspect-DQQI3PM7.js} +1 -1
- package/dist/chunks/inspect-LJK7I6RZ.js +9 -0
- package/dist/chunks/{inspect-DI434TAM.js → inspect-RNWLPR7I.js} +1 -1
- package/dist/chunks/{inspect-A7WJQQZO.js → inspect-WHPWW4BI.js} +1 -1
- package/dist/chunks/list-JV26NNYL.js +16 -0
- package/dist/chunks/{list-INRPH25K.js → list-QNRFVMMQ.js} +1 -1
- package/dist/chunks/list-YF4FXWUZ.js +12 -0
- package/dist/chunks/login-A4KNOUNA.js +9 -0
- package/dist/chunks/login-COGE7JQU.js +7 -0
- package/dist/chunks/logs-KMQATUYR.js +7 -0
- package/dist/chunks/{ls-LIGIBVAT.js → ls-DTFLHFOW.js} +1 -1
- package/dist/chunks/{ls-MCQ2NS65.js → ls-FOKMPVIB.js} +1 -1
- package/dist/chunks/ls-HMYU2ZGA.js +11 -0
- package/dist/chunks/{ls-S5E2NQMI.js → ls-IHF33MQP.js} +1 -1
- package/dist/chunks/{ls-VXH4QYF5.js → ls-QD54I4S7.js} +1 -1
- package/dist/chunks/{ls-V2ZSIVO3.js → ls-RNRMYD3V.js} +1 -1
- package/dist/chunks/ls-ZQLCDIQJ.js +8 -0
- package/dist/chunks/mutate-RMIFQOF6.js +9 -0
- package/dist/chunks/notifications-BFBNV2HY.js +7 -0
- package/dist/chunks/open-L6HEXHAI.js +7 -0
- package/dist/chunks/openapi-6JKCOR7K.js +7 -0
- package/dist/chunks/permissions-UYGTYRKA.js +7 -0
- package/dist/chunks/{plugin-offer-Z6FCPQFD.js → plugin-offer-NBHRXMNR.js} +1 -1
- package/dist/chunks/prompt-missing-credentials-2IYIF2JI.js +7 -0
- package/dist/chunks/publish-T2VSTPG4.js +15 -0
- package/dist/chunks/pull-4GL47Z2S.js +7 -0
- package/dist/chunks/purchase-domain-if-available-BHFBD3LW.js +7 -0
- package/dist/chunks/push-CQPIDVTL.js +7 -0
- package/dist/chunks/{query-JGPO7TNY.js → query-HN45ORIB.js} +3 -3
- package/dist/chunks/reauthenticate-FTHGAWK3.js +7 -0
- package/dist/chunks/reorder-7BD5JZKQ.js +10 -0
- package/dist/chunks/reply-2INQJ5KM.js +9 -0
- package/dist/chunks/resolve-DHAJC3I7.js +12 -0
- package/dist/chunks/resolve-agent-team-KGYPHN5F.js +7 -0
- package/dist/chunks/restore-OQKNWEFQ.js +16 -0
- package/dist/chunks/rm-CTP4UZH7.js +8 -0
- package/dist/chunks/rm-GFHEXQQW.js +8 -0
- package/dist/chunks/rm-OG3OXA6H.js +8 -0
- package/dist/chunks/rm-PFZYHXEN.js +8 -0
- package/dist/chunks/rm-XAW3WJ3I.js +8 -0
- package/dist/chunks/{routes-P6LKQCWH.js → routes-XKEWEA3P.js} +1 -1
- package/dist/chunks/rule-inspect-MKQE5IVJ.js +8 -0
- package/dist/chunks/{schema-BEUO7G52.js → schema-TFN5PSYE.js} +2 -2
- package/dist/chunks/schema-XFER2RCF.js +14 -0
- package/dist/chunks/select-org-PFTR6HQZ.js +7 -0
- package/dist/chunks/set-KWOZNGRL.js +7 -0
- package/dist/chunks/setup-and-link-BRYK42L7.js +7 -0
- package/dist/chunks/{skills-4J2NC2QI.js → skills-2MOFBKIE.js} +2 -2
- package/dist/chunks/tags-BHZUQTOQ.js +7 -0
- package/dist/chunks/{types-SK6J2HFE.js → types-IWO5QLAV.js} +1 -1
- package/dist/chunks/{update-25CKNOY5.js → update-LP7ZZUFZ.js} +1 -1
- package/dist/commands/build/index.js +2 -2
- package/dist/commands/deploy/index.js +8 -8
- package/dist/commands/dev/index.js +6 -6
- package/dist/commands/env/index.js +3 -3
- package/dist/commands/link/index.js +2 -2
- package/dist/commands/list/index.js +1 -1
- package/dist/commands/project/index.js +10 -10
- package/dist/commands-account.js +24 -24
- package/dist/commands-ai.js +17 -17
- package/dist/commands-blob.js +9 -9
- package/dist/commands-core.js +26 -26
- package/dist/commands-deployments.js +3 -3
- package/dist/commands-flags.js +32 -32
- package/dist/commands-integrations.js +103 -88
- package/dist/commands-observability.js +7 -7
- package/dist/commands-routing.js +29 -29
- package/dist/help.js +1 -1
- package/dist/index.js +8 -6
- package/dist/internal-build.js +2 -2
- package/dist/native-download.js +7 -0
- package/dist/package.json +61 -61
- package/dist/root-help-commands.mjs +1 -1
- package/dist/vc.js +306 -140
- package/dist/version.mjs +1 -1
- package/package.json +55 -54
- package/dist/chunks/add-5YZQTIQM.js +0 -8
- package/dist/chunks/add-A524QQ2H.js +0 -8
- package/dist/chunks/add-V4JMUHKO.js +0 -8
- package/dist/chunks/build-K2PVDJZ4.js +0 -7
- package/dist/chunks/chunk-2H3SB5RP.js +0 -9
- package/dist/chunks/chunk-2PKEEQ5W.js +0 -25
- package/dist/chunks/chunk-3AYYFYZG.js +0 -7
- package/dist/chunks/chunk-4UGHFESV.js +0 -8
- package/dist/chunks/chunk-5IASAERQ.js +0 -7
- package/dist/chunks/chunk-6VH56CX2.js +0 -19
- package/dist/chunks/chunk-76KGQU2G.js +0 -7
- package/dist/chunks/chunk-7HV7O6DM.js +0 -7
- package/dist/chunks/chunk-ABZEMNDR.js +0 -7
- package/dist/chunks/chunk-APZULWJC.js +0 -8
- package/dist/chunks/chunk-AWMQGOS2.js +0 -7
- package/dist/chunks/chunk-B4UE4LVE.js +0 -7
- package/dist/chunks/chunk-B4YYOSPY.js +0 -7
- package/dist/chunks/chunk-E2SADN6I.js +0 -7
- package/dist/chunks/chunk-GVTXA6HG.js +0 -7
- package/dist/chunks/chunk-GYVJIIYL.js +0 -7
- package/dist/chunks/chunk-IA3MXJRC.js +0 -8
- package/dist/chunks/chunk-IEPW2YRH.js +0 -7
- package/dist/chunks/chunk-KH6565YH.js +0 -8
- package/dist/chunks/chunk-L4NSF346.js +0 -22
- package/dist/chunks/chunk-LJBUJ23M.js +0 -7
- package/dist/chunks/chunk-LT3UK4K6.js +0 -10
- package/dist/chunks/chunk-LUBUI5GF.js +0 -7
- package/dist/chunks/chunk-OKEBIUKZ.js +0 -7
- package/dist/chunks/chunk-PFNYWWLI.js +0 -7
- package/dist/chunks/chunk-QZX7VG2V.js +0 -9
- package/dist/chunks/chunk-RUXO73ON.js +0 -7
- package/dist/chunks/chunk-SLI2O5X7.js +0 -63
- package/dist/chunks/chunk-TPNOSQZ3.js +0 -15
- package/dist/chunks/chunk-UKQMYTWW.js +0 -9
- package/dist/chunks/chunk-UNEGQPD3.js +0 -7
- package/dist/chunks/chunk-V7BEC3E4.js +0 -10
- package/dist/chunks/chunk-VOCZ34ON.js +0 -7
- package/dist/chunks/chunk-WGXKX24Q.js +0 -7
- package/dist/chunks/chunk-YHQ7PPXP.js +0 -7
- package/dist/chunks/clear-ZS4KQ7OT.js +0 -8
- package/dist/chunks/compile-vercel-config-3IYM2CHC.js +0 -7
- package/dist/chunks/config-N2SBVW4T.js +0 -8
- package/dist/chunks/config-ZFIC7N4D.js +0 -7
- package/dist/chunks/delete-2ZE2NVHI.js +0 -10
- package/dist/chunks/delete-AL57HZDQ.js +0 -9
- package/dist/chunks/detect-services-MOXTX5XG.js +0 -7
- package/dist/chunks/disable-MKI3BKNH.js +0 -7
- package/dist/chunks/discard-SI4H7ST3.js +0 -14
- package/dist/chunks/edit-DNWH6SPE.js +0 -8
- package/dist/chunks/edit-WYNWDFUJ.js +0 -9
- package/dist/chunks/enable-J6MMYPYF.js +0 -7
- package/dist/chunks/future-FFOGTKMF.js +0 -7
- package/dist/chunks/generate-cert-for-deploy-YZKNGAEQ.js +0 -7
- package/dist/chunks/image-7METSS6F.js +0 -7
- package/dist/chunks/import-builders-GM2SERWV.js +0 -7
- package/dist/chunks/inspect-H2Q7XOWN.js +0 -13
- package/dist/chunks/inspect-H5JC2XKI.js +0 -9
- package/dist/chunks/list-ELEUTZWJ.js +0 -12
- package/dist/chunks/list-WWU734RK.js +0 -16
- package/dist/chunks/login-R5NQRPQC.js +0 -7
- package/dist/chunks/login-ZF2TLCQB.js +0 -9
- package/dist/chunks/logs-UD7FEXZ7.js +0 -7
- package/dist/chunks/ls-5ZEAKKPQ.js +0 -8
- package/dist/chunks/ls-IXRLAJ4L.js +0 -11
- package/dist/chunks/mutate-OQWOKLIW.js +0 -9
- package/dist/chunks/notifications-KFZ333V5.js +0 -7
- package/dist/chunks/open-HH6K7ZRC.js +0 -7
- package/dist/chunks/openapi-JGYEFJJV.js +0 -7
- package/dist/chunks/permissions-ZSHKMXBZ.js +0 -7
- package/dist/chunks/prompt-missing-credentials-KOA7C4QC.js +0 -7
- package/dist/chunks/publish-FPNQ2US4.js +0 -15
- package/dist/chunks/pull-7OGOIKB3.js +0 -7
- package/dist/chunks/purchase-domain-if-available-F4LKHVBD.js +0 -7
- package/dist/chunks/push-NY3SIK2C.js +0 -7
- package/dist/chunks/reauthenticate-OZRQFR66.js +0 -7
- package/dist/chunks/reorder-4J2STFUS.js +0 -10
- package/dist/chunks/reply-EO4NTTPW.js +0 -9
- package/dist/chunks/resolve-RPHHRPNM.js +0 -12
- package/dist/chunks/resolve-agent-team-KX77HEAF.js +0 -7
- package/dist/chunks/restore-TEA6TSVK.js +0 -16
- package/dist/chunks/rm-BPILSPUI.js +0 -8
- package/dist/chunks/rm-F6XVUDBM.js +0 -8
- package/dist/chunks/rm-JCPXV2FN.js +0 -8
- package/dist/chunks/rm-LPQRGX7N.js +0 -8
- package/dist/chunks/rm-WHUGT6TE.js +0 -8
- package/dist/chunks/rule-inspect-BOETGPFO.js +0 -8
- package/dist/chunks/schema-YOEAK4VX.js +0 -14
- package/dist/chunks/select-org-OMLGQEKK.js +0 -7
- package/dist/chunks/set-5XY27S7R.js +0 -7
- package/dist/chunks/setup-and-link-A7M3QT52.js +0 -7
- package/dist/chunks/tags-ZXZQEXOV.js +0 -7
|
@@ -1 +1 @@
|
|
|
1
|
-
export const rootHelpCommands = [{"names":["deploy"],"description":"Deploy your project to Vercel","basic":true,"default":true},{"names":["activity"],"description":"List user activity events","basic":false,"default":false},{"names":["agent"],"description":"Generate an AGENTS.md file with Vercel deployment best practices","basic":false,"default":false},{"names":["agent-runs"],"description":"Inspect Agent Runs observability data","basic":false,"default":false},{"names":["ai-gateway"],"description":"Manage AI Gateway resources","basic":false,"default":false},{"names":["alerts"],"description":"List alert groups or inspect a group","basic":false,"default":false},{"names":["alias"],"description":"Interact with deployment aliases","basic":false,"default":false},{"names":["api"],"description":"Make authenticated HTTP requests to the Vercel API","basic":false,"default":false},{"names":["bisect"],"description":"Bisect the current project interactively or via an automated test script","basic":false,"default":false},{"names":["blob"],"description":"Interact with Vercel Blob","basic":false,"default":false},{"names":["budgets"],"description":"Show and manage Spend Management for on-demand charges after included credit [beta]","basic":false,"default":false},{"names":["build"],"description":"Build the project","basic":true,"default":false},{"names":["buy"],"description":"Purchase Vercel products for your team","basic":false,"default":false},{"names":["cache"],"description":"Manage cache for a Project","basic":true,"default":false},{"names":["certs"],"description":"Interact with SSL certificates","basic":false,"default":false},{"names":["changelog"],"description":"Show the latest Vercel product updates","basic":false,"default":false},{"names":["ci"],"description":"Inspect Vercel CI and rerun runs","basic":false,"default":false},{"names":["comments"],"description":"Review and act on Vercel Toolbar comments from the command line","basic":false,"default":false},{"names":["connect"],"description":"Manage connectors","basic":false,"default":false},{"names":["contract"],"description":"Show contract information for all billing periods","basic":false,"default":false},{"names":["crons"],"description":"Manage cron jobs for a project [beta]","basic":false,"default":false},{"names":["curl"],"description":"Make curl requests to Vercel deployments with automatic protection bypass","basic":false,"default":false},{"names":["daemons"],"description":"Manage daemons for a project [beta]","basic":false,"default":false},{"names":["deploy-hooks"],"description":"Manage deploy hooks for Git-triggered builds","basic":false,"default":false},{"names":["dev"],"description":"Starts the `vercel dev` server","basic":true,"default":false},{"names":["dns"],"description":"Interact with DNS entries for a project","basic":false,"default":false},{"names":["domains"],"description":"Manage domains","basic":false,"default":false},{"names":["drains"],"description":"Manage drains for logs, traces, and analytics","basic":false,"default":false},{"names":["env"],"description":"Interact with Environment Variables for a Project","basic":true,"default":false},{"names":["environments"],"description":"Manage custom environments for a Project","basic":false,"default":false},{"names":["feedback"],"description":"Send bugs, friction, and feature requests to the Vercel team","basic":false,"default":false},{"names":["firewall"],"description":"Manage your project's firewall rules, IP blocks, and system bypass configuration","basic":false,"default":false},{"names":["flags"],"description":"Manage feature flags for a Vercel project","basic":false,"default":false},{"names":["git"],"description":"Manage your Git repository connection to the current Project","basic":true,"default":false},{"names":["global-config"],"description":"Manage Global Config stores (dashboard API parity)","basic":false,"default":false},{"names":["health"],"description":"Show the current Vercel platform status and recent incidents","basic":false,"default":false},{"names":["help"],"description":"Show help for a command","basic":true,"default":false},{"names":["httpstat"],"description":"Execute httpstat with automatic deployment URL and protection bypass to visualize HTTP timing statistics","basic":false,"default":false},{"names":["init"],"description":"Initialize example Vercel Projects","basic":true,"default":false},{"names":["inspect"],"description":"Show information about a deployment","basic":true,"default":false},{"names":["install"],"description":"Install an integration from the marketplace (alias for `integration add`)","basic":true,"default":false},{"names":["integration"],"description":"Manage marketplace integrations","basic":true,"default":false},{"names":["kms"],"description":"Manage KMS issuers, signing keys, and project grants [beta]","basic":false,"default":false},{"names":["link"],"description":"Link a local directory to a Vercel project","basic":true,"default":false},{"names":["list"],"description":"List deployments","basic":true,"default":false},{"names":["login"],"description":"Sign in to your Vercel account","basic":true,"default":false},{"names":["logout"],"description":"Sign out the currently authenticated user","basic":true,"default":false},{"names":["logs"],"description":"Display logs","basic":false,"default":false},{"names":["mcp"],"description":"Set up MCP agents and configuration for Vercel integration","basic":false,"default":false},{"names":["metrics"],"description":"Query observability metrics for your Vercel project or team","basic":false,"default":false},{"names":["microfrontends"],"description":"Manage microfrontends groups that compose multiple projects into one cohesive application","basic":false,"default":false},{"names":["monitors"],"description":"Create, inspect, list, update, and delete monitors and manage their notification destinations","basic":false,"default":false},{"names":["open"],"description":"Opens the current project in the Vercel Dashboard","basic":true,"default":false},{"names":["organizations"],"description":"Manage Vercel organizations","basic":false,"default":false},{"names":["pricing"],"description":"Show Hobby, Pro, and Enterprise features from the public Vercel pricing table","basic":false,"default":false},{"names":["project"],"description":"Manage your Vercel projects","basic":false,"default":false},{"names":["promote"],"description":"Promote an existing Deployment to current","basic":true,"default":false},{"names":["pull"],"description":"Pull Environment Variables and project settings into .vercel","basic":true,"default":false},{"names":["redeploy"],"description":"Rebuild and deploy a previous deployment","basic":true,"default":false},{"names":["redirects"],"description":"Manage redirects for a project","basic":false,"default":false},{"names":["remove"],"description":"Delete deployment(s) by project name or deployment ID","basic":false,"default":false},{"names":["rollback"],"description":"Quickly revert back to a previous deployment","basic":true,"default":false},{"names":["rolling-release"],"description":"Rolling releases gradually shift traffic to a new deployment in stages, allowing you to monitor for errors before serving all traffic","basic":false,"default":false},{"names":["routes"],"description":"Manage routing rules for a project","basic":false,"default":false},{"names":["sandbox"],"description":"Interact with Vercel Sandbox","basic":false,"default":false},{"names":["schedules"],"description":"Manage schedules for the current project [beta]","basic":false,"default":false},{"names":["security"],"description":"Inspect the security posture of the current team","basic":false,"default":false},{"names":["setup"],"description":"Set up your machine for Vercel: install the Vercel plugin for Claude Code, Codex, and OpenCode and connect local coding agents to the AI Gateway","basic":false,"default":false},{"names":["signup"],"description":"Create a Vercel account and sign in","basic":true,"default":false},{"names":["skills"],"description":"Discover agent skills relevant to your project","basic":false,"default":false},{"names":["storage"],"description":"Create, connect, and manage storage resources (Blob, Global Config, Marketplace, and 1P) for your Projects","basic":false,"default":false},{"names":["switch"],"description":"Switch to a different team","basic":true,"default":false},{"names":["teams"],"description":"Manage Teams under your Vercel account","basic":false,"default":false},{"names":["telemetry"],"description":"Allows you to enable or disable telemetry collection","basic":false,"default":false},{"names":["token-pass"],"description":"Set up a coding agent with Vercel Token Pass","basic":false,"default":false},{"names":["tokens"],"description":"Manage your personal Vercel authentication tokens","basic":false,"default":false},{"names":["traces"],"description":"Fetch project traces and search spans across a Vercel team","basic":false,"default":false},{"names":["upgrade"],"description":"Upgrade the current global or native Vercel CLI installation","basic":false,"default":false},{"names":["usage"],"description":"Show billing usage and costs for the current billing cycle or a custom date range","basic":false,"default":false},{"names":["vcr"],"description":"Manage Vercel Container Registry repositories and images (see `vcr image`)","basic":false,"default":false},{"names":["version"],"description":"Manages the installed Vercel CLI version","basic":false,"default":false},{"names":["webhooks"],"description":"Manage webhooks","basic":false,"default":false},{"names":["whoami"],"description":"Shows the username of the currently logged in user","basic":false,"default":false}];
|
|
1
|
+
export const rootHelpCommands = [{"names":["deploy"],"description":"Deploy your project to Vercel","group":"Deploy and Develop","default":true},{"names":["activity"],"description":"List user activity events","group":"Operations and Security","default":false},{"names":["agent"],"description":"Generate Vercel deployment guidance in AGENTS.md","group":"CLI and Integrations","default":false},{"names":["agent-runs"],"description":"Inspect Agent Runs observability data","group":"Operations and Security","default":false},{"names":["ai-gateway"],"description":"Manage AI Gateway resources","group":"Data and Compute","default":false},{"names":["alerts"],"description":"List alert groups or inspect a group","group":"Operations and Security","default":false},{"names":["alias"],"description":"Interact with deployment aliases","group":"Domains and Traffic","default":false},{"names":["api"],"description":"Make authenticated HTTP requests to the Vercel API","group":"CLI and Integrations","default":false},{"names":["bisect"],"description":"Bisect the current project interactively or via an automated test script","group":"Deploy and Develop","default":false},{"names":["blob"],"description":"Interact with Vercel Blob","group":"Data and Compute","default":false},{"names":["budgets"],"description":"Manage spending beyond included credit [beta]","group":"Account and Billing","default":false},{"names":["build"],"description":"Build the project","group":"Deploy and Develop","default":false},{"names":["buy"],"description":"Purchase Vercel products for your team","group":"Account and Billing","default":false},{"names":["cache"],"description":"Manage cache for a Project","group":"Projects and Configuration","default":false},{"names":["certs"],"description":"Interact with SSL certificates","group":"Domains and Traffic","default":false},{"names":["changelog"],"description":"Show the latest Vercel product updates","group":"CLI and Integrations","default":false},{"names":["ci"],"description":"Inspect Vercel CI and rerun runs","group":"Deploy and Develop","default":false},{"names":["comments"],"description":"Review and act on Vercel Toolbar comments from the command line","group":"Operations and Security","default":false},{"names":["connect"],"description":"Manage connectors","group":"CLI and Integrations","default":false},{"names":["contract"],"description":"Show contract information for all billing periods","group":"Account and Billing","default":false},{"names":["crons"],"description":"Manage cron jobs for a project [beta]","group":"Data and Compute","default":false},{"names":["curl"],"description":"Request deployments with protection bypass","group":"Deploy and Develop","default":false},{"names":["daemons"],"description":"Manage daemons for a project [beta]","group":"Data and Compute","default":false},{"names":["deploy-hooks"],"description":"Manage deploy hooks for Git-triggered builds","group":"Projects and Configuration","default":false},{"names":["dev"],"description":"Starts the `vercel dev` server","group":"Deploy and Develop","default":false},{"names":["dns"],"description":"Manage DNS records for your domains","group":"Domains and Traffic","default":false},{"names":["domains"],"description":"Manage domains","group":"Domains and Traffic","default":false},{"names":["drains"],"description":"Manage drains for logs, traces, analytics, and speed insights","group":"Operations and Security","default":false},{"names":["env"],"description":"Interact with Environment Variables for a Project","group":"Projects and Configuration","default":false},{"names":["environments"],"description":"Manage custom environments for a Project","group":"Projects and Configuration","default":false},{"names":["feedback"],"description":"Send bugs, friction, and feature requests to the Vercel team","group":"CLI and Integrations","default":false},{"names":["firewall"],"description":"Manage firewall rules and bypass settings","group":"Operations and Security","default":false},{"names":["flags"],"description":"Manage feature flags for a Vercel project","group":"Projects and Configuration","default":false},{"names":["git"],"description":"Manage your Git repository connection to the current Project","group":"Projects and Configuration","default":false},{"names":["global-config"],"description":"Manage Global Config stores (dashboard API parity)","group":"Data and Compute","default":false},{"names":["health"],"description":"Show the current Vercel platform status and recent incidents","group":"Operations and Security","default":false},{"names":["help"],"description":"Show help for a command","group":"CLI and Integrations","default":false},{"names":["httpstat"],"description":"Show deployment HTTP timing","group":"Deploy and Develop","default":false},{"names":["init"],"description":"Initialize example Vercel Projects","group":"Deploy and Develop","default":false},{"names":["inspect"],"description":"Show information about a deployment","group":"Deploy and Develop","default":false},{"names":["install"],"description":"Install a marketplace integration","group":"CLI and Integrations","default":false},{"names":["integration"],"description":"Manage marketplace integrations","group":"CLI and Integrations","default":false},{"names":["kms"],"description":"Manage KMS issuers, signing keys, and project grants [beta]","group":"Operations and Security","default":false},{"names":["link"],"description":"Link a local directory to a Vercel project","group":"Projects and Configuration","default":false},{"names":["list"],"description":"List deployments","group":"Deploy and Develop","default":false},{"names":["login"],"description":"Sign in to your Vercel account","group":"Account and Billing","default":false},{"names":["logout"],"description":"Sign out the currently authenticated user","group":"Account and Billing","default":false},{"names":["logs"],"description":"Display logs","group":"Operations and Security","default":false},{"names":["mcp"],"description":"Set up MCP agents for Vercel","group":"CLI and Integrations","default":false},{"names":["metrics"],"description":"Query observability metrics for your Vercel project or team","group":"Operations and Security","default":false},{"names":["microfrontends"],"description":"Manage microfrontends groups","group":"Projects and Configuration","default":false},{"names":["monitors"],"description":"Add, inspect, list, update, and remove monitors, and manage their notification destinations","group":"Operations and Security","default":false},{"names":["open"],"description":"Opens the current project in the Vercel Dashboard","group":"Projects and Configuration","default":false},{"names":["organizations"],"description":"Manage Vercel organizations","group":"Account and Billing","default":false},{"names":["pricing"],"description":"Compare public plan features","group":"Account and Billing","default":false},{"names":["project"],"description":"Manage your Vercel projects","group":"Projects and Configuration","default":false},{"names":["promote"],"description":"Promote an existing Deployment to current","group":"Deploy and Develop","default":false},{"names":["pull"],"description":"Pull Environment Variables and project settings into .vercel","group":"Projects and Configuration","default":false},{"names":["redeploy"],"description":"Rebuild and deploy a previous deployment","group":"Deploy and Develop","default":false},{"names":["redirects"],"description":"Manage redirects for a project","group":"Domains and Traffic","default":false},{"names":["remove"],"description":"Delete deployment(s) by project name or deployment ID","group":"Deploy and Develop","default":false},{"names":["rollback"],"description":"Roll back to a previous deployment","group":"Deploy and Develop","default":false},{"names":["rolling-release"],"description":"Shift deployment traffic in stages","group":"Deploy and Develop","default":false},{"names":["routes"],"description":"Manage routing rules for a project","group":"Domains and Traffic","default":false},{"names":["sandbox"],"description":"Interact with Vercel Sandbox","group":"Data and Compute","default":false},{"names":["schedules"],"description":"Manage schedules for the current project [beta]","group":"Data and Compute","default":false},{"names":["security"],"description":"Inspect the security posture of the current team","group":"Operations and Security","default":false},{"names":["setup"],"description":"Set up coding agents for Vercel","group":"CLI and Integrations","default":false},{"names":["signup"],"description":"Create a Vercel account and sign in","group":"Account and Billing","default":false},{"names":["skills"],"description":"Discover agent skills relevant to your project","group":"CLI and Integrations","default":false},{"names":["storage"],"description":"Manage project storage resources","group":"Data and Compute","default":false},{"names":["switch"],"description":"Switch to a different team","group":"Account and Billing","default":false},{"names":["teams"],"description":"Manage Teams under your Vercel account","group":"Account and Billing","default":false},{"names":["telemetry"],"description":"Allows you to enable or disable telemetry collection","group":"CLI and Integrations","default":false},{"names":["token-pass"],"description":"Set up a coding agent with Vercel Token Pass","group":"CLI and Integrations","default":false},{"names":["tokens"],"description":"Manage your personal Vercel authentication tokens","group":"Account and Billing","default":false},{"names":["traces"],"description":"Inspect project traces and search spans across a Vercel team","group":"Operations and Security","default":false},{"names":["upgrade"],"description":"Upgrade the current global or native Vercel CLI installation","group":"CLI and Integrations","default":false},{"names":["usage"],"description":"Show billing usage and costs","group":"Account and Billing","default":false},{"names":["vcr"],"description":"Manage Vercel Container Registry repositories and images (see `vcr image`)","group":"Data and Compute","default":false},{"names":["version"],"description":"Manages the installed Vercel CLI version","group":"CLI and Integrations","default":false},{"names":["webhooks"],"description":"Manage webhooks","group":"Operations and Security","default":false},{"names":["whoami"],"description":"Shows the username of the currently logged in user","group":"Account and Billing","default":false}];
|
package/dist/vc.js
CHANGED
|
@@ -4,23 +4,57 @@
|
|
|
4
4
|
// https://nodejs.org/api/module.html#moduleenablecompilecachecachedir
|
|
5
5
|
// enableCompileCache was added in Node.js 22.8.0, so we need to handle older versions.
|
|
6
6
|
const entryAt = performance.now();
|
|
7
|
+
Reflect.set(globalThis, Symbol.for('vercel.cli.entry-at'), entryAt);
|
|
8
|
+
const startupTimings = process.env.VERCEL_TELEMETRY_DISABLED
|
|
9
|
+
? undefined
|
|
10
|
+
: {
|
|
11
|
+
marks: [
|
|
12
|
+
{
|
|
13
|
+
phase: 'compile_cache',
|
|
14
|
+
timestamp: Number(process.hrtime.bigint() / BigInt(1000)),
|
|
15
|
+
},
|
|
16
|
+
],
|
|
17
|
+
};
|
|
18
|
+
Reflect.set(
|
|
19
|
+
globalThis,
|
|
20
|
+
Symbol.for('vercel.cli.startup-timings'),
|
|
21
|
+
startupTimings
|
|
22
|
+
);
|
|
23
|
+
function markStartup(phase) {
|
|
24
|
+
startupTimings?.marks.push({
|
|
25
|
+
phase,
|
|
26
|
+
timestamp: Number(process.hrtime.bigint() / BigInt(1000)),
|
|
27
|
+
});
|
|
28
|
+
}
|
|
7
29
|
try {
|
|
8
30
|
const { enableCompileCache } = await import('node:module');
|
|
9
31
|
if (enableCompileCache) {
|
|
10
32
|
enableCompileCache();
|
|
11
33
|
}
|
|
12
34
|
} catch {}
|
|
35
|
+
markStartup('launcher');
|
|
13
36
|
|
|
14
|
-
//
|
|
15
|
-
//
|
|
37
|
+
// Run the one package this platform maps to: the native binary on macOS and
|
|
38
|
+
// Linux x64/arm64 (downloaded once into the CLI cache when the install skipped
|
|
39
|
+
// it), @vercel/cli-support everywhere else. This package's own JS CLI
|
|
40
|
+
// (./index.js) is only a fallback, recorded in telemetry.
|
|
16
41
|
import { spawnSync } from 'node:child_process';
|
|
17
|
-
import {
|
|
18
|
-
|
|
42
|
+
import {
|
|
43
|
+
accessSync,
|
|
44
|
+
constants as fsConstants,
|
|
45
|
+
existsSync,
|
|
46
|
+
mkdirSync,
|
|
47
|
+
readFileSync,
|
|
48
|
+
statSync,
|
|
49
|
+
writeFileSync,
|
|
50
|
+
} from 'node:fs';
|
|
51
|
+
import { dirname, join, resolve, sep } from 'node:path';
|
|
19
52
|
import { fileURLToPath, pathToFileURL } from 'node:url';
|
|
20
53
|
|
|
21
54
|
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
22
55
|
|
|
23
|
-
// Keep in sync with packages/vc-native/scripts/platforms.mjs.
|
|
56
|
+
// Keep in sync with packages/vc-native/scripts/platforms.mjs. Windows runs
|
|
57
|
+
// only the Node CLI until its native binaries are signed.
|
|
24
58
|
const NATIVE_TARGETS = [
|
|
25
59
|
'darwin-arm64',
|
|
26
60
|
'darwin-x64',
|
|
@@ -28,8 +62,6 @@ const NATIVE_TARGETS = [
|
|
|
28
62
|
'linux-arm64-musl',
|
|
29
63
|
'linux-x64',
|
|
30
64
|
'linux-x64-musl',
|
|
31
|
-
'win32-arm64',
|
|
32
|
-
'win32-x64',
|
|
33
65
|
];
|
|
34
66
|
|
|
35
67
|
// musl's `ldd` names itself. npm and pnpm skip the other libc's package via
|
|
@@ -40,103 +72,169 @@ function isMusl() {
|
|
|
40
72
|
return `${ldd.stdout ?? ''}${ldd.stderr ?? ''}`.includes('musl');
|
|
41
73
|
}
|
|
42
74
|
|
|
43
|
-
function
|
|
75
|
+
function platformTarget() {
|
|
44
76
|
const target = `${process.platform}-${process.arch}`;
|
|
45
77
|
return process.platform === 'linux' && isMusl() ? `${target}-musl` : target;
|
|
46
78
|
}
|
|
47
79
|
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
const binName = process.platform === 'win32' ? 'vercel.exe' : 'vercel';
|
|
53
|
-
// Walk up from this install's own tree looking for a sibling native
|
|
54
|
-
// package. `require.resolve()` is not used because it falls back to
|
|
55
|
-
// NODE_PATH and the global folders even when `paths` is given.
|
|
80
|
+
// Walk up from this install's own tree. `require.resolve()` is not used
|
|
81
|
+
// because it falls back to NODE_PATH and the global folders even when `paths`
|
|
82
|
+
// is given.
|
|
83
|
+
function findPackage(name) {
|
|
56
84
|
let dir = __dirname;
|
|
57
85
|
while (true) {
|
|
58
|
-
const pkgDir = join(dir, 'node_modules',
|
|
59
|
-
if (existsSync(join(pkgDir, 'package.json')))
|
|
60
|
-
const a = join(pkgDir, 'bin', binName);
|
|
61
|
-
if (existsSync(a)) return a;
|
|
62
|
-
const b = join(pkgDir, binName);
|
|
63
|
-
if (existsSync(b)) return b;
|
|
64
|
-
}
|
|
86
|
+
const pkgDir = join(dir, 'node_modules', name);
|
|
87
|
+
if (existsSync(join(pkgDir, 'package.json'))) return pkgDir;
|
|
65
88
|
const parent = dirname(dir);
|
|
66
89
|
if (parent === dir) return null;
|
|
67
90
|
dir = parent;
|
|
68
91
|
}
|
|
69
92
|
}
|
|
70
93
|
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
94
|
+
// The package this platform maps to: a native target or `cli-support`.
|
|
95
|
+
function mappedTarget() {
|
|
96
|
+
const target = platformTarget();
|
|
97
|
+
return NATIVE_TARGETS.includes(target) ? target : 'cli-support';
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
function resolveTarget() {
|
|
101
|
+
const target = mappedTarget();
|
|
102
|
+
if (target === 'cli-support') {
|
|
103
|
+
const pkgDir = findPackage('@vercel/cli-support');
|
|
104
|
+
const entry = pkgDir && join(pkgDir, 'dist', 'index.js');
|
|
105
|
+
return {
|
|
106
|
+
target: 'cli-support',
|
|
107
|
+
entry: entry && existsSync(entry) && entry,
|
|
108
|
+
};
|
|
78
109
|
}
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
110
|
+
const pkgDir = findPackage(`@vercel/vc-native-${target}`);
|
|
111
|
+
const bin =
|
|
112
|
+
pkgDir &&
|
|
113
|
+
[join(pkgDir, 'bin', 'vercel'), join(pkgDir, 'vercel')].find(existsSync);
|
|
114
|
+
return { target, bin };
|
|
83
115
|
}
|
|
84
116
|
|
|
85
|
-
//
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
'dist',
|
|
97
|
-
'index.js'
|
|
98
|
-
);
|
|
99
|
-
if (existsSync(entry)) return entry;
|
|
100
|
-
const parent = dirname(dir);
|
|
101
|
-
if (parent === dir) return null;
|
|
102
|
-
dir = parent;
|
|
117
|
+
// The package this launcher belongs to: `vercel` or `@vercel/cli-support`.
|
|
118
|
+
let ownPackage;
|
|
119
|
+
function readOwnPackage() {
|
|
120
|
+
if (ownPackage === undefined) {
|
|
121
|
+
try {
|
|
122
|
+
ownPackage = JSON.parse(
|
|
123
|
+
readFileSync(join(__dirname, '..', 'package.json'))
|
|
124
|
+
);
|
|
125
|
+
} catch {
|
|
126
|
+
ownPackage = null;
|
|
127
|
+
}
|
|
103
128
|
}
|
|
129
|
+
return ownPackage;
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
// This file also ships in @vercel/cli-support, which is its own JS CLI.
|
|
133
|
+
function isCliSupport() {
|
|
134
|
+
return readOwnPackage()?.name === '@vercel/cli-support';
|
|
104
135
|
}
|
|
105
136
|
|
|
106
|
-
|
|
137
|
+
// Flags that make stdout a JSON document, so stderr must stay quiet.
|
|
138
|
+
function wantsJsonOutput(argv) {
|
|
139
|
+
const formatIndex = argv.indexOf('--format');
|
|
140
|
+
return (
|
|
141
|
+
argv.some(arg => arg === '--json' || arg === '--format=json') ||
|
|
142
|
+
(formatIndex !== -1 && argv[formatIndex + 1] === 'json')
|
|
143
|
+
);
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
// When the native package is missing (an install that skipped optional
|
|
147
|
+
// dependencies, or one made before npm had the package), download the binary
|
|
148
|
+
// for this exact version into the CLI cache, once. Each version has its own
|
|
149
|
+
// directory, so a binary is written once and never replaced.
|
|
150
|
+
const DOWNLOAD_RETRY_AFTER_MS = 24 * 60 * 60 * 1000;
|
|
151
|
+
|
|
152
|
+
async function nativeCacheDir(target) {
|
|
153
|
+
const version = readOwnPackage()?.version;
|
|
154
|
+
if (
|
|
155
|
+
typeof version !== 'string' ||
|
|
156
|
+
!/^\d+\.\d+\.\d+(?:-[\w.-]+)?(?:\+[\w.-]+)?$/.test(version)
|
|
157
|
+
) {
|
|
158
|
+
return null;
|
|
159
|
+
}
|
|
107
160
|
try {
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
return import(pathToFileURL(cliSupport).href);
|
|
161
|
+
const config = await import('@vercel/cli-config/paths');
|
|
162
|
+
return {
|
|
163
|
+
version,
|
|
164
|
+
dir: join(config.getCachePath(), 'native', version, target),
|
|
165
|
+
};
|
|
166
|
+
} catch {
|
|
167
|
+
return null;
|
|
116
168
|
}
|
|
117
169
|
}
|
|
118
170
|
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
171
|
+
async function fetchNativeBinary(target) {
|
|
172
|
+
// Only an installed package uses the download. A repository checkout
|
|
173
|
+
// (packages/cli/dist/vc.js) runs its own JS CLI, so local changes and tests
|
|
174
|
+
// never run a published binary instead.
|
|
175
|
+
if (!__dirname.split(sep).includes('node_modules')) {
|
|
176
|
+
return { reason: 'target_missing' };
|
|
177
|
+
}
|
|
178
|
+
const cache = await nativeCacheDir(target);
|
|
179
|
+
if (!cache) return { reason: 'target_missing' };
|
|
180
|
+
const bin = join(cache.dir, 'vercel');
|
|
181
|
+
if (existsSync(bin)) return { bin, source: 'cache' };
|
|
182
|
+
|
|
183
|
+
// Tests only: never reach the real registry.
|
|
184
|
+
if (process.env.__VERCEL_NATIVE_DOWNLOAD === '0') {
|
|
185
|
+
return { reason: 'target_missing' };
|
|
186
|
+
}
|
|
187
|
+
// Without a writable cache the binary has nowhere to go and a failure can't
|
|
188
|
+
// be recorded, so every run would try and warn again. Use the JS CLI quietly.
|
|
189
|
+
try {
|
|
190
|
+
mkdirSync(cache.dir, { recursive: true });
|
|
191
|
+
accessSync(cache.dir, fsConstants.W_OK);
|
|
192
|
+
} catch {
|
|
193
|
+
return { reason: 'target_missing' };
|
|
194
|
+
}
|
|
195
|
+
const failedStamp = join(cache.dir, 'download-failed');
|
|
196
|
+
try {
|
|
197
|
+
if (Date.now() - statSync(failedStamp).mtimeMs < DOWNLOAD_RETRY_AFTER_MS) {
|
|
198
|
+
return { reason: 'download_failed' };
|
|
126
199
|
}
|
|
127
|
-
|
|
128
|
-
|
|
200
|
+
} catch {}
|
|
201
|
+
|
|
202
|
+
const quiet = wantsJsonOutput(process.argv.slice(2));
|
|
203
|
+
try {
|
|
204
|
+
const { downloadNativeBinary } = await import('./native-download.js');
|
|
205
|
+
return {
|
|
206
|
+
bin: await downloadNativeBinary({
|
|
207
|
+
target,
|
|
208
|
+
version: cache.version,
|
|
209
|
+
directory: cache.dir,
|
|
210
|
+
log: quiet ? undefined : line => console.error(line),
|
|
211
|
+
}),
|
|
212
|
+
source: 'download',
|
|
213
|
+
};
|
|
214
|
+
} catch (error) {
|
|
215
|
+
try {
|
|
216
|
+
writeFileSync(failedStamp, '');
|
|
217
|
+
} catch {}
|
|
218
|
+
if (!quiet) {
|
|
219
|
+
const detail =
|
|
220
|
+
error?.name === 'NativeDownloadError'
|
|
221
|
+
? error.detail
|
|
222
|
+
: 'unexpected error';
|
|
223
|
+
console.error(
|
|
224
|
+
`! Couldn't download the Vercel CLI binary (${detail}), so Node.js is running this command. The CLI tries again in 24 hours.`
|
|
225
|
+
);
|
|
129
226
|
}
|
|
227
|
+
return { reason: 'download_failed' };
|
|
130
228
|
}
|
|
131
|
-
return undefined;
|
|
132
229
|
}
|
|
133
230
|
|
|
134
|
-
//
|
|
135
|
-
|
|
231
|
+
// The native binary is the default, but this release still honors an explicit
|
|
232
|
+
// opt-out: VERCEL_CLI_USE_NATIVE_BINARY, then a persisted `useNativeBinary`
|
|
233
|
+
// preference. Any failure to read config counts as no preference.
|
|
234
|
+
async function isNativeBinaryOptedOut() {
|
|
136
235
|
const envOverride = process.env.VERCEL_CLI_USE_NATIVE_BINARY;
|
|
137
|
-
if (envOverride === '
|
|
138
|
-
if (envOverride === '
|
|
139
|
-
|
|
236
|
+
if (envOverride === '0' || envOverride === 'false') return true;
|
|
237
|
+
if (envOverride === '1' || envOverride === 'true') return false;
|
|
140
238
|
try {
|
|
141
239
|
// Zod-free subpath to avoid loading zod + schemas on this hot path.
|
|
142
240
|
const config = await import('@vercel/cli-config/paths');
|
|
@@ -144,56 +242,109 @@ async function isNativeBinaryOptedIn() {
|
|
|
144
242
|
const configDir = argDir
|
|
145
243
|
? resolve(process.cwd(), argDir)
|
|
146
244
|
: config.getGlobalPathConfig();
|
|
147
|
-
const configPath = config.getConfigFilePath(configDir);
|
|
148
|
-
const preference = config.readGlobalConfigFlag(
|
|
149
|
-
configPath,
|
|
150
|
-
'useNativeBinary'
|
|
151
|
-
);
|
|
152
|
-
if (typeof preference === 'boolean') return preference;
|
|
153
|
-
// All macOS machines are opted in unless they explicitly opt out above.
|
|
154
|
-
if (process.platform === 'darwin') return true;
|
|
155
245
|
return (
|
|
156
|
-
config.readGlobalConfigFlag(
|
|
246
|
+
config.readGlobalConfigFlag(
|
|
247
|
+
config.getConfigFilePath(configDir),
|
|
248
|
+
'useNativeBinary'
|
|
249
|
+
) === false
|
|
157
250
|
);
|
|
158
251
|
} catch {
|
|
159
252
|
return false;
|
|
160
253
|
}
|
|
161
254
|
}
|
|
162
255
|
|
|
163
|
-
//
|
|
164
|
-
//
|
|
165
|
-
const
|
|
166
|
-
const nativeBin = resolveNative();
|
|
167
|
-
const bin = disableBinary ? null : nativeBin;
|
|
256
|
+
// When the OS cannot start the binary at all, no command code has run, so
|
|
257
|
+
// Node.js can safely run the command instead.
|
|
258
|
+
const NATIVE_SPAWN_FALLBACK_CODES = ['ENOENT', 'EACCES', 'ENOEXEC'];
|
|
168
259
|
|
|
169
|
-
//
|
|
170
|
-
//
|
|
171
|
-
//
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
},
|
|
186
|
-
});
|
|
187
|
-
if (r.error) {
|
|
188
|
-
console.error(r.error.message);
|
|
189
|
-
process.exit(1);
|
|
260
|
+
// Read by src/index.ts and reported in telemetry. Inside the native binary,
|
|
261
|
+
// pkg.js sets it to `native` before re-entering this file with
|
|
262
|
+
// VERCEL_VC_NATIVE=1.
|
|
263
|
+
const LAUNCH = Symbol.for('vercel.cli.launch');
|
|
264
|
+
let launch;
|
|
265
|
+
let cliSupportEntry;
|
|
266
|
+
if (process.env.VERCEL_VC_NATIVE === '1') {
|
|
267
|
+
if (globalThis[LAUNCH]?.runtime !== 'native') {
|
|
268
|
+
// Not the native binary: a process it spawned (a build script, a dev
|
|
269
|
+
// command) inherited VERCEL_VC_NATIVE=1 and ran this package's JS CLI.
|
|
270
|
+
launch = {
|
|
271
|
+
runtime: 'dist',
|
|
272
|
+
target: mappedTarget(),
|
|
273
|
+
reason: 'inherited_native_env',
|
|
274
|
+
};
|
|
275
|
+
globalThis[LAUNCH] = launch;
|
|
190
276
|
}
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
277
|
+
} else {
|
|
278
|
+
const resolved = resolveTarget();
|
|
279
|
+
let optedOut = false;
|
|
280
|
+
let missingReason = 'target_missing';
|
|
281
|
+
if (resolved.bin) {
|
|
282
|
+
optedOut = await isNativeBinaryOptedOut();
|
|
283
|
+
} else if (resolved.target !== 'cli-support' && !isCliSupport()) {
|
|
284
|
+
// Never download for an opted-out user or for @vercel/cli-support (the
|
|
285
|
+
// build container runs it on Linux).
|
|
286
|
+
optedOut = await isNativeBinaryOptedOut();
|
|
287
|
+
if (!optedOut) {
|
|
288
|
+
const fetched = await fetchNativeBinary(resolved.target);
|
|
289
|
+
resolved.bin = fetched.bin;
|
|
290
|
+
resolved.source = fetched.source;
|
|
291
|
+
missingReason = fetched.reason ?? missingReason;
|
|
292
|
+
}
|
|
195
293
|
}
|
|
196
|
-
|
|
294
|
+
if (optedOut) {
|
|
295
|
+
launch = { runtime: 'dist', target: resolved.target, reason: 'opt_out' };
|
|
296
|
+
} else if (resolved.bin) {
|
|
297
|
+
// Internal worker arguments intentionally trampoline too. The packaged
|
|
298
|
+
// native binary sets VERCEL_VC_NATIVE=1 in pkg.js and re-enters this file,
|
|
299
|
+
// where the worker branch below handles the request.
|
|
300
|
+
const r = spawnSync(resolved.bin, process.argv.slice(2), {
|
|
301
|
+
stdio: 'inherit',
|
|
302
|
+
windowsHide: true,
|
|
303
|
+
env: {
|
|
304
|
+
...process.env,
|
|
305
|
+
VERCEL_VC_NATIVE: '1',
|
|
306
|
+
// Upgrades belong to the vercel package, not its native runtime
|
|
307
|
+
// dependency. Always replace an inherited value with this launcher's
|
|
308
|
+
// own entrypoint.
|
|
309
|
+
VERCEL_CLI_PACKAGE_ENTRYPOINT: fileURLToPath(import.meta.url),
|
|
310
|
+
VERCEL_CLI_PACKAGE_EXECUTABLE: resolved.bin,
|
|
311
|
+
// Reported in telemetry. pkg.js reads it and removes it, so the
|
|
312
|
+
// binary's child processes don't inherit it.
|
|
313
|
+
...(resolved.source && {
|
|
314
|
+
__VERCEL_CLI_NATIVE_SOURCE: resolved.source,
|
|
315
|
+
}),
|
|
316
|
+
},
|
|
317
|
+
});
|
|
318
|
+
// Never fall back on an exit status: a loader failure (e.g. glibc
|
|
319
|
+
// mismatch) and a command's own failure are indistinguishable, and
|
|
320
|
+
// retrying a command in Node.js could repeat remote mutations.
|
|
321
|
+
if (!(r.error && NATIVE_SPAWN_FALLBACK_CODES.includes(r.error.code))) {
|
|
322
|
+
if (r.error) {
|
|
323
|
+
console.error(r.error.message);
|
|
324
|
+
process.exit(1);
|
|
325
|
+
}
|
|
326
|
+
if (r.signal) {
|
|
327
|
+
try {
|
|
328
|
+
process.kill(process.pid, r.signal);
|
|
329
|
+
} catch {}
|
|
330
|
+
}
|
|
331
|
+
process.exit(r.status ?? 1);
|
|
332
|
+
}
|
|
333
|
+
console.error(
|
|
334
|
+
`! The native Vercel CLI binary could not start (${r.error.code}), so Node.js is running this command.`
|
|
335
|
+
);
|
|
336
|
+
launch = { runtime: 'dist', target: resolved.target, reason: r.error.code };
|
|
337
|
+
} else if (resolved.entry || isCliSupport()) {
|
|
338
|
+
launch = { runtime: 'cli-support' };
|
|
339
|
+
} else {
|
|
340
|
+
launch = {
|
|
341
|
+
runtime: 'dist',
|
|
342
|
+
target: resolved.target,
|
|
343
|
+
reason: missingReason,
|
|
344
|
+
};
|
|
345
|
+
}
|
|
346
|
+
globalThis[LAUNCH] = launch;
|
|
347
|
+
cliSupportEntry = resolved.entry;
|
|
197
348
|
}
|
|
198
349
|
|
|
199
350
|
if (process.argv[2] === '--internal-build-worker') {
|
|
@@ -216,6 +367,10 @@ if (process.argv[2] === '--internal-build-worker') {
|
|
|
216
367
|
),
|
|
217
368
|
{ report }
|
|
218
369
|
);
|
|
370
|
+
// A prewarmed worker idles until its request arrives; start startup
|
|
371
|
+
// telemetry from the handoff instead of process entry.
|
|
372
|
+
Reflect.set(globalThis, Symbol.for('vercel.cli.entry-at'), performance.now());
|
|
373
|
+
startupTimings?.marks.splice(0);
|
|
219
374
|
globalThis[Symbol.for('vercel.cli.fatal-error-handler')] = error =>
|
|
220
375
|
handoff.error(error);
|
|
221
376
|
|
|
@@ -239,28 +394,37 @@ if (process.argv[2] === '--internal-build-worker') {
|
|
|
239
394
|
process.exit(process.exitCode ?? 0);
|
|
240
395
|
}
|
|
241
396
|
|
|
242
|
-
//
|
|
243
|
-
|
|
397
|
+
// Read `--global-config`/`-Q` without loading the full CLI arg parser.
|
|
398
|
+
function globalConfigDirFromArgv() {
|
|
399
|
+
const argv = process.argv.slice(2);
|
|
400
|
+
for (let i = 0; i < argv.length; i++) {
|
|
401
|
+
const arg = argv[i];
|
|
402
|
+
if (arg === '--global-config' || arg === '-Q') {
|
|
403
|
+
return argv[i + 1];
|
|
404
|
+
}
|
|
405
|
+
if (arg.startsWith('--global-config=')) {
|
|
406
|
+
return arg.slice('--global-config='.length);
|
|
407
|
+
}
|
|
408
|
+
}
|
|
409
|
+
return undefined;
|
|
410
|
+
}
|
|
411
|
+
|
|
412
|
+
// Linux on anything but x64/arm64 has no native binary, and will lose the JS
|
|
413
|
+
// CLI from `vercel` itself in a future release.
|
|
244
414
|
async function warnDeprecatedArch() {
|
|
245
415
|
if (
|
|
246
|
-
|
|
416
|
+
process.platform !== 'linux' ||
|
|
247
417
|
['x64', 'arm64'].includes(process.arch) ||
|
|
248
418
|
process.env.VERCEL_VC_NATIVE === '1'
|
|
249
419
|
) {
|
|
250
420
|
return;
|
|
251
421
|
}
|
|
252
422
|
const argv = process.argv.slice(2);
|
|
253
|
-
const formatIndex = argv.indexOf('--format');
|
|
254
423
|
if (
|
|
255
424
|
argv.some(arg =>
|
|
256
|
-
[
|
|
257
|
-
'--non-interactive',
|
|
258
|
-
'--non-interactive=true',
|
|
259
|
-
'--json',
|
|
260
|
-
'--format=json',
|
|
261
|
-
].includes(arg)
|
|
425
|
+
['--non-interactive', '--non-interactive=true'].includes(arg)
|
|
262
426
|
) ||
|
|
263
|
-
(
|
|
427
|
+
wantsJsonOutput(argv)
|
|
264
428
|
) {
|
|
265
429
|
return;
|
|
266
430
|
}
|
|
@@ -278,14 +442,8 @@ async function warnDeprecatedArch() {
|
|
|
278
442
|
} catch {}
|
|
279
443
|
const target = `${process.platform}-${process.arch}`;
|
|
280
444
|
console.error(
|
|
281
|
-
`! Support for ${target} will be removed from the vercel package in a future release
|
|
282
|
-
'npm i -g @vercel/cli-support will keep working.'
|
|
445
|
+
`! Support for ${target} will be removed from the vercel package in a future release.`
|
|
283
446
|
);
|
|
284
|
-
if (target === 'win32-ia32') {
|
|
285
|
-
console.error(
|
|
286
|
-
' If this is a 64-bit PC, install 64-bit Node.js and reinstall vercel instead.'
|
|
287
|
-
);
|
|
288
|
-
}
|
|
289
447
|
if (stamp) {
|
|
290
448
|
try {
|
|
291
449
|
writeFileSync(stamp, '');
|
|
@@ -337,17 +495,25 @@ if (
|
|
|
337
495
|
}
|
|
338
496
|
}
|
|
339
497
|
|
|
498
|
+
markStartup('dependencies');
|
|
340
499
|
try {
|
|
341
|
-
await
|
|
500
|
+
await (cliSupportEntry
|
|
501
|
+
? import(pathToFileURL(cliSupportEntry).href)
|
|
502
|
+
: import('./index.js'));
|
|
342
503
|
} catch (error) {
|
|
343
|
-
//
|
|
344
|
-
//
|
|
504
|
+
// The mapped package is missing and this package's own JS CLI cannot load
|
|
505
|
+
// either, so name the package to install.
|
|
345
506
|
if (
|
|
346
|
-
|
|
347
|
-
process.env.VERCEL_VC_NATIVE !== '1' &&
|
|
507
|
+
launch?.reason === 'target_missing' &&
|
|
348
508
|
error?.code === 'ERR_MODULE_NOT_FOUND'
|
|
349
509
|
) {
|
|
350
|
-
|
|
510
|
+
const pkg =
|
|
511
|
+
launch.target === 'cli-support'
|
|
512
|
+
? '@vercel/cli-support'
|
|
513
|
+
: `@vercel/vc-native-${launch.target}`;
|
|
514
|
+
console.error(
|
|
515
|
+
`Error: ${pkg} is not installed. Reinstall vercel without omitting optional dependencies (for example, npm i -g vercel@latest).`
|
|
516
|
+
);
|
|
351
517
|
console.error(error.message);
|
|
352
518
|
process.exit(1);
|
|
353
519
|
}
|
package/dist/version.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const version = "65.
|
|
1
|
+
export const version = "65.5.0-snapshot-13615777d933";
|
|
2
2
|
export const buildLabel = "";
|