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,6 +1,11 @@
1
- import { $ as wrapTextWithPrefix, G as promptTitle, M as getGuide, V as optionText, b as S_RADIO_ACTIVE, d as S_CHECKBOX_SELECTED, i as S_BAR_END, it as wrapAnsi, j as formatInstructionFooter, n as SELECT_INSTRUCTIONS, r as S_BAR, t as MULTISELECT_INSTRUCTIONS, u as S_CHECKBOX_INACTIVE, w as S_STEP_SUBMIT } from "./dist-D3m88sjf.mjs";
2
- import { l as import_picocolors } from "./output-C50ag2r3.mjs";
1
+ import { $ as wrapTextWithPrefix, G as promptTitle, M as getGuide, V as optionText, b as S_RADIO_ACTIVE, d as S_CHECKBOX_SELECTED, i as S_BAR_END, it as wrapAnsi, j as formatInstructionFooter, n as SELECT_INSTRUCTIONS, r as S_BAR, t as MULTISELECT_INSTRUCTIONS, u as S_CHECKBOX_INACTIVE, w as S_STEP_SUBMIT } from "./dist-BVdsO7Py.mjs";
2
+ import { f as import_picocolors } from "./output-Ba6ZbrzY.mjs";
3
3
  //#region src/cli/subcommand-prompt.ts
4
+ const isUpKey = (key) => key === "\x1B[A" || key === "\x1BOA";
5
+ const isDownKey = (key) => key === "\x1B[B" || key === "\x1BOB";
6
+ const isEnterKey = (key) => key === "\r" || key === "\n";
7
+ const isBackspaceKey = (key) => key === "" || key === "\b";
8
+ const isPrintableKey = (key) => key.length === 1 && key >= " ";
4
9
  function promptSubcommand(command, subcommands) {
5
10
  return new Promise((resolve) => {
6
11
  const { stdin, stdout } = process;
@@ -51,6 +56,10 @@ function promptSubcommand(command, subcommands) {
51
56
  function renderOption(marker, label, focused, suffix = "") {
52
57
  return guidePrefix() + optionText(stdout, marker + " ", label, focused ? (value) => import_picocolors.default.blue(import_picocolors.default.bold(value)) : import_picocolors.default.dim, suffix);
53
58
  }
59
+ function checkboxMarker(selected, focused) {
60
+ const checkbox = selected ? import_picocolors.default.blue(S_CHECKBOX_SELECTED) : focused ? import_picocolors.default.blue(S_CHECKBOX_INACTIVE) : import_picocolors.default.dim(S_CHECKBOX_INACTIVE);
61
+ return (focused ? import_picocolors.default.blue(S_RADIO_ACTIVE) : " ") + " " + checkbox;
62
+ }
54
63
  function instructions(items) {
55
64
  return formatInstructionFooter(items, getGuide(), stdout);
56
65
  }
@@ -112,7 +121,6 @@ function promptSubcommand(command, subcommands) {
112
121
  const flag = flags[i];
113
122
  const state = flagStates[i];
114
123
  const isFocused = i === cursor;
115
- const checkbox = state.enabled ? import_picocolors.default.blue(S_CHECKBOX_SELECTED) : isFocused ? import_picocolors.default.blue(S_CHECKBOX_INACTIVE) : import_picocolors.default.dim(S_CHECKBOX_INACTIVE);
116
124
  const name = flag.name.padEnd(maxFlag);
117
125
  let valueText = "";
118
126
  if (flag.arg) {
@@ -121,8 +129,7 @@ function promptSubcommand(command, subcommands) {
121
129
  valueText = ` ${isFocused ? import_picocolors.default.blue(value) : import_picocolors.default.dim(value)}`;
122
130
  } else valueText = ` ${import_picocolors.default.dim(flag.arg)}`;
123
131
  }
124
- const pointer = isFocused ? import_picocolors.default.blue(S_RADIO_ACTIVE) : " ";
125
- lines.push(renderOption(pointer + " " + checkbox, name, isFocused, valueText));
132
+ lines.push(renderOption(checkboxMarker(state.enabled, isFocused), name, isFocused, valueText));
126
133
  }
127
134
  writeFrame(headerLine(), lines, [guidePrefix() + import_picocolors.default.dim(focused.description), ...instructions(MULTISELECT_INSTRUCTIONS)]);
128
135
  }
@@ -131,13 +138,9 @@ function promptSubcommand(command, subcommands) {
131
138
  const lines = [];
132
139
  const maxLabel = Math.max(...options.map((o) => o.label.length));
133
140
  for (let i = 0; i < options.length; i++) {
134
- const opt = options[i];
135
- const selected = multiSelectStates[i];
136
141
  const isFocused = i === cursor;
137
- const checkbox = selected ? import_picocolors.default.blue(S_CHECKBOX_SELECTED) : isFocused ? import_picocolors.default.blue(S_CHECKBOX_INACTIVE) : import_picocolors.default.dim(S_CHECKBOX_INACTIVE);
138
- const label = opt.label.padEnd(maxLabel);
139
- const pointer = isFocused ? import_picocolors.default.blue(S_RADIO_ACTIVE) : " ";
140
- lines.push(renderOption(pointer + " " + checkbox, label, isFocused));
142
+ const label = options[i].label.padEnd(maxLabel);
143
+ lines.push(renderOption(checkboxMarker(multiSelectStates[i], isFocused), label, isFocused));
141
144
  }
142
145
  writeFrame(headerLine(), lines, instructions(MULTISELECT_INSTRUCTIONS));
143
146
  }
@@ -214,35 +217,39 @@ function promptSubcommand(command, subcommands) {
214
217
  }
215
218
  finalize();
216
219
  }
220
+ function moveCursor(key, length) {
221
+ if (isUpKey(key)) {
222
+ cursor = cursor === 0 ? length - 1 : cursor - 1;
223
+ return true;
224
+ }
225
+ if (isDownKey(key)) {
226
+ cursor = (cursor + 1) % length;
227
+ return true;
228
+ }
229
+ return false;
230
+ }
217
231
  function handleSelectKey(key) {
218
232
  const focused = subcommands[cursor];
219
- if (key === "\x1B[A" || key === "\x1BOA") {
220
- cursor = cursor === 0 ? subcommands.length - 1 : cursor - 1;
221
- input = "";
222
- render();
223
- return;
224
- }
225
- if (key === "\x1B[B" || key === "\x1BOB") {
226
- cursor = (cursor + 1) % subcommands.length;
233
+ if (moveCursor(key, subcommands.length)) {
227
234
  input = "";
228
235
  render();
229
236
  return;
230
237
  }
231
- if (key === "\r" || key === "\n") {
238
+ if (isEnterKey(key)) {
232
239
  if (focused.arg && focused.arg.startsWith("<") && input.length === 0) return;
233
240
  selectedSub = focused;
234
241
  selectedArg = focused.arg ? input || void 0 : void 0;
235
242
  advancePhase();
236
243
  return;
237
244
  }
238
- if (key === "" || key === "\b") {
245
+ if (isBackspaceKey(key)) {
239
246
  if (focused.arg && input.length > 0) {
240
247
  input = input.slice(0, -1);
241
248
  render();
242
249
  }
243
250
  return;
244
251
  }
245
- if (focused.arg && key.length === 1 && key >= " ") {
252
+ if (focused.arg && isPrintableKey(key)) {
246
253
  input += key;
247
254
  render();
248
255
  }
@@ -251,13 +258,7 @@ function promptSubcommand(command, subcommands) {
251
258
  const flags = selectedSub.flags;
252
259
  const focused = flags[cursor];
253
260
  const state = flagStates[cursor];
254
- if (key === "\x1B[A" || key === "\x1BOA") {
255
- cursor = cursor === 0 ? flags.length - 1 : cursor - 1;
256
- render();
257
- return;
258
- }
259
- if (key === "\x1B[B" || key === "\x1BOB") {
260
- cursor = (cursor + 1) % flags.length;
261
+ if (moveCursor(key, flags.length)) {
261
262
  render();
262
263
  return;
263
264
  }
@@ -267,21 +268,21 @@ function promptSubcommand(command, subcommands) {
267
268
  render();
268
269
  return;
269
270
  }
270
- if (key === "\r" || key === "\n") {
271
+ if (isEnterKey(key)) {
271
272
  for (let i = 0; i < flags.length; i++) if (flagStates[i].enabled && flags[i].arg && flagStates[i].value.length === 0) return;
272
273
  for (let i = 0; i < flags.length; i++) if (flagStates[i].enabled) selectedFlags[flags[i].name] = flags[i].arg ? flagStates[i].value : true;
273
274
  advancePhase();
274
275
  return;
275
276
  }
276
- if (key === "" || key === "\b") {
277
+ if (isBackspaceKey(key)) {
277
278
  if (focused.arg && state.enabled && state.value.length > 0) {
278
279
  state.value = state.value.slice(0, -1);
279
280
  render();
280
281
  }
281
282
  return;
282
283
  }
283
- if (focused.arg && key.length === 1 && key >= " ") {
284
- if (!state.enabled) state.enabled = true;
284
+ if (focused.arg && isPrintableKey(key)) {
285
+ state.enabled = true;
285
286
  state.value += key;
286
287
  render();
287
288
  }
@@ -289,13 +290,7 @@ function promptSubcommand(command, subcommands) {
289
290
  function handleMultiSelectKey(key) {
290
291
  const followUp = selectedSub.followUp;
291
292
  const options = followUp.options;
292
- if (key === "\x1B[A" || key === "\x1BOA") {
293
- cursor = cursor === 0 ? options.length - 1 : cursor - 1;
294
- render();
295
- return;
296
- }
297
- if (key === "\x1B[B" || key === "\x1BOB") {
298
- cursor = (cursor + 1) % options.length;
293
+ if (moveCursor(key, options.length)) {
299
294
  render();
300
295
  return;
301
296
  }
@@ -304,7 +299,7 @@ function promptSubcommand(command, subcommands) {
304
299
  render();
305
300
  return;
306
301
  }
307
- if (key === "\r" || key === "\n") {
302
+ if (isEnterKey(key)) {
308
303
  const selected = options.filter((_, i) => multiSelectStates[i]);
309
304
  if (selected.length === 0) return;
310
305
  selectedFlags[followUp.flag] = selected.map((o) => o.value).join(",");
@@ -313,7 +308,7 @@ function promptSubcommand(command, subcommands) {
313
308
  }
314
309
  }
315
310
  function handleRepeatInputKey(key) {
316
- if (key === "\r" || key === "\n") {
311
+ if (isEnterKey(key)) {
317
312
  if (repeatInput.length > 0) {
318
313
  repeatEntries.push(repeatInput);
319
314
  repeatInput = "";
@@ -321,14 +316,14 @@ function promptSubcommand(command, subcommands) {
321
316
  } else finalize();
322
317
  return;
323
318
  }
324
- if (key === "" || key === "\b") {
319
+ if (isBackspaceKey(key)) {
325
320
  if (repeatInput.length > 0) {
326
321
  repeatInput = repeatInput.slice(0, -1);
327
322
  render();
328
323
  }
329
324
  return;
330
325
  }
331
- if (key.length === 1 && key >= " ") {
326
+ if (isPrintableKey(key)) {
332
327
  repeatInput += key;
333
328
  render();
334
329
  }
@@ -15,4 +15,5 @@ export declare function mergeVoidSvelteKitTsconfig(config: Tsconfig, options?: V
15
15
  * Compose a user SvelteKit tsconfig hook with Void's generated type aliases.
16
16
  */
17
17
  export declare function withVoidTSConfig(hook?: TsconfigHook, options?: VoidSvelteKitTsconfigOptions): TsconfigHook;
18
- //#endregion
18
+ //#endregion
19
+ export {};
@@ -1,4 +1,4 @@
1
- import { a as join, i as isAbsolute, u as resolve } from "./dist-BVqXeR_h.mjs";
1
+ import { a as join, c as resolve, i as isAbsolute } from "./dist-ipQi0Q8y.mjs";
2
2
  import { existsSync, readFileSync } from "node:fs";
3
3
  //#region src/sveltekit.ts
4
4
  /**
@@ -0,0 +1 @@
1
+ export { i as validateMigrations } from "./validate-CheZGRE7.mjs";
@@ -1,7 +1,8 @@
1
- import { a as join } from "./dist-BVqXeR_h.mjs";
2
- import { n as readJournal, r as stripSqlExt } from "./collect-DiTn9yr6.mjs";
1
+ import { a as join } from "./dist-ipQi0Q8y.mjs";
2
+ import { n as readJournal, r as stripSqlExt } from "./collect-xjffdCdk.mjs";
3
3
  import { i as getExecutableSql, t as DESTRUCTIVE_PRAGMA } from "./plan-BhLO2p4w.mjs";
4
4
  import { existsSync, readdirSync } from "node:fs";
5
+ import { hasStandalonePragma } from "@void/deploy-core";
5
6
  //#region src/migrations/validate.ts
6
7
  /**
7
8
  * Destructive SQL patterns that are rejected unless the migration
@@ -13,8 +14,6 @@ const DESTRUCTIVE_PATTERNS = [
13
14
  /\bDROP\s+INDEX\b/i,
14
15
  /\bDROP\s+TRIGGER\b/i,
15
16
  /\bALTER\s+TABLE\b[\s\S]*\bDROP\s+COLUMN\b/i,
16
- /\bALTER\s+TABLE\b[\s\S]*\bRENAME\s+TO\b/i,
17
- /\bALTER\s+TABLE\b[\s\S]*\bRENAME\s+COLUMN\b/i,
18
17
  /\bALTER\s+TABLE\b[\s\S]*\bRENAME\b[\s\S]*\bTO\b/i,
19
18
  /\bTRUNCATE\b/i,
20
19
  /\bINSERT\s+OR\s+REPLACE\b/i
@@ -53,9 +52,6 @@ function isDestructive(sql) {
53
52
  return DESTRUCTIVE_PATTERNS.some((pattern) => pattern.test(statement)) || hasUnboundedWrite(statement);
54
53
  });
55
54
  }
56
- function hasDestructivePragma(sql) {
57
- return sql.replace(/\r\n?/g, "\n").split("\n").some((line) => line.trim() === DESTRUCTIVE_PRAGMA);
58
- }
59
55
  /**
60
56
  * Validate migration files. Returns the validated list with destructive flags.
61
57
  * Throws if any destructive migration lacks the allow-destructive pragma.
@@ -65,7 +61,7 @@ function validateMigrations(files) {
65
61
  const errors = [];
66
62
  for (const file of files) {
67
63
  const destructive = isDestructive(file.sql);
68
- if (destructive && !hasDestructivePragma(file.sql)) errors.push(file.name);
64
+ if (destructive && !hasStandalonePragma(file.sql, "-- void:allow-destructive")) errors.push(file.name);
69
65
  results.push({
70
66
  name: file.name,
71
67
  sql: file.sql,
@@ -0,0 +1,73 @@
1
+ import { a as join } from "./dist-ipQi0Q8y.mjs";
2
+ import { l as bindingNamesForField, p as findBindingNameOwner } from "./wrangler-BYs07Rxy.mjs";
3
+ //#region src/shared/untrusted-env.ts
4
+ /** Authentication inputs that Wrangler may consume from the environment. */
5
+ const WRANGLER_AUTH_CREDENTIAL_ENV_VARS = [
6
+ "CLOUDFLARE_API_TOKEN",
7
+ "CF_API_TOKEN",
8
+ "CLOUDFLARE_API_KEY",
9
+ "CF_API_KEY",
10
+ "CLOUDFLARE_EMAIL",
11
+ "CF_EMAIL",
12
+ "CLOUDFLARE_API_USER_SERVICE_KEY",
13
+ "WRANGLER_CF_AUTHORIZATION_TOKEN",
14
+ "WRANGLER_R2_SQL_AUTH_TOKEN",
15
+ "CLOUDFLARE_ACCESS_CLIENT_ID",
16
+ "CLOUDFLARE_ACCESS_CLIENT_SECRET",
17
+ "CF_ACCESS_TOKEN"
18
+ ];
19
+ /** Credentials owned by the deploy orchestrator, never by project code. */
20
+ const UNTRUSTED_PROJECT_CODE_ENV_VARS = [
21
+ ...WRANGLER_AUTH_CREDENTIAL_ENV_VARS,
22
+ "CF_ACCESS_CLIENT_ID",
23
+ "CF_ACCESS_CLIENT_SECRET",
24
+ "VOID_ACCESS_CREDENTIALS",
25
+ "VOID_ACCESS_ORIGIN",
26
+ "VOID_TOKEN",
27
+ "DATABASE_URL",
28
+ "ACTIONS_ID_TOKEN_REQUEST_URL",
29
+ "ACTIONS_ID_TOKEN_REQUEST_TOKEN"
30
+ ];
31
+ function scrubEnvironmentVariables(env, names) {
32
+ const blocked = new Set(names.map((name) => name.toLowerCase()));
33
+ for (const key of Object.keys(env)) if (blocked.has(key.toLowerCase())) delete env[key];
34
+ }
35
+ /** Build an environment safe for a child that imports or executes project code. */
36
+ function buildEnv(extra, options) {
37
+ const env = {
38
+ ...process.env,
39
+ ...extra
40
+ };
41
+ scrubEnvironmentVariables(env, UNTRUSTED_PROJECT_CODE_ENV_VARS);
42
+ if (options?.localBinRoot === void 0) return env;
43
+ const binDir = join(options.localBinRoot, "node_modules", ".bin");
44
+ const delimiter = process.platform === "win32" ? ";" : ":";
45
+ const pathKey = Object.keys(env).find((key) => key.toLowerCase() === "path") ?? "PATH";
46
+ const existing = env[pathKey];
47
+ env[pathKey] = existing ? `${binDir}${delimiter}${existing}` : binDir;
48
+ return env;
49
+ }
50
+ //#endregion
51
+ //#region src/shared/version-metadata.ts
52
+ /** Build-only marker: an existing-site handoff must not add Worker bindings. */
53
+ const CLOUDFLARE_PRESERVE_BINDINGS_BUILD_ENV = "VOID_CLOUDFLARE_PRESERVE_BINDINGS";
54
+ const DEFAULT_VERSION_METADATA_BINDING = "__VOID_VERSION_METADATA";
55
+ /** Keep the authored singleton name, and reject a cross-type binding collision. */
56
+ function readVersionMetadataBinding(config) {
57
+ const name = bindingNamesForField("version_metadata", config.version_metadata)[0];
58
+ if (!name) return;
59
+ const owner = findBindingNameOwner(config, "version_metadata", name);
60
+ if (owner) throw new Error(`Cloudflare version metadata binding ${name} conflicts with ${owner}.`);
61
+ return name;
62
+ }
63
+ /** Self-metadata adds no remote resource or plan entitlement. */
64
+ function selectNativeVersionMetadataBinding(config, options) {
65
+ if (!options.nativeBuild) return;
66
+ const authored = readVersionMetadataBinding(config);
67
+ if (authored || options.preserveBindings) return authored;
68
+ const owner = findBindingNameOwner(config, "version_metadata", DEFAULT_VERSION_METADATA_BINDING);
69
+ if (owner) throw new Error(`Cloudflare version metadata binding ${DEFAULT_VERSION_METADATA_BINDING} conflicts with ${owner}.`);
70
+ return DEFAULT_VERSION_METADATA_BINDING;
71
+ }
72
+ //#endregion
73
+ export { buildEnv as a, WRANGLER_AUTH_CREDENTIAL_ENV_VARS as i, readVersionMetadataBinding as n, selectNativeVersionMetadataBinding as r, CLOUDFLARE_PRESERVE_BINDINGS_BUILD_ENV as t };