@vercel/cli-support 65.3.1 → 65.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/chunks/add-7NS6HIWC.js +8 -0
- package/dist/chunks/add-NMYFDVXW.js +8 -0
- package/dist/chunks/add-PMJ5BECU.js +8 -0
- package/dist/chunks/build-BCY6HQJG.js +7 -0
- package/dist/chunks/{chunk-SKYDLHEZ.js → chunk-2K3ISCQ6.js} +1 -1
- package/dist/chunks/{chunk-BL3HBRF6.js → chunk-2TUVL6WE.js} +1 -1
- package/dist/chunks/{chunk-22FDWPWY.js → chunk-363SJ4TN.js} +1 -1
- package/dist/chunks/chunk-462YCCJZ.js +7 -0
- package/dist/chunks/{chunk-KNLGWGUE.js → chunk-4N6LMERQ.js} +6 -6
- package/dist/chunks/chunk-527GBU3K.js +7 -0
- package/dist/chunks/chunk-5IWFRZQT.js +10 -0
- package/dist/chunks/chunk-5KUUMQ3M.js +7 -0
- package/dist/chunks/{chunk-IVSC7ZFJ.js → chunk-5V53NA6C.js} +1 -1
- package/dist/chunks/chunk-6I6QJHCY.js +7 -0
- package/dist/chunks/chunk-6TXEVQA4.js +7 -0
- package/dist/chunks/{chunk-2PKEEQ5W.js → chunk-6YXIWZ3X.js} +1 -1
- package/dist/chunks/{chunk-7HV7O6DM.js → chunk-7E3WREH5.js} +1 -1
- package/dist/chunks/{chunk-Y6AGOERS.js → chunk-7L5QUDUR.js} +1 -1
- package/dist/chunks/{chunk-X4762EE4.js → chunk-7QAGSRCU.js} +1 -1
- package/dist/chunks/{chunk-NTZ5WWYV.js → chunk-7R6TRRG5.js} +1 -1
- package/dist/chunks/{chunk-WCWP4GBR.js → chunk-AYUUSAB7.js} +1 -1
- package/dist/chunks/chunk-BVGGTBYE.js +7 -0
- package/dist/chunks/{chunk-YN3C5BL5.js → chunk-C7FQMC6D.js} +1 -1
- package/dist/chunks/{chunk-2U7DJZSQ.js → chunk-CBVKB3DT.js} +1 -1
- package/dist/chunks/{chunk-FDNYYENK.js → chunk-CC6FLKIP.js} +1 -1
- package/dist/chunks/chunk-CR3NBTHV.js +7 -0
- package/dist/chunks/{chunk-BBKEP7RO.js → chunk-CWM2F235.js} +1 -1
- package/dist/chunks/{chunk-IUXSJWL3.js → chunk-DKJL2KV7.js} +1 -1
- package/dist/chunks/{chunk-2ACMWVTB.js → chunk-DQ2SVW4R.js} +1 -1
- package/dist/chunks/{chunk-SLI2O5X7.js → chunk-EAXMWCOL.js} +2 -2
- package/dist/chunks/{chunk-LRYGNQ6C.js → chunk-ECEDD646.js} +1 -1
- package/dist/chunks/{chunk-IGDG5CWT.js → chunk-EEUJLJEJ.js} +1 -1
- package/dist/chunks/{chunk-VQSLPYAF.js → chunk-EGNR2DEI.js} +1 -1
- package/dist/chunks/chunk-EISD3RG7.js +11 -0
- package/dist/chunks/{chunk-GVTXA6HG.js → chunk-EKZTFGDX.js} +1 -1
- package/dist/chunks/{chunk-CEMPU323.js → chunk-EU2GBIPC.js} +1 -1
- package/dist/chunks/{chunk-3ADDGPEN.js → chunk-F6EBOT64.js} +1 -1
- package/dist/chunks/chunk-FHU2O7ZJ.js +8 -0
- package/dist/chunks/{chunk-KH6565YH.js → chunk-FLHO75XC.js} +1 -1
- package/dist/chunks/chunk-FSPPKNKN.js +7 -0
- package/dist/chunks/{chunk-43GBAKL2.js → chunk-GCZVIDNG.js} +1 -1
- package/dist/chunks/{chunk-G4T7VBGN.js → chunk-HSFKISDH.js} +1 -1
- package/dist/chunks/{chunk-OQCMRU3J.js → chunk-HTXDC7E2.js} +2 -2
- package/dist/chunks/{chunk-76SVVWPH.js → chunk-IOZ3I765.js} +1 -1
- package/dist/chunks/{chunk-UKQMYTWW.js → chunk-JLE7K4SY.js} +1 -1
- package/dist/chunks/{chunk-3JGBBS6V.js → chunk-JP33AIDQ.js} +1 -1
- package/dist/chunks/{chunk-ULHNMQ7C.js → chunk-JRPNHWA3.js} +1 -1
- package/dist/chunks/{chunk-D2BZMGHP.js → chunk-JUSR7V2L.js} +1 -1
- package/dist/chunks/{chunk-XB4SKARZ.js → chunk-JWCEHQQF.js} +1 -1
- package/dist/chunks/chunk-K5U47EVH.js +7 -0
- package/dist/chunks/{chunk-VOCZ34ON.js → chunk-KCKYPLIH.js} +1 -1
- package/dist/chunks/{chunk-2WYYGGEO.js → chunk-KGBIRIFF.js} +1 -1
- package/dist/chunks/{chunk-RRREFECI.js → chunk-KJA2GKPT.js} +1 -1
- package/dist/chunks/{chunk-S5IWVPYT.js → chunk-KPQLUGFI.js} +1 -1
- package/dist/chunks/{chunk-S4SJ7GIZ.js → chunk-KQCFC2JL.js} +1 -1
- package/dist/chunks/{chunk-XXXRTHTP.js → chunk-KQCROPL3.js} +1 -1
- package/dist/chunks/{chunk-3KKFLKQG.js → chunk-KY335KWI.js} +1 -1
- package/dist/chunks/{chunk-OWOWPOIE.js → chunk-L3JYCXVB.js} +1 -1
- package/dist/chunks/chunk-LFOWP74R.js +7 -0
- package/dist/chunks/{chunk-PFNYWWLI.js → chunk-LOBA3E72.js} +1 -1
- package/dist/chunks/{chunk-XZV4BFM5.js → chunk-LQVSU5HR.js} +1 -1
- package/dist/chunks/{chunk-2H3SB5RP.js → chunk-LW4N3CW6.js} +1 -1
- package/dist/chunks/{chunk-6ISAISGD.js → chunk-M2NXKZKX.js} +1 -1
- package/dist/chunks/{chunk-F2SWJEYV.js → chunk-MBEKRUTQ.js} +1 -1
- package/dist/chunks/{chunk-UJSW56GS.js → chunk-N2FLYCCO.js} +1 -1
- package/dist/chunks/{chunk-ZH6KHD55.js → chunk-N6JBQMOF.js} +2 -2
- package/dist/chunks/{chunk-OCQPXOTX.js → chunk-NAX6IARA.js} +1 -1
- package/dist/chunks/{chunk-4UGHFESV.js → chunk-NGKO2OOU.js} +1 -1
- package/dist/chunks/chunk-NW7WWUCQ.js +9 -0
- package/dist/chunks/chunk-O4WNSKQR.js +15 -0
- package/dist/chunks/{chunk-7Z3WUAO5.js → chunk-O72YDZKD.js} +1 -1
- package/dist/chunks/{chunk-LKLH6DZP.js → chunk-OHEOYFBU.js} +1 -1
- package/dist/chunks/{chunk-LJBUJ23M.js → chunk-OZCQTXI4.js} +1 -1
- package/dist/chunks/{chunk-LCHECISY.js → chunk-Q4KTAQB3.js} +1 -1
- package/dist/chunks/{chunk-TZFDVQ72.js → chunk-QIVX6SCR.js} +1 -1
- package/dist/chunks/{chunk-7Y46LB43.js → chunk-QVHXFHBV.js} +1 -1
- package/dist/chunks/chunk-QVXS234E.js +7 -0
- package/dist/chunks/{chunk-SXOSF4O6.js → chunk-QVZAAMGQ.js} +1 -1
- package/dist/chunks/chunk-R2BUF6Z7.js +7 -0
- package/dist/chunks/{chunk-OGPENBY2.js → chunk-R2XHJDAP.js} +1 -1
- package/dist/chunks/{chunk-E6CO6TUM.js → chunk-RMZTB2IU.js} +1 -1
- package/dist/chunks/{chunk-LT3UK4K6.js → chunk-SLGUYM42.js} +1 -1
- package/dist/chunks/{chunk-7BGKE3JW.js → chunk-SYFG2RM6.js} +1 -1
- package/dist/chunks/chunk-T6243EDS.js +7 -0
- package/dist/chunks/chunk-TAISZMA2.js +7 -0
- package/dist/chunks/{chunk-TO5PJDEN.js → chunk-TEYREL44.js} +1 -1
- package/dist/chunks/{chunk-6KVHNQW4.js → chunk-TIPQQ4TG.js} +1 -1
- package/dist/chunks/{chunk-DUT4U5YY.js → chunk-U2OBPULW.js} +1 -1
- package/dist/chunks/{chunk-OQPXJCMK.js → chunk-UGNIIDHR.js} +1 -1
- package/dist/chunks/{chunk-NQWGRKF4.js → chunk-UHBMX3OK.js} +1 -1
- package/dist/chunks/{chunk-QMCHGGDX.js → chunk-VNIKIQVE.js} +1 -1
- package/dist/chunks/{chunk-DGYHWXD2.js → chunk-WDXW6A4H.js} +2 -2
- package/dist/chunks/{chunk-L4NSF346.js → chunk-WEH6XC4Y.js} +1 -1
- package/dist/chunks/{chunk-TKBORMUF.js → chunk-WKZ6JSGZ.js} +1 -1
- package/dist/chunks/{chunk-WGXKX24Q.js → chunk-WVHCBDTB.js} +1 -1
- package/dist/chunks/{chunk-COM5YCHF.js → chunk-XC46OAAT.js} +1 -1
- package/dist/chunks/{chunk-WBF36MYT.js → chunk-XVDRGWXM.js} +1 -1
- package/dist/chunks/{chunk-IKQTP764.js → chunk-Y5ZMKL7E.js} +1 -1
- package/dist/chunks/{chunk-NEFDNROD.js → chunk-YEZJNXQX.js} +1 -1
- package/dist/chunks/{chunk-VMMMBWD3.js → chunk-YHULP2KK.js} +1 -1
- package/dist/chunks/{chunk-OMCGXRSA.js → chunk-YMZ6WBKB.js} +2 -2
- package/dist/chunks/{chunk-URPEIX6M.js → chunk-ZN6CQWVP.js} +1 -1
- package/dist/chunks/{chunk-YK7XLFU2.js → chunk-ZQBSAMFL.js} +1 -1
- package/dist/chunks/clear-FKVWDCVA.js +8 -0
- package/dist/chunks/{compile-vercel-config-3IYM2CHC.js → compile-vercel-config-GWAJE44R.js} +1 -1
- package/dist/chunks/config-5WVLG5SE.js +8 -0
- package/dist/chunks/{config-ZFIC7N4D.js → config-RMOHN5YT.js} +1 -1
- package/dist/chunks/config-validator.mjs +1 -1
- package/dist/chunks/{constants-ICJL2EO5.js → constants-JAB7MRSK.js} +1 -1
- package/dist/chunks/delete-5WMB4WFR.js +9 -0
- package/dist/chunks/delete-EM4JZPFA.js +10 -0
- package/dist/chunks/{detect-services-MOXTX5XG.js → detect-services-BSJGB4RM.js} +1 -1
- package/dist/chunks/disable-QOM7UHQC.js +7 -0
- package/dist/chunks/discard-L5ZH7P5B.js +14 -0
- package/dist/chunks/edit-F3VJGCG2.js +9 -0
- package/dist/chunks/edit-TM7YCWBU.js +8 -0
- package/dist/chunks/enable-72C3QX34.js +7 -0
- package/dist/chunks/{export-MHSH7QCX.js → export-EPLYZF2Q.js} +1 -1
- package/dist/chunks/{future-FFOGTKMF.js → future-V77DRMQG.js} +1 -1
- package/dist/chunks/generate-cert-for-deploy-Y3YHBMPU.js +7 -0
- package/dist/chunks/{image-7METSS6F.js → image-CVXEXU5R.js} +1 -1
- package/dist/chunks/{import-builders-GM2SERWV.js → import-builders-PGRKJOOE.js} +1 -1
- package/dist/chunks/inspect-BTRNXRJT.js +9 -0
- package/dist/chunks/{inspect-IAWVHJXQ.js → inspect-CZ7WXYE5.js} +1 -1
- package/dist/chunks/inspect-FGDVWAQP.js +13 -0
- package/dist/chunks/{inspect-A7WJQQZO.js → inspect-HFDGZNWC.js} +1 -1
- package/dist/chunks/{inspect-DI434TAM.js → inspect-T2AIREYK.js} +1 -1
- package/dist/chunks/list-CKRRHAOE.js +12 -0
- package/dist/chunks/{list-WWU734RK.js → list-FLREMGJR.js} +1 -1
- package/dist/chunks/{list-INRPH25K.js → list-ON4YTQRN.js} +1 -1
- package/dist/chunks/login-55LJ5ZA6.js +9 -0
- package/dist/chunks/{login-R5NQRPQC.js → login-DQRZSD4Z.js} +1 -1
- package/dist/chunks/logs-2HQXWOHM.js +7 -0
- package/dist/chunks/{ls-S5E2NQMI.js → ls-2HUJHVLA.js} +1 -1
- package/dist/chunks/{ls-V2ZSIVO3.js → ls-3DVM5HLK.js} +1 -1
- package/dist/chunks/ls-4B3QYHCI.js +8 -0
- package/dist/chunks/{ls-MCQ2NS65.js → ls-A7K4XDQB.js} +1 -1
- package/dist/chunks/{ls-LIGIBVAT.js → ls-FK5XEJEU.js} +1 -1
- package/dist/chunks/{ls-VXH4QYF5.js → ls-QGUKJJY5.js} +1 -1
- package/dist/chunks/ls-VTKHPDWS.js +11 -0
- package/dist/chunks/mutate-7ADZBCZM.js +9 -0
- package/dist/chunks/{notifications-KFZ333V5.js → notifications-XZJXE2K4.js} +1 -1
- package/dist/chunks/open-EE5IZQD7.js +7 -0
- package/dist/chunks/{openapi-JGYEFJJV.js → openapi-QBX62ZXC.js} +1 -1
- package/dist/chunks/{permissions-ZSHKMXBZ.js → permissions-VYJ4LL5R.js} +1 -1
- package/dist/chunks/{plugin-offer-Z6FCPQFD.js → plugin-offer-TEGYA3TA.js} +1 -1
- package/dist/chunks/{prompt-missing-credentials-KOA7C4QC.js → prompt-missing-credentials-VP6OVCFM.js} +1 -1
- package/dist/chunks/publish-2HEK5UMJ.js +15 -0
- package/dist/chunks/pull-WRTTSY7J.js +7 -0
- package/dist/chunks/purchase-domain-if-available-6S3NLTUI.js +7 -0
- package/dist/chunks/push-L3QRGGLC.js +7 -0
- package/dist/chunks/{query-JGPO7TNY.js → query-FXXLX6UB.js} +3 -3
- package/dist/chunks/{reauthenticate-OZRQFR66.js → reauthenticate-IXQDC4UZ.js} +1 -1
- package/dist/chunks/reorder-B4OXSYCI.js +10 -0
- package/dist/chunks/reply-F637K6XH.js +9 -0
- package/dist/chunks/resolve-E3F6NYQZ.js +12 -0
- package/dist/chunks/{resolve-agent-team-KX77HEAF.js → resolve-agent-team-EIPCH766.js} +1 -1
- package/dist/chunks/restore-Q25KRZPH.js +16 -0
- package/dist/chunks/rm-FWD2NUGX.js +8 -0
- package/dist/chunks/rm-JMQ4QKCC.js +8 -0
- package/dist/chunks/rm-PPG7P3GN.js +8 -0
- package/dist/chunks/rm-SH3DYKNS.js +8 -0
- package/dist/chunks/rm-UEBLKFVC.js +8 -0
- package/dist/chunks/{routes-P6LKQCWH.js → routes-PKTWMDWQ.js} +1 -1
- package/dist/chunks/rule-inspect-LKQA5I4V.js +8 -0
- package/dist/chunks/{schema-YOEAK4VX.js → schema-FBV42W7N.js} +1 -1
- package/dist/chunks/{schema-BEUO7G52.js → schema-ZWE5MNMG.js} +1 -1
- package/dist/chunks/{select-org-OMLGQEKK.js → select-org-WMB752Z6.js} +1 -1
- package/dist/chunks/set-UTYIPOLC.js +7 -0
- package/dist/chunks/setup-and-link-ZLY5XQW5.js +7 -0
- package/dist/chunks/{skills-4J2NC2QI.js → skills-RKIGVVNM.js} +2 -2
- package/dist/chunks/{tags-ZXZQEXOV.js → tags-UCLZ5UMX.js} +1 -1
- package/dist/chunks/{types-SK6J2HFE.js → types-YM7TMHXW.js} +1 -1
- package/dist/chunks/{update-25CKNOY5.js → update-BGDQ5TXO.js} +1 -1
- package/dist/commands/build/index.js +1 -1
- package/dist/commands/deploy/index.js +4 -4
- package/dist/commands/dev/index.js +4 -4
- 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 +8 -8
- package/dist/commands-account.js +8 -8
- package/dist/commands-ai.js +12 -12
- package/dist/commands-blob.js +8 -8
- package/dist/commands-core.js +11 -11
- package/dist/commands-deployments.js +1 -1
- package/dist/commands-flags.js +6 -6
- package/dist/commands-integrations.js +16 -16
- package/dist/commands-observability.js +5 -5
- package/dist/commands-routing.js +18 -18
- package/dist/help.js +1 -1
- package/dist/index.js +5 -3
- package/dist/internal-build.js +1 -1
- package/dist/package.json +60 -61
- package/dist/root-help-commands.mjs +1 -1
- package/dist/vc.js +148 -137
- package/dist/version.mjs +1 -1
- package/package.json +54 -54
- package/dist/chunks/add-5YZQTIQM.js +0 -8
- package/dist/chunks/add-A524QQ2H.js +0 -8
- package/dist/chunks/add-V4JMUHKO.js +0 -8
- package/dist/chunks/build-K2PVDJZ4.js +0 -7
- package/dist/chunks/chunk-3AYYFYZG.js +0 -7
- package/dist/chunks/chunk-5IASAERQ.js +0 -7
- package/dist/chunks/chunk-76KGQU2G.js +0 -7
- package/dist/chunks/chunk-ABZEMNDR.js +0 -7
- package/dist/chunks/chunk-APZULWJC.js +0 -8
- package/dist/chunks/chunk-AWMQGOS2.js +0 -7
- package/dist/chunks/chunk-B4UE4LVE.js +0 -7
- package/dist/chunks/chunk-B4YYOSPY.js +0 -7
- package/dist/chunks/chunk-E2SADN6I.js +0 -7
- package/dist/chunks/chunk-IA3MXJRC.js +0 -8
- package/dist/chunks/chunk-IEPW2YRH.js +0 -7
- package/dist/chunks/chunk-LUBUI5GF.js +0 -7
- package/dist/chunks/chunk-OKEBIUKZ.js +0 -7
- package/dist/chunks/chunk-QZX7VG2V.js +0 -9
- package/dist/chunks/chunk-RUXO73ON.js +0 -7
- package/dist/chunks/chunk-TPNOSQZ3.js +0 -15
- package/dist/chunks/chunk-UNEGQPD3.js +0 -7
- package/dist/chunks/chunk-V7BEC3E4.js +0 -10
- package/dist/chunks/chunk-YHQ7PPXP.js +0 -7
- package/dist/chunks/clear-ZS4KQ7OT.js +0 -8
- package/dist/chunks/config-N2SBVW4T.js +0 -8
- package/dist/chunks/delete-2ZE2NVHI.js +0 -10
- package/dist/chunks/delete-AL57HZDQ.js +0 -9
- package/dist/chunks/disable-MKI3BKNH.js +0 -7
- package/dist/chunks/discard-SI4H7ST3.js +0 -14
- package/dist/chunks/edit-DNWH6SPE.js +0 -8
- package/dist/chunks/edit-WYNWDFUJ.js +0 -9
- package/dist/chunks/enable-J6MMYPYF.js +0 -7
- package/dist/chunks/generate-cert-for-deploy-YZKNGAEQ.js +0 -7
- package/dist/chunks/inspect-H2Q7XOWN.js +0 -13
- package/dist/chunks/inspect-H5JC2XKI.js +0 -9
- package/dist/chunks/list-ELEUTZWJ.js +0 -12
- package/dist/chunks/login-ZF2TLCQB.js +0 -9
- package/dist/chunks/logs-UD7FEXZ7.js +0 -7
- package/dist/chunks/ls-5ZEAKKPQ.js +0 -8
- package/dist/chunks/ls-IXRLAJ4L.js +0 -11
- package/dist/chunks/mutate-OQWOKLIW.js +0 -9
- package/dist/chunks/open-HH6K7ZRC.js +0 -7
- package/dist/chunks/publish-FPNQ2US4.js +0 -15
- package/dist/chunks/pull-7OGOIKB3.js +0 -7
- package/dist/chunks/purchase-domain-if-available-F4LKHVBD.js +0 -7
- package/dist/chunks/push-NY3SIK2C.js +0 -7
- package/dist/chunks/reorder-4J2STFUS.js +0 -10
- package/dist/chunks/reply-EO4NTTPW.js +0 -9
- package/dist/chunks/resolve-RPHHRPNM.js +0 -12
- package/dist/chunks/restore-TEA6TSVK.js +0 -16
- package/dist/chunks/rm-BPILSPUI.js +0 -8
- package/dist/chunks/rm-F6XVUDBM.js +0 -8
- package/dist/chunks/rm-JCPXV2FN.js +0 -8
- package/dist/chunks/rm-LPQRGX7N.js +0 -8
- package/dist/chunks/rm-WHUGT6TE.js +0 -8
- package/dist/chunks/rule-inspect-BOETGPFO.js +0 -8
- package/dist/chunks/set-5XY27S7R.js +0 -7
- package/dist/chunks/setup-and-link-A7M3QT52.js +0 -7
|
@@ -1,7 +0,0 @@
|
|
|
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{formatOption,jsonOption,limitOption,projectOption,yesOption}from"./chunk-AWMQGOS2.js";import{packageName}from"./chunk-JESNVRVR.js";var projectScopeOption={...projectOption,shorthand:"p",description:"Project name or ID (default: linked project)."},nextOption={name:"next",shorthand:null,type:String,deprecated:!1,description:"Continue from a previous response",argument:"CURSOR"},cursorOption={name:"cursor",shorthand:"c",type:String,deprecated:!0,description:"Cursor from a previous page to continue listing from",argument:"STRING"},imageLsSubcommand={name:"ls",aliases:["list"],description:"List images in a container registry repository",arguments:[{name:"repository",required:!0}],options:[projectScopeOption,{name:"untagged",shorthand:null,type:Boolean,deprecated:!1,description:"Only list images that have no tags"},limitOption,nextOption,cursorOption,formatOption,jsonOption],examples:[{name:"List images in a repository",value:`${packageName} vcr image ls my-app`},{name:"List untagged images as JSON",value:`${packageName} vcr image ls my-app --untagged --json`}]},imageInspectSubcommand={name:"inspect",aliases:["get"],description:"Show details for a single image, including its layer history",arguments:[{name:"repository",required:!0},{name:"imageId",required:!0}],options:[projectScopeOption,formatOption,jsonOption],examples:[{name:"Inspect an image by id",value:`${packageName} vcr image inspect my-app img_abc123`}]},imageRmSubcommand={name:"delete",aliases:["rm","del","remove"],description:"Delete an image from a repository",arguments:[{name:"repository",required:!0},{name:"imageId",required:!0}],options:[projectScopeOption,yesOption,formatOption,jsonOption],examples:[{name:"Delete an image by id",value:`${packageName} vcr image delete my-app img_abc123`},{name:"Delete an image without the confirmation prompt",value:`${packageName} vcr image delete my-app img_abc123 --yes`}]},imageAggregateCommand={name:"image",aliases:["images"],description:"List, inspect, or delete images in a repository",arguments:[],subcommands:[imageLsSubcommand,imageInspectSubcommand,imageRmSubcommand],options:[],examples:[]};export{imageLsSubcommand,imageInspectSubcommand,imageRmSubcommand,imageAggregateCommand};
|
|
@@ -1,10 +0,0 @@
|
|
|
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{require_ci_info}from"./chunk-2EYYB6YN.js";import{commands,commandsStructs}from"./chunk-TPNOSQZ3.js";import{help,resolveHelpTarget}from"./chunk-KH6565YH.js";import{printError}from"./chunk-G4T7VBGN.js";import{TelemetryClient}from"./chunk-2PKEEQ5W.js";import{AGENT_STATUS,shouldEmitNonInteractiveCommandError,writeAgentError}from"./chunk-DGYHWXD2.js";import{parseArguments,takeCommand}from"./chunk-VOCZ34ON.js";import{getFlagsSpecification,globalCliFlagTakesValue}from"./chunk-AWMQGOS2.js";import{getCommandName,getCommandNamePlain}from"./chunk-JESNVRVR.js";import{output_manager_default}from"./chunk-XP3FT56R.js";import{__toESM}from"./chunk-BZENIQ7N.js";var import_ci_info=__toESM(require_ci_info(),1);var RootTelemetryClient=class extends TelemetryClient{trackCliExtension(){this.trackExtension()}trackCliDefaultDeploy(defaultDeploy){defaultDeploy&&this.trackDefaultDeploy()}trackCliCommandAgent(actual){this.trackCliCommand({command:"agent",value:actual})}trackCliCommandAgentRuns(actual){this.trackCliCommand({command:"agent-runs",value:actual})}trackCliCommandAiGateway(actual){this.trackCliCommand({command:"ai-gateway",value:actual})}trackCliCommandTokenPass(actual){this.trackCliCommand({command:"token-pass",value:actual})}trackCliCommandAlias(actual){this.trackCliCommand({command:"alias",value:actual})}trackCliCommandActivity(actual){this.trackCliCommand({command:"activity",value:actual})}trackCliCommandAlerts(actual){this.trackCliCommand({command:"alerts",value:actual})}trackCliCommandApi(actual){this.trackCliCommand({command:"api",value:actual})}trackCliCommandBisect(actual){this.trackCliCommand({command:"bisect",value:actual})}trackCliCommandBlob(actual){this.trackCliCommand({command:"blob",value:actual})}trackCliCommandBudgets(actual){this.trackCliCommand({command:"budgets",value:actual})}trackCliCommandBuild(actual){this.trackCliCommand({command:"build",value:actual})}trackCliCommandBuy(actual){this.trackCliCommand({command:"buy",value:actual})}trackCliCommandCache(actual){this.trackCliCommand({command:"cache",value:actual})}trackCliCommandCerts(actual){this.trackCliCommand({command:"certs",value:actual})}trackCliCommandCi(actual){this.trackCliCommand({command:"ci",value:actual})}trackCliCommandChangelog(actual){this.trackCliCommand({command:"changelog",value:actual})}trackCliCommandComments(actual){this.trackCliCommand({command:"comments",value:actual})}trackCliCommandConnex(actual){this.trackCliCommand({command:"connect",value:actual})}trackCliCommandContract(actual){this.trackCliCommand({command:"contract",value:actual})}trackCliCommandCrons(actual){this.trackCliCommand({command:"crons",value:actual})}trackCliCommandCurl(actual){this.trackCliCommand({command:"curl",value:actual})}trackCliCommandDaemons(actual){this.trackCliCommand({command:"daemons",value:actual})}trackCliCommandDeploy(actual){this.trackCliCommand({command:"deploy",value:actual})}trackCliCommandDeployHooks(actual){this.trackCliCommand({command:"deploy-hooks",value:actual})}trackCliCommandDev(actual){this.trackCliCommand({command:"dev",value:actual})}trackCliCommandDomains(actual){this.trackCliCommand({command:"domains",value:actual})}trackCliCommandDrains(actual){this.trackCliCommand({command:"drains",value:actual})}trackCliCommandDns(actual){this.trackCliCommand({command:"dns",value:actual})}trackCliCommandEnv(actual){this.trackCliCommand({command:"env",value:actual})}trackCliCommandExperiments(actual){this.trackCliCommand({command:"experiments",value:actual})}trackCliCommandFirewall(actual){this.trackCliCommand({command:"firewall",value:actual})}trackCliCommandFlags(actual){this.trackCliCommand({command:"flags",value:actual})}trackCliCommandGit(actual){this.trackCliCommand({command:"git",value:actual})}trackCliCommandGlobalConfig(actual){this.trackCliCommand({command:"global-config",value:actual})}trackCliCommandGuidance(actual){this.trackCliCommand({command:"guidance",value:actual})}trackCliCommandHealth(actual){this.trackCliCommand({command:"health",value:actual})}trackCliCommandHelp(actual){this.trackCliCommand({command:"help",value:actual})}trackCliCommandHttpstat(actual){this.trackCliCommand({command:"httpstat",value:actual})}trackCliCommandInit(actual){this.trackCliCommand({command:"init",value:actual})}trackCliCommandInspect(actual){this.trackCliCommand({command:"inspect",value:actual})}trackCliCommandInstall(actual){this.trackCliCommand({command:"install",value:actual})}trackCliCommandIntegration(actual){this.trackCliCommand({command:"integration",value:actual})}trackCliCommandIntegrationResource(actual){this.trackCliCommand({command:"integration-resource",value:actual})}trackCliCommandKms(actual){this.trackCliCommand({command:"kms",value:actual})}trackCliCommandLink(actual){this.trackCliCommand({command:"link",value:actual})}trackCliCommandList(actual){this.trackCliCommand({command:"list",value:actual})}trackCliCommandLogin(actual){this.trackCliCommand({command:"login",value:actual})}trackCliCommandLogout(actual){this.trackCliCommand({command:"logout",value:actual})}trackCliCommandLogs(actual){this.trackCliCommand({command:"logs",value:actual})}trackCliCommandMetrics(actual){this.trackCliCommand({command:"metrics",value:actual})}trackCliCommandMicrofrontends(actual){this.trackCliCommand({command:"microfrontends",value:actual})}trackCliCommandMonitors(actual){this.trackCliCommand({command:"monitors",value:actual})}trackCliCommandOpen(actual){this.trackCliCommand({command:"open",value:actual})}trackCliCommandFeedback(actual){this.trackCliCommand({command:"feedback",value:actual})}trackCliCommandPricing(actual){this.trackCliCommand({command:"pricing",value:actual})}trackCliCommandProject(actual){this.trackCliCommand({command:"project",value:actual})}trackCliCommandPromote(actual){this.trackCliCommand({command:"promote",value:actual})}trackCliCommandPull(actual){this.trackCliCommand({command:"pull",value:actual})}trackCliCommandRollback(actual){this.trackCliCommand({command:"rollback",value:actual})}trackCliCommandRollingRelease(actual){this.trackCliCommand({command:"rolling-release",value:actual})}trackCliCommandRedeploy(actual){this.trackCliCommand({command:"redeploy",value:actual})}trackCliCommandRedirects(actual){this.trackCliCommand({command:"redirects",value:actual})}trackCliCommandRoutes(actual){this.trackCliCommand({command:"routes",value:actual})}trackCliCommandRemove(actual){this.trackCliCommand({command:"remove",value:actual})}trackCliCommandSignup(actual){this.trackCliCommand({command:"signup",value:actual})}trackCliCommandSkills(actual){this.trackCliCommand({command:"skills",value:actual})}trackCliCommandSetup(actual){this.trackCliCommand({command:"setup",value:actual})}trackCliCommandSandbox(actual){this.trackCliCommand({command:"sandbox",value:actual})}trackCliCommandSchedules(actual){this.trackCliCommand({command:"schedules",value:actual})}trackCliCommandSecurity(actual){this.trackCliCommand({command:"security",value:actual})}trackCliCommandStorage(actual){this.trackCliCommand({command:"storage",value:actual})}trackCliCommandEnvironments(actual){this.trackCliCommand({command:"environments",value:actual})}trackCliCommandTeams(actual){this.trackCliCommand({command:"teams",value:actual})}trackCliCommandOrganizations(actual){this.trackCliCommand({command:"organizations",value:actual})}trackCliCommandTokens(actual){this.trackCliCommand({command:"tokens",value:actual})}trackCliCommandTelemetry(actual){this.trackCliCommand({command:"telemetry",value:actual})}trackCliCommandTraces(actual){this.trackCliCommand({command:"traces",value:actual})}trackCliCommandWhoami(actual){this.trackCliCommand({command:"whoami",value:actual})}trackCliCommandUpgrade(actual){this.trackCliCommand({command:"upgrade",value:actual})}trackCliCommandVersion(actual){this.trackCliCommand({command:"version",value:actual})}trackCliCommandWebhooks(actual){this.trackCliCommand({command:"webhooks",value:actual})}trackCliCommandUsage(actual){this.trackCliCommand({command:"usage",value:actual})}trackCliCommandVcr(actual){this.trackCliCommand({command:"vcr",value:actual})}trackCPUs(){super.trackCPUs()}trackAgenticUse(agent){super.trackAgenticUse(agent)}trackArch(){super.trackArch()}trackPlatform(){super.trackPlatform()}trackLibc(libc){super.trackLibc(libc)}trackCIVendorName(){this.trackCI(import_ci_info.default.id)}trackStdinIsTTY(isTTY){super.trackStdinIsTTY(isTTY)}trackVersion(version){super.trackVersion(version)}trackProjectId(projectId){super.trackProjectId(projectId)}trackInvocationId(invocationId){super.trackInvocationId(invocationId)}trackDeviceId(deviceId){super.trackDeviceId(deviceId)}trackVercelPluginActiveSession(){super.trackVercelPluginActiveSession()}trackVercelPluginVersion(version){super.trackVercelPluginVersion(version)}trackErrorStatus(status){super.trackErrorStatus(status)}trackErrorCode(code){super.trackErrorCode(code)}trackErrorSlug(slug){super.trackErrorSlug(slug)}trackErrorAction(action){super.trackErrorAction(action)}trackErrorServerMessage(serverMessage){super.trackErrorServerMessage(serverMessage)}trackCliOptionCwd(cwd){cwd&&this.trackCliOption({option:"cwd",value:this.redactedValue})}trackCliOptionLocalConfig(localConfig){localConfig&&this.trackCliOption({option:"local-config",value:this.redactedValue})}trackCliOptionGlobalConfig(globalConfig){globalConfig&&this.trackCliOption({option:"global-config",value:this.redactedValue})}trackCliOptionScope(scope){scope&&this.trackCliOption({option:"scope",value:this.redactedValue})}trackCliOptionToken(token){token&&this.trackCliOption({option:"token",value:this.redactedValue})}trackCliOptionTeam(team){team&&this.trackCliOption({option:"team",value:this.redactedValue})}trackCliOptionApi(api){api&&this.trackCliOption({option:"api",value:this.redactedValue})}trackCliFlagDebug(debug){debug&&this.trackCliFlag("debug")}trackCliFlagNoColor(noColor){noColor&&this.trackCliFlag("no-color")}trackCliDeprecatedShorthands(shorthands){for(let shorthand of shorthands)this.trackDeprecatedShorthand(shorthand)}};function printCommandHelp(client,commandName,tokens){let found=findBuiltInCommand(commandName,tokens);if(!found)return;let{root}=found,target=resolveHelpTarget(root,found.tokens);return target.unknownSegment!==void 0?(printUnknownCommand(client,target.unknownSegment,[root.name,...target.typedPath]),2):target.command.dynamicHelp?void 0:(new RootTelemetryClient({opts:{store:client.telemetryEventStore}}).trackCliFlagHelp([root.name,...target.typedPath].join(":")),client.stdout.write(help(target.command,{parent:target.parent,columns:client.stdout.columns??client.stderr.columns})),0)}function printGroupHelp(client,commandName,tokens){let found=findBuiltInCommand(commandName,tokens);if(!found)return;let{root}=found,target=resolveHelpTarget(root,found.tokens),{command}=target;if(!(target.unknownSegment!==void 0||!command.subcommands?.length||command.arguments.length>0||command.runsWithoutSubcommand||command.subcommands.some(subcommand=>subcommand.default))){try{parseArguments([...found.tokens],getFlagsSpecification(getCommandsAlongPath(root,target.typedPath).flatMap(({options})=>options)))}catch(err){return printError(err,client),2}return client.stdout.write(help(command,{parent:target.parent,columns:client.stdout.columns??client.stderr.columns})),0}}function getCommandPathOptions(commandName,tokens){let found=findBuiltInCommand(commandName,tokens);if(!found)return;let{typedPath}=resolveHelpTarget(found.root,found.tokens);return getCommandsAlongPath(found.root,typedPath).flatMap(({options})=>options)}function getCommandsAlongPath(root,typedPath){let path=[root];for(let token of typedPath){let subcommand=path[path.length-1].subcommands?.find(candidate=>candidate.name===token||candidate.aliases.includes(token));if(!subcommand)break;path.push(subcommand)}return path}function findBuiltInCommand(commandName,tokens){let name=commandName?commands.get(commandName):void 0;if(!commandName||!name||name==="sandbox")return;let findRoot=rootName=>commandsStructs.find(command=>command.name===rootName&&"options"in command),root=findRoot(name);if(!root)return;let monitors=root.name==="alerts"?findRoot("monitors"):void 0;if(monitors){let alias=takeAlertsRulesAlias(root,tokens);if(alias)return{root:monitors,tokens:alias}}let namesSubcommand=commandName!==root.name&&root.subcommands?.some(subcommand=>subcommand.name===commandName||subcommand.aliases.includes(commandName));return{root,tokens:namesSubcommand?[commandName,...tokens]:tokens}}function takeAlertsRulesAlias(alerts,tokens){try{let{command,args}=takeCommand([...tokens],getFlagsSpecification(alerts.options));return command==="rules"?args:void 0}catch{return}}function printUnknownCommand(client,segment,groupPath=[]){let group=groupPath.join(" "),message=`Unknown command ${segment} for ${getCommandNamePlain(group||void 0)}.`,helpCommand=group?`${group} --help`:"--help";if(shouldEmitNonInteractiveCommandError(client)){writeAgentError(client,{status:AGENT_STATUS.ERROR,reason:"unknown_command",message,next:[{command:getCommandNamePlain(helpCommand),when:"See all commands"}]});return}output_manager_default.fatal(message),output_manager_default.print(`
|
|
8
|
-
See all commands:
|
|
9
|
-
${getCommandName(helpCommand)}
|
|
10
|
-
`)}function tokensAfterCommand(argv){let args=argv.slice(2);for(let i=0;i<args.length;i++){let arg=args[i];if(arg==="--")return[];if(arg.startsWith("-")){!arg.includes("=")&&globalCliFlagTakesValue(arg)&&i++;continue}return args.slice(i+1)}return[]}export{RootTelemetryClient,printCommandHelp,printGroupHelp,getCommandPathOptions,printUnknownCommand,tokensAfterCommand};
|
|
@@ -1,7 +0,0 @@
|
|
|
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{formatOption,gitBranchOption,jsonOption,limitOption,nextCursorOption,projectOption,yesOption}from"./chunk-AWMQGOS2.js";import{packageName}from"./chunk-JESNVRVR.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-id",shorthand:null,type:[String],argument:"ID",deprecated:!1,description:"Filter by CMS content ID (repeatable)"},{name:"search",shorthand:null,type:String,argument:"TEXT",deprecated:!1,description:"Search comment content"},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};
|
|
@@ -1,8 +0,0 @@
|
|
|
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{repositoryPermissionsClearPath}from"./chunk-DFVNL5ML.js";import{emitVcrArgParseError,handleVcrApiError,requireVcrRepository,resolveVcrScope,validateVcrJsonOutput}from"./chunk-7BGKE3JW.js";import"./chunk-RW3X523R.js";import"./chunk-BUJITHGZ.js";import"./chunk-FBYA6LLM.js";import"./chunk-GD7AV7BO.js";import"./chunk-SCV7XEEO.js";import{permissionsClearSubcommand}from"./chunk-3AYYFYZG.js";import{printError}from"./chunk-G4T7VBGN.js";import"./chunk-B4UE4LVE.js";import"./chunk-MXTC4ZAQ.js";import"./chunk-FGFLTLEA.js";import{AGENT_REASON,buildCommandWithYes,outputAgentError}from"./chunk-DGYHWXD2.js";import"./chunk-IUXSJWL3.js";import"./chunk-KNLGWGUE.js";import"./chunk-ADLBLGT3.js";import"./chunk-BBKEP7RO.js";import"./chunk-4NTBYNFR.js";import{parseArguments}from"./chunk-VOCZ34ON.js";import"./chunk-F53OKXYI.js";import{getFlagsSpecification}from"./chunk-AWMQGOS2.js";import"./chunk-FUX6LKNP.js";import"./chunk-OPORM35X.js";import"./chunk-4SAVH3H7.js";import{isAPIError}from"./chunk-6VH56CX2.js";import"./chunk-JESNVRVR.js";import{output_manager_default}from"./chunk-XP3FT56R.js";import"./chunk-BLUPZPAS.js";import"./chunk-RM3ZDRYE.js";import"./chunk-OO572JUC.js";import"./chunk-D3AHZ5LI.js";import"./chunk-2GHZGOWT.js";import"./chunk-YHPPP3SF.js";import"./chunk-NB2WLB3J.js";import"./chunk-ISWW3DKF.js";import"./chunk-BRQUZ5NC.js";import"./chunk-BZENIQ7N.js";async function clear(client,argv,telemetry){let parsedArgs;try{parsedArgs=parseArguments(argv,getFlagsSpecification(permissionsClearSubcommand.options))}catch(err){return emitVcrArgParseError(client,err,"vcr permissions <repository> clear"),printError(err),2}let fr=validateVcrJsonOutput(client,parsedArgs.flags);if(typeof fr=="number")return fr;let repository=parsedArgs.args[0],project=parsedArgs.flags["--project"],skipConfirmation=!!parsedArgs.flags["--yes"];telemetry.trackCliOptionProject(project),telemetry.trackCliFlagYes(parsedArgs.flags["--yes"]),telemetry.trackCliOptionFormat(parsedArgs.flags["--format"]);let missingRepository=requireVcrRepository(client,repository,fr.jsonOutput,"vcr permissions <repository> clear");if(typeof missingRepository=="number")return missingRepository;let scope=await resolveVcrScope(client,{project,jsonOutput:fr.jsonOutput});if(typeof scope=="number")return scope;if(!skipConfirmation&&(outputAgentError(client,{status:"error",reason:AGENT_REASON.CONFIRMATION_REQUIRED,message:"Clearing repository permissions removes access for every team. Re-run with --yes.",next:[{command:buildCommandWithYes(client.argv)}]},1),!await client.input.confirm(`Remove access to ${repository} for all teams? They will no longer be able to pull its images.`,!1)))return output_manager_default.log("Canceled"),0;let path=repositoryPermissionsClearPath(scope,repository);output_manager_default.spinner("Clearing repository permissions...");try{return await client.fetch(path,{method:"DELETE"}),fr.jsonOutput?client.stdout.write(`${JSON.stringify({repository,cleared:!0},null,2)}
|
|
8
|
-
`):output_manager_default.success(`Cleared repository permissions for ${repository}`),0}catch(err){if(isAPIError(err))return handleVcrApiError(client,err,fr.jsonOutput);throw err}finally{output_manager_default.stopSpinner()}}export{clear as default};
|
|
@@ -1,8 +0,0 @@
|
|
|
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{repositoryPath}from"./chunk-DFVNL5ML.js";import{emitVcrArgParseError,handleVcrApiError,requireVcrRepository,resolveVcrScope,validateVcrJsonOutput}from"./chunk-7BGKE3JW.js";import{outputError}from"./chunk-RW3X523R.js";import"./chunk-BUJITHGZ.js";import"./chunk-FBYA6LLM.js";import{readOnOffOption,rewriteLegacyOnOffValues}from"./chunk-IKQTP764.js";import"./chunk-GD7AV7BO.js";import"./chunk-SCV7XEEO.js";import{configSubcommand}from"./chunk-ABZEMNDR.js";import"./chunk-3AYYFYZG.js";import"./chunk-76KGQU2G.js";import"./chunk-UNEGQPD3.js";import{printError}from"./chunk-G4T7VBGN.js";import"./chunk-B4UE4LVE.js";import"./chunk-MXTC4ZAQ.js";import"./chunk-FGFLTLEA.js";import{AGENT_REASON,buildCommandWithGlobalFlags,outputAgentError}from"./chunk-DGYHWXD2.js";import"./chunk-IUXSJWL3.js";import"./chunk-KNLGWGUE.js";import"./chunk-ADLBLGT3.js";import"./chunk-BBKEP7RO.js";import"./chunk-4NTBYNFR.js";import{parseArguments}from"./chunk-VOCZ34ON.js";import"./chunk-F53OKXYI.js";import{getFlagsSpecification}from"./chunk-AWMQGOS2.js";import"./chunk-FUX6LKNP.js";import"./chunk-OPORM35X.js";import"./chunk-4SAVH3H7.js";import{isAPIError}from"./chunk-6VH56CX2.js";import"./chunk-JESNVRVR.js";import{output_manager_default}from"./chunk-XP3FT56R.js";import"./chunk-BLUPZPAS.js";import"./chunk-RM3ZDRYE.js";import"./chunk-OO572JUC.js";import"./chunk-D3AHZ5LI.js";import"./chunk-2GHZGOWT.js";import"./chunk-YHPPP3SF.js";import"./chunk-NB2WLB3J.js";import"./chunk-ISWW3DKF.js";import"./chunk-BRQUZ5NC.js";import"./chunk-BZENIQ7N.js";var USAGE="vcr update <repository> --public";async function config(client,argv,telemetry){let rewritten=rewriteLegacyOnOffValues(argv,configSubcommand.options,client),parsedArgs;try{parsedArgs=parseArguments("error"in rewritten?argv:rewritten.args,getFlagsSpecification(configSubcommand.options))}catch(err){return emitVcrArgParseError(client,err,USAGE),printError(err),2}let fr=validateVcrJsonOutput(client,parsedArgs.flags);if(typeof fr=="number")return fr;if("error"in rewritten)return outputAgentError(client,{status:"error",reason:AGENT_REASON.INVALID_ARGUMENTS,message:rewritten.error},2),outputError(client,fr.jsonOutput,"INVALID_ARGUMENTS",rewritten.error);let repository=parsedArgs.args[0],project=parsedArgs.flags["--project"],visibility=readOnOffOption(client,parsedArgs.flags,{on:"--public",off:"--no-public"});if("error"in visibility){let err=new Error(visibility.error);return emitVcrArgParseError(client,err,USAGE),outputError(client,fr.jsonOutput,"INVALID_ARGUMENTS",visibility.error)}let desiredPublic=visibility.value;telemetry.trackCliOptionProject(project),telemetry.trackCliOptionFormat(parsedArgs.flags["--format"]),telemetry.trackCliOptionPublic(rewritten.legacy.get("--public")),rewritten.legacy.has("--public")||(telemetry.trackCliFlagPublic(parsedArgs.flags["--public"]),telemetry.trackCliFlagNoPublic(parsedArgs.flags["--no-public"]));let missingRepository=requireVcrRepository(client,repository,fr.jsonOutput,USAGE);if(typeof missingRepository=="number")return missingRepository;if(parsedArgs.args.length>1){let message="`vcr update` takes one repository. Pass --public or --no-public without a value.";return outputAgentError(client,{status:"error",reason:AGENT_REASON.INVALID_ARGUMENTS,message,next:[{command:buildCommandWithGlobalFlags(client.argv,USAGE),when:"Re-run with one repository"}]},2),outputError(client,fr.jsonOutput,"INVALID_ARGUMENTS",message)}if(desiredPublic===void 0){let message="Missing a setting to change. Pass --public to make the repository public, or --no-public to make it private.";return outputAgentError(client,{status:"error",reason:AGENT_REASON.MISSING_ARGUMENTS,message,next:[{command:buildCommandWithGlobalFlags(client.argv,USAGE),when:"Re-run with --public or --no-public"}]},2),outputError(client,fr.jsonOutput,"MISSING_ARGUMENTS",message)}let scope=await resolveVcrScope(client,{project,jsonOutput:fr.jsonOutput});if(typeof scope=="number")return scope;let path=repositoryPath(scope,repository);output_manager_default.spinner("Updating repository...");try{let updated=await client.fetch(path,{method:"PATCH",body:{public:desiredPublic}});if(fr.jsonOutput)client.stdout.write(`${JSON.stringify(updated,null,2)}
|
|
8
|
-
`);else{let isPublic=updated.repository?.public??desiredPublic;output_manager_default.success(`Repository ${updated.repository?.name??repository} is now ${isPublic?"public":"private"}`)}return 0}catch(err){if(isAPIError(err))return handleVcrApiError(client,err,fr.jsonOutput,{retry:{command:buildCommandWithGlobalFlags(client.argv,"vcr ls"),when:"List repositories to confirm the name or id"}});throw err}finally{output_manager_default.stopSpinner()}}export{config as default};
|
|
@@ -1,10 +0,0 @@
|
|
|
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{getRouteVersions}from"./chunk-BVH2AEFE.js";import{getRouteTypeLabel,getRoutes,offerAutoPromote,parseSubcommandArgs,resolveRoutes,withGlobalFlags}from"./chunk-6ISAISGD.js";import{requireProjectContext}from"./chunk-NEFDNROD.js";import{stamp_default}from"./chunk-A2RZZQEP.js";import"./chunk-Q7D7RGXM.js";import"./chunk-3JGBBS6V.js";import"./chunk-BL3HBRF6.js";import{deleteSubcommand}from"./chunk-5IASAERQ.js";import"./chunk-G4T7VBGN.js";import"./chunk-B4UE4LVE.js";import"./chunk-MXTC4ZAQ.js";import"./chunk-FGFLTLEA.js";import{AGENT_REASON,AGENT_STATUS,outputAgentError}from"./chunk-DGYHWXD2.js";import"./chunk-IUXSJWL3.js";import"./chunk-KNLGWGUE.js";import"./chunk-ADLBLGT3.js";import"./chunk-BBKEP7RO.js";import"./chunk-4NTBYNFR.js";import"./chunk-VOCZ34ON.js";import"./chunk-F53OKXYI.js";import"./chunk-AWMQGOS2.js";import"./chunk-FUX6LKNP.js";import"./chunk-OPORM35X.js";import"./chunk-4SAVH3H7.js";import"./chunk-6VH56CX2.js";import"./chunk-JESNVRVR.js";import{output_manager_default}from"./chunk-XP3FT56R.js";import"./chunk-BLUPZPAS.js";import"./chunk-RM3ZDRYE.js";import"./chunk-OO572JUC.js";import"./chunk-D3AHZ5LI.js";import"./chunk-2GHZGOWT.js";import"./chunk-YHPPP3SF.js";import{require_source}from"./chunk-NB2WLB3J.js";import"./chunk-ISWW3DKF.js";import"./chunk-BRQUZ5NC.js";import{__toESM}from"./chunk-BZENIQ7N.js";var import_chalk=__toESM(require_source(),1);async function deleteRoutes(client,projectId,routeIds,options={}){let{teamId}=options,query=new URLSearchParams;teamId&&query.set("teamId",teamId);let queryString=query.toString(),url=`/v1/projects/${projectId}/routes${queryString?`?${queryString}`:""}`;return await client.fetch(url,{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({routeIds})})}async function deleteRoute(client,argv){let parsed=await parseSubcommandArgs(argv,deleteSubcommand,client);if(typeof parsed=="number")return parsed;let link=await requireProjectContext(client,"routes",parsed.flags["--project"]);if(typeof link=="number")return link;let{project,org}=link,teamId=org.type==="team"?org.id:void 0,{args,flags}=parsed,skipConfirmation=flags["--yes"];if(args.length===0)return client.nonInteractive&&outputAgentError(client,{status:AGENT_STATUS.ERROR,reason:AGENT_REASON.MISSING_ARGUMENTS,message:"At least one route name or ID is required.",next:[{command:withGlobalFlags(client,"routes remove <name-or-id> --yes"),when:"pass one or more ids/names and --yes to skip confirm"}]},2),output_manager_default.error(`At least one route name or ID is required. Usage: ${withGlobalFlags(client,"routes remove <name-or-id> [...]")}`),2;let{versions}=await getRouteVersions(client,project.id,{teamId}),existingStagingVersion=versions.find(v=>v.isStaging);output_manager_default.spinner("Fetching routes");let{routes}=await getRoutes(client,project.id,{teamId});if(output_manager_default.stopSpinner(),routes.length===0)return client.nonInteractive&&outputAgentError(client,{status:AGENT_STATUS.ERROR,reason:AGENT_REASON.NOT_FOUND,message:"No routes found in this project."},1),output_manager_default.error("No routes found in this project."),1;let resolved=await resolveRoutes(client,routes,args);if(!resolved)return 1;output_manager_default.print(`
|
|
8
|
-
`),output_manager_default.log(`The following ${resolved.length===1?"route":`${resolved.length} routes`} will be removed:`);for(let route of resolved){let typeLabels=getRouteTypeLabel(route);output_manager_default.print(` ${import_chalk.default.red("\xD7")} ${route.name} ${import_chalk.default.gray(`(${route.route.src})`)} ${import_chalk.default.gray(`[${typeLabels}]`)}
|
|
9
|
-
`)}if(output_manager_default.print(`
|
|
10
|
-
`),!skipConfirmation&&(client.nonInteractive&&outputAgentError(client,{status:AGENT_STATUS.ERROR,reason:AGENT_REASON.CONFIRMATION_REQUIRED,message:"Removing routes requires confirmation. Pass --yes to skip the prompt in non-interactive mode.",next:[{command:withGlobalFlags(client,`routes remove ${args.join(" ")} --yes`),when:"re-run with --yes to confirm without prompt"}]},1),!await client.input.confirm(`Remove ${resolved.length===1?"this route":`these ${resolved.length} routes`}?`,!1)))return output_manager_default.log("Aborted."),0;let deleteStamp=stamp_default();output_manager_default.spinner(`Removing ${resolved.length===1?"route":`${resolved.length} routes`}`);try{let{deletedCount,version}=await deleteRoutes(client,project.id,resolved.map(r=>r.id),{teamId});return output_manager_default.log(`${import_chalk.default.cyan("Removed")} ${deletedCount} ${deletedCount===1?"route":"routes"} ${import_chalk.default.gray(deleteStamp())}`),await offerAutoPromote(client,project.id,version,!!existingStagingVersion,{teamId,skipPrompts:skipConfirmation}),0}catch(e){let error=e;return client.nonInteractive&&outputAgentError(client,{status:AGENT_STATUS.ERROR,reason:AGENT_REASON.API_ERROR,message:"Failed to remove routes for this project. See hint for error details.",hint:error.message||"Retry with the same command once transient issues are resolved."},1),output_manager_default.error(error.message||"Failed to remove routes"),1}}export{deleteRoute as default};
|
|
@@ -1,9 +0,0 @@
|
|
|
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{parseThreadArg}from"./chunk-2S6PE6GB.js";import{deleteMessage,handleCommentsParseError,resolveCommentsScope,threadNotFoundMessage,toApiErrorParts}from"./chunk-D2BZMGHP.js";import{outputError}from"./chunk-RW3X523R.js";import"./chunk-3JGBBS6V.js";import"./chunk-BL3HBRF6.js";import{canPrompt}from"./chunk-IQ7FPAI4.js";import{deleteSubcommand}from"./chunk-YHQ7PPXP.js";import"./chunk-G4T7VBGN.js";import"./chunk-B4UE4LVE.js";import"./chunk-MXTC4ZAQ.js";import"./chunk-FGFLTLEA.js";import"./chunk-DGYHWXD2.js";import"./chunk-IUXSJWL3.js";import"./chunk-KNLGWGUE.js";import"./chunk-ADLBLGT3.js";import"./chunk-BBKEP7RO.js";import"./chunk-4NTBYNFR.js";import{parseArguments}from"./chunk-VOCZ34ON.js";import"./chunk-F53OKXYI.js";import{getFlagsSpecification,validateJsonOutput}from"./chunk-AWMQGOS2.js";import"./chunk-FUX6LKNP.js";import"./chunk-OPORM35X.js";import"./chunk-4SAVH3H7.js";import{isAPIError}from"./chunk-6VH56CX2.js";import"./chunk-JESNVRVR.js";import{output_manager_default}from"./chunk-XP3FT56R.js";import"./chunk-BLUPZPAS.js";import"./chunk-RM3ZDRYE.js";import"./chunk-OO572JUC.js";import"./chunk-D3AHZ5LI.js";import"./chunk-2GHZGOWT.js";import"./chunk-YHPPP3SF.js";import{require_source}from"./chunk-NB2WLB3J.js";import"./chunk-ISWW3DKF.js";import"./chunk-BRQUZ5NC.js";import{__toESM}from"./chunk-BZENIQ7N.js";var import_chalk=__toESM(require_source(),1);async function deleteCommentMessage(client,telemetry){let parsedArgs,flagsSpecification=getFlagsSpecification(deleteSubcommand.options);try{parsedArgs=parseArguments(client.argv.slice(2),flagsSpecification)}catch(err){return handleCommentsParseError(err,"delete")}let formatResult=validateJsonOutput(parsedArgs.flags);if(!formatResult.valid)return output_manager_default.error(formatResult.error),2;let jsonOutput=formatResult.jsonOutput,yes=!!parsedArgs.flags["--yes"];telemetry.trackCliOptionFormat(parsedArgs.flags["--format"]),telemetry.trackCliFlagYes(parsedArgs.flags["--yes"]);let[threadInput,messageId]=parsedArgs.args.slice(2);if(telemetry.trackCliArgumentThread(threadInput),telemetry.trackCliArgumentMessageId(messageId),!threadInput||!messageId)return outputError(client,jsonOutput,"MISSING_ARGUMENT","Usage: `vercel comments delete <thread> <message-id>` \u2014 message IDs are shown in `vercel comments inspect`.");let threadRef=parseThreadArg(threadInput);if(!threadRef)return outputError(client,jsonOutput,"INVALID_THREAD",`Could not extract a thread ID from "${threadInput}".`);let threadId=threadRef.id,scope=await resolveCommentsScope(client,{project:parsedArgs.flags["--project"],requireProject:!1,jsonOutput,urlTeamSlug:threadRef.teamSlug});if(typeof scope=="number")return scope;if(!yes){if(!canPrompt(client)||jsonOutput)return outputError(client,jsonOutput,"CONFIRMATION_REQUIRED","Pass --yes to delete the message non-interactively.");if(!await client.input.confirm(`${import_chalk.default.red("Delete")} message ${messageId} from ${threadId} in team ${scope.teamSlug??scope.teamId}? This cannot be undone.`,!1))return output_manager_default.log("Canceled."),0}telemetry.trackCliOptionProject(parsedArgs.flags["--project"]);try{let result=await deleteMessage(client,scope.teamId,threadId,messageId);return jsonOutput?(client.stdout.write(`${JSON.stringify(result,null,2)}
|
|
8
|
-
`),0):(output_manager_default.print(`${import_chalk.default.green("\u2713")} Deleted message ${messageId}
|
|
9
|
-
`),0)}catch(err){if(isAPIError(err)){let{code,message}=toApiErrorParts(err);return outputError(client,jsonOutput,code,err.status===404?threadNotFoundMessage(threadId,scope):message)}throw err}}export{deleteCommentMessage as default};
|
|
@@ -1,7 +0,0 @@
|
|
|
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{editRoute}from"./chunk-AM46JVVN.js";import{getRouteVersions}from"./chunk-BVH2AEFE.js";import{getRoutes,offerAutoPromote,parseSubcommandArgs,resolveRoute,withGlobalFlags}from"./chunk-6ISAISGD.js";import{requireProjectContext}from"./chunk-NEFDNROD.js";import{stamp_default}from"./chunk-A2RZZQEP.js";import"./chunk-Q7D7RGXM.js";import"./chunk-3JGBBS6V.js";import"./chunk-BL3HBRF6.js";import{disableSubcommand}from"./chunk-5IASAERQ.js";import"./chunk-G4T7VBGN.js";import"./chunk-B4UE4LVE.js";import"./chunk-MXTC4ZAQ.js";import"./chunk-FGFLTLEA.js";import{outputAgentError}from"./chunk-DGYHWXD2.js";import"./chunk-IUXSJWL3.js";import"./chunk-KNLGWGUE.js";import"./chunk-ADLBLGT3.js";import"./chunk-BBKEP7RO.js";import"./chunk-4NTBYNFR.js";import"./chunk-VOCZ34ON.js";import"./chunk-F53OKXYI.js";import"./chunk-AWMQGOS2.js";import"./chunk-FUX6LKNP.js";import"./chunk-OPORM35X.js";import"./chunk-4SAVH3H7.js";import"./chunk-6VH56CX2.js";import"./chunk-JESNVRVR.js";import{output_manager_default}from"./chunk-XP3FT56R.js";import"./chunk-BLUPZPAS.js";import"./chunk-RM3ZDRYE.js";import"./chunk-OO572JUC.js";import"./chunk-D3AHZ5LI.js";import"./chunk-2GHZGOWT.js";import"./chunk-YHPPP3SF.js";import{require_source}from"./chunk-NB2WLB3J.js";import"./chunk-ISWW3DKF.js";import"./chunk-BRQUZ5NC.js";import{__toESM}from"./chunk-BZENIQ7N.js";var import_chalk=__toESM(require_source(),1);async function disable(client,argv){let parsed=await parseSubcommandArgs(argv,disableSubcommand,client);if(typeof parsed=="number")return parsed;let link=await requireProjectContext(client,"routes",parsed.flags["--project"]);if(typeof link=="number")return link;let{project,org}=link,teamId=org.type==="team"?org.id:void 0,{args}=parsed,identifier=args[0];if(!identifier)return client.nonInteractive&&outputAgentError(client,{status:"error",reason:"missing_arguments",message:"Route name or ID is required.",next:[{command:withGlobalFlags(client,"routes disable <name-or-id>"),when:"replace <name-or-id>"},{command:withGlobalFlags(client,"routes list"),when:"list routes"}]},2),output_manager_default.error(`Route name or ID is required. Usage: ${withGlobalFlags(client,"routes disable <name-or-id>")}`),2;let{versions}=await getRouteVersions(client,project.id,{teamId}),existingStagingVersion=versions.find(v=>v.isStaging);output_manager_default.spinner("Fetching routes");let{routes}=await getRoutes(client,project.id,{teamId});if(output_manager_default.stopSpinner(),routes.length===0)return client.nonInteractive&&outputAgentError(client,{status:"error",reason:"not_found",message:"No routes found in this project."},1),output_manager_default.error("No routes found in this project."),1;let route=await resolveRoute(client,routes,identifier);if(!route)return client.nonInteractive&&outputAgentError(client,{status:"error",reason:"not_found",message:`No route found matching "${identifier}".`,next:[{command:withGlobalFlags(client,"routes list"),when:"list routes"}]},1),output_manager_default.error(`No route found matching "${identifier}". Run ${import_chalk.default.cyan(withGlobalFlags(client,"routes list"))} to see all routes.`),1;if(route.enabled===!1)return output_manager_default.log(`Route "${route.name}" is already disabled.`),0;let disableStamp=stamp_default();output_manager_default.spinner(`Disabling route "${route.name}"`);try{let{version}=await editRoute(client,project.id,route.id,{route:{name:route.name,description:route.description,enabled:!1,srcSyntax:route.srcSyntax,route:route.route}},{teamId});return output_manager_default.log(`${import_chalk.default.cyan("Disabled")} route "${route.name}" ${import_chalk.default.gray(disableStamp())}`),await offerAutoPromote(client,project.id,version,!!existingStagingVersion,{teamId}),0}catch(e){let error=e;return client.nonInteractive&&outputAgentError(client,{status:"error",reason:"api_error",message:error.message||"Failed to disable route"},1),output_manager_default.error(error.message||"Failed to disable route"),1}}export{disable as default};
|
|
@@ -1,14 +0,0 @@
|
|
|
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{updateRouteVersion}from"./chunk-6QKS6QK7.js";import{getRouteVersions}from"./chunk-BVH2AEFE.js";import{confirmAction,getRoutes,parseSubcommandArgs,printDiffSummary,withGlobalFlags}from"./chunk-6ISAISGD.js";import{requireProjectContext}from"./chunk-NEFDNROD.js";import{stamp_default}from"./chunk-A2RZZQEP.js";import"./chunk-Q7D7RGXM.js";import"./chunk-3JGBBS6V.js";import"./chunk-BL3HBRF6.js";import{discardSubcommand}from"./chunk-5IASAERQ.js";import"./chunk-G4T7VBGN.js";import"./chunk-B4UE4LVE.js";import"./chunk-MXTC4ZAQ.js";import"./chunk-FGFLTLEA.js";import{outputAgentError}from"./chunk-DGYHWXD2.js";import"./chunk-IUXSJWL3.js";import"./chunk-KNLGWGUE.js";import"./chunk-ADLBLGT3.js";import"./chunk-BBKEP7RO.js";import"./chunk-4NTBYNFR.js";import"./chunk-VOCZ34ON.js";import"./chunk-F53OKXYI.js";import"./chunk-AWMQGOS2.js";import"./chunk-FUX6LKNP.js";import"./chunk-OPORM35X.js";import"./chunk-4SAVH3H7.js";import"./chunk-6VH56CX2.js";import"./chunk-JESNVRVR.js";import{output_manager_default}from"./chunk-XP3FT56R.js";import"./chunk-BLUPZPAS.js";import"./chunk-RM3ZDRYE.js";import"./chunk-OO572JUC.js";import"./chunk-D3AHZ5LI.js";import"./chunk-2GHZGOWT.js";import"./chunk-YHPPP3SF.js";import{require_source}from"./chunk-NB2WLB3J.js";import"./chunk-ISWW3DKF.js";import"./chunk-BRQUZ5NC.js";import{__toESM}from"./chunk-BZENIQ7N.js";var import_chalk=__toESM(require_source(),1);async function discard(client,argv){let parsed=await parseSubcommandArgs(argv,discardSubcommand,client);if(typeof parsed=="number")return parsed;let link=await requireProjectContext(client,"routes",parsed.flags["--project"]);if(typeof link=="number")return link;let{project,org}=link,teamId=org.type==="team"?org.id:void 0;output_manager_default.spinner(`Fetching route versions for ${import_chalk.default.bold(project.name)}`);let{versions}=await getRouteVersions(client,project.id,{teamId}),stagingVersion=versions.find(v=>v.isStaging);if(!stagingVersion)return output_manager_default.warn(`No staged changes to discard. Make changes first with ${import_chalk.default.cyan(withGlobalFlags(client,"routes add"))}.`),0;output_manager_default.spinner("Fetching staged changes");let{routes:diffRoutes}=await getRoutes(client,project.id,{teamId,versionId:stagingVersion.id,diff:!0}),changedRoutes=diffRoutes.filter(r=>r.action!==void 0);if(changedRoutes.length>0?(output_manager_default.print(`
|
|
8
|
-
${import_chalk.default.bold("Changes to be discarded:")}
|
|
9
|
-
|
|
10
|
-
`),printDiffSummary(changedRoutes),output_manager_default.print(`
|
|
11
|
-
`)):output_manager_default.print(`
|
|
12
|
-
${import_chalk.default.gray("No changes detected in staging version.")}
|
|
13
|
-
|
|
14
|
-
`),!await confirmAction(client,parsed.flags["--yes"],"Discard all staged changes?","This action cannot be undone."))return output_manager_default.log("Canceled"),0;let updateStamp=stamp_default();output_manager_default.spinner("Discarding staged changes");try{return await updateRouteVersion(client,project.id,stagingVersion.id,"discard",{teamId}),output_manager_default.log(`${import_chalk.default.cyan("Success!")} Staged changes discarded ${import_chalk.default.gray(updateStamp())}`),0}catch(e){let msg=e.message||"Failed to discard staged changes";return client.nonInteractive?(outputAgentError(client,{status:"error",reason:"api_error",message:msg,next:[{command:withGlobalFlags(client,"routes discard --yes")}]}),process.exit(1),1):(output_manager_default.error(msg),1)}}export{discard as default};
|
|
@@ -1,8 +0,0 @@
|
|
|
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{editRoute}from"./chunk-AM46JVVN.js";import{applyFlagMutations,cloneRoute,convertRouteToCurrentRoute,generateRoute,generatedRouteToAddInput,hasAnyTransformFlags,populateRouteEnv,printGeneratedRoutePreview,printRouteConfig,routingRuleToCurrentRoute,runInteractiveEditLoop}from"./chunk-43GBAKL2.js";import{getRouteVersions}from"./chunk-BVH2AEFE.js";import{getRoutes,offerAutoPromote,parseSubcommandArgs,resolveRoute,shellQuoteRouteIdentifierForSuggestion,withGlobalFlags}from"./chunk-6ISAISGD.js";import{requireProjectContext}from"./chunk-NEFDNROD.js";import{stamp_default}from"./chunk-A2RZZQEP.js";import"./chunk-Q7D7RGXM.js";import"./chunk-3JGBBS6V.js";import"./chunk-BL3HBRF6.js";import{editSubcommand}from"./chunk-5IASAERQ.js";import"./chunk-G4T7VBGN.js";import"./chunk-B4UE4LVE.js";import"./chunk-MXTC4ZAQ.js";import"./chunk-FGFLTLEA.js";import{outputAgentError}from"./chunk-DGYHWXD2.js";import"./chunk-IUXSJWL3.js";import"./chunk-KNLGWGUE.js";import"./chunk-ADLBLGT3.js";import"./chunk-BBKEP7RO.js";import"./chunk-4NTBYNFR.js";import"./chunk-VOCZ34ON.js";import"./chunk-F53OKXYI.js";import"./chunk-AWMQGOS2.js";import"./chunk-FUX6LKNP.js";import"./chunk-OPORM35X.js";import"./chunk-4SAVH3H7.js";import"./chunk-6VH56CX2.js";import"./chunk-JESNVRVR.js";import{output_manager_default}from"./chunk-XP3FT56R.js";import"./chunk-BLUPZPAS.js";import"./chunk-RM3ZDRYE.js";import"./chunk-OO572JUC.js";import"./chunk-D3AHZ5LI.js";import"./chunk-2GHZGOWT.js";import"./chunk-YHPPP3SF.js";import{require_source}from"./chunk-NB2WLB3J.js";import"./chunk-ISWW3DKF.js";import"./chunk-BRQUZ5NC.js";import{__toESM}from"./chunk-BZENIQ7N.js";var import_chalk=__toESM(require_source(),1);async function edit(client,argv){let parsed=await parseSubcommandArgs(argv,editSubcommand,client);if(typeof parsed=="number")return parsed;let link=await requireProjectContext(client,"routes",parsed.flags["--project"]);if(typeof link=="number")return link;let{project,org}=link,teamId=org.type==="team"?org.id:void 0,{args,flags}=parsed,skipConfirmation=flags["--yes"],identifier=args[0],{RoutesEditTelemetryClient}=await import("./routes-P6LKQCWH.js"),telemetry=new RoutesEditTelemetryClient({opts:{store:client.telemetryEventStore}});if(telemetry.trackCliArgumentNameOrId(identifier),telemetry.trackCliFlagYes(skipConfirmation),telemetry.trackCliOptionName(flags["--name"]),telemetry.trackCliOptionDescription(flags["--description"]),telemetry.trackCliOptionSrc(flags["--src"]),telemetry.trackCliOptionSrcSyntax(flags["--src-syntax"]),telemetry.trackCliOptionAction(flags["--action"]),telemetry.trackCliOptionDest(flags["--dest"]),telemetry.trackCliOptionStatus(flags["--status"]),telemetry.trackCliFlagNoDest(flags["--no-dest"]),telemetry.trackCliFlagNoStatus(flags["--no-status"]),telemetry.trackCliFlagClearConditions(flags["--clear-conditions"]),telemetry.trackCliFlagClearHeaders(flags["--clear-headers"]),telemetry.trackCliFlagClearTransforms(flags["--clear-transforms"]),telemetry.trackCliOptionSetResponseHeader(flags["--set-response-header"]),telemetry.trackCliOptionAppendResponseHeader(flags["--append-response-header"]),telemetry.trackCliOptionDeleteResponseHeader(flags["--delete-response-header"]),telemetry.trackCliOptionSetRequestHeader(flags["--set-request-header"]),telemetry.trackCliOptionAppendRequestHeader(flags["--append-request-header"]),telemetry.trackCliOptionDeleteRequestHeader(flags["--delete-request-header"]),telemetry.trackCliOptionSetRequestQuery(flags["--set-request-query"]),telemetry.trackCliOptionAppendRequestQuery(flags["--append-request-query"]),telemetry.trackCliOptionDeleteRequestQuery(flags["--delete-request-query"]),telemetry.trackCliOptionHas(flags["--has"]),telemetry.trackCliOptionMissing(flags["--missing"]),telemetry.trackCliOptionAi(flags["--ai"]),!identifier)return client.nonInteractive&&outputAgentError(client,{status:"error",reason:"missing_arguments",message:"Route name or ID is required as the first argument after routes update.",next:[{command:withGlobalFlags(client,"routes update <name-or-id>"),when:"replace <name-or-id> with route name or id from routes list"},{command:withGlobalFlags(client,"routes list"),when:"to list routes"}]},2),output_manager_default.error(`Route name or ID is required. Usage: ${withGlobalFlags(client,"routes update <name-or-id>")}`),2;let{versions}=await getRouteVersions(client,project.id,{teamId}),existingStagingVersion=versions.find(v=>v.isStaging);output_manager_default.spinner("Fetching routes");let{routes}=await getRoutes(client,project.id,{teamId});if(output_manager_default.stopSpinner(),routes.length===0)return client.nonInteractive&&outputAgentError(client,{status:"error",reason:"not_found",message:"No routes found in this project.",next:[{command:withGlobalFlags(client,"routes add --ai <description> --yes"),when:"add a route first (or use full flags)"}]},1),output_manager_default.error("No routes found in this project."),1;let originalRoute=await resolveRoute(client,routes,identifier);if(!originalRoute)return client.nonInteractive&&outputAgentError(client,{status:"error",reason:"not_found",message:`No route found matching "${identifier}".`,next:[{command:withGlobalFlags(client,"routes list"),when:"to list routes and pick an exact name or id"},{command:withGlobalFlags(client,"routes update <name-or-id>"),when:"retry with a unique name or id"}]},1),output_manager_default.error(`No route found matching "${identifier}". Run ${import_chalk.default.cyan(withGlobalFlags(client,"routes list"))} to see all routes.`),1;let aiPrompt=flags["--ai"];if(aiPrompt){let usedConflicts=["--name","--description","--src","--src-syntax","--action","--dest","--status","--no-dest","--no-status","--has","--missing","--set-response-header","--append-response-header","--delete-response-header","--set-request-header","--append-request-header","--delete-request-header","--set-request-query","--append-request-query","--delete-request-query","--clear-conditions","--clear-headers","--clear-transforms"].filter(f=>flags[f]!==void 0);return usedConflicts.length>0?(client.nonInteractive&&outputAgentError(client,{status:"error",reason:"invalid_arguments",message:`Cannot use --ai with ${usedConflicts.join(", ")}. Use --ai alone to describe changes.`,next:[{command:withGlobalFlags(client,`routes update ${shellQuoteRouteIdentifierForSuggestion(identifier)} --ai <description> --yes`),when:"use only --ai with route id/name already set"}]},2),output_manager_default.error(`Cannot use --ai with ${usedConflicts.join(", ")}. Use --ai alone to describe changes.`),2):await handleAIEdit(client,project.id,teamId,originalRoute,aiPrompt,skipConfirmation,existingStagingVersion)}let route=cloneRoute(originalRoute);if(flags["--name"]!==void 0||flags["--description"]!==void 0||flags["--src"]!==void 0||flags["--src-syntax"]!==void 0||flags["--action"]!==void 0||flags["--dest"]!==void 0||flags["--status"]!==void 0||flags["--no-dest"]!==void 0||flags["--no-status"]!==void 0||flags["--has"]!==void 0||flags["--missing"]!==void 0||flags["--clear-conditions"]!==void 0||flags["--clear-headers"]!==void 0||flags["--clear-transforms"]!==void 0||hasAnyTransformFlags(flags)){let error=applyFlagMutations(route,flags);if(error)return client.nonInteractive&&outputAgentError(client,{status:"error",reason:"invalid_arguments",message:error,next:[{command:withGlobalFlags(client,`routes update ${shellQuoteRouteIdentifierForSuggestion(identifier)} ...`),when:"fix flags per message; see routes update --help"}]},2),output_manager_default.error(error),2}else{if(!client.stdin.isTTY||client.nonInteractive)return client.nonInteractive&&outputAgentError(client,{status:"error",reason:"missing_arguments",message:"No update flags provided. In non-interactive mode pass flags such as --name, --src, --dest, --action, header flags, or --ai <description> --yes.",next:[{command:withGlobalFlags(client,`routes update ${shellQuoteRouteIdentifierForSuggestion(identifier)} --dest <dest> --yes`),when:"example: set destination; see routes update --help"}],hint:"Run vercel routes update --help for all flag options."},2),output_manager_default.error(`No update flags provided. When running non-interactively, use flags like --name, --dest, --src, etc. Run ${withGlobalFlags(client,"routes update --help")} for all options.`),2;if(output_manager_default.log(`
|
|
8
|
-
Editing route "${originalRoute.name}"`),printRouteConfig(route),await client.input.select({message:"How would you like to update this route?",choices:[{name:"Describe changes (AI-powered)",value:"ai"},{name:"Edit manually (field by field)",value:"manual"}]})==="ai")return telemetry.trackCliOptionAi("interactive"),await handleAIEdit(client,project.id,teamId,originalRoute,void 0,skipConfirmation,existingStagingVersion);await runInteractiveEditLoop(client,route)}if(populateRouteEnv(route.route,route.srcSyntax),JSON.stringify(route)===JSON.stringify(originalRoute))return output_manager_default.log("No changes made."),0;let editStamp=stamp_default();output_manager_default.spinner(`Updating route "${route.name}"`);try{let{version}=await editRoute(client,project.id,originalRoute.id,{route:{name:route.name,description:route.description,enabled:route.enabled,srcSyntax:route.srcSyntax,route:route.route}},{teamId});return output_manager_default.log(`${import_chalk.default.cyan("Updated")} route "${route.name}" ${import_chalk.default.gray(editStamp())}`),await offerAutoPromote(client,project.id,version,!!existingStagingVersion,{teamId,skipPrompts:skipConfirmation}),0}catch(e){let error=e;return output_manager_default.error(error.message||"Failed to update route"),1}}async function handleAIEdit(client,projectId,teamId,originalRoute,aiPrompt,skipConfirmation,existingStagingVersion){let currentRoute=routingRuleToCurrentRoute(originalRoute),prompt=aiPrompt,currentGenerated;for(;;){prompt||(prompt=await client.input.text({message:"Describe what you'd like to change:",validate:val=>val?val.length>2e3?"Description must be 2000 characters or less":!0:"A description is required"})),output_manager_default.spinner("Generating updated route...");let errorMessage;try{let result=await generateRoute(client,projectId,{prompt,currentRoute},{teamId});result.error?errorMessage=result.error:result.route?currentGenerated=result.route:errorMessage="Could not apply changes. Try rephrasing."}catch(e){errorMessage=e.message||"Failed to generate updated route"}if(currentGenerated)break;if(output_manager_default.error(errorMessage),skipConfirmation||!client.stdin.isTTY)return 1;if(await client.input.select({message:"What would you like to do?",choices:[{name:"Try again with a different description",value:"retry"},{name:"Cancel",value:"cancel"}]})==="cancel")return output_manager_default.log("No changes made."),0;prompt=void 0}if(printGeneratedRoutePreview(currentGenerated),skipConfirmation)return await applyAIEdit(client,projectId,teamId,originalRoute,currentGenerated,existingStagingVersion,skipConfirmation);if(!client.stdin.isTTY)return output_manager_default.error(`Cannot interactively confirm route changes in a non-TTY environment. Use ${withGlobalFlags(client,'routes update <name-or-id> --ai "..." --yes')} to skip confirmation.`),1;for(;;){let choice=await client.input.select({message:"What would you like to do?",choices:[{name:"Confirm changes",value:"confirm"},{name:"Edit again with AI",value:"ai-edit"},{name:"Edit manually",value:"manual"},{name:"Discard",value:"discard"}],pageSize:4,loop:!1});if(choice==="confirm")return await applyAIEdit(client,projectId,teamId,originalRoute,currentGenerated,existingStagingVersion,skipConfirmation);if(choice==="ai-edit"){let editPrompt=await client.input.text({message:"Describe what you'd like to change:",validate:val=>val?val.length>2e3?"Description must be 2000 characters or less":!0:"A description is required"});output_manager_default.spinner("Updating route...");try{let editResult=await generateRoute(client,projectId,{prompt:editPrompt,currentRoute:convertRouteToCurrentRoute(currentGenerated)},{teamId});if(editResult.error){output_manager_default.error(editResult.error),output_manager_default.log("Keeping previous route:"),printGeneratedRoutePreview(currentGenerated);continue}if(!editResult.route){output_manager_default.error("Could not apply changes. Try rephrasing."),output_manager_default.log("Keeping previous route:"),printGeneratedRoutePreview(currentGenerated);continue}currentGenerated=editResult.route,printGeneratedRoutePreview(currentGenerated)}catch(e){let error=e;output_manager_default.error(error.message||"Failed to update route"),output_manager_default.log("Keeping previous route:"),printGeneratedRoutePreview(currentGenerated)}continue}if(choice==="manual"){let routeInput=generatedRouteToAddInput(currentGenerated),manualRoute=cloneRoute(originalRoute);manualRoute.name=routeInput.name,manualRoute.description=routeInput.description,manualRoute.srcSyntax=routeInput.srcSyntax,manualRoute.route=routeInput.route,await runInteractiveEditLoop(client,manualRoute),populateRouteEnv(manualRoute.route,manualRoute.srcSyntax);let editStamp=stamp_default();output_manager_default.spinner(`Updating route "${manualRoute.name}"`);try{let{version}=await editRoute(client,projectId,originalRoute.id,{route:{name:manualRoute.name,description:manualRoute.description,enabled:manualRoute.enabled,srcSyntax:manualRoute.srcSyntax,route:manualRoute.route}},{teamId});return output_manager_default.log(`${import_chalk.default.cyan("Updated")} route "${manualRoute.name}" ${import_chalk.default.gray(editStamp())}`),await offerAutoPromote(client,projectId,version,!!existingStagingVersion,{teamId,skipPrompts:skipConfirmation}),0}catch(e){let error=e;return output_manager_default.error(error.message||"Failed to update route"),1}}return output_manager_default.log("No changes made."),0}}async function applyAIEdit(client,projectId,teamId,originalRoute,generated,existingStagingVersion,skipConfirmation){let routeInput=generatedRouteToAddInput(generated);populateRouteEnv(routeInput.route,routeInput.srcSyntax);let editStamp=stamp_default();output_manager_default.spinner(`Updating route "${routeInput.name}"`);try{let{version}=await editRoute(client,projectId,originalRoute.id,{route:{name:routeInput.name,description:routeInput.description,enabled:originalRoute.enabled,srcSyntax:routeInput.srcSyntax,route:routeInput.route}},{teamId});return output_manager_default.log(`${import_chalk.default.cyan("Updated")} route "${routeInput.name}" ${import_chalk.default.gray(editStamp())}`),await offerAutoPromote(client,projectId,version,!!existingStagingVersion,{teamId,skipPrompts:skipConfirmation}),0}catch(e){let error=e;return output_manager_default.error(error.message||"Failed to update route"),1}}export{edit as default};
|
|
@@ -1,9 +0,0 @@
|
|
|
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{resolveMessageContent}from"./chunk-Q5ODLDCU.js";import{parseThreadArg}from"./chunk-2S6PE6GB.js";import{handleCommentsParseError,resolveCommentsScope,threadNotFoundMessage,toApiErrorParts,updateMessage}from"./chunk-D2BZMGHP.js";import{outputError}from"./chunk-RW3X523R.js";import"./chunk-3JGBBS6V.js";import"./chunk-BL3HBRF6.js";import"./chunk-IQ7FPAI4.js";import{editSubcommand}from"./chunk-YHQ7PPXP.js";import"./chunk-G4T7VBGN.js";import"./chunk-B4UE4LVE.js";import"./chunk-MXTC4ZAQ.js";import"./chunk-FGFLTLEA.js";import"./chunk-DGYHWXD2.js";import"./chunk-IUXSJWL3.js";import"./chunk-KNLGWGUE.js";import"./chunk-ADLBLGT3.js";import"./chunk-BBKEP7RO.js";import"./chunk-4NTBYNFR.js";import{parseArguments}from"./chunk-VOCZ34ON.js";import"./chunk-F53OKXYI.js";import{getFlagsSpecification,validateJsonOutput}from"./chunk-AWMQGOS2.js";import"./chunk-FUX6LKNP.js";import"./chunk-OPORM35X.js";import"./chunk-4SAVH3H7.js";import{isAPIError}from"./chunk-6VH56CX2.js";import"./chunk-JESNVRVR.js";import{output_manager_default}from"./chunk-XP3FT56R.js";import"./chunk-BLUPZPAS.js";import"./chunk-RM3ZDRYE.js";import"./chunk-OO572JUC.js";import"./chunk-D3AHZ5LI.js";import"./chunk-2GHZGOWT.js";import"./chunk-YHPPP3SF.js";import{require_source}from"./chunk-NB2WLB3J.js";import"./chunk-ISWW3DKF.js";import"./chunk-BRQUZ5NC.js";import{__toESM}from"./chunk-BZENIQ7N.js";var import_chalk=__toESM(require_source(),1);async function edit(client,telemetry){let parsedArgs,flagsSpecification=getFlagsSpecification(editSubcommand.options);try{parsedArgs=parseArguments(client.argv.slice(2),flagsSpecification)}catch(err){return handleCommentsParseError(err,"update")}let formatResult=validateJsonOutput(parsedArgs.flags);if(!formatResult.valid)return output_manager_default.error(formatResult.error),2;let jsonOutput=formatResult.jsonOutput;telemetry.trackCliOptionFormat(parsedArgs.flags["--format"]),telemetry.trackCliOptionMessage(parsedArgs.flags["--message"]),telemetry.trackCliOptionFile(parsedArgs.flags["--file"]);let[threadInput,messageId]=parsedArgs.args.slice(2);if(telemetry.trackCliArgumentThread(threadInput),telemetry.trackCliArgumentMessageId(messageId),!threadInput||!messageId)return outputError(client,jsonOutput,"MISSING_ARGUMENT","Usage: `vercel comments update <thread> <message-id> --message <text>` \u2014 message IDs are shown in `vercel comments inspect`.");let threadRef=parseThreadArg(threadInput);if(!threadRef)return outputError(client,jsonOutput,"INVALID_THREAD",`Could not extract a thread ID from "${threadInput}".`);let threadId=threadRef.id,content=await resolveMessageContent(client,{message:parsedArgs.flags["--message"],file:parsedArgs.flags["--file"]},jsonOutput);if(typeof content=="number")return content;if(content===void 0)return outputError(client,jsonOutput,"MISSING_CONTENT","Pass the new content with --message <text> or --file <path>.");telemetry.trackCliOptionProject(parsedArgs.flags["--project"]);let scope=await resolveCommentsScope(client,{project:parsedArgs.flags["--project"],requireProject:!1,jsonOutput,urlTeamSlug:threadRef.teamSlug});if(typeof scope=="number")return scope;try{let message=await updateMessage(client,scope.teamId,threadId,messageId,{markdown:content});return jsonOutput?(client.stdout.write(`${JSON.stringify(message,null,2)}
|
|
8
|
-
`),0):(output_manager_default.print(`${import_chalk.default.green("\u2713")} Updated message ${messageId}
|
|
9
|
-
`),0)}catch(err){if(isAPIError(err)){let{code,message}=toApiErrorParts(err);return outputError(client,jsonOutput,code,err.status===404?threadNotFoundMessage(threadId,scope):message)}throw err}}export{edit as default};
|
|
@@ -1,7 +0,0 @@
|
|
|
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{editRoute}from"./chunk-AM46JVVN.js";import{getRouteVersions}from"./chunk-BVH2AEFE.js";import{getRoutes,offerAutoPromote,parseSubcommandArgs,resolveRoute,withGlobalFlags}from"./chunk-6ISAISGD.js";import{requireProjectContext}from"./chunk-NEFDNROD.js";import{stamp_default}from"./chunk-A2RZZQEP.js";import"./chunk-Q7D7RGXM.js";import"./chunk-3JGBBS6V.js";import"./chunk-BL3HBRF6.js";import{enableSubcommand}from"./chunk-5IASAERQ.js";import"./chunk-G4T7VBGN.js";import"./chunk-B4UE4LVE.js";import"./chunk-MXTC4ZAQ.js";import"./chunk-FGFLTLEA.js";import{outputAgentError}from"./chunk-DGYHWXD2.js";import"./chunk-IUXSJWL3.js";import"./chunk-KNLGWGUE.js";import"./chunk-ADLBLGT3.js";import"./chunk-BBKEP7RO.js";import"./chunk-4NTBYNFR.js";import"./chunk-VOCZ34ON.js";import"./chunk-F53OKXYI.js";import"./chunk-AWMQGOS2.js";import"./chunk-FUX6LKNP.js";import"./chunk-OPORM35X.js";import"./chunk-4SAVH3H7.js";import"./chunk-6VH56CX2.js";import"./chunk-JESNVRVR.js";import{output_manager_default}from"./chunk-XP3FT56R.js";import"./chunk-BLUPZPAS.js";import"./chunk-RM3ZDRYE.js";import"./chunk-OO572JUC.js";import"./chunk-D3AHZ5LI.js";import"./chunk-2GHZGOWT.js";import"./chunk-YHPPP3SF.js";import{require_source}from"./chunk-NB2WLB3J.js";import"./chunk-ISWW3DKF.js";import"./chunk-BRQUZ5NC.js";import{__toESM}from"./chunk-BZENIQ7N.js";var import_chalk=__toESM(require_source(),1);async function enable(client,argv){let parsed=await parseSubcommandArgs(argv,enableSubcommand,client);if(typeof parsed=="number")return parsed;let link=await requireProjectContext(client,"routes",parsed.flags["--project"]);if(typeof link=="number")return link;let{project,org}=link,teamId=org.type==="team"?org.id:void 0,{args}=parsed,identifier=args[0];if(!identifier)return client.nonInteractive&&outputAgentError(client,{status:"error",reason:"missing_arguments",message:"Route name or ID is required.",next:[{command:withGlobalFlags(client,"routes enable <name-or-id>"),when:"replace <name-or-id>"},{command:withGlobalFlags(client,"routes list"),when:"list routes"}]},2),output_manager_default.error(`Route name or ID is required. Usage: ${withGlobalFlags(client,"routes enable <name-or-id>")}`),2;let{versions}=await getRouteVersions(client,project.id,{teamId}),existingStagingVersion=versions.find(v=>v.isStaging);output_manager_default.spinner("Fetching routes");let{routes}=await getRoutes(client,project.id,{teamId});if(output_manager_default.stopSpinner(),routes.length===0)return client.nonInteractive&&outputAgentError(client,{status:"error",reason:"not_found",message:"No routes found in this project.",next:[{command:withGlobalFlags(client,"routes add --help"),when:"add routes first"}]},1),output_manager_default.error("No routes found in this project."),1;let route=await resolveRoute(client,routes,identifier);if(!route)return client.nonInteractive&&outputAgentError(client,{status:"error",reason:"not_found",message:`No route found matching "${identifier}".`,next:[{command:withGlobalFlags(client,"routes list"),when:"list routes"}]},1),output_manager_default.error(`No route found matching "${identifier}". Run ${import_chalk.default.cyan(withGlobalFlags(client,"routes list"))} to see all routes.`),1;if(route.enabled!==!1)return output_manager_default.log(`Route "${route.name}" is already enabled.`),0;let enableStamp=stamp_default();output_manager_default.spinner(`Enabling route "${route.name}"`);try{let{version}=await editRoute(client,project.id,route.id,{route:{name:route.name,description:route.description,enabled:!0,srcSyntax:route.srcSyntax,route:route.route}},{teamId});return output_manager_default.log(`${import_chalk.default.cyan("Enabled")} route "${route.name}" ${import_chalk.default.gray(enableStamp())}`),await offerAutoPromote(client,project.id,version,!!existingStagingVersion,{teamId}),0}catch(e){let error=e;return client.nonInteractive&&outputAgentError(client,{status:"error",reason:"api_error",message:error.message||"Failed to enable route"},1),output_manager_default.error(error.message||"Failed to enable route"),1}}export{enable as default};
|
|
@@ -1,7 +0,0 @@
|
|
|
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{createCertForCns,setupDomain}from"./chunk-IVSC7ZFJ.js";import"./chunk-WCWP4GBR.js";import{require_cjs}from"./chunk-DUT4U5YY.js";import"./chunk-76SVVWPH.js";import"./chunk-A2RZZQEP.js";import"./chunk-Q7D7RGXM.js";import"./chunk-HCRD3JFL.js";import"./chunk-3G3FQYMW.js";import"./chunk-B4UE4LVE.js";import"./chunk-MXTC4ZAQ.js";import"./chunk-FGFLTLEA.js";import"./chunk-DGYHWXD2.js";import"./chunk-IUXSJWL3.js";import"./chunk-KNLGWGUE.js";import"./chunk-ADLBLGT3.js";import"./chunk-BBKEP7RO.js";import"./chunk-4NTBYNFR.js";import"./chunk-VOCZ34ON.js";import"./chunk-F53OKXYI.js";import"./chunk-AWMQGOS2.js";import"./chunk-FUX6LKNP.js";import"./chunk-OPORM35X.js";import"./chunk-4SAVH3H7.js";import{InvalidDomain,NowError}from"./chunk-6VH56CX2.js";import"./chunk-JESNVRVR.js";import{output_manager_default}from"./chunk-XP3FT56R.js";import"./chunk-BLUPZPAS.js";import"./chunk-RM3ZDRYE.js";import"./chunk-OO572JUC.js";import"./chunk-D3AHZ5LI.js";import"./chunk-2GHZGOWT.js";import"./chunk-YHPPP3SF.js";import"./chunk-NB2WLB3J.js";import"./chunk-ISWW3DKF.js";import"./chunk-BRQUZ5NC.js";import{__toESM}from"./chunk-BZENIQ7N.js";var import_tldts=__toESM(require_cjs(),1);async function generateCertForDeploy(client,contextName,deployURL){let parsedDomain=(0,import_tldts.parse)(deployURL),{domain}=parsedDomain;if(!domain)return new InvalidDomain(deployURL);output_manager_default.spinner(`Setting custom suffix domain ${domain}`);let result=await setupDomain(client,domain,contextName);if(output_manager_default.stopSpinner(),result instanceof NowError)return result;output_manager_default.spinner(`Generating a wildcard certificate for ${domain}`);let cert=await createCertForCns(client,[domain,`*.${domain}`],contextName);if(output_manager_default.stopSpinner(),cert instanceof NowError)return cert}export{generateCertForDeploy as default};
|
|
@@ -1,13 +0,0 @@
|
|
|
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{formatTriggerOperator,getGroupStartedAt,getGroupTitle,getGroupType,humanizeReference,normalizeTimestamp,renderAlertTable}from"./chunk-3XW7N4W3.js";import{resolveRulesTeam}from"./chunk-E6CO6TUM.js";import{resolveAlertsScope,scopeFromLinkedProject}from"./chunk-2WYYGGEO.js";import{formatGranularity}from"./chunk-IVSSTHB6.js";import"./chunk-GHAY4PSD.js";import{outputError}from"./chunk-RW3X523R.js";import{truncateEnd,truncateMiddle}from"./chunk-ID663OJ7.js";import{formatDate}from"./chunk-HRR57QNP.js";import"./chunk-GZNDA6SV.js";import"./chunk-PFD7LETF.js";import{inspectSubcommand}from"./chunk-NQWGRKF4.js";import"./chunk-773GOZIR.js";import{printError}from"./chunk-G4T7VBGN.js";import"./chunk-67GZ5REA.js";import"./chunk-BS32OUOC.js";import"./chunk-B4UE4LVE.js";import"./chunk-MXTC4ZAQ.js";import"./chunk-FGFLTLEA.js";import{AGENT_REASON,buildCommandWithGlobalFlags,outputAgentError}from"./chunk-DGYHWXD2.js";import"./chunk-IUXSJWL3.js";import{getLinkedProject}from"./chunk-KNLGWGUE.js";import"./chunk-ADLBLGT3.js";import"./chunk-BBKEP7RO.js";import"./chunk-4NTBYNFR.js";import{parseArguments}from"./chunk-VOCZ34ON.js";import"./chunk-F53OKXYI.js";import{getFlagsSpecification,validateJsonOutput}from"./chunk-AWMQGOS2.js";import"./chunk-FUX6LKNP.js";import"./chunk-OPORM35X.js";import"./chunk-4SAVH3H7.js";import{isAPIError}from"./chunk-6VH56CX2.js";import{packageName}from"./chunk-JESNVRVR.js";import{output_manager_default}from"./chunk-XP3FT56R.js";import"./chunk-BLUPZPAS.js";import"./chunk-RM3ZDRYE.js";import"./chunk-OO572JUC.js";import"./chunk-D3AHZ5LI.js";import"./chunk-2GHZGOWT.js";import"./chunk-YHPPP3SF.js";import{require_source}from"./chunk-NB2WLB3J.js";import"./chunk-ISWW3DKF.js";import"./chunk-BRQUZ5NC.js";import{__toESM}from"./chunk-BZENIQ7N.js";var import_chalk=__toESM(require_source(),1);var aggregationLabels={sum:"Sum",avg:"Average",min:"Min",max:"Max",p50:"P50",p75:"P75",p90:"P90",p95:"P95",p99:"P99",stddev:"Std Dev",unique:"Unique",persecond:"Per Second",percent:"Percent"},formatCustomAlertRatioBelowFivePercent=new Intl.NumberFormat("en-US",{maximumFractionDigits:2,minimumFractionDigits:2,style:"percent"}),formatCustomAlertRatioThresholdValue=new Intl.NumberFormat("en-US",{maximumFractionDigits:4,minimumFractionDigits:0,style:"percent"});function getGroupStatus(group){if(group.status)return group.status;let alerts=group.alerts??[];return alerts.some(alert=>alert.status==="active")?"active":alerts.length>0?"resolved":"-"}function humanizeLabel(value){return humanizeReference(value,{case:"title"})}function formatAlertFieldValue(value,maxLength=64){if(value==null)return;let displayValue=typeof value=="number"?formatNumber(value):String(value);if(displayValue)return truncateMiddle(displayValue,maxLength)}function formatNumber(value){let absValue=Math.abs(value),sign=value<0?"-":"";for(let[threshold,suffix]of[[1e9,"B"],[1e6,"M"],[1e3,"k"]])if(absValue>=threshold)return`${sign}${(absValue/threshold).toFixed(1).replace(/\.0$/,"")}${suffix}`;return Number.isInteger(value)?String(value):value.toFixed(2).replace(/\.?0+$/,"")}function parseFormattedNumber(value){let trimmed=value.trim();if(!trimmed)return;let number=Number(trimmed.replace(/,/g,""));return Number.isFinite(number)?number:void 0}function formatRatio(value){if(value.trim().endsWith("%"))return value;let number=parseFormattedNumber(value);if(number===void 0)return value;let percent=number*100;return percent>=5?`${Math.floor(percent)}%`:formatCustomAlertRatioBelowFivePercent.format(number)}function formatRatioThreshold(value){if(value.trim().endsWith("%"))return value;let number=parseFormattedNumber(value);return number===void 0?value:formatCustomAlertRatioThresholdValue.format(number)}function getAlertSonarQuery(alert){return alert.sonarQuery??alert.data?.sonarQuery}function getCustomAlertBaselineTitle(alert){let granularity=getAlertSonarQuery(alert)?.granularity;return(granularity&&("hours"in granularity||"days"in granularity)?"7-day baseline":"24-hour baseline").replace(/\b[a-z]/g,character=>character.toUpperCase())}function appendUnit(value,unit){return!unit||unit==="score"?value:unit==="ratio"?formatRatio(value):unit==="%"?value.endsWith("%")?value:`${value}%`:value.toLowerCase().includes(unit.toLowerCase())?value:`${value} ${unit}`}function formatThreshold(alert){let data=alert.data,formatted=alert.formattedValues?.formattedThreshold??(data?.triggerThreshold===void 0?void 0:formatNumber(data.triggerThreshold));if(!formatted)return;let operator=formatTriggerOperator(data?.triggerOperator),threshold=data?.triggerType==="anomaly"?`${formatted} z-score`:alert.unit==="ratio"?formatRatioThreshold(formatted):appendUnit(formatted,alert.unit);return[operator,threshold].filter(Boolean).join(" ")}function getRuleIds(alert){let ids=new Set,dataRuleId=alert.data?.ruleId;dataRuleId&&ids.add(dataRuleId);for(let ruleId of alert.rules??[])ruleId&&ids.add(ruleId);return[...ids]}function getAlertResolvedAt(alert){return normalizeTimestamp(alert.recordedResolvedAt??alert.resolvedAt)}function getSignalRows(alert){let rows=[],formattedValues=alert.formattedValues??{},observed=formattedValues.formattedCount,baseline=formattedValues.formattedAvg,change=[formattedValues.changeDirection,formattedValues.changeAmount].filter(Boolean).join(" "),zscore=alert.data?.zscore,threshold=formatThreshold(alert),minThreshold=alert.data?.minThreshold,isRatioFormulaAlert=!!getCustomAlertFormula(alert);return alert.eventLabel&&rows.push(["Event",alert.eventLabel]),alert.measureLabel&&rows.push(["Measure",alert.measureLabel]),observed&&rows.push(["Observed Value",appendUnit(observed,alert.unit)]),baseline&&rows.push([alert.type==="custom_alert"&&alert.data?.triggerType==="anomaly"?getCustomAlertBaselineTitle(alert):"Baseline",appendUnit(baseline,alert.unit)]),change&&rows.push(["Change",change]),zscore!==void 0&&rows.push(["Observed Deviation",`${formatNumber(zscore)} z-score`]),threshold&&rows.push(["Threshold",threshold]),minThreshold!==void 0&&!isRatioFormulaAlert&&rows.push(["Minimum",alert.unit==="ratio"?formatNumber(minThreshold):appendUnit(formatNumber(minThreshold),alert.unit)]),formattedValues.errorRate&&rows.push(["Error Rate",formattedValues.errorRate]),formattedValues.avgErrorRate&&rows.push(["Baseline Error Rate",formattedValues.avgErrorRate]),rows.push(...getFieldRows(alert)),rows}function getFieldRows(alert){let fields=alert.data?.fields;if(!fields)return[];let groupBy=getAlertSonarQuery(alert)?.groupBy??[];return[...groupBy,...Object.keys(fields).filter(key=>!groupBy.includes(key))].flatMap(key=>{let value=fields[key],displayValue=formatAlertFieldValue(value);return displayValue?[[humanizeLabel(key),displayValue]]:[]})}function formatAggregation(value){return value?aggregationLabels[value]??humanizeLabel(value):void 0}function formatQueryReference(value){return value?humanizeLabel(value):void 0}function formatRollupDetail(rollup,fallbackMeasure){if(!rollup)return;let aggregation=formatAggregation(rollup.aggregation),measure=fallbackMeasure??formatQueryReference(rollup.measure);return[aggregation,measure].filter(Boolean).join(" ")||void 0}function getPrimaryRollup(rollups){return Object.values(rollups??{})[0]}function getCustomAlertFormula(alert){let formula=alert.data?.formula;if(formula?.operator==="divide"&&formula.left&&formula.right)return{operator:formula.operator,left:formula.left,right:formula.right}}function getQueryRows(alert){if(alert.type!=="custom_alert")return[];let query=getAlertSonarQuery(alert);if(!query)return[];let formula=getCustomAlertFormula(alert),rows=[],addRow=(label,value)=>{value&&rows.push([label,truncateMiddle(value,120)])};if(addRow("Event",alert.eventLabel??formatQueryReference(query.event)),formula)addRow("Numerator",formatRollupDetail(query.rollups?.[formula.left])),addRow("Denominator",formatRollupDetail(query.rollups?.[formula.right]));else{let primaryRollup=getPrimaryRollup(query.rollups);addRow("Measure",alert.measureLabel??formatQueryReference(primaryRollup?.measure)),addRow("Aggregation",formatAggregation(primaryRollup?.aggregation))}addRow("Granularity",formatGranularity(query.granularity));let groupBy=query.groupBy?.filter(Boolean)??[];if(groupBy.length>0&&addRow("Group by",groupBy.map(humanizeLabel).join(", ")),formula&&typeof alert.data?.minThreshold=="number"&&addRow("Minimum Numerator",formatNumber(alert.data.minThreshold)),addRow("Filter by",query.filter?.trim()),formula)for(let[label,rollupName]of[["Numerator filter",formula.left],["Denominator filter",formula.right]])addRow(label,query.rollups?.[rollupName]?.filter?.trim());return rows}function getDetailRows(alert){let data=alert.data;if(!data)return[];let rows=[],addRow=(label,value)=>{let displayValue=formatAlertFieldValue(value);displayValue&&rows.push([label,displayValue])};return addRow("Route",data.route),addRow("Status Group",data.statusGroup),addRow("Deployment ID",data.deploymentId),rows}function renderAlertSections(alert){let lines=[],signalRows=getSignalRows(alert);signalRows.length>0&&(lines.push(import_chalk.default.cyan("Signals")),lines.push(renderAlertTable(signalRows,3)));let queryRows=getQueryRows(alert);return queryRows.length>0&&(lines.push(import_chalk.default.cyan("Query")),lines.push(renderAlertTable(queryRows,3))),lines.join(`
|
|
8
|
-
`)}function renderAlert(alert,index,totalAlerts){let title=alert.title||`Alert ${index+1}`,ruleIds=getRuleIds(alert),resolvedAt=getAlertResolvedAt(alert),sections=renderAlertSections(alert),summaryRows=[["Alert id",alert.id||"-"],["Type",alert.type||"-"],["Status",alert.status||"-"],["Started At",formatDate(normalizeTimestamp(alert.recordedStartedAt??alert.startedAt))],...resolvedAt!==void 0?[["Resolved At",formatDate(resolvedAt)]]:[],...ruleIds.length>0?[["Rule id",ruleIds.map(id=>truncateMiddle(id,48)).join(", ")]]:[],...getDetailRows(alert)];return[import_chalk.default.bold(totalAlerts>1?`Alert ${index+1}: ${title}`:title),renderAlertTable(summaryRows,3),...sections?[sections]:[]].join(`
|
|
9
|
-
`)}function printAlertGroup(group,groupId){let alerts=group.alerts??[],singleAlert=alerts.length===1?alerts[0]:void 0,singleAlertRuleIds=singleAlert?getRuleIds(singleAlert):[],singleAlertResolvedAt=singleAlert?getAlertResolvedAt(singleAlert):void 0,summaryRows=[["Title",truncateEnd(getGroupTitle(group),80)],["Group id",group.id||groupId],["Type",getGroupType(group)],["Status",getGroupStatus(group)],["Started At",formatDate(getGroupStartedAt(group))],...singleAlertResolvedAt!==void 0?[["Resolved At",formatDate(singleAlertResolvedAt)]]:[],["Alerts",String(alerts.length)],...singleAlert?.id?[["Alert id",singleAlert.id]]:[],...singleAlertRuleIds.length>0?[["Rule id",singleAlertRuleIds.map(id=>truncateMiddle(id,48)).join(", ")]]:[],...singleAlert?getDetailRows(singleAlert):[]],renderedAlerts=alerts.length>0?alerts.length===1?renderAlertSections(alerts[0]):alerts.map((alert,index)=>renderAlert(alert,index,alerts.length)).join(`
|
|
10
|
-
|
|
11
|
-
`):"No alerts in this group.";output_manager_default.print(["",`${import_chalk.default.bold("Alert group")} ${import_chalk.default.cyan(group.id||groupId)}`,renderAlertTable(summaryRows,3),"",renderedAlerts,""].join(`
|
|
12
|
-
`))}async function inspect(client,argv){let parsedArgs,spec=getFlagsSpecification(inspectSubcommand.options);try{parsedArgs=parseArguments(argv,spec)}catch(e){let msg=e instanceof Error?e.message:String(e),projectFlagMissingArg=msg.includes("--project")&&msg.includes("requires argument");return outputAgentError(client,{status:"error",reason:AGENT_REASON.INVALID_ARGUMENTS,message:projectFlagMissingArg?"`--project` requires a project name or id (for example `--project my-app`).":msg,next:projectFlagMissingArg?[{command:buildCommandWithGlobalFlags(client.argv,"alerts inspect <groupId> --project <name-or-id>"),when:"Re-run with placeholders replaced"}]:[{command:buildCommandWithGlobalFlags(client.argv,"alerts inspect --help"),when:"See valid `alerts inspect` usage"}]},2),printError(e),2}let groupId=parsedArgs.args[0],fr=validateJsonOutput(parsedArgs.flags);if(!fr.valid)return outputAgentError(client,{status:"error",reason:AGENT_REASON.INVALID_ARGUMENTS,message:fr.error},2),output_manager_default.error(fr.error),2;if(!groupId)return outputAgentError(client,{status:"error",reason:AGENT_REASON.MISSING_ARGUMENTS,message:`Missing group id. Example: ${packageName} alerts inspect <groupId>`,next:[{command:buildCommandWithGlobalFlags(client.argv,"alerts inspect <groupId>"),when:"Replace <groupId> with a group id from `vercel alerts`"}]},2),outputError(client,fr.jsonOutput,"MISSING_ARGUMENTS","Usage: `vercel alerts inspect <groupId>`");let scope=await resolveInspectScope(client,{project:parsedArgs.flags["--project"],all:parsedArgs.flags["--all"],jsonOutput:fr.jsonOutput,command:`alerts inspect ${groupId}`});if(typeof scope=="number")return scope;let query=new URLSearchParams({teamId:scope.teamId});scope.projectId&&query.set("projectId",scope.projectId);let path=`/alerts/v3/groups/${encodeURIComponent(groupId)}?${query.toString()}`;output_manager_default.spinner("Fetching alert group...");try{let group=await client.fetch(path);return fr.jsonOutput?client.stdout.write(`${JSON.stringify({group},null,2)}
|
|
13
|
-
`):printAlertGroup(group,groupId),0}catch(err){if(isAPIError(err)){let msg=err.serverMessage||`API error (${err.status}).`,reason=err.status===401?"not_authorized":err.status===403?"forbidden":err.status===404?AGENT_REASON.NOT_FOUND:err.status===429?"rate_limited":AGENT_REASON.API_ERROR;return outputAgentError(client,{status:"error",reason,message:msg,...err.status===401||err.status===403||err.status===404?{hint:scope.projectId?"The request was scoped to a project. Use --all, and --scope <team-slug> if the group belongs to another team.":"Confirm team scope; use --scope <team-slug> if the group belongs to another team.",next:[{command:buildCommandWithGlobalFlags(client.argv,"whoami"),when:"See current user and team"},{command:buildCommandWithGlobalFlags(client.argv,scope.projectId?`alerts inspect ${groupId} --all`:`alerts inspect ${groupId}`),when:"Retry after fixing scope or permissions"}]}:{}},1),outputError(client,fr.jsonOutput,err.code||"API_ERROR",msg)}throw err}finally{output_manager_default.stopSpinner()}}async function resolveInspectScope(client,opts){if(opts.project||opts.all)return resolveAlertsScope(client,opts);let linkedProject=await getLinkedProject(client);return linkedProject.status==="error"?linkedProject.exitCode:linkedProject.status==="linked"?scopeFromLinkedProject(linkedProject):resolveRulesTeam(client,opts.jsonOutput)}export{inspect as default};
|
|
@@ -1,9 +0,0 @@
|
|
|
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{parseThreadArg}from"./chunk-2S6PE6GB.js";import{actorLabel,displayPath,renderThreadDetail,threadAge,truncate}from"./chunk-GA277JFB.js";import{getThread,handleCommentsParseError,inferBranch,listMessages,listThreads,resolveCommentsScope,threadNotFoundMessage,toApiErrorParts}from"./chunk-D2BZMGHP.js";import"./chunk-F4KY2TOK.js";import{outputError}from"./chunk-RW3X523R.js";import"./chunk-ID663OJ7.js";import"./chunk-3JGBBS6V.js";import"./chunk-BL3HBRF6.js";import{canPrompt}from"./chunk-IQ7FPAI4.js";import{inspectSubcommand}from"./chunk-YHQ7PPXP.js";import"./chunk-G4T7VBGN.js";import"./chunk-BS32OUOC.js";import"./chunk-B4UE4LVE.js";import"./chunk-MXTC4ZAQ.js";import"./chunk-FGFLTLEA.js";import"./chunk-DGYHWXD2.js";import"./chunk-IUXSJWL3.js";import"./chunk-KNLGWGUE.js";import"./chunk-ADLBLGT3.js";import"./chunk-BBKEP7RO.js";import"./chunk-4NTBYNFR.js";import{parseArguments}from"./chunk-VOCZ34ON.js";import"./chunk-F53OKXYI.js";import{getFlagsSpecification,validateJsonOutput}from"./chunk-AWMQGOS2.js";import"./chunk-FUX6LKNP.js";import"./chunk-OPORM35X.js";import"./chunk-4SAVH3H7.js";import{isAPIError}from"./chunk-6VH56CX2.js";import"./chunk-JESNVRVR.js";import{output_manager_default}from"./chunk-XP3FT56R.js";import"./chunk-BLUPZPAS.js";import"./chunk-RM3ZDRYE.js";import"./chunk-OO572JUC.js";import"./chunk-D3AHZ5LI.js";import"./chunk-2GHZGOWT.js";import"./chunk-YHPPP3SF.js";import"./chunk-NB2WLB3J.js";import"./chunk-ISWW3DKF.js";import"./chunk-BRQUZ5NC.js";import"./chunk-BZENIQ7N.js";async function pickThread(client,jsonOutput){if(!canPrompt(client)||jsonOutput)return outputError(client,jsonOutput,"MISSING_THREAD","Pass a thread ID or URL: `vercel comments inspect <thread>`.");let scope=await resolveCommentsScope(client,{requireProject:!0,jsonOutput});if(typeof scope=="number")return scope;let focus=scope.linked?inferBranch(client.cwd):void 0;output_manager_default.spinner("Fetching comments\u2026");let response;try{response=await listThreads(client,scope.teamId,{projectId:scope.projectId,status:"unresolved",branch:focus?[focus.value]:void 0,limit:20})}finally{output_manager_default.stopSpinner()}return response.threads.length===0?outputError(client,jsonOutput,"NO_COMMENTS",`No unresolved comments${focus?` on ${focus.value}`:""} to pick from.`):client.input.select({message:"Select a comment",choices:response.threads.map(thread=>({name:`${threadAge(thread)} ${actorLabel(thread.messages[0]?.author)} ${displayPath(thread)} \u201C${truncate(thread.messages[0]?.text??"",48)}\u201D`,value:thread.id}))})}async function fetchAllMessages(client,teamId,thread){if(thread.messageCount<=thread.messages.length)return thread.messages;let all=[],cursor;do{let page=await listMessages(client,teamId,thread.id,{limit:100,cursor});all.push(...page.messages),cursor=page.pagination?.nextCursor}while(cursor&&all.length<thread.messageCount);return all}async function inspect(client,telemetry){let parsedArgs,flagsSpecification=getFlagsSpecification(inspectSubcommand.options);try{parsedArgs=parseArguments(client.argv.slice(2),flagsSpecification)}catch(err){return handleCommentsParseError(err,"inspect")}let formatResult=validateJsonOutput(parsedArgs.flags);if(!formatResult.valid)return output_manager_default.error(formatResult.error),2;let jsonOutput=formatResult.jsonOutput,showContext=!!parsedArgs.flags["--context"];telemetry.trackCliOptionFormat(parsedArgs.flags["--format"]),telemetry.trackCliFlagContext(parsedArgs.flags["--context"]),telemetry.trackCliOptionProject(parsedArgs.flags["--project"]);let threadInput=parsedArgs.args[2];telemetry.trackCliArgumentThread(threadInput);let threadId,urlTeamSlug;if(threadInput){let parsed=parseThreadArg(threadInput);if(!parsed)return outputError(client,jsonOutput,"INVALID_THREAD",`Could not extract a thread ID from "${threadInput}". Pass the thread ID or its vercel.com URL.`);threadId=parsed.id,urlTeamSlug=parsed.teamSlug}else{let picked=await pickThread(client,jsonOutput);if(typeof picked=="number")return picked;threadId=picked}let scope=await resolveCommentsScope(client,{project:parsedArgs.flags["--project"],requireProject:!1,jsonOutput,urlTeamSlug});if(typeof scope=="number")return scope;jsonOutput||output_manager_default.spinner("Fetching comment\u2026");let thread,messages;try{thread=await getThread(client,scope.teamId,threadId),messages=await fetchAllMessages(client,scope.teamId,thread)}catch(err){if(isAPIError(err)){let{code,message}=toApiErrorParts(err);return outputError(client,jsonOutput,code,err.status===404?threadNotFoundMessage(threadId,scope):message)}throw err}finally{output_manager_default.stopSpinner()}return jsonOutput?(client.stdout.write(`${JSON.stringify({...thread,messages},null,2)}
|
|
8
|
-
`),0):(output_manager_default.print(`${renderThreadDetail(thread,messages,{showContext})}
|
|
9
|
-
`),0)}export{inspect as default};
|
|
@@ -1,12 +0,0 @@
|
|
|
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{renderThreadRow}from"./chunk-GA277JFB.js";import{handleCommentsParseError,inferBranch,listThreads,resolveCommentsScope}from"./chunk-D2BZMGHP.js";import{applyDeprecatedGitBranchFlag}from"./chunk-CEMPU323.js";import"./chunk-F4KY2TOK.js";import{handleValidationError,outputError,validateIntegerRangeWithDefault}from"./chunk-RW3X523R.js";import"./chunk-ID663OJ7.js";import"./chunk-3JGBBS6V.js";import"./chunk-BL3HBRF6.js";import{printNextPageCommand}from"./chunk-QMCHGGDX.js";import{listSubcommand}from"./chunk-YHQ7PPXP.js";import"./chunk-G4T7VBGN.js";import"./chunk-BS32OUOC.js";import{getScope}from"./chunk-B4UE4LVE.js";import"./chunk-MXTC4ZAQ.js";import"./chunk-FGFLTLEA.js";import"./chunk-DGYHWXD2.js";import"./chunk-IUXSJWL3.js";import"./chunk-KNLGWGUE.js";import"./chunk-ADLBLGT3.js";import"./chunk-BBKEP7RO.js";import"./chunk-4NTBYNFR.js";import{parseArguments}from"./chunk-VOCZ34ON.js";import"./chunk-F53OKXYI.js";import{getFlagsSpecification,stripSensitiveAuthArgs,validateJsonOutput}from"./chunk-AWMQGOS2.js";import"./chunk-FUX6LKNP.js";import"./chunk-OPORM35X.js";import"./chunk-4SAVH3H7.js";import{isAPIError}from"./chunk-6VH56CX2.js";import{getCommandName,getCommandNamePlain}from"./chunk-JESNVRVR.js";import{output_manager_default}from"./chunk-XP3FT56R.js";import"./chunk-BLUPZPAS.js";import"./chunk-RM3ZDRYE.js";import"./chunk-OO572JUC.js";import"./chunk-D3AHZ5LI.js";import"./chunk-2GHZGOWT.js";import"./chunk-YHPPP3SF.js";import{require_source}from"./chunk-NB2WLB3J.js";import"./chunk-ISWW3DKF.js";import"./chunk-BRQUZ5NC.js";import{__toESM}from"./chunk-BZENIQ7N.js";var import_chalk=__toESM(require_source(),1);function validateStatus(value){let status=value??"unresolved";if(["unresolved","resolved","all"].includes(status))return status}async function resolveAuthors(client,authors,jsonOutput){if(!authors||authors.length===0)return;if(!authors.includes("me"))return authors;let{user}=await getScope(client);return user?authors.map(author=>author==="me"?user.id:author):outputError(client,jsonOutput,"USER_REQUIRED","Can't resolve `--author me` when authenticated as an app. Use an author ID with `--author`, or authenticate with a user token.")}function statusWord(status){return status==="all"?"":` ${status}`}function printActiveFilters(flags){let parts=[];flags["--author"]?.length&&parts.push(`--author ${flags["--author"].join(", ")} (takes a user ID or \`me\` \u2014 usernames match nothing)`);let pagePaths=flags["--page-path"]??flags["--page"];pagePaths?.length&&parts.push(`--page-path ${pagePaths.join(", ")}`),flags["--search"]&&parts.push(`--search ${flags["--search"]}`),flags["--content-id"]?.length&&parts.push(`--content-id ${flags["--content-id"].join(", ")}`),parts.length>0&&output_manager_default.log(`Filters: ${parts.join(" \xB7 ")}`)}function countLine(count,status){return`${count}${statusWord(status)} comment${count===1?"":"s"}`}var SCOPE_FLAG_NAMES=new Set(["--scope","-S","--project","-p","--team","-T"]);function argvFlagTokens(client){return stripSensitiveAuthArgs(client.argv.slice(3))}function scopeFlagsSuffix(client){let tokens=argvFlagTokens(client),out=[];for(let i=0;i<tokens.length;i++){let token=tokens[i],name=token.split("=")[0];SCOPE_FLAG_NAMES.has(name)&&(out.push(token),!token.includes("=")&&i+1<tokens.length&&out.push(tokens[++i]))}return out.length>0?` ${out.join(" ")}`:""}var RENAMED_LIST_FLAGS={"--page":"--page-path","--branch":"--git-branch"};function nextPageFlagsSuffix(client){let tokens=argvFlagTokens(client),out=[];for(let i=0;i<tokens.length;i++){let token=tokens[i];if(!token.startsWith("-"))continue;let name=token.split("=")[0];if(name==="--next"||name==="-N"){!token.includes("=")&&i+1<tokens.length&&i++;continue}let renamed=RENAMED_LIST_FLAGS[name];out.push(renamed?`${renamed}${token.slice(name.length)}`:token),!token.includes("=")&&i+1<tokens.length&&!tokens[i+1].startsWith("-")&&out.push(tokens[++i])}return out.length>0?` ${out.join(" ")}`:""}function shellSafe(value){return/^[A-Za-z0-9._/-]+$/.test(value)?value:`'${value.replace(/'/g,"'\\''")}'`}async function printEmptyState(client,scope,focus,params,status,flags){let probe;try{probe=await listThreads(client,scope.teamId,{...params,branch:void 0,cursor:void 0,limit:20})}catch{output_manager_default.log(`No${statusWord(status)} comments on ${focus.value}.`);return}let branches=new Map;for(let thread of probe.threads){let branch=thread.branch??"(no branch)";branches.set(branch,(branches.get(branch)??0)+1)}if(branches.size===0){output_manager_default.log(`No${statusWord(status)} comments in ${scope.projectName??"this project"} on any branch.`),printActiveFilters(flags);return}output_manager_default.log(`No${statusWord(status)} comments on ${focus.value}.`);let suffix=probe.pagination.nextCursor?"+":"",scopeSuffix=scopeFlagsSuffix(client);if(branches.size===1){let[branch,count]=[...branches.entries()][0];output_manager_default.log(`${count}${suffix}${statusWord(status)} on ${import_chalk.default.bold(branch)} \u2014 run ${getCommandName(`comments --git-branch ${shellSafe(branch)}${scopeSuffix}`)}`);return}let total=[...branches.values()].reduce((a,b)=>a+b,0);output_manager_default.log(`${total}${suffix}${statusWord(status)} on other branches \u2014 run ${getCommandName(`comments --all-branches${scopeSuffix}`)}`)}async function list(client,telemetry,defaultInvocation){let parsedArgs,flagsSpecification=getFlagsSpecification(listSubcommand.options);try{parsedArgs=parseArguments(client.argv.slice(2),flagsSpecification)}catch(err){return handleCommentsParseError(err,"list")}let flags=parsedArgs.flags,pagePaths=flags["--page-path"]??flags["--page"],expectedPositionals=defaultInvocation?1:2;if(parsedArgs.args.length>expectedPositionals)return output_manager_default.error(`Unknown ${defaultInvocation?"subcommand":"argument"} "${parsedArgs.args[expectedPositionals]}". Run \`vercel comments --help\` for usage.`),1;let formatResult=validateJsonOutput(flags);if(!formatResult.valid)return output_manager_default.error(formatResult.error),2;let jsonOutput=formatResult.jsonOutput;telemetry.trackCliOptionProject(flags["--project"]),telemetry.trackCliOptionGitBranch(flags["--git-branch"]),telemetry.trackCliOptionBranch(flags["--branch"]),telemetry.trackCliFlagAllBranches(flags["--all-branches"]),telemetry.trackCliOptionStatus(flags["--status"]),telemetry.trackCliOptionPagePath(flags["--page-path"]),telemetry.trackCliOptionPage(flags["--page"]),telemetry.trackCliOptionAuthor(flags["--author"]),telemetry.trackCliOptionContentId(flags["--content-id"]),telemetry.trackCliOptionSearch(flags["--search"]),telemetry.trackCliOptionLimit(flags["--limit"]),telemetry.trackCliOptionNext(flags["--next"]),telemetry.trackCliOptionFormat(flags["--format"]);let branchError=applyDeprecatedGitBranchFlag(client,flags,"--branch");if(branchError)return outputError(client,jsonOutput,"MUTUAL_EXCLUSIVITY",branchError);let status=validateStatus(flags["--status"]);if(!status)return outputError(client,jsonOutput,"INVALID_STATUS",`Invalid --status "${flags["--status"]}". Valid values: unresolved, resolved, all.`);let limitResult=validateIntegerRangeWithDefault(flags["--limit"],{flag:"--limit",min:1,max:100,defaultValue:20});if(!limitResult.valid)return handleValidationError(limitResult,jsonOutput,client);if(flags["--git-branch"]&&flags["--all-branches"])return outputError(client,jsonOutput,"MUTUAL_EXCLUSIVITY","Cannot specify both --git-branch and --all-branches.");let scope=await resolveCommentsScope(client,{project:flags["--project"],requireProject:!0,jsonOutput});if(typeof scope=="number")return scope;let focus,branchFilter;if(flags["--git-branch"]&&flags["--git-branch"].length>0)branchFilter=flags["--git-branch"],focus={value:branchFilter.join(", "),source:"flag"};else if(!flags["--all-branches"]&&scope.linked){let inferred=inferBranch(client.cwd);inferred&&(focus=inferred,branchFilter=[inferred.value])}let authors=await resolveAuthors(client,flags["--author"],jsonOutput);if(typeof authors=="number")return authors;let params={projectId:scope.projectId,branch:branchFilter,status:status==="all"?void 0:status,page:pagePaths,author:authors,contentId:flags["--content-id"],search:flags["--search"],limit:limitResult.value,cursor:flags["--next"]};jsonOutput||output_manager_default.spinner("Fetching comments\u2026");let response;try{response=await listThreads(client,scope.teamId,params)}catch(err){if(isAPIError(err))return outputError(client,jsonOutput,err.code||"API_ERROR",err.serverMessage||`API error (${err.status}).`);throw err}finally{output_manager_default.stopSpinner()}let threads=response.threads??[],nextCursor=response.pagination?.nextCursor??null;if(jsonOutput){let envelope={scope:{teamId:scope.teamId,...scope.teamSlug&&{teamSlug:scope.teamSlug},...scope.projectId&&{projectId:scope.projectId},...scope.projectName&&{projectName:scope.projectName},...focus&&focus.source!=="flag"&&{inferredBranch:focus.value}},filters:{...status!=="all"&&{status},...focus&&{branch:{value:focus.value,source:focus.source}}},pagination:{nextCursor,next:nextCursor},threads};return client.stdout.write(`${JSON.stringify(envelope,null,2)}
|
|
8
|
-
`),0}let branchLabel=focus?focus.value:"all branches";if(output_manager_default.log(`Comments in ${import_chalk.default.bold(scope.projectName??scope.projectId??"")} \xB7 ${branchLabel}`),threads.length===0)return focus?await printEmptyState(client,scope,focus,params,status,flags):(output_manager_default.log(`No${statusWord(status)} comments in ${scope.projectName??"this project"}.`),printActiveFilters(flags)),0;output_manager_default.print(`
|
|
9
|
-
`);for(let thread of threads)output_manager_default.print(`${renderThreadRow(thread,{showBranch:!focus})}
|
|
10
|
-
|
|
11
|
-
`);return output_manager_default.log(countLine(threads.length,status)),output_manager_default.log(`To read a thread, run ${getCommandName(`comments inspect <id>${scopeFlagsSuffix(client)}`)}`),nextCursor&&(output_manager_default.print(`
|
|
12
|
-
`),printNextPageCommand(getCommandNamePlain(`comments${nextPageFlagsSuffix(client)} --next ${nextCursor}`))),0}export{list as default};
|
|
@@ -1,9 +0,0 @@
|
|
|
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{AUTH_FAILURE,CREDENTIAL_STORE_CONFLICT,VCR_ENGINES,VCR_LOGIN_USERNAME,emitVcrArgParseError,engineLogin,engineLogout,handleVcrApiError,isEngineInstalled,resolveRegistry,resolveVcrScope,stderrTail,validateVcrChoice,validateVcrJsonOutput}from"./chunk-7BGKE3JW.js";import{outputError}from"./chunk-RW3X523R.js";import"./chunk-BUJITHGZ.js";import"./chunk-FBYA6LLM.js";import"./chunk-GD7AV7BO.js";import"./chunk-SCV7XEEO.js";import{loginSubcommand}from"./chunk-ABZEMNDR.js";import"./chunk-3AYYFYZG.js";import"./chunk-76KGQU2G.js";import"./chunk-UNEGQPD3.js";import{printError}from"./chunk-G4T7VBGN.js";import"./chunk-B4UE4LVE.js";import"./chunk-MXTC4ZAQ.js";import"./chunk-FGFLTLEA.js";import{AGENT_REASON,buildCommandWithGlobalFlags,outputAgentError}from"./chunk-DGYHWXD2.js";import"./chunk-IUXSJWL3.js";import"./chunk-KNLGWGUE.js";import"./chunk-ADLBLGT3.js";import"./chunk-BBKEP7RO.js";import"./chunk-4NTBYNFR.js";import{parseArguments}from"./chunk-VOCZ34ON.js";import"./chunk-F53OKXYI.js";import{getFlagsSpecification}from"./chunk-AWMQGOS2.js";import"./chunk-FUX6LKNP.js";import"./chunk-OPORM35X.js";import"./chunk-4SAVH3H7.js";import{isAPIError}from"./chunk-6VH56CX2.js";import"./chunk-JESNVRVR.js";import{output_manager_default}from"./chunk-XP3FT56R.js";import"./chunk-BLUPZPAS.js";import"./chunk-RM3ZDRYE.js";import"./chunk-OO572JUC.js";import"./chunk-D3AHZ5LI.js";import"./chunk-2GHZGOWT.js";import"./chunk-YHPPP3SF.js";import"./chunk-NB2WLB3J.js";import"./chunk-ISWW3DKF.js";import"./chunk-BRQUZ5NC.js";import"./chunk-BZENIQ7N.js";var LOGIN_VALID_HOURS=12;async function login(client,argv,telemetry){let parsedArgs;try{parsedArgs=parseArguments(argv,getFlagsSpecification(loginSubcommand.options))}catch(err){return emitVcrArgParseError(client,err,"vcr login <engine> --project <name-or-id>"),printError(err),2}let fr=validateVcrJsonOutput(client,parsedArgs.flags);if(typeof fr=="number")return fr;let engineArg=parsedArgs.args[0],project=parsedArgs.flags["--project"];if(telemetry.trackCliArgumentEngine(engineArg),telemetry.trackCliOptionProject(project),telemetry.trackCliOptionFormat(parsedArgs.flags["--format"]),!engineArg){let message=`Missing engine. Choose one of: ${VCR_ENGINES.join(", ")}.`;return outputAgentError(client,{status:"error",reason:AGENT_REASON.MISSING_ARGUMENTS,message,next:[{command:buildCommandWithGlobalFlags(client.argv,"vcr login docker"),when:"Replace docker with the container tool you use"}]},2),outputError(client,fr.jsonOutput,"MISSING_ARGUMENTS",message)}let choiceError=validateVcrChoice(client,"engine",engineArg,VCR_ENGINES,fr.jsonOutput);if(typeof choiceError=="number")return choiceError;let engine=engineArg;if(!isEngineInstalled(engine)){let message=`\`${engine}\` is not installed or not on your PATH. Install it and try again.`;return outputAgentError(client,{status:"error",reason:"engine_not_found",message},1),outputError(client,fr.jsonOutput,"ENGINE_NOT_FOUND",message)}let scope=await resolveVcrScope(client,{project,jsonOutput:fr.jsonOutput});if(typeof scope=="number")return scope;let registry=resolveRegistry();output_manager_default.spinner(`Authenticating ${engine} with ${registry}...`);try{let{token}=await client.fetch(`/projects/${scope.projectId}/token`,{method:"POST",accountId:scope.teamId,body:JSON.stringify({source:"vercel-cli"}),headers:{"Content-Type":"application/json"}}),result=await engineLogin(engine,registry,token);if(result.exitCode!==0&&CREDENTIAL_STORE_CONFLICT.test(result.stderr)&&(output_manager_default.debug(`Stale ${registry} credential in the ${engine} credential store; running \`${engine} logout\` and retrying`),await engineLogout(engine,registry),result=await engineLogin(engine,registry,token)),result.exitCode!==0){let message=AUTH_FAILURE.test(result.stderr)?`Authentication to ${registry} as "${VCR_LOGIN_USERNAME}" was rejected. The OIDC token may be expired or lack access to this project.`:`\`${engine} login\` failed (exit code ${result.exitCode}).${stderrTail(result.stderr)?`
|
|
8
|
-
${stderrTail(result.stderr)}`:""}`;return outputAgentError(client,{status:"error",reason:AUTH_FAILURE.test(result.stderr)?"not_authorized":"command_failed",message,next:[{command:buildCommandWithGlobalFlags(client.argv,"whoami"),when:"See current user and team"}]},1),outputError(client,fr.jsonOutput,AUTH_FAILURE.test(result.stderr)?"NOT_AUTHORIZED":"COMMAND_FAILED",message)}return fr.jsonOutput?client.stdout.write(`${JSON.stringify({status:"success",engine,registry,username:VCR_LOGIN_USERNAME,validForHours:LOGIN_VALID_HOURS},null,2)}
|
|
9
|
-
`):(output_manager_default.success(`Logged in to ${registry} as ${VCR_LOGIN_USERNAME} (${engine}).`),output_manager_default.log(`Credentials are valid for ~${LOGIN_VALID_HOURS} hours. Re-run \`${buildCommandWithGlobalFlags(client.argv,`vcr login ${engine}`)}\` to refresh.`)),0}catch(err){if(isAPIError(err))return handleVcrApiError(client,err,fr.jsonOutput);throw err}finally{output_manager_default.stopSpinner()}}export{login as default};
|
|
@@ -1,7 +0,0 @@
|
|
|
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{collectBuildLogs,displayBuildLogs,displayBuildLogsUntilFinalError,parseLogLines}from"./chunk-OCQPXOTX.js";import"./chunk-UJSW56GS.js";import"./chunk-R6BEOVTU.js";import"./chunk-HCRD3JFL.js";import"./chunk-BS32OUOC.js";import"./chunk-B4UE4LVE.js";import"./chunk-MXTC4ZAQ.js";import"./chunk-FGFLTLEA.js";import"./chunk-DGYHWXD2.js";import"./chunk-IUXSJWL3.js";import"./chunk-KNLGWGUE.js";import"./chunk-ADLBLGT3.js";import"./chunk-BBKEP7RO.js";import"./chunk-4NTBYNFR.js";import"./chunk-VOCZ34ON.js";import"./chunk-F53OKXYI.js";import"./chunk-AWMQGOS2.js";import"./chunk-FUX6LKNP.js";import"./chunk-OPORM35X.js";import"./chunk-4SAVH3H7.js";import"./chunk-6VH56CX2.js";import"./chunk-JESNVRVR.js";import"./chunk-XP3FT56R.js";import"./chunk-BLUPZPAS.js";import"./chunk-RM3ZDRYE.js";import"./chunk-OO572JUC.js";import"./chunk-D3AHZ5LI.js";import"./chunk-2GHZGOWT.js";import"./chunk-YHPPP3SF.js";import"./chunk-NB2WLB3J.js";import"./chunk-ISWW3DKF.js";import"./chunk-BRQUZ5NC.js";import"./chunk-BZENIQ7N.js";export{collectBuildLogs,displayBuildLogs,displayBuildLogsUntilFinalError,parseLogLines};
|
|
@@ -1,8 +0,0 @@
|
|
|
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{printRules}from"./chunk-SXOSF4O6.js";import"./chunk-3XW7N4W3.js";import{parseRulesFlagsAndScope}from"./chunk-E6CO6TUM.js";import"./chunk-2WYYGGEO.js";import{emitRulesArgParseError,handleRulesApiError,outputRulesError,rulesCollectionPath}from"./chunk-COM5YCHF.js";import"./chunk-GHAY4PSD.js";import{normalizeRepeatableStringFilters}from"./chunk-RW3X523R.js";import"./chunk-ID663OJ7.js";import"./chunk-HRR57QNP.js";import"./chunk-GZNDA6SV.js";import"./chunk-PFD7LETF.js";import{monitorsLsSubcommand}from"./chunk-QZX7VG2V.js";import"./chunk-773GOZIR.js";import{printError}from"./chunk-G4T7VBGN.js";import"./chunk-67GZ5REA.js";import"./chunk-BS32OUOC.js";import"./chunk-B4UE4LVE.js";import"./chunk-MXTC4ZAQ.js";import"./chunk-FGFLTLEA.js";import"./chunk-DGYHWXD2.js";import"./chunk-IUXSJWL3.js";import"./chunk-KNLGWGUE.js";import"./chunk-ADLBLGT3.js";import"./chunk-BBKEP7RO.js";import"./chunk-4NTBYNFR.js";import{parseArguments}from"./chunk-VOCZ34ON.js";import"./chunk-F53OKXYI.js";import{getFlagsSpecification,validateJsonOutput}from"./chunk-AWMQGOS2.js";import"./chunk-FUX6LKNP.js";import"./chunk-OPORM35X.js";import"./chunk-4SAVH3H7.js";import{isAPIError}from"./chunk-6VH56CX2.js";import"./chunk-JESNVRVR.js";import{output_manager_default}from"./chunk-XP3FT56R.js";import"./chunk-BLUPZPAS.js";import"./chunk-RM3ZDRYE.js";import"./chunk-OO572JUC.js";import"./chunk-D3AHZ5LI.js";import"./chunk-2GHZGOWT.js";import"./chunk-YHPPP3SF.js";import"./chunk-NB2WLB3J.js";import"./chunk-ISWW3DKF.js";import"./chunk-BRQUZ5NC.js";import"./chunk-BZENIQ7N.js";var BUILT_IN_ALERT_TYPES=["usage_anomaly","error_anomaly","botId_anomaly","firewallSystemRule_anomaly","firewallCustomRule_anomaly","testAlert_anomaly","buildTime_anomaly"];var BUILT_IN_ALERT_TYPE_SET=new Set(BUILT_IN_ALERT_TYPES);function parseRuleTypeFilter(client,values,jsonOutput){let types=normalizeRepeatableStringFilters(values);if(types.length===0)return;let invalidType=types.find(type=>type!=="built-in"&&type!=="custom"&&type!=="custom_alert"&&!BUILT_IN_ALERT_TYPE_SET.has(type));if(invalidType)return outputRulesError(client,jsonOutput,"INVALID_RULE_TYPE",`Invalid monitor type "${invalidType}". Expected a supported monitor type or built-in trigger type.`);let includeCustom=types.includes("custom")||types.includes("custom_alert"),includeAllBuiltIn=types.includes("built-in"),builtInAlertTypes=new Set(types.filter(type=>BUILT_IN_ALERT_TYPE_SET.has(type))),includeBuiltIn=includeAllBuiltIn||builtInAlertTypes.size>0;return{apiType:includeCustom===includeBuiltIn?void 0:includeCustom?"custom":"built-in",matches(rule){return rule.type==="custom"?includeCustom:includeAllBuiltIn?!0:includeBuiltIn?rule.triggers.mode==="all"?!0:rule.triggers.items.some(trigger=>builtInAlertTypes.has(trigger.type)):!1}}}async function ls(client,argv,api,telemetry){let parsedArgs;try{parsedArgs=parseArguments(argv,getFlagsSpecification(monitorsLsSubcommand.options))}catch(error){return emitRulesArgParseError(client,error,"monitors ls --project <name-or-id>"),printError(error),2}let flags=parsedArgs.flags;telemetry?.trackCliOptionType(flags["--type"]),telemetry?.trackCliFlagAll(flags["--all"]),telemetry?.trackCliFlagJson(flags["--json"]);let format=validateJsonOutput(flags);if(!format.valid)return outputRulesError(client,!1,"INVALID_ARGUMENTS",format.error);let typeFilter=parseRuleTypeFilter(client,flags["--type"],format.jsonOutput);if(typeof typeFilter=="number")return typeFilter;let scope=await parseRulesFlagsAndScope(client,{"--project":flags["--project"],"--all":flags["--all"]},format.jsonOutput,"monitors ls");if(typeof scope=="number")return scope;output_manager_default.spinner("Fetching monitors\u2026");try{let rules=[],cursor;do{let page=await client.fetch(rulesCollectionPath(api,scope.teamId,{limit:100,cursor,projectId:scope.projectId,type:typeFilter?.apiType}));rules.push(...page[api.listKey]),cursor=page.pagination.next??void 0}while(cursor);let filteredRules=typeFilter?rules.filter(typeFilter.matches):rules;return format.jsonOutput?client.stdout.write(`${JSON.stringify({[api.listKey]:filteredRules},null,2)}
|
|
8
|
-
`):filteredRules.length===0?output_manager_default.log("No monitors found for this scope"):printRules(filteredRules),0}catch(error){if(isAPIError(error))return handleRulesApiError(client,error,format.jsonOutput);throw error}finally{output_manager_default.stopSpinner()}}export{ls as default};
|
|
@@ -1,11 +0,0 @@
|
|
|
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{printRuleNotifications,printRulesNotifications}from"./chunk-TZFDVQ72.js";import{resolveRulesTeam}from"./chunk-E6CO6TUM.js";import"./chunk-2WYYGGEO.js";import{emitRulesArgParseError,handleRulesApiError,outputRulesError,ruleNotificationsPath,rulesNotificationsPath}from"./chunk-COM5YCHF.js";import"./chunk-RW3X523R.js";import{monitorsNotificationsLsSubcommand}from"./chunk-QZX7VG2V.js";import{printError}from"./chunk-G4T7VBGN.js";import"./chunk-B4UE4LVE.js";import"./chunk-MXTC4ZAQ.js";import"./chunk-FGFLTLEA.js";import{AGENT_STATUS,buildCommandWithGlobalFlags}from"./chunk-DGYHWXD2.js";import"./chunk-IUXSJWL3.js";import"./chunk-KNLGWGUE.js";import"./chunk-ADLBLGT3.js";import"./chunk-BBKEP7RO.js";import"./chunk-4NTBYNFR.js";import{parseArguments}from"./chunk-VOCZ34ON.js";import{quoteArg}from"./chunk-F53OKXYI.js";import{getFlagsSpecification,validateJsonOutput}from"./chunk-AWMQGOS2.js";import"./chunk-FUX6LKNP.js";import"./chunk-OPORM35X.js";import"./chunk-4SAVH3H7.js";import{isAPIError}from"./chunk-6VH56CX2.js";import"./chunk-JESNVRVR.js";import{output_manager_default}from"./chunk-XP3FT56R.js";import"./chunk-BLUPZPAS.js";import"./chunk-RM3ZDRYE.js";import"./chunk-OO572JUC.js";import"./chunk-D3AHZ5LI.js";import"./chunk-2GHZGOWT.js";import"./chunk-YHPPP3SF.js";import"./chunk-NB2WLB3J.js";import"./chunk-ISWW3DKF.js";import"./chunk-BRQUZ5NC.js";import"./chunk-BZENIQ7N.js";var PAGE_LIMIT=100;async function fetchRulesNotifications(client,api,teamId){let notifications={},cursor;do{let page=await client.fetch(rulesNotificationsPath(api,teamId,{limit:PAGE_LIMIT,cursor}));Object.assign(notifications,page.notifications),cursor=page.pagination.next??void 0}while(cursor);return{notifications}}async function ls(client,argv,api){let parsedArgs;try{parsedArgs=parseArguments(argv,getFlagsSpecification(monitorsNotificationsLsSubcommand.options))}catch(error){return emitRulesArgParseError(client,error,"monitors notifications [monitor-id]"),printError(error),2}let format=validateJsonOutput(parsedArgs.flags);if(!format.valid)return outputRulesError(client,!1,"INVALID_ARGUMENTS",format.error);let[ruleId,extraArg]=parsedArgs.args;if(extraArg)return outputRulesError(client,format.jsonOutput,"INVALID_ARGUMENTS","Expected exactly one monitor ID.");let scope=await resolveRulesTeam(client,format.jsonOutput);if(typeof scope=="number")return scope;client.nonInteractive||output_manager_default.spinner(ruleId?"Fetching notification destinations\u2026":"Fetching monitor notification destinations\u2026");try{if(!ruleId){let result=await fetchRulesNotifications(client,api,scope.teamId);if(client.nonInteractive){let ruleCount=Object.keys(result.notifications).length,notificationCount=Object.values(result.notifications).reduce((count,notifications)=>count+notifications.length,0);client.stdout.write(`${JSON.stringify({status:AGENT_STATUS.OK,...result,message:`Listed ${notificationCount} notification destination${notificationCount===1?"":"s"} across ${ruleCount} readable monitor${ruleCount===1?"":"s"}.`,next:[{command:buildCommandWithGlobalFlags(client.argv,"monitors notifications link <monitor-id> --slack-channel <channel-id> --slack-installation-id <installation-id>"),when:"Link a Slack channel to a monitor"},{command:buildCommandWithGlobalFlags(client.argv,"monitors notifications link <monitor-id> --webhook <webhook-id>"),when:"Link an account webhook to a monitor"}]},null,2)}
|
|
8
|
-
`)}else format.jsonOutput?client.stdout.write(`${JSON.stringify(result,null,2)}
|
|
9
|
-
`):printRulesNotifications(result);return 0}let response=await client.fetch(ruleNotificationsPath(api,scope.teamId,ruleId));if(client.nonInteractive){let count=response.notifications.length;client.stdout.write(`${JSON.stringify({status:AGENT_STATUS.OK,[api.idKey]:ruleId,notifications:response.notifications,message:`${count} notification destination${count===1?"":"s"} linked to monitor ${ruleId}.`,next:[{command:buildCommandWithGlobalFlags(client.argv,`monitors notifications link ${quoteArg(ruleId)} --webhook <webhook-id>`),when:"Link an account webhook"},{command:buildCommandWithGlobalFlags(client.argv,`monitors notifications link ${quoteArg(ruleId)} --slack-channel <channel-id>`),when:"Link a Slack channel"}]},null,2)}
|
|
10
|
-
`)}else format.jsonOutput?client.stdout.write(`${JSON.stringify(response,null,2)}
|
|
11
|
-
`):printRuleNotifications(ruleId,response.notifications);return 0}catch(error){if(isAPIError(error))return handleRulesApiError(client,error,format.jsonOutput);throw error}finally{client.nonInteractive||output_manager_default.stopSpinner()}}export{ls as default};
|
|
@@ -1,9 +0,0 @@
|
|
|
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{buildRuleNotificationsInspectCommand,printRuleNotificationMutationReceipt}from"./chunk-TZFDVQ72.js";import{resolveRulesTeam}from"./chunk-E6CO6TUM.js";import"./chunk-2WYYGGEO.js";import{emitRulesArgParseError,handleRulesApiError,outputRulesError,rulesNotificationLinksPath}from"./chunk-COM5YCHF.js";import"./chunk-RW3X523R.js";import{monitorsNotificationsLinkSubcommand,monitorsNotificationsUnlinkSubcommand,monitorsNotificationsUpdateSubcommand}from"./chunk-QZX7VG2V.js";import{printError}from"./chunk-G4T7VBGN.js";import"./chunk-B4UE4LVE.js";import"./chunk-MXTC4ZAQ.js";import"./chunk-FGFLTLEA.js";import{AGENT_STATUS}from"./chunk-DGYHWXD2.js";import"./chunk-IUXSJWL3.js";import"./chunk-KNLGWGUE.js";import"./chunk-ADLBLGT3.js";import"./chunk-BBKEP7RO.js";import"./chunk-4NTBYNFR.js";import{parseArguments}from"./chunk-VOCZ34ON.js";import"./chunk-F53OKXYI.js";import{getFlagsSpecification,validateJsonOutput}from"./chunk-AWMQGOS2.js";import"./chunk-FUX6LKNP.js";import"./chunk-OPORM35X.js";import"./chunk-4SAVH3H7.js";import{isAPIError}from"./chunk-6VH56CX2.js";import{packageName}from"./chunk-JESNVRVR.js";import{output_manager_default}from"./chunk-XP3FT56R.js";import"./chunk-BLUPZPAS.js";import"./chunk-RM3ZDRYE.js";import"./chunk-OO572JUC.js";import"./chunk-D3AHZ5LI.js";import"./chunk-2GHZGOWT.js";import"./chunk-YHPPP3SF.js";import"./chunk-NB2WLB3J.js";import"./chunk-ISWW3DKF.js";import"./chunk-BRQUZ5NC.js";import"./chunk-BZENIQ7N.js";var API_SLACK_INSTALLATION_REQUIRED_MESSAGE="configId is required unless the team has exactly one Slack configuration.",CLI_SLACK_INSTALLATION_REQUIRED_MESSAGE="A Slack installation ID is required unless the team has exactly one completed Slack installation. Pass --slack-installation-id <installation-id>.";function getTarget(client,flags,jsonOutput){let webhookId=flags["--webhook"],channelId=flags["--slack-channel"],configId=flags["--slack-installation-id"];return webhookId&&(channelId||configId)?outputRulesError(client,jsonOutput,"INVALID_ARGUMENTS","Specify either --webhook or --slack-channel, not both."):configId&&!channelId?outputRulesError(client,jsonOutput,"INVALID_ARGUMENTS","--slack-installation-id requires --slack-channel."):webhookId?{type:"webhook",webhookId}:channelId?configId?{type:"slack",channelId,configId}:{type:"slack",channelId}:outputRulesError(client,jsonOutput,"MISSING_ARGUMENTS","Specify a notification destination with --webhook or --slack-channel.")}function applyDeliverySetting(client,target,flags,action,jsonOutput){let criticalOnly=flags["--critical-only"],noCriticalOnly=flags["--no-critical-only"];return criticalOnly&&noCriticalOnly?outputRulesError(client,jsonOutput,"MUTUAL_EXCLUSIVITY","Specify either --critical-only or --no-critical-only, not both."):action==="update"&&!criticalOnly&&!noCriticalOnly?outputRulesError(client,jsonOutput,"MISSING_ARGUMENTS","Specify --critical-only or --no-critical-only."):criticalOnly?{...target,minimumSeverityLevel:"critical"}:action==="update"&&noCriticalOnly?{...target,minimumSeverityLevel:null}:target}async function mutate(client,argv,api,action){let command={link:monitorsNotificationsLinkSubcommand,update:monitorsNotificationsUpdateSubcommand,unlink:monitorsNotificationsUnlinkSubcommand}[action],parsedArgs;try{parsedArgs=parseArguments(argv,getFlagsSpecification(command.options))}catch(error){return emitRulesArgParseError(client,error,`monitors notifications ${action} <monitor-id> --webhook <webhook-id>`),printError(error),2}let flags=parsedArgs.flags,format=validateJsonOutput(flags);if(!format.valid)return outputRulesError(client,!1,"INVALID_ARGUMENTS",format.error);let[ruleId,extraArg]=parsedArgs.args;if(!ruleId)return outputRulesError(client,format.jsonOutput,"MISSING_ARGUMENTS",`Missing monitor ID. Example: ${packageName} monitors notifications ${action} <monitor-id> --webhook <webhook-id>`);if(extraArg)return outputRulesError(client,format.jsonOutput,"INVALID_ARGUMENTS","Expected exactly one monitor ID.");let target=getTarget(client,flags,format.jsonOutput);if(typeof target=="number")return target;let notification=applyDeliverySetting(client,target,flags,action,format.jsonOutput);if(typeof notification=="number")return notification;let scope=await resolveRulesTeam(client,format.jsonOutput);if(typeof scope=="number")return scope;client.nonInteractive||output_manager_default.spinner(`${action==="link"?"Linking":action==="update"?"Updating":"Unlinking"} notification destination\u2026`);try{let response=await client.fetch(rulesNotificationLinksPath(api,scope.teamId,ruleId),{method:action==="link"?"POST":action==="update"?"PATCH":"DELETE",body:notification});if(client.nonInteractive){let actionPastTense=action==="link"?"Linked":action==="update"?"Updated":"Unlinked",preposition=action==="link"?"to":action==="update"?"for":"from";client.stdout.write(`${JSON.stringify({status:AGENT_STATUS.OK,success:response.success,action,[api.idKey]:ruleId,notification:response.notification,message:`${actionPastTense} notification destination ${preposition} monitor ${ruleId}.`,next:[{command:buildRuleNotificationsInspectCommand(client.argv,ruleId),when:"Inspect linked notification destinations"}]},null,2)}
|
|
8
|
-
`)}else format.jsonOutput?client.stdout.write(`${JSON.stringify(response,null,2)}
|
|
9
|
-
`):printRuleNotificationMutationReceipt(action==="link"?"Linked":action==="update"?"Updated":"Unlinked",ruleId,notification,client.argv);return 0}catch(error){if(isAPIError(error))return error.serverMessage===API_SLACK_INSTALLATION_REQUIRED_MESSAGE?outputRulesError(client,format.jsonOutput,error.code||"bad_request",CLI_SLACK_INSTALLATION_REQUIRED_MESSAGE):handleRulesApiError(client,error,format.jsonOutput);throw error}finally{client.nonInteractive||output_manager_default.stopSpinner()}}export{mutate as default};
|
|
@@ -1,7 +0,0 @@
|
|
|
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{parseThreadArg}from"./chunk-2S6PE6GB.js";import{getThread,handleCommentsParseError,resolveCommentsScope,threadNotFoundMessage,toApiErrorParts}from"./chunk-D2BZMGHP.js";import{outputError}from"./chunk-RW3X523R.js";import"./chunk-3JGBBS6V.js";import{require_open}from"./chunk-PVASGBEF.js";import"./chunk-BL3HBRF6.js";import{openSubcommand}from"./chunk-YHQ7PPXP.js";import"./chunk-G4T7VBGN.js";import"./chunk-B4UE4LVE.js";import"./chunk-MXTC4ZAQ.js";import"./chunk-FGFLTLEA.js";import"./chunk-DGYHWXD2.js";import"./chunk-IUXSJWL3.js";import"./chunk-KNLGWGUE.js";import"./chunk-ADLBLGT3.js";import"./chunk-BBKEP7RO.js";import"./chunk-4NTBYNFR.js";import{parseArguments}from"./chunk-VOCZ34ON.js";import"./chunk-F53OKXYI.js";import{getFlagsSpecification}from"./chunk-AWMQGOS2.js";import"./chunk-FUX6LKNP.js";import"./chunk-OPORM35X.js";import"./chunk-4SAVH3H7.js";import{isAPIError}from"./chunk-6VH56CX2.js";import"./chunk-JESNVRVR.js";import{output_manager_default}from"./chunk-XP3FT56R.js";import"./chunk-BLUPZPAS.js";import"./chunk-RM3ZDRYE.js";import"./chunk-OO572JUC.js";import"./chunk-D3AHZ5LI.js";import"./chunk-2GHZGOWT.js";import"./chunk-YHPPP3SF.js";import"./chunk-NB2WLB3J.js";import"./chunk-ISWW3DKF.js";import"./chunk-BRQUZ5NC.js";import{__toESM}from"./chunk-BZENIQ7N.js";var import_open=__toESM(require_open(),1);async function openThread(client,telemetry){let parsedArgs,flagsSpecification=getFlagsSpecification(openSubcommand.options);try{parsedArgs=parseArguments(client.argv.slice(2),flagsSpecification)}catch(err){return handleCommentsParseError(err,"open")}let threadInput=parsedArgs.args[2];if(telemetry.trackCliArgumentThread(threadInput),!threadInput)return output_manager_default.error("Pass a thread ID or URL: `vercel comments open <thread>`."),2;let threadRef=parseThreadArg(threadInput);if(!threadRef)return output_manager_default.error(`Could not extract a thread ID from "${threadInput}". Pass the thread ID or its vercel.com URL.`),2;let threadId=threadRef.id;telemetry.trackCliOptionProject(parsedArgs.flags["--project"]);let scope=await resolveCommentsScope(client,{project:parsedArgs.flags["--project"],requireProject:!1,jsonOutput:!1,urlTeamSlug:threadRef.teamSlug});if(typeof scope=="number")return scope;let webUrl;try{webUrl=(await getThread(client,scope.teamId,threadId)).webUrl}catch(err){if(isAPIError(err)){let{code,message}=toApiErrorParts(err);return outputError(client,!1,code,err.status===404?threadNotFoundMessage(threadId,scope):message)}throw err}return webUrl?(output_manager_default.log(`Opening ${webUrl}`),await(0,import_open.default)(webUrl),0):(output_manager_default.error(`The API returned no web URL for ${threadId}.`),1)}export{openThread as default};
|
|
@@ -1,15 +0,0 @@
|
|
|
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{updateRouteVersion}from"./chunk-6QKS6QK7.js";import{getRouteVersions}from"./chunk-BVH2AEFE.js";import{confirmAction,getRoutes,parseSubcommandArgs,printDiffSummary,withGlobalFlags}from"./chunk-6ISAISGD.js";import{requireProjectContext}from"./chunk-NEFDNROD.js";import{stamp_default}from"./chunk-A2RZZQEP.js";import"./chunk-Q7D7RGXM.js";import"./chunk-3JGBBS6V.js";import"./chunk-BL3HBRF6.js";import{publishSubcommand}from"./chunk-5IASAERQ.js";import"./chunk-G4T7VBGN.js";import"./chunk-B4UE4LVE.js";import"./chunk-MXTC4ZAQ.js";import"./chunk-FGFLTLEA.js";import{outputAgentError}from"./chunk-DGYHWXD2.js";import"./chunk-IUXSJWL3.js";import"./chunk-KNLGWGUE.js";import"./chunk-ADLBLGT3.js";import"./chunk-BBKEP7RO.js";import"./chunk-4NTBYNFR.js";import"./chunk-VOCZ34ON.js";import"./chunk-F53OKXYI.js";import"./chunk-AWMQGOS2.js";import"./chunk-FUX6LKNP.js";import"./chunk-OPORM35X.js";import"./chunk-4SAVH3H7.js";import"./chunk-6VH56CX2.js";import"./chunk-JESNVRVR.js";import{output_manager_default}from"./chunk-XP3FT56R.js";import"./chunk-BLUPZPAS.js";import"./chunk-RM3ZDRYE.js";import"./chunk-OO572JUC.js";import"./chunk-D3AHZ5LI.js";import"./chunk-2GHZGOWT.js";import"./chunk-YHPPP3SF.js";import{require_source}from"./chunk-NB2WLB3J.js";import"./chunk-ISWW3DKF.js";import"./chunk-BRQUZ5NC.js";import{__toESM}from"./chunk-BZENIQ7N.js";var import_chalk=__toESM(require_source(),1);async function publish(client,argv){let parsed=await parseSubcommandArgs(argv,publishSubcommand,client);if(typeof parsed=="number")return parsed;let link=await requireProjectContext(client,"routes",parsed.flags["--project"]);if(typeof link=="number")return link;let{project,org}=link,teamId=org.type==="team"?org.id:void 0;output_manager_default.spinner(`Fetching route versions for ${import_chalk.default.bold(project.name)}`);let{versions}=await getRouteVersions(client,project.id,{teamId}),version=versions.find(v=>v.isStaging);if(!version)return output_manager_default.warn(`No staged changes to publish. Make changes first with ${import_chalk.default.cyan(withGlobalFlags(client,"routes add"))}.`),0;output_manager_default.spinner("Fetching changes");let{routes:diffRoutes}=await getRoutes(client,project.id,{teamId,versionId:version.id,diff:!0}),changedRoutes=diffRoutes.filter(r=>r.action!==void 0);if(changedRoutes.length>0?(output_manager_default.print(`
|
|
8
|
-
${import_chalk.default.bold("Changes to be published:")}
|
|
9
|
-
|
|
10
|
-
`),printDiffSummary(changedRoutes),output_manager_default.print(`
|
|
11
|
-
`)):output_manager_default.print(`
|
|
12
|
-
${import_chalk.default.gray("No changes detected from current production version.")}
|
|
13
|
-
|
|
14
|
-
`),!await confirmAction(client,parsed.flags["--yes"],"Publish these changes to production?",`This will make them live for ${import_chalk.default.bold(project.name)}.`))return output_manager_default.log("Canceled"),0;let updateStamp=stamp_default();output_manager_default.spinner("Publishing to production");try{let{version:newVersion}=await updateRouteVersion(client,project.id,version.id,"promote",{teamId});return output_manager_default.log(`${import_chalk.default.cyan("Success!")} Routes published to production ${import_chalk.default.gray(updateStamp())}`),newVersion.ruleCount!==void 0&&output_manager_default.print(` ${import_chalk.default.bold("Active routes:")} ${newVersion.ruleCount}
|
|
15
|
-
`),0}catch(e){let msg=e.message||"Failed to publish routes";return client.nonInteractive?(outputAgentError(client,{status:"error",reason:"api_error",message:msg,next:[{command:withGlobalFlags(client,"routes publish --yes")}]}),process.exit(1),1):(output_manager_default.error(msg),1)}}export{publish as default};
|
|
@@ -1,7 +0,0 @@
|
|
|
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{SENSITIVE_PLACEHOLDER,envPullCommandLogic,pull}from"./chunk-OWOWPOIE.js";import"./chunk-YN3C5BL5.js";import"./chunk-6Y2ZL5XJ.js";import"./chunk-X4762EE4.js";import"./chunk-25565AGS.js";import"./chunk-3JGBBS6V.js";import"./chunk-L4NSF346.js";import"./chunk-IEPW2YRH.js";import"./chunk-7YKFF6CE.js";import"./chunk-6OVX3PWM.js";import"./chunk-OQCMRU3J.js";import"./chunk-PVASGBEF.js";import"./chunk-BL3HBRF6.js";import"./chunk-R6BEOVTU.js";import"./chunk-HCRD3JFL.js";import"./chunk-LJBUJ23M.js";import"./chunk-G4T7VBGN.js";import"./chunk-3G3FQYMW.js";import"./chunk-2PKEEQ5W.js";import"./chunk-PUKYAALC.js";import"./chunk-B4UE4LVE.js";import"./chunk-MXTC4ZAQ.js";import"./chunk-NWGBDBZI.js";import"./chunk-FGFLTLEA.js";import"./chunk-DGYHWXD2.js";import"./chunk-IUXSJWL3.js";import"./chunk-KNLGWGUE.js";import"./chunk-ADLBLGT3.js";import"./chunk-BBKEP7RO.js";import"./chunk-4NTBYNFR.js";import"./chunk-VOCZ34ON.js";import"./chunk-F53OKXYI.js";import"./chunk-AWMQGOS2.js";import"./chunk-FUX6LKNP.js";import"./chunk-OPORM35X.js";import"./chunk-4SAVH3H7.js";import"./chunk-6VH56CX2.js";import"./chunk-JESNVRVR.js";import"./chunk-XP3FT56R.js";import"./chunk-BLUPZPAS.js";import"./chunk-RM3ZDRYE.js";import"./chunk-OO572JUC.js";import"./chunk-D3AHZ5LI.js";import"./chunk-2GHZGOWT.js";import"./chunk-YHPPP3SF.js";import"./chunk-NB2WLB3J.js";import"./chunk-ISWW3DKF.js";import"./chunk-BRQUZ5NC.js";import"./chunk-BZENIQ7N.js";export{SENSITIVE_PLACEHOLDER,pull as default,envPullCommandLogic};
|