void 0.22.0 → 0.24.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 (301) hide show
  1. package/AGENTS_TEMPLATE.md +1 -1
  2. package/README.md +5 -1
  3. package/dist/{account-cmd-CjyxcGkM.mjs → account-cmd-vJhh5lrb.mjs} +5 -5
  4. package/dist/{scan-ClYmX3sa.mjs → application-analysis-BVsVqc11.mjs} +135 -18
  5. package/dist/application-routing-B7QEjqSR.mjs +27 -0
  6. package/dist/{auth-DLNN0D3Z.mjs → auth-CQkSDS50.mjs} +26 -96
  7. package/dist/auth-DX3JURcX.mjs +2 -0
  8. package/dist/{auth-link-BLO4ptzo.mjs → auth-link-D75t9wO2.mjs} +5 -5
  9. package/dist/{auth-router-ZUg9MF_U.mjs → auth-router-ClfhL1J7.mjs} +7 -7
  10. package/dist/{better-auth-shared-rsBGBvWJ.mjs → better-auth-shared-hy6RPh9W.mjs} +13 -2
  11. package/dist/{build-cmd-BxR5FROK.mjs → build-cmd-zMi1iFnS.mjs} +21 -9
  12. package/dist/{cache-D0sWhgKI.mjs → cache-ZtQmyxVV.mjs} +5 -5
  13. package/dist/{cancel-deploy-D4NUqFbi.mjs → cancel-deploy-Box0kkEV.mjs} +5 -5
  14. package/dist/{cf-access-P0iZnu0q.mjs → cf-access-BGe5sWXF.mjs} +4 -48
  15. package/dist/{cf-access-DRsQRe6k.mjs → cf-access-TWNzXltp.mjs} +3 -11
  16. package/dist/{cf-build-output-BJ6yGEIS.mjs → cf-build-output-BPqOT964.mjs} +2 -1
  17. package/dist/cf-build-output-_0HNWysu.mjs +2 -0
  18. package/dist/cli/cli.mjs +89 -461
  19. package/dist/cli/{cf-compat.mjs → cloudflare-operation-process.mjs} +454 -424
  20. package/dist/cli/env-schema-probe.d.mts +2 -1
  21. package/dist/cli/env-schema-probe.mjs +4 -4
  22. package/dist/client-B9UBI03V.mjs +2 -0
  23. package/dist/{client-BTZ3XkrB.mjs → client-DKAsFA4X.mjs} +161 -24
  24. package/dist/{cloudflare-auth-DQkqoMYa.mjs → cloudflare-auth-Qdc7tw8F.mjs} +41 -38
  25. package/dist/{cloudflare-cmd-BKlfGHAy.mjs → cloudflare-cmd-CmY8dGkd.mjs} +6 -6
  26. package/dist/cloudflare-config-Bktvwtpf.mjs +182 -0
  27. package/dist/{cloudflare-connect-Ctmrw579.mjs → cloudflare-connect-IiR3ZieC.mjs} +4 -4
  28. package/dist/{cloudflare-operations-BT6OWFBk.mjs → cloudflare-operations-BCdXSsmo.mjs} +1 -1
  29. package/dist/{cloudflare-operations-B9tzgjmf.mjs → cloudflare-operations-DzH-A966.mjs} +116 -172
  30. package/dist/{preset-UHj9ARyP.mjs → cloudflare-process-B-wekeR6.mjs} +93 -6
  31. package/dist/{config-VavjpDnp.d.mts → config-BMHb8RCj.d.mts} +1 -0
  32. package/dist/config-C_XRIPx2.mjs +89 -0
  33. package/dist/config-entry.d.mts +1 -1
  34. package/dist/{connect-Dg-WkW-C.mjs → connect-B-usTnlF.mjs} +9 -9
  35. package/dist/{create-project-l9J7pbtm.mjs → create-project-CYOOAYcn.mjs} +12 -12
  36. package/dist/{create-project-DdoqwFLF.mjs → create-project-FWbf5Olo.mjs} +1 -1
  37. package/dist/{db-gp2sCXyN.mjs → db-Ck2eZ2iB.mjs} +26 -26
  38. package/dist/{delete-TTedbH6B.mjs → delete-sK56qtzZ.mjs} +5 -5
  39. package/dist/{deploy-CH-o2CaZ.mjs → deploy-gCVaiJbS.mjs} +984 -616
  40. package/dist/{deploy-B19L2Bra.mjs → deploy-irP5q0-x.mjs} +1 -1
  41. package/dist/{domain-JRF59P_r.mjs → domain-DFfQE8jg.mjs} +6 -6
  42. package/dist/{email-Bo6G9LOZ.mjs → email-CdnhUHvJ.mjs} +15 -30
  43. package/dist/{env-BYOrWQnv.mjs → env-DmGdHi5i.mjs} +8 -8
  44. package/dist/{env-public-BxU_0yTL.d.mts → env-public-BX_r8HR6.d.mts} +1 -1
  45. package/dist/{env-types-C2_bIk_b.mjs → env-types-D5kds_OZ.mjs} +1 -1
  46. package/dist/{env-validation-BB4GkLxn.mjs → env-validation-C_8tPdhs.mjs} +20 -73
  47. package/dist/{env-validation-BXge7uyK.mjs → env-validation-zZOCcQVZ.mjs} +1 -1
  48. package/dist/{fetch-CXDChK7B.mjs → fetch-BIZJh7vR.mjs} +2 -2
  49. package/dist/{fetch-stream-AOByI7Ki.mjs → fetch-stream-IvCYKyQL.mjs} +24 -4
  50. package/dist/{gen-sCtlCOdA.mjs → gen-CshAkukR.mjs} +4 -4
  51. package/dist/gen-DvQTWzDU.mjs +2 -0
  52. package/dist/{github-cmd-0-7PexDq.mjs → github-cmd-DftuEvIt.mjs} +13 -13
  53. package/dist/{handler-HEcZsaij.d.mts → handler-CZ4nAylQ.d.mts} +1 -1
  54. package/dist/{headers-DWi2IXWx.mjs → headers-2rKda9Y6.mjs} +1 -1
  55. package/dist/{help-GKtwl07I.mjs → help-Dotbf6iz.mjs} +236 -750
  56. package/dist/help-mabuIV98.mjs +2 -0
  57. package/dist/{inbound-aVHEUhKo.mjs → inbound-fRkqcXaC.mjs} +1 -1
  58. package/dist/index.d.mts +1 -1
  59. package/dist/index.mjs +299 -1517
  60. package/dist/info-B97bTX9N.mjs +113 -0
  61. package/dist/{init-FZx3Elvz.mjs → init-BTQEZZGJ.mjs} +61 -27
  62. package/dist/limits-Bq5LG8Id.d.mts +27 -0
  63. package/dist/limits-Cjuk2VPm.mjs +68 -0
  64. package/dist/{link-BrQfb_CU.mjs → link-B46sYH0K.mjs} +6 -6
  65. package/dist/{list-D44jmIAM.mjs → list-BnPrIsU_.mjs} +6 -6
  66. package/dist/{live-CKJlvlNp.d.mts → live-Chw1eIMv.d.mts} +1 -1
  67. package/dist/{local-d1-Bg9OzEEO.mjs → local-d1-2CMnpuW_.mjs} +2 -2
  68. package/dist/log-vqY3pqwI.mjs +29 -0
  69. package/dist/{login-CAsAsQ-_.mjs → login-BuiMyUrx.mjs} +8 -8
  70. package/dist/login-DIy9Sb-U.mjs +2 -0
  71. package/dist/{logs-BjKvFnVM.mjs → logs-CZG9d-ic.mjs} +10 -11
  72. package/dist/migrate-BCiJ8w0f.mjs +2 -0
  73. package/dist/{migrate-BPITvDJN.mjs → migrate-q4_njtaW.mjs} +4 -3
  74. package/dist/{node-Dt7z256D.mjs → node-BkyRWRx8.mjs} +1 -1
  75. package/dist/operator-args-B3BTmSoi.mjs +697 -0
  76. package/dist/{operator-auth-8KnOVXVd.mjs → operator-auth-7erYc6Lt.mjs} +2 -2
  77. package/dist/{operator-client-DUwumHpQ.mjs → operator-client-CpHjTd0t.mjs} +3 -3
  78. package/dist/{operator-cmd-BK5CCiT9.mjs → operator-cmd-DGqPJUD3.mjs} +70 -24
  79. package/dist/{output-Dm_A4Tbv.mjs → output-CbM85T4k.mjs} +18 -10
  80. package/dist/pages/client.d.mts +34 -2
  81. package/dist/pages/client.mjs +59 -3
  82. package/dist/pages/index.d.mts +1 -1
  83. package/dist/pages/index.mjs +2 -2
  84. package/dist/pages/islands-plugin.mjs +1 -1
  85. package/dist/pages/protocol.d.mts +2 -2
  86. package/dist/pages/protocol.mjs +2 -308
  87. package/dist/{parse-filename-DioPHiR9.mjs → parse-filename-CUbj-1MP.mjs} +35 -1
  88. package/dist/plan-D1Q5rf-r.mjs +2 -0
  89. package/dist/plan-NPpwZ_kc.mjs +58 -0
  90. package/dist/platform-args-3k8X9-H_.mjs +514 -0
  91. package/dist/platform-args-DdnM6WIf.mjs +2 -0
  92. package/dist/{platform-auth-config-BlN8xTdD.mjs → platform-auth-config-DDrxUy4m.mjs} +6 -6
  93. package/dist/{platform-auth-protection-7d5aV2Jg.mjs → platform-auth-protection-BLadnnct.mjs} +8 -8
  94. package/dist/{platform-auth-recovery-Dxij8ZbR.mjs → platform-auth-recovery-CmCzX2Fl.mjs} +6 -6
  95. package/dist/{platform-cmd-B3hwKrFK.mjs → platform-cmd-DMDEc9uS.mjs} +29 -8
  96. package/dist/{platform-cmd-E0FuL212.mjs → platform-cmd-pMTRhvYs.mjs} +1 -1
  97. package/dist/{platform-domain-D6Xcy9ZX.mjs → platform-domain-Di6EYrQl.mjs} +5 -5
  98. package/dist/{platform-lifecycle-k0E0xoxx.mjs → platform-lifecycle-BBoNzojY.mjs} +1541 -572
  99. package/dist/{platform-lifecycle-DMh_qrry.mjs → platform-lifecycle-BFdSi9Qt.mjs} +1 -1
  100. package/dist/{platform-management-Brz_BDiT.mjs → platform-management-CWOQOWXm.mjs} +10 -7
  101. package/dist/{platform-management-DOtss0BN.mjs → platform-management-DG47jys8.mjs} +1 -1
  102. package/dist/platform-plans-config-Vl9BP3H4.mjs +359 -0
  103. package/dist/{platform-recovery-BvtcXON5.mjs → platform-recovery-BJnQJEtQ.mjs} +4 -4
  104. package/dist/{platform-registry-QBa4DK32.mjs → platform-registry-DkPPXfp_.mjs} +2 -2
  105. package/dist/{plugin-inference-BMfKRSqE.mjs → plugin-inference-CXWnn79A.mjs} +174 -64
  106. package/dist/{prepare-C-6YZyyg.mjs → prepare-CBLT3CHH.mjs} +3 -3
  107. package/dist/prepare-CnjcTV2s.mjs +2 -0
  108. package/dist/{prepare-CRhJbVrG.mjs → prepare-DnaKBi--.mjs} +5 -21
  109. package/dist/{project-C0Fqu05O.mjs → project-DKG5Ra8p.mjs} +15 -82
  110. package/dist/project-DsblYifa.mjs +2 -0
  111. package/dist/{project-cmd-BZLCqOqw.mjs → project-cmd-DxnXstAq.mjs} +19 -19
  112. package/dist/{project-team-BvgM0WoX.mjs → project-team-BmHcaALJ.mjs} +5 -5
  113. package/dist/{project-token-l5DqK6Az.mjs → project-token-GionZlBI.mjs} +5 -5
  114. package/dist/{project-zero-trust-v6Mvpp8y.mjs → project-zero-trust-JLCjVQA7.mjs} +5 -5
  115. package/dist/prompts-2TGE6oXx.mjs +2 -0
  116. package/dist/prompts-BNUoTiaf.mjs +2044 -0
  117. package/dist/{protocol-BBa6cstI.d.mts → protocol-CjF_iI9X.d.mts} +2 -2
  118. package/dist/protocol-U7bfjHmA.mjs +331 -0
  119. package/dist/{provision-Fr9pRqce.mjs → provision-CVku1JFU.mjs} +1 -1
  120. package/dist/{provision-C4IGqkBf.mjs → provision-CaoxO_U7.mjs} +90 -199
  121. package/dist/{requests-DN-BbNiM.mjs → requests-BOjIVAeF.mjs} +5 -5
  122. package/dist/resource-name-C7LVpcRm.mjs +11 -0
  123. package/dist/{rollback-D7rzSaZM.mjs → rollback-CwR3pLj3.mjs} +6 -6
  124. package/dist/route-url-CG7U-cRN.mjs +15 -0
  125. package/dist/{runner-B8wXwWlo.mjs → runner-CXA9Fh8h.mjs} +1 -1
  126. package/dist/{runner-p-dMs2UN.mjs → runner-Ol0TNjk6.mjs} +2 -2
  127. package/dist/runtime/ai.d.mts +12 -8
  128. package/dist/runtime/ai.mjs +87 -22
  129. package/dist/runtime/better-auth-mysql.mjs +1 -1
  130. package/dist/runtime/better-auth-pg.mjs +1 -1
  131. package/dist/runtime/better-auth.mjs +1 -1
  132. package/dist/runtime/client-react.mjs +2 -2
  133. package/dist/runtime/client-solid.mjs +2 -2
  134. package/dist/runtime/client-svelte.mjs +2 -2
  135. package/dist/runtime/client-vue.mjs +2 -2
  136. package/dist/runtime/client.mjs +2 -2
  137. package/dist/runtime/durable.d.mts +3 -1
  138. package/dist/runtime/durable.mjs +4 -1
  139. package/dist/runtime/email/testing.mjs +2 -2
  140. package/dist/runtime/email.mjs +1 -1
  141. package/dist/runtime/env-public.d.mts +1 -1
  142. package/dist/runtime/fetch-stream.mjs +1 -1
  143. package/dist/runtime/fetch.mjs +1 -1
  144. package/dist/runtime/handler.d.mts +1 -1
  145. package/dist/runtime/kv.mjs +0 -1
  146. package/dist/runtime/limits.d.mts +2 -0
  147. package/dist/runtime/limits.mjs +2 -0
  148. package/dist/runtime/live-client.d.mts +1 -1
  149. package/dist/runtime/live-server.mjs +25 -16
  150. package/dist/runtime/live.d.mts +1 -1
  151. package/dist/runtime/migration-handler.mjs +62 -42
  152. package/dist/runtime/remote/index.mjs +2 -2
  153. package/dist/runtime/route-url.d.mts +4 -0
  154. package/dist/runtime/route-url.mjs +2 -0
  155. package/dist/runtime/routing.d.mts +180 -0
  156. package/dist/runtime/routing.mjs +1082 -0
  157. package/dist/runtime/sandbox-container.d.mts +1 -1
  158. package/dist/runtime/sandbox-container.mjs +1 -1
  159. package/dist/runtime/sandbox.d.mts +3 -3
  160. package/dist/runtime/sandbox.mjs +75 -45
  161. package/dist/runtime/sse.mjs +1 -1
  162. package/dist/runtime/validator.d.mts +1 -1
  163. package/dist/runtime/ws-server.d.mts +4 -2
  164. package/dist/runtime/ws-server.mjs +27 -2
  165. package/dist/runtime/ws.d.mts +2 -2
  166. package/dist/runtime/ws.mjs +8 -6
  167. package/dist/{sandbox-qpNBT8a3.d.mts → sandbox-XZAqzFlG.d.mts} +11 -8
  168. package/dist/{sandbox-container-DdNEBfCc.d.mts → sandbox-container-Bo0eiFKz.d.mts} +2 -1
  169. package/dist/{sandbox-container-4fdqLnyb.mjs → sandbox-container-C6ItmVuN.mjs} +4 -2
  170. package/dist/{scan-4tfN-PSn.mjs → scan-C7okrLyM.mjs} +4 -35
  171. package/dist/{secret-BOtOl_cb.mjs → secret-ByWJWBUG.mjs} +7 -7
  172. package/dist/{skills-D1II1Juz.mjs → skills-C1PlclPt.mjs} +1 -1
  173. package/dist/{sse-BaC1jXko.mjs → sse-CQNaDFFV.mjs} +6 -3
  174. package/dist/{subcommand-prompt-CY1C4fvl.mjs → subcommand-prompt-klFCfcor.mjs} +40 -32
  175. package/dist/validate-Dq_L3s0S.mjs +2 -0
  176. package/dist/{validate-CIUwFpjB.mjs → validate-ctOrgiS3.mjs} +2 -1
  177. package/dist/{wrangler-DQF1vKyf.mjs → wrangler-7K-bW_DL.mjs} +8 -239
  178. package/dist/{ws-BoY7vQML.d.mts → ws-CL1w7GXU.d.mts} +13 -2
  179. package/package.json +16 -10
  180. package/skills/migrate-vite-cloudflare-to-void/SKILL.md +34 -157
  181. package/skills/void/SKILL.md +55 -135
  182. package/skills/void/docs/guide/ai.md +94 -84
  183. package/skills/void/docs/guide/app-types.md +3 -32
  184. package/skills/void/docs/guide/auth.md +12 -116
  185. package/skills/void/docs/guide/database/d1.md +9 -54
  186. package/skills/void/docs/guide/database/mysql.md +1 -1
  187. package/skills/void/docs/guide/database/postgresql.md +5 -26
  188. package/skills/void/docs/guide/database.md +23 -75
  189. package/skills/void/docs/guide/deployment.md +48 -112
  190. package/skills/void/docs/guide/durable-state.md +43 -18
  191. package/skills/void/docs/guide/edge/headers.md +4 -48
  192. package/skills/void/docs/guide/edge/prerendering.md +5 -20
  193. package/skills/void/docs/guide/edge/redirects.md +11 -64
  194. package/skills/void/docs/guide/edge/revalidation.md +5 -18
  195. package/skills/void/docs/guide/edge/rewrites.md +56 -284
  196. package/skills/void/docs/guide/edge/static-assets.md +22 -72
  197. package/skills/void/docs/guide/email/domains.md +116 -0
  198. package/skills/void/docs/guide/email/receiving.md +139 -0
  199. package/skills/void/docs/guide/email/sending.md +231 -0
  200. package/skills/void/docs/guide/email.md +13 -619
  201. package/skills/void/docs/guide/env-migration.md +11 -11
  202. package/skills/void/docs/guide/env-vars.md +9 -29
  203. package/skills/void/docs/guide/index.md +0 -15
  204. package/skills/void/docs/guide/jobs.md +3 -18
  205. package/skills/void/docs/guide/kv.md +5 -11
  206. package/skills/void/docs/guide/live.md +5 -56
  207. package/skills/void/docs/guide/pages-routing/actions-and-forms.md +78 -125
  208. package/skills/void/docs/guide/pages-routing/head.md +10 -10
  209. package/skills/void/docs/guide/pages-routing/islands.md +6 -36
  210. package/skills/void/docs/guide/pages-routing/layouts.md +6 -128
  211. package/skills/void/docs/guide/pages-routing/loaders.md +3 -19
  212. package/skills/void/docs/guide/pages-routing/markdown.md +13 -171
  213. package/skills/void/docs/guide/pages-routing/overview.md +7 -17
  214. package/skills/void/docs/guide/pages-routing/view-transitions.md +1 -1
  215. package/skills/void/docs/guide/platform/administration/access.md +1 -4
  216. package/skills/void/docs/guide/platform/administration/email.md +35 -8
  217. package/skills/void/docs/guide/platform/administration/operations.md +26 -4
  218. package/skills/void/docs/guide/platform/administration/plans.md +126 -0
  219. package/skills/void/docs/guide/platform/administration/projects.md +5 -2
  220. package/skills/void/docs/guide/platform/administration/zero-trust.md +49 -160
  221. package/skills/void/docs/guide/platform/development/runtime.md +3 -13
  222. package/skills/void/docs/guide/platform/development/schema-ci.md +0 -58
  223. package/skills/void/docs/guide/platform/installation/ci.md +1 -1
  224. package/skills/void/docs/guide/platform/installation/credentials.md +15 -6
  225. package/skills/void/docs/guide/platform/installation/domains.md +35 -2
  226. package/skills/void/docs/guide/platform/installation/first-deployment.md +4 -2
  227. package/skills/void/docs/guide/platform/installation/maintenance.md +15 -1
  228. package/skills/void/docs/guide/platform/installation/prerequisites.md +24 -18
  229. package/skills/void/docs/guide/platform/installation/setup.md +88 -14
  230. package/skills/void/docs/guide/platform-administration.md +1 -0
  231. package/skills/void/docs/guide/queues.md +7 -9
  232. package/skills/void/docs/guide/quickstart.md +38 -37
  233. package/skills/void/docs/guide/remote-dev.md +5 -10
  234. package/skills/void/docs/guide/sandboxes.md +29 -21
  235. package/skills/void/docs/guide/server-routing.md +9 -72
  236. package/skills/void/docs/guide/sse.md +4 -18
  237. package/skills/void/docs/guide/ssg.md +3 -15
  238. package/skills/void/docs/guide/ssr.md +14 -62
  239. package/skills/void/docs/guide/storage.md +9 -4
  240. package/skills/void/docs/guide/type-safety.md +3 -14
  241. package/skills/void/docs/guide/typed-fetch.md +3 -7
  242. package/skills/void/docs/guide/websockets.md +68 -40
  243. package/skills/void/docs/integrations/agents.md +3 -3
  244. package/skills/void/docs/integrations/cloudflare.md +85 -316
  245. package/skills/void/docs/integrations/frameworks/analog.md +5 -64
  246. package/skills/void/docs/integrations/frameworks/astro.md +4 -73
  247. package/skills/void/docs/integrations/frameworks/nuxt.md +5 -62
  248. package/skills/void/docs/integrations/frameworks/overview.md +11 -54
  249. package/skills/void/docs/integrations/frameworks/react-router.md +5 -60
  250. package/skills/void/docs/integrations/frameworks/sveltekit.md +6 -65
  251. package/skills/void/docs/integrations/frameworks/tanstack-start.md +4 -62
  252. package/skills/void/docs/integrations/nodejs-bun-deno.md +5 -69
  253. package/skills/void/docs/reference/api/auth.md +156 -0
  254. package/skills/void/docs/reference/api/client.md +87 -0
  255. package/skills/void/docs/reference/api/database.md +95 -0
  256. package/skills/void/docs/reference/api/durable.md +46 -0
  257. package/skills/void/docs/reference/api/env.md +50 -0
  258. package/skills/void/docs/reference/api/handlers.md +254 -0
  259. package/skills/void/docs/reference/api/pages.md +241 -0
  260. package/skills/void/docs/reference/api/plugin.md +39 -0
  261. package/skills/void/docs/reference/api/resources.md +109 -0
  262. package/skills/void/docs/reference/api/rewrites.md +76 -0
  263. package/skills/void/docs/reference/api/types.md +92 -0
  264. package/skills/void/docs/reference/api.md +56 -1218
  265. package/skills/void/docs/reference/cli/auth.md +89 -0
  266. package/skills/void/docs/reference/cli/database.md +128 -0
  267. package/skills/void/docs/reference/cli/deploy.md +105 -0
  268. package/skills/void/docs/reference/cli/domains.md +41 -0
  269. package/skills/void/docs/reference/cli/email.md +129 -0
  270. package/skills/void/docs/reference/cli/generate.md +116 -0
  271. package/skills/void/docs/reference/cli/github.md +189 -0
  272. package/skills/void/docs/reference/cli/platform-config.md +92 -0
  273. package/skills/void/docs/reference/cli/platform-email.md +81 -0
  274. package/skills/void/docs/reference/cli/platform-installation.md +142 -0
  275. package/skills/void/docs/reference/cli/platform-operations.md +90 -0
  276. package/skills/void/docs/reference/cli/platform-users.md +89 -0
  277. package/skills/void/docs/reference/cli/platform-zero-trust.md +59 -0
  278. package/skills/void/docs/reference/cli/platform.md +70 -0
  279. package/skills/void/docs/reference/cli/project.md +214 -0
  280. package/skills/void/docs/reference/cli/secrets.md +76 -0
  281. package/skills/void/docs/reference/cli/setup.md +70 -0
  282. package/skills/void/docs/reference/cli.md +32 -1682
  283. package/skills/void/docs/reference/config.md +12 -18
  284. package/skills/void/docs/reference/resource-inference.md +3 -58
  285. package/skills/void/docs/reference/structure.md +14 -41
  286. package/dist/auth-CZuiVsFh.mjs +0 -2
  287. package/dist/canonical-json-DuDiiUsQ.mjs +0 -13
  288. package/dist/client-Czz8o5jP.mjs +0 -2
  289. package/dist/dist-BuDuKZJv.mjs +0 -2
  290. package/dist/dist-CTBk70IR.mjs +0 -1310
  291. package/dist/gen-CNJ62MM7.mjs +0 -2
  292. package/dist/help-CmZzxUba.mjs +0 -2
  293. package/dist/log-ChfPKsVd.mjs +0 -26
  294. package/dist/login-CGcRKEoi.mjs +0 -2
  295. package/dist/migrate-CYfbKkXh.mjs +0 -2
  296. package/dist/plan-BEZ8VJW0.mjs +0 -256
  297. package/dist/plan-DpuOr14e.mjs +0 -2
  298. package/dist/prepare-Bm3iq-u4.mjs +0 -2
  299. package/dist/project-BuUwfj6f.mjs +0 -2
  300. package/dist/validate-EKmJWxmy.mjs +0 -2
  301. /package/dist/cli/{cf-compat.d.mts → cloudflare-operation-process.d.mts} +0 -0
package/dist/cli/cli.mjs CHANGED
@@ -1,12 +1,13 @@
1
1
  #!/usr/bin/env node
2
2
  import { a as join } from "../dist-BVqXeR_h.mjs";
3
- import { j as log } from "../dist-CTBk70IR.mjs";
3
+ import { L as log } from "../prompts-BNUoTiaf.mjs";
4
4
  import { n as getPackageDir } from "../agents-B_pX_HmQ.mjs";
5
5
  import { t as formatCloudflareUserMessage } from "../cloudflare-user-output-Q-k0QoNQ.mjs";
6
- import { a as operatorGroups, i as printVoidHeader, n as printGlobalHelp, o as parseOperatorArgs, r as printHelpPage, t as getHelpPath } from "../help-GKtwl07I.mjs";
7
- import { r as OperatorClientError } from "../operator-client-DUwumHpQ.mjs";
6
+ import { c as import_picocolors } from "../output-CbM85T4k.mjs";
7
+ import { i as printVoidHeader, n as printGlobalHelp, r as printHelpPage, t as getHelpPath } from "../help-Dotbf6iz.mjs";
8
+ import { r as OperatorClientError } from "../operator-client-CpHjTd0t.mjs";
9
+ import { n as platformSubcommands, t as parsePlatformArgs } from "../platform-args-3k8X9-H_.mjs";
8
10
  import { readFileSync } from "node:fs";
9
- import { PLATFORM_LOGIN_KINDS, parsePlatformLoginId } from "@void/platform";
10
11
  import { parseArgs } from "node:util";
11
12
  //#region src/cli/account-args.ts
12
13
  const accountSubcommands = [
@@ -63,7 +64,6 @@ function parseDeployArgs(args) {
63
64
  "skip-build": { type: "boolean" },
64
65
  debug: { type: "boolean" },
65
66
  platform: { type: "string" },
66
- backend: { type: "string" },
67
67
  provision: { type: "boolean" },
68
68
  "require-email": { type: "boolean" },
69
69
  atomic: { type: "boolean" }
@@ -75,9 +75,7 @@ function parseDeployArgs(args) {
75
75
  } catch (error) {
76
76
  const message = error instanceof Error ? error.message : String(error);
77
77
  if (message.includes("argument missing") || message.includes("argument is ambiguous")) {
78
- const optionMatch = message.match(/Option '(--[a-z-]+)/);
79
- if (optionMatch?.[1] === "--platform") throw new Error("deploy: --platform requires a value ('cloudflare' or 'void').");
80
- if (optionMatch?.[1] === "--backend") throw new Error("deploy: --backend requires a value ('cloudflare').");
78
+ if (message.match(/Option '(--[a-z-]+)/)?.[1] === "--platform") throw new Error("deploy: --platform requires a value ('cloudflare' or 'void').");
81
79
  throw new Error("deploy: --project requires a slug.");
82
80
  }
83
81
  const unknownOptionMatch = message.match(/Unknown option '([^']+)'/);
@@ -86,11 +84,7 @@ function parseDeployArgs(args) {
86
84
  }
87
85
  const tokens = parsed.tokens ?? [];
88
86
  if (tokens.filter((token) => token.kind === "option" && token.name === "project").length > 1) throw new Error("deploy: --project can only be specified once.");
89
- const backendTokens = tokens.filter((token) => token.kind === "option" && token.name === "backend");
90
- if (backendTokens.length > 1) throw new Error("deploy: --backend can only be specified once.");
91
- const platformTokens = tokens.filter((token) => token.kind === "option" && token.name === "platform");
92
- if (platformTokens.length > 1) throw new Error("deploy: --platform can only be specified once.");
93
- if (platformTokens.length > 0 && backendTokens.length > 0) throw new Error("deploy: --platform and --backend cannot be used together.");
87
+ if (tokens.filter((token) => token.kind === "option" && token.name === "platform").length > 1) throw new Error("deploy: --platform can only be specified once.");
94
88
  if (parsed.positionals.length > 0) throw new Error(`deploy: Unexpected argument '${parsed.positionals[0]}'.`);
95
89
  const projectValue = parsed.values.project;
96
90
  const projectSlug = typeof projectValue === "string" ? projectValue : void 0;
@@ -102,15 +96,12 @@ function parseDeployArgs(args) {
102
96
  const platformValue = typeof parsed.values.platform === "string" ? parsed.values.platform : void 0;
103
97
  if (platformValue !== void 0 && platformValue !== "cloudflare" && platformValue !== "void") throw new Error("deploy: --platform must be 'cloudflare' or 'void'.");
104
98
  const platform = platformValue;
105
- const backendValue = typeof parsed.values.backend === "string" ? parsed.values.backend : void 0;
106
- if (backendValue !== void 0 && backendValue !== "cloudflare") throw new Error("deploy: --backend must be 'cloudflare'.");
107
- const backend = backendValue;
108
99
  const provision = parsed.values.provision === true ? true : void 0;
109
- if (provision && backend !== "cloudflare" && platform !== "cloudflare") throw new Error("deploy: --provision requires --platform cloudflare.");
100
+ if (provision && platform !== "cloudflare") throw new Error("deploy: --provision requires --platform cloudflare.");
110
101
  const requireEmail = parsed.values["require-email"] === true ? true : void 0;
111
102
  const atomic = parsed.values.atomic === true ? true : void 0;
112
- if (requireEmail && backend !== "cloudflare" && platform !== "cloudflare") throw new Error("deploy: --require-email requires --platform cloudflare.");
113
- if (backend === "cloudflare" || platform === "cloudflare") {
103
+ if (requireEmail && platform !== "cloudflare") throw new Error("deploy: --require-email requires --platform cloudflare.");
104
+ if (platform === "cloudflare") {
114
105
  if (projectSlug !== void 0) throw new Error("deploy: --project is not supported with --platform cloudflare — this platform deploys to your own Cloudflare account and no Void project is involved.");
115
106
  }
116
107
  return {
@@ -120,7 +111,6 @@ function parseDeployArgs(args) {
120
111
  skipBuild,
121
112
  debug,
122
113
  platform,
123
- backend,
124
114
  provision,
125
115
  requireEmail,
126
116
  atomic
@@ -614,7 +604,6 @@ function parseEmailArgs(args) {
614
604
  let limit;
615
605
  const projectValues = [];
616
606
  const platformValues = [];
617
- const backendValues = [];
618
607
  const subdomainValues = [];
619
608
  const positional = [];
620
609
  const rest = args.slice(1);
@@ -635,12 +624,8 @@ function parseEmailArgs(args) {
635
624
  if (value === void 0) throw new Error("email: --platform requires a value ('cloudflare' or 'void').");
636
625
  platformValues.push(value);
637
626
  i = next;
638
- } else if (rest[i] === "--backend" || rest[i]?.startsWith("--backend=")) {
639
- const { value, next } = readFlagValue(rest, i, "--backend");
640
- if (value === void 0) throw new Error("email: --backend requires a value ('cloudflare').");
641
- backendValues.push(value);
642
- i = next;
643
- } else if (rest[i] === "--subdomain" || rest[i]?.startsWith("--subdomain=")) {
627
+ } else if (rest[i] === "--backend" || rest[i]?.startsWith("--backend=")) throw new Error("email: Unknown option '--backend'.");
628
+ else if (rest[i] === "--subdomain" || rest[i]?.startsWith("--subdomain=")) {
644
629
  const { value, next } = readFlagValue(rest, i, "--subdomain");
645
630
  if (value === void 0 || value.trim() === "") throw new Error("email: --subdomain requires a value (a subdomain label or host).");
646
631
  subdomainValues.push(value);
@@ -648,20 +633,13 @@ function parseEmailArgs(args) {
648
633
  } else positional.push(rest[i]);
649
634
  if (projectValues.length > 1) throw new Error("email: --project can only be specified once.");
650
635
  const projectSlug = projectValues[0];
651
- if (backendValues.length > 1) throw new Error("email: --backend can only be specified once.");
652
636
  if (platformValues.length > 1) throw new Error("email: --platform can only be specified once.");
653
- if (platformValues.length > 0 && backendValues.length > 0) throw new Error("email: --platform and --backend cannot be used together.");
654
637
  let platform;
655
638
  const platformValue = platformValues[0];
656
639
  if (platformValue !== void 0) {
657
640
  if (platformValue !== "cloudflare" && platformValue !== "void") throw new Error("email: --platform must be 'cloudflare' or 'void'.");
658
641
  platform = platformValue;
659
642
  }
660
- const backendValue = backendValues[0];
661
- if (backendValue !== void 0) {
662
- if (backendValue !== "cloudflare") throw new Error("email: --backend must be 'cloudflare'.");
663
- platform = "cloudflare";
664
- }
665
643
  if (subdomainValues.length > 1) throw new Error("email: --subdomain can only be specified once.");
666
644
  const subdomain = subdomainValues[0];
667
645
  if (subcommand === "domain") {
@@ -1172,390 +1150,16 @@ function parseGithubArgs(args) {
1172
1150
  throw new Error("github: Usage: void github <install|installations|connect|update|status|disconnect|link|join>.");
1173
1151
  }
1174
1152
  //#endregion
1175
- //#region src/cli/platform-config-args.ts
1176
- const PLATFORM_AUTH_ACTIONS = [
1177
- "list",
1178
- "show",
1179
- "initialize",
1180
- "add",
1181
- "configure",
1182
- "test",
1183
- "enable",
1184
- "disable",
1185
- "link",
1186
- "admission",
1187
- "protection",
1188
- "recover"
1189
- ];
1190
- function parsePlatformConfigArgs(args) {
1191
- if (args.length && args[0] !== "auth") throw new Error("platform: Usage: void platform config auth [command] [options].");
1192
- const positional = [];
1193
- const flags = /* @__PURE__ */ new Set();
1194
- const values = /* @__PURE__ */ new Map();
1195
- const valueFlags = [
1196
- "connection",
1197
- "installation",
1198
- "id",
1199
- "file",
1200
- "client-secret-env",
1201
- "test-id"
1202
- ];
1203
- for (let index = 1; index < args.length; index++) {
1204
- const arg = args[index];
1205
- if (!arg.startsWith("-")) {
1206
- positional.push(arg);
1207
- continue;
1208
- }
1209
- const name = arg.slice(2);
1210
- if (!arg.startsWith("--") || ![
1211
- "json",
1212
- "plan",
1213
- "yes"
1214
- ].includes(name) && !valueFlags.includes(name)) throw new Error(`platform: Unknown config auth flag ${arg}.`);
1215
- if (flags.has(name) || values.has(name)) throw new Error(`platform: Duplicate flag ${arg}.`);
1216
- if (!valueFlags.includes(name)) {
1217
- flags.add(name);
1218
- continue;
1219
- }
1220
- const value = args[++index];
1221
- if (!value || value.startsWith("-")) throw new Error(`platform: ${arg} requires a value.`);
1222
- values.set(name, value);
1223
- }
1224
- const [action = "", target = "", ...extra] = positional;
1225
- if (extra.length || action && !PLATFORM_AUTH_ACTIONS.includes(action)) throw new Error(`platform: Usage: void platform config auth <${PLATFORM_AUTH_ACTIONS.join("|")}>.`);
1226
- const needsTarget = action && action !== "list" && action !== "initialize" && action !== "admission";
1227
- if (needsTarget && !target || !needsTarget && target) throw new Error(`platform: ${action || "config auth"} ${needsTarget ? "requires a method" : "does not accept a method"}.`);
1228
- if (action === "add") {
1229
- if (!PLATFORM_LOGIN_KINDS.includes(target)) throw new Error(`platform: Login kind must be ${PLATFORM_LOGIN_KINDS.join(", ")}.`);
1230
- } else if (action === "protection") {
1231
- if (![
1232
- "enable",
1233
- "disable",
1234
- "show"
1235
- ].includes(target)) throw new Error("platform: Usage: void platform config auth protection <enable|disable|show>.");
1236
- } else if (target) parsePlatformLoginId(target);
1237
- if (flags.has("plan") && flags.has("yes")) throw new Error("platform: --plan and --yes cannot be combined.");
1238
- if ((!action || action === "list" || action === "show") && (flags.has("plan") || flags.has("yes"))) throw new Error("platform: Select a configuration change before using --plan or --yes.");
1239
- if (values.has("id") && action !== "add") throw new Error("platform: --id is only valid when adding a login method.");
1240
- if (values.has("installation") && action !== "recover" && action !== "protection") throw new Error("platform: --installation is only valid for recovery or platform protection.");
1241
- if (values.has("file") && ![
1242
- "add",
1243
- "configure",
1244
- "admission",
1245
- "recover",
1246
- "protection"
1247
- ].includes(action) || values.has("client-secret-env") && ![
1248
- "add",
1249
- "configure",
1250
- "recover"
1251
- ].includes(action)) throw new Error("platform: --file is valid for add, configure, admission, recover, or protection; --client-secret-env is valid for add, configure, or recover.");
1252
- if (values.has("test-id") && action !== "enable" && action !== "link") throw new Error("platform: --test-id is only valid for enable or link.");
1253
- const secretEnv = values.get("client-secret-env") ?? "";
1254
- if (secretEnv && !/^[A-Za-z_][A-Za-z0-9_]*$/.test(secretEnv)) throw new Error("platform: --client-secret-env requires an environment-variable name.");
1255
- if (values.has("id")) parsePlatformLoginId(values.get("id"));
1256
- return {
1257
- subcommand: "config",
1258
- action,
1259
- target,
1260
- connection: values.get("connection") ?? "",
1261
- installation: values.get("installation") ?? "",
1262
- id: values.get("id") ?? "",
1263
- file: values.get("file") ?? "",
1264
- clientSecretEnv: secretEnv,
1265
- testId: values.get("test-id") ?? "",
1266
- json: flags.has("json"),
1267
- plan: flags.has("plan"),
1268
- yes: flags.has("yes")
1269
- };
1270
- }
1271
- //#endregion
1272
- //#region src/cli/platform-args.ts
1273
- const platformSubcommands = [
1274
- {
1275
- name: "config",
1276
- hint: "Configure authentication",
1277
- description: "Configure login methods, company protection, or provider recovery"
1278
- },
1279
- ...operatorGroups.map((name) => ({
1280
- name,
1281
- hint: name === "email" ? "Domains, policy, limits, outcomes, and recovery" : name === "zero-trust" ? "Configure Access protection and project overrides" : "Operator commands",
1282
- description: `Administer platform ${name}`
1283
- })),
1284
- {
1285
- name: "list",
1286
- description: "List installed and connected platforms"
1287
- },
1288
- {
1289
- name: "use",
1290
- arg: "[id]",
1291
- description: "Select the default Void platform"
1292
- },
1293
- {
1294
- name: "status",
1295
- arg: "[id]",
1296
- description: "Inspect a platform and its health"
1297
- },
1298
- {
1299
- name: "discover",
1300
- description: "Recover installations from a Cloudflare account"
1301
- },
1302
- {
1303
- name: "domain",
1304
- hint: "Set an application domain",
1305
- description: "Add a domain to a workers.dev test platform"
1306
- },
1307
- {
1308
- name: "install",
1309
- description: "Install a Void platform with a domain or workers.dev for testing"
1310
- },
1311
- {
1312
- name: "upgrade",
1313
- arg: "[id]",
1314
- description: "Upgrade an installed Void platform"
1315
- },
1316
- {
1317
- name: "rollback",
1318
- arg: "[id]",
1319
- description: "Restore a compatible earlier platform runtime"
1320
- },
1321
- {
1322
- name: "repair",
1323
- arg: "[id]",
1324
- description: "Reconcile an installed Void platform"
1325
- },
1326
- {
1327
- name: "disable",
1328
- arg: "[id]",
1329
- description: "Disable traffic without deleting data"
1330
- },
1331
- {
1332
- name: "enable",
1333
- arg: "[id]",
1334
- description: "Restore traffic for a disabled platform"
1335
- },
1336
- {
1337
- name: "uninstall",
1338
- arg: "[id]",
1339
- description: "Safely remove an installed Void platform"
1340
- }
1341
- ];
1342
- function readValue(rest, index, flag) {
1343
- const value = rest[index + 1];
1344
- if (!value || value.startsWith("-")) throw new Error(`platform: ${flag} requires a value.`);
1345
- return [value, index + 1];
1346
- }
1347
- function parseSelector(rest, subcommand, options = {}) {
1348
- let selector = "";
1349
- let plan = false;
1350
- let yes = false;
1351
- for (const arg of rest) if (arg === "--plan") plan = true;
1352
- else if (arg === "--yes" && options.allowYes) yes = true;
1353
- else if (arg.startsWith("-")) throw new Error(`platform: Unknown flag '${arg}'.`);
1354
- else if (selector) throw new Error(`platform: Unexpected argument '${arg}'.`);
1355
- else selector = arg;
1356
- if ((subcommand === "use" || subcommand === "status") && plan) throw new Error("platform: Unknown flag '--plan'.");
1357
- return {
1358
- selector,
1359
- plan,
1360
- yes
1361
- };
1362
- }
1363
- function parseLifecycleSelector(rest, subcommand) {
1364
- const positional = [];
1365
- let runtime = "";
1366
- let fromRuntime = "";
1367
- for (let index = 0; index < rest.length; index++) {
1368
- const arg = rest[index];
1369
- if (arg === "--runtime") {
1370
- if (subcommand === "disable") throw new Error("platform: Unknown flag '--runtime'.");
1371
- const [value, next] = readValue(rest, index, arg);
1372
- runtime = value;
1373
- index = next;
1374
- } else if (arg === "--from-runtime" && subcommand === "rollback") {
1375
- const [value, next] = readValue(rest, index, arg);
1376
- fromRuntime = value;
1377
- index = next;
1378
- } else positional.push(arg);
1379
- }
1380
- const parsed = parseSelector(positional, subcommand, { allowYes: true });
1381
- if (subcommand === "rollback" && !runtime) throw new Error("platform: rollback requires --runtime <earlier-runtime-directory>.");
1382
- return {
1383
- ...parsed,
1384
- runtime,
1385
- fromRuntime
1386
- };
1387
- }
1388
- function parsePlatformArgs(args) {
1389
- if (operatorGroups.includes(args[0] ?? "") || [
1390
- "--connection",
1391
- "--json",
1392
- "--plan",
1393
- "--yes",
1394
- "--timeout"
1395
- ].includes(args[0] ?? "")) return parseOperatorArgs(args);
1396
- const [subcommand, ...rest] = args;
1397
- if (subcommand === "config") return parsePlatformConfigArgs(rest);
1398
- if (subcommand === "domain") {
1399
- if (rest.length === 0) return {
1400
- subcommand,
1401
- domain: "",
1402
- selector: "",
1403
- zone: "",
1404
- dedicatedZone: false,
1405
- plan: false,
1406
- yes: false
1407
- };
1408
- if (rest[0] !== "set") throw new Error("platform: Usage: void platform domain set <domain> [--installation <id>] [--zone <domain>] [--dedicated-zone] [--plan] [--yes].");
1409
- let domain = "";
1410
- let selector = "";
1411
- let zone = "";
1412
- let plan = false;
1413
- let yes = false;
1414
- let dedicatedZone = false;
1415
- for (let index = 1; index < rest.length; index++) {
1416
- const arg = rest[index];
1417
- if (arg === "--installation" || arg === "--zone") {
1418
- const [value, next] = readValue(rest, index, arg);
1419
- index = next;
1420
- if (arg === "--zone") zone = value;
1421
- else selector = value;
1422
- } else if (arg === "--plan") plan = true;
1423
- else if (arg === "--yes") yes = true;
1424
- else if (arg === "--dedicated-zone") dedicatedZone = true;
1425
- else if (!arg.startsWith("-") && !domain) domain = arg;
1426
- else throw new Error(`platform: Unexpected argument '${arg}'.`);
1427
- }
1428
- if (!domain) throw new Error("platform: domain set requires an application domain.");
1429
- if (plan && yes) throw new Error("platform: Use either --plan or --yes.");
1430
- return {
1431
- subcommand,
1432
- domain,
1433
- selector,
1434
- zone,
1435
- dedicatedZone,
1436
- plan,
1437
- yes
1438
- };
1439
- }
1440
- if (subcommand === "list") {
1441
- if (rest.length > 0) throw new Error(`platform: Unexpected argument '${rest[0]}'.`);
1442
- return { subcommand };
1443
- }
1444
- if (subcommand === "use") {
1445
- const { selector } = parseSelector(rest, subcommand);
1446
- return {
1447
- subcommand,
1448
- selector
1449
- };
1450
- }
1451
- if (subcommand === "status") {
1452
- const { selector, plan } = parseSelector(rest, subcommand);
1453
- if (plan) throw new Error("platform: Unknown flag '--plan'.");
1454
- return {
1455
- subcommand,
1456
- selector
1457
- };
1458
- }
1459
- if (subcommand === "discover") {
1460
- let account = "";
1461
- let selector = "";
1462
- for (let index = 0; index < rest.length; index++) {
1463
- const arg = rest[index];
1464
- if (arg === "--account" || arg === "--installation") {
1465
- const [value, next] = readValue(rest, index, arg);
1466
- if (arg === "--account") account = value;
1467
- else selector = value;
1468
- index = next;
1469
- } else throw new Error("platform: Usage: void platform discover [--account <id>] [--installation <id-or-name>].");
1470
- }
1471
- return {
1472
- subcommand,
1473
- account,
1474
- selector
1475
- };
1476
- }
1477
- if (subcommand === "upgrade" || subcommand === "rollback" || subcommand === "repair" || subcommand === "disable" || subcommand === "enable") {
1478
- const { selector, plan, runtime, fromRuntime, yes } = parseLifecycleSelector(rest, subcommand);
1479
- return subcommand === "rollback" ? {
1480
- subcommand,
1481
- selector,
1482
- plan,
1483
- runtime,
1484
- fromRuntime,
1485
- yes
1486
- } : {
1487
- subcommand,
1488
- selector,
1489
- plan,
1490
- runtime,
1491
- yes
1492
- };
1493
- }
1494
- if (subcommand === "uninstall") {
1495
- const parsed = parseSelector(rest.filter((arg) => ![
1496
- "--purge-data",
1497
- "--delete-zone",
1498
- "--keep-zone"
1499
- ].includes(arg)), subcommand, { allowYes: true });
1500
- if (rest.includes("--delete-zone") && rest.includes("--keep-zone")) throw new Error("platform: --delete-zone and --keep-zone cannot be used together.");
1501
- return {
1502
- subcommand,
1503
- selector: parsed.selector,
1504
- plan: parsed.plan,
1505
- purgeData: rest.includes("--purge-data"),
1506
- yes: parsed.yes,
1507
- deleteZone: rest.includes("--delete-zone") ? true : rest.includes("--keep-zone") ? false : null
1508
- };
1509
- }
1510
- if (subcommand === "install") {
1511
- const values = /* @__PURE__ */ new Map();
1512
- let plan = false;
1513
- let resume = false;
1514
- let dedicatedZone = false;
1515
- let yes = false;
1516
- const valueFlags = /* @__PURE__ */ new Set([
1517
- "--account",
1518
- "--auth-config",
1519
- "--application-domain",
1520
- "--control-plane-domain",
1521
- "--display-name",
1522
- "--name",
1523
- "--runtime",
1524
- "--zone"
1525
- ]);
1526
- let workersDev = false;
1527
- for (let i = 0; i < rest.length; i++) {
1528
- const arg = rest[i];
1529
- if (valueFlags.has(arg)) {
1530
- const [value, next] = readValue(rest, i, arg);
1531
- values.set(arg, value);
1532
- i = next;
1533
- } else if (arg === "--plan") plan = true;
1534
- else if (arg === "--resume") resume = true;
1535
- else if (arg === "--dedicated-zone") dedicatedZone = true;
1536
- else if (arg === "--yes") yes = true;
1537
- else if (arg === "--workers-dev") workersDev = true;
1538
- else throw new Error(`platform: Unexpected argument '${arg}'.`);
1539
- }
1540
- if (workersDev && (values.has("--application-domain") || values.has("--zone") || dedicatedZone)) throw new Error("platform: --workers-dev cannot be combined with a domain, zone, or --dedicated-zone.");
1541
- return {
1542
- subcommand,
1543
- ...workersDev ? { workersDev: true } : {},
1544
- ...values.has("--auth-config") ? { authConfig: values.get("--auth-config") } : {},
1545
- account: values.get("--account") ?? "",
1546
- applicationDomain: values.get("--application-domain") ?? "",
1547
- controlPlaneDomain: values.get("--control-plane-domain") ?? "",
1548
- dedicatedZone,
1549
- displayName: values.get("--display-name") ?? "",
1550
- name: values.get("--name") ?? "",
1551
- plan,
1552
- resume,
1553
- runtime: values.get("--runtime") ?? "",
1554
- yes,
1555
- zone: values.get("--zone") ?? ""
1556
- };
1557
- }
1558
- throw new Error("platform: Usage: void platform <config|auth|user|project|deployment|build|signup|invitation|email|system|worker|list|use|status|discover|install|domain|upgrade|rollback|repair|disable|enable|uninstall>.");
1153
+ //#region src/cli/info-args.ts
1154
+ function parseInfoArgs(args) {
1155
+ const parsed = parseArgs({
1156
+ args,
1157
+ options: { json: { type: "boolean" } },
1158
+ allowPositionals: true,
1159
+ strict: true
1160
+ });
1161
+ if (parsed.positionals.length > 0) throw new Error(`info: Unexpected argument '${parsed.positionals[0]}'.`);
1162
+ return { json: parsed.values.json ?? false };
1559
1163
  }
1560
1164
  //#endregion
1561
1165
  //#region src/cli/prepare-args.ts
@@ -2009,7 +1613,7 @@ async function runSubcommandGroup(command, subcommands, parse, run) {
2009
1613
  const hasNamedSubcommand = args.slice(1).some((arg) => subcommands.some(({ name }) => name === arg));
2010
1614
  try {
2011
1615
  if ((!sub || sub.startsWith("-") && !hasNamedSubcommand) && process.stdin.isTTY) {
2012
- const { promptSubcommand } = await import("../subcommand-prompt-CY1C4fvl.mjs");
1616
+ const { promptSubcommand } = await import("../subcommand-prompt-klFCfcor.mjs");
2013
1617
  if (command === "platform" && !sub) log.info("A Void platform lets a team deploy Void apps to a shared Cloudflare account.\nThis command sets up and manages platforms. Join with `void connect <url>`.\nDocs: https://void.cloud/guide/self-hosted-platform");
2014
1618
  const result = await promptSubcommand(command, subcommands);
2015
1619
  if (!result) process.exit(0);
@@ -2024,8 +1628,10 @@ async function runSubcommandGroup(command, subcommands, parse, run) {
2024
1628
  process.exit(1);
2025
1629
  }
2026
1630
  const message = formatCloudflareUserMessage(err instanceof Error ? err.message : String(err));
2027
- if (command === "platform") console.error(err instanceof OperatorClientError && err.details !== void 0 ? `${message}\nPartial result:\n${JSON.stringify(err.details, null, 2)}` : message);
2028
- else log.error(message);
1631
+ if (command === "platform") {
1632
+ const platformMessage = message.replace(/^platform:/, import_picocolors.default.bold(import_picocolors.default.red("platform:")));
1633
+ console.error(err instanceof OperatorClientError && err.details !== void 0 ? `${platformMessage}\nPartial result:\n${JSON.stringify(err.details, null, 2)}` : platformMessage);
1634
+ } else log.error(message);
2029
1635
  process.exit(1);
2030
1636
  }
2031
1637
  }
@@ -2049,7 +1655,7 @@ if (helpPath) {
2049
1655
  log.error(formatCloudflareUserMessage(err instanceof Error ? err.message : String(err)));
2050
1656
  process.exit(1);
2051
1657
  }
2052
- import("../deploy-B19L2Bra.mjs").then(({ runDeploy }) => {
1658
+ import("../deploy-irP5q0-x.mjs").then(({ runDeploy }) => {
2053
1659
  runDeploy(root, {
2054
1660
  projectSlug: deployArgs.projectSlug,
2055
1661
  dir: deployArgs.dir,
@@ -2057,7 +1663,6 @@ if (helpPath) {
2057
1663
  skipBuild: deployArgs.skipBuild,
2058
1664
  debug: deployArgs.debug,
2059
1665
  platform: deployArgs.platform,
2060
- backend: deployArgs.backend,
2061
1666
  provision: deployArgs.provision,
2062
1667
  requireEmail: deployArgs.requireEmail,
2063
1668
  atomic: deployArgs.atomic
@@ -2068,25 +1673,38 @@ if (helpPath) {
2068
1673
  });
2069
1674
  } else if (command === "connect") (async () => {
2070
1675
  const parsed = parseConnectArgs(args.slice(1));
2071
- const { runConnectCommand } = await import("../connect-Dg-WkW-C.mjs");
1676
+ const { runConnectCommand } = await import("../connect-B-usTnlF.mjs");
2072
1677
  await runConnectCommand(process.cwd(), parsed);
2073
1678
  })().catch((err) => {
2074
1679
  log.error(formatCloudflareUserMessage(err instanceof Error ? err.message : String(err)));
2075
1680
  process.exit(1);
2076
1681
  });
2077
- else if (command === "auth") runSubcommandGroup("auth", authSubcommands, parseAuthArgs, (root, parsed) => import("../auth-router-ZUg9MF_U.mjs").then(({ runAuthRouter }) => runAuthRouter(root, parsed)));
2078
- else if (command === "account") runSubcommandGroup("account", accountSubcommands, parseAccountArgs, (root, parsed) => import("../account-cmd-CjyxcGkM.mjs").then(({ runAccountCommand }) => runAccountCommand(root, parsed)));
2079
- else if (command === "platform") runSubcommandGroup("platform", platformSubcommands, parsePlatformArgs, (root, parsed) => import("../platform-cmd-E0FuL212.mjs").then(({ runPlatformCommand }) => runPlatformCommand(root, parsed)));
2080
- else if (command === "cloudflare") runSubcommandGroup("cloudflare", cloudflareSubcommands, parseCloudflareArgs, (root, parsed) => import("../cloudflare-cmd-BKlfGHAy.mjs").then(({ runCloudflareCommand }) => runCloudflareCommand(root, parsed)));
2081
- else if (command === "project") runSubcommandGroup("project", projectSubcommands, parseProjectArgs, (root, parsed) => import("../project-cmd-BZLCqOqw.mjs").then(({ runProjectCommand }) => runProjectCommand(root, parsed)));
2082
- else if (command === "secret") runSubcommandGroup("secret", secretSubcommands, parseSecretArgs, (root, parsed) => import("../secret-BOtOl_cb.mjs").then(({ runSecretCommand }) => runSecretCommand(root, parsed)));
2083
- else if (command === "domain") runSubcommandGroup("domain", domainSubcommands, parseDomainArgs, (root, parsed) => import("../domain-JRF59P_r.mjs").then(({ runDomainCommand }) => runDomainCommand(root, parsed)));
2084
- else if (command === "email") runSubcommandGroup("email", emailSubcommands, parseEmailArgs, (root, parsed) => import("../email-Bo6G9LOZ.mjs").then(({ runEmailCommand }) => runEmailCommand(root, parsed)));
2085
- else if (command === "db") runSubcommandGroup("db", dbSubcommands, parseDbArgs, (root, parsed) => import("../db-gp2sCXyN.mjs").then(({ runDbCommand }) => runDbCommand(root, parsed)));
2086
- else if (command === "env") runSubcommandGroup("env", envSubcommands, parseEnvArgs, (root, parsed) => import("../env-BYOrWQnv.mjs").then(({ runEnvCommand }) => runEnvCommand(root, parsed)));
2087
- else if (command === "gen") runSubcommandGroup("gen", genSubcommands, parseGenArgs, (root, parsed) => import("../gen-CNJ62MM7.mjs").then(({ runGenCommand }) => runGenCommand(root, parsed)));
2088
- else if (command === "github") runSubcommandGroup("github", githubSubcommands, parseGithubArgs, (root, parsed) => import("../github-cmd-0-7PexDq.mjs").then(({ runGithubCommand }) => runGithubCommand(root, parsed)));
2089
- else if (command === "build") runSubcommandGroup("build", buildSubcommands, parseBuildArgs, (root, parsed) => import("../build-cmd-BxR5FROK.mjs").then(({ runBuildCommand }) => runBuildCommand(root, parsed)));
1682
+ else if (command === "auth") runSubcommandGroup("auth", authSubcommands, parseAuthArgs, (root, parsed) => import("../auth-router-ClfhL1J7.mjs").then(({ runAuthRouter }) => runAuthRouter(root, parsed)));
1683
+ else if (command === "account") runSubcommandGroup("account", accountSubcommands, parseAccountArgs, (root, parsed) => import("../account-cmd-vJhh5lrb.mjs").then(({ runAccountCommand }) => runAccountCommand(root, parsed)));
1684
+ else if (command === "platform") runSubcommandGroup("platform", platformSubcommands, parsePlatformArgs, (root, parsed) => import("../platform-cmd-pMTRhvYs.mjs").then(({ runPlatformCommand }) => runPlatformCommand(root, parsed)));
1685
+ else if (command === "cloudflare") runSubcommandGroup("cloudflare", cloudflareSubcommands, parseCloudflareArgs, (root, parsed) => import("../cloudflare-cmd-CmY8dGkd.mjs").then(({ runCloudflareCommand }) => runCloudflareCommand(root, parsed)));
1686
+ else if (command === "project") runSubcommandGroup("project", projectSubcommands, parseProjectArgs, (root, parsed) => import("../project-cmd-DxnXstAq.mjs").then(({ runProjectCommand }) => runProjectCommand(root, parsed)));
1687
+ else if (command === "secret") runSubcommandGroup("secret", secretSubcommands, parseSecretArgs, (root, parsed) => import("../secret-ByWJWBUG.mjs").then(({ runSecretCommand }) => runSecretCommand(root, parsed)));
1688
+ else if (command === "domain") runSubcommandGroup("domain", domainSubcommands, parseDomainArgs, (root, parsed) => import("../domain-DFfQE8jg.mjs").then(({ runDomainCommand }) => runDomainCommand(root, parsed)));
1689
+ else if (command === "email") runSubcommandGroup("email", emailSubcommands, parseEmailArgs, (root, parsed) => import("../email-CdnhUHvJ.mjs").then(({ runEmailCommand }) => runEmailCommand(root, parsed)));
1690
+ else if (command === "db") runSubcommandGroup("db", dbSubcommands, parseDbArgs, (root, parsed) => import("../db-Ck2eZ2iB.mjs").then(({ runDbCommand }) => runDbCommand(root, parsed)));
1691
+ else if (command === "env") runSubcommandGroup("env", envSubcommands, parseEnvArgs, (root, parsed) => import("../env-DmGdHi5i.mjs").then(({ runEnvCommand }) => runEnvCommand(root, parsed)));
1692
+ else if (command === "gen") runSubcommandGroup("gen", genSubcommands, parseGenArgs, (root, parsed) => import("../gen-DvQTWzDU.mjs").then(({ runGenCommand }) => runGenCommand(root, parsed)));
1693
+ else if (command === "github") runSubcommandGroup("github", githubSubcommands, parseGithubArgs, (root, parsed) => import("../github-cmd-DftuEvIt.mjs").then(({ runGithubCommand }) => runGithubCommand(root, parsed)));
1694
+ else if (command === "build") runSubcommandGroup("build", buildSubcommands, parseBuildArgs, (root, parsed) => import("../build-cmd-zMi1iFnS.mjs").then(({ runBuildCommand }) => runBuildCommand(root, parsed)));
1695
+ else if (command === "info") import("../info-B97bTX9N.mjs").then(async ({ runInfoCommand }) => {
1696
+ try {
1697
+ await runInfoCommand(process.cwd(), parseInfoArgs(args.slice(1)));
1698
+ } catch (err) {
1699
+ const message = formatCloudflareUserMessage(err instanceof Error ? err.message : String(err));
1700
+ if (args.includes("--json")) console.error(JSON.stringify({
1701
+ error: "invalid_command",
1702
+ message
1703
+ }));
1704
+ else log.error(message);
1705
+ process.exit(1);
1706
+ }
1707
+ });
2090
1708
  else if (command === "prepare") {
2091
1709
  const root = process.cwd();
2092
1710
  let prepareArgs;
@@ -2096,7 +1714,7 @@ else if (command === "prepare") {
2096
1714
  log.error(formatCloudflareUserMessage(err instanceof Error ? err.message : String(err)));
2097
1715
  process.exit(1);
2098
1716
  }
2099
- import("../prepare-C-6YZyyg.mjs").then(({ runPrepareCommand }) => {
1717
+ import("../prepare-CBLT3CHH.mjs").then(({ runPrepareCommand }) => {
2100
1718
  runPrepareCommand(root, prepareArgs).catch((err) => {
2101
1719
  log.error(formatCloudflareUserMessage(err.message ?? String(err)));
2102
1720
  process.exit(1);
@@ -2104,7 +1722,7 @@ else if (command === "prepare") {
2104
1722
  });
2105
1723
  } else if (command === "init") {
2106
1724
  const root = process.cwd();
2107
- import("../init-FZx3Elvz.mjs").then(({ runInitCommand, parseInitArgs }) => {
1725
+ import("../init-BTQEZZGJ.mjs").then(({ runInitCommand, parseInitArgs }) => {
2108
1726
  let initArgs;
2109
1727
  try {
2110
1728
  initArgs = parseInitArgs(args.slice(1));
@@ -2122,7 +1740,7 @@ else if (command === "prepare") {
2122
1740
  log.error("migrate: This command takes no arguments.");
2123
1741
  process.exit(1);
2124
1742
  }
2125
- import("../migrate-CYfbKkXh.mjs").then(({ runMigrateCommand }) => {
1743
+ import("../migrate-BCiJ8w0f.mjs").then(({ runMigrateCommand }) => {
2126
1744
  runMigrateCommand(process.cwd()).catch((err) => {
2127
1745
  log.error(formatCloudflareUserMessage(err instanceof Error ? err.message : String(err)));
2128
1746
  process.exit(1);
@@ -2145,6 +1763,11 @@ else if (command === "prepare") {
2145
1763
  name: "migrate",
2146
1764
  description: "Migrate legacy project configuration"
2147
1765
  },
1766
+ {
1767
+ name: "info",
1768
+ hint: "--json",
1769
+ description: "Inspect persistent resource names in this project"
1770
+ },
2148
1771
  {
2149
1772
  name: "connect",
2150
1773
  description: "Connect to Cloudflare or a Void platform"
@@ -2165,8 +1788,8 @@ else if (command === "prepare") {
2165
1788
  },
2166
1789
  {
2167
1790
  name: "platform",
2168
- hint: "auth | user | project | deployment | signup | email | zero-trust | system | install",
2169
- description: "Install platforms and administer users, projects, access, and operations"
1791
+ hint: "config | auth | user | project | deployment | signup | email | zero-trust | system | install",
1792
+ description: "Install platforms and administer plans, users, projects, access, and operations"
2170
1793
  },
2171
1794
  {
2172
1795
  name: "cloudflare",
@@ -2229,47 +1852,52 @@ else if (command === "prepare") {
2229
1852
  ];
2230
1853
  (async () => {
2231
1854
  printVoidHeader();
2232
- const { promptSubcommand } = await import("../subcommand-prompt-CY1C4fvl.mjs");
1855
+ const { promptSubcommand } = await import("../subcommand-prompt-klFCfcor.mjs");
2233
1856
  const result = await promptSubcommand("", topLevelCommands);
2234
1857
  if (!result) process.exit(0);
2235
1858
  const cmd = result.subcommand;
2236
1859
  const root = process.cwd();
2237
1860
  switch (cmd) {
2238
1861
  case "connect": {
2239
- const { runConnectCommand } = await import("../connect-Dg-WkW-C.mjs");
1862
+ const { runConnectCommand } = await import("../connect-B-usTnlF.mjs");
2240
1863
  await runConnectCommand(root, parseConnectArgs([]));
2241
1864
  return;
2242
1865
  }
2243
1866
  case "init": {
2244
- const { runInitCommand, parseInitArgs } = await import("../init-FZx3Elvz.mjs");
1867
+ const { runInitCommand, parseInitArgs } = await import("../init-BTQEZZGJ.mjs");
2245
1868
  await runInitCommand(root, parseInitArgs([]));
2246
1869
  return;
2247
1870
  }
2248
1871
  case "migrate": {
2249
- const { runMigrateCommand } = await import("../migrate-CYfbKkXh.mjs");
1872
+ const { runMigrateCommand } = await import("../migrate-BCiJ8w0f.mjs");
2250
1873
  await runMigrateCommand(root);
2251
1874
  return;
2252
1875
  }
2253
1876
  case "deploy": {
2254
- const { runDeploy } = await import("../deploy-B19L2Bra.mjs");
1877
+ const { runDeploy } = await import("../deploy-irP5q0-x.mjs");
2255
1878
  await runDeploy(root);
2256
1879
  return;
2257
1880
  }
2258
- case "auth": return runSubcommandGroup("auth", authSubcommands, parseAuthArgs, (r, p) => import("../auth-router-ZUg9MF_U.mjs").then(({ runAuthRouter }) => runAuthRouter(r, p)));
2259
- case "account": return runSubcommandGroup("account", accountSubcommands, parseAccountArgs, (r, p) => import("../account-cmd-CjyxcGkM.mjs").then(({ runAccountCommand }) => runAccountCommand(r, p)));
2260
- case "platform": return runSubcommandGroup("platform", platformSubcommands, parsePlatformArgs, (r, p) => import("../platform-cmd-E0FuL212.mjs").then(({ runPlatformCommand }) => runPlatformCommand(r, p)));
2261
- case "cloudflare": return runSubcommandGroup("cloudflare", cloudflareSubcommands, parseCloudflareArgs, (r, p) => import("../cloudflare-cmd-BKlfGHAy.mjs").then(({ runCloudflareCommand }) => runCloudflareCommand(r, p)));
2262
- case "project": return runSubcommandGroup("project", projectSubcommands, parseProjectArgs, (r, p) => import("../project-cmd-BZLCqOqw.mjs").then(({ runProjectCommand }) => runProjectCommand(r, p)));
2263
- case "secret": return runSubcommandGroup("secret", secretSubcommands, parseSecretArgs, (r, p) => import("../secret-BOtOl_cb.mjs").then(({ runSecretCommand }) => runSecretCommand(r, p)));
2264
- case "domain": return runSubcommandGroup("domain", domainSubcommands, parseDomainArgs, (r, p) => import("../domain-JRF59P_r.mjs").then(({ runDomainCommand }) => runDomainCommand(r, p)));
2265
- case "github": return runSubcommandGroup("github", githubSubcommands, parseGithubArgs, (r, p) => import("../github-cmd-0-7PexDq.mjs").then(({ runGithubCommand }) => runGithubCommand(r, p)));
2266
- case "build": return runSubcommandGroup("build", buildSubcommands, parseBuildArgs, (r, p) => import("../build-cmd-BxR5FROK.mjs").then(({ runBuildCommand }) => runBuildCommand(r, p)));
2267
- case "email": return runSubcommandGroup("email", emailSubcommands, parseEmailArgs, (r, p) => import("../email-Bo6G9LOZ.mjs").then(({ runEmailCommand }) => runEmailCommand(r, p)));
2268
- case "db": return runSubcommandGroup("db", dbSubcommands, parseDbArgs, (r, p) => import("../db-gp2sCXyN.mjs").then(({ runDbCommand }) => runDbCommand(r, p)));
2269
- case "env": return runSubcommandGroup("env", envSubcommands, parseEnvArgs, (r, p) => import("../env-BYOrWQnv.mjs").then(({ runEnvCommand }) => runEnvCommand(r, p)));
2270
- case "gen": return runSubcommandGroup("gen", genSubcommands, parseGenArgs, (r, p) => import("../gen-CNJ62MM7.mjs").then(({ runGenCommand }) => runGenCommand(r, p)));
1881
+ case "auth": return runSubcommandGroup("auth", authSubcommands, parseAuthArgs, (r, p) => import("../auth-router-ClfhL1J7.mjs").then(({ runAuthRouter }) => runAuthRouter(r, p)));
1882
+ case "account": return runSubcommandGroup("account", accountSubcommands, parseAccountArgs, (r, p) => import("../account-cmd-vJhh5lrb.mjs").then(({ runAccountCommand }) => runAccountCommand(r, p)));
1883
+ case "platform": return runSubcommandGroup("platform", platformSubcommands, parsePlatformArgs, (r, p) => import("../platform-cmd-pMTRhvYs.mjs").then(({ runPlatformCommand }) => runPlatformCommand(r, p)));
1884
+ case "cloudflare": return runSubcommandGroup("cloudflare", cloudflareSubcommands, parseCloudflareArgs, (r, p) => import("../cloudflare-cmd-CmY8dGkd.mjs").then(({ runCloudflareCommand }) => runCloudflareCommand(r, p)));
1885
+ case "project": return runSubcommandGroup("project", projectSubcommands, parseProjectArgs, (r, p) => import("../project-cmd-DxnXstAq.mjs").then(({ runProjectCommand }) => runProjectCommand(r, p)));
1886
+ case "secret": return runSubcommandGroup("secret", secretSubcommands, parseSecretArgs, (r, p) => import("../secret-ByWJWBUG.mjs").then(({ runSecretCommand }) => runSecretCommand(r, p)));
1887
+ case "domain": return runSubcommandGroup("domain", domainSubcommands, parseDomainArgs, (r, p) => import("../domain-DFfQE8jg.mjs").then(({ runDomainCommand }) => runDomainCommand(r, p)));
1888
+ case "github": return runSubcommandGroup("github", githubSubcommands, parseGithubArgs, (r, p) => import("../github-cmd-DftuEvIt.mjs").then(({ runGithubCommand }) => runGithubCommand(r, p)));
1889
+ case "build": return runSubcommandGroup("build", buildSubcommands, parseBuildArgs, (r, p) => import("../build-cmd-zMi1iFnS.mjs").then(({ runBuildCommand }) => runBuildCommand(r, p)));
1890
+ case "email": return runSubcommandGroup("email", emailSubcommands, parseEmailArgs, (r, p) => import("../email-CdnhUHvJ.mjs").then(({ runEmailCommand }) => runEmailCommand(r, p)));
1891
+ case "db": return runSubcommandGroup("db", dbSubcommands, parseDbArgs, (r, p) => import("../db-Ck2eZ2iB.mjs").then(({ runDbCommand }) => runDbCommand(r, p)));
1892
+ case "env": return runSubcommandGroup("env", envSubcommands, parseEnvArgs, (r, p) => import("../env-DmGdHi5i.mjs").then(({ runEnvCommand }) => runEnvCommand(r, p)));
1893
+ case "gen": return runSubcommandGroup("gen", genSubcommands, parseGenArgs, (r, p) => import("../gen-DvQTWzDU.mjs").then(({ runGenCommand }) => runGenCommand(r, p)));
1894
+ case "info": {
1895
+ const { runInfoCommand } = await import("../info-B97bTX9N.mjs");
1896
+ await runInfoCommand(root, parseInfoArgs([]));
1897
+ return;
1898
+ }
2271
1899
  case "prepare": {
2272
- const { runPrepareCommand } = await import("../prepare-C-6YZyyg.mjs");
1900
+ const { runPrepareCommand } = await import("../prepare-CBLT3CHH.mjs");
2273
1901
  await runPrepareCommand(root, parsePrepareArgs([]));
2274
1902
  return;
2275
1903
  }