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,281 @@
1
+ import { DurableObject, RpcTarget } from "cloudflare:workers";
2
+ import { Files } from "@cloudflare/sandbox";
3
+ //#region src/runtime/sandbox-container.ts
4
+ const OPTIONS = /* @__PURE__ */ new Set([
5
+ "inactivityTimeoutMs",
6
+ "enableInternet",
7
+ "labels"
8
+ ]);
9
+ const FILE_OPERATIONS = /* @__PURE__ */ new Set([
10
+ "readFile",
11
+ "writeFile",
12
+ "stat",
13
+ "lstat",
14
+ "readDirectory",
15
+ "mkdir",
16
+ "rename",
17
+ "remove"
18
+ ]);
19
+ const DEFAULT_SANDBOX_INACTIVITY_TIMEOUT_MS = 6e5;
20
+ function validateSandboxOptions(options) {
21
+ if (!options || typeof options !== "object" || Array.isArray(options)) throw new TypeError("Sandbox options must be an object.");
22
+ for (const key of Object.keys(options)) if (!OPTIONS.has(key)) throw new TypeError(`Unsupported Sandbox option: ${key}`);
23
+ if (options.inactivityTimeoutMs !== void 0 && (!Number.isInteger(options.inactivityTimeoutMs) || options.inactivityTimeoutMs < 1 || options.inactivityTimeoutMs > 216e5)) throw new TypeError("Sandbox inactivityTimeoutMs must be an integer between 1 and 21600000.");
24
+ if (options.enableInternet !== void 0 && typeof options.enableInternet !== "boolean") throw new TypeError("Sandbox enableInternet must be a boolean.");
25
+ if (options.labels !== void 0 && (!options.labels || typeof options.labels !== "object" || Array.isArray(options.labels) || Object.values(options.labels).some((value) => typeof value !== "string"))) throw new TypeError("Sandbox labels must be strings.");
26
+ }
27
+ var ProcessCapability = class extends RpcTarget {
28
+ #process;
29
+ #exited = false;
30
+ #waitForExit;
31
+ constructor(process, waitForExit) {
32
+ super();
33
+ this.#process = process;
34
+ this.#waitForExit = waitForExit;
35
+ process.exitCode.then(() => {
36
+ this.#exited = true;
37
+ }, () => {
38
+ this.#exited = true;
39
+ });
40
+ }
41
+ async invoke(operation, args) {
42
+ if (!Array.isArray(args)) throw new TypeError("Sandbox arguments must be an array.");
43
+ if (operation === "exitCode") return this.#waitForExit();
44
+ if (operation === "kill") {
45
+ if (this.#exited) return;
46
+ return this.#process.kill(args[0]);
47
+ }
48
+ if (operation === "resize") return this.#process.resize(args[0], args[1]);
49
+ throw new TypeError(`Unsupported Sandbox process operation: ${operation}`);
50
+ }
51
+ };
52
+ /** Decode cancellation without trying to serialize an AbortSignal over Workers RPC. */
53
+ function operationOptions(value) {
54
+ const { abort, ...options } = value ?? {};
55
+ if (abort === void 0) return {
56
+ options,
57
+ finish() {}
58
+ };
59
+ if (!(abort instanceof ReadableStream)) throw new TypeError("Invalid Sandbox cancellation stream.");
60
+ const controller = new AbortController();
61
+ const reader = abort.getReader();
62
+ let finished = false;
63
+ reader.read().then(() => {
64
+ if (!finished) controller.abort();
65
+ }, () => {
66
+ if (!finished) controller.abort();
67
+ });
68
+ return {
69
+ options: {
70
+ ...options,
71
+ signal: controller.signal
72
+ },
73
+ finish() {
74
+ finished = true;
75
+ reader.cancel().catch(() => {});
76
+ }
77
+ };
78
+ }
79
+ /** Shared native execution, used by local Workers and the trusted platform controller. */
80
+ var SandboxContainer = class extends DurableObject {
81
+ instanceType = "lite";
82
+ #setup;
83
+ #options = {};
84
+ #ready;
85
+ starting = false;
86
+ #epoch = 0;
87
+ constructor(ctx, env) {
88
+ super(ctx, env);
89
+ this.#ready = ctx.blockConcurrencyWhile(async () => {
90
+ this.#options = await ctx.storage.get("__voidSandboxOptions") ?? {};
91
+ if (this.container.running) await this.container.setInactivityTimeout(this.inactivityTimeoutMs);
92
+ });
93
+ }
94
+ get container() {
95
+ if (!this.ctx.container) throw new Error("Sandbox container binding is missing.");
96
+ return this.ctx.container;
97
+ }
98
+ async configure(options) {
99
+ validateSandboxOptions(options);
100
+ await this.#ready;
101
+ this.#options = { ...options };
102
+ await this.ctx.storage.put("__voidSandboxOptions", this.#options);
103
+ if (this.container.running) await this.container.setInactivityTimeout(this.inactivityTimeoutMs);
104
+ }
105
+ get inactivityTimeoutMs() {
106
+ return this.#options.inactivityTimeoutMs ?? 6e5;
107
+ }
108
+ async beforeStart() {}
109
+ async afterStart() {}
110
+ async beforeUse() {}
111
+ async stopped() {}
112
+ processContext(_exitCode) {}
113
+ async waitForProcessExit(exitCode, _context) {
114
+ return exitCode;
115
+ }
116
+ /** Native abort listeners must be detached as soon as a process exits. */
117
+ async execProcess(argv, options = {}) {
118
+ const { signal, ...nativeOptions } = options;
119
+ if (!signal) return this.container.exec(argv, nativeOptions);
120
+ const controller = new AbortController();
121
+ const abort = () => controller.abort();
122
+ if (signal.aborted) abort();
123
+ else signal.addEventListener("abort", abort, { once: true });
124
+ const finish = () => signal.removeEventListener("abort", abort);
125
+ try {
126
+ const process = await this.container.exec(argv, {
127
+ ...nativeOptions,
128
+ signal: controller.signal
129
+ });
130
+ process.exitCode.then(finish, finish);
131
+ return process;
132
+ } catch (error) {
133
+ finish();
134
+ throw error;
135
+ }
136
+ }
137
+ async initializationOutput(argv, options, timeoutMs) {
138
+ const controller = new AbortController();
139
+ const timer = setTimeout(() => controller.abort(), timeoutMs);
140
+ const finish = () => clearTimeout(timer);
141
+ try {
142
+ const process = await this.execProcess(argv, {
143
+ ...options,
144
+ signal: controller.signal
145
+ });
146
+ process.exitCode.then(finish, finish);
147
+ return await process.output();
148
+ } finally {
149
+ finish();
150
+ }
151
+ }
152
+ async initialize() {
153
+ if ((await this.initializationOutput([
154
+ "sh",
155
+ "-c",
156
+ "mkdir -p /workspace"
157
+ ], {}, 6e4)).exitCode !== 0) throw new Error("Sandbox workspace initialization failed.");
158
+ }
159
+ get entrypoint() {}
160
+ get image() {
161
+ return this.container.images.default;
162
+ }
163
+ async ensureRunning() {
164
+ if (!this.#setup || !this.container.running && !this.starting) {
165
+ this.starting = true;
166
+ this.#setup = this.setup(this.#epoch).catch((error) => {
167
+ this.#setup = void 0;
168
+ throw error;
169
+ }).finally(() => {
170
+ this.starting = false;
171
+ });
172
+ }
173
+ await this.#setup;
174
+ await this.beforeUse();
175
+ }
176
+ async setup(epoch) {
177
+ await this.#ready;
178
+ try {
179
+ await this.beforeStart();
180
+ if (epoch !== this.#epoch) throw new Error("Sandbox startup was cancelled.");
181
+ if (!this.container.running) this.container.start({
182
+ image: this.image,
183
+ instance: this.instanceType,
184
+ enableInternet: this.#options.enableInternet ?? false,
185
+ labels: this.#options.labels,
186
+ ...this.entrypoint ? { entrypoint: this.entrypoint } : {}
187
+ });
188
+ await this.initialize();
189
+ if (epoch !== this.#epoch) throw new Error("Sandbox startup was cancelled.");
190
+ await this.container.setInactivityTimeout(this.inactivityTimeoutMs);
191
+ await this.afterStart();
192
+ } catch (error) {
193
+ await this.destroy().catch(() => {});
194
+ throw error;
195
+ }
196
+ }
197
+ async destroy() {
198
+ this.#epoch++;
199
+ if (this.container.running) await this.container.destroy();
200
+ if (this.container.running) throw new Error("VOID_SANDBOX_unavailable");
201
+ if (!this.starting) this.#setup = void 0;
202
+ await this.stopped();
203
+ }
204
+ async invoke(operation, args) {
205
+ if (!Array.isArray(args)) throw new TypeError("Sandbox arguments must be an array.");
206
+ if (operation === "destroy") return this.destroy();
207
+ if (operation === "running") return this.container.running;
208
+ if (operation === "files") {
209
+ const [method, ...parameters] = args;
210
+ if (!FILE_OPERATIONS.has(method)) throw new TypeError(`Unsupported Sandbox file operation: ${String(method)}`);
211
+ await this.ensureRunning();
212
+ const index = method === "writeFile" || method === "rename" ? 2 : 1;
213
+ const { options, finish } = operationOptions(parameters[index]);
214
+ parameters[index] = options;
215
+ try {
216
+ const files = new Files({ exec: (argv, options) => this.execProcess(argv, options) });
217
+ const result = await files[method].apply(files, parameters);
218
+ if (result instanceof Response && result.body) {
219
+ const reader = result.body.getReader();
220
+ return new Response(new ReadableStream({
221
+ async pull(controller) {
222
+ try {
223
+ const chunk = await reader.read();
224
+ if (chunk.done) {
225
+ finish();
226
+ controller.close();
227
+ } else controller.enqueue(chunk.value);
228
+ } catch (error) {
229
+ finish();
230
+ controller.error(error);
231
+ }
232
+ },
233
+ async cancel(reason) {
234
+ finish();
235
+ await reader.cancel(reason);
236
+ }
237
+ }), result);
238
+ }
239
+ finish();
240
+ return result;
241
+ } catch (error) {
242
+ finish();
243
+ throw error;
244
+ }
245
+ }
246
+ if (operation === "exec") {
247
+ const [argv, value] = args;
248
+ if (!Array.isArray(argv) || argv.length === 0 || argv.some((arg) => typeof arg !== "string")) throw new TypeError("Sandbox exec requires an executable and arguments as an array of strings.");
249
+ const { options, finish } = operationOptions(value);
250
+ try {
251
+ await this.ensureRunning();
252
+ const process = await this.execProcess(argv, {
253
+ cwd: "/workspace",
254
+ ...options
255
+ });
256
+ process.exitCode.then(finish, finish);
257
+ const processContext = this.processContext(process.exitCode);
258
+ return {
259
+ capability: new ProcessCapability(process, () => this.waitForProcessExit(process.exitCode, processContext)),
260
+ pid: process.pid,
261
+ isPty: process.isPty ?? false,
262
+ stdin: process.stdin ?? null,
263
+ stdout: process.stdout ?? null,
264
+ stderr: process.stderr ?? null
265
+ };
266
+ } catch (error) {
267
+ finish();
268
+ throw error;
269
+ }
270
+ }
271
+ if (operation === "fetch") {
272
+ const [port, request] = args;
273
+ if (!Number.isInteger(port) || port < 1 || port > 65535) throw new TypeError("Invalid Sandbox TCP port.");
274
+ await this.ensureRunning();
275
+ return this.container.getTcpPort(port).fetch(request);
276
+ }
277
+ throw new TypeError(`Unsupported Sandbox operation: ${operation}`);
278
+ }
279
+ };
280
+ //#endregion
281
+ export { SandboxContainer as n, validateSandboxOptions as r, DEFAULT_SANDBOX_INACTIVITY_TIMEOUT_MS as t };
@@ -2,41 +2,9 @@ import { a as join, n as dirname, r as extname, t as basename } from "./dist-BVq
2
2
  import { n as readProjectPaths } from "./project-paths-GgcMozYz.mjs";
3
3
  import { t as glob } from "./dist-Bn8Kodjp.mjs";
4
4
  import { n as isIdentifier, r as isLiteral } from "./ast-CPGPjb0V.mjs";
5
- import { n as parseRouteFilename } from "./parse-filename-DioPHiR9.mjs";
5
+ import { a as staticLiteral, i as staticExportInitializers, n as parseRouteFilename } from "./parse-filename-CUbj-1MP.mjs";
6
6
  import { existsSync, readFileSync } from "node:fs";
7
7
  import { parseSync } from "vite";
8
- //#region src/shared/static-exports.ts
9
- /** Read the initializer of directly exported constants without evaluating user code. */
10
- function staticExportInitializers(filename, source, names) {
11
- const result = /* @__PURE__ */ new Map();
12
- const program = parseSync(filename, source).program;
13
- for (const statement of program.body ?? []) {
14
- if (statement.type !== "ExportNamedDeclaration") continue;
15
- const declaration = statement.declaration;
16
- if (declaration?.type !== "VariableDeclaration" || declaration.kind !== "const") continue;
17
- for (const variable of declaration.declarations ?? []) if (isIdentifier(variable.id) && names.has(variable.id.name) && variable.init) result.set(variable.id.name, variable.init);
18
- }
19
- return result;
20
- }
21
- function unwrapStaticExpression(node) {
22
- while (node && [
23
- "ParenthesizedExpression",
24
- "TSAsExpression",
25
- "TSSatisfiesExpression",
26
- "TSTypeAssertion"
27
- ].includes(node.type)) node = node.expression;
28
- return node;
29
- }
30
- function staticLiteral(node) {
31
- node = unwrapStaticExpression(node);
32
- if (node?.type === "Literal") return node.value;
33
- if (node?.type === "TemplateLiteral") {
34
- const expressions = node.expressions;
35
- const quasis = node.quasis;
36
- if (expressions?.length === 0 && quasis?.length === 1) return quasis[0]?.value?.cooked;
37
- }
38
- }
39
- //#endregion
40
8
  //#region src/pages/layout-resolution.ts
41
9
  function isNamedLayout(layout) {
42
10
  return "name" in layout;
@@ -131,7 +99,8 @@ function componentLayout(source, filename) {
131
99
  const scripts = filename.endsWith(".vue") || filename.endsWith(".svelte") ? [...source.matchAll(/<script\b[^>]*>([\s\S]*?)<\/script\s*>/gi)].map((match) => match[1]) : [source];
132
100
  for (const script of scripts) {
133
101
  if (!script.includes("layout")) continue;
134
- const value = staticLiteral(staticExportInitializers(filename.replace(/\.(vue|svelte)$/, ".ts"), script, /* @__PURE__ */ new Set(["layout"])).get("layout"));
102
+ const initializer = staticExportInitializers(filename.replace(/\.(vue|svelte)$/, ".ts"), script, /* @__PURE__ */ new Set(["layout"])).get("layout");
103
+ const value = staticLiteral(initializer);
135
104
  if (typeof value === "string" || value === false) return value;
136
105
  }
137
106
  }
@@ -366,4 +335,4 @@ function extractFrontmatterLayout(source) {
366
335
  return value;
367
336
  }
368
337
  //#endregion
369
- export { resolveNamedLayout as a, unwrapStaticExpression as c, resolveLayoutIds as i, resolveEffectiveLayoutChain as n, staticExportInitializers as o, resolveLayoutChain as r, staticLiteral as s, scanPages as t };
338
+ export { resolveNamedLayout as a, resolveLayoutIds as i, resolveEffectiveLayoutChain as n, resolveLayoutChain as r, scanPages as t };
@@ -1,9 +1,9 @@
1
- import { r as cliTitle } from "./output-CCH48AMM.mjs";
2
- import { c as getToken } from "./auth-DLNN0D3Z.mjs";
1
+ import { c as getToken } from "./auth-CSkdO2Bb.mjs";
3
2
  import { i as readDeploymentPlatform, o as readProjectConfig } from "./project-C0Fqu05O.mjs";
4
- import { _ as validateSecretValues } from "./env-validation-BB4GkLxn.mjs";
5
- import { E as confirm, F as password, N as note, O as intro, P as outro, T as cancel, W as isCancel, j as log } from "./dist-Dn6nn2IU.mjs";
6
- import { n as PlatformClient } from "./client-QTl6ko_D.mjs";
3
+ import { _ as validateSecretValues } from "./env-validation-BPn7vk-V.mjs";
4
+ import { E as confirm, F as password, N as note, O as intro, P as outro, T as cancel, W as isCancel, j as log } from "./dist-CTBk70IR.mjs";
5
+ import { n as PlatformClient } from "./client-RV8NVeB8.mjs";
6
+ import { r as cliTitle } from "./output-Dm_A4Tbv.mjs";
7
7
  import { r as resolveProjectBySlug, t as getRequestedProjectSlug } from "./resolve-project-BG5ORGID.mjs";
8
8
  import { readFileSync } from "node:fs";
9
9
  //#region src/cli/secret.ts
@@ -78,7 +78,7 @@ async function runSecretCommand(root, args) {
78
78
  }
79
79
  async function runCloudflareSecretCommand(root, args) {
80
80
  if (args.projectName) throw new Error("secret: --project selects a Void platform project and is not used for direct Cloudflare apps.");
81
- const { deleteCloudflareSecret, listCloudflareSecrets, putCloudflareSecret, resolveCloudflareOperationContext, syncCloudflareSecrets } = await import("./cloudflare-operations-BipGMJ5O.mjs");
81
+ const { deleteCloudflareSecret, listCloudflareSecrets, putCloudflareSecret, resolveCloudflareOperationContext, syncCloudflareSecrets } = await import("./cloudflare-operations-AiWashgg.mjs");
82
82
  const context = resolveCloudflareOperationContext(root);
83
83
  if (args.action === "list") {
84
84
  const secrets = await listCloudflareSecrets(context);
@@ -1,5 +1,5 @@
1
1
  import { a as join, l as relative } from "./dist-BVqXeR_h.mjs";
2
- import { j as log } from "./dist-Dn6nn2IU.mjs";
2
+ import { j as log } from "./dist-CTBk70IR.mjs";
3
3
  import { n as getPackageDir } from "./agents-B_pX_HmQ.mjs";
4
4
  import { existsSync, mkdirSync, readFileSync, readdirSync, readlinkSync, symlinkSync } from "node:fs";
5
5
  //#region src/cli/skills.ts
@@ -55,6 +55,7 @@ function eventStream(start, options = {}) {
55
55
  const markClosed = () => {
56
56
  if (closedOnce) return;
57
57
  closedOnce = true;
58
+ options.signal?.removeEventListener("abort", abort);
58
59
  if (!signalController.signal.aborted) signalController.abort();
59
60
  if (keepAliveTimer != null) {
60
61
  clearInterval(keepAliveTimer);
@@ -68,10 +69,12 @@ function eventStream(start, options = {}) {
68
69
  await writer.close().catch(() => {});
69
70
  }
70
71
  async function fail(error) {
71
- if (closedOnce) return;
72
72
  markClosed();
73
73
  await writer.abort(error).catch(() => {});
74
74
  }
75
+ function abort() {
76
+ fail(options.signal?.reason ?? new SseStreamClosedError());
77
+ }
75
78
  async function write(text) {
76
79
  if (closedOnce) throw new SseStreamClosedError();
77
80
  try {
@@ -95,11 +98,11 @@ function eventStream(start, options = {}) {
95
98
  writer.closed.catch(() => {
96
99
  close();
97
100
  });
98
- if (options.signal?.aborted) close();
99
- else options.signal?.addEventListener("abort", () => void close(), { once: true });
100
101
  if (keepAlive) keepAliveTimer = setInterval(() => {
101
102
  stream.comment(keepAlive.comment).catch(() => close());
102
103
  }, keepAlive.intervalMs);
104
+ if (options.signal?.aborted) abort();
105
+ else options.signal?.addEventListener("abort", abort, { once: true });
103
106
  queueMicrotask(() => {
104
107
  (async () => {
105
108
  try {
@@ -1,5 +1,5 @@
1
- import { c as import_picocolors } from "./output-CCH48AMM.mjs";
2
- import { S as S_STEP_SUBMIT, _ as S_RADIO_ACTIVE, c as S_CHECKBOX_INACTIVE, i as S_BAR_END, q as wrapAnsi, r as S_BAR, s as S_CHECKBOX_ACTIVE, v as S_RADIO_INACTIVE, y as S_STEP_ACTIVE } from "./dist-Dn6nn2IU.mjs";
1
+ import { S as S_STEP_SUBMIT, _ as S_RADIO_ACTIVE, c as S_CHECKBOX_INACTIVE, i as S_BAR_END, q as wrapAnsi, r as S_BAR, s as S_CHECKBOX_ACTIVE, v as S_RADIO_INACTIVE, y as S_STEP_ACTIVE } from "./dist-CTBk70IR.mjs";
2
+ import { c as import_picocolors } from "./output-Dm_A4Tbv.mjs";
3
3
  //#region src/cli/subcommand-prompt.ts
4
4
  function promptSubcommand(command, subcommands) {
5
5
  return new Promise((resolve) => {
@@ -0,0 +1,2 @@
1
+ import { i as validateMigrations } from "./validate-ctOrgiS3.mjs";
2
+ export { validateMigrations };
@@ -1,7 +1,8 @@
1
1
  import { a as join } from "./dist-BVqXeR_h.mjs";
2
2
  import { n as readJournal, r as stripSqlExt } from "./collect-DiTn9yr6.mjs";
3
- import { t as DESTRUCTIVE_PRAGMA, u as tokenizeSql } from "./plan-BEZ8VJW0.mjs";
3
+ import { t as DESTRUCTIVE_PRAGMA } from "./plan-NPpwZ_kc.mjs";
4
4
  import { existsSync, readdirSync } from "node:fs";
5
+ import { tokenizeSql } from "@void/deploy-core";
5
6
  //#region src/migrations/validate.ts
6
7
  /**
7
8
  * Destructive SQL patterns that are rejected unless the migration