void 0.26.0 → 0.27.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (365) hide show
  1. package/AGENTS_TEMPLATE.md +1 -3
  2. package/README.md +19 -9
  3. package/dist/{account-cmd-CDry3B5V.mjs → account-cmd-l-FM7Ioq.mjs} +8 -7
  4. package/dist/{application-analysis-DC2yPvzY.mjs → application-analysis-DKy02UY0.mjs} +21 -32
  5. package/dist/{application-routing-C9khgLiS.mjs → application-routing-DQyUh_5S.mjs} +1 -1
  6. package/dist/{auth-D52yG7hl.mjs → auth-Dn2vw-SG.mjs} +9 -9
  7. package/dist/{auth-B60QDbjg.mjs → auth-LMJcNESe.mjs} +1 -1
  8. package/dist/{auth-link-DjeOptYi.mjs → auth-link-vz9Z2kmG.mjs} +5 -5
  9. package/dist/{auth-migrations-9vif1uj8.mjs → auth-migrations-BwHgeEsD.mjs} +8 -18
  10. package/dist/{auth-router-BRxIuqDi.mjs → auth-router-DvsCUVw4.mjs} +6 -19
  11. package/dist/{better-auth-shared-BVkjZ3vM.d.mts → better-auth-shared-CPvWD3nG.d.mts} +0 -4
  12. package/dist/{better-auth-shared-hy6RPh9W.mjs → better-auth-shared-DPpj8zxc.mjs} +94 -16
  13. package/dist/{build-cmd-Ce3C8huo.mjs → build-cmd-D6we0VjO.mjs} +8 -7
  14. package/dist/{cache-CS8Yxr5a.mjs → cache-CZRdzKx1.mjs} +8 -8
  15. package/dist/{cancel-deploy-mZsD88Xa.mjs → cancel-deploy-CQ3NnMvf.mjs} +6 -5
  16. package/dist/{cf-access-YTlqvAsk.mjs → cf-access-BcIBSKqG.mjs} +11 -12
  17. package/dist/{cf-build-output-U8o1Gl6X.mjs → cf-build-output-DjvB_872.mjs} +62 -85
  18. package/dist/cf-build-output-H9a97vME.mjs +2 -0
  19. package/dist/cf-user-agent-lKblH3zU.mjs +17 -0
  20. package/dist/cli/cli.mjs +48 -83
  21. package/dist/cli/cloudflare-operation-process.mjs +78 -78
  22. package/dist/cli/env-schema-probe.mjs +5 -6
  23. package/dist/{client-mC-dFGDD.mjs → client-DlDJuY0s.mjs} +30 -8
  24. package/dist/client-tso2OfcG.mjs +2 -0
  25. package/dist/{cloudflare-auth-Qdc7tw8F.mjs → cloudflare-auth-CuxfF6OA.mjs} +9 -17
  26. package/dist/{cloudflare-cmd-bhwCxAN6.mjs → cloudflare-cmd-lHqNlJGW.mjs} +6 -5
  27. package/dist/{cloudflare-config-Bktvwtpf.mjs → cloudflare-config-BmhBv3HV.mjs} +1 -1
  28. package/dist/{cloudflare-connect-CuhRgk3k.mjs → cloudflare-connect-2G3rL2rP.mjs} +4 -4
  29. package/dist/{cloudflare-operations-DoQrVHAt.mjs → cloudflare-operations-BlYLlowZ.mjs} +1 -1
  30. package/dist/{cloudflare-operations-DYa3coIk.mjs → cloudflare-operations-CwI1bChl.mjs} +41 -70
  31. package/dist/{cloudflare-process-B-wekeR6.mjs → cloudflare-process-2-TfIEzB.mjs} +20 -22
  32. package/dist/{config-CyQ-wVd7.mjs → config-5r-YpMC-.mjs} +1 -1
  33. package/dist/{config-C_XRIPx2.mjs → config-B_ggY-IO.mjs} +3 -3
  34. package/dist/config-BtSFvXZx.mjs +2 -0
  35. package/dist/config-CLYAosnQ.mjs +78 -0
  36. package/dist/{config-BMHb8RCj.d.mts → config-CSa15FvD.d.mts} +1 -1
  37. package/dist/{config-Br_JZD6u.mjs → config-DiowPT80.mjs} +24 -30
  38. package/dist/config-entry.d.mts +1 -1
  39. package/dist/{config-write-B1f88wJA.mjs → config-write-AHGesphx.mjs} +8 -7
  40. package/dist/{connect-H6EvP62X.mjs → connect-BfPBHHm-.mjs} +12 -11
  41. package/dist/{create-project-B2kk9Q0o.mjs → create-project-BdXEFKal.mjs} +7 -7
  42. package/dist/{create-project-Dbb4uiN-.mjs → create-project-qFDC45zg.mjs} +1 -1
  43. package/dist/{db-DpCKZto0.mjs → db-Xs80hcaA.mjs} +101 -133
  44. package/dist/{delete-CxlSvsvW.mjs → delete-d2vuou3j.mjs} +7 -7
  45. package/dist/{deploy-CeEbnv4b.mjs → deploy-Bqe1PYBw.mjs} +2351 -2497
  46. package/dist/deploy-VsWsVQkw.mjs +2 -0
  47. package/dist/{dev-inbox-D64ZKUod.mjs → dev-inbox-CK-UuPob.mjs} +7 -16
  48. package/dist/{discover-BcPPiF1o.mjs → discover-CkCYv9T_.mjs} +1 -2
  49. package/dist/discover-EDUf6JJw.mjs +2 -0
  50. package/dist/{prompts-ZAuJlyCj.mjs → dist-Bx1z6Eva.mjs} +1 -1
  51. package/dist/{dist-AoCzRTJE.mjs → dist-Cegxq8gs.mjs} +8 -8
  52. package/dist/{prompts-6OSVA7DJ.mjs → dist-D3m88sjf.mjs} +10 -53
  53. package/dist/{domain-B_9VgOm6.mjs → domain-BsDUBAvt.mjs} +29 -30
  54. package/dist/{dotenv-VQxupEUv.mjs → dotenv-BfU6eqFt.mjs} +20 -32
  55. package/dist/{drizzle-Beb2Am5S.mjs → drizzle-CF84FOVM.mjs} +16 -13
  56. package/dist/{email-BokHgjKj.mjs → email-_lGAHOhp.mjs} +24 -19
  57. package/dist/{email--tEtMoj_.mjs → email-d_Aux1vM.mjs} +1 -1
  58. package/dist/{entry-CF5wvH4w.mjs → entry-CMAkqBmU.mjs} +6 -6
  59. package/dist/{env-_v349JBd.mjs → env-BxocywBB.mjs} +25 -6
  60. package/dist/{env-BdTc-K2L.mjs → env-C74QepDE.mjs} +10 -10
  61. package/dist/{env-D5liuQYR.mjs → env-DMA3cXZt.mjs} +1 -1
  62. package/dist/{env-raw-Cx8ElDdj.mjs → env-raw-jZpP5n47.mjs} +1 -2
  63. package/dist/{env-types-D5kds_OZ.mjs → env-types-CwXgeMgL.mjs} +1 -1
  64. package/dist/{env-validation-cZBvGWaP.mjs → env-validation-CrVNjsPm.mjs} +1 -1
  65. package/dist/{env-validation-vBSQ8gw5.mjs → env-validation-Dxdx_5wo.mjs} +17 -21
  66. package/dist/{fetch-_SeGZao9.d.mts → fetch-BPCYVi3H.d.mts} +20 -1
  67. package/dist/{fetch-BIZJh7vR.mjs → fetch-sAcwjzLO.mjs} +1 -1
  68. package/dist/{fetch-stream-Nm3hkZbT.mjs → fetch-stream-PGgz4uGz.mjs} +18 -23
  69. package/dist/{fetch-stream-Bjf0hoZb.d.mts → fetch-stream-obvZ7fvO.d.mts} +1 -16
  70. package/dist/{gen-BhDlTpwW.mjs → gen-DtkQhvQg.mjs} +40 -57
  71. package/dist/gen-dA9hW7AV.mjs +2 -0
  72. package/dist/{github-cmd-hhkTzlGS.mjs → github-cmd-DaDdBbSS.mjs} +65 -164
  73. package/dist/{handler-DghKr6dU.mjs → handler-BHAn2fZJ.mjs} +1 -0
  74. package/dist/{handler-BeK3weD4.d.mts → handler-CNAwjRcW.d.mts} +4 -11
  75. package/dist/{head-Do8P4puT.d.mts → head-C8K_iGe6.d.mts} +1 -1
  76. package/dist/{head-D_QRR5Yd.mjs → head-D2VF4ApL.mjs} +29 -51
  77. package/dist/{headers-2rKda9Y6.mjs → headers-DlfR78Nu.mjs} +3 -3
  78. package/dist/{help-Bv44e2tm.mjs → help-0bTe_lID.mjs} +13 -32
  79. package/dist/help-DfQYVfGY.mjs +2 -0
  80. package/dist/{inbound-fRkqcXaC.mjs → inbound-PfQDLXc5.mjs} +23 -24
  81. package/dist/index.d.mts +19 -2
  82. package/dist/index.mjs +619 -532
  83. package/dist/{info-DhtTKh65.mjs → info-PYWwkWyt.mjs} +4 -4
  84. package/dist/{init-BMf4T03q.mjs → init-DaBGmaXC.mjs} +161 -198
  85. package/dist/{link-BqYsSS_I.mjs → link-C6fjafep.mjs} +10 -10
  86. package/dist/{list-_kBToO-l.mjs → list-BTFBlqKl.mjs} +9 -8
  87. package/dist/{live-CB1y5IuC.mjs → live-CgQuTpqD.mjs} +15 -16
  88. package/dist/{live-iAuEH1hd.d.mts → live-Du8jXwOW.d.mts} +4 -2
  89. package/dist/{local-d1-fGxYrVD6.mjs → local-d1-ga5O_idV.mjs} +2 -2
  90. package/dist/{login-DFuo-RWO.mjs → login-GKcNUmtI.mjs} +7 -7
  91. package/dist/login-mx_ydhmp.mjs +2 -0
  92. package/dist/{logs-DYgnh6dH.mjs → logs-BiMSULmc.mjs} +28 -11
  93. package/dist/migrate-BHp07yJE.mjs +2 -0
  94. package/dist/{migrate-CV1on-yJ.mjs → migrate-NLsjBbuM.mjs} +34 -20
  95. package/dist/{mime-D5Nmdzf7.mjs → mime-DxCznlJq.mjs} +45 -95
  96. package/dist/{node-C6Q6e1Es.mjs → node-DJicPvPj.mjs} +5 -5
  97. package/dist/{operator-args-DdY54Bgb.mjs → operator-args-DOBhIaIg.mjs} +10 -1
  98. package/dist/{operator-auth-2dsGlTT5.mjs → operator-auth-BEZ_u0Cz.mjs} +2 -2
  99. package/dist/{operator-client-BFqpp6z0.mjs → operator-client-DbDv4vtE.mjs} +2 -2
  100. package/dist/{operator-cmd-CUGHXrQf.mjs → operator-cmd-BT4hgavL.mjs} +24 -11
  101. package/dist/operator-cmd-CwBB-1yb.mjs +2 -0
  102. package/dist/{output-BvdaehtE.mjs → output-C50ag2r3.mjs} +20 -2
  103. package/dist/pages/client.d.mts +19 -51
  104. package/dist/pages/client.mjs +204 -225
  105. package/dist/pages/head-client.d.mts +1 -1
  106. package/dist/pages/head.d.mts +1 -1
  107. package/dist/pages/head.mjs +1 -1
  108. package/dist/pages/index.d.mts +2 -2
  109. package/dist/pages/index.mjs +6 -12
  110. package/dist/pages/islands-plugin.d.mts +1 -1
  111. package/dist/pages/islands-plugin.mjs +21 -25
  112. package/dist/pages/protocol.d.mts +2 -2
  113. package/dist/pages/protocol.mjs +2 -2
  114. package/dist/{plan-CJGEeTEI.mjs → plan-BhLO2p4w.mjs} +2 -1
  115. package/dist/plan-CH2G51je.mjs +2 -0
  116. package/dist/platform-args-D4E1PjVw.mjs +2 -0
  117. package/dist/{platform-args-DSV2p4nY.mjs → platform-args-DUeXY9Om.mjs} +1 -1
  118. package/dist/{platform-auth-config-Bosx7U1h.mjs → platform-auth-config-CkSx3usH.mjs} +40 -36
  119. package/dist/{platform-auth-protection-DcbL_LW_.mjs → platform-auth-protection-BJimB_p9.mjs} +9 -8
  120. package/dist/{platform-auth-recovery-WfTZ8K6o.mjs → platform-auth-recovery-BU6izFAU.mjs} +8 -7
  121. package/dist/{platform-cmd-DbKtQb_4.mjs → platform-cmd-BbY1dWiM.mjs} +14 -13
  122. package/dist/{platform-cmd-dyFUof0t.mjs → platform-cmd-BbmJiq5O.mjs} +1 -1
  123. package/dist/{platform-discovery-BC0HCKYt.mjs → platform-discovery-DIYz8V63.mjs} +1 -1
  124. package/dist/{platform-domain-Bsq43AJp.mjs → platform-domain-CHVS6cV0.mjs} +6 -6
  125. package/dist/{platform-lifecycle--5gWmDoI.mjs → platform-lifecycle-ByAlpkhV.mjs} +1 -1
  126. package/dist/{platform-lifecycle-Cfi0o6xM.mjs → platform-lifecycle-DzCwqhFq.mjs} +76 -387
  127. package/dist/{platform-management-Bbwf6-Dq.mjs → platform-management-CBOT4BSM.mjs} +1 -1
  128. package/dist/{platform-management-BrF9STZp.mjs → platform-management-CuuVDhyt.mjs} +7 -7
  129. package/dist/{platform-plans-config-DU-8nC2Y.mjs → platform-plans-config-CN-heS4q.mjs} +5 -4
  130. package/dist/{platform-recovery-DQAqAQYu.mjs → platform-recovery-CskSJgLh.mjs} +3 -3
  131. package/dist/{platform-registry-P387v42A.mjs → platform-registry-Cjv2Qf0r.mjs} +5 -1
  132. package/dist/platform-setup-BBxRxmFC.mjs +299 -0
  133. package/dist/{plugin-inference-CXWnn79A.mjs → plugin-inference-BlQbOL0P.mjs} +43 -42
  134. package/dist/prepare-DRUV-g3X.mjs +2 -0
  135. package/dist/{prepare-WoUubFKL.mjs → prepare-Do96654b.mjs} +8 -8
  136. package/dist/{prepare-BMrRWLwP.mjs → prepare-Dq9hTIbo.mjs} +4 -4
  137. package/dist/{prerender-render-D9qbLs2f.mjs → prerender-render-Ct20jftc.mjs} +17 -3
  138. package/dist/prerender-render.mjs +1 -1
  139. package/dist/{project-DQstYTxO.mjs → project-BAm2aB6Q.mjs} +1 -1
  140. package/dist/{project-BiaPQ7ur.mjs → project-DedqCp59.mjs} +1 -1
  141. package/dist/{project-cmd-BbH2LptN.mjs → project-cmd-DaoRrn-8.mjs} +19 -19
  142. package/dist/{project-team-Yiww3-go.mjs → project-team-Q_lCA7Io.mjs} +15 -18
  143. package/dist/{project-token-BrtT2NkY.mjs → project-token-BArgK9o1.mjs} +14 -17
  144. package/dist/{project-tsconfig-B8GeM0RM.mjs → project-tsconfig-CVJhNMxs.mjs} +2 -1
  145. package/dist/{project-zero-trust-nYJ2V2nc.mjs → project-zero-trust-KO9Hu2Pq.mjs} +12 -9
  146. package/dist/{protocol-BX8t2jiw.d.mts → protocol-BPZaNqBo.d.mts} +4 -2
  147. package/dist/{protocol-U7bfjHmA.mjs → protocol-CfaUwNs8.mjs} +46 -49
  148. package/dist/{providers-CJlNS3kT.mjs → providers-BXuhmuub.mjs} +1 -12
  149. package/dist/{provision-VeqAC77A.mjs → provision-BfaLiWbj.mjs} +38 -41
  150. package/dist/{provision-DMTPG8Rh.mjs → provision-Wu9ZBk9L.mjs} +2 -3
  151. package/dist/{requests-TIz_jtSu.mjs → requests-C7Oeoh5u.mjs} +5 -5
  152. package/dist/resolve-project-BIeYs9Cw.mjs +2 -0
  153. package/dist/{resolve-project-BG5ORGID.mjs → resolve-project-CP8rZs_p.mjs} +6 -1
  154. package/dist/{rollback-dBqICPzj.mjs → rollback-DVAtrLAl.mjs} +30 -37
  155. package/dist/{route-types-Clm4WD0B.mjs → route-types-CbtsIeFn.mjs} +1 -1
  156. package/dist/route-url-BgPja1GS.d.mts +5 -0
  157. package/dist/route-url-BjGv_KKY.mjs +28 -0
  158. package/dist/runner-9wjsSZx-.mjs +2 -0
  159. package/dist/{runner--2KF6Kua.mjs → runner-DMBKSrRk.mjs} +2 -2
  160. package/dist/{runner-mysql-DmWchSWJ.mjs → runner-mysql-CEzKtmFb.mjs} +8 -8
  161. package/dist/{runner-mysql-CEG5JozK.mjs → runner-mysql-CkFqZ6CE.mjs} +1 -1
  162. package/dist/{runner-pg-Bh4AgZdj.mjs → runner-pg-BGYRFdRp.mjs} +1 -1
  163. package/dist/runtime/ai.d.mts +1 -1
  164. package/dist/runtime/ai.mjs +34 -95
  165. package/dist/runtime/better-auth-mysql.d.mts +1 -1
  166. package/dist/runtime/better-auth-mysql.mjs +4 -9
  167. package/dist/runtime/better-auth-pg.d.mts +1 -1
  168. package/dist/runtime/better-auth-pg.mjs +5 -10
  169. package/dist/runtime/better-auth.d.mts +1 -1
  170. package/dist/runtime/better-auth.mjs +3 -3
  171. package/dist/runtime/client-react.d.mts +2 -3
  172. package/dist/runtime/client-react.mjs +2 -2
  173. package/dist/runtime/client-solid.d.mts +2 -3
  174. package/dist/runtime/client-solid.mjs +2 -2
  175. package/dist/runtime/client-svelte.d.mts +2 -3
  176. package/dist/runtime/client-svelte.mjs +2 -2
  177. package/dist/runtime/client-vue.d.mts +2 -3
  178. package/dist/runtime/client-vue.mjs +2 -2
  179. package/dist/runtime/client.d.mts +2 -3
  180. package/dist/runtime/client.mjs +2 -2
  181. package/dist/runtime/db.mjs +1 -1
  182. package/dist/runtime/durable.mjs +3 -10
  183. package/dist/runtime/email/testing.mjs +5 -5
  184. package/dist/runtime/email.d.mts +2 -1
  185. package/dist/runtime/email.mjs +11 -27
  186. package/dist/runtime/env-public.mjs +15 -20
  187. package/dist/runtime/env.mjs +1 -1
  188. package/dist/runtime/fetch-stream.d.mts +2 -2
  189. package/dist/runtime/fetch-stream.mjs +1 -1
  190. package/dist/runtime/fetch.d.mts +2 -3
  191. package/dist/runtime/fetch.mjs +1 -1
  192. package/dist/runtime/handler.d.mts +1 -1
  193. package/dist/runtime/handler.mjs +2 -2
  194. package/dist/runtime/isr.mjs +1 -1
  195. package/dist/runtime/kv.mjs +10 -11
  196. package/dist/runtime/live-client.d.mts +1 -1
  197. package/dist/runtime/live-client.mjs +12 -22
  198. package/dist/runtime/live-server.mjs +27 -35
  199. package/dist/runtime/live.d.mts +2 -2
  200. package/dist/runtime/live.mjs +2 -2
  201. package/dist/runtime/migration-handler.mjs +4 -81
  202. package/dist/runtime/queues.mjs +1 -1
  203. package/dist/runtime/remote/binding-handler.d.mts +2 -2
  204. package/dist/runtime/remote/binding-handler.mjs +8 -9
  205. package/dist/runtime/remote/index.mjs +27 -77
  206. package/dist/runtime/route-url.d.mts +2 -4
  207. package/dist/runtime/route-url.mjs +1 -1
  208. package/dist/runtime/routing.d.mts +1 -1
  209. package/dist/runtime/routing.mjs +15 -26
  210. package/dist/runtime/sandbox.mjs +2 -2
  211. package/dist/runtime/sse.mjs +1 -1
  212. package/dist/runtime/storage.mjs +1 -1
  213. package/dist/runtime/validator.d.mts +1 -1
  214. package/dist/runtime/ws-server.d.mts +2 -2
  215. package/dist/runtime/ws-server.mjs +30 -61
  216. package/dist/runtime/ws.d.mts +1 -1
  217. package/dist/runtime/ws.mjs +1 -1
  218. package/dist/{scan-C8dA7iM4.mjs → scan-C3uDzz6J.mjs} +12 -13
  219. package/dist/{secret-AKnNXNP5.mjs → secret-BvtB7IjY.mjs} +15 -15
  220. package/dist/{skills-BPQUGClu.mjs → skills-BgVMvQdy.mjs} +2 -2
  221. package/dist/{sse-CQNaDFFV.mjs → sse-CMvCgjNk.mjs} +1 -1
  222. package/dist/{subcommand-prompt-B6WS9Aoz.mjs → subcommand-prompt-BSlnD1fI.mjs} +2 -2
  223. package/dist/sveltekit.d.mts +0 -2
  224. package/dist/terminal-log-text-D9ACPOuG.mjs +32 -0
  225. package/dist/validate-BJr9LfXy.mjs +2 -0
  226. package/dist/{validate-ymhap6M_.mjs → validate-C9qJArv7.mjs} +9 -28
  227. package/dist/{defer-YsYDUoii.mjs → validation-error-Dg9Recn1.mjs} +11 -11
  228. package/dist/{wrangler-DhUerFkW.mjs → wrangler-D9KTuqnv.mjs} +89 -194
  229. package/dist/{ws-C79j4aED.d.mts → ws-CChrrAU-.d.mts} +1 -1
  230. package/dist/{yarn-pnp-BV4AzNul.mjs → yarn-pnp-CUX_iTPA.mjs} +19 -27
  231. package/{skills/void/docs → docs}/guide/ai.md +5 -3
  232. package/{skills/void/docs → docs}/guide/auth.md +37 -1
  233. package/{skills/void/docs → docs}/guide/database/postgresql.md +2 -2
  234. package/{skills/void/docs → docs}/guide/deployment.md +2 -2
  235. package/{skills/void/docs → docs}/guide/edge/revalidation.md +1 -1
  236. package/{skills/void/docs → docs}/guide/edge/rewrites.md +2 -4
  237. package/{skills/void/docs → docs}/guide/email/receiving.md +2 -2
  238. package/{skills/void/docs → docs}/guide/email/sending.md +0 -2
  239. package/{skills/void/docs → docs}/guide/env-vars.md +4 -0
  240. package/{skills/void/docs → docs}/guide/jobs.md +2 -2
  241. package/{skills/void/docs → docs}/guide/live.md +10 -5
  242. package/{skills/void/docs → docs}/guide/pages-routing/actions-and-forms.md +20 -8
  243. package/{skills/void/docs → docs}/guide/pages-routing/loaders.md +7 -3
  244. package/{skills/void/docs → docs}/guide/pages-routing/markdown.md +15 -23
  245. package/{skills/void/docs → docs}/guide/pages-routing/overview.md +6 -4
  246. package/{skills/void/docs → docs}/guide/platform/administration/access.md +3 -11
  247. package/{skills/void/docs → docs}/guide/platform/administration/operations.md +3 -12
  248. package/{skills/void/docs → docs}/guide/platform/administration/projects.md +1 -1
  249. package/{skills/void/docs → docs}/guide/platform/development/local.md +4 -2
  250. package/{skills/void/docs → docs}/guide/platform/development/runtime.md +1 -1
  251. package/{skills/void/docs → docs}/guide/platform/development/schema-ci.md +1 -1
  252. package/{skills/void/docs → docs}/guide/platform/installation/domains.md +3 -1
  253. package/{skills/void/docs → docs}/guide/platform/installation/first-deployment.md +4 -2
  254. package/{skills/void/docs → docs}/guide/platform/installation/maintenance.md +4 -0
  255. package/{skills/void/docs → docs}/guide/project-collaboration.md +7 -3
  256. package/{skills/void/docs → docs}/guide/queues.md +0 -2
  257. package/{skills/void/docs → docs}/guide/remote-dev.md +5 -5
  258. package/{skills/void/docs → docs}/guide/sandboxes.md +2 -2
  259. package/{skills/void/docs → docs}/guide/sse.md +0 -2
  260. package/{skills/void/docs → docs}/guide/storage.md +7 -2
  261. package/{skills/void/docs → docs}/guide/websockets.md +4 -0
  262. package/docs/integrations/agents.md +37 -0
  263. package/{skills/void/docs → docs}/integrations/frameworks/astro.md +3 -3
  264. package/{skills/void/docs → docs}/integrations/frameworks/nuxt.md +6 -2
  265. package/{skills/void/docs → docs}/integrations/hono.md +15 -7
  266. package/{skills/void/docs → docs}/integrations/nodejs-bun-deno.md +1 -0
  267. package/{skills/void/docs → docs}/reference/api/auth.md +1 -1
  268. package/{skills/void/docs → docs}/reference/api/handlers.md +4 -2
  269. package/{skills/void/docs → docs}/reference/api/pages.md +4 -0
  270. package/{skills/void/docs → docs}/reference/cli/auth.md +1 -6
  271. package/{skills/void/docs → docs}/reference/cli/database.md +3 -4
  272. package/{skills/void/docs → docs}/reference/cli/deploy.md +1 -1
  273. package/{skills/void/docs → docs}/reference/cli/generate.md +1 -1
  274. package/{skills/void/docs → docs}/reference/cli/github.md +3 -12
  275. package/{skills/void/docs → docs}/reference/cli/platform-config.md +1 -1
  276. package/{skills/void/docs → docs}/reference/cli/platform-email.md +2 -3
  277. package/{skills/void/docs → docs}/reference/cli/platform-installation.md +1 -1
  278. package/{skills/void/docs → docs}/reference/cli/platform-operations.md +3 -0
  279. package/{skills/void/docs → docs}/reference/cli/platform-users.md +2 -2
  280. package/{skills/void/docs → docs}/reference/cli/project.md +5 -4
  281. package/{skills/void/docs → docs}/reference/cli/secrets.md +3 -3
  282. package/{skills/void/docs → docs}/reference/cli/setup.md +9 -11
  283. package/{skills/void/docs → docs}/reference/cli.md +1 -1
  284. package/{skills/void/docs → docs}/reference/config.md +13 -13
  285. package/{skills/void/docs → docs}/reference/resource-inference.md +1 -16
  286. package/package.json +34 -30
  287. package/schema.json +1 -1
  288. package/skills/migrate-vite-cloudflare-to-void/SKILL.md +4 -1
  289. package/skills/void/SKILL.md +9 -5
  290. package/dist/cf-build-output-ChY6-XWP.mjs +0 -2
  291. package/dist/client-BxVixJBI.mjs +0 -2
  292. package/dist/config-0acf1oys.mjs +0 -2
  293. package/dist/config-D8MOgiQV.mjs +0 -32
  294. package/dist/deploy-qmiLE1G1.mjs +0 -2
  295. package/dist/discover-AMCBXivQ.mjs +0 -2
  296. package/dist/fetch-error-Sp1R4mZv.d.mts +0 -20
  297. package/dist/gen-qCBwH3fZ.mjs +0 -2
  298. package/dist/help-Dw5f9Xrg.mjs +0 -2
  299. package/dist/login-D7meQg_3.mjs +0 -2
  300. package/dist/migrate-CEu2X5DB.mjs +0 -2
  301. package/dist/operator-cmd-DRPvhpjM.mjs +0 -2
  302. package/dist/plan-COtUvdMA.mjs +0 -2
  303. package/dist/platform-args-Dcy_5b_Y.mjs +0 -2
  304. package/dist/prepare-BBknoZI1.mjs +0 -2
  305. package/dist/resolve-project-DtbidV4y.mjs +0 -2
  306. package/dist/route-url-CG7U-cRN.mjs +0 -15
  307. package/dist/runner-voIltZrY.mjs +0 -2
  308. package/dist/validate-pna7R3Pv.mjs +0 -2
  309. package/skills/void/docs/integrations/agents.md +0 -26
  310. package/dist/{runner-pg-D4OPlil-.mjs → runner-pg-DV8p_zjA.mjs} +4 -4
  311. package/{skills/void/docs → docs}/guide/app-types.md +0 -0
  312. package/{skills/void/docs → docs}/guide/database/d1.md +2 -2
  313. package/{skills/void/docs → docs}/guide/database/mysql.md +0 -0
  314. package/{skills/void/docs → docs}/guide/database.md +8 -8
  315. package/{skills/void/docs → docs}/guide/durable-state.md +0 -0
  316. package/{skills/void/docs → docs}/guide/edge/headers.md +0 -0
  317. package/{skills/void/docs → docs}/guide/edge/prerendering.md +0 -0
  318. package/{skills/void/docs → docs}/guide/edge/redirects.md +0 -0
  319. package/{skills/void/docs → docs}/guide/edge/static-assets.md +0 -0
  320. package/{skills/void/docs → docs}/guide/email/domains.md +0 -0
  321. package/{skills/void/docs → docs}/guide/email.md +0 -0
  322. package/{skills/void/docs → docs}/guide/index.md +0 -0
  323. package/{skills/void/docs → docs}/guide/kv.md +0 -0
  324. package/{skills/void/docs → docs}/guide/pages-routing/head.md +0 -0
  325. package/{skills/void/docs → docs}/guide/pages-routing/islands.md +2 -2
  326. package/{skills/void/docs → docs}/guide/pages-routing/layouts.md +0 -0
  327. package/{skills/void/docs → docs}/guide/pages-routing/view-transitions.md +0 -0
  328. package/{skills/void/docs → docs}/guide/platform/administration/email.md +0 -0
  329. package/{skills/void/docs → docs}/guide/platform/administration/plans.md +0 -0
  330. package/{skills/void/docs → docs}/guide/platform/administration/zero-trust.md +0 -0
  331. package/{skills/void/docs → docs}/guide/platform/installation/ci.md +0 -0
  332. package/{skills/void/docs → docs}/guide/platform/installation/credentials.md +0 -0
  333. package/{skills/void/docs → docs}/guide/platform/installation/prerequisites.md +0 -0
  334. package/{skills/void/docs → docs}/guide/platform/installation/setup.md +0 -0
  335. package/{skills/void/docs → docs}/guide/platform/installation/uninstall.md +0 -0
  336. package/{skills/void/docs → docs}/guide/platform-administration.md +0 -0
  337. package/{skills/void/docs → docs}/guide/platform-development.md +0 -0
  338. package/{skills/void/docs → docs}/guide/quickstart.md +0 -0
  339. package/{skills/void/docs → docs}/guide/self-hosted-platform.md +0 -0
  340. package/{skills/void/docs → docs}/guide/server-routing.md +3 -3
  341. package/{skills/void/docs → docs}/guide/ssg.md +0 -0
  342. package/{skills/void/docs → docs}/guide/ssr.md +0 -0
  343. package/{skills/void/docs → docs}/guide/type-safety.md +0 -0
  344. package/{skills/void/docs → docs}/guide/typed-fetch.md +0 -0
  345. package/{skills/void/docs → docs}/index.md +0 -0
  346. package/{skills/void/docs → docs}/integrations/cloudflare.md +0 -0
  347. package/{skills/void/docs → docs}/integrations/frameworks/analog.md +3 -3
  348. package/{skills/void/docs → docs}/integrations/frameworks/overview.md +0 -0
  349. package/{skills/void/docs → docs}/integrations/frameworks/react-router.md +3 -3
  350. package/{skills/void/docs → docs}/integrations/frameworks/sveltekit.md +1 -1
  351. package/{skills/void/docs → docs}/integrations/frameworks/tanstack-start.md +2 -2
  352. package/{skills/void/docs → docs}/reference/api/client.md +0 -0
  353. package/{skills/void/docs → docs}/reference/api/database.md +2 -2
  354. /package/{skills/void/docs → docs}/reference/api/durable.md +0 -0
  355. /package/{skills/void/docs → docs}/reference/api/env.md +0 -0
  356. /package/{skills/void/docs → docs}/reference/api/plugin.md +0 -0
  357. /package/{skills/void/docs → docs}/reference/api/resources.md +0 -0
  358. /package/{skills/void/docs → docs}/reference/api/rewrites.md +0 -0
  359. /package/{skills/void/docs → docs}/reference/api/types.md +0 -0
  360. /package/{skills/void/docs → docs}/reference/api.md +0 -0
  361. /package/{skills/void/docs → docs}/reference/cli/domains.md +0 -0
  362. /package/{skills/void/docs → docs}/reference/cli/email.md +0 -0
  363. /package/{skills/void/docs → docs}/reference/cli/platform-zero-trust.md +0 -0
  364. /package/{skills/void/docs → docs}/reference/cli/platform.md +0 -0
  365. /package/{skills/void/docs → docs}/reference/structure.md +0 -0
@@ -1,7 +1,8 @@
1
- import { r as readProjectConfig } from "./project-DQstYTxO.mjs";
2
- import { c as getToken } from "./auth-D52yG7hl.mjs";
3
- import { A as confirm, H as outro, L as log, tt as isCancel } from "./prompts-6OSVA7DJ.mjs";
4
- import { r as PlatformClient } from "./client-mC-dFGDD.mjs";
1
+ import { r as readProjectConfig } from "./project-BAm2aB6Q.mjs";
2
+ import { c as getToken } from "./auth-Dn2vw-SG.mjs";
3
+ import { A as confirm, H as outro, L as log, tt as isCancel } from "./dist-D3m88sjf.mjs";
4
+ import { d as printSuccess } from "./output-C50ag2r3.mjs";
5
+ import { r as PlatformClient } from "./client-DlDJuY0s.mjs";
5
6
  //#region src/cli/cancel-deploy.ts
6
7
  const ACTIVE_STATUSES = /* @__PURE__ */ new Set([
7
8
  "pending",
@@ -48,7 +49,7 @@ async function runCancelDeployCommand(root, deployId) {
48
49
  return;
49
50
  }
50
51
  await client.cancelDeployment(linked.projectId, target.id);
51
- outro(`Cancellation requested for deployment ${target.id}.`);
52
+ printSuccess(`Cancellation requested for deployment ${target.id}.`);
52
53
  }
53
54
  function formatDeployment(deployment) {
54
55
  const suffix = deployment.commit ? ` (${deployment.commit.slice(0, 7)})` : "";
@@ -1,4 +1,4 @@
1
- import { T as writeKeyringPassword, c as normalizePlatformApiUrl, u as platformCredentialAccount, w as readKeyringPassword } from "./platform-registry-P387v42A.mjs";
1
+ import { T as writeKeyringPassword, c as normalizePlatformApiUrl, u as platformCredentialAccount, w as readKeyringPassword } from "./platform-registry-Cjv2Qf0r.mjs";
2
2
  import { t as cfAccessHeaders } from "./cf-access-TWNzXltp.mjs";
3
3
  import { spawnSync } from "node:child_process";
4
4
  //#region src/cli/cf-access.ts
@@ -12,23 +12,22 @@ function usableToken(token) {
12
12
  return false;
13
13
  }
14
14
  }
15
+ function readOriginCredentials(raw) {
16
+ const parsed = JSON.parse(raw);
17
+ if (!parsed || typeof parsed !== "object" || Array.isArray(parsed)) throw new Error("platform: VOID_ACCESS_CREDENTIALS must contain an origin-keyed JSON object.");
18
+ return parsed;
19
+ }
15
20
  function rememberOriginToken(origin, token) {
16
- let entries = {};
17
- if (process.env.VOID_ACCESS_CREDENTIALS) {
18
- const parsed = JSON.parse(process.env.VOID_ACCESS_CREDENTIALS);
19
- if (!parsed || typeof parsed !== "object" || Array.isArray(parsed)) throw new Error("platform: VOID_ACCESS_CREDENTIALS must contain an origin-keyed JSON object.");
20
- entries = parsed;
21
- }
21
+ const raw = process.env.VOID_ACCESS_CREDENTIALS;
22
22
  process.env.VOID_ACCESS_CREDENTIALS = JSON.stringify({
23
- ...entries,
23
+ ...raw ? readOriginCredentials(raw) : {},
24
24
  [origin]: { CF_ACCESS_TOKEN: token }
25
25
  });
26
26
  }
27
27
  function forgetOriginToken(origin) {
28
- if (!process.env.VOID_ACCESS_CREDENTIALS) return;
29
- const parsed = JSON.parse(process.env.VOID_ACCESS_CREDENTIALS);
30
- if (!parsed || typeof parsed !== "object" || Array.isArray(parsed)) throw new Error("platform: VOID_ACCESS_CREDENTIALS must contain an origin-keyed JSON object.");
31
- const entries = { ...parsed };
28
+ const raw = process.env.VOID_ACCESS_CREDENTIALS;
29
+ if (!raw) return;
30
+ const entries = { ...readOriginCredentials(raw) };
32
31
  delete entries[origin];
33
32
  process.env.VOID_ACCESS_CREDENTIALS = JSON.stringify(entries);
34
33
  }
@@ -1,6 +1,7 @@
1
1
  import { a as join, i as isAbsolute, l as relative, n as dirname, r as extname, t as basename, u as resolve } from "./dist-BVqXeR_h.mjs";
2
2
  import { copyFileSync, cpSync, existsSync, mkdirSync, mkdtempSync, readFileSync, readdirSync, realpathSync, rmSync, symlinkSync, writeFileSync } from "node:fs";
3
3
  import { fileURLToPath } from "node:url";
4
+ import { isRecord } from "@void/deploy-core";
4
5
  import { randomUUID } from "node:crypto";
5
6
  import { tmpdir } from "node:os";
6
7
  import { isDeepStrictEqual } from "node:util";
@@ -10,7 +11,7 @@ import { InputConfigSchema, OutputContainerSchema } from "@cloudflare/config";
10
11
  import ignore from "ignore";
11
12
  //#region src/cli/cf-config-migrate.ts
12
13
  function record(value) {
13
- return value !== null && typeof value === "object" && !Array.isArray(value) ? value : null;
14
+ return isRecord(value) ? value : null;
14
15
  }
15
16
  function empty(value) {
16
17
  return value === void 0 || value === null || Array.isArray(value) && value.length === 0 || record(value) !== null && Object.keys(value).length === 0;
@@ -61,7 +62,7 @@ function applyPreservationFlags(raw, worker) {
61
62
  };
62
63
  }
63
64
  function applyWorkflows(raw, worker) {
64
- if (raw.workflows === void 0 || empty(raw.workflows)) return;
65
+ if (empty(raw.workflows)) return;
65
66
  if (!Array.isArray(raw.workflows)) throw new Error("Invalid Workflow bindings in the built Cloudflare config.");
66
67
  const env = record(worker.env) ?? {};
67
68
  const exports = record(worker.exports) ?? {};
@@ -114,6 +115,7 @@ function uncredentialedEnvironment() {
114
115
  function assertHandledFollowUps(followUps) {
115
116
  for (const item of followUps) {
116
117
  if (!item.blocking) continue;
118
+ if (item.code === "vite-plugin-install-disabled" && item.sourcePath === void 0) continue;
117
119
  const path = item.sourcePath ?? item.code;
118
120
  if (!(path === "assets.directory" && item.message.includes("assets directory") || /^d1_databases\.\d+$/.test(path) && /`migrations_(?:dir|table)`/.test(item.message) || /^durable_objects\.bindings\.\d+$/.test(path) || path === "migrations" || path === "containers")) throw new Error(`cf cannot migrate Cloudflare setting ${path}: ${item.message}`);
119
121
  }
@@ -295,9 +297,9 @@ function migrateBuiltWranglerConfig(raw) {
295
297
  class_name: className
296
298
  };
297
299
  }
300
+ result.containers = containers;
298
301
  }
299
302
  if (Object.keys(exports).length > 0) worker.exports = exports;
300
- if (containers.length > 0) result.containers = containers;
301
303
  return InputConfigSchema.parse(result);
302
304
  } finally {
303
305
  rmSync(directory, {
@@ -339,9 +341,6 @@ async function buildContainerImage(dockerfile, buildContext = dirname(dockerfile
339
341
  }
340
342
  //#endregion
341
343
  //#region src/cli/cf-build-output.ts
342
- function object(value) {
343
- return value !== null && typeof value === "object" && !Array.isArray(value) ? value : null;
344
- }
345
344
  const moduleTypes = {
346
345
  ".js": "esm",
347
346
  ".mjs": "esm",
@@ -359,6 +358,11 @@ const moduleTypes = {
359
358
  ".json": "json",
360
359
  ".map": "sourcemap"
361
360
  };
361
+ /** Whether `path` resolves strictly inside `directory`. */
362
+ function isInside(directory, path) {
363
+ const child = relative(directory, path);
364
+ return child !== "" && child !== ".." && !child.startsWith("../") && !isAbsolute(child);
365
+ }
362
366
  function copyBundle(source, destination) {
363
367
  const modules = {};
364
368
  for (const entry of readdirSync(source, {
@@ -367,11 +371,7 @@ function copyBundle(source, destination) {
367
371
  })) {
368
372
  if (!entry.isFile() && !entry.isSymbolicLink()) continue;
369
373
  const absolute = join(entry.parentPath, entry.name);
370
- if (entry.isSymbolicLink()) {
371
- const target = realpathSync(absolute);
372
- const targetRelative = relative(realpathSync(source), target).replace(/\\/g, "/");
373
- if (!targetRelative || targetRelative === ".." || targetRelative.startsWith("../") || isAbsolute(targetRelative)) throw new Error("The built Worker contains a symlink outside its output directory.");
374
- }
374
+ if (entry.isSymbolicLink() && !isInside(realpathSync(source), realpathSync(absolute))) throw new Error("The built Worker contains a symlink outside its output directory.");
375
375
  const name = relative(source, absolute);
376
376
  if (name === "wrangler.json" || name === ".dev.vars" || name === join(".vite", "manifest.json") || name.endsWith(".css") || name.endsWith(".css.map")) continue;
377
377
  const type = moduleTypes[extname(entry.name).toLowerCase()];
@@ -387,7 +387,7 @@ function copyBundle(source, destination) {
387
387
  /** Create a private cf Build Output tree from Void's verified Vite artifact. */
388
388
  async function prepareCfBuildOutput(workerDirectory, accountId) {
389
389
  const source = resolve(workerDirectory);
390
- const raw = object(JSON.parse(readFileSync(join(source, "wrangler.json"), "utf8")));
390
+ const raw = record(JSON.parse(readFileSync(join(source, "wrangler.json"), "utf8")));
391
391
  if (!raw) return null;
392
392
  if (typeof raw.account_id === "string" && raw.account_id !== accountId) return null;
393
393
  const config = migrateBuiltWranglerConfig(raw);
@@ -395,23 +395,23 @@ async function prepareCfBuildOutput(workerDirectory, accountId) {
395
395
  if (typeof raw.main !== "string" || !raw.main) throw new Error("The built Worker configuration is missing its main entry. Rebuild the app.");
396
396
  const entry = raw.main.replaceAll("\\", "/");
397
397
  const main = relative(source, resolve(source, entry));
398
- if (isAbsolute(entry) || /^[a-z]:/i.test(entry) || !main || main === ".." || main.startsWith("../")) throw new Error("The built Worker main entry must be inside its output directory.");
398
+ if (isAbsolute(entry) || /^[a-z]:/i.test(entry) || !isInside(source, resolve(source, entry))) throw new Error("The built Worker main entry must be inside its output directory.");
399
399
  if (!existsSync(join(source, main))) throw new Error(`The built Worker main entry ${JSON.stringify(main)} is missing. Rebuild the app.`);
400
- const assetsDirectory = object(raw.assets)?.directory;
400
+ const assetsDirectory = record(raw.assets)?.directory;
401
401
  if (assetsDirectory !== void 0 && typeof assetsDirectory !== "string") return null;
402
402
  const images = [];
403
403
  const directory = mkdtempSync(join(tmpdir(), "void-cf-deploy-"));
404
+ const dispose = async () => {
405
+ rmSync(directory, {
406
+ recursive: true,
407
+ force: true
408
+ });
409
+ await Promise.all(images.map((image) => image.dispose()));
410
+ };
404
411
  try {
405
412
  const bundle = getWorkerBundleDir(directory);
406
413
  mkdirSync(bundle, { recursive: true });
407
414
  const modules = copyBundle(source, bundle);
408
- if (!modules) {
409
- rmSync(directory, {
410
- recursive: true,
411
- force: true
412
- });
413
- return null;
414
- }
415
415
  await writeRootConfig(directory, { accountId }, {
416
416
  isPreview: false,
417
417
  mode: "production"
@@ -445,11 +445,7 @@ async function prepareCfBuildOutput(workerDirectory, accountId) {
445
445
  if (typeof assetsDirectory === "string") {
446
446
  const assetPath = resolve(source, assetsDirectory);
447
447
  if (!existsSync(assetPath)) {
448
- rmSync(directory, {
449
- recursive: true,
450
- force: true
451
- });
452
- await Promise.all(images.map((image) => image.dispose()));
448
+ await dispose();
453
449
  return null;
454
450
  }
455
451
  await writeAssets({
@@ -461,30 +457,16 @@ async function prepareCfBuildOutput(workerDirectory, accountId) {
461
457
  return {
462
458
  directory,
463
459
  ...typeof assetsDirectory === "string" ? { assetsDirectory: resolve(source, assetsDirectory) } : {},
464
- dispose: async () => {
465
- rmSync(directory, {
466
- recursive: true,
467
- force: true
468
- });
469
- await Promise.all(images.map((image) => image.dispose()));
470
- }
460
+ dispose
471
461
  };
472
462
  } catch (error) {
473
- rmSync(directory, {
474
- recursive: true,
475
- force: true
476
- });
477
- await Promise.all(images.map((image) => image.dispose()));
463
+ await dispose();
478
464
  throw error;
479
465
  }
480
466
  }
481
- /** Bundle Void's generated thin static Worker before handing it to cf as prebuilt output. */
482
- async function prepareCfStaticBuildOutput(options) {
483
- const raw = object(JSON.parse(readFileSync(options.configPath, "utf8")));
484
- if (!raw || typeof raw.main !== "string" || basename(raw.main) !== raw.main) return null;
485
- const entry = join(dirname(options.configPath), raw.main);
486
- if (!existsSync(entry)) return null;
487
- const scratch = mkdtempSync(join(tmpdir(), "void-cf-static-"));
467
+ /** Bundle a generated Worker entry with Vite, then hand the result to `prepareCfBuildOutput`. */
468
+ async function prepareBundledBuildOutput(options) {
469
+ const scratch = mkdtempSync(join(tmpdir(), options.scratchPrefix));
488
470
  try {
489
471
  const { build } = await import("vite");
490
472
  await build({
@@ -496,20 +478,18 @@ async function prepareCfStaticBuildOutput(options) {
496
478
  outDir: scratch,
497
479
  emptyOutDir: true,
498
480
  lib: {
499
- entry,
481
+ entry: options.entry,
500
482
  formats: ["es"],
501
483
  fileName: "index"
502
484
  },
485
+ ...options.external ? { rollupOptions: { external: options.external } } : {},
503
486
  target: "es2022"
504
487
  }
505
488
  });
506
489
  writeFileSync(join(scratch, "wrangler.json"), JSON.stringify({
507
- ...raw,
490
+ ...options.config,
508
491
  main: "index.js",
509
- assets: {
510
- ...object(raw.assets),
511
- directory: resolve(options.assetsDirectory)
512
- }
492
+ assets: options.assets
513
493
  }), { mode: 384 });
514
494
  return await prepareCfBuildOutput(scratch, options.accountId);
515
495
  } finally {
@@ -519,16 +499,33 @@ async function prepareCfStaticBuildOutput(options) {
519
499
  });
520
500
  }
521
501
  }
502
+ /** Bundle Void's generated thin static Worker before handing it to cf as prebuilt output. */
503
+ async function prepareCfStaticBuildOutput(options) {
504
+ const raw = record(JSON.parse(readFileSync(options.configPath, "utf8")));
505
+ if (!raw || typeof raw.main !== "string" || basename(raw.main) !== raw.main) return null;
506
+ const entry = join(dirname(options.configPath), raw.main);
507
+ if (!existsSync(entry)) return null;
508
+ return prepareBundledBuildOutput({
509
+ projectRoot: options.projectRoot,
510
+ entry,
511
+ scratchPrefix: "void-cf-static-",
512
+ config: raw,
513
+ assets: {
514
+ ...record(raw.assets),
515
+ directory: resolve(options.assetsDirectory)
516
+ },
517
+ accountId: options.accountId
518
+ });
519
+ }
522
520
  /** Bundle an adapter-produced Worker and copy only its public framework assets. */
523
521
  async function prepareCfFrameworkBuildOutput(options) {
524
- const raw = object(JSON.parse(readFileSync(options.configPath, "utf8")));
525
- const assets = object(raw?.assets);
522
+ const raw = record(JSON.parse(readFileSync(options.configPath, "utf8")));
523
+ const assets = record(raw?.assets);
526
524
  if (!raw || typeof raw.main !== "string" || typeof assets?.directory !== "string") return null;
527
525
  const configDirectory = dirname(options.configPath);
528
526
  const entry = resolve(configDirectory, raw.main);
529
527
  const sourceAssets = resolve(configDirectory, assets.directory);
530
528
  if (!existsSync(entry) || !existsSync(sourceAssets)) return null;
531
- const scratch = mkdtempSync(join(tmpdir(), "void-cf-framework-"));
532
529
  const publicAssets = mkdtempSync(join(tmpdir(), "void-cf-framework-assets-"));
533
530
  try {
534
531
  const ignored = ignore();
@@ -547,47 +544,27 @@ async function prepareCfFrameworkBuildOutput(options) {
547
544
  mkdirSync(dirname(destination), { recursive: true });
548
545
  if (file.isSymbolicLink()) {
549
546
  const target = realpathSync(absolute);
550
- const targetRelative = relative(realAssets, target);
551
- if (targetRelative === ".." || targetRelative.startsWith("../") || isAbsolute(targetRelative)) throw new Error("The framework assets contain a symlink outside the asset directory.");
547
+ if (!isInside(realAssets, target)) throw new Error("The framework assets contain a symlink outside the asset directory.");
552
548
  copyFileSync(target, destination);
553
549
  } else if (file.isFile()) copyFileSync(absolute, destination);
554
550
  }
555
- const { build } = await import("vite");
556
- await build({
557
- configFile: false,
558
- root: options.projectRoot,
559
- publicDir: false,
560
- logLevel: "error",
561
- build: {
562
- outDir: scratch,
563
- emptyOutDir: true,
564
- lib: {
565
- entry,
566
- formats: ["es"],
567
- fileName: "index"
568
- },
569
- rollupOptions: { external: [/^cloudflare:/, /^node:/] },
570
- target: "es2022"
571
- }
572
- });
573
- writeFileSync(join(scratch, "wrangler.json"), JSON.stringify({
574
- ...raw,
575
- main: "index.js",
551
+ const prepared = await prepareBundledBuildOutput({
552
+ projectRoot: options.projectRoot,
553
+ entry,
554
+ scratchPrefix: "void-cf-framework-",
555
+ config: raw,
576
556
  assets: {
577
557
  ...assets,
578
558
  directory: publicAssets
579
- }
580
- }), { mode: 384 });
581
- const prepared = await prepareCfBuildOutput(scratch, options.accountId);
559
+ },
560
+ accountId: options.accountId,
561
+ external: [/^cloudflare:/, /^node:/]
562
+ });
582
563
  return prepared ? {
583
564
  ...prepared,
584
565
  assetsDirectory: sourceAssets
585
566
  } : null;
586
567
  } finally {
587
- rmSync(scratch, {
588
- recursive: true,
589
- force: true
590
- });
591
568
  rmSync(publicAssets, {
592
569
  recursive: true,
593
570
  force: true
@@ -595,4 +572,4 @@ async function prepareCfFrameworkBuildOutput(options) {
595
572
  }
596
573
  }
597
574
  //#endregion
598
- export { migrateBuiltWranglerConfig as i, prepareCfFrameworkBuildOutput as n, prepareCfStaticBuildOutput as r, prepareCfBuildOutput as t };
575
+ export { record as a, migrateBuiltWranglerConfig as i, prepareCfFrameworkBuildOutput as n, prepareCfStaticBuildOutput as r, prepareCfBuildOutput as t };
@@ -0,0 +1,2 @@
1
+ import { t as prepareCfBuildOutput } from "./cf-build-output-DjvB_872.mjs";
2
+ export { prepareCfBuildOutput };
@@ -0,0 +1,17 @@
1
+ import { a as join } from "./dist-BVqXeR_h.mjs";
2
+ import { n as getPackageDir } from "./agents-B_pX_HmQ.mjs";
3
+ import { readFileSync } from "node:fs";
4
+ //#region src/cli/cf-user-agent.ts
5
+ let voidUserAgent;
6
+ let cfCliVersion;
7
+ function getVoidUserAgent() {
8
+ if (voidUserAgent === void 0) voidUserAgent = `void/${JSON.parse(readFileSync(join(getPackageDir(), "package.json"), "utf8")).version}`;
9
+ return voidUserAgent;
10
+ }
11
+ /** cf prepends `cf-cli/` to CLI_VERSION for both API requests and uploads. */
12
+ function getCfCliVersion() {
13
+ if (cfCliVersion === void 0) cfCliVersion = `${JSON.parse(readFileSync(new URL(import.meta.resolve("cf/package.json")), "utf8")).version} ${getVoidUserAgent()}`;
14
+ return cfCliVersion;
15
+ }
16
+ //#endregion
17
+ export { getVoidUserAgent as n, getCfCliVersion as t };