void 0.27.0 → 1.0.3

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 (337) hide show
  1. package/README.md +3 -1
  2. package/dist/{account-cmd-l-FM7Ioq.mjs → account-cmd-BTcUzv9L.mjs} +6 -6
  3. package/dist/{agents-B_pX_HmQ.mjs → agents-CuNtT0D_.mjs} +5 -2
  4. package/dist/{application-analysis-DKy02UY0.mjs → application-analysis-AB_YYWgH.mjs} +118 -135
  5. package/dist/{application-routing-DQyUh_5S.mjs → application-routing-L7V-TFhZ.mjs} +1 -2
  6. package/dist/atomic-write-Dq6R0BPN.mjs +18 -0
  7. package/dist/{auth-Dn2vw-SG.mjs → auth-B6iOCjKI.mjs} +23 -56
  8. package/dist/auth-Cbqi1iVX.mjs +1 -0
  9. package/dist/{auth-link-vz9Z2kmG.mjs → auth-link-DUJuvRx5.mjs} +11 -11
  10. package/dist/{auth-migrations-BwHgeEsD.mjs → auth-migrations-Cgs0k6lS.mjs} +28 -5
  11. package/dist/{auth-router-DvsCUVw4.mjs → auth-router-CIxiMG7i.mjs} +5 -5
  12. package/dist/base64-DVrOndmI.mjs +16 -0
  13. package/dist/{better-auth-shared-CPvWD3nG.d.mts → better-auth-shared-B74NJIus.d.mts} +8 -13
  14. package/dist/{better-auth-shared-DPpj8zxc.mjs → better-auth-shared-CMXlZG7W.mjs} +56 -68
  15. package/dist/{build-cmd-D6we0VjO.mjs → build-cmd-BkIv25PA.mjs} +6 -6
  16. package/dist/{cache-CZRdzKx1.mjs → cache-Ctzfig-W.mjs} +6 -6
  17. package/dist/{cancel-deploy-CQ3NnMvf.mjs → cancel-deploy-CD9o-SsC.mjs} +5 -5
  18. package/dist/{cf-access-TWNzXltp.mjs → cf-access-BM9G0lhO.mjs} +4 -3
  19. package/dist/{cf-access-BcIBSKqG.mjs → cf-access-CWP4avfP.mjs} +3 -7
  20. package/dist/cf-build-output-BU3hqdHu.mjs +1 -0
  21. package/dist/{cf-build-output-DjvB_872.mjs → cf-build-output-Bc8i3dzE.mjs} +2 -2
  22. package/dist/cf-user-agent-ChjQp2MU.mjs +33 -0
  23. package/dist/cli/cli.mjs +199 -312
  24. package/dist/cli/cloudflare-operation-process.mjs +41 -15
  25. package/dist/cli/env-schema-probe.d.mts +7 -44
  26. package/dist/cli/env-schema-probe.mjs +14 -80
  27. package/dist/client-B60PwCC4.mjs +1 -0
  28. package/dist/{client-DlDJuY0s.mjs → client-DM9Kcf4e.mjs} +161 -415
  29. package/dist/{cloudflare-auth-CuxfF6OA.mjs → cloudflare-auth-CqFBDo52.mjs} +12 -39
  30. package/dist/{cloudflare-cmd-lHqNlJGW.mjs → cloudflare-cmd-BIAF_BIY.mjs} +7 -6
  31. package/dist/{cloudflare-config-BmhBv3HV.mjs → cloudflare-config-DV60XFFK.mjs} +16 -28
  32. package/dist/{cloudflare-connect-2G3rL2rP.mjs → cloudflare-connect-WjwnVOJA.mjs} +4 -4
  33. package/dist/{cloudflare-operations-CwI1bChl.mjs → cloudflare-operations-B42EZeJy.mjs} +26 -34
  34. package/dist/cloudflare-operations-CrSUFRzJ.mjs +1 -0
  35. package/dist/{cloudflare-process-2-TfIEzB.mjs → cloudflare-process-CeDWJRhj.mjs} +12 -7
  36. package/dist/collect-Cae8A7Zr.mjs +1 -0
  37. package/dist/{collect-DiTn9yr6.mjs → collect-xjffdCdk.mjs} +1 -1
  38. package/dist/{config-CSa15FvD.d.mts → config-7qoq2p9v.d.mts} +2 -2
  39. package/dist/{config-CLYAosnQ.mjs → config-BEm9vRvS.mjs} +11 -5
  40. package/dist/{config-DiowPT80.mjs → config-Bx_1SpnO.mjs} +87 -177
  41. package/dist/{config-DPByhVck.mjs → config-D0GY5ItR.mjs} +1 -1
  42. package/dist/config-QrJWu0IX.mjs +1 -0
  43. package/dist/config-entry.d.mts +1 -1
  44. package/dist/{connect-BfPBHHm-.mjs → connect-CKtk-EZe.mjs} +9 -9
  45. package/dist/create-project-B-ewF_Af.mjs +1 -0
  46. package/dist/{create-project-BdXEFKal.mjs → create-project-yInGo72M.mjs} +8 -8
  47. package/dist/database-provider.mjs +1 -2
  48. package/dist/{db-Xs80hcaA.mjs → db-7I_gfdVq.mjs} +177 -268
  49. package/dist/db-types-Bb4WBWIs.mjs +49 -0
  50. package/dist/{delete-d2vuou3j.mjs → delete-Cy-M1u-r.mjs} +6 -6
  51. package/dist/deploy-9lgfhrXS.mjs +2 -0
  52. package/dist/deploy-BYYlnsiy.mjs +6164 -0
  53. package/dist/deploy-managed-static-Ca4TFdmx.mjs +1595 -0
  54. package/dist/deploy-transport-DWlWBe6M.mjs +180 -0
  55. package/dist/deploy.d.mts +10 -0
  56. package/dist/deploy.mjs +82 -0
  57. package/dist/dev-inbox-Rd6j_8vM.mjs +217 -0
  58. package/dist/discover-ClzFSwns.mjs +1 -0
  59. package/dist/{discover-CkCYv9T_.mjs → discover-D2PGT63u.mjs} +2 -2
  60. package/dist/dispatch-DrTTk8Xg.mjs +431 -0
  61. package/dist/{dist-D3m88sjf.mjs → dist-BVdsO7Py.mjs} +5 -6
  62. package/dist/dist-CfgIkieS.mjs +1 -0
  63. package/dist/{dist-BVqXeR_h.mjs → dist-ipQi0Q8y.mjs} +2 -3
  64. package/dist/{domain-BsDUBAvt.mjs → domain-CZGxPv9u.mjs} +8 -23
  65. package/dist/{dotenv-BfU6eqFt.mjs → dotenv-CNazY3-w.mjs} +4 -16
  66. package/dist/edge.mjs +1 -2
  67. package/dist/{email-d_Aux1vM.mjs → email-BcjSyAL0.mjs} +4 -20
  68. package/dist/{email-_lGAHOhp.mjs → email-DzyNVuoU.mjs} +100 -192
  69. package/dist/email-cloudflare-DfG6UEMm.mjs +1096 -0
  70. package/dist/email-protocol-D9nTvhCp.mjs +82 -0
  71. package/dist/{entry-CMAkqBmU.mjs → entry-ehmBvs5w.mjs} +2 -2
  72. package/dist/{env-DMA3cXZt.mjs → env-0jrMQJI_.mjs} +6 -14
  73. package/dist/{env-BxocywBB.mjs → env-BJjULvL0.mjs} +2 -2
  74. package/dist/{env-C74QepDE.mjs → env-Nx3yf50r.mjs} +9 -9
  75. package/dist/{env-public-DR7ZM6d-.d.mts → env-public-CCdykygU.d.mts} +6 -23
  76. package/dist/{env-raw-jZpP5n47.mjs → env-raw-D74P4ebM.mjs} +15 -21
  77. package/dist/{env-types-CwXgeMgL.mjs → env-types-DS2_y4X8.mjs} +2 -2
  78. package/dist/env-validation-BT7z-qpQ.mjs +1 -0
  79. package/dist/env-validation-DYxjz_Wo.mjs +488 -0
  80. package/dist/{gen-DtkQhvQg.mjs → gen-CufHEf42.mjs} +132 -254
  81. package/dist/gen-sXyp5DFO.mjs +1 -0
  82. package/dist/generate-ClI89brV.mjs +1 -0
  83. package/dist/{generate-GDbL7sUr.mjs → generate-Dat0UTry.mjs} +38 -4
  84. package/dist/generated-wrangler-config-DeWj5F9Y.mjs +18 -0
  85. package/dist/{github-cmd-DaDdBbSS.mjs → github-cmd-FU8EjFyU.mjs} +28 -72
  86. package/dist/{handler-BHAn2fZJ.mjs → handler-BZ1t7-Rv.mjs} +2 -2
  87. package/dist/{handler-CNAwjRcW.d.mts → handler-_PqY82xe.d.mts} +1 -1
  88. package/dist/{headers-DlfR78Nu.mjs → headers-Di1FsD3e.mjs} +26 -81
  89. package/dist/{help-0bTe_lID.mjs → help-BT2hovNI.mjs} +26 -14
  90. package/dist/help-i2YGGnTH.mjs +1 -0
  91. package/dist/{inbound-PfQDLXc5.mjs → inbound-BuTfm11U.mjs} +71 -222
  92. package/dist/{inbound-CH5Mksyy.d.mts → inbound-brj2-TM5.d.mts} +19 -58
  93. package/dist/index.d.mts +2 -18
  94. package/dist/index.mjs +714 -762
  95. package/dist/{info-PYWwkWyt.mjs → info-l249eUdH.mjs} +5 -5
  96. package/dist/{init-DaBGmaXC.mjs → init-D0A6M64Q.mjs} +229 -392
  97. package/dist/isr-config-fZaJJ8t7.mjs +165 -0
  98. package/dist/{link-C6fjafep.mjs → link-WMoJFf4i.mjs} +9 -9
  99. package/dist/{list-BTFBlqKl.mjs → list-CQ2EQEHL.mjs} +7 -18
  100. package/dist/{live-CgQuTpqD.mjs → live-BcHoTDFe.mjs} +19 -17
  101. package/dist/{live-Du8jXwOW.d.mts → live-DJONVlQK.d.mts} +1 -1
  102. package/dist/load-user-env-DD5qveNU.mjs +49 -0
  103. package/dist/{local-d1-ga5O_idV.mjs → local-d1-BxvQYEFi.mjs} +6 -6
  104. package/dist/{login-GKcNUmtI.mjs → login-C2T1oVG-.mjs} +12 -12
  105. package/dist/login-XD844Xs-.mjs +1 -0
  106. package/dist/{logs-BiMSULmc.mjs → logs-DnC1d7xB.mjs} +6 -6
  107. package/dist/{migrate-NLsjBbuM.mjs → migrate-BDIprOYd.mjs} +70 -22
  108. package/dist/migrate-BRwU-blY.mjs +1 -0
  109. package/dist/migration-handler-Cg0Y4EPu.mjs +470 -0
  110. package/dist/{migration-handler-DM4clYj5.d.mts → migration-handler-CwlEQUoo.d.mts} +17 -26
  111. package/dist/{mime-DxCznlJq.mjs → mime-srOklVVv.mjs} +92 -395
  112. package/dist/mysql-migration-sql-BIS5vbNk.mjs +241 -0
  113. package/dist/nitro.d.mts +30 -0
  114. package/dist/nitro.mjs +88 -0
  115. package/dist/{node-DJicPvPj.mjs → node-cPadMgUO.mjs} +9 -25
  116. package/dist/{operator-args-DOBhIaIg.mjs → operator-args-UnE8Y2eK.mjs} +27 -26
  117. package/dist/{operator-auth-BEZ_u0Cz.mjs → operator-auth-Cr2zCc-J.mjs} +2 -2
  118. package/dist/{operator-client-DbDv4vtE.mjs → operator-client-C-ROjk1I.mjs} +4 -4
  119. package/dist/operator-cmd-D6gnZsnK.mjs +1 -0
  120. package/dist/{operator-cmd-BT4hgavL.mjs → operator-cmd-DHieWtFp.mjs} +8 -8
  121. package/dist/{output-C50ag2r3.mjs → output-Ba6ZbrzY.mjs} +37 -6
  122. package/dist/{package-json-DXfiT1jV.mjs → package-json-BjYqR-So.mjs} +1 -1
  123. package/dist/pages/client.d.mts +1 -1
  124. package/dist/pages/client.mjs +91 -5
  125. package/dist/pages/head.mjs +1 -2
  126. package/dist/pages/index.d.mts +1 -2
  127. package/dist/pages/index.mjs +6 -6
  128. package/dist/pages/islands-plugin.mjs +5 -83
  129. package/dist/pages/prefetch.mjs +1 -2
  130. package/dist/pages/protocol.d.mts +2 -2
  131. package/dist/pages/protocol.mjs +1 -1
  132. package/dist/pages/serialize.mjs +1 -2
  133. package/dist/plan-CKX_jWnD.mjs +1 -0
  134. package/dist/platform-args-B0HeTh0C.mjs +1 -0
  135. package/dist/{platform-args-DUeXY9Om.mjs → platform-args-CaCL_1Ch.mjs} +43 -60
  136. package/dist/{platform-auth-config-CkSx3usH.mjs → platform-auth-config-Z16-I8nT.mjs} +11 -12
  137. package/dist/{platform-auth-protection-BJimB_p9.mjs → platform-auth-protection-BXwZiJSF.mjs} +37 -27
  138. package/dist/{platform-auth-recovery-BU6izFAU.mjs → platform-auth-recovery-CXjfqyOv.mjs} +9 -10
  139. package/dist/{platform-cmd-BbY1dWiM.mjs → platform-cmd-DaAOiWTl.mjs} +16 -16
  140. package/dist/platform-cmd-PT4YwMLM.mjs +1 -0
  141. package/dist/{platform-discovery-DIYz8V63.mjs → platform-discovery-CHhNs8Nn.mjs} +1 -1
  142. package/dist/{platform-domain-CHVS6cV0.mjs → platform-domain-CxpvUeo0.mjs} +6 -6
  143. package/dist/{platform-lifecycle-DzCwqhFq.mjs → platform-lifecycle-DBiS0cJd.mjs} +1693 -2120
  144. package/dist/platform-lifecycle-u9pMOvxC.mjs +1 -0
  145. package/dist/{platform-management-CuuVDhyt.mjs → platform-management-DhEFdQAf.mjs} +696 -130
  146. package/dist/platform-management-DvBS83rC.mjs +1 -0
  147. package/dist/{platform-plans-config-CN-heS4q.mjs → platform-plans-config-BWn1S2Rv.mjs} +16 -12
  148. package/dist/{platform-recovery-CskSJgLh.mjs → platform-recovery-BUGOB4RC.mjs} +6 -9
  149. package/dist/{platform-registry-Cjv2Qf0r.mjs → platform-registry-B9mWX9LO.mjs} +13 -18
  150. package/dist/{platform-setup-BBxRxmFC.mjs → platform-setup-YvN9VQXV.mjs} +21 -28
  151. package/dist/{plugin-inference-BlQbOL0P.mjs → plugin-inference-DsARdQKE.mjs} +18 -33
  152. package/dist/prepare-CYT6tAzD.mjs +1 -0
  153. package/dist/{prepare-Do96654b.mjs → prepare-DEB5SeVJ.mjs} +12 -13
  154. package/dist/{prepare-Dq9hTIbo.mjs → prepare-PQCgsny0.mjs} +4 -4
  155. package/dist/{prerender-render-Ct20jftc.mjs → prerender-render-Bfsumdkv.mjs} +8 -2
  156. package/dist/prerender-render.d.mts +2 -0
  157. package/dist/prerender-render.mjs +1 -2
  158. package/dist/{project-cmd-DaoRrn-8.mjs → project-cmd-DVatD8Ev.mjs} +20 -20
  159. package/dist/{project-paths-GgcMozYz.mjs → project-paths-DMvEeSau.mjs} +9 -14
  160. package/dist/{project-BAm2aB6Q.mjs → project-rqDnVsJN.mjs} +8 -4
  161. package/dist/project-slug-6cyz8E7k.mjs +1 -0
  162. package/dist/{project-team-Q_lCA7Io.mjs → project-team-DJrWEAG1.mjs} +7 -7
  163. package/dist/{project-token-BArgK9o1.mjs → project-token-CBgLBuL6.mjs} +6 -6
  164. package/dist/{project-tsconfig-CVJhNMxs.mjs → project-tsconfig-bveqhlYA.mjs} +3 -5
  165. package/dist/project-zdB3fs9G.mjs +1 -0
  166. package/dist/{project-zero-trust-KO9Hu2Pq.mjs → project-zero-trust-92gLtZ25.mjs} +6 -6
  167. package/dist/{protocol-BPZaNqBo.d.mts → protocol-4H7V_3Os.d.mts} +1 -1
  168. package/dist/{protocol-CfaUwNs8.mjs → protocol-RNP0u7UY.mjs} +9 -3
  169. package/dist/{provision-BfaLiWbj.mjs → provision-BnSSkiED.mjs} +119 -866
  170. package/dist/{requests-C7Oeoh5u.mjs → requests-7W1Pygt2.mjs} +5 -5
  171. package/dist/resolve-project-PnhzMtY6.mjs +1 -0
  172. package/dist/resolve-project-WpwkCB_c.mjs +48 -0
  173. package/dist/{rollback-DVAtrLAl.mjs → rollback-BcASVnwP.mjs} +8 -18
  174. package/dist/{route-types-CbtsIeFn.mjs → route-types-BZi26DVS.mjs} +9 -91
  175. package/dist/routing-assets-VkrKIbxE.mjs +139 -0
  176. package/dist/{runner-DMBKSrRk.mjs → runner-CabsQ-iM.mjs} +22 -34
  177. package/dist/runner-So9mYfcm.mjs +1 -0
  178. package/dist/runner-mysql-BhRaONkO.mjs +146 -0
  179. package/dist/runner-mysql-DWwE8jKi.mjs +1 -0
  180. package/dist/{runner-pg-DV8p_zjA.mjs → runner-pg-BRemq_GX.mjs} +3 -3
  181. package/dist/runner-pg-_Xncr3H5.mjs +1 -0
  182. package/dist/runtime/ai.mjs +23 -25
  183. package/dist/runtime/auth-client-react.mjs +1 -2
  184. package/dist/runtime/auth-client-solid.mjs +1 -2
  185. package/dist/runtime/auth-client-svelte.mjs +1 -2
  186. package/dist/runtime/auth-client-vue.mjs +1 -2
  187. package/dist/runtime/auth-client.mjs +1 -2
  188. package/dist/runtime/auth.mjs +1 -2
  189. package/dist/runtime/better-auth-mysql.d.mts +2 -5
  190. package/dist/runtime/better-auth-mysql.mjs +9 -31
  191. package/dist/runtime/better-auth-pg.d.mts +2 -5
  192. package/dist/runtime/better-auth-pg.mjs +6 -32
  193. package/dist/runtime/better-auth.d.mts +2 -4
  194. package/dist/runtime/better-auth.mjs +9 -19
  195. package/dist/runtime/db.mjs +6 -2
  196. package/dist/runtime/durable.d.mts +18 -1
  197. package/dist/runtime/durable.mjs +26 -2
  198. package/dist/runtime/email/testing.d.mts +1 -1
  199. package/dist/runtime/email/testing.mjs +9 -23
  200. package/dist/runtime/email-protocol.d.mts +12 -0
  201. package/dist/runtime/email-protocol.mjs +1 -70
  202. package/dist/runtime/email.d.mts +1 -1
  203. package/dist/runtime/email.mjs +79 -221
  204. package/dist/runtime/env-public.d.mts +1 -1
  205. package/dist/runtime/env-public.mjs +12 -38
  206. package/dist/runtime/env.d.mts +1 -12
  207. package/dist/runtime/env.mjs +1 -2
  208. package/dist/runtime/handler.d.mts +1 -1
  209. package/dist/runtime/handler.mjs +1 -1
  210. package/dist/runtime/isr.mjs +1 -1
  211. package/dist/runtime/kv.mjs +1 -1
  212. package/dist/runtime/limits.mjs +1 -2
  213. package/dist/runtime/live-client.d.mts +3 -2
  214. package/dist/runtime/live-server.d.mts +2 -1
  215. package/dist/runtime/live-server.mjs +1 -16
  216. package/dist/runtime/live.d.mts +1 -1
  217. package/dist/runtime/live.mjs +1 -2
  218. package/dist/runtime/log.d.mts +2 -1
  219. package/dist/runtime/migration-handler-mysql.d.mts +2 -2
  220. package/dist/runtime/migration-handler-mysql.mjs +39 -8
  221. package/dist/runtime/migration-handler-pg.d.mts +2 -2
  222. package/dist/runtime/migration-handler-pg.mjs +1 -1
  223. package/dist/runtime/migration-handler.d.mts +2 -2
  224. package/dist/runtime/migration-handler.mjs +1 -470
  225. package/dist/runtime/queues.mjs +1 -1
  226. package/dist/runtime/remote/binding-handler.mjs +62 -62
  227. package/dist/runtime/remote/index.mjs +16 -77
  228. package/dist/runtime/response.mjs +1 -2
  229. package/dist/runtime/route-url.mjs +1 -2
  230. package/dist/runtime/routing.d.mts +3 -5
  231. package/dist/runtime/routing.mjs +82 -218
  232. package/dist/runtime/sandbox-container.d.mts +2 -2
  233. package/dist/runtime/sandbox-container.mjs +1 -2
  234. package/dist/runtime/sandbox.d.mts +2 -2
  235. package/dist/runtime/sandbox.mjs +13 -6
  236. package/dist/runtime/seed.d.mts +2 -1
  237. package/dist/runtime/sse.mjs +1 -2
  238. package/dist/runtime/storage.mjs +1 -1
  239. package/dist/runtime/validator.d.mts +1 -1
  240. package/dist/runtime/validator.mjs +1 -2
  241. package/dist/runtime/ws-server.d.mts +4 -4
  242. package/dist/runtime/ws-server.mjs +6 -28
  243. package/dist/runtime/ws.d.mts +1 -1
  244. package/dist/{sandbox-container-Bo0eiFKz.d.mts → sandbox-container-ChQRum-j.d.mts} +3 -1
  245. package/dist/{sandbox-container-C6ItmVuN.mjs → sandbox-container-a9LRUtii.mjs} +13 -2
  246. package/dist/{sandbox-C5LFoJMf.d.mts → sandbox-q3waMc2T.d.mts} +1 -1
  247. package/dist/{scan-C3uDzz6J.mjs → scan-C0BMdmEd.mjs} +84 -7
  248. package/dist/{secret-BvtB7IjY.mjs → secret-bg73f1Ge.mjs} +63 -81
  249. package/dist/{serialize-BPvnNQuA.mjs → serialize-BtQyaYoC.mjs} +10 -4
  250. package/dist/{skills-BgVMvQdy.mjs → skills-C_yRTg0g.mjs} +3 -3
  251. package/dist/{subcommand-prompt-BSlnD1fI.mjs → subcommand-prompt-Bm3ZlYgA.mjs} +39 -44
  252. package/dist/sveltekit.d.mts +2 -1
  253. package/dist/sveltekit.mjs +1 -1
  254. package/dist/validate-BQFdf0Pi.mjs +1 -0
  255. package/dist/{validate-C9qJArv7.mjs → validate-CheZGRE7.mjs} +4 -8
  256. package/dist/version-metadata-DIrqEHQo.mjs +73 -0
  257. package/dist/{wrangler-D9KTuqnv.mjs → wrangler-BYs07Rxy.mjs} +119 -378
  258. package/dist/wrapper-CwhpNWtH.mjs +663 -0
  259. package/dist/{ws-CChrrAU-.d.mts → ws-aKVYB-fA.d.mts} +1 -1
  260. package/dist/yarn-pnp-DLbEFMT0.mjs +92 -0
  261. package/docs/guide/ai.md +8 -2
  262. package/docs/guide/auth.md +2 -0
  263. package/docs/guide/database/mysql.md +14 -3
  264. package/docs/guide/database/postgresql.md +2 -0
  265. package/docs/guide/database.md +3 -5
  266. package/docs/guide/durable-state.md +32 -4
  267. package/docs/guide/platform/administration/access.md +4 -0
  268. package/docs/guide/platform/administration/connected-apps.md +55 -0
  269. package/docs/guide/platform/installation/credentials.md +21 -3
  270. package/docs/guide/platform/installation/domains.md +1 -1
  271. package/docs/guide/platform/installation/maintenance.md +38 -1
  272. package/docs/guide/platform/installation/prerequisites.md +6 -2
  273. package/docs/guide/platform/installation/setup.md +23 -1
  274. package/docs/guide/platform/installation/uninstall.md +6 -1
  275. package/docs/guide/quickstart.md +2 -0
  276. package/docs/guide/sandboxes.md +3 -1
  277. package/docs/guide/self-hosted-platform.md +1 -1
  278. package/docs/integrations/cloudflare.md +2 -2
  279. package/docs/integrations/frameworks/analog.md +3 -11
  280. package/docs/integrations/frameworks/nuxt.md +7 -10
  281. package/docs/integrations/nodejs-bun-deno.md +2 -0
  282. package/docs/reference/api/deploy.md +23 -0
  283. package/docs/reference/api/pages.md +2 -0
  284. package/docs/reference/api.md +3 -1
  285. package/docs/reference/cli/database.md +9 -3
  286. package/docs/reference/cli/platform-installation.md +19 -7
  287. package/docs/reference/cli/setup.md +2 -0
  288. package/docs/reference/config.md +2 -0
  289. package/package.json +39 -36
  290. package/sandbox.Dockerfile +1 -1
  291. package/skills/void/SKILL.md +2 -1
  292. package/dist/auth-LMJcNESe.mjs +0 -2
  293. package/dist/cf-build-output-H9a97vME.mjs +0 -2
  294. package/dist/cf-user-agent-lKblH3zU.mjs +0 -17
  295. package/dist/client-tso2OfcG.mjs +0 -2
  296. package/dist/cloudflare-operations-BlYLlowZ.mjs +0 -2
  297. package/dist/collect-DLyFDiKW.mjs +0 -2
  298. package/dist/config-5r-YpMC-.mjs +0 -2
  299. package/dist/config-B_ggY-IO.mjs +0 -89
  300. package/dist/config-BtSFvXZx.mjs +0 -2
  301. package/dist/config-write-AHGesphx.mjs +0 -61
  302. package/dist/create-project-qFDC45zg.mjs +0 -2
  303. package/dist/deploy-Bqe1PYBw.mjs +0 -10458
  304. package/dist/deploy-VsWsVQkw.mjs +0 -2
  305. package/dist/dev-inbox-CK-UuPob.mjs +0 -297
  306. package/dist/discover-EDUf6JJw.mjs +0 -2
  307. package/dist/dist-Bx1z6Eva.mjs +0 -2
  308. package/dist/dist-_UUlL6bg.mjs +0 -2
  309. package/dist/env-validation-CrVNjsPm.mjs +0 -2
  310. package/dist/env-validation-Dxdx_5wo.mjs +0 -951
  311. package/dist/gen-dA9hW7AV.mjs +0 -2
  312. package/dist/head-client-DzmJGN4C.mjs +0 -90
  313. package/dist/help-DfQYVfGY.mjs +0 -2
  314. package/dist/login-mx_ydhmp.mjs +0 -2
  315. package/dist/migrate-BHp07yJE.mjs +0 -2
  316. package/dist/operator-cmd-CwBB-1yb.mjs +0 -2
  317. package/dist/pages/head-client.d.mts +0 -13
  318. package/dist/pages/head-client.mjs +0 -2
  319. package/dist/plan-CH2G51je.mjs +0 -2
  320. package/dist/platform-args-D4E1PjVw.mjs +0 -2
  321. package/dist/platform-cmd-BbmJiq5O.mjs +0 -2
  322. package/dist/platform-lifecycle-ByAlpkhV.mjs +0 -2
  323. package/dist/platform-management-CBOT4BSM.mjs +0 -2
  324. package/dist/prepare-DRUV-g3X.mjs +0 -2
  325. package/dist/project-DedqCp59.mjs +0 -2
  326. package/dist/project-slug-DofjTFd-.mjs +0 -2
  327. package/dist/provision-Wu9ZBk9L.mjs +0 -2
  328. package/dist/resolve-project-BIeYs9Cw.mjs +0 -2
  329. package/dist/resolve-project-CP8rZs_p.mjs +0 -28
  330. package/dist/runner-9wjsSZx-.mjs +0 -2
  331. package/dist/runner-mysql-CEzKtmFb.mjs +0 -54
  332. package/dist/runner-mysql-CkFqZ6CE.mjs +0 -2
  333. package/dist/runner-pg-BGYRFdRp.mjs +0 -2
  334. package/dist/runtime/env-helpers.d.mts +0 -2
  335. package/dist/runtime/env-helpers.mjs +0 -2
  336. package/dist/validate-BJr9LfXy.mjs +0 -2
  337. package/dist/yarn-pnp-CUX_iTPA.mjs +0 -188
@@ -1,20 +1,19 @@
1
+ import { n as createClientAssetTags, r as createManifestLoader, t as ASSET_EXTENSIONS } from "../routing-assets-VkrKIbxE.mjs";
1
2
  import { t as convertReturnValue } from "../response-Tn7rU0MV.mjs";
2
- import { n as handlePageGet, r as handlePageMutation } from "../protocol-CfaUwNs8.mjs";
3
- import { t as VoidAssetRewriteError } from "../handler-BHAn2fZJ.mjs";
3
+ import { n as handlePageGet, r as handlePageMutation } from "../protocol-RNP0u7UY.mjs";
4
+ import { t as VoidAssetRewriteError } from "../handler-BZ1t7-Rv.mjs";
4
5
  import { AsyncLocalStorage } from "node:async_hooks";
5
- import { compilePattern, mergeQueryIntoLocation, substituteParams } from "@void/edge";
6
+ import { compilePattern, matchPattern, matchPatternCaptures, mergeQueryIntoLocation, substituteParams } from "@void/edge";
6
7
  //#region src/runtime/routing-errors.ts
7
- const __VOID_ERROR_PAGE_FONT_STACK = "system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif";
8
+ const ERROR_PAGE_FONT_STACK = "system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif";
8
9
  const errorStack = Error;
9
10
  /** Error rendering is shared by generated Pages apps; production never includes exception details. */
10
11
  function createErrorRenderer(options) {
11
- const __VOID_DEV = options.dev === true;
12
- const __VOID_PROJECT_ROOT = options.projectRoot;
13
- const __VOID_HOME_DIR = options.homeDir;
14
- function __voidEscapeHtml(value) {
12
+ const dev = options.dev === true;
13
+ function escapeHtml(value) {
15
14
  return String(value).replaceAll("&", "&amp;").replaceAll("<", "&lt;").replaceAll(">", "&gt;").replaceAll("\"", "&quot;");
16
15
  }
17
- function __voidShouldServeHtmlErrorPage(request) {
16
+ function shouldServeHtmlErrorPage(request) {
18
17
  if (request.method !== "GET" && request.method !== "HEAD") return false;
19
18
  const url = new URL(request.url);
20
19
  if (url.pathname === "/api" || url.pathname.startsWith("/api/")) return false;
@@ -24,16 +23,16 @@ function createErrorRenderer(options) {
24
23
  const accept = request.headers.get("accept");
25
24
  return !accept || accept.includes("text/html") || accept.includes("*/*");
26
25
  }
27
- function __voidNormalizeFsPath(value) {
26
+ function normalizeFsPath(value) {
28
27
  return typeof value === "string" ? value.replaceAll("\\", "/") : "";
29
28
  }
30
- function __voidIsAbsolutePath(value) {
29
+ function isAbsolutePath(value) {
31
30
  return value.startsWith("/") || /^[A-Za-z]:\//.test(value);
32
31
  }
33
- function __voidDisplayPath(value) {
34
- const path = __voidNormalizeFsPath(value);
35
- const homeDir = __voidNormalizeFsPath(__VOID_HOME_DIR);
36
- const projectRoot = __voidNormalizeFsPath(__VOID_PROJECT_ROOT);
32
+ function toDisplayPath(value) {
33
+ const path = normalizeFsPath(value);
34
+ const homeDir = normalizeFsPath(options.homeDir);
35
+ const projectRoot = normalizeFsPath(options.projectRoot);
37
36
  if (!path) return "";
38
37
  if (projectRoot && (path === projectRoot || path.startsWith(projectRoot + "/"))) {
39
38
  const suffix = path.slice(projectRoot.length).replace(/^\/?/, "");
@@ -45,13 +44,13 @@ function createErrorRenderer(options) {
45
44
  }
46
45
  return path;
47
46
  }
48
- function __voidEditorHref(value, line, column) {
49
- const path = __voidNormalizeFsPath(value);
50
- if (!__voidIsAbsolutePath(path)) return "";
47
+ function editorHref(value, line, column) {
48
+ const path = normalizeFsPath(value);
49
+ if (!isAbsolutePath(path)) return "";
51
50
  return "vscode://file/" + encodeURI(path).replaceAll("#", "%23").replaceAll("?", "%3F") + ":" + String(line) + ":" + String(column);
52
51
  }
53
- function __voidCreateStackFrame(functionName, file, line, column, raw) {
54
- const normalizedFile = __voidNormalizeFsPath(file);
52
+ function createStackFrame(functionName, file, line, column, raw) {
53
+ const normalizedFile = normalizeFsPath(file);
55
54
  const lineNumber = Number(line);
56
55
  const columnNumber = Number(column);
57
56
  if (!normalizedFile || !Number.isFinite(lineNumber) || lineNumber <= 0) return null;
@@ -61,17 +60,17 @@ function createErrorRenderer(options) {
61
60
  file: normalizedFile,
62
61
  line: lineNumber,
63
62
  column: safeColumn,
64
- displayPath: __voidDisplayPath(normalizedFile),
65
- href: __voidEditorHref(normalizedFile, lineNumber, safeColumn),
63
+ displayPath: toDisplayPath(normalizedFile),
64
+ href: editorHref(normalizedFile, lineNumber, safeColumn),
66
65
  raw: raw || ""
67
66
  };
68
67
  }
69
- function __voidParseFrameLocation(value) {
68
+ function parseFrameLocation(value) {
70
69
  const match = value.match(/^(.*):(\d+):(\d+)$/);
71
70
  if (!match) return null;
72
- return __voidCreateStackFrame("", match[1], Number(match[2]), Number(match[3]), value);
71
+ return createStackFrame("", match[1], Number(match[2]), Number(match[3]), value);
73
72
  }
74
- function __voidParseStackFrames(stack) {
73
+ function parseStackFrames(stack) {
75
74
  if (!stack) return [];
76
75
  const frames = [];
77
76
  for (const rawLine of stack.split(/\n+/)) {
@@ -80,18 +79,18 @@ function createErrorRenderer(options) {
80
79
  let frame = null;
81
80
  let match = line.match(/^at\s+(?:async\s+)?(.+?)\s+\((.+)\)$/);
82
81
  if (match) {
83
- const location = __voidParseFrameLocation(match[2]);
82
+ const location = parseFrameLocation(match[2]);
84
83
  frame = location ? {
85
84
  ...location,
86
85
  functionName: match[1]
87
86
  } : null;
88
87
  } else {
89
88
  match = line.match(/^at\s+(.+)$/);
90
- if (match) frame = __voidParseFrameLocation(match[1]);
89
+ if (match) frame = parseFrameLocation(match[1]);
91
90
  else {
92
91
  match = line.match(/^(.*?)@(.+)$/);
93
92
  if (match) {
94
- const location = __voidParseFrameLocation(match[2]);
93
+ const location = parseFrameLocation(match[2]);
95
94
  frame = location ? {
96
95
  ...location,
97
96
  functionName: match[1]
@@ -106,10 +105,10 @@ function createErrorRenderer(options) {
106
105
  }
107
106
  return frames;
108
107
  }
109
- function __voidGetStackFrames(error) {
108
+ function getStackFrames(error) {
110
109
  if (!(error instanceof Error)) return [];
111
110
  if (!error.stack && typeof errorStack.captureStackTrace === "function") try {
112
- errorStack.captureStackTrace(error, __voidGetStackFrames);
111
+ errorStack.captureStackTrace(error, getStackFrames);
113
112
  } catch {}
114
113
  const originalPrepareStackTrace = errorStack.prepareStackTrace;
115
114
  try {
@@ -121,7 +120,7 @@ function createErrorRenderer(options) {
121
120
  const fileName = callSite.getFileName?.() || callSite.getScriptNameOrSourceURL?.();
122
121
  const line = callSite.getLineNumber?.();
123
122
  const column = callSite.getColumnNumber?.();
124
- const frame = __voidCreateStackFrame(callSite.getFunctionName?.() || callSite.getMethodName?.() || "", fileName || "", line, column, String(callSite));
123
+ const frame = createStackFrame(callSite.getFunctionName?.() || callSite.getMethodName?.() || "", fileName || "", line, column, String(callSite));
125
124
  if (frame) frames.push(frame);
126
125
  } catch {}
127
126
  if (frames.length > 0) return frames;
@@ -129,14 +128,14 @@ function createErrorRenderer(options) {
129
128
  } catch {} finally {
130
129
  errorStack.prepareStackTrace = originalPrepareStackTrace;
131
130
  }
132
- return __voidParseStackFrames(typeof error.stack === "string" ? error.stack : "");
131
+ return parseStackFrames(typeof error.stack === "string" ? error.stack : "");
133
132
  }
134
- function __voidDescribeThrownValue(value) {
133
+ function describeThrownValue(value) {
135
134
  if (value instanceof Error) return {
136
135
  name: value.name || "Error",
137
136
  message: value.message || "",
138
137
  stack: typeof value.stack === "string" ? value.stack : "",
139
- frames: __voidGetStackFrames(value)
138
+ frames: getStackFrames(value)
140
139
  };
141
140
  if (typeof value === "string") return {
142
141
  name: "Thrown value",
@@ -158,25 +157,25 @@ function createErrorRenderer(options) {
158
157
  frames: []
159
158
  };
160
159
  }
161
- function __voidRenderStack(entry) {
160
+ function renderStack(entry) {
162
161
  if (Array.isArray(entry.frames) && entry.frames.length > 0) return `<div class="__void-error-stack"><div class="__void-error-stack-label">Stack trace</div><div class="__void-error-frames">${entry.frames.map((frame) => {
163
162
  const name = frame.functionName || "(anonymous)";
164
163
  const location = frame.displayPath + ":" + frame.line + ":" + frame.column;
165
- const body = `<span class="__void-error-frame-function">${__voidEscapeHtml(name)}</span><span class="__void-error-frame-location">${__voidEscapeHtml(location)}</span>`;
166
- if (frame.href) return `<a class="__void-error-frame" href="${__voidEscapeHtml(frame.href)}">${body}</a>`;
164
+ const body = `<span class="__void-error-frame-function">${escapeHtml(name)}</span><span class="__void-error-frame-location">${escapeHtml(location)}</span>`;
165
+ if (frame.href) return `<a class="__void-error-frame" href="${escapeHtml(frame.href)}">${body}</a>`;
167
166
  return `<div class="__void-error-frame is-static">${body}</div>`;
168
167
  }).join("")}</div></div>`;
169
168
  if (!entry.stack) return "";
170
- return `<div class="__void-error-stack"><div class="__void-error-stack-label">Stack trace</div><pre>${__voidEscapeHtml(entry.stack)}</pre></div>`;
169
+ return `<div class="__void-error-stack"><div class="__void-error-stack-label">Stack trace</div><pre>${escapeHtml(entry.stack)}</pre></div>`;
171
170
  }
172
- function __voidCollectErrorChain(error) {
171
+ function collectErrorChain(error) {
173
172
  const chain = [];
174
173
  const seen = /* @__PURE__ */ new Set();
175
174
  let current = error;
176
175
  let depth = 0;
177
176
  while (current != null && depth < 8 && !seen.has(current)) {
178
177
  seen.add(current);
179
- const entry = __voidDescribeThrownValue(current);
178
+ const entry = describeThrownValue(current);
180
179
  chain.push({
181
180
  label: depth === 0 ? "Error" : "Cause " + depth,
182
181
  ...entry
@@ -200,15 +199,15 @@ function createErrorRenderer(options) {
200
199
  });
201
200
  return chain;
202
201
  }
203
- function __voidRenderDevErrorOverlay(status, title, error) {
204
- const chain = __voidCollectErrorChain(error);
202
+ function renderDevErrorOverlay(status, title, error) {
203
+ const chain = collectErrorChain(error);
205
204
  const errorCountLabel = chain.length + (chain.length === 1 ? " Error" : " Errors");
206
205
  const sections = chain.map((entry, index) => {
207
206
  const heading = entry.name || (index === 0 ? title : "Cause");
208
207
  const message = entry.message || title;
209
- const stack = __voidRenderStack(entry);
210
- if (index === 0) return `<section class="__void-error-section is-root"><p class="__void-error-message">${__voidEscapeHtml(message)}</p>${stack}</section>`;
211
- return `<section class="__void-error-section"><div class="__void-error-kicker">${__voidEscapeHtml(entry.label)}</div><h2>${__voidEscapeHtml(heading)}</h2><p>${__voidEscapeHtml(message)}</p>${stack}</section>`;
208
+ const stack = renderStack(entry);
209
+ if (index === 0) return `<section class="__void-error-section is-root"><p class="__void-error-message">${escapeHtml(message)}</p>${stack}</section>`;
210
+ return `<section class="__void-error-section"><div class="__void-error-kicker">${escapeHtml(entry.label)}</div><h2>${escapeHtml(heading)}</h2><p>${escapeHtml(message)}</p>${stack}</section>`;
212
211
  }).join("");
213
212
  return `<style>
214
213
  .__void-error-overlay {
@@ -216,7 +215,7 @@ function createErrorRenderer(options) {
216
215
  inset: 0;
217
216
  z-index: 2147483647;
218
217
  pointer-events: none;
219
- font-family: ${__VOID_ERROR_PAGE_FONT_STACK};
218
+ font-family: ${ERROR_PAGE_FONT_STACK};
220
219
  color: #f5f5f5;
221
220
  }
222
221
  .__void-error-backdrop {
@@ -279,7 +278,7 @@ function createErrorRenderer(options) {
279
278
  padding: 12px 8px;
280
279
  box-shadow: 0 18px 36px rgba(0, 0, 0, 0.28);
281
280
  cursor: pointer;
282
- font: 700 13px/1 ${__VOID_ERROR_PAGE_FONT_STACK};
281
+ font: 700 13px/1 ${ERROR_PAGE_FONT_STACK};
283
282
  letter-spacing: 0.04em;
284
283
  text-transform: uppercase;
285
284
  transition: transform 180ms ease, opacity 180ms ease;
@@ -438,34 +437,34 @@ function createErrorRenderer(options) {
438
437
  }
439
438
  }
440
439
  </style>
441
- <aside class="__void-error-overlay" data-void-error-overlay role="dialog" aria-label="Void dev error overlay"><div class="__void-error-backdrop" data-void-error-backdrop></div><section class="__void-error-panel"><button type="button" class="__void-error-close" data-void-error-close aria-label="Minimize error overlay"><svg viewBox="0 0 16 16" aria-hidden="true" focusable="false"><path d="M3.757 3.757 12.243 12.243M12.243 3.757 3.757 12.243" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round"/></svg></button><header class="__void-error-header"><p class="__void-error-status">${__voidEscapeHtml(String(status) + ": " + title)}</p></header>${sections}</section><button type="button" class="__void-error-minimized" data-void-error-toggle aria-label="Show dev error overlay" aria-expanded="true">${__voidEscapeHtml(errorCountLabel)}</button><script>(function(){const script=document.currentScript;if(!(script instanceof HTMLScriptElement))return;const root=script.closest("[data-void-error-overlay]");if(!(root instanceof HTMLElement))return;const backdrop=root.querySelector("[data-void-error-backdrop]");const closeButton=root.querySelector("[data-void-error-close]");const toggle=root.querySelector("[data-void-error-toggle]");const setMinimized=(minimized)=>{root.classList.toggle("is-minimized", minimized);if(toggle instanceof HTMLElement)toggle.setAttribute("aria-expanded", minimized ? "false" : "true");};if(backdrop instanceof HTMLElement)backdrop.addEventListener("click",()=>setMinimized(true));if(closeButton instanceof HTMLElement)closeButton.addEventListener("click",()=>setMinimized(true));if(toggle instanceof HTMLElement)toggle.addEventListener("click",()=>setMinimized(false));})();<\/script></aside>`;
440
+ <aside class="__void-error-overlay" data-void-error-overlay role="dialog" aria-label="Void dev error overlay"><div class="__void-error-backdrop" data-void-error-backdrop></div><section class="__void-error-panel"><button type="button" class="__void-error-close" data-void-error-close aria-label="Minimize error overlay"><svg viewBox="0 0 16 16" aria-hidden="true" focusable="false"><path d="M3.757 3.757 12.243 12.243M12.243 3.757 3.757 12.243" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round"/></svg></button><header class="__void-error-header"><p class="__void-error-status">${escapeHtml(String(status) + ": " + title)}</p></header>${sections}</section><button type="button" class="__void-error-minimized" data-void-error-toggle aria-label="Show dev error overlay" aria-expanded="true">${escapeHtml(errorCountLabel)}</button><script>(function(){const script=document.currentScript;if(!(script instanceof HTMLScriptElement))return;const root=script.closest("[data-void-error-overlay]");if(!(root instanceof HTMLElement))return;const backdrop=root.querySelector("[data-void-error-backdrop]");const closeButton=root.querySelector("[data-void-error-close]");const toggle=root.querySelector("[data-void-error-toggle]");const setMinimized=(minimized)=>{root.classList.toggle("is-minimized", minimized);if(toggle instanceof HTMLElement)toggle.setAttribute("aria-expanded", minimized ? "false" : "true");};if(backdrop instanceof HTMLElement)backdrop.addEventListener("click",()=>setMinimized(true));if(closeButton instanceof HTMLElement)closeButton.addEventListener("click",()=>setMinimized(true));if(toggle instanceof HTMLElement)toggle.addEventListener("click",()=>setMinimized(false));})();<\/script></aside>`;
442
441
  }
443
- function __voidInjectDevErrorOverlay(html, overlay) {
442
+ function injectDevErrorOverlay(html, overlay) {
444
443
  return /<\/body\s*>/i.test(html) ? html.replace(/<\/body\s*>/i, overlay + "</body>") : html + overlay;
445
444
  }
446
- function __voidGetErrorAssetCss(error) {
445
+ function getErrorAssetCss(error) {
447
446
  const tags = error && (typeof error === "object" || typeof error === "function") && "__voidPageAssetTags" in error ? error.__voidPageAssetTags : null;
448
447
  return tags && typeof tags === "object" && "css" in tags && typeof tags.css === "string" ? tags.css : "";
449
448
  }
450
- function __voidInjectErrorAssetCss(html, css) {
449
+ function injectErrorAssetCss(html, css) {
451
450
  if (!css) return html;
452
451
  return /<\/head\s*>/i.test(html) ? html.replace(/<\/head\s*>/i, css + "</head>") : css + html;
453
452
  }
454
- function __voidRenderErrorPage(status, title, error) {
453
+ function renderErrorPage(status, title, error) {
455
454
  const heading = status + ": " + title;
456
455
  const prefix = status + ": ";
457
- const overlay = __VOID_DEV && status === 500 && error ? __voidRenderDevErrorOverlay(status, title, error) : "";
456
+ const overlay = dev && status === 500 && error ? renderDevErrorOverlay(status, title, error) : "";
458
457
  return `<!doctype html>
459
458
  <html lang="en">
460
459
  <head>
461
460
  <meta charset="utf-8">
462
461
  <meta name="viewport" content="width=device-width, initial-scale=1">
463
- <title>${__voidEscapeHtml(heading)}</title>
464
- ${__voidGetErrorAssetCss(error)}
462
+ <title>${escapeHtml(heading)}</title>
463
+ ${getErrorAssetCss(error)}
465
464
  <style>
466
465
  :root {
467
466
  color-scheme: light dark;
468
- font-family: ${__VOID_ERROR_PAGE_FONT_STACK};
467
+ font-family: ${ERROR_PAGE_FONT_STACK};
469
468
  background: #f5f5f5;
470
469
  color: #171717;
471
470
  }
@@ -477,7 +476,7 @@ function createErrorRenderer(options) {
477
476
  place-items: center;
478
477
  padding: 24px;
479
478
  background: radial-gradient(circle at top, rgba(255, 255, 255, 0.96), rgba(245, 245, 245, 0.96) 52%), linear-gradient(180deg, #fafafa 0%, #f1f1f1 100%);
480
- font: 500 16px/1.5 ${__VOID_ERROR_PAGE_FONT_STACK};
479
+ font: 500 16px/1.5 ${ERROR_PAGE_FONT_STACK};
481
480
  }
482
481
  main {
483
482
  inline-size: min(100%, 560px);
@@ -491,7 +490,7 @@ function createErrorRenderer(options) {
491
490
  }
492
491
  h1 {
493
492
  margin: 0;
494
- font: 400 clamp(1.5rem, 1.2rem + 1vw, 2rem) / 1.1 ${__VOID_ERROR_PAGE_FONT_STACK};
493
+ font: 400 clamp(1.5rem, 1.2rem + 1vw, 2rem) / 1.1 ${ERROR_PAGE_FONT_STACK};
495
494
  letter-spacing: -0.03em;
496
495
  }
497
496
  strong {
@@ -514,15 +513,15 @@ function createErrorRenderer(options) {
514
513
  </head>
515
514
  <body>
516
515
  <main>
517
- <h1><strong>${__voidEscapeHtml(prefix)}</strong>${__voidEscapeHtml(title)}</h1>
516
+ <h1><strong>${escapeHtml(prefix)}</strong>${escapeHtml(title)}</h1>
518
517
  </main>
519
518
  ${overlay}
520
519
  </body>
521
520
  </html>`;
522
521
  }
523
- function __voidCreateErrorResponse(request, status, title, error) {
524
- if (!__voidShouldServeHtmlErrorPage(request)) return new Response(title, { status });
525
- return new Response(request.method === "HEAD" ? null : __voidRenderErrorPage(status, title, error), {
522
+ function createErrorResponse(request, status, title, error) {
523
+ if (!shouldServeHtmlErrorPage(request)) return new Response(title, { status });
524
+ return new Response(request.method === "HEAD" ? null : renderErrorPage(status, title, error), {
526
525
  status,
527
526
  headers: { "content-type": "text/html; charset=utf-8" }
528
527
  });
@@ -534,11 +533,11 @@ function createErrorRenderer(options) {
534
533
  const request = new Request(new URL("/" + status + ".html", c.req.url));
535
534
  const response = await assets.fetch(request);
536
535
  if (response.ok) {
537
- const assetCss = __voidGetErrorAssetCss(error);
538
- const showOverlay = __VOID_DEV && status === 500 && !!error && __voidShouldServeHtmlErrorPage(c.req.raw);
536
+ const assetCss = getErrorAssetCss(error);
537
+ const showOverlay = dev && status === 500 && !!error && shouldServeHtmlErrorPage(c.req.raw);
539
538
  if (assetCss || showOverlay) {
540
- const html = __voidInjectErrorAssetCss(await response.text(), assetCss);
541
- const body = showOverlay ? __voidInjectDevErrorOverlay(html, __voidRenderDevErrorOverlay(status, fallbackText, error)) : html;
539
+ const html = injectErrorAssetCss(await response.text(), assetCss);
540
+ const body = showOverlay ? injectDevErrorOverlay(html, renderDevErrorOverlay(status, fallbackText, error)) : html;
542
541
  return new Response(c.req.method === "HEAD" ? null : body, {
543
542
  status,
544
543
  headers: { "content-type": "text/html; charset=utf-8" }
@@ -551,10 +550,10 @@ function createErrorRenderer(options) {
551
550
  }
552
551
  }
553
552
  } catch {}
554
- return __voidCreateErrorResponse(c.req.raw, status, fallbackText, error);
553
+ return createErrorResponse(c.req.raw, status, fallbackText, error);
555
554
  }
556
555
  return {
557
- createResponse: __voidCreateErrorResponse,
556
+ createResponse: createErrorResponse,
558
557
  serveCustomPage,
559
558
  onError: (error, c) => {
560
559
  if (error && typeof error === "object" && "getResponse" in error && typeof error.getResponse === "function") return error.getResponse();
@@ -564,115 +563,6 @@ function createErrorRenderer(options) {
564
563
  };
565
564
  }
566
565
  //#endregion
567
- //#region src/runtime/routing-assets.ts
568
- function createManifestLoader() {
569
- let cached = null;
570
- return async (request, env) => {
571
- if (cached) return cached;
572
- const injected = globalThis.__VITE_MANIFEST__;
573
- if (typeof injected === "object" && injected) {
574
- cached = injected;
575
- return cached;
576
- }
577
- const assets = env?.ASSETS;
578
- if (!assets || typeof assets.fetch !== "function") return null;
579
- const response = await assets.fetch(new Request(new URL("/.vite/manifest.json", request.url).toString()));
580
- if (!response.ok) return null;
581
- cached = await response.json();
582
- return cached;
583
- };
584
- }
585
- const BINDING_HINT_SCRIPT = "<script type=\"module\" src=\"/@id/virtual:void/binding-hint\"><\/script>";
586
- const REACT_REFRESH_SCRIPT = `<script type="module">
587
- import RefreshRuntime from "/@react-refresh";
588
- RefreshRuntime.injectIntoGlobalHook(window);
589
- window.$RefreshReg$ = () => {};
590
- window.$RefreshSig$ = () => (type) => type;
591
- window.__vite_plugin_react_preamble_installed__ = true;
592
- <\/script>`;
593
- const escapeAttribute = (value) => String(value).replace(/"/g, "&quot;");
594
- const script = (url) => `<script type="module" src="${escapeAttribute(url)}"><\/script>`;
595
- function collectManifestFiles(manifest, entryId, depthFirst) {
596
- const seen = /* @__PURE__ */ new Set();
597
- const pending = [entryId];
598
- for (let index = 0; depthFirst ? pending.length > 0 : index < pending.length;) {
599
- const id = depthFirst ? pending.pop() : pending[index++];
600
- if (seen.has(id)) continue;
601
- seen.add(id);
602
- const imports = manifest[id]?.imports;
603
- if (Array.isArray(imports)) pending.push(...imports);
604
- }
605
- return [...seen];
606
- }
607
- function collectRouteCss(manifest, roots) {
608
- const css = /* @__PURE__ */ new Set();
609
- const visited = /* @__PURE__ */ new Set();
610
- const visit = (id) => {
611
- if (visited.has(id)) return;
612
- visited.add(id);
613
- const chunk = manifest[id];
614
- if (!chunk) return;
615
- if (Array.isArray(chunk.css)) for (const file of chunk.css) css.add(file);
616
- if (Array.isArray(chunk.imports)) for (const imported of chunk.imports) visit(imported);
617
- };
618
- for (const root of roots) visit(root);
619
- return css;
620
- }
621
- /** Frameworks supply only client entry IDs and active layout/page roots. */
622
- function createClientAssetTags(options, loadManifest = createManifestLoader()) {
623
- return async (request, env, componentId = "") => {
624
- const empty = {
625
- css: "",
626
- preloads: "",
627
- body: ""
628
- };
629
- const manifest = await loadManifest(request, env);
630
- if (!manifest || typeof manifest !== "object") {
631
- if (!options.dev) return empty;
632
- const preloads = [script("/@vite/client"), BINDING_HINT_SCRIPT];
633
- if (options.kind === "ssr" && options.reactRefresh) preloads.push(REACT_REFRESH_SCRIPT);
634
- let body = script(options.entryUrl);
635
- if (options.extraEntryUrl) body += "\n" + script(options.extraEntryUrl);
636
- const tags = {
637
- css: "",
638
- preloads: preloads.join("\n"),
639
- body
640
- };
641
- if (options.devCss && options.kind !== "ssr") {
642
- const css = await options.devCss(request, env, {
643
- kind: options.kind,
644
- componentId,
645
- rootPhases: options.devRootPhases?.[componentId] || [[options.entryUrl]]
646
- });
647
- tags.devCss = Array.isArray(css) ? css : [];
648
- }
649
- return tags;
650
- }
651
- const entry = manifest[options.entryId];
652
- if (!entry || typeof entry !== "object" || typeof entry.file !== "string") return empty;
653
- const ids = collectManifestFiles(manifest, options.entryId, options.kind === "ssr");
654
- const extraEntry = options.extraEntryId ? manifest[options.extraEntryId] : void 0;
655
- const hasExtra = extraEntry && typeof extraEntry.file === "string";
656
- if (hasExtra) ids.push(...collectManifestFiles(manifest, options.extraEntryId, false));
657
- const css = options.kind === "ssr" ? /* @__PURE__ */ new Set() : collectRouteCss(manifest, [options.entryId, ...options.pageCssKeys?.[componentId] ?? []]);
658
- if (hasExtra) for (const file of collectRouteCss(manifest, [options.extraEntryId])) css.add(file);
659
- const preloads = /* @__PURE__ */ new Set();
660
- for (const id of ids) {
661
- const chunk = manifest[id];
662
- if (!chunk || typeof chunk !== "object") continue;
663
- if (options.kind === "ssr" && Array.isArray(chunk.css)) for (const file of chunk.css) css.add(file);
664
- if (id !== options.entryId && id !== options.extraEntryId && typeof chunk.file === "string") preloads.add(chunk.file);
665
- }
666
- let body = script("/" + entry.file);
667
- if (hasExtra) body += "\n" + script("/" + extraEntry.file);
668
- return {
669
- css: [...css].map((file) => `<link rel="stylesheet" href="/${escapeAttribute(file)}">`).join("\n"),
670
- preloads: [...preloads].map((file) => `<link rel="modulepreload" href="/${escapeAttribute(file)}">`).join("\n"),
671
- body
672
- };
673
- };
674
- }
675
- //#endregion
676
566
  //#region src/runtime/routing-worker.ts
677
567
  const ASSET_CONTENT_TYPES = {
678
568
  ".avif": "image/avif",
@@ -887,11 +777,11 @@ function createAssetNotFound(options) {
887
777
  //#region src/runtime/routing.ts
888
778
  /** One state owner per generated app: recursive dispatch shares rewrite and fallback guards. */
889
779
  function createRoutingRuntime(app, options = {}) {
890
- const originalUrls = options.originalUrls ?? /* @__PURE__ */ new WeakMap();
780
+ const originalUrls = /* @__PURE__ */ new WeakMap();
891
781
  const fallbackHandled = /* @__PURE__ */ new WeakSet();
892
782
  const warnedPatterns = /* @__PURE__ */ new Set();
893
783
  const requestContext = new AsyncLocalStorage();
894
- const assetExtensions = options.blockedAssetExtensions ?? DEFAULT_ASSET_EXTENSIONS;
784
+ const assetExtensions = options.blockedAssetExtensions ?? ASSET_EXTENSIONS;
895
785
  const assetExtensionRE = assetExtensions.length ? new RegExp(`\\.(${assetExtensions.join("|")})$`, "i") : /(?!)/;
896
786
  const annotate = (response, trace) => {
897
787
  if (!options.dev) return response;
@@ -917,15 +807,15 @@ function createRoutingRuntime(app, options = {}) {
917
807
  const url = new URL(c.req.url);
918
808
  for (const rule of rules) {
919
809
  if (rule.host && rule.host !== url.hostname) continue;
920
- let match;
921
810
  try {
922
- match = compilePattern(rule.source).regex.exec(url.pathname);
811
+ compilePattern(rule.source);
923
812
  } catch (error) {
924
813
  warn(rule.source, error, "routing");
925
814
  continue;
926
815
  }
927
- if (!match) continue;
928
- const destination = substituteParams(rule.destination, match.groups ?? {});
816
+ const params = matchPatternCaptures(rule.source, url.pathname);
817
+ if (!params) continue;
818
+ const destination = substituteParams(rule.destination, params);
929
819
  if (rule.status === 200) {
930
820
  const q = destination.indexOf("?");
931
821
  const rewriteUrl = new URL(c.req.url);
@@ -977,7 +867,6 @@ function createRoutingRuntime(app, options = {}) {
977
867
  };
978
868
  return {
979
869
  requestContext,
980
- originalUrls,
981
870
  contextMiddleware,
982
871
  requestMiddleware: async (c, next) => {
983
872
  await requestContext.run(options.nodeTarget ? { request: c.req.raw } : {
@@ -998,10 +887,14 @@ function createRoutingRuntime(app, options = {}) {
998
887
  await next();
999
888
  const pathname = new URL(c.req.url).pathname;
1000
889
  const matched = [];
1001
- for (const rule of rules) try {
1002
- if (compilePattern(rule.pattern).regex.test(pathname)) matched.push(...rule.headers);
1003
- } catch (error) {
1004
- warn(rule.pattern, error, "header");
890
+ for (const rule of rules) {
891
+ try {
892
+ compilePattern(rule.pattern);
893
+ } catch (error) {
894
+ warn(rule.pattern, error, "header");
895
+ continue;
896
+ }
897
+ if (matchPattern(rule.pattern, pathname)) matched.push(...rule.headers);
1005
898
  }
1006
899
  if (!matched.length) return;
1007
900
  const headers = new Headers(c.res.headers);
@@ -1016,35 +909,6 @@ function createRoutingRuntime(app, options = {}) {
1016
909
  markNoMatch
1017
910
  };
1018
911
  }
1019
- const DEFAULT_ASSET_EXTENSIONS = [
1020
- "png",
1021
- "jpg",
1022
- "jpeg",
1023
- "gif",
1024
- "webp",
1025
- "avif",
1026
- "svg",
1027
- "ico",
1028
- "css",
1029
- "js",
1030
- "mjs",
1031
- "cjs",
1032
- "woff",
1033
- "woff2",
1034
- "ttf",
1035
- "otf",
1036
- "eot",
1037
- "mp4",
1038
- "webm",
1039
- "mp3",
1040
- "wav",
1041
- "pdf",
1042
- "txt",
1043
- "xml",
1044
- "json",
1045
- "wasm",
1046
- "map"
1047
- ];
1048
912
  function markNoMatch(request, response) {
1049
913
  const url = new URL(request.url);
1050
914
  if (response.status !== 404 || request.method !== "GET" && request.method !== "HEAD" || url.pathname === "/api" || url.pathname.startsWith("/api/") || /\/[^/]+\.[^/]+$/.test(url.pathname)) return response;
@@ -1068,4 +932,4 @@ function createModuleLoader(load, cache = true) {
1068
932
  };
1069
933
  }
1070
934
  //#endregion
1071
- export { DEFAULT_ASSET_EXTENSIONS, createAssetFallback, createAssetNotFound, createClientAssetTags, createErrorRenderer, createHttpRouteHandler, createManifestLoader, createModuleLoader, createPageGetHandler, createPageMutationHandler, createPagesFallback, createRoutingRuntime, createSsrFallback, createWorkerFetch, filterInternalBindings, markNoMatch };
935
+ export { createAssetFallback, createAssetNotFound, createClientAssetTags, createErrorRenderer, createHttpRouteHandler, createManifestLoader, createModuleLoader, createPageGetHandler, createPageMutationHandler, createPagesFallback, createRoutingRuntime, createSsrFallback, createWorkerFetch, filterInternalBindings, markNoMatch };
@@ -1,3 +1,3 @@
1
1
  /// <reference types="@cloudflare/workers-types" />
2
- import { a as SandboxInstance, c as SandboxProcessWire, i as SandboxExecOptions, l as validateSandboxOptions, n as SandboxCapability, o as SandboxNativeContainer, r as SandboxContainer, s as SandboxOptions, t as DEFAULT_SANDBOX_INACTIVITY_TIMEOUT_MS } from "../sandbox-container-Bo0eiFKz.mjs";
3
- export { DEFAULT_SANDBOX_INACTIVITY_TIMEOUT_MS, SandboxCapability, SandboxContainer, SandboxExecOptions, SandboxInstance, SandboxNativeContainer, SandboxOptions, SandboxProcessWire, validateSandboxOptions };
2
+ import { a as SandboxExecOptions, c as SandboxOptions, i as SandboxContainer, l as SandboxProcessWire, n as SANDBOX_PORT_HEADER, o as SandboxInstance, r as SandboxCapability, s as SandboxNativeContainer, t as DEFAULT_SANDBOX_INACTIVITY_TIMEOUT_MS, u as validateSandboxOptions } from "../sandbox-container-ChQRum-j.mjs";
3
+ export { DEFAULT_SANDBOX_INACTIVITY_TIMEOUT_MS, SANDBOX_PORT_HEADER, SandboxCapability, SandboxContainer, SandboxExecOptions, SandboxInstance, SandboxNativeContainer, SandboxOptions, SandboxProcessWire, validateSandboxOptions };
@@ -1,2 +1 @@
1
- import { n as SandboxContainer, r as validateSandboxOptions, t as DEFAULT_SANDBOX_INACTIVITY_TIMEOUT_MS } from "../sandbox-container-C6ItmVuN.mjs";
2
- export { DEFAULT_SANDBOX_INACTIVITY_TIMEOUT_MS, SandboxContainer, validateSandboxOptions };
1
+ export { t as DEFAULT_SANDBOX_INACTIVITY_TIMEOUT_MS, n as SANDBOX_PORT_HEADER, r as SandboxContainer, i as validateSandboxOptions } from "../sandbox-container-a9LRUtii.mjs";
@@ -1,5 +1,5 @@
1
1
  /// <reference types="@cloudflare/workers-types" />
2
- import { i as SandboxExecOptions, s as SandboxOptions } from "../sandbox-container-Bo0eiFKz.mjs";
3
- import { a as SandboxFiles, c as SandboxUnavailableError, d as __setSandboxBindingName, f as getSandbox, i as SandboxClient, l as VoidPlatformSandbox, n as DEFAULT_SANDBOX_ID, o as SandboxLimitError, p as sandbox, r as SANDBOX_SERVICE_BINDING, s as SandboxProcess, t as DEFAULT_SANDBOX_BINDING, u as VoidSandboxOptions } from "../sandbox-C5LFoJMf.mjs";
2
+ import { a as SandboxExecOptions, c as SandboxOptions } from "../sandbox-container-ChQRum-j.mjs";
3
+ import { a as SandboxFiles, c as SandboxUnavailableError, d as __setSandboxBindingName, f as getSandbox, i as SandboxClient, l as VoidPlatformSandbox, n as DEFAULT_SANDBOX_ID, o as SandboxLimitError, p as sandbox, r as SANDBOX_SERVICE_BINDING, s as SandboxProcess, t as DEFAULT_SANDBOX_BINDING, u as VoidSandboxOptions } from "../sandbox-q3waMc2T.mjs";
4
4
  export * from "@cloudflare/sandbox";
5
5
  export { DEFAULT_SANDBOX_BINDING, DEFAULT_SANDBOX_ID, SANDBOX_SERVICE_BINDING, SandboxClient, type SandboxExecOptions, SandboxFiles, SandboxLimitError, type SandboxOptions, SandboxProcess, SandboxUnavailableError, VoidPlatformSandbox, VoidSandboxOptions, __setSandboxBindingName, getSandbox, sandbox };
@@ -1,7 +1,7 @@
1
- import { a as getRawRuntimeEnv } from "../env-raw-jZpP5n47.mjs";
1
+ import { a as getRawRuntimeEnv } from "../env-raw-D74P4ebM.mjs";
2
2
  import { t as UsageLimit } from "../limits-D0vD1M9A.mjs";
3
- import { a as requireRuntimeBinding } from "../env-DMA3cXZt.mjs";
4
- import { n as SandboxContainer, r as validateSandboxOptions } from "../sandbox-container-C6ItmVuN.mjs";
3
+ import { a as requireRuntimeBinding } from "../env-0jrMQJI_.mjs";
4
+ import { i as validateSandboxOptions, n as SANDBOX_PORT_HEADER, r as SandboxContainer } from "../sandbox-container-a9LRUtii.mjs";
5
5
  export * from "@cloudflare/sandbox";
6
6
  //#region src/runtime/sandbox.ts
7
7
  const DEFAULT_SANDBOX_ID = "default";
@@ -73,7 +73,7 @@ function encodeOptions(value) {
73
73
  finish
74
74
  };
75
75
  }
76
- function client(capability) {
76
+ function client(capability, nativeFetch) {
77
77
  const call = async (operation, args) => {
78
78
  try {
79
79
  return await capability.invoke(operation, args);
@@ -149,7 +149,14 @@ function client(capability) {
149
149
  run: async (argv, options) => {
150
150
  return (await execute(argv, options)).output();
151
151
  },
152
- fetch: async (port, request) => await call("fetch", [port, request]),
152
+ fetch: async (port, request) => {
153
+ if (request.headers.get("upgrade")?.toLowerCase() !== "websocket") return await call("fetch", [port, request]);
154
+ if (!Number.isInteger(port) || port < 1 || port > 65535) throw new TypeError("Invalid Sandbox TCP port.");
155
+ if (!nativeFetch) throw new SandboxUnavailableError("Sandbox WebSockets require a native Cloudflare deployment.");
156
+ const headers = new Headers(request.headers);
157
+ headers.set(SANDBOX_PORT_HEADER, String(port));
158
+ return nativeFetch(new Request(request, { headers }));
159
+ },
153
160
  running: async () => await call("running", []),
154
161
  destroy: async () => {
155
162
  await call("destroy", []);
@@ -183,7 +190,7 @@ async function getSandbox(id = DEFAULT_SANDBOX_ID, options = {}) {
183
190
  if (env.__PROJECT_ID !== void 0 || env.__VOID_PROXY !== void 0) throw new SandboxUnavailableError("This deployment has no managed Sandbox controller. Redeploy this application.");
184
191
  const stub = requireRuntimeBinding(binding).getByName(id);
185
192
  await stub.configure(sandboxOptions);
186
- return client(stub);
193
+ return client(stub, (request) => stub.fetch(request));
187
194
  }
188
195
  const sandbox = { get: getSandbox };
189
196
  //#endregion
@@ -32,4 +32,5 @@ type FallbackSeedContext<TSchema extends Record<string, unknown>> = SchemaHasSql
32
32
  export type SeedContext<TSchema extends Record<string, unknown> = Record<string, never>> = (SchemaHasSqliteTables<TSchema> extends true ? SqliteSeedContext<TSchema> : never) | (SchemaHasPostgresTables<TSchema> extends true ? PostgresSeedContext<TSchema> : never) | (SchemaHasMySqlTables<TSchema> extends true ? MySqlSeedContext<TSchema> : never) | FallbackSeedContext<TSchema>;
33
33
  export type SeedFn<TSchema extends Record<string, unknown> = Record<string, never>> = (context: SeedContext<TSchema>) => void | Promise<void>;
34
34
  export declare function defineSeed<TSchema extends Record<string, unknown> = Record<string, never>>(seed: SeedFn<TSchema>): SeedFn<TSchema>;
35
- //#endregion
35
+ //#endregion
36
+ export {};
@@ -1,2 +1 @@
1
- import { a as getLastEventId, i as formatSseText, n as eventStream, r as formatSse, t as SseStreamClosedError } from "../sse-CMvCgjNk.mjs";
2
- export { SseStreamClosedError, eventStream, formatSse, formatSseText, getLastEventId };
1
+ export { t as SseStreamClosedError, n as eventStream, r as formatSse, i as formatSseText, a as getLastEventId } from "../sse-CMvCgjNk.mjs";
@@ -1,4 +1,4 @@
1
- import { a as requireRuntimeBinding } from "../env-DMA3cXZt.mjs";
1
+ import { a as requireRuntimeBinding } from "../env-0jrMQJI_.mjs";
2
2
  //#region src/runtime/storage.ts
3
3
  /** Create a storage client for a specific R2Bucket instance. */
4
4
  function createStorage(bucket) {