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,15 +1,16 @@
1
- import { a as join, c as resolve, n as dirname } from "./dist-ipQi0Q8y.mjs";
2
- import { t as writeFileAtomic } from "./atomic-write-Dq6R0BPN.mjs";
3
- import { S as writePendingInstallationSecrets, a as latestPlatformWorkerCutoverGeneration, c as normalizePlatformApiUrl, d as platformRegistryDirectory, f as platformWorkerSecretUpdateIntentState, h as readPendingInstallationSecrets, m as readInstallationRecoverySecrets, n as assertPlatformInstallationSlugAvailable, o as listInstallationManifests, p as promoteInstallationSecrets, t as acquirePlatformLifecycleLock, v as resolveInstallationManifest, x as writeInstallationManifest, y as savePlatformConnection } from "./platform-registry-B9mWX9LO.mjs";
4
- import { t as cfAccessHeaders } from "./cf-access-BM9G0lhO.mjs";
5
- import { t as ensurePlatformAccessToken } from "./cf-access-CWP4avfP.mjs";
6
- import { A as confirm, H as outro, K as select, L as log, U as password, X as text$1, tt as isCancel, z as multiselect } from "./dist-Cor9XGoz.mjs";
7
- import { f as import_picocolors, l as formatUrl, m as printSuccess, n as cliCommandName, p as note, r as createSpinner, u as getErrorMessage } from "./output-BpgYODYx.mjs";
8
- import { l as resolveCloudflareOperationArgv } from "./cloudflare-process-8jEYIeim.mjs";
9
- import { o as createDefaultRunWrangler, v as resolvePinnedApiBaseUrl } from "./provision-DztLJ97X.mjs";
10
- import { t as parsePlatformArgs } from "./platform-args-BMD2gjc_.mjs";
11
- import { o as runCloudflareAuthCommand } from "./cloudflare-auth-DyD_kVFr.mjs";
12
- import { a as platformManagementSetupPage, c as platformSetupLink, i as platformInstallCommandArguments, l as platformSetupPages, n as formatPlatformSetupPlan, o as platformPromptAnswer, r as openPlatformSetupPage, s as platformSetupFieldHelp, t as formatPlatformInstallCommand } from "./platform-setup-Ca53gtt0.mjs";
1
+ import { a as join, c as resolve, n as dirname } from "./dist-DMYe8CZJ.mjs";
2
+ import { t as writeFileAtomic } from "./atomic-write-DA6eD1Kp.mjs";
3
+ import { S as writePendingInstallationSecrets, a as latestPlatformWorkerCutoverGeneration, c as normalizePlatformApiUrl, d as platformRegistryDirectory, f as platformWorkerSecretUpdateIntentState, h as readPendingInstallationSecrets, m as readInstallationRecoverySecrets, n as assertPlatformInstallationSlugAvailable, o as listInstallationManifests, p as promoteInstallationSecrets, t as acquirePlatformLifecycleLock, v as resolveInstallationManifest, x as writeInstallationManifest, y as savePlatformConnection } from "./platform-registry-DZ_2Xuqd.mjs";
4
+ import { t as cfAccessHeaders } from "./cf-access-pejlJmuy.mjs";
5
+ import { t as ensurePlatformAccessToken } from "./cf-access-BmBT2h8_.mjs";
6
+ import { A as confirm, H as outro, K as select, L as log, U as password, X as text$1, tt as isCancel, z as multiselect } from "./dist-D23AAMxT.mjs";
7
+ import { f as import_picocolors, l as formatUrl, m as printSuccess, n as cliCommandName, p as note, r as createSpinner, u as getErrorMessage } from "./output-BCdLioKP.mjs";
8
+ import { l as resolveCloudflareOperationArgv } from "./cloudflare-process-DjJ638A-.mjs";
9
+ import { o as createDefaultRunWrangler, v as resolvePinnedApiBaseUrl } from "./provision-BbCzpbXs.mjs";
10
+ import { t as parsePlatformArgs } from "./platform-args-Cx1M-7bq.mjs";
11
+ import { o as runCloudflareAuthCommand } from "./cloudflare-auth-CEu-1Ps_.mjs";
12
+ import { i as updateProjectWorkerRuntimeLogs, n as assertPlatformRuntimeLogsSupported, r as shouldUpdateProjectWorkerRuntimeLogs } from "./platform-runtime-logs-CdJGnk3f.mjs";
13
+ import { a as platformManagementSetupPage, c as platformSetupLink, d as planWritesDns, i as platformInstallCommandArguments, l as platformSetupPages, n as formatPlatformSetupPlan, o as platformPromptAnswer, r as openPlatformSetupPage, s as platformSetupFieldHelp, t as formatPlatformInstallCommand, u as planCreatesZone } from "./platform-setup-Vw1AaUN8.mjs";
13
14
  import { copyFileSync, cpSync, existsSync, lstatSync, mkdirSync, mkdtempSync, readFileSync, readdirSync, rmSync, writeFileSync } from "node:fs";
14
15
  import { fileURLToPath } from "node:url";
15
16
  import { isRecord } from "@void/deploy-core";
@@ -23,7 +24,7 @@ import { setTimeout as setTimeout$1 } from "node:timers/promises";
23
24
  import { readFile } from "node:fs/promises";
24
25
  import { PLATFORM_ADMIN_ASSETS_DIRECTORY, platformDatabaseSchemaDigest, resolvePlatformRuntime } from "@void/platform/installer";
25
26
  import { request as request$1 } from "node:https";
26
- //#region src/cli/platform-cloudflare.ts
27
+ // src/cli/platform-cloudflare.ts
27
28
  var PlatformCloudflareApiError = class extends Error {
28
29
  status;
29
30
  requestPath;
@@ -161,7 +162,7 @@ var PlatformCloudflareClient = class PlatformCloudflareClient {
161
162
  headers: {
162
163
  Accept: "application/json",
163
164
  Authorization: `Bearer ${this.#token}`,
164
- ...init?.body ? { "Content-Type": "application/json" } : {},
165
+ ...typeof init?.body === "string" ? { "Content-Type": "application/json" } : {},
165
166
  ...init?.headers
166
167
  },
167
168
  signal: init?.signal ?? AbortSignal.timeout(3e4),
@@ -733,6 +734,15 @@ var PlatformCloudflareClient = class PlatformCloudflareClient {
733
734
  async listDispatchNamespaceScripts(accountId, namespace) {
734
735
  return (await this.request(`/accounts/${encodeURIComponent(accountId)}/workers/dispatch/namespaces/${encodeURIComponent(namespace)}/scripts`)).map((entry) => requiredString(entry.id, "Dispatch namespace script name"));
735
736
  }
737
+ /** Change settings of one namespace script. Omitted fields, such as bindings, are kept. */
738
+ async patchDispatchNamespaceScriptSettings(accountId, namespace, scriptName, settings) {
739
+ const body = new FormData();
740
+ body.set("settings", new Blob([JSON.stringify(settings)], { type: "application/json" }), "settings.json");
741
+ await this.request(`/accounts/${encodeURIComponent(accountId)}/workers/dispatch/namespaces/${encodeURIComponent(namespace)}/scripts/${encodeURIComponent(scriptName)}/settings`, {
742
+ method: "PATCH",
743
+ body
744
+ });
745
+ }
736
746
  async deleteDispatchNamespaceScript(accountId, namespace, scriptName) {
737
747
  await this.#deleteIfPresent(`/accounts/${encodeURIComponent(accountId)}/workers/dispatch/namespaces/${encodeURIComponent(namespace)}/scripts/${encodeURIComponent(scriptName)}`);
738
748
  }
@@ -936,8 +946,7 @@ function parseHyperdriveConfig(value) {
936
946
  }
937
947
  };
938
948
  }
939
- //#endregion
940
- //#region src/cli/platform-access-provision.ts
949
+ // src/cli/platform-access-provision.ts
941
950
  function object(value, name) {
942
951
  if (!value || typeof value !== "object" || Array.isArray(value)) throw new Error(`platform: Invalid ${name} response from Cloudflare Access.`);
943
952
  return value;
@@ -1355,8 +1364,7 @@ async function verifyPlatformAccessApplication(client, input, app, type, machine
1355
1364
  }
1356
1365
  if (machineId && !currentPolicies.some((policy) => policy.decision === "non_identity")) throw new Error("platform: The platform service token is not admitted by Access.");
1357
1366
  }
1358
- //#endregion
1359
- //#region src/cli/platform-access-setup.ts
1367
+ // src/cli/platform-access-setup.ts
1360
1368
  function accessSetupGuide() {
1361
1369
  return platformSetupLink({
1362
1370
  title: "Setup guide and required permissions",
@@ -1744,8 +1752,7 @@ async function preparePlatformAccessSetup(input) {
1744
1752
  }
1745
1753
  return result;
1746
1754
  }
1747
- //#endregion
1748
- //#region src/cli/platform-auth.ts
1755
+ // src/cli/platform-auth.ts
1749
1756
  /** Use the selected credential for read-only checks before taking lifecycle locks. */
1750
1757
  async function verifyPlatformCloudflareCredential(client, input) {
1751
1758
  const source = input.source === "saved" ? "saved management token" : input.source === "environment" ? "environment API token" : "Cloudflare browser login";
@@ -1797,12 +1804,6 @@ function assertPlatformOperatorCredentialCanApplyPlan(credential, plan, access)
1797
1804
  function platformOperatorNeedsManagementToken(credential, plan, access) {
1798
1805
  return credential.source === "oauth" && (!!access || planCreatesZone(plan) || planWritesDns(plan));
1799
1806
  }
1800
- function planCreatesZone(plan) {
1801
- return plan.actions.some((action) => action.kind === "zone" && action.action === "create");
1802
- }
1803
- function planWritesDns(plan) {
1804
- return plan.actions.some((action) => action.kind === "dns-record" && action.action !== "reuse");
1805
- }
1806
1807
  async function resolvePlatformCloudflareCredential(dependencies = {}) {
1807
1808
  const { credential } = await resolvePlatformCloudflareCredentialWithInput(async () => void 0, dependencies);
1808
1809
  return credential;
@@ -1875,8 +1876,7 @@ async function readWranglerOAuthCredential(runWrangler) {
1875
1876
  token: parsed.token.trim()
1876
1877
  };
1877
1878
  }
1878
- //#endregion
1879
- //#region src/cli/platform-app-access.ts
1879
+ // src/cli/platform-app-access.ts
1880
1880
  async function selectInstallationAppAccess(authentication, recorded, choice) {
1881
1881
  const config = authentication.file?.appAccess;
1882
1882
  if (config && (typeof config !== "object" || Array.isArray(config) || "apiToken" in config || config.tokenEnv !== void 0 && (typeof config.tokenEnv !== "string" || !/^[A-Z_][A-Z0-9_]*$/.test(config.tokenEnv)))) throw new Error("platform: App access configuration must use tokenEnv; plaintext tokens are not accepted.");
@@ -2131,8 +2131,7 @@ async function turnOffInstalledProjectZeroTrust(input, fetcher = fetch) {
2131
2131
  if (!result.turnedOff) throw new Error("platform: Project Zero Trust is still turning off. Rerun the uninstall.");
2132
2132
  if (result.usersExist) throw new Error("platform: A platform user signed in while project Zero Trust was turning off, so the uninstall stopped. Project Zero Trust is now off and the platform still runs. To keep the platform, an administrator can turn project Zero Trust back on in Admin → Zero Trust or with `void platform zero-trust configure`. To remove it, run the uninstall again.");
2133
2133
  }
2134
- //#endregion
2135
- //#region src/cli/platform-auth-bootstrap.ts
2134
+ // src/cli/platform-auth-bootstrap.ts
2136
2135
  /** Checkpoint a replacement before submission so an interrupted response is safely replayable. */
2137
2136
  async function resumeInstalledPlatformAuthentication(input, initialize = initializeInstalledPlatformAuthentication) {
2138
2137
  const result = await initialize(input.apiUrl, input.installationId, input.setupToken, input.setupJson);
@@ -2174,8 +2173,7 @@ async function initializeInstalledPlatformAuthentication(apiUrl, installationId,
2174
2173
  expiresAt: typeof result.expiresAt === "string" ? result.expiresAt : null
2175
2174
  };
2176
2175
  }
2177
- //#endregion
2178
- //#region src/cli/platform-auth-database.ts
2176
+ // src/cli/platform-auth-database.ts
2179
2177
  /** Restore the selected external origin before an adoption receipt exists. */
2180
2178
  function readPlatformHyperdriveSelection(checkpoint) {
2181
2179
  if (!checkpoint?.externalHyperdriveJson) return;
@@ -2233,8 +2231,7 @@ async function verifyPlatformAuthenticationDatabase(client, accountId, resource,
2233
2231
  await client.disableHyperdriveCaching(accountId, resource.id);
2234
2232
  if ((await read()).cachingDisabled !== true) throw new Error("platform: Could not verify uncached Hyperdrive reads. Authentication setup remains closed.");
2235
2233
  }
2236
- //#endregion
2237
- //#region src/cli/platform-installer-process.ts
2234
+ // src/cli/platform-installer-process.ts
2238
2235
  function platformWorkerCommandRunner(accountId, cwd, runner) {
2239
2236
  return (operation, options) => runner(operation, accountId, cwd, options.capture);
2240
2237
  }
@@ -2390,8 +2387,7 @@ async function withConditionalPlatformWorkerCreate(accountId, workerName, operat
2390
2387
  async function runPlatformWranglerForConditionalCreate(operation, accountId, cwd, capture, workerName, upstreamApiBaseUrl, apiToken) {
2391
2388
  return withConditionalPlatformWorkerCreate(accountId, workerName, (apiBaseUrl) => runPlatformWranglerAtApiBase(operation, accountId, cwd, capture, apiBaseUrl, false, apiToken), upstreamApiBaseUrl);
2392
2389
  }
2393
- //#endregion
2394
- //#region src/cli/platform-plan.ts
2390
+ // src/cli/platform-plan.ts
2395
2391
  async function createPlatformInstallPlan(client, input, existing, options) {
2396
2392
  const dashboardUrl = input.dashboardUrl !== void 0 ? normalizePlatformDashboardUrl(input.dashboardUrl) : existing ? existing.deployment.controlPlane.dashboardUrl ?? (existing.endpoints.dashboardUrl ? normalizePlatformDashboardUrl(existing.endpoints.dashboardUrl) : null) ?? platformDashboardUrl(existing.deployment) : null;
2397
2393
  const account = resolveAccount(await client.listAccounts(), input.accountId);
@@ -2433,6 +2429,7 @@ async function createPlatformInstallPlan(client, input, existing, options) {
2433
2429
  if (capabilities.customDomains && (testing || !input.dedicatedZone)) throw new Error("platform: Custom domains need a dedicated application zone. Install with a domain and --dedicated-zone.");
2434
2430
  if (capabilities.email && options?.includeEmailGateway !== false && !enableEmail) throw new Error("platform: Email-enabled installations require VOID_EMAIL_SENDER_DOMAIN and VOID_EMAIL_SHARED_ZONE_ID before deploying this runtime.");
2435
2431
  if (input.appAccess && input.appAccess !== "public" && input.controlPlaneDomain.toLowerCase().replace(/\.$/, "").endsWith(`.${input.applicationDomain.toLowerCase()}`)) throw new Error("platform: The API hostname must be outside the app Access wildcard. Use the application domain apex or workers.dev for the API, then plan again.");
2432
+ const runtimeLogs = input.runtimeLogs === void 0 ? existing?.deployment.runtimeLogs : input.runtimeLogs === "minimal" ? "minimal" : void 0;
2436
2433
  const deployment = createPlatformDeploymentManifest({
2437
2434
  authentication: input.authentication ?? existing?.deployment.authentication,
2438
2435
  appAccess: input.appAccess ?? existing?.deployment.appAccess,
@@ -2454,7 +2451,8 @@ async function createPlatformInstallPlan(client, input, existing, options) {
2454
2451
  ...emailSharedZoneId ? { emailSharedZoneId } : {},
2455
2452
  ...normalizedEmailSenderDomain ? { emailSenderDomain: normalizedEmailSenderDomain } : {},
2456
2453
  installationSlug,
2457
- resources: existing?.deployment.resources ?? createPlatformResourceNames(installationSlug)
2454
+ resources: existing?.deployment.resources ?? createPlatformResourceNames(installationSlug),
2455
+ ...runtimeLogs ? { runtimeLogs } : {}
2458
2456
  });
2459
2457
  const { emailSharedZoneId: configuredEmailZone, emailSenderDomain: configuredSenderDomain, ...deploymentWithoutEmailZone } = deployment;
2460
2458
  const { emailSharedZoneId: recordedEmailZone, emailSenderDomain: recordedSenderDomain, ...existingWithoutEmailZone } = existing?.deployment ?? deployment;
@@ -2480,14 +2478,19 @@ async function createPlatformInstallPlan(client, input, existing, options) {
2480
2478
  customDomains: true
2481
2479
  }
2482
2480
  } : existingWithDashboard;
2483
- const comparableExistingWithoutEmailZone = existing && deployment.capabilities.email && !existing.deployment.capabilities.email ? {
2481
+ const existingWithEmail = existing && deployment.capabilities.email && !existing.deployment.capabilities.email ? {
2484
2482
  ...existingWithCustomDomains,
2485
2483
  capabilities: {
2486
2484
  ...existingWithCustomDomains.capabilities,
2487
2485
  email: true
2488
2486
  }
2489
2487
  } : existingWithCustomDomains;
2490
- if (existing && (JSON.stringify(comparableExistingWithoutEmailZone) !== JSON.stringify(deploymentWithoutEmailZone) || recordedEmailZone !== void 0 && recordedEmailZone !== configuredEmailZone || recordedSenderDomain !== void 0 && recordedSenderDomain !== configuredSenderDomain)) throw new Error(`platform: --resume inputs do not match installation ${existing.id}. Use its recorded configuration.`);
2488
+ const comparable = (value) => {
2489
+ if (!options?.allowRuntimeLogsChange) return JSON.stringify(value);
2490
+ const { runtimeLogs: _runtimeLogs, schemaVersion: _schemaVersion, ...rest } = value;
2491
+ return JSON.stringify(rest);
2492
+ };
2493
+ if (existing && (comparable(existingWithEmail) !== comparable(deploymentWithoutEmailZone) || recordedEmailZone !== void 0 && recordedEmailZone !== configuredEmailZone || recordedSenderDomain !== void 0 && recordedSenderDomain !== configuredSenderDomain)) throw new Error(`platform: --resume inputs do not match installation ${existing.id}. Use its recorded configuration.`);
2491
2494
  const names = deployment.resources;
2492
2495
  const wildcardHostname = `*.${deployment.application.baseDomain}`;
2493
2496
  const zone = testing ? null : await client.findZone(account.id, deployment.application.zoneName);
@@ -3067,7 +3070,10 @@ async function readRemoteOwnership(client, accountId, routingNamespaces, existin
3067
3070
  }
3068
3071
  return null;
3069
3072
  }
3070
- function formatPlatformInstallPlan(plan) {
3073
+ /** `previous` is the installed deployment, so a changed setting shows what it was. */
3074
+ function formatPlatformInstallPlan(plan, previous) {
3075
+ const runtimeLogs = plan.deployment.runtimeLogs ?? "full";
3076
+ const previousRuntimeLogs = previous ? previous.runtimeLogs ?? "full" : runtimeLogs;
3071
3077
  const lines = [
3072
3078
  `${import_picocolors.default.bold(`${plan.deployment.displayName} in ${plan.account.name}`)}`,
3073
3079
  `${import_picocolors.default.bold("Account:")} ${plan.account.id}`,
@@ -3082,6 +3088,7 @@ function formatPlatformInstallPlan(plan) {
3082
3088
  platform: "Same as platform Access policy",
3083
3089
  custom: "Selected Access policy"
3084
3090
  }[plan.deployment.appAccess]}`] : [],
3091
+ ...runtimeLogs !== previousRuntimeLogs ? [`${import_picocolors.default.bold("Runtime logs:")} ${runtimeLogs} (was ${previousRuntimeLogs})`] : plan.deployment.runtimeLogs ? [`${import_picocolors.default.bold("Runtime logs:")} ${plan.deployment.runtimeLogs}`] : [],
3085
3092
  `${import_picocolors.default.bold("Login callback:")} ${plan.apiUrl}/auth/callback`,
3086
3093
  `${import_picocolors.default.bold("Database:")} ${plan.externalHyperdrive?.database || "PostgreSQL"} via Hyperdrive ${plan.deployment.resources.hyperdrive}`,
3087
3094
  ""
@@ -3089,8 +3096,7 @@ function formatPlatformInstallPlan(plan) {
3089
3096
  for (const action of plan.actions) lines.push(`${action.action.padEnd(6)} ${action.kind.padEnd(19)} ${action.name}`);
3090
3097
  return lines.join("\n");
3091
3098
  }
3092
- //#endregion
3093
- //#region src/cli/platform-traffic.ts
3099
+ // src/cli/platform-traffic.ts
3094
3100
  function platformManagedWorkerTraffic(deployment, workers) {
3095
3101
  const includes = (worker) => workers === void 0 || workers.has(worker);
3096
3102
  const names = deployment.resources;
@@ -3166,8 +3172,7 @@ function recordPlatformWorkerTraffic(manifest, workerName, inventory, updatedAt)
3166
3172
  }
3167
3173
  return next;
3168
3174
  }
3169
- //#endregion
3170
- //#region src/cli/platform-installer-resources.ts
3175
+ // src/cli/platform-installer-resources.ts
3171
3176
  async function reconcilePlatformInstallationResources(manifest, plan, secrets, zoneId, externalHyperdriveOriginHash, dependencies, now, writeRemoteInstallationCheckpoint, onManifestChange) {
3172
3177
  for (const action of plan.actions.filter((entry) => entry.key !== "routing-kv" && entry.kind !== "zone" && entry.kind !== "worker")) {
3173
3178
  const retainedManifest = retainReplacedInstallationResource(manifest, action, now());
@@ -3413,8 +3418,7 @@ function requireId(ids, key) {
3413
3418
  if (!id) throw new Error(`platform: Installation manifest is missing ${key}.`);
3414
3419
  return id;
3415
3420
  }
3416
- //#endregion
3417
- //#region src/cli/platform-installer-types.ts
3421
+ // src/cli/platform-installer-types.ts
3418
3422
  const PLATFORM_WORKER_SECRET_UPDATE_NAMES = [
3419
3423
  "CF_API_TOKEN",
3420
3424
  "EMAIL_SIGNING_SECRET",
@@ -3446,8 +3450,7 @@ var PlatformWorkerRecoveryIncompleteError = class extends Error {
3446
3450
  this.name = "PlatformWorkerRecoveryIncompleteError";
3447
3451
  }
3448
3452
  };
3449
- //#endregion
3450
- //#region src/cli/platform-installer-secrets.ts
3453
+ // src/cli/platform-installer-secrets.ts
3451
3454
  function createPlatformInstallationSecrets(input) {
3452
3455
  const checkpoint = input.checkpoint ?? {};
3453
3456
  const required = (value, name) => {
@@ -3746,8 +3749,7 @@ function assertRequiredPlatformSecrets(plan, manifest, secrets, authenticationWi
3746
3749
  function createPlatformHealthProbeToken(ownershipNonce) {
3747
3750
  return createHash("sha256").update("void-platform-health-probe:v1\0").update(ownershipNonce).digest("base64url");
3748
3751
  }
3749
- //#endregion
3750
- //#region src/cli/platform-installer-errors.ts
3752
+ // src/cli/platform-installer-errors.ts
3751
3753
  const ANALYTICS_ENGINE_NOT_ENABLED = 10089;
3752
3754
  const UPLOAD_CONFLICT = "Aborting the upload operation because of conflicts";
3753
3755
  /** Why the Cloudflare CLI stopped an upload, and what to do. Null for other failures. */
@@ -3788,8 +3790,7 @@ function assertPlatformTriggerStabilization(result, workerName, targetVersionId,
3788
3790
  if (!result.ok) throw new Error(`platform: Failed to ${operation} triggers for ${workerName} (${result.reason}).`);
3789
3791
  if (!result.targetOwnsTraffic) throw new Error(`platform: Worker ${workerName} was superseded by ${result.activeVersionId} while publishing ${targetVersionId}; its active trigger state was repaired.`);
3790
3792
  }
3791
- //#endregion
3792
- //#region src/cli/platform-installer-inspection.ts
3793
+ // src/cli/platform-installer-inspection.ts
3793
3794
  var PlatformWorkerOwnershipError = class extends Error {};
3794
3795
  async function readActivePlatformWorkerVersion(configPath, accountId, workerName, runner = runPlatformWrangler) {
3795
3796
  const result = await runner({
@@ -3952,8 +3953,7 @@ async function readPlatformWorkerVersionSnapshot(configPath, accountId, workerNa
3952
3953
  versionId
3953
3954
  };
3954
3955
  }
3955
- //#endregion
3956
- //#region src/cli/platform-installer-cutover.ts
3956
+ // src/cli/platform-installer-cutover.ts
3957
3957
  function withoutCompletedPlatformWorkerMigrations(config, activeMigrationTag) {
3958
3958
  const target = (Array.isArray(config.migrations) ? config.migrations : []).at(-1);
3959
3959
  if (activeMigrationTag === null || !target || typeof target !== "object" || Array.isArray(target) || target.tag !== activeMigrationTag) return config;
@@ -4145,8 +4145,7 @@ function resolvePlatformPreviousTriggerConfig(versionSnapshot, configuredSnapsho
4145
4145
  workers_dev: configuredSnapshot.workers_dev
4146
4146
  };
4147
4147
  }
4148
- //#endregion
4149
- //#region src/cli/platform-trigger-proof.ts
4148
+ // src/cli/platform-trigger-proof.ts
4150
4149
  function record(value) {
4151
4150
  return isRecord(value) ? value : null;
4152
4151
  }
@@ -4235,8 +4234,7 @@ async function platformWorkerLiveTriggersMatch(options) {
4235
4234
  return false;
4236
4235
  }
4237
4236
  }
4238
- //#endregion
4239
- //#region src/cli/platform-installer-workers.ts
4237
+ // src/cli/platform-installer-workers.ts
4240
4238
  function platformWorkerResourceKey(key) {
4241
4239
  return key === "emailGateway" ? "email-gateway-worker" : `${key}-worker`;
4242
4240
  }
@@ -4862,8 +4860,7 @@ async function restorePlatformWorkerDeployment(input) {
4862
4860
  const after = await readPlatformWorkerDeployments(input.configPath, input.accountId, input.workerName, input.runner);
4863
4861
  if (!samePlatformWorkerTraffic(after[0], input.restoration) || after[1]?.id !== input.expectedActiveDeploymentId) throw new Error(`Worker ${input.workerName} deployment restoration was superseded or did not restore deployment ${input.restoration.id}.`);
4864
4862
  }
4865
- //#endregion
4866
- //#region src/cli/platform-install-workers.ts
4863
+ // src/cli/platform-install-workers.ts
4867
4864
  function platformWorkerAction(workerActions, key) {
4868
4865
  return workerActions.find((entry) => entry.key === platformWorkerResourceKey(key));
4869
4866
  }
@@ -5040,8 +5037,7 @@ async function uploadInstallationWorkers(input) {
5040
5037
  if (firstFailure) throw firstFailure.reason;
5041
5038
  } else for (const key of workerKeys) await deployOneWorker(key);
5042
5039
  }
5043
- //#endregion
5044
- //#region src/cli/platform-installer-health.ts
5040
+ // src/cli/platform-installer-health.ts
5045
5041
  var PlatformAccessBlockedError = class extends Error {
5046
5042
  constructor(url, context) {
5047
5043
  super(context?.accessProtected ? [
@@ -5259,8 +5255,7 @@ async function bootstrapPlatformSharedEmail(apiUrl, healthProbeToken, fetcher =
5259
5255
  }
5260
5256
  return operationId;
5261
5257
  }
5262
- //#endregion
5263
- //#region src/cli/platform-install-activation.ts
5258
+ // src/cli/platform-install-activation.ts
5264
5259
  async function enableInstallationServices(input) {
5265
5260
  const { state, checkpointOperation, requiresStagedCommit, authenticationCutoverCommitted, now, writeRemoteInstallationCheckpoint, dependencies, workerKeys, workerActions, workerDeploymentSecrets, zoneId, enabledConfigs, configs, cloudflareApiBaseUrl, managedRoutes, ids, runPinnedPlatformWrangler, shouldBootstrapSharedEmail, releaseDatabaseLock, version, targetUsageProtocolVersion, healthCheckContext, runtime, runtimeProvenance } = input;
5266
5261
  const { plan, secrets } = state;
@@ -5363,8 +5358,7 @@ async function enableInstallationServices(input) {
5363
5358
  state.manifest = transitionInstallation(state.manifest, "installed", now());
5364
5359
  return { emailOperationId };
5365
5360
  }
5366
- //#endregion
5367
- //#region src/cli/platform-access-health.ts
5361
+ // src/cli/platform-access-health.ts
5368
5362
  /** These reserved endpoints require Void's probe token and cannot serve application traffic. */
5369
5363
  function platformAccessHealthTargets(plan) {
5370
5364
  const destination = `${plan.deployment.application.zoneName ? `${PLATFORM_HEALTH_HOSTNAME_LABEL}.${plan.deployment.application.baseDomain}` : `${plan.deployment.resources.dispatchWorker}.${plan.workersSubdomain}.workers.dev`}/health`;
@@ -5469,8 +5463,7 @@ async function ensurePlatformAccessHealthChecks(input) {
5469
5463
  save();
5470
5464
  }
5471
5465
  }
5472
- //#endregion
5473
- //#region src/cli/platform-access-preflight.ts
5466
+ // src/cli/platform-access-preflight.ts
5474
5467
  /** Recheck live protection without invoking any provisioning or configuration write. */
5475
5468
  async function verifyInstalledPlatformAccessProtection(input) {
5476
5469
  const protection = parsePlatformAccessProtection(input.protection);
@@ -5516,7 +5509,7 @@ async function verifyInstalledPlatformAccessProtection(input) {
5516
5509
  }
5517
5510
  const existingWorkers = input.plan.actions.filter((action) => action.kind === "worker" && action.action === "update").map((action) => action.name);
5518
5511
  if (existingWorkers.length) {
5519
- const { verifyProtectionWorkerOrigins } = await import("./platform-auth-protection-BogLhtHi.mjs");
5512
+ const { verifyProtectionWorkerOrigins } = await import("./platform-auth-protection-KF5Vo-1I.mjs");
5520
5513
  await verifyProtectionWorkerOrigins({
5521
5514
  request: input.client.request.bind(input.client),
5522
5515
  listWorkerDomains: input.client.listWorkerDomains.bind(input.client),
@@ -5524,8 +5517,7 @@ async function verifyInstalledPlatformAccessProtection(input) {
5524
5517
  }, input.manifest, origins, false, { workerNames: existingWorkers });
5525
5518
  }
5526
5519
  }
5527
- //#endregion
5528
- //#region src/cli/platform-install-preparation.ts
5520
+ // src/cli/platform-install-preparation.ts
5529
5521
  function withAuthentication(deployment, authentication) {
5530
5522
  return createPlatformDeploymentManifest({
5531
5523
  ...deployment,
@@ -5723,8 +5715,7 @@ async function prepareInstallationAuthentication(input) {
5723
5715
  }
5724
5716
  }
5725
5717
  }
5726
- //#endregion
5727
- //#region src/cli/platform-installer-runtime.ts
5718
+ // src/cli/platform-installer-runtime.ts
5728
5719
  function loadPlatformRuntime(customRuntimeDirectory) {
5729
5720
  const runtime = resolvePlatformRuntime(customRuntimeDirectory || void 0);
5730
5721
  verifyRuntimeArtifacts(runtime.directory, runtime.manifest);
@@ -5763,8 +5754,7 @@ function verifyPlatformDatabaseArtifacts(runtimeDirectory, database) {
5763
5754
  if (hash(contents) !== migration.sha256) throw new Error(`platform: Runtime database migration failed integrity verification: ${path}.`);
5764
5755
  }
5765
5756
  }
5766
- //#endregion
5767
- //#region src/cli/platform-zero-trust-uninstall.ts
5757
+ // src/cli/platform-zero-trust-uninstall.ts
5768
5758
  /**
5769
5759
  * Uninstall turns off the platform API, and only that API can remove the
5770
5760
  * Cloudflare Access applications project Zero Trust created. The shared
@@ -5962,8 +5952,7 @@ async function assertProjectZeroTrustAllowsUninstall(read, options = {}) {
5962
5952
  DASHBOARD_HINT
5963
5953
  ].join("\n"));
5964
5954
  }
5965
- //#endregion
5966
- //#region src/cli/platform-installer-database.ts
5955
+ // src/cli/platform-installer-database.ts
5967
5956
  async function preparePlatformDatabaseSchema(manifest, runtime, runtimeDirectory, sourcePlatformVersion, hadPriorWorkers, plan, dependencies, releaseDatabaseLock, now, writeRemoteInstallationCheckpoint, onManifestChange) {
5968
5957
  dependencies.onProgress?.("Checking the platform database schema");
5969
5958
  const rollbackDatabase = dependencies.databaseRollbackSource;
@@ -6475,8 +6464,7 @@ async function claimPlatformDatabaseConnection(client, installationId, ownership
6475
6464
  throw error;
6476
6465
  }
6477
6466
  }
6478
- //#endregion
6479
- //#region src/cli/platform-install-provisioning.ts
6467
+ // src/cli/platform-install-provisioning.ts
6480
6468
  async function provisionInstallationServices(input) {
6481
6469
  const { state, now, releaseDatabaseLock, dependencies, writeRemoteInstallationCheckpoint, checkpointOperation, externalHyperdriveOriginHash, runtime, runtimeDirectory, sourcePlatformVersion, hadPriorWorkers } = input;
6482
6470
  const { plan, secrets } = state;
@@ -6581,8 +6569,7 @@ async function provisionInstallationServices(input) {
6581
6569
  entrypoints
6582
6570
  };
6583
6571
  }
6584
- //#endregion
6585
- //#region src/cli/platform-secret-update-authority.ts
6572
+ // src/cli/platform-secret-update-authority.ts
6586
6573
  /**
6587
6574
  * Prevents a host without the encrypted values for an interrupted credential
6588
6575
  * update from carrying an opaque, possibly partial update into another cutover.
@@ -6622,8 +6609,7 @@ function readLatestWorkerGeneration(manifest) {
6622
6609
  function hasCompleteWorkerSecretReplacement(updates, requiresEmailSigningSecret) {
6623
6610
  return PLATFORM_WORKER_SECRET_UPDATE_NAMES.every((name) => name === "EMAIL_SIGNING_SECRET" && !requiresEmailSigningSecret || typeof updates[name] === "string" && updates[name] !== "");
6624
6611
  }
6625
- //#endregion
6626
- //#region src/cli/platform-installer.ts
6612
+ // src/cli/platform-installer.ts
6627
6613
  async function recoverFailedPlatformInstallation(error, state) {
6628
6614
  const { plan, dependencies, workerTrafficGuarded, workerDeploymentCommitted, workerRollbacks, authenticationEnforcementActive, authenticationProtocolTransition, workerCutoverGeneration, previousPublicEndpoints, operationStarted, now, writeRemoteInstallationCheckpoint } = state;
6629
6615
  let { manifest } = state;
@@ -6675,6 +6661,7 @@ async function installPlatform(plan, secrets, existing, dependencies) {
6675
6661
  const runtimeDirectory = resolvedRuntime.directory;
6676
6662
  const runtime = resolvedRuntime.manifest;
6677
6663
  if (plan.deployment.appAccess && runtime.appAccessSetup !== 1) throw new Error("platform: This runtime does not support the installation’s app access setup.");
6664
+ assertPlatformRuntimeLogsSupported(plan.deployment, runtime);
6678
6665
  const hasEmailGatewayArtifact = runtime.artifacts.emailGateway !== void 0;
6679
6666
  if (existing?.steps.some((step) => step.key === "private-previews-initialized:v1") && runtime.privatePreviews !== 1) throw new Error("platform: This installation has private previews. Use a runtime with private preview support.");
6680
6667
  if (runtime.emailProtocolVersion !== 1 && plan.deployment.capabilities.email) throw new Error("platform: This runtime cannot serve enabled platform email without email protocol version 1.");
@@ -7218,8 +7205,7 @@ async function installPlatform(plan, secrets, existing, dependencies) {
7218
7205
  await releaseDatabaseLock();
7219
7206
  }
7220
7207
  }
7221
- //#endregion
7222
- //#region src/cli/platform-install-auth.ts
7208
+ // src/cli/platform-install-auth.ts
7223
7209
  function defaultConnectionId(kind) {
7224
7210
  return kind === "oidc" ? "company" : kind === "cloudflare-access" ? "access" : kind;
7225
7211
  }
@@ -7548,8 +7534,7 @@ async function replacePendingInstallationAuthentication(input) {
7548
7534
  authBootstrapCode
7549
7535
  };
7550
7536
  }
7551
- //#endregion
7552
- //#region src/cli/platform-installer-outside-changes.ts
7537
+ // src/cli/platform-installer-outside-changes.ts
7553
7538
  const OUTSIDE_SOURCES = {
7554
7539
  dash: "changed in the Cloudflare dashboard",
7555
7540
  api: "changed in the Cloudflare API",
@@ -7713,8 +7698,7 @@ async function uploadPlatformWorkerOutsideChanges(configs, input) {
7713
7698
  input.progress?.resume();
7714
7699
  }
7715
7700
  }
7716
- //#endregion
7717
- //#region src/cli/platform-saved-plans.ts
7701
+ // src/cli/platform-saved-plans.ts
7718
7702
  function planId(args) {
7719
7703
  return createHash("sha256").update(JSON.stringify([args.account, args.name])).digest("hex");
7720
7704
  }
@@ -7769,8 +7753,7 @@ function listSavedPlatformInstallPlans(directory = platformRegistryDirectory())
7769
7753
  function removeSavedPlatformInstallPlan(args, directory = platformRegistryDirectory()) {
7770
7754
  rmSync(join(directory, `plan-${planId(args)}.json`), { force: true });
7771
7755
  }
7772
- //#endregion
7773
- //#region src/cli/platform-setup-draft.ts
7756
+ // src/cli/platform-setup-draft.ts
7774
7757
  const STARTED = "credential-setup:v1";
7775
7758
  const COMPLETED = "credential-setup-complete:v1";
7776
7759
  /** Includes interrupted provisioning, but not maintenance of an already deployed platform. */
@@ -7818,8 +7801,7 @@ function completePlatformSetupDraft(manifest) {
7818
7801
  writeInstallationManifest(completed);
7819
7802
  return completed;
7820
7803
  }
7821
- //#endregion
7822
- //#region src/cli/platform-lifecycle.ts
7804
+ // src/cli/platform-lifecycle.ts
7823
7805
  function isPlatformInstallDatabaseBound(checkpoint, manifest) {
7824
7806
  return Boolean(checkpoint?.databaseClaimState === "claimed" || manifest?.resources.some((resource) => resource.state === "ready" && (resource.kind === "hyperdrive" || resource.kind === "worker")) || manifest?.steps.some((step) => step.key.startsWith("database-schema:") || step.key.startsWith("database-migrations:")));
7825
7807
  }
@@ -7838,14 +7820,14 @@ function resolvePlatformInstallDatabaseUrl(checkpoint, manifest = null) {
7838
7820
  }
7839
7821
  async function runPlatformLifecycleCommand(commandArgs) {
7840
7822
  if (commandArgs.subcommand === "domain") {
7841
- const { runPlatformDomainCommand } = await import("./platform-domain-CRvelPGE.mjs");
7823
+ const { runPlatformDomainCommand } = await import("./platform-domain-rWJshybd.mjs");
7842
7824
  await runPlatformDomainCommand(commandArgs);
7843
7825
  return;
7844
7826
  }
7845
7827
  if (commandArgs.subcommand === "discover") {
7846
7828
  const client = new PlatformCloudflareClient((await resolvePlatformCloudflareCredential()).token);
7847
7829
  const accountId = await selectAccount(await readAccounts(client), commandArgs.account);
7848
- const { recoverPlatformInstallations } = await import("./platform-recovery-noaALXnE.mjs");
7830
+ const { recoverPlatformInstallations } = await import("./platform-recovery-DZuZGJtt.mjs");
7849
7831
  const recovered = await recoverPlatformInstallations(client, accountId, void 0, commandArgs.selector);
7850
7832
  if (recovered.length === 0) {
7851
7833
  log.info(`No recoverable Void platform installations were found in ${accountId}.`);
@@ -7856,7 +7838,7 @@ async function runPlatformLifecycleCommand(commandArgs) {
7856
7838
  return;
7857
7839
  }
7858
7840
  if (commandArgs.subcommand !== "install") {
7859
- const { runInstalledPlatformCommand } = await import("./platform-management-lXdgGgAM.mjs");
7841
+ const { runInstalledPlatformCommand } = await import("./platform-management-BfLW0Zlo.mjs");
7860
7842
  await runInstalledPlatformCommand(commandArgs);
7861
7843
  return;
7862
7844
  }
@@ -7884,7 +7866,7 @@ async function runPlatformLifecycleCommand(commandArgs) {
7884
7866
  if (!args.resume && process.stdin.isTTY) {
7885
7867
  const installs = resumableInstalls().filter((manifest) => !args.name || manifest.deployment.installationSlug === normalizeInstallationSlug(args.name));
7886
7868
  const manifests = listInstallationManifests();
7887
- const savedPlans = !args.applicationDomain && !args.workersDev && !args.zone && !args.displayName && !args.hyperdrive && !args.controlPlaneDomain && !args.noControlPlaneDomain && !args.authConfig && !args.loginMethods && !args.runtime && args.accessProtection === void 0 && args.appAccess === void 0 && !args.dedicatedZoneSpecified && args.dashboardUrl === void 0 && !args.customDomains ? listSavedPlatformInstallPlans().filter((saved) => (!args.name || saved.args.name === normalizeInstallationSlug(args.name)) && (!args.account || saved.args.account === args.account || saved.accountName.toLowerCase() === args.account.toLowerCase()) && !manifests.some((manifest) => manifest.status !== "uninstalled" && manifest.account.id === saved.args.account && manifest.deployment.installationSlug === saved.args.name)) : [];
7869
+ const savedPlans = !args.applicationDomain && !args.workersDev && !args.zone && !args.displayName && !args.hyperdrive && !args.controlPlaneDomain && !args.noControlPlaneDomain && !args.authConfig && !args.loginMethods && !args.runtime && args.accessProtection === void 0 && args.appAccess === void 0 && !args.dedicatedZoneSpecified && args.dashboardUrl === void 0 && !args.customDomains && args.runtimeLogs === void 0 ? listSavedPlatformInstallPlans().filter((saved) => (!args.name || saved.args.name === normalizeInstallationSlug(args.name)) && (!args.account || saved.args.account === args.account || saved.accountName.toLowerCase() === args.account.toLowerCase()) && !manifests.some((manifest) => manifest.status !== "uninstalled" && manifest.account.id === saved.args.account && manifest.deployment.installationSlug === saved.args.name)) : [];
7888
7870
  if (installs.length > 0 || savedPlans.length > 0) {
7889
7871
  const choice = await select({
7890
7872
  message: "Continue a previous platform install?",
@@ -8032,7 +8014,7 @@ async function runPlatformLifecycleCommand(commandArgs) {
8032
8014
  progress?.stop("Read the saved installation.");
8033
8015
  progress = void 0;
8034
8016
  if (authoritative) {
8035
- const { selectAuthoritativePlatformManifest } = await import("./platform-management-lXdgGgAM.mjs");
8017
+ const { selectAuthoritativePlatformManifest } = await import("./platform-management-BfLW0Zlo.mjs");
8036
8018
  const selected = selectAuthoritativePlatformManifest(existing, authoritative);
8037
8019
  authoritativeProvisionIntents = true;
8038
8020
  if (!args.plan && JSON.stringify(selected) !== JSON.stringify(existing)) writeInstallationManifest(selected);
@@ -8145,6 +8127,7 @@ async function runPlatformLifecycleCommand(commandArgs) {
8145
8127
  ...process.env.VOID_EMAIL_SHARED_ZONE_ID ? { emailSharedZoneId: process.env.VOID_EMAIL_SHARED_ZONE_ID } : {},
8146
8128
  ...process.env.VOID_EMAIL_SENDER_DOMAIN ? { emailSenderDomain: process.env.VOID_EMAIL_SENDER_DOMAIN } : {},
8147
8129
  installationSlug,
8130
+ ...args.runtimeLogs !== void 0 ? { runtimeLogs: args.runtimeLogs } : {},
8148
8131
  zoneName,
8149
8132
  ...workersDev ? { workersDev: true } : {}
8150
8133
  };
@@ -8156,6 +8139,7 @@ async function runPlatformLifecycleCommand(commandArgs) {
8156
8139
  deploymentExecution: runtime.manifest.deploymentExecution === 1
8157
8140
  };
8158
8141
  let plan = await createPlatformInstallPlan(client, planInput, existing, planOptions);
8142
+ assertPlatformRuntimeLogsSupported(plan.deployment, runtime.manifest);
8159
8143
  const commandOptions = {
8160
8144
  commandName: cliCommandName(),
8161
8145
  accountId,
@@ -8173,6 +8157,7 @@ async function runPlatformLifecycleCommand(commandArgs) {
8173
8157
  authentication: authenticationSelection.authentication,
8174
8158
  hyperdrive: !existing || isPlatformSetupDraft(existing) || externalHyperdrive && !recordedHyperdrive ? externalHyperdrive?.id ?? "create" : void 0,
8175
8159
  runtime: args.runtime,
8160
+ ...!existing && plan.deployment.runtimeLogs ? { runtimeLogs: "minimal" } : {},
8176
8161
  ...existing ? { resumeId: existing.id } : {},
8177
8162
  yes: args.yes || process.stdin.isTTY !== true
8178
8163
  };
@@ -8267,7 +8252,7 @@ async function runPlatformLifecycleCommand(commandArgs) {
8267
8252
  Object.assign(values, updates);
8268
8253
  if (credentialSetup) writePendingInstallationSecrets(setupManifest, values);
8269
8254
  };
8270
- const configured = (key, environment) => credentialSetup ? process.env[environment] || values[key] || "" : values[key] || process.env[environment] || "";
8255
+ const configured = (key, environment) => credentialSetup || key === "cloudflareApiToken" ? process.env[environment] || values[key] || "" : values[key] || process.env[environment] || "";
8271
8256
  const collect = async (key, environment, message, masked = true, persist = true, validate) => {
8272
8257
  let value = configured(key, environment);
8273
8258
  if (!value) {
@@ -8282,7 +8267,8 @@ async function runPlatformLifecycleCommand(commandArgs) {
8282
8267
  };
8283
8268
  const pages = platformSetupPages(plan);
8284
8269
  if (!configured("cloudflareApiToken", "VOID_PLATFORM_RUNTIME_CLOUDFLARE_API_TOKEN")) openPlatformSetupPage(pages.runtime);
8285
- const usingSavedRuntimeToken = credentialSetup && !process.env.VOID_PLATFORM_RUNTIME_CLOUDFLARE_API_TOKEN && Boolean(values.cloudflareApiToken);
8270
+ const savedRuntimeToken = checkpoint?.cloudflareApiToken ?? "";
8271
+ const usingSavedRuntimeToken = !process.env.VOID_PLATFORM_RUNTIME_CLOUDFLARE_API_TOKEN && Boolean(values.cloudflareApiToken);
8286
8272
  let runtimeCloudflareApiToken = await collect("cloudflareApiToken", "VOID_PLATFORM_RUNTIME_CLOUDFLARE_API_TOKEN", "Paste runtime API token:", true, false);
8287
8273
  let rejectedSavedRuntimeToken = false;
8288
8274
  const verifyRuntimeToken = async (token) => {
@@ -8301,9 +8287,9 @@ async function runPlatformLifecycleCommand(commandArgs) {
8301
8287
  plan = await verifyPlatformAiGatewayPlan(client, planInput, existing, plan, authoritativeProvisionIntents);
8302
8288
  }
8303
8289
  } catch (error) {
8304
- if (credentialSetup && token === values.cloudflareApiToken && !(error instanceof PlatformRuntimeTokenEmailPermissionError) && isPlatformTokenAuthorizationError(error, checkingRuntimePermissions ? void 0 : "/ai-gateway/")) {
8290
+ if (token === values.cloudflareApiToken && !(error instanceof PlatformRuntimeTokenEmailPermissionError) && isPlatformTokenAuthorizationError(error, checkingRuntimePermissions ? void 0 : "/ai-gateway/")) {
8305
8291
  delete values.cloudflareApiToken;
8306
- writePendingInstallationSecrets(setupManifest, values);
8292
+ if (credentialSetup) writePendingInstallationSecrets(setupManifest, values);
8307
8293
  rejectedSavedRuntimeToken = true;
8308
8294
  }
8309
8295
  throw error;
@@ -8367,22 +8353,26 @@ async function runPlatformLifecycleCommand(commandArgs) {
8367
8353
  const hasFullProjectSecretKeyring = Boolean(checkpoint?.projectSecretKeysJson || checkpoint?.projectSecretActiveKeyVersion || process.env.VOID_PLATFORM_PROJECT_SECRET_KEYS_JSON || process.env.VOID_PLATFORM_PROJECT_SECRET_ACTIVE_KEY_VERSION);
8368
8354
  const generateIdentityKeys = credentialSetup && !!process.stdin.isTTY;
8369
8355
  const generatedKeys = generateIdentityKeys ? [configured("jwtSecret", "VOID_PLATFORM_JWT_SECRET") ? "" : "JWT signing key", configured("projectSecretKey", "VOID_PLATFORM_PROJECT_SECRET_KEY") || hasFullProjectSecretKeyring ? "" : "project encryption key"].filter(Boolean) : [];
8356
+ const replacingRuntimeToken = !credentialSetup && !!savedRuntimeToken && runtimeCloudflareApiToken !== savedRuntimeToken;
8357
+ const updateExistingWorkers = replacingRuntimeToken || !credentialSetup && Boolean(checkpoint?.workerSecretUpdatesJson);
8358
+ const checkpointValue = (value) => updateExistingWorkers ? "" : value;
8370
8359
  const secrets = createPlatformInstallationSecrets({
8371
8360
  configurableAuthentication: !!authenticationSelection.authentication.configurable,
8372
8361
  ...authenticationSecrets,
8373
8362
  bootstrapGitHubId,
8374
8363
  bootstrapGitHubLogin,
8375
- cloudflareApiToken: runtimeCloudflareApiToken,
8364
+ cloudflareApiToken: replacingRuntimeToken ? runtimeCloudflareApiToken : checkpointValue(runtimeCloudflareApiToken),
8376
8365
  checkpoint: values,
8377
8366
  databaseUrl: installationDatabaseUrl,
8378
8367
  emailEnabled: plan.deployment.capabilities.email,
8379
- emailSigningSecret: process.env.VOID_PLATFORM_EMAIL_SIGNING_SECRET || "",
8368
+ emailSigningSecret: updateExistingWorkers && values.emailSigningSecret ? "" : process.env.VOID_PLATFORM_EMAIL_SIGNING_SECRET || "",
8380
8369
  existingEmailEnabled: existing.deployment.capabilities.email,
8381
- githubClientId,
8382
- githubClientSecret,
8383
- r2AccessKeyId,
8384
- r2SecretAccessKey,
8370
+ githubClientId: checkpointValue(githubClientId),
8371
+ githubClientSecret: checkpointValue(githubClientSecret),
8372
+ r2AccessKeyId: checkpointValue(r2AccessKeyId),
8373
+ r2SecretAccessKey: checkpointValue(r2SecretAccessKey),
8385
8374
  existingInstallation: !credentialSetup,
8375
+ updateExistingWorkers,
8386
8376
  generateIdentityKeys,
8387
8377
  jwtSecret: generateIdentityKeys ? configured("jwtSecret", "VOID_PLATFORM_JWT_SECRET") : await collect("jwtSecret", "VOID_PLATFORM_JWT_SECRET", "JWT signing key:", true, true, credentialSetup ? (value) => Buffer.byteLength(value, "utf8") >= 32 ? void 0 : "The JWT signing secret must contain at least 32 random bytes." : void 0),
8388
8378
  projectSecretKey: configured("projectSecretKey", "VOID_PLATFORM_PROJECT_SECRET_KEY") || (hasFullProjectSecretKeyring || generateIdentityKeys ? "" : await collect("projectSecretKey", "VOID_PLATFORM_PROJECT_SECRET_KEY", "Project encryption key:", true, true, credentialSetup ? (value) => {
@@ -8472,7 +8462,7 @@ async function runPlatformLifecycleCommand(commandArgs) {
8472
8462
  })).actions.filter((action) => action.kind === "worker"),
8473
8463
  revalidateBeforeWorkerDeploy: (manifest, action) => revalidatePlatformInstallAction(client, plan, manifest, action),
8474
8464
  verifyExistingOwnership: async (manifest, databaseCheckpointExists) => {
8475
- const { verifyPlatformInstallationOwnership } = await import("./platform-management-lXdgGgAM.mjs");
8465
+ const { verifyPlatformInstallationOwnership } = await import("./platform-management-BfLW0Zlo.mjs");
8476
8466
  const retainedReplacementKeys = new Set(plan.actions.filter((action) => {
8477
8467
  const previous = manifest.resources.find((resource) => resource.key === action.key);
8478
8468
  return action.action === "create" && previous && previous.name !== action.name;
@@ -8484,7 +8474,18 @@ async function runPlatformLifecycleCommand(commandArgs) {
8484
8474
  });
8485
8475
  }
8486
8476
  });
8477
+ const runtimeLogsWarning = !result.waitingForDns && !result.waitingForSandboxDrain && shouldUpdateProjectWorkerRuntimeLogs({
8478
+ previous: setupManifest.deployment,
8479
+ next: result.manifest.deployment,
8480
+ explicit: args.runtimeLogs !== void 0
8481
+ }) ? await updateProjectWorkerRuntimeLogs(client, {
8482
+ accountId,
8483
+ namespace: result.manifest.deployment.resources.dispatchNamespace,
8484
+ minimal: !!result.manifest.deployment.runtimeLogs,
8485
+ installationId: result.manifest.id
8486
+ }) : void 0;
8487
8487
  progress?.stop(result.waitingForDns || result.waitingForSandboxDrain ? "Installation paused. Progress is saved." : "Platform installed.");
8488
+ if (runtimeLogsWarning) log.warn(runtimeLogsWarning);
8488
8489
  progress = void 0;
8489
8490
  if (result.waitingForDns) {
8490
8491
  note(result.zoneNameServers.length > 0 ? `Update the domain at your registrar to use:\n${result.zoneNameServers.join("\n")}\n\nThen rerun: void platform install --resume --name ${result.manifest.id}` : `Wait for ${zoneName} to become active, then rerun:\nvoid platform install --resume --name ${result.manifest.id}`, import_picocolors.default.bold("Waiting for nameservers"));
@@ -8628,5 +8629,4 @@ async function promptSecret(message, masked = true, validate, placeholder) {
8628
8629
  if (isCancel(value) || typeof value === "symbol") throw new Error("platform: Cancelled.");
8629
8630
  return value;
8630
8631
  }
8631
- //#endregion
8632
8632
  export { hyperdriveOriginMatches as $, dnsRecordConfigHash as A, turnOffInstalledProjectZeroTrust as B, createPlatformHealthProbeToken as C, platformTrafficAttachmentWorker as D, recordResource as E, platformAdoptionIntentHash as F, checkpointPlatformAccessResources as G, resolvePlatformCloudflareCredential as H, r2BucketConfigHash as I, PlatformCloudflareApiError as J, parsePlatformAccessSetupSpec as K, resourceMarkerProblem as L, hasProvisionIntentStep as M, legacyResourceConfigHash as N, recordPlatformWorkerTraffic as O, matchesRecordedR2Fingerprint as P, hyperdriveOriginFromConnectionString as Q, revalidatePlatformInstallAction as R, loadPlatformRuntime as S, resolveBootstrapGitHubId as T, verifyPlatformCloudflareCredential as U, assertPlatformOperatorCredentialCanApplyPlan as V, activatePlatformAccessCredentials as W, PlatformRuntimeTokenEmailPermissionError as X, PlatformCloudflareClient as Y, hyperdriveOriginConfigHash as Z, readPlatformProjectSlugs as _, findPlatformWorkerOutsideChanges as a, formatZeroTrustApplications as b, uploadPlatformWorkerOutsideChanges as c, replacePendingInstallationAuthentication as d, verifyPlatformRuntimeTokenEmailPermissions as et, REMOTE_INSTALLATION_MANIFEST_KEY as f, platformDatabaseClientUrl as g, acquirePlatformDatabaseLifecycleLockConnection as h, verifyPlatformAiGatewayPlan as i, formatPlatformInstallPlan as j, createPlatformInstallPlan as k, authenticationSetupRequestHash as l, acquirePlatformDatabaseLifecycleLock as m, resolvePlatformInstallDatabaseUrl as n, formatPlatformWorkerOutsideChanges as o, installPlatform as p, preparePlatformAccessSetup as q, runPlatformLifecycleCommand as r, reviewPlatformWorkerOutsideChanges as s, assertNoninteractivePlatformMutationAcknowledged as t, verifyPlatformRuntimeTokenPermissions as tt, readLoginReplacementFile as u, readPlatformProjectZeroTrustState as v, createPlatformInstallationSecrets as w, readPlatformDatabase as x, assertProjectZeroTrustAllowsUninstall as y, platformDatabaseNameFromOwnerUrl as z };