@vercel/cli-support 65.11.0 → 65.12.0-snapshot-801db9d533c3

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.
Files changed (369) hide show
  1. package/README.md +8 -120
  2. package/dist/chunks/add-BDJYCIBT.js +8 -0
  3. package/dist/chunks/add-LZR4CD7O.js +8 -0
  4. package/dist/chunks/add-MR6YZTRQ.js +8 -0
  5. package/dist/chunks/{alerts-JGRRCQA4.js → alerts-VOYMO6NJ.js} +1 -1
  6. package/dist/chunks/build-H2U56DYB.js +7 -0
  7. package/dist/chunks/{chunk-UF2E5BDE.js → chunk-23PO6JK6.js} +1 -1
  8. package/dist/chunks/{chunk-PUKYAALC.js → chunk-24SIHFEW.js} +1 -1
  9. package/dist/chunks/{chunk-EBIJ26IV.js → chunk-2C6TLXE5.js} +1 -1
  10. package/dist/chunks/{chunk-QROI2U32.js → chunk-2CQJKBKV.js} +2 -4
  11. package/dist/chunks/{chunk-7MZLV3KK.js → chunk-2CZL3GJU.js} +1 -1
  12. package/dist/chunks/{chunk-XH2R2EIK.js → chunk-2EV53VB5.js} +1 -1
  13. package/dist/chunks/{chunk-5B5CLOKM.js → chunk-2FNOYPRB.js} +1 -1
  14. package/dist/chunks/{chunk-4E6BGQWR.js → chunk-2LOA3LC6.js} +1 -1
  15. package/dist/chunks/{chunk-M3Z6NSC2.js → chunk-2V6UURUN.js} +1 -1
  16. package/dist/chunks/{chunk-B6QVH6IG.js → chunk-32EEQITR.js} +1 -1
  17. package/dist/chunks/{chunk-4VP57TOJ.js → chunk-33OMDQTW.js} +1 -1
  18. package/dist/chunks/{chunk-CFYLTZSV.js → chunk-3AGRCSWN.js} +1 -1
  19. package/dist/chunks/{chunk-42J2KCDF.js → chunk-3EFPSM6M.js} +1 -1
  20. package/dist/chunks/{chunk-DQASZDQT.js → chunk-3SNWIYU7.js} +1 -1
  21. package/dist/chunks/{chunk-EVBGFSK5.js → chunk-42Y46TZ3.js} +1 -1
  22. package/dist/chunks/{chunk-KV3QXTRZ.js → chunk-4OO6TXBM.js} +1 -1
  23. package/dist/chunks/{chunk-UUDE44NV.js → chunk-54FY6GJ5.js} +1 -1
  24. package/dist/chunks/{chunk-RIJ45N7C.js → chunk-5HQEYPDO.js} +1 -1
  25. package/dist/chunks/chunk-5KL6UFII.js +7 -0
  26. package/dist/chunks/{chunk-ECFLIVEE.js → chunk-5L566FZB.js} +1 -1
  27. package/dist/chunks/{chunk-NZW3RIQM.js → chunk-5MFGTXWC.js} +1 -1
  28. package/dist/chunks/{chunk-4ELZOAQH.js → chunk-5TMHRECT.js} +1 -1
  29. package/dist/chunks/{chunk-74VQ7PQV.js → chunk-5YLKPSZI.js} +1 -1
  30. package/dist/chunks/chunk-66TKNVRG.js +60 -0
  31. package/dist/chunks/{chunk-RDWLLSPU.js → chunk-6737KAJP.js} +1 -1
  32. package/dist/chunks/{chunk-V5TOMLK4.js → chunk-6Q2XEYCJ.js} +1 -1
  33. package/dist/chunks/{chunk-7VGBGUX7.js → chunk-6S6UZV3V.js} +1 -1
  34. package/dist/chunks/{chunk-EZLPMOHM.js → chunk-6WTGR7UP.js} +1 -1
  35. package/dist/chunks/chunk-7BDQUBSO.js +7 -0
  36. package/dist/chunks/chunk-7M6EHM5B.js +7 -0
  37. package/dist/chunks/{chunk-42FOKWGX.js → chunk-7PGDJTAH.js} +1 -1
  38. package/dist/chunks/{chunk-BZIC36KP.js → chunk-7TVNKTN2.js} +1 -1
  39. package/dist/chunks/{chunk-IIGNDMLO.js → chunk-ABSFPYM4.js} +1 -1
  40. package/dist/chunks/{chunk-MBXLL2HF.js → chunk-AGLOVMPC.js} +3 -3
  41. package/dist/chunks/{chunk-B56SRT5W.js → chunk-AIZIVXNX.js} +1 -1
  42. package/dist/chunks/{chunk-WBSFE6IE.js → chunk-AQBK55BT.js} +1 -1
  43. package/dist/chunks/chunk-AW33SRYY.js +7 -0
  44. package/dist/chunks/{chunk-UNPK7LVC.js → chunk-B3IBBNIR.js} +1 -1
  45. package/dist/chunks/{chunk-VRH7LWOC.js → chunk-B4KA3ZH2.js} +1 -1
  46. package/dist/chunks/{chunk-2J35YKA2.js → chunk-BC74BRVP.js} +12 -12
  47. package/dist/chunks/{chunk-PFZCGMJ7.js → chunk-BH5OASEJ.js} +1 -1
  48. package/dist/chunks/chunk-BIGJEDOA.js +11 -0
  49. package/dist/chunks/chunk-BOJDM3O7.js +7 -0
  50. package/dist/chunks/{chunk-375JVQYK.js → chunk-CJZE7647.js} +1 -1
  51. package/dist/chunks/{chunk-YZKARZ2B.js → chunk-CKJZSRAC.js} +1 -1
  52. package/dist/chunks/{chunk-TUAS3L5I.js → chunk-D5JRYYTT.js} +1 -1
  53. package/dist/chunks/{chunk-SF4E3AQ3.js → chunk-E3WP42P2.js} +1 -1
  54. package/dist/chunks/{chunk-6UMVJ7RL.js → chunk-E7CEQ2PO.js} +1 -1
  55. package/dist/chunks/chunk-E7IFYSQT.js +12 -0
  56. package/dist/chunks/chunk-EDO66J3L.js +7 -0
  57. package/dist/chunks/{chunk-C5QEQSEX.js → chunk-EIFBF3JQ.js} +1 -1
  58. package/dist/chunks/chunk-EM3U6PRB.js +7 -0
  59. package/dist/chunks/{chunk-AMPJ6RWT.js → chunk-EZVNGJN5.js} +1 -1
  60. package/dist/chunks/{chunk-ZPBGAZC2.js → chunk-F6KURUPQ.js} +1 -1
  61. package/dist/chunks/{chunk-5DXC4TE2.js → chunk-F7L5SXJM.js} +1 -1
  62. package/dist/chunks/{chunk-ZTHW5VNH.js → chunk-FFS3QJCU.js} +2 -2
  63. package/dist/chunks/{chunk-FNH3T3CF.js → chunk-FGZXIHGN.js} +1 -1
  64. package/dist/chunks/chunk-FXOKM2RM.js +7 -0
  65. package/dist/chunks/{chunk-NUSKXXZZ.js → chunk-FZLCDLWD.js} +1 -1
  66. package/dist/chunks/{chunk-CD6ZWCKT.js → chunk-G63MSB6N.js} +1 -1
  67. package/dist/chunks/{chunk-HNH3DPIZ.js → chunk-GAILIG45.js} +1 -1
  68. package/dist/chunks/{chunk-FVVOHGQE.js → chunk-GHNHUSVK.js} +1 -1
  69. package/dist/chunks/{chunk-4DMKP6AO.js → chunk-GOI2VVI7.js} +2 -2
  70. package/dist/chunks/chunk-GORL5DZC.js +11 -0
  71. package/dist/chunks/{chunk-WMWB7QKG.js → chunk-GP3KGUCK.js} +1 -1
  72. package/dist/chunks/{chunk-GL66K54F.js → chunk-GPDERS2D.js} +1 -1
  73. package/dist/chunks/{chunk-CU3LNJZV.js → chunk-GUSOYIW6.js} +1 -1
  74. package/dist/chunks/{chunk-AO6AMYBF.js → chunk-GY44CQXK.js} +1 -1
  75. package/dist/chunks/chunk-H64GR57G.js +7 -0
  76. package/dist/chunks/{chunk-VKCBEW6R.js → chunk-HBWRIR42.js} +1 -1
  77. package/dist/chunks/{chunk-4U6ACPA4.js → chunk-HR66URIC.js} +1 -1
  78. package/dist/chunks/chunk-HRGJO4HK.js +7 -0
  79. package/dist/chunks/chunk-HU5NUOWH.js +7 -0
  80. package/dist/chunks/{chunk-4KM733OB.js → chunk-HVJN2SSK.js} +1 -1
  81. package/dist/chunks/chunk-HXLOBW75.js +10 -0
  82. package/dist/chunks/{chunk-4T57TXQ3.js → chunk-IBBLLUXD.js} +1 -1
  83. package/dist/chunks/{chunk-MO2G2ND2.js → chunk-IJBRT2AD.js} +1 -1
  84. package/dist/chunks/{chunk-NT2N5UR4.js → chunk-IRIFXCZW.js} +1 -1
  85. package/dist/chunks/{chunk-ECGY67NB.js → chunk-J7RNU6AO.js} +1 -1
  86. package/dist/chunks/{chunk-SDYCW5JM.js → chunk-JONZUKWX.js} +1 -1
  87. package/dist/chunks/{chunk-P24YBQ6H.js → chunk-JVGENO2R.js} +1 -1
  88. package/dist/chunks/{chunk-PKNEWN4W.js → chunk-K46QQRUN.js} +1 -1
  89. package/dist/chunks/{chunk-BJXLR2RE.js → chunk-KKYNEEM7.js} +1 -1
  90. package/dist/chunks/{chunk-3TDFSO4X.js → chunk-KPSINH7T.js} +1 -1
  91. package/dist/chunks/chunk-KR4DMT3I.js +7 -0
  92. package/dist/chunks/{chunk-RCUDI7OF.js → chunk-M32HBBPK.js} +1 -1
  93. package/dist/chunks/{chunk-ZQXXESKG.js → chunk-MAA5GRIM.js} +1 -1
  94. package/dist/chunks/chunk-MCYG7CCE.js +7 -0
  95. package/dist/chunks/{chunk-VAZ7JG2Z.js → chunk-MNZYFYYH.js} +1 -1
  96. package/dist/chunks/{chunk-HDISAMDF.js → chunk-MQJ4MINN.js} +1 -1
  97. package/dist/chunks/{chunk-ITQPDXXA.js → chunk-MTZYPCZ7.js} +1 -1
  98. package/dist/chunks/{chunk-NE6PKR2J.js → chunk-MWWMY5R6.js} +1 -1
  99. package/dist/chunks/{chunk-UBJVL3NJ.js → chunk-MWXL6HYB.js} +3 -3
  100. package/dist/chunks/{chunk-UFXIPUNI.js → chunk-MXALPSIX.js} +1 -1
  101. package/dist/chunks/{chunk-7JMN657A.js → chunk-NBTFAXL4.js} +1 -1
  102. package/dist/chunks/{chunk-HYOWFNOP.js → chunk-NIZW6D6D.js} +1 -1
  103. package/dist/chunks/{chunk-KBVYN635.js → chunk-NREH4VSU.js} +1 -1
  104. package/dist/chunks/{chunk-TPJV5UNE.js → chunk-NTYBDY24.js} +1 -1
  105. package/dist/chunks/{chunk-NDMQVBTV.js → chunk-NYJTWSSD.js} +1 -1
  106. package/dist/chunks/{chunk-7ZJ7VUIR.js → chunk-O3DAPRJ3.js} +1 -1
  107. package/dist/chunks/chunk-O7TFWXLZ.js +13 -0
  108. package/dist/chunks/{chunk-K7ARJYAG.js → chunk-OFOZ5DBA.js} +1 -1
  109. package/dist/chunks/{chunk-FYE7ILRR.js → chunk-OFZUWHZW.js} +1 -1
  110. package/dist/chunks/{chunk-RI6DJAFI.js → chunk-OHEM2CSW.js} +1 -1
  111. package/dist/chunks/{chunk-6ORJPXDQ.js → chunk-OHK3Y5NS.js} +1 -1
  112. package/dist/chunks/{chunk-IHTWZEQW.js → chunk-OKKG2FUS.js} +1 -1
  113. package/dist/chunks/{chunk-7NMC4E66.js → chunk-OR3ZEVBW.js} +1 -1
  114. package/dist/chunks/{chunk-QDHTI5WK.js → chunk-POR6KNXT.js} +1 -1
  115. package/dist/chunks/{chunk-JUSNW3IF.js → chunk-PSFHYOLD.js} +1 -1
  116. package/dist/chunks/{chunk-TZE4CS4K.js → chunk-QBHTNUM5.js} +1 -1
  117. package/dist/chunks/chunk-QJDWNTYH.js +7 -0
  118. package/dist/chunks/{chunk-YUHKH4TK.js → chunk-QKOLFLLP.js} +1 -1
  119. package/dist/chunks/chunk-REJLEESP.js +10 -0
  120. package/dist/chunks/{chunk-EIMHC5UY.js → chunk-ROKZIMRO.js} +1 -1
  121. package/dist/chunks/{chunk-DR6OJB6P.js → chunk-RPIBJRIT.js} +1 -1
  122. package/dist/chunks/chunk-SEHERY6U.js +7 -0
  123. package/dist/chunks/{chunk-RR5SDYNN.js → chunk-SHMHL6W7.js} +1 -1
  124. package/dist/chunks/{chunk-5FIY443M.js → chunk-SMETSNPH.js} +1 -1
  125. package/dist/chunks/{chunk-NMIZSQDN.js → chunk-SP6E7PHW.js} +1 -1
  126. package/dist/chunks/chunk-SQBDW5FO.js +10 -0
  127. package/dist/chunks/chunk-SWFG73OS.js +8 -0
  128. package/dist/chunks/{chunk-CHIYT3V4.js → chunk-TA7KTIDV.js} +1 -1
  129. package/dist/chunks/{chunk-W24TLPO5.js → chunk-TJBVFVXK.js} +1 -1
  130. package/dist/chunks/{chunk-JTAUWH5V.js → chunk-TJUZVODP.js} +1 -1
  131. package/dist/chunks/{chunk-VWJXV5ZM.js → chunk-TKVUWTBK.js} +1 -1
  132. package/dist/chunks/chunk-U7ZEFVSQ.js +8 -0
  133. package/dist/chunks/{chunk-WTFD4MDT.js → chunk-UZQJQXGJ.js} +1 -1
  134. package/dist/chunks/{chunk-UIMJNASP.js → chunk-V7G4VDZI.js} +1 -1
  135. package/dist/chunks/{chunk-WNDR5HCU.js → chunk-VCJIB3FB.js} +1 -1
  136. package/dist/chunks/{chunk-EGTJTCCW.js → chunk-VFBELAGX.js} +1 -1
  137. package/dist/chunks/{chunk-AYZ52QDF.js → chunk-VM6X5BTK.js} +1 -1
  138. package/dist/chunks/{chunk-HZEKH3RO.js → chunk-VVTMF2AY.js} +1 -1
  139. package/dist/chunks/{chunk-N65H4JMJ.js → chunk-W25UARQV.js} +1 -1
  140. package/dist/chunks/chunk-WLMW7K7F.js +7 -0
  141. package/dist/chunks/{chunk-IHCYNUI2.js → chunk-XJYDISH3.js} +1 -1
  142. package/dist/chunks/chunk-XSQZ35V6.js +7 -0
  143. package/dist/chunks/{chunk-YODQLETL.js → chunk-XVDUP67R.js} +1 -1
  144. package/dist/chunks/{chunk-SLCPSRDR.js → chunk-Y2FVJ7YO.js} +1 -1
  145. package/dist/chunks/chunk-Y2SQC4GV.js +10 -0
  146. package/dist/chunks/{chunk-FVTRIRML.js → chunk-Y5S2OEJH.js} +1 -1
  147. package/dist/chunks/{chunk-EJN55YDV.js → chunk-YANOBY2G.js} +1 -1
  148. package/dist/chunks/{chunk-2RXUQ72I.js → chunk-YIOMTAUF.js} +1 -1
  149. package/dist/chunks/{chunk-BW25OFQG.js → chunk-YLCIOXSX.js} +1 -1
  150. package/dist/chunks/{chunk-GZLYNPNU.js → chunk-YNCWSPPJ.js} +1 -1
  151. package/dist/chunks/chunk-YQQ3A3YC.js +13 -0
  152. package/dist/chunks/{chunk-UI2H2EIM.js → chunk-YTRKHRL3.js} +1 -1
  153. package/dist/chunks/{chunk-MIIHBRKV.js → chunk-Z2K2JR7F.js} +1 -1
  154. package/dist/chunks/{chunk-F7AVGV4Y.js → chunk-Z73UJVGD.js} +1 -1
  155. package/dist/chunks/{chunk-6Y2ZL5XJ.js → chunk-ZKNEIE44.js} +2 -2
  156. package/dist/chunks/chunk-ZXEWWSTH.js +10 -0
  157. package/dist/chunks/chunk-ZZLCRSES.js +11 -0
  158. package/dist/chunks/clear-7QUM5KH7.js +8 -0
  159. package/dist/chunks/{cli-embedded-Y74S252S.js → cli-embedded-ABHGJLYX.js} +1 -1
  160. package/dist/chunks/compile-vercel-config-RDISBTDC.js +7 -0
  161. package/dist/chunks/config-2YNYR6YI.js +7 -0
  162. package/dist/chunks/config-4AOTKKGI.js +8 -0
  163. package/dist/chunks/config-validator.mjs +1 -1
  164. package/dist/chunks/{connect-git-provider-GFAJLQLU.js → connect-git-provider-BMUUC7ND.js} +1 -1
  165. package/dist/chunks/contract-3VSUIBEY.js +10 -0
  166. package/dist/chunks/delete-EJNR4UYC.js +10 -0
  167. package/dist/chunks/delete-OYOBFPEG.js +9 -0
  168. package/dist/chunks/describe-ORIEHT3R.js +25 -0
  169. package/dist/chunks/detect-projects-AKK2XI76.js +7 -0
  170. package/dist/chunks/detect-services-3LYPKUVL.js +7 -0
  171. package/dist/chunks/disable-U6JU546S.js +7 -0
  172. package/dist/chunks/discard-6SHAFQ2H.js +14 -0
  173. package/dist/chunks/edit-YMWKFN3H.js +8 -0
  174. package/dist/chunks/edit-YTTKJFTG.js +9 -0
  175. package/dist/chunks/enable-A6KBPFXJ.js +7 -0
  176. package/dist/chunks/{esm-4ZHGYTUV.js → esm-CF5UHWPM.js} +1 -1
  177. package/dist/chunks/{esm-LNIAU767.js → esm-EYOXGOVF.js} +1 -1
  178. package/dist/chunks/{esm-IBY43SSX.js → esm-FSME24KA.js} +1 -1
  179. package/dist/chunks/{esm-7FVTQHRH.js → esm-IUATPKKB.js} +1 -1
  180. package/dist/chunks/{esm-GTSUYLKG.js → esm-L6OKDFWP.js} +1 -1
  181. package/dist/chunks/{esm-TEM4KPXZ.js → esm-ORQC2ZSA.js} +1 -1
  182. package/dist/chunks/{esm-TLAM7FSK.js → esm-PYIZNQIK.js} +1 -1
  183. package/dist/chunks/{exec-H3X7U4P3.js → exec-RQ257MTR.js} +1 -1
  184. package/dist/chunks/{export-25TQ3YBT.js → export-MMU6VVFK.js} +1 -1
  185. package/dist/chunks/future-ANILGGFQ.js +7 -0
  186. package/dist/chunks/generate-cert-for-deploy-LKKZUKWF.js +7 -0
  187. package/dist/chunks/image-OWWKVBTU.js +7 -0
  188. package/dist/chunks/import-builders-VENL23EH.js +7 -0
  189. package/dist/chunks/{inspect-3W3TUJ6P.js → inspect-BPIJT4OX.js} +1 -1
  190. package/dist/chunks/inspect-GDZJZGHW.js +13 -0
  191. package/dist/chunks/{inspect-TN2QY3BP.js → inspect-H7JGEVL7.js} +1 -1
  192. package/dist/chunks/inspect-I6LQLOBG.js +8 -0
  193. package/dist/chunks/{inspect-BRYVSQBD.js → inspect-IGFAKTAX.js} +1 -1
  194. package/dist/chunks/inspect-U6V4UQXC.js +9 -0
  195. package/dist/chunks/list-763XVNFH.js +8 -0
  196. package/dist/chunks/{list-WA6Q7DUN.js → list-OX2N4JK7.js} +1 -1
  197. package/dist/chunks/list-WHZXMZJ5.js +12 -0
  198. package/dist/chunks/{list-6W4UQBY4.js → list-XLPMNNI7.js} +1 -1
  199. package/dist/chunks/login-2PGWWOKB.js +7 -0
  200. package/dist/chunks/login-T63WJL4S.js +9 -0
  201. package/dist/chunks/logs-S2KJGEIG.js +7 -0
  202. package/dist/chunks/ls-5HXYPIFR.js +11 -0
  203. package/dist/chunks/ls-M4GJOBZP.js +8 -0
  204. package/dist/chunks/ls-N56BWH2L.js +8 -0
  205. package/dist/chunks/{ls-L5LLKZBV.js → ls-O5B3LY4D.js} +1 -1
  206. package/dist/chunks/{ls-MAJ4QZTY.js → ls-PNGTHVUK.js} +1 -1
  207. package/dist/chunks/{ls-UXE5RSZN.js → ls-Q7FAOSVD.js} +1 -1
  208. package/dist/chunks/{ls-4WP6LHLL.js → ls-R4UDBWS3.js} +1 -1
  209. package/dist/chunks/migrate-experimental-services-HWJXO4AJ.js +7 -0
  210. package/dist/chunks/mutate-FM6BLE46.js +9 -0
  211. package/dist/chunks/{native-self-update-DEVBYOH2.js → native-self-update-7LL6RPJW.js} +1 -1
  212. package/dist/chunks/notifications-ZSZN35BQ.js +7 -0
  213. package/dist/chunks/open-4RXUUYQP.js +7 -0
  214. package/dist/chunks/openapi-457MABMI.js +7 -0
  215. package/dist/chunks/permissions-UJRTMOT7.js +7 -0
  216. package/dist/chunks/{plugin-offer-JUYWL4I7.js → plugin-offer-KJCRPUU5.js} +1 -1
  217. package/dist/chunks/prompt-missing-credentials-B5DGQFI7.js +7 -0
  218. package/dist/chunks/publish-I3APOD3N.js +15 -0
  219. package/dist/chunks/pull-2YUNTVPQ.js +7 -0
  220. package/dist/chunks/purchase-domain-if-available-3YOXUXII.js +7 -0
  221. package/dist/chunks/push-4QQJQRGZ.js +7 -0
  222. package/dist/chunks/query-2JO6HH5N.js +12 -0
  223. package/dist/chunks/reauthenticate-COYQMMAG.js +7 -0
  224. package/dist/chunks/remove-PWS5EJ7F.js +9 -0
  225. package/dist/chunks/reorder-COZQX64R.js +10 -0
  226. package/dist/chunks/reply-XDYZNHW2.js +9 -0
  227. package/dist/chunks/resolve-6KUFCZRX.js +12 -0
  228. package/dist/chunks/resolve-agent-team-NOT235ZN.js +7 -0
  229. package/dist/chunks/{resolve-deployment-framework-preset-AXXYBFCL.js → resolve-deployment-framework-preset-4TKUU6AH.js} +1 -1
  230. package/dist/chunks/restore-GSSD4ZWH.js +16 -0
  231. package/dist/chunks/rm-AUNVZPJ5.js +8 -0
  232. package/dist/chunks/rm-EIMUYBJT.js +8 -0
  233. package/dist/chunks/rm-EJH37HYN.js +8 -0
  234. package/dist/chunks/rm-O5NMCBC3.js +8 -0
  235. package/dist/chunks/rm-PHTOXG4E.js +8 -0
  236. package/dist/chunks/{routes-BP54NO3Z.js → routes-NEZJKMR5.js} +1 -1
  237. package/dist/chunks/rule-inspect-7HNYKQ6X.js +8 -0
  238. package/dist/chunks/{schema-753JMRZA.js → schema-5P7HROXE.js} +1 -1
  239. package/dist/chunks/schema-MZM5MN5V.js +14 -0
  240. package/dist/chunks/select-org-3BZWQD6R.js +7 -0
  241. package/dist/chunks/set-2RH74ZC3.js +7 -0
  242. package/dist/chunks/set-Q2EJ3V44.js +9 -0
  243. package/dist/chunks/setup-and-link-BT5TNY4J.js +7 -0
  244. package/dist/chunks/{skills-QZ4AMS2K.js → skills-DUOUHPBY.js} +1 -1
  245. package/dist/chunks/{statuspage-KHTMA4WL.js → statuspage-K5SC7KAQ.js} +1 -1
  246. package/dist/chunks/{detect-projects-K7SVMH5T.js → table-W6LOHWWF.js} +1 -1
  247. package/dist/chunks/tags-QOJEEMKS.js +7 -0
  248. package/dist/chunks/{types-NPUAHKSK.js → types-7L6HBXAU.js} +1 -1
  249. package/dist/chunks/{update-7XH7HM5F.js → update-HS6QFTQK.js} +1 -1
  250. package/dist/chunks/usage-3N6IA5SX.js +13 -0
  251. package/dist/chunks/validate-config-YLL6RPCP.js +7 -0
  252. package/dist/commands/build/index.js +1 -1
  253. package/dist/commands/deploy/index.js +19 -37
  254. package/dist/commands/dev/index.js +4 -4
  255. package/dist/commands/env/index.js +1 -1
  256. package/dist/commands/link/index.js +1 -1
  257. package/dist/commands/list/index.js +1 -1
  258. package/dist/commands/project/index.js +1 -1
  259. package/dist/commands-account.js +3 -3
  260. package/dist/commands-ai.js +6 -6
  261. package/dist/commands-blob.js +1 -1
  262. package/dist/commands-core.js +20 -20
  263. package/dist/commands-deployments.js +5 -5
  264. package/dist/commands-flags.js +1 -1
  265. package/dist/commands-integrations.js +1 -1
  266. package/dist/commands-observability.js +15 -8
  267. package/dist/commands-routing.js +5 -4
  268. package/dist/help.js +1 -1
  269. package/dist/index.js +5 -5
  270. package/dist/internal-build.js +1 -1
  271. package/dist/package.json +45 -245
  272. package/dist/vc.js +47 -695
  273. package/dist/version.mjs +1 -1
  274. package/package.json +51 -196
  275. package/dist/chunks/add-4R6FUHQT.js +0 -8
  276. package/dist/chunks/add-F3H4BFJZ.js +0 -8
  277. package/dist/chunks/add-TCOJ4SIQ.js +0 -8
  278. package/dist/chunks/build-GOLTZF6S.js +0 -7
  279. package/dist/chunks/chunk-3KJ6HWSX.js +0 -7
  280. package/dist/chunks/chunk-5X635INY.js +0 -11
  281. package/dist/chunks/chunk-7LPNDK2O.js +0 -7
  282. package/dist/chunks/chunk-A3M2BHWR.js +0 -13
  283. package/dist/chunks/chunk-BUFEV3T4.js +0 -11
  284. package/dist/chunks/chunk-BVR6OIU5.js +0 -7
  285. package/dist/chunks/chunk-D7BB5BPA.js +0 -10
  286. package/dist/chunks/chunk-DBT6PGEH.js +0 -7
  287. package/dist/chunks/chunk-DRZVM7CB.js +0 -12
  288. package/dist/chunks/chunk-EICEQXVS.js +0 -7
  289. package/dist/chunks/chunk-F2R7L3ZB.js +0 -7
  290. package/dist/chunks/chunk-FHMCTV5E.js +0 -7
  291. package/dist/chunks/chunk-FOE3MWES.js +0 -7
  292. package/dist/chunks/chunk-HKU6D7DU.js +0 -8
  293. package/dist/chunks/chunk-IOTKHTZH.js +0 -7
  294. package/dist/chunks/chunk-K4JTCVNW.js +0 -13
  295. package/dist/chunks/chunk-LALPOYIA.js +0 -8
  296. package/dist/chunks/chunk-M3R7F2N4.js +0 -7
  297. package/dist/chunks/chunk-MUKXOI2K.js +0 -8
  298. package/dist/chunks/chunk-NIS66BFX.js +0 -63
  299. package/dist/chunks/chunk-NSPW47RU.js +0 -7
  300. package/dist/chunks/chunk-NTDP6RTQ.js +0 -11
  301. package/dist/chunks/chunk-Q2QVK3TH.js +0 -7
  302. package/dist/chunks/chunk-RM3ZDRYE.js +0 -7
  303. package/dist/chunks/chunk-UCRMJMH6.js +0 -10
  304. package/dist/chunks/chunk-XQDHMFQY.js +0 -7
  305. package/dist/chunks/chunk-XRIM4BUF.js +0 -7
  306. package/dist/chunks/chunk-Z64MQIOE.js +0 -10
  307. package/dist/chunks/chunk-ZS2WS4AM.js +0 -7
  308. package/dist/chunks/clear-PECHXMV5.js +0 -8
  309. package/dist/chunks/compile-vercel-config-EM3HYOQC.js +0 -7
  310. package/dist/chunks/config-DA2NZUDH.js +0 -8
  311. package/dist/chunks/config-X6O3DT7V.js +0 -7
  312. package/dist/chunks/contract-RHMWRX4W.js +0 -10
  313. package/dist/chunks/delete-5RN5VW5L.js +0 -9
  314. package/dist/chunks/delete-MT6I7R7K.js +0 -10
  315. package/dist/chunks/detect-services-HSA4JHJX.js +0 -7
  316. package/dist/chunks/disable-LXPZDQMC.js +0 -7
  317. package/dist/chunks/discard-PW65T65S.js +0 -14
  318. package/dist/chunks/edit-WFSONASO.js +0 -8
  319. package/dist/chunks/edit-YID3FOJ3.js +0 -9
  320. package/dist/chunks/enable-X2EKQCIY.js +0 -7
  321. package/dist/chunks/future-DQBK457G.js +0 -7
  322. package/dist/chunks/generate-cert-for-deploy-OMEACY5G.js +0 -7
  323. package/dist/chunks/image-AO2OZG4W.js +0 -7
  324. package/dist/chunks/import-builders-GSDV4K4A.js +0 -7
  325. package/dist/chunks/inspect-4244CRHI.js +0 -13
  326. package/dist/chunks/inspect-C43IV7X4.js +0 -9
  327. package/dist/chunks/inspect-RP5KXOYQ.js +0 -8
  328. package/dist/chunks/list-2SY6PZLC.js +0 -12
  329. package/dist/chunks/list-WBKZGIMQ.js +0 -8
  330. package/dist/chunks/login-K6XBWOFD.js +0 -9
  331. package/dist/chunks/login-OGMXEW5N.js +0 -7
  332. package/dist/chunks/logs-R3ZERQ7M.js +0 -7
  333. package/dist/chunks/ls-EVAQD3LI.js +0 -8
  334. package/dist/chunks/ls-O5DKK3TY.js +0 -8
  335. package/dist/chunks/ls-PTHGXQLK.js +0 -11
  336. package/dist/chunks/mutate-EKZWPQQJ.js +0 -9
  337. package/dist/chunks/notifications-F5S3RKZF.js +0 -7
  338. package/dist/chunks/open-KGVG54NN.js +0 -7
  339. package/dist/chunks/openapi-7TPDTMCU.js +0 -7
  340. package/dist/chunks/permissions-5K7JZOMB.js +0 -7
  341. package/dist/chunks/prompt-missing-credentials-DX2KJB5X.js +0 -7
  342. package/dist/chunks/publish-KIRTO2ZO.js +0 -15
  343. package/dist/chunks/pull-3CRJK7BX.js +0 -7
  344. package/dist/chunks/purchase-domain-if-available-55IXEF43.js +0 -7
  345. package/dist/chunks/push-4YG5HKSD.js +0 -7
  346. package/dist/chunks/query-67KQVLTR.js +0 -12
  347. package/dist/chunks/reauthenticate-SWSBFGDU.js +0 -7
  348. package/dist/chunks/remove-SYTIFVWW.js +0 -9
  349. package/dist/chunks/reorder-TX5MXJEB.js +0 -10
  350. package/dist/chunks/reply-XVK33N5T.js +0 -9
  351. package/dist/chunks/resolve-JZ262ZF4.js +0 -12
  352. package/dist/chunks/resolve-agent-team-BG5YW55B.js +0 -7
  353. package/dist/chunks/restore-IPFL7TKT.js +0 -16
  354. package/dist/chunks/rm-2BCAZGQU.js +0 -8
  355. package/dist/chunks/rm-3CCU3CE6.js +0 -8
  356. package/dist/chunks/rm-5CQV5LYG.js +0 -8
  357. package/dist/chunks/rm-OV4OU6H2.js +0 -8
  358. package/dist/chunks/rm-WFGMOZ3G.js +0 -8
  359. package/dist/chunks/rule-inspect-RFJIIXZH.js +0 -8
  360. package/dist/chunks/schema-SUNFQGUL.js +0 -14
  361. package/dist/chunks/select-org-MPHPWWPU.js +0 -7
  362. package/dist/chunks/set-BR6EEOPB.js +0 -7
  363. package/dist/chunks/set-I3NWZRSI.js +0 -9
  364. package/dist/chunks/setup-and-link-MRTKVOWD.js +0 -7
  365. package/dist/chunks/tags-7DIZEAVE.js +0 -7
  366. package/dist/chunks/usage-3BS7JCCU.js +0 -13
  367. package/dist/chunks/validate-config-LAD7BU3B.js +0 -7
  368. package/dist/launcher-errors.js +0 -11
  369. package/dist/native-download.js +0 -8
@@ -4,7 +4,7 @@ import { dirname as __dirname_ } from 'node:path';
4
4
  const require = __createRequire(import.meta.url);
5
5
  const __filename = __fileURLToPath(import.meta.url);
6
6
  const __dirname = __dirname_(__filename);
7
- import{collectBuildLogs,displayBuildLogs}from"./chunks/chunk-VAZ7JG2Z.js";import{InvalidEventsResponseError,RecordTooLargeError,decodeContinuation,encodeContinuation,fetchEventPages,recordLine,serializeTimeRange,sortIntervals,warningLine}from"./chunks/chunk-3TDFSO4X.js";import{readStandardInput}from"./chunks/chunk-PSOVLGHP.js";import"./chunks/chunk-XOETL6DB.js";import{indent_default}from"./chunks/chunk-GZNDA6SV.js";import{getBuildMachineResourceConfig}from"./chunks/chunk-ZF27J6FQ.js";import{isDeploying}from"./chunks/chunk-ZFRNVIHI.js";import"./chunks/chunk-XH2R2EIK.js";import{validateIntegerRangeWithDefault}from"./chunks/chunk-42FOKWGX.js";import{external_exports}from"./chunks/chunk-2AMO2VMV.js";import{require_format}from"./chunks/chunk-PFD7LETF.js";import{summaryLine,writeJsonError}from"./chunks/chunk-UFXIPUNI.js";import{parseTimeFlag}from"./chunks/chunk-D3M2JG5C.js";import{printNextPageCommand}from"./chunks/chunk-TZE4CS4K.js";import{elapsed}from"./chunks/chunk-Q7D7RGXM.js";import{getDeployment}from"./chunks/chunk-7JMN657A.js";import"./chunks/chunk-JTAUWH5V.js";import{getSubcommand}from"./chunks/chunk-ETV3C2CV.js";import{getTeams}from"./chunks/chunk-SLCPSRDR.js";import{BACKGROUND_FUNCTION_EXCLUSION,DEFAULT_LIMIT,DEFAULT_WINDOW,MAX_LIMIT,getCommandAliases,inspectCommand,logsCommand,logsSources,requestsSubcommand,runtimeSubcommand,sourceForEvent}from"./chunks/chunk-QROI2U32.js";import"./chunks/chunk-M3Z6NSC2.js";import"./chunks/chunk-ECFLIVEE.js";import"./chunks/chunk-RDWLLSPU.js";import"./chunks/chunk-7ZJ7VUIR.js";import"./chunks/chunk-WTFD4MDT.js";import"./chunks/chunk-IHTWZEQW.js";import"./chunks/chunk-74VQ7PQV.js";import"./chunks/chunk-SNGM6NSO.js";import"./chunks/chunk-P24YBQ6H.js";import"./chunks/chunk-NMIZSQDN.js";import"./chunks/chunk-K7ARJYAG.js";import"./chunks/chunk-V5TOMLK4.js";import"./chunks/chunk-M3R7F2N4.js";import"./chunks/chunk-4E6BGQWR.js";import"./chunks/chunk-6UMVJ7RL.js";import"./chunks/chunk-IIGNDMLO.js";import"./chunks/chunk-N65H4JMJ.js";import"./chunks/chunk-EJN55YDV.js";import"./chunks/chunk-5DXC4TE2.js";import"./chunks/chunk-4U6ACPA4.js";import"./chunks/chunk-7VGBGUX7.js";import"./chunks/chunk-CU3LNJZV.js";import"./chunks/chunk-JALVF3C2.js";import"./chunks/chunk-BZIC36KP.js";import{printError}from"./chunks/chunk-NDMQVBTV.js";import{help}from"./chunks/chunk-HZEKH3RO.js";import{detectExplicitScope,getContextName}from"./chunks/chunk-NSPW47RU.js";import{TelemetryClient}from"./chunks/chunk-MBXLL2HF.js";import"./chunks/chunk-2EYYB6YN.js";import"./chunks/chunk-NWGBDBZI.js";import{getErrorRecovery}from"./chunks/chunk-5X635INY.js";import"./chunks/chunk-FYE7ILRR.js";import{getProjectByNameOrId,getProjectLink,resolveProjectCwd,sleep}from"./chunks/chunk-2J35YKA2.js";import"./chunks/chunk-4HR3I3ML.js";import"./chunks/chunk-PKNEWN4W.js";import"./chunks/chunk-ITQPDXXA.js";import"./chunks/chunk-GL66K54F.js";import"./chunks/chunk-4NTBYNFR.js";import{isArgumentError,parseArguments}from"./chunks/chunk-AYZ52QDF.js";import{getTeamByIdOrSlug}from"./chunks/chunk-2VBFQZ72.js";import{validateJsonOutput,warnDeprecatedSubcommand}from"./chunks/chunk-SDYCW5JM.js";import"./chunks/chunk-LUX4PBJL.js";import"./chunks/chunk-OPORM35X.js";import{require_ms}from"./chunks/chunk-MXTC4ZAQ.js";import"./chunks/chunk-ZS2WS4AM.js";import"./chunks/chunk-4SAVH3H7.js";import{DeploymentNotFound,DeploymentPermissionDenied,InvalidDeploymentId,ProjectNotFound,isAPIError,require_bytes}from"./chunks/chunk-4DMKP6AO.js";import{getCommandName,getCommandNamePlain,require_lib}from"./chunks/chunk-VRH7LWOC.js";import"./chunks/chunk-DBT6PGEH.js";import{output_manager_default}from"./chunks/chunk-GZLYNPNU.js";import"./chunks/chunk-BLUPZPAS.js";import{require_build_utils}from"./chunks/chunk-5MDNVAE6.js";import"./chunks/chunk-OCR5CRTH.js";import{require_dist}from"./chunks/chunk-RM3ZDRYE.js";import"./chunks/chunk-YHPPP3SF.js";import"./chunks/chunk-PUKYAALC.js";import{getFlagsSpecification,quoteArg}from"./chunks/chunk-AMPJ6RWT.js";import"./chunks/chunk-2BKALEOP.js";import{require_source}from"./chunks/chunk-NB2WLB3J.js";import"./chunks/chunk-ISWW3DKF.js";import{require_strip_ansi}from"./chunks/chunk-BULSRTQE.js";import"./chunks/chunk-BRQUZ5NC.js";import"./chunks/chunk-D6REP5QQ.js";import"./chunks/chunk-FBYA6LLM.js";import"./chunks/chunk-MY4MONOH.js";import"./chunks/chunk-7EJQLVWX.js";import"./chunks/chunk-SCV7XEEO.js";import{AGENT_REASON}from"./chunks/chunk-Q2QVK3TH.js";import{__toESM}from"./chunks/chunk-BZENIQ7N.js";var import_error_utils=__toESM(require_dist(),1),import_chalk3=__toESM(require_source(),1),import_ms=__toESM(require_ms(),1),import_title=__toESM(require_lib(),1);var NOT_SAVED_LABELS={disabled:"not saved (caching disabled)",prebuilt:"not saved (prebuilt deployment)",no_cache_branch:"not saved (no branch to cache)",forced_skip:"not saved (skipped)",missing_metadata:"not saved (missing metadata)",no_files:"not saved (nothing to cache)"};function describeBuildCache(summary){let save=getKnownSave(summary);if(!save)return"unavailable";if(save.saved){let rows=[["size",`${formatCacheBytes(save.compressedSizeBytes)} / ${formatCacheBytes(save.cacheLimitBytes)} limit`]];return save.fileCount!==void 0&&rows.push(["file count",`~${save.fileCount.toLocaleString("en-US")} (approx., paths selected for packing)`]),rows}return"cacheLimitBytes"in save?`not saved (exceeded ${formatCacheBytes(save.cacheLimitBytes)} limit)`:save.reason==="failed"?"upload failed":NOT_SAVED_LABELS[save.reason]??"not saved"}function getBuildCacheJson(summary){if(!summary||typeof summary!="object")return;let{save}=summary;return save===void 0?void 0:{save}}function getKnownSave(summary){if(!summary||typeof summary!="object")return;let{version,save}=summary;if(!(version!==1||!save||typeof save!="object")){if(save.saved===!0)return isCount(save.compressedSizeBytes)&&isCount(save.cacheLimitBytes)&&(save.fileCount===void 0||isCount(save.fileCount))?save:void 0;if(!(save.saved!==!1||typeof save.reason!="string"))return save.reason==="size_exceeded"?isCount(save.cacheLimitBytes)?save:void 0:{saved:!1,reason:save.reason}}}function isCount(value){return typeof value=="number"&&Number.isSafeInteger(value)&&value>=0}var BINARY_UNITS=["B","KiB","MiB","GiB","TiB"];function formatCacheBytes(value){let unit=0,scaled=value;for(;scaled>=1024&&unit<BINARY_UNITS.length-1;)scaled/=1024,unit++;return`${Number(scaled.toFixed(2))} ${BINARY_UNITS[unit]}`}var import_chalk=__toESM(require_source(),1),import_bytes=__toESM(require_bytes(),1);var isReady=({readyState})=>readyState==="READY",isFailed=({readyState})=>readyState.endsWith("_ERROR")||readyState==="ERROR";var padding=8,MAX_BUILD_GROUPS=5,MAX_OUTPUTS_PER_GROUP=5,hasOutput=b=>Array.isArray(b.output)&&b.output.length>0,getCommonPath=buildGroup=>{let commonPath=[],splits=buildGroup.map(build=>getDirPath(build.entrypoint).split("/")),shortest=splits.reduce((prevValue,currentValue)=>Math.min(prevValue,currentValue.length),1/0);for(let i=0;i<=shortest;i++){let first=splits[0][i];if(splits.every(pathParts=>pathParts[i]===first)){commonPath.push(first);continue}break}return commonPath.join("/")||"/"},styleBuild=(build,times,longestSource)=>{let{entrypoint,id}=build,time=typeof times[id]=="string"?times[id]:"",pathColor=import_chalk.default.cyan;isFailed(build)&&(pathColor=import_chalk.default.red);let entry=entrypoint.padEnd(longestSource+padding),prefix=hasOutput(build)?"\u250C":"\u2576";return`${import_chalk.default.grey(prefix)} ${pathColor(entry)}${time}`},styleHiddenBuilds=(commonPath,buildGroup,times,longestSource,isHidden=!1)=>{let{id}=buildGroup[0],entry=commonPath.padEnd(longestSource+padding),time=typeof times[id]=="string"?times[id]:"",prefix=isHidden===!1&&buildGroup.some(hasOutput)?"\u250C":"\u2576",pathColor=import_chalk.default.cyan;return buildGroup.every(isFailed)&&(pathColor=import_chalk.default.red),isHidden&&(pathColor=import_chalk.default.grey),`${import_chalk.default.grey(prefix)} ${pathColor(entry)}${time}`},styleOutput=(output,readyState,isLast)=>{let{type,path,size,lambda}=output,prefix=type==="lambda"?"\u03BB ":"",finalSize=size?` ${import_chalk.default.grey(`(${(0,import_bytes.default)(size)})`)}`:"",color=import_chalk.default.grey,finalRegion="";if(isReady({readyState})?color=import_chalk.default:isFailed({readyState})&&(color=import_chalk.default.red),lambda){let{deployedTo}=lambda;deployedTo&&deployedTo.length>0&&(finalRegion=` ${import_chalk.default.grey(`[${deployedTo.join(", ")}]`)}`)}let corner=isLast?"\u2514\u2500\u2500":"\u251C\u2500\u2500",main=prefix+path+finalSize+finalRegion;return`${import_chalk.default.grey(corner)} ${color(main)}`},getDirPath=(path,level=0,highestLevel=null)=>{let parts=path.split("/").slice(0,-1);if(highestLevel===null||level===0)return parts.join("/");let reverseLevel=highestLevel-level;return parts.slice(0,reverseLevel).join("/")},sortByEntrypoint=(a,b)=>{let aPath=getDirPath(a.entrypoint),bPath=getDirPath(b.entrypoint);return aPath===""?1:bPath===""?-1:aPath>bPath?1:bPath>aPath?-1:0},groupBuilds=(buildList,highestLevel,counter)=>{let currentIndex=counter%buildList.length,__level=Math.ceil(counter/buildList.length),_level=(__level===0?1:__level)-1,level=_level>highestLevel?highestLevel:_level,currentPath=getDirPath(buildList[currentIndex][0].entrypoint,level,highestLevel),nextList=[],currentGroup=[];for(let i=0;i<buildList.length;i++){let group=buildList[i];getDirPath(group[0].entrypoint,level,highestLevel)===currentPath?currentGroup.push(...group):nextList.push(group)}return currentIndex===0?nextList.unshift(currentGroup):nextList.splice(currentIndex,0,currentGroup),nextList},builds_default=(builds,times)=>{let path=builds.sort(sortByEntrypoint).map(build=>[build]),highestLevel=builds.reduce((prev,curr)=>{let partCounter=curr.entrypoint.split("/").length-1;return partCounter>prev?partCounter:prev},0),counter=0;for(;path.length>MAX_BUILD_GROUPS;)path=groupBuilds(path,highestLevel,counter),counter++;path=path.reverse();let longestSource=builds.reduce((final2,current)=>{let{length}=current.entrypoint;return length>final2?length:final2},0),final=[],finalBuildsLength=path.length,lengthWithoutRootPaths=path.length,hiddenBuildGroup=[];path=(()=>{let nextList=[],rootList=[];for(let group of path)getCommonPath(group)==="/"?group.map(item=>rootList.push([item])):nextList.push(group);return lengthWithoutRootPaths=nextList.length,rootList.map(group=>nextList.push(group)),nextList})();for(let buildGroup of path){let commonPath=getCommonPath(buildGroup);if(commonPath==="/")if(lengthWithoutRootPaths<=MAX_BUILD_GROUPS&&finalBuildsLength<=MAX_BUILD_GROUPS){let item=buildGroup[0];final.push(`${styleBuild(item,times,longestSource)}
7
+ import{collectBuildLogs,displayBuildLogs}from"./chunks/chunk-MNZYFYYH.js";import{InvalidEventsResponseError,RecordTooLargeError,decodeContinuation,encodeContinuation,fetchEventPages,recordLine,serializeTimeRange,sortIntervals,warningLine}from"./chunks/chunk-KPSINH7T.js";import{getBuildMachineResourceConfig}from"./chunks/chunk-ZF27J6FQ.js";import{isDeploying}from"./chunks/chunk-ZFRNVIHI.js";import"./chunks/chunk-2EV53VB5.js";import{readStandardInput}from"./chunks/chunk-PSOVLGHP.js";import"./chunks/chunk-XOETL6DB.js";import{validateIntegerRangeWithDefault}from"./chunks/chunk-7PGDJTAH.js";import{parseTimeFlag}from"./chunks/chunk-D3M2JG5C.js";import{external_exports}from"./chunks/chunk-2AMO2VMV.js";import{summaryLine,writeJsonError}from"./chunks/chunk-MXALPSIX.js";import{elapsed}from"./chunks/chunk-Q7D7RGXM.js";import{indent_default}from"./chunks/chunk-GZNDA6SV.js";import{getDeployment}from"./chunks/chunk-NBTFAXL4.js";import"./chunks/chunk-TJUZVODP.js";import{require_format}from"./chunks/chunk-PFD7LETF.js";import{getSubcommand}from"./chunks/chunk-ETV3C2CV.js";import{printNextPageCommand}from"./chunks/chunk-QBHTNUM5.js";import{getTeams}from"./chunks/chunk-Y2FVJ7YO.js";import{BACKGROUND_FUNCTION_EXCLUSION,DEFAULT_LIMIT,DEFAULT_WINDOW,MAX_LIMIT,getCommandAliases,inspectCommand,logsCommand,logsSources,requestsSubcommand,runtimeSubcommand,sourceForEvent}from"./chunks/chunk-2CQJKBKV.js";import"./chunks/chunk-2V6UURUN.js";import"./chunks/chunk-OKKG2FUS.js";import"./chunks/chunk-5L566FZB.js";import"./chunks/chunk-6737KAJP.js";import"./chunks/chunk-O3DAPRJ3.js";import"./chunks/chunk-UZQJQXGJ.js";import"./chunks/chunk-5YLKPSZI.js";import"./chunks/chunk-SNGM6NSO.js";import"./chunks/chunk-JVGENO2R.js";import"./chunks/chunk-SP6E7PHW.js";import"./chunks/chunk-OFOZ5DBA.js";import"./chunks/chunk-6Q2XEYCJ.js";import"./chunks/chunk-SEHERY6U.js";import"./chunks/chunk-2LOA3LC6.js";import"./chunks/chunk-E7CEQ2PO.js";import"./chunks/chunk-W25UARQV.js";import"./chunks/chunk-7BDQUBSO.js";import"./chunks/chunk-ABSFPYM4.js";import"./chunks/chunk-YANOBY2G.js";import"./chunks/chunk-F7L5SXJM.js";import"./chunks/chunk-6S6UZV3V.js";import"./chunks/chunk-GUSOYIW6.js";import"./chunks/chunk-JALVF3C2.js";import"./chunks/chunk-7TVNKTN2.js";import"./chunks/chunk-HR66URIC.js";import{printError}from"./chunks/chunk-NYJTWSSD.js";import{help}from"./chunks/chunk-VVTMF2AY.js";import{detectExplicitScope,getContextName}from"./chunks/chunk-XSQZ35V6.js";import{TelemetryClient}from"./chunks/chunk-AGLOVMPC.js";import"./chunks/chunk-2EYYB6YN.js";import"./chunks/chunk-NWGBDBZI.js";import{AGENT_REASON,argvHasNonInteractive,getErrorRecovery}from"./chunks/chunk-GORL5DZC.js";import"./chunks/chunk-OFZUWHZW.js";import{getProjectByNameOrId,getProjectLink,resolveProjectCwd,sleep}from"./chunks/chunk-BC74BRVP.js";import"./chunks/chunk-4HR3I3ML.js";import"./chunks/chunk-K46QQRUN.js";import"./chunks/chunk-MTZYPCZ7.js";import"./chunks/chunk-GPDERS2D.js";import"./chunks/chunk-4NTBYNFR.js";import{isArgumentError,parseArguments}from"./chunks/chunk-VM6X5BTK.js";import{getTeamByIdOrSlug}from"./chunks/chunk-2VBFQZ72.js";import{validateJsonOutput,warnDeprecatedSubcommand}from"./chunks/chunk-JONZUKWX.js";import"./chunks/chunk-LUX4PBJL.js";import"./chunks/chunk-OPORM35X.js";import{require_ms}from"./chunks/chunk-MXTC4ZAQ.js";import"./chunks/chunk-D6REP5QQ.js";import"./chunks/chunk-FBYA6LLM.js";import"./chunks/chunk-MY4MONOH.js";import"./chunks/chunk-4SAVH3H7.js";import{DeploymentNotFound,DeploymentPermissionDenied,InvalidDeploymentId,ProjectNotFound,isAPIError,require_bytes}from"./chunks/chunk-GOI2VVI7.js";import{getCommandName,getCommandNamePlain,require_lib}from"./chunks/chunk-B4KA3ZH2.js";import"./chunks/chunk-BOJDM3O7.js";import{output_manager_default}from"./chunks/chunk-YNCWSPPJ.js";import"./chunks/chunk-BLUPZPAS.js";import"./chunks/chunk-AW33SRYY.js";import{require_build_utils}from"./chunks/chunk-5MDNVAE6.js";import"./chunks/chunk-OCR5CRTH.js";import"./chunks/chunk-7EJQLVWX.js";import"./chunks/chunk-SCV7XEEO.js";import{require_dist}from"./chunks/chunk-MCYG7CCE.js";import"./chunks/chunk-YHPPP3SF.js";import"./chunks/chunk-24SIHFEW.js";import{getFlagsSpecification,quoteArg}from"./chunks/chunk-EZVNGJN5.js";import"./chunks/chunk-2BKALEOP.js";import{require_source}from"./chunks/chunk-NB2WLB3J.js";import"./chunks/chunk-ISWW3DKF.js";import"./chunks/chunk-BRQUZ5NC.js";import{require_strip_ansi}from"./chunks/chunk-BULSRTQE.js";import{__toESM}from"./chunks/chunk-BZENIQ7N.js";var import_error_utils=__toESM(require_dist(),1),import_chalk3=__toESM(require_source(),1),import_ms=__toESM(require_ms(),1),import_title=__toESM(require_lib(),1);var NOT_SAVED_LABELS={disabled:"not saved (caching disabled)",prebuilt:"not saved (prebuilt deployment)",no_cache_branch:"not saved (no branch to cache)",forced_skip:"not saved (skipped)",missing_metadata:"not saved (missing metadata)",no_files:"not saved (nothing to cache)"};function describeBuildCache(summary){let save=getKnownSave(summary);if(!save)return"unavailable";if(save.saved){let rows=[["size",`${formatCacheBytes(save.compressedSizeBytes)} / ${formatCacheBytes(save.cacheLimitBytes)} limit`]];return save.fileCount!==void 0&&rows.push(["file count",`~${save.fileCount.toLocaleString("en-US")} (approx., paths selected for packing)`]),rows}return"cacheLimitBytes"in save?`not saved (exceeded ${formatCacheBytes(save.cacheLimitBytes)} limit)`:save.reason==="failed"?"upload failed":NOT_SAVED_LABELS[save.reason]??"not saved"}function getBuildCacheJson(summary){if(!summary||typeof summary!="object")return;let{save}=summary;return save===void 0?void 0:{save}}function getKnownSave(summary){if(!summary||typeof summary!="object")return;let{version,save}=summary;if(!(version!==1||!save||typeof save!="object")){if(save.saved===!0)return isCount(save.compressedSizeBytes)&&isCount(save.cacheLimitBytes)&&(save.fileCount===void 0||isCount(save.fileCount))?save:void 0;if(!(save.saved!==!1||typeof save.reason!="string"))return save.reason==="size_exceeded"?isCount(save.cacheLimitBytes)?save:void 0:{saved:!1,reason:save.reason}}}function isCount(value){return typeof value=="number"&&Number.isSafeInteger(value)&&value>=0}var BINARY_UNITS=["B","KiB","MiB","GiB","TiB"];function formatCacheBytes(value){let unit=0,scaled=value;for(;scaled>=1024&&unit<BINARY_UNITS.length-1;)scaled/=1024,unit++;return`${Number(scaled.toFixed(2))} ${BINARY_UNITS[unit]}`}var import_chalk=__toESM(require_source(),1),import_bytes=__toESM(require_bytes(),1);var isReady=({readyState})=>readyState==="READY",isFailed=({readyState})=>readyState.endsWith("_ERROR")||readyState==="ERROR";var padding=8,MAX_BUILD_GROUPS=5,MAX_OUTPUTS_PER_GROUP=5,hasOutput=b=>Array.isArray(b.output)&&b.output.length>0,getCommonPath=buildGroup=>{let commonPath=[],splits=buildGroup.map(build=>getDirPath(build.entrypoint).split("/")),shortest=splits.reduce((prevValue,currentValue)=>Math.min(prevValue,currentValue.length),1/0);for(let i=0;i<=shortest;i++){let first=splits[0][i];if(splits.every(pathParts=>pathParts[i]===first)){commonPath.push(first);continue}break}return commonPath.join("/")||"/"},styleBuild=(build,times,longestSource)=>{let{entrypoint,id}=build,time=typeof times[id]=="string"?times[id]:"",pathColor=import_chalk.default.cyan;isFailed(build)&&(pathColor=import_chalk.default.red);let entry=entrypoint.padEnd(longestSource+padding),prefix=hasOutput(build)?"\u250C":"\u2576";return`${import_chalk.default.grey(prefix)} ${pathColor(entry)}${time}`},styleHiddenBuilds=(commonPath,buildGroup,times,longestSource,isHidden=!1)=>{let{id}=buildGroup[0],entry=commonPath.padEnd(longestSource+padding),time=typeof times[id]=="string"?times[id]:"",prefix=isHidden===!1&&buildGroup.some(hasOutput)?"\u250C":"\u2576",pathColor=import_chalk.default.cyan;return buildGroup.every(isFailed)&&(pathColor=import_chalk.default.red),isHidden&&(pathColor=import_chalk.default.grey),`${import_chalk.default.grey(prefix)} ${pathColor(entry)}${time}`},styleOutput=(output,readyState,isLast)=>{let{type,path,size,lambda}=output,prefix=type==="lambda"?"\u03BB ":"",finalSize=size?` ${import_chalk.default.grey(`(${(0,import_bytes.default)(size)})`)}`:"",color=import_chalk.default.grey,finalRegion="";if(isReady({readyState})?color=import_chalk.default:isFailed({readyState})&&(color=import_chalk.default.red),lambda){let{deployedTo}=lambda;deployedTo&&deployedTo.length>0&&(finalRegion=` ${import_chalk.default.grey(`[${deployedTo.join(", ")}]`)}`)}let corner=isLast?"\u2514\u2500\u2500":"\u251C\u2500\u2500",main=prefix+path+finalSize+finalRegion;return`${import_chalk.default.grey(corner)} ${color(main)}`},getDirPath=(path,level=0,highestLevel=null)=>{let parts=path.split("/").slice(0,-1);if(highestLevel===null||level===0)return parts.join("/");let reverseLevel=highestLevel-level;return parts.slice(0,reverseLevel).join("/")},sortByEntrypoint=(a,b)=>{let aPath=getDirPath(a.entrypoint),bPath=getDirPath(b.entrypoint);return aPath===""?1:bPath===""?-1:aPath>bPath?1:bPath>aPath?-1:0},groupBuilds=(buildList,highestLevel,counter)=>{let currentIndex=counter%buildList.length,__level=Math.ceil(counter/buildList.length),_level=(__level===0?1:__level)-1,level=_level>highestLevel?highestLevel:_level,currentPath=getDirPath(buildList[currentIndex][0].entrypoint,level,highestLevel),nextList=[],currentGroup=[];for(let i=0;i<buildList.length;i++){let group=buildList[i];getDirPath(group[0].entrypoint,level,highestLevel)===currentPath?currentGroup.push(...group):nextList.push(group)}return currentIndex===0?nextList.unshift(currentGroup):nextList.splice(currentIndex,0,currentGroup),nextList},builds_default=(builds,times)=>{let path=builds.sort(sortByEntrypoint).map(build=>[build]),highestLevel=builds.reduce((prev,curr)=>{let partCounter=curr.entrypoint.split("/").length-1;return partCounter>prev?partCounter:prev},0),counter=0;for(;path.length>MAX_BUILD_GROUPS;)path=groupBuilds(path,highestLevel,counter),counter++;path=path.reverse();let longestSource=builds.reduce((final2,current)=>{let{length}=current.entrypoint;return length>final2?length:final2},0),final=[],finalBuildsLength=path.length,lengthWithoutRootPaths=path.length,hiddenBuildGroup=[];path=(()=>{let nextList=[],rootList=[];for(let group of path)getCommonPath(group)==="/"?group.map(item=>rootList.push([item])):nextList.push(group);return lengthWithoutRootPaths=nextList.length,rootList.map(group=>nextList.push(group)),nextList})();for(let buildGroup of path){let commonPath=getCommonPath(buildGroup);if(commonPath==="/")if(lengthWithoutRootPaths<=MAX_BUILD_GROUPS&&finalBuildsLength<=MAX_BUILD_GROUPS){let item=buildGroup[0];final.push(`${styleBuild(item,times,longestSource)}
8
8
  `),finalBuildsLength++}else{hiddenBuildGroup.push(buildGroup[0]);continue}else if(buildGroup.length===1){let item=buildGroup[0];final.push(`${styleBuild(item,times,longestSource)}
9
9
  `),finalBuildsLength++}else final.push(`${styleHiddenBuilds(`${commonPath}/*`,buildGroup,times,longestSource)}
10
10
  `),finalBuildsLength++;let outputs=[];for(let build of buildGroup)Array.isArray(build.output)&&outputs.push(...build.output);outputs.slice(0,MAX_OUTPUTS_PER_GROUP).forEach((output,index)=>final.push(`${styleOutput(output,"READY",outputs.length===index+1)}
@@ -69,12 +69,12 @@ ${serverMessage}`:serverMessage,json:{...base,reason:AGENT_REASON.PLAN_UPGRADE_R
69
69
  ${humanHint}`,json:{...base,reason:AGENT_REASON.INVALID_ARGUMENTS,message:`The ${source} query was rejected.`,hint,data:{...base.data,issues:issues.data.map(issue=>({field:issue.path,reason:"invalid",message:sanitize(issue.message)}))}},exitCode:2}}if(err.status===400&&/time range|retain/i.test(serverMessage)){let hint=`Use a later --since, or omit it to search the last ${DEFAULT_WINDOW}.`;return{human:`${serverMessage}
70
70
  ${hint}`,json:{...base,reason:AGENT_REASON.INVALID_ARGUMENTS,message:"The requested time range is outside the available retention.",hint},exitCode:2}}if(err.status===403)return{human:serverMessage,json:{...base,reason:AGENT_REASON.PERMISSION_DENIED,message:`You don't have access to ${source} logs for this project.`},exitCode:1};if(err.status===400)return{human:serverMessage,json:{...base,reason:AGENT_REASON.API_ERROR,message:`The API rejected the ${source} query.`},exitCode:1};if(err.status===504){let retries=typeof err.retries=="number"?err.retries:0,message=`Couldn't retrieve ${source} logs: the query timed out.`,hint="Narrow --query, --since, or --until, then try again.";return{human:`${message}
71
71
  Retries: ${retries}
72
- ${hint}`,json:{...base,reason:AGENT_REASON.API_ERROR,message,hint,data:{...base.data,retries}},exitCode:1}}return err.status===429?{human:serverMessage,json:{...base,reason:AGENT_REASON.RATE_LIMITED,message:`Couldn't retrieve ${source} logs: the request limit was reached.`},exitCode:1}:{human:serverMessage,json:{...base,reason:AGENT_REASON.API_ERROR,message:`Couldn't retrieve ${source} logs.`},exitCode:1}}function printLogsApiError(client,err,source){let failure=describeLogsApiError(client,err,source);if(!failure){printError(err);return}let status=isAPIError(err)?err.status:void 0;if(failure.json.reason===AGENT_REASON.API_ERROR&&status!==400&&status!==504||failure.json.reason===AGENT_REASON.RATE_LIMITED){printError(err);return}output_manager_default.error(failure.human)}var legacyLogsOptions=[{name:"search",shorthand:null,type:String,deprecated:!0},{name:"branch",shorthand:"b",type:String,deprecated:!0},{name:"no-branch",shorthand:null,type:Boolean,deprecated:!0},{name:"no-follow",shorthand:null,type:Boolean,deprecated:!0},{name:"request-id",shorthand:null,type:String,deprecated:!0},{name:"level",shorthand:null,type:[String],deprecated:!0},{name:"source",shorthand:null,type:[String],deprecated:!0},{name:"status-code",shorthand:null,type:String,deprecated:!0},{name:"expand",shorthand:"x",type:Boolean,deprecated:!0}],SIMPLE_VALUE=/^[\w.\-:/]+$/;function filterCommand(filter,source){return getCommandName(`logs${source?` ${source}`:""} --query '${filter}'`)}function alternatives(field,values){return values.length===1?`${field}:${values[0]}`:`${field}:(${values.join(" OR ")})`}function statusFilter(value){let statusClass=/^([1-5])xx$/i.exec(value);if(statusClass){let base=Number(statusClass[1])*100;return`httpStatus >= ${base} AND httpStatus < ${base+100}`}return/^\d{3}$/.test(value)?`httpStatus:${value}`:"httpStatus:500"}function sourceReplacement(values){let normalized=values.map(value=>value.trim().toLowerCase());return normalized.length>0&&normalized.every(v=>v==="static")?`--source was removed. Static and CDN traffic is in ${getCommandName("logs requests")}.`:normalized.length>0&&normalized.every(v=>v==="serverless")?`--source was removed. Use ${filterCommand("source:function")}.`:`--source was removed. Use ${filterCommand("source:<value>")}.
73
- See ${getCommandName("logs runtime --help")} for filter fields and examples.`}function usedLegacyOptions(flags){return legacyLogsOptions.map(option=>option.name).filter(name=>flags[`--${name}`]!==void 0)}function getLegacyOptionError(flags){if(flags["--search"]!==void 0)return`--search was replaced by --query, which uses a new KQL-inspired syntax.
74
- See ${getCommandName("logs runtime --help")} or ${getCommandName("logs requests --help")} for filter fields and examples.`;if(flags["--branch"]!==void 0)return"--branch is no longer supported. Remove it from the command.";let requestId=flags["--request-id"];if(requestId!==void 0){let value=SIMPLE_VALUE.test(requestId)?requestId:"<request-id>";return`--request-id was removed. Use ${filterCommand(`requestId:"${value}"`)}.`}let levels=flags["--level"];if(levels!==void 0){let values=levels.every(level=>SIMPLE_VALUE.test(level))?levels:["error"];return`--level was removed. Use ${filterCommand(alternatives("level",values))}.`}let sources=flags["--source"];if(sources!==void 0)return sourceReplacement(sources);let statusCode=flags["--status-code"];if(statusCode!==void 0)return`--status-code was removed. Use ${filterCommand(statusFilter(statusCode.trim()),"requests")}.`;if(flags["--expand"]!==void 0)return"--expand was removed. Full runtime messages are shown by default; remove the option.";for(let flag of["--no-branch","--no-follow"])if(flags[flag]!==void 0)return`${flag} was removed and has no effect. Remove it from the command.`}var GATEWAY_TIMEOUT_RETRIES=1;function quoteFilterValue(value){return JSON.stringify(value)}function composeFilter({source,deploymentId,environment,filter}){let clauses=[];if(deploymentId&&clauses.push(`deploymentId:${quoteFilterValue(deploymentId)}`),environment&&clauses.push(`environment:${quoteFilterValue(environment)}`),clauses.push(...source.fixedFilters),filter&&clauses.push(filter),clauses.length!==0)return clauses.map(clause=>`(${clause})`).join(" AND ")}function fetchEventPages2(client,query,limit,startCursor){return fetchEventPages(client,{event:query.source.event,ownerId:query.teamId,projectIds:[query.projectId],timeRange:{start:query.timeRange.start.toISOString(),end:query.timeRange.end.toISOString()},filter:query.filter,select:query.source.select,queryReason:query.source.queryReason,gatewayTimeoutRetries:GATEWAY_TIMEOUT_RETRIES},limit,startCursor)}var import_build_utils=__toESM(require_build_utils(),1);var NOT_LINKED_MESSAGE=`Your codebase isn't linked to a project on Vercel. Run ${getCommandName("link")}, or select a team and project with --scope <team> --project <name>.`;function fail(reason,error,exitCode2=1){return{error,exitCode:exitCode2,reason}}async function readLink(client,project){let orgId=(0,import_build_utils.getPlatformEnv)("ORG_ID"),projectId=(0,import_build_utils.getPlatformEnv)("PROJECT_ID");if(orgId&&projectId)return{link:{orgId,projectId}};if(orgId||projectId){let present=orgId?"`VERCEL_ORG_ID`":"`VERCEL_PROJECT_ID`",missing=orgId?"`VERCEL_PROJECT_ID`":"`VERCEL_ORG_ID`";return fail(AGENT_REASON.INVALID_CONFIGURATION,`You specified ${present} but you forgot to specify ${missing}. You need to specify both to select a custom project.`)}let path=await resolveProjectCwd(client.cwd);if(project){let selected=await getProjectLink(client,path,project,!0);if(selected)return{link:{orgId:selected.orgId,projectId:selected.projectId}}}let link=await getProjectLink(client,path);return{link:link?{orgId:link.orgId,projectId:link.projectId}:null}}async function teamLabel(client,teamId){try{return(await getTeamByIdOrSlug(client,teamId,{useCurrentTeam:!1})).slug||teamId}catch(err){return output_manager_default.debug(`Could not fetch team ${teamId}: ${err}`),teamId}}function isTeamId(ownerId){return ownerId.startsWith("team_")}var PERSONAL_ACCOUNT_MESSAGE="Logs are available for team-owned projects only. Select a team with --scope <team>.";async function resolveLogsTarget(client,{project:projectOption,deployment:deploymentOption,deploymentFromArgument=!1,quiet=!1}){let spinner=message=>{quiet||output_manager_default.spinner(message,1e3)},explicitScope=detectExplicitScope(client),explicitTeamId=explicitScope?client.config.currentTeam:void 0;if(explicitScope&&!explicitTeamId)return fail(AGENT_REASON.MISSING_SCOPE,PERSONAL_ACCOUNT_MESSAGE);let replacesLinkedProject=!!(projectOption||deploymentOption),link=null;if(!(explicitTeamId&&replacesLinkedProject)){let linkResult=await readLink(client,projectOption);if("error"in linkResult)return linkResult;link=linkResult.link}let teamId=explicitTeamId??link?.orgId;if(!teamId)return fail(AGENT_REASON.NOT_LINKED,NOT_LINKED_MESSAGE);if(!isTeamId(teamId))return fail(AGENT_REASON.MISSING_SCOPE,PERSONAL_ACCOUNT_MESSAGE);if(!replacesLinkedProject){if(!link)return fail(AGENT_REASON.NOT_LINKED,NOT_LINKED_MESSAGE);if(link.orgId!==teamId){let[requested,linked]=await Promise.all([teamLabel(client,teamId),teamLabel(client,link.orgId)]);return fail(AGENT_REASON.TARGET_CONFLICT,`This directory is linked to a project in team ${linked}, but ${requested} was selected.
72
+ ${hint}`,json:{...base,reason:AGENT_REASON.API_ERROR,message,hint,data:{...base.data,retries}},exitCode:1}}return err.status===429?{human:serverMessage,json:{...base,reason:AGENT_REASON.RATE_LIMITED,message:`Couldn't retrieve ${source} logs: the request limit was reached.`},exitCode:1}:{human:serverMessage,json:{...base,reason:AGENT_REASON.API_ERROR,message:`Couldn't retrieve ${source} logs.`},exitCode:1}}function printLogsApiError(client,err,source){let failure=describeLogsApiError(client,err,source);if(!failure){printError(err);return}let status=isAPIError(err)?err.status:void 0;if(failure.json.reason===AGENT_REASON.API_ERROR&&status!==400&&status!==504||failure.json.reason===AGENT_REASON.RATE_LIMITED){printError(err);return}output_manager_default.error(failure.human)}var legacyLogsOptions=[{name:"search",shorthand:null,type:String,deprecated:!0},{name:"branch",shorthand:"b",type:String,deprecated:!0},{name:"no-branch",shorthand:null,type:Boolean,deprecated:!0},{name:"no-follow",shorthand:null,type:Boolean,deprecated:!0},{name:"request-id",shorthand:null,type:String,deprecated:!0},{name:"level",shorthand:null,type:[String],deprecated:!0},{name:"source",shorthand:null,type:[String],deprecated:!0},{name:"status-code",shorthand:null,type:String,deprecated:!0},{name:"expand",shorthand:"x",type:Boolean,deprecated:!0}],SIMPLE_VALUE=/^[\w.\-:/]+$/;function filterCommand(filter,source){return getCommandName(`logs${source?` ${source}`:""} --query '${filter}'`)}function alternatives(field,values){return values.length===1?`${field}:${values[0]}`:`${field}:(${values.join(" OR ")})`}function statusFilter(value){let statusClass=/^([1-5])xx$/i.exec(value);if(statusClass){let base=Number(statusClass[1])*100;return`httpStatus >= ${base} AND httpStatus < ${base+100}`}return/^\d{3}$/.test(value)?`httpStatus:${value}`:void 0}function sourceReplacement(values){let normalized=values.map(value=>value.trim().toLowerCase());return normalized.length>0&&normalized.every(v=>v==="static")?`--source was removed. Static and CDN traffic is in ${getCommandName("logs requests")}.`:normalized.length>0&&normalized.every(v=>v==="serverless")?`--source was removed. Use ${filterCommand("source:function")}.`:`--source was removed. Use ${filterCommand("source:<value>")}.
73
+ See ${getCommandName("logs runtime --help")} for filter fields and examples.`}function usedLegacyOptions(flags){return legacyLogsOptions.map(option=>option.name).filter(name=>flags[`--${name}`]!==void 0)}function requestIdError(requestId){let value=SIMPLE_VALUE.test(requestId)?requestId:"<request-id>";return`--request-id was removed. Use ${filterCommand(`requestId:"${value}"`)}.`}function levelError(levels){let values=levels.every(level=>SIMPLE_VALUE.test(level))?levels:["error"];return`--level was removed. Use ${filterCommand(alternatives("level",values))}.`}function statusCodeError(statusCode){return`--status-code was removed. Use ${filterCommand(statusFilter(statusCode.trim())??"httpStatus:500","requests")}.`}var OLD_LEVELS=new Set(["error","warning","info","fatal"]);function resolveLegacyOptions(flags,{explicitSource,query,next}){if(flags["--search"]!==void 0)return{error:`--search was replaced by --query, which uses a new KQL-inspired syntax.
74
+ See ${getCommandName("logs runtime --help")} or ${getCommandName("logs requests --help")} for filter fields and examples.`};if(flags["--branch"]!==void 0)return{error:"--branch is no longer supported. Remove it from the command."};let sources=flags["--source"];if(sources!==void 0)return{error:sourceReplacement(sources)};if(flags["--expand"]!==void 0)return{error:"--expand was removed. Full runtime messages are shown by default; remove the option."};let requestId=flags["--request-id"],levels=flags["--level"],statusCode=flags["--status-code"]?.trim(),translated=[],filters=[];if(requestId!==void 0){if(!SIMPLE_VALUE.test(requestId))return{error:requestIdError(requestId)};translated.push("--request-id"),filters.push(`requestId:"${requestId}"`)}if(levels!==void 0){if(!levels.every(level=>OLD_LEVELS.has(level))||explicitSource==="requests"||statusCode!==void 0)return{error:levelError(levels)};translated.push("--level"),filters.push(alternatives("level",levels))}let source;if(statusCode!==void 0){let filter2=statusFilter(statusCode);if(filter2===void 0||explicitSource==="runtime")return{error:statusCodeError(statusCode)};translated.push("--status-code"),filters.push(filter2),source="requests"}if(next&&translated.length>0)return{error:`${translated[0]} can't be combined with --next. The cursor keeps the original target, filter, and time window.`};let warnings=[];for(let flag of["--no-branch","--no-follow"])flags[flag]!==void 0&&warnings.push(`${flag} was removed and has no effect. It was ignored.`);if(translated.length===0)return{warnings,translated};query&&filters.push(query);let filter=filters.length===1?filters[0]:filters.map(clause=>`(${clause})`).join(" AND ");return{warnings,filter,source,translated}}var OMITTED_OPTIONS=new Set(["--token","--query","--follow","--next","--help","--version",...legacyLogsOptions.map(option=>`--${option.name}`)]);function replacementCommand(flags,argv,{source,deployment,filter}){let out=["logs",...source?[source]:[]],seen=new Set;for(let[typedName,value]of Object.entries(flags)){let name=typedName==="--team"?"--scope":typedName;if(!(OMITTED_OPTIONS.has(name)||seen.has(name))){if(seen.add(name),name==="--non-interactive"){out.push(argvHasNonInteractive(argv)?"--non-interactive":"--non-interactive=false");continue}for(let item of Array.isArray(value)?value:[value])item===!0?out.push(name):(typeof item=="string"||typeof item=="number")&&out.push(name,quoteArg(String(item)))}}return deployment!==void 0&&!seen.has("--deployment")&&out.push("--deployment",quoteArg(deployment)),out.push("--query",shellQuote(filter)),getCommandName(out.join(" "))}function translationWarning(translated,command){return`${translated.length===1?`${translated[0]} was`:`${translated.slice(0,-1).join(", ")} and ${translated[translated.length-1]} were`} removed. Running ${command} instead. Use that command next time.`}function shellQuote(value){return value.includes("'")?quoteArg(value):`'${value}'`}var GATEWAY_TIMEOUT_RETRIES=1;function quoteFilterValue(value){return JSON.stringify(value)}function composeFilter({source,deploymentId,environment,filter}){let clauses=[];if(deploymentId&&clauses.push(`deploymentId:${quoteFilterValue(deploymentId)}`),environment&&clauses.push(`environment:${quoteFilterValue(environment)}`),clauses.push(...source.fixedFilters),filter&&clauses.push(filter),clauses.length!==0)return clauses.map(clause=>`(${clause})`).join(" AND ")}function fetchEventPages2(client,query,limit,startCursor){return fetchEventPages(client,{event:query.source.event,ownerId:query.teamId,projectIds:[query.projectId],timeRange:{start:query.timeRange.start.toISOString(),end:query.timeRange.end.toISOString()},filter:query.filter,select:query.source.select,queryReason:query.source.queryReason,gatewayTimeoutRetries:GATEWAY_TIMEOUT_RETRIES},limit,startCursor)}var import_build_utils=__toESM(require_build_utils(),1);var NOT_LINKED_MESSAGE=`Your codebase isn't linked to a project on Vercel. Run ${getCommandName("link")}, or select a team and project with --scope <team> --project <name>.`;function fail(reason,error,exitCode2=1){return{error,exitCode:exitCode2,reason}}async function readLink(client,project){let orgId=(0,import_build_utils.getPlatformEnv)("ORG_ID"),projectId=(0,import_build_utils.getPlatformEnv)("PROJECT_ID");if(orgId&&projectId)return{link:{orgId,projectId}};if(orgId||projectId){let present=orgId?"`VERCEL_ORG_ID`":"`VERCEL_PROJECT_ID`",missing=orgId?"`VERCEL_PROJECT_ID`":"`VERCEL_ORG_ID`";return fail(AGENT_REASON.INVALID_CONFIGURATION,`You specified ${present} but you forgot to specify ${missing}. You need to specify both to select a custom project.`)}let path=await resolveProjectCwd(client.cwd);if(project){let selected=await getProjectLink(client,path,project,!0);if(selected)return{link:{orgId:selected.orgId,projectId:selected.projectId}}}let link=await getProjectLink(client,path);return{link:link?{orgId:link.orgId,projectId:link.projectId}:null}}async function teamLabel(client,teamId){try{return(await getTeamByIdOrSlug(client,teamId,{useCurrentTeam:!1})).slug||teamId}catch(err){return output_manager_default.debug(`Could not fetch team ${teamId}: ${err}`),teamId}}function isTeamId(ownerId){return ownerId.startsWith("team_")}var PERSONAL_ACCOUNT_MESSAGE="Logs are available for team-owned projects only. Select a team with --scope <team>.";async function resolveLogsTarget(client,{project:projectOption,deployment:deploymentOption,deploymentFromArgument=!1,quiet=!1}){let spinner=message=>{quiet||output_manager_default.spinner(message,1e3)},explicitScope=detectExplicitScope(client),explicitTeamId=explicitScope?client.config.currentTeam:void 0;if(explicitScope&&!explicitTeamId)return fail(AGENT_REASON.MISSING_SCOPE,PERSONAL_ACCOUNT_MESSAGE);let replacesLinkedProject=!!(projectOption||deploymentOption),link=null;if(!(explicitTeamId&&replacesLinkedProject)){let linkResult=await readLink(client,projectOption);if("error"in linkResult)return linkResult;link=linkResult.link}let teamId=explicitTeamId??link?.orgId;if(!teamId)return fail(AGENT_REASON.NOT_LINKED,NOT_LINKED_MESSAGE);if(!isTeamId(teamId))return fail(AGENT_REASON.MISSING_SCOPE,PERSONAL_ACCOUNT_MESSAGE);if(!replacesLinkedProject){if(!link)return fail(AGENT_REASON.NOT_LINKED,NOT_LINKED_MESSAGE);if(link.orgId!==teamId){let[requested,linked]=await Promise.all([teamLabel(client,teamId),teamLabel(client,link.orgId)]);return fail(AGENT_REASON.TARGET_CONFLICT,`This directory is linked to a project in team ${linked}, but ${requested} was selected.
75
75
  Select a project in ${requested} with --project <name>, select the linked team with --scope ${linked}, or run ${getCommandName("link")} to relink.`)}}client.config.currentTeam=teamId;let labelPromise,getLabel=()=>labelPromise??=teamLabel(client,teamId);quiet||getLabel();let deploymentId,deploymentProjectId;if(deploymentOption){spinner(`Resolving deployment "${deploymentOption}"`);try{let deployment=await getDeployment(client,teamId,deploymentOption);deploymentId=deployment.id,deploymentProjectId=deployment.projectId}catch(err){if(err instanceof DeploymentNotFound||err instanceof DeploymentPermissionDenied)return fail(AGENT_REASON.NOT_FOUND,`Deployment not found: ${deploymentOption} under ${await getLabel()}`);if(err instanceof InvalidDeploymentId)return fail(AGENT_REASON.NOT_FOUND,`Invalid deployment ID or URL: ${deploymentOption}`);throw err}finally{output_manager_default.stopSpinner()}if(!deploymentProjectId)return fail(AGENT_REASON.NOT_FOUND,`Deployment ${deploymentOption} is not associated with a project.`)}let projectIdOrName=projectOption??deploymentProjectId??link?.projectId;if(!projectIdOrName)return fail(AGENT_REASON.NOT_LINKED,NOT_LINKED_MESSAGE);let lookupProject=async()=>{let project2=await getProjectByNameOrId(client,projectIdOrName,teamId);if(project2 instanceof ProjectNotFound){let label=await getLabel();return!projectOption&&!deploymentProjectId?fail(AGENT_REASON.PROJECT_NOT_FOUND,`The linked project ${projectIdOrName} was not found under ${label}. Run ${getCommandName("link")} to relink, or select a project with --project <name>.`):fail(AGENT_REASON.PROJECT_NOT_FOUND,`Project not found: ${projectIdOrName} under ${label}`)}if(deploymentProjectId&&project2.id!==deploymentProjectId){let deploymentInput=deploymentFromArgument?"the deployment argument":"--deployment";return fail(AGENT_REASON.TARGET_CONFLICT,`Deployment ${deploymentOption} does not belong to project ${project2.name}. Remove ${deploymentInput} or --project.`)}return{project:project2}};if(projectIdOrName.startsWith("prj_")&&!(projectOption&&deploymentProjectId)){let namesPromise;return{target:{teamId,projectId:projectIdOrName,deploymentId,names:()=>namesPromise??=Promise.all([lookupProject(),getLabel()]).then(([lookup2,teamLabel2])=>"error"in lookup2?lookup2:{teamLabel:teamLabel2,projectName:lookup2.project.name}),deferredLookup:!0}}}spinner("Retrieving project\u2026");let lookup;try{lookup=await lookupProject()}finally{output_manager_default.stopSpinner()}if("error"in lookup)return lookup;let{project}=lookup;return{target:{teamId,projectId:project.id,deploymentId,names:async()=>({teamLabel:await getLabel(),projectName:project.name}),deferredLookup:!1}}}var import_ms2=__toESM(require_ms(),1);function parseBound(flag,value,now){try{return parseTimeFlag(value,now)}catch{return`Invalid time format "${value}" for ${flag}. Use a relative duration (1h, 30m, 2d), an ISO 8601 datetime, or now.`}}function resolveLogsTimeRange({since,until,now,wholeSeconds}){let end=until!==void 0?parseBound("--until",until,now):new Date(now);if(typeof end=="string")return{error:end};let start=since!==void 0?parseBound("--since",since,now):new Date(end.getTime()-(0,import_ms2.default)(DEFAULT_WINDOW));if(typeof start=="string")return{error:start};let range=wholeSeconds?{start:floorToSecond(start),end:floorToSecond(end)}:{start,end};return range.start.getTime()>=range.end.getTime()?{error:[`The time range is empty: the start (${range.start.toISOString()}) must be before the end (${range.end.toISOString()}).`,"Use --since to set an earlier start."].join(`
76
76
  `)}:{range}}function floorToSecond(date){return new Date(Math.floor(date.getTime()/1e3)*1e3)}var COMMAND_CONFIG={runtime:getCommandAliases(runtimeSubcommand),requests:getCommandAliases(requestsSubcommand)},SUBCOMMAND_METADATA={runtime:runtimeSubcommand,requests:requestsSubcommand},SOURCE_TITLES={runtime:"Runtime logs",requests:"CDN requests"},CONTINUATION_CONFLICTS=["--project","--deployment","--environment","--query","--since","--until"];function looksLikeDeployment(value){return value.startsWith("dpl_")||value.includes(".")||/^https?:\/\//i.test(value)}function deploymentHost(value){try{return new URL(value).hostname}catch{return value}}function argvRequestsJson(argv){let args=argv.slice(2);for(let[index,arg]of args.entries()){if(arg==="--")break;if(arg==="--json")return!0;if(arg.startsWith("--json=")){if(arg.slice(7).toLowerCase()!=="false")return!0;continue}if(arg.toLowerCase()==="--format=json"||arg.startsWith("-F=")&&arg.slice(3).toLowerCase()==="json"||(arg==="--format"||arg==="-F")&&args[index+1]?.toLowerCase()==="json")return!0}return!1}function isRemovedJsonShorthandError(err){return isArgumentError(err)&&err.invalidOption==="-j"}function argvHasScopeFlag(argv){for(let arg of argv.slice(2)){if(arg==="--")break;if(arg==="--scope"||arg==="--team"||arg==="-S"||arg==="-T"||arg.startsWith("--scope=")||arg.startsWith("--team="))return!0}return!1}function deploymentFlag(value){return`--deployment ${quoteArg(deploymentHost(value))}`}function positionalError(value,explicitSource){let sourcePart=explicitSource?` ${explicitSource}`:"";return looksLikeDeployment(value)?`Select a deployment with --deployment: ${getCommandName(`logs${sourcePart} ${deploymentFlag(value)}`)}`:explicitSource?`Unexpected argument "${value}". ${getCommandName(`logs ${explicitSource}`)} takes no arguments.`:`Unknown data source "${value}". Use runtime or requests. See ${getCommandName("logs --help")}.`}function isClosedOutputError(err){return err instanceof Error&&(err.code==="EPIPE"||err.message==="Output stream closed.")}function streamGapMessage(interval){return`Results omit ${sanitize(interval.start)} to ${sanitize(interval.end)}: data for this period is unavailable to this query.`}async function logs(client){let commandStart=Date.now(),telemetry=new LogsTelemetryClient({opts:{store:client.telemetryEventStore}}),parsedArguments;try{parsedArguments=parseArguments(client.argv.slice(2),getFlagsSpecification([...logsCommand.options,...legacyLogsOptions]))}catch(err){let removedShorthand=isRemovedJsonShorthandError(err);removedShorthand&&telemetry.trackCliLegacyOption("j");let message=removedShorthand?"-j was removed. Use --json.":err instanceof Error?err.message:String(err);return client.nonInteractive||argvRequestsJson(client.argv)?writeJsonError(client,{status:"error",reason:AGENT_REASON.INVALID_ARGUMENTS,message,next:[{command:"vercel logs --help"}]}):removedShorthand?(output_manager_default.error(message),2):(printError(err),output_manager_default.print(`Run ${getCommandName("logs --help")} for usage.
77
- `),2)}parsedArguments.args[0]==="log"&&warnDeprecatedSubcommand(client,"log","logs");let{flags}=parsedArguments,formatResult=validateJsonOutput(flags),json=!!flags["--json"]||formatResult.valid&&formatResult.jsonOutput||argvRequestsJson(client.argv)||client.nonInteractive,{subcommand,subcommandOriginal,args}=getSubcommand(parsedArguments.args.slice(1),COMMAND_CONFIG),explicitSource=subcommand==="runtime"||subcommand==="requests"?subcommand:void 0;if(flags["--help"])return telemetry.trackCliFlagHelp("logs",explicitSource&&subcommandOriginal),output_manager_default.print(help(explicitSource?SUBCOMMAND_METADATA[explicitSource]:logsCommand,{stream:client.stderr,parent:explicitSource?logsCommand:void 0,columns:client.stderr.columns})),0;let nextOption=flags["--next"],trimmedNext=nextOption?.trim(),continuation=trimmedNext?decodeContinuation(trimmedNext):void 0,continuationSource=continuation?sourceForEvent(continuation.event):void 0,sourceName=explicitSource??continuationSource?.name??"runtime";sourceName==="requests"?telemetry.trackCliSubcommandRequests(subcommandOriginal):telemetry.trackCliSubcommandRuntime(subcommandOriginal);let projectOption=flags["--project"],deploymentOption=flags["--deployment"],environmentOption=flags["--environment"],queryOption=flags["--query"],sinceOption=flags["--since"],untilOption=flags["--until"],limitOption=flags["--limit"];telemetry.trackCliOptionProject(projectOption),telemetry.trackCliOptionDeployment(deploymentOption),telemetry.trackCliOptionEnvironment(environmentOption),telemetry.trackCliOptionQuery(queryOption),telemetry.trackCliOptionSince(sinceOption),telemetry.trackCliOptionUntil(untilOption),telemetry.trackCliOptionLimit(limitOption),telemetry.trackCliOptionNext(nextOption),telemetry.trackCliOptionFormat(flags["--format"]),telemetry.trackCliFlagJson(flags["--json"]),telemetry.trackCliFlagFollow(flags["--follow"]);let fail2=(reason,message,exitCode2,extra={})=>(output_manager_default.stopSpinner(),json?writeJsonError(client,{status:"error",reason,message,...extra},exitCode2):(output_manager_default.error(message),exitCode2??(reason===AGENT_REASON.INVALID_ARGUMENTS?2:1))),usageError=message=>fail2(AGENT_REASON.INVALID_ARGUMENTS,message,2),failUnexpected=err=>{if(output_manager_default.stopSpinner(),!json)return printError(err),1;let failure=describeLogsApiError(client,err,sourceName);return failure?writeJsonError(client,failure.json,failure.exitCode):writeJsonError(client,{status:"error",reason:AGENT_REASON.API_ERROR,message:(0,import_error_utils2.errorToString)(err)})};if(!formatResult.valid)return usageError(formatResult.error);let legacyOptions=usedLegacyOptions(flags);for(let name of legacyOptions)telemetry.trackCliLegacyOption(name);let legacyError=getLegacyOptionError(flags);if(legacyError)return usageError(legacyError);let positionalDeployment;if(args.length>0){if(telemetry.trackCliArgumentPositional(looksLikeDeployment(args[0])?"deployment":"unknown"),args.length>1||!looksLikeDeployment(args[0]))return usageError(positionalError(args[0],explicitSource));if(deploymentOption!==void 0)return usageError("Pass the deployment once, with --deployment. Remove the deployment argument.");if(nextOption!==void 0)return usageError("A deployment argument can't be combined with --next. The cursor keeps the original target, filter, and time window.");positionalDeployment=args[0]}let upfrontWarnings=[],warn=(reason,message,data)=>{json?upfrontWarnings.push(warningLine({reason,message,data})):output_manager_default.warning(message)};flags["--follow"]&&warn("deprecated","--follow is deprecated and no longer streams logs. Showing a bounded result; remove --follow."),positionalDeployment!==void 0&&warn("deprecated",`Passing a deployment as an argument is deprecated. Use ${deploymentFlag(positionalDeployment)}.`);let limit;if(typeof limitOption=="number"&&Number.isInteger(limitOption)&&limitOption>MAX_LIMIT)limit=MAX_LIMIT,warn("limit_clamped",`--limit ${limitOption} is above the maximum of ${MAX_LIMIT}. Using ${MAX_LIMIT}.`,{requested:limitOption,limit:MAX_LIMIT});else{let limitResult=validateIntegerRangeWithDefault(limitOption,{flag:"--limit",min:1,max:MAX_LIMIT,defaultValue:DEFAULT_LIMIT});if(!limitResult.valid)return usageError(limitResult.message);limit=limitResult.value}let plan;if(nextOption!==void 0){let planResult=await planContinuation();if(typeof planResult=="number")return planResult;plan=planResult}else{let planResult=await planQuery();if(typeof planResult=="number")return planResult;plan=planResult}async function planContinuation(){if(!trimmedNext)return usageError("--next must not be empty.");let invalidCursor=`--next is not a valid cursor. Use the pagination.next value from the summary of a previous ${getCommandName("logs --json")} run.`;if(!continuation||!continuationSource)return usageError(invalidCursor);let parsed=parseContinuation(continuation);if(!parsed)return usageError(invalidCursor);if(explicitSource&&explicitSource!==continuationSource.name)return usageError(`The --next cursor continues a ${continuationSource.name} query. Use ${getCommandName("logs --next <CURSOR>")} without "${explicitSource}".`);for(let flag of CONTINUATION_CONFLICTS)if(flags[flag]!==void 0)return usageError(`${flag} can't be combined with --next. The cursor keeps the original target, filter, and time window.`);if(argvHasScopeFlag(client.argv)&&client.config.currentTeam!==continuation.ownerId)return usageError("The --next cursor belongs to a different team than --scope. Remove --scope to use the team in the cursor.");let{teamId,projectId,timeRange:timeRange2}=parsed;return{source:continuationSource,teamId,projectId,timeRange:timeRange2,filter:continuation.filter,startCursor:continuation.cursor,context:async()=>{let[label,project]=await Promise.all([teamLabel(client,teamId),getProjectByNameOrId(client,projectId,teamId).catch(()=>null)]),projectName=project&&!(project instanceof ProjectNotFound)?project.name:projectId;return`${SOURCE_TITLES[continuationSource.name]} for ${label}/${projectName} (continued), ${formatWindow(timeRange2)}`}}}async function planQuery(){let source2=logsSources[sourceName],filter=queryOption?.trim();if(queryOption!==void 0&&!filter)return usageError("--query must not be empty.");let environment=environmentOption?.trim();if(environmentOption!==void 0&&!environment)return usageError("--environment must not be empty.");let deploymentInput=deploymentOption??positionalDeployment,deployment=deploymentInput?.trim();if(deploymentInput!==void 0&&!deployment)return usageError("--deployment must not be empty.");let project=projectOption?.trim();if(projectOption!==void 0&&!project)return usageError("--project must not be empty.");let timeRangeResult=resolveLogsTimeRange({since:sinceOption,until:untilOption,now:commandStart,wholeSeconds:source2.wholeSecondBounds});if("error"in timeRangeResult)return usageError(timeRangeResult.error);let timeRange2=timeRangeResult.range,targetResult;try{targetResult=await resolveLogsTarget(client,{project,deployment:deployment&&deploymentHost(deployment),deploymentFromArgument:positionalDeployment!==void 0,quiet:json})}catch(err){return failUnexpected(err)}if("error"in targetResult)return fail2(targetResult.reason,targetResult.error,targetResult.exitCode);let{target}=targetResult;return{source:source2,teamId:target.teamId,projectId:target.projectId,timeRange:timeRange2,filter:composeFilter({source:source2,deploymentId:target.deploymentId,environment,filter}),context:async()=>{let names=await target.names();if("error"in names)return names;let details=[target.deploymentId?`deployment ${target.deploymentId}`:void 0,environment?`environment ${environment}`:void 0].filter(Boolean);return`${SOURCE_TITLES[source2.name]} for ${names.teamLabel}/${names.projectName}`+(details.length>0?` (${details.join(", ")})`:"")+`, ${formatWindow(timeRange2)}`},deferredLookup:target.deferredLookup}}let{source,timeRange}=plan,serializedTimeRange=serializeTimeRange(timeRange),tokenFor=cursor=>encodeContinuation({event:source.event,ownerId:plan.teamId,projectIds:[plan.projectId],timeRange:serializedTimeRange,...plan.filter!==void 0?{filter:plan.filter}:{},order:"desc",cursor}),write=async text2=>{try{return await writeWithBackpressure(client.stdout,text2),!0}catch(err){if(isClosedOutputError(err))return!1;throw err}},pages=fetchEventPages2(client,{source,teamId:plan.teamId,projectId:plan.projectId,timeRange,filter:plan.filter},limit,plan.startCursor),firstPage=json?pages.next():void 0;firstPage?.catch(()=>{});let renderer=json?void 0:createRenderer(source.name,timeRange),excludedIntervals=new Map,written=0,pagesFetched=0,resumeCursor=plan.startCursor,result,checkTarget=async()=>{let context;try{context=await plan.context()}catch(err){return failUnexpected(err)}return typeof context=="string"?context:fail2(context.reason,context.error,context.exitCode)},writeUpfrontWarnings=async()=>upfrontWarnings.length===0||write(upfrontWarnings.join(""));try{if(!json){plan.deferredLookup&&output_manager_default.spinner("Retrieving project\u2026",1e3);let context=await checkTarget();if(output_manager_default.stopSpinner(),typeof context=="number")return context;output_manager_default.print(import_chalk5.default.dim(`${context}
77
+ `),2)}parsedArguments.args[0]==="log"&&warnDeprecatedSubcommand(client,"log","logs");let{flags}=parsedArguments,formatResult=validateJsonOutput(flags),json=!!flags["--json"]||formatResult.valid&&formatResult.jsonOutput||argvRequestsJson(client.argv)||client.nonInteractive,{subcommand,subcommandOriginal,args}=getSubcommand(parsedArguments.args.slice(1),COMMAND_CONFIG),explicitSource=subcommand==="runtime"||subcommand==="requests"?subcommand:void 0;if(flags["--help"])return telemetry.trackCliFlagHelp("logs",explicitSource&&subcommandOriginal),output_manager_default.print(help(explicitSource?SUBCOMMAND_METADATA[explicitSource]:logsCommand,{stream:client.stderr,parent:explicitSource?logsCommand:void 0,columns:client.stderr.columns})),0;let nextOption=flags["--next"],trimmedNext=nextOption?.trim(),continuation=trimmedNext?decodeContinuation(trimmedNext):void 0,continuationSource=continuation?sourceForEvent(continuation.event):void 0,queryOption=flags["--query"],legacy=resolveLegacyOptions(flags,{explicitSource,query:queryOption?.trim(),next:nextOption!==void 0}),sourceName=explicitSource??continuationSource?.name??("source"in legacy?legacy.source:void 0)??"runtime";sourceName==="requests"?telemetry.trackCliSubcommandRequests(subcommandOriginal):telemetry.trackCliSubcommandRuntime(subcommandOriginal);let projectOption=flags["--project"],deploymentOption=flags["--deployment"],environmentOption=flags["--environment"],sinceOption=flags["--since"],untilOption=flags["--until"],limitOption=flags["--limit"];telemetry.trackCliOptionProject(projectOption),telemetry.trackCliOptionDeployment(deploymentOption),telemetry.trackCliOptionEnvironment(environmentOption),telemetry.trackCliOptionQuery(queryOption),telemetry.trackCliOptionSince(sinceOption),telemetry.trackCliOptionUntil(untilOption),telemetry.trackCliOptionLimit(limitOption),telemetry.trackCliOptionNext(nextOption),telemetry.trackCliOptionFormat(flags["--format"]),telemetry.trackCliFlagJson(flags["--json"]),telemetry.trackCliFlagFollow(flags["--follow"]);let fail2=(reason,message,exitCode2,extra={})=>(output_manager_default.stopSpinner(),json?writeJsonError(client,{status:"error",reason,message,...extra},exitCode2):(output_manager_default.error(message),exitCode2??(reason===AGENT_REASON.INVALID_ARGUMENTS?2:1))),usageError=message=>fail2(AGENT_REASON.INVALID_ARGUMENTS,message,2),failUnexpected=err=>{if(output_manager_default.stopSpinner(),!json)return printError(err),1;let failure=describeLogsApiError(client,err,sourceName);return failure?writeJsonError(client,failure.json,failure.exitCode):writeJsonError(client,{status:"error",reason:AGENT_REASON.API_ERROR,message:(0,import_error_utils2.errorToString)(err)})};if(!formatResult.valid)return usageError(formatResult.error);let legacyOptions=usedLegacyOptions(flags);for(let name of legacyOptions)telemetry.trackCliLegacyOption(name);if("error"in legacy)return usageError(legacy.error);let{warnings:legacyWarnings,filter:legacyFilter,translated:legacyTranslated}=legacy,positionalDeployment;if(args.length>0){if(telemetry.trackCliArgumentPositional(looksLikeDeployment(args[0])?"deployment":"unknown"),args.length>1||!looksLikeDeployment(args[0]))return usageError(positionalError(args[0],explicitSource));if(deploymentOption!==void 0)return usageError("Pass the deployment once, with --deployment. Remove the deployment argument.");if(nextOption!==void 0)return usageError("A deployment argument can't be combined with --next. The cursor keeps the original target, filter, and time window.");positionalDeployment=args[0]}let upfrontWarnings=[],warn=(reason,message,data)=>{json?upfrontWarnings.push(warningLine({reason,message,data})):output_manager_default.warning(message)};for(let message of legacyWarnings)warn("deprecated",message);legacyFilter!==void 0&&warn("deprecated",translationWarning(legacyTranslated,replacementCommand(flags,client.argv,{source:explicitSource??legacy.source,deployment:positionalDeployment!==void 0?deploymentHost(positionalDeployment):void 0,filter:legacyFilter}))),flags["--follow"]&&warn("deprecated","--follow is deprecated and no longer streams logs. Showing a bounded result; remove --follow."),positionalDeployment!==void 0&&warn("deprecated",`Passing a deployment as an argument is deprecated. Use ${deploymentFlag(positionalDeployment)}.`);let limit;if(typeof limitOption=="number"&&Number.isInteger(limitOption)&&limitOption>MAX_LIMIT)limit=MAX_LIMIT,warn("limit_clamped",`--limit ${limitOption} is above the maximum of ${MAX_LIMIT}. Using ${MAX_LIMIT}.`,{requested:limitOption,limit:MAX_LIMIT});else{let limitResult=validateIntegerRangeWithDefault(limitOption,{flag:"--limit",min:1,max:MAX_LIMIT,defaultValue:DEFAULT_LIMIT});if(!limitResult.valid)return usageError(limitResult.message);limit=limitResult.value}let plan;if(nextOption!==void 0){let planResult=await planContinuation();if(typeof planResult=="number")return planResult;plan=planResult}else{let planResult=await planQuery();if(typeof planResult=="number")return planResult;plan=planResult}async function planContinuation(){if(!trimmedNext)return usageError("--next must not be empty.");let invalidCursor=`--next is not a valid cursor. Use the pagination.next value from the summary of a previous ${getCommandName("logs --json")} run.`;if(!continuation||!continuationSource)return usageError(invalidCursor);let parsed=parseContinuation(continuation);if(!parsed)return usageError(invalidCursor);if(explicitSource&&explicitSource!==continuationSource.name)return usageError(`The --next cursor continues a ${continuationSource.name} query. Use ${getCommandName("logs --next <CURSOR>")} without "${explicitSource}".`);for(let flag of CONTINUATION_CONFLICTS)if(flags[flag]!==void 0)return usageError(`${flag} can't be combined with --next. The cursor keeps the original target, filter, and time window.`);if(argvHasScopeFlag(client.argv)&&client.config.currentTeam!==continuation.ownerId)return usageError("The --next cursor belongs to a different team than --scope. Remove --scope to use the team in the cursor.");let{teamId,projectId,timeRange:timeRange2}=parsed;return{source:continuationSource,teamId,projectId,timeRange:timeRange2,filter:continuation.filter,startCursor:continuation.cursor,context:async()=>{let[label,project]=await Promise.all([teamLabel(client,teamId),getProjectByNameOrId(client,projectId,teamId).catch(()=>null)]),projectName=project&&!(project instanceof ProjectNotFound)?project.name:projectId;return`${SOURCE_TITLES[continuationSource.name]} for ${label}/${projectName} (continued), ${formatWindow(timeRange2)}`}}}async function planQuery(){let source2=logsSources[sourceName],query=queryOption?.trim();if(queryOption!==void 0&&!query)return usageError("--query must not be empty.");let filter=legacyFilter??query,environment=environmentOption?.trim();if(environmentOption!==void 0&&!environment)return usageError("--environment must not be empty.");let deploymentInput=deploymentOption??positionalDeployment,deployment=deploymentInput?.trim();if(deploymentInput!==void 0&&!deployment)return usageError("--deployment must not be empty.");let project=projectOption?.trim();if(projectOption!==void 0&&!project)return usageError("--project must not be empty.");let timeRangeResult=resolveLogsTimeRange({since:sinceOption,until:untilOption,now:commandStart,wholeSeconds:source2.wholeSecondBounds});if("error"in timeRangeResult)return usageError(timeRangeResult.error);let timeRange2=timeRangeResult.range,targetResult;try{targetResult=await resolveLogsTarget(client,{project,deployment:deployment&&deploymentHost(deployment),deploymentFromArgument:positionalDeployment!==void 0,quiet:json})}catch(err){return failUnexpected(err)}if("error"in targetResult)return fail2(targetResult.reason,targetResult.error,targetResult.exitCode);let{target}=targetResult;return{source:source2,teamId:target.teamId,projectId:target.projectId,timeRange:timeRange2,filter:composeFilter({source:source2,deploymentId:target.deploymentId,environment,filter}),context:async()=>{let names=await target.names();if("error"in names)return names;let details=[target.deploymentId?`deployment ${target.deploymentId}`:void 0,environment?`environment ${environment}`:void 0].filter(Boolean);return`${SOURCE_TITLES[source2.name]} for ${names.teamLabel}/${names.projectName}`+(details.length>0?` (${details.join(", ")})`:"")+`, ${formatWindow(timeRange2)}`},deferredLookup:target.deferredLookup}}let{source,timeRange}=plan,serializedTimeRange=serializeTimeRange(timeRange),tokenFor=cursor=>encodeContinuation({event:source.event,ownerId:plan.teamId,projectIds:[plan.projectId],timeRange:serializedTimeRange,...plan.filter!==void 0?{filter:plan.filter}:{},order:"desc",cursor}),write=async text2=>{try{return await writeWithBackpressure(client.stdout,text2),!0}catch(err){if(isClosedOutputError(err))return!1;throw err}},pages=fetchEventPages2(client,{source,teamId:plan.teamId,projectId:plan.projectId,timeRange,filter:plan.filter},limit,plan.startCursor),firstPage=json?pages.next():void 0;firstPage?.catch(()=>{});let renderer=json?void 0:createRenderer(source.name,timeRange),excludedIntervals=new Map,written=0,pagesFetched=0,resumeCursor=plan.startCursor,result,checkTarget=async()=>{let context;try{context=await plan.context()}catch(err){return failUnexpected(err)}return typeof context=="string"?context:fail2(context.reason,context.error,context.exitCode)},writeUpfrontWarnings=async()=>upfrontWarnings.length===0||write(upfrontWarnings.join(""));try{if(!json){plan.deferredLookup&&output_manager_default.spinner("Retrieving project\u2026",1e3);let context=await checkTarget();if(output_manager_default.stopSpinner(),typeof context=="number")return context;output_manager_default.print(import_chalk5.default.dim(`${context}
78
78
  `))}for(;;){!json&&pagesFetched===0&&output_manager_default.spinner(`Fetching ${source.recordsLabel}\u2026`,1e3);let first=pagesFetched===0,pending=firstPage;firstPage=void 0;let next;try{next=await(pending??pages.next())}catch(err){if(first){if(plan.deferredLookup){let context=await checkTarget();if(typeof context=="number")return context}if(!await writeUpfrontWarnings())return 0}return reportFetchFailure(err)}if(output_manager_default.stopSpinner(),first&&!await writeUpfrontWarnings())return 0;if(pagesFetched+=1,next.done){result=next.value;break}for(let interval of next.value.excludedIntervals)excludedIntervals.set(`${interval.start}/${interval.end}`,interval);let{events}=next.value,chunk="";if(renderer){written===0&&events.length>0&&(chunk+=`${renderer.header()}
79
79
  `);for(let event of events)chunk+=`${renderer.row(event)}
80
80
  `}else for(let event of events)chunk+=recordLine(source.recordType,event);if(chunk&&!await write(chunk))return 0;written+=events.length,resumeCursor=next.value.nextCursor??void 0}let intervals=sortIntervals(excludedIntervals.values()),nextToken=result.nextCursor?tokenFor(result.nextCursor):null;if(json){let tail=intervals.map(interval=>warningLine({reason:"stream_gap",message:streamGapMessage(interval),data:{start:interval.start,end:interval.end}})).join("")+summaryLine({recordsReturned:written,timeRange:serializedTimeRange,pagination:{hasMore:result.hasMore,next:nextToken},excludedIntervals:intervals});return await write(tail),0}for(let interval of intervals)output_manager_default.warning(streamGapMessage(interval));if(written===0){let notes=[`No ${source.recordsLabel} found in this window. Use an earlier --since to search further back.`];source.fixedFilters.includes(BACKGROUND_FUNCTION_EXCLUSION)&&notes.push("Background function executions are always excluded."),output_manager_default.print(import_chalk5.default.dim(`${notes.join(`
@@ -4,7 +4,7 @@ import { dirname as __dirname_ } from 'node:path';
4
4
  const require = __createRequire(import.meta.url);
5
5
  const __filename = __fileURLToPath(import.meta.url);
6
6
  const __dirname = __dirname_(__filename);
7
- import{FILTER_DEPRECATION_WARNING,alignTimeRangeToGranularity,canonicalResponseToMetricsResponse,createCanonicalMetricsRequest,usesODataSyntax}from"./chunks/chunk-HNH3DPIZ.js";import{init_dist,prepareFlagsDefinitions}from"./chunks/chunk-OAM5NJCU.js";import{require_dist}from"./chunks/chunk-JELLVPCM.js";import{EncryptJWT,base64url_exports,jwtDecrypt}from"./chunks/chunk-S3L2OHPO.js";import{sanitizeForTerminal}from"./chunks/chunk-UUBPAYTG.js";import{require_fast_deep_equal}from"./chunks/chunk-MCRKBVZA.js";import{readStdinText}from"./chunks/chunk-PSOVLGHP.js";import{require_raw_body}from"./chunks/chunk-XOETL6DB.js";import{getLinkedFlagsProject,getProjectNameFromFlags}from"./chunks/chunk-MIIHBRKV.js";import{parseSubcommandArguments,requireProjectContext}from"./chunks/chunk-7LPNDK2O.js";import{computeGranularity,formatText,generateSparkline}from"./chunks/chunk-BW25OFQG.js";import{OBSERVABILITY_METRICS_PATH,getRollupColumnName,handleApiError}from"./chunks/chunk-NTDP6RTQ.js";import"./chunks/chunk-IVSSTHB6.js";import"./chunks/chunk-GZNDA6SV.js";import{findCommandShorthands}from"./chunks/chunk-KV3QXTRZ.js";import{STANDARD_ENVIRONMENTS}from"./chunks/chunk-7YKFF6CE.js";import{resolveProjectContext}from"./chunks/chunk-UNPK7LVC.js";import{formatProject}from"./chunks/chunk-NE6PKR2J.js";import{normalizeRepeatableStringFilters,outputError,validateIntegerRangeWithDefault,validateTimeBound,validateTimeOrder}from"./chunks/chunk-42FOKWGX.js";import{readOnOffOption}from"./chunks/chunk-PFZCGMJ7.js";import{effectsDigest,requireApproval}from"./chunks/chunk-DRZVM7CB.js";import"./chunks/chunk-NUSKXXZZ.js";import"./chunks/chunk-RAQ6EUNL.js";import"./chunks/chunk-IOTKHTZH.js";import{getCommandFlags}from"./chunks/chunk-XGTKHQTT.js";import{formatDate}from"./chunks/chunk-HRR57QNP.js";import{getInvalidSubcommand}from"./chunks/chunk-TG2RCYTH.js";import"./chunks/chunk-PFD7LETF.js";import{ellipsizeMiddle,truncateEnd}from"./chunks/chunk-TOTTVS5P.js";import{formatTable}from"./chunks/chunk-2RXUQ72I.js";import{resolveTimeRange}from"./chunks/chunk-D3M2JG5C.js";import{printNextPageCommand}from"./chunks/chunk-TZE4CS4K.js";import{canPrompt,canPromptOnTerminal}from"./chunks/chunk-IQ7FPAI4.js";import{stamp_default}from"./chunks/chunk-A2RZZQEP.js";import"./chunks/chunk-Q7D7RGXM.js";import{require_open}from"./chunks/chunk-PVASGBEF.js";import"./chunks/chunk-JUSNW3IF.js";import{table}from"./chunks/chunk-375JVQYK.js";import{getRenamedOption,reportRenamedOptionError,withWarnings}from"./chunks/chunk-3KJ6HWSX.js";import{getSubcommand}from"./chunks/chunk-ETV3C2CV.js";import"./chunks/chunk-SLCPSRDR.js";import{FLAG_ATTRIBUTE_TYPES,FLAG_CONDITION_LIST_COMPARATORS,FLAG_CONDITION_RHS_OPTIONAL_COMPARATORS,FLAG_EVALUATIONS_DIMENSIONS,FLAG_EVALUATIONS_DIMENSION_NAMES,FLAG_EVALUATIONS_GRANULARITIES,alertsInspectSubcommand,alertsListSubcommand,alertsSubcommand,archiveSubcommand,attackModeDisableSubcommand,attackModeEnableSubcommand,attackModeSubcommand,botManagementSubcommand,cleanupSubcommand,commandsStructs,connectionsAddSubcommand,connectionsListSubcommand,connectionsRemoveSubcommand,connectionsSubcommand,createSubcommand6 as createSubcommand,datafileSubcommand,diffSubcommand,disableSubcommand2 as disableSubcommand,discardSubcommand,enableSubcommand2 as enableSubcommand,entitiesCreateSubcommand,entitiesListSubcommand,entitiesRemoveSubcommand,entitiesSubcommand,entitiesUpdateSubcommand,evaluationsSubcommand,feedbackCommand,firewallCommand,flagsCommand,formatFlagAttributeTypeList,formatFlagConditionComparator,formatFlagConditionComparatorList,getCommandAliases,getFlagAttributeType,inspectSubcommand9 as inspectSubcommand,ipBlocksBlockSubcommand,ipBlocksListSubcommand,ipBlocksSubcommand,ipBlocksUnblockSubcommand,isBucketingAttribute,isFlagAttributeType,isFlagEvaluationsDimension,isFlagEvaluationsGranularity,isTimestampAttributeType,labelsListSubcommand,labelsSubcommand,listSubcommand14 as listSubcommand,openSubcommand3 as openSubcommand,overrideSubcommand,overviewSubcommand,persistentActionsInspectSubcommand,persistentActionsListSubcommand,persistentActionsSubcommand,prepareSubcommand,publishSubcommand,removeSubcommand8 as removeSubcommand,rolloutSubcommand,rulesAddSubcommand2 as rulesAddSubcommand,rulesAddSubcommand3 as rulesAddSubcommand2,rulesDisableSubcommand,rulesEditSubcommand2 as rulesEditSubcommand,rulesEnableSubcommand,rulesInspectSubcommand,rulesListSubcommand2 as rulesListSubcommand,rulesListSubcommand3 as rulesListSubcommand2,rulesMoveSubcommand,rulesRemoveSubcommand2 as rulesRemoveSubcommand,rulesRemoveSubcommand3 as rulesRemoveSubcommand2,rulesReorderSubcommand,rulesSubcommand2 as rulesSubcommand,rulesSubcommand3 as rulesSubcommand2,rulesUpdateSubcommand,sdkKeysAddSubcommand,sdkKeysListSubcommand,sdkKeysRemoveSubcommand,sdkKeysSubcommand,segmentsCreateSubcommand,segmentsInspectSubcommand,segmentsListSubcommand,segmentsRemoveSubcommand,segmentsSubcommand,segmentsUpdateSubcommand,setSubcommand2 as setSubcommand,splitSubcommand,staleSubcommand,statusSubcommand,systemBypassAddSubcommand,systemBypassListSubcommand,systemBypassRemoveSubcommand,systemBypassSubcommand,systemMitigationsPauseSubcommand,systemMitigationsResumeSubcommand,systemMitigationsSubcommand,targetingEnableSubcommand,targetingSubcommand,targetsAddSubcommand,targetsListSubcommand,targetsRemoveSubcommand,targetsSubcommand,trafficInspectSubcommand,trafficListSubcommand,trafficSubcommand,unarchiveSubcommand,updateSubcommand5 as updateSubcommand,useTargetingSubcommand,versionsDiffSubcommand,versionsListSubcommand,versionsSubcommand}from"./chunks/chunk-QROI2U32.js";import"./chunks/chunk-M3Z6NSC2.js";import"./chunks/chunk-ECFLIVEE.js";import"./chunks/chunk-RDWLLSPU.js";import"./chunks/chunk-7ZJ7VUIR.js";import"./chunks/chunk-WTFD4MDT.js";import"./chunks/chunk-IHTWZEQW.js";import"./chunks/chunk-74VQ7PQV.js";import"./chunks/chunk-SNGM6NSO.js";import"./chunks/chunk-P24YBQ6H.js";import"./chunks/chunk-NMIZSQDN.js";import"./chunks/chunk-K7ARJYAG.js";import"./chunks/chunk-V5TOMLK4.js";import"./chunks/chunk-M3R7F2N4.js";import"./chunks/chunk-4E6BGQWR.js";import"./chunks/chunk-6UMVJ7RL.js";import"./chunks/chunk-IIGNDMLO.js";import"./chunks/chunk-N65H4JMJ.js";import"./chunks/chunk-EJN55YDV.js";import"./chunks/chunk-5DXC4TE2.js";import"./chunks/chunk-4U6ACPA4.js";import"./chunks/chunk-7VGBGUX7.js";import"./chunks/chunk-CU3LNJZV.js";import"./chunks/chunk-JALVF3C2.js";import"./chunks/chunk-BZIC36KP.js";import{printError}from"./chunks/chunk-NDMQVBTV.js";import{help,remoteText}from"./chunks/chunk-HZEKH3RO.js";import{getScope}from"./chunks/chunk-NSPW47RU.js";import{TelemetryClient}from"./chunks/chunk-MBXLL2HF.js";import"./chunks/chunk-2EYYB6YN.js";import"./chunks/chunk-NWGBDBZI.js";import{buildCommandWithGlobalFlags,buildCommandWithYes,clientObservabilityPlanRecovery,outputAgentError,shouldEmitNonInteractiveCommandError,writeActionRequired,writeAgentError}from"./chunks/chunk-5X635INY.js";import"./chunks/chunk-FYE7ILRR.js";import{getProjectByNameOrId,isPromptCanceledError,sleep}from"./chunks/chunk-2J35YKA2.js";import{require_pluralize}from"./chunks/chunk-4HR3I3ML.js";import{formatAlignedLabel,printAlignedLabel}from"./chunks/chunk-PKNEWN4W.js";import{ua_default}from"./chunks/chunk-ITQPDXXA.js";import"./chunks/chunk-GL66K54F.js";import"./chunks/chunk-4NTBYNFR.js";import{parseArguments}from"./chunks/chunk-AYZ52QDF.js";import{teamCache}from"./chunks/chunk-2VBFQZ72.js";import{warnDeprecatedInput,warnDeprecatedOption,warnDeprecatedSubcommand}from"./chunks/chunk-SDYCW5JM.js";import"./chunks/chunk-LUX4PBJL.js";import"./chunks/chunk-OPORM35X.js";import{require_ms}from"./chunks/chunk-MXTC4ZAQ.js";import"./chunks/chunk-ZS2WS4AM.js";import"./chunks/chunk-4SAVH3H7.js";import{ProjectNotFound,isAPIError}from"./chunks/chunk-4DMKP6AO.js";import{cmd,getCommandName,getCommandNamePlain,packageName}from"./chunks/chunk-VRH7LWOC.js";import{pkg_default}from"./chunks/chunk-DBT6PGEH.js";import{output_manager_default,recordCliError}from"./chunks/chunk-GZLYNPNU.js";import"./chunks/chunk-BLUPZPAS.js";import"./chunks/chunk-5MDNVAE6.js";import"./chunks/chunk-OCR5CRTH.js";import"./chunks/chunk-RM3ZDRYE.js";import"./chunks/chunk-YHPPP3SF.js";import"./chunks/chunk-PUKYAALC.js";import{SDK_KEY_PATTERN,getFlagsSpecification,getGlobalFlagsFromArgs,getProjectOptionFromArgs,quoteArg}from"./chunks/chunk-AMPJ6RWT.js";import"./chunks/chunk-2BKALEOP.js";import{require_source}from"./chunks/chunk-NB2WLB3J.js";import"./chunks/chunk-ISWW3DKF.js";import"./chunks/chunk-BULSRTQE.js";import"./chunks/chunk-BRQUZ5NC.js";import"./chunks/chunk-D6REP5QQ.js";import"./chunks/chunk-FBYA6LLM.js";import{fetch,toNodeReadable}from"./chunks/chunk-MY4MONOH.js";import"./chunks/chunk-7EJQLVWX.js";import"./chunks/chunk-SCV7XEEO.js";import{AGENT_REASON,AGENT_STATUS,getExitCodeForReason}from"./chunks/chunk-Q2QVK3TH.js";import{__toESM}from"./chunks/chunk-BZENIQ7N.js";var import_raw_body=__toESM(require_raw_body(),1);var FeedbackTelemetryClient=class extends TelemetryClient{trackCliArgumentNote(note){note!==void 0&&this.trackCliArgument({arg:"note",value:this.redactedValue})}trackCliOptionField(fields){fields?.length&&this.trackCliOption({option:"field",value:this.redactedValue})}};var FEEDBACK_URL="https://vercel.com/api/feedback/cli",MAX_FEEDBACK_BYTES=1024*1024,FETCH_TIMEOUT_MS=1e4;async function feedback(client){let fail=(reason,message,code)=>(recordCliError({code:reason}),output_manager_default.error(message),code),parsed;try{parsed=parseArguments(client.argv.slice(2),getFlagsSpecification(feedbackCommand.options))}catch{return fail(AGENT_REASON.INVALID_ARGUMENTS,"Invalid feedback arguments. Run vercel feedback --help for usage.",2)}let notes=parsed.args.slice(1),fields=parsed.flags["--field"]??[];if(notes.length===0&&fields.length===0)return client.stdout.write(help(feedbackCommand,{stream:client.stdout,columns:client.stdout.columns??client.stderr.columns})),0;if(notes.length>1)return fail(AGENT_REASON.INVALID_ARGUMENTS,"Pass one note. Quote notes containing spaces, or use vercel feedback - to read stdin.",2);let telemetry=new FeedbackTelemetryClient({opts:{store:client.telemetryEventStore}});telemetry.trackCliArgumentNote(notes[0]),telemetry.trackCliOptionField(fields);let data=Object.create(null);for(let field of fields){let separator=field.indexOf("="),key=field.slice(0,separator).trim();if(separator<1||key==="")return fail(AGENT_REASON.INVALID_ARGUMENTS,"Each --field needs a non-empty key followed by =value. Example: vercel feedback --field topic=deploy.",2);data[key]=field.slice(separator+1)}if(notes.length&&Object.hasOwn(data,"note"))return fail(AGENT_REASON.INVALID_ARGUMENTS,"Provide the note once: use a positional note or --field note=..., rather than both.",2);if(notes[0]==="-"){if(client.stdin.isTTY)return fail(AGENT_REASON.INVALID_ARGUMENTS,"No input was piped to stdin. Pipe a note with: cat notes.md | vercel feedback -",2);try{data.note=await readStdinText(client.stdin,MAX_FEEDBACK_BYTES)}catch(error){return error.type==="entity.too.large"?fail(AGENT_REASON.INVALID_ARGUMENTS,"Feedback is too large. Keep the complete submission below 1 MiB.",2):fail(AGENT_REASON.STDIN_ERROR,"Could not read the feedback note from stdin. Check the input pipe and try again.",1)}}else notes[0]!==void 0&&(data.note=notes[0]);for(let key of Object.keys(data))data[key].trim()||delete data[key];if(!Object.keys(data).length)return fail(AGENT_REASON.INVALID_ARGUMENTS,"Provide a note or at least one named field. Run vercel feedback --help for examples.",2);let canSendTelemetry=client.telemetryEventStore?.enabled??!1,body=JSON.stringify({metadata:canSendTelemetry?{agent:client.isAgent,agent_name:client.isAgent?client.agentName:void 0,cli_version:pkg_default.version,operating_system:process.platform,team_id:client.config.currentTeam??null,user_id:client.authConfig.userId??null,invocation_id:client.telemetryEventStore?.currentInvocationId??null,session_id:client.telemetryEventStore?.currentSessionId??null}:null,data});if(Buffer.byteLength(body)>MAX_FEEDBACK_BYTES)return fail(AGENT_REASON.INVALID_ARGUMENTS,"Feedback is too large. Keep the complete submission below 1 MiB.",2);let controller=new AbortController,timeout=setTimeout(()=>controller.abort(),FETCH_TIMEOUT_MS);timeout.unref?.();try{let response=await fetch(FEEDBACK_URL,{method:"POST",headers:{"content-type":"application/json","user-agent":ua_default},body,redirect:"manual",signal:controller.signal});if(!response.ok)return await response.body?.cancel(),fail(response.status===429?AGENT_REASON.RATE_LIMITED:AGENT_REASON.API_ERROR,`Feedback could not be submitted (HTTP ${response.status}). Try again later.`,1);let responseBody=toNodeReadable(response.body);return JSON.parse(await(0,import_raw_body.default)(responseBody,{limit:64*1024,encoding:"utf8"}).finally(()=>responseBody.destroy()))?.success!==!0?fail(AGENT_REASON.UNKNOWN_OUTCOME,"Could not confirm that Vercel accepted the feedback. It may have been submitted; no automatic retry was made.",1):(client.stdout.write(`Feedback sent
7
+ import{FILTER_DEPRECATION_WARNING,alignTimeRangeToGranularity,canonicalResponseToMetricsResponse,createCanonicalMetricsRequest,usesODataSyntax}from"./chunks/chunk-GAILIG45.js";import{init_dist,prepareFlagsDefinitions}from"./chunks/chunk-OAM5NJCU.js";import{EncryptJWT,base64url_exports,jwtDecrypt}from"./chunks/chunk-S3L2OHPO.js";import{sanitizeForTerminal}from"./chunks/chunk-UUBPAYTG.js";import{require_fast_deep_equal}from"./chunks/chunk-MCRKBVZA.js";import{getLinkedFlagsProject,getProjectNameFromFlags}from"./chunks/chunk-Z2K2JR7F.js";import{parseSubcommandArguments,requireProjectContext}from"./chunks/chunk-FXOKM2RM.js";import{computeGranularity,formatText,generateSparkline}from"./chunks/chunk-YLCIOXSX.js";import{OBSERVABILITY_METRICS_PATH,getRollupColumnName,handleApiError}from"./chunks/chunk-ZZLCRSES.js";import"./chunks/chunk-IVSSTHB6.js";import{require_dist}from"./chunks/chunk-JELLVPCM.js";import{readStdinText}from"./chunks/chunk-PSOVLGHP.js";import{require_raw_body}from"./chunks/chunk-XOETL6DB.js";import{findCommandShorthands}from"./chunks/chunk-4OO6TXBM.js";import{normalizeRepeatableStringFilters,outputError,validateIntegerRangeWithDefault,validateTimeBound,validateTimeOrder}from"./chunks/chunk-7PGDJTAH.js";import{effectsDigest,requireApproval}from"./chunks/chunk-E7IFYSQT.js";import{resolveTimeRange}from"./chunks/chunk-D3M2JG5C.js";import{ellipsizeMiddle,truncateEnd}from"./chunks/chunk-TOTTVS5P.js";import"./chunks/chunk-FZLCDLWD.js";import"./chunks/chunk-RAQ6EUNL.js";import"./chunks/chunk-EDO66J3L.js";import{formatDate}from"./chunks/chunk-HRR57QNP.js";import{formatTable}from"./chunks/chunk-YIOMTAUF.js";import{stamp_default}from"./chunks/chunk-A2RZZQEP.js";import"./chunks/chunk-Q7D7RGXM.js";import"./chunks/chunk-GZNDA6SV.js";import{resolveProjectContext}from"./chunks/chunk-B3IBBNIR.js";import{STANDARD_ENVIRONMENTS}from"./chunks/chunk-7YKFF6CE.js";import{formatProject}from"./chunks/chunk-MWWMY5R6.js";import{require_open}from"./chunks/chunk-PVASGBEF.js";import"./chunks/chunk-PSFHYOLD.js";import{readOnOffOption}from"./chunks/chunk-BH5OASEJ.js";import{getCommandFlags}from"./chunks/chunk-XGTKHQTT.js";import"./chunks/chunk-PFD7LETF.js";import{canPrompt,canPromptOnTerminal}from"./chunks/chunk-IQ7FPAI4.js";import{getInvalidSubcommand}from"./chunks/chunk-TG2RCYTH.js";import{getRenamedOption,reportRenamedOptionError,withWarnings}from"./chunks/chunk-WLMW7K7F.js";import{getSubcommand}from"./chunks/chunk-ETV3C2CV.js";import{printNextPageCommand}from"./chunks/chunk-QBHTNUM5.js";import{table}from"./chunks/chunk-CJZE7647.js";import"./chunks/chunk-Y2FVJ7YO.js";import{FLAG_ATTRIBUTE_TYPES,FLAG_CONDITION_LIST_COMPARATORS,FLAG_CONDITION_RHS_OPTIONAL_COMPARATORS,FLAG_EVALUATIONS_DIMENSIONS,FLAG_EVALUATIONS_DIMENSION_NAMES,FLAG_EVALUATIONS_GRANULARITIES,alertsInspectSubcommand,alertsListSubcommand,alertsSubcommand,archiveSubcommand,attackModeDisableSubcommand,attackModeEnableSubcommand,attackModeSubcommand,botManagementSubcommand,cleanupSubcommand,commandsStructs,connectionsAddSubcommand,connectionsListSubcommand,connectionsRemoveSubcommand,connectionsSubcommand,createSubcommand6 as createSubcommand,datafileSubcommand,diffSubcommand,disableSubcommand2 as disableSubcommand,discardSubcommand,enableSubcommand2 as enableSubcommand,entitiesCreateSubcommand,entitiesListSubcommand,entitiesRemoveSubcommand,entitiesSubcommand,entitiesUpdateSubcommand,evaluationsSubcommand,feedbackCommand,firewallCommand,flagsCommand,formatFlagAttributeTypeList,formatFlagConditionComparator,formatFlagConditionComparatorList,getCommandAliases,getFlagAttributeType,inspectSubcommand9 as inspectSubcommand,ipBlocksBlockSubcommand,ipBlocksListSubcommand,ipBlocksSubcommand,ipBlocksUnblockSubcommand,isBucketingAttribute,isFlagAttributeType,isFlagEvaluationsDimension,isFlagEvaluationsGranularity,isTimestampAttributeType,labelsListSubcommand,labelsSubcommand,listSubcommand14 as listSubcommand,openSubcommand3 as openSubcommand,overrideSubcommand,overviewSubcommand,persistentActionsInspectSubcommand,persistentActionsListSubcommand,persistentActionsSubcommand,prepareSubcommand,publishSubcommand,removeSubcommand8 as removeSubcommand,rolloutSubcommand,rulesAddSubcommand2 as rulesAddSubcommand,rulesAddSubcommand3 as rulesAddSubcommand2,rulesDisableSubcommand,rulesEditSubcommand2 as rulesEditSubcommand,rulesEnableSubcommand,rulesInspectSubcommand,rulesListSubcommand2 as rulesListSubcommand,rulesListSubcommand3 as rulesListSubcommand2,rulesMoveSubcommand,rulesRemoveSubcommand2 as rulesRemoveSubcommand,rulesRemoveSubcommand3 as rulesRemoveSubcommand2,rulesReorderSubcommand,rulesSubcommand2 as rulesSubcommand,rulesSubcommand3 as rulesSubcommand2,rulesUpdateSubcommand,sdkKeysAddSubcommand,sdkKeysListSubcommand,sdkKeysRemoveSubcommand,sdkKeysSubcommand,segmentsCreateSubcommand,segmentsInspectSubcommand,segmentsListSubcommand,segmentsRemoveSubcommand,segmentsSubcommand,segmentsUpdateSubcommand,setSubcommand2 as setSubcommand,splitSubcommand,staleSubcommand,statusSubcommand,systemBypassAddSubcommand,systemBypassListSubcommand,systemBypassRemoveSubcommand,systemBypassSubcommand,systemMitigationsPauseSubcommand,systemMitigationsResumeSubcommand,systemMitigationsSubcommand,targetingEnableSubcommand,targetingSubcommand,targetsAddSubcommand,targetsListSubcommand,targetsRemoveSubcommand,targetsSubcommand,trafficInspectSubcommand,trafficListSubcommand,trafficSubcommand,unarchiveSubcommand,updateSubcommand5 as updateSubcommand,useTargetingSubcommand,versionsDiffSubcommand,versionsListSubcommand,versionsSubcommand}from"./chunks/chunk-2CQJKBKV.js";import"./chunks/chunk-2V6UURUN.js";import"./chunks/chunk-OKKG2FUS.js";import"./chunks/chunk-5L566FZB.js";import"./chunks/chunk-6737KAJP.js";import"./chunks/chunk-O3DAPRJ3.js";import"./chunks/chunk-UZQJQXGJ.js";import"./chunks/chunk-5YLKPSZI.js";import"./chunks/chunk-SNGM6NSO.js";import"./chunks/chunk-JVGENO2R.js";import"./chunks/chunk-SP6E7PHW.js";import"./chunks/chunk-OFOZ5DBA.js";import"./chunks/chunk-6Q2XEYCJ.js";import"./chunks/chunk-SEHERY6U.js";import"./chunks/chunk-2LOA3LC6.js";import"./chunks/chunk-E7CEQ2PO.js";import"./chunks/chunk-W25UARQV.js";import"./chunks/chunk-7BDQUBSO.js";import"./chunks/chunk-ABSFPYM4.js";import"./chunks/chunk-YANOBY2G.js";import"./chunks/chunk-F7L5SXJM.js";import"./chunks/chunk-6S6UZV3V.js";import"./chunks/chunk-GUSOYIW6.js";import"./chunks/chunk-JALVF3C2.js";import"./chunks/chunk-7TVNKTN2.js";import"./chunks/chunk-HR66URIC.js";import{printError}from"./chunks/chunk-NYJTWSSD.js";import{help,remoteText}from"./chunks/chunk-VVTMF2AY.js";import{getScope}from"./chunks/chunk-XSQZ35V6.js";import{TelemetryClient}from"./chunks/chunk-AGLOVMPC.js";import"./chunks/chunk-2EYYB6YN.js";import"./chunks/chunk-NWGBDBZI.js";import{AGENT_REASON,AGENT_STATUS,buildCommandWithGlobalFlags,buildCommandWithYes,clientObservabilityPlanRecovery,getExitCodeForReason,outputAgentError,shouldEmitNonInteractiveCommandError,writeActionRequired,writeAgentError}from"./chunks/chunk-GORL5DZC.js";import"./chunks/chunk-OFZUWHZW.js";import{getProjectByNameOrId,isPromptCanceledError,sleep}from"./chunks/chunk-BC74BRVP.js";import{require_pluralize}from"./chunks/chunk-4HR3I3ML.js";import{formatAlignedLabel,printAlignedLabel}from"./chunks/chunk-K46QQRUN.js";import{ua_default}from"./chunks/chunk-MTZYPCZ7.js";import"./chunks/chunk-GPDERS2D.js";import"./chunks/chunk-4NTBYNFR.js";import{parseArguments}from"./chunks/chunk-VM6X5BTK.js";import{teamCache}from"./chunks/chunk-2VBFQZ72.js";import{warnDeprecatedInput,warnDeprecatedOption,warnDeprecatedSubcommand}from"./chunks/chunk-JONZUKWX.js";import"./chunks/chunk-LUX4PBJL.js";import"./chunks/chunk-OPORM35X.js";import{require_ms}from"./chunks/chunk-MXTC4ZAQ.js";import"./chunks/chunk-D6REP5QQ.js";import"./chunks/chunk-FBYA6LLM.js";import{fetch,toNodeReadable}from"./chunks/chunk-MY4MONOH.js";import"./chunks/chunk-4SAVH3H7.js";import{ProjectNotFound,isAPIError}from"./chunks/chunk-GOI2VVI7.js";import{cmd,getCommandName,getCommandNamePlain,packageName}from"./chunks/chunk-B4KA3ZH2.js";import{pkg_default}from"./chunks/chunk-BOJDM3O7.js";import{output_manager_default,recordCliError}from"./chunks/chunk-YNCWSPPJ.js";import"./chunks/chunk-BLUPZPAS.js";import"./chunks/chunk-AW33SRYY.js";import"./chunks/chunk-5MDNVAE6.js";import"./chunks/chunk-OCR5CRTH.js";import"./chunks/chunk-7EJQLVWX.js";import"./chunks/chunk-SCV7XEEO.js";import"./chunks/chunk-MCYG7CCE.js";import"./chunks/chunk-YHPPP3SF.js";import"./chunks/chunk-24SIHFEW.js";import{SDK_KEY_PATTERN,getFlagsSpecification,getGlobalFlagsFromArgs,getProjectOptionFromArgs,quoteArg}from"./chunks/chunk-EZVNGJN5.js";import"./chunks/chunk-2BKALEOP.js";import{require_source}from"./chunks/chunk-NB2WLB3J.js";import"./chunks/chunk-ISWW3DKF.js";import"./chunks/chunk-BRQUZ5NC.js";import"./chunks/chunk-BULSRTQE.js";import{__toESM}from"./chunks/chunk-BZENIQ7N.js";var import_raw_body=__toESM(require_raw_body(),1);var FeedbackTelemetryClient=class extends TelemetryClient{trackCliArgumentNote(note){note!==void 0&&this.trackCliArgument({arg:"note",value:this.redactedValue})}trackCliOptionField(fields){fields?.length&&this.trackCliOption({option:"field",value:this.redactedValue})}};var FEEDBACK_URL="https://vercel.com/api/feedback/cli",MAX_FEEDBACK_BYTES=1024*1024,FETCH_TIMEOUT_MS=1e4;async function feedback(client){let fail=(reason,message,code)=>(recordCliError({code:reason}),output_manager_default.error(message),code),parsed;try{parsed=parseArguments(client.argv.slice(2),getFlagsSpecification(feedbackCommand.options))}catch{return fail(AGENT_REASON.INVALID_ARGUMENTS,"Invalid feedback arguments. Run vercel feedback --help for usage.",2)}let notes=parsed.args.slice(1),fields=parsed.flags["--field"]??[];if(notes.length===0&&fields.length===0)return client.stdout.write(help(feedbackCommand,{stream:client.stdout,columns:client.stdout.columns??client.stderr.columns})),0;if(notes.length>1)return fail(AGENT_REASON.INVALID_ARGUMENTS,"Pass one note. Quote notes containing spaces, or use vercel feedback - to read stdin.",2);let telemetry=new FeedbackTelemetryClient({opts:{store:client.telemetryEventStore}});telemetry.trackCliArgumentNote(notes[0]),telemetry.trackCliOptionField(fields);let data=Object.create(null);for(let field of fields){let separator=field.indexOf("="),key=field.slice(0,separator).trim();if(separator<1||key==="")return fail(AGENT_REASON.INVALID_ARGUMENTS,"Each --field needs a non-empty key followed by =value. Example: vercel feedback --field topic=deploy.",2);data[key]=field.slice(separator+1)}if(notes.length&&Object.hasOwn(data,"note"))return fail(AGENT_REASON.INVALID_ARGUMENTS,"Provide the note once: use a positional note or --field note=..., rather than both.",2);if(notes[0]==="-"){if(client.stdin.isTTY)return fail(AGENT_REASON.INVALID_ARGUMENTS,"No input was piped to stdin. Pipe a note with: cat notes.md | vercel feedback -",2);try{data.note=await readStdinText(client.stdin,MAX_FEEDBACK_BYTES)}catch(error){return error.type==="entity.too.large"?fail(AGENT_REASON.INVALID_ARGUMENTS,"Feedback is too large. Keep the complete submission below 1 MiB.",2):fail(AGENT_REASON.STDIN_ERROR,"Could not read the feedback note from stdin. Check the input pipe and try again.",1)}}else notes[0]!==void 0&&(data.note=notes[0]);for(let key of Object.keys(data))data[key].trim()||delete data[key];if(!Object.keys(data).length)return fail(AGENT_REASON.INVALID_ARGUMENTS,"Provide a note or at least one named field. Run vercel feedback --help for examples.",2);let canSendTelemetry=client.telemetryEventStore?.enabled??!1,body=JSON.stringify({metadata:canSendTelemetry?{agent:client.isAgent,agent_name:client.isAgent?client.agentName:void 0,cli_version:pkg_default.version,operating_system:process.platform,team_id:client.config.currentTeam??null,user_id:client.authConfig.userId??null,invocation_id:client.telemetryEventStore?.currentInvocationId??null,session_id:client.telemetryEventStore?.currentSessionId??null}:null,data});if(Buffer.byteLength(body)>MAX_FEEDBACK_BYTES)return fail(AGENT_REASON.INVALID_ARGUMENTS,"Feedback is too large. Keep the complete submission below 1 MiB.",2);let controller=new AbortController,timeout=setTimeout(()=>controller.abort(),FETCH_TIMEOUT_MS);timeout.unref?.();try{let response=await fetch(FEEDBACK_URL,{method:"POST",headers:{"content-type":"application/json","user-agent":ua_default},body,redirect:"manual",signal:controller.signal});if(!response.ok)return await response.body?.cancel(),fail(response.status===429?AGENT_REASON.RATE_LIMITED:AGENT_REASON.API_ERROR,`Feedback could not be submitted (HTTP ${response.status}). Try again later.`,1);let responseBody=toNodeReadable(response.body);return JSON.parse(await(0,import_raw_body.default)(responseBody,{limit:64*1024,encoding:"utf8"}).finally(()=>responseBody.destroy()))?.success!==!0?fail(AGENT_REASON.UNKNOWN_OUTCOME,"Could not confirm that Vercel accepted the feedback. It may have been submitted; no automatic retry was made.",1):(client.stdout.write(`Feedback sent
8
8
  `),0)}catch{return fail(AGENT_REASON.UNKNOWN_OUTCOME,"Could not confirm that Vercel accepted the feedback. Check your connection. It may have been submitted; no automatic retry was made.",1)}finally{clearTimeout(timeout)}}var import_chalk6=__toESM(require_source(),1);var import_chalk2=__toESM(require_source(),1);var import_chalk=__toESM(require_source(),1);var ACTION_COLORS={allow:import_chalk.default.blue,deny:import_chalk.default.red,challenge:import_chalk.default.yellow,log:import_chalk.default.magenta,rate_limit:import_chalk.default.cyan,"rate-limit":import_chalk.default.cyan,bypass:import_chalk.default.green};function labelForAction(action){return action==="rate_limit"||action==="rate-limit"?"Rate Limited":action.split(/[-_]/).filter(Boolean).map(word=>word.charAt(0).toUpperCase()+word.slice(1)).join(" ")}var MONTHS=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function formatCount(n){return n>=1e6?`${(n/1e6).toFixed(1)}M`:n>=1e3?`${(n/1e3).toFixed(1)}k`:String(Math.round(n))}function pad2(n){return String(n).padStart(2,"0")}function formatUtcTime(ms9,withDate){let d=new Date(ms9),hm=`${pad2(d.getUTCHours())}:${pad2(d.getUTCMinutes())}`;return withDate?`${MONTHS[d.getUTCMonth()]} ${d.getUTCDate()} ${hm}`:hm}function relativeTime(ts){let diff2=Date.now()-ts;return diff2<6e4?"just now":diff2<36e5?`${Math.floor(diff2/6e4)}m ago`:diff2<864e5?`${Math.floor(diff2/36e5)}h ago`:`${Math.floor(diff2/864e5)}d ago`}function formatUtcDateTime(ms9){return`${formatUtcTime(ms9,!0)} UTC (${relativeTime(ms9)})`}function colorizeDetail(detail){return detail.split(" \xB7 ").map(part=>{let color=ACTION_COLORS[part.toLowerCase().replace(/ /g,"_")];return color?color(part):part}).join(" \xB7 ")}function windowNeedsDate(startMs,endMs){return endMs-startMs>25*36e5}function granularityLabel(granularity){return"minutes"in granularity?`${granularity.minutes}m`:"hours"in granularity?`${granularity.hours}h`:`${granularity.days}d`}function formatActionTrendTable(series){let allTs=new Set;for(let s of series)for(let p of s.timeseries)allTs.add(p.timestamp);let axis=[...allTs].sort(),hasAnyTraffic=series.some(s=>s.total>0||s.timeseries.some(p=>p.value>0));if(series.length===0||axis.length===0||!hasAnyTraffic)return import_chalk.default.dim(" No request data for this period.");let startMs=new Date(axis[0]).getTime(),endMs=new Date(axis[axis.length-1]).getTime(),needsDate=windowNeedsDate(startMs,endMs),rows=[["Action","Trend","Total","Peak","Peak at"].map(h=>import_chalk.default.bold(import_chalk.default.cyan(h)))];for(let s of series){let byTs=new Map(s.timeseries.map(p=>[p.timestamp,p.value])),values=axis.map(t=>byTs.get(t)??0),peak=0,peakTs="";for(let i=0;i<axis.length;i++)values[i]>peak&&(peak=values[i],peakTs=axis[i]);let plain=x=>x,color=s.total>0?ACTION_COLORS[s.action]??plain:import_chalk.default.dim,trend=s.total>0?plain:import_chalk.default.dim;rows.push([color(labelForAction(s.action)),trend(generateSparkline(values)),formatCount(s.total),peak>0?formatCount(peak):"--",peak>0?formatUtcTime(new Date(peakTs).getTime(),needsDate):"--"])}return table(rows,{align:["l","l","r","r","r"],hsep:3}).split(`
9
9
  `).map(line2=>` ${line2}`.trimEnd()).join(`
10
10
  `)}var NO_SERVER_MESSAGE="Response Error";function apiServerMessage(error){let message=isAPIError(error)?error.serverMessage:void 0;return message&&message!==NO_SERVER_MESSAGE?message:void 0}var FIREWALL_O11Y_ALERT_TYPES=["botId_anomaly","firewallSystemRule_anomaly","firewallCustomRule_anomaly"],FIREWALL_ANOMALY_TYPE="firewall_anomaly",SYS_DOS_MITIGATION_RULE_ID="sys_dos_mitigation",SYSTEM_RULE_ANOMALY_TYPE="firewallSystemRule_anomaly",FIREWALL_ACTIVITY_PLAN_MESSAGE="Traffic and alerts need Observability Plus.",FIREWALL_ALERTS_PARTIAL_ERROR_MESSAGE="Couldn't load every alert source.";function reduceAttackAnomaly(anomaly){return Object.keys(anomaly.affectedHostMap).reduce((acc,host)=>{acc.hosts.push(host);let challenged=anomaly.affectedHostMap[host].ddosAlerts?.["sys_dos_mitigation:challenge"]?.totalReqs||0,denied=anomaly.affectedHostMap[host].ddosAlerts?.["sys_dos_mitigation:deny"]?.totalReqs||0;return acc.challenged+=challenged,acc.denied+=denied,acc.count+=challenged+denied,acc},{hosts:[],challenged:0,denied:0,count:0})}function hostsFromAnomaly(anomaly){return Object.entries(anomaly.affectedHostMap).map(([host,data])=>{let challenged=data.ddosAlerts?.["sys_dos_mitigation:challenge"]?.totalReqs||0,denied=data.ddosAlerts?.["sys_dos_mitigation:deny"]?.totalReqs||0;return{name:host,count:challenged+denied}}).filter(row=>row.count>0).sort((a,b)=>b.count-a.count)}function mapAttackAnomaly(anomaly){let reduced=reduceAttackAnomaly(anomaly),parts=["System rule"];return reduced.denied>0&&parts.push(labelForAction("deny")),reduced.challenged>0&&parts.push(labelForAction("challenge")),{id:`${anomaly.ownerId}-${anomaly.projectId}-${anomaly.startTime}`,title:"DDoS Mitigation",type:FIREWALL_ANOMALY_TYPE,startedAt:anomaly.startTime,resolvedAt:anomaly.endTime||void 0,count:reduced.count,detail:parts.join(" \xB7 "),action:reduced.denied>=reduced.challenged?"deny":"challenge",ruleId:SYS_DOS_MITIGATION_RULE_ID,host:reduced.hosts[0]}}function mapO11yAlert(alert){if(!alert.startedAt)return null;let action=alert.data?.action,ruleId=alert.data?.ruleId,detailParts=[alert.type,action?labelForAction(action):void 0,ruleId].filter(Boolean);return{id:alert.id||`${alert.type}-${alert.startedAt}`,title:alert.title||alert.type||"Firewall alert",type:alert.type||"unknown",startedAt:alert.startedAt,resolvedAt:alert.resolvedAt,count:alert.data?.count,detail:detailParts.filter(p=>p!==alert.title).join(" \xB7 ")||void 0,action,ruleId,path:alert.data?.path}}var ATTACK_STATUS_MAX_DAYS=7;async function getAttackStatus(client,opts){let query=new URLSearchParams;if(query.set("projectId",opts.projectId),query.set("teamId",opts.teamId),opts.sinceDays!==void 0){let sinceDays=Math.min(ATTACK_STATUS_MAX_DAYS,Math.max(1,Math.ceil(opts.sinceDays)));query.set("since",String(sinceDays))}return client.fetch(`/v1/security/firewall/attack-status?${query.toString()}`,{accountId:opts.teamId,signal:opts.signal})}var O11Y_ALERTS_LIMIT=200;async function getFirewallO11yAlerts(client,opts){let query=new URLSearchParams;query.set("teamId",opts.teamId),query.set("projectId",opts.projectId),query.set("from",opts.from.toISOString()),query.set("to",opts.to.toISOString()),query.set("limit",String(O11Y_ALERTS_LIMIT));for(let type of FIREWALL_O11Y_ALERT_TYPES)query.append("types",type);return(await client.fetch(`/alerts/v3/groups?${query.toString()}`,{accountId:opts.teamId,signal:opts.signal})).flatMap(g=>g.alerts??[]).map(mapO11yAlert).filter(a=>a!==null)}var ALERTS_TIMEOUT_MS=2e4;function sourceFailureReason(err){return isAPIError(err)&&err.status===408||err instanceof Error&&(err.name==="TimeoutError"||err.name==="AbortError")?"timed out":isAPIError(err)&&err.status===402?"needs Observability Plus":isAPIError(err)&&typeof err.status=="number"?`HTTP ${err.status}`:err instanceof Error&&err.message?err.message:"unknown error"}function resolveAlertsWindow(opts){let now=Date.now(),to=opts.to??new Date(now),from=opts.from??new Date(to.getTime()-864e5*(opts.sinceDays??1)),sinceDays=opts.sinceDays??Math.max(1,Math.ceil((now-from.getTime())/864e5));return{from,to,sinceDays}}function classifyAlertSourceError(err){if(isAPIError(err)&&(err.status===401||err.status===403))throw err;return isAPIError(err)&&err.status===402?{reason:"plan",message:FIREWALL_ACTIVITY_PLAN_MESSAGE}:{reason:"error",message:apiServerMessage(err)||!isAPIError(err)&&err instanceof Error&&err.message||FIREWALL_ALERTS_PARTIAL_ERROR_MESSAGE}}async function getFirewallAlertsDetailed(client,opts){let{from,to,sinceDays}=resolveAlertsWindow(opts),timeoutMs=opts.timeoutMs??ALERTS_TIMEOUT_MS,signal=AbortSignal.timeout(timeoutMs),[o11yResult,attackResult]=await Promise.allSettled([getFirewallO11yAlerts(client,{...opts,from,to,signal}),getAttackStatus(client,{...opts,sinceDays,signal})]),errors=[],o11yAlerts=[],o11y;o11yResult.status==="fulfilled"?o11yAlerts=o11yResult.value:(o11y=classifyAlertSourceError(o11yResult.reason),errors.push({source:"alerts",message:sourceFailureReason(o11yResult.reason)}));let mappedAttacks=[],attackStatus;attackResult.status==="fulfilled"?mappedAttacks=(attackResult.value.anomalies||[]).map(mapAttackAnomaly):(attackStatus=classifyAlertSourceError(attackResult.reason),errors.push({source:"attackStatus",message:sourceFailureReason(attackResult.reason)}));let resolvedCutoff=from.getTime();return{alerts:mappedAttacks.concat(o11yAlerts.filter(a=>!a.resolvedAt||a.resolvedAt>resolvedCutoff)).sort((a,b)=>!a.resolvedAt&&b.resolvedAt?-1:a.resolvedAt&&!b.resolvedAt?1:b.startedAt-a.startedAt),o11y,attackStatus,errors}}function alertsIncompleteMessage(errors){return`Attack count and alerts may be incomplete: ${errors.map(e=>`${e.source==="alerts"?"alerts":"attack history"} ${e.message}`).join("; ")}.`}function countAttacksMitigated(alerts,windowStartMs,windowEndMs){return alerts.filter(alert=>isAttackAlert(alert)&&alertOverlapsWindow(alert,windowStartMs,windowEndMs)).length}function alertOverlapsWindow(alert,windowStartMs,windowEndMs){return alert.startedAt<=windowEndMs&&(alert.resolvedAt??Number.POSITIVE_INFINITY)>=windowStartMs}function isAttackAlert(alert){return alert.type===FIREWALL_ANOMALY_TYPE?!0:alert.type===SYSTEM_RULE_ANOMALY_TYPE&&alert.ruleId===SYS_DOS_MITIGATION_RULE_ID}var O11Y_ALERT_ID_PREFIX="al_",INSPECT_FALLBACK_DAYS=7;function isO11yAlertId(id){return id.startsWith(O11Y_ALERT_ID_PREFIX)}function parseLegacyAlertStartTime(id){let match=id.match(/-(\d{13})$/);return match?Number(match[1]):void 0}function daysCovering(startMs,endMs){return Math.max(1,Math.ceil((endMs-startMs)/864e5))}function mapGroupAsAlert(group,alertId){let nested=(group.alerts??[]).map(mapO11yAlert).filter(a=>a!==null),hit=nested.find(a=>a.id===alertId)??nested[0];if(hit)return hit;let startedAt=group.recordedStartedAt;return startedAt?mapO11yAlert({id:alertId,title:group.title,type:group.type,startedAt,resolvedAt:group.recordedResolvedAt,data:group.alerts?.[0]?.data}):null}async function getO11yAlertById(client,opts){let query=new URLSearchParams;query.set("teamId",opts.teamId),query.set("projectId",opts.projectId);try{let group=await client.fetch(`/alerts/v3/groups/${encodeURIComponent(opts.alertId)}?${query.toString()}`,{accountId:opts.teamId,signal:opts.signal});return mapGroupAsAlert(group,opts.alertId)}catch(err){if(isAPIError(err)&&err.status===404)return null;throw err}}async function findFirewallAlert(client,opts){let timeoutMs=opts.timeoutMs??ALERTS_TIMEOUT_MS,budget=()=>AbortSignal.timeout(timeoutMs),now=Date.now();if(isO11yAlertId(opts.alertId)){let fromGroup2=await getO11yAlertById(client,{...opts,signal:budget()});if(fromGroup2)return{alert:fromGroup2};let from=new Date(now-864e5*INSPECT_FALLBACK_DAYS),hit=(await getFirewallO11yAlerts(client,{projectId:opts.projectId,teamId:opts.teamId,from,to:new Date(now),signal:budget()})).find(a=>a.id===opts.alertId);return hit?{alert:hit}:null}let startTime=parseLegacyAlertStartTime(opts.alertId),sinceDays=startTime?daysCovering(startTime,now)+1:INSPECT_FALLBACK_DAYS,anomaly=((await getAttackStatus(client,{projectId:opts.projectId,teamId:opts.teamId,sinceDays,signal:budget()}).catch(err=>{if(isAPIError(err)&&(err.status===401||err.status===403))throw err;return{anomalies:[]}})).anomalies||[]).find(a=>`${a.ownerId}-${a.projectId}-${a.startTime}`===opts.alertId);if(anomaly)return{alert:mapAttackAnomaly(anomaly),hosts:hostsFromAnomaly(anomaly)};let fromGroup=await getO11yAlertById(client,{...opts,signal:budget()}).catch(err=>{if(isAPIError(err)&&(err.status===401||err.status===403))throw err;return null});return fromGroup?{alert:fromGroup}:null}var AI_BOTS_CATEGORY_ACTIONS=["allow","log","deny"];function getAiBotsCategories(ruleset,catalogGroups){return[...new Set([...Object.keys(catalogGroups??{}),...Object.keys(ruleset?.ruleGroups??{})])].sort().map(ruleGroupId=>({id:ruleGroupId.replace(/_/g,"-"),ruleGroupId,name:catalogGroups?.[ruleGroupId]?.name??formatCategoryName(ruleGroupId)}))}function formatCategoryName(ruleGroupId){return ruleGroupId.split("_").map(word=>word==="ai"?"AI":word[0].toUpperCase()+word.slice(1)).join(" ")}function getAiBotsCategoryAction(ruleset,ruleGroupId){if(!ruleset?.active)return"allow";let group=ruleset.ruleGroups?.[ruleGroupId];return group?.active===!1?"allow":group?.action??ruleset.action??"log"}function getAiBotsCategoryActionAfterEdit(ruleset,ruleGroupId){if(!ruleset)return"log";if(ruleset.active)return getAiBotsCategoryAction(ruleset,ruleGroupId);let group=ruleset.ruleGroups?.[ruleGroupId];return group?.active?group.action??"log":"allow"}function hasAiBotsCategories(ruleset){return Object.keys(ruleset?.ruleGroups??{}).length>0}function getAiBotsCategoryDetails(ruleset){if(hasAiBotsCategories(ruleset))return getAiBotsCategories(ruleset).map(category=>({...category,action:getAiBotsCategoryAction(ruleset,category.ruleGroupId)}))}function aiBotsJsonStatus(ruleset){let categories=getAiBotsCategoryDetails(ruleset);return{enabled:ruleset?.active??!1,action:categories?null:ruleset?.action??null,...categories?{categories}:{}}}var MANAGED_BOT_RULE_IDS=["bot-protection","ai-bots","bot-id"],ALIASES={"bot-protection":"bot-protection","bot protection":"bot-protection",bot_protection:"bot-protection",bot_filter:"bot-protection",managed_bot_protection:"bot-protection",managed_bot_filter:"bot-protection","ai-bots":"ai-bots","ai bots":"ai-bots",ai_bots:"ai-bots",managed_ai_bots:"ai-bots","bot-id":"bot-id",botid:"bot-id",bot_id:"bot-id"},ACTIONS={"bot-protection":["off","log","challenge"],"ai-bots":["allow","log","challenge","deny"],"bot-id":["basic","deep-analysis"]},NAMES={"bot-protection":"Bot Protection","ai-bots":"AI Bots","bot-id":"BotID"},WAF_RULE_IDS={"bot-protection":"managed_bot_protection","ai-bots":"managed_ai_bots"};function resolveManagedBotRuleId(identifier){if(identifier)return ALIASES[identifier.trim().toLowerCase()]}function managedBotActions(id,category){return category?AI_BOTS_CATEGORY_ACTIONS:ACTIONS[id]}function formatManagedBotAction(action){return action==="deep-analysis"?"Deep Analysis":action.charAt(0).toUpperCase()+action.slice(1)}function botProtectionConfig(managedRules){return managedRules?.bot_filter??managedRules?.bot_protection}function currentBotProtectionAction(config){let ruleset=botProtectionConfig(config?.managedRules);return ruleset?.active?ruleset.action==="log"?"log":"challenge":"off"}function currentAiBotsAction(config){let ruleset=config?.managedRules?.ai_bots;return ruleset?.active?ruleset.action==="challenge"?"challenge":ruleset.action==="deny"?"deny":"log":"allow"}function currentBotIdAction(config){return config?.botIdEnabled?"deep-analysis":"basic"}function getManagedBotRule(config,id){let categories=id==="ai-bots"?getAiBotsCategoryDetails(config?.managedRules?.ai_bots):void 0,action=categories?null:id==="bot-protection"?currentBotProtectionAction(config):id==="ai-bots"?currentAiBotsAction(config):currentBotIdAction(config);return{id,name:NAMES[id],action,wafRuleId:WAF_RULE_IDS[id],...categories?{categories}:{}}}function getManagedBotRules(config){return MANAGED_BOT_RULE_IDS.map(id=>getManagedBotRule(config,id))}function parseManagedBotAction(id,raw,category){let action=raw.trim().toLowerCase().replace(/\s+/g,"-"),valid=managedBotActions(id,category);return valid.includes(action)?{action}:{error:`Invalid action "${raw}" for ${category?.name??NAMES[id]}. Use ${valid.join(", ")}.`}}function buildManagedBotPatch(id,action,category){if(category)return{action:"managedRuleGroup.update",id:"ai_bots",value:{[category.ruleGroupId]:action==="allow"?{active:!1}:{active:!0,action}}};if(id==="bot-id")return{action:"botId.toggle",value:action==="deep-analysis"};let patchId=id==="bot-protection"?"bot_protection":"ai_bots";return action==="off"||action==="allow"?{action:"managedRules.update",id:patchId,value:{active:!1}}:{action:"managedRules.update",id:patchId,value:{active:!0,action}}}function suggestedManagedBotAction(rule){return rule.id==="bot-protection"?rule.action==="challenge"?"log":"challenge":rule.id==="ai-bots"?rule.action==="deny"?"allow":"deny":rule.action==="deep-analysis"?"basic":"deep-analysis"}function managedBotTrafficWarning(id,from,to,category){if(id==="ai-bots"&&to==="deny")return category?`Deny blocks known ${category.name} traffic when published.`:"AI Bots deny blocks known AI crawlers from this project.";if(id==="bot-protection"&&from==="off"&&to==="challenge")return"Bot Protection challenge will present a verification page to non-browser traffic."}function managedBotJson(rule){return{id:rule.id,name:rule.name,action:rule.action,wafRuleId:rule.wafRuleId??null,...rule.categories?{categories:rule.categories}:{}}}function suggestedManagedBotEditCommand(rule){let category=rule.categories?.[0];if(rule.id==="ai-bots"&&!category)return"firewall rules update ai-bots";let action=suggestedManagedBotAction(category?{...rule,action:category.action}:rule);return`firewall rules update ${rule.id}${category?` --category ${category.id}`:""} --action ${action}`}function projectScope(project,teamId,teamSlug){return{type:"project",projectId:project.id,teamId,...teamSlug?{teamSlug}:{},displayName:project.name}}function firewallConfigUrl(scope,path=""){let query=new URLSearchParams;return scope.type==="project"?(query.set("projectId",scope.projectId),scope.teamId&&query.set("teamId",scope.teamId),`/v1/security/firewall/config${path}?${query.toString()}`):(query.set("teamId",scope.teamId),`/v1/security/firewall/team-config${path}?${query.toString()}`)}async function listFirewallConfigs(client,scope){return client.fetch(firewallConfigUrl(scope))}async function activateFirewallConfig(client,scope,configVersion){return client.fetch(firewallConfigUrl(scope,`/${configVersion}/activate`),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({})})}var PRIORITY_PROJECT_ENABLE_COMMAND="project priority enable",BUY_PRO_COMMAND="buy pro";function withGlobalFlags(client,commandTemplate,scope,options={}){let template=scope?.type==="team"?`${commandTemplate} --team-level`:commandTemplate;return buildCommandWithGlobalFlags(client.argv,template,void 0,{globalFlags:"all",preserveProject:options.preserveProject??!0,excludeFlags:options.excludeFlags})}async function resolveFirewallScope(client,flags){if(flags["--team-level"]&&flags["--project"]){let message="Cannot specify both --team-level and --project. Use one or the other.";return client.nonInteractive?(outputAgentError(client,{status:AGENT_STATUS.ERROR,reason:AGENT_REASON.INVALID_ARGUMENTS,message},2),2):(output_manager_default.error(message),2)}if(flags["--team-level"]){let{team}=await getScope(client);if(!team){let message="Team-level firewall requires a team scope. Personal accounts are not supported. Run `vercel switch` to select a team or pass --scope <team>.";return client.nonInteractive?(outputAgentError(client,{status:AGENT_STATUS.ERROR,reason:AGENT_REASON.MISSING_SCOPE,message},1),1):(output_manager_default.error(message),1)}return{type:"team",teamId:team.id,displayName:team.slug}}let link=await requireProjectContext(client,"firewall",flags["--project"]);if(typeof link=="number")return link;let{project,org}=link;return{type:"project",projectId:project.id,teamId:org.type==="team"?org.id:void 0,teamSlug:org.type==="team"?org.slug:void 0,displayName:project.name}}function mentionsPriorityProject(message){return/priority\s+project/i.test(message)||/priority\s+tier/i.test(message)}function teamPlan(scope){return scope.teamId?teamCache.get(scope.teamId)?.billing?.plan:void 0}function priorityTeam(scope){let cached=scope.teamId?teamCache.get(scope.teamId):void 0;if(scope.type==="team")return{id:scope.teamId,slug:scope.displayName,name:cached?.name??null,scopeArg:scope.displayName};if(!scope.teamId)return null;let slug=scope.teamSlug??cached?.slug??null;return{id:scope.teamId,slug,name:cached?.name??null,scopeArg:slug??scope.teamId}}function teamLabel(team){return team.name&&team.name!==team.slug?`${team.slug} (${team.name})`:team.slug}function styledCommand(command,plain){return plain?getCommandNamePlain(command):getCommandName(command)}function priorityProjectFix(scope){let excludeFlags=["--non-interactive","--project","--yes","--scope","--team"],project=scope.type==="project"?{id:scope.projectId,name:scope.displayName}:null,team=priorityTeam(scope),plan=teamPlan(scope)??null,data={project,team:team&&{id:team.id,slug:team.slug,name:team.name},plan},projectToken=project?quoteArg(project.name):"<project>",scopeFlag=team?` --scope ${quoteArg(team.scopeArg)}`:"",enable4=`${PRIORITY_PROJECT_ENABLE_COMMAND} ${projectToken}${scopeFlag}`;if(!team){let hint="Priority projects are only available on team accounts. Use --scope to specify one.";return{command:"",hint,plainHint:hint,when:hint,excludeFlags,preserveProject:!1,reason:AGENT_REASON.MISSING_SCOPE,data}}if(plan==="hobby"||plan==="oss"){let upgrade=`${BUY_PRO_COMMAND}${scopeFlag}`,hint=plain2=>`Priority Projects are only available on Pro or Enterprise team plans. Upgrade with ${styledCommand(upgrade,plain2)}, then run ${styledCommand(enable4,plain2)}.`;return{command:upgrade,hint:hint(!1),plainHint:hint(!0),when:"a person has approved upgrading the plan",excludeFlags,preserveProject:!1,reason:AGENT_REASON.PLAN_UPGRADE_REQUIRED,scope:team.scopeArg,data}}let shown=styledCommand(enable4,!1),plain=styledCommand(enable4,!0),placeholder="Replace <project> with a project on this team.";return{command:enable4,hint:project?shown:`${shown} ${placeholder}`,plainHint:project?plain:`${plain} ${placeholder}`,when:project?"user runs this command in an interactive terminal":"Replace <project> with a project on this team.",excludeFlags,preserveProject:!1,reason:AGENT_REASON.PLAN_UPGRADE_REQUIRED,scope:team.scopeArg,data}}function mapFirewallApiError(e,scope,fallback){let err=e;return scope.type==="team"&&err.status===403?err.code==="plan_not_supported"?`Team-level firewall requires an Enterprise plan (current team: "${scope.displayName}"). Pass --scope <team> or run \`vercel switch\` to target a different team.`:`You need to be a team owner to manage the team-level firewall for "${scope.displayName}".${err.message?` (${err.message})`:""}`:err.message||fallback}function priorityProjectMessage(scope,fix){let team=fix.data.team,label=team?.slug!=null?teamLabel({slug:team.slug,name:team.name}):void 0;return scope.type==="project"?label?`This rule requires a Priority project for ${scope.displayName} on team ${label}.`:`This rule requires a Priority project. ${fix.hint}`:label?`This rule requires a Priority project on team ${label}.`:"This rule requires a Priority project."}function failPriorityProjectGate(client,error,scope,opts){let serverMessage=apiServerMessage(error);if(!serverMessage||!mentionsPriorityProject(serverMessage))return null;let fix=priorityProjectFix(scope),message=priorityProjectMessage(scope,fix),payload={status:AGENT_STATUS.ERROR,reason:fix.reason,message,userActionRequired:!0,hint:fix.plainHint,retryable:!1,...fix.scope?{scope:fix.scope}:{},data:fix.data,...fix.command?{next:[{command:buildCommandWithGlobalFlags(client.argv,fix.command,packageName,{globalFlags:"all",preserveProject:!1,excludeFlags:fix.excludeFlags}),when:fix.when}]}:{}};return shouldEmitNonInteractiveCommandError(client)&&outputAgentError(client,payload,1),opts?.json?(output_manager_default.stopSpinner(),writeAgentError(client,payload),1):(output_manager_default.error(message),fix.command&&output_manager_default.log(fix.hint),1)}function getRulePayload(flags){let legacy=flags["--json"];return legacy!==void 0&&flags["--data"]!==void 0?(output_manager_default.error("Can't use --data with --json."),2):(legacy!==void 0&&output_manager_default.warning("--json is deprecated for rule payloads. Use --data."),flags["--data"]??legacy)}async function parseSubcommandArgs(argv,command,client,commandPath){let parsedArgs,fullPath=commandPath||command.name;try{parsedArgs=parseSubcommandArguments(argv,command)}catch(err){if(client?.nonInteractive){let rawMessage=err instanceof Error?err.message:String(err),flags=getGlobalFlagsFromArgs(client.argv.slice(2),{preserveProject:!0});return outputAgentError(client,{status:AGENT_STATUS.ERROR,reason:AGENT_REASON.INVALID_ARGUMENTS,message:rawMessage,next:[{command:getCommandNamePlain(`firewall ${fullPath} ${flags.join(" ")}`.trim()),when:"fix options and retry"}]},2),2}return printError(err),2}return parsedArgs}async function confirmAction(client,skipConfirmation,message,details){return skipConfirmation?!0:client.nonInteractive||!client.stdin.isTTY?(outputAgentError(client,{status:AGENT_STATUS.ERROR,reason:AGENT_REASON.CONFIRMATION_REQUIRED,message:`${message} Re-run with --yes to confirm.`,next:[{command:buildCommandWithYes(client.argv),when:"re-run with --yes to confirm"}]}),process.exit(1),!1):(details&&output_manager_default.print(` ${details}
@@ -4,7 +4,7 @@ import { dirname as __dirname_ } from 'node:path';
4
4
  const require = __createRequire(import.meta.url);
5
5
  const __filename = __fileURLToPath(import.meta.url);
6
6
  const __dirname = __dirname_(__filename);
7
- import{require_ajv}from"./chunks/chunk-5CVEW3HD.js";import{CHECKBOX_INSTRUCTIONS}from"./chunks/chunk-OFDTADPQ.js";import{selectOrg}from"./chunks/chunk-RR5SDYNN.js";import{ENV_PULL_FAILED_MESSAGE,VALID_ENVIRONMENTS,connectResourceToProject,getLinkedProjectField,postProvisionSetup,validateEnvironments}from"./chunks/chunk-VKCBEW6R.js";import{sanitizeForTerminal}from"./chunks/chunk-UUBPAYTG.js";import"./chunks/chunk-MCRKBVZA.js";import"./chunks/chunk-MO2G2ND2.js";import{getCustomEnvironments,pickCustomEnvironment}from"./chunks/chunk-F7AVGV4Y.js";import{indent_default}from"./chunks/chunk-GZNDA6SV.js";import"./chunks/chunk-TPJV5UNE.js";import"./chunks/chunk-6Y2ZL5XJ.js";import"./chunks/chunk-YZKARZ2B.js";import{applyDeprecatedGitBranchFlag}from"./chunks/chunk-KBVYN635.js";import"./chunks/chunk-7YKFF6CE.js";import{resolveProjectContext}from"./chunks/chunk-UNPK7LVC.js";import"./chunks/chunk-NE6PKR2J.js";import{normalizeRepeatableStringFilters}from"./chunks/chunk-42FOKWGX.js";import"./chunks/chunk-4T57TXQ3.js";import"./chunks/chunk-25565AGS.js";import{require_execa}from"./chunks/chunk-RCUDI7OF.js";import"./chunks/chunk-GD7AV7BO.js";import{validateLsArgs}from"./chunks/chunk-42J2KCDF.js";import{formatDate}from"./chunks/chunk-HRR57QNP.js";import{getInvalidSubcommand}from"./chunks/chunk-TG2RCYTH.js";import"./chunks/chunk-PFD7LETF.js";import"./chunks/chunk-D3M2JG5C.js";import{printNextPageCommand,quoteShellArg}from"./chunks/chunk-TZE4CS4K.js";import{canPrompt,canPromptOnTerminal}from"./chunks/chunk-IQ7FPAI4.js";import"./chunks/chunk-UCRMJMH6.js";import"./chunks/chunk-7JMN657A.js";import"./chunks/chunk-JTAUWH5V.js";import{require_open}from"./chunks/chunk-PVASGBEF.js";import"./chunks/chunk-JUSNW3IF.js";import{table}from"./chunks/chunk-375JVQYK.js";import{getRenamedOption,reportRenamedOptionError,withWarnings}from"./chunks/chunk-3KJ6HWSX.js";import{getSubcommand as getSubcommand2}from"./chunks/chunk-ETV3C2CV.js";import"./chunks/chunk-SLCPSRDR.js";import{STORAGE_PROVIDERS,acceptTermsSubcommand,addSubcommand6 as addSubcommand,attachSubcommand,balanceSubcommand,categoriesSubcommand,categoriesSubcommand2,claimSubcommand,connectSubcommand2 as connectSubcommand,connectSubcommand3 as connectSubcommand2,connexCommand,contactsAddSubcommand,contactsSubcommand,createSubcommand2 as createSubcommand,createSubcommand9 as createSubcommand2,createThresholdSubcommand,deleteSubcommand4 as deleteSubcommand,detachSubcommand,disconnectSubcommand2 as disconnectSubcommand,disconnectSubcommand3 as disconnectSubcommand2,discoverSubcommand,discoverSubcommand2,findForeignCreateFlags,findOverlappingConnections,getCommandAliases,getConnections,getStorageProvider,getStorageStore,getStorageStores,getSubcommand3 as getSubcommand,guideSubcommand,inspectSubcommand10 as inspectSubcommand,installCommand,installationsSubcommand,integrationCommand,integrationResourceCommand,listStorageProviderTypes,listSubcommand16 as listSubcommand2,listSubcommand22 as listSubcommand3,listSubcommand7 as listSubcommand,loadStoreDetails,openSubcommand,openSubcommand4 as openSubcommand2,removeSubcommand10 as removeSubcommand2,removeSubcommand11 as removeSubcommand3,removeSubcommand5 as removeSubcommand,resolveProjectConnection,resolveStore,resourceSubcommand,revokeTokensSubcommand,statusSubcommand5 as statusSubcommand,storageCommand,storeMatchesType,storeProductLabel,storeSupportsOidc,storeTypeName,tokenSubcommand,updateSubcommand,updateSubcommand12 as updateSubcommand3,updateSubcommand7 as updateSubcommand2}from"./chunks/chunk-QROI2U32.js";import"./chunks/chunk-M3Z6NSC2.js";import"./chunks/chunk-ECFLIVEE.js";import"./chunks/chunk-RDWLLSPU.js";import"./chunks/chunk-7ZJ7VUIR.js";import"./chunks/chunk-WTFD4MDT.js";import"./chunks/chunk-IHTWZEQW.js";import"./chunks/chunk-74VQ7PQV.js";import"./chunks/chunk-SNGM6NSO.js";import"./chunks/chunk-P24YBQ6H.js";import"./chunks/chunk-NMIZSQDN.js";import"./chunks/chunk-K7ARJYAG.js";import"./chunks/chunk-V5TOMLK4.js";import"./chunks/chunk-M3R7F2N4.js";import"./chunks/chunk-4E6BGQWR.js";import"./chunks/chunk-6UMVJ7RL.js";import"./chunks/chunk-IIGNDMLO.js";import"./chunks/chunk-N65H4JMJ.js";import"./chunks/chunk-EJN55YDV.js";import"./chunks/chunk-5DXC4TE2.js";import"./chunks/chunk-4U6ACPA4.js";import"./chunks/chunk-7VGBGUX7.js";import"./chunks/chunk-CU3LNJZV.js";import"./chunks/chunk-JALVF3C2.js";import{envTargetChoices,isValidEnvTarget}from"./chunks/chunk-BZIC36KP.js";import{printError}from"./chunks/chunk-NDMQVBTV.js";import{buildCommandDocumentationLines,buildCommandExampleLines,createHelpTheme,help,helpColumns,helpHeading,helpRows,helpSection,helpSyntaxWidth,helpUsage,remoteText,wrapHelpText}from"./chunks/chunk-HZEKH3RO.js";import"./chunks/chunk-3G3FQYMW.js";import{getScope}from"./chunks/chunk-NSPW47RU.js";import{TelemetryClient}from"./chunks/chunk-MBXLL2HF.js";import"./chunks/chunk-2EYYB6YN.js";import"./chunks/chunk-NWGBDBZI.js";import{buildCommandWithGlobalFlags,buildCommandWithYes,buildIntegrationCommandTailFromArgv,outputActionRequired,outputAgentError,shouldEmitNonInteractiveCommandError}from"./chunks/chunk-5X635INY.js";import"./chunks/chunk-FYE7ILRR.js";import{getLinkedProject,getProjectByNameOrId,getProjectLink,isJSONObject,isPromptCanceledError,sleep}from"./chunks/chunk-2J35YKA2.js";import"./chunks/chunk-4HR3I3ML.js";import{formatAlignedLabel,printAlignedLabel}from"./chunks/chunk-PKNEWN4W.js";import"./chunks/chunk-ITQPDXXA.js";import"./chunks/chunk-GL66K54F.js";import"./chunks/chunk-4NTBYNFR.js";import{getTypedOptionName,isArgumentError,parseArguments}from"./chunks/chunk-AYZ52QDF.js";import"./chunks/chunk-2VBFQZ72.js";import{validateJsonOutput,wantsMachineReadableOutput,warnDeprecatedSubcommand}from"./chunks/chunk-SDYCW5JM.js";import"./chunks/chunk-LUX4PBJL.js";import"./chunks/chunk-OPORM35X.js";import{require_ms}from"./chunks/chunk-MXTC4ZAQ.js";import"./chunks/chunk-ZS2WS4AM.js";import"./chunks/chunk-4SAVH3H7.js";import{APIError,ProjectNotFound,isAPIError}from"./chunks/chunk-4DMKP6AO.js";import{getCommandName,getCommandNamePlain,packageName,require_lib}from"./chunks/chunk-VRH7LWOC.js";import"./chunks/chunk-DBT6PGEH.js";import{output_manager_default}from"./chunks/chunk-GZLYNPNU.js";import"./chunks/chunk-BLUPZPAS.js";import"./chunks/chunk-5MDNVAE6.js";import"./chunks/chunk-OCR5CRTH.js";import{require_dist}from"./chunks/chunk-RM3ZDRYE.js";import"./chunks/chunk-YHPPP3SF.js";import"./chunks/chunk-PUKYAALC.js";import{getFlagsSpecification,globalCommandOptions,quoteArg}from"./chunks/chunk-AMPJ6RWT.js";import"./chunks/chunk-2BKALEOP.js";import{require_source}from"./chunks/chunk-NB2WLB3J.js";import"./chunks/chunk-ISWW3DKF.js";import"./chunks/chunk-BULSRTQE.js";import"./chunks/chunk-BRQUZ5NC.js";import"./chunks/chunk-D6REP5QQ.js";import"./chunks/chunk-FBYA6LLM.js";import"./chunks/chunk-MY4MONOH.js";import"./chunks/chunk-7EJQLVWX.js";import"./chunks/chunk-SCV7XEEO.js";import{AGENT_ACTION,AGENT_REASON,AGENT_STATUS,getExitCodeForReason}from"./chunks/chunk-Q2QVK3TH.js";import{__toESM}from"./chunks/chunk-BZENIQ7N.js";function serviceTelemetryValue(value){let trimmed=value.trim();if(!trimmed)return null;let authority=trimmed.replace(/^[a-zA-Z][a-zA-Z0-9+.-]*:\/\//,"").split(/[/?#]/,1)[0],atIndex=authority.lastIndexOf("@"),hostPort=atIndex===-1?authority:authority.slice(atIndex+1),host;if(hostPort.startsWith("[")){let end=hostPort.indexOf("]");host=end===-1?hostPort:hostPort.slice(0,end+1)}else host=hostPort.split(":",1)[0];return host?host.toLowerCase():null}var HEX_COLOR_REGEX=/^#[0-9a-fA-F]{6}$/;function isValidHexColor(value){return HEX_COLOR_REGEX.test(value)}function validateHexColor(value,label){if(value!==void 0&&!isValidHexColor(value))throw new Error(`Invalid ${label} "${value}". Expected 6-digit hex like #1A2B3C.`)}var ConnexTelemetryClient=class extends TelemetryClient{trackCliSubcommandDiscover(actual){this.trackCliSubcommand({subcommand:"discover",value:actual})}trackCliSubcommandCategories(actual){this.trackCliSubcommand({subcommand:"categories",value:actual})}trackCliSubcommandCreate(actual){this.trackCliSubcommand({subcommand:"create",value:actual})}trackCliSubcommandList(actual){this.trackCliSubcommand({subcommand:"list",value:actual})}trackCliSubcommandToken(actual){this.trackCliSubcommand({subcommand:"token",value:actual})}trackCliSubcommandDelete(actual){this.trackCliSubcommand({subcommand:"delete",value:actual})}trackCliSubcommandOpen(actual){this.trackCliSubcommand({subcommand:"open",value:actual})}trackCliSubcommandContacts(actual){this.trackCliSubcommand({subcommand:"contacts",value:actual})}trackCliSubcommandAttach(actual){this.trackCliSubcommand({subcommand:"attach",value:actual})}trackCliSubcommandDetach(actual){this.trackCliSubcommand({subcommand:"detach",value:actual})}trackCliSubcommandUpdate(actual){this.trackCliSubcommand({subcommand:"update",value:actual})}trackCliSubcommandRevokeTokens(actual){this.trackCliSubcommand({subcommand:"revoke-tokens",value:actual})}trackCliArgumentClient(v){v&&this.trackCliArgument({arg:"client",value:this.redactedValue})}trackCliArgumentId(v){v&&this.trackCliArgument({arg:"id",value:this.redactedValue})}trackCliArgumentService(v){if(v){let value=serviceTelemetryValue(v);this.trackCliArgument({arg:"service",value:value??this.redactedValue})}}trackCliOptionName(v){v&&this.trackCliOption({option:"name",value:this.redactedValue})}trackCliOptionSubject(v){v&&this.trackCliOption({option:"subject",value:v==="user"||v==="app"?v:this.redactedValue})}trackCliOptionInstallation(v){v&&this.trackCliOption({option:"installation",value:this.redactedValue})}trackCliOptionInstallationId(v){v&&this.trackCliOption({option:"installation-id",value:this.redactedValue})}trackCliOptionScopes(v){v&&this.trackCliOption({option:"scopes",value:this.redactedValue})}trackCliFlagNoDefaultScopes(v){v&&this.trackCliFlag("no-default-scopes")}trackCliOptionIcon(v){v&&this.trackCliOption({option:"icon",value:this.redactedValue})}trackCliOptionBackgroundColor(v){v&&this.trackCliOption({option:"background-color",value:isValidHexColor(v)?v:this.redactedValue})}trackCliOptionAccentColor(v){v&&this.trackCliOption({option:"accent-color",value:isValidHexColor(v)?v:this.redactedValue})}trackCliOptionData(v){v!==void 0&&this.trackCliOption({option:"data",value:this.redactedValue})}trackCliOptionConnectorType(v){v&&this.trackCliOption({option:"connector-type",value:v})}trackCliOptionConnectionMethod(v){for(let value of[v??[]].flat())value&&this.trackCliOption({option:"connection-method",value})}trackCliOptionTarget(v){for(let value of[v??[]].flat())value&&this.trackCliOption({option:"target",value})}trackCliArgumentQuery(v){v&&this.trackCliArgument({arg:"query",value:this.redactedValue})}trackCliOptionCategory(v){for(let raw of v??[])for(let category of raw.split(","))category.trim()&&this.trackCliOption({option:"category",value:this.redactedValue})}trackCliFlagSupportsTriggers(v){v&&this.trackCliFlag("supports-triggers")}trackCliOptionParam(v){!v||v.length===0||this.trackCliOption({option:"param",value:String(v.length)})}trackCliFlagYes(v){v&&this.trackCliFlag("yes")}trackCliFlagDisconnectAll(v){v&&this.trackCliFlag("disconnect-all")}trackCliFlagTriggers(v){v&&this.trackCliFlag("triggers")}trackCliOptionTriggerEvent(v){v&&v.length>0&&this.trackCliOption({option:"trigger-event",value:String(v.length)})}trackCliOptionGitBranch(v){v&&this.trackCliOption({option:"git-branch",value:this.redactedValue})}trackCliOptionTriggerBranch(v){v&&this.trackCliOption({option:"trigger-branch",value:this.redactedValue})}trackCliOptionTriggerEnvironment(v){v&&this.trackCliOption({option:"trigger-environment",value:this.redactedValue})}trackCliOptionTriggerPath(v){v&&this.trackCliOption({option:"trigger-path",value:this.redactedValue})}trackCliOptionTriggerProject(v){v&&this.trackCliOption({option:"trigger-project",value:this.redactedValue})}trackCliFlagMyTokens(v){v&&this.trackCliFlag("my-tokens")}trackCliFlagAllTokens(v){v&&this.trackCliFlag("all-tokens")}trackCliFlagAllProjects(v){v&&this.trackCliFlag("all-projects")}trackCliOptionLimit(v){v!==void 0&&this.trackCliOption({option:"limit",value:String(v)})}trackCliOptionNext(v){v&&this.trackCliOption({option:"next",value:this.redactedValue})}trackCliOptionQuery(v){v&&this.trackCliOption({option:"query",value:this.redactedValue})}trackCliOptionSearch(v){v&&this.trackCliOption({option:"search",value:this.redactedValue})}trackCliOptionService(v){if(!(!v||v.length===0))for(let raw of v)for(let svc of raw.split(","))svc.trim()&&this.trackCliOption({option:"service",value:this.redactedValue})}trackCliOptionType(v){if(!(!v||v.length===0))for(let raw of v)for(let t of raw.split(",")){let trimmed=t.trim();trimmed&&this.trackCliOption({option:"type",value:trimmed})}}trackCliOptionFormat(v){v&&this.trackCliOption({option:"format",value:v})}trackCliOptionEnvironment(v){if(!(!v||v.length===0))for(let raw of v)for(let env of raw.split(",")){let trimmed=env.trim();trimmed&&this.trackCliOption({option:"environment",value:this.redactedTargetName(trimmed)})}}};var import_chalk=__toESM(require_source(),1);var DEFAULT_LIMIT=50,MAX_LIMIT=500;function splitValues(values){return(values??[]).flatMap(v=>v.split(",").map(s=>s.trim())).filter(Boolean)}async function discover(client,args,flags){let formatResult=validateJsonOutput(flags);if(!formatResult.valid)return output_manager_default.error(formatResult.error),2;let asJson=formatResult.jsonOutput;if(args.length>1)return output_manager_default.error(`Too many arguments. Usage: \`${packageName} connect discover [query]\``),2;let query=args[0],limit=flags["--limit"]??DEFAULT_LIMIT;if(!Number.isInteger(limit)||limit<1)return output_manager_default.error("--limit must be a whole number of 1 or more."),2;limit>MAX_LIMIT&&(output_manager_default.warning(`--limit is capped at ${MAX_LIMIT}. Showing ${MAX_LIMIT}.`),limit=MAX_LIMIT);let categories3=splitValues(flags["--category"]),connectionMethods=splitValues(flags["--connection-method"]),targets=splitValues(flags["--target"]),params=new URLSearchParams;query&&params.set("query",query),categories3.length&&params.set("category",categories3.join(",")),connectionMethods.length&&params.set("connectionMethod",connectionMethods.join(",")),targets.length&&params.set("target",targets.join(",")),flags["--supports-triggers"]&&params.set("supportsTriggers","true"),params.set("limit",String(limit)),flags["--next"]&&params.set("cursor",flags["--next"]),output_manager_default.spinner("Fetching services\u2026");let response;try{response=await client.fetch(`/v1/connect/services?${params}`,{teamOptional:!0})}catch(err){return output_manager_default.stopSpinner(),printError(err,client),1}output_manager_default.stopSpinner();let services=response.services??[],next=response.pagination?.next??null;if(services.length===0){let unknown=await unknownCategories(client,categories3);if(unknown.length>0)return output_manager_default.error(`Unknown ${unknown.length===1?"category":"categories"}: ${unknown.map(c=>`"${sanitizeForTerminal(c)}"`).join(", ")}. Run \`${packageName} connect categories\` to see the valid slugs.`),2}if(asJson){let jsonServices=services.map(s=>({service:s.service,name:s.name,description:s.description??null,categories:s.categories,connectionMethods:(s.connectionMethods??[]).map(m=>m.connectionMethod),targets:(s.targets??[]).map(t=>t.target),supportsTriggers:s.supportsTriggers,beta:s.beta===!0,website:s.website??null,docsite:s.docsite??null}));return client.stdout.write(`${JSON.stringify({services:jsonServices,pagination:{next}},null,2)}
7
+ import{require_ajv}from"./chunks/chunk-5CVEW3HD.js";import{sanitizeForTerminal}from"./chunks/chunk-UUBPAYTG.js";import"./chunks/chunk-MCRKBVZA.js";import{getCustomEnvironments,pickCustomEnvironment}from"./chunks/chunk-Z73UJVGD.js";import{applyDeprecatedGitBranchFlag}from"./chunks/chunk-NREH4VSU.js";import{normalizeRepeatableStringFilters}from"./chunks/chunk-7PGDJTAH.js";import"./chunks/chunk-D3M2JG5C.js";import{selectOrg}from"./chunks/chunk-SHMHL6W7.js";import{CHECKBOX_INSTRUCTIONS}from"./chunks/chunk-OFDTADPQ.js";import{require_execa}from"./chunks/chunk-M32HBBPK.js";import{formatDate}from"./chunks/chunk-HRR57QNP.js";import{ENV_PULL_FAILED_MESSAGE,VALID_ENVIRONMENTS,connectResourceToProject,getLinkedProjectField,postProvisionSetup,validateEnvironments}from"./chunks/chunk-HBWRIR42.js";import{indent_default}from"./chunks/chunk-GZNDA6SV.js";import"./chunks/chunk-IJBRT2AD.js";import"./chunks/chunk-NTYBDY24.js";import"./chunks/chunk-ZKNEIE44.js";import"./chunks/chunk-KR4DMT3I.js";import"./chunks/chunk-CKJZSRAC.js";import"./chunks/chunk-IBBLLUXD.js";import{resolveProjectContext}from"./chunks/chunk-B3IBBNIR.js";import"./chunks/chunk-7YKFF6CE.js";import"./chunks/chunk-MWWMY5R6.js";import"./chunks/chunk-25565AGS.js";import{require_open}from"./chunks/chunk-PVASGBEF.js";import"./chunks/chunk-ZXEWWSTH.js";import"./chunks/chunk-PSFHYOLD.js";import"./chunks/chunk-NBTFAXL4.js";import"./chunks/chunk-TJUZVODP.js";import"./chunks/chunk-GD7AV7BO.js";import"./chunks/chunk-PFD7LETF.js";import{canPrompt,canPromptOnTerminal}from"./chunks/chunk-IQ7FPAI4.js";import{getInvalidSubcommand}from"./chunks/chunk-TG2RCYTH.js";import{getRenamedOption,reportRenamedOptionError,withWarnings}from"./chunks/chunk-WLMW7K7F.js";import{getSubcommand as getSubcommand2}from"./chunks/chunk-ETV3C2CV.js";import{printNextPageCommand,quoteShellArg}from"./chunks/chunk-QBHTNUM5.js";import{validateLsArgs}from"./chunks/chunk-3EFPSM6M.js";import{table}from"./chunks/chunk-CJZE7647.js";import"./chunks/chunk-Y2FVJ7YO.js";import{STORAGE_PROVIDERS,acceptTermsSubcommand,addSubcommand6 as addSubcommand,attachSubcommand,balanceSubcommand,categoriesSubcommand,categoriesSubcommand2,claimSubcommand,connectSubcommand2 as connectSubcommand,connectSubcommand3 as connectSubcommand2,connexCommand,contactsAddSubcommand,contactsSubcommand,createSubcommand2 as createSubcommand,createSubcommand9 as createSubcommand2,createThresholdSubcommand,deleteSubcommand4 as deleteSubcommand,detachSubcommand,disconnectSubcommand2 as disconnectSubcommand,disconnectSubcommand3 as disconnectSubcommand2,discoverSubcommand,discoverSubcommand2,findForeignCreateFlags,findOverlappingConnections,getCommandAliases,getConnections,getStorageProvider,getStorageStore,getStorageStores,getSubcommand3 as getSubcommand,guideSubcommand,inspectSubcommand10 as inspectSubcommand,installCommand,installationsSubcommand,integrationCommand,integrationResourceCommand,listStorageProviderTypes,listSubcommand16 as listSubcommand2,listSubcommand22 as listSubcommand3,listSubcommand7 as listSubcommand,loadStoreDetails,openSubcommand,openSubcommand4 as openSubcommand2,removeSubcommand10 as removeSubcommand2,removeSubcommand11 as removeSubcommand3,removeSubcommand5 as removeSubcommand,resolveProjectConnection,resolveStore,resourceSubcommand,revokeTokensSubcommand,statusSubcommand5 as statusSubcommand,storageCommand,storeMatchesType,storeProductLabel,storeSupportsOidc,storeTypeName,tokenSubcommand,updateSubcommand,updateSubcommand12 as updateSubcommand3,updateSubcommand7 as updateSubcommand2}from"./chunks/chunk-2CQJKBKV.js";import"./chunks/chunk-2V6UURUN.js";import"./chunks/chunk-OKKG2FUS.js";import"./chunks/chunk-5L566FZB.js";import"./chunks/chunk-6737KAJP.js";import"./chunks/chunk-O3DAPRJ3.js";import"./chunks/chunk-UZQJQXGJ.js";import"./chunks/chunk-5YLKPSZI.js";import"./chunks/chunk-SNGM6NSO.js";import"./chunks/chunk-JVGENO2R.js";import"./chunks/chunk-SP6E7PHW.js";import"./chunks/chunk-OFOZ5DBA.js";import"./chunks/chunk-6Q2XEYCJ.js";import"./chunks/chunk-SEHERY6U.js";import"./chunks/chunk-2LOA3LC6.js";import"./chunks/chunk-E7CEQ2PO.js";import"./chunks/chunk-W25UARQV.js";import"./chunks/chunk-7BDQUBSO.js";import"./chunks/chunk-ABSFPYM4.js";import"./chunks/chunk-YANOBY2G.js";import"./chunks/chunk-F7L5SXJM.js";import"./chunks/chunk-6S6UZV3V.js";import"./chunks/chunk-GUSOYIW6.js";import"./chunks/chunk-JALVF3C2.js";import{envTargetChoices,isValidEnvTarget}from"./chunks/chunk-7TVNKTN2.js";import"./chunks/chunk-HR66URIC.js";import{printError}from"./chunks/chunk-NYJTWSSD.js";import{buildCommandDocumentationLines,buildCommandExampleLines,createHelpTheme,help,helpColumns,helpHeading,helpRows,helpSection,helpSyntaxWidth,helpUsage,remoteText,wrapHelpText}from"./chunks/chunk-VVTMF2AY.js";import"./chunks/chunk-3G3FQYMW.js";import{getScope}from"./chunks/chunk-XSQZ35V6.js";import{TelemetryClient}from"./chunks/chunk-AGLOVMPC.js";import"./chunks/chunk-2EYYB6YN.js";import"./chunks/chunk-NWGBDBZI.js";import{AGENT_ACTION,AGENT_REASON,AGENT_STATUS,buildCommandWithGlobalFlags,buildCommandWithYes,buildIntegrationCommandTailFromArgv,getExitCodeForReason,outputActionRequired,outputAgentError,shouldEmitNonInteractiveCommandError}from"./chunks/chunk-GORL5DZC.js";import"./chunks/chunk-OFZUWHZW.js";import{getLinkedProject,getProjectByNameOrId,getProjectLink,isJSONObject,isPromptCanceledError,sleep}from"./chunks/chunk-BC74BRVP.js";import"./chunks/chunk-4HR3I3ML.js";import{formatAlignedLabel,printAlignedLabel}from"./chunks/chunk-K46QQRUN.js";import"./chunks/chunk-MTZYPCZ7.js";import"./chunks/chunk-GPDERS2D.js";import"./chunks/chunk-4NTBYNFR.js";import{getTypedOptionName,isArgumentError,parseArguments}from"./chunks/chunk-VM6X5BTK.js";import"./chunks/chunk-2VBFQZ72.js";import{validateJsonOutput,wantsMachineReadableOutput,warnDeprecatedSubcommand}from"./chunks/chunk-JONZUKWX.js";import"./chunks/chunk-LUX4PBJL.js";import"./chunks/chunk-OPORM35X.js";import{require_ms}from"./chunks/chunk-MXTC4ZAQ.js";import"./chunks/chunk-D6REP5QQ.js";import"./chunks/chunk-FBYA6LLM.js";import"./chunks/chunk-MY4MONOH.js";import"./chunks/chunk-4SAVH3H7.js";import{APIError,ProjectNotFound,isAPIError}from"./chunks/chunk-GOI2VVI7.js";import{getCommandName,getCommandNamePlain,packageName,require_lib}from"./chunks/chunk-B4KA3ZH2.js";import"./chunks/chunk-BOJDM3O7.js";import{output_manager_default}from"./chunks/chunk-YNCWSPPJ.js";import"./chunks/chunk-BLUPZPAS.js";import"./chunks/chunk-AW33SRYY.js";import"./chunks/chunk-5MDNVAE6.js";import"./chunks/chunk-OCR5CRTH.js";import"./chunks/chunk-7EJQLVWX.js";import"./chunks/chunk-SCV7XEEO.js";import{require_dist}from"./chunks/chunk-MCYG7CCE.js";import"./chunks/chunk-YHPPP3SF.js";import"./chunks/chunk-24SIHFEW.js";import{getFlagsSpecification,globalCommandOptions,quoteArg}from"./chunks/chunk-EZVNGJN5.js";import"./chunks/chunk-2BKALEOP.js";import{require_source}from"./chunks/chunk-NB2WLB3J.js";import"./chunks/chunk-ISWW3DKF.js";import"./chunks/chunk-BRQUZ5NC.js";import"./chunks/chunk-BULSRTQE.js";import{__toESM}from"./chunks/chunk-BZENIQ7N.js";function serviceTelemetryValue(value){let trimmed=value.trim();if(!trimmed)return null;let authority=trimmed.replace(/^[a-zA-Z][a-zA-Z0-9+.-]*:\/\//,"").split(/[/?#]/,1)[0],atIndex=authority.lastIndexOf("@"),hostPort=atIndex===-1?authority:authority.slice(atIndex+1),host;if(hostPort.startsWith("[")){let end=hostPort.indexOf("]");host=end===-1?hostPort:hostPort.slice(0,end+1)}else host=hostPort.split(":",1)[0];return host?host.toLowerCase():null}var HEX_COLOR_REGEX=/^#[0-9a-fA-F]{6}$/;function isValidHexColor(value){return HEX_COLOR_REGEX.test(value)}function validateHexColor(value,label){if(value!==void 0&&!isValidHexColor(value))throw new Error(`Invalid ${label} "${value}". Expected 6-digit hex like #1A2B3C.`)}var ConnexTelemetryClient=class extends TelemetryClient{trackCliSubcommandDiscover(actual){this.trackCliSubcommand({subcommand:"discover",value:actual})}trackCliSubcommandCategories(actual){this.trackCliSubcommand({subcommand:"categories",value:actual})}trackCliSubcommandCreate(actual){this.trackCliSubcommand({subcommand:"create",value:actual})}trackCliSubcommandList(actual){this.trackCliSubcommand({subcommand:"list",value:actual})}trackCliSubcommandToken(actual){this.trackCliSubcommand({subcommand:"token",value:actual})}trackCliSubcommandDelete(actual){this.trackCliSubcommand({subcommand:"delete",value:actual})}trackCliSubcommandOpen(actual){this.trackCliSubcommand({subcommand:"open",value:actual})}trackCliSubcommandContacts(actual){this.trackCliSubcommand({subcommand:"contacts",value:actual})}trackCliSubcommandAttach(actual){this.trackCliSubcommand({subcommand:"attach",value:actual})}trackCliSubcommandDetach(actual){this.trackCliSubcommand({subcommand:"detach",value:actual})}trackCliSubcommandUpdate(actual){this.trackCliSubcommand({subcommand:"update",value:actual})}trackCliSubcommandRevokeTokens(actual){this.trackCliSubcommand({subcommand:"revoke-tokens",value:actual})}trackCliArgumentClient(v){v&&this.trackCliArgument({arg:"client",value:this.redactedValue})}trackCliArgumentId(v){v&&this.trackCliArgument({arg:"id",value:this.redactedValue})}trackCliArgumentService(v){if(v){let value=serviceTelemetryValue(v);this.trackCliArgument({arg:"service",value:value??this.redactedValue})}}trackCliOptionName(v){v&&this.trackCliOption({option:"name",value:this.redactedValue})}trackCliOptionSubject(v){v&&this.trackCliOption({option:"subject",value:v==="user"||v==="app"?v:this.redactedValue})}trackCliOptionInstallation(v){v&&this.trackCliOption({option:"installation",value:this.redactedValue})}trackCliOptionInstallationId(v){v&&this.trackCliOption({option:"installation-id",value:this.redactedValue})}trackCliOptionScopes(v){v&&this.trackCliOption({option:"scopes",value:this.redactedValue})}trackCliFlagNoDefaultScopes(v){v&&this.trackCliFlag("no-default-scopes")}trackCliOptionIcon(v){v&&this.trackCliOption({option:"icon",value:this.redactedValue})}trackCliOptionBackgroundColor(v){v&&this.trackCliOption({option:"background-color",value:isValidHexColor(v)?v:this.redactedValue})}trackCliOptionAccentColor(v){v&&this.trackCliOption({option:"accent-color",value:isValidHexColor(v)?v:this.redactedValue})}trackCliOptionData(v){v!==void 0&&this.trackCliOption({option:"data",value:this.redactedValue})}trackCliOptionConnectorType(v){v&&this.trackCliOption({option:"connector-type",value:v})}trackCliOptionConnectionMethod(v){for(let value of[v??[]].flat())value&&this.trackCliOption({option:"connection-method",value})}trackCliOptionTarget(v){for(let value of[v??[]].flat())value&&this.trackCliOption({option:"target",value})}trackCliArgumentQuery(v){v&&this.trackCliArgument({arg:"query",value:this.redactedValue})}trackCliOptionCategory(v){for(let raw of v??[])for(let category of raw.split(","))category.trim()&&this.trackCliOption({option:"category",value:this.redactedValue})}trackCliFlagSupportsTriggers(v){v&&this.trackCliFlag("supports-triggers")}trackCliOptionParam(v){!v||v.length===0||this.trackCliOption({option:"param",value:String(v.length)})}trackCliFlagYes(v){v&&this.trackCliFlag("yes")}trackCliFlagDisconnectAll(v){v&&this.trackCliFlag("disconnect-all")}trackCliFlagTriggers(v){v&&this.trackCliFlag("triggers")}trackCliOptionTriggerEvent(v){v&&v.length>0&&this.trackCliOption({option:"trigger-event",value:String(v.length)})}trackCliOptionGitBranch(v){v&&this.trackCliOption({option:"git-branch",value:this.redactedValue})}trackCliOptionTriggerBranch(v){v&&this.trackCliOption({option:"trigger-branch",value:this.redactedValue})}trackCliOptionTriggerEnvironment(v){v&&this.trackCliOption({option:"trigger-environment",value:this.redactedValue})}trackCliOptionTriggerPath(v){v&&this.trackCliOption({option:"trigger-path",value:this.redactedValue})}trackCliOptionTriggerProject(v){v&&this.trackCliOption({option:"trigger-project",value:this.redactedValue})}trackCliFlagMyTokens(v){v&&this.trackCliFlag("my-tokens")}trackCliFlagAllTokens(v){v&&this.trackCliFlag("all-tokens")}trackCliFlagAllProjects(v){v&&this.trackCliFlag("all-projects")}trackCliOptionLimit(v){v!==void 0&&this.trackCliOption({option:"limit",value:String(v)})}trackCliOptionNext(v){v&&this.trackCliOption({option:"next",value:this.redactedValue})}trackCliOptionQuery(v){v&&this.trackCliOption({option:"query",value:this.redactedValue})}trackCliOptionSearch(v){v&&this.trackCliOption({option:"search",value:this.redactedValue})}trackCliOptionService(v){if(!(!v||v.length===0))for(let raw of v)for(let svc of raw.split(","))svc.trim()&&this.trackCliOption({option:"service",value:this.redactedValue})}trackCliOptionType(v){if(!(!v||v.length===0))for(let raw of v)for(let t of raw.split(",")){let trimmed=t.trim();trimmed&&this.trackCliOption({option:"type",value:trimmed})}}trackCliOptionFormat(v){v&&this.trackCliOption({option:"format",value:v})}trackCliOptionEnvironment(v){if(!(!v||v.length===0))for(let raw of v)for(let env of raw.split(",")){let trimmed=env.trim();trimmed&&this.trackCliOption({option:"environment",value:this.redactedTargetName(trimmed)})}}};var import_chalk=__toESM(require_source(),1);var DEFAULT_LIMIT=50,MAX_LIMIT=500;function splitValues(values){return(values??[]).flatMap(v=>v.split(",").map(s=>s.trim())).filter(Boolean)}async function discover(client,args,flags){let formatResult=validateJsonOutput(flags);if(!formatResult.valid)return output_manager_default.error(formatResult.error),2;let asJson=formatResult.jsonOutput;if(args.length>1)return output_manager_default.error(`Too many arguments. Usage: \`${packageName} connect discover [query]\``),2;let query=args[0],limit=flags["--limit"]??DEFAULT_LIMIT;if(!Number.isInteger(limit)||limit<1)return output_manager_default.error("--limit must be a whole number of 1 or more."),2;limit>MAX_LIMIT&&(output_manager_default.warning(`--limit is capped at ${MAX_LIMIT}. Showing ${MAX_LIMIT}.`),limit=MAX_LIMIT);let categories3=splitValues(flags["--category"]),connectionMethods=splitValues(flags["--connection-method"]),targets=splitValues(flags["--target"]),params=new URLSearchParams;query&&params.set("query",query),categories3.length&&params.set("category",categories3.join(",")),connectionMethods.length&&params.set("connectionMethod",connectionMethods.join(",")),targets.length&&params.set("target",targets.join(",")),flags["--supports-triggers"]&&params.set("supportsTriggers","true"),params.set("limit",String(limit)),flags["--next"]&&params.set("cursor",flags["--next"]),output_manager_default.spinner("Fetching services\u2026");let response;try{response=await client.fetch(`/v1/connect/services?${params}`,{teamOptional:!0})}catch(err){return output_manager_default.stopSpinner(),printError(err,client),1}output_manager_default.stopSpinner();let services=response.services??[],next=response.pagination?.next??null;if(services.length===0){let unknown=await unknownCategories(client,categories3);if(unknown.length>0)return output_manager_default.error(`Unknown ${unknown.length===1?"category":"categories"}: ${unknown.map(c=>`"${sanitizeForTerminal(c)}"`).join(", ")}. Run \`${packageName} connect categories\` to see the valid slugs.`),2}if(asJson){let jsonServices=services.map(s=>({service:s.service,name:s.name,description:s.description??null,categories:s.categories,connectionMethods:(s.connectionMethods??[]).map(m=>m.connectionMethod),targets:(s.targets??[]).map(t=>t.target),supportsTriggers:s.supportsTriggers,beta:s.beta===!0,website:s.website??null,docsite:s.docsite??null}));return client.stdout.write(`${JSON.stringify({services:jsonServices,pagination:{next}},null,2)}
8
8
  `),0}if(services.length===0)return output_manager_default.log(query?`No services matching "${sanitizeForTerminal(query)}" found.`:"No services found."),0;let useCompactFormat=client.stderr.columns>0&&client.stderr.columns<120;if(output_manager_default.print(`${useCompactFormat?formatCompactList(services):formatTable(services)}
9
9
  `),output_manager_default.log(`Run \`${packageName} connect create <service>\` to create a connector.`),next){let parts=[`${packageName} connect discover`];query&&parts.push(JSON.stringify(query));for(let c of categories3)parts.push(`--category ${c}`);for(let m of connectionMethods)parts.push(`--connection-method ${m}`);for(let t of targets)parts.push(`--target ${t}`);flags["--supports-triggers"]&&parts.push("--supports-triggers"),flags["--limit"]!==void 0&&parts.push(`--limit ${limit}`),parts.push(`--next ${next}`),output_manager_default.print(`
10
10
  `),printNextPageCommand(parts.join(" "))}return 0}function methodsOf(s){let methods=(s.connectionMethods??[]).map(m=>m.connectionMethod);return methods.length?methods.join(", "):import_chalk.default.gray("\u2013")}async function unknownCategories(client,categories3){if(categories3.length===0)return[];try{let response=await client.fetch("/v1/connect/services/categories",{teamOptional:!0}),known=new Set((response.categories??[]).map(c=>c.slug));return categories3.filter(c=>!known.has(c))}catch{return[]}}function formatTable(services){return table([["Service","Name","Methods","Description"].map(h=>import_chalk.default.bold(import_chalk.default.cyan(h))),...services.map(s=>[sanitizeForTerminal(s.service),sanitizeForTerminal(s.name),methodsOf(s),s.description?sanitizeForTerminal(s.description):import_chalk.default.gray("\u2013")])],{hsep:4})}function formatCompactList(services){return services.map(s=>[`${import_chalk.default.bold(sanitizeForTerminal(s.name))} (${sanitizeForTerminal(s.service)})`,` Methods: ${methodsOf(s)}`,` Description: ${s.description?sanitizeForTerminal(s.description):"\u2013"}`].join(`