void 0.10.13 → 0.20.1

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 (432) 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-CAH62yDU.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-CJvZvPQO.mjs} +6 -4
  11. package/dist/{cache-C11V8Fxq.mjs → cache-BlNeQjuP.mjs} +9 -5
  12. package/dist/{cancel-deploy-fwFYF04b.mjs → cancel-deploy-CmlAZ9P6.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 +1735 -165
  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-Clirrol3.mjs} +120 -463
  20. package/dist/cloudflare-auth-B1QtTO1b.mjs +217 -0
  21. package/dist/cloudflare-cmd-B6_OZx2V.mjs +62 -0
  22. package/dist/cloudflare-connect-j5D4hhrG.mjs +56 -0
  23. package/dist/cloudflare-operations-CPTpRW6d.mjs +566 -0
  24. package/dist/{config-qHGgPuWT.mjs → config-BQFq7QvD.mjs} +75 -41
  25. package/dist/{config-CutEMNGJ.mjs → config-NOG_U1aK.mjs} +10 -15
  26. package/dist/connect-C04Wdy_h.mjs +79 -0
  27. package/dist/{create-project-DsYvl3TB.mjs → create-project-ChGZ1DFd.mjs} +26 -16
  28. package/dist/database-provider.d.mts +21 -0
  29. package/dist/database-provider.mjs +6 -0
  30. package/dist/{db-C0i0sYMS.mjs → db-D2d_mUsB.mjs} +612 -117
  31. package/dist/{delete-mh6p-zkQ.mjs → delete-D8GigDk8.mjs} +9 -6
  32. package/dist/{deploy-jBJT1fUT.mjs → deploy-iXZ3F0N6.mjs} +3252 -1995
  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-B1VmoSr0.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-uKyQYUVY.mjs +1016 -0
  44. package/dist/{entry-D7yy4xVH.mjs → entry-DU3oDoQ3.mjs} +2 -2
  45. package/dist/env-BcQzYgoG.mjs +73 -0
  46. package/dist/env-D4Emu-M_.mjs +95 -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-BzXf3Jh2.mjs → gen-DI2YwdBM.mjs} +70 -15
  52. package/dist/generate-RTK8_kK1.mjs +47 -0
  53. package/dist/{github-cmd-DKcGUNsj.mjs → github-cmd-xItS5Zwf.mjs} +39 -31
  54. package/dist/{handler-Cjh8uM3Y.d.mts → handler-D1hLsObx.d.mts} +124 -122
  55. package/dist/{head-nmvOgFjd.d.mts → head-Do8P4puT.d.mts} +9 -8
  56. package/dist/{headers-ChAADPQu.mjs → headers-D8QfRX9Y.mjs} +12 -10
  57. package/dist/inbound-2d0zi2yS.mjs +706 -0
  58. package/dist/inbound-afAcWeQ9.d.mts +363 -0
  59. package/dist/index.d.mts +61 -34
  60. package/dist/index.mjs +1012 -293
  61. package/dist/{init-7JCAcKNQ.mjs → init-BD-9THgn.mjs} +329 -271
  62. package/dist/link-RMdgjF1v.mjs +52 -0
  63. package/dist/{list-CPwFDZ_c.mjs → list-3F52R_yO.mjs} +37 -5
  64. package/dist/{runner-kapo9aPs.mjs → local-d1-D2I6Ox5F.mjs} +116 -6
  65. package/dist/{login-BT3H8PN3.mjs → login-pV69H-ZO.mjs} +17 -15
  66. package/dist/{logs-Bt313ax7.mjs → logs-DFHHD6wE.mjs} +16 -2
  67. package/dist/mime-BJD7d_qL.mjs +1216 -0
  68. package/dist/neon-DHwd2zvC.mjs +54 -0
  69. package/dist/{node-pRg81HqV.mjs → node-Dk3H2jmU.mjs} +29 -8
  70. package/dist/operator-cmd-DYWRbWUA.mjs +348 -0
  71. package/dist/{agents-CtgBYqld.mjs → output-tFQLLj26.mjs} +676 -211
  72. package/dist/{package-json-Cx1osYo6.mjs → package-json-CPoWX79C.mjs} +1 -1
  73. package/dist/pages/client.d.mts +43 -41
  74. package/dist/pages/client.mjs +40 -33
  75. package/dist/pages/head-client.d.mts +10 -12
  76. package/dist/pages/head.d.mts +1 -1
  77. package/dist/pages/index.d.mts +37 -14
  78. package/dist/pages/index.mjs +5 -5
  79. package/dist/pages/islands-plugin.d.mts +25 -27
  80. package/dist/pages/islands-plugin.mjs +6 -4
  81. package/dist/pages/prefetch.d.mts +6 -7
  82. package/dist/pages/protocol.d.mts +2 -2
  83. package/dist/pages/protocol.mjs +2 -1
  84. package/dist/pages/serialize.d.mts +7 -8
  85. package/dist/platform-cmd-DxJ2FRwR.mjs +123 -0
  86. package/dist/platform-domain-ChvbJkdy.mjs +228 -0
  87. package/dist/platform-lifecycle-DN4MzJF_.mjs +4450 -0
  88. package/dist/platform-management-Db2PXw0B.mjs +698 -0
  89. package/dist/platform-recovery-C_YO-tIs.mjs +99 -0
  90. package/dist/{plugin-inference-DMeavIJ6.mjs → plugin-inference-BDRfZngg.mjs} +35 -19
  91. package/dist/prepare-BfJvFUtJ.mjs +14 -0
  92. package/dist/{prepare-BvvgAz-3.mjs → prepare-CBetXvsN.mjs} +15 -24
  93. package/dist/{preset-BjyR3lzz.mjs → preset-lAy0B0BQ.mjs} +25 -212
  94. package/dist/{project-cmd-D_w-4w5B.mjs → project-cmd-Mo0V9yKS.mjs} +25 -12
  95. package/dist/{project-paths-BQd7OmIo.mjs → project-paths-SK8nMHPp.mjs} +3 -1
  96. package/dist/{project-tsconfig-B-QtXjLQ.mjs → project-tsconfig-Ql2XsSQp.mjs} +2 -2
  97. package/dist/{protocol-Bnb0LFp3.d.mts → protocol-C-pqYJjE.d.mts} +3 -4
  98. package/dist/{provision-CPx2ZxsH.mjs → provision-Blnstcm2.mjs} +78 -45
  99. package/dist/r2-conditions-D1Wk8i7b.mjs +30 -0
  100. package/dist/{requests-B8sZxaFM.mjs → requests-BcKOVpRg.mjs} +5 -3
  101. package/dist/{resolve-project-BBMtLLV9.mjs → resolve-project--Vxawf7z.mjs} +2 -2
  102. package/dist/rollback-Bx85-0xh.mjs +166 -0
  103. package/dist/{rolldown-runtime-DJK8HYOj.mjs → rolldown-runtime-rQ84J-ij.mjs} +1 -1
  104. package/dist/{route-types-z1jtHEi_.mjs → route-types-Da-DpyUp.mjs} +77 -25
  105. package/dist/routes-stub.d.mts +22 -23
  106. package/dist/runner-mysql-7BPUNGmL.mjs +61 -0
  107. package/dist/{runner-pg-CHM76xuC.mjs → runner-pg-BkEza-dX.mjs} +18 -6
  108. package/dist/runtime/ai.d.mts +21 -14
  109. package/dist/runtime/ai.mjs +5 -4
  110. package/dist/runtime/auth-client-react.d.mts +3 -5
  111. package/dist/runtime/auth-client-solid.d.mts +3 -5
  112. package/dist/runtime/auth-client-svelte.d.mts +3 -5
  113. package/dist/runtime/auth-client-vue.d.mts +3 -5
  114. package/dist/runtime/auth-client.d.mts +3 -5
  115. package/dist/runtime/auth.d.mts +1 -1
  116. package/dist/runtime/better-auth-mysql.d.mts +10 -0
  117. package/dist/runtime/better-auth-mysql.mjs +49 -0
  118. package/dist/runtime/better-auth-pg.d.mts +8 -9
  119. package/dist/runtime/better-auth-pg.mjs +2 -2
  120. package/dist/runtime/better-auth.d.mts +8 -9
  121. package/dist/runtime/better-auth.mjs +2 -2
  122. package/dist/runtime/client-react.d.mts +1 -1
  123. package/dist/runtime/client-solid.d.mts +1 -1
  124. package/dist/runtime/client-svelte.d.mts +1 -1
  125. package/dist/runtime/client-vue.d.mts +1 -1
  126. package/dist/runtime/client.d.mts +1 -1
  127. package/dist/runtime/db-mysql.d.mts +2 -0
  128. package/dist/runtime/db-mysql.mjs +1 -0
  129. package/dist/runtime/db.d.mts +10 -11
  130. package/dist/runtime/durable.d.mts +47 -0
  131. package/dist/runtime/durable.mjs +146 -0
  132. package/dist/runtime/email/testing.d.mts +112 -0
  133. package/dist/runtime/email/testing.mjs +283 -0
  134. package/dist/runtime/email.d.mts +30 -0
  135. package/dist/runtime/email.mjs +573 -0
  136. package/dist/runtime/env-helpers.d.mts +2 -2
  137. package/dist/runtime/env-helpers.mjs +5 -42
  138. package/dist/runtime/env-public-client.d.mts +10 -11
  139. package/dist/runtime/env-public-client.mjs +1 -1
  140. package/dist/runtime/env-public.d.mts +2 -2
  141. package/dist/runtime/env-public.mjs +104 -49
  142. package/dist/runtime/env.d.mts +19 -18
  143. package/dist/runtime/env.mjs +15 -2
  144. package/dist/runtime/fetch-stream.d.mts +20 -21
  145. package/dist/runtime/fetch.d.mts +15 -16
  146. package/dist/runtime/handler.d.mts +1 -1
  147. package/dist/runtime/isr.d.mts +21 -22
  148. package/dist/runtime/isr.mjs +26 -8
  149. package/dist/runtime/kv.d.mts +9 -10
  150. package/dist/runtime/live-client.d.mts +5 -7
  151. package/dist/runtime/live-client.mjs +9 -7
  152. package/dist/runtime/live-server.d.mts +4 -5
  153. package/dist/runtime/live.d.mts +22 -24
  154. package/dist/runtime/live.mjs +1 -1
  155. package/dist/runtime/log.d.mts +16 -17
  156. package/dist/runtime/migration-handler-mysql.d.mts +4 -0
  157. package/dist/runtime/migration-handler-mysql.mjs +81 -0
  158. package/dist/runtime/migration-handler-pg.d.mts +2 -4
  159. package/dist/runtime/migration-handler.d.mts +5 -6
  160. package/dist/runtime/migration-handler.mjs +4 -3
  161. package/dist/runtime/queues.d.mts +3 -4
  162. package/dist/runtime/queues.mjs +2 -1
  163. package/dist/runtime/remote/binding-handler.d.mts +10 -12
  164. package/dist/runtime/remote/binding-handler.mjs +24 -3
  165. package/dist/runtime/remote/index.d.mts +5 -6
  166. package/dist/runtime/remote/index.mjs +21 -18
  167. package/dist/runtime/response.d.mts +10 -11
  168. package/dist/runtime/sandbox.d.mts +56 -55
  169. package/dist/runtime/sandbox.mjs +57 -49
  170. package/dist/runtime/schema-mysql.d.mts +1 -0
  171. package/dist/runtime/schema-mysql.mjs +2 -0
  172. package/dist/runtime/seed.d.mts +14 -9
  173. package/dist/runtime/sse-client.d.mts +6 -7
  174. package/dist/runtime/sse.d.mts +11 -12
  175. package/dist/runtime/storage.d.mts +3 -4
  176. package/dist/runtime/validator.d.mts +1 -1
  177. package/dist/runtime/ws-server.d.mts +12 -12
  178. package/dist/runtime/ws-server.mjs +32 -4
  179. package/dist/runtime/ws.d.mts +19 -21
  180. package/dist/{scan-ChWt4pX1.mjs → scan-BMH4rzlv.mjs} +42 -19
  181. package/dist/{scan-NU4xKGci.mjs → scan-CpK-57ug.mjs} +5 -4
  182. package/dist/{secret-Dt32J6RI.mjs → secret-ByhJ9AMl.mjs} +62 -5
  183. package/dist/{skills-CLjN0uUO.mjs → skills-Q46GZMO-.mjs} +6 -4
  184. package/dist/sqlite-validation-BzKMWnO4.mjs +25 -0
  185. package/dist/{standard-schema-DJ0HW7QP.d.mts → standard-schema-Fo_vCAZh.d.mts} +6 -6
  186. package/dist/{subcommand-prompt-BzV8iQZo.mjs → subcommand-prompt-WfySCQ7S.mjs} +67 -48
  187. package/dist/sveltekit.d.mts +12 -11
  188. package/dist/sveltekit.mjs +1 -1
  189. package/dist/types-BAp5AEBU.d.mts +79 -0
  190. package/dist/types-CKWnYgfy.d.mts +1 -0
  191. package/dist/{validate-Cw_RLeTj.mjs → validate-tBBN_dXH.mjs} +4 -3
  192. package/dist/wrangler--imS8n0d.mjs +1796 -0
  193. package/dist/{yarn-pnp-DJn3SAHF.mjs → yarn-pnp-DxSInkzL.mjs} +1 -1
  194. package/package.json +79 -65
  195. package/schema.json +22 -3
  196. package/skills/void/SKILL.md +59 -2
  197. package/skills/void/docs/guide/ai.md +32 -14
  198. package/skills/void/docs/guide/app-types.md +6 -6
  199. package/skills/void/docs/guide/auth.md +14 -16
  200. package/skills/void/docs/guide/database/d1.md +6 -0
  201. package/skills/void/docs/guide/database/mysql.md +60 -0
  202. package/skills/void/docs/guide/database/postgresql.md +14 -9
  203. package/skills/void/docs/guide/database.md +39 -26
  204. package/skills/void/docs/guide/deployment.md +99 -25
  205. package/skills/void/docs/guide/durable-state.md +140 -0
  206. package/skills/void/docs/guide/edge/headers.md +5 -5
  207. package/skills/void/docs/guide/edge/prerendering.md +2 -0
  208. package/skills/void/docs/guide/edge/revalidation.md +21 -6
  209. package/skills/void/docs/guide/edge/rewrites.md +18 -14
  210. package/skills/void/docs/guide/edge/static-assets.md +12 -10
  211. package/skills/void/docs/guide/email.md +640 -0
  212. package/skills/void/docs/guide/env-migration.md +109 -0
  213. package/skills/void/docs/guide/env-vars.md +70 -248
  214. package/skills/void/docs/guide/index.md +15 -17
  215. package/skills/void/docs/guide/jobs.md +8 -5
  216. package/skills/void/docs/guide/live.md +7 -15
  217. package/skills/void/docs/guide/pages-routing/actions-and-forms.md +8 -4
  218. package/skills/void/docs/guide/pages-routing/islands.md +3 -3
  219. package/skills/void/docs/guide/pages-routing/loaders.md +6 -4
  220. package/skills/void/docs/guide/pages-routing/overview.md +7 -7
  221. package/skills/void/docs/guide/platform-administration.md +212 -0
  222. package/skills/void/docs/guide/platform-development.md +264 -0
  223. package/skills/void/docs/guide/queues.md +10 -10
  224. package/skills/void/docs/guide/quickstart.md +46 -67
  225. package/skills/void/docs/guide/remote-dev.md +8 -6
  226. package/skills/void/docs/guide/sandboxes.md +33 -16
  227. package/skills/void/docs/guide/self-hosted-platform.md +553 -0
  228. package/skills/void/docs/guide/server-routing.md +5 -5
  229. package/skills/void/docs/guide/sse.md +4 -4
  230. package/skills/void/docs/guide/ssg.md +5 -3
  231. package/skills/void/docs/guide/storage.md +2 -2
  232. package/skills/void/docs/guide/websockets.md +15 -7
  233. package/skills/void/docs/index.md +3 -3
  234. package/skills/void/docs/integrations/agents.md +6 -64
  235. package/skills/void/docs/integrations/cloudflare.md +165 -146
  236. package/skills/void/docs/integrations/frameworks/analog.md +4 -4
  237. package/skills/void/docs/integrations/frameworks/astro.md +5 -5
  238. package/skills/void/docs/integrations/frameworks/nuxt.md +5 -5
  239. package/skills/void/docs/integrations/frameworks/overview.md +3 -3
  240. package/skills/void/docs/integrations/frameworks/react-router.md +3 -3
  241. package/skills/void/docs/integrations/frameworks/sveltekit.md +3 -3
  242. package/skills/void/docs/integrations/frameworks/tanstack-start.md +2 -2
  243. package/skills/void/docs/integrations/nodejs-bun-deno.md +11 -4
  244. package/skills/void/docs/reference/api.md +42 -6
  245. package/skills/void/docs/reference/cli.md +665 -160
  246. package/skills/void/docs/reference/config.md +67 -27
  247. package/skills/void/docs/reference/resource-inference.md +13 -9
  248. package/skills/void/docs/reference/structure.md +9 -11
  249. package/AGENT_PROMPT.md +0 -19
  250. package/dist/cf-access-Bqw81xAf.mjs +0 -22
  251. package/dist/env-CZy5MorI.mjs +0 -299
  252. package/dist/env-helpers-z4stu8uc.d.mts +0 -52
  253. package/dist/env-mask-Dd47NbR6.mjs +0 -90
  254. package/dist/env-public-BfiLcMBk.d.mts +0 -140
  255. package/dist/link-CdGHSIy-.mjs +0 -45
  256. package/dist/mcp-DoM3_nhd.mjs +0 -377
  257. package/dist/project-paths-GpziKeQQ.d.mts +0 -25
  258. package/dist/providers-BNKRacMr.d.mts +0 -7
  259. package/dist/proxy-D-3_D-Gl.mjs +0 -5
  260. package/dist/rollback-CkvTFXx5.mjs +0 -90
  261. package/dist/runtime/isr-cache.d.mts +0 -207
  262. package/dist/runtime/isr-cache.mjs +0 -523
  263. package/dist/types-lLjNE9Qp.d.mts +0 -51
  264. package/getting-started-prompt.txt +0 -28
  265. package/skills/void/command/void.md +0 -7
  266. package/skills/void/docs/integrations/auth-providers.md +0 -0
  267. package/skills/void/docs/integrations/payment-processors.md +0 -0
  268. package/skills/void/docs/node_modules/@iconify/vue/README.md +0 -408
  269. package/skills/void/docs/node_modules/@iconify/vue/offline/readme.md +0 -5
  270. package/skills/void/docs/node_modules/@voidzero-dev/vitepress-theme/README.md +0 -103
  271. package/skills/void/docs/node_modules/oxc-minify/README.md +0 -78
  272. package/skills/void/docs/node_modules/reka-ui/README.md +0 -80
  273. package/skills/void/docs/node_modules/vitepress/README.md +0 -28
  274. package/skills/void/docs/node_modules/vitepress/template/api-examples.md +0 -49
  275. package/skills/void/docs/node_modules/vitepress/template/index.md +0 -28
  276. package/skills/void/docs/node_modules/vitepress/template/markdown-examples.md +0 -85
  277. package/skills/void/docs/node_modules/vitepress-plugin-group-icons/README.md +0 -101
  278. package/skills/void/docs/node_modules/void/AGENT_PROMPT.md +0 -19
  279. package/skills/void/docs/node_modules/void/CLAUDE.md +0 -221
  280. package/skills/void/docs/node_modules/void/README.md +0 -90
  281. package/skills/void/docs/node_modules/void/node_modules/@clack/prompts/CHANGELOG.md +0 -685
  282. package/skills/void/docs/node_modules/void/node_modules/@clack/prompts/README.md +0 -396
  283. package/skills/void/docs/node_modules/void/node_modules/@cloudflare/sandbox/README.md +0 -219
  284. package/skills/void/docs/node_modules/void/node_modules/@cloudflare/vite-plugin/README.md +0 -37
  285. package/skills/void/docs/node_modules/void/node_modules/@cloudflare/workers-types/README.md +0 -135
  286. package/skills/void/docs/node_modules/void/node_modules/@electric-sql/pglite/README.md +0 -189
  287. package/skills/void/docs/node_modules/void/node_modules/@hono/oauth-providers/CHANGELOG.md +0 -143
  288. package/skills/void/docs/node_modules/void/node_modules/@hono/oauth-providers/README.md +0 -1272
  289. package/skills/void/docs/node_modules/void/node_modules/@napi-rs/keyring/README.md +0 -19
  290. package/skills/void/docs/node_modules/void/node_modules/@types/better-sqlite3/README.md +0 -15
  291. package/skills/void/docs/node_modules/void/node_modules/@types/node/README.md +0 -15
  292. package/skills/void/docs/node_modules/void/node_modules/@types/pg/README.md +0 -15
  293. package/skills/void/docs/node_modules/void/node_modules/@types/proper-lockfile/README.md +0 -51
  294. package/skills/void/docs/node_modules/void/node_modules/@typescript/native-preview/README.md +0 -22
  295. package/skills/void/docs/node_modules/void/node_modules/@typescript/native-preview/vendor/vscode-jsonrpc/README.md +0 -69
  296. package/skills/void/docs/node_modules/void/node_modules/@void/md/README.md +0 -153
  297. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/@shikijs/engine-javascript/README.md +0 -9
  298. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/@shikijs/transformers/README.md +0 -9
  299. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/@types/node/README.md +0 -15
  300. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/gray-matter/CHANGELOG.md +0 -24
  301. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/gray-matter/README.md +0 -565
  302. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/markdown-exit/README.md +0 -127
  303. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/markdown-it-anchor/README.md +0 -600
  304. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/markdown-it-attrs/README.md +0 -386
  305. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/markdown-it-container/README.md +0 -95
  306. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/markdown-it-emoji/README.md +0 -101
  307. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/markdown-it-footnote/README.md +0 -135
  308. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/pathslash/README.md +0 -64
  309. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/shiki/README.md +0 -15
  310. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/tinyglobby/README.md +0 -25
  311. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/AGENTS.md +0 -16
  312. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/README.md +0 -220
  313. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/config/build.md +0 -21
  314. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/config/check.md +0 -35
  315. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/config/create.md +0 -70
  316. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/config/fmt.md +0 -20
  317. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/config/index.md +0 -35
  318. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/config/lint.md +0 -26
  319. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/config/pack.md +0 -17
  320. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/config/run.md +0 -364
  321. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/config/staged.md +0 -15
  322. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/config/test.md +0 -18
  323. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/automatic-data-tracking.md +0 -145
  324. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/build.md +0 -40
  325. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/cache.md +0 -107
  326. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/check.md +0 -60
  327. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/ci.md +0 -62
  328. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/commit-hooks.md +0 -60
  329. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/create.md +0 -341
  330. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/dev.md +0 -24
  331. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/docker.md +0 -175
  332. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/env.md +0 -167
  333. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/fmt.md +0 -41
  334. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/github-actions-cache.md +0 -165
  335. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/ide-integration.md +0 -101
  336. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/implode.md +0 -23
  337. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/index.md +0 -134
  338. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/install.md +0 -199
  339. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/lint.md +0 -50
  340. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/migrate-rules.md +0 -347
  341. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/migrate.md +0 -197
  342. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/monorepo.md +0 -176
  343. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/pack.md +0 -69
  344. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/run.md +0 -356
  345. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/test.md +0 -35
  346. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/troubleshooting.md +0 -108
  347. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/upgrade.md +0 -101
  348. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/vpx.md +0 -66
  349. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/why.md +0 -39
  350. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/index.md +0 -12
  351. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/team.md +0 -35
  352. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/templates/generator/README.md +0 -35
  353. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/templates/monorepo/README.md +0 -29
  354. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vue/README.md +0 -58
  355. package/skills/void/docs/node_modules/void/node_modules/arktype/README.md +0 -165
  356. package/skills/void/docs/node_modules/void/node_modules/better-auth/LICENSE.md +0 -20
  357. package/skills/void/docs/node_modules/void/node_modules/better-auth/README.md +0 -32
  358. package/skills/void/docs/node_modules/void/node_modules/better-sqlite3/README.md +0 -99
  359. package/skills/void/docs/node_modules/void/node_modules/blake3-jit/README.md +0 -108
  360. package/skills/void/docs/node_modules/void/node_modules/drizzle-arktype/README.md +0 -51
  361. package/skills/void/docs/node_modules/void/node_modules/drizzle-kit/README.md +0 -79
  362. package/skills/void/docs/node_modules/void/node_modules/drizzle-orm/README.md +0 -44
  363. package/skills/void/docs/node_modules/void/node_modules/drizzle-valibot/README.md +0 -51
  364. package/skills/void/docs/node_modules/void/node_modules/drizzle-zod/README.md +0 -65
  365. package/skills/void/docs/node_modules/void/node_modules/es-module-lexer/README.md +0 -403
  366. package/skills/void/docs/node_modules/void/node_modules/estree-walker/README.md +0 -48
  367. package/skills/void/docs/node_modules/void/node_modules/hono/README.md +0 -85
  368. package/skills/void/docs/node_modules/void/node_modules/ignore/README.md +0 -452
  369. package/skills/void/docs/node_modules/void/node_modules/jsonc-parser/CHANGELOG.md +0 -76
  370. package/skills/void/docs/node_modules/void/node_modules/jsonc-parser/LICENSE.md +0 -21
  371. package/skills/void/docs/node_modules/void/node_modules/jsonc-parser/README.md +0 -364
  372. package/skills/void/docs/node_modules/void/node_modules/jsonc-parser/SECURITY.md +0 -41
  373. package/skills/void/docs/node_modules/void/node_modules/magic-string/README.md +0 -325
  374. package/skills/void/docs/node_modules/void/node_modules/ofetch/README.md +0 -398
  375. package/skills/void/docs/node_modules/void/node_modules/pathslash/README.md +0 -64
  376. package/skills/void/docs/node_modules/void/node_modules/pg/README.md +0 -96
  377. package/skills/void/docs/node_modules/void/node_modules/pglite-server/README.md +0 -135
  378. package/skills/void/docs/node_modules/void/node_modules/picocolors/README.md +0 -21
  379. package/skills/void/docs/node_modules/void/node_modules/proper-lockfile/CHANGELOG.md +0 -108
  380. package/skills/void/docs/node_modules/void/node_modules/proper-lockfile/README.md +0 -183
  381. package/skills/void/docs/node_modules/void/node_modules/tinyglobby/README.md +0 -25
  382. package/skills/void/docs/node_modules/void/node_modules/valibot/LICENSE.md +0 -9
  383. package/skills/void/docs/node_modules/void/node_modules/valibot/README.md +0 -94
  384. package/skills/void/docs/node_modules/void/node_modules/vite-plus/AGENTS.md +0 -16
  385. package/skills/void/docs/node_modules/void/node_modules/vite-plus/README.md +0 -220
  386. package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/config/build.md +0 -21
  387. package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/config/check.md +0 -35
  388. package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/config/create.md +0 -70
  389. package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/config/fmt.md +0 -20
  390. package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/config/index.md +0 -35
  391. package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/config/lint.md +0 -26
  392. package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/config/pack.md +0 -17
  393. package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/config/run.md +0 -364
  394. package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/config/staged.md +0 -15
  395. package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/config/test.md +0 -18
  396. package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/automatic-data-tracking.md +0 -145
  397. package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/build.md +0 -40
  398. package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/cache.md +0 -107
  399. package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/check.md +0 -60
  400. package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/ci.md +0 -62
  401. package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/commit-hooks.md +0 -60
  402. package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/create.md +0 -341
  403. package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/dev.md +0 -24
  404. package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/docker.md +0 -175
  405. package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/env.md +0 -167
  406. package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/fmt.md +0 -41
  407. package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/github-actions-cache.md +0 -165
  408. package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/ide-integration.md +0 -101
  409. package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/implode.md +0 -23
  410. package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/index.md +0 -134
  411. package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/install.md +0 -199
  412. package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/lint.md +0 -50
  413. package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/migrate-rules.md +0 -347
  414. package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/migrate.md +0 -197
  415. package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/monorepo.md +0 -176
  416. package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/pack.md +0 -69
  417. package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/run.md +0 -356
  418. package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/test.md +0 -35
  419. package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/troubleshooting.md +0 -108
  420. package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/upgrade.md +0 -101
  421. package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/vpx.md +0 -66
  422. package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/why.md +0 -39
  423. package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/index.md +0 -12
  424. package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/team.md +0 -35
  425. package/skills/void/docs/node_modules/void/node_modules/vite-plus/templates/generator/README.md +0 -35
  426. package/skills/void/docs/node_modules/void/node_modules/vite-plus/templates/monorepo/README.md +0 -29
  427. package/skills/void/docs/node_modules/void/node_modules/wrangler/README.md +0 -63
  428. package/skills/void/docs/node_modules/void/node_modules/zod/README.md +0 -191
  429. package/skills/void/docs/node_modules/void/skills/migrate-vite-cloudflare-to-void/SKILL.md +0 -175
  430. package/skills/void/docs/node_modules/void/skills/void/SKILL.md +0 -76
  431. package/skills/void/docs/node_modules/void/skills/void/command/void.md +0 -7
  432. 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 };