void 1.3.0 → 1.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (451) hide show
  1. package/README.md +1 -1
  2. package/dist/{account-cmd-B4i71m7k.mjs → account-cmd-ChVKPZ-w.mjs} +7 -8
  3. package/dist/{action-key-XZ9HkWAO.mjs → action-key-XtKKbbsi.mjs} +1 -2
  4. package/dist/{agents-CuNtT0D_.mjs → agents-DRo8gzni.mjs} +2 -3
  5. package/dist/{application-analysis-DYdVoMAY.mjs → application-analysis-2vGZrKzg.mjs} +27 -29
  6. package/dist/{application-routing-C8EqRDfv.mjs → application-routing-DnUQoOJD.mjs} +2 -3
  7. package/dist/{ast-CsZ_q_gc.mjs → ast-Cv0JwXqb.mjs} +1 -2
  8. package/dist/{ast-bindings-C3yaPs1y.mjs → ast-bindings-BkivMJIo.mjs} +6 -11
  9. package/dist/{atomic-write-Dq6R0BPN.mjs → atomic-write-DA6eD1Kp.mjs} +1 -2
  10. package/dist/auth-CH4PLAX1.d.mts +68 -0
  11. package/dist/{auth-Cbqi1iVX.mjs → auth-CL-p_rqV.mjs} +1 -1
  12. package/dist/{auth-B6iOCjKI.mjs → auth-Dy8svcqQ.mjs} +6 -7
  13. package/dist/{auth-3sGB0zJ1.mjs → auth-YVjBX5NY.mjs} +1 -2
  14. package/dist/{auth-client-Bawdj38n.d.mts → auth-client-6-Ft9i9T.d.mts} +0 -2
  15. package/dist/{auth-client-BWBT8HLp.mjs → auth-client-DwCdwKbw.mjs} +1 -2
  16. package/dist/{auth-client-react-CMLwT2xI.mjs → auth-client-react-CJdeErvM.mjs} +1 -2
  17. package/dist/{auth-client-react-7GFffu8R.d.mts → auth-client-react-DvQLe5Zb.d.mts} +0 -2
  18. package/dist/{auth-client-solid-UoreJWZG.mjs → auth-client-solid-BRvgvp6h.mjs} +1 -2
  19. package/dist/{auth-client-solid-DyTFL4cq.d.mts → auth-client-solid-P9pEtKGp.d.mts} +0 -2
  20. package/dist/{auth-client-svelte-zetW0KIH.d.mts → auth-client-svelte-B5j8irT6.d.mts} +0 -2
  21. package/dist/{auth-client-svelte-Cv_WvrRk.mjs → auth-client-svelte-BSqUCEed.mjs} +1 -2
  22. package/dist/{auth-client-vue-bChShbQP.d.mts → auth-client-vue-BEiAfavk.d.mts} +0 -2
  23. package/dist/{auth-client-vue-CFk7Xbv3.mjs → auth-client-vue-CPkbRtOO.mjs} +1 -2
  24. package/dist/{auth-link-BKwHPbdv.mjs → auth-link-D4uMdOsw.mjs} +7 -8
  25. package/dist/{auth-migrations-BO27GDNr.mjs → auth-migrations-DDeifS3v.mjs} +1 -2
  26. package/dist/{auth-router-DqLx8E0F.mjs → auth-router-62dna450.mjs} +14 -10
  27. package/dist/{base64-DVrOndmI.mjs → base64-ikl9yBy3.mjs} +1 -2
  28. package/dist/{better-auth-shared-DVk2DkTW.d.mts → better-auth-shared-BJyG2mH0.d.mts} +2 -6
  29. package/dist/{better-auth-shared-7FM3Uk2N.mjs → better-auth-shared-CiclgPde.mjs} +4 -5
  30. package/dist/{build-cmd-Dy4psnt1.mjs → build-cmd-D93K_4Sa.mjs} +7 -8
  31. package/dist/{cache-DV37S6dl.mjs → cache-CiIzEED4.mjs} +7 -8
  32. package/dist/{cancel-deploy-DMPyu1Vt.mjs → cancel-deploy-BNoGfn2e.mjs} +6 -7
  33. package/dist/{cf-access-CWP4avfP.mjs → cf-access-BmBT2h8_.mjs} +3 -4
  34. package/dist/{cf-access-BM9G0lhO.mjs → cf-access-pejlJmuy.mjs} +1 -2
  35. package/dist/{cf-build-output-Bapzc_8Z.mjs → cf-build-output-B1C8U83u.mjs} +60 -317
  36. package/dist/cf-build-output-CmDOcA7K.mjs +1 -0
  37. package/dist/{cf-command-values-ByHk0xg4.mjs → cf-command-values-Ccl-zRhl.mjs} +10 -7
  38. package/dist/cf-config-migrate-Dy8MrKgF.mjs +326 -0
  39. package/dist/{cf-worker-settings-BECvvTVd.mjs → cf-worker-settings-CARs4Wy9.mjs} +14 -10
  40. package/dist/cli/cli.mjs +66 -76
  41. package/dist/cli/cloudflare-operation-process.mjs +21 -19
  42. package/dist/cli/env-schema-probe.d.mts +1 -5
  43. package/dist/cli/env-schema-probe.mjs +4 -5
  44. package/dist/client-DVtAKeUm.mjs +1 -0
  45. package/dist/{client-BEMtySaV.mjs → client-Qayy9xEh.mjs} +10 -12
  46. package/dist/{cloudflare-auth-Byo_0_N9.mjs → cloudflare-auth-CEu-1Ps_.mjs} +3 -4
  47. package/dist/{cloudflare-cmd-BaqIigwI.mjs → cloudflare-cmd-DiFGaLow.mjs} +7 -8
  48. package/dist/{cloudflare-config-DchHxPTo.mjs → cloudflare-config-Chet188_.mjs} +25 -9
  49. package/dist/{cloudflare-connect-pNLQmr_e.mjs → cloudflare-connect-BdgAQBc7.mjs} +5 -6
  50. package/dist/{cloudflare-operations-vP3b5CQf.mjs → cloudflare-operations-CWA24vCh.mjs} +8 -9
  51. package/dist/{cloudflare-operations-PCM4wucv.mjs → cloudflare-operations-D8MoezuN.mjs} +1 -1
  52. package/dist/{cloudflare-process-8jEYIeim.mjs → cloudflare-process-DjJ638A-.mjs} +7 -9
  53. package/dist/{cloudflare-user-output-Q-k0QoNQ.mjs → cloudflare-user-output-zEwuGrEJ.mjs} +1 -2
  54. package/dist/collect-8i0wU63d.mjs +1 -0
  55. package/dist/{collect-Dew86qce.mjs → collect-C6Blu9yw.mjs} +2 -3
  56. package/dist/{config-BU6hMu1W.mjs → config-BszFVhpk.mjs} +1 -1
  57. package/dist/{config-BIaXIkkv.mjs → config-Bt4rw93x.mjs} +5 -6
  58. package/dist/{config-Du88-7Y8.d.mts → config-CzsNzGVH.d.mts} +4 -6
  59. package/dist/{config-DHgSEWT7.mjs → config-DkA9jYF2.mjs} +9 -8
  60. package/dist/config-WlvEcL82.mjs +86 -0
  61. package/dist/config-entry.d.mts +1 -3
  62. package/dist/config-entry.mjs +1 -2
  63. package/dist/{connect-DwVsBvVh.mjs → connect-b9mJbb6X.mjs} +10 -11
  64. package/dist/{create-project-CjzbBlTv.mjs → create-project-eomwm0wa.mjs} +9 -11
  65. package/dist/{create-project-CgrnvzyA.mjs → create-project-rnjum4_V.mjs} +1 -1
  66. package/dist/{database-provider-Cx525bwX.mjs → database-provider-DkZo4VwN.mjs} +1 -2
  67. package/dist/database-provider.d.mts +1 -3
  68. package/dist/database-provider.mjs +1 -1
  69. package/dist/{db-rvo64snS.mjs → db-UPWmiSk1.mjs} +52 -54
  70. package/dist/{db-types-NGxPwnlt.mjs → db-types-C_8amnB0.mjs} +3 -4
  71. package/dist/{delete-DWX6dP4M.mjs → delete-BeeYi1WO.mjs} +7 -8
  72. package/dist/deploy-CfU7CR-b.mjs +2 -0
  73. package/dist/{deploy-hRPvw8ci.mjs → deploy-CwmCcTlq.mjs} +321 -185
  74. package/dist/{deploy-managed-static-CDYA2p3L.mjs → deploy-managed-static-gPDxyp3v.mjs} +46 -46
  75. package/dist/{deploy-transport-JCxw7QDi.mjs → deploy-transport-L6zzPE9T.mjs} +17 -17
  76. package/dist/deploy.d.mts +3 -3
  77. package/dist/deploy.mjs +13 -12
  78. package/dist/{dev-inbox-D0jxye_D.mjs → dev-inbox-CwH5VuZj.mjs} +3 -4
  79. package/dist/discover-D4mQthao.mjs +1 -0
  80. package/dist/{discover-LaV0tbIu.mjs → discover-Dhkzxgdt.mjs} +3 -4
  81. package/dist/{dispatch-OVLeWW8K.mjs → dispatch-CiJ1Xrba.mjs} +13 -16
  82. package/dist/{dist-Cegxq8gs.mjs → dist-B6eN80gc.mjs} +199 -118
  83. package/dist/{dist-D15hFhP0.mjs → dist-BWNkVq50.mjs} +8 -15
  84. package/dist/{dist-Cor9XGoz.mjs → dist-D23AAMxT.mjs} +9 -16
  85. package/dist/{dist-ipQi0Q8y.mjs → dist-DMYe8CZJ.mjs} +1 -2
  86. package/dist/{dist-B1PLt4_8.mjs → dist-eV_Ep60B.mjs} +1 -1
  87. package/dist/{domain-CH5iBD9Y.mjs → domain-3xdH9p2L.mjs} +8 -9
  88. package/dist/{dotenv-CNazY3-w.mjs → dotenv-CEI8hapP.mjs} +1 -2
  89. package/dist/{drizzle-9TubSZvI.mjs → drizzle-C8MPqt5m.mjs} +1 -1
  90. package/dist/{drizzle-BQfyvQKX.mjs → drizzle-lFdzSEa9.mjs} +2 -3
  91. package/dist/{email-B9ayYQEG.mjs → email-BHY72ixO.mjs} +3 -4
  92. package/dist/{email-CbTO1l78.mjs → email-Du3YRnM5.mjs} +14 -15
  93. package/dist/{email-cloudflare-B8-pq_-W.mjs → email-cloudflare-CtD8qE13.mjs} +34 -24
  94. package/dist/{email-protocol-D9nTvhCp.mjs → email-protocol-DTs_TjCS.mjs} +1 -2
  95. package/dist/{entry-BEM8ZuGP.mjs → entry-CBZsCy3O.mjs} +5 -6
  96. package/dist/{env-BBdw236G.mjs → env-Cnvp0pGy.mjs} +10 -11
  97. package/dist/{env-BaMz0j7H.mjs → env-CuzZZyjB.mjs} +3 -4
  98. package/dist/{env-0jrMQJI_.mjs → env-DtKg5G26.mjs} +2 -3
  99. package/dist/{env-helpers--wFmQ_5Q.mjs → env-helpers-Dj_SIwPu.mjs} +1 -2
  100. package/dist/{env-helpers-CyKtOBpj.d.mts → env-helpers-U56xuFgL.d.mts} +1 -3
  101. package/dist/{env-public-6lqiSD2b.d.mts → env-public-CeNeO_AT.d.mts} +2 -4
  102. package/dist/{env-raw-D74P4ebM.mjs → env-raw-e8qgqAzQ.mjs} +1 -2
  103. package/dist/{env-types-BicfKBhV.mjs → env-types-DqzVBKnS.mjs} +4 -5
  104. package/dist/{env-validation-BfBVvBNe.mjs → env-validation-C8Cmvas0.mjs} +1 -1
  105. package/dist/{env-validation-XcukUlFM.mjs → env-validation-GV1oD4EV.mjs} +10 -10
  106. package/dist/error-pages-COVBnzK7.mjs +31 -0
  107. package/dist/{fetch-CUX0tB78.d.mts → fetch-B-gLGYVl.d.mts} +0 -4
  108. package/dist/{fetch-CtESUYWd.mjs → fetch-C8yhLoF3.mjs} +3 -4
  109. package/dist/{fetch-error-Bw0n-IY-.mjs → fetch-error-DmlRM6e4.mjs} +2 -4
  110. package/dist/{fetch-stream-BspOeTAI.mjs → fetch-stream-DafNtVJC.mjs} +4 -5
  111. package/dist/{fetch-stream-DfkAzZf-.d.mts → fetch-stream-DuwxWmBM.d.mts} +1 -3
  112. package/dist/{gen-CCx3t2Ju.mjs → gen-BvVmpZ5f.mjs} +12 -13
  113. package/dist/gen-i61rdQgg.mjs +1 -0
  114. package/dist/{generate-DkEb9rL-.mjs → generate-BOp1g1H_.mjs} +1 -1
  115. package/dist/{generate-B1m4Cm4n.mjs → generate-CWb8aOsm.mjs} +4 -5
  116. package/dist/{generated-wrangler-config-DeWj5F9Y.mjs → generated-wrangler-config-CoDaaFsA.mjs} +1 -2
  117. package/dist/{git-metadata-D-gurjzG.mjs → git-metadata-Cukp5kV5.mjs} +1 -2
  118. package/dist/{github-cmd-BzkRLkbg.mjs → github-cmd-X2GKiLi-.mjs} +8 -9
  119. package/dist/{handler-CQv5YDS0.d.mts → handler-Drm_lyrV.d.mts} +15 -26
  120. package/dist/{handler-BZ1t7-Rv.mjs → handler-xmzz0U38.mjs} +4 -5
  121. package/dist/{head-D2VF4ApL.mjs → head-5XPcnG-j.mjs} +1 -2
  122. package/dist/{head-C8K_iGe6.d.mts → head-MeF_5M_3.d.mts} +0 -2
  123. package/dist/{headers-D522zd0A.mjs → headers-DEUBAM6W.mjs} +4 -5
  124. package/dist/help-BcZDUcTw.mjs +1 -0
  125. package/dist/{help-CKbrhZha.mjs → help-EWDNxST-.mjs} +19 -11
  126. package/dist/{inbound-VrOLqwZY.mjs → inbound-DQfekMtz.mjs} +5 -6
  127. package/dist/{inbound-Da7XsjH3.d.mts → inbound-DSKSHDUj.d.mts} +0 -4
  128. package/dist/index.d.mts +23 -13
  129. package/dist/index.mjs +504 -225
  130. package/dist/{info-oBm8yK8J.mjs → info-jW8_d3VI.mjs} +6 -7
  131. package/dist/{init-CBp_uMve.mjs → init-jDQ5G9QC.mjs} +62 -64
  132. package/dist/{isr-config-fZaJJ8t7.mjs → isr-config-DhBkzCdY.mjs} +5 -9
  133. package/dist/{limits-D0vD1M9A.mjs → limits-CrHLm5Tk.mjs} +1 -2
  134. package/dist/{limits-CFsDKQvU.d.mts → limits-_xIf5z_P.d.mts} +0 -2
  135. package/dist/{link-Dt_QXmM4.mjs → link-DOyxX5Xs.mjs} +8 -9
  136. package/dist/{list-DF6asTdt.mjs → list-C9pTYDtl.mjs} +8 -9
  137. package/dist/{live-CXJ9yC98.d.mts → live-CDBHyYiR.d.mts} +2 -4
  138. package/dist/{live-BcHoTDFe.mjs → live-DF4HUl2m.mjs} +5 -7
  139. package/dist/{load-user-env-DD5qveNU.mjs → load-user-env-CSwdofj0.mjs} +1 -2
  140. package/dist/{local-d1-CUhH3qtj.mjs → local-d1-CKfek6Z4.mjs} +4 -5
  141. package/dist/{log-BMwmN5Ae.mjs → log-D9hwSySP.mjs} +3 -4
  142. package/dist/login-C0MiQrYs.mjs +1 -0
  143. package/dist/{login-BjSyhXlT.mjs → login-koQbjzPd.mjs} +6 -7
  144. package/dist/{logs-DmvBl6xA.mjs → logs-cTU5TsRW.mjs} +8 -9
  145. package/dist/migrate-BG09-KOv.mjs +1 -0
  146. package/dist/{migrate-BXRHpYwR.mjs → migrate-C62pGTfr.mjs} +22 -79
  147. package/dist/{migration-handler-CwlEQUoo.d.mts → migration-handler-D8mDx3Ew.d.mts} +0 -4
  148. package/dist/{migration-handler-Cg0Y4EPu.mjs → migration-handler-DCehTlWs.mjs} +1 -2
  149. package/dist/{mime-BAyHPskU.mjs → mime-DKkO7ZtA.mjs} +2 -3
  150. package/dist/{mysql-migration-sql-BIS5vbNk.mjs → mysql-migration-sql-CI9VTwjt.mjs} +3 -5
  151. package/dist/{neon-DTZr7Bu7.mjs → neon-CJzQSycr.mjs} +2 -3
  152. package/dist/nitro.d.mts +0 -2
  153. package/dist/nitro.mjs +6 -7
  154. package/dist/{node-DtD7ZiPf.mjs → node-BfAt2rz8.mjs} +9 -10
  155. package/dist/{operator-args-BsJIYXaT.mjs → operator-args-D79WQP70.mjs} +2 -3
  156. package/dist/{operator-auth-Cr2zCc-J.mjs → operator-auth-CfDcmzpo.mjs} +2 -3
  157. package/dist/{operator-client-C-ROjk1I.mjs → operator-client-BIY4-N_6.mjs} +3 -4
  158. package/dist/operator-cmd-BhHXIL2G.mjs +1 -0
  159. package/dist/{operator-cmd-DjZKGGgN.mjs → operator-cmd-CnAvSqJ5.mjs} +8 -9
  160. package/dist/{output-BpgYODYx.mjs → output-BCdLioKP.mjs} +4 -5
  161. package/dist/output-E6gecbbV.mjs +1 -0
  162. package/dist/{package-json-BjYqR-So.mjs → package-json-DvS6IFRv.mjs} +2 -3
  163. package/dist/pages/client.d.mts +22 -23
  164. package/dist/pages/client.mjs +51 -31
  165. package/dist/pages/head.d.mts +1 -1
  166. package/dist/pages/head.mjs +1 -1
  167. package/dist/pages/index.d.mts +18 -14
  168. package/dist/pages/index.mjs +99 -10
  169. package/dist/pages/islands-plugin.d.mts +29 -11
  170. package/dist/pages/islands-plugin.mjs +3 -4
  171. package/dist/pages/prefetch.d.mts +1 -1
  172. package/dist/pages/prefetch.mjs +1 -1
  173. package/dist/pages/protocol.d.mts +2 -2
  174. package/dist/pages/protocol.mjs +2 -2
  175. package/dist/pages/serialize.d.mts +1 -1
  176. package/dist/pages/serialize.mjs +1 -1
  177. package/dist/{pg-J2HbZIkX.mjs → pg-DoyPxa_X.mjs} +1 -2
  178. package/dist/{picocolors-BsDfhxIw.mjs → picocolors-D1NxSLw-.mjs} +2 -3
  179. package/dist/{plan-BhLO2p4w.mjs → plan-BOD70XGS.mjs} +1 -2
  180. package/dist/plan-CQ-N4gws.mjs +1 -0
  181. package/dist/{platform-args-BMD2gjc_.mjs → platform-args-Bv9hoLEL.mjs} +4 -7
  182. package/dist/platform-args-C1kqYUen.mjs +1 -0
  183. package/dist/{platform-auth-config-BgnuMbml.mjs → platform-auth-config-CLj0EvnB.mjs} +10 -11
  184. package/dist/{platform-auth-protection-NjRejttU.mjs → platform-auth-protection-DQDSxVhr.mjs} +10 -11
  185. package/dist/{platform-auth-recovery-Ug12d9W5.mjs → platform-auth-recovery-DD3oLerq.mjs} +9 -11
  186. package/dist/{platform-cmd-HByuZAO7.mjs → platform-cmd-PLNLg-2N.mjs} +12 -13
  187. package/dist/{platform-cmd-BYKLMPCn.mjs → platform-cmd-WnOmdLzR.mjs} +1 -1
  188. package/dist/{platform-discovery-CHhNs8Nn.mjs → platform-discovery-B0eZjZ3B.mjs} +2 -3
  189. package/dist/{platform-domain-DLSQ8GF8.mjs → platform-domain-Bnq0vg0q.mjs} +7 -8
  190. package/dist/{platform-lifecycle-3dwFJmnq.mjs → platform-lifecycle-BCsFg1Tl.mjs} +53 -88
  191. package/dist/{platform-lifecycle-BRqcxerG.mjs → platform-lifecycle-BQiN9HN5.mjs} +1 -1
  192. package/dist/{platform-management-ZK6XcbCo.mjs → platform-management-CMJR8Zi-.mjs} +1 -1
  193. package/dist/{platform-management-ZZ6bQM5j.mjs → platform-management-nzCDwtiN.mjs} +7 -9
  194. package/dist/{platform-plans-config-CeydDSj0.mjs → platform-plans-config-Dx1agneU.mjs} +5 -6
  195. package/dist/{platform-recovery-8vNE5dNN.mjs → platform-recovery-DBNoME3I.mjs} +5 -6
  196. package/dist/{platform-registry-B9mWX9LO.mjs → platform-registry-DZ_2Xuqd.mjs} +4 -6
  197. package/dist/{platform-setup-Ca53gtt0.mjs → platform-setup-VEcHu0Vq.mjs} +4 -5
  198. package/dist/{plugin-inference-CeiB6BG5.mjs → plugin-inference-DmwjC3y2.mjs} +16 -24
  199. package/dist/{prefetch-Ce6la4EI.d.mts → prefetch-CG0K6JPd.d.mts} +0 -2
  200. package/dist/{prefetch-Bsc_Pb6c.mjs → prefetch-L93_1Jk7.mjs} +1 -2
  201. package/dist/prepare-BJMmfq3W.mjs +1 -0
  202. package/dist/{prepare-5BR7Splm.mjs → prepare-BPsfLWaW.mjs} +4 -5
  203. package/dist/{prepare-Dseww74N.mjs → prepare-pfl2LIMy.mjs} +17 -14
  204. package/dist/{prerender-render-CaShbHJ3.mjs → prerender-render-RlAj6hh8.mjs} +2 -3
  205. package/dist/prerender-render.d.mts +1 -3
  206. package/dist/prerender-render.mjs +1 -1
  207. package/dist/{project-rqDnVsJN.mjs → project-CLwxcEdq.mjs} +3 -4
  208. package/dist/{project-zdB3fs9G.mjs → project-DVsTAWFh.mjs} +1 -1
  209. package/dist/{project-cmd-CjLNNxwe.mjs → project-cmd-5Izu4Pg3.mjs} +21 -23
  210. package/dist/{project-paths-DGu_QZ_Q.mjs → project-paths-CdGv9Tmi.mjs} +3 -5
  211. package/dist/project-slug-BUy0lmyR.mjs +1 -0
  212. package/dist/{project-slug-23TpquG4.mjs → project-slug-CO6ci9XG.mjs} +0 -1
  213. package/dist/{project-team-DE5drjcl.mjs → project-team-DSUyjZFh.mjs} +7 -8
  214. package/dist/{project-token-XEYEXfiJ.mjs → project-token-wj09YQSB.mjs} +7 -8
  215. package/dist/{project-tsconfig-Itv1f4WC.mjs → project-tsconfig-Cf2NFjlM.mjs} +28 -8
  216. package/dist/{project-zero-trust-6VPU8zmV.mjs → project-zero-trust-BMHf2YF0.mjs} +7 -8
  217. package/dist/{protocol-DimNxVRr.mjs → protocol-0-lp9ZYx.mjs} +6 -7
  218. package/dist/{protocol-BekmFxCI.d.mts → protocol-xdrl-In0.d.mts} +3 -5
  219. package/dist/{providers-BNKRacMr.d.mts → providers-D5P8j_8D.d.mts} +0 -2
  220. package/dist/{providers-BUHwJlmM.mjs → providers-ZARwX2cL.mjs} +1 -2
  221. package/dist/{provision-B7UFrBH7.mjs → provision-CRiNnlfE.mjs} +29 -14
  222. package/dist/{provision-Chq0NRAV.mjs → provision-CxHIGBIZ.mjs} +1 -1
  223. package/dist/{queues-BWKt1Xo4.d.mts → queues-DdM42xXW.d.mts} +0 -2
  224. package/dist/{r2-conditions-B8xUgJRc.mjs → r2-conditions-BqkQNt2n.mjs} +1 -2
  225. package/dist/{requests-CG-Pj8ze.mjs → requests-DicgB5jU.mjs} +6 -7
  226. package/dist/resolve-project-CgfjtOwz.mjs +1 -0
  227. package/dist/{resolve-project-Xoi6eTWY.mjs → resolve-project-D0YNnJfm.mjs} +4 -5
  228. package/dist/{resource-name-C7LVpcRm.mjs → resource-name-DlJ9QXzg.mjs} +1 -2
  229. package/dist/{response-Tn7rU0MV.mjs → response-HmNjB30w.mjs} +1 -2
  230. package/dist/{rollback-CIrm2txZ.mjs → rollback-DrDZOKNE.mjs} +7 -8
  231. package/dist/{rolldown-runtime-3h0WiCiA.mjs → rolldown-runtime-uD8oG6U2.mjs} +1 -2
  232. package/dist/{route-types--PAOzHlH.mjs → route-types-irZc1txT.mjs} +100 -7
  233. package/dist/route-url-BGOiyKNz.d.mts +24 -0
  234. package/dist/route-url-CRDF-I0I.mjs +57 -0
  235. package/dist/routes-stub.d.mts +4 -3
  236. package/dist/routes-stub.mjs +1 -1
  237. package/dist/{routing-assets-DdSFxoLp.mjs → routing-assets-DJIVOrCh.mjs} +1 -2
  238. package/dist/{runner-3uGC-oLF.mjs → runner-5MCSimKx.mjs} +5 -6
  239. package/dist/{runner-WCdfeI0q.mjs → runner-QMeOpScZ.mjs} +1 -1
  240. package/dist/{runner-mysql-BcHnLUuM.mjs → runner-mysql-0zVmB1JW.mjs} +1 -1
  241. package/dist/{runner-mysql-BWmbk5IE.mjs → runner-mysql-Bdmsp_x4.mjs} +3 -4
  242. package/dist/{runner-pg-Cgp-cr_p.mjs → runner-pg-2pjltt0t.mjs} +1 -1
  243. package/dist/{runner-pg-Cr3qrqi4.mjs → runner-pg-mYc75KfH.mjs} +2 -3
  244. package/dist/runtime/ai.d.mts +0 -4
  245. package/dist/runtime/ai.mjs +6 -8
  246. package/dist/runtime/auth-client-react.d.mts +1 -1
  247. package/dist/runtime/auth-client-react.mjs +1 -1
  248. package/dist/runtime/auth-client-solid.d.mts +1 -1
  249. package/dist/runtime/auth-client-solid.mjs +1 -1
  250. package/dist/runtime/auth-client-svelte.d.mts +1 -1
  251. package/dist/runtime/auth-client-svelte.mjs +1 -1
  252. package/dist/runtime/auth-client-vue.d.mts +1 -1
  253. package/dist/runtime/auth-client-vue.mjs +1 -1
  254. package/dist/runtime/auth-client.d.mts +1 -1
  255. package/dist/runtime/auth-client.mjs +1 -1
  256. package/dist/runtime/auth.d.mts +2 -2
  257. package/dist/runtime/auth.mjs +1 -1
  258. package/dist/runtime/better-auth-mysql.d.mts +2 -4
  259. package/dist/runtime/better-auth-mysql.mjs +3 -4
  260. package/dist/runtime/better-auth-pg.d.mts +2 -4
  261. package/dist/runtime/better-auth-pg.mjs +4 -5
  262. package/dist/runtime/better-auth.d.mts +2 -4
  263. package/dist/runtime/better-auth.mjs +3 -4
  264. package/dist/runtime/client-react.d.mts +4 -4
  265. package/dist/runtime/client-react.mjs +4 -4
  266. package/dist/runtime/client-solid.d.mts +4 -4
  267. package/dist/runtime/client-solid.mjs +4 -4
  268. package/dist/runtime/client-svelte.d.mts +4 -4
  269. package/dist/runtime/client-svelte.mjs +4 -4
  270. package/dist/runtime/client-vue.d.mts +4 -4
  271. package/dist/runtime/client-vue.mjs +4 -4
  272. package/dist/runtime/client.d.mts +4 -4
  273. package/dist/runtime/client.mjs +4 -4
  274. package/dist/runtime/db.d.mts +0 -2
  275. package/dist/runtime/db.mjs +2 -3
  276. package/dist/runtime/durable.d.mts +0 -2
  277. package/dist/runtime/durable.mjs +3 -4
  278. package/dist/runtime/email/testing.d.mts +1 -5
  279. package/dist/runtime/email/testing.mjs +5 -6
  280. package/dist/runtime/email-protocol.d.mts +0 -2
  281. package/dist/runtime/email-protocol.mjs +1 -1
  282. package/dist/runtime/email.d.mts +1 -5
  283. package/dist/runtime/email.mjs +6 -7
  284. package/dist/runtime/env-public-client.d.mts +1 -3
  285. package/dist/runtime/env-public-client.mjs +2 -3
  286. package/dist/runtime/env-public.d.mts +2 -2
  287. package/dist/runtime/env-public.mjs +5 -7
  288. package/dist/runtime/env.d.mts +0 -4
  289. package/dist/runtime/env.mjs +1 -1
  290. package/dist/runtime/fetch-server.d.mts +1 -3
  291. package/dist/runtime/fetch-server.mjs +3 -4
  292. package/dist/runtime/fetch-stream.d.mts +2 -2
  293. package/dist/runtime/fetch-stream.mjs +2 -2
  294. package/dist/runtime/fetch.d.mts +1 -1
  295. package/dist/runtime/fetch.mjs +2 -2
  296. package/dist/runtime/handler.d.mts +1 -1
  297. package/dist/runtime/handler.mjs +2 -2
  298. package/dist/runtime/isr.d.mts +1 -3
  299. package/dist/runtime/isr.mjs +2 -3
  300. package/dist/runtime/kv.d.mts +1 -3
  301. package/dist/runtime/kv.mjs +2 -3
  302. package/dist/runtime/limits.d.mts +1 -1
  303. package/dist/runtime/limits.mjs +1 -1
  304. package/dist/runtime/live-client.d.mts +1 -3
  305. package/dist/runtime/live-client.mjs +1 -2
  306. package/dist/runtime/live-server.d.mts +0 -2
  307. package/dist/runtime/live-server.mjs +3 -4
  308. package/dist/runtime/live.d.mts +1 -1
  309. package/dist/runtime/live.mjs +1 -1
  310. package/dist/runtime/log.d.mts +3 -3
  311. package/dist/runtime/log.mjs +26 -18
  312. package/dist/runtime/migration-handler-mysql.d.mts +2 -4
  313. package/dist/runtime/migration-handler-mysql.mjs +2 -3
  314. package/dist/runtime/migration-handler-pg.d.mts +2 -4
  315. package/dist/runtime/migration-handler-pg.mjs +2 -3
  316. package/dist/runtime/migration-handler.d.mts +1 -1
  317. package/dist/runtime/migration-handler.mjs +1 -1
  318. package/dist/runtime/queues.d.mts +1 -1
  319. package/dist/runtime/queues.mjs +2 -3
  320. package/dist/runtime/remote/binding-handler.d.mts +1 -3
  321. package/dist/runtime/remote/binding-handler.mjs +3 -4
  322. package/dist/runtime/remote/index.d.mts +1 -3
  323. package/dist/runtime/remote/index.mjs +8 -13
  324. package/dist/runtime/response.d.mts +1 -3
  325. package/dist/runtime/response.mjs +1 -1
  326. package/dist/runtime/route-url.d.mts +2 -2
  327. package/dist/runtime/route-url.mjs +1 -1
  328. package/dist/runtime/routing.d.mts +10 -12
  329. package/dist/runtime/routing.mjs +27 -88
  330. package/dist/runtime/sandbox-container.d.mts +1 -1
  331. package/dist/runtime/sandbox-container.mjs +1 -1
  332. package/dist/runtime/sandbox.d.mts +2 -2
  333. package/dist/runtime/sandbox.mjs +5 -6
  334. package/dist/runtime/seed.d.mts +0 -2
  335. package/dist/runtime/seed.mjs +1 -2
  336. package/dist/runtime/sse-client.d.mts +1 -3
  337. package/dist/runtime/sse-client.mjs +1 -2
  338. package/dist/runtime/sse.d.mts +1 -3
  339. package/dist/runtime/sse.mjs +1 -1
  340. package/dist/runtime/storage.d.mts +1 -3
  341. package/dist/runtime/storage.mjs +2 -3
  342. package/dist/runtime/validator.d.mts +1 -1
  343. package/dist/runtime/validator.mjs +1 -1
  344. package/dist/runtime/ws-server.d.mts +3 -5
  345. package/dist/runtime/ws-server.mjs +3 -4
  346. package/dist/runtime/ws.d.mts +1 -1
  347. package/dist/runtime/ws.mjs +7 -6
  348. package/dist/{sandbox-q3waMc2T.d.mts → sandbox-DE1WsxuB.d.mts} +2 -4
  349. package/dist/{sandbox-container-a9LRUtii.mjs → sandbox-container-BuxhwCgt.mjs} +1 -2
  350. package/dist/{sandbox-container-ChQRum-j.d.mts → sandbox-container-CZFZdMso.d.mts} +0 -2
  351. package/dist/{scan-N9WzdcAl.mjs → scan-DSQtH3oS.mjs} +31 -25
  352. package/dist/{secret-BL6g7mF5.mjs → secret-C_QtTzJG.mjs} +23 -24
  353. package/dist/{serialize-YHvlcG3Q.mjs → serialize-DUuYuaY3.mjs} +2 -4
  354. package/dist/{serialize-DtR8Vwa_.d.mts → serialize-I4EmS-Wf.d.mts} +0 -2
  355. package/dist/{skills-CrUO3PJ0.mjs → skills-D393E4lB.mjs} +4 -5
  356. package/dist/{sqlite-validation-BzKMWnO4.mjs → sqlite-validation-CLJXXN93.mjs} +1 -2
  357. package/dist/{sse-CMvCgjNk.mjs → sse-CxR30yMF.mjs} +1 -2
  358. package/dist/{standard-schema-Fo_vCAZh.d.mts → standard-schema-CuDawHOC.d.mts} +0 -2
  359. package/dist/{static-asset-marker-Btf-6oCD.mjs → static-asset-marker-NR1XS2z5.mjs} +1 -2
  360. package/dist/{subcommand-prompt-D9OhhbGG.mjs → subcommand-prompt-CxJXporl.mjs} +3 -4
  361. package/dist/sveltekit.d.mts +0 -2
  362. package/dist/sveltekit.mjs +2 -3
  363. package/dist/{terminal-log-text-D9ACPOuG.mjs → terminal-log-text-DNsWJREL.mjs} +1 -2
  364. package/dist/{types-w72dljaA.d.mts → types-agfx0alu.d.mts} +0 -4
  365. package/dist/validate-DY1U9rET.mjs +1 -0
  366. package/dist/{validate-CnZPMq4q.mjs → validate-Ddzl-IwT.mjs} +4 -5
  367. package/dist/{validation-error-Dg9Recn1.mjs → validation-error-rDVbUJet.mjs} +2 -4
  368. package/dist/{validator-BTOu0fB0.mjs → validator-CTfmzZYb.mjs} +2 -5
  369. package/dist/{version-metadata-DmaZNTYW.mjs → version-metadata-Blf5H9BQ.mjs} +5 -6
  370. package/dist/{worker-conditions-AWFRcFxR.mjs → worker-conditions-CBZ0RYsZ.mjs} +1 -2
  371. package/dist/wrangler-CPRX2d9A.mjs +1 -0
  372. package/dist/{wrangler-CDiEBCdS.mjs → wrangler-p-kLCJqF.mjs} +81 -15
  373. package/dist/{wrapper-CEiDeCqD.mjs → wrapper-iejSJDwL.mjs} +18 -15
  374. package/dist/{ws-D1zWiB_P.d.mts → ws-DzBD-NUj.d.mts} +4 -5
  375. package/dist/{yarn-pnp-DLbEFMT0.mjs → yarn-pnp-DgWbE7z5.mjs} +2 -3
  376. package/docs/guide/auth.md +1 -1
  377. package/docs/guide/database.md +4 -4
  378. package/docs/guide/deployment.md +1 -1
  379. package/docs/guide/edge/headers.md +2 -6
  380. package/docs/guide/edge/redirects.md +22 -0
  381. package/docs/guide/edge/static-assets.md +0 -10
  382. package/docs/guide/email/domains.md +3 -1
  383. package/docs/guide/email/receiving.md +3 -3
  384. package/docs/guide/email/sending.md +1 -1
  385. package/docs/guide/pages-routing/actions-and-forms.md +26 -5
  386. package/docs/guide/pages-routing/islands.md +2 -2
  387. package/docs/guide/pages-routing/loaders.md +3 -3
  388. package/docs/guide/pages-routing/markdown.md +6 -6
  389. package/docs/guide/pages-routing/overview.md +34 -27
  390. package/docs/guide/platform/administration/email.md +6 -8
  391. package/docs/guide/platform/installation/credentials.md +6 -6
  392. package/docs/guide/platform/installation/maintenance.md +10 -24
  393. package/docs/guide/platform/installation/prerequisites.md +1 -1
  394. package/docs/guide/platform/installation/setup.md +1 -1
  395. package/docs/guide/platform/installation/uninstall.md +1 -1
  396. package/docs/guide/queues.md +4 -8
  397. package/docs/guide/self-hosted-platform.md +3 -3
  398. package/docs/guide/server-routing.md +8 -6
  399. package/docs/guide/ssg.md +8 -0
  400. package/docs/guide/type-safety.md +42 -0
  401. package/docs/guide/typed-fetch.md +1 -1
  402. package/docs/guide/websockets.md +1 -1
  403. package/docs/integrations/cloudflare.md +17 -8
  404. package/docs/integrations/frameworks/analog.md +1 -1
  405. package/docs/integrations/frameworks/nuxt.md +1 -1
  406. package/docs/integrations/frameworks/sveltekit.md +1 -1
  407. package/docs/integrations/frameworks/tanstack-start.md +1 -1
  408. package/docs/integrations/hono.md +5 -5
  409. package/docs/reference/api/auth.md +6 -2
  410. package/docs/reference/api/deploy.md +15 -11
  411. package/docs/reference/api/pages.md +10 -0
  412. package/docs/reference/api/plugin.md +4 -4
  413. package/docs/reference/api/resources.md +4 -1
  414. package/docs/reference/api/rewrites.md +20 -2
  415. package/docs/reference/api/types.md +41 -0
  416. package/docs/reference/api.md +2 -2
  417. package/docs/reference/cli/database.md +15 -9
  418. package/docs/reference/cli/deploy.md +10 -9
  419. package/docs/reference/cli/email.md +4 -2
  420. package/docs/reference/cli/platform-installation.md +2 -2
  421. package/docs/reference/cli/project.md +2 -2
  422. package/docs/reference/cli/secrets.md +3 -1
  423. package/docs/reference/cli/setup.md +3 -3
  424. package/docs/reference/cli.md +1 -1
  425. package/docs/reference/config.md +12 -2
  426. package/package.json +35 -31
  427. package/sandbox.Dockerfile +1 -1
  428. package/schema.json +4 -0
  429. package/skills/void/SKILL.md +1 -1
  430. package/dist/auth-DkcFflXV.d.mts +0 -42
  431. package/dist/cf-build-output-DlBkWdNU.mjs +0 -1
  432. package/dist/client-DyxPQnF_.mjs +0 -1
  433. package/dist/collect-BWhkgtAn.mjs +0 -1
  434. package/dist/config-BTu1o3Dc.mjs +0 -49
  435. package/dist/deploy-CtHE2A3R.mjs +0 -2
  436. package/dist/discover-D4TPKo57.mjs +0 -1
  437. package/dist/gen-TgXy93Rr.mjs +0 -1
  438. package/dist/help-qOZr3wng.mjs +0 -1
  439. package/dist/login-Cdo8Aco1.mjs +0 -1
  440. package/dist/migrate-COPncCGx.mjs +0 -1
  441. package/dist/operator-cmd-DDiX7Y3f.mjs +0 -1
  442. package/dist/output-BW9uK099.mjs +0 -1
  443. package/dist/plan-CKX_jWnD.mjs +0 -1
  444. package/dist/platform-args-BC8_hsDj.mjs +0 -1
  445. package/dist/prepare-B3VrSF1Z.mjs +0 -1
  446. package/dist/project-slug-6cyz8E7k.mjs +0 -1
  447. package/dist/resolve-project-DD1vu8s9.mjs +0 -1
  448. package/dist/route-url-BgPja1GS.d.mts +0 -5
  449. package/dist/route-url-BjGv_KKY.mjs +0 -28
  450. package/dist/validate-D7Wn8PUX.mjs +0 -1
  451. package/dist/wrangler-DOPr4jyI.mjs +0 -1
@@ -1,11 +1,11 @@
1
- import { r as readProjectConfig } from "./project-rqDnVsJN.mjs";
2
- import { c as getToken } from "./auth-B6iOCjKI.mjs";
3
- import { H as outro, L as log } from "./dist-Cor9XGoz.mjs";
4
- import { n as PlatformApiError, r as PlatformClient } from "./client-BEMtySaV.mjs";
5
- import { f as import_picocolors, i as dim, m as printSuccess } from "./output-BpgYODYx.mjs";
6
- import { a as resolveProjectBySlug, t as getRequestedProjectSlug } from "./resolve-project-Xoi6eTWY.mjs";
1
+ import { r as readProjectConfig } from "./project-CLwxcEdq.mjs";
2
+ import { c as getToken } from "./auth-Dy8svcqQ.mjs";
3
+ import { H as outro, L as log } from "./dist-D23AAMxT.mjs";
4
+ import { n as PlatformApiError, r as PlatformClient } from "./client-Qayy9xEh.mjs";
5
+ import { f as import_picocolors, i as dim, m as printSuccess } from "./output-BCdLioKP.mjs";
6
+ import { a as resolveProjectBySlug, t as getRequestedProjectSlug } from "./resolve-project-D0YNnJfm.mjs";
7
7
  import { appendFileSync, writeFileSync } from "node:fs";
8
- //#region src/cli/build-cmd.ts
8
+ // src/cli/build-cmd.ts
9
9
  const POLL_MS = 1e3;
10
10
  const BUILD_LOG_DRAIN_TIMEOUT_MS = 12e4;
11
11
  function isBuildLogComplete(page) {
@@ -150,5 +150,4 @@ async function runBuildLogsCommand(root, args) {
150
150
  if (status === "complete") printSuccess("Build succeeded.");
151
151
  else outro(dim(`Build ${status}.`));
152
152
  }
153
- //#endregion
154
153
  export { runBuildCommand };
@@ -1,10 +1,10 @@
1
- import { r as readProjectConfig } from "./project-rqDnVsJN.mjs";
2
- import { c as getToken } from "./auth-B6iOCjKI.mjs";
3
- import { L as log } from "./dist-Cor9XGoz.mjs";
4
- import { r as PlatformClient } from "./client-BEMtySaV.mjs";
5
- import { m as printSuccess, o as formatCount, r as createSpinner } from "./output-BpgYODYx.mjs";
6
- import { a as resolveProjectBySlug, t as getRequestedProjectSlug } from "./resolve-project-Xoi6eTWY.mjs";
7
- //#region src/cli/cache.ts
1
+ import { r as readProjectConfig } from "./project-CLwxcEdq.mjs";
2
+ import { c as getToken } from "./auth-Dy8svcqQ.mjs";
3
+ import { L as log } from "./dist-D23AAMxT.mjs";
4
+ import { r as PlatformClient } from "./client-Qayy9xEh.mjs";
5
+ import { m as printSuccess, o as formatCount, r as createSpinner } from "./output-BCdLioKP.mjs";
6
+ import { a as resolveProjectBySlug, t as getRequestedProjectSlug } from "./resolve-project-D0YNnJfm.mjs";
7
+ // src/cli/cache.ts
8
8
  async function runPurgeCacheCommand(root, projectSlug) {
9
9
  console.log();
10
10
  const token = getToken(root);
@@ -46,5 +46,4 @@ async function runPurgeCacheCommand(root, projectSlug) {
46
46
  process.exit(1);
47
47
  }
48
48
  }
49
- //#endregion
50
49
  export { runPurgeCacheCommand };
@@ -1,9 +1,9 @@
1
- import { r as readProjectConfig } from "./project-rqDnVsJN.mjs";
2
- import { c as getToken } from "./auth-B6iOCjKI.mjs";
3
- import { A as confirm, H as outro, L as log, tt as isCancel } from "./dist-Cor9XGoz.mjs";
4
- import { r as PlatformClient } from "./client-BEMtySaV.mjs";
5
- import { m as printSuccess } from "./output-BpgYODYx.mjs";
6
- //#region src/cli/cancel-deploy.ts
1
+ import { r as readProjectConfig } from "./project-CLwxcEdq.mjs";
2
+ import { c as getToken } from "./auth-Dy8svcqQ.mjs";
3
+ import { A as confirm, H as outro, L as log, tt as isCancel } from "./dist-D23AAMxT.mjs";
4
+ import { r as PlatformClient } from "./client-Qayy9xEh.mjs";
5
+ import { m as printSuccess } from "./output-BCdLioKP.mjs";
6
+ // src/cli/cancel-deploy.ts
7
7
  const ACTIVE_STATUSES = /* @__PURE__ */ new Set([
8
8
  "pending",
9
9
  "uploading",
@@ -55,5 +55,4 @@ function formatDeployment(deployment) {
55
55
  const suffix = deployment.commit ? ` (${deployment.commit.slice(0, 7)})` : "";
56
56
  return `${deployment.id} [${deployment.status}]${suffix}`;
57
57
  }
58
- //#endregion
59
58
  export { runCancelDeployCommand };
@@ -1,7 +1,7 @@
1
- import { T as writeKeyringPassword, c as normalizePlatformApiUrl, u as platformCredentialAccount, w as readKeyringPassword } from "./platform-registry-B9mWX9LO.mjs";
2
- import { t as cfAccessHeaders } from "./cf-access-BM9G0lhO.mjs";
1
+ import { T as writeKeyringPassword, c as normalizePlatformApiUrl, u as platformCredentialAccount, w as readKeyringPassword } from "./platform-registry-DZ_2Xuqd.mjs";
2
+ import { t as cfAccessHeaders } from "./cf-access-pejlJmuy.mjs";
3
3
  import { spawnSync } from "node:child_process";
4
- //#region src/cli/cf-access.ts
4
+ // src/cli/cf-access.ts
5
5
  const ACCESS_KEYRING_SERVICE = "dev.void.cli.access";
6
6
  const keyringTokens = /* @__PURE__ */ new Map();
7
7
  function usableToken(token) {
@@ -128,5 +128,4 @@ function ensurePlatformProxyAccess(apiUrl, proxyUrl) {
128
128
  ensurePlatformAccessToken(apiUrl);
129
129
  ensurePlatformAccessToken(proxyUrl, false, Object.keys(cfAccessHeaders(process.env, apiUrl)).length > 0);
130
130
  }
131
- //#endregion
132
131
  export { ensurePlatformProxyAccess as n, isCloudflareAccessChallenge as r, ensurePlatformAccessToken as t };
@@ -1,4 +1,4 @@
1
- //#region src/shared/cf-access.ts
1
+ // src/shared/cf-access.ts
2
2
  /**
3
3
  * Resolve Cloudflare Access headers from an env-like object.
4
4
  *
@@ -64,5 +64,4 @@ function scopedAccessCredentials(env, targetUrl) {
64
64
  CF_ACCESS_CLIENT_SECRET: headers["CF-Access-Client-Secret"]
65
65
  } : { CF_ACCESS_TOKEN: headers["cf-access-token"] } });
66
66
  }
67
- //#endregion
68
67
  export { scopedAccessCredentials as n, trustedCloudflareWorkerAccessHeaders as r, cfAccessHeaders as t };
@@ -1,317 +1,15 @@
1
- import { a as join, c as resolve, i as isAbsolute, n as dirname, r as extname, s as relative, t as basename } from "./dist-ipQi0Q8y.mjs";
2
- import { n as readGeneratedWranglerConfigFile } from "./generated-wrangler-config-DeWj5F9Y.mjs";
3
- import { t as WORKER_CONDITIONS } from "./worker-conditions-AWFRcFxR.mjs";
1
+ import { a as join, c as resolve, i as isAbsolute, n as dirname, r as extname, s as relative, t as basename } from "./dist-DMYe8CZJ.mjs";
2
+ import { n as readGeneratedWranglerConfigFile } from "./generated-wrangler-config-CoDaaFsA.mjs";
3
+ import { n as record, t as migrateBuiltWranglerConfig } from "./cf-config-migrate-Dy8MrKgF.mjs";
4
+ import { t as WORKER_CONDITIONS } from "./worker-conditions-CBZ0RYsZ.mjs";
4
5
  import { copyFileSync, cpSync, existsSync, mkdirSync, mkdtempSync, readFileSync, readdirSync, realpathSync, rmSync, symlinkSync, writeFileSync } from "node:fs";
5
- import { fileURLToPath } from "node:url";
6
- import { isRecord } from "@void/deploy-core";
7
6
  import { randomBytes, randomUUID } from "node:crypto";
8
7
  import { tmpdir } from "node:os";
9
- import { isDeepStrictEqual } from "node:util";
10
- import { spawn, spawnSync } from "node:child_process";
8
+ import { spawn } from "node:child_process";
11
9
  import { getRootConfigPath, getWorkerAssetsDir, getWorkerBundleDir, getWorkerConfigPath, normalizeDirectoryName, readBuildOutput, writeAssets, writeContainerConfig, writeRootConfig, writeWorkerConfig } from "@cloudflare/build-output-utils";
12
- import { InputConfigSchema, OutputContainerSchema } from "@cloudflare/config";
10
+ import { OutputContainerSchema } from "@cloudflare/config";
13
11
  import ignore from "ignore";
14
- //#region src/cli/cf-config-migrate.ts
15
- function record(value) {
16
- return isRecord(value) ? value : null;
17
- }
18
- function empty(value) {
19
- return value === void 0 || value === null || Array.isArray(value) && value.length === 0 || record(value) !== null && Object.keys(value).length === 0;
20
- }
21
- /** Remove build-only fields and settings translated into cf's typed config below. */
22
- function migrationInput(raw) {
23
- const result = { ...raw };
24
- if (!empty(result.rules) && !isDeepStrictEqual(result.rules, [{
25
- type: "ESModule",
26
- globs: ["**/*.js", "**/*.mjs"]
27
- }])) throw new Error("cf cannot yet preserve custom Worker module rules in a prebuilt bundle.");
28
- if (empty(result.logfwdr) || isDeepStrictEqual(result.logfwdr, { bindings: [] })) delete result.logfwdr;
29
- for (const key of [
30
- "configPath",
31
- "userConfigPath",
32
- "topLevelName",
33
- "main",
34
- "jsx_factory",
35
- "jsx_fragment",
36
- "rules",
37
- "python_modules",
38
- "dev",
39
- "no_bundle",
40
- "build",
41
- "keep_vars",
42
- "keep_secrets",
43
- "keep_assets",
44
- "send_metrics",
45
- "workflows"
46
- ]) delete result[key];
47
- for (const [key, value] of Object.entries(result)) if (empty(value)) delete result[key];
48
- return result;
49
- }
50
- function applyPreservationFlags(raw, worker) {
51
- const keepBindings = [...raw.keep_vars === true ? ["plain_text", "json"] : [], ...raw.keep_secrets === true ? ["secret_text", "secret_key"] : []];
52
- if (keepBindings.length === 0 && raw.keep_assets !== true) return;
53
- const unsafe = record(worker.unsafe) ?? {};
54
- const metadata = record(unsafe.metadata) ?? {};
55
- const previous = metadata.keep_bindings;
56
- if (previous !== void 0 && (!Array.isArray(previous) || !previous.every((value) => typeof value === "string"))) throw new Error("Invalid keep_bindings in the built Cloudflare config.");
57
- worker.unsafe = {
58
- ...unsafe,
59
- metadata: {
60
- ...metadata,
61
- ...keepBindings.length > 0 ? { keep_bindings: [.../* @__PURE__ */ new Set([...previous ?? [], ...keepBindings])] } : {},
62
- ...raw.keep_assets === true ? { keep_assets: true } : {}
63
- }
64
- };
65
- }
66
- function applyWorkflows(raw, worker) {
67
- if (empty(raw.workflows)) return;
68
- if (!Array.isArray(raw.workflows)) throw new Error("Invalid Workflow bindings in the built Cloudflare config.");
69
- const env = record(worker.env) ?? {};
70
- const exports = record(worker.exports) ?? {};
71
- for (const item of raw.workflows) {
72
- const workflow = record(item);
73
- if (!workflow || typeof workflow.binding !== "string" || typeof workflow.name !== "string" || typeof workflow.class_name !== "string" || workflow.script_name !== void 0 && typeof workflow.script_name !== "string") throw new Error("Invalid Workflow binding in the built Cloudflare config.");
74
- const allowed = /* @__PURE__ */ new Set([
75
- "binding",
76
- "name",
77
- "class_name",
78
- "script_name",
79
- "limits",
80
- "concurrency",
81
- "schedules",
82
- "default_retention"
83
- ]);
84
- for (const key of Object.keys(workflow)) if (!allowed.has(key)) throw new Error(`cf cannot migrate Workflow setting ${key}.`);
85
- if (Object.hasOwn(env, workflow.binding)) throw new Error(`Duplicate Worker binding ${workflow.binding}.`);
86
- env[workflow.binding] = {
87
- type: "workflow",
88
- name: workflow.name,
89
- worker: workflow.script_name ?? worker.name,
90
- exportName: workflow.class_name
91
- };
92
- if (workflow.script_name !== void 0 && workflow.script_name !== worker.name) continue;
93
- const retention = record(workflow.default_retention);
94
- if (Object.hasOwn(exports, workflow.class_name)) throw new Error(`Duplicate Worker export ${workflow.class_name}.`);
95
- const schedules = Array.isArray(workflow.schedules) && workflow.schedules.length === 0 ? void 0 : workflow.schedules;
96
- exports[workflow.class_name] = {
97
- type: "workflow",
98
- name: workflow.name,
99
- ...workflow.limits !== void 0 ? { limits: workflow.limits } : {},
100
- ...workflow.concurrency !== void 0 ? { concurrency: workflow.concurrency } : {},
101
- ...schedules !== void 0 ? { schedules } : {},
102
- ...retention ? { defaultRetention: {
103
- ...retention.success_retention !== void 0 ? { successRetention: retention.success_retention } : {},
104
- ...retention.error_retention !== void 0 ? { errorRetention: retention.error_retention } : {}
105
- } } : {}
106
- };
107
- }
108
- worker.env = env;
109
- worker.exports = exports;
110
- }
111
- function uncredentialedEnvironment() {
112
- const env = { ...process.env };
113
- for (const key of Object.keys(env)) if (/^(?:CLOUDFLARE|CF_|WRANGLER|VOID_PLATFORM_|DATABASE_URL|VOID_ACCESS_)/i.test(key)) delete env[key];
114
- env.CF_DELEGATION = "1";
115
- return env;
116
- }
117
- function assertHandledFollowUps(followUps) {
118
- for (const item of followUps) {
119
- if (!item.blocking) continue;
120
- if (item.code === "vite-plugin-install-disabled" && item.sourcePath === void 0) continue;
121
- const path = item.sourcePath ?? item.code;
122
- if (!(path === "assets.directory" && item.message.includes("assets directory") || /^d1_databases\.\d+$/.test(path) && /`migrations_(?:dir|table)`/.test(item.message) || /^durable_objects\.bindings\.\d+$/.test(path) || path === "migrations" || path === "containers")) throw new Error(`cf cannot migrate Cloudflare setting ${path}: ${item.message}`);
123
- }
124
- }
125
- function durableObjectExports(raw) {
126
- const migrations = raw.migrations;
127
- if (migrations === void 0 || Array.isArray(migrations) && migrations.length === 0) return {};
128
- if (!Array.isArray(migrations) || !migrations.every((entry) => record(entry))) throw new Error("Invalid Durable Object migrations in the built Cloudflare config.");
129
- const exports = {};
130
- for (const migration of migrations) {
131
- const known = /* @__PURE__ */ new Set([
132
- "tag",
133
- "new_classes",
134
- "new_sqlite_classes",
135
- "renamed_classes",
136
- "deleted_classes"
137
- ]);
138
- for (const key of Object.keys(migration)) if (!known.has(key)) throw new Error(`cf cannot migrate Durable Object migration setting ${key}.`);
139
- for (const [field, storage] of [["new_classes", "legacy-kv"], ["new_sqlite_classes", "sqlite"]]) {
140
- const classes = migration[field] ?? [];
141
- if (!Array.isArray(classes) || !classes.every((name) => typeof name === "string")) throw new Error(`Invalid ${field} in the built Cloudflare config.`);
142
- for (const name of classes) exports[name] = {
143
- type: "durable-object",
144
- storage
145
- };
146
- }
147
- const renamed = migration.renamed_classes ?? [];
148
- if (!Array.isArray(renamed) || !renamed.every((entry) => record(entry))) throw new Error("Invalid renamed_classes in the built Cloudflare config.");
149
- for (const item of renamed) {
150
- if (typeof item.from !== "string" || typeof item.to !== "string") throw new Error("Invalid Durable Object class rename in the built Cloudflare config.");
151
- const old = record(exports[item.from]);
152
- if (!old || old.storage !== "sqlite" && old.storage !== "legacy-kv") throw new Error(`Cannot determine the storage of renamed Durable Object ${item.from}.`);
153
- exports[item.from] = {
154
- type: "durable-object",
155
- state: "renamed",
156
- renamedTo: item.to
157
- };
158
- exports[item.to] = {
159
- type: "durable-object",
160
- storage: old.storage
161
- };
162
- }
163
- const deleted = migration.deleted_classes ?? [];
164
- if (!Array.isArray(deleted) || !deleted.every((name) => typeof name === "string")) throw new Error("Invalid deleted_classes in the built Cloudflare config.");
165
- for (const name of deleted) exports[name] = {
166
- type: "durable-object",
167
- state: "deleted"
168
- };
169
- }
170
- return exports;
171
- }
172
- function containersFromWrangler(raw, exports) {
173
- const values = raw.containers;
174
- if (values === void 0) return [];
175
- if (!Array.isArray(values) || !values.every((value) => record(value))) throw new Error("Invalid Containers in the built Cloudflare config.");
176
- return values.map((value) => {
177
- if (typeof value.name !== "string" || typeof value.class_name !== "string") throw new Error("cf requires a name and class_name for each Container.");
178
- const managed = value.scheduling_policy === "durable_object";
179
- const fields = new Set(managed ? [
180
- "name",
181
- "class_name",
182
- "scheduling_policy",
183
- "images"
184
- ] : [
185
- "name",
186
- "class_name",
187
- "image",
188
- "max_instances",
189
- "instance_type"
190
- ]);
191
- for (const key of Object.keys(value)) if (!fields.has(key)) throw new Error(`cf cannot migrate Container setting ${key}.`);
192
- const declaration = record(exports[value.class_name]);
193
- if (!declaration || declaration.storage !== "sqlite") throw new Error(`Container ${value.name} needs a SQLite Durable Object export.`);
194
- declaration.container = value.name;
195
- if (managed) {
196
- const images = record(value.images);
197
- if (!images) throw new Error("A Sandbox requires a named image.");
198
- return {
199
- name: value.name,
200
- schedulingPolicy: "durable-object",
201
- images: Object.fromEntries(Object.entries(images).map(([name, image]) => {
202
- const source = record(image);
203
- if (!source || Object.keys(source).some((key) => ![
204
- "dockerfile",
205
- "build_context",
206
- "image"
207
- ].includes(key)) || source.dockerfile !== void 0 && source.image !== void 0 || source.build_context !== void 0 && typeof source.build_context !== "string") throw new Error("Invalid Sandbox image.");
208
- if (typeof source.dockerfile === "string") return [name, {
209
- dockerfile: source.dockerfile,
210
- ...typeof source.build_context === "string" ? { buildContext: source.build_context } : {}
211
- }];
212
- if (typeof source.image === "string") return [name, { reference: source.image }];
213
- throw new Error("Invalid Sandbox image source.");
214
- }))
215
- };
216
- }
217
- if (typeof value.image !== "string") throw new Error("A Container requires an image.");
218
- return {
219
- name: value.name,
220
- image: { reference: value.image },
221
- ...typeof value.max_instances === "number" ? { maxInstances: value.max_instances } : {},
222
- ...typeof value.instance_type === "string" ? { instanceType: value.instance_type } : {}
223
- };
224
- });
225
- }
226
- const migrationScript = String.raw`
227
- import { readFileSync, writeFileSync } from 'node:fs';
228
- import { dirname, join } from 'node:path';
229
- import { pathToFileURL } from 'node:url';
230
- const { migrateWranglerToCf } = await import(process.argv[1]);
231
- const configPath = process.argv[2];
232
- const migration = await migrateWranglerToCf(configPath, {
233
- bundler: 'vite', force: true, installDependencies: false,
234
- });
235
- const directory = dirname(configPath);
236
- const generated = readFileSync(join(directory, 'cloudflare.config.ts'), 'utf8');
237
- const executable = generated.replace(/^throw new Error\("Migration incomplete\.[^\n]*\);\s*$/m, '');
238
- if (executable === generated && migration.status !== 'complete') {
239
- throw new Error('cf did not provide a usable Cloudflare configuration.');
240
- }
241
- const executablePath = join(directory, 'cloudflare.config.mjs');
242
- writeFileSync(executablePath, executable, { mode: 0o600 });
243
- const config = (await import(pathToFileURL(executablePath).href)).default;
244
- process.stdout.write(JSON.stringify({ config, followUps: migration.followUps }));
245
- `;
246
- function migrateBuiltWranglerConfig(raw) {
247
- const cfPackage = fileURLToPath(import.meta.resolve("cf/package.json"));
248
- const directory = mkdtempSync(join(tmpdir(), "void-cf-config-"));
249
- try {
250
- mkdirSync(join(directory, "node_modules"));
251
- symlinkSync(dirname(cfPackage), join(directory, "node_modules", "cf"), "junction");
252
- writeFileSync(join(directory, "package.json"), JSON.stringify({
253
- name: "void-private-cf-build",
254
- private: true,
255
- type: "module",
256
- dependencies: {
257
- cf: "1.0.0",
258
- "@cloudflare/vite-plugin": "1.0.0"
259
- }
260
- }), { mode: 384 });
261
- const configPath = join(directory, "wrangler.json");
262
- writeFileSync(configPath, JSON.stringify(migrationInput(raw)), { mode: 384 });
263
- const migrated = spawnSync(process.execPath, [
264
- "--input-type=module",
265
- "-e",
266
- migrationScript,
267
- import.meta.resolve("@cloudflare/codemods"),
268
- configPath
269
- ], {
270
- cwd: directory,
271
- env: uncredentialedEnvironment(),
272
- encoding: "utf8",
273
- timeout: 3e4,
274
- maxBuffer: 4194304
275
- });
276
- if (migrated.status !== 0 || migrated.error) throw new Error("cf could not translate the built Cloudflare configuration.");
277
- const migration = JSON.parse(migrated.stdout);
278
- assertHandledFollowUps(migration.followUps);
279
- const result = record(migration.config);
280
- const worker = record(result?.worker);
281
- if (!result || !worker) throw new Error("cf did not generate a Worker configuration.");
282
- applyPreservationFlags(raw, worker);
283
- applyWorkflows(raw, worker);
284
- const exports = {
285
- ...record(worker.exports),
286
- ...durableObjectExports(raw)
287
- };
288
- const containers = containersFromWrangler(raw, exports);
289
- if (containers.length > 0) {
290
- const envBindings = record(worker.env);
291
- const durableBindings = record(raw.durable_objects)?.bindings;
292
- if (!envBindings || !Array.isArray(durableBindings)) throw new Error("A Container Durable Object binding was not found in the built config.");
293
- for (const container of containers) {
294
- const className = raw.containers.find((entry) => entry.name === container.name)?.class_name;
295
- const binding = durableBindings.find((entry) => record(entry)?.class_name === className);
296
- if (!record(binding) || typeof binding.name !== "string" || binding.script_name !== void 0 && binding.script_name !== worker.name) throw new Error(`Container ${container.name} must use a local Durable Object binding.`);
297
- envBindings[binding.name] = {
298
- type: "unsafe:durable_object_namespace",
299
- class_name: className
300
- };
301
- }
302
- result.containers = containers;
303
- }
304
- if (Object.keys(exports).length > 0) worker.exports = exports;
305
- return InputConfigSchema.parse(result);
306
- } finally {
307
- rmSync(directory, {
308
- recursive: true,
309
- force: true
310
- });
311
- }
312
- }
313
- //#endregion
314
- //#region src/cli/container-image.ts
12
+ // src/cli/container-image.ts
315
13
  function docker(args, quiet = false) {
316
14
  return new Promise((resolve, reject) => {
317
15
  const child = spawn(process.env.WRANGLER_DOCKER_BIN ?? "docker", args, { stdio: quiet ? "ignore" : "inherit" });
@@ -341,8 +39,7 @@ async function buildContainerImage(dockerfile, buildContext = dirname(dockerfile
341
39
  ], true).catch(() => {})
342
40
  };
343
41
  }
344
- //#endregion
345
- //#region src/cli/cf-build-output.ts
42
+ // src/cli/cf-build-output.ts
346
43
  const moduleTypes = {
347
44
  ".js": "esm",
348
45
  ".mjs": "esm",
@@ -394,10 +91,55 @@ function copyBundle(source, destination) {
394
91
  }
395
92
  return modules;
396
93
  }
94
+ function stagePackageContext(directory, projectRoot) {
95
+ const root = resolve(projectRoot);
96
+ const manifest = join(root, "package.json");
97
+ if (!existsSync(manifest)) return;
98
+ copyFileSync(manifest, join(directory, "package.json"));
99
+ for (let parent = root;; parent = dirname(parent)) {
100
+ const modules = join(parent, "node_modules");
101
+ if (existsSync(modules)) {
102
+ symlinkSync(modules, join(directory, "node_modules"), process.platform === "win32" ? "junction" : "dir");
103
+ break;
104
+ }
105
+ if (parent === dirname(parent)) break;
106
+ }
107
+ }
397
108
  /** Create a disposable cf Build Output tree from an existing Cloudflare Worker build. */
398
- async function prepareCfBuildOutput(workerDirectory, accountId, mode) {
109
+ async function prepareCfBuildOutput(workerDirectory, accountId, mode, projectRoot = workerDirectory) {
399
110
  const source = resolve(workerDirectory);
400
- if (existsSync(getRootConfigPath(source))) return prepareNativeBuildOutput(source, accountId, mode);
111
+ if (existsSync(getRootConfigPath(source))) {
112
+ const deferredContainers = join(dirname(getRootConfigPath(source)), "void-containers.json");
113
+ if (existsSync(deferredContainers)) {
114
+ const built = await readBuildOutput(source);
115
+ if (accountId !== void 0 && built.rootConfig.accountId !== void 0 && accountId !== built.rootConfig.accountId || mode !== void 0 && mode !== built.rootConfig.buildContext.mode) return null;
116
+ const path = record(JSON.parse(readFileSync(deferredContainers, "utf8")))?.workerDirectory;
117
+ if (typeof path !== "string" || isAbsolute(path) || path.includes("\\") || path.includes(":") || !isInside(source, resolve(source, path)) || resolve(source, path) === source) throw new Error("Invalid Void Container build output directory.");
118
+ const directory = realpathSync(resolve(source, path));
119
+ const canonicalRoot = realpathSync(source);
120
+ if (directory === canonicalRoot || !isInside(canonicalRoot, directory)) throw new Error("Void Container output must stay inside the project.");
121
+ const prepared = await prepareCfBuildOutput(directory, accountId, mode ?? built.rootConfig.buildContext.mode, projectRoot);
122
+ if (!prepared) return null;
123
+ let native = null;
124
+ try {
125
+ native = await prepareNativeBuildOutput(source, accountId, mode, projectRoot);
126
+ if (!native) {
127
+ await prepared.dispose();
128
+ return null;
129
+ }
130
+ const staged = await readBuildOutput(native.directory);
131
+ for (const [name, worker] of Object.entries(staged.workers)) if (name !== "default") cpSync(dirname(worker.configPath), dirname(getWorkerConfigPath(prepared.directory, name)), { recursive: true });
132
+ await readBuildOutput(prepared.directory);
133
+ return prepared;
134
+ } catch (error) {
135
+ await prepared.dispose();
136
+ throw error;
137
+ } finally {
138
+ await native?.dispose();
139
+ }
140
+ }
141
+ return prepareNativeBuildOutput(source, accountId, mode, projectRoot);
142
+ }
401
143
  if (!existsSync(join(source, "wrangler.json"))) throw new Error(`No Cloudflare Worker build found in ${source}. Pass the project root that contains .cloudflare/output/v0, or the Worker output directory that contains wrangler.json.`);
402
144
  const raw = record(JSON.parse(readFileSync(join(source, "wrangler.json"), "utf8")));
403
145
  if (!raw) return null;
@@ -421,6 +163,7 @@ async function prepareCfBuildOutput(workerDirectory, accountId, mode) {
421
163
  await Promise.all(images.map((image) => image.dispose()));
422
164
  };
423
165
  try {
166
+ stagePackageContext(directory, projectRoot);
424
167
  const bundle = getWorkerBundleDir(directory);
425
168
  mkdirSync(bundle, { recursive: true });
426
169
  const modules = copyBundle(source, bundle);
@@ -479,7 +222,7 @@ async function prepareCfBuildOutput(workerDirectory, accountId, mode) {
479
222
  }
480
223
  }
481
224
  /** Copy and complete the native artifact without changing the Vite build's inputs or metadata. */
482
- async function prepareNativeBuildOutput(source, accountId, mode) {
225
+ async function prepareNativeBuildOutput(source, accountId, mode, projectRoot = source) {
483
226
  const built = await readBuildOutput(source);
484
227
  if (accountId !== void 0 && built.rootConfig.accountId !== void 0 && accountId !== built.rootConfig.accountId || mode !== void 0 && mode !== built.rootConfig.buildContext.mode) return null;
485
228
  const directory = mkdtempSync(join(tmpdir(), "void-cf-native-"));
@@ -490,6 +233,7 @@ async function prepareNativeBuildOutput(source, accountId, mode) {
490
233
  });
491
234
  };
492
235
  try {
236
+ stagePackageContext(directory, projectRoot);
493
237
  await writeRootConfig(directory, {
494
238
  accountId: accountId ?? built.rootConfig.accountId,
495
239
  complianceRegion: built.rootConfig.complianceRegion
@@ -657,7 +401,7 @@ async function prepareBundledBuildOutput(options) {
657
401
  main: "index.js",
658
402
  assets: options.assets
659
403
  }), { mode: 384 });
660
- return await prepareCfBuildOutput(scratch, options.accountId);
404
+ return await prepareCfBuildOutput(scratch, options.accountId, void 0, options.projectRoot);
661
405
  } finally {
662
406
  rmSync(scratch, {
663
407
  recursive: true,
@@ -737,5 +481,4 @@ async function prepareCfFrameworkBuildOutput(options) {
737
481
  });
738
482
  }
739
483
  }
740
- //#endregion
741
- export { record as a, migrateBuiltWranglerConfig as i, prepareCfFrameworkBuildOutput as n, prepareCfStaticBuildOutput as r, prepareCfBuildOutput as t };
484
+ export { prepareCfFrameworkBuildOutput as n, prepareCfStaticBuildOutput as r, prepareCfBuildOutput as t };
@@ -0,0 +1 @@
1
+ export { t as prepareCfBuildOutput } from "./cf-build-output-B1C8U83u.mjs";
@@ -1,4 +1,4 @@
1
- //#region src/cli/cf-command-values.ts
1
+ // src/cli/cf-command-values.ts
2
2
  const CF_VERSION_SOURCE_MAX_OUTPUT_BYTES = 134217728;
3
3
  /** Accept a cf positional only when it cannot be read as a flag or carry control characters. */
4
4
  function safePositional(value) {
@@ -11,13 +11,16 @@ function safePositional(value) {
11
11
  function isD1Bookmark(value) {
12
12
  return typeof value === "string" && /^[0-9a-f]+(?:-[0-9a-f]+)+$/i.test(value);
13
13
  }
14
- /** Read the version ID and URLs that cf prints after a prebuilt upload. */
15
- function readCfUploadOutput(stdout) {
14
+ /**
15
+ * Read the version ID and URLs that cf prints after a prebuilt upload: on stdout before
16
+ * cf 1.0.0-beta.21, and on stderr since.
17
+ */
18
+ function readCfUploadOutput(result) {
19
+ const output = `${result.stdout}\n${result.stderr}`;
16
20
  return {
17
- versionId: stdout.match(/(?:Worker|Current) Version ID:\s*([0-9a-f]{8}-[0-9a-f-]{27})/i)?.[1],
18
- previewUrl: stdout.match(/Version Preview(?: Alias)? URL:\s*(https:\/\/\S+)/i)?.[1],
19
- workersDevUrl: stdout.match(/(https:\/\/[a-z0-9.-]+\.workers\.dev(?:\/[^\s]*)?)/i)?.[1]
21
+ versionId: output.match(/(?:Worker|Current) Version ID:\s*([0-9a-f]{8}-[0-9a-f-]{27})/i)?.[1],
22
+ previewUrl: output.match(/Version Preview(?: Alias)? URL:\s*(https:\/\/\S+)/i)?.[1],
23
+ workersDevUrl: output.match(/(https:\/\/[a-z0-9.-]+\.workers\.dev(?:\/[^\s]*)?)/i)?.[1]
20
24
  };
21
25
  }
22
- //#endregion
23
26
  export { safePositional as i, isD1Bookmark as n, readCfUploadOutput as r, CF_VERSION_SOURCE_MAX_OUTPUT_BYTES as t };