void 0.26.0 → 0.27.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 (365) hide show
  1. package/AGENTS_TEMPLATE.md +1 -3
  2. package/README.md +19 -9
  3. package/dist/{account-cmd-CDry3B5V.mjs → account-cmd-l-FM7Ioq.mjs} +8 -7
  4. package/dist/{application-analysis-DC2yPvzY.mjs → application-analysis-DKy02UY0.mjs} +21 -32
  5. package/dist/{application-routing-C9khgLiS.mjs → application-routing-DQyUh_5S.mjs} +1 -1
  6. package/dist/{auth-D52yG7hl.mjs → auth-Dn2vw-SG.mjs} +9 -9
  7. package/dist/{auth-B60QDbjg.mjs → auth-LMJcNESe.mjs} +1 -1
  8. package/dist/{auth-link-DjeOptYi.mjs → auth-link-vz9Z2kmG.mjs} +5 -5
  9. package/dist/{auth-migrations-9vif1uj8.mjs → auth-migrations-BwHgeEsD.mjs} +8 -18
  10. package/dist/{auth-router-BRxIuqDi.mjs → auth-router-DvsCUVw4.mjs} +6 -19
  11. package/dist/{better-auth-shared-BVkjZ3vM.d.mts → better-auth-shared-CPvWD3nG.d.mts} +0 -4
  12. package/dist/{better-auth-shared-hy6RPh9W.mjs → better-auth-shared-DPpj8zxc.mjs} +94 -16
  13. package/dist/{build-cmd-Ce3C8huo.mjs → build-cmd-D6we0VjO.mjs} +8 -7
  14. package/dist/{cache-CS8Yxr5a.mjs → cache-CZRdzKx1.mjs} +8 -8
  15. package/dist/{cancel-deploy-mZsD88Xa.mjs → cancel-deploy-CQ3NnMvf.mjs} +6 -5
  16. package/dist/{cf-access-YTlqvAsk.mjs → cf-access-BcIBSKqG.mjs} +11 -12
  17. package/dist/{cf-build-output-U8o1Gl6X.mjs → cf-build-output-DjvB_872.mjs} +62 -85
  18. package/dist/cf-build-output-H9a97vME.mjs +2 -0
  19. package/dist/cf-user-agent-lKblH3zU.mjs +17 -0
  20. package/dist/cli/cli.mjs +48 -83
  21. package/dist/cli/cloudflare-operation-process.mjs +78 -78
  22. package/dist/cli/env-schema-probe.mjs +5 -6
  23. package/dist/{client-mC-dFGDD.mjs → client-DlDJuY0s.mjs} +30 -8
  24. package/dist/client-tso2OfcG.mjs +2 -0
  25. package/dist/{cloudflare-auth-Qdc7tw8F.mjs → cloudflare-auth-CuxfF6OA.mjs} +9 -17
  26. package/dist/{cloudflare-cmd-bhwCxAN6.mjs → cloudflare-cmd-lHqNlJGW.mjs} +6 -5
  27. package/dist/{cloudflare-config-Bktvwtpf.mjs → cloudflare-config-BmhBv3HV.mjs} +1 -1
  28. package/dist/{cloudflare-connect-CuhRgk3k.mjs → cloudflare-connect-2G3rL2rP.mjs} +4 -4
  29. package/dist/{cloudflare-operations-DoQrVHAt.mjs → cloudflare-operations-BlYLlowZ.mjs} +1 -1
  30. package/dist/{cloudflare-operations-DYa3coIk.mjs → cloudflare-operations-CwI1bChl.mjs} +41 -70
  31. package/dist/{cloudflare-process-B-wekeR6.mjs → cloudflare-process-2-TfIEzB.mjs} +20 -22
  32. package/dist/{config-CyQ-wVd7.mjs → config-5r-YpMC-.mjs} +1 -1
  33. package/dist/{config-C_XRIPx2.mjs → config-B_ggY-IO.mjs} +3 -3
  34. package/dist/config-BtSFvXZx.mjs +2 -0
  35. package/dist/config-CLYAosnQ.mjs +78 -0
  36. package/dist/{config-BMHb8RCj.d.mts → config-CSa15FvD.d.mts} +1 -1
  37. package/dist/{config-Br_JZD6u.mjs → config-DiowPT80.mjs} +24 -30
  38. package/dist/config-entry.d.mts +1 -1
  39. package/dist/{config-write-B1f88wJA.mjs → config-write-AHGesphx.mjs} +8 -7
  40. package/dist/{connect-H6EvP62X.mjs → connect-BfPBHHm-.mjs} +12 -11
  41. package/dist/{create-project-B2kk9Q0o.mjs → create-project-BdXEFKal.mjs} +7 -7
  42. package/dist/{create-project-Dbb4uiN-.mjs → create-project-qFDC45zg.mjs} +1 -1
  43. package/dist/{db-DpCKZto0.mjs → db-Xs80hcaA.mjs} +101 -133
  44. package/dist/{delete-CxlSvsvW.mjs → delete-d2vuou3j.mjs} +7 -7
  45. package/dist/{deploy-CeEbnv4b.mjs → deploy-Bqe1PYBw.mjs} +2351 -2497
  46. package/dist/deploy-VsWsVQkw.mjs +2 -0
  47. package/dist/{dev-inbox-D64ZKUod.mjs → dev-inbox-CK-UuPob.mjs} +7 -16
  48. package/dist/{discover-BcPPiF1o.mjs → discover-CkCYv9T_.mjs} +1 -2
  49. package/dist/discover-EDUf6JJw.mjs +2 -0
  50. package/dist/{prompts-ZAuJlyCj.mjs → dist-Bx1z6Eva.mjs} +1 -1
  51. package/dist/{dist-AoCzRTJE.mjs → dist-Cegxq8gs.mjs} +8 -8
  52. package/dist/{prompts-6OSVA7DJ.mjs → dist-D3m88sjf.mjs} +10 -53
  53. package/dist/{domain-B_9VgOm6.mjs → domain-BsDUBAvt.mjs} +29 -30
  54. package/dist/{dotenv-VQxupEUv.mjs → dotenv-BfU6eqFt.mjs} +20 -32
  55. package/dist/{drizzle-Beb2Am5S.mjs → drizzle-CF84FOVM.mjs} +16 -13
  56. package/dist/{email-BokHgjKj.mjs → email-_lGAHOhp.mjs} +24 -19
  57. package/dist/{email--tEtMoj_.mjs → email-d_Aux1vM.mjs} +1 -1
  58. package/dist/{entry-CF5wvH4w.mjs → entry-CMAkqBmU.mjs} +6 -6
  59. package/dist/{env-_v349JBd.mjs → env-BxocywBB.mjs} +25 -6
  60. package/dist/{env-BdTc-K2L.mjs → env-C74QepDE.mjs} +10 -10
  61. package/dist/{env-D5liuQYR.mjs → env-DMA3cXZt.mjs} +1 -1
  62. package/dist/{env-raw-Cx8ElDdj.mjs → env-raw-jZpP5n47.mjs} +1 -2
  63. package/dist/{env-types-D5kds_OZ.mjs → env-types-CwXgeMgL.mjs} +1 -1
  64. package/dist/{env-validation-cZBvGWaP.mjs → env-validation-CrVNjsPm.mjs} +1 -1
  65. package/dist/{env-validation-vBSQ8gw5.mjs → env-validation-Dxdx_5wo.mjs} +17 -21
  66. package/dist/{fetch-_SeGZao9.d.mts → fetch-BPCYVi3H.d.mts} +20 -1
  67. package/dist/{fetch-BIZJh7vR.mjs → fetch-sAcwjzLO.mjs} +1 -1
  68. package/dist/{fetch-stream-Nm3hkZbT.mjs → fetch-stream-PGgz4uGz.mjs} +18 -23
  69. package/dist/{fetch-stream-Bjf0hoZb.d.mts → fetch-stream-obvZ7fvO.d.mts} +1 -16
  70. package/dist/{gen-BhDlTpwW.mjs → gen-DtkQhvQg.mjs} +40 -57
  71. package/dist/gen-dA9hW7AV.mjs +2 -0
  72. package/dist/{github-cmd-hhkTzlGS.mjs → github-cmd-DaDdBbSS.mjs} +65 -164
  73. package/dist/{handler-DghKr6dU.mjs → handler-BHAn2fZJ.mjs} +1 -0
  74. package/dist/{handler-BeK3weD4.d.mts → handler-CNAwjRcW.d.mts} +4 -11
  75. package/dist/{head-Do8P4puT.d.mts → head-C8K_iGe6.d.mts} +1 -1
  76. package/dist/{head-D_QRR5Yd.mjs → head-D2VF4ApL.mjs} +29 -51
  77. package/dist/{headers-2rKda9Y6.mjs → headers-DlfR78Nu.mjs} +3 -3
  78. package/dist/{help-Bv44e2tm.mjs → help-0bTe_lID.mjs} +13 -32
  79. package/dist/help-DfQYVfGY.mjs +2 -0
  80. package/dist/{inbound-fRkqcXaC.mjs → inbound-PfQDLXc5.mjs} +23 -24
  81. package/dist/index.d.mts +19 -2
  82. package/dist/index.mjs +619 -532
  83. package/dist/{info-DhtTKh65.mjs → info-PYWwkWyt.mjs} +4 -4
  84. package/dist/{init-BMf4T03q.mjs → init-DaBGmaXC.mjs} +161 -198
  85. package/dist/{link-BqYsSS_I.mjs → link-C6fjafep.mjs} +10 -10
  86. package/dist/{list-_kBToO-l.mjs → list-BTFBlqKl.mjs} +9 -8
  87. package/dist/{live-CB1y5IuC.mjs → live-CgQuTpqD.mjs} +15 -16
  88. package/dist/{live-iAuEH1hd.d.mts → live-Du8jXwOW.d.mts} +4 -2
  89. package/dist/{local-d1-fGxYrVD6.mjs → local-d1-ga5O_idV.mjs} +2 -2
  90. package/dist/{login-DFuo-RWO.mjs → login-GKcNUmtI.mjs} +7 -7
  91. package/dist/login-mx_ydhmp.mjs +2 -0
  92. package/dist/{logs-DYgnh6dH.mjs → logs-BiMSULmc.mjs} +28 -11
  93. package/dist/migrate-BHp07yJE.mjs +2 -0
  94. package/dist/{migrate-CV1on-yJ.mjs → migrate-NLsjBbuM.mjs} +34 -20
  95. package/dist/{mime-D5Nmdzf7.mjs → mime-DxCznlJq.mjs} +45 -95
  96. package/dist/{node-C6Q6e1Es.mjs → node-DJicPvPj.mjs} +5 -5
  97. package/dist/{operator-args-DdY54Bgb.mjs → operator-args-DOBhIaIg.mjs} +10 -1
  98. package/dist/{operator-auth-2dsGlTT5.mjs → operator-auth-BEZ_u0Cz.mjs} +2 -2
  99. package/dist/{operator-client-BFqpp6z0.mjs → operator-client-DbDv4vtE.mjs} +2 -2
  100. package/dist/{operator-cmd-CUGHXrQf.mjs → operator-cmd-BT4hgavL.mjs} +24 -11
  101. package/dist/operator-cmd-CwBB-1yb.mjs +2 -0
  102. package/dist/{output-BvdaehtE.mjs → output-C50ag2r3.mjs} +20 -2
  103. package/dist/pages/client.d.mts +19 -51
  104. package/dist/pages/client.mjs +204 -225
  105. package/dist/pages/head-client.d.mts +1 -1
  106. package/dist/pages/head.d.mts +1 -1
  107. package/dist/pages/head.mjs +1 -1
  108. package/dist/pages/index.d.mts +2 -2
  109. package/dist/pages/index.mjs +6 -12
  110. package/dist/pages/islands-plugin.d.mts +1 -1
  111. package/dist/pages/islands-plugin.mjs +21 -25
  112. package/dist/pages/protocol.d.mts +2 -2
  113. package/dist/pages/protocol.mjs +2 -2
  114. package/dist/{plan-CJGEeTEI.mjs → plan-BhLO2p4w.mjs} +2 -1
  115. package/dist/plan-CH2G51je.mjs +2 -0
  116. package/dist/platform-args-D4E1PjVw.mjs +2 -0
  117. package/dist/{platform-args-DSV2p4nY.mjs → platform-args-DUeXY9Om.mjs} +1 -1
  118. package/dist/{platform-auth-config-Bosx7U1h.mjs → platform-auth-config-CkSx3usH.mjs} +40 -36
  119. package/dist/{platform-auth-protection-DcbL_LW_.mjs → platform-auth-protection-BJimB_p9.mjs} +9 -8
  120. package/dist/{platform-auth-recovery-WfTZ8K6o.mjs → platform-auth-recovery-BU6izFAU.mjs} +8 -7
  121. package/dist/{platform-cmd-DbKtQb_4.mjs → platform-cmd-BbY1dWiM.mjs} +14 -13
  122. package/dist/{platform-cmd-dyFUof0t.mjs → platform-cmd-BbmJiq5O.mjs} +1 -1
  123. package/dist/{platform-discovery-BC0HCKYt.mjs → platform-discovery-DIYz8V63.mjs} +1 -1
  124. package/dist/{platform-domain-Bsq43AJp.mjs → platform-domain-CHVS6cV0.mjs} +6 -6
  125. package/dist/{platform-lifecycle--5gWmDoI.mjs → platform-lifecycle-ByAlpkhV.mjs} +1 -1
  126. package/dist/{platform-lifecycle-Cfi0o6xM.mjs → platform-lifecycle-DzCwqhFq.mjs} +76 -387
  127. package/dist/{platform-management-Bbwf6-Dq.mjs → platform-management-CBOT4BSM.mjs} +1 -1
  128. package/dist/{platform-management-BrF9STZp.mjs → platform-management-CuuVDhyt.mjs} +7 -7
  129. package/dist/{platform-plans-config-DU-8nC2Y.mjs → platform-plans-config-CN-heS4q.mjs} +5 -4
  130. package/dist/{platform-recovery-DQAqAQYu.mjs → platform-recovery-CskSJgLh.mjs} +3 -3
  131. package/dist/{platform-registry-P387v42A.mjs → platform-registry-Cjv2Qf0r.mjs} +5 -1
  132. package/dist/platform-setup-BBxRxmFC.mjs +299 -0
  133. package/dist/{plugin-inference-CXWnn79A.mjs → plugin-inference-BlQbOL0P.mjs} +43 -42
  134. package/dist/prepare-DRUV-g3X.mjs +2 -0
  135. package/dist/{prepare-WoUubFKL.mjs → prepare-Do96654b.mjs} +8 -8
  136. package/dist/{prepare-BMrRWLwP.mjs → prepare-Dq9hTIbo.mjs} +4 -4
  137. package/dist/{prerender-render-D9qbLs2f.mjs → prerender-render-Ct20jftc.mjs} +17 -3
  138. package/dist/prerender-render.mjs +1 -1
  139. package/dist/{project-DQstYTxO.mjs → project-BAm2aB6Q.mjs} +1 -1
  140. package/dist/{project-BiaPQ7ur.mjs → project-DedqCp59.mjs} +1 -1
  141. package/dist/{project-cmd-BbH2LptN.mjs → project-cmd-DaoRrn-8.mjs} +19 -19
  142. package/dist/{project-team-Yiww3-go.mjs → project-team-Q_lCA7Io.mjs} +15 -18
  143. package/dist/{project-token-BrtT2NkY.mjs → project-token-BArgK9o1.mjs} +14 -17
  144. package/dist/{project-tsconfig-B8GeM0RM.mjs → project-tsconfig-CVJhNMxs.mjs} +2 -1
  145. package/dist/{project-zero-trust-nYJ2V2nc.mjs → project-zero-trust-KO9Hu2Pq.mjs} +12 -9
  146. package/dist/{protocol-BX8t2jiw.d.mts → protocol-BPZaNqBo.d.mts} +4 -2
  147. package/dist/{protocol-U7bfjHmA.mjs → protocol-CfaUwNs8.mjs} +46 -49
  148. package/dist/{providers-CJlNS3kT.mjs → providers-BXuhmuub.mjs} +1 -12
  149. package/dist/{provision-VeqAC77A.mjs → provision-BfaLiWbj.mjs} +38 -41
  150. package/dist/{provision-DMTPG8Rh.mjs → provision-Wu9ZBk9L.mjs} +2 -3
  151. package/dist/{requests-TIz_jtSu.mjs → requests-C7Oeoh5u.mjs} +5 -5
  152. package/dist/resolve-project-BIeYs9Cw.mjs +2 -0
  153. package/dist/{resolve-project-BG5ORGID.mjs → resolve-project-CP8rZs_p.mjs} +6 -1
  154. package/dist/{rollback-dBqICPzj.mjs → rollback-DVAtrLAl.mjs} +30 -37
  155. package/dist/{route-types-Clm4WD0B.mjs → route-types-CbtsIeFn.mjs} +1 -1
  156. package/dist/route-url-BgPja1GS.d.mts +5 -0
  157. package/dist/route-url-BjGv_KKY.mjs +28 -0
  158. package/dist/runner-9wjsSZx-.mjs +2 -0
  159. package/dist/{runner--2KF6Kua.mjs → runner-DMBKSrRk.mjs} +2 -2
  160. package/dist/{runner-mysql-DmWchSWJ.mjs → runner-mysql-CEzKtmFb.mjs} +8 -8
  161. package/dist/{runner-mysql-CEG5JozK.mjs → runner-mysql-CkFqZ6CE.mjs} +1 -1
  162. package/dist/{runner-pg-Bh4AgZdj.mjs → runner-pg-BGYRFdRp.mjs} +1 -1
  163. package/dist/runtime/ai.d.mts +1 -1
  164. package/dist/runtime/ai.mjs +34 -95
  165. package/dist/runtime/better-auth-mysql.d.mts +1 -1
  166. package/dist/runtime/better-auth-mysql.mjs +4 -9
  167. package/dist/runtime/better-auth-pg.d.mts +1 -1
  168. package/dist/runtime/better-auth-pg.mjs +5 -10
  169. package/dist/runtime/better-auth.d.mts +1 -1
  170. package/dist/runtime/better-auth.mjs +3 -3
  171. package/dist/runtime/client-react.d.mts +2 -3
  172. package/dist/runtime/client-react.mjs +2 -2
  173. package/dist/runtime/client-solid.d.mts +2 -3
  174. package/dist/runtime/client-solid.mjs +2 -2
  175. package/dist/runtime/client-svelte.d.mts +2 -3
  176. package/dist/runtime/client-svelte.mjs +2 -2
  177. package/dist/runtime/client-vue.d.mts +2 -3
  178. package/dist/runtime/client-vue.mjs +2 -2
  179. package/dist/runtime/client.d.mts +2 -3
  180. package/dist/runtime/client.mjs +2 -2
  181. package/dist/runtime/db.mjs +1 -1
  182. package/dist/runtime/durable.mjs +3 -10
  183. package/dist/runtime/email/testing.mjs +5 -5
  184. package/dist/runtime/email.d.mts +2 -1
  185. package/dist/runtime/email.mjs +11 -27
  186. package/dist/runtime/env-public.mjs +15 -20
  187. package/dist/runtime/env.mjs +1 -1
  188. package/dist/runtime/fetch-stream.d.mts +2 -2
  189. package/dist/runtime/fetch-stream.mjs +1 -1
  190. package/dist/runtime/fetch.d.mts +2 -3
  191. package/dist/runtime/fetch.mjs +1 -1
  192. package/dist/runtime/handler.d.mts +1 -1
  193. package/dist/runtime/handler.mjs +2 -2
  194. package/dist/runtime/isr.mjs +1 -1
  195. package/dist/runtime/kv.mjs +10 -11
  196. package/dist/runtime/live-client.d.mts +1 -1
  197. package/dist/runtime/live-client.mjs +12 -22
  198. package/dist/runtime/live-server.mjs +27 -35
  199. package/dist/runtime/live.d.mts +2 -2
  200. package/dist/runtime/live.mjs +2 -2
  201. package/dist/runtime/migration-handler.mjs +4 -81
  202. package/dist/runtime/queues.mjs +1 -1
  203. package/dist/runtime/remote/binding-handler.d.mts +2 -2
  204. package/dist/runtime/remote/binding-handler.mjs +8 -9
  205. package/dist/runtime/remote/index.mjs +27 -77
  206. package/dist/runtime/route-url.d.mts +2 -4
  207. package/dist/runtime/route-url.mjs +1 -1
  208. package/dist/runtime/routing.d.mts +1 -1
  209. package/dist/runtime/routing.mjs +15 -26
  210. package/dist/runtime/sandbox.mjs +2 -2
  211. package/dist/runtime/sse.mjs +1 -1
  212. package/dist/runtime/storage.mjs +1 -1
  213. package/dist/runtime/validator.d.mts +1 -1
  214. package/dist/runtime/ws-server.d.mts +2 -2
  215. package/dist/runtime/ws-server.mjs +30 -61
  216. package/dist/runtime/ws.d.mts +1 -1
  217. package/dist/runtime/ws.mjs +1 -1
  218. package/dist/{scan-C8dA7iM4.mjs → scan-C3uDzz6J.mjs} +12 -13
  219. package/dist/{secret-AKnNXNP5.mjs → secret-BvtB7IjY.mjs} +15 -15
  220. package/dist/{skills-BPQUGClu.mjs → skills-BgVMvQdy.mjs} +2 -2
  221. package/dist/{sse-CQNaDFFV.mjs → sse-CMvCgjNk.mjs} +1 -1
  222. package/dist/{subcommand-prompt-B6WS9Aoz.mjs → subcommand-prompt-BSlnD1fI.mjs} +2 -2
  223. package/dist/sveltekit.d.mts +0 -2
  224. package/dist/terminal-log-text-D9ACPOuG.mjs +32 -0
  225. package/dist/validate-BJr9LfXy.mjs +2 -0
  226. package/dist/{validate-ymhap6M_.mjs → validate-C9qJArv7.mjs} +9 -28
  227. package/dist/{defer-YsYDUoii.mjs → validation-error-Dg9Recn1.mjs} +11 -11
  228. package/dist/{wrangler-DhUerFkW.mjs → wrangler-D9KTuqnv.mjs} +89 -194
  229. package/dist/{ws-C79j4aED.d.mts → ws-CChrrAU-.d.mts} +1 -1
  230. package/dist/{yarn-pnp-BV4AzNul.mjs → yarn-pnp-CUX_iTPA.mjs} +19 -27
  231. package/{skills/void/docs → docs}/guide/ai.md +5 -3
  232. package/{skills/void/docs → docs}/guide/auth.md +37 -1
  233. package/{skills/void/docs → docs}/guide/database/postgresql.md +2 -2
  234. package/{skills/void/docs → docs}/guide/deployment.md +2 -2
  235. package/{skills/void/docs → docs}/guide/edge/revalidation.md +1 -1
  236. package/{skills/void/docs → docs}/guide/edge/rewrites.md +2 -4
  237. package/{skills/void/docs → docs}/guide/email/receiving.md +2 -2
  238. package/{skills/void/docs → docs}/guide/email/sending.md +0 -2
  239. package/{skills/void/docs → docs}/guide/env-vars.md +4 -0
  240. package/{skills/void/docs → docs}/guide/jobs.md +2 -2
  241. package/{skills/void/docs → docs}/guide/live.md +10 -5
  242. package/{skills/void/docs → docs}/guide/pages-routing/actions-and-forms.md +20 -8
  243. package/{skills/void/docs → docs}/guide/pages-routing/loaders.md +7 -3
  244. package/{skills/void/docs → docs}/guide/pages-routing/markdown.md +15 -23
  245. package/{skills/void/docs → docs}/guide/pages-routing/overview.md +6 -4
  246. package/{skills/void/docs → docs}/guide/platform/administration/access.md +3 -11
  247. package/{skills/void/docs → docs}/guide/platform/administration/operations.md +3 -12
  248. package/{skills/void/docs → docs}/guide/platform/administration/projects.md +1 -1
  249. package/{skills/void/docs → docs}/guide/platform/development/local.md +4 -2
  250. package/{skills/void/docs → docs}/guide/platform/development/runtime.md +1 -1
  251. package/{skills/void/docs → docs}/guide/platform/development/schema-ci.md +1 -1
  252. package/{skills/void/docs → docs}/guide/platform/installation/domains.md +3 -1
  253. package/{skills/void/docs → docs}/guide/platform/installation/first-deployment.md +4 -2
  254. package/{skills/void/docs → docs}/guide/platform/installation/maintenance.md +4 -0
  255. package/{skills/void/docs → docs}/guide/project-collaboration.md +7 -3
  256. package/{skills/void/docs → docs}/guide/queues.md +0 -2
  257. package/{skills/void/docs → docs}/guide/remote-dev.md +5 -5
  258. package/{skills/void/docs → docs}/guide/sandboxes.md +2 -2
  259. package/{skills/void/docs → docs}/guide/sse.md +0 -2
  260. package/{skills/void/docs → docs}/guide/storage.md +7 -2
  261. package/{skills/void/docs → docs}/guide/websockets.md +4 -0
  262. package/docs/integrations/agents.md +37 -0
  263. package/{skills/void/docs → docs}/integrations/frameworks/astro.md +3 -3
  264. package/{skills/void/docs → docs}/integrations/frameworks/nuxt.md +6 -2
  265. package/{skills/void/docs → docs}/integrations/hono.md +15 -7
  266. package/{skills/void/docs → docs}/integrations/nodejs-bun-deno.md +1 -0
  267. package/{skills/void/docs → docs}/reference/api/auth.md +1 -1
  268. package/{skills/void/docs → docs}/reference/api/handlers.md +4 -2
  269. package/{skills/void/docs → docs}/reference/api/pages.md +4 -0
  270. package/{skills/void/docs → docs}/reference/cli/auth.md +1 -6
  271. package/{skills/void/docs → docs}/reference/cli/database.md +3 -4
  272. package/{skills/void/docs → docs}/reference/cli/deploy.md +1 -1
  273. package/{skills/void/docs → docs}/reference/cli/generate.md +1 -1
  274. package/{skills/void/docs → docs}/reference/cli/github.md +3 -12
  275. package/{skills/void/docs → docs}/reference/cli/platform-config.md +1 -1
  276. package/{skills/void/docs → docs}/reference/cli/platform-email.md +2 -3
  277. package/{skills/void/docs → docs}/reference/cli/platform-installation.md +1 -1
  278. package/{skills/void/docs → docs}/reference/cli/platform-operations.md +3 -0
  279. package/{skills/void/docs → docs}/reference/cli/platform-users.md +2 -2
  280. package/{skills/void/docs → docs}/reference/cli/project.md +5 -4
  281. package/{skills/void/docs → docs}/reference/cli/secrets.md +3 -3
  282. package/{skills/void/docs → docs}/reference/cli/setup.md +9 -11
  283. package/{skills/void/docs → docs}/reference/cli.md +1 -1
  284. package/{skills/void/docs → docs}/reference/config.md +13 -13
  285. package/{skills/void/docs → docs}/reference/resource-inference.md +1 -16
  286. package/package.json +34 -30
  287. package/schema.json +1 -1
  288. package/skills/migrate-vite-cloudflare-to-void/SKILL.md +4 -1
  289. package/skills/void/SKILL.md +9 -5
  290. package/dist/cf-build-output-ChY6-XWP.mjs +0 -2
  291. package/dist/client-BxVixJBI.mjs +0 -2
  292. package/dist/config-0acf1oys.mjs +0 -2
  293. package/dist/config-D8MOgiQV.mjs +0 -32
  294. package/dist/deploy-qmiLE1G1.mjs +0 -2
  295. package/dist/discover-AMCBXivQ.mjs +0 -2
  296. package/dist/fetch-error-Sp1R4mZv.d.mts +0 -20
  297. package/dist/gen-qCBwH3fZ.mjs +0 -2
  298. package/dist/help-Dw5f9Xrg.mjs +0 -2
  299. package/dist/login-D7meQg_3.mjs +0 -2
  300. package/dist/migrate-CEu2X5DB.mjs +0 -2
  301. package/dist/operator-cmd-DRPvhpjM.mjs +0 -2
  302. package/dist/plan-COtUvdMA.mjs +0 -2
  303. package/dist/platform-args-Dcy_5b_Y.mjs +0 -2
  304. package/dist/prepare-BBknoZI1.mjs +0 -2
  305. package/dist/resolve-project-DtbidV4y.mjs +0 -2
  306. package/dist/route-url-CG7U-cRN.mjs +0 -15
  307. package/dist/runner-voIltZrY.mjs +0 -2
  308. package/dist/validate-pna7R3Pv.mjs +0 -2
  309. package/skills/void/docs/integrations/agents.md +0 -26
  310. package/dist/{runner-pg-D4OPlil-.mjs → runner-pg-DV8p_zjA.mjs} +4 -4
  311. package/{skills/void/docs → docs}/guide/app-types.md +0 -0
  312. package/{skills/void/docs → docs}/guide/database/d1.md +2 -2
  313. package/{skills/void/docs → docs}/guide/database/mysql.md +0 -0
  314. package/{skills/void/docs → docs}/guide/database.md +8 -8
  315. package/{skills/void/docs → docs}/guide/durable-state.md +0 -0
  316. package/{skills/void/docs → docs}/guide/edge/headers.md +0 -0
  317. package/{skills/void/docs → docs}/guide/edge/prerendering.md +0 -0
  318. package/{skills/void/docs → docs}/guide/edge/redirects.md +0 -0
  319. package/{skills/void/docs → docs}/guide/edge/static-assets.md +0 -0
  320. package/{skills/void/docs → docs}/guide/email/domains.md +0 -0
  321. package/{skills/void/docs → docs}/guide/email.md +0 -0
  322. package/{skills/void/docs → docs}/guide/index.md +0 -0
  323. package/{skills/void/docs → docs}/guide/kv.md +0 -0
  324. package/{skills/void/docs → docs}/guide/pages-routing/head.md +0 -0
  325. package/{skills/void/docs → docs}/guide/pages-routing/islands.md +2 -2
  326. package/{skills/void/docs → docs}/guide/pages-routing/layouts.md +0 -0
  327. package/{skills/void/docs → docs}/guide/pages-routing/view-transitions.md +0 -0
  328. package/{skills/void/docs → docs}/guide/platform/administration/email.md +0 -0
  329. package/{skills/void/docs → docs}/guide/platform/administration/plans.md +0 -0
  330. package/{skills/void/docs → docs}/guide/platform/administration/zero-trust.md +0 -0
  331. package/{skills/void/docs → docs}/guide/platform/installation/ci.md +0 -0
  332. package/{skills/void/docs → docs}/guide/platform/installation/credentials.md +0 -0
  333. package/{skills/void/docs → docs}/guide/platform/installation/prerequisites.md +0 -0
  334. package/{skills/void/docs → docs}/guide/platform/installation/setup.md +0 -0
  335. package/{skills/void/docs → docs}/guide/platform/installation/uninstall.md +0 -0
  336. package/{skills/void/docs → docs}/guide/platform-administration.md +0 -0
  337. package/{skills/void/docs → docs}/guide/platform-development.md +0 -0
  338. package/{skills/void/docs → docs}/guide/quickstart.md +0 -0
  339. package/{skills/void/docs → docs}/guide/self-hosted-platform.md +0 -0
  340. package/{skills/void/docs → docs}/guide/server-routing.md +3 -3
  341. package/{skills/void/docs → docs}/guide/ssg.md +0 -0
  342. package/{skills/void/docs → docs}/guide/ssr.md +0 -0
  343. package/{skills/void/docs → docs}/guide/type-safety.md +0 -0
  344. package/{skills/void/docs → docs}/guide/typed-fetch.md +0 -0
  345. package/{skills/void/docs → docs}/index.md +0 -0
  346. package/{skills/void/docs → docs}/integrations/cloudflare.md +0 -0
  347. package/{skills/void/docs → docs}/integrations/frameworks/analog.md +3 -3
  348. package/{skills/void/docs → docs}/integrations/frameworks/overview.md +0 -0
  349. package/{skills/void/docs → docs}/integrations/frameworks/react-router.md +3 -3
  350. package/{skills/void/docs → docs}/integrations/frameworks/sveltekit.md +1 -1
  351. package/{skills/void/docs → docs}/integrations/frameworks/tanstack-start.md +2 -2
  352. package/{skills/void/docs → docs}/reference/api/client.md +0 -0
  353. package/{skills/void/docs → docs}/reference/api/database.md +2 -2
  354. /package/{skills/void/docs → docs}/reference/api/durable.md +0 -0
  355. /package/{skills/void/docs → docs}/reference/api/env.md +0 -0
  356. /package/{skills/void/docs → docs}/reference/api/plugin.md +0 -0
  357. /package/{skills/void/docs → docs}/reference/api/resources.md +0 -0
  358. /package/{skills/void/docs → docs}/reference/api/rewrites.md +0 -0
  359. /package/{skills/void/docs → docs}/reference/api/types.md +0 -0
  360. /package/{skills/void/docs → docs}/reference/api.md +0 -0
  361. /package/{skills/void/docs → docs}/reference/cli/domains.md +0 -0
  362. /package/{skills/void/docs → docs}/reference/cli/email.md +0 -0
  363. /package/{skills/void/docs → docs}/reference/cli/platform-zero-trust.md +0 -0
  364. /package/{skills/void/docs → docs}/reference/cli/platform.md +0 -0
  365. /package/{skills/void/docs → docs}/reference/structure.md +0 -0
@@ -1,3 +1,3 @@
1
- import { t as FetchError } from "../fetch-error-Sp1R4mZv.mjs";
2
- import { t as fetchStream } from "../fetch-stream-Bjf0hoZb.mjs";
1
+ import { o as FetchError } from "../fetch-BPCYVi3H.mjs";
2
+ import { t as fetchStream } from "../fetch-stream-obvZ7fvO.mjs";
3
3
  export { FetchError as StreamError, fetchStream };
@@ -1,3 +1,3 @@
1
1
  import { t as FetchError } from "../fetch-error-Dj3crt0e.mjs";
2
- import { t as fetchStream } from "../fetch-stream-Nm3hkZbT.mjs";
2
+ import { t as fetchStream } from "../fetch-stream-PGgz4uGz.mjs";
3
3
  export { FetchError as StreamError, fetchStream };
@@ -1,3 +1,2 @@
1
- import { t as FetchError } from "../fetch-error-Sp1R4mZv.mjs";
2
- import { t as fetch } from "../fetch-_SeGZao9.mjs";
3
- export { FetchError, fetch };
1
+ import { a as fetch, i as QueryOption, n as MethodsOf, o as FetchError, r as ParamsOption, t as BodyOption } from "../fetch-BPCYVi3H.mjs";
2
+ export { BodyOption, FetchError, MethodsOf, ParamsOption, QueryOption, fetch };
@@ -1,3 +1,3 @@
1
1
  import { t as FetchError } from "../fetch-error-Dj3crt0e.mjs";
2
- import { t as fetch } from "../fetch-BIZJh7vR.mjs";
2
+ import { t as fetch } from "../fetch-sAcwjzLO.mjs";
3
3
  export { FetchError, fetch };
@@ -1,3 +1,3 @@
1
1
  /// <reference types="@cloudflare/workers-types" />
2
- import { C as defer, E as ValidatorSlots, S as InferProps, T as HandlerInput, _ as defineQueue, a as CloudEnv, b as Deferred, c as QueueRetryOptions, d as TypedQueueHandler, f as VoidAssetRewriteError, g as defineMiddleware, h as defineHead, i as CloudContextVariables, l as RenderAssetTags, m as defineHandler, n as CloudBindings, o as QueueBatch, p as basicAuth, r as CloudContext, s as QueueMessage, t as BasicAuthOptions, u as TypedHandler, v as defineRender, w as ValidationError, y as defineScheduled } from "../handler-BeK3weD4.mjs";
2
+ import { C as defer, E as ValidatorSlots, S as InferProps, T as HandlerInput, _ as defineQueue, a as CloudEnv, b as Deferred, c as QueueRetryOptions, d as TypedQueueHandler, f as VoidAssetRewriteError, g as defineMiddleware, h as defineHead, i as CloudContextVariables, l as RenderAssetTags, m as defineHandler, n as CloudBindings, o as QueueBatch, p as basicAuth, r as CloudContext, s as QueueMessage, t as BasicAuthOptions, u as TypedHandler, v as defineRender, w as ValidationError, y as defineScheduled } from "../handler-CNAwjRcW.mjs";
3
3
  export { BasicAuthOptions, CloudBindings, CloudContext, CloudContextVariables, CloudEnv, type Deferred, type HandlerInput, type InferProps, QueueBatch, QueueMessage, QueueRetryOptions, RenderAssetTags, TypedHandler, TypedQueueHandler, ValidationError, type ValidatorSlots, VoidAssetRewriteError, basicAuth, defer, defineHandler, defineHead, defineMiddleware, defineQueue, defineRender, defineScheduled };
@@ -1,3 +1,3 @@
1
- import { i as ValidationError, n as defer } from "../defer-YsYDUoii.mjs";
2
- import { a as defineMiddleware, c as defineScheduled, i as defineHead, n as basicAuth, o as defineQueue, r as defineHandler, s as defineRender, t as VoidAssetRewriteError } from "../handler-DghKr6dU.mjs";
1
+ import { r as defer, t as ValidationError } from "../validation-error-Dg9Recn1.mjs";
2
+ import { a as defineMiddleware, c as defineScheduled, i as defineHead, n as basicAuth, o as defineQueue, r as defineHandler, s as defineRender, t as VoidAssetRewriteError } from "../handler-BHAn2fZJ.mjs";
3
3
  export { ValidationError, VoidAssetRewriteError, basicAuth, defer, defineHandler, defineHead, defineMiddleware, defineQueue, defineRender, defineScheduled };
@@ -1,4 +1,4 @@
1
- import { a as getRawRuntimeEnv } from "../env-raw-Cx8ElDdj.mjs";
1
+ import { a as getRawRuntimeEnv } from "../env-raw-jZpP5n47.mjs";
2
2
  import { isrEdgeCacheUrlForToken, splitIsrCacheKey } from "@void/isr";
3
3
  import { denormalizeIsrPath, isrKey, isrPrefix, isrVariantPrefix, listIsrHosts } from "@void/isr/runtime";
4
4
  //#region src/runtime/isr.ts
@@ -1,4 +1,4 @@
1
- import { a as requireRuntimeBinding } from "../env-D5liuQYR.mjs";
1
+ import { a as requireRuntimeBinding } from "../env-DMA3cXZt.mjs";
2
2
  //#region src/runtime/kv.ts
3
3
  function parseValue(raw) {
4
4
  if (raw === null) return null;
@@ -11,6 +11,13 @@ function parseValue(raw) {
11
11
  function serializeValue(value) {
12
12
  return JSON.stringify(value);
13
13
  }
14
+ function toPutOptions(options) {
15
+ const opts = {};
16
+ if (options?.ttl) opts.expirationTtl = options.ttl;
17
+ if (options?.expiration) opts.expiration = options.expiration;
18
+ if (options?.metadata) opts.metadata = options.metadata;
19
+ return opts;
20
+ }
14
21
  function getListCursor(result) {
15
22
  return typeof result.cursor === "string" ? result.cursor : void 0;
16
23
  }
@@ -21,11 +28,7 @@ function createKVMap(getNS, prefix) {
21
28
  return parseValue(await getNS().get(prefixed(key)));
22
29
  },
23
30
  async put(key, value, options) {
24
- const opts = {};
25
- if (options?.ttl) opts.expirationTtl = options.ttl;
26
- if (options?.expiration) opts.expiration = options.expiration;
27
- if (options?.metadata) opts.metadata = options.metadata;
28
- await getNS().put(prefixed(key), serializeValue(value), opts);
31
+ await getNS().put(prefixed(key), serializeValue(value), toPutOptions(options));
29
32
  },
30
33
  async delete(key) {
31
34
  await getNS().delete(prefixed(key));
@@ -62,11 +65,7 @@ function createKVClient(getNS) {
62
65
  return parseValue(await getNS().get(key));
63
66
  },
64
67
  async put(key, value, options) {
65
- const opts = {};
66
- if (options?.ttl) opts.expirationTtl = options.ttl;
67
- if (options?.expiration) opts.expiration = options.expiration;
68
- if (options?.metadata) opts.metadata = options.metadata;
69
- await getNS().put(key, serializeValue(value), opts);
68
+ await getNS().put(key, serializeValue(value), toPutOptions(options));
70
69
  },
71
70
  async delete(key) {
72
71
  await getNS().delete(key);
@@ -1,4 +1,4 @@
1
- import { t as LiveClientEvent } from "../live-iAuEH1hd.mjs";
1
+ import { t as LiveClientEvent } from "../live-Du8jXwOW.mjs";
2
2
  //#region src/runtime/live-client.d.ts
3
3
  export type LiveSubscribeOptions<Data = unknown> = {
4
4
  id: string;
@@ -92,11 +92,8 @@ function connectLiveStream(url, options = {}) {
92
92
  resubscribeOnNextOpen = true;
93
93
  reconnectTimer = setTimeout(() => {
94
94
  reconnectTimer = null;
95
- if (closed || !options.keepOpen && subscriptions.size === 0) {
96
- resubscribeOnNextOpen = false;
97
- return;
98
- }
99
95
  resubscribeOnNextOpen = false;
96
+ if (closed || !options.keepOpen && subscriptions.size === 0) return;
100
97
  openSource(true).catch((error) => {
101
98
  if (!closed) reportError(error);
102
99
  });
@@ -152,12 +149,7 @@ function connectLiveStream(url, options = {}) {
152
149
  if (resubscribeWithNextFlush) {
153
150
  resubscribeWithNextFlush = false;
154
151
  const pendingIds = new Set(operations.map((operation) => operation.id));
155
- operations = [...[...subscriptions.values()].filter((subscription) => !pendingIds.has(subscription.id)).map((subscription) => ({
156
- kind: "subscribe",
157
- id: subscription.id,
158
- topic: subscription.topic,
159
- ...subscription.lastEventId !== void 0 && { lastEventId: subscription.lastEventId }
160
- })), ...operations];
152
+ operations = [...[...subscriptions.values()].filter((subscription) => !pendingIds.has(subscription.id)).map(subscribeOperation), ...operations];
161
153
  }
162
154
  const headers = new Headers(typeof options.headers === "function" ? await options.headers() : options.headers);
163
155
  headers.set("content-type", "application/json");
@@ -187,12 +179,7 @@ function connectLiveStream(url, options = {}) {
187
179
  async function resubscribeAll() {
188
180
  const activeSubscriptions = [...subscriptions.values()];
189
181
  if (activeSubscriptions.length === 0) return;
190
- await Promise.all(activeSubscriptions.map((subscription) => enqueue({
191
- kind: "subscribe",
192
- id: subscription.id,
193
- topic: subscription.topic,
194
- ...subscription.lastEventId !== void 0 && { lastEventId: subscription.lastEventId }
195
- })));
182
+ await Promise.all(activeSubscriptions.map((subscription) => enqueue(subscribeOperation(subscription))));
196
183
  }
197
184
  function closeIfIdle() {
198
185
  if (!options.keepOpen && subscriptions.size === 0) {
@@ -223,12 +210,7 @@ function connectLiveStream(url, options = {}) {
223
210
  };
224
211
  subscriptions.set(subscription.id, subscription);
225
212
  try {
226
- await enqueue({
227
- kind: "subscribe",
228
- id: subscription.id,
229
- topic: subscription.topic,
230
- ...subscription.lastEventId !== void 0 && { lastEventId: subscription.lastEventId }
231
- });
213
+ await enqueue(subscribeOperation(subscription));
232
214
  } catch (error) {
233
215
  if (subscriptionVersions.get(subscription.id) === version) {
234
216
  if (previousSubscription) {
@@ -281,5 +263,13 @@ function connectLiveStream(url, options = {}) {
281
263
  }
282
264
  };
283
265
  }
266
+ function subscribeOperation(subscription) {
267
+ return {
268
+ kind: "subscribe",
269
+ id: subscription.id,
270
+ topic: subscription.topic,
271
+ ...subscription.lastEventId !== void 0 && { lastEventId: subscription.lastEventId }
272
+ };
273
+ }
284
274
  //#endregion
285
275
  export { connectLiveStream };
@@ -1,5 +1,5 @@
1
- import { n as eventStream } from "../sse-CQNaDFFV.mjs";
2
- import { t as __getLiveBindingName } from "../live-CB1y5IuC.mjs";
1
+ import { n as eventStream } from "../sse-CMvCgjNk.mjs";
2
+ import { t as __getLiveBindingName } from "../live-CgQuTpqD.mjs";
3
3
  //#region src/runtime/live-server.ts
4
4
  const GENERATION_KEY = "connection:generation";
5
5
  const TOPIC_PRUNE_ALARM_DELAY_MS = 6e4;
@@ -185,13 +185,7 @@ function createLiveDurableObject() {
185
185
  if (this.connection === connection) this.connection = null;
186
186
  return new Response("connection queue full", { status: 410 });
187
187
  }
188
- const event = {
189
- subscriptionId: row.subscriptionId,
190
- topic: message.topic,
191
- ...message.type !== void 0 && { type: message.type },
192
- ...message.eventId !== void 0 && { eventId: message.eventId },
193
- data: message.data
194
- };
188
+ const event = liveEvent(row.subscriptionId, message);
195
189
  if (encodedLiveEventSize(event) > connection.limits.maxEncodedEventSize) return payloadTooLargeResponse(connection.limits.maxEncodedEventSize);
196
190
  connection.queued++;
197
191
  const activeConnection = connection;
@@ -247,23 +241,8 @@ function createLiveDurableObject() {
247
241
  return Response.json({ ok: true });
248
242
  }
249
243
  async publish(message) {
250
- const rows = await this.state.storage.list({ prefix: subscriberPrefix(message.streamId, message.topicKey) });
251
- const grouped = /* @__PURE__ */ new Map();
252
- for (const [key, row] of rows) {
253
- const list = grouped.get(row.connectionId) ?? [];
254
- list.push({
255
- key,
256
- row
257
- });
258
- grouped.set(row.connectionId, list);
259
- }
260
- for (const { row } of [...grouped.values()].flat()) if (encodedLiveEventSize({
261
- subscriptionId: row.subscriptionId,
262
- topic: message.topic,
263
- ...message.type !== void 0 && { type: message.type },
264
- ...message.eventId !== void 0 && { eventId: message.eventId },
265
- data: message.data
266
- }) > message.limits.maxEncodedEventSize) return payloadTooLargeResponse(message.limits.maxEncodedEventSize);
244
+ const grouped = groupByConnection(await this.state.storage.list({ prefix: subscriberPrefix(message.streamId, message.topicKey) }));
245
+ for (const { row } of [...grouped.values()].flat()) if (encodedLiveEventSize(liveEvent(row.subscriptionId, message)) > message.limits.maxEncodedEventSize) return payloadTooLargeResponse(message.limits.maxEncodedEventSize);
267
246
  const groups = [...grouped];
268
247
  for (let offset = 0; offset < groups.length; offset += LIVE_FANOUT_CONCURRENCY) {
269
248
  const batch = groups.slice(offset, offset + LIVE_FANOUT_CONCURRENCY);
@@ -303,15 +282,7 @@ function createLiveDurableObject() {
303
282
  if (rows.size > staleKeys.length) await this.schedulePruneAlarm();
304
283
  }
305
284
  async findStaleSubscriberKeys(entries, limits) {
306
- const grouped = /* @__PURE__ */ new Map();
307
- for (const [key, row] of entries) {
308
- const list = grouped.get(row.connectionId) ?? [];
309
- list.push({
310
- key,
311
- row
312
- });
313
- grouped.set(row.connectionId, list);
314
- }
285
+ const grouped = groupByConnection(entries);
315
286
  const staleKeys = [];
316
287
  const groups = [...grouped];
317
288
  for (let offset = 0; offset < groups.length; offset += LIVE_FANOUT_CONCURRENCY) {
@@ -387,6 +358,27 @@ function isStaleSubscriber(row, connection) {
387
358
  const subscription = connection.subscriptions.get(row.subscriptionId);
388
359
  return !subscription || !subscription.active || subscription.revision !== row.revision;
389
360
  }
361
+ function liveEvent(subscriptionId, message) {
362
+ return {
363
+ subscriptionId,
364
+ topic: message.topic,
365
+ ...message.type !== void 0 && { type: message.type },
366
+ ...message.eventId !== void 0 && { eventId: message.eventId },
367
+ data: message.data
368
+ };
369
+ }
370
+ function groupByConnection(entries) {
371
+ const grouped = /* @__PURE__ */ new Map();
372
+ for (const [key, row] of entries) {
373
+ const list = grouped.get(row.connectionId) ?? [];
374
+ list.push({
375
+ key,
376
+ row
377
+ });
378
+ grouped.set(row.connectionId, list);
379
+ }
380
+ return grouped;
381
+ }
390
382
  function encodedLiveEventSize(event) {
391
383
  return textEncoder.encode(JSON.stringify(event)).byteLength;
392
384
  }
@@ -1,3 +1,3 @@
1
1
  /// <reference types="@cloudflare/workers-types" />
2
- import { _ as __getLiveBindingName, a as LiveControlErrorCode, c as LiveControlOptions, d as LiveHookContext, f as LiveLimits, g as LiveSubscribeHookContext, h as LiveStreamOptions, i as LiveControlError, l as LiveControlRequest, m as LiveStream, n as LiveConnectHookContext, o as LiveControlOperation, p as LivePublishOptions, r as LiveConnectOptions, s as LiveControlOperationResult, t as LiveClientEvent, u as LiveControlResponse, v as __setLiveBindingName, y as defineLiveStream } from "../live-iAuEH1hd.mjs";
3
- export { LiveClientEvent, LiveConnectHookContext, LiveConnectOptions, LiveControlError, LiveControlErrorCode, LiveControlOperation, LiveControlOperationResult, LiveControlOptions, LiveControlRequest, LiveControlResponse, LiveHookContext, LiveLimits, LivePublishOptions, LiveStream, LiveStreamOptions, LiveSubscribeHookContext, __getLiveBindingName, __setLiveBindingName, defineLiveStream };
2
+ import { _ as __getLiveBindingName, a as LiveControlErrorCode, b as defineLiveStream, c as LiveControlOptions, d as LiveHookContext, f as LiveLimits, g as LiveSubscribeHookContext, h as LiveStreamOptions, i as LiveControlError, l as LiveControlRequest, m as LiveStream, n as LiveConnectHookContext, o as LiveControlOperation, p as LivePublishOptions, r as LiveConnectOptions, s as LiveControlOperationResult, t as LiveClientEvent, u as LiveControlResponse, v as __setLiveBindingName, y as __setLiveDev } from "../live-Du8jXwOW.mjs";
3
+ export { LiveClientEvent, LiveConnectHookContext, LiveConnectOptions, LiveControlError, LiveControlErrorCode, LiveControlOperation, LiveControlOperationResult, LiveControlOptions, LiveControlRequest, LiveControlResponse, LiveHookContext, LiveLimits, LivePublishOptions, LiveStream, LiveStreamOptions, LiveSubscribeHookContext, __getLiveBindingName, __setLiveBindingName, __setLiveDev, defineLiveStream };
@@ -1,2 +1,2 @@
1
- import { n as __setLiveBindingName, r as defineLiveStream, t as __getLiveBindingName } from "../live-CB1y5IuC.mjs";
2
- export { __getLiveBindingName, __setLiveBindingName, defineLiveStream };
1
+ import { i as defineLiveStream, n as __setLiveBindingName, r as __setLiveDev, t as __getLiveBindingName } from "../live-CgQuTpqD.mjs";
2
+ export { __getLiveBindingName, __setLiveBindingName, __setLiveDev, defineLiveStream };
@@ -1,4 +1,4 @@
1
- import { canonicalJson, splitSqlStatements } from "@void/deploy-core";
1
+ import { canonicalJson, canonicalSql, getMigrationPlanHashInput, isSingleStatement, splitSqlStatements } from "@void/deploy-core";
2
2
  //#region src/runtime/migration-handler.ts
3
3
  const SUPPORTED_CLASSIFIER_VERSION = 1;
4
4
  function createMigrationHandler(env, migrations, _dialect, runAuthMigrations, planBundle) {
@@ -361,7 +361,7 @@ async function verifyPlanBundle(migrations, planBundle) {
361
361
  const migration = migrations[index];
362
362
  const plan = planBundle.plans[index];
363
363
  if (plan.name !== migration.name || plan.dialect !== "sqlite" || plan.classifierVersion !== SUPPORTED_CLASSIFIER_VERSION) throw new Error(`invalid migration execution plan for ${migration.name}`);
364
- const sqlHash = await sha256Hex(canonicalSql$1(migration.sql));
364
+ const sqlHash = await sha256Hex(canonicalSql(migration.sql));
365
365
  if (plan.sqlHash !== sqlHash) throw new Error(`migration SQL hash mismatch for ${migration.name}`);
366
366
  const planHash = await hashPlan(plan);
367
367
  if (plan.planHash !== planHash) throw new Error(`migration plan hash mismatch for ${migration.name}`);
@@ -374,25 +374,13 @@ async function verifyPlanBundle(migrations, planBundle) {
374
374
  if (planBundle.migrationListHash !== migrationListHash) throw new Error("migration list hash mismatch");
375
375
  return planBundle;
376
376
  }
377
- function canonicalSql$1(sql) {
378
- return (sql.charCodeAt(0) === 65279 ? sql.slice(1) : sql).replace(/\r\n?/g, "\n");
379
- }
380
377
  async function sha256Hex(value) {
381
378
  const bytes = new TextEncoder().encode(value);
382
379
  const hash = await crypto.subtle.digest("SHA-256", bytes);
383
380
  return `sha256:${[...new Uint8Array(hash)].map((byte) => byte.toString(16).padStart(2, "0")).join("")}`;
384
381
  }
385
382
  async function hashPlan(plan) {
386
- const hashInput = {
387
- classifierVersion: plan.classifierVersion,
388
- dialect: plan.dialect,
389
- kind: plan.kind,
390
- name: plan.name,
391
- sqlHash: plan.sqlHash,
392
- stability: plan.stability
393
- };
394
- if (plan.kind === "breakpoint-framed") hashInput.statements = plan.statements;
395
- return sha256Hex(canonicalJson(hashInput));
383
+ return sha256Hex(canonicalJson(getMigrationPlanHashInput(plan)));
396
384
  }
397
385
  async function runD1LegacyMigrations(db, migrations) {
398
386
  await createTrackingTable(db);
@@ -412,7 +400,7 @@ async function runD1LegacyMigrations(db, migrations) {
412
400
  try {
413
401
  const statements = splitMigrationSql(migration.sql);
414
402
  if (statements.length === 1) {
415
- if (isSingleSqlStatement(statements[0])) {
403
+ if (isSingleStatement(statements[0])) {
416
404
  await db.prepare(statements[0]).run();
417
405
  await recordLegacyMigration(db, migration.name);
418
406
  } else await runUnsplitMigration(db, migration, (/* @__PURE__ */ new Date()).toISOString());
@@ -478,70 +466,5 @@ function isStatementBreakpointLine(line) {
478
466
  function hasInlineStatementBreakpoint(line) {
479
467
  return /;\s*-->\s*statement-breakpoint\s*$/.test(line.trim());
480
468
  }
481
- function isSingleSqlStatement(sql) {
482
- let statements = 0;
483
- let inStatement = false;
484
- let index = 0;
485
- while (index < sql.length) {
486
- const character = sql[index];
487
- const next = index + 1 < sql.length ? sql[index + 1] : "";
488
- if (character === "-" && next === "-") {
489
- index += 2;
490
- while (index < sql.length && sql[index] !== "\n") index++;
491
- continue;
492
- }
493
- if (character === "/" && next === "*") {
494
- index += 2;
495
- while (index < sql.length - 1 && !(sql[index] === "*" && sql[index + 1] === "/")) index++;
496
- index = Math.min(index + 2, sql.length);
497
- continue;
498
- }
499
- if (character === "'") {
500
- inStatement = true;
501
- index++;
502
- while (index < sql.length) {
503
- if (sql[index] === "'" && sql[index + 1] === "'") {
504
- index += 2;
505
- continue;
506
- }
507
- if (sql[index] === "'") {
508
- index++;
509
- break;
510
- }
511
- index++;
512
- }
513
- continue;
514
- }
515
- if (character === "\"" || character === "`" || character === "[") {
516
- inStatement = true;
517
- const close = character === "[" ? "]" : character;
518
- index++;
519
- while (index < sql.length) {
520
- if (close !== "]" && sql[index] === close && sql[index + 1] === close) {
521
- index += 2;
522
- continue;
523
- }
524
- if (sql[index] === close) {
525
- index++;
526
- break;
527
- }
528
- index++;
529
- }
530
- continue;
531
- }
532
- if (character === ";") {
533
- if (inStatement) {
534
- statements++;
535
- inStatement = false;
536
- }
537
- index++;
538
- continue;
539
- }
540
- if (character !== " " && character !== " " && character !== "\n" && character !== "\r") inStatement = true;
541
- index++;
542
- }
543
- if (inStatement) statements++;
544
- return statements === 1;
545
- }
546
469
  //#endregion
547
470
  export { createMigrationHandler };
@@ -1,4 +1,4 @@
1
- import { a as requireRuntimeBinding } from "../env-D5liuQYR.mjs";
1
+ import { a as requireRuntimeBinding } from "../env-DMA3cXZt.mjs";
2
2
  //#region src/runtime/queues.ts
3
3
  /** Typed queue producers — resolves `QUEUE_*` bindings from the active runtime environment. */
4
4
  const queues = new Proxy({}, { get(_, name) {
@@ -6,8 +6,8 @@ import { Hono } from "hono";
6
6
  * via Workers for Platforms instead of the Cloudflare REST API (~1-5ms vs ~50-200ms).
7
7
  *
8
8
  * Authenticated via `x-void-internal` header against `env.__VOID_PROXY_TOKEN`.
9
- * Response formats match the proxy's existing REST API responses so the
10
- * ProxyClient doesn't need changes.
9
+ * Response formats match the proxy's REST API responses, so ProxyClient
10
+ * handles both paths.
11
11
  */
12
12
  export declare function createBindingHandler(env: Record<string, unknown>): Hono;
13
13
  //#endregion
@@ -1,14 +1,17 @@
1
1
  import { t as parseR2Conditional } from "../../r2-conditions-D1Wk8i7b.mjs";
2
2
  import { Hono } from "hono";
3
3
  //#region src/runtime/remote/binding-handler.ts
4
+ function decodeBase64(value) {
5
+ return Uint8Array.from(atob(value), (ch) => ch.charCodeAt(0));
6
+ }
4
7
  /**
5
8
  * Creates a Hono app that handles `/__void/*` routes for native binding access.
6
9
  * Deployed user workers expose this so the proxy can dispatch D1/KV/R2 operations
7
10
  * via Workers for Platforms instead of the Cloudflare REST API (~1-5ms vs ~50-200ms).
8
11
  *
9
12
  * Authenticated via `x-void-internal` header against `env.__VOID_PROXY_TOKEN`.
10
- * Response formats match the proxy's existing REST API responses so the
11
- * ProxyClient doesn't need changes.
13
+ * Response formats match the proxy's REST API responses, so ProxyClient
14
+ * handles both paths.
12
15
  */
13
16
  function createBindingHandler(env) {
14
17
  const app = new Hono();
@@ -102,12 +105,8 @@ function createBindingHandler(env) {
102
105
  if (body.expiration) opts.expiration = body.expiration;
103
106
  if (body.expiration_ttl) opts.expirationTtl = body.expiration_ttl;
104
107
  let value;
105
- if (body.base64 && typeof body.value === "string") {
106
- const binary = atob(body.value);
107
- const bytes = new Uint8Array(binary.length);
108
- for (let i = 0; i < binary.length; i++) bytes[i] = binary.charCodeAt(i);
109
- value = bytes.buffer;
110
- } else value = typeof body.value === "string" ? body.value : JSON.stringify(body.value);
108
+ if (body.base64 && typeof body.value === "string") value = decodeBase64(body.value).buffer;
109
+ else value = typeof body.value === "string" ? body.value : JSON.stringify(body.value);
111
110
  await kv.put(body.key, value, opts);
112
111
  return c.json({ success: true });
113
112
  });
@@ -153,7 +152,7 @@ function createBindingHandler(env) {
153
152
  if (!body.binding || !body.key) return c.json({ error: "binding and key required" }, 400);
154
153
  const bucket = env[body.binding];
155
154
  if (!bucket) return c.json({ error: `unknown binding "${body.binding}"` }, 404);
156
- const data = body.base64 ? Uint8Array.from(atob(body.base64), (ch) => ch.charCodeAt(0)) : new TextEncoder().encode(body.value ?? "");
155
+ const data = body.base64 ? decodeBase64(body.base64) : new TextEncoder().encode(body.value ?? "");
157
156
  let onlyIf;
158
157
  try {
159
158
  if (body.onlyIf !== void 0 || c.req.path.endsWith("/put-conditional")) onlyIf = parseR2Conditional(body.onlyIf);
@@ -1,6 +1,12 @@
1
1
  import { t as cfAccessHeaders } from "../../cf-access-TWNzXltp.mjs";
2
2
  import { n as serializeR2Conditional } from "../../r2-conditions-D1Wk8i7b.mjs";
3
3
  //#region src/runtime/remote/client.ts
4
+ /** Base64-encode binary values for JSON transport to the proxy. */
5
+ function bytesToBase64(bytes) {
6
+ let binary = "";
7
+ for (const byte of bytes) binary += String.fromCharCode(byte);
8
+ return btoa(binary);
9
+ }
4
10
  function readableMessage(value) {
5
11
  if (typeof value !== "string") return;
6
12
  const text = value.replace(/(?:\u001b\]|\u009d)[\s\S]*?(?:\u0007|\u001b\\|\u009c|$)/g, "").replace(/(?:\u001b\[|\u009b)[0-?]*[ -/]*[@-~]/g, "").replace(/[\u0000-\u001f\u007f-\u009f]/g, " ").trim();
@@ -118,7 +124,7 @@ var ProxyClient = class {
118
124
  //#region src/runtime/remote/d1.ts
119
125
  /**
120
126
  * D1Database implementation backed by the remote proxy.
121
- * Used during local development when `remote: true` is set in void.json.
127
+ * Used during local development when `remote: true` is set in void.config.ts.
122
128
  */
123
129
  var ProxyD1Database = class {
124
130
  client;
@@ -172,43 +178,31 @@ var ProxyD1PreparedStatement = class ProxyD1PreparedStatement {
172
178
  this._sql = sql;
173
179
  this._params = params;
174
180
  }
181
+ query(method) {
182
+ return this.client.fetch("/d1/query", {
183
+ binding: this.binding,
184
+ sql: this._sql,
185
+ params: this._params,
186
+ method
187
+ });
188
+ }
175
189
  bind(...values) {
176
190
  return new ProxyD1PreparedStatement(this.client, this.binding, this._sql, values);
177
191
  }
178
192
  async all() {
179
- return await (await this.client.fetch("/d1/query", {
180
- binding: this.binding,
181
- sql: this._sql,
182
- params: this._params,
183
- method: "all"
184
- })).json();
193
+ return await (await this.query("all")).json();
185
194
  }
186
195
  async first(col) {
187
- const row = await (await this.client.fetch("/d1/query", {
188
- binding: this.binding,
189
- sql: this._sql,
190
- params: this._params,
191
- method: "first"
192
- })).json();
196
+ const row = await (await this.query("first")).json();
193
197
  if (row === null) return null;
194
198
  if (col) return row[col];
195
199
  return row;
196
200
  }
197
201
  async run() {
198
- return await (await this.client.fetch("/d1/query", {
199
- binding: this.binding,
200
- sql: this._sql,
201
- params: this._params,
202
- method: "run"
203
- })).json();
202
+ return await (await this.query("run")).json();
204
203
  }
205
204
  async raw(options) {
206
- const data = await (await this.client.fetch("/d1/query", {
207
- binding: this.binding,
208
- sql: this._sql,
209
- params: this._params,
210
- method: "raw"
211
- })).json();
205
+ const data = await (await this.query("raw")).json();
212
206
  if (options?.columnNames) return [data.columns, ...data.results];
213
207
  return data.results;
214
208
  }
@@ -217,7 +211,7 @@ var ProxyD1PreparedStatement = class ProxyD1PreparedStatement {
217
211
  //#region src/runtime/remote/kv.ts
218
212
  /**
219
213
  * KVNamespace implementation backed by the remote proxy.
220
- * Used during local development when `remote: true` is set in void.json.
214
+ * Used during local development when `remote: true` is set in void.config.ts.
221
215
  */
222
216
  var ProxyKVNamespace = class {
223
217
  client;
@@ -281,30 +275,9 @@ var ProxyKVNamespace = class {
281
275
  let serializedValue;
282
276
  let isBase64 = false;
283
277
  if (typeof value === "string") serializedValue = value;
284
- else if (value instanceof ArrayBuffer) {
285
- const bytes = new Uint8Array(value);
286
- let binary = "";
287
- for (const byte of bytes) binary += String.fromCharCode(byte);
288
- serializedValue = btoa(binary);
289
- isBase64 = true;
290
- } else {
291
- const reader = value.getReader();
292
- const chunks = [];
293
- while (true) {
294
- const { done, value: chunk } = await reader.read();
295
- if (done) break;
296
- chunks.push(chunk);
297
- }
298
- const total = chunks.reduce((sum, c) => sum + c.length, 0);
299
- const merged = new Uint8Array(total);
300
- let offset = 0;
301
- for (const chunk of chunks) {
302
- merged.set(chunk, offset);
303
- offset += chunk.length;
304
- }
305
- let binary = "";
306
- for (const byte of merged) binary += String.fromCharCode(byte);
307
- serializedValue = btoa(binary);
278
+ else {
279
+ const buffer = value instanceof ArrayBuffer ? value : await new Response(value).arrayBuffer();
280
+ serializedValue = bytesToBase64(new Uint8Array(buffer));
308
281
  isBase64 = true;
309
282
  }
310
283
  const body = {
@@ -337,7 +310,7 @@ var ProxyKVNamespace = class {
337
310
  //#region src/runtime/remote/r2.ts
338
311
  /**
339
312
  * R2Bucket implementation backed by the remote proxy.
340
- * Used during local development when `remote: true` is set in void.json.
313
+ * Used during local development when `remote: true` is set in void.config.ts.
341
314
  */
342
315
  var ProxyR2Bucket = class {
343
316
  client;
@@ -373,26 +346,9 @@ var ProxyR2Bucket = class {
373
346
  let textValue;
374
347
  if (typeof value === "string") textValue = value;
375
348
  else if (value === null) textValue = "";
376
- else if (value instanceof ArrayBuffer) base64 = arrayBufferToBase64(value);
377
- else if (ArrayBuffer.isView(value)) base64 = arrayBufferToBase64(value.buffer, value.byteOffset, value.byteLength);
378
- else if (value instanceof Blob) base64 = arrayBufferToBase64(await value.arrayBuffer());
379
- else {
380
- const reader = value.getReader();
381
- const chunks = [];
382
- while (true) {
383
- const { done, value: chunk } = await reader.read();
384
- if (done) break;
385
- chunks.push(chunk);
386
- }
387
- const total = chunks.reduce((sum, c) => sum + c.length, 0);
388
- const merged = new Uint8Array(total);
389
- let offset = 0;
390
- for (const chunk of chunks) {
391
- merged.set(chunk, offset);
392
- offset += chunk.length;
393
- }
394
- base64 = arrayBufferToBase64(merged.buffer);
395
- }
349
+ else if (value instanceof ArrayBuffer) base64 = bytesToBase64(new Uint8Array(value));
350
+ else if (ArrayBuffer.isView(value)) base64 = bytesToBase64(new Uint8Array(value.buffer, value.byteOffset, value.byteLength));
351
+ else base64 = bytesToBase64(new Uint8Array(await new Response(value).arrayBuffer()));
396
352
  const body = {
397
353
  binding: this.binding,
398
354
  key
@@ -453,12 +409,6 @@ var ProxyR2Bucket = class {
453
409
  throw new Error("resumeMultipartUpload() is not supported with remote bindings");
454
410
  }
455
411
  };
456
- function arrayBufferToBase64(buffer, byteOffset = 0, byteLength = buffer.byteLength) {
457
- const bytes = new Uint8Array(buffer, byteOffset, byteLength);
458
- let binary = "";
459
- for (const byte of bytes) binary += String.fromCharCode(byte);
460
- return btoa(binary);
461
- }
462
412
  function makeR2Object(data) {
463
413
  return {
464
414
  key: data.key,
@@ -1,4 +1,2 @@
1
- //#region src/runtime/route-url.d.ts
2
- /** Expand complete route tokens without changing query strings or fragments. */
3
- export declare function interpolateRouteParams(path: string, params?: Record<string, string>): string;
4
- //#endregion
1
+ import { t as interpolateRouteParams } from "../route-url-BgPja1GS.mjs";
2
+ export { interpolateRouteParams };
@@ -1,2 +1,2 @@
1
- import { t as interpolateRouteParams } from "../route-url-CG7U-cRN.mjs";
1
+ import { t as interpolateRouteParams } from "../route-url-BjGv_KKY.mjs";
2
2
  export { interpolateRouteParams };
@@ -1,5 +1,5 @@
1
1
  import { t as DevCssAsset } from "../types-BAp5AEBU.mjs";
2
- import { a as handlePageMutation, i as handlePageGet } from "../protocol-BX8t2jiw.mjs";
2
+ import { a as handlePageMutation, i as handlePageGet } from "../protocol-BPZaNqBo.mjs";
3
3
  import { AsyncLocalStorage } from "node:async_hooks";
4
4
  import { Context, ExecutionContext, Hono, MiddlewareHandler } from "hono";
5
5
  //#region src/runtime/routing-errors.d.ts