@vercel/cli-support 65.8.0-snapshot-c4f338842961 → 65.8.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-3MWFJH54.js +8 -0
- package/dist/chunks/add-CJWCA3MM.js +8 -0
- package/dist/chunks/add-GLCVYEEN.js +8 -0
- package/dist/chunks/build-6RK6VECG.js +7 -0
- package/dist/chunks/{chunk-UF7QYHFU.js → chunk-2B7U6BB5.js} +1 -1
- package/dist/chunks/{chunk-UMMQR6WI.js → chunk-2OET5FWH.js} +1 -1
- package/dist/chunks/chunk-2PYFJXKS.js +14 -0
- package/dist/chunks/{chunk-FVIVFDCB.js → chunk-2QSNFVB6.js} +1 -1
- package/dist/chunks/{chunk-SLDWAIO3.js → chunk-33U57CNE.js} +1 -1
- package/dist/chunks/{chunk-N5CXIFE2.js → chunk-37DIJCWK.js} +1 -1
- package/dist/chunks/{chunk-HMWDOAWO.js → chunk-3AXMZRAB.js} +1 -1
- package/dist/chunks/{chunk-4JE57EBL.js → chunk-3DDEBTCC.js} +1 -1
- package/dist/chunks/{chunk-O7COT3YB.js → chunk-3KSTUMR6.js} +1 -1
- package/dist/chunks/{chunk-26QK3I2S.js → chunk-3LQ2ADXO.js} +1 -1
- package/dist/chunks/{chunk-QFUCWOCL.js → chunk-3RXEJWYM.js} +1 -1
- package/dist/chunks/{chunk-FAELJM4F.js → chunk-44XDCARR.js} +1 -1
- package/dist/chunks/{chunk-M7LUSXMG.js → chunk-45UDRX4C.js} +1 -1
- package/dist/chunks/{chunk-EAUDC24V.js → chunk-4ELZOAQH.js} +1 -1
- package/dist/chunks/{chunk-CCD7E322.js → chunk-4MP4HVBG.js} +1 -1
- package/dist/chunks/{chunk-64VMAYM6.js → chunk-5GOQ3FBV.js} +1 -1
- package/dist/chunks/{chunk-OGSTNJJ5.js → chunk-5MHRCRIN.js} +1 -1
- package/dist/chunks/{chunk-JAOYF7AW.js → chunk-5SMV2PPI.js} +1 -1
- package/dist/chunks/{chunk-QAYWROXQ.js → chunk-62FZFXPJ.js} +1 -1
- package/dist/chunks/{chunk-WGPYUXIC.js → chunk-63DO6KMD.js} +2 -2
- package/dist/chunks/{chunk-OKNDHNH6.js → chunk-6KCYUYUM.js} +1 -1
- package/dist/chunks/{chunk-IUMJJFEP.js → chunk-6V67VZJD.js} +1 -1
- package/dist/chunks/{chunk-JYK7ZIZW.js → chunk-753RQ6WV.js} +1 -1
- package/dist/chunks/{chunk-EMORYAJQ.js → chunk-7A5WO5KA.js} +1 -1
- package/dist/chunks/chunk-7BML2OR6.js +33 -0
- package/dist/chunks/{chunk-FNA4MIOH.js → chunk-7E6UJXLR.js} +1 -1
- package/dist/chunks/{chunk-ET5ARPPO.js → chunk-7EJ3BZ67.js} +1 -1
- package/dist/chunks/{chunk-VWHIWUGJ.js → chunk-7V2PXIVW.js} +1 -1
- package/dist/chunks/{chunk-RKWPLZJX.js → chunk-A67TLHES.js} +1 -1
- package/dist/chunks/{chunk-OTYF3ZZW.js → chunk-A6F3EE2O.js} +1 -1
- package/dist/chunks/{chunk-V6NMCQUQ.js → chunk-AEOG4E5G.js} +1 -1
- package/dist/chunks/{chunk-F4KY2TOK.js → chunk-AKOYIH3A.js} +1 -1
- package/dist/chunks/{chunk-RMW2FDXS.js → chunk-APNR444T.js} +1 -1
- package/dist/chunks/{chunk-OCRNZT7G.js → chunk-AQA4JVKA.js} +1 -1
- package/dist/chunks/{chunk-KHADRPBJ.js → chunk-B3ETPBO4.js} +1 -1
- package/dist/chunks/{chunk-CS6E5XNQ.js → chunk-BHJLCFQ4.js} +1 -1
- package/dist/chunks/{chunk-RPWGUQSE.js → chunk-BLFPDEXE.js} +1 -1
- package/dist/chunks/chunk-BULSRTQE.js +7 -0
- package/dist/chunks/{chunk-SXRZZDON.js → chunk-C4XT3PG4.js} +1 -1
- package/dist/chunks/chunk-CJHVHB2F.js +8 -0
- package/dist/chunks/{chunk-DPZFKHW3.js → chunk-CJLRNGWY.js} +1 -1
- package/dist/chunks/chunk-D3GYYGSS.js +9 -0
- package/dist/chunks/{chunk-GVPVWHFK.js → chunk-DBV6AB6T.js} +1 -1
- package/dist/chunks/{chunk-APWCVJAG.js → chunk-EGPVNTKP.js} +1 -1
- package/dist/chunks/{chunk-RVXE4MXS.js → chunk-EKB2DYCQ.js} +1 -1
- package/dist/chunks/{chunk-JW57JYRO.js → chunk-ELQBQ2O5.js} +1 -1
- package/dist/chunks/{chunk-2FHZYQPY.js → chunk-EZL4AJXH.js} +1 -1
- package/dist/chunks/{chunk-QHM6OK76.js → chunk-F76MNMH3.js} +1 -1
- package/dist/chunks/{chunk-4K3O7QWS.js → chunk-FNOCIKAU.js} +1 -1
- package/dist/chunks/{chunk-QNL22LAW.js → chunk-FQVSBXRY.js} +1 -1
- package/dist/chunks/{chunk-YCJHUYBJ.js → chunk-FXEMEIST.js} +1 -1
- package/dist/chunks/{chunk-4NDWIUKJ.js → chunk-G7X2TVUO.js} +1 -1
- package/dist/chunks/{chunk-JQTSETXH.js → chunk-GJB72ITS.js} +1 -1
- package/dist/chunks/{chunk-K3TCWYVX.js → chunk-GKUHMS3A.js} +1 -1
- package/dist/chunks/{chunk-H73G2ROF.js → chunk-GP2FXUFE.js} +1 -1
- package/dist/chunks/{chunk-UWMPVTXG.js → chunk-GP5MFCGO.js} +1 -1
- package/dist/chunks/{chunk-TZT3VYZ3.js → chunk-GZWYJT4C.js} +1 -1
- package/dist/chunks/{chunk-XCKUJZUG.js → chunk-H3SJJO6S.js} +1 -1
- package/dist/chunks/{chunk-GSXTCMKC.js → chunk-H4DE2OFO.js} +1 -1
- package/dist/chunks/{chunk-CZINAGH6.js → chunk-HA2ICIB5.js} +1 -1
- package/dist/chunks/{chunk-SUMMI76H.js → chunk-HNOZM6D4.js} +1 -1
- package/dist/chunks/{chunk-UJQ6PBRF.js → chunk-HTFQFHPR.js} +1 -1
- package/dist/chunks/{chunk-AUY363W7.js → chunk-IECNFRTK.js} +1 -1
- package/dist/chunks/{chunk-2EYHCJQO.js → chunk-IHNEF3BG.js} +1 -1
- package/dist/chunks/{chunk-BGWS5R5R.js → chunk-IHRM7L23.js} +1 -1
- package/dist/chunks/{chunk-3IRPFJ2G.js → chunk-INH6RXBH.js} +1 -1
- package/dist/chunks/chunk-IU6PHFPQ.js +7 -0
- package/dist/chunks/{chunk-C6IITJ5S.js → chunk-J52UJYOK.js} +1 -1
- package/dist/chunks/{chunk-7SAEZ4NC.js → chunk-JRBPVMQO.js} +1 -1
- package/dist/chunks/chunk-JUAHDOL6.js +7 -0
- package/dist/chunks/{chunk-FJ5CNQDD.js → chunk-JULKMXVP.js} +1 -1
- package/dist/chunks/{chunk-3H36RI7C.js → chunk-K2R3QPOC.js} +1 -1
- package/dist/chunks/{chunk-QGGJ5VVZ.js → chunk-KARAZGCO.js} +1 -1
- package/dist/chunks/chunk-KAUKCHQF.js +10 -0
- package/dist/chunks/{chunk-F34TG2V3.js → chunk-KDRCBWRY.js} +1 -1
- package/dist/chunks/{chunk-F22QLVTX.js → chunk-KIMIK4SG.js} +1 -1
- package/dist/chunks/{chunk-BPR5CLQM.js → chunk-KL6HNOFN.js} +1 -1
- package/dist/chunks/{chunk-LBTMGBAK.js → chunk-KUNFE2M6.js} +1 -1
- package/dist/chunks/{chunk-XSQVCDSD.js → chunk-LD42X7ZH.js} +1 -1
- package/dist/chunks/{chunk-RLKS5G6C.js → chunk-LM3YPF3K.js} +1 -1
- package/dist/chunks/{chunk-J4OVLASZ.js → chunk-LOEU4R4Z.js} +1 -1
- package/dist/chunks/{chunk-DSY2S2YT.js → chunk-M4TIOVOP.js} +1 -1
- package/dist/chunks/{chunk-55H6G46X.js → chunk-MCP63EVQ.js} +1 -1
- package/dist/chunks/{chunk-CNOJCW2I.js → chunk-MDWYXLDB.js} +2 -2
- package/dist/chunks/{chunk-J6L5MDTX.js → chunk-NAXFG37F.js} +1 -1
- package/dist/chunks/{chunk-VM3R6MAM.js → chunk-NDWGYZRT.js} +2 -2
- package/dist/chunks/{chunk-C7D43G3N.js → chunk-O7IYJGOR.js} +1 -1
- package/dist/chunks/chunk-OLAG7Y3P.js +10 -0
- package/dist/chunks/{chunk-5SIC5273.js → chunk-OTJNOMRV.js} +2 -2
- package/dist/chunks/{chunk-RGQZXLV4.js → chunk-OV7G6RIQ.js} +1 -1
- package/dist/chunks/{chunk-MBJT3CNI.js → chunk-P2HBUDGR.js} +1 -1
- package/dist/chunks/{chunk-OER4YAWM.js → chunk-PY5A73YH.js} +1 -1
- package/dist/chunks/{chunk-VAWZZK3Y.js → chunk-QIPUFI6P.js} +1 -1
- package/dist/chunks/{chunk-EPO7P734.js → chunk-QLW5DCM4.js} +1 -1
- package/dist/chunks/{chunk-RUXABBNV.js → chunk-QR7PY5JS.js} +1 -1
- package/dist/chunks/{chunk-AA3JM33J.js → chunk-QTCS2HDX.js} +1 -1
- package/dist/chunks/{chunk-RHFPMM4R.js → chunk-QZEZCUUZ.js} +7 -7
- package/dist/chunks/{chunk-SOGL2HOD.js → chunk-RIAOB3RF.js} +1 -1
- package/dist/chunks/{chunk-4BIGNS67.js → chunk-SBBD2Q5A.js} +1 -1
- package/dist/chunks/{chunk-A3RU52F4.js → chunk-SKLRHAGH.js} +1 -1
- package/dist/chunks/{chunk-SKSOCUDZ.js → chunk-SOCGBVML.js} +1 -1
- package/dist/chunks/{chunk-XTKGBVSF.js → chunk-T2SRGJPU.js} +1 -1
- package/dist/chunks/{chunk-7VTPAXDC.js → chunk-T3S63EA3.js} +1 -1
- package/dist/chunks/{chunk-SJA2LZ4O.js → chunk-TCEEQLD4.js} +1 -1
- package/dist/chunks/{chunk-2NMEPXG3.js → chunk-TK2ILW2O.js} +1 -1
- package/dist/chunks/{chunk-ID663OJ7.js → chunk-TOTTVS5P.js} +1 -1
- package/dist/chunks/{chunk-KPO6VDR2.js → chunk-TSKFDJ77.js} +1 -1
- package/dist/chunks/{chunk-FOQK3VTY.js → chunk-UAUVCOGS.js} +1 -1
- package/dist/chunks/chunk-UI2H2EIM.js +23 -0
- package/dist/chunks/{chunk-5RMIM4S2.js → chunk-UUBPAYTG.js} +1 -1
- package/dist/chunks/{chunk-SACGQMVQ.js → chunk-UUDE44NV.js} +1 -1
- package/dist/chunks/{chunk-5CZNUB7Y.js → chunk-V5A4EBV3.js} +1 -1
- package/dist/chunks/{chunk-KY7LDQRX.js → chunk-VBKFCR5W.js} +1 -1
- package/dist/chunks/{chunk-EQT2VHL2.js → chunk-WRC5CTUD.js} +1 -1
- package/dist/chunks/chunk-X65XZSWS.js +10 -0
- package/dist/chunks/{chunk-LOO42IMZ.js → chunk-XBOGVOV5.js} +1 -1
- package/dist/chunks/{chunk-MFW6IJIK.js → chunk-XK3W6Q5I.js} +1 -1
- package/dist/chunks/{chunk-UKJAWDQX.js → chunk-XUJA3RZD.js} +1 -1
- package/dist/chunks/{chunk-6GSI4VMJ.js → chunk-Y55DGB3L.js} +1 -1
- package/dist/chunks/{chunk-P6ZTEDX2.js → chunk-YEPB52XE.js} +1 -1
- package/dist/chunks/{chunk-7CNJTFWP.js → chunk-YHFZIUXF.js} +1 -1
- package/dist/chunks/{chunk-P2SVNHTJ.js → chunk-YIOT5B5Z.js} +1 -1
- package/dist/chunks/{chunk-OETX5QG4.js → chunk-YKNHA3RN.js} +1 -1
- package/dist/chunks/chunk-YPPDRKVC.js +7 -0
- package/dist/chunks/{chunk-75JI2SZX.js → chunk-YRK2BCTJ.js} +1 -1
- package/dist/chunks/{chunk-EDLTSAD2.js → chunk-YTZPQVGF.js} +1 -1
- package/dist/chunks/{chunk-D2XEF6G4.js → chunk-ZBJ44DRL.js} +1 -1
- package/dist/chunks/chunk-ZRJKGAUT.js +25 -0
- package/dist/chunks/clear-375VKVXY.js +8 -0
- package/dist/chunks/compile-vercel-config-LNRUSKTH.js +7 -0
- package/dist/chunks/config-GOYBATSI.js +8 -0
- package/dist/chunks/config-VAW454ZH.js +7 -0
- package/dist/chunks/connect-git-provider-7KRYVDFS.js +7 -0
- package/dist/chunks/delete-3SN6XFOW.js +10 -0
- package/dist/chunks/delete-W6BZHLGP.js +9 -0
- package/dist/chunks/detect-services-6L57MV5F.js +7 -0
- package/dist/chunks/disable-UUV5MYYH.js +7 -0
- package/dist/chunks/discard-Y6ZITZ2P.js +14 -0
- package/dist/chunks/edit-CVMUITFG.js +9 -0
- package/dist/chunks/edit-LLRI57RF.js +8 -0
- package/dist/chunks/enable-TFA6XWAA.js +7 -0
- package/dist/chunks/esm-4ZHGYTUV.js +7 -0
- package/dist/chunks/esm-7FVTQHRH.js +9 -0
- package/dist/chunks/esm-GTSUYLKG.js +7 -0
- package/dist/chunks/{esm-DFFBNKNU.js → esm-IBY43SSX.js} +1 -1
- package/dist/chunks/esm-LNIAU767.js +7 -0
- package/dist/chunks/esm-TEM4KPXZ.js +7 -0
- package/dist/chunks/esm-TLAM7FSK.js +9 -0
- package/dist/chunks/{exec-R5BDGSGP.js → exec-7LB36K52.js} +1 -1
- package/dist/chunks/{export-FV6WM43O.js → export-AI2O22W5.js} +1 -1
- package/dist/chunks/future-EZEU2CBY.js +7 -0
- package/dist/chunks/generate-cert-for-deploy-QP5BUOJL.js +7 -0
- package/dist/chunks/image-YLUF7SHR.js +7 -0
- package/dist/chunks/import-builders-ANLKHIYK.js +7 -0
- package/dist/chunks/{inspect-DLADA2SX.js → inspect-3NMNI7GY.js} +1 -1
- package/dist/chunks/inspect-3TRAN3SP.js +9 -0
- package/dist/chunks/{inspect-W3RVFJLM.js → inspect-4A67JORH.js} +1 -1
- package/dist/chunks/{inspect-ZUHCIZFW.js → inspect-OM5S5YQ2.js} +1 -1
- package/dist/chunks/inspect-VEUY4QJ2.js +13 -0
- package/dist/chunks/list-DJKKVFUL.js +12 -0
- package/dist/chunks/{list-6EZHEJGK.js → list-NEV4FBTY.js} +1 -1
- package/dist/chunks/{list-L4ZCXNAN.js → list-TUJ7HCQK.js} +1 -1
- package/dist/chunks/login-4HCFKDKL.js +7 -0
- package/dist/chunks/login-EPBJQDEK.js +9 -0
- package/dist/chunks/logs-Q7XXVFR3.js +7 -0
- package/dist/chunks/ls-3TKRCF4T.js +8 -0
- package/dist/chunks/{ls-IGICS6HZ.js → ls-COOTTCRW.js} +1 -1
- package/dist/chunks/{ls-EIGVX2LB.js → ls-CVO4MCX5.js} +1 -1
- package/dist/chunks/ls-LS5J5ERG.js +11 -0
- package/dist/chunks/ls-OQQTUQFN.js +8 -0
- package/dist/chunks/{ls-36K3OMRV.js → ls-OVM2DZYL.js} +1 -1
- package/dist/chunks/{ls-GSMTVAMC.js → ls-UY3KCDSF.js} +1 -1
- package/dist/chunks/mutate-I6QWCURL.js +9 -0
- package/dist/chunks/notifications-UKC5Z6AH.js +7 -0
- package/dist/chunks/open-CYATUDTT.js +7 -0
- package/dist/chunks/openapi-B7WSK7AU.js +7 -0
- package/dist/chunks/permissions-4ZYPHPOZ.js +7 -0
- package/dist/chunks/plugin-offer-4YTKDZGS.js +9 -0
- package/dist/chunks/prompt-missing-credentials-4OKJMYW5.js +7 -0
- package/dist/chunks/publish-N6E7VTRK.js +15 -0
- package/dist/chunks/pull-LPIT3XUR.js +7 -0
- package/dist/chunks/purchase-domain-if-available-IS6UDPJT.js +7 -0
- package/dist/chunks/push-ETLU6OCC.js +7 -0
- package/dist/chunks/{query-CUU7RRG6.js → query-NIMDIFLO.js} +1 -1
- package/dist/chunks/reauthenticate-TESIUM6U.js +7 -0
- package/dist/chunks/reorder-PQU2BQEE.js +10 -0
- package/dist/chunks/reply-RKDDYV5I.js +9 -0
- package/dist/chunks/resolve-ZF7BFXIW.js +12 -0
- package/dist/chunks/resolve-agent-team-QSIJ665W.js +7 -0
- package/dist/chunks/restore-U5A3BEFQ.js +16 -0
- package/dist/chunks/rm-7H5O3T7G.js +8 -0
- package/dist/chunks/rm-EPPMQEAV.js +8 -0
- package/dist/chunks/rm-FNMW2FPM.js +8 -0
- package/dist/chunks/rm-OZIA3DFM.js +8 -0
- package/dist/chunks/rm-W3VOR2ED.js +8 -0
- package/dist/chunks/routes-BLE5XZJE.js +7 -0
- package/dist/chunks/rule-inspect-YAVRRGAP.js +8 -0
- package/dist/chunks/{schema-5G57LHUD.js → schema-44U7GOQE.js} +1 -1
- package/dist/chunks/schema-6SAZ7T2S.js +14 -0
- package/dist/chunks/select-org-L5FJVL5Q.js +7 -0
- package/dist/chunks/set-3NQXDGJV.js +7 -0
- package/dist/chunks/setup-and-link-H36NRP3A.js +7 -0
- package/dist/chunks/{skills-4WEJZT7E.js → skills-XOH4Q7KK.js} +1 -1
- package/dist/chunks/tags-CRG27GFL.js +7 -0
- package/dist/chunks/{types-EK3C4EHF.js → types-6W3KAE2A.js} +1 -1
- package/dist/chunks/{update-IKZXIUYB.js → update-YLFMSPQF.js} +1 -1
- package/dist/commands/build/index.js +1 -1
- package/dist/commands/deploy/index.js +10 -6
- package/dist/commands/dev/index.js +2 -2
- package/dist/commands/env/index.js +5 -3
- package/dist/commands/link/index.js +1 -1
- package/dist/commands/list/index.js +1 -1
- package/dist/commands/project/index.js +1 -1
- package/dist/commands-account.js +1 -1
- package/dist/commands-ai.js +2 -2
- package/dist/commands-blob.js +1 -1
- package/dist/commands-core.js +6 -6
- package/dist/commands-deployments.js +6 -9
- package/dist/commands-flags.js +1 -1
- package/dist/commands-integrations.js +1 -1
- package/dist/commands-observability.js +2 -2
- package/dist/commands-routing.js +162 -153
- package/dist/help.js +1 -1
- package/dist/index.js +5 -5
- package/dist/internal-build.js +1 -1
- package/dist/package.json +57 -57
- package/dist/root-help-commands.mjs +1 -1
- package/dist/version.mjs +1 -1
- package/package.json +50 -50
- package/dist/chunks/add-6R2L3B6P.js +0 -8
- package/dist/chunks/add-O4YI4D5H.js +0 -8
- package/dist/chunks/add-W7MDOZMC.js +0 -8
- package/dist/chunks/build-UOKGUTFN.js +0 -7
- package/dist/chunks/chunk-2GHZGOWT.js +0 -7
- package/dist/chunks/chunk-3UD4MZMH.js +0 -8
- package/dist/chunks/chunk-67GZ5REA.js +0 -7
- package/dist/chunks/chunk-A2UZ2O7H.js +0 -7
- package/dist/chunks/chunk-BS32OUOC.js +0 -7
- package/dist/chunks/chunk-D3AHZ5LI.js +0 -7
- package/dist/chunks/chunk-DWOJP4ST.js +0 -27
- package/dist/chunks/chunk-FXF3NEJM.js +0 -14
- package/dist/chunks/chunk-I7U2XP4X.js +0 -10
- package/dist/chunks/chunk-IEZKTS2C.js +0 -10
- package/dist/chunks/chunk-IFXMG2WQ.js +0 -7
- package/dist/chunks/chunk-LCMNJNSQ.js +0 -9
- package/dist/chunks/chunk-MVGTMPMI.js +0 -23
- package/dist/chunks/chunk-RRDNKB2X.js +0 -7
- package/dist/chunks/chunk-YEOOTTBB.js +0 -33
- package/dist/chunks/clear-P2GBQ7OM.js +0 -8
- package/dist/chunks/compile-vercel-config-SPFLKB2T.js +0 -7
- package/dist/chunks/config-BI7WYZWB.js +0 -7
- package/dist/chunks/config-PR2PEOA7.js +0 -8
- package/dist/chunks/connect-git-provider-IQ7N2NPY.js +0 -7
- package/dist/chunks/delete-BZ3NLCTU.js +0 -9
- package/dist/chunks/delete-PUEGS2CP.js +0 -10
- package/dist/chunks/detect-services-HHGBWOND.js +0 -7
- package/dist/chunks/disable-UYLN3HPM.js +0 -7
- package/dist/chunks/discard-NMRN5PS4.js +0 -14
- package/dist/chunks/edit-KA7OSMJA.js +0 -9
- package/dist/chunks/edit-UQ4J2OQ7.js +0 -8
- package/dist/chunks/enable-7FM67BEJ.js +0 -7
- package/dist/chunks/esm-33752ISR.js +0 -7
- package/dist/chunks/esm-4JKEE7PC.js +0 -7
- package/dist/chunks/esm-BYG5BWYH.js +0 -9
- package/dist/chunks/esm-IF453UWS.js +0 -7
- package/dist/chunks/esm-LABWDJ72.js +0 -7
- package/dist/chunks/esm-TG37FXTU.js +0 -9
- package/dist/chunks/future-3WF7CSGN.js +0 -7
- package/dist/chunks/generate-cert-for-deploy-3OBDQ2R3.js +0 -7
- package/dist/chunks/image-SYY2IBOV.js +0 -7
- package/dist/chunks/import-builders-IJYZSEBY.js +0 -7
- package/dist/chunks/inspect-3NZE4UWJ.js +0 -13
- package/dist/chunks/inspect-J4WU7N2Z.js +0 -9
- package/dist/chunks/list-GLYYBTWD.js +0 -12
- package/dist/chunks/login-4OUKTVIZ.js +0 -7
- package/dist/chunks/login-E6L7CG3P.js +0 -9
- package/dist/chunks/logs-XHJPPHQ7.js +0 -7
- package/dist/chunks/ls-E75T2PHD.js +0 -8
- package/dist/chunks/ls-PA4OVQ43.js +0 -11
- package/dist/chunks/ls-RKILAXZ4.js +0 -8
- package/dist/chunks/mutate-4L6XPD7X.js +0 -9
- package/dist/chunks/notifications-IAKFNMTC.js +0 -7
- package/dist/chunks/open-62S7LSPT.js +0 -7
- package/dist/chunks/openapi-SO34WDBK.js +0 -7
- package/dist/chunks/permissions-T2KL34JP.js +0 -7
- package/dist/chunks/plugin-offer-HMNGWYIC.js +0 -9
- package/dist/chunks/prompt-missing-credentials-WTRJREZF.js +0 -7
- package/dist/chunks/publish-EFZO7IO2.js +0 -15
- package/dist/chunks/pull-GVFCZAHC.js +0 -7
- package/dist/chunks/purchase-domain-if-available-PJMKV5BI.js +0 -7
- package/dist/chunks/push-PHTW37LC.js +0 -7
- package/dist/chunks/reauthenticate-7P3C7ASY.js +0 -7
- package/dist/chunks/reorder-EBYXIVUZ.js +0 -10
- package/dist/chunks/reply-CBBADKE5.js +0 -9
- package/dist/chunks/resolve-KKFBXTIX.js +0 -12
- package/dist/chunks/resolve-agent-team-BBBIQWFZ.js +0 -7
- package/dist/chunks/restore-D4JUHPJ7.js +0 -16
- package/dist/chunks/rm-CRDLGD4Y.js +0 -8
- package/dist/chunks/rm-DSAXELZD.js +0 -8
- package/dist/chunks/rm-HXDTYZ3G.js +0 -8
- package/dist/chunks/rm-TDI6GXCE.js +0 -8
- package/dist/chunks/rm-XAUKTN2C.js +0 -8
- package/dist/chunks/routes-RWILS4LA.js +0 -7
- package/dist/chunks/rule-inspect-RKUBC35D.js +0 -8
- package/dist/chunks/schema-WSHKYL5H.js +0 -14
- package/dist/chunks/select-org-OKHCDXNF.js +0 -7
- package/dist/chunks/set-PBM7ZMZ7.js +0 -7
- package/dist/chunks/setup-and-link-PVMEKIYD.js +0 -7
- package/dist/chunks/tags-WUAMDEUU.js +0 -7
|
@@ -4,9 +4,9 @@ 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{require_dist as require_dist3}from"../../chunks/chunk-JELLVPCM.js";import{readStandardInput}from"../../chunks/chunk-PSOVLGHP.js";import"../../chunks/chunk-XOETL6DB.js";import{ENV_VISIBILITY_DEPRECATION_MESSAGE,SENSITIVE_ENV_VALUE_PLACEHOLDER,formatVisibilityLabel,getApiPublicPrefix,getEnvKeyWarnings,getFrameworkPublicPrefix,getLocalSecretFallbackMessage,getLocalSvelteKitPublicPrefixes,getPublicPrefix,getPublicPrefixSecretVisibilityError,getUnavailableSecretValuesMessage,isFlagsSecretNeedingSplit,isSecretEnvVar,looksLikeSecret,looksLikeSecretValue,normalizeStdinEnvValue,pull,removePublicPrefix,resolveEnvVarTypeOption,resolveEnvVarVisibility,shouldConfirmRotationBeforeDelete,validateEnvValue}from"../../chunks/chunk-LBTMGBAK.js";import{getCustomEnvironments}from"../../chunks/chunk-F7AVGV4Y.js";import{getEnvRecords,pullEnvRecords}from"../../chunks/chunk-OER4YAWM.js";import"../../chunks/chunk-6Y2ZL5XJ.js";import{suggestNextCommands}from"../../chunks/chunk-MFW6IJIK.js";import{parseTarget}from"../../chunks/chunk-EQT2VHL2.js";import"../../chunks/chunk-25565AGS.js";import{formatEnvironment}from"../../chunks/chunk-QHM6OK76.js";import{STANDARD_ENVIRONMENTS}from"../../chunks/chunk-7YKFF6CE.js";import{resolveProjectContext}from"../../chunks/chunk-FJ5CNQDD.js";import{formatProject}from"../../chunks/chunk-75JI2SZX.js";import{isGuidanceEnabled}from"../../chunks/chunk-TAAWMNNL.js";import"../../chunks/chunk-2EYHCJQO.js";import{ellipsis}from"../../chunks/chunk-F4KY2TOK.js";import"../../chunks/chunk-ID663OJ7.js";import"../../chunks/chunk-VM3R6MAM.js";import"../../chunks/chunk-VAWZZK3Y.js";import"../../chunks/chunk-OKNDHNH6.js";import"../../chunks/chunk-PVASGBEF.js";import"../../chunks/chunk-D2XEF6G4.js";import{CHECKBOX_INSTRUCTIONS}from"../../chunks/chunk-OFDTADPQ.js";import{require_execa}from"../../chunks/chunk-T34C75TI.js";import"../../chunks/chunk-GD7AV7BO.js";import{validateLsArgs}from"../../chunks/chunk-XTKGBVSF.js";import{getInvalidSubcommand}from"../../chunks/chunk-TG2RCYTH.js";import{formatTable}from"../../chunks/chunk-FAELJM4F.js";import{stamp_default}from"../../chunks/chunk-A2RZZQEP.js";import"../../chunks/chunk-5SIC5273.js";import"../../chunks/chunk-FVIVFDCB.js";import"../../chunks/chunk-Q7D7RGXM.js";import{getSubcommand}from"../../chunks/chunk-ETV3C2CV.js";import"../../chunks/chunk-P6ZTEDX2.js";import{getCommandAliases}from"../../chunks/chunk-FXF3NEJM.js";import"../../chunks/chunk-O7COT3YB.js";import"../../chunks/chunk-2FHZYQPY.js";import"../../chunks/chunk-M7LUSXMG.js";import"../../chunks/chunk-C6IITJ5S.js";import"../../chunks/chunk-TZT3VYZ3.js";import"../../chunks/chunk-HMWDOAWO.js";import"../../chunks/chunk-QNL22LAW.js";import"../../chunks/chunk-UWMPVTXG.js";import"../../chunks/chunk-5CZNUB7Y.js";import"../../chunks/chunk-AUY363W7.js";import"../../chunks/chunk-OTYF3ZZW.js";import"../../chunks/chunk-3H36RI7C.js";import"../../chunks/chunk-BGWS5R5R.js";import"../../chunks/chunk-UJQ6PBRF.js";import"../../chunks/chunk-LFOWP74R.js";import"../../chunks/chunk-GVPVWHFK.js";import"../../chunks/chunk-N5CXIFE2.js";import"../../chunks/chunk-FNA4MIOH.js";import"../../chunks/chunk-JALVF3C2.js";import{addSubcommand,envCommand,envTargetChoices,getEnvTargetPlaceholder,isValidEnvTarget,listSubcommand,parseEnvTargetArg,pullSubcommand,removeSubcommand,resolveEnvTargetInput,runSubcommand,updateSubcommand}from"../../chunks/chunk-VWHIWUGJ.js";import{printError}from"../../chunks/chunk-LCMNJNSQ.js";import{help}from"../../chunks/chunk-SLDWAIO3.js";import"../../chunks/chunk-67GZ5REA.js";import"../../chunks/chunk-BS32OUOC.js";import{param}from"../../chunks/chunk-3G3FQYMW.js";import"../../chunks/chunk-IFXMG2WQ.js";import{TelemetryClient}from"../../chunks/chunk-4BIGNS67.js";import"../../chunks/chunk-2EYYB6YN.js";import"../../chunks/chunk-NWGBDBZI.js";import{buildCommandWithYes,buildEnvAddCommandWithPreservedArgs,buildEnvRmCommandWithPreservedArgs,buildEnvUpdateCommandWithPreservedArgs,getLinkSuggestionArgs,getPreservedArgsForEnvAdd,getPreservedArgsForEnvRm,getPreservedArgsForEnvUpdate,outputActionRequired,outputAgentError,redactEnvValueArgs,withGlobalFlags}from"../../chunks/chunk-I7U2XP4X.js";import"../../chunks/chunk-EPO7P734.js";import{getLinkFromDir,getVercelDirectory}from"../../chunks/chunk-RHFPMM4R.js";import{printAlignedLabel}from"../../chunks/chunk-26QK3I2S.js";import"../../chunks/chunk-55H6G46X.js";import"../../chunks/chunk-4NTBYNFR.js";import{parseArguments}from"../../chunks/chunk-F22QLVTX.js";import{getTeamByIdOrSlug,quoteArg}from"../../chunks/chunk-F53OKXYI.js";import{validateJsonOutput}from"../../chunks/chunk-7SAEZ4NC.js";import"../../chunks/chunk-LUX4PBJL.js";import"../../chunks/chunk-OPORM35X.js";import{require_ms}from"../../chunks/chunk-MXTC4ZAQ.js";import"../../chunks/chunk-OCR5CRTH.js";import"../../chunks/chunk-4SAVH3H7.js";import{isAPIError}from"../../chunks/chunk-YCJHUYBJ.js";import{getCommandName,getCommandNamePlain,require_lib}from"../../chunks/chunk-JESNVRVR.js";import{emoji,output_manager_default,prependEmoji,require_build_utils}from"../../chunks/chunk-DWOJP4ST.js";import"../../chunks/chunk-BLUPZPAS.js";import{require_dist}from"../../chunks/chunk-RM3ZDRYE.js";import"../../chunks/chunk-D3AHZ5LI.js";import"../../chunks/chunk-2GHZGOWT.js";import"../../chunks/chunk-YHPPP3SF.js";import"../../chunks/chunk-OO572JUC.js";import{require_dist as require_dist2}from"../../chunks/chunk-PUKYAALC.js";import{getFlagsSpecification,getGlobalFlagsFromArgs}from"../../chunks/chunk-A2UZ2O7H.js";import"../../chunks/chunk-2BKALEOP.js";import{require_source}from"../../chunks/chunk-NB2WLB3J.js";import"../../chunks/chunk-ISWW3DKF.js";import"../../chunks/chunk-BRQUZ5NC.js";import"../../chunks/chunk-5O7CRJE5.js";import"../../chunks/chunk-U3J7VS56.js";import"../../chunks/chunk-7EJQLVWX.js";import"../../chunks/chunk-SCV7XEEO.js";import{__toESM}from"../../chunks/chunk-BZENIQ7N.js";var import_chalk=__toESM(require_source(),1);var import_constants=__toESM(require_dist2(),1);async function addEnvRecord(client,projectId,upsert,type,key,value,targets,gitBranch,visibility){let actionWord=upsert?"Overriding":"Adding";output_manager_default.debug(`${actionWord} ${type} Environment Variable ${key} to ${targets.length} targets`);let target=[],customEnvironmentIds=[];for(let t of targets)(import_constants.PROJECT_ENV_TARGET.includes(t)?target:customEnvironmentIds).push(t);let body={type,key,value,target,customEnvironmentIds:customEnvironmentIds.length>0?customEnvironmentIds:void 0,gitBranch:gitBranch||void 0,...visibility!==void 0?{visibility}:{}},args=upsert?`?upsert=${upsert}`:"",url=`/v10/projects/${projectId}/env${args}`;await client.fetch(url,{method:"POST",body})}var import_error_utils=__toESM(require_dist(),1),knownErrorsCodes=new Set(["BAD_REQUEST","ENV_ALREADY_EXISTS","ENV_CONFLICT","EXISTING_KEY_AND_TARGET","FORBIDDEN","ID_NOT_FOUND","INVALID_KEY","INVALID_VALUE","KEY_INVALID_CHARACTERS","KEY_INVALID_LENGTH","KEY_RESERVED","RESERVED_ENV_VARIABLE","MAX_ENVS_EXCEEDED","MISSING_ID","MISSING_KEY","MISSING_TARGET","MISSING_VALUE","NOT_AUTHORIZED","NOT_DECRYPTABLE","SYSTEM_ENV_WITH_VALUE","TEAM_NOT_FOUND","TOO_MANY_IDS","TOO_MANY_KEYS","UNKNOWN_ERROR","VALUE_INVALID_LENGTH","VALUE_INVALID_TYPE"]);function isKnownError(error){let code=(0,import_error_utils.isErrnoException)(error)?error.code:null;return code?knownErrorsCodes.has(code.toUpperCase()):!1}var EnvAddTelemetryClient=class extends TelemetryClient{trackCliArgumentName(name){name&&this.trackCliArgument({arg:"name",value:this.redactedValue})}trackCliArgumentEnvironment(environment){if(environment){let allStandard=environment.split(",").map(t=>t.trim()).every(t=>STANDARD_ENVIRONMENTS.includes(t));this.trackCliArgument({arg:"environment",value:allStandard?environment:this.redactedValue})}}trackCliArgumentGitBranch(gitBranch){gitBranch&&this.trackCliArgument({arg:"git-branch",value:this.redactedValue})}trackCliOptionGitBranch(gitBranch){gitBranch&&this.trackCliOption({option:"git-branch",value:this.redactedValue})}trackCliOptionEnvironment(environments){if(environments&&environments.length>0){let allStandard=environments.flatMap(environment=>environment.split(",")).map(t=>t.trim()).every(t=>STANDARD_ENVIRONMENTS.includes(t));this.trackCliOption({option:"environment",value:allStandard?environments.join(","):this.redactedValue})}}trackCliOptionValue(value){value&&this.trackCliOption({option:"value",value:this.redactedValue})}trackCliOptionVisibility(visibility){if(visibility){let validVisibilities=["config","secret"];this.trackCliOption({option:"visibility",value:validVisibilities.includes(visibility)?visibility:this.redactedValue})}}trackCliOptionType(type){if(type){let validTypes=["config","secret"];this.trackCliOption({option:"type",value:validTypes.includes(type)?type:this.redactedValue})}}trackCliFlagSensitive(sensitive){sensitive&&this.trackCliFlag("sensitive")}trackCliFlagNoSensitive(noSensitive){noSensitive&&this.trackCliFlag("no-sensitive")}trackCliFlagForce(force){force&&this.trackCliFlag("force")}trackCliFlagGuidance(guidance){guidance&&this.trackCliFlag("guidance")}trackCliFlagYes(yes){yes&&this.trackCliFlag("yes")}};import{determineAgent}from"@vercel/detect-agent";function includesDevelopment(targets){return targets.length===0||targets.includes("development")}function getProductionSecretPolicyErrorKind(message){return/production secrets?.*different value|different value.*production secrets?/i.test(message)?"different-values":/production secrets?.*(?:own environment group|separat)|(?:own environment group|separat).*production secrets?/i.test(message)?"separate-environments":null}function getProductionSecretPolicyRecovery(kind){return kind==="different-values"?"Use different Secret values for Production and non-Production.":"Create separate Production and non-Production variables with different values."}function getSecretStorageChoice(targets,recommendedReason){let availability=includesDevelopment(targets)?"hidden in the dashboard; Development values can be pulled":"hidden in the dashboard and unavailable to pulls",recommendation=recommendedReason?`; recommended ${recommendedReason}`:"";return`Secret (${availability}${recommendation})`}function getDefaultSecretStorageGuidance(targets){return includesDevelopment(targets)?"Stored as Secret by default. This value is hidden in the dashboard; Development values can be pulled. Use `--type config` for other values you need to read later.":"Stored as Secret by default. This value is hidden in the dashboard and unavailable to pulls; use `--type config` for values you need to read later."}function looksLikeCredentialName(key,publicPrefix=getPublicPrefix(key)){return looksLikeSecret(publicPrefix?key.slice(publicPrefix.length):key)}function filterEnvChoicesForSensitivity(choices,opts){return opts.policyOn?choices.filter(c=>c.value==="development"):choices}function getTargetCompatibilityError(envTargets,isSensitive,policyOn){let hasSensitiveCapable=envTargets.some(t=>t!=="development");return!isSensitive&&policyOn&&hasSensitiveCapable?`Your team requires sensitive Environment Variables for Production and Preview. To add a non-sensitive value, add it to the Development Environment only. Run ${getCommandName("env add --environment development")} instead.`:null}function resolveFinalType(envTargets,isSensitive,opts){return envTargets.includes("development")&&!isSensitive||opts.forceEncrypted&&!opts.policyOn?"encrypted":isSensitive||opts.forceSensitive||opts.policyOn?"sensitive":"encrypted"}function fillEnvAddTemplate(template,opts){let targetPlaceholder=getEnvTargetPlaceholder();return template.replace(/<name>/g,opts.envName?quoteArg(opts.envName):"<name>").split(targetPlaceholder).join(opts.envTargetArg?quoteArg(opts.envTargetArg):targetPlaceholder).replace(/<BRANCH>/g,opts.envGitBranch?quoteArg(opts.envGitBranch):"<BRANCH>").replace(/<value>/g,"<value>")}function multiTargetSuggestion(argv,envName,targets,addNoSensitive){let flag=addNoSensitive?" --no-sensitive":"";return{command:buildEnvAddCommandWithPreservedArgs(argv,`env add ${envName} --environment ${targets.join(",")} --value "<value>"${flag} --yes`),when:addNoSensitive?"Add one non-sensitive variable to all listed environments":"Add one variable to multiple environments"}}function filterSensitiveMultiTargetSuggestionTargets(targets,_opts){return targets}function projectLabel(link){return`${link.org.slug}/${link.project.name}`}function formatEnvironmentTarget(target,customEnvironments){let standardTarget=envTargetChoices.find(choice=>choice.value===target);return standardTarget?standardTarget.name:customEnvironments.find(env=>env.id===target||env.slug===target)?.slug??target}function formatEnvironmentTargets(envTargets,customEnvironments){return envTargets.map(target=>formatEnvironmentTarget(target,customEnvironments)).join(", ")}function printEnvAddResult(link,envName,envTargets,envGitBranch,customEnvironments,finalType,force,visibility){output_manager_default.print(`
|
|
7
|
+
import{require_dist as require_dist3}from"../../chunks/chunk-JELLVPCM.js";import{readStandardInput}from"../../chunks/chunk-PSOVLGHP.js";import"../../chunks/chunk-XOETL6DB.js";import{ENV_VISIBILITY_DEPRECATION_MESSAGE,SENSITIVE_ENV_VALUE_PLACEHOLDER,formatVisibilityLabel,getApiPublicPrefix,getEnvKeyWarnings,getFrameworkPublicPrefix,getLocalSecretFallbackMessage,getLocalSvelteKitPublicPrefixes,getPublicPrefix,getPublicPrefixSecretVisibilityError,getUnavailableSecretValuesMessage,isFlagsSecretNeedingSplit,isSecretEnvVar,looksLikeSecret,looksLikeSecretValue,normalizeStdinEnvValue,pull,removePublicPrefix,resolveEnvVarTypeOption,resolveEnvVarVisibility,shouldConfirmRotationBeforeDelete,validateEnvValue}from"../../chunks/chunk-KUNFE2M6.js";import{getCustomEnvironments}from"../../chunks/chunk-F7AVGV4Y.js";import{getEnvRecords,pullEnvRecords}from"../../chunks/chunk-PY5A73YH.js";import"../../chunks/chunk-6Y2ZL5XJ.js";import{suggestNextCommands}from"../../chunks/chunk-XK3W6Q5I.js";import{parseTarget}from"../../chunks/chunk-WRC5CTUD.js";import"../../chunks/chunk-25565AGS.js";import{formatEnvironment}from"../../chunks/chunk-F76MNMH3.js";import{STANDARD_ENVIRONMENTS}from"../../chunks/chunk-7YKFF6CE.js";import{resolveProjectContext}from"../../chunks/chunk-JULKMXVP.js";import{formatProject}from"../../chunks/chunk-YRK2BCTJ.js";import{isGuidanceEnabled}from"../../chunks/chunk-TAAWMNNL.js";import"../../chunks/chunk-IHNEF3BG.js";import{ellipsis}from"../../chunks/chunk-AKOYIH3A.js";import"../../chunks/chunk-TOTTVS5P.js";import"../../chunks/chunk-NDWGYZRT.js";import"../../chunks/chunk-QIPUFI6P.js";import"../../chunks/chunk-6KCYUYUM.js";import"../../chunks/chunk-PVASGBEF.js";import"../../chunks/chunk-ZBJ44DRL.js";import{CHECKBOX_INSTRUCTIONS}from"../../chunks/chunk-OFDTADPQ.js";import{require_execa}from"../../chunks/chunk-T34C75TI.js";import"../../chunks/chunk-GD7AV7BO.js";import{validateLsArgs}from"../../chunks/chunk-T2SRGJPU.js";import{getInvalidSubcommand}from"../../chunks/chunk-TG2RCYTH.js";import{formatTable}from"../../chunks/chunk-44XDCARR.js";import{stamp_default}from"../../chunks/chunk-A2RZZQEP.js";import"../../chunks/chunk-OTJNOMRV.js";import"../../chunks/chunk-2QSNFVB6.js";import"../../chunks/chunk-Q7D7RGXM.js";import{getSubcommand}from"../../chunks/chunk-ETV3C2CV.js";import"../../chunks/chunk-YEPB52XE.js";import{getCommandAliases}from"../../chunks/chunk-2PYFJXKS.js";import"../../chunks/chunk-3KSTUMR6.js";import"../../chunks/chunk-EZL4AJXH.js";import"../../chunks/chunk-45UDRX4C.js";import"../../chunks/chunk-J52UJYOK.js";import"../../chunks/chunk-GZWYJT4C.js";import"../../chunks/chunk-3AXMZRAB.js";import"../../chunks/chunk-FQVSBXRY.js";import"../../chunks/chunk-GP5MFCGO.js";import"../../chunks/chunk-V5A4EBV3.js";import"../../chunks/chunk-IECNFRTK.js";import"../../chunks/chunk-A6F3EE2O.js";import"../../chunks/chunk-K2R3QPOC.js";import"../../chunks/chunk-IHRM7L23.js";import"../../chunks/chunk-HTFQFHPR.js";import"../../chunks/chunk-LFOWP74R.js";import"../../chunks/chunk-DBV6AB6T.js";import"../../chunks/chunk-37DIJCWK.js";import"../../chunks/chunk-7E6UJXLR.js";import"../../chunks/chunk-JALVF3C2.js";import{addSubcommand,envCommand,envTargetChoices,getEnvTargetPlaceholder,isValidEnvTarget,listSubcommand,parseEnvTargetArg,pullSubcommand,removeSubcommand,resolveEnvTargetInput,runSubcommand,updateSubcommand}from"../../chunks/chunk-7V2PXIVW.js";import{printError}from"../../chunks/chunk-D3GYYGSS.js";import{help}from"../../chunks/chunk-33U57CNE.js";import{param}from"../../chunks/chunk-3G3FQYMW.js";import"../../chunks/chunk-IU6PHFPQ.js";import{TelemetryClient}from"../../chunks/chunk-SBBD2Q5A.js";import"../../chunks/chunk-2EYYB6YN.js";import"../../chunks/chunk-NWGBDBZI.js";import{buildCommandWithYes,buildEnvAddCommandWithPreservedArgs,buildEnvRmCommandWithPreservedArgs,buildEnvUpdateCommandWithPreservedArgs,getLinkSuggestionArgs,getPreservedArgsForEnvAdd,getPreservedArgsForEnvRm,getPreservedArgsForEnvUpdate,outputActionRequired,outputAgentError,redactEnvValueArgs,withGlobalFlags}from"../../chunks/chunk-KAUKCHQF.js";import"../../chunks/chunk-QLW5DCM4.js";import{getLinkFromDir,getVercelDirectory}from"../../chunks/chunk-QZEZCUUZ.js";import{printAlignedLabel}from"../../chunks/chunk-3LQ2ADXO.js";import"../../chunks/chunk-MCP63EVQ.js";import"../../chunks/chunk-4NTBYNFR.js";import{parseArguments}from"../../chunks/chunk-KIMIK4SG.js";import{getTeamByIdOrSlug,quoteArg}from"../../chunks/chunk-F53OKXYI.js";import{validateJsonOutput}from"../../chunks/chunk-JRBPVMQO.js";import"../../chunks/chunk-LUX4PBJL.js";import"../../chunks/chunk-OPORM35X.js";import{require_ms}from"../../chunks/chunk-MXTC4ZAQ.js";import"../../chunks/chunk-OCR5CRTH.js";import"../../chunks/chunk-4SAVH3H7.js";import{isAPIError}from"../../chunks/chunk-FXEMEIST.js";import{getCommandName,getCommandNamePlain,require_lib}from"../../chunks/chunk-JESNVRVR.js";import{emoji,output_manager_default,prependEmoji,require_build_utils}from"../../chunks/chunk-ZRJKGAUT.js";import"../../chunks/chunk-BLUPZPAS.js";import{require_dist}from"../../chunks/chunk-RM3ZDRYE.js";import"../../chunks/chunk-YHPPP3SF.js";import"../../chunks/chunk-OO572JUC.js";import{require_dist as require_dist2}from"../../chunks/chunk-PUKYAALC.js";import{getFlagsSpecification,getGlobalFlagsFromArgs}from"../../chunks/chunk-YPPDRKVC.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-5O7CRJE5.js";import"../../chunks/chunk-U3J7VS56.js";import"../../chunks/chunk-7EJQLVWX.js";import"../../chunks/chunk-SCV7XEEO.js";import{__toESM}from"../../chunks/chunk-BZENIQ7N.js";var import_chalk=__toESM(require_source(),1);var import_constants=__toESM(require_dist2(),1);async function addEnvRecord(client,projectId,upsert,type,key,value,targets,gitBranch,visibility){let actionWord=upsert?"Overriding":"Adding";output_manager_default.debug(`${actionWord} ${type} Environment Variable ${key} to ${targets.length} targets`);let target=[],customEnvironmentIds=[];for(let t of targets)(import_constants.PROJECT_ENV_TARGET.includes(t)?target:customEnvironmentIds).push(t);let body={type,key,value,target,customEnvironmentIds:customEnvironmentIds.length>0?customEnvironmentIds:void 0,gitBranch:gitBranch||void 0,...visibility!==void 0?{visibility}:{}},args=upsert?`?upsert=${upsert}`:"",url=`/v10/projects/${projectId}/env${args}`;await client.fetch(url,{method:"POST",body})}var import_error_utils=__toESM(require_dist(),1),knownErrorsCodes=new Set(["BAD_REQUEST","ENV_ALREADY_EXISTS","ENV_CONFLICT","EXISTING_KEY_AND_TARGET","FORBIDDEN","ID_NOT_FOUND","INVALID_KEY","INVALID_VALUE","KEY_INVALID_CHARACTERS","KEY_INVALID_LENGTH","KEY_RESERVED","RESERVED_ENV_VARIABLE","MAX_ENVS_EXCEEDED","MISSING_ID","MISSING_KEY","MISSING_TARGET","MISSING_VALUE","NOT_AUTHORIZED","NOT_DECRYPTABLE","SYSTEM_ENV_WITH_VALUE","TEAM_NOT_FOUND","TOO_MANY_IDS","TOO_MANY_KEYS","UNKNOWN_ERROR","VALUE_INVALID_LENGTH","VALUE_INVALID_TYPE"]);function isKnownError(error){let code=(0,import_error_utils.isErrnoException)(error)?error.code:null;return code?knownErrorsCodes.has(code.toUpperCase()):!1}var EnvAddTelemetryClient=class extends TelemetryClient{trackCliArgumentName(name){name&&this.trackCliArgument({arg:"name",value:this.redactedValue})}trackCliArgumentEnvironment(environment){if(environment){let allStandard=environment.split(",").map(t=>t.trim()).every(t=>STANDARD_ENVIRONMENTS.includes(t));this.trackCliArgument({arg:"environment",value:allStandard?environment:this.redactedValue})}}trackCliArgumentGitBranch(gitBranch){gitBranch&&this.trackCliArgument({arg:"git-branch",value:this.redactedValue})}trackCliOptionGitBranch(gitBranch){gitBranch&&this.trackCliOption({option:"git-branch",value:this.redactedValue})}trackCliOptionEnvironment(environments){if(environments&&environments.length>0){let allStandard=environments.flatMap(environment=>environment.split(",")).map(t=>t.trim()).every(t=>STANDARD_ENVIRONMENTS.includes(t));this.trackCliOption({option:"environment",value:allStandard?environments.join(","):this.redactedValue})}}trackCliOptionValue(value){value&&this.trackCliOption({option:"value",value:this.redactedValue})}trackCliOptionVisibility(visibility){if(visibility){let validVisibilities=["config","secret"];this.trackCliOption({option:"visibility",value:validVisibilities.includes(visibility)?visibility:this.redactedValue})}}trackCliOptionType(type){if(type){let validTypes=["config","secret"];this.trackCliOption({option:"type",value:validTypes.includes(type)?type:this.redactedValue})}}trackCliFlagSensitive(sensitive){sensitive&&this.trackCliFlag("sensitive")}trackCliFlagNoSensitive(noSensitive){noSensitive&&this.trackCliFlag("no-sensitive")}trackCliFlagForce(force){force&&this.trackCliFlag("force")}trackCliFlagGuidance(guidance){guidance&&this.trackCliFlag("guidance")}trackCliFlagYes(yes){yes&&this.trackCliFlag("yes")}};import{determineAgent}from"@vercel/detect-agent";function includesDevelopment(targets){return targets.length===0||targets.includes("development")}function getProductionSecretPolicyErrorKind(message){return/production secrets?.*different value|different value.*production secrets?/i.test(message)?"different-values":/production secrets?.*(?:own environment group|separat)|(?:own environment group|separat).*production secrets?/i.test(message)?"separate-environments":null}function getProductionSecretPolicyRecovery(kind){return kind==="different-values"?"Use different Secret values for Production and non-Production.":"Create separate Production and non-Production variables with different values."}function getSecretStorageChoice(targets,recommendedReason){let availability=includesDevelopment(targets)?"hidden in the dashboard; Development values can be pulled":"hidden in the dashboard and unavailable to pulls",recommendation=recommendedReason?`; recommended ${recommendedReason}`:"";return`Secret (${availability}${recommendation})`}function getDefaultSecretStorageGuidance(targets){return includesDevelopment(targets)?"Stored as Secret by default. This value is hidden in the dashboard; Development values can be pulled. Use `--type config` for other values you need to read later.":"Stored as Secret by default. This value is hidden in the dashboard and unavailable to pulls; use `--type config` for values you need to read later."}function looksLikeCredentialName(key,publicPrefix=getPublicPrefix(key)){return looksLikeSecret(publicPrefix?key.slice(publicPrefix.length):key)}function filterEnvChoicesForSensitivity(choices,opts){return opts.policyOn?choices.filter(c=>c.value==="development"):choices}function getTargetCompatibilityError(envTargets,isSensitive,policyOn){let hasSensitiveCapable=envTargets.some(t=>t!=="development");return!isSensitive&&policyOn&&hasSensitiveCapable?`Your team requires sensitive Environment Variables for Production and Preview. To add a non-sensitive value, add it to the Development Environment only. Run ${getCommandName("env add --environment development")} instead.`:null}function resolveFinalType(envTargets,isSensitive,opts){return envTargets.includes("development")&&!isSensitive||opts.forceEncrypted&&!opts.policyOn?"encrypted":isSensitive||opts.forceSensitive||opts.policyOn?"sensitive":"encrypted"}function fillEnvAddTemplate(template,opts){let targetPlaceholder=getEnvTargetPlaceholder();return template.replace(/<name>/g,opts.envName?quoteArg(opts.envName):"<name>").split(targetPlaceholder).join(opts.envTargetArg?quoteArg(opts.envTargetArg):targetPlaceholder).replace(/<BRANCH>/g,opts.envGitBranch?quoteArg(opts.envGitBranch):"<BRANCH>").replace(/<value>/g,"<value>")}function multiTargetSuggestion(argv,envName,targets,addNoSensitive){let flag=addNoSensitive?" --no-sensitive":"";return{command:buildEnvAddCommandWithPreservedArgs(argv,`env add ${envName} --environment ${targets.join(",")} --value "<value>"${flag} --yes`),when:addNoSensitive?"Add one non-sensitive variable to all listed environments":"Add one variable to multiple environments"}}function filterSensitiveMultiTargetSuggestionTargets(targets,_opts){return targets}function projectLabel(link){return`${link.org.slug}/${link.project.name}`}function formatEnvironmentTarget(target,customEnvironments){let standardTarget=envTargetChoices.find(choice=>choice.value===target);return standardTarget?standardTarget.name:customEnvironments.find(env=>env.id===target||env.slug===target)?.slug??target}function formatEnvironmentTargets(envTargets,customEnvironments){return envTargets.map(target=>formatEnvironmentTarget(target,customEnvironments)).join(", ")}function printEnvAddResult(link,envName,envTargets,envGitBranch,customEnvironments,finalType,force,visibility){output_manager_default.print(`
|
|
8
8
|
`),printAlignedLabel(force?"Overrode":"Added",envName,{gutter:"\u2713"}),printAlignedLabel("Project",projectLabel(link)),printAlignedLabel("Environments",formatEnvironmentTargets(envTargets,customEnvironments)),envGitBranch&&printAlignedLabel("Branch",envGitBranch);let visibilityLabel=formatVisibilityLabel(visibility,finalType);visibilityLabel&&printAlignedLabel("Type",visibilityLabel)}function printEnvAddWarning(message){output_manager_default.print(`${import_chalk.default.yellow("!")} ${message}
|
|
9
|
-
`)}function promptEnvValue(client,opts){return client.input.text({message:"Value?",...opts.isSensitive?{transformer:value=>"*".repeat(value.length)}:{}})}function buildHumanEnvAddCommand(argv,commandTemplate){let globalFlags=getGlobalFlagsFromArgs(argv.slice(2),{preserveProject:!0}).filter(flag=>!flag.startsWith("--non-interactive")),suffix=globalFlags.length>0?` ${globalFlags.map(quoteArg).join(" ")}`:"";return getCommandNamePlain(`${commandTemplate}${suffix}`)}async function add(client,argv){let parsedArgs,flagsSpecification=getFlagsSpecification(addSubcommand.options);try{parsedArgs=parseArguments(argv,flagsSpecification)}catch(err){return client.nonInteractive&&outputAgentError(client,{status:"error",reason:"invalid_arguments",message:err instanceof Error?err.message:String(err)},2),printError(err),2}let{args,flags:opts}=parsedArgs,valueFromFlag=typeof opts["--value"]=="string"?opts["--value"]:void 0,stdInput=valueFromFlag===void 0?await readStandardInput(client.stdin):"",[envName]=args,positionalEnvironment=args[1],positionalGitBranch=args[2],optionGitBranch=typeof opts["--git-branch"]=="string"?opts["--git-branch"]:void 0,forceSensitive=!!opts["--sensitive"],forceEncrypted=!!opts["--no-sensitive"],typeOption=resolveEnvVarTypeOption({type:typeof opts["--type"]=="string"?opts["--type"]:void 0,visibility:typeof opts["--visibility"]=="string"?opts["--visibility"]:void 0}),explicitType=typeOption.explicitVisibility,typeSource=explicitType||forceSensitive||forceEncrypted?"argv":void 0,telemetryClient=new EnvAddTelemetryClient({opts:{store:client.telemetryEventStore}});if(telemetryClient.trackCliArgumentName(envName),telemetryClient.trackCliArgumentEnvironment(positionalEnvironment),telemetryClient.trackCliArgumentGitBranch(positionalGitBranch),telemetryClient.trackCliOptionEnvironment(opts["--environment"]),telemetryClient.trackCliOptionGitBranch(optionGitBranch),telemetryClient.trackCliOptionValue(valueFromFlag===void 0?void 0:"<redacted>"),telemetryClient.trackCliFlagSensitive(opts["--sensitive"]),telemetryClient.trackCliFlagNoSensitive(opts["--no-sensitive"]),telemetryClient.trackCliFlagForce(opts["--force"]),telemetryClient.trackCliFlagGuidance(opts["--guidance"]),telemetryClient.trackCliFlagYes(opts["--yes"]),telemetryClient.trackCliOptionType(typeof opts["--type"]=="string"?opts["--type"]:void 0),telemetryClient.trackCliOptionVisibility(typeof opts["--visibility"]=="string"?opts["--visibility"]:void 0),telemetryClient.trackCliOptionProject(opts["--project"]),typeOption.error)return client.nonInteractive&&outputAgentError(client,{status:"error",reason:typeOption.errorReason??"invalid_type",message:typeOption.error},1),output_manager_default.fatal(typeOption.error),1;typeOption.usedDeprecatedVisibility&&printEnvAddWarning(ENV_VISIBILITY_DEPRECATION_MESSAGE);let typeConflictMessage=forceSensitive?forceEncrypted?"`--sensitive` and `--no-sensitive` cannot be used together. Pick one.":explicitType==="config"?"`--type config` cannot be used with `--sensitive`. Pick one.":null:forceEncrypted&&explicitType==="secret"?"`--type secret` cannot be used with `--no-sensitive`. Pick one.":null;if(typeConflictMessage)return client.nonInteractive&&outputAgentError(client,{status:"error",reason:"conflicting_type_flags",message:typeConflictMessage},2),output_manager_default.fatal(typeConflictMessage),2;if(positionalEnvironment!==void 0&&!parseEnvTargetArg(positionalEnvironment).every(part=>isValidEnvTarget(part))){let message="The environment argument accepts only production, preview, or development. Use --environment for custom environments, and pass the value with --value or stdin.",command=buildEnvAddCommandWithPreservedArgs(redactEnvValueArgs(client.argv),`env add ${envName?quoteArg(envName):"<name>"} --environment ${getEnvTargetPlaceholder()} --value "<value>"`);return client.nonInteractive&&outputAgentError(client,{status:"error",reason:"invalid_arguments",message,next:[{command,when:"replace the placeholders, then run"}]},2),output_manager_default.error(message),output_manager_default.print(`
|
|
9
|
+
`)}function promptEnvValue(client,opts){return client.input.text({message:"Value?",...opts.isSensitive?{transformer:value=>"*".repeat(value.length)}:{}})}function buildHumanEnvAddCommand(argv,commandTemplate){let globalFlags=getGlobalFlagsFromArgs(argv.slice(2),{preserveProject:!0}).filter(flag=>!flag.startsWith("--non-interactive")),suffix=globalFlags.length>0?` ${globalFlags.map(quoteArg).join(" ")}`:"";return getCommandNamePlain(`${commandTemplate}${suffix}`)}function isBranchNotFoundError(err){if([err.code,err.slug].filter(v=>typeof v=="string").some(c=>c.toLowerCase()==="branch_not_found"))return!0;let message=(err.serverMessage??"").toLowerCase();return message.includes("branch")&&/not found|(?:doesn't|does not) exist/.test(message)}function branchNotFoundMessage(branch){return`Branch ${branch} was not found in the connected Git repository.`}function branchNotFoundRecovery(branch){return`Push ${branch} to the remote, then run the command again. Or omit --git-branch to apply the variable to all Preview branches.`}function omitGitBranchArgs(argv){let out=[];for(let i=0;i<argv.length;i++){let arg=argv[i];if(arg==="--git-branch"){i+1<argv.length&&!argv[i+1].startsWith("-")&&i++;continue}arg.startsWith("--git-branch=")||out.push(arg)}return out}function buildBranchNotFoundNext(argv,envName,branch){let name=quoteArg(envName);return[{command:buildEnvAddCommandWithPreservedArgs(argv,`env add ${name} --environment preview --git-branch ${quoteArg(branch)} --value "<value>"`),when:`Add the variable after pushing ${branch} to the remote`},{command:buildEnvAddCommandWithPreservedArgs(omitGitBranchArgs(argv),`env add ${name} --environment preview --value "<value>"`),when:"Add the variable to all Preview branches"}]}async function add(client,argv){let parsedArgs,flagsSpecification=getFlagsSpecification(addSubcommand.options);try{parsedArgs=parseArguments(argv,flagsSpecification)}catch(err){return client.nonInteractive&&outputAgentError(client,{status:"error",reason:"invalid_arguments",message:err instanceof Error?err.message:String(err)},2),printError(err),2}let{args,flags:opts}=parsedArgs,valueFromFlag=typeof opts["--value"]=="string"?opts["--value"]:void 0,stdInput=valueFromFlag===void 0?await readStandardInput(client.stdin):"",[envName]=args,positionalEnvironment=args[1],positionalGitBranch=args[2],optionGitBranch=typeof opts["--git-branch"]=="string"?opts["--git-branch"]:void 0,forceSensitive=!!opts["--sensitive"],forceEncrypted=!!opts["--no-sensitive"],typeOption=resolveEnvVarTypeOption({type:typeof opts["--type"]=="string"?opts["--type"]:void 0,visibility:typeof opts["--visibility"]=="string"?opts["--visibility"]:void 0}),explicitType=typeOption.explicitVisibility,typeSource=explicitType||forceSensitive||forceEncrypted?"argv":void 0,telemetryClient=new EnvAddTelemetryClient({opts:{store:client.telemetryEventStore}});if(telemetryClient.trackCliArgumentName(envName),telemetryClient.trackCliArgumentEnvironment(positionalEnvironment),telemetryClient.trackCliArgumentGitBranch(positionalGitBranch),telemetryClient.trackCliOptionEnvironment(opts["--environment"]),telemetryClient.trackCliOptionGitBranch(optionGitBranch),telemetryClient.trackCliOptionValue(valueFromFlag===void 0?void 0:"<redacted>"),telemetryClient.trackCliFlagSensitive(opts["--sensitive"]),telemetryClient.trackCliFlagNoSensitive(opts["--no-sensitive"]),telemetryClient.trackCliFlagForce(opts["--force"]),telemetryClient.trackCliFlagGuidance(opts["--guidance"]),telemetryClient.trackCliFlagYes(opts["--yes"]),telemetryClient.trackCliOptionType(typeof opts["--type"]=="string"?opts["--type"]:void 0),telemetryClient.trackCliOptionVisibility(typeof opts["--visibility"]=="string"?opts["--visibility"]:void 0),telemetryClient.trackCliOptionProject(opts["--project"]),typeOption.error)return client.nonInteractive&&outputAgentError(client,{status:"error",reason:typeOption.errorReason??"invalid_type",message:typeOption.error},1),output_manager_default.fatal(typeOption.error),1;typeOption.usedDeprecatedVisibility&&printEnvAddWarning(ENV_VISIBILITY_DEPRECATION_MESSAGE);let typeConflictMessage=forceSensitive?forceEncrypted?"`--sensitive` and `--no-sensitive` cannot be used together. Pick one.":explicitType==="config"?"`--type config` cannot be used with `--sensitive`. Pick one.":null:forceEncrypted&&explicitType==="secret"?"`--type secret` cannot be used with `--no-sensitive`. Pick one.":null;if(typeConflictMessage)return client.nonInteractive&&outputAgentError(client,{status:"error",reason:"conflicting_type_flags",message:typeConflictMessage},2),output_manager_default.fatal(typeConflictMessage),2;if(positionalEnvironment!==void 0&&!parseEnvTargetArg(positionalEnvironment).every(part=>isValidEnvTarget(part))){let message="The environment argument accepts only production, preview, or development. Use --environment for custom environments, and pass the value with --value or stdin.",command=buildEnvAddCommandWithPreservedArgs(redactEnvValueArgs(client.argv),`env add ${envName?quoteArg(envName):"<name>"} --environment ${getEnvTargetPlaceholder()} --value "<value>"`);return client.nonInteractive&&outputAgentError(client,{status:"error",reason:"invalid_arguments",message,next:[{command,when:"replace the placeholders, then run"}]},2),output_manager_default.error(message),output_manager_default.print(`
|
|
10
10
|
Replace the placeholders, then run:
|
|
11
11
|
${command}
|
|
12
12
|
`),2}let envTargetInput=resolveEnvTargetInput(client,{environment:opts["--environment"],gitBranch:optionGitBranch,legacyEnvironment:positionalEnvironment,legacyGitBranch:positionalGitBranch});if("error"in envTargetInput)return client.nonInteractive&&outputAgentError(client,{status:"error",reason:"invalid_arguments",message:envTargetInput.error},2),output_manager_default.error(envTargetInput.error),2;let envTargetArg=envTargetInput.environment,envGitBranch=envTargetInput.gitBranch;if(args.length>3)return output_manager_default.error(`Invalid number of arguments. Usage: ${getCommandName(`env add <name> --environment ${getEnvTargetPlaceholder()} --git-branch <BRANCH>`)}`),2;if(stdInput&&(!envName||!envTargetArg))return output_manager_default.error(`Can't read the value from stdin without a name and --environment. Usage: ${getCommandName("env add <name> --environment <environment> --git-branch <BRANCH> < <file>")}`),2;let envTargets=envTargetArg?parseEnvTargetArg(envTargetArg):[],resolvedLink,envRecordsAndCustomEnvironments;if(client.nonInteractive){let link2=await resolveProjectContext({client,projectNameOrId:opts["--project"]});if(link2.status==="error")return link2.exitCode;if(link2.status==="not_linked"){let preserved=getPreservedArgsForEnvAdd(client.argv),linkPreserved=preserved.filter((a,i)=>!(a==="--value"||a.startsWith("--value=")||i>0&&preserved[i-1]==="--value")),linkArgv=[...client.argv.slice(0,2),"link","--scope","<scope>",...getLinkSuggestionArgs(linkPreserved)],envAddRetryArgv=redactEnvValueArgs(client.argv);envTargetArg==="preview"&&envGitBranch===void 0&&(envAddRetryArgv=redactEnvValueArgs([...client.argv,"--git-branch","<BRANCH>"])),outputAgentError(client,{status:"error",reason:"not_linked",message:`Your codebase isn't linked to a project on Vercel. Run \`${getCommandNamePlain("link")}\` to begin. Use \`--yes\` for non-interactive mode; use \`--scope\` or \`--project\` to specify a team or project. Then run your \`env add\` command.`,next:[{command:buildCommandWithYes(linkArgv)},{command:buildCommandWithYes(envAddRetryArgv)}]},1)}if(link2.status!=="linked")return 1;resolvedLink=link2;let{project:project2}=link2,org=link2.org;client.config.currentTeam=org.type==="team"?org.id:void 0,envRecordsAndCustomEnvironments=await Promise.all([getEnvRecords(client,project2.id,"vercel-cli:env:add"),getCustomEnvironments(client,project2.id)]);let[{envs:envs2},customEnvironments2]=envRecordsAndCustomEnvironments,matchingEnvs2=envs2.filter(r=>r.key===envName),existingTargets2=new Set,existingCustomEnvs2=new Set;for(let env of matchingEnvs2){if(typeof env.target=="string")existingTargets2.add(env.target);else if(Array.isArray(env.target))for(let target of env.target)existingTargets2.add(target);if(env.customEnvironmentIds)for(let customEnvId of env.customEnvironmentIds)existingCustomEnvs2.add(customEnvId)}let choices2=[...envTargetChoices.filter(c=>!existingTargets2.has(c.value)),...customEnvironments2.filter(c=>!existingCustomEnvs2.has(c.id)).map(c=>({name:c.slug,value:c.id}))],missing=[];if(envName||missing.push("missing_name"),valueFromFlag===void 0&&!stdInput&&missing.push("missing_value"),!envTargetArg&&choices2.length>0&&missing.push("missing_environment"),envTargetArg==="preview"&&envGitBranch===void 0&&!(client.nonInteractive&&envName!==void 0)&&missing.push("git_branch_required"),missing.length>0){let parts=missing.map(m=>m==="missing_name"?"variable name":m==="missing_value"?"--value or stdin":m==="missing_environment"?"environment (production, preview, development, or a comma-separated list)":m==="git_branch_required"?"`--git-branch <BRANCH>` for Preview, or omit for all Preview branches":m),fullTemplate=`env add <name> --environment ${getEnvTargetPlaceholder()} --value "<value>" --yes`,filledTemplate=fillEnvAddTemplate(fullTemplate,{envName,envTargetArg,envGitBranch}),next=[];if(missing.length===1&&missing[0]==="git_branch_required"||next.push({command:buildEnvAddCommandWithPreservedArgs(client.argv,filledTemplate)}),missing.includes("git_branch_required")&&envName&&(valueFromFlag!==void 0||stdInput)){let branchSpecific=fillEnvAddTemplate('env add <name> --environment preview --git-branch <BRANCH> --value "<value>" --yes',{envName,envTargetArg:"preview"}),branchAll=fillEnvAddTemplate('env add <name> --environment preview --value "<value>" --yes',{envName,envTargetArg:"preview"});next.push({command:buildEnvAddCommandWithPreservedArgs(client.argv,branchSpecific),when:"Add to a specific Git branch"},{command:buildEnvAddCommandWithPreservedArgs(client.argv,branchAll),when:"Add to all Preview branches"})}if(missing.includes("missing_environment")){let standardAvailable=choices2.map(c=>c.value).filter(v=>isValidEnvTarget(v)),multiTargets=filterSensitiveMultiTargetSuggestionTargets(standardAvailable,{forceSensitive:!!opts["--sensitive"],policyOn:!1});multiTargets.length>1&&next.push(multiTargetSuggestion(client.argv,envName||"<name>",multiTargets,multiTargets.includes("development")&&!opts["--no-sensitive"]))}outputActionRequired(client,{status:"action_required",reason:"missing_requirements",missing,message:`Provide all required inputs for non-interactive mode: ${parts.join("; ")}. Example: \`${filledTemplate}\``,next},1)}}if(envName||(envName=await client.input.text({message:"Name?",validate:val=>val?!0:"Name cannot be empty"})),!resolvedLink){let link2=await resolveProjectContext({client,projectNameOrId:opts["--project"]});if(link2.status==="error")return link2.exitCode;if(link2.status==="not_linked"){if(client.nonInteractive){let preserved=getPreservedArgsForEnvAdd(client.argv),linkPreserved=preserved.filter((a,i)=>!(a==="--value"||a.startsWith("--value=")||i>0&&preserved[i-1]==="--value")),linkArgv=[...client.argv.slice(0,2),"link","--scope","<scope>",...getLinkSuggestionArgs(linkPreserved)];outputAgentError(client,{status:"error",reason:"not_linked",message:`Your codebase isn't linked to a project on Vercel. Run ${getCommandNamePlain("link")} to begin. Use --yes for non-interactive; use --scope or --project to specify team or project. Then run your env add command.`,next:[{command:buildCommandWithYes(linkArgv)},{command:buildCommandWithYes(redactEnvValueArgs(client.argv))}]},1)}else output_manager_default.error(`Your codebase isn\u2019t linked to a project on Vercel. Run ${getCommandName("link")} to begin.`);return 1}resolvedLink=link2}let link=resolvedLink;client.config.currentTeam=link.org.type==="team"?link.org.id:void 0;let{project}=link;if(explicitType==="secret"||forceSensitive){let publicPrefixError=getPublicPrefixSecretVisibilityError(envName,{visibility:explicitType==="secret"?"secret":void 0,type:"sensitive",context:"add"});if(publicPrefixError)return client.nonInteractive&&outputAgentError(client,{status:"error",reason:"invalid_type",message:publicPrefixError},2),output_manager_default.fatal(publicPrefixError),2}let keyAccepted=!1;for(;!keyAccepted;){let apiPublicPrefix2=getApiPublicPrefix(envName),frameworkPublicPrefix=getFrameworkPublicPrefix(project.framework,envName),globallyKnownPrefix=getPublicPrefix(envName),keyWarnings=frameworkPublicPrefix!==null&&(explicitType==="secret"||forceSensitive)||globallyKnownPrefix!==null&&apiPublicPrefix2===null&&frameworkPublicPrefix===null?[]:getEnvKeyWarnings(envName);if(!keyWarnings.find(w=>w.requiresConfirmation)){for(let warning of keyWarnings)printEnvAddWarning(warning.message);keyAccepted=!0;break}let nameWithoutPrefix=removePublicPrefix(envName),publicPrefix=getPublicPrefix(envName);if(typeSource==="argv"){for(let warning of keyWarnings)printEnvAddWarning(warning.message);keyAccepted=!0;break}let privateCommand=buildEnvAddCommandWithPreservedArgs(client.argv,`env add ${nameWithoutPrefix} --environment ${envTargetArg??getEnvTargetPlaceholder()} --type secret --value "<value>" --yes`),publicCommand=buildEnvAddCommandWithPreservedArgs(client.argv,`env add ${envName} --environment ${envTargetArg??getEnvTargetPlaceholder()} --type config --value "<value>" --yes`),humanTargetArg=envTargetArg?` --environment ${envTargetArg}`:"",privateHumanCommand=buildHumanEnvAddCommand(client.argv,`env add ${nameWithoutPrefix}${humanTargetArg} --type secret`),publicHumanCommand=buildHumanEnvAddCommand(client.argv,`env add ${envName}${humanTargetArg} --type config`),message=`\`${envName}\` looks like a credential, and \`${publicPrefix}\` exposes its value to anyone visiting your site. Choose explicitly: rename to \`${nameWithoutPrefix}\` with \`--type secret\` to keep it private, or keep the name with \`--type config\` to expose it.`;if(client.nonInteractive||opts["--yes"]||stdInput)return client.nonInteractive&&outputActionRequired(client,{status:"action_required",reason:"public_prefix_requires_type",message,choices:[{id:"private",name:`Keep private: rename to ${nameWithoutPrefix} and use Secret`},{id:"public",name:`Expose publicly: keep ${envName} as Config`}],next:[{command:privateCommand,when:"Keep it private; replace <value> before running"},{command:publicCommand,when:"Expose it publicly; replace <value> before running"}]}),output_manager_default.fatal(message),output_manager_default.print(` Keep it private:
|
|
@@ -18,7 +18,9 @@ import{require_dist as require_dist3}from"../../chunks/chunk-JELLVPCM.js";import
|
|
|
18
18
|
${privateHumanCommand}
|
|
19
19
|
`),output_manager_default.print(` Expose it publicly:
|
|
20
20
|
${publicHumanCommand}
|
|
21
|
-
`),1;let selectedAction=await client.input.select({message:"How should this variable be stored?",choices:[...publicPrefix===""?[]:[{name:`Keep private: rename to ${privateName} and use Secret`,value:"private"}],{name:`Expose to anyone visiting your site: keep ${envName} as Config`,value:"public"},{name:"Enter a different value",value:"reenter"}]});if(selectedAction==="private"){envName=privateName,finalType="sensitive",explicitType="secret",typeSource="prompt",output_manager_default.log(`Renamed to ${envName}`);break}if(selectedAction==="reenter"){let reenteredValue=await promptEnvValue(client,{isSensitive:!1});finalValue=(await validateEnvValue({envName,initialValue:reenteredValue,skipConfirm:!1,promptForValue:()=>promptEnvValue(client,{isSensitive:!1}),selectAction:choices2=>client.input.select({message:"Value?",choices:choices2}),showWarning:msg=>printEnvAddWarning(msg),showLog:msg=>output_manager_default.log(msg)})).finalValue;continue}}else typeSource!=="argv"&&typeSource!=="prompt"&&!opts["--yes"]&&!client.nonInteractive&&await client.input.select({message:"Store this value as?",choices:[{name:getSecretStorageChoice(envTargets,"for this value"),value:"secret"},{name:"Config (can be revealed after saving)",value:"config"}]})==="secret"&&(finalType="sensitive",explicitType="secret",typeSource="prompt");break}finalType==="sensitive"&&customSveltePublicPrefix!==void 0&&envName.startsWith(customSveltePublicPrefix)&&printEnvAddWarning("This SvelteKit project exposes this variable to the browser; the Secret type does not prevent that. Rename the variable without the configured public prefix to keep it private."),isFlagsSecretNeedingSplit({key:envName,type:finalType,targets:envTargets.filter(isValidEnvTarget),customEnvironmentIds:envTargets.filter(target=>!isValidEnvTarget(target))})&&printEnvAddWarning("FLAGS_SECRET should use a separate value for each environment so Development overrides cannot affect Preview or Production.");let hasProduction=envTargets.includes("production"),hasNonProduction=envTargets.some(target=>target!=="production");if(finalType==="sensitive"&&disjunctiveProductionSecretPolicyOn&&hasProduction&&hasNonProduction){let message="Your team requires Production and non-Production Secrets to be stored separately with different values. Run one command for Production and another for the remaining environments.";return client.nonInteractive&&outputAgentError(client,{status:"error",reason:"production_secret_must_be_separate",message,next:[{command:buildEnvAddCommandWithPreservedArgs(client.argv,`env add ${envName} --environment production --type secret --value "<production-value>" --yes`),when:"Set the Production Secret"},{command:buildEnvAddCommandWithPreservedArgs(client.argv,`env add ${envName} --environment ${envTargets.filter(target=>target!=="production").join(",")} --type secret --value "<non-production-value>" --yes`),when:"Set the non-Production Secret"}]},1),output_manager_default.fatal(message),1}let upsert=opts["--force"]?"true":"",{visibility,error:visibilityError}=resolveEnvVarVisibility({explicitVisibility:explicitType,explicitOptionSource:typeOption.source,type:finalType,key:envName,envTargets,teamSensitivePolicyOn,context:"add"});if(visibilityError)return client.nonInteractive&&outputAgentError(client,{status:"error",reason:"invalid_type",message:visibilityError},2),output_manager_default.fatal(visibilityError),2;try{output_manager_default.spinner("Saving\u2026"),await addEnvRecord(client,project.id,upsert,finalType,envName,finalValue,envTargets,envGitBranch,visibility)}catch(err){if(client.nonInteractive&&isAPIError(err)){let productionSecretPolicyError=getProductionSecretPolicyErrorKind(err.serverMessage),reason=productionSecretPolicyError?productionSecretPolicyError==="different-values"?"production_secret_requires_different_value":"production_secret_must_be_separate":err.slug||(
|
|
21
|
+
`),1;let selectedAction=await client.input.select({message:"How should this variable be stored?",choices:[...publicPrefix===""?[]:[{name:`Keep private: rename to ${privateName} and use Secret`,value:"private"}],{name:`Expose to anyone visiting your site: keep ${envName} as Config`,value:"public"},{name:"Enter a different value",value:"reenter"}]});if(selectedAction==="private"){envName=privateName,finalType="sensitive",explicitType="secret",typeSource="prompt",output_manager_default.log(`Renamed to ${envName}`);break}if(selectedAction==="reenter"){let reenteredValue=await promptEnvValue(client,{isSensitive:!1});finalValue=(await validateEnvValue({envName,initialValue:reenteredValue,skipConfirm:!1,promptForValue:()=>promptEnvValue(client,{isSensitive:!1}),selectAction:choices2=>client.input.select({message:"Value?",choices:choices2}),showWarning:msg=>printEnvAddWarning(msg),showLog:msg=>output_manager_default.log(msg)})).finalValue;continue}}else typeSource!=="argv"&&typeSource!=="prompt"&&!opts["--yes"]&&!client.nonInteractive&&await client.input.select({message:"Store this value as?",choices:[{name:getSecretStorageChoice(envTargets,"for this value"),value:"secret"},{name:"Config (can be revealed after saving)",value:"config"}]})==="secret"&&(finalType="sensitive",explicitType="secret",typeSource="prompt");break}finalType==="sensitive"&&customSveltePublicPrefix!==void 0&&envName.startsWith(customSveltePublicPrefix)&&printEnvAddWarning("This SvelteKit project exposes this variable to the browser; the Secret type does not prevent that. Rename the variable without the configured public prefix to keep it private."),isFlagsSecretNeedingSplit({key:envName,type:finalType,targets:envTargets.filter(isValidEnvTarget),customEnvironmentIds:envTargets.filter(target=>!isValidEnvTarget(target))})&&printEnvAddWarning("FLAGS_SECRET should use a separate value for each environment so Development overrides cannot affect Preview or Production.");let hasProduction=envTargets.includes("production"),hasNonProduction=envTargets.some(target=>target!=="production");if(finalType==="sensitive"&&disjunctiveProductionSecretPolicyOn&&hasProduction&&hasNonProduction){let message="Your team requires Production and non-Production Secrets to be stored separately with different values. Run one command for Production and another for the remaining environments.";return client.nonInteractive&&outputAgentError(client,{status:"error",reason:"production_secret_must_be_separate",message,next:[{command:buildEnvAddCommandWithPreservedArgs(client.argv,`env add ${envName} --environment production --type secret --value "<production-value>" --yes`),when:"Set the Production Secret"},{command:buildEnvAddCommandWithPreservedArgs(client.argv,`env add ${envName} --environment ${envTargets.filter(target=>target!=="production").join(",")} --type secret --value "<non-production-value>" --yes`),when:"Set the non-Production Secret"}]},1),output_manager_default.fatal(message),1}let upsert=opts["--force"]?"true":"",{visibility,error:visibilityError}=resolveEnvVarVisibility({explicitVisibility:explicitType,explicitOptionSource:typeOption.source,type:finalType,key:envName,envTargets,teamSensitivePolicyOn,context:"add"});if(visibilityError)return client.nonInteractive&&outputAgentError(client,{status:"error",reason:"invalid_type",message:visibilityError},2),output_manager_default.fatal(visibilityError),2;try{output_manager_default.spinner("Saving\u2026"),await addEnvRecord(client,project.id,upsert,finalType,envName,finalValue,envTargets,envGitBranch,visibility)}catch(err){let branchNotFound=isAPIError(err)&&!!envGitBranch&&isBranchNotFoundError(err);if(client.nonInteractive&&isAPIError(err)){let productionSecretPolicyError=getProductionSecretPolicyErrorKind(err.serverMessage),reason=productionSecretPolicyError?productionSecretPolicyError==="different-values"?"production_secret_requires_different_value":"production_secret_must_be_separate":branchNotFound?"branch_not_found":err.slug||"api_error";branchNotFound&&envGitBranch&&outputAgentError(client,{status:"error",reason,message:branchNotFoundMessage(envGitBranch),hint:branchNotFoundRecovery(envGitBranch),next:buildBranchNotFoundNext(client.argv,envName,envGitBranch),...err.serverMessage?{data:{remoteMessage:err.serverMessage}}:{}},1),outputAgentError(client,{status:"error",reason,message:productionSecretPolicyError?`${err.serverMessage} ${getProductionSecretPolicyRecovery(productionSecretPolicyError)}`:err.serverMessage},1)}if(branchNotFound&&envGitBranch)return output_manager_default.error(branchNotFoundMessage(envGitBranch)),output_manager_default.print(`
|
|
22
|
+
${branchNotFoundRecovery(envGitBranch)}
|
|
23
|
+
`),1;if(isAPIError(err)&&isKnownError(err))return output_manager_default.error(err.serverMessage),1;throw err}printEnvAddResult(link,envName,envTargets,envGitBranch,customEnvironments,finalType,!!opts["--force"],visibility),typeSource==="default"&&output_manager_default.print(` ${import_chalk.default.dim(getDefaultSecretStorageGuidance(envTargets))}
|
|
22
24
|
`);let{isAgent}=await determineAgent();return isGuidanceEnabled(client,parsedArgs.flags["--guidance"],isAgent)&&suggestNextCommands([{description:"List Environment Variables",command:withGlobalFlags(client,"env ls",{preserveProject:!0})},{description:"Pull Development Environment Variables into .env.local",command:withGlobalFlags(client,"env pull",{preserveProject:!0})}]),0}var import_chalk2=__toESM(require_source(),1),import_ms=__toESM(require_ms(),1);var import_title=__toESM(require_lib(),1);function formatEnvironments(link,env,customEnvironments){let defaultTargets=(Array.isArray(env.target)?env.target:[env.target||""]).map(t=>formatEnvironment(link.org.slug,link.project.name,{id:t,slug:(0,import_title.default)(t)})),customTargets=env.customEnvironmentIds?env.customEnvironmentIds.map(id=>customEnvironments.find(e=>e.id===id)).filter(Boolean).map(e=>formatEnvironment(link.org.slug,link.project.name,e)):[],targetsString=[...defaultTargets,...customTargets].join(", ");return env.gitBranch?`${targetsString} (${env.gitBranch})`:targetsString}var EnvLsTelemetryClient=class extends TelemetryClient{trackCliArgumentEnvironment(environment){environment&&this.trackCliArgument({arg:"environment",value:STANDARD_ENVIRONMENTS.includes(environment)?environment:this.redactedValue})}trackCliArgumentGitBranch(gitBranch){gitBranch&&this.trackCliArgument({arg:"git-branch",value:this.redactedValue})}trackCliOptionEnvironment(environment){environment&&this.trackCliOption({option:"environment",value:STANDARD_ENVIRONMENTS.includes(environment)?environment:this.redactedValue})}trackCliOptionGitBranch(gitBranch){gitBranch&&this.trackCliOption({option:"git-branch",value:this.redactedValue})}trackCliFlagGuidance(guidance){guidance&&this.trackCliFlag("guidance")}trackCliFlagJson(json){json&&this.trackCliFlag("json")}};var import_build_utils=__toESM(require_build_utils(),1);async function resolveProjectContextWithEnvRequests(client,{projectNameOrId,commandName},send){let localLink=projectNameOrId?null:await readLocalLink(client.cwd),early=localLink?sendEarly(client,localLink,send):void 0,link;try{link=await resolveProjectContext({client,projectNameOrId,commandName})}catch(err){throw early?.cancel(),err}return early&&link.status==="linked"&&link.project.id===early.projectId&&link.org.id===early.orgId&&link.org.type==="team"===early.orgId.startsWith("team_")?{link,early:{result:early.result,sentAt:early.sentAt}}:(early?.cancel(),{link})}async function readLocalLink(cwd){let orgId=(0,import_build_utils.getPlatformEnv)("ORG_ID"),projectId=(0,import_build_utils.getPlatformEnv)("PROJECT_ID");if(orgId||projectId)return orgId&&projectId?{orgId,projectId}:null;try{return await getLinkFromDir(getVercelDirectory(cwd))}catch{return null}}function sendEarly(client,{orgId,projectId},send){let controller=new AbortController,sentAt=Date.now(),earlyClient=new Proxy(client,{get(target,property){return property==="fetch"?(url,opts={})=>target.fetch(url,{...opts,accountId:orgId,signal:controller.signal,retry:{retries:0}}):property==="nonInteractive"?!0:Reflect.get(target,property,target)}}),responses=send(earlyClient,projectId).then(value=>({value}),err=>(controller.signal.aborted||(output_manager_default.debug(`Early env requests failed: ${err}`),controller.abort()),null));return{orgId,projectId,sentAt,async result(){let early=await responses;return early?early.value:send(client,projectId)},cancel(){controller.abort()}}}import{determineAgent as determineAgent2}from"@vercel/detect-agent";async function ls(client,argv){let telemetryClient=new EnvLsTelemetryClient({opts:{store:client.telemetryEventStore}}),parsedArgs,flagsSpecification=getFlagsSpecification(listSubcommand.options);try{parsedArgs=parseArguments(argv,flagsSpecification)}catch(err){return printError(err),2}let{args,flags}=parsedArgs,validationResult=validateLsArgs({commandName:"env ls",args,maxArgs:2,exitCode:1,usageString:getCommandName(`env ls --environment ${getEnvTargetPlaceholder()} --git-branch <BRANCH>`)});if(validationResult!==0)return validationResult;telemetryClient.trackCliArgumentEnvironment(args[0]),telemetryClient.trackCliArgumentGitBranch(args[1]),telemetryClient.trackCliOptionEnvironment(flags["--environment"]),telemetryClient.trackCliOptionGitBranch(flags["--git-branch"]);let envTargetInput=resolveEnvTargetInput(client,{environment:flags["--environment"],gitBranch:flags["--git-branch"],legacyEnvironment:args[0],legacyGitBranch:args[1]});if("error"in envTargetInput)return client.nonInteractive&&outputAgentError(client,{status:"error",reason:"invalid_arguments",message:envTargetInput.error},2),output_manager_default.error(envTargetInput.error),2;let{environment:envTarget,gitBranch:envGitBranch}=envTargetInput,formatResult=validateJsonOutput(flags);if(!formatResult.valid)return output_manager_default.error(formatResult.error),2;let asJson=formatResult.jsonOutput;telemetryClient.trackCliFlagGuidance(flags["--guidance"]),telemetryClient.trackCliOptionFormat(flags["--format"]);let projectName=flags["--project"];telemetryClient.trackCliOptionProject(projectName);let sendEnvRequests=(client2,projectId)=>Promise.all([getEnvRecords(client2,projectId,"vercel-cli:env:ls",{target:envTarget,gitBranch:envGitBranch}),getCustomEnvironments(client2,projectId)]),{link,early}=await resolveProjectContextWithEnvRequests(client,{projectNameOrId:projectName,commandName:"env ls"},sendEnvRequests);if(link.status==="error")return link.exitCode;if(link.status==="not_linked")return output_manager_default.error(`Your codebase isn\u2019t linked to a project on Vercel. Pass --project <name>, or ${client.nonInteractive?`run ${getCommandName("link --yes --team <team-id> --project <project-id>")} to link non-interactively.`:`run ${getCommandName("link")} to begin.`}`),1;client.config.currentTeam=link.org.type==="team"?link.org.id:void 0;let{project,org}=link,lsStamp=stamp_default(early?.sentAt),[envsResult,customEnvs]=await(early?.result()??sendEnvRequests(client,project.id)),{envs}=envsResult,projectSlugLink=formatProject(org.slug,project.name);if(asJson){output_manager_default.stopSpinner();let jsonOutput={envs:envs.map(env=>({key:env.key,value:isSecretEnvVar(env)?void 0:env.value,type:env.type,visibility:env.visibility,target:env.target,gitBranch:env.gitBranch,configurationId:env.configurationId,createdAt:env.createdAt,updatedAt:env.updatedAt}))};client.stdout.write(`${JSON.stringify(jsonOutput,null,2)}
|
|
23
25
|
`)}else envs.length===0?output_manager_default.log(`No Environment Variables found for ${projectSlugLink} ${import_chalk2.default.gray(lsStamp())}`):(output_manager_default.log(`Environment Variables found for ${projectSlugLink} ${import_chalk2.default.gray(lsStamp())}`),client.stdout.write(`${getTable(link,envs,customEnvs)}
|
|
24
26
|
`));if(!asJson){let{isAgent}=await determineAgent2();isGuidanceEnabled(client,parsedArgs.flags["--guidance"],isAgent)&&suggestNextCommands([{description:"Add an Environment Variable",command:withGlobalFlags(client,"env add",{preserveProject:!0})},{description:"Remove an Environment Variable",command:withGlobalFlags(client,"env remove",{preserveProject:!0})},{description:"Pull Development Environment Variables into .env.local",command:withGlobalFlags(client,"env pull",{preserveProject:!0})}])}return 0}function getTable(link,records,customEnvironments){let label=records.some(env=>env.gitBranch)?"environments (git branch)":"environments";return formatTable(["name","value","type",label,"created"],["l","l","l","l","l"],[{name:"",rows:records.map(row=>getRow(link,row,customEnvironments))}])}function getRow(link,env,customEnvironments){let value;if(isSecretEnvVar(env))value=import_chalk2.default.gray.italic("Hidden");else if(env.type==="system")value=import_chalk2.default.gray.italic(env.value);else{let singleLineValue=env.value.replace(/\s/g," ");value=import_chalk2.default.gray(ellipsis(singleLineValue,19))}let now=Date.now();return[import_chalk2.default.bold(env.key),value,getEnvironmentVariableTypeLabel(env),formatEnvironments(link,env,customEnvironments),env.createdAt?`${(0,import_ms.default)(now-env.createdAt)} ago`:""]}function getEnvironmentVariableTypeLabel(env){return isSecretEnvVar(env)?"Secret":env.type==="system"?"System":"Config"}var import_chalk3=__toESM(require_source(),1);async function removeEnvRecord(client,projectId,env){output_manager_default.debug(`Removing Environment Variable ${env.key}`);let url=`/v10/projects/${projectId}/env/${env.id}`;await client.fetch(url,{method:"DELETE"})}var EnvRmTelemetryClient=class extends TelemetryClient{trackCliArgumentName(name){name&&this.trackCliArgument({arg:"name",value:this.redactedValue})}trackCliArgumentEnvironment(environment){environment&&this.trackCliArgument({arg:"environment",value:STANDARD_ENVIRONMENTS.includes(environment)?environment:this.redactedValue})}trackCliArgumentGitBranch(gitBranch){gitBranch&&this.trackCliArgument({arg:"git-branch",value:this.redactedValue})}trackCliOptionEnvironment(environment){environment&&this.trackCliOption({option:"environment",value:STANDARD_ENVIRONMENTS.includes(environment)?environment:this.redactedValue})}trackCliOptionGitBranch(gitBranch){gitBranch&&this.trackCliOption({option:"git-branch",value:this.redactedValue})}trackCliFlagYes(yes){yes&&this.trackCliFlag("yes")}};function printEnvRmWarning(message){output_manager_default.print(`${import_chalk3.default.yellow("!")} ${message}
|
|
@@ -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{promptExperimentalServicesMigration}from"../../chunks/chunk-
|
|
7
|
+
import{promptExperimentalServicesMigration}from"../../chunks/chunk-QTCS2HDX.js";import"../../chunks/chunk-EGPVNTKP.js";import"../../chunks/chunk-3P4Y46MS.js";import{pull}from"../../chunks/chunk-KUNFE2M6.js";import"../../chunks/chunk-PY5A73YH.js";import"../../chunks/chunk-6Y2ZL5XJ.js";import"../../chunks/chunk-WRC5CTUD.js";import"../../chunks/chunk-25565AGS.js";import"../../chunks/chunk-BHJLCFQ4.js";import"../../chunks/chunk-7YKFF6CE.js";import"../../chunks/chunk-JULKMXVP.js";import"../../chunks/chunk-YRK2BCTJ.js";import"../../chunks/chunk-IHNEF3BG.js";import{ensureLink}from"../../chunks/chunk-NDWGYZRT.js";import"../../chunks/chunk-QIPUFI6P.js";import"../../chunks/chunk-6KCYUYUM.js";import"../../chunks/chunk-PVASGBEF.js";import"../../chunks/chunk-ZBJ44DRL.js";import"../../chunks/chunk-J24BABG4.js";import"../../chunks/chunk-U4Z2MMOF.js";import"../../chunks/chunk-2QSNFVB6.js";import{getSubcommand}from"../../chunks/chunk-ETV3C2CV.js";import"../../chunks/chunk-YEPB52XE.js";import{getCommandAliases}from"../../chunks/chunk-2PYFJXKS.js";import"../../chunks/chunk-3KSTUMR6.js";import"../../chunks/chunk-EZL4AJXH.js";import"../../chunks/chunk-45UDRX4C.js";import"../../chunks/chunk-J52UJYOK.js";import"../../chunks/chunk-GZWYJT4C.js";import"../../chunks/chunk-3AXMZRAB.js";import"../../chunks/chunk-FQVSBXRY.js";import"../../chunks/chunk-GP5MFCGO.js";import"../../chunks/chunk-V5A4EBV3.js";import"../../chunks/chunk-IECNFRTK.js";import"../../chunks/chunk-A6F3EE2O.js";import"../../chunks/chunk-K2R3QPOC.js";import"../../chunks/chunk-IHRM7L23.js";import"../../chunks/chunk-HTFQFHPR.js";import"../../chunks/chunk-LFOWP74R.js";import"../../chunks/chunk-DBV6AB6T.js";import"../../chunks/chunk-37DIJCWK.js";import"../../chunks/chunk-7E6UJXLR.js";import"../../chunks/chunk-JALVF3C2.js";import"../../chunks/chunk-7V2PXIVW.js";import{printError}from"../../chunks/chunk-D3GYYGSS.js";import{help}from"../../chunks/chunk-33U57CNE.js";import"../../chunks/chunk-3G3FQYMW.js";import{detectExplicitScope,getScope}from"../../chunks/chunk-IU6PHFPQ.js";import{TelemetryClient}from"../../chunks/chunk-SBBD2Q5A.js";import"../../chunks/chunk-2EYYB6YN.js";import"../../chunks/chunk-NWGBDBZI.js";import"../../chunks/chunk-KAUKCHQF.js";import{addSubcommand,linkCommand}from"../../chunks/chunk-QLW5DCM4.js";import{addRepoLink,ensureRepoLink,findRepoRoot,isPromptCanceledError,resolveProjectCwd}from"../../chunks/chunk-QZEZCUUZ.js";import"../../chunks/chunk-3LQ2ADXO.js";import"../../chunks/chunk-MCP63EVQ.js";import"../../chunks/chunk-4NTBYNFR.js";import{parseArguments}from"../../chunks/chunk-KIMIK4SG.js";import"../../chunks/chunk-F53OKXYI.js";import"../../chunks/chunk-JRBPVMQO.js";import"../../chunks/chunk-LUX4PBJL.js";import"../../chunks/chunk-OPORM35X.js";import"../../chunks/chunk-MXTC4ZAQ.js";import"../../chunks/chunk-OCR5CRTH.js";import"../../chunks/chunk-4SAVH3H7.js";import"../../chunks/chunk-FXEMEIST.js";import{cmd}from"../../chunks/chunk-JESNVRVR.js";import{output_manager_default}from"../../chunks/chunk-ZRJKGAUT.js";import"../../chunks/chunk-BLUPZPAS.js";import"../../chunks/chunk-RM3ZDRYE.js";import"../../chunks/chunk-YHPPP3SF.js";import"../../chunks/chunk-OO572JUC.js";import"../../chunks/chunk-PUKYAALC.js";import{getFlagsSpecification}from"../../chunks/chunk-YPPDRKVC.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-5O7CRJE5.js";import"../../chunks/chunk-U3J7VS56.js";import"../../chunks/chunk-7EJQLVWX.js";import"../../chunks/chunk-SCV7XEEO.js";import{__toESM}from"../../chunks/chunk-BZENIQ7N.js";var import_chalk=__toESM(require_source(),1);import{join}from"path";var LinkTelemetryClient=class extends TelemetryClient{trackCliArgumentCwd(){this.trackCliArgument({arg:"cwd",value:this.redactedValue})}trackCliFlagRepo(flag){flag&&this.trackCliFlag("repo")}trackCliFlagYes(yes){yes&&this.trackCliFlag("yes")}trackCliFlagConfirm(flag){flag&&this.trackCliFlag("confirm")}trackCliOptionTeam(value){value&&this.trackCliOption({option:"team",value:this.redactedValue})}trackCliOptionProjectId(value){value&&this.trackCliOption({option:"project-id",value:this.redactedValue})}trackCliSubcommandAdd(actual){this.trackCliSubcommand({subcommand:"add",value:actual})}};var COMMAND_CONFIG={add:getCommandAliases(addSubcommand)};function warnOidcRefreshFailed(){output_manager_default.print(`${import_chalk.default.yellow("!")} Linked project, but failed to refresh VERCEL_OIDC_TOKEN in .env.local. Rerun the link command to retry.
|
|
8
8
|
`)}async function refreshOidcTokenAfterLink(client,cwd){let originalCwd=client.cwd;try{client.cwd=await resolveProjectCwd(cwd),output_manager_default.print(`
|
|
9
9
|
`),await pull(client,["--yes"],"vercel-cli:link",{oidcTokenOnly:!0})!==0&&warnOidcRefreshFailed()}catch{warnOidcRefreshFailed()}finally{client.cwd=originalCwd}}async function link(client){try{return await client.withEscapePromptCancellation(()=>linkProject(client))}catch(error){if(isPromptCanceledError(error))return output_manager_default.print(` Canceled.
|
|
10
10
|
`),0;throw error}}async function linkProject(client){let parsedArgs=null,flagsSpecification=getFlagsSpecification(linkCommand.options);try{parsedArgs=parseArguments(client.argv.slice(2),flagsSpecification,{permissive:!0})}catch(error){return printError(error),2}let{subcommand,subcommandOriginal}=getSubcommand(parsedArgs.args.slice(1),COMMAND_CONFIG),telemetry=new LinkTelemetryClient({opts:{store:client.telemetryEventStore}});function printHelp(command){output_manager_default.print(help(command,{stream:client.stderr,parent:linkCommand,columns:client.stderr.columns}))}if(subcommand==="add"){if(parsedArgs.flags["--help"])return telemetry.trackCliFlagHelp("link",subcommandOriginal),printHelp(addSubcommand),0;telemetry.trackCliSubcommandAdd(subcommandOriginal);let yes2=!!parsedArgs.flags["--yes"];try{await addRepoLink(client,client.cwd,{yes:yes2})}catch(err){if(isPromptCanceledError(err))throw err;return output_manager_default.prettyError(err),1}return 0}try{parsedArgs=parseArguments(client.argv.slice(2),flagsSpecification)}catch(error){return printError(error),2}if(parsedArgs.flags["--help"])return telemetry.trackCliFlagHelp("link"),output_manager_default.print(help(linkCommand,{stream:client.stderr,columns:client.stderr.columns})),0;telemetry.trackCliFlagRepo(parsedArgs.flags["--repo"]),telemetry.trackCliFlagYes(parsedArgs.flags["--yes"]),telemetry.trackCliOptionProject(parsedArgs.flags["--project"]),"--confirm"in parsedArgs.flags&&(telemetry.trackCliFlagConfirm(parsedArgs.flags["--confirm"]),output_manager_default.warn("`--confirm` is deprecated, please use `--yes` instead"),parsedArgs.flags["--yes"]=parsedArgs.flags["--confirm"]);let yes=!!parsedArgs.flags["--yes"],cwd=parsedArgs.args[1];if(cwd?(telemetry.trackCliArgumentCwd(),output_manager_default.warn(`The ${cmd("vc link <directory>")} syntax is deprecated, please use ${cmd(`vc link --cwd ${cwd}`)} instead`)):cwd=client.cwd,parsedArgs.flags["--repo"]){output_manager_default.warn(`The ${cmd("--repo")} option is in alpha, please report issues`);try{await ensureRepoLink(client,cwd,{yes,overwrite:!0})}catch(err){if(isPromptCanceledError(err))throw err;return output_manager_default.prettyError(err),1}}else{let selectedOrg=detectExplicitScope(client)?(await getScope(client,{resolveLocalScope:!0})).org:void 0,linkNonInteractive=client.nonInteractive||client.argv.includes("--non-interactive"),link2=await ensureLink("link",client,cwd,{autoConfirm:yes,forceDelete:!0,selectedOrg,projectName:parsedArgs.flags["--project"],successEmoji:"success",nonInteractive:linkNonInteractive,pullEnv:!1});if(typeof link2=="number")return link2;let projectCwd=await resolveProjectCwd(cwd),rootDirectory=link2.project.rootDirectory,repoRoot=link2.repoRoot??(rootDirectory?await findRepoRoot(projectCwd):void 0);await promptExperimentalServicesMigration({client,cwd:rootDirectory?join(repoRoot??projectCwd,rootDirectory):link2.repoRoot??projectCwd,autoConfirm:yes,nonInteractive:linkNonInteractive,allowConfigExecution:!1}),await refreshOidcTokenAfterLink(client,cwd)}return 0}export{link as default};
|
|
@@ -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{parseTarget,warnDeprecatedProdFlag}from"../../chunks/chunk-EQT2VHL2.js";import{formatEnvironment}from"../../chunks/chunk-QHM6OK76.js";import"../../chunks/chunk-7YKFF6CE.js";import{formatProject}from"../../chunks/chunk-75JI2SZX.js";import{isValidName}from"../../chunks/chunk-PADL3C6Z.js";import{getDeployment,toHost}from"../../chunks/chunk-VAWZZK3Y.js";import"../../chunks/chunk-OKNDHNH6.js";import{InvalidNextError,getPaginationOpts}from"../../chunks/chunk-C6GY2G73.js";import{getCommandFlags}from"../../chunks/chunk-XGTKHQTT.js";import{printNextPageCommand}from"../../chunks/chunk-KHADRPBJ.js";import{validateLsArgs}from"../../chunks/chunk-XTKGBVSF.js";import{table}from"../../chunks/chunk-5SIC5273.js";import{elapsed}from"../../chunks/chunk-Q7D7RGXM.js";import{listCommand}from"../../chunks/chunk-GVPVWHFK.js";import{printError}from"../../chunks/chunk-LCMNJNSQ.js";import{help}from"../../chunks/chunk-SLDWAIO3.js";import"../../chunks/chunk-67GZ5REA.js";import"../../chunks/chunk-BS32OUOC.js";import{getContextName}from"../../chunks/chunk-IFXMG2WQ.js";import{TelemetryClient}from"../../chunks/chunk-4BIGNS67.js";import"../../chunks/chunk-2EYYB6YN.js";import"../../chunks/chunk-NWGBDBZI.js";import{exitWithNonInteractiveError}from"../../chunks/chunk-I7U2XP4X.js";import"../../chunks/chunk-EPO7P734.js";import{getLinkFromDir,getLinkedProject,getProjectByNameOrId,getVercelDirectory,sleep}from"../../chunks/chunk-RHFPMM4R.js";import"../../chunks/chunk-26QK3I2S.js";import"../../chunks/chunk-55H6G46X.js";import"../../chunks/chunk-4NTBYNFR.js";import{parseArguments}from"../../chunks/chunk-F22QLVTX.js";import"../../chunks/chunk-F53OKXYI.js";import{validateJsonOutput}from"../../chunks/chunk-7SAEZ4NC.js";import"../../chunks/chunk-LUX4PBJL.js";import"../../chunks/chunk-OPORM35X.js";import{require_ms}from"../../chunks/chunk-MXTC4ZAQ.js";import"../../chunks/chunk-OCR5CRTH.js";import"../../chunks/chunk-4SAVH3H7.js";import{ProjectNotFound}from"../../chunks/chunk-YCJHUYBJ.js";import{getCommandName,getCommandNamePlain,require_lib}from"../../chunks/chunk-JESNVRVR.js";import{output_manager_default,require_build_utils}from"../../chunks/chunk-DWOJP4ST.js";import"../../chunks/chunk-BLUPZPAS.js";import{require_dist}from"../../chunks/chunk-RM3ZDRYE.js";import"../../chunks/chunk-D3AHZ5LI.js";import"../../chunks/chunk-2GHZGOWT.js";import"../../chunks/chunk-YHPPP3SF.js";import"../../chunks/chunk-OO572JUC.js";import"../../chunks/chunk-PUKYAALC.js";import{getFlagsSpecification}from"../../chunks/chunk-A2UZ2O7H.js";import"../../chunks/chunk-2BKALEOP.js";import{require_source}from"../../chunks/chunk-NB2WLB3J.js";import"../../chunks/chunk-ISWW3DKF.js";import"../../chunks/chunk-BRQUZ5NC.js";import"../../chunks/chunk-5O7CRJE5.js";import"../../chunks/chunk-U3J7VS56.js";import"../../chunks/chunk-7EJQLVWX.js";import"../../chunks/chunk-SCV7XEEO.js";import{__toESM}from"../../chunks/chunk-BZENIQ7N.js";var import_ms=__toESM(require_ms(),1),import_chalk=__toESM(require_source(),1),import_title=__toESM(require_lib(),1);function parsePolicy(policy){if(!policy)return{};typeof policy=="string"&&(policy=[policy]);let parsed={};for(let item of policy){let[key,...rest]=item.split("=");parsed[key]=rest.join("=")}return parsed}var import_error_utils=__toESM(require_dist(),1);var import_build_utils=__toESM(require_build_utils(),1);async function getLinkedProjectWithDeployments(client,getQuery){let early;if(getQuery){let localLink=await readLocalLink(client.cwd);localLink&&(early=requestDeployments(client,localLink,getQuery(localLink.projectId)))}let link;try{link=await getLinkedProject(client,{cwd:client.cwd})}catch(err){throw early?.cancel(),err}return early&&link.status==="linked"&&link.project.id===early.projectId&&link.org.id===early.orgId?{link,deployments:{pages:early.pages(),sentAt:early.sentAt}}:(early?.cancel(),{link})}async function readLocalLink(cwd){let orgId=(0,import_build_utils.getPlatformEnv)("ORG_ID"),projectId=(0,import_build_utils.getPlatformEnv)("PROJECT_ID");if(orgId||projectId)return orgId&&projectId?{orgId,projectId}:null;try{return await getLinkFromDir(getVercelDirectory(cwd))}catch{return null}}function requestDeployments(client,{orgId,projectId},query){query.set("teamId",orgId);let url=`/v6/deployments?${query}`,controller=new AbortController,sentAt=Date.now(),first=client.fetch(url,{signal:controller.signal,retry:{retries:0}}).catch(()=>null);return{orgId,projectId,sentAt,async*pages(){let page=await first;if(!page){yield*client.fetchPaginated(url);return}yield page;let next=page.pagination?.next;if(next){await sleep(100);let rest=new URLSearchParams(query);rest.set("until",String(next)),yield*client.fetchPaginated(`/v6/deployments?${rest}`)}},cancel(){controller.abort()}}}var ListTelemetryClient=class extends TelemetryClient{trackCliFlagAll(all){all&&this.trackCliFlag("all")}trackCliOptionMeta(meta){meta&&meta.length>0&&this.trackCliOption({option:"meta",value:this.redactedValue})}trackCliOptionPolicy(policy){policy&&policy.length>0&&this.trackCliOption({option:"policy",value:this.redactedValue})}trackCliOptionEnvironment(environment){environment&&this.trackCliOption({option:"environment",value:this.redactedTargetName(environment)})}trackCliOptionNext(next){next&&this.trackCliOption({option:"next",value:this.redactedValue})}trackCliOptionLimit(limit){limit&&this.trackCliOption({option:"limit",value:this.redactedValue})}trackCliFlagProd(flag){flag&&this.trackCliFlag("prod")}trackCliFlagYes(flag){flag&&this.trackCliFlag("yes")}trackCliFlagConfirm(flag){flag&&this.trackCliFlag("confirm")}trackCliOptionStatus(status){status&&this.trackCliOption({option:"status",value:this.redactedValue})}trackCliArgumentApp(app){app&&this.trackCliArgument({arg:"app",value:this.redactedValue})}trackCliFlagJson(json){json&&this.trackCliFlag("json")}};function toDate(timestamp){let date=new Date(timestamp),options={year:"2-digit",month:"2-digit",day:"2-digit"};return date.toLocaleDateString("en-US",options)}async function list(client){let{print,log,warn,error,note,debug,spinner}=output_manager_default,parsedArgs=null,flagsSpecification=getFlagsSpecification(listCommand.options);try{parsedArgs=parseArguments(client.argv.slice(2),flagsSpecification)}catch(error2){return printError(error2),2}let telemetry=new ListTelemetryClient({opts:{store:client.telemetryEventStore}});if(parsedArgs.flags["--help"])return telemetry.trackCliFlagHelp("list"),print(help(listCommand,{stream:client.stderr,columns:client.stderr.columns})),0;let validationResult=validateLsArgs({commandName:"ls [app]",args:parsedArgs.args,maxArgs:2,exitCode:2});if(validationResult!==0)return validationResult;let formatResult=validateJsonOutput(parsedArgs.flags);if(!formatResult.valid)return error(formatResult.error),2;let asJson=formatResult.jsonOutput;telemetry.trackCliFlagAll(parsedArgs.flags["--all"]),telemetry.trackCliFlagProd(parsedArgs.flags["--prod"]),telemetry.trackCliFlagYes(parsedArgs.flags["--yes"]),telemetry.trackCliOptionEnvironment(parsedArgs.flags["--environment"]),telemetry.trackCliOptionMeta(parsedArgs.flags["--meta"]),telemetry.trackCliOptionNext(parsedArgs.flags["--next"]),telemetry.trackCliOptionLimit(parsedArgs.flags["--limit"]),telemetry.trackCliOptionFormat(parsedArgs.flags["--format"]),telemetry.trackCliOptionPolicy(parsedArgs.flags["--policy"]),telemetry.trackCliOptionStatus(parsedArgs.flags["--status"]),"--confirm"in parsedArgs.flags&&(telemetry.trackCliFlagConfirm(parsedArgs.flags["--confirm"]),warn("`--confirm` is deprecated, please use `--yes` instead"),parsedArgs.flags["--yes"]=parsedArgs.flags["--confirm"]);let meta=parseMeta(parsedArgs.flags["--meta"]),policy=parsePolicy(parsedArgs.flags["--policy"]);warnDeprecatedProdFlag(client,parsedArgs.flags);let target=parseTarget({flagName:"environment",flags:parsedArgs.flags}),statusFlag=parsedArgs.flags["--status"],status;if(statusFlag){let validStatuses=["BUILDING","ERROR","INITIALIZING","QUEUED","READY","CANCELED","BLOCKED"],statusValues=statusFlag.split(",").map(s=>s.trim().toUpperCase()),invalidStatuses=statusValues.filter(s=>!validStatuses.includes(s));if(invalidStatuses.length>0)return error(`Invalid status values: ${invalidStatuses.join(", ")}. Valid values are: ${validStatuses.join(", ")}`),1;status=statusValues.join(",")}let paginationError,nextTimestamp,limitFlag;try{[nextTimestamp,limitFlag]=getPaginationOpts(parsedArgs.flags)}catch(err){paginationError=err}let limit=limitFlag??20,getDeploymentsQuery=projectId=>{let query=new URLSearchParams({limit:String(limit)});projectId&&query.set("projectId",projectId);for(let[k,v]of Object.entries(meta))query.set(`meta-${k}`,v);for(let[k,v]of Object.entries(policy))query.set(`policy-${k}`,v);return nextTimestamp&&query.set("until",String(nextTimestamp)),target&&query.set("target",target),status&&query.set("state",status),query},project,pagination,contextName="",app=parsedArgs.args[1],deployments=[],singleDeployment=!1,linkedDeployments,allFlag=parsedArgs.flags["--all"],showAllProjects=!1;if(allFlag&&app)return error("Cannot use --all option with a project argument"),2;if(app){if(!isValidName(app))return error(`The provided argument "${app}" is not a valid project name`),2;if(telemetry.trackCliArgumentApp(app),app.includes(".")){try{contextName=await getContextName(client)}catch(err){if((0,import_error_utils.isErrnoException)(err)&&(err.code==="NOT_AUTHORIZED"||err.code==="TEAM_DELETED"))return error(err.message),1}if(!contextName)return error("No context name found"),1;let host=toHost(app),deployment=await getDeployment(client,contextName,host);if(!deployment.projectId)return error(`Could not find a deployment for "${host}"`),1;app=deployment.projectId,note(`We suggest using ${getCommandName("inspect <deployment>")} for retrieving details about a single deployment`),deployments.push(deployment),singleDeployment=!0}let p=await getProjectByNameOrId(client,app);if(p instanceof ProjectNotFound)return exitWithNonInteractiveError(client,p,1,{variant:"list",projectName:app}),error(`The provided argument "${app}" is not a valid project name`),1;project=p}else if(allFlag)showAllProjects=!0;else{let linked=await getLinkedProjectWithDeployments(client,paginationError===void 0?getDeploymentsQuery:void 0),{link}=linked;if(linkedDeployments=linked.deployments,link.status==="error")return link.exitCode;link.status==="linked"?(project=link.project,client.config.currentTeam=link.org.id):showAllProjects=!0}if(!contextName)try{contextName=await getContextName(client)}catch(err){if((0,import_error_utils.isErrnoException)(err)&&(err.code==="NOT_AUTHORIZED"||err.code==="TEAM_DELETED"))return error(err.message),1}if(paginationError!==void 0)return printError(paginationError),paginationError instanceof InvalidNextError?2:1;let projectSlugLink=project?formatProject(contextName,project.name):null;if(!singleDeployment){asJson||spinner(`Fetching deployments in ${import_chalk.default.bold(contextName)}`);let start=linkedDeployments?.sentAt??Date.now();debug("Fetching deployments");let pages=linkedDeployments?.pages??client.fetchPaginated(`/v6/deployments?${getDeploymentsQuery(project?.id)}`);for await(let chunk of pages)if(deployments.push(...chunk.deployments),pagination=chunk.pagination,deployments.length>=limit)break;if(deployments.length=Math.min(deployments.length,limit),!deployments.length){if(asJson){let jsonOutput={deployments:[],pagination,contextName};client.stdout.write(`${JSON.stringify(jsonOutput,null,2)}
|
|
7
|
+
import{parseMeta}from"../../chunks/chunk-CZSOZKHX.js";import{parseTarget,warnDeprecatedProdFlag}from"../../chunks/chunk-WRC5CTUD.js";import{formatEnvironment}from"../../chunks/chunk-F76MNMH3.js";import"../../chunks/chunk-7YKFF6CE.js";import{formatProject}from"../../chunks/chunk-YRK2BCTJ.js";import{isValidName}from"../../chunks/chunk-PADL3C6Z.js";import{getDeployment,toHost}from"../../chunks/chunk-QIPUFI6P.js";import"../../chunks/chunk-6KCYUYUM.js";import{InvalidNextError,getPaginationOpts}from"../../chunks/chunk-C6GY2G73.js";import{getCommandFlags}from"../../chunks/chunk-XGTKHQTT.js";import{printNextPageCommand}from"../../chunks/chunk-B3ETPBO4.js";import{validateLsArgs}from"../../chunks/chunk-T2SRGJPU.js";import{table}from"../../chunks/chunk-OTJNOMRV.js";import{elapsed}from"../../chunks/chunk-Q7D7RGXM.js";import{listCommand}from"../../chunks/chunk-DBV6AB6T.js";import{printError}from"../../chunks/chunk-D3GYYGSS.js";import{help}from"../../chunks/chunk-33U57CNE.js";import{getContextName}from"../../chunks/chunk-IU6PHFPQ.js";import{TelemetryClient}from"../../chunks/chunk-SBBD2Q5A.js";import"../../chunks/chunk-2EYYB6YN.js";import"../../chunks/chunk-NWGBDBZI.js";import{exitWithNonInteractiveError}from"../../chunks/chunk-KAUKCHQF.js";import"../../chunks/chunk-QLW5DCM4.js";import{getLinkFromDir,getLinkedProject,getProjectByNameOrId,getVercelDirectory,sleep}from"../../chunks/chunk-QZEZCUUZ.js";import"../../chunks/chunk-3LQ2ADXO.js";import"../../chunks/chunk-MCP63EVQ.js";import"../../chunks/chunk-4NTBYNFR.js";import{parseArguments}from"../../chunks/chunk-KIMIK4SG.js";import"../../chunks/chunk-F53OKXYI.js";import{validateJsonOutput}from"../../chunks/chunk-JRBPVMQO.js";import"../../chunks/chunk-LUX4PBJL.js";import"../../chunks/chunk-OPORM35X.js";import{require_ms}from"../../chunks/chunk-MXTC4ZAQ.js";import"../../chunks/chunk-OCR5CRTH.js";import"../../chunks/chunk-4SAVH3H7.js";import{ProjectNotFound}from"../../chunks/chunk-FXEMEIST.js";import{getCommandName,getCommandNamePlain,require_lib}from"../../chunks/chunk-JESNVRVR.js";import{output_manager_default,require_build_utils}from"../../chunks/chunk-ZRJKGAUT.js";import"../../chunks/chunk-BLUPZPAS.js";import{require_dist}from"../../chunks/chunk-RM3ZDRYE.js";import"../../chunks/chunk-YHPPP3SF.js";import"../../chunks/chunk-OO572JUC.js";import"../../chunks/chunk-PUKYAALC.js";import{getFlagsSpecification}from"../../chunks/chunk-YPPDRKVC.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-5O7CRJE5.js";import"../../chunks/chunk-U3J7VS56.js";import"../../chunks/chunk-7EJQLVWX.js";import"../../chunks/chunk-SCV7XEEO.js";import{__toESM}from"../../chunks/chunk-BZENIQ7N.js";var import_ms=__toESM(require_ms(),1),import_chalk=__toESM(require_source(),1),import_title=__toESM(require_lib(),1);function parsePolicy(policy){if(!policy)return{};typeof policy=="string"&&(policy=[policy]);let parsed={};for(let item of policy){let[key,...rest]=item.split("=");parsed[key]=rest.join("=")}return parsed}var import_error_utils=__toESM(require_dist(),1);var import_build_utils=__toESM(require_build_utils(),1);async function getLinkedProjectWithDeployments(client,getQuery){let early;if(getQuery){let localLink=await readLocalLink(client.cwd);localLink&&(early=requestDeployments(client,localLink,getQuery(localLink.projectId)))}let link;try{link=await getLinkedProject(client,{cwd:client.cwd})}catch(err){throw early?.cancel(),err}return early&&link.status==="linked"&&link.project.id===early.projectId&&link.org.id===early.orgId?{link,deployments:{pages:early.pages(),sentAt:early.sentAt}}:(early?.cancel(),{link})}async function readLocalLink(cwd){let orgId=(0,import_build_utils.getPlatformEnv)("ORG_ID"),projectId=(0,import_build_utils.getPlatformEnv)("PROJECT_ID");if(orgId||projectId)return orgId&&projectId?{orgId,projectId}:null;try{return await getLinkFromDir(getVercelDirectory(cwd))}catch{return null}}function requestDeployments(client,{orgId,projectId},query){query.set("teamId",orgId);let url=`/v6/deployments?${query}`,controller=new AbortController,sentAt=Date.now(),first=client.fetch(url,{signal:controller.signal,retry:{retries:0}}).catch(()=>null);return{orgId,projectId,sentAt,async*pages(){let page=await first;if(!page){yield*client.fetchPaginated(url);return}yield page;let next=page.pagination?.next;if(next){await sleep(100);let rest=new URLSearchParams(query);rest.set("until",String(next)),yield*client.fetchPaginated(`/v6/deployments?${rest}`)}},cancel(){controller.abort()}}}var ListTelemetryClient=class extends TelemetryClient{trackCliFlagAll(all){all&&this.trackCliFlag("all")}trackCliOptionMeta(meta){meta&&meta.length>0&&this.trackCliOption({option:"meta",value:this.redactedValue})}trackCliOptionPolicy(policy){policy&&policy.length>0&&this.trackCliOption({option:"policy",value:this.redactedValue})}trackCliOptionEnvironment(environment){environment&&this.trackCliOption({option:"environment",value:this.redactedTargetName(environment)})}trackCliOptionNext(next){next&&this.trackCliOption({option:"next",value:this.redactedValue})}trackCliOptionLimit(limit){limit&&this.trackCliOption({option:"limit",value:this.redactedValue})}trackCliFlagProd(flag){flag&&this.trackCliFlag("prod")}trackCliFlagYes(flag){flag&&this.trackCliFlag("yes")}trackCliFlagConfirm(flag){flag&&this.trackCliFlag("confirm")}trackCliOptionStatus(status){status&&this.trackCliOption({option:"status",value:this.redactedValue})}trackCliArgumentApp(app){app&&this.trackCliArgument({arg:"app",value:this.redactedValue})}trackCliFlagJson(json){json&&this.trackCliFlag("json")}};function toDate(timestamp){let date=new Date(timestamp),options={year:"2-digit",month:"2-digit",day:"2-digit"};return date.toLocaleDateString("en-US",options)}async function list(client){let{print,log,warn,error,note,debug,spinner}=output_manager_default,parsedArgs=null,flagsSpecification=getFlagsSpecification(listCommand.options);try{parsedArgs=parseArguments(client.argv.slice(2),flagsSpecification)}catch(error2){return printError(error2),2}let telemetry=new ListTelemetryClient({opts:{store:client.telemetryEventStore}});if(parsedArgs.flags["--help"])return telemetry.trackCliFlagHelp("list"),print(help(listCommand,{stream:client.stderr,columns:client.stderr.columns})),0;let validationResult=validateLsArgs({commandName:"ls [app]",args:parsedArgs.args,maxArgs:2,exitCode:2});if(validationResult!==0)return validationResult;let formatResult=validateJsonOutput(parsedArgs.flags);if(!formatResult.valid)return error(formatResult.error),2;let asJson=formatResult.jsonOutput;telemetry.trackCliFlagAll(parsedArgs.flags["--all"]),telemetry.trackCliFlagProd(parsedArgs.flags["--prod"]),telemetry.trackCliFlagYes(parsedArgs.flags["--yes"]),telemetry.trackCliOptionEnvironment(parsedArgs.flags["--environment"]),telemetry.trackCliOptionMeta(parsedArgs.flags["--meta"]),telemetry.trackCliOptionNext(parsedArgs.flags["--next"]),telemetry.trackCliOptionLimit(parsedArgs.flags["--limit"]),telemetry.trackCliOptionFormat(parsedArgs.flags["--format"]),telemetry.trackCliOptionPolicy(parsedArgs.flags["--policy"]),telemetry.trackCliOptionStatus(parsedArgs.flags["--status"]),"--confirm"in parsedArgs.flags&&(telemetry.trackCliFlagConfirm(parsedArgs.flags["--confirm"]),warn("`--confirm` is deprecated, please use `--yes` instead"),parsedArgs.flags["--yes"]=parsedArgs.flags["--confirm"]);let meta=parseMeta(parsedArgs.flags["--meta"]),policy=parsePolicy(parsedArgs.flags["--policy"]);warnDeprecatedProdFlag(client,parsedArgs.flags);let target=parseTarget({flagName:"environment",flags:parsedArgs.flags}),statusFlag=parsedArgs.flags["--status"],status;if(statusFlag){let validStatuses=["BUILDING","ERROR","INITIALIZING","QUEUED","READY","CANCELED","BLOCKED"],statusValues=statusFlag.split(",").map(s=>s.trim().toUpperCase()),invalidStatuses=statusValues.filter(s=>!validStatuses.includes(s));if(invalidStatuses.length>0)return error(`Invalid status values: ${invalidStatuses.join(", ")}. Valid values are: ${validStatuses.join(", ")}`),1;status=statusValues.join(",")}let paginationError,nextTimestamp,limitFlag;try{[nextTimestamp,limitFlag]=getPaginationOpts(parsedArgs.flags)}catch(err){paginationError=err}let limit=limitFlag??20,getDeploymentsQuery=projectId=>{let query=new URLSearchParams({limit:String(limit)});projectId&&query.set("projectId",projectId);for(let[k,v]of Object.entries(meta))query.set(`meta-${k}`,v);for(let[k,v]of Object.entries(policy))query.set(`policy-${k}`,v);return nextTimestamp&&query.set("until",String(nextTimestamp)),target&&query.set("target",target),status&&query.set("state",status),query},project,pagination,contextName="",app=parsedArgs.args[1],deployments=[],singleDeployment=!1,linkedDeployments,allFlag=parsedArgs.flags["--all"],showAllProjects=!1;if(allFlag&&app)return error("Cannot use --all option with a project argument"),2;if(app){if(!isValidName(app))return error(`The provided argument "${app}" is not a valid project name`),2;if(telemetry.trackCliArgumentApp(app),app.includes(".")){try{contextName=await getContextName(client)}catch(err){if((0,import_error_utils.isErrnoException)(err)&&(err.code==="NOT_AUTHORIZED"||err.code==="TEAM_DELETED"))return error(err.message),1}if(!contextName)return error("No context name found"),1;let host=toHost(app),deployment=await getDeployment(client,contextName,host);if(!deployment.projectId)return error(`Could not find a deployment for "${host}"`),1;app=deployment.projectId,note(`We suggest using ${getCommandName("inspect <deployment>")} for retrieving details about a single deployment`),deployments.push(deployment),singleDeployment=!0}let p=await getProjectByNameOrId(client,app);if(p instanceof ProjectNotFound)return exitWithNonInteractiveError(client,p,1,{variant:"list",projectName:app}),error(`The provided argument "${app}" is not a valid project name`),1;project=p}else if(allFlag)showAllProjects=!0;else{let linked=await getLinkedProjectWithDeployments(client,paginationError===void 0?getDeploymentsQuery:void 0),{link}=linked;if(linkedDeployments=linked.deployments,link.status==="error")return link.exitCode;link.status==="linked"?(project=link.project,client.config.currentTeam=link.org.id):showAllProjects=!0}if(!contextName)try{contextName=await getContextName(client)}catch(err){if((0,import_error_utils.isErrnoException)(err)&&(err.code==="NOT_AUTHORIZED"||err.code==="TEAM_DELETED"))return error(err.message),1}if(paginationError!==void 0)return printError(paginationError),paginationError instanceof InvalidNextError?2:1;let projectSlugLink=project?formatProject(contextName,project.name):null;if(!singleDeployment){asJson||spinner(`Fetching deployments in ${import_chalk.default.bold(contextName)}`);let start=linkedDeployments?.sentAt??Date.now();debug("Fetching deployments");let pages=linkedDeployments?.pages??client.fetchPaginated(`/v6/deployments?${getDeploymentsQuery(project?.id)}`);for await(let chunk of pages)if(deployments.push(...chunk.deployments),pagination=chunk.pagination,deployments.length>=limit)break;if(deployments.length=Math.min(deployments.length,limit),!deployments.length){if(asJson){let jsonOutput={deployments:[],pagination,contextName};client.stdout.write(`${JSON.stringify(jsonOutput,null,2)}
|
|
8
8
|
`)}else log(`No deployments found under ${import_chalk.default.bold(contextName)}.`);return 0}if(!asJson){let deploymentsLabel=target==="production"?"Production deployments":"Deployments";log(showAllProjects?`${deploymentsLabel} under ${import_chalk.default.bold(contextName)} ${elapsed(Date.now()-start)}`:`${deploymentsLabel} for ${projectSlugLink} ${elapsed(Date.now()-start)}`)}}if(asJson){let jsonOutput={contextName,deployments:deployments.sort(sortByCreatedAt).map(dep=>({id:dep.id,url:dep.url,name:dep.name,state:dep.readyState,target:dep.target,customEnvironment:dep.customEnvironment?{id:dep.customEnvironment.id,slug:dep.customEnvironment.slug}:void 0,createdAt:dep.createdAt,buildingAt:dep.buildingAt,ready:dep.ready,creator:dep.creator?{uid:dep.creator.uid,username:dep.creator.username}:void 0,meta:dep.meta})),pagination};return client.stdout.write(`${JSON.stringify(jsonOutput,null,2)}
|
|
9
9
|
`),0}let headers=["Age","Project","Deployment","Status","Environment"],showPolicy=Object.keys(policy).length>0;showPolicy||headers.push("Duration","Username"),showPolicy&&headers.push("Proposed Expiration");let urls=[],tablePrint=table([headers.map(header=>import_chalk.default.bold(import_chalk.default.cyan(header))),...deployments.sort(sortByCreatedAt).map(dep=>{urls.push(`https://${dep.url}`);let proposedExp=dep.proposedExpiration?toDate(Math.min(Date.now(),dep.proposedExpiration)):"No expiration",createdAt=(0,import_ms.default)(Date.now()-(dep?.undeletedAt??dep.createdAt)),targetName=dep.customEnvironment?.slug||(dep.target==="production"?"Production":"Preview"),targetSlug=dep.customEnvironment?.id||dep.target||"preview";return[import_chalk.default.gray(createdAt),formatProject(contextName,dep.name),`https://${dep.url}`,stateString(dep.readyState||""),formatEnvironment(contextName,dep.name,{id:targetSlug,slug:targetName}),...showPolicy?[]:[import_chalk.default.gray(getDeploymentDuration(dep))],...showPolicy?[]:[import_chalk.default.gray(dep.creator?.username)],...showPolicy?[import_chalk.default.gray(proposedExp)]:[]]}).filter(app2=>app2===null?filterUniqueApps():()=>!0)],{hsep:5}).replace(/^/gm," ");if(print(`
|
|
10
10
|
${tablePrint}
|
|
@@ -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{createProject}from"../../chunks/chunk-QHJLRTVY.js";import{require_frameworks}from"../../chunks/chunk-6Y2ZL5XJ.js";import{handleCommandTypo}from"../../chunks/chunk-
|
|
7
|
+
import{createProject}from"../../chunks/chunk-QHJLRTVY.js";import{require_frameworks}from"../../chunks/chunk-6Y2ZL5XJ.js";import{handleCommandTypo}from"../../chunks/chunk-6V67VZJD.js";import{getProjectByCwdOrLink}from"../../chunks/chunk-OV7G6RIQ.js";import{resolveProjectContext}from"../../chunks/chunk-JULKMXVP.js";import{formatProject}from"../../chunks/chunk-YRK2BCTJ.js";import{joinWords}from"../../chunks/chunk-4VFYJU37.js";import{tryOpenApiFallback}from"../../chunks/chunk-YIOT5B5Z.js";import"../../chunks/chunk-GHAY4PSD.js";import{did_you_mean_default}from"../../chunks/chunk-DWZBL4NK.js";import{resolveOpenApiTagForProjectsCli}from"../../chunks/chunk-T3S63EA3.js";import{email}from"../../chunks/chunk-6IDNVZZR.js";import"../../chunks/chunk-NDWGYZRT.js";import"../../chunks/chunk-ZBJ44DRL.js";import{require_async_sema}from"../../chunks/chunk-NZ2TFADV.js";import{readOnOffOption,rewriteLegacyOnOffValues}from"../../chunks/chunk-APNR444T.js";import{INVALID_NEXT_MESSAGE,InvalidNextError,getPaginationOpts,parseNumericCursor}from"../../chunks/chunk-C6GY2G73.js";import{getCommandFlags}from"../../chunks/chunk-XGTKHQTT.js";import{canPrompt}from"../../chunks/chunk-IQ7FPAI4.js";import{formatDate}from"../../chunks/chunk-HRR57QNP.js";import"../../chunks/chunk-PFD7LETF.js";import{getNextPageCommand,printNextPageCommand}from"../../chunks/chunk-B3ETPBO4.js";import{getInvalidSubcommand}from"../../chunks/chunk-TG2RCYTH.js";import{stamp_default}from"../../chunks/chunk-A2RZZQEP.js";import{table}from"../../chunks/chunk-OTJNOMRV.js";import{getRenamedOption,renameOptionInArgs,reportRenamedOptionError,withWarnings}from"../../chunks/chunk-2QSNFVB6.js";import"../../chunks/chunk-Q7D7RGXM.js";import{getSubcommand}from"../../chunks/chunk-ETV3C2CV.js";import{getTeams}from"../../chunks/chunk-YEPB52XE.js";import{PROJECT_MEMBER_ROLES,accessGroupsSubcommand,accessSummarySubcommand,addSubcommand8 as addSubcommand,checksAddFlags,checksRemoveFlags,checksSubcommand,dangerouslyDeleteImmutableStaticAssetSubcommand,getCommandAliases,inspectSubcommand13 as inspectSubcommand,listSubcommand19 as listSubcommand,membersAddFlags,membersRemoveFlags,membersSubcommand,observabilityDisableSubcommand,observabilitySubcommand,pauseSubcommand2 as pauseSubcommand,prioritySubcommand,projectCommand,protectionEnableSubcommand,protectionSubcommand,removeSubcommand13 as removeSubcommand,renameSubcommand,resumeSubcommand2 as resumeSubcommand,speedInsightsSubcommand,tokenSubcommand2 as tokenSubcommand,updateSubcommand10 as updateSubcommand,webAnalyticsDisableSubcommand,webAnalyticsSubcommand}from"../../chunks/chunk-2PYFJXKS.js";import"../../chunks/chunk-3KSTUMR6.js";import"../../chunks/chunk-EZL4AJXH.js";import"../../chunks/chunk-45UDRX4C.js";import"../../chunks/chunk-J52UJYOK.js";import"../../chunks/chunk-GZWYJT4C.js";import"../../chunks/chunk-3AXMZRAB.js";import"../../chunks/chunk-FQVSBXRY.js";import"../../chunks/chunk-GP5MFCGO.js";import"../../chunks/chunk-V5A4EBV3.js";import"../../chunks/chunk-IECNFRTK.js";import"../../chunks/chunk-A6F3EE2O.js";import"../../chunks/chunk-K2R3QPOC.js";import"../../chunks/chunk-IHRM7L23.js";import"../../chunks/chunk-HTFQFHPR.js";import"../../chunks/chunk-LFOWP74R.js";import"../../chunks/chunk-DBV6AB6T.js";import"../../chunks/chunk-37DIJCWK.js";import"../../chunks/chunk-7E6UJXLR.js";import"../../chunks/chunk-JALVF3C2.js";import"../../chunks/chunk-7V2PXIVW.js";import{printError}from"../../chunks/chunk-D3GYYGSS.js";import{help}from"../../chunks/chunk-33U57CNE.js";import"../../chunks/chunk-3G3FQYMW.js";import{getContextName,getScope,scopeFlagPassed}from"../../chunks/chunk-IU6PHFPQ.js";import{TelemetryClient}from"../../chunks/chunk-SBBD2Q5A.js";import"../../chunks/chunk-2EYYB6YN.js";import"../../chunks/chunk-NWGBDBZI.js";import{AGENT_ACTION,AGENT_REASON,AGENT_STATUS,BUY_PRO_COMMAND,PRIORITY_PROJECT_ENABLE_COMMAND,buildCommandWithGlobalFlags,buildCommandWithYes,buyProFix,exitWithNonInteractiveError,getExitCodeForReason,isProOrEnterprisePlan,outputActionRequired,outputAgentError,shouldEmitNonInteractiveCommandError,targetRecovery,writeAgentError}from"../../chunks/chunk-KAUKCHQF.js";import"../../chunks/chunk-QLW5DCM4.js";import{getProjectByNameOrId,getUser,require_pluralize,sleep}from"../../chunks/chunk-QZEZCUUZ.js";import{printAlignedLabel}from"../../chunks/chunk-3LQ2ADXO.js";import"../../chunks/chunk-MCP63EVQ.js";import"../../chunks/chunk-4NTBYNFR.js";import{getTypedOptionName,parseArguments}from"../../chunks/chunk-KIMIK4SG.js";import{getTeamByIdOrSlug,quoteArg}from"../../chunks/chunk-F53OKXYI.js";import{validateJsonOutput,wantsMachineReadableOutput,warnDeprecatedSubcommand}from"../../chunks/chunk-JRBPVMQO.js";import"../../chunks/chunk-LUX4PBJL.js";import"../../chunks/chunk-OPORM35X.js";import{require_ms}from"../../chunks/chunk-MXTC4ZAQ.js";import"../../chunks/chunk-OCR5CRTH.js";import"../../chunks/chunk-4SAVH3H7.js";import{LinkRequiredError,ProjectNotFound,isAPIError}from"../../chunks/chunk-FXEMEIST.js";import{getCommandName,getCommandNamePlain,packageName}from"../../chunks/chunk-JESNVRVR.js";import{emoji,output_manager_default,prependEmoji,require_build_utils}from"../../chunks/chunk-ZRJKGAUT.js";import"../../chunks/chunk-BLUPZPAS.js";import"../../chunks/chunk-RM3ZDRYE.js";import"../../chunks/chunk-YHPPP3SF.js";import"../../chunks/chunk-OO572JUC.js";import"../../chunks/chunk-PUKYAALC.js";import{getFlagsSpecification,getGlobalFlagsFromArgs,stripSensitiveAuthArgs}from"../../chunks/chunk-YPPDRKVC.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-5O7CRJE5.js";import"../../chunks/chunk-U3J7VS56.js";import"../../chunks/chunk-7EJQLVWX.js";import"../../chunks/chunk-SCV7XEEO.js";import{__toESM}from"../../chunks/chunk-BZENIQ7N.js";var import_chalk=__toESM(require_source(),1),import_ms=__toESM(require_ms(),1);var ProjectAddTelemetryClient=class extends TelemetryClient{trackCliArgumentName(name){name&&this.trackCliArgument({arg:"name",value:this.redactedValue})}};async function add(client,argv){let telemetryClient=new ProjectAddTelemetryClient({opts:{store:client.telemetryEventStore}}),parsedArgs,flagsSpecification=getFlagsSpecification(addSubcommand.options);try{parsedArgs=parseArguments(argv,flagsSpecification)}catch(error){return printError(error),2}let{args}=parsedArgs;if(args.length!==1){if(output_manager_default.error(`Invalid number of arguments. Usage: ${import_chalk.default.cyan(`${getCommandName("project create <name>")}`)}`),args.length>1){let example=import_chalk.default.cyan(`${getCommandName(`project create "${args.join(" ")}"`)}`);output_manager_default.log(`If your project name has spaces, make sure to wrap it in quotes. Example:
|
|
8
8
|
${example} `)}return 2}let start=Date.now(),[name]=args;telemetryClient.trackCliArgumentName(name);try{await createProject(client,{name})}catch(err){if(isAPIError(err)&&err.code==="too_many_projects")return output_manager_default.prettyError(err),1;if(!(isAPIError(err)&&err.status===409))throw err}let elapsed=(0,import_ms.default)(Date.now()-start),contextName=await getContextName(client);return output_manager_default.log(`${import_chalk.default.cyan("Success!")} Project ${import_chalk.default.bold(name.toLowerCase())} added (${import_chalk.default.bold(contextName)}) ${import_chalk.default.gray(`[${elapsed}]`)}`),0}var import_chalk2=__toESM(require_source(),1);async function accessSummary(client,argv){let parsedArgs,flagsSpecification=getFlagsSpecification(accessSummarySubcommand.options);try{parsedArgs=parseArguments(argv,flagsSpecification)}catch(error){return client.nonInteractive&&outputAgentError(client,{status:"error",reason:"invalid_arguments",message:error instanceof Error?error.message:String(error)},2),printError(error),2}if(parsedArgs.args.length>1)return output_manager_default.error("Invalid number of arguments. Usage: `vercel project access-summary [name]`"),2;let formatResult=validateJsonOutput(parsedArgs.flags);if(!formatResult.valid)return output_manager_default.error(formatResult.error),2;let asJson=formatResult.jsonOutput,summary;try{let project=await getProjectByCwdOrLink({client,commandName:"project access-summary",projectNameOrId:parsedArgs.args[0],forReadOnlyCommand:!0});summary=await client.fetch(`/v1/projects/${encodeURIComponent(project.id)}/members/summary`)}catch(err){return exitWithNonInteractiveError(client,err,1,{variant:"access-summary"}),printError(err),1}if(asJson)return client.stdout.write(`${JSON.stringify(summary,null,2)}
|
|
9
9
|
`),0;let entries=Object.entries(summary).sort(([a],[b])=>a.localeCompare(b));if(entries.length===0)return output_manager_default.log("No summary data returned."),0;let rows=[["Role","Count"].map(h=>(0,import_chalk2.gray)(h)),...entries.map(([role,count])=>[role,String(count)])];return client.stderr.write(`${table(rows,{hsep:3})}
|
|
10
10
|
`),0}var import_chalk3=__toESM(require_source(),1);import{readFileSync}from"fs";import{resolve}from"path";var REQUIRES=["build-ready","deployment-url","none"],BLOCKING_STAGES=["build-start","deployment-start","deployment-alias","deployment-promotion","none"];function emitValidationError(client,message,exitCode,extra){outputAgentError(client,{status:"error",reason:AGENT_REASON.INVALID_ARGUMENTS,message,...extra},exitCode)}async function checksAdd(client,argv){let parsedArgs,flagsSpecification=getFlagsSpecification([...checksAddFlags]);try{parsedArgs=parseArguments(argv,flagsSpecification)}catch(error){return client.nonInteractive&&outputAgentError(client,{status:"error",reason:AGENT_REASON.INVALID_ARGUMENTS,message:error instanceof Error?error.message:String(error)},2),printError(error),2}if(parsedArgs.args.length>1)return emitValidationError(client,"Invalid number of arguments. Usage: `vercel project checks add [name]`",2),output_manager_default.error("Invalid number of arguments. Usage: `vercel project checks add [name]`"),2;let formatResult=validateJsonOutput(parsedArgs.flags);if(!formatResult.valid)return client.nonInteractive&&emitValidationError(client,formatResult.error,1),output_manager_default.error(formatResult.error),1;let asJson=formatResult.jsonOutput||!!client.nonInteractive,filePath=parsedArgs.flags["--file"],checkName=parsedArgs.flags["--check-name"],requires=parsedArgs.flags["--requires"],blocksFlag=parsedArgs.flags["--blocks"],timeout=parsedArgs.flags["--timeout"],targetsRaw=parsedArgs.flags["--targets"],sourceRaw=parsedArgs.flags["--source"],body;if(typeof filePath=="string"&&filePath.length>0)try{let raw=readFileSync(resolve(client.cwd,filePath),"utf8"),parsed=JSON.parse(raw);if(!parsed||typeof parsed!="object"||Array.isArray(parsed))return emitValidationError(client,"`--file` must contain a JSON object.",1),output_manager_default.error("`--file` must contain a JSON object."),1;body=parsed}catch(err){let msg=err instanceof Error?err.message:String(err);return emitValidationError(client,`Failed to read \`--file\`: ${msg}`,1),output_manager_default.error(`Failed to read \`--file\`: ${msg}`),1}else{if(typeof checkName!="string"||!checkName.trim())return emitValidationError(client,"Provide `--check-name` and `--requires`, or a `--file` with the full JSON body.",1,{hint:'See `vercel project checks --help` and the REST API "Create a check" documentation.',next:[{command:buildCommandWithGlobalFlags(client.argv,"project checks add <name> --file <path>"),when:"Create from a JSON file (replace paths)"}]}),output_manager_default.error("Provide `--check-name` and `--requires`, or a `--file` with the full JSON body. See `vercel project checks add --help`."),1;if(typeof requires!="string"||!requires.trim())return emitValidationError(client,"`--requires` is required when using `--check-name` (build-ready, deployment-url, or none).",1),output_manager_default.error("`--requires` is required when using `--check-name` (build-ready, deployment-url, or none)."),2;if(!REQUIRES.includes(requires))return emitValidationError(client,`\`--requires\` must be one of: ${REQUIRES.join(", ")}`,1),output_manager_default.error(`\`--requires\` must be one of: ${REQUIRES.join(", ")}`),2;if(body={name:checkName.trim(),requires:requires.trim()},typeof blocksFlag=="string"&&blocksFlag.length>0){if(!BLOCKING_STAGES.includes(blocksFlag))return emitValidationError(client,`\`--blocks\` must be one of: ${BLOCKING_STAGES.join(", ")}`,1),output_manager_default.error(`\`--blocks\` must be one of: ${BLOCKING_STAGES.join(", ")}`),2;body.blocks=blocksFlag}if(typeof timeout=="number"&&(body.timeout=timeout),typeof targetsRaw=="string"&&targetsRaw.trim()&&(body.targets=targetsRaw.split(",").map(s=>s.trim()).filter(Boolean)),typeof sourceRaw=="string"&&sourceRaw.trim())try{body.source=JSON.parse(sourceRaw)}catch{return emitValidationError(client,"`--source` must be valid JSON.",1),output_manager_default.error("`--source` must be valid JSON."),1}}try{let project=await getProjectByCwdOrLink({client,commandName:"project checks add",projectNameOrId:parsedArgs.args[0],forReadOnlyCommand:!0}),result=await client.fetch(`/v2/projects/${encodeURIComponent(project.id)}/checks`,{method:"POST",body});if(asJson){let id2=String(result.id??"");return client.nonInteractive?client.stdout.write(`${JSON.stringify({status:AGENT_STATUS.OK,check:result,projectId:project.id,projectName:project.name,message:id2?`Created deployment check ${id2} on ${project.name}.`:`Created deployment check on ${project.name}.`,next:[{command:buildCommandWithGlobalFlags(client.argv,"project checks"),when:"List checks for this project"},{command:buildCommandWithGlobalFlags(client.argv,"project checks remove <check_id>"),when:"Remove a check by id if needed"}]},null,2)}
|
package/dist/commands-account.js
CHANGED
|
@@ -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{createCertForCns,extractDomain,isWildcardAlias,setupDomain}from"./chunks/chunk-UKJAWDQX.js";import"./chunks/chunk-C7D43G3N.js";import{joinWords}from"./chunks/chunk-4VFYJU37.js";import{api,tryOpenApiFallback}from"./chunks/chunk-P2SVNHTJ.js";import"./chunks/chunk-GHAY4PSD.js";import{list_item_default}from"./chunks/chunk-BTI5TG6Q.js";import{collectList,decodeListCursor,sliceList}from"./chunks/chunk-LOO42IMZ.js";import{getTeamBillingUrl}from"./chunks/chunk-XR6QY7RR.js";import{checkExistsAndConnect,disconnectGitProvider,list,parseRepoUrl,printRemoteUrls,selectAndParseRemoteUrl}from"./chunks/chunk-J6L5MDTX.js";import"./chunks/chunk-EAUDC24V.js";import"./chunks/chunk-RRDNKB2X.js";import"./chunks/chunk-MVGTMPMI.js";import"./chunks/chunk-SACGQMVQ.js";import{ellipsis}from"./chunks/chunk-F4KY2TOK.js";import{box}from"./chunks/chunk-RLKS5G6C.js";import{did_you_mean_default}from"./chunks/chunk-DWZBL4NK.js";import{OpenApiCache,resolveOpenApiTagForTeamsCli}from"./chunks/chunk-7VTPAXDC.js";import{email}from"./chunks/chunk-6IDNVZZR.js";import{isValidName}from"./chunks/chunk-PADL3C6Z.js";import{handleValidationError,outputError,parseTimeFlag,validateOptionalIntegerRange,validateTimeBound,validateTimeOrder}from"./chunks/chunk-XSQVCDSD.js";import{getProtectionForDeploymentAlias,getProtectionForProductionDomain,readEnabledProtection}from"./chunks/chunk-V6NMCQUQ.js";import"./chunks/chunk-VT6RIZJH.js";import"./chunks/chunk-ID663OJ7.js";import{ensureLink}from"./chunks/chunk-VM3R6MAM.js";import{getDeployment,toHost}from"./chunks/chunk-VAWZZK3Y.js";import{mapCertError}from"./chunks/chunk-OKNDHNH6.js";import{require_open}from"./chunks/chunk-PVASGBEF.js";import"./chunks/chunk-D2XEF6G4.js";import{require_tar_fs}from"./chunks/chunk-WZ2R4Z7N.js";import{NO_RETRY,TEAM_BUDGET,budgetAmountDollars,budgetPauses,budgetStatePayload,buy,canPromptForCharge,deleteCertById,findBudget,formatUsd,formatUsdWhole,getDomains,getProjectDomain,getTeamMemberByIdentifier,getTeamSpend,getWebhook,hasPauseThreshold,isDomainExternal,listBudgetAlerts,listBudgets,pausePercentsOutside100,percentUsed,removeAliasById,removeBudget,removeReceipt,setBudget,setSavedReceipt,spendDollars,spendPayload,teamMemberLabel,thresholdsForSet,toBudgetState}from"./chunks/chunk-OETX5QG4.js";import{require_cjs}from"./chunks/chunk-64VMAYM6.js";import"./chunks/chunk-QAYWROXQ.js";import{external_exports}from"./chunks/chunk-2NABMKFV.js";import{getAliases}from"./chunks/chunk-RUXABBNV.js";import{INVALID_NEXT_MESSAGE,InvalidNextError,getPaginationOpts,parseNumericCursor}from"./chunks/chunk-C6GY2G73.js";import{getCommandFlags}from"./chunks/chunk-XGTKHQTT.js";import{canPrompt}from"./chunks/chunk-IQ7FPAI4.js";import{require_execa}from"./chunks/chunk-T34C75TI.js";import"./chunks/chunk-GD7AV7BO.js";import{formatDate}from"./chunks/chunk-HRR57QNP.js";import"./chunks/chunk-PFD7LETF.js";import{MAX_LIST_LIMIT,getNextPageCommand,parseListLimit,printNextPageCommand,printNextPageHint}from"./chunks/chunk-KHADRPBJ.js";import{validateLsArgs}from"./chunks/chunk-XTKGBVSF.js";import{getInvalidSubcommand}from"./chunks/chunk-TG2RCYTH.js";import{formatTable}from"./chunks/chunk-FAELJM4F.js";import{stamp_default}from"./chunks/chunk-A2RZZQEP.js";import{table}from"./chunks/chunk-5SIC5273.js";import{getRenamedOption,renameOptionInArgs,reportRenamedOptionError,withWarnings}from"./chunks/chunk-FVIVFDCB.js";import"./chunks/chunk-Q7D7RGXM.js";import{getSubcommand as getSubcommand3}from"./chunks/chunk-ETV3C2CV.js";import{getTeams}from"./chunks/chunk-P6ZTEDX2.js";import{CREDIT_TYPE_LABELS,SUPPORTED_ADDON_NAMES,SUPPORTED_CREDIT_TYPES,addSubcommand10 as addSubcommand4,addSubcommand11 as addSubcommand5,addSubcommand2 as addSubcommand,addSubcommand4 as addSubcommand2,addSubcommand5 as addSubcommand3,addonSubcommand,agentRunsCommand,alertsListSubcommand2 as alertsListSubcommand,alertsSubcommand2 as alertsSubcommand,aliasCommand,backupsSubcommand,bisectCommand,budgetCommand,buyCommand,certsCommand,connectSubcommand,createSubcommand10 as createSubcommand2,createSubcommand7 as createSubcommand,creditsSubcommand,disconnectSubcommand,dnsCommand,domainSubcommand,getCommandAliases,getSubcommand,getSubcommand5 as getSubcommand2,gitCommand,globalConfigCommand,importSubcommand,initCommand,inspectSubcommand,inspectSubcommand12 as inspectSubcommand3,inspectSubcommand14 as inspectSubcommand4,inspectSubcommand6 as inspectSubcommand2,inviteSubcommand,isCustomEnvironmentAddonAlias,issueSubcommand,itemsSubcommand,listSubcommand,listSubcommand11 as listSubcommand4,listSubcommand15 as listSubcommand5,listSubcommand18 as listSubcommand6,listSubcommand24 as listSubcommand7,listSubcommand25 as listSubcommand8,listSubcommand28 as listSubcommand9,listSubcommand29 as listSubcommand10,listSubcommand3 as listSubcommand2,listSubcommand5 as listSubcommand3,membersInviteSubcommand,membersRemoveSubcommand,membersSubcommand2 as membersSubcommand,organizationsCommand,proSubcommand,projectsSubcommand,removeSubcommand15 as removeSubcommand5,removeSubcommand16 as removeSubcommand6,removeSubcommand17 as removeSubcommand7,removeSubcommand2 as removeSubcommand,removeSubcommand4 as removeSubcommand2,removeSubcommand7 as removeSubcommand3,removeSubcommand9 as removeSubcommand4,requestSubcommand,setSubcommand,setSubcommand3 as setSubcommand2,ssoSubcommand,switchSubcommand,teamsAddSubcommand,teamsCommand,teamsCreateSubcommand,teamsListSubcommand,teamsSubcommand,tokensCommand,tokensSubcommand,traceSubcommand,updateSubcommand2 as updateSubcommand,updateSubcommand6 as updateSubcommand2,updateSubcommand9 as updateSubcommand3,webhooksCommand}from"./chunks/chunk-FXF3NEJM.js";import"./chunks/chunk-O7COT3YB.js";import"./chunks/chunk-2FHZYQPY.js";import"./chunks/chunk-M7LUSXMG.js";import"./chunks/chunk-C6IITJ5S.js";import"./chunks/chunk-TZT3VYZ3.js";import"./chunks/chunk-HMWDOAWO.js";import"./chunks/chunk-QNL22LAW.js";import"./chunks/chunk-UWMPVTXG.js";import"./chunks/chunk-5CZNUB7Y.js";import"./chunks/chunk-AUY363W7.js";import"./chunks/chunk-OTYF3ZZW.js";import"./chunks/chunk-3H36RI7C.js";import"./chunks/chunk-BGWS5R5R.js";import"./chunks/chunk-UJQ6PBRF.js";import"./chunks/chunk-LFOWP74R.js";import"./chunks/chunk-GVPVWHFK.js";import"./chunks/chunk-N5CXIFE2.js";import"./chunks/chunk-FNA4MIOH.js";import"./chunks/chunk-JALVF3C2.js";import"./chunks/chunk-VWHIWUGJ.js";import{printError}from"./chunks/chunk-LCMNJNSQ.js";import{help}from"./chunks/chunk-SLDWAIO3.js";import"./chunks/chunk-67GZ5REA.js";import"./chunks/chunk-BS32OUOC.js";import{param}from"./chunks/chunk-3G3FQYMW.js";import{getContextName,getScope}from"./chunks/chunk-IFXMG2WQ.js";import{TelemetryClient}from"./chunks/chunk-4BIGNS67.js";import"./chunks/chunk-2EYYB6YN.js";import"./chunks/chunk-NWGBDBZI.js";import{AGENT_ACTION,AGENT_REASON,AGENT_STATUS,buildCommandWithGlobalFlags,buildCommandWithYes,exitWithNonInteractiveError,getExitCodeForReason,openUrlInBrowserCommand,outputActionRequired,outputAgentError,shouldEmitNonInteractiveCommandError,withGlobalFlags}from"./chunks/chunk-I7U2XP4X.js";import"./chunks/chunk-EPO7P734.js";import{getGitConfigPath,getLinkFromDir,getLinkedProject,getUser,getVercelDirectory,humanizePath,parseGitConfig,pluckRemoteUrls,require_pluralize,writeToConfigFile}from"./chunks/chunk-RHFPMM4R.js";import{formatAlignedLabel,printAlignedLabel}from"./chunks/chunk-26QK3I2S.js";import"./chunks/chunk-55H6G46X.js";import"./chunks/chunk-4NTBYNFR.js";import{parseArguments}from"./chunks/chunk-F22QLVTX.js";import{getTeamByIdOrSlug,quoteArg}from"./chunks/chunk-F53OKXYI.js";import{validateJsonOutput,warnDeprecatedOption,warnDeprecatedSubcommand}from"./chunks/chunk-7SAEZ4NC.js";import"./chunks/chunk-LUX4PBJL.js";import"./chunks/chunk-OPORM35X.js";import{require_ms}from"./chunks/chunk-MXTC4ZAQ.js";import"./chunks/chunk-OCR5CRTH.js";import"./chunks/chunk-4SAVH3H7.js";import{AliasInUse,CertConfigurationError,CertError,CertMissing,CertNotFound,CertOrderNotFound,CertsPermissionDenied,DNSConflictingRecord,DNSInvalidPort,DNSInvalidType,DNSPermissionDenied,DeploymentFailedAliasImpossible,DeploymentNotFound,DeploymentNotReady,DeploymentPermissionDenied,DomainAlreadyExists,DomainChargeOutcomeUnknown,DomainNotAvailable,DomainNotFound,DomainPaymentError,DomainPermissionDenied,DomainPriceChanged,DomainPurchasePending,DomainPurchaseRefundFailed,DomainPurchaseRefunded,InvalidAlias,InvalidAliasInConfig,InvalidDeploymentId,InvalidDomain,NoAliasInConfig,NowError,SourceNotFound,TLDNotSupportedViaCLI,TooManyRequests,UnexpectedDomainPurchaseError,UnsupportedTLD,UserAborted,isAPIError}from"./chunks/chunk-YCJHUYBJ.js";import{cmd,getCommandName,getCommandNamePlain,packageName,require_lib}from"./chunks/chunk-JESNVRVR.js";import{emoji,eraseLines,link_default,output_manager_default,prependEmoji}from"./chunks/chunk-DWOJP4ST.js";import"./chunks/chunk-BLUPZPAS.js";import{require_dist}from"./chunks/chunk-RM3ZDRYE.js";import"./chunks/chunk-D3AHZ5LI.js";import"./chunks/chunk-2GHZGOWT.js";import"./chunks/chunk-YHPPP3SF.js";import"./chunks/chunk-OO572JUC.js";import"./chunks/chunk-PUKYAALC.js";import{formatOption,getFlagsSpecification,getGlobalFlagsFromArgs,getSameSubcommandSuggestionFlags,jsonOption,normalizeFlagName,stripSensitiveAuthArgs}from"./chunks/chunk-A2UZ2O7H.js";import{chars_default}from"./chunks/chunk-2BKALEOP.js";import{require_source}from"./chunks/chunk-NB2WLB3J.js";import"./chunks/chunk-ISWW3DKF.js";import"./chunks/chunk-BRQUZ5NC.js";import"./chunks/chunk-5O7CRJE5.js";import{toNodeReadable}from"./chunks/chunk-U3J7VS56.js";import"./chunks/chunk-7EJQLVWX.js";import"./chunks/chunk-SCV7XEEO.js";import{__toESM}from"./chunks/chunk-BZENIQ7N.js";var AgentRunsTelemetryClient=class extends TelemetryClient{trackCliSubcommandList(actual){this.trackCliSubcommand({subcommand:"list",value:actual})}trackCliSubcommandInspect(actual){this.trackCliSubcommand({subcommand:"inspect",value:actual})}trackCliSubcommandTrace(actual){this.trackCliSubcommand({subcommand:"trace",value:actual})}trackCliSubcommandProjects(actual){this.trackCliSubcommand({subcommand:"projects",value:actual})}};var import_chalk2=__toESM(require_source(),1);var AGENT_RUNS_API_BASE="https://vercel.com/api/observability/agent-runs",DEFAULT_TRACE_MAX_FIELD_LENGTH=8e3,MAX_TRACE_FIELD_LENGTH=5e4;function getAgentRunsApiBase(){return process.env.VERCEL_AGENT_RUNS_API_URL||AGENT_RUNS_API_BASE}function resolveAgentRunsWindow(since,until){if(!since)return;let from=parseTimeFlag(since),to=until?parseTimeFlag(until):new Date;return{from:Math.floor(from.getTime()/1e3),to:Math.floor(to.getTime()/1e3)}}function buildAgentRunsUrl(query){let url=new URL(getAgentRunsApiBase());url.searchParams.set("teamSlug",query.teamId),query.view==="team"?url.searchParams.set("view","team"):query.projectId&&url.searchParams.set("project",query.projectId),url.searchParams.set("environment",query.environment||"production");let window=query.window??resolveAgentRunsWindow(query.since,query.until);return window&&(url.searchParams.set("from",String(window.from)),url.searchParams.set("to",String(window.to))),typeof query.page=="number"&&url.searchParams.set("page",String(Math.max(1,Math.floor(query.page)))),typeof query.pageSize=="number"&&url.searchParams.set("pageSize",String(Math.max(1,Math.floor(query.pageSize)))),query.search&&url.searchParams.set("search",query.search),query.cursor&&url.searchParams.set("cursor",query.cursor),query.runId&&url.searchParams.set("runId",query.runId),query.trace&&url.searchParams.set("trace","1"),query.traceStreamId&&url.searchParams.set("traceStreamId",query.traceStreamId),query.traceAfterCursor&&url.searchParams.set("traceAfterCursor",query.traceAfterCursor),typeof query.traceBeforeChunk=="number"&&url.searchParams.set("traceBeforeChunk",String(query.traceBeforeChunk)),url.href}async function fetchAgentRuns(client,query){return client.fetch(buildAgentRunsUrl(query),{useCurrentTeam:!1})}var MISSING_PROJECT_SCOPE_MESSAGE="No linked project found. Run `vercel link`, pass --cwd to a linked dir, or use --scope <team> and --project <name>.",MISSING_TEAM_SCOPE_MESSAGE="No team scope found. Run `vercel link`, pass --cwd to a linked dir, or use --scope <team>.";async function resolveAgentRunsScope(client,{scopeFlag,projectFlag,requireProject}){let flagScope=scopeFlag?.trim()||void 0,flagProject=projectFlag?.trim()||void 0;if(flagScope&&(flagProject||!requireProject))return{ok:!0,teamId:flagScope,projectId:flagProject,contextName:flagProject?`${flagScope}/${flagProject}`:flagScope};let linkedProject=await getLinkedProject(client);if(linkedProject.status==="error")return{ok:!1,exitCode:linkedProject.exitCode};if(linkedProject.status==="linked"){let{org,project}=linkedProject;if(flagScope&&flagScope!==org.id&&flagScope!==org.slug)return{ok:!1,exitCode:invalidArguments(client,`\`--scope ${flagScope}\` doesn't match the linked project's team. Pass \`--project <name>\` to query a project in that team.`)};let teamName=flagScope??org.slug,projectName=requireProject?flagProject??project.name:flagProject;return{ok:!0,teamId:flagScope??org.id,projectId:requireProject?flagProject??project.id:flagProject,contextName:projectName?`${teamName}/${projectName}`:teamName}}let message=requireProject?MISSING_PROJECT_SCOPE_MESSAGE:MISSING_TEAM_SCOPE_MESSAGE;return outputAgentError(client,{status:AGENT_STATUS.ERROR,reason:AGENT_REASON.NOT_LINKED,message}),output_manager_default.error(message),{ok:!1,exitCode:1}}function normalizeApiErrorText(message){return message.replace(/\s*\(\d{3}\)\s*$/,"").trim()}function handleAgentRunsApiError(client,err){if(isAPIError(err)){let reason=err.status===403?"forbidden":err.status===401?"not_authorized":err.status===404?AGENT_REASON.NOT_FOUND:err.status===429?"rate_limited":AGENT_REASON.API_ERROR;outputAgentError(client,{status:AGENT_STATUS.ERROR,reason,message:normalizeApiErrorText(err.serverMessage||err.message)})}else outputAgentError(client,{status:AGENT_STATUS.ERROR,reason:"unexpected_error",message:err instanceof Error?err.message:String(err)});printError(err)}function invalidArguments(client,message){return outputAgentError(client,{status:AGENT_STATUS.ERROR,reason:AGENT_REASON.INVALID_ARGUMENTS,message}),output_manager_default.error(message),2}function normalizeTraceMaxFieldLength(value){return typeof value!="number"||!Number.isFinite(value)?DEFAULT_TRACE_MAX_FIELD_LENGTH:Math.min(Math.max(Math.floor(value),0),MAX_TRACE_FIELD_LENGTH)}function truncateLargeStrings(value,maxLength){return maxLength===0?value:typeof value=="string"?value.length<=maxLength?value:`${value.slice(0,maxLength)}... [truncated ${value.length-maxLength} chars]`:Array.isArray(value)?value.map(item=>truncateLargeStrings(item,maxLength)):value&&typeof value=="object"?Object.fromEntries(Object.entries(value).map(([key,entry])=>[key,truncateLargeStrings(entry,maxLength)])):value}import{createHash}from"node:crypto";var import_chalk=__toESM(require_source(),1),import_ms=__toESM(require_ms(),1),import_title=__toESM(require_lib(),1);function isRecord(value){return typeof value=="object"&&value!==null&&!Array.isArray(value)}function quoteCommandArgument(value,placeholder){return/[\x00-\x1F\x7F]/.test(value)?placeholder:/^[A-Za-z0-9_./:=@%+,-]+$/.test(value)?value:`'${value.replaceAll("'",`'"'"'`)}'`}function asArray(value){return Array.isArray(value)?value.filter(isRecord):[]}function readString(record,...keys){if(record)for(let key of keys){let value=record[key];if(typeof value=="string"&&value.length>0)return value}}function readNumber(record,...keys){if(record)for(let key of keys){let value=record[key];if(typeof value=="number"&&Number.isFinite(value))return value}}function readRecord(record,...keys){if(record)for(let key of keys){let value=record[key];if(isRecord(value))return value}}function readTimestampMs(record,...keys){if(record)for(let key of keys){let value=record[key];if(typeof value=="number"&&Number.isFinite(value))return value;if(typeof value=="string"&&value.length>0){let parsed=Date.parse(value);if(!Number.isNaN(parsed))return parsed}}}var PLACEHOLDER="-";function runId(run){return readString(run,"id","runId")??PLACEHOLDER}function formatRunStatus(run){let status=readString(run,"status","state");if(!status)return PLACEHOLDER;let label=(0,import_title.default)(status.replace(/[_-]+/g," ")),CIRCLE="\u25CF ";switch(status.toLowerCase()){case"completed":case"succeeded":case"success":case"ready":return import_chalk.default.green(CIRCLE)+label;case"error":case"errored":case"failed":case"timed out":case"timed_out":return import_chalk.default.red(CIRCLE)+label;case"running":case"in progress":case"in_progress":case"pending":case"queued":case"started":return import_chalk.default.yellow(CIRCLE)+label;case"canceled":case"cancelled":return import_chalk.default.gray(label);default:return label}}function runModel(run){return readString(run,"model")??PLACEHOLDER}function runTrigger(run){return readString(run,"trigger")??readString(readRecord(run,"trigger"),"label","type","name")??PLACEHOLDER}function runTitle(run){return readString(run,"title","name")}function runStartedAtMs(run){return readTimestampMs(run,"createdAt","startedAt","startTime")}function runDurationMs(run){let explicit=readNumber(run,"durationMs","duration");if(explicit!==void 0)return explicit;let start=readTimestampMs(run,"startedAt","createdAt","startTime"),end=readTimestampMs(run,"endedAt","completedAt","endTime");if(start!==void 0&&end!==void 0&&end>=start)return end-start}function runTotalTokens(run){let usage=readRecord(run,"usage")??run,total=readNumber(usage,"totalTokens","total");if(total!==void 0)return total;let input=readNumber(usage,"inputTokens","promptTokens","input"),output=readNumber(usage,"outputTokens","completionTokens","output");if(input!==void 0||output!==void 0)return(input??0)+(output??0)}function formatAge(timestampMs){if(timestampMs===void 0)return PLACEHOLDER;let delta=Date.now()-timestampMs;return delta<1e3?"just now":`${(0,import_ms.default)(delta)} ago`}function formatTimestamp(timestampMs){return timestampMs===void 0?PLACEHOLDER:new Date(timestampMs).toISOString()}function formatDurationMs(value){return value===void 0?PLACEHOLDER:value<1e3?`${Math.round(value)}ms`:value<6e4?`${(value/1e3).toFixed(1)}s`:(0,import_ms.default)(Math.round(value))}function formatCount(value){return value===void 0?PLACEHOLDER:value<1e4?String(value):value<1e6?`${(value/1e3).toFixed(1)}k`:`${(value/1e6).toFixed(1)}m`}var MAX_TOKEN_LENGTH=8192,MAX_SOURCE_OFFSET=1e4,OTEL_CURSOR_PATTERN=/^[A-Za-z0-9_-]{1,4096}$/,SOURCE_CURSOR_PATTERN=/^[0-9a-z]+\.[0-9a-z]+(\.[0-9a-z]+\.[0-9a-z]+(\.[A-Za-z0-9_-]{1,4096})?)?$/,FILTERS_LENGTH=22;function isSourceOffset(value){return typeof value=="number"&&Number.isSafeInteger(value)&&value>=0&&value<=MAX_SOURCE_OFFSET}function isEpoch(value){return typeof value=="number"&&Number.isSafeInteger(value)&&value>0}function isWindow(value){if(!isRecord(value))return!1;let{from,to}=value;return isEpoch(from)&&isEpoch(to)&&from<to}function encodeAgentRunsSourceCursor(offsets){if(!offsets)return;let{otel,workflow,otelCursor}=offsets;if(!isSourceOffset(otel)||!isSourceOffset(workflow))return;let parts=[otel.toString(36),workflow.toString(36)],range=offsets.otelRange;if(range!==void 0){if(!isWindow(range))return;parts.push(range.from.toString(36),range.to.toString(36))}if(otelCursor!==void 0){if(range===void 0||typeof otelCursor!="string"||!OTEL_CURSOR_PATTERN.test(otelCursor))return;parts.push(otelCursor)}return parts.join(".")}function getAgentRunsListFilters({teamId,projectId,environment,search}){return createHash("sha256").update(JSON.stringify([teamId,projectId??null,environment||"production",search||null])).digest("base64url").slice(0,FILTERS_LENGTH)}function encodeAgentRunsListContinuation(continuation){return Buffer.from(JSON.stringify(continuation),"utf8").toString("base64url")}function parseAgentRunsListContinuation(value){if(value.length===0||value.length>MAX_TOKEN_LENGTH||!/^[A-Za-z0-9_-]+$/.test(value))return;let decoded;try{decoded=JSON.parse(Buffer.from(value,"base64url").toString("utf8"))}catch{return}if(!(!isRecord(decoded)||decoded.version!==1||typeof decoded.cursor!="string"||!SOURCE_CURSOR_PATTERN.test(decoded.cursor)||typeof decoded.page!="number"||!Number.isSafeInteger(decoded.page)||decoded.page<2||typeof decoded.filters!="string"||decoded.filters.length!==FILTERS_LENGTH||!isWindow(decoded.window)))return{version:1,cursor:decoded.cursor,page:decoded.page,window:{from:decoded.window.from,to:decoded.window.to},filters:decoded.filters}}var AgentRunsQueryTelemetryClient=class extends TelemetryClient{trackCliOptionEnvironment(value){value&&this.trackCliOption({option:"environment",value:["production","preview"].includes(value)?value:this.redactedValue})}trackCliOptionSince(value){value&&this.trackCliOption({option:"since",value:this.redactedValue})}trackCliOptionUntil(value){value&&this.trackCliOption({option:"until",value:this.redactedValue})}trackCliOptionProject(value){value&&this.trackCliOption({option:"project",value:this.redactedValue})}trackCliFlagJson(value){value&&this.trackCliFlag("json")}};var AgentRunsListTelemetryClient=class extends AgentRunsQueryTelemetryClient{trackCliOptionQuery(value){value&&this.trackCliOption({option:"query",value:this.redactedValue})}trackCliOptionSearch(value){value&&this.trackCliOption({option:"search",value:this.redactedValue})}trackCliOptionNext(value){value!==void 0&&this.trackCliOption({option:"next",value:/^\d+$/.test(value)?value:this.redactedValue})}trackCliOptionPage(value){typeof value=="number"&&this.trackCliOption({option:"page",value:String(value)})}trackCliOptionLimit(value){typeof value=="number"&&this.trackCliOption({option:"limit",value:String(value)})}};var DEFAULT_LIST_WINDOW_SECONDS=12*60*60;function getDefaultListWindow(){let to=Math.floor(Date.now()/1e3);return{from:to-DEFAULT_LIST_WINDOW_SECONDS,to}}function buildListPageCommand({argv,window,next}){let args=argv.slice(2),delimiter=args.indexOf("--"),own=delimiter===-1?args:args.slice(0,delimiter),passthrough=delimiter===-1?[]:args.slice(delimiter),kept=argv.slice(0,2);for(let i=0;i<own.length;i++){let arg=own[i],name=normalizeFlagName(arg);if(name==="--since"||name==="--until"){arg.includes("=")||i++;continue}kept.push(arg)}return window&&kept.push("--since",new Date(window.from*1e3).toISOString(),"--until",new Date(window.to*1e3).toISOString()),getNextPageCommand([...kept,...passthrough],next,["--page"])}function printNextPage(command){output_manager_default.print(`
|
|
7
|
+
import{createCertForCns,extractDomain,isWildcardAlias,setupDomain}from"./chunks/chunk-XUJA3RZD.js";import"./chunks/chunk-O7IYJGOR.js";import{joinWords}from"./chunks/chunk-4VFYJU37.js";import{api,tryOpenApiFallback}from"./chunks/chunk-YIOT5B5Z.js";import"./chunks/chunk-GHAY4PSD.js";import{list_item_default}from"./chunks/chunk-BTI5TG6Q.js";import{collectList,decodeListCursor,sliceList}from"./chunks/chunk-XBOGVOV5.js";import{getTeamBillingUrl}from"./chunks/chunk-XR6QY7RR.js";import{checkExistsAndConnect,disconnectGitProvider,list,parseRepoUrl,printRemoteUrls,selectAndParseRemoteUrl}from"./chunks/chunk-NAXFG37F.js";import"./chunks/chunk-4ELZOAQH.js";import"./chunks/chunk-JUAHDOL6.js";import"./chunks/chunk-UI2H2EIM.js";import"./chunks/chunk-UUDE44NV.js";import{ellipsis}from"./chunks/chunk-AKOYIH3A.js";import{box}from"./chunks/chunk-LM3YPF3K.js";import{did_you_mean_default}from"./chunks/chunk-DWZBL4NK.js";import{OpenApiCache,resolveOpenApiTagForTeamsCli}from"./chunks/chunk-T3S63EA3.js";import{email}from"./chunks/chunk-6IDNVZZR.js";import{isValidName}from"./chunks/chunk-PADL3C6Z.js";import{handleValidationError,outputError,parseTimeFlag,validateOptionalIntegerRange,validateTimeBound,validateTimeOrder}from"./chunks/chunk-LD42X7ZH.js";import{getProtectionForDeploymentAlias,getProtectionForProductionDomain,readEnabledProtection}from"./chunks/chunk-AEOG4E5G.js";import"./chunks/chunk-VT6RIZJH.js";import"./chunks/chunk-TOTTVS5P.js";import{ensureLink}from"./chunks/chunk-NDWGYZRT.js";import{getDeployment,toHost}from"./chunks/chunk-QIPUFI6P.js";import{mapCertError}from"./chunks/chunk-6KCYUYUM.js";import{require_open}from"./chunks/chunk-PVASGBEF.js";import"./chunks/chunk-ZBJ44DRL.js";import{require_tar_fs}from"./chunks/chunk-WZ2R4Z7N.js";import{NO_RETRY,TEAM_BUDGET,budgetAmountDollars,budgetPauses,budgetStatePayload,buy,canPromptForCharge,deleteCertById,findBudget,formatUsd,formatUsdWhole,getDomains,getProjectDomain,getTeamMemberByIdentifier,getTeamSpend,getWebhook,hasPauseThreshold,isDomainExternal,listBudgetAlerts,listBudgets,pausePercentsOutside100,percentUsed,removeAliasById,removeBudget,removeReceipt,setBudget,setSavedReceipt,spendDollars,spendPayload,teamMemberLabel,thresholdsForSet,toBudgetState}from"./chunks/chunk-YKNHA3RN.js";import{require_cjs}from"./chunks/chunk-5GOQ3FBV.js";import"./chunks/chunk-62FZFXPJ.js";import{getAliases}from"./chunks/chunk-QR7PY5JS.js";import{INVALID_NEXT_MESSAGE,InvalidNextError,getPaginationOpts,parseNumericCursor}from"./chunks/chunk-C6GY2G73.js";import{getCommandFlags}from"./chunks/chunk-XGTKHQTT.js";import{external_exports}from"./chunks/chunk-2NABMKFV.js";import{canPrompt}from"./chunks/chunk-IQ7FPAI4.js";import{require_execa}from"./chunks/chunk-T34C75TI.js";import"./chunks/chunk-GD7AV7BO.js";import{formatDate}from"./chunks/chunk-HRR57QNP.js";import"./chunks/chunk-PFD7LETF.js";import{MAX_LIST_LIMIT,getNextPageCommand,parseListLimit,printNextPageCommand,printNextPageHint}from"./chunks/chunk-B3ETPBO4.js";import{validateLsArgs}from"./chunks/chunk-T2SRGJPU.js";import{getInvalidSubcommand}from"./chunks/chunk-TG2RCYTH.js";import{formatTable}from"./chunks/chunk-44XDCARR.js";import{stamp_default}from"./chunks/chunk-A2RZZQEP.js";import{table}from"./chunks/chunk-OTJNOMRV.js";import{getRenamedOption,renameOptionInArgs,reportRenamedOptionError,withWarnings}from"./chunks/chunk-2QSNFVB6.js";import"./chunks/chunk-Q7D7RGXM.js";import{getSubcommand as getSubcommand3}from"./chunks/chunk-ETV3C2CV.js";import{getTeams}from"./chunks/chunk-YEPB52XE.js";import{CREDIT_TYPE_LABELS,SUPPORTED_ADDON_NAMES,SUPPORTED_CREDIT_TYPES,addSubcommand10 as addSubcommand4,addSubcommand11 as addSubcommand5,addSubcommand2 as addSubcommand,addSubcommand4 as addSubcommand2,addSubcommand5 as addSubcommand3,addonSubcommand,agentRunsCommand,alertsListSubcommand2 as alertsListSubcommand,alertsSubcommand2 as alertsSubcommand,aliasCommand,backupsSubcommand,bisectCommand,budgetCommand,buyCommand,certsCommand,connectSubcommand,createSubcommand10 as createSubcommand2,createSubcommand7 as createSubcommand,creditsSubcommand,disconnectSubcommand,dnsCommand,domainSubcommand,getCommandAliases,getSubcommand,getSubcommand5 as getSubcommand2,gitCommand,globalConfigCommand,importSubcommand,initCommand,inspectSubcommand,inspectSubcommand12 as inspectSubcommand3,inspectSubcommand14 as inspectSubcommand4,inspectSubcommand6 as inspectSubcommand2,inviteSubcommand,isCustomEnvironmentAddonAlias,issueSubcommand,itemsSubcommand,listSubcommand,listSubcommand11 as listSubcommand4,listSubcommand15 as listSubcommand5,listSubcommand18 as listSubcommand6,listSubcommand24 as listSubcommand7,listSubcommand25 as listSubcommand8,listSubcommand28 as listSubcommand9,listSubcommand29 as listSubcommand10,listSubcommand3 as listSubcommand2,listSubcommand5 as listSubcommand3,membersInviteSubcommand,membersRemoveSubcommand,membersSubcommand2 as membersSubcommand,organizationsCommand,proSubcommand,projectsSubcommand,removeSubcommand15 as removeSubcommand5,removeSubcommand16 as removeSubcommand6,removeSubcommand17 as removeSubcommand7,removeSubcommand2 as removeSubcommand,removeSubcommand4 as removeSubcommand2,removeSubcommand7 as removeSubcommand3,removeSubcommand9 as removeSubcommand4,requestSubcommand,setSubcommand,setSubcommand3 as setSubcommand2,ssoSubcommand,switchSubcommand,teamsAddSubcommand,teamsCommand,teamsCreateSubcommand,teamsListSubcommand,teamsSubcommand,tokensCommand,tokensSubcommand,traceSubcommand,updateSubcommand2 as updateSubcommand,updateSubcommand6 as updateSubcommand2,updateSubcommand9 as updateSubcommand3,webhooksCommand}from"./chunks/chunk-2PYFJXKS.js";import"./chunks/chunk-3KSTUMR6.js";import"./chunks/chunk-EZL4AJXH.js";import"./chunks/chunk-45UDRX4C.js";import"./chunks/chunk-J52UJYOK.js";import"./chunks/chunk-GZWYJT4C.js";import"./chunks/chunk-3AXMZRAB.js";import"./chunks/chunk-FQVSBXRY.js";import"./chunks/chunk-GP5MFCGO.js";import"./chunks/chunk-V5A4EBV3.js";import"./chunks/chunk-IECNFRTK.js";import"./chunks/chunk-A6F3EE2O.js";import"./chunks/chunk-K2R3QPOC.js";import"./chunks/chunk-IHRM7L23.js";import"./chunks/chunk-HTFQFHPR.js";import"./chunks/chunk-LFOWP74R.js";import"./chunks/chunk-DBV6AB6T.js";import"./chunks/chunk-37DIJCWK.js";import"./chunks/chunk-7E6UJXLR.js";import"./chunks/chunk-JALVF3C2.js";import"./chunks/chunk-7V2PXIVW.js";import{printError}from"./chunks/chunk-D3GYYGSS.js";import{help}from"./chunks/chunk-33U57CNE.js";import{param}from"./chunks/chunk-3G3FQYMW.js";import{getContextName,getScope}from"./chunks/chunk-IU6PHFPQ.js";import{TelemetryClient}from"./chunks/chunk-SBBD2Q5A.js";import"./chunks/chunk-2EYYB6YN.js";import"./chunks/chunk-NWGBDBZI.js";import{AGENT_ACTION,AGENT_REASON,AGENT_STATUS,buildCommandWithGlobalFlags,buildCommandWithYes,exitWithNonInteractiveError,getExitCodeForReason,openUrlInBrowserCommand,outputActionRequired,outputAgentError,shouldEmitNonInteractiveCommandError,withGlobalFlags}from"./chunks/chunk-KAUKCHQF.js";import"./chunks/chunk-QLW5DCM4.js";import{getGitConfigPath,getLinkFromDir,getLinkedProject,getUser,getVercelDirectory,humanizePath,parseGitConfig,pluckRemoteUrls,require_pluralize,writeToConfigFile}from"./chunks/chunk-QZEZCUUZ.js";import{formatAlignedLabel,printAlignedLabel}from"./chunks/chunk-3LQ2ADXO.js";import"./chunks/chunk-MCP63EVQ.js";import"./chunks/chunk-4NTBYNFR.js";import{parseArguments}from"./chunks/chunk-KIMIK4SG.js";import{getTeamByIdOrSlug,quoteArg}from"./chunks/chunk-F53OKXYI.js";import{validateJsonOutput,warnDeprecatedOption,warnDeprecatedSubcommand}from"./chunks/chunk-JRBPVMQO.js";import"./chunks/chunk-LUX4PBJL.js";import"./chunks/chunk-OPORM35X.js";import{require_ms}from"./chunks/chunk-MXTC4ZAQ.js";import"./chunks/chunk-OCR5CRTH.js";import"./chunks/chunk-4SAVH3H7.js";import{AliasInUse,CertConfigurationError,CertError,CertMissing,CertNotFound,CertOrderNotFound,CertsPermissionDenied,DNSConflictingRecord,DNSInvalidPort,DNSInvalidType,DNSPermissionDenied,DeploymentFailedAliasImpossible,DeploymentNotFound,DeploymentNotReady,DeploymentPermissionDenied,DomainAlreadyExists,DomainChargeOutcomeUnknown,DomainNotAvailable,DomainNotFound,DomainPaymentError,DomainPermissionDenied,DomainPriceChanged,DomainPurchasePending,DomainPurchaseRefundFailed,DomainPurchaseRefunded,InvalidAlias,InvalidAliasInConfig,InvalidDeploymentId,InvalidDomain,NoAliasInConfig,NowError,SourceNotFound,TLDNotSupportedViaCLI,TooManyRequests,UnexpectedDomainPurchaseError,UnsupportedTLD,UserAborted,isAPIError}from"./chunks/chunk-FXEMEIST.js";import{cmd,getCommandName,getCommandNamePlain,packageName,require_lib}from"./chunks/chunk-JESNVRVR.js";import{emoji,eraseLines,link_default,output_manager_default,prependEmoji}from"./chunks/chunk-ZRJKGAUT.js";import"./chunks/chunk-BLUPZPAS.js";import{require_dist}from"./chunks/chunk-RM3ZDRYE.js";import"./chunks/chunk-YHPPP3SF.js";import"./chunks/chunk-OO572JUC.js";import"./chunks/chunk-PUKYAALC.js";import{formatOption,getFlagsSpecification,getGlobalFlagsFromArgs,getSameSubcommandSuggestionFlags,jsonOption,normalizeFlagName,stripSensitiveAuthArgs}from"./chunks/chunk-YPPDRKVC.js";import{chars_default}from"./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-5O7CRJE5.js";import{toNodeReadable}from"./chunks/chunk-U3J7VS56.js";import"./chunks/chunk-7EJQLVWX.js";import"./chunks/chunk-SCV7XEEO.js";import{__toESM}from"./chunks/chunk-BZENIQ7N.js";var AgentRunsTelemetryClient=class extends TelemetryClient{trackCliSubcommandList(actual){this.trackCliSubcommand({subcommand:"list",value:actual})}trackCliSubcommandInspect(actual){this.trackCliSubcommand({subcommand:"inspect",value:actual})}trackCliSubcommandTrace(actual){this.trackCliSubcommand({subcommand:"trace",value:actual})}trackCliSubcommandProjects(actual){this.trackCliSubcommand({subcommand:"projects",value:actual})}};var import_chalk2=__toESM(require_source(),1);var AGENT_RUNS_API_BASE="https://vercel.com/api/observability/agent-runs",DEFAULT_TRACE_MAX_FIELD_LENGTH=8e3,MAX_TRACE_FIELD_LENGTH=5e4;function getAgentRunsApiBase(){return process.env.VERCEL_AGENT_RUNS_API_URL||AGENT_RUNS_API_BASE}function resolveAgentRunsWindow(since,until){if(!since)return;let from=parseTimeFlag(since),to=until?parseTimeFlag(until):new Date;return{from:Math.floor(from.getTime()/1e3),to:Math.floor(to.getTime()/1e3)}}function buildAgentRunsUrl(query){let url=new URL(getAgentRunsApiBase());url.searchParams.set("teamSlug",query.teamId),query.view==="team"?url.searchParams.set("view","team"):query.projectId&&url.searchParams.set("project",query.projectId),url.searchParams.set("environment",query.environment||"production");let window=query.window??resolveAgentRunsWindow(query.since,query.until);return window&&(url.searchParams.set("from",String(window.from)),url.searchParams.set("to",String(window.to))),typeof query.page=="number"&&url.searchParams.set("page",String(Math.max(1,Math.floor(query.page)))),typeof query.pageSize=="number"&&url.searchParams.set("pageSize",String(Math.max(1,Math.floor(query.pageSize)))),query.search&&url.searchParams.set("search",query.search),query.cursor&&url.searchParams.set("cursor",query.cursor),query.runId&&url.searchParams.set("runId",query.runId),query.trace&&url.searchParams.set("trace","1"),query.traceStreamId&&url.searchParams.set("traceStreamId",query.traceStreamId),query.traceAfterCursor&&url.searchParams.set("traceAfterCursor",query.traceAfterCursor),typeof query.traceBeforeChunk=="number"&&url.searchParams.set("traceBeforeChunk",String(query.traceBeforeChunk)),url.href}async function fetchAgentRuns(client,query){return client.fetch(buildAgentRunsUrl(query),{useCurrentTeam:!1})}var MISSING_PROJECT_SCOPE_MESSAGE="No linked project found. Run `vercel link`, pass --cwd to a linked dir, or use --scope <team> and --project <name>.",MISSING_TEAM_SCOPE_MESSAGE="No team scope found. Run `vercel link`, pass --cwd to a linked dir, or use --scope <team>.";async function resolveAgentRunsScope(client,{scopeFlag,projectFlag,requireProject}){let flagScope=scopeFlag?.trim()||void 0,flagProject=projectFlag?.trim()||void 0;if(flagScope&&(flagProject||!requireProject))return{ok:!0,teamId:flagScope,projectId:flagProject,contextName:flagProject?`${flagScope}/${flagProject}`:flagScope};let linkedProject=await getLinkedProject(client);if(linkedProject.status==="error")return{ok:!1,exitCode:linkedProject.exitCode};if(linkedProject.status==="linked"){let{org,project}=linkedProject;if(flagScope&&flagScope!==org.id&&flagScope!==org.slug)return{ok:!1,exitCode:invalidArguments(client,`\`--scope ${flagScope}\` doesn't match the linked project's team. Pass \`--project <name>\` to query a project in that team.`)};let teamName=flagScope??org.slug,projectName=requireProject?flagProject??project.name:flagProject;return{ok:!0,teamId:flagScope??org.id,projectId:requireProject?flagProject??project.id:flagProject,contextName:projectName?`${teamName}/${projectName}`:teamName}}let message=requireProject?MISSING_PROJECT_SCOPE_MESSAGE:MISSING_TEAM_SCOPE_MESSAGE;return outputAgentError(client,{status:AGENT_STATUS.ERROR,reason:AGENT_REASON.NOT_LINKED,message}),output_manager_default.error(message),{ok:!1,exitCode:1}}function normalizeApiErrorText(message){return message.replace(/\s*\(\d{3}\)\s*$/,"").trim()}function handleAgentRunsApiError(client,err){if(isAPIError(err)){let reason=err.status===403?"forbidden":err.status===401?"not_authorized":err.status===404?AGENT_REASON.NOT_FOUND:err.status===429?"rate_limited":AGENT_REASON.API_ERROR;outputAgentError(client,{status:AGENT_STATUS.ERROR,reason,message:normalizeApiErrorText(err.serverMessage||err.message)})}else outputAgentError(client,{status:AGENT_STATUS.ERROR,reason:"unexpected_error",message:err instanceof Error?err.message:String(err)});printError(err)}function invalidArguments(client,message){return outputAgentError(client,{status:AGENT_STATUS.ERROR,reason:AGENT_REASON.INVALID_ARGUMENTS,message}),output_manager_default.error(message),2}function normalizeTraceMaxFieldLength(value){return typeof value!="number"||!Number.isFinite(value)?DEFAULT_TRACE_MAX_FIELD_LENGTH:Math.min(Math.max(Math.floor(value),0),MAX_TRACE_FIELD_LENGTH)}function truncateLargeStrings(value,maxLength){return maxLength===0?value:typeof value=="string"?value.length<=maxLength?value:`${value.slice(0,maxLength)}... [truncated ${value.length-maxLength} chars]`:Array.isArray(value)?value.map(item=>truncateLargeStrings(item,maxLength)):value&&typeof value=="object"?Object.fromEntries(Object.entries(value).map(([key,entry])=>[key,truncateLargeStrings(entry,maxLength)])):value}import{createHash}from"node:crypto";var import_chalk=__toESM(require_source(),1),import_ms=__toESM(require_ms(),1),import_title=__toESM(require_lib(),1);function isRecord(value){return typeof value=="object"&&value!==null&&!Array.isArray(value)}function quoteCommandArgument(value,placeholder){return/[\x00-\x1F\x7F]/.test(value)?placeholder:/^[A-Za-z0-9_./:=@%+,-]+$/.test(value)?value:`'${value.replaceAll("'",`'"'"'`)}'`}function asArray(value){return Array.isArray(value)?value.filter(isRecord):[]}function readString(record,...keys){if(record)for(let key of keys){let value=record[key];if(typeof value=="string"&&value.length>0)return value}}function readNumber(record,...keys){if(record)for(let key of keys){let value=record[key];if(typeof value=="number"&&Number.isFinite(value))return value}}function readRecord(record,...keys){if(record)for(let key of keys){let value=record[key];if(isRecord(value))return value}}function readTimestampMs(record,...keys){if(record)for(let key of keys){let value=record[key];if(typeof value=="number"&&Number.isFinite(value))return value;if(typeof value=="string"&&value.length>0){let parsed=Date.parse(value);if(!Number.isNaN(parsed))return parsed}}}var PLACEHOLDER="-";function runId(run){return readString(run,"id","runId")??PLACEHOLDER}function formatRunStatus(run){let status=readString(run,"status","state");if(!status)return PLACEHOLDER;let label=(0,import_title.default)(status.replace(/[_-]+/g," ")),CIRCLE="\u25CF ";switch(status.toLowerCase()){case"completed":case"succeeded":case"success":case"ready":return import_chalk.default.green(CIRCLE)+label;case"error":case"errored":case"failed":case"timed out":case"timed_out":return import_chalk.default.red(CIRCLE)+label;case"running":case"in progress":case"in_progress":case"pending":case"queued":case"started":return import_chalk.default.yellow(CIRCLE)+label;case"canceled":case"cancelled":return import_chalk.default.gray(label);default:return label}}function runModel(run){return readString(run,"model")??PLACEHOLDER}function runTrigger(run){return readString(run,"trigger")??readString(readRecord(run,"trigger"),"label","type","name")??PLACEHOLDER}function runTitle(run){return readString(run,"title","name")}function runStartedAtMs(run){return readTimestampMs(run,"createdAt","startedAt","startTime")}function runDurationMs(run){let explicit=readNumber(run,"durationMs","duration");if(explicit!==void 0)return explicit;let start=readTimestampMs(run,"startedAt","createdAt","startTime"),end=readTimestampMs(run,"endedAt","completedAt","endTime");if(start!==void 0&&end!==void 0&&end>=start)return end-start}function runTotalTokens(run){let usage=readRecord(run,"usage")??run,total=readNumber(usage,"totalTokens","total");if(total!==void 0)return total;let input=readNumber(usage,"inputTokens","promptTokens","input"),output=readNumber(usage,"outputTokens","completionTokens","output");if(input!==void 0||output!==void 0)return(input??0)+(output??0)}function formatAge(timestampMs){if(timestampMs===void 0)return PLACEHOLDER;let delta=Date.now()-timestampMs;return delta<1e3?"just now":`${(0,import_ms.default)(delta)} ago`}function formatTimestamp(timestampMs){return timestampMs===void 0?PLACEHOLDER:new Date(timestampMs).toISOString()}function formatDurationMs(value){return value===void 0?PLACEHOLDER:value<1e3?`${Math.round(value)}ms`:value<6e4?`${(value/1e3).toFixed(1)}s`:(0,import_ms.default)(Math.round(value))}function formatCount(value){return value===void 0?PLACEHOLDER:value<1e4?String(value):value<1e6?`${(value/1e3).toFixed(1)}k`:`${(value/1e6).toFixed(1)}m`}var MAX_TOKEN_LENGTH=8192,MAX_SOURCE_OFFSET=1e4,OTEL_CURSOR_PATTERN=/^[A-Za-z0-9_-]{1,4096}$/,SOURCE_CURSOR_PATTERN=/^[0-9a-z]+\.[0-9a-z]+(\.[0-9a-z]+\.[0-9a-z]+(\.[A-Za-z0-9_-]{1,4096})?)?$/,FILTERS_LENGTH=22;function isSourceOffset(value){return typeof value=="number"&&Number.isSafeInteger(value)&&value>=0&&value<=MAX_SOURCE_OFFSET}function isEpoch(value){return typeof value=="number"&&Number.isSafeInteger(value)&&value>0}function isWindow(value){if(!isRecord(value))return!1;let{from,to}=value;return isEpoch(from)&&isEpoch(to)&&from<to}function encodeAgentRunsSourceCursor(offsets){if(!offsets)return;let{otel,workflow,otelCursor}=offsets;if(!isSourceOffset(otel)||!isSourceOffset(workflow))return;let parts=[otel.toString(36),workflow.toString(36)],range=offsets.otelRange;if(range!==void 0){if(!isWindow(range))return;parts.push(range.from.toString(36),range.to.toString(36))}if(otelCursor!==void 0){if(range===void 0||typeof otelCursor!="string"||!OTEL_CURSOR_PATTERN.test(otelCursor))return;parts.push(otelCursor)}return parts.join(".")}function getAgentRunsListFilters({teamId,projectId,environment,search}){return createHash("sha256").update(JSON.stringify([teamId,projectId??null,environment||"production",search||null])).digest("base64url").slice(0,FILTERS_LENGTH)}function encodeAgentRunsListContinuation(continuation){return Buffer.from(JSON.stringify(continuation),"utf8").toString("base64url")}function parseAgentRunsListContinuation(value){if(value.length===0||value.length>MAX_TOKEN_LENGTH||!/^[A-Za-z0-9_-]+$/.test(value))return;let decoded;try{decoded=JSON.parse(Buffer.from(value,"base64url").toString("utf8"))}catch{return}if(!(!isRecord(decoded)||decoded.version!==1||typeof decoded.cursor!="string"||!SOURCE_CURSOR_PATTERN.test(decoded.cursor)||typeof decoded.page!="number"||!Number.isSafeInteger(decoded.page)||decoded.page<2||typeof decoded.filters!="string"||decoded.filters.length!==FILTERS_LENGTH||!isWindow(decoded.window)))return{version:1,cursor:decoded.cursor,page:decoded.page,window:{from:decoded.window.from,to:decoded.window.to},filters:decoded.filters}}var AgentRunsQueryTelemetryClient=class extends TelemetryClient{trackCliOptionEnvironment(value){value&&this.trackCliOption({option:"environment",value:["production","preview"].includes(value)?value:this.redactedValue})}trackCliOptionSince(value){value&&this.trackCliOption({option:"since",value:this.redactedValue})}trackCliOptionUntil(value){value&&this.trackCliOption({option:"until",value:this.redactedValue})}trackCliOptionProject(value){value&&this.trackCliOption({option:"project",value:this.redactedValue})}trackCliFlagJson(value){value&&this.trackCliFlag("json")}};var AgentRunsListTelemetryClient=class extends AgentRunsQueryTelemetryClient{trackCliOptionQuery(value){value&&this.trackCliOption({option:"query",value:this.redactedValue})}trackCliOptionSearch(value){value&&this.trackCliOption({option:"search",value:this.redactedValue})}trackCliOptionNext(value){value!==void 0&&this.trackCliOption({option:"next",value:/^\d+$/.test(value)?value:this.redactedValue})}trackCliOptionPage(value){typeof value=="number"&&this.trackCliOption({option:"page",value:String(value)})}trackCliOptionLimit(value){typeof value=="number"&&this.trackCliOption({option:"limit",value:String(value)})}};var DEFAULT_LIST_WINDOW_SECONDS=12*60*60;function getDefaultListWindow(){let to=Math.floor(Date.now()/1e3);return{from:to-DEFAULT_LIST_WINDOW_SECONDS,to}}function buildListPageCommand({argv,window,next}){let args=argv.slice(2),delimiter=args.indexOf("--"),own=delimiter===-1?args:args.slice(0,delimiter),passthrough=delimiter===-1?[]:args.slice(delimiter),kept=argv.slice(0,2);for(let i=0;i<own.length;i++){let arg=own[i],name=normalizeFlagName(arg);if(name==="--since"||name==="--until"){arg.includes("=")||i++;continue}kept.push(arg)}return window&&kept.push("--since",new Date(window.from*1e3).toISOString(),"--until",new Date(window.to*1e3).toISOString()),getNextPageCommand([...kept,...passthrough],next,["--page"])}function printNextPage(command){output_manager_default.print(`
|
|
8
8
|
`),printNextPageCommand(command)}async function list2(client){let telemetry=new AgentRunsListTelemetryClient({opts:{store:client.telemetryEventStore}}),parsedArgs,flagsSpecification=getFlagsSpecification(listSubcommand.options);try{parsedArgs=parseArguments(client.argv.slice(2),flagsSpecification)}catch(err){return printError(err),2}let{"--project":projectFlag,"--environment":environment,"--since":since,"--until":until,"--query":queryFlag,"--search":searchFlag,"--next":next,"--page":legacyPage,"--limit":limit,"--json":json,"--scope":scopeFlag}=parsedArgs.flags;legacyPage!==void 0&&warnDeprecatedOption(client.argv,"--page","--next"),telemetry.trackCliOptionProject(projectFlag),telemetry.trackCliOptionEnvironment(environment),telemetry.trackCliOptionSince(since),telemetry.trackCliOptionUntil(until),telemetry.trackCliOptionQuery(queryFlag),telemetry.trackCliOptionSearch(searchFlag),telemetry.trackCliOptionNext(next),telemetry.trackCliOptionPage(legacyPage),telemetry.trackCliOptionLimit(limit),telemetry.trackCliFlagJson(json);let query=getRenamedOption(parsedArgs.flags,"--query","--search",{json});if("error"in query)return reportRenamedOptionError(client,query.error,{json});let search=query.value;if(until&&!since)return invalidArguments(client,"`--until` requires `--since`.");if(next!==void 0&&legacyPage!==void 0)return invalidArguments(client,"`--next` and `--page` cannot be used together.");let legacyNext=next!==void 0&&/^\d+$/.test(next)?Number(next):void 0,continuation;if(next!==void 0&&legacyNext===void 0&&(continuation=parseAgentRunsListContinuation(next),!continuation))return invalidArguments(client,"Invalid or expired `--next` cursor. Omit `--next` to start from the first page.");let page=continuation?.page??legacyNext??legacyPage,requestedWindow;try{requestedWindow=resolveAgentRunsWindow(since,until)}catch(err){return handleAgentRunsApiError(client,err),1}let window=requestedWindow??getDefaultListWindow();if(continuation){if(requestedWindow&&(requestedWindow.from!==continuation.window.from||requestedWindow.to!==continuation.window.to))return invalidArguments(client,"`--since` and `--until` must match the time range of the `--next` cursor. Omit them to continue the same list.");window=continuation.window}let scope=await resolveAgentRunsScope(client,{scopeFlag,projectFlag,requireProject:!0});if(!scope.ok)return scope.exitCode;let filters=getAgentRunsListFilters({teamId:scope.teamId,projectId:scope.projectId,environment,search});if(continuation&&continuation.filters!==filters)return invalidArguments(client,"The `--next` cursor belongs to a different list. Use the same scope, project, environment, and search, or omit `--next` to start from the first page.");let fetchStamp=stamp_default();output_manager_default.spinner(`Fetching Agent Runs in ${import_chalk2.default.bold(scope.contextName)}\u2026`);let data;try{data=await fetchAgentRuns(client,{teamId:scope.teamId,projectId:scope.projectId,environment,window,page,pageSize:limit,search,cursor:continuation?.cursor})}catch(err){return output_manager_default.stopSpinner(),handleAgentRunsApiError(client,err),1}output_manager_default.stopSpinner();let pageInfo=readRecord(data,"pageInfo"),cursorPaged=typeof pageInfo?.hasMore=="boolean"||pageInfo?.nextOffsets!==void 0;if(cursorPaged&&!continuation&&(page??1)>1)return invalidArguments(client,"Page numbers cannot continue this Agent Runs list. Use the `--next` cursor from the previous page (`pagination.next` with `--json`).");let nextToken=null;if(cursorPaged&&pageInfo?.hasMore===!0){let nextOffsets=readRecord(pageInfo,"nextOffsets"),cursor=encodeAgentRunsSourceCursor(nextOffsets);cursor&&(nextToken=encodeAgentRunsListContinuation({version:1,cursor,page:(page??1)+1,window,filters}))}if(json){let payload=cursorPaged?{...data,pagination:{next:nextToken}}:data;return client.stdout.write(`${JSON.stringify(withWarnings(payload,[query.warning]),null,2)}
|
|
9
9
|
`),0}let pageCommand={argv:renameOptionInArgs(client.argv,"--search","--query")},runList=asArray(data.runs);if(runList.length===0)return nextToken?(output_manager_default.log("No Agent Runs on this page."),printNextPage(buildListPageCommand({...pageCommand,next:nextToken}))):search||since?output_manager_default.log("No Agent Runs match the current filters."):output_manager_default.log("No Agent Runs found."),0;output_manager_default.log(`Agent Runs under ${import_chalk2.default.bold(scope.contextName)} ${fetchStamp()}`);let rows=[["Run ID","Status","Trigger","Model","Tokens","Duration","Age"].map(header=>import_chalk2.default.bold(import_chalk2.default.cyan(header))),...runList.map(run=>[import_chalk2.default.bold(runId(run)),formatRunStatus(run),runTrigger(run),runModel(run),formatCount(runTotalTokens(run)),import_chalk2.default.gray(formatDurationMs(runDurationMs(run))),import_chalk2.default.gray(formatAge(runStartedAtMs(run)))])];client.stdout.write(`
|
|
10
10
|
${table(rows,{hsep:3}).replace(/^/gm," ")}
|