void 1.4.0 → 1.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (455) hide show
  1. package/README.md +1 -1
  2. package/dist/{account-cmd-HP8bixYo.mjs → account-cmd-DRhmCWcm.mjs} +7 -8
  3. package/dist/{action-key-XZ9HkWAO.mjs → action-key-XtKKbbsi.mjs} +1 -2
  4. package/dist/{agents-CuNtT0D_.mjs → agents-DRo8gzni.mjs} +2 -3
  5. package/dist/{application-analysis-DDOQwiXk.mjs → application-analysis-HRFsZOv3.mjs} +18 -24
  6. package/dist/{application-routing-4719u_kf.mjs → application-routing-P4TggvWp.mjs} +2 -3
  7. package/dist/{ast-CsZ_q_gc.mjs → ast-Cv0JwXqb.mjs} +1 -2
  8. package/dist/{ast-bindings-C3yaPs1y.mjs → ast-bindings-BkivMJIo.mjs} +6 -11
  9. package/dist/{atomic-write-Dq6R0BPN.mjs → atomic-write-DA6eD1Kp.mjs} +1 -2
  10. package/dist/{auth-g2TQbDLD.d.mts → auth-CH4PLAX1.d.mts} +0 -2
  11. package/dist/{auth-Cbqi1iVX.mjs → auth-CL-p_rqV.mjs} +1 -1
  12. package/dist/{auth-B6iOCjKI.mjs → auth-Dy8svcqQ.mjs} +6 -7
  13. package/dist/{auth-3sGB0zJ1.mjs → auth-YVjBX5NY.mjs} +1 -2
  14. package/dist/{auth-client-Bawdj38n.d.mts → auth-client-6-Ft9i9T.d.mts} +0 -2
  15. package/dist/{auth-client-BWBT8HLp.mjs → auth-client-DwCdwKbw.mjs} +1 -2
  16. package/dist/{auth-client-react-CMLwT2xI.mjs → auth-client-react-CJdeErvM.mjs} +1 -2
  17. package/dist/{auth-client-react-7GFffu8R.d.mts → auth-client-react-DvQLe5Zb.d.mts} +0 -2
  18. package/dist/{auth-client-solid-UoreJWZG.mjs → auth-client-solid-BRvgvp6h.mjs} +1 -2
  19. package/dist/{auth-client-solid-DyTFL4cq.d.mts → auth-client-solid-P9pEtKGp.d.mts} +0 -2
  20. package/dist/{auth-client-svelte-zetW0KIH.d.mts → auth-client-svelte-B5j8irT6.d.mts} +0 -2
  21. package/dist/{auth-client-svelte-Cv_WvrRk.mjs → auth-client-svelte-BSqUCEed.mjs} +1 -2
  22. package/dist/{auth-client-vue-bChShbQP.d.mts → auth-client-vue-BEiAfavk.d.mts} +0 -2
  23. package/dist/{auth-client-vue-CFk7Xbv3.mjs → auth-client-vue-CPkbRtOO.mjs} +1 -2
  24. package/dist/{auth-link-CedYpDCy.mjs → auth-link-CVXP1G6G.mjs} +7 -8
  25. package/dist/{auth-migrations-BO27GDNr.mjs → auth-migrations-DDeifS3v.mjs} +1 -2
  26. package/dist/{auth-router-vafo7x8w.mjs → auth-router-D1pGdbvB.mjs} +6 -7
  27. package/dist/{base64-DVrOndmI.mjs → base64-ikl9yBy3.mjs} +1 -2
  28. package/dist/{better-auth-shared-BHB8kiTE.d.mts → better-auth-shared-BJyG2mH0.d.mts} +2 -6
  29. package/dist/{better-auth-shared-7FM3Uk2N.mjs → better-auth-shared-C958aM7W.mjs} +31 -7
  30. package/dist/{build-cmd-9vUAQ1_V.mjs → build-cmd-DmjbuT6d.mjs} +7 -8
  31. package/dist/{cache-jvwLNb0h.mjs → cache-2khBO1MR.mjs} +7 -8
  32. package/dist/{cancel-deploy-Dw0UmWKO.mjs → cancel-deploy-_itbbvY3.mjs} +6 -7
  33. package/dist/{cf-access-CWP4avfP.mjs → cf-access-BmBT2h8_.mjs} +3 -4
  34. package/dist/{cf-access-BM9G0lhO.mjs → cf-access-pejlJmuy.mjs} +1 -2
  35. package/dist/{cf-build-output-XpNR9zoh.mjs → cf-build-output-B1C8U83u.mjs} +41 -314
  36. package/dist/cf-build-output-CmDOcA7K.mjs +1 -0
  37. package/dist/{cf-command-values-ByHk0xg4.mjs → cf-command-values-Ccl-zRhl.mjs} +10 -7
  38. package/dist/cf-config-migrate-Dy8MrKgF.mjs +326 -0
  39. package/dist/{cf-worker-settings-Dg27RzyT.mjs → cf-worker-settings-CARs4Wy9.mjs} +3 -5
  40. package/dist/cli/cli.mjs +66 -76
  41. package/dist/cli/cloudflare-operation-process.mjs +14 -18
  42. package/dist/cli/env-schema-probe.d.mts +1 -5
  43. package/dist/cli/env-schema-probe.mjs +4 -5
  44. package/dist/client-CEtr5UOR.mjs +1 -0
  45. package/dist/{client-B3LnB_bE.mjs → client-CoxPEhJq.mjs} +15 -13
  46. package/dist/{cloudflare-auth-DyD_kVFr.mjs → cloudflare-auth-CEu-1Ps_.mjs} +2 -3
  47. package/dist/{cloudflare-cmd-D-b_u3T4.mjs → cloudflare-cmd-fZ6AMSWk.mjs} +7 -8
  48. package/dist/{cloudflare-config-CH1AylZT.mjs → cloudflare-config-eQunqX6A.mjs} +22 -17
  49. package/dist/{cloudflare-connect-zTJh8UnN.mjs → cloudflare-connect-9OZe4XVQ.mjs} +5 -6
  50. package/dist/{cloudflare-operations-Bc-7fN44.mjs → cloudflare-operations-CrskD4_O.mjs} +8 -9
  51. package/dist/{cloudflare-operations-BtulCNOg.mjs → cloudflare-operations-oLvAd9Nd.mjs} +1 -1
  52. package/dist/{cloudflare-process-8jEYIeim.mjs → cloudflare-process-DjJ638A-.mjs} +7 -9
  53. package/dist/{cloudflare-user-output-Q-k0QoNQ.mjs → cloudflare-user-output-zEwuGrEJ.mjs} +1 -2
  54. package/dist/collect-8i0wU63d.mjs +1 -0
  55. package/dist/{collect-Dew86qce.mjs → collect-C6Blu9yw.mjs} +2 -3
  56. package/dist/{config-tqMM6DwY.mjs → config-BBlVXZCU.mjs} +5 -6
  57. package/dist/{config-OFOAimzt.mjs → config-BITKQ3O6.mjs} +5 -5
  58. package/dist/{config-BV2ASlpn.mjs → config-BgysUhnm.mjs} +1 -1
  59. package/dist/{config-CAdZVTLN.d.mts → config-CPxJmt4M.d.mts} +4 -6
  60. package/dist/{config-D-6q7EBH.mjs → config-WlvEcL82.mjs} +3 -4
  61. package/dist/config-entry.d.mts +1 -3
  62. package/dist/config-entry.mjs +1 -2
  63. package/dist/{connect-BOM6zvFX.mjs → connect-CKvmkl2R.mjs} +10 -11
  64. package/dist/{create-project-C2K0DN2O.mjs → create-project-BiMmR5wA.mjs} +1 -1
  65. package/dist/{create-project-Bxd02EHN.mjs → create-project-Bq0M8MtO.mjs} +9 -11
  66. package/dist/{database-provider-Cx525bwX.mjs → database-provider-DkZo4VwN.mjs} +1 -2
  67. package/dist/database-provider.d.mts +1 -3
  68. package/dist/database-provider.mjs +1 -1
  69. package/dist/{db-Cdvr3zwG.mjs → db-cq5RW4Vy.mjs} +52 -54
  70. package/dist/{db-types-0eCiqYb1.mjs → db-types-C_8amnB0.mjs} +3 -4
  71. package/dist/{delete-lETE6Tpt.mjs → delete-CY4L8fi2.mjs} +7 -8
  72. package/dist/deploy-B029oHlE.mjs +2 -0
  73. package/dist/{deploy-CdM-LAxX.mjs → deploy-D_gEojD2.mjs} +144 -136
  74. package/dist/{deploy-managed-static-DjeBFG2c.mjs → deploy-managed-static-BHVbB_-A.mjs} +33 -40
  75. package/dist/{deploy-transport-DIq_gFTP.mjs → deploy-transport-DEyOUfac.mjs} +6 -7
  76. package/dist/deploy.d.mts +1 -3
  77. package/dist/deploy.mjs +11 -11
  78. package/dist/{dev-inbox-D0jxye_D.mjs → dev-inbox-CUUS6iUg.mjs} +3 -4
  79. package/dist/discover-D4mQthao.mjs +1 -0
  80. package/dist/{discover-LaV0tbIu.mjs → discover-Dhkzxgdt.mjs} +3 -4
  81. package/dist/{dispatch-CLa2LThw.mjs → dispatch-BNLB5_Gm.mjs} +12 -15
  82. package/dist/{dist-Cegxq8gs.mjs → dist-B6eN80gc.mjs} +199 -118
  83. package/dist/{dist-D15hFhP0.mjs → dist-BWNkVq50.mjs} +8 -15
  84. package/dist/{dist-Cor9XGoz.mjs → dist-D23AAMxT.mjs} +9 -16
  85. package/dist/{dist-ipQi0Q8y.mjs → dist-DMYe8CZJ.mjs} +1 -2
  86. package/dist/{dist-B1PLt4_8.mjs → dist-eV_Ep60B.mjs} +1 -1
  87. package/dist/{domain-DyhNtdYf.mjs → domain-BlH90Ods.mjs} +8 -9
  88. package/dist/{dotenv-CNazY3-w.mjs → dotenv-CEI8hapP.mjs} +1 -2
  89. package/dist/{drizzle-9TubSZvI.mjs → drizzle-C8MPqt5m.mjs} +1 -1
  90. package/dist/{drizzle-BQfyvQKX.mjs → drizzle-lFdzSEa9.mjs} +2 -3
  91. package/dist/{email-B9ayYQEG.mjs → email-BHY72ixO.mjs} +3 -4
  92. package/dist/{email-DM2wDcBN.mjs → email-Bkq8ZL1p.mjs} +14 -15
  93. package/dist/{email-cloudflare-PMbAev9Q.mjs → email-cloudflare-MvJIxrwx.mjs} +18 -123
  94. package/dist/{email-protocol-D9nTvhCp.mjs → email-protocol-DTs_TjCS.mjs} +1 -2
  95. package/dist/{entry-BEM8ZuGP.mjs → entry-CBZsCy3O.mjs} +5 -6
  96. package/dist/{env-78hbN-oI.mjs → env-AvuCSeCH.mjs} +10 -11
  97. package/dist/{env-BaMz0j7H.mjs → env-CuzZZyjB.mjs} +3 -4
  98. package/dist/{env-0jrMQJI_.mjs → env-DtKg5G26.mjs} +2 -3
  99. package/dist/{env-helpers--wFmQ_5Q.mjs → env-helpers-Dj_SIwPu.mjs} +1 -2
  100. package/dist/{env-helpers-CyKtOBpj.d.mts → env-helpers-U56xuFgL.d.mts} +1 -3
  101. package/dist/{env-public-6lqiSD2b.d.mts → env-public-CeNeO_AT.d.mts} +2 -4
  102. package/dist/{env-raw-D74P4ebM.mjs → env-raw-e8qgqAzQ.mjs} +1 -2
  103. package/dist/{env-types-BicfKBhV.mjs → env-types-DqzVBKnS.mjs} +4 -5
  104. package/dist/{env-validation-BUfFZ6bt.mjs → env-validation-C8Cmvas0.mjs} +1 -1
  105. package/dist/{env-validation-B3VobvXm.mjs → env-validation-GV1oD4EV.mjs} +9 -10
  106. package/dist/{error-pages-CLIJ7aYq.mjs → error-pages-COVBnzK7.mjs} +6 -12
  107. package/dist/{fetch-CUX0tB78.d.mts → fetch-B-gLGYVl.d.mts} +0 -4
  108. package/dist/{fetch-CtESUYWd.mjs → fetch-C8yhLoF3.mjs} +3 -4
  109. package/dist/{fetch-error-Bw0n-IY-.mjs → fetch-error-DmlRM6e4.mjs} +2 -4
  110. package/dist/{fetch-stream-BspOeTAI.mjs → fetch-stream-DafNtVJC.mjs} +4 -5
  111. package/dist/{fetch-stream-DfkAzZf-.d.mts → fetch-stream-DuwxWmBM.d.mts} +1 -3
  112. package/dist/{gen-CFmsUsW1.mjs → gen-BD-dfjxY.mjs} +12 -13
  113. package/dist/gen-CIHXh9I8.mjs +1 -0
  114. package/dist/{generate-DkEb9rL-.mjs → generate-BOp1g1H_.mjs} +1 -1
  115. package/dist/{generate-B1m4Cm4n.mjs → generate-CWb8aOsm.mjs} +4 -5
  116. package/dist/{generated-wrangler-config-DeWj5F9Y.mjs → generated-wrangler-config-CoDaaFsA.mjs} +1 -2
  117. package/dist/{git-metadata-D-gurjzG.mjs → git-metadata-Cukp5kV5.mjs} +1 -2
  118. package/dist/{github-cmd-De-_IWbM.mjs → github-cmd-CA-lBdkn.mjs} +8 -9
  119. package/dist/{handler-BHktmuTL.d.mts → handler-BR6Tvjkp.d.mts} +18 -26
  120. package/dist/{handler-BZ1t7-Rv.mjs → handler-CKeTtYID.mjs} +6 -17
  121. package/dist/{head-D2VF4ApL.mjs → head-5XPcnG-j.mjs} +1 -2
  122. package/dist/{head-C8K_iGe6.d.mts → head-MeF_5M_3.d.mts} +0 -2
  123. package/dist/headers-CuTEdP9C.mjs +445 -0
  124. package/dist/{help-CKbrhZha.mjs → help-1OCFDsRr.mjs} +28 -12
  125. package/dist/help-Ba8Dq5-r.mjs +1 -0
  126. package/dist/{inbound-Da7XsjH3.d.mts → inbound-BHt4dIlL.d.mts} +16 -9
  127. package/dist/{inbound-VrOLqwZY.mjs → inbound-CdO-qY0w.mjs} +6 -81
  128. package/dist/index.d.mts +23 -13
  129. package/dist/index.mjs +495 -223
  130. package/dist/{info-Yg0-V5Rs.mjs → info-CJxua_db.mjs} +6 -7
  131. package/dist/{init-CDiJQycf.mjs → init-B-4CluYx.mjs} +43 -59
  132. package/dist/{isr-config-fZaJJ8t7.mjs → isr-config-Czzb4mIq.mjs} +5 -55
  133. package/dist/{limits-D0vD1M9A.mjs → limits-CrHLm5Tk.mjs} +1 -2
  134. package/dist/{limits-CFsDKQvU.d.mts → limits-_xIf5z_P.d.mts} +0 -2
  135. package/dist/{link-Dllip08S.mjs → link-DAXOT-G_.mjs} +8 -9
  136. package/dist/{list-BYRP6am0.mjs → list-BYSOo9fm.mjs} +8 -9
  137. package/dist/{live-BllfDuzA.d.mts → live-0xrcVpyq.d.mts} +2 -4
  138. package/dist/{live-BcHoTDFe.mjs → live-DF4HUl2m.mjs} +5 -7
  139. package/dist/{load-user-env-DD5qveNU.mjs → load-user-env-CSwdofj0.mjs} +1 -2
  140. package/dist/{local-d1-CAwAs9GH.mjs → local-d1-BLgsNUj9.mjs} +4 -5
  141. package/dist/{log-BMwmN5Ae.mjs → log-D9hwSySP.mjs} +3 -4
  142. package/dist/login-BpbYeu-n.mjs +1 -0
  143. package/dist/{login-PcFy5mlC.mjs → login-CJopTWX4.mjs} +6 -7
  144. package/dist/{logs-DmJTBhed.mjs → logs-DE0weBsR.mjs} +19 -18
  145. package/dist/{migrate-B8S2xTcb.mjs → migrate-ChHHZBTi.mjs} +20 -16
  146. package/dist/migrate-HdA6Kh2p.mjs +1 -0
  147. package/dist/{migration-handler-CwlEQUoo.d.mts → migration-handler-D8mDx3Ew.d.mts} +0 -4
  148. package/dist/{migration-handler-Cg0Y4EPu.mjs → migration-handler-DCehTlWs.mjs} +1 -2
  149. package/dist/{mime-BAyHPskU.mjs → mime-CtP6-qAF.mjs} +145 -18
  150. package/dist/{mysql-migration-sql-BIS5vbNk.mjs → mysql-migration-sql-CI9VTwjt.mjs} +3 -5
  151. package/dist/{neon-DTZr7Bu7.mjs → neon-CJzQSycr.mjs} +2 -3
  152. package/dist/nitro.d.mts +0 -2
  153. package/dist/nitro.mjs +5 -6
  154. package/dist/{node-CDOPrGSl.mjs → node-CZ6lGNLn.mjs} +8 -9
  155. package/dist/{operator-args-BsJIYXaT.mjs → operator-args-D79WQP70.mjs} +2 -3
  156. package/dist/{operator-auth-Cr2zCc-J.mjs → operator-auth-CfDcmzpo.mjs} +2 -3
  157. package/dist/{operator-client-C-ROjk1I.mjs → operator-client-BIY4-N_6.mjs} +3 -4
  158. package/dist/{operator-cmd-DmkmS2wL.mjs → operator-cmd-BUqsdk2K.mjs} +32 -15
  159. package/dist/operator-cmd-wBYyp8iQ.mjs +1 -0
  160. package/dist/{output-BpgYODYx.mjs → output-BCdLioKP.mjs} +4 -5
  161. package/dist/output-E6gecbbV.mjs +1 -0
  162. package/dist/{package-json-BjYqR-So.mjs → package-json-DvS6IFRv.mjs} +2 -3
  163. package/dist/pages/client.d.mts +147 -31
  164. package/dist/pages/client.mjs +199 -43
  165. package/dist/pages/head.d.mts +1 -1
  166. package/dist/pages/head.mjs +1 -1
  167. package/dist/pages/index.d.mts +25 -18
  168. package/dist/pages/index.mjs +24 -12
  169. package/dist/pages/islands-plugin.d.mts +75 -13
  170. package/dist/pages/islands-plugin.mjs +92 -7
  171. package/dist/pages/prefetch.d.mts +2 -2
  172. package/dist/pages/prefetch.mjs +1 -1
  173. package/dist/pages/protocol.d.mts +2 -2
  174. package/dist/pages/protocol.mjs +2 -2
  175. package/dist/pages/serialize.d.mts +1 -1
  176. package/dist/pages/serialize.mjs +1 -1
  177. package/dist/{pg-J2HbZIkX.mjs → pg-DoyPxa_X.mjs} +1 -2
  178. package/dist/{picocolors-BsDfhxIw.mjs → picocolors-D1NxSLw-.mjs} +2 -3
  179. package/dist/{plan-BhLO2p4w.mjs → plan-BOD70XGS.mjs} +1 -2
  180. package/dist/plan-CQ-N4gws.mjs +1 -0
  181. package/dist/platform-args-C7XUw9mw.mjs +1 -0
  182. package/dist/{platform-args-BMD2gjc_.mjs → platform-args-Cx1M-7bq.mjs} +22 -11
  183. package/dist/{platform-auth-config-CImnfohz.mjs → platform-auth-config-K4m_LE8b.mjs} +10 -11
  184. package/dist/{platform-auth-protection-BogLhtHi.mjs → platform-auth-protection-KF5Vo-1I.mjs} +10 -11
  185. package/dist/{platform-auth-recovery-B-mEaWEi.mjs → platform-auth-recovery-BOdFrl7R.mjs} +9 -11
  186. package/dist/{platform-cmd-CV8NxIIn.mjs → platform-cmd-DpCHawGF.mjs} +1 -1
  187. package/dist/{platform-cmd-DZK2ixMl.mjs → platform-cmd-Ds3EAV5t.mjs} +13 -13
  188. package/dist/{platform-discovery-CHhNs8Nn.mjs → platform-discovery-B0eZjZ3B.mjs} +2 -3
  189. package/dist/{platform-domain-CRvelPGE.mjs → platform-domain-rWJshybd.mjs} +7 -8
  190. package/dist/{platform-lifecycle-DwXq7kZt.mjs → platform-lifecycle-BH34I0rh.mjs} +1 -1
  191. package/dist/{platform-lifecycle-CPYY7E9B.mjs → platform-lifecycle-D9RdGub1.mjs} +110 -110
  192. package/dist/{platform-management-BOnGbMSM.mjs → platform-management-BRefdHGD.mjs} +27 -11
  193. package/dist/{platform-management-lXdgGgAM.mjs → platform-management-BfLW0Zlo.mjs} +1 -1
  194. package/dist/{platform-plans-config-CeydDSj0.mjs → platform-plans-config-Dx1agneU.mjs} +5 -6
  195. package/dist/{platform-recovery-noaALXnE.mjs → platform-recovery-DZuZGJtt.mjs} +5 -6
  196. package/dist/{platform-registry-B9mWX9LO.mjs → platform-registry-DZ_2Xuqd.mjs} +4 -6
  197. package/dist/platform-runtime-logs-CdJGnk3f.mjs +68 -0
  198. package/dist/{platform-setup-Ca53gtt0.mjs → platform-setup-Vw1AaUN8.mjs} +19 -7
  199. package/dist/{plugin-inference-CeiB6BG5.mjs → plugin-inference-CdLbxZL_.mjs} +16 -24
  200. package/dist/{prefetch-Bsc_Pb6c.mjs → prefetch-Dx2jIbtg.mjs} +20 -3
  201. package/dist/{prefetch-Ce6la4EI.d.mts → prefetch-NdNeubbH.d.mts} +7 -3
  202. package/dist/{prepare-D604Yiyr.mjs → prepare-BJW-f1f1.mjs} +13 -14
  203. package/dist/{prepare-BuOS18AM.mjs → prepare-BMGeKL16.mjs} +4 -5
  204. package/dist/prepare-BdxJJCMv.mjs +1 -0
  205. package/dist/{prerender-render-CaShbHJ3.mjs → prerender-render-RlAj6hh8.mjs} +2 -3
  206. package/dist/prerender-render.d.mts +1 -3
  207. package/dist/prerender-render.mjs +1 -1
  208. package/dist/{project-rqDnVsJN.mjs → project-CLwxcEdq.mjs} +3 -4
  209. package/dist/{project-zdB3fs9G.mjs → project-DVsTAWFh.mjs} +1 -1
  210. package/dist/{project-cmd-DBYqAIbe.mjs → project-cmd-B_bUyZ3J.mjs} +21 -23
  211. package/dist/{project-paths-DGu_QZ_Q.mjs → project-paths-CdGv9Tmi.mjs} +3 -5
  212. package/dist/project-slug-BUy0lmyR.mjs +1 -0
  213. package/dist/{project-slug-23TpquG4.mjs → project-slug-CO6ci9XG.mjs} +0 -1
  214. package/dist/{project-team-BjCLgTRC.mjs → project-team-MjT5K4rQ.mjs} +7 -8
  215. package/dist/{project-token-BB6PwaA9.mjs → project-token-BKHGwY3k.mjs} +7 -8
  216. package/dist/{project-tsconfig-CVvk6Z_e.mjs → project-tsconfig-Cf2NFjlM.mjs} +4 -6
  217. package/dist/{project-zero-trust-CWDh1P_t.mjs → project-zero-trust-Bzdd05-h.mjs} +7 -8
  218. package/dist/{protocol-DimNxVRr.mjs → protocol-COyySMki.mjs} +135 -113
  219. package/dist/{protocol-D5XDySYu.d.mts → protocol-CkwjASep.d.mts} +4 -6
  220. package/dist/{providers-BNKRacMr.d.mts → providers-D5P8j_8D.d.mts} +0 -2
  221. package/dist/{providers-BUHwJlmM.mjs → providers-ZARwX2cL.mjs} +1 -2
  222. package/dist/{provision-DztLJ97X.mjs → provision-BbCzpbXs.mjs} +6 -7
  223. package/dist/{provision-DfxLCg-d.mjs → provision-DQF6Kw-6.mjs} +1 -1
  224. package/dist/{queues-BWKt1Xo4.d.mts → queues-DdM42xXW.d.mts} +0 -2
  225. package/dist/{r2-conditions-B8xUgJRc.mjs → r2-conditions-BqkQNt2n.mjs} +1 -2
  226. package/dist/{requests-D_pbzDyz.mjs → requests-daJmVpjk.mjs} +6 -7
  227. package/dist/resolve-project-CgfjtOwz.mjs +1 -0
  228. package/dist/{resolve-project-Xoi6eTWY.mjs → resolve-project-D0YNnJfm.mjs} +4 -5
  229. package/dist/{resource-name-C7LVpcRm.mjs → resource-name-DlJ9QXzg.mjs} +1 -2
  230. package/dist/{response-Tn7rU0MV.mjs → response-HmNjB30w.mjs} +1 -2
  231. package/dist/{rollback-CjfIYsJx.mjs → rollback-BgL0wY1J.mjs} +7 -8
  232. package/dist/{rolldown-runtime-3h0WiCiA.mjs → rolldown-runtime-uD8oG6U2.mjs} +1 -2
  233. package/dist/{route-types-DvEGmPif.mjs → route-types-CZc1YXjF.mjs} +80 -9
  234. package/dist/route-url-CRDF-I0I.mjs +57 -0
  235. package/dist/route-url-C_YIH_zO.d.mts +37 -0
  236. package/dist/routes-stub.d.mts +8 -3
  237. package/dist/routes-stub.mjs +1 -1
  238. package/dist/{routing-assets-DdSFxoLp.mjs → routing-assets-DJIVOrCh.mjs} +1 -2
  239. package/dist/{runner-3uGC-oLF.mjs → runner-5MCSimKx.mjs} +5 -6
  240. package/dist/{runner-WCdfeI0q.mjs → runner-QMeOpScZ.mjs} +1 -1
  241. package/dist/{runner-mysql-BcHnLUuM.mjs → runner-mysql-0zVmB1JW.mjs} +1 -1
  242. package/dist/{runner-mysql-BWmbk5IE.mjs → runner-mysql-Bdmsp_x4.mjs} +3 -4
  243. package/dist/{runner-pg-Cgp-cr_p.mjs → runner-pg-2pjltt0t.mjs} +1 -1
  244. package/dist/{runner-pg-Cr3qrqi4.mjs → runner-pg-mYc75KfH.mjs} +2 -3
  245. package/dist/runtime/ai.d.mts +0 -4
  246. package/dist/runtime/ai.mjs +6 -8
  247. package/dist/runtime/auth-client-react.d.mts +1 -1
  248. package/dist/runtime/auth-client-react.mjs +1 -1
  249. package/dist/runtime/auth-client-solid.d.mts +1 -1
  250. package/dist/runtime/auth-client-solid.mjs +1 -1
  251. package/dist/runtime/auth-client-svelte.d.mts +1 -1
  252. package/dist/runtime/auth-client-svelte.mjs +1 -1
  253. package/dist/runtime/auth-client-vue.d.mts +1 -1
  254. package/dist/runtime/auth-client-vue.mjs +1 -1
  255. package/dist/runtime/auth-client.d.mts +1 -1
  256. package/dist/runtime/auth-client.mjs +1 -1
  257. package/dist/runtime/auth.d.mts +1 -1
  258. package/dist/runtime/auth.mjs +1 -1
  259. package/dist/runtime/better-auth-mysql.d.mts +2 -4
  260. package/dist/runtime/better-auth-mysql.mjs +3 -4
  261. package/dist/runtime/better-auth-pg.d.mts +2 -4
  262. package/dist/runtime/better-auth-pg.mjs +4 -5
  263. package/dist/runtime/better-auth.d.mts +2 -4
  264. package/dist/runtime/better-auth.mjs +3 -4
  265. package/dist/runtime/client-react.d.mts +4 -4
  266. package/dist/runtime/client-react.mjs +4 -4
  267. package/dist/runtime/client-solid.d.mts +4 -4
  268. package/dist/runtime/client-solid.mjs +4 -4
  269. package/dist/runtime/client-svelte.d.mts +4 -4
  270. package/dist/runtime/client-svelte.mjs +4 -4
  271. package/dist/runtime/client-vue.d.mts +4 -4
  272. package/dist/runtime/client-vue.mjs +4 -4
  273. package/dist/runtime/client.d.mts +4 -4
  274. package/dist/runtime/client.mjs +4 -4
  275. package/dist/runtime/db.d.mts +0 -2
  276. package/dist/runtime/db.mjs +2 -3
  277. package/dist/runtime/durable.d.mts +0 -2
  278. package/dist/runtime/durable.mjs +3 -4
  279. package/dist/runtime/email/testing.d.mts +1 -5
  280. package/dist/runtime/email/testing.mjs +5 -6
  281. package/dist/runtime/email-protocol.d.mts +0 -2
  282. package/dist/runtime/email-protocol.mjs +1 -1
  283. package/dist/runtime/email.d.mts +1 -5
  284. package/dist/runtime/email.mjs +6 -7
  285. package/dist/runtime/env-public-client.d.mts +1 -3
  286. package/dist/runtime/env-public-client.mjs +2 -3
  287. package/dist/runtime/env-public.d.mts +2 -2
  288. package/dist/runtime/env-public.mjs +5 -7
  289. package/dist/runtime/env.d.mts +0 -4
  290. package/dist/runtime/env.mjs +1 -1
  291. package/dist/runtime/fetch-server.d.mts +1 -3
  292. package/dist/runtime/fetch-server.mjs +3 -4
  293. package/dist/runtime/fetch-stream.d.mts +2 -2
  294. package/dist/runtime/fetch-stream.mjs +2 -2
  295. package/dist/runtime/fetch.d.mts +1 -1
  296. package/dist/runtime/fetch.mjs +2 -2
  297. package/dist/runtime/handler.d.mts +1 -1
  298. package/dist/runtime/handler.mjs +2 -2
  299. package/dist/runtime/isr.d.mts +1 -3
  300. package/dist/runtime/isr.mjs +2 -3
  301. package/dist/runtime/kv.d.mts +1 -3
  302. package/dist/runtime/kv.mjs +2 -3
  303. package/dist/runtime/limits.d.mts +1 -1
  304. package/dist/runtime/limits.mjs +1 -1
  305. package/dist/runtime/live-client.d.mts +1 -3
  306. package/dist/runtime/live-client.mjs +1 -2
  307. package/dist/runtime/live-server.d.mts +0 -2
  308. package/dist/runtime/live-server.mjs +3 -4
  309. package/dist/runtime/live.d.mts +1 -1
  310. package/dist/runtime/live.mjs +1 -1
  311. package/dist/runtime/log.d.mts +3 -3
  312. package/dist/runtime/log.mjs +26 -18
  313. package/dist/runtime/migration-handler-mysql.d.mts +2 -4
  314. package/dist/runtime/migration-handler-mysql.mjs +2 -3
  315. package/dist/runtime/migration-handler-pg.d.mts +2 -4
  316. package/dist/runtime/migration-handler-pg.mjs +2 -3
  317. package/dist/runtime/migration-handler.d.mts +1 -1
  318. package/dist/runtime/migration-handler.mjs +1 -1
  319. package/dist/runtime/queues.d.mts +1 -1
  320. package/dist/runtime/queues.mjs +2 -3
  321. package/dist/runtime/remote/binding-handler.d.mts +1 -3
  322. package/dist/runtime/remote/binding-handler.mjs +3 -4
  323. package/dist/runtime/remote/index.d.mts +1 -3
  324. package/dist/runtime/remote/index.mjs +8 -13
  325. package/dist/runtime/response.d.mts +1 -3
  326. package/dist/runtime/response.mjs +1 -1
  327. package/dist/runtime/route-url.d.mts +2 -2
  328. package/dist/runtime/route-url.mjs +1 -1
  329. package/dist/runtime/routing.d.mts +8 -11
  330. package/dist/runtime/routing.mjs +52 -32
  331. package/dist/runtime/sandbox-container.d.mts +1 -1
  332. package/dist/runtime/sandbox-container.mjs +1 -1
  333. package/dist/runtime/sandbox.d.mts +2 -2
  334. package/dist/runtime/sandbox.mjs +5 -6
  335. package/dist/runtime/seed.d.mts +0 -2
  336. package/dist/runtime/seed.mjs +1 -2
  337. package/dist/runtime/sse-client.d.mts +1 -3
  338. package/dist/runtime/sse-client.mjs +1 -2
  339. package/dist/runtime/sse.d.mts +1 -3
  340. package/dist/runtime/sse.mjs +1 -1
  341. package/dist/runtime/storage.d.mts +1 -3
  342. package/dist/runtime/storage.mjs +2 -3
  343. package/dist/runtime/validator.d.mts +1 -1
  344. package/dist/runtime/validator.mjs +1 -1
  345. package/dist/runtime/ws-server.d.mts +3 -5
  346. package/dist/runtime/ws-server.mjs +3 -4
  347. package/dist/runtime/ws.d.mts +1 -1
  348. package/dist/runtime/ws.mjs +3 -4
  349. package/dist/{sandbox-q3waMc2T.d.mts → sandbox-DE1WsxuB.d.mts} +2 -4
  350. package/dist/{sandbox-container-a9LRUtii.mjs → sandbox-container-BuxhwCgt.mjs} +1 -2
  351. package/dist/{sandbox-container-ChQRum-j.d.mts → sandbox-container-CZFZdMso.d.mts} +0 -2
  352. package/dist/{scan-N9WzdcAl.mjs → scan-X2rDDRNa.mjs} +49 -35
  353. package/dist/{secret-3X0PxmuX.mjs → secret-CPq-B_vp.mjs} +17 -15
  354. package/dist/{serialize-YHvlcG3Q.mjs → serialize-DUuYuaY3.mjs} +2 -4
  355. package/dist/{serialize-DtR8Vwa_.d.mts → serialize-I4EmS-Wf.d.mts} +0 -2
  356. package/dist/{skills-CrUO3PJ0.mjs → skills-D393E4lB.mjs} +4 -5
  357. package/dist/{sqlite-validation-BzKMWnO4.mjs → sqlite-validation-CLJXXN93.mjs} +1 -2
  358. package/dist/{sse-CMvCgjNk.mjs → sse-CxR30yMF.mjs} +1 -2
  359. package/dist/{standard-schema-Fo_vCAZh.d.mts → standard-schema-CuDawHOC.d.mts} +0 -2
  360. package/dist/{static-asset-marker-Btf-6oCD.mjs → static-asset-marker-DsQKz6lt.mjs} +9 -3
  361. package/dist/{subcommand-prompt-D9OhhbGG.mjs → subcommand-prompt-CxJXporl.mjs} +3 -4
  362. package/dist/sveltekit.d.mts +0 -2
  363. package/dist/sveltekit.mjs +2 -3
  364. package/dist/{terminal-log-text-D9ACPOuG.mjs → terminal-log-text-DNsWJREL.mjs} +1 -2
  365. package/dist/{types-w72dljaA.d.mts → types-agfx0alu.d.mts} +0 -4
  366. package/dist/validate-DY1U9rET.mjs +1 -0
  367. package/dist/{validate-CnZPMq4q.mjs → validate-Ddzl-IwT.mjs} +4 -5
  368. package/dist/validation-error-uAAjlsiW.mjs +82 -0
  369. package/dist/{validator-BTOu0fB0.mjs → validator-CTfmzZYb.mjs} +2 -5
  370. package/dist/{version-metadata-D2vfMQzv.mjs → version-metadata-C8hLzQkv.mjs} +4 -6
  371. package/dist/{worker-conditions-AWFRcFxR.mjs → worker-conditions-CBZ0RYsZ.mjs} +1 -2
  372. package/dist/{wrangler-I-scB_1t.mjs → wrangler-DESSbN8L.mjs} +6 -8
  373. package/dist/wrangler-DUB3MGHV.mjs +1 -0
  374. package/dist/{wrapper-BBl1rC32.mjs → wrapper-C9SUxoj7.mjs} +17 -14
  375. package/dist/{ws-B3ClMVDh.d.mts → ws-Dmjg5NH2.d.mts} +3 -5
  376. package/dist/{yarn-pnp-DLbEFMT0.mjs → yarn-pnp-DgWbE7z5.mjs} +2 -3
  377. package/docs/guide/database.md +4 -4
  378. package/docs/guide/deployment.md +1 -1
  379. package/docs/guide/edge/headers.md +4 -6
  380. package/docs/guide/edge/redirects.md +4 -4
  381. package/docs/guide/edge/rewrites.md +1 -1
  382. package/docs/guide/edge/static-assets.md +0 -10
  383. package/docs/guide/email/domains.md +3 -1
  384. package/docs/guide/email/receiving.md +4 -4
  385. package/docs/guide/email/sending.md +43 -13
  386. package/docs/guide/pages-routing/actions-and-forms.md +26 -9
  387. package/docs/guide/pages-routing/islands.md +5 -5
  388. package/docs/guide/pages-routing/layouts.md +16 -2
  389. package/docs/guide/pages-routing/loaders.md +5 -5
  390. package/docs/guide/pages-routing/markdown.md +7 -7
  391. package/docs/guide/pages-routing/overview.md +137 -27
  392. package/docs/guide/platform/administration/connected-apps.md +4 -2
  393. package/docs/guide/platform/administration/email.md +6 -8
  394. package/docs/guide/platform/installation/credentials.md +12 -10
  395. package/docs/guide/platform/installation/maintenance.md +18 -21
  396. package/docs/guide/platform/installation/prerequisites.md +1 -1
  397. package/docs/guide/platform/installation/setup.md +23 -2
  398. package/docs/guide/platform/installation/uninstall.md +1 -1
  399. package/docs/guide/queues.md +4 -8
  400. package/docs/guide/self-hosted-platform.md +3 -3
  401. package/docs/guide/server-routing.md +7 -7
  402. package/docs/guide/ssg.md +3 -3
  403. package/docs/guide/type-safety.md +84 -1
  404. package/docs/guide/typed-fetch.md +1 -1
  405. package/docs/guide/websockets.md +1 -1
  406. package/docs/integrations/cloudflare.md +2 -2
  407. package/docs/integrations/frameworks/analog.md +1 -1
  408. package/docs/integrations/frameworks/astro.md +17 -12
  409. package/docs/integrations/frameworks/nuxt.md +1 -1
  410. package/docs/integrations/frameworks/overview.md +2 -2
  411. package/docs/integrations/frameworks/sveltekit.md +1 -1
  412. package/docs/integrations/frameworks/tanstack-start.md +1 -1
  413. package/docs/integrations/hono.md +5 -5
  414. package/docs/reference/api/auth.md +1 -1
  415. package/docs/reference/api/deploy.md +6 -6
  416. package/docs/reference/api/pages.md +109 -50
  417. package/docs/reference/api/plugin.md +4 -4
  418. package/docs/reference/api/resources.md +4 -1
  419. package/docs/reference/api/rewrites.md +24 -3
  420. package/docs/reference/api/types.md +45 -0
  421. package/docs/reference/api.md +2 -2
  422. package/docs/reference/cli/database.md +15 -9
  423. package/docs/reference/cli/email.md +4 -2
  424. package/docs/reference/cli/platform-installation.md +6 -3
  425. package/docs/reference/cli/project.md +2 -2
  426. package/docs/reference/cli/secrets.md +3 -1
  427. package/docs/reference/cli/setup.md +4 -4
  428. package/docs/reference/cli.md +1 -1
  429. package/docs/reference/config.md +12 -2
  430. package/package.json +36 -32
  431. package/sandbox.Dockerfile +1 -1
  432. package/schema.json +4 -0
  433. package/skills/void/SKILL.md +5 -0
  434. package/dist/cf-build-output-bd8Uwv1P.mjs +0 -1
  435. package/dist/client-BZb9j66F.mjs +0 -1
  436. package/dist/collect-BWhkgtAn.mjs +0 -1
  437. package/dist/deploy-CX94CmKa.mjs +0 -2
  438. package/dist/discover-D4TPKo57.mjs +0 -1
  439. package/dist/gen-BhWBT4iu.mjs +0 -1
  440. package/dist/headers--vaK_chu.mjs +0 -226
  441. package/dist/help-qOZr3wng.mjs +0 -1
  442. package/dist/login-BAPmYnb7.mjs +0 -1
  443. package/dist/migrate-BIYTPQE6.mjs +0 -1
  444. package/dist/operator-cmd-CjazwOyb.mjs +0 -1
  445. package/dist/output-BW9uK099.mjs +0 -1
  446. package/dist/plan-CKX_jWnD.mjs +0 -1
  447. package/dist/platform-args-BC8_hsDj.mjs +0 -1
  448. package/dist/prepare-DU-tOpS5.mjs +0 -1
  449. package/dist/project-slug-6cyz8E7k.mjs +0 -1
  450. package/dist/resolve-project-DD1vu8s9.mjs +0 -1
  451. package/dist/route-url-BgPja1GS.d.mts +0 -5
  452. package/dist/route-url-BjGv_KKY.mjs +0 -28
  453. package/dist/validate-D7Wn8PUX.mjs +0 -1
  454. package/dist/validation-error-Dg9Recn1.mjs +0 -49
  455. package/dist/wrangler-UnwdISay.mjs +0 -1
@@ -1,17 +1,17 @@
1
- import { a as join, n as dirname } from "./dist-ipQi0Q8y.mjs";
2
- import { o as TYPED_CONFIG_FILE, s as loadTypedVoidConfigFile } from "./project-paths-DGu_QZ_Q.mjs";
3
- import { h as validateConfig } from "./config-OFOAimzt.mjs";
4
- import { t as parseJsoncObject } from "./generated-wrangler-config-DeWj5F9Y.mjs";
5
- import { c as stashCloudflareDeployPointer, n as VOID_LOCK_FILE, r as ignoreMaterializedCloudflareConfig, s as seedCloudflareConfig } from "./cloudflare-config-CH1AylZT.mjs";
6
- import { I as renderVoidConfig, P as GENERATED_MARKERS } from "./wrangler-I-scB_1t.mjs";
7
- import { L as log } from "./dist-Cor9XGoz.mjs";
8
- import { m as printSuccess } from "./output-BpgYODYx.mjs";
1
+ import { a as join, n as dirname } from "./dist-DMYe8CZJ.mjs";
2
+ import { o as TYPED_CONFIG_FILE, s as loadTypedVoidConfigFile } from "./project-paths-CdGv9Tmi.mjs";
3
+ import { h as validateConfig } from "./config-BITKQ3O6.mjs";
4
+ import { t as parseJsoncObject } from "./generated-wrangler-config-CoDaaFsA.mjs";
5
+ import { c as stashCloudflareDeployPointer, l as ensureGitignoreLines, n as VOID_LOCK_FILE, r as ignoreMaterializedCloudflareConfig, s as seedCloudflareConfig } from "./cloudflare-config-eQunqX6A.mjs";
6
+ import { I as renderVoidConfig, P as GENERATED_MARKERS } from "./wrangler-DESSbN8L.mjs";
7
+ import { L as log } from "./dist-D23AAMxT.mjs";
8
+ import { m as printSuccess } from "./output-BCdLioKP.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";
12
12
  import { isDeepStrictEqual } from "node:util";
13
13
  import { parseTree } from "jsonc-parser";
14
- //#region src/cli/framework-config-migrate.ts
14
+ // src/cli/framework-config-migrate.ts
15
15
  const GENERATED_PATH = "./.void-wrangler.jsonc";
16
16
  const CONFIG_FILES = [
17
17
  "vite.config.ts",
@@ -197,8 +197,7 @@ function migrateFrameworkAdapterPaths(root) {
197
197
  if (!existsSync(join(root, "void.config.ts"))) return false;
198
198
  return applyFrameworkConfigMigration(root, planFrameworkConfigMigration(root));
199
199
  }
200
- //#endregion
201
- //#region src/cli/migrate.ts
200
+ // src/cli/migrate.ts
202
201
  const LEGACY_FILE = "void.json";
203
202
  function parseWranglerJsonc(path, raw) {
204
203
  const parsed = parseJsoncObject(raw);
@@ -301,10 +300,15 @@ function migrateLegacyVoidConfig(root) {
301
300
  }
302
301
  async function runMigrateCommand(root) {
303
302
  console.log();
304
- if (migrateLegacyVoidConfig(root)) {
305
- log.step(`Migrated project settings to ${TYPED_CONFIG_FILE}. Commit it and ${VOID_LOCK_FILE} when present.`);
306
- printSuccess("Configuration migration complete.");
307
- } else log.info("No legacy project configuration found.");
303
+ const migrated = migrateLegacyVoidConfig(root);
304
+ const updatedIgnore = ensureGitignoreLines(root, [".cloudflare"], { ".cloudflare": [
305
+ "/.cloudflare",
306
+ ".cloudflare/",
307
+ "/.cloudflare/"
308
+ ] }).length > 0;
309
+ if (migrated) log.step(`Migrated project settings to ${TYPED_CONFIG_FILE}. Commit it and ${VOID_LOCK_FILE} when present.`);
310
+ if (updatedIgnore) log.step("Added .cloudflare to .gitignore.");
311
+ if (migrated || updatedIgnore) printSuccess("Project migration complete.");
312
+ else log.info("No legacy project configuration found.");
308
313
  }
309
- //#endregion
310
314
  export { migrateFrameworkAdapterPaths as i, runMigrateCommand as n, discoverFrameworkWranglerFiles as r, migrateLegacyVoidConfig as t };
@@ -0,0 +1 @@
1
+ export { n as runMigrateCommand } from "./migrate-ChHHZBTi.mjs";
@@ -1,5 +1,4 @@
1
1
  import { MigrationPlanHashInput } from "@void/deploy-core";
2
- //#region src/migrations/plan.d.ts
3
2
  type MigrationExecutionPlan = MigrationPlanHashInput & {
4
3
  planHash: string;
5
4
  warnings?: Array<string>;
@@ -11,8 +10,6 @@ type MigrationPlanBundle = {
11
10
  destructiveValidation: "passed";
12
11
  plans: Array<MigrationExecutionPlan>;
13
12
  };
14
- //#endregion
15
- //#region src/runtime/migration-handler.d.ts
16
13
  type MigrationEntry = {
17
14
  name: string;
18
15
  sql: string;
@@ -38,5 +35,4 @@ type MigrationResponse = {
38
35
  };
39
36
  declare function createMigrationHandler(env: Record<string, unknown>, migrations: Array<MigrationEntry> | undefined, runAuthMigrations?: () => Promise<void>, planBundle?: MigrationPlanBundle): (request: Request) => Promise<Response>;
40
37
  declare function splitMigrationSql(sql: string): Array<string>;
41
- //#endregion
42
38
  export { splitMigrationSql as a, createMigrationHandler as i, MigrationResponse as n, MigrationResult as r, MigrationEntry as t };
@@ -1,5 +1,5 @@
1
1
  import { canonicalJson, canonicalSql, getMigrationPlanHashInput, isSingleStatement, splitSqlStatements } from "@void/deploy-core";
2
- //#region src/runtime/migration-handler.ts
2
+ // src/runtime/migration-handler.ts
3
3
  const SUPPORTED_CLASSIFIER_VERSION = 1;
4
4
  function createMigrationHandler(env, migrations, runAuthMigrations, planBundle) {
5
5
  return async (request) => {
@@ -466,5 +466,4 @@ function isStatementBreakpointLine(line) {
466
466
  function hasInlineStatementBreakpoint(line) {
467
467
  return /;\s*-->\s*statement-breakpoint\s*$/.test(line.trim());
468
468
  }
469
- //#endregion
470
469
  export { splitMigrationSql as n, createMigrationHandler as t };
@@ -1,6 +1,125 @@
1
- import { n as bytesToBase64 } from "./base64-DVrOndmI.mjs";
1
+ import { n as bytesToBase64 } from "./base64-ikl9yBy3.mjs";
2
2
  import { validate } from "email-validator";
3
- //#region src/runtime/email/mime.ts
3
+ // src/runtime/email/threading.ts
4
+ /**
5
+ * Header-value checks shared by the MIME builder and the reply path, and the
6
+ * best-effort cleaning of `In-Reply-To` / `References` ids. Thread ids usually
7
+ * come from remote mail, so an id that cannot be sent is left out instead of
8
+ * failing the message. No imports, so both `mime.ts` and `inbound.ts` can use it.
9
+ */
10
+ /**
11
+ * Index of the first C0 control other than HTAB, or DEL; -1 when there is
12
+ * none. HTAB is folding whitespace (RFC 5322 §3.2.2).
13
+ */
14
+ function indexOfControl(value) {
15
+ for (let i = 0; i < value.length; i++) {
16
+ const c = value.charCodeAt(i);
17
+ if (c < 32 && c !== 9 || c === 127) return i;
18
+ }
19
+ return -1;
20
+ }
21
+ /**
22
+ * `value` without leading or trailing SP and HTAB, the only whitespace a
23
+ * `Headers` value is trimmed of. `String#trim` would also strip U+00A0.
24
+ */
25
+ function trimFws(value) {
26
+ let start = 0;
27
+ let end = value.length;
28
+ while (start < end && (value.charCodeAt(start) === 32 || value.charCodeAt(start) === 9)) start++;
29
+ while (end > start && (value.charCodeAt(end - 1) === 32 || value.charCodeAt(end - 1) === 9)) end--;
30
+ return value.slice(start, end);
31
+ }
32
+ /**
33
+ * Whether `Name: value` fits RFC 5322's 998-octet line once folded. It
34
+ * follows `foldHeader`: a fold point is SP or HTAB outside a quoted string,
35
+ * so the widest run between fold points decides.
36
+ */
37
+ function fitsHeaderLine(name, value) {
38
+ if (!value) return false;
39
+ const budget = 998 - (name.length + 2);
40
+ let run = 0;
41
+ let inQuotes = false;
42
+ let escape = false;
43
+ for (let i = 0; i < value.length; i++) {
44
+ const c = value.charCodeAt(i);
45
+ if (escape) escape = false;
46
+ else if (c === 92 && inQuotes) escape = true;
47
+ else if (c === 34) inQuotes = !inQuotes;
48
+ else if ((c === 32 || c === 9) && !inQuotes) {
49
+ run = 0;
50
+ continue;
51
+ }
52
+ if (c < 128) run += 1;
53
+ else if (c < 2048) run += 2;
54
+ else if (c >= 55296 && c <= 56319 && i + 1 < value.length && (value.charCodeAt(i + 1) & 64512) === 56320) {
55
+ run += 4;
56
+ i++;
57
+ } else run += 3;
58
+ if (run > budget) return false;
59
+ }
60
+ return true;
61
+ }
62
+ /**
63
+ * Longest `References` value, in UTF-16 code units. 8 KiB keeps any real
64
+ * thread whole; past it the newest ids are kept, since mail clients thread on
65
+ * any id they recognise and the parent is `In-Reply-To`.
66
+ */
67
+ const MAX_REFERENCES_CHARS = 8192;
68
+ /**
69
+ * The newest whole ids of `chain` that fit `budget` code units, without the
70
+ * ids that hold a control character.
71
+ */
72
+ function newestIds(chain, budget) {
73
+ if (chain.length > budget) {
74
+ let cut = chain.length - budget;
75
+ while (cut < chain.length) {
76
+ const c = chain.charCodeAt(cut);
77
+ if (c === 32 || c === 9) break;
78
+ cut++;
79
+ }
80
+ chain = chain.slice(cut);
81
+ }
82
+ return dropControlIds(chain);
83
+ }
84
+ /** `chain` without the ids that hold a control character, joined by single spaces. */
85
+ function dropControlIds(chain) {
86
+ if (indexOfControl(chain) === -1) return chain;
87
+ const kept = [];
88
+ let start = -1;
89
+ let tainted = false;
90
+ for (let i = 0; i <= chain.length; i++) {
91
+ const c = i < chain.length ? chain.charCodeAt(i) : 32;
92
+ if (c === 32 || c === 9) {
93
+ if (start >= 0 && !tainted) kept.push(chain.slice(start, i));
94
+ start = -1;
95
+ tainted = false;
96
+ } else {
97
+ if (start < 0) start = i;
98
+ if (c < 32 || c === 127) tainted = true;
99
+ }
100
+ }
101
+ return kept.join(" ");
102
+ }
103
+ /** `id` when it fits one `name:` line and holds no control character, else `''`. */
104
+ function threadingId(name, id) {
105
+ return fitsHeaderLine(name, id) && indexOfControl(id) === -1 ? id : "";
106
+ }
107
+ /** `References` cut to its newest whole ids, or `''` when an id cannot fit a line. */
108
+ function threadingReferences(chain) {
109
+ const kept = newestIds(chain, MAX_REFERENCES_CHARS).trim();
110
+ return fitsHeaderLine("References", kept) ? kept : "";
111
+ }
112
+ /**
113
+ * A reply's `References`, or `''`: the inbound chain plus the parent's id,
114
+ * trimmed to its newest whole ids, or the parent's id alone when an id
115
+ * cannot fit a line. `messageId` was already checked with `threadingId`.
116
+ */
117
+ function replyReferences(originalReferences, messageId) {
118
+ const parent = messageId ? ` ${messageId}` : "";
119
+ const chain = `${newestIds(originalReferences, MAX_REFERENCES_CHARS - parent.length)}${parent}`.trim();
120
+ return fitsHeaderLine("References", chain) ? chain : messageId;
121
+ }
122
+ // src/runtime/email/mime.ts
4
123
  /**
5
124
  * Minimal RFC 5322 / 2047 / 2045 MIME builder for the void/email runtime.
6
125
  *
@@ -29,17 +148,6 @@ function rejectCRLF(field, value) {
29
148
  }
30
149
  }
31
150
  /**
32
- * Index of the first C0 control other than HTAB, or DEL; -1 when there is
33
- * none. HTAB is folding whitespace (RFC 5322 §3.2.2).
34
- */
35
- function indexOfControl(value) {
36
- for (let i = 0; i < value.length; i++) {
37
- const c = value.charCodeAt(i);
38
- if (c < 32 && c !== 9 || c === 127) return i;
39
- }
40
- return -1;
41
- }
42
- /**
43
151
  * Refuse a control in a value rendered verbatim into a header (an
44
152
  * attachment's filename, media type and Content-ID). Names the code point,
45
153
  * never the value.
@@ -350,8 +458,7 @@ async function normalizeEmail(opts) {
350
458
  if (attachmentBytes > MAX_ATTACHMENT_BYTES_TOTAL) throw attachmentsTooLargeError(attachmentBytes);
351
459
  attachments.push(normalized);
352
460
  }
353
- if (opts.threading?.inReplyTo) rejectCRLF("threading.inReplyTo", opts.threading.inReplyTo);
354
- if (opts.threading?.references) rejectCRLF("threading.references", opts.threading.references);
461
+ const threading = normalizeThreading(opts.threading);
355
462
  return {
356
463
  from,
357
464
  to,
@@ -363,7 +470,28 @@ async function normalizeEmail(opts) {
363
470
  html: opts.html,
364
471
  headers: opts.headers ? { ...opts.headers } : {},
365
472
  attachments,
366
- threading: opts.threading
473
+ threading
474
+ };
475
+ }
476
+ /**
477
+ * `threading` from `sendEmail`, `createEmail` or `replyEmail`. A value that is
478
+ * not a string is a caller error. Thread ids often come from remote mail, so a
479
+ * bad id never fails the email: an `inReplyTo` with a control character or
480
+ * too long for one line is left out, and a `references` chain that cannot be
481
+ * sent falls back to `inReplyTo`.
482
+ */
483
+ function normalizeThreading(threading) {
484
+ if (threading === void 0) return;
485
+ if (typeof threading !== "object" || threading === null || Array.isArray(threading)) throw new MimeError("MIME_ERROR", "threading: must be an object.");
486
+ const { inReplyTo = "", references = "" } = threading;
487
+ if (typeof inReplyTo !== "string") throw new MimeError("MIME_ERROR", "threading.inReplyTo: must be a string.");
488
+ if (typeof references !== "string") throw new MimeError("MIME_ERROR", "threading.references: must be a string.");
489
+ const parent = threadingId("In-Reply-To", trimFws(inReplyTo));
490
+ const chain = threadingReferences(references) || parent;
491
+ if (!parent && !chain) return;
492
+ return {
493
+ ...parent ? { inReplyTo: parent } : {},
494
+ ...chain ? { references: chain } : {}
367
495
  };
368
496
  }
369
497
  /**
@@ -873,5 +1001,4 @@ function buildMime(email) {
873
1001
  messageId
874
1002
  };
875
1003
  }
876
- //#endregion
877
- export { newId as a, validateAddressParts as c, indexOfControl as i, MimeError as n, normalizeEmail as o, buildMime as r, parseAddress as s, MAX_MESSAGE_BYTES as t };
1004
+ export { normalizeEmail as a, fitsHeaderLine as c, newId as i, replyReferences as l, MimeError as n, parseAddress as o, buildMime as r, validateAddressParts as s, MAX_MESSAGE_BYTES as t, threadingId as u };
@@ -1,6 +1,6 @@
1
- import { n as splitMigrationSql } from "./migration-handler-Cg0Y4EPu.mjs";
1
+ import { n as splitMigrationSql } from "./migration-handler-DCehTlWs.mjs";
2
2
  import { createHash, randomUUID } from "node:crypto";
3
- //#region src/runtime/migration-lock-mysql.ts
3
+ // src/runtime/migration-lock-mysql.ts
4
4
  /**
5
5
  * Migration runs on one MySQL database exclude each other with two kinds of lock, and each run
6
6
  * checks for the other kind after it takes its own:
@@ -120,8 +120,7 @@ function isMissingTable(error) {
120
120
  function errnoOf(error) {
121
121
  return typeof error === "object" && error !== null ? error.errno : void 0;
122
122
  }
123
- //#endregion
124
- //#region src/runtime/mysql-migration-sql.ts
123
+ // src/runtime/mysql-migration-sql.ts
125
124
  /**
126
125
  * Splits a MySQL migration file into the statements Void runs one query at a time. Hyperdrive
127
126
  * does not accept several statements in one query, and a file that runs statement by statement
@@ -237,5 +236,4 @@ function skipQuoted(sql, open, quote) {
237
236
  }
238
237
  return sql.length;
239
238
  }
240
- //#endregion
241
239
  export { mySqlMigrationLockError as a, holdMySqlMigrationLease as i, splitMySqlMigrationStatements as n, mySqlMigrationLockName as o, acquireMySqlMigrationLease as r, readMySqlMigrationLease as s, splitMySqlMigrationSql as t };
@@ -1,5 +1,5 @@
1
- import { t as defineDatabaseProvider } from "./database-provider-Cx525bwX.mjs";
2
- //#region src/database-providers/neon.ts
1
+ import { t as defineDatabaseProvider } from "./database-provider-DkZo4VwN.mjs";
2
+ // src/database-providers/neon.ts
3
3
  function getConnectionString(payload) {
4
4
  if (!payload || typeof payload !== "object") return;
5
5
  const record = payload;
@@ -49,5 +49,4 @@ function createNeonDatabaseProvider(options = {}) {
49
49
  }
50
50
  });
51
51
  }
52
- //#endregion
53
52
  export { createNeonDatabaseProvider };
package/dist/nitro.d.mts CHANGED
@@ -1,4 +1,3 @@
1
- //#region src/nitro.d.ts
2
1
  /** The parts of a Nitro instance that the module uses. */
3
2
  type NitroInstance = {
4
3
  options: {
@@ -26,5 +25,4 @@ declare const voidNitroModule: {
26
25
  name: string;
27
26
  setup(nitro: NitroInstance): void;
28
27
  };
29
- //#endregion
30
28
  export { voidNitroModule as default };
package/dist/nitro.mjs CHANGED
@@ -1,11 +1,11 @@
1
- import { a as join, n as dirname } from "./dist-ipQi0Q8y.mjs";
2
- import { l as getDatabaseDialect, p as readConfig } from "./config-OFOAimzt.mjs";
3
- import { c as voidDbBundlerPlugin } from "./dispatch-CLa2LThw.mjs";
4
- import { n as bundleWorkerSqlDriver } from "./wrapper-BBl1rC32.mjs";
1
+ import { a as join, n as dirname } from "./dist-DMYe8CZJ.mjs";
2
+ import { l as getDatabaseDialect, p as readConfig } from "./config-BITKQ3O6.mjs";
3
+ import { c as voidDbBundlerPlugin } from "./dispatch-BNLB5_Gm.mjs";
4
+ import { n as bundleWorkerSqlDriver } from "./wrapper-C9SUxoj7.mjs";
5
5
  import { normalizePath } from "vite";
6
6
  import { fileURLToPath } from "node:url";
7
7
  import { resolve } from "node:path/win32";
8
- //#region src/nitro.ts
8
+ // src/nitro.ts
9
9
  const envModuleFile = fileURLToPath(import.meta.resolve("#self/_env"));
10
10
  const packageDistDir = `${normalizePath(dirname(dirname(envModuleFile)))}/`;
11
11
  const REQUEST_SCOPE_PLUGIN = "#void/nitro-request-scope";
@@ -84,5 +84,4 @@ const voidNitroModule = {
84
84
  rollupConfig.plugins = [...plugins, ...Array.isArray(existing) ? existing : existing ? [existing] : []];
85
85
  }
86
86
  };
87
- //#endregion
88
87
  export { voidNitroModule as default };
@@ -1,12 +1,12 @@
1
- import { n as dirname } from "./dist-ipQi0Q8y.mjs";
2
- import { a as projectAuthConfigImporter, i as loadVoidAuthConfig, r as findVoidAuthConfig } from "./config-D-6q7EBH.mjs";
3
- import { p as readConfig } from "./config-OFOAimzt.mjs";
4
- import { r as getMiniflareDatabasePath } from "./runner-3uGC-oLF.mjs";
5
- import { s as loadLocalEnv } from "./env-BaMz0j7H.mjs";
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";
1
+ import { n as dirname } from "./dist-DMYe8CZJ.mjs";
2
+ import { a as projectAuthConfigImporter, i as loadVoidAuthConfig, r as findVoidAuthConfig } from "./config-WlvEcL82.mjs";
3
+ import { p as readConfig } from "./config-BITKQ3O6.mjs";
4
+ import { r as getMiniflareDatabasePath } from "./runner-5MCSimKx.mjs";
5
+ import { s as loadLocalEnv } from "./env-CuzZZyjB.mjs";
6
+ import { a as pgMigrationRunner, i as mysqlMigrationRunner, n as applyPgAuthMigrations, r as applySqliteAuthMigrations, t as applyMySqlAuthMigrations } from "./auth-migrations-DDeifS3v.mjs";
7
+ import { r as resolveVoidAuthMigrationSchema } from "./drizzle-lFdzSEa9.mjs";
8
8
  import { mkdirSync } from "node:fs";
9
- //#region src/auth/node.ts
9
+ // src/auth/node.ts
10
10
  async function runLocalVoidAuthMigrations(root, dialect, persistRoot, databaseId, configPath = findVoidAuthConfig(root), databaseUrl, importModule) {
11
11
  const authConfig = await loadVoidAuthConfig(configPath, importModule ?? projectAuthConfigImporter(root));
12
12
  const runtime = {
@@ -61,5 +61,4 @@ async function runLocalVoidAuthMigrations(root, dialect, persistRoot, databaseId
61
61
  await client.end();
62
62
  }
63
63
  }
64
- //#endregion
65
64
  export { runLocalVoidAuthMigrations };
@@ -1,6 +1,6 @@
1
- import { t as OPERATOR_MAX_TIMEOUT_MS } from "./operator-client-C-ROjk1I.mjs";
1
+ import { t as OPERATOR_MAX_TIMEOUT_MS } from "./operator-client-BIY4-N_6.mjs";
2
2
  import { parsePlatformLoginId } from "@void/platform";
3
- //#region src/cli/operator-args.ts
3
+ // src/cli/operator-args.ts
4
4
  const operatorCommands = [
5
5
  {
6
6
  group: "auth",
@@ -710,5 +710,4 @@ function parseOperatorArgs(args) {
710
710
  }
711
711
  return parsed;
712
712
  }
713
- //#endregion
714
713
  export { operatorGroups as n, parseOperatorArgs as r, operatorCommands as t };
@@ -1,5 +1,5 @@
1
- import { C as deleteKeyringPassword, T as writeKeyringPassword, c as normalizePlatformApiUrl, i as getActivePlatformConnection, r as findPlatformConnections, u as platformCredentialAccount, w as readKeyringPassword } from "./platform-registry-B9mWX9LO.mjs";
2
- import { n as OperatorClient, r as OperatorClientError } from "./operator-client-C-ROjk1I.mjs";
1
+ import { C as deleteKeyringPassword, T as writeKeyringPassword, c as normalizePlatformApiUrl, i as getActivePlatformConnection, r as findPlatformConnections, u as platformCredentialAccount, w as readKeyringPassword } from "./platform-registry-DZ_2Xuqd.mjs";
2
+ import { n as OperatorClient, r as OperatorClientError } from "./operator-client-BIY4-N_6.mjs";
3
3
  /** Operator authority never comes from repository-controlled metadata. */
4
4
  function resolveOperatorOrigin(connection = "") {
5
5
  if (connection) {
@@ -44,5 +44,4 @@ async function exchangeOperatorSession(origin, apiToken) {
44
44
  if (typeof session.token !== "string" || !session.token || session.apiVersion !== 1 || typeof session.expiresAt !== "string") throw new OperatorClientError("Operator API returned an invalid session.", "invalid_response");
45
45
  return session;
46
46
  }
47
- //#endregion
48
47
  export { resolveOperatorOrigin as a, removeOperatorToken as i, readOperatorApiTokenStdin as n, saveOperatorToken as o, readOperatorToken as r, exchangeOperatorSession as t };
@@ -1,6 +1,6 @@
1
- import { c as normalizePlatformApiUrl } from "./platform-registry-B9mWX9LO.mjs";
2
- import { t as cfAccessHeaders } from "./cf-access-BM9G0lhO.mjs";
3
- import { t as ensurePlatformAccessToken } from "./cf-access-CWP4avfP.mjs";
1
+ import { c as normalizePlatformApiUrl } from "./platform-registry-DZ_2Xuqd.mjs";
2
+ import { t as cfAccessHeaders } from "./cf-access-pejlJmuy.mjs";
3
+ import { t as ensurePlatformAccessToken } from "./cf-access-BmBT2h8_.mjs";
4
4
  const OPERATOR_MAX_TIMEOUT_MS = 36e5;
5
5
  var OperatorClientError = class extends Error {
6
6
  code;
@@ -79,5 +79,4 @@ var OperatorClient = class {
79
79
  }
80
80
  }
81
81
  };
82
- //#endregion
83
82
  export { OperatorClient as n, OperatorClientError as r, OPERATOR_MAX_TIMEOUT_MS as t };
@@ -1,10 +1,11 @@
1
- import { h as sanitizeTerminalText, m as printSuccess } from "./output-BpgYODYx.mjs";
2
- import { n as OperatorClient, r as OperatorClientError } from "./operator-client-C-ROjk1I.mjs";
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";
1
+ import { h as sanitizeTerminalText, i as dim, m as printSuccess } from "./output-BCdLioKP.mjs";
2
+ import { n as OperatorClient, r as OperatorClientError } from "./operator-client-BIY4-N_6.mjs";
3
+ import { t as MINIMAL_RUNTIME_LOGS_NOTE } from "./platform-runtime-logs-CdJGnk3f.mjs";
4
+ import { a as resolveOperatorOrigin, i as removeOperatorToken, n as readOperatorApiTokenStdin, o as saveOperatorToken, r as readOperatorToken, t as exchangeOperatorSession } from "./operator-auth-CfDcmzpo.mjs";
4
5
  import { createHash } from "node:crypto";
5
6
  import { setTimeout } from "node:timers/promises";
6
7
  import { createInterface } from "node:readline/promises";
7
- //#region src/cli/operator-cmd.ts
8
+ // src/cli/operator-cmd.ts
8
9
  const MAX_RUNTIME_FOLLOW_ROWS = 1e4;
9
10
  const BUILD_LOG_DRAIN_TIMEOUT_MS = 12e4;
10
11
  function printable(value) {
@@ -81,11 +82,16 @@ function outputMutation(result, args) {
81
82
  if (args.json || result.ok === false || result.partial === true || result.complete === false || result.error || result.operationStatus && result.operationStatus !== "completed" || configuration?.status && configuration.status !== "ready" && configuration.status !== "disabled" || project?.state === "reconciling" || project?.state === "error" || project?.last_error) return;
82
83
  printSuccess(`Platform ${args.group} ${args.action} completed.`);
83
84
  }
84
- function outputLogs(result, json) {
85
+ function outputLogs(result, json, state = {}) {
85
86
  if (json) {
86
87
  output(result, true);
87
88
  return;
88
89
  }
90
+ const minimal = result.runtimeLogs === "minimal";
91
+ if (minimal && !state.runtimeLogsNoted) {
92
+ state.runtimeLogsNoted = true;
93
+ console.log(dim(MINIMAL_RUNTIME_LOGS_NOTE));
94
+ }
89
95
  if (Array.isArray(result.lines)) {
90
96
  for (const entry of result.lines) if (entry && typeof entry === "object") {
91
97
  const line = entry;
@@ -100,15 +106,26 @@ function outputLogs(result, json) {
100
106
  continue;
101
107
  }
102
108
  const row = entry;
103
- console.log(`${printable(row.timestamp ?? row.ts)} ${printable(row.method)} ${printable(row.url)} ${printable(row.status ?? row.statusCode ?? row.outcome)}`);
109
+ const parts = [
110
+ printable(row.timestamp ?? row.ts),
111
+ printable(row.method),
112
+ printable(row.url),
113
+ printable(row.status ?? row.statusCode ?? row.outcome)
114
+ ];
115
+ console.log((minimal ? parts.filter((part) => part !== "") : parts).join(" "));
104
116
  if (Array.isArray(row.logs)) for (const log of row.logs) if (log && typeof log === "object") {
105
117
  const record = log;
106
- console.log(` ${record.level ? `[${printable(record.level)}] ` : ""}${printable(record.message ?? log)}`);
118
+ const level = record.level ? `[${printable(record.level)}] ` : "";
119
+ if (minimal && Array.isArray(record.message) && record.message.length === 0) console.log(` ${level.trimEnd()}`);
120
+ else console.log(` ${level}${printable(record.message ?? log)}`);
107
121
  } else console.log(` ${printable(log)}`);
108
122
  if (Array.isArray(row.exceptions)) for (const exception of row.exceptions) if (exception && typeof exception === "object") {
109
123
  const record = exception;
110
- const name = record.name ? `${printable(record.name)}: ` : "";
111
- console.log(` ${name}${printable(record.message ?? exception)}`);
124
+ if (minimal && record.message === "" && record.name) console.log(` ${printable(record.name)}`);
125
+ else {
126
+ const name = record.name ? `${printable(record.name)}: ` : "";
127
+ console.log(` ${name}${printable(record.message ?? exception)}`);
128
+ }
112
129
  } else console.log(` ${printable(exception)}`);
113
130
  }
114
131
  if (result.nextCursor) console.log(`Next cursor: ${printable(result.nextCursor)}`);
@@ -163,9 +180,9 @@ async function runAuth(origin, args) {
163
180
  if (args.action === "login" || args.action === "token" && args.tokenStdin) {
164
181
  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
182
  const apiToken = args.tokenStdin ? await readOperatorApiTokenStdin() : await (async () => {
166
- const { discoverPlatform } = await import("./platform-cmd-CV8NxIIn.mjs");
167
- const { selectPlatformLoginMethod } = await import("./login-BAPmYnb7.mjs");
168
- const { runPlatformLogin } = await import("./auth-Cbqi1iVX.mjs");
183
+ const { discoverPlatform } = await import("./platform-cmd-DpCHawGF.mjs");
184
+ const { selectPlatformLoginMethod } = await import("./login-BpbYeu-n.mjs");
185
+ const { runPlatformLogin } = await import("./auth-CL-p_rqV.mjs");
169
186
  return runPlatformLogin(origin, (await selectPlatformLoginMethod(await discoverPlatform(origin), args.provider)).id, (url) => process.stderr.write(`Sign in at ${url}\n`));
170
187
  })();
171
188
  const session = await exchangeOperatorSession(origin, apiToken);
@@ -230,6 +247,7 @@ async function followOperatorLogs(client, args, signal, pollIntervalMs = 2e3) {
230
247
  let previousRuntimeRows = /* @__PURE__ */ new Map();
231
248
  let currentRuntimeRows = /* @__PURE__ */ new Map();
232
249
  let currentRuntimeRowCount = 0;
250
+ const outputState = {};
233
251
  try {
234
252
  while (!combined.aborted) {
235
253
  const result = await client.request(args.path, {
@@ -252,7 +270,7 @@ async function followOperatorLogs(client, args, signal, pollIntervalMs = 2e3) {
252
270
  data
253
271
  };
254
272
  }
255
- outputLogs(visibleResult, args.json);
273
+ outputLogs(visibleResult, args.json, outputState);
256
274
  if (args.group === "build") {
257
275
  if (typeof result.lastSeq !== "number" || !Number.isSafeInteger(result.lastSeq) || result.lastSeq < Number(query.since ?? 0)) throw new OperatorClientError("Build log response has an invalid cursor.", "invalid_response");
258
276
  const previousSeq = Number(query.since ?? 0);
@@ -344,7 +362,7 @@ async function migrateDeploymentAssets(client, origin, args) {
344
362
  }
345
363
  async function runOperatorCommand(args) {
346
364
  if (!args.action) {
347
- const { printHelpPage } = await import("./help-qOZr3wng.mjs");
365
+ const { printHelpPage } = await import("./help-Ba8Dq5-r.mjs");
348
366
  printHelpPage(["platform", args.group]);
349
367
  return;
350
368
  }
@@ -402,5 +420,4 @@ async function runOperatorCommand(args) {
402
420
  if (result.allOk === false) process.exitCode = 1;
403
421
  }
404
422
  }
405
- //#endregion
406
423
  export { runOperatorCommand as a, humanLines as i, confirmOperatorMutation as n, followOperatorLogs as r, BUILD_LOG_DRAIN_TIMEOUT_MS as t };
@@ -0,0 +1 @@
1
+ export { a as runOperatorCommand } from "./operator-cmd-BUqsdk2K.mjs";
@@ -1,9 +1,9 @@
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";
1
+ import { n as __toESM } from "./rolldown-runtime-uD8oG6U2.mjs";
2
+ import { t as require_picocolors } from "./picocolors-D1NxSLw-.mjs";
3
+ import { B as note$1, H as outro, L as log, P as isCI, nt as settings, q as spinner } from "./dist-D23AAMxT.mjs";
4
4
  import { stripVTControlCharacters } from "node:util";
5
5
  import terminalLink from "terminal-link";
6
- //#region src/cli/output.ts
6
+ // src/cli/output.ts
7
7
  var import_picocolors = /* @__PURE__ */ __toESM(require_picocolors(), 1);
8
8
  /** Keep the destination visible when the terminal cannot render a named hyperlink. */
9
9
  function formatLink(text, url) {
@@ -170,5 +170,4 @@ function errorStackFrames(error) {
170
170
  const frames = stack === header ? "" : stack.startsWith(`${header}\n`) ? stack.slice(header.length + 1) : stack;
171
171
  return frames.trimEnd() ? frames.trimEnd().split("\n") : [];
172
172
  }
173
- //#endregion
174
173
  export { tablePrefix as _, errorStackFrames as a, formatRelativeTime as c, helpLine as d, import_picocolors as f, sectionTitle as g, sanitizeTerminalText as h, dim as i, formatUrl as l, printSuccess as m, cliCommandName as n, formatCount as o, note as p, createSpinner as r, formatLink as s, categoryTitle as t, getErrorMessage as u };
@@ -0,0 +1 @@
1
+ export { m as printSuccess } from "./output-BCdLioKP.mjs";
@@ -1,6 +1,6 @@
1
- import { a as join, n as dirname } from "./dist-ipQi0Q8y.mjs";
1
+ import { a as join, n as dirname } from "./dist-DMYe8CZJ.mjs";
2
2
  import { existsSync, readFileSync } from "node:fs";
3
- //#region src/shared/package-json.ts
3
+ // src/shared/package-json.ts
4
4
  const DEFAULT_DEPENDENCY_FIELDS = ["dependencies", "devDependencies"];
5
5
  function isPackageJson(value) {
6
6
  return typeof value === "object" && value !== null && !Array.isArray(value);
@@ -40,5 +40,4 @@ function getPackageDependencies(packageJson, fields = DEFAULT_DEPENDENCY_FIELDS)
40
40
  function hasPackageDependency(packageJson, packageName, fields) {
41
41
  return packageName in getPackageDependencies(packageJson, fields);
42
42
  }
43
- //#endregion
44
43
  export { readPackageJson as i, hasPackageDependency as n, readNearestPackageJson as r, getPackageDependencies as t };