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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (271) hide show
  1. package/dist/chunks/add-A3SN7KWS.js +8 -0
  2. package/dist/chunks/add-RFPJCD35.js +8 -0
  3. package/dist/chunks/add-TOKTANDW.js +8 -0
  4. package/dist/chunks/build-25I6XOV7.js +7 -0
  5. package/dist/chunks/{chunk-5M3WBT3N.js → chunk-22UXDTCE.js} +1 -1
  6. package/dist/chunks/chunk-2AMO2VMV.js +68 -0
  7. package/dist/chunks/{chunk-U6KJOCXX.js → chunk-2DHDKWYN.js} +1 -1
  8. package/dist/chunks/chunk-2EFBGKRC.js +8 -0
  9. package/dist/chunks/{chunk-UOQGI6CL.js → chunk-2HLYY3KF.js} +1 -1
  10. package/dist/chunks/{chunk-7PGGP2QT.js → chunk-2JCJP43W.js} +1 -1
  11. package/dist/chunks/chunk-2VBFQZ72.js +7 -0
  12. package/dist/chunks/{chunk-EXLKCL5I.js → chunk-3AX7ZZJ7.js} +1 -1
  13. package/dist/chunks/{chunk-CMHL66LK.js → chunk-3F5BOG4A.js} +1 -1
  14. package/dist/chunks/chunk-3PXE5BLH.js +7 -0
  15. package/dist/chunks/{chunk-BZNRYQ6U.js → chunk-3WYSEF57.js} +1 -1
  16. package/dist/chunks/{chunk-EW62WSXG.js → chunk-4JWAXIIN.js} +1 -1
  17. package/dist/chunks/{chunk-R5ZLTWKB.js → chunk-4LGAV2WN.js} +1 -1
  18. package/dist/chunks/{chunk-7WY7ASKE.js → chunk-56UH6NQ3.js} +1 -1
  19. package/dist/chunks/{chunk-MXURT5TX.js → chunk-5I7CC45F.js} +1 -1
  20. package/dist/chunks/{chunk-QQA2OMXJ.js → chunk-5KE67O45.js} +1 -1
  21. package/dist/chunks/{chunk-4XJVEKTD.js → chunk-6AJWRPTY.js} +1 -1
  22. package/dist/chunks/{chunk-EBBDSEEU.js → chunk-6RUAAORO.js} +1 -1
  23. package/dist/chunks/{chunk-TRZDIAX3.js → chunk-77LSSWXL.js} +1 -1
  24. package/dist/chunks/{chunk-2JXQWOK5.js → chunk-7UFI6OYF.js} +1 -1
  25. package/dist/chunks/{chunk-EVH5524J.js → chunk-7ULLVH2G.js} +1 -1
  26. package/dist/chunks/{chunk-GHEGWXH2.js → chunk-ANCWFEOM.js} +1 -1
  27. package/dist/chunks/{chunk-7ULVGK67.js → chunk-BB5UMZMF.js} +1 -1
  28. package/dist/chunks/{chunk-4Z3APEBF.js → chunk-BJXLR2RE.js} +1 -1
  29. package/dist/chunks/{chunk-Y6WXTTZS.js → chunk-BPRGAX62.js} +1 -1
  30. package/dist/chunks/{chunk-G6HUSV7F.js → chunk-BZV2S4H6.js} +1 -1
  31. package/dist/chunks/{chunk-QY5RG6BB.js → chunk-C24IKNZN.js} +1 -1
  32. package/dist/chunks/chunk-C4N4LKPM.js +7 -0
  33. package/dist/chunks/chunk-CFYTFXX6.js +7 -0
  34. package/dist/chunks/chunk-CKTLP5GX.js +7 -0
  35. package/dist/chunks/{chunk-GCPPL24C.js → chunk-CUBRYWA2.js} +1 -1
  36. package/dist/chunks/{chunk-M73W4XNR.js → chunk-CZOD25BC.js} +1 -1
  37. package/dist/chunks/{chunk-UIJYRI3G.js → chunk-DBPN2VGJ.js} +1 -1
  38. package/dist/chunks/{chunk-IFCMWIRB.js → chunk-DRLGZXAL.js} +1 -1
  39. package/dist/chunks/{chunk-QKWJN6OE.js → chunk-DX2OHM56.js} +1 -1
  40. package/dist/chunks/{chunk-XBWISZCG.js → chunk-EJ34DLV4.js} +1 -1
  41. package/dist/chunks/{chunk-T5TOBY4D.js → chunk-EJZNJN4N.js} +1 -1
  42. package/dist/chunks/{chunk-TMXIVQ45.js → chunk-F2LNGJOZ.js} +1 -1
  43. package/dist/chunks/{chunk-G3LWP5CH.js → chunk-FAVZ6WVS.js} +1 -1
  44. package/dist/chunks/{chunk-D4ZEJM3T.js → chunk-FI5O4WHD.js} +1 -1
  45. package/dist/chunks/{chunk-UVE5COCG.js → chunk-FOQD62WW.js} +1 -1
  46. package/dist/chunks/{chunk-PBX7RJ2K.js → chunk-FPYHB76H.js} +1 -1
  47. package/dist/chunks/{chunk-4SJU5QSD.js → chunk-FQVIWQ6M.js} +1 -1
  48. package/dist/chunks/chunk-FTACGWII.js +14 -0
  49. package/dist/chunks/{chunk-FWTBSC7Z.js → chunk-FY4ORPZH.js} +1 -1
  50. package/dist/chunks/{chunk-VBKFCR5W.js → chunk-G5T6UQAL.js} +1 -1
  51. package/dist/chunks/chunk-G7H33IKQ.js +10 -0
  52. package/dist/chunks/{chunk-33U57CNE.js → chunk-GKALP6QD.js} +1 -1
  53. package/dist/chunks/{chunk-WGWGDC3N.js → chunk-GPISCZ2P.js} +1 -1
  54. package/dist/chunks/{chunk-DUPAU76G.js → chunk-HJ45TAM4.js} +1 -1
  55. package/dist/chunks/chunk-HR462OEG.js +10 -0
  56. package/dist/chunks/{chunk-JOXGYP5S.js → chunk-JVNIDSP5.js} +1 -1
  57. package/dist/chunks/chunk-KMPDQE4Q.js +7 -0
  58. package/dist/chunks/{chunk-OZPBJWYU.js → chunk-KNAOHPOI.js} +8 -8
  59. package/dist/chunks/{chunk-4OTI552J.js → chunk-KWXJIVBG.js} +1 -1
  60. package/dist/chunks/{chunk-QJAIUZVZ.js → chunk-L4QQTYUI.js} +5 -5
  61. package/dist/chunks/{chunk-43P35KUA.js → chunk-L6CZL2IQ.js} +1 -1
  62. package/dist/chunks/{chunk-6RCFEJZK.js → chunk-LC4BSDDG.js} +1 -1
  63. package/dist/chunks/{chunk-ZERZX6BZ.js → chunk-LQAQD5LG.js} +2 -2
  64. package/dist/chunks/{chunk-2DODPQ5J.js → chunk-MBL7MWP5.js} +1 -1
  65. package/dist/chunks/{chunk-VZKQP67Q.js → chunk-MKYFAYCD.js} +1 -1
  66. package/dist/chunks/{chunk-D2JHIOVH.js → chunk-MOF4QNZH.js} +1 -1
  67. package/dist/chunks/{chunk-32AS5X7G.js → chunk-MUNGQJGO.js} +1 -1
  68. package/dist/chunks/{chunk-UZTDRGCW.js → chunk-NAEY6HG5.js} +1 -1
  69. package/dist/chunks/{chunk-E5CN62HO.js → chunk-NAJCRBQB.js} +1 -1
  70. package/dist/chunks/{chunk-GN5IAG3M.js → chunk-NGHFFOD2.js} +1 -1
  71. package/dist/chunks/{chunk-4BZ3DNGM.js → chunk-NLKM5LR5.js} +1 -1
  72. package/dist/chunks/{chunk-NEUQZYBL.js → chunk-PMEYNJU2.js} +1 -1
  73. package/dist/chunks/{chunk-5K4UTJSY.js → chunk-PXQAWH7E.js} +1 -1
  74. package/dist/chunks/{chunk-SNCQOAFU.js → chunk-Q25FOMOX.js} +1 -1
  75. package/dist/chunks/{chunk-BWS3ZOHJ.js → chunk-Q4GX2UTG.js} +1 -1
  76. package/dist/chunks/{chunk-CBVVVYUP.js → chunk-QCIIUQV3.js} +1 -1
  77. package/dist/chunks/chunk-QGZZL6YY.js +7 -0
  78. package/dist/chunks/{chunk-GCXUSXB4.js → chunk-QVMU7ZKQ.js} +1 -1
  79. package/dist/chunks/{chunk-DASHFOKO.js → chunk-QXYCICNB.js} +1 -1
  80. package/dist/chunks/{chunk-ZGKJLJ47.js → chunk-R2P4PNRQ.js} +1 -1
  81. package/dist/chunks/{chunk-Y5YXAXK3.js → chunk-R3D4M5RE.js} +1 -1
  82. package/dist/chunks/{chunk-H34SGIVS.js → chunk-S5JBQCBA.js} +1 -1
  83. package/dist/chunks/chunk-SHY7P3C6.js +10 -0
  84. package/dist/chunks/{chunk-QBOY2CXL.js → chunk-SODZSOOL.js} +1 -1
  85. package/dist/chunks/{chunk-TGPYWWX3.js → chunk-SXEOJSZQ.js} +1 -1
  86. package/dist/chunks/{chunk-KV2DYFUG.js → chunk-T7HE23VK.js} +1 -1
  87. package/dist/chunks/{chunk-2H4DUZJZ.js → chunk-TL4ZLZ2Q.js} +1 -1
  88. package/dist/chunks/{chunk-DUJAQS7I.js → chunk-TNNEKGGF.js} +1 -1
  89. package/dist/chunks/{chunk-USYEDO7R.js → chunk-TNUQME3L.js} +1 -1
  90. package/dist/chunks/chunk-TZ6MSTOI.js +7 -0
  91. package/dist/chunks/chunk-U6XJYQJS.js +7 -0
  92. package/dist/chunks/chunk-UWJ3UPS5.js +11 -0
  93. package/dist/chunks/chunk-V32V4SXB.js +7 -0
  94. package/dist/chunks/{chunk-ECQKK4JU.js → chunk-VD2FK6OF.js} +1 -1
  95. package/dist/chunks/chunk-VPUYTI5E.js +25 -0
  96. package/dist/chunks/{chunk-2JNDJISE.js → chunk-VYRMHE34.js} +1 -1
  97. package/dist/chunks/{chunk-WFOJ2LEA.js → chunk-VZGTL3YC.js} +1 -1
  98. package/dist/chunks/{chunk-ZBZPCKTW.js → chunk-W5GHMAHP.js} +1 -1
  99. package/dist/chunks/{chunk-ZCXKEZS4.js → chunk-WHUZRBYL.js} +1 -1
  100. package/dist/chunks/{chunk-BRETAWE7.js → chunk-XEXOSJIU.js} +1 -1
  101. package/dist/chunks/{chunk-JMAXX2I6.js → chunk-XGOELSYA.js} +1 -1
  102. package/dist/chunks/{chunk-TCB4XM23.js → chunk-Y57DK3ZN.js} +1 -1
  103. package/dist/chunks/{chunk-WKYFWE37.js → chunk-YO6SJCZP.js} +1 -1
  104. package/dist/chunks/chunk-YOWMZJPA.js +7 -0
  105. package/dist/chunks/{chunk-EDOTKQ7L.js → chunk-ZGQNI22M.js} +1 -1
  106. package/dist/chunks/chunk-ZUI5EMXD.js +11 -0
  107. package/dist/chunks/clear-B764MEAM.js +8 -0
  108. package/dist/chunks/{compile-vercel-config-DRTOWZK6.js → compile-vercel-config-EWCB7SIC.js} +1 -1
  109. package/dist/chunks/{config-MNRKCDQA.js → config-CW4JO67Q.js} +1 -1
  110. package/dist/chunks/config-D4WY2HG4.js +8 -0
  111. package/dist/chunks/delete-SKYFHUWD.js +10 -0
  112. package/dist/chunks/delete-W3GMFAKA.js +9 -0
  113. package/dist/chunks/{detect-services-GXKWIX52.js → detect-services-3TRRRLES.js} +1 -1
  114. package/dist/chunks/disable-EBPZ2LYC.js +7 -0
  115. package/dist/chunks/discard-SMVPENSP.js +14 -0
  116. package/dist/chunks/edit-A3M3GBGP.js +8 -0
  117. package/dist/chunks/edit-CGTNGJKY.js +9 -0
  118. package/dist/chunks/enable-6A5THWDP.js +7 -0
  119. package/dist/chunks/{export-N5F7EY7B.js → export-R5IUWAW5.js} +1 -1
  120. package/dist/chunks/future-CPJUUZTU.js +7 -0
  121. package/dist/chunks/generate-cert-for-deploy-Z3HCAR5H.js +7 -0
  122. package/dist/chunks/image-VNSN2SKE.js +7 -0
  123. package/dist/chunks/{import-builders-OAGJKQNW.js → import-builders-GPJQAMXT.js} +1 -1
  124. package/dist/chunks/{inspect-UDUI3ETL.js → inspect-6FEL5DYV.js} +1 -1
  125. package/dist/chunks/inspect-BO2ACFEG.js +13 -0
  126. package/dist/chunks/{inspect-35WHAXL2.js → inspect-TEPB7KVC.js} +1 -1
  127. package/dist/chunks/inspect-WC2C4MDP.js +9 -0
  128. package/dist/chunks/{inspect-GX34WQGR.js → inspect-WWOHWQKS.js} +1 -1
  129. package/dist/chunks/{list-VVND632B.js → list-4KSJEP23.js} +1 -1
  130. package/dist/chunks/{list-BINT67HQ.js → list-C5GUZ35P.js} +1 -1
  131. package/dist/chunks/list-EZWZSVM4.js +12 -0
  132. package/dist/chunks/login-PDZT4PQR.js +7 -0
  133. package/dist/chunks/login-ZNCCVA4H.js +9 -0
  134. package/dist/chunks/logs-YKQMUTMG.js +7 -0
  135. package/dist/chunks/{ls-2MJY6EKD.js → ls-3HUS6KS6.js} +1 -1
  136. package/dist/chunks/ls-KQJYKADC.js +8 -0
  137. package/dist/chunks/{ls-7OZ5TSNW.js → ls-LYVPEIIT.js} +1 -1
  138. package/dist/chunks/{ls-6HYUGM62.js → ls-RBPRE6BF.js} +1 -1
  139. package/dist/chunks/{ls-YT3MWU4U.js → ls-TASQJDLF.js} +1 -1
  140. package/dist/chunks/{ls-HTNWWU45.js → ls-WX4BJRDV.js} +1 -1
  141. package/dist/chunks/ls-ZP7OBTTV.js +11 -0
  142. package/dist/chunks/mutate-5N6DMBYS.js +9 -0
  143. package/dist/chunks/{native-self-update-75UJCHGZ.js → native-self-update-7OAY4AVR.js} +1 -1
  144. package/dist/chunks/notifications-OVFMQLHL.js +7 -0
  145. package/dist/chunks/open-DOBOKUEK.js +7 -0
  146. package/dist/chunks/{openapi-KYC6JIXI.js → openapi-YAZA3237.js} +1 -1
  147. package/dist/chunks/permissions-PHCOVDWK.js +7 -0
  148. package/dist/chunks/{plugin-offer-URT5JNEU.js → plugin-offer-M7KJSJU6.js} +1 -1
  149. package/dist/chunks/prompt-missing-credentials-RTNCHH6Y.js +7 -0
  150. package/dist/chunks/{publish-LH5CIXCP.js → publish-JIFRJNDV.js} +1 -1
  151. package/dist/chunks/pull-HLJSW3W4.js +7 -0
  152. package/dist/chunks/purchase-domain-if-available-3EBONBX3.js +7 -0
  153. package/dist/chunks/push-ZN6CBJLJ.js +7 -0
  154. package/dist/chunks/{query-POTX2HYL.js → query-MT6ID6C7.js} +1 -1
  155. package/dist/chunks/reauthenticate-OXFB64PS.js +7 -0
  156. package/dist/chunks/reorder-N2L43LXD.js +10 -0
  157. package/dist/chunks/reply-WBR3XXBJ.js +9 -0
  158. package/dist/chunks/resolve-NMR24Y67.js +12 -0
  159. package/dist/chunks/resolve-agent-team-KRTLBC5D.js +7 -0
  160. package/dist/chunks/{restore-L3T5KOG7.js → restore-AKAVSLAK.js} +1 -1
  161. package/dist/chunks/rm-DGMHU3CU.js +8 -0
  162. package/dist/chunks/rm-ERBTFH3G.js +8 -0
  163. package/dist/chunks/rm-H2T7HB3F.js +8 -0
  164. package/dist/chunks/rm-Q3ZXEMGI.js +8 -0
  165. package/dist/chunks/rm-TNGYCAFJ.js +8 -0
  166. package/dist/chunks/{routes-S75L7Z7A.js → routes-4WGST7VN.js} +1 -1
  167. package/dist/chunks/rule-inspect-ZVHPS2PL.js +8 -0
  168. package/dist/chunks/{schema-P4T4GQBF.js → schema-TSHU5NN6.js} +1 -1
  169. package/dist/chunks/{schema-TOVLKRPJ.js → schema-YUXTIJSB.js} +1 -1
  170. package/dist/chunks/select-org-35NFUKXO.js +7 -0
  171. package/dist/chunks/set-PP5K4NBO.js +7 -0
  172. package/dist/chunks/setup-and-link-ACSPPTME.js +7 -0
  173. package/dist/chunks/{skills-DZYJV7BE.js → skills-X5TPVYXW.js} +1 -1
  174. package/dist/chunks/{statuspage-45LJ2XYT.js → statuspage-KHTMA4WL.js} +1 -1
  175. package/dist/chunks/tags-6QB3FP3B.js +7 -0
  176. package/dist/chunks/{types-YA6BOCRV.js → types-SENK43U4.js} +1 -1
  177. package/dist/chunks/{update-YSAO36V7.js → update-QA3NLSTV.js} +1 -1
  178. package/dist/chunks/zod-Y3ZBY67C.js +7 -0
  179. package/dist/commands/build/index.js +1 -1
  180. package/dist/commands/deploy/index.js +30 -23
  181. package/dist/commands/dev/index.js +2 -2
  182. package/dist/commands/env/index.js +1 -1
  183. package/dist/commands/link/index.js +1 -1
  184. package/dist/commands/list/index.js +1 -1
  185. package/dist/commands/project/index.js +7 -7
  186. package/dist/commands-account.js +18 -3
  187. package/dist/commands-ai.js +2 -2
  188. package/dist/commands-blob.js +1 -1
  189. package/dist/commands-core.js +6 -6
  190. package/dist/commands-deployments.js +5 -3
  191. package/dist/commands-flags.js +7 -9
  192. package/dist/commands-integrations.js +1 -1
  193. package/dist/commands-observability.js +5 -5
  194. package/dist/commands-routing.js +2 -2
  195. package/dist/help.js +1 -1
  196. package/dist/index.js +4 -4
  197. package/dist/internal-build-worker.js +1 -1
  198. package/dist/internal-build.js +1 -1
  199. package/dist/launcher-errors.js +11 -0
  200. package/dist/native-download.js +1 -1
  201. package/dist/package.json +29 -29
  202. package/dist/vc.js +355 -86
  203. package/dist/version.mjs +1 -1
  204. package/package.json +22 -22
  205. package/dist/chunks/add-6YFDZCAK.js +0 -8
  206. package/dist/chunks/add-QDZPCCUD.js +0 -8
  207. package/dist/chunks/add-Z24IIQDY.js +0 -8
  208. package/dist/chunks/build-HLU4YO37.js +0 -7
  209. package/dist/chunks/chunk-2CSCY66I.js +0 -11
  210. package/dist/chunks/chunk-2NABMKFV.js +0 -29
  211. package/dist/chunks/chunk-2TRNHR72.js +0 -7
  212. package/dist/chunks/chunk-32NXYHYC.js +0 -10
  213. package/dist/chunks/chunk-4CQKN5TW.js +0 -10
  214. package/dist/chunks/chunk-7DM3IJ7L.js +0 -10
  215. package/dist/chunks/chunk-AUCTNGW2.js +0 -7
  216. package/dist/chunks/chunk-C6525MLX.js +0 -10
  217. package/dist/chunks/chunk-CGTD4QFC.js +0 -7
  218. package/dist/chunks/chunk-DSNIVABS.js +0 -7
  219. package/dist/chunks/chunk-F53OKXYI.js +0 -7
  220. package/dist/chunks/chunk-K5YO4UD7.js +0 -7
  221. package/dist/chunks/chunk-NAU6URTI.js +0 -25
  222. package/dist/chunks/chunk-NNIQPNGP.js +0 -7
  223. package/dist/chunks/chunk-NTUDWWSL.js +0 -14
  224. package/dist/chunks/chunk-RZY54T7B.js +0 -7
  225. package/dist/chunks/chunk-SR2SHYJA.js +0 -7
  226. package/dist/chunks/chunk-WGVIQTOI.js +0 -8
  227. package/dist/chunks/chunk-YPPDRKVC.js +0 -7
  228. package/dist/chunks/clear-RU72IUXU.js +0 -8
  229. package/dist/chunks/config-PIFTR3UF.js +0 -8
  230. package/dist/chunks/delete-47BF6SIO.js +0 -9
  231. package/dist/chunks/delete-QNSKEIGO.js +0 -10
  232. package/dist/chunks/disable-SBFW3F7B.js +0 -7
  233. package/dist/chunks/discard-DUZR3OWZ.js +0 -14
  234. package/dist/chunks/edit-6BQ7FZC4.js +0 -8
  235. package/dist/chunks/edit-WO7FLNW2.js +0 -9
  236. package/dist/chunks/enable-OK4MR3Z6.js +0 -7
  237. package/dist/chunks/future-5AQIYILU.js +0 -7
  238. package/dist/chunks/generate-cert-for-deploy-7ERAHVOV.js +0 -7
  239. package/dist/chunks/image-IRC2NJVA.js +0 -7
  240. package/dist/chunks/inspect-5FKOSDTK.js +0 -13
  241. package/dist/chunks/inspect-ACNGICEF.js +0 -9
  242. package/dist/chunks/list-TRFGY6WP.js +0 -12
  243. package/dist/chunks/login-MYVTOBRG.js +0 -9
  244. package/dist/chunks/login-SOZ5ME3D.js +0 -7
  245. package/dist/chunks/logs-EMAGPMIZ.js +0 -7
  246. package/dist/chunks/ls-KU35N6DP.js +0 -8
  247. package/dist/chunks/ls-WFC636QK.js +0 -11
  248. package/dist/chunks/mutate-JVDDZLVE.js +0 -9
  249. package/dist/chunks/notifications-CXDBNBHU.js +0 -7
  250. package/dist/chunks/open-3CD5ZNKU.js +0 -7
  251. package/dist/chunks/permissions-PNBST4WN.js +0 -7
  252. package/dist/chunks/prompt-missing-credentials-Q5JCRP3R.js +0 -7
  253. package/dist/chunks/pull-XLZXPTLS.js +0 -7
  254. package/dist/chunks/purchase-domain-if-available-PDJGZ6MY.js +0 -7
  255. package/dist/chunks/push-XB57XK6H.js +0 -7
  256. package/dist/chunks/reauthenticate-CRI4D2BQ.js +0 -7
  257. package/dist/chunks/reorder-KUQ5EQBV.js +0 -10
  258. package/dist/chunks/reply-LO76EKEE.js +0 -9
  259. package/dist/chunks/resolve-KZJYJJLA.js +0 -12
  260. package/dist/chunks/resolve-agent-team-N7QMB7UO.js +0 -7
  261. package/dist/chunks/rm-7UKXTIZW.js +0 -8
  262. package/dist/chunks/rm-AKKEQN32.js +0 -8
  263. package/dist/chunks/rm-ELC57ULY.js +0 -8
  264. package/dist/chunks/rm-K7XEZ7TY.js +0 -8
  265. package/dist/chunks/rm-MOYCAXNO.js +0 -8
  266. package/dist/chunks/rule-inspect-ZCS4EBKR.js +0 -8
  267. package/dist/chunks/select-org-6NEM7F25.js +0 -7
  268. package/dist/chunks/set-NXFB6JXG.js +0 -7
  269. package/dist/chunks/setup-and-link-L67MMSUD.js +0 -7
  270. package/dist/chunks/tags-5AV6WAOF.js +0 -7
  271. package/dist/chunks/zod-2C2SXNIK.js +0 -7
@@ -4,7 +4,7 @@ import { dirname as __dirname_ } from 'node:path';
4
4
  const require = __createRequire(import.meta.url);
5
5
  const __filename = __fileURLToPath(import.meta.url);
6
6
  const __dirname = __dirname_(__filename);
7
- import{createErrorReporter,import_write_build_result,require_constants,require_detect_builders_with_services,require_framework,require_get_files,require_schedule_entrypoint,require_service_schedules,require_write_build_result,toDiagnostic,writeBuildResult}from"../../chunks/chunk-E5CN62HO.js";import{importBuilders,import_import_builders,preloadVltBuilderImports}from"../../chunks/chunk-2JXQWOK5.js";import"../../chunks/chunk-4CACOKMS.js";import{require_ajv}from"../../chunks/chunk-5CVEW3HD.js";import"../../chunks/chunk-MCRKBVZA.js";import{pullCommandLogic}from"../../chunks/chunk-D2JHIOVH.js";import{fetchDeploymentBuildEnv,resolvePerDirectoryLinkRoot}from"../../chunks/chunk-2DODPQ5J.js";import{require_dist as require_dist3}from"../../chunks/chunk-XRIM4BUF.js";import{validateConfig}from"../../chunks/chunk-RBIHS5QI.js";import{require_dist,require_dist2,require_minimatch}from"../../chunks/chunk-NIS66BFX.js";import{readProjectSettings}from"../../chunks/chunk-5K4UTJSY.js";import"../../chunks/chunk-ZCXKEZS4.js";import"../../chunks/chunk-EVH5524J.js";import{require_frameworks}from"../../chunks/chunk-6Y2ZL5XJ.js";import{applyDeprecatedTargetFlag,parseTarget}from"../../chunks/chunk-D4TD2KWH.js";import{compileVercelConfig,findSourceVercelConfigFile,require_main}from"../../chunks/chunk-MXURT5TX.js";import"../../chunks/chunk-7YKFF6CE.js";import"../../chunks/chunk-QKWJN6OE.js";import"../../chunks/chunk-TD7AL545.js";import"../../chunks/chunk-WGWGDC3N.js";import{require_semver}from"../../chunks/chunk-BPUANOGW.js";import{readJSONFile}from"../../chunks/chunk-4SJU5QSD.js";import"../../chunks/chunk-25565AGS.js";import{ensureLink}from"../../chunks/chunk-7DM3IJ7L.js";import"../../chunks/chunk-VU3RBRDH.js";import"../../chunks/chunk-4VF5BZJP.js";import"../../chunks/chunk-PVASGBEF.js";import{printProjectNotFoundError}from"../../chunks/chunk-EBBDSEEU.js";import"../../chunks/chunk-V6Y6UK6B.js";import"../../chunks/chunk-RCUDI7OF.js";import"../../chunks/chunk-GD7AV7BO.js";import{stamp_default}from"../../chunks/chunk-A2RZZQEP.js";import{getRenamedOption}from"../../chunks/chunk-K5YO4UD7.js";import"../../chunks/chunk-Q7D7RGXM.js";import"../../chunks/chunk-Y6WXTTZS.js";import{buildCommand}from"../../chunks/chunk-QQA2OMXJ.js";import"../../chunks/chunk-GCPPL24C.js";import{toEnumerableError}from"../../chunks/chunk-BWS3ZOHJ.js";import{help}from"../../chunks/chunk-33U57CNE.js";import"../../chunks/chunk-3G3FQYMW.js";import{detectExplicitScope}from"../../chunks/chunk-DSNIVABS.js";import{TelemetryClient}from"../../chunks/chunk-NAU6URTI.js";import"../../chunks/chunk-2EYYB6YN.js";import"../../chunks/chunk-NWGBDBZI.js";import{AGENT_REASON,AGENT_STATUS,buildCommandWithGlobalFlags,writeAgentError}from"../../chunks/chunk-32NXYHYC.js";import"../../chunks/chunk-FWTBSC7Z.js";import{DEFAULT_VERCEL_CONFIG_FILENAME,VERCEL_DIR,getLinkedProject,getProjectLink,require_dist2 as require_dist4,require_lib,resolveProjectCwd}from"../../chunks/chunk-OZPBJWYU.js";import"../../chunks/chunk-64UCX5JM.js";import{ua_default}from"../../chunks/chunk-ITQPDXXA.js";import"../../chunks/chunk-7WY7ASKE.js";import"../../chunks/chunk-4NTBYNFR.js";import{isArgumentError,parseArguments}from"../../chunks/chunk-CGTD4QFC.js";import{quoteArg}from"../../chunks/chunk-F53OKXYI.js";import"../../chunks/chunk-GJCVOEC2.js";import"../../chunks/chunk-LUX4PBJL.js";import"../../chunks/chunk-OPORM35X.js";import"../../chunks/chunk-MXTC4ZAQ.js";import"../../chunks/chunk-4SAVH3H7.js";import{CantParseJSONFile}from"../../chunks/chunk-T2FCF46I.js";import{getCommandName,require_lib as require_lib2}from"../../chunks/chunk-VRH7LWOC.js";import{pkg_default}from"../../chunks/chunk-DBT6PGEH.js";import{cliErrorFromUnknown,defineDiagnostics,dist_exports,emoji,init_dist,output_manager_default,prependEmoji,recordCliError}from"../../chunks/chunk-W634OFUG.js";import"../../chunks/chunk-BLUPZPAS.js";import"../../chunks/chunk-ZS2WS4AM.js";import{require_build_utils}from"../../chunks/chunk-5MDNVAE6.js";import"../../chunks/chunk-OCR5CRTH.js";import"../../chunks/chunk-RM3ZDRYE.js";import"../../chunks/chunk-YHPPP3SF.js";import"../../chunks/chunk-PUKYAALC.js";import{getFlagsSpecification}from"../../chunks/chunk-YPPDRKVC.js";import"../../chunks/chunk-2BKALEOP.js";import{require_source}from"../../chunks/chunk-NB2WLB3J.js";import"../../chunks/chunk-ISWW3DKF.js";import"../../chunks/chunk-BULSRTQE.js";import"../../chunks/chunk-BRQUZ5NC.js";import"../../chunks/chunk-D6REP5QQ.js";import"../../chunks/chunk-FBYA6LLM.js";import"../../chunks/chunk-MY4MONOH.js";import"../../chunks/chunk-7EJQLVWX.js";import"../../chunks/chunk-SCV7XEEO.js";import{__commonJS,__require,__toCommonJS,__toESM}from"../../chunks/chunk-BZENIQ7N.js";var require_build_runner=__commonJS({"../../internals/cli-builder-integration/dist/build-runner.js"(exports,module){"use strict";var __defProp=Object.defineProperty,__getOwnPropDesc=Object.getOwnPropertyDescriptor,__getOwnPropNames=Object.getOwnPropertyNames,__hasOwnProp=Object.prototype.hasOwnProperty,__export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:!0})},__copyProps=(to,from,except,desc)=>{if(from&&typeof from=="object"||typeof from=="function")for(let key of __getOwnPropNames(from))!__hasOwnProp.call(to,key)&&key!==except&&__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable});return to},__toCommonJS2=mod=>__copyProps(__defProp({},"__esModule",{value:!0}),mod),build_runner_exports={};__export(build_runner_exports,{BuildRunner:()=>BuildRunner3,InprocessBuildRunner:()=>InprocessBuildRunner2});module.exports=__toCommonJS2(build_runner_exports);var BuildRunner3=class{constructor(ctx){this.ctx=ctx}},InprocessBuildRunner2=class extends BuildRunner3{constructor(ctx,builder){super(ctx),this.builder=builder}async build(){return await this.builder.build(this.ctx.buildOptions)}async diagnostics(){return await this.ctx.builderSpan.child("vc.builder.diagnostics").trace(async()=>await this.builder.diagnostics?.(this.ctx.buildOptions))}teardown(){}}}});var require_sort_builders=__commonJS({"../../internals/builder-orchestration/dist/sort-builders.js"(exports,module){"use strict";var __defProp=Object.defineProperty,__getOwnPropDesc=Object.getOwnPropertyDescriptor,__getOwnPropNames=Object.getOwnPropertyNames,__hasOwnProp=Object.prototype.hasOwnProperty,__export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:!0})},__copyProps=(to,from,except,desc)=>{if(from&&typeof from=="object"||typeof from=="function")for(let key of __getOwnPropNames(from))!__hasOwnProp.call(to,key)&&key!==except&&__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable});return to},__toCommonJS2=mod=>__copyProps(__defProp({},"__esModule",{value:!0}),mod),sort_builders_exports={};__export(sort_builders_exports,{sortBuilders:()=>sortBuilders});module.exports=__toCommonJS2(sort_builders_exports);var import_frameworks=require_frameworks();function sortBuilders(builds){let frameworkRuntimeSet=new Set(import_frameworks.frameworkList.map(f=>f.useRuntime?.use||"@vercel/static-build"));frameworkRuntimeSet.delete("@vercel/go"),frameworkRuntimeSet.delete("@vercel/python"),frameworkRuntimeSet.delete("@vercel/ruby"),frameworkRuntimeSet.delete("@vercel/rust");let toNumber=build2=>build2.use==="@vercel/go"||build2.use==="@vercel/python"||build2.use==="@vercel/ruby"||build2.use==="@vercel/rust"?1:frameworkRuntimeSet.has(build2.use)?0:2;return builds.sort((build1,build2)=>toNumber(build1)-toNumber(build2))}}});var require_execute_builder=__commonJS({"../../internals/cli-builder-integration/dist/execute-builder.js"(exports,module){"use strict";var __defProp=Object.defineProperty,__getOwnPropDesc=Object.getOwnPropertyDescriptor,__getOwnPropNames=Object.getOwnPropertyNames,__hasOwnProp=Object.prototype.hasOwnProperty,__export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:!0})},__copyProps=(to,from,except,desc)=>{if(from&&typeof from=="object"||typeof from=="function")for(let key of __getOwnPropNames(from))!__hasOwnProp.call(to,key)&&key!==except&&__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable});return to},__toCommonJS2=mod=>__copyProps(__defProp({},"__esModule",{value:!0}),mod),execute_builder_exports={};__export(execute_builder_exports,{executeBuilder:()=>executeBuilder2,sortBuildsForExecution:()=>sortBuildsForExecution2});module.exports=__toCommonJS2(execute_builder_exports);var import_sort_builders=require_sort_builders(),import_build_runner2=require_build_runner();async function executeBuilder2({builder,buildOptions,span,isFrontendBuilder,hasDetectedServices,framework,runner}){let buildRunner=runner??new import_build_runner2.InprocessBuildRunner({requirePath:"",buildOptions,cwd:buildOptions.workPath,expectsPreDeploy:!1,builderSpan:span},builder),rawBuildResult=await span.trace(()=>buildRunner.build()),buildResult=builder.version===-1&&"resultVersion"in rawBuildResult?rawBuildResult.result:rawBuildResult;return!hasDetectedServices&&buildOptions.config.zeroConfig&&isFrontendBuilder&&"output"in buildResult&&!buildResult.routes&&framework&&(buildResult.routes=await getFrameworkRoutes(framework,buildOptions.workPath)),{buildResult,rawBuildResult}}var sortBuildsForExecution2=import_sort_builders.sortBuilders;async function getFrameworkRoutes(framework,dirPrefix){return typeof framework.defaultRoutes=="function"?framework.defaultRoutes(dirPrefix):Array.isArray(framework.defaultRoutes)?framework.defaultRoutes:[]}}});var require_get_daemon_builders=__commonJS({"../../internals/cli-builder-integration/dist/get-daemon-builders.js"(exports,module){"use strict";var __defProp=Object.defineProperty,__getOwnPropDesc=Object.getOwnPropertyDescriptor,__getOwnPropNames=Object.getOwnPropertyNames,__hasOwnProp=Object.prototype.hasOwnProperty,__export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:!0})},__copyProps=(to,from,except,desc)=>{if(from&&typeof from=="object"||typeof from=="function")for(let key of __getOwnPropNames(from))!__hasOwnProp.call(to,key)&&key!==except&&__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable});return to},__toCommonJS2=mod=>__copyProps(__defProp({},"__esModule",{value:!0}),mod),get_daemon_builders_exports={};__export(get_daemon_builders_exports,{getDaemonBuilders:()=>getDaemonBuilders,getDaemonDockerfiles:()=>getDaemonDockerfiles,isContainerPresetFromDaemons:()=>isContainerPresetFromDaemons,validateDaemonImageRepositories:()=>validateDaemonImageRepositories});module.exports=__toCommonJS2(get_daemon_builders_exports);var import_fs2=__require("fs"),import_promises=__require("fs/promises"),import_path2=__require("path"),import_build_utils3=__require("@vercel/build-utils");function validateDaemonImageRepositories(daemons){let owners=new Map;for(let name of Object.keys(daemons??{})){let repository=(0,import_build_utils3.getDaemonImageRepository)(name),owner=owners.get(repository);if(owner!==void 0)throw new import_build_utils3.NowBuildError({code:"INVALID_DAEMONS",message:`Can't build daemon "${name}": daemon "${owner}" uses the same image repository "${repository}". Rename one of them.`});owners.set(repository,name)}}function getDaemonDockerfiles(daemons){return new Set(Object.values(daemons??{}).map(daemon=>(0,import_build_utils3.normalizePath)((0,import_path2.join)(daemon.root,daemon.entrypoint))))}var CONTAINER_PRESET_FILES=["Dockerfile.vercel","Containerfile.vercel","Dockerfile","Containerfile"];function isContainerPresetFromDaemons(workPath,daemons){let present=CONTAINER_PRESET_FILES.filter(name=>(0,import_fs2.existsSync)((0,import_path2.join)(workPath,name)));if(present.length===0)return!1;let daemonDockerfiles=getDaemonDockerfiles(daemons),built=present.find(name=>name!=="Containerfile");return built!==void 0&&daemonDockerfiles.has(built)||present.every(name=>daemonDockerfiles.has(name))}async function getDaemonBuilders({workPath,repoRootPath=workPath,daemons,files}){if(daemons===void 0)return[];let root=await(0,import_promises.realpath)(workPath),repoRoot=await(0,import_promises.realpath)(repoRootPath);return Promise.all(Object.entries(daemons).map(async([name,daemon])=>{let source=(0,import_build_utils3.normalizePath)((0,import_path2.join)(daemon.root,daemon.entrypoint)),aboveProject=source.startsWith("../"),invalidSource=reason=>new import_build_utils3.NowBuildError({code:"INVALID_DAEMON_ROOT",message:`Can't build daemon "${name}": "${source}" ${reason}`}),notInProject=invalidSource("isn't in the project files. Check `root` and `entrypoint`, and that .vercelignore doesn't exclude it.");if((0,import_path2.isAbsolute)(daemon.root)||!aboveProject&&!files.includes(source))throw notInProject;let dockerfile=await(0,import_promises.realpath)((0,import_path2.join)(workPath,source)).catch(()=>{throw notInProject}),relativePath=(0,import_path2.relative)(aboveProject?repoRoot:root,dockerfile);if((0,import_path2.isAbsolute)(relativePath)||relativePath===".."||relativePath.startsWith(`..${import_path2.sep}`))throw invalidSource(aboveProject?"is outside the repository.":"is a symlink to a file outside the project.");return{src:source,use:"@vercel/container",config:{daemon:{name,...daemon}}}}))}}});var require_diagnostics=__commonJS({"../../internals/cli-builder-integration/dist/diagnostics.js"(exports,module){"use strict";var __defProp=Object.defineProperty,__getOwnPropDesc=Object.getOwnPropertyDescriptor,__getOwnPropNames=Object.getOwnPropertyNames,__hasOwnProp=Object.prototype.hasOwnProperty,__export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:!0})},__copyProps=(to,from,except,desc)=>{if(from&&typeof from=="object"||typeof from=="function")for(let key of __getOwnPropNames(from))!__hasOwnProp.call(to,key)&&key!==except&&__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable});return to},__toCommonJS2=mod=>__copyProps(__defProp({},"__esModule",{value:!0}),mod),diagnostics_exports={};__export(diagnostics_exports,{buildDiagnostics:()=>buildDiagnostics});module.exports=__toCommonJS2(diagnostics_exports);var import_nostics2=(init_dist(),__toCommonJS(dist_exports)),buildDiagnostics=(0,import_nostics2.defineDiagnostics)({codes:{BUILD_BUILDER_LOAD_FAILED:{why:p=>`Failed to load Builder "${p.use}"`,fix:"Check that the builder is installed and spelled correctly in your Vercel configuration."},BUILD_CONCURRENT_INPROCESS:{why:p=>`Internal error: build for "${p.entrypoint}" was scheduled concurrently but cannot run in a subprocess`,fix:"This is a Vercel CLI error. Report it at https://vercel.com/help."},BUILD_WORKER_MULTIPLE_TOPICS:{why:p=>`Worker service "${p.name}" has ${p.topics} topics, but multiple topics are only supported for Python workers.`,fix:"Configure one topic per worker service, or use a Python worker for multiple topics."}}})}});var require_build_concurrency=__commonJS({"../../internals/cli-builder-integration/dist/build-concurrency.js"(exports,module){"use strict";var __defProp=Object.defineProperty,__getOwnPropDesc=Object.getOwnPropertyDescriptor,__getOwnPropNames=Object.getOwnPropertyNames,__hasOwnProp=Object.prototype.hasOwnProperty,__export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:!0})},__copyProps=(to,from,except,desc)=>{if(from&&typeof from=="object"||typeof from=="function")for(let key of __getOwnPropNames(from))!__hasOwnProp.call(to,key)&&key!==except&&__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable});return to},__toCommonJS2=mod=>__copyProps(__defProp({},"__esModule",{value:!0}),mod),build_concurrency_exports={};__export(build_concurrency_exports,{getInstallScopeKey:()=>getInstallScopeKey,groupIntoScopeChains:()=>groupIntoScopeChains,resolveInstallScopeRoot:()=>resolveInstallScopeRoot,runBuildsWithConcurrency:()=>runBuildsWithConcurrency,runWithConcurrency:()=>runWithConcurrency});module.exports=__toCommonJS2(build_concurrency_exports);var import_node_fs2=__require("node:fs"),import_node_path2=__require("node:path");async function runWithConcurrency(items,limit,fn,onSecondaryError){let queue=[...items],max=Math.max(limit,1),active=0,failed=!1,firstError;if(await new Promise(finish=>{let enqueue=item=>{queue.push(item),pump()},pump=()=>{for(;active<max&&queue.length>0&&!failed;){let item=queue.shift();active++,fn(item,enqueue).then(()=>{active--,pump()},err=>{active--,failed?onSecondaryError?.(err,item):(failed=!0,firstError=err),pump()})}active===0&&finish()};pump()}),failed)throw firstError}function getInstallScopeKey({toolchain,installDirectory,installCommand}){return JSON.stringify([toolchain,(0,import_node_path2.normalize)(installDirectory),typeof installCommand=="string"?["cmd",installCommand.trim()]:"default"])}var NODE_LOCKFILES=["pnpm-lock.yaml","yarn.lock","package-lock.json","npm-shrinkwrap.json","bun.lock","bun.lockb"];async function fileExists(path){try{return await import_node_fs2.promises.stat(path),!0}catch{return!1}}var SERVICE_DIR_TOOLCHAINS=new Set(["go","ruby","rust","container"]);async function resolveInstallScopeRoot({toolchain,serviceDir,ceilingDir}){if(toolchain!=="node"&&toolchain!=="python")return SERVICE_DIR_TOOLCHAINS.has(toolchain)?(0,import_node_path2.normalize)(serviceDir):(0,import_node_path2.normalize)(ceilingDir);let ceiling=(0,import_node_path2.normalize)(ceilingDir),dir=(0,import_node_path2.normalize)(serviceDir);if(dir!==ceiling&&!dir.startsWith(ceiling+import_node_path2.sep))return dir;let nearestLockfileDir,nearestPackageJsonDir,done=!1;for(;!done;){if(toolchain==="node"){if(nearestLockfileDir===void 0){for(let lockfile of NODE_LOCKFILES)if(await fileExists((0,import_node_path2.join)(dir,lockfile))){nearestLockfileDir=dir;break}}if(await fileExists((0,import_node_path2.join)(dir,"pnpm-workspace.yaml")))return dir;try{let pkg=JSON.parse(await import_node_fs2.promises.readFile((0,import_node_path2.join)(dir,"package.json"),"utf8"));if(pkg&&typeof pkg=="object"){if("workspaces"in pkg)return dir;nearestPackageJsonDir??=dir}}catch{}}else try{if((await import_node_fs2.promises.readFile((0,import_node_path2.join)(dir,"pyproject.toml"),"utf8")).includes("[tool.uv.workspace]"))return dir}catch{}let parent=(0,import_node_path2.dirname)(dir);done=dir===ceiling||parent===dir,dir=parent}return nearestLockfileDir??nearestPackageJsonDir??(0,import_node_path2.normalize)(serviceDir)}async function runBuildsWithConcurrency({builds,concurrency,isEligible,resolveScope,forceSingleChain,runBuild,log,reportSecondaryError}){if(concurrency<=1){for(let build2 of builds)await runBuild(build2,!1);return}let parallelBuilds=[],sequentialBuilds=[];for(let build2 of builds)(isEligible(build2)?parallelBuilds:sequentialBuilds).push(build2);if(parallelBuilds.length>0){let chains,siblingsOf;if(forceSingleChain)chains=[parallelBuilds],siblingsOf=new Map;else{let scopeByBuild=new Map;for(let build2 of parallelBuilds)scopeByBuild.set(build2,await resolveScope(build2));({chains,siblingsOf}=groupIntoScopeChains(parallelBuilds,build2=>scopeByBuild.get(build2)))}log(`Running ${parallelBuilds.length} builds across ${chains.length} install scope${chains.length===1?"":"s"} (concurrency ${concurrency})`);let abortedRun=!1,activeBuildOfChain=new Map;await runWithConcurrency(chains,concurrency,async(chain,enqueue)=>{for(let build2 of chain){if(abortedRun)return;activeBuildOfChain.set(chain,build2);try{await runBuild(build2,!0)}catch(err){throw abortedRun=!0,err}let siblings=siblingsOf.get(build2);if(siblings)for(let sibling of siblings)enqueue([sibling])}},(err,chain)=>{let build2=activeBuildOfChain.get(chain);build2!==void 0&&reportSecondaryError(err,build2)})}for(let build2 of sequentialBuilds)await runBuild(build2,!1)}function groupIntoScopeChains(items,scopeOf){let chainByOuter=new Map,leaderByInnerByOuter=new Map,siblingsOf=new Map;for(let item of items){let scope=scopeOf(item),chain=chainByOuter.get(scope.outerKey);chain||(chain=[],chainByOuter.set(scope.outerKey,chain));let leaderByInner=leaderByInnerByOuter.get(scope.outerKey);leaderByInner||(leaderByInner=new Map,leaderByInnerByOuter.set(scope.outerKey,leaderByInner));let leader=leaderByInner.get(scope.innerKey);if(leader===void 0)leaderByInner.set(scope.innerKey,item),chain.push(item);else if(scope.siblingsSkipInstall){let siblings=siblingsOf.get(leader);siblings||(siblings=[],siblingsOf.set(leader,siblings)),siblings.push(item)}else chain.push(item)}return{chains:Array.from(chainByOuter.values()),siblingsOf}}}});var require_workspace_install_targets=__commonJS({"../../internals/cli-builder-integration/dist/workspace-install-targets.js"(exports,module){"use strict";var __defProp=Object.defineProperty,__getOwnPropDesc=Object.getOwnPropertyDescriptor,__getOwnPropNames=Object.getOwnPropertyNames,__hasOwnProp=Object.prototype.hasOwnProperty,__export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:!0})},__copyProps=(to,from,except,desc)=>{if(from&&typeof from=="object"||typeof from=="function")for(let key of __getOwnPropNames(from))!__hasOwnProp.call(to,key)&&key!==except&&__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable});return to},__toCommonJS2=mod=>__copyProps(__defProp({},"__esModule",{value:!0}),mod),workspace_install_targets_exports={};__export(workspace_install_targets_exports,{collectWorkspaceInstallTargets:()=>collectWorkspaceInstallTargets});module.exports=__toCommonJS2(workspace_install_targets_exports);var import_path2=__require("path"),import_build_utils3=__require("@vercel/build-utils"),import_fs_detectors=require_dist2();function isWorkspaceInstallTarget(target){return!!(target&&typeof target=="object"&&typeof target.installRoot=="string"&&typeof target.packageJsonPath=="string"&&typeof target.relativePath=="string")}async function collectWorkspaceInstallTargets({builds,existingTargets,repoRootPath,serviceByBuilder,workPath}){let targets=new Map(Array.isArray(existingTargets)?existingTargets.filter(isWorkspaceInstallTarget).map(target=>[target.packageJsonPath,target]):[]),targetPaths=[];for(let build2 of builds){let service=serviceByBuilder.get(build2);if(build2.use.startsWith("@vercel/node")||build2.use.startsWith("@vercel/backends")||service?.runtime==="node")if(service){let serviceRoot=(0,import_build_utils3.isExperimentalService)(service)?service.workspace:service.root;targetPaths.push(serviceRoot&&serviceRoot!=="."?(0,import_path2.join)(workPath,serviceRoot):workPath)}else typeof build2.src=="string"&&targetPaths.push((0,import_path2.join)(workPath,(0,import_path2.dirname)(build2.src)))}let installScopes=new Map;return await Promise.all(targetPaths.map(async targetPath=>{let{cliType,lockfilePath}=await(0,import_build_utils3.scanParentDirs)(targetPath,!1,repoRootPath);if(!lockfilePath||cliType!=="npm"&&cliType!=="pnpm"&&cliType!=="yarn"&&cliType!=="bun")return;let installRoot=(0,import_path2.dirname)(lockfilePath),scope=installScopes.get(installRoot)??{paths:[],type:cliType};scope.paths.push((0,import_path2.relative)(installRoot,targetPath)),installScopes.set(installRoot,scope)})),await Promise.all(Array.from(installScopes,async([installRoot,{paths,type}])=>{let resolved=await(0,import_fs_detectors.resolveWorkspacePackageTargets)({fs:new import_fs_detectors.LocalFileSystemDetector(installRoot),targetPaths:paths,type});if(!resolved){for(let[packageJsonPath,target]of targets)target.installRoot===installRoot&&targets.delete(packageJsonPath);return}for(let target of resolved){let packageJsonPath=(0,import_path2.join)(installRoot,target.packageJsonPath);targets.set(packageJsonPath,{...target,installRoot,packageJsonPath})}})),Array.from(targets.values())}}});var require_backend_rewrite_warning=__commonJS({"../../internals/cli-builder-integration/dist/backend-rewrite-warning.js"(exports,module){"use strict";var __defProp=Object.defineProperty,__getOwnPropDesc=Object.getOwnPropertyDescriptor,__getOwnPropNames=Object.getOwnPropertyNames,__hasOwnProp=Object.prototype.hasOwnProperty,__export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:!0})},__copyProps=(to,from,except,desc)=>{if(from&&typeof from=="object"||typeof from=="function")for(let key of __getOwnPropNames(from))!__hasOwnProp.call(to,key)&&key!==except&&__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable});return to},__toCommonJS2=mod=>__copyProps(__defProp({},"__esModule",{value:!0}),mod),backend_rewrite_warning_exports={};__export(backend_rewrite_warning_exports,{BACKEND_REWRITE_BEHAVIOR_WARNING:()=>BACKEND_REWRITE_BEHAVIOR_WARNING,hasBackendRewriteBehaviorChange:()=>hasBackendRewriteBehaviorChange});module.exports=__toCommonJS2(backend_rewrite_warning_exports);var import_build_utils3=__require("@vercel/build-utils"),BACKEND_REWRITE_BEHAVIOR_WARNING="Internal rewrites in backend framework projects now route requests using the rewritten destination path. This behavior was previously unsupported and may change which application route handles a request. Review your rewrite configuration to ensure this behavior is expected.";function hasInternalPathRewrite(rewrites){return rewrites?.some(rewrite=>typeof rewrite.destination=="string"&&rewrite.destination.startsWith("/"))??!1}function isAffectedFramework(framework){return framework==="go"||framework==="container"||(0,import_build_utils3.isPythonFramework)(framework)||(0,import_build_utils3.isNodeBackendFramework)(framework)}function hasBackendRewriteBehaviorChange({projectRewrites,builders}){return hasInternalPathRewrite(projectRewrites)&&(builders??[]).some(builder=>isAffectedFramework(builder.config?.framework))}}});var require_schedule_static_source_warning=__commonJS({"../../internals/cli-builder-integration/dist/schedule-static-source-warning.js"(exports,module){"use strict";var __create=Object.create,__defProp=Object.defineProperty,__getOwnPropDesc=Object.getOwnPropertyDescriptor,__getOwnPropNames=Object.getOwnPropertyNames,__getProtoOf=Object.getPrototypeOf,__hasOwnProp=Object.prototype.hasOwnProperty,__export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:!0})},__copyProps=(to,from,except,desc)=>{if(from&&typeof from=="object"||typeof from=="function")for(let key of __getOwnPropNames(from))!__hasOwnProp.call(to,key)&&key!==except&&__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable});return to},__toESM2=(mod,isNodeMode,target)=>(target=mod!=null?__create(__getProtoOf(mod)):{},__copyProps(isNodeMode||!mod||!mod.__esModule?__defProp(target,"default",{value:mod,enumerable:!0}):target,mod)),__toCommonJS2=mod=>__copyProps(__defProp({},"__esModule",{value:!0}),mod),schedule_static_source_warning_exports={};__export(schedule_static_source_warning_exports,{getPublishedPythonSources:()=>getPublishedPythonSources,getPublishedPythonSourcesWarning:()=>getPublishedPythonSourcesWarning});module.exports=__toCommonJS2(schedule_static_source_warning_exports);var import_path2=__require("path"),import_minimatch=__toESM2(require_minimatch()),import_fs_detectors=require_dist2(),LISTED_FILE_LIMIT=3;function getPublishedPythonSources(builds,files){let pythonFiles=files.filter(file=>file.endsWith(".py")),published=new Set;for(let build2 of builds)for(let file of getRootPublishedFiles(build2,pythonFiles))published.add(file);return Array.from(published).sort()}function getRootPublishedFiles(build2,files){let src=(build2.src||"**").replace(/^\//,"");if((0,import_fs_detectors.isOfficialRuntime)("static",build2.use))return build2.config?.outputDirectory?[]:files.filter(file=>file===src||(0,import_minimatch.default)(file,src,{dot:!0}));if((0,import_fs_detectors.isOfficialRuntime)("static-build",build2.use)){let{outputDirectory,distDir}=build2.config??{};if(outputDirectory!=="."&&distDir!==".")return[];let root=import_path2.posix.dirname(src);return root==="."?files:files.filter(file=>file.startsWith(`${root}/`))}return[]}function getPublishedPythonSourcesWarning(files){let subject=files.length===1?"1 Python file is published as a static file":`${files.length} Python files are published as static files`,pronoun=files.length===1?"it":"them";return`${subject} and can be downloaded: ${formatFileList(files)}. To keep ${pronoun} private, set \`outputDirectory\` to a directory that only contains static files.`}function formatFileList(files){let listed=files.slice(0,LISTED_FILE_LIMIT),hidden=files.length-listed.length,items=hidden>0?[...listed,`${hidden} more`]:listed,last=items.pop();if(items.length===0)return last??"";let separator=items.length===1?" and ":", and ";return`${items.join(", ")}${separator}${last}`}}});var require_service_route_ownership=__commonJS({"../../internals/cli-builder-integration/dist/service-route-ownership.js"(exports,module){"use strict";var __defProp=Object.defineProperty,__getOwnPropDesc=Object.getOwnPropertyDescriptor,__getOwnPropNames=Object.getOwnPropertyNames,__hasOwnProp=Object.prototype.hasOwnProperty,__export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:!0})},__copyProps=(to,from,except,desc)=>{if(from&&typeof from=="object"||typeof from=="function")for(let key of __getOwnPropNames(from))!__hasOwnProp.call(to,key)&&key!==except&&__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable});return to},__toCommonJS2=mod=>__copyProps(__defProp({},"__esModule",{value:!0}),mod),service_route_ownership_exports={};__export(service_route_ownership_exports,{scopeRoutesToServiceOwnership:()=>scopeRoutesToServiceOwnership});module.exports=__toCommonJS2(service_route_ownership_exports);var import_routing_utils=require_dist();function isWebServiceWithPrefix(service){return service.type==="web"&&typeof service.routePrefix=="string"}function getWebRoutePrefixes(services){let unique=new Set;for(let service of services)isWebServiceWithPrefix(service)&&unique.add((0,import_routing_utils.normalizeRoutePrefix)(service.routePrefix));return Array.from(unique)}function scopeRoutesToServiceOwnership({routes,owner,allServices}){if(!isWebServiceWithPrefix(owner))return routes;let allWebPrefixes=getWebRoutePrefixes(allServices),ownershipGuard=(0,import_routing_utils.getOwnershipGuard)(owner.routePrefix,allWebPrefixes);return ownershipGuard?routes.map(route=>"handle"in route||typeof route.src!="string"?route:{...route,src:(0,import_routing_utils.scopeRouteSourceToOwnership)(route.src,ownershipGuard)}):routes}}});var require_validate_cron_secret=__commonJS({"../../internals/cli-builder-integration/dist/validate-cron-secret.js"(exports,module){"use strict";var __defProp=Object.defineProperty,__getOwnPropDesc=Object.getOwnPropertyDescriptor,__getOwnPropNames=Object.getOwnPropertyNames,__hasOwnProp=Object.prototype.hasOwnProperty,__export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:!0})},__copyProps=(to,from,except,desc)=>{if(from&&typeof from=="object"||typeof from=="function")for(let key of __getOwnPropNames(from))!__hasOwnProp.call(to,key)&&key!==except&&__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable});return to},__toCommonJS2=mod=>__copyProps(__defProp({},"__esModule",{value:!0}),mod),validate_cron_secret_exports={};__export(validate_cron_secret_exports,{validateCronSecret:()=>validateCronSecret});module.exports=__toCommonJS2(validate_cron_secret_exports);var import_build_utils3=__require("@vercel/build-utils");function validateCronSecret(cronSecret){if(!cronSecret)return null;if(cronSecret!==cronSecret.trim())return new import_build_utils3.NowBuildError({code:"INVALID_CRON_SECRET",message:"The `CRON_SECRET` environment variable contains leading or trailing whitespace, which is not allowed in HTTP header values.",link:"https://vercel.link/securing-cron-jobs",action:"Learn More"});let invalidChars=[];for(let i=0;i<cronSecret.length;i++){let code=cronSecret.charCodeAt(i);code===9||code>=32&&code<=126||invalidChars.push({char:cronSecret[i],index:i,code})}if(invalidChars.length>0){let descriptions=invalidChars.slice(0,3).map(({code,index})=>code<32?`control character (0x${code.toString(16).padStart(2,"0")}) at position ${index}`:code===127?`DEL character at position ${index}`:`non-ASCII character (0x${code.toString(16).padStart(2,"0")}) at position ${index}`),moreCount=invalidChars.length-3,moreText=moreCount>0?`, and ${moreCount} more`:"";return new import_build_utils3.NowBuildError({code:"INVALID_CRON_SECRET",message:`The \`CRON_SECRET\` environment variable contains characters that are not valid in HTTP headers: ${descriptions.join(", ")}${moreText}. Only visible ASCII characters (letters, digits, symbols), spaces, and tabs are allowed.`,link:"https://vercel.link/securing-cron-jobs",action:"Learn More"})}return null}}});var require_validate_package_manifest=__commonJS({"../../internals/cli-builder-integration/dist/validate-package-manifest.js"(exports,module){"use strict";var __create=Object.create,__defProp=Object.defineProperty,__getOwnPropDesc=Object.getOwnPropertyDescriptor,__getOwnPropNames=Object.getOwnPropertyNames,__getProtoOf=Object.getPrototypeOf,__hasOwnProp=Object.prototype.hasOwnProperty,__export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:!0})},__copyProps=(to,from,except,desc)=>{if(from&&typeof from=="object"||typeof from=="function")for(let key of __getOwnPropNames(from))!__hasOwnProp.call(to,key)&&key!==except&&__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable});return to},__toESM2=(mod,isNodeMode,target)=>(target=mod!=null?__create(__getProtoOf(mod)):{},__copyProps(isNodeMode||!mod||!mod.__esModule?__defProp(target,"default",{value:mod,enumerable:!0}):target,mod)),__toCommonJS2=mod=>__copyProps(__defProp({},"__esModule",{value:!0}),mod),validate_package_manifest_exports={};__export(validate_package_manifest_exports,{validatePackageManifest:()=>validatePackageManifest});module.exports=__toCommonJS2(validate_package_manifest_exports);var import_ajv=__toESM2(require_ajv()),import_build_utils3=__require("@vercel/build-utils"),ajv=new import_ajv.default,validate=ajv.compile(import_build_utils3.packageManifestSchema);function validatePackageManifest(data){return validate(data)?null:(validate.errors??[]).map(e=>`${e.dataPath||"(root)"} ${e.message}`).join("; ")}}});var require_manifest=__commonJS({"../../internals/cli-builder-integration/dist/manifest.js"(exports,module){"use strict";var __defProp=Object.defineProperty,__getOwnPropDesc=Object.getOwnPropertyDescriptor,__getOwnPropNames=Object.getOwnPropertyNames,__hasOwnProp=Object.prototype.hasOwnProperty,__export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:!0})},__copyProps=(to,from,except,desc)=>{if(from&&typeof from=="object"||typeof from=="function")for(let key of __getOwnPropNames(from))!__hasOwnProp.call(to,key)&&key!==except&&__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable});return to},__toCommonJS2=mod=>__copyProps(__defProp({},"__esModule",{value:!0}),mod),manifest_exports={};__export(manifest_exports,{getBuildDiagnosticsFramework:()=>getBuildDiagnosticsFramework,writeManifests:()=>writeManifests});module.exports=__toCommonJS2(manifest_exports);var import_path2=__require("path"),import_build_utils3=__require("@vercel/build-utils"),import_framework=require_framework();async function writeManifests(packageManifests,diagnostics,ops,outputDir){if(packageManifests.length===0)return;let projectManifest={},deployManifestBuilds={},deployManifestServices={};for(let{workspace,diagnosticsValues,manifest,service,builderUse}of packageManifests){let key=`${builderUse}:${workspace}`,framework=diagnosticsValues?.framework??manifest.framework;projectManifest[key]={...manifest,workspace,builder:builderUse,framework,serviceName:service?.name,serviceType:service&&(0,import_build_utils3.isExperimentalService)(service)?service.type:void 0,routePrefix:service&&(0,import_build_utils3.isExperimentalService)(service)?service.routePrefix:void 0};let{version:_version,...manifestWithoutVersion}=manifest;if(deployManifestBuilds[key]={...manifestWithoutVersion,framework,root:workspace,workspace,builder:builderUse},service){let existing=deployManifestServices[service.name];existing?existing.builds.push(key):deployManifestServices[service.name]={builds:[key],bindings:(0,import_build_utils3.isExperimentalServiceV2)(service)?service.bindings:void 0}}}if(Object.keys(projectManifest).length===0)return;let projectManifestBlob=new import_build_utils3.FileBlob({data:JSON.stringify(projectManifest)});diagnostics["project-manifest.json"]=projectManifestBlob,ops.push((0,import_build_utils3.downloadFile)(projectManifestBlob,(0,import_path2.join)(outputDir,"diagnostics","project-manifest.json")).then(()=>{},err=>err));let deployManifestBlob=new import_build_utils3.FileBlob({data:JSON.stringify({manifestVersion:"2.0",builds:deployManifestBuilds,services:deployManifestServices})});diagnostics["deploy-manifest.json"]=deployManifestBlob,ops.push((0,import_build_utils3.downloadFile)(deployManifestBlob,(0,import_path2.join)(outputDir,"diagnostics","deploy-manifest.json")).then(()=>{},err=>err))}function getBuildDiagnosticsFramework({service,configFramework,apiDirFramework}){return service?.framework??(configFramework==="services"?void 0:configFramework)??(0,import_framework.getRuntimeFramework)(service?.runtime)??apiDirFramework}}});var require_build_embedding=__commonJS({"../../internals/cli-builder-integration/dist/build-embedding.js"(exports,module){"use strict";var __defProp=Object.defineProperty,__getOwnPropDesc=Object.getOwnPropertyDescriptor,__getOwnPropNames=Object.getOwnPropertyNames,__hasOwnProp=Object.prototype.hasOwnProperty,__export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:!0})},__copyProps=(to,from,except,desc)=>{if(from&&typeof from=="object"||typeof from=="function")for(let key of __getOwnPropNames(from))!__hasOwnProp.call(to,key)&&key!==except&&__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable});return to},__toCommonJS2=mod=>__copyProps(__defProp({},"__esModule",{value:!0}),mod),build_embedding_exports={};__export(build_embedding_exports,{shouldEmbedFlagsDefinitions:()=>shouldEmbedFlagsDefinitions});module.exports=__toCommonJS2(build_embedding_exports);var import_build_utils3=__require("@vercel/build-utils");function isFlagsEmbedOption(input){return input==="force-on"||input==="force-off"}var SDK_KEY_REGEX=/^vf_(?:server|client)_/;function envHasSdkKey(){for(let value of Object.values(process.env))if(typeof value=="string"&&SDK_KEY_REGEX.test(value))return!0}async function shouldEmbedFlagsDefinitions(cwd,packageJson,vercelFlags){if(process.env.VERCEL_FLAGS_DISABLE_DEFINITION_EMBEDDING==="1")return!1;if(isFlagsEmbedOption(process.env.VERCEL_FLAGS_EMBED_DEFINITIONS))return process.env.VERCEL_FLAGS_EMBED_DEFINITIONS==="force-on";if(vercelFlags?.enabledAt!==void 0||envHasSdkKey())return!0;let hasVercelFlags=await(0,import_build_utils3.isPackageInstalled)("@flags-sdk/vercel",cwd),hasFlagsCore=await(0,import_build_utils3.isPackageInstalled)("@vercel/flags-core",cwd);if(hasVercelFlags||hasFlagsCore)return!0;let dependencies={...packageJson?.dependencies,...packageJson?.devDependencies,...packageJson?.optionalDependencies};return!!(dependencies["@flags-sdk/vercel"]||dependencies["@vercel/flags-core"])}}});var require_validate_build_output=__commonJS({"../../internals/cli-builder-integration/dist/validate-build-output.js"(exports,module){"use strict";var __create=Object.create,__defProp=Object.defineProperty,__getOwnPropDesc=Object.getOwnPropertyDescriptor,__getOwnPropNames=Object.getOwnPropertyNames,__getProtoOf=Object.getPrototypeOf,__hasOwnProp=Object.prototype.hasOwnProperty,__export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:!0})},__copyProps=(to,from,except,desc)=>{if(from&&typeof from=="object"||typeof from=="function")for(let key of __getOwnPropNames(from))!__hasOwnProp.call(to,key)&&key!==except&&__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable});return to},__toESM2=(mod,isNodeMode,target)=>(target=mod!=null?__create(__getProtoOf(mod)):{},__copyProps(isNodeMode||!mod||!mod.__esModule?__defProp(target,"default",{value:mod,enumerable:!0}):target,mod)),__toCommonJS2=mod=>__copyProps(__defProp({},"__esModule",{value:!0}),mod),validate_build_output_exports={};__export(validate_build_output_exports,{reportBuildOutputProblems:()=>reportBuildOutputProblems,validateBuildOutput:()=>validateBuildOutput});module.exports=__toCommonJS2(validate_build_output_exports);var import_fs_extra2=__toESM2(require_lib()),import_path2=__require("path"),import_build_utils3=__require("@vercel/build-utils");function logDebug(message,output){output?.debug(message),(0,import_build_utils3.debug)(message)}async function validateOutputConfig(configPath,label,problems){if(!await import_fs_extra2.default.pathExists(configPath)){problems.push({severity:"error",message:`${label} is missing config.json.`});return}let config;try{config=await import_fs_extra2.default.readJSON(configPath)}catch(err){problems.push({severity:"error",message:`${label} config.json is not valid JSON: ${err instanceof Error?err.message:String(err)}.`});return}config&&config.version!==3&&problems.push({severity:"warning",message:`${label} config.json has unexpected version "${config.version}" (expected 3).`})}async function validateBuildOutput(outputDir,output){let problems=[];logDebug(`Validating build output at "${outputDir}"`,output);try{await validateOutputConfig((0,import_path2.join)(outputDir,"config.json"),"Build output",problems);let servicesDir=(0,import_path2.join)(outputDir,"services"),serviceNames=[];try{serviceNames=(await import_fs_extra2.default.readdir(servicesDir,{withFileTypes:!0})).filter(e=>e.isDirectory()).map(e=>e.name)}catch(err){if(err?.code!=="ENOENT")throw err}let[hasFunctions,hasStatic,hasDaemons]=await Promise.all([import_fs_extra2.default.pathExists((0,import_path2.join)(outputDir,"functions")),import_fs_extra2.default.pathExists((0,import_path2.join)(outputDir,"static")),import_fs_extra2.default.pathExists((0,import_path2.join)(outputDir,"daemons"))]),hasServices=serviceNames.length>0;!hasFunctions&&!hasStatic&&!hasServices&&!hasDaemons&&problems.push({severity:"warning",message:'Build output contains no "functions", "static", or "services" directory; the build may not have produced any deployable output.'});for(let name of serviceNames){let serviceDir=(0,import_path2.join)(servicesDir,name),label=`Build output service "${name}"`;await validateOutputConfig((0,import_path2.join)(serviceDir,"config.json"),label,problems);let[svcHasFunctions,svcHasStatic]=await Promise.all([import_fs_extra2.default.pathExists((0,import_path2.join)(serviceDir,"functions")),import_fs_extra2.default.pathExists((0,import_path2.join)(serviceDir,"static"))]);!svcHasFunctions&&!svcHasStatic&&problems.push({severity:"warning",message:`${label} contains no "functions" or "static" directory; the service may not have produced any deployable output.`})}return logDebug(`Build output validation found ${problems.length} problem(s)`+(problems.length?`: ${problems.map(p=>`${p.severity}: ${p.message}`).join("; ")}`:""),output),problems}catch(err){return[{severity:"error",message:`Unexpected error while validating build output: ${err instanceof Error?err.message:String(err)}.`}]}}function reportBuildOutputProblems(problems,output){for(let problem of problems)problem.severity==="error"?output.error(problem.message):output.warn(problem.message)}}});var require_framework_detection=__commonJS({"../../internals/cli-builder-integration/dist/framework-detection.js"(exports,module){"use strict";var __defProp=Object.defineProperty,__getOwnPropDesc=Object.getOwnPropertyDescriptor,__getOwnPropNames=Object.getOwnPropertyNames,__hasOwnProp=Object.prototype.hasOwnProperty,__export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:!0})},__copyProps=(to,from,except,desc)=>{if(from&&typeof from=="object"||typeof from=="function")for(let key of __getOwnPropNames(from))!__hasOwnProp.call(to,key)&&key!==except&&__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable});return to},__toCommonJS2=mod=>__copyProps(__defProp({},"__esModule",{value:!0}),mod),framework_detection_exports={};__export(framework_detection_exports,{detectAllFrameworks:()=>detectAllFrameworks,detectFirstDeploymentFramework:()=>detectFirstDeploymentFramework,isFirstDeployment:()=>isFirstDeployment,isFrameworkDetectionEnabled:()=>isFrameworkDetectionEnabled,warnIfFrameworkMismatch:()=>warnIfFrameworkMismatch});module.exports=__toCommonJS2(framework_detection_exports);var import_fs_detectors=require_dist2(),import_frameworks=require_frameworks(),import_build_utils3=__require("@vercel/build-utils");function logDebug(message,output){output?.debug(message),(0,import_build_utils3.debug)(message)}function isFrameworkDetectionEnabled(output){let raw=process.env.VERCEL_FRAMEWORK_DETECTION,enabled=raw==="1";return logDebug(`Framework detection: VERCEL_FRAMEWORK_DETECTION=${raw===void 0?"<unset>":JSON.stringify(raw)} -> ${enabled?"enabled":"disabled"}`,output),enabled}function isFirstDeployment(output){let raw=process.env.VERCEL_FIRST_DEPLOYMENT,result=raw==="1";return logDebug(`isFirstDeployment: VERCEL_FIRST_DEPLOYMENT=${raw===void 0?"<unset>":JSON.stringify(raw)} -> ${result}`,output),result}async function detectFirstDeploymentFramework(options){let{workPath,projectSettings,frameworkExplicitlyConfigured,excludedFrameworks=[],output}=options;if(logDebug(`First deployment: evaluating framework detection (workPath="${workPath}", configuredFramework=${projectSettings.framework?`"${projectSettings.framework}"`:"<none>"})`,output),!isFirstDeployment(output))return logDebug("First deployment: skipping framework detection because this is not a first deployment",output),{status:"skipped"};if(frameworkExplicitlyConfigured||projectSettings.framework)return logDebug(`First deployment: skipping framework detection because a framework is already configured ("${projectSettings.framework}")`,output),{status:"skipped"};logDebug(`First deployment: no framework configured; detecting from source at "${workPath}"`,output),excludedFrameworks.length>0&&logDebug(`First deployment: not detecting ${excludedFrameworks.join(", ")}`,output);let detected=await(0,import_fs_detectors.detectFrameworkRecord)({fs:new import_fs_detectors.LocalFileSystemDetector(workPath),frameworkList:import_frameworks.frameworkList.filter(framework=>!excludedFrameworks.includes(framework.slug??""))});if(!detected||!detected.slug)return logDebug("First deployment: no framework detected from source code",output),{status:"not-detected"};let{slug}=detected;return projectSettings.framework=slug,logDebug(`First deployment: detected framework "${slug}"${detected.detectedVersion?` (version ${detected.detectedVersion})`:""}; applied to project settings for this build`,output),{status:"detected",slug,...detected.detectedVersion&&{version:detected.detectedVersion}}}async function detectAllFrameworks(workPath,customFrameworkList,output){logDebug(`Framework cross-check: detecting frameworks at "${workPath}"`,output);let slugs=(await(0,import_fs_detectors.detectFrameworks)({fs:new import_fs_detectors.LocalFileSystemDetector(workPath),frameworkList:customFrameworkList??import_frameworks.frameworkList})).map(f=>f.slug).filter(slug=>!!slug);return logDebug(`Framework cross-check: detected [${slugs.join(", ")||"<none>"}]`,output),slugs}function isHighConfidenceDetection(slug){return import_frameworks.frameworkList.find(f=>f.slug===slug)?.detectionConfidence!=="weak"}function warnIfFrameworkMismatch(options,output){let{configuredFramework,detectedFrameworks,usedBuilders=[],usedFrameworks=[]}=options;if(detectedFrameworks.length===0)return logDebug("Framework cross-check: nothing detected from source; skipping validation",output),"none-detected";let confidentFrameworks=detectedFrameworks.filter(isHighConfidenceDetection);if(configuredFramework)return detectedFrameworks.includes(configuredFramework)?(logDebug(`Framework cross-check: configured framework "${configuredFramework}" matches detected frameworks; no mismatch`,output),"match"):confidentFrameworks.length===0?(logDebug(`Framework cross-check: configured framework "${configuredFramework}" not among detected [${detectedFrameworks.join(", ")}], but all detections are low-confidence; skipping warning`,output),"low-confidence"):(logDebug(`Framework cross-check: configured framework "${configuredFramework}" not among detected [${confidentFrameworks.join(", ")}]; warning`,output),output?.warn(`Your project is configured to use the "${configuredFramework}" framework, but the source code looks like it's for: ${confidentFrameworks.join(", ")}. This may be a misconfiguration.`,null,"https://vercel.com/docs/project-configuration","Learn More"),"configured-mismatch");if(detectedFrameworks.some(slug=>{if(usedFrameworks.includes(slug))return!0;let expectedBuilder=import_frameworks.frameworkList.find(f=>f.slug===slug)?.useRuntime?.use;return expectedBuilder?usedBuilders.some(use=>use===expectedBuilder||use.startsWith(`${expectedBuilder}@`)):!1}))return logDebug(`Framework cross-check: no framework configured, but the build used one of the detected frameworks [${detectedFrameworks.join(", ")}]; no mismatch`,output),"match";let warnableFrameworks=confidentFrameworks.filter(slug=>!!import_frameworks.frameworkList.find(f=>f.slug===slug)?.useRuntime?.use);return warnableFrameworks.length===0?(logDebug(`Framework cross-check: no framework configured and detections [${detectedFrameworks.join(", ")}] are low-confidence or have no dedicated runtime builder; skipping warning`,output),"low-confidence"):(logDebug(`Framework cross-check: no framework configured and the build did not use any of the detected frameworks [${warnableFrameworks.join(", ")}] (used builders: [${usedBuilders.join(", ")||"<none>"}]); warning`,output),output?.warn(`The source code looks like it's for: ${warnableFrameworks.join(", ")}, but no framework is configured for this project and the build did not use ${warnableFrameworks.length===1?"its builder":"their builders"}. Set the framework in your Project Settings if this is unexpected.`,null,"https://vercel.com/docs/project-configuration","Learn More"),"unused-mismatch")}}});var require_runtime=__commonJS({"../../internals/runtimes/dist/runtime.js"(exports,module){"use strict";var __defProp=Object.defineProperty,__getOwnPropDesc=Object.getOwnPropertyDescriptor,__getOwnPropNames=Object.getOwnPropertyNames,__hasOwnProp=Object.prototype.hasOwnProperty,__export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:!0})},__copyProps=(to,from,except,desc)=>{if(from&&typeof from=="object"||typeof from=="function")for(let key of __getOwnPropNames(from))!__hasOwnProp.call(to,key)&&key!==except&&__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable});return to},__toCommonJS2=mod=>__copyProps(__defProp({},"__esModule",{value:!0}),mod),runtime_exports={};__export(runtime_exports,{getBuilderForRuntime:()=>getBuilderForRuntime,inferRuntime:()=>inferRuntime});module.exports=__toCommonJS2(runtime_exports);var import_constants=require_constants(),import_framework=require_framework();function getBuilderForRuntime(runtime){let builder=import_constants.RUNTIME_BUILDERS[runtime];if(!builder)throw new Error(`Unknown runtime: ${runtime}`);return builder}function inferRuntime(config){if(config.runtime&&config.runtime in import_constants.RUNTIME_BUILDERS)return config.runtime;let frameworkRuntime=(0,import_framework.inferRuntimeFromFramework)(config.framework);if(frameworkRuntime)return frameworkRuntime;if(config.builder){for(let[runtime,builderName]of Object.entries(import_constants.RUNTIME_BUILDERS))if(config.builder===builderName)return runtime}if(config.entrypoint){if(config.entrypoint==="pyproject.toml"||config.entrypoint.endsWith("/pyproject.toml"))return"python";for(let[ext,runtime]of Object.entries(import_constants.ENTRYPOINT_EXTENSIONS))if(config.entrypoint.endsWith(ext))return runtime}}}});var require_monorepo=__commonJS({"../../internals/cli-builder-integration/dist/monorepo.js"(exports,module){"use strict";var __create=Object.create,__defProp=Object.defineProperty,__getOwnPropDesc=Object.getOwnPropertyDescriptor,__getOwnPropNames=Object.getOwnPropertyNames,__getProtoOf=Object.getPrototypeOf,__hasOwnProp=Object.prototype.hasOwnProperty,__export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:!0})},__copyProps=(to,from,except,desc)=>{if(from&&typeof from=="object"||typeof from=="function")for(let key of __getOwnPropNames(from))!__hasOwnProp.call(to,key)&&key!==except&&__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable});return to},__toESM2=(mod,isNodeMode,target)=>(target=mod!=null?__create(__getProtoOf(mod)):{},__copyProps(isNodeMode||!mod||!mod.__esModule?__defProp(target,"default",{value:mod,enumerable:!0}):target,mod)),__toCommonJS2=mod=>__copyProps(__defProp({},"__esModule",{value:!0}),mod),monorepo_exports={};__export(monorepo_exports,{applyServicesMonorepoDefaults:()=>applyServicesMonorepoDefaults,setMonorepoDefaultSettings:()=>setMonorepoDefaultSettings});module.exports=__toCommonJS2(monorepo_exports);var import_path2=__require("path"),import_fs_detectors=require_dist2(),import_runtime=require_runtime(),import_title=__toESM2(require_lib2()),import_fs_extra2=__toESM2(require_lib()),import_build_utils3=__require("@vercel/build-utils");async function setMonorepoDefaultSettings(cwd,workPath,projectSettings,output){let localFileSystem=new import_fs_detectors.LocalFileSystemDetector(cwd),projectName=(0,import_path2.basename)(workPath),relativeToRoot=(0,import_path2.relative)(workPath,cwd),setCommand=(command,value)=>{projectSettings[command]?(0,import_build_utils3.debug)(`Skipping auto-assignment of ${command} as it is already set via project settings or configuration overrides.`):projectSettings[command]=value};try{let result=await(0,import_fs_detectors.getMonorepoDefaultSettings)(projectName,(0,import_path2.relative)(cwd,workPath),relativeToRoot,localFileSystem);if(result===null)return;projectSettings.monorepoManager=result.monorepoManager;let{monorepoManager,...commands}=result;output.log(`Detected ${(0,import_title.default)(monorepoManager)}. Adjusting default settings...`),commands.buildCommand&&setCommand("buildCommand",commands.buildCommand),commands.installCommand&&setCommand("installCommand",commands.installCommand),commands.commandForIgnoringBuildStep&&setCommand("commandForIgnoringBuildStep",commands.commandForIgnoringBuildStep)}catch(error){if(error instanceof import_fs_detectors.MissingBuildPipeline||error instanceof import_fs_detectors.MissingBuildTarget){output.warn(`${error.message} Skipping automatic setting assignment.`);return}throw error}}async function hasVercelBuildScript(serviceRoot){try{return(await import_fs_extra2.default.readJSON((0,import_path2.join)(serviceRoot,"package.json")))?.scripts?.["vercel-build"]!==void 0}catch{return!1}}async function applyServicesMonorepoDefaults(cwd,workPath,services,projectSettings,output){let localFileSystem=new import_fs_detectors.LocalFileSystemDetector(cwd),result,announced=!1;for(let[name,config]of Object.entries(services)){if(config.buildCommand){(0,import_build_utils3.debug)(`Skipping auto-assignment of buildCommand for service "${name}" as it is already set in the services configuration.`);continue}let runtime=(0,import_runtime.inferRuntime)({runtime:config.runtime,framework:config.framework,entrypoint:config.entrypoint});if(runtime!==void 0&&runtime!=="node"){(0,import_build_utils3.debug)(`Skipping monorepo defaults for service "${name}": runtime "${runtime}" does not build via the monorepo task graph.`);continue}let serviceRoot=(0,import_path2.resolve)(workPath,config.root??"."),projectPath=(0,import_path2.relative)(cwd,serviceRoot);if((0,import_path2.isAbsolute)(projectPath)||projectPath===".."||projectPath.startsWith(`..${import_path2.sep}`)){(0,import_build_utils3.debug)(`Skipping monorepo defaults for service "${name}": root "${config.root}" is outside "${cwd}".`);continue}if(await hasVercelBuildScript(serviceRoot)){(0,import_build_utils3.debug)(`Skipping monorepo defaults for service "${name}": a \`vercel-build\` script is defined in its root package.json.`);continue}let posixProjectPath=(0,import_build_utils3.normalizePath)(projectPath),posixRelativeToRoot=(0,import_build_utils3.normalizePath)((0,import_path2.relative)(serviceRoot,cwd)),settings;try{settings=await(0,import_fs_detectors.getMonorepoDefaultSettings)((0,import_path2.basename)(serviceRoot),posixProjectPath||"/",posixRelativeToRoot,localFileSystem)}catch(error){if(error instanceof import_fs_detectors.MissingBuildPipeline){output.warn(`${error.message} Skipping automatic setting assignment.`);break}if(error instanceof import_fs_detectors.MissingBuildTarget){output.warn(`Service "${name}": ${error.message} Skipping automatic setting assignment.`);continue}throw error}if(settings===null)break;projectSettings.monorepoManager=settings.monorepoManager,settings.buildCommand&&(announced||(output.log(`Detected ${(0,import_title.default)(settings.monorepoManager)}. Adjusting default settings...`),announced=!0),(0,import_build_utils3.debug)(`Assigning buildCommand "${settings.buildCommand}" to service "${name}".`),result??={...services},result[name]={...config,buildCommand:settings.buildCommand})}return result??services}}});var require_corepack=__commonJS({"../../internals/cli-builder-integration/dist/corepack.js"(exports,module){"use strict";var __create=Object.create,__defProp=Object.defineProperty,__getOwnPropDesc=Object.getOwnPropertyDescriptor,__getOwnPropNames=Object.getOwnPropertyNames,__getProtoOf=Object.getPrototypeOf,__hasOwnProp=Object.prototype.hasOwnProperty,__export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:!0})},__copyProps=(to,from,except,desc)=>{if(from&&typeof from=="object"||typeof from=="function")for(let key of __getOwnPropNames(from))!__hasOwnProp.call(to,key)&&key!==except&&__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable});return to},__toESM2=(mod,isNodeMode,target)=>(target=mod!=null?__create(__getProtoOf(mod)):{},__copyProps(isNodeMode||!mod||!mod.__esModule?__defProp(target,"default",{value:mod,enumerable:!0}):target,mod)),__toCommonJS2=mod=>__copyProps(__defProp({},"__esModule",{value:!0}),mod),corepack_exports={};__export(corepack_exports,{cleanupCorepack:()=>cleanupCorepack,initCorepack:()=>initCorepack});module.exports=__toCommonJS2(corepack_exports);var import_path2=__require("path"),import_build_utils3=__require("@vercel/build-utils"),import_fs_extra2=__toESM2(require_lib());async function initCorepack({repoRootPath,output,readJSONFile:readJSONFile2,isCantParseJSONFile,warmPackageManager=!1}){if(process.env.ENABLE_EXPERIMENTAL_COREPACK!=="1")return null;let pkg=await readJSONFile2((0,import_path2.join)(repoRootPath,"package.json"));if(isCantParseJSONFile(pkg))output.warn("Warning: Could not enable corepack because package.json is invalid JSON",pkg.meta?.parseErrorLocation??pkg.message);else if(!pkg?.packageManager)output.warn('Warning: Could not enable corepack because package.json is missing "packageManager" property');else{output.log(`Detected ENABLE_EXPERIMENTAL_COREPACK=1 and "${pkg.packageManager}" in package.json`);let corepackRootDir=(0,import_path2.join)(repoRootPath,".vercel","cache","corepack"),corepackHomeDir=(0,import_path2.join)(corepackRootDir,"home"),corepackShimDir=(0,import_path2.join)(corepackRootDir,"shim");await import_fs_extra2.default.mkdirp(corepackHomeDir),await import_fs_extra2.default.mkdirp(corepackShimDir),process.env.COREPACK_HOME=corepackHomeDir,process.env.PATH=`${corepackShimDir}${import_path2.delimiter}${process.env.PATH}`;let pkgManagerName=pkg.packageManager.split("@")[0];if(await(0,import_build_utils3.spawnAsync)("corepack",["enable",pkgManagerName,"--install-directory",corepackShimDir],{prettyCommand:`corepack enable ${pkgManagerName}`}),warmPackageManager)try{await(0,import_build_utils3.spawnAsync)(pkgManagerName,["--version"],{prettyCommand:`${pkgManagerName} --version`,stdio:"pipe"})}catch(err){output.debug(`Failed to pre-download "${pkg.packageManager}" via corepack: ${err instanceof Error?err.message:String(err)}`)}return corepackShimDir}return null}function cleanupCorepack(corepackShimDir){process.env.COREPACK_HOME&&delete process.env.COREPACK_HOME,process.env.PATH&&(process.env.PATH=process.env.PATH.replace(`${corepackShimDir}${import_path2.delimiter}`,""))}}});var require_do_build=__commonJS({"../../internals/cli-builder-integration/dist/do-build.js"(exports,module){"use strict";var __create=Object.create,__defProp=Object.defineProperty,__getOwnPropDesc=Object.getOwnPropertyDescriptor,__getOwnPropNames=Object.getOwnPropertyNames,__getProtoOf=Object.getPrototypeOf,__hasOwnProp=Object.prototype.hasOwnProperty,__export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:!0})},__copyProps=(to,from,except,desc)=>{if(from&&typeof from=="object"||typeof from=="function")for(let key of __getOwnPropNames(from))!__hasOwnProp.call(to,key)&&key!==except&&__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable});return to},__toESM2=(mod,isNodeMode,target)=>(target=mod!=null?__create(__getProtoOf(mod)):{},__copyProps(isNodeMode||!mod||!mod.__esModule?__defProp(target,"default",{value:mod,enumerable:!0}):target,mod)),__toCommonJS2=mod=>__copyProps(__defProp({},"__esModule",{value:!0}),mod),do_build_exports={};__export(do_build_exports,{doBuild:()=>doBuild3,mergeDeploymentId:()=>mergeDeploymentId});module.exports=__toCommonJS2(do_build_exports);var import_fs_extra2=__toESM2(require_lib()),import_minimatch=__toESM2(require_minimatch()),import_path2=__require("path"),import_semver=__toESM2(require_semver()),import_build_utils3=__require("@vercel/build-utils"),import_client=require_dist4(),import_frameworks=require_frameworks(),import_fs_detectors=require_dist2(),import_service_topology=require_dist3(),import_detect_builders_with_services=require_detect_builders_with_services(),import_get_daemon_builders=require_get_daemon_builders(),import_routing_utils=require_dist(),import_write_build_result3=require_write_build_result(),import_build_runner2=require_build_runner(),import_execute_builder=require_execute_builder(),import_diagnostics3=require_diagnostics(),import_build_concurrency=require_build_concurrency(),import_workspace_install_targets=require_workspace_install_targets(),import_backend_rewrite_warning=require_backend_rewrite_warning(),import_schedule_static_source_warning=require_schedule_static_source_warning(),import_service_route_ownership=require_service_route_ownership(),import_service_schedules=require_service_schedules(),import_validate_cron_secret=require_validate_cron_secret(),import_validate_package_manifest=require_validate_package_manifest(),import_manifest=require_manifest(),import_build_embedding=require_build_embedding(),import_get_files=require_get_files(),import_validate_build_output=require_validate_build_output(),import_framework_detection=require_framework_detection(),import_monorepo=require_monorepo(),import_corepack=require_corepack(),import_schedule_entrypoint=require_schedule_entrypoint();function pickOverrides(config){let overrides={};for(let property of["buildCommand","devCommand","framework","ignoreCommand","installCommand","outputDirectory"])config[property]!==void 0&&(overrides[property==="ignoreCommand"?"commandForIgnoringBuildStep":property]=config[property]);return overrides}var SERVICE_BUILD_IMMUTABLE_ENV_VARS=["VERCEL_IMMUTABLE_STATIC_FILES_ENABLED"];function hasNonEmptyObject(value){return value!=null&&typeof value=="object"&&!Array.isArray(value)&&Object.keys(value).length>0}function getGeneratedServiceAlreadyBuiltWarning(service){let framework=service.framework??"unknown",entrypoint=service.entrypoint??service.builder.src??"unknown";return`Detected already-built service "${service.name}" from lazily generated \`.vercel/output/config.json\` (framework: ${framework}, entrypoint: ${entrypoint}). It will not be treated as a service because its build output already exists at the top level. Configure it in \`vercel.json\` as a \`services\` entry to remove this warning.`}async function doBuild3(request,dependencies){let{project,buildsJson,cwd,outputDir,span,standalone=!1,localConfigPath,cliVersion,userAgent}=request,{output,createBuildRunner:createBuildRunner2,canBuildInSubprocess:canBuildInSubprocess2,importBuilders:importBuilders2,formatResolvedBuilders:formatResolvedBuilders2,writeBuildResult:writeBuildResult2,toEnumerableError:toEnumerableError2,readJSONFile:readJSONFile2,isCantParseJSONFile,validateConfig:validateConfig2,compileVercelConfig:compileVercelConfig2,findSourceVercelConfigFile:findSourceVercelConfigFile2,defaultVercelConfigFilename,startBuildTiming}=dependencies,VALID_DEPLOYMENT_ID_PATTERN=/^[a-zA-Z0-9_-]+$/,workPath=(0,import_path2.join)(cwd,project.settings.rootDirectory||"."),repoRootPath=cwd,sourceConfigFile=await findSourceVercelConfigFile2(workPath),corepackShimDir;if(sourceConfigFile){corepackShimDir=await(0,import_corepack.initCorepack)({repoRootPath,output,readJSONFile:readJSONFile2,isCantParseJSONFile,warmPackageManager:(0,import_build_utils3.resolveBuildConcurrency)()>1});let installDepsSpan=span.child("vc.installDeps"),installRan=!1;try{let installCommand=project.settings.installCommand;typeof installCommand=="string"?installCommand.trim()?(output.log("Running install command before config compilation..."),installRan=await(0,import_build_utils3.runCustomInstallCommand)({destPath:workPath,installCommand,spawnOpts:{env:process.env},projectCreatedAt:project.settings.createdAt})):output.debug("Skipping empty install command"):(output.log("Installing dependencies before config compilation..."),installRan=await(0,import_build_utils3.runNpmInstall)(workPath,[],{env:process.env},void 0,project.settings.createdAt))}finally{installDepsSpan.stop()}if(installRan){let{packageJsonPath}=await(0,import_build_utils3.scanParentDirs)(workPath,!1);packageJsonPath&&(process.env.VERCEL_INSTALL_COMPLETED_PATH=packageJsonPath),process.env.VERCEL_INSTALL_COMPLETED="1"}}let compileResult=await span.child("vc.compileVercelConfig").trace(()=>compileVercelConfig2(workPath)),vercelConfigPath=localConfigPath||compileResult.configPath||(0,import_path2.join)(workPath,"vercel.json"),[pkg,vercelConfig,hasInstrumentation]=await span.child("vc.readConfigInputs").trace(()=>Promise.all([readJSONFile2((0,import_path2.join)(workPath,"package.json")),readJSONFile2(vercelConfigPath),(0,import_fs_detectors.detectInstrumentation)(new import_fs_detectors.LocalFileSystemDetector(workPath))]));if(isCantParseJSONFile(pkg))throw pkg;if(isCantParseJSONFile(vercelConfig))throw vercelConfig;hasInstrumentation&&(output.debug("OpenTelemetry instrumentation detected. Automatic fetch instrumentation will be disabled."),process.env.VERCEL_TRACING_DISABLE_AUTOMATIC_FETCH_INSTRUMENTATION="1"),vercelConfig&&(vercelConfig[import_client.fileNameSymbol]=compileResult.wasCompiled?compileResult.sourceFile||defaultVercelConfigFilename:"vercel.json");let localConfig=vercelConfig||{},validateError=validateConfig2(localConfig);if(validateError)throw validateError;let authoredSchedules=(0,import_build_utils3.getNamedSchedules)(localConfig.schedules),daemons=(0,import_build_utils3.getDaemonNames)(localConfig).length>0?localConfig.daemons:void 0;if((0,import_get_daemon_builders.validateDaemonImageRepositories)(daemons),localConfig.crons&&localConfig.crons.length>0){let cronSecretError=(0,import_validate_cron_secret.validateCronSecret)(process.env.CRON_SECRET);if(cronSecretError)throw cronSecretError}let projectSettings={...project.settings,...pickOverrides(localConfig)};buildsJson.detectedFramework=await span.child("vc.detectFirstDeploymentFramework",{firstDeployment:String(process.env.VERCEL_FIRST_DEPLOYMENT==="1"),configuredFramework:projectSettings.framework??void 0}).trace(async s=>{let result=await(0,import_framework_detection.detectFirstDeploymentFramework)({workPath,projectSettings,frameworkExplicitlyConfigured:Object.prototype.hasOwnProperty.call(localConfig,"framework"),excludedFrameworks:(0,import_get_daemon_builders.isContainerPresetFromDaemons)(workPath,daemons)?["container"]:void 0,output});return s.setAttributes({detectionStatus:result.status,detectedFramework:result.slug,detectedFrameworkVersion:result.version}),result}),process.env.VERCEL_BUILD_MONOREPO_SUPPORT==="1"&&pkg?.scripts?.["vercel-build"]===void 0&&projectSettings.rootDirectory!==null&&projectSettings.rootDirectory!=="."&&await span.child("vc.setMonorepoDefaultSettings").trace(()=>(0,import_monorepo.setMonorepoDefaultSettings)(cwd,workPath,projectSettings,output)),await span.child("vc.prepareFlagsDefinitions").trace(async s=>{let shouldEmbed=await(0,import_build_embedding.shouldEmbedFlagsDefinitions)(cwd,pkg,projectSettings.vercelFlags);if(s.setAttributes({shouldEmbed:String(shouldEmbed)}),!shouldEmbed)return;let{prepareFlagsDefinitions}=await import("../../chunks/dist-33WTJLVQ.js");await prepareFlagsDefinitions({cwd,env:process.env,userAgentSuffix:userAgent,output})});let files=await span.child("vc.getFiles").trace(async s=>{let result=(await(0,import_get_files.staticFiles)(workPath,{},output)).map(f=>(0,import_build_utils3.normalizePath)((0,import_path2.relative)(workPath,f)));return s.setAttributes({fileCount:String(result.length)}),result}),scheduleEntrypointPlan=(0,import_schedule_entrypoint.planScheduleEntrypoints)({schedules:authoredSchedules,files,framework:projectSettings.framework,functions:localConfig.functions}),{reservedFunctionFiles}=scheduleEntrypointPlan,detectedFrameworksPromise=span.child("vc.detectAllFrameworks",{enabled:String((0,import_framework_detection.isFrameworkDetectionEnabled)(output))}).trace(async s=>{if(!(0,import_framework_detection.isFrameworkDetectionEnabled)(output))return[];try{let slugs=await(0,import_framework_detection.detectAllFrameworks)(workPath,void 0,output);return s.setAttributes({detectedFrameworks:slugs.join(",")||void 0,detectedFrameworkCount:String(slugs.length)}),slugs}catch(err){return output.debug(`Framework cross-check detection failed: ${err}`),s.setAttributes({error:err instanceof Error?err.message:String(err)}),[]}}),routesResult=(0,import_routing_utils.getTransformedRoutes)(localConfig);if(routesResult.error)throw routesResult.error;if(localConfig.builds&&localConfig.functions)throw new import_build_utils3.NowBuildError({code:"bad_request",message:"The `functions` property cannot be used in conjunction with the `builds` property. Please remove one of them.",link:"https://vercel.link/functions-and-builds"});let daemonBuilds=await(0,import_get_daemon_builders.getDaemonBuilders)({workPath,repoRootPath,daemons,files}),builds=localConfig.builds||[],zeroConfigRoutes=[],zeroConfigFallbackRoutes=[],detectedServices,detectedResolvedServices,servicesToRecord,hasExperimentalServicesV1ConfiguredInVercelConfig=hasNonEmptyObject(localConfig.experimentalServices),hasExperimentalServicesV2ConfiguredInVercelConfig=hasNonEmptyObject(localConfig.services??localConfig.experimentalServicesV2);hasExperimentalServicesV1ConfiguredInVercelConfig&&output.warn("The `experimentalServices` property is deprecated. Migrate to `services`.");let configuredExperimentalServicesV2=hasExperimentalServicesV2ConfiguredInVercelConfig&&(localConfig.services??localConfig.experimentalServicesV2)?localConfig.services??localConfig.experimentalServicesV2:void 0,nestExperimentalServicesV2Output=hasExperimentalServicesV2ConfiguredInVercelConfig,detectedExperimentalServicesV1Config,detectedExperimentalServicesV2Config=configuredExperimentalServicesV2,isZeroConfig=!1;if(builds.length>0)output.warn("Due to `builds` existing in your configuration file, the Build and Development Settings defined in your Project Settings will not apply. Learn More: https://vercel.link/unused-build-settings"),builds=builds.flatMap(b=>expandBuild(files,b));else{isZeroConfig=!0;let servicesForDetection=configuredExperimentalServicesV2;process.env.VERCEL_BUILD_MONOREPO_SUPPORT==="1"&&configuredExperimentalServicesV2&&(servicesForDetection=await span.child("vc.applyServicesMonorepoDefaults").trace(()=>(0,import_monorepo.applyServicesMonorepoDefaults)(cwd,workPath,configuredExperimentalServicesV2,projectSettings,output)));let detectedBuilders=await span.child("vc.detectBuilders").trace(()=>(0,import_detect_builders_with_services.detectBuildersWithServices)(files,pkg,{...localConfig,reservedFunctionFiles,services:void 0,experimentalServicesV2:servicesForDetection,projectSettings,ignoreBuildScript:!0,featHandleMiss:!0,workPath}));if(detectedBuilders.errors&&detectedBuilders.errors.length>0)throw detectedBuilders.errors[0];for(let w of detectedBuilders.warnings)output.warn(w.message,null,w.link,w.action||"Learn More");detectedBuilders.builders?builds=detectedBuilders.builders:builds=[{src:"**",use:"@vercel/static"}],detectedResolvedServices=detectedBuilders.services,servicesToRecord=detectedResolvedServices,detectedServices=detectedBuilders.services?.filter(import_build_utils3.isExperimentalService);let autoDetectedV2Config=detectedBuilders.experimentalServicesV2;if(!hasExperimentalServicesV2ConfiguredInVercelConfig&&autoDetectedV2Config&&(nestExperimentalServicesV2Output=!0,detectedExperimentalServicesV2Config=autoDetectedV2Config),detectedBuilders.useImplicitEnvInjection&&detectedServices&&detectedServices.length>0){let serviceUrlEnvVars=(0,import_build_utils3.getExperimentalServiceUrlEnvVars)({services:detectedServices,frameworkList:import_frameworks.frameworkList,currentEnv:process.env,deploymentUrl:process.env.VERCEL_URL});for(let[key,value]of Object.entries(serviceUrlEnvVars))process.env[key]=value,output.debug(`Injected service URL env var: ${key}=${value}`)}let serviceRewrites=detectedBuilders.serviceRewrites,serviceRewriteRoutes=serviceRewrites&&serviceRewrites.length>0?(0,import_routing_utils.convertRewrites)(serviceRewrites):null;zeroConfigRoutes.push(...detectedBuilders.redirectRoutes||[]);let detectedHostRewriteRoutes=detectedBuilders.hostRewriteRoutes;zeroConfigRoutes=(0,import_routing_utils.appendRoutesToPhase)({routes:zeroConfigRoutes,newRoutes:detectedHostRewriteRoutes??null,phase:null});let detectedServiceRewriteRoutes=nestExperimentalServicesV2Output?[]:detectedBuilders.rewriteRoutes;zeroConfigRoutes.push(...(0,import_routing_utils.appendRoutesToPhase)({routes:[],newRoutes:[...detectedServiceRewriteRoutes||[],...serviceRewriteRoutes||[]],phase:"filesystem"})),zeroConfigRoutes=(0,import_routing_utils.appendRoutesToPhase)({routes:zeroConfigRoutes,newRoutes:detectedBuilders.errorRoutes,phase:"error"}),nestExperimentalServicesV2Output||(zeroConfigRoutes.push(...detectedBuilders.defaultRoutes||[]),zeroConfigFallbackRoutes=detectedBuilders.fallbackRoutes||[])}if(builds.push(...daemonBuilds),(0,import_backend_rewrite_warning.hasBackendRewriteBehaviorChange)({projectRewrites:localConfig.rewrites,builders:builds})&&output.warn(import_backend_rewrite_warning.BACKEND_REWRITE_BEHAVIOR_WARNING),(0,import_schedule_entrypoint.assertNoScheduleEntrypointSourceConflict)(builds,scheduleEntrypointPlan),scheduleEntrypointPlan.uses.some(({resolved})=>(0,import_fs_detectors.isOfficialRuntime)("python",resolved.use))){let publishedPythonSources=(0,import_schedule_static_source_warning.getPublishedPythonSources)(builds,files);publishedPythonSources.length>0&&output.warn((0,import_schedule_static_source_warning.getPublishedPythonSourcesWarning)(publishedPythonSources))}let scheduleEntrypointBuilds=new Set(scheduleEntrypointPlan.builds);builds.push(...scheduleEntrypointPlan.builds);let builderSpecs=new Set(builds.map(b=>b.use)),buildersWithPkgs=await span.child("vc.importBuilders").trace(async s=>{let builders=await importBuilders2(builderSpecs,cwd,s);return s.setAttributes({resolved:formatResolvedBuilders2(builders)}),builders}),filesMap=await span.child("vc.populateFilesMap").trace(async s=>{let map={};for(let path of files){let fsPath=(0,import_path2.join)(workPath,path),{mode}=await import_fs_extra2.default.stat(fsPath);map[path]=new import_build_utils3.FileFsRef({mode,fsPath})}return s.setAttributes({fileCount:String(files.length)}),map}),buildStamp=startBuildTiming();await import_fs_extra2.default.mkdirp(outputDir);let ops=[],buildsJsonBuilds=new Map,ensureBuildersImported=async buildsToImport=>{let missingBuilderSpecs=new Set(buildsToImport.map(build2=>build2.use).filter(builderSpec=>!buildersWithPkgs.has(builderSpec)));if(missingBuilderSpecs.size===0)return;let importedBuilders=await span.child("vc.importBuilders").trace(async s=>{let builders=await importBuilders2(missingBuilderSpecs,cwd,s);return s.setAttributes({resolved:formatResolvedBuilders2(builders)}),builders});buildersWithPkgs=new Map([...buildersWithPkgs.entries(),...importedBuilders.entries()])},addBuildsToBuildJson=async buildsToAdd=>{await ensureBuildersImported(buildsToAdd);for(let build2 of buildsToAdd){if(buildsJsonBuilds.has(build2))continue;let builderWithPkg=buildersWithPkgs.get(build2.use);if(!builderWithPkg)throw import_diagnostics3.buildDiagnostics.BUILD_BUILDER_LOAD_FAILED({use:build2.use});let{builder,pkg:builderPkg}=builderWithPkg;buildsJsonBuilds.set(build2,{require:builderPkg.name,requirePath:builderWithPkg.path,apiVersion:builder.version,...build2})}buildsJson.builds=Array.from(buildsJsonBuilds.values()),await writeBuildJson(buildsJson,outputDir)},meta={skipDownload:!0,cliVersion,runNpmInstallSet:new Set,...daemons&&{daemonContext:{projectRoot:workPath,daemons}}},executedBuilds=[],buildResults=new Map,overrides=[];corepackShimDir||(corepackShimDir=await(0,import_corepack.initCorepack)({repoRootPath,output,readJSONFile:readJSONFile2,isCantParseJSONFile,warmPackageManager:(0,import_build_utils3.resolveBuildConcurrency)()>1}));let diagnostics={},packageManifests=[],apiDirFrameworkDetector=createApiDirFrameworkDetector((workPath2,frameworks)=>(0,import_framework_detection.detectAllFrameworks)(workPath2,frameworks,output)),getHasDetectedServices=()=>detectedResolvedServices!==void 0&&detectedResolvedServices.length>0,synthesizedServiceCrons=[],serviceByBuilder=new Map,serviceFileOverrides=new Map;if(getHasDetectedServices())for(let service of detectedResolvedServices)serviceByBuilder.set(service.builder,service);let preDeployEntries=[],liveRunners=new Set,buildOrdinals=new Map,generatedRootRoutes,buildDurationsMs=[],buildersWallMs=0,buildConcurrency,runBuilders=async buildsToRun=>{await addBuildsToBuildJson(buildsToRun),process.env.VERCEL_EXPERIMENTAL_WORKSPACE_SCOPED_INSTALLS==="1"&&(meta.workspaceInstallTargets=await(0,import_workspace_install_targets.collectWorkspaceInstallTargets)({builds:buildsToRun,existingTargets:meta.workspaceInstallTargets,repoRootPath,serviceByBuilder,workPath}));let buildOne=async(build2,concurrent)=>{if(typeof build2.src!="string")return;let builderWithPkg=buildersWithPkgs.get(build2.use);if(!builderWithPkg)throw import_diagnostics3.buildDiagnostics.BUILD_BUILDER_LOAD_FAILED({use:build2.use});try{let{builder,pkg:builderPkg}=builderWithPkg,service=getHasDetectedServices()?serviceByBuilder.get(build2):void 0,legacyExperimentalService=service&&(0,import_build_utils3.isExperimentalService)(service)?service:void 0,serviceWorkspace=service?(0,import_build_utils3.isExperimentalService)(service)?service.workspace:service.root:void 0,stripServiceRoutePrefix=!!legacyExperimentalService?.routePrefix&&legacyExperimentalService.routePrefix!=="/",buildWorkPath=workPath,buildEntrypoint=build2.src,buildFiles=filesMap;if(service&&serviceWorkspace&&serviceWorkspace!=="."){let wsPrefix=serviceWorkspace+"/";buildWorkPath=(0,import_path2.join)(workPath,serviceWorkspace),buildEntrypoint=build2.src.startsWith(wsPrefix)?build2.src.slice(wsPrefix.length):build2.src,buildFiles={};for(let[filePath,file]of Object.entries(filesMap))filePath.startsWith(wsPrefix)&&(buildFiles[filePath.slice(wsPrefix.length)]=file);output.debug(`Service "${service.name}": workspace-rooted build at "${buildWorkPath}", entrypoint "${buildEntrypoint}" (original: "${build2.src}")`)}let restoreEnv=new Map,perBuildEnv=concurrent?{...process.env}:process.env,setBuildEnv=(key,value)=>{concurrent||restoreEnv.set(key,process.env[key]),value===void 0?delete perBuildEnv[key]:perBuildEnv[key]=value},settingsForEnv=service?{buildCommand:service.buildCommand??void 0,installCommand:service.installCommand??void 0,outputDirectory:projectSettings.outputDirectory??void 0,nodeVersion:projectSettings.nodeVersion??void 0}:projectSettings;for(let key of["buildCommand","installCommand","outputDirectory","nodeVersion"]){let value=settingsForEnv[key],envKey="VERCEL_PROJECT_SETTINGS_"+key.replace(/[A-Z]/g,letter=>`_${letter}`).toUpperCase();setBuildEnv(envKey,typeof value=="string"?value:void 0),typeof value=="string"&&output.debug(`Setting env ${envKey} to "${value}"`)}let isFrontendBuilder=build2.config&&"framework"in build2.config,builderFramework=build2.config?.framework??projectSettings.framework,isApiDir=isZeroConfig&&!service&&!isFrontendBuilder,apiDirFramework=isApiDir?await apiDirFrameworkDetector.detect(build2.use??"",buildWorkPath):void 0,buildConfig;isZeroConfig?service?buildConfig={...build2.config,...(0,import_build_utils3.isExperimentalServiceV2)(service)&&service.functions?{functions:service.functions,serviceName:service.name}:void 0,projectSettings:{...projectSettings,framework:service.framework??null,buildCommand:service.buildCommand??null,installCommand:service.installCommand??null},installCommand:service.installCommand??void 0,buildCommand:service.buildCommand??void 0,preDeployCommand:legacyExperimentalService?.preDeployCommand??void 0,framework:builderFramework,nodeVersion:projectSettings.nodeVersion,bunVersion:localConfig.bunVersion??void 0}:buildConfig={outputDirectory:projectSettings.outputDirectory??void 0,...build2.config,projectSettings,installCommand:projectSettings.installCommand??void 0,devCommand:projectSettings.devCommand??void 0,buildCommand:projectSettings.buildCommand??void 0,framework:isFrontendBuilder?projectSettings.framework:void 0,nodeVersion:projectSettings.nodeVersion,bunVersion:localConfig.bunVersion??void 0}:buildConfig={...build2.config||{},bunVersion:localConfig.bunVersion??void 0};let diagnosticsFramework=(0,import_manifest.getBuildDiagnosticsFramework)({service,configFramework:buildConfig.framework,apiDirFramework}),diagnosticsValues=diagnosticsFramework?{framework:diagnosticsFramework}:void 0,builderSpan=span.child("vc.builder",{"builder.name":builderPkg.name,"builder.version":builderPkg.version,"builder.dynamicallyInstalled":String(builderWithPkg.dynamicallyInstalled)}),daemonName=build2.config?.daemon?.name;(service||daemonName)&&builderSpan.setAttributes({"service.name":service?.name??daemonName,"service.runtime":getBuildToolchain(build2,service),"service.kind":service?"service":"daemon"});let serviceRoutePrefix=build2.config?.routePrefix,serviceConfigWorkspace=build2.config?.workspace,preDeployCmd=legacyExperimentalService?.preDeployCommand?.trim(),preDeployEntry=preDeployCmd&&service?{ordinal:buildOrdinals.get(build2)??Number.MAX_SAFE_INTEGER,service:service.name}:void 0;preDeployEntry&&preDeployEntries.push(preDeployEntry);let buildOptions={files:buildFiles,entrypoint:buildEntrypoint,workPath:buildWorkPath,repoRootPath,config:buildConfig,meta,span:builderSpan,...diagnosticsValues?{diagnosticsValues}:void 0,...preDeployCmd?{registerPreDeploy:callback=>{preDeployEntry.callback=callback}}:void 0,...service?{service:{name:service.name,...legacyExperimentalService?{type:legacyExperimentalService.type,trigger:legacyExperimentalService.trigger}:void 0,routePrefix:typeof serviceRoutePrefix=="string"?serviceRoutePrefix:void 0,workspace:typeof serviceConfigWorkspace=="string"?serviceConfigWorkspace:serviceWorkspace,...legacyExperimentalService?{schedule:legacyExperimentalService.schedule}:void 0}}:void 0};if(output.debug(`Building entrypoint "${build2.src}" with "${builderPkg.name}"`),detectedServices&&legacyExperimentalService?.env){let perServiceEnv=(0,import_build_utils3.getServiceUrlEnvVars)({requestedEnv:legacyExperimentalService.env,consumerService:legacyExperimentalService,services:detectedServices,frameworkList:import_frameworks.frameworkList,currentEnv:process.env,deploymentUrl:process.env.VERCEL_URL});for(let[key,value]of Object.entries(perServiceEnv))key in process.env||(setBuildEnv(key,value),output.debug(`Injected service URL env var: ${key}=${value}`))}if(service)for(let key of SERVICE_BUILD_IMMUTABLE_ENV_VARS)setBuildEnv(key,void 0);let buildResult,rawBuildResult,runnerContext={requirePath:builderWithPkg.path,buildOptions,cwd:buildWorkPath,expectsPreDeploy:!!preDeployCmd,builderSpan,serviceName:service?.name,env:perBuildEnv},runner=createBuildRunner2?.({ctx:runnerContext,builder,hasDetectedServices:getHasDetectedServices(),builderPath:builderWithPkg.path,hasBuildCallback:!!buildOptions.buildCallback})??new import_build_runner2.InprocessBuildRunner(runnerContext,builder);if(concurrent&&runner instanceof import_build_runner2.InprocessBuildRunner)throw import_diagnostics3.buildDiagnostics.BUILD_CONCURRENT_INPROCESS({entrypoint:buildOptions.entrypoint});liveRunners.add(runner);try{({buildResult,rawBuildResult}=await(0,import_execute_builder.executeBuilder)({builder,buildOptions,span:builderSpan,isFrontendBuilder,hasDetectedServices:getHasDetectedServices(),framework:import_frameworks.frameworkList.find(framework2=>framework2.slug===buildConfig.framework),runner}))}finally{builderSpan.duration!==void 0&&buildDurationsMs.push(builderSpan.duration/1e3);for(let[key,prior]of restoreEnv)prior===void 0?delete process.env[key]:process.env[key]=prior;try{let builderDiagnostics=await runner.diagnostics();if(builderDiagnostics){let prefix=service&&serviceWorkspace&&serviceWorkspace!=="."?serviceWorkspace+"/"+builderPkg.name+"/":"";for(let[key,value]of Object.entries(builderDiagnostics)){let fullKey=prefix+key;if(key.endsWith("package-manifest.json"))try{let data;value.type==="FileBlob"?data=value.data.toString():data=await streamToString(value.toStream());let packageManifest=JSON.parse(data),validationError=(0,import_validate_package_manifest.validatePackageManifest)(packageManifest);if(validationError)output.warn(`Invalid package-manifest.json from ${fullKey}: ${validationError}`);else{let workspace=service&&serviceWorkspace&&serviceWorkspace!=="."?serviceWorkspace:".",buildType=packageManifest.buildType??(buildConfig.middleware===!0?"middleware":isApiDir?"api-dir":"app"),entry={ordinal:buildOrdinals.get(build2)??Number.MAX_SAFE_INTEGER,workspace,key:fullKey,diagnosticsValues,manifest:{...packageManifest,buildType},service,builderUse:builderPkg.name},existingIndex=packageManifests.findIndex(m=>m.builderUse===builderPkg.name&&m.workspace===workspace),existing=existingIndex===-1?void 0:packageManifests[existingIndex];existing?entry.ordinal<existing.ordinal&&(packageManifests[existingIndex]=entry):packageManifests.push(entry)}}catch(e){output.debug(`Failed to parse ${fullKey}: ${e instanceof Error?e.message:String(e)}`)}else diagnostics[fullKey]=value}}}catch(error){output.error("Collecting diagnostics failed"),output.debug(error)}}if(buildResult&&"output"in buildResult&&"runtime"in buildResult.output&&"type"in buildResult.output&&buildResult.output.type==="Lambda"){let lambdaRuntime=buildResult.output.runtime;if((0,import_build_utils3.getDiscontinuedNodeVersions)().some(o=>o.runtime===lambdaRuntime))throw new import_build_utils3.NowBuildError({code:"NODEJS_DISCONTINUED_VERSION",message:`The Runtime "${build2.use}" is using "${lambdaRuntime}", which is discontinued. Please upgrade your Runtime to a more recent version or consult the author for more details.`,link:"https://vercel.link/function-runtimes"})}if("output"in buildResult&&buildResult.output&&((0,import_build_utils3.isBackendBuilder)(build2)||build2.use==="@vercel/python")){let routesJsonPath=(0,import_path2.join)(buildWorkPath,".vercel","routes.json");if((0,import_fs_extra2.existsSync)(routesJsonPath))try{let routesJson=await readJSONFile2(routesJsonPath);if(routesJson&&typeof routesJson=="object"&&"routes"in routesJson&&Array.isArray(routesJson.routes)){let indexLambda="index"in buildResult.output?buildResult.output.index:void 0,convertedRoutes=[],convertedOutputs=indexLambda?{index:indexLambda}:{};for(let route of routesJson.routes){if(typeof route.source!="string")continue;let{src}=(0,import_routing_utils.sourceToRegex)(route.source),newRoute={src,dest:route.source};route.methods&&(newRoute.methods=route.methods),route.source!=="/"&&(indexLambda&&(convertedOutputs[route.source]=indexLambda),convertedRoutes.push(newRoute))}buildResult.routes=[{handle:"filesystem"},...convertedRoutes,{src:"/(.*)",dest:"/"}],indexLambda&&(buildResult.output=convertedOutputs)}}catch(error){output.error(`Failed to read routes.json: ${error}`)}}if(getHasDetectedServices()&&service&&legacyExperimentalService&&"routes"in buildResult&&Array.isArray(buildResult.routes)&&detectedServices&&(buildResult.routes=(0,import_service_route_ownership.scopeRoutesToServiceOwnership)({routes:buildResult.routes,owner:legacyExperimentalService,allServices:detectedServices})),legacyExperimentalService&&(0,import_build_utils3.isQueueBackedService)(legacyExperimentalService)&&"output"in buildResult&&attachQueueServiceTrigger(buildResult.output,legacyExperimentalService),legacyExperimentalService&&(0,import_build_utils3.isScheduleTriggeredService)(legacyExperimentalService)&&!("crons"in buildResult&&buildResult.crons?.length)){let staticSchedules=(0,import_service_schedules.getStaticServiceSchedules)(legacyExperimentalService.schedule);if(typeof legacyExperimentalService.runtime=="string"&&staticSchedules.length>0){let cronEntrypoint=legacyExperimentalService.entrypoint||legacyExperimentalService.builder.src||"index";for(let schedule of staticSchedules)synthesizedServiceCrons.push({ordinal:buildOrdinals.get(build2)??Number.MAX_SAFE_INTEGER,cron:{path:(0,import_build_utils3.getInternalServiceCronPath)(legacyExperimentalService.name,cronEntrypoint,legacyExperimentalService.handlerFunction||"cron"),schedule}})}else throw new import_build_utils3.NowBuildError({code:"CRON_SERVICE_NO_CRONS",message:`Scheduled service "${legacyExperimentalService.name}" did not produce any cron entries. The builder "${builderPkg.name}" may not support scheduled services.`})}let mergedBuildResult=buildResult;if("buildOutputPath"in buildResult){let buildOutputConfigPath=(0,import_path2.join)(buildResult.buildOutputPath,"config.json"),buildOutputConfig=await readJSONFile2(buildOutputConfigPath);if(isCantParseJSONFile(buildOutputConfig))throw buildOutputConfig;if(buildOutputConfig){if(buildResult.framework&&!buildOutputConfig.framework&&(buildOutputConfig.framework=buildResult.framework),!hasExperimentalServicesV1ConfiguredInVercelConfig&&!hasExperimentalServicesV2ConfiguredInVercelConfig){let outputConfigPath=(0,import_path2.join)(outputDir,"config.json"),outputConfig=await readJSONFile2(outputConfigPath);if(isCantParseJSONFile(outputConfig))throw outputConfig;let shouldMergeGeneratedOutputRoutes=!1;hasNonEmptyObject(outputConfig?.experimentalServices)&&!hasNonEmptyObject(buildOutputConfig.experimentalServices)&&(buildOutputConfig.experimentalServices=outputConfig.experimentalServices,shouldMergeGeneratedOutputRoutes=!0),hasNonEmptyObject(outputConfig?.experimentalServicesV2)&&!hasNonEmptyObject(buildOutputConfig.experimentalServicesV2)&&(buildOutputConfig.experimentalServicesV2=outputConfig.experimentalServicesV2,shouldMergeGeneratedOutputRoutes=!0),hasGeneratedServicesConfig(outputConfig)&&!hasGeneratedServicesConfig(buildOutputConfig)&&(buildOutputConfig.services=outputConfig.services,shouldMergeGeneratedOutputRoutes=!0),shouldMergeGeneratedOutputRoutes&&Array.isArray(outputConfig?.routes)&&(buildOutputConfig.routes=prependMissingBuildOutputRoutes(outputConfig.routes,buildOutputConfig.routes),generatedRootRoutes??=outputConfig.routes),(hasNonEmptyObject(buildOutputConfig.experimentalServices)||hasNonEmptyObject(buildOutputConfig.experimentalServicesV2)||hasGeneratedServicesConfig(buildOutputConfig))&&await import_fs_extra2.default.writeJSON(buildOutputConfigPath,buildOutputConfig,{spaces:2})}getHasDetectedServices()&&service&&legacyExperimentalService&&Array.isArray(buildOutputConfig.routes)&&detectedServices&&(buildOutputConfig.routes=(0,import_service_route_ownership.scopeRoutesToServiceOwnership)({routes:buildOutputConfig.routes,owner:legacyExperimentalService,allServices:detectedServices})),mergedBuildResult=buildOutputConfig}}buildResults.set(build2,mergedBuildResult),executedBuilds.push(build2);let buildOutputLength=0;"output"in buildResult&&(buildOutputLength=Array.isArray(buildResult.output)?buildResult.output.length:1);let writeBuildResultPromise=builderSpan.child("vc.builder.writeBuildResult",{buildOutputLength:String(buildOutputLength)}).trace(()=>writeBuildResult2({repoRootPath,outputDir,buildResult:rawBuildResult,build:build2,builder,builderPkg,vercelConfig:localConfig,standalone,workPath:buildWorkPath,service,nestServiceOutput:nestExperimentalServicesV2Output,stripServiceRoutePrefix}));if(service&&nestExperimentalServicesV2Output){let override=await writeBuildResultPromise;override&&serviceFileOverrides.set(build2,override)}else ops.push(writeBuildResultPromise.then(override=>{override&&overrides.push({ordinal:buildOrdinals.get(build2)??Number.MAX_SAFE_INTEGER,override})},err=>err))}catch(err){let buildJsonBuild=buildsJsonBuilds.get(build2);throw buildJsonBuild&&(buildJsonBuild.error=toEnumerableError2(err)),err}finally{ops.push((0,import_build_utils3.download)(diagnostics,(0,import_path2.join)(outputDir,"diagnostics")).then(()=>{},err=>err))}},sortedBuilds=(0,import_execute_builder.sortBuildsForExecution)(buildsToRun);for(let build2 of sortedBuilds)buildOrdinals.has(build2)||buildOrdinals.set(build2,buildOrdinals.size);let concurrency=createBuildRunner2&&canBuildInSubprocess2?(0,import_build_utils3.resolveBuildConcurrency)():1;buildConcurrency=concurrency;let buildersStart=performance.now();await(0,import_build_concurrency.runBuildsWithConcurrency)({builds:sortedBuilds,concurrency,isEligible:build2=>{let bp=typeof build2.src=="string"?buildersWithPkgs.get(build2.use):void 0;return!!bp&&!!canBuildInSubprocess2&&canBuildInSubprocess2({hasDetectedServices:getHasDetectedServices(),builderPath:bp.path})},forceSingleChain:!hasExperimentalServicesV1ConfiguredInVercelConfig&&!hasExperimentalServicesV2ConfiguredInVercelConfig,resolveScope:async build2=>{let service=getHasDetectedServices()&&typeof build2.src=="string"?serviceByBuilder.get(build2):void 0;if(!service){let key="no-service-context";return{outerKey:key,innerKey:`${key}:${build2.use}:${String(build2.src)}`,siblingsSkipInstall:!1}}let serviceWorkspace=(0,import_build_utils3.isExperimentalService)(service)?service.workspace:service.root,serviceDir=serviceWorkspace&&serviceWorkspace!=="."?(0,import_path2.join)(workPath,serviceWorkspace):workPath,toolchain=getBuildToolchain(build2,service),customInstall=!!service.installCommand?.trim(),installRoot=await(0,import_build_concurrency.resolveInstallScopeRoot)({toolchain,serviceDir,ceilingDir:repoRootPath});return{outerKey:`${toolchain}:${installRoot}`,innerKey:(0,import_build_concurrency.getInstallScopeKey)({toolchain,installDirectory:serviceDir,installCommand:service.installCommand}),siblingsSkipInstall:toolchain==="node"&&!customInstall}},runBuild:(build2,concurrent)=>buildOne(build2,concurrent),log:message=>output.log(message),reportSecondaryError:(err,build2)=>{output.error(`Build failed for "${build2.src}": ${err instanceof Error?err.message:String(err)}`)}}).finally(()=>{buildersWallMs+=performance.now()-buildersStart})},flushOps=async()=>{let errors=await Promise.all(ops.splice(0));for(let error of errors)if(error)throw error},normalizeBuilderSrc=src=>typeof src=="string"?(0,import_build_utils3.normalizePath)(src).replace(/^\.\//,""):void 0,getBuilderIdentity=build2=>{let normalizedSrc=normalizeBuilderSrc(build2.src);return normalizedSrc?`${build2.use}:${normalizedSrc}`:void 0},getAlreadyExecutedBuild=candidate=>{let candidateIdentity=getBuilderIdentity(candidate);if(candidateIdentity)return executedBuilds.find(build2=>getBuilderIdentity(build2)===candidateIdentity)},appendExperimentalServicesV1Routes=services=>{let serviceRoutes=(0,import_service_topology.generateServicesRoutes)(services);zeroConfigRoutes=(0,import_routing_utils.appendRoutesToPhase)({routes:zeroConfigRoutes,newRoutes:serviceRoutes.hostRewrites.length?serviceRoutes.hostRewrites:null,phase:null});let serviceRewriteRoutes=nestExperimentalServicesV2Output?[]:[...serviceRoutes.rewrites,...serviceRoutes.workers,...serviceRoutes.crons];zeroConfigRoutes.push(...(0,import_routing_utils.appendRoutesToPhase)({routes:[],newRoutes:serviceRewriteRoutes,phase:"filesystem"})),nestExperimentalServicesV2Output||(zeroConfigRoutes.push(...serviceRoutes.defaults),zeroConfigFallbackRoutes.push(...serviceRoutes.fallbacks))},sortBuildResultsByOrdinal=()=>{let orderedResults=Array.from(buildResults.entries()).sort(([a],[b])=>(buildOrdinals.get(a)??Number.MAX_SAFE_INTEGER)-(buildOrdinals.get(b)??Number.MAX_SAFE_INTEGER));buildResults.clear();for(let[build2,result]of orderedResults)buildResults.set(build2,result)};try{if(await runBuilders(builds),await flushOps(),sortBuildResultsByOrdinal(),!hasExperimentalServicesV1ConfiguredInVercelConfig&&!hasExperimentalServicesV2ConfiguredInVercelConfig){let generatedConfigPath=(0,import_path2.join)(outputDir,"config.json"),generatedConfig=await readJSONFile2(generatedConfigPath);if(isCantParseJSONFile(generatedConfig))throw generatedConfig;let defaultGeneratedOutputDir=(0,import_path2.join)(workPath,import_write_build_result3.OUTPUT_DIR),generatedConfigs=[generatedConfig];if((0,import_path2.resolve)(outputDir)!==(0,import_path2.resolve)(defaultGeneratedOutputDir)){let defaultGeneratedConfig=await readJSONFile2((0,import_path2.join)(defaultGeneratedOutputDir,"config.json"));if(isCantParseJSONFile(defaultGeneratedConfig))throw defaultGeneratedConfig;generatedConfigs.push(defaultGeneratedConfig)}let generatedServicesConfig=getGeneratedServicesConfig([...generatedConfigs,...buildResults.values()]),generatedExperimentalServicesV1Config=getGeneratedExperimentalServicesV1Config([...generatedConfigs,...buildResults.values()]);if(generatedServicesConfig||generatedExperimentalServicesV1Config){generatedServicesConfig&&(nestExperimentalServicesV2Output=!0),detectedExperimentalServicesV1Config=generatedExperimentalServicesV1Config,detectedExperimentalServicesV2Config=generatedServicesConfig;let generatedRootRoutesConfig=generatedServicesConfig?generatedConfigs.find(config2=>(hasGeneratedServicesConfig(config2)||hasNonEmptyObject(config2?.experimentalServicesV2))&&Array.isArray(config2?.routes)):void 0;generatedRootRoutesConfig?.routes&&(generatedRootRoutes??=generatedRootRoutesConfig.routes);let generatedBuilders=await span.child("vc.detectGeneratedServices").trace(()=>(0,import_detect_builders_with_services.detectBuildersWithServices)(files,pkg,{...localConfig,reservedFunctionFiles,...generatedServicesConfig?{services:generatedServicesConfig,experimentalServicesV2:void 0}:{experimentalServicesV2:void 0,experimentalServices:generatedExperimentalServicesV1Config},projectSettings,ignoreBuildScript:!0,featHandleMiss:!0,workPath}));if(generatedBuilders.errors&&generatedBuilders.errors.length>0)throw generatedBuilders.errors[0];for(let w of generatedBuilders.warnings)output.warn(w.message,null,w.link,w.action||"Learn More");if(detectedResolvedServices=generatedBuilders.services,!detectedResolvedServices||detectedResolvedServices.length===0?(detectedResolvedServices=void 0,detectedServices=void 0):(detectedServices=detectedResolvedServices.filter(import_build_utils3.isExperimentalService),detectedServices.length>0&&appendExperimentalServicesV1Routes(detectedServices)),detectedServices&&detectedServices.length>0&&generatedBuilders.useImplicitEnvInjection){let serviceUrlEnvVars=(0,import_build_utils3.getExperimentalServiceUrlEnvVars)({services:detectedServices,frameworkList:import_frameworks.frameworkList,currentEnv:process.env,deploymentUrl:process.env.VERCEL_URL});for(let[key,value]of Object.entries(serviceUrlEnvVars))process.env[key]=value,output.debug(`Injected service URL env var: ${key}=${value}`)}let buildsToRun=[],seenBuildsToRun=new Set,recordedServices=[];for(let service of detectedResolvedServices||[]){let alreadyExecutedBuild=getAlreadyExecutedBuild(service.builder);if(alreadyExecutedBuild){if(generatedServicesConfig){output.warn(getGeneratedServiceAlreadyBuiltWarning(service));continue}serviceByBuilder.set(alreadyExecutedBuild,service),recordedServices.push(service);continue}let serviceBuilderIdentity=getBuilderIdentity(service.builder);serviceBuilderIdentity&&!seenBuildsToRun.has(serviceBuilderIdentity)&&(serviceByBuilder.set(service.builder,service),seenBuildsToRun.add(serviceBuilderIdentity),buildsToRun.push(service.builder)),recordedServices.push(service)}servicesToRecord=recordedServices.length>0?recordedServices:void 0,buildsToRun.length>0&&await runBuilders(buildsToRun)}}preDeployEntries.sort((a,b)=>a.ordinal-b.ordinal);for(let entry of preDeployEntries)entry.callback?await entry.callback():output.warn(`Service "${entry.service}" has a preDeployCommand but its builder does not support it. The command was not executed.`)}finally{let servicesCount=detectedResolvedServices?.length??0;(servicesCount>0||daemonBuilds.length>0)&&span.setAttributes({"services.count":String(servicesCount),"daemons.count":String(daemonBuilds.length),"build.concurrency":buildConcurrency===void 0?void 0:String(buildConcurrency),"services.build_ms.sum":String(Math.round(buildDurationsMs.reduce((sum,ms)=>sum+ms,0))),"services.build_ms.max":String(Math.round(Math.max(0,...buildDurationsMs))),"services.build_ms.wall":String(Math.round(buildersWallMs))});let settled=await Promise.all(ops.splice(0));for(let err of settled)err&&ops.push(Promise.resolve(err));for(let runner of liveRunners)try{runner.teardown()}catch(err){output.debug(`Runner teardown failed: ${err instanceof Error?err.message:String(err)}`)}}sortBuildResultsByOrdinal();function getBuildOutputPaths(build2,result){if(!("output"in result)||!result.output)return[];let{output:output2}=result;return Array.isArray(output2)?[]:(0,import_write_build_result3.isLambda)(output2)||(0,import_write_build_result3.isEdgeFunction)(output2)?serviceByBuilder.has(build2)||typeof build2.src!="string"?[]:[(0,import_write_build_result3.getV3OutputPath)(build2)]:Object.keys(output2)}let claimedScheduleOutputPaths=new Set(scheduleEntrypointPlan.outputPaths.values());for(let[build2,result]of buildResults){if(scheduleEntrypointBuilds.has(build2))continue;let conflictingOutputPath=getBuildOutputPaths(build2,result).find(outputPath=>claimedScheduleOutputPaths.has(outputPath));if(conflictingOutputPath)throw new import_build_utils3.NowBuildError({code:"SCHEDULE_FUNCTION_OUTPUT_COLLISION",message:`Schedule function output "${conflictingOutputPath}" conflicts with another build output. Move the conflicting function out of the reserved "_vercel/schedules" namespace.`})}packageManifests.sort((a,b)=>a.ordinal-b.ordinal),await(0,import_manifest.writeManifests)(packageManifests,diagnostics,ops,outputDir),corepackShimDir&&(0,import_corepack.cleanupCorepack)(corepackShimDir);let collectSpan=span.child("vc.finalizeBuildOutput");await flushOps();let needBuildsJsonOverride=!1,speedInsightsVersion=await(0,import_build_utils3.getInstalledPackageVersion)("@vercel/speed-insights");speedInsightsVersion&&(buildsJson.features={...buildsJson.features??{},speedInsightsVersion},needBuildsJsonOverride=!0);let webAnalyticsVersion=await(0,import_build_utils3.getInstalledPackageVersion)("@vercel/analytics");webAnalyticsVersion&&(buildsJson.features={...buildsJson.features??{},webAnalyticsVersion},needBuildsJsonOverride=!0),needBuildsJsonOverride&&await writeBuildJson(buildsJson,outputDir);let configPath=(0,import_path2.join)(outputDir,"config.json"),existingConfig=await readJSONFile2(configPath);if(isCantParseJSONFile(existingConfig))throw existingConfig;if(existingConfig){if("deploymentId"in existingConfig&&typeof existingConfig.deploymentId=="string"){let deploymentId=existingConfig.deploymentId;if(deploymentId.length>32)throw new import_build_utils3.NowBuildError({code:"INVALID_DEPLOYMENT_ID",message:`The deploymentId "${deploymentId}" must be 32 characters or less. Please choose a shorter deploymentId in your config.`,link:"https://vercel.com/docs/skew-protection#custom-skew-protection-deployment-id"});if(!VALID_DEPLOYMENT_ID_PATTERN.test(deploymentId))throw new import_build_utils3.NowBuildError({code:"INVALID_DEPLOYMENT_ID",message:`The deploymentId "${deploymentId}" contains invalid characters. Only alphanumeric characters (a-z, A-Z, 0-9), hyphens (-), and underscores (_) are allowed.`,link:"https://vercel.com/docs/skew-protection#custom-skew-protection-deployment-id"})}existingConfig.overrides&&!nestExperimentalServicesV2Output&&overrides.push({ordinal:Number.MAX_SAFE_INTEGER,override:existingConfig.overrides})}let topLevelBuildResults=nestExperimentalServicesV2Output?new Map(Array.from(buildResults.entries()).filter(([build2])=>!serviceByBuilder.has(build2))):buildResults,builderRoutes=Array.from(topLevelBuildResults.entries()).filter(b=>"routes"in b[1]&&Array.isArray(b[1].routes)).map(b=>{let build2=b[0],buildResult=b[1],entrypoint=build2.src;if(getHasDetectedServices()&&typeof build2.src=="string"){let service=serviceByBuilder.get(build2);service&&(0,import_build_utils3.isExperimentalService)(service)&&service.type==="web"&&typeof service.routePrefix=="string"&&(entrypoint=getServicesMergeEntrypoint(service,build2.src))}return{use:build2.use,entrypoint,routes:buildResult.routes,projectMiddleware:build2.config?.middleware===!0}});zeroConfigRoutes.length&&builderRoutes.unshift({use:"@vercel/zero-config-routes",entrypoint:"/",routes:zeroConfigRoutes});let mergedRoutes=(0,import_routing_utils.mergeRoutes)({userRoutes:routesResult.routes,builds:builderRoutes});zeroConfigFallbackRoutes.length&&(mergedRoutes=(0,import_routing_utils.appendRoutesToPhase)({routes:mergedRoutes,newRoutes:zeroConfigFallbackRoutes,phase:"filesystem"}));let mergedImages=mergeImages(localConfig.images,topLevelBuildResults.values()),orderedServiceCrons=synthesizedServiceCrons.slice().sort((a,b)=>a.ordinal-b.ordinal).map(entry=>entry.cron),mergedCrons=mergeCrons([...localConfig.crons||[],...orderedServiceCrons],buildResults.values()),mergedWildcard=mergeWildcard(topLevelBuildResults.values()),mergedDeploymentId=await mergeDeploymentId(existingConfig?.deploymentId,topLevelBuildResults.values(),workPath,projectSettings.outputDirectory,readJSONFile2,isCantParseJSONFile);if(mergedDeploymentId){if(mergedDeploymentId.length>32)throw new import_build_utils3.NowBuildError({code:"INVALID_DEPLOYMENT_ID",message:`The deploymentId "${mergedDeploymentId}" must be 32 characters or less. Please choose a shorter deploymentId in your config.`,link:"https://vercel.com/docs/skew-protection#custom-skew-protection-deployment-id"});if(!VALID_DEPLOYMENT_ID_PATTERN.test(mergedDeploymentId))throw new import_build_utils3.NowBuildError({code:"INVALID_DEPLOYMENT_ID",message:`The deploymentId "${mergedDeploymentId}" contains invalid characters. Only alphanumeric characters (a-z, A-Z, 0-9), hyphens (-), and underscores (_) are allowed.`,link:"https://vercel.com/docs/skew-protection#custom-skew-protection-deployment-id"})}let topLevelBuildResultOverrides=Array.from(topLevelBuildResults.values()).map(result=>"overrides"in result?result.overrides:void 0).filter(value=>!!value),orderedOverrides=overrides.slice().sort((a,b)=>a.ordinal-b.ordinal).map(entry=>entry.override),mergedOverrides=overrides.length>0||topLevelBuildResultOverrides.length>0?Object.assign({},...orderedOverrides,...topLevelBuildResultOverrides):void 0,framework=topLevelBuildResults.size>0?await getFramework(workPath,topLevelBuildResults):void 0,rootRoutesToAppend=Array.from(topLevelBuildResults.values()).some(result=>(hasGeneratedServicesConfig(result)||"experimentalServicesV2"in result&&hasNonEmptyObject(result.experimentalServicesV2))&&"routes"in result&&Array.isArray(result.routes))?void 0:generatedRootRoutes??existingConfig?.routes,explicitRootRoutes=appendBuildOutputRouteTables(routesResult.routes,rootRoutesToAppend),mergedRoutesWithGeneratedServicesV2Routes=nestExperimentalServicesV2Output?appendBuildOutputRouteTables(mergedRoutes,rootRoutesToAppend):mergedRoutes,resolvedSchedules=mergeSchedules((0,import_schedule_entrypoint.resolveScheduleEntrypointTargets)(authoredSchedules,scheduleEntrypointPlan),buildResults,build2=>nestExperimentalServicesV2Output&&serviceByBuilder.has(build2));await writeDaemonDescriptors(outputDir,daemons,buildResults);let config={version:3,daemons:Object.fromEntries(Object.keys(daemons??{}).map(name=>[name,{}])),routes:mergedRoutesWithGeneratedServicesV2Routes??explicitRootRoutes,afterCacheBypass:mergeAfterCacheBypass(topLevelBuildResults.values())??existingConfig?.afterCacheBypass,images:mergedImages,wildcard:mergedWildcard,overrides:mergedOverrides,framework,crons:mergedCrons,...resolvedSchedules.length>0&&{schedules:(0,import_build_utils3.toScheduleRecord)(resolvedSchedules)},...detectedExperimentalServicesV1Config&&Object.keys(detectedExperimentalServicesV1Config).length>0&&{experimentalServices:detectedExperimentalServicesV1Config},...detectedExperimentalServicesV2Config&&Object.keys(detectedExperimentalServicesV2Config).length>0&&{experimentalServicesV2:detectedExperimentalServicesV2Config},...!detectedExperimentalServicesV1Config&&servicesToRecord&&servicesToRecord.length>0&&{services:servicesToRecord},...mergedDeploymentId&&{deploymentId:mergedDeploymentId}};return await import_fs_extra2.default.writeJSON((0,import_path2.join)(outputDir,"config.json"),config,{spaces:2}),nestExperimentalServicesV2Output&&await writeServiceConfigs(outputDir,buildResults,serviceByBuilder,serviceFileOverrides,detectedExperimentalServicesV2Config,readJSONFile2,isCantParseJSONFile),await writeFlagsJSON(buildResults.values(),outputDir,output),await span.child("vc.frameworkCrossCheck").trace(async s=>{let detectedFrameworks=await detectedFrameworksPromise,executedBuilders=Array.from(buildResults.keys()),usedBuilders=executedBuilders.map(b=>b.use).filter(use=>!!use),mismatchResult=(0,import_framework_detection.warnIfFrameworkMismatch)({configuredFramework:projectSettings.framework,detectedFrameworks,usedBuilders,usedFrameworks:executedBuilders.map(b=>b.config?.framework)},output);s.setAttributes({result:mismatchResult,configuredFramework:projectSettings.framework??void 0,detectedFrameworks:detectedFrameworks.join(",")||void 0,usedBuilders:usedBuilders.join(",")||void 0})}),await span.child("vc.validateBuildOutput").trace(async s=>{let outputProblems=await(0,import_validate_build_output.validateBuildOutput)(outputDir,output);s.setAttributes({problemCount:String(outputProblems.length),problems:outputProblems.map(p=>`${p.severity}: ${p.message}`).join("; ")||void 0}),(0,import_validate_build_output.reportBuildOutputProblems)(outputProblems,output)}),collectSpan.stop(),{buildDuration:buildStamp()}}async function getFramework(cwd,buildResults){let detectedFramework=await(0,import_fs_detectors.detectFrameworkRecord)({fs:new import_fs_detectors.LocalFileSystemDetector(cwd),frameworkList:import_frameworks.frameworkList});if(!detectedFramework){for(let buildResult of buildResults.values())if("framework"in buildResult&&buildResult.framework)return{slug:buildResult.framework.slug,version:buildResult.framework.version};return}if(detectedFramework.useRuntime){for(let[build2,buildResult]of buildResults.entries())if("framework"in buildResult&&build2.use===detectedFramework.useRuntime.use)return buildResult.framework?{slug:buildResult.framework.slug,version:buildResult.framework.version}:void 0}if(detectedFramework.slug){if(detectedFramework.detectedVersion&&import_semver.default.valid(detectedFramework.detectedVersion))return{slug:detectedFramework.slug,version:detectedFramework.detectedVersion};let frameworkVersion=(0,import_fs_detectors.detectFrameworkVersion)(detectedFramework);if(frameworkVersion)return{slug:detectedFramework.slug,version:frameworkVersion}}}function expandBuild(files,build2){if(!build2.use)throw new import_build_utils3.NowBuildError({code:"invalid_build_specification",message:"Field `use` is missing in build specification",link:"https://vercel.com/docs/concepts/projects/project-configuration#builds",action:"View Documentation"});let src=(0,import_path2.normalize)(build2.src||"**").split(import_path2.sep).join("/");if(src==="."||src==="./")throw new import_build_utils3.NowBuildError({code:"invalid_build_specification",message:"A build `src` path resolves to an empty string",link:"https://vercel.com/docs/concepts/projects/project-configuration#builds",action:"View Documentation"});return src[0]==="/"&&(src=src.substring(1)),files.filter(name=>name===src||(0,import_minimatch.default)(name,src,{dot:!0})).map(m=>({...build2,src:m}))}function mergeImages(images,buildResults){for(let result of buildResults)"images"in result&&result.images&&(images=Object.assign({},images,result.images));return images}function mergeCrons(crons=[],buildResults){for(let result of buildResults)"crons"in result&&result.crons&&(crons=crons.concat(result.crons));return crons}function mergeSchedules(authored,buildResults,isNestedServiceBuild){let schedules=[...authored],sources=new Map,claim=(schedule,source)=>{let{name}=schedule,existing=sources.get(name);if(existing)throw new import_build_utils3.NowBuildError({code:"SCHEDULE_NAME_CONFLICT",message:`Schedule "${name}" is defined by both ${existing} and ${source}. Schedule names must be unique within a deployment.`});sources.set(name,source)};for(let schedule of schedules)claim(schedule,"vercel.json");for(let[build2,result]of buildResults){if(!("schedules"in result)||result.schedules===void 0)continue;let source=`the build output of "${build2.use}"${build2.src?` for "${build2.src}"`:""}`,invalid=message=>new import_build_utils3.NowBuildError({code:"INVALID_BUILD_OUTPUT_SCHEDULE",message:`Schedules in ${source} ${message}`});if(!isPlainObject(result.schedules))throw invalid("must be an object keyed by schedule name.");let entries=Object.entries(result.schedules);if(entries.length!==0){if(isNestedServiceBuild(build2))throw new import_build_utils3.NowBuildError({code:"SERVICE_BUILD_OUTPUT_SCHEDULES_UNSUPPORTED",message:`Schedules in ${source} are not supported for services yet. Define them in vercel.json instead.`});for(let[key,schedule]of entries){if(!isPlainObject(schedule))throw invalid("must be objects.");if("entrypoint"in schedule)throw invalid("cannot use `entrypoint`. Build Output schedules must target a `function`, `path`, or `topic`.");if("name"in schedule)throw invalid(`cannot set \`name\` on "${key}". The schedule's key is its name.`);let named={name:key,...schedule};claim(named,source),schedules.push(named)}}}return schedules}function isPlainObject(value){return value!=null&&typeof value=="object"&&!Array.isArray(value)}function mergeWildcard(buildResults){let wildcard;for(let result of buildResults)"wildcard"in result&&result.wildcard&&(wildcard||(wildcard=[]),wildcard.push(...result.wildcard));return wildcard}function mergeAfterCacheBypass(buildResults){let rules;for(let result of buildResults)"afterCacheBypass"in result&&result.afterCacheBypass&&(rules=(rules??[]).concat(result.afterCacheBypass));return rules}function appendBuildOutputRouteTables(...routeTables){let routes=[];for(let routeTable of routeTables){if(!Array.isArray(routeTable)||routeTable.length===0)continue;let phase=null,phaseRoutes=[],flushPhase=()=>{phaseRoutes.length!==0&&(routes=(0,import_routing_utils.appendRoutesToPhase)({routes,newRoutes:phaseRoutes,phase}),phaseRoutes=[])};for(let route of routeTable)(0,import_routing_utils.isHandler)(route)?(flushPhase(),phase=route.handle):phaseRoutes.push(route);flushPhase()}return routes.length>0?routes:void 0}function appendServiceRouteTables(configuredRoutes,...builderRouteTables){if(!configuredRoutes.some(route=>!(0,import_routing_utils.isHandler)(route)&&route.transforms?.some(transform=>transform.type==="request.path")))return appendBuildOutputRouteTables(configuredRoutes,...builderRouteTables);let builderRoutesWithRequestPathFallbacks=builderRouteTables.map(routes=>routes?.map(route=>(0,import_routing_utils.isHandler)(route)||route.dest===void 0||!route.transforms||!route.transforms.some(transform=>transform.type==="request.path")?route:{...route,transforms:route.transforms.map(transform=>transform.type==="request.path"?{...transform,fallback:!0}:transform)}));return appendBuildOutputRouteTables(configuredRoutes,...builderRoutesWithRequestPathFallbacks)}function prependMissingBuildOutputRoutes(routesToPrepend,existingRoutes){if(!Array.isArray(routesToPrepend)||routesToPrepend.length===0)return existingRoutes;let existingRouteKeys=new Set((existingRoutes??[]).map(route=>JSON.stringify(route))),missingRoutes=routesToPrepend.filter(route=>!existingRouteKeys.has(JSON.stringify(route)));return appendBuildOutputRouteTables(missingRoutes,existingRoutes)}async function writeServiceConfigs(outputDir,buildResults,serviceByBuilder,serviceFileOverrides,experimentalServicesV2,readJSONFile2,isCantParseJSONFile){let serviceResults=new Map,serviceOverrides=new Map;for(let[build2,buildResult]of buildResults){let service=serviceByBuilder.get(build2);if(!service)continue;let results=serviceResults.get(service.name)||[];results.push(buildResult),serviceResults.set(service.name,results);let fileOverrides=serviceFileOverrides.get(build2);if(fileOverrides){let overrides=serviceOverrides.get(service.name)||[];overrides.push(fileOverrides),serviceOverrides.set(service.name,overrides)}}await Promise.all(Array.from(serviceResults.entries()).map(async([serviceName,results])=>{let configPath=(0,import_path2.join)(outputDir,"services",serviceName,"config.json"),existingConfig=await readJSONFile2(configPath);if(isCantParseJSONFile(existingConfig))throw existingConfig;let routes=results.flatMap(result=>"routes"in result&&Array.isArray(result.routes)?result.routes:[]),existingRoutes=routes.length>0?void 0:existingConfig?.routes,existingCrons=results.some(result=>"crons"in result&&result.crons?.length)?void 0:existingConfig?.crons,configuredRoutes=experimentalServicesV2?.[serviceName]?getExperimentalServicesV2Routes(experimentalServicesV2[serviceName]):[],overrides=[...results.map(result=>"overrides"in result?result.overrides:void 0).filter(value=>!!value),...serviceOverrides.get(serviceName)||[]],framework=results.find(result=>"framework"in result&&!!result.framework)?.framework,mergedRoutes=appendServiceRouteTables(configuredRoutes,routes,existingRoutes),config={...existingConfig,version:3,routes:mergedRoutes,afterCacheBypass:mergeAfterCacheBypass(results)??existingConfig?.afterCacheBypass,images:mergeImages(existingConfig?.images,results),wildcard:mergeWildcard(results)||existingConfig?.wildcard,overrides:overrides.length>0?Object.assign({},existingConfig?.overrides,...overrides):existingConfig?.overrides,framework:framework||existingConfig?.framework,crons:mergeCrons(existingCrons,results),services:void 0,experimentalServices:void 0,experimentalServicesV2:void 0};await import_fs_extra2.default.writeJSON(configPath,config,{spaces:2})}))}function getExperimentalServicesV2Routes(serviceConfig){let routesResult=(0,import_routing_utils.getTransformedRoutes)({routes:serviceConfig.routes,cleanUrls:serviceConfig.cleanUrls,trailingSlash:serviceConfig.trailingSlash,headers:serviceConfig.headers,redirects:serviceConfig.redirects,rewrites:serviceConfig.rewrites});if(routesResult.error)throw routesResult.error;return routesResult.routes??[]}function getGeneratedExperimentalServicesV1Config(buildResults){for(let result of buildResults)if(result&&"experimentalServices"in result&&hasNonEmptyObject(result.experimentalServices))return result.experimentalServices}function hasGeneratedServicesConfig(result){return result!=null&&"services"in result&&hasNonEmptyObject(result.services)}function getGeneratedServicesConfig(buildResults){for(let result of buildResults){if(hasGeneratedServicesConfig(result))return result.services;if(result&&"experimentalServicesV2"in result&&hasNonEmptyObject(result.experimentalServicesV2))return result.experimentalServicesV2}}async function mergeDeploymentId(existingDeploymentId,buildResults,workPath,outputDirectory,readJSONFile2,isCantParseJSONFile){if(existingDeploymentId)return existingDeploymentId;for(let result of buildResults)if("deploymentId"in result&&result.deploymentId)return result.deploymentId;let nextOutputDirs=new Set([outputDirectory,".next"].filter(dir=>!!dir));for(let nextOutputDir of nextOutputDirs)try{let routesManifestPath=(0,import_path2.join)(workPath,nextOutputDir,"routes-manifest.json");if(await import_fs_extra2.default.pathExists(routesManifestPath)){let routesManifest=await readJSONFile2(routesManifestPath);if(routesManifest&&!isCantParseJSONFile(routesManifest)&&routesManifest.deploymentId)return routesManifest.deploymentId}}catch{}}async function writeFlagsJSON(buildResults,outputDir,output){let flagsFilePath=(0,import_path2.join)(outputDir,"flags.json"),hasFlags=!0,flags=await import_fs_extra2.default.readJSON(flagsFilePath).catch(error=>{if(error.code==="ENOENT")return hasFlags=!1,{definitions:{}};throw error});for(let result of buildResults)if(!(!("flags"in result)||!result.flags||!result.flags.definitions))for(let[key,definition]of Object.entries(result.flags.definitions)){if(result.flags.definitions[key]){output.warn(`The flag "${key}" was found multiple times. Only its first occurrence will be considered.`);continue}hasFlags=!0,flags.definitions[key]=definition}hasFlags&&await import_fs_extra2.default.writeJSON(flagsFilePath,flags,{spaces:2})}function createApiDirFrameworkDetector(detectAllFrameworks2){let cache=new Map;return{detect(builderUse,workPath){let cacheKey=`${builderUse}:${workPath}`,cached=cache.get(cacheKey);return cached||(cached=detectApiDirFramework(builderUse,workPath,detectAllFrameworks2),cache.set(cacheKey,cached)),cached}}}async function detectApiDirFramework(builderUse,workPath,detectAllFrameworks2){let runtimeFrameworks=import_fs_detectors.builderToFrameworks.get(builderUse)??[];if(runtimeFrameworks.length===0)return;let detectedSlugs=await detectAllFrameworks2(workPath,runtimeFrameworks).catch(()=>[]);return detectedSlugs.length===1?detectedSlugs[0]:void 0}async function writeDaemonDescriptors(outputDir,daemons,buildResults){let namePattern=new RegExp(import_build_utils3.DAEMON_NAME_PATTERN),descriptors=new Map;for(let[build2,result]of buildResults){let returned="output"in result&&"daemons"in result?result.daemons:void 0;for(let[name,descriptor]of Object.entries(returned??{})){if(name!==build2.config?.daemon?.name||!namePattern.test(name))throw new Error(`Builder "${build2.use}" returned an unexpected daemon descriptor "${name}".`);descriptors.set(name,descriptor)}}for(let name of Object.keys(daemons??{})){let descriptor=descriptors.get(name);if(!descriptor)throw new import_build_utils3.NowBuildError({code:"MISSING_DAEMON_OUTPUT",message:`Failed to build daemon "${name}": its build returned no daemon descriptor.`});await import_fs_extra2.default.outputJSON((0,import_path2.join)(outputDir,"daemons",name,".vc-config.json"),descriptor,{spaces:2})}}async function writeBuildJson(buildsJson,outputDir){await import_fs_extra2.default.writeJSON((0,import_path2.join)(outputDir,"builds.json"),buildsJson,{spaces:2})}function getBuildToolchain(build2,service){return service?.runtime??["python","go","ruby","rust","container"].find(t=>build2.use.startsWith(`@vercel/${t}`))??"node"}function normalizeServiceRoutePrefix(routePrefix){let prefix=routePrefix.startsWith("/")?routePrefix:`/${routePrefix}`;return prefix!=="/"&&prefix.endsWith("/")&&(prefix=prefix.slice(0,-1)),prefix}function getServicesMergeEntrypoint(service,buildSrc){let routePrefix=typeof service.routePrefix=="string"?service.routePrefix:"/",normalized=normalizeServiceRoutePrefix(routePrefix);return`svc:${String(1e4-normalized.length).padStart(5,"0")}:${normalized}:${service.name}:${buildSrc}`}function attachQueueServiceTrigger(buildOutput,service){let topics=(0,import_build_utils3.getServiceQueueTopicConfigs)(service),consumer=(0,import_build_utils3.sanitizeConsumerName)((0,import_build_utils3.getInternalServiceFunctionPath)(service.name));if(service.builder.use!=="@vercel/python"&&topics.length>1)throw import_diagnostics3.buildDiagnostics.BUILD_WORKER_MULTIPLE_TOPICS({name:service.name,topics:topics.length});for(let topicConfig of topics){let trigger={type:"queue/v2beta",topic:topicConfig.topic,consumer};if(topicConfig.retryAfterSeconds!==void 0&&(trigger.retryAfterSeconds=topicConfig.retryAfterSeconds),topicConfig.initialDelaySeconds!==void 0&&(trigger.initialDelaySeconds=topicConfig.initialDelaySeconds),(0,import_write_build_result3.isLambda)(buildOutput))appendTrigger(buildOutput,trigger);else for(let output of Object.values(buildOutput))(0,import_write_build_result3.isLambda)(output)&&appendTrigger(output,trigger)}}function triggerMatches(trigger,existingTrigger){return trigger.type==="schedule/v1beta"?trigger.type===existingTrigger.type:trigger.type===existingTrigger.type&&trigger.topic===existingTrigger.topic&&trigger.consumer===existingTrigger.consumer}function appendTrigger(lambda,trigger){let existingTriggers=Array.isArray(lambda.experimentalTriggers)?lambda.experimentalTriggers:[];existingTriggers.some(existing=>triggerMatches(trigger,existing))||(lambda.experimentalTriggers=[...existingTriggers,trigger])}async function streamToString(stream){let chunks=[];for await(let chunk of stream){let buffer=Buffer.isBuffer(chunk)?chunk:Buffer.from(chunk);chunks.push(Uint8Array.from(buffer))}return Buffer.concat(chunks).toString("utf-8")}}});var require_dist5=__commonJS({"../../internals/cli-builder-integration/dist/index.js"(exports,module){"use strict";var __defProp=Object.defineProperty,__getOwnPropDesc=Object.getOwnPropertyDescriptor,__getOwnPropNames=Object.getOwnPropertyNames,__hasOwnProp=Object.prototype.hasOwnProperty,__export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:!0})},__copyProps=(to,from,except,desc)=>{if(from&&typeof from=="object"||typeof from=="function")for(let key of __getOwnPropNames(from))!__hasOwnProp.call(to,key)&&key!==except&&__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable});return to},__toCommonJS2=mod=>__copyProps(__defProp({},"__esModule",{value:!0}),mod),src_exports={};__export(src_exports,{BuildRunner:()=>import_build_runner2.BuildRunner,InprocessBuildRunner:()=>import_build_runner2.InprocessBuildRunner,doBuild:()=>import_do_build.doBuild,executeBuilder:()=>import_execute_builder.executeBuilder,sortBuildsForExecution:()=>import_execute_builder.sortBuildsForExecution});module.exports=__toCommonJS2(src_exports);var import_build_runner2=require_build_runner(),import_execute_builder=require_execute_builder(),import_do_build=require_do_build()}});var import_chalk=__toESM(require_source(),1),import_dotenv=__toESM(require_main(),1),import_fs_extra=__toESM(require_lib(),1),import_build_utils2=__toESM(require_build_utils(),1);import{dirname,join as join2,relative,resolve}from"path";import{readdirSync,statSync}from"fs";var import_cli_builder_integration=__toESM(require_dist5(),1);var import_build_utils=__toESM(require_build_utils(),1),import_build_runner=__toESM(require_build_runner(),1);import{fork}from"node:child_process";import{readFileSync,unlinkSync}from"node:fs";import{join}from"node:path";function toError(error){return error instanceof Error?error:Object.assign(new Error,error)}function mergeWorkerMeta(target,workerMeta){for(let[key,value]of Object.entries(workerMeta)){let existing=target[key];if(existing instanceof Set&&value instanceof Set)for(let entry of value)existing.add(entry);else existing===!0&&typeof value!="object"||(target[key]=value)}}function canBuildInSubprocess({hasDetectedServices,builderPath}){return hasDetectedServices&&!!builderPath}function rehydrateFile(obj){if(obj.type==="FileBlob"){let blob=Object.assign(Object.create(import_build_utils.FileBlob.prototype),obj);if(obj.dataPath){blob.data=readFileSync(obj.dataPath);try{unlinkSync(obj.dataPath)}catch{}delete blob.dataPath}return blob}return obj.type==="FileRef"?Object.assign(Object.create(import_build_utils.FileRef.prototype),obj):Object.assign(Object.create(import_build_utils.FileFsRef.prototype),obj)}function rehydrateFiles(files){if(files)for(let name of Object.keys(files))files[name]=rehydrateFile(files[name])}function rehydrateDiagnostics(diagnostics){let result={};for(let[name,file]of Object.entries(diagnostics))result[name]=rehydrateFile(file);return result}function rehydrateOutput(output,seen){if(!output||typeof output!="object"||seen.has(output))return;seen.add(output);let obj=output;if(obj.type==="Lambda")rehydrateFiles(obj.files),Object.setPrototypeOf(obj,import_build_utils.Lambda.prototype);else if(obj.type==="EdgeFunction")rehydrateFiles(obj.files);else if(obj.type==="Prerender")obj.lambda&&rehydrateOutput(obj.lambda,seen),obj.fallback&&rehydrateOutput(obj.fallback,seen);else if(obj.type==="FileFsRef"||obj.type==="FileBlob"||obj.type==="FileRef"){let rehydrated=rehydrateFile(obj);Object.assign(obj,rehydrated),Object.setPrototypeOf(obj,Object.getPrototypeOf(rehydrated))}}function rehydrateResult(result,outputVersion){let output=(result&&"resultVersion"in result?result.result:result).output;if(!output)return;let seen=new Set;if(outputVersion===3)rehydrateOutput(output,seen);else for(let value of Object.values(output))rehydrateOutput(value,seen)}function createServiceLinePrefixer(serviceName,dest){let tag=`[vc:service:${serviceName}] `,pending="";return{onData(chunk){pending+=chunk;let newlineIndex=pending.lastIndexOf(`
7
+ import{createErrorReporter,import_write_build_result,require_constants,require_detect_builders_with_services,require_framework,require_get_files,require_schedule_entrypoint,require_service_schedules,require_write_build_result,toDiagnostic,writeBuildResult}from"../../chunks/chunk-NAJCRBQB.js";import{importBuilders,import_import_builders,preloadVltBuilderImports}from"../../chunks/chunk-7UFI6OYF.js";import"../../chunks/chunk-4CACOKMS.js";import{require_ajv}from"../../chunks/chunk-5CVEW3HD.js";import"../../chunks/chunk-MCRKBVZA.js";import{pullCommandLogic}from"../../chunks/chunk-MOF4QNZH.js";import"../../chunks/chunk-WHUZRBYL.js";import{fetchDeploymentBuildEnv,resolvePerDirectoryLinkRoot}from"../../chunks/chunk-MBL7MWP5.js";import{require_dist as require_dist3}from"../../chunks/chunk-XRIM4BUF.js";import{validateConfig}from"../../chunks/chunk-RBIHS5QI.js";import"../../chunks/chunk-V6Y6UK6B.js";import{require_dist,require_dist2,require_minimatch}from"../../chunks/chunk-NIS66BFX.js";import{readProjectSettings}from"../../chunks/chunk-PXQAWH7E.js";import"../../chunks/chunk-7ULLVH2G.js";import{require_frameworks}from"../../chunks/chunk-6Y2ZL5XJ.js";import{applyDeprecatedTargetFlag,parseTarget}from"../../chunks/chunk-D4TD2KWH.js";import"../../chunks/chunk-7YKFF6CE.js";import"../../chunks/chunk-DX2OHM56.js";import"../../chunks/chunk-TD7AL545.js";import{compileVercelConfig,findSourceVercelConfigFile,require_main}from"../../chunks/chunk-5I7CC45F.js";import"../../chunks/chunk-GPISCZ2P.js";import{require_semver}from"../../chunks/chunk-BPUANOGW.js";import{readJSONFile}from"../../chunks/chunk-FQVIWQ6M.js";import"../../chunks/chunk-25565AGS.js";import"../../chunks/chunk-RCUDI7OF.js";import"../../chunks/chunk-GD7AV7BO.js";import{stamp_default}from"../../chunks/chunk-A2RZZQEP.js";import{ensureLink}from"../../chunks/chunk-HR462OEG.js";import"../../chunks/chunk-VU3RBRDH.js";import"../../chunks/chunk-4VF5BZJP.js";import"../../chunks/chunk-PVASGBEF.js";import{printProjectNotFoundError}from"../../chunks/chunk-6RUAAORO.js";import{getRenamedOption}from"../../chunks/chunk-V32V4SXB.js";import"../../chunks/chunk-Q7D7RGXM.js";import"../../chunks/chunk-BPRGAX62.js";import{buildCommand}from"../../chunks/chunk-5KE67O45.js";import"../../chunks/chunk-CUBRYWA2.js";import{toEnumerableError}from"../../chunks/chunk-Q4GX2UTG.js";import{help}from"../../chunks/chunk-GKALP6QD.js";import"../../chunks/chunk-3G3FQYMW.js";import{detectExplicitScope}from"../../chunks/chunk-TZ6MSTOI.js";import{TelemetryClient}from"../../chunks/chunk-VPUYTI5E.js";import"../../chunks/chunk-2EYYB6YN.js";import"../../chunks/chunk-NWGBDBZI.js";import{buildCommandWithGlobalFlags,writeAgentError}from"../../chunks/chunk-ZUI5EMXD.js";import"../../chunks/chunk-FY4ORPZH.js";import{DEFAULT_VERCEL_CONFIG_FILENAME,VERCEL_DIR,getLinkedProject,getProjectLink,require_dist2 as require_dist4,require_lib,resolveProjectCwd}from"../../chunks/chunk-KNAOHPOI.js";import"../../chunks/chunk-64UCX5JM.js";import{ua_default}from"../../chunks/chunk-ITQPDXXA.js";import"../../chunks/chunk-56UH6NQ3.js";import"../../chunks/chunk-4NTBYNFR.js";import{isArgumentError,parseArguments}from"../../chunks/chunk-C4N4LKPM.js";import"../../chunks/chunk-2VBFQZ72.js";import"../../chunks/chunk-GJCVOEC2.js";import"../../chunks/chunk-LUX4PBJL.js";import"../../chunks/chunk-OPORM35X.js";import"../../chunks/chunk-MXTC4ZAQ.js";import"../../chunks/chunk-ZS2WS4AM.js";import"../../chunks/chunk-4SAVH3H7.js";import{CantParseJSONFile}from"../../chunks/chunk-T2FCF46I.js";import{getCommandName,require_lib as require_lib2}from"../../chunks/chunk-VRH7LWOC.js";import{pkg_default}from"../../chunks/chunk-DBT6PGEH.js";import{cliErrorFromUnknown,defineDiagnostics,dist_exports,emoji,init_dist,output_manager_default,prependEmoji,recordCliError}from"../../chunks/chunk-W634OFUG.js";import"../../chunks/chunk-BLUPZPAS.js";import{require_build_utils}from"../../chunks/chunk-5MDNVAE6.js";import"../../chunks/chunk-OCR5CRTH.js";import"../../chunks/chunk-RM3ZDRYE.js";import"../../chunks/chunk-YHPPP3SF.js";import"../../chunks/chunk-PUKYAALC.js";import{getFlagsSpecification,quoteArg}from"../../chunks/chunk-CKTLP5GX.js";import"../../chunks/chunk-2BKALEOP.js";import{require_source}from"../../chunks/chunk-NB2WLB3J.js";import"../../chunks/chunk-ISWW3DKF.js";import"../../chunks/chunk-BULSRTQE.js";import"../../chunks/chunk-BRQUZ5NC.js";import"../../chunks/chunk-D6REP5QQ.js";import"../../chunks/chunk-FBYA6LLM.js";import"../../chunks/chunk-MY4MONOH.js";import"../../chunks/chunk-7EJQLVWX.js";import"../../chunks/chunk-SCV7XEEO.js";import{AGENT_REASON,AGENT_STATUS}from"../../chunks/chunk-CFYTFXX6.js";import{__commonJS,__require,__toCommonJS,__toESM}from"../../chunks/chunk-BZENIQ7N.js";var require_build_runner=__commonJS({"../../internals/cli-builder-integration/dist/build-runner.js"(exports,module){"use strict";var __defProp=Object.defineProperty,__getOwnPropDesc=Object.getOwnPropertyDescriptor,__getOwnPropNames=Object.getOwnPropertyNames,__hasOwnProp=Object.prototype.hasOwnProperty,__export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:!0})},__copyProps=(to,from,except,desc)=>{if(from&&typeof from=="object"||typeof from=="function")for(let key of __getOwnPropNames(from))!__hasOwnProp.call(to,key)&&key!==except&&__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable});return to},__toCommonJS2=mod=>__copyProps(__defProp({},"__esModule",{value:!0}),mod),build_runner_exports={};__export(build_runner_exports,{BuildRunner:()=>BuildRunner3,InprocessBuildRunner:()=>InprocessBuildRunner2});module.exports=__toCommonJS2(build_runner_exports);var BuildRunner3=class{constructor(ctx){this.ctx=ctx}},InprocessBuildRunner2=class extends BuildRunner3{constructor(ctx,builder){super(ctx),this.builder=builder}async build(){return await this.builder.build(this.ctx.buildOptions)}async diagnostics(){return await this.ctx.builderSpan.child("vc.builder.diagnostics").trace(async()=>await this.builder.diagnostics?.(this.ctx.buildOptions))}teardown(){}}}});var require_sort_builders=__commonJS({"../../internals/builder-orchestration/dist/sort-builders.js"(exports,module){"use strict";var __defProp=Object.defineProperty,__getOwnPropDesc=Object.getOwnPropertyDescriptor,__getOwnPropNames=Object.getOwnPropertyNames,__hasOwnProp=Object.prototype.hasOwnProperty,__export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:!0})},__copyProps=(to,from,except,desc)=>{if(from&&typeof from=="object"||typeof from=="function")for(let key of __getOwnPropNames(from))!__hasOwnProp.call(to,key)&&key!==except&&__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable});return to},__toCommonJS2=mod=>__copyProps(__defProp({},"__esModule",{value:!0}),mod),sort_builders_exports={};__export(sort_builders_exports,{sortBuilders:()=>sortBuilders});module.exports=__toCommonJS2(sort_builders_exports);var import_frameworks=require_frameworks();function sortBuilders(builds){let frameworkRuntimeSet=new Set(import_frameworks.frameworkList.map(f=>f.useRuntime?.use||"@vercel/static-build"));frameworkRuntimeSet.delete("@vercel/go"),frameworkRuntimeSet.delete("@vercel/python"),frameworkRuntimeSet.delete("@vercel/ruby"),frameworkRuntimeSet.delete("@vercel/rust");let toNumber=build2=>build2.use==="@vercel/go"||build2.use==="@vercel/python"||build2.use==="@vercel/ruby"||build2.use==="@vercel/rust"?1:frameworkRuntimeSet.has(build2.use)?0:2;return builds.sort((build1,build2)=>toNumber(build1)-toNumber(build2))}}});var require_execute_builder=__commonJS({"../../internals/cli-builder-integration/dist/execute-builder.js"(exports,module){"use strict";var __defProp=Object.defineProperty,__getOwnPropDesc=Object.getOwnPropertyDescriptor,__getOwnPropNames=Object.getOwnPropertyNames,__hasOwnProp=Object.prototype.hasOwnProperty,__export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:!0})},__copyProps=(to,from,except,desc)=>{if(from&&typeof from=="object"||typeof from=="function")for(let key of __getOwnPropNames(from))!__hasOwnProp.call(to,key)&&key!==except&&__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable});return to},__toCommonJS2=mod=>__copyProps(__defProp({},"__esModule",{value:!0}),mod),execute_builder_exports={};__export(execute_builder_exports,{executeBuilder:()=>executeBuilder2,sortBuildsForExecution:()=>sortBuildsForExecution2});module.exports=__toCommonJS2(execute_builder_exports);var import_sort_builders=require_sort_builders(),import_build_runner2=require_build_runner();async function executeBuilder2({builder,buildOptions,span,isFrontendBuilder,hasDetectedServices,framework,runner}){let buildRunner=runner??new import_build_runner2.InprocessBuildRunner({requirePath:"",buildOptions,cwd:buildOptions.workPath,expectsPreDeploy:!1,builderSpan:span},builder),rawBuildResult=await span.trace(()=>buildRunner.build()),buildResult=builder.version===-1&&"resultVersion"in rawBuildResult?rawBuildResult.result:rawBuildResult;return!hasDetectedServices&&buildOptions.config.zeroConfig&&isFrontendBuilder&&"output"in buildResult&&!buildResult.routes&&framework&&(buildResult.routes=await getFrameworkRoutes(framework,buildOptions.workPath)),{buildResult,rawBuildResult}}var sortBuildsForExecution2=import_sort_builders.sortBuilders;async function getFrameworkRoutes(framework,dirPrefix){return typeof framework.defaultRoutes=="function"?framework.defaultRoutes(dirPrefix):Array.isArray(framework.defaultRoutes)?framework.defaultRoutes:[]}}});var require_get_daemon_builders=__commonJS({"../../internals/cli-builder-integration/dist/get-daemon-builders.js"(exports,module){"use strict";var __defProp=Object.defineProperty,__getOwnPropDesc=Object.getOwnPropertyDescriptor,__getOwnPropNames=Object.getOwnPropertyNames,__hasOwnProp=Object.prototype.hasOwnProperty,__export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:!0})},__copyProps=(to,from,except,desc)=>{if(from&&typeof from=="object"||typeof from=="function")for(let key of __getOwnPropNames(from))!__hasOwnProp.call(to,key)&&key!==except&&__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable});return to},__toCommonJS2=mod=>__copyProps(__defProp({},"__esModule",{value:!0}),mod),get_daemon_builders_exports={};__export(get_daemon_builders_exports,{getDaemonBuilders:()=>getDaemonBuilders,getDaemonDockerfiles:()=>getDaemonDockerfiles,isContainerPresetFromDaemons:()=>isContainerPresetFromDaemons,validateDaemonImageRepositories:()=>validateDaemonImageRepositories});module.exports=__toCommonJS2(get_daemon_builders_exports);var import_fs2=__require("fs"),import_promises=__require("fs/promises"),import_path2=__require("path"),import_build_utils3=__require("@vercel/build-utils");function validateDaemonImageRepositories(daemons){let owners=new Map;for(let name of Object.keys(daemons??{})){let repository=(0,import_build_utils3.getDaemonImageRepository)(name),owner=owners.get(repository);if(owner!==void 0)throw new import_build_utils3.NowBuildError({code:"INVALID_DAEMONS",message:`Can't build daemon "${name}": daemon "${owner}" uses the same image repository "${repository}". Rename one of them.`});owners.set(repository,name)}}function getDaemonDockerfiles(daemons){return new Set(Object.values(daemons??{}).map(daemon=>(0,import_build_utils3.normalizePath)((0,import_path2.join)(daemon.root,daemon.entrypoint))))}var CONTAINER_PRESET_FILES=["Dockerfile.vercel","Containerfile.vercel","Dockerfile","Containerfile"];function isContainerPresetFromDaemons(workPath,daemons){let present=CONTAINER_PRESET_FILES.filter(name=>(0,import_fs2.existsSync)((0,import_path2.join)(workPath,name)));if(present.length===0)return!1;let daemonDockerfiles=getDaemonDockerfiles(daemons),built=present.find(name=>name!=="Containerfile");return built!==void 0&&daemonDockerfiles.has(built)||present.every(name=>daemonDockerfiles.has(name))}async function getDaemonBuilders({workPath,repoRootPath=workPath,daemons,files}){if(daemons===void 0)return[];let root=await(0,import_promises.realpath)(workPath),repoRoot=await(0,import_promises.realpath)(repoRootPath);return Promise.all(Object.entries(daemons).map(async([name,daemon])=>{let source=(0,import_build_utils3.normalizePath)((0,import_path2.join)(daemon.root,daemon.entrypoint)),aboveProject=source.startsWith("../"),invalidSource=reason=>new import_build_utils3.NowBuildError({code:"INVALID_DAEMON_ROOT",message:`Can't build daemon "${name}": "${source}" ${reason}`}),notInProject=invalidSource("isn't in the project files. Check `root` and `entrypoint`, and that .vercelignore doesn't exclude it.");if((0,import_path2.isAbsolute)(daemon.root)||!aboveProject&&!files.includes(source))throw notInProject;let dockerfile=await(0,import_promises.realpath)((0,import_path2.join)(workPath,source)).catch(()=>{throw notInProject}),relativePath=(0,import_path2.relative)(aboveProject?repoRoot:root,dockerfile);if((0,import_path2.isAbsolute)(relativePath)||relativePath===".."||relativePath.startsWith(`..${import_path2.sep}`))throw invalidSource(aboveProject?"is outside the repository.":"is a symlink to a file outside the project.");return{src:source,use:"@vercel/container",config:{daemon:{name,...daemon}}}}))}}});var require_diagnostics=__commonJS({"../../internals/cli-builder-integration/dist/diagnostics.js"(exports,module){"use strict";var __defProp=Object.defineProperty,__getOwnPropDesc=Object.getOwnPropertyDescriptor,__getOwnPropNames=Object.getOwnPropertyNames,__hasOwnProp=Object.prototype.hasOwnProperty,__export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:!0})},__copyProps=(to,from,except,desc)=>{if(from&&typeof from=="object"||typeof from=="function")for(let key of __getOwnPropNames(from))!__hasOwnProp.call(to,key)&&key!==except&&__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable});return to},__toCommonJS2=mod=>__copyProps(__defProp({},"__esModule",{value:!0}),mod),diagnostics_exports={};__export(diagnostics_exports,{buildDiagnostics:()=>buildDiagnostics});module.exports=__toCommonJS2(diagnostics_exports);var import_nostics2=(init_dist(),__toCommonJS(dist_exports)),buildDiagnostics=(0,import_nostics2.defineDiagnostics)({codes:{BUILD_BUILDER_LOAD_FAILED:{why:p=>`Failed to load Builder "${p.use}"`,fix:"Check that the builder is installed and spelled correctly in your Vercel configuration."},BUILD_CONCURRENT_INPROCESS:{why:p=>`Internal error: build for "${p.entrypoint}" was scheduled concurrently but cannot run in a subprocess`,fix:"This is a Vercel CLI error. Report it at https://vercel.com/help."},BUILD_WORKER_MULTIPLE_TOPICS:{why:p=>`Worker service "${p.name}" has ${p.topics} topics, but multiple topics are only supported for Python workers.`,fix:"Configure one topic per worker service, or use a Python worker for multiple topics."}}})}});var require_build_concurrency=__commonJS({"../../internals/cli-builder-integration/dist/build-concurrency.js"(exports,module){"use strict";var __defProp=Object.defineProperty,__getOwnPropDesc=Object.getOwnPropertyDescriptor,__getOwnPropNames=Object.getOwnPropertyNames,__hasOwnProp=Object.prototype.hasOwnProperty,__export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:!0})},__copyProps=(to,from,except,desc)=>{if(from&&typeof from=="object"||typeof from=="function")for(let key of __getOwnPropNames(from))!__hasOwnProp.call(to,key)&&key!==except&&__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable});return to},__toCommonJS2=mod=>__copyProps(__defProp({},"__esModule",{value:!0}),mod),build_concurrency_exports={};__export(build_concurrency_exports,{getInstallScopeKey:()=>getInstallScopeKey,groupIntoScopeChains:()=>groupIntoScopeChains,resolveInstallScopeRoot:()=>resolveInstallScopeRoot,runBuildsWithConcurrency:()=>runBuildsWithConcurrency,runWithConcurrency:()=>runWithConcurrency});module.exports=__toCommonJS2(build_concurrency_exports);var import_node_fs2=__require("node:fs"),import_node_path2=__require("node:path");async function runWithConcurrency(items,limit,fn,onSecondaryError){let queue=[...items],max=Math.max(limit,1),active=0,failed=!1,firstError;if(await new Promise(finish=>{let enqueue=item=>{queue.push(item),pump()},pump=()=>{for(;active<max&&queue.length>0&&!failed;){let item=queue.shift();active++,fn(item,enqueue).then(()=>{active--,pump()},err=>{active--,failed?onSecondaryError?.(err,item):(failed=!0,firstError=err),pump()})}active===0&&finish()};pump()}),failed)throw firstError}function getInstallScopeKey({toolchain,installDirectory,installCommand}){return JSON.stringify([toolchain,(0,import_node_path2.normalize)(installDirectory),typeof installCommand=="string"?["cmd",installCommand.trim()]:"default"])}var NODE_LOCKFILES=["pnpm-lock.yaml","yarn.lock","package-lock.json","npm-shrinkwrap.json","bun.lock","bun.lockb"];async function fileExists(path){try{return await import_node_fs2.promises.stat(path),!0}catch{return!1}}var SERVICE_DIR_TOOLCHAINS=new Set(["go","ruby","rust","container"]);async function resolveInstallScopeRoot({toolchain,serviceDir,ceilingDir}){if(toolchain!=="node"&&toolchain!=="python")return SERVICE_DIR_TOOLCHAINS.has(toolchain)?(0,import_node_path2.normalize)(serviceDir):(0,import_node_path2.normalize)(ceilingDir);let ceiling=(0,import_node_path2.normalize)(ceilingDir),dir=(0,import_node_path2.normalize)(serviceDir);if(dir!==ceiling&&!dir.startsWith(ceiling+import_node_path2.sep))return dir;let nearestLockfileDir,nearestPackageJsonDir,done=!1;for(;!done;){if(toolchain==="node"){if(nearestLockfileDir===void 0){for(let lockfile of NODE_LOCKFILES)if(await fileExists((0,import_node_path2.join)(dir,lockfile))){nearestLockfileDir=dir;break}}if(await fileExists((0,import_node_path2.join)(dir,"pnpm-workspace.yaml")))return dir;try{let pkg=JSON.parse(await import_node_fs2.promises.readFile((0,import_node_path2.join)(dir,"package.json"),"utf8"));if(pkg&&typeof pkg=="object"){if("workspaces"in pkg)return dir;nearestPackageJsonDir??=dir}}catch{}}else try{if((await import_node_fs2.promises.readFile((0,import_node_path2.join)(dir,"pyproject.toml"),"utf8")).includes("[tool.uv.workspace]"))return dir}catch{}let parent=(0,import_node_path2.dirname)(dir);done=dir===ceiling||parent===dir,dir=parent}return nearestLockfileDir??nearestPackageJsonDir??(0,import_node_path2.normalize)(serviceDir)}async function runBuildsWithConcurrency({builds,concurrency,isEligible,resolveScope,forceSingleChain,runBuild,log,reportSecondaryError}){if(concurrency<=1){for(let build2 of builds)await runBuild(build2,!1);return}let parallelBuilds=[],sequentialBuilds=[];for(let build2 of builds)(isEligible(build2)?parallelBuilds:sequentialBuilds).push(build2);if(parallelBuilds.length>0){let chains,siblingsOf;if(forceSingleChain)chains=[parallelBuilds],siblingsOf=new Map;else{let scopeByBuild=new Map;for(let build2 of parallelBuilds)scopeByBuild.set(build2,await resolveScope(build2));({chains,siblingsOf}=groupIntoScopeChains(parallelBuilds,build2=>scopeByBuild.get(build2)))}log(`Running ${parallelBuilds.length} builds across ${chains.length} install scope${chains.length===1?"":"s"} (concurrency ${concurrency})`);let abortedRun=!1,activeBuildOfChain=new Map;await runWithConcurrency(chains,concurrency,async(chain,enqueue)=>{for(let build2 of chain){if(abortedRun)return;activeBuildOfChain.set(chain,build2);try{await runBuild(build2,!0)}catch(err){throw abortedRun=!0,err}let siblings=siblingsOf.get(build2);if(siblings)for(let sibling of siblings)enqueue([sibling])}},(err,chain)=>{let build2=activeBuildOfChain.get(chain);build2!==void 0&&reportSecondaryError(err,build2)})}for(let build2 of sequentialBuilds)await runBuild(build2,!1)}function groupIntoScopeChains(items,scopeOf){let chainByOuter=new Map,leaderByInnerByOuter=new Map,siblingsOf=new Map;for(let item of items){let scope=scopeOf(item),chain=chainByOuter.get(scope.outerKey);chain||(chain=[],chainByOuter.set(scope.outerKey,chain));let leaderByInner=leaderByInnerByOuter.get(scope.outerKey);leaderByInner||(leaderByInner=new Map,leaderByInnerByOuter.set(scope.outerKey,leaderByInner));let leader=leaderByInner.get(scope.innerKey);if(leader===void 0)leaderByInner.set(scope.innerKey,item),chain.push(item);else if(scope.siblingsSkipInstall){let siblings=siblingsOf.get(leader);siblings||(siblings=[],siblingsOf.set(leader,siblings)),siblings.push(item)}else chain.push(item)}return{chains:Array.from(chainByOuter.values()),siblingsOf}}}});var require_workspace_install_targets=__commonJS({"../../internals/cli-builder-integration/dist/workspace-install-targets.js"(exports,module){"use strict";var __defProp=Object.defineProperty,__getOwnPropDesc=Object.getOwnPropertyDescriptor,__getOwnPropNames=Object.getOwnPropertyNames,__hasOwnProp=Object.prototype.hasOwnProperty,__export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:!0})},__copyProps=(to,from,except,desc)=>{if(from&&typeof from=="object"||typeof from=="function")for(let key of __getOwnPropNames(from))!__hasOwnProp.call(to,key)&&key!==except&&__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable});return to},__toCommonJS2=mod=>__copyProps(__defProp({},"__esModule",{value:!0}),mod),workspace_install_targets_exports={};__export(workspace_install_targets_exports,{collectWorkspaceInstallTargets:()=>collectWorkspaceInstallTargets});module.exports=__toCommonJS2(workspace_install_targets_exports);var import_path2=__require("path"),import_build_utils3=__require("@vercel/build-utils"),import_fs_detectors=require_dist2();function isWorkspaceInstallTarget(target){return!!(target&&typeof target=="object"&&typeof target.installRoot=="string"&&typeof target.packageJsonPath=="string"&&typeof target.relativePath=="string")}async function collectWorkspaceInstallTargets({builds,existingTargets,repoRootPath,serviceByBuilder,workPath}){let targets=new Map(Array.isArray(existingTargets)?existingTargets.filter(isWorkspaceInstallTarget).map(target=>[target.packageJsonPath,target]):[]),targetPaths=[];for(let build2 of builds){let service=serviceByBuilder.get(build2);if(build2.use.startsWith("@vercel/node")||build2.use.startsWith("@vercel/backends")||service?.runtime==="node")if(service){let serviceRoot=(0,import_build_utils3.isExperimentalService)(service)?service.workspace:service.root;targetPaths.push(serviceRoot&&serviceRoot!=="."?(0,import_path2.join)(workPath,serviceRoot):workPath)}else typeof build2.src=="string"&&targetPaths.push((0,import_path2.join)(workPath,(0,import_path2.dirname)(build2.src)))}let installScopes=new Map;return await Promise.all(targetPaths.map(async targetPath=>{let{cliType,lockfilePath}=await(0,import_build_utils3.scanParentDirs)(targetPath,!1,repoRootPath);if(!lockfilePath||cliType!=="npm"&&cliType!=="pnpm"&&cliType!=="yarn"&&cliType!=="bun")return;let installRoot=(0,import_path2.dirname)(lockfilePath),scope=installScopes.get(installRoot)??{paths:[],type:cliType};scope.paths.push((0,import_path2.relative)(installRoot,targetPath)),installScopes.set(installRoot,scope)})),await Promise.all(Array.from(installScopes,async([installRoot,{paths,type}])=>{let resolved=await(0,import_fs_detectors.resolveWorkspacePackageTargets)({fs:new import_fs_detectors.LocalFileSystemDetector(installRoot),targetPaths:paths,type});if(!resolved){for(let[packageJsonPath,target]of targets)target.installRoot===installRoot&&targets.delete(packageJsonPath);return}for(let target of resolved){let packageJsonPath=(0,import_path2.join)(installRoot,target.packageJsonPath);targets.set(packageJsonPath,{...target,installRoot,packageJsonPath})}})),Array.from(targets.values())}}});var require_backend_rewrite_warning=__commonJS({"../../internals/cli-builder-integration/dist/backend-rewrite-warning.js"(exports,module){"use strict";var __defProp=Object.defineProperty,__getOwnPropDesc=Object.getOwnPropertyDescriptor,__getOwnPropNames=Object.getOwnPropertyNames,__hasOwnProp=Object.prototype.hasOwnProperty,__export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:!0})},__copyProps=(to,from,except,desc)=>{if(from&&typeof from=="object"||typeof from=="function")for(let key of __getOwnPropNames(from))!__hasOwnProp.call(to,key)&&key!==except&&__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable});return to},__toCommonJS2=mod=>__copyProps(__defProp({},"__esModule",{value:!0}),mod),backend_rewrite_warning_exports={};__export(backend_rewrite_warning_exports,{BACKEND_REWRITE_BEHAVIOR_WARNING:()=>BACKEND_REWRITE_BEHAVIOR_WARNING,hasBackendRewriteBehaviorChange:()=>hasBackendRewriteBehaviorChange});module.exports=__toCommonJS2(backend_rewrite_warning_exports);var import_build_utils3=__require("@vercel/build-utils"),BACKEND_REWRITE_BEHAVIOR_WARNING="Internal rewrites in backend framework projects now route requests using the rewritten destination path. This behavior was previously unsupported and may change which application route handles a request. Review your rewrite configuration to ensure this behavior is expected.";function hasInternalPathRewrite(rewrites){return rewrites?.some(rewrite=>typeof rewrite.destination=="string"&&rewrite.destination.startsWith("/"))??!1}function isAffectedFramework(framework){return framework==="go"||framework==="container"||(0,import_build_utils3.isPythonFramework)(framework)||(0,import_build_utils3.isNodeBackendFramework)(framework)}function hasBackendRewriteBehaviorChange({projectRewrites,builders}){return hasInternalPathRewrite(projectRewrites)&&(builders??[]).some(builder=>isAffectedFramework(builder.config?.framework))}}});var require_schedule_static_source_warning=__commonJS({"../../internals/cli-builder-integration/dist/schedule-static-source-warning.js"(exports,module){"use strict";var __create=Object.create,__defProp=Object.defineProperty,__getOwnPropDesc=Object.getOwnPropertyDescriptor,__getOwnPropNames=Object.getOwnPropertyNames,__getProtoOf=Object.getPrototypeOf,__hasOwnProp=Object.prototype.hasOwnProperty,__export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:!0})},__copyProps=(to,from,except,desc)=>{if(from&&typeof from=="object"||typeof from=="function")for(let key of __getOwnPropNames(from))!__hasOwnProp.call(to,key)&&key!==except&&__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable});return to},__toESM2=(mod,isNodeMode,target)=>(target=mod!=null?__create(__getProtoOf(mod)):{},__copyProps(isNodeMode||!mod||!mod.__esModule?__defProp(target,"default",{value:mod,enumerable:!0}):target,mod)),__toCommonJS2=mod=>__copyProps(__defProp({},"__esModule",{value:!0}),mod),schedule_static_source_warning_exports={};__export(schedule_static_source_warning_exports,{getPublishedPythonSources:()=>getPublishedPythonSources,getPublishedPythonSourcesWarning:()=>getPublishedPythonSourcesWarning});module.exports=__toCommonJS2(schedule_static_source_warning_exports);var import_path2=__require("path"),import_minimatch=__toESM2(require_minimatch()),import_fs_detectors=require_dist2(),LISTED_FILE_LIMIT=3;function getPublishedPythonSources(builds,files){let pythonFiles=files.filter(file=>file.endsWith(".py")),published=new Set;for(let build2 of builds)for(let file of getRootPublishedFiles(build2,pythonFiles))published.add(file);return Array.from(published).sort()}function getRootPublishedFiles(build2,files){let src=(build2.src||"**").replace(/^\//,"");if((0,import_fs_detectors.isOfficialRuntime)("static",build2.use))return build2.config?.outputDirectory?[]:files.filter(file=>file===src||(0,import_minimatch.default)(file,src,{dot:!0}));if((0,import_fs_detectors.isOfficialRuntime)("static-build",build2.use)){let{outputDirectory,distDir}=build2.config??{};if(outputDirectory!=="."&&distDir!==".")return[];let root=import_path2.posix.dirname(src);return root==="."?files:files.filter(file=>file.startsWith(`${root}/`))}return[]}function getPublishedPythonSourcesWarning(files){let subject=files.length===1?"1 Python file is published as a static file":`${files.length} Python files are published as static files`,pronoun=files.length===1?"it":"them";return`${subject} and can be downloaded: ${formatFileList(files)}. To keep ${pronoun} private, set \`outputDirectory\` to a directory that only contains static files.`}function formatFileList(files){let listed=files.slice(0,LISTED_FILE_LIMIT),hidden=files.length-listed.length,items=hidden>0?[...listed,`${hidden} more`]:listed,last=items.pop();if(items.length===0)return last??"";let separator=items.length===1?" and ":", and ";return`${items.join(", ")}${separator}${last}`}}});var require_service_route_ownership=__commonJS({"../../internals/cli-builder-integration/dist/service-route-ownership.js"(exports,module){"use strict";var __defProp=Object.defineProperty,__getOwnPropDesc=Object.getOwnPropertyDescriptor,__getOwnPropNames=Object.getOwnPropertyNames,__hasOwnProp=Object.prototype.hasOwnProperty,__export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:!0})},__copyProps=(to,from,except,desc)=>{if(from&&typeof from=="object"||typeof from=="function")for(let key of __getOwnPropNames(from))!__hasOwnProp.call(to,key)&&key!==except&&__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable});return to},__toCommonJS2=mod=>__copyProps(__defProp({},"__esModule",{value:!0}),mod),service_route_ownership_exports={};__export(service_route_ownership_exports,{scopeRoutesToServiceOwnership:()=>scopeRoutesToServiceOwnership});module.exports=__toCommonJS2(service_route_ownership_exports);var import_routing_utils=require_dist();function isWebServiceWithPrefix(service){return service.type==="web"&&typeof service.routePrefix=="string"}function getWebRoutePrefixes(services){let unique=new Set;for(let service of services)isWebServiceWithPrefix(service)&&unique.add((0,import_routing_utils.normalizeRoutePrefix)(service.routePrefix));return Array.from(unique)}function scopeRoutesToServiceOwnership({routes,owner,allServices}){if(!isWebServiceWithPrefix(owner))return routes;let allWebPrefixes=getWebRoutePrefixes(allServices),ownershipGuard=(0,import_routing_utils.getOwnershipGuard)(owner.routePrefix,allWebPrefixes);return ownershipGuard?routes.map(route=>"handle"in route||typeof route.src!="string"?route:{...route,src:(0,import_routing_utils.scopeRouteSourceToOwnership)(route.src,ownershipGuard)}):routes}}});var require_validate_cron_secret=__commonJS({"../../internals/cli-builder-integration/dist/validate-cron-secret.js"(exports,module){"use strict";var __defProp=Object.defineProperty,__getOwnPropDesc=Object.getOwnPropertyDescriptor,__getOwnPropNames=Object.getOwnPropertyNames,__hasOwnProp=Object.prototype.hasOwnProperty,__export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:!0})},__copyProps=(to,from,except,desc)=>{if(from&&typeof from=="object"||typeof from=="function")for(let key of __getOwnPropNames(from))!__hasOwnProp.call(to,key)&&key!==except&&__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable});return to},__toCommonJS2=mod=>__copyProps(__defProp({},"__esModule",{value:!0}),mod),validate_cron_secret_exports={};__export(validate_cron_secret_exports,{validateCronSecret:()=>validateCronSecret});module.exports=__toCommonJS2(validate_cron_secret_exports);var import_build_utils3=__require("@vercel/build-utils");function validateCronSecret(cronSecret){if(!cronSecret)return null;if(cronSecret!==cronSecret.trim())return new import_build_utils3.NowBuildError({code:"INVALID_CRON_SECRET",message:"The `CRON_SECRET` environment variable contains leading or trailing whitespace, which is not allowed in HTTP header values.",link:"https://vercel.link/securing-cron-jobs",action:"Learn More"});let invalidChars=[];for(let i=0;i<cronSecret.length;i++){let code=cronSecret.charCodeAt(i);code===9||code>=32&&code<=126||invalidChars.push({char:cronSecret[i],index:i,code})}if(invalidChars.length>0){let descriptions=invalidChars.slice(0,3).map(({code,index})=>code<32?`control character (0x${code.toString(16).padStart(2,"0")}) at position ${index}`:code===127?`DEL character at position ${index}`:`non-ASCII character (0x${code.toString(16).padStart(2,"0")}) at position ${index}`),moreCount=invalidChars.length-3,moreText=moreCount>0?`, and ${moreCount} more`:"";return new import_build_utils3.NowBuildError({code:"INVALID_CRON_SECRET",message:`The \`CRON_SECRET\` environment variable contains characters that are not valid in HTTP headers: ${descriptions.join(", ")}${moreText}. Only visible ASCII characters (letters, digits, symbols), spaces, and tabs are allowed.`,link:"https://vercel.link/securing-cron-jobs",action:"Learn More"})}return null}}});var require_validate_package_manifest=__commonJS({"../../internals/cli-builder-integration/dist/validate-package-manifest.js"(exports,module){"use strict";var __create=Object.create,__defProp=Object.defineProperty,__getOwnPropDesc=Object.getOwnPropertyDescriptor,__getOwnPropNames=Object.getOwnPropertyNames,__getProtoOf=Object.getPrototypeOf,__hasOwnProp=Object.prototype.hasOwnProperty,__export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:!0})},__copyProps=(to,from,except,desc)=>{if(from&&typeof from=="object"||typeof from=="function")for(let key of __getOwnPropNames(from))!__hasOwnProp.call(to,key)&&key!==except&&__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable});return to},__toESM2=(mod,isNodeMode,target)=>(target=mod!=null?__create(__getProtoOf(mod)):{},__copyProps(isNodeMode||!mod||!mod.__esModule?__defProp(target,"default",{value:mod,enumerable:!0}):target,mod)),__toCommonJS2=mod=>__copyProps(__defProp({},"__esModule",{value:!0}),mod),validate_package_manifest_exports={};__export(validate_package_manifest_exports,{validatePackageManifest:()=>validatePackageManifest});module.exports=__toCommonJS2(validate_package_manifest_exports);var import_ajv=__toESM2(require_ajv()),import_build_utils3=__require("@vercel/build-utils"),ajv=new import_ajv.default,validate=ajv.compile(import_build_utils3.packageManifestSchema);function validatePackageManifest(data){return validate(data)?null:(validate.errors??[]).map(e=>`${e.dataPath||"(root)"} ${e.message}`).join("; ")}}});var require_manifest=__commonJS({"../../internals/cli-builder-integration/dist/manifest.js"(exports,module){"use strict";var __defProp=Object.defineProperty,__getOwnPropDesc=Object.getOwnPropertyDescriptor,__getOwnPropNames=Object.getOwnPropertyNames,__hasOwnProp=Object.prototype.hasOwnProperty,__export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:!0})},__copyProps=(to,from,except,desc)=>{if(from&&typeof from=="object"||typeof from=="function")for(let key of __getOwnPropNames(from))!__hasOwnProp.call(to,key)&&key!==except&&__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable});return to},__toCommonJS2=mod=>__copyProps(__defProp({},"__esModule",{value:!0}),mod),manifest_exports={};__export(manifest_exports,{getBuildDiagnosticsFramework:()=>getBuildDiagnosticsFramework,writeManifests:()=>writeManifests});module.exports=__toCommonJS2(manifest_exports);var import_path2=__require("path"),import_build_utils3=__require("@vercel/build-utils"),import_framework=require_framework();async function writeManifests(packageManifests,diagnostics,ops,outputDir){if(packageManifests.length===0)return;let projectManifest={},deployManifestBuilds={},deployManifestServices={};for(let{workspace,diagnosticsValues,manifest,service,builderUse}of packageManifests){let key=`${builderUse}:${workspace}`,framework=diagnosticsValues?.framework??manifest.framework;projectManifest[key]={...manifest,workspace,builder:builderUse,framework,serviceName:service?.name,serviceType:service&&(0,import_build_utils3.isExperimentalService)(service)?service.type:void 0,routePrefix:service&&(0,import_build_utils3.isExperimentalService)(service)?service.routePrefix:void 0};let{version:_version,...manifestWithoutVersion}=manifest;if(deployManifestBuilds[key]={...manifestWithoutVersion,framework,root:workspace,workspace,builder:builderUse},service){let existing=deployManifestServices[service.name];existing?existing.builds.push(key):deployManifestServices[service.name]={builds:[key],bindings:(0,import_build_utils3.isExperimentalServiceV2)(service)?service.bindings:void 0}}}if(Object.keys(projectManifest).length===0)return;let projectManifestBlob=new import_build_utils3.FileBlob({data:JSON.stringify(projectManifest)});diagnostics["project-manifest.json"]=projectManifestBlob,ops.push((0,import_build_utils3.downloadFile)(projectManifestBlob,(0,import_path2.join)(outputDir,"diagnostics","project-manifest.json")).then(()=>{},err=>err));let deployManifestBlob=new import_build_utils3.FileBlob({data:JSON.stringify({manifestVersion:"2.0",builds:deployManifestBuilds,services:deployManifestServices})});diagnostics["deploy-manifest.json"]=deployManifestBlob,ops.push((0,import_build_utils3.downloadFile)(deployManifestBlob,(0,import_path2.join)(outputDir,"diagnostics","deploy-manifest.json")).then(()=>{},err=>err))}function getBuildDiagnosticsFramework({service,configFramework,apiDirFramework}){return service?.framework??(configFramework==="services"?void 0:configFramework)??(0,import_framework.getRuntimeFramework)(service?.runtime)??apiDirFramework}}});var require_build_embedding=__commonJS({"../../internals/cli-builder-integration/dist/build-embedding.js"(exports,module){"use strict";var __defProp=Object.defineProperty,__getOwnPropDesc=Object.getOwnPropertyDescriptor,__getOwnPropNames=Object.getOwnPropertyNames,__hasOwnProp=Object.prototype.hasOwnProperty,__export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:!0})},__copyProps=(to,from,except,desc)=>{if(from&&typeof from=="object"||typeof from=="function")for(let key of __getOwnPropNames(from))!__hasOwnProp.call(to,key)&&key!==except&&__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable});return to},__toCommonJS2=mod=>__copyProps(__defProp({},"__esModule",{value:!0}),mod),build_embedding_exports={};__export(build_embedding_exports,{shouldEmbedFlagsDefinitions:()=>shouldEmbedFlagsDefinitions});module.exports=__toCommonJS2(build_embedding_exports);var import_build_utils3=__require("@vercel/build-utils");function isFlagsEmbedOption(input){return input==="force-on"||input==="force-off"}var SDK_KEY_REGEX=/^vf_(?:server|client)_/;function envHasSdkKey(){for(let value of Object.values(process.env))if(typeof value=="string"&&SDK_KEY_REGEX.test(value))return!0}async function shouldEmbedFlagsDefinitions(cwd,packageJson,vercelFlags){if(process.env.VERCEL_FLAGS_DISABLE_DEFINITION_EMBEDDING==="1")return!1;if(isFlagsEmbedOption(process.env.VERCEL_FLAGS_EMBED_DEFINITIONS))return process.env.VERCEL_FLAGS_EMBED_DEFINITIONS==="force-on";if(vercelFlags?.enabledAt!==void 0||envHasSdkKey())return!0;let hasVercelFlags=await(0,import_build_utils3.isPackageInstalled)("@flags-sdk/vercel",cwd),hasFlagsCore=await(0,import_build_utils3.isPackageInstalled)("@vercel/flags-core",cwd);if(hasVercelFlags||hasFlagsCore)return!0;let dependencies={...packageJson?.dependencies,...packageJson?.devDependencies,...packageJson?.optionalDependencies};return!!(dependencies["@flags-sdk/vercel"]||dependencies["@vercel/flags-core"])}}});var require_validate_build_output=__commonJS({"../../internals/cli-builder-integration/dist/validate-build-output.js"(exports,module){"use strict";var __create=Object.create,__defProp=Object.defineProperty,__getOwnPropDesc=Object.getOwnPropertyDescriptor,__getOwnPropNames=Object.getOwnPropertyNames,__getProtoOf=Object.getPrototypeOf,__hasOwnProp=Object.prototype.hasOwnProperty,__export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:!0})},__copyProps=(to,from,except,desc)=>{if(from&&typeof from=="object"||typeof from=="function")for(let key of __getOwnPropNames(from))!__hasOwnProp.call(to,key)&&key!==except&&__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable});return to},__toESM2=(mod,isNodeMode,target)=>(target=mod!=null?__create(__getProtoOf(mod)):{},__copyProps(isNodeMode||!mod||!mod.__esModule?__defProp(target,"default",{value:mod,enumerable:!0}):target,mod)),__toCommonJS2=mod=>__copyProps(__defProp({},"__esModule",{value:!0}),mod),validate_build_output_exports={};__export(validate_build_output_exports,{reportBuildOutputProblems:()=>reportBuildOutputProblems,validateBuildOutput:()=>validateBuildOutput});module.exports=__toCommonJS2(validate_build_output_exports);var import_fs_extra2=__toESM2(require_lib()),import_path2=__require("path"),import_build_utils3=__require("@vercel/build-utils");function logDebug(message,output){output?.debug(message),(0,import_build_utils3.debug)(message)}async function validateOutputConfig(configPath,label,problems){if(!await import_fs_extra2.default.pathExists(configPath)){problems.push({severity:"error",message:`${label} is missing config.json.`});return}let config;try{config=await import_fs_extra2.default.readJSON(configPath)}catch(err){problems.push({severity:"error",message:`${label} config.json is not valid JSON: ${err instanceof Error?err.message:String(err)}.`});return}config&&config.version!==3&&problems.push({severity:"warning",message:`${label} config.json has unexpected version "${config.version}" (expected 3).`})}async function validateBuildOutput(outputDir,output){let problems=[];logDebug(`Validating build output at "${outputDir}"`,output);try{await validateOutputConfig((0,import_path2.join)(outputDir,"config.json"),"Build output",problems);let servicesDir=(0,import_path2.join)(outputDir,"services"),serviceNames=[];try{serviceNames=(await import_fs_extra2.default.readdir(servicesDir,{withFileTypes:!0})).filter(e=>e.isDirectory()).map(e=>e.name)}catch(err){if(err?.code!=="ENOENT")throw err}let[hasFunctions,hasStatic,hasDaemons]=await Promise.all([import_fs_extra2.default.pathExists((0,import_path2.join)(outputDir,"functions")),import_fs_extra2.default.pathExists((0,import_path2.join)(outputDir,"static")),import_fs_extra2.default.pathExists((0,import_path2.join)(outputDir,"daemons"))]),hasServices=serviceNames.length>0;!hasFunctions&&!hasStatic&&!hasServices&&!hasDaemons&&problems.push({severity:"warning",message:'Build output contains no "functions", "static", or "services" directory; the build may not have produced any deployable output.'});for(let name of serviceNames){let serviceDir=(0,import_path2.join)(servicesDir,name),label=`Build output service "${name}"`;await validateOutputConfig((0,import_path2.join)(serviceDir,"config.json"),label,problems);let[svcHasFunctions,svcHasStatic]=await Promise.all([import_fs_extra2.default.pathExists((0,import_path2.join)(serviceDir,"functions")),import_fs_extra2.default.pathExists((0,import_path2.join)(serviceDir,"static"))]);!svcHasFunctions&&!svcHasStatic&&problems.push({severity:"warning",message:`${label} contains no "functions" or "static" directory; the service may not have produced any deployable output.`})}return logDebug(`Build output validation found ${problems.length} problem(s)`+(problems.length?`: ${problems.map(p=>`${p.severity}: ${p.message}`).join("; ")}`:""),output),problems}catch(err){return[{severity:"error",message:`Unexpected error while validating build output: ${err instanceof Error?err.message:String(err)}.`}]}}function reportBuildOutputProblems(problems,output){for(let problem of problems)problem.severity==="error"?output.error(problem.message):output.warn(problem.message)}}});var require_framework_detection=__commonJS({"../../internals/cli-builder-integration/dist/framework-detection.js"(exports,module){"use strict";var __defProp=Object.defineProperty,__getOwnPropDesc=Object.getOwnPropertyDescriptor,__getOwnPropNames=Object.getOwnPropertyNames,__hasOwnProp=Object.prototype.hasOwnProperty,__export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:!0})},__copyProps=(to,from,except,desc)=>{if(from&&typeof from=="object"||typeof from=="function")for(let key of __getOwnPropNames(from))!__hasOwnProp.call(to,key)&&key!==except&&__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable});return to},__toCommonJS2=mod=>__copyProps(__defProp({},"__esModule",{value:!0}),mod),framework_detection_exports={};__export(framework_detection_exports,{detectAllFrameworks:()=>detectAllFrameworks,detectFirstDeploymentFramework:()=>detectFirstDeploymentFramework,isFirstDeployment:()=>isFirstDeployment,isFrameworkDetectionEnabled:()=>isFrameworkDetectionEnabled,warnIfFrameworkMismatch:()=>warnIfFrameworkMismatch});module.exports=__toCommonJS2(framework_detection_exports);var import_fs_detectors=require_dist2(),import_frameworks=require_frameworks(),import_build_utils3=__require("@vercel/build-utils");function logDebug(message,output){output?.debug(message),(0,import_build_utils3.debug)(message)}function isFrameworkDetectionEnabled(output){let raw=process.env.VERCEL_FRAMEWORK_DETECTION,enabled=raw==="1";return logDebug(`Framework detection: VERCEL_FRAMEWORK_DETECTION=${raw===void 0?"<unset>":JSON.stringify(raw)} -> ${enabled?"enabled":"disabled"}`,output),enabled}function isFirstDeployment(output){let raw=process.env.VERCEL_FIRST_DEPLOYMENT,result=raw==="1";return logDebug(`isFirstDeployment: VERCEL_FIRST_DEPLOYMENT=${raw===void 0?"<unset>":JSON.stringify(raw)} -> ${result}`,output),result}async function detectFirstDeploymentFramework(options){let{workPath,projectSettings,frameworkExplicitlyConfigured,excludedFrameworks=[],output}=options;if(logDebug(`First deployment: evaluating framework detection (workPath="${workPath}", configuredFramework=${projectSettings.framework?`"${projectSettings.framework}"`:"<none>"})`,output),!isFirstDeployment(output))return logDebug("First deployment: skipping framework detection because this is not a first deployment",output),{status:"skipped"};if(frameworkExplicitlyConfigured||projectSettings.framework)return logDebug(`First deployment: skipping framework detection because a framework is already configured ("${projectSettings.framework}")`,output),{status:"skipped"};logDebug(`First deployment: no framework configured; detecting from source at "${workPath}"`,output),excludedFrameworks.length>0&&logDebug(`First deployment: not detecting ${excludedFrameworks.join(", ")}`,output);let detected=await(0,import_fs_detectors.detectFrameworkRecord)({fs:new import_fs_detectors.LocalFileSystemDetector(workPath),frameworkList:import_frameworks.frameworkList.filter(framework=>!excludedFrameworks.includes(framework.slug??""))});if(!detected||!detected.slug)return logDebug("First deployment: no framework detected from source code",output),{status:"not-detected"};let{slug}=detected;return projectSettings.framework=slug,logDebug(`First deployment: detected framework "${slug}"${detected.detectedVersion?` (version ${detected.detectedVersion})`:""}; applied to project settings for this build`,output),{status:"detected",slug,...detected.detectedVersion&&{version:detected.detectedVersion}}}async function detectAllFrameworks(workPath,customFrameworkList,output){logDebug(`Framework cross-check: detecting frameworks at "${workPath}"`,output);let slugs=(await(0,import_fs_detectors.detectFrameworks)({fs:new import_fs_detectors.LocalFileSystemDetector(workPath),frameworkList:customFrameworkList??import_frameworks.frameworkList})).map(f=>f.slug).filter(slug=>!!slug);return logDebug(`Framework cross-check: detected [${slugs.join(", ")||"<none>"}]`,output),slugs}function isHighConfidenceDetection(slug){return import_frameworks.frameworkList.find(f=>f.slug===slug)?.detectionConfidence!=="weak"}function warnIfFrameworkMismatch(options,output){let{configuredFramework,detectedFrameworks,usedBuilders=[],usedFrameworks=[]}=options;if(detectedFrameworks.length===0)return logDebug("Framework cross-check: nothing detected from source; skipping validation",output),"none-detected";let confidentFrameworks=detectedFrameworks.filter(isHighConfidenceDetection);if(configuredFramework)return detectedFrameworks.includes(configuredFramework)?(logDebug(`Framework cross-check: configured framework "${configuredFramework}" matches detected frameworks; no mismatch`,output),"match"):confidentFrameworks.length===0?(logDebug(`Framework cross-check: configured framework "${configuredFramework}" not among detected [${detectedFrameworks.join(", ")}], but all detections are low-confidence; skipping warning`,output),"low-confidence"):(logDebug(`Framework cross-check: configured framework "${configuredFramework}" not among detected [${confidentFrameworks.join(", ")}]; warning`,output),output?.warn(`Your project is configured to use the "${configuredFramework}" framework, but the source code looks like it's for: ${confidentFrameworks.join(", ")}. This may be a misconfiguration.`,null,"https://vercel.com/docs/project-configuration","Learn More"),"configured-mismatch");if(detectedFrameworks.some(slug=>{if(usedFrameworks.includes(slug))return!0;let expectedBuilder=import_frameworks.frameworkList.find(f=>f.slug===slug)?.useRuntime?.use;return expectedBuilder?usedBuilders.some(use=>use===expectedBuilder||use.startsWith(`${expectedBuilder}@`)):!1}))return logDebug(`Framework cross-check: no framework configured, but the build used one of the detected frameworks [${detectedFrameworks.join(", ")}]; no mismatch`,output),"match";let warnableFrameworks=confidentFrameworks.filter(slug=>!!import_frameworks.frameworkList.find(f=>f.slug===slug)?.useRuntime?.use);return warnableFrameworks.length===0?(logDebug(`Framework cross-check: no framework configured and detections [${detectedFrameworks.join(", ")}] are low-confidence or have no dedicated runtime builder; skipping warning`,output),"low-confidence"):(logDebug(`Framework cross-check: no framework configured and the build did not use any of the detected frameworks [${warnableFrameworks.join(", ")}] (used builders: [${usedBuilders.join(", ")||"<none>"}]); warning`,output),output?.warn(`The source code looks like it's for: ${warnableFrameworks.join(", ")}, but no framework is configured for this project and the build did not use ${warnableFrameworks.length===1?"its builder":"their builders"}. Set the framework in your Project Settings if this is unexpected.`,null,"https://vercel.com/docs/project-configuration","Learn More"),"unused-mismatch")}}});var require_runtime=__commonJS({"../../internals/runtimes/dist/runtime.js"(exports,module){"use strict";var __defProp=Object.defineProperty,__getOwnPropDesc=Object.getOwnPropertyDescriptor,__getOwnPropNames=Object.getOwnPropertyNames,__hasOwnProp=Object.prototype.hasOwnProperty,__export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:!0})},__copyProps=(to,from,except,desc)=>{if(from&&typeof from=="object"||typeof from=="function")for(let key of __getOwnPropNames(from))!__hasOwnProp.call(to,key)&&key!==except&&__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable});return to},__toCommonJS2=mod=>__copyProps(__defProp({},"__esModule",{value:!0}),mod),runtime_exports={};__export(runtime_exports,{getBuilderForRuntime:()=>getBuilderForRuntime,inferRuntime:()=>inferRuntime});module.exports=__toCommonJS2(runtime_exports);var import_constants=require_constants(),import_framework=require_framework();function getBuilderForRuntime(runtime){let builder=import_constants.RUNTIME_BUILDERS[runtime];if(!builder)throw new Error(`Unknown runtime: ${runtime}`);return builder}function inferRuntime(config){if(config.runtime&&config.runtime in import_constants.RUNTIME_BUILDERS)return config.runtime;let frameworkRuntime=(0,import_framework.inferRuntimeFromFramework)(config.framework);if(frameworkRuntime)return frameworkRuntime;if(config.builder){for(let[runtime,builderName]of Object.entries(import_constants.RUNTIME_BUILDERS))if(config.builder===builderName)return runtime}if(config.entrypoint){if(config.entrypoint==="pyproject.toml"||config.entrypoint.endsWith("/pyproject.toml"))return"python";for(let[ext,runtime]of Object.entries(import_constants.ENTRYPOINT_EXTENSIONS))if(config.entrypoint.endsWith(ext))return runtime}}}});var require_monorepo=__commonJS({"../../internals/cli-builder-integration/dist/monorepo.js"(exports,module){"use strict";var __create=Object.create,__defProp=Object.defineProperty,__getOwnPropDesc=Object.getOwnPropertyDescriptor,__getOwnPropNames=Object.getOwnPropertyNames,__getProtoOf=Object.getPrototypeOf,__hasOwnProp=Object.prototype.hasOwnProperty,__export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:!0})},__copyProps=(to,from,except,desc)=>{if(from&&typeof from=="object"||typeof from=="function")for(let key of __getOwnPropNames(from))!__hasOwnProp.call(to,key)&&key!==except&&__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable});return to},__toESM2=(mod,isNodeMode,target)=>(target=mod!=null?__create(__getProtoOf(mod)):{},__copyProps(isNodeMode||!mod||!mod.__esModule?__defProp(target,"default",{value:mod,enumerable:!0}):target,mod)),__toCommonJS2=mod=>__copyProps(__defProp({},"__esModule",{value:!0}),mod),monorepo_exports={};__export(monorepo_exports,{applyServicesMonorepoDefaults:()=>applyServicesMonorepoDefaults,setMonorepoDefaultSettings:()=>setMonorepoDefaultSettings});module.exports=__toCommonJS2(monorepo_exports);var import_path2=__require("path"),import_fs_detectors=require_dist2(),import_runtime=require_runtime(),import_title=__toESM2(require_lib2()),import_fs_extra2=__toESM2(require_lib()),import_build_utils3=__require("@vercel/build-utils");async function setMonorepoDefaultSettings(cwd,workPath,projectSettings,output){let localFileSystem=new import_fs_detectors.LocalFileSystemDetector(cwd),projectName=(0,import_path2.basename)(workPath),relativeToRoot=(0,import_path2.relative)(workPath,cwd),setCommand=(command,value)=>{projectSettings[command]?(0,import_build_utils3.debug)(`Skipping auto-assignment of ${command} as it is already set via project settings or configuration overrides.`):projectSettings[command]=value};try{let result=await(0,import_fs_detectors.getMonorepoDefaultSettings)(projectName,(0,import_path2.relative)(cwd,workPath),relativeToRoot,localFileSystem);if(result===null)return;projectSettings.monorepoManager=result.monorepoManager;let{monorepoManager,...commands}=result;output.log(`Detected ${(0,import_title.default)(monorepoManager)}. Adjusting default settings...`),commands.buildCommand&&setCommand("buildCommand",commands.buildCommand),commands.installCommand&&setCommand("installCommand",commands.installCommand),commands.commandForIgnoringBuildStep&&setCommand("commandForIgnoringBuildStep",commands.commandForIgnoringBuildStep)}catch(error){if(error instanceof import_fs_detectors.MissingBuildPipeline||error instanceof import_fs_detectors.MissingBuildTarget){output.warn(`${error.message} Skipping automatic setting assignment.`);return}throw error}}async function hasVercelBuildScript(serviceRoot){try{return(await import_fs_extra2.default.readJSON((0,import_path2.join)(serviceRoot,"package.json")))?.scripts?.["vercel-build"]!==void 0}catch{return!1}}async function applyServicesMonorepoDefaults(cwd,workPath,services,projectSettings,output){let localFileSystem=new import_fs_detectors.LocalFileSystemDetector(cwd),result,announced=!1;for(let[name,config]of Object.entries(services)){if(config.buildCommand){(0,import_build_utils3.debug)(`Skipping auto-assignment of buildCommand for service "${name}" as it is already set in the services configuration.`);continue}let runtime=(0,import_runtime.inferRuntime)({runtime:config.runtime,framework:config.framework,entrypoint:config.entrypoint});if(runtime!==void 0&&runtime!=="node"){(0,import_build_utils3.debug)(`Skipping monorepo defaults for service "${name}": runtime "${runtime}" does not build via the monorepo task graph.`);continue}let serviceRoot=(0,import_path2.resolve)(workPath,config.root??"."),projectPath=(0,import_path2.relative)(cwd,serviceRoot);if((0,import_path2.isAbsolute)(projectPath)||projectPath===".."||projectPath.startsWith(`..${import_path2.sep}`)){(0,import_build_utils3.debug)(`Skipping monorepo defaults for service "${name}": root "${config.root}" is outside "${cwd}".`);continue}if(await hasVercelBuildScript(serviceRoot)){(0,import_build_utils3.debug)(`Skipping monorepo defaults for service "${name}": a \`vercel-build\` script is defined in its root package.json.`);continue}let posixProjectPath=(0,import_build_utils3.normalizePath)(projectPath),posixRelativeToRoot=(0,import_build_utils3.normalizePath)((0,import_path2.relative)(serviceRoot,cwd)),settings;try{settings=await(0,import_fs_detectors.getMonorepoDefaultSettings)((0,import_path2.basename)(serviceRoot),posixProjectPath||"/",posixRelativeToRoot,localFileSystem)}catch(error){if(error instanceof import_fs_detectors.MissingBuildPipeline){output.warn(`${error.message} Skipping automatic setting assignment.`);break}if(error instanceof import_fs_detectors.MissingBuildTarget){output.warn(`Service "${name}": ${error.message} Skipping automatic setting assignment.`);continue}throw error}if(settings===null)break;projectSettings.monorepoManager=settings.monorepoManager,settings.buildCommand&&(announced||(output.log(`Detected ${(0,import_title.default)(settings.monorepoManager)}. Adjusting default settings...`),announced=!0),(0,import_build_utils3.debug)(`Assigning buildCommand "${settings.buildCommand}" to service "${name}".`),result??={...services},result[name]={...config,buildCommand:settings.buildCommand})}return result??services}}});var require_corepack=__commonJS({"../../internals/cli-builder-integration/dist/corepack.js"(exports,module){"use strict";var __create=Object.create,__defProp=Object.defineProperty,__getOwnPropDesc=Object.getOwnPropertyDescriptor,__getOwnPropNames=Object.getOwnPropertyNames,__getProtoOf=Object.getPrototypeOf,__hasOwnProp=Object.prototype.hasOwnProperty,__export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:!0})},__copyProps=(to,from,except,desc)=>{if(from&&typeof from=="object"||typeof from=="function")for(let key of __getOwnPropNames(from))!__hasOwnProp.call(to,key)&&key!==except&&__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable});return to},__toESM2=(mod,isNodeMode,target)=>(target=mod!=null?__create(__getProtoOf(mod)):{},__copyProps(isNodeMode||!mod||!mod.__esModule?__defProp(target,"default",{value:mod,enumerable:!0}):target,mod)),__toCommonJS2=mod=>__copyProps(__defProp({},"__esModule",{value:!0}),mod),corepack_exports={};__export(corepack_exports,{cleanupCorepack:()=>cleanupCorepack,initCorepack:()=>initCorepack});module.exports=__toCommonJS2(corepack_exports);var import_path2=__require("path"),import_build_utils3=__require("@vercel/build-utils"),import_fs_extra2=__toESM2(require_lib());async function initCorepack({repoRootPath,output,readJSONFile:readJSONFile2,isCantParseJSONFile,warmPackageManager=!1}){if(process.env.ENABLE_EXPERIMENTAL_COREPACK!=="1")return null;let pkg=await readJSONFile2((0,import_path2.join)(repoRootPath,"package.json"));if(isCantParseJSONFile(pkg))output.warn("Warning: Could not enable corepack because package.json is invalid JSON",pkg.meta?.parseErrorLocation??pkg.message);else if(!pkg?.packageManager)output.warn('Warning: Could not enable corepack because package.json is missing "packageManager" property');else{output.log(`Detected ENABLE_EXPERIMENTAL_COREPACK=1 and "${pkg.packageManager}" in package.json`);let corepackRootDir=(0,import_path2.join)(repoRootPath,".vercel","cache","corepack"),corepackHomeDir=(0,import_path2.join)(corepackRootDir,"home"),corepackShimDir=(0,import_path2.join)(corepackRootDir,"shim");await import_fs_extra2.default.mkdirp(corepackHomeDir),await import_fs_extra2.default.mkdirp(corepackShimDir),process.env.COREPACK_HOME=corepackHomeDir,process.env.PATH=`${corepackShimDir}${import_path2.delimiter}${process.env.PATH}`;let pkgManagerName=pkg.packageManager.split("@")[0];if(await(0,import_build_utils3.spawnAsync)("corepack",["enable",pkgManagerName,"--install-directory",corepackShimDir],{prettyCommand:`corepack enable ${pkgManagerName}`}),warmPackageManager)try{await(0,import_build_utils3.spawnAsync)(pkgManagerName,["--version"],{prettyCommand:`${pkgManagerName} --version`,stdio:"pipe"})}catch(err){output.debug(`Failed to pre-download "${pkg.packageManager}" via corepack: ${err instanceof Error?err.message:String(err)}`)}return corepackShimDir}return null}function cleanupCorepack(corepackShimDir){process.env.COREPACK_HOME&&delete process.env.COREPACK_HOME,process.env.PATH&&(process.env.PATH=process.env.PATH.replace(`${corepackShimDir}${import_path2.delimiter}`,""))}}});var require_do_build=__commonJS({"../../internals/cli-builder-integration/dist/do-build.js"(exports,module){"use strict";var __create=Object.create,__defProp=Object.defineProperty,__getOwnPropDesc=Object.getOwnPropertyDescriptor,__getOwnPropNames=Object.getOwnPropertyNames,__getProtoOf=Object.getPrototypeOf,__hasOwnProp=Object.prototype.hasOwnProperty,__export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:!0})},__copyProps=(to,from,except,desc)=>{if(from&&typeof from=="object"||typeof from=="function")for(let key of __getOwnPropNames(from))!__hasOwnProp.call(to,key)&&key!==except&&__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable});return to},__toESM2=(mod,isNodeMode,target)=>(target=mod!=null?__create(__getProtoOf(mod)):{},__copyProps(isNodeMode||!mod||!mod.__esModule?__defProp(target,"default",{value:mod,enumerable:!0}):target,mod)),__toCommonJS2=mod=>__copyProps(__defProp({},"__esModule",{value:!0}),mod),do_build_exports={};__export(do_build_exports,{doBuild:()=>doBuild3,mergeDeploymentId:()=>mergeDeploymentId});module.exports=__toCommonJS2(do_build_exports);var import_fs_extra2=__toESM2(require_lib()),import_minimatch=__toESM2(require_minimatch()),import_path2=__require("path"),import_semver=__toESM2(require_semver()),import_build_utils3=__require("@vercel/build-utils"),import_client=require_dist4(),import_frameworks=require_frameworks(),import_fs_detectors=require_dist2(),import_service_topology=require_dist3(),import_detect_builders_with_services=require_detect_builders_with_services(),import_get_daemon_builders=require_get_daemon_builders(),import_routing_utils=require_dist(),import_write_build_result3=require_write_build_result(),import_build_runner2=require_build_runner(),import_execute_builder=require_execute_builder(),import_diagnostics3=require_diagnostics(),import_build_concurrency=require_build_concurrency(),import_workspace_install_targets=require_workspace_install_targets(),import_backend_rewrite_warning=require_backend_rewrite_warning(),import_schedule_static_source_warning=require_schedule_static_source_warning(),import_service_route_ownership=require_service_route_ownership(),import_service_schedules=require_service_schedules(),import_validate_cron_secret=require_validate_cron_secret(),import_validate_package_manifest=require_validate_package_manifest(),import_manifest=require_manifest(),import_build_embedding=require_build_embedding(),import_get_files=require_get_files(),import_validate_build_output=require_validate_build_output(),import_framework_detection=require_framework_detection(),import_monorepo=require_monorepo(),import_corepack=require_corepack(),import_schedule_entrypoint=require_schedule_entrypoint();function pickOverrides(config){let overrides={};for(let property of["buildCommand","devCommand","framework","ignoreCommand","installCommand","outputDirectory"])config[property]!==void 0&&(overrides[property==="ignoreCommand"?"commandForIgnoringBuildStep":property]=config[property]);return overrides}var SERVICE_BUILD_IMMUTABLE_ENV_VARS=["VERCEL_IMMUTABLE_STATIC_FILES_ENABLED"];function hasNonEmptyObject(value){return value!=null&&typeof value=="object"&&!Array.isArray(value)&&Object.keys(value).length>0}function getGeneratedServiceAlreadyBuiltWarning(service){let framework=service.framework??"unknown",entrypoint=service.entrypoint??service.builder.src??"unknown";return`Detected already-built service "${service.name}" from lazily generated \`.vercel/output/config.json\` (framework: ${framework}, entrypoint: ${entrypoint}). It will not be treated as a service because its build output already exists at the top level. Configure it in \`vercel.json\` as a \`services\` entry to remove this warning.`}async function doBuild3(request,dependencies){let{project,buildsJson,cwd,outputDir,span,standalone=!1,localConfigPath,cliVersion,userAgent}=request,{output,createBuildRunner:createBuildRunner2,canBuildInSubprocess:canBuildInSubprocess2,importBuilders:importBuilders2,formatResolvedBuilders:formatResolvedBuilders2,writeBuildResult:writeBuildResult2,toEnumerableError:toEnumerableError2,readJSONFile:readJSONFile2,isCantParseJSONFile,validateConfig:validateConfig2,compileVercelConfig:compileVercelConfig2,findSourceVercelConfigFile:findSourceVercelConfigFile2,defaultVercelConfigFilename,startBuildTiming}=dependencies,VALID_DEPLOYMENT_ID_PATTERN=/^[a-zA-Z0-9_-]+$/,workPath=(0,import_path2.join)(cwd,project.settings.rootDirectory||"."),repoRootPath=cwd,sourceConfigFile=await findSourceVercelConfigFile2(workPath),corepackShimDir;if(sourceConfigFile){corepackShimDir=await(0,import_corepack.initCorepack)({repoRootPath,output,readJSONFile:readJSONFile2,isCantParseJSONFile,warmPackageManager:(0,import_build_utils3.resolveBuildConcurrency)()>1});let installDepsSpan=span.child("vc.installDeps"),installRan=!1;try{let installCommand=project.settings.installCommand;typeof installCommand=="string"?installCommand.trim()?(output.log("Running install command before config compilation..."),installRan=await(0,import_build_utils3.runCustomInstallCommand)({destPath:workPath,installCommand,spawnOpts:{env:process.env},projectCreatedAt:project.settings.createdAt})):output.debug("Skipping empty install command"):(output.log("Installing dependencies before config compilation..."),installRan=await(0,import_build_utils3.runNpmInstall)(workPath,[],{env:process.env},void 0,project.settings.createdAt))}finally{installDepsSpan.stop()}if(installRan){let{packageJsonPath}=await(0,import_build_utils3.scanParentDirs)(workPath,!1);packageJsonPath&&(process.env.VERCEL_INSTALL_COMPLETED_PATH=packageJsonPath),process.env.VERCEL_INSTALL_COMPLETED="1"}}let compileResult=await span.child("vc.compileVercelConfig").trace(()=>compileVercelConfig2(workPath)),vercelConfigPath=localConfigPath||compileResult.configPath||(0,import_path2.join)(workPath,"vercel.json"),[pkg,vercelConfig,hasInstrumentation]=await span.child("vc.readConfigInputs").trace(()=>Promise.all([readJSONFile2((0,import_path2.join)(workPath,"package.json")),readJSONFile2(vercelConfigPath),(0,import_fs_detectors.detectInstrumentation)(new import_fs_detectors.LocalFileSystemDetector(workPath))]));if(isCantParseJSONFile(pkg))throw pkg;if(isCantParseJSONFile(vercelConfig))throw vercelConfig;hasInstrumentation&&(output.debug("OpenTelemetry instrumentation detected. Automatic fetch instrumentation will be disabled."),process.env.VERCEL_TRACING_DISABLE_AUTOMATIC_FETCH_INSTRUMENTATION="1"),vercelConfig&&(vercelConfig[import_client.fileNameSymbol]=compileResult.wasCompiled?compileResult.sourceFile||defaultVercelConfigFilename:"vercel.json");let localConfig=vercelConfig||{},validateError=validateConfig2(localConfig);if(validateError)throw validateError;let authoredSchedules=(0,import_build_utils3.getNamedSchedules)(localConfig.schedules),daemons=(0,import_build_utils3.getDaemonNames)(localConfig).length>0?localConfig.daemons:void 0;if((0,import_get_daemon_builders.validateDaemonImageRepositories)(daemons),localConfig.crons&&localConfig.crons.length>0){let cronSecretError=(0,import_validate_cron_secret.validateCronSecret)(process.env.CRON_SECRET);if(cronSecretError)throw cronSecretError}let projectSettings={...project.settings,...pickOverrides(localConfig)};buildsJson.detectedFramework=await span.child("vc.detectFirstDeploymentFramework",{firstDeployment:String(process.env.VERCEL_FIRST_DEPLOYMENT==="1"),configuredFramework:projectSettings.framework??void 0}).trace(async s=>{let result=await(0,import_framework_detection.detectFirstDeploymentFramework)({workPath,projectSettings,frameworkExplicitlyConfigured:Object.prototype.hasOwnProperty.call(localConfig,"framework"),excludedFrameworks:(0,import_get_daemon_builders.isContainerPresetFromDaemons)(workPath,daemons)?["container"]:void 0,output});return s.setAttributes({detectionStatus:result.status,detectedFramework:result.slug,detectedFrameworkVersion:result.version}),result}),process.env.VERCEL_BUILD_MONOREPO_SUPPORT==="1"&&pkg?.scripts?.["vercel-build"]===void 0&&projectSettings.rootDirectory!==null&&projectSettings.rootDirectory!=="."&&await span.child("vc.setMonorepoDefaultSettings").trace(()=>(0,import_monorepo.setMonorepoDefaultSettings)(cwd,workPath,projectSettings,output)),await span.child("vc.prepareFlagsDefinitions").trace(async s=>{let shouldEmbed=await(0,import_build_embedding.shouldEmbedFlagsDefinitions)(cwd,pkg,projectSettings.vercelFlags);if(s.setAttributes({shouldEmbed:String(shouldEmbed)}),!shouldEmbed)return;let{prepareFlagsDefinitions}=await import("../../chunks/dist-33WTJLVQ.js");await prepareFlagsDefinitions({cwd,env:process.env,userAgentSuffix:userAgent,output})});let files=await span.child("vc.getFiles").trace(async s=>{let result=(await(0,import_get_files.staticFiles)(workPath,{},output)).map(f=>(0,import_build_utils3.normalizePath)((0,import_path2.relative)(workPath,f)));return s.setAttributes({fileCount:String(result.length)}),result}),scheduleEntrypointPlan=(0,import_schedule_entrypoint.planScheduleEntrypoints)({schedules:authoredSchedules,files,framework:projectSettings.framework,functions:localConfig.functions}),{reservedFunctionFiles}=scheduleEntrypointPlan,detectedFrameworksPromise=span.child("vc.detectAllFrameworks",{enabled:String((0,import_framework_detection.isFrameworkDetectionEnabled)(output))}).trace(async s=>{if(!(0,import_framework_detection.isFrameworkDetectionEnabled)(output))return[];try{let slugs=await(0,import_framework_detection.detectAllFrameworks)(workPath,void 0,output);return s.setAttributes({detectedFrameworks:slugs.join(",")||void 0,detectedFrameworkCount:String(slugs.length)}),slugs}catch(err){return output.debug(`Framework cross-check detection failed: ${err}`),s.setAttributes({error:err instanceof Error?err.message:String(err)}),[]}}),routesResult=(0,import_routing_utils.getTransformedRoutes)(localConfig);if(routesResult.error)throw routesResult.error;if(localConfig.builds&&localConfig.functions)throw new import_build_utils3.NowBuildError({code:"bad_request",message:"The `functions` property cannot be used in conjunction with the `builds` property. Please remove one of them.",link:"https://vercel.link/functions-and-builds"});let daemonBuilds=await(0,import_get_daemon_builders.getDaemonBuilders)({workPath,repoRootPath,daemons,files}),builds=localConfig.builds||[],zeroConfigRoutes=[],zeroConfigFallbackRoutes=[],detectedServices,detectedResolvedServices,servicesToRecord,hasExperimentalServicesV1ConfiguredInVercelConfig=hasNonEmptyObject(localConfig.experimentalServices),hasExperimentalServicesV2ConfiguredInVercelConfig=hasNonEmptyObject(localConfig.services??localConfig.experimentalServicesV2);hasExperimentalServicesV1ConfiguredInVercelConfig&&output.warn("The `experimentalServices` property is deprecated. Migrate to `services`.");let configuredExperimentalServicesV2=hasExperimentalServicesV2ConfiguredInVercelConfig&&(localConfig.services??localConfig.experimentalServicesV2)?localConfig.services??localConfig.experimentalServicesV2:void 0,nestExperimentalServicesV2Output=hasExperimentalServicesV2ConfiguredInVercelConfig,detectedExperimentalServicesV1Config,detectedExperimentalServicesV2Config=configuredExperimentalServicesV2,isZeroConfig=!1;if(builds.length>0)output.warn("Due to `builds` existing in your configuration file, the Build and Development Settings defined in your Project Settings will not apply. Learn More: https://vercel.link/unused-build-settings"),builds=builds.flatMap(b=>expandBuild(files,b));else{isZeroConfig=!0;let servicesForDetection=configuredExperimentalServicesV2;process.env.VERCEL_BUILD_MONOREPO_SUPPORT==="1"&&configuredExperimentalServicesV2&&(servicesForDetection=await span.child("vc.applyServicesMonorepoDefaults").trace(()=>(0,import_monorepo.applyServicesMonorepoDefaults)(cwd,workPath,configuredExperimentalServicesV2,projectSettings,output)));let detectedBuilders=await span.child("vc.detectBuilders").trace(()=>(0,import_detect_builders_with_services.detectBuildersWithServices)(files,pkg,{...localConfig,reservedFunctionFiles,services:void 0,experimentalServicesV2:servicesForDetection,projectSettings,ignoreBuildScript:!0,featHandleMiss:!0,workPath}));if(detectedBuilders.errors&&detectedBuilders.errors.length>0)throw detectedBuilders.errors[0];for(let w of detectedBuilders.warnings)output.warn(w.message,null,w.link,w.action||"Learn More");detectedBuilders.builders?builds=detectedBuilders.builders:builds=[{src:"**",use:"@vercel/static"}],detectedResolvedServices=detectedBuilders.services,servicesToRecord=detectedResolvedServices,detectedServices=detectedBuilders.services?.filter(import_build_utils3.isExperimentalService);let autoDetectedV2Config=detectedBuilders.experimentalServicesV2;if(!hasExperimentalServicesV2ConfiguredInVercelConfig&&autoDetectedV2Config&&(nestExperimentalServicesV2Output=!0,detectedExperimentalServicesV2Config=autoDetectedV2Config),detectedBuilders.useImplicitEnvInjection&&detectedServices&&detectedServices.length>0){let serviceUrlEnvVars=(0,import_build_utils3.getExperimentalServiceUrlEnvVars)({services:detectedServices,frameworkList:import_frameworks.frameworkList,currentEnv:process.env,deploymentUrl:process.env.VERCEL_URL});for(let[key,value]of Object.entries(serviceUrlEnvVars))process.env[key]=value,output.debug(`Injected service URL env var: ${key}=${value}`)}let serviceRewrites=detectedBuilders.serviceRewrites,serviceRewriteRoutes=serviceRewrites&&serviceRewrites.length>0?(0,import_routing_utils.convertRewrites)(serviceRewrites):null;zeroConfigRoutes.push(...detectedBuilders.redirectRoutes||[]);let detectedHostRewriteRoutes=detectedBuilders.hostRewriteRoutes;zeroConfigRoutes=(0,import_routing_utils.appendRoutesToPhase)({routes:zeroConfigRoutes,newRoutes:detectedHostRewriteRoutes??null,phase:null});let detectedServiceRewriteRoutes=nestExperimentalServicesV2Output?[]:detectedBuilders.rewriteRoutes;zeroConfigRoutes.push(...(0,import_routing_utils.appendRoutesToPhase)({routes:[],newRoutes:[...detectedServiceRewriteRoutes||[],...serviceRewriteRoutes||[]],phase:"filesystem"})),zeroConfigRoutes=(0,import_routing_utils.appendRoutesToPhase)({routes:zeroConfigRoutes,newRoutes:detectedBuilders.errorRoutes,phase:"error"}),nestExperimentalServicesV2Output||(zeroConfigRoutes.push(...detectedBuilders.defaultRoutes||[]),zeroConfigFallbackRoutes=detectedBuilders.fallbackRoutes||[])}if(builds.push(...daemonBuilds),(0,import_backend_rewrite_warning.hasBackendRewriteBehaviorChange)({projectRewrites:localConfig.rewrites,builders:builds})&&output.warn(import_backend_rewrite_warning.BACKEND_REWRITE_BEHAVIOR_WARNING),(0,import_schedule_entrypoint.assertNoScheduleEntrypointSourceConflict)(builds,scheduleEntrypointPlan),scheduleEntrypointPlan.uses.some(({resolved})=>(0,import_fs_detectors.isOfficialRuntime)("python",resolved.use))){let publishedPythonSources=(0,import_schedule_static_source_warning.getPublishedPythonSources)(builds,files);publishedPythonSources.length>0&&output.warn((0,import_schedule_static_source_warning.getPublishedPythonSourcesWarning)(publishedPythonSources))}let scheduleEntrypointBuilds=new Set(scheduleEntrypointPlan.builds);builds.push(...scheduleEntrypointPlan.builds);let builderSpecs=new Set(builds.map(b=>b.use)),buildersWithPkgs=await span.child("vc.importBuilders").trace(async s=>{let builders=await importBuilders2(builderSpecs,cwd,s);return s.setAttributes({resolved:formatResolvedBuilders2(builders)}),builders}),filesMap=await span.child("vc.populateFilesMap").trace(async s=>{let map={};for(let path of files){let fsPath=(0,import_path2.join)(workPath,path),{mode}=await import_fs_extra2.default.stat(fsPath);map[path]=new import_build_utils3.FileFsRef({mode,fsPath})}return s.setAttributes({fileCount:String(files.length)}),map}),buildStamp=startBuildTiming();await import_fs_extra2.default.mkdirp(outputDir);let ops=[],buildsJsonBuilds=new Map,ensureBuildersImported=async buildsToImport=>{let missingBuilderSpecs=new Set(buildsToImport.map(build2=>build2.use).filter(builderSpec=>!buildersWithPkgs.has(builderSpec)));if(missingBuilderSpecs.size===0)return;let importedBuilders=await span.child("vc.importBuilders").trace(async s=>{let builders=await importBuilders2(missingBuilderSpecs,cwd,s);return s.setAttributes({resolved:formatResolvedBuilders2(builders)}),builders});buildersWithPkgs=new Map([...buildersWithPkgs.entries(),...importedBuilders.entries()])},addBuildsToBuildJson=async buildsToAdd=>{await ensureBuildersImported(buildsToAdd);for(let build2 of buildsToAdd){if(buildsJsonBuilds.has(build2))continue;let builderWithPkg=buildersWithPkgs.get(build2.use);if(!builderWithPkg)throw import_diagnostics3.buildDiagnostics.BUILD_BUILDER_LOAD_FAILED({use:build2.use});let{builder,pkg:builderPkg}=builderWithPkg;buildsJsonBuilds.set(build2,{require:builderPkg.name,requirePath:builderWithPkg.path,apiVersion:builder.version,...build2})}buildsJson.builds=Array.from(buildsJsonBuilds.values()),await writeBuildJson(buildsJson,outputDir)},meta={skipDownload:!0,cliVersion,runNpmInstallSet:new Set,...daemons&&{daemonContext:{projectRoot:workPath,daemons}}},executedBuilds=[],buildResults=new Map,overrides=[];corepackShimDir||(corepackShimDir=await(0,import_corepack.initCorepack)({repoRootPath,output,readJSONFile:readJSONFile2,isCantParseJSONFile,warmPackageManager:(0,import_build_utils3.resolveBuildConcurrency)()>1}));let diagnostics={},packageManifests=[],apiDirFrameworkDetector=createApiDirFrameworkDetector((workPath2,frameworks)=>(0,import_framework_detection.detectAllFrameworks)(workPath2,frameworks,output)),getHasDetectedServices=()=>detectedResolvedServices!==void 0&&detectedResolvedServices.length>0,synthesizedServiceCrons=[],serviceByBuilder=new Map,serviceFileOverrides=new Map;if(getHasDetectedServices())for(let service of detectedResolvedServices)serviceByBuilder.set(service.builder,service);let preDeployEntries=[],liveRunners=new Set,buildOrdinals=new Map,generatedRootRoutes,buildDurationsMs=[],buildersWallMs=0,buildConcurrency,runBuilders=async buildsToRun=>{await addBuildsToBuildJson(buildsToRun),process.env.VERCEL_EXPERIMENTAL_WORKSPACE_SCOPED_INSTALLS==="1"&&(meta.workspaceInstallTargets=await(0,import_workspace_install_targets.collectWorkspaceInstallTargets)({builds:buildsToRun,existingTargets:meta.workspaceInstallTargets,repoRootPath,serviceByBuilder,workPath}));let buildOne=async(build2,concurrent)=>{if(typeof build2.src!="string")return;let builderWithPkg=buildersWithPkgs.get(build2.use);if(!builderWithPkg)throw import_diagnostics3.buildDiagnostics.BUILD_BUILDER_LOAD_FAILED({use:build2.use});try{let{builder,pkg:builderPkg}=builderWithPkg,service=getHasDetectedServices()?serviceByBuilder.get(build2):void 0,legacyExperimentalService=service&&(0,import_build_utils3.isExperimentalService)(service)?service:void 0,serviceWorkspace=service?(0,import_build_utils3.isExperimentalService)(service)?service.workspace:service.root:void 0,stripServiceRoutePrefix=!!legacyExperimentalService?.routePrefix&&legacyExperimentalService.routePrefix!=="/",buildWorkPath=workPath,buildEntrypoint=build2.src,buildFiles=filesMap;if(service&&serviceWorkspace&&serviceWorkspace!=="."){let wsPrefix=serviceWorkspace+"/";buildWorkPath=(0,import_path2.join)(workPath,serviceWorkspace),buildEntrypoint=build2.src.startsWith(wsPrefix)?build2.src.slice(wsPrefix.length):build2.src,buildFiles={};for(let[filePath,file]of Object.entries(filesMap))filePath.startsWith(wsPrefix)&&(buildFiles[filePath.slice(wsPrefix.length)]=file);output.debug(`Service "${service.name}": workspace-rooted build at "${buildWorkPath}", entrypoint "${buildEntrypoint}" (original: "${build2.src}")`)}let restoreEnv=new Map,perBuildEnv=concurrent?{...process.env}:process.env,setBuildEnv=(key,value)=>{concurrent||restoreEnv.set(key,process.env[key]),value===void 0?delete perBuildEnv[key]:perBuildEnv[key]=value},settingsForEnv=service?{buildCommand:service.buildCommand??void 0,installCommand:service.installCommand??void 0,outputDirectory:projectSettings.outputDirectory??void 0,nodeVersion:projectSettings.nodeVersion??void 0}:projectSettings;for(let key of["buildCommand","installCommand","outputDirectory","nodeVersion"]){let value=settingsForEnv[key],envKey="VERCEL_PROJECT_SETTINGS_"+key.replace(/[A-Z]/g,letter=>`_${letter}`).toUpperCase();setBuildEnv(envKey,typeof value=="string"?value:void 0),typeof value=="string"&&output.debug(`Setting env ${envKey} to "${value}"`)}let isFrontendBuilder=build2.config&&"framework"in build2.config,builderFramework=build2.config?.framework??projectSettings.framework,isApiDir=isZeroConfig&&!service&&!isFrontendBuilder,apiDirFramework=isApiDir?await apiDirFrameworkDetector.detect(build2.use??"",buildWorkPath):void 0,buildConfig;isZeroConfig?service?buildConfig={...build2.config,...(0,import_build_utils3.isExperimentalServiceV2)(service)&&service.functions?{functions:service.functions,serviceName:service.name}:void 0,projectSettings:{...projectSettings,framework:service.framework??null,buildCommand:service.buildCommand??null,installCommand:service.installCommand??null},installCommand:service.installCommand??void 0,buildCommand:service.buildCommand??void 0,preDeployCommand:legacyExperimentalService?.preDeployCommand??void 0,framework:builderFramework,nodeVersion:projectSettings.nodeVersion,bunVersion:localConfig.bunVersion??void 0}:buildConfig={outputDirectory:projectSettings.outputDirectory??void 0,...build2.config,projectSettings,installCommand:projectSettings.installCommand??void 0,devCommand:projectSettings.devCommand??void 0,buildCommand:projectSettings.buildCommand??void 0,framework:isFrontendBuilder?projectSettings.framework:void 0,nodeVersion:projectSettings.nodeVersion,bunVersion:localConfig.bunVersion??void 0}:buildConfig={...build2.config||{},bunVersion:localConfig.bunVersion??void 0};let diagnosticsFramework=(0,import_manifest.getBuildDiagnosticsFramework)({service,configFramework:buildConfig.framework,apiDirFramework}),diagnosticsValues=diagnosticsFramework?{framework:diagnosticsFramework}:void 0,builderSpan=span.child("vc.builder",{"builder.name":builderPkg.name,"builder.version":builderPkg.version,"builder.dynamicallyInstalled":String(builderWithPkg.dynamicallyInstalled)}),daemonName=build2.config?.daemon?.name;(service||daemonName)&&builderSpan.setAttributes({"service.name":service?.name??daemonName,"service.runtime":getBuildToolchain(build2,service),"service.kind":service?"service":"daemon"});let serviceRoutePrefix=build2.config?.routePrefix,serviceConfigWorkspace=build2.config?.workspace,preDeployCmd=legacyExperimentalService?.preDeployCommand?.trim(),preDeployEntry=preDeployCmd&&service?{ordinal:buildOrdinals.get(build2)??Number.MAX_SAFE_INTEGER,service:service.name}:void 0;preDeployEntry&&preDeployEntries.push(preDeployEntry);let buildOptions={files:buildFiles,entrypoint:buildEntrypoint,workPath:buildWorkPath,repoRootPath,config:buildConfig,meta,span:builderSpan,...diagnosticsValues?{diagnosticsValues}:void 0,...preDeployCmd?{registerPreDeploy:callback=>{preDeployEntry.callback=callback}}:void 0,...service?{service:{name:service.name,...legacyExperimentalService?{type:legacyExperimentalService.type,trigger:legacyExperimentalService.trigger}:void 0,routePrefix:typeof serviceRoutePrefix=="string"?serviceRoutePrefix:void 0,workspace:typeof serviceConfigWorkspace=="string"?serviceConfigWorkspace:serviceWorkspace,...legacyExperimentalService?{schedule:legacyExperimentalService.schedule}:void 0}}:void 0};if(output.debug(`Building entrypoint "${build2.src}" with "${builderPkg.name}"`),detectedServices&&legacyExperimentalService?.env){let perServiceEnv=(0,import_build_utils3.getServiceUrlEnvVars)({requestedEnv:legacyExperimentalService.env,consumerService:legacyExperimentalService,services:detectedServices,frameworkList:import_frameworks.frameworkList,currentEnv:process.env,deploymentUrl:process.env.VERCEL_URL});for(let[key,value]of Object.entries(perServiceEnv))key in process.env||(setBuildEnv(key,value),output.debug(`Injected service URL env var: ${key}=${value}`))}if(service)for(let key of SERVICE_BUILD_IMMUTABLE_ENV_VARS)setBuildEnv(key,void 0);let buildResult,rawBuildResult,runnerContext={requirePath:builderWithPkg.path,buildOptions,cwd:buildWorkPath,expectsPreDeploy:!!preDeployCmd,builderSpan,serviceName:service?.name,env:perBuildEnv},runner=createBuildRunner2?.({ctx:runnerContext,builder,hasDetectedServices:getHasDetectedServices(),builderPath:builderWithPkg.path,hasBuildCallback:!!buildOptions.buildCallback})??new import_build_runner2.InprocessBuildRunner(runnerContext,builder);if(concurrent&&runner instanceof import_build_runner2.InprocessBuildRunner)throw import_diagnostics3.buildDiagnostics.BUILD_CONCURRENT_INPROCESS({entrypoint:buildOptions.entrypoint});liveRunners.add(runner);try{({buildResult,rawBuildResult}=await(0,import_execute_builder.executeBuilder)({builder,buildOptions,span:builderSpan,isFrontendBuilder,hasDetectedServices:getHasDetectedServices(),framework:import_frameworks.frameworkList.find(framework2=>framework2.slug===buildConfig.framework),runner}))}finally{builderSpan.duration!==void 0&&buildDurationsMs.push(builderSpan.duration/1e3);for(let[key,prior]of restoreEnv)prior===void 0?delete process.env[key]:process.env[key]=prior;try{let builderDiagnostics=await runner.diagnostics();if(builderDiagnostics){let prefix=service&&serviceWorkspace&&serviceWorkspace!=="."?serviceWorkspace+"/"+builderPkg.name+"/":"";for(let[key,value]of Object.entries(builderDiagnostics)){let fullKey=prefix+key;if(key.endsWith("package-manifest.json"))try{let data;value.type==="FileBlob"?data=value.data.toString():data=await streamToString(value.toStream());let packageManifest=JSON.parse(data),validationError=(0,import_validate_package_manifest.validatePackageManifest)(packageManifest);if(validationError)output.warn(`Invalid package-manifest.json from ${fullKey}: ${validationError}`);else{let workspace=service&&serviceWorkspace&&serviceWorkspace!=="."?serviceWorkspace:".",buildType=packageManifest.buildType??(buildConfig.middleware===!0?"middleware":isApiDir?"api-dir":"app"),entry={ordinal:buildOrdinals.get(build2)??Number.MAX_SAFE_INTEGER,workspace,key:fullKey,diagnosticsValues,manifest:{...packageManifest,buildType},service,builderUse:builderPkg.name},existingIndex=packageManifests.findIndex(m=>m.builderUse===builderPkg.name&&m.workspace===workspace),existing=existingIndex===-1?void 0:packageManifests[existingIndex];existing?entry.ordinal<existing.ordinal&&(packageManifests[existingIndex]=entry):packageManifests.push(entry)}}catch(e){output.debug(`Failed to parse ${fullKey}: ${e instanceof Error?e.message:String(e)}`)}else diagnostics[fullKey]=value}}}catch(error){output.error("Collecting diagnostics failed"),output.debug(error)}}if(buildResult&&"output"in buildResult&&"runtime"in buildResult.output&&"type"in buildResult.output&&buildResult.output.type==="Lambda"){let lambdaRuntime=buildResult.output.runtime;if((0,import_build_utils3.getDiscontinuedNodeVersions)().some(o=>o.runtime===lambdaRuntime))throw new import_build_utils3.NowBuildError({code:"NODEJS_DISCONTINUED_VERSION",message:`The Runtime "${build2.use}" is using "${lambdaRuntime}", which is discontinued. Please upgrade your Runtime to a more recent version or consult the author for more details.`,link:"https://vercel.link/function-runtimes"})}if("output"in buildResult&&buildResult.output&&((0,import_build_utils3.isBackendBuilder)(build2)||build2.use==="@vercel/python")){let routesJsonPath=(0,import_path2.join)(buildWorkPath,".vercel","routes.json");if((0,import_fs_extra2.existsSync)(routesJsonPath))try{let routesJson=await readJSONFile2(routesJsonPath);if(routesJson&&typeof routesJson=="object"&&"routes"in routesJson&&Array.isArray(routesJson.routes)){let indexLambda="index"in buildResult.output?buildResult.output.index:void 0,convertedRoutes=[],convertedOutputs=indexLambda?{index:indexLambda}:{};for(let route of routesJson.routes){if(typeof route.source!="string")continue;let{src}=(0,import_routing_utils.sourceToRegex)(route.source),newRoute={src,dest:route.source};route.methods&&(newRoute.methods=route.methods),route.source!=="/"&&(indexLambda&&(convertedOutputs[route.source]=indexLambda),convertedRoutes.push(newRoute))}buildResult.routes=[{handle:"filesystem"},...convertedRoutes,{src:"/(.*)",dest:"/"}],indexLambda&&(buildResult.output=convertedOutputs)}}catch(error){output.error(`Failed to read routes.json: ${error}`)}}if(getHasDetectedServices()&&service&&legacyExperimentalService&&"routes"in buildResult&&Array.isArray(buildResult.routes)&&detectedServices&&(buildResult.routes=(0,import_service_route_ownership.scopeRoutesToServiceOwnership)({routes:buildResult.routes,owner:legacyExperimentalService,allServices:detectedServices})),legacyExperimentalService&&(0,import_build_utils3.isQueueBackedService)(legacyExperimentalService)&&"output"in buildResult&&attachQueueServiceTrigger(buildResult.output,legacyExperimentalService),legacyExperimentalService&&(0,import_build_utils3.isScheduleTriggeredService)(legacyExperimentalService)&&!("crons"in buildResult&&buildResult.crons?.length)){let staticSchedules=(0,import_service_schedules.getStaticServiceSchedules)(legacyExperimentalService.schedule);if(typeof legacyExperimentalService.runtime=="string"&&staticSchedules.length>0){let cronEntrypoint=legacyExperimentalService.entrypoint||legacyExperimentalService.builder.src||"index";for(let schedule of staticSchedules)synthesizedServiceCrons.push({ordinal:buildOrdinals.get(build2)??Number.MAX_SAFE_INTEGER,cron:{path:(0,import_build_utils3.getInternalServiceCronPath)(legacyExperimentalService.name,cronEntrypoint,legacyExperimentalService.handlerFunction||"cron"),schedule}})}else throw new import_build_utils3.NowBuildError({code:"CRON_SERVICE_NO_CRONS",message:`Scheduled service "${legacyExperimentalService.name}" did not produce any cron entries. The builder "${builderPkg.name}" may not support scheduled services.`})}let mergedBuildResult=buildResult;if("buildOutputPath"in buildResult){let buildOutputConfigPath=(0,import_path2.join)(buildResult.buildOutputPath,"config.json"),buildOutputConfig=await readJSONFile2(buildOutputConfigPath);if(isCantParseJSONFile(buildOutputConfig))throw buildOutputConfig;if(buildOutputConfig){if(buildResult.framework&&!buildOutputConfig.framework&&(buildOutputConfig.framework=buildResult.framework),!hasExperimentalServicesV1ConfiguredInVercelConfig&&!hasExperimentalServicesV2ConfiguredInVercelConfig){let outputConfigPath=(0,import_path2.join)(outputDir,"config.json"),outputConfig=await readJSONFile2(outputConfigPath);if(isCantParseJSONFile(outputConfig))throw outputConfig;let shouldMergeGeneratedOutputRoutes=!1;hasNonEmptyObject(outputConfig?.experimentalServices)&&!hasNonEmptyObject(buildOutputConfig.experimentalServices)&&(buildOutputConfig.experimentalServices=outputConfig.experimentalServices,shouldMergeGeneratedOutputRoutes=!0),hasNonEmptyObject(outputConfig?.experimentalServicesV2)&&!hasNonEmptyObject(buildOutputConfig.experimentalServicesV2)&&(buildOutputConfig.experimentalServicesV2=outputConfig.experimentalServicesV2,shouldMergeGeneratedOutputRoutes=!0),hasGeneratedServicesConfig(outputConfig)&&!hasGeneratedServicesConfig(buildOutputConfig)&&(buildOutputConfig.services=outputConfig.services,shouldMergeGeneratedOutputRoutes=!0),shouldMergeGeneratedOutputRoutes&&Array.isArray(outputConfig?.routes)&&(buildOutputConfig.routes=prependMissingBuildOutputRoutes(outputConfig.routes,buildOutputConfig.routes),generatedRootRoutes??=outputConfig.routes),(hasNonEmptyObject(buildOutputConfig.experimentalServices)||hasNonEmptyObject(buildOutputConfig.experimentalServicesV2)||hasGeneratedServicesConfig(buildOutputConfig))&&await import_fs_extra2.default.writeJSON(buildOutputConfigPath,buildOutputConfig,{spaces:2})}getHasDetectedServices()&&service&&legacyExperimentalService&&Array.isArray(buildOutputConfig.routes)&&detectedServices&&(buildOutputConfig.routes=(0,import_service_route_ownership.scopeRoutesToServiceOwnership)({routes:buildOutputConfig.routes,owner:legacyExperimentalService,allServices:detectedServices})),mergedBuildResult=buildOutputConfig}}buildResults.set(build2,mergedBuildResult),executedBuilds.push(build2);let buildOutputLength=0;"output"in buildResult&&(buildOutputLength=Array.isArray(buildResult.output)?buildResult.output.length:1);let writeBuildResultPromise=builderSpan.child("vc.builder.writeBuildResult",{buildOutputLength:String(buildOutputLength)}).trace(()=>writeBuildResult2({repoRootPath,outputDir,buildResult:rawBuildResult,build:build2,builder,builderPkg,vercelConfig:localConfig,standalone,workPath:buildWorkPath,service,nestServiceOutput:nestExperimentalServicesV2Output,stripServiceRoutePrefix}));if(service&&nestExperimentalServicesV2Output){let override=await writeBuildResultPromise;override&&serviceFileOverrides.set(build2,override)}else ops.push(writeBuildResultPromise.then(override=>{override&&overrides.push({ordinal:buildOrdinals.get(build2)??Number.MAX_SAFE_INTEGER,override})},err=>err))}catch(err){let buildJsonBuild=buildsJsonBuilds.get(build2);throw buildJsonBuild&&(buildJsonBuild.error=toEnumerableError2(err)),err}finally{ops.push((0,import_build_utils3.download)(diagnostics,(0,import_path2.join)(outputDir,"diagnostics")).then(()=>{},err=>err))}},sortedBuilds=(0,import_execute_builder.sortBuildsForExecution)(buildsToRun);for(let build2 of sortedBuilds)buildOrdinals.has(build2)||buildOrdinals.set(build2,buildOrdinals.size);let concurrency=createBuildRunner2&&canBuildInSubprocess2?(0,import_build_utils3.resolveBuildConcurrency)():1;buildConcurrency=concurrency;let buildersStart=performance.now();await(0,import_build_concurrency.runBuildsWithConcurrency)({builds:sortedBuilds,concurrency,isEligible:build2=>{let bp=typeof build2.src=="string"?buildersWithPkgs.get(build2.use):void 0;return!!bp&&!!canBuildInSubprocess2&&canBuildInSubprocess2({hasDetectedServices:getHasDetectedServices(),builderPath:bp.path})},forceSingleChain:!hasExperimentalServicesV1ConfiguredInVercelConfig&&!hasExperimentalServicesV2ConfiguredInVercelConfig,resolveScope:async build2=>{let service=getHasDetectedServices()&&typeof build2.src=="string"?serviceByBuilder.get(build2):void 0;if(!service){let key="no-service-context";return{outerKey:key,innerKey:`${key}:${build2.use}:${String(build2.src)}`,siblingsSkipInstall:!1}}let serviceWorkspace=(0,import_build_utils3.isExperimentalService)(service)?service.workspace:service.root,serviceDir=serviceWorkspace&&serviceWorkspace!=="."?(0,import_path2.join)(workPath,serviceWorkspace):workPath,toolchain=getBuildToolchain(build2,service),customInstall=!!service.installCommand?.trim(),installRoot=await(0,import_build_concurrency.resolveInstallScopeRoot)({toolchain,serviceDir,ceilingDir:repoRootPath});return{outerKey:`${toolchain}:${installRoot}`,innerKey:(0,import_build_concurrency.getInstallScopeKey)({toolchain,installDirectory:serviceDir,installCommand:service.installCommand}),siblingsSkipInstall:toolchain==="node"&&!customInstall}},runBuild:(build2,concurrent)=>buildOne(build2,concurrent),log:message=>output.log(message),reportSecondaryError:(err,build2)=>{output.error(`Build failed for "${build2.src}": ${err instanceof Error?err.message:String(err)}`)}}).finally(()=>{buildersWallMs+=performance.now()-buildersStart})},flushOps=async()=>{let errors=await Promise.all(ops.splice(0));for(let error of errors)if(error)throw error},normalizeBuilderSrc=src=>typeof src=="string"?(0,import_build_utils3.normalizePath)(src).replace(/^\.\//,""):void 0,getBuilderIdentity=build2=>{let normalizedSrc=normalizeBuilderSrc(build2.src);return normalizedSrc?`${build2.use}:${normalizedSrc}`:void 0},getAlreadyExecutedBuild=candidate=>{let candidateIdentity=getBuilderIdentity(candidate);if(candidateIdentity)return executedBuilds.find(build2=>getBuilderIdentity(build2)===candidateIdentity)},appendExperimentalServicesV1Routes=services=>{let serviceRoutes=(0,import_service_topology.generateServicesRoutes)(services);zeroConfigRoutes=(0,import_routing_utils.appendRoutesToPhase)({routes:zeroConfigRoutes,newRoutes:serviceRoutes.hostRewrites.length?serviceRoutes.hostRewrites:null,phase:null});let serviceRewriteRoutes=nestExperimentalServicesV2Output?[]:[...serviceRoutes.rewrites,...serviceRoutes.workers,...serviceRoutes.crons];zeroConfigRoutes.push(...(0,import_routing_utils.appendRoutesToPhase)({routes:[],newRoutes:serviceRewriteRoutes,phase:"filesystem"})),nestExperimentalServicesV2Output||(zeroConfigRoutes.push(...serviceRoutes.defaults),zeroConfigFallbackRoutes.push(...serviceRoutes.fallbacks))},sortBuildResultsByOrdinal=()=>{let orderedResults=Array.from(buildResults.entries()).sort(([a],[b])=>(buildOrdinals.get(a)??Number.MAX_SAFE_INTEGER)-(buildOrdinals.get(b)??Number.MAX_SAFE_INTEGER));buildResults.clear();for(let[build2,result]of orderedResults)buildResults.set(build2,result)};try{if(await runBuilders(builds),await flushOps(),sortBuildResultsByOrdinal(),!hasExperimentalServicesV1ConfiguredInVercelConfig&&!hasExperimentalServicesV2ConfiguredInVercelConfig){let generatedConfigPath=(0,import_path2.join)(outputDir,"config.json"),generatedConfig=await readJSONFile2(generatedConfigPath);if(isCantParseJSONFile(generatedConfig))throw generatedConfig;let defaultGeneratedOutputDir=(0,import_path2.join)(workPath,import_write_build_result3.OUTPUT_DIR),generatedConfigs=[generatedConfig];if((0,import_path2.resolve)(outputDir)!==(0,import_path2.resolve)(defaultGeneratedOutputDir)){let defaultGeneratedConfig=await readJSONFile2((0,import_path2.join)(defaultGeneratedOutputDir,"config.json"));if(isCantParseJSONFile(defaultGeneratedConfig))throw defaultGeneratedConfig;generatedConfigs.push(defaultGeneratedConfig)}let generatedServicesConfig=getGeneratedServicesConfig([...generatedConfigs,...buildResults.values()]),generatedExperimentalServicesV1Config=getGeneratedExperimentalServicesV1Config([...generatedConfigs,...buildResults.values()]);if(generatedServicesConfig||generatedExperimentalServicesV1Config){generatedServicesConfig&&(nestExperimentalServicesV2Output=!0),detectedExperimentalServicesV1Config=generatedExperimentalServicesV1Config,detectedExperimentalServicesV2Config=generatedServicesConfig;let generatedRootRoutesConfig=generatedServicesConfig?generatedConfigs.find(config2=>(hasGeneratedServicesConfig(config2)||hasNonEmptyObject(config2?.experimentalServicesV2))&&Array.isArray(config2?.routes)):void 0;generatedRootRoutesConfig?.routes&&(generatedRootRoutes??=generatedRootRoutesConfig.routes);let generatedBuilders=await span.child("vc.detectGeneratedServices").trace(()=>(0,import_detect_builders_with_services.detectBuildersWithServices)(files,pkg,{...localConfig,reservedFunctionFiles,...generatedServicesConfig?{services:generatedServicesConfig,experimentalServicesV2:void 0}:{experimentalServicesV2:void 0,experimentalServices:generatedExperimentalServicesV1Config},projectSettings,ignoreBuildScript:!0,featHandleMiss:!0,workPath}));if(generatedBuilders.errors&&generatedBuilders.errors.length>0)throw generatedBuilders.errors[0];for(let w of generatedBuilders.warnings)output.warn(w.message,null,w.link,w.action||"Learn More");if(detectedResolvedServices=generatedBuilders.services,!detectedResolvedServices||detectedResolvedServices.length===0?(detectedResolvedServices=void 0,detectedServices=void 0):(detectedServices=detectedResolvedServices.filter(import_build_utils3.isExperimentalService),detectedServices.length>0&&appendExperimentalServicesV1Routes(detectedServices)),detectedServices&&detectedServices.length>0&&generatedBuilders.useImplicitEnvInjection){let serviceUrlEnvVars=(0,import_build_utils3.getExperimentalServiceUrlEnvVars)({services:detectedServices,frameworkList:import_frameworks.frameworkList,currentEnv:process.env,deploymentUrl:process.env.VERCEL_URL});for(let[key,value]of Object.entries(serviceUrlEnvVars))process.env[key]=value,output.debug(`Injected service URL env var: ${key}=${value}`)}let buildsToRun=[],seenBuildsToRun=new Set,recordedServices=[];for(let service of detectedResolvedServices||[]){let alreadyExecutedBuild=getAlreadyExecutedBuild(service.builder);if(alreadyExecutedBuild){if(generatedServicesConfig){output.warn(getGeneratedServiceAlreadyBuiltWarning(service));continue}serviceByBuilder.set(alreadyExecutedBuild,service),recordedServices.push(service);continue}let serviceBuilderIdentity=getBuilderIdentity(service.builder);serviceBuilderIdentity&&!seenBuildsToRun.has(serviceBuilderIdentity)&&(serviceByBuilder.set(service.builder,service),seenBuildsToRun.add(serviceBuilderIdentity),buildsToRun.push(service.builder)),recordedServices.push(service)}servicesToRecord=recordedServices.length>0?recordedServices:void 0,buildsToRun.length>0&&await runBuilders(buildsToRun)}}preDeployEntries.sort((a,b)=>a.ordinal-b.ordinal);for(let entry of preDeployEntries)entry.callback?await entry.callback():output.warn(`Service "${entry.service}" has a preDeployCommand but its builder does not support it. The command was not executed.`)}finally{let servicesCount=detectedResolvedServices?.length??0;(servicesCount>0||daemonBuilds.length>0)&&span.setAttributes({"services.count":String(servicesCount),"daemons.count":String(daemonBuilds.length),"build.concurrency":buildConcurrency===void 0?void 0:String(buildConcurrency),"services.build_ms.sum":String(Math.round(buildDurationsMs.reduce((sum,ms)=>sum+ms,0))),"services.build_ms.max":String(Math.round(Math.max(0,...buildDurationsMs))),"services.build_ms.wall":String(Math.round(buildersWallMs))});let settled=await Promise.all(ops.splice(0));for(let err of settled)err&&ops.push(Promise.resolve(err));for(let runner of liveRunners)try{runner.teardown()}catch(err){output.debug(`Runner teardown failed: ${err instanceof Error?err.message:String(err)}`)}}sortBuildResultsByOrdinal();function getBuildOutputPaths(build2,result){if(!("output"in result)||!result.output)return[];let{output:output2}=result;return Array.isArray(output2)?[]:(0,import_write_build_result3.isLambda)(output2)||(0,import_write_build_result3.isEdgeFunction)(output2)?serviceByBuilder.has(build2)||typeof build2.src!="string"?[]:[(0,import_write_build_result3.getV3OutputPath)(build2)]:Object.keys(output2)}let claimedScheduleOutputPaths=new Set(scheduleEntrypointPlan.outputPaths.values());for(let[build2,result]of buildResults){if(scheduleEntrypointBuilds.has(build2))continue;let conflictingOutputPath=getBuildOutputPaths(build2,result).find(outputPath=>claimedScheduleOutputPaths.has(outputPath));if(conflictingOutputPath)throw new import_build_utils3.NowBuildError({code:"SCHEDULE_FUNCTION_OUTPUT_COLLISION",message:`Schedule function output "${conflictingOutputPath}" conflicts with another build output. Move the conflicting function out of the reserved "_vercel/schedules" namespace.`})}packageManifests.sort((a,b)=>a.ordinal-b.ordinal),await(0,import_manifest.writeManifests)(packageManifests,diagnostics,ops,outputDir),corepackShimDir&&(0,import_corepack.cleanupCorepack)(corepackShimDir);let collectSpan=span.child("vc.finalizeBuildOutput");await flushOps();let needBuildsJsonOverride=!1,speedInsightsVersion=await(0,import_build_utils3.getInstalledPackageVersion)("@vercel/speed-insights");speedInsightsVersion&&(buildsJson.features={...buildsJson.features??{},speedInsightsVersion},needBuildsJsonOverride=!0);let webAnalyticsVersion=await(0,import_build_utils3.getInstalledPackageVersion)("@vercel/analytics");webAnalyticsVersion&&(buildsJson.features={...buildsJson.features??{},webAnalyticsVersion},needBuildsJsonOverride=!0),needBuildsJsonOverride&&await writeBuildJson(buildsJson,outputDir);let configPath=(0,import_path2.join)(outputDir,"config.json"),existingConfig=await readJSONFile2(configPath);if(isCantParseJSONFile(existingConfig))throw existingConfig;if(existingConfig){if("deploymentId"in existingConfig&&typeof existingConfig.deploymentId=="string"){let deploymentId=existingConfig.deploymentId;if(deploymentId.length>32)throw new import_build_utils3.NowBuildError({code:"INVALID_DEPLOYMENT_ID",message:`The deploymentId "${deploymentId}" must be 32 characters or less. Please choose a shorter deploymentId in your config.`,link:"https://vercel.com/docs/skew-protection#custom-skew-protection-deployment-id"});if(!VALID_DEPLOYMENT_ID_PATTERN.test(deploymentId))throw new import_build_utils3.NowBuildError({code:"INVALID_DEPLOYMENT_ID",message:`The deploymentId "${deploymentId}" contains invalid characters. Only alphanumeric characters (a-z, A-Z, 0-9), hyphens (-), and underscores (_) are allowed.`,link:"https://vercel.com/docs/skew-protection#custom-skew-protection-deployment-id"})}existingConfig.overrides&&!nestExperimentalServicesV2Output&&overrides.push({ordinal:Number.MAX_SAFE_INTEGER,override:existingConfig.overrides})}let topLevelBuildResults=nestExperimentalServicesV2Output?new Map(Array.from(buildResults.entries()).filter(([build2])=>!serviceByBuilder.has(build2))):buildResults,builderRoutes=Array.from(topLevelBuildResults.entries()).filter(b=>"routes"in b[1]&&Array.isArray(b[1].routes)).map(b=>{let build2=b[0],buildResult=b[1],entrypoint=build2.src;if(getHasDetectedServices()&&typeof build2.src=="string"){let service=serviceByBuilder.get(build2);service&&(0,import_build_utils3.isExperimentalService)(service)&&service.type==="web"&&typeof service.routePrefix=="string"&&(entrypoint=getServicesMergeEntrypoint(service,build2.src))}return{use:build2.use,entrypoint,routes:buildResult.routes,projectMiddleware:build2.config?.middleware===!0}});zeroConfigRoutes.length&&builderRoutes.unshift({use:"@vercel/zero-config-routes",entrypoint:"/",routes:zeroConfigRoutes});let mergedRoutes=(0,import_routing_utils.mergeRoutes)({userRoutes:routesResult.routes,builds:builderRoutes});zeroConfigFallbackRoutes.length&&(mergedRoutes=(0,import_routing_utils.appendRoutesToPhase)({routes:mergedRoutes,newRoutes:zeroConfigFallbackRoutes,phase:"filesystem"}));let mergedImages=mergeImages(localConfig.images,topLevelBuildResults.values()),orderedServiceCrons=synthesizedServiceCrons.slice().sort((a,b)=>a.ordinal-b.ordinal).map(entry=>entry.cron),mergedCrons=mergeCrons([...localConfig.crons||[],...orderedServiceCrons],buildResults.values()),mergedWildcard=mergeWildcard(topLevelBuildResults.values()),mergedDeploymentId=await mergeDeploymentId(existingConfig?.deploymentId,topLevelBuildResults.values(),workPath,projectSettings.outputDirectory,readJSONFile2,isCantParseJSONFile);if(mergedDeploymentId){if(mergedDeploymentId.length>32)throw new import_build_utils3.NowBuildError({code:"INVALID_DEPLOYMENT_ID",message:`The deploymentId "${mergedDeploymentId}" must be 32 characters or less. Please choose a shorter deploymentId in your config.`,link:"https://vercel.com/docs/skew-protection#custom-skew-protection-deployment-id"});if(!VALID_DEPLOYMENT_ID_PATTERN.test(mergedDeploymentId))throw new import_build_utils3.NowBuildError({code:"INVALID_DEPLOYMENT_ID",message:`The deploymentId "${mergedDeploymentId}" contains invalid characters. Only alphanumeric characters (a-z, A-Z, 0-9), hyphens (-), and underscores (_) are allowed.`,link:"https://vercel.com/docs/skew-protection#custom-skew-protection-deployment-id"})}let topLevelBuildResultOverrides=Array.from(topLevelBuildResults.values()).map(result=>"overrides"in result?result.overrides:void 0).filter(value=>!!value),orderedOverrides=overrides.slice().sort((a,b)=>a.ordinal-b.ordinal).map(entry=>entry.override),mergedOverrides=overrides.length>0||topLevelBuildResultOverrides.length>0?Object.assign({},...orderedOverrides,...topLevelBuildResultOverrides):void 0,framework=topLevelBuildResults.size>0?await getFramework(workPath,topLevelBuildResults):void 0,rootRoutesToAppend=Array.from(topLevelBuildResults.values()).some(result=>(hasGeneratedServicesConfig(result)||"experimentalServicesV2"in result&&hasNonEmptyObject(result.experimentalServicesV2))&&"routes"in result&&Array.isArray(result.routes))?void 0:generatedRootRoutes??existingConfig?.routes,explicitRootRoutes=appendBuildOutputRouteTables(routesResult.routes,rootRoutesToAppend),mergedRoutesWithGeneratedServicesV2Routes=nestExperimentalServicesV2Output?appendBuildOutputRouteTables(mergedRoutes,rootRoutesToAppend):mergedRoutes,resolvedSchedules=mergeSchedules((0,import_schedule_entrypoint.resolveScheduleEntrypointTargets)(authoredSchedules,scheduleEntrypointPlan),buildResults,build2=>nestExperimentalServicesV2Output&&serviceByBuilder.has(build2));await writeDaemonDescriptors(outputDir,daemons,buildResults);let config={version:3,daemons:Object.fromEntries(Object.keys(daemons??{}).map(name=>[name,{}])),routes:mergedRoutesWithGeneratedServicesV2Routes??explicitRootRoutes,afterCacheBypass:mergeAfterCacheBypass(topLevelBuildResults.values())??existingConfig?.afterCacheBypass,images:mergedImages,wildcard:mergedWildcard,overrides:mergedOverrides,framework,crons:mergedCrons,...resolvedSchedules.length>0&&{schedules:(0,import_build_utils3.toScheduleRecord)(resolvedSchedules)},...detectedExperimentalServicesV1Config&&Object.keys(detectedExperimentalServicesV1Config).length>0&&{experimentalServices:detectedExperimentalServicesV1Config},...detectedExperimentalServicesV2Config&&Object.keys(detectedExperimentalServicesV2Config).length>0&&{experimentalServicesV2:detectedExperimentalServicesV2Config},...!detectedExperimentalServicesV1Config&&servicesToRecord&&servicesToRecord.length>0&&{services:servicesToRecord},...mergedDeploymentId&&{deploymentId:mergedDeploymentId}};return await import_fs_extra2.default.writeJSON((0,import_path2.join)(outputDir,"config.json"),config,{spaces:2}),nestExperimentalServicesV2Output&&await writeServiceConfigs(outputDir,buildResults,serviceByBuilder,serviceFileOverrides,detectedExperimentalServicesV2Config,readJSONFile2,isCantParseJSONFile),await writeFlagsJSON(buildResults.values(),outputDir,output),await span.child("vc.frameworkCrossCheck").trace(async s=>{let detectedFrameworks=await detectedFrameworksPromise,executedBuilders=Array.from(buildResults.keys()),usedBuilders=executedBuilders.map(b=>b.use).filter(use=>!!use),mismatchResult=(0,import_framework_detection.warnIfFrameworkMismatch)({configuredFramework:projectSettings.framework,detectedFrameworks,usedBuilders,usedFrameworks:executedBuilders.map(b=>b.config?.framework)},output);s.setAttributes({result:mismatchResult,configuredFramework:projectSettings.framework??void 0,detectedFrameworks:detectedFrameworks.join(",")||void 0,usedBuilders:usedBuilders.join(",")||void 0})}),await span.child("vc.validateBuildOutput").trace(async s=>{let outputProblems=await(0,import_validate_build_output.validateBuildOutput)(outputDir,output);s.setAttributes({problemCount:String(outputProblems.length),problems:outputProblems.map(p=>`${p.severity}: ${p.message}`).join("; ")||void 0}),(0,import_validate_build_output.reportBuildOutputProblems)(outputProblems,output)}),collectSpan.stop(),{buildDuration:buildStamp()}}async function getFramework(cwd,buildResults){let detectedFramework=await(0,import_fs_detectors.detectFrameworkRecord)({fs:new import_fs_detectors.LocalFileSystemDetector(cwd),frameworkList:import_frameworks.frameworkList});if(!detectedFramework){for(let buildResult of buildResults.values())if("framework"in buildResult&&buildResult.framework)return{slug:buildResult.framework.slug,version:buildResult.framework.version};return}if(detectedFramework.useRuntime){for(let[build2,buildResult]of buildResults.entries())if("framework"in buildResult&&build2.use===detectedFramework.useRuntime.use)return buildResult.framework?{slug:buildResult.framework.slug,version:buildResult.framework.version}:void 0}if(detectedFramework.slug){if(detectedFramework.detectedVersion&&import_semver.default.valid(detectedFramework.detectedVersion))return{slug:detectedFramework.slug,version:detectedFramework.detectedVersion};let frameworkVersion=(0,import_fs_detectors.detectFrameworkVersion)(detectedFramework);if(frameworkVersion)return{slug:detectedFramework.slug,version:frameworkVersion}}}function expandBuild(files,build2){if(!build2.use)throw new import_build_utils3.NowBuildError({code:"invalid_build_specification",message:"Field `use` is missing in build specification",link:"https://vercel.com/docs/concepts/projects/project-configuration#builds",action:"View Documentation"});let src=(0,import_path2.normalize)(build2.src||"**").split(import_path2.sep).join("/");if(src==="."||src==="./")throw new import_build_utils3.NowBuildError({code:"invalid_build_specification",message:"A build `src` path resolves to an empty string",link:"https://vercel.com/docs/concepts/projects/project-configuration#builds",action:"View Documentation"});return src[0]==="/"&&(src=src.substring(1)),files.filter(name=>name===src||(0,import_minimatch.default)(name,src,{dot:!0})).map(m=>({...build2,src:m}))}function mergeImages(images,buildResults){for(let result of buildResults)"images"in result&&result.images&&(images=Object.assign({},images,result.images));return images}function mergeCrons(crons=[],buildResults){for(let result of buildResults)"crons"in result&&result.crons&&(crons=crons.concat(result.crons));return crons}function mergeSchedules(authored,buildResults,isNestedServiceBuild){let schedules=[...authored],sources=new Map,claim=(schedule,source)=>{let{name}=schedule,existing=sources.get(name);if(existing)throw new import_build_utils3.NowBuildError({code:"SCHEDULE_NAME_CONFLICT",message:`Schedule "${name}" is defined by both ${existing} and ${source}. Schedule names must be unique within a deployment.`});sources.set(name,source)};for(let schedule of schedules)claim(schedule,"vercel.json");for(let[build2,result]of buildResults){if(!("schedules"in result)||result.schedules===void 0)continue;let source=`the build output of "${build2.use}"${build2.src?` for "${build2.src}"`:""}`,invalid=message=>new import_build_utils3.NowBuildError({code:"INVALID_BUILD_OUTPUT_SCHEDULE",message:`Schedules in ${source} ${message}`});if(!isPlainObject(result.schedules))throw invalid("must be an object keyed by schedule name.");let entries=Object.entries(result.schedules);if(entries.length!==0){if(isNestedServiceBuild(build2))throw new import_build_utils3.NowBuildError({code:"SERVICE_BUILD_OUTPUT_SCHEDULES_UNSUPPORTED",message:`Schedules in ${source} are not supported for services yet. Define them in vercel.json instead.`});for(let[key,schedule]of entries){if(!isPlainObject(schedule))throw invalid("must be objects.");if("entrypoint"in schedule)throw invalid("cannot use `entrypoint`. Build Output schedules must target a `function`, `path`, or `topic`.");if("name"in schedule)throw invalid(`cannot set \`name\` on "${key}". The schedule's key is its name.`);let named={name:key,...schedule};claim(named,source),schedules.push(named)}}}return schedules}function isPlainObject(value){return value!=null&&typeof value=="object"&&!Array.isArray(value)}function mergeWildcard(buildResults){let wildcard;for(let result of buildResults)"wildcard"in result&&result.wildcard&&(wildcard||(wildcard=[]),wildcard.push(...result.wildcard));return wildcard}function mergeAfterCacheBypass(buildResults){let rules;for(let result of buildResults)"afterCacheBypass"in result&&result.afterCacheBypass&&(rules=(rules??[]).concat(result.afterCacheBypass));return rules}function appendBuildOutputRouteTables(...routeTables){let routes=[];for(let routeTable of routeTables){if(!Array.isArray(routeTable)||routeTable.length===0)continue;let phase=null,phaseRoutes=[],flushPhase=()=>{phaseRoutes.length!==0&&(routes=(0,import_routing_utils.appendRoutesToPhase)({routes,newRoutes:phaseRoutes,phase}),phaseRoutes=[])};for(let route of routeTable)(0,import_routing_utils.isHandler)(route)?(flushPhase(),phase=route.handle):phaseRoutes.push(route);flushPhase()}return routes.length>0?routes:void 0}function appendServiceRouteTables(configuredRoutes,...builderRouteTables){if(!configuredRoutes.some(route=>!(0,import_routing_utils.isHandler)(route)&&route.transforms?.some(transform=>transform.type==="request.path")))return appendBuildOutputRouteTables(configuredRoutes,...builderRouteTables);let builderRoutesWithRequestPathFallbacks=builderRouteTables.map(routes=>routes?.map(route=>(0,import_routing_utils.isHandler)(route)||route.dest===void 0||!route.transforms||!route.transforms.some(transform=>transform.type==="request.path")?route:{...route,transforms:route.transforms.map(transform=>transform.type==="request.path"?{...transform,fallback:!0}:transform)}));return appendBuildOutputRouteTables(configuredRoutes,...builderRoutesWithRequestPathFallbacks)}function prependMissingBuildOutputRoutes(routesToPrepend,existingRoutes){if(!Array.isArray(routesToPrepend)||routesToPrepend.length===0)return existingRoutes;let existingRouteKeys=new Set((existingRoutes??[]).map(route=>JSON.stringify(route))),missingRoutes=routesToPrepend.filter(route=>!existingRouteKeys.has(JSON.stringify(route)));return appendBuildOutputRouteTables(missingRoutes,existingRoutes)}async function writeServiceConfigs(outputDir,buildResults,serviceByBuilder,serviceFileOverrides,experimentalServicesV2,readJSONFile2,isCantParseJSONFile){let serviceResults=new Map,serviceOverrides=new Map;for(let[build2,buildResult]of buildResults){let service=serviceByBuilder.get(build2);if(!service)continue;let results=serviceResults.get(service.name)||[];results.push(buildResult),serviceResults.set(service.name,results);let fileOverrides=serviceFileOverrides.get(build2);if(fileOverrides){let overrides=serviceOverrides.get(service.name)||[];overrides.push(fileOverrides),serviceOverrides.set(service.name,overrides)}}await Promise.all(Array.from(serviceResults.entries()).map(async([serviceName,results])=>{let configPath=(0,import_path2.join)(outputDir,"services",serviceName,"config.json"),existingConfig=await readJSONFile2(configPath);if(isCantParseJSONFile(existingConfig))throw existingConfig;let routes=results.flatMap(result=>"routes"in result&&Array.isArray(result.routes)?result.routes:[]),existingRoutes=routes.length>0?void 0:existingConfig?.routes,existingCrons=results.some(result=>"crons"in result&&result.crons?.length)?void 0:existingConfig?.crons,configuredRoutes=experimentalServicesV2?.[serviceName]?getExperimentalServicesV2Routes(experimentalServicesV2[serviceName]):[],overrides=[...results.map(result=>"overrides"in result?result.overrides:void 0).filter(value=>!!value),...serviceOverrides.get(serviceName)||[]],framework=results.find(result=>"framework"in result&&!!result.framework)?.framework,mergedRoutes=appendServiceRouteTables(configuredRoutes,routes,existingRoutes),config={...existingConfig,version:3,routes:mergedRoutes,afterCacheBypass:mergeAfterCacheBypass(results)??existingConfig?.afterCacheBypass,images:mergeImages(existingConfig?.images,results),wildcard:mergeWildcard(results)||existingConfig?.wildcard,overrides:overrides.length>0?Object.assign({},existingConfig?.overrides,...overrides):existingConfig?.overrides,framework:framework||existingConfig?.framework,crons:mergeCrons(existingCrons,results),services:void 0,experimentalServices:void 0,experimentalServicesV2:void 0};await import_fs_extra2.default.writeJSON(configPath,config,{spaces:2})}))}function getExperimentalServicesV2Routes(serviceConfig){let routesResult=(0,import_routing_utils.getTransformedRoutes)({routes:serviceConfig.routes,cleanUrls:serviceConfig.cleanUrls,trailingSlash:serviceConfig.trailingSlash,headers:serviceConfig.headers,redirects:serviceConfig.redirects,rewrites:serviceConfig.rewrites});if(routesResult.error)throw routesResult.error;return routesResult.routes??[]}function getGeneratedExperimentalServicesV1Config(buildResults){for(let result of buildResults)if(result&&"experimentalServices"in result&&hasNonEmptyObject(result.experimentalServices))return result.experimentalServices}function hasGeneratedServicesConfig(result){return result!=null&&"services"in result&&hasNonEmptyObject(result.services)}function getGeneratedServicesConfig(buildResults){for(let result of buildResults){if(hasGeneratedServicesConfig(result))return result.services;if(result&&"experimentalServicesV2"in result&&hasNonEmptyObject(result.experimentalServicesV2))return result.experimentalServicesV2}}async function mergeDeploymentId(existingDeploymentId,buildResults,workPath,outputDirectory,readJSONFile2,isCantParseJSONFile){if(existingDeploymentId)return existingDeploymentId;for(let result of buildResults)if("deploymentId"in result&&result.deploymentId)return result.deploymentId;let nextOutputDirs=new Set([outputDirectory,".next"].filter(dir=>!!dir));for(let nextOutputDir of nextOutputDirs)try{let routesManifestPath=(0,import_path2.join)(workPath,nextOutputDir,"routes-manifest.json");if(await import_fs_extra2.default.pathExists(routesManifestPath)){let routesManifest=await readJSONFile2(routesManifestPath);if(routesManifest&&!isCantParseJSONFile(routesManifest)&&routesManifest.deploymentId)return routesManifest.deploymentId}}catch{}}async function writeFlagsJSON(buildResults,outputDir,output){let flagsFilePath=(0,import_path2.join)(outputDir,"flags.json"),hasFlags=!0,flags=await import_fs_extra2.default.readJSON(flagsFilePath).catch(error=>{if(error.code==="ENOENT")return hasFlags=!1,{definitions:{}};throw error});for(let result of buildResults)if(!(!("flags"in result)||!result.flags||!result.flags.definitions))for(let[key,definition]of Object.entries(result.flags.definitions)){if(result.flags.definitions[key]){output.warn(`The flag "${key}" was found multiple times. Only its first occurrence will be considered.`);continue}hasFlags=!0,flags.definitions[key]=definition}hasFlags&&await import_fs_extra2.default.writeJSON(flagsFilePath,flags,{spaces:2})}function createApiDirFrameworkDetector(detectAllFrameworks2){let cache=new Map;return{detect(builderUse,workPath){let cacheKey=`${builderUse}:${workPath}`,cached=cache.get(cacheKey);return cached||(cached=detectApiDirFramework(builderUse,workPath,detectAllFrameworks2),cache.set(cacheKey,cached)),cached}}}async function detectApiDirFramework(builderUse,workPath,detectAllFrameworks2){let runtimeFrameworks=import_fs_detectors.builderToFrameworks.get(builderUse)??[];if(runtimeFrameworks.length===0)return;let detectedSlugs=await detectAllFrameworks2(workPath,runtimeFrameworks).catch(()=>[]);return detectedSlugs.length===1?detectedSlugs[0]:void 0}async function writeDaemonDescriptors(outputDir,daemons,buildResults){let namePattern=new RegExp(import_build_utils3.DAEMON_NAME_PATTERN),descriptors=new Map;for(let[build2,result]of buildResults){let returned="output"in result&&"daemons"in result?result.daemons:void 0;for(let[name,descriptor]of Object.entries(returned??{})){if(name!==build2.config?.daemon?.name||!namePattern.test(name))throw new Error(`Builder "${build2.use}" returned an unexpected daemon descriptor "${name}".`);descriptors.set(name,descriptor)}}for(let name of Object.keys(daemons??{})){let descriptor=descriptors.get(name);if(!descriptor)throw new import_build_utils3.NowBuildError({code:"MISSING_DAEMON_OUTPUT",message:`Failed to build daemon "${name}": its build returned no daemon descriptor.`});await import_fs_extra2.default.outputJSON((0,import_path2.join)(outputDir,"daemons",name,".vc-config.json"),descriptor,{spaces:2})}}async function writeBuildJson(buildsJson,outputDir){await import_fs_extra2.default.writeJSON((0,import_path2.join)(outputDir,"builds.json"),buildsJson,{spaces:2})}function getBuildToolchain(build2,service){return service?.runtime??["python","go","ruby","rust","container"].find(t=>build2.use.startsWith(`@vercel/${t}`))??"node"}function normalizeServiceRoutePrefix(routePrefix){let prefix=routePrefix.startsWith("/")?routePrefix:`/${routePrefix}`;return prefix!=="/"&&prefix.endsWith("/")&&(prefix=prefix.slice(0,-1)),prefix}function getServicesMergeEntrypoint(service,buildSrc){let routePrefix=typeof service.routePrefix=="string"?service.routePrefix:"/",normalized=normalizeServiceRoutePrefix(routePrefix);return`svc:${String(1e4-normalized.length).padStart(5,"0")}:${normalized}:${service.name}:${buildSrc}`}function attachQueueServiceTrigger(buildOutput,service){let topics=(0,import_build_utils3.getServiceQueueTopicConfigs)(service),consumer=(0,import_build_utils3.sanitizeConsumerName)((0,import_build_utils3.getInternalServiceFunctionPath)(service.name));if(service.builder.use!=="@vercel/python"&&topics.length>1)throw import_diagnostics3.buildDiagnostics.BUILD_WORKER_MULTIPLE_TOPICS({name:service.name,topics:topics.length});for(let topicConfig of topics){let trigger={type:"queue/v2beta",topic:topicConfig.topic,consumer};if(topicConfig.retryAfterSeconds!==void 0&&(trigger.retryAfterSeconds=topicConfig.retryAfterSeconds),topicConfig.initialDelaySeconds!==void 0&&(trigger.initialDelaySeconds=topicConfig.initialDelaySeconds),(0,import_write_build_result3.isLambda)(buildOutput))appendTrigger(buildOutput,trigger);else for(let output of Object.values(buildOutput))(0,import_write_build_result3.isLambda)(output)&&appendTrigger(output,trigger)}}function triggerMatches(trigger,existingTrigger){return trigger.type==="schedule/v1beta"?trigger.type===existingTrigger.type:trigger.type===existingTrigger.type&&trigger.topic===existingTrigger.topic&&trigger.consumer===existingTrigger.consumer}function appendTrigger(lambda,trigger){let existingTriggers=Array.isArray(lambda.experimentalTriggers)?lambda.experimentalTriggers:[];existingTriggers.some(existing=>triggerMatches(trigger,existing))||(lambda.experimentalTriggers=[...existingTriggers,trigger])}async function streamToString(stream){let chunks=[];for await(let chunk of stream){let buffer=Buffer.isBuffer(chunk)?chunk:Buffer.from(chunk);chunks.push(Uint8Array.from(buffer))}return Buffer.concat(chunks).toString("utf-8")}}});var require_dist5=__commonJS({"../../internals/cli-builder-integration/dist/index.js"(exports,module){"use strict";var __defProp=Object.defineProperty,__getOwnPropDesc=Object.getOwnPropertyDescriptor,__getOwnPropNames=Object.getOwnPropertyNames,__hasOwnProp=Object.prototype.hasOwnProperty,__export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:!0})},__copyProps=(to,from,except,desc)=>{if(from&&typeof from=="object"||typeof from=="function")for(let key of __getOwnPropNames(from))!__hasOwnProp.call(to,key)&&key!==except&&__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable});return to},__toCommonJS2=mod=>__copyProps(__defProp({},"__esModule",{value:!0}),mod),src_exports={};__export(src_exports,{BuildRunner:()=>import_build_runner2.BuildRunner,InprocessBuildRunner:()=>import_build_runner2.InprocessBuildRunner,doBuild:()=>import_do_build.doBuild,executeBuilder:()=>import_execute_builder.executeBuilder,sortBuildsForExecution:()=>import_execute_builder.sortBuildsForExecution});module.exports=__toCommonJS2(src_exports);var import_build_runner2=require_build_runner(),import_execute_builder=require_execute_builder(),import_do_build=require_do_build()}});var import_chalk=__toESM(require_source(),1),import_dotenv=__toESM(require_main(),1),import_fs_extra=__toESM(require_lib(),1),import_build_utils2=__toESM(require_build_utils(),1);import{dirname,join as join2,relative,resolve}from"path";import{readdirSync,statSync}from"fs";var import_cli_builder_integration=__toESM(require_dist5(),1);var import_build_utils=__toESM(require_build_utils(),1),import_build_runner=__toESM(require_build_runner(),1);import{fork}from"node:child_process";import{readFileSync,unlinkSync}from"node:fs";import{join}from"node:path";function toError(error){return error instanceof Error?error:Object.assign(new Error,error)}function mergeWorkerMeta(target,workerMeta){for(let[key,value]of Object.entries(workerMeta)){let existing=target[key];if(existing instanceof Set&&value instanceof Set)for(let entry of value)existing.add(entry);else existing===!0&&typeof value!="object"||(target[key]=value)}}function canBuildInSubprocess({hasDetectedServices,builderPath}){return hasDetectedServices&&!!builderPath}function rehydrateFile(obj){if(obj.type==="FileBlob"){let blob=Object.assign(Object.create(import_build_utils.FileBlob.prototype),obj);if(obj.dataPath){blob.data=readFileSync(obj.dataPath);try{unlinkSync(obj.dataPath)}catch{}delete blob.dataPath}return blob}return obj.type==="FileRef"?Object.assign(Object.create(import_build_utils.FileRef.prototype),obj):Object.assign(Object.create(import_build_utils.FileFsRef.prototype),obj)}function rehydrateFiles(files){if(files)for(let name of Object.keys(files))files[name]=rehydrateFile(files[name])}function rehydrateDiagnostics(diagnostics){let result={};for(let[name,file]of Object.entries(diagnostics))result[name]=rehydrateFile(file);return result}function rehydrateOutput(output,seen){if(!output||typeof output!="object"||seen.has(output))return;seen.add(output);let obj=output;if(obj.type==="Lambda")rehydrateFiles(obj.files),Object.setPrototypeOf(obj,import_build_utils.Lambda.prototype);else if(obj.type==="EdgeFunction")rehydrateFiles(obj.files);else if(obj.type==="Prerender")obj.lambda&&rehydrateOutput(obj.lambda,seen),obj.fallback&&rehydrateOutput(obj.fallback,seen);else if(obj.type==="FileFsRef"||obj.type==="FileBlob"||obj.type==="FileRef"){let rehydrated=rehydrateFile(obj);Object.assign(obj,rehydrated),Object.setPrototypeOf(obj,Object.getPrototypeOf(rehydrated))}}function rehydrateResult(result,outputVersion){let output=(result&&"resultVersion"in result?result.result:result).output;if(!output)return;let seen=new Set;if(outputVersion===3)rehydrateOutput(output,seen);else for(let value of Object.values(output))rehydrateOutput(value,seen)}function createServiceLinePrefixer(serviceName,dest){let tag=`[vc:service:${serviceName}] `,pending="";return{onData(chunk){pending+=chunk;let newlineIndex=pending.lastIndexOf(`
8
8
  `);if(newlineIndex===-1)return;let complete=pending.slice(0,newlineIndex+1);pending=pending.slice(newlineIndex+1);let tagged=complete.split(`
9
9
  `).slice(0,-1).map(line=>`${tag}${line}`).join(`
10
10
  `);dest.write(`${tagged}