void 1.1.0 → 1.1.11

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 (194) hide show
  1. package/dist/{account-cmd-BTcUzv9L.mjs → account-cmd-R35a4Oa8.mjs} +3 -3
  2. package/dist/{application-analysis-AB_YYWgH.mjs → application-analysis-D7nNmNJb.mjs} +6 -6
  3. package/dist/{application-routing-L7V-TFhZ.mjs → application-routing-CZH66gXn.mjs} +1 -1
  4. package/dist/{auth-link-DUJuvRx5.mjs → auth-link-VHmiKZmP.mjs} +3 -3
  5. package/dist/{auth-migrations-Cgs0k6lS.mjs → auth-migrations-BO27GDNr.mjs} +38 -2
  6. package/dist/{auth-router-CIxiMG7i.mjs → auth-router-O_Wrs5kg.mjs} +5 -4
  7. package/dist/{better-auth-shared-B74NJIus.d.mts → better-auth-shared-Bv18bB-l.d.mts} +2 -0
  8. package/dist/{better-auth-shared-CMXlZG7W.mjs → better-auth-shared-D-6z0q0f.mjs} +28 -1
  9. package/dist/{build-cmd-BkIv25PA.mjs → build-cmd-CMZiMn46.mjs} +1 -1
  10. package/dist/{cache-Ctzfig-W.mjs → cache-TZ5Ab3d7.mjs} +1 -1
  11. package/dist/{cancel-deploy-CD9o-SsC.mjs → cancel-deploy-DXoR6oC3.mjs} +1 -1
  12. package/dist/cli/cli.mjs +69 -50
  13. package/dist/cli/env-schema-probe.mjs +3 -3
  14. package/dist/client-DrdeJgHR.mjs +1 -0
  15. package/dist/{client-DM9Kcf4e.mjs → client-GuSO3v_x.mjs} +1 -1
  16. package/dist/{cloudflare-auth-CqFBDo52.mjs → cloudflare-auth-DSvBc1Gu.mjs} +1 -1
  17. package/dist/{cloudflare-cmd-BIAF_BIY.mjs → cloudflare-cmd-ZSErUl6Y.mjs} +3 -3
  18. package/dist/{cloudflare-config-DV60XFFK.mjs → cloudflare-config-rdFOys4X.mjs} +2 -2
  19. package/dist/{cloudflare-connect-WjwnVOJA.mjs → cloudflare-connect-BN-k2kD-.mjs} +2 -2
  20. package/dist/{cloudflare-operations-CrSUFRzJ.mjs → cloudflare-operations-Cm8lVx7W.mjs} +1 -1
  21. package/dist/{cloudflare-operations-B42EZeJy.mjs → cloudflare-operations-DH3GedbV.mjs} +6 -6
  22. package/dist/{cloudflare-process-CeDWJRhj.mjs → cloudflare-process-CZJ4viYl.mjs} +2 -2
  23. package/dist/collect-BWhkgtAn.mjs +1 -0
  24. package/dist/{collect-xjffdCdk.mjs → collect-Dew86qce.mjs} +4 -3
  25. package/dist/{config-D0GY5ItR.mjs → config-CyUJzi3q.mjs} +1 -1
  26. package/dist/{config-Bx_1SpnO.mjs → config-D26zcdKy.mjs} +2 -2
  27. package/dist/{config-BEm9vRvS.mjs → config-DC5llZaI.mjs} +2 -2
  28. package/dist/{config-QrJWu0IX.mjs → config-DYJV8aEH.mjs} +1 -1
  29. package/dist/{connect-CKtk-EZe.mjs → connect-yQuLbuiJ.mjs} +4 -4
  30. package/dist/{create-project-B-ewF_Af.mjs → create-project-CGOo_OL_.mjs} +1 -1
  31. package/dist/{create-project-yInGo72M.mjs → create-project-DEEWJX_M.mjs} +1 -1
  32. package/dist/database-provider.d.mts +6 -0
  33. package/dist/{db-7I_gfdVq.mjs → db-COI-yTJE.mjs} +255 -110
  34. package/dist/{db-types-Bb4WBWIs.mjs → db-types-NGxPwnlt.mjs} +1 -1
  35. package/dist/{delete-Cy-M1u-r.mjs → delete-PgN6L_9N.mjs} +1 -1
  36. package/dist/deploy-CxNgEYr4.mjs +2 -0
  37. package/dist/{deploy-BYYlnsiy.mjs → deploy-DsW-PrRQ.mjs} +38 -36
  38. package/dist/{deploy-managed-static-Ca4TFdmx.mjs → deploy-managed-static-Dqz06S2u.mjs} +20 -20
  39. package/dist/{deploy-transport-DWlWBe6M.mjs → deploy-transport-nY3vLXPL.mjs} +2 -2
  40. package/dist/deploy.mjs +5 -5
  41. package/dist/discover-D4TPKo57.mjs +1 -0
  42. package/dist/{discover-D2PGT63u.mjs → discover-LaV0tbIu.mjs} +1 -1
  43. package/dist/{dispatch-DrTTk8Xg.mjs → dispatch-BAbbn3jg.mjs} +6 -6
  44. package/dist/{domain-CZGxPv9u.mjs → domain-DKlNI0SR.mjs} +2 -2
  45. package/dist/{drizzle-CF84FOVM.mjs → drizzle-BQfyvQKX.mjs} +13 -2
  46. package/dist/{email-DzyNVuoU.mjs → email-C0s3OvJk.mjs} +10 -11
  47. package/dist/{email-cloudflare-DfG6UEMm.mjs → email-cloudflare-etpKiITL.mjs} +7 -10
  48. package/dist/{entry-ehmBvs5w.mjs → entry-B_0IhV64.mjs} +1 -1
  49. package/dist/{env-Nx3yf50r.mjs → env-BX2JFsgF.mjs} +4 -4
  50. package/dist/{env-types-DS2_y4X8.mjs → env-types-GRchm5dw.mjs} +1 -1
  51. package/dist/{env-validation-BT7z-qpQ.mjs → env-validation-CuGfWRJd.mjs} +1 -1
  52. package/dist/{env-validation-DYxjz_Wo.mjs → env-validation-D_KyMdab.mjs} +2 -2
  53. package/dist/{fetch-BPCYVi3H.d.mts → fetch-DHLOuPyk.d.mts} +2 -2
  54. package/dist/{fetch-stream-obvZ7fvO.d.mts → fetch-stream-CNxOrBdP.d.mts} +1 -1
  55. package/dist/{gen-CufHEf42.mjs → gen-Bj6ZkOcI.mjs} +25 -19
  56. package/dist/gen-DsCukhuw.mjs +1 -0
  57. package/dist/{generate-Dat0UTry.mjs → generate-B1m4Cm4n.mjs} +1 -1
  58. package/dist/{generate-ClI89brV.mjs → generate-DkEb9rL-.mjs} +1 -1
  59. package/dist/{github-cmd-FU8EjFyU.mjs → github-cmd-DQDryS-5.mjs} +1 -1
  60. package/dist/{headers-Di1FsD3e.mjs → headers-Bi4bOAwp.mjs} +1 -1
  61. package/dist/{help-BT2hovNI.mjs → help-D49SL_lN.mjs} +16 -12
  62. package/dist/help-DOFygYi4.mjs +1 -0
  63. package/dist/{inbound-brj2-TM5.d.mts → inbound-Da7XsjH3.d.mts} +6 -12
  64. package/dist/index.mjs +103 -57
  65. package/dist/{info-l249eUdH.mjs → info-Bxunp14X.mjs} +4 -4
  66. package/dist/{init-D0A6M64Q.mjs → init-DyTEY04s.mjs} +50 -27
  67. package/dist/{link-WMoJFf4i.mjs → link-CgOVn9EC.mjs} +2 -2
  68. package/dist/{list-CQ2EQEHL.mjs → list-CUfD9RSb.mjs} +2 -2
  69. package/dist/{local-d1-BxvQYEFi.mjs → local-d1-CpaPbd_L.mjs} +5 -5
  70. package/dist/{login-C2T1oVG-.mjs → login-BJvGW5Eu.mjs} +2 -2
  71. package/dist/login-alAlxw4S.mjs +1 -0
  72. package/dist/{logs-DnC1d7xB.mjs → logs-DeizBI4j.mjs} +2 -2
  73. package/dist/{migrate-BDIprOYd.mjs → migrate-8rk56vV8.mjs} +4 -4
  74. package/dist/migrate-D2odrAmh.mjs +1 -0
  75. package/dist/{neon-n74ta1Pr.mjs → neon-DTZr7Bu7.mjs} +0 -1
  76. package/dist/nitro.mjs +3 -3
  77. package/dist/{node-cPadMgUO.mjs → node-uN8_zxJr.mjs} +15 -9
  78. package/dist/{operator-cmd-DHieWtFp.mjs → operator-cmd-CA5QQyvE.mjs} +3 -3
  79. package/dist/operator-cmd-D7toMPJ9.mjs +1 -0
  80. package/dist/pages/client.d.mts +1 -1
  81. package/dist/pages/index.d.mts +1 -1
  82. package/dist/pages/index.mjs +4 -4
  83. package/dist/pages/islands-plugin.d.mts +1 -1
  84. package/dist/pages/islands-plugin.mjs +1 -1
  85. package/dist/pages/protocol.d.mts +1 -1
  86. package/dist/{platform-args-CaCL_1Ch.mjs → platform-args-B7ke06up.mjs} +1 -4
  87. package/dist/platform-args-B_LrqEZB.mjs +1 -0
  88. package/dist/{platform-auth-config-Z16-I8nT.mjs → platform-auth-config-CZaY812e.mjs} +3 -3
  89. package/dist/{platform-auth-protection-BXwZiJSF.mjs → platform-auth-protection-U9HCqoXv.mjs} +2 -2
  90. package/dist/{platform-auth-recovery-CXjfqyOv.mjs → platform-auth-recovery-B0BV2hfV.mjs} +2 -2
  91. package/dist/{platform-cmd-DaAOiWTl.mjs → platform-cmd-CXrjk4fb.mjs} +4 -4
  92. package/dist/{platform-cmd-PT4YwMLM.mjs → platform-cmd-D9lwFpcl.mjs} +1 -1
  93. package/dist/{platform-domain-CxpvUeo0.mjs → platform-domain-CXyq-68_.mjs} +2 -2
  94. package/dist/{platform-lifecycle-DBiS0cJd.mjs → platform-lifecycle-D0TdyXbN.mjs} +20 -11
  95. package/dist/{platform-lifecycle-u9pMOvxC.mjs → platform-lifecycle-Dz2cJsLX.mjs} +1 -1
  96. package/dist/{platform-management-DvBS83rC.mjs → platform-management-BvgbusqL.mjs} +1 -1
  97. package/dist/{platform-management-DhEFdQAf.mjs → platform-management-CnXhgxTM.mjs} +1 -3
  98. package/dist/{platform-recovery-BUGOB4RC.mjs → platform-recovery-CH_fThW6.mjs} +2 -2
  99. package/dist/{plugin-inference-DsARdQKE.mjs → plugin-inference-Bekzjuqw.mjs} +2 -2
  100. package/dist/{prepare-PQCgsny0.mjs → prepare-2XD6kh77.mjs} +1 -1
  101. package/dist/{prepare-DEB5SeVJ.mjs → prepare-DepAGBcV.mjs} +9 -9
  102. package/dist/prepare-EVEbQ9n2.mjs +1 -0
  103. package/dist/{project-cmd-DVatD8Ev.mjs → project-cmd-CpLYflCH.mjs} +16 -16
  104. package/dist/{project-paths-DMvEeSau.mjs → project-paths-DGu_QZ_Q.mjs} +1 -1
  105. package/dist/{project-team-DJrWEAG1.mjs → project-team-CTSY7W7Q.mjs} +1 -1
  106. package/dist/{project-token-CBgLBuL6.mjs → project-token-Cybtlfbl.mjs} +1 -1
  107. package/dist/{project-tsconfig-bveqhlYA.mjs → project-tsconfig-Itv1f4WC.mjs} +1 -1
  108. package/dist/{project-zero-trust-92gLtZ25.mjs → project-zero-trust-DKOtqyvu.mjs} +1 -1
  109. package/dist/{protocol-4H7V_3Os.d.mts → protocol-B8sI8dRD.d.mts} +1 -1
  110. package/dist/{providers-BXuhmuub.mjs → providers-BUHwJlmM.mjs} +10 -1
  111. package/dist/{provision-BnSSkiED.mjs → provision-BuifYvLc.mjs} +63 -64
  112. package/dist/provision-UcYjpTRh.mjs +1 -0
  113. package/dist/r2-conditions-B8xUgJRc.mjs +61 -0
  114. package/dist/{requests-7W1Pygt2.mjs → requests-Ryiazz9i.mjs} +1 -1
  115. package/dist/{rollback-BcASVnwP.mjs → rollback-Or0EV3rP.mjs} +2 -2
  116. package/dist/{runner-CabsQ-iM.mjs → runner-3uGC-oLF.mjs} +9 -7
  117. package/dist/{runner-So9mYfcm.mjs → runner-WCdfeI0q.mjs} +1 -1
  118. package/dist/{runner-mysql-BhRaONkO.mjs → runner-mysql-BWmbk5IE.mjs} +1 -1
  119. package/dist/{runner-mysql-DWwE8jKi.mjs → runner-mysql-BcHnLUuM.mjs} +1 -1
  120. package/dist/{runner-pg-_Xncr3H5.mjs → runner-pg-Cgp-cr_p.mjs} +1 -1
  121. package/dist/{runner-pg-BRemq_GX.mjs → runner-pg-Cr3qrqi4.mjs} +1 -1
  122. package/dist/runtime/ai.d.mts +4 -0
  123. package/dist/runtime/ai.mjs +2 -37
  124. package/dist/runtime/better-auth-mysql.d.mts +1 -1
  125. package/dist/runtime/better-auth-mysql.mjs +2 -2
  126. package/dist/runtime/better-auth-pg.d.mts +1 -1
  127. package/dist/runtime/better-auth-pg.mjs +2 -2
  128. package/dist/runtime/better-auth.d.mts +1 -1
  129. package/dist/runtime/better-auth.mjs +2 -2
  130. package/dist/runtime/client-react.d.mts +2 -2
  131. package/dist/runtime/client-solid.d.mts +2 -2
  132. package/dist/runtime/client-svelte.d.mts +2 -2
  133. package/dist/runtime/client-vue.d.mts +2 -2
  134. package/dist/runtime/client.d.mts +2 -2
  135. package/dist/runtime/email/testing.d.mts +1 -1
  136. package/dist/runtime/email.d.mts +2 -3
  137. package/dist/runtime/email.mjs +2 -3
  138. package/dist/runtime/fetch-stream.d.mts +2 -2
  139. package/dist/runtime/fetch.d.mts +1 -1
  140. package/dist/runtime/migration-handler-mysql.mjs +4 -4
  141. package/dist/runtime/migration-handler-pg.mjs +9 -1
  142. package/dist/runtime/remote/binding-handler.mjs +25 -25
  143. package/dist/runtime/remote/index.d.mts +3 -0
  144. package/dist/runtime/remote/index.mjs +86 -23
  145. package/dist/runtime/routing.d.mts +2 -2
  146. package/dist/runtime/sse-client.d.mts +4 -0
  147. package/dist/runtime/ws-server.d.mts +2 -2
  148. package/dist/runtime/ws.d.mts +1 -1
  149. package/dist/{scan-C0BMdmEd.mjs → scan-D2-FcLHs.mjs} +13 -5
  150. package/dist/{secret-bg73f1Ge.mjs → secret-CClHaFxm.mjs} +3 -3
  151. package/dist/{types-BAp5AEBU.d.mts → types-7AIz0OZu.d.mts} +1 -1
  152. package/dist/{validate-CheZGRE7.mjs → validate-CnZPMq4q.mjs} +22 -17
  153. package/dist/validate-D7Wn8PUX.mjs +1 -0
  154. package/dist/{version-metadata-DIrqEHQo.mjs → version-metadata-B1Bm2wSq.mjs} +1 -1
  155. package/dist/{wrangler-BYs07Rxy.mjs → wrangler-C9XSzrju.mjs} +3 -3
  156. package/dist/wrangler-DAdxHEzh.mjs +1 -0
  157. package/dist/{wrapper-CwhpNWtH.mjs → wrapper-BOigE1xJ.mjs} +4 -4
  158. package/dist/{ws-aKVYB-fA.d.mts → ws-CsBNxv86.d.mts} +5 -0
  159. package/docs/guide/auth.md +1 -1
  160. package/docs/guide/database/d1.md +2 -2
  161. package/docs/guide/database/mysql.md +1 -1
  162. package/docs/guide/edge/headers.md +10 -2
  163. package/docs/guide/edge/revalidation.md +2 -0
  164. package/docs/guide/email/receiving.md +1 -1
  165. package/docs/guide/email/sending.md +1 -1
  166. package/docs/guide/pages-routing/islands.md +2 -2
  167. package/docs/guide/platform/administration/connected-apps.md +18 -2
  168. package/docs/guide/remote-dev.md +2 -0
  169. package/docs/guide/websockets.md +2 -2
  170. package/docs/index.md +78 -22
  171. package/docs/reference/api/pages.md +7 -5
  172. package/docs/reference/api.md +2 -0
  173. package/docs/reference/cli/database.md +7 -5
  174. package/docs/reference/cli/deploy.md +12 -10
  175. package/docs/reference/cli/email.md +1 -1
  176. package/docs/reference/cli/generate.md +1 -1
  177. package/docs/reference/cli/platform-installation.md +2 -2
  178. package/docs/reference/cli/project.md +4 -2
  179. package/docs/reference/cli.md +1 -1
  180. package/docs/reference/config.md +11 -1
  181. package/package.json +7 -7
  182. package/dist/client-B60PwCC4.mjs +0 -1
  183. package/dist/collect-Cae8A7Zr.mjs +0 -1
  184. package/dist/deploy-9lgfhrXS.mjs +0 -2
  185. package/dist/discover-ClzFSwns.mjs +0 -1
  186. package/dist/gen-sXyp5DFO.mjs +0 -1
  187. package/dist/help-i2YGGnTH.mjs +0 -1
  188. package/dist/login-XD844Xs-.mjs +0 -1
  189. package/dist/migrate-BRwU-blY.mjs +0 -1
  190. package/dist/operator-cmd-D6gnZsnK.mjs +0 -1
  191. package/dist/platform-args-B0HeTh0C.mjs +0 -1
  192. package/dist/prepare-CYT6tAzD.mjs +0 -1
  193. package/dist/r2-conditions-D1Wk8i7b.mjs +0 -30
  194. package/dist/validate-BQFdf0Pi.mjs +0 -1
@@ -1,5 +1,5 @@
1
1
  import { a as join } from "./dist-ipQi0Q8y.mjs";
2
- import { r as writeFileIfChanged } from "./project-tsconfig-bveqhlYA.mjs";
2
+ import { r as writeFileIfChanged } from "./project-tsconfig-Itv1f4WC.mjs";
3
3
  //#region src/codegen/db-types.ts
4
4
  const DRIZZLE_OPERATORS = "sql, eq, ne, gt, gte, lt, lte, and, or, not, desc, asc, like, ilike, notLike, inArray, notInArray, isNull, isNotNull, between, notBetween, exists, notExists, count, sum, avg, min, max";
5
5
  const DIALECT_DB_TYPES = {
@@ -2,7 +2,7 @@ import { o as removeProjectConfig, r as readProjectConfig } from "./project-rqDn
2
2
  import { c as getToken } from "./auth-B6iOCjKI.mjs";
3
3
  import { L as log, O as cancel, X as text, tt as isCancel } from "./dist-BVdsO7Py.mjs";
4
4
  import { m as printSuccess, p as note, r as createSpinner } from "./output-Ba6ZbrzY.mjs";
5
- import { r as PlatformClient } from "./client-DM9Kcf4e.mjs";
5
+ import { r as PlatformClient } from "./client-GuSO3v_x.mjs";
6
6
  import { a as resolveProjectBySlug } from "./resolve-project-WpwkCB_c.mjs";
7
7
  //#region src/cli/delete.ts
8
8
  async function runDeleteCommand(root, slug, options) {
@@ -0,0 +1,2 @@
1
+ import "./deploy-transport-nY3vLXPL.mjs";
2
+ export { i as checkWranglerMigrationApplySet, t as parseRootWranglerConfig, r as runDeploy } from "./deploy-DsW-PrRQ.mjs";
@@ -1,49 +1,49 @@
1
1
  import { n as __toESM, t as __commonJSMin } from "./rolldown-runtime-DXIUcv95.mjs";
2
2
  import { a as join, c as resolve, n as dirname, o as normalize, r as extname, s as relative, t as basename } from "./dist-ipQi0Q8y.mjs";
3
3
  import { t as require_picocolors } from "./picocolors-BTps1_gs.mjs";
4
- import { r as detectFramework } from "./plugin-inference-DsARdQKE.mjs";
5
- import { t as assertNoRootSourceConventionConflicts } from "./project-paths-DMvEeSau.mjs";
6
- import { c as isNodeTarget, d as readConfig, f as resolveBindingNames } from "./config-Bx_1SpnO.mjs";
7
- import { a as hasSandboxSqliteMigration, c as sandboxContainerConfig, i as assertSandboxNamespaceConfig, o as requiresSandboxPlatformImage, r as SANDBOX_MIGRATION_TAG, s as resolveSandboxConfig, t as analyzeApplicationSync } from "./application-analysis-AB_YYWgH.mjs";
8
- import { t as collectMigrations } from "./collect-xjffdCdk.mjs";
9
- import { o as validateSsrEntry } from "./entry-ehmBvs5w.mjs";
4
+ import { r as detectFramework } from "./plugin-inference-Bekzjuqw.mjs";
5
+ import { n as readProjectPaths, t as assertNoRootSourceConventionConflicts } from "./project-paths-DGu_QZ_Q.mjs";
6
+ import { c as isNodeTarget, d as readConfig, f as resolveBindingNames } from "./config-D26zcdKy.mjs";
7
+ import { a as hasSandboxSqliteMigration, c as sandboxContainerConfig, i as assertSandboxNamespaceConfig, o as requiresSandboxPlatformImage, r as SANDBOX_MIGRATION_TAG, s as resolveSandboxConfig, t as analyzeApplicationSync } from "./application-analysis-D7nNmNJb.mjs";
8
+ import { t as collectMigrations } from "./collect-Dew86qce.mjs";
9
+ import { o as validateSsrEntry } from "./entry-B_0IhV64.mjs";
10
10
  import { r as hasEmailHandlers } from "./email-BcjSyAL0.mjs";
11
- import { a as resolveDistDir, c as hasDocumentRoutes, l as resolveAssetConfig, n as collectRevalidate, o as resolveWorkerDirName, r as hasRevalidate, s as hasApiRoutes } from "./isr-config-fZaJJ8t7.mjs";
12
11
  import { i as voidWarn } from "./log-vqY3pqwI.mjs";
12
+ import { a as resolveDistDir, c as hasDocumentRoutes, l as resolveAssetConfig, n as collectRevalidate, o as resolveWorkerDirName, r as hasRevalidate, s as hasApiRoutes } from "./isr-config-fZaJJ8t7.mjs";
13
13
  import { t as writeFileAtomic } from "./atomic-write-Dq6R0BPN.mjs";
14
14
  import { s as listPlatformConnections } from "./platform-registry-B9mWX9LO.mjs";
15
15
  import { c as writeDeploymentPlatform, n as readDeploymentPlatform, r as readProjectConfig } from "./project-rqDnVsJN.mjs";
16
16
  import { n as readGeneratedWranglerConfigFile } from "./generated-wrangler-config-DeWj5F9Y.mjs";
17
- import { i as persistCloudflareConfig, r as materializeCloudflareConfig, s as stashCloudflareDeployPointer } from "./cloudflare-config-DV60XFFK.mjs";
18
- import { C as readWranglerManagedQueueCleanupCandidates, E as resolveLiveBindingConfig, M as writeWranglerPublishedTrafficSnapshot, O as syncWranglerDurableObjects, a as LIVE_MIGRATION_TAG, c as bindingEntriesForField, h as nextDurableObjectMigrationTag, j as writeProvisionedWranglerConfig, k as syncWranglerWebSockets, m as hasDurableObjectSqliteMigration, o as acknowledgeWranglerManagedQueueRemovals, r as FRIENDLY_BINDING_NAMES, v as readExistingLiveBindingConfig, w as readWranglerPublishedTrafficSnapshot } from "./wrangler-BYs07Rxy.mjs";
17
+ import { i as persistCloudflareConfig, r as materializeCloudflareConfig, s as stashCloudflareDeployPointer } from "./cloudflare-config-rdFOys4X.mjs";
18
+ import { C as readWranglerManagedQueueCleanupCandidates, E as resolveLiveBindingConfig, M as writeWranglerPublishedTrafficSnapshot, O as syncWranglerDurableObjects, a as LIVE_MIGRATION_TAG, c as bindingEntriesForField, h as nextDurableObjectMigrationTag, j as writeProvisionedWranglerConfig, k as syncWranglerWebSockets, m as hasDurableObjectSqliteMigration, o as acknowledgeWranglerManagedQueueRemovals, r as FRIENDLY_BINDING_NAMES, v as readExistingLiveBindingConfig, w as readWranglerPublishedTrafficSnapshot } from "./wrangler-C9XSzrju.mjs";
19
19
  import { r as trustedCloudflareWorkerAccessHeaders, t as cfAccessHeaders } from "./cf-access-BM9G0lhO.mjs";
20
20
  import { t as ensurePlatformAccessToken } from "./cf-access-CWP4avfP.mjs";
21
21
  import { a as getApiUrl, c as getToken, l as getTokenSource } from "./auth-B6iOCjKI.mjs";
22
22
  import { A as confirm, K as select, L as log, tt as isCancel } from "./dist-BVdsO7Py.mjs";
23
23
  import { o as formatCount, p as note, r as createSpinner, u as getErrorMessage } from "./output-Ba6ZbrzY.mjs";
24
24
  import { c as resolveRemoteMode, t as CLOUDFLARE_DEPLOY_BUILD_ENV } from "./env-BJjULvL0.mjs";
25
- import { a as buildEnv, n as readVersionMetadataBinding, r as selectNativeVersionMetadataBinding, t as CLOUDFLARE_PRESERVE_BINDINGS_BUILD_ENV } from "./version-metadata-DIrqEHQo.mjs";
26
- import { a as emailConfigInputs, c as renderAddressMap, d as collectPrerenderPathsNode, f as prerenderPages, i as createNodeEmailDns, l as renderEmailChecklist, n as SEND_EMAIL_BINDING, o as preflightEmail, p as prerenderPagesNode, r as applyEmailSetup, t as EMAIL_FROM_VAR, u as collectPrerenderPaths } from "./email-cloudflare-DfG6UEMm.mjs";
27
- import { n as completeApplicationAnalysis, t as analyzeApplication } from "./application-routing-L7V-TFhZ.mjs";
28
- import { i as validateMigrations, t as assertJournalCoherence } from "./validate-CheZGRE7.mjs";
25
+ import { a as buildEnv, n as readVersionMetadataBinding, r as selectNativeVersionMetadataBinding, t as CLOUDFLARE_PRESERVE_BINDINGS_BUILD_ENV } from "./version-metadata-B1Bm2wSq.mjs";
26
+ import { a as emailConfigInputs, c as renderAddressMap, d as collectPrerenderPathsNode, f as prerenderPages, i as createNodeEmailDns, l as renderEmailChecklist, n as SEND_EMAIL_BINDING, o as preflightEmail, p as prerenderPagesNode, r as applyEmailSetup, t as EMAIL_FROM_VAR, u as collectPrerenderPaths } from "./email-cloudflare-etpKiITL.mjs";
27
+ import { n as completeApplicationAnalysis, t as analyzeApplication } from "./application-routing-CZH66gXn.mjs";
28
+ import { i as validateMigrations, t as assertJournalCoherence } from "./validate-CnZPMq4q.mjs";
29
29
  import { r as getPackageDir } from "./agents-CuNtT0D_.mjs";
30
- import { a as isExpiredTokenError, r as PlatformClient } from "./client-DM9Kcf4e.mjs";
30
+ import { a as isExpiredTokenError, r as PlatformClient } from "./client-GuSO3v_x.mjs";
31
31
  import { t as getRequestedProjectSlug } from "./resolve-project-WpwkCB_c.mjs";
32
- import { a as FRAMEWORK_PRESETS, c as hasBackendFiles, i as isCleanCloudflareExit, l as resolveCloudflareOperationArgv, o as detectPreset, s as formatProjectCommand, t as createCloudflareProcessRunner, u as resolveProjectCommand } from "./cloudflare-process-CeDWJRhj.mjs";
33
- import { f as listSelfHostSecretNames, h as selfHostSchemaFailureMessage, i as SelfHostSecretListError, l as dischargeSelfHostEnvContext, n as SelfHostFirstDeployError, p as readEmittedWorkerVars, r as SelfHostSchemaError, s as deriveSelfHostEnvContextFromVars, t as SelfHostEnvValidationError } from "./env-validation-DYxjz_Wo.mjs";
34
- import { a as needsWrapper, r as cleanupWrapper, t as bundleEntry } from "./wrapper-CwhpNWtH.mjs";
35
- import { A as resolveDeployLiveBindingConfig, C as generateDeployWrapperIfNeeded, D as hasPrerenderSources, E as hasNonPageBackend, F as resolveStaticDeployPreset, I as toManifestSchedulesAndQueues, L as validateDeployMigrations, M as resolveDeployWranglerCompat, N as resolveFullDeployBuildCommand, O as log$1, P as resolveStaticBuildCommand, S as ensureManagedHyperdrive, T as getGitCommit, _ as hasDeploySchemaDrift, a as collectAndHashAssets, b as assertWorkerMainUploaded, c as formatDeploySummary, d as mergeAndLintRoutingRules, f as streamDirectR2Deploy, g as getDeploySchemaDriftMessage, h as assertDeploySchemaDriftFree, i as buildStaticManifest, j as resolveDeployWorkerMain, k as promptDeployProjectConfig, l as printDeployContext, m as warnUnpublishedRouting, n as runStaticDeploy, o as collectWorkerFiles, p as warnIgnoredNotFoundForFramework, r as buildFrameworkManifest, s as detectNonSpaFallbackWarning, t as assembleVoidManifest, u as printDeploySuccess, v as assertEnvSchemaValid, w as getExitCode, x as createProjectFromSlug, y as assertProjectDeployAccess } from "./deploy-managed-static-Ca4TFdmx.mjs";
36
- import { a as deleteEnvVarCaseAware, c as isRealKvId, l as provisionCloudflareResources, n as assertValidResourceName, o as isQueueConfirmedAbsent, r as checkCloudflareProvisionDrift, s as isRealD1Id } from "./provision-BnSSkiED.mjs";
37
- import { c as scrubWranglerAuthCredentials, n as buildSchemaProbeEnv, o as resolveDeployTransport, r as deployChildEnv, s as scrubManagedDeployBuildMarkers, t as MANAGED_DEPLOY_BUILD_ENV } from "./deploy-transport-DWlWBe6M.mjs";
32
+ import { a as FRAMEWORK_PRESETS, c as hasBackendFiles, i as isCleanCloudflareExit, l as resolveCloudflareOperationArgv, o as detectPreset, s as formatProjectCommand, t as createCloudflareProcessRunner, u as resolveProjectCommand } from "./cloudflare-process-CZJ4viYl.mjs";
33
+ import { f as listSelfHostSecretNames, h as selfHostSchemaFailureMessage, i as SelfHostSecretListError, l as dischargeSelfHostEnvContext, n as SelfHostFirstDeployError, p as readEmittedWorkerVars, r as SelfHostSchemaError, s as deriveSelfHostEnvContextFromVars, t as SelfHostEnvValidationError } from "./env-validation-D_KyMdab.mjs";
34
+ import { a as needsWrapper, r as cleanupWrapper, t as bundleEntry } from "./wrapper-BOigE1xJ.mjs";
35
+ import { A as resolveDeployLiveBindingConfig, C as generateDeployWrapperIfNeeded, D as hasPrerenderSources, E as hasNonPageBackend, F as resolveStaticDeployPreset, I as toManifestSchedulesAndQueues, L as validateDeployMigrations, M as resolveDeployWranglerCompat, N as resolveFullDeployBuildCommand, O as log$1, P as resolveStaticBuildCommand, S as ensureManagedHyperdrive, T as getGitCommit, _ as hasDeploySchemaDrift, a as collectAndHashAssets, b as assertWorkerMainUploaded, c as formatDeploySummary, d as mergeAndLintRoutingRules, f as streamDirectR2Deploy, g as getDeploySchemaDriftMessage, h as assertDeploySchemaDriftFree, i as buildStaticManifest, j as resolveDeployWorkerMain, k as promptDeployProjectConfig, l as printDeployContext, m as warnUnpublishedRouting, n as runStaticDeploy, o as collectWorkerFiles, p as warnIgnoredNotFoundForFramework, r as buildFrameworkManifest, s as detectNonSpaFallbackWarning, t as assembleVoidManifest, u as printDeploySuccess, v as assertEnvSchemaValid, w as getExitCode, x as createProjectFromSlug, y as assertProjectDeployAccess } from "./deploy-managed-static-Dqz06S2u.mjs";
36
+ import { a as checkCloudflareProvisionDrift, d as isQueueConfirmedAbsent, f as isRealD1Id, g as provisionCloudflareResources, i as assertValidResourceName, m as isRealKvId, s as deleteEnvVarCaseAware } from "./provision-BuifYvLc.mjs";
37
+ import { c as scrubWranglerAuthCredentials, n as buildSchemaProbeEnv, o as resolveDeployTransport, r as deployChildEnv, s as scrubManagedDeployBuildMarkers, t as MANAGED_DEPLOY_BUILD_ENV } from "./deploy-transport-nY3vLXPL.mjs";
38
38
  import { i as safePositional, n as getVoidUserAgent, r as readCfUploadOutput, t as getCfCliVersion } from "./cf-user-agent-ChjQp2MU.mjs";
39
- import { t as promptForLoginToken } from "./login-C2T1oVG-.mjs";
39
+ import { t as promptForLoginToken } from "./login-BJvGW5Eu.mjs";
40
40
  import { a as record, i as migrateBuiltWranglerConfig, n as prepareCfFrameworkBuildOutput, r as prepareCfStaticBuildOutput, t as prepareCfBuildOutput } from "./cf-build-output-Bc8i3dzE.mjs";
41
- import { a as parseCloudflareAuthSession, i as ensureCloudflareAuthentication, n as cloudflareCredentialOverrides, t as CloudflareAuthenticationError } from "./cloudflare-auth-CqFBDo52.mjs";
42
- import { a as createCloudflareEmptyDomainPublisher, i as createCloudflareEmptyCronPublisher } from "./cloudflare-operations-B42EZeJy.mjs";
41
+ import { a as parseCloudflareAuthSession, i as ensureCloudflareAuthentication, n as cloudflareCredentialOverrides, t as CloudflareAuthenticationError } from "./cloudflare-auth-DSvBc1Gu.mjs";
42
+ import { a as createCloudflareEmptyDomainPublisher, i as createCloudflareEmptyCronPublisher } from "./cloudflare-operations-DH3GedbV.mjs";
43
43
  import { n as openMigrationValidationDatabase, t as SqliteMigrationError } from "./sqlite-validation-BzKMWnO4.mjs";
44
- import { a as discoverFrameworkWranglerFiles, i as writeVoidProjectConfig, t as migrateLegacyVoidConfig } from "./migrate-BDIprOYd.mjs";
45
- import { a as runMySqlMigrations } from "./runner-mysql-BhRaONkO.mjs";
46
- import { i as runPgMigrations } from "./runner-pg-BRemq_GX.mjs";
44
+ import { a as discoverFrameworkWranglerFiles, i as writeVoidProjectConfig, t as migrateLegacyVoidConfig } from "./migrate-8rk56vV8.mjs";
45
+ import { a as runMySqlMigrations } from "./runner-mysql-BWmbk5IE.mjs";
46
+ import { i as runPgMigrations } from "./runner-pg-Cr3qrqi4.mjs";
47
47
  import { t as collectGitDeployMetadata } from "./git-metadata-D-gurjzG.mjs";
48
48
  import { createRequire } from "node:module";
49
49
  import { cpSync, createWriteStream, existsSync, mkdirSync, mkdtempSync, readFileSync, readdirSync, readlinkSync, realpathSync, rmSync, statSync, unlinkSync, writeFileSync } from "node:fs";
@@ -3880,7 +3880,7 @@ function formatCloudflareDriftMessage(missing, reasons, header, footer) {
3880
3880
  */
3881
3881
  function assertRemoteMigrationsDeployable(root, dialect, migrationsDir, migrations) {
3882
3882
  if (hasDeploySchemaDrift(root, dialect)) throw new Error(getDeploySchemaDriftMessage(root));
3883
- assertJournalCoherence(migrationsDir, migrations);
3883
+ assertJournalCoherence(migrationsDir, migrations, readProjectPaths(root).sourceRelative);
3884
3884
  if (migrations.length > 0) validateMigrations(migrations);
3885
3885
  }
3886
3886
  /**
@@ -3966,13 +3966,14 @@ function listWranglerMigrationFiles(directory, pattern) {
3966
3966
  * Assert the files `d1 migrations apply` would apply from the binding's `migrations_dir` and
3967
3967
  * `migrations_pattern` match the validated migrations by name and content, and in the same
3968
3968
  * order. Otherwise a stray file such as `seed.sql`, or an unpadded `2_` vs `10_` prefix, would
3969
- * reach remote D1 unvalidated or out of order.
3969
+ * reach remote D1 unvalidated or out of order. `displayDir` is the project's migrations folder
3970
+ * as the messages name it.
3970
3971
  */
3971
- async function checkWranglerMigrationApplySet(configPath, config, binding, migrationsDirRaw, gated) {
3972
+ async function checkWranglerMigrationApplySet(configPath, config, binding, migrationsDirRaw, gated, displayDir = "db/migrations") {
3972
3973
  const absDir = resolve(dirname(configPath), migrationsDirRaw);
3973
3974
  if (!existsSync(absDir)) return {
3974
3975
  ok: false,
3975
- reason: `deploy: configured migrations_dir ${JSON.stringify(migrationsDirRaw)} resolves to ${absDir}, which does not exist — wrangler would have nothing to apply (or error). Align "migrations_dir" with your db/migrations, then rerun.`
3976
+ reason: `deploy: configured migrations_dir ${JSON.stringify(migrationsDirRaw)} resolves to ${absDir}, which does not exist — wrangler would have nothing to apply (or error). Align "migrations_dir" with your ${displayDir}, then rerun.`
3976
3977
  };
3977
3978
  const resolvedPattern = resolveWranglerMigrationPattern(config, binding, migrationsDirRaw);
3978
3979
  if (!resolvedPattern.ok) return resolvedPattern;
@@ -3989,7 +3990,7 @@ async function checkWranglerMigrationApplySet(configPath, config, binding, migra
3989
3990
  if (extra.length > 0) lines.push(` • wrangler would ALSO apply (not validated by Void): ${extra.join(", ")}`);
3990
3991
  if (missing.length > 0) lines.push(` • validated by Void but NOT in wrangler's set: ${missing.join(", ")}`);
3991
3992
  if (changed.length > 0) lines.push(` • content differs between Void's copy and wrangler's: ${changed.join(", ")}`);
3992
- lines.push("Only Void-managed db/migrations/*.sql may be applied. Remove stray .sql (e.g. seed.sql) from migrations_dir, then rerun.");
3993
+ lines.push(`Only Void-managed ${displayDir}/*.sql may be applied. Remove stray .sql (e.g. seed.sql) from migrations_dir, then rerun.`);
3993
3994
  return {
3994
3995
  ok: false,
3995
3996
  reason: lines.join("\n")
@@ -4003,8 +4004,9 @@ async function checkWranglerMigrationApplySet(configPath, config, binding, migra
4003
4004
  ` • Void's validated order: ${gatedNames.join(", ")}`,
4004
4005
  "This happens when a migration's numeric prefix is not zero-padded (e.g. `2_` vs `10_`),",
4005
4006
  "so it sorts differently for wrangler (numeric) than for Void (lexicographic) — remote D1",
4006
- "would receive them out of the validated order. Zero-pad the prefixes (0001_, 0002_, …),",
4007
- "e.g. with `void db rename-migrations`, then rerun."
4007
+ "would receive them out of the validated order. Rename only migrations that are not applied",
4008
+ "yet (a renamed applied migration runs again), or give the new file a name that sorts last",
4009
+ "in both orders, then rerun."
4008
4010
  ].join("\n")
4009
4011
  };
4010
4012
  return { ok: true };
@@ -4192,7 +4194,7 @@ async function buildCloudflareWorker(input) {
4192
4194
  ].join("\n"));
4193
4195
  return exit(1);
4194
4196
  }
4195
- const applyCheck = await (deps.checkMigrationApplySet ?? checkWranglerMigrationApplySet)(configPath, migrateConfig, desired.d1.binding, d1MigrationsDir, migrations);
4197
+ const applyCheck = await (deps.checkMigrationApplySet ?? checkWranglerMigrationApplySet)(configPath, migrateConfig, desired.d1.binding, d1MigrationsDir, migrations, relative(root, migrationsDir));
4196
4198
  if (!applyCheck.ok) {
4197
4199
  log$1.error(applyCheck.reason);
4198
4200
  return exit(1);
@@ -5102,7 +5104,7 @@ async function runFrameworkDeploy(root, config, client, detected, fwPreset, void
5102
5104
  process.exit(1);
5103
5105
  }
5104
5106
  assertDeploySchemaDriftFree(root, dialect);
5105
- const validatedMigrations = validateDeployMigrations(paths.migrationsDir, analysis.migrations);
5107
+ const validatedMigrations = validateDeployMigrations(paths.migrationsDir, analysis.migrations, paths.sourceRelative);
5106
5108
  if (dialect !== "sqlite" && analysis.needsDatabase) await ensureManagedHyperdrive(client, config.projectId, dialect);
5107
5109
  const rawJobs = analysis.jobs;
5108
5110
  const rawQueues = analysis.queues;
@@ -5292,7 +5294,7 @@ async function runFullDeploy(root, config, client, voidConfig, fwPreset, skipBui
5292
5294
  const clientDir = join(distDir, "client");
5293
5295
  const { headerRules, redirectRules, fallbackRules } = mergeAndLintRoutingRules(clientDir, voidConfig.routing);
5294
5296
  assertDeploySchemaDriftFree(root, dialect);
5295
- const validatedMigrations = validateDeployMigrations(paths.migrationsDir, analysis.migrations);
5297
+ const validatedMigrations = validateDeployMigrations(paths.migrationsDir, analysis.migrations, paths.sourceRelative);
5296
5298
  if (dialect !== "sqlite" && analysis.needsDatabase) await ensureManagedHyperdrive(client, config.projectId, dialect);
5297
5299
  const rawJobs = analysis.jobs;
5298
5300
  const rawQueues = analysis.queues;
@@ -1,29 +1,29 @@
1
1
  import { a as join, c as resolve, n as dirname, r as extname, s as relative } from "./dist-ipQi0Q8y.mjs";
2
- import { h as needsApplicationDatabase } from "./plugin-inference-DsARdQKE.mjs";
3
- import { n as readProjectPaths } from "./project-paths-DMvEeSau.mjs";
4
- import { c as isNodeTarget } from "./config-Bx_1SpnO.mjs";
5
- import { t as collectMigrations } from "./collect-xjffdCdk.mjs";
2
+ import { h as needsApplicationDatabase } from "./plugin-inference-Bekzjuqw.mjs";
3
+ import { n as readProjectPaths } from "./project-paths-DGu_QZ_Q.mjs";
4
+ import { c as isNodeTarget } from "./config-D26zcdKy.mjs";
5
+ import { t as collectMigrations } from "./collect-Dew86qce.mjs";
6
6
  import { i as collectFiles, t as collectPages } from "./isr-config-fZaJJ8t7.mjs";
7
- import { n as mergeRoutingRules, t as lintRoutingPhases } from "./headers-Di1FsD3e.mjs";
7
+ import { n as mergeRoutingRules, t as lintRoutingPhases } from "./headers-Bi4bOAwp.mjs";
8
8
  import { s as shouldLinkDeployProject, t as attachSelectedPlatform, u as writeProjectConfig } from "./project-rqDnVsJN.mjs";
9
- import { D as syncWranglerBindings, E as resolveLiveBindingConfig, a as LIVE_MIGRATION_TAG, g as normalizeWranglerCompatibilityFlags, u as ensureWranglerCompat, v as readExistingLiveBindingConfig } from "./wrangler-BYs07Rxy.mjs";
9
+ import { D as syncWranglerBindings, E as resolveLiveBindingConfig, a as LIVE_MIGRATION_TAG, g as normalizeWranglerCompatibilityFlags, u as ensureWranglerCompat, v as readExistingLiveBindingConfig } from "./wrangler-C9XSzrju.mjs";
10
10
  import { n as buildMigrationPlanBundle } from "./plan-BhLO2p4w.mjs";
11
11
  import { l as getTokenSource } from "./auth-B6iOCjKI.mjs";
12
12
  import { L as log$1, N as intro, X as text, tt as isCancel } from "./dist-BVdsO7Py.mjs";
13
13
  import { f as import_picocolors, h as sanitizeTerminalText, m as printSuccess, o as formatCount, p as note, r as createSpinner, u as getErrorMessage } from "./output-Ba6ZbrzY.mjs";
14
- import { t as discoverSchema } from "./discover-D2PGT63u.mjs";
15
- import { t as findEnvFile } from "./env-types-DS2_y4X8.mjs";
16
- import { a as buildEnv } from "./version-metadata-DIrqEHQo.mjs";
17
- import { r as writeDrizzleConfig, t as PLACEHOLDER_DB_URL } from "./config-BEm9vRvS.mjs";
18
- import { i as validateMigrations, r as listDrizzleArtifacts, t as assertJournalCoherence } from "./validate-CheZGRE7.mjs";
14
+ import { t as discoverSchema } from "./discover-LaV0tbIu.mjs";
15
+ import { t as findEnvFile } from "./env-types-GRchm5dw.mjs";
16
+ import { a as buildEnv } from "./version-metadata-B1Bm2wSq.mjs";
17
+ import { r as writeDrizzleConfig, t as PLACEHOLDER_DB_URL } from "./config-DC5llZaI.mjs";
18
+ import { i as validateMigrations, r as listDrizzleArtifacts, t as assertJournalCoherence } from "./validate-CnZPMq4q.mjs";
19
19
  import { t as formatCloudflareUserMessage } from "./cloudflare-user-output-Q-k0QoNQ.mjs";
20
- import { c as platformErrorMessage, i as isCliOutdatedError, n as PlatformApiError, o as isHeadersTimeoutError, s as parsePlatformErrorBody } from "./client-DM9Kcf4e.mjs";
21
- import { a as promptProjectSelection, i as reportProjectCreationWarnings, o as promptProjectSetupAction, r as promptAndCreateProject } from "./create-project-yInGo72M.mjs";
22
- import { o as detectPreset, s as formatProjectCommand, u as resolveProjectCommand } from "./cloudflare-process-CeDWJRhj.mjs";
23
- import { d as formatEnvReport, g as validateProdEnv, u as fetchRemoteSecretNames } from "./env-validation-DYxjz_Wo.mjs";
24
- import { a as needsWrapper, i as generateWrapper } from "./wrapper-CwhpNWtH.mjs";
20
+ import { c as platformErrorMessage, i as isCliOutdatedError, n as PlatformApiError, o as isHeadersTimeoutError, s as parsePlatformErrorBody } from "./client-GuSO3v_x.mjs";
21
+ import { a as promptProjectSelection, i as reportProjectCreationWarnings, o as promptProjectSetupAction, r as promptAndCreateProject } from "./create-project-DEEWJX_M.mjs";
22
+ import { o as detectPreset, s as formatProjectCommand, u as resolveProjectCommand } from "./cloudflare-process-CZJ4viYl.mjs";
23
+ import { d as formatEnvReport, g as validateProdEnv, u as fetchRemoteSecretNames } from "./env-validation-D_KyMdab.mjs";
24
+ import { a as needsWrapper, i as generateWrapper } from "./wrapper-BOigE1xJ.mjs";
25
25
  import { n as drizzleKitBin } from "./yarn-pnp-DLbEFMT0.mjs";
26
- import { t as MANAGED_DEPLOY_BUILD_ENV } from "./deploy-transport-DWlWBe6M.mjs";
26
+ import { t as MANAGED_DEPLOY_BUILD_ENV } from "./deploy-transport-nY3vLXPL.mjs";
27
27
  import { cpSync, existsSync, mkdirSync, mkdtempSync, readFileSync, readdirSync, rmSync } from "node:fs";
28
28
  import { createDeployArtifact, createDeployUploadPayload } from "@void/deploy-core";
29
29
  import { createHash } from "node:crypto";
@@ -284,9 +284,9 @@ function getGitCommit(root) {
284
284
  * Check journal coherence and validate the checked-in migrations of a managed
285
285
  * deploy. Logs and exits on failure; returns `undefined` when there are none.
286
286
  */
287
- function validateDeployMigrations(migrationsDir, rawMigrations) {
287
+ function validateDeployMigrations(migrationsDir, rawMigrations, sourceRelative) {
288
288
  try {
289
- assertJournalCoherence(migrationsDir, rawMigrations);
289
+ assertJournalCoherence(migrationsDir, rawMigrations, sourceRelative);
290
290
  } catch (err) {
291
291
  log.error(getErrorMessage(err));
292
292
  process.exit(1);
@@ -430,7 +430,7 @@ function runDrizzleKitGenerate(root, configPath) {
430
430
  function getDeploySchemaDriftMessage(root) {
431
431
  const migrationsDir = readProjectPaths(root).migrationsDir;
432
432
  if (collectMigrations(migrationsDir).length > 0 && !existsSync(join(migrationsDir, "meta", "_journal.json")) && listDrizzleArtifacts(migrationsDir).length === 0) return [`Missing Drizzle metadata in ${`${relative(root, migrationsDir)}/`}.`, "See https://void.cloud/guide/database#hand-written-migrations"].join("\n");
433
- return ["Schema drift detected between your Drizzle schema and db/migrations/.", "Run `void db generate`, review the generated migration, commit it yourself, then rerun `void deploy`."].join("\n");
433
+ return [`Schema drift detected between your Drizzle schema and ${relative(root, migrationsDir)}/.`, "Run `void db generate`, review the generated migration, commit it yourself, then rerun `void deploy`."].join("\n");
434
434
  }
435
435
  function formatDeploySchemaDriftCheckError(error) {
436
436
  const detail = getErrorMessage(error);
@@ -1,8 +1,8 @@
1
1
  import { a as join } from "./dist-ipQi0Q8y.mjs";
2
2
  import { n as scanWranglerDotenvKeys } from "./dotenv-CNazY3-w.mjs";
3
3
  import { t as CLOUDFLARE_DEPLOY_BUILD_ENV } from "./env-BJjULvL0.mjs";
4
- import { i as WRANGLER_AUTH_CREDENTIAL_ENV_VARS, t as CLOUDFLARE_PRESERVE_BINDINGS_BUILD_ENV } from "./version-metadata-DIrqEHQo.mjs";
5
- import { a as deleteEnvVarCaseAware, d as resolvePinnedApiBaseUrl, t as assertNoTransportRedirectInProjectDotenv, u as provisionEnv } from "./provision-BnSSkiED.mjs";
4
+ import { i as WRANGLER_AUTH_CREDENTIAL_ENV_VARS, t as CLOUDFLARE_PRESERVE_BINDINGS_BUILD_ENV } from "./version-metadata-B1Bm2wSq.mjs";
5
+ import { _ as provisionEnv, r as assertNoTransportRedirectInProjectDotenv, s as deleteEnvVarCaseAware, v as resolvePinnedApiBaseUrl } from "./provision-BuifYvLc.mjs";
6
6
  import { readWranglerTopLevelString } from "@void/deploy-cloudflare";
7
7
  //#region src/cli/deploy-transport.ts
8
8
  /**
package/dist/deploy.mjs CHANGED
@@ -1,10 +1,10 @@
1
1
  import { a as join, c as resolve } from "./dist-ipQi0Q8y.mjs";
2
- import { c as isNodeTarget, d as readConfig } from "./config-Bx_1SpnO.mjs";
3
- import { o as validateSsrEntry } from "./entry-ehmBvs5w.mjs";
2
+ import { c as isNodeTarget, d as readConfig } from "./config-D26zcdKy.mjs";
3
+ import { o as validateSsrEntry } from "./entry-B_0IhV64.mjs";
4
4
  import { r as hasEmailHandlers } from "./email-BcjSyAL0.mjs";
5
5
  import { a as resolveDistDir, c as hasDocumentRoutes, l as resolveAssetConfig, n as collectRevalidate, o as resolveWorkerDirName, s as hasApiRoutes } from "./isr-config-fZaJJ8t7.mjs";
6
- import { t as analyzeApplication } from "./application-routing-L7V-TFhZ.mjs";
7
- import { I as toManifestSchedulesAndQueues, L as validateDeployMigrations, M as resolveDeployWranglerCompat, a as collectAndHashAssets, b as assertWorkerMainUploaded, d as mergeAndLintRoutingRules, h as assertDeploySchemaDriftFree, j as resolveDeployWorkerMain, o as collectWorkerFiles, t as assembleVoidManifest } from "./deploy-managed-static-Ca4TFdmx.mjs";
6
+ import { t as analyzeApplication } from "./application-routing-CZH66gXn.mjs";
7
+ import { I as toManifestSchedulesAndQueues, L as validateDeployMigrations, M as resolveDeployWranglerCompat, a as collectAndHashAssets, b as assertWorkerMainUploaded, d as mergeAndLintRoutingRules, h as assertDeploySchemaDriftFree, j as resolveDeployWorkerMain, o as collectWorkerFiles, t as assembleVoidManifest } from "./deploy-managed-static-Dqz06S2u.mjs";
8
8
  import { existsSync } from "node:fs";
9
9
  import { createDeployArtifact } from "@void/deploy-core";
10
10
  //#region src/deploy.ts
@@ -24,7 +24,7 @@ async function prepareDeployArtifact(root = process.cwd()) {
24
24
  const clientDir = join(dist, "client");
25
25
  const { paths, dialect, bindings, authEnabled, scan, websockets } = analysis;
26
26
  assertDeploySchemaDriftFree(root, dialect);
27
- const migrations = validateDeployMigrations(paths.migrationsDir, analysis.migrations);
27
+ const migrations = validateDeployMigrations(paths.migrationsDir, analysis.migrations, paths.sourceRelative);
28
28
  const { schedules, queues } = toManifestSchedulesAndQueues(analysis.jobs, analysis.queues);
29
29
  const pages = existsSync(paths.pagesDir);
30
30
  const ssr = Boolean(validateSsrEntry(root, paths)) || pages;
@@ -0,0 +1 @@
1
+ export { t as discoverSchema } from "./discover-LaV0tbIu.mjs";
@@ -1,5 +1,5 @@
1
1
  import { s as relative } from "./dist-ipQi0Q8y.mjs";
2
- import { n as readProjectPaths } from "./project-paths-DMvEeSau.mjs";
2
+ import { n as readProjectPaths } from "./project-paths-DGu_QZ_Q.mjs";
3
3
  import { existsSync, statSync } from "node:fs";
4
4
  //#region src/drizzle/discover.ts
5
5
  /**
@@ -1,10 +1,10 @@
1
1
  import { a as join, i as isAbsolute, n as dirname, s as relative } from "./dist-ipQi0Q8y.mjs";
2
- import { i as resolveProjectPaths, n as readProjectPaths } from "./project-paths-DMvEeSau.mjs";
3
- import { d as readConfig, f as resolveBindingNames, s as getDatabaseDialect } from "./config-Bx_1SpnO.mjs";
2
+ import { i as resolveProjectPaths, n as readProjectPaths } from "./project-paths-DGu_QZ_Q.mjs";
3
+ import { d as readConfig, f as resolveBindingNames, s as getDatabaseDialect } from "./config-D26zcdKy.mjs";
4
4
  import { i as voidWarn } from "./log-vqY3pqwI.mjs";
5
- import { n as ensureProjectTsconfig } from "./project-tsconfig-bveqhlYA.mjs";
6
- import { n as generateDbDts, t as DRIZZLE_OPERATORS } from "./db-types-Bb4WBWIs.mjs";
7
- import { t as discoverSchema } from "./discover-D2PGT63u.mjs";
5
+ import { n as ensureProjectTsconfig } from "./project-tsconfig-Itv1f4WC.mjs";
6
+ import { n as generateDbDts, t as DRIZZLE_OPERATORS } from "./db-types-NGxPwnlt.mjs";
7
+ import { t as discoverSchema } from "./discover-LaV0tbIu.mjs";
8
8
  import { createRequire } from "node:module";
9
9
  import { existsSync, readFileSync, readdirSync } from "node:fs";
10
10
  import { fileURLToPath } from "node:url";
@@ -282,7 +282,7 @@ function drizzlePlugin(root, hasRouteTypes, dialect = "sqlite", options = {}) {
282
282
  const migrationsDir = paths.migrationsDir;
283
283
  if (!(existsSync(migrationsDir) && readdirSync(migrationsDir).some((f) => f.endsWith(".sql")))) {
284
284
  if (dialect === "sqlite") {
285
- const { getApplicationTables, getMiniflareDatabasePath } = await import("./runner-So9mYfcm.mjs");
285
+ const { getApplicationTables, getMiniflareDatabasePath } = await import("./runner-WCdfeI0q.mjs");
286
286
  if ((await getApplicationTables(getMiniflareDatabasePath(options.localD1PersistRoot ?? join(root, ".void"), options.localD1DatabaseId ?? "local")).catch(() => [])).length > 0) return;
287
287
  }
288
288
  voidWarn(`Schema found but no migrations in ${paths.sourceRelative("db/migrations")}/.\n \`void db push\` syncs the schema to your local DB without creating migration files.
@@ -2,7 +2,7 @@ import { n as readDeploymentPlatform } from "./project-rqDnVsJN.mjs";
2
2
  import { c as getToken } from "./auth-B6iOCjKI.mjs";
3
3
  import { L as log } from "./dist-BVdsO7Py.mjs";
4
4
  import { f as import_picocolors, m as printSuccess, p as note } from "./output-Ba6ZbrzY.mjs";
5
- import { r as PlatformClient } from "./client-DM9Kcf4e.mjs";
5
+ import { r as PlatformClient } from "./client-GuSO3v_x.mjs";
6
6
  import { i as resolveCommandProjectId } from "./resolve-project-WpwkCB_c.mjs";
7
7
  //#region src/cli/domain.ts
8
8
  async function runDomainCommand(root, args) {
@@ -25,7 +25,7 @@ async function runDomainCommand(root, args) {
25
25
  }
26
26
  async function runCloudflareDomainCommand(root, args) {
27
27
  if (args.projectSlug) throw new Error("domain: --project selects a Void platform project and is not used for direct Cloudflare apps.");
28
- const { changeCloudflareDomain, listCloudflareDomains } = await import("./cloudflare-operations-CrSUFRzJ.mjs");
28
+ const { changeCloudflareDomain, listCloudflareDomains } = await import("./cloudflare-operations-Cm8lVx7W.mjs");
29
29
  if (args.subcommand === "add") {
30
30
  const result = await changeCloudflareDomain(root, args.hostname, "add");
31
31
  note("Cloudflare Custom Domains manages the DNS record and TLS certificate in the zone on your account.", "Cloudflare Domain");
@@ -1,4 +1,4 @@
1
- import { a as isVoidSocialAuthProvider } from "./providers-BXuhmuub.mjs";
1
+ import { o as isVoidSocialAuthProvider } from "./providers-BUHwJlmM.mjs";
2
2
  import { getAuthTables, getSchema } from "better-auth/db";
3
3
  //#region src/auth/drizzle.ts
4
4
  const DEFAULT_TABLE_ORDER = Number.MAX_SAFE_INTEGER;
@@ -75,6 +75,15 @@ const UNBOUNDED_MYSQL_AUTH_FIELDS = /* @__PURE__ */ new Set([
75
75
  function usesUnboundedMySqlText(defaultModelName, defaultFieldName, field) {
76
76
  return field.type === "string" && !field.unique && !field.index && !field.references && !field.sortable && UNBOUNDED_MYSQL_AUTH_FIELDS.has(`${defaultModelName}.${defaultFieldName}`);
77
77
  }
78
+ /**
79
+ * The default of a required field when the database can store it as a literal.
80
+ * Function, date and JSON defaults have none.
81
+ */
82
+ function resolveFixedDefault(field) {
83
+ if (field.required === false || field.type === "date" || isJsonField(field)) return {};
84
+ const value = field.defaultValue;
85
+ return typeof value === "string" || typeof value === "boolean" || typeof value === "number" && Number.isFinite(value) ? { defaultValue: value } : {};
86
+ }
78
87
  function resolveReferenceFieldName(schema, model, field) {
79
88
  if (field === "id") return "id";
80
89
  const referencedField = schema[model]?.fields[field];
@@ -127,6 +136,8 @@ function createColumnDefinition(dialect, schema, idStrategy, defaultToVariable,
127
136
  if (actualFieldName === "id") {
128
137
  parts.push(".primaryKey()");
129
138
  if (dialect === "mysql" && idStrategy === "serial") parts.push(".autoincrement()");
139
+ if (dialect === "postgresql" && idStrategy === "serial") parts.push(".generatedByDefaultAsIdentity()");
140
+ if (dialect === "postgresql" && idStrategy === "uuid") parts.push(".defaultRandom()");
130
141
  }
131
142
  if (field.required !== false || actualFieldName === "id") parts.push(".notNull()");
132
143
  if (field.references) {
@@ -146,7 +157,6 @@ function collectCoreImports(dialect, schema, idStrategy) {
146
157
  if (idStrategy === "uuid" && dialect === "postgresql") imports.add("uuid");
147
158
  for (const [defaultModelName, table] of Object.entries(schema)) for (const [defaultFieldName, field] of Object.entries(table.fields)) {
148
159
  if (resolveFieldName(defaultFieldName, field) === "id" || field.references?.field === "id") {
149
- if (idStrategy === "serial") imports.add("integer");
150
160
  if (idStrategy === "uuid" && dialect === "postgresql") imports.add("uuid");
151
161
  continue;
152
162
  }
@@ -237,6 +247,7 @@ function resolveVoidAuthMigrationSchema(runtime, env = {}) {
237
247
  index: field.index === true,
238
248
  bigint: field.bigint === true,
239
249
  ...unboundedMySqlFields.has(`${name}\0${fieldName}`) ? { unbounded: true } : {},
250
+ ...resolveFixedDefault(field),
240
251
  ...field.references ? { references: {
241
252
  table: field.references.model,
242
253
  field: field.references.field,
@@ -1,16 +1,16 @@
1
1
  import { a as join } from "./dist-ipQi0Q8y.mjs";
2
- import { n as readProjectPaths } from "./project-paths-DMvEeSau.mjs";
3
- import { d as readConfig } from "./config-Bx_1SpnO.mjs";
2
+ import { n as readProjectPaths } from "./project-paths-DGu_QZ_Q.mjs";
3
+ import { d as readConfig } from "./config-D26zcdKy.mjs";
4
4
  import { i as scanEmailHandlersSync } from "./email-BcjSyAL0.mjs";
5
- import { j as writeProvisionedWranglerConfig } from "./wrangler-BYs07Rxy.mjs";
5
+ import { j as writeProvisionedWranglerConfig } from "./wrangler-C9XSzrju.mjs";
6
6
  import { c as getToken, u as openBrowser } from "./auth-B6iOCjKI.mjs";
7
7
  import { A as confirm, L as log, U as password, tt as isCancel } from "./dist-BVdsO7Py.mjs";
8
8
  import { f as import_picocolors, l as formatUrl, m as printSuccess, p as note, r as createSpinner } from "./output-Ba6ZbrzY.mjs";
9
- import { a as emailConfigInputs, c as renderAddressMap, i as createNodeEmailDns, l as renderEmailChecklist, o as preflightEmail, r as applyEmailSetup, s as probeMx } from "./email-cloudflare-DfG6UEMm.mjs";
10
- import { n as PlatformApiError, r as PlatformClient } from "./client-DM9Kcf4e.mjs";
9
+ import { a as emailConfigInputs, c as renderAddressMap, i as createNodeEmailDns, l as renderEmailChecklist, o as preflightEmail, r as applyEmailSetup, s as probeMx } from "./email-cloudflare-etpKiITL.mjs";
10
+ import { n as PlatformApiError, r as PlatformClient } from "./client-GuSO3v_x.mjs";
11
11
  import { i as resolveCommandProjectId } from "./resolve-project-WpwkCB_c.mjs";
12
- import { o as resolveDeployTransport } from "./deploy-transport-DWlWBe6M.mjs";
13
- import { a as discoverRootWranglerConfig, c as runWranglerAuthToken, l as deriveWorkerName, o as createDeployWranglerRunner, s as isWranglerNonInteractiveOrCI } from "./deploy-BYYlnsiy.mjs";
12
+ import { o as resolveDeployTransport } from "./deploy-transport-nY3vLXPL.mjs";
13
+ import { a as discoverRootWranglerConfig, c as runWranglerAuthToken, l as deriveWorkerName, o as createDeployWranglerRunner, s as isWranglerNonInteractiveOrCI } from "./deploy-DsW-PrRQ.mjs";
14
14
  import { existsSync, mkdtempSync, rmSync, writeFileSync } from "node:fs";
15
15
  import { tmpdir } from "node:os";
16
16
  import { execSync } from "node:child_process";
@@ -24,7 +24,7 @@ async function runEmailCommand(root, args) {
24
24
  process.exit(1);
25
25
  }
26
26
  if (args.subcommand === "status") {
27
- log.error("email: `void email status` is available with `--platform cloudflare` today. On the Void platform use `void email usage` and `void email destinations`.");
27
+ log.error("email: `void email status` checks email on your own Cloudflare account. Run it with `--platform cloudflare`. On the Void platform, use `void email usage` and `void email destinations`.");
28
28
  process.exit(1);
29
29
  }
30
30
  const token = getToken(root);
@@ -292,7 +292,7 @@ async function reconcileEmailOperation(error, client, projectId, attemptId, titl
292
292
  return operation;
293
293
  }
294
294
  }
295
- async function emailDomainAdd(client, projectId, rawDomain, deps = {}, subdomain) {
295
+ async function emailDomainAdd(client, projectId, rawDomain, deps = {}) {
296
296
  const exit = deps.exit ?? ((code) => process.exit(code));
297
297
  const fail = (message) => {
298
298
  log.error(message);
@@ -300,7 +300,6 @@ async function emailDomainAdd(client, projectId, rawDomain, deps = {}, subdomain
300
300
  };
301
301
  const domain = normalizeEmailDomainInput(rawDomain);
302
302
  if (!isValidEmailDomainInput(domain)) return fail(`email: invalid domain '${rawDomain}'.`);
303
- if (subdomain !== void 0) return fail("email: Platform-managed custom email requires a Cloudflare zone apex because inbound email uses its catch-all. Omit --subdomain, choose an unused zone apex, or use the platform shared mail address.");
304
303
  const dns = deps.dns ?? await createNodeEmailDns();
305
304
  const checkApexMx = async () => {
306
305
  const mx = await probeMx(dns, domain);
@@ -519,7 +518,7 @@ async function emailDomainRemove(client, projectId, rawDomain, options = {}) {
519
518
  }
520
519
  async function runEmailDomainCommand(client, projectId, args) {
521
520
  switch (args.domainVerb) {
522
- case "add": return emailDomainAdd(client, projectId, args.domain, {}, args.subdomain);
521
+ case "add": return emailDomainAdd(client, projectId, args.domain);
523
522
  case "status": return emailDomainStatus(client, projectId, args.domain);
524
523
  case "list": return emailDomainList(client, projectId);
525
524
  case "sync": return emailDomainSync(client, projectId, args.domain);
@@ -1,17 +1,17 @@
1
1
  import { n as __toESM } from "./rolldown-runtime-DXIUcv95.mjs";
2
2
  import { a as join, n as dirname, s as relative } from "./dist-ipQi0Q8y.mjs";
3
3
  import { t as require_picocolors } from "./picocolors-BTps1_gs.mjs";
4
- import { d as readConfig } from "./config-Bx_1SpnO.mjs";
5
- import { i as collectFiles } from "./isr-config-fZaJJ8t7.mjs";
4
+ import { d as readConfig } from "./config-D26zcdKy.mjs";
6
5
  import { i as voidWarn, r as voidLog } from "./log-vqY3pqwI.mjs";
6
+ import { i as collectFiles } from "./isr-config-fZaJJ8t7.mjs";
7
7
  import { i as readProjectIdField } from "./project-rqDnVsJN.mjs";
8
- import { p as findBindingNameOwner, u as ensureWranglerCompat } from "./wrangler-BYs07Rxy.mjs";
8
+ import { p as findBindingNameOwner, u as ensureWranglerCompat } from "./wrangler-C9XSzrju.mjs";
9
9
  import { n as scopedAccessCredentials } from "./cf-access-BM9G0lhO.mjs";
10
10
  import { n as ensurePlatformProxyAccess } from "./cf-access-CWP4avfP.mjs";
11
11
  import { a as getApiUrl, c as getToken, o as getProxyUrl } from "./auth-B6iOCjKI.mjs";
12
12
  import { l as stripInternalEnvKeys } from "./env-BJjULvL0.mjs";
13
13
  import { n as readPrerenderPathsResponse, r as renderPrerenderPaths, t as outputFileForPath } from "./prerender-render-Bfsumdkv.mjs";
14
- import { a as buildEnv } from "./version-metadata-DIrqEHQo.mjs";
14
+ import { a as buildEnv } from "./version-metadata-B1Bm2wSq.mjs";
15
15
  import { existsSync, mkdirSync, readFileSync, unlinkSync, writeFileSync } from "node:fs";
16
16
  import { isRecord } from "@void/deploy-core";
17
17
  import { execFile } from "node:child_process";
@@ -557,10 +557,7 @@ async function preflightEmail(inputs) {
557
557
  mode: null,
558
558
  workerName: inputs.workerName,
559
559
  accountId: inputs.accountId,
560
- usage: {
561
- handlers: usageHandlers,
562
- sendEmailFiles: inputs.sendEmailFiles
563
- },
560
+ usage: { handlers: usageHandlers },
564
561
  session: {
565
562
  state: "unknown",
566
563
  missingScopes: []
@@ -843,8 +840,8 @@ function pad(text, width) {
843
840
  function renderEmailChecklist(pre) {
844
841
  const apex = pre.apex ?? "?";
845
842
  const lines = [];
846
- const inUse = [...pre.usage.handlers, ...pre.usage.sendEmailFiles ? [`sendEmail() in ${pre.usage.sendEmailFiles} file${pre.usage.sendEmailFiles === 1 ? "" : "s"}`] : []];
847
- lines.push(` Email in use ${inUse.join(" · ")}`);
843
+ const inUse = pre.usage.handlers.length > 0 ? pre.usage.handlers.join(" · ") : "sending only (no email/ handlers)";
844
+ lines.push(` Email in use ${inUse}`);
848
845
  const row = (label, value, note = "") => {
849
846
  lines.push(` ${pad(label, 10)}${note ? `${pad(value, 23)}${note}` : value}`);
850
847
  };
@@ -1,5 +1,5 @@
1
1
  import { a as join, s as relative } from "./dist-ipQi0Q8y.mjs";
2
- import { n as readProjectPaths } from "./project-paths-DMvEeSau.mjs";
2
+ import { n as readProjectPaths } from "./project-paths-DGu_QZ_Q.mjs";
3
3
  import { n as isIdentifier } from "./ast-CPGPjb0V.mjs";
4
4
  import { existsSync, readFileSync } from "node:fs";
5
5
  import { parseSync } from "vite";
@@ -3,9 +3,9 @@ import { n as readDeploymentPlatform, r as readProjectConfig } from "./project-r
3
3
  import { c as getToken } from "./auth-B6iOCjKI.mjs";
4
4
  import { H as outro, L as log } from "./dist-BVdsO7Py.mjs";
5
5
  import { m as printSuccess, p as note } from "./output-Ba6ZbrzY.mjs";
6
- import { r as generateEnvTypes, t as findEnvFile } from "./env-types-DS2_y4X8.mjs";
7
- import { r as PlatformClient } from "./client-DM9Kcf4e.mjs";
8
- import { d as formatEnvReport, g as validateProdEnv, u as fetchRemoteSecretNames } from "./env-validation-DYxjz_Wo.mjs";
6
+ import { r as generateEnvTypes, t as findEnvFile } from "./env-types-GRchm5dw.mjs";
7
+ import { r as PlatformClient } from "./client-GuSO3v_x.mjs";
8
+ import { d as formatEnvReport, g as validateProdEnv, u as fetchRemoteSecretNames } from "./env-validation-D_KyMdab.mjs";
9
9
  import { mkdirSync, writeFileSync } from "node:fs";
10
10
  //#region src/cli/env.ts
11
11
  async function runEnvCommand(root, args) {
@@ -25,7 +25,7 @@ async function runCheck(root, useRemoteSecrets) {
25
25
  const platform = readDeploymentPlatform(root);
26
26
  if (platform === "none") throw new Error("env: Deployment is disabled. Run `void init` to choose a platform.");
27
27
  if (platform === "cloudflare") {
28
- const { listCloudflareSecrets, resolveCloudflareOperationContext } = await import("./cloudflare-operations-CrSUFRzJ.mjs");
28
+ const { listCloudflareSecrets, resolveCloudflareOperationContext } = await import("./cloudflare-operations-Cm8lVx7W.mjs");
29
29
  remoteSecrets = await listCloudflareSecrets(resolveCloudflareOperationContext(root));
30
30
  } else {
31
31
  const token = getToken(root);
@@ -1,5 +1,5 @@
1
1
  import { s as relative } from "./dist-ipQi0Q8y.mjs";
2
- import { n as readProjectPaths } from "./project-paths-DMvEeSau.mjs";
2
+ import { n as readProjectPaths } from "./project-paths-DGu_QZ_Q.mjs";
3
3
  import { i as voidWarn } from "./log-vqY3pqwI.mjs";
4
4
  import { existsSync } from "node:fs";
5
5
  //#region src/codegen/env-types.ts
@@ -1 +1 @@
1
- export { r as SelfHostSchemaError, a as computeInvalidEmittedKeys, c as deriveSelfHostSchemaFacts, p as readEmittedWorkerVars } from "./env-validation-DYxjz_Wo.mjs";
1
+ export { r as SelfHostSchemaError, a as computeInvalidEmittedKeys, c as deriveSelfHostSchemaFacts, p as readEmittedWorkerVars } from "./env-validation-D_KyMdab.mjs";
@@ -3,9 +3,9 @@ import { i as voidWarn } from "./log-vqY3pqwI.mjs";
3
3
  import { n as readGeneratedWranglerConfigFile } from "./generated-wrangler-config-DeWj5F9Y.mjs";
4
4
  import { n as scanWranglerDotenvKeys } from "./dotenv-CNazY3-w.mjs";
5
5
  import { a as isClientEnvKey, i as findReservedEnvKeys, n as LOCAL_ENV_FILE, o as loadLocalEnv, r as findLegacyEnvFiles, s as reservedEnvKeysMessage } from "./env-BJjULvL0.mjs";
6
- import { t as findEnvFile } from "./env-types-DS2_y4X8.mjs";
6
+ import { t as findEnvFile } from "./env-types-GRchm5dw.mjs";
7
7
  import { t as loadUserEnvFile } from "./load-user-env-DD5qveNU.mjs";
8
- import { l as resolveCloudflareOperationArgv, n as decodeCloudflareOperationResult, r as encodeCloudflareOperation } from "./cloudflare-process-CeDWJRhj.mjs";
8
+ import { l as resolveCloudflareOperationArgv, n as decodeCloudflareOperationResult, r as encodeCloudflareOperation } from "./cloudflare-process-CZJ4viYl.mjs";
9
9
  import { existsSync, readFileSync } from "node:fs";
10
10
  import { spawn } from "node:child_process";
11
11
  import { parseRootWranglerConfig, readWranglerTopLevelString } from "@void/deploy-cloudflare";
@@ -60,8 +60,8 @@ type FetchOptions<P extends keyof RouteMap, M extends MethodsOf<P>> = BodyOption
60
60
  /**
61
61
  * Typed fetch client for Void API routes.
62
62
  *
63
- * Built on top of ofetch. Supports baseURL, retry, timeout, and all
64
- * ofetch features while providing full route type safety.
63
+ * Built on ofetch. Supports `method`, `params`, `query`, `body`, `headers`,
64
+ * `signal`, `baseURL`, `retry` and `timeout`, with full route type safety.
65
65
  *
66
66
  * ```ts
67
67
  * import { fetch } from "void/client";
@@ -1,4 +1,4 @@
1
- import { i as QueryOption, n as MethodsOf, r as ParamsOption, t as BodyOption } from "./fetch-BPCYVi3H.mjs";
1
+ import { i as QueryOption, n as MethodsOf, r as ParamsOption, t as BodyOption } from "./fetch-DHLOuPyk.mjs";
2
2
  import { RouteMap } from "void/routes";
3
3
  //#region src/runtime/fetch-stream.d.ts
4
4
  type InputOf<P extends keyof RouteMap, M extends MethodsOf<P>> = RouteMap[P][M] extends {