@vercel/cli-support 65.9.0 → 65.10.0-snapshot-b8e5bb846796
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-4VXTYDC7.js +8 -0
- package/dist/chunks/add-K3ZHVAYL.js +8 -0
- package/dist/chunks/add-M26FXXGH.js +8 -0
- package/dist/chunks/build-ESY72OCS.js +7 -0
- package/dist/chunks/chunk-2AMO2VMV.js +68 -0
- package/dist/chunks/{chunk-U6KJOCXX.js → chunk-2DHDKWYN.js} +1 -1
- package/dist/chunks/chunk-2VBFQZ72.js +7 -0
- package/dist/chunks/{chunk-BZNRYQ6U.js → chunk-37LESFVW.js} +1 -1
- package/dist/chunks/{chunk-CMHL66LK.js → chunk-3F5BOG4A.js} +1 -1
- package/dist/chunks/{chunk-ZCXKEZS4.js → chunk-3HC4F32I.js} +1 -1
- package/dist/chunks/{chunk-VZKQP67Q.js → chunk-4FV4I3KH.js} +1 -1
- package/dist/chunks/{chunk-R5ZLTWKB.js → chunk-4LGAV2WN.js} +1 -1
- package/dist/chunks/{chunk-DUJAQS7I.js → chunk-4MPQZWQV.js} +1 -1
- package/dist/chunks/{chunk-7WY7ASKE.js → chunk-56UH6NQ3.js} +1 -1
- package/dist/chunks/{chunk-QQA2OMXJ.js → chunk-5KE67O45.js} +1 -1
- package/dist/chunks/chunk-6EQWP4LZ.js +10 -0
- package/dist/chunks/{chunk-USYEDO7R.js → chunk-6SJHJBJH.js} +1 -1
- package/dist/chunks/{chunk-TRZDIAX3.js → chunk-77LSSWXL.js} +1 -1
- package/dist/chunks/{chunk-DASHFOKO.js → chunk-7DA25VTX.js} +1 -1
- package/dist/chunks/chunk-7DP4DHQW.js +7 -0
- package/dist/chunks/{chunk-ZERZX6BZ.js → chunk-7JY4LSW4.js} +2 -2
- package/dist/chunks/{chunk-EW62WSXG.js → chunk-7NNA4VRN.js} +1 -1
- package/dist/chunks/{chunk-EXLKCL5I.js → chunk-7VICILSF.js} +1 -1
- package/dist/chunks/{chunk-4XJVEKTD.js → chunk-7XRM7NEF.js} +1 -1
- package/dist/chunks/chunk-A5D7MVRH.js +7 -0
- package/dist/chunks/{chunk-EVH5524J.js → chunk-A5NC6IDR.js} +1 -1
- package/dist/chunks/{chunk-EDOTKQ7L.js → chunk-ADQRYOJK.js} +1 -1
- package/dist/chunks/{chunk-D2JHIOVH.js → chunk-AEYIIPUZ.js} +1 -1
- package/dist/chunks/{chunk-GHEGWXH2.js → chunk-ANCWFEOM.js} +1 -1
- package/dist/chunks/{chunk-IFCMWIRB.js → chunk-APM4DYNZ.js} +1 -1
- package/dist/chunks/chunk-BB3N7F4F.js +7 -0
- package/dist/chunks/{chunk-7ULVGK67.js → chunk-BB5UMZMF.js} +1 -1
- package/dist/chunks/{chunk-4Z3APEBF.js → chunk-BJXLR2RE.js} +1 -1
- package/dist/chunks/{chunk-Y6WXTTZS.js → chunk-BPRGAX62.js} +1 -1
- package/dist/chunks/{chunk-43P35KUA.js → chunk-BQVKEPOO.js} +1 -1
- package/dist/chunks/{chunk-MXURT5TX.js → chunk-BRKI6NTF.js} +1 -1
- package/dist/chunks/{chunk-G6HUSV7F.js → chunk-BZV2S4H6.js} +1 -1
- package/dist/chunks/chunk-C4N4LKPM.js +7 -0
- package/dist/chunks/{chunk-WFOJ2LEA.js → chunk-CCMABJKN.js} +1 -1
- package/dist/chunks/chunk-CFYTFXX6.js +7 -0
- package/dist/chunks/chunk-CKTLP5GX.js +7 -0
- package/dist/chunks/{chunk-OZPBJWYU.js → chunk-CSOIXUCL.js} +7 -7
- package/dist/chunks/{chunk-GCPPL24C.js → chunk-CUBRYWA2.js} +1 -1
- package/dist/chunks/{chunk-M73W4XNR.js → chunk-CZOD25BC.js} +1 -1
- package/dist/chunks/{chunk-UIJYRI3G.js → chunk-DBPN2VGJ.js} +1 -1
- package/dist/chunks/{chunk-XBWISZCG.js → chunk-EJ34DLV4.js} +1 -1
- package/dist/chunks/{chunk-T5TOBY4D.js → chunk-EJZNJN4N.js} +1 -1
- package/dist/chunks/{chunk-TMXIVQ45.js → chunk-F2LNGJOZ.js} +1 -1
- package/dist/chunks/{chunk-G3LWP5CH.js → chunk-FAVZ6WVS.js} +1 -1
- package/dist/chunks/{chunk-5K4UTJSY.js → chunk-FHGWXXAS.js} +1 -1
- package/dist/chunks/{chunk-2DODPQ5J.js → chunk-FI2N3SE5.js} +1 -1
- package/dist/chunks/{chunk-D4ZEJM3T.js → chunk-FI5O4WHD.js} +1 -1
- package/dist/chunks/chunk-FTACGWII.js +14 -0
- package/dist/chunks/chunk-FUYVYZWT.js +7 -0
- package/dist/chunks/{chunk-FWTBSC7Z.js → chunk-FY4ORPZH.js} +1 -1
- package/dist/chunks/{chunk-VBKFCR5W.js → chunk-G5T6UQAL.js} +1 -1
- package/dist/chunks/chunk-G7H33IKQ.js +10 -0
- package/dist/chunks/{chunk-33U57CNE.js → chunk-GKALP6QD.js} +1 -1
- package/dist/chunks/{chunk-DUPAU76G.js → chunk-HJ45TAM4.js} +1 -1
- package/dist/chunks/{chunk-E5CN62HO.js → chunk-I6TWYNZF.js} +1 -1
- package/dist/chunks/{chunk-JOXGYP5S.js → chunk-JVNIDSP5.js} +1 -1
- package/dist/chunks/chunk-K6T65WB2.js +7 -0
- package/dist/chunks/chunk-KCJ7RU5I.js +10 -0
- package/dist/chunks/{chunk-TCB4XM23.js → chunk-L3YSOZTP.js} +1 -1
- package/dist/chunks/chunk-LNVODBR2.js +8 -0
- package/dist/chunks/{chunk-32AS5X7G.js → chunk-MUNGQJGO.js} +1 -1
- package/dist/chunks/{chunk-SNCQOAFU.js → chunk-MWEC2PBL.js} +1 -1
- package/dist/chunks/{chunk-UZTDRGCW.js → chunk-NAEY6HG5.js} +1 -1
- package/dist/chunks/{chunk-GN5IAG3M.js → chunk-NGHFFOD2.js} +1 -1
- package/dist/chunks/{chunk-4BZ3DNGM.js → chunk-NLKM5LR5.js} +1 -1
- package/dist/chunks/{chunk-UOQGI6CL.js → chunk-NNGNQNGM.js} +1 -1
- package/dist/chunks/{chunk-7PGGP2QT.js → chunk-NT5ITDTD.js} +1 -1
- package/dist/chunks/{chunk-NEUQZYBL.js → chunk-PMEYNJU2.js} +1 -1
- package/dist/chunks/{chunk-BWS3ZOHJ.js → chunk-Q4GX2UTG.js} +1 -1
- package/dist/chunks/{chunk-4SJU5QSD.js → chunk-QBEIKXKY.js} +1 -1
- package/dist/chunks/{chunk-CBVVVYUP.js → chunk-QCIIUQV3.js} +1 -1
- package/dist/chunks/{chunk-UVE5COCG.js → chunk-QR2Y6RI6.js} +1 -1
- package/dist/chunks/chunk-QSMWJAN7.js +7 -0
- package/dist/chunks/{chunk-GCXUSXB4.js → chunk-QVMU7ZKQ.js} +1 -1
- package/dist/chunks/{chunk-ZGKJLJ47.js → chunk-R2P4PNRQ.js} +1 -1
- package/dist/chunks/{chunk-Y5YXAXK3.js → chunk-R3D4M5RE.js} +1 -1
- package/dist/chunks/{chunk-QJAIUZVZ.js → chunk-ROOOBR3O.js} +5 -5
- package/dist/chunks/{chunk-H34SGIVS.js → chunk-S5JBQCBA.js} +1 -1
- package/dist/chunks/{chunk-PBX7RJ2K.js → chunk-SAIROH4Y.js} +1 -1
- package/dist/chunks/{chunk-2JNDJISE.js → chunk-SIN64EHW.js} +1 -1
- package/dist/chunks/{chunk-QBOY2CXL.js → chunk-SODZSOOL.js} +1 -1
- package/dist/chunks/{chunk-KV2DYFUG.js → chunk-T7HE23VK.js} +1 -1
- package/dist/chunks/{chunk-2JXQWOK5.js → chunk-TKJUKKR6.js} +1 -1
- package/dist/chunks/{chunk-2H4DUZJZ.js → chunk-TL4ZLZ2Q.js} +1 -1
- package/dist/chunks/{chunk-WGWGDC3N.js → chunk-TRYRN6OD.js} +1 -1
- package/dist/chunks/chunk-UWJ3UPS5.js +11 -0
- package/dist/chunks/{chunk-6RCFEJZK.js → chunk-UXRXHNSX.js} +1 -1
- package/dist/chunks/chunk-V32V4SXB.js +7 -0
- package/dist/chunks/{chunk-ECQKK4JU.js → chunk-VD2FK6OF.js} +1 -1
- package/dist/chunks/{chunk-QKWJN6OE.js → chunk-VDKY5KRE.js} +1 -1
- package/dist/chunks/chunk-VPUYTI5E.js +25 -0
- package/dist/chunks/{chunk-EBBDSEEU.js → chunk-VS3S5CU4.js} +1 -1
- package/dist/chunks/{chunk-JMAXX2I6.js → chunk-VU4PHRVP.js} +1 -1
- package/dist/chunks/{chunk-ZBZPCKTW.js → chunk-W5GHMAHP.js} +1 -1
- package/dist/chunks/{chunk-QY5RG6BB.js → chunk-WYFRVK6K.js} +1 -1
- package/dist/chunks/{chunk-BRETAWE7.js → chunk-XEXOSJIU.js} +1 -1
- package/dist/chunks/{chunk-5M3WBT3N.js → chunk-XXEGRTU6.js} +1 -1
- package/dist/chunks/{chunk-4OTI552J.js → chunk-Y45SSWNH.js} +1 -1
- package/dist/chunks/{chunk-WKYFWE37.js → chunk-YO6SJCZP.js} +1 -1
- package/dist/chunks/{chunk-TGPYWWX3.js → chunk-Z57NF2SA.js} +1 -1
- package/dist/chunks/chunk-ZUI5EMXD.js +11 -0
- package/dist/chunks/clear-56POXUP7.js +8 -0
- package/dist/chunks/{compile-vercel-config-DRTOWZK6.js → compile-vercel-config-ZO4Q4DSX.js} +1 -1
- package/dist/chunks/{config-MNRKCDQA.js → config-3BJHSDR3.js} +1 -1
- package/dist/chunks/config-BQPB2VFM.js +8 -0
- package/dist/chunks/delete-2IZGMSOT.js +9 -0
- package/dist/chunks/delete-32N2EHLH.js +10 -0
- package/dist/chunks/{detect-services-GXKWIX52.js → detect-services-JFILAIAL.js} +1 -1
- package/dist/chunks/disable-U2L3EAT3.js +7 -0
- package/dist/chunks/discard-LCQCHKT3.js +14 -0
- package/dist/chunks/edit-7UYV2SKA.js +8 -0
- package/dist/chunks/edit-IE6MRAGU.js +9 -0
- package/dist/chunks/enable-TRHJ4KBM.js +7 -0
- package/dist/chunks/{export-N5F7EY7B.js → export-FCEURR7W.js} +1 -1
- package/dist/chunks/future-MJBIKCOK.js +7 -0
- package/dist/chunks/generate-cert-for-deploy-CFEVTFEH.js +7 -0
- package/dist/chunks/image-47MBJMHO.js +7 -0
- package/dist/chunks/{import-builders-OAGJKQNW.js → import-builders-2DIXZXHK.js} +1 -1
- package/dist/chunks/inspect-BEBHGVAE.js +13 -0
- package/dist/chunks/{inspect-UDUI3ETL.js → inspect-C6XCE3L6.js} +1 -1
- package/dist/chunks/{inspect-35WHAXL2.js → inspect-FZJIVQKV.js} +1 -1
- package/dist/chunks/{inspect-GX34WQGR.js → inspect-KHEUFRVD.js} +1 -1
- package/dist/chunks/inspect-VHDOPOMX.js +9 -0
- package/dist/chunks/{list-BINT67HQ.js → list-IU7VXCG3.js} +1 -1
- package/dist/chunks/{list-VVND632B.js → list-ULHYVEMI.js} +1 -1
- package/dist/chunks/list-VRPHMTAV.js +12 -0
- package/dist/chunks/login-333JR3X5.js +7 -0
- package/dist/chunks/login-N3AJJ2TI.js +9 -0
- package/dist/chunks/logs-QCK5IEZ6.js +7 -0
- package/dist/chunks/{ls-6HYUGM62.js → ls-324AYCJH.js} +1 -1
- package/dist/chunks/{ls-YT3MWU4U.js → ls-7PMEAWRR.js} +1 -1
- package/dist/chunks/{ls-2MJY6EKD.js → ls-EKSX4DUZ.js} +1 -1
- package/dist/chunks/ls-K27L6SBM.js +11 -0
- package/dist/chunks/ls-Q6XVCKO3.js +8 -0
- package/dist/chunks/{ls-7OZ5TSNW.js → ls-S6RG3GU3.js} +1 -1
- package/dist/chunks/{ls-HTNWWU45.js → ls-WSX4L6GY.js} +1 -1
- package/dist/chunks/mutate-VQBALKRN.js +9 -0
- package/dist/chunks/{native-self-update-75UJCHGZ.js → native-self-update-7OAY4AVR.js} +1 -1
- package/dist/chunks/notifications-OQQ3ELSK.js +7 -0
- package/dist/chunks/open-ULGKVY4O.js +7 -0
- package/dist/chunks/{openapi-KYC6JIXI.js → openapi-YAZA3237.js} +1 -1
- package/dist/chunks/permissions-FCZAXNBP.js +7 -0
- package/dist/chunks/{plugin-offer-URT5JNEU.js → plugin-offer-REA2ZSBW.js} +1 -1
- package/dist/chunks/prompt-missing-credentials-AENJOWAN.js +7 -0
- package/dist/chunks/{publish-LH5CIXCP.js → publish-LUVUXRPN.js} +1 -1
- package/dist/chunks/pull-734D2SIQ.js +7 -0
- package/dist/chunks/purchase-domain-if-available-J32OZAAB.js +7 -0
- package/dist/chunks/push-7N63IRGS.js +7 -0
- package/dist/chunks/{query-POTX2HYL.js → query-ZRFRACJR.js} +1 -1
- package/dist/chunks/reauthenticate-A5TEIS2T.js +7 -0
- package/dist/chunks/reorder-A2GYXTE5.js +10 -0
- package/dist/chunks/reply-VRPDRYSF.js +9 -0
- package/dist/chunks/resolve-5IVOTHCA.js +12 -0
- package/dist/chunks/resolve-agent-team-U7H6YKBF.js +7 -0
- package/dist/chunks/{restore-L3T5KOG7.js → restore-2UIAA4WJ.js} +1 -1
- package/dist/chunks/rm-2VW3MMXV.js +8 -0
- package/dist/chunks/rm-KVDVCRHH.js +8 -0
- package/dist/chunks/rm-QLWZ7DR3.js +8 -0
- package/dist/chunks/rm-QTZDIV5M.js +8 -0
- package/dist/chunks/rm-RNC3IRNA.js +8 -0
- package/dist/chunks/{routes-S75L7Z7A.js → routes-4WGST7VN.js} +1 -1
- package/dist/chunks/rule-inspect-B6R3WIIR.js +8 -0
- package/dist/chunks/{schema-P4T4GQBF.js → schema-HIEZSFBL.js} +1 -1
- package/dist/chunks/{schema-TOVLKRPJ.js → schema-RP3BSWFK.js} +1 -1
- package/dist/chunks/select-org-A2QMWNDE.js +7 -0
- package/dist/chunks/set-VV3OH6P6.js +7 -0
- package/dist/chunks/setup-and-link-F5DSGQMW.js +7 -0
- package/dist/chunks/{skills-DZYJV7BE.js → skills-X5TPVYXW.js} +1 -1
- package/dist/chunks/{statuspage-45LJ2XYT.js → statuspage-KHTMA4WL.js} +1 -1
- package/dist/chunks/tags-KDAQZ5W2.js +7 -0
- package/dist/chunks/{types-YA6BOCRV.js → types-SENK43U4.js} +1 -1
- package/dist/chunks/{update-YSAO36V7.js → update-VT4MVVJF.js} +1 -1
- package/dist/chunks/zod-Y3ZBY67C.js +7 -0
- package/dist/commands/build/index.js +1 -1
- package/dist/commands/deploy/index.js +30 -23
- package/dist/commands/dev/index.js +2 -2
- package/dist/commands/env/index.js +1 -1
- package/dist/commands/link/index.js +1 -1
- package/dist/commands/list/index.js +1 -1
- package/dist/commands/project/index.js +7 -7
- package/dist/commands-account.js +18 -3
- 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 +1 -1
- package/dist/commands-flags.js +7 -9
- package/dist/commands-integrations.js +1 -1
- package/dist/commands-observability.js +5 -5
- package/dist/commands-routing.js +2 -2
- package/dist/help.js +1 -1
- package/dist/index.js +4 -4
- package/dist/internal-build-worker.js +1 -1
- package/dist/internal-build.js +1 -1
- package/dist/launcher-errors.js +11 -0
- package/dist/native-download.js +1 -1
- package/dist/package.json +26 -26
- package/dist/vc.js +355 -86
- package/dist/version.mjs +1 -1
- package/package.json +19 -19
- package/dist/chunks/add-6YFDZCAK.js +0 -8
- package/dist/chunks/add-QDZPCCUD.js +0 -8
- package/dist/chunks/add-Z24IIQDY.js +0 -8
- package/dist/chunks/build-HLU4YO37.js +0 -7
- package/dist/chunks/chunk-2CSCY66I.js +0 -11
- package/dist/chunks/chunk-2NABMKFV.js +0 -29
- package/dist/chunks/chunk-2TRNHR72.js +0 -7
- package/dist/chunks/chunk-32NXYHYC.js +0 -10
- package/dist/chunks/chunk-4CQKN5TW.js +0 -10
- package/dist/chunks/chunk-7DM3IJ7L.js +0 -10
- package/dist/chunks/chunk-AUCTNGW2.js +0 -7
- package/dist/chunks/chunk-C6525MLX.js +0 -10
- package/dist/chunks/chunk-CGTD4QFC.js +0 -7
- package/dist/chunks/chunk-DSNIVABS.js +0 -7
- package/dist/chunks/chunk-F53OKXYI.js +0 -7
- package/dist/chunks/chunk-K5YO4UD7.js +0 -7
- package/dist/chunks/chunk-NAU6URTI.js +0 -25
- package/dist/chunks/chunk-NNIQPNGP.js +0 -7
- package/dist/chunks/chunk-NTUDWWSL.js +0 -14
- package/dist/chunks/chunk-RZY54T7B.js +0 -7
- package/dist/chunks/chunk-SR2SHYJA.js +0 -7
- package/dist/chunks/chunk-WGVIQTOI.js +0 -8
- package/dist/chunks/chunk-YPPDRKVC.js +0 -7
- package/dist/chunks/clear-RU72IUXU.js +0 -8
- package/dist/chunks/config-PIFTR3UF.js +0 -8
- package/dist/chunks/delete-47BF6SIO.js +0 -9
- package/dist/chunks/delete-QNSKEIGO.js +0 -10
- package/dist/chunks/disable-SBFW3F7B.js +0 -7
- package/dist/chunks/discard-DUZR3OWZ.js +0 -14
- package/dist/chunks/edit-6BQ7FZC4.js +0 -8
- package/dist/chunks/edit-WO7FLNW2.js +0 -9
- package/dist/chunks/enable-OK4MR3Z6.js +0 -7
- package/dist/chunks/future-5AQIYILU.js +0 -7
- package/dist/chunks/generate-cert-for-deploy-7ERAHVOV.js +0 -7
- package/dist/chunks/image-IRC2NJVA.js +0 -7
- package/dist/chunks/inspect-5FKOSDTK.js +0 -13
- package/dist/chunks/inspect-ACNGICEF.js +0 -9
- package/dist/chunks/list-TRFGY6WP.js +0 -12
- package/dist/chunks/login-MYVTOBRG.js +0 -9
- package/dist/chunks/login-SOZ5ME3D.js +0 -7
- package/dist/chunks/logs-EMAGPMIZ.js +0 -7
- package/dist/chunks/ls-KU35N6DP.js +0 -8
- package/dist/chunks/ls-WFC636QK.js +0 -11
- package/dist/chunks/mutate-JVDDZLVE.js +0 -9
- package/dist/chunks/notifications-CXDBNBHU.js +0 -7
- package/dist/chunks/open-3CD5ZNKU.js +0 -7
- package/dist/chunks/permissions-PNBST4WN.js +0 -7
- package/dist/chunks/prompt-missing-credentials-Q5JCRP3R.js +0 -7
- package/dist/chunks/pull-XLZXPTLS.js +0 -7
- package/dist/chunks/purchase-domain-if-available-PDJGZ6MY.js +0 -7
- package/dist/chunks/push-XB57XK6H.js +0 -7
- package/dist/chunks/reauthenticate-CRI4D2BQ.js +0 -7
- package/dist/chunks/reorder-KUQ5EQBV.js +0 -10
- package/dist/chunks/reply-LO76EKEE.js +0 -9
- package/dist/chunks/resolve-KZJYJJLA.js +0 -12
- package/dist/chunks/resolve-agent-team-N7QMB7UO.js +0 -7
- package/dist/chunks/rm-7UKXTIZW.js +0 -8
- package/dist/chunks/rm-AKKEQN32.js +0 -8
- package/dist/chunks/rm-ELC57ULY.js +0 -8
- package/dist/chunks/rm-K7XEZ7TY.js +0 -8
- package/dist/chunks/rm-MOYCAXNO.js +0 -8
- package/dist/chunks/rule-inspect-ZCS4EBKR.js +0 -8
- package/dist/chunks/select-org-6NEM7F25.js +0 -7
- package/dist/chunks/set-NXFB6JXG.js +0 -7
- package/dist/chunks/setup-and-link-L67MMSUD.js +0 -7
- package/dist/chunks/tags-5AV6WAOF.js +0 -7
- package/dist/chunks/zod-2C2SXNIK.js +0 -7
|
@@ -4,4 +4,4 @@ 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{performDeviceCodeFlow}from"./chunk-
|
|
7
|
+
import{performDeviceCodeFlow}from"./chunk-TRYRN6OD.js";import{isAPIError}from"./chunk-T2FCF46I.js";import{output_manager_default}from"./chunk-W634OFUG.js";import{URLSearchParams}from"url";var RECOVERABLE_CHALLENGE_CODES=new Set(["challenge_required","challenge_required_email_otp","user_auth_required"]);async function withEnvChallengeRecovery(client,fn){let hadStoredSession=!!(client.authConfig.token||client.authConfig.refreshToken);try{return await fn()}catch(error){if(!isAPIError(error))throw error;let isRecoverableChallenge=RECOVERABLE_CHALLENGE_CODES.has(error.code),isRejectedStoredSession=hadStoredSession&&error.invalidToken===!0;if(!isRecoverableChallenge&&!isRejectedStoredSession||client.authConfig.tokenSource||!client.stdin.isTTY||client.nonInteractive)throw error;output_manager_default.stopSpinner(),output_manager_default.log("Sensitive Environment Variables require fresh authentication.");let refreshToken=client.authConfig.refreshToken,acrValues=getAcrValuesFromWWWAuthenticate(error.wwwAuthenticate),tokens=isRecoverableChallenge&&refreshToken&&acrValues?await performDeviceCodeFlow(client,{refreshToken,acrValues,fallbackToLoginOnStepUpFailure:!0}):await performDeviceCodeFlow(client);if(!tokens)throw error;return client.updateAuthConfig({token:tokens.access_token,userId:void 0,expiresAt:Math.floor(Date.now()/1e3)+tokens.expires_in,refreshToken:tokens.refresh_token,dpop:tokens.dpop}),client.persistAuthConfig(),await fn()}}function getAcrValuesFromWWWAuthenticate(header){if(!header)return;let lowerHeader=header.toLowerCase(),scheme=lowerHeader.includes("bearer")?"bearer":"dpop",schemeIndex=lowerHeader.indexOf(scheme);if(schemeIndex===-1)return;let match=header.slice(schemeIndex+scheme.length).match(/(?:^|[,\s])acr_values=(?:"((?:\\.|[^"\\])*)"|([^,\s]+))/i);return match?.[1]?.replace(/\\(.)/g,"$1")??match?.[2]}async function getEnvRecords(client,projectId,source,{target,gitBranch,decrypt}={}){output_manager_default.debug(`Fetching Environment Variables of project ${projectId} and target ${target}`);let query=new URLSearchParams;if(target){let targetParam="target";target!=="production"&&target!=="preview"&&target!=="development"&&(targetParam="customEnvironmentId"),query.set(targetParam,target)}gitBranch&&query.set("gitBranch",gitBranch),decrypt&&query.set("decrypt",decrypt.toString()),source&&query.set("source",source);let url=`/v10/projects/${projectId}/env?${query}`;return withEnvChallengeRecovery(client,()=>client.fetch(url))}async function pullEnvRecords(client,projectIdOrDeploymentId,source,{target,gitBranch}={}){output_manager_default.debug(`Fetching Environment Variables of ${projectIdOrDeploymentId} and target ${target}`);let query=new URLSearchParams,url=`/v3/env/pull/${projectIdOrDeploymentId}`;return projectIdOrDeploymentId.startsWith("dpl_")||target&&(url+=`/${encodeURIComponent(target)}`,gitBranch&&(url+=`/${encodeURIComponent(gitBranch)}`)),source&&query.set("source",source),Array.from(query).length>0&&(url+=`?${query}`),withEnvChallengeRecovery(client,()=>client.fetch(url))}var parseEnv=env=>{if(!env)return{};if(typeof env=="string"&&(env=[env]),Array.isArray(env)){let startingDict={};return env.reduce((o,e)=>{let key,value,equalsSign=e.indexOf("=");return equalsSign===-1?key=e:(key=e.slice(0,equalsSign),value=e.slice(equalsSign+1)),o[key]=value,o},startingDict)}return env};export{getEnvRecords,pullEnvRecords,parseEnv};
|
|
@@ -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{getNativePackageName,withDirectoryLock}from"./chunk-Y5YXAXK3.js";import{HOMEBREW_UPGRADE_COMMAND,getUpdateCommandInfo,getUpgradePackageManager,isGlobal,trustedUpgradeDirectory,trustedUpgradeEnvironment}from"./chunk-4OTI552J.js";import{require_semver}from"./chunk-BPUANOGW.js";import{progress}from"./chunk-U56NHYAH.js";import{require_ci_info}from"./chunk-2EYYB6YN.js";import{getInstallRoot,isNativeBinaryInstall}from"./chunk-NWGBDBZI.js";import{getCachedUsername,require_lib}from"./chunk-OZPBJWYU.js";import{pkg_default}from"./chunk-DBT6PGEH.js";import{output_manager_default}from"./chunk-W634OFUG.js";import{__commonJS,__require,__toESM}from"./chunk-BZENIQ7N.js";var require_lib2=__commonJS({"../../node_modules/.pnpm/os-paths@4.4.0/node_modules/os-paths/src/lib/index.js"(exports,module){"use strict";var os=__require("os"),paths=__require("path"),isWinOS=/^win/i.test(process.platform);function normalize_path(path){return paths.normalize(paths.join(path,"."))}var base=()=>{let{env}=process,object={};return object.home=()=>normalize_path(os.homedir?os.homedir():env.HOME),object.temp=()=>normalize_path(os.tmpdir?os.tmpdir():env.TMPDIR||env.TEMP||env.TMP),object},windows=()=>{let{env}=process,object={};return object.home=()=>normalize_path(os.homedir?os.homedir():env.USERPROFILE||paths.join(env.HOMEDRIVE,env.HOMEPATH)||env.HOME),object.temp=()=>normalize_path(os.tmpdir?os.tmpdir():env.TEMP||env.TMP||paths.join(env.LOCALAPPDATA||env.SystemRoot||env.windir,"Temp")),object},_OSPaths=class __OSPaths{constructor(){let OSPaths=function(){return new __OSPaths};this._fn=OSPaths;let extension=isWinOS?windows():base();return Object.keys(extension).forEach(key=>{this._fn[key]=extension[key]}),this._fn}};module.exports=new _OSPaths}});var require_lib3=__commonJS({"../../node_modules/.pnpm/xdg-portable@7.3.0/node_modules/xdg-portable/src/lib/index.js"(exports,module){"use strict";var path=__require("path"),osPaths=require_lib2(),linux=()=>{let object={};return object.cache=()=>process.env.XDG_CACHE_HOME||path.join(osPaths.home()||osPaths.temp(),".cache"),object.config=()=>process.env.XDG_CONFIG_HOME||path.join(osPaths.home()||osPaths.temp(),".config"),object.data=()=>process.env.XDG_DATA_HOME||path.join(osPaths.home()||osPaths.temp(),".local","share"),object.runtime=()=>process.env.XDG_RUNTIME_DIR||void 0,object.state=()=>process.env.XDG_STATE_HOME||path.join(osPaths.home()||osPaths.temp(),".local","state"),object},macos=()=>{let object={};return object.cache=()=>process.env.XDG_CACHE_HOME||path.join(path.join(osPaths.home()||osPaths.temp(),"Library"),"Caches"),object.config=()=>process.env.XDG_CONFIG_HOME||path.join(path.join(osPaths.home()||osPaths.temp(),"Library"),"Preferences"),object.data=()=>process.env.XDG_DATA_HOME||path.join(path.join(osPaths.home()||osPaths.temp(),"Library"),"Application Support"),object.runtime=()=>process.env.XDG_RUNTIME_DIR||void 0,object.state=()=>process.env.XDG_STATE_HOME||path.join(path.join(osPaths.home()||osPaths.temp(),"Library"),"State"),object},windows=()=>{let object={};return object.cache=()=>{let localAppData=process.env.LOCALAPPDATA||path.join(osPaths.home()||osPaths.temp(),"AppData","Local");return process.env.XDG_CACHE_HOME||path.join(localAppData,"xdg.cache")},object.config=()=>{let appData=process.env.APPDATA||path.join(osPaths.home()||osPaths.temp(),"AppData","Roaming");return process.env.XDG_CONFIG_HOME||path.join(appData,"xdg.config")},object.data=()=>{let appData=process.env.APPDATA||path.join(osPaths.home()||osPaths.temp(),"AppData","Roaming");return process.env.XDG_DATA_HOME||path.join(appData,"xdg.data")},object.runtime=()=>process.env.XDG_RUNTIME_DIR||void 0,object.state=()=>{let localAppData=process.env.LOCALAPPDATA||path.join(osPaths.home()||osPaths.temp(),"AppData","Local");return process.env.XDG_STATE_HOME||path.join(localAppData,"xdg.state")},object},_XDGPortable=()=>{let XDGPortable=function(){return _XDGPortable()},extension={};return/^darwin$/i.test(process.platform)?extension=macos():/^win/i.test(process.platform)?extension=windows():extension=linux(),extension.configDirs=()=>{let dirs=[];return dirs.push(extension.config()),process.env.XDG_CONFIG_DIRS&&dirs.push(...process.env.XDG_CONFIG_DIRS.split(path.delimiter)),dirs},extension.dataDirs=()=>{let dirs=[];return dirs.push(extension.data()),process.env.XDG_DATA_DIRS&&dirs.push(...process.env.XDG_DATA_DIRS.split(path.delimiter)),dirs},Object.keys(extension).forEach(key=>{XDGPortable[key]=extension[key]}),XDGPortable};module.exports=_XDGPortable()}});var require_xdg_app_paths=__commonJS({"../../node_modules/.pnpm/xdg-app-paths@5.1.0/node_modules/xdg-app-paths/index.js"(exports,module){"use strict";var path=__require("path"),os=__require("os"),xdg=require_lib3(),isWinOS=/^win/i.test(process.platform);function _normalizeOptions(options,isolated){if(options=options||{},typeof options!="object"&&(options={isolated:options}),options.isolated=options.isolated===void 0||options.isolated===null?isolated:options.isolated,typeof options.isolated!="boolean")throw new TypeError(`Expected boolean for "isolated" argument, got ${typeof options.isolated}`);return options}var base=(name,isolated)=>{let object={};return object.cache=(options={isolated:null})=>(options=_normalizeOptions(options,isolated),path.join(xdg.cache(),options.isolated?name:"")),object.config=(options={isolated:null})=>(options=_normalizeOptions(options,isolated),path.join(xdg.config(),options.isolated?name:"")),object.data=(options={isolated:null})=>(options=_normalizeOptions(options,isolated),path.join(xdg.data(),options.isolated?name:"")),object.runtime=(options={isolated:null})=>(options=_normalizeOptions(options,isolated),xdg.runtime()?path.join(xdg.runtime(),options.isolated?name:""):void 0),object.state=(options={isolated:null})=>(options=_normalizeOptions(options,isolated),path.join(xdg.state(),options.isolated?name:"")),object.configDirs=(options={isolated:null})=>(options=_normalizeOptions(options,isolated),xdg.configDirs().map(s=>path.join(s,options.isolated?name:""))),object.dataDirs=(options={isolated:null})=>(options=_normalizeOptions(options,isolated),xdg.dataDirs().map(s=>path.join(s,options.isolated?name:""))),object},windows=(name,isolated)=>{let{env}=process,homedir=os.homedir(),tmpdir=os.tmpdir(),appData=env.APPDATA||path.join(homedir||tmpdir,"AppData","Roaming"),localAppData=env.LOCALAPPDATA||path.join(homedir||tmpdir,"AppData","Local"),object={};return object.cache=(options={isolated:null})=>(options=_normalizeOptions(options,isolated),!options.isolated||env.XDG_CACHE_HOME?path.join(xdg.cache(),options.isolated?name:""):path.join(localAppData,options.isolated?name:"","Cache")),object.config=(options={isolated:null})=>(options=_normalizeOptions(options,isolated),!options.isolated||env.XDG_CONFIG_HOME?path.join(xdg.config(),options.isolated?name:""):path.join(appData,options.isolated?name:"","Config")),object.data=(options={isolated:null})=>(options=_normalizeOptions(options,isolated),!options.isolated||env.XDG_DATA_HOME?path.join(xdg.data(),options.isolated?name:""):path.join(appData,options.isolated?name:"","Data")),object.runtime=(options={isolated:null})=>(options=_normalizeOptions(options,isolated),xdg.runtime()?path.join(xdg.runtime(),options.isolated?name:""):void 0),object.state=(options={isolated:null})=>(options=_normalizeOptions(options,isolated),!options.isolated||env.XDG_STATE_HOME?path.join(xdg.state(),options.isolated?name:""):path.join(localAppData,options.isolated?name:"","State")),object.configDirs=(options={isolated:null})=>{options=_normalizeOptions(options,isolated);let dirs=[object.config(options)];return env.XDG_CONFIG_DIRS&&dirs.push(...env.XDG_CONFIG_DIRS.split(path.delimiter).map(s=>path.join(s,options.isolated?name:""))),dirs},object.dataDirs=(options={isolated:null})=>{options=_normalizeOptions(options,isolated);let dirs=[object.data(options)];return env.XDG_DATA_DIRS&&dirs.push(...env.XDG_DATA_DIRS.split(path.delimiter).map(s=>path.join(s,options.isolated?name:""))),dirs},object},_XDGAppPaths=class __XDGAppPaths{constructor(options={name:null,suffix:null,isolated:!0}){let XDGAppPaths2=function(options2={name:null,suffix:null,isolated:!0}){return new __XDGAppPaths(options2)};this._fn=XDGAppPaths2,options=options||{},typeof options!="object"&&(options={name:options});let name=options.name||"";if(typeof name!="string")throw new TypeError(`Expected string for "name" argument, got ${typeof name}`);let suffix=options.suffix||"";if(typeof suffix!="string")throw new TypeError(`Expected string for "suffix" argument, got ${typeof suffix}`);let isolated=options.isolated===void 0||options.isolated===null?!0:options.isolated;if(typeof isolated!="boolean")throw new TypeError(`Expected boolean for "isolated" argument, got ${typeof isolated}`);name||(name=path.parse(process.pkg?process.execPath:__require.main?__require.main.filename:process.argv[0]).name),suffix&&(name+=suffix),this._fn.$name=()=>name,this._fn.$isolated=()=>isolated;let extension=isWinOS?windows(name,isolated):base(name,isolated);return Object.keys(extension).forEach(key=>{this._fn[key]=extension[key]}),this._fn}};module.exports=new _XDGAppPaths}});var require_fetch_dist_tags=__commonJS({"src/util/get-latest-version/fetch-dist-tags.cjs"(exports,module){"use strict";var https=__require("https");function fetchDistTags(name,options){let timeout=options&&options.timeout||3e3,agent=new https.Agent({keepAlive:!0,maxSockets:15}),headers={accept:"application/vnd.npm.install-v1+json; q=1.0, application/json; q=0.8, */*"},url=`https://registry.npmjs.org/-/package/${name}/dist-tags`;return new Promise(resolve2=>{let timer=setTimeout(()=>{req.destroy(),resolve2(void 0)},timeout),req=https.get(url,{agent,headers},res=>{let buf="";res.on("data",chunk=>{buf+=chunk}),res.on("end",()=>{clearTimeout(timer);try{if(res.statusCode&&res.statusCode>=400){resolve2(void 0);return}resolve2(JSON.parse(buf))}catch{resolve2(void 0)}})});req.on("error",()=>{clearTimeout(timer),resolve2(void 0)})})}module.exports={fetchDistTags}}});function getWhoamiCachedAnswer(args,authConfig){return args.includes("--cached")?getCachedUsername(authConfig):void 0}var import_semver=__toESM(require_semver(),1);import{spawn,execFile}from"child_process";function renderUpgradeProgress(current,total,phase){let bar=progress(current,total);output_manager_default.spinner(bar?`Upgrading Vercel CLI [${bar}] (${current}/${total})${phase?` ${phase}`:""}`:phase||"Upgrading Vercel CLI\u2026",0)}function execFileStdout(command,args,cwd,env=trustedUpgradeEnvironment){return new Promise((resolve2,reject)=>{execFile(command,args,{encoding:"utf8",windowsHide:!0,cwd,timeout:15e3,env:{...env}},(error,stdout)=>{if(error){reject(error);return}resolve2(stdout.toString())})})}function parseVersionOutput(stdout){for(let line of[stdout.trim(),...stdout.trim().split(`
|
|
7
|
+
import{getNativePackageName,withDirectoryLock}from"./chunk-R3D4M5RE.js";import{HOMEBREW_UPGRADE_COMMAND,getUpdateCommandInfo,getUpgradePackageManager,isGlobal,trustedUpgradeDirectory,trustedUpgradeEnvironment}from"./chunk-Y45SSWNH.js";import{require_semver}from"./chunk-BPUANOGW.js";import{progress}from"./chunk-U56NHYAH.js";import{require_ci_info}from"./chunk-2EYYB6YN.js";import{getInstallRoot,isNativeBinaryInstall}from"./chunk-NWGBDBZI.js";import{getCachedUsername,require_lib}from"./chunk-CSOIXUCL.js";import{pkg_default}from"./chunk-DBT6PGEH.js";import{output_manager_default}from"./chunk-W634OFUG.js";import{__commonJS,__require,__toESM}from"./chunk-BZENIQ7N.js";var require_lib2=__commonJS({"../../node_modules/.pnpm/os-paths@4.4.0/node_modules/os-paths/src/lib/index.js"(exports,module){"use strict";var os=__require("os"),paths=__require("path"),isWinOS=/^win/i.test(process.platform);function normalize_path(path){return paths.normalize(paths.join(path,"."))}var base=()=>{let{env}=process,object={};return object.home=()=>normalize_path(os.homedir?os.homedir():env.HOME),object.temp=()=>normalize_path(os.tmpdir?os.tmpdir():env.TMPDIR||env.TEMP||env.TMP),object},windows=()=>{let{env}=process,object={};return object.home=()=>normalize_path(os.homedir?os.homedir():env.USERPROFILE||paths.join(env.HOMEDRIVE,env.HOMEPATH)||env.HOME),object.temp=()=>normalize_path(os.tmpdir?os.tmpdir():env.TEMP||env.TMP||paths.join(env.LOCALAPPDATA||env.SystemRoot||env.windir,"Temp")),object},_OSPaths=class __OSPaths{constructor(){let OSPaths=function(){return new __OSPaths};this._fn=OSPaths;let extension=isWinOS?windows():base();return Object.keys(extension).forEach(key=>{this._fn[key]=extension[key]}),this._fn}};module.exports=new _OSPaths}});var require_lib3=__commonJS({"../../node_modules/.pnpm/xdg-portable@7.3.0/node_modules/xdg-portable/src/lib/index.js"(exports,module){"use strict";var path=__require("path"),osPaths=require_lib2(),linux=()=>{let object={};return object.cache=()=>process.env.XDG_CACHE_HOME||path.join(osPaths.home()||osPaths.temp(),".cache"),object.config=()=>process.env.XDG_CONFIG_HOME||path.join(osPaths.home()||osPaths.temp(),".config"),object.data=()=>process.env.XDG_DATA_HOME||path.join(osPaths.home()||osPaths.temp(),".local","share"),object.runtime=()=>process.env.XDG_RUNTIME_DIR||void 0,object.state=()=>process.env.XDG_STATE_HOME||path.join(osPaths.home()||osPaths.temp(),".local","state"),object},macos=()=>{let object={};return object.cache=()=>process.env.XDG_CACHE_HOME||path.join(path.join(osPaths.home()||osPaths.temp(),"Library"),"Caches"),object.config=()=>process.env.XDG_CONFIG_HOME||path.join(path.join(osPaths.home()||osPaths.temp(),"Library"),"Preferences"),object.data=()=>process.env.XDG_DATA_HOME||path.join(path.join(osPaths.home()||osPaths.temp(),"Library"),"Application Support"),object.runtime=()=>process.env.XDG_RUNTIME_DIR||void 0,object.state=()=>process.env.XDG_STATE_HOME||path.join(path.join(osPaths.home()||osPaths.temp(),"Library"),"State"),object},windows=()=>{let object={};return object.cache=()=>{let localAppData=process.env.LOCALAPPDATA||path.join(osPaths.home()||osPaths.temp(),"AppData","Local");return process.env.XDG_CACHE_HOME||path.join(localAppData,"xdg.cache")},object.config=()=>{let appData=process.env.APPDATA||path.join(osPaths.home()||osPaths.temp(),"AppData","Roaming");return process.env.XDG_CONFIG_HOME||path.join(appData,"xdg.config")},object.data=()=>{let appData=process.env.APPDATA||path.join(osPaths.home()||osPaths.temp(),"AppData","Roaming");return process.env.XDG_DATA_HOME||path.join(appData,"xdg.data")},object.runtime=()=>process.env.XDG_RUNTIME_DIR||void 0,object.state=()=>{let localAppData=process.env.LOCALAPPDATA||path.join(osPaths.home()||osPaths.temp(),"AppData","Local");return process.env.XDG_STATE_HOME||path.join(localAppData,"xdg.state")},object},_XDGPortable=()=>{let XDGPortable=function(){return _XDGPortable()},extension={};return/^darwin$/i.test(process.platform)?extension=macos():/^win/i.test(process.platform)?extension=windows():extension=linux(),extension.configDirs=()=>{let dirs=[];return dirs.push(extension.config()),process.env.XDG_CONFIG_DIRS&&dirs.push(...process.env.XDG_CONFIG_DIRS.split(path.delimiter)),dirs},extension.dataDirs=()=>{let dirs=[];return dirs.push(extension.data()),process.env.XDG_DATA_DIRS&&dirs.push(...process.env.XDG_DATA_DIRS.split(path.delimiter)),dirs},Object.keys(extension).forEach(key=>{XDGPortable[key]=extension[key]}),XDGPortable};module.exports=_XDGPortable()}});var require_xdg_app_paths=__commonJS({"../../node_modules/.pnpm/xdg-app-paths@5.1.0/node_modules/xdg-app-paths/index.js"(exports,module){"use strict";var path=__require("path"),os=__require("os"),xdg=require_lib3(),isWinOS=/^win/i.test(process.platform);function _normalizeOptions(options,isolated){if(options=options||{},typeof options!="object"&&(options={isolated:options}),options.isolated=options.isolated===void 0||options.isolated===null?isolated:options.isolated,typeof options.isolated!="boolean")throw new TypeError(`Expected boolean for "isolated" argument, got ${typeof options.isolated}`);return options}var base=(name,isolated)=>{let object={};return object.cache=(options={isolated:null})=>(options=_normalizeOptions(options,isolated),path.join(xdg.cache(),options.isolated?name:"")),object.config=(options={isolated:null})=>(options=_normalizeOptions(options,isolated),path.join(xdg.config(),options.isolated?name:"")),object.data=(options={isolated:null})=>(options=_normalizeOptions(options,isolated),path.join(xdg.data(),options.isolated?name:"")),object.runtime=(options={isolated:null})=>(options=_normalizeOptions(options,isolated),xdg.runtime()?path.join(xdg.runtime(),options.isolated?name:""):void 0),object.state=(options={isolated:null})=>(options=_normalizeOptions(options,isolated),path.join(xdg.state(),options.isolated?name:"")),object.configDirs=(options={isolated:null})=>(options=_normalizeOptions(options,isolated),xdg.configDirs().map(s=>path.join(s,options.isolated?name:""))),object.dataDirs=(options={isolated:null})=>(options=_normalizeOptions(options,isolated),xdg.dataDirs().map(s=>path.join(s,options.isolated?name:""))),object},windows=(name,isolated)=>{let{env}=process,homedir=os.homedir(),tmpdir=os.tmpdir(),appData=env.APPDATA||path.join(homedir||tmpdir,"AppData","Roaming"),localAppData=env.LOCALAPPDATA||path.join(homedir||tmpdir,"AppData","Local"),object={};return object.cache=(options={isolated:null})=>(options=_normalizeOptions(options,isolated),!options.isolated||env.XDG_CACHE_HOME?path.join(xdg.cache(),options.isolated?name:""):path.join(localAppData,options.isolated?name:"","Cache")),object.config=(options={isolated:null})=>(options=_normalizeOptions(options,isolated),!options.isolated||env.XDG_CONFIG_HOME?path.join(xdg.config(),options.isolated?name:""):path.join(appData,options.isolated?name:"","Config")),object.data=(options={isolated:null})=>(options=_normalizeOptions(options,isolated),!options.isolated||env.XDG_DATA_HOME?path.join(xdg.data(),options.isolated?name:""):path.join(appData,options.isolated?name:"","Data")),object.runtime=(options={isolated:null})=>(options=_normalizeOptions(options,isolated),xdg.runtime()?path.join(xdg.runtime(),options.isolated?name:""):void 0),object.state=(options={isolated:null})=>(options=_normalizeOptions(options,isolated),!options.isolated||env.XDG_STATE_HOME?path.join(xdg.state(),options.isolated?name:""):path.join(localAppData,options.isolated?name:"","State")),object.configDirs=(options={isolated:null})=>{options=_normalizeOptions(options,isolated);let dirs=[object.config(options)];return env.XDG_CONFIG_DIRS&&dirs.push(...env.XDG_CONFIG_DIRS.split(path.delimiter).map(s=>path.join(s,options.isolated?name:""))),dirs},object.dataDirs=(options={isolated:null})=>{options=_normalizeOptions(options,isolated);let dirs=[object.data(options)];return env.XDG_DATA_DIRS&&dirs.push(...env.XDG_DATA_DIRS.split(path.delimiter).map(s=>path.join(s,options.isolated?name:""))),dirs},object},_XDGAppPaths=class __XDGAppPaths{constructor(options={name:null,suffix:null,isolated:!0}){let XDGAppPaths2=function(options2={name:null,suffix:null,isolated:!0}){return new __XDGAppPaths(options2)};this._fn=XDGAppPaths2,options=options||{},typeof options!="object"&&(options={name:options});let name=options.name||"";if(typeof name!="string")throw new TypeError(`Expected string for "name" argument, got ${typeof name}`);let suffix=options.suffix||"";if(typeof suffix!="string")throw new TypeError(`Expected string for "suffix" argument, got ${typeof suffix}`);let isolated=options.isolated===void 0||options.isolated===null?!0:options.isolated;if(typeof isolated!="boolean")throw new TypeError(`Expected boolean for "isolated" argument, got ${typeof isolated}`);name||(name=path.parse(process.pkg?process.execPath:__require.main?__require.main.filename:process.argv[0]).name),suffix&&(name+=suffix),this._fn.$name=()=>name,this._fn.$isolated=()=>isolated;let extension=isWinOS?windows(name,isolated):base(name,isolated);return Object.keys(extension).forEach(key=>{this._fn[key]=extension[key]}),this._fn}};module.exports=new _XDGAppPaths}});var require_fetch_dist_tags=__commonJS({"src/util/get-latest-version/fetch-dist-tags.cjs"(exports,module){"use strict";var https=__require("https");function fetchDistTags(name,options){let timeout=options&&options.timeout||3e3,agent=new https.Agent({keepAlive:!0,maxSockets:15}),headers={accept:"application/vnd.npm.install-v1+json; q=1.0, application/json; q=0.8, */*"},url=`https://registry.npmjs.org/-/package/${name}/dist-tags`;return new Promise(resolve2=>{let timer=setTimeout(()=>{req.destroy(),resolve2(void 0)},timeout),req=https.get(url,{agent,headers},res=>{let buf="";res.on("data",chunk=>{buf+=chunk}),res.on("end",()=>{clearTimeout(timer);try{if(res.statusCode&&res.statusCode>=400){resolve2(void 0);return}resolve2(JSON.parse(buf))}catch{resolve2(void 0)}})});req.on("error",()=>{clearTimeout(timer),resolve2(void 0)})})}module.exports={fetchDistTags}}});function getWhoamiCachedAnswer(args,authConfig){return args.includes("--cached")?getCachedUsername(authConfig):void 0}var import_semver=__toESM(require_semver(),1);import{spawn,execFile}from"child_process";function renderUpgradeProgress(current,total,phase){let bar=progress(current,total);output_manager_default.spinner(bar?`Upgrading Vercel CLI [${bar}] (${current}/${total})${phase?` ${phase}`:""}`:phase||"Upgrading Vercel CLI\u2026",0)}function execFileStdout(command,args,cwd,env=trustedUpgradeEnvironment){return new Promise((resolve2,reject)=>{execFile(command,args,{encoding:"utf8",windowsHide:!0,cwd,timeout:15e3,env:{...env}},(error,stdout)=>{if(error){reject(error);return}resolve2(stdout.toString())})})}function parseVersionOutput(stdout){for(let line of[stdout.trim(),...stdout.trim().split(`
|
|
8
8
|
`).reverse()])try{let value=JSON.parse(line),parsed=Array.isArray(value)&&value.length===1?value[0]:value,version=typeof parsed=="string"?parsed:typeof parsed?.data=="string"?parsed.data:void 0;if(version&&import_semver.default.valid(version))return version}catch{let version=line.trim();if(import_semver.default.valid(version))return version}}async function getLatestPackageVersion(packageManager,installArgs,cwd,global,env,bypassMinReleaseAge=!0){let packageSpecifier=installArgs.find(arg=>arg.endsWith("@latest"));if(!packageSpecifier)return;let manager=getUpgradePackageManager(packageManager),queryArgs=[...manager.metadataArgs(packageSpecifier),...bypassMinReleaseAge?manager.releaseAgeBypassArgs:[]];try{let stdout=await execFileStdout(packageManager,queryArgs,cwd,env);return parseVersionOutput(stdout)}catch(error){output_manager_default.debug(`Failed to resolve the latest Vercel CLI version: ${error instanceof Error?error.message:String(error)}`);return}}async function getInstalledPackageVersion(packageManager,installArgs,cwd,global){let packageSpecifier=installArgs.find(arg=>arg.endsWith("@latest"));if(!packageSpecifier)return;let packageName=packageSpecifier.slice(0,-7);try{let stdout=await execFileStdout(packageManager,["list",packageName,"--depth=0","--json",...global?["--global"]:[]],cwd),parsed=JSON.parse(stdout),projects=Array.isArray(parsed)?parsed:[parsed];for(let project of projects){let version=project?.dependencies?.[packageName]?.version??project?.devDependencies?.[packageName]?.version??project?.optionalDependencies?.[packageName]?.version;if(typeof version=="string"&&import_semver.default.valid(version))return version}}catch(error){output_manager_default.debug(`Failed to read the installed Vercel CLI version: ${error instanceof Error?error.message:String(error)}`)}}function isVersionCurrent(current,latest){return import_semver.default.valid(current)&&import_semver.default.valid(latest)?import_semver.default.gte(current,latest):current===latest}function pinPackageVersion(args,version){return args.map(arg=>arg.endsWith("@latest")?`${arg.slice(0,-6)}${version}`:arg)}async function getMinReleaseAgeContext(packageManager,cwd,global){let setting=packageManager==="pnpm"?"minimumReleaseAge":"min-release-age";try{let raw=(await execFileStdout(packageManager,["config","get",setting,"--json",...global?["--global"]:[]],cwd)).trim(),value=raw===""||raw==="undefined"?void 0:JSON.parse(raw);if(!(value==null||value===""||value==="undefined")){let age=typeof value=="number"||typeof value=="string"&&value.trim()!==""?Number(value):NaN;if(!Number.isFinite(age)||age<0)return`Could not determine ${packageManager}'s configured minimum release age.`;let minutes=packageManager==="pnpm"?age:age*1440,duration=minutes>0&&minutes%60===0?`${minutes/60} ${minutes===60?"hour":"hours"}`:`${minutes} ${minutes===1?"minute":"minutes"}`;return`${packageManager} ${setting} is configured to ${duration}.`}if(packageManager==="pnpm"){let version=parseVersionOutput(await execFileStdout(packageManager,["--version"],cwd));if(version&&!import_semver.default.prerelease(version)&&import_semver.default.gte(version,"11.0.0"))return`pnpm ${version} defaults to a minimum release age of 24 hours (1440 minutes); no explicit minimumReleaseAge setting was reported.`}return`${packageManager} did not report a configured minimum release age.`}catch{return`Could not determine ${packageManager}'s configured minimum release age.`}}function isMinReleaseAgeError(packageManager,stdout,stderr){let installerOutput=`${stdout}
|
|
9
9
|
${stderr}`;return packageManager==="pnpm"?installerOutput.includes("ERR_PNPM_NO_MATURE_MATCHING_VERSION")||installerOutput.includes("ERR_PNPM_NO_MATCHING_VERSION")&&installerOutput.includes("satisfies the specs but was released at"):packageManager==="npm"?/\bETARGET\b/.test(installerOutput)&&installerOutput.includes("with a date before")||/min-release-age cannot be provided/i.test(installerOutput):!1}function setMinReleaseAgeBypass(client,enabled){client.config={...client.config,updates:{...client.config.updates,bypassMinReleaseAge:enabled}},client.writeToConfigFile()}async function executeHomebrewUpgrade(env=trustedUpgradeEnvironment){let[brew,...args]=HOMEBREW_UPGRADE_COMMAND.split(" ");output_manager_default.debug(`Executing: ${HOMEBREW_UPGRADE_COMMAND}`);let result=await new Promise(resolve2=>{let settled=!1,brewProcess=spawn(brew,args,{cwd:trustedUpgradeDirectory,env:{...env},stdio:"inherit",shell:!1});brewProcess.on("error",spawnError=>{settled||(settled=!0,resolve2({code:1,spawnError}))}),brewProcess.on("close",code=>{settled||(settled=!0,resolve2({code:code??1}))})});return result.spawnError?(output_manager_default.error(`Failed to run Homebrew: ${result.spawnError.message}`),output_manager_default.log(`You can try running the command manually: ${HOMEBREW_UPGRADE_COMMAND}`),1):(result.code!==0&&(output_manager_default.error(`Homebrew upgrade failed with exit code ${result.code}`),output_manager_default.log(`You can try running the command manually: ${HOMEBREW_UPGRADE_COMMAND}`)),result.code)}function executeAutomaticUpgrade(client,env=trustedUpgradeEnvironment){return executeUpgrade("latest",client,!1,!0,env,"package-manager")}async function executeUpgrade(targetVersion,client,bypassMinReleaseAge=!1,explicitTarget=!1,env=trustedUpgradeEnvironment,releaseAgePolicy="newest"){let totalSteps=targetVersion?2:3;renderUpgradeProgress(0,totalSteps,"Resolving installer\u2026");let{command:updateCommand,global,packageManager}=await getUpdateCommandInfo(env).catch(error=>{throw output_manager_default.stopSpinner(),error}),[command,...args]=updateCommand.split(" "),cwd=global?trustedUpgradeDirectory:process.cwd(),bypassArgs=getUpgradePackageManager(packageManager).releaseAgeBypassArgs;if(bypassMinReleaseAge&&bypassArgs.length===0)return output_manager_default.stopSpinner(),output_manager_default.error(`Minimum release-age bypass is not supported for ${packageManager}. Run the upgrade without --bypass-min-release-age, or configure release-age settings in ${packageManager} directly.`),1;bypassMinReleaseAge&&client&&client.config.updates?.bypassMinReleaseAge!==!0&&setMinReleaseAgeBypass(client,!0);let versionBefore=pkg_default.version,installLatestTag=explicitTarget&&targetVersion==="latest",resolvedTargetVersion=installLatestTag?void 0:targetVersion;if(targetVersion||(renderUpgradeProgress(1,totalSteps,"Checking for updates\u2026"),resolvedTargetVersion=await getLatestPackageVersion(packageManager,args,cwd,global,env,releaseAgePolicy==="newest")),!resolvedTargetVersion&&!installLatestTag)return output_manager_default.stopSpinner(),output_manager_default.error("Failed to resolve the latest Vercel CLI version."),1;if(!explicitTarget&&resolvedTargetVersion&&isVersionCurrent(versionBefore,resolvedTargetVersion))return renderUpgradeProgress(totalSteps,totalSteps),output_manager_default.stopSpinner(),output_manager_default.log(`No upgrade available. Vercel CLI is already up to date (v${versionBefore}).`),0;let installArgs=resolvedTargetVersion?pinPackageVersion(args,resolvedTargetVersion):args,shouldBypass=releaseAgePolicy==="newest"&&bypassArgs.length>0&&(bypassMinReleaseAge||client?.config.updates?.bypassMinReleaseAge===!0);shouldBypass&&(installArgs=[...installArgs,...bypassArgs]);let runInstall=currentArgs=>{let installCommand=[command,...currentArgs].join(" ");return output_manager_default.debug(`Executing: ${installCommand} (cwd: ${cwd})`),new Promise(resolve2=>{let stdout=[],stderr=[],upgradeProcess=spawn(command,currentArgs,{cwd,env:{...env},stdio:["inherit","pipe","pipe"],shell:!1});upgradeProcess.stdout?.on("data",data=>{stdout.push(Uint8Array.from(data)),output_manager_default.debug(`[upgrade stdout] ${data.toString().trimEnd()}`)}),upgradeProcess.stderr?.on("data",data=>{stderr.push(Uint8Array.from(data)),output_manager_default.debug(`[upgrade stderr] ${data.toString().trimEnd()}`)});let settled=!1;upgradeProcess.on("error",spawnError=>{settled||(settled=!0,resolve2({code:1,stdout:"",stderr:"",spawnError}))}),upgradeProcess.on("close",code=>{settled||(settled=!0,resolve2({code:code??1,stdout:Buffer.concat(stdout).toString(),stderr:Buffer.concat(stderr).toString()}))})})};renderUpgradeProgress(targetVersion?1:2,totalSteps,"Installing\u2026");let result=await runInstall(installArgs),usedAllowedRelease=!1;if(result.code!==0&&!result.spawnError&&releaseAgePolicy==="newest"&&!shouldBypass&&bypassArgs.length>0&&isMinReleaseAgeError(packageManager,result.stdout,result.stderr)){let context=await getMinReleaseAgeContext(packageManager,cwd,global);output_manager_default.stopSpinner();let blockedMessage=`The package manager blocked this Vercel CLI release because of its minimum release-age setting. ${context}`;if(!client||client.nonInteractive||!client.stdin.isTTY)return output_manager_default.error(`${blockedMessage}
|
|
10
10
|
To install the newest release allowed by your settings:
|
|
@@ -4,6 +4,6 @@ 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{
|
|
7
|
+
import{envPullCommandLogic}from"./chunk-3HC4F32I.js";import{writeProjectSettings}from"./chunk-FHGWXXAS.js";import{parseTarget,warnDeprecatedProdFlag}from"./chunk-D4TD2KWH.js";import{stamp_default}from"./chunk-A2RZZQEP.js";import{ensureLink}from"./chunk-KCJ7RU5I.js";import{pullCommand}from"./chunk-5KE67O45.js";import{printError}from"./chunk-Q4GX2UTG.js";import{help}from"./chunk-GKALP6QD.js";import{TelemetryClient}from"./chunk-VPUYTI5E.js";import{VERCEL_DIR,VERCEL_DIR_PROJECT,humanizePath}from"./chunk-CSOIXUCL.js";import{parseArguments}from"./chunk-C4N4LKPM.js";import{emoji,output_manager_default,prependEmoji}from"./chunk-W634OFUG.js";import{getFlagsSpecification}from"./chunk-CKTLP5GX.js";import{require_source}from"./chunk-NB2WLB3J.js";import{__toESM}from"./chunk-BZENIQ7N.js";var import_chalk=__toESM(require_source(),1);import{join}from"node:path";var PullTelemetryClient=class extends TelemetryClient{trackCliArgumentProjectPath(value){value&&this.trackCliArgument({arg:"projectPath",value:this.redactedValue})}trackCliOptionEnvironment(environment){environment&&this.trackCliOption({option:"environment",value:this.redactedTargetName(environment)})}trackCliOptionGitBranch(gitBranch){gitBranch&&this.trackCliOption({option:"git-branch",value:this.redactedValue})}trackCliFlagProd(isProduction){isProduction&&this.trackCliFlag("prod")}trackCliFlagYes(yes){yes&&this.trackCliFlag("yes")}};async function pullAllEnvFiles(environment,client,link,flags,cwd){let environmentFile=`.env.${environment}.local`;return await envPullCommandLogic(client,join(".vercel",environmentFile),!!flags["--yes"],environment,link,flags["--git-branch"],cwd,"vercel-cli:pull"),0}async function main(client){let parsedArgs=null,flagsSpecification=getFlagsSpecification(pullCommand.options);try{parsedArgs=parseArguments(client.argv.slice(2),flagsSpecification)}catch(error){return printError(error),2}let telemetryClient=new PullTelemetryClient({opts:{store:client.telemetryEventStore}});if(parsedArgs.flags["--help"])return telemetryClient.trackCliFlagHelp("pull"),output_manager_default.print(help(pullCommand,{stream:client.stderr,columns:client.stderr.columns})),0;let cwd=parsedArgs.args[1]||client.cwd,autoConfirm=!!parsedArgs.flags["--yes"],isProduction=!!parsedArgs.flags["--prod"];warnDeprecatedProdFlag(client,parsedArgs.flags);let environment=parseTarget({flagName:"environment",flags:parsedArgs.flags})||"development";return telemetryClient.trackCliArgumentProjectPath(parsedArgs.args[1]),telemetryClient.trackCliFlagYes(autoConfirm),telemetryClient.trackCliFlagProd(isProduction),telemetryClient.trackCliOptionGitBranch(parsedArgs.flags["--git-branch"]),telemetryClient.trackCliOptionEnvironment(parsedArgs.flags["--environment"]),telemetryClient.trackCliOptionProject(parsedArgs.flags["--project"]),await pullCommandLogic(client,cwd,autoConfirm,environment,parsedArgs.flags,parsedArgs.flags["--project"])}async function pullCommandLogic(client,cwd,autoConfirm,environment,flags,projectNameOrId){let link=await ensureLink("pull",client,cwd,{autoConfirm,pullEnv:!1,projectName:projectNameOrId,failIfNotFound:!!projectNameOrId,skipOwnerLookup:!0});if(typeof link=="number")return link;let{project,org,repoRoot}=link,currentDirectory;repoRoot?currentDirectory=join(repoRoot,project.rootDirectory||""):currentDirectory=cwd,client.config.currentTeam=org.type==="team"?org.id:void 0;let pullResultCode=await pullAllEnvFiles(environment,client,link,flags,currentDirectory);if(pullResultCode!==0)return pullResultCode;output_manager_default.print(`
|
|
8
8
|
`),output_manager_default.log("Downloading project settings"),await writeProjectSettings(currentDirectory,project,org,typeof repoRoot=="string");let settingsStamp=stamp_default();return output_manager_default.print(`${prependEmoji(`Downloaded project settings to ${import_chalk.default.bold(humanizePath(join(currentDirectory,VERCEL_DIR,VERCEL_DIR_PROJECT)))} ${import_chalk.default.gray(settingsStamp())}`,emoji("success"))}
|
|
9
9
|
`),0}export{main,pullCommandLogic};
|
|
@@ -4,4 +4,4 @@ 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{packageName}from"./chunk-VRH7LWOC.js";import{environmentOption,formatOption,jsonOption,projectOption,sinceOption,untilOption}from"./chunk-
|
|
7
|
+
import{packageName}from"./chunk-VRH7LWOC.js";import{environmentOption,formatOption,jsonOption,projectOption,sinceOption,untilOption}from"./chunk-CKTLP5GX.js";var schemaSubcommand={name:"schema",aliases:[],description:"List available metrics or inspect a specific metric.",arguments:[{name:"metric-or-prefix",required:!1}],options:[formatOption,jsonOption],examples:[{name:"List all metrics",value:`${packageName} metrics schema`},{name:"Show metric details",value:`${packageName} metrics schema vercel.function_invocation`},{name:"Schema as JSON for agents",value:`${packageName} metrics schema vercel.request.count --json`}]},metricsCommand={name:"metrics",aliases:[],description:"Query observability metrics for your Vercel project or team.",arguments:[{name:"metric-id",required:!1}],subcommands:[{name:"query",aliases:[],description:"",default:!0,hidden:!0,arguments:[],options:[],examples:[]},schemaSubcommand],options:[{name:"aggregation",shorthand:null,deprecatedShorthand:"a",type:String,deprecated:!1,description:"Aggregation function (default: sum for counts/bytes/currency, avg for durations/memory/ratios)",argument:"FN"},{name:"group-by",shorthand:null,type:[String],deprecated:!1,description:"Dimensions to group by (repeatable)",argument:"DIM"},{name:"limit",shorthand:"n",deprecatedShorthand:"l",type:Number,deprecated:!1,description:"Max groups per time bucket (default: 10)",argument:"N"},{name:"order-by",shorthand:null,type:String,deprecated:!1,description:"Order grouped results by value or count (default: count, or value when count is unsupported)",argument:"value|count"},{name:"order",shorthand:null,type:String,deprecated:!1,description:"Order direction for grouped results: asc or desc (default: desc)",argument:"asc|desc"},{name:"query",shorthand:"q",type:[String],deprecated:!1,get description(){return process.env.FF_LEGACY_METRICS?"OData filter expression (repeatable, ANDed together)":"KQL filter expression (repeatable, ANDed together)"},argument:"TEXT"},{name:"filter",shorthand:"f",type:[String],deprecated:!0,description:"Deprecated alias for `--query`",argument:"EXPR"},{...environmentOption,description:"Limit the query to one environment, such as production or preview"},{name:"prod",shorthand:null,type:Boolean,deprecated:!0,description:"Deprecated alias for `--environment production`"},{...sinceOption,description:`${sinceOption.description} (default: 1h ago)`},untilOption,{name:"granularity",shorthand:null,deprecatedShorthand:"g",type:String,deprecated:!1,description:"Time bucket size: 1m, 5m, 15m, 1h, 4h, 1d (default: auto; raised when too fine for the time range)",argument:"SIZE"},{name:"bucket-timezone",shorthand:null,type:String,deprecated:!1,description:"IANA timezone for calendar bucket alignment only; does not shift --since/--until or output timestamps (e.g., Europe/Paris)",argument:"ZONE"},{...projectOption,shorthand:"p"},{name:"all",shorthand:null,type:Boolean,deprecated:!1,description:"Query across all projects for the team"},formatOption,jsonOption],get examples(){let canonical=!process.env.FF_LEGACY_METRICS,httpStatus=canonical?"httpStatus":"http_status",errorCode=canonical?"errorCode":"error_code",aiProvider=canonical?"aiProvider":"ai_provider",aiGatewayCostMetric=canonical?"vercel.ai_gateway.request.cost":"vercel.ai_gateway_request.cost",pageViewMetric=canonical?"vercel.analytics.page_view.count":"vercel.analytics_pageview.count",visitorId=canonical?"visitorId":"visitor_id",projectId=canonical?"projectId":"project_id",statusFilter=canonical?"httpStatus >= 500":"http_status ge 500",routeFilter=canonical?`'route:"/api"'`:`"contains(request_path, '/api')"`;return[{name:"5xx errors by error code in the last hour",value:`${packageName} metrics vercel.function_invocation.count --query "${statusFilter}" --group-by ${errorCode} --since 1h`},{name:"Function invocations by HTTP status code",value:`${packageName} metrics vercel.function_invocation.count --group-by ${httpStatus} --since 6h`},{name:"Function duration by route",value:`${packageName} metrics vercel.function_invocation.function_duration_ms --aggregation avg --group-by route --since 1h`},{name:"AI Gateway costs by provider",value:`${packageName} metrics ${aiGatewayCostMetric} --aggregation sum --group-by ${aiProvider} --since 7d`},{name:"Core Web Vitals (LCP) by route",value:`${packageName} metrics vercel.speed_insights.lcp_ms --aggregation p75 --environment production --group-by route --since 7d`},{name:"Routes with the lowest p75 LCP",value:`${packageName} metrics vercel.speed_insights.lcp_ms --aggregation p75 --environment production --group-by route --since 7d --order-by value --order asc`},{name:canonical?"Daily pageviews":"Daily pageviews with a Paris-aligned bucket",value:canonical?`${packageName} metrics ${pageViewMetric} --since 7d --granularity 1d`:`${packageName} metrics ${pageViewMetric} --since 7d --granularity 1d --bucket-timezone Europe/Paris`},{name:"Visitors time series from the top 5 countries",value:`${packageName} metrics ${pageViewMetric} --aggregation unique/${visitorId} --group-by country --since 1d --granularity 1h --limit 5`},{name:"List available metrics",value:`${packageName} metrics schema`},{name:"Function executions matching an API route",value:`${packageName} metrics vercel.function_invocation.count --query ${routeFilter} --group-by route --since 1h`},{name:"Function executions matching multiple filters",value:`${packageName} metrics vercel.function_invocation.count --query "${statusFilter}" --query ${routeFilter} --since 1h`},{name:"Show schema for a metric prefix",value:`${packageName} metrics schema vercel.request`},{name:"Team-wide function executions by project",value:`${packageName} metrics --all vercel.function_invocation.count --group-by ${projectId} --since 24h`}]}};export{schemaSubcommand,metricsCommand};
|
|
@@ -4,4 +4,4 @@ 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{collectContactInformation,getDomainPrice,getDomainStatus,purchaseDomain}from"./chunk-
|
|
7
|
+
import{collectContactInformation,getDomainPrice,getDomainStatus,purchaseDomain}from"./chunk-XXEGRTU6.js";import{stamp_default}from"./chunk-A2RZZQEP.js";import{param}from"./chunk-3G3FQYMW.js";import{require_pluralize}from"./chunk-CSOIXUCL.js";import{DomainNotAvailable,DomainNotFound,UnsupportedTLD,UserAborted}from"./chunk-T2FCF46I.js";import{eraseLines,output_manager_default}from"./chunk-W634OFUG.js";import{require_source}from"./chunk-NB2WLB3J.js";import{__toESM}from"./chunk-BZENIQ7N.js";var import_chalk=__toESM(require_source(),1),import_pluralize=__toESM(require_pluralize(),1);var isTTY=process.stdout.isTTY;async function purchaseDomainIfAvailable(client,domain,contextName){output_manager_default.spinner(`Checking status of ${import_chalk.default.bold(domain)}`);let buyDomainStamp=stamp_default(),{available}=await getDomainStatus(client,domain);if(available){if(!isTTY)return new DomainNotFound(domain);output_manager_default.debug(`Domain ${domain} is available to be purchased`);let domainPrice=await getDomainPrice(client,domain).finally(()=>{output_manager_default.stopSpinner()});if(domainPrice instanceof UnsupportedTLD)return domainPrice;if(domainPrice instanceof Error)throw domainPrice;let{purchasePrice,years}=domainPrice;if(purchasePrice===null)return output_manager_default.error(`The domain ${param(domain)} is ${import_chalk.default.underline("unavailable")}! ${buyDomainStamp()}`),new DomainNotAvailable(domain);if(output_manager_default.log(`Domain not found, but you can buy it under ${import_chalk.default.bold(contextName)}! ${buyDomainStamp()}`),!await client.input.confirm(`Buy ${import_chalk.default.underline(domain)} for ${import_chalk.default.bold(`$${purchasePrice}`)} (${(0,import_pluralize.default)("yr",years,!0)})?`,!1))return output_manager_default.print(eraseLines(1)),new UserAborted;output_manager_default.print(eraseLines(1));let contactInformation=await collectContactInformation(client),result=await purchaseDomain(client,domain,purchasePrice,years,!0,contactInformation);return result instanceof Error?result:!0}return output_manager_default.debug(`Domain ${domain} is not available to be purchased`),!1}export{purchaseDomainIfAvailable};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { createRequire as __createRequire } from 'node:module';
|
|
2
|
+
import { fileURLToPath as __fileURLToPath } from 'node:url';
|
|
3
|
+
import { dirname as __dirname_ } from 'node:path';
|
|
4
|
+
const require = __createRequire(import.meta.url);
|
|
5
|
+
const __filename = __fileURLToPath(import.meta.url);
|
|
6
|
+
const __dirname = __dirname_(__filename);
|
|
7
|
+
import{emitAlertsScopeError,resolveAlertsScope}from"./chunk-QSMWJAN7.js";import{handleValidationError,validateAllProjectMutualExclusivity}from"./chunk-AX3V7N44.js";import{getScope}from"./chunk-7DP4DHQW.js";import{buildCommandWithGlobalFlags,outputAgentError}from"./chunk-ZUI5EMXD.js";import{getProjectByNameOrId}from"./chunk-CSOIXUCL.js";import{ProjectNotFound,isAPIError}from"./chunk-T2FCF46I.js";import{AGENT_REASON}from"./chunk-CFYTFXX6.js";async function resolveRulesTeam(client,jsonOutput){let scope;try{scope=await getScope(client,{resolveLocalScope:!0})}catch(err){if(isAPIError(err)&&(err.status===403||err.status===404))return emitAlertsScopeError(client,jsonOutput,err.code||"API_ERROR",err.serverMessage||`API error (${err.status}).`,{reason:AGENT_REASON.MISSING_SCOPE,hint:"The selected team could not be loaded. Select a team you can access, or pass --scope <team-slug>.",next:[{command:buildCommandWithGlobalFlags(client.argv,"teams switch"),when:"Select a team"},{command:buildCommandWithGlobalFlags(client.argv,"whoami"),when:"Inspect the current scope"}]});throw err}let{team}=scope;return team?{teamId:team.id}:emitAlertsScopeError(client,jsonOutput,"NO_TEAM","No team context found. Run `vercel switch` to select a team, use `--scope <team>`, or link a team project.",{reason:AGENT_REASON.MISSING_SCOPE,hint:"Monitors belong to a team. Select the team before retrying.",next:[{command:buildCommandWithGlobalFlags(client.argv,"teams switch"),when:"Select a team"},{command:buildCommandWithGlobalFlags(client.argv,"whoami"),when:"Inspect the current scope"}]})}async function resolveRulesProject(client,projectNameOrId,jsonOutput,command){let teamScope=await resolveRulesTeam(client,jsonOutput);if(typeof teamScope=="number")return teamScope;try{let project=await getProjectByNameOrId(client,projectNameOrId,teamScope.teamId);return project instanceof ProjectNotFound?emitAlertsScopeError(client,jsonOutput,"PROJECT_NOT_FOUND",`Project "${projectNameOrId}" was not found in the selected team.`,{reason:AGENT_REASON.NOT_FOUND,next:[{command:buildCommandWithGlobalFlags(client.argv,`${command} --project <name_or_id>`),when:"Retry with a valid project"}]}):{...teamScope,projectId:project.id,projectName:project.name}}catch(error){if(!isAPIError(error))throw error;return emitAlertsScopeError(client,jsonOutput,error.code||"API_ERROR",error.serverMessage||`API error (${error.status}).`,{reason:error.status===401?"not_authorized":error.status===403?"forbidden":AGENT_REASON.API_ERROR})}}async function parseRulesFlagsAndScope(client,flags,jsonOutput,command="monitors ls"){let mutual=validateAllProjectMutualExclusivity(flags["--all"],flags["--project"]);if(!mutual.valid)return outputAgentError(client,{status:"error",reason:AGENT_REASON.INVALID_ARGUMENTS,message:mutual.message,next:[{command:buildCommandWithGlobalFlags(client.argv,"monitors --help"),when:"Use either `--project` or `--all`, not both"}]},2),handleValidationError(mutual,jsonOutput,client);if(flags["--all"])return resolveRulesTeam(client,jsonOutput);if(flags["--project"])return resolveRulesProject(client,flags["--project"],jsonOutput,command);let linkedScope=await resolveAlertsScope(client,{jsonOutput,command});if(typeof linkedScope=="number")return linkedScope;let teamScope=await resolveRulesTeam(client,jsonOutput);return typeof teamScope=="number"?teamScope:linkedScope.teamId===teamScope.teamId?linkedScope:teamScope}export{resolveRulesTeam,resolveRulesProject,parseRulesFlagsAndScope};
|
|
@@ -4,4 +4,4 @@ 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{packageName}from"./chunk-VRH7LWOC.js";import{formatOption,gitBranchOption,jsonOption,limitOption,nextCursorOption,projectOption,yesOption}from"./chunk-
|
|
7
|
+
import{packageName}from"./chunk-VRH7LWOC.js";import{formatOption,gitBranchOption,jsonOption,limitOption,nextCursorOption,projectOption,yesOption}from"./chunk-CKTLP5GX.js";var commentsProjectOption={...projectOption,shorthand:"p",description:"Project ID or name (default: linked project)"},messageContentOption={name:"message",shorthand:null,deprecatedShorthand:"m",type:String,argument:"TEXT",deprecated:!1,description:"Markdown message content"},fileOption={name:"file",shorthand:null,type:String,argument:"PATH",deprecated:!1,description:"Read Markdown content from a file; use `-` for stdin"},attachOption={name:"attach",shorthand:null,type:[String],argument:"URL",deprecated:!1,description:"Attach a file by https URL (repeatable, max 10)"},listSubcommand={name:"list",aliases:["ls"],default:!0,description:"List comments for a project",arguments:[],options:[commentsProjectOption,{...gitBranchOption,type:[String],description:"Filter by Git branch (repeatable) (default: the current branch when inferable)"},{name:"branch",shorthand:null,type:[String],argument:"BRANCH",deprecated:!0,description:"Deprecated alias for `--git-branch`"},{name:"all-branches",shorthand:null,type:Boolean,deprecated:!1,description:"Show comments from every branch"},{name:"status",shorthand:null,type:String,argument:"STATUS",deprecated:!1,description:"unresolved, resolved, or all (default: unresolved)"},{name:"page-path",shorthand:null,type:[String],argument:"PATH",deprecated:!1,description:"Filter by recorded page path or glob (repeatable). Note: rewrites may record a different path than the browser URL"},{name:"page",shorthand:null,type:[String],argument:"PATH",deprecated:!0,description:"Filter by recorded page path or glob"},{name:"author",shorthand:null,type:[String],argument:"USER",deprecated:!1,description:"Filter by author user ID, or `me` (repeatable)"},{name:"content",shorthand:null,type:[String],argument:"CONTENT",deprecated:!1,description:"Filter by CMS content ID (repeatable)"},{name:"content-id",shorthand:null,type:[String],argument:"ID",deprecated:!0,description:"Deprecated alias for `--content`"},{name:"query",shorthand:"q",type:String,argument:"TEXT",deprecated:!1,description:"Search comment content"},{name:"search",shorthand:null,type:String,argument:"TEXT",deprecated:!0,description:"Deprecated alias for `--query`"},limitOption,nextCursorOption,formatOption,jsonOption],examples:[{name:"List unresolved comments for the linked project",value:`${packageName} comments`},{name:"List comments on every branch",value:`${packageName} comments --all-branches --status all`},{name:"List comments as JSON",value:`${packageName} comments --json | jq '.threads[].id'`}]},inspectSubcommand={name:"inspect",aliases:["get"],description:"Show a comment thread with its full conversation",arguments:[{name:"thread",required:!1}],options:[commentsProjectOption,{name:"context",shorthand:null,type:Boolean,deprecated:!1,description:"Include framework and device context"},formatOption,jsonOption],examples:[{name:"Inspect a comment thread",value:`${packageName} comments inspect icZ9BnPPINuK`},{name:"Inspect a comment from its URL",value:`${packageName} comments inspect https://vercel.com/team/project/c/icZ9BnPPINuK`},{name:"Pick a comment interactively",value:`${packageName} comments inspect`},{name:"Inspect a thread whose ID starts with a dash",value:`${packageName} comments inspect -- -ULOL`}]},openSubcommand={name:"open",aliases:[],description:"Open a comment thread on vercel.com",arguments:[{name:"thread",required:!0}],options:[commentsProjectOption],examples:[{name:"Open a comment in the browser",value:`${packageName} comments open icZ9BnPPINuK`}]},replySubcommand={name:"reply",aliases:[],description:"Reply to a comment thread",arguments:[{name:"thread",required:!0}],options:[commentsProjectOption,messageContentOption,fileOption,attachOption,formatOption,jsonOption],examples:[{name:"Reply to a comment",value:`${packageName} comments reply icZ9BnPPINuK --message 'Fixed in **main**.'`},{name:"Reply from stdin",value:`git log -1 --format=%s | ${packageName} comments reply icZ9BnPPINuK`}]},resolveSubcommand={name:"resolve",aliases:[],description:"Resolve comment threads, optionally with a closing reply",arguments:[{name:"thread",required:!0,multiple:!0}],options:[commentsProjectOption,messageContentOption,yesOption,formatOption,jsonOption],examples:[{name:"Resolve a comment",value:`${packageName} comments resolve icZ9BnPPINuK`},{name:"Reply and resolve in one step",value:`${packageName} comments resolve icZ9BnPPINuK --message 'Fixed in the latest deployment'`}]},reopenSubcommand={name:"reopen",aliases:[],description:"Reopen resolved comment threads",arguments:[{name:"thread",required:!0,multiple:!0}],options:[commentsProjectOption,yesOption,formatOption,jsonOption],examples:[{name:"Reopen a comment",value:`${packageName} comments reopen icZ9BnPPINuK`}]},editSubcommand={name:"update",aliases:["edit"],description:"Update a comment message while preserving its attachments",arguments:[{name:"thread",required:!0},{name:"message-id",required:!0}],options:[commentsProjectOption,messageContentOption,fileOption,formatOption,jsonOption],examples:[{name:"Update a message",value:`${packageName} comments update icZ9BnPPINuK VvkhYF6dTqbpm7K --message 'Updated wording'`}]},deleteSubcommand={name:"delete",aliases:["rm","del"],description:"Delete a comment message",arguments:[{name:"thread",required:!0},{name:"message-id",required:!0}],options:[commentsProjectOption,yesOption,formatOption,jsonOption],examples:[{name:"Delete a message",value:`${packageName} comments delete icZ9BnPPINuK VvkhYF6dTqbpm7K`}]},commentsCommand={name:"comments",aliases:[],description:"Review and act on Vercel Toolbar comments from the command line",arguments:[],subcommands:[listSubcommand,inspectSubcommand,openSubcommand,replySubcommand,resolveSubcommand,reopenSubcommand,editSubcommand,deleteSubcommand],options:[],examples:[{name:"Review unresolved comments for the linked project",value:`${packageName} comments`},{name:"Inspect a comment and reply",value:`${packageName} comments inspect icZ9BnPPINuK`},{name:"Reply and resolve in one step",value:`${packageName} comments resolve icZ9BnPPINuK --message 'Fixed!'`}]};export{listSubcommand,inspectSubcommand,openSubcommand,replySubcommand,resolveSubcommand,reopenSubcommand,editSubcommand,deleteSubcommand,commentsCommand};
|
|
@@ -4,4 +4,4 @@ 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{external_exports}from"./chunk-
|
|
7
|
+
import{external_exports}from"./chunk-2AMO2VMV.js";import{ua_default}from"./chunk-ITQPDXXA.js";import{fetch}from"./chunk-MY4MONOH.js";var STATUS_PAGE_URL="https://www.vercel-status.com",STATUS_PAGE_HOST=new URL(STATUS_PAGE_URL).host,SUMMARY_URL=`${STATUS_PAGE_URL}/api/v2/summary.json`,INCIDENTS_URL=`${STATUS_PAGE_URL}/api/v2/incidents.json`,REQUEST_TIMEOUT_MS=1e4,RECENT_DAYS=7,ComponentRefSchema=external_exports.object({id:external_exports.string(),name:external_exports.string(),group_id:external_exports.string().nullish()}),ComponentSchema=ComponentRefSchema.extend({status:external_exports.string(),group:external_exports.boolean().optional().default(!1)}),IncidentSchema=external_exports.object({id:external_exports.string(),name:external_exports.string(),status:external_exports.string(),impact:external_exports.string(),created_at:external_exports.string(),started_at:external_exports.string().nullish(),resolved_at:external_exports.string().nullish(),components:external_exports.array(ComponentRefSchema).optional().default([]),incident_updates:external_exports.array(external_exports.object({id:external_exports.string(),status:external_exports.string(),body:external_exports.string(),created_at:external_exports.string()})).optional().default([])}),MaintenanceSchema=external_exports.object({id:external_exports.string(),name:external_exports.string(),status:external_exports.string(),impact:external_exports.string(),scheduled_for:external_exports.string().nullish(),scheduled_until:external_exports.string().nullish(),components:external_exports.array(ComponentRefSchema).optional().default([])}),SummarySchema=external_exports.object({page:external_exports.object({name:external_exports.string(),url:external_exports.string(),updated_at:external_exports.string()}),status:external_exports.object({indicator:external_exports.string(),description:external_exports.string()}),components:external_exports.array(ComponentSchema),incidents:external_exports.array(IncidentSchema),scheduled_maintenances:external_exports.array(MaintenanceSchema)}),IncidentsSchema=external_exports.object({incidents:external_exports.array(IncidentSchema)});function incidentUrl(id){return`${STATUS_PAGE_URL}/incidents/${encodeURIComponent(id)}`}function toRef(c,groups){return{id:c.id,name:c.name,group:c.group_id&&groups.get(c.group_id)||null}}function toIncident(i,groups){return{id:i.id,name:i.name,status:i.status,impact:i.impact,startedAt:i.started_at??i.created_at,resolvedAt:i.resolved_at??null,url:incidentUrl(i.id),components:i.components.map(c=>toRef(c,groups)),updates:i.incident_updates.map(u=>({id:u.id,status:u.status,body:u.body,createdAt:u.created_at}))}}function toMaintenance(m,groups){return{id:m.id,name:m.name,status:m.status,impact:m.impact,scheduledFor:m.scheduled_for??null,scheduledUntil:m.scheduled_until??null,url:incidentUrl(m.id),components:m.components.map(c=>toRef(c,groups))}}var StatusPageError=class extends Error{constructor(kind,detail={}){super(`Status page request failed: ${kind}`);this.kind=kind;this.detail=detail;this.name="StatusPageError"}};function networkError(err){let timedOut=err instanceof Error&&(err.name==="TimeoutError"||err.name==="AbortError");return new StatusPageError("network",{timedOut})}async function getJson(url,schema){let response,text;try{response=await fetch(url,{headers:{accept:"application/json","user-agent":ua_default},signal:AbortSignal.timeout(REQUEST_TIMEOUT_MS)}),response.ok&&(text=await response.text())}catch(err){throw networkError(err)}if(response.status===429)throw new StatusPageError("rate_limited",{httpStatus:429});if(!response.ok||text===void 0)throw new StatusPageError("http",{httpStatus:response.status});let body;try{body=JSON.parse(text)}catch{throw new StatusPageError("invalid")}let result=schema.safeParse(body);if(!result.success)throw new StatusPageError("invalid");return result.data}async function getStatusReport(now=Date.now()){let[summary,history]=await Promise.all([getJson(SUMMARY_URL,SummarySchema),getJson(INCIDENTS_URL,IncidentsSchema)]),groups=new Map(summary.components.filter(c=>c.group).map(c=>[c.id,c.name])),since=new Date(now-RECENT_DAYS*24*60*60*1e3),incidents=new Map;for(let incident of history.incidents.map(i=>toIncident(i,groups))){let resolvedAt=incident.resolvedAt&&new Date(incident.resolvedAt);(!resolvedAt||resolvedAt>=since)&&incidents.set(incident.id,incident)}for(let incident of summary.incidents.map(i=>toIncident(i,groups)))incidents.set(incident.id,incident);return{page:{name:summary.page.name,url:summary.page.url,updatedAt:summary.page.updated_at},status:summary.status,components:summary.components.filter(c=>!c.group).map(c=>({...toRef(c,groups),status:c.status})),incidents:[...incidents.values()].sort((a,b)=>Date.parse(b.startedAt)-Date.parse(a.startedAt)),scheduledMaintenances:summary.scheduled_maintenances.map(m=>toMaintenance(m,groups)),since:since.toISOString()}}export{STATUS_PAGE_URL,STATUS_PAGE_HOST,RECENT_DAYS,StatusPageError,getStatusReport};
|
|
@@ -4,4 +4,4 @@ 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{teamCache}from"./chunk-
|
|
7
|
+
import{teamCache}from"./chunk-2VBFQZ72.js";import{APIError,InvalidToken}from"./chunk-T2FCF46I.js";import{URLSearchParams}from"url";async function getTeams(client,opts={}){let{apiVersion=1}=opts;if(apiVersion===1){if(client.teams)return client.teams;if(client.teamsPromise)return client.teamsPromise;client.teamsPromise=fetchTeams(client,opts).then(result=>{let teams=Array.isArray(result)?result:result.teams;return client.teams=teams,teams});try{return await client.teamsPromise}finally{client.teamsPromise=void 0}}return fetchTeams(client,opts)}async function fetchTeams(client,opts={}){let{apiVersion=1}=opts,query="";if(opts.apiVersion===2){let params=new URLSearchParams({limit:String(typeof opts.limit=="number"?opts.limit:20)});opts.next&¶ms.set("next",String(opts.next)),query=`?${params}`}try{let body=await client.fetch(`/v${apiVersion}/teams${query}`,{useCurrentTeam:!1});if(apiVersion===1){let teams=body.teams||[];for(let team of teams)teamCache.set(team.id,team);return teams}return body}catch(error){throw error instanceof APIError&&error.status===403?new InvalidToken(client.authConfig.tokenSource):error}}export{getTeams};
|
|
@@ -4,4 +4,4 @@ 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{getScope}from"./chunk-
|
|
7
|
+
import{getScope}from"./chunk-7DP4DHQW.js";import{DeploymentNotFound,DeploymentPermissionDenied,InvalidDeploymentId,isAPIError}from"./chunk-T2FCF46I.js";async function getAliases(client,deploymentId,next,limit=20){let aliasUrl=`/v3/now/aliases?limit=${limit}`;next&&(aliasUrl+=`&until=${next}`);let to=deploymentId?`/now/deployments/${deploymentId}/aliases`:aliasUrl;try{return await client.fetch(to)}catch(err){if(isAPIError(err)){let contextName=await getScope(client).then(scope=>scope.contextName);if(err.status===404)throw new DeploymentNotFound({id:deploymentId,context:contextName});if(err.status===403&&deploymentId)throw new DeploymentPermissionDenied(deploymentId,contextName);if(err.status===400&&err.message.includes("`id`")&&deploymentId)throw new InvalidDeploymentId(deploymentId)}throw err}}export{getAliases};
|
|
@@ -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{VERCEL_CONFIG_EXTENSIONS,VERCEL_DIR}from"./chunk-
|
|
7
|
+
import{VERCEL_CONFIG_EXTENSIONS,VERCEL_DIR}from"./chunk-CSOIXUCL.js";import{ConflictingConfigFiles,DeprecatedNowJson}from"./chunk-T2FCF46I.js";import{output_manager_default}from"./chunk-W634OFUG.js";import{require_build_utils}from"./chunk-5MDNVAE6.js";import{__commonJS,__require,__toESM}from"./chunk-BZENIQ7N.js";var require_main=__commonJS({"../../node_modules/.pnpm/dotenv@4.0.0/node_modules/dotenv/lib/main.js"(exports,module){"use strict";var fs=__require("fs");function parse(src){var obj={};return src.toString().split(`
|
|
8
8
|
`).forEach(function(line){var keyValueArr=line.match(/^\s*([\w\.\-]+)\s*=\s*(.*)?\s*$/);if(keyValueArr!=null){var key=keyValueArr[1],value=keyValueArr[2]?keyValueArr[2]:"",len=value?value.length:0;len>0&&value.charAt(0)==='"'&&value.charAt(len-1)==='"'&&(value=value.replace(/\\n/gm,`
|
|
9
9
|
`)),value=value.replace(/(^['"]|['"]$)/g,"").trim(),obj[key]=value}}),obj}function config(options){var path=".env",encoding="utf8";options&&(options.path&&(path=options.path),options.encoding&&(encoding=options.encoding));try{var parsedObj=parse(fs.readFileSync(path,{encoding}));return Object.keys(parsedObj).forEach(function(key){process.env[key]=process.env[key]||parsedObj[key]}),{parsed:parsedObj}}catch(e){return{error:e}}}module.exports.config=config;module.exports.load=config;module.exports.parse=parse}});var import_dotenv=__toESM(require_main(),1);import{mkdir,readFile,writeFile,unlink,access}from"fs/promises";import{join,basename}from"path";import{fork}from"child_process";async function loadEsbuild(){let nativeLoader=Reflect.get(globalThis,Symbol.for("vercel.cli.loadEsbuild"));return typeof nativeLoader=="function"?nativeLoader():import("esbuild")}var import_build_utils=__toESM(require_build_utils(),1);function toRouteFormat(item){if("src"in item)return item;let{source,destination,headers,statusCode,permanent,...rest}=item,route={src:source,...rest};return destination&&(route.dest=destination),headers&&(route.headers=Object.fromEntries(headers.map(h=>[h.key,h.value]))),statusCode!==void 0?route.status=statusCode:permanent!==void 0&&(route.status=permanent?308:307),route}function normalizeConfig(config){let normalized={...config},{rewrites,redirects,headers}=normalized,allRoutes=normalized.routes||[],hasRoutes=allRoutes.length>0,hasRewrites=(rewrites?.length??0)>0,hasRedirects=(redirects?.length??0)>0,hasHeaders=(headers?.length??0)>0;function hasRouteFormat(items){return items?.some(item=>"src"in item)??!1}if(hasRoutes&&(hasRewrites||hasRedirects||hasHeaders))return normalized;let shouldConvertRewrites=hasRewrites&&hasRouteFormat(rewrites),shouldConvertRedirects=hasRedirects&&hasRouteFormat(redirects),shouldConvertHeaders=hasHeaders&&hasRouteFormat(headers);if((shouldConvertRewrites||shouldConvertRedirects||shouldConvertHeaders)&&(hasRewrites&&!shouldConvertRewrites||hasRedirects&&!shouldConvertRedirects||hasHeaders&&!shouldConvertHeaders))throw new import_build_utils.NowBuildError({code:"INVALID_VERCEL_CONFIG",message:"Transforms (e.g., requestHeaders) require the `routes` format, which cannot be used alongside `rewrites`, `redirects`, or `headers`. Move everything into the `routes` array instead.",link:"https://vercel.com/docs/projects/project-configuration#routes"});return rewrites&&shouldConvertRewrites&&(allRoutes=[...allRoutes,...rewrites.map(toRouteFormat)],delete normalized.rewrites),redirects&&shouldConvertRedirects&&(allRoutes=[...allRoutes,...redirects.map(toRouteFormat)],delete normalized.redirects),headers&&shouldConvertHeaders&&(allRoutes=[...allRoutes,...headers.map(toRouteFormat)],delete normalized.headers),allRoutes.length>0&&(normalized.routes=allRoutes.map(toRouteFormat)),normalized}async function fileExists(filePath){try{return await access(filePath),!0}catch{return!1}}async function findAllVercelConfigFiles(workPath){let foundFiles=[];for(let ext of VERCEL_CONFIG_EXTENSIONS){let configPath=join(workPath,`vercel.${ext}`);await fileExists(configPath)&&foundFiles.push(configPath)}return foundFiles}async function findSourceVercelConfigFile(workPath){for(let ext of VERCEL_CONFIG_EXTENSIONS){let configPath=join(workPath,`vercel.${ext}`);if(await fileExists(configPath))return basename(configPath)}let tomlPath=join(workPath,"vercel.toml");return await fileExists(tomlPath)?"vercel.toml":null}async function findVercelConfigFile(workPath){let foundFiles=await findAllVercelConfigFiles(workPath);if(foundFiles.length>1)throw new ConflictingConfigFiles(foundFiles,"Multiple vercel config files found. Please use only one configuration file.","https://vercel.com/docs/projects/project-configuration");return foundFiles[0]||null}function parseConfigLoaderError(stderr){if(!stderr.trim())return"";let moduleNotFoundMatch=stderr.match(/Error \[ERR_MODULE_NOT_FOUND\]: Cannot find package '([^']+)'/);if(moduleNotFoundMatch)return`Cannot find package '${moduleNotFoundMatch[1]}'. Make sure it's installed in your project dependencies.`;let syntaxErrorMatch=stderr.match(/SyntaxError: (.+?)(?:\n|$)/);if(syntaxErrorMatch)return`Syntax error: ${syntaxErrorMatch[1]}`;let errorMatch=stderr.match(/^(?:Error|TypeError|ReferenceError): (.+?)(?:\n|$)/m);return errorMatch?errorMatch[1]:stderr.trim()}async function compileVercelConfig(workPath){let vercelJsonPath=join(workPath,"vercel.json"),nowJsonPath=join(workPath,"now.json"),vercelTomlPath=join(workPath,"vercel.toml"),hasVercelJson=await fileExists(vercelJsonPath),hasNowJson=await fileExists(nowJsonPath),hasVercelToml=await fileExists(vercelTomlPath),vercelConfigPath=await findVercelConfigFile(workPath),vercelDir=join(workPath,VERCEL_DIR),compiledConfigPath=join(vercelDir,"vercel.json");if(hasNowJson)throw new DeprecatedNowJson(nowJsonPath);let foundConfigs=[];if(hasVercelJson&&foundConfigs.push(vercelJsonPath),hasVercelToml&&foundConfigs.push(vercelTomlPath),vercelConfigPath&&foundConfigs.push(vercelConfigPath),foundConfigs.length>1)throw new ConflictingConfigFiles(foundConfigs,`Multiple config files found: ${foundConfigs.map(f=>basename(f)).join(", ")}. Please use only one configuration method.`,"https://vercel.com/docs/projects/project-configuration");if(!vercelConfigPath&&!hasVercelToml)return hasVercelJson?{configPath:vercelJsonPath,wasCompiled:!1}:await fileExists(compiledConfigPath)?{configPath:compiledConfigPath,wasCompiled:!0,sourceFile:await findSourceVercelConfigFile(workPath)??void 0}:{configPath:null,wasCompiled:!1};if(hasVercelToml)try{let{parse:tomlParse}=await import("./dist-RXYNZPEA.js"),tomlContent=await readFile(vercelTomlPath,"utf8"),config=tomlParse(tomlContent),normalizedConfig=normalizeConfig(config);return await mkdir(vercelDir,{recursive:!0}),await writeFile(compiledConfigPath,JSON.stringify(normalizedConfig,null,2),"utf-8"),output_manager_default.debug(`Compiled ${vercelTomlPath} -> ${compiledConfigPath}`),{configPath:compiledConfigPath,wasCompiled:!0,sourceFile:"vercel.toml"}}catch(error){throw new import_build_utils.NowBuildError({code:error.code??"vercel_toml_parse_failed",message:`Failed to parse vercel.toml: ${error.message}`,link:error.link??"https://vercel.com/docs/projects/project-configuration"})}let sourceConfigPath=vercelConfigPath;(0,import_dotenv.config)({path:join(workPath,".env")}),(0,import_dotenv.config)({path:join(workPath,".env.local")});let tempOutPath=join(vercelDir,"vercel-temp.mjs"),loaderPath=join(vercelDir,"vercel-loader.mjs");try{let{build}=await loadEsbuild();await mkdir(vercelDir,{recursive:!0}),await build({entryPoints:[sourceConfigPath],bundle:!0,platform:"node",format:"esm",outfile:tempOutPath,packages:"external",target:"node20",sourcemap:"inline"}),await writeFile(loaderPath,`
|
|
10
10
|
import { pathToFileURL } from 'url';
|
|
@@ -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{humanReadableColumnLabel}from"./chunk-GHAY4PSD.js";import{FETCH_TIMEOUT_MS,OpenApiCache,SSO_API_URL,assertAllowedSpecUrl,readSpecResponse}from"./chunk-QBOY2CXL.js";import{table}from"./chunk-375JVQYK.js";import{apiCommand,listSubcommand}from"./chunk-H34SGIVS.js";import{printError}from"./chunk-BWS3ZOHJ.js";import{help}from"./chunk-33U57CNE.js";import{TelemetryClient}from"./chunk-NAU6URTI.js";import{parseArguments}from"./chunk-CGTD4QFC.js";import{validateJsonOutput}from"./chunk-GJCVOEC2.js";import{require_ms}from"./chunk-MXTC4ZAQ.js";import{packageName}from"./chunk-VRH7LWOC.js";import{output_manager_default}from"./chunk-W634OFUG.js";import{getFlagsSpecification}from"./chunk-YPPDRKVC.js";import{require_source}from"./chunk-NB2WLB3J.js";import{__toESM}from"./chunk-BZENIQ7N.js";import{createHash}from"crypto";var MAX_REDIRECTS=3;async function fetchSpecUrl(client,specUrl){let specOrigin=assertAllowedSpecUrl(specUrl).origin,probe=await fetchWithTimeout(specUrl,{readSpec:!0});if(probe.response.ok)return probe.spec??null;let nonce=getSetCookieValue(probe.response,"_vercel_sso_nonce");if(!nonce)throw output_manager_default.debug(`OpenAPI spec URL returned ${probe.response.status} without a Vercel SSO nonce`),new Error(formatHttpError(specUrl,probe.response));let token=client.authConfig.token;if(!token)return output_manager_default.debug("OpenAPI spec URL requires Vercel authentication"),null;let hashedNonce=createHash("sha256").update(nonce).digest("hex"),ssoUrl=`${SSO_API_URL}?url=${encodeURIComponent(specUrl)}&nonce=${hashedNonce}`,sso=await fetchWithTimeout(ssoUrl,{cookie:`authorization=${encodeURIComponent(`Bearer ${token}`)}; isLoggedIn=1`}),location=sso.response.headers.get("location");if(!location||!location.includes("_vercel_jwt="))throw output_manager_default.debug("OpenAPI spec URL: user has no access"),new Error(formatHttpError(specUrl,sso.response));let cookies=new Map([["_vercel_sso_nonce",nonce]]),url=location;for(let i=0;i<=MAX_REDIRECTS;i++){if(!isSameOriginUrl(url,specOrigin))return output_manager_default.debug("OpenAPI spec URL: cross-origin redirect rejected"),null;let{response,spec}=await fetchWithTimeout(url,{cookie:Array.from(cookies,([name,value])=>`${name}=${value}`).join("; "),readSpec:!0});if(response.ok)return spec??null;let next=response.headers.get("location");if(response.status>=300&&response.status<400&&next){let setJwt=getSetCookieValue(response,"_vercel_jwt");setJwt&&cookies.set("_vercel_jwt",setJwt);let nextUrl=new URL(next,url).href;if(!isSameOriginUrl(nextUrl,specOrigin))return output_manager_default.debug("OpenAPI spec URL: cross-origin redirect rejected"),null;url=nextUrl;continue}throw output_manager_default.debug(`OpenAPI spec URL: unexpected response ${response.status}`),new Error(formatHttpError(url,response))}return output_manager_default.debug("OpenAPI spec URL: too many redirects"),null}function createOpenApiCache(client,specUrl){return new OpenApiCache(specUrl?{specUrl,fetchSpecUrl:url=>fetchSpecUrl(client,url)}:void 0)}async function fetchWithTimeout(url,options){let controller=new AbortController,timeoutId=setTimeout(()=>controller.abort(),1e4);try{let response=await fetch(url,{redirect:"manual",signal:controller.signal,headers:options?.cookie?{cookie:options.cookie}:void 0}),spec=options?.readSpec&&response.ok?await readSpecResponse(response,formatDiagnosticUrl(url)):void 0;return{response,spec}}finally{clearTimeout(timeoutId)}}function isSameOriginUrl(url,origin){try{return new URL(url).origin===origin}catch{return!1}}function formatHttpError(url,response){let statusText=response.statusText?` ${response.statusText}`:"";return`Could not load OpenAPI spec from ${formatDiagnosticUrl(url)}: HTTP ${response.status}${statusText}.`}function formatDiagnosticUrl(url){try{let parsed=new URL(url);parsed.hash="";for(let key of parsed.searchParams.keys())parsed.searchParams.set(key,"[redacted]");return parsed.href}catch{return url}}function getSetCookieValue(response,name){let header=response.headers.get("set-cookie");if(!header)return null;let match=header.match(new RegExp(`${name}=([^;,\\s]+)`));return match?match[1]:null}function foldNamingStyle(input){return input.trim().replace(/([a-z\d])([A-Z])/g,"$1 $2").replace(/([A-Z])([A-Z][a-z])/g,"$1 $2").replace(/[-_\s]+/g," ").trim().toLowerCase().replace(/\s+/g,"")}function operationIdToKebabCase(operationId){let s=operationId.trim();return s?s.replace(/([a-z\d])([A-Z])/g,"$1-$2").replace(/([A-Z]+)([A-Z][a-z])/g,"$1-$2").replace(/[-_\s]+/g,"-").replace(/-+/g,"-").replace(/^-|-$/g,"").toLowerCase():"unnamed"}function inferCliSubcommandAliases(ep){let upper=ep.method.toUpperCase(),hasPathParams=ep.parameters.some(p=>p.in==="path");switch(upper){case"GET":return hasPathParams?["inspect","get"]:["ls","list"];case"POST":return["add","create"];case"DELETE":return["rm","remove"];case"PUT":case"PATCH":return["update"];default:return[]}}var import_ms=__toESM(require_ms(),1),import_chalk=__toESM(require_source(),1);function getByPath(obj,path){let parts=path.split(".").filter(Boolean),cur=obj;for(let p of parts){if(cur===null||typeof cur!="object")return;cur=cur[p]}return cur}var TIMESTAMP_FIELD_PATTERN=/(?:^|\.)(created|updated|deleted|expired|blocked|completed|started|finished|modified|verified|published|cancelled|revoked|invited|accepted|accessed|deployed)(?:At|_at|On|_on)?$/i,MIN_TIMESTAMP_MS=1e12,MAX_TIMESTAMP_MS=41024448e5;function isTimestampValue(value,columnPath){return typeof value!="number"||!Number.isFinite(value)||value<MIN_TIMESTAMP_MS||value>MAX_TIMESTAMP_MS?!1:TIMESTAMP_FIELD_PATTERN.test(columnPath)}function formatRelativeTime(timestamp){let diff=Date.now()-timestamp;return diff<0?"just now":import_chalk.default.gray((0,import_ms.default)(diff))}function stringifyCell(value,columnPath){return value==null?import_chalk.default.gray("--"):columnPath&&isTimestampValue(value,columnPath)?formatRelativeTime(value):typeof value=="object"?JSON.stringify(value):String(value)}function styleColumnKey(plainLabel){return import_chalk.default.gray(plainLabel)}function columnsForRow(r,display){return r.limited===!0&&display.columnsWhenLimited?.length?display.columnsWhenLimited:display.columnsDefault}function formatAsCard(r,display){let columns=columnsForRow(r,display);if(!columns.length)return null;let rows=columns.map(colPath=>[styleColumnKey(humanReadableColumnLabel(colPath)),stringifyCell(getByPath(r,colPath),colPath)]);return table(rows,{align:["l","l"],hsep:2})}function formatAsDataTable(items,display){if(items.length===0)return"(empty)";let first=items[0];if(first===null||typeof first!="object"||Array.isArray(first)){let headers2=[styleColumnKey(humanReadableColumnLabel("#")),styleColumnKey(humanReadableColumnLabel("value"))],rows=items.map((v,i)=>[String(i),stringifyCell(v,"value")]);return table([headers2,...rows])}let columns=columnsForRow(first,display);if(!columns.length)return null;let headers=columns.map(p=>styleColumnKey(humanReadableColumnLabel(p))),dataRows=items.map(item=>{let row=item!==null&&typeof item=="object"&&!Array.isArray(item)?item:{};return columns.map(colPath=>stringifyCell(getByPath(row,colPath),colPath))});return table([headers,...dataRows])}function resolveEndpointByTagAndOperationId(endpoints,tag,operationHint){let tagLower=tag.toLowerCase(),tagMatches=endpoints.filter(ep=>ep.tags.some(t=>t.toLowerCase()===tagLower));if(tagMatches.length===0)return{ok:!1,reason:"no_tag",tag,tagMatches:[],operationHint};let withOpId=tagMatches.filter(ep=>ep.operationId.length>0);if(withOpId.length===0)return{ok:!1,reason:"no_operation",tag,tagMatches,operationHint};let hint=operationHint.trim(),hintLower=hint.toLowerCase(),exact=withOpId.filter(ep=>ep.operationId===hint);if(exact.length===1)return{ok:!0,endpoint:exact[0]};if(exact.length>1)return{ok:!1,reason:"ambiguous_operation",tag,tagMatches:exact,operationHint:hint};let exactCi=withOpId.filter(ep=>ep.operationId.toLowerCase()===hintLower);return exactCi.length===1?{ok:!0,endpoint:exactCi[0]}:exactCi.length>1?{ok:!1,reason:"ambiguous_operation",tag,tagMatches:exactCi,operationHint:hint}:{ok:!1,reason:"no_operation",tag,tagMatches,operationHint:hint}}var import_chalk4=__toESM(require_source(),1);var ApiTelemetryClient=class extends TelemetryClient{trackCliArgumentEndpoint(endpoint){if(endpoint){let normalized=this.normalizeEndpoint(endpoint);this.trackCliArgument({arg:"endpoint",value:normalized})}}trackCliArgumentOperationId(operationId){operationId&&this.trackCliArgument({arg:"operationId",value:operationId})}trackCliOptionMethod(method){if(method){let validMethods=["GET","POST","PUT","DELETE","PATCH","HEAD"],upperMethod=method.toUpperCase(),value=validMethods.includes(upperMethod)?upperMethod:this.redactedValue;this.trackCliOption({option:"method",value})}}trackCliOptionField(fields){fields&&fields.length>0&&this.trackCliOption({option:"field",value:this.redactedArgumentsLength(fields)})}trackCliOptionRawField(fields){fields&&fields.length>0&&this.trackCliOption({option:"raw-field",value:this.redactedArgumentsLength(fields)})}trackCliOptionHeader(headers){headers&&headers.length>0&&this.trackCliOption({option:"header",value:this.redactedArgumentsLength(headers)})}trackCliOptionInput(input){if(input){let value=input==="-"?"stdin":"file";this.trackCliOption({option:"input",value})}}trackCliOptionSpecUrl(specUrl){specUrl&&this.trackCliOption({option:"spec-url",value:this.redactedValue})}trackCliFlagPaginate(value){value&&this.trackCliFlag("paginate")}trackCliFlagInclude(value){value&&this.trackCliFlag("include")}trackCliFlagSilent(value){value&&this.trackCliFlag("silent")}trackCliFlagVerbose(value){value&&this.trackCliFlag("verbose")}trackCliFlagRaw(value){value&&this.trackCliFlag("raw")}trackCliFlagRefresh(value){value&&this.trackCliFlag("refresh")}trackCliOptionGenerate(format){if(format){let value=["curl"].includes(format)?format:this.redactedValue;this.trackCliOption({option:"generate",value})}}trackCliFlagDangerouslySkipPermissions(value){value&&this.trackCliFlag("dangerously-skip-permissions")}trackCliSubcommandList(){this.trackCliSubcommand({subcommand:"list",value:"list"})}trackCliOptionFormat(format){if(format){let value=["table","json"].includes(format)?format:this.redactedValue;this.trackCliOption({option:"format",value})}}trackCliFlagJson(json){json&&this.trackCliFlag("json")}normalizeEndpoint(endpoint){return endpoint.replace(/\/dpl_[a-zA-Z0-9]+/g,"/:deploymentId").replace(/\/prj_[a-zA-Z0-9]+/g,"/:projectId").replace(/\/team_[a-zA-Z0-9]+/g,"/:teamId").replace(/\/[a-f0-9]{24}/g,"/:id").replace(/\/[a-f0-9-]{36}/g,"/:uuid")}};import{readFile}from"fs/promises";import{resolve}from"path";async function buildRequest(endpoint,flags){let headers={},body,customHeaders=flags["--header"]||[];for(let header of customHeaders){let colonIndex=header.indexOf(":");if(colonIndex>0){let key=header.substring(0,colonIndex).trim(),value=header.substring(colonIndex+1).trim();headers[key]=value}}let fields=flags["--field"]||[],rawFields=flags["--raw-field"]||[];if(fields.length>0||rawFields.length>0){body={};for(let field of fields){let{key,value}=await parseField(field,!0);body[key]=value}for(let field of rawFields){let{key,value}=await parseField(field,!1);body[key]=value}}if(flags["--input"]){let inputPath=flags["--input"];if(inputPath==="-"?body=await readStdin():body=await readFile(resolve(inputPath),"utf-8"),typeof body=="string")try{body=JSON.parse(body)}catch{}}let method=flags["--method"]?.toUpperCase()||"GET";return!flags["--method"]&&body&&(method="POST"),{url:endpoint,method,headers,body}}async function parseCliKeyValueField(field,typed){return parseField(field,typed)}async function parseField(field,typed){let eqIndex=field.indexOf("=");if(eqIndex===-1)throw new Error(`Invalid field format: ${field}. Expected key=value`);let key=field.substring(0,eqIndex),value=field.substring(eqIndex+1);if(typed&&typeof value=="string"){if(value.startsWith("@")){let filePath=value.substring(1);if(filePath==="-"?value=await readStdin():value=await readFile(resolve(filePath),"utf-8"),typeof value=="string")try{value=JSON.parse(value)}catch{}}else if(value==="true")value=!0;else if(value==="false")value=!1;else if(value==="null")value=null;else if(/^-?\d+$/.test(value))value=parseInt(value,10);else if(/^-?\d*\.\d+$/.test(value))value=parseFloat(value);else if(value.startsWith("[")||value.startsWith("{"))try{value=JSON.parse(value)}catch{}}return{key,value}}async function readStdin(){let chunks=[];for await(let chunk of process.stdin)chunks.push(Buffer.from(chunk));return Buffer.concat(chunks).toString("utf-8")}function formatOutput(data,options){return options.raw?typeof data=="string"?data:JSON.stringify(data):JSON.stringify(data,null,2)}function generateCurlCommand(config,baseUrl){let parts=["curl"];config.method!=="GET"&&parts.push(`-X ${config.method}`),parts.push("-H 'Authorization: Bearer <TOKEN>'");for(let[key,value]of Object.entries(config.headers))parts.push(`-H '${key}: ${escapeShellArg(value)}'`);if(config.method!=="GET"&&config.body){let bodyStr=typeof config.body=="string"?config.body:JSON.stringify(config.body);parts.push("-H 'Content-Type: application/json'"),parts.push(`-d '${escapeShellArg(bodyStr)}'`)}let fullUrl=`${baseUrl}${config.url}`;return parts.push(`'${fullUrl}'`),parts.join(` \\
|
|
7
|
+
import{humanReadableColumnLabel}from"./chunk-GHAY4PSD.js";import{FETCH_TIMEOUT_MS,OpenApiCache,SSO_API_URL,assertAllowedSpecUrl,readSpecResponse}from"./chunk-SODZSOOL.js";import{table}from"./chunk-375JVQYK.js";import{apiCommand,listSubcommand}from"./chunk-S5JBQCBA.js";import{printError}from"./chunk-Q4GX2UTG.js";import{help}from"./chunk-GKALP6QD.js";import{TelemetryClient}from"./chunk-VPUYTI5E.js";import{parseArguments}from"./chunk-C4N4LKPM.js";import{validateJsonOutput}from"./chunk-GJCVOEC2.js";import{require_ms}from"./chunk-MXTC4ZAQ.js";import{packageName}from"./chunk-VRH7LWOC.js";import{output_manager_default}from"./chunk-W634OFUG.js";import{getFlagsSpecification}from"./chunk-CKTLP5GX.js";import{require_source}from"./chunk-NB2WLB3J.js";import{__toESM}from"./chunk-BZENIQ7N.js";import{createHash}from"crypto";var MAX_REDIRECTS=3;async function fetchSpecUrl(client,specUrl){let specOrigin=assertAllowedSpecUrl(specUrl).origin,probe=await fetchWithTimeout(specUrl,{readSpec:!0});if(probe.response.ok)return probe.spec??null;let nonce=getSetCookieValue(probe.response,"_vercel_sso_nonce");if(!nonce)throw output_manager_default.debug(`OpenAPI spec URL returned ${probe.response.status} without a Vercel SSO nonce`),new Error(formatHttpError(specUrl,probe.response));let token=client.authConfig.token;if(!token)return output_manager_default.debug("OpenAPI spec URL requires Vercel authentication"),null;let hashedNonce=createHash("sha256").update(nonce).digest("hex"),ssoUrl=`${SSO_API_URL}?url=${encodeURIComponent(specUrl)}&nonce=${hashedNonce}`,sso=await fetchWithTimeout(ssoUrl,{cookie:`authorization=${encodeURIComponent(`Bearer ${token}`)}; isLoggedIn=1`}),location=sso.response.headers.get("location");if(!location||!location.includes("_vercel_jwt="))throw output_manager_default.debug("OpenAPI spec URL: user has no access"),new Error(formatHttpError(specUrl,sso.response));let cookies=new Map([["_vercel_sso_nonce",nonce]]),url=location;for(let i=0;i<=MAX_REDIRECTS;i++){if(!isSameOriginUrl(url,specOrigin))return output_manager_default.debug("OpenAPI spec URL: cross-origin redirect rejected"),null;let{response,spec}=await fetchWithTimeout(url,{cookie:Array.from(cookies,([name,value])=>`${name}=${value}`).join("; "),readSpec:!0});if(response.ok)return spec??null;let next=response.headers.get("location");if(response.status>=300&&response.status<400&&next){let setJwt=getSetCookieValue(response,"_vercel_jwt");setJwt&&cookies.set("_vercel_jwt",setJwt);let nextUrl=new URL(next,url).href;if(!isSameOriginUrl(nextUrl,specOrigin))return output_manager_default.debug("OpenAPI spec URL: cross-origin redirect rejected"),null;url=nextUrl;continue}throw output_manager_default.debug(`OpenAPI spec URL: unexpected response ${response.status}`),new Error(formatHttpError(url,response))}return output_manager_default.debug("OpenAPI spec URL: too many redirects"),null}function createOpenApiCache(client,specUrl){return new OpenApiCache(specUrl?{specUrl,fetchSpecUrl:url=>fetchSpecUrl(client,url)}:void 0)}async function fetchWithTimeout(url,options){let controller=new AbortController,timeoutId=setTimeout(()=>controller.abort(),1e4);try{let response=await fetch(url,{redirect:"manual",signal:controller.signal,headers:options?.cookie?{cookie:options.cookie}:void 0}),spec=options?.readSpec&&response.ok?await readSpecResponse(response,formatDiagnosticUrl(url)):void 0;return{response,spec}}finally{clearTimeout(timeoutId)}}function isSameOriginUrl(url,origin){try{return new URL(url).origin===origin}catch{return!1}}function formatHttpError(url,response){let statusText=response.statusText?` ${response.statusText}`:"";return`Could not load OpenAPI spec from ${formatDiagnosticUrl(url)}: HTTP ${response.status}${statusText}.`}function formatDiagnosticUrl(url){try{let parsed=new URL(url);parsed.hash="";for(let key of parsed.searchParams.keys())parsed.searchParams.set(key,"[redacted]");return parsed.href}catch{return url}}function getSetCookieValue(response,name){let header=response.headers.get("set-cookie");if(!header)return null;let match=header.match(new RegExp(`${name}=([^;,\\s]+)`));return match?match[1]:null}function foldNamingStyle(input){return input.trim().replace(/([a-z\d])([A-Z])/g,"$1 $2").replace(/([A-Z])([A-Z][a-z])/g,"$1 $2").replace(/[-_\s]+/g," ").trim().toLowerCase().replace(/\s+/g,"")}function operationIdToKebabCase(operationId){let s=operationId.trim();return s?s.replace(/([a-z\d])([A-Z])/g,"$1-$2").replace(/([A-Z]+)([A-Z][a-z])/g,"$1-$2").replace(/[-_\s]+/g,"-").replace(/-+/g,"-").replace(/^-|-$/g,"").toLowerCase():"unnamed"}function inferCliSubcommandAliases(ep){let upper=ep.method.toUpperCase(),hasPathParams=ep.parameters.some(p=>p.in==="path");switch(upper){case"GET":return hasPathParams?["inspect","get"]:["ls","list"];case"POST":return["add","create"];case"DELETE":return["rm","remove"];case"PUT":case"PATCH":return["update"];default:return[]}}var import_ms=__toESM(require_ms(),1),import_chalk=__toESM(require_source(),1);function getByPath(obj,path){let parts=path.split(".").filter(Boolean),cur=obj;for(let p of parts){if(cur===null||typeof cur!="object")return;cur=cur[p]}return cur}var TIMESTAMP_FIELD_PATTERN=/(?:^|\.)(created|updated|deleted|expired|blocked|completed|started|finished|modified|verified|published|cancelled|revoked|invited|accepted|accessed|deployed)(?:At|_at|On|_on)?$/i,MIN_TIMESTAMP_MS=1e12,MAX_TIMESTAMP_MS=41024448e5;function isTimestampValue(value,columnPath){return typeof value!="number"||!Number.isFinite(value)||value<MIN_TIMESTAMP_MS||value>MAX_TIMESTAMP_MS?!1:TIMESTAMP_FIELD_PATTERN.test(columnPath)}function formatRelativeTime(timestamp){let diff=Date.now()-timestamp;return diff<0?"just now":import_chalk.default.gray((0,import_ms.default)(diff))}function stringifyCell(value,columnPath){return value==null?import_chalk.default.gray("--"):columnPath&&isTimestampValue(value,columnPath)?formatRelativeTime(value):typeof value=="object"?JSON.stringify(value):String(value)}function styleColumnKey(plainLabel){return import_chalk.default.gray(plainLabel)}function columnsForRow(r,display){return r.limited===!0&&display.columnsWhenLimited?.length?display.columnsWhenLimited:display.columnsDefault}function formatAsCard(r,display){let columns=columnsForRow(r,display);if(!columns.length)return null;let rows=columns.map(colPath=>[styleColumnKey(humanReadableColumnLabel(colPath)),stringifyCell(getByPath(r,colPath),colPath)]);return table(rows,{align:["l","l"],hsep:2})}function formatAsDataTable(items,display){if(items.length===0)return"(empty)";let first=items[0];if(first===null||typeof first!="object"||Array.isArray(first)){let headers2=[styleColumnKey(humanReadableColumnLabel("#")),styleColumnKey(humanReadableColumnLabel("value"))],rows=items.map((v,i)=>[String(i),stringifyCell(v,"value")]);return table([headers2,...rows])}let columns=columnsForRow(first,display);if(!columns.length)return null;let headers=columns.map(p=>styleColumnKey(humanReadableColumnLabel(p))),dataRows=items.map(item=>{let row=item!==null&&typeof item=="object"&&!Array.isArray(item)?item:{};return columns.map(colPath=>stringifyCell(getByPath(row,colPath),colPath))});return table([headers,...dataRows])}function resolveEndpointByTagAndOperationId(endpoints,tag,operationHint){let tagLower=tag.toLowerCase(),tagMatches=endpoints.filter(ep=>ep.tags.some(t=>t.toLowerCase()===tagLower));if(tagMatches.length===0)return{ok:!1,reason:"no_tag",tag,tagMatches:[],operationHint};let withOpId=tagMatches.filter(ep=>ep.operationId.length>0);if(withOpId.length===0)return{ok:!1,reason:"no_operation",tag,tagMatches,operationHint};let hint=operationHint.trim(),hintLower=hint.toLowerCase(),exact=withOpId.filter(ep=>ep.operationId===hint);if(exact.length===1)return{ok:!0,endpoint:exact[0]};if(exact.length>1)return{ok:!1,reason:"ambiguous_operation",tag,tagMatches:exact,operationHint:hint};let exactCi=withOpId.filter(ep=>ep.operationId.toLowerCase()===hintLower);return exactCi.length===1?{ok:!0,endpoint:exactCi[0]}:exactCi.length>1?{ok:!1,reason:"ambiguous_operation",tag,tagMatches:exactCi,operationHint:hint}:{ok:!1,reason:"no_operation",tag,tagMatches,operationHint:hint}}var import_chalk4=__toESM(require_source(),1);var ApiTelemetryClient=class extends TelemetryClient{trackCliArgumentEndpoint(endpoint){if(endpoint){let normalized=this.normalizeEndpoint(endpoint);this.trackCliArgument({arg:"endpoint",value:normalized})}}trackCliArgumentOperationId(operationId){operationId&&this.trackCliArgument({arg:"operationId",value:operationId})}trackCliOptionMethod(method){if(method){let validMethods=["GET","POST","PUT","DELETE","PATCH","HEAD"],upperMethod=method.toUpperCase(),value=validMethods.includes(upperMethod)?upperMethod:this.redactedValue;this.trackCliOption({option:"method",value})}}trackCliOptionField(fields){fields&&fields.length>0&&this.trackCliOption({option:"field",value:this.redactedArgumentsLength(fields)})}trackCliOptionRawField(fields){fields&&fields.length>0&&this.trackCliOption({option:"raw-field",value:this.redactedArgumentsLength(fields)})}trackCliOptionHeader(headers){headers&&headers.length>0&&this.trackCliOption({option:"header",value:this.redactedArgumentsLength(headers)})}trackCliOptionInput(input){if(input){let value=input==="-"?"stdin":"file";this.trackCliOption({option:"input",value})}}trackCliOptionSpecUrl(specUrl){specUrl&&this.trackCliOption({option:"spec-url",value:this.redactedValue})}trackCliFlagPaginate(value){value&&this.trackCliFlag("paginate")}trackCliFlagInclude(value){value&&this.trackCliFlag("include")}trackCliFlagSilent(value){value&&this.trackCliFlag("silent")}trackCliFlagVerbose(value){value&&this.trackCliFlag("verbose")}trackCliFlagRaw(value){value&&this.trackCliFlag("raw")}trackCliFlagRefresh(value){value&&this.trackCliFlag("refresh")}trackCliOptionGenerate(format){if(format){let value=["curl"].includes(format)?format:this.redactedValue;this.trackCliOption({option:"generate",value})}}trackCliFlagDangerouslySkipPermissions(value){value&&this.trackCliFlag("dangerously-skip-permissions")}trackCliSubcommandList(){this.trackCliSubcommand({subcommand:"list",value:"list"})}trackCliOptionFormat(format){if(format){let value=["table","json"].includes(format)?format:this.redactedValue;this.trackCliOption({option:"format",value})}}trackCliFlagJson(json){json&&this.trackCliFlag("json")}normalizeEndpoint(endpoint){return endpoint.replace(/\/dpl_[a-zA-Z0-9]+/g,"/:deploymentId").replace(/\/prj_[a-zA-Z0-9]+/g,"/:projectId").replace(/\/team_[a-zA-Z0-9]+/g,"/:teamId").replace(/\/[a-f0-9]{24}/g,"/:id").replace(/\/[a-f0-9-]{36}/g,"/:uuid")}};import{readFile}from"fs/promises";import{resolve}from"path";async function buildRequest(endpoint,flags){let headers={},body,customHeaders=flags["--header"]||[];for(let header of customHeaders){let colonIndex=header.indexOf(":");if(colonIndex>0){let key=header.substring(0,colonIndex).trim(),value=header.substring(colonIndex+1).trim();headers[key]=value}}let fields=flags["--field"]||[],rawFields=flags["--raw-field"]||[];if(fields.length>0||rawFields.length>0){body={};for(let field of fields){let{key,value}=await parseField(field,!0);body[key]=value}for(let field of rawFields){let{key,value}=await parseField(field,!1);body[key]=value}}if(flags["--input"]){let inputPath=flags["--input"];if(inputPath==="-"?body=await readStdin():body=await readFile(resolve(inputPath),"utf-8"),typeof body=="string")try{body=JSON.parse(body)}catch{}}let method=flags["--method"]?.toUpperCase()||"GET";return!flags["--method"]&&body&&(method="POST"),{url:endpoint,method,headers,body}}async function parseCliKeyValueField(field,typed){return parseField(field,typed)}async function parseField(field,typed){let eqIndex=field.indexOf("=");if(eqIndex===-1)throw new Error(`Invalid field format: ${field}. Expected key=value`);let key=field.substring(0,eqIndex),value=field.substring(eqIndex+1);if(typed&&typeof value=="string"){if(value.startsWith("@")){let filePath=value.substring(1);if(filePath==="-"?value=await readStdin():value=await readFile(resolve(filePath),"utf-8"),typeof value=="string")try{value=JSON.parse(value)}catch{}}else if(value==="true")value=!0;else if(value==="false")value=!1;else if(value==="null")value=null;else if(/^-?\d+$/.test(value))value=parseInt(value,10);else if(/^-?\d*\.\d+$/.test(value))value=parseFloat(value);else if(value.startsWith("[")||value.startsWith("{"))try{value=JSON.parse(value)}catch{}}return{key,value}}async function readStdin(){let chunks=[];for await(let chunk of process.stdin)chunks.push(Buffer.from(chunk));return Buffer.concat(chunks).toString("utf-8")}function formatOutput(data,options){return options.raw?typeof data=="string"?data:JSON.stringify(data):JSON.stringify(data,null,2)}function generateCurlCommand(config,baseUrl){let parts=["curl"];config.method!=="GET"&&parts.push(`-X ${config.method}`),parts.push("-H 'Authorization: Bearer <TOKEN>'");for(let[key,value]of Object.entries(config.headers))parts.push(`-H '${key}: ${escapeShellArg(value)}'`);if(config.method!=="GET"&&config.body){let bodyStr=typeof config.body=="string"?config.body:JSON.stringify(config.body);parts.push("-H 'Content-Type: application/json'"),parts.push(`-d '${escapeShellArg(bodyStr)}'`)}let fullUrl=`${baseUrl}${config.url}`;return parts.push(`'${fullUrl}'`),parts.join(` \\
|
|
8
8
|
`)}function escapeShellArg(str){return str.replace(/'/g,"'\\''")}import{readFile as readFile2}from"fs/promises";import{resolve as resolve2}from"path";var GLOBAL_CLI_QUERY_PARAMS=new Set(["teamId","slug"]);async function parseOperationKeyValuePairs(endpoint,bodyFields,flags,positionalKeyValues){let pathParamNames=new Set(endpoint.parameters.filter(p=>p.in==="path").map(p=>p.name)),queryParamNames=new Set(endpoint.parameters.filter(p=>p.in==="query").map(p=>p.name)),headerParamNames=new Set(endpoint.parameters.filter(p=>p.in==="header").map(p=>p.name)),bodyFieldNames=new Set(bodyFields.map(f=>f.name)),pathValues={},queryValues={},headerValues={},body={};async function dispatchPair(field,typed){let eqIndex=field.indexOf("=");if(eqIndex===-1)throw new Error(`Invalid option "${field}". Expected key=value (or use options -F / -f).`);let key=field.slice(0,eqIndex),param=endpoint.parameters.find(p=>p.name===key);if(param?.in==="path"){let{value}=await parseCliKeyValueField(field,!1);pathValues[key]=String(value);return}if(param?.in==="query"){let{value}=await parseCliKeyValueField(field,typed);queryValues[key]=typeof value=="object"&&value!==null?JSON.stringify(value):String(value);return}if(param?.in==="header"){let{value}=await parseCliKeyValueField(field,!1);headerValues[key]=String(value);return}if(param?.in==="cookie")throw new Error(`Option "${key}" is cookie-based; set it via headers instead.`);if(bodyFieldNames.has(key)){let{value}=await parseCliKeyValueField(field,typed);body[key]=value;return}if(!param&&pathParamNames.has(key)){let{value}=await parseCliKeyValueField(field,!1);pathValues[key]=String(value);return}if(!param&&queryParamNames.has(key)){let{value}=await parseCliKeyValueField(field,typed);queryValues[key]=typeof value=="object"&&value!==null?JSON.stringify(value):String(value);return}if(!param&&headerParamNames.has(key)){let{value}=await parseCliKeyValueField(field,!1);headerValues[key]=String(value);return}throw new Error(`Unknown option "${key}" for operation ${endpoint.operationId}. Check the API docs or run \`vercel api ls --json\`.`)}for(let field of flags["--field"]||[])await dispatchPair(field,!0);for(let field of flags["--raw-field"]||[])await dispatchPair(field,!1);for(let field of positionalKeyValues)await dispatchPair(field,!0);return{pathValues,queryValues,headerValues,body}}function getMissingRequiredOperationParams(endpoint,bodyFields,parsed,flags){let missingPath=endpoint.parameters.filter(p=>p.in==="path").filter(p=>parsed.pathValues[p.name]===void 0),missingQuery=endpoint.parameters.filter(p=>p.in==="query"&&p.required&&!GLOBAL_CLI_QUERY_PARAMS.has(p.name)).filter(p=>parsed.queryValues[p.name]===void 0),missingHeader=endpoint.parameters.filter(p=>p.in==="header"&&p.required).filter(p=>parsed.headerValues[p.name]===void 0),missingBody=bodyFields.filter(f=>f.required&&parsed.body[f.name]===void 0&&!flags["--input"]);return{path:missingPath,query:missingQuery,header:missingHeader,body:missingBody}}function getUnsetOptionalOperationParams(endpoint,bodyFields,parsed,flags){let unsetQuery=endpoint.parameters.filter(p=>p.in==="query"&&parsed.queryValues[p.name]===void 0&&(!p.required||GLOBAL_CLI_QUERY_PARAMS.has(p.name))),unsetHeader=endpoint.parameters.filter(p=>p.in==="header"&&!p.required&&parsed.headerValues[p.name]===void 0),unsetBody=bodyFields.filter(f=>!f.required&&parsed.body[f.name]===void 0&&!flags["--input"]);return{query:unsetQuery,header:unsetHeader,body:unsetBody}}async function buildRequestForResolvedOperation(endpoint,bodyFields,flags,positionalKeyValues){let headers={},customHeaders=flags["--header"]||[];for(let header of customHeaders){let colonIndex=header.indexOf(":");if(colonIndex>0){let key=header.substring(0,colonIndex).trim(),value=header.substring(colonIndex+1).trim();headers[key]=value}}let method=(flags["--method"]?.toUpperCase()||endpoint.method).toUpperCase(),pathParamNames=new Set(endpoint.parameters.filter(p=>p.in==="path").map(p=>p.name)),parsed=await parseOperationKeyValuePairs(endpoint,bodyFields,flags,positionalKeyValues),{pathValues,queryValues,headerValues,body}=parsed;for(let[k,v]of Object.entries(headerValues))headers[k]=v;let urlPath=endpoint.path;for(let name of pathParamNames){let value=pathValues[name];if(value===void 0)throw new Error(`Missing required path option {${name}} for ${endpoint.operationId}.`);urlPath=urlPath.replace(`{${name}}`,encodeURIComponent(value))}if(/\{[^}]+\}/.test(urlPath))throw new Error(`Unresolved path placeholders in ${urlPath}. Provide values for all path options.`);let requiredQuery=endpoint.parameters.filter(p=>p.in==="query"&&p.required&&!GLOBAL_CLI_QUERY_PARAMS.has(p.name));for(let p of requiredQuery)if(queryValues[p.name]===void 0)throw new Error(`Missing required query option "${p.name}" for ${endpoint.operationId}.`);let requiredHeader=endpoint.parameters.filter(h=>h.in==="header"&&h.required);for(let h of requiredHeader)if(headerValues[h.name]===void 0)throw new Error(`Missing required header option "${h.name}" for ${endpoint.operationId}.`);let requiredBody=bodyFields.filter(f=>f.required);for(let f of requiredBody)if(body[f.name]===void 0&&!flags["--input"])throw new Error(`Missing required body option "${f.name}" for ${endpoint.operationId}.`);let queryString=new URLSearchParams(queryValues).toString();queryString&&(urlPath+=(urlPath.includes("?")?"&":"?")+queryString);let finalBody=Object.keys(body).length>0?body:void 0;if(flags["--input"]){let inputPath=flags["--input"],inputBody;if(inputPath==="-"?inputBody=await readStdin():inputBody=await readFile2(resolve2(inputPath),"utf-8"),typeof inputBody=="string")try{finalBody=JSON.parse(inputBody)}catch{finalBody=inputBody}else finalBody=inputBody}return(method==="GET"||method==="HEAD")&&(finalBody=void 0),{url:urlPath,method,headers,body:finalBody}}var API_BASE_URL="https://api.vercel.com";var import_chalk2=__toESM(require_source(),1);function colorizeMethod(method){switch(method){case"GET":return import_chalk2.default.cyan(method);case"POST":return import_chalk2.default.green(method);case"PUT":return import_chalk2.default.yellow(method);case"PATCH":return import_chalk2.default.blue(method);case"DELETE":return import_chalk2.default.red(method);default:return method}}function colorizeMethodPadded(method,width=7){let colored=colorizeMethod(method),padding=" ".repeat(Math.max(0,width-method.length));return colored+padding}function formatPathParam(paramName){return import_chalk2.default.cyan(`{${paramName}}`)}function formatTypeHint(type){return import_chalk2.default.dim(`[${type}]`)}function formatDescription(description){return description?import_chalk2.default.gray(` (${description})`):""}var import_chalk3=__toESM(require_source(),1);function getByPath2(obj,path){let current=obj;for(let segment of path.split(".")){if(current==null||typeof current!="object")return;current=current[segment]}return current}function parseArrayColumns(data,columns){let entries=Object.entries(columns),first=entries[0];if(!first)return null;let bracketIdx=first[1].indexOf("[].");if(bracketIdx===-1)return null;let arrayKey=first[1].slice(0,bracketIdx),rowColumns={};for(let[label,path]of entries){let prefix=path.slice(0,bracketIdx);if(prefix!==arrayKey||!path.startsWith(prefix+"[]."))return null;rowColumns[label]=path.slice(bracketIdx+3)}let arr=getByPath2(data,arrayKey);return Array.isArray(arr)?{rows:arr,rowColumns}:null}function formatValue(value){return value==null?import_chalk3.default.dim("\u2013"):typeof value=="number"?value>1e12&&value<2e12?new Date(value).toISOString():String(value):typeof value=="boolean"?String(value):typeof value=="string"?value:JSON.stringify(value)}function renderCard(data,columns){let entries=Object.entries(columns),maxLabel=Math.max(...entries.map(([label])=>label.length));return entries.map(([label,path])=>{let value=getByPath2(data,path);return` ${import_chalk3.default.gray(label.padEnd(maxLabel))} ${formatValue(value)}`}).join(`
|
|
9
9
|
`)}function renderTable(rows,columns){let entries=Object.entries(columns),headerRow=entries.map(([label])=>label),dataRows=rows.map(row=>entries.map(([,path])=>formatValue(getByPath2(row,path)))),widths=entries.map(([label],colIdx)=>{let dataMax=dataRows.reduce((max,row)=>Math.max(max,stripAnsi(row[colIdx]).length),0);return Math.max(label.length,dataMax)}),header=headerRow.map((h,i)=>import_chalk3.default.bold(h.padEnd(widths[i]))).join(" "),body=dataRows.map(row=>row.map((cell,i)=>{let pad=widths[i]-stripAnsi(cell).length;return cell+" ".repeat(Math.max(0,pad))}).join(" "));return[header,...body].join(`
|
|
10
10
|
`)}function stripAnsi(str){return str.replace(/\x1b\[[0-9;]*m/g,"")}async function api(client){let telemetryClient=new ApiTelemetryClient({opts:{store:client.telemetryEventStore}}),parsedArgs,flagsSpec=getFlagsSpecification(apiCommand.options);try{parsedArgs=parseArguments(client.argv.slice(2),flagsSpec,{permissive:!0})}catch(err){return printError(err),2}let{args,flags}=parsedArgs,needHelp=flags["--help"],firstArg=args[1];if(firstArg==="ls"||firstArg==="list"){let lsFlagsSpec=getFlagsSpecification(listSubcommand.options),lsParsedArgs;try{lsParsedArgs=parseArguments(client.argv.slice(2),lsFlagsSpec)}catch(err){return printError(err),2}let lsFlags=lsParsedArgs.flags;if(lsFlags["--help"])return telemetryClient.trackCliFlagHelp("api",firstArg),output_manager_default.print(help(listSubcommand,{stream:client.stderr,parent:apiCommand,columns:client.stderr.columns})),0;let formatResult=validateJsonOutput(lsFlags);return formatResult.valid?(telemetryClient.trackCliSubcommandList(),lsFlags["--refresh"]&&telemetryClient.trackCliFlagRefresh(!0),lsFlags["--format"]&&telemetryClient.trackCliOptionFormat(lsFlags["--format"]),telemetryClient.trackCliFlagJson(lsFlags["--json"]),lsFlags["--spec-url"]&&telemetryClient.trackCliOptionSpecUrl(lsFlags["--spec-url"]),listEndpoints(client,lsFlags["--refresh"]??!1,lsFlags["--spec-url"],formatResult.jsonOutput?"json":"table")):(output_manager_default.error(formatResult.error),2)}if(needHelp)return telemetryClient.trackCliFlagHelp("api"),output_manager_default.print(help(apiCommand,{stream:client.stderr,columns:client.stderr.columns})),0;flags["--dangerously-skip-permissions"]&&(client.dangerouslySkipPermissions=!0);let endpoint,selectedMethod,selectedBodyFields=[];if(firstArg)endpoint=firstArg;else if(client.stdin.isTTY){let selected=await promptEndpointSelection(client,flags["--refresh"]??!1,flags["--spec-url"]);if(!selected)return 1;endpoint=selected.finalUrl,selectedMethod=selected.method,selectedBodyFields=selected.bodyFields}else return output_manager_default.error("Endpoint is required. Usage: vercel api <endpoint>"),2;if(endpoint&&!endpoint.startsWith("/"))return output_manager_default.error(`Invalid arguments. Use an API path starting with /, or run \`${packageName} api\` interactively.`),2;try{if(new URL(endpoint,API_BASE_URL).origin!==API_BASE_URL)return output_manager_default.error("Invalid endpoint: must be a Vercel API path, not an external URL"),2}catch{return output_manager_default.error("Invalid endpoint URL format"),1}let finalFlags={...flags};if(selectedMethod&&!flags["--method"]&&(finalFlags["--method"]=selectedMethod),selectedBodyFields.length>0){let existingFields=finalFlags["--field"]||[];finalFlags["--field"]=[...existingFields,...selectedBodyFields]}let requestConfig;try{requestConfig=await buildRequest(endpoint,finalFlags)}catch(err){return printError(err),1}if(telemetryClient.trackCliArgumentEndpoint(requestConfig.url),telemetryClient.trackCliArgumentOperationId(void 0),telemetryClient.trackCliOptionMethod(flags["--method"]),telemetryClient.trackCliOptionHeader(flags["--header"]),telemetryClient.trackCliOptionInput(flags["--input"]),flags["--paginate"]&&telemetryClient.trackCliFlagPaginate(!0),flags["--include"]&&telemetryClient.trackCliFlagInclude(!0),flags["--silent"]&&telemetryClient.trackCliFlagSilent(!0),flags["--verbose"]&&telemetryClient.trackCliFlagVerbose(!0),flags["--raw"]&&telemetryClient.trackCliFlagRaw(!0),flags["--refresh"]&&telemetryClient.trackCliFlagRefresh(!0),flags["--spec-url"]&&telemetryClient.trackCliOptionSpecUrl(flags["--spec-url"]),flags["--generate"]&&telemetryClient.trackCliOptionGenerate(flags["--generate"]),flags["--dangerously-skip-permissions"]&&telemetryClient.trackCliFlagDangerouslySkipPermissions(!0),flags["--generate"]==="curl"){let curlCmd=generateCurlCommand(requestConfig,"https://api.vercel.com");return output_manager_default.log(""),output_manager_default.log("Replace <TOKEN> with your auth token:"),output_manager_default.log(""),client.stdout.write(curlCmd+`
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { createRequire as __createRequire } from 'node:module';
|
|
2
|
+
import { fileURLToPath as __fileURLToPath } from 'node:url';
|
|
3
|
+
import { dirname as __dirname_ } from 'node:path';
|
|
4
|
+
const require = __createRequire(import.meta.url);
|
|
5
|
+
const __filename = __fileURLToPath(import.meta.url);
|
|
6
|
+
const __dirname = __dirname_(__filename);
|
|
7
|
+
import{warnDeprecatedOption}from"./chunk-GJCVOEC2.js";import{packageName}from"./chunk-VRH7LWOC.js";import{DEPRECATED_SHORTHANDS,arg_common_default,getShortFlagLongName,quoteArg,setCommandFlagsSpecification,stripSensitiveAuthArgs}from"./chunk-CKTLP5GX.js";import{__commonJS,__toESM}from"./chunk-BZENIQ7N.js";var require_arg=__commonJS({"../../node_modules/.pnpm/arg@5.0.0/node_modules/arg/index.js"(exports,module){var flagSymbol=Symbol("arg flag"),ArgError=class _ArgError extends Error{constructor(msg,code){super(msg),this.name="ArgError",this.code=code,Object.setPrototypeOf(this,_ArgError.prototype)}};function arg2(opts,{argv=process.argv.slice(2),permissive=!1,stopAtPositional=!1}={}){if(!opts)throw new ArgError("argument specification object is required","ARG_CONFIG_NO_SPEC");let result={_:[]},aliases={},handlers={};for(let key of Object.keys(opts)){if(!key)throw new ArgError("argument key cannot be an empty string","ARG_CONFIG_EMPTY_KEY");if(key[0]!=="-")throw new ArgError(`argument key must start with '-' but found: '${key}'`,"ARG_CONFIG_NONOPT_KEY");if(key.length===1)throw new ArgError(`argument key must have a name; singular '-' keys are not allowed: ${key}`,"ARG_CONFIG_NONAME_KEY");if(typeof opts[key]=="string"){aliases[key]=opts[key];continue}let type=opts[key],isFlag=!1;if(Array.isArray(type)&&type.length===1&&typeof type[0]=="function"){let[fn]=type;type=(value,name,prev=[])=>(prev.push(fn(value,name,prev[prev.length-1])),prev),isFlag=fn===Boolean||fn[flagSymbol]===!0}else if(typeof type=="function")isFlag=type===Boolean||type[flagSymbol]===!0;else throw new ArgError(`type missing or not a function or valid array type: ${key}`,"ARG_CONFIG_VAD_TYPE");if(key[1]!=="-"&&key.length>2)throw new ArgError(`short argument keys (with a single hyphen) must have only one character: ${key}`,"ARG_CONFIG_SHORTOPT_TOOLONG");handlers[key]=[type,isFlag]}for(let i=0,len=argv.length;i<len;i++){let wholeArg=argv[i];if(stopAtPositional&&result._.length>0){result._=result._.concat(argv.slice(i));break}if(wholeArg==="--"){result._=result._.concat(argv.slice(i+1));break}if(wholeArg.length>1&&wholeArg[0]==="-"){let separatedArguments=wholeArg[1]==="-"||wholeArg.length===2?[wholeArg]:wholeArg.slice(1).split("").map(a=>`-${a}`);for(let j=0;j<separatedArguments.length;j++){let arg3=separatedArguments[j],[originalArgName,argStr]=arg3[1]==="-"?arg3.split(/=(.*)/,2):[arg3,void 0],argName=originalArgName;for(;argName in aliases;)argName=aliases[argName];if(!(argName in handlers))if(permissive){result._.push(arg3);continue}else throw new ArgError(`unknown or unexpected option: ${originalArgName}`,"ARG_UNKNOWN_OPTION");let[type,isFlag]=handlers[argName];if(!isFlag&&j+1<separatedArguments.length)throw new ArgError(`option requires argument (but was followed by another short argument): ${originalArgName}`,"ARG_MISSING_REQUIRED_SHORTARG");if(isFlag)result[argName]=type(!0,argName,result[argName]);else if(argStr===void 0){if(argv.length<i+2||argv[i+1].length>1&&argv[i+1][0]==="-"&&!(argv[i+1].match(/^-?\d*(\.(?=\d))?\d*$/)&&(type===Number||typeof BigInt<"u"&&type===BigInt))){let extended=originalArgName===argName?"":` (alias for ${argName})`;throw new ArgError(`option requires argument: ${originalArgName}${extended}`,"ARG_MISSING_REQUIRED_LONGARG")}result[argName]=type(argv[i+1],argName,result[argName]),++i}else result[argName]=type(argStr,argName,result[argName])}}else result._.push(wholeArg)}return result}arg2.flag=fn=>(fn[flagSymbol]=!0,fn);arg2.COUNT=arg2.flag((v,name,existingCount)=>(existingCount||0)+1);arg2.ArgError=ArgError;module.exports=arg2}});var import_arg=__toESM(require_arg(),1);function suggestCorrection(input,choices){if(input.replace(/^-+/,"").length<3||choices.includes(input))return;let matches=[...new Set(choices)].filter(choice=>{if(Math.abs(input.length-choice.length)>1)return!1;let i=0;for(;i<input.length&&input[i]===choice[i];)i++;return input.length===choice.length?input.slice(i+1)===choice.slice(i+1)||input[i]===choice[i+1]&&input[i+1]===choice[i]&&input.slice(i+2)===choice.slice(i+2):input.length>choice.length?input.slice(i+1)===choice.slice(i):input.slice(i)===choice.slice(i+1)});return matches.length===1?matches[0]:void 0}var SAFE_VALUE_FLAGS=new Set(["--cwd","--scope","--team","-S","-T","--project","-p","--format","--environment","--since","--until","--limit"]),READ_COMMANDS=new Set(["inspect","list","ls","schema","whoami"]);function buildCorrectedCommand(argv,from,to,flagsSpecification={}){let corrected=argv.slice(2),spec={...arg_common_default(),...flagsSpecification},isSafeValueFlag=name=>SAFE_VALUE_FLAGS.has(getShortFlagLongName(name,spec)??name),valuelessFlags=new Set,takesValue=new Set;for(let[name,value]of Object.entries(spec))((typeof value=="string"?spec[value]:value)===Boolean?valuelessFlags:takesValue).add(name);for(let i=0;i<corrected.length;i++){let value=corrected[i];if(value==="--")break;if(value===from||value.startsWith(`${from}=`)){corrected[i]=to+value.slice(from.length);break}takesValue.has(value)&&i++}let args=stripSensitiveAuthArgs(corrected).filter(arg2=>!/^-t[^-=]/.test(arg2)),out=[],positionals=0,readCommand=!1;for(let i=0;i<args.length;i++){let value=args[i];if(value==="--"){out.push("--","<argument>");break}if(value.startsWith("-")){if(/^-[A-Za-z][^=].+/.test(value)&&!value.startsWith("--")){let name2=value.slice(0,2);out.push(name2,isSafeValueFlag(name2)?value.slice(2):"<value>");continue}let equals=value.indexOf("="),name=equals<0?value:value.slice(0,equals);equals>=0?out.push(`${name}=${isSafeValueFlag(name)||valuelessFlags.has(name)&&/^(true|false)$/.test(value.slice(equals+1))?value.slice(equals+1):"<value>"}`):(out.push(name),!valuelessFlags.has(name)&&i+1<args.length&&(takesValue.has(name)||!args[i+1].startsWith("-"))&&(i++,out.push(isSafeValueFlag(name)?args[i]:"<value>")))}else positionals++,positionals<=2&&(readCommand||=READ_COMMANDS.has(value)),out.push(positionals<=2||readCommand?value:"<argument>")}return[packageName,...out].map(quoteArg).join(" ")}var argumentErrors=new WeakSet;function isArgumentError(error){return error instanceof Error&&argumentErrors.has(error)}function getNegations(spec){let negations=new Map;for(let[name,type]of Object.entries(spec)){if(type!==Boolean||!name.startsWith("--")||name.startsWith("--no-"))continue;let negation=`--no-${name.slice(2)}`;negation in spec||negations.set(negation,name)}return negations}function conflictingOptionsError(name,negation){let error=new Error(`Can't use ${name} with ${negation}.`);return error.code="ARG_CONFLICTING_OPTIONS",argumentErrors.add(error),error}function parseWithSuggestions(args,spec,options){let negations=options.keepNegations?new Map:getNegations(spec);try{let negationSpec={};for(let negation of negations.keys())negationSpec[negation]=Boolean;let result=(0,import_arg.default)({...spec,...negationSpec},{...options,argv:args});for(let[negation,name]of negations)if(result[negation]!==void 0&&(delete result[negation],result[name]!==void 0&&!options.permissive))throw conflictingOptionsError(name,negation);return result}catch(error){if(error instanceof Error&&"code"in error&&["ARG_UNKNOWN_OPTION","ARG_MISSING_REQUIRED_LONGARG","ARG_MISSING_REQUIRED_SHORTARG"].includes(String(error.code))){let err=error,option=/(?:unknown or unexpected option|option requires argument(?: \([^)]*\))?): (--?[A-Za-z0-9-]+)(?: \(alias for --?[A-Za-z0-9-]+\))?$/.exec(err.message)?.[1];option&&(argumentErrors.add(err),err.invalidOption=option,err.allowedOptions=Object.keys(spec).filter(name=>name.startsWith("--")).sort(),err.code==="ARG_UNKNOWN_OPTION"&&(err.suggestedOption=suggestCorrection(option,err.allowedOptions)),err.flagsSpecification=spec)}throw error}}function getArgs(argv,argsOptions,argOptions={}){return parseWithSuggestions(argv,Object.assign({},arg_common_default(),argsOptions),argOptions)}var COMMAND_SHORTHAND_PLACEHOLDER="--\0command-shorthand-";function parseArguments(args,flagsSpecification,parserOptions={}){let spec=Object.assign({},arg_common_default(),flagsSpecification),{commandShorthands}=parserOptions,keepForCommand=!!(parserOptions.permissive&&commandShorthands?.size),{_:parsed,...rest}=parseWithSuggestions(keepForCommand?args.map((arg2,index)=>commandShorthands.has(index)?`${COMMAND_SHORTHAND_PLACEHOLDER}${index}`:arg2):args,spec,parserOptions),positional=keepForCommand?parsed.map(arg2=>arg2.startsWith(COMMAND_SHORTHAND_PLACEHOLDER)?args[Number(arg2.slice(COMMAND_SHORTHAND_PLACEHOLDER.length))]:arg2):parsed;return!parserOptions.permissive&&parserOptions.warnDeprecated!==!1&&(setCommandFlagsSpecification(spec),warnDeprecatedShorthands(args,spec,parserOptions)),{args:positional,flags:rest}}var usedShorthands=new Set,warnedShorthands=new Set;function getUsedDeprecatedShorthands(){return[...usedShorthands]}function warnDeprecatedShorthands(args,spec,parserOptions){let shorthands=spec[DEPRECATED_SHORTHANDS];if(!shorthands?.length)return;let names=new Map,splitSpec={...spec};for(let shorthand of shorthands){let name=spec[shorthand];if(typeof name!="string")continue;let handler=resolveHandler(spec,name);handler!==void 0&&(names.set(shorthand,name),splitSpec[shorthand]=handler)}let flags;try{flags=parseWithSuggestions(args,splitSpec,parserOptions)}catch{return}for(let[shorthand,name]of names){if(flags[shorthand]===void 0)continue;usedShorthands.add(shorthand);let warning=`${shorthand} ${name}`;warnedShorthands.has(warning)||(warnedShorthands.add(warning),warnDeprecatedOption(args,shorthand,name))}}function resolveHandler(spec,name){let handler=spec[name];for(;typeof handler=="string";)handler=spec[handler];return handler}function parseWithShortFlag(args,spec,shortFlag,handler=resolveHandler(spec,shortFlag)){if(handler===void 0)return{};try{return parseArguments(args,{...spec,[shortFlag]:handler},{permissive:!0,warnDeprecated:!1}).flags}catch{return{}}}function getTypedOptionName(args,spec,name){for(let[key,target]of Object.entries(spec))if(target===name&&/^-[^-]$/.test(key)&&parseWithShortFlag(args,spec,key)[key]!==void 0)return usedShorthands.add(key),key;return name}function takeCommand(argv,flagsSpecification){let{_:positional}=parseWithSuggestions(argv,Object.assign({},arg_common_default(),flagsSpecification),{stopAtPositional:!0}),index=argv.length-positional.length;return{command:positional[0],args:[...argv.slice(0,index),...argv.slice(index+1)]}}export{require_arg,suggestCorrection,buildCorrectedCommand,isArgumentError,getArgs,parseArguments,getUsedDeprecatedShorthands,parseWithShortFlag,getTypedOptionName,takeCommand};
|