void 1.1.11 → 1.2.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 (233) hide show
  1. package/dist/{account-cmd-R35a4Oa8.mjs → account-cmd-CdUll_35.mjs} +5 -5
  2. package/dist/action-key-XZ9HkWAO.mjs +26 -0
  3. package/dist/{application-analysis-D7nNmNJb.mjs → application-analysis-fEqoSeMp.mjs} +11 -11
  4. package/dist/{application-routing-CZH66gXn.mjs → application-routing-DAhNP4u3.mjs} +1 -1
  5. package/dist/{ast-CPGPjb0V.mjs → ast-CsZ_q_gc.mjs} +6 -1
  6. package/dist/ast-bindings-C3yaPs1y.mjs +296 -0
  7. package/dist/{auth-link-VHmiKZmP.mjs → auth-link-C87vGXM-.mjs} +5 -5
  8. package/dist/{auth-router-O_Wrs5kg.mjs → auth-router-6I81r-ix.mjs} +3 -3
  9. package/dist/{better-auth-shared-Bv18bB-l.d.mts → better-auth-shared-DVk2DkTW.d.mts} +1 -1
  10. package/dist/{build-cmd-CMZiMn46.mjs → build-cmd-ex1g-j_e.mjs} +4 -4
  11. package/dist/{cache-TZ5Ab3d7.mjs → cache-oHzrnY3z.mjs} +4 -4
  12. package/dist/{cancel-deploy-DXoR6oC3.mjs → cancel-deploy-viAMD0Q_.mjs} +3 -3
  13. package/dist/cf-build-output-BJHuSsVN.mjs +1 -0
  14. package/dist/{cf-build-output-Bc8i3dzE.mjs → cf-build-output-BhVxldCw.mjs} +75 -10
  15. package/dist/{cf-user-agent-ChjQp2MU.mjs → cf-command-values-ByHk0xg4.mjs} +6 -16
  16. package/dist/cf-worker-settings-BECvvTVd.mjs +37 -0
  17. package/dist/cli/cli.mjs +139 -35
  18. package/dist/cli/cloudflare-operation-process.mjs +65 -18
  19. package/dist/cli/env-schema-probe.d.mts +1 -1
  20. package/dist/cli/env-schema-probe.mjs +3 -3
  21. package/dist/{client-GuSO3v_x.mjs → client-BEkdj1kx.mjs} +58 -13
  22. package/dist/client-BiRDZTSd.mjs +1 -0
  23. package/dist/{cloudflare-auth-DSvBc1Gu.mjs → cloudflare-auth-Byo_0_N9.mjs} +1 -1
  24. package/dist/{cloudflare-cmd-ZSErUl6Y.mjs → cloudflare-cmd-DMzCv12s.mjs} +5 -5
  25. package/dist/{cloudflare-config-rdFOys4X.mjs → cloudflare-config-DchHxPTo.mjs} +1 -1
  26. package/dist/{cloudflare-connect-BN-k2kD-.mjs → cloudflare-connect-CCRTVg-I.mjs} +3 -3
  27. package/dist/{cloudflare-operations-DH3GedbV.mjs → cloudflare-operations-Dh9dEHJj.mjs} +17 -7
  28. package/dist/{cloudflare-operations-Cm8lVx7W.mjs → cloudflare-operations-DsSaw2BT.mjs} +1 -1
  29. package/dist/{cloudflare-process-CZJ4viYl.mjs → cloudflare-process-8jEYIeim.mjs} +3 -2
  30. package/dist/{config-DC5llZaI.mjs → config-BIaXIkkv.mjs} +8 -3
  31. package/dist/{config-DYJV8aEH.mjs → config-BU6hMu1W.mjs} +1 -1
  32. package/dist/{config-D26zcdKy.mjs → config-DHgSEWT7.mjs} +39 -6
  33. package/dist/{config-7qoq2p9v.d.mts → config-DQfHOKh9.d.mts} +10 -1
  34. package/dist/config-entry.d.mts +1 -1
  35. package/dist/{connect-yQuLbuiJ.mjs → connect-k7R2rPVA.mjs} +6 -6
  36. package/dist/{create-project-CGOo_OL_.mjs → create-project-DTuy-l0z.mjs} +1 -1
  37. package/dist/{create-project-DEEWJX_M.mjs → create-project-DV71ol5d.mjs} +4 -4
  38. package/dist/{db-COI-yTJE.mjs → db-DVOkLH5X.mjs} +79 -23
  39. package/dist/{delete-PgN6L_9N.mjs → delete-BbP5eopu.mjs} +4 -4
  40. package/dist/{deploy-DsW-PrRQ.mjs → deploy-7H32EnUs.mjs} +220 -95
  41. package/dist/deploy-CE0Ev0Ob.mjs +2 -0
  42. package/dist/{deploy-managed-static-Dqz06S2u.mjs → deploy-managed-static-DlvcvnQT.mjs} +74 -28
  43. package/dist/{deploy-transport-nY3vLXPL.mjs → deploy-transport-BzGEj0Ge.mjs} +2 -2
  44. package/dist/deploy.d.mts +22 -1
  45. package/dist/deploy.mjs +49 -8
  46. package/dist/{dev-inbox-Rd6j_8vM.mjs → dev-inbox-D0jxye_D.mjs} +1 -1
  47. package/dist/{dispatch-BAbbn3jg.mjs → dispatch-DoUnxTNo.mjs} +15 -11
  48. package/dist/{dist-CfgIkieS.mjs → dist-B1PLt4_8.mjs} +1 -1
  49. package/dist/{dist-BVdsO7Py.mjs → dist-Cor9XGoz.mjs} +94 -200
  50. package/dist/{dist-Bn8Kodjp.mjs → dist-D15hFhP0.mjs} +1 -1
  51. package/dist/{domain-DKlNI0SR.mjs → domain-CA2wBgra.mjs} +5 -5
  52. package/dist/drizzle-9TubSZvI.mjs +1 -0
  53. package/dist/{email-BcjSyAL0.mjs → email-B9ayYQEG.mjs} +1 -1
  54. package/dist/{email-C0s3OvJk.mjs → email-DXpCc77w.mjs} +10 -10
  55. package/dist/{email-cloudflare-etpKiITL.mjs → email-cloudflare-D03g2TkS.mjs} +7 -7
  56. package/dist/{entry-B_0IhV64.mjs → entry-BEM8ZuGP.mjs} +40 -12
  57. package/dist/{env-BX2JFsgF.mjs → env-DgOQ9_8S.mjs} +6 -6
  58. package/dist/{env-public-CCdykygU.d.mts → env-public-6lqiSD2b.d.mts} +1 -0
  59. package/dist/{env-types-GRchm5dw.mjs → env-types-BicfKBhV.mjs} +1 -1
  60. package/dist/{env-validation-CuGfWRJd.mjs → env-validation-BmsdCZEk.mjs} +1 -1
  61. package/dist/{env-validation-D_KyMdab.mjs → env-validation-Dwq3PJzK.mjs} +3 -3
  62. package/dist/{fetch-DHLOuPyk.d.mts → fetch-CUX0tB78.d.mts} +14 -1
  63. package/dist/fetch-CtESUYWd.mjs +26 -0
  64. package/dist/{fetch-error-Dj3crt0e.mjs → fetch-error-Bw0n-IY-.mjs} +1 -1
  65. package/dist/{fetch-stream-PGgz4uGz.mjs → fetch-stream-BspOeTAI.mjs} +1 -1
  66. package/dist/{fetch-stream-CNxOrBdP.d.mts → fetch-stream-DfkAzZf-.d.mts} +1 -1
  67. package/dist/{gen-Bj6ZkOcI.mjs → gen-BfmcIi2g.mjs} +5 -5
  68. package/dist/gen-NrOlWZaG.mjs +1 -0
  69. package/dist/{github-cmd-DQDryS-5.mjs → github-cmd-CY9LUqLh.mjs} +4 -4
  70. package/dist/{handler-_PqY82xe.d.mts → handler-BbkSPzGF.d.mts} +91 -9
  71. package/dist/{headers-Bi4bOAwp.mjs → headers-D522zd0A.mjs} +2 -2
  72. package/dist/help-BeAFFE5C.mjs +1 -0
  73. package/dist/{help-D49SL_lN.mjs → help-CxSlPpzJ.mjs} +83 -12
  74. package/dist/{inbound-BuTfm11U.mjs → inbound-VrOLqwZY.mjs} +1 -1
  75. package/dist/index.d.mts +1 -1
  76. package/dist/index.mjs +125 -124
  77. package/dist/{info-Bxunp14X.mjs → info-7VDlhtyy.mjs} +4 -4
  78. package/dist/{init-DyTEY04s.mjs → init-DxYyOs4-.mjs} +103 -43
  79. package/dist/{link-CgOVn9EC.mjs → link-Ddmod1dZ.mjs} +5 -5
  80. package/dist/{list-CUfD9RSb.mjs → list-MogaugiO.mjs} +5 -5
  81. package/dist/{live-DJONVlQK.d.mts → live-Bt8Y_0bg.d.mts} +1 -1
  82. package/dist/{local-d1-CpaPbd_L.mjs → local-d1-BHBnKWRb.mjs} +1 -1
  83. package/dist/{log-vqY3pqwI.mjs → log-BMwmN5Ae.mjs} +2 -2
  84. package/dist/{login-BJvGW5Eu.mjs → login-Cttnagmm.mjs} +4 -4
  85. package/dist/login-DgDwlKc_.mjs +1 -0
  86. package/dist/{logs-DeizBI4j.mjs → logs-CAszUWZI.mjs} +4 -4
  87. package/dist/{migrate-8rk56vV8.mjs → migrate-DyT2jJ8y.mjs} +5 -5
  88. package/dist/migrate-n49ZeS1X.mjs +1 -0
  89. package/dist/{mime-srOklVVv.mjs → mime-BAyHPskU.mjs} +1 -1
  90. package/dist/nitro.mjs +3 -3
  91. package/dist/{node-uN8_zxJr.mjs → node-WB7c2N4L.mjs} +2 -2
  92. package/dist/operator-cmd-d2MvJOrl.mjs +1 -0
  93. package/dist/{operator-cmd-CA5QQyvE.mjs → operator-cmd-skshjMGl.mjs} +4 -4
  94. package/dist/output-BW9uK099.mjs +1 -0
  95. package/dist/{output-Ba6ZbrzY.mjs → output-BpgYODYx.mjs} +16 -4
  96. package/dist/pages/client.d.mts +2 -2
  97. package/dist/pages/client.mjs +48 -25
  98. package/dist/pages/index.d.mts +2 -2
  99. package/dist/pages/index.mjs +4 -4
  100. package/dist/pages/islands-plugin.d.mts +43 -5
  101. package/dist/pages/islands-plugin.mjs +100 -28
  102. package/dist/pages/protocol.d.mts +2 -2
  103. package/dist/pages/protocol.mjs +1 -1
  104. package/dist/pages/serialize.d.mts +2 -2
  105. package/dist/pages/serialize.mjs +1 -1
  106. package/dist/{parse-filename-CUbj-1MP.mjs → parse-filename-DioPHiR9.mjs} +1 -35
  107. package/dist/{picocolors-BTps1_gs.mjs → picocolors-BsDfhxIw.mjs} +1 -1
  108. package/dist/{platform-args-B7ke06up.mjs → platform-args-DVbVClZl.mjs} +12 -4
  109. package/dist/platform-args-kQrgxScY.mjs +1 -0
  110. package/dist/{platform-auth-config-CZaY812e.mjs → platform-auth-config-C-pm5Qzx.mjs} +6 -6
  111. package/dist/{platform-auth-protection-U9HCqoXv.mjs → platform-auth-protection-SHhvim1L.mjs} +4 -4
  112. package/dist/{platform-auth-recovery-B0BV2hfV.mjs → platform-auth-recovery-DXVWs-wA.mjs} +4 -4
  113. package/dist/{platform-cmd-CXrjk4fb.mjs → platform-cmd-D5I1beUX.mjs} +7 -7
  114. package/dist/{platform-cmd-D9lwFpcl.mjs → platform-cmd-PiNRkopU.mjs} +1 -1
  115. package/dist/{platform-domain-CXyq-68_.mjs → platform-domain-jpmBfZeb.mjs} +4 -4
  116. package/dist/{platform-lifecycle-Dz2cJsLX.mjs → platform-lifecycle-DH3Yr1qQ.mjs} +1 -1
  117. package/dist/{platform-lifecycle-D0TdyXbN.mjs → platform-lifecycle-DyKmuNY6.mjs} +405 -44
  118. package/dist/{platform-management-CnXhgxTM.mjs → platform-management--vDwSn35.mjs} +49 -5
  119. package/dist/{platform-management-BvgbusqL.mjs → platform-management-7m-PLaPJ.mjs} +1 -1
  120. package/dist/{platform-plans-config-BWn1S2Rv.mjs → platform-plans-config-CeydDSj0.mjs} +2 -2
  121. package/dist/{platform-recovery-CH_fThW6.mjs → platform-recovery-BiNpZZab.mjs} +2 -2
  122. package/dist/{platform-setup-YvN9VQXV.mjs → platform-setup-Ca53gtt0.mjs} +3 -2
  123. package/dist/{plugin-inference-Bekzjuqw.mjs → plugin-inference-DUjCd55H.mjs} +145 -218
  124. package/dist/{prepare-2XD6kh77.mjs → prepare-BcAE5Sdj.mjs} +3 -3
  125. package/dist/prepare-C4I0f--h.mjs +1 -0
  126. package/dist/{prepare-DepAGBcV.mjs → prepare-DA-17DhO.mjs} +5 -5
  127. package/dist/{prerender-render-Bfsumdkv.mjs → prerender-render-Cijv7UFo.mjs} +11 -6
  128. package/dist/prerender-render.mjs +1 -1
  129. package/dist/{project-cmd-CpLYflCH.mjs → project-cmd-DA4K5faU.mjs} +18 -18
  130. package/dist/{project-team-CTSY7W7Q.mjs → project-team-CQBNveX3.mjs} +4 -4
  131. package/dist/{project-token-Cybtlfbl.mjs → project-token-CCalFyQf.mjs} +4 -4
  132. package/dist/{project-zero-trust-DKOtqyvu.mjs → project-zero-trust-DPnkiEuT.mjs} +4 -4
  133. package/dist/{protocol-B8sI8dRD.d.mts → protocol-BBDpJz3G.d.mts} +3 -1
  134. package/dist/{protocol-RNP0u7UY.mjs → protocol-DimNxVRr.mjs} +42 -17
  135. package/dist/{provision-UcYjpTRh.mjs → provision-BFLCrnUp.mjs} +1 -1
  136. package/dist/{provision-BuifYvLc.mjs → provision-DtROpNNI.mjs} +6 -5
  137. package/dist/{requests-Ryiazz9i.mjs → requests-BpH0kImL.mjs} +3 -3
  138. package/dist/resolve-project-DD1vu8s9.mjs +1 -0
  139. package/dist/{resolve-project-WpwkCB_c.mjs → resolve-project-Xoi6eTWY.mjs} +1 -1
  140. package/dist/{rollback-Or0EV3rP.mjs → rollback-CXS1tAa-.mjs} +10 -9
  141. package/dist/{rolldown-runtime-DXIUcv95.mjs → rolldown-runtime-3h0WiCiA.mjs} +1 -1
  142. package/dist/{routing-assets-VkrKIbxE.mjs → routing-assets-DdSFxoLp.mjs} +10 -4
  143. package/dist/runtime/better-auth-mysql.d.mts +1 -1
  144. package/dist/runtime/better-auth-pg.d.mts +1 -1
  145. package/dist/runtime/better-auth.d.mts +1 -1
  146. package/dist/runtime/client-react.d.mts +2 -2
  147. package/dist/runtime/client-react.mjs +3 -3
  148. package/dist/runtime/client-solid.d.mts +2 -2
  149. package/dist/runtime/client-solid.mjs +3 -3
  150. package/dist/runtime/client-svelte.d.mts +2 -2
  151. package/dist/runtime/client-svelte.mjs +3 -3
  152. package/dist/runtime/client-vue.d.mts +2 -2
  153. package/dist/runtime/client-vue.mjs +3 -3
  154. package/dist/runtime/client.d.mts +2 -2
  155. package/dist/runtime/client.mjs +3 -3
  156. package/dist/runtime/email/testing.mjs +4 -4
  157. package/dist/runtime/email.mjs +3 -3
  158. package/dist/runtime/env-public.d.mts +1 -1
  159. package/dist/runtime/fetch-server.d.mts +8 -0
  160. package/dist/runtime/fetch-server.mjs +30 -0
  161. package/dist/runtime/fetch-stream.d.mts +2 -2
  162. package/dist/runtime/fetch-stream.mjs +2 -2
  163. package/dist/runtime/fetch.d.mts +2 -2
  164. package/dist/runtime/fetch.mjs +3 -3
  165. package/dist/runtime/handler.d.mts +1 -1
  166. package/dist/runtime/live-client.d.mts +1 -1
  167. package/dist/runtime/live.d.mts +1 -1
  168. package/dist/runtime/routing.d.mts +17 -76
  169. package/dist/runtime/routing.mjs +277 -216
  170. package/dist/runtime/validator.d.mts +1 -1
  171. package/dist/runtime/ws-server.d.mts +2 -2
  172. package/dist/runtime/ws.d.mts +1 -1
  173. package/dist/{scan-D2-FcLHs.mjs → scan-8IzYXiU_.mjs} +12 -11
  174. package/dist/{secret-CClHaFxm.mjs → secret-BbXHfLAt.mjs} +6 -6
  175. package/dist/serialize-DtR8Vwa_.d.mts +18 -0
  176. package/dist/serialize-YHvlcG3Q.mjs +31 -0
  177. package/dist/{skills-C_yRTg0g.mjs → skills-CrUO3PJ0.mjs} +1 -1
  178. package/dist/{subcommand-prompt-Bm3ZlYgA.mjs → subcommand-prompt-D9OhhbGG.mjs} +2 -2
  179. package/dist/{version-metadata-B1Bm2wSq.mjs → version-metadata-tS39iW09.mjs} +1 -1
  180. package/dist/wrangler-BLb3_luP.mjs +1 -0
  181. package/dist/{wrangler-C9XSzrju.mjs → wrangler-F96NnLyb.mjs} +13 -5
  182. package/dist/{wrapper-BOigE1xJ.mjs → wrapper-D3sZyh2C.mjs} +5 -3
  183. package/dist/{ws-CsBNxv86.d.mts → ws-BH-im_tX.d.mts} +1 -1
  184. package/docs/guide/ai.md +1 -1
  185. package/docs/guide/database/postgresql.md +1 -1
  186. package/docs/guide/database.md +26 -0
  187. package/docs/guide/deployment.md +2 -0
  188. package/docs/guide/edge/headers.md +1 -1
  189. package/docs/guide/email/domains.md +1 -1
  190. package/docs/guide/email/receiving.md +1 -1
  191. package/docs/guide/email/sending.md +3 -3
  192. package/docs/guide/pages-routing/actions-and-forms.md +1 -1
  193. package/docs/guide/pages-routing/markdown.md +3 -1
  194. package/docs/guide/platform/administration/email.md +7 -1
  195. package/docs/guide/platform/installation/ci.md +2 -0
  196. package/docs/guide/platform/installation/credentials.md +24 -6
  197. package/docs/guide/platform/installation/domains.md +16 -0
  198. package/docs/guide/platform/installation/maintenance.md +32 -2
  199. package/docs/guide/platform/installation/setup.md +1 -1
  200. package/docs/guide/self-hosted-platform.md +1 -1
  201. package/docs/guide/server-routing.md +1 -1
  202. package/docs/guide/typed-fetch.md +1 -1
  203. package/docs/integrations/cloudflare.md +2 -1
  204. package/docs/integrations/frameworks/tanstack-start.md +25 -0
  205. package/docs/reference/api/deploy.md +35 -3
  206. package/docs/reference/api/env.md +1 -1
  207. package/docs/reference/api/rewrites.md +1 -1
  208. package/docs/reference/api/types.md +1 -0
  209. package/docs/reference/cli/database.md +15 -0
  210. package/docs/reference/cli/platform-installation.md +5 -2
  211. package/docs/reference/cli/project.md +4 -2
  212. package/docs/reference/cli/setup.md +17 -0
  213. package/docs/reference/cli.md +1 -0
  214. package/docs/reference/config.md +14 -1
  215. package/docs/reference/resource-inference.md +4 -0
  216. package/package.json +23 -22
  217. package/sandbox.Dockerfile +1 -1
  218. package/schema.json +23 -3
  219. package/dist/cf-build-output-BU3hqdHu.mjs +0 -1
  220. package/dist/client-DrdeJgHR.mjs +0 -1
  221. package/dist/deploy-CxNgEYr4.mjs +0 -2
  222. package/dist/fetch-sAcwjzLO.mjs +0 -18
  223. package/dist/gen-DsCukhuw.mjs +0 -1
  224. package/dist/help-DOFygYi4.mjs +0 -1
  225. package/dist/login-alAlxw4S.mjs +0 -1
  226. package/dist/migrate-D2odrAmh.mjs +0 -1
  227. package/dist/operator-cmd-D7toMPJ9.mjs +0 -1
  228. package/dist/platform-args-B_LrqEZB.mjs +0 -1
  229. package/dist/prepare-EVEbQ9n2.mjs +0 -1
  230. package/dist/resolve-project-PnhzMtY6.mjs +0 -1
  231. package/dist/serialize-BtQyaYoC.mjs +0 -20
  232. package/dist/serialize-CfSwWfF2.d.mts +0 -10
  233. package/dist/wrangler-DAdxHEzh.mjs +0 -1
@@ -1,28 +1,28 @@
1
1
  import { a as join, c as resolve, i as isAbsolute, n as dirname, s as relative, t as basename } from "./dist-ipQi0Q8y.mjs";
2
- import { r as detectFramework } from "./plugin-inference-Bekzjuqw.mjs";
2
+ import { r as detectFramework } from "./plugin-inference-DUjCd55H.mjs";
3
3
  import { n as readProjectPaths, o as TYPED_CONFIG_FILE } from "./project-paths-DGu_QZ_Q.mjs";
4
- import { d as readConfig, s as getDatabaseDialect } from "./config-D26zcdKy.mjs";
4
+ import { c as getDatabaseCasing, l as getDatabaseDialect, p as readConfig, s as databaseConfigValue } from "./config-DHgSEWT7.mjs";
5
5
  import { t as MagicString } from "./dist-Cegxq8gs.mjs";
6
6
  import { c as writeDeploymentPlatform, n as readDeploymentPlatform, r as readProjectConfig, t as attachSelectedPlatform, u as writeProjectConfig } from "./project-rqDnVsJN.mjs";
7
- import { r as materializeCloudflareConfig } from "./cloudflare-config-rdFOys4X.mjs";
8
- import { i as LATEST_KNOWN_COMPAT_DATE, j as writeProvisionedWranglerConfig } from "./wrangler-C9XSzrju.mjs";
7
+ import { r as materializeCloudflareConfig } from "./cloudflare-config-DchHxPTo.mjs";
8
+ import { M as writeProvisionedWranglerConfig, i as LATEST_KNOWN_COMPAT_DATE } from "./wrangler-F96NnLyb.mjs";
9
9
  import { i as readPackageJson, n as hasPackageDependency } from "./package-json-BjYqR-So.mjs";
10
10
  import { c as getToken } from "./auth-B6iOCjKI.mjs";
11
- import { A as confirm, K as select, L as log, O as cancel, X as text, tt as isCancel } from "./dist-BVdsO7Py.mjs";
12
- import { l as formatUrl, m as printSuccess, p as note } from "./output-Ba6ZbrzY.mjs";
13
11
  import { n as ensureProjectTsconfig, t as createProjectTsconfig } from "./project-tsconfig-Itv1f4WC.mjs";
14
12
  import { t as parseDotenvFile } from "./dotenv-CNazY3-w.mjs";
15
- import { r as writeDrizzleConfig, t as PLACEHOLDER_DB_URL } from "./config-DC5llZaI.mjs";
13
+ import { r as writeDrizzleConfig, t as PLACEHOLDER_DB_URL } from "./config-BIaXIkkv.mjs";
14
+ import { A as confirm, K as select, L as log, O as cancel, X as text, tt as isCancel } from "./dist-Cor9XGoz.mjs";
16
15
  import { n as getOwnVersion, r as getPackageDir, t as detectAgents } from "./agents-CuNtT0D_.mjs";
17
- import { r as PlatformClient } from "./client-GuSO3v_x.mjs";
18
- import { a as promptProjectSelection, r as promptAndCreateProject } from "./create-project-DEEWJX_M.mjs";
19
- import { s as formatProjectCommand } from "./cloudflare-process-CZJ4viYl.mjs";
16
+ import { r as PlatformClient } from "./client-BEkdj1kx.mjs";
17
+ import { l as formatUrl, m as printSuccess, p as note } from "./output-BpgYODYx.mjs";
18
+ import { a as promptProjectSelection, r as promptAndCreateProject } from "./create-project-DV71ol5d.mjs";
19
+ import { s as formatProjectCommand } from "./cloudflare-process-8jEYIeim.mjs";
20
20
  import { i as hasLocalLockfile, n as drizzleKitBin, r as findInstalledYarnPnpRuntime, t as buildDrizzleKitSpawnEnv } from "./yarn-pnp-DLbEFMT0.mjs";
21
- import { t as promptForLoginToken } from "./login-BJvGW5Eu.mjs";
22
- import { i as saveDiscoveredPlatform, t as discoverPlatform } from "./platform-cmd-CXrjk4fb.mjs";
23
- import { t as connectCloudflare } from "./cloudflare-connect-BN-k2kD-.mjs";
21
+ import { t as promptForLoginToken } from "./login-Cttnagmm.mjs";
22
+ import { i as saveDiscoveredPlatform, t as discoverPlatform } from "./platform-cmd-D5I1beUX.mjs";
23
+ import { t as connectCloudflare } from "./cloudflare-connect-CCRTVg-I.mjs";
24
24
  import { n as snapshotDrizzleOutputs } from "./generate-B1m4Cm4n.mjs";
25
- import { i as writeVoidProjectConfig, o as migrateFrameworkAdapterPaths, r as canRewriteVoidProjectConfig, t as migrateLegacyVoidConfig } from "./migrate-8rk56vV8.mjs";
25
+ import { i as writeVoidProjectConfig, o as migrateFrameworkAdapterPaths, r as canRewriteVoidProjectConfig, t as migrateLegacyVoidConfig } from "./migrate-DyT2jJ8y.mjs";
26
26
  import { createRequire } from "node:module";
27
27
  import { existsSync, mkdirSync, readFileSync, readdirSync, writeFileSync } from "node:fs";
28
28
  import { parseSync } from "vite";
@@ -230,8 +230,8 @@ const SCAFFOLD_BASE_DEV_DEPENDENCIES = {
230
230
  typescript: "^7.0.2"
231
231
  };
232
232
  const SCAFFOLD_VITE_PLUS_DEV_DEPENDENCIES = {
233
- vite: "npm:@voidzero-dev/vite-plus-core@^1.2.0",
234
- "vite-plus": "^1.2.0"
233
+ vite: "npm:@voidzero-dev/vite-plus-core@^1.3.0",
234
+ "vite-plus": "^1.3.0"
235
235
  };
236
236
  const SCAFFOLD_TOOLCHAIN_OPTIONS = [{
237
237
  value: "vite-plus",
@@ -340,11 +340,13 @@ function createPagesStarterTemplate(options) {
340
340
  scripts: {
341
341
  dev: toolchain === "vite-plus" ? "vp dev" : "vite",
342
342
  build: toolchain === "vite-plus" ? "vp build" : "vite build",
343
- preview: toolchain === "vite-plus" ? "vp preview" : "vite preview"
343
+ preview: toolchain === "vite-plus" ? "vp preview" : "vite preview",
344
+ postinstall: "void prepare"
344
345
  },
345
346
  dependencies: {
346
347
  ...SCAFFOLD_BASE_DEPENDENCIES,
347
- ...config.dependencies
348
+ ...config.dependencies,
349
+ ...starterMode !== "static" ? { zod: "^4.6.7" } : {}
348
350
  },
349
351
  devDependencies: {
350
352
  void: voidPackageSpec,
@@ -773,6 +775,22 @@ function patchViteConfigWithVoidPlugin(filePath, code) {
773
775
  }
774
776
  //#endregion
775
777
  //#region src/cli/init.ts
778
+ const SCAFFOLD_STARTER_MODES = [
779
+ "sqlite",
780
+ "postgresql",
781
+ "mysql",
782
+ "static"
783
+ ];
784
+ const DEPLOYMENT_PLATFORMS = [
785
+ "cloudflare",
786
+ "void",
787
+ "none"
788
+ ];
789
+ function parseChoice(flag, value, choices) {
790
+ if (value === void 0) return;
791
+ if (typeof value !== "string" || !choices.includes(value)) throw new Error(`init: --${flag} must be one of ${choices.join(", ")}.`);
792
+ return value;
793
+ }
776
794
  function parseInitArgs(args) {
777
795
  let parsed;
778
796
  try {
@@ -781,7 +799,11 @@ function parseInitArgs(args) {
781
799
  options: {
782
800
  tsconfig: { type: "boolean" },
783
801
  github: { type: "boolean" },
784
- git: { type: "boolean" }
802
+ git: { type: "boolean" },
803
+ toolchain: { type: "string" },
804
+ framework: { type: "string" },
805
+ starter: { type: "string" },
806
+ deploy: { type: "string" }
785
807
  },
786
808
  allowNegative: true,
787
809
  strict: true
@@ -793,7 +815,11 @@ function parseInitArgs(args) {
793
815
  return {
794
816
  tsconfig: parsed.values.tsconfig === true,
795
817
  github: parsed.values.github === true,
796
- git: parsed.values.git
818
+ git: parsed.values.git,
819
+ toolchain: parseChoice("toolchain", parsed.values.toolchain, SCAFFOLD_TOOLCHAIN_OPTIONS.map((option) => option.value)),
820
+ framework: parseChoice("framework", parsed.values.framework, SCAFFOLD_FRAMEWORK_OPTIONS.map((option) => option.value)),
821
+ starter: parseChoice("starter", parsed.values.starter, SCAFFOLD_STARTER_MODES),
822
+ deploy: parseChoice("deploy", parsed.values.deploy, DEPLOYMENT_PLATFORMS)
797
823
  };
798
824
  }
799
825
  const EMPTY_PROJECT_ALLOWED_ENTRIES = /* @__PURE__ */ new Set([
@@ -883,7 +909,8 @@ const EMPTY_PROJECT_ALLOWED_SCRIPTS = {
883
909
  test: void 0,
884
910
  dev: /* @__PURE__ */ new Set(["vite", "vp dev"]),
885
911
  build: /* @__PURE__ */ new Set(["vite build", "vp build"]),
886
- preview: /* @__PURE__ */ new Set(["vite preview", "vp preview"])
912
+ preview: /* @__PURE__ */ new Set(["vite preview", "vp preview"]),
913
+ postinstall: /* @__PURE__ */ new Set(["void prepare"])
887
914
  };
888
915
  const EMPTY_PROJECT_STARTER_SCRIPT_COMMANDS = new Set(Object.values(EMPTY_PROJECT_ALLOWED_SCRIPTS).flatMap((commands) => commands ? Array.from(commands) : []));
889
916
  function isStarterScriptCommand(value) {
@@ -1595,35 +1622,52 @@ function ensureVoidWorkerCompatibilityDate(root) {
1595
1622
  writeVoidProjectConfig(root, config);
1596
1623
  log.step("Pinned worker compatibility_date in void.config.ts");
1597
1624
  }
1625
+ /** Write `dialect` to the config's `database`, keeping its casing. */
1626
+ function writeDatabaseDialect(root, config, dialect) {
1627
+ const next = { ...config };
1628
+ const database = databaseConfigValue(dialect, getDatabaseCasing(config));
1629
+ if (database === void 0) delete next.database;
1630
+ else next.database = database;
1631
+ writeVoidProjectConfig(root, next);
1632
+ }
1598
1633
  function clearConfiguredDatabase(root, messages) {
1599
1634
  const config = readConfig(root);
1600
- if (config.database !== "pg" && config.database !== "mysql") {
1635
+ if (getDatabaseDialect(config) === "sqlite") {
1601
1636
  log.info(messages.unchanged);
1602
1637
  return;
1603
1638
  }
1604
- delete config.database;
1605
- writeVoidProjectConfig(root, config);
1639
+ writeDatabaseDialect(root, config, "sqlite");
1606
1640
  log.step(messages.updated);
1607
1641
  }
1642
+ /** Remove `database` entirely: its casing alone still makes Void serve `void/db`. */
1643
+ function removeDatabaseConfig(root) {
1644
+ const config = readConfig(root);
1645
+ if (config.database === void 0) {
1646
+ log.info("No database configured yet");
1647
+ return;
1648
+ }
1649
+ const next = { ...config };
1650
+ delete next.database;
1651
+ writeVoidProjectConfig(root, next);
1652
+ log.step("Removed database config from void.config.ts");
1653
+ }
1608
1654
  function applyDatabaseDialect(root, dialect) {
1609
1655
  const config = readConfig(root);
1610
1656
  if (dialect === "postgresql") {
1611
- if (config.database === "pg") {
1657
+ if (getDatabaseDialect(config) === "postgresql") {
1612
1658
  log.info("PostgreSQL already configured in void.config.ts");
1613
1659
  return;
1614
1660
  }
1615
- config.database = "pg";
1616
- writeVoidProjectConfig(root, config);
1661
+ writeDatabaseDialect(root, config, "postgresql");
1617
1662
  log.step("Configured PostgreSQL in void.config.ts");
1618
1663
  return;
1619
1664
  }
1620
1665
  if (dialect === "mysql") {
1621
- if (config.database === "mysql") {
1666
+ if (getDatabaseDialect(config) === "mysql") {
1622
1667
  log.info("MySQL already configured in void.config.ts");
1623
1668
  return;
1624
1669
  }
1625
- config.database = "mysql";
1626
- writeVoidProjectConfig(root, config);
1670
+ writeDatabaseDialect(root, config, "mysql");
1627
1671
  log.step("Configured MySQL in void.config.ts");
1628
1672
  return;
1629
1673
  }
@@ -1640,15 +1684,21 @@ function detectDatabaseSetup(root) {
1640
1684
  }
1641
1685
  function applyDatabaseSetup(root, choice) {
1642
1686
  if (choice === "none") {
1643
- clearConfiguredDatabase(root, {
1644
- unchanged: "No database configured yet",
1645
- updated: "Removed database config from void.config.ts"
1646
- });
1687
+ removeDatabaseConfig(root);
1647
1688
  return;
1648
1689
  }
1649
1690
  applyDatabaseDialect(root, choice);
1650
1691
  }
1651
- async function promptStarterMode() {
1692
+ /**
1693
+ * A prompt cannot be answered when stdin is not a terminal, so fail with the
1694
+ * flag that answers it instead of exiting as if init succeeded.
1695
+ */
1696
+ function assertInteractive(flag, choices) {
1697
+ if (!process.stdin.isTTY) throw new Error(`init: Pass --${flag} (${choices.join(", ")}) when running without an interactive terminal.`);
1698
+ }
1699
+ async function promptStarterMode(starter) {
1700
+ if (starter) return starter;
1701
+ assertInteractive("starter", SCAFFOLD_STARTER_MODES);
1652
1702
  const choice = await select({
1653
1703
  message: "Choose a Pages starter:",
1654
1704
  options: [
@@ -1680,7 +1730,9 @@ async function promptStarterMode() {
1680
1730
  }
1681
1731
  return choice;
1682
1732
  }
1683
- async function promptScaffoldToolchain() {
1733
+ async function promptScaffoldToolchain(toolchain) {
1734
+ if (toolchain) return toolchain;
1735
+ assertInteractive("toolchain", SCAFFOLD_TOOLCHAIN_OPTIONS.map((option) => option.value));
1684
1736
  const choice = await select({
1685
1737
  message: "Choose a Pages scaffold toolchain:",
1686
1738
  initialValue: "vite-plus",
@@ -1692,7 +1744,9 @@ async function promptScaffoldToolchain() {
1692
1744
  }
1693
1745
  return choice;
1694
1746
  }
1695
- async function promptScaffoldFramework() {
1747
+ async function promptScaffoldFramework(framework) {
1748
+ if (framework) return framework;
1749
+ assertInteractive("framework", SCAFFOLD_FRAMEWORK_OPTIONS.map((option) => option.value));
1696
1750
  const choice = await select({
1697
1751
  message: "Choose a Pages framework to scaffold:",
1698
1752
  options: [...SCAFFOLD_FRAMEWORK_OPTIONS]
@@ -1737,7 +1791,12 @@ async function promptDatabaseSetup(root) {
1737
1791
  }
1738
1792
  return choice;
1739
1793
  }
1740
- async function promptDeploymentPlatform(root) {
1794
+ async function promptDeploymentPlatform(root, deploy) {
1795
+ if (deploy) {
1796
+ writeDeploymentPlatform(root, deploy);
1797
+ return deploy;
1798
+ }
1799
+ assertInteractive("deploy", DEPLOYMENT_PLATFORMS);
1741
1800
  const current = readDeploymentPlatform(root);
1742
1801
  const choice = await select({
1743
1802
  message: "Where should this project deploy?",
@@ -2454,12 +2513,13 @@ async function runInitCommand(root, initArgs) {
2454
2513
  if (framework) log.info(`Detected ${framework.name} framework`);
2455
2514
  if (!targeted && !framework && isScaffoldableEmptyProject(root)) {
2456
2515
  log.info("Empty project detected. Scaffolding a Pages starter...");
2457
- const scaffoldToolchain = await promptScaffoldToolchain();
2516
+ const scaffoldToolchain = await promptScaffoldToolchain(initArgs?.toolchain);
2458
2517
  if (detectedPagesFramework) {
2459
2518
  scaffoldedPagesFramework = detectedPagesFramework;
2460
2519
  log.info(`Detected ${SCAFFOLD_FRAMEWORKS[detectedPagesFramework].label} adapter in package.json`);
2461
- } else scaffoldedPagesFramework = await promptScaffoldFramework();
2462
- const starterMode = await promptStarterMode();
2520
+ } else scaffoldedPagesFramework = await promptScaffoldFramework(initArgs?.framework);
2521
+ const starterMode = await promptStarterMode(initArgs?.starter);
2522
+ if (initArgs?.deploy === void 0) assertInteractive("deploy", DEPLOYMENT_PLATFORMS);
2463
2523
  const existingPackageJson = readPackageJson(root);
2464
2524
  const hasPackageManager = hasLocalLockfile(root) || existsSync(join(root, "pnpm-workspace.yaml")) || parsePackageManagerField(existingPackageJson) !== void 0 || resolveWorkspaceDeferral(root, existingPackageJson) !== void 0;
2465
2525
  const scaffoldPackageManager = scaffoldToolchain === "vite-plus" && !hasPackageManager ? "pnpm" : preScaffoldState.packageManager;
@@ -2505,7 +2565,7 @@ async function runInitCommand(root, initArgs) {
2505
2565
  await injectAgentBlock(root, newProject);
2506
2566
  const agents = detectAgents(root);
2507
2567
  if (agents.length > 0) {
2508
- const { linkSkillsForSpecificAgents } = await import("./skills-C_yRTg0g.mjs");
2568
+ const { linkSkillsForSpecificAgents } = await import("./skills-CrUO3PJ0.mjs");
2509
2569
  linkSkillsForSpecificAgents(root, agents);
2510
2570
  } else log.info("Bundled Void docs: node_modules/void/docs/");
2511
2571
  if (!targeted && !framework) {
@@ -2529,7 +2589,7 @@ async function runInitCommand(root, initArgs) {
2529
2589
  }
2530
2590
  }
2531
2591
  }
2532
- const deploymentPlatform = !targeted ? await promptDeploymentPlatform(root) : readDeploymentPlatform(root);
2592
+ const deploymentPlatform = !targeted ? await promptDeploymentPlatform(root, initArgs?.deploy) : readDeploymentPlatform(root);
2533
2593
  let voidPlatformDiscovery = null;
2534
2594
  if (!targeted && deploymentPlatform === "cloudflare") await setupCloudflareDeployment(root);
2535
2595
  if (!targeted && deploymentPlatform === "void") voidPlatformDiscovery = await ensureVoidPlatformConnection(root);
@@ -1,10 +1,10 @@
1
1
  import { r as readProjectConfig, t as attachSelectedPlatform, u as writeProjectConfig } from "./project-rqDnVsJN.mjs";
2
2
  import { c as getToken, s as getSiteDomain } from "./auth-B6iOCjKI.mjs";
3
- import { H as outro, L as log, O as cancel } from "./dist-BVdsO7Py.mjs";
4
- import { f as import_picocolors, m as printSuccess } from "./output-Ba6ZbrzY.mjs";
5
- import { r as PlatformClient } from "./client-GuSO3v_x.mjs";
6
- import { a as promptProjectSelection, r as promptAndCreateProject } from "./create-project-DEEWJX_M.mjs";
7
- import { a as resolveProjectBySlug } from "./resolve-project-WpwkCB_c.mjs";
3
+ import { H as outro, L as log, O as cancel } from "./dist-Cor9XGoz.mjs";
4
+ import { r as PlatformClient } from "./client-BEkdj1kx.mjs";
5
+ import { f as import_picocolors, m as printSuccess } from "./output-BpgYODYx.mjs";
6
+ import { a as promptProjectSelection, r as promptAndCreateProject } from "./create-project-DV71ol5d.mjs";
7
+ import { a as resolveProjectBySlug } from "./resolve-project-Xoi6eTWY.mjs";
8
8
  //#region src/cli/link.ts
9
9
  function projectLabel(slug, root, url) {
10
10
  if (url) return url;
@@ -1,9 +1,9 @@
1
1
  import { n as readDeploymentPlatform, r as readProjectConfig } from "./project-rqDnVsJN.mjs";
2
2
  import { c as getToken } from "./auth-B6iOCjKI.mjs";
3
- import { H as outro, L as log } from "./dist-BVdsO7Py.mjs";
4
- import { _ as tablePrefix, c as formatRelativeTime, f as import_picocolors, h as sanitizeTerminalText, i as dim, o as formatCount } from "./output-Ba6ZbrzY.mjs";
5
- import { r as PlatformClient } from "./client-GuSO3v_x.mjs";
6
- import { a as resolveProjectBySlug } from "./resolve-project-WpwkCB_c.mjs";
3
+ import { H as outro, L as log } from "./dist-Cor9XGoz.mjs";
4
+ import { r as PlatformClient } from "./client-BEkdj1kx.mjs";
5
+ import { _ as tablePrefix, c as formatRelativeTime, f as import_picocolors, h as sanitizeTerminalText, i as dim, o as formatCount } from "./output-BpgYODYx.mjs";
6
+ import { a as resolveProjectBySlug } from "./resolve-project-Xoi6eTWY.mjs";
7
7
  //#region src/cli/list.ts
8
8
  async function runListCommand(root, slug) {
9
9
  console.log();
@@ -42,7 +42,7 @@ async function runListCommand(root, slug) {
42
42
  }
43
43
  async function showCloudflareDeployments(root, slug) {
44
44
  if (slug) throw new Error("project: A project name selects a Void platform project and is not used for direct Cloudflare apps.");
45
- const { readCloudflareWorkerStatus, resolveCloudflareOperationContext } = await import("./cloudflare-operations-Cm8lVx7W.mjs");
45
+ const { readCloudflareWorkerStatus, resolveCloudflareOperationContext } = await import("./cloudflare-operations-DsSaw2BT.mjs");
46
46
  const status = await readCloudflareWorkerStatus(resolveCloudflareOperationContext(root));
47
47
  if (status.versions.length === 0) {
48
48
  outro(`No deployments for ${status.workerName}.`);
@@ -1,5 +1,5 @@
1
1
  import { r as AuthUser } from "./auth-DkcFflXV.mjs";
2
- import { a as CloudEnv, r as CloudContext } from "./handler-_PqY82xe.mjs";
2
+ import { a as CloudEnv, r as CloudContext } from "./handler-BbkSPzGF.mjs";
3
3
  //#region src/runtime/live.d.ts
4
4
  type MaybePromise<T> = T | Promise<T>;
5
5
  type LiveControlRequest = {
@@ -1,5 +1,5 @@
1
1
  import { a as join, c as resolve, i as isAbsolute } from "./dist-ipQi0Q8y.mjs";
2
- import { b as readRootWranglerConfig } from "./wrangler-C9XSzrju.mjs";
2
+ import { b as readRootWranglerConfig } from "./wrangler-F96NnLyb.mjs";
3
3
  import { r as getMiniflareDatabasePath } from "./runner-3uGC-oLF.mjs";
4
4
  import { existsSync, mkdirSync, readFileSync, rmSync, writeFileSync } from "node:fs";
5
5
  import { createHash } from "node:crypto";
@@ -1,5 +1,5 @@
1
- import { n as __toESM } from "./rolldown-runtime-DXIUcv95.mjs";
2
- import { t as require_picocolors } from "./picocolors-BTps1_gs.mjs";
1
+ import { n as __toESM } from "./rolldown-runtime-3h0WiCiA.mjs";
2
+ import { t as require_picocolors } from "./picocolors-BsDfhxIw.mjs";
3
3
  //#region src/log.ts
4
4
  var import_picocolors = /* @__PURE__ */ __toESM(require_picocolors(), 1);
5
5
  const tag = import_picocolors.default.bold(import_picocolors.default.blue("[void]"));
@@ -1,7 +1,7 @@
1
1
  import { a as getApiUrl, c as getToken, f as removeToken, l as getTokenSource, m as savePlatformToken, p as runPlatformLogin } from "./auth-B6iOCjKI.mjs";
2
- import { H as outro, K as select, L as log, O as cancel, tt as isCancel } from "./dist-BVdsO7Py.mjs";
3
- import { f as import_picocolors, l as formatUrl, m as printSuccess, r as createSpinner } from "./output-Ba6ZbrzY.mjs";
4
- import { a as isExpiredTokenError, r as PlatformClient } from "./client-GuSO3v_x.mjs";
2
+ import { H as outro, K as select, L as log, O as cancel, tt as isCancel } from "./dist-Cor9XGoz.mjs";
3
+ import { a as isExpiredTokenError, r as PlatformClient } from "./client-BEkdj1kx.mjs";
4
+ import { f as import_picocolors, l as formatUrl, m as printSuccess, r as createSpinner } from "./output-BpgYODYx.mjs";
5
5
  //#region src/cli/login.ts
6
6
  async function selectPlatformLoginMethod(platform, requestedId) {
7
7
  const providers = platform.authenticationProviders;
@@ -30,7 +30,7 @@ async function selectPlatformLoginMethod(platform, requestedId) {
30
30
  }
31
31
  async function promptForLoginToken(root = process.cwd(), platform) {
32
32
  const apiUrl = platform?.apiUrl ?? getApiUrl(root);
33
- const { id: provider, label: providerName } = await selectPlatformLoginMethod(platform ?? await (await import("./platform-cmd-D9lwFpcl.mjs")).discoverPlatform(apiUrl));
33
+ const { id: provider, label: providerName } = await selectPlatformLoginMethod(platform ?? await (await import("./platform-cmd-PiNRkopU.mjs")).discoverPlatform(apiUrl));
34
34
  const s = createSpinner();
35
35
  s.start(`Opening browser for ${providerName} login...`);
36
36
  try {
@@ -0,0 +1 @@
1
+ export { r as selectPlatformLoginMethod } from "./login-Cttnagmm.mjs";
@@ -1,15 +1,15 @@
1
1
  import { n as readDeploymentPlatform, r as readProjectConfig } from "./project-rqDnVsJN.mjs";
2
2
  import { c as getToken } from "./auth-B6iOCjKI.mjs";
3
- import { $ as wrapTextWithPrefix, H as outro, L as log } from "./dist-BVdsO7Py.mjs";
4
- import { a as errorStackFrames, f as import_picocolors, i as dim, o as formatCount } from "./output-Ba6ZbrzY.mjs";
5
- import { r as PlatformClient } from "./client-GuSO3v_x.mjs";
3
+ import { $ as wrapTextWithPrefix, H as outro, L as log } from "./dist-Cor9XGoz.mjs";
4
+ import { r as PlatformClient } from "./client-BEkdj1kx.mjs";
5
+ import { a as errorStackFrames, f as import_picocolors, i as dim, o as formatCount } from "./output-BpgYODYx.mjs";
6
6
  import { t as sanitizeTerminalLogText } from "./terminal-log-text-D9ACPOuG.mjs";
7
7
  //#region src/cli/logs.ts
8
8
  async function runLogsCommand(root, filter, range, deployment, level) {
9
9
  console.log();
10
10
  const platform = readDeploymentPlatform(root);
11
11
  if (platform === "cloudflare") {
12
- const { resolveCloudflareOperationContext, tailCloudflareWorker } = await import("./cloudflare-operations-Cm8lVx7W.mjs");
12
+ const { resolveCloudflareOperationContext, tailCloudflareWorker } = await import("./cloudflare-operations-DsSaw2BT.mjs");
13
13
  if (range !== "1h") log.warn("Cloudflare tail streams live logs; --range does not select historical entries.");
14
14
  if (level && level !== "all" && level !== "error") log.warn("Cloudflare tail cannot filter individual console levels; showing all invocation logs.");
15
15
  await tailCloudflareWorker(resolveCloudflareOperationContext(root), {
@@ -1,11 +1,11 @@
1
1
  import { a as join, n as dirname } from "./dist-ipQi0Q8y.mjs";
2
2
  import { o as TYPED_CONFIG_FILE, s as loadTypedVoidConfigFile } from "./project-paths-DGu_QZ_Q.mjs";
3
- import { p as validateConfig } from "./config-D26zcdKy.mjs";
3
+ import { h as validateConfig } from "./config-DHgSEWT7.mjs";
4
4
  import { t as parseJsoncObject } from "./generated-wrangler-config-DeWj5F9Y.mjs";
5
- import { n as VOID_LOCK_FILE, o as seedCloudflareConfig, s as stashCloudflareDeployPointer } from "./cloudflare-config-rdFOys4X.mjs";
6
- import "./wrangler-C9XSzrju.mjs";
7
- import { L as log } from "./dist-BVdsO7Py.mjs";
8
- import { m as printSuccess } from "./output-Ba6ZbrzY.mjs";
5
+ import { n as VOID_LOCK_FILE, o as seedCloudflareConfig, s as stashCloudflareDeployPointer } from "./cloudflare-config-DchHxPTo.mjs";
6
+ import "./wrangler-F96NnLyb.mjs";
7
+ import { L as log } from "./dist-Cor9XGoz.mjs";
8
+ import { m as printSuccess } from "./output-BpgYODYx.mjs";
9
9
  import { existsSync, mkdirSync, readFileSync, renameSync, rmSync, unlinkSync, writeFileSync } from "node:fs";
10
10
  import { parseSync } from "vite";
11
11
  import { randomUUID } from "node:crypto";
@@ -0,0 +1 @@
1
+ export { n as runMigrateCommand } from "./migrate-DyT2jJ8y.mjs";
@@ -339,7 +339,7 @@ async function normalizeEmail(opts) {
339
339
  const replyTo = opts.replyTo ? parseAddress(opts.replyTo, "replyTo") : void 0;
340
340
  const attachmentList = opts.attachments ?? [];
341
341
  if (!Array.isArray(attachmentList)) throw new MimeError("MIME_ERROR", "email: attachments must be an array.");
342
- if (attachmentList.length > MAX_ATTACHMENTS) throw new MimeError("MIME_ERROR", `email: too many attachments (max ${MAX_ATTACHMENTS}, got ${attachmentList.length}).`);
342
+ if (attachmentList.length > 44057) throw new MimeError("MIME_ERROR", `email: too many attachments (max ${MAX_ATTACHMENTS}, got ${attachmentList.length}).`);
343
343
  const attachments = [];
344
344
  let attachmentBytes = 0;
345
345
  for (const att of attachmentList) {
package/dist/nitro.mjs CHANGED
@@ -1,7 +1,7 @@
1
1
  import { a as join, n as dirname } from "./dist-ipQi0Q8y.mjs";
2
- import { d as readConfig, s as getDatabaseDialect } from "./config-D26zcdKy.mjs";
3
- import { r as voidDbBundlerPlugin } from "./dispatch-BAbbn3jg.mjs";
4
- import { n as bundleWorkerSqlDriver } from "./wrapper-BOigE1xJ.mjs";
2
+ import { l as getDatabaseDialect, p as readConfig } from "./config-DHgSEWT7.mjs";
3
+ import { r as voidDbBundlerPlugin } from "./dispatch-DoUnxTNo.mjs";
4
+ import { n as bundleWorkerSqlDriver } from "./wrapper-D3sZyh2C.mjs";
5
5
  import { fileURLToPath } from "node:url";
6
6
  import { normalizePath } from "vite";
7
7
  import { resolve } from "node:path/win32";
@@ -1,10 +1,10 @@
1
1
  import { n as dirname } from "./dist-ipQi0Q8y.mjs";
2
2
  import { n as loadVoidAuthConfig, t as findVoidAuthConfig } from "./config-CyUJzi3q.mjs";
3
- import { d as readConfig } from "./config-D26zcdKy.mjs";
3
+ import { p as readConfig } from "./config-DHgSEWT7.mjs";
4
4
  import { r as getMiniflareDatabasePath } from "./runner-3uGC-oLF.mjs";
5
5
  import { o as loadLocalEnv } from "./env-BJjULvL0.mjs";
6
- import { r as resolveVoidAuthMigrationSchema } from "./drizzle-BQfyvQKX.mjs";
7
6
  import { a as pgMigrationRunner, i as mysqlMigrationRunner, n as applyPgAuthMigrations, r as applySqliteAuthMigrations, t as applyMySqlAuthMigrations } from "./auth-migrations-BO27GDNr.mjs";
7
+ import { r as resolveVoidAuthMigrationSchema } from "./drizzle-BQfyvQKX.mjs";
8
8
  import { mkdirSync } from "node:fs";
9
9
  //#region src/auth/node.ts
10
10
  async function runLocalVoidAuthMigrations(root, dialect, persistRoot, databaseId, configPath = findVoidAuthConfig(root), databaseUrl) {
@@ -0,0 +1 @@
1
+ export { a as runOperatorCommand } from "./operator-cmd-skshjMGl.mjs";
@@ -1,4 +1,4 @@
1
- import { h as sanitizeTerminalText, m as printSuccess } from "./output-Ba6ZbrzY.mjs";
1
+ import { h as sanitizeTerminalText, m as printSuccess } from "./output-BpgYODYx.mjs";
2
2
  import { n as OperatorClient, r as OperatorClientError } from "./operator-client-C-ROjk1I.mjs";
3
3
  import { a as resolveOperatorOrigin, i as removeOperatorToken, n as readOperatorApiTokenStdin, o as saveOperatorToken, r as readOperatorToken, t as exchangeOperatorSession } from "./operator-auth-Cr2zCc-J.mjs";
4
4
  import { createHash } from "node:crypto";
@@ -163,8 +163,8 @@ async function runAuth(origin, args) {
163
163
  if (args.action === "login" || args.action === "token" && args.tokenStdin) {
164
164
  if (!args.tokenStdin && !process.stdin.isTTY) throw new OperatorClientError("Browser login requires an interactive terminal. Use --token-stdin to exchange an API session.", "interactive_login_required");
165
165
  const apiToken = args.tokenStdin ? await readOperatorApiTokenStdin() : await (async () => {
166
- const { discoverPlatform } = await import("./platform-cmd-D9lwFpcl.mjs");
167
- const { selectPlatformLoginMethod } = await import("./login-alAlxw4S.mjs");
166
+ const { discoverPlatform } = await import("./platform-cmd-PiNRkopU.mjs");
167
+ const { selectPlatformLoginMethod } = await import("./login-DgDwlKc_.mjs");
168
168
  const { runPlatformLogin } = await import("./auth-Cbqi1iVX.mjs");
169
169
  return runPlatformLogin(origin, (await selectPlatformLoginMethod(await discoverPlatform(origin), args.provider)).id, (url) => process.stderr.write(`Sign in at ${url}\n`));
170
170
  })();
@@ -344,7 +344,7 @@ async function migrateDeploymentAssets(client, origin, args) {
344
344
  }
345
345
  async function runOperatorCommand(args) {
346
346
  if (!args.action) {
347
- const { printHelpPage } = await import("./help-DOFygYi4.mjs");
347
+ const { printHelpPage } = await import("./help-BeAFFE5C.mjs");
348
348
  printHelpPage(["platform", args.group]);
349
349
  return;
350
350
  }
@@ -0,0 +1 @@
1
+ export { m as printSuccess } from "./output-BpgYODYx.mjs";
@@ -1,6 +1,6 @@
1
- import { n as __toESM } from "./rolldown-runtime-DXIUcv95.mjs";
2
- import { t as require_picocolors } from "./picocolors-BTps1_gs.mjs";
3
- import { B as note$1, H as outro, L as log, P as isCI, nt as settings, q as spinner } from "./dist-BVdsO7Py.mjs";
1
+ import { n as __toESM } from "./rolldown-runtime-3h0WiCiA.mjs";
2
+ import { t as require_picocolors } from "./picocolors-BsDfhxIw.mjs";
3
+ import { B as note$1, H as outro, L as log, P as isCI, nt as settings, q as spinner } from "./dist-Cor9XGoz.mjs";
4
4
  import { stripVTControlCharacters } from "node:util";
5
5
  import terminalLink from "terminal-link";
6
6
  //#region src/cli/output.ts
@@ -69,6 +69,15 @@ function createSpinner(options, isTerminal = process.stdout.isTTY === true) {
69
69
  }
70
70
  };
71
71
  }
72
+ /** The URL as the box title shows it: whole, or its longest start cut with "…". */
73
+ function shownUrl(chunk, url) {
74
+ if (chunk.includes(url)) return url;
75
+ const plain = stripVTControlCharacters(chunk);
76
+ for (let end = url.length - 1; end > 0; end--) {
77
+ const label = `${url.slice(0, end)}…`;
78
+ if (plain.includes(label)) return label;
79
+ }
80
+ }
72
81
  /** Narrowest terminal the shared box renderer can draw a note in, guide bar included. */
73
82
  const MIN_NOTE_COLUMNS = 6;
74
83
  /**
@@ -92,7 +101,10 @@ function note(...args) {
92
101
  const sized = {
93
102
  columns: needsWidthFallback ? columns > 0 ? MIN_NOTE_COLUMNS : 80 : columns,
94
103
  write(chunk) {
95
- if (header && urlTitle) chunk = chunk.replace(` ${urlTitle} `, ` ${formatUrl(urlTitle)} `);
104
+ if (header && urlTitle) {
105
+ const label = shownUrl(chunk, urlTitle);
106
+ if (label) chunk = chunk.replace(label, () => terminalLink(label, urlTitle, { fallback: false }));
107
+ }
96
108
  header = false;
97
109
  return output.write(chunk);
98
110
  }
@@ -1,5 +1,5 @@
1
1
  import { t as interpolateRouteParams } from "../route-url-BgPja1GS.mjs";
2
- import { t as PageObject } from "../protocol-B8sI8dRD.mjs";
2
+ import { t as PageObject } from "../protocol-BBDpJz3G.mjs";
3
3
  import { n as CacheForInput, r as CacheForResult } from "../prefetch-Ce6la4EI.mjs";
4
4
  import { UsageLimitData } from "@void/edge";
5
5
  import { ActionUrl, ResolveActionBody, ResolveActionParams } from "void/routes";
@@ -196,6 +196,6 @@ export declare function createVoidRouter(config: VoidRouterConfig): Promise<{
196
196
  commitInitialRender(): void;
197
197
  }>;
198
198
  export declare function scheduleHydration(el: Element, loader: () => Promise<unknown>, props: Record<string, unknown>, strategy: string, hydrateFn: (el: Element, mod: unknown, props: Record<string, unknown>) => void | Promise<void>): void;
199
- export declare function initIslands(islands: Record<string, () => Promise<unknown>>, hydrateFn: (el: Element, mod: unknown, props: Record<string, unknown>) => void | Promise<void>): void;
199
+ export declare function initIslands(islands: Record<string, () => Promise<unknown>>, hydrateFn: (el: Element, mod: unknown, props: Record<string, unknown>, frontmatter: Record<string, unknown>) => void | Promise<void>): void;
200
200
  //#endregion
201
201
  export { type ActionErrorHandlingScope, type ActionResult, type FormMethod, type FormModel, type PageNavigationEngine, type PageNavigationResource, type PageNavigationResult, type PrefetchOptions, type VisitOptions, interpolateRouteParams };