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
@@ -1,5 +1,6 @@
1
- import { D as outro, T as log, a as cliTitle, f as tablePrefix, s as dim, u as import_picocolors, w as intro } from "./agents-CtgBYqld.mjs";
2
- import { d as getSiteDomain, f as getToken, n as PlatformClient } from "./client-Gb71-XkG.mjs";
1
+ import { D as log, E as intro, a as dim, c as import_picocolors, k as outro, r as cliTitle, u as tablePrefix } from "./output-tFQLLj26.mjs";
2
+ import { b as readDeploymentPlatform, c as getToken, s as getSiteDomain } from "./auth-W9WII-mN.mjs";
3
+ import { n as PlatformClient } from "./client-CyCHWSO_.mjs";
3
4
  //#region src/cli/projects.ts
4
5
  async function runProjectsCommand(root) {
5
6
  console.log();
@@ -17,7 +18,7 @@ async function runProjectsCommand(root) {
17
18
  const rows = projects.map((p) => ({
18
19
  slug: p.slug,
19
20
  appType: p.type ?? "worker",
20
- url: p.custom_domain ? `https://${p.custom_domain}` : `https://${p.slug}.${getSiteDomain(root)}`
21
+ url: p.custom_domain ? `https://${p.custom_domain}` : p.url ?? `https://${p.slug}.${getSiteDomain(root)}`
21
22
  }));
22
23
  const slugWidth = Math.max(4, ...rows.map((r) => r.slug.length));
23
24
  const typeWidth = Math.max(4, ...rows.map((r) => r.appType.length));
@@ -32,37 +33,49 @@ async function runProjectsCommand(root) {
32
33
  //#endregion
33
34
  //#region src/cli/project-cmd.ts
34
35
  async function runProjectCommand(root, args) {
36
+ const cloudflare = readDeploymentPlatform(root) === "cloudflare";
35
37
  if (args.subcommand === "status") {
36
- const { runListCommand } = await import("./list-CPwFDZ_c.mjs");
38
+ const { runListCommand } = await import("./list-M8XShti7.mjs");
37
39
  return runListCommand(root, args.name || void 0);
38
40
  }
39
41
  if (args.subcommand === "link") {
40
- const { runLink } = await import("./link-CdGHSIy-.mjs");
42
+ if (cloudflare) throw new Error("project: Direct Cloudflare apps are identified by the name in wrangler.jsonc and do not need linking.");
43
+ const { runLink } = await import("./link-D_rm5sRH.mjs");
41
44
  return runLink(root, args.name || void 0);
42
45
  }
43
- if (args.subcommand === "list") return runProjectsCommand(root);
46
+ if (args.subcommand === "list") {
47
+ if (cloudflare) {
48
+ const { runListCommand } = await import("./list-M8XShti7.mjs");
49
+ return runListCommand(root);
50
+ }
51
+ return runProjectsCommand(root);
52
+ }
44
53
  if (args.subcommand === "logs") {
45
- const { runLogsCommand } = await import("./logs-Bt313ax7.mjs");
54
+ const { runLogsCommand } = await import("./logs-DwFU7dMW.mjs");
46
55
  return runLogsCommand(root, args.filter, args.range, args.deployment || void 0, args.level || void 0);
47
56
  }
48
57
  if (args.subcommand === "requests") {
49
- const { runRequestsCommand } = await import("./requests-B8sZxaFM.mjs");
58
+ if (cloudflare) throw new Error("project: Historical request analytics require the Void platform. Use `void project logs` for a live Cloudflare tail.");
59
+ const { runRequestsCommand } = await import("./requests-Dn8Vheh1.mjs");
50
60
  return runRequestsCommand(root, args.range, args.status || void 0);
51
61
  }
52
62
  if (args.subcommand === "rollback") {
53
- const { runRollbackCommand } = await import("./rollback-CkvTFXx5.mjs");
63
+ const { runRollbackCommand } = await import("./rollback-CtlPXEBi.mjs");
54
64
  return runRollbackCommand(root, args.deployId || void 0);
55
65
  }
56
66
  if (args.subcommand === "cancel") {
57
- const { runCancelDeployCommand } = await import("./cancel-deploy-fwFYF04b.mjs");
67
+ if (cloudflare) throw new Error("project: Direct Cloudflare deploys activate only after readiness succeeds, so there is no remote build to cancel.");
68
+ const { runCancelDeployCommand } = await import("./cancel-deploy-DsvWKFTe.mjs");
58
69
  return runCancelDeployCommand(root, args.deployId || void 0);
59
70
  }
60
71
  if (args.subcommand === "delete") {
61
- const { runDeleteCommand } = await import("./delete-mh6p-zkQ.mjs");
72
+ if (cloudflare) throw new Error("project: Refusing to delete Cloudflare resources through this command. Direct deployments are additive and existing resources may be shared.");
73
+ const { runDeleteCommand } = await import("./delete-iJOqxBz1.mjs");
62
74
  return runDeleteCommand(root, args.name || void 0, { force: args.force });
63
75
  }
64
76
  if (args.subcommand === "purge-cache") {
65
- const { runPurgeCacheCommand } = await import("./cache-C11V8Fxq.mjs");
77
+ if (cloudflare) throw new Error("project: Direct Cloudflare ISR cache purge is not available yet; redeploy or purge the configured KV namespace explicitly.");
78
+ const { runPurgeCacheCommand } = await import("./cache-QcUfR-ff.mjs");
66
79
  return runPurgeCacheCommand(root, args.projectSlug || void 0);
67
80
  }
68
81
  }
@@ -1,4 +1,4 @@
1
- import { a as join, i as isAbsolute, o as normalize, s as relative } from "./dist-DaKKDf8D.mjs";
1
+ import { a as isAbsolute, c as relative, o as join, s as normalize } from "./dist-BrsS7cai.mjs";
2
2
  import { existsSync, readFileSync } from "node:fs";
3
3
  //#region src/project-paths.ts
4
4
  const SOURCE_CONVENTION_DIRECTORIES = [
@@ -7,6 +7,7 @@ const SOURCE_CONVENTION_DIRECTORIES = [
7
7
  "middleware",
8
8
  "crons",
9
9
  "queues",
10
+ "email",
10
11
  "db"
11
12
  ];
12
13
  const AUTH_CONFIG_FILES = [
@@ -54,6 +55,7 @@ function resolveProjectPaths(root, config) {
54
55
  middlewareDir: join(sourceRoot, "middleware"),
55
56
  cronsDir: join(sourceRoot, "crons"),
56
57
  queuesDir: join(sourceRoot, "queues"),
58
+ emailDir: join(sourceRoot, "email"),
57
59
  pagesDir: join(sourceRoot, "pages"),
58
60
  dbDir: join(sourceRoot, "db"),
59
61
  migrationsDir: join(sourceRoot, "db", "migrations"),
@@ -1,5 +1,5 @@
1
- import { a as join, n as dirname, s as relative } from "./dist-DaKKDf8D.mjs";
2
- import { n as readProjectPaths } from "./project-paths-BQd7OmIo.mjs";
1
+ import { c as relative, n as dirname, o as join } from "./dist-BrsS7cai.mjs";
2
+ import { n as readProjectPaths } from "./project-paths-SK8nMHPp.mjs";
3
3
  import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
4
4
  //#region src/codegen/write-if-changed.ts
5
5
  function writeFileIfChanged(path, content) {
@@ -1,7 +1,6 @@
1
- import { n as HeadDescriptor, t as HeadConfig } from "./head-nmvOgFjd.mjs";
2
- import { n as CloudBindings, r as CloudContext } from "./handler-Cjh8uM3Y.mjs";
3
- import { a as PageRenderMode, t as DevCssAsset } from "./types-lLjNE9Qp.mjs";
4
-
1
+ import { n as HeadDescriptor, t as HeadConfig } from "./head-Do8P4puT.mjs";
2
+ import { n as CloudBindings, r as CloudContext } from "./handler-D1hLsObx.mjs";
3
+ import { a as PageRenderMode, t as DevCssAsset } from "./types-BAp5AEBU.mjs";
5
4
  //#region src/pages/protocol.d.ts
6
5
  /** Escape characters that are unsafe inside inline <script> tags to prevent XSS. */
7
6
  declare function safeJsonStringify(value: unknown): string;
@@ -1,15 +1,39 @@
1
- import { a as join, c as resolve, n as dirname, o as normalize, t as basename } from "./dist-DaKKDf8D.mjs";
2
- import { b as readProvisionedBindingEntry, f as assertNoDuplicateMembers, w as writeProvisionedWranglerConfig } from "./deploy-u7Rv9q_q.mjs";
1
+ import { n as __exportAll } from "./rolldown-runtime-rQ84J-ij.mjs";
2
+ import { l as resolve$2, n as dirname, o as join, s as normalize, t as basename } from "./dist-BrsS7cai.mjs";
3
+ import { _ as readProvisionedBindingEntry, k as writeProvisionedWranglerConfig, s as assertNoDuplicateMembers } from "./wrangler--imS8n0d.mjs";
3
4
  import { i as voidWarn, r as voidLog } from "./log-ChfPKsVd.mjs";
4
- import { o as resolveWranglerArgv, u as scanWranglerDotenvKeys } from "./preset-BjyR3lzz.mjs";
5
+ import { r as scanWranglerDotenvKeys } from "./dotenv-VQxupEUv.mjs";
6
+ import { o as resolveWranglerArgv } from "./preset-lAy0B0BQ.mjs";
5
7
  import { createRequire } from "node:module";
6
- import { closeSync, existsSync, fsyncSync, lstatSync, openSync, readFileSync, readlinkSync, realpathSync, renameSync, unlinkSync, writeFileSync, writeSync } from "node:fs";
8
+ import { closeSync, existsSync, fsyncSync, lstatSync, openSync, readFileSync, readlinkSync, realpathSync, renameSync, unlinkSync, writeSync } from "node:fs";
7
9
  import { randomUUID } from "node:crypto";
8
10
  import { spawn } from "node:child_process";
9
- import { types } from "node:util";
10
11
  import { parse } from "jsonc-parser";
12
+ import { types } from "node:util";
13
+ import { resolve } from "node:path/posix";
14
+ import { resolve as resolve$1 } from "node:path/win32";
11
15
  import lockfile from "proper-lockfile";
12
16
  //#region src/cli/provision.ts
17
+ var provision_exports = /* @__PURE__ */ __exportAll({
18
+ WranglerQuarantineError: () => WranglerQuarantineError,
19
+ acquireProvisionLock: () => acquireProvisionLock,
20
+ assertNoTransportRedirectInProjectDotenv: () => assertNoTransportRedirectInProjectDotenv,
21
+ assertValidResourceName: () => assertValidResourceName,
22
+ checkCloudflareProvisionDrift: () => checkCloudflareProvisionDrift,
23
+ createDefaultRunWrangler: () => createDefaultRunWrangler,
24
+ deleteEnvVarCaseAware: () => deleteEnvVarCaseAware,
25
+ isAlreadyGoneKillError: () => isAlreadyGoneKillError,
26
+ isQuarantineError: () => isQuarantineError,
27
+ isQueueConfirmedAbsent: () => isQueueConfirmedAbsent,
28
+ isRealD1Id: () => isRealD1Id,
29
+ isRealKvId: () => isRealKvId,
30
+ normalizeRunWranglerResult: () => normalizeRunWranglerResult,
31
+ provisionCloudflareResources: () => provisionCloudflareResources,
32
+ provisionEnv: () => provisionEnv,
33
+ resolvePinnedApiBaseUrl: () => resolvePinnedApiBaseUrl,
34
+ resolveProperLockfileKey: () => resolveProperLockfileKey,
35
+ scanWranglerDotenvKeys: () => scanWranglerDotenvKeys
36
+ });
13
37
  /**
14
38
  * Diff the DESIRED id-bearing resources against the ACTUAL bindings in the root
15
39
  * wrangler config, WITHOUT any remote/wrangler call. A resource counts as
@@ -23,9 +47,8 @@ import lockfile from "proper-lockfile";
23
47
  * Queues are NAME-bearing (no id in the config), so they are NOT part of this
24
48
  * id-drift check. A missing config file yields every desired resource as missing.
25
49
  *
26
- * Used by the deploy orchestrator (Task 6) for BOTH the no-`--provision` DRIFT
27
- * CHECK (any `missing` → guidance error) and the CI `--provision` no-op gate
28
- * (`missing.length === 0` ⇒ a provable no-op the committed config already covers).
50
+ * Used by the deploy orchestrator to decide whether automatic provisioning is needed
51
+ * and to verify that every id-bearing resource was satisfied afterward.
29
52
  * A malformed/duplicate-binding config makes {@link readProvisionedBindingEntry}
30
53
  * throw — fail closed, exactly as the provisioner would.
31
54
  */
@@ -73,7 +96,7 @@ const KV_ID_PLACEHOLDER = "local";
73
96
  const R2_BUCKET_NAME_PLACEHOLDER = "default";
74
97
  const D1_ID_RE = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
75
98
  const HEX32_ID_RE = /^[0-9a-f]{32}$/i;
76
- /** R2 bucket names ARE the identity: wrangler 4.107's `isValidR2BucketName`. */
99
+ /** R2 bucket names ARE the identity: wrangler 4.131's `isValidR2BucketName`. */
77
100
  const R2_BUCKET_NAME_RE = /^[a-z0-9][a-z0-9-]{1,61}[a-z0-9]$/;
78
101
  /**
79
102
  * A D1 `database_id` that is a real (non-placeholder) hyphenated UUID. Exported so
@@ -114,7 +137,7 @@ const defaultLogger = {
114
137
  warn: (msg) => voidWarn(msg)
115
138
  };
116
139
  /**
117
- * The transport-redirecting env vars wrangler 4.107 honors. Each can point
140
+ * The transport-redirecting env vars wrangler 4.131 honors. Each can point
118
141
  * wrangler's authenticated API transport at a DIFFERENT endpoint (or select a
119
142
  * different env-block/account) than the ONE this provision pinned:
120
143
  * - `CLOUDFLARE_API_BASE_URL` / `CF_API_BASE_URL` — override the API base URL directly
@@ -133,7 +156,7 @@ const TRANSPORT_REDIRECT_ENV_VARS = [
133
156
  "CLOUDFLARE_ENV"
134
157
  ];
135
158
  /**
136
- * Wrangler 4.107's diagnostic-output sinks that would PERSIST the raw provisioning
159
+ * Wrangler 4.131's diagnostic-output sinks that would PERSIST the raw provisioning
137
160
  * argv (including a Hyperdrive connection string, password and all) to disk:
138
161
  * - `WRANGLER_OUTPUT_FILE_PATH` / `WRANGLER_OUTPUT_FILE_DIRECTORY` — when either is set
139
162
  * (`getOutputFilePathFromEnv`/`getOutputFileDirectoryFromEnv`), wrangler's startup
@@ -151,7 +174,7 @@ const TRANSPORT_REDIRECT_ENV_VARS = [
151
174
  const OUTPUT_FILE_ENV_VARS = ["WRANGLER_OUTPUT_FILE_PATH", "WRANGLER_OUTPUT_FILE_DIRECTORY"];
152
175
  /**
153
176
  * Resolve the ONE Cloudflare API base URL this provision is pinned to, mirroring
154
- * wrangler 4.107's `getCloudflareApiBaseUrl` EXACTLY (wrangler-dist/cli.js) so the
177
+ * wrangler 4.131's `getCloudflareApiBaseUrl` EXACTLY (wrangler-dist/cli.js) so the
155
178
  * Hyperdrive REST lister and the spawned wrangler agree on the endpoint:
156
179
  *
157
180
  * getCloudflareApiBaseUrl = (complianceConfig) =>
@@ -188,7 +211,7 @@ function resolvePinnedApiBaseUrl(env = process.env, configComplianceRegion) {
188
211
  return `https://api${resolveComplianceRegion(env, configRegion) === "fedramp_high" ? ".fed" : ""}${resolveApiEnvironment(env) === "staging" ? ".staging" : ""}.cloudflare.com/client/v4`;
189
212
  }
190
213
  /**
191
- * Mirror wrangler 4.107's `getCloudflareApiEnvironmentFromEnv` (env factory with
214
+ * Mirror wrangler 4.131's `getCloudflareApiEnvironmentFromEnv` (env factory with
192
215
  * `choices: ["production", "staging"]`, default `"production"`): an ABSENT variable
193
216
  * defaults to production; a PRESENT value outside the choices — `"stagng"`, an empty
194
217
  * string — makes wrangler's `assertOneOf` throw, so we fail closed identically instead of
@@ -200,14 +223,14 @@ function resolveApiEnvironment(env) {
200
223
  if (raw !== "production" && raw !== "staging") throw new Error(`provision: the WRANGLER_API_ENVIRONMENT environment variable must be one of "production" or "staging", got ${JSON.stringify(raw)}. wrangler rejects this value, so provisioning refuses to guess an endpoint; fix or unset it and retry.`);
201
224
  return raw;
202
225
  }
203
- /** The compliance-region choices wrangler 4.107 accepts (`getCloudflareComplianceRegionFromEnv`). */
226
+ /** The compliance-region choices wrangler 4.131 accepts (`getCloudflareComplianceRegionFromEnv`). */
204
227
  const COMPLIANCE_REGIONS = ["public", "fedramp_high"];
205
228
  function assertComplianceChoice(value, source) {
206
229
  if (value !== "public" && value !== "fedramp_high") throw new Error(`provision: ${source} must be one of ${COMPLIANCE_REGIONS.map((c) => JSON.stringify(c)).join(" or ")}, got ${JSON.stringify(value)}.`);
207
230
  return value;
208
231
  }
209
232
  /**
210
- * Reconcile the effective Cloudflare compliance region, mirroring wrangler 4.107's
233
+ * Reconcile the effective Cloudflare compliance region, mirroring wrangler 4.131's
211
234
  * `getCloudflareComplianceRegion(complianceConfig)` EXACTLY (evaluated only on the
212
235
  * DERIVED-base branch — with a direct base override wrangler never calls it):
213
236
  * - reads `CLOUDFLARE_COMPLIANCE_REGION` by PRESENCE and validates it against the
@@ -227,7 +250,7 @@ function resolveComplianceRegion(env, configRegion) {
227
250
  return envRegion ?? configRegion ?? "public";
228
251
  }
229
252
  /**
230
- * Mirror wrangler 4.107's `getDefaultEnvFiles(env)`: base `.env`/`.env.local`, then —
253
+ * Mirror wrangler 4.131's `getDefaultEnvFiles(env)`: base `.env`/`.env.local`, then —
231
254
  * when the environment argument is DEFINED (we always pass `--env=`, so wrangler sees
232
255
  * `args.env === ""`, which is `!== undefined`) — the per-env pair `.env.${env}`/`.env.${env}.local`.
233
256
  * With the empty environment those are the empty-env filenames `.env.` and `.env..local`.
@@ -242,7 +265,7 @@ function defaultWranglerEnvFiles(env) {
242
265
  }
243
266
  /**
244
267
  * FAIL CLOSED when the project's dotenv files declare a transport-redirecting
245
- * variable. wrangler 4.107 reloads `.env`/`.env.local` (and the dev-vars files) from the
268
+ * variable. wrangler 4.131 reloads `.env`/`.env.local` (and the dev-vars files) from the
246
269
  * project root into `process.env` on EVERY command with `override: true`, so a repo `.env`
247
270
  * setting `CLOUDFLARE_API_BASE_URL` / `WRANGLER_API_ENVIRONMENT` /
248
271
  * `CLOUDFLARE_COMPLIANCE_REGION` / `CLOUDFLARE_ENV` would redirect wrangler's authenticated
@@ -277,11 +300,11 @@ function assertNoTransportRedirectInProjectDotenv(root, platform = process.platf
277
300
  }
278
301
  }
279
302
  /**
280
- * Child-process env with the CF Access service-token PAIR scrubbed. Mirrors
281
- * `buildEnv` in `deploy.ts`: a shared, long-lived Access token is needed only by
282
- * this CLI's own API client and must never leak into the spawned wrangler
283
- * process (which may in turn run user hooks). The cloudflared `CF_ACCESS_TOKEN`
284
- * JWT (dev path) is left untouched.
303
+ * Child-process env with every CF Access credential scrubbed. Mirrors `buildEnv`
304
+ * in `deploy.ts`: Access credentials are needed only by this CLI's own guarded
305
+ * HTTP requests and must never leak into the spawned wrangler process (which may
306
+ * in turn run user hooks). This includes the short-lived cloudflared
307
+ * `CF_ACCESS_TOKEN` JWT used by local readiness probes.
285
308
  *
286
309
  * Pins ONE transport context: scrubs every {@link TRANSPORT_REDIRECT_ENV_VARS}
287
310
  * from the child env, then re-sets `CLOUDFLARE_API_BASE_URL` to the SINGLE resolved
@@ -315,6 +338,7 @@ function provisionEnv(ctx) {
315
338
  const scrub = (name) => deleteEnvVarCaseAware(env, name, platform);
316
339
  scrub("CF_ACCESS_CLIENT_ID");
317
340
  scrub("CF_ACCESS_CLIENT_SECRET");
341
+ scrub("CF_ACCESS_TOKEN");
318
342
  for (const name of TRANSPORT_REDIRECT_ENV_VARS) scrub(name);
319
343
  for (const name of OUTPUT_FILE_ENV_VARS) scrub(name);
320
344
  scrub("WRANGLER_LOG_SANITIZE");
@@ -1185,7 +1209,7 @@ function canonicalizeConfigPath(absoluteConfigPath, depth = 0) {
1185
1209
  if (linkStat?.isSymbolicLink()) {
1186
1210
  if (depth >= 40) throw Object.assign(/* @__PURE__ */ new Error(`ELOOP: too many symbolic links while resolving "${absoluteConfigPath}"`), { code: "ELOOP" });
1187
1211
  const target = readlinkSync(absoluteConfigPath);
1188
- return canonicalizeConfigPath(resolve(dirname(absoluteConfigPath), target), depth + 1);
1212
+ return canonicalizeConfigPath(resolve$2(dirname(absoluteConfigPath), target), depth + 1);
1189
1213
  }
1190
1214
  const dir = dirname(absoluteConfigPath);
1191
1215
  try {
@@ -1252,13 +1276,26 @@ function normalizeLockRetries(retries) {
1252
1276
  };
1253
1277
  }
1254
1278
  /**
1279
+ * Match the key spelling `proper-lockfile` stores when `realpath: false`.
1280
+ *
1281
+ * The library uses the host's native `node:path.resolve`, including backslashes on
1282
+ * Windows. Most Void paths intentionally use `pathslash`, but its forward-slash output
1283
+ * cannot address `proper-lockfile`'s internal registry on Windows.
1284
+ */
1285
+ function resolveProperLockfileKey(file, platform = process.platform) {
1286
+ return platform === "win32" ? resolve$1(file) : resolve(file);
1287
+ }
1288
+ /**
1255
1289
  * Acquire the cross-process provision lock over the resolved config path via
1256
1290
  * `proper-lockfile` (an atomic `mkdir`-based mutex at `<configPath>.void-provision.lock.lock`).
1257
- * `proper-lockfile` requires the locked pathname to EXIST, so we lock a DEDICATED
1258
- * adjacent marker file (`<configPath>.void-provision.lock`), creating it if absent —
1259
- * never the real config, so the writer's missing-vs-empty config semantics stay
1260
- * untouched. Returns a handle whose `release()` drops the mutex; ALWAYS call it in a
1261
- * `finally` so an interruption never leaks the lock.
1291
+ * The library normally realpaths the pathname being locked, which requires it to exist.
1292
+ * Both lock identities here are deliberately SYNTHETIC adjacent paths, so acquisition
1293
+ * passes `realpath: false`: proper-lockfile resolves the identity lexically and creates
1294
+ * only its temporary mutex directory — never an empty marker file in the user's project.
1295
+ * This is safe because the config path was already canonicalized (including missing-file
1296
+ * and symlink cases) before reaching this function. It also preserves the writer's
1297
+ * missing-vs-empty config semantics. Returns a handle whose `release()` drops the mutex;
1298
+ * ALWAYS call it in a `finally` so an interruption never leaks the lock.
1262
1299
  *
1263
1300
  * `onCompromised` FAILS CLOSED (re-throws): if the lock is ever detected stolen (its
1264
1301
  * mtime changed, or the mutex vanished under a live owner), provisioning must NEVER
@@ -1288,8 +1325,6 @@ function normalizeLockRetries(retries) {
1288
1325
  async function acquireProvisionLock(configPath, lockOptions) {
1289
1326
  const lockTarget = `${configPath}.void-provision.lock`;
1290
1327
  const recoveryTarget = `${lockTarget}.recovery`;
1291
- if (!existsSync(lockTarget)) writeFileSync(lockTarget, "");
1292
- if (!existsSync(recoveryTarget)) writeFileSync(recoveryTarget, "");
1293
1328
  const staleMs = lockOptions?.stale ?? LOCK_STALE_MS;
1294
1329
  const retryCfg = normalizeLockRetries(lockOptions?.retries);
1295
1330
  const isElocked = (error) => error?.code === "ELOCKED";
@@ -1298,6 +1333,7 @@ async function acquireProvisionLock(configPath, lockOptions) {
1298
1333
  stale: staleMs,
1299
1334
  update: lockOptions?.update ?? LOCK_UPDATE_MS,
1300
1335
  retries: 0,
1336
+ realpath: false,
1301
1337
  ...lockOptions?.fs !== void 0 ? { fs: lockOptions.fs } : {},
1302
1338
  onCompromised: (error) => {
1303
1339
  throw error;
@@ -1306,6 +1342,7 @@ async function acquireProvisionLock(configPath, lockOptions) {
1306
1342
  const acquireRecoveryOnce = () => lockfile.lock(recoveryTarget, {
1307
1343
  stale: RECOVERY_LOCK_STALE_MS,
1308
1344
  retries: 0,
1345
+ realpath: false,
1309
1346
  onCompromised: (error) => {
1310
1347
  throw error;
1311
1348
  }
@@ -1375,12 +1412,7 @@ async function acquireProvisionLock(configPath, lockOptions) {
1375
1412
  releasePromise = Promise.resolve();
1376
1413
  const locks = loadProperLockfileInternals()?.getLocks?.();
1377
1414
  if (!locks) return;
1378
- let key;
1379
- try {
1380
- key = realpathSync(lockTarget);
1381
- } catch {
1382
- key = resolve(lockTarget);
1383
- }
1415
+ const key = resolveProperLockfileKey(lockTarget);
1384
1416
  const tracked = locks[key];
1385
1417
  if (tracked) {
1386
1418
  tracked.released = true;
@@ -1600,7 +1632,7 @@ function isQueueConfirmedAbsent(result, name) {
1600
1632
  * `code === null → exit(0)`), so a KILLED probe/create can surface a clean exit 0
1601
1633
  * with empty/partial output. A bare clean 0 is therefore NOT proof the queue exists.
1602
1634
  * We require BOTH a clean success (numeric exit 0, no signal/spawn error — the
1603
- * provenance rule) AND the output to name THIS exact queue: wrangler 4.107's
1635
+ * provenance rule) AND the output to name THIS exact queue: wrangler 4.131's
1604
1636
  * `queues info` prints `Queue Name: <queue_name>` for the queue it fetched by name
1605
1637
  * (account-unique), so an exact `Queue Name: <name>` line is the positive signal.
1606
1638
  * Used for BOTH the reuse probe and the post-create verify probe.
@@ -1622,7 +1654,7 @@ function assertD1MigrationsDirApplied(result, binding, configPath) {
1622
1654
  }
1623
1655
  /**
1624
1656
  * Backstop — verify a create's POSTCONDITION, RESOURCE-SPECIFICALLY + identity
1625
- * checked. wrangler 4.107's `bin.wrangler` is a WRAPPER that spawns
1657
+ * checked. wrangler 4.131's `bin.wrangler` is a WRAPPER that spawns
1626
1658
  * `wrangler-dist/cli.js` and maps a signal-killed child (`code === null`) to
1627
1659
  * `process.exit(0)`, so `spawnSync` can see a `create` report "success" though the
1628
1660
  * real CLI was killed and `--update-config` wrote NO id. After every config-writing
@@ -1700,8 +1732,8 @@ const RESOURCE_NAME_GRAMMARS = {
1700
1732
  * violation, before the account gate or any wrangler/REST call.
1701
1733
  *
1702
1734
  * Exported — like {@link isQueueConfirmedAbsent} — so the deploy orchestrator's
1703
- * no-`--provision` queue probe (`cli/deploy.ts`) gates names on the SAME rules this
1704
- * provisioner enforces, instead of only the `--provision` path being protected. Queue names
1735
+ * pre-provision queue probe (`cli/deploy.ts`) gates names on the SAME rules this
1736
+ * provisioner enforces. Queue names
1705
1737
  * are taken verbatim from filenames with no sanitization, so without this gate a name
1706
1738
  * beginning with `-` reaches wrangler as a FLAG rather than a positional.
1707
1739
  */
@@ -1715,7 +1747,7 @@ function assertValidResourceName(kind, name) {
1715
1747
  * ONCE so no call site can forget them:
1716
1748
  * - `-c <configPath>` pins the ONE resolved config (no split-brain reads/writes);
1717
1749
  * - `--env=` (an explicit EMPTY environment) FORCES wrangler onto the top-level
1718
- * config environment. wrangler 4.107 selects its config env as
1750
+ * config environment. wrangler 4.131 selects its config env as
1719
1751
  * `args.env ?? getCloudflareEnv()`; passing an explicit empty `args.env`
1720
1752
  * short-circuits the `??` so a project `.env`/`.env.local` that sets
1721
1753
  * `CLOUDFLARE_ENV` (reloaded into `process.env` on every wrangler command)
@@ -2063,7 +2095,7 @@ async function provisionCloudflareResources(root, rootWranglerPath, desired, opt
2063
2095
  /** The provision body, run while holding this process's single provision slot. */
2064
2096
  async function provisionWithProcessSlot(root, rootWranglerPath, desired, opts) {
2065
2097
  await Promise.resolve();
2066
- const configPath = canonicalizeConfigPath(resolve(root, rootWranglerPath));
2098
+ const configPath = canonicalizeConfigPath(resolve$2(root, rootWranglerPath));
2067
2099
  const lock = await acquireProvisionLock(configPath, opts?.lockOptions);
2068
2100
  const quarantineHook = (info) => retainQuarantinedLock(lock, info);
2069
2101
  activeProvisionQuarantineHook = quarantineHook;
@@ -2110,7 +2142,8 @@ async function provisionWithProcessSlot(root, rootWranglerPath, desired, opts) {
2110
2142
  async function provisionCloudflareResourcesLocked(root, configPath, desired, opts) {
2111
2143
  if (existsSync(configPath)) {
2112
2144
  const raw = readFileSync(configPath, "utf-8");
2113
- assertNoDuplicateMembers(raw.startsWith(UTF8_BOM) ? raw.slice(1) : raw, configPath);
2145
+ const content = raw.startsWith(UTF8_BOM) ? raw.slice(1) : raw;
2146
+ assertNoDuplicateMembers(content, configPath);
2114
2147
  }
2115
2148
  if (desired.d1) assertValidResourceName("d1", desired.d1.name);
2116
2149
  for (const { title } of desired.kvNamespaces) assertValidResourceName("kvTitle", title);
@@ -2136,7 +2169,7 @@ async function provisionCloudflareResourcesLocked(root, configPath, desired, opt
2136
2169
  const { binding, name, connectionString } = desired.hyperdrive;
2137
2170
  const entry = readBindingEntry(configPath, "hyperdrive", binding);
2138
2171
  if (!(entry !== void 0 && isRealHyperdriveId(entry.id)) && !resolveHyperdriveApiToken(opts?.apiToken)) {
2139
- if (connectionString) throw new Error(`provision: Hyperdrive config ${JSON.stringify(name)} is not in "${configPath}" yet, and creating it needs a Cloudflare API token. wrangler exposes no machine-readable Hyperdrive list, so Void checks the account over the Cloudflare REST API, which a "wrangler login" (OAuth) session cannot authenticate. Without that check a create would silently duplicate an existing same-named config, so nothing was provisioned. Either (a) export CLOUDFLARE_API_TOKEN with Hyperdrive edit permission and rerun, or (b) create the Hyperdrive config yourself (dashboard / "wrangler hyperdrive create") and add its id to the ${JSON.stringify(binding)} hyperdrive binding in "${configPath}" — deploying an already-provisioned Hyperdrive needs no token.`);
2172
+ if (connectionString) throw new Error(`provision: Hyperdrive config ${JSON.stringify(name)} is not in "${configPath}" yet, and creating it needs a Cloudflare API token. wrangler exposes no machine-readable Hyperdrive list, so Void checks the account over the Cloudflare REST API, which a Cloudflare browser OAuth cannot authenticate. Without that check a create would silently duplicate an existing same-named config, so nothing was provisioned. Either (a) export CLOUDFLARE_API_TOKEN with Hyperdrive edit permission and rerun, or (b) create the Hyperdrive config yourself (dashboard / "wrangler hyperdrive create") and add its id to the ${JSON.stringify(binding)} hyperdrive binding in "${configPath}" — deploying an already-provisioned Hyperdrive needs no token.`);
2140
2173
  throw new Error(`provision: Hyperdrive config ${JSON.stringify(name)} is not in "${configPath}" yet, and there is no DATABASE_URL to create it from. Nothing was provisioned. Either (a) export DATABASE_URL with your PostgreSQL connection string and rerun (Void reads it from the shell — a value in .env/.env.local is NOT used here, so it never ships as a plaintext worker var), or (b) create the Hyperdrive config yourself (dashboard / "wrangler hyperdrive create") and add its id to the ${JSON.stringify(binding)} hyperdrive binding in "${configPath}" — deploying an already-provisioned Hyperdrive needs neither DATABASE_URL nor an API token.`);
2141
2174
  }
2142
2175
  }
@@ -2554,4 +2587,4 @@ async function provisionCloudflareResourcesLocked(root, configPath, desired, opt
2554
2587
  };
2555
2588
  }
2556
2589
  //#endregion
2557
- export { WranglerQuarantineError, acquireProvisionLock, assertNoTransportRedirectInProjectDotenv, assertValidResourceName, checkCloudflareProvisionDrift, createDefaultRunWrangler, deleteEnvVarCaseAware, isAlreadyGoneKillError, isQuarantineError, isQueueConfirmedAbsent, isRealD1Id, isRealKvId, normalizeRunWranglerResult, provisionCloudflareResources, provisionEnv, resolvePinnedApiBaseUrl, scanWranglerDotenvKeys };
2590
+ export { provision_exports as a, provisionEnv as i, createDefaultRunWrangler as n, resolvePinnedApiBaseUrl as o, deleteEnvVarCaseAware as r, assertNoTransportRedirectInProjectDotenv as t };
@@ -0,0 +1,30 @@
1
+ //#region src/runtime/remote/r2-conditions.ts
2
+ function serializeR2Conditional(value) {
3
+ if (value instanceof Headers) return Array.from(value.entries());
4
+ return {
5
+ ...value,
6
+ uploadedBefore: value.uploadedBefore?.toISOString(),
7
+ uploadedAfter: value.uploadedAfter?.toISOString()
8
+ };
9
+ }
10
+ function parseR2Conditional(value) {
11
+ if (Array.isArray(value)) {
12
+ if (!value.every((pair) => Array.isArray(pair) && pair.length === 2 && pair.every((item) => typeof item === "string"))) throw new Error("Invalid R2 conditional headers");
13
+ return new Headers(value);
14
+ }
15
+ if (!value || typeof value !== "object") throw new Error("Invalid R2 conditional options");
16
+ const result = {};
17
+ for (const [key, entry] of Object.entries(value)) if (key === "etagMatches" || key === "etagDoesNotMatch") {
18
+ if (typeof entry !== "string") throw new Error(`Invalid R2 condition: ${key}`);
19
+ result[key] = entry;
20
+ } else if (key === "uploadedBefore" || key === "uploadedAfter") {
21
+ if (typeof entry !== "string" || !Number.isFinite(Date.parse(entry))) throw new Error(`Invalid R2 condition: ${key}`);
22
+ result[key] = new Date(entry);
23
+ } else if (key === "secondsGranularity") {
24
+ if (typeof entry !== "boolean") throw new Error(`Invalid R2 condition: ${key}`);
25
+ result[key] = entry;
26
+ } else throw new Error(`Unsupported R2 condition: ${key}`);
27
+ return result;
28
+ }
29
+ //#endregion
30
+ export { serializeR2Conditional as n, parseR2Conditional as t };
@@ -1,5 +1,6 @@
1
- import { D as outro, T as log, a as cliTitle, s as dim, u as import_picocolors, w as intro } from "./agents-CtgBYqld.mjs";
2
- import { b as readProjectConfig, f as getToken, n as PlatformClient } from "./client-Gb71-XkG.mjs";
1
+ import { D as log, E as intro, a as dim, c as import_picocolors, k as outro, r as cliTitle } from "./output-tFQLLj26.mjs";
2
+ import { c as getToken, x as readProjectConfig } from "./auth-W9WII-mN.mjs";
3
+ import { n as PlatformClient } from "./client-CyCHWSO_.mjs";
3
4
  //#region src/cli/requests.ts
4
5
  async function runRequestsCommand(root, range, status) {
5
6
  console.log();
@@ -27,7 +28,8 @@ async function runRequestsCommand(root, range, status) {
27
28
  process.exit(1);
28
29
  }
29
30
  if (entries.length === 0) {
30
- outro(`No requests found in the last ${range}${status ? ` matching status ${status}` : ""}.`);
31
+ const suffix = status ? ` matching status ${status}` : "";
32
+ outro(`No requests found in the last ${range}${suffix}.`);
31
33
  return;
32
34
  }
33
35
  for (const entry of entries) printRequest(entry);
@@ -1,5 +1,5 @@
1
- import { n as __exportAll } from "./rolldown-runtime-DJK8HYOj.mjs";
2
- import { a as join } from "./dist-DaKKDf8D.mjs";
1
+ import { n as __exportAll } from "./rolldown-runtime-rQ84J-ij.mjs";
2
+ import { o as join } from "./dist-BrsS7cai.mjs";
3
3
  import { readFileSync } from "node:fs";
4
4
  //#region src/cli/resolve-project.ts
5
5
  var resolve_project_exports = /* @__PURE__ */ __exportAll({