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
@@ -0,0 +1,506 @@
1
+ import { n as operatorGroups, r as parseOperatorArgs } from "./operator-args-CLgKGlwU.mjs";
2
+ import { PLATFORM_LOGIN_KINDS, normalizePlatformDashboardUrl, parsePlatformLoginId } from "@void/platform";
3
+ import { parsePlatformPlanId } from "@void/platform/plans";
4
+ //#region src/cli/platform-config-args.ts
5
+ const PLATFORM_AUTH_ACTIONS = [
6
+ "list",
7
+ "show",
8
+ "initialize",
9
+ "add",
10
+ "configure",
11
+ "test",
12
+ "enable",
13
+ "disable",
14
+ "link",
15
+ "admission",
16
+ "protection",
17
+ "recover"
18
+ ];
19
+ function parsePlatformConfigArgs(args) {
20
+ if (args.length && args[0] !== "auth") throw new Error("platform: Usage: void platform config auth [command] [options].");
21
+ const positional = [];
22
+ const flags = /* @__PURE__ */ new Set();
23
+ const values = /* @__PURE__ */ new Map();
24
+ const valueFlags = [
25
+ "connection",
26
+ "installation",
27
+ "id",
28
+ "file",
29
+ "client-secret-env",
30
+ "test-id"
31
+ ];
32
+ for (let index = 1; index < args.length; index++) {
33
+ const arg = args[index];
34
+ if (!arg.startsWith("-")) {
35
+ positional.push(arg);
36
+ continue;
37
+ }
38
+ const name = arg.slice(2);
39
+ if (!arg.startsWith("--") || ![
40
+ "json",
41
+ "plan",
42
+ "yes"
43
+ ].includes(name) && !valueFlags.includes(name)) throw new Error(`platform: Unknown config auth flag ${arg}.`);
44
+ if (flags.has(name) || values.has(name)) throw new Error(`platform: Duplicate flag ${arg}.`);
45
+ if (!valueFlags.includes(name)) {
46
+ flags.add(name);
47
+ continue;
48
+ }
49
+ const value = args[++index];
50
+ if (!value || value.startsWith("-")) throw new Error(`platform: ${arg} requires a value.`);
51
+ values.set(name, value);
52
+ }
53
+ const [action = "", target = "", ...extra] = positional;
54
+ if (extra.length || action && !PLATFORM_AUTH_ACTIONS.includes(action)) throw new Error(`platform: Usage: void platform config auth <${PLATFORM_AUTH_ACTIONS.join("|")}>.`);
55
+ const needsTarget = action && action !== "list" && action !== "initialize" && action !== "admission";
56
+ if (needsTarget && !target || !needsTarget && target) throw new Error(`platform: ${action || "config auth"} ${needsTarget ? "requires a method" : "does not accept a method"}.`);
57
+ if (action === "add") {
58
+ if (!PLATFORM_LOGIN_KINDS.includes(target)) throw new Error(`platform: Login kind must be ${PLATFORM_LOGIN_KINDS.join(", ")}.`);
59
+ } else if (action === "protection") {
60
+ if (![
61
+ "enable",
62
+ "disable",
63
+ "show"
64
+ ].includes(target)) throw new Error("platform: Usage: void platform config auth protection <enable|disable|show>.");
65
+ } else if (target) parsePlatformLoginId(target);
66
+ if (flags.has("plan") && flags.has("yes")) throw new Error("platform: --plan and --yes cannot be combined.");
67
+ 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.");
68
+ if (values.has("id") && action !== "add") throw new Error("platform: --id is only valid when adding a login method.");
69
+ if (values.has("installation") && action !== "recover" && action !== "protection") throw new Error("platform: --installation is only valid for recovery or platform protection.");
70
+ if (values.has("file") && ![
71
+ "add",
72
+ "configure",
73
+ "admission",
74
+ "recover",
75
+ "protection"
76
+ ].includes(action) || values.has("client-secret-env") && ![
77
+ "add",
78
+ "configure",
79
+ "recover"
80
+ ].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.");
81
+ if (values.has("test-id") && action !== "enable" && action !== "link") throw new Error("platform: --test-id is only valid for enable or link.");
82
+ const secretEnv = values.get("client-secret-env") ?? "";
83
+ if (secretEnv && !/^[A-Za-z_][A-Za-z0-9_]*$/.test(secretEnv)) throw new Error("platform: --client-secret-env requires an environment-variable name.");
84
+ if (values.has("id")) parsePlatformLoginId(values.get("id"));
85
+ return {
86
+ subcommand: "config",
87
+ action,
88
+ target,
89
+ connection: values.get("connection") ?? "",
90
+ installation: values.get("installation") ?? "",
91
+ id: values.get("id") ?? "",
92
+ file: values.get("file") ?? "",
93
+ clientSecretEnv: secretEnv,
94
+ testId: values.get("test-id") ?? "",
95
+ json: flags.has("json"),
96
+ plan: flags.has("plan"),
97
+ yes: flags.has("yes")
98
+ };
99
+ }
100
+ //#endregion
101
+ //#region src/cli/platform-plans-args.ts
102
+ const PLATFORM_PLAN_ACTIONS = [
103
+ "show",
104
+ "add",
105
+ "set",
106
+ "reset",
107
+ "archive",
108
+ "restore",
109
+ "remove",
110
+ "default",
111
+ "sync"
112
+ ];
113
+ function parsePlatformPlansArgs(args) {
114
+ const positional = [];
115
+ const flags = /* @__PURE__ */ new Set();
116
+ const values = /* @__PURE__ */ new Map();
117
+ const valueFlags = [
118
+ "connection",
119
+ "file",
120
+ "name",
121
+ "copy",
122
+ "replacement"
123
+ ];
124
+ for (let index = 1; index < args.length; index++) {
125
+ const arg = args[index];
126
+ if (!arg.startsWith("-")) {
127
+ positional.push(arg);
128
+ continue;
129
+ }
130
+ const name = arg.slice(2);
131
+ if (!arg.startsWith("--") || ![
132
+ "json",
133
+ "plan",
134
+ "yes"
135
+ ].includes(name) && !valueFlags.includes(name)) throw new Error(`platform: Unknown config plans flag ${arg}.`);
136
+ if (flags.has(name) || values.has(name)) throw new Error(`platform: Duplicate flag ${arg}.`);
137
+ if (!valueFlags.includes(name)) {
138
+ flags.add(name);
139
+ continue;
140
+ }
141
+ const value = args[++index];
142
+ if (!value || value.startsWith("-")) throw new Error(`platform: ${arg} requires a value.`);
143
+ values.set(name, value);
144
+ }
145
+ const [action = "", target = "", ...extra] = positional;
146
+ if (extra.length || action && !PLATFORM_PLAN_ACTIONS.includes(action)) throw new Error(`platform: Usage: void platform config plans [${PLATFORM_PLAN_ACTIONS.join("|")}] [plan-id] [options].`);
147
+ const needsTarget = action && action !== "show" && action !== "sync";
148
+ if (needsTarget && !target || (!action || action === "sync") && target) throw new Error(`platform: ${action || "config plans"} ${needsTarget ? "requires" : "does not accept"} a plan ID.`);
149
+ for (const id of [
150
+ target,
151
+ values.get("copy"),
152
+ values.get("replacement")
153
+ ].filter(Boolean)) parsePlatformPlanId(id);
154
+ if (flags.has("plan") && flags.has("yes")) throw new Error("platform: --plan and --yes cannot be combined.");
155
+ if ((!action || action === "show") && (flags.has("plan") || flags.has("yes"))) throw new Error("platform: Select a configuration change before using --plan or --yes.");
156
+ for (const [name, actions] of [
157
+ ["file", ["add", "set"]],
158
+ ["name", ["add", "set"]],
159
+ ["copy", ["add"]],
160
+ ["replacement", ["remove"]]
161
+ ]) if (values.has(name) && !actions.includes(action)) throw new Error(`platform: --${name} is only valid for ${actions.join(" or ")}.`);
162
+ return {
163
+ subcommand: "config",
164
+ configGroup: "plans",
165
+ action,
166
+ target,
167
+ connection: values.get("connection") ?? "",
168
+ file: values.get("file") ?? "",
169
+ name: values.get("name") ?? "",
170
+ copy: values.get("copy") ?? "",
171
+ replacement: values.get("replacement") ?? "",
172
+ json: flags.has("json"),
173
+ plan: flags.has("plan"),
174
+ yes: flags.has("yes")
175
+ };
176
+ }
177
+ //#endregion
178
+ //#region src/cli/platform-args.ts
179
+ const platformSubcommands = [
180
+ {
181
+ name: "config",
182
+ hint: "Authentication, plans, and limits",
183
+ description: "Configure login methods, protection, plans, or limits"
184
+ },
185
+ ...operatorGroups.map((name) => ({
186
+ name,
187
+ hint: name === "email" ? "Domains, shared recipients, policy, limits, and recovery" : name === "zero-trust" ? "Configure Access protection and project overrides" : name === "project" ? "Inspect, normalize, transfer, or remove projects" : "Operator commands",
188
+ description: `Administer platform ${name}`
189
+ })),
190
+ {
191
+ name: "list",
192
+ description: "List installed and connected platforms"
193
+ },
194
+ {
195
+ name: "use",
196
+ arg: "[id]",
197
+ description: "Select the default Void platform"
198
+ },
199
+ {
200
+ name: "status",
201
+ arg: "[id]",
202
+ description: "Inspect a platform and its health"
203
+ },
204
+ {
205
+ name: "discover",
206
+ description: "Recover installations from a Cloudflare account"
207
+ },
208
+ {
209
+ name: "domain",
210
+ hint: "Set an application domain",
211
+ description: "Add a domain to a workers.dev test platform"
212
+ },
213
+ {
214
+ name: "install",
215
+ hint: "Preview choices with --plan, then run the printed install command",
216
+ description: "Install a Void platform with a domain or workers.dev for testing"
217
+ },
218
+ {
219
+ name: "upgrade",
220
+ arg: "[id]",
221
+ description: "Upgrade an installed Void platform"
222
+ },
223
+ {
224
+ name: "rollback",
225
+ arg: "[id]",
226
+ description: "Restore a compatible earlier platform runtime"
227
+ },
228
+ {
229
+ name: "repair",
230
+ arg: "[id]",
231
+ description: "Reconcile a platform or configure its dashboard origin"
232
+ },
233
+ {
234
+ name: "disable",
235
+ arg: "[id]",
236
+ description: "Disable traffic without deleting data"
237
+ },
238
+ {
239
+ name: "enable",
240
+ arg: "[id]",
241
+ description: "Restore traffic for a disabled platform"
242
+ },
243
+ {
244
+ name: "uninstall",
245
+ arg: "[id]",
246
+ description: "Safely remove an installed Void platform"
247
+ }
248
+ ];
249
+ function readValue(rest, index, flag) {
250
+ const value = rest[index + 1];
251
+ if (!value || value.startsWith("-")) throw new Error(`platform: ${flag} requires a value.`);
252
+ return [value, index + 1];
253
+ }
254
+ function parseSelector(rest, subcommand, options = {}) {
255
+ let selector = "";
256
+ let plan = false;
257
+ let yes = false;
258
+ for (const arg of rest) if (arg === "--plan") plan = true;
259
+ else if (arg === "--yes" && options.allowYes) yes = true;
260
+ else if (arg.startsWith("-")) throw new Error(`platform: Unknown flag '${arg}'.`);
261
+ else if (selector) throw new Error(`platform: Unexpected argument '${arg}'.`);
262
+ else selector = arg;
263
+ if ((subcommand === "use" || subcommand === "status") && plan) throw new Error("platform: Unknown flag '--plan'.");
264
+ return {
265
+ selector,
266
+ plan,
267
+ yes
268
+ };
269
+ }
270
+ function parseLifecycleSelector(rest, subcommand) {
271
+ const positional = [];
272
+ let runtime = "";
273
+ let fromRuntime = "";
274
+ let dashboardUrl;
275
+ for (let index = 0; index < rest.length; index++) {
276
+ const arg = rest[index];
277
+ if (arg === "--runtime") {
278
+ if (subcommand === "disable") throw new Error("platform: Unknown flag '--runtime'.");
279
+ const [value, next] = readValue(rest, index, arg);
280
+ runtime = value;
281
+ index = next;
282
+ } else if (arg === "--dashboard-url" && (subcommand === "upgrade" || subcommand === "repair")) {
283
+ const [value, next] = readValue(rest, index, arg);
284
+ dashboardUrl = normalizePlatformDashboardUrl(value);
285
+ index = next;
286
+ } else if (arg === "--from-runtime" && subcommand === "rollback") {
287
+ const [value, next] = readValue(rest, index, arg);
288
+ fromRuntime = value;
289
+ index = next;
290
+ } else positional.push(arg);
291
+ }
292
+ const parsed = parseSelector(positional, subcommand, { allowYes: true });
293
+ if (subcommand === "rollback" && !runtime) throw new Error("platform: rollback requires --runtime <earlier-runtime-directory>.");
294
+ return {
295
+ ...parsed,
296
+ runtime,
297
+ fromRuntime,
298
+ ...dashboardUrl !== void 0 ? { dashboardUrl } : {}
299
+ };
300
+ }
301
+ function parsePlatformArgs(args) {
302
+ if (operatorGroups.includes(args[0] ?? "") || [
303
+ "--connection",
304
+ "--json",
305
+ "--plan",
306
+ "--yes",
307
+ "--timeout"
308
+ ].includes(args[0] ?? "")) return parseOperatorArgs(args);
309
+ const [subcommand, ...rest] = args;
310
+ if (subcommand === "config") {
311
+ if (rest.length === 0) return {
312
+ subcommand: "config",
313
+ configGroup: "",
314
+ plan: false,
315
+ yes: false
316
+ };
317
+ return rest[0] === "plans" ? parsePlatformPlansArgs(rest) : parsePlatformConfigArgs(rest);
318
+ }
319
+ if (subcommand === "domain") {
320
+ if (rest.length === 0) return {
321
+ subcommand,
322
+ domain: "",
323
+ selector: "",
324
+ zone: "",
325
+ dedicatedZone: false,
326
+ plan: false,
327
+ yes: false
328
+ };
329
+ if (rest[0] !== "set") throw new Error("platform: Usage: void platform domain set <domain> [--installation <id>] [--zone <domain>] [--dedicated-zone] [--plan] [--yes].");
330
+ let domain = "";
331
+ let selector = "";
332
+ let zone = "";
333
+ let plan = false;
334
+ let yes = false;
335
+ let dedicatedZone = false;
336
+ for (let index = 1; index < rest.length; index++) {
337
+ const arg = rest[index];
338
+ if (arg === "--installation" || arg === "--zone") {
339
+ const [value, next] = readValue(rest, index, arg);
340
+ index = next;
341
+ if (arg === "--zone") zone = value;
342
+ else selector = value;
343
+ } else if (arg === "--plan") plan = true;
344
+ else if (arg === "--yes") yes = true;
345
+ else if (arg === "--dedicated-zone") dedicatedZone = true;
346
+ else if (!arg.startsWith("-") && !domain) domain = arg;
347
+ else throw new Error(`platform: Unexpected argument '${arg}'.`);
348
+ }
349
+ if (!domain) throw new Error("platform: domain set requires an application domain.");
350
+ if (plan && yes) throw new Error("platform: Use either --plan or --yes.");
351
+ return {
352
+ subcommand,
353
+ domain,
354
+ selector,
355
+ zone,
356
+ dedicatedZone,
357
+ plan,
358
+ yes
359
+ };
360
+ }
361
+ if (subcommand === "list") {
362
+ if (rest.length > 0) throw new Error(`platform: Unexpected argument '${rest[0]}'.`);
363
+ return { subcommand };
364
+ }
365
+ if (subcommand === "use") {
366
+ const { selector } = parseSelector(rest, subcommand);
367
+ return {
368
+ subcommand,
369
+ selector
370
+ };
371
+ }
372
+ if (subcommand === "status") {
373
+ const { selector, plan } = parseSelector(rest, subcommand);
374
+ if (plan) throw new Error("platform: Unknown flag '--plan'.");
375
+ return {
376
+ subcommand,
377
+ selector
378
+ };
379
+ }
380
+ if (subcommand === "discover") {
381
+ let account = "";
382
+ let selector = "";
383
+ for (let index = 0; index < rest.length; index++) {
384
+ const arg = rest[index];
385
+ if (arg === "--account" || arg === "--installation") {
386
+ const [value, next] = readValue(rest, index, arg);
387
+ if (arg === "--account") account = value;
388
+ else selector = value;
389
+ index = next;
390
+ } else throw new Error("platform: Usage: void platform discover [--account <id>] [--installation <id-or-name>].");
391
+ }
392
+ return {
393
+ subcommand,
394
+ account,
395
+ selector
396
+ };
397
+ }
398
+ if (subcommand === "upgrade" || subcommand === "rollback" || subcommand === "repair" || subcommand === "disable" || subcommand === "enable") {
399
+ const { selector, plan, runtime, fromRuntime, yes, dashboardUrl } = parseLifecycleSelector(rest, subcommand);
400
+ return subcommand === "rollback" ? {
401
+ subcommand,
402
+ selector,
403
+ plan,
404
+ runtime,
405
+ fromRuntime,
406
+ yes
407
+ } : {
408
+ subcommand,
409
+ selector,
410
+ plan,
411
+ runtime,
412
+ yes,
413
+ ...dashboardUrl !== void 0 ? { dashboardUrl } : {}
414
+ };
415
+ }
416
+ if (subcommand === "uninstall") {
417
+ const parsed = parseSelector(rest.filter((arg) => ![
418
+ "--purge-data",
419
+ "--delete-zone",
420
+ "--keep-zone"
421
+ ].includes(arg)), subcommand, { allowYes: true });
422
+ if (rest.includes("--delete-zone") && rest.includes("--keep-zone")) throw new Error("platform: --delete-zone and --keep-zone cannot be used together.");
423
+ return {
424
+ subcommand,
425
+ selector: parsed.selector,
426
+ plan: parsed.plan,
427
+ purgeData: rest.includes("--purge-data"),
428
+ yes: parsed.yes,
429
+ deleteZone: rest.includes("--delete-zone") ? true : rest.includes("--keep-zone") ? false : null
430
+ };
431
+ }
432
+ if (subcommand === "install") {
433
+ const values = /* @__PURE__ */ new Map();
434
+ let plan = false;
435
+ let resume = false;
436
+ let dedicatedZone = false;
437
+ let yes = false;
438
+ let noControlPlaneDomain = false;
439
+ let noDedicatedZone = false;
440
+ let accessProtection;
441
+ const valueFlags = /* @__PURE__ */ new Set([
442
+ "--account",
443
+ "--auth-config",
444
+ "--login-methods",
445
+ "--hyperdrive",
446
+ "--application-domain",
447
+ "--control-plane-domain",
448
+ "--dashboard-url",
449
+ "--display-name",
450
+ "--name",
451
+ "--runtime",
452
+ "--zone"
453
+ ]);
454
+ let workersDev = false;
455
+ for (let i = 0; i < rest.length; i++) {
456
+ const arg = rest[i];
457
+ if (valueFlags.has(arg)) {
458
+ const [value, next] = readValue(rest, i, arg);
459
+ values.set(arg, value);
460
+ i = next;
461
+ } else if (arg === "--plan") plan = true;
462
+ else if (arg === "--resume") resume = true;
463
+ else if (arg === "--dedicated-zone") dedicatedZone = true;
464
+ else if (arg === "--no-dedicated-zone") noDedicatedZone = true;
465
+ else if (arg === "--no-control-plane-domain") noControlPlaneDomain = true;
466
+ else if (arg === "--access-protection" || arg === "--no-access-protection") {
467
+ const enabled = arg === "--access-protection";
468
+ if (accessProtection !== void 0 && accessProtection !== enabled) throw new Error("platform: Choose either --access-protection or --no-access-protection.");
469
+ accessProtection = enabled;
470
+ } else if (arg === "--yes") yes = true;
471
+ else if (arg === "--workers-dev") workersDev = true;
472
+ else throw new Error(`platform: Unexpected argument '${arg}'.`);
473
+ }
474
+ if (noControlPlaneDomain && values.has("--control-plane-domain")) throw new Error("platform: Choose either --control-plane-domain or --no-control-plane-domain.");
475
+ if (noDedicatedZone && dedicatedZone) throw new Error("platform: Choose either --dedicated-zone or --no-dedicated-zone.");
476
+ if (values.has("--auth-config") && (values.has("--login-methods") || accessProtection !== void 0)) throw new Error("platform: --auth-config cannot be combined with login or Access protection options.");
477
+ const loginMethods = values.get("--login-methods")?.split(",");
478
+ if (loginMethods && loginMethods.some((method) => !PLATFORM_LOGIN_KINDS.includes(method))) throw new Error("platform: --login-methods accepts github, google, oidc, and cloudflare-access.");
479
+ 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.");
480
+ return {
481
+ subcommand,
482
+ ...noControlPlaneDomain ? { noControlPlaneDomain: true } : {},
483
+ ...noDedicatedZone ? { dedicatedZoneSpecified: true } : {},
484
+ ...values.has("--hyperdrive") ? { hyperdrive: values.get("--hyperdrive") } : {},
485
+ ...loginMethods ? { loginMethods: [...new Set(loginMethods)] } : {},
486
+ ...accessProtection !== void 0 ? { accessProtection } : {},
487
+ ...workersDev ? { workersDev: true } : {},
488
+ ...values.has("--auth-config") ? { authConfig: values.get("--auth-config") } : {},
489
+ account: values.get("--account") ?? "",
490
+ applicationDomain: values.get("--application-domain") ?? "",
491
+ controlPlaneDomain: values.get("--control-plane-domain") ?? "",
492
+ ...values.has("--dashboard-url") ? { dashboardUrl: normalizePlatformDashboardUrl(values.get("--dashboard-url")) } : {},
493
+ dedicatedZone,
494
+ displayName: values.get("--display-name") ?? "",
495
+ name: values.get("--name") ?? "",
496
+ plan,
497
+ resume,
498
+ runtime: values.get("--runtime") ?? "",
499
+ yes,
500
+ zone: values.get("--zone") ?? ""
501
+ };
502
+ }
503
+ 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>.");
504
+ }
505
+ //#endregion
506
+ export { platformSubcommands as n, parsePlatformArgs as t };
@@ -0,0 +1,2 @@
1
+ import { t as parsePlatformArgs } from "./platform-args-BJdRtlLq.mjs";
2
+ export { parsePlatformArgs };
@@ -1,5 +1,5 @@
1
- import { d as openBrowser } from "./auth-DLNN0D3Z.mjs";
2
- import { B as text, E as confirm, F as password, I as select, M as multiselect, W as isCancel } from "./dist-Dn6nn2IU.mjs";
1
+ import { d as openBrowser } from "./auth-CSkdO2Bb.mjs";
2
+ import { B as text, E as confirm, F as password, I as select, M as multiselect, W as isCancel } from "./dist-CTBk70IR.mjs";
3
3
  import { n as OperatorClient } from "./operator-client-DUwumHpQ.mjs";
4
4
  import { a as resolveOperatorOrigin, r as readOperatorToken } from "./operator-auth-8KnOVXVd.mjs";
5
5
  import { execFile } from "node:child_process";
@@ -140,11 +140,11 @@ async function configurationInput(args, existing) {
140
140
  }
141
141
  async function runPlatformAuthConfig(args) {
142
142
  if (args.action === "recover") {
143
- const { runPlatformAuthRecovery } = await import("./platform-auth-recovery-o_340Ixx.mjs");
143
+ const { runPlatformAuthRecovery } = await import("./platform-auth-recovery-1gg4CSRe.mjs");
144
144
  return runPlatformAuthRecovery(args);
145
145
  }
146
146
  if (args.action === "protection") {
147
- const { runPlatformProtectionConfig } = await import("./platform-auth-protection-DeE3yr2R.mjs");
147
+ const { runPlatformProtectionConfig } = await import("./platform-auth-protection-BDWO_aER.mjs");
148
148
  return runPlatformProtectionConfig(args);
149
149
  }
150
150
  const origin = resolveOperatorOrigin(args.connection);
@@ -1,11 +1,11 @@
1
1
  import { t as cfAccessHeaders } from "./cf-access-DRsQRe6k.mjs";
2
2
  import { d as readInstallationRecoverySecrets, h as resolveInstallationManifest, s as normalizePlatformApiUrl, t as acquirePlatformLifecycleLock, u as promoteInstallationSecrets, v as writeInstallationManifest, y as writePendingInstallationSecrets } from "./platform-registry-QBa4DK32.mjs";
3
3
  import { n as ensurePlatformAccessToken } from "./cf-access-P0iZnu0q.mjs";
4
- import { E as confirm, W as isCancel } from "./dist-Dn6nn2IU.mjs";
4
+ import { E as confirm, W as isCancel } from "./dist-CTBk70IR.mjs";
5
5
  import { n as OperatorClient } from "./operator-client-DUwumHpQ.mjs";
6
6
  import { a as resolveOperatorOrigin, r as readOperatorToken } from "./operator-auth-8KnOVXVd.mjs";
7
- import { D as preparePlatformAccessSetup, E as parsePlatformAccessSetupSpec, O as PlatformCloudflareClient, T as checkpointPlatformAccessResources, n as resolvePlatformInstallDatabaseUrl, o as acquirePlatformDatabaseLifecycleLock, w as resolvePlatformCloudflareCredential } from "./platform-lifecycle-Bc047IeT.mjs";
8
- import { c as selectAuthoritativePlatformManifest, u as verifyPlatformInstallationOwnership } from "./platform-management-CVpGI9Y5.mjs";
7
+ import { A as PlatformCloudflareClient, D as checkpointPlatformAccessResources, E as resolvePlatformCloudflareCredential, O as parsePlatformAccessSetupSpec, k as preparePlatformAccessSetup, n as resolvePlatformInstallDatabaseUrl, o as acquirePlatformDatabaseLifecycleLock } from "./platform-lifecycle-9OyBALhH.mjs";
8
+ import { c as selectAuthoritativePlatformManifest, u as verifyPlatformInstallationOwnership } from "./platform-management-CjwLVQwN.mjs";
9
9
  import { createHmac } from "node:crypto";
10
10
  import { parsePlatformAccessProtection, platformProtectionProofMessage } from "@void/platform";
11
11
  import { readFile } from "node:fs/promises";
@@ -1,9 +1,9 @@
1
- import { d as openBrowser } from "./auth-DLNN0D3Z.mjs";
1
+ import { d as openBrowser } from "./auth-CSkdO2Bb.mjs";
2
2
  import { d as readInstallationRecoverySecrets, h as resolveInstallationManifest, t as acquirePlatformLifecycleLock } from "./platform-registry-QBa4DK32.mjs";
3
- import { E as confirm, W as isCancel } from "./dist-Dn6nn2IU.mjs";
3
+ import { E as confirm, W as isCancel } from "./dist-CTBk70IR.mjs";
4
4
  import { a as resolveOperatorOrigin } from "./operator-auth-8KnOVXVd.mjs";
5
- import { O as PlatformCloudflareClient, f as platformDatabaseClientUrl, n as resolvePlatformInstallDatabaseUrl, s as acquirePlatformDatabaseLifecycleLockConnection, w as resolvePlatformCloudflareCredential } from "./platform-lifecycle-Bc047IeT.mjs";
6
- import { c as selectAuthoritativePlatformManifest, u as verifyPlatformInstallationOwnership } from "./platform-management-CVpGI9Y5.mjs";
5
+ import { A as PlatformCloudflareClient, E as resolvePlatformCloudflareCredential, f as platformDatabaseClientUrl, n as resolvePlatformInstallDatabaseUrl, s as acquirePlatformDatabaseLifecycleLockConnection } from "./platform-lifecycle-9OyBALhH.mjs";
6
+ import { c as selectAuthoritativePlatformManifest, u as verifyPlatformInstallationOwnership } from "./platform-management-CjwLVQwN.mjs";
7
7
  import { createCipheriv, createDecipheriv, createHash, createHmac, hkdfSync, randomBytes, randomUUID } from "node:crypto";
8
8
  import { execFile } from "node:child_process";
9
9
  import { parsePlatformAccessProtection, parsePlatformAdmissionPolicy, parsePlatformLoginConfiguration, platformAuthenticationRecoveryMessage, validatePlatformAdmissionPolicy } from "@void/platform";
@@ -1,2 +1,2 @@
1
- import { r as runPlatformCommand, t as discoverPlatform } from "./platform-cmd-DNl8WosH.mjs";
1
+ import { r as runPlatformCommand, t as discoverPlatform } from "./platform-cmd-DMcQStSc.mjs";
2
2
  export { discoverPlatform, runPlatformCommand };
@@ -1,8 +1,8 @@
1
- import { c as import_picocolors } from "./output-CCH48AMM.mjs";
2
1
  import { t as cfAccessHeaders } from "./cf-access-DRsQRe6k.mjs";
3
2
  import { _ as selectPlatformConnection, g as savePlatformConnection, o as listPlatformConnections, r as getActivePlatformConnection, s as normalizePlatformApiUrl } from "./platform-registry-QBa4DK32.mjs";
4
3
  import { i as isCloudflareAccessChallenge, n as ensurePlatformAccessToken, t as ensureCloudflaredToken } from "./cf-access-P0iZnu0q.mjs";
5
- import { B as text, I as select, W as isCancel, j as log } from "./dist-Dn6nn2IU.mjs";
4
+ import { B as text, I as select, W as isCancel, j as log } from "./dist-CTBk70IR.mjs";
5
+ import { c as import_picocolors } from "./output-Dm_A4Tbv.mjs";
6
6
  import { parsePlatformDiscoveryDocument } from "@void/platform";
7
7
  //#region src/cli/platform-cmd.ts
8
8
  async function discoverPlatform(input, fetcher = fetch) {
@@ -92,12 +92,33 @@ function saveDiscoveredPlatform(discovery) {
92
92
  }
93
93
  async function runPlatformCommand(_root, args) {
94
94
  if (args.subcommand === "config") {
95
- const { runPlatformAuthConfig } = await import("./platform-auth-config-z92h63q5.mjs");
95
+ if ("configGroup" in args) {
96
+ if (args.configGroup === "") {
97
+ if (!process.stdin.isTTY) throw new Error("platform: Choose void platform config auth or void platform config plans.");
98
+ const group = await select({
99
+ message: "Platform configuration:",
100
+ options: [{
101
+ value: "auth",
102
+ label: "Authentication and protection"
103
+ }, {
104
+ value: "plans",
105
+ label: "Plans and limits"
106
+ }]
107
+ });
108
+ if (isCancel(group)) return;
109
+ const { parsePlatformArgs } = await import("./platform-args-D3RXyR6h.mjs");
110
+ return runPlatformCommand(_root, parsePlatformArgs(["config", group]));
111
+ }
112
+ const { runPlatformPlansConfig } = await import("./platform-plans-config-BNGKGr4P.mjs");
113
+ await runPlatformPlansConfig(args);
114
+ return;
115
+ }
116
+ const { runPlatformAuthConfig } = await import("./platform-auth-config-B56E9YP1.mjs");
96
117
  await runPlatformAuthConfig(args);
97
118
  return;
98
119
  }
99
120
  if (args.subcommand === "operator") {
100
- const { runOperatorCommand } = await import("./operator-cmd-03819ATr.mjs");
121
+ const { runOperatorCommand } = await import("./operator-cmd-DBA6dl0m.mjs");
101
122
  await runOperatorCommand(args);
102
123
  return;
103
124
  }
@@ -129,7 +150,7 @@ async function runPlatformCommand(_root, args) {
129
150
  console.log(`Capabilities: ${Object.entries(discovery.capabilities).filter(([, enabled]) => enabled).map(([name]) => name).join(", ")}`);
130
151
  return;
131
152
  }
132
- const { runPlatformLifecycleCommand } = await import("./platform-lifecycle-Bs2qx1E3.mjs");
153
+ const { runPlatformLifecycleCommand } = await import("./platform-lifecycle-BE6C_jxh.mjs");
133
154
  await runPlatformLifecycleCommand(args);
134
155
  }
135
156
  //#endregion