void 0.27.0 → 1.0.3

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 (337) hide show
  1. package/README.md +3 -1
  2. package/dist/{account-cmd-l-FM7Ioq.mjs → account-cmd-BTcUzv9L.mjs} +6 -6
  3. package/dist/{agents-B_pX_HmQ.mjs → agents-CuNtT0D_.mjs} +5 -2
  4. package/dist/{application-analysis-DKy02UY0.mjs → application-analysis-AB_YYWgH.mjs} +118 -135
  5. package/dist/{application-routing-DQyUh_5S.mjs → application-routing-L7V-TFhZ.mjs} +1 -2
  6. package/dist/atomic-write-Dq6R0BPN.mjs +18 -0
  7. package/dist/{auth-Dn2vw-SG.mjs → auth-B6iOCjKI.mjs} +23 -56
  8. package/dist/auth-Cbqi1iVX.mjs +1 -0
  9. package/dist/{auth-link-vz9Z2kmG.mjs → auth-link-DUJuvRx5.mjs} +11 -11
  10. package/dist/{auth-migrations-BwHgeEsD.mjs → auth-migrations-Cgs0k6lS.mjs} +28 -5
  11. package/dist/{auth-router-DvsCUVw4.mjs → auth-router-CIxiMG7i.mjs} +5 -5
  12. package/dist/base64-DVrOndmI.mjs +16 -0
  13. package/dist/{better-auth-shared-CPvWD3nG.d.mts → better-auth-shared-B74NJIus.d.mts} +8 -13
  14. package/dist/{better-auth-shared-DPpj8zxc.mjs → better-auth-shared-CMXlZG7W.mjs} +56 -68
  15. package/dist/{build-cmd-D6we0VjO.mjs → build-cmd-BkIv25PA.mjs} +6 -6
  16. package/dist/{cache-CZRdzKx1.mjs → cache-Ctzfig-W.mjs} +6 -6
  17. package/dist/{cancel-deploy-CQ3NnMvf.mjs → cancel-deploy-CD9o-SsC.mjs} +5 -5
  18. package/dist/{cf-access-TWNzXltp.mjs → cf-access-BM9G0lhO.mjs} +4 -3
  19. package/dist/{cf-access-BcIBSKqG.mjs → cf-access-CWP4avfP.mjs} +3 -7
  20. package/dist/cf-build-output-BU3hqdHu.mjs +1 -0
  21. package/dist/{cf-build-output-DjvB_872.mjs → cf-build-output-Bc8i3dzE.mjs} +2 -2
  22. package/dist/cf-user-agent-ChjQp2MU.mjs +33 -0
  23. package/dist/cli/cli.mjs +199 -312
  24. package/dist/cli/cloudflare-operation-process.mjs +41 -15
  25. package/dist/cli/env-schema-probe.d.mts +7 -44
  26. package/dist/cli/env-schema-probe.mjs +14 -80
  27. package/dist/client-B60PwCC4.mjs +1 -0
  28. package/dist/{client-DlDJuY0s.mjs → client-DM9Kcf4e.mjs} +161 -415
  29. package/dist/{cloudflare-auth-CuxfF6OA.mjs → cloudflare-auth-CqFBDo52.mjs} +12 -39
  30. package/dist/{cloudflare-cmd-lHqNlJGW.mjs → cloudflare-cmd-BIAF_BIY.mjs} +7 -6
  31. package/dist/{cloudflare-config-BmhBv3HV.mjs → cloudflare-config-DV60XFFK.mjs} +16 -28
  32. package/dist/{cloudflare-connect-2G3rL2rP.mjs → cloudflare-connect-WjwnVOJA.mjs} +4 -4
  33. package/dist/{cloudflare-operations-CwI1bChl.mjs → cloudflare-operations-B42EZeJy.mjs} +26 -34
  34. package/dist/cloudflare-operations-CrSUFRzJ.mjs +1 -0
  35. package/dist/{cloudflare-process-2-TfIEzB.mjs → cloudflare-process-CeDWJRhj.mjs} +12 -7
  36. package/dist/collect-Cae8A7Zr.mjs +1 -0
  37. package/dist/{collect-DiTn9yr6.mjs → collect-xjffdCdk.mjs} +1 -1
  38. package/dist/{config-CSa15FvD.d.mts → config-7qoq2p9v.d.mts} +2 -2
  39. package/dist/{config-CLYAosnQ.mjs → config-BEm9vRvS.mjs} +11 -5
  40. package/dist/{config-DiowPT80.mjs → config-Bx_1SpnO.mjs} +87 -177
  41. package/dist/{config-DPByhVck.mjs → config-D0GY5ItR.mjs} +1 -1
  42. package/dist/config-QrJWu0IX.mjs +1 -0
  43. package/dist/config-entry.d.mts +1 -1
  44. package/dist/{connect-BfPBHHm-.mjs → connect-CKtk-EZe.mjs} +9 -9
  45. package/dist/create-project-B-ewF_Af.mjs +1 -0
  46. package/dist/{create-project-BdXEFKal.mjs → create-project-yInGo72M.mjs} +8 -8
  47. package/dist/database-provider.mjs +1 -2
  48. package/dist/{db-Xs80hcaA.mjs → db-7I_gfdVq.mjs} +177 -268
  49. package/dist/db-types-Bb4WBWIs.mjs +49 -0
  50. package/dist/{delete-d2vuou3j.mjs → delete-Cy-M1u-r.mjs} +6 -6
  51. package/dist/deploy-9lgfhrXS.mjs +2 -0
  52. package/dist/deploy-BYYlnsiy.mjs +6164 -0
  53. package/dist/deploy-managed-static-Ca4TFdmx.mjs +1595 -0
  54. package/dist/deploy-transport-DWlWBe6M.mjs +180 -0
  55. package/dist/deploy.d.mts +10 -0
  56. package/dist/deploy.mjs +82 -0
  57. package/dist/dev-inbox-Rd6j_8vM.mjs +217 -0
  58. package/dist/discover-ClzFSwns.mjs +1 -0
  59. package/dist/{discover-CkCYv9T_.mjs → discover-D2PGT63u.mjs} +2 -2
  60. package/dist/dispatch-DrTTk8Xg.mjs +431 -0
  61. package/dist/{dist-D3m88sjf.mjs → dist-BVdsO7Py.mjs} +5 -6
  62. package/dist/dist-CfgIkieS.mjs +1 -0
  63. package/dist/{dist-BVqXeR_h.mjs → dist-ipQi0Q8y.mjs} +2 -3
  64. package/dist/{domain-BsDUBAvt.mjs → domain-CZGxPv9u.mjs} +8 -23
  65. package/dist/{dotenv-BfU6eqFt.mjs → dotenv-CNazY3-w.mjs} +4 -16
  66. package/dist/edge.mjs +1 -2
  67. package/dist/{email-d_Aux1vM.mjs → email-BcjSyAL0.mjs} +4 -20
  68. package/dist/{email-_lGAHOhp.mjs → email-DzyNVuoU.mjs} +100 -192
  69. package/dist/email-cloudflare-DfG6UEMm.mjs +1096 -0
  70. package/dist/email-protocol-D9nTvhCp.mjs +82 -0
  71. package/dist/{entry-CMAkqBmU.mjs → entry-ehmBvs5w.mjs} +2 -2
  72. package/dist/{env-DMA3cXZt.mjs → env-0jrMQJI_.mjs} +6 -14
  73. package/dist/{env-BxocywBB.mjs → env-BJjULvL0.mjs} +2 -2
  74. package/dist/{env-C74QepDE.mjs → env-Nx3yf50r.mjs} +9 -9
  75. package/dist/{env-public-DR7ZM6d-.d.mts → env-public-CCdykygU.d.mts} +6 -23
  76. package/dist/{env-raw-jZpP5n47.mjs → env-raw-D74P4ebM.mjs} +15 -21
  77. package/dist/{env-types-CwXgeMgL.mjs → env-types-DS2_y4X8.mjs} +2 -2
  78. package/dist/env-validation-BT7z-qpQ.mjs +1 -0
  79. package/dist/env-validation-DYxjz_Wo.mjs +488 -0
  80. package/dist/{gen-DtkQhvQg.mjs → gen-CufHEf42.mjs} +132 -254
  81. package/dist/gen-sXyp5DFO.mjs +1 -0
  82. package/dist/generate-ClI89brV.mjs +1 -0
  83. package/dist/{generate-GDbL7sUr.mjs → generate-Dat0UTry.mjs} +38 -4
  84. package/dist/generated-wrangler-config-DeWj5F9Y.mjs +18 -0
  85. package/dist/{github-cmd-DaDdBbSS.mjs → github-cmd-FU8EjFyU.mjs} +28 -72
  86. package/dist/{handler-BHAn2fZJ.mjs → handler-BZ1t7-Rv.mjs} +2 -2
  87. package/dist/{handler-CNAwjRcW.d.mts → handler-_PqY82xe.d.mts} +1 -1
  88. package/dist/{headers-DlfR78Nu.mjs → headers-Di1FsD3e.mjs} +26 -81
  89. package/dist/{help-0bTe_lID.mjs → help-BT2hovNI.mjs} +26 -14
  90. package/dist/help-i2YGGnTH.mjs +1 -0
  91. package/dist/{inbound-PfQDLXc5.mjs → inbound-BuTfm11U.mjs} +71 -222
  92. package/dist/{inbound-CH5Mksyy.d.mts → inbound-brj2-TM5.d.mts} +19 -58
  93. package/dist/index.d.mts +2 -18
  94. package/dist/index.mjs +714 -762
  95. package/dist/{info-PYWwkWyt.mjs → info-l249eUdH.mjs} +5 -5
  96. package/dist/{init-DaBGmaXC.mjs → init-D0A6M64Q.mjs} +229 -392
  97. package/dist/isr-config-fZaJJ8t7.mjs +165 -0
  98. package/dist/{link-C6fjafep.mjs → link-WMoJFf4i.mjs} +9 -9
  99. package/dist/{list-BTFBlqKl.mjs → list-CQ2EQEHL.mjs} +7 -18
  100. package/dist/{live-CgQuTpqD.mjs → live-BcHoTDFe.mjs} +19 -17
  101. package/dist/{live-Du8jXwOW.d.mts → live-DJONVlQK.d.mts} +1 -1
  102. package/dist/load-user-env-DD5qveNU.mjs +49 -0
  103. package/dist/{local-d1-ga5O_idV.mjs → local-d1-BxvQYEFi.mjs} +6 -6
  104. package/dist/{login-GKcNUmtI.mjs → login-C2T1oVG-.mjs} +12 -12
  105. package/dist/login-XD844Xs-.mjs +1 -0
  106. package/dist/{logs-BiMSULmc.mjs → logs-DnC1d7xB.mjs} +6 -6
  107. package/dist/{migrate-NLsjBbuM.mjs → migrate-BDIprOYd.mjs} +70 -22
  108. package/dist/migrate-BRwU-blY.mjs +1 -0
  109. package/dist/migration-handler-Cg0Y4EPu.mjs +470 -0
  110. package/dist/{migration-handler-DM4clYj5.d.mts → migration-handler-CwlEQUoo.d.mts} +17 -26
  111. package/dist/{mime-DxCznlJq.mjs → mime-srOklVVv.mjs} +92 -395
  112. package/dist/mysql-migration-sql-BIS5vbNk.mjs +241 -0
  113. package/dist/nitro.d.mts +30 -0
  114. package/dist/nitro.mjs +88 -0
  115. package/dist/{node-DJicPvPj.mjs → node-cPadMgUO.mjs} +9 -25
  116. package/dist/{operator-args-DOBhIaIg.mjs → operator-args-UnE8Y2eK.mjs} +27 -26
  117. package/dist/{operator-auth-BEZ_u0Cz.mjs → operator-auth-Cr2zCc-J.mjs} +2 -2
  118. package/dist/{operator-client-DbDv4vtE.mjs → operator-client-C-ROjk1I.mjs} +4 -4
  119. package/dist/operator-cmd-D6gnZsnK.mjs +1 -0
  120. package/dist/{operator-cmd-BT4hgavL.mjs → operator-cmd-DHieWtFp.mjs} +8 -8
  121. package/dist/{output-C50ag2r3.mjs → output-Ba6ZbrzY.mjs} +37 -6
  122. package/dist/{package-json-DXfiT1jV.mjs → package-json-BjYqR-So.mjs} +1 -1
  123. package/dist/pages/client.d.mts +1 -1
  124. package/dist/pages/client.mjs +91 -5
  125. package/dist/pages/head.mjs +1 -2
  126. package/dist/pages/index.d.mts +1 -2
  127. package/dist/pages/index.mjs +6 -6
  128. package/dist/pages/islands-plugin.mjs +5 -83
  129. package/dist/pages/prefetch.mjs +1 -2
  130. package/dist/pages/protocol.d.mts +2 -2
  131. package/dist/pages/protocol.mjs +1 -1
  132. package/dist/pages/serialize.mjs +1 -2
  133. package/dist/plan-CKX_jWnD.mjs +1 -0
  134. package/dist/platform-args-B0HeTh0C.mjs +1 -0
  135. package/dist/{platform-args-DUeXY9Om.mjs → platform-args-CaCL_1Ch.mjs} +43 -60
  136. package/dist/{platform-auth-config-CkSx3usH.mjs → platform-auth-config-Z16-I8nT.mjs} +11 -12
  137. package/dist/{platform-auth-protection-BJimB_p9.mjs → platform-auth-protection-BXwZiJSF.mjs} +37 -27
  138. package/dist/{platform-auth-recovery-BU6izFAU.mjs → platform-auth-recovery-CXjfqyOv.mjs} +9 -10
  139. package/dist/{platform-cmd-BbY1dWiM.mjs → platform-cmd-DaAOiWTl.mjs} +16 -16
  140. package/dist/platform-cmd-PT4YwMLM.mjs +1 -0
  141. package/dist/{platform-discovery-DIYz8V63.mjs → platform-discovery-CHhNs8Nn.mjs} +1 -1
  142. package/dist/{platform-domain-CHVS6cV0.mjs → platform-domain-CxpvUeo0.mjs} +6 -6
  143. package/dist/{platform-lifecycle-DzCwqhFq.mjs → platform-lifecycle-DBiS0cJd.mjs} +1693 -2120
  144. package/dist/platform-lifecycle-u9pMOvxC.mjs +1 -0
  145. package/dist/{platform-management-CuuVDhyt.mjs → platform-management-DhEFdQAf.mjs} +696 -130
  146. package/dist/platform-management-DvBS83rC.mjs +1 -0
  147. package/dist/{platform-plans-config-CN-heS4q.mjs → platform-plans-config-BWn1S2Rv.mjs} +16 -12
  148. package/dist/{platform-recovery-CskSJgLh.mjs → platform-recovery-BUGOB4RC.mjs} +6 -9
  149. package/dist/{platform-registry-Cjv2Qf0r.mjs → platform-registry-B9mWX9LO.mjs} +13 -18
  150. package/dist/{platform-setup-BBxRxmFC.mjs → platform-setup-YvN9VQXV.mjs} +21 -28
  151. package/dist/{plugin-inference-BlQbOL0P.mjs → plugin-inference-DsARdQKE.mjs} +18 -33
  152. package/dist/prepare-CYT6tAzD.mjs +1 -0
  153. package/dist/{prepare-Do96654b.mjs → prepare-DEB5SeVJ.mjs} +12 -13
  154. package/dist/{prepare-Dq9hTIbo.mjs → prepare-PQCgsny0.mjs} +4 -4
  155. package/dist/{prerender-render-Ct20jftc.mjs → prerender-render-Bfsumdkv.mjs} +8 -2
  156. package/dist/prerender-render.d.mts +2 -0
  157. package/dist/prerender-render.mjs +1 -2
  158. package/dist/{project-cmd-DaoRrn-8.mjs → project-cmd-DVatD8Ev.mjs} +20 -20
  159. package/dist/{project-paths-GgcMozYz.mjs → project-paths-DMvEeSau.mjs} +9 -14
  160. package/dist/{project-BAm2aB6Q.mjs → project-rqDnVsJN.mjs} +8 -4
  161. package/dist/project-slug-6cyz8E7k.mjs +1 -0
  162. package/dist/{project-team-Q_lCA7Io.mjs → project-team-DJrWEAG1.mjs} +7 -7
  163. package/dist/{project-token-BArgK9o1.mjs → project-token-CBgLBuL6.mjs} +6 -6
  164. package/dist/{project-tsconfig-CVJhNMxs.mjs → project-tsconfig-bveqhlYA.mjs} +3 -5
  165. package/dist/project-zdB3fs9G.mjs +1 -0
  166. package/dist/{project-zero-trust-KO9Hu2Pq.mjs → project-zero-trust-92gLtZ25.mjs} +6 -6
  167. package/dist/{protocol-BPZaNqBo.d.mts → protocol-4H7V_3Os.d.mts} +1 -1
  168. package/dist/{protocol-CfaUwNs8.mjs → protocol-RNP0u7UY.mjs} +9 -3
  169. package/dist/{provision-BfaLiWbj.mjs → provision-BnSSkiED.mjs} +119 -866
  170. package/dist/{requests-C7Oeoh5u.mjs → requests-7W1Pygt2.mjs} +5 -5
  171. package/dist/resolve-project-PnhzMtY6.mjs +1 -0
  172. package/dist/resolve-project-WpwkCB_c.mjs +48 -0
  173. package/dist/{rollback-DVAtrLAl.mjs → rollback-BcASVnwP.mjs} +8 -18
  174. package/dist/{route-types-CbtsIeFn.mjs → route-types-BZi26DVS.mjs} +9 -91
  175. package/dist/routing-assets-VkrKIbxE.mjs +139 -0
  176. package/dist/{runner-DMBKSrRk.mjs → runner-CabsQ-iM.mjs} +22 -34
  177. package/dist/runner-So9mYfcm.mjs +1 -0
  178. package/dist/runner-mysql-BhRaONkO.mjs +146 -0
  179. package/dist/runner-mysql-DWwE8jKi.mjs +1 -0
  180. package/dist/{runner-pg-DV8p_zjA.mjs → runner-pg-BRemq_GX.mjs} +3 -3
  181. package/dist/runner-pg-_Xncr3H5.mjs +1 -0
  182. package/dist/runtime/ai.mjs +23 -25
  183. package/dist/runtime/auth-client-react.mjs +1 -2
  184. package/dist/runtime/auth-client-solid.mjs +1 -2
  185. package/dist/runtime/auth-client-svelte.mjs +1 -2
  186. package/dist/runtime/auth-client-vue.mjs +1 -2
  187. package/dist/runtime/auth-client.mjs +1 -2
  188. package/dist/runtime/auth.mjs +1 -2
  189. package/dist/runtime/better-auth-mysql.d.mts +2 -5
  190. package/dist/runtime/better-auth-mysql.mjs +9 -31
  191. package/dist/runtime/better-auth-pg.d.mts +2 -5
  192. package/dist/runtime/better-auth-pg.mjs +6 -32
  193. package/dist/runtime/better-auth.d.mts +2 -4
  194. package/dist/runtime/better-auth.mjs +9 -19
  195. package/dist/runtime/db.mjs +6 -2
  196. package/dist/runtime/durable.d.mts +18 -1
  197. package/dist/runtime/durable.mjs +26 -2
  198. package/dist/runtime/email/testing.d.mts +1 -1
  199. package/dist/runtime/email/testing.mjs +9 -23
  200. package/dist/runtime/email-protocol.d.mts +12 -0
  201. package/dist/runtime/email-protocol.mjs +1 -70
  202. package/dist/runtime/email.d.mts +1 -1
  203. package/dist/runtime/email.mjs +79 -221
  204. package/dist/runtime/env-public.d.mts +1 -1
  205. package/dist/runtime/env-public.mjs +12 -38
  206. package/dist/runtime/env.d.mts +1 -12
  207. package/dist/runtime/env.mjs +1 -2
  208. package/dist/runtime/handler.d.mts +1 -1
  209. package/dist/runtime/handler.mjs +1 -1
  210. package/dist/runtime/isr.mjs +1 -1
  211. package/dist/runtime/kv.mjs +1 -1
  212. package/dist/runtime/limits.mjs +1 -2
  213. package/dist/runtime/live-client.d.mts +3 -2
  214. package/dist/runtime/live-server.d.mts +2 -1
  215. package/dist/runtime/live-server.mjs +1 -16
  216. package/dist/runtime/live.d.mts +1 -1
  217. package/dist/runtime/live.mjs +1 -2
  218. package/dist/runtime/log.d.mts +2 -1
  219. package/dist/runtime/migration-handler-mysql.d.mts +2 -2
  220. package/dist/runtime/migration-handler-mysql.mjs +39 -8
  221. package/dist/runtime/migration-handler-pg.d.mts +2 -2
  222. package/dist/runtime/migration-handler-pg.mjs +1 -1
  223. package/dist/runtime/migration-handler.d.mts +2 -2
  224. package/dist/runtime/migration-handler.mjs +1 -470
  225. package/dist/runtime/queues.mjs +1 -1
  226. package/dist/runtime/remote/binding-handler.mjs +62 -62
  227. package/dist/runtime/remote/index.mjs +16 -77
  228. package/dist/runtime/response.mjs +1 -2
  229. package/dist/runtime/route-url.mjs +1 -2
  230. package/dist/runtime/routing.d.mts +3 -5
  231. package/dist/runtime/routing.mjs +82 -218
  232. package/dist/runtime/sandbox-container.d.mts +2 -2
  233. package/dist/runtime/sandbox-container.mjs +1 -2
  234. package/dist/runtime/sandbox.d.mts +2 -2
  235. package/dist/runtime/sandbox.mjs +13 -6
  236. package/dist/runtime/seed.d.mts +2 -1
  237. package/dist/runtime/sse.mjs +1 -2
  238. package/dist/runtime/storage.mjs +1 -1
  239. package/dist/runtime/validator.d.mts +1 -1
  240. package/dist/runtime/validator.mjs +1 -2
  241. package/dist/runtime/ws-server.d.mts +4 -4
  242. package/dist/runtime/ws-server.mjs +6 -28
  243. package/dist/runtime/ws.d.mts +1 -1
  244. package/dist/{sandbox-container-Bo0eiFKz.d.mts → sandbox-container-ChQRum-j.d.mts} +3 -1
  245. package/dist/{sandbox-container-C6ItmVuN.mjs → sandbox-container-a9LRUtii.mjs} +13 -2
  246. package/dist/{sandbox-C5LFoJMf.d.mts → sandbox-q3waMc2T.d.mts} +1 -1
  247. package/dist/{scan-C3uDzz6J.mjs → scan-C0BMdmEd.mjs} +84 -7
  248. package/dist/{secret-BvtB7IjY.mjs → secret-bg73f1Ge.mjs} +63 -81
  249. package/dist/{serialize-BPvnNQuA.mjs → serialize-BtQyaYoC.mjs} +10 -4
  250. package/dist/{skills-BgVMvQdy.mjs → skills-C_yRTg0g.mjs} +3 -3
  251. package/dist/{subcommand-prompt-BSlnD1fI.mjs → subcommand-prompt-Bm3ZlYgA.mjs} +39 -44
  252. package/dist/sveltekit.d.mts +2 -1
  253. package/dist/sveltekit.mjs +1 -1
  254. package/dist/validate-BQFdf0Pi.mjs +1 -0
  255. package/dist/{validate-C9qJArv7.mjs → validate-CheZGRE7.mjs} +4 -8
  256. package/dist/version-metadata-DIrqEHQo.mjs +73 -0
  257. package/dist/{wrangler-D9KTuqnv.mjs → wrangler-BYs07Rxy.mjs} +119 -378
  258. package/dist/wrapper-CwhpNWtH.mjs +663 -0
  259. package/dist/{ws-CChrrAU-.d.mts → ws-aKVYB-fA.d.mts} +1 -1
  260. package/dist/yarn-pnp-DLbEFMT0.mjs +92 -0
  261. package/docs/guide/ai.md +8 -2
  262. package/docs/guide/auth.md +2 -0
  263. package/docs/guide/database/mysql.md +14 -3
  264. package/docs/guide/database/postgresql.md +2 -0
  265. package/docs/guide/database.md +3 -5
  266. package/docs/guide/durable-state.md +32 -4
  267. package/docs/guide/platform/administration/access.md +4 -0
  268. package/docs/guide/platform/administration/connected-apps.md +55 -0
  269. package/docs/guide/platform/installation/credentials.md +21 -3
  270. package/docs/guide/platform/installation/domains.md +1 -1
  271. package/docs/guide/platform/installation/maintenance.md +38 -1
  272. package/docs/guide/platform/installation/prerequisites.md +6 -2
  273. package/docs/guide/platform/installation/setup.md +23 -1
  274. package/docs/guide/platform/installation/uninstall.md +6 -1
  275. package/docs/guide/quickstart.md +2 -0
  276. package/docs/guide/sandboxes.md +3 -1
  277. package/docs/guide/self-hosted-platform.md +1 -1
  278. package/docs/integrations/cloudflare.md +2 -2
  279. package/docs/integrations/frameworks/analog.md +3 -11
  280. package/docs/integrations/frameworks/nuxt.md +7 -10
  281. package/docs/integrations/nodejs-bun-deno.md +2 -0
  282. package/docs/reference/api/deploy.md +23 -0
  283. package/docs/reference/api/pages.md +2 -0
  284. package/docs/reference/api.md +3 -1
  285. package/docs/reference/cli/database.md +9 -3
  286. package/docs/reference/cli/platform-installation.md +19 -7
  287. package/docs/reference/cli/setup.md +2 -0
  288. package/docs/reference/config.md +2 -0
  289. package/package.json +39 -36
  290. package/sandbox.Dockerfile +1 -1
  291. package/skills/void/SKILL.md +2 -1
  292. package/dist/auth-LMJcNESe.mjs +0 -2
  293. package/dist/cf-build-output-H9a97vME.mjs +0 -2
  294. package/dist/cf-user-agent-lKblH3zU.mjs +0 -17
  295. package/dist/client-tso2OfcG.mjs +0 -2
  296. package/dist/cloudflare-operations-BlYLlowZ.mjs +0 -2
  297. package/dist/collect-DLyFDiKW.mjs +0 -2
  298. package/dist/config-5r-YpMC-.mjs +0 -2
  299. package/dist/config-B_ggY-IO.mjs +0 -89
  300. package/dist/config-BtSFvXZx.mjs +0 -2
  301. package/dist/config-write-AHGesphx.mjs +0 -61
  302. package/dist/create-project-qFDC45zg.mjs +0 -2
  303. package/dist/deploy-Bqe1PYBw.mjs +0 -10458
  304. package/dist/deploy-VsWsVQkw.mjs +0 -2
  305. package/dist/dev-inbox-CK-UuPob.mjs +0 -297
  306. package/dist/discover-EDUf6JJw.mjs +0 -2
  307. package/dist/dist-Bx1z6Eva.mjs +0 -2
  308. package/dist/dist-_UUlL6bg.mjs +0 -2
  309. package/dist/env-validation-CrVNjsPm.mjs +0 -2
  310. package/dist/env-validation-Dxdx_5wo.mjs +0 -951
  311. package/dist/gen-dA9hW7AV.mjs +0 -2
  312. package/dist/head-client-DzmJGN4C.mjs +0 -90
  313. package/dist/help-DfQYVfGY.mjs +0 -2
  314. package/dist/login-mx_ydhmp.mjs +0 -2
  315. package/dist/migrate-BHp07yJE.mjs +0 -2
  316. package/dist/operator-cmd-CwBB-1yb.mjs +0 -2
  317. package/dist/pages/head-client.d.mts +0 -13
  318. package/dist/pages/head-client.mjs +0 -2
  319. package/dist/plan-CH2G51je.mjs +0 -2
  320. package/dist/platform-args-D4E1PjVw.mjs +0 -2
  321. package/dist/platform-cmd-BbmJiq5O.mjs +0 -2
  322. package/dist/platform-lifecycle-ByAlpkhV.mjs +0 -2
  323. package/dist/platform-management-CBOT4BSM.mjs +0 -2
  324. package/dist/prepare-DRUV-g3X.mjs +0 -2
  325. package/dist/project-DedqCp59.mjs +0 -2
  326. package/dist/project-slug-DofjTFd-.mjs +0 -2
  327. package/dist/provision-Wu9ZBk9L.mjs +0 -2
  328. package/dist/resolve-project-BIeYs9Cw.mjs +0 -2
  329. package/dist/resolve-project-CP8rZs_p.mjs +0 -28
  330. package/dist/runner-9wjsSZx-.mjs +0 -2
  331. package/dist/runner-mysql-CEzKtmFb.mjs +0 -54
  332. package/dist/runner-mysql-CkFqZ6CE.mjs +0 -2
  333. package/dist/runner-pg-BGYRFdRp.mjs +0 -2
  334. package/dist/runtime/env-helpers.d.mts +0 -2
  335. package/dist/runtime/env-helpers.mjs +0 -2
  336. package/dist/validate-BJr9LfXy.mjs +0 -2
  337. package/dist/yarn-pnp-CUX_iTPA.mjs +0 -188
@@ -1,14 +1,16 @@
1
1
  #!/usr/bin/env node
2
2
  import { n as __toESM } from "../rolldown-runtime-DXIUcv95.mjs";
3
- import { a as join, n as dirname, u as resolve } from "../dist-BVqXeR_h.mjs";
3
+ import { a as join, c as resolve, n as dirname } from "../dist-ipQi0Q8y.mjs";
4
4
  import { t as require_picocolors } from "../picocolors-BTps1_gs.mjs";
5
- import { n as getVoidUserAgent, t as getCfCliVersion } from "../cf-user-agent-lKblH3zU.mjs";
5
+ import { l as formatUrl } from "../output-Ba6ZbrzY.mjs";
6
+ import { i as safePositional, n as getVoidUserAgent, r as readCfUploadOutput, t as getCfCliVersion } from "../cf-user-agent-ChjQp2MU.mjs";
6
7
  import { t as sanitizeTerminalLogText } from "../terminal-log-text-D9ACPOuG.mjs";
7
8
  import { copyFileSync, mkdtempSync, readFileSync, rmSync, writeFileSync } from "node:fs";
8
9
  import { fileURLToPath } from "node:url";
10
+ import { parsePlatformResourceOwnershipMarker } from "@void/platform";
9
11
  import { tmpdir } from "node:os";
10
- import { parse } from "jsonc-parser";
11
12
  import { stripVTControlCharacters } from "node:util";
13
+ import { parse } from "jsonc-parser";
12
14
  import { spawn, spawnSync } from "node:child_process";
13
15
  import { setGlobalProxyFromEnv } from "node:http";
14
16
  import { getCloudflareAuthUseKeyringFromEnv } from "@cloudflare/workers-auth";
@@ -68,12 +70,33 @@ function cloudflareVerificationUrl(output) {
68
70
  return /(?:Opening a link in your default browser:|Visit this link to authenticate:)\s*(https?:\/\/\S+)\s/i.exec(plain)?.[1] ?? /please visit:\s*(https?:\/\/\S+)\s/i.exec(plain)?.[1] ?? null;
69
71
  }
70
72
  function printCloudflareLoginLink(url) {
71
- console.log(`Open this link if your browser did not open: ${url}`);
73
+ console.log(`Open this link if your browser did not open: ${formatUrl(url)}`);
72
74
  }
73
75
  function printCloudflareLoginPrompt(code) {
74
76
  console.log(code ? `Opening Cloudflare login in your browser. Confirm the code ${import_picocolors.default.blue(code)} in your browser. Press Ctrl+C to cancel.` : "Opening Cloudflare login in your browser. Confirm the code shown in your browser. Press Ctrl+C to cancel.");
75
77
  }
76
78
  //#endregion
79
+ //#region src/cli/platform-worker-user-agent.ts
80
+ /** Attribute infrastructure uploads using the installer's existing ownership proof. */
81
+ function platformWorkerUploadAttribution(config) {
82
+ const vars = config.vars;
83
+ if (typeof vars?.PLATFORM_OWNERSHIP_MARKER !== "string") return;
84
+ try {
85
+ const marker = parsePlatformResourceOwnershipMarker(JSON.parse(vars.PLATFORM_OWNERSHIP_MARKER));
86
+ if (marker.resourceKind !== "worker" || marker.accountId !== config.account_id || marker.resourceName !== config.name || ![
87
+ "api-worker",
88
+ "proxy-worker",
89
+ "dispatch-worker",
90
+ "tail-worker",
91
+ "email-gateway-worker"
92
+ ].includes(marker.resourceKey)) return;
93
+ const version = typeof vars.PLATFORM_VERSION === "string" ? vars.PLATFORM_VERSION : "unknown";
94
+ return `void-platform-install/${encodeURIComponent(version)} void-role/${marker.resourceKey} void-installation/${encodeURIComponent(marker.installationId)}`;
95
+ } catch {
96
+ return;
97
+ }
98
+ }
99
+ //#endregion
77
100
  //#region src/cli/cloudflare-operation-process.ts
78
101
  const cf = join(dirname(fileURLToPath(import.meta.resolve("cf/package.json"))), "bin", "cf");
79
102
  const operation = (() => {
@@ -95,7 +118,7 @@ function cfEnvironment() {
95
118
  const env = {
96
119
  ...process.env,
97
120
  CF_DELEGATION: "1",
98
- CLI_VERSION: getCfCliVersion(),
121
+ CLI_VERSION: getCfCliVersion(operation.type === "versions.upload" || operation.type === "worker.deploy" ? platformWorkerUploadAttribution(config()) : void 0),
99
122
  CF_SEND_TELEMETRY: "false",
100
123
  CF_NO_OSC_PROGRESS: "1",
101
124
  CLOUDFLARE_AUTH_USE_KEYRING: process.env.CLOUDFLARE_AUTH_USE_KEYRING
@@ -230,7 +253,7 @@ async function withBuildOutput(raw, sourceMain, action) {
230
253
  }), { mode: 384 });
231
254
  const accountId = process.env.CLOUDFLARE_ACCOUNT_ID ?? raw.account_id;
232
255
  if (typeof accountId !== "string" || !accountId) throw new Error("Cloudflare account is not pinned for Worker deployment.");
233
- const { prepareCfBuildOutput } = await import("../cf-build-output-H9a97vME.mjs");
256
+ const { prepareCfBuildOutput } = await import("../cf-build-output-BU3hqdHu.mjs");
234
257
  const output = await prepareCfBuildOutput(scratch, accountId);
235
258
  if (!output) throw new Error("Could not prepare the Cloudflare Worker build output.");
236
259
  try {
@@ -399,7 +422,13 @@ async function readVersionResources(worker, versionId) {
399
422
  if (!Array.isArray(resources.bindings) || !resources.script || !resources.script_runtime) throw new Error("Cloudflare Worker version resources were incomplete.");
400
423
  return resources;
401
424
  }
402
- async function apiHeaders() {
425
+ let cachedApiHeaders;
426
+ /** This process runs one operation, so the credential is read once. */
427
+ function apiHeaders() {
428
+ cachedApiHeaders ??= readApiHeaders();
429
+ return cachedApiHeaders;
430
+ }
431
+ async function readApiHeaders() {
403
432
  const key = process.env.CLOUDFLARE_API_KEY ?? process.env.CF_API_KEY;
404
433
  const email = process.env.CLOUDFLARE_EMAIL ?? process.env.CF_EMAIL;
405
434
  if (key && email) return {
@@ -909,10 +938,7 @@ async function workerChanges() {
909
938
  });
910
939
  if (matching.length > 1) throw new Error("Queue consumer Worker identity is ambiguous.");
911
940
  for (const item of matching) {
912
- if (typeof item.consumer_id !== "string" || !item.consumer_id || item.consumer_id.startsWith("-") || /\s/.test(item.consumer_id) || [...item.consumer_id].some((character) => {
913
- const code = character.charCodeAt(0);
914
- return code < 32 || code === 127;
915
- }) || item.type !== void 0 && item.type !== "worker") throw new Error("Queue consumer ID or type is invalid.");
941
+ if (!safePositional(item.consumer_id) || /\s/.test(item.consumer_id) || item.type !== void 0 && item.type !== "worker") throw new Error("Queue consumer ID or type is invalid.");
916
942
  const deleted = runCf([
917
943
  "queues",
918
944
  "consumers",
@@ -959,11 +985,11 @@ async function workerChanges() {
959
985
  try {
960
986
  uploaded = object(parsedJson(called.stdout));
961
987
  } catch {}
962
- const output = called.stdout;
963
- const versionId = uploaded.version_id ?? uploaded.id ?? uploaded.versionId ?? output.match(/(?:Worker|Current) Version ID:\s*([0-9a-f]{8}-[0-9a-f-]{27})/i)?.[1];
988
+ const printed = readCfUploadOutput(called.stdout);
989
+ const versionId = uploaded.version_id ?? uploaded.id ?? uploaded.versionId ?? printed.versionId;
964
990
  if (typeof versionId !== "string" || !/^[0-9a-f]{8}-[0-9a-f-]{27}$/i.test(versionId)) throw new Error("Cloudflare did not return the uploaded Worker version ID.");
965
- const previewUrl = typeof uploaded.preview_url === "string" ? uploaded.preview_url : output.match(/Version Preview(?: Alias)? URL:\s*(https:\/\/\S+)/i)?.[1];
966
- const workersDevUrl = typeof uploaded.workers_dev_url === "string" ? uploaded.workers_dev_url : output.match(/(https:\/\/[a-z0-9.-]+\.workers\.dev(?:\/[^\s]*)?)/i)?.[1];
991
+ const previewUrl = typeof uploaded.preview_url === "string" ? uploaded.preview_url : printed.previewUrl;
992
+ const workersDevUrl = typeof uploaded.workers_dev_url === "string" ? uploaded.workers_dev_url : printed.workersDevUrl;
967
993
  return result(0, "", called.stderr, {
968
994
  versionId,
969
995
  ...previewUrl ? { previewUrl } : {},
@@ -1,44 +1,20 @@
1
- import "../env-public-DR7ZM6d-.mjs";
1
+ import "../env-public-CCdykygU.mjs";
2
2
  import "../types-CKWnYgfy.mjs";
3
3
  import "@void/deploy-cloudflare";
4
4
  //#region src/cli/env-validation.d.ts
5
- /**
6
- * The stable, values-free classification of a self-host schema failure.
7
- * env.ts evaluation and Standard-Schema validators run ARBITRARY user code that
8
- * can embed an env value in a thrown/rejected error (its `message`, `stack`, or
9
- * `cause`), and `VOID_ENV_UNMASK` disables redaction — so the original error is
10
- * never surfaced. Every {@link SelfHostSchemaError} instead carries only one of
11
- * these codes plus fixed text, so neither its message, its `reason` field, nor
12
- * its JSON serialization can echo a value.
13
- * - `schema-load-failed` — importing/evaluating the user's env.ts threw.
14
- * - `schema-validation-error` — a registered validator threw or rejected while
15
- * checking a production value.
16
- */
17
5
  type SelfHostSchemaFailureReason = "schema-load-failed" | "schema-validation-error";
18
- /**
19
- * The env-INSENSITIVE structural facts the self-host secret gate needs from the
20
- * project's env schema: whether a schema is registered, every server key, and the
21
- * REQUIRED key names (validators that reject the absent value). These are fixed by
22
- * env.ts's structure and require no dotenv loading.
23
- */
6
+ /** Schema structure the gate needs, read once in the env-schema probe child. */
24
7
  type SelfHostSchemaFacts = {
25
- /** Whether the project registered an env schema at all (no schema → nothing to gate). */
26
8
  hasSchema: boolean;
27
- /** Every server-only schema key. These may never be emitted as plaintext vars. */
9
+ /** Server-only keys. These may never be emitted as plaintext vars. */
28
10
  serverKeys: Array<string>;
29
- /** Required key NAMES — validator rejects `undefined`. Values-free. */
30
11
  requiredKeys: Array<string>;
31
12
  };
32
13
  //#endregion
33
14
  //#region src/cli/env-schema-probe.d.ts
34
- /** Input handed to the child (JSON in argv[3]). Path only — no env values cross here. */
35
15
  export type EnvSchemaProbeInput = {
36
16
  root: string;
37
17
  };
38
- /**
39
- * The structured result of the `facts` operation. `ok` carries the env-insensitive
40
- * schema facts; `schema-error` surfaces a values-free env.ts/validator failure.
41
- */
42
18
  export type EnvSchemaProbeResult = {
43
19
  kind: "ok";
44
20
  facts: SelfHostSchemaFacts;
@@ -46,11 +22,6 @@ export type EnvSchemaProbeResult = {
46
22
  kind: "schema-error";
47
23
  reason: SelfHostSchemaFailureReason;
48
24
  };
49
- /**
50
- * The structured result of the `validate-emitted` operation. `invalid-keys` carries
51
- * the FAILING key NAMES only (never a value); `schema-error` surfaces a values-free
52
- * env.ts/validator failure.
53
- */
54
25
  export type EnvSchemaValidateResult = {
55
26
  kind: "invalid-keys";
56
27
  invalidKeys: Array<string>;
@@ -58,10 +29,8 @@ export type EnvSchemaValidateResult = {
58
29
  kind: "schema-error";
59
30
  reason: SelfHostSchemaFailureReason;
60
31
  };
61
- /** Minimal structural shape of a `spawnSync`-style result (injectable in tests). */
62
32
  export type EnvSchemaProbeSpawnResult = {
63
33
  status: number | null;
64
- /** The fd-3 buffer (the framed result) — dedicated so stdout noise can't truncate it. */
65
34
  fd3: string | null;
66
35
  error?: Error | null;
67
36
  signal?: NodeJS.Signals | null;
@@ -70,15 +39,9 @@ export type EnvSchemaProbeSpawn = (command: string, args: Array<string>, options
70
39
  cwd: string;
71
40
  env: NodeJS.ProcessEnv;
72
41
  }) => EnvSchemaProbeSpawnResult;
73
- /**
74
- * PARENT side (`facts`): return the env-insensitive schema facts. Runs pre-build so
75
- * a broken env.ts fails fast, before any account operation.
76
- */
42
+ /** Runs before the build so a broken env.ts fails before any account operation. */
77
43
  export declare function resolveEnvSchemaFactsViaSubprocess(input: EnvSchemaProbeInput, env: NodeJS.ProcessEnv, spawn?: EnvSchemaProbeSpawn): Promise<EnvSchemaProbeResult>;
78
- /**
79
- * PARENT side (`validate-emitted`): validate the REAL emitted worker `vars` against
80
- * the schema validators and return the FAILING key NAMES only. Runs post-build so
81
- * the values validated are exactly what the worker ships.
82
- */
44
+ /** Runs after the build so it validates exactly the vars the Worker ships. */
83
45
  export declare function validateEmittedVarsViaSubprocess(input: EnvSchemaProbeInput, env: NodeJS.ProcessEnv, spawn?: EnvSchemaProbeSpawn): Promise<EnvSchemaValidateResult>;
84
- //#endregion
46
+ //#endregion
47
+ export {};
@@ -1,47 +1,19 @@
1
- import { t as findEnvFile } from "../env-types-CwXgeMgL.mjs";
1
+ import { t as findEnvFile } from "../env-types-DS2_y4X8.mjs";
2
2
  import { writeSync } from "node:fs";
3
3
  import { fileURLToPath } from "node:url";
4
4
  import { spawnSync } from "node:child_process";
5
5
  //#region src/cli/env-schema-probe.ts
6
6
  /**
7
- * The self-host `void deploy --platform cloudflare` orchestrator validates the REAL
8
- * build artifact (`dist/ssr/wrangler.json` `vars`) instead of predicting it. Two
9
- * pieces still need project code, and BOTH run here — in an ISOLATED SUBPROCESS —
10
- * because the orchestrator runs in a credential-bearing PARENT (CF Access service
11
- * token / `CLOUDFLARE_API_TOKEN` in `process.env`) and must NOT evaluate arbitrary
12
- * project code in-process:
13
- *
14
- * 1. `facts` — the env-INSENSITIVE server and required key names, fixed by
15
- * env.ts's structure.
16
- * 2. `validate-emitted` — validate the REAL emitted worker `vars` (post-build
17
- * ground truth) against the schema's Standard-Schema validators and return the
18
- * FAILING key NAMES only. A required var shipped with an INVALID value (fails
19
- * the validator) must fail the deploy closed before any remote mutation, not
20
- * only at worker boot.
21
- *
22
- * Three hardening rules apply to the child:
23
- * - the framed result is written to a DEDICATED file descriptor (fd 3), NOT
24
- * stdout, so anything the user's code prints while evaluating can never
25
- * truncate or interleave with the result;
26
- * - the caller scrubs the FULL wrangler-auth credential set from the child env
27
- * (neither derivation needs credentials);
28
- * - the parent NEVER captures the child's stdout/stderr — they are IGNORED
29
- * (fds 1 + 2), never buffered — so a leaking env.ts / validator cannot print a
30
- * raw secret to the terminal or CI log, and every failure surfaces as a stable
31
- * classification only.
7
+ * Runs the project's env.ts for the self-host deploy in a child process. The caller
8
+ * passes the build env with Cloudflare credentials removed. Two operations: `facts`
9
+ * (server and required key names) and `validate-emitted` (emitted vars that fail the
10
+ * schema). The child writes its result to fd 3 and its stdout/stderr are ignored, so
11
+ * user output cannot corrupt the result or print a secret into the deploy log.
12
+ * Anything unexpected fails closed.
32
13
  */
33
- /** argv[2] sentinel that switches this module from library import to child-process entry. */
14
+ /** argv[2] marker that runs this module as the child. */
34
15
  const PROBE_MARKER = "__void-deploy-env-schema-probe__";
35
- /** The dedicated fd the child writes its framed result to (see stdio config below). */
36
16
  const RESULT_FD = 3;
37
- /**
38
- * Default spawner: run THIS module as a child and read ONLY the dedicated fd-3
39
- * result. stdin is ignored, stdout/stderr are IGNORED (fds 1 + 2) so a broken /
40
- * leaking env.ts can never print a raw secret to the terminal or a captured CI log,
41
- * and fd 3 is a pipe carrying the framed JSON result. `spawnSync`'s `output` array
42
- * is indexed by fd, so `output[3]` is the result channel — isolated from stdout
43
- * entirely (and unaffected by ignoring fds 1 + 2).
44
- */
45
17
  const defaultSpawn = (command, args, options) => {
46
18
  const result = spawnSync(command, args, {
47
19
  cwd: options.cwd,
@@ -62,19 +34,7 @@ const defaultSpawn = (command, args, options) => {
62
34
  signal: result.signal ?? null
63
35
  };
64
36
  };
65
- /**
66
- * Spawn THIS module as a child (`node <self> <marker> <json>`) under the scrubbed
67
- * `env` for one operation, and return its framed fd-3 result. The child inherits
68
- * ONLY `env` (the caller scrubs the full wrangler-auth credential set), so the
69
- * arbitrary project code never sees the parent's credentials. `import.meta.url` is
70
- * this module's own path — a named build entry (`dist/cli/env-schema-probe.mjs`),
71
- * stable in source and dist — so the child re-enters here and hits the {@link
72
- * PROBE_MARKER} branch. Throws (caller fails closed) on a spawn error, a signal-kill,
73
- * a nonzero exit, or a missing/unparseable result — exactly the cases where the
74
- * project code itself could not be evaluated. NEVER echoes the child's
75
- * stdout/stderr (never captured), so no env value the child may have printed can
76
- * reach the thrown error.
77
- */
37
+ /** Run this module as the child for one operation and parse its fd-3 result. */
78
38
  async function spawnEnvSchemaProbe(op, input, env, spawn) {
79
39
  const childInput = {
80
40
  op,
@@ -96,10 +56,7 @@ async function spawnEnvSchemaProbe(op, input, env, spawn) {
96
56
  if (!parsed) throw new Error("the env-schema probe produced no parseable result.");
97
57
  return parsed;
98
58
  }
99
- /**
100
- * PARENT side (`facts`): return the env-insensitive schema facts. Runs pre-build so
101
- * a broken env.ts fails fast, before any account operation.
102
- */
59
+ /** Runs before the build so a broken env.ts fails before any account operation. */
103
60
  async function resolveEnvSchemaFactsViaSubprocess(input, env, spawn = defaultSpawn) {
104
61
  if (findEnvFile(input.root) === null) return {
105
62
  kind: "ok",
@@ -113,22 +70,12 @@ async function resolveEnvSchemaFactsViaSubprocess(input, env, spawn = defaultSpa
113
70
  if (result.kind === "invalid-keys") throw new Error("the env-schema probe returned an unexpected result for the facts operation.");
114
71
  return result;
115
72
  }
116
- /**
117
- * PARENT side (`validate-emitted`): validate the REAL emitted worker `vars` against
118
- * the schema validators and return the FAILING key NAMES only. Runs post-build so
119
- * the values validated are exactly what the worker ships.
120
- */
73
+ /** Runs after the build so it validates exactly the vars the Worker ships. */
121
74
  async function validateEmittedVarsViaSubprocess(input, env, spawn = defaultSpawn) {
122
75
  const result = await spawnEnvSchemaProbe("validate-emitted", input, env, spawn);
123
76
  if (result.kind === "ok") throw new Error("the env-schema probe returned an unexpected result for the validate-emitted operation.");
124
77
  return result;
125
78
  }
126
- /**
127
- * Parse the child's framed result from the DEDICATED fd-3 channel. The whole buffer
128
- * is the JSON result (nothing else writes to fd 3), so no sentinel scan is needed:
129
- * config/env.ts stdout noise lives on a different fd and can never reach here. Returns undefined on a missing/unparseable/ill-shaped result
130
- * so the caller fails closed.
131
- */
132
79
  function parseProbeResult(fd3) {
133
80
  const trimmed = fd3.trim();
134
81
  if (!trimmed) return;
@@ -153,22 +100,16 @@ function parseProbeResult(fd3) {
153
100
  reason: record.reason
154
101
  };
155
102
  }
156
- /** Structural guard for the values-free facts the child returns. */
157
103
  function isSchemaFacts(value) {
158
104
  if (!value || typeof value !== "object") return false;
159
105
  const f = value;
160
106
  return typeof f.hasSchema === "boolean" && Array.isArray(f.requiredKeys) && f.requiredKeys.every((k) => typeof k === "string") && Array.isArray(f.serverKeys) && f.serverKeys.every((k) => typeof k === "string");
161
107
  }
162
- /** Write the framed result to the dedicated fd 3 (synchronous → flushed before exit). */
163
108
  function emitResult(result) {
164
109
  writeSync(RESULT_FD, JSON.stringify(result));
165
110
  }
166
- /**
167
- * CHILD side (`facts`): import the user's env.ts and derive its structural schema
168
- * facts. The import stays isolated because env.ts is arbitrary project code.
169
- */
170
111
  async function runFactsChild(root) {
171
- const { deriveSelfHostSchemaFacts, SelfHostSchemaError } = await import("../env-validation-CrVNjsPm.mjs");
112
+ const { deriveSelfHostSchemaFacts, SelfHostSchemaError } = await import("../env-validation-BT7z-qpQ.mjs");
172
113
  try {
173
114
  emitResult({
174
115
  kind: "ok",
@@ -185,15 +126,9 @@ async function runFactsChild(root) {
185
126
  throw err;
186
127
  }
187
128
  }
188
- /**
189
- * CHILD side (`validate-emitted`): read the REAL emitted worker `vars` the build
190
- * baked into `dist/ssr/wrangler.json` (ground truth), validate them against the
191
- * schema's validators, and emit the FAILING key NAMES only. The parent already
192
- * confirmed the artifact exists, so a read failure here is a probe-infrastructure
193
- * fault → fail closed as a values-free schema error.
194
- */
129
+ /** The parent already found the emitted config, so a read failure here fails closed. */
195
130
  async function runValidateEmittedChild(root) {
196
- const { computeInvalidEmittedKeys, readEmittedWorkerVars, SelfHostSchemaError } = await import("../env-validation-CrVNjsPm.mjs");
131
+ const { computeInvalidEmittedKeys, readEmittedWorkerVars, SelfHostSchemaError } = await import("../env-validation-BT7z-qpQ.mjs");
197
132
  const emitted = readEmittedWorkerVars(root);
198
133
  if (!emitted.ok) {
199
134
  emitResult({
@@ -218,7 +153,6 @@ async function runValidateEmittedChild(root) {
218
153
  throw err;
219
154
  }
220
155
  }
221
- /** Dispatch the child to the requested operation. */
222
156
  async function runEnvSchemaProbeChild(rawInput) {
223
157
  const input = JSON.parse(rawInput);
224
158
  if (input.op === "validate-emitted") {
@@ -0,0 +1 @@
1
+ export { r as PlatformClient } from "./client-DM9Kcf4e.mjs";