@vercel/cli-support 65.9.0 → 65.10.0-snapshot-c80a43d75dc7

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 (271) hide show
  1. package/dist/chunks/add-A3SN7KWS.js +8 -0
  2. package/dist/chunks/add-RFPJCD35.js +8 -0
  3. package/dist/chunks/add-TOKTANDW.js +8 -0
  4. package/dist/chunks/build-25I6XOV7.js +7 -0
  5. package/dist/chunks/{chunk-5M3WBT3N.js → chunk-22UXDTCE.js} +1 -1
  6. package/dist/chunks/chunk-2AMO2VMV.js +68 -0
  7. package/dist/chunks/{chunk-U6KJOCXX.js → chunk-2DHDKWYN.js} +1 -1
  8. package/dist/chunks/chunk-2EFBGKRC.js +8 -0
  9. package/dist/chunks/{chunk-UOQGI6CL.js → chunk-2HLYY3KF.js} +1 -1
  10. package/dist/chunks/{chunk-7PGGP2QT.js → chunk-2JCJP43W.js} +1 -1
  11. package/dist/chunks/chunk-2VBFQZ72.js +7 -0
  12. package/dist/chunks/{chunk-EXLKCL5I.js → chunk-3AX7ZZJ7.js} +1 -1
  13. package/dist/chunks/{chunk-CMHL66LK.js → chunk-3F5BOG4A.js} +1 -1
  14. package/dist/chunks/chunk-3PXE5BLH.js +7 -0
  15. package/dist/chunks/{chunk-BZNRYQ6U.js → chunk-3WYSEF57.js} +1 -1
  16. package/dist/chunks/{chunk-EW62WSXG.js → chunk-4JWAXIIN.js} +1 -1
  17. package/dist/chunks/{chunk-R5ZLTWKB.js → chunk-4LGAV2WN.js} +1 -1
  18. package/dist/chunks/{chunk-7WY7ASKE.js → chunk-56UH6NQ3.js} +1 -1
  19. package/dist/chunks/{chunk-MXURT5TX.js → chunk-5I7CC45F.js} +1 -1
  20. package/dist/chunks/{chunk-QQA2OMXJ.js → chunk-5KE67O45.js} +1 -1
  21. package/dist/chunks/{chunk-4XJVEKTD.js → chunk-6AJWRPTY.js} +1 -1
  22. package/dist/chunks/{chunk-EBBDSEEU.js → chunk-6RUAAORO.js} +1 -1
  23. package/dist/chunks/{chunk-TRZDIAX3.js → chunk-77LSSWXL.js} +1 -1
  24. package/dist/chunks/{chunk-2JXQWOK5.js → chunk-7UFI6OYF.js} +1 -1
  25. package/dist/chunks/{chunk-EVH5524J.js → chunk-7ULLVH2G.js} +1 -1
  26. package/dist/chunks/{chunk-GHEGWXH2.js → chunk-ANCWFEOM.js} +1 -1
  27. package/dist/chunks/{chunk-7ULVGK67.js → chunk-BB5UMZMF.js} +1 -1
  28. package/dist/chunks/{chunk-4Z3APEBF.js → chunk-BJXLR2RE.js} +1 -1
  29. package/dist/chunks/{chunk-Y6WXTTZS.js → chunk-BPRGAX62.js} +1 -1
  30. package/dist/chunks/{chunk-G6HUSV7F.js → chunk-BZV2S4H6.js} +1 -1
  31. package/dist/chunks/{chunk-QY5RG6BB.js → chunk-C24IKNZN.js} +1 -1
  32. package/dist/chunks/chunk-C4N4LKPM.js +7 -0
  33. package/dist/chunks/chunk-CFYTFXX6.js +7 -0
  34. package/dist/chunks/chunk-CKTLP5GX.js +7 -0
  35. package/dist/chunks/{chunk-GCPPL24C.js → chunk-CUBRYWA2.js} +1 -1
  36. package/dist/chunks/{chunk-M73W4XNR.js → chunk-CZOD25BC.js} +1 -1
  37. package/dist/chunks/{chunk-UIJYRI3G.js → chunk-DBPN2VGJ.js} +1 -1
  38. package/dist/chunks/{chunk-IFCMWIRB.js → chunk-DRLGZXAL.js} +1 -1
  39. package/dist/chunks/{chunk-QKWJN6OE.js → chunk-DX2OHM56.js} +1 -1
  40. package/dist/chunks/{chunk-XBWISZCG.js → chunk-EJ34DLV4.js} +1 -1
  41. package/dist/chunks/{chunk-T5TOBY4D.js → chunk-EJZNJN4N.js} +1 -1
  42. package/dist/chunks/{chunk-TMXIVQ45.js → chunk-F2LNGJOZ.js} +1 -1
  43. package/dist/chunks/{chunk-G3LWP5CH.js → chunk-FAVZ6WVS.js} +1 -1
  44. package/dist/chunks/{chunk-D4ZEJM3T.js → chunk-FI5O4WHD.js} +1 -1
  45. package/dist/chunks/{chunk-UVE5COCG.js → chunk-FOQD62WW.js} +1 -1
  46. package/dist/chunks/{chunk-PBX7RJ2K.js → chunk-FPYHB76H.js} +1 -1
  47. package/dist/chunks/{chunk-4SJU5QSD.js → chunk-FQVIWQ6M.js} +1 -1
  48. package/dist/chunks/chunk-FTACGWII.js +14 -0
  49. package/dist/chunks/{chunk-FWTBSC7Z.js → chunk-FY4ORPZH.js} +1 -1
  50. package/dist/chunks/{chunk-VBKFCR5W.js → chunk-G5T6UQAL.js} +1 -1
  51. package/dist/chunks/chunk-G7H33IKQ.js +10 -0
  52. package/dist/chunks/{chunk-33U57CNE.js → chunk-GKALP6QD.js} +1 -1
  53. package/dist/chunks/{chunk-WGWGDC3N.js → chunk-GPISCZ2P.js} +1 -1
  54. package/dist/chunks/{chunk-DUPAU76G.js → chunk-HJ45TAM4.js} +1 -1
  55. package/dist/chunks/chunk-HR462OEG.js +10 -0
  56. package/dist/chunks/{chunk-JOXGYP5S.js → chunk-JVNIDSP5.js} +1 -1
  57. package/dist/chunks/chunk-KMPDQE4Q.js +7 -0
  58. package/dist/chunks/{chunk-OZPBJWYU.js → chunk-KNAOHPOI.js} +8 -8
  59. package/dist/chunks/{chunk-4OTI552J.js → chunk-KWXJIVBG.js} +1 -1
  60. package/dist/chunks/{chunk-QJAIUZVZ.js → chunk-L4QQTYUI.js} +5 -5
  61. package/dist/chunks/{chunk-43P35KUA.js → chunk-L6CZL2IQ.js} +1 -1
  62. package/dist/chunks/{chunk-6RCFEJZK.js → chunk-LC4BSDDG.js} +1 -1
  63. package/dist/chunks/{chunk-ZERZX6BZ.js → chunk-LQAQD5LG.js} +2 -2
  64. package/dist/chunks/{chunk-2DODPQ5J.js → chunk-MBL7MWP5.js} +1 -1
  65. package/dist/chunks/{chunk-VZKQP67Q.js → chunk-MKYFAYCD.js} +1 -1
  66. package/dist/chunks/{chunk-D2JHIOVH.js → chunk-MOF4QNZH.js} +1 -1
  67. package/dist/chunks/{chunk-32AS5X7G.js → chunk-MUNGQJGO.js} +1 -1
  68. package/dist/chunks/{chunk-UZTDRGCW.js → chunk-NAEY6HG5.js} +1 -1
  69. package/dist/chunks/{chunk-E5CN62HO.js → chunk-NAJCRBQB.js} +1 -1
  70. package/dist/chunks/{chunk-GN5IAG3M.js → chunk-NGHFFOD2.js} +1 -1
  71. package/dist/chunks/{chunk-4BZ3DNGM.js → chunk-NLKM5LR5.js} +1 -1
  72. package/dist/chunks/{chunk-NEUQZYBL.js → chunk-PMEYNJU2.js} +1 -1
  73. package/dist/chunks/{chunk-5K4UTJSY.js → chunk-PXQAWH7E.js} +1 -1
  74. package/dist/chunks/{chunk-SNCQOAFU.js → chunk-Q25FOMOX.js} +1 -1
  75. package/dist/chunks/{chunk-BWS3ZOHJ.js → chunk-Q4GX2UTG.js} +1 -1
  76. package/dist/chunks/{chunk-CBVVVYUP.js → chunk-QCIIUQV3.js} +1 -1
  77. package/dist/chunks/chunk-QGZZL6YY.js +7 -0
  78. package/dist/chunks/{chunk-GCXUSXB4.js → chunk-QVMU7ZKQ.js} +1 -1
  79. package/dist/chunks/{chunk-DASHFOKO.js → chunk-QXYCICNB.js} +1 -1
  80. package/dist/chunks/{chunk-ZGKJLJ47.js → chunk-R2P4PNRQ.js} +1 -1
  81. package/dist/chunks/{chunk-Y5YXAXK3.js → chunk-R3D4M5RE.js} +1 -1
  82. package/dist/chunks/{chunk-H34SGIVS.js → chunk-S5JBQCBA.js} +1 -1
  83. package/dist/chunks/chunk-SHY7P3C6.js +10 -0
  84. package/dist/chunks/{chunk-QBOY2CXL.js → chunk-SODZSOOL.js} +1 -1
  85. package/dist/chunks/{chunk-TGPYWWX3.js → chunk-SXEOJSZQ.js} +1 -1
  86. package/dist/chunks/{chunk-KV2DYFUG.js → chunk-T7HE23VK.js} +1 -1
  87. package/dist/chunks/{chunk-2H4DUZJZ.js → chunk-TL4ZLZ2Q.js} +1 -1
  88. package/dist/chunks/{chunk-DUJAQS7I.js → chunk-TNNEKGGF.js} +1 -1
  89. package/dist/chunks/{chunk-USYEDO7R.js → chunk-TNUQME3L.js} +1 -1
  90. package/dist/chunks/chunk-TZ6MSTOI.js +7 -0
  91. package/dist/chunks/chunk-U6XJYQJS.js +7 -0
  92. package/dist/chunks/chunk-UWJ3UPS5.js +11 -0
  93. package/dist/chunks/chunk-V32V4SXB.js +7 -0
  94. package/dist/chunks/{chunk-ECQKK4JU.js → chunk-VD2FK6OF.js} +1 -1
  95. package/dist/chunks/chunk-VPUYTI5E.js +25 -0
  96. package/dist/chunks/{chunk-2JNDJISE.js → chunk-VYRMHE34.js} +1 -1
  97. package/dist/chunks/{chunk-WFOJ2LEA.js → chunk-VZGTL3YC.js} +1 -1
  98. package/dist/chunks/{chunk-ZBZPCKTW.js → chunk-W5GHMAHP.js} +1 -1
  99. package/dist/chunks/{chunk-ZCXKEZS4.js → chunk-WHUZRBYL.js} +1 -1
  100. package/dist/chunks/{chunk-BRETAWE7.js → chunk-XEXOSJIU.js} +1 -1
  101. package/dist/chunks/{chunk-JMAXX2I6.js → chunk-XGOELSYA.js} +1 -1
  102. package/dist/chunks/{chunk-TCB4XM23.js → chunk-Y57DK3ZN.js} +1 -1
  103. package/dist/chunks/{chunk-WKYFWE37.js → chunk-YO6SJCZP.js} +1 -1
  104. package/dist/chunks/chunk-YOWMZJPA.js +7 -0
  105. package/dist/chunks/{chunk-EDOTKQ7L.js → chunk-ZGQNI22M.js} +1 -1
  106. package/dist/chunks/chunk-ZUI5EMXD.js +11 -0
  107. package/dist/chunks/clear-B764MEAM.js +8 -0
  108. package/dist/chunks/{compile-vercel-config-DRTOWZK6.js → compile-vercel-config-EWCB7SIC.js} +1 -1
  109. package/dist/chunks/{config-MNRKCDQA.js → config-CW4JO67Q.js} +1 -1
  110. package/dist/chunks/config-D4WY2HG4.js +8 -0
  111. package/dist/chunks/delete-SKYFHUWD.js +10 -0
  112. package/dist/chunks/delete-W3GMFAKA.js +9 -0
  113. package/dist/chunks/{detect-services-GXKWIX52.js → detect-services-3TRRRLES.js} +1 -1
  114. package/dist/chunks/disable-EBPZ2LYC.js +7 -0
  115. package/dist/chunks/discard-SMVPENSP.js +14 -0
  116. package/dist/chunks/edit-A3M3GBGP.js +8 -0
  117. package/dist/chunks/edit-CGTNGJKY.js +9 -0
  118. package/dist/chunks/enable-6A5THWDP.js +7 -0
  119. package/dist/chunks/{export-N5F7EY7B.js → export-R5IUWAW5.js} +1 -1
  120. package/dist/chunks/future-CPJUUZTU.js +7 -0
  121. package/dist/chunks/generate-cert-for-deploy-Z3HCAR5H.js +7 -0
  122. package/dist/chunks/image-VNSN2SKE.js +7 -0
  123. package/dist/chunks/{import-builders-OAGJKQNW.js → import-builders-GPJQAMXT.js} +1 -1
  124. package/dist/chunks/{inspect-UDUI3ETL.js → inspect-6FEL5DYV.js} +1 -1
  125. package/dist/chunks/inspect-BO2ACFEG.js +13 -0
  126. package/dist/chunks/{inspect-35WHAXL2.js → inspect-TEPB7KVC.js} +1 -1
  127. package/dist/chunks/inspect-WC2C4MDP.js +9 -0
  128. package/dist/chunks/{inspect-GX34WQGR.js → inspect-WWOHWQKS.js} +1 -1
  129. package/dist/chunks/{list-VVND632B.js → list-4KSJEP23.js} +1 -1
  130. package/dist/chunks/{list-BINT67HQ.js → list-C5GUZ35P.js} +1 -1
  131. package/dist/chunks/list-EZWZSVM4.js +12 -0
  132. package/dist/chunks/login-PDZT4PQR.js +7 -0
  133. package/dist/chunks/login-ZNCCVA4H.js +9 -0
  134. package/dist/chunks/logs-YKQMUTMG.js +7 -0
  135. package/dist/chunks/{ls-2MJY6EKD.js → ls-3HUS6KS6.js} +1 -1
  136. package/dist/chunks/ls-KQJYKADC.js +8 -0
  137. package/dist/chunks/{ls-7OZ5TSNW.js → ls-LYVPEIIT.js} +1 -1
  138. package/dist/chunks/{ls-6HYUGM62.js → ls-RBPRE6BF.js} +1 -1
  139. package/dist/chunks/{ls-YT3MWU4U.js → ls-TASQJDLF.js} +1 -1
  140. package/dist/chunks/{ls-HTNWWU45.js → ls-WX4BJRDV.js} +1 -1
  141. package/dist/chunks/ls-ZP7OBTTV.js +11 -0
  142. package/dist/chunks/mutate-5N6DMBYS.js +9 -0
  143. package/dist/chunks/{native-self-update-75UJCHGZ.js → native-self-update-7OAY4AVR.js} +1 -1
  144. package/dist/chunks/notifications-OVFMQLHL.js +7 -0
  145. package/dist/chunks/open-DOBOKUEK.js +7 -0
  146. package/dist/chunks/{openapi-KYC6JIXI.js → openapi-YAZA3237.js} +1 -1
  147. package/dist/chunks/permissions-PHCOVDWK.js +7 -0
  148. package/dist/chunks/{plugin-offer-URT5JNEU.js → plugin-offer-M7KJSJU6.js} +1 -1
  149. package/dist/chunks/prompt-missing-credentials-RTNCHH6Y.js +7 -0
  150. package/dist/chunks/{publish-LH5CIXCP.js → publish-JIFRJNDV.js} +1 -1
  151. package/dist/chunks/pull-HLJSW3W4.js +7 -0
  152. package/dist/chunks/purchase-domain-if-available-3EBONBX3.js +7 -0
  153. package/dist/chunks/push-ZN6CBJLJ.js +7 -0
  154. package/dist/chunks/{query-POTX2HYL.js → query-MT6ID6C7.js} +1 -1
  155. package/dist/chunks/reauthenticate-OXFB64PS.js +7 -0
  156. package/dist/chunks/reorder-N2L43LXD.js +10 -0
  157. package/dist/chunks/reply-WBR3XXBJ.js +9 -0
  158. package/dist/chunks/resolve-NMR24Y67.js +12 -0
  159. package/dist/chunks/resolve-agent-team-KRTLBC5D.js +7 -0
  160. package/dist/chunks/{restore-L3T5KOG7.js → restore-AKAVSLAK.js} +1 -1
  161. package/dist/chunks/rm-DGMHU3CU.js +8 -0
  162. package/dist/chunks/rm-ERBTFH3G.js +8 -0
  163. package/dist/chunks/rm-H2T7HB3F.js +8 -0
  164. package/dist/chunks/rm-Q3ZXEMGI.js +8 -0
  165. package/dist/chunks/rm-TNGYCAFJ.js +8 -0
  166. package/dist/chunks/{routes-S75L7Z7A.js → routes-4WGST7VN.js} +1 -1
  167. package/dist/chunks/rule-inspect-ZVHPS2PL.js +8 -0
  168. package/dist/chunks/{schema-P4T4GQBF.js → schema-TSHU5NN6.js} +1 -1
  169. package/dist/chunks/{schema-TOVLKRPJ.js → schema-YUXTIJSB.js} +1 -1
  170. package/dist/chunks/select-org-35NFUKXO.js +7 -0
  171. package/dist/chunks/set-PP5K4NBO.js +7 -0
  172. package/dist/chunks/setup-and-link-ACSPPTME.js +7 -0
  173. package/dist/chunks/{skills-DZYJV7BE.js → skills-X5TPVYXW.js} +1 -1
  174. package/dist/chunks/{statuspage-45LJ2XYT.js → statuspage-KHTMA4WL.js} +1 -1
  175. package/dist/chunks/tags-6QB3FP3B.js +7 -0
  176. package/dist/chunks/{types-YA6BOCRV.js → types-SENK43U4.js} +1 -1
  177. package/dist/chunks/{update-YSAO36V7.js → update-QA3NLSTV.js} +1 -1
  178. package/dist/chunks/zod-Y3ZBY67C.js +7 -0
  179. package/dist/commands/build/index.js +1 -1
  180. package/dist/commands/deploy/index.js +30 -23
  181. package/dist/commands/dev/index.js +2 -2
  182. package/dist/commands/env/index.js +1 -1
  183. package/dist/commands/link/index.js +1 -1
  184. package/dist/commands/list/index.js +1 -1
  185. package/dist/commands/project/index.js +7 -7
  186. package/dist/commands-account.js +18 -3
  187. package/dist/commands-ai.js +2 -2
  188. package/dist/commands-blob.js +1 -1
  189. package/dist/commands-core.js +6 -6
  190. package/dist/commands-deployments.js +5 -3
  191. package/dist/commands-flags.js +7 -9
  192. package/dist/commands-integrations.js +1 -1
  193. package/dist/commands-observability.js +5 -5
  194. package/dist/commands-routing.js +2 -2
  195. package/dist/help.js +1 -1
  196. package/dist/index.js +4 -4
  197. package/dist/internal-build-worker.js +1 -1
  198. package/dist/internal-build.js +1 -1
  199. package/dist/launcher-errors.js +11 -0
  200. package/dist/native-download.js +1 -1
  201. package/dist/package.json +29 -29
  202. package/dist/vc.js +355 -86
  203. package/dist/version.mjs +1 -1
  204. package/package.json +22 -22
  205. package/dist/chunks/add-6YFDZCAK.js +0 -8
  206. package/dist/chunks/add-QDZPCCUD.js +0 -8
  207. package/dist/chunks/add-Z24IIQDY.js +0 -8
  208. package/dist/chunks/build-HLU4YO37.js +0 -7
  209. package/dist/chunks/chunk-2CSCY66I.js +0 -11
  210. package/dist/chunks/chunk-2NABMKFV.js +0 -29
  211. package/dist/chunks/chunk-2TRNHR72.js +0 -7
  212. package/dist/chunks/chunk-32NXYHYC.js +0 -10
  213. package/dist/chunks/chunk-4CQKN5TW.js +0 -10
  214. package/dist/chunks/chunk-7DM3IJ7L.js +0 -10
  215. package/dist/chunks/chunk-AUCTNGW2.js +0 -7
  216. package/dist/chunks/chunk-C6525MLX.js +0 -10
  217. package/dist/chunks/chunk-CGTD4QFC.js +0 -7
  218. package/dist/chunks/chunk-DSNIVABS.js +0 -7
  219. package/dist/chunks/chunk-F53OKXYI.js +0 -7
  220. package/dist/chunks/chunk-K5YO4UD7.js +0 -7
  221. package/dist/chunks/chunk-NAU6URTI.js +0 -25
  222. package/dist/chunks/chunk-NNIQPNGP.js +0 -7
  223. package/dist/chunks/chunk-NTUDWWSL.js +0 -14
  224. package/dist/chunks/chunk-RZY54T7B.js +0 -7
  225. package/dist/chunks/chunk-SR2SHYJA.js +0 -7
  226. package/dist/chunks/chunk-WGVIQTOI.js +0 -8
  227. package/dist/chunks/chunk-YPPDRKVC.js +0 -7
  228. package/dist/chunks/clear-RU72IUXU.js +0 -8
  229. package/dist/chunks/config-PIFTR3UF.js +0 -8
  230. package/dist/chunks/delete-47BF6SIO.js +0 -9
  231. package/dist/chunks/delete-QNSKEIGO.js +0 -10
  232. package/dist/chunks/disable-SBFW3F7B.js +0 -7
  233. package/dist/chunks/discard-DUZR3OWZ.js +0 -14
  234. package/dist/chunks/edit-6BQ7FZC4.js +0 -8
  235. package/dist/chunks/edit-WO7FLNW2.js +0 -9
  236. package/dist/chunks/enable-OK4MR3Z6.js +0 -7
  237. package/dist/chunks/future-5AQIYILU.js +0 -7
  238. package/dist/chunks/generate-cert-for-deploy-7ERAHVOV.js +0 -7
  239. package/dist/chunks/image-IRC2NJVA.js +0 -7
  240. package/dist/chunks/inspect-5FKOSDTK.js +0 -13
  241. package/dist/chunks/inspect-ACNGICEF.js +0 -9
  242. package/dist/chunks/list-TRFGY6WP.js +0 -12
  243. package/dist/chunks/login-MYVTOBRG.js +0 -9
  244. package/dist/chunks/login-SOZ5ME3D.js +0 -7
  245. package/dist/chunks/logs-EMAGPMIZ.js +0 -7
  246. package/dist/chunks/ls-KU35N6DP.js +0 -8
  247. package/dist/chunks/ls-WFC636QK.js +0 -11
  248. package/dist/chunks/mutate-JVDDZLVE.js +0 -9
  249. package/dist/chunks/notifications-CXDBNBHU.js +0 -7
  250. package/dist/chunks/open-3CD5ZNKU.js +0 -7
  251. package/dist/chunks/permissions-PNBST4WN.js +0 -7
  252. package/dist/chunks/prompt-missing-credentials-Q5JCRP3R.js +0 -7
  253. package/dist/chunks/pull-XLZXPTLS.js +0 -7
  254. package/dist/chunks/purchase-domain-if-available-PDJGZ6MY.js +0 -7
  255. package/dist/chunks/push-XB57XK6H.js +0 -7
  256. package/dist/chunks/reauthenticate-CRI4D2BQ.js +0 -7
  257. package/dist/chunks/reorder-KUQ5EQBV.js +0 -10
  258. package/dist/chunks/reply-LO76EKEE.js +0 -9
  259. package/dist/chunks/resolve-KZJYJJLA.js +0 -12
  260. package/dist/chunks/resolve-agent-team-N7QMB7UO.js +0 -7
  261. package/dist/chunks/rm-7UKXTIZW.js +0 -8
  262. package/dist/chunks/rm-AKKEQN32.js +0 -8
  263. package/dist/chunks/rm-ELC57ULY.js +0 -8
  264. package/dist/chunks/rm-K7XEZ7TY.js +0 -8
  265. package/dist/chunks/rm-MOYCAXNO.js +0 -8
  266. package/dist/chunks/rule-inspect-ZCS4EBKR.js +0 -8
  267. package/dist/chunks/select-org-6NEM7F25.js +0 -7
  268. package/dist/chunks/set-NXFB6JXG.js +0 -7
  269. package/dist/chunks/setup-and-link-L67MMSUD.js +0 -7
  270. package/dist/chunks/tags-5AV6WAOF.js +0 -7
  271. package/dist/chunks/zod-2C2SXNIK.js +0 -7
@@ -4,7 +4,7 @@ import { dirname as __dirname_ } from 'node:path';
4
4
  const require = __createRequire(import.meta.url);
5
5
  const __filename = __fileURLToPath(import.meta.url);
6
6
  const __dirname = __dirname_(__filename);
7
- import{ALL_ACTION_CHOICES,MAX_CONDITIONS,MAX_DESCRIPTION_LENGTH,MAX_NAME_LENGTH,REDIRECT_STATUS_CODES,VALID_SYNTAXES,collectActionDetails,collectHeadersAndTransforms,collectInteractiveConditions,convertRouteToCurrentRoute,extractTransformFlags,generateRoute,generatedRouteToAddInput,parseConditions,populateRouteEnv,printGeneratedRoutePreview,runInteractiveEditLoop,stripQuotes,validateActionFlags}from"./chunks/chunk-4XJVEKTD.js";import{getRouteVersions}from"./chunks/chunk-BVH2AEFE.js";import{TRANSFORM_TYPE_LABELS,findVersionById,formatCondition,formatTransform,getRouteTypeLabel,getRoutes,getSrcSyntaxLabel,isTargetTransform,offerAutoPromote,parsePosition,parseSubcommandArgs,withGlobalFlags as withGlobalFlags2}from"./chunks/chunk-DUJAQS7I.js";import{RoutesAddTelemetryClient,RoutesTelemetryClient}from"./chunks/chunk-ZGKJLJ47.js";import{LOCAL_SCHEDULES_SESSION_HEADER,isLocalSchedulesOrigin,readLocalSchedulesSessions}from"./chunks/chunk-SF4E3AQ3.js";import{getLinkedFlagsProject,getProjectNameFromFlags}from"./chunks/chunk-SNCQOAFU.js";import{parseSubcommandArguments,requireProjectContext,validateRequiredArguments}from"./chunks/chunk-SR2SHYJA.js";import{formatMetricValue,generateSparkline}from"./chunks/chunk-UIJYRI3G.js";import{OBSERVABILITY_METRICS_PATH}from"./chunks/chunk-WKYFWE37.js";import"./chunks/chunk-IVSSTHB6.js";import"./chunks/chunk-GZNDA6SV.js";import{Now,printDeploymentStatus}from"./chunks/chunk-ZERZX6BZ.js";import"./chunks/chunk-ZFRNVIHI.js";import"./chunks/chunk-USYEDO7R.js";import{getCustomEnvironments,pickCustomEnvironment}from"./chunks/chunk-F7AVGV4Y.js";import"./chunks/chunk-IZ4GFKGR.js";import{applyDeprecatedTargetFlag}from"./chunks/chunk-D4TD2KWH.js";import"./chunks/chunk-EW62WSXG.js";import{resolveProjectContext}from"./chunks/chunk-QKWJN6OE.js";import{formatProject}from"./chunks/chunk-TD7AL545.js";import"./chunks/chunk-U56NHYAH.js";import{readJSONFile}from"./chunks/chunk-4SJU5QSD.js";import"./chunks/chunk-25565AGS.js";import{getTeamBillingUrl}from"./chunks/chunk-XR6QY7RR.js";import{isValidName}from"./chunks/chunk-PADL3C6Z.js";import{writeJsonError}from"./chunks/chunk-CBVVVYUP.js";import{handleValidationError,normalizeRepeatableStringFilters,resolveTimeRange,validateIntegerRangeWithDefault,validateOptionalIntegerRange,validateTimeBound,validateTimeOrder}from"./chunks/chunk-AX3V7N44.js";import"./chunks/chunk-VT6RIZJH.js";import"./chunks/chunk-TOTTVS5P.js";import{ensureLink}from"./chunks/chunk-7DM3IJ7L.js";import{getDeployment}from"./chunks/chunk-VU3RBRDH.js";import"./chunks/chunk-4VF5BZJP.js";import{require_open}from"./chunks/chunk-PVASGBEF.js";import"./chunks/chunk-EBBDSEEU.js";import{require_async_sema}from"./chunks/chunk-NZ2TFADV.js";import{getAliases}from"./chunks/chunk-43P35KUA.js";import{INVALID_NEXT_MESSAGE,parseNumericCursor}from"./chunks/chunk-C6GY2G73.js";import{getCommandFlags}from"./chunks/chunk-XGTKHQTT.js";import{formatDate}from"./chunks/chunk-HRR57QNP.js";import{require_format}from"./chunks/chunk-PFD7LETF.js";import{getNextPageCommand,printNextPageCommand}from"./chunks/chunk-NEUQZYBL.js";import{validateLsArgs}from"./chunks/chunk-BT5C6MCY.js";import{getInvalidSubcommand}from"./chunks/chunk-TG2RCYTH.js";import{formatTable,strlen}from"./chunks/chunk-2RXUQ72I.js";import{stamp_default}from"./chunks/chunk-A2RZZQEP.js";import{table}from"./chunks/chunk-375JVQYK.js";import{getRenamedOption,renameOptionInArgs,reportRenamedOptionError,withWarnings}from"./chunks/chunk-K5YO4UD7.js";import{elapsed}from"./chunks/chunk-Q7D7RGXM.js";import{getSubcommand as getSubcommand2}from"./chunks/chunk-ETV3C2CV.js";import{printUnknownCommand}from"./chunks/chunk-4CQKN5TW.js";import{KMS_ALGORITHMS,PROJECT_GRANT_POLICY_KIND,activateKeySubcommand,addGrantSubcommand,addKeySubcommand,addSubcommand7 as addSubcommand,addSubcommand9 as addSubcommand2,addToGroupSubcommand,analyzeSubcommand,createGroupSubcommand,createSubcommand5 as createSubcommand,createSubcommand8 as createSubcommand2,decideSubcommand,deleteGroupSubcommand,deleteSubcommand2 as deleteSubcommand,deleteSubcommand3,diagnoseSubcommand,disableSubcommand3 as disableSubcommand2,enableSubcommand4 as enableSubcommand2,executionsListSubcommand,executionsSubcommand,experimentsCommand,getCommandAliases,getSubcommand2 as getSubcommand,importKeySubcommand,importSubcommand2 as importSubcommand,inspectGroupSubcommand,inspectSubcommand11 as inspectSubcommand3,inspectSubcommand5 as inspectSubcommand,inspectSubcommand8 as inspectSubcommand2,instancesInspectSubcommand,instancesListSubcommand,instancesRestartSubcommand,instancesSubcommand,invokeSubcommand,isProjectGrant,issuerJwksUrl,issuerUrl,kmsCommand,listSubcommand13 as listSubcommand2,listSubcommand17 as listSubcommand3,listSubcommand20 as listSubcommand4,listSubcommand21 as listSubcommand6,listSubcommand9 as listSubcommand,listVersionsSubcommand,microfrontendsCommand,openSubcommand2 as openSubcommand,promoteSubcommand,pullSubcommand,redeployCommand,redirectsCommand,removeCommand,removeFromGroupSubcommand,removeGrantSubcommand,removeSubcommand12 as removeSubcommand,removeSubcommand14 as removeSubcommand2,reseedEnrollmentSubcommand,restartAnalysisSubcommand,restoreSubcommand,returnToDraftSubcommand,revokeKeySubcommand,scaleSubcommand,schedulesCommand,setRampSubcommand,startSubcommand,updateGrantSubcommand,updateSubcommand11 as updateSubcommand3,updateSubcommand4 as updateSubcommand,updateSubcommand8 as updateSubcommand2,uploadSubcommand}from"./chunks/chunk-NTUDWWSL.js";import{addSubcommand as addSubcommand3,deleteSubcommand as deleteSubcommand2,disableSubcommand,discardSubcommand,editSubcommand,enableSubcommand,exportSubcommand,inspectSubcommand as inspectSubcommand4,listSubcommand as listSubcommand5,listVersionsSubcommand as listVersionsSubcommand2,publishSubcommand,reorderSubcommand,restoreSubcommand as restoreSubcommand2,routesCommand}from"./chunks/chunk-M73W4XNR.js";import"./chunks/chunk-32AS5X7G.js";import"./chunks/chunk-ZBZPCKTW.js";import"./chunks/chunk-TRZDIAX3.js";import"./chunks/chunk-GHEGWXH2.js";import"./chunks/chunk-GCXUSXB4.js";import"./chunks/chunk-2H4DUZJZ.js";import"./chunks/chunk-ECQKK4JU.js";import"./chunks/chunk-JOXGYP5S.js";import"./chunks/chunk-7ULVGK67.js";import"./chunks/chunk-4BZ3DNGM.js";import"./chunks/chunk-R5ZLTWKB.js";import"./chunks/chunk-T5TOBY4D.js";import"./chunks/chunk-H34SGIVS.js";import"./chunks/chunk-5DXC4TE2.js";import"./chunks/chunk-G3LWP5CH.js";import"./chunks/chunk-QQA2OMXJ.js";import{DEV_RESOURCE_TOKEN}from"./chunks/chunk-KV2DYFUG.js";import"./chunks/chunk-JALVF3C2.js";import"./chunks/chunk-GCPPL24C.js";import{printError}from"./chunks/chunk-BWS3ZOHJ.js";import{help,remoteText}from"./chunks/chunk-33U57CNE.js";import{param}from"./chunks/chunk-3G3FQYMW.js";import{getContextName,getScope}from"./chunks/chunk-DSNIVABS.js";import{TelemetryClient}from"./chunks/chunk-NAU6URTI.js";import"./chunks/chunk-2EYYB6YN.js";import"./chunks/chunk-NWGBDBZI.js";import{AGENT_ACTION,AGENT_REASON,AGENT_STATUS,buildCommandWithGlobalFlags,buildCommandWithYes,getErrorRecovery,getExitCodeForReason,openUrlInBrowserCommand,outputActionRequired,outputAgentError,withGlobalFlags}from"./chunks/chunk-32NXYHYC.js";import"./chunks/chunk-FWTBSC7Z.js";import{getLinkedProject,getProjectByNameOrId,humanizePath,require_dist2,require_lib,require_pluralize,responseError,sleep}from"./chunks/chunk-OZPBJWYU.js";import{ALIGNED_LABEL_WIDTH,formatAlignedLabel,printAlignedLabel}from"./chunks/chunk-64UCX5JM.js";import{ua_default}from"./chunks/chunk-ITQPDXXA.js";import"./chunks/chunk-7WY7ASKE.js";import"./chunks/chunk-4NTBYNFR.js";import{getTypedOptionName,isArgumentError,parseArguments,takeCommand}from"./chunks/chunk-CGTD4QFC.js";import{getTeamByIdOrSlug,quoteArg}from"./chunks/chunk-F53OKXYI.js";import{validateJsonOutput,wantsMachineReadableOutput,warnDeprecatedInput,warnDeprecatedOption,warnDeprecatedSubcommand}from"./chunks/chunk-GJCVOEC2.js";import"./chunks/chunk-LUX4PBJL.js";import"./chunks/chunk-OPORM35X.js";import{require_ms}from"./chunks/chunk-MXTC4ZAQ.js";import"./chunks/chunk-4SAVH3H7.js";import{NowError,ProjectNotFound,isAPIError}from"./chunks/chunk-T2FCF46I.js";import{cmd,getCommandName,getCommandNamePlain}from"./chunks/chunk-VRH7LWOC.js";import"./chunks/chunk-DBT6PGEH.js";import{emoji,link_default,output_manager_default,prependEmoji}from"./chunks/chunk-W634OFUG.js";import"./chunks/chunk-BLUPZPAS.js";import"./chunks/chunk-ZS2WS4AM.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,getGlobalFlagsFromArgs,getProjectOptionFromArgs,getSameSubcommandSuggestionFlags}from"./chunks/chunk-YPPDRKVC.js";import"./chunks/chunk-2BKALEOP.js";import{require_source}from"./chunks/chunk-NB2WLB3J.js";import"./chunks/chunk-ISWW3DKF.js";import"./chunks/chunk-BULSRTQE.js";import"./chunks/chunk-BRQUZ5NC.js";import"./chunks/chunk-D6REP5QQ.js";import"./chunks/chunk-FBYA6LLM.js";import{directFetch,getFetchDispatcher}from"./chunks/chunk-MY4MONOH.js";import"./chunks/chunk-7EJQLVWX.js";import"./chunks/chunk-SCV7XEEO.js";import{__toESM}from"./chunks/chunk-BZENIQ7N.js";var DaemonsTelemetryClient=class extends TelemetryClient{constructor(){super(...arguments);this.sub=subcommand=>value=>this.trackSubcommand(subcommand,value);this.arg=arg=>value=>this.trackCliArgument({arg,value:value&&this.redactedValue});this.option=option=>value=>this.trackRedactedCliOption(option,value);this.flag=flag=>value=>{value&&this.trackCliFlag(flag)};this.trackCliSubcommandList=this.sub("list");this.trackCliSubcommandScale=this.sub("scale");this.trackCliSubcommandInstances=this.sub("instances");this.trackCliSubcommandInspect=this.sub("inspect");this.trackCliSubcommandRestart=this.sub("restart");this.trackCliArgumentDaemon=this.arg("daemon");this.trackCliArgumentInstance=this.arg("instance");this.trackCliOptionNext=this.option("next");this.trackCliOptionSince=this.option("since");this.trackCliOptionUntil=this.option("until");this.trackCliFlagReset=this.flag("reset");this.trackCliFlagJson=this.flag("json")}trackSubcommand(subcommand,value){this.trackCliSubcommand({subcommand,value})}trackCliArgumentOverrides(value){let count=value.length?String(value.length):void 0;this.trackCliArgument({arg:"overrides",value:count})}trackCliOptionLimit(value){value!==void 0&&this.trackCliOption({option:"limit",value:String(value)})}trackOptions(flags){this.trackCliOptionProject(flags["--project"]),this.trackCliOptionLimit(flags["--limit"]),this.trackCliOptionNext(flags["--next"]),this.trackCliOptionSince(flags["--since"]),this.trackCliOptionUntil(flags["--until"]),this.trackCliFlagReset(flags["--reset"]),this.trackCliOptionFormat(flags["--format"]),this.trackCliFlagJson(flags["--json"])}};var import_chalk2=__toESM(require_source(),1);var import_chalk=__toESM(require_source(),1),import_ms=__toESM(require_ms(),1);function isJsonOutput(client){return wantsMachineReadableOutput("daemons",client.argv)||client.nonInteractive}function reportError(client,err,exitCode=1){if(!isJsonOutput(client))return printError(err,client),exitCode;let apiError=isAPIError(err)?err:void 0,reason=exitCode===2?AGENT_REASON.INVALID_ARGUMENTS:AGENT_REASON.API_ERROR,message=exitCode===2&&err instanceof Error?err.message:"Couldn't complete the daemon command.";return writeJsonError(client,{status:AGENT_STATUS.ERROR,reason,message,...apiError&&{...getErrorRecovery(apiError,client),data:{httpStatus:apiError.status}}},exitCode)}function toDaemon(daemon){if(!("replicas"in daemon))return daemon;let{replicas:instances,config,...rest}=daemon;if(!config)return{...rest,instances};let{replicas,configuredReplicas,...restConfig}=config;return{...rest,config:{...restConfig,instances:replicas,configuredInstances:configuredReplicas},instances}}var DAEMON_NAME_PATTERN=/^[a-zA-Z0-9_-]+$/;function instanceIdArg(client,args,usage){return args.length===0?failure(client,AGENT_REASON.INVALID_ARGUMENTS,"An instance ID is required.",{command:"instances list",when:"List available instances"},2):args.length===1&&/^dmni_[0-9a-hjkmnp-tv-z]{26}$/.test(args[0])?args[0]:usageError(client,"Expected one instance ID, like dmni_01k7d0q5w3x8y9z0a1b2c3d4e5.",usage)}function parse(client,argv,options,usage){let parsed;try{let spec=getFlagsSpecification(options);parsed=parseArguments(argv,spec)}catch(err){return reportError(client,err,2)}let telemetry=new DaemonsTelemetryClient({opts:{store:client.telemetryEventStore}});telemetry.trackOptions(parsed.flags);let format2=validateJsonOutput(parsed.flags);if(!format2.valid)return usageError(client,format2.error,usage);let asJson=format2.jsonOutput||client.nonInteractive;return{...parsed,asJson,telemetry}}async function resolveProject(client,project){let link=isJsonOutput(client)?await resolveProjectContext({client,projectNameOrId:project,projectNotFoundHandling:"return",quiet:!0}):await requireProjectContext(client,"daemons",project);return typeof link=="number"?link:link.status==="error"?reportError(client,new Error("Could not resolve project context."),link.exitCode):link.status!=="linked"?failure(client,project?AGENT_REASON.PROJECT_NOT_FOUND:AGENT_REASON.NOT_LINKED,project?`Couldn't find project ${project}.`:"No linked project found.",{command:"list --project <PROJECT>",when:"Select an existing project"}):(client.config.currentTeam=link.org.type==="team"?link.org.id:void 0,{...link,target:`${link.org.slug}/${link.project.name}`})}function daemonsCommand(client,command2){return withGlobalFlags(client,`daemons ${command2}`,{preserveProject:!0})}function failure(client,reason,message,next,exitCode=1){let command2=daemonsCommand(client,next.command);return output_manager_default.stopSpinner(),isJsonOutput(client)?writeJsonError(client,{status:AGENT_STATUS.ERROR,reason,message,next:[{...next,command:command2}]},exitCode):(output_manager_default.fatal(message),output_manager_default.print(`
7
+ import{RoutesAddTelemetryClient,RoutesTelemetryClient}from"./chunks/chunk-R2P4PNRQ.js";import{ALL_ACTION_CHOICES,MAX_CONDITIONS,MAX_DESCRIPTION_LENGTH,MAX_NAME_LENGTH,REDIRECT_STATUS_CODES,VALID_SYNTAXES,collectActionDetails,collectHeadersAndTransforms,collectInteractiveConditions,convertRouteToCurrentRoute,extractTransformFlags,generateRoute,generatedRouteToAddInput,parseConditions,populateRouteEnv,printGeneratedRoutePreview,runInteractiveEditLoop,stripQuotes,validateActionFlags}from"./chunks/chunk-6AJWRPTY.js";import{getRouteVersions}from"./chunks/chunk-BVH2AEFE.js";import{TRANSFORM_TYPE_LABELS,findVersionById,formatCondition,formatTransform,getRouteTypeLabel,getRoutes,getSrcSyntaxLabel,isTargetTransform,offerAutoPromote,parsePosition,parseSubcommandArgs,withGlobalFlags as withGlobalFlags2}from"./chunks/chunk-TNNEKGGF.js";import{LOCAL_SCHEDULES_SESSION_HEADER,isLocalSchedulesOrigin,readLocalSchedulesSessions}from"./chunks/chunk-SF4E3AQ3.js";import{getLinkedFlagsProject,getProjectNameFromFlags}from"./chunks/chunk-Q25FOMOX.js";import{parseSubcommandArguments,requireProjectContext,validateRequiredArguments}from"./chunks/chunk-KMPDQE4Q.js";import{formatMetricValue,generateSparkline}from"./chunks/chunk-DBPN2VGJ.js";import{OBSERVABILITY_METRICS_PATH}from"./chunks/chunk-YO6SJCZP.js";import"./chunks/chunk-IVSSTHB6.js";import{getCustomEnvironments,pickCustomEnvironment}from"./chunks/chunk-F7AVGV4Y.js";import"./chunks/chunk-GZNDA6SV.js";import{Now,printDeploymentStatus}from"./chunks/chunk-LQAQD5LG.js";import"./chunks/chunk-IZ4GFKGR.js";import{require_async_sema}from"./chunks/chunk-NZ2TFADV.js";import"./chunks/chunk-ZFRNVIHI.js";import"./chunks/chunk-TNUQME3L.js";import{applyDeprecatedTargetFlag}from"./chunks/chunk-D4TD2KWH.js";import{resolveProjectContext}from"./chunks/chunk-DX2OHM56.js";import{formatProject}from"./chunks/chunk-TD7AL545.js";import"./chunks/chunk-4JWAXIIN.js";import"./chunks/chunk-U56NHYAH.js";import{readJSONFile}from"./chunks/chunk-FQVIWQ6M.js";import"./chunks/chunk-25565AGS.js";import{getTeamBillingUrl}from"./chunks/chunk-XR6QY7RR.js";import{getAliases}from"./chunks/chunk-L6CZL2IQ.js";import{INVALID_NEXT_MESSAGE,parseNumericCursor}from"./chunks/chunk-C6GY2G73.js";import{getCommandFlags}from"./chunks/chunk-XGTKHQTT.js";import{isValidName}from"./chunks/chunk-PADL3C6Z.js";import{validateLsArgs}from"./chunks/chunk-BT5C6MCY.js";import{formatDate}from"./chunks/chunk-HRR57QNP.js";import{getInvalidSubcommand}from"./chunks/chunk-TG2RCYTH.js";import{require_format}from"./chunks/chunk-PFD7LETF.js";import{writeJsonError}from"./chunks/chunk-QCIIUQV3.js";import"./chunks/chunk-TOTTVS5P.js";import{formatTable,strlen}from"./chunks/chunk-2RXUQ72I.js";import{handleValidationError,normalizeRepeatableStringFilters,resolveTimeRange,validateIntegerRangeWithDefault,validateOptionalIntegerRange,validateTimeBound,validateTimeOrder}from"./chunks/chunk-AX3V7N44.js";import{getNextPageCommand,printNextPageCommand}from"./chunks/chunk-PMEYNJU2.js";import"./chunks/chunk-VT6RIZJH.js";import{stamp_default}from"./chunks/chunk-A2RZZQEP.js";import{ensureLink}from"./chunks/chunk-HR462OEG.js";import{getDeployment}from"./chunks/chunk-VU3RBRDH.js";import"./chunks/chunk-4VF5BZJP.js";import{require_open}from"./chunks/chunk-PVASGBEF.js";import"./chunks/chunk-6RUAAORO.js";import{table}from"./chunks/chunk-375JVQYK.js";import{getRenamedOption,renameOptionInArgs,reportRenamedOptionError,withWarnings}from"./chunks/chunk-V32V4SXB.js";import{elapsed}from"./chunks/chunk-Q7D7RGXM.js";import{getSubcommand as getSubcommand2}from"./chunks/chunk-ETV3C2CV.js";import{printUnknownCommand}from"./chunks/chunk-G7H33IKQ.js";import{KMS_ALGORITHMS,PROJECT_GRANT_POLICY_KIND,activateKeySubcommand,addGrantSubcommand,addKeySubcommand,addSubcommand7 as addSubcommand,addSubcommand9 as addSubcommand2,addToGroupSubcommand,analyzeSubcommand,createGroupSubcommand,createSubcommand5 as createSubcommand,createSubcommand8 as createSubcommand2,decideSubcommand,deleteGroupSubcommand,deleteSubcommand2 as deleteSubcommand,deleteSubcommand3,diagnoseSubcommand,disableSubcommand3 as disableSubcommand2,enableSubcommand4 as enableSubcommand2,executionsListSubcommand,executionsSubcommand,experimentsCommand,getCommandAliases,getSubcommand2 as getSubcommand,importKeySubcommand,importSubcommand2 as importSubcommand,inspectGroupSubcommand,inspectSubcommand11 as inspectSubcommand3,inspectSubcommand5 as inspectSubcommand,inspectSubcommand8 as inspectSubcommand2,instancesInspectSubcommand,instancesListSubcommand,instancesRestartSubcommand,instancesSubcommand,invokeSubcommand,isProjectGrant,issuerJwksUrl,issuerUrl,kmsCommand,listSubcommand13 as listSubcommand2,listSubcommand17 as listSubcommand3,listSubcommand20 as listSubcommand4,listSubcommand21 as listSubcommand6,listSubcommand9 as listSubcommand,listVersionsSubcommand,microfrontendsCommand,openSubcommand2 as openSubcommand,promoteSubcommand,pullSubcommand,redeployCommand,redirectsCommand,removeCommand,removeFromGroupSubcommand,removeGrantSubcommand,removeSubcommand12 as removeSubcommand,removeSubcommand14 as removeSubcommand2,reseedEnrollmentSubcommand,restartAnalysisSubcommand,restoreSubcommand,returnToDraftSubcommand,revokeKeySubcommand,scaleSubcommand,schedulesCommand,setRampSubcommand,startSubcommand,updateGrantSubcommand,updateSubcommand11 as updateSubcommand3,updateSubcommand4 as updateSubcommand,updateSubcommand8 as updateSubcommand2,uploadSubcommand}from"./chunks/chunk-FTACGWII.js";import{addSubcommand as addSubcommand3,deleteSubcommand as deleteSubcommand2,disableSubcommand,discardSubcommand,editSubcommand,enableSubcommand,exportSubcommand,inspectSubcommand as inspectSubcommand4,listSubcommand as listSubcommand5,listVersionsSubcommand as listVersionsSubcommand2,publishSubcommand,reorderSubcommand,restoreSubcommand as restoreSubcommand2,routesCommand}from"./chunks/chunk-CZOD25BC.js";import"./chunks/chunk-77LSSWXL.js";import"./chunks/chunk-MUNGQJGO.js";import"./chunks/chunk-W5GHMAHP.js";import"./chunks/chunk-ANCWFEOM.js";import"./chunks/chunk-QVMU7ZKQ.js";import"./chunks/chunk-TL4ZLZ2Q.js";import"./chunks/chunk-VD2FK6OF.js";import"./chunks/chunk-JVNIDSP5.js";import"./chunks/chunk-NLKM5LR5.js";import"./chunks/chunk-BB5UMZMF.js";import"./chunks/chunk-4LGAV2WN.js";import"./chunks/chunk-EJZNJN4N.js";import"./chunks/chunk-S5JBQCBA.js";import"./chunks/chunk-5DXC4TE2.js";import"./chunks/chunk-FAVZ6WVS.js";import"./chunks/chunk-5KE67O45.js";import{DEV_RESOURCE_TOKEN}from"./chunks/chunk-T7HE23VK.js";import"./chunks/chunk-JALVF3C2.js";import"./chunks/chunk-CUBRYWA2.js";import{printError}from"./chunks/chunk-Q4GX2UTG.js";import{help,remoteText}from"./chunks/chunk-GKALP6QD.js";import{param}from"./chunks/chunk-3G3FQYMW.js";import{getContextName,getScope}from"./chunks/chunk-TZ6MSTOI.js";import{TelemetryClient}from"./chunks/chunk-VPUYTI5E.js";import"./chunks/chunk-2EYYB6YN.js";import"./chunks/chunk-NWGBDBZI.js";import{buildCommandWithGlobalFlags,buildCommandWithYes,getErrorRecovery,openUrlInBrowserCommand,outputActionRequired,outputAgentError,withGlobalFlags}from"./chunks/chunk-ZUI5EMXD.js";import"./chunks/chunk-FY4ORPZH.js";import{getLinkedProject,getProjectByNameOrId,humanizePath,require_dist2,require_lib,require_pluralize,responseError,sleep}from"./chunks/chunk-KNAOHPOI.js";import{ALIGNED_LABEL_WIDTH,formatAlignedLabel,printAlignedLabel}from"./chunks/chunk-64UCX5JM.js";import{ua_default}from"./chunks/chunk-ITQPDXXA.js";import"./chunks/chunk-56UH6NQ3.js";import"./chunks/chunk-4NTBYNFR.js";import{getTypedOptionName,isArgumentError,parseArguments,takeCommand}from"./chunks/chunk-C4N4LKPM.js";import{getTeamByIdOrSlug}from"./chunks/chunk-2VBFQZ72.js";import{validateJsonOutput,wantsMachineReadableOutput,warnDeprecatedInput,warnDeprecatedOption,warnDeprecatedSubcommand}from"./chunks/chunk-GJCVOEC2.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{NowError,ProjectNotFound,isAPIError}from"./chunks/chunk-T2FCF46I.js";import{cmd,getCommandName,getCommandNamePlain}from"./chunks/chunk-VRH7LWOC.js";import"./chunks/chunk-DBT6PGEH.js";import{emoji,link_default,output_manager_default,prependEmoji}from"./chunks/chunk-W634OFUG.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,getGlobalFlagsFromArgs,getProjectOptionFromArgs,getSameSubcommandSuggestionFlags,quoteArg}from"./chunks/chunk-CKTLP5GX.js";import"./chunks/chunk-2BKALEOP.js";import{require_source}from"./chunks/chunk-NB2WLB3J.js";import"./chunks/chunk-ISWW3DKF.js";import"./chunks/chunk-BULSRTQE.js";import"./chunks/chunk-BRQUZ5NC.js";import"./chunks/chunk-D6REP5QQ.js";import"./chunks/chunk-FBYA6LLM.js";import{directFetch,getFetchDispatcher}from"./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-CFYTFXX6.js";import{__toESM}from"./chunks/chunk-BZENIQ7N.js";var DaemonsTelemetryClient=class extends TelemetryClient{constructor(){super(...arguments);this.sub=subcommand=>value=>this.trackSubcommand(subcommand,value);this.arg=arg=>value=>this.trackCliArgument({arg,value:value&&this.redactedValue});this.option=option=>value=>this.trackRedactedCliOption(option,value);this.flag=flag=>value=>{value&&this.trackCliFlag(flag)};this.trackCliSubcommandList=this.sub("list");this.trackCliSubcommandScale=this.sub("scale");this.trackCliSubcommandInstances=this.sub("instances");this.trackCliSubcommandInspect=this.sub("inspect");this.trackCliSubcommandRestart=this.sub("restart");this.trackCliArgumentDaemon=this.arg("daemon");this.trackCliArgumentInstance=this.arg("instance");this.trackCliOptionNext=this.option("next");this.trackCliOptionSince=this.option("since");this.trackCliOptionUntil=this.option("until");this.trackCliFlagReset=this.flag("reset");this.trackCliFlagJson=this.flag("json")}trackSubcommand(subcommand,value){this.trackCliSubcommand({subcommand,value})}trackCliArgumentOverrides(value){let count=value.length?String(value.length):void 0;this.trackCliArgument({arg:"overrides",value:count})}trackCliOptionLimit(value){value!==void 0&&this.trackCliOption({option:"limit",value:String(value)})}trackOptions(flags){this.trackCliOptionProject(flags["--project"]),this.trackCliOptionLimit(flags["--limit"]),this.trackCliOptionNext(flags["--next"]),this.trackCliOptionSince(flags["--since"]),this.trackCliOptionUntil(flags["--until"]),this.trackCliFlagReset(flags["--reset"]),this.trackCliOptionFormat(flags["--format"]),this.trackCliFlagJson(flags["--json"])}};var import_chalk2=__toESM(require_source(),1);var import_chalk=__toESM(require_source(),1),import_ms=__toESM(require_ms(),1);function isJsonOutput(client){return wantsMachineReadableOutput("daemons",client.argv)||client.nonInteractive}function reportError(client,err,exitCode=1){if(!isJsonOutput(client))return printError(err,client),exitCode;let apiError=isAPIError(err)?err:void 0,reason=exitCode===2?AGENT_REASON.INVALID_ARGUMENTS:AGENT_REASON.API_ERROR,message=exitCode===2&&err instanceof Error?err.message:"Couldn't complete the daemon command.";return writeJsonError(client,{status:AGENT_STATUS.ERROR,reason,message,...apiError&&{...getErrorRecovery(apiError,client),data:{httpStatus:apiError.status}}},exitCode)}function toDaemon(daemon){if(!("replicas"in daemon))return daemon;let{replicas:instances,config,...rest}=daemon;if(!config)return{...rest,instances};let{replicas,configuredReplicas,...restConfig}=config;return{...rest,config:{...restConfig,instances:replicas,configuredInstances:configuredReplicas},instances}}var DAEMON_NAME_PATTERN=/^[a-zA-Z0-9_-]+$/;function instanceIdArg(client,args,usage){return args.length===0?failure(client,AGENT_REASON.INVALID_ARGUMENTS,"An instance ID is required.",{command:"instances list",when:"List available instances"},2):args.length===1&&/^dmni_[0-9a-hjkmnp-tv-z]{26}$/.test(args[0])?args[0]:usageError(client,"Expected one instance ID, like dmni_01k7d0q5w3x8y9z0a1b2c3d4e5.",usage)}function parse(client,argv,options,usage){let parsed;try{let spec=getFlagsSpecification(options);parsed=parseArguments(argv,spec)}catch(err){return reportError(client,err,2)}let telemetry=new DaemonsTelemetryClient({opts:{store:client.telemetryEventStore}});telemetry.trackOptions(parsed.flags);let format2=validateJsonOutput(parsed.flags);if(!format2.valid)return usageError(client,format2.error,usage);let asJson=format2.jsonOutput||client.nonInteractive;return{...parsed,asJson,telemetry}}async function resolveProject(client,project){let link=isJsonOutput(client)?await resolveProjectContext({client,projectNameOrId:project,projectNotFoundHandling:"return",quiet:!0}):await requireProjectContext(client,"daemons",project);return typeof link=="number"?link:link.status==="error"?reportError(client,new Error("Could not resolve project context."),link.exitCode):link.status!=="linked"?failure(client,project?AGENT_REASON.PROJECT_NOT_FOUND:AGENT_REASON.NOT_LINKED,project?`Couldn't find project ${project}.`:"No linked project found.",{command:"list --project <PROJECT>",when:"Select an existing project"}):(client.config.currentTeam=link.org.type==="team"?link.org.id:void 0,{...link,target:`${link.org.slug}/${link.project.name}`})}function daemonsCommand(client,command2){return withGlobalFlags(client,`daemons ${command2}`,{preserveProject:!0})}function failure(client,reason,message,next,exitCode=1){let command2=daemonsCommand(client,next.command);return output_manager_default.stopSpinner(),isJsonOutput(client)?writeJsonError(client,{status:AGENT_STATUS.ERROR,reason,message,next:[{...next,command:command2}]},exitCode):(output_manager_default.fatal(message),output_manager_default.print(`
8
8
  ${next.when}:
9
9
  ${cmd(command2)}
10
10
  `),exitCode)}function usageError(client,message,usage){let next={command:usage,when:"Usage"};return failure(client,AGENT_REASON.INVALID_ARGUMENTS,message,next,2)}function printJson(client,value){return client.stdout.write(`${JSON.stringify(value,null,2)}
@@ -247,7 +247,7 @@ ${import_chalk29.default.gray("No changes detected from current production versi
247
247
  `),output_manager_default.print(` ${import_chalk34.default.gray("ID:")} ${route2.id}
248
248
  `),output_manager_default.print(`
249
249
  ${import_chalk34.default.bold("Staging version:")} ${version.id}
250
- `),await offerAutoPromote(client,projectId,version,!!existingStagingVersion,{teamId,skipPrompts}),0}catch(e){let error=e;return client.nonInteractive&&outputAgentError(client,{status:AGENT_STATUS.ERROR,reason:AGENT_REASON.ROUTE_CREATE_FAILED,message:"Route creation failed for this project. See hint for next steps.",hint:error.message||"Use `vercel routes list --diff` to inspect staged routes, then adjust options and retry.",next:[{command:withGlobalFlags2(client,"routes list --diff"),when:"to inspect staged state"}]},1),output_manager_default.error(error.message||"Failed to create route"),1}}var COMMAND_CONFIG5={list:getCommandAliases(listSubcommand5),"list-versions":getCommandAliases(listVersionsSubcommand2),inspect:getCommandAliases(inspectSubcommand4),add:getCommandAliases(addSubcommand3),update:getCommandAliases(editSubcommand),remove:getCommandAliases(deleteSubcommand2),enable:getCommandAliases(enableSubcommand),disable:getCommandAliases(disableSubcommand),move:getCommandAliases(reorderSubcommand),export:getCommandAliases(exportSubcommand),publish:getCommandAliases(publishSubcommand),restore:getCommandAliases(restoreSubcommand2),"discard-staging":getCommandAliases(discardSubcommand)};async function main4(client){let telemetry=new RoutesTelemetryClient({opts:{store:client.telemetryEventStore}}),parsedArgs,flagsSpecification=getFlagsSpecification(routesCommand.options);try{parsedArgs=parseArguments(client.argv.slice(2),flagsSpecification,{permissive:!0})}catch(err){return printError(err),2}let subArgs=parsedArgs.args.slice(1),{subcommand,args,subcommandOriginal}=getSubcommand2(subArgs,COMMAND_CONFIG5),needHelp=parsedArgs.flags["--help"];if(!subcommand&&needHelp)return telemetry.trackCliFlagHelp("routes"),output_manager_default.print(help(routesCommand,{stream:client.stderr,columns:client.stderr.columns})),0;function printHelp(command2){output_manager_default.print(help(command2,{stream:client.stderr,parent:routesCommand,columns:client.stderr.columns}))}switch(subcommand&&!needHelp&&telemetry.trackCliOptionProject(getProjectOptionFromArgs(args)),subcommand){case"list":return needHelp?(telemetry.trackCliFlagHelp("routes",subcommandOriginal),printHelp(listSubcommand5),0):(telemetry.trackCliSubcommandList(subcommandOriginal),list3(client,args));case"list-versions":return needHelp?(telemetry.trackCliFlagHelp("routes",subcommandOriginal),printHelp(listVersionsSubcommand2),0):(telemetry.trackCliSubcommandListVersions(subcommandOriginal),subcommandOriginal==="ls-versions"&&warnDeprecatedSubcommand(client,"routes ls-versions","routes list-versions"),listVersions2(client,args));case"inspect":return needHelp?(telemetry.trackCliFlagHelp("routes",subcommandOriginal),printHelp(inspectSubcommand4),0):(telemetry.trackCliSubcommandInspect(subcommandOriginal),inspect3(client,args));case"add":return needHelp?(telemetry.trackCliFlagHelp("routes",subcommandOriginal),printHelp(addSubcommand3),0):(telemetry.trackCliSubcommandAdd(subcommandOriginal),add3(client,args));case"update":return needHelp?(telemetry.trackCliFlagHelp("routes",subcommandOriginal),printHelp(editSubcommand),0):(telemetry.trackCliSubcommandUpdate(subcommandOriginal),subcommandOriginal==="edit"&&warnDeprecatedSubcommand(client,"routes edit","routes update"),(await import("./chunks/edit-6BQ7FZC4.js")).default(client,args));case"remove":return needHelp?(telemetry.trackCliFlagHelp("routes",subcommandOriginal),printHelp(deleteSubcommand2),0):(telemetry.trackCliSubcommandRemove(subcommandOriginal),subcommandOriginal==="delete"&&warnDeprecatedSubcommand(client,"routes delete","routes remove"),(await import("./chunks/delete-QNSKEIGO.js")).default(client,args));case"enable":return needHelp?(telemetry.trackCliFlagHelp("routes",subcommandOriginal),printHelp(enableSubcommand),0):(telemetry.trackCliSubcommandEnable(subcommandOriginal),(await import("./chunks/enable-OK4MR3Z6.js")).default(client,args));case"disable":return needHelp?(telemetry.trackCliFlagHelp("routes",subcommandOriginal),printHelp(disableSubcommand),0):(telemetry.trackCliSubcommandDisable(subcommandOriginal),(await import("./chunks/disable-SBFW3F7B.js")).default(client,args));case"move":return needHelp?(telemetry.trackCliFlagHelp("routes",subcommandOriginal),printHelp(reorderSubcommand),0):(telemetry.trackCliSubcommandMove(subcommandOriginal),subcommandOriginal==="reorder"&&warnDeprecatedSubcommand(client,"routes reorder","routes move"),(await import("./chunks/reorder-KUQ5EQBV.js")).default(client,args));case"export":return needHelp?(telemetry.trackCliFlagHelp("routes",subcommandOriginal),printHelp(exportSubcommand),0):(telemetry.trackCliSubcommandExport(subcommandOriginal),(await import("./chunks/export-N5F7EY7B.js")).default(client,args));case"publish":return needHelp?(telemetry.trackCliFlagHelp("routes",subcommandOriginal),printHelp(publishSubcommand),0):(telemetry.trackCliSubcommandPublish(subcommandOriginal),(await import("./chunks/publish-LH5CIXCP.js")).default(client,args));case"restore":return needHelp?(telemetry.trackCliFlagHelp("routes",subcommandOriginal),printHelp(restoreSubcommand2),0):(telemetry.trackCliSubcommandRestore(subcommandOriginal),(await import("./chunks/restore-L3T5KOG7.js")).default(client,args));case"discard-staging":return needHelp?(telemetry.trackCliFlagHelp("routes",subcommandOriginal),printHelp(discardSubcommand),0):(telemetry.trackCliSubcommandDiscardStaging(subcommandOriginal),(await import("./chunks/discard-DUZR3OWZ.js")).default(client,args));default:return output_manager_default.error(getInvalidSubcommand(COMMAND_CONFIG5)),output_manager_default.print(help(routesCommand,{stream:client.stderr,columns:client.stderr.columns})),2}}var SchedulesTelemetryClient=class extends TelemetryClient{trackCliFlagLocal(local){local&&this.trackCliFlag("local")}trackCliSubcommandInspect(actual){this.trackCliSubcommand({subcommand:"inspect",value:actual})}trackCliSubcommandList(actual){this.trackCliSubcommand({subcommand:"list",value:actual})}trackCliSubcommandCreate(actual){this.trackCliSubcommand({subcommand:"create",value:actual})}trackCliSubcommandUpdate(actual){this.trackCliSubcommand({subcommand:"update",value:actual})}trackCliSubcommandEnable(actual){this.trackCliSubcommand({subcommand:"enable",value:actual})}trackCliSubcommandDisable(actual){this.trackCliSubcommand({subcommand:"disable",value:actual})}trackCliSubcommandInvoke(actual){this.trackCliSubcommand({subcommand:"invoke",value:actual})}trackCliSubcommandDelete(actual){this.trackCliSubcommand({subcommand:"delete",value:actual})}trackCliSubcommandExecutions(actual){this.trackCliSubcommand({subcommand:"executions",value:actual})}trackCliSubcommandExecutionsList(actual){this.trackCliSubcommand({subcommand:"executions:list",value:actual})}};var import_ms8=__toESM(require_ms(),1);var SchedulesActionTelemetryClient=class extends TelemetryClient{trackCliArgumentName(name){name&&this.trackCliArgument({arg:"name",value:this.redactedValue})}trackCliOptionEnvironment(environment){environment&&this.trackCliOption({option:"environment",value:this.redactedValue})}trackCliOptionGitBranch(gitBranch){gitBranch&&this.trackCliOption({option:"git-branch",value:this.redactedValue})}trackCliOptionUser(user){user&&this.trackCliOption({option:"user",value:this.redactedValue})}trackCliOptionNamespace(namespace){namespace&&this.trackCliOption({option:"namespace",value:this.redactedValue})}trackCliOptionUntil(until){until&&this.trackCliOption({option:"until",value:this.redactedValue})}trackCliOptionFor(duration){duration&&this.trackCliOption({option:"for",value:this.redactedValue})}trackCliOptionFormat(format2){format2&&this.trackCliOption({option:"format",value:format2})}trackCliFlagLocal(local){local&&this.trackCliFlag("local")}trackCliFlagJson(json){json&&this.trackCliFlag("json")}};function asSentence(value){let trimmed=value.trim();return/[.!?]$/.test(trimmed)?trimmed:`${trimmed}.`}function apiErrorDetail(error){let message=error.serverMessage?.trim();return message&&message!=="Response Error"?asSentence(message):void 0}function requestDescription(context){return context.action==="list"?`list schedules in namespace ${context.namespace}`:context.action==="list-executions"?`list executions for schedule ${context.namespace}/${context.name}`:`${context.action} schedule ${context.namespace}/${context.name}`}function ambiguousInvokeError(local){return{reason:AGENT_REASON.API_ERROR,message:"The schedule invocation may have been accepted, but the CLI did not receive confirmation. Check whether the schedule ran before invoking it again."+(local?` Inspect the ${getCommandName("dev")} output for local executions.`:""),retryable:!1,userActionRequired:!0}}function getSchedulesError(client,error,context){if(!isAPIError(error))return context.action==="invoke"?ambiguousInvokeError(context.local):context.local?{reason:AGENT_REASON.API_ERROR,message:`${error instanceof Error?asSentence(error.message):"Failed to connect to local Schedules."} Check the local session and restart ${getCommandName("dev")} in this project if needed.`,retryable:!1,userActionRequired:!0}:{reason:AGENT_REASON.API_ERROR,message:"Failed to connect to the Schedules API. Check your connection and try again.",retryable:!0};let serverMessage=error.serverMessage?.trim().toLowerCase();if(context.local&&context.action==="invoke"&&error.status>=500)return ambiguousInvokeError(!0);if(context.local&&(error.status===401||error.status===402||error.status===403||/(?:project|session)_(?:mismatch|not_found|expired)/.test(error.code??"")||/^(?:local )?(?:project|session)\b/.test(serverMessage??"")))return{reason:AGENT_REASON.API_ERROR,message:`${apiErrorDetail(error)??"The local Schedules session is unavailable."} Restart ${getCommandName("dev")} in this project and use its local session.`,retryable:!1,userActionRequired:!0};if(error.code==="schedule_already_exists")return{reason:AGENT_REASON.SCHEDULE_ALREADY_EXISTS,message:context.name?`Schedule ${context.namespace}/${context.name} already exists. Choose a different name or update the existing schedule.`:"The schedule already exists. Choose a different name or update the existing schedule.",retryable:!1};if(error.code==="schedule_single_at_passed")return{reason:AGENT_REASON.SCHEDULE_SINGLE_AT_PASSED,message:context.name?`Schedule ${context.namespace}/${context.name} has passed its scheduled time and can't be modified. Delete it or create a new schedule.`:"The schedule has passed its scheduled time and can't be modified. Delete it or create a new schedule.",retryable:!1};if(error.code==="schedule_already_active"){let schedule=context.name?[quoteArg(context.name),`--namespace ${quoteArg(context.namespace)}`,...context.trackArgs??[]].join(" "):void 0;return{reason:AGENT_REASON.SCHEDULE_ALREADY_ACTIVE,message:context.name?`Schedule ${context.namespace}/${context.name} is already enabled without an end time. Disable it first, then enable it with --until or --for.`:"The schedule is already enabled without an end time. Disable it first, then enable it with --until or --for.",retryable:!1,...schedule&&{next:[{command:buildCommandWithGlobalFlags(client.argv,`schedules disable ${schedule}`,void 0,{excludeFlags:["--yes","--until","--for"]}),when:"Disable the schedule before enabling it with an end time"}]}}}if(error.code==="static_schedule"){let schedule=context.name?[quoteArg(context.name),`--namespace ${quoteArg(context.namespace)}`,...context.trackArgs??[]].join(" "):void 0;return{reason:AGENT_REASON.STATIC_SCHEDULE,message:context.name?`Static schedule ${context.namespace}/${context.name} can't be updated or deleted. Enable or disable it instead.`:"Static schedules can't be updated or deleted. Enable or disable them instead.",retryable:!1,...schedule&&{next:[{command:buildCommandWithGlobalFlags(client.argv,`schedules enable ${schedule}`,void 0,{excludeFlags:["--yes"]}),when:"Enable the static schedule"},{command:buildCommandWithGlobalFlags(client.argv,`schedules disable ${schedule}`,void 0,{excludeFlags:["--yes"]}),when:"Disable the static schedule"}]}}}if(error.code==="invalid_cron_expression")return{reason:AGENT_REASON.INVALID_CRON_EXPRESSION,message:`${apiErrorDetail(error)??"The cron expression is invalid."} Check \`--cron\` and try again.`,retryable:!1};if(error.code==="invalid_jitter")return{reason:AGENT_REASON.INVALID_JITTER,message:apiErrorDetail(error)??"The schedule jitter setting is invalid.",retryable:!1};if(error.code==="jitter_exceeds_cadence")return{reason:AGENT_REASON.JITTER_EXCEEDS_CADENCE,message:`${apiErrorDetail(error)??"The schedule jitter exceeds the interval between runs."} Increase the interval between runs.`,retryable:!1};if(error.code==="single_at_too_soon")return{reason:AGENT_REASON.SINGLE_AT_TOO_SOON,message:`${apiErrorDetail(error)??"The one-time schedule is too soon."} Choose a later value for \`--at\`.`,retryable:!1};if(error.code==="payload_too_large")return{reason:AGENT_REASON.SCHEDULE_PAYLOAD_TOO_LARGE,message:`${apiErrorDetail(error)??"The schedule payload is too large."} Reduce the value passed to \`--payload\` and try again.`,retryable:!1};if(error.code==="payload_store_failed")return{reason:AGENT_REASON.SCHEDULE_PAYLOAD_STORE_FAILED,message:"Failed to store the schedule payload. Try again later.",retryable:!0};if(error.code==="service_unavailable")return{reason:AGENT_REASON.SCHEDULE_SERVICE_UNAVAILABLE,message:"Schedule execution history is temporarily unavailable. Try again later.",retryable:!0};if(error.code==="service_error")return{reason:AGENT_REASON.SCHEDULE_SERVICE_ERROR,message:error.status>=500?"Failed to load schedule execution history. Try again later.":"Failed to load schedule execution history. Choose a shorter time range and try again.",retryable:error.status>=500};if(error.status===400){let detail2=apiErrorDetail(error);return{reason:AGENT_REASON.INVALID_ARGUMENTS,message:`The Schedules API rejected the request.${detail2?` ${detail2}`:""}`,retryable:!1}}if(error.status===401&&error.code==="missing_team_param")return{reason:AGENT_REASON.MISSING_SCOPE,message:"Schedules requires a team project. Run `vercel link` to link a project owned by a team.",retryable:!1,userActionRequired:!0};if(error.status===401){let tokenSource=client.authConfig.tokenSource;return{reason:AGENT_REASON.LOGIN_REQUIRED,message:tokenSource==="env"?"Schedules API authentication failed. Replace VERCEL_TOKEN, or unset it to use your saved login.":tokenSource==="flag"?"Schedules API authentication failed. Replace the token passed to `--token`.":`Schedules API authentication failed. Run ${getCommandName("login")} and try again.`,retryable:!1,userActionRequired:!0}}if(error.status===402){let detail2=apiErrorDetail(error);return{reason:AGENT_REASON.PLAN_UPGRADE_REQUIRED,message:`Schedules isn't available for this team.${detail2?` ${detail2}`:""} Ask a team owner to review the requirement.`,retryable:!1,userActionRequired:!0}}if(error.status===403&&error.code==="not_enabled"||!context.local&&error.status===404&&(serverMessage==="not found"||serverMessage==="not found."))return{reason:AGENT_REASON.SCHEDULES_NOT_ENABLED,message:"Vercel Schedules is not enabled for this team.",retryable:!1,userActionRequired:!0};if(error.status===403)return{reason:AGENT_REASON.PERMISSION_DENIED,message:"Can't access Schedules with the current credentials and team. Check the token and selected team. If both are correct, ask a team owner for access.",retryable:!1,userActionRequired:!0};if(error.status===404&&(serverMessage==="project not found"||serverMessage==="project not found."))return{reason:AGENT_REASON.PROJECT_NOT_FOUND,message:"The linked project isn't available to this team. Run `vercel link` to update the project link.",retryable:!1,userActionRequired:!0};if(error.status===404&&context.action!=="create"&&context.action!=="list"&&context.name)return{reason:AGENT_REASON.NOT_FOUND,message:`Schedule not found: ${context.namespace}/${context.name}.`,retryable:!1};if(error.status===429){let retryAfterMs=typeof error.retryAfterMs=="number"&&error.retryAfterMs>0?error.retryAfterMs:void 0;return{reason:AGENT_REASON.RATE_LIMITED,message:retryAfterMs===void 0?"The Schedules API request limit was reached. Wait and try again.":`The Schedules API request limit was reached. Try again in ${Math.ceil(retryAfterMs/1e3)} second${retryAfterMs>1e3?"s":""}.`,retryable:!0,...retryAfterMs&&{retryAfterMs}}}if(error.status>=500)return context.action==="invoke"?ambiguousInvokeError(context.local):{reason:AGENT_REASON.API_ERROR,message:context.local?`Local Schedules is unavailable. Check the ${getCommandName("dev")} output and restart the local session if needed.`:"The Schedules API is temporarily unavailable. Try again later.",retryable:!0};let detail=apiErrorDetail(error);return{reason:AGENT_REASON.API_ERROR,message:`Failed to ${requestDescription(context)}.${detail?` ${detail}`:""}`,retryable:!1}}function handleSchedulesApiError(client,error,context){let details=getSchedulesError(client,error,context);return client.nonInteractive?(outputAgentError(client,{status:AGENT_STATUS.ERROR,...details},1),1):(output_manager_default.fatal(details.message),1)}var DEFAULT_SCHEDULES_BASE_URL="https://vercel-schedules.com",DEFAULT_SCHEDULE_NAMESPACE="default",DEFAULT_SCHEDULES_LIMIT=20,SCHEDULES_REQUEST_SOURCE_HEADER="x-vss-client",LocalSchedulesError=class extends Error{constructor(message){super(message),this.name="LocalSchedulesError"}};function sanitizeSchedule(schedule){let{trackId:_trackId,...publicSchedule}=schedule;return publicSchedule}var SchedulesClient=class{constructor(client,options){this.client=client;this.options=options;if("local"in options){if(!isLocalSchedulesOrigin(options.local.origin))throw new LocalSchedulesError("Local Schedules requires an HTTP 127.0.0.1 endpoint with a valid port.");this.baseUrl=new URL(options.local.origin);return}this.baseUrl=new URL(options.baseUrl??process.env.VERCEL_SCHEDULE_BASE_URL??DEFAULT_SCHEDULES_BASE_URL)}get localOrigin(){return"local"in this.options?this.baseUrl.origin:void 0}async request(path,options={}){let url=new URL(path,this.baseUrl);if("local"in this.options){let session=this.options.local;url.searchParams.set("projectId",session.projectId);let response;try{response=await directFetch(url.href,{method:options.method??"GET",headers:{authorization:`Bearer ${DEV_RESOURCE_TOKEN}`,[LOCAL_SCHEDULES_SESSION_HEADER]:session.id,[SCHEDULES_REQUEST_SOURCE_HEADER]:"cli",...options.body===void 0?{}:{"content-type":"application/json"}},body:options.body===void 0?void 0:JSON.stringify(options.body),redirect:"manual",signal:AbortSignal.timeout(3e4)})}catch{throw new LocalSchedulesError(`Could not reach local Schedules at ${session.origin}. No cloud request was made.`)}if(response.status>=300&&response.status<400||response.headers.get(LOCAL_SCHEDULES_SESSION_HEADER)!==session.id)throw await response.body?.cancel(),new LocalSchedulesError("The local Schedules session changed or returned an unexpected response. Restart vercel dev and try again.");if(!response.ok)throw await responseError(response);if(response.status===204)return;try{return await response.json()}catch{throw new LocalSchedulesError("The local Schedules session returned an invalid JSON response.")}}url.searchParams.set("projectId",this.options.projectId),this.options.environment!==void 0&&url.searchParams.set("env",this.options.environment),this.options.gitBranch!==void 0&&url.searchParams.set("branch",this.options.gitBranch),this.options.user!==void 0&&url.searchParams.set("user",this.options.user);let headers=new globalThis.Headers(options.headers);return headers.set(SCHEDULES_REQUEST_SOURCE_HEADER,"cli"),this.client.fetch(url.href,{...options,headers,accountId:this.options.ownerId,useCurrentTeam:!1})}schedulePath(name,namespace,suffix=""){return`${`/v1/schedules/${encodeURIComponent(name)}${suffix}`}?${new URLSearchParams({namespace})}`}async create({target,...params}){let schedule=await this.request("/v1/schedules",{method:"POST",bailOn429:!0,body:{...params,target:{type:"queue",topic:target.topic}}});return sanitizeSchedule(schedule)}async get({name,namespace=DEFAULT_SCHEDULE_NAMESPACE}){let schedule=await this.request(this.schedulePath(name,namespace),{bailOn429:!0});return sanitizeSchedule(schedule)}async list({namespace=DEFAULT_SCHEDULE_NAMESPACE,cursor,limit=DEFAULT_SCHEDULES_LIMIT}={}){let searchParams=new URLSearchParams({namespace,limit:String(limit)});cursor!==void 0&&searchParams.set("cursor",cursor);let response=await this.request(`/v1/schedules?${searchParams}`,{bailOn429:!0});return{data:response.data.map(sanitizeSchedule),cursor:response.cursor}}async update({name,namespace=DEFAULT_SCHEDULE_NAMESPACE,target,...params}){let schedule=await this.request(this.schedulePath(name,namespace),{method:"PATCH",bailOn429:!0,body:{...params,...target?{target:{type:"queue",topic:target.topic}}:{}}});return sanitizeSchedule(schedule)}async delete({name,namespace=DEFAULT_SCHEDULE_NAMESPACE}){return this.request(this.schedulePath(name,namespace),{method:"DELETE",bailOn429:!0})}async enable({name,namespace=DEFAULT_SCHEDULE_NAMESPACE,activeUntil}){return this.changeState(name,namespace,"enable",activeUntil===void 0?void 0:{until:activeUntil})}async disable({name,namespace=DEFAULT_SCHEDULE_NAMESPACE}){return this.changeState(name,namespace,"disable")}async changeState(name,namespace,action,body){let schedule=await this.request(this.schedulePath(name,namespace,`/${action}`),{method:"POST",bailOn429:!0,...body&&{body}});return sanitizeSchedule(schedule)}async invoke({name,namespace=DEFAULT_SCHEDULE_NAMESPACE}){await this.request(this.schedulePath(name,namespace,"/invoke"),{method:"POST",bailOn429:!0,retry:{retries:0}})}async listExecutions({name,namespace=DEFAULT_SCHEDULE_NAMESPACE,cursor,limit=DEFAULT_SCHEDULES_LIMIT,sort,from,to,executionId}){if("local"in this.options)throw new LocalSchedulesError("Execution history is not supported for local Schedules. Inspect the vercel dev output for local executions.");let searchParams=new URLSearchParams({limit:String(limit)});return cursor!==void 0&&searchParams.set("cursor",cursor),sort!==void 0&&searchParams.set("sort",sort),from!==void 0&&searchParams.set("from",String(from)),to!==void 0&&searchParams.set("to",String(to)),executionId!==void 0&&searchParams.set("executionId",executionId),this.request(`${this.schedulePath(name,namespace,"/executions")}&${searchParams}`,{bailOn429:!0})}};async function createLocalSchedulesClient(client){let sessions=await readLocalSchedulesSessions(client.cwd);if(sessions.length===0)throw new LocalSchedulesError("No running local Schedules session was found in this directory. Start vercel dev here, or use --cwd to select its project directory.");if(sessions.length>1)throw new LocalSchedulesError("Multiple vercel dev sessions are running in this directory. Stop the extra instances before using schedules --local.");let[session]=sessions,response;try{response=await directFetch(`${session.origin}/v1/info`,{headers:{authorization:`Bearer ${DEV_RESOURCE_TOKEN}`,[LOCAL_SCHEDULES_SESSION_HEADER]:session.id,[SCHEDULES_REQUEST_SOURCE_HEADER]:"cli"},redirect:"manual",signal:AbortSignal.timeout(2e3)})}catch{throw new LocalSchedulesError(`The local Schedules session at ${session.origin} is unavailable. Restart vercel dev in this directory. No cloud request was made.`)}if(!response.ok||response.headers.get(LOCAL_SCHEDULES_SESSION_HEADER)!==session.id)throw await response.body?.cancel(),new LocalSchedulesError("The local Schedules session is stale, not ready, or incompatible. Restart vercel dev in this directory.");let info;try{info=await response.json()}catch{throw new LocalSchedulesError("The local Schedules session returned invalid metadata. Restart vercel dev in this directory.")}if(!info||info.version!==session.version||info.id!==session.id||info.pid!==session.pid||info.cwd!==session.cwd||info.origin!==session.origin||info.projectId!==session.projectId)throw new LocalSchedulesError("The local Schedules session does not match this project instance. Restart vercel dev in this directory.");return new SchedulesClient(client,{local:session})}var import_ms7=__toESM(require_ms(),1),MAX_IDENTIFIER_LENGTH=256,IDENTIFIER_PATTERN=/^[0-9A-Za-z][0-9A-Za-z._-]*$/,MAX_QUEUE_TOPIC_LENGTH=256,QUEUE_TOPIC_PATTERN=/^[A-Za-z0-9_-]+$/,MAX_JITTER_MINUTES=15,LOCAL_MINUTE_DATETIME_PATTERN=/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2})$/,LOCAL_SECOND_DATETIME_PATTERN=/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})$/,TIMEZONE_PATTERN=/^[A-Za-z][A-Za-z0-9_+/-]*$/;function validateScheduleIdentifier(value,label){if(value.length>MAX_IDENTIFIER_LENGTH)return`${label} must be at most ${MAX_IDENTIFIER_LENGTH} characters.`;if(!IDENTIFIER_PATTERN.test(value))return`${label} must start with a letter or number and can contain only letters, numbers, periods, underscores, and hyphens.`}function validateScheduleTimezone(value){if(value!==void 0){if(value.length===0||value.length>50||!TIMEZONE_PATTERN.test(value))return"`--timezone` must be a valid IANA timezone.";try{new Intl.DateTimeFormat("en-US",{timeZone:value})}catch{return"`--timezone` must be a valid IANA timezone."}}}function validateScheduleQueueTopic(value){if(value.length>MAX_QUEUE_TOPIC_LENGTH||!QUEUE_TOPIC_PATTERN.test(value))return"`--topic` must be 1\u2013256 characters and contain only letters, numbers, underscores, and hyphens."}function normalizeLocalDatetime(value){let secondMatch=LOCAL_SECOND_DATETIME_PATTERN.exec(value);if(secondMatch){if(secondMatch[6]!=="00")return}else LOCAL_MINUTE_DATETIME_PATTERN.test(value)&&(value=`${value}:00`);let match=LOCAL_SECOND_DATETIME_PATTERN.exec(value);if(!match)return;let[,yearValue,monthValue,dayValue,hourValue,minuteValue]=match,year=Number(yearValue),month=Number(monthValue),day=Number(dayValue),hour=Number(hourValue),minute=Number(minuteValue),daysInMonth=[31,year%4===0&&(year%100!==0||year%400===0)?29:28,31,30,31,30,31,31,30,31,30,31];if(!(month<1||month>12||day<1||day>daysInMonth[month-1]||hour<0||hour>23||minute<0||minute>59))return value}function parseScheduleExpression(cron,at,required){if(cron!==void 0&&at!==void 0)return{valid:!1,error:"Use either `--cron` or `--at`, not both."};if(cron!==void 0)return cron.trim()?{valid:!0,value:{type:"cron",cron}}:{valid:!1,error:"`--cron` cannot be empty."};if(at!==void 0){let normalized=normalizeLocalDatetime(at);return normalized===void 0?{valid:!1,error:"`--at` must use YYYY-MM-DDTHH:mm or YYYY-MM-DDTHH:mm:00 without a timezone suffix. Use `--timezone` to select the timezone."}:{valid:!0,value:{type:"single",at:normalized}}}return required?{valid:!1,error:"A schedule expression is required. Use `--cron` or `--at`."}:{valid:!0,value:void 0}}function validateJitter(value){return!Number.isInteger(value)||value<1||value>MAX_JITTER_MINUTES?{valid:!1,error:"`--jitter` must be an integer between 1 and 15."}:{valid:!0,value}}function parseCreateJitter(value){return value===void 0?{valid:!0,value:void 0}:validateJitter(value)}function parseUpdateJitter(value){return value===void 0?{valid:!0,value:void 0}:value==="none"?{valid:!0,value:null}:validateJitter(Number(value))}function parseSchedulePayload(value){if(value===void 0)return{valid:!0,value:void 0};try{return{valid:!0,value:JSON.parse(value)}}catch{return{valid:!1,error:"`--payload` must be valid JSON."}}}var UNIX_MILLISECONDS_PATTERN=/^\d+$/,ISO_DATE_PATTERN=/^(\d{4})-(\d{2})-(\d{2})/,DURATION_PATTERN=/^\d+(?:\.\d+)?\s*[a-z]+$/i;function parseEnableUntil(until,duration,now=Date.now()){if(until!==void 0&&duration!==void 0)return{valid:!1,error:"`--until` and `--for` cannot be used together."};if(duration!==void 0){let durationMs=DURATION_PATTERN.test(duration.trim())?(0,import_ms7.default)(duration.trim()):void 0;return durationMs===void 0||!(durationMs>0)?{valid:!1,error:"`--for` must be a duration such as 30m, 5h, or 10s."}:{valid:!0,value:now+durationMs}}if(until===void 0)return{valid:!0,value:void 0};let untilMs,isoDate=ISO_DATE_PATTERN.exec(until);if(UNIX_MILLISECONDS_PATTERN.test(until))untilMs=Number(until);else if(isoDate){let[,year,month,day]=isoDate.map(Number),daysInMonth=new Date(Date.UTC(year,month,0)).getUTCDate();untilMs=day>=1&&day<=daysInMonth?Date.parse(until):NaN}else return{valid:!1,error:DURATION_PATTERN.test(until.trim())?`\`--until\` must be a time, not a duration. Use \`--for ${until.trim()}\` instead.`:"`--until` must be an ISO 8601 time or Unix milliseconds."};return Number.isFinite(untilMs)?untilMs<=now?{valid:!1,error:"`--until` must be in the future."}:{valid:!0,value:untilMs}:{valid:!1,error:"`--until` must be an ISO 8601 time or Unix milliseconds."}}var routingFlags2=getFlagsSpecification([...schedulesCommand.subcommands.flatMap(command2=>[...command2.options]),...executionsListSubcommand.options]);function takeScheduleCommand(argv){return takeCommand(argv,routingFlags2)}function scheduleCommandWithGlobalFlags(client,usage){let local=!1;try{local=!!parseArguments(client.argv.slice(2),routingFlags2,{permissive:!0}).flags["--local"]}catch{}return buildCommandWithGlobalFlags(client.argv,`${usage}${local?" --local":""}`,void 0,{excludeFlags:local?["--scope","--team"]:[]})}function validateLocalScheduleFlags(client,flags,usage){if(flags["--environment"]!==void 0&&flags["--git-branch"]!==void 0)return invalidScheduleArguments(client,usage,"Use either --environment or --git-branch, not both.");if(flags["--environment"]!==void 0&&flags["--user"]!==void 0)return invalidScheduleArguments(client,usage,"Use either --environment or --user, not both.");if(!flags["--local"])return;for(let flag of["--environment","--git-branch","--user"])if(flags[flag]!==void 0)return invalidScheduleArguments(client,usage,`Cannot combine --local with ${flag}. Local Schedules uses the current vercel dev session.`);let originalFlags;try{originalFlags=parseArguments(client.argv.slice(2),routingFlags2,{permissive:!0}).flags}catch(error){return invalidScheduleArguments(client,usage,error instanceof Error?error.message:String(error))}for(let flag of["--scope","--team","--token"])if(flags[flag]!==void 0||originalFlags[flag]!==void 0)return invalidScheduleArguments(client,usage,`Cannot combine --local with ${flag}. Local Schedules uses the current vercel dev session.`)}function unsupportedLocalExecutions(client){let message="Execution history is not supported for local Schedules. Inspect the vercel dev output for local executions.";return client.nonInteractive?outputAgentError(client,{status:AGENT_STATUS.ERROR,reason:AGENT_REASON.API_ERROR,message,retryable:!1}):output_manager_default.fatal(message),1}async function resolveSchedulesClient(client,flags){if(flags["--local"])try{let schedules=await createLocalSchedulesClient(client);return output_manager_default.log(`Using local Schedules at ${schedules.localOrigin}`),schedules}catch(error){let message=error instanceof Error?error.message:String(error);return client.nonInteractive?outputAgentError(client,{status:AGENT_STATUS.ERROR,reason:AGENT_REASON.API_ERROR,message,retryable:!1}):output_manager_default.fatal(message),1}let link=await requireProjectContext(client,"schedules");return typeof link=="number"?link:new SchedulesClient(client,{ownerId:link.org.id,projectId:link.project.id,environment:flags["--environment"]==="production"?void 0:flags["--environment"],gitBranch:flags["--git-branch"],user:flags["--user"]})}function scheduleTrackArgs(flags){let args=[];return flags["--environment"]!==void 0&&flags["--environment"]!=="production"&&args.push(`--environment ${quoteArg(flags["--environment"])}`),flags["--git-branch"]!==void 0&&args.push(`--git-branch ${quoteArg(flags["--git-branch"])}`),flags["--user"]!==void 0&&args.push(`--user ${quoteArg(flags["--user"])}`),args}function invalidScheduleArguments(client,usage,message){return client.nonInteractive?(outputAgentError(client,{status:AGENT_STATUS.ERROR,reason:AGENT_REASON.INVALID_ARGUMENTS,message,next:[{command:scheduleCommandWithGlobalFlags(client,usage),when:"Provide valid schedule arguments"}]}),2):(output_manager_default.fatal(message),2)}function validateScheduleNameAndNamespace(client,args,namespaceFlag,usage){let[name]=args;if(!name)return{valid:!1,exitCode:invalidScheduleArguments(client,usage,"A schedule name is required")};if(args.length!==1)return{valid:!1,exitCode:invalidScheduleArguments(client,usage,`Expected one schedule name. Usage: ${getCommandName(usage)}`)};let namespace=namespaceFlag??DEFAULT_SCHEDULE_NAMESPACE,nameError=validateScheduleIdentifier(name,"Schedule name"),namespaceError=validateScheduleIdentifier(namespace,"Namespace"),error=nameError??namespaceError;return error?{valid:!1,exitCode:invalidScheduleArguments(client,usage,error)}:{valid:!0,name,namespace}}function parseScheduleOutput(client,usage,flags){let result=validateJsonOutput(flags);return result.valid?{valid:!0,json:result.jsonOutput||client.nonInteractive}:{valid:!1,exitCode:invalidScheduleArguments(client,usage,result.error)}}function writeScheduleMutationResult(client,schedule,message,json){if(json){let value=client.nonInteractive?{status:AGENT_STATUS.OK,schedule,message}:schedule;client.stdout.write(`${JSON.stringify(value,null,2)}
250
+ `),await offerAutoPromote(client,projectId,version,!!existingStagingVersion,{teamId,skipPrompts}),0}catch(e){let error=e;return client.nonInteractive&&outputAgentError(client,{status:AGENT_STATUS.ERROR,reason:AGENT_REASON.ROUTE_CREATE_FAILED,message:"Route creation failed for this project. See hint for next steps.",hint:error.message||"Use `vercel routes list --diff` to inspect staged routes, then adjust options and retry.",next:[{command:withGlobalFlags2(client,"routes list --diff"),when:"to inspect staged state"}]},1),output_manager_default.error(error.message||"Failed to create route"),1}}var COMMAND_CONFIG5={list:getCommandAliases(listSubcommand5),"list-versions":getCommandAliases(listVersionsSubcommand2),inspect:getCommandAliases(inspectSubcommand4),add:getCommandAliases(addSubcommand3),update:getCommandAliases(editSubcommand),remove:getCommandAliases(deleteSubcommand2),enable:getCommandAliases(enableSubcommand),disable:getCommandAliases(disableSubcommand),move:getCommandAliases(reorderSubcommand),export:getCommandAliases(exportSubcommand),publish:getCommandAliases(publishSubcommand),restore:getCommandAliases(restoreSubcommand2),"discard-staging":getCommandAliases(discardSubcommand)};async function main4(client){let telemetry=new RoutesTelemetryClient({opts:{store:client.telemetryEventStore}}),parsedArgs,flagsSpecification=getFlagsSpecification(routesCommand.options);try{parsedArgs=parseArguments(client.argv.slice(2),flagsSpecification,{permissive:!0})}catch(err){return printError(err),2}let subArgs=parsedArgs.args.slice(1),{subcommand,args,subcommandOriginal}=getSubcommand2(subArgs,COMMAND_CONFIG5),needHelp=parsedArgs.flags["--help"];if(!subcommand&&needHelp)return telemetry.trackCliFlagHelp("routes"),output_manager_default.print(help(routesCommand,{stream:client.stderr,columns:client.stderr.columns})),0;function printHelp(command2){output_manager_default.print(help(command2,{stream:client.stderr,parent:routesCommand,columns:client.stderr.columns}))}switch(subcommand&&!needHelp&&telemetry.trackCliOptionProject(getProjectOptionFromArgs(args)),subcommand){case"list":return needHelp?(telemetry.trackCliFlagHelp("routes",subcommandOriginal),printHelp(listSubcommand5),0):(telemetry.trackCliSubcommandList(subcommandOriginal),list3(client,args));case"list-versions":return needHelp?(telemetry.trackCliFlagHelp("routes",subcommandOriginal),printHelp(listVersionsSubcommand2),0):(telemetry.trackCliSubcommandListVersions(subcommandOriginal),subcommandOriginal==="ls-versions"&&warnDeprecatedSubcommand(client,"routes ls-versions","routes list-versions"),listVersions2(client,args));case"inspect":return needHelp?(telemetry.trackCliFlagHelp("routes",subcommandOriginal),printHelp(inspectSubcommand4),0):(telemetry.trackCliSubcommandInspect(subcommandOriginal),inspect3(client,args));case"add":return needHelp?(telemetry.trackCliFlagHelp("routes",subcommandOriginal),printHelp(addSubcommand3),0):(telemetry.trackCliSubcommandAdd(subcommandOriginal),add3(client,args));case"update":return needHelp?(telemetry.trackCliFlagHelp("routes",subcommandOriginal),printHelp(editSubcommand),0):(telemetry.trackCliSubcommandUpdate(subcommandOriginal),subcommandOriginal==="edit"&&warnDeprecatedSubcommand(client,"routes edit","routes update"),(await import("./chunks/edit-A3M3GBGP.js")).default(client,args));case"remove":return needHelp?(telemetry.trackCliFlagHelp("routes",subcommandOriginal),printHelp(deleteSubcommand2),0):(telemetry.trackCliSubcommandRemove(subcommandOriginal),subcommandOriginal==="delete"&&warnDeprecatedSubcommand(client,"routes delete","routes remove"),(await import("./chunks/delete-SKYFHUWD.js")).default(client,args));case"enable":return needHelp?(telemetry.trackCliFlagHelp("routes",subcommandOriginal),printHelp(enableSubcommand),0):(telemetry.trackCliSubcommandEnable(subcommandOriginal),(await import("./chunks/enable-6A5THWDP.js")).default(client,args));case"disable":return needHelp?(telemetry.trackCliFlagHelp("routes",subcommandOriginal),printHelp(disableSubcommand),0):(telemetry.trackCliSubcommandDisable(subcommandOriginal),(await import("./chunks/disable-EBPZ2LYC.js")).default(client,args));case"move":return needHelp?(telemetry.trackCliFlagHelp("routes",subcommandOriginal),printHelp(reorderSubcommand),0):(telemetry.trackCliSubcommandMove(subcommandOriginal),subcommandOriginal==="reorder"&&warnDeprecatedSubcommand(client,"routes reorder","routes move"),(await import("./chunks/reorder-N2L43LXD.js")).default(client,args));case"export":return needHelp?(telemetry.trackCliFlagHelp("routes",subcommandOriginal),printHelp(exportSubcommand),0):(telemetry.trackCliSubcommandExport(subcommandOriginal),(await import("./chunks/export-R5IUWAW5.js")).default(client,args));case"publish":return needHelp?(telemetry.trackCliFlagHelp("routes",subcommandOriginal),printHelp(publishSubcommand),0):(telemetry.trackCliSubcommandPublish(subcommandOriginal),(await import("./chunks/publish-JIFRJNDV.js")).default(client,args));case"restore":return needHelp?(telemetry.trackCliFlagHelp("routes",subcommandOriginal),printHelp(restoreSubcommand2),0):(telemetry.trackCliSubcommandRestore(subcommandOriginal),(await import("./chunks/restore-AKAVSLAK.js")).default(client,args));case"discard-staging":return needHelp?(telemetry.trackCliFlagHelp("routes",subcommandOriginal),printHelp(discardSubcommand),0):(telemetry.trackCliSubcommandDiscardStaging(subcommandOriginal),(await import("./chunks/discard-SMVPENSP.js")).default(client,args));default:return output_manager_default.error(getInvalidSubcommand(COMMAND_CONFIG5)),output_manager_default.print(help(routesCommand,{stream:client.stderr,columns:client.stderr.columns})),2}}var SchedulesTelemetryClient=class extends TelemetryClient{trackCliFlagLocal(local){local&&this.trackCliFlag("local")}trackCliSubcommandInspect(actual){this.trackCliSubcommand({subcommand:"inspect",value:actual})}trackCliSubcommandList(actual){this.trackCliSubcommand({subcommand:"list",value:actual})}trackCliSubcommandCreate(actual){this.trackCliSubcommand({subcommand:"create",value:actual})}trackCliSubcommandUpdate(actual){this.trackCliSubcommand({subcommand:"update",value:actual})}trackCliSubcommandEnable(actual){this.trackCliSubcommand({subcommand:"enable",value:actual})}trackCliSubcommandDisable(actual){this.trackCliSubcommand({subcommand:"disable",value:actual})}trackCliSubcommandInvoke(actual){this.trackCliSubcommand({subcommand:"invoke",value:actual})}trackCliSubcommandDelete(actual){this.trackCliSubcommand({subcommand:"delete",value:actual})}trackCliSubcommandExecutions(actual){this.trackCliSubcommand({subcommand:"executions",value:actual})}trackCliSubcommandExecutionsList(actual){this.trackCliSubcommand({subcommand:"executions:list",value:actual})}};var import_ms8=__toESM(require_ms(),1);var SchedulesActionTelemetryClient=class extends TelemetryClient{trackCliArgumentName(name){name&&this.trackCliArgument({arg:"name",value:this.redactedValue})}trackCliOptionEnvironment(environment){environment&&this.trackCliOption({option:"environment",value:this.redactedValue})}trackCliOptionGitBranch(gitBranch){gitBranch&&this.trackCliOption({option:"git-branch",value:this.redactedValue})}trackCliOptionUser(user){user&&this.trackCliOption({option:"user",value:this.redactedValue})}trackCliOptionNamespace(namespace){namespace&&this.trackCliOption({option:"namespace",value:this.redactedValue})}trackCliOptionUntil(until){until&&this.trackCliOption({option:"until",value:this.redactedValue})}trackCliOptionFor(duration){duration&&this.trackCliOption({option:"for",value:this.redactedValue})}trackCliOptionFormat(format2){format2&&this.trackCliOption({option:"format",value:format2})}trackCliFlagLocal(local){local&&this.trackCliFlag("local")}trackCliFlagJson(json){json&&this.trackCliFlag("json")}};function asSentence(value){let trimmed=value.trim();return/[.!?]$/.test(trimmed)?trimmed:`${trimmed}.`}function apiErrorDetail(error){let message=error.serverMessage?.trim();return message&&message!=="Response Error"?asSentence(message):void 0}function requestDescription(context){return context.action==="list"?`list schedules in namespace ${context.namespace}`:context.action==="list-executions"?`list executions for schedule ${context.namespace}/${context.name}`:`${context.action} schedule ${context.namespace}/${context.name}`}function ambiguousInvokeError(local){return{reason:AGENT_REASON.API_ERROR,message:"The schedule invocation may have been accepted, but the CLI did not receive confirmation. Check whether the schedule ran before invoking it again."+(local?` Inspect the ${getCommandName("dev")} output for local executions.`:""),retryable:!1,userActionRequired:!0}}function getSchedulesError(client,error,context){if(!isAPIError(error))return context.action==="invoke"?ambiguousInvokeError(context.local):context.local?{reason:AGENT_REASON.API_ERROR,message:`${error instanceof Error?asSentence(error.message):"Failed to connect to local Schedules."} Check the local session and restart ${getCommandName("dev")} in this project if needed.`,retryable:!1,userActionRequired:!0}:{reason:AGENT_REASON.API_ERROR,message:"Failed to connect to the Schedules API. Check your connection and try again.",retryable:!0};let serverMessage=error.serverMessage?.trim().toLowerCase();if(context.local&&context.action==="invoke"&&error.status>=500)return ambiguousInvokeError(!0);if(context.local&&(error.status===401||error.status===402||error.status===403||/(?:project|session)_(?:mismatch|not_found|expired)/.test(error.code??"")||/^(?:local )?(?:project|session)\b/.test(serverMessage??"")))return{reason:AGENT_REASON.API_ERROR,message:`${apiErrorDetail(error)??"The local Schedules session is unavailable."} Restart ${getCommandName("dev")} in this project and use its local session.`,retryable:!1,userActionRequired:!0};if(error.code==="schedule_already_exists")return{reason:AGENT_REASON.SCHEDULE_ALREADY_EXISTS,message:context.name?`Schedule ${context.namespace}/${context.name} already exists. Choose a different name or update the existing schedule.`:"The schedule already exists. Choose a different name or update the existing schedule.",retryable:!1};if(error.code==="schedule_single_at_passed")return{reason:AGENT_REASON.SCHEDULE_SINGLE_AT_PASSED,message:context.name?`Schedule ${context.namespace}/${context.name} has passed its scheduled time and can't be modified. Delete it or create a new schedule.`:"The schedule has passed its scheduled time and can't be modified. Delete it or create a new schedule.",retryable:!1};if(error.code==="schedule_already_active"){let schedule=context.name?[quoteArg(context.name),`--namespace ${quoteArg(context.namespace)}`,...context.trackArgs??[]].join(" "):void 0;return{reason:AGENT_REASON.SCHEDULE_ALREADY_ACTIVE,message:context.name?`Schedule ${context.namespace}/${context.name} is already enabled without an end time. Disable it first, then enable it with --until or --for.`:"The schedule is already enabled without an end time. Disable it first, then enable it with --until or --for.",retryable:!1,...schedule&&{next:[{command:buildCommandWithGlobalFlags(client.argv,`schedules disable ${schedule}`,void 0,{excludeFlags:["--yes","--until","--for"]}),when:"Disable the schedule before enabling it with an end time"}]}}}if(error.code==="static_schedule"){let schedule=context.name?[quoteArg(context.name),`--namespace ${quoteArg(context.namespace)}`,...context.trackArgs??[]].join(" "):void 0;return{reason:AGENT_REASON.STATIC_SCHEDULE,message:context.name?`Static schedule ${context.namespace}/${context.name} can't be updated or deleted. Enable or disable it instead.`:"Static schedules can't be updated or deleted. Enable or disable them instead.",retryable:!1,...schedule&&{next:[{command:buildCommandWithGlobalFlags(client.argv,`schedules enable ${schedule}`,void 0,{excludeFlags:["--yes"]}),when:"Enable the static schedule"},{command:buildCommandWithGlobalFlags(client.argv,`schedules disable ${schedule}`,void 0,{excludeFlags:["--yes"]}),when:"Disable the static schedule"}]}}}if(error.code==="invalid_cron_expression")return{reason:AGENT_REASON.INVALID_CRON_EXPRESSION,message:`${apiErrorDetail(error)??"The cron expression is invalid."} Check \`--cron\` and try again.`,retryable:!1};if(error.code==="invalid_jitter")return{reason:AGENT_REASON.INVALID_JITTER,message:apiErrorDetail(error)??"The schedule jitter setting is invalid.",retryable:!1};if(error.code==="jitter_exceeds_cadence")return{reason:AGENT_REASON.JITTER_EXCEEDS_CADENCE,message:`${apiErrorDetail(error)??"The schedule jitter exceeds the interval between runs."} Increase the interval between runs.`,retryable:!1};if(error.code==="single_at_too_soon")return{reason:AGENT_REASON.SINGLE_AT_TOO_SOON,message:`${apiErrorDetail(error)??"The one-time schedule is too soon."} Choose a later value for \`--at\`.`,retryable:!1};if(error.code==="payload_too_large")return{reason:AGENT_REASON.SCHEDULE_PAYLOAD_TOO_LARGE,message:`${apiErrorDetail(error)??"The schedule payload is too large."} Reduce the value passed to \`--payload\` and try again.`,retryable:!1};if(error.code==="payload_store_failed")return{reason:AGENT_REASON.SCHEDULE_PAYLOAD_STORE_FAILED,message:"Failed to store the schedule payload. Try again later.",retryable:!0};if(error.code==="service_unavailable")return{reason:AGENT_REASON.SCHEDULE_SERVICE_UNAVAILABLE,message:"Schedule execution history is temporarily unavailable. Try again later.",retryable:!0};if(error.code==="service_error")return{reason:AGENT_REASON.SCHEDULE_SERVICE_ERROR,message:error.status>=500?"Failed to load schedule execution history. Try again later.":"Failed to load schedule execution history. Choose a shorter time range and try again.",retryable:error.status>=500};if(error.status===400){let detail2=apiErrorDetail(error);return{reason:AGENT_REASON.INVALID_ARGUMENTS,message:`The Schedules API rejected the request.${detail2?` ${detail2}`:""}`,retryable:!1}}if(error.status===401&&error.code==="missing_team_param")return{reason:AGENT_REASON.MISSING_SCOPE,message:"Schedules requires a team project. Run `vercel link` to link a project owned by a team.",retryable:!1,userActionRequired:!0};if(error.status===401){let tokenSource=client.authConfig.tokenSource;return{reason:AGENT_REASON.LOGIN_REQUIRED,message:tokenSource==="env"?"Schedules API authentication failed. Replace VERCEL_TOKEN, or unset it to use your saved login.":tokenSource==="flag"?"Schedules API authentication failed. Replace the token passed to `--token`.":`Schedules API authentication failed. Run ${getCommandName("login")} and try again.`,retryable:!1,userActionRequired:!0}}if(error.status===402){let detail2=apiErrorDetail(error);return{reason:AGENT_REASON.PLAN_UPGRADE_REQUIRED,message:`Schedules isn't available for this team.${detail2?` ${detail2}`:""} Ask a team owner to review the requirement.`,retryable:!1,userActionRequired:!0}}if(error.status===403&&error.code==="not_enabled"||!context.local&&error.status===404&&(serverMessage==="not found"||serverMessage==="not found."))return{reason:AGENT_REASON.SCHEDULES_NOT_ENABLED,message:"Vercel Schedules is not enabled for this team.",retryable:!1,userActionRequired:!0};if(error.status===403)return{reason:AGENT_REASON.PERMISSION_DENIED,message:"Can't access Schedules with the current credentials and team. Check the token and selected team. If both are correct, ask a team owner for access.",retryable:!1,userActionRequired:!0};if(error.status===404&&(serverMessage==="project not found"||serverMessage==="project not found."))return{reason:AGENT_REASON.PROJECT_NOT_FOUND,message:"The linked project isn't available to this team. Run `vercel link` to update the project link.",retryable:!1,userActionRequired:!0};if(error.status===404&&context.action!=="create"&&context.action!=="list"&&context.name)return{reason:AGENT_REASON.NOT_FOUND,message:`Schedule not found: ${context.namespace}/${context.name}.`,retryable:!1};if(error.status===429){let retryAfterMs=typeof error.retryAfterMs=="number"&&error.retryAfterMs>0?error.retryAfterMs:void 0;return{reason:AGENT_REASON.RATE_LIMITED,message:retryAfterMs===void 0?"The Schedules API request limit was reached. Wait and try again.":`The Schedules API request limit was reached. Try again in ${Math.ceil(retryAfterMs/1e3)} second${retryAfterMs>1e3?"s":""}.`,retryable:!0,...retryAfterMs&&{retryAfterMs}}}if(error.status>=500)return context.action==="invoke"?ambiguousInvokeError(context.local):{reason:AGENT_REASON.API_ERROR,message:context.local?`Local Schedules is unavailable. Check the ${getCommandName("dev")} output and restart the local session if needed.`:"The Schedules API is temporarily unavailable. Try again later.",retryable:!0};let detail=apiErrorDetail(error);return{reason:AGENT_REASON.API_ERROR,message:`Failed to ${requestDescription(context)}.${detail?` ${detail}`:""}`,retryable:!1}}function handleSchedulesApiError(client,error,context){let details=getSchedulesError(client,error,context);return client.nonInteractive?(outputAgentError(client,{status:AGENT_STATUS.ERROR,...details},1),1):(output_manager_default.fatal(details.message),1)}var DEFAULT_SCHEDULES_BASE_URL="https://vercel-schedules.com",DEFAULT_SCHEDULE_NAMESPACE="default",DEFAULT_SCHEDULES_LIMIT=20,SCHEDULES_REQUEST_SOURCE_HEADER="x-vss-client",LocalSchedulesError=class extends Error{constructor(message){super(message),this.name="LocalSchedulesError"}};function sanitizeSchedule(schedule){let{trackId:_trackId,...publicSchedule}=schedule;return publicSchedule}var SchedulesClient=class{constructor(client,options){this.client=client;this.options=options;if("local"in options){if(!isLocalSchedulesOrigin(options.local.origin))throw new LocalSchedulesError("Local Schedules requires an HTTP 127.0.0.1 endpoint with a valid port.");this.baseUrl=new URL(options.local.origin);return}this.baseUrl=new URL(options.baseUrl??process.env.VERCEL_SCHEDULE_BASE_URL??DEFAULT_SCHEDULES_BASE_URL)}get localOrigin(){return"local"in this.options?this.baseUrl.origin:void 0}async request(path,options={}){let url=new URL(path,this.baseUrl);if("local"in this.options){let session=this.options.local;url.searchParams.set("projectId",session.projectId);let response;try{response=await directFetch(url.href,{method:options.method??"GET",headers:{authorization:`Bearer ${DEV_RESOURCE_TOKEN}`,[LOCAL_SCHEDULES_SESSION_HEADER]:session.id,[SCHEDULES_REQUEST_SOURCE_HEADER]:"cli",...options.body===void 0?{}:{"content-type":"application/json"}},body:options.body===void 0?void 0:JSON.stringify(options.body),redirect:"manual",signal:AbortSignal.timeout(3e4)})}catch{throw new LocalSchedulesError(`Could not reach local Schedules at ${session.origin}. No cloud request was made.`)}if(response.status>=300&&response.status<400||response.headers.get(LOCAL_SCHEDULES_SESSION_HEADER)!==session.id)throw await response.body?.cancel(),new LocalSchedulesError("The local Schedules session changed or returned an unexpected response. Restart vercel dev and try again.");if(!response.ok)throw await responseError(response);if(response.status===204)return;try{return await response.json()}catch{throw new LocalSchedulesError("The local Schedules session returned an invalid JSON response.")}}url.searchParams.set("projectId",this.options.projectId),this.options.environment!==void 0&&url.searchParams.set("env",this.options.environment),this.options.gitBranch!==void 0&&url.searchParams.set("branch",this.options.gitBranch),this.options.user!==void 0&&url.searchParams.set("user",this.options.user);let headers=new globalThis.Headers(options.headers);return headers.set(SCHEDULES_REQUEST_SOURCE_HEADER,"cli"),this.client.fetch(url.href,{...options,headers,accountId:this.options.ownerId,useCurrentTeam:!1})}schedulePath(name,namespace,suffix=""){return`${`/v1/schedules/${encodeURIComponent(name)}${suffix}`}?${new URLSearchParams({namespace})}`}async create({target,...params}){let schedule=await this.request("/v1/schedules",{method:"POST",bailOn429:!0,body:{...params,target:{type:"queue",topic:target.topic}}});return sanitizeSchedule(schedule)}async get({name,namespace=DEFAULT_SCHEDULE_NAMESPACE}){let schedule=await this.request(this.schedulePath(name,namespace),{bailOn429:!0});return sanitizeSchedule(schedule)}async list({namespace=DEFAULT_SCHEDULE_NAMESPACE,cursor,limit=DEFAULT_SCHEDULES_LIMIT}={}){let searchParams=new URLSearchParams({namespace,limit:String(limit)});cursor!==void 0&&searchParams.set("cursor",cursor);let response=await this.request(`/v1/schedules?${searchParams}`,{bailOn429:!0});return{data:response.data.map(sanitizeSchedule),cursor:response.cursor}}async update({name,namespace=DEFAULT_SCHEDULE_NAMESPACE,target,...params}){let schedule=await this.request(this.schedulePath(name,namespace),{method:"PATCH",bailOn429:!0,body:{...params,...target?{target:{type:"queue",topic:target.topic}}:{}}});return sanitizeSchedule(schedule)}async delete({name,namespace=DEFAULT_SCHEDULE_NAMESPACE}){return this.request(this.schedulePath(name,namespace),{method:"DELETE",bailOn429:!0})}async enable({name,namespace=DEFAULT_SCHEDULE_NAMESPACE,activeUntil}){return this.changeState(name,namespace,"enable",activeUntil===void 0?void 0:{until:activeUntil})}async disable({name,namespace=DEFAULT_SCHEDULE_NAMESPACE}){return this.changeState(name,namespace,"disable")}async changeState(name,namespace,action,body){let schedule=await this.request(this.schedulePath(name,namespace,`/${action}`),{method:"POST",bailOn429:!0,...body&&{body}});return sanitizeSchedule(schedule)}async invoke({name,namespace=DEFAULT_SCHEDULE_NAMESPACE}){await this.request(this.schedulePath(name,namespace,"/invoke"),{method:"POST",bailOn429:!0,retry:{retries:0}})}async listExecutions({name,namespace=DEFAULT_SCHEDULE_NAMESPACE,cursor,limit=DEFAULT_SCHEDULES_LIMIT,sort,from,to,executionId}){if("local"in this.options)throw new LocalSchedulesError("Execution history is not supported for local Schedules. Inspect the vercel dev output for local executions.");let searchParams=new URLSearchParams({limit:String(limit)});return cursor!==void 0&&searchParams.set("cursor",cursor),sort!==void 0&&searchParams.set("sort",sort),from!==void 0&&searchParams.set("from",String(from)),to!==void 0&&searchParams.set("to",String(to)),executionId!==void 0&&searchParams.set("executionId",executionId),this.request(`${this.schedulePath(name,namespace,"/executions")}&${searchParams}`,{bailOn429:!0})}};async function createLocalSchedulesClient(client){let sessions=await readLocalSchedulesSessions(client.cwd);if(sessions.length===0)throw new LocalSchedulesError("No running local Schedules session was found in this directory. Start vercel dev here, or use --cwd to select its project directory.");if(sessions.length>1)throw new LocalSchedulesError("Multiple vercel dev sessions are running in this directory. Stop the extra instances before using schedules --local.");let[session]=sessions,response;try{response=await directFetch(`${session.origin}/v1/info`,{headers:{authorization:`Bearer ${DEV_RESOURCE_TOKEN}`,[LOCAL_SCHEDULES_SESSION_HEADER]:session.id,[SCHEDULES_REQUEST_SOURCE_HEADER]:"cli"},redirect:"manual",signal:AbortSignal.timeout(2e3)})}catch{throw new LocalSchedulesError(`The local Schedules session at ${session.origin} is unavailable. Restart vercel dev in this directory. No cloud request was made.`)}if(!response.ok||response.headers.get(LOCAL_SCHEDULES_SESSION_HEADER)!==session.id)throw await response.body?.cancel(),new LocalSchedulesError("The local Schedules session is stale, not ready, or incompatible. Restart vercel dev in this directory.");let info;try{info=await response.json()}catch{throw new LocalSchedulesError("The local Schedules session returned invalid metadata. Restart vercel dev in this directory.")}if(!info||info.version!==session.version||info.id!==session.id||info.pid!==session.pid||info.cwd!==session.cwd||info.origin!==session.origin||info.projectId!==session.projectId)throw new LocalSchedulesError("The local Schedules session does not match this project instance. Restart vercel dev in this directory.");return new SchedulesClient(client,{local:session})}var import_ms7=__toESM(require_ms(),1),MAX_IDENTIFIER_LENGTH=256,IDENTIFIER_PATTERN=/^[0-9A-Za-z][0-9A-Za-z._-]*$/,MAX_QUEUE_TOPIC_LENGTH=256,QUEUE_TOPIC_PATTERN=/^[A-Za-z0-9_-]+$/,MAX_JITTER_MINUTES=15,LOCAL_MINUTE_DATETIME_PATTERN=/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2})$/,LOCAL_SECOND_DATETIME_PATTERN=/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})$/,TIMEZONE_PATTERN=/^[A-Za-z][A-Za-z0-9_+/-]*$/;function validateScheduleIdentifier(value,label){if(value.length>MAX_IDENTIFIER_LENGTH)return`${label} must be at most ${MAX_IDENTIFIER_LENGTH} characters.`;if(!IDENTIFIER_PATTERN.test(value))return`${label} must start with a letter or number and can contain only letters, numbers, periods, underscores, and hyphens.`}function validateScheduleTimezone(value){if(value!==void 0){if(value.length===0||value.length>50||!TIMEZONE_PATTERN.test(value))return"`--timezone` must be a valid IANA timezone.";try{new Intl.DateTimeFormat("en-US",{timeZone:value})}catch{return"`--timezone` must be a valid IANA timezone."}}}function validateScheduleQueueTopic(value){if(value.length>MAX_QUEUE_TOPIC_LENGTH||!QUEUE_TOPIC_PATTERN.test(value))return"`--topic` must be 1\u2013256 characters and contain only letters, numbers, underscores, and hyphens."}function normalizeLocalDatetime(value){let secondMatch=LOCAL_SECOND_DATETIME_PATTERN.exec(value);if(secondMatch){if(secondMatch[6]!=="00")return}else LOCAL_MINUTE_DATETIME_PATTERN.test(value)&&(value=`${value}:00`);let match=LOCAL_SECOND_DATETIME_PATTERN.exec(value);if(!match)return;let[,yearValue,monthValue,dayValue,hourValue,minuteValue]=match,year=Number(yearValue),month=Number(monthValue),day=Number(dayValue),hour=Number(hourValue),minute=Number(minuteValue),daysInMonth=[31,year%4===0&&(year%100!==0||year%400===0)?29:28,31,30,31,30,31,31,30,31,30,31];if(!(month<1||month>12||day<1||day>daysInMonth[month-1]||hour<0||hour>23||minute<0||minute>59))return value}function parseScheduleExpression(cron,at,required){if(cron!==void 0&&at!==void 0)return{valid:!1,error:"Use either `--cron` or `--at`, not both."};if(cron!==void 0)return cron.trim()?{valid:!0,value:{type:"cron",cron}}:{valid:!1,error:"`--cron` cannot be empty."};if(at!==void 0){let normalized=normalizeLocalDatetime(at);return normalized===void 0?{valid:!1,error:"`--at` must use YYYY-MM-DDTHH:mm or YYYY-MM-DDTHH:mm:00 without a timezone suffix. Use `--timezone` to select the timezone."}:{valid:!0,value:{type:"single",at:normalized}}}return required?{valid:!1,error:"A schedule expression is required. Use `--cron` or `--at`."}:{valid:!0,value:void 0}}function validateJitter(value){return!Number.isInteger(value)||value<1||value>MAX_JITTER_MINUTES?{valid:!1,error:"`--jitter` must be an integer between 1 and 15."}:{valid:!0,value}}function parseCreateJitter(value){return value===void 0?{valid:!0,value:void 0}:validateJitter(value)}function parseUpdateJitter(value){return value===void 0?{valid:!0,value:void 0}:value==="none"?{valid:!0,value:null}:validateJitter(Number(value))}function parseSchedulePayload(value){if(value===void 0)return{valid:!0,value:void 0};try{return{valid:!0,value:JSON.parse(value)}}catch{return{valid:!1,error:"`--payload` must be valid JSON."}}}var UNIX_MILLISECONDS_PATTERN=/^\d+$/,ISO_DATE_PATTERN=/^(\d{4})-(\d{2})-(\d{2})/,DURATION_PATTERN=/^\d+(?:\.\d+)?\s*[a-z]+$/i;function parseEnableUntil(until,duration,now=Date.now()){if(until!==void 0&&duration!==void 0)return{valid:!1,error:"`--until` and `--for` cannot be used together."};if(duration!==void 0){let durationMs=DURATION_PATTERN.test(duration.trim())?(0,import_ms7.default)(duration.trim()):void 0;return durationMs===void 0||!(durationMs>0)?{valid:!1,error:"`--for` must be a duration such as 30m, 5h, or 10s."}:{valid:!0,value:now+durationMs}}if(until===void 0)return{valid:!0,value:void 0};let untilMs,isoDate=ISO_DATE_PATTERN.exec(until);if(UNIX_MILLISECONDS_PATTERN.test(until))untilMs=Number(until);else if(isoDate){let[,year,month,day]=isoDate.map(Number),daysInMonth=new Date(Date.UTC(year,month,0)).getUTCDate();untilMs=day>=1&&day<=daysInMonth?Date.parse(until):NaN}else return{valid:!1,error:DURATION_PATTERN.test(until.trim())?`\`--until\` must be a time, not a duration. Use \`--for ${until.trim()}\` instead.`:"`--until` must be an ISO 8601 time or Unix milliseconds."};return Number.isFinite(untilMs)?untilMs<=now?{valid:!1,error:"`--until` must be in the future."}:{valid:!0,value:untilMs}:{valid:!1,error:"`--until` must be an ISO 8601 time or Unix milliseconds."}}var routingFlags2=getFlagsSpecification([...schedulesCommand.subcommands.flatMap(command2=>[...command2.options]),...executionsListSubcommand.options]);function takeScheduleCommand(argv){return takeCommand(argv,routingFlags2)}function scheduleCommandWithGlobalFlags(client,usage){let local=!1;try{local=!!parseArguments(client.argv.slice(2),routingFlags2,{permissive:!0}).flags["--local"]}catch{}return buildCommandWithGlobalFlags(client.argv,`${usage}${local?" --local":""}`,void 0,{excludeFlags:local?["--scope","--team"]:[]})}function validateLocalScheduleFlags(client,flags,usage){if(flags["--environment"]!==void 0&&flags["--git-branch"]!==void 0)return invalidScheduleArguments(client,usage,"Use either --environment or --git-branch, not both.");if(flags["--environment"]!==void 0&&flags["--user"]!==void 0)return invalidScheduleArguments(client,usage,"Use either --environment or --user, not both.");if(!flags["--local"])return;for(let flag of["--environment","--git-branch","--user"])if(flags[flag]!==void 0)return invalidScheduleArguments(client,usage,`Cannot combine --local with ${flag}. Local Schedules uses the current vercel dev session.`);let originalFlags;try{originalFlags=parseArguments(client.argv.slice(2),routingFlags2,{permissive:!0}).flags}catch(error){return invalidScheduleArguments(client,usage,error instanceof Error?error.message:String(error))}for(let flag of["--scope","--team","--token"])if(flags[flag]!==void 0||originalFlags[flag]!==void 0)return invalidScheduleArguments(client,usage,`Cannot combine --local with ${flag}. Local Schedules uses the current vercel dev session.`)}function unsupportedLocalExecutions(client){let message="Execution history is not supported for local Schedules. Inspect the vercel dev output for local executions.";return client.nonInteractive?outputAgentError(client,{status:AGENT_STATUS.ERROR,reason:AGENT_REASON.API_ERROR,message,retryable:!1}):output_manager_default.fatal(message),1}async function resolveSchedulesClient(client,flags){if(flags["--local"])try{let schedules=await createLocalSchedulesClient(client);return output_manager_default.log(`Using local Schedules at ${schedules.localOrigin}`),schedules}catch(error){let message=error instanceof Error?error.message:String(error);return client.nonInteractive?outputAgentError(client,{status:AGENT_STATUS.ERROR,reason:AGENT_REASON.API_ERROR,message,retryable:!1}):output_manager_default.fatal(message),1}let link=await requireProjectContext(client,"schedules");return typeof link=="number"?link:new SchedulesClient(client,{ownerId:link.org.id,projectId:link.project.id,environment:flags["--environment"]==="production"?void 0:flags["--environment"],gitBranch:flags["--git-branch"],user:flags["--user"]})}function scheduleTrackArgs(flags){let args=[];return flags["--environment"]!==void 0&&flags["--environment"]!=="production"&&args.push(`--environment ${quoteArg(flags["--environment"])}`),flags["--git-branch"]!==void 0&&args.push(`--git-branch ${quoteArg(flags["--git-branch"])}`),flags["--user"]!==void 0&&args.push(`--user ${quoteArg(flags["--user"])}`),args}function invalidScheduleArguments(client,usage,message){return client.nonInteractive?(outputAgentError(client,{status:AGENT_STATUS.ERROR,reason:AGENT_REASON.INVALID_ARGUMENTS,message,next:[{command:scheduleCommandWithGlobalFlags(client,usage),when:"Provide valid schedule arguments"}]}),2):(output_manager_default.fatal(message),2)}function validateScheduleNameAndNamespace(client,args,namespaceFlag,usage){let[name]=args;if(!name)return{valid:!1,exitCode:invalidScheduleArguments(client,usage,"A schedule name is required")};if(args.length!==1)return{valid:!1,exitCode:invalidScheduleArguments(client,usage,`Expected one schedule name. Usage: ${getCommandName(usage)}`)};let namespace=namespaceFlag??DEFAULT_SCHEDULE_NAMESPACE,nameError=validateScheduleIdentifier(name,"Schedule name"),namespaceError=validateScheduleIdentifier(namespace,"Namespace"),error=nameError??namespaceError;return error?{valid:!1,exitCode:invalidScheduleArguments(client,usage,error)}:{valid:!0,name,namespace}}function parseScheduleOutput(client,usage,flags){let result=validateJsonOutput(flags);return result.valid?{valid:!0,json:result.jsonOutput||client.nonInteractive}:{valid:!1,exitCode:invalidScheduleArguments(client,usage,result.error)}}function writeScheduleMutationResult(client,schedule,message,json){if(json){let value=client.nonInteractive?{status:AGENT_STATUS.OK,schedule,message}:schedule;client.stdout.write(`${JSON.stringify(value,null,2)}
251
251
  `)}else output_manager_default.success(message);return 0}async function runScheduleAction(client,argv,action){let subcommand=action==="enable"?enableSubcommand2:action==="disable"?disableSubcommand2:invokeSubcommand,usage=`schedules ${action} <name>`,telemetry=new SchedulesActionTelemetryClient({opts:{store:client.telemetryEventStore}}),parsedArgs;try{parsedArgs=parseArguments(argv,getFlagsSpecification(subcommand.options))}catch(error){return invalidScheduleArguments(client,usage,error instanceof Error?error.message:String(error))}let{args,flags}=parsedArgs,enableFlags=flags;telemetry.trackCliFlagLocal(flags["--local"]);let conflict=validateLocalScheduleFlags(client,flags,usage);if(conflict!==void 0)return conflict;telemetry.trackCliArgumentName(args[0]),telemetry.trackCliOptionNamespace(flags["--namespace"]),telemetry.trackCliOptionEnvironment(flags["--environment"]),telemetry.trackCliOptionGitBranch(flags["--git-branch"]),telemetry.trackCliOptionUser(flags["--user"]),telemetry.trackCliOptionUntil(enableFlags["--until"]),telemetry.trackCliOptionFor(enableFlags["--for"]),telemetry.trackCliOptionFormat(flags["--format"]),telemetry.trackCliFlagJson(flags["--json"]);let identifier=validateScheduleNameAndNamespace(client,args,flags["--namespace"],usage);if(!identifier.valid)return identifier.exitCode;let outputMode=parseScheduleOutput(client,usage,flags);if(!outputMode.valid)return outputMode.exitCode;let activeUntil=parseEnableUntil(enableFlags["--until"],enableFlags["--for"]);if(!activeUntil.valid)return invalidScheduleArguments(client,usage,activeUntil.error);let schedulesClient=await resolveSchedulesClient(client,flags);if(typeof schedulesClient=="number")return schedulesClient;let presentParticiple=action==="enable"?"Enabling":action==="disable"?"Disabling":"Invoking";outputMode.json||output_manager_default.spinner(`${presentParticiple} schedule\u2026`);let schedule;try{action==="enable"?schedule=await schedulesClient.enable({...identifier,activeUntil:activeUntil.value}):action==="disable"?schedule=await schedulesClient.disable(identifier):await schedulesClient.invoke(identifier)}catch(error){return output_manager_default.stopSpinner(),handleSchedulesApiError(client,error,{action,local:flags["--local"],name:identifier.name,namespace:identifier.namespace,trackArgs:scheduleTrackArgs(flags)})}output_manager_default.stopSpinner();let pastTense=action==="enable"?"Enabled":action==="disable"?"Disabled":"Invoked",enabledUntil=schedule?.activeUntil??activeUntil.value,message=action==="enable"&&enabledUntil!==void 0?`${pastTense} schedule ${identifier.namespace}/${identifier.name} until ${new Date(enabledUntil).toISOString()} (in ${(0,import_ms8.default)(Math.max(enabledUntil-Date.now(),1e3),{long:!0})}).`:`${pastTense} schedule ${identifier.namespace}/${identifier.name}.`;if(schedule)return writeScheduleMutationResult(client,schedule,message,outputMode.json);if(outputMode.json){let result=client.nonInteractive?{status:AGENT_STATUS.OK,message}:{invoked:!0,name:identifier.name,namespace:identifier.namespace};client.stdout.write(`${JSON.stringify(result,null,2)}
252
252
  `)}else output_manager_default.success(message);return 0}var SchedulesCreateTelemetryClient=class extends TelemetryClient{trackCliArgumentName(name){name&&this.trackCliArgument({arg:"name",value:this.redactedValue})}trackCliOptionEnvironment(environment){environment&&this.trackCliOption({option:"environment",value:this.redactedValue})}trackCliOptionGitBranch(gitBranch){gitBranch&&this.trackCliOption({option:"git-branch",value:this.redactedValue})}trackCliOptionUser(user){user&&this.trackCliOption({option:"user",value:this.redactedValue})}trackCliOptionNamespace(namespace){namespace&&this.trackCliOption({option:"namespace",value:this.redactedValue})}trackCliOptionCron(cron){cron&&this.trackCliOption({option:"cron",value:this.redactedValue})}trackCliOptionAt(at){at&&this.trackCliOption({option:"at",value:this.redactedValue})}trackCliOptionTimezone(timezone){timezone&&this.trackCliOption({option:"timezone",value:timezone})}trackCliOptionJitter(jitter){jitter!==void 0&&this.trackCliOption({option:"jitter",value:String(jitter)})}trackCliOptionTopic(topic){topic&&this.trackCliOption({option:"topic",value:this.redactedValue})}trackCliOptionPayload(payload){payload!==void 0&&this.trackCliOption({option:"payload",value:this.redactedValue})}trackCliOptionFormat(format2){format2&&this.trackCliOption({option:"format",value:format2})}trackCliFlagLocal(local){local&&this.trackCliFlag("local")}trackCliFlagJson(json){json&&this.trackCliFlag("json")}};var USAGE14="schedules create <name> --cron <expression> --topic <topic>";async function create(client,argv){let telemetry=new SchedulesCreateTelemetryClient({opts:{store:client.telemetryEventStore}}),parsedArgs;try{parsedArgs=parseArguments(argv,getFlagsSpecification(createSubcommand2.options))}catch(error){return invalidScheduleArguments(client,USAGE14,error instanceof Error?error.message:String(error))}let{args,flags}=parsedArgs;telemetry.trackCliFlagLocal(flags["--local"]);let conflict=validateLocalScheduleFlags(client,flags,USAGE14);if(conflict!==void 0)return conflict;telemetry.trackCliArgumentName(args[0]),telemetry.trackCliOptionNamespace(flags["--namespace"]),telemetry.trackCliOptionEnvironment(flags["--environment"]),telemetry.trackCliOptionGitBranch(flags["--git-branch"]),telemetry.trackCliOptionUser(flags["--user"]),telemetry.trackCliOptionCron(flags["--cron"]),telemetry.trackCliOptionAt(flags["--at"]),telemetry.trackCliOptionTimezone(flags["--timezone"]),telemetry.trackCliOptionJitter(flags["--jitter"]),telemetry.trackCliOptionTopic(flags["--topic"]),telemetry.trackCliOptionPayload(flags["--payload"]),telemetry.trackCliOptionFormat(flags["--format"]),telemetry.trackCliFlagJson(flags["--json"]);let identifier=validateScheduleNameAndNamespace(client,args,flags["--namespace"],USAGE14);if(!identifier.valid)return identifier.exitCode;let expression=parseScheduleExpression(flags["--cron"],flags["--at"],!0);if(!expression.valid)return invalidScheduleArguments(client,USAGE14,expression.error);let topic=flags["--topic"];if(!topic?.trim())return invalidScheduleArguments(client,USAGE14,"A target queue topic is required. Use `--topic`.");let topicError=validateScheduleQueueTopic(topic);if(topicError)return invalidScheduleArguments(client,USAGE14,topicError);let jitter=parseCreateJitter(flags["--jitter"]);if(!jitter.valid)return invalidScheduleArguments(client,USAGE14,jitter.error);let timezoneError=validateScheduleTimezone(flags["--timezone"]);if(timezoneError)return invalidScheduleArguments(client,USAGE14,timezoneError);let payload=parseSchedulePayload(flags["--payload"]);if(!payload.valid)return invalidScheduleArguments(client,USAGE14,payload.error);let outputMode=parseScheduleOutput(client,USAGE14,flags);if(!outputMode.valid)return outputMode.exitCode;let schedules=await resolveSchedulesClient(client,flags);if(typeof schedules=="number")return schedules;outputMode.json||output_manager_default.spinner("Creating schedule\u2026");let schedule;try{schedule=await schedules.create({name:identifier.name,namespace:identifier.namespace,expression:expression.value,target:{topic},...flags["--timezone"]!==void 0&&{timezone:flags["--timezone"]},...jitter.value!==void 0&&{jitter:jitter.value},...flags["--payload"]!==void 0&&{payload:payload.value}})}catch(error){return output_manager_default.stopSpinner(),handleSchedulesApiError(client,error,{action:"create",local:flags["--local"],name:identifier.name,namespace:identifier.namespace,trackArgs:scheduleTrackArgs(flags)})}return output_manager_default.stopSpinner(),writeScheduleMutationResult(client,schedule,`Created schedule ${identifier.namespace}/${identifier.name}.`,outputMode.json)}var SchedulesDeleteTelemetryClient=class extends TelemetryClient{trackCliArgumentName(name){name&&this.trackCliArgument({arg:"name",value:this.redactedValue})}trackCliOptionEnvironment(environment){environment&&this.trackCliOption({option:"environment",value:this.redactedValue})}trackCliOptionGitBranch(gitBranch){gitBranch&&this.trackCliOption({option:"git-branch",value:this.redactedValue})}trackCliOptionUser(user){user&&this.trackCliOption({option:"user",value:this.redactedValue})}trackCliOptionNamespace(namespace){namespace&&this.trackCliOption({option:"namespace",value:this.redactedValue})}trackCliFlagYes(yes){yes&&this.trackCliFlag("yes")}trackCliOptionFormat(format2){format2&&this.trackCliOption({option:"format",value:format2})}trackCliFlagLocal(local){local&&this.trackCliFlag("local")}trackCliFlagJson(json){json&&this.trackCliFlag("json")}};var USAGE15="schedules delete <name> --yes";async function deleteSchedule(client,argv){let telemetry=new SchedulesDeleteTelemetryClient({opts:{store:client.telemetryEventStore}}),parsedArgs;try{parsedArgs=parseArguments(argv,getFlagsSpecification(deleteSubcommand3.options))}catch(error){return invalidScheduleArguments(client,USAGE15,error instanceof Error?error.message:String(error))}let{args,flags}=parsedArgs;telemetry.trackCliFlagLocal(flags["--local"]);let conflict=validateLocalScheduleFlags(client,flags,USAGE15);if(conflict!==void 0)return conflict;telemetry.trackCliArgumentName(args[0]),telemetry.trackCliOptionNamespace(flags["--namespace"]),telemetry.trackCliOptionEnvironment(flags["--environment"]),telemetry.trackCliOptionGitBranch(flags["--git-branch"]),telemetry.trackCliOptionUser(flags["--user"]),telemetry.trackCliFlagYes(flags["--yes"]),telemetry.trackCliOptionFormat(flags["--format"]),telemetry.trackCliFlagJson(flags["--json"]);let identifier=validateScheduleNameAndNamespace(client,args,flags["--namespace"],USAGE15);if(!identifier.valid)return identifier.exitCode;let outputMode=parseScheduleOutput(client,USAGE15,flags);if(!outputMode.valid)return outputMode.exitCode;let skipConfirmation=flags["--yes"]??!1;if(client.nonInteractive&&!skipConfirmation)return outputAgentError(client,{status:AGENT_STATUS.ERROR,reason:AGENT_REASON.CONFIRMATION_REQUIRED,message:flags["--local"]?"Deleting a local schedule requires confirmation. Re-run with `--yes`.":"Deleting a schedule requires confirmation. Re-run with `--yes`.",next:[{command:flags["--local"]?scheduleCommandWithGlobalFlags(client,`schedules delete ${quoteArg(identifier.name)} --namespace ${quoteArg(identifier.namespace)} --yes`):buildCommandWithYes(client.argv)}]},1),1;let schedules=await resolveSchedulesClient(client,flags);if(typeof schedules=="number")return schedules;let target=flags["--local"]?"local schedule":"schedule";if(!skipConfirmation&&!await client.input.confirm(`Delete ${target} ${identifier.namespace}/${identifier.name}? This cannot be undone.`,!1))return output_manager_default.log("Canceled"),0;outputMode.json||output_manager_default.spinner("Deleting schedule\u2026");let deletedScheduleId;try{deletedScheduleId=(await schedules.delete(identifier)).scheduleId}catch(error){return output_manager_default.stopSpinner(),handleSchedulesApiError(client,error,{action:"delete",local:flags["--local"],name:identifier.name,namespace:identifier.namespace,trackArgs:scheduleTrackArgs(flags)})}output_manager_default.stopSpinner();let message=`Deleted ${target} ${identifier.namespace}/${identifier.name}.`;if(outputMode.json){let deleted={name:identifier.name,namespace:identifier.namespace,scheduleId:deletedScheduleId},result=client.nonInteractive?{status:AGENT_STATUS.OK,deleted,message}:{deleted:!0,...deleted};client.stdout.write(`${JSON.stringify(result,null,2)}
253
253
  `)}else output_manager_default.success(message);return 0}var import_chalk35=__toESM(require_source(),1);var SchedulesListExecutionsTelemetryClient=class extends TelemetryClient{trackCliArgumentName(name){name&&this.trackCliArgument({arg:"name",value:this.redactedValue})}trackCliOptionEnvironment(environment){environment&&this.trackCliOption({option:"environment",value:this.redactedValue})}trackCliOptionGitBranch(gitBranch){gitBranch&&this.trackCliOption({option:"git-branch",value:this.redactedValue})}trackCliOptionUser(user){user&&this.trackCliOption({option:"user",value:this.redactedValue})}trackCliOptionNamespace(namespace){namespace&&this.trackCliOption({option:"namespace",value:this.redactedValue})}trackCliOptionLimit(limit){limit!==void 0&&this.trackCliOption({option:"limit",value:String(limit)})}trackCliOptionNext(next){next&&this.trackCliOption({option:"next",value:this.redactedValue})}trackCliOptionSort(sort){sort&&this.trackCliOption({option:"sort",value:sort})}trackCliOptionSince(since){since&&this.trackCliOption({option:"since",value:this.redactedValue})}trackCliOptionUntil(until){until&&this.trackCliOption({option:"until",value:this.redactedValue})}trackCliOptionFrom(from){from!==void 0&&this.trackCliOption({option:"from",value:String(from)})}trackCliOptionTo(to){to!==void 0&&this.trackCliOption({option:"to",value:String(to)})}trackCliOptionExecution(execution){execution&&this.trackCliOption({option:"execution",value:this.redactedValue})}trackCliOptionExecutionId(executionId){executionId&&this.trackCliOption({option:"execution-id",value:this.redactedValue})}trackCliOptionFormat(format2){format2&&this.trackCliOption({option:"format",value:format2})}trackCliFlagLocal(local){local&&this.trackCliFlag("local")}trackCliFlagJson(json){json&&this.trackCliFlag("json")}};var USAGE16="schedules executions list <name>",MAX_EXECUTION_RANGE_MS=30*864e5;function invalidArguments(client,message){return client.nonInteractive?(outputAgentError(client,{status:AGENT_STATUS.ERROR,reason:AGENT_REASON.INVALID_ARGUMENTS,message,next:[{command:buildCommandWithGlobalFlags(client.argv,USAGE16),when:"List schedule executions with valid options"}]}),2):(output_manager_default.fatal(message),2)}function capitalize(value){return`${value.charAt(0).toUpperCase()}${value.slice(1)}`}function formatExecutionStatus(status){return status==="succeeded"?import_chalk35.default.green("Succeeded"):status==="failed"?import_chalk35.default.red("Failed"):import_chalk35.default.gray("Unavailable")}function formatPercentage2(value){return value===null?import_chalk35.default.gray("-"):`${Number((value*100).toFixed(2))}%`}function formatDuration(value){return value===null?import_chalk35.default.gray("-"):value<1e3?`${Math.round(value)}ms`:value<6e4?`${Number((value/1e3).toFixed(1))}s`:`${Number((value/6e4).toFixed(1))}m`}function formatInvocationCount(value){return`${value} invocation${value===1?"":"s"}`}function executionMetrics(metrics){return[formatAlignedLabel("Range",`${formatDate(metrics.from)} \u2013 ${formatDate(metrics.to)}`),formatAlignedLabel("Recorded",formatInvocationCount(metrics.recordedInvocations)),formatAlignedLabel("Failed",formatInvocationCount(metrics.failedInvocations)),formatAlignedLabel("Error Rate",formatPercentage2(metrics.errorRate)),formatAlignedLabel("Avg Duration",formatDuration(metrics.averageDurationMs))].join(`
package/dist/help.js CHANGED
@@ -4,4 +4,4 @@ import { dirname as __dirname_ } from 'node:path';
4
4
  const require = __createRequire(import.meta.url);
5
5
  const __filename = __fileURLToPath(import.meta.url);
6
6
  const __dirname = __dirname_(__filename);
7
- import{ROOT_HELP_EXAMPLES,help}from"./chunks/chunk-BRETAWE7.js";import"./chunks/chunk-33U57CNE.js";import"./chunks/chunk-PUKYAALC.js";import"./chunks/chunk-YPPDRKVC.js";import"./chunks/chunk-2BKALEOP.js";import"./chunks/chunk-NB2WLB3J.js";import"./chunks/chunk-ISWW3DKF.js";import"./chunks/chunk-BULSRTQE.js";import"./chunks/chunk-BRQUZ5NC.js";import"./chunks/chunk-BZENIQ7N.js";export{ROOT_HELP_EXAMPLES,help};
7
+ import{ROOT_HELP_EXAMPLES,help}from"./chunks/chunk-XEXOSJIU.js";import"./chunks/chunk-GKALP6QD.js";import"./chunks/chunk-PUKYAALC.js";import"./chunks/chunk-CKTLP5GX.js";import"./chunks/chunk-2BKALEOP.js";import"./chunks/chunk-NB2WLB3J.js";import"./chunks/chunk-ISWW3DKF.js";import"./chunks/chunk-BULSRTQE.js";import"./chunks/chunk-BRQUZ5NC.js";import"./chunks/chunk-BZENIQ7N.js";export{ROOT_HELP_EXAMPLES,help};
package/dist/index.js CHANGED
@@ -4,14 +4,14 @@ 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{handleCommandTypo}from"./chunks/chunk-TMXIVQ45.js";import{findCommandShorthands,findHiddenShorthandOption}from"./chunks/chunk-VBKFCR5W.js";import{BETA_COMMANDS,getRootHelpCommands,help}from"./chunks/chunk-BRETAWE7.js";import{earlyGetConfig,exitWithUnexpectedError,getDirectBuildFallbackAttributes,handleUnexpectedError,installProcessGuards,isOutputDebugEnabled,registerUnexpectedErrorHandlers,reportError}from"./chunks/chunk-7PGGP2QT.js";import{canAutoUpdate,executeAutomaticUpgrade,executeUpgrade,getWhoamiCachedAnswer,hasAutoUpdatePreference,require_fetch_dist_tags,require_xdg_app_paths,scheduleNativeAutoUpdate,setAutoUpdate}from"./chunks/chunk-EDOTKQ7L.js";import"./chunks/chunk-Y5YXAXK3.js";import{getUpdateCommand}from"./chunks/chunk-4OTI552J.js";import{require_semver}from"./chunks/chunk-BPUANOGW.js";import"./chunks/chunk-U56NHYAH.js";import"./chunks/chunk-4SJU5QSD.js";import"./chunks/chunk-25565AGS.js";import{box}from"./chunks/chunk-LM3YPF3K.js";import"./chunks/chunk-DWZBL4NK.js";import{matchesCliApiTag}from"./chunks/chunk-QBOY2CXL.js";import"./chunks/chunk-KRPY5FHJ.js";import{getFalseValueWarnings}from"./chunks/chunk-E7DYXF6G.js";import{RootTelemetryClient,asksForVersion,deployAcceptsOptions,getCommandPathOptions,printCommandHelp,printGroupHelp,printUnknownCommand,tokensAfterCommand}from"./chunks/chunk-4CQKN5TW.js";import{getTeams}from"./chunks/chunk-Y6WXTTZS.js";import{commands,commandsStructs,executionsListSubcommand,schedulesCommand}from"./chunks/chunk-NTUDWWSL.js";import"./chunks/chunk-M73W4XNR.js";import"./chunks/chunk-32AS5X7G.js";import"./chunks/chunk-ZBZPCKTW.js";import"./chunks/chunk-TRZDIAX3.js";import"./chunks/chunk-GHEGWXH2.js";import"./chunks/chunk-GCXUSXB4.js";import"./chunks/chunk-2H4DUZJZ.js";import"./chunks/chunk-ECQKK4JU.js";import"./chunks/chunk-JOXGYP5S.js";import"./chunks/chunk-7ULVGK67.js";import"./chunks/chunk-4BZ3DNGM.js";import"./chunks/chunk-R5ZLTWKB.js";import"./chunks/chunk-T5TOBY4D.js";import"./chunks/chunk-H34SGIVS.js";import"./chunks/chunk-5DXC4TE2.js";import"./chunks/chunk-G3LWP5CH.js";import"./chunks/chunk-QQA2OMXJ.js";import"./chunks/chunk-KV2DYFUG.js";import"./chunks/chunk-JALVF3C2.js";import"./chunks/chunk-GCPPL24C.js";import{printError}from"./chunks/chunk-BWS3ZOHJ.js";import{configureHelpOutput}from"./chunks/chunk-33U57CNE.js";import{param}from"./chunks/chunk-3G3FQYMW.js";import{forgetCachedTeamSlug,isActiveAppToken,isAppPrincipalEnabled,resolveAppTokenScope}from"./chunks/chunk-DSNIVABS.js";import{TelemetryEventStore,getStartupDurationMs,markStartup,toCommandTrace}from"./chunks/chunk-NAU6URTI.js";import"./chunks/chunk-2EYYB6YN.js";import{isNativeBinaryInstall}from"./chunks/chunk-NWGBDBZI.js";import{AGENT_REASON,AGENT_STATUS,isHelpInvocation,isInvalidTokenError,shouldEmitNonInteractiveCommandError,trackAgentCommandOutcome}from"./chunks/chunk-32NXYHYC.js";import"./chunks/chunk-FWTBSC7Z.js";import{Client,TEAM_NOT_CHOSEN,getAuthConfigFilePath,getConfigFilePath,getLinkFromDir,getLinkedProjectIdSync,getUser,getVercelDirectory,hasLocalProjectLink,highlight,humanizePath,isValidAccessToken,readAuthConfigFile,readConfigFile,require_lib,writeToConfigFile}from"./chunks/chunk-OZPBJWYU.js";import"./chunks/chunk-64UCX5JM.js";import"./chunks/chunk-ITQPDXXA.js";import{getGlobalPathConfig}from"./chunks/chunk-7WY7ASKE.js";import"./chunks/chunk-4NTBYNFR.js";import{getUsedDeprecatedShorthands,parseArguments,require_arg}from"./chunks/chunk-CGTD4QFC.js";import{getTeamByIdOrSlug}from"./chunks/chunk-F53OKXYI.js";import{shouldPrintVersionBanner,wantsMachineReadableOutput,warnDeprecatedInput}from"./chunks/chunk-GJCVOEC2.js";import"./chunks/chunk-LUX4PBJL.js";import"./chunks/chunk-OPORM35X.js";import"./chunks/chunk-MXTC4ZAQ.js";import{require_cli_config}from"./chunks/chunk-4SAVH3H7.js";import{APIError,CantFindConfig,CantParseJSONFile}from"./chunks/chunk-T2FCF46I.js";import{cmd,getCommandNamePlain,getTitleName}from"./chunks/chunk-VRH7LWOC.js";import{pkg_default}from"./chunks/chunk-DBT6PGEH.js";import{UNCLASSIFIED_ERROR_CODE,cliErrorFromUnknown,output_manager_default,recordCliError,recordCliErrorFromOutput,takeCliError}from"./chunks/chunk-W634OFUG.js";import"./chunks/chunk-BLUPZPAS.js";import"./chunks/chunk-ZS2WS4AM.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{arg_common_default,getFlagsSpecification,getShortFlagLongName,globalCommandOptions}from"./chunks/chunk-YPPDRKVC.js";import"./chunks/chunk-2BKALEOP.js";import{require_source}from"./chunks/chunk-NB2WLB3J.js";import"./chunks/chunk-ISWW3DKF.js";import"./chunks/chunk-BULSRTQE.js";import"./chunks/chunk-BRQUZ5NC.js";import"./chunks/chunk-D6REP5QQ.js";import"./chunks/chunk-FBYA6LLM.js";import{setFetchDispatcher}from"./chunks/chunk-MY4MONOH.js";import"./chunks/chunk-7EJQLVWX.js";import"./chunks/chunk-SCV7XEEO.js";import{__toESM}from"./chunks/chunk-BZENIQ7N.js";var import_error_utils=__toESM(require_dist(),1),import_fs_extra2=__toESM(require_lib(),1),import_chalk=__toESM(require_source(),1),import_semver2=__toESM(require_semver(),1);import{join as join2,resolve}from"path";import{existsSync as existsSync2}from"fs";var import_semver=__toESM(require_semver(),1),import_xdg_app_paths=__toESM(require_xdg_app_paths(),1),import_fs_extra=__toESM(require_lib(),1);import{dirname,parse as parsePath,resolve as resolvePath}from"path";import{spawn}from"child_process";var import_fetch_dist_tags=__toESM(require_fetch_dist_tags(),1);function getLatestVersion({cacheDir=(0,import_xdg_app_paths.default)("com.vercel.cli").cache(),distTag="latest",notifyInterval=1e3*60*60*24*3,pkg,updateCheckInterval=1e3*60*60*24,consumeNotification=!0}){if(!pkg||typeof pkg!="object"||!pkg.name||typeof pkg.name!="string")throw new TypeError("Expected package to be an object with a package name");let cacheFile=resolvePath(cacheDir,"package-updates",`${pkg.name}-${distTag}.json`),cache;try{cache=(0,import_fs_extra.readJSONSync)(cacheFile)}catch(err){err.code!=="ENOENT"&&output_manager_default?.debug(`Error reading latest package cache file: ${err}`)}if((!cache||!cache.expireAt||cache.expireAt<=Date.now())&&spawnWorker({cacheFile,distTag,name:pkg.name,updateCheckInterval}),cache){let shouldNotify=!cache.notifyAt||cache.notifyAt<=Date.now(),updateAvailable=!1;if(cache.version&&pkg.version&&(updateAvailable=import_semver.default.lt(pkg.version,cache.version)),shouldNotify&&updateAvailable)return consumeNotification&&(cache.notifyAt=Date.now()+notifyInterval,(0,import_fs_extra.outputJSONSync)(cacheFile,cache)),cache.version}}function spawnWorker(payload){let dir=dirname(__filename),script=resolvePath(dir,"dist","get-latest-worker.cjs"),{root}=parsePath(dir);for(;!(0,import_fs_extra.existsSync)(script);){if(dir=dirname(dir),dir===root){output_manager_default?.debug("Failed to find the get latest worker script!");return}script=resolvePath(dir,"dist","get-latest-worker.cjs")}output_manager_default?.debug(`Spawning ${script}`);let args=[script];output_manager_default?.debugEnabled&&args.push("--debug");let worker=spawn(process.execPath,args,{stdio:["inherit","inherit","inherit","ipc"],windowsHide:!0}),workerReadyTimer=setTimeout(()=>worker.kill(),2e3),onClose=code=>{output_manager_default?.debug(`Get latest worker exited (code ${code})`)};worker.on("close",onClose),worker.on("error",err=>{output_manager_default?.log(`Failed to spawn get latest worker: ${err.stack}`)}),worker.once("message",()=>{clearTimeout(workerReadyTimer),worker.removeListener("close",onClose),worker.send(payload),worker.unref()})}async function fetchLatestVersion({name,distTag="latest",timeout=3e3}){return(await(0,import_fetch_dist_tags.fetchDistTags)(name,{timeout}))?.[distTag]}function updateLatestVersionCache({cacheDir=(0,import_xdg_app_paths.default)("com.vercel.cli").cache(),distTag="latest",name,version,updateCheckInterval=1e3*60*60*24}){let cacheFile=resolvePath(cacheDir,"package-updates",`${name}-${distTag}.json`),notifyAt;try{notifyAt=(0,import_fs_extra.readJSONSync)(cacheFile)?.notifyAt}catch{}(0,import_fs_extra.outputJSONSync)(cacheFile,{expireAt:Date.now()+updateCheckInterval,notifyAt,version})}import{URL}from"url";var SUBCOMMANDS_WITHOUT_TOKEN=["login","logout","signup","help","init","build","builders","changelog","pricing","feedback","deploy","sandbox","telemetry","upgrade","version","skills","health","doctor","status-page","agent","whoami"];var import_arg=__toESM(require_arg(),1);var flagsSpecification={...getFlagsSpecification([...schedulesCommand.options,...schedulesCommand.subcommands.flatMap(command=>command.options),...executionsListSubcommand.options]),"--local":Boolean,"-L":"--local","--changelog":Boolean};function parseSchedulesArguments(argv){let parsed=parseArguments(argv.slice(2),flagsSpecification,{warnDeprecated:!1});return{...parsed,args:[...argv.slice(0,2),...parsed.args]}}function isSchedulesCommand(argv){try{let{_:args}=(0,import_arg.default)({...arg_common_default(),...flagsSpecification},{argv:argv.slice(2),stopAtPositional:!0});return args[0]==="schedules"||args[0]==="help"&&args[1]==="schedules"}catch{return!1}}function isLocalSchedulesCommand(argv){try{let{args,flags}=parseSchedulesArguments(argv);return(args[2]==="schedules"||args[2]==="help"&&args[3]==="schedules")&&flags["--local"]===!0}catch{return!1}}function getSchedulesErrorContext(argv){let spec={...arg_common_default(),...flagsSpecification},local=!1,nonInteractive;for(let i=2;i<argv.length;i++){let token=argv[i];if(token==="--")break;if(!token.startsWith("-")||token==="-")continue;let options=token.startsWith("--")?[token]:[...token.slice(1)].map(letter=>`-${letter}`);for(let j=0;j<options.length;j++){let[option,value]=options[j].split(/=(.*)/,2),name=typeof spec[option]=="string"?spec[option]:option,handler=spec[name];if(!handler)break;if(handler!==Boolean){if(j<options.length-1)break;let next=argv[i+1];value===void 0&&next!==void 0&&(!next.startsWith("-")||next==="-"||handler===Number&&/^-?\d*(\.(?=\d))?\d*$/.test(next))&&i++;continue}if(name==="--local"&&(local=!0),name==="--non-interactive"){let separateFalse=value===void 0&&argv[i+1]==="false";value==="false"||separateFalse?(nonInteractive=!1,separateFalse&&i++):nonInteractive!==!1&&(nonInteractive=!0)}}}return{local,nonInteractive}}function getCachedScopeTeamId(config,scope){return config.cachedTeamIds?.[scope]}function setCachedScopeTeamId(client2,scope,teamId,persistedTeamId){if(getCachedScopeTeamId(client2.config,scope)===teamId)return;let config=client2.config;config.cachedTeamIds={...config.cachedTeamIds,[scope]:teamId},writeToConfigFile({...config,currentTeam:persistedTeamId})}function attempt(fn){try{return fn()}catch{return}}function createRunTelemetry({isAgent,telemetry,store,getClient,getConfigIdentity,getProjectId}){let runEndTracked=!1,saveStarted=!1,trackFailedRunError=(exitCode,client2)=>{let details=takeCliError();!isAgent||exitCode===0&&!details?.reportOnSuccess||isHelpInvocation(client2?.argv??process.argv)||(telemetry.trackErrorStatus(details?.status),telemetry.trackErrorCode(details?.code??UNCLASSIFIED_ERROR_CODE),telemetry.trackErrorSlug(details?.slug),telemetry.trackErrorAction(details?.action),telemetry.trackErrorServerMessage(details?.serverMessage))},trackRunEnd=exitCode=>{if(runEndTracked)return;runEndTracked=!0;let client2=getClient();trackFailedRunError(exitCode,client2),client2&&trackAgentCommandOutcome(client2,exitCode)};return{trackRunEnd,markSaveStarted:()=>{saveStarted=!0},get saveStarted(){return saveStarted},flushOnExit:exitCode=>{if(saveStarted)return;saveStarted=!0,attempt(()=>trackRunEnd(exitCode));let client2=getClient(),identity=attempt(getConfigIdentity);attempt(()=>store.updateTeamId(client2?.config.currentTeam??identity?.teamId)),attempt(()=>store.updateUserId(client2?.authConfig.userId??identity?.userId));let projectId=attempt(getProjectId);projectId&&store.updateProjectId(projectId),attempt(()=>telemetry.trackProjectId(store.currentProjectId)),attempt(()=>store.save({detach:!0}).catch(()=>{}))}}}function captureStdoutErrors(stream){let write=stream.write;return stream.write=function(chunk,...rest){return recordCliErrorFromOutput(chunk),Reflect.apply(write,this,[chunk,...rest])},()=>{stream.write=write}}var import_cli_config=__toESM(require_cli_config(),1);var RELEASE_NOTES_URL="https://vercel.com/docs/cli/release-notes";function getReleaseNotesUrl(version){return`${RELEASE_NOTES_URL}#vercel@${version}`}async function runUpdateMaintenance(exitCode,update){try{return await update()}catch(error){return output_manager_default.stopSpinner(),output_manager_default.debug(`Post-command update failed; preserving exit code ${exitCode??0}: ${error instanceof Error?error.message:String(error)}`),exitCode}}function shouldStartUserLookupForTelemetry({authConfig,hasTelemetryUserId}){return!hasTelemetryUserId&&!authConfig.userId&&isValidAccessToken(authConfig)}import{readFileSync}from"node:fs";import{homedir}from"node:os";import{join}from"node:path";var ACTIVE_SESSION_MARKER_PATH=join(homedir(),".config","vercel-plugin","active-session.json"),SEMVERISH_RE=/^\d+\.\d+\.\d+(?:[-+][0-9A-Za-z.-]+)?$/;function isRecord(value){return typeof value=="object"&&value!==null}function readVercelPluginActiveSessionMarker(opts={}){let filePath=opts.filePath??ACTIVE_SESSION_MARKER_PATH,now=opts.now?.()??Date.now();try{let marker=JSON.parse(readFileSync(filePath,"utf-8"));return!isRecord(marker)||marker.schema!==1||marker.active!==!0||typeof marker.expiresAt!="number"||marker.expiresAt<=now||typeof marker.pluginVersion!="string"||!SEMVERISH_RE.test(marker.pluginVersion)?null:{pluginVersion:marker.pluginVersion}}catch{return null}}function checkGuidanceStatus({config}){process.env.FF_GUIDANCE_MODE&&(process.env.CI||process.env.VERCEL_GUIDANCE_DISABLED||config.guidance||(output_manager_default.note("The Vercel CLI can suggest common follow-up commands and steps to help guide new users."),output_manager_default.log("You can disable this feature by running:"),output_manager_default.log("vercel guidance disable"),output_manager_default.log("or by setting VERCEL_GUIDANCE_DISABLED=1"),config.guidance={enabled:!0},writeToConfigFile(config)))}import{determineAgent}from"@vercel/detect-agent";var import_build_utils=__toESM(require_build_utils(),1);import{mkdir,writeFile}from"fs/promises";try{process.cwd()}catch(err){(0,import_error_utils.isError)(err)&&err.message.includes("uv_cwd")&&(console.error("Error: The current working directory does not exist."),process.exit(1))}markStartup("module_init");var VERCEL_DIR=getGlobalPathConfig(),VERCEL_CONFIG_PATH=getConfigFilePath(),VERCEL_AUTH_CONFIG_PATH=getAuthConfigFilePath(),GLOBAL_COMMANDS=new Set(["help"]);function hasProxyConfig(){return["HTTP_PROXY","HTTPS_PROXY","http_proxy","https_proxy","ALL_PROXY","all_proxy"].some(v=>process.env[v])}installProcessGuards();var client,resolvedCommandForUpdate;registerUnexpectedErrorHandlers(()=>client);process.env.CLAUDECODE&&process.stderr.write(`<claude-code-hint v="1" type="plugin" value="vercel@claude-plugins-official" />
7
+ import{handleCommandTypo}from"./chunks/chunk-F2LNGJOZ.js";import{findCommandShorthands,findHiddenShorthandOption}from"./chunks/chunk-G5T6UQAL.js";import{BETA_COMMANDS,getRootHelpCommands,help}from"./chunks/chunk-XEXOSJIU.js";import{earlyGetConfig,exitWithUnexpectedError,getDirectBuildFallbackAttributes,handleUnexpectedError,installProcessGuards,isOutputDebugEnabled,registerUnexpectedErrorHandlers,reportError}from"./chunks/chunk-2JCJP43W.js";import{canAutoUpdate,executeAutomaticUpgrade,executeUpgrade,getWhoamiCachedAnswer,hasAutoUpdatePreference,require_fetch_dist_tags,require_xdg_app_paths,scheduleNativeAutoUpdate,setAutoUpdate}from"./chunks/chunk-ZGQNI22M.js";import"./chunks/chunk-R3D4M5RE.js";import{getUpdateCommand}from"./chunks/chunk-KWXJIVBG.js";import{getFalseValueWarnings}from"./chunks/chunk-E7DYXF6G.js";import{require_semver}from"./chunks/chunk-BPUANOGW.js";import"./chunks/chunk-U56NHYAH.js";import"./chunks/chunk-FQVIWQ6M.js";import"./chunks/chunk-25565AGS.js";import{box}from"./chunks/chunk-LM3YPF3K.js";import"./chunks/chunk-DWZBL4NK.js";import{matchesCliApiTag}from"./chunks/chunk-SODZSOOL.js";import{RootTelemetryClient,asksForVersion,deployAcceptsOptions,getCommandPathOptions,printCommandHelp,printGroupHelp,printUnknownCommand,tokensAfterCommand}from"./chunks/chunk-G7H33IKQ.js";import{getTeams}from"./chunks/chunk-BPRGAX62.js";import{commands,commandsStructs,executionsListSubcommand,schedulesCommand}from"./chunks/chunk-FTACGWII.js";import"./chunks/chunk-CZOD25BC.js";import"./chunks/chunk-77LSSWXL.js";import"./chunks/chunk-MUNGQJGO.js";import"./chunks/chunk-W5GHMAHP.js";import"./chunks/chunk-ANCWFEOM.js";import"./chunks/chunk-QVMU7ZKQ.js";import"./chunks/chunk-TL4ZLZ2Q.js";import"./chunks/chunk-VD2FK6OF.js";import"./chunks/chunk-JVNIDSP5.js";import"./chunks/chunk-NLKM5LR5.js";import"./chunks/chunk-BB5UMZMF.js";import"./chunks/chunk-4LGAV2WN.js";import"./chunks/chunk-EJZNJN4N.js";import"./chunks/chunk-S5JBQCBA.js";import"./chunks/chunk-5DXC4TE2.js";import"./chunks/chunk-FAVZ6WVS.js";import"./chunks/chunk-5KE67O45.js";import"./chunks/chunk-T7HE23VK.js";import"./chunks/chunk-JALVF3C2.js";import"./chunks/chunk-CUBRYWA2.js";import{printError}from"./chunks/chunk-Q4GX2UTG.js";import{configureHelpOutput}from"./chunks/chunk-GKALP6QD.js";import{param}from"./chunks/chunk-3G3FQYMW.js";import{forgetCachedTeamSlug,isActiveAppToken,isAppPrincipalEnabled,resolveAppTokenScope}from"./chunks/chunk-TZ6MSTOI.js";import{TelemetryEventStore,getStartupDurationMs,markStartup,toCommandTrace}from"./chunks/chunk-VPUYTI5E.js";import"./chunks/chunk-2EYYB6YN.js";import{isNativeBinaryInstall}from"./chunks/chunk-NWGBDBZI.js";import{isHelpInvocation,isInvalidTokenError,shouldEmitNonInteractiveCommandError,trackAgentCommandOutcome}from"./chunks/chunk-ZUI5EMXD.js";import"./chunks/chunk-FY4ORPZH.js";import{Client,TEAM_NOT_CHOSEN,getAuthConfigFilePath,getConfigFilePath,getLinkFromDir,getLinkedProjectIdSync,getUser,getVercelDirectory,hasLocalProjectLink,highlight,humanizePath,isValidAccessToken,readAuthConfigFile,readConfigFile,require_lib,writeToConfigFile}from"./chunks/chunk-KNAOHPOI.js";import"./chunks/chunk-64UCX5JM.js";import"./chunks/chunk-ITQPDXXA.js";import{getGlobalPathConfig}from"./chunks/chunk-56UH6NQ3.js";import"./chunks/chunk-4NTBYNFR.js";import{getUsedDeprecatedShorthands,parseArguments,require_arg}from"./chunks/chunk-C4N4LKPM.js";import{getTeamByIdOrSlug}from"./chunks/chunk-2VBFQZ72.js";import{shouldPrintVersionBanner,wantsMachineReadableOutput,warnDeprecatedInput}from"./chunks/chunk-GJCVOEC2.js";import"./chunks/chunk-LUX4PBJL.js";import"./chunks/chunk-OPORM35X.js";import"./chunks/chunk-MXTC4ZAQ.js";import"./chunks/chunk-ZS2WS4AM.js";import{require_cli_config}from"./chunks/chunk-4SAVH3H7.js";import{APIError,CantFindConfig,CantParseJSONFile}from"./chunks/chunk-T2FCF46I.js";import{cmd,getCommandNamePlain,getTitleName}from"./chunks/chunk-VRH7LWOC.js";import{pkg_default}from"./chunks/chunk-DBT6PGEH.js";import{UNCLASSIFIED_ERROR_CODE,cliErrorFromUnknown,output_manager_default,recordCliError,recordCliErrorFromOutput,takeCliError}from"./chunks/chunk-W634OFUG.js";import"./chunks/chunk-BLUPZPAS.js";import{require_build_utils}from"./chunks/chunk-5MDNVAE6.js";import"./chunks/chunk-OCR5CRTH.js";import{require_dist}from"./chunks/chunk-RM3ZDRYE.js";import"./chunks/chunk-YHPPP3SF.js";import"./chunks/chunk-PUKYAALC.js";import{arg_common_default,getFlagsSpecification,getShortFlagLongName,globalCommandOptions}from"./chunks/chunk-CKTLP5GX.js";import"./chunks/chunk-2BKALEOP.js";import{require_source}from"./chunks/chunk-NB2WLB3J.js";import"./chunks/chunk-ISWW3DKF.js";import"./chunks/chunk-BULSRTQE.js";import"./chunks/chunk-BRQUZ5NC.js";import"./chunks/chunk-KRPY5FHJ.js";import"./chunks/chunk-D6REP5QQ.js";import"./chunks/chunk-FBYA6LLM.js";import{setFetchDispatcher}from"./chunks/chunk-MY4MONOH.js";import"./chunks/chunk-7EJQLVWX.js";import"./chunks/chunk-SCV7XEEO.js";import{AGENT_REASON,AGENT_STATUS}from"./chunks/chunk-CFYTFXX6.js";import{__toESM}from"./chunks/chunk-BZENIQ7N.js";var import_error_utils=__toESM(require_dist(),1),import_fs_extra2=__toESM(require_lib(),1),import_chalk=__toESM(require_source(),1),import_semver2=__toESM(require_semver(),1);import{join as join2,resolve}from"path";import{existsSync as existsSync2}from"fs";var import_semver=__toESM(require_semver(),1),import_xdg_app_paths=__toESM(require_xdg_app_paths(),1),import_fs_extra=__toESM(require_lib(),1);import{dirname,parse as parsePath,resolve as resolvePath}from"path";import{spawn}from"child_process";var import_fetch_dist_tags=__toESM(require_fetch_dist_tags(),1);function getLatestVersion({cacheDir=(0,import_xdg_app_paths.default)("com.vercel.cli").cache(),distTag="latest",notifyInterval=1e3*60*60*24*3,pkg,updateCheckInterval=1e3*60*60*24,consumeNotification=!0}){if(!pkg||typeof pkg!="object"||!pkg.name||typeof pkg.name!="string")throw new TypeError("Expected package to be an object with a package name");let cacheFile=resolvePath(cacheDir,"package-updates",`${pkg.name}-${distTag}.json`),cache;try{cache=(0,import_fs_extra.readJSONSync)(cacheFile)}catch(err){err.code!=="ENOENT"&&output_manager_default?.debug(`Error reading latest package cache file: ${err}`)}if((!cache||!cache.expireAt||cache.expireAt<=Date.now())&&spawnWorker({cacheFile,distTag,name:pkg.name,updateCheckInterval}),cache){let shouldNotify=!cache.notifyAt||cache.notifyAt<=Date.now(),updateAvailable=!1;if(cache.version&&pkg.version&&(updateAvailable=import_semver.default.lt(pkg.version,cache.version)),shouldNotify&&updateAvailable)return consumeNotification&&(cache.notifyAt=Date.now()+notifyInterval,(0,import_fs_extra.outputJSONSync)(cacheFile,cache)),cache.version}}function spawnWorker(payload){let dir=dirname(__filename),script=resolvePath(dir,"dist","get-latest-worker.cjs"),{root}=parsePath(dir);for(;!(0,import_fs_extra.existsSync)(script);){if(dir=dirname(dir),dir===root){output_manager_default?.debug("Failed to find the get latest worker script!");return}script=resolvePath(dir,"dist","get-latest-worker.cjs")}output_manager_default?.debug(`Spawning ${script}`);let args=[script];output_manager_default?.debugEnabled&&args.push("--debug");let worker=spawn(process.execPath,args,{stdio:["inherit","inherit","inherit","ipc"],windowsHide:!0}),workerReadyTimer=setTimeout(()=>worker.kill(),2e3),onClose=code=>{output_manager_default?.debug(`Get latest worker exited (code ${code})`)};worker.on("close",onClose),worker.on("error",err=>{output_manager_default?.log(`Failed to spawn get latest worker: ${err.stack}`)}),worker.once("message",()=>{clearTimeout(workerReadyTimer),worker.removeListener("close",onClose),worker.send(payload),worker.unref()})}async function fetchLatestVersion({name,distTag="latest",timeout=3e3}){return(await(0,import_fetch_dist_tags.fetchDistTags)(name,{timeout}))?.[distTag]}function updateLatestVersionCache({cacheDir=(0,import_xdg_app_paths.default)("com.vercel.cli").cache(),distTag="latest",name,version,updateCheckInterval=1e3*60*60*24}){let cacheFile=resolvePath(cacheDir,"package-updates",`${name}-${distTag}.json`),notifyAt;try{notifyAt=(0,import_fs_extra.readJSONSync)(cacheFile)?.notifyAt}catch{}(0,import_fs_extra.outputJSONSync)(cacheFile,{expireAt:Date.now()+updateCheckInterval,notifyAt,version})}import{URL}from"url";var SUBCOMMANDS_WITHOUT_TOKEN=["login","logout","signup","help","init","build","builders","changelog","pricing","feedback","deploy","sandbox","telemetry","upgrade","version","skills","health","doctor","status-page","agent","whoami"];var import_arg=__toESM(require_arg(),1);var flagsSpecification={...getFlagsSpecification([...schedulesCommand.options,...schedulesCommand.subcommands.flatMap(command=>command.options),...executionsListSubcommand.options]),"--local":Boolean,"-L":"--local","--changelog":Boolean};function parseSchedulesArguments(argv){let parsed=parseArguments(argv.slice(2),flagsSpecification,{warnDeprecated:!1});return{...parsed,args:[...argv.slice(0,2),...parsed.args]}}function isSchedulesCommand(argv){try{let{_:args}=(0,import_arg.default)({...arg_common_default(),...flagsSpecification},{argv:argv.slice(2),stopAtPositional:!0});return args[0]==="schedules"||args[0]==="help"&&args[1]==="schedules"}catch{return!1}}function isLocalSchedulesCommand(argv){try{let{args,flags}=parseSchedulesArguments(argv);return(args[2]==="schedules"||args[2]==="help"&&args[3]==="schedules")&&flags["--local"]===!0}catch{return!1}}function getSchedulesErrorContext(argv){let spec={...arg_common_default(),...flagsSpecification},local=!1,nonInteractive;for(let i=2;i<argv.length;i++){let token=argv[i];if(token==="--")break;if(!token.startsWith("-")||token==="-")continue;let options=token.startsWith("--")?[token]:[...token.slice(1)].map(letter=>`-${letter}`);for(let j=0;j<options.length;j++){let[option,value]=options[j].split(/=(.*)/,2),name=typeof spec[option]=="string"?spec[option]:option,handler=spec[name];if(!handler)break;if(handler!==Boolean){if(j<options.length-1)break;let next=argv[i+1];value===void 0&&next!==void 0&&(!next.startsWith("-")||next==="-"||handler===Number&&/^-?\d*(\.(?=\d))?\d*$/.test(next))&&i++;continue}if(name==="--local"&&(local=!0),name==="--non-interactive"){let separateFalse=value===void 0&&argv[i+1]==="false";value==="false"||separateFalse?(nonInteractive=!1,separateFalse&&i++):nonInteractive!==!1&&(nonInteractive=!0)}}}return{local,nonInteractive}}function getCachedScopeTeamId(config,scope){return config.cachedTeamIds?.[scope]}function setCachedScopeTeamId(client2,scope,teamId,persistedTeamId){if(getCachedScopeTeamId(client2.config,scope)===teamId)return;let config=client2.config;config.cachedTeamIds={...config.cachedTeamIds,[scope]:teamId},writeToConfigFile({...config,currentTeam:persistedTeamId})}function attempt(fn){try{return fn()}catch{return}}function createRunTelemetry({isAgent,telemetry,store,getClient,getConfigIdentity,getProjectId}){let runEndTracked=!1,saveStarted=!1,trackFailedRunError=(exitCode,client2)=>{let details=takeCliError();!isAgent||exitCode===0&&!details?.reportOnSuccess||isHelpInvocation(client2?.argv??process.argv)||(telemetry.trackErrorStatus(details?.status),telemetry.trackErrorCode(details?.code??UNCLASSIFIED_ERROR_CODE),telemetry.trackErrorSlug(details?.slug),telemetry.trackErrorAction(details?.action),telemetry.trackErrorServerMessage(details?.serverMessage))},trackRunEnd=exitCode=>{if(runEndTracked)return;runEndTracked=!0;let client2=getClient();trackFailedRunError(exitCode,client2),client2&&trackAgentCommandOutcome(client2,exitCode)};return{trackRunEnd,markSaveStarted:()=>{saveStarted=!0},get saveStarted(){return saveStarted},flushOnExit:exitCode=>{if(saveStarted)return;saveStarted=!0,attempt(()=>trackRunEnd(exitCode));let client2=getClient(),identity=attempt(getConfigIdentity);attempt(()=>store.updateTeamId(client2?.config.currentTeam??identity?.teamId)),attempt(()=>store.updateUserId(client2?.authConfig.userId??identity?.userId));let projectId=attempt(getProjectId);projectId&&store.updateProjectId(projectId),attempt(()=>telemetry.trackProjectId(store.currentProjectId)),attempt(()=>store.save({detach:!0}).catch(()=>{}))}}}function captureStdoutErrors(stream){let write=stream.write;return stream.write=function(chunk,...rest){return recordCliErrorFromOutput(chunk),Reflect.apply(write,this,[chunk,...rest])},()=>{stream.write=write}}var import_cli_config=__toESM(require_cli_config(),1);var RELEASE_NOTES_URL="https://vercel.com/docs/cli/release-notes";function getReleaseNotesUrl(version){return`${RELEASE_NOTES_URL}#vercel@${version}`}async function runUpdateMaintenance(exitCode,update){try{return await update()}catch(error){return output_manager_default.stopSpinner(),output_manager_default.debug(`Post-command update failed; preserving exit code ${exitCode??0}: ${error instanceof Error?error.message:String(error)}`),exitCode}}function shouldStartUserLookupForTelemetry({authConfig,hasTelemetryUserId}){return!hasTelemetryUserId&&!authConfig.userId&&isValidAccessToken(authConfig)}import{readFileSync}from"node:fs";import{homedir}from"node:os";import{join}from"node:path";var ACTIVE_SESSION_MARKER_PATH=join(homedir(),".config","vercel-plugin","active-session.json"),SEMVERISH_RE=/^\d+\.\d+\.\d+(?:[-+][0-9A-Za-z.-]+)?$/;function isRecord(value){return typeof value=="object"&&value!==null}function readVercelPluginActiveSessionMarker(opts={}){let filePath=opts.filePath??ACTIVE_SESSION_MARKER_PATH,now=opts.now?.()??Date.now();try{let marker=JSON.parse(readFileSync(filePath,"utf-8"));return!isRecord(marker)||marker.schema!==1||marker.active!==!0||typeof marker.expiresAt!="number"||marker.expiresAt<=now||typeof marker.pluginVersion!="string"||!SEMVERISH_RE.test(marker.pluginVersion)?null:{pluginVersion:marker.pluginVersion}}catch{return null}}function checkGuidanceStatus({config}){process.env.FF_GUIDANCE_MODE&&(process.env.CI||process.env.VERCEL_GUIDANCE_DISABLED||config.guidance||(output_manager_default.note("The Vercel CLI can suggest common follow-up commands and steps to help guide new users."),output_manager_default.log("You can disable this feature by running:"),output_manager_default.log("vercel guidance disable"),output_manager_default.log("or by setting VERCEL_GUIDANCE_DISABLED=1"),config.guidance={enabled:!0},writeToConfigFile(config)))}import{determineAgent}from"@vercel/detect-agent";var import_build_utils=__toESM(require_build_utils(),1);import{mkdir,writeFile}from"fs/promises";try{process.cwd()}catch(err){(0,import_error_utils.isError)(err)&&err.message.includes("uv_cwd")&&(console.error("Error: The current working directory does not exist."),process.exit(1))}markStartup("module_init");var VERCEL_DIR=getGlobalPathConfig(),VERCEL_CONFIG_PATH=getConfigFilePath(),VERCEL_AUTH_CONFIG_PATH=getAuthConfigFilePath(),GLOBAL_COMMANDS=new Set(["help"]);function hasProxyConfig(){return["HTTP_PROXY","HTTPS_PROXY","http_proxy","https_proxy","ALL_PROXY","all_proxy"].some(v=>process.env[v])}installProcessGuards();var client,resolvedCommandForUpdate;registerUnexpectedErrorHandlers(()=>client);process.env.CLAUDECODE&&process.stderr.write(`<claude-code-hint v="1" type="plugin" value="vercel@claude-plugins-official" />
8
8
  `);var IS_LOCAL_SCHEDULES_COMMAND=isLocalSchedulesCommand(process.argv),SHOULD_CHECK_FOR_UPDATES=!IS_LOCAL_SCHEDULES_COMMAND&&!process.env.NO_UPDATE_NOTIFIER&&!process.env.VERCEL,{isTTY}=process.stdout,apiUrl="https://api.vercel.com",InMemoryReporter=class{constructor(){this.events=[]}report(event){this.events.push(event)}},main=async()=>{markStartup("arguments");let traceReporter=new InMemoryReporter,rootSpan=new import_build_utils.Span({name:"vc.cli",reporter:traceReporter,attrs:getDirectBuildFallbackAttributes()}),isTelemetryFlushCommand=process.argv[2]==="telemetry"&&process.argv[3]==="flush";process.env.FORCE_TTY==="1"&&(isTTY=!0,process.stdout.isTTY=!0,process.stdin.isTTY=!0);let commandShorthands=findCommandShorthands(commandsStructs,process.argv,2),parseInitialArgs=({keepNegations=!1}={})=>IS_LOCAL_SCHEDULES_COMMAND||isSchedulesCommand(process.argv)?parseSchedulesArguments(process.argv):parseArguments(process.argv,{"--version":Boolean,"-v":"--version","--changelog":Boolean,"--non-interactive":Boolean},{permissive:!0,keepNegations,commandShorthands}),emitSchedulesArgumentError=async message=>{if(isSchedulesCommand(process.argv)){let context=getSchedulesErrorContext(process.argv);if(context.nonInteractive??((await determineAgent()).isAgent&&process.stdin?.isTTY!==!0))return process.stdout.write(`${JSON.stringify({status:AGENT_STATUS.ERROR,reason:AGENT_REASON.INVALID_ARGUMENTS,message,next:[{command:getCommandNamePlain(`schedules${context.local?" --local":""} --help`),when:"Review the supported schedules options"}]},null,2)}
9
9
  `),!0}return!1},parsedArgs;try{parsedArgs=parseInitialArgs();let isDebugging=isOutputDebugEnabled(parsedArgs.flags["--debug"]),isNoColor=parsedArgs.flags["--no-color"];configureHelpOutput(isNoColor),output_manager_default.initialize({debug:isDebugging,noColor:isNoColor})}catch(err){return await emitSchedulesArgumentError(err instanceof Error?err.message:String(err))||printError(err),2}if(IS_LOCAL_SCHEDULES_COMMAND&&(parsedArgs.flags["--token"]!==void 0||parsedArgs.flags["--scope"]!==void 0||parsedArgs.flags["--team"]!==void 0)){let message="Can't combine `--local` with `--token`, `--scope`, or `--team`. Remove the cloud options to manage local schedules.";return await emitSchedulesArgumentError(message)||output_manager_default.fatal(message),2}markStartup("local_config");let localConfigPath=parsedArgs.flags["--local-config"],localConfig=await earlyGetConfig(localConfigPath);if(localConfig instanceof CantParseJSONFile)return output_manager_default.error(`Couldn't parse JSON file ${localConfig.meta.file}.`),1;if(localConfig instanceof CantFindConfig){if(localConfigPath)return output_manager_default.error(`Couldn't find a project configuration file at
10
10
  ${localConfig.meta.paths.join(` or
11
11
  `)}`),1;localConfig=void 0}if(localConfig instanceof Error)return output_manager_default.prettyError(localConfig),1;let targetOrSubcommand=parsedArgs.args[2]||(parsedArgs.flags["--changelog"]?"changelog":void 0),subSubCommand=parsedArgs.args[3],shortBuildLabel=void 0?` (${(void 0).split(" ")[0]})`:"",versionBanner=isNativeBinaryInstall()?`${getTitleName()} CLI ${pkg_default.version}${shortBuildLabel}`:`${getTitleName()} CLI ${pkg_default.version}${shortBuildLabel} (Node.js ${process.versions.node})`,msg=versionBanner;if(targetOrSubcommand==="ci"?msg=`${versionBanner} | ci is in beta`:targetOrSubcommand&&BETA_COMMANDS.has(targetOrSubcommand)&&(msg=`${versionBanner} | ${targetOrSubcommand} is in beta \u2014 https://vercel.com/feedback`),shouldPrintVersionBanner(targetOrSubcommand,process.argv)&&output_manager_default.print(`${import_chalk.default.dim(msg)}
12
- `),!targetOrSubcommand&&parsedArgs.flags["--help"]||targetOrSubcommand==="help"&&(!subSubCommand||subSubCommand==="help"))return process.stdout.write(help(getRootHelpCommands(commandsStructs),process.stdout.columns)),0;if(!targetOrSubcommand&&parsedArgs.flags["--version"])return console.log(pkg_default.version),0;markStartup("global_config");try{await(0,import_fs_extra2.mkdirp)(VERCEL_DIR)}catch(err){return output_manager_default.error(`An unexpected error occurred while trying to create the global directory "${humanizePath(VERCEL_DIR)}" ${(0,import_error_utils.errorToString)(err)}`),1}let config;try{config=readConfigFile()}catch(err){if((0,import_error_utils.isErrnoException)(err)&&err.code==="ENOENT"){config=import_cli_config.defaultGlobalConfig;try{writeToConfigFile(config)}catch(err2){return output_manager_default.error(`An unexpected error occurred while trying to save the config to "${humanizePath(VERCEL_CONFIG_PATH)}" ${(0,import_error_utils.errorToString)(err2)}`),1}}else return output_manager_default.error(`An unexpected error occurred while trying to read the config in "${humanizePath(VERCEL_CONFIG_PATH)}" ${(0,import_error_utils.errorToString)(err)}`),1}let tokenSource,explicitToken;typeof parsedArgs.flags["--token"]=="string"?(explicitToken=parsedArgs.flags["--token"],tokenSource="flag"):!IS_LOCAL_SCHEDULES_COMMAND&&process.env.VERCEL_TOKEN&&(explicitToken=process.env.VERCEL_TOKEN,tokenSource="env"),markStartup("credentials");let authConfig;if(IS_LOCAL_SCHEDULES_COMMAND||tokenSource)authConfig=(0,import_cli_config.getDefaultAuthConfig)();else try{authConfig=readAuthConfigFile(config)}catch(err){if((0,import_error_utils.isErrnoException)(err)&&err.code==="ENOENT")authConfig=(0,import_cli_config.getDefaultAuthConfig)();else return output_manager_default.error(`An unexpected error occurred while trying to read the auth config in "${humanizePath(VERCEL_AUTH_CONFIG_PATH)}" ${(0,import_error_utils.errorToString)(err)}`),1}markStartup("telemetry");let telemetryEventStore=new TelemetryEventStore({isDebug:process.env.VERCEL_TELEMETRY_DEBUG==="1",config:config.telemetry,globalConfigDir:VERCEL_DIR,cliDevice:isTelemetryFlushCommand?void 0:{filePath:join2(VERCEL_DIR,"telemetry-device.json")},cliSession:isTelemetryFlushCommand?void 0:{filePath:join2(VERCEL_DIR,"telemetry-session.json")}});process.env.FF_GUIDANCE_MODE&&checkGuidanceStatus({config});let telemetry=new RootTelemetryClient({opts:{store:telemetryEventStore}});markStartup("agent_detection");let{isAgent,agent:detectedAgent}=await determineAgent();markStartup("cli_setup"),isAgent&&output_manager_default.initialize({hideSpinners:!0}),telemetry.trackInvocationId(telemetryEventStore.currentInvocationId),telemetry.trackDeviceId(telemetryEventStore.currentDeviceId);let vercelPluginMarker=readVercelPluginActiveSessionMarker();vercelPluginMarker&&(telemetry.trackVercelPluginActiveSession(),telemetry.trackVercelPluginVersion(vercelPluginMarker.pluginVersion)),telemetry.trackAgenticUse(detectedAgent?.name),telemetry.trackCPUs(),telemetry.trackPlatform(),telemetry.trackArch(),telemetry.trackLibc(telemetryEventStore.currentLibc),telemetry.trackCliLaunch(),telemetry.trackCIVendorName(),telemetry.trackStdinIsTTY(process.stdin?.isTTY===!0),telemetry.trackVersion(pkg_default.version),telemetry.trackCliOptionCwd(parsedArgs.flags["--cwd"]),telemetry.trackCliOptionLocalConfig(parsedArgs.flags["--local-config"]),telemetry.trackCliOptionGlobalConfig(parsedArgs.flags["--global-config"]),telemetry.trackCliFlagDebug(parsedArgs.flags["--debug"]),telemetry.trackCliFlagNoColor(parsedArgs.flags["--no-color"]),telemetry.trackCliOptionScope(parsedArgs.flags["--scope"]),telemetry.trackCliOptionToken(parsedArgs.flags["--token"]),telemetry.trackCliOptionTeam(parsedArgs.flags["--team"]),telemetry.trackCliOptionApi(parsedArgs.flags["--api"]);let earlyGetUserPromise,trackAgenticErrorTelemetry=err=>{recordCliError(cliErrorFromUnknown(err,{includeMessage:!0}),{override:!0})},runTelemetry=createRunTelemetry({isAgent,telemetry,store:telemetryEventStore,getClient:()=>client,getConfigIdentity:()=>({teamId:config.currentTeam,userId:authConfig.userId}),getProjectId:()=>(0,import_build_utils.getPlatformEnv)("PROJECT_ID")??getLinkedProjectIdSync(getVercelDirectory(client?.cwd||(typeof parsedArgs.flags["--cwd"]=="string"?parsedArgs.flags["--cwd"]:process.cwd())))}),saveTelemetry=async()=>{if(runTelemetry.saveStarted)return;let postCommandSpan=rootSpan.child("vc.postCommand");if(client&&telemetryEventStore.updateConfig(client.config.telemetry),telemetryEventStore.updateTeamId(client?.config.currentTeam??config.currentTeam),telemetryEventStore.updateUserId(client?.authConfig.userId??authConfig.userId),!telemetryEventStore.hasUserId){let getUserSpan=postCommandSpan.child("vc.postCommand.getUser");try{let user=await earlyGetUserPromise;user&&telemetryEventStore.updateUserId(user.id)}catch{}finally{getUserSpan.stop()}}try{let envProjectId=(0,import_build_utils.getPlatformEnv)("PROJECT_ID");if(envProjectId)telemetryEventStore.updateProjectId(envProjectId);else{let cwdForProjectId=client?.cwd||(typeof parsedArgs.flags["--cwd"]=="string"?parsedArgs.flags["--cwd"]:process.cwd()),link=await getLinkFromDir(getVercelDirectory(cwdForProjectId));link&&telemetryEventStore.updateProjectId(link.projectId)}}catch{}telemetry.trackProjectId(telemetryEventStore.currentProjectId),telemetry.trackCliDeprecatedShorthands(getUsedDeprecatedShorthands()),postCommandSpan.stop(),runTelemetry.markSaveStarted(),await telemetryEventStore.save()},runningCommandSpan,startupDurationMs,commandErrorSource,queueCommandTrace=(exitCode2,completion)=>{if(isTelemetryFlushCommand||!resolvedCommandForUpdate)return;let event=traceReporter.events.find(e=>e.name==="vc.cli.command");event&&telemetryEventStore.setCommandTrace(toCommandTrace(event,{command:resolvedCommandForUpdate,invocationId:telemetryEventStore.currentInvocationId,cliVersion:pkg_default.version,releaseChannel:String(import_semver2.default.prerelease(pkg_default.version)?.[0]??"stable"),isAgent,agentName:detectedAgent?.name,exitCode:exitCode2,completion,startupDurationMs,errorSource:commandErrorSource,subcommand:telemetryEventStore.commandSubcommand}),void 0,event,traceReporter.events)},finishWithExitCode=async code=>(queueCommandTrace(code,"completed"),runTelemetry.trackRunEnd(code),await saveTelemetry(),code);process.once("exit",code=>{runTelemetry.saveStarted||(attempt(()=>runningCommandSpan?.stop()),attempt(()=>queueCommandTrace(code,"process_exit"))),runTelemetry.flushOnExit(code)}),isAgent&&(captureStdoutErrors(process.stdout),process.on("uncaughtExceptionMonitor",err=>{recordCliError(cliErrorFromUnknown(err))})),!IS_LOCAL_SCHEDULES_COMMAND&&typeof parsedArgs.flags["--api"]=="string"?apiUrl=parsedArgs.flags["--api"]:!IS_LOCAL_SCHEDULES_COMMAND&&config&&config.api&&(apiUrl=config.api);try{new URL(apiUrl)}catch{return output_manager_default.error(`Please provide a valid URL instead of ${highlight(apiUrl)}.`),finishWithExitCode(1)}let stdinIsTTY=process.stdin?.isTTY===!0,nonInteractiveFlag=parsedArgs.flags["--non-interactive"]===!0,argv=process.argv,explicitNonInteractiveFalse=argv.includes("--non-interactive=false")||argv.includes("--no-non-interactive")||argv.includes("--non-interactive")&&argv[argv.indexOf("--non-interactive")+1]==="false",nonInteractive=explicitNonInteractiveFalse?!1:nonInteractiveFlag||isAgent&&!stdinIsTTY;if(output_manager_default.debug(`Agent/TTY/nonInteractive: isAgent=${isAgent} agentName=${detectedAgent?.name??"none"} stdin.isTTY=${String(process.stdin?.isTTY)} --non-interactive=${nonInteractiveFlag} explicitFalse=${explicitNonInteractiveFalse} => nonInteractive=${nonInteractive}`),!IS_LOCAL_SCHEDULES_COMMAND&&hasProxyConfig()){let{EnvProxyDispatcher}=await import("./chunks/fetch-proxy-MOKBS56A.js");setFetchDispatcher(new EnvProxyDispatcher)}markStartup("client"),client=new Client({apiUrl,stdin:process.stdin,stdout:process.stdout,stderr:output_manager_default.stream,config,authConfig,localConfig,localConfigPath,argv:process.argv,telemetryEventStore,isAgent,agentName:detectedAgent?.name,nonInteractive}),client.rootSpan=rootSpan,markStartup("routing"),parsedArgs.flags["--cwd"]&&(client.cwd=parsedArgs.flags["--cwd"]);let{cwd}=client,defaultDeploy=!1,subcommand,userSuppliedSubCommand="";if(targetOrSubcommand){let targetPath=resolve(cwd,targetOrSubcommand),targetPathExists=existsSync2(targetPath),subcommandExists=GLOBAL_COMMANDS.has(targetOrSubcommand)||commands.has(targetOrSubcommand);if(targetPathExists&&subcommandExists&&!parsedArgs.flags["--cwd"]&&!process.env.NOW_BUILDER&&!wantsMachineReadableOutput(targetOrSubcommand,process.argv)&&!await hasLocalProjectLink(client,cwd)&&output_manager_default.warn(`Did you mean to deploy the subdirectory "${targetOrSubcommand}"? Use \`vc --cwd ${targetOrSubcommand}\` instead.`),subcommandExists)output_manager_default.debug(`user supplied known subcommand: "${targetOrSubcommand}"`),subcommand=targetOrSubcommand,userSuppliedSubCommand=targetOrSubcommand;else if(output_manager_default.debug("user supplied a possible target for deployment or an extension"),process.env.VERCEL_AUTO_API&&await matchesCliApiTag(targetOrSubcommand)){output_manager_default.debug(`first token "${targetOrSubcommand}" matches an OpenAPI tag; routing to api`);let tag=targetOrSubcommand,{tryOpenApiFallback}=await import("./chunks/openapi-KYC6JIXI.js"),result=await tryOpenApiFallback(client,parsedArgs.args.slice(3),async()=>tag);return finishWithExitCode(result??1)}else targetPathExists&&(subcommand="deploy",userSuppliedSubCommand=targetOrSubcommand,output_manager_default.debug(`first token "${targetOrSubcommand}" is an existing path; routing to deploy`))}else output_manager_default.debug("user supplied no target, defaulting to deploy"),subcommand="deploy",defaultDeploy=!0;let helpCommandTarget;if(subcommand==="help"){telemetry.trackCliCommandHelp("help");let isDeployPath=subSubCommand!==void 0&&!commands.has(subSubCommand)&&existsSync2(resolve(cwd,subSubCommand));helpCommandTarget=isDeployPath?void 0:subSubCommand,subcommand=isDeployPath?"deploy":subSubCommand||"deploy";let helpTokenIndex=client.argv.indexOf("help",2);helpTokenIndex!==-1&&client.argv.splice(helpTokenIndex,1),client.argv.push("-h")}let helpRequested=parsedArgs.args[2]==="help"||parsedArgs.flags["--help"]===!0;if(helpRequested){let helpExitCode=printCommandHelp(client,subcommand,tokensAfterCommand(client.argv));if(helpExitCode!==void 0)return finishWithExitCode(helpExitCode)}else{if(parsedArgs.flags["--version"]&&asksForVersion(subcommand??(targetOrSubcommand?.startsWith("-")&&deployAcceptsOptions(client.argv)?"deploy":void 0),client.argv))return client.stdout.write(wantsMachineReadableOutput(void 0,client.argv)?`${JSON.stringify({version:pkg_default.version})}
12
+ `),!targetOrSubcommand&&parsedArgs.flags["--help"]||targetOrSubcommand==="help"&&(!subSubCommand||subSubCommand==="help"))return process.stdout.write(help(getRootHelpCommands(commandsStructs),process.stdout.columns)),0;if(!targetOrSubcommand&&parsedArgs.flags["--version"])return console.log(pkg_default.version),0;markStartup("global_config");try{await(0,import_fs_extra2.mkdirp)(VERCEL_DIR)}catch(err){return output_manager_default.error(`An unexpected error occurred while trying to create the global directory "${humanizePath(VERCEL_DIR)}" ${(0,import_error_utils.errorToString)(err)}`),1}let config;try{config=readConfigFile()}catch(err){if((0,import_error_utils.isErrnoException)(err)&&err.code==="ENOENT"){config=import_cli_config.defaultGlobalConfig;try{writeToConfigFile(config)}catch(err2){return output_manager_default.error(`An unexpected error occurred while trying to save the config to "${humanizePath(VERCEL_CONFIG_PATH)}" ${(0,import_error_utils.errorToString)(err2)}`),1}}else return output_manager_default.error(`An unexpected error occurred while trying to read the config in "${humanizePath(VERCEL_CONFIG_PATH)}" ${(0,import_error_utils.errorToString)(err)}`),1}let tokenSource,explicitToken;typeof parsedArgs.flags["--token"]=="string"?(explicitToken=parsedArgs.flags["--token"],tokenSource="flag"):!IS_LOCAL_SCHEDULES_COMMAND&&process.env.VERCEL_TOKEN&&(explicitToken=process.env.VERCEL_TOKEN,tokenSource="env"),markStartup("credentials");let authConfig;if(IS_LOCAL_SCHEDULES_COMMAND||tokenSource)authConfig=(0,import_cli_config.getDefaultAuthConfig)();else try{authConfig=readAuthConfigFile(config)}catch(err){if((0,import_error_utils.isErrnoException)(err)&&err.code==="ENOENT")authConfig=(0,import_cli_config.getDefaultAuthConfig)();else return output_manager_default.error(`An unexpected error occurred while trying to read the auth config in "${humanizePath(VERCEL_AUTH_CONFIG_PATH)}" ${(0,import_error_utils.errorToString)(err)}`),1}markStartup("telemetry");let telemetryEventStore=new TelemetryEventStore({isDebug:process.env.VERCEL_TELEMETRY_DEBUG==="1",config:config.telemetry,globalConfigDir:VERCEL_DIR,cliDevice:isTelemetryFlushCommand?void 0:{filePath:join2(VERCEL_DIR,"telemetry-device.json")},cliSession:isTelemetryFlushCommand?void 0:{filePath:join2(VERCEL_DIR,"telemetry-session.json")}});process.env.FF_GUIDANCE_MODE&&checkGuidanceStatus({config});let telemetry=new RootTelemetryClient({opts:{store:telemetryEventStore}});markStartup("agent_detection");let{isAgent,agent:detectedAgent}=await determineAgent();markStartup("cli_setup"),isAgent&&output_manager_default.initialize({hideSpinners:!0}),telemetry.trackInvocationId(telemetryEventStore.currentInvocationId),telemetry.trackDeviceId(telemetryEventStore.currentDeviceId);let vercelPluginMarker=readVercelPluginActiveSessionMarker();vercelPluginMarker&&(telemetry.trackVercelPluginActiveSession(),telemetry.trackVercelPluginVersion(vercelPluginMarker.pluginVersion)),telemetry.trackAgenticUse(detectedAgent?.name),telemetry.trackCPUs(),telemetry.trackPlatform(),telemetry.trackArch(),telemetry.trackLibc(telemetryEventStore.currentLibc),telemetry.trackCliLaunch(),telemetry.trackCIVendorName(),telemetry.trackStdinIsTTY(process.stdin?.isTTY===!0),telemetry.trackVersion(pkg_default.version),telemetry.trackCliOptionCwd(parsedArgs.flags["--cwd"]),telemetry.trackCliOptionLocalConfig(parsedArgs.flags["--local-config"]),telemetry.trackCliOptionGlobalConfig(parsedArgs.flags["--global-config"]),telemetry.trackCliFlagDebug(parsedArgs.flags["--debug"]),telemetry.trackCliFlagNoColor(parsedArgs.flags["--no-color"]),telemetry.trackCliOptionScope(parsedArgs.flags["--scope"]),telemetry.trackCliOptionToken(parsedArgs.flags["--token"]),telemetry.trackCliOptionTeam(parsedArgs.flags["--team"]),telemetry.trackCliOptionApi(parsedArgs.flags["--api"]);let earlyGetUserPromise,trackAgenticErrorTelemetry=err=>{recordCliError(cliErrorFromUnknown(err,{includeMessage:!0}),{override:!0})},runTelemetry=createRunTelemetry({isAgent,telemetry,store:telemetryEventStore,getClient:()=>client,getConfigIdentity:()=>({teamId:config.currentTeam,userId:authConfig.userId}),getProjectId:()=>(0,import_build_utils.getPlatformEnv)("PROJECT_ID")??getLinkedProjectIdSync(getVercelDirectory(client?.cwd||(typeof parsedArgs.flags["--cwd"]=="string"?parsedArgs.flags["--cwd"]:process.cwd())))}),saveTelemetry=async()=>{if(runTelemetry.saveStarted)return;let postCommandSpan=rootSpan.child("vc.postCommand");if(client&&telemetryEventStore.updateConfig(client.config.telemetry),telemetryEventStore.updateTeamId(client?.config.currentTeam??config.currentTeam),telemetryEventStore.updateUserId(client?.authConfig.userId??authConfig.userId),!telemetryEventStore.hasUserId){let getUserSpan=postCommandSpan.child("vc.postCommand.getUser");try{let user=await earlyGetUserPromise;user&&telemetryEventStore.updateUserId(user.id)}catch{}finally{getUserSpan.stop()}}try{let envProjectId=(0,import_build_utils.getPlatformEnv)("PROJECT_ID");if(envProjectId)telemetryEventStore.updateProjectId(envProjectId);else{let cwdForProjectId=client?.cwd||(typeof parsedArgs.flags["--cwd"]=="string"?parsedArgs.flags["--cwd"]:process.cwd()),link=await getLinkFromDir(getVercelDirectory(cwdForProjectId));link&&telemetryEventStore.updateProjectId(link.projectId)}}catch{}telemetry.trackProjectId(telemetryEventStore.currentProjectId),telemetry.trackCliDeprecatedShorthands(getUsedDeprecatedShorthands()),postCommandSpan.stop(),runTelemetry.markSaveStarted(),await telemetryEventStore.save()},runningCommandSpan,startupDurationMs,commandErrorSource,queueCommandTrace=(exitCode2,completion)=>{if(isTelemetryFlushCommand||!resolvedCommandForUpdate)return;let event=traceReporter.events.find(e=>e.name==="vc.cli.command");event&&telemetryEventStore.setCommandTrace(toCommandTrace(event,{command:resolvedCommandForUpdate,invocationId:telemetryEventStore.currentInvocationId,cliVersion:pkg_default.version,releaseChannel:String(import_semver2.default.prerelease(pkg_default.version)?.[0]??"stable"),isAgent,agentName:detectedAgent?.name,exitCode:exitCode2,completion,startupDurationMs,errorSource:commandErrorSource,subcommand:telemetryEventStore.commandSubcommand}),void 0,event,traceReporter.events)},finishWithExitCode=async code=>(queueCommandTrace(code,"completed"),runTelemetry.trackRunEnd(code),await saveTelemetry(),code);process.once("exit",code=>{runTelemetry.saveStarted||(attempt(()=>runningCommandSpan?.stop()),attempt(()=>queueCommandTrace(code,"process_exit"))),runTelemetry.flushOnExit(code)}),isAgent&&(captureStdoutErrors(process.stdout),process.on("uncaughtExceptionMonitor",err=>{recordCliError(cliErrorFromUnknown(err))})),!IS_LOCAL_SCHEDULES_COMMAND&&typeof parsedArgs.flags["--api"]=="string"?apiUrl=parsedArgs.flags["--api"]:!IS_LOCAL_SCHEDULES_COMMAND&&config&&config.api&&(apiUrl=config.api);try{new URL(apiUrl)}catch{return output_manager_default.error(`Please provide a valid URL instead of ${highlight(apiUrl)}.`),finishWithExitCode(1)}let stdinIsTTY=process.stdin?.isTTY===!0,nonInteractiveFlag=parsedArgs.flags["--non-interactive"]===!0,argv=process.argv,explicitNonInteractiveFalse=argv.includes("--non-interactive=false")||argv.includes("--no-non-interactive")||argv.includes("--non-interactive")&&argv[argv.indexOf("--non-interactive")+1]==="false",nonInteractive=explicitNonInteractiveFalse?!1:nonInteractiveFlag||isAgent&&!stdinIsTTY;if(output_manager_default.debug(`Agent/TTY/nonInteractive: isAgent=${isAgent} agentName=${detectedAgent?.name??"none"} stdin.isTTY=${String(process.stdin?.isTTY)} --non-interactive=${nonInteractiveFlag} explicitFalse=${explicitNonInteractiveFalse} => nonInteractive=${nonInteractive}`),!IS_LOCAL_SCHEDULES_COMMAND&&hasProxyConfig()){let{EnvProxyDispatcher}=await import("./chunks/fetch-proxy-MOKBS56A.js");setFetchDispatcher(new EnvProxyDispatcher)}markStartup("client"),client=new Client({apiUrl,stdin:process.stdin,stdout:process.stdout,stderr:output_manager_default.stream,config,authConfig,localConfig,localConfigPath,argv:process.argv,telemetryEventStore,isAgent,agentName:detectedAgent?.name,nonInteractive}),client.rootSpan=rootSpan,markStartup("routing"),parsedArgs.flags["--cwd"]&&(client.cwd=parsedArgs.flags["--cwd"]);let{cwd}=client,defaultDeploy=!1,subcommand,userSuppliedSubCommand="";if(targetOrSubcommand){let targetPath=resolve(cwd,targetOrSubcommand),targetPathExists=existsSync2(targetPath),subcommandExists=GLOBAL_COMMANDS.has(targetOrSubcommand)||commands.has(targetOrSubcommand);if(targetPathExists&&subcommandExists&&!parsedArgs.flags["--cwd"]&&!process.env.NOW_BUILDER&&!wantsMachineReadableOutput(targetOrSubcommand,process.argv)&&!await hasLocalProjectLink(client,cwd)&&output_manager_default.warn(`Did you mean to deploy the subdirectory "${targetOrSubcommand}"? Use \`vc --cwd ${targetOrSubcommand}\` instead.`),subcommandExists)output_manager_default.debug(`user supplied known subcommand: "${targetOrSubcommand}"`),subcommand=targetOrSubcommand,userSuppliedSubCommand=targetOrSubcommand;else if(output_manager_default.debug("user supplied a possible target for deployment or an extension"),process.env.VERCEL_AUTO_API&&await matchesCliApiTag(targetOrSubcommand)){output_manager_default.debug(`first token "${targetOrSubcommand}" matches an OpenAPI tag; routing to api`);let tag=targetOrSubcommand,{tryOpenApiFallback}=await import("./chunks/openapi-YAZA3237.js"),result=await tryOpenApiFallback(client,parsedArgs.args.slice(3),async()=>tag);return finishWithExitCode(result??1)}else targetPathExists&&(subcommand="deploy",userSuppliedSubCommand=targetOrSubcommand,output_manager_default.debug(`first token "${targetOrSubcommand}" is an existing path; routing to deploy`))}else output_manager_default.debug("user supplied no target, defaulting to deploy"),subcommand="deploy",defaultDeploy=!0;let helpCommandTarget;if(subcommand==="help"){telemetry.trackCliCommandHelp("help");let isDeployPath=subSubCommand!==void 0&&!commands.has(subSubCommand)&&existsSync2(resolve(cwd,subSubCommand));helpCommandTarget=isDeployPath?void 0:subSubCommand,subcommand=isDeployPath?"deploy":subSubCommand||"deploy";let helpTokenIndex=client.argv.indexOf("help",2);helpTokenIndex!==-1&&client.argv.splice(helpTokenIndex,1),client.argv.push("-h")}let helpRequested=parsedArgs.args[2]==="help"||parsedArgs.flags["--help"]===!0;if(helpRequested){let helpExitCode=printCommandHelp(client,subcommand,tokensAfterCommand(client.argv));if(helpExitCode!==void 0)return finishWithExitCode(helpExitCode)}else{if(parsedArgs.flags["--version"]&&asksForVersion(subcommand??(targetOrSubcommand?.startsWith("-")&&deployAcceptsOptions(client.argv)?"deploy":void 0),client.argv))return client.stdout.write(wantsMachineReadableOutput(void 0,client.argv)?`${JSON.stringify({version:pkg_default.version})}
13
13
  `:`${pkg_default.version}
14
- `),finishWithExitCode(0);{let groupHelpExitCode=printGroupHelp(client,subcommand,tokensAfterCommand(client.argv));if(groupHelpExitCode!==void 0)return finishWithExitCode(groupHelpExitCode)}}let commandPathOptions=getCommandPathOptions(subcommand,tokensAfterCommand(client.argv));if(commandPathOptions&&!wantsMachineReadableOutput(void 0,client.argv))for(let warning of getFalseValueWarnings(client.argv.slice(2),[...globalCommandOptions,...commandPathOptions]))output_manager_default.warning(warning);let subcommandsWithoutToken=[...SUBCOMMANDS_WITHOUT_TOKEN],isPublicDomainsCommand=typeof subcommand=="string"&&commands.get(subcommand)==="domains"&&["check","price","search"].includes(subSubCommand);subcommand&&isPublicDomainsCommand&&subcommandsWithoutToken.push(subcommand),process.env.FF_GUIDANCE_MODE&&subcommandsWithoutToken.push("guidance"),subcommand==="dev"&&(client.argv.includes("--local")||client.argv.includes("-L"))&&subcommandsWithoutToken.push("dev");let isSdkKeyFlagsDatafile=subcommand==="flags"&&subSubCommand==="datafile"&&client.argv.some(arg2=>arg2==="--sdk-key"||arg2.startsWith("--sdk-key="));subcommand==="flags"&&(subSubCommand==="prepare"||isSdkKeyFlagsDatafile)&&subcommandsWithoutToken.push("flags"),subcommand==="setup"&&subSubCommand==="skills"&&subcommandsWithoutToken.push("setup"),tokenSource==="env"&&explicitToken&&(parsedArgs.flags["--token"]=explicitToken);let credentialsPromptMs=0;if(!IS_LOCAL_SCHEDULES_COMMAND&&(!authConfig||!authConfig.token)&&!client.argv.includes("-h")&&!client.argv.includes("--help")&&typeof parsedArgs.flags["--token"]!="string"&&subcommand&&!subcommandsWithoutToken.includes(subcommand)){let{default:promptMissingCredentials}=await import("./chunks/prompt-missing-credentials-Q5JCRP3R.js"),promptStartedAt=performance.now(),result=await promptMissingCredentials(client,trackAgenticErrorTelemetry);if(credentialsPromptMs=performance.now()-promptStartedAt,result!==0)return finishWithExitCode(result)}if(typeof parsedArgs.flags["--token"]=="string"&&subcommand==="switch")return output_manager_default.prettyError({message:`This command doesn't work with ${param("--token")}. Please use ${param("--scope")}.`,link:"https://err.sh/vercel/no-token-allowed"}),finishWithExitCode(2);if(typeof parsedArgs.flags["--token"]=="string"){let token=parsedArgs.flags["--token"];if(token.length===0)return output_manager_default.prettyError({message:`You defined ${param("--token")}, but it's missing a value`,link:"https://err.sh/vercel/missing-token-value"}),finishWithExitCode(2);let invalid=token.match(/(\W)/g);if(invalid){let notContain=Array.from(new Set(invalid)).sort(),hiddenOption=findHiddenShorthandOption(commandsStructs,client.argv,"-t",2);return output_manager_default.prettyError({message:`You defined ${param("--token")}, but its contents are invalid. Must not contain: ${notContain.map(c=>JSON.stringify(c)).join(", ")}${hiddenOption?`
14
+ `),finishWithExitCode(0);{let groupHelpExitCode=printGroupHelp(client,subcommand,tokensAfterCommand(client.argv));if(groupHelpExitCode!==void 0)return finishWithExitCode(groupHelpExitCode)}}let commandPathOptions=getCommandPathOptions(subcommand,tokensAfterCommand(client.argv));if(commandPathOptions&&!wantsMachineReadableOutput(void 0,client.argv))for(let warning of getFalseValueWarnings(client.argv.slice(2),[...globalCommandOptions,...commandPathOptions]))output_manager_default.warning(warning);let subcommandsWithoutToken=[...SUBCOMMANDS_WITHOUT_TOKEN],isPublicDomainsCommand=typeof subcommand=="string"&&commands.get(subcommand)==="domains"&&["check","price","search"].includes(subSubCommand);subcommand&&isPublicDomainsCommand&&subcommandsWithoutToken.push(subcommand),process.env.FF_GUIDANCE_MODE&&subcommandsWithoutToken.push("guidance"),subcommand==="dev"&&(client.argv.includes("--local")||client.argv.includes("-L"))&&subcommandsWithoutToken.push("dev");let isSdkKeyFlagsDatafile=subcommand==="flags"&&subSubCommand==="datafile"&&client.argv.some(arg2=>arg2==="--sdk-key"||arg2.startsWith("--sdk-key="));subcommand==="flags"&&(subSubCommand==="prepare"||isSdkKeyFlagsDatafile)&&subcommandsWithoutToken.push("flags"),subcommand==="setup"&&subSubCommand==="skills"&&subcommandsWithoutToken.push("setup"),tokenSource==="env"&&explicitToken&&(parsedArgs.flags["--token"]=explicitToken);let credentialsPromptMs=0;if(!IS_LOCAL_SCHEDULES_COMMAND&&(!authConfig||!authConfig.token)&&!client.argv.includes("-h")&&!client.argv.includes("--help")&&typeof parsedArgs.flags["--token"]!="string"&&subcommand&&!subcommandsWithoutToken.includes(subcommand)){let{default:promptMissingCredentials}=await import("./chunks/prompt-missing-credentials-RTNCHH6Y.js"),promptStartedAt=performance.now(),result=await promptMissingCredentials(client,trackAgenticErrorTelemetry);if(credentialsPromptMs=performance.now()-promptStartedAt,result!==0)return finishWithExitCode(result)}if(typeof parsedArgs.flags["--token"]=="string"&&subcommand==="switch")return output_manager_default.prettyError({message:`This command doesn't work with ${param("--token")}. Please use ${param("--scope")}.`,link:"https://err.sh/vercel/no-token-allowed"}),finishWithExitCode(2);if(typeof parsedArgs.flags["--token"]=="string"){let token=parsedArgs.flags["--token"];if(token.length===0)return output_manager_default.prettyError({message:`You defined ${param("--token")}, but it's missing a value`,link:"https://err.sh/vercel/missing-token-value"}),finishWithExitCode(2);let invalid=token.match(/(\W)/g);if(invalid){let notContain=Array.from(new Set(invalid)).sort(),hiddenOption=findHiddenShorthandOption(commandsStructs,client.argv,"-t",2);return output_manager_default.prettyError({message:`You defined ${param("--token")}, but its contents are invalid. Must not contain: ${notContain.map(c=>JSON.stringify(c)).join(", ")}${hiddenOption?`
15
15
  To set the ${hiddenOption.name.replace(/-/g," ")}, use ${param(`--${hiddenOption.name}`)}.`:""}`,link:"https://err.sh/vercel/invalid-token-value"}),finishWithExitCode(2)}client.authConfig={token,skipWrite:!0,tokenSource},client.config&&client.config.currentTeam&&delete client.config.currentTeam}parsedArgs.flags["--team"]&&warnDeprecatedInput(client,"--team","--scope"),markStartup("scope");let targetCommand=typeof subcommand=="string"?commands.get(subcommand):void 0,scope=parsedArgs.flags["--scope"]||parsedArgs.flags["--team"]||localConfig?.scope,separatorIndex=client.argv.indexOf("--"),cliArgs=separatorIndex===-1?client.argv:client.argv.slice(0,separatorIndex),buildNeedsRemoteProjectScope=targetCommand==="build"&&cliArgs.some(arg2=>arg2==="--project"||arg2.startsWith("--project=")||getShortFlagLongName(arg2)==="--project");if(!IS_LOCAL_SCHEDULES_COMMAND&&typeof scope=="string"&&(!isPublicDomainsCommand||client.authConfig.token)&&(!isSdkKeyFlagsDatafile||client.authConfig.token)&&targetCommand!=="login"&&targetCommand!=="signup"&&targetCommand!=="feedback"&&targetCommand!=="health"&&targetCommand!=="doctor"&&(targetCommand!=="build"||buildNeedsRemoteProjectScope)&&targetCommand!=="sandbox"&&!(targetCommand==="whoami"&&getWhoamiCachedAnswer(cliArgs,client.authConfig))){let persistedTeamId=client.config.currentTeam,cachedTeamId=getCachedScopeTeamId(client.config,scope);if(cachedTeamId)client.config.currentTeam=cachedTeamId;else{let user=null;try{user=await getUser(client),telemetryEventStore.updateUserId(user.id)}catch(err){if(err instanceof Error&&output_manager_default.debug(err.stack||err.toString()),!((0,import_error_utils.isErrnoException)(err)&&err.code==="NOT_AUTHORIZED"&&isAppPrincipalEnabled()&&await resolveAppTokenScope(client,scope)))return isInvalidTokenError(err)&&!(isAppPrincipalEnabled()&&await isActiveAppToken(client))?(shouldEmitNonInteractiveCommandError(client)?printError(err,client):output_manager_default.prettyError(err),trackAgenticErrorTelemetry(err),finishWithExitCode(1)):(0,import_error_utils.isErrnoException)(err)&&err.code==="NOT_AUTHORIZED"?(output_manager_default.prettyError({message:"You do not have access to the specified account",link:"https://err.sh/vercel/scope-not-accessible"}),trackAgenticErrorTelemetry(err),finishWithExitCode(1)):(output_manager_default.error(`Not able to load user because of unexpected error: ${(0,import_error_utils.errorToString)(err)}`),trackAgenticErrorTelemetry(err),finishWithExitCode(1))}if(user){let scopeMatchesUserIdentity=user.id===scope||user.email===scope||user.username===scope,related;try{related=await getTeamByIdOrSlug(client,scope,{useCurrentTeam:!1})}catch(err){output_manager_default.debug(`Direct team lookup for scope "${scope}" failed: ${(0,import_error_utils.errorToString)(err)}`)}if(!related){let teams=[];try{teams=await getTeams(client)}catch(err){if(scopeMatchesUserIdentity)output_manager_default.debug("Ignoring failure to load teams; scope matches the current user's identity");else return(0,import_error_utils.isErrnoException)(err)&&err.code==="not_authorized"?(output_manager_default.prettyError({message:"You do not have access to the specified team",link:"https://err.sh/vercel/scope-not-accessible"}),trackAgenticErrorTelemetry(err),finishWithExitCode(1)):(0,import_error_utils.isErrnoException)(err)&&err.code==="rate_limited"?(output_manager_default.prettyError({message:"Rate limited. Too many requests to the same endpoint: /teams"}),trackAgenticErrorTelemetry(err),finishWithExitCode(1)):(output_manager_default.error("Not able to load teams"),trackAgenticErrorTelemetry(err),finishWithExitCode(1))}related=teams.find(team=>team.id===scope||team.slug===scope)}if(related)client.config.currentTeam=related.id,setCachedScopeTeamId(client,scope,related.id,persistedTeamId);else if(scopeMatchesUserIdentity){if(user.version==="northstar")return output_manager_default.error("You cannot set your Personal Account as the scope."),finishWithExitCode(1);delete client.config.currentTeam}else return output_manager_default.prettyError({message:"The specified scope does not exist",link:"https://err.sh/vercel/scope-not-existent"}),finishWithExitCode(1)}}}client.ignoresSavedTeam&&typeof scope!="string"&&targetCommand!=="login"&&targetCommand!=="logout"&&targetCommand!=="signup"&&(client.config.currentTeam=isPublicDomainsCommand?void 0:TEAM_NOT_CHOSEN),markStartup("command_load");let exitCode;try{if(!targetCommand){targetCommand=helpCommandTarget??parsedArgs.args[2];try{let{execExtension}=await import("./chunks/exec-UV73J2ZB.js"),typedArgs=parseInitialArgs({keepNegations:!0}).args,commandIndex=typedArgs.indexOf(targetCommand,helpCommandTarget?3:2),extensionArgs=commandIndex===-1?parsedArgs.args.slice(helpCommandTarget?4:3):typedArgs.slice(commandIndex+1);exitCode=await execExtension(client,targetCommand,helpCommandTarget?[...extensionArgs,"--help"]:extensionArgs,cwd),telemetry.trackCliExtension()}catch(err){if((0,import_error_utils.isErrnoException)(err)&&err.code==="ENOENT"){if(handleCommandTypo({client,command:targetCommand,availableCommands:commandsStructs}))return finishWithExitCode(2);if(helpRequested)return printUnknownCommand(client,targetCommand),finishWithExitCode(2);targetCommand=subcommand="deploy"}else throw err}}if(subcommand){let func;switch(targetCommand){case"deploy":telemetry.trackCliCommandDeploy(userSuppliedSubCommand),telemetry.trackCliDefaultDeploy(defaultDeploy),func=(await import("./commands/deploy/index.js")).default;break;case"dev":telemetry.trackCliCommandDev(userSuppliedSubCommand),func=(await import("./commands/dev/index.js")).default;break;case"env":telemetry.trackCliCommandEnv(userSuppliedSubCommand),func=(await import("./commands/env/index.js")).default;break;case"build":telemetry.trackCliCommandBuild(userSuppliedSubCommand),func=(await import("./commands/build/index.js")).default;break;case"list":telemetry.trackCliCommandList(userSuppliedSubCommand),func=(await import("./commands/list/index.js")).default;break;case"link":telemetry.trackCliCommandLink(userSuppliedSubCommand),func=(await import("./commands/link/index.js")).default;break;case"project":telemetry.trackCliCommandProject(userSuppliedSubCommand),func=(await import("./commands/project/index.js")).default;break;case"agent":telemetry.trackCliCommandAgent(userSuppliedSubCommand),func=(await import("./commands-core.js")).agent;break;case"agent-runs":telemetry.trackCliCommandAgentRuns(userSuppliedSubCommand),func=(await import("./commands-account.js")).agentRuns;break;case"ai-gateway":telemetry.trackCliCommandAiGateway(userSuppliedSubCommand),func=(await import("./commands-ai.js")).aiGateway;break;case"token-pass":telemetry.trackCliCommandTokenPass(userSuppliedSubCommand),func=(await import("./commands-ai.js")).tokenPass;break;case"alias":telemetry.trackCliCommandAlias(userSuppliedSubCommand),func=(await import("./commands-account.js")).alias;break;case"activity":telemetry.trackCliCommandActivity(userSuppliedSubCommand),func=(await import("./commands-core.js")).activity;break;case"alerts":telemetry.trackCliCommandAlerts(userSuppliedSubCommand),func=(await import("./commands-core.js")).alerts;break;case"api":telemetry.trackCliCommandApi(userSuppliedSubCommand),func=(await import("./commands-account.js")).api;break;case"billing":telemetry.trackCliCommandBilling(userSuppliedSubCommand),func=(await import("./commands-account.js")).billing;break;case"bisect":telemetry.trackCliCommandBisect(userSuppliedSubCommand),func=(await import("./commands-account.js")).bisect;break;case"blob":telemetry.trackCliCommandBlob(userSuppliedSubCommand),func=(await import("./commands-blob.js")).blob;break;case"budgets":telemetry.trackCliCommandBudgets(userSuppliedSubCommand),func=(await import("./commands-account.js")).budget;break;case"builders":func=(await import("./commands-core.js")).builders;break;case"buy":telemetry.trackCliCommandBuy(userSuppliedSubCommand),func=(await import("./commands-account.js")).buy;break;case"init":telemetry.trackCliCommandInit(userSuppliedSubCommand),func=(await import("./commands-account.js")).init;break;case"cache":telemetry.trackCliCommandCache(userSuppliedSubCommand),func=(await import("./commands-core.js")).cache;break;case"connect":telemetry.trackCliCommandConnex(userSuppliedSubCommand),func=(await import("./commands-integrations.js")).connex;break;case"contract":telemetry.trackCliCommandContract(userSuppliedSubCommand),func=(await import("./commands-core.js")).contract;break;case"certs":telemetry.trackCliCommandCerts(userSuppliedSubCommand),func=(await import("./commands-account.js")).certs;break;case"ci":telemetry.trackCliCommandCi(userSuppliedSubCommand),func=(await import("./commands-observability.js")).ci;break;case"changelog":telemetry.trackCliCommandChangelog(userSuppliedSubCommand),func=(await import("./commands-core.js")).changelog;break;case"comments":telemetry.trackCliCommandComments(userSuppliedSubCommand),func=(await import("./commands-core.js")).comments;break;case"crons":case"cron":telemetry.trackCliCommandCrons(userSuppliedSubCommand),func=(await import("./commands-core.js")).crons;break;case"curl":telemetry.trackCliCommandCurl(userSuppliedSubCommand),func=(await import("./commands-core.js")).curl;break;case"daemons":telemetry.trackCliCommandDaemons(userSuppliedSubCommand),func=(await import("./commands-routing.js")).daemons;break;case"dns":telemetry.trackCliCommandDns(userSuppliedSubCommand),func=(await import("./commands-account.js")).dns;break;case"deploy-hooks":case"deploy-hook":telemetry.trackCliCommandDeployHooks(userSuppliedSubCommand),func=(await import("./commands-core.js")).deployHooks;break;case"doctor":telemetry.trackCliCommandDoctor(userSuppliedSubCommand),func=(await import("./commands-core.js")).doctor;break;case"global-config":telemetry.trackCliCommandGlobalConfig(userSuppliedSubCommand),func=(await import("./commands-account.js")).globalConfig;break;case"domains":telemetry.trackCliCommandDomains(userSuppliedSubCommand),func=(await import("./commands-ai.js")).domains;break;case"drains":telemetry.trackCliCommandDrains(userSuppliedSubCommand),func=(await import("./commands-observability.js")).drains;break;case"experiments":telemetry.trackCliCommandExperiments(userSuppliedSubCommand),func=(await import("./commands-routing.js")).experiments;break;case"feedback":telemetry.trackCliCommandFeedback(userSuppliedSubCommand),func=(await import("./commands-flags.js")).feedback;break;case"firewall":telemetry.trackCliCommandFirewall(userSuppliedSubCommand),func=(await import("./commands-flags.js")).firewall;break;case"flags":telemetry.trackCliCommandFlags(userSuppliedSubCommand),func=(await import("./commands-flags.js")).flags;break;case"git":telemetry.trackCliCommandGit(userSuppliedSubCommand),func=(await import("./commands-account.js")).git;break;case"guidance":if(process.env.FF_GUIDANCE_MODE){telemetry.trackCliCommandGuidance(userSuppliedSubCommand),func=(await import("./commands-core.js")).guidance;break}else{func=null;break}case"health":telemetry.trackCliCommandHealth(userSuppliedSubCommand),func=(await import("./commands-observability.js")).health;break;case"httpstat":telemetry.trackCliCommandHttpstat(userSuppliedSubCommand),func=(await import("./commands-core.js")).httpstat;break;case"install":telemetry.trackCliCommandInstall(userSuppliedSubCommand),func=(await import("./commands-integrations.js")).install;break;case"integration":telemetry.trackCliCommandIntegration(userSuppliedSubCommand),func=(await import("./commands-integrations.js")).integration;break;case"integration-resource":telemetry.trackCliCommandIntegrationResource(userSuppliedSubCommand),func=(await import("./commands-integrations.js")).integrationResource;break;case"kms":telemetry.trackCliCommandKms(userSuppliedSubCommand),func=(await import("./commands-routing.js")).kms;break;case"mcp":func=(await import("./commands-core.js")).mcp;break;case"logout":telemetry.trackCliCommandLogout(userSuppliedSubCommand),func=(await import("./commands-core.js")).logout;break;case"login":telemetry.trackCliCommandLogin(userSuppliedSubCommand),func=c=>import("./commands-core.js").then(m=>m.login(c,{shouldParseArgs:!0}));break;case"inspect":telemetry.trackCliCommandInspect(userSuppliedSubCommand),func=(await import("./commands-deployments.js")).inspect;break;case"logs":telemetry.trackCliCommandLogs(userSuppliedSubCommand),func=(await import("./commands-deployments.js")).logs;break;case"metrics":telemetry.trackCliCommandMetrics(userSuppliedSubCommand),func=(await import("./commands-core.js")).metrics;break;case"microfrontends":telemetry.trackCliCommandMicrofrontends(userSuppliedSubCommand),func=(await import("./commands-routing.js")).microfrontends;break;case"monitors":telemetry.trackCliCommandMonitors(userSuppliedSubCommand),func=(await import("./commands-core.js")).monitors;break;case"open":telemetry.trackCliCommandOpen(userSuppliedSubCommand),func=(await import("./commands-core.js")).open;break;case"organizations":telemetry.trackCliCommandOrganizations(userSuppliedSubCommand),func=(await import("./commands-account.js")).organizations;break;case"page-integrity":telemetry.trackCliCommandPageIntegrity(userSuppliedSubCommand),func=(await import("./commands-core.js")).pageIntegrity;break;case"pricing":telemetry.trackCliCommandPricing(userSuppliedSubCommand),func=(await import("./commands-core.js")).pricing;break;case"promote":telemetry.trackCliCommandPromote(userSuppliedSubCommand),func=(await import("./commands-core.js")).promote;break;case"pull":telemetry.trackCliCommandPull(userSuppliedSubCommand),func=(await import("./commands-observability.js")).pull;break;case"redeploy":telemetry.trackCliCommandRedeploy(userSuppliedSubCommand),func=(await import("./commands-routing.js")).redeploy;break;case"redirects":telemetry.trackCliCommandRedirects(userSuppliedSubCommand),func=(await import("./commands-routing.js")).redirects;break;case"routes":telemetry.trackCliCommandRoutes(userSuppliedSubCommand),func=(await import("./commands-routing.js")).routes;break;case"remove":telemetry.trackCliCommandRemove(userSuppliedSubCommand),func=(await import("./commands-routing.js")).remove;break;case"rollback":telemetry.trackCliCommandRollback(userSuppliedSubCommand),func=(await import("./commands-core.js")).rollback;break;case"rr":case"release":case"rolling-release":telemetry.trackCliCommandRollingRelease(userSuppliedSubCommand),func=(await import("./commands-core.js")).rollingRelease;break;case"sandbox":telemetry.trackCliCommandSandbox(userSuppliedSubCommand),func=(await import("./commands-core.js")).sandbox;break;case"schedules":telemetry.trackCliCommandSchedules(userSuppliedSubCommand),func=(await import("./commands-routing.js")).schedules;break;case"security":telemetry.trackCliCommandSecurity(userSuppliedSubCommand),func=(await import("./commands-core.js")).security;break;case"signup":telemetry.trackCliCommandSignup(userSuppliedSubCommand),func=(await import("./commands-core.js")).signup;break;case"skills":telemetry.trackCliCommandSkills(userSuppliedSubCommand),func=(await import("./commands-blob.js")).skills;break;case"setup":telemetry.trackCliCommandSetup(userSuppliedSubCommand),func=(await import("./commands-ai.js")).setup;break;case"storage":telemetry.trackCliCommandStorage(userSuppliedSubCommand),func=(await import("./commands-integrations.js")).storage;break;case"environments":telemetry.trackCliCommandEnvironments(userSuppliedSubCommand),func=(await import("./commands-core.js")).target;break;case"teams":telemetry.trackCliCommandTeams(userSuppliedSubCommand),func=(await import("./commands-account.js")).teams;break;case"tokens":telemetry.trackCliCommandTokens(userSuppliedSubCommand),func=(await import("./commands-account.js")).tokens;break;case"telemetry":telemetry.trackCliCommandTelemetry(userSuppliedSubCommand),func=(await import("./commands-core.js")).telemetry;break;case"traces":telemetry.trackCliCommandTraces(userSuppliedSubCommand),func=(await import("./commands-observability.js")).traces;break;case"upgrade":telemetry.trackCliCommandUpgrade(userSuppliedSubCommand),func=(await import("./commands-core.js")).upgrade;break;case"version":telemetry.trackCliCommandVersion(userSuppliedSubCommand),func=(await import("./commands-core.js")).version;break;case"webhooks":telemetry.trackCliCommandWebhooks(userSuppliedSubCommand),func=(await import("./commands-account.js")).webhooks;break;case"usage":telemetry.trackCliCommandUsage(userSuppliedSubCommand),func=(await import("./commands-integrations.js")).usage;break;case"vcr":telemetry.trackCliCommandVcr(userSuppliedSubCommand),func=(await import("./commands-core.js")).vcr;break;case"whoami":telemetry.trackCliCommandWhoami(userSuppliedSubCommand),func=(await import("./commands-core.js")).whoami;break;default:func=null;break}if(!func||!targetCommand)return handleCommandTypo({client,command:subcommand,availableCommands:commandsStructs})||output_manager_default.error(`The ${param(subcommand)} subcommand does not exist`),finishWithExitCode(2);func.default&&(func=func.default),!IS_LOCAL_SCHEDULES_COMMAND&&targetCommand!=="feedback"&&targetCommand!=="health"&&targetCommand!=="doctor"&&shouldStartUserLookupForTelemetry({authConfig:client.authConfig,hasTelemetryUserId:telemetryEventStore.hasUserId})&&(earlyGetUserPromise=getUser(client).catch(()=>{})),markStartup("dispatch"),resolvedCommandForUpdate=targetCommand,startupDurationMs=getStartupDurationMs(credentialsPromptMs),runningCommandSpan=rootSpan.child("vc.cli.command",{command:subcommand||"deploy"});try{exitCode=await runningCommandSpan.trace(()=>func(client))}finally{runningCommandSpan=void 0}}}catch(err){commandErrorSource="caught",trackAgenticErrorTelemetry(err),err instanceof APIError&&err.status===403&&client.config.currentTeam&&forgetCachedTeamSlug(client,client.config.currentTeam);let isUsageError=(0,import_error_utils.isError)(err)&&"code"in err&&(err.code==="ARG_UNKNOWN_OPTION"||err.code==="ARG_MISSING_REQUIRED_LONGARG"||err.code==="ARG_MISSING_REQUIRED_SHORTARG"||err.code==="ARG_CONFLICTING_OPTIONS");if(shouldEmitNonInteractiveCommandError(client)&&((0,import_error_utils.isError)(err)&&"status"in err||isUsageError||isInvalidTokenError(err)))return printError(err,client),finishWithExitCode(isUsageError?2:1);if(isUsageError)return printError(err,client),finishWithExitCode(2);if((0,import_error_utils.isErrnoException)(err)&&err.code==="ENOTFOUND"){let matches=/getaddrinfo ENOTFOUND (.*)$/.exec(err.message||"");if(matches&&matches[1]){let hostname=matches[1];output_manager_default.error(`The hostname ${highlight(hostname)} could not be resolved. Please verify your internet connectivity and DNS configuration.`)}return typeof err.stack=="string"&&output_manager_default.debug(err.stack),finishWithExitCode(1)}if((0,import_error_utils.isErrnoException)(err)&&err.code==="ECONNRESET"){let hostname=/request to https:\/\/(.*?)\//.exec(err.message||"")?.[1];return hostname&&output_manager_default.error(`Connection to ${highlight(hostname)} interrupted. Please verify your internet connectivity and DNS configuration.`),finishWithExitCode(1)}return(0,import_error_utils.isErrnoException)(err)&&(err.code==="NOT_AUTHORIZED"||err.code==="TEAM_DELETED")?(output_manager_default.prettyError(err),finishWithExitCode(1)):err instanceof APIError&&400<=err.status&&err.status<=499?(err.message=err.serverMessage,output_manager_default.prettyError(err),finishWithExitCode(1)):((0,import_error_utils.isErrnoException)(err)?(typeof err.stack=="string"&&output_manager_default.debug(err.stack),output_manager_default.prettyError(err)):(await reportError(client,err),output_manager_default.error(`An unexpected error occurred in ${subcommand}: ${err}`)),finishWithExitCode(1))}if(await finishWithExitCode(exitCode??0),rootSpan.stop(),client.traceDiagnosticsPath)try{await mkdir(join2(client.traceDiagnosticsPath,".."),{recursive:!0}),await writeFile(client.traceDiagnosticsPath,JSON.stringify(traceReporter.events))}catch(err){output_manager_default.error("Failed to write diagnostics trace file"),output_manager_default.prettyError(err)}return exitCode},cachedLatest,freshLookupPromise;SHOULD_CHECK_FOR_UPDATES&&!isNativeBinaryInstall()&&(cachedLatest=getLatestVersion({pkg:pkg_default,consumeNotification:!1}),cachedLatest&&(output_manager_default.debug("Update may be available, fetching fresh version..."),freshLookupPromise=fetchLatestVersion({name:pkg_default.name,timeout:3e3}).catch(()=>{})));async function promptAndUpgrade(client2,targetVersion){try{if(!await client2.input.confirm("Would you like to upgrade now?",!0))return;let upgradeExitCode=await executeUpgrade(targetVersion,client2);if(upgradeExitCode===0&&!hasAutoUpdatePreference(client2.config)){let enableAutoUpdates=await client2.input.confirm("Enable automatic CLI updates for future releases?",!1);setAutoUpdate(client2,enableAutoUpdates)}return upgradeExitCode}catch(err){if(err instanceof Error&&err.message.includes("User force closed the prompt"))return;throw err}}async function runPostCommandUpdates(exitCode){let originalExitCode=typeof exitCode=="number"?exitCode:0;if(SHOULD_CHECK_FOR_UPDATES&&isNativeBinaryInstall()&&resolvedCommandForUpdate!=="version"&&scheduleNativeAutoUpdate(client,originalExitCode),cachedLatest&&resolvedCommandForUpdate!=="upgrade"&&resolvedCommandForUpdate!=="doctor"){let fresh=freshLookupPromise?await freshLookupPromise:void 0;output_manager_default.debug(`Fresh lookup result: ${fresh??"failed"}`);let latest,userUpToDate=!1;if(fresh&&(updateLatestVersionCache({name:pkg_default.name,version:fresh}),import_semver2.default.lt(pkg_default.version,fresh)?latest=fresh:userUpToDate=!0),getLatestVersion({pkg:pkg_default}),!userUpToDate&&await canAutoUpdate(client,originalExitCode,resolvedCommandForUpdate))return await executeAutomaticUpgrade(client)!==0&&output_manager_default.log(`Automatic update failed. Continuing with original exit code ${originalExitCode}.`),originalExitCode;if(latest){let changelog=getReleaseNotesUrl(latest);if(isTTY){let errorMsg=exitCode&&exitCode!==2?import_chalk.default.magenta(` The latest update ${import_chalk.default.italic("may")} fix any errors that occurred.`):"";output_manager_default.print(`
16
16
  Update available for Vercel CLI (${import_chalk.default.gray(`v${pkg_default.version}`)} \u2192 ${import_chalk.default.green(`v${latest}`)})${errorMsg}
17
17
  `),output_manager_default.print(`Changelog: ${output_manager_default.link(changelog,changelog,{fallback:!1})}
@@ -24,4 +24,4 @@ Run ${import_chalk.default.cyan(cmd(await getUpdateCommand()))} to update.${erro
24
24
  A newer version of Vercel CLI may be available.
25
25
  `);let upgradeExitCode=await promptAndUpgrade(client);if(upgradeExitCode!==void 0)return upgradeExitCode}else output_manager_default.print(box(`A newer version of Vercel CLI may be available.
26
26
  Run ${import_chalk.default.cyan(cmd(await getUpdateCommand()))} to update.`)),output_manager_default.print(`
27
- `)}return exitCode}async function runFirstRunPluginOffer(exitCode){if(client?.config.usedBefore===!1)try{let{offerVercelPluginToNewUser}=await import("./chunks/plugin-offer-URT5JNEU.js");await offerVercelPluginToNewUser(client,exitCode,resolvedCommandForUpdate)}catch(err){output_manager_default.stopSpinner(),output_manager_default.debug(`Vercel plugin offer failed: ${(0,import_error_utils.errorToString)(err)}`)}}var cliPromise=main().then(async exitCode=>{await runFirstRunPluginOffer(exitCode);let finalExitCode=await runUpdateMaintenance(exitCode,()=>runPostCommandUpdates(exitCode));return process.exitCode=finalExitCode,finalExitCode}).catch(async error=>{recordCliError(cliErrorFromUnknown(error)),await handleUnexpectedError(client,error),await exitWithUnexpectedError(error)});export{cliPromise};
27
+ `)}return exitCode}async function runFirstRunPluginOffer(exitCode){if(client?.config.usedBefore===!1)try{let{offerVercelPluginToNewUser}=await import("./chunks/plugin-offer-M7KJSJU6.js");await offerVercelPluginToNewUser(client,exitCode,resolvedCommandForUpdate)}catch(err){output_manager_default.stopSpinner(),output_manager_default.debug(`Vercel plugin offer failed: ${(0,import_error_utils.errorToString)(err)}`)}}var cliPromise=main().then(async exitCode=>{await runFirstRunPluginOffer(exitCode);let finalExitCode=await runUpdateMaintenance(exitCode,()=>runPostCommandUpdates(exitCode));return process.exitCode=finalExitCode,finalExitCode}).catch(async error=>{recordCliError(cliErrorFromUnknown(error)),await handleUnexpectedError(client,error),await exitWithUnexpectedError(error)});export{cliPromise};
@@ -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"./chunks/chunk-BZENIQ7N.js";import{readdirSync}from"node:fs";import{chmod,lstat,mkdir,unlink,writeFile}from"node:fs/promises";import*as nodeModule from"node:module";import{createServer}from"node:net";import{dirname,isAbsolute}from"node:path";var MAX_REQUEST_BYTES=1024*1024,REQUEST_TIMEOUT_MS=3e4;function getCompileCacheDir2(){return nodeModule.getCompileCacheDir?.()}function countCompileCacheEntries(dir){if(dir)try{return readdirSync(dir).length}catch{return}}var InternalBuildWorkerReport=class{constructor({entryAt}={}){this.settledListeners=[];let compileCacheDir=getCompileCacheDir2();this.timings={timeOrigin:Math.round(performance.timeOrigin),node:process.versions.node,vltPreloadState:"notStarted",compileCacheDir,compileCacheEntriesAtStart:countCompileCacheEntries(compileCacheDir)},entryAt!==void 0&&(this.timings.entryAt=Math.round(entryAt))}mark(name){this.timings[name]??=Math.round(performance.now())}vltPreloadStarted(){this.mark("vltPreloadStartedAt"),this.timings.vltPreloadState="inFlight"}vltPreloadSettled(error){error===void 0?(this.mark("vltPreloadDoneAt"),this.timings.vltPreloadState="done"):(this.timings.vltPreloadState="failed",this.timings.vltPreloadError=error instanceof Error?error.message:String(error));for(let listener of this.settledListeners.splice(0))listener()}onVltPreloadSettled(listener){this.timings.vltPreloadState==="done"||this.timings.vltPreloadState==="failed"?listener():this.settledListeners.push(listener)}flushCompileCache(){try{nodeModule.flushCompileCache?.()}catch{}this.timings.compileCacheEntriesAtEnd=countCompileCacheEntries(this.timings.compileCacheDir)}snapshot(){return{...this.timings}}};async function parseBuildRequest(payload){let{z}=await import("./chunks/zod-2C2SXNIK.js");return z.object({type:z.literal("build"),id:z.string().min(1).max(128),cwd:z.string().min(1).refine(isAbsolute,{message:"cwd must be absolute"}),argv:z.array(z.string().max(4096)).min(1).max(64).refine(argv=>argv[0]==="build",{message:'argv must begin with "build"'}),env:z.record(z.string(),z.string())}).parse(JSON.parse(payload))}function writeMessage(socket,message){socket.write(`${JSON.stringify(message)}
7
+ import"./chunks/chunk-BZENIQ7N.js";import{readdirSync}from"node:fs";import{chmod,lstat,mkdir,unlink,writeFile}from"node:fs/promises";import*as nodeModule from"node:module";import{createServer}from"node:net";import{dirname,isAbsolute}from"node:path";var MAX_REQUEST_BYTES=1024*1024,REQUEST_TIMEOUT_MS=3e4;function getCompileCacheDir2(){return nodeModule.getCompileCacheDir?.()}function countCompileCacheEntries(dir){if(dir)try{return readdirSync(dir).length}catch{return}}var InternalBuildWorkerReport=class{constructor({entryAt}={}){this.settledListeners=[];let compileCacheDir=getCompileCacheDir2();this.timings={timeOrigin:Math.round(performance.timeOrigin),node:process.versions.node,vltPreloadState:"notStarted",compileCacheDir,compileCacheEntriesAtStart:countCompileCacheEntries(compileCacheDir)},entryAt!==void 0&&(this.timings.entryAt=Math.round(entryAt))}mark(name){this.timings[name]??=Math.round(performance.now())}vltPreloadStarted(){this.mark("vltPreloadStartedAt"),this.timings.vltPreloadState="inFlight"}vltPreloadSettled(error){error===void 0?(this.mark("vltPreloadDoneAt"),this.timings.vltPreloadState="done"):(this.timings.vltPreloadState="failed",this.timings.vltPreloadError=error instanceof Error?error.message:String(error));for(let listener of this.settledListeners.splice(0))listener()}onVltPreloadSettled(listener){this.timings.vltPreloadState==="done"||this.timings.vltPreloadState==="failed"?listener():this.settledListeners.push(listener)}flushCompileCache(){try{nodeModule.flushCompileCache?.()}catch{}this.timings.compileCacheEntriesAtEnd=countCompileCacheEntries(this.timings.compileCacheDir)}snapshot(){return{...this.timings}}};async function parseBuildRequest(payload){let{z}=await import("./chunks/zod-Y3ZBY67C.js");return z.object({type:z.literal("build"),id:z.string().min(1).max(128),cwd:z.string().min(1).refine(isAbsolute,{message:"cwd must be absolute"}),argv:z.array(z.string().max(4096)).min(1).max(64).refine(argv=>argv[0]==="build",{message:'argv must begin with "build"'}),env:z.record(z.string(),z.string())}).parse(JSON.parse(payload))}function writeMessage(socket,message){socket.write(`${JSON.stringify(message)}
8
8
  `)}async function removeSocket(socketPath){try{await unlink(socketPath)}catch(error){if(error.code!=="ENOENT")throw error}}async function assertUnusedSocketPath(socketPath){if(!isAbsolute(socketPath))throw new Error("The worker socket path must be absolute");try{await lstat(socketPath)}catch(error){if(error.code==="ENOENT")return;throw error}throw new Error(`The worker socket path already exists: ${socketPath}`)}async function closeServer(server){await new Promise((resolve,reject)=>{server.close(error=>{error&&error.code!=="ERR_SERVER_NOT_RUNNING"?reject(error):resolve()})})}async function bind(server,socketPath){let originalUmask=process.umask(63);try{await new Promise((resolve,reject)=>{let onError=error=>{server.off("listening",onListening),reject(error)},onListening=()=>{server.off("error",onError),resolve()};server.once("error",onError),server.once("listening",onListening),server.listen(socketPath)})}finally{process.umask(originalUmask)}}function parseWorkerArgs(argv){let usage="Expected --internal-build-worker --socket <path> [--ready-file <path>]";if(argv.length!==3&&argv.length!==5||argv[0]!=="--internal-build-worker"||argv[1]!=="--socket"||argv.length===5&&argv[3]!=="--ready-file")throw new Error(usage);let readyFile=argv[4];if(readyFile!==void 0&&!isAbsolute(readyFile))throw new Error("The worker ready file path must be absolute");return{socketPath:argv[2],readyFile}}async function writeReadyFile(readyFile){try{await mkdir(dirname(readyFile),{recursive:!0}),await writeFile(readyFile,"")}catch{}}async function preloadInternalBuild(loadBuildCommand,loadInternalBuild,report){let[{preloadVltBuilderImports}]=await Promise.all([loadBuildCommand(),loadInternalBuild()]);report?.mark("buildModuleLoadedAt"),report?.vltPreloadStarted(),preloadVltBuilderImports().then(()=>report?.vltPreloadSettled(),error=>report?.vltPreloadSettled(error??new Error("vlt preload failed")))}function applyInternalBuildRequest(request){for(let key of Object.keys(process.env))Object.hasOwn(request.env,key)||delete process.env[key];Object.assign(process.env,request.env,{VERCEL_VC_NATIVE:"1"}),process.chdir(request.cwd),process.argv=[process.execPath,process.argv[1],...request.argv]}async function waitForInternalBuildRequest(argv,preloadBuildCommand,{removeSocket:removeSocketFile=removeSocket,report=new InternalBuildWorkerReport,requestTimeoutMs=REQUEST_TIMEOUT_MS}={}){let{socketPath,readyFile}=parseWorkerArgs(argv);await assertUnusedSocketPath(socketPath);let server=createServer({allowHalfOpen:!0}),startPreload,buildCommandReady=new Promise((resolve,reject)=>{startPreload=()=>{try{resolve(preloadBuildCommand())}catch(error){reject(error)}}});return buildCommandReady.then(()=>report.mark("readyAt"),()=>{}),new Promise((resolve,reject)=>{let listening=!1,accepted=!1,settled=!1,terminalSent=!1,sendTerminal=async(socket,message)=>{if(terminalSent||(terminalSent=!0,socket.setTimeout(0),socket.destroyed))return;report.mark("terminalAt"),report.flushCompileCache();let terminal={...message,timings:report.snapshot()};await new Promise(done=>{let finish=()=>{socket.off("error",finish),done()};socket.once("error",finish),socket.end(`${JSON.stringify(terminal)}
9
9
  `,finish)}),socket.destroy()},fail=async(socket,error)=>{if(settled)return;settled=!0;let cleanup=Promise.allSettled([closeServer(server),removeSocketFile(socketPath)]);try{await sendTerminal(socket,{type:"error",message:error.message})}finally{await cleanup,reject(error)}};server.on("error",error=>{listening&&(settled=!0,Promise.allSettled([closeServer(server),removeSocketFile(socketPath)]).then(()=>reject(error)))}),server.on("connection",socket=>{if(accepted){socket.destroy();return}accepted=!0,report.mark("connectionAt"),closeServer(server).catch(error=>{fail(socket,error)}),socket.setEncoding("utf8");let received="",parsing=!1;buildCommandReady.then(()=>{if(!settled&&!socket.destroyed){socket.setTimeout(requestTimeoutMs,()=>{fail(socket,new Error("Timed out waiting for build request"))}),report.mark("readySentAt");let timings=report.snapshot();if(writeMessage(socket,{type:"ready",protocol:1,runtime:`node${process.versions.node.split(".")[0]}`,timings}),timings.vltPreloadState!=="inFlight")return;report.onVltPreloadSettled(()=>{!terminalSent&&!socket.destroyed&&writeMessage(socket,{type:"preload",timings:report.snapshot()})})}},error=>{fail(socket,error instanceof Error?error:new Error("Failed to preload build command"))}),socket.on("data",chunk=>{if(settled||parsing)return;if(received+=chunk,Buffer.byteLength(received)>MAX_REQUEST_BYTES){fail(socket,new Error("Request is too large"));return}let newline=received.indexOf(`
10
10
  `);if(newline===-1)return;report.mark("handoffReceivedAt"),parsing=!0;let payload=received.slice(0,newline),trailing=received.slice(newline+1).trim();buildCommandReady.then(async()=>{if(trailing)throw new Error("Only one build request is allowed");let request;try{request=await parseBuildRequest(payload)}catch{throw new Error("Invalid build request")}await removeSocketFile(socketPath),settled=!0,socket.setTimeout(0),resolve({request,complete:exitCode=>sendTerminal(socket,{type:"complete",exitCode}),error:error=>sendTerminal(socket,{type:"error",message:error instanceof Error?error.message:"Build failed"})})},error=>{fail(socket,error instanceof Error?error:new Error("Failed to preload build command"))}).catch(error=>{fail(socket,error instanceof Error?error:new Error("Invalid build request"))})}),socket.on("end",()=>{!settled&&!parsing&&fail(socket,new Error("Build request connection ended"))}),socket.on("error",error=>{fail(socket,error)})});let abort=error=>{if(!settled){if(settled=!0,!server.listening){reject(error);return}Promise.allSettled([closeServer(server),removeSocketFile(socketPath)]).then(()=>reject(error))}};bind(server,socketPath).then(()=>{listening=!0,report.mark("listenAt"),startPreload(),readyFile&&buildCommandReady.then(()=>writeReadyFile(readyFile),()=>{}),chmod(socketPath,384).catch(error=>{accepted||abort(error)})},abort)})}export{InternalBuildWorkerReport,applyInternalBuildRequest,preloadInternalBuild,waitForInternalBuildRequest};