void 0.21.9 → 0.23.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 (293) hide show
  1. package/README.md +5 -1
  2. package/dist/{account-cmd-DZZGK80W.mjs → account-cmd-C84Ee8cO.mjs} +5 -5
  3. package/dist/{scan-ClYmX3sa.mjs → application-analysis-BVsVqc11.mjs} +135 -18
  4. package/dist/application-routing-B7QEjqSR.mjs +27 -0
  5. package/dist/{auth-CZuiVsFh.mjs → auth-CCjt0hcq.mjs} +1 -1
  6. package/dist/{auth-DLNN0D3Z.mjs → auth-CSkdO2Bb.mjs} +4 -47
  7. package/dist/{auth-link-B_CeugBw.mjs → auth-link-CioEg6uY.mjs} +5 -5
  8. package/dist/{auth-router-BgEFRuvZ.mjs → auth-router-BsR981d4.mjs} +5 -5
  9. package/dist/{better-auth-shared-rsBGBvWJ.mjs → better-auth-shared-hy6RPh9W.mjs} +13 -2
  10. package/dist/{build-cmd-Dpt0jd-x.mjs → build-cmd-LzvNJORH.mjs} +19 -7
  11. package/dist/{cache-7_UeZdTk.mjs → cache-C4MvnrMH.mjs} +4 -4
  12. package/dist/{cancel-deploy-D23R1RXT.mjs → cancel-deploy-abUxpP2n.mjs} +4 -4
  13. package/dist/{cf-build-output-CGT03qCD.mjs → cf-build-output-BPqOT964.mjs} +141 -63
  14. package/dist/cf-build-output-_0HNWysu.mjs +2 -0
  15. package/dist/cli/cli.mjs +114 -460
  16. package/dist/cli/cloudflare-operation-process.mjs +1103 -0
  17. package/dist/cli/env-schema-probe.d.mts +2 -1
  18. package/dist/cli/env-schema-probe.mjs +3 -3
  19. package/dist/client-Cu7jWiF1.mjs +2 -0
  20. package/dist/{client-QTl6ko_D.mjs → client-RV8NVeB8.mjs} +165 -21
  21. package/dist/{cloudflare-auth-C4_GPZr0.mjs → cloudflare-auth-Qdc7tw8F.mjs} +41 -43
  22. package/dist/{cloudflare-cmd-bSmZ1d5L.mjs → cloudflare-cmd-BcrVyTmJ.mjs} +9 -10
  23. package/dist/cloudflare-config-Bktvwtpf.mjs +182 -0
  24. package/dist/{cloudflare-connect-jAwacxxP.mjs → cloudflare-connect-B8uPZ4nx.mjs} +4 -4
  25. package/dist/{cloudflare-operations-BipGMJ5O.mjs → cloudflare-operations-AiWashgg.mjs} +1 -1
  26. package/dist/{cloudflare-operations-sMZXpk_S.mjs → cloudflare-operations-fxHb-byx.mjs} +118 -203
  27. package/dist/{preset-UHj9ARyP.mjs → cloudflare-process-B-wekeR6.mjs} +93 -6
  28. package/dist/{config-CF69HgXc.d.mts → config-BMHb8RCj.d.mts} +2 -2
  29. package/dist/{config-CafTW6Cz.mjs → config-Br_JZD6u.mjs} +2 -7
  30. package/dist/config-C_XRIPx2.mjs +89 -0
  31. package/dist/{config-s7Xj7tPb.mjs → config-CyQ-wVd7.mjs} +1 -1
  32. package/dist/config-entry.d.mts +1 -1
  33. package/dist/{config-write-BSduPMY8.mjs → config-write-B1f88wJA.mjs} +1 -1
  34. package/dist/{connect-BsUSRzln.mjs → connect-Bd4kJd9U.mjs} +6 -6
  35. package/dist/{create-project-BniEV0OW.mjs → create-project-Boczwj5r.mjs} +1 -1
  36. package/dist/{create-project-DBfFSZKY.mjs → create-project-bMf6ffLZ.mjs} +9 -5
  37. package/dist/{db-hRrvZaq_.mjs → db-8uG64XLl.mjs} +26 -26
  38. package/dist/{delete-D6dZ9B6B.mjs → delete-NvbiyeJf.mjs} +4 -4
  39. package/dist/{deploy-WaAQez1O.mjs → deploy-DzAIwqNU.mjs} +944 -607
  40. package/dist/{deploy-DDz7c8LK.mjs → deploy-bjXdFCtn.mjs} +1 -1
  41. package/dist/{dist-BR1quN_w.mjs → dist-AoCzRTJE.mjs} +226 -60
  42. package/dist/{dist-C5fND3R0.mjs → dist-BuDuKZJv.mjs} +1 -1
  43. package/dist/{dist-Dn6nn2IU.mjs → dist-CTBk70IR.mjs} +42 -42
  44. package/dist/{domain-Dmhvb2oU.mjs → domain-y5Tvydvo.mjs} +5 -5
  45. package/dist/{email-DFi-s2t4.mjs → email-B3umsW75.mjs} +15 -30
  46. package/dist/{env-Csi-tMbT.mjs → env-BS6qYHDb.mjs} +6 -6
  47. package/dist/{env-public-D_6u46fX.d.mts → env-public-BX_r8HR6.d.mts} +2 -1
  48. package/dist/{env-validation-BB4GkLxn.mjs → env-validation-BPn7vk-V.mjs} +18 -71
  49. package/dist/{env-validation-BXge7uyK.mjs → env-validation-DbTg7-ar.mjs} +1 -1
  50. package/dist/{fetch-CXDChK7B.mjs → fetch-BIZJh7vR.mjs} +2 -2
  51. package/dist/{fetch-stream-AOByI7Ki.mjs → fetch-stream-IvCYKyQL.mjs} +24 -4
  52. package/dist/{gen-Dz3X1Qab.mjs → gen-B580--vC.mjs} +5 -5
  53. package/dist/gen-BVaUUumi.mjs +2 -0
  54. package/dist/{github-cmd-BED3_9JD.mjs → github-cmd-v45BdfKX.mjs} +6 -8
  55. package/dist/{handler-BXJTXd02.d.mts → handler-CZ4nAylQ.d.mts} +2 -1
  56. package/dist/{headers-BOg_velo.mjs → headers-DWi2IXWx.mjs} +1 -1
  57. package/dist/help-DofyZuY7.mjs +2 -0
  58. package/dist/{help-DC7gdz7L.mjs → help-daGKjXGk.mjs} +268 -666
  59. package/dist/index.d.mts +1 -1
  60. package/dist/index.mjs +305 -1490
  61. package/dist/info-B97bTX9N.mjs +113 -0
  62. package/dist/{init-WO0JlPx8.mjs → init-Bvy7zrBo.mjs} +51 -20
  63. package/dist/limits-Bq5LG8Id.d.mts +27 -0
  64. package/dist/limits-Cjuk2VPm.mjs +68 -0
  65. package/dist/{link-CsHOinF7.mjs → link-CDqqCjFl.mjs} +5 -5
  66. package/dist/{list-CDb-4bZ1.mjs → list-CZj0dzKY.mjs} +5 -5
  67. package/dist/{live-CKiJilLr.d.mts → live-Chw1eIMv.d.mts} +1 -1
  68. package/dist/{local-d1-CC8sKFGu.mjs → local-d1-2CMnpuW_.mjs} +2 -2
  69. package/dist/login-DYt_An22.mjs +2 -0
  70. package/dist/{login-DvqXsfGs.mjs → login-UZKFM_u7.mjs} +5 -5
  71. package/dist/{logs-BdfiOezj.mjs → logs-CUZ6t9t3.mjs} +5 -5
  72. package/dist/migrate-8_2u55MD.mjs +2 -0
  73. package/dist/{migrate-B8KuoYsO.mjs → migrate-DHul7PRV.mjs} +5 -4
  74. package/dist/{node-BM43oz4G.mjs → node-BkyRWRx8.mjs} +2 -2
  75. package/dist/operator-args-CLgKGlwU.mjs +690 -0
  76. package/dist/{operator-cmd-03819ATr.mjs → operator-cmd-DBA6dl0m.mjs} +69 -23
  77. package/dist/output-Dm_A4Tbv.mjs +81 -0
  78. package/dist/pages/client.d.mts +34 -2
  79. package/dist/pages/client.mjs +59 -3
  80. package/dist/pages/index.d.mts +1 -1
  81. package/dist/pages/index.mjs +3 -3
  82. package/dist/pages/islands-plugin.d.mts +16 -6
  83. package/dist/pages/islands-plugin.mjs +2 -2
  84. package/dist/pages/protocol.d.mts +2 -2
  85. package/dist/pages/protocol.mjs +2 -308
  86. package/dist/{parse-filename-DioPHiR9.mjs → parse-filename-CUbj-1MP.mjs} +35 -1
  87. package/dist/{output-CCH48AMM.mjs → picocolors-BTps1_gs.mjs} +2 -76
  88. package/dist/plan-D1Q5rf-r.mjs +2 -0
  89. package/dist/plan-NPpwZ_kc.mjs +58 -0
  90. package/dist/platform-args-BJdRtlLq.mjs +506 -0
  91. package/dist/platform-args-D3RXyR6h.mjs +2 -0
  92. package/dist/{platform-auth-config-z92h63q5.mjs → platform-auth-config-B56E9YP1.mjs} +4 -4
  93. package/dist/{platform-auth-protection-DeE3yr2R.mjs → platform-auth-protection-BDWO_aER.mjs} +3 -3
  94. package/dist/{platform-auth-recovery-o_340Ixx.mjs → platform-auth-recovery-1gg4CSRe.mjs} +4 -4
  95. package/dist/{platform-cmd-C4ZV3Vpy.mjs → platform-cmd-Bt-1w6pY.mjs} +1 -1
  96. package/dist/{platform-cmd-DNl8WosH.mjs → platform-cmd-DMcQStSc.mjs} +26 -5
  97. package/dist/{platform-domain-CU1JtJkW.mjs → platform-domain-BNkcz0OB.mjs} +36 -9
  98. package/dist/{platform-lifecycle-Bc047IeT.mjs → platform-lifecycle-9OyBALhH.mjs} +850 -276
  99. package/dist/{platform-lifecycle-Bs2qx1E3.mjs → platform-lifecycle-BE6C_jxh.mjs} +1 -1
  100. package/dist/{platform-management-CVpGI9Y5.mjs → platform-management-CjwLVQwN.mjs} +59 -11
  101. package/dist/{platform-management-C8tt6D8h.mjs → platform-management-CnyTdcWX.mjs} +1 -1
  102. package/dist/platform-plans-config-BNGKGr4P.mjs +359 -0
  103. package/dist/{platform-recovery-dvUaptLr.mjs → platform-recovery-D6KSpuFm.mjs} +2 -2
  104. package/dist/{plugin-inference-BMfKRSqE.mjs → plugin-inference-CXWnn79A.mjs} +174 -64
  105. package/dist/{prepare-DyZ-Yok5.mjs → prepare-B5Mkic5u.mjs} +3 -3
  106. package/dist/{prepare-C3kt3Rst.mjs → prepare-DOsL0CC9.mjs} +4 -20
  107. package/dist/prepare-cgvDMtSb.mjs +2 -0
  108. package/dist/{project-cmd-B44I8J_W.mjs → project-cmd-CNzrqvBv.mjs} +30 -16
  109. package/dist/{project-team-BkbYIsXN.mjs → project-team-DQOWPfQT.mjs} +4 -4
  110. package/dist/{project-token-C8xEEQnB.mjs → project-token-CTDYU0Cc.mjs} +4 -4
  111. package/dist/project-zero-trust-BNAkW-_0.mjs +63 -0
  112. package/dist/{protocol-ZH3jP4a7.d.mts → protocol-CjF_iI9X.d.mts} +2 -2
  113. package/dist/protocol-U7bfjHmA.mjs +331 -0
  114. package/dist/{provision-DNtrtaVD.mjs → provision-C4ORE7G7.mjs} +1 -1
  115. package/dist/{provision-BhreDAOS.mjs → provision-CJFgTZY8.mjs} +111 -215
  116. package/dist/{requests-DFyhBMaf.mjs → requests-MhxYnau8.mjs} +4 -4
  117. package/dist/resource-name-C7LVpcRm.mjs +11 -0
  118. package/dist/{rollback-DHHxXZiS.mjs → rollback-CJ6iSDoU.mjs} +5 -5
  119. package/dist/route-url-CG7U-cRN.mjs +15 -0
  120. package/dist/{runner-B8wXwWlo.mjs → runner-CXA9Fh8h.mjs} +1 -1
  121. package/dist/{runner-p-dMs2UN.mjs → runner-Ol0TNjk6.mjs} +2 -2
  122. package/dist/runtime/ai.d.mts +12 -8
  123. package/dist/runtime/ai.mjs +84 -17
  124. package/dist/runtime/better-auth-mysql.mjs +1 -1
  125. package/dist/runtime/better-auth-pg.mjs +1 -1
  126. package/dist/runtime/better-auth.mjs +1 -1
  127. package/dist/runtime/client-react.mjs +2 -2
  128. package/dist/runtime/client-solid.mjs +2 -2
  129. package/dist/runtime/client-svelte.mjs +2 -2
  130. package/dist/runtime/client-vue.mjs +2 -2
  131. package/dist/runtime/client.mjs +2 -2
  132. package/dist/runtime/durable.d.mts +3 -1
  133. package/dist/runtime/durable.mjs +4 -1
  134. package/dist/runtime/email/testing.mjs +1 -1
  135. package/dist/runtime/env-public.d.mts +1 -1
  136. package/dist/runtime/fetch-stream.mjs +1 -1
  137. package/dist/runtime/fetch.mjs +1 -1
  138. package/dist/runtime/handler.d.mts +1 -1
  139. package/dist/runtime/kv.mjs +0 -1
  140. package/dist/runtime/limits.d.mts +2 -0
  141. package/dist/runtime/limits.mjs +2 -0
  142. package/dist/runtime/live-client.d.mts +1 -1
  143. package/dist/runtime/live-server.mjs +25 -16
  144. package/dist/runtime/live.d.mts +1 -1
  145. package/dist/runtime/migration-handler.mjs +62 -42
  146. package/dist/runtime/route-url.d.mts +4 -0
  147. package/dist/runtime/route-url.mjs +2 -0
  148. package/dist/runtime/routing.d.mts +180 -0
  149. package/dist/runtime/routing.mjs +1082 -0
  150. package/dist/runtime/sandbox-container.d.mts +3 -0
  151. package/dist/runtime/sandbox-container.mjs +2 -0
  152. package/dist/runtime/sandbox.d.mts +4 -32
  153. package/dist/runtime/sandbox.mjs +151 -75
  154. package/dist/runtime/sse.mjs +1 -1
  155. package/dist/runtime/validator.d.mts +1 -1
  156. package/dist/runtime/ws-server.d.mts +4 -2
  157. package/dist/runtime/ws-server.mjs +27 -2
  158. package/dist/runtime/ws.d.mts +2 -2
  159. package/dist/runtime/ws.mjs +8 -6
  160. package/dist/sandbox-XZAqzFlG.d.mts +52 -0
  161. package/dist/sandbox-container-Bo0eiFKz.d.mts +73 -0
  162. package/dist/sandbox-container-C6ItmVuN.mjs +281 -0
  163. package/dist/{scan-4tfN-PSn.mjs → scan-C7okrLyM.mjs} +4 -35
  164. package/dist/{secret-DN9sSNiV.mjs → secret-Dli5fP0B.mjs} +6 -6
  165. package/dist/{skills-O6FUaizK.mjs → skills-D1II1Juz.mjs} +1 -1
  166. package/dist/{sse-BaC1jXko.mjs → sse-CQNaDFFV.mjs} +6 -3
  167. package/dist/{subcommand-prompt-BuGYkAkC.mjs → subcommand-prompt-CY1C4fvl.mjs} +2 -2
  168. package/dist/validate-Dq_L3s0S.mjs +2 -0
  169. package/dist/{validate-CIUwFpjB.mjs → validate-ctOrgiS3.mjs} +2 -1
  170. package/dist/{wrangler-BymcxrRa.mjs → wrangler-7K-bW_DL.mjs} +14 -235
  171. package/dist/{ws-BwcqizuH.d.mts → ws-CL1w7GXU.d.mts} +13 -2
  172. package/package.json +48 -33
  173. package/sandbox.Dockerfile +4 -0
  174. package/schema.json +10 -22
  175. package/skills/migrate-vite-cloudflare-to-void/SKILL.md +34 -157
  176. package/skills/void/SKILL.md +50 -133
  177. package/skills/void/docs/guide/ai.md +94 -84
  178. package/skills/void/docs/guide/app-types.md +3 -32
  179. package/skills/void/docs/guide/auth.md +12 -116
  180. package/skills/void/docs/guide/database/d1.md +9 -54
  181. package/skills/void/docs/guide/database/mysql.md +1 -1
  182. package/skills/void/docs/guide/database/postgresql.md +5 -26
  183. package/skills/void/docs/guide/database.md +23 -75
  184. package/skills/void/docs/guide/deployment.md +27 -113
  185. package/skills/void/docs/guide/durable-state.md +43 -18
  186. package/skills/void/docs/guide/edge/headers.md +3 -47
  187. package/skills/void/docs/guide/edge/prerendering.md +5 -20
  188. package/skills/void/docs/guide/edge/redirects.md +11 -64
  189. package/skills/void/docs/guide/edge/revalidation.md +6 -19
  190. package/skills/void/docs/guide/edge/rewrites.md +56 -284
  191. package/skills/void/docs/guide/edge/static-assets.md +23 -72
  192. package/skills/void/docs/guide/email/domains.md +112 -0
  193. package/skills/void/docs/guide/email/receiving.md +139 -0
  194. package/skills/void/docs/guide/email/sending.md +231 -0
  195. package/skills/void/docs/guide/email.md +13 -619
  196. package/skills/void/docs/guide/env-migration.md +11 -11
  197. package/skills/void/docs/guide/env-vars.md +9 -29
  198. package/skills/void/docs/guide/index.md +0 -15
  199. package/skills/void/docs/guide/jobs.md +3 -18
  200. package/skills/void/docs/guide/kv.md +5 -11
  201. package/skills/void/docs/guide/live.md +5 -56
  202. package/skills/void/docs/guide/pages-routing/actions-and-forms.md +78 -125
  203. package/skills/void/docs/guide/pages-routing/head.md +10 -10
  204. package/skills/void/docs/guide/pages-routing/islands.md +6 -36
  205. package/skills/void/docs/guide/pages-routing/layouts.md +6 -128
  206. package/skills/void/docs/guide/pages-routing/loaders.md +3 -19
  207. package/skills/void/docs/guide/pages-routing/markdown.md +13 -171
  208. package/skills/void/docs/guide/pages-routing/overview.md +7 -17
  209. package/skills/void/docs/guide/pages-routing/view-transitions.md +1 -1
  210. package/skills/void/docs/guide/platform/administration/access.md +1 -4
  211. package/skills/void/docs/guide/platform/administration/email.md +35 -8
  212. package/skills/void/docs/guide/platform/administration/operations.md +26 -4
  213. package/skills/void/docs/guide/platform/administration/plans.md +126 -0
  214. package/skills/void/docs/guide/platform/administration/projects.md +5 -2
  215. package/skills/void/docs/guide/platform/administration/zero-trust.md +189 -0
  216. package/skills/void/docs/guide/platform/development/local.md +2 -2
  217. package/skills/void/docs/guide/platform/development/runtime.md +3 -13
  218. package/skills/void/docs/guide/platform/development/schema-ci.md +0 -58
  219. package/skills/void/docs/guide/platform/installation/credentials.md +6 -4
  220. package/skills/void/docs/guide/platform/installation/domains.md +31 -3
  221. package/skills/void/docs/guide/platform/installation/first-deployment.md +6 -0
  222. package/skills/void/docs/guide/platform/installation/maintenance.md +3 -1
  223. package/skills/void/docs/guide/platform/installation/prerequisites.md +21 -16
  224. package/skills/void/docs/guide/platform/installation/setup.md +9 -5
  225. package/skills/void/docs/guide/platform/installation/uninstall.md +17 -2
  226. package/skills/void/docs/guide/platform-administration.md +2 -0
  227. package/skills/void/docs/guide/queues.md +7 -9
  228. package/skills/void/docs/guide/quickstart.md +38 -37
  229. package/skills/void/docs/guide/remote-dev.md +4 -9
  230. package/skills/void/docs/guide/sandboxes.md +78 -41
  231. package/skills/void/docs/guide/server-routing.md +9 -72
  232. package/skills/void/docs/guide/sse.md +4 -18
  233. package/skills/void/docs/guide/ssg.md +3 -15
  234. package/skills/void/docs/guide/ssr.md +14 -62
  235. package/skills/void/docs/guide/storage.md +9 -4
  236. package/skills/void/docs/guide/type-safety.md +3 -14
  237. package/skills/void/docs/guide/typed-fetch.md +3 -7
  238. package/skills/void/docs/guide/websockets.md +68 -40
  239. package/skills/void/docs/integrations/agents.md +3 -3
  240. package/skills/void/docs/integrations/cloudflare.md +85 -316
  241. package/skills/void/docs/integrations/frameworks/analog.md +5 -64
  242. package/skills/void/docs/integrations/frameworks/astro.md +4 -73
  243. package/skills/void/docs/integrations/frameworks/nuxt.md +5 -62
  244. package/skills/void/docs/integrations/frameworks/overview.md +11 -54
  245. package/skills/void/docs/integrations/frameworks/react-router.md +5 -60
  246. package/skills/void/docs/integrations/frameworks/sveltekit.md +6 -65
  247. package/skills/void/docs/integrations/frameworks/tanstack-start.md +4 -62
  248. package/skills/void/docs/integrations/nodejs-bun-deno.md +5 -69
  249. package/skills/void/docs/reference/api/auth.md +156 -0
  250. package/skills/void/docs/reference/api/client.md +87 -0
  251. package/skills/void/docs/reference/api/database.md +95 -0
  252. package/skills/void/docs/reference/api/durable.md +46 -0
  253. package/skills/void/docs/reference/api/env.md +50 -0
  254. package/skills/void/docs/reference/api/handlers.md +254 -0
  255. package/skills/void/docs/reference/api/pages.md +241 -0
  256. package/skills/void/docs/reference/api/plugin.md +39 -0
  257. package/skills/void/docs/reference/api/resources.md +109 -0
  258. package/skills/void/docs/reference/api/rewrites.md +76 -0
  259. package/skills/void/docs/reference/api/types.md +92 -0
  260. package/skills/void/docs/reference/api.md +56 -1218
  261. package/skills/void/docs/reference/cli/auth.md +88 -0
  262. package/skills/void/docs/reference/cli/database.md +128 -0
  263. package/skills/void/docs/reference/cli/deploy.md +85 -0
  264. package/skills/void/docs/reference/cli/domains.md +41 -0
  265. package/skills/void/docs/reference/cli/email.md +129 -0
  266. package/skills/void/docs/reference/cli/generate.md +116 -0
  267. package/skills/void/docs/reference/cli/github.md +189 -0
  268. package/skills/void/docs/reference/cli/platform-config.md +92 -0
  269. package/skills/void/docs/reference/cli/platform-email.md +81 -0
  270. package/skills/void/docs/reference/cli/platform-installation.md +127 -0
  271. package/skills/void/docs/reference/cli/platform-operations.md +90 -0
  272. package/skills/void/docs/reference/cli/platform-users.md +89 -0
  273. package/skills/void/docs/reference/cli/platform-zero-trust.md +45 -0
  274. package/skills/void/docs/reference/cli/platform.md +70 -0
  275. package/skills/void/docs/reference/cli/project.md +214 -0
  276. package/skills/void/docs/reference/cli/secrets.md +76 -0
  277. package/skills/void/docs/reference/cli/setup.md +70 -0
  278. package/skills/void/docs/reference/cli.md +33 -1621
  279. package/skills/void/docs/reference/config.md +26 -32
  280. package/skills/void/docs/reference/resource-inference.md +3 -58
  281. package/skills/void/docs/reference/structure.md +14 -41
  282. package/dist/canonical-json-DuDiiUsQ.mjs +0 -13
  283. package/dist/cli/cf-compat.mjs +0 -968
  284. package/dist/client-4cDVv7BO.mjs +0 -2
  285. package/dist/gen-Vnv2f65C.mjs +0 -2
  286. package/dist/help-DQMfeKMz.mjs +0 -2
  287. package/dist/login-DFQk7rbW.mjs +0 -2
  288. package/dist/migrate-TsHGBnDA.mjs +0 -2
  289. package/dist/plan-BEZ8VJW0.mjs +0 -256
  290. package/dist/plan-DpuOr14e.mjs +0 -2
  291. package/dist/prepare-BZXkjdNe.mjs +0 -2
  292. package/dist/validate-EKmJWxmy.mjs +0 -2
  293. /package/dist/cli/{cf-compat.d.mts → cloudflare-operation-process.d.mts} +0 -0
@@ -287,7 +287,7 @@ function wrapAnsi(string, columns, options) {
287
287
  return String(string).normalize().split(CRLF_OR_LF).map((line) => exec(line, columns, options)).join("\n");
288
288
  }
289
289
  //#endregion
290
- //#region ../../node_modules/.pnpm/@clack+core@1.5.0/node_modules/@clack/core/dist/index.mjs
290
+ //#region ../../node_modules/.pnpm/@clack+core@1.5.1/node_modules/@clack/core/dist/index.mjs
291
291
  var import_src = (/* @__PURE__ */ __commonJSMin(((exports, module) => {
292
292
  const ESC = "\x1B";
293
293
  const CSI = `${ESC}[`;
@@ -794,7 +794,7 @@ var n = class extends y {
794
794
  }
795
795
  };
796
796
  //#endregion
797
- //#region ../../node_modules/.pnpm/@clack+prompts@1.8.0/node_modules/@clack/prompts/dist/index.mjs
797
+ //#region ../../node_modules/.pnpm/@clack+prompts@1.8.1/node_modules/@clack/prompts/dist/index.mjs
798
798
  function isUnicodeSupported() {
799
799
  if (process$1.platform !== "win32") return process$1.env.TERM !== "linux";
800
800
  return Boolean(process$1.env.CI) || Boolean(process$1.env.WT_SESSION) || Boolean(process$1.env.TERMINUS_SUBLIME) || process$1.env.ConEmuTask === "{cmd::Cmder}" || process$1.env.TERM_PROGRAM === "Terminus-Sublime" || process$1.env.TERM_PROGRAM === "vscode" || process$1.env.TERM === "xterm-256color" || process$1.env.TERM === "alacritty" || process$1.env.TERMINAL_EMULATOR === "JetBrains-JediTerm";
@@ -891,28 +891,28 @@ const limitOptions = ({ cursor: l, options: e, style: w, output: p = process.std
891
891
  for (const t of s) for (const n of t) x.push(n);
892
892
  return c && x.push(M), x;
893
893
  };
894
- const confirm = (i) => {
895
- const a = i.active ?? "Yes", s = i.inactive ?? "No";
894
+ const confirm = (e) => {
895
+ const a = e.active ?? "Yes", o = e.inactive ?? "No";
896
896
  return new r({
897
897
  active: a,
898
- inactive: s,
899
- signal: i.signal,
900
- input: i.input,
901
- output: i.output,
902
- initialValue: i.initialValue ?? true,
898
+ inactive: o,
899
+ signal: e.signal,
900
+ input: e.input,
901
+ output: e.output,
902
+ initialValue: e.initialValue ?? true,
903
903
  render() {
904
- const e = i.withGuide ?? settings.withGuide, u = `${symbol(this.state)} `, l = e ? `${styleText("gray", S_BAR)} ` : "", f = wrapTextWithPrefix(i.output, i.message, l, u), o = `${e ? `${styleText("gray", S_BAR)}
904
+ const i = e.withGuide ?? settings.withGuide, u = `${symbol(this.state)} `, l = i ? `${styleText("gray", S_BAR)} ` : "", f = wrapTextWithPrefix(e.output, e.message, l, u), s = `${i ? `${styleText("gray", S_BAR)}
905
905
  ` : ""}${f}
906
- `, c = this.value ? a : s;
906
+ `, c = this.value ? a : o;
907
907
  switch (this.state) {
908
- case "submit": return `${o}${e ? `${styleText("gray", S_BAR)} ` : ""}${styleText("dim", c)}`;
909
- case "cancel": return `${o}${e ? `${styleText("gray", S_BAR)} ` : ""}${styleText(["strikethrough", "dim"], c)}${e ? `
908
+ case "submit": return `${s}${i ? `${styleText("gray", S_BAR)} ` : ""}${styleText("dim", c)}`;
909
+ case "cancel": return `${s}${i ? `${styleText("gray", S_BAR)} ` : ""}${styleText(["strikethrough", "dim"], c)}${i ? `
910
910
  ${styleText("gray", S_BAR)}` : ""}`;
911
911
  default: {
912
- const r = e ? `${styleText("cyan", S_BAR)} ` : "", g = e ? styleText("cyan", S_BAR_END) : "";
913
- return `${o}${r}${this.value ? `${styleText("green", S_RADIO_ACTIVE)} ${a}` : `${styleText("dim", S_RADIO_INACTIVE)} ${styleText("dim", a)}`}${i.vertical ? e ? `
912
+ const r = i ? `${styleText("cyan", S_BAR)} ` : "", g = i ? styleText("cyan", S_BAR_END) : "";
913
+ return `${s}${r}${this.value ? `${styleText("green", S_RADIO_ACTIVE)} ${a}` : `${styleText("dim", S_RADIO_INACTIVE)} ${styleText("dim", a)}`}${e.vertical ? i ? `
914
914
  ${styleText("cyan", S_BAR)} ` : `
915
- ` : ` ${styleText("dim", "/")} `}${this.value ? `${styleText("dim", S_RADIO_INACTIVE)} ${styleText("dim", s)}` : `${styleText("green", S_RADIO_ACTIVE)} ${s}`}
915
+ ` : ` ${styleText("dim", "/")} `}${this.value ? `${styleText("dim", S_RADIO_INACTIVE)} ${styleText("dim", o)}` : `${styleText("green", S_RADIO_ACTIVE)} ${o}`}
916
916
  ${g}
917
917
  `;
918
918
  }
@@ -932,7 +932,7 @@ const multiselect = (i) => {
932
932
  const u = (t, a) => {
933
933
  const r = t.label ?? String(t.value);
934
934
  return a === "disabled" ? `${styleText("gray", S_CHECKBOX_INACTIVE)} ${m(r, (o) => styleText(["strikethrough", "gray"], o))}${t.hint ? ` ${styleText("dim", `(${t.hint ?? "disabled"})`)}` : ""}` : a === "active" ? `${styleText("cyan", S_CHECKBOX_ACTIVE)} ${r}${t.hint ? ` ${styleText("dim", `(${t.hint})`)}` : ""}` : a === "selected" ? `${styleText("green", S_CHECKBOX_SELECTED)} ${m(r, (o) => styleText("dim", o))}${t.hint ? ` ${styleText("dim", `(${t.hint})`)}` : ""}` : a === "cancelled" ? `${m(r, (o) => styleText(["strikethrough", "dim"], o))}` : a === "active-selected" ? `${styleText("green", S_CHECKBOX_SELECTED)} ${r}${t.hint ? ` ${styleText("dim", `(${t.hint})`)}` : ""}` : a === "submitted" ? `${m(r, (o) => styleText("dim", o))}` : `${styleText("dim", S_CHECKBOX_INACTIVE)} ${m(r, (o) => styleText("dim", o))}`;
935
- }, d = i.required ?? true, v = i.showInstructions ?? true;
935
+ }, d = i.required ?? true, x = i.showInstructions ?? true;
936
936
  return new a({
937
937
  options: i.options,
938
938
  signal: i.signal,
@@ -952,7 +952,7 @@ ${styleText("reset", styleText("dim", `Press ${styleText([
952
952
  render() {
953
953
  const t = i.withGuide ?? settings.withGuide, a = wrapTextWithPrefix(i.output, i.message, t ? `${symbolBar(this.state)} ` : "", `${symbol(this.state)} `), r = `${t ? `${styleText("gray", S_BAR)}
954
954
  ` : ""}${a}
955
- `, o = this.value ?? [], p = (n, l) => {
955
+ `, o = this.value ?? [], g = (n, l) => {
956
956
  if (n.disabled) return u(n, "disabled");
957
957
  const s = o.includes(n.value);
958
958
  return l && s ? u(n, "active-selected") : s ? u(n, "selected") : u(n, l ? "active" : "inactive");
@@ -970,7 +970,7 @@ ${styleText("gray", S_BAR)}` : ""}`;
970
970
  }
971
971
  case "error": {
972
972
  const n = t ? `${styleText("yellow", S_BAR)} ` : "", l = this.error.split(`
973
- `).map(($, C) => C === 0 ? `${t ? `${styleText("yellow", S_BAR_END)} ` : ""}${styleText("yellow", $)}` : ` ${$}`).join(`
973
+ `).map(($, v) => v === 0 ? `${t ? `${styleText("yellow", S_BAR_END)} ` : ""}${styleText("yellow", $)}` : ` ${$}`).join(`
974
974
  `), s = r.split(`
975
975
  `).length, h = l.split(`
976
976
  `).length + 1;
@@ -981,7 +981,7 @@ ${styleText("gray", S_BAR)}` : ""}`;
981
981
  maxItems: i.maxItems,
982
982
  columnPadding: n.length,
983
983
  rowPadding: s + h,
984
- style: p
984
+ style: g
985
985
  }).join(`
986
986
  ${n}`)}
987
987
  ${l}
@@ -989,7 +989,7 @@ ${l}
989
989
  }
990
990
  default: {
991
991
  const n = t ? `${styleText("cyan", S_BAR)} ` : "", l = r.split(`
992
- `).length, s = v ? formatInstructionFooter(MULTISELECT_INSTRUCTIONS, t) : t ? [styleText("cyan", S_BAR_END)] : [], h = s.join(`
992
+ `).length, s = x ? formatInstructionFooter(MULTISELECT_INSTRUCTIONS, t) : t ? [styleText("cyan", S_BAR_END)] : [], h = s.join(`
993
993
  `), $ = s.length + 1;
994
994
  return `${r}${n}${limitOptions({
995
995
  output: i.output,
@@ -998,7 +998,7 @@ ${l}
998
998
  maxItems: i.maxItems,
999
999
  columnPadding: n.length,
1000
1000
  rowPadding: l + $,
1001
- style: p
1001
+ style: g
1002
1002
  }).join(`
1003
1003
  ${n}`)}
1004
1004
  ${h}
@@ -1102,29 +1102,29 @@ ${h}
1102
1102
  ${styleText("gray", l$1 + S_BAR_H.repeat(t + 2) + S_CORNER_BOTTOM_RIGHT)}
1103
1103
  `);
1104
1104
  };
1105
- const password = (r) => new u$1({
1106
- validate: r.validate,
1107
- mask: r.mask ?? S_PASSWORD_MASK,
1108
- signal: r.signal,
1109
- input: r.input,
1110
- output: r.output,
1105
+ const password = (e) => new u$1({
1106
+ validate: e.validate,
1107
+ mask: e.mask ?? S_PASSWORD_MASK,
1108
+ signal: e.signal,
1109
+ input: e.input,
1110
+ output: e.output,
1111
1111
  render() {
1112
- const e = r.withGuide ?? settings.withGuide, o = `${e ? `${styleText("gray", S_BAR)}
1113
- ` : ""}${symbol(this.state)} ${r.message}
1114
- `, c = this.userInputWithCursor, i = this.masked;
1112
+ const r = e.withGuide ?? settings.withGuide, o = `${r ? `${styleText("gray", S_BAR)}
1113
+ ` : ""}${symbol(this.state)} ${e.message}
1114
+ `, m = this.userInputWithCursor, i = this.masked;
1115
1115
  switch (this.state) {
1116
1116
  case "error": {
1117
- const s = e ? `${styleText("yellow", S_BAR)} ` : "", n = e ? `${styleText("yellow", S_BAR_END)} ` : "", l = i ?? "";
1118
- return r.clearOnError && this.clear(), `${o.trim()}
1119
- ${s}${l}
1117
+ const s = r ? `${styleText("yellow", S_BAR)} ` : "", n = r ? `${styleText("yellow", S_BAR_END)} ` : "", d = i ?? "";
1118
+ return e.clearOnError && this.clear(), `${o.trim()}
1119
+ ${s}${d}
1120
1120
  ${n}${styleText("yellow", this.error)}
1121
1121
  `;
1122
1122
  }
1123
- case "submit": return `${o}${e ? `${styleText("gray", S_BAR)} ` : ""}${i ? styleText("dim", i) : ""}`;
1124
- case "cancel": return `${o}${e ? `${styleText("gray", S_BAR)} ` : ""}${i ? styleText(["strikethrough", "dim"], i) : ""}${i && e ? `
1123
+ case "submit": return `${o}${r ? `${styleText("gray", S_BAR)} ` : ""}${i ? styleText("dim", i) : ""}`;
1124
+ case "cancel": return `${o}${r ? `${styleText("gray", S_BAR)} ` : ""}${i ? styleText(["strikethrough", "dim"], i) : ""}${i && r ? `
1125
1125
  ${styleText("gray", S_BAR)}` : ""}`;
1126
- default: return `${o}${e ? `${styleText("cyan", S_BAR)} ` : ""}${c}
1127
- ${e ? styleText("cyan", S_BAR_END) : ""}
1126
+ default: return `${o}${r ? `${styleText("cyan", S_BAR)} ` : ""}${m}
1127
+ ${r ? styleText("cyan", S_BAR_END) : ""}
1128
1128
  `;
1129
1129
  }
1130
1130
  }
@@ -1245,19 +1245,19 @@ ${styleText("gray", S_BAR)}` : ""}`;
1245
1245
  }
1246
1246
  default: {
1247
1247
  const r = n ? `${styleText("cyan", S_BAR)} ` : "", a = u.split(`
1248
- `).length, p = d ? formatInstructionFooter(SELECT_INSTRUCTIONS, n) : n ? [styleText("cyan", S_BAR_END)] : [], b = p.join(`
1249
- `), f = p.length + 1;
1248
+ `).length, p = d ? formatInstructionFooter(SELECT_INSTRUCTIONS, n) : n ? [styleText("cyan", S_BAR_END)] : [], f = p.join(`
1249
+ `), b = p.length + 1;
1250
1250
  return `${u}${r}${limitOptions({
1251
1251
  output: t.output,
1252
1252
  cursor: this.cursor,
1253
1253
  options: this.options,
1254
1254
  maxItems: t.maxItems,
1255
1255
  columnPadding: r.length,
1256
- rowPadding: a + f,
1256
+ rowPadding: a + b,
1257
1257
  style: (g, x) => o(g, g.disabled ? "disabled" : x ? "active" : "inactive")
1258
1258
  }).join(`
1259
1259
  ${r}`)}
1260
- ${b}
1260
+ ${f}
1261
1261
  `;
1262
1262
  }
1263
1263
  }
@@ -1,8 +1,8 @@
1
- import { c as import_picocolors } from "./output-CCH48AMM.mjs";
2
- import { c as getToken } from "./auth-DLNN0D3Z.mjs";
1
+ import { c as getToken } from "./auth-CSkdO2Bb.mjs";
3
2
  import { i as readDeploymentPlatform, o as readProjectConfig } from "./project-C0Fqu05O.mjs";
4
- import { N as note, j as log } from "./dist-Dn6nn2IU.mjs";
5
- import { n as PlatformClient } from "./client-QTl6ko_D.mjs";
3
+ import { N as note, j as log } from "./dist-CTBk70IR.mjs";
4
+ import { n as PlatformClient } from "./client-RV8NVeB8.mjs";
5
+ import { c as import_picocolors } from "./output-Dm_A4Tbv.mjs";
6
6
  //#region src/cli/domain.ts
7
7
  async function runDomainCommand(root, args) {
8
8
  const platform = readDeploymentPlatform(root);
@@ -40,7 +40,7 @@ async function runDomainCommand(root, args) {
40
40
  }
41
41
  async function runCloudflareDomainCommand(root, args) {
42
42
  if (args.projectSlug) throw new Error("domain: --project selects a Void platform project and is not used for direct Cloudflare apps.");
43
- const { changeCloudflareDomain, listCloudflareDomains } = await import("./cloudflare-operations-BipGMJ5O.mjs");
43
+ const { changeCloudflareDomain, listCloudflareDomains } = await import("./cloudflare-operations-AiWashgg.mjs");
44
44
  if (args.subcommand === "add") {
45
45
  const result = await changeCloudflareDomain(root, args.hostname, "add");
46
46
  log.success(result.modified ? `Domain ${args.hostname} added and activated on Cloudflare.` : `Domain ${args.hostname} is already configured.`);
@@ -1,14 +1,14 @@
1
1
  import { a as join } from "./dist-BVqXeR_h.mjs";
2
- import { c as import_picocolors, i as createSpinner } from "./output-CCH48AMM.mjs";
3
- import { L as resolveDeployTransport, O as isWranglerNonInteractiveOrCI, X as runWranglerAuthToken, _ as deriveWorkerName, _t as findEmailConfigConflicts, bt as renderEmailChecklist, gt as createNodeEmailDns, h as createDeployWranglerRunner, ht as applyEmailSetup, k as loadProvisionModule, v as discoverRootWranglerConfig, vt as preflightEmail, yt as renderAddressMap } from "./deploy-WaAQez1O.mjs";
4
2
  import { n as readProjectPaths } from "./project-paths-GgcMozYz.mjs";
5
- import { c as getToken, d as openBrowser } from "./auth-DLNN0D3Z.mjs";
6
- import { o as readProjectConfig } from "./project-C0Fqu05O.mjs";
7
- import { m as readConfig } from "./config-CafTW6Cz.mjs";
8
- import { k as writeProvisionedWranglerConfig } from "./wrangler-BymcxrRa.mjs";
9
- import { E as confirm, F as password, N as note, W as isCancel, j as log } from "./dist-Dn6nn2IU.mjs";
3
+ import { m as readConfig } from "./config-Br_JZD6u.mjs";
10
4
  import { a as scanEmailHandlersSync } from "./email--tEtMoj_.mjs";
11
- import { n as PlatformClient, t as PlatformApiError } from "./client-QTl6ko_D.mjs";
5
+ import { L as resolveDeployTransport, O as isWranglerNonInteractiveOrCI, X as runWranglerAuthToken, _ as deriveWorkerName, _t as createNodeEmailDns, bt as renderAddressMap, gt as applyEmailSetup, h as createDeployWranglerRunner, k as loadProvisionModule, v as discoverRootWranglerConfig, vt as findEmailConfigConflicts, xt as renderEmailChecklist, yt as preflightEmail } from "./deploy-DzAIwqNU.mjs";
6
+ import { c as getToken, d as openBrowser } from "./auth-CSkdO2Bb.mjs";
7
+ import { o as readProjectConfig } from "./project-C0Fqu05O.mjs";
8
+ import { A as writeProvisionedWranglerConfig } from "./wrangler-7K-bW_DL.mjs";
9
+ import { E as confirm, F as password, N as note, W as isCancel, j as log } from "./dist-CTBk70IR.mjs";
10
+ import { n as PlatformClient, t as PlatformApiError } from "./client-RV8NVeB8.mjs";
11
+ import { c as import_picocolors, i as createSpinner } from "./output-Dm_A4Tbv.mjs";
12
12
  import { existsSync, mkdtempSync, rmSync, writeFileSync } from "node:fs";
13
13
  import { tmpdir } from "node:os";
14
14
  import { execSync } from "node:child_process";
@@ -324,6 +324,7 @@ async function emailDomainAdd(client, projectId, rawDomain, subdomain, deps = {}
324
324
  };
325
325
  const domain = normalizeEmailDomainInput(rawDomain);
326
326
  if (!isValidEmailDomainInput(domain)) return fail(`email: invalid domain '${rawDomain}'.`);
327
+ if (subdomain !== void 0) return fail("email: Platform-managed custom email requires a Cloudflare zone apex because inbound email uses its catch-all. Omit --subdomain, choose an unused zone apex, or use the platform shared mail address.");
327
328
  let target;
328
329
  try {
329
330
  target = resolveEmailDomainTarget(domain, subdomain);
@@ -332,28 +333,16 @@ async function emailDomainAdd(client, projectId, rawDomain, subdomain, deps = {}
332
333
  }
333
334
  const dns = deps.dns ?? await createNodeEmailDns();
334
335
  const decideTarget = async () => {
335
- if (target.forced) {
336
- const mx = await lookupMxForRender(dns, target.emailDomain);
337
- if (mx !== null && mx.length > 0) log.warn(`MX ${target.emailDomain} already carries MX (${mx.join(", ")}) — the platform re-checks over public DNS and may refuse it.`);
338
- } else {
339
- const mx = await lookupMxForRender(dns, domain);
340
- if (mx === null) log.info(`MX could not read ${domain}'s MX from here — the platform decides over public DNS.`);
341
- else if (mx.length > 0) {
342
- target = {
343
- emailDomain: `mail.${domain}`,
344
- forced: false
345
- };
346
- log.info(`MX ${domain} carries MX for ${mx[0]} → apex is off limits\n using ${target.emailDomain} [change with --subdomain]`);
347
- const subMx = await lookupMxForRender(dns, target.emailDomain);
348
- if (subMx !== null && subMx.length > 0) log.warn(`MX ${target.emailDomain} also carries MX (${subMx.join(", ")}) — the platform may refuse it; pick another with --subdomain.`);
349
- } else log.info(`MX ${domain} has no MX records → using the apex`);
350
- }
336
+ const mx = await lookupMxForRender(dns, domain);
337
+ if (mx === null) log.info(`MX could not read ${domain}'s MX from here — the platform decides over public DNS.`);
338
+ else if (mx.some((exchange) => !/\.mx\.cloudflare\.net$/i.test(exchange))) fail(`email: ${domain} already receives mail from another provider. Platform custom inbound email requires an unused Cloudflare zone apex; choose another apex or use the platform shared mail address.`);
339
+ else log.info(`MX using the requested apex ${domain}`);
351
340
  };
352
341
  let renewal;
353
342
  const settings = await client.getEmailSettings(projectId);
354
343
  if (settings.domains.management === "admin") {
355
344
  const rows = await client.listEmailDomains(projectId);
356
- const existing = [target.emailDomain, ...target.forced ? [] : [`mail.${domain}`]].map((candidate) => rows.find((row) => row.domain === candidate && row.managed_by !== "admin")).find((row) => row !== void 0);
345
+ const existing = [target.emailDomain].map((candidate) => rows.find((row) => row.domain === candidate && row.managed_by !== "admin")).find((row) => row !== void 0);
357
346
  if (!existing) {
358
347
  await decideTarget();
359
348
  const project = settings.domains.projectSlug ?? projectId;
@@ -724,11 +713,7 @@ async function runEmailCloudflareCommandInConfig(root, args, project, configPath
724
713
  existingAddresses: rootConfig.addresses,
725
714
  existingVars: rootConfig.vars && typeof rootConfig.vars === "object" && !Array.isArray(rootConfig.vars) ? rootConfig.vars : null,
726
715
  configConflicts: findEmailConfigConflicts(rootConfig),
727
- wranglerArgs: [
728
- "-c",
729
- wranglerConfigPath,
730
- "--env="
731
- ],
716
+ configPath: wranglerConfigPath,
732
717
  apiBaseUrl,
733
718
  runWrangler,
734
719
  getSessionBearer,
@@ -1,11 +1,11 @@
1
1
  import { a as join } from "./dist-BVqXeR_h.mjs";
2
- import { r as cliTitle } from "./output-CCH48AMM.mjs";
3
- import { c as getToken } from "./auth-DLNN0D3Z.mjs";
2
+ import { c as getToken } from "./auth-CSkdO2Bb.mjs";
4
3
  import { i as readDeploymentPlatform, o as readProjectConfig } from "./project-C0Fqu05O.mjs";
5
4
  import { r as generateEnvTypes, t as findEnvFile } from "./env-types-C2_bIk_b.mjs";
6
- import { d as formatEnvReport, g as validateProdEnv, u as fetchRemoteSecretNames } from "./env-validation-BB4GkLxn.mjs";
7
- import { N as note, O as intro, P as outro, j as log } from "./dist-Dn6nn2IU.mjs";
8
- import { n as PlatformClient } from "./client-QTl6ko_D.mjs";
5
+ import { d as formatEnvReport, g as validateProdEnv, u as fetchRemoteSecretNames } from "./env-validation-BPn7vk-V.mjs";
6
+ import { N as note, O as intro, P as outro, j as log } from "./dist-CTBk70IR.mjs";
7
+ import { n as PlatformClient } from "./client-RV8NVeB8.mjs";
8
+ import { r as cliTitle } from "./output-Dm_A4Tbv.mjs";
9
9
  import { mkdirSync, writeFileSync } from "node:fs";
10
10
  //#region src/cli/env.ts
11
11
  async function runEnvCommand(root, args) {
@@ -26,7 +26,7 @@ async function runCheck(root, useRemoteSecrets) {
26
26
  const platform = readDeploymentPlatform(root);
27
27
  if (platform === "none") throw new Error("env: Deployment is disabled. Run `void init` to choose a platform.");
28
28
  if (platform === "cloudflare") {
29
- const { listCloudflareSecrets, resolveCloudflareOperationContext } = await import("./cloudflare-operations-BipGMJ5O.mjs");
29
+ const { listCloudflareSecrets, resolveCloudflareOperationContext } = await import("./cloudflare-operations-AiWashgg.mjs");
30
30
  remoteSecrets = await listCloudflareSecrets(resolveCloudflareOperationContext(root));
31
31
  } else {
32
32
  const token = getToken(root);
@@ -1,3 +1,4 @@
1
+ import { l as VoidPlatformSandbox } from "./sandbox-XZAqzFlG.mjs";
1
2
  import { t as StandardSchemaV1 } from "./standard-schema-Fo_vCAZh.mjs";
2
3
  //#region src/runtime/env-public.d.ts
3
4
  type AnyValidator = StandardSchemaV1<unknown, unknown>;
@@ -112,7 +113,7 @@ declare global {
112
113
  KV: KVNamespace;
113
114
  STORAGE: R2Bucket;
114
115
  AI: Ai;
115
- SANDBOX: DurableObjectNamespace<import("@cloudflare/sandbox").Sandbox>;
116
+ SANDBOX: DurableObjectNamespace<VoidPlatformSandbox>;
116
117
  /** @internal Service binding to proxy worker (AI, revalidation, future features) */
117
118
  __VOID_PROXY?: Fetcher;
118
119
  /** @internal Custom proxy URL override */
@@ -2,7 +2,7 @@ import { a as join, n as dirname, u as resolve } from "./dist-BVqXeR_h.mjs";
2
2
  import { i as voidWarn } from "./log-ChfPKsVd.mjs";
3
3
  import { t as findEnvFile } from "./env-types-C2_bIk_b.mjs";
4
4
  import { a as loadLocalEnv, i as isClientEnvKey, r as findLegacyEnvFiles } from "./env-_v349JBd.mjs";
5
- import { o as resolveWranglerArgv } from "./preset-UHj9ARyP.mjs";
5
+ import { c as resolveCloudflareOperationArgv, n as decodeCloudflareOperationResult, r as encodeCloudflareOperation } from "./cloudflare-process-B-wekeR6.mjs";
6
6
  import { existsSync, readFileSync } from "node:fs";
7
7
  import { pathToFileURL } from "node:url";
8
8
  import { spawn } from "node:child_process";
@@ -733,59 +733,12 @@ function firstDeployMessage(missingKeys) {
733
733
  ...names.map((key) => ` void secret put ${key}`)
734
734
  ].join("\n");
735
735
  }
736
- /**
737
- * The exact `wrangler secret list` argv. Verified against the wrangler 4.131.0
738
- * bundle (`wrangler-dist/cli.js`, `secretListCommand`):
739
- * - `secret list` accepts `--format` with choices `json`/`pretty`; `json` is
740
- * the default AND suppresses the banner (`printBanner` is format==='pretty'),
741
- * printing `JSON.stringify(secrets, null, ' ')` — an array of secret
742
- * objects (each with a string `name`, per `fetchSecrets` →
743
- * `GET /accounts/{id}/workers/scripts/{name}/secrets`). Pinned explicitly
744
- * so a future default change can't silently switch us to `pretty`.
745
- * - the worker name resolves from the config's `name` (`getLegacyScriptName`:
746
- * `args.name ?? config.name` — we pass no `--name`, the pinned config is
747
- * the single source of truth).
748
- * - `-c <configPath>` (global `--config` alias) pins the ONE resolved config;
749
- * `--env=` (explicit EMPTY environment) forces the top-level config env so
750
- * a project dotenv exporting `CLOUDFLARE_ENV` can never reselect a named
751
- * `env.*` block — same rationale as the provisioner's wranglerConfigArgs.
752
- */
753
- function secretListArgs(configPath) {
754
- return [
755
- "secret",
756
- "list",
757
- "--format=json",
758
- "-c",
759
- configPath,
760
- "--env="
761
- ];
762
- }
763
- /**
764
- * wrangler 4.131's `secret list` worker-not-found signal. When the worker has
765
- * never been deployed, `fetchSecrets` throws the API worker-not-found error and
766
- * `secretListCommand.handler` — ONLY when `isWorkerNotFoundError(e)` is true
767
- * (`e.code === 10007` WORKER_NOT_FOUND or `10090`
768
- * WORKER_LEGACY_ENVIRONMENT_NOT_FOUND, per wrangler-dist/cli.js) — rethrows a
769
- * `UserError` with this exact fixed diagnostic block:
770
- *
771
- * Worker "<name>"[ (env: <env>)] not found.
772
- *
773
- * If this is a new Worker, run `wrangler deploy` first to create it.
774
- * Otherwise, check that the Worker name is correct and you're logged into the right account.
775
- *
776
- * The API code itself is caught and never printed, so the child's stderr
777
- * carries this MESSAGE, not `10007`/`10090`. Matching only the bare lead-in
778
- * `If this is a new Worker` misclassifies any unrelated status-1
779
- * diagnostic that merely contains that fragment. So we require the COMPLETE
780
- * structured block — the `… not found.` lead AND both fixed sentences of the
781
- * guidance — after normalizing whitespace (wrangler may wrap/indent the
782
- * multi-line UserError when it prints). The block carries no secret content, so
783
- * it survives `WRANGLER_LOG_SANITIZE=true`; the combined output is inspected
784
- * INTERNALLY only and never copied into any thrown error.
785
- */
786
- function isWorkerNotFoundOutput(output) {
787
- const normalized = output.replace(/\s+/g, " ");
788
- return /Worker ".*?"(?: \(env: [^)]*\))? not found\./.test(normalized) && (normalized.includes("[code: 10007]") || normalized.includes("[code: 10090]") || normalized.includes("If this is a new Worker, run `wrangler deploy` first to create it.") && normalized.includes("Otherwise, check that the Worker name is correct and you're logged into the right account."));
736
+ /** Select the generated top-level Worker config for structured secret discovery. */
737
+ function secretListOperation(configPath) {
738
+ return {
739
+ type: "secret.list",
740
+ configPath
741
+ };
789
742
  }
790
743
  /**
791
744
  * Build the THROWN message for a wrangler-run failure from the structural
@@ -793,7 +746,7 @@ function isWorkerNotFoundOutput(output) {
793
746
  * `result.stdout`, a spawn-error string, or a rejection message — those are
794
747
  * unconstrained (the child inherits `process.env`) and could embed an env
795
748
  * value. Where wrangler's own diagnostics would help, the message tells the
796
- * user to re-run wrangler themselves rather than echoing its output here.
749
+ * user to retry through Void rather than echoing its output here.
797
750
  */
798
751
  function secretListFailureMessage(reason, detail) {
799
752
  const base = "env: `wrangler secret list` could not confirm the remote secrets";
@@ -815,14 +768,13 @@ function secretListError(reason, detail = {}) {
815
768
  * is never interpreted as "no secrets exist" — that would let a deploy proceed
816
769
  * with required secrets actually missing on the worker.
817
770
  *
818
- * A nonzero exit whose output carries wrangler's worker-not-found signal is a
771
+ * A completed failure with a typed missing-Worker code is a
819
772
  * DISTINCT, structured {@link SelfHostFirstDeployError} carrying the still
820
- * unsatisfied required `missingKeys` + `wrangler secret put` bootstrap guidance,
773
+ * unsatisfied required `missingKeys` + `void secret put` bootstrap guidance,
821
774
  * instead of the generic "list exited nonzero" dead end.
822
775
  *
823
776
  * Raw child output (stderr/stdout, spawn-error text, rejection messages)
824
- * is used ONLY internally: for worker-not-found classification the combined
825
- * output is matched to a boolean that never leaves this function. Every THROWN
777
+ * does not participate in missing-Worker classification. Every THROWN
826
778
  * error carries only a structural {@link SecretListFailureReason} code and safe
827
779
  * scalars (exit code / signal name), so no env value the child may have echoed
828
780
  * can reach the error's message, fields, or JSON — even under `VOID_ENV_UNMASK`.
@@ -830,7 +782,7 @@ function secretListError(reason, detail = {}) {
830
782
  async function fetchSelfHostSecretNames(run, configPath, missingKeys) {
831
783
  let result;
832
784
  try {
833
- result = await Promise.resolve(run(secretListArgs(configPath)));
785
+ result = await Promise.resolve(run(secretListOperation(configPath)));
834
786
  } catch {
835
787
  throw secretListError("spawn-error");
836
788
  }
@@ -838,15 +790,10 @@ async function fetchSelfHostSecretNames(run, configPath, missingKeys) {
838
790
  if (result.signal != null) throw secretListError("signal", { signal: String(result.signal) });
839
791
  if (typeof result.status !== "number" || result.status !== 0) {
840
792
  const exitCode = typeof result.status === "number" ? result.status : void 0;
841
- if (isWorkerNotFoundOutput(`${result.stdout}\n${result.stderr}`)) throw new SelfHostFirstDeployError(firstDeployMessage(missingKeys), missingKeys, exitCode);
793
+ if (Number.isSafeInteger(result.status) && result.status > 0 && ([10007, 10090].includes(result.errorCode ?? 0) || result.failure === "not-found")) throw new SelfHostFirstDeployError(firstDeployMessage(missingKeys), missingKeys, exitCode);
842
794
  throw secretListError("nonzero-exit", { exitCode });
843
795
  }
844
- let parsed;
845
- try {
846
- parsed = JSON.parse(result.stdout);
847
- } catch {
848
- throw secretListError("malformed-output");
849
- }
796
+ const parsed = result.data;
850
797
  if (!Array.isArray(parsed)) throw secretListError("malformed-output");
851
798
  const names = [];
852
799
  for (const member of parsed) {
@@ -881,7 +828,7 @@ const SECRET_LIST_TIMEOUT_MS = 12e4;
881
828
  /**
882
829
  * Default {@link RunSecretList}: resolves wrangler's REAL CLI entry
883
830
  * (`wrangler-dist/cli.js`, not the signal-swallowing `bin` wrapper) via
884
- * {@link resolveWranglerArgv} and spawns it ASYNC with `shell: false`, so every
831
+ * {@link resolveCloudflareOperationArgv} and spawns it ASYNC with `shell: false`, so every
885
832
  * argv element is passed literally (no shell → no metacharacter injection) and
886
833
  * the event loop stays free. A hard timeout SIGKILLs a hung child; the result
887
834
  * carries `{status, signal, error}` provenance so the caller fails closed on
@@ -894,11 +841,11 @@ const SECRET_LIST_TIMEOUT_MS = 12e4;
894
841
  * fires), a bounded fallback settles the call as a HARD failure anyway.
895
842
  */
896
843
  function createDefaultSecretListRunner(root, options) {
897
- const launcher = options?.launcher ?? resolveWranglerArgv(root);
844
+ const launcher = options?.launcher ?? resolveCloudflareOperationArgv(root);
898
845
  const timeoutMs = options?.timeoutMs ?? SECRET_LIST_TIMEOUT_MS;
899
846
  const [command, ...prefix] = launcher;
900
847
  return (args) => new Promise((resolvePromise) => {
901
- const child = spawn(command, [...prefix, ...args], {
848
+ const child = spawn(command, [...prefix, ...encodeCloudflareOperation(args)], {
902
849
  cwd: root,
903
850
  shell: false,
904
851
  env: secretListEnv(options?.accountId),
@@ -927,7 +874,7 @@ function createDefaultSecretListRunner(root, options) {
927
874
  settled = true;
928
875
  clearTimeout(commandTimer);
929
876
  clearTimeout(killFallbackTimer);
930
- resolvePromise(result);
877
+ resolvePromise(decodeCloudflareOperationResult(result));
931
878
  };
932
879
  const timeoutNote = `env: wrangler secret list exceeded the ${timeoutMs}ms timeout`;
933
880
  const commandTimer = setTimeout(() => {
@@ -1,2 +1,2 @@
1
- import { a as computeInvalidEmittedKeys, c as deriveSelfHostSchemaFacts, p as readEmittedWorkerVars, r as SelfHostSchemaError } from "./env-validation-BB4GkLxn.mjs";
1
+ import { a as computeInvalidEmittedKeys, c as deriveSelfHostSchemaFacts, p as readEmittedWorkerVars, r as SelfHostSchemaError } from "./env-validation-BPn7vk-V.mjs";
2
2
  export { SelfHostSchemaError, computeInvalidEmittedKeys, deriveSelfHostSchemaFacts, readEmittedWorkerVars };
@@ -1,8 +1,8 @@
1
1
  import { n as ofetch } from "./fetch-error-Dj3crt0e.mjs";
2
+ import { t as interpolateRouteParams } from "./route-url-CG7U-cRN.mjs";
2
3
  //#region src/runtime/fetch.ts
3
4
  async function fetch(path, options) {
4
- let url = path;
5
- if (options?.params) for (const [key, value] of Object.entries(options.params)) url = url.replace(`:${key}`, encodeURIComponent(value));
5
+ const url = interpolateRouteParams(path, options?.params);
6
6
  return ofetch(url, {
7
7
  method: options?.method ?? "GET",
8
8
  body: options?.body,
@@ -1,4 +1,5 @@
1
- import { n as ofetch } from "./fetch-error-Dj3crt0e.mjs";
1
+ import { n as ofetch, t as FetchError } from "./fetch-error-Dj3crt0e.mjs";
2
+ import { t as interpolateRouteParams } from "./route-url-CG7U-cRN.mjs";
2
3
  //#region src/runtime/fetch-stream.ts
3
4
  /**
4
5
  * Consume an SSE endpoint as an async generator of text chunks.
@@ -20,8 +21,7 @@ import { n as ofetch } from "./fetch-error-Dj3crt0e.mjs";
20
21
  * @yields {string} Text chunks from SSE data frames.
21
22
  */
22
23
  async function* fetchStream(path, options) {
23
- let url = path;
24
- if (options?.params) for (const [key, value] of Object.entries(options.params)) url = url.replace(`:${key}`, encodeURIComponent(value));
24
+ const url = interpolateRouteParams(path, options?.params);
25
25
  const body = (await ofetch.raw(url, {
26
26
  method: options?.method ?? "POST",
27
27
  body: options?.body,
@@ -35,6 +35,16 @@ async function* fetchStream(path, options) {
35
35
  const reader = body.getReader();
36
36
  const decoder = new TextDecoder();
37
37
  let buffer = "";
38
+ let event = "";
39
+ const terminal = (data) => {
40
+ if (event !== "void:error" && event !== "void:limit") return;
41
+ let message = "Generation was interrupted.";
42
+ try {
43
+ const body = JSON.parse(data);
44
+ if (typeof body.message === "string") message = body.message;
45
+ } catch {}
46
+ throw new FetchError(message);
47
+ };
38
48
  try {
39
49
  while (true) {
40
50
  const { done, value } = await reader.read();
@@ -44,9 +54,18 @@ async function* fetchStream(path, options) {
44
54
  buffer = lines.pop();
45
55
  for (const line of lines) {
46
56
  const trimmed = line.trim();
47
- if (!trimmed || trimmed.startsWith(":")) continue;
57
+ if (trimmed.startsWith("event:")) {
58
+ event = trimmed.slice(6).trim();
59
+ continue;
60
+ }
61
+ if (!trimmed) {
62
+ event = "";
63
+ continue;
64
+ }
65
+ if (trimmed.startsWith(":")) continue;
48
66
  if (trimmed.startsWith("data: ")) {
49
67
  const data = trimmed.slice(6);
68
+ terminal(data);
50
69
  if (data === "[DONE]") return;
51
70
  try {
52
71
  const parsed = JSON.parse(data);
@@ -64,6 +83,7 @@ async function* fetchStream(path, options) {
64
83
  const trimmed = buffer.trim();
65
84
  if (trimmed.startsWith("data: ")) {
66
85
  const data = trimmed.slice(6);
86
+ terminal(data);
67
87
  if (data !== "[DONE]") try {
68
88
  const parsed = JSON.parse(data);
69
89
  if (typeof parsed.response === "string") yield parsed.response;
@@ -1,12 +1,12 @@
1
1
  import { a as join, l as relative, n as dirname } from "./dist-BVqXeR_h.mjs";
2
- import { r as cliTitle } from "./output-CCH48AMM.mjs";
3
2
  import { n as readProjectPaths } from "./project-paths-GgcMozYz.mjs";
4
- import { m as readConfig, u as getDatabaseDialect } from "./config-CafTW6Cz.mjs";
5
- import { n as ensureProjectTsconfig } from "./project-tsconfig-B8GeM0RM.mjs";
3
+ import { m as readConfig, u as getDatabaseDialect } from "./config-Br_JZD6u.mjs";
6
4
  import { n as readJournal, t as collectMigrations } from "./collect-DiTn9yr6.mjs";
7
- import { I as select, O as intro, P as outro, T as cancel, W as isCancel, j as log } from "./dist-Dn6nn2IU.mjs";
5
+ import { n as ensureProjectTsconfig } from "./project-tsconfig-B8GeM0RM.mjs";
6
+ import { I as select, O as intro, P as outro, T as cancel, W as isCancel, j as log } from "./dist-CTBk70IR.mjs";
8
7
  import { t as writeDrizzleConfig } from "./config-D8MOgiQV.mjs";
9
- import { r as listDrizzleArtifacts, t as assertJournalCoherence } from "./validate-CIUwFpjB.mjs";
8
+ import { r as listDrizzleArtifacts, t as assertJournalCoherence } from "./validate-ctOrgiS3.mjs";
9
+ import { r as cliTitle } from "./output-Dm_A4Tbv.mjs";
10
10
  import { t as buildDrizzleKitSpawnEnv } from "./yarn-pnp-BV4AzNul.mjs";
11
11
  import { existsSync, mkdirSync, readFileSync, readdirSync, unlinkSync, writeFileSync } from "node:fs";
12
12
  import { fileURLToPath } from "node:url";
@@ -0,0 +1,2 @@
1
+ import { r as runGenCommand } from "./gen-B580--vC.mjs";
2
+ export { runGenCommand };
@@ -1,8 +1,8 @@
1
- import { c as import_picocolors } from "./output-CCH48AMM.mjs";
2
- import { c as getToken, d as openBrowser, n as createCodeChallenge, r as createCodeVerifier, t as awaitBrowserCallback } from "./auth-DLNN0D3Z.mjs";
1
+ import { c as getToken, d as openBrowser, n as createCodeChallenge, r as createCodeVerifier, t as awaitBrowserCallback } from "./auth-CSkdO2Bb.mjs";
3
2
  import { o as readProjectConfig } from "./project-C0Fqu05O.mjs";
4
- import { B as text, E as confirm, I as select, T as cancel, W as isCancel, j as log } from "./dist-Dn6nn2IU.mjs";
5
- import { n as PlatformClient, o as parsePlatformErrorBody, s as platformErrorMessage, t as PlatformApiError } from "./client-QTl6ko_D.mjs";
3
+ import { B as text, E as confirm, I as select, T as cancel, W as isCancel, j as log } from "./dist-CTBk70IR.mjs";
4
+ import { n as PlatformClient, o as parsePlatformErrorBody, s as platformErrorMessage, t as PlatformApiError } from "./client-RV8NVeB8.mjs";
5
+ import { c as import_picocolors } from "./output-Dm_A4Tbv.mjs";
6
6
  import { r as resolveProjectBySlug, t as getRequestedProjectSlug } from "./resolve-project-BG5ORGID.mjs";
7
7
  import { t as collectGitDeployMetadata } from "./git-metadata-D-gurjzG.mjs";
8
8
  import { randomBytes } from "node:crypto";
@@ -90,14 +90,12 @@ function formatInstallations(installations) {
90
90
  function formatConnection(connection) {
91
91
  const row = (label, value) => ` ${label.padEnd(16)}${value}`;
92
92
  const workflow = connection.build_executor === "github_actions" ? connection.workflow_path : `${connection.workflow_path} (unused for container builds)`;
93
- const rows = [
93
+ return [
94
94
  row("Repository", connection.repo_full_name),
95
95
  row("Branch", connection.branch),
96
96
  row("Build executor", connection.build_executor),
97
97
  row("Deploy workflow", workflow)
98
- ];
99
- if (connection.requires_reconnect) rows.push(row("Authorization", "Reconnect required: run `void github connect` for this repository"));
100
- return rows.join("\n");
98
+ ].join("\n");
101
99
  }
102
100
  async function runGithubCommand(root, args) {
103
101
  const token = getToken(root);
@@ -1,3 +1,4 @@
1
+ import { l as VoidPlatformSandbox } from "./sandbox-XZAqzFlG.mjs";
1
2
  import { t as StandardSchemaV1 } from "./standard-schema-Fo_vCAZh.mjs";
2
3
  import { n as HeadDescriptor } from "./head-Do8P4puT.mjs";
3
4
  import { r as AuthUser, t as AuthSession } from "./auth-DkcFflXV.mjs";
@@ -98,7 +99,7 @@ interface CloudBindings extends VoidGeneratedEnvBindings {
98
99
  KV: KVNamespace;
99
100
  STORAGE: R2Bucket;
100
101
  AI: Ai;
101
- SANDBOX: DurableObjectNamespace<import("@cloudflare/sandbox").Sandbox>;
102
+ SANDBOX: DurableObjectNamespace<VoidPlatformSandbox>;
102
103
  [key: string]: unknown;
103
104
  }
104
105
  type CloudEnv = Env & {