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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (247) hide show
  1. package/dist/chunks/{add-RFPJCD35.js → add-4MTUAI2X.js} +1 -1
  2. package/dist/chunks/{add-A3SN7KWS.js → add-JYLWBVVQ.js} +1 -1
  3. package/dist/chunks/{add-TOKTANDW.js → add-T5ERJ62Z.js} +1 -1
  4. package/dist/chunks/{build-25I6XOV7.js → build-OGWTTFLG.js} +1 -1
  5. package/dist/chunks/{chunk-SHY7P3C6.js → chunk-36XHIIUT.js} +1 -1
  6. package/dist/chunks/{chunk-3AX7ZZJ7.js → chunk-3PKL2PTF.js} +1 -1
  7. package/dist/chunks/{chunk-2HLYY3KF.js → chunk-3QFBVAHL.js} +1 -1
  8. package/dist/chunks/chunk-3QYXC4PH.js +11 -0
  9. package/dist/chunks/{chunk-BT5C6MCY.js → chunk-42J2KCDF.js} +1 -1
  10. package/dist/chunks/{chunk-NLKM5LR5.js → chunk-4E6BGQWR.js} +1 -1
  11. package/dist/chunks/{chunk-FAVZ6WVS.js → chunk-4U6ACPA4.js} +1 -1
  12. package/dist/chunks/{chunk-NAEY6HG5.js → chunk-4WXVKR43.js} +1 -1
  13. package/dist/chunks/{chunk-MKYFAYCD.js → chunk-52X4YVSG.js} +1 -1
  14. package/dist/chunks/{chunk-3WYSEF57.js → chunk-5IZ33FNL.js} +1 -1
  15. package/dist/chunks/{chunk-GPISCZ2P.js → chunk-5MPZSRYG.js} +1 -1
  16. package/dist/chunks/{chunk-AX3V7N44.js → chunk-5RSSGN2Q.js} +1 -1
  17. package/dist/chunks/{chunk-7ULLVH2G.js → chunk-5RYQH3XW.js} +1 -1
  18. package/dist/chunks/{chunk-KNAOHPOI.js → chunk-6NUH6ZPE.js} +6 -6
  19. package/dist/chunks/{chunk-EJ34DLV4.js → chunk-6RMW63GB.js} +1 -1
  20. package/dist/chunks/{chunk-BB5UMZMF.js → chunk-6UMVJ7RL.js} +1 -1
  21. package/dist/chunks/{chunk-HR462OEG.js → chunk-6YAYCEDT.js} +2 -2
  22. package/dist/chunks/{chunk-VYRMHE34.js → chunk-75DUL7VI.js} +1 -1
  23. package/dist/chunks/{chunk-TNNEKGGF.js → chunk-7LSH3MEB.js} +1 -1
  24. package/dist/chunks/{chunk-LQAQD5LG.js → chunk-7TR6H6NE.js} +3 -3
  25. package/dist/chunks/chunk-7VGBGUX7.js +7 -0
  26. package/dist/chunks/chunk-A3C67PNC.js +7 -0
  27. package/dist/chunks/{chunk-CKTLP5GX.js → chunk-AMPJ6RWT.js} +1 -1
  28. package/dist/chunks/{chunk-IZ4GFKGR.js → chunk-AO6AMYBF.js} +1 -1
  29. package/dist/chunks/chunk-AUIV7YJO.js +11 -0
  30. package/dist/chunks/chunk-AY523IYR.js +7 -0
  31. package/dist/chunks/{chunk-DBPN2VGJ.js → chunk-B4XGTAFO.js} +1 -1
  32. package/dist/chunks/{chunk-DRLGZXAL.js → chunk-BIRSJSAO.js} +1 -1
  33. package/dist/chunks/{chunk-WHUZRBYL.js → chunk-BK3TNLWO.js} +5 -5
  34. package/dist/chunks/chunk-BZIC36KP.js +7 -0
  35. package/dist/chunks/chunk-CBMWPDOL.js +8 -0
  36. package/dist/chunks/{chunk-G2BNLRPU.js → chunk-CHIYT3V4.js} +1 -1
  37. package/dist/chunks/chunk-CJ6XPDSS.js +11 -0
  38. package/dist/chunks/{chunk-T7HE23VK.js → chunk-CU3LNJZV.js} +1 -1
  39. package/dist/chunks/chunk-DIHB5BUY.js +8 -0
  40. package/dist/chunks/{chunk-TZ6MSTOI.js → chunk-DNLE3KPC.js} +1 -1
  41. package/dist/chunks/{chunk-R3D4M5RE.js → chunk-DQASZDQT.js} +1 -1
  42. package/dist/chunks/{chunk-TNUQME3L.js → chunk-DQNP7OQ5.js} +1 -1
  43. package/dist/chunks/{chunk-NGHFFOD2.js → chunk-DUCCC22H.js} +1 -1
  44. package/dist/chunks/{chunk-QCIIUQV3.js → chunk-E7WULWMX.js} +1 -1
  45. package/dist/chunks/{chunk-CZOD25BC.js → chunk-ECFLIVEE.js} +1 -1
  46. package/dist/chunks/{chunk-FI5O4WHD.js → chunk-ECGY67NB.js} +1 -1
  47. package/dist/chunks/{chunk-S5JBQCBA.js → chunk-EJN55YDV.js} +1 -1
  48. package/dist/chunks/{chunk-3PXE5BLH.js → chunk-ER7L7HYA.js} +1 -1
  49. package/dist/chunks/{chunk-7UFI6OYF.js → chunk-FOWAVQOH.js} +1 -1
  50. package/dist/chunks/{chunk-4JWAXIIN.js → chunk-FPREO4VS.js} +1 -1
  51. package/dist/chunks/{chunk-PXQAWH7E.js → chunk-FSJFWVUY.js} +1 -1
  52. package/dist/chunks/{chunk-Y57DK3ZN.js → chunk-FXHB7TTL.js} +1 -1
  53. package/dist/chunks/chunk-FYE7ILRR.js +7 -0
  54. package/dist/chunks/{chunk-V32V4SXB.js → chunk-GQ4CQDIL.js} +1 -1
  55. package/dist/chunks/{chunk-W634OFUG.js → chunk-GZLYNPNU.js} +6 -5
  56. package/dist/chunks/chunk-HTPNGLPH.js +7 -0
  57. package/dist/chunks/{chunk-W5GHMAHP.js → chunk-IHTWZEQW.js} +1 -1
  58. package/dist/chunks/{chunk-4LGAV2WN.js → chunk-IIGNDMLO.js} +1 -1
  59. package/dist/chunks/{chunk-F2LNGJOZ.js → chunk-JA6IGJ67.js} +1 -1
  60. package/dist/chunks/chunk-JBU72NEQ.js +7 -0
  61. package/dist/chunks/{chunk-U6XJYQJS.js → chunk-JLNF2QTR.js} +1 -1
  62. package/dist/chunks/{chunk-SODZSOOL.js → chunk-K5KVSA2A.js} +1 -1
  63. package/dist/chunks/{chunk-VD2FK6OF.js → chunk-K7ARJYAG.js} +1 -1
  64. package/dist/chunks/{chunk-5TI3ZXW3.js → chunk-KBVYN635.js} +1 -1
  65. package/dist/chunks/chunk-KKE55LTK.js +7 -0
  66. package/dist/chunks/{chunk-G5T6UQAL.js → chunk-KV3QXTRZ.js} +1 -1
  67. package/dist/chunks/{chunk-3F5BOG4A.js → chunk-KZLRIAAT.js} +1 -1
  68. package/dist/chunks/{chunk-L4QQTYUI.js → chunk-LE72YLCC.js} +2 -2
  69. package/dist/chunks/{chunk-HJ45TAM4.js → chunk-LIEWXPUC.js} +1 -1
  70. package/dist/chunks/{chunk-ANCWFEOM.js → chunk-M3R7F2N4.js} +1 -1
  71. package/dist/chunks/{chunk-MUNGQJGO.js → chunk-M3Z6NSC2.js} +1 -1
  72. package/dist/chunks/{chunk-VPUYTI5E.js → chunk-MBXLL2HF.js} +1 -1
  73. package/dist/chunks/{chunk-C24IKNZN.js → chunk-MKTZDEOJ.js} +1 -1
  74. package/dist/chunks/{chunk-VZGTL3YC.js → chunk-N5AN4JZL.js} +1 -1
  75. package/dist/chunks/{chunk-EJZNJN4N.js → chunk-N65H4JMJ.js} +1 -1
  76. package/dist/chunks/{chunk-LC4BSDDG.js → chunk-NAN5IE3B.js} +1 -1
  77. package/dist/chunks/{chunk-TD7AL545.js → chunk-NE6PKR2J.js} +1 -1
  78. package/dist/chunks/{chunk-2EFBGKRC.js → chunk-NLTZGQB2.js} +1 -1
  79. package/dist/chunks/{chunk-TL4ZLZ2Q.js → chunk-NMIZSQDN.js} +1 -1
  80. package/dist/chunks/{chunk-22UXDTCE.js → chunk-NZRBJB6T.js} +1 -1
  81. package/dist/chunks/chunk-OII46FDN.js +12 -0
  82. package/dist/chunks/{chunk-YOWMZJPA.js → chunk-OJWI6QJ3.js} +1 -1
  83. package/dist/chunks/{chunk-GKALP6QD.js → chunk-OYIDWI5Y.js} +1 -1
  84. package/dist/chunks/{chunk-QVMU7ZKQ.js → chunk-P24YBQ6H.js} +1 -1
  85. package/dist/chunks/{chunk-2JCJP43W.js → chunk-P6J22UJQ.js} +1 -1
  86. package/dist/chunks/{chunk-E7DYXF6G.js → chunk-PFZCGMJ7.js} +1 -1
  87. package/dist/chunks/{chunk-64UCX5JM.js → chunk-PKNEWN4W.js} +1 -1
  88. package/dist/chunks/{chunk-Q4GX2UTG.js → chunk-PKZK23PR.js} +1 -1
  89. package/dist/chunks/{chunk-56UH6NQ3.js → chunk-PL6IOUKW.js} +1 -1
  90. package/dist/chunks/{chunk-MBL7MWP5.js → chunk-Q2JNATRP.js} +1 -1
  91. package/dist/chunks/{chunk-KMPDQE4Q.js → chunk-Q46Q4Y4R.js} +1 -1
  92. package/dist/chunks/{chunk-NAJCRBQB.js → chunk-QXL353OB.js} +1 -1
  93. package/dist/chunks/{chunk-VR5ROBAO.js → chunk-RI6DJAFI.js} +1 -1
  94. package/dist/chunks/{chunk-2DHDKWYN.js → chunk-RIJ45N7C.js} +1 -1
  95. package/dist/chunks/{chunk-6AJWRPTY.js → chunk-RUBMVRT6.js} +1 -1
  96. package/dist/chunks/{chunk-6RUAAORO.js → chunk-S535FZTA.js} +1 -1
  97. package/dist/chunks/{chunk-5I7CC45F.js → chunk-SBEWZ65N.js} +1 -1
  98. package/dist/chunks/{chunk-GJCVOEC2.js → chunk-SDYCW5JM.js} +1 -1
  99. package/dist/chunks/chunk-SNGM6NSO.js +7 -0
  100. package/dist/chunks/chunk-SNNJRKD6.js +10 -0
  101. package/dist/chunks/{chunk-DX2OHM56.js → chunk-SR7BZA6N.js} +1 -1
  102. package/dist/chunks/{chunk-QXYCICNB.js → chunk-STKZTUGE.js} +1 -1
  103. package/dist/chunks/{chunk-XGOELSYA.js → chunk-SXYA7JSX.js} +1 -1
  104. package/dist/chunks/chunk-TILI4QBL.js +11 -0
  105. package/dist/chunks/{chunk-PMEYNJU2.js → chunk-TZE4CS4K.js} +1 -1
  106. package/dist/chunks/{chunk-BZV2S4H6.js → chunk-U2TQFAO3.js} +1 -1
  107. package/dist/chunks/chunk-U2ZNF6HN.js +8 -0
  108. package/dist/chunks/chunk-UIMJNASP.js +7 -0
  109. package/dist/chunks/{chunk-FQVIWQ6M.js → chunk-UQNBUXQA.js} +1 -1
  110. package/dist/chunks/{chunk-C4N4LKPM.js → chunk-US7YJ2RQ.js} +1 -1
  111. package/dist/chunks/{chunk-JVNIDSP5.js → chunk-V5TOMLK4.js} +1 -1
  112. package/dist/chunks/{chunk-L6CZL2IQ.js → chunk-VQSSVB6V.js} +1 -1
  113. package/dist/chunks/chunk-VTITZEPW.js +9 -0
  114. package/dist/chunks/chunk-WFS3XBAA.js +8 -0
  115. package/dist/chunks/{chunk-XEXOSJIU.js → chunk-WKIDCYKL.js} +1 -1
  116. package/dist/chunks/{chunk-UVHKXCR5.js → chunk-WKSXBH7X.js} +1 -2
  117. package/dist/chunks/{chunk-77LSSWXL.js → chunk-WTFD4MDT.js} +1 -1
  118. package/dist/chunks/{chunk-YO6SJCZP.js → chunk-WYGOYE6C.js} +1 -1
  119. package/dist/chunks/{chunk-UNASHUWQ.js → chunk-XFUUALZS.js} +1 -1
  120. package/dist/chunks/{chunk-SXEOJSZQ.js → chunk-XS3MNHFR.js} +1 -1
  121. package/dist/chunks/{chunk-ZGQNI22M.js → chunk-YGYUPPAL.js} +2 -2
  122. package/dist/chunks/{chunk-Q25FOMOX.js → chunk-YKLTNKQJ.js} +1 -1
  123. package/dist/chunks/{chunk-WFCGAYP5.js → chunk-YUHKH4TK.js} +1 -1
  124. package/dist/chunks/{chunk-D4TD2KWH.js → chunk-YZKARZ2B.js} +1 -1
  125. package/dist/chunks/chunk-ZCUUCYID.js +13 -0
  126. package/dist/chunks/{chunk-FPYHB76H.js → chunk-ZEUREQ4E.js} +1 -1
  127. package/dist/chunks/chunk-ZIC7VWFC.js +14 -0
  128. package/dist/chunks/{chunk-QGZZL6YY.js → chunk-ZPJHONCZ.js} +1 -1
  129. package/dist/chunks/{chunk-R2P4PNRQ.js → chunk-ZQXXESKG.js} +1 -1
  130. package/dist/chunks/{clear-B764MEAM.js → clear-Z5OO6URI.js} +1 -1
  131. package/dist/chunks/cli-embedded-Y74S252S.js +66 -0
  132. package/dist/chunks/{compile-vercel-config-EWCB7SIC.js → compile-vercel-config-ZKUTSDWV.js} +1 -1
  133. package/dist/chunks/{config-D4WY2HG4.js → config-AUTTHXQO.js} +1 -1
  134. package/dist/chunks/config-RJ7PLFQD.js +7 -0
  135. package/dist/chunks/{connect-git-provider-AWEOEEOO.js → connect-git-provider-YIX5ZOU6.js} +1 -1
  136. package/dist/chunks/{delete-W3GMFAKA.js → delete-QQOC63HV.js} +1 -1
  137. package/dist/chunks/{delete-SKYFHUWD.js → delete-WIGSOZR3.js} +1 -1
  138. package/dist/chunks/{detect-services-3TRRRLES.js → detect-services-J4LGLAHC.js} +1 -1
  139. package/dist/chunks/{disable-EBPZ2LYC.js → disable-L54VGY5A.js} +1 -1
  140. package/dist/chunks/{discard-SMVPENSP.js → discard-Q5UPTZR2.js} +1 -1
  141. package/dist/chunks/{edit-CGTNGJKY.js → edit-FRGMYBW3.js} +1 -1
  142. package/dist/chunks/{edit-A3M3GBGP.js → edit-QEDNQ33T.js} +1 -1
  143. package/dist/chunks/{enable-6A5THWDP.js → enable-TGQZWSBG.js} +1 -1
  144. package/dist/chunks/engine-DkdkXQEy-FDYYIXY7.js +17 -0
  145. package/dist/chunks/{exec-UV73J2ZB.js → exec-H3X7U4P3.js} +1 -1
  146. package/dist/chunks/{export-R5IUWAW5.js → export-YYQ2J5AT.js} +1 -1
  147. package/dist/chunks/{future-CPJUUZTU.js → future-RYEYLPCG.js} +1 -1
  148. package/dist/chunks/{generate-cert-for-deploy-Z3HCAR5H.js → generate-cert-for-deploy-Y4KDIFF2.js} +1 -1
  149. package/dist/chunks/image-PDPRURMH.js +7 -0
  150. package/dist/chunks/{import-builders-GPJQAMXT.js → import-builders-H54QCMQ4.js} +1 -1
  151. package/dist/chunks/{inspect-WC2C4MDP.js → inspect-6IBPIBIJ.js} +1 -1
  152. package/dist/chunks/{inspect-WWOHWQKS.js → inspect-AHHXHIIP.js} +1 -1
  153. package/dist/chunks/{inspect-BO2ACFEG.js → inspect-Q7FYDFL7.js} +1 -1
  154. package/dist/chunks/{inspect-6FEL5DYV.js → inspect-RPCDGIP3.js} +1 -1
  155. package/dist/chunks/{inspect-TEPB7KVC.js → inspect-SFM3NWDF.js} +1 -1
  156. package/dist/chunks/{list-C5GUZ35P.js → list-7WWUYCE6.js} +1 -1
  157. package/dist/chunks/{list-EZWZSVM4.js → list-GSVERG4S.js} +1 -1
  158. package/dist/chunks/{list-4KSJEP23.js → list-NXZXKKAR.js} +1 -1
  159. package/dist/chunks/{login-ZNCCVA4H.js → login-HEHHQO3F.js} +1 -1
  160. package/dist/chunks/{login-PDZT4PQR.js → login-XKLPSZNN.js} +1 -1
  161. package/dist/chunks/{logs-YKQMUTMG.js → logs-NJ46ZSNZ.js} +1 -1
  162. package/dist/chunks/{ls-3HUS6KS6.js → ls-5SKRXNSI.js} +1 -1
  163. package/dist/chunks/{ls-WX4BJRDV.js → ls-FOFJU2JJ.js} +1 -1
  164. package/dist/chunks/{ls-TASQJDLF.js → ls-ITWXAWSZ.js} +1 -1
  165. package/dist/chunks/{ls-LYVPEIIT.js → ls-LCUOBWY2.js} +1 -1
  166. package/dist/chunks/{ls-KQJYKADC.js → ls-MWGIT2YH.js} +1 -1
  167. package/dist/chunks/{ls-RBPRE6BF.js → ls-OY5YTZGN.js} +1 -1
  168. package/dist/chunks/{ls-ZP7OBTTV.js → ls-TZN53EJL.js} +1 -1
  169. package/dist/chunks/{mutate-5N6DMBYS.js → mutate-ZYXVL22A.js} +1 -1
  170. package/dist/chunks/{native-self-update-7OAY4AVR.js → native-self-update-DEVBYOH2.js} +1 -1
  171. package/dist/chunks/{notifications-OVFMQLHL.js → notifications-XAPB2F2T.js} +1 -1
  172. package/dist/chunks/{open-DOBOKUEK.js → open-WPRHI6ND.js} +1 -1
  173. package/dist/chunks/{openapi-YAZA3237.js → openapi-UUFKDKGC.js} +1 -1
  174. package/dist/chunks/{permissions-PHCOVDWK.js → permissions-FU5OET67.js} +1 -1
  175. package/dist/chunks/{plugin-offer-M7KJSJU6.js → plugin-offer-E5JOW442.js} +1 -1
  176. package/dist/chunks/{prompt-missing-credentials-RTNCHH6Y.js → prompt-missing-credentials-ZZVTEQQB.js} +1 -1
  177. package/dist/chunks/{publish-JIFRJNDV.js → publish-R5IV2BH2.js} +1 -1
  178. package/dist/chunks/pull-CQVHIIAN.js +7 -0
  179. package/dist/chunks/{purchase-domain-if-available-3EBONBX3.js → purchase-domain-if-available-VMWCMYC2.js} +1 -1
  180. package/dist/chunks/{push-ZN6CBJLJ.js → push-Y5CUOISM.js} +1 -1
  181. package/dist/chunks/{query-MT6ID6C7.js → query-VMKIOI3W.js} +1 -1
  182. package/dist/chunks/{reauthenticate-OXFB64PS.js → reauthenticate-5K7LBTOW.js} +1 -1
  183. package/dist/chunks/{reorder-N2L43LXD.js → reorder-W3MXHSGZ.js} +1 -1
  184. package/dist/chunks/{reply-WBR3XXBJ.js → reply-YH7HRIWQ.js} +1 -1
  185. package/dist/chunks/{resolve-NMR24Y67.js → resolve-FWVMWJTG.js} +1 -1
  186. package/dist/chunks/{resolve-agent-team-KRTLBC5D.js → resolve-agent-team-6L7AQUA2.js} +1 -1
  187. package/dist/chunks/{restore-AKAVSLAK.js → restore-I7L3EOS4.js} +1 -1
  188. package/dist/chunks/{rm-Q3ZXEMGI.js → rm-AWUMNWQU.js} +1 -1
  189. package/dist/chunks/{rm-DGMHU3CU.js → rm-HVGUK55W.js} +1 -1
  190. package/dist/chunks/{rm-ERBTFH3G.js → rm-M3EMCKSN.js} +1 -1
  191. package/dist/chunks/{rm-H2T7HB3F.js → rm-RFCTWU5R.js} +1 -1
  192. package/dist/chunks/{rm-TNGYCAFJ.js → rm-VREBRM5D.js} +1 -1
  193. package/dist/chunks/{routes-4WGST7VN.js → routes-BP54NO3Z.js} +1 -1
  194. package/dist/chunks/{rule-inspect-ZVHPS2PL.js → rule-inspect-SQUCRRGA.js} +1 -1
  195. package/dist/chunks/{schema-TSHU5NN6.js → schema-AKVIKCFT.js} +1 -1
  196. package/dist/chunks/{schema-YUXTIJSB.js → schema-S36QQNJP.js} +1 -1
  197. package/dist/chunks/{select-org-35NFUKXO.js → select-org-PRWYXAWW.js} +1 -1
  198. package/dist/chunks/serving-DKny38LK-UNINNTL5.js +8 -0
  199. package/dist/chunks/{set-PP5K4NBO.js → set-ZJAC44LV.js} +1 -1
  200. package/dist/chunks/{setup-and-link-ACSPPTME.js → setup-and-link-VD53JFQI.js} +1 -1
  201. package/dist/chunks/{skills-X5TPVYXW.js → skills-JG4MGVKX.js} +1 -1
  202. package/dist/chunks/{tags-6QB3FP3B.js → tags-4Y4UBA5S.js} +1 -1
  203. package/dist/chunks/token-3ILJZPAZ.js +7 -0
  204. package/dist/chunks/token-JJLQVXPI.js +7 -0
  205. package/dist/chunks/{token-util-JDQI37VN.js → token-util-A4BSB3KP.js} +1 -1
  206. package/dist/chunks/token-util-KL35LHLQ.js +7 -0
  207. package/dist/chunks/{types-SENK43U4.js → types-DSN6Q6HW.js} +1 -1
  208. package/dist/chunks/{update-QA3NLSTV.js → update-R42CXSVE.js} +1 -1
  209. package/dist/commands/build/index.js +1 -1
  210. package/dist/commands/deploy/index.js +9 -9
  211. package/dist/commands/dev/index.js +2 -2
  212. package/dist/commands/env/index.js +12 -12
  213. package/dist/commands/link/index.js +4 -4
  214. package/dist/commands/list/index.js +1 -1
  215. package/dist/commands/project/index.js +8 -14
  216. package/dist/commands-account.js +2 -2
  217. package/dist/commands-ai.js +4 -4
  218. package/dist/commands-blob.js +7 -7
  219. package/dist/commands-core.js +62 -32
  220. package/dist/commands-deployments.js +4 -4
  221. package/dist/commands-flags.js +3 -3
  222. package/dist/commands-integrations.js +1 -1
  223. package/dist/commands-observability.js +2 -2
  224. package/dist/commands-routing.js +5 -5
  225. package/dist/help.js +1 -1
  226. package/dist/index.js +5 -5
  227. package/dist/internal-build.js +1 -1
  228. package/dist/launcher-errors.js +1 -1
  229. package/dist/package.json +31 -30
  230. package/dist/version.mjs +1 -1
  231. package/package.json +22 -21
  232. package/dist/chunks/chunk-5KE67O45.js +0 -7
  233. package/dist/chunks/chunk-CFYTFXX6.js +0 -7
  234. package/dist/chunks/chunk-CUBRYWA2.js +0 -7
  235. package/dist/chunks/chunk-FOQD62WW.js +0 -17
  236. package/dist/chunks/chunk-FTACGWII.js +0 -14
  237. package/dist/chunks/chunk-FY4ORPZH.js +0 -7
  238. package/dist/chunks/chunk-G7H33IKQ.js +0 -10
  239. package/dist/chunks/chunk-KWXJIVBG.js +0 -7
  240. package/dist/chunks/chunk-MOF4QNZH.js +0 -9
  241. package/dist/chunks/chunk-O4CQRV2G.js +0 -7
  242. package/dist/chunks/chunk-UWJ3UPS5.js +0 -11
  243. package/dist/chunks/chunk-ZUI5EMXD.js +0 -11
  244. package/dist/chunks/config-CW4JO67Q.js +0 -7
  245. package/dist/chunks/image-VNSN2SKE.js +0 -7
  246. package/dist/chunks/pull-HLJSW3W4.js +0 -7
  247. package/dist/chunks/token-W6P2KNI5.js +0 -7
@@ -4,4 +4,4 @@ import { dirname as __dirname_ } from 'node:path';
4
4
  const require = __createRequire(import.meta.url);
5
5
  const __filename = __fileURLToPath(import.meta.url);
6
6
  const __dirname = __dirname_(__filename);
7
- import{compileVercelConfig,findSourceVercelConfigFile,getVercelConfigPath,normalizeConfig}from"./chunk-5I7CC45F.js";import{DEFAULT_VERCEL_CONFIG_FILENAME,VERCEL_CONFIG_EXTENSIONS}from"./chunk-KNAOHPOI.js";import"./chunk-64UCX5JM.js";import"./chunk-ITQPDXXA.js";import"./chunk-56UH6NQ3.js";import"./chunk-4NTBYNFR.js";import"./chunk-C4N4LKPM.js";import"./chunk-2VBFQZ72.js";import"./chunk-GJCVOEC2.js";import"./chunk-LUX4PBJL.js";import"./chunk-OPORM35X.js";import"./chunk-MXTC4ZAQ.js";import"./chunk-ZS2WS4AM.js";import"./chunk-4SAVH3H7.js";import"./chunk-T2FCF46I.js";import"./chunk-VRH7LWOC.js";import"./chunk-DBT6PGEH.js";import"./chunk-W634OFUG.js";import"./chunk-BLUPZPAS.js";import"./chunk-5MDNVAE6.js";import"./chunk-OCR5CRTH.js";import"./chunk-RM3ZDRYE.js";import"./chunk-YHPPP3SF.js";import"./chunk-CKTLP5GX.js";import"./chunk-2BKALEOP.js";import"./chunk-NB2WLB3J.js";import"./chunk-ISWW3DKF.js";import"./chunk-BULSRTQE.js";import"./chunk-BRQUZ5NC.js";import"./chunk-D6REP5QQ.js";import"./chunk-FBYA6LLM.js";import"./chunk-MY4MONOH.js";import"./chunk-7EJQLVWX.js";import"./chunk-SCV7XEEO.js";import"./chunk-BZENIQ7N.js";export{DEFAULT_VERCEL_CONFIG_FILENAME,VERCEL_CONFIG_EXTENSIONS,compileVercelConfig,findSourceVercelConfigFile,getVercelConfigPath,normalizeConfig};
7
+ import{compileVercelConfig,findSourceVercelConfigFile,getVercelConfigPath,normalizeConfig}from"./chunk-SBEWZ65N.js";import{DEFAULT_VERCEL_CONFIG_FILENAME,VERCEL_CONFIG_EXTENSIONS}from"./chunk-6NUH6ZPE.js";import"./chunk-PKNEWN4W.js";import"./chunk-ITQPDXXA.js";import"./chunk-PL6IOUKW.js";import"./chunk-4NTBYNFR.js";import"./chunk-US7YJ2RQ.js";import"./chunk-2VBFQZ72.js";import"./chunk-SDYCW5JM.js";import"./chunk-LUX4PBJL.js";import"./chunk-OPORM35X.js";import"./chunk-MXTC4ZAQ.js";import"./chunk-ZS2WS4AM.js";import"./chunk-4SAVH3H7.js";import"./chunk-T2FCF46I.js";import"./chunk-VRH7LWOC.js";import"./chunk-DBT6PGEH.js";import"./chunk-GZLYNPNU.js";import"./chunk-BLUPZPAS.js";import"./chunk-5MDNVAE6.js";import"./chunk-OCR5CRTH.js";import"./chunk-RM3ZDRYE.js";import"./chunk-YHPPP3SF.js";import"./chunk-AMPJ6RWT.js";import"./chunk-2BKALEOP.js";import"./chunk-NB2WLB3J.js";import"./chunk-ISWW3DKF.js";import"./chunk-BULSRTQE.js";import"./chunk-BRQUZ5NC.js";import"./chunk-D6REP5QQ.js";import"./chunk-FBYA6LLM.js";import"./chunk-MY4MONOH.js";import"./chunk-7EJQLVWX.js";import"./chunk-SCV7XEEO.js";import"./chunk-BZENIQ7N.js";export{DEFAULT_VERCEL_CONFIG_FILENAME,VERCEL_CONFIG_EXTENSIONS,compileVercelConfig,findSourceVercelConfigFile,getVercelConfigPath,normalizeConfig};
@@ -4,5 +4,5 @@ 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{repositoryPath}from"./chunk-DFVNL5ML.js";import{emitVcrArgParseError,handleVcrApiError,requireVcrRepository,resolveVcrScope,validateVcrJsonOutput}from"./chunk-SHY7P3C6.js";import{readOnOffOption,rewriteLegacyOnOffValues}from"./chunk-E7DYXF6G.js";import"./chunk-RCUDI7OF.js";import"./chunk-GD7AV7BO.js";import{outputError}from"./chunk-AX3V7N44.js";import{configSubcommand}from"./chunk-QVMU7ZKQ.js";import"./chunk-TL4ZLZ2Q.js";import"./chunk-VD2FK6OF.js";import"./chunk-JVNIDSP5.js";import{printError}from"./chunk-Q4GX2UTG.js";import"./chunk-TZ6MSTOI.js";import{buildCommandWithGlobalFlags,outputAgentError}from"./chunk-ZUI5EMXD.js";import"./chunk-FY4ORPZH.js";import"./chunk-KNAOHPOI.js";import"./chunk-64UCX5JM.js";import"./chunk-ITQPDXXA.js";import"./chunk-56UH6NQ3.js";import"./chunk-4NTBYNFR.js";import{parseArguments}from"./chunk-C4N4LKPM.js";import"./chunk-2VBFQZ72.js";import"./chunk-GJCVOEC2.js";import"./chunk-LUX4PBJL.js";import"./chunk-OPORM35X.js";import"./chunk-MXTC4ZAQ.js";import"./chunk-ZS2WS4AM.js";import"./chunk-4SAVH3H7.js";import{isAPIError}from"./chunk-T2FCF46I.js";import"./chunk-VRH7LWOC.js";import"./chunk-DBT6PGEH.js";import{output_manager_default}from"./chunk-W634OFUG.js";import"./chunk-BLUPZPAS.js";import"./chunk-5MDNVAE6.js";import"./chunk-OCR5CRTH.js";import"./chunk-RM3ZDRYE.js";import"./chunk-YHPPP3SF.js";import{getFlagsSpecification}from"./chunk-CKTLP5GX.js";import"./chunk-2BKALEOP.js";import"./chunk-NB2WLB3J.js";import"./chunk-ISWW3DKF.js";import"./chunk-BULSRTQE.js";import"./chunk-BRQUZ5NC.js";import"./chunk-D6REP5QQ.js";import"./chunk-FBYA6LLM.js";import"./chunk-MY4MONOH.js";import"./chunk-7EJQLVWX.js";import"./chunk-SCV7XEEO.js";import{AGENT_REASON}from"./chunk-CFYTFXX6.js";import"./chunk-BZENIQ7N.js";var USAGE="vcr update <repository> --public";async function config(client,argv,telemetry){let rewritten=rewriteLegacyOnOffValues(argv,configSubcommand.options,client),parsedArgs;try{parsedArgs=parseArguments("error"in rewritten?argv:rewritten.args,getFlagsSpecification(configSubcommand.options))}catch(err){return emitVcrArgParseError(client,err,USAGE),printError(err),2}let fr=validateVcrJsonOutput(client,parsedArgs.flags);if(typeof fr=="number")return fr;if("error"in rewritten)return outputAgentError(client,{status:"error",reason:AGENT_REASON.INVALID_ARGUMENTS,message:rewritten.error},2),outputError(client,fr.jsonOutput,"INVALID_ARGUMENTS",rewritten.error);let repository=parsedArgs.args[0],project=parsedArgs.flags["--project"],visibility=readOnOffOption(client,parsedArgs.flags,{on:"--public",off:"--no-public"});if("error"in visibility){let err=new Error(visibility.error);return emitVcrArgParseError(client,err,USAGE),outputError(client,fr.jsonOutput,"INVALID_ARGUMENTS",visibility.error)}let desiredPublic=visibility.value;telemetry.trackCliOptionProject(project),telemetry.trackCliOptionFormat(parsedArgs.flags["--format"]),telemetry.trackCliOptionPublic(rewritten.legacy.get("--public")),rewritten.legacy.has("--public")||(telemetry.trackCliFlagPublic(parsedArgs.flags["--public"]),telemetry.trackCliFlagNoPublic(parsedArgs.flags["--no-public"]));let missingRepository=requireVcrRepository(client,repository,fr.jsonOutput,USAGE);if(typeof missingRepository=="number")return missingRepository;if(parsedArgs.args.length>1){let message="`vcr update` takes one repository. Pass --public or --no-public without a value.";return outputAgentError(client,{status:"error",reason:AGENT_REASON.INVALID_ARGUMENTS,message,next:[{command:buildCommandWithGlobalFlags(client.argv,USAGE),when:"Re-run with one repository"}]},2),outputError(client,fr.jsonOutput,"INVALID_ARGUMENTS",message)}if(desiredPublic===void 0){let message="Missing a setting to change. Pass --public to make the repository public, or --no-public to make it private.";return outputAgentError(client,{status:"error",reason:AGENT_REASON.MISSING_ARGUMENTS,message,next:[{command:buildCommandWithGlobalFlags(client.argv,USAGE),when:"Re-run with --public or --no-public"}]},2),outputError(client,fr.jsonOutput,"MISSING_ARGUMENTS",message)}let scope=await resolveVcrScope(client,{project,jsonOutput:fr.jsonOutput});if(typeof scope=="number")return scope;let path=repositoryPath(scope,repository);output_manager_default.spinner("Updating repository...");try{let updated=await client.fetch(path,{method:"PATCH",body:{public:desiredPublic}});if(fr.jsonOutput)client.stdout.write(`${JSON.stringify(updated,null,2)}
7
+ import{repositoryPath}from"./chunk-DFVNL5ML.js";import{emitVcrArgParseError,handleVcrApiError,requireVcrRepository,resolveVcrScope,validateVcrJsonOutput}from"./chunk-36XHIIUT.js";import{readOnOffOption,rewriteLegacyOnOffValues}from"./chunk-PFZCGMJ7.js";import"./chunk-RCUDI7OF.js";import"./chunk-GD7AV7BO.js";import{outputError}from"./chunk-5RSSGN2Q.js";import{configSubcommand}from"./chunk-P24YBQ6H.js";import"./chunk-NMIZSQDN.js";import"./chunk-K7ARJYAG.js";import"./chunk-V5TOMLK4.js";import{printError}from"./chunk-PKZK23PR.js";import"./chunk-DNLE3KPC.js";import{buildCommandWithGlobalFlags,outputAgentError}from"./chunk-AUIV7YJO.js";import"./chunk-FYE7ILRR.js";import"./chunk-6NUH6ZPE.js";import"./chunk-PKNEWN4W.js";import"./chunk-ITQPDXXA.js";import"./chunk-PL6IOUKW.js";import"./chunk-4NTBYNFR.js";import{parseArguments}from"./chunk-US7YJ2RQ.js";import"./chunk-2VBFQZ72.js";import"./chunk-SDYCW5JM.js";import"./chunk-LUX4PBJL.js";import"./chunk-OPORM35X.js";import"./chunk-MXTC4ZAQ.js";import"./chunk-ZS2WS4AM.js";import"./chunk-4SAVH3H7.js";import{isAPIError}from"./chunk-T2FCF46I.js";import"./chunk-VRH7LWOC.js";import"./chunk-DBT6PGEH.js";import{output_manager_default}from"./chunk-GZLYNPNU.js";import"./chunk-BLUPZPAS.js";import"./chunk-5MDNVAE6.js";import"./chunk-OCR5CRTH.js";import"./chunk-RM3ZDRYE.js";import"./chunk-YHPPP3SF.js";import{getFlagsSpecification}from"./chunk-AMPJ6RWT.js";import"./chunk-2BKALEOP.js";import"./chunk-NB2WLB3J.js";import"./chunk-ISWW3DKF.js";import"./chunk-BULSRTQE.js";import"./chunk-BRQUZ5NC.js";import"./chunk-D6REP5QQ.js";import"./chunk-FBYA6LLM.js";import"./chunk-MY4MONOH.js";import"./chunk-7EJQLVWX.js";import"./chunk-SCV7XEEO.js";import{AGENT_REASON}from"./chunk-JBU72NEQ.js";import"./chunk-BZENIQ7N.js";var USAGE="vcr update <repository> --public";async function config(client,argv,telemetry){let rewritten=rewriteLegacyOnOffValues(argv,configSubcommand.options,client),parsedArgs;try{parsedArgs=parseArguments("error"in rewritten?argv:rewritten.args,getFlagsSpecification(configSubcommand.options))}catch(err){return emitVcrArgParseError(client,err,USAGE),printError(err),2}let fr=validateVcrJsonOutput(client,parsedArgs.flags);if(typeof fr=="number")return fr;if("error"in rewritten)return outputAgentError(client,{status:"error",reason:AGENT_REASON.INVALID_ARGUMENTS,message:rewritten.error},2),outputError(client,fr.jsonOutput,"INVALID_ARGUMENTS",rewritten.error);let repository=parsedArgs.args[0],project=parsedArgs.flags["--project"],visibility=readOnOffOption(client,parsedArgs.flags,{on:"--public",off:"--no-public"});if("error"in visibility){let err=new Error(visibility.error);return emitVcrArgParseError(client,err,USAGE),outputError(client,fr.jsonOutput,"INVALID_ARGUMENTS",visibility.error)}let desiredPublic=visibility.value;telemetry.trackCliOptionProject(project),telemetry.trackCliOptionFormat(parsedArgs.flags["--format"]),telemetry.trackCliOptionPublic(rewritten.legacy.get("--public")),rewritten.legacy.has("--public")||(telemetry.trackCliFlagPublic(parsedArgs.flags["--public"]),telemetry.trackCliFlagNoPublic(parsedArgs.flags["--no-public"]));let missingRepository=requireVcrRepository(client,repository,fr.jsonOutput,USAGE);if(typeof missingRepository=="number")return missingRepository;if(parsedArgs.args.length>1){let message="`vcr update` takes one repository. Pass --public or --no-public without a value.";return outputAgentError(client,{status:"error",reason:AGENT_REASON.INVALID_ARGUMENTS,message,next:[{command:buildCommandWithGlobalFlags(client.argv,USAGE),when:"Re-run with one repository"}]},2),outputError(client,fr.jsonOutput,"INVALID_ARGUMENTS",message)}if(desiredPublic===void 0){let message="Missing a setting to change. Pass --public to make the repository public, or --no-public to make it private.";return outputAgentError(client,{status:"error",reason:AGENT_REASON.MISSING_ARGUMENTS,message,next:[{command:buildCommandWithGlobalFlags(client.argv,USAGE),when:"Re-run with --public or --no-public"}]},2),outputError(client,fr.jsonOutput,"MISSING_ARGUMENTS",message)}let scope=await resolveVcrScope(client,{project,jsonOutput:fr.jsonOutput});if(typeof scope=="number")return scope;let path=repositoryPath(scope,repository);output_manager_default.spinner("Updating repository...");try{let updated=await client.fetch(path,{method:"PATCH",body:{public:desiredPublic}});if(fr.jsonOutput)client.stdout.write(`${JSON.stringify(updated,null,2)}
8
8
  `);else{let isPublic=updated.repository?.public??desiredPublic;output_manager_default.success(`Repository ${updated.repository?.name??repository} is now ${isPublic?"public":"private"}`)}return 0}catch(err){if(isAPIError(err))return handleVcrApiError(client,err,fr.jsonOutput,{retry:{command:buildCommandWithGlobalFlags(client.argv,"vcr ls"),when:"List repositories to confirm the name or id"}});throw err}finally{output_manager_default.stopSpinner()}}export{config as default};
@@ -0,0 +1,7 @@
1
+ import { createRequire as __createRequire } from 'node:module';
2
+ import { fileURLToPath as __fileURLToPath } from 'node:url';
3
+ import { dirname as __dirname_ } from 'node:path';
4
+ const require = __createRequire(import.meta.url);
5
+ const __filename = __fileURLToPath(import.meta.url);
6
+ const __dirname = __dirname_(__filename);
7
+ import{getSubcommand}from"./chunk-ETV3C2CV.js";import{getCommandAliases}from"./chunk-ZIC7VWFC.js";import{tracesCommand}from"./chunk-M3Z6NSC2.js";import{lsSubcommand,rmSubcommand,setSubcommand,tracesConfigCommand}from"./chunk-IHTWZEQW.js";import"./chunk-ECFLIVEE.js";import"./chunk-WTFD4MDT.js";import"./chunk-SNGM6NSO.js";import"./chunk-P24YBQ6H.js";import"./chunk-NMIZSQDN.js";import"./chunk-K7ARJYAG.js";import"./chunk-V5TOMLK4.js";import"./chunk-M3R7F2N4.js";import"./chunk-4E6BGQWR.js";import"./chunk-6UMVJ7RL.js";import"./chunk-IIGNDMLO.js";import"./chunk-N65H4JMJ.js";import"./chunk-EJN55YDV.js";import"./chunk-5DXC4TE2.js";import"./chunk-4U6ACPA4.js";import"./chunk-7VGBGUX7.js";import"./chunk-CU3LNJZV.js";import"./chunk-JALVF3C2.js";import"./chunk-BZIC36KP.js";import{help}from"./chunk-OYIDWI5Y.js";import{TelemetryClient}from"./chunk-MBXLL2HF.js";import"./chunk-2EYYB6YN.js";import"./chunk-NWGBDBZI.js";import"./chunk-FYE7ILRR.js";import"./chunk-4NTBYNFR.js";import{warnDeprecatedSubcommand}from"./chunk-SDYCW5JM.js";import"./chunk-4SAVH3H7.js";import"./chunk-VRH7LWOC.js";import"./chunk-DBT6PGEH.js";import{output_manager_default}from"./chunk-GZLYNPNU.js";import"./chunk-BLUPZPAS.js";import"./chunk-5MDNVAE6.js";import"./chunk-RM3ZDRYE.js";import"./chunk-YHPPP3SF.js";import"./chunk-PUKYAALC.js";import"./chunk-AMPJ6RWT.js";import"./chunk-2BKALEOP.js";import"./chunk-NB2WLB3J.js";import"./chunk-ISWW3DKF.js";import"./chunk-BULSRTQE.js";import"./chunk-BRQUZ5NC.js";import"./chunk-BZENIQ7N.js";var TracesConfigTelemetryClient=class extends TelemetryClient{trackCliSubcommandLs(actual){this.trackCliSubcommand({subcommand:"ls",value:actual})}trackCliSubcommandSet(actual){this.trackCliSubcommand({subcommand:"set",value:actual})}trackCliSubcommandRemove(actual){this.trackCliSubcommand({subcommand:"remove",value:actual})}};var COMMAND_CONFIG={ls:getCommandAliases(lsSubcommand),set:getCommandAliases(setSubcommand),remove:getCommandAliases(rmSubcommand)},SUBCOMMAND_METADATA={ls:lsSubcommand,set:setSubcommand,remove:rmSubcommand};async function config(client,{args,needHelp,subcommandOriginal,telemetry}){let{subcommand:action,subcommandOriginal:actionOriginal}=getSubcommand(args,COMMAND_CONFIG),actionMetadata=typeof action=="string"?SUBCOMMAND_METADATA[action]:void 0;function printHelp(command){return output_manager_default.print(help(command,{stream:client.stderr,parent:tracesCommand,columns:client.stderr.columns})),needHelp?0:2}if(needHelp)return telemetry.trackCliFlagHelp("traces",subcommandOriginal),printHelp(actionMetadata||tracesConfigCommand);telemetry.trackCliSubcommandConfig(subcommandOriginal);let configTelemetry=new TracesConfigTelemetryClient({opts:{store:client.telemetryEventStore}});switch(action){case"ls":return configTelemetry.trackCliSubcommandLs(actionOriginal),(await import("./ls-ITWXAWSZ.js")).default(client);case"set":return configTelemetry.trackCliSubcommandSet(actionOriginal),(await import("./set-ZJAC44LV.js")).default(client);case"remove":return configTelemetry.trackCliSubcommandRemove(actionOriginal),actionOriginal==="delete"&&warnDeprecatedSubcommand(client,"traces config delete","traces config remove"),(await import("./rm-HVGUK55W.js")).default(client);default:return printHelp(tracesConfigCommand)}}export{config as default};
@@ -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{buildRepoUrl,checkExistsAndConnect,connectGitProvider,disconnectGitProvider,formatProvider,parseRepoUrl,printRemoteUrls,selectAndParseRemoteUrl,selectRemoteUrl}from"./chunk-UNASHUWQ.js";import"./chunk-4ELZOAQH.js";import"./chunk-JUAHDOL6.js";import"./chunk-UI2H2EIM.js";import"./chunk-UUDE44NV.js";import"./chunk-T2FCF46I.js";import"./chunk-VRH7LWOC.js";import"./chunk-DBT6PGEH.js";import"./chunk-W634OFUG.js";import"./chunk-BLUPZPAS.js";import"./chunk-5MDNVAE6.js";import"./chunk-RM3ZDRYE.js";import"./chunk-YHPPP3SF.js";import"./chunk-2BKALEOP.js";import"./chunk-NB2WLB3J.js";import"./chunk-ISWW3DKF.js";import"./chunk-BULSRTQE.js";import"./chunk-BRQUZ5NC.js";import"./chunk-BZENIQ7N.js";export{buildRepoUrl,checkExistsAndConnect,connectGitProvider,disconnectGitProvider,formatProvider,parseRepoUrl,printRemoteUrls,selectAndParseRemoteUrl,selectRemoteUrl};
7
+ import{buildRepoUrl,checkExistsAndConnect,connectGitProvider,disconnectGitProvider,formatProvider,parseRepoUrl,printRemoteUrls,selectAndParseRemoteUrl,selectRemoteUrl}from"./chunk-XFUUALZS.js";import"./chunk-4ELZOAQH.js";import"./chunk-JUAHDOL6.js";import"./chunk-UI2H2EIM.js";import"./chunk-UUDE44NV.js";import"./chunk-T2FCF46I.js";import"./chunk-VRH7LWOC.js";import"./chunk-DBT6PGEH.js";import"./chunk-GZLYNPNU.js";import"./chunk-BLUPZPAS.js";import"./chunk-5MDNVAE6.js";import"./chunk-RM3ZDRYE.js";import"./chunk-YHPPP3SF.js";import"./chunk-2BKALEOP.js";import"./chunk-NB2WLB3J.js";import"./chunk-ISWW3DKF.js";import"./chunk-BULSRTQE.js";import"./chunk-BRQUZ5NC.js";import"./chunk-BZENIQ7N.js";export{buildRepoUrl,checkExistsAndConnect,connectGitProvider,disconnectGitProvider,formatProvider,parseRepoUrl,printRemoteUrls,selectAndParseRemoteUrl,selectRemoteUrl};
@@ -4,6 +4,6 @@ import { dirname as __dirname_ } from 'node:path';
4
4
  const require = __createRequire(import.meta.url);
5
5
  const __filename = __fileURLToPath(import.meta.url);
6
6
  const __dirname = __dirname_(__filename);
7
- import{parseThreadArg}from"./chunk-2S6PE6GB.js";import{deleteMessage,handleCommentsParseError,resolveCommentsScope,threadNotFoundMessage,toApiErrorParts}from"./chunk-SXEOJSZQ.js";import"./chunk-DX2OHM56.js";import{canPrompt}from"./chunk-IQ7FPAI4.js";import{outputError}from"./chunk-AX3V7N44.js";import"./chunk-6RUAAORO.js";import{deleteSubcommand}from"./chunk-BB5UMZMF.js";import"./chunk-Q4GX2UTG.js";import"./chunk-TZ6MSTOI.js";import"./chunk-ZUI5EMXD.js";import"./chunk-FY4ORPZH.js";import"./chunk-KNAOHPOI.js";import"./chunk-64UCX5JM.js";import"./chunk-ITQPDXXA.js";import"./chunk-56UH6NQ3.js";import"./chunk-4NTBYNFR.js";import{parseArguments}from"./chunk-C4N4LKPM.js";import"./chunk-2VBFQZ72.js";import{validateJsonOutput}from"./chunk-GJCVOEC2.js";import"./chunk-LUX4PBJL.js";import"./chunk-OPORM35X.js";import"./chunk-MXTC4ZAQ.js";import"./chunk-ZS2WS4AM.js";import"./chunk-4SAVH3H7.js";import{isAPIError}from"./chunk-T2FCF46I.js";import"./chunk-VRH7LWOC.js";import"./chunk-DBT6PGEH.js";import{output_manager_default}from"./chunk-W634OFUG.js";import"./chunk-BLUPZPAS.js";import"./chunk-5MDNVAE6.js";import"./chunk-OCR5CRTH.js";import"./chunk-RM3ZDRYE.js";import"./chunk-YHPPP3SF.js";import{getFlagsSpecification}from"./chunk-CKTLP5GX.js";import"./chunk-2BKALEOP.js";import{require_source}from"./chunk-NB2WLB3J.js";import"./chunk-ISWW3DKF.js";import"./chunk-BULSRTQE.js";import"./chunk-BRQUZ5NC.js";import"./chunk-D6REP5QQ.js";import"./chunk-FBYA6LLM.js";import"./chunk-MY4MONOH.js";import"./chunk-7EJQLVWX.js";import"./chunk-SCV7XEEO.js";import"./chunk-CFYTFXX6.js";import{__toESM}from"./chunk-BZENIQ7N.js";var import_chalk=__toESM(require_source(),1);async function deleteCommentMessage(client,telemetry){let parsedArgs,flagsSpecification=getFlagsSpecification(deleteSubcommand.options);try{parsedArgs=parseArguments(client.argv.slice(2),flagsSpecification)}catch(err){return handleCommentsParseError(err,"delete")}let formatResult=validateJsonOutput(parsedArgs.flags);if(!formatResult.valid)return output_manager_default.error(formatResult.error),2;let jsonOutput=formatResult.jsonOutput,yes=!!parsedArgs.flags["--yes"];telemetry.trackCliOptionFormat(parsedArgs.flags["--format"]),telemetry.trackCliFlagYes(parsedArgs.flags["--yes"]);let[threadInput,messageId]=parsedArgs.args.slice(2);if(telemetry.trackCliArgumentThread(threadInput),telemetry.trackCliArgumentMessageId(messageId),!threadInput||!messageId)return outputError(client,jsonOutput,"MISSING_ARGUMENT","Usage: `vercel comments delete <thread> <message-id>` \u2014 message IDs are shown in `vercel comments inspect`.");let threadRef=parseThreadArg(threadInput);if(!threadRef)return outputError(client,jsonOutput,"INVALID_THREAD",`Could not extract a thread ID from "${threadInput}".`);let threadId=threadRef.id,scope=await resolveCommentsScope(client,{project:parsedArgs.flags["--project"],requireProject:!1,jsonOutput,urlTeamSlug:threadRef.teamSlug});if(typeof scope=="number")return scope;if(!yes){if(!canPrompt(client)||jsonOutput)return outputError(client,jsonOutput,"CONFIRMATION_REQUIRED","Pass --yes to delete the message non-interactively.");if(!await client.input.confirm(`${import_chalk.default.red("Delete")} message ${messageId} from ${threadId} in team ${scope.teamSlug??scope.teamId}? This cannot be undone.`,!1))return output_manager_default.log("Canceled."),0}telemetry.trackCliOptionProject(parsedArgs.flags["--project"]);try{let result=await deleteMessage(client,scope.teamId,threadId,messageId);return jsonOutput?(client.stdout.write(`${JSON.stringify(result,null,2)}
7
+ import{parseThreadArg}from"./chunk-2S6PE6GB.js";import{deleteMessage,handleCommentsParseError,resolveCommentsScope,threadNotFoundMessage,toApiErrorParts}from"./chunk-XS3MNHFR.js";import"./chunk-SR7BZA6N.js";import{outputError}from"./chunk-5RSSGN2Q.js";import{canPrompt}from"./chunk-IQ7FPAI4.js";import"./chunk-S535FZTA.js";import{deleteSubcommand}from"./chunk-6UMVJ7RL.js";import"./chunk-PKZK23PR.js";import"./chunk-DNLE3KPC.js";import"./chunk-AUIV7YJO.js";import"./chunk-FYE7ILRR.js";import"./chunk-6NUH6ZPE.js";import"./chunk-PKNEWN4W.js";import"./chunk-ITQPDXXA.js";import"./chunk-PL6IOUKW.js";import"./chunk-4NTBYNFR.js";import{parseArguments}from"./chunk-US7YJ2RQ.js";import"./chunk-2VBFQZ72.js";import{validateJsonOutput}from"./chunk-SDYCW5JM.js";import"./chunk-LUX4PBJL.js";import"./chunk-OPORM35X.js";import"./chunk-MXTC4ZAQ.js";import"./chunk-ZS2WS4AM.js";import"./chunk-4SAVH3H7.js";import{isAPIError}from"./chunk-T2FCF46I.js";import"./chunk-VRH7LWOC.js";import"./chunk-DBT6PGEH.js";import{output_manager_default}from"./chunk-GZLYNPNU.js";import"./chunk-BLUPZPAS.js";import"./chunk-5MDNVAE6.js";import"./chunk-OCR5CRTH.js";import"./chunk-RM3ZDRYE.js";import"./chunk-YHPPP3SF.js";import{getFlagsSpecification}from"./chunk-AMPJ6RWT.js";import"./chunk-2BKALEOP.js";import{require_source}from"./chunk-NB2WLB3J.js";import"./chunk-ISWW3DKF.js";import"./chunk-BULSRTQE.js";import"./chunk-BRQUZ5NC.js";import"./chunk-D6REP5QQ.js";import"./chunk-FBYA6LLM.js";import"./chunk-MY4MONOH.js";import"./chunk-7EJQLVWX.js";import"./chunk-SCV7XEEO.js";import"./chunk-JBU72NEQ.js";import{__toESM}from"./chunk-BZENIQ7N.js";var import_chalk=__toESM(require_source(),1);async function deleteCommentMessage(client,telemetry){let parsedArgs,flagsSpecification=getFlagsSpecification(deleteSubcommand.options);try{parsedArgs=parseArguments(client.argv.slice(2),flagsSpecification)}catch(err){return handleCommentsParseError(err,"delete")}let formatResult=validateJsonOutput(parsedArgs.flags);if(!formatResult.valid)return output_manager_default.error(formatResult.error),2;let jsonOutput=formatResult.jsonOutput,yes=!!parsedArgs.flags["--yes"];telemetry.trackCliOptionFormat(parsedArgs.flags["--format"]),telemetry.trackCliFlagYes(parsedArgs.flags["--yes"]);let[threadInput,messageId]=parsedArgs.args.slice(2);if(telemetry.trackCliArgumentThread(threadInput),telemetry.trackCliArgumentMessageId(messageId),!threadInput||!messageId)return outputError(client,jsonOutput,"MISSING_ARGUMENT","Usage: `vercel comments delete <thread> <message-id>` \u2014 message IDs are shown in `vercel comments inspect`.");let threadRef=parseThreadArg(threadInput);if(!threadRef)return outputError(client,jsonOutput,"INVALID_THREAD",`Could not extract a thread ID from "${threadInput}".`);let threadId=threadRef.id,scope=await resolveCommentsScope(client,{project:parsedArgs.flags["--project"],requireProject:!1,jsonOutput,urlTeamSlug:threadRef.teamSlug});if(typeof scope=="number")return scope;if(!yes){if(!canPrompt(client)||jsonOutput)return outputError(client,jsonOutput,"CONFIRMATION_REQUIRED","Pass --yes to delete the message non-interactively.");if(!await client.input.confirm(`${import_chalk.default.red("Delete")} message ${messageId} from ${threadId} in team ${scope.teamSlug??scope.teamId}? This cannot be undone.`,!1))return output_manager_default.log("Canceled."),0}telemetry.trackCliOptionProject(parsedArgs.flags["--project"]);try{let result=await deleteMessage(client,scope.teamId,threadId,messageId);return jsonOutput?(client.stdout.write(`${JSON.stringify(result,null,2)}
8
8
  `),0):(output_manager_default.print(`${import_chalk.default.green("\u2713")} Deleted message ${messageId}
9
9
  `),0)}catch(err){if(isAPIError(err)){let{code,message}=toApiErrorParts(err);return outputError(client,jsonOutput,code,err.status===404?threadNotFoundMessage(threadId,scope):message)}throw err}}export{deleteCommentMessage as default};
@@ -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{getRouteVersions}from"./chunk-BVH2AEFE.js";import{getRouteTypeLabel,getRoutes,offerAutoPromote,parseSubcommandArgs,resolveRoutes,withGlobalFlags}from"./chunk-TNNEKGGF.js";import{requireProjectContext}from"./chunk-KMPDQE4Q.js";import"./chunk-DX2OHM56.js";import{stamp_default}from"./chunk-A2RZZQEP.js";import"./chunk-6RUAAORO.js";import"./chunk-Q7D7RGXM.js";import{deleteSubcommand}from"./chunk-CZOD25BC.js";import"./chunk-Q4GX2UTG.js";import"./chunk-TZ6MSTOI.js";import{outputAgentError}from"./chunk-ZUI5EMXD.js";import"./chunk-FY4ORPZH.js";import"./chunk-KNAOHPOI.js";import"./chunk-64UCX5JM.js";import"./chunk-ITQPDXXA.js";import"./chunk-56UH6NQ3.js";import"./chunk-4NTBYNFR.js";import"./chunk-C4N4LKPM.js";import"./chunk-2VBFQZ72.js";import"./chunk-GJCVOEC2.js";import"./chunk-LUX4PBJL.js";import"./chunk-OPORM35X.js";import"./chunk-MXTC4ZAQ.js";import"./chunk-ZS2WS4AM.js";import"./chunk-4SAVH3H7.js";import"./chunk-T2FCF46I.js";import"./chunk-VRH7LWOC.js";import"./chunk-DBT6PGEH.js";import{output_manager_default}from"./chunk-W634OFUG.js";import"./chunk-BLUPZPAS.js";import"./chunk-5MDNVAE6.js";import"./chunk-OCR5CRTH.js";import"./chunk-RM3ZDRYE.js";import"./chunk-YHPPP3SF.js";import"./chunk-CKTLP5GX.js";import"./chunk-2BKALEOP.js";import{require_source}from"./chunk-NB2WLB3J.js";import"./chunk-ISWW3DKF.js";import"./chunk-BULSRTQE.js";import"./chunk-BRQUZ5NC.js";import"./chunk-D6REP5QQ.js";import"./chunk-FBYA6LLM.js";import"./chunk-MY4MONOH.js";import"./chunk-7EJQLVWX.js";import"./chunk-SCV7XEEO.js";import{AGENT_REASON,AGENT_STATUS}from"./chunk-CFYTFXX6.js";import{__toESM}from"./chunk-BZENIQ7N.js";var import_chalk=__toESM(require_source(),1);async function deleteRoutes(client,projectId,routeIds,options={}){let{teamId}=options,query=new URLSearchParams;teamId&&query.set("teamId",teamId);let queryString=query.toString(),url=`/v1/projects/${projectId}/routes${queryString?`?${queryString}`:""}`;return await client.fetch(url,{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({routeIds})})}async function deleteRoute(client,argv){let parsed=await parseSubcommandArgs(argv,deleteSubcommand,client);if(typeof parsed=="number")return parsed;let link=await requireProjectContext(client,"routes",parsed.flags["--project"]);if(typeof link=="number")return link;let{project,org}=link,teamId=org.type==="team"?org.id:void 0,{args,flags}=parsed,skipConfirmation=flags["--yes"];if(args.length===0)return client.nonInteractive&&outputAgentError(client,{status:AGENT_STATUS.ERROR,reason:AGENT_REASON.MISSING_ARGUMENTS,message:"At least one route name or ID is required.",next:[{command:withGlobalFlags(client,"routes remove <name-or-id> --yes"),when:"pass one or more ids/names and --yes to skip confirm"}]},2),output_manager_default.error(`At least one route name or ID is required. Usage: ${withGlobalFlags(client,"routes remove <name-or-id> [...]")}`),2;let{versions}=await getRouteVersions(client,project.id,{teamId}),existingStagingVersion=versions.find(v=>v.isStaging);output_manager_default.spinner("Fetching routes");let{routes}=await getRoutes(client,project.id,{teamId});if(output_manager_default.stopSpinner(),routes.length===0)return client.nonInteractive&&outputAgentError(client,{status:AGENT_STATUS.ERROR,reason:AGENT_REASON.NOT_FOUND,message:"No routes found in this project."},1),output_manager_default.error("No routes found in this project."),1;let resolved=await resolveRoutes(client,routes,args);if(!resolved)return 1;output_manager_default.print(`
7
+ import{getRouteVersions}from"./chunk-BVH2AEFE.js";import{getRouteTypeLabel,getRoutes,offerAutoPromote,parseSubcommandArgs,resolveRoutes,withGlobalFlags}from"./chunk-7LSH3MEB.js";import{requireProjectContext}from"./chunk-Q46Q4Y4R.js";import"./chunk-SR7BZA6N.js";import{stamp_default}from"./chunk-A2RZZQEP.js";import"./chunk-S535FZTA.js";import"./chunk-Q7D7RGXM.js";import{deleteSubcommand}from"./chunk-ECFLIVEE.js";import"./chunk-PKZK23PR.js";import"./chunk-DNLE3KPC.js";import{outputAgentError}from"./chunk-AUIV7YJO.js";import"./chunk-FYE7ILRR.js";import"./chunk-6NUH6ZPE.js";import"./chunk-PKNEWN4W.js";import"./chunk-ITQPDXXA.js";import"./chunk-PL6IOUKW.js";import"./chunk-4NTBYNFR.js";import"./chunk-US7YJ2RQ.js";import"./chunk-2VBFQZ72.js";import"./chunk-SDYCW5JM.js";import"./chunk-LUX4PBJL.js";import"./chunk-OPORM35X.js";import"./chunk-MXTC4ZAQ.js";import"./chunk-ZS2WS4AM.js";import"./chunk-4SAVH3H7.js";import"./chunk-T2FCF46I.js";import"./chunk-VRH7LWOC.js";import"./chunk-DBT6PGEH.js";import{output_manager_default}from"./chunk-GZLYNPNU.js";import"./chunk-BLUPZPAS.js";import"./chunk-5MDNVAE6.js";import"./chunk-OCR5CRTH.js";import"./chunk-RM3ZDRYE.js";import"./chunk-YHPPP3SF.js";import"./chunk-AMPJ6RWT.js";import"./chunk-2BKALEOP.js";import{require_source}from"./chunk-NB2WLB3J.js";import"./chunk-ISWW3DKF.js";import"./chunk-BULSRTQE.js";import"./chunk-BRQUZ5NC.js";import"./chunk-D6REP5QQ.js";import"./chunk-FBYA6LLM.js";import"./chunk-MY4MONOH.js";import"./chunk-7EJQLVWX.js";import"./chunk-SCV7XEEO.js";import{AGENT_REASON,AGENT_STATUS}from"./chunk-JBU72NEQ.js";import{__toESM}from"./chunk-BZENIQ7N.js";var import_chalk=__toESM(require_source(),1);async function deleteRoutes(client,projectId,routeIds,options={}){let{teamId}=options,query=new URLSearchParams;teamId&&query.set("teamId",teamId);let queryString=query.toString(),url=`/v1/projects/${projectId}/routes${queryString?`?${queryString}`:""}`;return await client.fetch(url,{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({routeIds})})}async function deleteRoute(client,argv){let parsed=await parseSubcommandArgs(argv,deleteSubcommand,client);if(typeof parsed=="number")return parsed;let link=await requireProjectContext(client,"routes",parsed.flags["--project"]);if(typeof link=="number")return link;let{project,org}=link,teamId=org.type==="team"?org.id:void 0,{args,flags}=parsed,skipConfirmation=flags["--yes"];if(args.length===0)return client.nonInteractive&&outputAgentError(client,{status:AGENT_STATUS.ERROR,reason:AGENT_REASON.MISSING_ARGUMENTS,message:"At least one route name or ID is required.",next:[{command:withGlobalFlags(client,"routes remove <name-or-id> --yes"),when:"pass one or more ids/names and --yes to skip confirm"}]},2),output_manager_default.error(`At least one route name or ID is required. Usage: ${withGlobalFlags(client,"routes remove <name-or-id> [...]")}`),2;let{versions}=await getRouteVersions(client,project.id,{teamId}),existingStagingVersion=versions.find(v=>v.isStaging);output_manager_default.spinner("Fetching routes");let{routes}=await getRoutes(client,project.id,{teamId});if(output_manager_default.stopSpinner(),routes.length===0)return client.nonInteractive&&outputAgentError(client,{status:AGENT_STATUS.ERROR,reason:AGENT_REASON.NOT_FOUND,message:"No routes found in this project."},1),output_manager_default.error("No routes found in this project."),1;let resolved=await resolveRoutes(client,routes,args);if(!resolved)return 1;output_manager_default.print(`
8
8
  `),output_manager_default.log(`The following ${resolved.length===1?"route":`${resolved.length} routes`} will be removed:`);for(let route of resolved){let typeLabels=getRouteTypeLabel(route);output_manager_default.print(` ${import_chalk.default.red("\xD7")} ${route.name} ${import_chalk.default.gray(`(${route.route.src})`)} ${import_chalk.default.gray(`[${typeLabels}]`)}
9
9
  `)}if(output_manager_default.print(`
10
10
  `),!skipConfirmation&&(client.nonInteractive&&outputAgentError(client,{status:AGENT_STATUS.ERROR,reason:AGENT_REASON.CONFIRMATION_REQUIRED,message:"Removing routes requires confirmation. Pass --yes to skip the prompt in non-interactive mode.",next:[{command:withGlobalFlags(client,`routes remove ${args.join(" ")} --yes`),when:"re-run with --yes to confirm without prompt"}]},1),!await client.input.confirm(`Remove ${resolved.length===1?"this route":`these ${resolved.length} routes`}?`,!1)))return output_manager_default.log("Aborted."),0;let deleteStamp=stamp_default();output_manager_default.spinner(`Removing ${resolved.length===1?"route":`${resolved.length} routes`}`);try{let{deletedCount,version}=await deleteRoutes(client,project.id,resolved.map(r=>r.id),{teamId});return output_manager_default.log(`${import_chalk.default.cyan("Removed")} ${deletedCount} ${deletedCount===1?"route":"routes"} ${import_chalk.default.gray(deleteStamp())}`),await offerAutoPromote(client,project.id,version,!!existingStagingVersion,{teamId,skipPrompts:skipConfirmation}),0}catch(e){let error=e;return client.nonInteractive&&outputAgentError(client,{status:AGENT_STATUS.ERROR,reason:AGENT_REASON.API_ERROR,message:"Failed to remove routes for this project. See hint for error details.",hint:error.message||"Retry with the same command once transient issues are resolved."},1),output_manager_default.error(error.message||"Failed to remove routes"),1}}export{deleteRoute as default};
@@ -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{getServicesConfigWriteBlocker,isExperimentalServicesEnabled,loadVercelConfig,tryDetectServices,writeServicesConfig}from"./chunk-FPYHB76H.js";import"./chunk-XRIM4BUF.js";import"./chunk-RBIHS5QI.js";import"./chunk-U4Z2MMOF.js";import"./chunk-NIS66BFX.js";import"./chunk-6Y2ZL5XJ.js";import"./chunk-5I7CC45F.js";import"./chunk-FQVIWQ6M.js";import"./chunk-25565AGS.js";import"./chunk-KNAOHPOI.js";import"./chunk-64UCX5JM.js";import"./chunk-ITQPDXXA.js";import"./chunk-56UH6NQ3.js";import"./chunk-4NTBYNFR.js";import"./chunk-C4N4LKPM.js";import"./chunk-2VBFQZ72.js";import"./chunk-GJCVOEC2.js";import"./chunk-LUX4PBJL.js";import"./chunk-OPORM35X.js";import"./chunk-MXTC4ZAQ.js";import"./chunk-ZS2WS4AM.js";import"./chunk-4SAVH3H7.js";import"./chunk-T2FCF46I.js";import"./chunk-VRH7LWOC.js";import"./chunk-DBT6PGEH.js";import"./chunk-W634OFUG.js";import"./chunk-BLUPZPAS.js";import"./chunk-5MDNVAE6.js";import"./chunk-OCR5CRTH.js";import"./chunk-RM3ZDRYE.js";import"./chunk-YHPPP3SF.js";import"./chunk-CKTLP5GX.js";import"./chunk-2BKALEOP.js";import"./chunk-NB2WLB3J.js";import"./chunk-ISWW3DKF.js";import"./chunk-BULSRTQE.js";import"./chunk-BRQUZ5NC.js";import"./chunk-D6REP5QQ.js";import"./chunk-FBYA6LLM.js";import"./chunk-MY4MONOH.js";import"./chunk-7EJQLVWX.js";import"./chunk-SCV7XEEO.js";import"./chunk-BZENIQ7N.js";export{getServicesConfigWriteBlocker,isExperimentalServicesEnabled,loadVercelConfig,tryDetectServices,writeServicesConfig};
7
+ import{getServicesConfigWriteBlocker,isExperimentalServicesEnabled,loadVercelConfig,tryDetectServices,writeServicesConfig}from"./chunk-ZEUREQ4E.js";import"./chunk-XRIM4BUF.js";import"./chunk-RBIHS5QI.js";import"./chunk-U4Z2MMOF.js";import"./chunk-NIS66BFX.js";import"./chunk-6Y2ZL5XJ.js";import"./chunk-SBEWZ65N.js";import"./chunk-UQNBUXQA.js";import"./chunk-25565AGS.js";import"./chunk-6NUH6ZPE.js";import"./chunk-PKNEWN4W.js";import"./chunk-ITQPDXXA.js";import"./chunk-PL6IOUKW.js";import"./chunk-4NTBYNFR.js";import"./chunk-US7YJ2RQ.js";import"./chunk-2VBFQZ72.js";import"./chunk-SDYCW5JM.js";import"./chunk-LUX4PBJL.js";import"./chunk-OPORM35X.js";import"./chunk-MXTC4ZAQ.js";import"./chunk-ZS2WS4AM.js";import"./chunk-4SAVH3H7.js";import"./chunk-T2FCF46I.js";import"./chunk-VRH7LWOC.js";import"./chunk-DBT6PGEH.js";import"./chunk-GZLYNPNU.js";import"./chunk-BLUPZPAS.js";import"./chunk-5MDNVAE6.js";import"./chunk-OCR5CRTH.js";import"./chunk-RM3ZDRYE.js";import"./chunk-YHPPP3SF.js";import"./chunk-AMPJ6RWT.js";import"./chunk-2BKALEOP.js";import"./chunk-NB2WLB3J.js";import"./chunk-ISWW3DKF.js";import"./chunk-BULSRTQE.js";import"./chunk-BRQUZ5NC.js";import"./chunk-D6REP5QQ.js";import"./chunk-FBYA6LLM.js";import"./chunk-MY4MONOH.js";import"./chunk-7EJQLVWX.js";import"./chunk-SCV7XEEO.js";import"./chunk-BZENIQ7N.js";export{getServicesConfigWriteBlocker,isExperimentalServicesEnabled,loadVercelConfig,tryDetectServices,writeServicesConfig};
@@ -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{editRoute}from"./chunk-AM46JVVN.js";import{getRouteVersions}from"./chunk-BVH2AEFE.js";import{getRoutes,offerAutoPromote,parseSubcommandArgs,resolveRoute,withGlobalFlags}from"./chunk-TNNEKGGF.js";import{requireProjectContext}from"./chunk-KMPDQE4Q.js";import"./chunk-DX2OHM56.js";import{stamp_default}from"./chunk-A2RZZQEP.js";import"./chunk-6RUAAORO.js";import"./chunk-Q7D7RGXM.js";import{disableSubcommand}from"./chunk-CZOD25BC.js";import"./chunk-Q4GX2UTG.js";import"./chunk-TZ6MSTOI.js";import{outputAgentError}from"./chunk-ZUI5EMXD.js";import"./chunk-FY4ORPZH.js";import"./chunk-KNAOHPOI.js";import"./chunk-64UCX5JM.js";import"./chunk-ITQPDXXA.js";import"./chunk-56UH6NQ3.js";import"./chunk-4NTBYNFR.js";import"./chunk-C4N4LKPM.js";import"./chunk-2VBFQZ72.js";import"./chunk-GJCVOEC2.js";import"./chunk-LUX4PBJL.js";import"./chunk-OPORM35X.js";import"./chunk-MXTC4ZAQ.js";import"./chunk-ZS2WS4AM.js";import"./chunk-4SAVH3H7.js";import"./chunk-T2FCF46I.js";import"./chunk-VRH7LWOC.js";import"./chunk-DBT6PGEH.js";import{output_manager_default}from"./chunk-W634OFUG.js";import"./chunk-BLUPZPAS.js";import"./chunk-5MDNVAE6.js";import"./chunk-OCR5CRTH.js";import"./chunk-RM3ZDRYE.js";import"./chunk-YHPPP3SF.js";import"./chunk-CKTLP5GX.js";import"./chunk-2BKALEOP.js";import{require_source}from"./chunk-NB2WLB3J.js";import"./chunk-ISWW3DKF.js";import"./chunk-BULSRTQE.js";import"./chunk-BRQUZ5NC.js";import"./chunk-D6REP5QQ.js";import"./chunk-FBYA6LLM.js";import"./chunk-MY4MONOH.js";import"./chunk-7EJQLVWX.js";import"./chunk-SCV7XEEO.js";import"./chunk-CFYTFXX6.js";import{__toESM}from"./chunk-BZENIQ7N.js";var import_chalk=__toESM(require_source(),1);async function disable(client,argv){let parsed=await parseSubcommandArgs(argv,disableSubcommand,client);if(typeof parsed=="number")return parsed;let link=await requireProjectContext(client,"routes",parsed.flags["--project"]);if(typeof link=="number")return link;let{project,org}=link,teamId=org.type==="team"?org.id:void 0,{args}=parsed,identifier=args[0];if(!identifier)return client.nonInteractive&&outputAgentError(client,{status:"error",reason:"missing_arguments",message:"Route name or ID is required.",next:[{command:withGlobalFlags(client,"routes disable <name-or-id>"),when:"replace <name-or-id>"},{command:withGlobalFlags(client,"routes list"),when:"list routes"}]},2),output_manager_default.error(`Route name or ID is required. Usage: ${withGlobalFlags(client,"routes disable <name-or-id>")}`),2;let{versions}=await getRouteVersions(client,project.id,{teamId}),existingStagingVersion=versions.find(v=>v.isStaging);output_manager_default.spinner("Fetching routes");let{routes}=await getRoutes(client,project.id,{teamId});if(output_manager_default.stopSpinner(),routes.length===0)return client.nonInteractive&&outputAgentError(client,{status:"error",reason:"not_found",message:"No routes found in this project."},1),output_manager_default.error("No routes found in this project."),1;let route=await resolveRoute(client,routes,identifier);if(!route)return client.nonInteractive&&outputAgentError(client,{status:"error",reason:"not_found",message:`No route found matching "${identifier}".`,next:[{command:withGlobalFlags(client,"routes list"),when:"list routes"}]},1),output_manager_default.error(`No route found matching "${identifier}". Run ${import_chalk.default.cyan(withGlobalFlags(client,"routes list"))} to see all routes.`),1;if(route.enabled===!1)return output_manager_default.log(`Route "${route.name}" is already disabled.`),0;let disableStamp=stamp_default();output_manager_default.spinner(`Disabling route "${route.name}"`);try{let{version}=await editRoute(client,project.id,route.id,{route:{name:route.name,description:route.description,enabled:!1,srcSyntax:route.srcSyntax,route:route.route}},{teamId});return output_manager_default.log(`${import_chalk.default.cyan("Disabled")} route "${route.name}" ${import_chalk.default.gray(disableStamp())}`),await offerAutoPromote(client,project.id,version,!!existingStagingVersion,{teamId}),0}catch(e){let error=e;return client.nonInteractive&&outputAgentError(client,{status:"error",reason:"api_error",message:error.message||"Failed to disable route"},1),output_manager_default.error(error.message||"Failed to disable route"),1}}export{disable as default};
7
+ import{editRoute}from"./chunk-AM46JVVN.js";import{getRouteVersions}from"./chunk-BVH2AEFE.js";import{getRoutes,offerAutoPromote,parseSubcommandArgs,resolveRoute,withGlobalFlags}from"./chunk-7LSH3MEB.js";import{requireProjectContext}from"./chunk-Q46Q4Y4R.js";import"./chunk-SR7BZA6N.js";import{stamp_default}from"./chunk-A2RZZQEP.js";import"./chunk-S535FZTA.js";import"./chunk-Q7D7RGXM.js";import{disableSubcommand}from"./chunk-ECFLIVEE.js";import"./chunk-PKZK23PR.js";import"./chunk-DNLE3KPC.js";import{outputAgentError}from"./chunk-AUIV7YJO.js";import"./chunk-FYE7ILRR.js";import"./chunk-6NUH6ZPE.js";import"./chunk-PKNEWN4W.js";import"./chunk-ITQPDXXA.js";import"./chunk-PL6IOUKW.js";import"./chunk-4NTBYNFR.js";import"./chunk-US7YJ2RQ.js";import"./chunk-2VBFQZ72.js";import"./chunk-SDYCW5JM.js";import"./chunk-LUX4PBJL.js";import"./chunk-OPORM35X.js";import"./chunk-MXTC4ZAQ.js";import"./chunk-ZS2WS4AM.js";import"./chunk-4SAVH3H7.js";import"./chunk-T2FCF46I.js";import"./chunk-VRH7LWOC.js";import"./chunk-DBT6PGEH.js";import{output_manager_default}from"./chunk-GZLYNPNU.js";import"./chunk-BLUPZPAS.js";import"./chunk-5MDNVAE6.js";import"./chunk-OCR5CRTH.js";import"./chunk-RM3ZDRYE.js";import"./chunk-YHPPP3SF.js";import"./chunk-AMPJ6RWT.js";import"./chunk-2BKALEOP.js";import{require_source}from"./chunk-NB2WLB3J.js";import"./chunk-ISWW3DKF.js";import"./chunk-BULSRTQE.js";import"./chunk-BRQUZ5NC.js";import"./chunk-D6REP5QQ.js";import"./chunk-FBYA6LLM.js";import"./chunk-MY4MONOH.js";import"./chunk-7EJQLVWX.js";import"./chunk-SCV7XEEO.js";import"./chunk-JBU72NEQ.js";import{__toESM}from"./chunk-BZENIQ7N.js";var import_chalk=__toESM(require_source(),1);async function disable(client,argv){let parsed=await parseSubcommandArgs(argv,disableSubcommand,client);if(typeof parsed=="number")return parsed;let link=await requireProjectContext(client,"routes",parsed.flags["--project"]);if(typeof link=="number")return link;let{project,org}=link,teamId=org.type==="team"?org.id:void 0,{args}=parsed,identifier=args[0];if(!identifier)return client.nonInteractive&&outputAgentError(client,{status:"error",reason:"missing_arguments",message:"Route name or ID is required.",next:[{command:withGlobalFlags(client,"routes disable <name-or-id>"),when:"replace <name-or-id>"},{command:withGlobalFlags(client,"routes list"),when:"list routes"}]},2),output_manager_default.error(`Route name or ID is required. Usage: ${withGlobalFlags(client,"routes disable <name-or-id>")}`),2;let{versions}=await getRouteVersions(client,project.id,{teamId}),existingStagingVersion=versions.find(v=>v.isStaging);output_manager_default.spinner("Fetching routes");let{routes}=await getRoutes(client,project.id,{teamId});if(output_manager_default.stopSpinner(),routes.length===0)return client.nonInteractive&&outputAgentError(client,{status:"error",reason:"not_found",message:"No routes found in this project."},1),output_manager_default.error("No routes found in this project."),1;let route=await resolveRoute(client,routes,identifier);if(!route)return client.nonInteractive&&outputAgentError(client,{status:"error",reason:"not_found",message:`No route found matching "${identifier}".`,next:[{command:withGlobalFlags(client,"routes list"),when:"list routes"}]},1),output_manager_default.error(`No route found matching "${identifier}". Run ${import_chalk.default.cyan(withGlobalFlags(client,"routes list"))} to see all routes.`),1;if(route.enabled===!1)return output_manager_default.log(`Route "${route.name}" is already disabled.`),0;let disableStamp=stamp_default();output_manager_default.spinner(`Disabling route "${route.name}"`);try{let{version}=await editRoute(client,project.id,route.id,{route:{name:route.name,description:route.description,enabled:!1,srcSyntax:route.srcSyntax,route:route.route}},{teamId});return output_manager_default.log(`${import_chalk.default.cyan("Disabled")} route "${route.name}" ${import_chalk.default.gray(disableStamp())}`),await offerAutoPromote(client,project.id,version,!!existingStagingVersion,{teamId}),0}catch(e){let error=e;return client.nonInteractive&&outputAgentError(client,{status:"error",reason:"api_error",message:error.message||"Failed to disable route"},1),output_manager_default.error(error.message||"Failed to disable route"),1}}export{disable as default};
@@ -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{updateRouteVersion}from"./chunk-6QKS6QK7.js";import{getRouteVersions}from"./chunk-BVH2AEFE.js";import{confirmAction,getRoutes,parseSubcommandArgs,printDiffSummary,withGlobalFlags}from"./chunk-TNNEKGGF.js";import{requireProjectContext}from"./chunk-KMPDQE4Q.js";import"./chunk-DX2OHM56.js";import{stamp_default}from"./chunk-A2RZZQEP.js";import"./chunk-6RUAAORO.js";import"./chunk-Q7D7RGXM.js";import{discardSubcommand}from"./chunk-CZOD25BC.js";import"./chunk-Q4GX2UTG.js";import"./chunk-TZ6MSTOI.js";import{outputAgentError}from"./chunk-ZUI5EMXD.js";import"./chunk-FY4ORPZH.js";import"./chunk-KNAOHPOI.js";import"./chunk-64UCX5JM.js";import"./chunk-ITQPDXXA.js";import"./chunk-56UH6NQ3.js";import"./chunk-4NTBYNFR.js";import"./chunk-C4N4LKPM.js";import"./chunk-2VBFQZ72.js";import"./chunk-GJCVOEC2.js";import"./chunk-LUX4PBJL.js";import"./chunk-OPORM35X.js";import"./chunk-MXTC4ZAQ.js";import"./chunk-ZS2WS4AM.js";import"./chunk-4SAVH3H7.js";import"./chunk-T2FCF46I.js";import"./chunk-VRH7LWOC.js";import"./chunk-DBT6PGEH.js";import{output_manager_default}from"./chunk-W634OFUG.js";import"./chunk-BLUPZPAS.js";import"./chunk-5MDNVAE6.js";import"./chunk-OCR5CRTH.js";import"./chunk-RM3ZDRYE.js";import"./chunk-YHPPP3SF.js";import"./chunk-CKTLP5GX.js";import"./chunk-2BKALEOP.js";import{require_source}from"./chunk-NB2WLB3J.js";import"./chunk-ISWW3DKF.js";import"./chunk-BULSRTQE.js";import"./chunk-BRQUZ5NC.js";import"./chunk-D6REP5QQ.js";import"./chunk-FBYA6LLM.js";import"./chunk-MY4MONOH.js";import"./chunk-7EJQLVWX.js";import"./chunk-SCV7XEEO.js";import"./chunk-CFYTFXX6.js";import{__toESM}from"./chunk-BZENIQ7N.js";var import_chalk=__toESM(require_source(),1);async function discard(client,argv){let parsed=await parseSubcommandArgs(argv,discardSubcommand,client);if(typeof parsed=="number")return parsed;let link=await requireProjectContext(client,"routes",parsed.flags["--project"]);if(typeof link=="number")return link;let{project,org}=link,teamId=org.type==="team"?org.id:void 0;output_manager_default.spinner(`Fetching route versions for ${import_chalk.default.bold(project.name)}`);let{versions}=await getRouteVersions(client,project.id,{teamId}),stagingVersion=versions.find(v=>v.isStaging);if(!stagingVersion)return output_manager_default.warn(`No staged changes to discard. Make changes first with ${import_chalk.default.cyan(withGlobalFlags(client,"routes add"))}.`),0;output_manager_default.spinner("Fetching staged changes");let{routes:diffRoutes}=await getRoutes(client,project.id,{teamId,versionId:stagingVersion.id,diff:!0}),changedRoutes=diffRoutes.filter(r=>r.action!==void 0);if(changedRoutes.length>0?(output_manager_default.print(`
7
+ import{updateRouteVersion}from"./chunk-6QKS6QK7.js";import{getRouteVersions}from"./chunk-BVH2AEFE.js";import{confirmAction,getRoutes,parseSubcommandArgs,printDiffSummary,withGlobalFlags}from"./chunk-7LSH3MEB.js";import{requireProjectContext}from"./chunk-Q46Q4Y4R.js";import"./chunk-SR7BZA6N.js";import{stamp_default}from"./chunk-A2RZZQEP.js";import"./chunk-S535FZTA.js";import"./chunk-Q7D7RGXM.js";import{discardSubcommand}from"./chunk-ECFLIVEE.js";import"./chunk-PKZK23PR.js";import"./chunk-DNLE3KPC.js";import{outputAgentError}from"./chunk-AUIV7YJO.js";import"./chunk-FYE7ILRR.js";import"./chunk-6NUH6ZPE.js";import"./chunk-PKNEWN4W.js";import"./chunk-ITQPDXXA.js";import"./chunk-PL6IOUKW.js";import"./chunk-4NTBYNFR.js";import"./chunk-US7YJ2RQ.js";import"./chunk-2VBFQZ72.js";import"./chunk-SDYCW5JM.js";import"./chunk-LUX4PBJL.js";import"./chunk-OPORM35X.js";import"./chunk-MXTC4ZAQ.js";import"./chunk-ZS2WS4AM.js";import"./chunk-4SAVH3H7.js";import"./chunk-T2FCF46I.js";import"./chunk-VRH7LWOC.js";import"./chunk-DBT6PGEH.js";import{output_manager_default}from"./chunk-GZLYNPNU.js";import"./chunk-BLUPZPAS.js";import"./chunk-5MDNVAE6.js";import"./chunk-OCR5CRTH.js";import"./chunk-RM3ZDRYE.js";import"./chunk-YHPPP3SF.js";import"./chunk-AMPJ6RWT.js";import"./chunk-2BKALEOP.js";import{require_source}from"./chunk-NB2WLB3J.js";import"./chunk-ISWW3DKF.js";import"./chunk-BULSRTQE.js";import"./chunk-BRQUZ5NC.js";import"./chunk-D6REP5QQ.js";import"./chunk-FBYA6LLM.js";import"./chunk-MY4MONOH.js";import"./chunk-7EJQLVWX.js";import"./chunk-SCV7XEEO.js";import"./chunk-JBU72NEQ.js";import{__toESM}from"./chunk-BZENIQ7N.js";var import_chalk=__toESM(require_source(),1);async function discard(client,argv){let parsed=await parseSubcommandArgs(argv,discardSubcommand,client);if(typeof parsed=="number")return parsed;let link=await requireProjectContext(client,"routes",parsed.flags["--project"]);if(typeof link=="number")return link;let{project,org}=link,teamId=org.type==="team"?org.id:void 0;output_manager_default.spinner(`Fetching route versions for ${import_chalk.default.bold(project.name)}`);let{versions}=await getRouteVersions(client,project.id,{teamId}),stagingVersion=versions.find(v=>v.isStaging);if(!stagingVersion)return output_manager_default.warn(`No staged changes to discard. Make changes first with ${import_chalk.default.cyan(withGlobalFlags(client,"routes add"))}.`),0;output_manager_default.spinner("Fetching staged changes");let{routes:diffRoutes}=await getRoutes(client,project.id,{teamId,versionId:stagingVersion.id,diff:!0}),changedRoutes=diffRoutes.filter(r=>r.action!==void 0);if(changedRoutes.length>0?(output_manager_default.print(`
8
8
  ${import_chalk.default.bold("Changes to be discarded:")}
9
9
 
10
10
  `),printDiffSummary(changedRoutes),output_manager_default.print(`
@@ -4,6 +4,6 @@ import { dirname as __dirname_ } from 'node:path';
4
4
  const require = __createRequire(import.meta.url);
5
5
  const __filename = __fileURLToPath(import.meta.url);
6
6
  const __dirname = __dirname_(__filename);
7
- import{resolveMessageContent}from"./chunk-HJ45TAM4.js";import{parseThreadArg}from"./chunk-2S6PE6GB.js";import{handleCommentsParseError,resolveCommentsScope,threadNotFoundMessage,toApiErrorParts,updateMessage}from"./chunk-SXEOJSZQ.js";import"./chunk-DX2OHM56.js";import"./chunk-IQ7FPAI4.js";import{outputError}from"./chunk-AX3V7N44.js";import"./chunk-6RUAAORO.js";import{editSubcommand}from"./chunk-BB5UMZMF.js";import"./chunk-Q4GX2UTG.js";import"./chunk-TZ6MSTOI.js";import"./chunk-ZUI5EMXD.js";import"./chunk-FY4ORPZH.js";import"./chunk-KNAOHPOI.js";import"./chunk-64UCX5JM.js";import"./chunk-ITQPDXXA.js";import"./chunk-56UH6NQ3.js";import"./chunk-4NTBYNFR.js";import{parseArguments}from"./chunk-C4N4LKPM.js";import"./chunk-2VBFQZ72.js";import{validateJsonOutput}from"./chunk-GJCVOEC2.js";import"./chunk-LUX4PBJL.js";import"./chunk-OPORM35X.js";import"./chunk-MXTC4ZAQ.js";import"./chunk-ZS2WS4AM.js";import"./chunk-4SAVH3H7.js";import{isAPIError}from"./chunk-T2FCF46I.js";import"./chunk-VRH7LWOC.js";import"./chunk-DBT6PGEH.js";import{output_manager_default}from"./chunk-W634OFUG.js";import"./chunk-BLUPZPAS.js";import"./chunk-5MDNVAE6.js";import"./chunk-OCR5CRTH.js";import"./chunk-RM3ZDRYE.js";import"./chunk-YHPPP3SF.js";import{getFlagsSpecification}from"./chunk-CKTLP5GX.js";import"./chunk-2BKALEOP.js";import{require_source}from"./chunk-NB2WLB3J.js";import"./chunk-ISWW3DKF.js";import"./chunk-BULSRTQE.js";import"./chunk-BRQUZ5NC.js";import"./chunk-D6REP5QQ.js";import"./chunk-FBYA6LLM.js";import"./chunk-MY4MONOH.js";import"./chunk-7EJQLVWX.js";import"./chunk-SCV7XEEO.js";import"./chunk-CFYTFXX6.js";import{__toESM}from"./chunk-BZENIQ7N.js";var import_chalk=__toESM(require_source(),1);async function edit(client,telemetry){let parsedArgs,flagsSpecification=getFlagsSpecification(editSubcommand.options);try{parsedArgs=parseArguments(client.argv.slice(2),flagsSpecification)}catch(err){return handleCommentsParseError(err,"update")}let formatResult=validateJsonOutput(parsedArgs.flags);if(!formatResult.valid)return output_manager_default.error(formatResult.error),2;let jsonOutput=formatResult.jsonOutput;telemetry.trackCliOptionFormat(parsedArgs.flags["--format"]),telemetry.trackCliOptionMessage(parsedArgs.flags["--message"]),telemetry.trackCliOptionFile(parsedArgs.flags["--file"]);let[threadInput,messageId]=parsedArgs.args.slice(2);if(telemetry.trackCliArgumentThread(threadInput),telemetry.trackCliArgumentMessageId(messageId),!threadInput||!messageId)return outputError(client,jsonOutput,"MISSING_ARGUMENT","Usage: `vercel comments update <thread> <message-id> --message <text>` \u2014 message IDs are shown in `vercel comments inspect`.");let threadRef=parseThreadArg(threadInput);if(!threadRef)return outputError(client,jsonOutput,"INVALID_THREAD",`Could not extract a thread ID from "${threadInput}".`);let threadId=threadRef.id,content=await resolveMessageContent(client,{message:parsedArgs.flags["--message"],file:parsedArgs.flags["--file"]},jsonOutput);if(typeof content=="number")return content;if(content===void 0)return outputError(client,jsonOutput,"MISSING_CONTENT","Pass the new content with --message <text> or --file <path>.");telemetry.trackCliOptionProject(parsedArgs.flags["--project"]);let scope=await resolveCommentsScope(client,{project:parsedArgs.flags["--project"],requireProject:!1,jsonOutput,urlTeamSlug:threadRef.teamSlug});if(typeof scope=="number")return scope;try{let message=await updateMessage(client,scope.teamId,threadId,messageId,{markdown:content});return jsonOutput?(client.stdout.write(`${JSON.stringify(message,null,2)}
7
+ import{resolveMessageContent}from"./chunk-LIEWXPUC.js";import{parseThreadArg}from"./chunk-2S6PE6GB.js";import{handleCommentsParseError,resolveCommentsScope,threadNotFoundMessage,toApiErrorParts,updateMessage}from"./chunk-XS3MNHFR.js";import"./chunk-SR7BZA6N.js";import{outputError}from"./chunk-5RSSGN2Q.js";import"./chunk-IQ7FPAI4.js";import"./chunk-S535FZTA.js";import{editSubcommand}from"./chunk-6UMVJ7RL.js";import"./chunk-PKZK23PR.js";import"./chunk-DNLE3KPC.js";import"./chunk-AUIV7YJO.js";import"./chunk-FYE7ILRR.js";import"./chunk-6NUH6ZPE.js";import"./chunk-PKNEWN4W.js";import"./chunk-ITQPDXXA.js";import"./chunk-PL6IOUKW.js";import"./chunk-4NTBYNFR.js";import{parseArguments}from"./chunk-US7YJ2RQ.js";import"./chunk-2VBFQZ72.js";import{validateJsonOutput}from"./chunk-SDYCW5JM.js";import"./chunk-LUX4PBJL.js";import"./chunk-OPORM35X.js";import"./chunk-MXTC4ZAQ.js";import"./chunk-ZS2WS4AM.js";import"./chunk-4SAVH3H7.js";import{isAPIError}from"./chunk-T2FCF46I.js";import"./chunk-VRH7LWOC.js";import"./chunk-DBT6PGEH.js";import{output_manager_default}from"./chunk-GZLYNPNU.js";import"./chunk-BLUPZPAS.js";import"./chunk-5MDNVAE6.js";import"./chunk-OCR5CRTH.js";import"./chunk-RM3ZDRYE.js";import"./chunk-YHPPP3SF.js";import{getFlagsSpecification}from"./chunk-AMPJ6RWT.js";import"./chunk-2BKALEOP.js";import{require_source}from"./chunk-NB2WLB3J.js";import"./chunk-ISWW3DKF.js";import"./chunk-BULSRTQE.js";import"./chunk-BRQUZ5NC.js";import"./chunk-D6REP5QQ.js";import"./chunk-FBYA6LLM.js";import"./chunk-MY4MONOH.js";import"./chunk-7EJQLVWX.js";import"./chunk-SCV7XEEO.js";import"./chunk-JBU72NEQ.js";import{__toESM}from"./chunk-BZENIQ7N.js";var import_chalk=__toESM(require_source(),1);async function edit(client,telemetry){let parsedArgs,flagsSpecification=getFlagsSpecification(editSubcommand.options);try{parsedArgs=parseArguments(client.argv.slice(2),flagsSpecification)}catch(err){return handleCommentsParseError(err,"update")}let formatResult=validateJsonOutput(parsedArgs.flags);if(!formatResult.valid)return output_manager_default.error(formatResult.error),2;let jsonOutput=formatResult.jsonOutput;telemetry.trackCliOptionFormat(parsedArgs.flags["--format"]),telemetry.trackCliOptionMessage(parsedArgs.flags["--message"]),telemetry.trackCliOptionFile(parsedArgs.flags["--file"]);let[threadInput,messageId]=parsedArgs.args.slice(2);if(telemetry.trackCliArgumentThread(threadInput),telemetry.trackCliArgumentMessageId(messageId),!threadInput||!messageId)return outputError(client,jsonOutput,"MISSING_ARGUMENT","Usage: `vercel comments update <thread> <message-id> --message <text>` \u2014 message IDs are shown in `vercel comments inspect`.");let threadRef=parseThreadArg(threadInput);if(!threadRef)return outputError(client,jsonOutput,"INVALID_THREAD",`Could not extract a thread ID from "${threadInput}".`);let threadId=threadRef.id,content=await resolveMessageContent(client,{message:parsedArgs.flags["--message"],file:parsedArgs.flags["--file"]},jsonOutput);if(typeof content=="number")return content;if(content===void 0)return outputError(client,jsonOutput,"MISSING_CONTENT","Pass the new content with --message <text> or --file <path>.");telemetry.trackCliOptionProject(parsedArgs.flags["--project"]);let scope=await resolveCommentsScope(client,{project:parsedArgs.flags["--project"],requireProject:!1,jsonOutput,urlTeamSlug:threadRef.teamSlug});if(typeof scope=="number")return scope;try{let message=await updateMessage(client,scope.teamId,threadId,messageId,{markdown:content});return jsonOutput?(client.stdout.write(`${JSON.stringify(message,null,2)}
8
8
  `),0):(output_manager_default.print(`${import_chalk.default.green("\u2713")} Updated message ${messageId}
9
9
  `),0)}catch(err){if(isAPIError(err)){let{code,message}=toApiErrorParts(err);return outputError(client,jsonOutput,code,err.status===404?threadNotFoundMessage(threadId,scope):message)}throw err}}export{edit as default};
@@ -4,5 +4,5 @@ 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{editRoute}from"./chunk-AM46JVVN.js";import{applyFlagMutations,cloneRoute,convertRouteToCurrentRoute,generateRoute,generatedRouteToAddInput,hasAnyTransformFlags,populateRouteEnv,printGeneratedRoutePreview,printRouteConfig,routingRuleToCurrentRoute,runInteractiveEditLoop}from"./chunk-6AJWRPTY.js";import{getRouteVersions}from"./chunk-BVH2AEFE.js";import{getRoutes,offerAutoPromote,parseSubcommandArgs,resolveRoute,shellQuoteRouteIdentifierForSuggestion,withGlobalFlags}from"./chunk-TNNEKGGF.js";import{requireProjectContext}from"./chunk-KMPDQE4Q.js";import"./chunk-DX2OHM56.js";import{stamp_default}from"./chunk-A2RZZQEP.js";import"./chunk-6RUAAORO.js";import"./chunk-Q7D7RGXM.js";import{editSubcommand}from"./chunk-CZOD25BC.js";import"./chunk-Q4GX2UTG.js";import"./chunk-TZ6MSTOI.js";import{outputAgentError}from"./chunk-ZUI5EMXD.js";import"./chunk-FY4ORPZH.js";import"./chunk-KNAOHPOI.js";import"./chunk-64UCX5JM.js";import"./chunk-ITQPDXXA.js";import"./chunk-56UH6NQ3.js";import"./chunk-4NTBYNFR.js";import"./chunk-C4N4LKPM.js";import"./chunk-2VBFQZ72.js";import"./chunk-GJCVOEC2.js";import"./chunk-LUX4PBJL.js";import"./chunk-OPORM35X.js";import"./chunk-MXTC4ZAQ.js";import"./chunk-ZS2WS4AM.js";import"./chunk-4SAVH3H7.js";import"./chunk-T2FCF46I.js";import"./chunk-VRH7LWOC.js";import"./chunk-DBT6PGEH.js";import{output_manager_default}from"./chunk-W634OFUG.js";import"./chunk-BLUPZPAS.js";import"./chunk-5MDNVAE6.js";import"./chunk-OCR5CRTH.js";import"./chunk-RM3ZDRYE.js";import"./chunk-YHPPP3SF.js";import"./chunk-CKTLP5GX.js";import"./chunk-2BKALEOP.js";import{require_source}from"./chunk-NB2WLB3J.js";import"./chunk-ISWW3DKF.js";import"./chunk-BULSRTQE.js";import"./chunk-BRQUZ5NC.js";import"./chunk-D6REP5QQ.js";import"./chunk-FBYA6LLM.js";import"./chunk-MY4MONOH.js";import"./chunk-7EJQLVWX.js";import"./chunk-SCV7XEEO.js";import"./chunk-CFYTFXX6.js";import{__toESM}from"./chunk-BZENIQ7N.js";var import_chalk=__toESM(require_source(),1);async function edit(client,argv){let parsed=await parseSubcommandArgs(argv,editSubcommand,client);if(typeof parsed=="number")return parsed;let link=await requireProjectContext(client,"routes",parsed.flags["--project"]);if(typeof link=="number")return link;let{project,org}=link,teamId=org.type==="team"?org.id:void 0,{args,flags}=parsed,skipConfirmation=flags["--yes"],identifier=args[0],{RoutesEditTelemetryClient}=await import("./routes-4WGST7VN.js"),telemetry=new RoutesEditTelemetryClient({opts:{store:client.telemetryEventStore}});if(telemetry.trackCliArgumentNameOrId(identifier),telemetry.trackCliFlagYes(skipConfirmation),telemetry.trackCliOptionName(flags["--name"]),telemetry.trackCliOptionDescription(flags["--description"]),telemetry.trackCliOptionSrc(flags["--src"]),telemetry.trackCliOptionSrcSyntax(flags["--src-syntax"]),telemetry.trackCliOptionAction(flags["--action"]),telemetry.trackCliOptionDest(flags["--dest"]),telemetry.trackCliOptionStatus(flags["--status"]),telemetry.trackCliFlagNoDest(flags["--no-dest"]),telemetry.trackCliFlagNoStatus(flags["--no-status"]),telemetry.trackCliFlagClearConditions(flags["--clear-conditions"]),telemetry.trackCliFlagClearHeaders(flags["--clear-headers"]),telemetry.trackCliFlagClearTransforms(flags["--clear-transforms"]),telemetry.trackCliOptionSetResponseHeader(flags["--set-response-header"]),telemetry.trackCliOptionAppendResponseHeader(flags["--append-response-header"]),telemetry.trackCliOptionDeleteResponseHeader(flags["--delete-response-header"]),telemetry.trackCliOptionSetRequestHeader(flags["--set-request-header"]),telemetry.trackCliOptionAppendRequestHeader(flags["--append-request-header"]),telemetry.trackCliOptionDeleteRequestHeader(flags["--delete-request-header"]),telemetry.trackCliOptionSetRequestQuery(flags["--set-request-query"]),telemetry.trackCliOptionAppendRequestQuery(flags["--append-request-query"]),telemetry.trackCliOptionDeleteRequestQuery(flags["--delete-request-query"]),telemetry.trackCliOptionHas(flags["--has"]),telemetry.trackCliOptionMissing(flags["--missing"]),telemetry.trackCliOptionAi(flags["--ai"]),!identifier)return client.nonInteractive&&outputAgentError(client,{status:"error",reason:"missing_arguments",message:"Route name or ID is required as the first argument after routes update.",next:[{command:withGlobalFlags(client,"routes update <name-or-id>"),when:"replace <name-or-id> with route name or id from routes list"},{command:withGlobalFlags(client,"routes list"),when:"to list routes"}]},2),output_manager_default.error(`Route name or ID is required. Usage: ${withGlobalFlags(client,"routes update <name-or-id>")}`),2;let{versions}=await getRouteVersions(client,project.id,{teamId}),existingStagingVersion=versions.find(v=>v.isStaging);output_manager_default.spinner("Fetching routes");let{routes}=await getRoutes(client,project.id,{teamId});if(output_manager_default.stopSpinner(),routes.length===0)return client.nonInteractive&&outputAgentError(client,{status:"error",reason:"not_found",message:"No routes found in this project.",next:[{command:withGlobalFlags(client,"routes add --ai <description> --yes"),when:"add a route first (or use full options)"}]},1),output_manager_default.error("No routes found in this project."),1;let originalRoute=await resolveRoute(client,routes,identifier);if(!originalRoute)return client.nonInteractive&&outputAgentError(client,{status:"error",reason:"not_found",message:`No route found matching "${identifier}".`,next:[{command:withGlobalFlags(client,"routes list"),when:"to list routes and pick an exact name or id"},{command:withGlobalFlags(client,"routes update <name-or-id>"),when:"retry with a unique name or id"}]},1),output_manager_default.error(`No route found matching "${identifier}". Run ${import_chalk.default.cyan(withGlobalFlags(client,"routes list"))} to see all routes.`),1;let aiPrompt=flags["--ai"];if(aiPrompt){let usedConflicts=["--name","--description","--src","--src-syntax","--action","--dest","--status","--no-dest","--no-status","--has","--missing","--set-response-header","--append-response-header","--delete-response-header","--set-request-header","--append-request-header","--delete-request-header","--set-request-query","--append-request-query","--delete-request-query","--clear-conditions","--clear-headers","--clear-transforms"].filter(f=>flags[f]!==void 0);return usedConflicts.length>0?(client.nonInteractive&&outputAgentError(client,{status:"error",reason:"invalid_arguments",message:`Cannot use --ai with ${usedConflicts.join(", ")}. Use --ai alone to describe changes.`,next:[{command:withGlobalFlags(client,`routes update ${shellQuoteRouteIdentifierForSuggestion(identifier)} --ai <description> --yes`),when:"use only --ai with route id/name already set"}]},2),output_manager_default.error(`Cannot use --ai with ${usedConflicts.join(", ")}. Use --ai alone to describe changes.`),2):await handleAIEdit(client,project.id,teamId,originalRoute,aiPrompt,skipConfirmation,existingStagingVersion)}let route=cloneRoute(originalRoute);if(flags["--name"]!==void 0||flags["--description"]!==void 0||flags["--src"]!==void 0||flags["--src-syntax"]!==void 0||flags["--action"]!==void 0||flags["--dest"]!==void 0||flags["--status"]!==void 0||flags["--no-dest"]!==void 0||flags["--no-status"]!==void 0||flags["--has"]!==void 0||flags["--missing"]!==void 0||flags["--clear-conditions"]!==void 0||flags["--clear-headers"]!==void 0||flags["--clear-transforms"]!==void 0||hasAnyTransformFlags(flags)){let error=applyFlagMutations(route,flags);if(error)return client.nonInteractive&&outputAgentError(client,{status:"error",reason:"invalid_arguments",message:error,next:[{command:withGlobalFlags(client,`routes update ${shellQuoteRouteIdentifierForSuggestion(identifier)} ...`),when:"fix options per message; see routes update --help"}]},2),output_manager_default.error(error),2}else{if(!client.stdin.isTTY||client.nonInteractive)return client.nonInteractive&&outputAgentError(client,{status:"error",reason:"missing_arguments",message:"No update options provided. In non-interactive mode pass options such as --name, --src, --dest, --action, header options, or --ai <description> --yes.",next:[{command:withGlobalFlags(client,`routes update ${shellQuoteRouteIdentifierForSuggestion(identifier)} --dest <dest> --yes`),when:"example: set destination; see routes update --help"}],hint:"Run vercel routes update --help for all options."},2),output_manager_default.error(`No update options provided. When running non-interactively, use options like --name, --dest, --src, etc. Run ${withGlobalFlags(client,"routes update --help")} for all options.`),2;if(output_manager_default.log(`
7
+ import{editRoute}from"./chunk-AM46JVVN.js";import{applyFlagMutations,cloneRoute,convertRouteToCurrentRoute,generateRoute,generatedRouteToAddInput,hasAnyTransformFlags,populateRouteEnv,printGeneratedRoutePreview,printRouteConfig,routingRuleToCurrentRoute,runInteractiveEditLoop}from"./chunk-RUBMVRT6.js";import{getRouteVersions}from"./chunk-BVH2AEFE.js";import{getRoutes,offerAutoPromote,parseSubcommandArgs,resolveRoute,shellQuoteRouteIdentifierForSuggestion,withGlobalFlags}from"./chunk-7LSH3MEB.js";import{requireProjectContext}from"./chunk-Q46Q4Y4R.js";import"./chunk-SR7BZA6N.js";import{stamp_default}from"./chunk-A2RZZQEP.js";import"./chunk-S535FZTA.js";import"./chunk-Q7D7RGXM.js";import{editSubcommand}from"./chunk-ECFLIVEE.js";import"./chunk-PKZK23PR.js";import"./chunk-DNLE3KPC.js";import{outputAgentError}from"./chunk-AUIV7YJO.js";import"./chunk-FYE7ILRR.js";import"./chunk-6NUH6ZPE.js";import"./chunk-PKNEWN4W.js";import"./chunk-ITQPDXXA.js";import"./chunk-PL6IOUKW.js";import"./chunk-4NTBYNFR.js";import"./chunk-US7YJ2RQ.js";import"./chunk-2VBFQZ72.js";import"./chunk-SDYCW5JM.js";import"./chunk-LUX4PBJL.js";import"./chunk-OPORM35X.js";import"./chunk-MXTC4ZAQ.js";import"./chunk-ZS2WS4AM.js";import"./chunk-4SAVH3H7.js";import"./chunk-T2FCF46I.js";import"./chunk-VRH7LWOC.js";import"./chunk-DBT6PGEH.js";import{output_manager_default}from"./chunk-GZLYNPNU.js";import"./chunk-BLUPZPAS.js";import"./chunk-5MDNVAE6.js";import"./chunk-OCR5CRTH.js";import"./chunk-RM3ZDRYE.js";import"./chunk-YHPPP3SF.js";import"./chunk-AMPJ6RWT.js";import"./chunk-2BKALEOP.js";import{require_source}from"./chunk-NB2WLB3J.js";import"./chunk-ISWW3DKF.js";import"./chunk-BULSRTQE.js";import"./chunk-BRQUZ5NC.js";import"./chunk-D6REP5QQ.js";import"./chunk-FBYA6LLM.js";import"./chunk-MY4MONOH.js";import"./chunk-7EJQLVWX.js";import"./chunk-SCV7XEEO.js";import"./chunk-JBU72NEQ.js";import{__toESM}from"./chunk-BZENIQ7N.js";var import_chalk=__toESM(require_source(),1);async function edit(client,argv){let parsed=await parseSubcommandArgs(argv,editSubcommand,client);if(typeof parsed=="number")return parsed;let link=await requireProjectContext(client,"routes",parsed.flags["--project"]);if(typeof link=="number")return link;let{project,org}=link,teamId=org.type==="team"?org.id:void 0,{args,flags}=parsed,skipConfirmation=flags["--yes"],identifier=args[0],{RoutesEditTelemetryClient}=await import("./routes-BP54NO3Z.js"),telemetry=new RoutesEditTelemetryClient({opts:{store:client.telemetryEventStore}});if(telemetry.trackCliArgumentNameOrId(identifier),telemetry.trackCliFlagYes(skipConfirmation),telemetry.trackCliOptionName(flags["--name"]),telemetry.trackCliOptionDescription(flags["--description"]),telemetry.trackCliOptionSrc(flags["--src"]),telemetry.trackCliOptionSrcSyntax(flags["--src-syntax"]),telemetry.trackCliOptionAction(flags["--action"]),telemetry.trackCliOptionDest(flags["--dest"]),telemetry.trackCliOptionStatus(flags["--status"]),telemetry.trackCliFlagNoDest(flags["--no-dest"]),telemetry.trackCliFlagNoStatus(flags["--no-status"]),telemetry.trackCliFlagClearConditions(flags["--clear-conditions"]),telemetry.trackCliFlagClearHeaders(flags["--clear-headers"]),telemetry.trackCliFlagClearTransforms(flags["--clear-transforms"]),telemetry.trackCliOptionSetResponseHeader(flags["--set-response-header"]),telemetry.trackCliOptionAppendResponseHeader(flags["--append-response-header"]),telemetry.trackCliOptionDeleteResponseHeader(flags["--delete-response-header"]),telemetry.trackCliOptionSetRequestHeader(flags["--set-request-header"]),telemetry.trackCliOptionAppendRequestHeader(flags["--append-request-header"]),telemetry.trackCliOptionDeleteRequestHeader(flags["--delete-request-header"]),telemetry.trackCliOptionSetRequestQuery(flags["--set-request-query"]),telemetry.trackCliOptionAppendRequestQuery(flags["--append-request-query"]),telemetry.trackCliOptionDeleteRequestQuery(flags["--delete-request-query"]),telemetry.trackCliOptionHas(flags["--has"]),telemetry.trackCliOptionMissing(flags["--missing"]),telemetry.trackCliOptionAi(flags["--ai"]),!identifier)return client.nonInteractive&&outputAgentError(client,{status:"error",reason:"missing_arguments",message:"Route name or ID is required as the first argument after routes update.",next:[{command:withGlobalFlags(client,"routes update <name-or-id>"),when:"replace <name-or-id> with route name or id from routes list"},{command:withGlobalFlags(client,"routes list"),when:"to list routes"}]},2),output_manager_default.error(`Route name or ID is required. Usage: ${withGlobalFlags(client,"routes update <name-or-id>")}`),2;let{versions}=await getRouteVersions(client,project.id,{teamId}),existingStagingVersion=versions.find(v=>v.isStaging);output_manager_default.spinner("Fetching routes");let{routes}=await getRoutes(client,project.id,{teamId});if(output_manager_default.stopSpinner(),routes.length===0)return client.nonInteractive&&outputAgentError(client,{status:"error",reason:"not_found",message:"No routes found in this project.",next:[{command:withGlobalFlags(client,"routes add --ai <description> --yes"),when:"add a route first (or use full options)"}]},1),output_manager_default.error("No routes found in this project."),1;let originalRoute=await resolveRoute(client,routes,identifier);if(!originalRoute)return client.nonInteractive&&outputAgentError(client,{status:"error",reason:"not_found",message:`No route found matching "${identifier}".`,next:[{command:withGlobalFlags(client,"routes list"),when:"to list routes and pick an exact name or id"},{command:withGlobalFlags(client,"routes update <name-or-id>"),when:"retry with a unique name or id"}]},1),output_manager_default.error(`No route found matching "${identifier}". Run ${import_chalk.default.cyan(withGlobalFlags(client,"routes list"))} to see all routes.`),1;let aiPrompt=flags["--ai"];if(aiPrompt){let usedConflicts=["--name","--description","--src","--src-syntax","--action","--dest","--status","--no-dest","--no-status","--has","--missing","--set-response-header","--append-response-header","--delete-response-header","--set-request-header","--append-request-header","--delete-request-header","--set-request-query","--append-request-query","--delete-request-query","--clear-conditions","--clear-headers","--clear-transforms"].filter(f=>flags[f]!==void 0);return usedConflicts.length>0?(client.nonInteractive&&outputAgentError(client,{status:"error",reason:"invalid_arguments",message:`Cannot use --ai with ${usedConflicts.join(", ")}. Use --ai alone to describe changes.`,next:[{command:withGlobalFlags(client,`routes update ${shellQuoteRouteIdentifierForSuggestion(identifier)} --ai <description> --yes`),when:"use only --ai with route id/name already set"}]},2),output_manager_default.error(`Cannot use --ai with ${usedConflicts.join(", ")}. Use --ai alone to describe changes.`),2):await handleAIEdit(client,project.id,teamId,originalRoute,aiPrompt,skipConfirmation,existingStagingVersion)}let route=cloneRoute(originalRoute);if(flags["--name"]!==void 0||flags["--description"]!==void 0||flags["--src"]!==void 0||flags["--src-syntax"]!==void 0||flags["--action"]!==void 0||flags["--dest"]!==void 0||flags["--status"]!==void 0||flags["--no-dest"]!==void 0||flags["--no-status"]!==void 0||flags["--has"]!==void 0||flags["--missing"]!==void 0||flags["--clear-conditions"]!==void 0||flags["--clear-headers"]!==void 0||flags["--clear-transforms"]!==void 0||hasAnyTransformFlags(flags)){let error=applyFlagMutations(route,flags);if(error)return client.nonInteractive&&outputAgentError(client,{status:"error",reason:"invalid_arguments",message:error,next:[{command:withGlobalFlags(client,`routes update ${shellQuoteRouteIdentifierForSuggestion(identifier)} ...`),when:"fix options per message; see routes update --help"}]},2),output_manager_default.error(error),2}else{if(!client.stdin.isTTY||client.nonInteractive)return client.nonInteractive&&outputAgentError(client,{status:"error",reason:"missing_arguments",message:"No update options provided. In non-interactive mode pass options such as --name, --src, --dest, --action, header options, or --ai <description> --yes.",next:[{command:withGlobalFlags(client,`routes update ${shellQuoteRouteIdentifierForSuggestion(identifier)} --dest <dest> --yes`),when:"example: set destination; see routes update --help"}],hint:"Run vercel routes update --help for all options."},2),output_manager_default.error(`No update options provided. When running non-interactively, use options like --name, --dest, --src, etc. Run ${withGlobalFlags(client,"routes update --help")} for all options.`),2;if(output_manager_default.log(`
8
8
  Editing route "${originalRoute.name}"`),printRouteConfig(route),await client.input.select({message:"How would you like to update this route?",choices:[{name:"Describe changes (AI-powered)",value:"ai"},{name:"Edit manually (field by field)",value:"manual"}]})==="ai")return telemetry.trackCliOptionAi("interactive"),await handleAIEdit(client,project.id,teamId,originalRoute,void 0,skipConfirmation,existingStagingVersion);await runInteractiveEditLoop(client,route)}if(populateRouteEnv(route.route,route.srcSyntax),JSON.stringify(route)===JSON.stringify(originalRoute))return output_manager_default.log("No changes made."),0;let editStamp=stamp_default();output_manager_default.spinner(`Updating route "${route.name}"`);try{let{version}=await editRoute(client,project.id,originalRoute.id,{route:{name:route.name,description:route.description,enabled:route.enabled,srcSyntax:route.srcSyntax,route:route.route}},{teamId});return output_manager_default.log(`${import_chalk.default.cyan("Updated")} route "${route.name}" ${import_chalk.default.gray(editStamp())}`),await offerAutoPromote(client,project.id,version,!!existingStagingVersion,{teamId,skipPrompts:skipConfirmation}),0}catch(e){let error=e;return output_manager_default.error(error.message||"Failed to update route"),1}}async function handleAIEdit(client,projectId,teamId,originalRoute,aiPrompt,skipConfirmation,existingStagingVersion){let currentRoute=routingRuleToCurrentRoute(originalRoute),prompt=aiPrompt,currentGenerated;for(;;){prompt||(prompt=await client.input.text({message:"Describe what you'd like to change:",validate:val=>val?val.length>2e3?"Description must be 2000 characters or less":!0:"A description is required"})),output_manager_default.spinner("Generating updated route...");let errorMessage;try{let result=await generateRoute(client,projectId,{prompt,currentRoute},{teamId});result.error?errorMessage=result.error:result.route?currentGenerated=result.route:errorMessage="Could not apply changes. Try rephrasing."}catch(e){errorMessage=e.message||"Failed to generate updated route"}if(currentGenerated)break;if(output_manager_default.error(errorMessage),skipConfirmation||!client.stdin.isTTY)return 1;if(await client.input.select({message:"What would you like to do?",choices:[{name:"Try again with a different description",value:"retry"},{name:"Cancel",value:"cancel"}]})==="cancel")return output_manager_default.log("No changes made."),0;prompt=void 0}if(printGeneratedRoutePreview(currentGenerated),skipConfirmation)return await applyAIEdit(client,projectId,teamId,originalRoute,currentGenerated,existingStagingVersion,skipConfirmation);if(!client.stdin.isTTY)return output_manager_default.error(`Cannot interactively confirm route changes in a non-TTY environment. Use ${withGlobalFlags(client,'routes update <name-or-id> --ai "..." --yes')} to skip confirmation.`),1;for(;;){let choice=await client.input.select({message:"What would you like to do?",choices:[{name:"Confirm changes",value:"confirm"},{name:"Edit again with AI",value:"ai-edit"},{name:"Edit manually",value:"manual"},{name:"Discard",value:"discard"}],pageSize:4,loop:!1});if(choice==="confirm")return await applyAIEdit(client,projectId,teamId,originalRoute,currentGenerated,existingStagingVersion,skipConfirmation);if(choice==="ai-edit"){let editPrompt=await client.input.text({message:"Describe what you'd like to change:",validate:val=>val?val.length>2e3?"Description must be 2000 characters or less":!0:"A description is required"});output_manager_default.spinner("Updating route...");try{let editResult=await generateRoute(client,projectId,{prompt:editPrompt,currentRoute:convertRouteToCurrentRoute(currentGenerated)},{teamId});if(editResult.error){output_manager_default.error(editResult.error),output_manager_default.log("Keeping previous route:"),printGeneratedRoutePreview(currentGenerated);continue}if(!editResult.route){output_manager_default.error("Could not apply changes. Try rephrasing."),output_manager_default.log("Keeping previous route:"),printGeneratedRoutePreview(currentGenerated);continue}currentGenerated=editResult.route,printGeneratedRoutePreview(currentGenerated)}catch(e){let error=e;output_manager_default.error(error.message||"Failed to update route"),output_manager_default.log("Keeping previous route:"),printGeneratedRoutePreview(currentGenerated)}continue}if(choice==="manual"){let routeInput=generatedRouteToAddInput(currentGenerated),manualRoute=cloneRoute(originalRoute);manualRoute.name=routeInput.name,manualRoute.description=routeInput.description,manualRoute.srcSyntax=routeInput.srcSyntax,manualRoute.route=routeInput.route,await runInteractiveEditLoop(client,manualRoute),populateRouteEnv(manualRoute.route,manualRoute.srcSyntax);let editStamp=stamp_default();output_manager_default.spinner(`Updating route "${manualRoute.name}"`);try{let{version}=await editRoute(client,projectId,originalRoute.id,{route:{name:manualRoute.name,description:manualRoute.description,enabled:manualRoute.enabled,srcSyntax:manualRoute.srcSyntax,route:manualRoute.route}},{teamId});return output_manager_default.log(`${import_chalk.default.cyan("Updated")} route "${manualRoute.name}" ${import_chalk.default.gray(editStamp())}`),await offerAutoPromote(client,projectId,version,!!existingStagingVersion,{teamId,skipPrompts:skipConfirmation}),0}catch(e){let error=e;return output_manager_default.error(error.message||"Failed to update route"),1}}return output_manager_default.log("No changes made."),0}}async function applyAIEdit(client,projectId,teamId,originalRoute,generated,existingStagingVersion,skipConfirmation){let routeInput=generatedRouteToAddInput(generated);populateRouteEnv(routeInput.route,routeInput.srcSyntax);let editStamp=stamp_default();output_manager_default.spinner(`Updating route "${routeInput.name}"`);try{let{version}=await editRoute(client,projectId,originalRoute.id,{route:{name:routeInput.name,description:routeInput.description,enabled:originalRoute.enabled,srcSyntax:routeInput.srcSyntax,route:routeInput.route}},{teamId});return output_manager_default.log(`${import_chalk.default.cyan("Updated")} route "${routeInput.name}" ${import_chalk.default.gray(editStamp())}`),await offerAutoPromote(client,projectId,version,!!existingStagingVersion,{teamId,skipPrompts:skipConfirmation}),0}catch(e){let error=e;return output_manager_default.error(error.message||"Failed to update route"),1}}export{edit as default};
@@ -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{editRoute}from"./chunk-AM46JVVN.js";import{getRouteVersions}from"./chunk-BVH2AEFE.js";import{getRoutes,offerAutoPromote,parseSubcommandArgs,resolveRoute,withGlobalFlags}from"./chunk-TNNEKGGF.js";import{requireProjectContext}from"./chunk-KMPDQE4Q.js";import"./chunk-DX2OHM56.js";import{stamp_default}from"./chunk-A2RZZQEP.js";import"./chunk-6RUAAORO.js";import"./chunk-Q7D7RGXM.js";import{enableSubcommand}from"./chunk-CZOD25BC.js";import"./chunk-Q4GX2UTG.js";import"./chunk-TZ6MSTOI.js";import{outputAgentError}from"./chunk-ZUI5EMXD.js";import"./chunk-FY4ORPZH.js";import"./chunk-KNAOHPOI.js";import"./chunk-64UCX5JM.js";import"./chunk-ITQPDXXA.js";import"./chunk-56UH6NQ3.js";import"./chunk-4NTBYNFR.js";import"./chunk-C4N4LKPM.js";import"./chunk-2VBFQZ72.js";import"./chunk-GJCVOEC2.js";import"./chunk-LUX4PBJL.js";import"./chunk-OPORM35X.js";import"./chunk-MXTC4ZAQ.js";import"./chunk-ZS2WS4AM.js";import"./chunk-4SAVH3H7.js";import"./chunk-T2FCF46I.js";import"./chunk-VRH7LWOC.js";import"./chunk-DBT6PGEH.js";import{output_manager_default}from"./chunk-W634OFUG.js";import"./chunk-BLUPZPAS.js";import"./chunk-5MDNVAE6.js";import"./chunk-OCR5CRTH.js";import"./chunk-RM3ZDRYE.js";import"./chunk-YHPPP3SF.js";import"./chunk-CKTLP5GX.js";import"./chunk-2BKALEOP.js";import{require_source}from"./chunk-NB2WLB3J.js";import"./chunk-ISWW3DKF.js";import"./chunk-BULSRTQE.js";import"./chunk-BRQUZ5NC.js";import"./chunk-D6REP5QQ.js";import"./chunk-FBYA6LLM.js";import"./chunk-MY4MONOH.js";import"./chunk-7EJQLVWX.js";import"./chunk-SCV7XEEO.js";import"./chunk-CFYTFXX6.js";import{__toESM}from"./chunk-BZENIQ7N.js";var import_chalk=__toESM(require_source(),1);async function enable(client,argv){let parsed=await parseSubcommandArgs(argv,enableSubcommand,client);if(typeof parsed=="number")return parsed;let link=await requireProjectContext(client,"routes",parsed.flags["--project"]);if(typeof link=="number")return link;let{project,org}=link,teamId=org.type==="team"?org.id:void 0,{args}=parsed,identifier=args[0];if(!identifier)return client.nonInteractive&&outputAgentError(client,{status:"error",reason:"missing_arguments",message:"Route name or ID is required.",next:[{command:withGlobalFlags(client,"routes enable <name-or-id>"),when:"replace <name-or-id>"},{command:withGlobalFlags(client,"routes list"),when:"list routes"}]},2),output_manager_default.error(`Route name or ID is required. Usage: ${withGlobalFlags(client,"routes enable <name-or-id>")}`),2;let{versions}=await getRouteVersions(client,project.id,{teamId}),existingStagingVersion=versions.find(v=>v.isStaging);output_manager_default.spinner("Fetching routes");let{routes}=await getRoutes(client,project.id,{teamId});if(output_manager_default.stopSpinner(),routes.length===0)return client.nonInteractive&&outputAgentError(client,{status:"error",reason:"not_found",message:"No routes found in this project.",next:[{command:withGlobalFlags(client,"routes add --help"),when:"add routes first"}]},1),output_manager_default.error("No routes found in this project."),1;let route=await resolveRoute(client,routes,identifier);if(!route)return client.nonInteractive&&outputAgentError(client,{status:"error",reason:"not_found",message:`No route found matching "${identifier}".`,next:[{command:withGlobalFlags(client,"routes list"),when:"list routes"}]},1),output_manager_default.error(`No route found matching "${identifier}". Run ${import_chalk.default.cyan(withGlobalFlags(client,"routes list"))} to see all routes.`),1;if(route.enabled!==!1)return output_manager_default.log(`Route "${route.name}" is already enabled.`),0;let enableStamp=stamp_default();output_manager_default.spinner(`Enabling route "${route.name}"`);try{let{version}=await editRoute(client,project.id,route.id,{route:{name:route.name,description:route.description,enabled:!0,srcSyntax:route.srcSyntax,route:route.route}},{teamId});return output_manager_default.log(`${import_chalk.default.cyan("Enabled")} route "${route.name}" ${import_chalk.default.gray(enableStamp())}`),await offerAutoPromote(client,project.id,version,!!existingStagingVersion,{teamId}),0}catch(e){let error=e;return client.nonInteractive&&outputAgentError(client,{status:"error",reason:"api_error",message:error.message||"Failed to enable route"},1),output_manager_default.error(error.message||"Failed to enable route"),1}}export{enable as default};
7
+ import{editRoute}from"./chunk-AM46JVVN.js";import{getRouteVersions}from"./chunk-BVH2AEFE.js";import{getRoutes,offerAutoPromote,parseSubcommandArgs,resolveRoute,withGlobalFlags}from"./chunk-7LSH3MEB.js";import{requireProjectContext}from"./chunk-Q46Q4Y4R.js";import"./chunk-SR7BZA6N.js";import{stamp_default}from"./chunk-A2RZZQEP.js";import"./chunk-S535FZTA.js";import"./chunk-Q7D7RGXM.js";import{enableSubcommand}from"./chunk-ECFLIVEE.js";import"./chunk-PKZK23PR.js";import"./chunk-DNLE3KPC.js";import{outputAgentError}from"./chunk-AUIV7YJO.js";import"./chunk-FYE7ILRR.js";import"./chunk-6NUH6ZPE.js";import"./chunk-PKNEWN4W.js";import"./chunk-ITQPDXXA.js";import"./chunk-PL6IOUKW.js";import"./chunk-4NTBYNFR.js";import"./chunk-US7YJ2RQ.js";import"./chunk-2VBFQZ72.js";import"./chunk-SDYCW5JM.js";import"./chunk-LUX4PBJL.js";import"./chunk-OPORM35X.js";import"./chunk-MXTC4ZAQ.js";import"./chunk-ZS2WS4AM.js";import"./chunk-4SAVH3H7.js";import"./chunk-T2FCF46I.js";import"./chunk-VRH7LWOC.js";import"./chunk-DBT6PGEH.js";import{output_manager_default}from"./chunk-GZLYNPNU.js";import"./chunk-BLUPZPAS.js";import"./chunk-5MDNVAE6.js";import"./chunk-OCR5CRTH.js";import"./chunk-RM3ZDRYE.js";import"./chunk-YHPPP3SF.js";import"./chunk-AMPJ6RWT.js";import"./chunk-2BKALEOP.js";import{require_source}from"./chunk-NB2WLB3J.js";import"./chunk-ISWW3DKF.js";import"./chunk-BULSRTQE.js";import"./chunk-BRQUZ5NC.js";import"./chunk-D6REP5QQ.js";import"./chunk-FBYA6LLM.js";import"./chunk-MY4MONOH.js";import"./chunk-7EJQLVWX.js";import"./chunk-SCV7XEEO.js";import"./chunk-JBU72NEQ.js";import{__toESM}from"./chunk-BZENIQ7N.js";var import_chalk=__toESM(require_source(),1);async function enable(client,argv){let parsed=await parseSubcommandArgs(argv,enableSubcommand,client);if(typeof parsed=="number")return parsed;let link=await requireProjectContext(client,"routes",parsed.flags["--project"]);if(typeof link=="number")return link;let{project,org}=link,teamId=org.type==="team"?org.id:void 0,{args}=parsed,identifier=args[0];if(!identifier)return client.nonInteractive&&outputAgentError(client,{status:"error",reason:"missing_arguments",message:"Route name or ID is required.",next:[{command:withGlobalFlags(client,"routes enable <name-or-id>"),when:"replace <name-or-id>"},{command:withGlobalFlags(client,"routes list"),when:"list routes"}]},2),output_manager_default.error(`Route name or ID is required. Usage: ${withGlobalFlags(client,"routes enable <name-or-id>")}`),2;let{versions}=await getRouteVersions(client,project.id,{teamId}),existingStagingVersion=versions.find(v=>v.isStaging);output_manager_default.spinner("Fetching routes");let{routes}=await getRoutes(client,project.id,{teamId});if(output_manager_default.stopSpinner(),routes.length===0)return client.nonInteractive&&outputAgentError(client,{status:"error",reason:"not_found",message:"No routes found in this project.",next:[{command:withGlobalFlags(client,"routes add --help"),when:"add routes first"}]},1),output_manager_default.error("No routes found in this project."),1;let route=await resolveRoute(client,routes,identifier);if(!route)return client.nonInteractive&&outputAgentError(client,{status:"error",reason:"not_found",message:`No route found matching "${identifier}".`,next:[{command:withGlobalFlags(client,"routes list"),when:"list routes"}]},1),output_manager_default.error(`No route found matching "${identifier}". Run ${import_chalk.default.cyan(withGlobalFlags(client,"routes list"))} to see all routes.`),1;if(route.enabled!==!1)return output_manager_default.log(`Route "${route.name}" is already enabled.`),0;let enableStamp=stamp_default();output_manager_default.spinner(`Enabling route "${route.name}"`);try{let{version}=await editRoute(client,project.id,route.id,{route:{name:route.name,description:route.description,enabled:!0,srcSyntax:route.srcSyntax,route:route.route}},{teamId});return output_manager_default.log(`${import_chalk.default.cyan("Enabled")} route "${route.name}" ${import_chalk.default.gray(enableStamp())}`),await offerAutoPromote(client,project.id,version,!!existingStagingVersion,{teamId}),0}catch(e){let error=e;return client.nonInteractive&&outputAgentError(client,{status:"error",reason:"api_error",message:error.message||"Failed to enable route"},1),output_manager_default.error(error.message||"Failed to enable route"),1}}export{enable as default};
@@ -0,0 +1,17 @@
1
+ import { createRequire as __createRequire } from 'node:module';
2
+ import { fileURLToPath as __fileURLToPath } from 'node:url';
3
+ import { dirname as __dirname_ } from 'node:path';
4
+ const require = __createRequire(import.meta.url);
5
+ const __filename = __fileURLToPath(import.meta.url);
6
+ const __dirname = __dirname_(__filename);
7
+ import{DroppedError,ExternalEvent,ExternalLocation,channelOf,derivedId,displayText,externalMessageKey,isThreadTarget,replaceMentions,waitUntil}from"./chunk-CJ6XPDSS.js";import{ChannelPath,HttpError,LabelKey,Labels,MESSAGE_TEXT_MAX,badRequest,canonicalEmoji,fileSize,notFound,toStorable,typeOf}from"./chunk-WFS3XBAA.js";import{external_exports}from"./chunk-2AMO2VMV.js";import"./chunk-BZENIQ7N.js";var afterRetry=attempt=>attempt>10;var ROUTES=Symbol.for("board.syncRoutes");var ResolvedTarget=external_exports.object({target:external_exports.string().min(1),channel:external_exports.string().min(1),kind:external_exports.enum(["channel","thread"])}).strict(),UnreadableError=class extends Error{code;constructor(code,message){super(message),this.code=code}},channelMissing=error=>error instanceof UnreadableError&&error.code==="channel_not_found",ReceivedEvent=external_exports.object({event:ExternalEvent,raw:external_exports.unknown(),dedupe:external_exports.string().min(1)}),routed=new WeakMap,routesFor=provider=>routed.get(provider);var EventBase=external_exports.object({id:external_exports.string().min(1),platform:external_exports.string().min(1),key:external_exports.string().min(1),...ExternalLocation.shape,raw:external_exports.unknown()});var SyncOverrides=external_exports.object({root:external_exports.custom(value=>typeof value=="function").optional(),text:external_exports.string().optional(),labels:Labels.optional(),unset:external_exports.array(LabelKey).optional(),noSync:external_exports.boolean().optional()}).strict();function immutable(value){if(value&&typeof value=="object"){for(let item of Object.values(value))immutable(item);Object.freeze(value)}return value}var clampText=(raw,files=!1)=>{let text=toStorable(raw),trimmed=text.trim()===""?files?"":"(no text)":text;return trimmed.length>1e4?`${trimmed.slice(0,MESSAGE_TEXT_MAX-1).toWellFormed()}\u2026`:trimmed},fileNote=(file,why,name=file.name??"a file")=>`\u{1F4CE} ${name}${file.size!==void 0?` (${fileSize(file.size)})`:""} didn't come over: ${why}`,keepsNoFiles=error=>error instanceof HttpError&&error.code==="no_files",fileLink=file=>{let name=file.name??"a file";if(!file.url||!/^https?:\/\//.test(file.url))return fileNote(file,"this board keeps no files");let label=name.replace(/[[\]\\]/g,char=>`\\${char}`),url=file.url.replace(/[ ()]/g,char=>`%${char.charCodeAt(0).toString(16).toUpperCase()}`);return fileNote(file,"this board keeps no files",`[${label}](${url})`)},withNotes=(text,notes)=>notes.length?`${text.trim()?`${text}
8
+
9
+ `:""}${notes.join(`
10
+ `)}`:text,notesIn=text=>text.split(`
11
+ `).filter(line=>/^📎 .* didn't come over: /u.test(line)),linkKey=link=>JSON.stringify([link.url,link.message,link.snapshot,link.unavailable]),sameLinks=(a,b)=>a.length===b.length&&a.every((link,i)=>linkKey(link)===linkKey(b[i])),CODE=/^\s*`?(vb-[a-z0-9]{4}-[a-z0-9]{4})`?\s*$/i,ECHO_WINDOW_MS=6e4,ECHO_ATTEMPTS=6,FILE_ATTEMPTS=3,GATE_WAIT_MS=2e3,DELIVERY_ATTEMPTS=5,PULL_MS=24e4,NEVER=new AbortController().signal,jsonSafe=value=>{try{return JSON.parse(JSON.stringify(value??null))}catch{return null}},storableJson=value=>typeof value=="string"?toStorable(value):Array.isArray(value)?value.map(storableJson):value!==null&&typeof value=="object"?Object.fromEntries(Object.entries(value).map(([key,item])=>[toStorable(key),storableJson(item)])):value,describe=error=>{let code=error?.data?.error,text=typeof code=="string"?code:error instanceof Error?error.message:String(error);return toStorable(text.slice(0,500))||"unknown error"},missing=error=>error instanceof HttpError&&error.status===404;function createSyncEngine(entries){let bound=null,host=()=>{if(!bound)throw new Error("sync used before board() bound it");return bound},me={self:"sync",origin:{via:{kind:"engine"}}};function call(method,input,signal=NEVER,caller=me){let backend=host().backend;return backend[method].call(backend,caller,input,signal)}let platformOf=key=>{let platform=entries[key];if(!platform)throw badRequest(`no sync entry named ${key}`);return platform},keyOf=target=>target.slice(0,target.indexOf(":")),ours=target=>entries[keyOf(target)]!==void 0,native=external=>external.slice(external.indexOf(":")+1);async function syncOf(thread){try{return await call("syncThread",{thread})}catch(error){if(missing(error))return null;throw error}}async function threadOf(root){try{let{message,replies}=await call("message",{id:root});return[message,...replies]}catch(error){if(missing(error))return[];throw error}}async function messageOf(id){return(await threadOf(id)).find(message=>message.id===id)??null}async function copiesOf(ids){return ids.length===0?{}:(await call("syncCopies",{message:[...new Set(ids)]})).copies}let find=(query,signal)=>call("syncFind",query,signal);async function actorsNow(){let{actors}=await call("actors",{}),state={byId:{},links:{}};for(let{person,...actor}of actors)state.byId[actor.id]={id:actor.id,kind:actor.kind,handle:actor.handle,name:actor.name,avatar:actor.avatar},person&&(state.links[actor.id]=person.id);return state}let linkedTo=(actors,person)=>Object.entries(actors.links).filter(([,to])=>to===person).map(([actor])=>actor),RETRY_MS=6e4,resolutions=new Map;function resolve(key,name){let at=`${key}:${name}`,cached=resolutions.get(at);if(cached&&(!cached.failed||Date.now()-cached.at<RETRY_MS))return cached.id;let entry={id:platformOf(key).resolveChannel(name),failed:!1,at:Date.now()};return entry.id.catch(error=>{entry.failed=!0;let missing2=channelMissing(error);!missing2&&resolutions.get(at)===entry&&resolutions.delete(at),console.warn(`[board] sync ${key}: ${missing2?"skipping":"couldn't resolve"} ${name}: ${error.message}`)}),resolutions.set(at,entry),entry.id}function channelIn(key,target){if(!isThreadTarget(target))return native(target);try{let channel=platformOf(key).inboxChannel(key,target);return channel===null?null:native(channel)}catch{return null}}async function findByEmail(email){for(let platform of Object.values(entries)){let author=await platform.findByEmail(email).catch(()=>null);if(author)return{id:author.id,kind:"external",handle:author.handle,name:author.name,avatar:author.avatar}}return null}async function normalizeTarget(target){let at=target.indexOf(":");if(at<=0)throw badRequest(`sync targets look like <key>:<channel or thread>, got: ${target}`);let key=target.slice(0,at),platform=platformOf(key);try{let resolved=ResolvedTarget.parse(await platform.resolveTarget(target.slice(at+1)));if(resolved.kind==="channel"&&!platform.canStartThreads)throw new Error(`${platform.platform} cannot start threads; use an existing thread`);return{target:`${key}:${resolved.target}`,kind:resolved.kind}}catch(error){throw badRequest(`can't sync to ${target}: ${error.message}`)}}async function intake(key,received){let{event,raw,dedupe}=ReceivedEvent.parse(storableJson({...received,raw:jsonSafe(received.raw)}));for(let location of[event.channel,event.thread,"subthread"in event?event.subthread:null])if(location!==null&&!location.startsWith(`${key}:`))throw badRequest(`provider locations must belong to sync entry ${key}`);let routes=routesFor(platformOf(key));routes&&!await routes(native(event.channel),name=>resolve(key,name))&&!await syncsThread(event.thread)||await call("inboxPush",{key,events:[{id:dedupe,event,raw}]})}async function syncsThread(thread){try{return(await find({thread},AbortSignal.timeout(GATE_WAIT_MS))).thread!==null}catch(error){let name=error?.name;if(name==="TimeoutError"||name==="AbortError")return!0;throw error}}async function handleWebhook(key,request){let platform=entries[key];if(!platform)throw notFound(`no sync entry named ${key}`);let response;try{response=await platform.receive(key,request,received=>intake(key,received))}catch(error){return console.error("[board] intake failed",error),new Response("intake failed",{status:500})}let pulling=pull([key]).catch(error=>console.error(`[board] couldn't pull ${key}'s inbox:`,describe(error)));return waitUntil(pulling),response}async function pull(keys=Object.keys(entries)){let ran=0,until=Date.now()+PULL_MS;for(let key of keys)for(;Date.now()<until;){let{items}=await call("inboxNext",{key,limit:10});if(items.length===0)break;await Promise.all(items.map(item=>runItem(key,item))),ran+=items.length}return ran}async function runItem(key,item){let error;try{await inbound(key,{event:item.event,raw:item.raw},{id:item.id,attempt:item.attempt+1})}catch(failure){console.error(`[board] sync ${key} couldn't import ${item.id}:`,describe(failure)),error=describe(failure)}await call("inboxAck",{key,id:item.id,lease:item.lease,...error!==void 0?{error}:{}}).catch(failure=>console.error("[board] couldn't ack an inbox event:",describe(failure)))}async function resolveLinks(platform,links,channel,previous=[]){if(links.length===0)return[];let resolved=[];for(let link of links){if(resolved.some(done=>done.url===link.url))continue;let id=(await find({thread:link.thread,message:link.message})).message,copy=id===null?null:await messageOf(id);if(copy&&!copy.deleted&&copy.channel===channel){resolved.push({url:link.url,message:copy.id,unavailable:null,snapshot:{author:copy.author?.name??copy.by.actor,text:copy.text,createdAt:copy.createdAt,files:copy.attachments.map(file=>({name:file.name,url:null}))}});continue}if(link.snapshot){resolved.push({url:link.url,message:null,snapshot:link.snapshot,unavailable:null});continue}let kept=previous.find(earlier=>earlier.url===link.url&&earlier.snapshot&&earlier.message===null);if(kept){resolved.push(kept);continue}let fetched=await platform.fetchLink(link).catch(error=>({snapshot:null,unavailable:describe(error)}));resolved.push({url:link.url,message:null,snapshot:fetched.snapshot,unavailable:fetched.snapshot?null:(fetched.unavailable??"unknown").slice(0,300)})}return storableJson(resolved)}async function importFiles(platform,files,attempt){let attachments=[],notes=[],noFiles=!1;for(let file of files.slice(0,10)){if(noFiles){notes.push(fileLink(file));continue}if(file.size!==void 0&&file.size>26214400){notes.push(fileNote(file,`over ${26214400/1024/1024} MB`));continue}let data;try{let fetched=await platform.fetchFile(file);if(fetched===null){notes.push(fileNote(file,`${platform.platform} can't hand it over`));continue}data=fetched}catch(error){if(attempt<FILE_ATTEMPTS)throw error;console.warn(`[board] couldn't fetch ${file.name??"a file"} from ${platform.platform}:`,describe(error)),notes.push(fileNote(file,`${platform.platform} wouldn't hand it over`));continue}if(data.byteLength>26214400){notes.push(fileNote(file,`over ${26214400/1024/1024} MB`));continue}if(data.byteLength===0){notes.push(fileNote(file,"it was empty"));continue}let name=file.name??`${file.type}`;try{attachments.push((await call("upload",{data,name,type:file.mimeType||typeOf(name)})).attachment)}catch(error){if(error instanceof HttpError&&(error.code==="too_large"||error.code==="no_direct_uploads")){notes.push(fileNote(file,`over ${4194304/1024/1024} MB`));continue}if(!keepsNoFiles(error))throw error;noFiles=!0,notes.push(fileLink(file))}}for(let file of files.slice(10))notes.push(fileNote(file,"a message carries at most 10"));return{attachments,notes}}async function inbound(key,item,meta){let{event,raw}=item,platform=platformOf(key),linked=(await find({thread:event.thread})).thread??void 0;if(event.kind==="message"){let copied=(await find({thread:event.subthread??event.thread,message:event.message})).message;if(copied!==null){let origin=(await messageOf(copied))?.origin;if(!origin||origin.message!==event.message||(origin.subthread??origin.thread)!==(event.subthread??event.thread))return}else if(platform.users&&meta.attempt<ECHO_ATTEMPTS&&await deliveringAsPerson(linked,event))throw new Error(`holding ${event.message} until ${event.author.id}'s board message there has its receipt`);let code=event.author.isBot?void 0:CODE.exec(event.text)?.[1];if(code&&await claimCode(key,event,code))return}let author="author"in event?event.author:{id:`${platform.platform}:system`,handle:platform.platform,name:platform.platform,avatar:null,isBot:!0},typed,typedEvent=()=>typed??=immutable(platform.event({id:meta.id,key,event,raw})),imported,link,active=!0,sync={direction:"in",key,channel:native(event.channel),get event(){return typedEvent()},board:host().client({author,key,...originOf(key,event)},meta.id),import(channel,overrides={}){if(!active)throw badRequest("the sync function has finished");return imported??=importEvent(key,item,meta,linked,channel,overrides),imported},permalink(){let promise=link??platform.permalink(typedEvent());return link=promise,promise.catch(()=>{link===promise&&(link=void 0)}),promise},resolve:name=>resolve(key,name)};try{await platform.sync(sync),await imported}finally{active=!1}}async function importEvent(key,item,meta,linked,channel,overrides){let where=channel??(linked?(await syncOf(linked))?.channel:void 0);if(where===void 0)return{root:null,message:null};try{return await applyIncoming(key,item,meta,ChannelPath.parse(where),SyncOverrides.parse(overrides))}catch(error){if(!(error instanceof DroppedError))throw error;let thread=(await find({thread:item.event.thread})).thread;return{root:thread===null?null:(await syncOf(thread))?.root??null,message:null}}}function originOf(key,event){let platform=platformOf(key),thread=("subthread"in event?event.subthread:null)??event.thread;return{via:{kind:"sync",key,platform:platform.platform,channel:event.channel,thread},respond:async text=>{await platform.post(native(thread),"thread",{markdown:text})}}}async function deliveringAsPerson(thread,event){let person=(await find({account:event.author.id})).person;if(!person||person.method!=="consent")return!1;let now=Date.now(),pending=(message,target,copies2)=>message.by.principal===person.id&&message.by.profile===null&&message.from===null&&!message.deleted&&!message.noSync&&now-Date.parse(message.createdAt)<ECHO_WINDOW_MS&&!copies2[target]&&!message.undelivered[target];if(thread!==void 0){let synced=await syncOf(thread);if(!synced)return!1;let targets=synced.targets.filter(target=>synced.external[target]===event.thread),messages=await threadOf(synced.root),copies2=await copiesOf(messages.map(message=>message.id));return messages.some(message=>targets.some(target=>pending(message,target,copies2[message.id]??{})))}let{roots}=await call("syncRoots",{by:person.id,since:now-ECHO_WINDOW_MS}),copies=await copiesOf(roots.map(root=>root.id));for(let root of roots){let synced=await syncOf(root.thread);if(synced?.targets.includes(event.channel)&&!synced.external[event.channel]&&pending(root,event.channel,copies[root.id]??{}))return!0}return!1}async function claimCode(key,event,code){try{await call("syncAccount",{sync:key,account:event.author,code,message:externalMessageKey(event.subthread??event.thread,event.message)})}catch(error){if(missing(error))return!1;throw error}return await platformOf(key).react(native(event.subthread??event.thread),event.message,"check",!0).catch(error=>console.warn(`[board] couldn't confirm a linking code on ${key}:`,describe(error))),!0}let signsIn=key=>platformOf(key).users!==null;async function signIn(key,subject,callback){let platform=platformOf(key);if(!platform.users)throw badRequest(`${key} can't sign people in: link it with a code`);return platform.users.authorize(subject,callback?{callback}:{})}async function signedIn(key,subject){let platform=platformOf(key);if(!platform.users)throw badRequest(`${key} can't sign people in: link it with a code`);let token=await platform.users.token(subject);if(!token)return null;let account=await platform.whoAmI(token);if(!account.id.startsWith(`${platform.platform}:user:`))throw badRequest(`${key} named an account that isn't a ${platform.platform} user`);return account}async function redeemSignIn(key,subject,code){let account=await signedIn(key,subject);return account?(await call("syncAccount",{sync:key,account,code,method:"consent"})).link:null}async function applyIncoming(key,item,meta,channel,overrides){let{event,raw}=item,source=originOf(key,event),platform=platformOf(key),threadKey=(await find({thread:event.thread})).thread??void 0,synced=threadKey?await syncOf(threadKey):null,rootId=synced?.root,writeId=n=>derivedId("board-inbound",meta.id,String(n)),from={key,channel:source.via.channel,thread:source.via.thread},screened=async answer=>{if(!answer.dropped)return answer.message;for(let text of answer.dropped)await source.respond(text);throw new DroppedError(answer.dropped)},post=async({attachments=[],...input})=>({id:await screened(await call("syncImport",{op:"post",from:key,source:from,...input,origin:input.origin??null,...attachments.length?{attachments:attachments.map(file=>file.id)}:{}})),re:input.re??null}),result=message=>({root:message.re??message.id,message:message.id}),labels=(defaults={})=>{let merged={...defaults,...overrides.labels};for(let key2 of overrides.unset??[])delete merged[key2];return merged},rootDraft=draft=>{if(!overrides.root)return draft;let patch=overrides.root(immutable(structuredClone(draft)));if(patch&&typeof patch=="object"&&"then"in patch)throw badRequest("root overrides must be synchronous");let checked=SyncOverrides.pick({text:!0,labels:!0}).parse(patch);return{...draft,text:checked.text??draft.text,labels:{...draft.labels,...checked.labels}}},setLabels=(author,set,unset)=>call("syncImport",{op:"labels",author,from:key,origin:{thread:event.thread},set,unset}),setExtraLabels=async(author,id)=>{if(!overrides.labels&&!overrides.unset)return;let root=await messageOf(id),set=Object.fromEntries(Object.entries(overrides.labels??{}).filter(([key2,value])=>root?.labels[key2]!==value)),unset=(overrides.unset??[]).filter(key2=>root?.labels[key2]!==void 0);(Object.keys(set).length||unset.length)&&await setLabels(author,set,unset)};switch(event.kind){case"message":{let existing=(await find({thread:event.subthread??event.thread,message:event.message})).message;if(existing!==null)return{root:rootId??existing,message:existing};let{attachments,notes}=event.files?.length?await importFiles(platform,event.files,meta.attempt):{attachments:[],notes:[]},links=await resolveLinks(platform,event.links??[],synced?.channel??channel),base={...links.length?{links}:{},author:event.author,text:clampText(withNotes(overrides.text??event.text,notes),attachments.length>0),...attachments.length?{attachments}:{},origin:{channel:event.channel,thread:event.thread,subthread:event.subthread,message:event.message,context:event.context},id:await writeId(0)},reply={...base,...overrides.noSync?{noSync:!0}:{}};if(rootId!==void 0)return await setExtraLabels(event.author,rootId),result(await post({...reply,re:rootId}));let fetched=await platform.fetchRoot(native(event.thread));if(fetched===null){let draft2=rootDraft({text:event.text,labels:{},author:event.author,raw});return result(await post({...base,channel,text:clampText(withNotes(overrides.text??draft2.text,notes),attachments.length>0),labels:labels(draft2.labels)}))}let draft=rootDraft({...fetched,raw:fetched.raw??null}),root=await post({author:fetched.author,channel,text:clampText(draft.text),labels:labels(draft.labels),origin:{channel:event.channel,thread:event.thread,subthread:null,message:`root:${meta.id}`,context:null},id:await writeId(1)});return result(await post({...reply,re:root.id}))}case"edited":case"deleted":case"reaction":{let id=(await find({thread:event.subthread??event.thread,message:event.message})).message;if(id===null)return{root:rootId??null,message:null};let author="author"in event?event.author:{id:`${platform.platform}:system`,handle:platform.platform,name:platform.platform,avatar:null,isBot:!0},origin={thread:event.subthread??event.thread,message:event.message};if(rootId!==void 0&&await setExtraLabels(author,rootId),event.kind==="deleted")await call("syncImport",{op:"delete",author,from:key,origin});else if(event.kind==="edited"){let stored=await messageOf(id),text=clampText(withNotes(overrides.text??event.text,stored?notesIn(stored.text):[]),(stored?.attachments.length??0)>0);stored&&!event.linksOnly&&stored.text!==text&&await screened(await call("syncImport",{op:"edit",author,from:key,origin,text,source:from}));let links=stored?await resolveLinks(platform,event.links??[],stored.channel,stored.links):[];stored&&!sameLinks(links,stored.links)&&await call("syncImport",{op:"links",author,from:key,origin,links})}else{if(platform.singleReaction){let emoji=canonicalEmoji(event.emoji);for(let[held,actors]of Object.entries((await messageOf(id))?.reactions??{}))actors.includes(author.id)&&!(event.added&&held===emoji)&&await call("syncImport",{op:"react",author,from:key,origin,emoji:held,remove:!0})}(!platform.singleReaction||event.added)&&await call("syncImport",{op:"react",author,from:key,origin,emoji:event.emoji,remove:!event.added})}return{root:rootId??null,message:id}}case"lifecycle":{if(rootId!==void 0){let root2=await messageOf(rootId),createdHere=root2?.origin?.message===`lifecycle:${meta.id}`,desired=labels((createdHere?rootDraft({text:lifecycleText(event),labels:event.labels,author:event.author,raw}):null)?.labels??event.labels),owned=key2=>event.owns?.some(prefix=>key2.startsWith(prefix))??!1,set=Object.fromEntries(Object.entries(desired).filter(([key2,value])=>root2?.labels[key2]!==value)),unset=Object.keys(root2?.labels??{}).filter(key2=>!(key2 in desired)&&(event.unset.includes(key2)||overrides.unset?.includes(key2)||owned(key2)));if(root2&&!root2.deleted&&(Object.keys(set).length||unset.length)&&await setLabels(event.author,set,unset),event.retitled&&root2&&!root2.deleted&&root2.from===key&&root2.origin?.thread===event.thread){let text=clampText(overrides.text??rootDraft({text:lifecycleText(event),labels:root2.labels,author:event.author,raw}).text);root2.text!==text&&await screened(await call("syncImport",{op:"edit",author:event.author,from:key,origin:{thread:root2.origin.thread,message:root2.origin.message},text}))}return event.reply?result(await post({author:event.author,re:rootId,text:clampText(overrides.text??event.reply),...overrides.noSync?{noSync:!0}:{},id:await writeId(1)})):{root:rootId,message:createdHere?rootId:null}}if(!event.createRoot)return{root:null,message:null};let draft=rootDraft({text:lifecycleText(event),labels:event.labels,author:event.author,raw}),root=await post({author:event.author,channel,text:clampText(event.reply?draft.text:overrides.text??draft.text),labels:labels(draft.labels),origin:{channel:event.channel,thread:event.thread,subthread:null,message:`lifecycle:${meta.id}`,context:null},id:await writeId(0)});return event.reply?result(await post({author:event.author,re:root.id,text:clampText(overrides.text??event.reply),...overrides.noSync?{noSync:!0}:{},id:await writeId(1)})):result(root)}}}function textFor(platform,message,actors,text=message.text){let mentioned=message.mentions.map(id=>actors.byId[id]).filter(actor=>actor!==void 0);return replaceMentions(text,(token,written)=>{let actor=token.kind==="actor"?mentioned.find(candidate=>candidate.id===token.actor):mentioned.find(candidate=>candidate.handle.toLowerCase()===token.handle);return actor?nativeMention(platform,actor.id,actors)??actor.name:null})}function nativeMention(platform,actor,actors){let native2=id=>{let account=actors.byId[id];return account?platform.mention(account):null},person=actors.links[actor]??actor,direct=native2(actor)??(person===actor?null:native2(person));if(direct)return direct;for(let id of linkedTo(actors,person)){let linked=native2(id);if(linked)return linked}return null}async function personToken(platform,message,linked){if(!platform.users||message.from!==null||message.by.profile!==null||!message.by.principal.startsWith("vercel:user:"))return null;if(linked){let{accounts}=await find({person:message.by.principal});if(!accounts.some(account=>account.method==="consent"&&account.id.startsWith(`${platform.platform}:user:`)))return null}try{return await platform.users.token(message.by.principal)}catch(error){return console.warn(`[board] no ${platform.platform} token for ${message.by.principal}; posting #${message.id} as the app:`,describe(error)),null}}function renderAsPerson(target,message,actors){let platform=platformOf(keyOf(target)),markdown=textFor(platform,message,actors,displayText(message.text,message.by.actor));return{markdown:message.attachments.length>0&&!platform.uploadsFiles?`${markdown}
12
+ ${attachmentNotes(message)}`:markdown}}async function postAsPerson(target,place,kind,message,actors){let platform=platformOf(keyOf(target));if(!message.text.trim())return null;let token=await personToken(platform,message,!0);if(!token)return null;try{return await platform.postAs(token,native(place),kind,renderAsPerson(target,message,actors))}catch(error){return console.warn(`[board] couldn't post #${message.id} to ${target} as its author; posting as the app:`,describe(error)),null}}function render(key,target,message,actors,renderer){let actor=actors.byId[message.by.actor],name=actor?.name??message.by.actor;message.by.profile&&actor?.handle.includes("/")&&(name=`${actor.name} via ${actor.handle.split("/")[0]}`),message.from&&(name=`${name} (${entries[message.from]?.platform??message.by.actor.slice(0,message.by.actor.indexOf(":"))})`);let platform=platformOf(key),body=(renderer??(input=>platform.render(input)))(immutable({message:{...structuredClone(message),text:displayText(message.text,message.by.actor)},author:actor?{...actor}:null,mentionOf:id=>nativeMention(platform,id,actors),label:name,target}));if(typeof body!="string")throw badRequest("a provider renderer must return markdown");let markdown=textFor(platform,message,actors,body);return message.by.profile&&!message.from?{markdown,as:{name,avatar:senderAvatar(message,actor,actors)}}:{markdown}}function senderAvatar(message,actor,actors){let builtIn=avatar=>!avatar||/\/avatars\/[a-z0-9-]+$/.test(avatar),own=actor?.avatar??null;if(!builtIn(own))return own;let person=actors.byId[message.by.principal]?.avatar;if(!builtIn(person))return person;let username=actor?.handle.split("/")[0]??"";return!message.by.principal.startsWith("vercel:user:")||!username||/^user-/.test(username)?own:`https://vercel.com/api/www/avatar?u=${encodeURIComponent(username)}&s=64&format=png`}let attachmentNotes=message=>message.attachments.map(a=>`
13
+ \u{1F4CE} ${a.name} (${fileSize(a.size)}, on the board: #${message.id})`).join(""),renderFor=(target,message,actors,noted=!1,renderer)=>{let key=keyOf(target),{markdown,as}=render(key,target,message,actors,renderer);return{markdown:message.attachments.length>0&&(noted||!platformOf(key).uploadsFiles)?`${markdown}
14
+ ${attachmentNotes(message)}`:markdown,...as?{as}:{}}};async function postReply(message,target,externalThread,actors,renderer){let replyCopy=message.replyTo===null?void 0:(await copiesOf([message.replyTo]))[message.replyTo]?.[target],place=replyCopy!==void 0&&replyCopy.thread!==externalThread?replyCopy.thread:externalThread,platform=platformOf(keyOf(target)),body=renderFor(target,message,actors,!1,renderer),files,sentId;if(!body.markdown.trim()&&message.attachments.length&&platform.uploadsFiles)try{let sent=await uploadMessageFiles(message,target,place);sentId=sent.message,files=sent.files}catch(error){if(!platform.refusesFiles(error)&&!keepsNoFiles(error))throw error;body=renderFor(target,message,actors,!0,renderer),sentId=(await platform.post(native(place),"thread",body)).message,files=null}else{let asPerson=await postAsPerson(target,place,"thread",message,actors);if(asPerson){let external2={thread:place,message:asPerson.message,asUser:!0};return await recordDelivery(message,target,external2),external2}if(!body.markdown.trim())throw badRequest("a renderer must return text unless the message has media");sentId=(await platform.post(native(place),"thread",body)).message}let external={thread:place,message:sentId,...files!==void 0?{files}:{}};return await recordDelivery(message,target,external),external}async function recordDelivery(message,target,copy){await call("syncReceipt",{kind:"message",message:message.id,target,external:{thread:copy.thread,message:copy.message,...copy.asUser?{asUser:!0}:{}},...copy.files!==void 0?{files:copy.files}:{}})}async function messageFiles(message){return Promise.all(message.attachments.map(async a=>{let{data}=await call("attachment",{id:a.id});return{data:data instanceof Uint8Array?data:new Uint8Array(await new Response(data).arrayBuffer()),filename:a.name,mimeType:a.type}}))}async function uploadMessageFiles(message,target,thread){return platformOf(keyOf(target)).uploadFiles(native(thread),await messageFiles(message))}async function deliverFiles(message,target,copy,actors,renderer){let platform=platformOf(keyOf(target));if(!platform.uploadsFiles||message.attachments.length===0||copy.files!==void 0)return;let ids;try{ids=(await uploadMessageFiles(message,target,copy.thread)).files}catch(error){if(!platform.refusesFiles(error)&&!keepsNoFiles(error))throw Object.assign(new Error(`files: ${describe(error)}`),{cause:error,data:{error:`files: ${describe(error)}`}});console.warn(`[board] ${target} won't take #${message.id}'s files (${describe(error)}); noting them in its text`),ids=null,await platform.edit(native(copy.thread),copy.message,renderFor(target,message,actors,!0,renderer)).catch(edit=>console.warn(`[board] couldn't note #${message.id}'s files on ${target}:`,describe(edit)))}await call("syncReceipt",{kind:"files",message:message.id,target,files:ids})}let failed=(failures,id,target,error)=>{failures.some(failure=>failure.error===error)||failures.push({id,target,error})};async function settle(attempt,failures){if(failures.length!==0){if(attempt<DELIVERY_ATTEMPTS||afterRetry(attempt))throw failures[0].error;for(let{id,target,error}of failures)console.error(`[board] gave up ${target===null?`syncing #${id}`:`delivering #${id} to ${target}`}:`,describe(error)),target!==null&&await call("syncReceipt",{kind:"failed",message:id,target,error:describe(error)})}}async function offer(key,event,message,target,send){let sent,active=!0,finished=()=>badRequest("the sync function has finished"),sync={direction:"out",key,channel:target===null?null:channelIn(key,target),event:immutable(structuredClone(event)),message:immutable(structuredClone(message)),target,deliver(options={}){if(!active)throw finished();return sent??=target===null?Promise.resolve():send(options.render),sent},start(channel){if(!active)throw finished();return startThread(key,message,channel)},resolve:name=>resolve(key,name)};try{await platformOf(key).sync(sync),await sent}finally{active=!1}}async function startThread(key,message,channel){let{target,kind}=await normalizeTarget(`${key}:${channel}`),root=message.re===null?message:await messageOf(message.re);!root||root.deleted||root.noSync||target!==(root.origin?root.origin.channel??channelOf(root.origin.thread):null)&&await call("syncReceipt",{kind:"thread",message:root.id,target,targetKind:kind,cause:"config"})}async function deliverRoot(event,attempt){let starters=Object.keys(entries).filter(key=>entries[key].canStartThreads);if(event.payload.noSync||starters.length===0)return;let root=await messageOf(event.message.id);if(!root||root.deleted)return;let failures=[];for(let key of starters)try{await offer(key,event,root,null,async()=>{})}catch(error){failed(failures,root.id,null,error)}await settle(attempt,failures)}async function deliverThread(event,attempt){let{thread,target}=event.payload;if(!ours(target)||(event.payload.kind??(isThreadTarget(target)?"thread":"channel"))==="thread")return;let synced=await syncOf(thread),[root,...replies]=synced?await threadOf(synced.root):[];if(!synced||!root||root.id!==synced.root||root.deleted)return;let failures=[];try{await offer(keyOf(target),event,root,target,renderer=>backfill(synced,root,replies,target,failures,renderer))}catch(error){failed(failures,root.id,target,error)}await settle(attempt,failures)}async function backfill(synced,root,replies,target,failures,renderer){let actors=await actorsNow(),copies=await copiesOf([root.id,...replies.map(reply=>reply.id)]),rootFailed=error=>(failures.push({id:root.id,target,error}),error),externalThread=synced.external[target];if(externalThread){let copy=copies[root.id]?.[target];if(copy)try{await deliverFiles(root,target,copy,actors,renderer)}catch(error){throw rootFailed(error)}}else try{let platform=platformOf(keyOf(target)),body=renderFor(target,root,actors,!1,renderer),mediaOnly=!body.markdown.trim()&&root.attachments.length>0&&platform.uploadsFiles;if(!body.markdown.trim()&&!mediaOnly)throw badRequest("a renderer must return text unless the message has media");let uploaded,postedAsPerson=!1,sent=await(async()=>{if(!mediaOnly){let asPerson=await postAsPerson(target,target,"channel",root,actors);if(asPerson)return postedAsPerson=!0,asPerson;if(root.attachments.length===0||!platform.startsThreadsWithFiles)return platform.post(native(target),"channel",body)}try{let sent2=await platform.post(native(target),"channel",{...body,files:await messageFiles(root)});return uploaded=mediaOnly?sent2.files??[]:sent2.files,sent2}catch(error){if(!platform.refusesFiles(error)&&!keepsNoFiles(error))throw error;return uploaded=null,platform.post(native(target),"channel",renderFor(target,root,actors,!0,renderer))}})();externalThread=`${keyOf(target)}:${sent.thread}`;let external={thread:externalThread,message:sent.message,...uploaded!==void 0?{files:uploaded}:{},...postedAsPerson?{asUser:!0}:{}};await recordDelivery(root,target,external),await deliverFiles(root,target,external,actors,renderer)}catch(error){throw rootFailed(error)}let mine=[];for(let reply of replies)if(!(reply.deleted||reply.noSync||cameFrom(reply,target)))try{await deliverFiles(reply,target,copies[reply.id]?.[target]??await postReply(reply,target,externalThread,actors,renderer),actors,renderer)}catch(error){mine.push({id:reply.id,target,error})}if(failures.push(...mine),mine.length)throw mine[0].error}let cameFrom=(message,target)=>message.origin?.thread===target||message.from!==null&&keyOf(target)===message.from;async function deliverPost(event,attempt){if(!event.message)return;if(event.message.re===null)return deliverRoot(event,attempt);if(event.payload.noSync)return;let synced=await syncOf(event.payload.thread);if(!synced||synced.targets.length===0)return;let message=await messageOf(event.message.id);if(!message||message.deleted)return;let actors=await actorsNow(),failures=[];for(let target of synced.targets){let externalThread=synced.external[target];if(!(!ours(target)||!externalThread)&&!cameFrom(message,target))try{await offer(keyOf(target),event,message,target,async renderer=>{let copy=(await copiesOf([message.id]))[message.id]?.[target]??await postReply(message,target,externalThread,actors,renderer);await deliverFiles(message,target,copy,actors,renderer)})}catch(error){failed(failures,message.id,target,error)}}await settle(attempt,failures)}async function deliverChange(event){let copies=(await copiesOf([event.payload.id]))[event.payload.id]??{};if(Object.keys(copies).length===0)return;let message=event.type==="message.edited"?await messageOf(event.payload.id):event.message??await messageOf(event.payload.id);if(!message||event.type==="message.edited"&&message.deleted)return;let actors=await actorsNow();for(let[target,copy]of Object.entries(copies))if(!(!ours(target)||event.payload.from!==null&&keyOf(target)===event.payload.from))try{await offer(keyOf(target),event,message,target,async renderer=>{let platform=platformOf(keyOf(target)),thread=native(copy.thread),theirs=copy.asUser&&(event.type==="message.edited"||event.type==="message.deleted"),token=theirs?await personToken(platform,message,!1):null;if(theirs&&!token){console.warn(`[board] skipped ${event.type} on ${target}: #${message.id} was posted as its author, and their token is gone`);return}event.type==="message.edited"?token?await platform.editAs(token,thread,copy.message,renderAsPerson(target,message,actors)):await platform.edit(thread,copy.message,renderFor(target,message,actors,copy.files===null,renderer)):event.type==="message.deleted"?(token?await platform.deleteAs(token,thread,copy.message):await platform.delete(thread,copy.message),copy.files?.length&&await platform.deleteFiles(copy.files)):event.type==="reaction.added"?await platform.react(thread,copy.message,canonicalEmoji(event.payload.emoji),!0):await platform.react(thread,copy.message,canonicalEmoji(event.payload.emoji),!1)})}catch(error){console.warn(`[board] skipped ${event.type} on ${target}:`,error.message)}}async function deliverLabels(event){let{id}=event.payload,copies=(await copiesOf([id]))[id]??{},after=event.message;if(!after||Object.keys(copies).length===0)return;let current=await messageOf(id);if(!current||current.deleted)return;let actors=await actorsNow(),message={...current,labels:after.labels},previous={...current,labels:event.before?.labels??{}};for(let[target,copy]of Object.entries(copies))if(ours(target))try{await offer(keyOf(target),event,message,target,async renderer=>{let body=renderFor(target,message,actors,copy.files===null,renderer);body.markdown!==renderFor(target,previous,actors,copy.files===null,renderer).markdown&&await platformOf(keyOf(target)).edit(native(copy.thread),copy.message,body)})}catch(error){console.warn(`[board] skipped labels.changed on ${target}:`,describe(error))}}async function deliver(event,{attempt}){switch(event.type){case"thread.synced":return deliverThread(event,attempt);case"message.posted":return deliverPost(event,attempt);case"message.edited":case"message.deleted":case"reaction.added":case"reaction.removed":return deliverChange(event);case"labels.changed":return deliverLabels(event)}}async function typing(messages,status){let synced=messages[0]?await syncOf(messages[0].thread):null;if(!synced)return[];let externals=[...new Set(Object.values(synced.external))].filter(ours);return(await Promise.all(externals.map(async external=>{let key=keyOf(external);try{let platform=platformOf(key),latest=null;for(let i=messages.length-1;i>=0&&latest===null;i--){let origin=messages[i];!origin.deleted&&origin.origin?.thread===external&&(latest=origin.origin.message)}return await platform.startTyping(native(external),latest,status),external}catch(error){return console.warn(`[board] skipped typing on ${external}:`,describe(error)),null}}))).filter(external=>external!==null)}async function inboxChannel(key,channel){try{return`${key}:${await platformOf(key).resolveChannel(channel)}`}catch(error){throw badRequest(`can't resolve inbox channel: ${error.message}`)}}let unreadableStatus=code=>code==="unsupported"||code==="invalid_target"?400:code==="channel_not_found"?404:code==="ratelimited"?429:["no_client","list_failed","internal_error","fatal_error","service_unavailable","request_timeout"].includes(code)?502:403;async function readSource(key,target,limit,after){let platform=platformOf(key);try{return await platform.read(target,{limit,after})}catch(error){throw error instanceof UnreadableError?new HttpError(unreadableStatus(error.code),error.code,error.message):badRequest(`can't read ${target} from ${key}: ${describe(error)}`,"platform_error")}}async function joinSource(key,target){let platform=platformOf(key);try{return await platform.join(target)}catch(error){throw error instanceof UnreadableError?new HttpError(unreadableStatus(error.code),error.code,error.message):badRequest(`can't join ${target} on ${key}: ${describe(error)}`,"platform_error")}}return{entries,bind(next){bound=next},caller:me,deliver,receive:inbound,pull,normalizeTarget,findByEmail,handleWebhook,inboxChannel,signsIn,signIn,signedIn,redeemSignIn,typing,readSource,joinSource}}function lifecycleText(event){let head=event.url?`${event.title}
15
+ ${event.url}`:event.title;return event.body?`${head}
16
+
17
+ ${event.body}`:head}export{createSyncEngine};
@@ -4,7 +4,7 @@ import { dirname as __dirname_ } from 'node:path';
4
4
  const require = __createRequire(import.meta.url);
5
5
  const __filename = __fileURLToPath(import.meta.url);
6
6
  const __dirname = __dirname_(__filename);
7
- import{require_execa}from"./chunk-RCUDI7OF.js";import"./chunk-GD7AV7BO.js";import{require_dist as require_dist3}from"./chunk-JALVF3C2.js";import{require_lib}from"./chunk-LUX4PBJL.js";import"./chunk-OPORM35X.js";import{output_manager_default}from"./chunk-W634OFUG.js";import"./chunk-BLUPZPAS.js";import{require_build_utils}from"./chunk-5MDNVAE6.js";import{require_dist as require_dist2}from"./chunk-RM3ZDRYE.js";import"./chunk-YHPPP3SF.js";import"./chunk-2BKALEOP.js";import"./chunk-NB2WLB3J.js";import"./chunk-ISWW3DKF.js";import"./chunk-BULSRTQE.js";import"./chunk-BRQUZ5NC.js";import"./chunk-FBYA6LLM.js";import{toNodeReadable}from"./chunk-MY4MONOH.js";import"./chunk-SCV7XEEO.js";import{__commonJS as __commonJS2,__require,__toESM as __toESM3}from"./chunk-BZENIQ7N.js";var require_dist4=__commonJS2({"../../node_modules/.pnpm/@edge-runtime+node-utils@2.3.0/node_modules/@edge-runtime/node-utils/dist/index.js"(exports,module){"use strict";var __create2=Object.create,__defProp2=Object.defineProperty,__getOwnPropDesc2=Object.getOwnPropertyDescriptor,__getOwnPropNames2=Object.getOwnPropertyNames,__getProtoOf2=Object.getPrototypeOf,__hasOwnProp2=Object.prototype.hasOwnProperty,__commonJS=(cb,mod)=>function(){return mod||(0,cb[__getOwnPropNames2(cb)[0]])((mod={exports:{}}).exports,mod),mod.exports},__export2=(target,all)=>{for(var name in all)__defProp2(target,name,{get:all[name],enumerable:!0})},__copyProps2=(to,from,except,desc)=>{if(from&&typeof from=="object"||typeof from=="function")for(let key of __getOwnPropNames2(from))!__hasOwnProp2.call(to,key)&&key!==except&&__defProp2(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc2(from,key))||desc.enumerable});return to},__toESM2=(mod,isNodeMode,target)=>(target=mod!=null?__create2(__getProtoOf2(mod)):{},__copyProps2(isNodeMode||!mod||!mod.__esModule?__defProp2(target,"default",{value:mod,enumerable:!0}):target,mod)),__toCommonJS2=mod=>__copyProps2(__defProp2({},"__esModule",{value:!0}),mod),require_console_js_text=__commonJS({"../primitives/dist/console.js.text.js"(exports2,module2){"use strict";module2.exports=`"use strict";
7
+ import{require_execa}from"./chunk-RCUDI7OF.js";import"./chunk-GD7AV7BO.js";import{require_dist as require_dist3}from"./chunk-JALVF3C2.js";import{require_lib}from"./chunk-LUX4PBJL.js";import"./chunk-OPORM35X.js";import{output_manager_default}from"./chunk-GZLYNPNU.js";import"./chunk-BLUPZPAS.js";import{require_build_utils}from"./chunk-5MDNVAE6.js";import{require_dist as require_dist2}from"./chunk-RM3ZDRYE.js";import"./chunk-YHPPP3SF.js";import"./chunk-2BKALEOP.js";import"./chunk-NB2WLB3J.js";import"./chunk-ISWW3DKF.js";import"./chunk-BULSRTQE.js";import"./chunk-BRQUZ5NC.js";import"./chunk-FBYA6LLM.js";import{toNodeReadable}from"./chunk-MY4MONOH.js";import"./chunk-SCV7XEEO.js";import{__commonJS as __commonJS2,__require,__toESM as __toESM3}from"./chunk-BZENIQ7N.js";var require_dist4=__commonJS2({"../../node_modules/.pnpm/@edge-runtime+node-utils@2.3.0/node_modules/@edge-runtime/node-utils/dist/index.js"(exports,module){"use strict";var __create2=Object.create,__defProp2=Object.defineProperty,__getOwnPropDesc2=Object.getOwnPropertyDescriptor,__getOwnPropNames2=Object.getOwnPropertyNames,__getProtoOf2=Object.getPrototypeOf,__hasOwnProp2=Object.prototype.hasOwnProperty,__commonJS=(cb,mod)=>function(){return mod||(0,cb[__getOwnPropNames2(cb)[0]])((mod={exports:{}}).exports,mod),mod.exports},__export2=(target,all)=>{for(var name in all)__defProp2(target,name,{get:all[name],enumerable:!0})},__copyProps2=(to,from,except,desc)=>{if(from&&typeof from=="object"||typeof from=="function")for(let key of __getOwnPropNames2(from))!__hasOwnProp2.call(to,key)&&key!==except&&__defProp2(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc2(from,key))||desc.enumerable});return to},__toESM2=(mod,isNodeMode,target)=>(target=mod!=null?__create2(__getProtoOf2(mod)):{},__copyProps2(isNodeMode||!mod||!mod.__esModule?__defProp2(target,"default",{value:mod,enumerable:!0}):target,mod)),__toCommonJS2=mod=>__copyProps2(__defProp2({},"__esModule",{value:!0}),mod),require_console_js_text=__commonJS({"../primitives/dist/console.js.text.js"(exports2,module2){"use strict";module2.exports=`"use strict";
8
8
  var __create = Object.create;
9
9
  var __defProp = Object.defineProperty;
10
10
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
@@ -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{getRoutes,parseSubcommandArgs,withGlobalFlags}from"./chunk-TNNEKGGF.js";import{requireProjectContext}from"./chunk-KMPDQE4Q.js";import"./chunk-DX2OHM56.js";import"./chunk-6RUAAORO.js";import{exportSubcommand}from"./chunk-CZOD25BC.js";import"./chunk-Q4GX2UTG.js";import"./chunk-TZ6MSTOI.js";import{outputAgentError}from"./chunk-ZUI5EMXD.js";import"./chunk-FY4ORPZH.js";import"./chunk-KNAOHPOI.js";import"./chunk-64UCX5JM.js";import"./chunk-ITQPDXXA.js";import"./chunk-56UH6NQ3.js";import"./chunk-4NTBYNFR.js";import"./chunk-C4N4LKPM.js";import"./chunk-2VBFQZ72.js";import"./chunk-GJCVOEC2.js";import"./chunk-LUX4PBJL.js";import"./chunk-OPORM35X.js";import"./chunk-MXTC4ZAQ.js";import"./chunk-ZS2WS4AM.js";import"./chunk-4SAVH3H7.js";import"./chunk-T2FCF46I.js";import"./chunk-VRH7LWOC.js";import"./chunk-DBT6PGEH.js";import{output_manager_default}from"./chunk-W634OFUG.js";import"./chunk-BLUPZPAS.js";import"./chunk-5MDNVAE6.js";import"./chunk-OCR5CRTH.js";import"./chunk-RM3ZDRYE.js";import"./chunk-YHPPP3SF.js";import"./chunk-CKTLP5GX.js";import"./chunk-2BKALEOP.js";import"./chunk-NB2WLB3J.js";import"./chunk-ISWW3DKF.js";import"./chunk-BULSRTQE.js";import"./chunk-BRQUZ5NC.js";import"./chunk-D6REP5QQ.js";import"./chunk-FBYA6LLM.js";import"./chunk-MY4MONOH.js";import"./chunk-7EJQLVWX.js";import"./chunk-SCV7XEEO.js";import"./chunk-CFYTFXX6.js";import"./chunk-BZENIQ7N.js";function cleanRoute(route){let cleaned={};for(let[key,value]of Object.entries(route))value!==void 0&&(key==="middlewarePath"||key==="middlewareRawSrc"||key==="middleware"||key==="check"||key==="important"||(cleaned[key]=value));return cleaned}function routesToVercelJson(rules){let config={routes:rules.filter(r=>r.enabled!==!1).map(r=>cleanRoute(r.route))};return JSON.stringify(config,null,2)}function routesToVercelTs(rules){let routeEntries=rules.filter(r=>r.enabled!==!1).map(r=>{let cleaned=cleanRoute(r.route),indented=JSON.stringify(cleaned,null,2).split(`
7
+ import{getRoutes,parseSubcommandArgs,withGlobalFlags}from"./chunk-7LSH3MEB.js";import{requireProjectContext}from"./chunk-Q46Q4Y4R.js";import"./chunk-SR7BZA6N.js";import"./chunk-S535FZTA.js";import{exportSubcommand}from"./chunk-ECFLIVEE.js";import"./chunk-PKZK23PR.js";import"./chunk-DNLE3KPC.js";import{outputAgentError}from"./chunk-AUIV7YJO.js";import"./chunk-FYE7ILRR.js";import"./chunk-6NUH6ZPE.js";import"./chunk-PKNEWN4W.js";import"./chunk-ITQPDXXA.js";import"./chunk-PL6IOUKW.js";import"./chunk-4NTBYNFR.js";import"./chunk-US7YJ2RQ.js";import"./chunk-2VBFQZ72.js";import"./chunk-SDYCW5JM.js";import"./chunk-LUX4PBJL.js";import"./chunk-OPORM35X.js";import"./chunk-MXTC4ZAQ.js";import"./chunk-ZS2WS4AM.js";import"./chunk-4SAVH3H7.js";import"./chunk-T2FCF46I.js";import"./chunk-VRH7LWOC.js";import"./chunk-DBT6PGEH.js";import{output_manager_default}from"./chunk-GZLYNPNU.js";import"./chunk-BLUPZPAS.js";import"./chunk-5MDNVAE6.js";import"./chunk-OCR5CRTH.js";import"./chunk-RM3ZDRYE.js";import"./chunk-YHPPP3SF.js";import"./chunk-AMPJ6RWT.js";import"./chunk-2BKALEOP.js";import"./chunk-NB2WLB3J.js";import"./chunk-ISWW3DKF.js";import"./chunk-BULSRTQE.js";import"./chunk-BRQUZ5NC.js";import"./chunk-D6REP5QQ.js";import"./chunk-FBYA6LLM.js";import"./chunk-MY4MONOH.js";import"./chunk-7EJQLVWX.js";import"./chunk-SCV7XEEO.js";import"./chunk-JBU72NEQ.js";import"./chunk-BZENIQ7N.js";function cleanRoute(route){let cleaned={};for(let[key,value]of Object.entries(route))value!==void 0&&(key==="middlewarePath"||key==="middlewareRawSrc"||key==="middleware"||key==="check"||key==="important"||(cleaned[key]=value));return cleaned}function routesToVercelJson(rules){let config={routes:rules.filter(r=>r.enabled!==!1).map(r=>cleanRoute(r.route))};return JSON.stringify(config,null,2)}function routesToVercelTs(rules){let routeEntries=rules.filter(r=>r.enabled!==!1).map(r=>{let cleaned=cleanRoute(r.route),indented=JSON.stringify(cleaned,null,2).split(`
8
8
  `).map((line,i)=>i===0?line:` ${line}`).join(`
9
9
  `);return r.description?` // ${r.description.replace(/\n/g," ")}
10
10
  ${indented}`:` ${indented}`});return`import type { VercelConfig } from '@vercel/config/v1';
@@ -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{getSignupVerificationUrl,login,performDeviceCodeFlow,saveDeviceCodeTokens}from"./chunk-GPISCZ2P.js";import"./chunk-PVASGBEF.js";import"./chunk-BPRGAX62.js";import"./chunk-Q4GX2UTG.js";import"./chunk-VPUYTI5E.js";import"./chunk-2EYYB6YN.js";import"./chunk-NWGBDBZI.js";import"./chunk-ZUI5EMXD.js";import"./chunk-FY4ORPZH.js";import"./chunk-KNAOHPOI.js";import"./chunk-64UCX5JM.js";import"./chunk-ITQPDXXA.js";import"./chunk-56UH6NQ3.js";import"./chunk-4NTBYNFR.js";import"./chunk-C4N4LKPM.js";import"./chunk-2VBFQZ72.js";import"./chunk-GJCVOEC2.js";import"./chunk-LUX4PBJL.js";import"./chunk-OPORM35X.js";import"./chunk-MXTC4ZAQ.js";import"./chunk-ZS2WS4AM.js";import"./chunk-4SAVH3H7.js";import"./chunk-T2FCF46I.js";import"./chunk-VRH7LWOC.js";import"./chunk-DBT6PGEH.js";import"./chunk-W634OFUG.js";import"./chunk-BLUPZPAS.js";import"./chunk-5MDNVAE6.js";import"./chunk-OCR5CRTH.js";import"./chunk-RM3ZDRYE.js";import"./chunk-YHPPP3SF.js";import"./chunk-PUKYAALC.js";import"./chunk-CKTLP5GX.js";import"./chunk-2BKALEOP.js";import"./chunk-NB2WLB3J.js";import"./chunk-ISWW3DKF.js";import"./chunk-BULSRTQE.js";import"./chunk-BRQUZ5NC.js";import"./chunk-D6REP5QQ.js";import"./chunk-FBYA6LLM.js";import"./chunk-MY4MONOH.js";import"./chunk-7EJQLVWX.js";import"./chunk-SCV7XEEO.js";import"./chunk-CFYTFXX6.js";import"./chunk-BZENIQ7N.js";export{getSignupVerificationUrl,login,performDeviceCodeFlow,saveDeviceCodeTokens};
7
+ import{getSignupVerificationUrl,login,performDeviceCodeFlow,saveDeviceCodeTokens}from"./chunk-5MPZSRYG.js";import"./chunk-PVASGBEF.js";import"./chunk-BPRGAX62.js";import"./chunk-PKZK23PR.js";import"./chunk-MBXLL2HF.js";import"./chunk-2EYYB6YN.js";import"./chunk-NWGBDBZI.js";import"./chunk-AUIV7YJO.js";import"./chunk-FYE7ILRR.js";import"./chunk-6NUH6ZPE.js";import"./chunk-PKNEWN4W.js";import"./chunk-ITQPDXXA.js";import"./chunk-PL6IOUKW.js";import"./chunk-4NTBYNFR.js";import"./chunk-US7YJ2RQ.js";import"./chunk-2VBFQZ72.js";import"./chunk-SDYCW5JM.js";import"./chunk-LUX4PBJL.js";import"./chunk-OPORM35X.js";import"./chunk-MXTC4ZAQ.js";import"./chunk-ZS2WS4AM.js";import"./chunk-4SAVH3H7.js";import"./chunk-T2FCF46I.js";import"./chunk-VRH7LWOC.js";import"./chunk-DBT6PGEH.js";import"./chunk-GZLYNPNU.js";import"./chunk-BLUPZPAS.js";import"./chunk-5MDNVAE6.js";import"./chunk-OCR5CRTH.js";import"./chunk-RM3ZDRYE.js";import"./chunk-YHPPP3SF.js";import"./chunk-PUKYAALC.js";import"./chunk-AMPJ6RWT.js";import"./chunk-2BKALEOP.js";import"./chunk-NB2WLB3J.js";import"./chunk-ISWW3DKF.js";import"./chunk-BULSRTQE.js";import"./chunk-BRQUZ5NC.js";import"./chunk-D6REP5QQ.js";import"./chunk-FBYA6LLM.js";import"./chunk-MY4MONOH.js";import"./chunk-7EJQLVWX.js";import"./chunk-SCV7XEEO.js";import"./chunk-JBU72NEQ.js";import"./chunk-BZENIQ7N.js";export{getSignupVerificationUrl,login,performDeviceCodeFlow,saveDeviceCodeTokens};
@@ -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{createCertForCns,setupDomain}from"./chunk-3AX7ZZJ7.js";import"./chunk-DRLGZXAL.js";import{require_cjs}from"./chunk-VZGTL3YC.js";import"./chunk-22UXDTCE.js";import"./chunk-A2RZZQEP.js";import"./chunk-4VF5BZJP.js";import"./chunk-Q7D7RGXM.js";import"./chunk-3G3FQYMW.js";import"./chunk-TZ6MSTOI.js";import"./chunk-ZUI5EMXD.js";import"./chunk-FY4ORPZH.js";import"./chunk-KNAOHPOI.js";import"./chunk-64UCX5JM.js";import"./chunk-ITQPDXXA.js";import"./chunk-56UH6NQ3.js";import"./chunk-4NTBYNFR.js";import"./chunk-C4N4LKPM.js";import"./chunk-2VBFQZ72.js";import"./chunk-GJCVOEC2.js";import"./chunk-LUX4PBJL.js";import"./chunk-OPORM35X.js";import"./chunk-MXTC4ZAQ.js";import"./chunk-ZS2WS4AM.js";import"./chunk-4SAVH3H7.js";import{InvalidDomain,NowError}from"./chunk-T2FCF46I.js";import"./chunk-VRH7LWOC.js";import"./chunk-DBT6PGEH.js";import{output_manager_default}from"./chunk-W634OFUG.js";import"./chunk-BLUPZPAS.js";import"./chunk-5MDNVAE6.js";import"./chunk-OCR5CRTH.js";import"./chunk-RM3ZDRYE.js";import"./chunk-YHPPP3SF.js";import"./chunk-CKTLP5GX.js";import"./chunk-2BKALEOP.js";import"./chunk-NB2WLB3J.js";import"./chunk-ISWW3DKF.js";import"./chunk-BULSRTQE.js";import"./chunk-BRQUZ5NC.js";import"./chunk-D6REP5QQ.js";import"./chunk-FBYA6LLM.js";import"./chunk-MY4MONOH.js";import"./chunk-7EJQLVWX.js";import"./chunk-SCV7XEEO.js";import"./chunk-CFYTFXX6.js";import{__toESM}from"./chunk-BZENIQ7N.js";var import_tldts=__toESM(require_cjs(),1);async function generateCertForDeploy(client,contextName,deployURL){let parsedDomain=(0,import_tldts.parse)(deployURL),{domain}=parsedDomain;if(!domain)return new InvalidDomain(deployURL);output_manager_default.spinner(`Setting custom suffix domain ${domain}`);let result=await setupDomain(client,domain,contextName);if(output_manager_default.stopSpinner(),result instanceof NowError)return result;output_manager_default.spinner(`Generating a wildcard certificate for ${domain}`);let cert=await createCertForCns(client,[domain,`*.${domain}`],contextName);if(output_manager_default.stopSpinner(),cert instanceof NowError)return cert}export{generateCertForDeploy as default};
7
+ import{createCertForCns,setupDomain}from"./chunk-3PKL2PTF.js";import"./chunk-BIRSJSAO.js";import{require_cjs}from"./chunk-N5AN4JZL.js";import"./chunk-NZRBJB6T.js";import"./chunk-A2RZZQEP.js";import"./chunk-4VF5BZJP.js";import"./chunk-Q7D7RGXM.js";import"./chunk-3G3FQYMW.js";import"./chunk-DNLE3KPC.js";import"./chunk-AUIV7YJO.js";import"./chunk-FYE7ILRR.js";import"./chunk-6NUH6ZPE.js";import"./chunk-PKNEWN4W.js";import"./chunk-ITQPDXXA.js";import"./chunk-PL6IOUKW.js";import"./chunk-4NTBYNFR.js";import"./chunk-US7YJ2RQ.js";import"./chunk-2VBFQZ72.js";import"./chunk-SDYCW5JM.js";import"./chunk-LUX4PBJL.js";import"./chunk-OPORM35X.js";import"./chunk-MXTC4ZAQ.js";import"./chunk-ZS2WS4AM.js";import"./chunk-4SAVH3H7.js";import{InvalidDomain,NowError}from"./chunk-T2FCF46I.js";import"./chunk-VRH7LWOC.js";import"./chunk-DBT6PGEH.js";import{output_manager_default}from"./chunk-GZLYNPNU.js";import"./chunk-BLUPZPAS.js";import"./chunk-5MDNVAE6.js";import"./chunk-OCR5CRTH.js";import"./chunk-RM3ZDRYE.js";import"./chunk-YHPPP3SF.js";import"./chunk-AMPJ6RWT.js";import"./chunk-2BKALEOP.js";import"./chunk-NB2WLB3J.js";import"./chunk-ISWW3DKF.js";import"./chunk-BULSRTQE.js";import"./chunk-BRQUZ5NC.js";import"./chunk-D6REP5QQ.js";import"./chunk-FBYA6LLM.js";import"./chunk-MY4MONOH.js";import"./chunk-7EJQLVWX.js";import"./chunk-SCV7XEEO.js";import"./chunk-JBU72NEQ.js";import{__toESM}from"./chunk-BZENIQ7N.js";var import_tldts=__toESM(require_cjs(),1);async function generateCertForDeploy(client,contextName,deployURL){let parsedDomain=(0,import_tldts.parse)(deployURL),{domain}=parsedDomain;if(!domain)return new InvalidDomain(deployURL);output_manager_default.spinner(`Setting custom suffix domain ${domain}`);let result=await setupDomain(client,domain,contextName);if(output_manager_default.stopSpinner(),result instanceof NowError)return result;output_manager_default.spinner(`Generating a wildcard certificate for ${domain}`);let cert=await createCertForCns(client,[domain,`*.${domain}`],contextName);if(output_manager_default.stopSpinner(),cert instanceof NowError)return cert}export{generateCertForDeploy as default};
@@ -0,0 +1,7 @@
1
+ import { createRequire as __createRequire } from 'node:module';
2
+ import { fileURLToPath as __fileURLToPath } from 'node:url';
3
+ import { dirname as __dirname_ } from 'node:path';
4
+ const require = __createRequire(import.meta.url);
5
+ const __filename = __fileURLToPath(import.meta.url);
6
+ const __dirname = __dirname_(__filename);
7
+ import{getInvalidSubcommand}from"./chunk-TG2RCYTH.js";import{getSubcommand}from"./chunk-ETV3C2CV.js";import{getCommandAliases}from"./chunk-ZIC7VWFC.js";import"./chunk-M3Z6NSC2.js";import"./chunk-IHTWZEQW.js";import"./chunk-ECFLIVEE.js";import"./chunk-WTFD4MDT.js";import"./chunk-SNGM6NSO.js";import"./chunk-P24YBQ6H.js";import"./chunk-NMIZSQDN.js";import"./chunk-K7ARJYAG.js";import{imageRmSubcommand}from"./chunk-V5TOMLK4.js";import"./chunk-M3R7F2N4.js";import"./chunk-4E6BGQWR.js";import"./chunk-6UMVJ7RL.js";import"./chunk-IIGNDMLO.js";import"./chunk-N65H4JMJ.js";import"./chunk-EJN55YDV.js";import"./chunk-5DXC4TE2.js";import"./chunk-4U6ACPA4.js";import"./chunk-7VGBGUX7.js";import"./chunk-CU3LNJZV.js";import"./chunk-JALVF3C2.js";import"./chunk-BZIC36KP.js";import"./chunk-OYIDWI5Y.js";import{buildCommandWithGlobalFlags,outputAgentError}from"./chunk-AUIV7YJO.js";import"./chunk-FYE7ILRR.js";import"./chunk-2VBFQZ72.js";import{warnDeprecatedSubcommand}from"./chunk-SDYCW5JM.js";import"./chunk-T2FCF46I.js";import"./chunk-VRH7LWOC.js";import"./chunk-DBT6PGEH.js";import{output_manager_default}from"./chunk-GZLYNPNU.js";import"./chunk-BLUPZPAS.js";import"./chunk-5MDNVAE6.js";import"./chunk-RM3ZDRYE.js";import"./chunk-YHPPP3SF.js";import"./chunk-PUKYAALC.js";import"./chunk-AMPJ6RWT.js";import"./chunk-2BKALEOP.js";import"./chunk-NB2WLB3J.js";import"./chunk-ISWW3DKF.js";import"./chunk-BULSRTQE.js";import"./chunk-BRQUZ5NC.js";import{AGENT_REASON}from"./chunk-JBU72NEQ.js";import"./chunk-BZENIQ7N.js";var IMAGE_CONFIG={ls:["ls","list"],inspect:["inspect","get"],delete:getCommandAliases(imageRmSubcommand)};async function image(client,argv,telemetry){let{subcommand,args,subcommandOriginal}=getSubcommand(argv,IMAGE_CONFIG);if(subcommand==null){let message=argv.length===0?getInvalidSubcommand(IMAGE_CONFIG):`Unknown "vcr image" subcommand "${argv[0]}".`;return outputAgentError(client,{status:"error",reason:AGENT_REASON.INVALID_ARGUMENTS,message,next:[{command:buildCommandWithGlobalFlags(client.argv,"vcr image --help"),when:"Show valid image subcommands"}]},2),output_manager_default.error(`${message} Run \`vercel vcr image --help\`.`),2}switch(subcommand){case"ls":return(await import("./ls-5SKRXNSI.js")).default(client,args,telemetry);case"inspect":return subcommandOriginal==="get"&&warnDeprecatedSubcommand(client,"vcr image get","vcr image inspect"),(await import("./inspect-AHHXHIIP.js")).default(client,args,telemetry);case"delete":return subcommandOriginal==="remove"&&warnDeprecatedSubcommand(client,"vcr image remove","vcr image delete"),(await import("./rm-M3EMCKSN.js")).default(client,args,telemetry);default:return output_manager_default.error(`Unhandled image subcommand: ${subcommand}`),1}}export{image as default};
@@ -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{getVltPreloadState,importBuilders,import_import_builders,preloadVltBuilderImports}from"./chunk-7UFI6OYF.js";import"./chunk-4CACOKMS.js";import"./chunk-NIS66BFX.js";import"./chunk-6Y2ZL5XJ.js";import"./chunk-5I7CC45F.js";import"./chunk-BPUANOGW.js";import"./chunk-FQVIWQ6M.js";import"./chunk-25565AGS.js";import"./chunk-RCUDI7OF.js";import"./chunk-GD7AV7BO.js";import"./chunk-NWGBDBZI.js";import"./chunk-KNAOHPOI.js";import"./chunk-64UCX5JM.js";import"./chunk-ITQPDXXA.js";import"./chunk-56UH6NQ3.js";import"./chunk-4NTBYNFR.js";import"./chunk-C4N4LKPM.js";import"./chunk-2VBFQZ72.js";import"./chunk-GJCVOEC2.js";import"./chunk-LUX4PBJL.js";import"./chunk-OPORM35X.js";import"./chunk-MXTC4ZAQ.js";import"./chunk-ZS2WS4AM.js";import"./chunk-4SAVH3H7.js";import"./chunk-T2FCF46I.js";import"./chunk-VRH7LWOC.js";import"./chunk-DBT6PGEH.js";import"./chunk-W634OFUG.js";import"./chunk-BLUPZPAS.js";import"./chunk-5MDNVAE6.js";import"./chunk-OCR5CRTH.js";import"./chunk-RM3ZDRYE.js";import"./chunk-YHPPP3SF.js";import"./chunk-CKTLP5GX.js";import"./chunk-2BKALEOP.js";import"./chunk-NB2WLB3J.js";import"./chunk-ISWW3DKF.js";import"./chunk-BULSRTQE.js";import"./chunk-BRQUZ5NC.js";import"./chunk-D6REP5QQ.js";import"./chunk-FBYA6LLM.js";import"./chunk-MY4MONOH.js";import"./chunk-7EJQLVWX.js";import"./chunk-SCV7XEEO.js";import"./chunk-BZENIQ7N.js";var export_formatResolvedBuilders=import_import_builders.formatResolvedBuilders;var export_getBuildersDir=import_import_builders.getBuildersDir;export{export_formatResolvedBuilders as formatResolvedBuilders,export_getBuildersDir as getBuildersDir,getVltPreloadState,importBuilders,preloadVltBuilderImports};
7
+ import{getVltPreloadState,importBuilders,import_import_builders,preloadVltBuilderImports}from"./chunk-FOWAVQOH.js";import"./chunk-4CACOKMS.js";import"./chunk-NIS66BFX.js";import"./chunk-6Y2ZL5XJ.js";import"./chunk-SBEWZ65N.js";import"./chunk-BPUANOGW.js";import"./chunk-UQNBUXQA.js";import"./chunk-25565AGS.js";import"./chunk-RCUDI7OF.js";import"./chunk-GD7AV7BO.js";import"./chunk-NWGBDBZI.js";import"./chunk-6NUH6ZPE.js";import"./chunk-PKNEWN4W.js";import"./chunk-ITQPDXXA.js";import"./chunk-PL6IOUKW.js";import"./chunk-4NTBYNFR.js";import"./chunk-US7YJ2RQ.js";import"./chunk-2VBFQZ72.js";import"./chunk-SDYCW5JM.js";import"./chunk-LUX4PBJL.js";import"./chunk-OPORM35X.js";import"./chunk-MXTC4ZAQ.js";import"./chunk-ZS2WS4AM.js";import"./chunk-4SAVH3H7.js";import"./chunk-T2FCF46I.js";import"./chunk-VRH7LWOC.js";import"./chunk-DBT6PGEH.js";import"./chunk-GZLYNPNU.js";import"./chunk-BLUPZPAS.js";import"./chunk-5MDNVAE6.js";import"./chunk-OCR5CRTH.js";import"./chunk-RM3ZDRYE.js";import"./chunk-YHPPP3SF.js";import"./chunk-AMPJ6RWT.js";import"./chunk-2BKALEOP.js";import"./chunk-NB2WLB3J.js";import"./chunk-ISWW3DKF.js";import"./chunk-BULSRTQE.js";import"./chunk-BRQUZ5NC.js";import"./chunk-D6REP5QQ.js";import"./chunk-FBYA6LLM.js";import"./chunk-MY4MONOH.js";import"./chunk-7EJQLVWX.js";import"./chunk-SCV7XEEO.js";import"./chunk-BZENIQ7N.js";var export_formatResolvedBuilders=import_import_builders.formatResolvedBuilders;var export_getBuildersDir=import_import_builders.getBuildersDir;export{export_formatResolvedBuilders as formatResolvedBuilders,export_getBuildersDir as getBuildersDir,getVltPreloadState,importBuilders,preloadVltBuilderImports};