void 1.4.0 → 1.6.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 (455) hide show
  1. package/README.md +1 -1
  2. package/dist/{account-cmd-HP8bixYo.mjs → account-cmd-DRhmCWcm.mjs} +7 -8
  3. package/dist/{action-key-XZ9HkWAO.mjs → action-key-XtKKbbsi.mjs} +1 -2
  4. package/dist/{agents-CuNtT0D_.mjs → agents-DRo8gzni.mjs} +2 -3
  5. package/dist/{application-analysis-DDOQwiXk.mjs → application-analysis-HRFsZOv3.mjs} +18 -24
  6. package/dist/{application-routing-4719u_kf.mjs → application-routing-P4TggvWp.mjs} +2 -3
  7. package/dist/{ast-CsZ_q_gc.mjs → ast-Cv0JwXqb.mjs} +1 -2
  8. package/dist/{ast-bindings-C3yaPs1y.mjs → ast-bindings-BkivMJIo.mjs} +6 -11
  9. package/dist/{atomic-write-Dq6R0BPN.mjs → atomic-write-DA6eD1Kp.mjs} +1 -2
  10. package/dist/{auth-g2TQbDLD.d.mts → auth-CH4PLAX1.d.mts} +0 -2
  11. package/dist/{auth-Cbqi1iVX.mjs → auth-CL-p_rqV.mjs} +1 -1
  12. package/dist/{auth-B6iOCjKI.mjs → auth-Dy8svcqQ.mjs} +6 -7
  13. package/dist/{auth-3sGB0zJ1.mjs → auth-YVjBX5NY.mjs} +1 -2
  14. package/dist/{auth-client-Bawdj38n.d.mts → auth-client-6-Ft9i9T.d.mts} +0 -2
  15. package/dist/{auth-client-BWBT8HLp.mjs → auth-client-DwCdwKbw.mjs} +1 -2
  16. package/dist/{auth-client-react-CMLwT2xI.mjs → auth-client-react-CJdeErvM.mjs} +1 -2
  17. package/dist/{auth-client-react-7GFffu8R.d.mts → auth-client-react-DvQLe5Zb.d.mts} +0 -2
  18. package/dist/{auth-client-solid-UoreJWZG.mjs → auth-client-solid-BRvgvp6h.mjs} +1 -2
  19. package/dist/{auth-client-solid-DyTFL4cq.d.mts → auth-client-solid-P9pEtKGp.d.mts} +0 -2
  20. package/dist/{auth-client-svelte-zetW0KIH.d.mts → auth-client-svelte-B5j8irT6.d.mts} +0 -2
  21. package/dist/{auth-client-svelte-Cv_WvrRk.mjs → auth-client-svelte-BSqUCEed.mjs} +1 -2
  22. package/dist/{auth-client-vue-bChShbQP.d.mts → auth-client-vue-BEiAfavk.d.mts} +0 -2
  23. package/dist/{auth-client-vue-CFk7Xbv3.mjs → auth-client-vue-CPkbRtOO.mjs} +1 -2
  24. package/dist/{auth-link-CedYpDCy.mjs → auth-link-CVXP1G6G.mjs} +7 -8
  25. package/dist/{auth-migrations-BO27GDNr.mjs → auth-migrations-DDeifS3v.mjs} +1 -2
  26. package/dist/{auth-router-vafo7x8w.mjs → auth-router-D1pGdbvB.mjs} +6 -7
  27. package/dist/{base64-DVrOndmI.mjs → base64-ikl9yBy3.mjs} +1 -2
  28. package/dist/{better-auth-shared-BHB8kiTE.d.mts → better-auth-shared-BJyG2mH0.d.mts} +2 -6
  29. package/dist/{better-auth-shared-7FM3Uk2N.mjs → better-auth-shared-C958aM7W.mjs} +31 -7
  30. package/dist/{build-cmd-9vUAQ1_V.mjs → build-cmd-DmjbuT6d.mjs} +7 -8
  31. package/dist/{cache-jvwLNb0h.mjs → cache-2khBO1MR.mjs} +7 -8
  32. package/dist/{cancel-deploy-Dw0UmWKO.mjs → cancel-deploy-_itbbvY3.mjs} +6 -7
  33. package/dist/{cf-access-CWP4avfP.mjs → cf-access-BmBT2h8_.mjs} +3 -4
  34. package/dist/{cf-access-BM9G0lhO.mjs → cf-access-pejlJmuy.mjs} +1 -2
  35. package/dist/{cf-build-output-XpNR9zoh.mjs → cf-build-output-B1C8U83u.mjs} +41 -314
  36. package/dist/cf-build-output-CmDOcA7K.mjs +1 -0
  37. package/dist/{cf-command-values-ByHk0xg4.mjs → cf-command-values-Ccl-zRhl.mjs} +10 -7
  38. package/dist/cf-config-migrate-Dy8MrKgF.mjs +326 -0
  39. package/dist/{cf-worker-settings-Dg27RzyT.mjs → cf-worker-settings-CARs4Wy9.mjs} +3 -5
  40. package/dist/cli/cli.mjs +66 -76
  41. package/dist/cli/cloudflare-operation-process.mjs +14 -18
  42. package/dist/cli/env-schema-probe.d.mts +1 -5
  43. package/dist/cli/env-schema-probe.mjs +4 -5
  44. package/dist/client-CEtr5UOR.mjs +1 -0
  45. package/dist/{client-B3LnB_bE.mjs → client-CoxPEhJq.mjs} +15 -13
  46. package/dist/{cloudflare-auth-DyD_kVFr.mjs → cloudflare-auth-CEu-1Ps_.mjs} +2 -3
  47. package/dist/{cloudflare-cmd-D-b_u3T4.mjs → cloudflare-cmd-fZ6AMSWk.mjs} +7 -8
  48. package/dist/{cloudflare-config-CH1AylZT.mjs → cloudflare-config-eQunqX6A.mjs} +22 -17
  49. package/dist/{cloudflare-connect-zTJh8UnN.mjs → cloudflare-connect-9OZe4XVQ.mjs} +5 -6
  50. package/dist/{cloudflare-operations-Bc-7fN44.mjs → cloudflare-operations-CrskD4_O.mjs} +8 -9
  51. package/dist/{cloudflare-operations-BtulCNOg.mjs → cloudflare-operations-oLvAd9Nd.mjs} +1 -1
  52. package/dist/{cloudflare-process-8jEYIeim.mjs → cloudflare-process-DjJ638A-.mjs} +7 -9
  53. package/dist/{cloudflare-user-output-Q-k0QoNQ.mjs → cloudflare-user-output-zEwuGrEJ.mjs} +1 -2
  54. package/dist/collect-8i0wU63d.mjs +1 -0
  55. package/dist/{collect-Dew86qce.mjs → collect-C6Blu9yw.mjs} +2 -3
  56. package/dist/{config-tqMM6DwY.mjs → config-BBlVXZCU.mjs} +5 -6
  57. package/dist/{config-OFOAimzt.mjs → config-BITKQ3O6.mjs} +5 -5
  58. package/dist/{config-BV2ASlpn.mjs → config-BgysUhnm.mjs} +1 -1
  59. package/dist/{config-CAdZVTLN.d.mts → config-CPxJmt4M.d.mts} +4 -6
  60. package/dist/{config-D-6q7EBH.mjs → config-WlvEcL82.mjs} +3 -4
  61. package/dist/config-entry.d.mts +1 -3
  62. package/dist/config-entry.mjs +1 -2
  63. package/dist/{connect-BOM6zvFX.mjs → connect-CKvmkl2R.mjs} +10 -11
  64. package/dist/{create-project-C2K0DN2O.mjs → create-project-BiMmR5wA.mjs} +1 -1
  65. package/dist/{create-project-Bxd02EHN.mjs → create-project-Bq0M8MtO.mjs} +9 -11
  66. package/dist/{database-provider-Cx525bwX.mjs → database-provider-DkZo4VwN.mjs} +1 -2
  67. package/dist/database-provider.d.mts +1 -3
  68. package/dist/database-provider.mjs +1 -1
  69. package/dist/{db-Cdvr3zwG.mjs → db-cq5RW4Vy.mjs} +52 -54
  70. package/dist/{db-types-0eCiqYb1.mjs → db-types-C_8amnB0.mjs} +3 -4
  71. package/dist/{delete-lETE6Tpt.mjs → delete-CY4L8fi2.mjs} +7 -8
  72. package/dist/deploy-B029oHlE.mjs +2 -0
  73. package/dist/{deploy-CdM-LAxX.mjs → deploy-D_gEojD2.mjs} +144 -136
  74. package/dist/{deploy-managed-static-DjeBFG2c.mjs → deploy-managed-static-BHVbB_-A.mjs} +33 -40
  75. package/dist/{deploy-transport-DIq_gFTP.mjs → deploy-transport-DEyOUfac.mjs} +6 -7
  76. package/dist/deploy.d.mts +1 -3
  77. package/dist/deploy.mjs +11 -11
  78. package/dist/{dev-inbox-D0jxye_D.mjs → dev-inbox-CUUS6iUg.mjs} +3 -4
  79. package/dist/discover-D4mQthao.mjs +1 -0
  80. package/dist/{discover-LaV0tbIu.mjs → discover-Dhkzxgdt.mjs} +3 -4
  81. package/dist/{dispatch-CLa2LThw.mjs → dispatch-BNLB5_Gm.mjs} +12 -15
  82. package/dist/{dist-Cegxq8gs.mjs → dist-B6eN80gc.mjs} +199 -118
  83. package/dist/{dist-D15hFhP0.mjs → dist-BWNkVq50.mjs} +8 -15
  84. package/dist/{dist-Cor9XGoz.mjs → dist-D23AAMxT.mjs} +9 -16
  85. package/dist/{dist-ipQi0Q8y.mjs → dist-DMYe8CZJ.mjs} +1 -2
  86. package/dist/{dist-B1PLt4_8.mjs → dist-eV_Ep60B.mjs} +1 -1
  87. package/dist/{domain-DyhNtdYf.mjs → domain-BlH90Ods.mjs} +8 -9
  88. package/dist/{dotenv-CNazY3-w.mjs → dotenv-CEI8hapP.mjs} +1 -2
  89. package/dist/{drizzle-9TubSZvI.mjs → drizzle-C8MPqt5m.mjs} +1 -1
  90. package/dist/{drizzle-BQfyvQKX.mjs → drizzle-lFdzSEa9.mjs} +2 -3
  91. package/dist/{email-B9ayYQEG.mjs → email-BHY72ixO.mjs} +3 -4
  92. package/dist/{email-DM2wDcBN.mjs → email-Bkq8ZL1p.mjs} +14 -15
  93. package/dist/{email-cloudflare-PMbAev9Q.mjs → email-cloudflare-MvJIxrwx.mjs} +18 -123
  94. package/dist/{email-protocol-D9nTvhCp.mjs → email-protocol-DTs_TjCS.mjs} +1 -2
  95. package/dist/{entry-BEM8ZuGP.mjs → entry-CBZsCy3O.mjs} +5 -6
  96. package/dist/{env-78hbN-oI.mjs → env-AvuCSeCH.mjs} +10 -11
  97. package/dist/{env-BaMz0j7H.mjs → env-CuzZZyjB.mjs} +3 -4
  98. package/dist/{env-0jrMQJI_.mjs → env-DtKg5G26.mjs} +2 -3
  99. package/dist/{env-helpers--wFmQ_5Q.mjs → env-helpers-Dj_SIwPu.mjs} +1 -2
  100. package/dist/{env-helpers-CyKtOBpj.d.mts → env-helpers-U56xuFgL.d.mts} +1 -3
  101. package/dist/{env-public-6lqiSD2b.d.mts → env-public-CeNeO_AT.d.mts} +2 -4
  102. package/dist/{env-raw-D74P4ebM.mjs → env-raw-e8qgqAzQ.mjs} +1 -2
  103. package/dist/{env-types-BicfKBhV.mjs → env-types-DqzVBKnS.mjs} +4 -5
  104. package/dist/{env-validation-BUfFZ6bt.mjs → env-validation-C8Cmvas0.mjs} +1 -1
  105. package/dist/{env-validation-B3VobvXm.mjs → env-validation-GV1oD4EV.mjs} +9 -10
  106. package/dist/{error-pages-CLIJ7aYq.mjs → error-pages-COVBnzK7.mjs} +6 -12
  107. package/dist/{fetch-CUX0tB78.d.mts → fetch-B-gLGYVl.d.mts} +0 -4
  108. package/dist/{fetch-CtESUYWd.mjs → fetch-C8yhLoF3.mjs} +3 -4
  109. package/dist/{fetch-error-Bw0n-IY-.mjs → fetch-error-DmlRM6e4.mjs} +2 -4
  110. package/dist/{fetch-stream-BspOeTAI.mjs → fetch-stream-DafNtVJC.mjs} +4 -5
  111. package/dist/{fetch-stream-DfkAzZf-.d.mts → fetch-stream-DuwxWmBM.d.mts} +1 -3
  112. package/dist/{gen-CFmsUsW1.mjs → gen-BD-dfjxY.mjs} +12 -13
  113. package/dist/gen-CIHXh9I8.mjs +1 -0
  114. package/dist/{generate-DkEb9rL-.mjs → generate-BOp1g1H_.mjs} +1 -1
  115. package/dist/{generate-B1m4Cm4n.mjs → generate-CWb8aOsm.mjs} +4 -5
  116. package/dist/{generated-wrangler-config-DeWj5F9Y.mjs → generated-wrangler-config-CoDaaFsA.mjs} +1 -2
  117. package/dist/{git-metadata-D-gurjzG.mjs → git-metadata-Cukp5kV5.mjs} +1 -2
  118. package/dist/{github-cmd-De-_IWbM.mjs → github-cmd-CA-lBdkn.mjs} +8 -9
  119. package/dist/{handler-BHktmuTL.d.mts → handler-BR6Tvjkp.d.mts} +18 -26
  120. package/dist/{handler-BZ1t7-Rv.mjs → handler-CKeTtYID.mjs} +6 -17
  121. package/dist/{head-D2VF4ApL.mjs → head-5XPcnG-j.mjs} +1 -2
  122. package/dist/{head-C8K_iGe6.d.mts → head-MeF_5M_3.d.mts} +0 -2
  123. package/dist/headers-CuTEdP9C.mjs +445 -0
  124. package/dist/{help-CKbrhZha.mjs → help-1OCFDsRr.mjs} +28 -12
  125. package/dist/help-Ba8Dq5-r.mjs +1 -0
  126. package/dist/{inbound-Da7XsjH3.d.mts → inbound-BHt4dIlL.d.mts} +16 -9
  127. package/dist/{inbound-VrOLqwZY.mjs → inbound-CdO-qY0w.mjs} +6 -81
  128. package/dist/index.d.mts +23 -13
  129. package/dist/index.mjs +495 -223
  130. package/dist/{info-Yg0-V5Rs.mjs → info-CJxua_db.mjs} +6 -7
  131. package/dist/{init-CDiJQycf.mjs → init-B-4CluYx.mjs} +43 -59
  132. package/dist/{isr-config-fZaJJ8t7.mjs → isr-config-Czzb4mIq.mjs} +5 -55
  133. package/dist/{limits-D0vD1M9A.mjs → limits-CrHLm5Tk.mjs} +1 -2
  134. package/dist/{limits-CFsDKQvU.d.mts → limits-_xIf5z_P.d.mts} +0 -2
  135. package/dist/{link-Dllip08S.mjs → link-DAXOT-G_.mjs} +8 -9
  136. package/dist/{list-BYRP6am0.mjs → list-BYSOo9fm.mjs} +8 -9
  137. package/dist/{live-BllfDuzA.d.mts → live-0xrcVpyq.d.mts} +2 -4
  138. package/dist/{live-BcHoTDFe.mjs → live-DF4HUl2m.mjs} +5 -7
  139. package/dist/{load-user-env-DD5qveNU.mjs → load-user-env-CSwdofj0.mjs} +1 -2
  140. package/dist/{local-d1-CAwAs9GH.mjs → local-d1-BLgsNUj9.mjs} +4 -5
  141. package/dist/{log-BMwmN5Ae.mjs → log-D9hwSySP.mjs} +3 -4
  142. package/dist/login-BpbYeu-n.mjs +1 -0
  143. package/dist/{login-PcFy5mlC.mjs → login-CJopTWX4.mjs} +6 -7
  144. package/dist/{logs-DmJTBhed.mjs → logs-DE0weBsR.mjs} +19 -18
  145. package/dist/{migrate-B8S2xTcb.mjs → migrate-ChHHZBTi.mjs} +20 -16
  146. package/dist/migrate-HdA6Kh2p.mjs +1 -0
  147. package/dist/{migration-handler-CwlEQUoo.d.mts → migration-handler-D8mDx3Ew.d.mts} +0 -4
  148. package/dist/{migration-handler-Cg0Y4EPu.mjs → migration-handler-DCehTlWs.mjs} +1 -2
  149. package/dist/{mime-BAyHPskU.mjs → mime-CtP6-qAF.mjs} +145 -18
  150. package/dist/{mysql-migration-sql-BIS5vbNk.mjs → mysql-migration-sql-CI9VTwjt.mjs} +3 -5
  151. package/dist/{neon-DTZr7Bu7.mjs → neon-CJzQSycr.mjs} +2 -3
  152. package/dist/nitro.d.mts +0 -2
  153. package/dist/nitro.mjs +5 -6
  154. package/dist/{node-CDOPrGSl.mjs → node-CZ6lGNLn.mjs} +8 -9
  155. package/dist/{operator-args-BsJIYXaT.mjs → operator-args-D79WQP70.mjs} +2 -3
  156. package/dist/{operator-auth-Cr2zCc-J.mjs → operator-auth-CfDcmzpo.mjs} +2 -3
  157. package/dist/{operator-client-C-ROjk1I.mjs → operator-client-BIY4-N_6.mjs} +3 -4
  158. package/dist/{operator-cmd-DmkmS2wL.mjs → operator-cmd-BUqsdk2K.mjs} +32 -15
  159. package/dist/operator-cmd-wBYyp8iQ.mjs +1 -0
  160. package/dist/{output-BpgYODYx.mjs → output-BCdLioKP.mjs} +4 -5
  161. package/dist/output-E6gecbbV.mjs +1 -0
  162. package/dist/{package-json-BjYqR-So.mjs → package-json-DvS6IFRv.mjs} +2 -3
  163. package/dist/pages/client.d.mts +147 -31
  164. package/dist/pages/client.mjs +199 -43
  165. package/dist/pages/head.d.mts +1 -1
  166. package/dist/pages/head.mjs +1 -1
  167. package/dist/pages/index.d.mts +25 -18
  168. package/dist/pages/index.mjs +24 -12
  169. package/dist/pages/islands-plugin.d.mts +75 -13
  170. package/dist/pages/islands-plugin.mjs +92 -7
  171. package/dist/pages/prefetch.d.mts +2 -2
  172. package/dist/pages/prefetch.mjs +1 -1
  173. package/dist/pages/protocol.d.mts +2 -2
  174. package/dist/pages/protocol.mjs +2 -2
  175. package/dist/pages/serialize.d.mts +1 -1
  176. package/dist/pages/serialize.mjs +1 -1
  177. package/dist/{pg-J2HbZIkX.mjs → pg-DoyPxa_X.mjs} +1 -2
  178. package/dist/{picocolors-BsDfhxIw.mjs → picocolors-D1NxSLw-.mjs} +2 -3
  179. package/dist/{plan-BhLO2p4w.mjs → plan-BOD70XGS.mjs} +1 -2
  180. package/dist/plan-CQ-N4gws.mjs +1 -0
  181. package/dist/platform-args-C7XUw9mw.mjs +1 -0
  182. package/dist/{platform-args-BMD2gjc_.mjs → platform-args-Cx1M-7bq.mjs} +22 -11
  183. package/dist/{platform-auth-config-CImnfohz.mjs → platform-auth-config-K4m_LE8b.mjs} +10 -11
  184. package/dist/{platform-auth-protection-BogLhtHi.mjs → platform-auth-protection-KF5Vo-1I.mjs} +10 -11
  185. package/dist/{platform-auth-recovery-B-mEaWEi.mjs → platform-auth-recovery-BOdFrl7R.mjs} +9 -11
  186. package/dist/{platform-cmd-CV8NxIIn.mjs → platform-cmd-DpCHawGF.mjs} +1 -1
  187. package/dist/{platform-cmd-DZK2ixMl.mjs → platform-cmd-Ds3EAV5t.mjs} +13 -13
  188. package/dist/{platform-discovery-CHhNs8Nn.mjs → platform-discovery-B0eZjZ3B.mjs} +2 -3
  189. package/dist/{platform-domain-CRvelPGE.mjs → platform-domain-rWJshybd.mjs} +7 -8
  190. package/dist/{platform-lifecycle-DwXq7kZt.mjs → platform-lifecycle-BH34I0rh.mjs} +1 -1
  191. package/dist/{platform-lifecycle-CPYY7E9B.mjs → platform-lifecycle-D9RdGub1.mjs} +110 -110
  192. package/dist/{platform-management-BOnGbMSM.mjs → platform-management-BRefdHGD.mjs} +27 -11
  193. package/dist/{platform-management-lXdgGgAM.mjs → platform-management-BfLW0Zlo.mjs} +1 -1
  194. package/dist/{platform-plans-config-CeydDSj0.mjs → platform-plans-config-Dx1agneU.mjs} +5 -6
  195. package/dist/{platform-recovery-noaALXnE.mjs → platform-recovery-DZuZGJtt.mjs} +5 -6
  196. package/dist/{platform-registry-B9mWX9LO.mjs → platform-registry-DZ_2Xuqd.mjs} +4 -6
  197. package/dist/platform-runtime-logs-CdJGnk3f.mjs +68 -0
  198. package/dist/{platform-setup-Ca53gtt0.mjs → platform-setup-Vw1AaUN8.mjs} +19 -7
  199. package/dist/{plugin-inference-CeiB6BG5.mjs → plugin-inference-CdLbxZL_.mjs} +16 -24
  200. package/dist/{prefetch-Bsc_Pb6c.mjs → prefetch-Dx2jIbtg.mjs} +20 -3
  201. package/dist/{prefetch-Ce6la4EI.d.mts → prefetch-NdNeubbH.d.mts} +7 -3
  202. package/dist/{prepare-D604Yiyr.mjs → prepare-BJW-f1f1.mjs} +13 -14
  203. package/dist/{prepare-BuOS18AM.mjs → prepare-BMGeKL16.mjs} +4 -5
  204. package/dist/prepare-BdxJJCMv.mjs +1 -0
  205. package/dist/{prerender-render-CaShbHJ3.mjs → prerender-render-RlAj6hh8.mjs} +2 -3
  206. package/dist/prerender-render.d.mts +1 -3
  207. package/dist/prerender-render.mjs +1 -1
  208. package/dist/{project-rqDnVsJN.mjs → project-CLwxcEdq.mjs} +3 -4
  209. package/dist/{project-zdB3fs9G.mjs → project-DVsTAWFh.mjs} +1 -1
  210. package/dist/{project-cmd-DBYqAIbe.mjs → project-cmd-B_bUyZ3J.mjs} +21 -23
  211. package/dist/{project-paths-DGu_QZ_Q.mjs → project-paths-CdGv9Tmi.mjs} +3 -5
  212. package/dist/project-slug-BUy0lmyR.mjs +1 -0
  213. package/dist/{project-slug-23TpquG4.mjs → project-slug-CO6ci9XG.mjs} +0 -1
  214. package/dist/{project-team-BjCLgTRC.mjs → project-team-MjT5K4rQ.mjs} +7 -8
  215. package/dist/{project-token-BB6PwaA9.mjs → project-token-BKHGwY3k.mjs} +7 -8
  216. package/dist/{project-tsconfig-CVvk6Z_e.mjs → project-tsconfig-Cf2NFjlM.mjs} +4 -6
  217. package/dist/{project-zero-trust-CWDh1P_t.mjs → project-zero-trust-Bzdd05-h.mjs} +7 -8
  218. package/dist/{protocol-DimNxVRr.mjs → protocol-COyySMki.mjs} +135 -113
  219. package/dist/{protocol-D5XDySYu.d.mts → protocol-CkwjASep.d.mts} +4 -6
  220. package/dist/{providers-BNKRacMr.d.mts → providers-D5P8j_8D.d.mts} +0 -2
  221. package/dist/{providers-BUHwJlmM.mjs → providers-ZARwX2cL.mjs} +1 -2
  222. package/dist/{provision-DztLJ97X.mjs → provision-BbCzpbXs.mjs} +6 -7
  223. package/dist/{provision-DfxLCg-d.mjs → provision-DQF6Kw-6.mjs} +1 -1
  224. package/dist/{queues-BWKt1Xo4.d.mts → queues-DdM42xXW.d.mts} +0 -2
  225. package/dist/{r2-conditions-B8xUgJRc.mjs → r2-conditions-BqkQNt2n.mjs} +1 -2
  226. package/dist/{requests-D_pbzDyz.mjs → requests-daJmVpjk.mjs} +6 -7
  227. package/dist/resolve-project-CgfjtOwz.mjs +1 -0
  228. package/dist/{resolve-project-Xoi6eTWY.mjs → resolve-project-D0YNnJfm.mjs} +4 -5
  229. package/dist/{resource-name-C7LVpcRm.mjs → resource-name-DlJ9QXzg.mjs} +1 -2
  230. package/dist/{response-Tn7rU0MV.mjs → response-HmNjB30w.mjs} +1 -2
  231. package/dist/{rollback-CjfIYsJx.mjs → rollback-BgL0wY1J.mjs} +7 -8
  232. package/dist/{rolldown-runtime-3h0WiCiA.mjs → rolldown-runtime-uD8oG6U2.mjs} +1 -2
  233. package/dist/{route-types-DvEGmPif.mjs → route-types-CZc1YXjF.mjs} +80 -9
  234. package/dist/route-url-CRDF-I0I.mjs +57 -0
  235. package/dist/route-url-C_YIH_zO.d.mts +37 -0
  236. package/dist/routes-stub.d.mts +8 -3
  237. package/dist/routes-stub.mjs +1 -1
  238. package/dist/{routing-assets-DdSFxoLp.mjs → routing-assets-DJIVOrCh.mjs} +1 -2
  239. package/dist/{runner-3uGC-oLF.mjs → runner-5MCSimKx.mjs} +5 -6
  240. package/dist/{runner-WCdfeI0q.mjs → runner-QMeOpScZ.mjs} +1 -1
  241. package/dist/{runner-mysql-BcHnLUuM.mjs → runner-mysql-0zVmB1JW.mjs} +1 -1
  242. package/dist/{runner-mysql-BWmbk5IE.mjs → runner-mysql-Bdmsp_x4.mjs} +3 -4
  243. package/dist/{runner-pg-Cgp-cr_p.mjs → runner-pg-2pjltt0t.mjs} +1 -1
  244. package/dist/{runner-pg-Cr3qrqi4.mjs → runner-pg-mYc75KfH.mjs} +2 -3
  245. package/dist/runtime/ai.d.mts +0 -4
  246. package/dist/runtime/ai.mjs +6 -8
  247. package/dist/runtime/auth-client-react.d.mts +1 -1
  248. package/dist/runtime/auth-client-react.mjs +1 -1
  249. package/dist/runtime/auth-client-solid.d.mts +1 -1
  250. package/dist/runtime/auth-client-solid.mjs +1 -1
  251. package/dist/runtime/auth-client-svelte.d.mts +1 -1
  252. package/dist/runtime/auth-client-svelte.mjs +1 -1
  253. package/dist/runtime/auth-client-vue.d.mts +1 -1
  254. package/dist/runtime/auth-client-vue.mjs +1 -1
  255. package/dist/runtime/auth-client.d.mts +1 -1
  256. package/dist/runtime/auth-client.mjs +1 -1
  257. package/dist/runtime/auth.d.mts +1 -1
  258. package/dist/runtime/auth.mjs +1 -1
  259. package/dist/runtime/better-auth-mysql.d.mts +2 -4
  260. package/dist/runtime/better-auth-mysql.mjs +3 -4
  261. package/dist/runtime/better-auth-pg.d.mts +2 -4
  262. package/dist/runtime/better-auth-pg.mjs +4 -5
  263. package/dist/runtime/better-auth.d.mts +2 -4
  264. package/dist/runtime/better-auth.mjs +3 -4
  265. package/dist/runtime/client-react.d.mts +4 -4
  266. package/dist/runtime/client-react.mjs +4 -4
  267. package/dist/runtime/client-solid.d.mts +4 -4
  268. package/dist/runtime/client-solid.mjs +4 -4
  269. package/dist/runtime/client-svelte.d.mts +4 -4
  270. package/dist/runtime/client-svelte.mjs +4 -4
  271. package/dist/runtime/client-vue.d.mts +4 -4
  272. package/dist/runtime/client-vue.mjs +4 -4
  273. package/dist/runtime/client.d.mts +4 -4
  274. package/dist/runtime/client.mjs +4 -4
  275. package/dist/runtime/db.d.mts +0 -2
  276. package/dist/runtime/db.mjs +2 -3
  277. package/dist/runtime/durable.d.mts +0 -2
  278. package/dist/runtime/durable.mjs +3 -4
  279. package/dist/runtime/email/testing.d.mts +1 -5
  280. package/dist/runtime/email/testing.mjs +5 -6
  281. package/dist/runtime/email-protocol.d.mts +0 -2
  282. package/dist/runtime/email-protocol.mjs +1 -1
  283. package/dist/runtime/email.d.mts +1 -5
  284. package/dist/runtime/email.mjs +6 -7
  285. package/dist/runtime/env-public-client.d.mts +1 -3
  286. package/dist/runtime/env-public-client.mjs +2 -3
  287. package/dist/runtime/env-public.d.mts +2 -2
  288. package/dist/runtime/env-public.mjs +5 -7
  289. package/dist/runtime/env.d.mts +0 -4
  290. package/dist/runtime/env.mjs +1 -1
  291. package/dist/runtime/fetch-server.d.mts +1 -3
  292. package/dist/runtime/fetch-server.mjs +3 -4
  293. package/dist/runtime/fetch-stream.d.mts +2 -2
  294. package/dist/runtime/fetch-stream.mjs +2 -2
  295. package/dist/runtime/fetch.d.mts +1 -1
  296. package/dist/runtime/fetch.mjs +2 -2
  297. package/dist/runtime/handler.d.mts +1 -1
  298. package/dist/runtime/handler.mjs +2 -2
  299. package/dist/runtime/isr.d.mts +1 -3
  300. package/dist/runtime/isr.mjs +2 -3
  301. package/dist/runtime/kv.d.mts +1 -3
  302. package/dist/runtime/kv.mjs +2 -3
  303. package/dist/runtime/limits.d.mts +1 -1
  304. package/dist/runtime/limits.mjs +1 -1
  305. package/dist/runtime/live-client.d.mts +1 -3
  306. package/dist/runtime/live-client.mjs +1 -2
  307. package/dist/runtime/live-server.d.mts +0 -2
  308. package/dist/runtime/live-server.mjs +3 -4
  309. package/dist/runtime/live.d.mts +1 -1
  310. package/dist/runtime/live.mjs +1 -1
  311. package/dist/runtime/log.d.mts +3 -3
  312. package/dist/runtime/log.mjs +26 -18
  313. package/dist/runtime/migration-handler-mysql.d.mts +2 -4
  314. package/dist/runtime/migration-handler-mysql.mjs +2 -3
  315. package/dist/runtime/migration-handler-pg.d.mts +2 -4
  316. package/dist/runtime/migration-handler-pg.mjs +2 -3
  317. package/dist/runtime/migration-handler.d.mts +1 -1
  318. package/dist/runtime/migration-handler.mjs +1 -1
  319. package/dist/runtime/queues.d.mts +1 -1
  320. package/dist/runtime/queues.mjs +2 -3
  321. package/dist/runtime/remote/binding-handler.d.mts +1 -3
  322. package/dist/runtime/remote/binding-handler.mjs +3 -4
  323. package/dist/runtime/remote/index.d.mts +1 -3
  324. package/dist/runtime/remote/index.mjs +8 -13
  325. package/dist/runtime/response.d.mts +1 -3
  326. package/dist/runtime/response.mjs +1 -1
  327. package/dist/runtime/route-url.d.mts +2 -2
  328. package/dist/runtime/route-url.mjs +1 -1
  329. package/dist/runtime/routing.d.mts +8 -11
  330. package/dist/runtime/routing.mjs +52 -32
  331. package/dist/runtime/sandbox-container.d.mts +1 -1
  332. package/dist/runtime/sandbox-container.mjs +1 -1
  333. package/dist/runtime/sandbox.d.mts +2 -2
  334. package/dist/runtime/sandbox.mjs +5 -6
  335. package/dist/runtime/seed.d.mts +0 -2
  336. package/dist/runtime/seed.mjs +1 -2
  337. package/dist/runtime/sse-client.d.mts +1 -3
  338. package/dist/runtime/sse-client.mjs +1 -2
  339. package/dist/runtime/sse.d.mts +1 -3
  340. package/dist/runtime/sse.mjs +1 -1
  341. package/dist/runtime/storage.d.mts +1 -3
  342. package/dist/runtime/storage.mjs +2 -3
  343. package/dist/runtime/validator.d.mts +1 -1
  344. package/dist/runtime/validator.mjs +1 -1
  345. package/dist/runtime/ws-server.d.mts +3 -5
  346. package/dist/runtime/ws-server.mjs +3 -4
  347. package/dist/runtime/ws.d.mts +1 -1
  348. package/dist/runtime/ws.mjs +3 -4
  349. package/dist/{sandbox-q3waMc2T.d.mts → sandbox-DE1WsxuB.d.mts} +2 -4
  350. package/dist/{sandbox-container-a9LRUtii.mjs → sandbox-container-BuxhwCgt.mjs} +1 -2
  351. package/dist/{sandbox-container-ChQRum-j.d.mts → sandbox-container-CZFZdMso.d.mts} +0 -2
  352. package/dist/{scan-N9WzdcAl.mjs → scan-X2rDDRNa.mjs} +49 -35
  353. package/dist/{secret-3X0PxmuX.mjs → secret-CPq-B_vp.mjs} +17 -15
  354. package/dist/{serialize-YHvlcG3Q.mjs → serialize-DUuYuaY3.mjs} +2 -4
  355. package/dist/{serialize-DtR8Vwa_.d.mts → serialize-I4EmS-Wf.d.mts} +0 -2
  356. package/dist/{skills-CrUO3PJ0.mjs → skills-D393E4lB.mjs} +4 -5
  357. package/dist/{sqlite-validation-BzKMWnO4.mjs → sqlite-validation-CLJXXN93.mjs} +1 -2
  358. package/dist/{sse-CMvCgjNk.mjs → sse-CxR30yMF.mjs} +1 -2
  359. package/dist/{standard-schema-Fo_vCAZh.d.mts → standard-schema-CuDawHOC.d.mts} +0 -2
  360. package/dist/{static-asset-marker-Btf-6oCD.mjs → static-asset-marker-DsQKz6lt.mjs} +9 -3
  361. package/dist/{subcommand-prompt-D9OhhbGG.mjs → subcommand-prompt-CxJXporl.mjs} +3 -4
  362. package/dist/sveltekit.d.mts +0 -2
  363. package/dist/sveltekit.mjs +2 -3
  364. package/dist/{terminal-log-text-D9ACPOuG.mjs → terminal-log-text-DNsWJREL.mjs} +1 -2
  365. package/dist/{types-w72dljaA.d.mts → types-agfx0alu.d.mts} +0 -4
  366. package/dist/validate-DY1U9rET.mjs +1 -0
  367. package/dist/{validate-CnZPMq4q.mjs → validate-Ddzl-IwT.mjs} +4 -5
  368. package/dist/validation-error-uAAjlsiW.mjs +82 -0
  369. package/dist/{validator-BTOu0fB0.mjs → validator-CTfmzZYb.mjs} +2 -5
  370. package/dist/{version-metadata-D2vfMQzv.mjs → version-metadata-C8hLzQkv.mjs} +4 -6
  371. package/dist/{worker-conditions-AWFRcFxR.mjs → worker-conditions-CBZ0RYsZ.mjs} +1 -2
  372. package/dist/{wrangler-I-scB_1t.mjs → wrangler-DESSbN8L.mjs} +6 -8
  373. package/dist/wrangler-DUB3MGHV.mjs +1 -0
  374. package/dist/{wrapper-BBl1rC32.mjs → wrapper-C9SUxoj7.mjs} +17 -14
  375. package/dist/{ws-B3ClMVDh.d.mts → ws-Dmjg5NH2.d.mts} +3 -5
  376. package/dist/{yarn-pnp-DLbEFMT0.mjs → yarn-pnp-DgWbE7z5.mjs} +2 -3
  377. package/docs/guide/database.md +4 -4
  378. package/docs/guide/deployment.md +1 -1
  379. package/docs/guide/edge/headers.md +4 -6
  380. package/docs/guide/edge/redirects.md +4 -4
  381. package/docs/guide/edge/rewrites.md +1 -1
  382. package/docs/guide/edge/static-assets.md +0 -10
  383. package/docs/guide/email/domains.md +3 -1
  384. package/docs/guide/email/receiving.md +4 -4
  385. package/docs/guide/email/sending.md +43 -13
  386. package/docs/guide/pages-routing/actions-and-forms.md +26 -9
  387. package/docs/guide/pages-routing/islands.md +5 -5
  388. package/docs/guide/pages-routing/layouts.md +16 -2
  389. package/docs/guide/pages-routing/loaders.md +5 -5
  390. package/docs/guide/pages-routing/markdown.md +7 -7
  391. package/docs/guide/pages-routing/overview.md +137 -27
  392. package/docs/guide/platform/administration/connected-apps.md +4 -2
  393. package/docs/guide/platform/administration/email.md +6 -8
  394. package/docs/guide/platform/installation/credentials.md +12 -10
  395. package/docs/guide/platform/installation/maintenance.md +18 -21
  396. package/docs/guide/platform/installation/prerequisites.md +1 -1
  397. package/docs/guide/platform/installation/setup.md +23 -2
  398. package/docs/guide/platform/installation/uninstall.md +1 -1
  399. package/docs/guide/queues.md +4 -8
  400. package/docs/guide/self-hosted-platform.md +3 -3
  401. package/docs/guide/server-routing.md +7 -7
  402. package/docs/guide/ssg.md +3 -3
  403. package/docs/guide/type-safety.md +84 -1
  404. package/docs/guide/typed-fetch.md +1 -1
  405. package/docs/guide/websockets.md +1 -1
  406. package/docs/integrations/cloudflare.md +2 -2
  407. package/docs/integrations/frameworks/analog.md +1 -1
  408. package/docs/integrations/frameworks/astro.md +17 -12
  409. package/docs/integrations/frameworks/nuxt.md +1 -1
  410. package/docs/integrations/frameworks/overview.md +2 -2
  411. package/docs/integrations/frameworks/sveltekit.md +1 -1
  412. package/docs/integrations/frameworks/tanstack-start.md +1 -1
  413. package/docs/integrations/hono.md +5 -5
  414. package/docs/reference/api/auth.md +1 -1
  415. package/docs/reference/api/deploy.md +6 -6
  416. package/docs/reference/api/pages.md +109 -50
  417. package/docs/reference/api/plugin.md +4 -4
  418. package/docs/reference/api/resources.md +4 -1
  419. package/docs/reference/api/rewrites.md +24 -3
  420. package/docs/reference/api/types.md +45 -0
  421. package/docs/reference/api.md +2 -2
  422. package/docs/reference/cli/database.md +15 -9
  423. package/docs/reference/cli/email.md +4 -2
  424. package/docs/reference/cli/platform-installation.md +6 -3
  425. package/docs/reference/cli/project.md +2 -2
  426. package/docs/reference/cli/secrets.md +3 -1
  427. package/docs/reference/cli/setup.md +4 -4
  428. package/docs/reference/cli.md +1 -1
  429. package/docs/reference/config.md +12 -2
  430. package/package.json +36 -32
  431. package/sandbox.Dockerfile +1 -1
  432. package/schema.json +4 -0
  433. package/skills/void/SKILL.md +5 -0
  434. package/dist/cf-build-output-bd8Uwv1P.mjs +0 -1
  435. package/dist/client-BZb9j66F.mjs +0 -1
  436. package/dist/collect-BWhkgtAn.mjs +0 -1
  437. package/dist/deploy-CX94CmKa.mjs +0 -2
  438. package/dist/discover-D4TPKo57.mjs +0 -1
  439. package/dist/gen-BhWBT4iu.mjs +0 -1
  440. package/dist/headers--vaK_chu.mjs +0 -226
  441. package/dist/help-qOZr3wng.mjs +0 -1
  442. package/dist/login-BAPmYnb7.mjs +0 -1
  443. package/dist/migrate-BIYTPQE6.mjs +0 -1
  444. package/dist/operator-cmd-CjazwOyb.mjs +0 -1
  445. package/dist/output-BW9uK099.mjs +0 -1
  446. package/dist/plan-CKX_jWnD.mjs +0 -1
  447. package/dist/platform-args-BC8_hsDj.mjs +0 -1
  448. package/dist/prepare-DU-tOpS5.mjs +0 -1
  449. package/dist/project-slug-6cyz8E7k.mjs +0 -1
  450. package/dist/resolve-project-DD1vu8s9.mjs +0 -1
  451. package/dist/route-url-BgPja1GS.d.mts +0 -5
  452. package/dist/route-url-BjGv_KKY.mjs +0 -28
  453. package/dist/validate-D7Wn8PUX.mjs +0 -1
  454. package/dist/validation-error-Dg9Recn1.mjs +0 -49
  455. package/dist/wrangler-UnwdISay.mjs +0 -1
@@ -1,11 +1,12 @@
1
- import { S as writePendingInstallationSecrets, _ as removePlatformConnectionForInstallation, g as removeInstallationRecoverySecrets, h as readPendingInstallationSecrets, m as readInstallationRecoverySecrets, o as listInstallationManifests, t as acquirePlatformLifecycleLock, v as resolveInstallationManifest, x as writeInstallationManifest } from "./platform-registry-B9mWX9LO.mjs";
2
- import { t as ensurePlatformAccessToken } from "./cf-access-CWP4avfP.mjs";
3
- import { A as confirm, H as outro, K as select, L as log, tt as isCancel } from "./dist-Cor9XGoz.mjs";
4
- import { f as import_picocolors, l as formatUrl, m as printSuccess, p as note, r as createSpinner } from "./output-BpgYODYx.mjs";
5
- import { $ as hyperdriveOriginMatches, A as dnsRecordConfigHash, B as turnOffInstalledProjectZeroTrust, C as createPlatformHealthProbeToken, D as platformTrafficAttachmentWorker, F as platformAdoptionIntentHash, H as resolvePlatformCloudflareCredential, I as r2BucketConfigHash, J as PlatformCloudflareApiError, L as resourceMarkerProblem, M as hasProvisionIntentStep, N as legacyResourceConfigHash, P as matchesRecordedR2Fingerprint, Q as hyperdriveOriginFromConnectionString, R as revalidatePlatformInstallAction, S as loadPlatformRuntime, T as resolveBootstrapGitHubId, U as verifyPlatformCloudflareCredential, V as assertPlatformOperatorCredentialCanApplyPlan, W as activatePlatformAccessCredentials, X as PlatformRuntimeTokenEmailPermissionError, Y as PlatformCloudflareClient, Z as hyperdriveOriginConfigHash, _ as readPlatformProjectSlugs, a as findPlatformWorkerOutsideChanges, b as formatZeroTrustApplications, c as uploadPlatformWorkerOutsideChanges, d as replacePendingInstallationAuthentication, et as verifyPlatformRuntimeTokenEmailPermissions, f as REMOTE_INSTALLATION_MANIFEST_KEY, j as formatPlatformInstallPlan, k as createPlatformInstallPlan, l as authenticationSetupRequestHash, m as acquirePlatformDatabaseLifecycleLock, n as resolvePlatformInstallDatabaseUrl, o as formatPlatformWorkerOutsideChanges, p as installPlatform, s as reviewPlatformWorkerOutsideChanges, t as assertNoninteractivePlatformMutationAcknowledged, tt as verifyPlatformRuntimeTokenPermissions, u as readLoginReplacementFile, v as readPlatformProjectZeroTrustState, w as createPlatformInstallationSecrets, x as readPlatformDatabase, y as assertProjectZeroTrustAllowsUninstall, z as platformDatabaseNameFromOwnerUrl } from "./platform-lifecycle-CPYY7E9B.mjs";
1
+ import { S as writePendingInstallationSecrets, _ as removePlatformConnectionForInstallation, g as removeInstallationRecoverySecrets, h as readPendingInstallationSecrets, m as readInstallationRecoverySecrets, o as listInstallationManifests, t as acquirePlatformLifecycleLock, v as resolveInstallationManifest, x as writeInstallationManifest } from "./platform-registry-DZ_2Xuqd.mjs";
2
+ import { t as ensurePlatformAccessToken } from "./cf-access-BmBT2h8_.mjs";
3
+ import { A as confirm, H as outro, K as select, L as log, tt as isCancel } from "./dist-D23AAMxT.mjs";
4
+ import { f as import_picocolors, l as formatUrl, m as printSuccess, p as note, r as createSpinner } from "./output-BCdLioKP.mjs";
5
+ import { i as updateProjectWorkerRuntimeLogs, n as assertPlatformRuntimeLogsSupported, r as shouldUpdateProjectWorkerRuntimeLogs } from "./platform-runtime-logs-CdJGnk3f.mjs";
6
+ import { $ as hyperdriveOriginMatches, A as dnsRecordConfigHash, B as turnOffInstalledProjectZeroTrust, C as createPlatformHealthProbeToken, D as platformTrafficAttachmentWorker, F as platformAdoptionIntentHash, H as resolvePlatformCloudflareCredential, I as r2BucketConfigHash, J as PlatformCloudflareApiError, L as resourceMarkerProblem, M as hasProvisionIntentStep, N as legacyResourceConfigHash, P as matchesRecordedR2Fingerprint, Q as hyperdriveOriginFromConnectionString, R as revalidatePlatformInstallAction, S as loadPlatformRuntime, T as resolveBootstrapGitHubId, U as verifyPlatformCloudflareCredential, V as assertPlatformOperatorCredentialCanApplyPlan, W as activatePlatformAccessCredentials, X as PlatformRuntimeTokenEmailPermissionError, Y as PlatformCloudflareClient, Z as hyperdriveOriginConfigHash, _ as readPlatformProjectSlugs, a as findPlatformWorkerOutsideChanges, b as formatZeroTrustApplications, c as uploadPlatformWorkerOutsideChanges, d as replacePendingInstallationAuthentication, et as verifyPlatformRuntimeTokenEmailPermissions, f as REMOTE_INSTALLATION_MANIFEST_KEY, j as formatPlatformInstallPlan, k as createPlatformInstallPlan, l as authenticationSetupRequestHash, m as acquirePlatformDatabaseLifecycleLock, n as resolvePlatformInstallDatabaseUrl, o as formatPlatformWorkerOutsideChanges, p as installPlatform, s as reviewPlatformWorkerOutsideChanges, t as assertNoninteractivePlatformMutationAcknowledged, tt as verifyPlatformRuntimeTokenPermissions, u as readLoginReplacementFile, v as readPlatformProjectZeroTrustState, w as createPlatformInstallationSecrets, x as readPlatformDatabase, y as assertProjectZeroTrustAllowsUninstall, z as platformDatabaseNameFromOwnerUrl } from "./platform-lifecycle-D9RdGub1.mjs";
6
7
  import { PLATFORM_DISABLED_KEY, PLATFORM_DISABLED_VALUE, PLATFORM_R2_OWNERSHIP_MARKER_KEY, parsePlatformInstallationManifest, recordInstallationResource, recordInstallationStep, setInstallationDesiredState, transitionInstallation } from "@void/platform";
7
8
  import { setTimeout } from "node:timers/promises";
8
- //#region src/cli/platform-teardown.ts
9
+ // src/cli/platform-teardown.ts
9
10
  /**
10
11
  * `void platform uninstall --purge-resources` deletes every Cloudflare resource the
11
12
  * installation created, in an order Cloudflare accepts:
@@ -591,8 +592,7 @@ async function runPurgeResourcesTeardown(context, initial) {
591
592
  await markDeleted(bucket.key);
592
593
  }
593
594
  }
594
- //#endregion
595
- //#region src/cli/platform-management.ts
595
+ // src/cli/platform-management.ts
596
596
  async function verifyPlatformInstallationOwnership(client, manifest, options = {}) {
597
597
  const ready = manifest.resources.filter((resource) => resource.state === "ready" && isOwnershipVerifiableKind(resource.kind) && !options.retainedReplacementKeys?.has(resource.key));
598
598
  if (!ready.find((resource) => resource.key === "routing-kv")) {
@@ -625,6 +625,7 @@ function platformLifecycleResumeCommand(args, installationId) {
625
625
  if (args.subcommand === "rollback" && args.fromRuntime) command.push("--from-runtime", commandArgument(args.fromRuntime));
626
626
  if ("dashboardUrl" in args && args.dashboardUrl) command.push("--dashboard-url", commandArgument(args.dashboardUrl));
627
627
  if ("customDomains" in args && args.customDomains) command.push("--custom-domains");
628
+ if ("runtimeLogs" in args && args.runtimeLogs) command.push("--runtime-logs", args.runtimeLogs);
628
629
  if (args.yes) command.push("--yes");
629
630
  return command.join(" ");
630
631
  }
@@ -716,6 +717,7 @@ async function runInstalledPlatformCommand(args) {
716
717
  controlPlaneDomain: deployment.controlPlane.apiHostname ?? "",
717
718
  ...args.subcommand !== "rollback" && args.dashboardUrl !== void 0 ? { dashboardUrl: args.dashboardUrl } : {},
718
719
  ...args.subcommand !== "rollback" && args.customDomains ? { customDomains: true } : {},
720
+ ...args.subcommand === "upgrade" && args.runtimeLogs !== void 0 ? { runtimeLogs: args.runtimeLogs } : {},
719
721
  dedicatedZone: deployment.application.dedicatedZone,
720
722
  displayName: deployment.displayName,
721
723
  installationSlug: deployment.installationSlug,
@@ -727,10 +729,12 @@ async function runInstalledPlatformCommand(args) {
727
729
  allowUnverifiedAiGateway: args.plan,
728
730
  includeEmailGateway: runtime.manifest.artifacts.emailGateway !== void 0,
729
731
  enableSandbox: runtime.manifest.safetyProtocols.sandboxDrain >= 3,
730
- deploymentExecution: runtime.manifest.deploymentExecution === 1
732
+ deploymentExecution: runtime.manifest.deploymentExecution === 1,
733
+ allowRuntimeLogsChange: args.subcommand === "upgrade"
731
734
  });
735
+ assertPlatformRuntimeLogsSupported(plan.deployment, runtime.manifest);
732
736
  markPhase("plan");
733
- note(formatPlatformInstallPlan(plan), args.subcommand === "upgrade" ? "Upgrade plan" : args.subcommand === "rollback" ? "Rollback plan" : args.subcommand === "enable" ? "Enable plan" : "Repair plan");
737
+ note(formatPlatformInstallPlan(plan, manifest.deployment), args.subcommand === "upgrade" ? "Upgrade plan" : args.subcommand === "rollback" ? "Rollback plan" : args.subcommand === "enable" ? "Enable plan" : "Repair plan");
734
738
  note([
735
739
  `Version: ${manifest.platformVersion} → ${runtime.manifest.platformVersion}`,
736
740
  `Source: ${runtime.source}`,
@@ -873,6 +877,7 @@ async function runInstalledPlatformCommand(args) {
873
877
  runtime,
874
878
  operation: args.subcommand,
875
879
  replanWorkers: async (recoveryManifest) => (await createPlatformInstallPlan(client, planInput, recoveryManifest, {
880
+ allowRuntimeLogsChange: args.subcommand === "upgrade",
876
881
  authoritativeProvisionIntents: true,
877
882
  repairMissing: true,
878
883
  includeEmailGateway: runtime.manifest.artifacts.emailGateway !== void 0,
@@ -888,6 +893,16 @@ async function runInstalledPlatformCommand(args) {
888
893
  });
889
894
  progress.message("Finalizing platform changes");
890
895
  markPhase("installer complete");
896
+ const runtimeLogsWarning = !result.waitingForDns && !result.waitingForSandboxDrain && shouldUpdateProjectWorkerRuntimeLogs({
897
+ previous: manifest.deployment,
898
+ next: result.manifest.deployment,
899
+ explicit: args.subcommand === "upgrade" && args.runtimeLogs !== void 0
900
+ }) ? await updateProjectWorkerRuntimeLogs(client, {
901
+ accountId: manifest.account.id,
902
+ namespace: result.manifest.deployment.resources.dispatchNamespace,
903
+ minimal: !!result.manifest.deployment.runtimeLogs,
904
+ installationId: manifest.id
905
+ }) : void 0;
891
906
  reportResult = () => {
892
907
  progress?.stop(result.waitingForDns || result.waitingForSandboxDrain ? "Platform operation paused; progress is saved." : `Platform ${args.subcommand} complete.`);
893
908
  progress = void 0;
@@ -917,6 +932,7 @@ async function runInstalledPlatformCommand(args) {
917
932
  log.info(`If sign-in fails, run \`void platform repair ${commandArgument(manifest.id)}\` to change the login settings.`);
918
933
  }
919
934
  }
935
+ if (runtimeLogsWarning) log.warn(runtimeLogsWarning);
920
936
  printSuccess(`${deployment.displayName}: runtime ${runtime.manifest.platformVersion} ${args.subcommand === "rollback" ? "restored" : "ready"}.`);
921
937
  };
922
938
  };
@@ -965,6 +981,7 @@ async function runInstalledPlatformCommand(args) {
965
981
  }
966
982
  function assertPlatformRollbackCompatibility(installation, target, source) {
967
983
  if (target.manifest.emailProtocolVersion !== 1 && (installation.deployment.capabilities.email || installation.resources.some((resource) => resource.key === "email-gateway-worker" && resource.state === "ready"))) throw new Error("platform: The rollback target predates the email gateway and cannot safely replace this installation. Use a runtime with email protocol version 1.");
984
+ if (installation.deployment.runtimeLogs && target.manifest.runtimeLogs !== 1) throw new Error("platform: The rollback target cannot keep runtime logs minimal. Run `void platform upgrade --runtime-logs full` first, then roll back.");
968
985
  if (!installation.runtime) throw new Error("platform: The installed runtime has no artifact provenance, so post-success rollback cannot identify its compatibility manifest.");
969
986
  if (source.manifest.platformVersion !== installation.platformVersion || source.manifestSha256 !== installation.runtime.manifestSha256) throw new Error("platform: --from-runtime does not exactly match the installed runtime artifact digest. Supply the runtime used by the current successful deployment.");
970
987
  if (target.manifestSha256 === source.manifestSha256) throw new Error("platform: The rollback target is already the installed runtime artifact.");
@@ -1578,5 +1595,4 @@ async function promptForConfirmation(message, initialValue) {
1578
1595
  if (isCancel(answer) || typeof answer === "symbol") throw new Error("platform: Cancelled.");
1579
1596
  return answer;
1580
1597
  }
1581
- //#endregion
1582
1598
  export { recoverDurablyMarkedProvisionIntents as a, runInstalledPlatformCommand as c, verifyPlatformInstallationOwnership as d, platformLifecycleResumeCommand as i, selectAuthoritativePlatformManifest as l, disablePlatform as n, resolveInstalledPlatformManifest as o, isPlatformManifestMonotonicExtension as r, resolvePlatformRuntimeTokenToPreflight as s, assertPlatformRollbackCompatibility as t, uninstallPlatform as u };
@@ -1 +1 @@
1
- export { c as runInstalledPlatformCommand, l as selectAuthoritativePlatformManifest, d as verifyPlatformInstallationOwnership } from "./platform-management-BOnGbMSM.mjs";
1
+ export { c as runInstalledPlatformCommand, l as selectAuthoritativePlatformManifest, d as verifyPlatformInstallationOwnership } from "./platform-management-BRefdHGD.mjs";
@@ -1,11 +1,11 @@
1
- import { A as confirm, K as select, X as text, tt as isCancel } from "./dist-Cor9XGoz.mjs";
2
- import { m as printSuccess } from "./output-BpgYODYx.mjs";
3
- import { n as OperatorClient, r as OperatorClientError } from "./operator-client-C-ROjk1I.mjs";
4
- import { a as resolveOperatorOrigin, r as readOperatorToken } from "./operator-auth-Cr2zCc-J.mjs";
1
+ import { A as confirm, K as select, X as text, tt as isCancel } from "./dist-D23AAMxT.mjs";
2
+ import { m as printSuccess } from "./output-BCdLioKP.mjs";
3
+ import { n as OperatorClient, r as OperatorClientError } from "./operator-client-BIY4-N_6.mjs";
4
+ import { a as resolveOperatorOrigin, r as readOperatorToken } from "./operator-auth-CfDcmzpo.mjs";
5
5
  import { stripVTControlCharacters } from "node:util";
6
6
  import { PLAN_EDITABLE_LIMIT_KEYS, PLAN_LIMITS, parseBuildInstanceType, parsePlanLimitsPatch, parsePlanName, parsePlatformPlanId } from "@void/platform/plans";
7
7
  import { readFile } from "node:fs/promises";
8
- //#region src/cli/platform-plans-config.ts
8
+ // src/cli/platform-plans-config.ts
9
9
  const limitLabels = {
10
10
  requestsPerMonth: "Requests per billing month",
11
11
  cpuMsPerRequest: "Default CPU per request (ms)",
@@ -360,5 +360,4 @@ async function runPlatformPlansConfig(args) {
360
360
  }
361
361
  await apply(client, path, body, args, catalog);
362
362
  }
363
- //#endregion
364
363
  export { runPlatformPlansConfig };
@@ -1,9 +1,9 @@
1
- import { o as listInstallationManifests, t as acquirePlatformLifecycleLock, x as writeInstallationManifest, y as savePlatformConnection } from "./platform-registry-B9mWX9LO.mjs";
2
- import { t as cfAccessHeaders } from "./cf-access-BM9G0lhO.mjs";
3
- import { f as REMOTE_INSTALLATION_MANIFEST_KEY, k as createPlatformInstallPlan } from "./platform-lifecycle-CPYY7E9B.mjs";
4
- import { a as recoverDurablyMarkedProvisionIntents, d as verifyPlatformInstallationOwnership, r as isPlatformManifestMonotonicExtension } from "./platform-management-BOnGbMSM.mjs";
1
+ import { o as listInstallationManifests, t as acquirePlatformLifecycleLock, x as writeInstallationManifest, y as savePlatformConnection } from "./platform-registry-DZ_2Xuqd.mjs";
2
+ import { t as cfAccessHeaders } from "./cf-access-pejlJmuy.mjs";
3
+ import { f as REMOTE_INSTALLATION_MANIFEST_KEY, k as createPlatformInstallPlan } from "./platform-lifecycle-D9RdGub1.mjs";
4
+ import { a as recoverDurablyMarkedProvisionIntents, d as verifyPlatformInstallationOwnership, r as isPlatformManifestMonotonicExtension } from "./platform-management-BRefdHGD.mjs";
5
5
  import { parsePlatformInstallationManifest, setInstallationEndpoints } from "@void/platform";
6
- //#region src/cli/platform-recovery.ts
6
+ // src/cli/platform-recovery.ts
7
7
  async function recoverPlatformInstallations(client, accountId, verifyEndpoint = verifyInstallationEndpoint, selector = "") {
8
8
  const namespaces = await client.listKvNamespaces(accountId);
9
9
  const recovered = [];
@@ -93,5 +93,4 @@ async function verifyInstallationEndpoint(manifest, fetcher = fetch) {
93
93
  if (!response.ok) throw new Error(`platform: Installation ${manifest.id} is not reachable (HTTP ${response.status}).`);
94
94
  if ((await response.json()).installationId !== manifest.id) throw new Error(`platform: Installation ${manifest.id} endpoint identity does not match.`);
95
95
  }
96
- //#endregion
97
96
  export { recoverPlatformInstallations };
@@ -1,11 +1,11 @@
1
- import { a as join, c as resolve } from "./dist-ipQi0Q8y.mjs";
2
- import { t as writeFileAtomic } from "./atomic-write-Dq6R0BPN.mjs";
1
+ import { a as join, c as resolve } from "./dist-DMYe8CZJ.mjs";
2
+ import { t as writeFileAtomic } from "./atomic-write-DA6eD1Kp.mjs";
3
3
  import { closeSync, mkdirSync, openSync, readFileSync, readdirSync, rmSync, statSync, writeFileSync } from "node:fs";
4
4
  import { parsePlatformInstallationManifest } from "@void/platform";
5
5
  import { createCipheriv, createDecipheriv, createHash, randomBytes } from "node:crypto";
6
6
  import { homedir, hostname } from "node:os";
7
7
  import { Entry } from "@napi-rs/keyring";
8
- //#region src/cli/keyring.ts
8
+ // src/cli/keyring.ts
9
9
  function readKeyringPassword(service, account) {
10
10
  try {
11
11
  return new Entry(service, account).getPassword();
@@ -29,8 +29,7 @@ function deleteKeyringPassword(service, account) {
29
29
  return false;
30
30
  }
31
31
  }
32
- //#endregion
33
- //#region src/cli/platform-registry.ts
32
+ // src/cli/platform-registry.ts
34
33
  const PLATFORM_REGISTRY_SCHEMA_VERSION = 1;
35
34
  const DEFAULT_REGISTRY = {
36
35
  activeConnectionId: null,
@@ -433,5 +432,4 @@ function removePlatformConnectionForInstallation(installationId, directory = pla
433
432
  });
434
433
  });
435
434
  }
436
- //#endregion
437
435
  export { deleteKeyringPassword as C, writePendingInstallationSecrets as S, writeKeyringPassword as T, removePlatformConnectionForInstallation as _, latestPlatformWorkerCutoverGeneration as a, selectPlatformConnection as b, normalizePlatformApiUrl as c, platformRegistryDirectory as d, platformWorkerSecretUpdateIntentState as f, removeInstallationRecoverySecrets as g, readPendingInstallationSecrets as h, getActivePlatformConnection as i, platformConnectionSlug as l, readInstallationRecoverySecrets as m, assertPlatformInstallationSlugAvailable as n, listInstallationManifests as o, promoteInstallationSecrets as p, findPlatformConnections as r, listPlatformConnections as s, acquirePlatformLifecycleLock as t, platformCredentialAccount as u, resolveInstallationManifest as v, readKeyringPassword as w, writeInstallationManifest as x, savePlatformConnection as y };
@@ -0,0 +1,68 @@
1
+ // src/cli/platform-runtime-logs.ts
2
+ /**
3
+ * Namespace scripts that run project code: one `user-<slug>-<deployment>` per
4
+ * deployment, and `void-do-<project>-<hash>` hosts for custom Durable Objects.
5
+ */
6
+ const PROJECT_WORKER_PREFIXES = ["user-", "void-do-"];
7
+ const CONCURRENCY = 4;
8
+ /** Printed by log readers when the platform answers `runtimeLogs: 'minimal'`. */
9
+ const MINIMAL_RUNTIME_LOGS_NOTE = "Log messages, exception messages and URLs are not recorded on this platform.";
10
+ /** Same `observability` the API sends when it uploads a project Worker. */
11
+ function projectWorkerObservability(minimal) {
12
+ return minimal ? { enabled: false } : {
13
+ enabled: true,
14
+ logs: {
15
+ invocation_logs: true,
16
+ head_sampling_rate: 1
17
+ }
18
+ };
19
+ }
20
+ function assertPlatformRuntimeLogsSupported(deployment, runtime) {
21
+ if (deployment.runtimeLogs && runtime.runtimeLogs !== 1) throw new Error("platform: This platform runtime cannot keep runtime logs minimal. Upgrade Void or use a current platform runtime.");
22
+ }
23
+ /**
24
+ * Project Workers keep the settings they were uploaded with, so a changed
25
+ * mode is pushed to them. While minimal, every operation pushes it again, so
26
+ * a run that stopped before this step is finished by the next one.
27
+ */
28
+ function shouldUpdateProjectWorkerRuntimeLogs(input) {
29
+ const minimal = !!input.next.runtimeLogs;
30
+ return minimal || input.explicit || minimal !== !!input.previous?.runtimeLogs;
31
+ }
32
+ /**
33
+ * Update every project Worker's `observability` setting. Never throws: returns
34
+ * a warning to print when some Workers could not be updated.
35
+ */
36
+ async function updateProjectWorkerRuntimeLogs(client, input) {
37
+ const finish = input.minimal ? ` Run \`void platform repair ${input.installationId}\` to finish.` : ` Run \`void platform upgrade ${input.installationId} --runtime-logs full\` again to finish.`;
38
+ let scripts;
39
+ try {
40
+ scripts = (await client.listDispatchNamespaceScripts(input.accountId, input.namespace)).filter((name) => PROJECT_WORKER_PREFIXES.some((prefix) => name.startsWith(prefix)));
41
+ } catch (error) {
42
+ return `Could not list project Workers to update their Workers Logs setting: ${errorMessage(error)}.${finish}`;
43
+ }
44
+ const settings = { observability: projectWorkerObservability(input.minimal) };
45
+ const failed = [];
46
+ let next = 0;
47
+ const work = async () => {
48
+ while (next < scripts.length) {
49
+ const script = scripts[next++];
50
+ try {
51
+ await client.patchDispatchNamespaceScriptSettings(input.accountId, input.namespace, script, settings);
52
+ } catch {
53
+ failed.push(script);
54
+ }
55
+ }
56
+ };
57
+ await Promise.all(Array.from({ length: Math.min(CONCURRENCY, scripts.length) }, work));
58
+ if (failed.length === 0) return;
59
+ failed.sort();
60
+ const shown = failed.slice(0, 5).join(", ");
61
+ const more = failed.length > 5 ? ` and ${failed.length - 5} more` : "";
62
+ return `Could not update the Workers Logs setting of ${failed.length} project Worker${failed.length === 1 ? "" : "s"} (${shown}${more}).${finish}`;
63
+ }
64
+ function errorMessage(error) {
65
+ const message = error instanceof Error ? error.message : String(error);
66
+ return message.endsWith(".") ? message.slice(0, -1) : message;
67
+ }
68
+ export { updateProjectWorkerRuntimeLogs as i, assertPlatformRuntimeLogsSupported as n, shouldUpdateProjectWorkerRuntimeLogs as r, MINIMAL_RUNTIME_LOGS_NOTE as t };
@@ -1,7 +1,19 @@
1
- import { u as openBrowser } from "./auth-B6iOCjKI.mjs";
2
- import { L as log, tt as isCancel } from "./dist-Cor9XGoz.mjs";
3
- import { f as import_picocolors, s as formatLink } from "./output-BpgYODYx.mjs";
4
- //#region src/cli/platform-setup.ts
1
+ import { u as openBrowser } from "./auth-Dy8svcqQ.mjs";
2
+ import { L as log, tt as isCancel } from "./dist-D23AAMxT.mjs";
3
+ import { f as import_picocolors, s as formatLink } from "./output-BCdLioKP.mjs";
4
+ // src/cli/platform-plan-writes.ts
5
+ function planCreatesZone(plan) {
6
+ return plan.actions.some((action) => action.kind === "zone" && action.action === "create");
7
+ }
8
+ /**
9
+ * Whether applying the plan writes a DNS record, which needs Zone → DNS → Edit.
10
+ * 'reuse' changes nothing and 'adopt' only records an existing record in the
11
+ * manifest; only 'create' calls the DNS API.
12
+ */
13
+ function planWritesDns(plan) {
14
+ return plan.actions.some((action) => action.kind === "dns-record" && action.action !== "reuse" && action.action !== "adopt");
15
+ }
16
+ // src/cli/platform-setup.ts
5
17
  /** Return a prompt answer, or stop the platform command when the prompt was cancelled. */
6
18
  function platformPromptAnswer(value) {
7
19
  if (isCancel(value) || typeof value === "symbol") throw new Error("platform: Cancelled.");
@@ -215,7 +227,7 @@ function platformSetupPages(plan) {
215
227
  };
216
228
  }
217
229
  function formatPlatformSetupPlan(plan, options = {}) {
218
- const writesDns = plan.actions.some((action) => action.kind === "zone" && action.action === "create" || action.kind === "dns-record" && action.action !== "reuse");
230
+ const writesDns = planCreatesZone(plan) || planWritesDns(plan);
219
231
  return [
220
232
  "The installation will guide you through setting up the following credentials:",
221
233
  "",
@@ -268,6 +280,7 @@ function platformInstallCommandArguments(options) {
268
280
  }
269
281
  flag("--dashboard-url", options.dashboardUrl ?? "");
270
282
  flag("--runtime", options.runtime);
283
+ flag("--runtime-logs", options.runtimeLogs ?? "");
271
284
  if (options.yes) parts.push("--yes");
272
285
  return parts;
273
286
  }
@@ -289,5 +302,4 @@ function openPlatformSetupPage(page, dependencies = {}) {
289
302
  log.info("Could not open the browser. Use the link above.");
290
303
  }
291
304
  }
292
- //#endregion
293
- export { platformManagementSetupPage as a, platformSetupLink as c, platformInstallCommandArguments as i, platformSetupPages as l, formatPlatformSetupPlan as n, platformPromptAnswer as o, openPlatformSetupPage as r, platformSetupFieldHelp as s, formatPlatformInstallCommand as t };
305
+ export { platformManagementSetupPage as a, platformSetupLink as c, planWritesDns as d, platformInstallCommandArguments as i, platformSetupPages as l, formatPlatformSetupPlan as n, platformPromptAnswer as o, openPlatformSetupPage as r, platformSetupFieldHelp as s, formatPlatformInstallCommand as t, planCreatesZone as u };
@@ -1,14 +1,14 @@
1
- import { a as join, l as toSlash, s as relative } from "./dist-ipQi0Q8y.mjs";
2
- import { n as readProjectPaths } from "./project-paths-DGu_QZ_Q.mjs";
3
- import { n as globSync } from "./dist-D15hFhP0.mjs";
4
- import { d as deriveFromSource, g as ROUTE_EXTENSIONS, h as parseWebSocketFilename, m as parseRouteFilename, p as isRouteEnabledForEnvironment, t as pageFileEnvironment } from "./scan-N9WzdcAl.mjs";
5
- import { a as isObjectExpression, i as isMemberExpression, n as isIdentifier, r as isLiteral, t as isCallExpression } from "./ast-CsZ_q_gc.mjs";
6
- import { a as staticLiteral, n as bindingResolver, o as unwrapStaticExpression, r as walk } from "./ast-bindings-C3yaPs1y.mjs";
7
- import { n as resourceNameWords, t as isResourceName } from "./resource-name-C7LVpcRm.mjs";
8
- import { r as getSsrServerEntryPath } from "./entry-BEM8ZuGP.mjs";
1
+ import { a as join, l as toSlash, s as relative } from "./dist-DMYe8CZJ.mjs";
2
+ import { n as readProjectPaths } from "./project-paths-CdGv9Tmi.mjs";
3
+ import { n as globSync } from "./dist-BWNkVq50.mjs";
4
+ import { d as deriveFromSource, g as ROUTE_EXTENSIONS, h as parseWebSocketFilename, m as parseRouteFilename, p as isRouteEnabledForEnvironment, t as pageFileEnvironment } from "./scan-X2rDDRNa.mjs";
5
+ import { a as isObjectExpression, i as isMemberExpression, n as isIdentifier, r as isLiteral, t as isCallExpression } from "./ast-Cv0JwXqb.mjs";
6
+ import { a as staticLiteral, n as bindingResolver, o as unwrapStaticExpression, r as walk } from "./ast-bindings-BkivMJIo.mjs";
7
+ import { n as resourceNameWords, t as isResourceName } from "./resource-name-DlJ9QXzg.mjs";
8
+ import { r as getSsrServerEntryPath } from "./entry-CBZsCy3O.mjs";
9
9
  import { existsSync, readFileSync } from "node:fs";
10
10
  import { parseSync } from "vite";
11
- //#region src/application-features.ts
11
+ // src/application-features.ts
12
12
  /** Apply explicitly named overrides while preserving unrelated source features. */
13
13
  function applyBindingOverrides(inferred, overrides) {
14
14
  const bindings = { ...inferred };
@@ -28,8 +28,7 @@ function applyBindingOverrides(inferred, overrides) {
28
28
  function needsApplicationDatabase(bindings, migrationCount) {
29
29
  return bindings.needsD1 || bindings.needsAuth || migrationCount > 0;
30
30
  }
31
- //#endregion
32
- //#region src/shared/convention-files.ts
31
+ // src/shared/convention-files.ts
33
32
  const WELL_KNOWN_DIR = ".well-known";
34
33
  /** Include the convention directory's .well-known files when it is inside the scan directory. */
35
34
  function conventionFileGlobs(scanDir, pattern, conventionDir = scanDir) {
@@ -63,8 +62,7 @@ function listConventionFiles(dir) {
63
62
  function listRouteFiles(dir) {
64
63
  return listFilesWithExtensions(dir, ROUTE_EXTENSIONS);
65
64
  }
66
- //#endregion
67
- //#region src/shared/resource-definition.ts
65
+ // src/shared/resource-definition.ts
68
66
  /** Inspect default helper definitions without running application code. */
69
67
  function readResourceDefinition(filename, source, helpers) {
70
68
  let program;
@@ -178,8 +176,7 @@ function readResourceDefinition(filename, source, helpers) {
178
176
  ...name === void 0 ? {} : { name }
179
177
  };
180
178
  }
181
- //#endregion
182
- //#region src/shared/module-references.ts
179
+ // src/shared/module-references.ts
183
180
  /** Runtime imports and re-exports, in source order, including empty export lists. */
184
181
  function staticModuleReferences(parsed, code) {
185
182
  const { staticImports, staticExports } = parsed.module;
@@ -205,8 +202,7 @@ function staticModuleReferences(parsed, code) {
205
202
  }];
206
203
  });
207
204
  }
208
- //#endregion
209
- //#region src/inference/client-auth.ts
205
+ // src/inference/client-auth.ts
210
206
  const CLIENT_MODULES = /* @__PURE__ */ new Set([
211
207
  "void/client",
212
208
  "void/client/react",
@@ -301,8 +297,7 @@ function inferNamespaceAuth(program) {
301
297
  }
302
298
  return reads.some(isClientNamespace);
303
299
  }
304
- //#endregion
305
- //#region src/inference/walk.ts
300
+ // src/inference/walk.ts
306
301
  const ENV_BINDING_RE = /\benv\b|\\(?:u|x|[0-7\r\n\u2028\u2029])/;
307
302
  const RESOURCE_BINDING_RE = /\b(?:DB\b|KV\b|STORAGE\b|AI\b|SANDBOX\b|QUEUE_)|\\(?:u|x|[0-7A-Z_\r\n\u2028\u2029])/;
308
303
  /**
@@ -436,8 +431,7 @@ function mergeBindings(bindings) {
436
431
  needsEmail: bindings.some((b) => b.needsEmail)
437
432
  };
438
433
  }
439
- //#endregion
440
- //#region src/router/websocket.ts
434
+ // src/router/websocket.ts
441
435
  const WEBSOCKET_ROUTE_RE = new RegExp(`(?:\\.(?:dev|prod))?\\.ws\\.(?:${ROUTE_EXTENSIONS.join("|")})$`);
442
436
  function isWebSocketRouteFile(filePath) {
443
437
  return WEBSOCKET_ROUTE_RE.test(filePath.replace(/\\/g, "/"));
@@ -508,8 +502,7 @@ function scanWebSocketRoutesSync(root, paths = readProjectPaths(root), environme
508
502
  function isWebSocketPatternFile(filePath) {
509
503
  return isWebSocketRouteFile(filePath);
510
504
  }
511
- //#endregion
512
- //#region src/plugin-inference.ts
505
+ // src/plugin-inference.ts
513
506
  const SOURCE_GLOB = "**/*.{ts,tsx,mts,js,jsx,mjs,astro}";
514
507
  /** Directories to scan for binding inference in framework mode. */
515
508
  const FRAMEWORK_SCAN_DIRS = [
@@ -668,5 +661,4 @@ function inferProjectBindings(root, options, scanDirs) {
668
661
  }
669
662
  return applyBindingOverrides(mergeBindings(allBindings), options?.bindings);
670
663
  }
671
- //#endregion
672
664
  export { deriveWebSocketClassNameFromName as a, scanWebSocketRoutesSync as c, readResourceDefinition as d, listConventionFiles as f, needsApplicationDatabase as h, inferProjectBindings as i, inferBindingsFromSource as l, applyBindingOverrides as m, FRAMEWORK_SCAN_DIRS as n, inferWebSocketResourceName as o, listRouteFiles as p, detectFramework as r, isWebSocketPatternFile as s, DEFAULT_SCAN_DIRS as t, staticModuleReferences as u };
@@ -1,4 +1,22 @@
1
- //#region src/pages/prefetch.ts
1
+ // src/pages/prefetch.ts
2
+ const LINK_PREFETCH_STRATEGIES = [
3
+ "hover",
4
+ "click",
5
+ "mount",
6
+ "visible"
7
+ ];
8
+ function isLinkPrefetchStrategy(value) {
9
+ return LINK_PREFETCH_STRATEGIES.includes(value);
10
+ }
11
+ /** Rejects an invalid `prefetch.defaultStrategy` when the plugin is configured. */
12
+ function assertLinkPrefetchValue(value, name) {
13
+ if (typeof value === "boolean") return;
14
+ const strategies = Array.isArray(value) ? value : [value];
15
+ for (const strategy of strategies) if (!isLinkPrefetchStrategy(strategy)) {
16
+ const allowed = LINK_PREFETCH_STRATEGIES.map((s) => `'${s}'`).join(", ");
17
+ throw new Error(`${name}: Invalid prefetch strategy ${JSON.stringify(strategy)}. Use true, false, ${allowed}, or an array of strategies.`);
18
+ }
19
+ }
2
20
  const UNITS = {
3
21
  ms: 1,
4
22
  s: 1e3,
@@ -86,5 +104,4 @@ var PrefetchCache = class {
86
104
  this.entries.clear();
87
105
  }
88
106
  };
89
- //#endregion
90
- export { parseCacheFor as n, PrefetchCache as t };
107
+ export { assertLinkPrefetchValue as n, parseCacheFor as r, PrefetchCache as t };
@@ -1,9 +1,14 @@
1
- //#region src/pages/prefetch.d.ts
1
+ declare const LINK_PREFETCH_STRATEGIES: readonly ["hover", "click", "mount", "visible"];
2
+ type LinkPrefetchStrategy = (typeof LINK_PREFETCH_STRATEGIES)[number];
3
+ /** A Link's `prefetch` prop, and the `prefetch.defaultStrategy` of an adapter plugin. */
4
+ type LinkPrefetchValue = boolean | LinkPrefetchStrategy | ReadonlyArray<LinkPrefetchStrategy>;
2
5
  type CacheForResult = {
3
6
  stale: number;
4
7
  expires: number;
5
8
  };
6
9
  type CacheForInput = number | string | [string, string];
10
+ /** Rejects an invalid `prefetch.defaultStrategy` when the plugin is configured. */
11
+ declare function assertLinkPrefetchValue(value: unknown, name: string): asserts value is LinkPrefetchValue;
7
12
  declare function parseCacheFor(value: CacheForInput): CacheForResult;
8
13
  type CacheEntry = {
9
14
  url: string;
@@ -27,5 +32,4 @@ declare class PrefetchCache {
27
32
  flush(url: string, method?: string): void;
28
33
  flushAll(): void;
29
34
  }
30
- //#endregion
31
- export { parseCacheFor as a, PrefetchCache as i, CacheForInput as n, CacheForResult as r, CacheEntry as t };
35
+ export { LinkPrefetchValue as a, parseCacheFor as c, LinkPrefetchStrategy as i, CacheForInput as n, PrefetchCache as o, CacheForResult as r, assertLinkPrefetchValue as s, CacheEntry as t };
@@ -1,17 +1,17 @@
1
- import { a as join } from "./dist-ipQi0Q8y.mjs";
2
- import { t as discoverSchema } from "./discover-LaV0tbIu.mjs";
3
- import { a as projectAuthConfigImporter, i as loadVoidAuthConfig } from "./config-D-6q7EBH.mjs";
4
- import { c as getDatabaseCasing, p as readConfig } from "./config-OFOAimzt.mjs";
5
- import { i as writeFileIfChanged, n as ensureProjectTsconfig } from "./project-tsconfig-CVvk6Z_e.mjs";
6
- import { n as generateDbDts } from "./db-types-0eCiqYb1.mjs";
7
- import { s as loadLocalEnv } from "./env-BaMz0j7H.mjs";
8
- import { n as findEnvFileForPaths, r as generateEnvTypes } from "./env-types-BicfKBhV.mjs";
9
- import { t as analyzeApplication } from "./application-routing-4719u_kf.mjs";
10
- import { n as generateQueueTypes, r as generateAuthTypes, t as generateRouteTypes } from "./route-types-DvEGmPif.mjs";
11
- import { n as generateVoidAuthDrizzleSchema, t as generateVoidAuthDatabaseModule } from "./drizzle-BQfyvQKX.mjs";
1
+ import { a as join } from "./dist-DMYe8CZJ.mjs";
2
+ import { t as discoverSchema } from "./discover-Dhkzxgdt.mjs";
3
+ import { a as projectAuthConfigImporter, i as loadVoidAuthConfig } from "./config-WlvEcL82.mjs";
4
+ import { c as getDatabaseCasing, p as readConfig } from "./config-BITKQ3O6.mjs";
5
+ import { s as loadLocalEnv } from "./env-CuzZZyjB.mjs";
6
+ import { i as writeFileIfChanged, n as ensureProjectTsconfig } from "./project-tsconfig-Cf2NFjlM.mjs";
7
+ import { n as generateDbDts } from "./db-types-C_8amnB0.mjs";
8
+ import { n as findEnvFileForPaths, r as generateEnvTypes } from "./env-types-DqzVBKnS.mjs";
9
+ import { t as analyzeApplication } from "./application-routing-P4TggvWp.mjs";
10
+ import { n as generateQueueTypes, r as generateAuthTypes, t as generateRouteTypes } from "./route-types-CZc1YXjF.mjs";
11
+ import { n as generateVoidAuthDrizzleSchema, t as generateVoidAuthDatabaseModule } from "./drizzle-lFdzSEa9.mjs";
12
12
  import { existsSync, rmSync } from "node:fs";
13
13
  import { fileURLToPath } from "node:url";
14
- //#region src/codegen/prepare.ts
14
+ // src/codegen/prepare.ts
15
15
  function writeGeneratedFile(outDir, fileName, content, written) {
16
16
  if (writeFileIfChanged(join(outDir, fileName), content)) written.push(join(".void", fileName));
17
17
  }
@@ -38,7 +38,7 @@ async function prepareProject(root) {
38
38
  } else removeGeneratedFile(outDir, "auth.d.ts", removed);
39
39
  const hasRouteTypes = scan.routes.length > 0 || (scan.websockets?.length ?? 0) > 0 || scan.pages.pages.length > 0;
40
40
  if (hasRouteTypes) {
41
- const { dts } = generateRouteTypes(scan, paths.routesDir, outDir, paths.pagesDir);
41
+ const { dts } = generateRouteTypes(scan, paths.routesDir, outDir, paths.pagesDir, { typedRoutes: config.routing?.typedRoutes });
42
42
  writeGeneratedFile(outDir, "routes.d.ts", dts, written);
43
43
  } else removeGeneratedFile(outDir, "routes.d.ts", removed);
44
44
  if (existsSync(paths.queuesDir)) writeGeneratedFile(outDir, "queues.d.ts", generateQueueTypes(scan.queues, paths.queuesDir, outDir), written);
@@ -77,5 +77,4 @@ async function prepareProject(root) {
77
77
  removed
78
78
  };
79
79
  }
80
- //#endregion
81
80
  export { prepareProject as t };
@@ -1,7 +1,7 @@
1
- import { L as log } from "./dist-Cor9XGoz.mjs";
2
- import { m as printSuccess, p as note } from "./output-BpgYODYx.mjs";
3
- import { t as prepareProject } from "./prepare-D604Yiyr.mjs";
4
- //#region src/cli/prepare.ts
1
+ import { L as log } from "./dist-D23AAMxT.mjs";
2
+ import { m as printSuccess, p as note } from "./output-BCdLioKP.mjs";
3
+ import { t as prepareProject } from "./prepare-BJW-f1f1.mjs";
4
+ // src/cli/prepare.ts
5
5
  async function runPrepareCommand(root) {
6
6
  console.log();
7
7
  const result = await prepareProject(root);
@@ -10,5 +10,4 @@ async function runPrepareCommand(root) {
10
10
  if (result.written.length === 0 && result.removed.length === 0) log.info("No generated files changed.");
11
11
  printSuccess("Project codegen is ready.");
12
12
  }
13
- //#endregion
14
13
  export { runPrepareCommand };
@@ -0,0 +1 @@
1
+ export { t as prepareProject } from "./prepare-BJW-f1f1.mjs";
@@ -1,7 +1,7 @@
1
- import { a as join, i as isAbsolute, n as dirname, s as relative } from "./dist-ipQi0Q8y.mjs";
1
+ import { a as join, i as isAbsolute, n as dirname, s as relative } from "./dist-DMYe8CZJ.mjs";
2
2
  import { mkdirSync, writeFileSync } from "node:fs";
3
3
  import { extractPageDataFromHtml } from "@void/isr/core";
4
- //#region src/prerender-render.ts
4
+ // src/prerender-render.ts
5
5
  const PAGE_DATA_SCRIPT_ID = "__VOID_PAGE_DATA__";
6
6
  function assertNoPrerenderFailures(failed) {
7
7
  if (failed.length === 0) return;
@@ -144,5 +144,4 @@ async function renderPrerenderPaths(paths, clientDir, fetchPath, fetchPageData,
144
144
  failed: results.flatMap((result) => result.failed)
145
145
  };
146
146
  }
147
- //#endregion
148
147
  export { renderPrerenderPaths as i, outputFileForPath as n, readPrerenderPathsResponse as r, assertNoPrerenderFailures as t };
@@ -1,4 +1,3 @@
1
- //#region src/prerender-render.d.ts
2
1
  export type PrerenderResult = {
3
2
  rendered: Array<string>;
4
3
  failed: Array<{
@@ -10,5 +9,4 @@ export declare function assertNoPrerenderFailures(failed: PrerenderResult["faile
10
9
  export declare function outputFileForPath(path: string): string;
11
10
  export declare function readPrerenderPathsResponse(response: Response): Promise<Array<string>>;
12
11
  /** Shared renderer for local Workers and the isolated Node prerender child. */
13
- export declare function renderPrerenderPaths(paths: Array<string>, clientDir: string, fetchPath: (path: string) => Promise<Response>, fetchPageData?: (path: string) => Promise<Response>, onResult?: (path: string, outputFile: string, error?: string) => void): Promise<PrerenderResult>;
14
- //#endregion
12
+ export declare function renderPrerenderPaths(paths: Array<string>, clientDir: string, fetchPath: (path: string) => Promise<Response>, fetchPageData?: (path: string) => Promise<Response>, onResult?: (path: string, outputFile: string, error?: string) => void): Promise<PrerenderResult>;
@@ -1 +1 @@
1
- export { t as assertNoPrerenderFailures, n as outputFileForPath, r as readPrerenderPathsResponse, i as renderPrerenderPaths } from "./prerender-render-CaShbHJ3.mjs";
1
+ export { t as assertNoPrerenderFailures, n as outputFileForPath, r as readPrerenderPathsResponse, i as renderPrerenderPaths } from "./prerender-render-RlAj6hh8.mjs";
@@ -1,8 +1,8 @@
1
- import { a as join, n as dirname } from "./dist-ipQi0Q8y.mjs";
2
- import { c as normalizePlatformApiUrl, s as listPlatformConnections } from "./platform-registry-B9mWX9LO.mjs";
1
+ import { a as join, n as dirname } from "./dist-DMYe8CZJ.mjs";
2
+ import { c as normalizePlatformApiUrl, s as listPlatformConnections } from "./platform-registry-DZ_2Xuqd.mjs";
3
3
  import { mkdirSync, readFileSync, rmSync, writeFileSync } from "node:fs";
4
4
  import { normalizeApplicationDomain } from "@void/platform";
5
- //#region src/cli/project.ts
5
+ // src/cli/project.ts
6
6
  const PROJECT_FILE = ".void/project.json";
7
7
  function readProjectConfigFile(root) {
8
8
  const filePath = join(root, PROJECT_FILE);
@@ -142,5 +142,4 @@ function removeProjectConfig(root) {
142
142
  return false;
143
143
  }
144
144
  }
145
- //#endregion
146
145
  export { readProjectPlatformUrl as a, writeDeploymentPlatform as c, readProjectIdField as i, writePlatformSelection as l, readDeploymentPlatform as n, removeProjectConfig as o, readProjectConfig as r, shouldLinkDeployProject as s, attachSelectedPlatform as t, writeProjectConfig as u };
@@ -1 +1 @@
1
- export { t as attachSelectedPlatform, u as writeProjectConfig } from "./project-rqDnVsJN.mjs";
1
+ export { t as attachSelectedPlatform, u as writeProjectConfig } from "./project-CLwxcEdq.mjs";