void 0.10.12 → 0.20.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 (431) hide show
  1. package/AGENTS_TEMPLATE.md +6 -0
  2. package/{skills/void/docs/node_modules/void/node_modules/pglite-server/LICENSE.md → LICENSE} +1 -1
  3. package/README.md +34 -8
  4. package/dist/{auth-qgMlYp7Z.d.mts → auth-DkcFflXV.d.mts} +10 -11
  5. package/dist/auth-W9WII-mN.mjs +630 -0
  6. package/dist/{auth-cmd-BqsdZJp5.mjs → auth-cmd-CYVhSNFy.mjs} +4 -3
  7. package/dist/{auth-migrations-BTZ-ATvQ.mjs → auth-migrations-9vif1uj8.mjs} +53 -12
  8. package/dist/{better-auth-shared-BQooDxbw.mjs → better-auth-shared-CYw1T3k4.mjs} +7 -10
  9. package/dist/{better-auth-shared-DealXecJ.d.mts → better-auth-shared-DSCeohOK.d.mts} +10 -5
  10. package/dist/{build-cmd-Bujrv5q-.mjs → build-cmd-CkVD1uOh.mjs} +6 -4
  11. package/dist/{cache-C11V8Fxq.mjs → cache-QcUfR-ff.mjs} +9 -5
  12. package/dist/{cancel-deploy-fwFYF04b.mjs → cancel-deploy-DsvWKFTe.mjs} +3 -2
  13. package/dist/cf-access-AJ1ehiFR.mjs +42 -0
  14. package/dist/cf-access-DsSsZUPr.mjs +67 -0
  15. package/dist/cli/cli.d.mts +1 -1
  16. package/dist/cli/cli.mjs +1592 -153
  17. package/dist/cli/env-schema-probe.d.mts +48 -61
  18. package/dist/cli/env-schema-probe.mjs +10 -58
  19. package/dist/{client-Gb71-XkG.mjs → client-CyCHWSO_.mjs} +61 -463
  20. package/dist/cloudflare-auth-DRkGe7-s.mjs +170 -0
  21. package/dist/cloudflare-cmd-D3ME2GAe.mjs +62 -0
  22. package/dist/cloudflare-connect-BivMefMA.mjs +56 -0
  23. package/dist/cloudflare-operations-CPTpRW6d.mjs +566 -0
  24. package/dist/{config-BkTvs43g.mjs → config-BQFq7QvD.mjs} +85 -41
  25. package/dist/{config-CutEMNGJ.mjs → config-NOG_U1aK.mjs} +10 -15
  26. package/dist/connect-D9Yr-T5f.mjs +79 -0
  27. package/dist/{create-project-DsYvl3TB.mjs → create-project-DMV-csEm.mjs} +26 -16
  28. package/dist/database-provider.d.mts +21 -0
  29. package/dist/database-provider.mjs +6 -0
  30. package/dist/{db-DOiJMRt2.mjs → db-BxoUWL0F.mjs} +600 -115
  31. package/dist/{delete-mh6p-zkQ.mjs → delete-iJOqxBz1.mjs} +9 -6
  32. package/dist/{deploy-u7Rv9q_q.mjs → deploy-CcDoeBIf.mjs} +3451 -1986
  33. package/dist/dev-inbox-DkgRWLkW.mjs +307 -0
  34. package/dist/{discover-CJHyvYfR.mjs → discover-xvfrgJeo.mjs} +3 -3
  35. package/dist/{magic-string.es-ZQjdJFFn.mjs → dist-BR1quN_w.mjs} +570 -216
  36. package/dist/{dist-DaKKDf8D.mjs → dist-BrsS7cai.mjs} +17 -2
  37. package/dist/{dist-BuiRJkTd.mjs → dist-m40_XgNh.mjs} +48 -33
  38. package/dist/{domain-DiaNQbrl.mjs → domain-gu_iaHmn.mjs} +41 -4
  39. package/dist/dotenv-VQxupEUv.mjs +181 -0
  40. package/dist/edge.d.mts +2 -0
  41. package/dist/edge.mjs +2 -0
  42. package/dist/email-Ce6SQq-i.mjs +182 -0
  43. package/dist/email-r6DHJyAB.mjs +262 -0
  44. package/dist/{entry-D7yy4xVH.mjs → entry-DU3oDoQ3.mjs} +2 -2
  45. package/dist/env-D4Emu-M_.mjs +95 -0
  46. package/dist/env-DmU2To0C.mjs +73 -0
  47. package/dist/env-helpers-CyKtOBpj.d.mts +22 -0
  48. package/dist/env-public-D_6u46fX.d.mts +135 -0
  49. package/dist/{env-types-QBj-ndax.mjs → env-types-BNPhro-M.mjs} +2 -2
  50. package/dist/{env-validation-Dea3v3ej.mjs → env-validation-ENpMy6Ez.mjs} +68 -122
  51. package/dist/{gen-o_w-8yI8.mjs → gen-BKw6qHIg.mjs} +70 -15
  52. package/dist/{github-cmd-DKcGUNsj.mjs → github-cmd-DJS5Ab-H.mjs} +39 -31
  53. package/dist/{handler-Cjh8uM3Y.d.mts → handler-D1hLsObx.d.mts} +124 -122
  54. package/dist/{head-nmvOgFjd.d.mts → head-Do8P4puT.d.mts} +9 -8
  55. package/dist/{headers-nsHIFixA.mjs → headers-D8QfRX9Y.mjs} +12 -10
  56. package/dist/inbound-BJ70in1n.d.mts +354 -0
  57. package/dist/inbound-CNKxb3FY.mjs +694 -0
  58. package/dist/index.d.mts +61 -34
  59. package/dist/index.mjs +1048 -321
  60. package/dist/{init-3rgHKBVi.mjs → init-Dx5cgKqK.mjs} +329 -271
  61. package/dist/link-D_rm5sRH.mjs +52 -0
  62. package/dist/{list-CPwFDZ_c.mjs → list-M8XShti7.mjs} +37 -5
  63. package/dist/{runner-kapo9aPs.mjs → local-d1-BE8KBbMy.mjs} +116 -6
  64. package/dist/{login-BT3H8PN3.mjs → login-C8-UuLnp.mjs} +17 -15
  65. package/dist/{logs-Bt313ax7.mjs → logs-DwFU7dMW.mjs} +16 -2
  66. package/dist/mime-BJD7d_qL.mjs +1216 -0
  67. package/dist/neon-DHwd2zvC.mjs +54 -0
  68. package/dist/{node-Da0UcsGA.mjs → node-BkaXcpAc.mjs} +29 -8
  69. package/dist/operator-cmd-DYWRbWUA.mjs +348 -0
  70. package/dist/{agents-CtgBYqld.mjs → output-tFQLLj26.mjs} +676 -211
  71. package/dist/{package-json-Cx1osYo6.mjs → package-json-CPoWX79C.mjs} +1 -1
  72. package/dist/pages/client.d.mts +43 -41
  73. package/dist/pages/client.mjs +40 -33
  74. package/dist/pages/head-client.d.mts +10 -12
  75. package/dist/pages/head.d.mts +1 -1
  76. package/dist/pages/index.d.mts +37 -14
  77. package/dist/pages/index.mjs +5 -5
  78. package/dist/pages/islands-plugin.d.mts +25 -27
  79. package/dist/pages/islands-plugin.mjs +6 -4
  80. package/dist/pages/prefetch.d.mts +6 -7
  81. package/dist/pages/protocol.d.mts +2 -2
  82. package/dist/pages/protocol.mjs +2 -1
  83. package/dist/pages/serialize.d.mts +7 -8
  84. package/dist/platform-cmd-BEOVv1PN.mjs +123 -0
  85. package/dist/platform-domain-BszUfiS8.mjs +228 -0
  86. package/dist/platform-lifecycle-CjSr6xf0.mjs +4450 -0
  87. package/dist/platform-management-W30iCaTL.mjs +698 -0
  88. package/dist/platform-recovery-pHHv4ZSg.mjs +99 -0
  89. package/dist/{plugin-inference-DMeavIJ6.mjs → plugin-inference-BDRfZngg.mjs} +35 -19
  90. package/dist/prepare-BfJvFUtJ.mjs +14 -0
  91. package/dist/{prepare-BoKHgMNx.mjs → prepare-CBetXvsN.mjs} +15 -24
  92. package/dist/{preset-BjyR3lzz.mjs → preset-lAy0B0BQ.mjs} +25 -212
  93. package/dist/{project-cmd-D_w-4w5B.mjs → project-cmd-DCpk1cDt.mjs} +25 -12
  94. package/dist/{project-paths-BQd7OmIo.mjs → project-paths-SK8nMHPp.mjs} +3 -1
  95. package/dist/{project-tsconfig-B-QtXjLQ.mjs → project-tsconfig-Ql2XsSQp.mjs} +2 -2
  96. package/dist/{protocol-Bnb0LFp3.d.mts → protocol-C-pqYJjE.d.mts} +3 -4
  97. package/dist/{provision-rShh6MKY.mjs → provision-Blnstcm2.mjs} +78 -45
  98. package/dist/r2-conditions-D1Wk8i7b.mjs +30 -0
  99. package/dist/{requests-B8sZxaFM.mjs → requests-Dn8Vheh1.mjs} +5 -3
  100. package/dist/{resolve-project-BBMtLLV9.mjs → resolve-project--Vxawf7z.mjs} +2 -2
  101. package/dist/rollback-CtlPXEBi.mjs +166 -0
  102. package/dist/{rolldown-runtime-DJK8HYOj.mjs → rolldown-runtime-rQ84J-ij.mjs} +1 -1
  103. package/dist/{route-types-COI2DsZv.mjs → route-types-Da-DpyUp.mjs} +85 -26
  104. package/dist/routes-stub.d.mts +22 -23
  105. package/dist/runner-mysql-CgRFl3s6.mjs +61 -0
  106. package/dist/{runner-pg-CHM76xuC.mjs → runner-pg-DCkWPsWS.mjs} +18 -6
  107. package/dist/runtime/ai.d.mts +21 -14
  108. package/dist/runtime/ai.mjs +5 -4
  109. package/dist/runtime/auth-client-react.d.mts +3 -5
  110. package/dist/runtime/auth-client-solid.d.mts +3 -5
  111. package/dist/runtime/auth-client-svelte.d.mts +3 -5
  112. package/dist/runtime/auth-client-vue.d.mts +3 -5
  113. package/dist/runtime/auth-client.d.mts +3 -5
  114. package/dist/runtime/auth.d.mts +1 -1
  115. package/dist/runtime/better-auth-mysql.d.mts +10 -0
  116. package/dist/runtime/better-auth-mysql.mjs +49 -0
  117. package/dist/runtime/better-auth-pg.d.mts +8 -9
  118. package/dist/runtime/better-auth-pg.mjs +2 -2
  119. package/dist/runtime/better-auth.d.mts +8 -9
  120. package/dist/runtime/better-auth.mjs +2 -2
  121. package/dist/runtime/client-react.d.mts +1 -1
  122. package/dist/runtime/client-solid.d.mts +1 -1
  123. package/dist/runtime/client-svelte.d.mts +1 -1
  124. package/dist/runtime/client-vue.d.mts +1 -1
  125. package/dist/runtime/client.d.mts +1 -1
  126. package/dist/runtime/db-mysql.d.mts +2 -0
  127. package/dist/runtime/db-mysql.mjs +1 -0
  128. package/dist/runtime/db.d.mts +10 -11
  129. package/dist/runtime/durable.d.mts +47 -0
  130. package/dist/runtime/durable.mjs +146 -0
  131. package/dist/runtime/email/testing.d.mts +112 -0
  132. package/dist/runtime/email/testing.mjs +283 -0
  133. package/dist/runtime/email.d.mts +30 -0
  134. package/dist/runtime/email.mjs +573 -0
  135. package/dist/runtime/env-helpers.d.mts +2 -2
  136. package/dist/runtime/env-helpers.mjs +5 -42
  137. package/dist/runtime/env-public-client.d.mts +10 -11
  138. package/dist/runtime/env-public-client.mjs +1 -1
  139. package/dist/runtime/env-public.d.mts +2 -2
  140. package/dist/runtime/env-public.mjs +104 -49
  141. package/dist/runtime/env.d.mts +19 -18
  142. package/dist/runtime/env.mjs +15 -2
  143. package/dist/runtime/fetch-stream.d.mts +20 -21
  144. package/dist/runtime/fetch.d.mts +15 -16
  145. package/dist/runtime/handler.d.mts +1 -1
  146. package/dist/runtime/isr.d.mts +21 -22
  147. package/dist/runtime/isr.mjs +26 -8
  148. package/dist/runtime/kv.d.mts +9 -10
  149. package/dist/runtime/live-client.d.mts +5 -7
  150. package/dist/runtime/live-client.mjs +9 -7
  151. package/dist/runtime/live-server.d.mts +4 -5
  152. package/dist/runtime/live.d.mts +22 -24
  153. package/dist/runtime/live.mjs +1 -1
  154. package/dist/runtime/log.d.mts +16 -17
  155. package/dist/runtime/migration-handler-mysql.d.mts +4 -0
  156. package/dist/runtime/migration-handler-mysql.mjs +81 -0
  157. package/dist/runtime/migration-handler-pg.d.mts +2 -4
  158. package/dist/runtime/migration-handler.d.mts +5 -6
  159. package/dist/runtime/migration-handler.mjs +4 -3
  160. package/dist/runtime/queues.d.mts +3 -4
  161. package/dist/runtime/queues.mjs +2 -1
  162. package/dist/runtime/remote/binding-handler.d.mts +10 -12
  163. package/dist/runtime/remote/binding-handler.mjs +24 -3
  164. package/dist/runtime/remote/index.d.mts +5 -6
  165. package/dist/runtime/remote/index.mjs +21 -18
  166. package/dist/runtime/response.d.mts +10 -11
  167. package/dist/runtime/sandbox.d.mts +56 -55
  168. package/dist/runtime/sandbox.mjs +57 -49
  169. package/dist/runtime/schema-mysql.d.mts +1 -0
  170. package/dist/runtime/schema-mysql.mjs +2 -0
  171. package/dist/runtime/seed.d.mts +14 -9
  172. package/dist/runtime/sse-client.d.mts +6 -7
  173. package/dist/runtime/sse.d.mts +11 -12
  174. package/dist/runtime/storage.d.mts +3 -4
  175. package/dist/runtime/validator.d.mts +1 -1
  176. package/dist/runtime/ws-server.d.mts +12 -12
  177. package/dist/runtime/ws-server.mjs +32 -4
  178. package/dist/runtime/ws.d.mts +19 -21
  179. package/dist/{scan-DYXkrasO.mjs → scan-BMH4rzlv.mjs} +53 -31
  180. package/dist/{scan-DEwlM_Xy.mjs → scan-CpK-57ug.mjs} +9 -5
  181. package/dist/{secret-Dt32J6RI.mjs → secret-BqTxGqki.mjs} +62 -5
  182. package/dist/{skills-CLjN0uUO.mjs → skills-Q46GZMO-.mjs} +6 -4
  183. package/dist/{standard-schema-DJ0HW7QP.d.mts → standard-schema-Fo_vCAZh.d.mts} +6 -6
  184. package/dist/{subcommand-prompt-BzV8iQZo.mjs → subcommand-prompt-WfySCQ7S.mjs} +67 -48
  185. package/dist/sveltekit.d.mts +12 -11
  186. package/dist/sveltekit.mjs +1 -1
  187. package/dist/types-BAp5AEBU.d.mts +79 -0
  188. package/dist/types-CKWnYgfy.d.mts +1 -0
  189. package/dist/{validate-Cw_RLeTj.mjs → validate-Bihr8WBi.mjs} +3 -3
  190. package/dist/wrangler--imS8n0d.mjs +1796 -0
  191. package/dist/{yarn-pnp-DJn3SAHF.mjs → yarn-pnp-DxSInkzL.mjs} +1 -1
  192. package/package.json +79 -65
  193. package/schema.json +35 -3
  194. package/skills/migrate-vite-cloudflare-to-void/SKILL.md +1 -1
  195. package/skills/void/SKILL.md +59 -2
  196. package/skills/void/docs/guide/ai.md +32 -14
  197. package/skills/void/docs/guide/app-types.md +6 -6
  198. package/skills/void/docs/guide/auth.md +14 -16
  199. package/skills/void/docs/guide/database/d1.md +6 -0
  200. package/skills/void/docs/guide/database/mysql.md +60 -0
  201. package/skills/void/docs/guide/database/postgresql.md +14 -9
  202. package/skills/void/docs/guide/database.md +39 -26
  203. package/skills/void/docs/guide/deployment.md +163 -22
  204. package/skills/void/docs/guide/durable-state.md +140 -0
  205. package/skills/void/docs/guide/edge/headers.md +5 -5
  206. package/skills/void/docs/guide/edge/prerendering.md +2 -0
  207. package/skills/void/docs/guide/edge/revalidation.md +21 -6
  208. package/skills/void/docs/guide/edge/rewrites.md +18 -14
  209. package/skills/void/docs/guide/edge/static-assets.md +23 -8
  210. package/skills/void/docs/guide/email.md +609 -0
  211. package/skills/void/docs/guide/env-migration.md +109 -0
  212. package/skills/void/docs/guide/env-vars.md +70 -248
  213. package/skills/void/docs/guide/index.md +15 -17
  214. package/skills/void/docs/guide/jobs.md +8 -5
  215. package/skills/void/docs/guide/live.md +7 -15
  216. package/skills/void/docs/guide/pages-routing/actions-and-forms.md +8 -4
  217. package/skills/void/docs/guide/pages-routing/islands.md +3 -3
  218. package/skills/void/docs/guide/pages-routing/loaders.md +6 -4
  219. package/skills/void/docs/guide/pages-routing/overview.md +7 -7
  220. package/skills/void/docs/guide/platform-administration.md +212 -0
  221. package/skills/void/docs/guide/platform-development.md +235 -0
  222. package/skills/void/docs/guide/queues.md +10 -10
  223. package/skills/void/docs/guide/quickstart.md +46 -67
  224. package/skills/void/docs/guide/remote-dev.md +8 -6
  225. package/skills/void/docs/guide/sandboxes.md +33 -16
  226. package/skills/void/docs/guide/self-hosted-platform.md +553 -0
  227. package/skills/void/docs/guide/server-routing.md +25 -5
  228. package/skills/void/docs/guide/sse.md +4 -4
  229. package/skills/void/docs/guide/ssg.md +5 -3
  230. package/skills/void/docs/guide/storage.md +2 -2
  231. package/skills/void/docs/guide/websockets.md +18 -7
  232. package/skills/void/docs/index.md +3 -3
  233. package/skills/void/docs/integrations/agents.md +6 -64
  234. package/skills/void/docs/integrations/cloudflare.md +165 -146
  235. package/skills/void/docs/integrations/frameworks/analog.md +4 -4
  236. package/skills/void/docs/integrations/frameworks/astro.md +5 -5
  237. package/skills/void/docs/integrations/frameworks/nuxt.md +5 -5
  238. package/skills/void/docs/integrations/frameworks/overview.md +3 -3
  239. package/skills/void/docs/integrations/frameworks/react-router.md +3 -3
  240. package/skills/void/docs/integrations/frameworks/sveltekit.md +3 -3
  241. package/skills/void/docs/integrations/frameworks/tanstack-start.md +2 -2
  242. package/skills/void/docs/integrations/nodejs-bun-deno.md +11 -4
  243. package/skills/void/docs/reference/api.md +42 -6
  244. package/skills/void/docs/reference/cli.md +637 -159
  245. package/skills/void/docs/reference/config.md +80 -25
  246. package/skills/void/docs/reference/resource-inference.md +13 -9
  247. package/skills/void/docs/reference/structure.md +10 -11
  248. package/AGENT_PROMPT.md +0 -19
  249. package/dist/cf-access-Bqw81xAf.mjs +0 -22
  250. package/dist/env-CZy5MorI.mjs +0 -299
  251. package/dist/env-helpers-z4stu8uc.d.mts +0 -52
  252. package/dist/env-mask-Dd47NbR6.mjs +0 -90
  253. package/dist/env-public-BfiLcMBk.d.mts +0 -140
  254. package/dist/link-CdGHSIy-.mjs +0 -45
  255. package/dist/mcp-DoM3_nhd.mjs +0 -377
  256. package/dist/project-paths-GpziKeQQ.d.mts +0 -25
  257. package/dist/providers-BNKRacMr.d.mts +0 -7
  258. package/dist/proxy-D-3_D-Gl.mjs +0 -5
  259. package/dist/rollback-CkvTFXx5.mjs +0 -90
  260. package/dist/runtime/isr-cache.d.mts +0 -207
  261. package/dist/runtime/isr-cache.mjs +0 -523
  262. package/dist/types-lLjNE9Qp.d.mts +0 -51
  263. package/getting-started-prompt.txt +0 -28
  264. package/skills/void/command/void.md +0 -7
  265. package/skills/void/docs/integrations/auth-providers.md +0 -0
  266. package/skills/void/docs/integrations/payment-processors.md +0 -0
  267. package/skills/void/docs/node_modules/@iconify/vue/README.md +0 -408
  268. package/skills/void/docs/node_modules/@iconify/vue/offline/readme.md +0 -5
  269. package/skills/void/docs/node_modules/@voidzero-dev/vitepress-theme/README.md +0 -103
  270. package/skills/void/docs/node_modules/oxc-minify/README.md +0 -78
  271. package/skills/void/docs/node_modules/reka-ui/README.md +0 -80
  272. package/skills/void/docs/node_modules/vitepress/README.md +0 -28
  273. package/skills/void/docs/node_modules/vitepress/template/api-examples.md +0 -49
  274. package/skills/void/docs/node_modules/vitepress/template/index.md +0 -28
  275. package/skills/void/docs/node_modules/vitepress/template/markdown-examples.md +0 -85
  276. package/skills/void/docs/node_modules/vitepress-plugin-group-icons/README.md +0 -101
  277. package/skills/void/docs/node_modules/void/AGENT_PROMPT.md +0 -19
  278. package/skills/void/docs/node_modules/void/CLAUDE.md +0 -219
  279. package/skills/void/docs/node_modules/void/README.md +0 -90
  280. package/skills/void/docs/node_modules/void/node_modules/@clack/prompts/CHANGELOG.md +0 -685
  281. package/skills/void/docs/node_modules/void/node_modules/@clack/prompts/README.md +0 -396
  282. package/skills/void/docs/node_modules/void/node_modules/@cloudflare/sandbox/README.md +0 -219
  283. package/skills/void/docs/node_modules/void/node_modules/@cloudflare/vite-plugin/README.md +0 -37
  284. package/skills/void/docs/node_modules/void/node_modules/@cloudflare/workers-types/README.md +0 -135
  285. package/skills/void/docs/node_modules/void/node_modules/@electric-sql/pglite/README.md +0 -189
  286. package/skills/void/docs/node_modules/void/node_modules/@hono/oauth-providers/CHANGELOG.md +0 -143
  287. package/skills/void/docs/node_modules/void/node_modules/@hono/oauth-providers/README.md +0 -1272
  288. package/skills/void/docs/node_modules/void/node_modules/@napi-rs/keyring/README.md +0 -19
  289. package/skills/void/docs/node_modules/void/node_modules/@types/better-sqlite3/README.md +0 -15
  290. package/skills/void/docs/node_modules/void/node_modules/@types/node/README.md +0 -15
  291. package/skills/void/docs/node_modules/void/node_modules/@types/pg/README.md +0 -15
  292. package/skills/void/docs/node_modules/void/node_modules/@types/proper-lockfile/README.md +0 -51
  293. package/skills/void/docs/node_modules/void/node_modules/@typescript/native-preview/README.md +0 -22
  294. package/skills/void/docs/node_modules/void/node_modules/@typescript/native-preview/vendor/vscode-jsonrpc/README.md +0 -69
  295. package/skills/void/docs/node_modules/void/node_modules/@void/md/README.md +0 -153
  296. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/@shikijs/engine-javascript/README.md +0 -9
  297. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/@shikijs/transformers/README.md +0 -9
  298. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/@types/node/README.md +0 -15
  299. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/gray-matter/CHANGELOG.md +0 -24
  300. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/gray-matter/README.md +0 -565
  301. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/markdown-exit/README.md +0 -127
  302. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/markdown-it-anchor/README.md +0 -600
  303. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/markdown-it-attrs/README.md +0 -386
  304. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/markdown-it-container/README.md +0 -95
  305. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/markdown-it-emoji/README.md +0 -101
  306. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/markdown-it-footnote/README.md +0 -135
  307. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/pathslash/README.md +0 -64
  308. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/shiki/README.md +0 -15
  309. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/tinyglobby/README.md +0 -25
  310. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/AGENTS.md +0 -16
  311. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/README.md +0 -220
  312. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/config/build.md +0 -21
  313. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/config/check.md +0 -35
  314. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/config/create.md +0 -70
  315. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/config/fmt.md +0 -20
  316. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/config/index.md +0 -35
  317. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/config/lint.md +0 -26
  318. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/config/pack.md +0 -17
  319. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/config/run.md +0 -364
  320. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/config/staged.md +0 -15
  321. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/config/test.md +0 -18
  322. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/automatic-data-tracking.md +0 -145
  323. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/build.md +0 -40
  324. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/cache.md +0 -107
  325. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/check.md +0 -60
  326. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/ci.md +0 -62
  327. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/commit-hooks.md +0 -60
  328. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/create.md +0 -341
  329. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/dev.md +0 -24
  330. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/docker.md +0 -175
  331. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/env.md +0 -167
  332. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/fmt.md +0 -41
  333. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/github-actions-cache.md +0 -165
  334. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/ide-integration.md +0 -101
  335. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/implode.md +0 -23
  336. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/index.md +0 -134
  337. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/install.md +0 -199
  338. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/lint.md +0 -50
  339. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/migrate-rules.md +0 -347
  340. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/migrate.md +0 -197
  341. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/monorepo.md +0 -176
  342. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/pack.md +0 -69
  343. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/run.md +0 -356
  344. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/test.md +0 -35
  345. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/troubleshooting.md +0 -108
  346. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/upgrade.md +0 -101
  347. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/vpx.md +0 -66
  348. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/why.md +0 -39
  349. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/index.md +0 -12
  350. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/team.md +0 -35
  351. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/templates/generator/README.md +0 -35
  352. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/templates/monorepo/README.md +0 -29
  353. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vue/README.md +0 -58
  354. package/skills/void/docs/node_modules/void/node_modules/arktype/README.md +0 -165
  355. package/skills/void/docs/node_modules/void/node_modules/better-auth/LICENSE.md +0 -20
  356. package/skills/void/docs/node_modules/void/node_modules/better-auth/README.md +0 -32
  357. package/skills/void/docs/node_modules/void/node_modules/better-sqlite3/README.md +0 -99
  358. package/skills/void/docs/node_modules/void/node_modules/blake3-jit/README.md +0 -108
  359. package/skills/void/docs/node_modules/void/node_modules/drizzle-arktype/README.md +0 -51
  360. package/skills/void/docs/node_modules/void/node_modules/drizzle-kit/README.md +0 -79
  361. package/skills/void/docs/node_modules/void/node_modules/drizzle-orm/README.md +0 -44
  362. package/skills/void/docs/node_modules/void/node_modules/drizzle-valibot/README.md +0 -51
  363. package/skills/void/docs/node_modules/void/node_modules/drizzle-zod/README.md +0 -65
  364. package/skills/void/docs/node_modules/void/node_modules/es-module-lexer/README.md +0 -403
  365. package/skills/void/docs/node_modules/void/node_modules/estree-walker/README.md +0 -48
  366. package/skills/void/docs/node_modules/void/node_modules/hono/README.md +0 -85
  367. package/skills/void/docs/node_modules/void/node_modules/ignore/README.md +0 -452
  368. package/skills/void/docs/node_modules/void/node_modules/jsonc-parser/CHANGELOG.md +0 -76
  369. package/skills/void/docs/node_modules/void/node_modules/jsonc-parser/LICENSE.md +0 -21
  370. package/skills/void/docs/node_modules/void/node_modules/jsonc-parser/README.md +0 -364
  371. package/skills/void/docs/node_modules/void/node_modules/jsonc-parser/SECURITY.md +0 -41
  372. package/skills/void/docs/node_modules/void/node_modules/magic-string/README.md +0 -325
  373. package/skills/void/docs/node_modules/void/node_modules/ofetch/README.md +0 -398
  374. package/skills/void/docs/node_modules/void/node_modules/pathslash/README.md +0 -64
  375. package/skills/void/docs/node_modules/void/node_modules/pg/README.md +0 -96
  376. package/skills/void/docs/node_modules/void/node_modules/pglite-server/README.md +0 -135
  377. package/skills/void/docs/node_modules/void/node_modules/picocolors/README.md +0 -21
  378. package/skills/void/docs/node_modules/void/node_modules/proper-lockfile/CHANGELOG.md +0 -108
  379. package/skills/void/docs/node_modules/void/node_modules/proper-lockfile/README.md +0 -183
  380. package/skills/void/docs/node_modules/void/node_modules/tinyglobby/README.md +0 -25
  381. package/skills/void/docs/node_modules/void/node_modules/valibot/LICENSE.md +0 -9
  382. package/skills/void/docs/node_modules/void/node_modules/valibot/README.md +0 -94
  383. package/skills/void/docs/node_modules/void/node_modules/vite-plus/AGENTS.md +0 -16
  384. package/skills/void/docs/node_modules/void/node_modules/vite-plus/README.md +0 -220
  385. package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/config/build.md +0 -21
  386. package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/config/check.md +0 -35
  387. package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/config/create.md +0 -70
  388. package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/config/fmt.md +0 -20
  389. package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/config/index.md +0 -35
  390. package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/config/lint.md +0 -26
  391. package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/config/pack.md +0 -17
  392. package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/config/run.md +0 -364
  393. package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/config/staged.md +0 -15
  394. package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/config/test.md +0 -18
  395. package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/automatic-data-tracking.md +0 -145
  396. package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/build.md +0 -40
  397. package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/cache.md +0 -107
  398. package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/check.md +0 -60
  399. package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/ci.md +0 -62
  400. package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/commit-hooks.md +0 -60
  401. package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/create.md +0 -341
  402. package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/dev.md +0 -24
  403. package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/docker.md +0 -175
  404. package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/env.md +0 -167
  405. package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/fmt.md +0 -41
  406. package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/github-actions-cache.md +0 -165
  407. package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/ide-integration.md +0 -101
  408. package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/implode.md +0 -23
  409. package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/index.md +0 -134
  410. package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/install.md +0 -199
  411. package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/lint.md +0 -50
  412. package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/migrate-rules.md +0 -347
  413. package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/migrate.md +0 -197
  414. package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/monorepo.md +0 -176
  415. package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/pack.md +0 -69
  416. package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/run.md +0 -356
  417. package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/test.md +0 -35
  418. package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/troubleshooting.md +0 -108
  419. package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/upgrade.md +0 -101
  420. package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/vpx.md +0 -66
  421. package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/why.md +0 -39
  422. package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/index.md +0 -12
  423. package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/team.md +0 -35
  424. package/skills/void/docs/node_modules/void/node_modules/vite-plus/templates/generator/README.md +0 -35
  425. package/skills/void/docs/node_modules/void/node_modules/vite-plus/templates/monorepo/README.md +0 -29
  426. package/skills/void/docs/node_modules/void/node_modules/wrangler/README.md +0 -63
  427. package/skills/void/docs/node_modules/void/node_modules/zod/README.md +0 -191
  428. package/skills/void/docs/node_modules/void/skills/migrate-vite-cloudflare-to-void/SKILL.md +0 -175
  429. package/skills/void/docs/node_modules/void/skills/void/SKILL.md +0 -76
  430. package/skills/void/docs/node_modules/void/skills/void/command/void.md +0 -7
  431. package/skills/void/docs/node_modules/void/test/e2e/README.md +0 -85
@@ -0,0 +1,566 @@
1
+ import { n as __exportAll } from "./rolldown-runtime-rQ84J-ij.mjs";
2
+ import { o as join } from "./dist-BrsS7cai.mjs";
3
+ import { A as writeWranglerPublishedTrafficSnapshot, O as updateWranglerCustomDomain, S as readWranglerPublishedTrafficSnapshot, b as readWranglerCustomDomains } from "./wrangler--imS8n0d.mjs";
4
+ import { r as scanWranglerDotenvKeys } from "./dotenv-VQxupEUv.mjs";
5
+ import { o as resolveWranglerArgv } from "./preset-lAy0B0BQ.mjs";
6
+ import { i as provisionEnv, o as resolvePinnedApiBaseUrl, r as deleteEnvVarCaseAware, t as assertNoTransportRedirectInProjectDotenv } from "./provision-Blnstcm2.mjs";
7
+ import { existsSync, mkdtempSync, readFileSync, rmSync, writeFileSync } from "node:fs";
8
+ import { tmpdir } from "node:os";
9
+ import { spawnSync } from "node:child_process";
10
+ import { deployCloudflareVersionTraffic, encodeCloudflareVersionMessage, parseCloudflareVersionMessage, parseRootWranglerConfig, readBindingFieldPresence, readCloudflareTriggerConfig, readWranglerTopLevelString, resolveD1MigrateTarget, stabilizeCloudflareVersionTriggers } from "@void/deploy-cloudflare";
11
+ //#region src/cli/cloudflare-operations.ts
12
+ var cloudflare_operations_exports = /* @__PURE__ */ __exportAll({
13
+ activateCloudflareExistingVersion: () => activateCloudflareExistingVersion,
14
+ applyCloudflareD1Migrations: () => applyCloudflareD1Migrations,
15
+ changeCloudflareDomain: () => changeCloudflareDomain,
16
+ createCloudflareEmptyDomainPublisher: () => createCloudflareEmptyDomainPublisher,
17
+ deleteCloudflareSecret: () => deleteCloudflareSecret,
18
+ executeCloudflareD1Sql: () => executeCloudflareD1Sql,
19
+ listCloudflareDomains: () => listCloudflareDomains,
20
+ listCloudflareSecrets: () => listCloudflareSecrets,
21
+ parseActiveVersionId: () => parseActiveVersionId,
22
+ parseCloudflareDeployedVersionIds: () => parseCloudflareDeployedVersionIds,
23
+ parseCloudflareVersions: () => parseCloudflareVersions,
24
+ publishEmptyCloudflareCustomDomainSet: () => publishEmptyCloudflareCustomDomainSet,
25
+ putCloudflareSecret: () => putCloudflareSecret,
26
+ readCloudflareD1Migrations: () => readCloudflareD1Migrations,
27
+ readCloudflareWorkerStatus: () => readCloudflareWorkerStatus,
28
+ resolveCloudflareD1Context: () => resolveCloudflareD1Context,
29
+ resolveCloudflareOperationContext: () => resolveCloudflareOperationContext,
30
+ syncCloudflareSecrets: () => syncCloudflareSecrets,
31
+ tailCloudflareWorker: () => tailCloudflareWorker
32
+ });
33
+ function resolveCloudflareOperationContext(root, runner) {
34
+ const configPath = discoverRootWranglerConfig(root);
35
+ if (!existsSync(configPath)) throw new Error(`No Cloudflare config found at "${configPath}". Run \`void init\` first.`);
36
+ assertNoOperationConfigOverride(root);
37
+ assertNoTransportRedirectInProjectDotenv(root);
38
+ const config = parseRootWranglerConfig(configPath);
39
+ const workerName = readWranglerTopLevelString(config, "name");
40
+ if (!workerName) throw new Error(`Cloudflare config "${configPath}" has no worker name. Run \`void init\` first.`);
41
+ const accountId = readWranglerTopLevelString(config, "account_id") ?? (process.env.CLOUDFLARE_ACCOUNT_ID?.trim() || void 0);
42
+ if (!accountId) throw new Error("No Cloudflare account is pinned. Set account_id in wrangler.jsonc or CLOUDFLARE_ACCOUNT_ID.");
43
+ const apiBaseUrl = resolvePinnedApiBaseUrl(process.env, readWranglerTopLevelString(config, "compliance_region"));
44
+ return {
45
+ accountId,
46
+ apiBaseUrl,
47
+ configPath,
48
+ workerName,
49
+ runWrangler: runner ?? createCloudflareOperationRunner(root, accountId, apiBaseUrl)
50
+ };
51
+ }
52
+ async function listCloudflareSecrets(context) {
53
+ const parsed = parseJson((await run(context, [
54
+ "secret",
55
+ "list",
56
+ ...targetArgs(context),
57
+ "--format",
58
+ "json"
59
+ ])).stdout, "Cloudflare secret list");
60
+ if (!Array.isArray(parsed)) throw new Error("Cloudflare secret list returned an unexpected response.");
61
+ return parsed.map((entry) => {
62
+ if (typeof entry !== "object" || entry === null) return null;
63
+ const value = entry;
64
+ return typeof value.name === "string" ? value.name : null;
65
+ }).filter((name) => name !== null).sort();
66
+ }
67
+ async function putCloudflareSecret(context, name, value) {
68
+ await run(context, [
69
+ "secret",
70
+ "put",
71
+ name,
72
+ ...targetArgs(context)
73
+ ], { input: value });
74
+ }
75
+ async function syncCloudflareSecrets(context, secrets) {
76
+ const values = Object.fromEntries(secrets.map(({ name, value }) => [name, value]));
77
+ await run(context, [
78
+ "secret",
79
+ "bulk",
80
+ ...targetArgs(context)
81
+ ], { input: `${JSON.stringify(values)}\n` });
82
+ }
83
+ async function deleteCloudflareSecret(context, name) {
84
+ await run(context, [
85
+ "secret",
86
+ "delete",
87
+ name,
88
+ ...targetArgs(context)
89
+ ]);
90
+ }
91
+ function resolveCloudflareD1Context(root, binding, runner) {
92
+ const operation = resolveCloudflareOperationContext(root, runner);
93
+ const config = parseRootWranglerConfig(operation.configPath);
94
+ const target = resolveD1MigrateTarget(config, binding);
95
+ if (!target.ok) throw new Error(`Cannot resolve D1 binding ${binding}: ${target.reason}.`);
96
+ const migrationsDir = readBindingFieldPresence(config, "d1_databases", binding, "migrations_dir");
97
+ const migrationsTable = readBindingFieldPresence(config, "d1_databases", binding, "migrations_table");
98
+ if (migrationsDir.present && (typeof migrationsDir.value !== "string" || migrationsDir.value.length === 0)) throw new Error(`D1 binding ${binding} has an invalid migrations_dir.`);
99
+ if (migrationsTable.present && (typeof migrationsTable.value !== "string" || migrationsTable.value.length === 0)) throw new Error(`D1 binding ${binding} has an invalid migrations_table.`);
100
+ return {
101
+ operation,
102
+ binding,
103
+ migrateToken: target.token,
104
+ migrationsDir: migrationsDir.present ? migrationsDir.value : "db/migrations",
105
+ migrationsTable: migrationsTable.present ? migrationsTable.value : "d1_migrations"
106
+ };
107
+ }
108
+ async function executeCloudflareD1Sql(context, sql) {
109
+ const parsed = parseJson((await run(context.operation, [
110
+ "d1",
111
+ "execute",
112
+ context.migrateToken,
113
+ "--remote",
114
+ "--command",
115
+ sql,
116
+ "--json",
117
+ "-c",
118
+ context.operation.configPath,
119
+ "--env="
120
+ ])).stdout, "Cloudflare D1 execute");
121
+ if (!Array.isArray(parsed)) throw new Error("Cloudflare D1 execute returned an unexpected response.");
122
+ const rows = [];
123
+ for (const item of parsed) {
124
+ if (typeof item !== "object" || item === null) throw new Error("Cloudflare D1 execute returned a malformed result.");
125
+ const resultRows = item.results;
126
+ if (!Array.isArray(resultRows)) continue;
127
+ for (const row of resultRows) if (typeof row === "object" && row !== null && !Array.isArray(row)) rows.push(row);
128
+ }
129
+ return rows;
130
+ }
131
+ async function readCloudflareD1Migrations(context) {
132
+ const table = context.migrationsTable.replace(/"/g, "\"\"");
133
+ try {
134
+ return (await executeCloudflareD1Sql(context, `SELECT name FROM "${table}" ORDER BY name`)).map((row) => typeof row.name === "string" ? row.name : null).filter((name) => name !== null);
135
+ } catch (error) {
136
+ if (/no such table/i.test(errorMessage(error))) return [];
137
+ throw error;
138
+ }
139
+ }
140
+ async function applyCloudflareD1Migrations(context) {
141
+ await run(context.operation, [
142
+ "d1",
143
+ "migrations",
144
+ "apply",
145
+ context.migrateToken,
146
+ "--remote",
147
+ "-c",
148
+ context.operation.configPath,
149
+ "--env="
150
+ ], { capture: false });
151
+ }
152
+ async function readCloudflareWorkerStatus(context) {
153
+ const [deployment, deployments, versions] = await Promise.all([
154
+ run(context, [
155
+ "deployments",
156
+ "status",
157
+ ...targetArgs(context),
158
+ "--json"
159
+ ]),
160
+ run(context, [
161
+ "deployments",
162
+ "list",
163
+ ...targetArgs(context),
164
+ "--json"
165
+ ]),
166
+ run(context, [
167
+ "versions",
168
+ "list",
169
+ ...targetArgs(context),
170
+ "--json"
171
+ ])
172
+ ]);
173
+ const activeVersionId = parseActiveVersionId(deployment.stdout);
174
+ const deployedVersionIds = parseCloudflareDeployedVersionIds(deployments.stdout);
175
+ if (activeVersionId && !deployedVersionIds.includes(activeVersionId)) deployedVersionIds.push(activeVersionId);
176
+ return {
177
+ workerName: context.workerName,
178
+ activeVersionId,
179
+ deployedVersionIds,
180
+ versions: parseCloudflareVersions(versions.stdout)
181
+ };
182
+ }
183
+ /** Return only versions that Cloudflare records as members of a production deployment. */
184
+ function parseCloudflareDeployedVersionIds(value) {
185
+ const parsed = parseJson(value, "Cloudflare deployment list");
186
+ if (!Array.isArray(parsed)) throw new Error("Cloudflare deployment list returned an unexpected response.");
187
+ const ids = /* @__PURE__ */ new Set();
188
+ parsed.forEach((deployment, deploymentIndex) => {
189
+ if (typeof deployment !== "object" || deployment === null || !Array.isArray(deployment.versions)) throw new Error(`Cloudflare deployment list entry ${deploymentIndex + 1} is malformed.`);
190
+ for (const version of deployment.versions) {
191
+ if (typeof version !== "object" || version === null || typeof version.version_id !== "string" || typeof version.percentage !== "number" || !Number.isFinite(version.percentage) || version.percentage < 0 || version.percentage > 100) throw new Error(`Cloudflare deployment list entry ${deploymentIndex + 1} is malformed.`);
192
+ if (version.percentage > 0) ids.add(version.version_id);
193
+ }
194
+ });
195
+ return [...ids];
196
+ }
197
+ function parseCloudflareVersions(value) {
198
+ const parsed = parseJson(value, "Cloudflare version list");
199
+ if (!Array.isArray(parsed)) throw new Error("Cloudflare version list returned an unexpected response.");
200
+ return parsed.map((entry, index) => {
201
+ if (typeof entry !== "object" || entry === null || typeof entry.id !== "string") throw new Error(`Cloudflare version list entry ${index + 1} is malformed.`);
202
+ const metadata = typeof entry.metadata === "object" && entry.metadata !== null ? entry.metadata : void 0;
203
+ const annotations = typeof entry.annotations === "object" && entry.annotations !== null ? entry.annotations : void 0;
204
+ const message = typeof annotations?.["workers/message"] === "string" ? annotations["workers/message"] : null;
205
+ return {
206
+ id: entry.id,
207
+ createdAt: typeof metadata?.created_on === "string" ? metadata.created_on : null,
208
+ message,
209
+ metadata: parseCloudflareVersionMessage(message)
210
+ };
211
+ });
212
+ }
213
+ function parseActiveVersionId(value) {
214
+ const parsed = parseJson(value, "Cloudflare deployment status");
215
+ if (typeof parsed !== "object" || parsed === null) throw new Error("Cloudflare deployment status returned an unexpected response.");
216
+ const deployment = parsed;
217
+ if (!Array.isArray(deployment.versions)) throw new Error("Cloudflare deployment status returned an unexpected response.");
218
+ const active = deployment.versions.find((entry) => typeof entry === "object" && entry !== null && Number(entry.percentage) === 100);
219
+ if (active === void 0) return null;
220
+ if (typeof active !== "object" || active === null || typeof active.version_id !== "string") throw new Error("Cloudflare deployment status has a malformed active version.");
221
+ return active.version_id;
222
+ }
223
+ async function activateCloudflareExistingVersion(context, target, current) {
224
+ if (target.metadata?.schema !== 2 || target.metadata.triggerConfig.preserve || !current || current.metadata?.schema !== 2 || current.metadata.triggerConfig.preserve) {
225
+ const owner = await readActiveCloudflareVersionId(context);
226
+ if (current && owner !== current.id) throw new Error("Cloudflare production changed before rollback. Refresh deployment status and retry.");
227
+ const result = await deployCloudflareVersionTraffic({
228
+ ...context,
229
+ percentages: [`${target.id}@100`],
230
+ message: "Void rollback preserving existing routes and triggers."
231
+ });
232
+ if (result.status !== 0 || result.signal || result.error) throw new Error("Cloudflare could not complete rollback. Refresh deployment status before retrying.");
233
+ if (await readActiveCloudflareVersionId(context) !== target.id) throw new Error("Cloudflare rollback was superseded or could not be verified. Refresh deployment status.");
234
+ return;
235
+ }
236
+ const targetTriggerConfig = target.metadata.triggerConfig;
237
+ const publishedTraffic = readWranglerPublishedTrafficSnapshot(context.configPath);
238
+ const currentTriggerConfig = current?.metadata?.schema === 2 ? publishedTraffic ? {
239
+ ...current.metadata.triggerConfig,
240
+ ...publishedTraffic
241
+ } : current.metadata.triggerConfig : void 0;
242
+ const message = encodeCloudflareVersionMessage(target.metadata.migrations, targetTriggerConfig);
243
+ const expectedVersionId = current?.id ?? await readActiveCloudflareVersionId(context);
244
+ const ownerBeforeActivation = await readActiveCloudflareVersionId(context);
245
+ if (ownerBeforeActivation !== expectedVersionId) throw new Error(`Cloudflare production changed from ${expectedVersionId ?? "no active version"} to ${ownerBeforeActivation ?? "no active version"} before rollback activation. Retry from fresh deployment status.`);
246
+ await run(context, [
247
+ "versions",
248
+ "deploy",
249
+ `${target.id}@100`,
250
+ ...targetArgs(context),
251
+ "--message",
252
+ message,
253
+ "--yes"
254
+ ], { capture: false });
255
+ const knownTriggerConfigs = { [target.id]: targetTriggerConfig };
256
+ if (currentTriggerConfig && current) knownTriggerConfigs[current.id] = currentTriggerConfig;
257
+ const triggers = await stabilizeCloudflareVersionTriggers({
258
+ runWrangler: context.runWrangler,
259
+ workerName: context.workerName,
260
+ configPath: context.configPath,
261
+ targetVersionId: target.id,
262
+ targetTriggerConfig,
263
+ previousTriggerConfig: currentTriggerConfig,
264
+ knownTriggerConfigs,
265
+ publishEmptyCustomDomains: createCloudflareEmptyDomainPublisher(context)
266
+ });
267
+ if (triggers.ok && triggers.targetOwnsTraffic) {
268
+ writeWranglerPublishedTrafficSnapshot(context.configPath, {
269
+ workers_dev: targetTriggerConfig.workers_dev,
270
+ preview_urls: targetTriggerConfig.preview_urls,
271
+ routes: [...targetTriggerConfig.routes]
272
+ });
273
+ return;
274
+ }
275
+ if (triggers.ok) throw new Error(`Cloudflare rollback to ${target.id} was superseded by ${triggers.activeVersionId}; Void restored the active version's triggers. Refresh deployment status before retrying.`);
276
+ if (triggers.activeVersionId && triggers.activeVersionId !== target.id) throw new Error(`Cloudflare rollback to ${target.id} was superseded by ${triggers.activeVersionId}, but Void could not restore that version's triggers (${triggers.reason}). Inspect the Worker immediately.`);
277
+ if (!triggers.activeVersionId) throw new Error(`Cloudflare activated ${target.id}, but Void could not verify which version owns production while synchronizing triggers (${triggers.reason}). Inspect the Worker immediately.`);
278
+ if (!currentTriggerConfig || !current) throw new Error(`Cloudflare activated version ${target.id}, but trigger synchronization failed and no prior trigger snapshot was available. Inspect the Worker immediately.`);
279
+ const ownerBeforeCompensation = await readActiveCloudflareVersionId(context);
280
+ if (ownerBeforeCompensation !== target.id) {
281
+ const repair = await stabilizeCloudflareVersionTriggers({
282
+ runWrangler: context.runWrangler,
283
+ workerName: context.workerName,
284
+ configPath: context.configPath,
285
+ targetVersionId: target.id,
286
+ targetTriggerConfig,
287
+ previousTriggerConfig: currentTriggerConfig,
288
+ knownTriggerConfigs,
289
+ publishEmptyCustomDomains: createCloudflareEmptyDomainPublisher(context)
290
+ });
291
+ throw new Error(repair.ok ? `Cloudflare rollback to ${target.id} was superseded by ${repair.activeVersionId}; Void restored the active version's triggers. Refresh deployment status before retrying.` : `Cloudflare rollback to ${target.id} was superseded by ${ownerBeforeCompensation ?? "an unknown version"}, but Void could not restore the active triggers (${repair.reason}). Inspect the Worker immediately.`);
292
+ }
293
+ let recoveryFailure = null;
294
+ try {
295
+ await run(context, [
296
+ "versions",
297
+ "deploy",
298
+ `${current.id}@100`,
299
+ ...targetArgs(context),
300
+ "--message",
301
+ `Void automatic rollback after trigger synchronization failed.`,
302
+ "--yes"
303
+ ], { capture: false });
304
+ const restoredTriggers = await stabilizeCloudflareVersionTriggers({
305
+ runWrangler: context.runWrangler,
306
+ workerName: context.workerName,
307
+ configPath: context.configPath,
308
+ targetVersionId: current.id,
309
+ targetTriggerConfig: currentTriggerConfig,
310
+ previousTriggerConfig: targetTriggerConfig,
311
+ knownTriggerConfigs,
312
+ publishEmptyCustomDomains: createCloudflareEmptyDomainPublisher(context)
313
+ });
314
+ if (!restoredTriggers.ok) recoveryFailure = "previous trigger synchronization failed";
315
+ else if (!restoredTriggers.targetOwnsTraffic) recoveryFailure = `recovery was superseded by ${restoredTriggers.activeVersionId}`;
316
+ else writeWranglerPublishedTrafficSnapshot(context.configPath, {
317
+ workers_dev: currentTriggerConfig.workers_dev,
318
+ preview_urls: currentTriggerConfig.preview_urls,
319
+ routes: [...currentTriggerConfig.routes]
320
+ });
321
+ } catch (error) {
322
+ recoveryFailure = errorMessage(error);
323
+ }
324
+ throw new Error(recoveryFailure ? `Cloudflare trigger synchronization failed after activating ${target.id}, and automatic recovery also failed: ${recoveryFailure}` : `Cloudflare trigger synchronization failed after activating ${target.id}; traffic and triggers were restored to ${current.id}.`);
325
+ }
326
+ async function readActiveCloudflareVersionId(context) {
327
+ return parseActiveVersionId((await run(context, [
328
+ "deployments",
329
+ "status",
330
+ ...targetArgs(context),
331
+ "--json"
332
+ ])).stdout);
333
+ }
334
+ async function tailCloudflareWorker(context, options) {
335
+ const args = [
336
+ "tail",
337
+ context.workerName,
338
+ "-c",
339
+ context.configPath,
340
+ "--env=",
341
+ "--format",
342
+ "pretty"
343
+ ];
344
+ if (options.filter) args.push("--search", options.filter);
345
+ if (options.versionId) args.push("--version-id", options.versionId);
346
+ if (options.status) args.push("--status", options.status);
347
+ await run(context, args, { capture: false });
348
+ }
349
+ function listCloudflareDomains(root) {
350
+ return readWranglerCustomDomains(root).domains;
351
+ }
352
+ async function changeCloudflareDomain(root, hostname, action, runner, emptyDomainPublisher) {
353
+ const context = resolveCloudflareOperationContext(root, runner);
354
+ const before = readWranglerCustomDomains(root);
355
+ const original = readFileSync(before.configPath, "utf-8");
356
+ const update = updateWranglerCustomDomain(root, hostname, action);
357
+ if (!update.modified) return update;
358
+ if (update.domains.length === 0 && !emptyDomainPublisher && !resolveCloudflareApiToken()) {
359
+ writeFileSync(before.configPath, original);
360
+ throw new Error("Deleting the final Cloudflare custom domain requires CLOUDFLARE_API_TOKEN because Wrangler cannot reconcile an empty custom-domain set. Export a scoped token with Workers Scripts: Edit permission and retry. No local or remote state changed.");
361
+ }
362
+ const triggerConfigDir = mkdtempSync(join(tmpdir(), "void-domain-triggers-"));
363
+ const triggerConfigPath = join(triggerConfigDir, "wrangler.json");
364
+ const deployRoutes = async () => {
365
+ if (readWranglerCustomDomains(root).domains.length === 0) {
366
+ await (emptyDomainPublisher ?? publishEmptyCloudflareCustomDomainSet)(context);
367
+ return;
368
+ }
369
+ writeDomainTriggerConfig(context, before.configPath, triggerConfigPath);
370
+ await run(context, [
371
+ "triggers",
372
+ "deploy",
373
+ "-c",
374
+ triggerConfigPath,
375
+ "--env=",
376
+ "--name",
377
+ context.workerName
378
+ ], { capture: false });
379
+ };
380
+ try {
381
+ await deployRoutes();
382
+ } catch (error) {
383
+ writeFileSync(before.configPath, original);
384
+ try {
385
+ await deployRoutes();
386
+ } catch (restoreError) {
387
+ throw new Error(`Cloudflare rejected the domain trigger update and also rejected the automatic remote restore. The local Wrangler config was restored, but remote route state may be partially applied. ${errorMessage(error)} Restore failed: ${errorMessage(restoreError)}`);
388
+ }
389
+ throw new Error(`Cloudflare rejected the domain trigger update; both the local config and remote triggers were restored. ${errorMessage(error)}`);
390
+ } finally {
391
+ rmSync(triggerConfigDir, {
392
+ recursive: true,
393
+ force: true
394
+ });
395
+ }
396
+ const publishedTraffic = readCloudflareTriggerConfig(before.configPath);
397
+ writeWranglerPublishedTrafficSnapshot(before.configPath, {
398
+ workers_dev: publishedTraffic.workers_dev,
399
+ preview_urls: publishedTraffic.preview_urls,
400
+ routes: [...publishedTraffic.routes]
401
+ });
402
+ return update;
403
+ }
404
+ /**
405
+ * Reconcile an empty Custom Domain set through the API Wrangler itself uses.
406
+ * Wrangler 4.130 skips `publishCustomDomains()` when its configured set is
407
+ * empty, so `triggers deploy` exits successfully without removing the final
408
+ * domain. Direct API access is deliberately limited to an explicit API token;
409
+ * OAuth credential storage is Wrangler-private and must not be scraped.
410
+ */
411
+ async function publishEmptyCloudflareCustomDomainSet(context) {
412
+ const token = resolveCloudflareApiToken();
413
+ if (!token) throw new Error("CLOUDFLARE_API_TOKEN is required to restore an empty custom-domain set after Wrangler failed.");
414
+ const response = await fetch(`${context.apiBaseUrl}/accounts/${context.accountId}/workers/scripts/${context.workerName}/domains/records`, {
415
+ method: "PUT",
416
+ headers: {
417
+ Authorization: `Bearer ${token}`,
418
+ "Content-Type": "application/json"
419
+ },
420
+ body: JSON.stringify({
421
+ override_scope: true,
422
+ override_existing_origin: false,
423
+ override_existing_dns_record: false,
424
+ origins: []
425
+ }),
426
+ redirect: "error",
427
+ signal: AbortSignal.timeout(3e4)
428
+ });
429
+ let body;
430
+ try {
431
+ body = await response.json();
432
+ } catch {
433
+ throw new Error(`Cloudflare returned HTTP ${response.status} with a non-JSON custom-domain response.`);
434
+ }
435
+ if (!response.ok || typeof body !== "object" || body === null || body.success !== true) throw new Error(`Cloudflare rejected the empty custom-domain set (HTTP ${response.status}).`);
436
+ }
437
+ /** Adapt the direct empty-domain API call to the deployment package's result contract. */
438
+ function createCloudflareEmptyDomainPublisher(context) {
439
+ return async () => {
440
+ try {
441
+ await publishEmptyCloudflareCustomDomainSet(context);
442
+ return {
443
+ status: 0,
444
+ stdout: "",
445
+ stderr: ""
446
+ };
447
+ } catch (error) {
448
+ return {
449
+ status: 1,
450
+ stdout: "",
451
+ stderr: errorMessage(error),
452
+ error: errorMessage(error)
453
+ };
454
+ }
455
+ };
456
+ }
457
+ function resolveCloudflareApiToken() {
458
+ return process.env.CLOUDFLARE_API_TOKEN || process.env.CF_API_TOKEN || void 0;
459
+ }
460
+ /**
461
+ * Build a route-only Wrangler config for a domain update. `triggers deploy`
462
+ * also reconciles cron, queue-consumer, and workflow triggers found in its
463
+ * config, so using the root config here could drop generated schedules or
464
+ * replay stale consumers. The isolated config carries only the route surface
465
+ * this command owns and the workers.dev switches that route reconciliation
466
+ * also evaluates.
467
+ */
468
+ function writeDomainTriggerConfig(context, sourceConfigPath, triggerConfigPath) {
469
+ const source = parseRootWranglerConfig(sourceConfigPath);
470
+ const config = {
471
+ name: context.workerName,
472
+ account_id: context.accountId,
473
+ routes: Array.isArray(source.routes) ? source.routes : []
474
+ };
475
+ for (const field of ["workers_dev", "preview_urls"]) if (typeof source[field] === "boolean") config[field] = source[field];
476
+ const compatibilityDate = readWranglerTopLevelString(source, "compatibility_date");
477
+ if (compatibilityDate) config.compatibility_date = compatibilityDate;
478
+ writeFileSync(triggerConfigPath, `${JSON.stringify(config, null, 2)}\n`);
479
+ }
480
+ function targetArgs(context) {
481
+ return [
482
+ "-c",
483
+ context.configPath,
484
+ "--env=",
485
+ "--name",
486
+ context.workerName
487
+ ];
488
+ }
489
+ async function run(context, args, options) {
490
+ const result = await Promise.resolve(context.runWrangler(args, {
491
+ capture: options?.capture ?? true,
492
+ input: options?.input
493
+ }));
494
+ if (result.status !== 0 || result.signal != null || result.error !== void 0 && result.error !== null && result.error !== "") {
495
+ const detail = result.stderr.trim() || result.stdout.trim() || result.error || "unknown error";
496
+ throw new Error(`Wrangler failed (${args.slice(0, 2).join(" ")}, exit ${result.status}): ${detail}`);
497
+ }
498
+ return result;
499
+ }
500
+ function createCloudflareOperationRunner(root, accountId, apiBaseUrl) {
501
+ const [command, ...prefix] = resolveWranglerArgv(root);
502
+ return (args, options) => {
503
+ const env = provisionEnv({
504
+ accountId,
505
+ apiBaseUrl
506
+ });
507
+ deleteEnvVarCaseAware(env, "WRANGLER_CI_OVERRIDE_NAME");
508
+ if (!options.capture) env.WRANGLER_LOG = "none";
509
+ const result = spawnSync(command, [...prefix, ...args], {
510
+ cwd: root,
511
+ env,
512
+ shell: false,
513
+ windowsHide: true,
514
+ encoding: "utf-8",
515
+ input: options.input,
516
+ stdio: options.input !== void 0 ? [
517
+ "pipe",
518
+ options.capture ? "pipe" : "inherit",
519
+ options.capture ? "pipe" : "inherit"
520
+ ] : options.capture ? [
521
+ "ignore",
522
+ "pipe",
523
+ "pipe"
524
+ ] : "inherit"
525
+ });
526
+ return {
527
+ status: typeof result.status === "number" ? result.status : 1,
528
+ stdout: result.stdout ?? "",
529
+ stderr: result.stderr ?? "",
530
+ signal: result.signal ?? null,
531
+ error: result.error?.message ?? null
532
+ };
533
+ };
534
+ }
535
+ function discoverRootWranglerConfig(root) {
536
+ for (const name of ["wrangler.jsonc", "wrangler.json"]) {
537
+ const path = join(root, name);
538
+ if (existsSync(path)) return path;
539
+ }
540
+ return join(root, "wrangler.jsonc");
541
+ }
542
+ function assertNoOperationConfigOverride(root) {
543
+ if (process.env.CLOUDFLARE_ENV?.trim()) throw new Error("CLOUDFLARE_ENV is set. Void Cloudflare operations target the top-level config only.");
544
+ if (process.env.CLOUDFLARE_VITE_WRANGLER_CONFIG_PATH?.trim()) throw new Error("CLOUDFLARE_VITE_WRANGLER_CONFIG_PATH is set. Void Cloudflare operations use the root Wrangler config only.");
545
+ for (const file of [
546
+ ".env",
547
+ ".env.local",
548
+ ".env.",
549
+ ".env..local"
550
+ ]) {
551
+ const keys = scanWranglerDotenvKeys(join(root, file));
552
+ if (process.platform === "win32" ? [...keys].some((key) => key.toLowerCase() === "wrangler_ci_override_name") : keys.has("WRANGLER_CI_OVERRIDE_NAME")) throw new Error(`Project file "${file}" sets WRANGLER_CI_OVERRIDE_NAME, which can replace the pinned Worker name. Remove it before running this command.`);
553
+ }
554
+ }
555
+ function parseJson(value, label) {
556
+ try {
557
+ return JSON.parse(value);
558
+ } catch {
559
+ throw new Error(`${label} did not return valid JSON.`);
560
+ }
561
+ }
562
+ function errorMessage(error) {
563
+ return error instanceof Error ? error.message : String(error);
564
+ }
565
+ //#endregion
566
+ export { createCloudflareEmptyDomainPublisher as n, cloudflare_operations_exports as t };