@vercel/cli-support 65.10.0-snapshot-c80a43d75dc7 → 65.10.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/dist/chunks/{add-RFPJCD35.js → add-4MTUAI2X.js} +1 -1
- package/dist/chunks/{add-A3SN7KWS.js → add-JYLWBVVQ.js} +1 -1
- package/dist/chunks/{add-TOKTANDW.js → add-T5ERJ62Z.js} +1 -1
- package/dist/chunks/{build-25I6XOV7.js → build-OGWTTFLG.js} +1 -1
- package/dist/chunks/{chunk-SHY7P3C6.js → chunk-36XHIIUT.js} +1 -1
- package/dist/chunks/{chunk-3AX7ZZJ7.js → chunk-3PKL2PTF.js} +1 -1
- package/dist/chunks/{chunk-2HLYY3KF.js → chunk-3QFBVAHL.js} +1 -1
- package/dist/chunks/chunk-3QYXC4PH.js +11 -0
- package/dist/chunks/{chunk-BT5C6MCY.js → chunk-42J2KCDF.js} +1 -1
- package/dist/chunks/{chunk-NLKM5LR5.js → chunk-4E6BGQWR.js} +1 -1
- package/dist/chunks/{chunk-FAVZ6WVS.js → chunk-4U6ACPA4.js} +1 -1
- package/dist/chunks/{chunk-NAEY6HG5.js → chunk-4WXVKR43.js} +1 -1
- package/dist/chunks/{chunk-MKYFAYCD.js → chunk-52X4YVSG.js} +1 -1
- package/dist/chunks/{chunk-3WYSEF57.js → chunk-5IZ33FNL.js} +1 -1
- package/dist/chunks/{chunk-GPISCZ2P.js → chunk-5MPZSRYG.js} +1 -1
- package/dist/chunks/{chunk-AX3V7N44.js → chunk-5RSSGN2Q.js} +1 -1
- package/dist/chunks/{chunk-7ULLVH2G.js → chunk-5RYQH3XW.js} +1 -1
- package/dist/chunks/{chunk-KNAOHPOI.js → chunk-6NUH6ZPE.js} +6 -6
- package/dist/chunks/{chunk-EJ34DLV4.js → chunk-6RMW63GB.js} +1 -1
- package/dist/chunks/{chunk-BB5UMZMF.js → chunk-6UMVJ7RL.js} +1 -1
- package/dist/chunks/{chunk-HR462OEG.js → chunk-6YAYCEDT.js} +2 -2
- package/dist/chunks/{chunk-VYRMHE34.js → chunk-75DUL7VI.js} +1 -1
- package/dist/chunks/{chunk-TNNEKGGF.js → chunk-7LSH3MEB.js} +1 -1
- package/dist/chunks/{chunk-LQAQD5LG.js → chunk-7TR6H6NE.js} +3 -3
- package/dist/chunks/chunk-7VGBGUX7.js +7 -0
- package/dist/chunks/chunk-A3C67PNC.js +7 -0
- package/dist/chunks/{chunk-CKTLP5GX.js → chunk-AMPJ6RWT.js} +1 -1
- package/dist/chunks/{chunk-IZ4GFKGR.js → chunk-AO6AMYBF.js} +1 -1
- package/dist/chunks/chunk-AUIV7YJO.js +11 -0
- package/dist/chunks/chunk-AY523IYR.js +7 -0
- package/dist/chunks/{chunk-DBPN2VGJ.js → chunk-B4XGTAFO.js} +1 -1
- package/dist/chunks/{chunk-DRLGZXAL.js → chunk-BIRSJSAO.js} +1 -1
- package/dist/chunks/{chunk-WHUZRBYL.js → chunk-BK3TNLWO.js} +5 -5
- package/dist/chunks/chunk-BZIC36KP.js +7 -0
- package/dist/chunks/chunk-CBMWPDOL.js +8 -0
- package/dist/chunks/{chunk-G2BNLRPU.js → chunk-CHIYT3V4.js} +1 -1
- package/dist/chunks/chunk-CJ6XPDSS.js +11 -0
- package/dist/chunks/{chunk-T7HE23VK.js → chunk-CU3LNJZV.js} +1 -1
- package/dist/chunks/chunk-DIHB5BUY.js +8 -0
- package/dist/chunks/{chunk-TZ6MSTOI.js → chunk-DNLE3KPC.js} +1 -1
- package/dist/chunks/{chunk-R3D4M5RE.js → chunk-DQASZDQT.js} +1 -1
- package/dist/chunks/{chunk-TNUQME3L.js → chunk-DQNP7OQ5.js} +1 -1
- package/dist/chunks/{chunk-NGHFFOD2.js → chunk-DUCCC22H.js} +1 -1
- package/dist/chunks/{chunk-QCIIUQV3.js → chunk-E7WULWMX.js} +1 -1
- package/dist/chunks/{chunk-CZOD25BC.js → chunk-ECFLIVEE.js} +1 -1
- package/dist/chunks/{chunk-FI5O4WHD.js → chunk-ECGY67NB.js} +1 -1
- package/dist/chunks/{chunk-S5JBQCBA.js → chunk-EJN55YDV.js} +1 -1
- package/dist/chunks/{chunk-3PXE5BLH.js → chunk-ER7L7HYA.js} +1 -1
- package/dist/chunks/{chunk-7UFI6OYF.js → chunk-FOWAVQOH.js} +1 -1
- package/dist/chunks/{chunk-4JWAXIIN.js → chunk-FPREO4VS.js} +1 -1
- package/dist/chunks/{chunk-PXQAWH7E.js → chunk-FSJFWVUY.js} +1 -1
- package/dist/chunks/{chunk-Y57DK3ZN.js → chunk-FXHB7TTL.js} +1 -1
- package/dist/chunks/chunk-FYE7ILRR.js +7 -0
- package/dist/chunks/{chunk-V32V4SXB.js → chunk-GQ4CQDIL.js} +1 -1
- package/dist/chunks/{chunk-W634OFUG.js → chunk-GZLYNPNU.js} +6 -5
- package/dist/chunks/chunk-HTPNGLPH.js +7 -0
- package/dist/chunks/{chunk-W5GHMAHP.js → chunk-IHTWZEQW.js} +1 -1
- package/dist/chunks/{chunk-4LGAV2WN.js → chunk-IIGNDMLO.js} +1 -1
- package/dist/chunks/{chunk-F2LNGJOZ.js → chunk-JA6IGJ67.js} +1 -1
- package/dist/chunks/chunk-JBU72NEQ.js +7 -0
- package/dist/chunks/{chunk-U6XJYQJS.js → chunk-JLNF2QTR.js} +1 -1
- package/dist/chunks/{chunk-SODZSOOL.js → chunk-K5KVSA2A.js} +1 -1
- package/dist/chunks/{chunk-VD2FK6OF.js → chunk-K7ARJYAG.js} +1 -1
- package/dist/chunks/{chunk-5TI3ZXW3.js → chunk-KBVYN635.js} +1 -1
- package/dist/chunks/chunk-KKE55LTK.js +7 -0
- package/dist/chunks/{chunk-G5T6UQAL.js → chunk-KV3QXTRZ.js} +1 -1
- package/dist/chunks/{chunk-3F5BOG4A.js → chunk-KZLRIAAT.js} +1 -1
- package/dist/chunks/{chunk-L4QQTYUI.js → chunk-LE72YLCC.js} +2 -2
- package/dist/chunks/{chunk-HJ45TAM4.js → chunk-LIEWXPUC.js} +1 -1
- package/dist/chunks/{chunk-ANCWFEOM.js → chunk-M3R7F2N4.js} +1 -1
- package/dist/chunks/{chunk-MUNGQJGO.js → chunk-M3Z6NSC2.js} +1 -1
- package/dist/chunks/{chunk-VPUYTI5E.js → chunk-MBXLL2HF.js} +1 -1
- package/dist/chunks/{chunk-C24IKNZN.js → chunk-MKTZDEOJ.js} +1 -1
- package/dist/chunks/{chunk-VZGTL3YC.js → chunk-N5AN4JZL.js} +1 -1
- package/dist/chunks/{chunk-EJZNJN4N.js → chunk-N65H4JMJ.js} +1 -1
- package/dist/chunks/{chunk-LC4BSDDG.js → chunk-NAN5IE3B.js} +1 -1
- package/dist/chunks/{chunk-TD7AL545.js → chunk-NE6PKR2J.js} +1 -1
- package/dist/chunks/{chunk-2EFBGKRC.js → chunk-NLTZGQB2.js} +1 -1
- package/dist/chunks/{chunk-TL4ZLZ2Q.js → chunk-NMIZSQDN.js} +1 -1
- package/dist/chunks/{chunk-22UXDTCE.js → chunk-NZRBJB6T.js} +1 -1
- package/dist/chunks/chunk-OII46FDN.js +12 -0
- package/dist/chunks/{chunk-YOWMZJPA.js → chunk-OJWI6QJ3.js} +1 -1
- package/dist/chunks/{chunk-GKALP6QD.js → chunk-OYIDWI5Y.js} +1 -1
- package/dist/chunks/{chunk-QVMU7ZKQ.js → chunk-P24YBQ6H.js} +1 -1
- package/dist/chunks/{chunk-2JCJP43W.js → chunk-P6J22UJQ.js} +1 -1
- package/dist/chunks/{chunk-E7DYXF6G.js → chunk-PFZCGMJ7.js} +1 -1
- package/dist/chunks/{chunk-64UCX5JM.js → chunk-PKNEWN4W.js} +1 -1
- package/dist/chunks/{chunk-Q4GX2UTG.js → chunk-PKZK23PR.js} +1 -1
- package/dist/chunks/{chunk-56UH6NQ3.js → chunk-PL6IOUKW.js} +1 -1
- package/dist/chunks/{chunk-MBL7MWP5.js → chunk-Q2JNATRP.js} +1 -1
- package/dist/chunks/{chunk-KMPDQE4Q.js → chunk-Q46Q4Y4R.js} +1 -1
- package/dist/chunks/{chunk-NAJCRBQB.js → chunk-QXL353OB.js} +1 -1
- package/dist/chunks/{chunk-VR5ROBAO.js → chunk-RI6DJAFI.js} +1 -1
- package/dist/chunks/{chunk-2DHDKWYN.js → chunk-RIJ45N7C.js} +1 -1
- package/dist/chunks/{chunk-6AJWRPTY.js → chunk-RUBMVRT6.js} +1 -1
- package/dist/chunks/{chunk-6RUAAORO.js → chunk-S535FZTA.js} +1 -1
- package/dist/chunks/{chunk-5I7CC45F.js → chunk-SBEWZ65N.js} +1 -1
- package/dist/chunks/{chunk-GJCVOEC2.js → chunk-SDYCW5JM.js} +1 -1
- package/dist/chunks/chunk-SNGM6NSO.js +7 -0
- package/dist/chunks/chunk-SNNJRKD6.js +10 -0
- package/dist/chunks/{chunk-DX2OHM56.js → chunk-SR7BZA6N.js} +1 -1
- package/dist/chunks/{chunk-QXYCICNB.js → chunk-STKZTUGE.js} +1 -1
- package/dist/chunks/{chunk-XGOELSYA.js → chunk-SXYA7JSX.js} +1 -1
- package/dist/chunks/chunk-TILI4QBL.js +11 -0
- package/dist/chunks/{chunk-PMEYNJU2.js → chunk-TZE4CS4K.js} +1 -1
- package/dist/chunks/{chunk-BZV2S4H6.js → chunk-U2TQFAO3.js} +1 -1
- package/dist/chunks/chunk-U2ZNF6HN.js +8 -0
- package/dist/chunks/chunk-UIMJNASP.js +7 -0
- package/dist/chunks/{chunk-FQVIWQ6M.js → chunk-UQNBUXQA.js} +1 -1
- package/dist/chunks/{chunk-C4N4LKPM.js → chunk-US7YJ2RQ.js} +1 -1
- package/dist/chunks/{chunk-JVNIDSP5.js → chunk-V5TOMLK4.js} +1 -1
- package/dist/chunks/{chunk-L6CZL2IQ.js → chunk-VQSSVB6V.js} +1 -1
- package/dist/chunks/chunk-VTITZEPW.js +9 -0
- package/dist/chunks/chunk-WFS3XBAA.js +8 -0
- package/dist/chunks/{chunk-XEXOSJIU.js → chunk-WKIDCYKL.js} +1 -1
- package/dist/chunks/{chunk-UVHKXCR5.js → chunk-WKSXBH7X.js} +1 -2
- package/dist/chunks/{chunk-77LSSWXL.js → chunk-WTFD4MDT.js} +1 -1
- package/dist/chunks/{chunk-YO6SJCZP.js → chunk-WYGOYE6C.js} +1 -1
- package/dist/chunks/{chunk-UNASHUWQ.js → chunk-XFUUALZS.js} +1 -1
- package/dist/chunks/{chunk-SXEOJSZQ.js → chunk-XS3MNHFR.js} +1 -1
- package/dist/chunks/{chunk-ZGQNI22M.js → chunk-YGYUPPAL.js} +2 -2
- package/dist/chunks/{chunk-Q25FOMOX.js → chunk-YKLTNKQJ.js} +1 -1
- package/dist/chunks/{chunk-WFCGAYP5.js → chunk-YUHKH4TK.js} +1 -1
- package/dist/chunks/{chunk-D4TD2KWH.js → chunk-YZKARZ2B.js} +1 -1
- package/dist/chunks/chunk-ZCUUCYID.js +13 -0
- package/dist/chunks/{chunk-FPYHB76H.js → chunk-ZEUREQ4E.js} +1 -1
- package/dist/chunks/chunk-ZIC7VWFC.js +14 -0
- package/dist/chunks/{chunk-QGZZL6YY.js → chunk-ZPJHONCZ.js} +1 -1
- package/dist/chunks/{chunk-R2P4PNRQ.js → chunk-ZQXXESKG.js} +1 -1
- package/dist/chunks/{clear-B764MEAM.js → clear-Z5OO6URI.js} +1 -1
- package/dist/chunks/cli-embedded-Y74S252S.js +66 -0
- package/dist/chunks/{compile-vercel-config-EWCB7SIC.js → compile-vercel-config-ZKUTSDWV.js} +1 -1
- package/dist/chunks/{config-D4WY2HG4.js → config-AUTTHXQO.js} +1 -1
- package/dist/chunks/config-RJ7PLFQD.js +7 -0
- package/dist/chunks/{connect-git-provider-AWEOEEOO.js → connect-git-provider-YIX5ZOU6.js} +1 -1
- package/dist/chunks/{delete-W3GMFAKA.js → delete-QQOC63HV.js} +1 -1
- package/dist/chunks/{delete-SKYFHUWD.js → delete-WIGSOZR3.js} +1 -1
- package/dist/chunks/{detect-services-3TRRRLES.js → detect-services-J4LGLAHC.js} +1 -1
- package/dist/chunks/{disable-EBPZ2LYC.js → disable-L54VGY5A.js} +1 -1
- package/dist/chunks/{discard-SMVPENSP.js → discard-Q5UPTZR2.js} +1 -1
- package/dist/chunks/{edit-CGTNGJKY.js → edit-FRGMYBW3.js} +1 -1
- package/dist/chunks/{edit-A3M3GBGP.js → edit-QEDNQ33T.js} +1 -1
- package/dist/chunks/{enable-6A5THWDP.js → enable-TGQZWSBG.js} +1 -1
- package/dist/chunks/engine-DkdkXQEy-FDYYIXY7.js +17 -0
- package/dist/chunks/{exec-UV73J2ZB.js → exec-H3X7U4P3.js} +1 -1
- package/dist/chunks/{export-R5IUWAW5.js → export-YYQ2J5AT.js} +1 -1
- package/dist/chunks/{future-CPJUUZTU.js → future-RYEYLPCG.js} +1 -1
- package/dist/chunks/{generate-cert-for-deploy-Z3HCAR5H.js → generate-cert-for-deploy-Y4KDIFF2.js} +1 -1
- package/dist/chunks/image-PDPRURMH.js +7 -0
- package/dist/chunks/{import-builders-GPJQAMXT.js → import-builders-H54QCMQ4.js} +1 -1
- package/dist/chunks/{inspect-WC2C4MDP.js → inspect-6IBPIBIJ.js} +1 -1
- package/dist/chunks/{inspect-WWOHWQKS.js → inspect-AHHXHIIP.js} +1 -1
- package/dist/chunks/{inspect-BO2ACFEG.js → inspect-Q7FYDFL7.js} +1 -1
- package/dist/chunks/{inspect-6FEL5DYV.js → inspect-RPCDGIP3.js} +1 -1
- package/dist/chunks/{inspect-TEPB7KVC.js → inspect-SFM3NWDF.js} +1 -1
- package/dist/chunks/{list-C5GUZ35P.js → list-7WWUYCE6.js} +1 -1
- package/dist/chunks/{list-EZWZSVM4.js → list-GSVERG4S.js} +1 -1
- package/dist/chunks/{list-4KSJEP23.js → list-NXZXKKAR.js} +1 -1
- package/dist/chunks/{login-ZNCCVA4H.js → login-HEHHQO3F.js} +1 -1
- package/dist/chunks/{login-PDZT4PQR.js → login-XKLPSZNN.js} +1 -1
- package/dist/chunks/{logs-YKQMUTMG.js → logs-NJ46ZSNZ.js} +1 -1
- package/dist/chunks/{ls-3HUS6KS6.js → ls-5SKRXNSI.js} +1 -1
- package/dist/chunks/{ls-WX4BJRDV.js → ls-FOFJU2JJ.js} +1 -1
- package/dist/chunks/{ls-TASQJDLF.js → ls-ITWXAWSZ.js} +1 -1
- package/dist/chunks/{ls-LYVPEIIT.js → ls-LCUOBWY2.js} +1 -1
- package/dist/chunks/{ls-KQJYKADC.js → ls-MWGIT2YH.js} +1 -1
- package/dist/chunks/{ls-RBPRE6BF.js → ls-OY5YTZGN.js} +1 -1
- package/dist/chunks/{ls-ZP7OBTTV.js → ls-TZN53EJL.js} +1 -1
- package/dist/chunks/{mutate-5N6DMBYS.js → mutate-ZYXVL22A.js} +1 -1
- package/dist/chunks/{native-self-update-7OAY4AVR.js → native-self-update-DEVBYOH2.js} +1 -1
- package/dist/chunks/{notifications-OVFMQLHL.js → notifications-XAPB2F2T.js} +1 -1
- package/dist/chunks/{open-DOBOKUEK.js → open-WPRHI6ND.js} +1 -1
- package/dist/chunks/{openapi-YAZA3237.js → openapi-UUFKDKGC.js} +1 -1
- package/dist/chunks/{permissions-PHCOVDWK.js → permissions-FU5OET67.js} +1 -1
- package/dist/chunks/{plugin-offer-M7KJSJU6.js → plugin-offer-E5JOW442.js} +1 -1
- package/dist/chunks/{prompt-missing-credentials-RTNCHH6Y.js → prompt-missing-credentials-ZZVTEQQB.js} +1 -1
- package/dist/chunks/{publish-JIFRJNDV.js → publish-R5IV2BH2.js} +1 -1
- package/dist/chunks/pull-CQVHIIAN.js +7 -0
- package/dist/chunks/{purchase-domain-if-available-3EBONBX3.js → purchase-domain-if-available-VMWCMYC2.js} +1 -1
- package/dist/chunks/{push-ZN6CBJLJ.js → push-Y5CUOISM.js} +1 -1
- package/dist/chunks/{query-MT6ID6C7.js → query-VMKIOI3W.js} +1 -1
- package/dist/chunks/{reauthenticate-OXFB64PS.js → reauthenticate-5K7LBTOW.js} +1 -1
- package/dist/chunks/{reorder-N2L43LXD.js → reorder-W3MXHSGZ.js} +1 -1
- package/dist/chunks/{reply-WBR3XXBJ.js → reply-YH7HRIWQ.js} +1 -1
- package/dist/chunks/{resolve-NMR24Y67.js → resolve-FWVMWJTG.js} +1 -1
- package/dist/chunks/{resolve-agent-team-KRTLBC5D.js → resolve-agent-team-6L7AQUA2.js} +1 -1
- package/dist/chunks/{restore-AKAVSLAK.js → restore-I7L3EOS4.js} +1 -1
- package/dist/chunks/{rm-Q3ZXEMGI.js → rm-AWUMNWQU.js} +1 -1
- package/dist/chunks/{rm-DGMHU3CU.js → rm-HVGUK55W.js} +1 -1
- package/dist/chunks/{rm-ERBTFH3G.js → rm-M3EMCKSN.js} +1 -1
- package/dist/chunks/{rm-H2T7HB3F.js → rm-RFCTWU5R.js} +1 -1
- package/dist/chunks/{rm-TNGYCAFJ.js → rm-VREBRM5D.js} +1 -1
- package/dist/chunks/{routes-4WGST7VN.js → routes-BP54NO3Z.js} +1 -1
- package/dist/chunks/{rule-inspect-ZVHPS2PL.js → rule-inspect-SQUCRRGA.js} +1 -1
- package/dist/chunks/{schema-TSHU5NN6.js → schema-AKVIKCFT.js} +1 -1
- package/dist/chunks/{schema-YUXTIJSB.js → schema-S36QQNJP.js} +1 -1
- package/dist/chunks/{select-org-35NFUKXO.js → select-org-PRWYXAWW.js} +1 -1
- package/dist/chunks/serving-DKny38LK-UNINNTL5.js +8 -0
- package/dist/chunks/{set-PP5K4NBO.js → set-ZJAC44LV.js} +1 -1
- package/dist/chunks/{setup-and-link-ACSPPTME.js → setup-and-link-VD53JFQI.js} +1 -1
- package/dist/chunks/{skills-X5TPVYXW.js → skills-JG4MGVKX.js} +1 -1
- package/dist/chunks/{tags-6QB3FP3B.js → tags-4Y4UBA5S.js} +1 -1
- package/dist/chunks/token-3ILJZPAZ.js +7 -0
- package/dist/chunks/token-JJLQVXPI.js +7 -0
- package/dist/chunks/{token-util-JDQI37VN.js → token-util-A4BSB3KP.js} +1 -1
- package/dist/chunks/token-util-KL35LHLQ.js +7 -0
- package/dist/chunks/{types-SENK43U4.js → types-DSN6Q6HW.js} +1 -1
- package/dist/chunks/{update-QA3NLSTV.js → update-R42CXSVE.js} +1 -1
- package/dist/commands/build/index.js +1 -1
- package/dist/commands/deploy/index.js +9 -9
- package/dist/commands/dev/index.js +2 -2
- package/dist/commands/env/index.js +12 -12
- package/dist/commands/link/index.js +4 -4
- package/dist/commands/list/index.js +1 -1
- package/dist/commands/project/index.js +8 -14
- package/dist/commands-account.js +2 -2
- package/dist/commands-ai.js +4 -4
- package/dist/commands-blob.js +7 -7
- package/dist/commands-core.js +62 -32
- package/dist/commands-deployments.js +4 -4
- package/dist/commands-flags.js +3 -3
- package/dist/commands-integrations.js +1 -1
- package/dist/commands-observability.js +2 -2
- package/dist/commands-routing.js +5 -5
- package/dist/help.js +1 -1
- package/dist/index.js +5 -5
- package/dist/internal-build.js +1 -1
- package/dist/launcher-errors.js +1 -1
- package/dist/package.json +31 -30
- package/dist/version.mjs +1 -1
- package/package.json +22 -21
- package/dist/chunks/chunk-5KE67O45.js +0 -7
- package/dist/chunks/chunk-CFYTFXX6.js +0 -7
- package/dist/chunks/chunk-CUBRYWA2.js +0 -7
- package/dist/chunks/chunk-FOQD62WW.js +0 -17
- package/dist/chunks/chunk-FTACGWII.js +0 -14
- package/dist/chunks/chunk-FY4ORPZH.js +0 -7
- package/dist/chunks/chunk-G7H33IKQ.js +0 -10
- package/dist/chunks/chunk-KWXJIVBG.js +0 -7
- package/dist/chunks/chunk-MOF4QNZH.js +0 -9
- package/dist/chunks/chunk-O4CQRV2G.js +0 -7
- package/dist/chunks/chunk-UWJ3UPS5.js +0 -11
- package/dist/chunks/chunk-ZUI5EMXD.js +0 -11
- package/dist/chunks/config-CW4JO67Q.js +0 -7
- package/dist/chunks/image-VNSN2SKE.js +0 -7
- package/dist/chunks/pull-HLJSW3W4.js +0 -7
- package/dist/chunks/token-W6P2KNI5.js +0 -7
|
@@ -4,7 +4,7 @@ import { dirname as __dirname_ } from 'node:path';
|
|
|
4
4
|
const require = __createRequire(import.meta.url);
|
|
5
5
|
const __filename = __fileURLToPath(import.meta.url);
|
|
6
6
|
const __dirname = __dirname_(__filename);
|
|
7
|
-
import{parseMeta}from"../../chunks/chunk-CZSOZKHX.js";import{fetchDeploymentBuildEnv,resolvePerDirectoryLinkRoot}from"../../chunks/chunk-MBL7MWP5.js";import{hasEarlierDeployment,isNonProductionTarget,refuseFirstDeployment}from"../../chunks/chunk-UWJ3UPS5.js";import{validatePaths,validateRootDirectory}from"../../chunks/chunk-2EFBGKRC.js";import{promptExperimentalServicesMigration}from"../../chunks/chunk-VYRMHE34.js";import"../../chunks/chunk-XRIM4BUF.js";import"../../chunks/chunk-RBIHS5QI.js";import{createProject}from"../../chunks/chunk-QHJLRTVY.js";import{require_slugify}from"../../chunks/chunk-COD3WAUI.js";import"../../chunks/chunk-V6Y6UK6B.js";import"../../chunks/chunk-J24BABG4.js";import"../../chunks/chunk-U4Z2MMOF.js";import"../../chunks/chunk-NIS66BFX.js";import{getBuildMachineResourceConfig}from"../../chunks/chunk-ZF27J6FQ.js";import{pickOverrides}from"../../chunks/chunk-PXQAWH7E.js";import{parseEnv}from"../../chunks/chunk-7ULLVH2G.js";import"../../chunks/chunk-6Y2ZL5XJ.js";import{DeployTelemetryClient,Now,UploadErrorMissingArchive,formatVerificationFailure,printDeploymentStatus,printPrebuiltFilePathMapIgnoreWarning,verifyDeployment}from"../../chunks/chunk-LQAQD5LG.js";import"../../chunks/chunk-IZ4GFKGR.js";import{require_async_sema}from"../../chunks/chunk-NZ2TFADV.js";import"../../chunks/chunk-ZFRNVIHI.js";import"../../chunks/chunk-TNUQME3L.js";import{applyDeprecatedTargetFlag,parseTarget}from"../../chunks/chunk-D4TD2KWH.js";import{isGuidanceEnabled}from"../../chunks/chunk-TAAWMNNL.js";import{compileVercelConfig}from"../../chunks/chunk-5I7CC45F.js";import"../../chunks/chunk-GPISCZ2P.js";import"../../chunks/chunk-4JWAXIIN.js";import{require_semver}from"../../chunks/chunk-BPUANOGW.js";import"../../chunks/chunk-U56NHYAH.js";import{parseRepoUrl}from"../../chunks/chunk-UNASHUWQ.js";import"../../chunks/chunk-4ELZOAQH.js";import"../../chunks/chunk-JUAHDOL6.js";import"../../chunks/chunk-UI2H2EIM.js";import"../../chunks/chunk-UUDE44NV.js";import{canPrompt}from"../../chunks/chunk-IQ7FPAI4.js";import{getEnabledProtection,getProtectionForDeployment}from"../../chunks/chunk-O4CQRV2G.js";import{getProductionUrl}from"../../chunks/chunk-VT6RIZJH.js";import{stamp_default}from"../../chunks/chunk-A2RZZQEP.js";import{ensureLink}from"../../chunks/chunk-HR462OEG.js";import{getDeployment}from"../../chunks/chunk-VU3RBRDH.js";import{mapCertError}from"../../chunks/chunk-4VF5BZJP.js";import"../../chunks/chunk-PVASGBEF.js";import{printProjectNotFoundError}from"../../chunks/chunk-6RUAAORO.js";import{table}from"../../chunks/chunk-375JVQYK.js";import{getRenamedOption,reportRenamedOptionError}from"../../chunks/chunk-V32V4SXB.js";import"../../chunks/chunk-Q7D7RGXM.js";import{getSubcommand}from"../../chunks/chunk-ETV3C2CV.js";import"../../chunks/chunk-BPRGAX62.js";import{continueSubcommand,deployCommand,deprecatedArchiveSplitTgz,describeSubcommand,getCommandAliases,initSubcommand}from"../../chunks/chunk-FTACGWII.js";import"../../chunks/chunk-CZOD25BC.js";import"../../chunks/chunk-77LSSWXL.js";import"../../chunks/chunk-MUNGQJGO.js";import"../../chunks/chunk-W5GHMAHP.js";import"../../chunks/chunk-ANCWFEOM.js";import"../../chunks/chunk-QVMU7ZKQ.js";import"../../chunks/chunk-TL4ZLZ2Q.js";import"../../chunks/chunk-VD2FK6OF.js";import"../../chunks/chunk-JVNIDSP5.js";import"../../chunks/chunk-NLKM5LR5.js";import"../../chunks/chunk-BB5UMZMF.js";import"../../chunks/chunk-4LGAV2WN.js";import"../../chunks/chunk-EJZNJN4N.js";import"../../chunks/chunk-S5JBQCBA.js";import"../../chunks/chunk-5DXC4TE2.js";import"../../chunks/chunk-FAVZ6WVS.js";import"../../chunks/chunk-5KE67O45.js";import"../../chunks/chunk-T7HE23VK.js";import"../../chunks/chunk-JALVF3C2.js";import"../../chunks/chunk-CUBRYWA2.js";import{printError}from"../../chunks/chunk-Q4GX2UTG.js";import{help}from"../../chunks/chunk-GKALP6QD.js";import{param}from"../../chunks/chunk-3G3FQYMW.js";import{detectExplicitScope,getScope,resolveOrg}from"../../chunks/chunk-TZ6MSTOI.js";import{TelemetryClient}from"../../chunks/chunk-VPUYTI5E.js";import{require_ci_info}from"../../chunks/chunk-2EYYB6YN.js";import"../../chunks/chunk-NWGBDBZI.js";import{argvHasNonInteractive,buildCommandWithYes,outputAgentError,withGlobalFlags,writeAgentError,writeTrackedActionRequired}from"../../chunks/chunk-ZUI5EMXD.js";import"../../chunks/chunk-FY4ORPZH.js";import{VERCEL_DIR,VERCEL_DIR_PROJECT,addToGitIgnore,createGitMeta,findProjectsFromPath,getGitConfigPath,getGitExecutable,getLinkFromDir,getLinkedProject,getOrgById,getProjectLink,getRepoLink,getVercelDirectory,highlight,isOwnerLookupUnavailableLink,isRemoteLookupSkippedLink,linkFolderToProject,parseGitConfig,pluckRemoteUrls,readLocalConfig,require_dist2,require_ignore,require_lib,sleep,traceOperation}from"../../chunks/chunk-KNAOHPOI.js";import{printAlignedLabel}from"../../chunks/chunk-64UCX5JM.js";import"../../chunks/chunk-ITQPDXXA.js";import"../../chunks/chunk-56UH6NQ3.js";import"../../chunks/chunk-4NTBYNFR.js";import{isArgumentError,parseArguments}from"../../chunks/chunk-C4N4LKPM.js";import"../../chunks/chunk-2VBFQZ72.js";import{validateJsonOutput,wantsMachineReadableOutput,warnDeprecatedInput}from"../../chunks/chunk-GJCVOEC2.js";import"../../chunks/chunk-LUX4PBJL.js";import"../../chunks/chunk-OPORM35X.js";import{require_ms}from"../../chunks/chunk-MXTC4ZAQ.js";import{require_types}from"../../chunks/chunk-ZS2WS4AM.js";import"../../chunks/chunk-4SAVH3H7.js";import{AliasDomainConfigured,BuildError,BuildsRateLimited,ConflictingConfigFiles,ConflictingFilePath,ConflictingPathSegment,DeploymentNotFound,DeploymentsRateLimited,DeprecatedNowJson,DomainNotFound,DomainNotVerified,DomainPermissionDenied,DomainVerificationFailed,InvalidDomain,InvalidToken,MissingBuildScript,NotDomainOwner,NowError,SchemaValidationFailed,TooManyRequests,UserAborted,code,isAPIError,parseRetryAfterHeaderAsMillis,require_bytes}from"../../chunks/chunk-T2FCF46I.js";import{getCommandName,getCommandNamePlain,packageName}from"../../chunks/chunk-VRH7LWOC.js";import"../../chunks/chunk-DBT6PGEH.js";import{cliErrorFromUnknown,emoji,link_default,output_manager_default,prependEmoji,recordCliError}from"../../chunks/chunk-W634OFUG.js";import"../../chunks/chunk-BLUPZPAS.js";import{require_build_utils}from"../../chunks/chunk-5MDNVAE6.js";import"../../chunks/chunk-OCR5CRTH.js";import{require_dist}from"../../chunks/chunk-RM3ZDRYE.js";import"../../chunks/chunk-YHPPP3SF.js";import"../../chunks/chunk-PUKYAALC.js";import{getFlagsSpecification,normalizeFlagName,quoteArg,stripSensitiveAuthArgs}from"../../chunks/chunk-CKTLP5GX.js";import"../../chunks/chunk-2BKALEOP.js";import{require_source}from"../../chunks/chunk-NB2WLB3J.js";import"../../chunks/chunk-ISWW3DKF.js";import"../../chunks/chunk-BULSRTQE.js";import"../../chunks/chunk-BRQUZ5NC.js";import"../../chunks/chunk-D6REP5QQ.js";import"../../chunks/chunk-FBYA6LLM.js";import{fetch,getFetchDispatcher}from"../../chunks/chunk-MY4MONOH.js";import"../../chunks/chunk-7EJQLVWX.js";import"../../chunks/chunk-SCV7XEEO.js";import{AGENT_REASON,AGENT_STATUS}from"../../chunks/chunk-CFYTFXX6.js";import{__export,__toESM}from"../../chunks/chunk-BZENIQ7N.js";var import_build_utils12=__toESM(require_build_utils(),1),import_client2=__toESM(require_dist2(),1),import_error_utils2=__toESM(require_dist(),1);var import_bytes=__toESM(require_bytes(),1),import_chalk=__toESM(require_source(),1),import_fs_extra4=__toESM(require_lib(),1),import_ms=__toESM(require_ms(),1);import{tmpdir}from"os";import{basename as basename4,dirname as dirname4,extname as extname2,join as join17,resolve as resolve3}from"path";async function createDeploy(client,now,contextName,path2,createArgs,org,isSettingUpProject,archive){try{return await now.create(path2,createArgs,org,isSettingUpProject,archive)}catch(err){if(isAPIError(err)){if(err.code==="rate_limited")throw new DeploymentsRateLimited(err.message);if(err.code==="domain_missing")throw new DomainNotFound(err.value);if(err.code==="domain_not_found"&&err.domain)throw new DomainNotFound(err.domain);if(err.code==="domain_not_verified"&&err.domain)throw new DomainNotVerified(err.domain);if(err.code==="domain_not_verified"&&err.value)throw new DomainVerificationFailed(err.value);if(err.code==="not_domain_owner")throw new NotDomainOwner(err.message);if(err.code==="builds_rate_limited")throw new BuildsRateLimited(err.message,{ctaLabel:err.ctaLabel,ctaUrl:err.ctaUrl,action:err.action,link:err.link});if(err.code==="forbidden")throw new DomainPermissionDenied(err.value,contextName);if(err.code==="bad_request"&&err.keyword)throw new SchemaValidationFailed(err.message,err.keyword,err.dataPath,err.params);if(err.code==="domain_configured")throw new AliasDomainConfigured(err);if(err.code==="missing_build_script")throw new MissingBuildScript(err);if(err.code==="conflicting_file_path")throw new ConflictingFilePath(err);if(err.code==="conflicting_path_segment")throw new ConflictingPathSegment(err);if(err.code==="cert_missing"){let{default:generateCertForDeploy}=await import("../../chunks/generate-cert-for-deploy-Z3HCAR5H.js"),result=await generateCertForDeploy(client,contextName,err.value);return result instanceof NowError?result:createDeploy(client,now,contextName,path2,createArgs,org,isSettingUpProject)}if(err.code==="not_found")throw new DeploymentNotFound({context:contextName});let certError=mapCertError(err);if(certError)return certError}throw err}}var ENV_PAIR_FLAGS=["--env","--build-env"],ENV_VALUE_PLACEHOLDER="<VALUE>",PROJECT_PLACEHOLDER="<PROJECT>",CANONICAL_FLAGS={"--token":null,"--confirm":"--yes","--target":"--environment","--team":"--scope","--name":null,"--no-clipboard":null,"--no-logs":null};function buildCreateIfMissingCommand(positionals,flags,argv,{createIfMissing=!0,addProjectPlaceholder=!1}={}){let out=["deploy",...positionals],seen=new Set,hasPlaceholder=!1;for(let[typedName,value]of Object.entries(flags)){let name=typedName in CANONICAL_FLAGS?CANONICAL_FLAGS[typedName]:typedName;if(!(!name||name==="--create-if-missing"||seen.has(name))){if(seen.add(name),name==="--non-interactive"){out.push(argvHasNonInteractive(argv)?"--non-interactive":"--non-interactive=false");continue}for(let item of Array.isArray(value)?value:[value])if(item===!0)out.push(name);else if(typeof item=="string"||typeof item=="number"){let text=String(item),shown=ENV_PAIR_FLAGS.includes(name)?withPlaceholder(text):text;hasPlaceholder||=shown!==text,out.push(name,shown)}}}addProjectPlaceholder&&out.push("--project",PROJECT_PLACEHOLDER),createIfMissing&&out.push("--create-if-missing");let command=[packageName,...out.map(quoteToken)].join(" "),notes=[...addProjectPlaceholder?[`replace ${PROJECT_PLACEHOLDER} with the project name`]:[],...hasPlaceholder?[`replace each ${ENV_VALUE_PLACEHOLDER} with the Environment Variable's value`]:[]];return notes.length?{command,note:notes.join(", and ")}:{command}}function findEnvPlaceholder(flags){for(let flag of ENV_PAIR_FLAGS){let value=flags[flag];for(let pair of Array.isArray(value)?value:[value])if(typeof pair=="string"&&pair.endsWith(`=${ENV_VALUE_PLACEHOLDER}`))return{flag,key:pair.slice(0,pair.indexOf("="))}}}function withPlaceholder(pair){let equals=pair.indexOf("=");return equals>=0?`${pair.slice(0,equals)}=${ENV_VALUE_PLACEHOLDER}`:pair}function quoteToken(token){return token===PROJECT_PLACEHOLDER||/^[A-Za-z0-9_./@:=,+-]+$/.test(token)?token:quoteArg(token)}var import_slugify=__toESM(require_slugify(),1),import_build_utils=__toESM(require_build_utils(),1),import_client=__toESM(require_dist2(),1);import{basename,dirname,extname,isAbsolute,relative,sep}from"path";var singleFileConfig={framework:null,buildCommand:"",installCommand:"",outputDirectory:null},singleFileProjectSettings={...singleFileConfig,rootDirectory:null};async function isIgnoredFile(file,cwd){let roots=new Set([dirname(file)]),fromCwd=relative(cwd,file);fromCwd&&!fromCwd.startsWith(`..${sep}`)&&!isAbsolute(fromCwd)&&roots.add(cwd);for(let root of roots){let{ig}=await(0,import_client.getVercelIgnore)(root);if(ig.ignores(relative(root,file).split(sep).join("/")))return!0}return!1}function getSingleFileProjectName(file){return(0,import_slugify.default)(basename(file,extname(file))).slice(0,100).replace(/-+$/,"")||void 0}var PROJECT_NAME_RULES="Project names can be up to 100 characters long and must be lowercase. They can include letters, digits, and the following characters: '.', '_', '-'. However, they cannot contain the sequence '---'.";function isValidProjectName(name){return/^[a-z0-9._-]{1,100}$/.test(name)&&!name.includes("---")}var singleFileMeta={singleFile:"1"};function isStaticProject(project){if(project.framework||project.link||project.rootDirectory||project.buildCommand||project.installCommand)return!1;if(project.outputDirectory===".")return!0;if(project.outputDirectory)return!1;let served=project.targets?.production??project.latestDeployments?.[0];return!served||served.meta?.singleFile===singleFileMeta.singleFile}var PROJECT_FLAGS=["--project","--name","-n"],SCOPE_FLAGS=["--scope","--team","-S","-T"];function argsWithout(client,flags){let args=stripSensitiveAuthArgs(client.argv.slice(2)),kept=[];for(let i=0;i<args.length;i++){let arg=args[i];if(flags.includes(normalizeFlagName(arg))){arg.includes("=")||i++;continue}kept.push(quoteArg(arg))}return kept.join(" ")}function retryWithProject(client,project){return`${packageName} ${argsWithout(client,PROJECT_FLAGS)} --project ${project}`}function singleFileTargetArgs(client,link){let{org,project}=link,scope=!detectExplicitScope(client)&&org.type==="team"&&org.slug&&!isOwnerLookupUnavailableLink(link)?` --scope ${quoteArg(org.slug)}`:"";return` --project ${quoteArg(project.id)}${scope}`}async function applyNameScope(client){if(detectExplicitScope(client))return;if(client.ignoresSavedTeam){await client.resolveCurrentTeam();return}let envOrgId=(0,import_build_utils.getPlatformEnv)("ORG_ID");if(envOrgId){client.config.currentTeam=envOrgId.startsWith("team_")?envOrgId:void 0;return}if(!client.config.currentTeam)try{await getScope(client)}catch(err){output_manager_default.debug(`Using the token's scope for single-file deploys: ${err}`)}}function fail(client,asJson,{headline,detail,next=[],...failure},exitCode){if(asJson){let{status,...rest}=failure,payload={...rest,message:detail?`${headline} ${detail}`:headline,...next.length>0&&{next:next.map(({command,when})=>({command,when}))}};status===AGENT_STATUS.ERROR?writeAgentError(client,{...payload,status}):writeTrackedActionRequired(client,{...payload,status})}else{output_manager_default.fatal(detail?`${headline}
|
|
7
|
+
import{parseMeta}from"../../chunks/chunk-CZSOZKHX.js";import{fetchDeploymentBuildEnv,resolvePerDirectoryLinkRoot}from"../../chunks/chunk-Q2JNATRP.js";import{FIRST_DEPLOYMENT_PRODUCTION_NOTICE,hasEarlierDeployment,isNonProductionTarget,refuseFirstDeployment}from"../../chunks/chunk-3QYXC4PH.js";import{validatePaths,validateRootDirectory}from"../../chunks/chunk-NLTZGQB2.js";import{promptExperimentalServicesMigration}from"../../chunks/chunk-75DUL7VI.js";import"../../chunks/chunk-XRIM4BUF.js";import"../../chunks/chunk-RBIHS5QI.js";import{createProject}from"../../chunks/chunk-QHJLRTVY.js";import{require_slugify}from"../../chunks/chunk-COD3WAUI.js";import"../../chunks/chunk-V6Y6UK6B.js";import"../../chunks/chunk-J24BABG4.js";import"../../chunks/chunk-U4Z2MMOF.js";import"../../chunks/chunk-NIS66BFX.js";import{getBuildMachineResourceConfig}from"../../chunks/chunk-ZF27J6FQ.js";import{pickOverrides}from"../../chunks/chunk-FSJFWVUY.js";import{parseEnv}from"../../chunks/chunk-5RYQH3XW.js";import"../../chunks/chunk-6Y2ZL5XJ.js";import{DeployTelemetryClient,Now,UploadErrorMissingArchive,formatVerificationFailure,printDeploymentStatus,printPrebuiltFilePathMapIgnoreWarning,verifyDeployment}from"../../chunks/chunk-7TR6H6NE.js";import"../../chunks/chunk-AO6AMYBF.js";import{require_async_sema}from"../../chunks/chunk-NZ2TFADV.js";import"../../chunks/chunk-ZFRNVIHI.js";import"../../chunks/chunk-DQNP7OQ5.js";import{applyDeprecatedTargetFlag,parseTarget}from"../../chunks/chunk-YZKARZ2B.js";import{isGuidanceEnabled}from"../../chunks/chunk-TAAWMNNL.js";import{compileVercelConfig}from"../../chunks/chunk-SBEWZ65N.js";import"../../chunks/chunk-5MPZSRYG.js";import"../../chunks/chunk-FPREO4VS.js";import{require_semver}from"../../chunks/chunk-BPUANOGW.js";import"../../chunks/chunk-U56NHYAH.js";import{parseRepoUrl}from"../../chunks/chunk-XFUUALZS.js";import"../../chunks/chunk-4ELZOAQH.js";import"../../chunks/chunk-JUAHDOL6.js";import"../../chunks/chunk-UI2H2EIM.js";import"../../chunks/chunk-UUDE44NV.js";import{getEnabledProtection,getProtectionForDeployment}from"../../chunks/chunk-UIMJNASP.js";import{canPrompt}from"../../chunks/chunk-IQ7FPAI4.js";import{getProductionUrl}from"../../chunks/chunk-VT6RIZJH.js";import{stamp_default}from"../../chunks/chunk-A2RZZQEP.js";import{ensureLink}from"../../chunks/chunk-6YAYCEDT.js";import{getDeployment}from"../../chunks/chunk-VU3RBRDH.js";import{mapCertError}from"../../chunks/chunk-4VF5BZJP.js";import"../../chunks/chunk-PVASGBEF.js";import{printProjectNotFoundError}from"../../chunks/chunk-S535FZTA.js";import{table}from"../../chunks/chunk-375JVQYK.js";import{getRenamedOption,reportRenamedOptionError}from"../../chunks/chunk-GQ4CQDIL.js";import"../../chunks/chunk-Q7D7RGXM.js";import{getSubcommand}from"../../chunks/chunk-ETV3C2CV.js";import"../../chunks/chunk-BPRGAX62.js";import{continueSubcommand,deployCommand,deprecatedArchiveSplitTgz,describeSubcommand,getCommandAliases,initSubcommand}from"../../chunks/chunk-ZIC7VWFC.js";import"../../chunks/chunk-M3Z6NSC2.js";import"../../chunks/chunk-IHTWZEQW.js";import"../../chunks/chunk-ECFLIVEE.js";import"../../chunks/chunk-WTFD4MDT.js";import"../../chunks/chunk-SNGM6NSO.js";import"../../chunks/chunk-P24YBQ6H.js";import"../../chunks/chunk-NMIZSQDN.js";import"../../chunks/chunk-K7ARJYAG.js";import"../../chunks/chunk-V5TOMLK4.js";import"../../chunks/chunk-M3R7F2N4.js";import"../../chunks/chunk-4E6BGQWR.js";import"../../chunks/chunk-6UMVJ7RL.js";import"../../chunks/chunk-IIGNDMLO.js";import"../../chunks/chunk-N65H4JMJ.js";import"../../chunks/chunk-EJN55YDV.js";import"../../chunks/chunk-5DXC4TE2.js";import"../../chunks/chunk-4U6ACPA4.js";import"../../chunks/chunk-7VGBGUX7.js";import"../../chunks/chunk-CU3LNJZV.js";import"../../chunks/chunk-JALVF3C2.js";import"../../chunks/chunk-BZIC36KP.js";import{printError}from"../../chunks/chunk-PKZK23PR.js";import{help}from"../../chunks/chunk-OYIDWI5Y.js";import{param}from"../../chunks/chunk-3G3FQYMW.js";import{detectExplicitScope,getScope,resolveOrg}from"../../chunks/chunk-DNLE3KPC.js";import{TelemetryClient}from"../../chunks/chunk-MBXLL2HF.js";import{require_ci_info}from"../../chunks/chunk-2EYYB6YN.js";import"../../chunks/chunk-NWGBDBZI.js";import{argvHasNonInteractive,buildCommandWithYes,outputAgentError,withGlobalFlags,writeAgentError,writeTrackedActionRequired}from"../../chunks/chunk-AUIV7YJO.js";import"../../chunks/chunk-FYE7ILRR.js";import{VERCEL_DIR,VERCEL_DIR_PROJECT,addToGitIgnore,createGitMeta,findProjectsFromPath,getGitConfigPath,getGitExecutable,getLinkFromDir,getLinkedProject,getOrgById,getProjectByNameOrId,getProjectLink,getRepoLink,getVercelDirectory,highlight,isOwnerLookupUnavailableLink,isRemoteLookupSkippedLink,linkFolderToProject,parseGitConfig,pluckRemoteUrls,readLocalConfig,require_dist2,require_ignore,require_lib,sleep,traceOperation}from"../../chunks/chunk-6NUH6ZPE.js";import{printAlignedLabel}from"../../chunks/chunk-PKNEWN4W.js";import"../../chunks/chunk-ITQPDXXA.js";import"../../chunks/chunk-PL6IOUKW.js";import"../../chunks/chunk-4NTBYNFR.js";import{isArgumentError,parseArguments}from"../../chunks/chunk-US7YJ2RQ.js";import"../../chunks/chunk-2VBFQZ72.js";import{validateJsonOutput,wantsMachineReadableOutput,warnDeprecatedInput}from"../../chunks/chunk-SDYCW5JM.js";import"../../chunks/chunk-LUX4PBJL.js";import"../../chunks/chunk-OPORM35X.js";import{require_ms}from"../../chunks/chunk-MXTC4ZAQ.js";import{require_types}from"../../chunks/chunk-ZS2WS4AM.js";import"../../chunks/chunk-4SAVH3H7.js";import{AliasDomainConfigured,BuildError,BuildsRateLimited,ConflictingConfigFiles,ConflictingFilePath,ConflictingPathSegment,DeploymentNotFound,DeploymentsRateLimited,DeprecatedNowJson,DomainNotFound,DomainNotVerified,DomainPermissionDenied,DomainVerificationFailed,InvalidDomain,InvalidToken,MissingBuildScript,NotDomainOwner,NowError,ProjectNotFound,SchemaValidationFailed,TooManyRequests,UserAborted,code,isAPIError,parseRetryAfterHeaderAsMillis,require_bytes}from"../../chunks/chunk-T2FCF46I.js";import{getCommandName,getCommandNamePlain,packageName}from"../../chunks/chunk-VRH7LWOC.js";import"../../chunks/chunk-DBT6PGEH.js";import{cliErrorFromUnknown,emoji,link_default,output_manager_default,prependEmoji,recordCliError}from"../../chunks/chunk-GZLYNPNU.js";import"../../chunks/chunk-BLUPZPAS.js";import{require_build_utils}from"../../chunks/chunk-5MDNVAE6.js";import"../../chunks/chunk-OCR5CRTH.js";import{require_dist}from"../../chunks/chunk-RM3ZDRYE.js";import"../../chunks/chunk-YHPPP3SF.js";import"../../chunks/chunk-PUKYAALC.js";import{getFlagsSpecification,normalizeFlagName,quoteArg,stripSensitiveAuthArgs}from"../../chunks/chunk-AMPJ6RWT.js";import"../../chunks/chunk-2BKALEOP.js";import{require_source}from"../../chunks/chunk-NB2WLB3J.js";import"../../chunks/chunk-ISWW3DKF.js";import"../../chunks/chunk-BULSRTQE.js";import"../../chunks/chunk-BRQUZ5NC.js";import"../../chunks/chunk-D6REP5QQ.js";import"../../chunks/chunk-FBYA6LLM.js";import{fetch,getFetchDispatcher}from"../../chunks/chunk-MY4MONOH.js";import"../../chunks/chunk-7EJQLVWX.js";import"../../chunks/chunk-SCV7XEEO.js";import{AGENT_REASON,AGENT_STATUS}from"../../chunks/chunk-JBU72NEQ.js";import{__export,__toESM}from"../../chunks/chunk-BZENIQ7N.js";var import_build_utils12=__toESM(require_build_utils(),1),import_client2=__toESM(require_dist2(),1),import_error_utils2=__toESM(require_dist(),1);var import_bytes=__toESM(require_bytes(),1),import_chalk=__toESM(require_source(),1),import_fs_extra4=__toESM(require_lib(),1),import_ms=__toESM(require_ms(),1);import{tmpdir}from"os";import{basename as basename4,dirname as dirname4,extname as extname2,join as join17,resolve as resolve3}from"path";async function createDeploy(client,now,contextName,path2,createArgs,org,isSettingUpProject,archive){try{return await now.create(path2,createArgs,org,isSettingUpProject,archive)}catch(err){if(isAPIError(err)){if(err.code==="rate_limited")throw new DeploymentsRateLimited(err.message);if(err.code==="domain_missing")throw new DomainNotFound(err.value);if(err.code==="domain_not_found"&&err.domain)throw new DomainNotFound(err.domain);if(err.code==="domain_not_verified"&&err.domain)throw new DomainNotVerified(err.domain);if(err.code==="domain_not_verified"&&err.value)throw new DomainVerificationFailed(err.value);if(err.code==="not_domain_owner")throw new NotDomainOwner(err.message);if(err.code==="builds_rate_limited")throw new BuildsRateLimited(err.message,{ctaLabel:err.ctaLabel,ctaUrl:err.ctaUrl,action:err.action,link:err.link});if(err.code==="forbidden")throw new DomainPermissionDenied(err.value,contextName);if(err.code==="bad_request"&&err.keyword)throw new SchemaValidationFailed(err.message,err.keyword,err.dataPath,err.params);if(err.code==="domain_configured")throw new AliasDomainConfigured(err);if(err.code==="missing_build_script")throw new MissingBuildScript(err);if(err.code==="conflicting_file_path")throw new ConflictingFilePath(err);if(err.code==="conflicting_path_segment")throw new ConflictingPathSegment(err);if(err.code==="cert_missing"){let{default:generateCertForDeploy}=await import("../../chunks/generate-cert-for-deploy-Y4KDIFF2.js"),result=await generateCertForDeploy(client,contextName,err.value);return result instanceof NowError?result:createDeploy(client,now,contextName,path2,createArgs,org,isSettingUpProject)}if(err.code==="not_found")throw new DeploymentNotFound({context:contextName});let certError=mapCertError(err);if(certError)return certError}throw err}}var ENV_PAIR_FLAGS=["--env","--build-env"],ENV_VALUE_PLACEHOLDER="<VALUE>",PROJECT_PLACEHOLDER="<PROJECT>",CANONICAL_FLAGS={"--token":null,"--confirm":"--yes","--target":"--environment","--team":"--scope","--name":null,"--no-clipboard":null,"--no-logs":null};function buildCreateIfMissingCommand(positionals,flags,argv,{createIfMissing=!0,addProjectPlaceholder=!1}={}){let out=["deploy",...positionals],seen=new Set,hasPlaceholder=!1;for(let[typedName,value]of Object.entries(flags)){let name=typedName in CANONICAL_FLAGS?CANONICAL_FLAGS[typedName]:typedName;if(!(!name||name==="--create-if-missing"||seen.has(name))){if(seen.add(name),name==="--non-interactive"){out.push(argvHasNonInteractive(argv)?"--non-interactive":"--non-interactive=false");continue}for(let item of Array.isArray(value)?value:[value])if(item===!0)out.push(name);else if(typeof item=="string"||typeof item=="number"){let text=String(item),shown=ENV_PAIR_FLAGS.includes(name)?withPlaceholder(text):text;hasPlaceholder||=shown!==text,out.push(name,shown)}}}addProjectPlaceholder&&out.push("--project",PROJECT_PLACEHOLDER),createIfMissing&&out.push("--create-if-missing");let command=[packageName,...out.map(quoteToken)].join(" "),notes=[...addProjectPlaceholder?[`replace ${PROJECT_PLACEHOLDER} with the project name`]:[],...hasPlaceholder?[`replace each ${ENV_VALUE_PLACEHOLDER} with the Environment Variable's value`]:[]];return notes.length?{command,note:notes.join(", and ")}:{command}}function findEnvPlaceholder(flags){for(let flag of ENV_PAIR_FLAGS){let value=flags[flag];for(let pair of Array.isArray(value)?value:[value])if(typeof pair=="string"&&pair.endsWith(`=${ENV_VALUE_PLACEHOLDER}`))return{flag,key:pair.slice(0,pair.indexOf("="))}}}function withPlaceholder(pair){let equals=pair.indexOf("=");return equals>=0?`${pair.slice(0,equals)}=${ENV_VALUE_PLACEHOLDER}`:pair}function quoteToken(token){return token===PROJECT_PLACEHOLDER||/^[A-Za-z0-9_./@:=,+-]+$/.test(token)?token:quoteArg(token)}var import_slugify=__toESM(require_slugify(),1),import_build_utils=__toESM(require_build_utils(),1),import_client=__toESM(require_dist2(),1);import{basename,dirname,extname,isAbsolute,relative,sep}from"path";var singleFileConfig={framework:null,buildCommand:"",installCommand:"",outputDirectory:null},singleFileProjectSettings={...singleFileConfig,rootDirectory:null};async function isIgnoredFile(file,cwd){let roots=new Set([dirname(file)]),fromCwd=relative(cwd,file);fromCwd&&!fromCwd.startsWith(`..${sep}`)&&!isAbsolute(fromCwd)&&roots.add(cwd);for(let root of roots){let{ig}=await(0,import_client.getVercelIgnore)(root);if(ig.ignores(relative(root,file).split(sep).join("/")))return!0}return!1}function getSingleFileProjectName(file){return(0,import_slugify.default)(basename(file,extname(file))).slice(0,100).replace(/-+$/,"")||void 0}var PROJECT_NAME_RULES="Project names can be up to 100 characters long and must be lowercase. They can include letters, digits, and the following characters: '.', '_', '-'. However, they cannot contain the sequence '---'.";function isValidProjectName(name){return/^[a-z0-9._-]{1,100}$/.test(name)&&!name.includes("---")}var singleFileMeta={singleFile:"1"};function isStaticProject(project){if(project.framework||project.link||project.rootDirectory||project.buildCommand||project.installCommand)return!1;if(project.outputDirectory===".")return!0;if(project.outputDirectory)return!1;let served=project.targets?.production??project.latestDeployments?.[0];return!served||served.meta?.singleFile===singleFileMeta.singleFile}var PROJECT_FLAGS=["--project","--name","-n"],SCOPE_FLAGS=["--scope","--team","-S","-T"];function argsWithout(client,flags){let args=stripSensitiveAuthArgs(client.argv.slice(2)),kept=[];for(let i=0;i<args.length;i++){let arg=args[i];if(flags.includes(normalizeFlagName(arg))){arg.includes("=")||i++;continue}kept.push(quoteArg(arg))}return kept.join(" ")}function retryWithProject(client,project){return`${packageName} ${argsWithout(client,PROJECT_FLAGS)} --project ${project}`}function singleFileTargetArgs(client,link){let{org,project}=link,scope=!detectExplicitScope(client)&&org.type==="team"&&org.slug&&!isOwnerLookupUnavailableLink(link)?` --scope ${quoteArg(org.slug)}`:"";return` --project ${quoteArg(project.id)}${scope}`}async function applyNameScope(client){if(detectExplicitScope(client))return;if(client.ignoresSavedTeam){await client.resolveCurrentTeam();return}let envOrgId=(0,import_build_utils.getPlatformEnv)("ORG_ID");if(envOrgId){client.config.currentTeam=envOrgId.startsWith("team_")?envOrgId:void 0;return}if(!client.config.currentTeam)try{await getScope(client)}catch(err){output_manager_default.debug(`Using the token's scope for single-file deploys: ${err}`)}}function fail(client,asJson,{headline,detail,next=[],...failure},exitCode){if(asJson){let{status,...rest}=failure,payload={...rest,message:detail?`${headline} ${detail}`:headline,...next.length>0&&{next:next.map(({command,when})=>({command,when}))}};status===AGENT_STATUS.ERROR?writeAgentError(client,{...payload,status}):writeTrackedActionRequired(client,{...payload,status})}else{output_manager_default.fatal(detail?`${headline}
|
|
8
8
|
${detail}`:headline);for(let{instruction,command}of next)output_manager_default.print(`
|
|
9
9
|
${instruction}:
|
|
10
10
|
${command}
|
|
@@ -12,7 +12,7 @@ ${detail}`:headline);for(let{instruction,command}of next)output_manager_default.
|
|
|
12
12
|
`),130)}let where=dryRun?"":client.nonInteractive?" in non-interactive mode":" when there's no terminal to ask in";return fail(client,asJson,{status:AGENT_STATUS.ACTION_REQUIRED,reason:AGENT_REASON.MISSING_PROJECT,headline:`Can't deploy ${fileName} without --project${where}.`,detail:existing,userActionRequired:!0,next:[chooseProject(client),{command:retryWithProject(client,quoteArg(project.name)),when:`Only after a human approves: ${takeover}`,instruction:production?`To replace the production deployment of ${project.name} with ${fileName}`:`To deploy ${fileName} to ${project.name} anyway`}]},2)}async function createSingleFileProject(client,name,orgId,opts){if(!isValidProjectName(name))return fail(client,opts.asJson,{status:AGENT_STATUS.ERROR,reason:AGENT_REASON.INVALID_ARGUMENTS,headline:`Can't create project ${name}.`,detail:PROJECT_NAME_RULES,next:[chooseProject(client)]},2);let org;if(orgId)org=await getOrgById(client,orgId);else{let{team,user}=await getScope(client);org=resolveOrg(team,user).org}if(!org)return fail(client,opts.asJson,{status:AGENT_STATUS.ERROR,reason:AGENT_REASON.NOT_FOUND,headline:`Can't create project ${name}. Its team was not found.`},1);if(opts.dryRun){let project2={...singleFileProjectSettings,id:"",name,accountId:org.id,createdAt:0,updatedAt:0};return{status:"linked",org,project:project2}}let refusedExitCode=opts.beforeCreateProject?.();if(refusedExitCode!==void 0)return refusedExitCode;client.config.currentTeam=org.type==="team"?org.id:void 0;let project;try{project=await createProject(client,{...singleFileProjectSettings,name,v0:opts.v0})}catch(err){if(isAPIError(err)&&err.status===409){let found=await opts.relookup();return found!==null?found:fail(client,opts.asJson,{status:AGENT_STATUS.ERROR,reason:AGENT_REASON.CONFLICT,headline:`Can't create project ${name}. It already exists in ${org.slug}, but this account can't access it.`,next:[chooseProject(client)]},1)}return isAPIError(err)&&err.code==="too_many_projects"?output_manager_default.prettyError(err):printError(err),1}return output_manager_default.print(`
|
|
13
13
|
`),printAlignedLabel("Created",`${org.slug}/${project.name}`,{gutter:"\u2713"}),output_manager_default.print(`
|
|
14
14
|
`),{status:"linked",org,project}}async function getDeploymentChecks(client,deploymentId){return await client.fetch(`/v1/deployments/${encodeURIComponent(deploymentId)}/checks`)}async function getDeploymentCheckRuns(client,deploymentId){return await client.fetch(`/v2/deployments/${encodeURIComponent(deploymentId)}/check-runs`)}function parseNdjson(text){let entries=[];for(let line of text.split(`
|
|
15
|
-
`))if(line.trim())try{entries.push(JSON.parse(line))}catch{}return entries}async function getDeploymentCheckRunLogs(client,deploymentId,checkRunId){let url=`/v2/deployments/${encodeURIComponent(deploymentId)}/check-runs/${encodeURIComponent(checkRunId)}/logs`;await new Promise(resolve4=>setTimeout(resolve4,1e3));for(let attempt=0;attempt<5;attempt++){attempt>0&&await new Promise(resolve4=>setTimeout(resolve4,2e3));let res=await client.fetch(url,{json:!1}),text=typeof res=="string"?res:await res.text(),entries=parseNdjson(text);if(entries.some(e=>e.level==="eof"))return entries.filter(e=>e.level!=="eof"&&e.level!=="debug").map(({level,timestamp,message})=>({level,timestamp,message}))}return[]}var import_fs_extra=__toESM(require_lib(),1);import{join}from"path";async function getPrebuiltJson(directory){try{return await import_fs_extra.default.readJSON(join(directory,"builds.json"))}catch{}return null}import{resolve}from"path";var SUPPORTED_PROVIDERS=new Set(["github","gitlab","bitbucket"]),defaultDeps={getGitConfigPath,parseGitConfig,fetchProject:(client,project)=>client.fetch(`/v9/projects/${encodeURIComponent(project.id)}`,{accountId:project.accountId}),buildCommand:(client,command)=>withGlobalFlags(client,command,{preserveProject:!0})};async function getGitConnectRecommendation(client,cwd,project,options={}){let{alreadyOffered=!1,deps=defaultDeps}=options;try{if(project.link||alreadyOffered)return;let gitConfigPath=deps.getGitConfigPath({cwd});if(!gitConfigPath)return;let gitConfig=await deps.parseGitConfig(gitConfigPath),remoteUrls=gitConfig&&pluckRemoteUrls(gitConfig);if(!remoteUrls)return;let remotes=Object.values(remoteUrls);if(!remotes.some(remoteUrl=>{let repo=parseRepoUrl(remoteUrl);return repo&&SUPPORTED_PROVIDERS.has(repo.provider)})||client.nonInteractive&&remotes.length!==1||(await deps.fetchProject(client,project)).link)return;let cwdFlag=resolve(cwd)===resolve(client.cwd)?"":` --cwd ${quoteArg(cwd)}`;return deps.buildCommand(client,`git connect${cwdFlag}`)}catch(error){output_manager_default.debug(`Failed to resolve Git connection guidance: ${error}`);return}}var import_types=__toESM(require_types(),1),validArchiveFormats=new Set(import_types.VALID_ARCHIVE_FORMATS);function isValidArchive(archive){return validArchiveFormats.has(archive)}var DEPRECATED_SHORTHANDS={"-e":"--env","-b":"--build-env"};function getDeployFlagsSpecification(options){return{...getFlagsSpecification(options),...DEPRECATED_SHORTHANDS}}function warnDeprecatedShorthands(client,options){let flags;try{({flags}=parseArguments(client.argv.slice(2),{...getFlagsSpecification(options),"-e":[String],"-b":[String]},{permissive:!0}))}catch{return}for(let[shorthand,name]of Object.entries(DEPRECATED_SHORTHANDS))flags[shorthand]!==void 0&&warnDeprecatedInput(client,shorthand,name)}function getErrorCta(source){if(typeof source.ctaLabel=="string"&&typeof source.ctaUrl=="string")return{label:source.ctaLabel,url:source.ctaUrl};if(typeof source.action=="string"&&typeof source.link=="string")return{label:source.action,url:source.link}}var DescribeError=class extends Error{constructor(reason,message){super(message);this.reason=reason}};var DescribeTelemetryClient=class extends TelemetryClient{trackCliOptionDeployment(value){value&&this.trackCliOption({option:"deployment",value:this.redactedValue})}trackCliOptionId(value){value&&this.trackCliOption({option:"id",value:this.redactedValue})}trackCliOptionAwsAccountId(value){value&&this.trackCliOption({option:"aws-account-id",value:this.redactedValue})}trackCliFlagJson(value){value&&this.trackCliFlag("json")}};var attempts=3;function downloadLayer(client,url){return client.retry((bail,attempt)=>client.withTrace("vc.cli.describe.layer_download",async trace=>{trace?.span.setAttributes({attempt:String(attempt),http_method:"GET"}),attempt>1&&await sleep(Math.random()*1e3);let response;try{let res=await fetch(url,{signal:AbortSignal.timeout(6e4)});if(response=res,trace?.span.setAttributes({http_status_code:String(res.status)}),res.ok)return new Uint8Array(await client.withTrace("vc.cli.describe.layer_body",()=>res.arrayBuffer()))}catch(error2){await response?.body?.cancel().catch(()=>{});let reason=error2 instanceof Error&&error2.name==="TimeoutError"?"timeout":"network_error";throw trace?.span.setAttributes({failure_reason:reason}),downloadError(attempt,reason)}await response.body?.cancel().catch(()=>{}),trace?.span.setAttributes({failure_reason:"http_error"});let error=downloadError(attempt,`HTTP ${response.status}`);if(response.status!==408&&response.status!==429&&response.status<500)return bail(error);let retryAfter=parseRetryAfterHeaderAsMillis(response.headers.get("retry-after"));if(retryAfter!==void 0&&retryAfter>6e4)return bail(error);throw attempt<attempts&&retryAfter&&await sleep(retryAfter),error}),{retries:attempts-1})}function downloadError(attempt,reason){return new DescribeError("layer_download_failed",`Could not download a required runtime layer.
|
|
15
|
+
`))if(line.trim())try{entries.push(JSON.parse(line))}catch{}return entries}async function getDeploymentCheckRunLogs(client,deploymentId,checkRunId){let url=`/v2/deployments/${encodeURIComponent(deploymentId)}/check-runs/${encodeURIComponent(checkRunId)}/logs`;await new Promise(resolve4=>setTimeout(resolve4,1e3));for(let attempt=0;attempt<5;attempt++){attempt>0&&await new Promise(resolve4=>setTimeout(resolve4,2e3));let res=await client.fetch(url,{json:!1}),text=typeof res=="string"?res:await res.text(),entries=parseNdjson(text);if(entries.some(e=>e.level==="eof"))return entries.filter(e=>e.level!=="eof"&&e.level!=="debug").map(({level,timestamp,message})=>({level,timestamp,message}))}return[]}var import_fs_extra=__toESM(require_lib(),1);import{join}from"path";async function getPrebuiltJson(directory){try{return await import_fs_extra.default.readJSON(join(directory,"builds.json"))}catch{}return null}import{resolve}from"path";var SUPPORTED_PROVIDERS=new Set(["github","gitlab","bitbucket"]),defaultDeps={getGitConfigPath,parseGitConfig,fetchProject:(client,project)=>client.fetch(`/v9/projects/${encodeURIComponent(project.id)}`,{accountId:project.accountId}),buildCommand:(client,command)=>withGlobalFlags(client,command,{preserveProject:!0})};async function getGitConnectRecommendation(client,cwd,project,options={}){let{alreadyOffered=!1,fetchedProject,deps=defaultDeps}=options;try{if(project.link||alreadyOffered)return;let gitConfigPath=deps.getGitConfigPath({cwd});if(!gitConfigPath)return;let gitConfig=await deps.parseGitConfig(gitConfigPath),remoteUrls=gitConfig&&pluckRemoteUrls(gitConfig);if(!remoteUrls)return;let remotes=Object.values(remoteUrls);if(!remotes.some(remoteUrl=>{let repo=parseRepoUrl(remoteUrl);return repo&&SUPPORTED_PROVIDERS.has(repo.provider)})||client.nonInteractive&&remotes.length!==1||(fetchedProject??await deps.fetchProject(client,project)).link)return;let cwdFlag=resolve(cwd)===resolve(client.cwd)?"":` --cwd ${quoteArg(cwd)}`;return deps.buildCommand(client,`git connect${cwdFlag}`)}catch(error){output_manager_default.debug(`Failed to resolve Git connection guidance: ${error}`);return}}var import_types=__toESM(require_types(),1),validArchiveFormats=new Set(import_types.VALID_ARCHIVE_FORMATS);function isValidArchive(archive){return validArchiveFormats.has(archive)}var DEPRECATED_SHORTHANDS={"-e":"--env","-b":"--build-env"};function getDeployFlagsSpecification(options){return{...getFlagsSpecification(options),...DEPRECATED_SHORTHANDS}}function warnDeprecatedShorthands(client,options){let flags;try{({flags}=parseArguments(client.argv.slice(2),{...getFlagsSpecification(options),"-e":[String],"-b":[String]},{permissive:!0}))}catch{return}for(let[shorthand,name]of Object.entries(DEPRECATED_SHORTHANDS))flags[shorthand]!==void 0&&warnDeprecatedInput(client,shorthand,name)}function getErrorCta(source){if(typeof source.ctaLabel=="string"&&typeof source.ctaUrl=="string")return{label:source.ctaLabel,url:source.ctaUrl};if(typeof source.action=="string"&&typeof source.link=="string")return{label:source.action,url:source.link}}var DescribeError=class extends Error{constructor(reason,message){super(message);this.reason=reason}};var DescribeTelemetryClient=class extends TelemetryClient{trackCliOptionDeployment(value){value&&this.trackCliOption({option:"deployment",value:this.redactedValue})}trackCliOptionId(value){value&&this.trackCliOption({option:"id",value:this.redactedValue})}trackCliOptionAwsAccountId(value){value&&this.trackCliOption({option:"aws-account-id",value:this.redactedValue})}trackCliFlagJson(value){value&&this.trackCliFlag("json")}};var attempts=3;function downloadLayer(client,url){return client.retry((bail,attempt)=>client.withTrace("vc.cli.describe.layer_download",async trace=>{trace?.span.setAttributes({attempt:String(attempt),http_method:"GET"}),attempt>1&&await sleep(Math.random()*1e3);let response;try{let res=await fetch(url,{signal:AbortSignal.timeout(6e4)});if(response=res,trace?.span.setAttributes({http_status_code:String(res.status)}),res.ok)return new Uint8Array(await client.withTrace("vc.cli.describe.layer_body",()=>res.arrayBuffer()))}catch(error2){await response?.body?.cancel().catch(()=>{});let reason=error2 instanceof Error&&error2.name==="TimeoutError"?"timeout":"network_error";throw trace?.span.setAttributes({failure_reason:reason}),downloadError(attempt,reason)}await response.body?.cancel().catch(()=>{}),trace?.span.setAttributes({failure_reason:"http_error"});let error=downloadError(attempt,`HTTP ${response.status}`);if(response.status!==408&&response.status!==429&&response.status<500)return bail(error);let retryAfter=parseRetryAfterHeaderAsMillis(response.headers.get("retry-after"));if(retryAfter!==void 0&&retryAfter>6e4)return bail(error);throw attempt<attempts&&retryAfter&&await sleep(retryAfter),error}),{retries:attempts-1})}function downloadError(attempt,reason){return new DescribeError("layer_download_failed",`Could not download a required runtime layer.
|
|
16
16
|
Cause: ${reason}
|
|
17
17
|
Attempts: ${attempt}
|
|
18
18
|
Retry this describe command.`)}import{createHash as createHash3}from"node:crypto";import{createHash as createHash2}from"node:crypto";function getFunctionConfig(lambda){return{runtime:lambda.runtime,handler:lambda.handler,architecture:lambda.architecture,environment:Object.fromEntries(Object.entries(lambda.environment).filter(entry=>typeof entry[1]=="string")),..."launcherType"in lambda&&lambda.launcherType==="Nodejs"?{launcherType:lambda.launcherType,awsLambdaHandler:lambda.awsLambdaHandler,shouldAddHelpers:lambda.shouldAddHelpers,shouldAddSourcemapSupport:lambda.shouldAddSourcemapSupport,shouldDisableAutomaticFetchInstrumentation:lambda.shouldDisableAutomaticFetchInstrumentation,useWebApi:lambda.useWebApi}:{},memory:lambda.memory,affinity:lambda.affinity,maxConcurrency:lambda.maxConcurrency,maxDuration:lambda.maxDuration,regions:lambda.regions,functionFailoverRegions:lambda.functionFailoverRegions,supportsResponseStreaming:lambda.supportsResponseStreaming,framework:lambda.framework&&{...lambda.framework}}}var import_build_utils2=__toESM(require_build_utils(),1),ROOT_BOOTSTRAP_PATH="bootstrap",USER_BOOTSTRAP_PATH="___vc_bootstrap",NATIVELY_WRAPPER_SUPPORTED_FAMILIES=["nodejs","python","ruby","java","dotnetcore","bun","executable"],BOOTSTRAP_SHIM=`#!/bin/sh
|
|
@@ -30,7 +30,7 @@ exec "$USER_BOOTSTRAP" "$@"
|
|
|
30
30
|
`):output_manager_default.error(message),code2),parsed;try{parsed=parseArguments(client.argv.slice(2),getFlagsSpecification(describeSubcommand.options))}catch(error){return fail2("invalid_arguments",`${isArgumentError(error)?error.message:"Invalid describe options"}. Run \`vercel deploy describe --help\` for usage.`,2)}asJson=parsed.flags["--json"]===!0;let deployment=getRenamedOption(parsed.flags,"--deployment","--id",{json:asJson});if("error"in deployment)return fail2("invalid_arguments",deployment.error,2);deployment.warning&&(warnings=[deployment.warning]);let deploymentId=deployment.value,awsAccountId=parsed.flags["--aws-account-id"];if((parsed.args[0]==="deploy"?parsed.args.slice(1):parsed.args).length>1)return fail2("invalid_arguments","Unexpected positional arguments. Run `vercel deploy describe --help` for usage.",2);if(!deploymentId||!/^dpl_[a-zA-Z0-9]+$/.test(deploymentId))return fail2("invalid_arguments","Provide a deployment ID with --deployment, such as --deployment dpl_xxx.",2);if(!awsAccountId||!/^\d{12}$/.test(awsAccountId))return fail2("invalid_arguments","Provide a 12-digit AWS account ID with --aws-account-id.",2);if(process.platform==="win32")return fail2("unsupported_platform","vercel deploy describe is not supported on Windows yet. Run it on macOS or Linux.");let telemetry=new DescribeTelemetryClient({opts:{store:client.telemetryEventStore}});telemetry.trackCliOptionDeployment(parsed.flags["--deployment"]),telemetry.trackCliOptionId(parsed.flags["--id"]),telemetry.trackCliOptionAwsAccountId(awsAccountId),telemetry.trackCliFlagJson(parsed.flags["--json"]);try{let project=await resolveDescribeProject(client),explicitTeam=parsed.flags["--scope"]?client.config.currentTeam:process.env.VERCEL_ORG_ID;if(explicitTeam&&explicitTeam!==project.orgId)return fail2("scope_mismatch","The selected team does not match the local project link. Use the linked team, or run `vercel pull --yes` with the intended VERCEL_ORG_ID and VERCEL_PROJECT_ID.");if(process.env.VERCEL_PROJECT_ID&&process.env.VERCEL_PROJECT_ID!==project.projectId)return fail2("project_mismatch","VERCEL_PROJECT_ID differs from the linked project. Run `vercel pull --yes` to restore settings for the intended project.");client.config.currentTeam=project.orgId.startsWith("team_")?project.orgId:void 0,asJson||output_manager_default.log(`Preparing ${deploymentId} in team ${project.orgId} for AWS account ${awsAccountId}`);let directory=await describeDeployment(client,{directory:project.directory,repoRootPath:project.repoRootPath,deploymentId,awsAccountId,teamId:project.orgId,quiet:asJson}),descriptor=join14(directory,"descriptor.json");if(asJson)client.stdout.write(`${JSON.stringify({deployment:{id:deploymentId},awsAccountId,directory,descriptor,...warnings.length>0?{warnings}:{}})}
|
|
31
31
|
`);else{client.stdout.write(`${descriptor}
|
|
32
32
|
`),output_manager_default.log(`Prepared function packages in ${directory}`);let cwd=project.directory===client.cwd?"":` --cwd ${quoteArg(project.directory)}`;output_manager_default.log(`Provision the functions in descriptor.json, then run:
|
|
33
|
-
vercel deploy continue --deployment ${deploymentId}${cwd}`)}return 0}catch(error){return output_manager_default.debug(error instanceof Error?error.stack??error.message:String(error)),error instanceof DescribeError?fail2(error.reason,error.message):error instanceof InvalidToken||isAPIError(error)&&error.status===401?fail2("not_authorized","Could not authenticate with Vercel. Check VERCEL_TOKEN in CI, or run `vercel login`."):isAPIError(error)&&error.status===403?fail2("not_authorized","Vercel denied access to this deployment. Check that your token has access to the linked project and team."):isAPIError(error)&&error.status===404?fail2("not_found",`Deployment ${deploymentId} was not found, or manual provisioning is not enabled for this team.`):isAPIError(error)&&error.status<500&&error.serverMessage?fail2("api_error",error.serverMessage):fail2("describe_failed","Could not prepare deployment functions. Check the local build and deployment access, then rerun this command.")}}var import_fs_extra3=__toESM(require_lib(),1);import{join as join16}from"path";var import_fs_extra2=__toESM(require_lib(),1),import_ci_info=__toESM(require_ci_info(),1),import_build_utils11=__toESM(require_build_utils(),1),import_error_utils=__toESM(require_dist(),1);import{join as join15}from"path";var VERCEL_DIR_ANONYMOUS="anonymous.json";function anonymousStatePath(cwd){return join15(cwd,VERCEL_DIR,VERCEL_DIR_ANONYMOUS)}async function readAnonymousState(cwd){try{let state=await(0,import_fs_extra2.readJSON)(anonymousStatePath(cwd));if(typeof state?.projectId=="string"&&typeof state.token=="string"&&typeof state.claimUrl=="string"&&typeof state.expiresAt=="number")return state}catch{}return null}async function writeAnonymousState(cwd,state){let path2=anonymousStatePath(cwd);await(0,import_fs_extra2.outputJSON)(path2,state,{spaces:2,mode:384}),await(0,import_fs_extra2.chmod)(path2,384),await addToGitIgnore(cwd)}async function clearAnonymousState(cwd){await(0,import_fs_extra2.remove)(anonymousStatePath(cwd))}async function bootstrapAnonymousProject(client){let{projectId,token,claimUrl,expiresAt}=await client.fetch("/v1/anonymous/projects?surface=cli",{method:"POST",body:{},useCurrentTeam:!1,retry:{retries:0}});return{projectId,token,claimUrl,expiresAt}}async function ensureAnonymousLink(client,cwd,{requireExistingState=!1,confirmed=!0}={}){if(import_ci_info.default.isCI||!!((0,import_build_utils11.getPlatformEnv)("ORG_ID")&&(0,import_build_utils11.getPlatformEnv)("PROJECT_ID"))||!!await getLinkFromDir(getVercelDirectory(cwd))||!!(await getRepoLink(client,cwd))?.repoConfig)return"refused";let state=await readAnonymousState(cwd);if(state&&state.expiresAt<=Date.now())return output_manager_default.prettyError({message:`Your temporary deployment has expired. Run ${getCommandName("login")} to create an account and keep deploying this app.`}),"failed";if(!state&&requireExistingState)return"refused";if(!confirmed&&!state)return"confirmation-required";if(!state){try{state=await bootstrapAnonymousProject(client)}catch(err){return output_manager_default.debug(`Anonymous bootstrap failed: ${(0,import_error_utils.errorToString)(err)}`),"refused"}await writeAnonymousState(cwd,state),output_manager_default.log("Not authenticated. Deploying anonymously.")}return client.authConfig={token:state.token,skipWrite:!0},delete process.env.VERCEL_TEAM_ID,{status:"linked",anonymous:!0,expiresAt:state.expiresAt,claimUrl:state.claimUrl,org:{type:"user",id:"",slug:"anonymous"},project:{id:state.projectId,name:state.projectId}}}function validateAnonymousTarget(isAnonymous,target){return isAnonymous&&target&&target!=="production"?(output_manager_default.error(`Anonymous deployments always target production, so "${target}" is not available. Remove the ${param("--environment")} option, or run ${getCommandName("login")} to deploy to other environments.`),!1):!0}async function setupAnonymousDeployment(client,cwd,{isAnonymous,dryRun}){isAnonymous||await clearAnonymousState(cwd);let anonymousLink;if(isAnonymous){let anonymous=await ensureAnonymousLink(client,cwd,{requireExistingState:dryRun});if(anonymous==="refused"){output_manager_default.log("Temporary deployments aren't available for this attempt. Log in to continue.");let{default:promptMissingCredentials}=await import("../../chunks/prompt-missing-credentials-RTNCHH6Y.js"),loginExitCode=await promptMissingCredentials(client);if(loginExitCode!==0)return loginExitCode;isAnonymous=!1}else{if(anonymous==="failed")return 1;if(anonymous==="confirmation-required")return 1;anonymousLink=anonymous}}return{isAnonymous,anonymousLink}}async function handleAnonymousDeploymentError({client,cwd,error,link,isV0,retry}){if(!(!link||!isAPIError(error))){if(error.code==="anonymous_project_claimed"){if(client.nonInteractive||!client.stdin.isTTY)return output_manager_default.prettyError({message:`This project was claimed successfully. Run ${getCommandName("login")} to continue deploying it.`}),1;output_manager_default.log("This project was claimed successfully. Log in to continue deploying it.");let loginExitCode;try{let{default:login}=await import("../../chunks/login-PDZT4PQR.js");loginExitCode=await login(client,{shouldParseArgs:!1})}catch(loginError){return printError(loginError),1}if(loginExitCode!==0)return loginExitCode;let claimedProjectLink=await ensureLink("deploy",client,cwd,{autoConfirm:!0,projectName:link.project.id,failIfNotFound:!0,allowOwnerLookupFallback:!0,v0:isV0});return typeof claimedProjectLink=="number"?claimedProjectLink:(await linkFolderToProject(client,cwd,{projectId:claimedProjectLink.project.id,orgId:claimedProjectLink.org.id},claimedProjectLink.project.name,claimedProjectLink.org.slug,"link",!0,!1),await clearAnonymousState(cwd),retry())}if(error.status===401||error.status===410)return await clearAnonymousState(cwd),output_manager_default.prettyError({message:`Your temporary deployment has expired. Run ${getCommandName("login")} to create an account and keep deploying this app.`}),1}}async function runImplicitBuild(client,cwd){let projectJsonPath=join16(cwd,VERCEL_DIR,VERCEL_DIR_PROJECT),projectJsonExists=await import_fs_extra3.default.pathExists(projectJsonPath);projectJsonExists||await import_fs_extra3.default.outputJSON(projectJsonPath,{settings:{}},{spaces:2}),await import_fs_extra3.default.pathExists(join16(cwd,"package.json"))&&output_manager_default.log("Building your project locally\u2026");let originalArgv=client.argv,originalCwd=client.cwd,originalStdout=client.stdout,previousVercelFirstDeployment=process.env.VERCEL_FIRST_DEPLOYMENT;client.cwd=cwd,client.setArgv([...originalArgv.slice(0,2),"build","--prod","--yes"]),process.env.VERCEL_FIRST_DEPLOYMENT="1",client.stdout=createSinkStream();try{let build=(await import("../build/index.js")).default;return await build(client)}finally{client.setArgv(originalArgv),client.cwd=originalCwd,client.stdout=originalStdout,previousVercelFirstDeployment===void 0?delete process.env.VERCEL_FIRST_DEPLOYMENT:process.env.VERCEL_FIRST_DEPLOYMENT=previousVercelFirstDeployment,projectJsonExists||await import_fs_extra3.default.remove(projectJsonPath)}}function createSinkStream(){return{isTTY:!1,write:()=>!0}}var COMMAND_CONFIG={init:getCommandAliases(initSubcommand),continue:getCommandAliases(continueSubcommand),describe:getCommandAliases(describeSubcommand)},deploy_default=async client=>{let telemetryClient=new DeployTelemetryClient({opts:{store:client.telemetryEventStore}}),parsedArguments=null,flagsSpecification=getDeployFlagsSpecification(deployCommand.options);try{parsedArguments=parseArguments(client.argv.slice(2),flagsSpecification,{permissive:!0})}catch(error){return printError(error),2}let subArgs=parsedArguments.args[0]===deployCommand.name?parsedArguments.args.slice(1):parsedArguments.args,{subcommand,subcommandOriginal}=getSubcommand(subArgs,COMMAND_CONFIG);function printSubcommandHelp(command){output_manager_default.print(help(command,{stream:client.stderr,parent:deployCommand,columns:client.stderr.columns}))}switch(subcommand){case"init":return parsedArguments.flags["--help"]?(telemetryClient.trackCliFlagHelp("deploy",subcommandOriginal),printSubcommandHelp(initSubcommand),0):(telemetryClient.trackCliSubcommandInit(subcommandOriginal),handleInitDeployment(client,telemetryClient));case"continue":return parsedArguments.flags["--help"]?(telemetryClient.trackCliFlagHelp("deploy",subcommandOriginal),printSubcommandHelp(continueSubcommand),0):(telemetryClient.trackCliSubcommandContinue(subcommandOriginal),handleContinueSubcommand(client,telemetryClient));case"describe":return parsedArguments.flags["--help"]?(telemetryClient.trackCliFlagHelp("deploy",subcommandOriginal),printSubcommandHelp(describeSubcommand),0):(telemetryClient.trackCliSubcommandDescribe(subcommandOriginal),describe(client));default:return parsedArguments.flags["--help"]?(telemetryClient.trackCliFlagHelp("deploy"),output_manager_default.print(help(deployCommand,{stream:client.stderr,columns:client.stderr.columns})),0):handleDefaultDeploy(client,telemetryClient)}};async function handleInitDeployment(client,telemetryClient){let flagsSpecification=getDeployFlagsSpecification(initSubcommand.options),parsedArguments;try{parsedArguments=parseArguments(client.argv.slice(2),flagsSpecification)}catch(error2){return printError(error2),2}warnDeprecatedShorthands(client,initSubcommand.options),telemetryClient.trackCliFlagJson(parsedArguments.flags["--json"]),telemetryClient.trackCliOptionFormat(parsedArguments.flags["--format"]),telemetryClient.trackCliOptionProject(parsedArguments.flags["--project"]);let projectNameOrId=parsedArguments.flags["--project"],formatResult=validateJsonOutput(parsedArguments.flags);if(!formatResult.valid)return output_manager_default.error(formatResult.error),2;let asJson=formatResult.jsonOutput||client.nonInteractive;if(!applyDeprecatedTargetFlag(client,parsedArguments.flags))return 2;let envPlaceholderExit=rejectEnvPlaceholder(client,parsedArguments.flags,"deploy init --help");if(envPlaceholderExit!==void 0)return envPlaceholderExit;let args=parsedArguments.args;args[0]==="deploy"&&(args=args.slice(1)),args[0]==="init"&&(args=args.slice(1));let paths;args.length>0?(paths=args.map(item=>resolve3(client.cwd,item)),telemetryClient.trackCliArgumentProjectPath(paths[0])):paths=[client.cwd];let pathValidation=await validatePaths(client,paths);if(!pathValidation.valid)return pathValidation.exitCode;await compileVercelConfig(paths[0]);let localConfig=paths[0]===client.cwd?client.localConfig||readLocalConfig(paths[0]):readLocalConfig(paths[0]);if(localConfig){client.localConfig=localConfig;let{version}=localConfig,file=highlight(localConfig[import_client2.fileNameSymbol]),prop=code("version");if(version)if(typeof version=="number"){if(version!==2){let two=code(String(2));return output_manager_default.error(`The value of the ${prop} property within ${file} can only be ${two}.`),1}}else return output_manager_default.error(`The ${prop} property inside your ${file} file must be a number.`),1}let{log,debug,error}=output_manager_default,quiet=!client.stdout.isTTY,{path:cwd}=pathValidation,autoConfirm=parsedArguments.flags["--yes"],target=parseTarget({flagName:"environment",flags:parsedArguments.flags});telemetryClient.trackTargetEnvironment(target);let parsedArchive=parsedArguments.flags["--archive"];if(typeof parsedArchive=="string"&&!(isValidArchive(parsedArchive)||parsedArchive===deprecatedArchiveSplitTgz))return output_manager_default.error(`Format must be one of: ${import_client2.VALID_ARCHIVE_FORMATS.join(", ")}`),2;parsedArchive===deprecatedArchiveSplitTgz&&output_manager_default.print(`${prependEmoji(`${param("--archive=tgz")} now has the same behavior as ${param("--archive=split-tgz")}. Please use ${param("--archive=tgz")} instead.`,emoji("warning"))}
|
|
33
|
+
vercel deploy continue --deployment ${deploymentId}${cwd}`)}return 0}catch(error){return output_manager_default.debug(error instanceof Error?error.stack??error.message:String(error)),error instanceof DescribeError?fail2(error.reason,error.message):error instanceof InvalidToken||isAPIError(error)&&error.status===401?fail2("not_authorized","Could not authenticate with Vercel. Check VERCEL_TOKEN in CI, or run `vercel login`."):isAPIError(error)&&error.status===403?fail2("not_authorized","Vercel denied access to this deployment. Check that your token has access to the linked project and team."):isAPIError(error)&&error.status===404?fail2("not_found",`Deployment ${deploymentId} was not found, or manual provisioning is not enabled for this team.`):isAPIError(error)&&error.status<500&&error.serverMessage?fail2("api_error",error.serverMessage):fail2("describe_failed","Could not prepare deployment functions. Check the local build and deployment access, then rerun this command.")}}var import_fs_extra3=__toESM(require_lib(),1);import{join as join16}from"path";var import_fs_extra2=__toESM(require_lib(),1),import_ci_info=__toESM(require_ci_info(),1),import_build_utils11=__toESM(require_build_utils(),1),import_error_utils=__toESM(require_dist(),1);import{join as join15}from"path";var VERCEL_DIR_ANONYMOUS="anonymous.json";function anonymousStatePath(cwd){return join15(cwd,VERCEL_DIR,VERCEL_DIR_ANONYMOUS)}async function readAnonymousState(cwd){try{let state=await(0,import_fs_extra2.readJSON)(anonymousStatePath(cwd));if(typeof state?.projectId=="string"&&typeof state.token=="string"&&typeof state.claimUrl=="string"&&typeof state.expiresAt=="number")return state}catch{}return null}async function writeAnonymousState(cwd,state){let path2=anonymousStatePath(cwd);await(0,import_fs_extra2.outputJSON)(path2,state,{spaces:2,mode:384}),await(0,import_fs_extra2.chmod)(path2,384),await addToGitIgnore(cwd)}async function clearAnonymousState(cwd){await(0,import_fs_extra2.remove)(anonymousStatePath(cwd))}async function bootstrapAnonymousProject(client){let{projectId,token,claimUrl,expiresAt}=await client.fetch("/v1/anonymous/projects?surface=cli",{method:"POST",body:{},useCurrentTeam:!1,retry:{retries:0}});return{projectId,token,claimUrl,expiresAt}}async function ensureAnonymousLink(client,cwd,{requireExistingState=!1,confirmed=!0}={}){if(import_ci_info.default.isCI||!!((0,import_build_utils11.getPlatformEnv)("ORG_ID")&&(0,import_build_utils11.getPlatformEnv)("PROJECT_ID"))||!!await getLinkFromDir(getVercelDirectory(cwd))||!!(await getRepoLink(client,cwd))?.repoConfig)return"refused";let state=await readAnonymousState(cwd);if(state&&state.expiresAt<=Date.now())return output_manager_default.prettyError({message:`Your temporary deployment has expired. Run ${getCommandName("login")} to create an account and keep deploying this app.`}),"failed";if(!state&&requireExistingState)return"refused";if(!confirmed&&!state)return"confirmation-required";if(!state){try{state=await bootstrapAnonymousProject(client)}catch(err){return output_manager_default.debug(`Anonymous bootstrap failed: ${(0,import_error_utils.errorToString)(err)}`),"refused"}await writeAnonymousState(cwd,state),output_manager_default.log("Not authenticated. Deploying anonymously.")}return client.authConfig={token:state.token,skipWrite:!0},delete process.env.VERCEL_TEAM_ID,{status:"linked",anonymous:!0,expiresAt:state.expiresAt,claimUrl:state.claimUrl,org:{type:"user",id:"",slug:"anonymous"},project:{id:state.projectId,name:state.projectId}}}function validateAnonymousTarget(isAnonymous,target){return isAnonymous&&target&&target!=="production"?(output_manager_default.error(`Anonymous deployments always target production, so "${target}" is not available. Remove the ${param("--environment")} option, or run ${getCommandName("login")} to deploy to other environments.`),!1):!0}async function setupAnonymousDeployment(client,cwd,{isAnonymous,dryRun}){isAnonymous||await clearAnonymousState(cwd);let anonymousLink;if(isAnonymous){let anonymous=await ensureAnonymousLink(client,cwd,{requireExistingState:dryRun});if(anonymous==="refused"){output_manager_default.log("Temporary deployments aren't available for this attempt. Log in to continue.");let{default:promptMissingCredentials}=await import("../../chunks/prompt-missing-credentials-ZZVTEQQB.js"),loginExitCode=await promptMissingCredentials(client);if(loginExitCode!==0)return loginExitCode;isAnonymous=!1}else{if(anonymous==="failed")return 1;if(anonymous==="confirmation-required")return 1;anonymousLink=anonymous}}return{isAnonymous,anonymousLink}}async function handleAnonymousDeploymentError({client,cwd,error,link,isV0,retry}){if(!(!link||!isAPIError(error))){if(error.code==="anonymous_project_claimed"){if(client.nonInteractive||!client.stdin.isTTY)return output_manager_default.prettyError({message:`This project was claimed successfully. Run ${getCommandName("login")} to continue deploying it.`}),1;output_manager_default.log("This project was claimed successfully. Log in to continue deploying it.");let loginExitCode;try{let{default:login}=await import("../../chunks/login-XKLPSZNN.js");loginExitCode=await login(client,{shouldParseArgs:!1})}catch(loginError){return printError(loginError),1}if(loginExitCode!==0)return loginExitCode;let claimedProjectLink=await ensureLink("deploy",client,cwd,{autoConfirm:!0,projectName:link.project.id,failIfNotFound:!0,allowOwnerLookupFallback:!0,v0:isV0});return typeof claimedProjectLink=="number"?claimedProjectLink:(await linkFolderToProject(client,cwd,{projectId:claimedProjectLink.project.id,orgId:claimedProjectLink.org.id},claimedProjectLink.project.name,claimedProjectLink.org.slug,"link",!0,!1),await clearAnonymousState(cwd),retry())}if(error.status===401||error.status===410)return await clearAnonymousState(cwd),output_manager_default.prettyError({message:`Your temporary deployment has expired. Run ${getCommandName("login")} to create an account and keep deploying this app.`}),1}}async function runImplicitBuild(client,cwd){let projectJsonPath=join16(cwd,VERCEL_DIR,VERCEL_DIR_PROJECT),projectJsonExists=await import_fs_extra3.default.pathExists(projectJsonPath);projectJsonExists||await import_fs_extra3.default.outputJSON(projectJsonPath,{settings:{}},{spaces:2}),await import_fs_extra3.default.pathExists(join16(cwd,"package.json"))&&output_manager_default.log("Building your project locally\u2026");let originalArgv=client.argv,originalCwd=client.cwd,originalStdout=client.stdout,previousVercelFirstDeployment=process.env.VERCEL_FIRST_DEPLOYMENT;client.cwd=cwd,client.setArgv([...originalArgv.slice(0,2),"build","--prod","--yes"]),process.env.VERCEL_FIRST_DEPLOYMENT="1",client.stdout=createSinkStream();try{let build=(await import("../build/index.js")).default;return await build(client)}finally{client.setArgv(originalArgv),client.cwd=originalCwd,client.stdout=originalStdout,previousVercelFirstDeployment===void 0?delete process.env.VERCEL_FIRST_DEPLOYMENT:process.env.VERCEL_FIRST_DEPLOYMENT=previousVercelFirstDeployment,projectJsonExists||await import_fs_extra3.default.remove(projectJsonPath)}}function createSinkStream(){return{isTTY:!1,write:()=>!0}}var COMMAND_CONFIG={init:getCommandAliases(initSubcommand),continue:getCommandAliases(continueSubcommand),describe:getCommandAliases(describeSubcommand)},deploy_default=async client=>{let telemetryClient=new DeployTelemetryClient({opts:{store:client.telemetryEventStore}}),parsedArguments=null,flagsSpecification=getDeployFlagsSpecification(deployCommand.options);try{parsedArguments=parseArguments(client.argv.slice(2),flagsSpecification,{permissive:!0})}catch(error){return printError(error),2}let subArgs=parsedArguments.args[0]===deployCommand.name?parsedArguments.args.slice(1):parsedArguments.args,{subcommand,subcommandOriginal}=getSubcommand(subArgs,COMMAND_CONFIG);function printSubcommandHelp(command){output_manager_default.print(help(command,{stream:client.stderr,parent:deployCommand,columns:client.stderr.columns}))}switch(subcommand){case"init":return parsedArguments.flags["--help"]?(telemetryClient.trackCliFlagHelp("deploy",subcommandOriginal),printSubcommandHelp(initSubcommand),0):(telemetryClient.trackCliSubcommandInit(subcommandOriginal),handleInitDeployment(client,telemetryClient));case"continue":return parsedArguments.flags["--help"]?(telemetryClient.trackCliFlagHelp("deploy",subcommandOriginal),printSubcommandHelp(continueSubcommand),0):(telemetryClient.trackCliSubcommandContinue(subcommandOriginal),handleContinueSubcommand(client,telemetryClient));case"describe":return parsedArguments.flags["--help"]?(telemetryClient.trackCliFlagHelp("deploy",subcommandOriginal),printSubcommandHelp(describeSubcommand),0):(telemetryClient.trackCliSubcommandDescribe(subcommandOriginal),describe(client));default:return parsedArguments.flags["--help"]?(telemetryClient.trackCliFlagHelp("deploy"),output_manager_default.print(help(deployCommand,{stream:client.stderr,columns:client.stderr.columns})),0):handleDefaultDeploy(client,telemetryClient)}};async function handleInitDeployment(client,telemetryClient){let flagsSpecification=getDeployFlagsSpecification(initSubcommand.options),parsedArguments;try{parsedArguments=parseArguments(client.argv.slice(2),flagsSpecification)}catch(error2){return printError(error2),2}warnDeprecatedShorthands(client,initSubcommand.options),telemetryClient.trackCliFlagJson(parsedArguments.flags["--json"]),telemetryClient.trackCliOptionFormat(parsedArguments.flags["--format"]),telemetryClient.trackCliOptionProject(parsedArguments.flags["--project"]);let projectNameOrId=parsedArguments.flags["--project"],formatResult=validateJsonOutput(parsedArguments.flags);if(!formatResult.valid)return output_manager_default.error(formatResult.error),2;let asJson=formatResult.jsonOutput||client.nonInteractive;if(!applyDeprecatedTargetFlag(client,parsedArguments.flags))return 2;let envPlaceholderExit=rejectEnvPlaceholder(client,parsedArguments.flags,"deploy init --help");if(envPlaceholderExit!==void 0)return envPlaceholderExit;let args=parsedArguments.args;args[0]==="deploy"&&(args=args.slice(1)),args[0]==="init"&&(args=args.slice(1));let paths;args.length>0?(paths=args.map(item=>resolve3(client.cwd,item)),telemetryClient.trackCliArgumentProjectPath(paths[0])):paths=[client.cwd];let pathValidation=await validatePaths(client,paths);if(!pathValidation.valid)return pathValidation.exitCode;await compileVercelConfig(paths[0]);let localConfig=paths[0]===client.cwd?client.localConfig||readLocalConfig(paths[0]):readLocalConfig(paths[0]);if(localConfig){client.localConfig=localConfig;let{version}=localConfig,file=highlight(localConfig[import_client2.fileNameSymbol]),prop=code("version");if(version)if(typeof version=="number"){if(version!==2){let two=code(String(2));return output_manager_default.error(`The value of the ${prop} property within ${file} can only be ${two}.`),1}}else return output_manager_default.error(`The ${prop} property inside your ${file} file must be a number.`),1}let{log,debug,error}=output_manager_default,quiet=!client.stdout.isTTY,{path:cwd}=pathValidation,autoConfirm=parsedArguments.flags["--yes"],target=parseTarget({flagName:"environment",flags:parsedArguments.flags});telemetryClient.trackTargetEnvironment(target);let parsedArchive=parsedArguments.flags["--archive"];if(typeof parsedArchive=="string"&&!(isValidArchive(parsedArchive)||parsedArchive===deprecatedArchiveSplitTgz))return output_manager_default.error(`Format must be one of: ${import_client2.VALID_ARCHIVE_FORMATS.join(", ")}`),2;parsedArchive===deprecatedArchiveSplitTgz&&output_manager_default.print(`${prependEmoji(`${param("--archive=tgz")} now has the same behavior as ${param("--archive=split-tgz")}. Please use ${param("--archive=tgz")} instead.`,emoji("warning"))}
|
|
34
34
|
`);let cliMeta=parseMeta(parsedArguments.flags["--meta"]),isV0=cliMeta.v0==="true";getGitExecutable(cwd);let refuseInitFirstDeployment=newProject=>refuseFirstDeployment(client,{target,newProject,prodCommand:buildProdCommand(["init",...args],parsedArguments.flags,client.argv)}),link=await ensureLink("deploy",client,cwd,{autoConfirm,projectName:projectNameOrId??localConfig?.name,failIfNotFound:!!projectNameOrId,v0:isV0,beforeCreateProject:isNonProductionTarget(target)?()=>refuseInitFirstDeployment(!0):void 0});if(typeof link=="number")return link;let{org,project}=link,rootDirectory=project.rootDirectory,sourceFilesOutsideRootDirectory=project.sourceFilesOutsideRootDirectory??!0;link.repoRoot&&(cwd=link.repoRoot);let contextName=org.slug;if(client.config.currentTeam=org.type==="team"?org.id:void 0,isNonProductionTarget(target)&&!await hasEarlierDeployment(client,org,project.id,isRemoteLookupSkippedLink(link)?void 0:project.latestDeployments))return refuseInitFirstDeployment(!1);if(rootDirectory&&await validateRootDirectory(cwd,join17(cwd,rootDirectory),project?`To change your Project Settings, go to https://vercel.com/${org?.slug}/${project.name}/settings`:"")===!1)return 1;if(await promptExperimentalServicesMigration({client,cwd:join17(cwd,rootDirectory||""),autoConfirm:!!parsedArguments.flags["--yes"],nonInteractive:client.nonInteractive})&&(localConfig=readLocalConfig(join17(cwd,rootDirectory||""))),rootDirectory){let rootDirectoryPath=join17(cwd,rootDirectory);await compileVercelConfig(rootDirectoryPath);let rootDirectoryConfig=readLocalConfig(rootDirectoryPath);rootDirectoryConfig?(debug(`Read local config from root directory (${rootDirectory})`),localConfig=rootDirectoryConfig):localConfig&&output_manager_default.print(`${prependEmoji(`The ${highlight(localConfig[import_client2.fileNameSymbol])} file should be inside of the provided root directory.`,emoji("warning"))}
|
|
35
35
|
`)}localConfig=localConfig||{},localConfig.name&&output_manager_default.print(`${prependEmoji(`The ${code("name")} property in ${highlight(localConfig[import_client2.fileNameSymbol])} is deprecated (https://vercel.link/name-prop)`,emoji("warning"))}
|
|
36
36
|
`);let isObject=item=>Object.prototype.toString.call(item)==="[object Object]";if(typeof localConfig.env<"u"&&!isObject(localConfig.env))return error(`The ${code("env")} property in ${highlight(localConfig[import_client2.fileNameSymbol])} needs to be an object`),1;if(typeof localConfig.build<"u"){if(!isObject(localConfig.build))return error(`The ${code("build")} property in ${highlight(localConfig[import_client2.fileNameSymbol])} needs to be an object`),1;if(typeof localConfig.build.env<"u"&&!isObject(localConfig.build.env))return error(`The ${code("build.env")} property in ${highlight(localConfig[import_client2.fileNameSymbol])} needs to be an object`),1}let meta=Object.assign({},parseMeta(localConfig.meta),cliMeta),gitMetadata=client.withTrace("vc.cli.deploy.git_metadata",()=>createGitMeta(join17(cwd,project.rootDirectory||""),project));gitMetadata.catch(()=>{});let deploymentEnv=Object.assign({},parseEnv(localConfig.env),parseEnv(parsedArguments.flags["--env"])),deploymentBuildEnv=Object.assign({},parseEnv(localConfig.build&&localConfig.build.env),parseEnv(parsedArguments.flags["--build-env"]));try{await addProcessEnv(log,deploymentEnv),await addProcessEnv(log,deploymentBuildEnv)}catch(err){return error((0,import_error_utils2.errorToString)(err)),1}let regionFlag=(parsedArguments.flags["--regions"]||"").split(",").map(s=>s.trim()).filter(Boolean),regions=regionFlag.length>0?regionFlag:localConfig.regions,currentTeam=org.type==="team"?org.id:void 0,now=new Now({client,currentTeam}),deployStamp=stamp_default(),localConfigurationOverrides=pickOverrides(localConfig),name=project.name;if(!name)throw new Error("`name` not found on project or provided by existing project");let noWait=!0;try{let autoAssignCustomDomains=parsedArguments.flags["--skip-domain"]?!1:void 0,createArgs={name,env:deploymentEnv,build:{env:deploymentBuildEnv},forceNew:parsedArguments.flags["--force"],withCache:parsedArguments.flags["--with-cache"],prebuilt:!0,vercelOutputDir:void 0,rootDirectory,quiet,nowConfig:{...localConfig,images:void 0},regions,meta,gitMetadata,deployStamp,target,skipAutoDetectionConfirmation:autoConfirm,noWait,withFullLogs:!1,autoAssignCustomDomains,manual:!0,jsonOutput:asJson,linkedProject:project};(!localConfig.builds||localConfig.builds.length===0)&&(createArgs.projectSettings={sourceFilesOutsideRootDirectory,rootDirectory,...localConfigurationOverrides});let{packageJson}=await(0,import_build_utils12.findPackageJson)(join17(cwd,project?.rootDirectory??""),!0,cwd),nodeVersion;if(packageJson?.engines?.node)try{let{range}=await(0,import_build_utils12.getSupportedNodeVersion)(packageJson.engines.node);nodeVersion=range}catch(error2){error2 instanceof Error&&output_manager_default.warn(error2.message)}createArgs.projectSettings||(createArgs.projectSettings={}),createArgs.projectSettings.nodeVersion=nodeVersion;let deployment=await createDeploy(client,now,contextName,cwd,createArgs,org,!project,parsedArchive?"tgz":void 0);if(deployment instanceof NotDomainOwner)return recordCliError({code:"not_domain_owner"}),client.nonInteractive?(client.stdout.write(`${JSON.stringify({status:AGENT_STATUS.ERROR,reason:"not_domain_owner",message:deployment.message,next:[{command:withGlobalFlags(client,"deploy"),when:"retry deploy"}]},null,2)}
|
|
@@ -51,10 +51,10 @@ ${next.map(step=>`To ${step.when}:
|
|
|
51
51
|
`),0}}try{singleFile||await compileVercelConfig(paths[0])}catch(err){if(err instanceof ConflictingConfigFiles||err instanceof DeprecatedNowJson)return output_manager_default.prettyError(err),1;throw err}let shouldUseEarlyLocalConfig=paths[0]===client.cwd,localConfig=singleFile?{...singleFileConfig}:shouldUseEarlyLocalConfig?client.localConfig||readLocalConfig(paths[0]):readLocalConfig(paths[0]);if(localConfig){client.localConfig=localConfig;let{version}=localConfig,file=highlight(localConfig[import_client2.fileNameSymbol]),prop=code("version");if(version)if(typeof version=="number"){if(version!==2){let two=code(String(2));return output_manager_default.error(`The value of the ${prop} property within ${file} can only be ${two}.`),1}}else return output_manager_default.error(`The ${prop} property inside your ${file} file must be a number.`),1}let{log,debug,error,prettyError}=output_manager_default,quiet=!client.stdout.isTTY,cwd=singleFile?dirname4(singleFile):pathValidation.path,autoConfirm=parsedArguments.flags["--yes"]||client.nonInteractive;parsedArguments.flags["--name"]&&(output_manager_default.print(`${prependEmoji(`The ${param("--name")} option is deprecated (https://vercel.link/name-flag)`,emoji("warning"))}
|
|
52
52
|
`),telemetryClient.trackCliOptionName(parsedArguments.flags["--name"])),parsedArguments.flags["--no-clipboard"]&&(output_manager_default.print(`${prependEmoji(`The ${param("--no-clipboard")} option was ignored because it is the default behavior. Please remove it.`,emoji("warning"))}
|
|
53
53
|
`),telemetryClient.trackCliFlagNoClipboard(!0));let isAnonymous=!client.authConfig.token&&!!parsedArguments.flags["--temporary"];if(!client.authConfig.token&&!isAnonymous)return output_manager_default.prettyError({message:`No existing credentials found. Run ${getCommandName("deploy --temporary")} to create a temporary deployment you can claim later, or ${getCommandName("login")} to log in.`,link:"https://err.sh/vercel/no-credentials-found"}),1;let target=parseTarget({flagName:"environment",flags:parsedArguments.flags});if(telemetryClient.trackTargetEnvironment(target),!validateAnonymousTarget(isAnonymous,target))return 1;if(parsedArguments.flags["--skip-domain"]&&target!=="production")return output_manager_default.error("The `--skip-domain` option can only be used with production deployments. Use `--prod` or `--environment production`."),1;let parsedArchive=parsedArguments.flags["--archive"];if(typeof parsedArchive=="string"&&!(isValidArchive(parsedArchive)||parsedArchive===deprecatedArchiveSplitTgz))return output_manager_default.error(`Format must be one of: ${import_client2.VALID_ARCHIVE_FORMATS.join(", ")}`),2;parsedArchive===deprecatedArchiveSplitTgz&&output_manager_default.print(`${prependEmoji(`${param("--archive=tgz")} now has the same behavior as ${param("--archive=split-tgz")}. Please use ${param("--archive=tgz")} instead.`,emoji("warning"))}
|
|
54
|
-
`);let cliMeta=parseMeta(parsedArguments.flags["--meta"]),isV0=cliMeta.v0==="true";!singleFile&&!parsedArguments.flags["--dry"]&&getGitExecutable(cwd);let anonymousSetup=singleFile&&!isAnonymous?{isAnonymous:!1,anonymousLink:void 0}:await setupAnonymousDeployment(client,cwd,{isAnonymous,dryRun:!!parsedArguments.flags["--dry"]});if(typeof anonymousSetup=="number")return anonymousSetup;isAnonymous=anonymousSetup.isAnonymous;let anonymousLink=anonymousSetup.anonymousLink;anonymousLink&&(target="production");let checkFirstDeployment=isNonProductionTarget(target)&&!isAnonymous&&!parsedArguments.flags["--dry"],deployPath=cwd,refuseDefaultFirstDeployment=newProject=>{let prebuilt2=!!parsedArguments.flags["--prebuilt"],prodCommand=buildProdCommand(parsedArguments.args,parsedArguments.flags,client.argv,{keepCreateIfMissing:newProject,dropPrebuilt:newProject});return refuseFirstDeployment(client,{target,newProject,prodCommand:newProject&&prebuilt2?{...prodCommand,note:[prodCommand.note,"without --prebuilt, so Vercel builds it"].filter(Boolean).join("; ")}:prodCommand,prepareCommands:prebuilt2&&!newProject?[{command:withGlobalFlags(client,`pull --yes --environment production --cwd ${quoteArg(deployPath)}`,{preserveProject:!0}),action:"pull Production settings and Environment Variables"},{command:withGlobalFlags(client,`build --prod --cwd ${quoteArg(deployPath)}`,{preserveProject:!0}),action:"build for Production"}]:void 0})},link=anonymousLink??(singleFile?await resolveSingleFileProject(client,singleFile,{project:projectNameOrId,name:parsedArguments.flags["--name"],dryRun:!!parsedArguments.flags["--dry"],production:target==="production",asJson,v0:isV0,beforeCreateProject
|
|
54
|
+
`);let cliMeta=parseMeta(parsedArguments.flags["--meta"]),isV0=cliMeta.v0==="true";!singleFile&&!parsedArguments.flags["--dry"]&&getGitExecutable(cwd);let anonymousSetup=singleFile&&!isAnonymous?{isAnonymous:!1,anonymousLink:void 0}:await setupAnonymousDeployment(client,cwd,{isAnonymous,dryRun:!!parsedArguments.flags["--dry"]});if(typeof anonymousSetup=="number")return anonymousSetup;isAnonymous=anonymousSetup.isAnonymous;let anonymousLink=anonymousSetup.anonymousLink;anonymousLink&&(target="production");let checkFirstDeployment=isNonProductionTarget(target)&&!isAnonymous&&!parsedArguments.flags["--dry"],deployPath=cwd,refuseDefaultFirstDeployment=newProject=>{let prebuilt2=!!parsedArguments.flags["--prebuilt"],prodCommand=buildProdCommand(parsedArguments.args,parsedArguments.flags,client.argv,{keepCreateIfMissing:newProject,dropPrebuilt:newProject});return refuseFirstDeployment(client,{target,newProject,prodCommand:newProject&&prebuilt2?{...prodCommand,note:[prodCommand.note,"without --prebuilt, so Vercel builds it"].filter(Boolean).join("; ")}:prodCommand,prepareCommands:prebuilt2&&!newProject?[{command:withGlobalFlags(client,`pull --yes --environment production --cwd ${quoteArg(deployPath)}`,{preserveProject:!0}),action:"pull Production settings and Environment Variables"},{command:withGlobalFlags(client,`build --prod --cwd ${quoteArg(deployPath)}`,{preserveProject:!0}),action:"build for Production"}]:void 0})},beforeCreateProject=checkFirstDeployment?()=>refuseDefaultFirstDeployment(!0):!target&&!isAnonymous&&!parsedArguments.flags["--dry"]?()=>{output_manager_default.warning(FIRST_DEPLOYMENT_PRODUCTION_NOTICE)}:void 0,link=anonymousLink??(singleFile?await resolveSingleFileProject(client,singleFile,{project:projectNameOrId,name:parsedArguments.flags["--name"],dryRun:!!parsedArguments.flags["--dry"],production:target==="production",asJson,v0:isV0,beforeCreateProject}):await ensureLink("deploy",client,cwd,{autoConfirm,projectName:projectNameOrId??parsedArguments.flags["--name"]??localConfig?.name,failIfNotFound:!!projectNameOrId,createIfNotFound:!!projectNameOrId&&!parsedArguments.flags["--dry"]&&(createIfMissing||!autoConfirm),createCommand:projectNameOrId&&!parsedArguments.flags["--dry"]?buildCreateIfMissingCommand(parsedArguments.args,parsedArguments.flags,client.argv):void 0,requireExistingLink:parsedArguments.flags["--dry"],allowOwnerLookupFallback:!0,skipRemoteLookup:!parsedArguments.flags["--dry"],v0:isV0,beforeCreateProject}));if(typeof link=="number")return link;let singleFileTarget=singleFile&&!anonymousLink?singleFileTargetArgs(client,link):void 0,redeployCommand=withGlobalFlags(client,singleFile?`deploy ${quoteArg(singleFile)}${isAnonymous?" --temporary":""}${singleFileTarget??""}`:isAnonymous?"deploy --temporary":"deploy",{preserveProject:!!singleFile&&!singleFileTarget}),{org,project}=link,linkedProjectRead,lookUpLinkedProject=isRemoteLookupSkippedLink(link)?()=>linkedProjectRead??=getProjectByNameOrId(client,project.id,project.accountId):void 0,deployedBefore=checkFirstDeployment?hasEarlierDeployment(client,org,project.id,isRemoteLookupSkippedLink(link)?void 0:project.latestDeployments):void 0,rootDirectory=singleFile?null:project.rootDirectory,sourceFilesOutsideRootDirectory=project.sourceFilesOutsideRootDirectory??!0,projectCwd=cwd;!singleFile&&link.repoRoot&&(cwd=link.repoRoot);let postDeployGuidanceEnabled=!singleFile&&!anonymousLink&&(client.nonInteractive||!asJson)&&isGuidanceEnabled(client,parsedArguments.flags["--guidance"],!0),prebuilt=isAnonymous||!!parsedArguments.flags["--prebuilt"],vercelOutputDir,prebuiltBuild=null,singleFileOutputRoot;if(prebuilt){vercelOutputDir=join17(cwd,".vercel/output"),link.repoRoot&&link.project.rootDirectory&&(vercelOutputDir=join17(cwd,link.project.rootDirectory,".vercel/output"));let prebuiltExists=await import_fs_extra4.default.pathExists(vercelOutputDir);if(singleFile)singleFileOutputRoot=await import_fs_extra4.default.mkdtemp(join17(tmpdir(),"vercel-file-")),tempDirs.push(singleFileOutputRoot),vercelOutputDir=join17(singleFileOutputRoot,".vercel/output"),await import_fs_extra4.default.copy(singleFile,join17(vercelOutputDir,"static",basename4(singleFile))),await import_fs_extra4.default.outputJSON(join17(vercelOutputDir,"config.json"),{version:3}),prebuiltExists=!0;else if(isAnonymous&&!parsedArguments.flags["--prebuilt"]&&!parsedArguments.flags["--dry"]){let buildExitCode=await runImplicitBuild(client,cwd);if(buildExitCode!==0)return buildExitCode;prebuiltExists=await import_fs_extra4.default.pathExists(vercelOutputDir)}if(!prebuiltExists)return error(`The ${param("--prebuilt")} option was used, but no prebuilt output found in ".vercel/output". Run ${getCommandName("build")} to generate a local build.`),1;prebuiltBuild=await getPrebuiltJson(vercelOutputDir);let prebuiltError=prebuiltBuild?.error||prebuiltBuild?.builds?.find(build=>"error"in build)?.error;if(prebuiltError)return output_manager_default.log(`Prebuilt deployment cannot be created because ${getCommandName("build")} failed with error:
|
|
55
55
|
`),prettyError(prebuiltError),1;let assumedTarget=target||"preview";if(prebuiltBuild?.target&&prebuiltBuild.target!==assumedTarget){let specifyTarget="";return prebuiltBuild.target==="production"&&(specifyTarget=" --prod"),prettyError({message:`The ${param("--prebuilt")} option was used with the target environment "${assumedTarget}", but the prebuilt output found in ".vercel/output" was built with target environment "${prebuiltBuild.target}". Please run ${getCommandName(`--prebuilt${specifyTarget}`)}.`,link:"https://vercel.link/prebuilt-environment-mismatch"}),1}}let orgSlug=isRemoteLookupSkippedLink(link)?void 0:org.slug,contextName=orgSlug??"the linked account",currentTeam=isOwnerLookupUnavailableLink(link)||org.type!=="team"?void 0:org.id;if(client.config.currentTeam=currentTeam,rootDirectory&&await validateRootDirectory(cwd,join17(cwd,rootDirectory),project&&orgSlug?`To change your Project Settings, go to https://vercel.com/${orgSlug}/${project.name}/settings`:"")===!1)return 1;if(!singleFile&&!parsedArguments.flags["--dry"]&&!prebuilt&&await promptExperimentalServicesMigration({client,cwd:join17(cwd,rootDirectory||""),autoConfirm:!!parsedArguments.flags["--yes"],nonInteractive:client.nonInteractive})&&(localConfig=readLocalConfig(join17(cwd,rootDirectory||""))),rootDirectory){let rootDirectoryPath=join17(cwd,rootDirectory);await compileVercelConfig(rootDirectoryPath);let rootDirectoryConfig=readLocalConfig(rootDirectoryPath);rootDirectoryConfig?(debug(`Read local config from root directory (${rootDirectory})`),localConfig=rootDirectoryConfig):localConfig&&output_manager_default.print(`${prependEmoji(`The ${highlight(localConfig[import_client2.fileNameSymbol])} file should be inside of the provided root directory.`,emoji("warning"))}
|
|
56
56
|
`)}if(localConfig=localConfig||{},parsedArguments.flags["--dry"])try{let summary=await(0,import_client2.inspectDeploymentFiles)({path:singleFileOutputRoot??singleFile??cwd,archive:parsedArchive?"tgz":void 0,debug:output_manager_default.isDebugEnabled(),prebuilt,vercelOutputDir,projectName:project.name,rootDirectory,bulkRedirectsPath:localConfig.bulkRedirectsPath}),{resolveDeploymentFrameworkPreset}=await import("../../chunks/resolve-deployment-framework-preset-AXXYBFCL.js"),framework=resolveDeploymentFrameworkPreset({localFramework:localConfig.framework,projectFramework:project.framework});return summary.warning&&printPrebuiltFilePathMapIgnoreWarning(summary.warning,telemetryClient),printDeploymentDryRun(client,summary,framework,asJson||!client.stdout.isTTY),0}catch(err){return printError(err),1}if(deployedBefore&&!await deployedBefore)return refuseDefaultFirstDeployment(!1);localConfig.name&&output_manager_default.print(`${prependEmoji(`The ${code("name")} property in ${highlight(localConfig[import_client2.fileNameSymbol])} is deprecated (https://vercel.link/name-prop)`,emoji("warning"))}
|
|
57
|
-
`);let isObject=item=>Object.prototype.toString.call(item)==="[object Object]";if(typeof localConfig.env<"u"&&!isObject(localConfig.env))return error(`The ${code("env")} property in ${highlight(localConfig[import_client2.fileNameSymbol])} needs to be an object`),1;if(typeof localConfig.build<"u"){if(!isObject(localConfig.build))return error(`The ${code("build")} property in ${highlight(localConfig[import_client2.fileNameSymbol])} needs to be an object`),1;if(typeof localConfig.build.env<"u"&&!isObject(localConfig.build.env))return error(`The ${code("build.env")} property in ${highlight(localConfig[import_client2.fileNameSymbol])} needs to be an object`),1}let meta=Object.assign({},parseMeta(localConfig.meta),cliMeta,singleFile?singleFileMeta:{}),gitMetadata=singleFile?Promise.resolve(void 0):client.withTrace("vc.cli.deploy.git_metadata",()=>createGitMeta(join17(cwd,project.rootDirectory||""),project));gitMetadata.catch(()=>{});let deploymentEnv=Object.assign({},parseEnv(localConfig.env),parseEnv(parsedArguments.flags["--env"])),deploymentBuildEnv=Object.assign({},parseEnv(localConfig.build&&localConfig.build.env),parseEnv(parsedArguments.flags["--build-env"]));try{await addProcessEnv(log,deploymentEnv),await addProcessEnv(log,deploymentBuildEnv)}catch(err){return error((0,import_error_utils2.errorToString)(err)),1}let regionFlag=(parsedArguments.flags["--regions"]||"").split(",").map(s=>s.trim()).filter(Boolean),regions=regionFlag.length>0?regionFlag:localConfig.regions,now=new Now({client,currentTeam}),deployStamp=stamp_default(),deployment=null,noWait=!!parsedArguments.flags["--no-wait"],withFullLogs=!!parsedArguments.flags["--logs"],localConfigurationOverrides=pickOverrides(localConfig),name=project.name;if(!name)throw new Error("`name` not found on project or provided by existing project");try{let autoAssignCustomDomains=parsedArguments.flags["--skip-domain"]?!1:void 0,createArgs={name,project:project.id,env:deploymentEnv,build:{env:deploymentBuildEnv},buildMachine,forceNew:parsedArguments.flags["--force"],withCache:parsedArguments.flags["--with-cache"],prebuilt,anonymous:isAnonymous,vercelOutputDir,rootDirectory,quiet,nowConfig:{...localConfig,images:void 0},regions,meta,gitMetadata,deployStamp,target,skipAutoDetectionConfirmation:autoConfirm||isAnonymous,noWait,withFullLogs,autoAssignCustomDomains,agentName:client.agentName,jsonOutput:asJson,linkedProject:project,
|
|
57
|
+
`);let isObject=item=>Object.prototype.toString.call(item)==="[object Object]";if(typeof localConfig.env<"u"&&!isObject(localConfig.env))return error(`The ${code("env")} property in ${highlight(localConfig[import_client2.fileNameSymbol])} needs to be an object`),1;if(typeof localConfig.build<"u"){if(!isObject(localConfig.build))return error(`The ${code("build")} property in ${highlight(localConfig[import_client2.fileNameSymbol])} needs to be an object`),1;if(typeof localConfig.build.env<"u"&&!isObject(localConfig.build.env))return error(`The ${code("build.env")} property in ${highlight(localConfig[import_client2.fileNameSymbol])} needs to be an object`),1}let meta=Object.assign({},parseMeta(localConfig.meta),cliMeta,singleFile?singleFileMeta:{}),gitMetadata=singleFile?Promise.resolve(void 0):client.withTrace("vc.cli.deploy.git_metadata",()=>createGitMeta(join17(cwd,project.rootDirectory||""),project));gitMetadata.catch(()=>{});let deploymentEnv=Object.assign({},parseEnv(localConfig.env),parseEnv(parsedArguments.flags["--env"])),deploymentBuildEnv=Object.assign({},parseEnv(localConfig.build&&localConfig.build.env),parseEnv(parsedArguments.flags["--build-env"]));try{await addProcessEnv(log,deploymentEnv),await addProcessEnv(log,deploymentBuildEnv)}catch(err){return error((0,import_error_utils2.errorToString)(err)),1}let regionFlag=(parsedArguments.flags["--regions"]||"").split(",").map(s=>s.trim()).filter(Boolean),regions=regionFlag.length>0?regionFlag:localConfig.regions,now=new Now({client,currentTeam}),deployStamp=stamp_default(),deployment=null,noWait=!!parsedArguments.flags["--no-wait"],withFullLogs=!!parsedArguments.flags["--logs"],localConfigurationOverrides=pickOverrides(localConfig),name=project.name;if(!name)throw new Error("`name` not found on project or provided by existing project");try{let autoAssignCustomDomains=parsedArguments.flags["--skip-domain"]?!1:void 0,createArgs={name,project:project.id,env:deploymentEnv,build:{env:deploymentBuildEnv},buildMachine,forceNew:parsedArguments.flags["--force"],withCache:parsedArguments.flags["--with-cache"],prebuilt,anonymous:isAnonymous,vercelOutputDir,rootDirectory,quiet,nowConfig:{...localConfig,images:void 0},regions,meta,gitMetadata,deployStamp,target,skipAutoDetectionConfirmation:autoConfirm||isAnonymous,noWait,withFullLogs,autoAssignCustomDomains,agentName:client.agentName,jsonOutput:asJson,linkedProject:project,lookUpLinkedProject};(!localConfig.builds||localConfig.builds.length===0)&&(createArgs.projectSettings={sourceFilesOutsideRootDirectory,rootDirectory,...localConfigurationOverrides,...singleFile&&singleFileProjectSettings});let{packageJson}=singleFile?{packageJson:null}:await(0,import_build_utils12.findPackageJson)(join17(cwd,project?.rootDirectory??""),!0,cwd),nodeVersion;if(packageJson?.engines?.node)try{let{range}=await(0,import_build_utils12.getSupportedNodeVersion)(packageJson.engines.node);nodeVersion=range}catch(error2){error2 instanceof Error&&output_manager_default.warn(error2.message)}if(createArgs.projectSettings||(createArgs.projectSettings={}),isAnonymous&&!Object.hasOwn(localConfig,"framework")&&createArgs.projectSettings.framework===void 0&&prebuiltBuild?.detectedFramework?.status==="detected"&&prebuiltBuild.detectedFramework.slug&&(createArgs.projectSettings.framework=prebuiltBuild.detectedFramework.slug),createArgs.projectSettings.nodeVersion=nodeVersion,deployment=await createDeploy(client,now,contextName,singleFileOutputRoot??singleFile??cwd,createArgs,org,!project,parsedArchive?"tgz":void 0),deployment&&!(deployment instanceof Error)&&telemetryClient.trackDeploymentId(deployment.id),deployment instanceof NotDomainOwner)return recordCliError({code:"not_domain_owner"}),client.nonInteractive?(client.stdout.write(`${JSON.stringify({status:AGENT_STATUS.ERROR,reason:"not_domain_owner",message:deployment.message,next:[{command:redeployCommand,when:"retry deploy"}]},null,2)}
|
|
58
58
|
`),1):(output_manager_default.error(deployment.message),1);if(deployment instanceof Error){let deployError=cliErrorFromUnknown(deployment);recordCliError({...deployError,code:deployError.code??"deploy_failed"});let msg=deployment.message||"An unexpected error occurred while deploying your project";return client.nonInteractive?(client.stdout.write(`${JSON.stringify({status:AGENT_STATUS.ERROR,reason:"deploy_failed",message:msg,next:[{command:redeployCommand,when:"retry deploy"}]},null,2)}
|
|
59
59
|
`),1):(output_manager_default.error(msg,void 0,"https://vercel.link/help","Contact Support"),1)}if(deployment.readyState==="CANCELED"){if(recordCliError({code:"deployment_canceled"}),asJson){output_manager_default.stopSpinner();let deploymentJson=getDeploymentOutputJson(deployment,client.apiUrl,{name:"DEPLOYMENT_CANCELED",message:"The deployment has been canceled."}),payload=client.nonInteractive?{status:AGENT_STATUS.ERROR,reason:"deployment_canceled",message:"The deployment has been canceled.",deployment:deploymentJson,next:[{command:redeployCommand,when:"retry deploy"}]}:deploymentJson;client.stdout.write(`${JSON.stringify(payload,null,2)}
|
|
60
60
|
`)}else output_manager_default.print(`The deployment has been canceled.
|
|
@@ -63,14 +63,14 @@ ${next.map(step=>`To ${step.when}:
|
|
|
63
63
|
`),1):(error("Uploading failed. Please try again."),1)}catch(err){recordCliError(cliErrorFromUnknown(err)),(0,import_error_utils2.isError)(err)&&debug(`Error: ${err}
|
|
64
64
|
${err.stack}`);let anonymousExitCode=await handleAnonymousDeploymentError({client,cwd,error:err,link:anonymousLink,isV0,retry:()=>handleDefaultDeploy(client,telemetryClient)});if(anonymousExitCode!==void 0)return anonymousExitCode;if(err instanceof UploadErrorMissingArchive)return client.nonInteractive?(client.stdout.write(`${JSON.stringify({status:AGENT_STATUS.ERROR,reason:"missing_archive",message:err.message,next:[{command:redeployCommand,when:"retry deploy"}]},null,2)}
|
|
65
65
|
`),1):(output_manager_default.prettyError(err),1);if(err instanceof NotDomainOwner)return recordCliError({code:"not_domain_owner"},{override:!0}),client.nonInteractive?(client.stdout.write(`${JSON.stringify({status:AGENT_STATUS.ERROR,reason:"not_domain_owner",message:err.message,next:[{command:redeployCommand,when:"retry deploy"}]},null,2)}
|
|
66
|
-
`),1):(output_manager_default.error(err.message),1);if(err instanceof DomainNotFound&&err.meta&&err.meta.domain){output_manager_default.debug(`The domain ${err.meta.domain} was not found, trying to purchase it`);let{default:purchaseDomainIfAvailable}=await import("../../chunks/purchase-domain-if-available-
|
|
66
|
+
`),1):(output_manager_default.error(err.message),1);if(err instanceof DomainNotFound&&err.meta&&err.meta.domain){output_manager_default.debug(`The domain ${err.meta.domain} was not found, trying to purchase it`);let{default:purchaseDomainIfAvailable}=await import("../../chunks/purchase-domain-if-available-VMWCMYC2.js"),purchase=await purchaseDomainIfAvailable(client,err.meta.domain,contextName);return purchase===!0?(output_manager_default.success(`Successfully purchased the domain ${err.meta.domain}!`),0):purchase===!1||purchase instanceof UserAborted?(handleCreateDeployError(deployment,localConfig),1):(handleCreateDeployError(purchase,localConfig)!==1&&output_manager_default.error(purchase.message),1)}if(err instanceof DomainNotFound||err instanceof DomainNotVerified||err instanceof NotDomainOwner||err instanceof DomainPermissionDenied||err instanceof DomainVerificationFailed||err instanceof SchemaValidationFailed||err instanceof InvalidDomain||err instanceof DeploymentNotFound||err instanceof BuildsRateLimited||err instanceof DeploymentsRateLimited||err instanceof AliasDomainConfigured||err instanceof MissingBuildScript||err instanceof ConflictingFilePath||err instanceof ConflictingPathSegment||err instanceof ConflictingConfigFiles)return client.nonInteractive&&client.stdout.write(`${JSON.stringify({status:AGENT_STATUS.ERROR,reason:"deploy_failed",message:err instanceof Error?err.message:String(err),next:[{command:redeployCommand,when:"retry deploy"}]},null,2)}
|
|
67
67
|
`),handleCreateDeployError(err,localConfig),1;if(err instanceof BuildError){let buildFailedNext=[...now.url?[{command:withGlobalFlags(client,`inspect ${now.url} --logs`),when:"read build logs"}]:[],{command:redeployCommand,when:"retry deploy"}];if(now.url)try{let failedDeployment=await getDeployment(client,contextName,now.url);if(asJson){output_manager_default.stopSpinner();let deploymentJson=getDeploymentOutputJson(failedDeployment,client.apiUrl,{name:"BUILD_ERROR",message:err.message}),payload=client.nonInteractive?{status:AGENT_STATUS.ERROR,reason:"build_failed",message:err.message,deployment:deploymentJson,next:buildFailedNext}:deploymentJson;client.stdout.write(`${JSON.stringify(payload,null,2)}
|
|
68
|
-
`)}else if(withFullLogs===!1){let{displayBuildLogsUntilFinalError}=await import("../../chunks/logs-
|
|
68
|
+
`)}else if(withFullLogs===!1){let{displayBuildLogsUntilFinalError}=await import("../../chunks/logs-NJ46ZSNZ.js");await displayBuildLogsUntilFinalError(client,failedDeployment,err.message)}}catch{if(asJson){output_manager_default.stopSpinner();let payload=client.nonInteractive?{status:AGENT_STATUS.ERROR,reason:"build_failed",message:err.message,url:`https://${now.url}`,next:buildFailedNext}:{error:{name:"BUILD_ERROR",message:err.message},url:`https://${now.url}`};client.stdout.write(`${JSON.stringify(payload,null,2)}
|
|
69
69
|
`)}else output_manager_default.log(`To check build logs run: ${getCommandName(`inspect ${now.url} --logs`)}`),output_manager_default.log(`Or inspect them in your browser at https://${now.url}/_logs`)}else client.nonInteractive&&(output_manager_default.stopSpinner(),client.stdout.write(`${JSON.stringify({status:AGENT_STATUS.ERROR,reason:"build_failed",message:err.message,next:buildFailedNext},null,2)}
|
|
70
70
|
`));return 1}if(isAPIError(err)&&err.code==="size_limit_exceeded"){let{sizeLimit=0}=err,message=`File size limit exceeded (${(0,import_bytes.default)(sizeLimit)})`;return client.nonInteractive&&client.stdout.write(`${JSON.stringify({status:AGENT_STATUS.ERROR,reason:"size_limit_exceeded",message,next:[{command:redeployCommand,when:"retry deploy"}]},null,2)}
|
|
71
71
|
`),error(message),1}return client.nonInteractive&&client.stdout.write(`${JSON.stringify({status:AGENT_STATUS.ERROR,reason:"deploy_failed",message:err instanceof Error?err.message:String(err),next:[{command:redeployCommand,when:"retry deploy"}]},null,2)}
|
|
72
|
-
`),printError(err),1}let[gitConnectCommand,protection]=await Promise.all([postDeployGuidanceEnabled?getGitConnectRecommendation(client,projectCwd,project,{alreadyOffered:"gitConnectOffered"in link&&link.gitConnectOffered===!0}):void 0,anonymousLink?null:getEnabledProtection(client,project)]),anonymousUrl=anonymousLink?deployment.alias?.[0]:void 0,verification;if(verify){let verifyUrl=anonymousUrl?`https://${anonymousUrl}`:getProductionUrl(deployment)??`https://${deployment.url}`;output_manager_default.spinner(`Loading ${verifyUrl}\u2026`,0),verification=await verifyDeployment(client,verifyUrl,{project:anonymousLink?void 0:project,org:anonymousLink?void 0:org,protectionEnabled:!!protection?.length}),output_manager_default.stopSpinner(),verification.ok||recordCliError({code:"verification_failed"})}if(asJson){output_manager_default.stopSpinner();let deploymentJson={...getDeploymentOutputJson(deployment,client.apiUrl),...anonymousLink?{expiresAt:anonymousLink.expiresAt,claimUrl:anonymousLink.claimUrl}:{},...anonymousUrl?{url:`https://${anonymousUrl}`,inspectorUrl:null,productionUrl:null}:{},...anonymousLink?{}:{deploymentProtection:protection?.map(method=>method.id)??null},...verification?{verification}:{}};if(verification&&!verification.ok){let message=formatVerificationFailure(verification),payload2=client.nonInteractive?{status:AGENT_STATUS.ERROR,reason:"verification_failed",message,deployment:deploymentJson,next:[{command:`${packageName} curl ${verification.url}`,when:"See the full response"},{command:withGlobalFlags(client,`inspect ${deployment.url} --logs`),when:"read build logs"}]}:{...deploymentJson,error:{name:"VERIFICATION_FAILED",message}};return client.stdout.write(`${JSON.stringify(payload2,null,2)}
|
|
73
|
-
`),1}let isImplicitProduction=deployment.target==="production"&&target!=="production",payload=client.nonInteractive?{status:AGENT_STATUS.OK,deployment:deploymentJson,message:anonymousLink?`Anonymous deployment ${anonymousUrl??deployment.url} ready. It expires in ${(0,import_ms.default)(anonymousLink.expiresAt-Date.now(),{long:!0})}. Claim it at ${anonymousLink.claimUrl} to keep it.`:formatReadyMessage(deployment.url,deploymentJson.productionUrl),...isImplicitProduction?{hint:"This is the project\u2019s first deployment, so it was assigned to production. Future deployments will be preview deployments unless you use --prod."}:{},next:anonymousLink?[{command:redeployCommand,when:"Redeploy changes to the same anonymous deployment"},{command:withGlobalFlags(client,"login"),when:"Create an account to keep deploying"}]:[...gitConnectCommand?[{command:gitConnectCommand,when:"Automatically deploy changes on every push"}]:[],...verification?[]:[{command:`${packageName} curl ${deploymentJson.productionUrl??`https://${deployment.url}`}`,when:"Verify deployment, including when Deployment Protection is enabled"}],{command:withGlobalFlags(client,`inspect ${deployment.url}`),when:"Inspect deployment"},...isImplicitProduction?[]:[{command:singleFile?withGlobalFlags(client,`deploy ${quoteArg(singleFile)} --prod${singleFileTarget??""}`):withGlobalFlags(client,"deploy --prod"),when:"Promote to production"}]]}:deploymentJson;return client.stdout.write(`${JSON.stringify(payload,null,2)}
|
|
72
|
+
`),printError(err),1}let fetchedProject=await linkedProjectRead?.then(read=>read instanceof ProjectNotFound?void 0:read,()=>{}),[gitConnectCommand,protection]=await Promise.all([postDeployGuidanceEnabled?getGitConnectRecommendation(client,projectCwd,project,{alreadyOffered:"gitConnectOffered"in link&&link.gitConnectOffered===!0,fetchedProject}):void 0,anonymousLink?null:getEnabledProtection(client,project,fetchedProject)]),anonymousUrl=anonymousLink?deployment.alias?.[0]:void 0,verification;if(verify){let verifyUrl=anonymousUrl?`https://${anonymousUrl}`:getProductionUrl(deployment)??`https://${deployment.url}`;output_manager_default.spinner(`Loading ${verifyUrl}\u2026`,0),verification=await verifyDeployment(client,verifyUrl,{project:anonymousLink?void 0:project,org:anonymousLink?void 0:org,protectionEnabled:!!protection?.length}),output_manager_default.stopSpinner(),verification.ok||recordCliError({code:"verification_failed"})}if(asJson){output_manager_default.stopSpinner();let deploymentJson={...getDeploymentOutputJson(deployment,client.apiUrl),...anonymousLink?{expiresAt:anonymousLink.expiresAt,claimUrl:anonymousLink.claimUrl}:{},...anonymousUrl?{url:`https://${anonymousUrl}`,inspectorUrl:null,productionUrl:null}:{},...anonymousLink?{}:{deploymentProtection:protection?.map(method=>method.id)??null},...verification?{verification}:{}};if(verification&&!verification.ok){let message=formatVerificationFailure(verification),payload2=client.nonInteractive?{status:AGENT_STATUS.ERROR,reason:"verification_failed",message,deployment:deploymentJson,next:[{command:`${packageName} curl ${verification.url}`,when:"See the full response"},{command:withGlobalFlags(client,`inspect ${deployment.url} --logs`),when:"read build logs"}]}:{...deploymentJson,error:{name:"VERIFICATION_FAILED",message}};return client.stdout.write(`${JSON.stringify(payload2,null,2)}
|
|
73
|
+
`),1}let isImplicitProduction=deployment.target==="production"&&target!=="production",payload=client.nonInteractive?{status:AGENT_STATUS.OK,deployment:deploymentJson,message:anonymousLink?`Anonymous deployment ${anonymousUrl??deployment.url} ready. It expires in ${(0,import_ms.default)(anonymousLink.expiresAt-Date.now(),{long:!0})}. Claim it at ${anonymousLink.claimUrl} to keep it.`:formatReadyMessage(deployment.url,deploymentJson.productionUrl),...isImplicitProduction?{hint:"This is the project\u2019s first deployment, so it was assigned to production. Future deployments will be preview deployments unless you use --prod."}:{},next:anonymousLink?[{command:redeployCommand,when:"Redeploy changes to the same anonymous deployment"},{command:withGlobalFlags(client,"login"),when:"Create an account to keep deploying"}]:[...gitConnectCommand?[{command:gitConnectCommand,when:"Automatically deploy changes on every push"}]:[],...verification?[]:[{command:`${packageName} curl ${deploymentJson.productionUrl??`https://${deployment.url}`}`,when:"Verify deployment, including when Deployment Protection is enabled"}],{command:withGlobalFlags(client,`inspect ${deployment.url}`),when:"Inspect deployment"},...isImplicitProduction?[{command:withGlobalFlags(client,`remove ${deployment.id} --yes`),when:"Only after the user approves: delete this deployment and its production alias"}]:[{command:singleFile?withGlobalFlags(client,`deploy ${quoteArg(singleFile)} --prod${singleFileTarget??""}`):withGlobalFlags(client,"deploy --prod"),when:"Promote to production"}]]}:deploymentJson;return client.stdout.write(`${JSON.stringify(payload,null,2)}
|
|
74
74
|
`),0}return anonymousLink&&(output_manager_default.print(`
|
|
75
75
|
`),log(`This deployment expires in ${(0,import_ms.default)(anonymousLink.expiresAt-Date.now(),{long:!0})}. Claim it to keep it live (don't share this link): ${import_chalk.default.cyan(anonymousLink.claimUrl)}`)),await printDeploymentStatus(client,deployment,deployStamp,noWait,postDeployGuidanceEnabled,void 0,gitConnectCommand,getProtectionForDeployment(protection,deployment).map(method=>method.name),verification)}function handleCreateDeployError(error,localConfig){if(error instanceof InvalidDomain)return output_manager_default.error(`The domain ${error.meta.domain} is not valid`),1;if(error instanceof DomainVerificationFailed)return output_manager_default.error(`The domain used as a suffix ${import_chalk.default.underline(error.meta.domain)} is not verified and can't be used as custom suffix.`),1;if(error instanceof DomainPermissionDenied)return output_manager_default.error(`You don't have permissions to access the domain used as a suffix ${import_chalk.default.underline(error.meta.domain)}.`),1;if(error instanceof SchemaValidationFailed){let niceError=(0,import_build_utils12.getPrettyError)(error.meta),fileName=localConfig[import_client2.fileNameSymbol]||"vercel.json";return niceError.message=`Invalid ${fileName} - ${niceError.message}`,output_manager_default.prettyError(niceError),1}if(error instanceof TooManyRequests)return output_manager_default.error(`Too many requests detected for ${error.meta.api} API. Try again in ${(0,import_ms.default)(error.meta.retryAfterMs,{long:!0})}.`),1;if(error instanceof DomainNotVerified)return output_manager_default.error(`The domain used as an alias ${import_chalk.default.underline(error.meta.domain)} is not verified yet. Please verify it.`),1;if(error instanceof BuildsRateLimited){output_manager_default.error(error.message);let cta=getErrorCta(error.meta);return output_manager_default.note(cta?`${cta.label}: ${link_default(cta.url)}`:"Upgrade your plan to increase your builds limit."),1}return error instanceof DeploymentNotFound||error instanceof NotDomainOwner||error instanceof DeploymentsRateLimited||error instanceof AliasDomainConfigured||error instanceof MissingBuildScript||error instanceof ConflictingFilePath||error instanceof ConflictingPathSegment||error instanceof ConflictingConfigFiles||error instanceof DeprecatedNowJson?(output_manager_default.error(error.message),1):error}function printDeploymentDryRun(client,summary,framework,asJson){let directories=getDirectoryDistribution(summary.files),largestFiles=[...summary.files].sort((a,b)=>b.size-a.size||a.path.localeCompare(b.path)).slice(0,10);if(asJson){client.stdout.write(`${JSON.stringify({framework,basePath:summary.basePath,fileCount:summary.fileCount,totalSize:summary.totalSize,ignoredCount:summary.ignoredCount,ignored:summary.ignored,...summary.warning?{warning:{code:"PREBUILT_FILEPATHMAP_IGNORED",message:summary.warning}}:{},directories,largestFiles,files:summary.files},null,2)}
|
|
76
76
|
`);return}let lines=[`${import_chalk.default.bold("Deployment Dry Run")}
|