void 0.1.6 → 0.7.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 (333) hide show
  1. package/AGENT_PROMPT.md +15 -0
  2. package/README.md +62 -123
  3. package/dist/auth-BdsJ0Aff.d.mts +43 -0
  4. package/dist/auth-cmd-Dx8oPKZC.mjs +43 -0
  5. package/dist/auth-migrations-BAtAck2g.mjs +117 -0
  6. package/dist/better-auth-shared-C9_GHSkR.d.mts +71 -0
  7. package/dist/better-auth-shared-CdYmQGry.mjs +163 -0
  8. package/dist/cache-W82I8ihI.mjs +47 -0
  9. package/dist/cancel-deploy-BOBTqqh0.mjs +59 -0
  10. package/dist/cf-access-Dee5cXxL.mjs +22 -0
  11. package/dist/chunk-DJd-R1mw.mjs +34 -0
  12. package/dist/cli/cli.d.mts +1 -0
  13. package/dist/cli/cli.mjs +1807 -0
  14. package/dist/client-snXOjrp1.mjs +565 -0
  15. package/dist/collect-CjeZgz5D.mjs +55 -0
  16. package/dist/config-BIa9HwVX.mjs +573 -0
  17. package/dist/config-BzM9Dy7T.mjs +37 -0
  18. package/dist/config-CvHtTM0q.mjs +30 -0
  19. package/dist/create-project-BIA15W7z.mjs +90 -0
  20. package/dist/db-DsRoMcfN.mjs +895 -0
  21. package/dist/defer-DcxEsVH1.mjs +49 -0
  22. package/dist/delete-DAP6yDc7.mjs +64 -0
  23. package/dist/deploy-BPKblFx6.mjs +2424 -0
  24. package/dist/discover-B7FkXBLB.mjs +40 -0
  25. package/dist/dist-DUyXJLkq.mjs +2667 -0
  26. package/dist/dist-Dayj3gCK.mjs +1287 -0
  27. package/dist/domain-BGofcQ6I.mjs +79 -0
  28. package/dist/dotenv-DwO4ti0Z.mjs +173 -0
  29. package/dist/drizzle-NnudE_UN.mjs +232 -0
  30. package/dist/env-CyG3tvU0.mjs +301 -0
  31. package/dist/env-helpers-Dr9Y7RnE.d.mts +52 -0
  32. package/dist/env-raw-BDL4TvdN.mjs +32 -0
  33. package/dist/env-types-DknSA4SO.mjs +64 -0
  34. package/dist/env-validation-DJKjR_8q.mjs +163 -0
  35. package/dist/fetch-error-BQ8sZ5Nd.mjs +266 -0
  36. package/dist/fetch-error-CVZ5CGA-.d.mts +20 -0
  37. package/dist/gen-U0Ktr4Zd.mjs +761 -0
  38. package/dist/handler-B0ds0OHJ.d.mts +269 -0
  39. package/dist/head-P-egrtFE.d.mts +45 -0
  40. package/dist/headers-DCXc7mDs.mjs +279 -0
  41. package/dist/index.d.mts +32 -0
  42. package/dist/index.mjs +4695 -0
  43. package/dist/init-C7wS5iGP.mjs +2625 -0
  44. package/dist/link-p2R6NbgN.mjs +49 -0
  45. package/dist/list-Bfel-QLc.mjs +113 -0
  46. package/dist/log-DXdqnmhF.mjs +26 -0
  47. package/dist/login-CkcXUiIu.mjs +72 -0
  48. package/dist/logs-DmkrRvx6.mjs +98 -0
  49. package/dist/magic-string.es-D6g9UnIy.mjs +1011 -0
  50. package/dist/mcp-CaQzfeUi.mjs +373 -0
  51. package/dist/node-DDfXj10V.mjs +54 -0
  52. package/dist/output-BwlcIYSR.mjs +139 -0
  53. package/dist/pages/client.d.mts +198 -0
  54. package/dist/pages/client.mjs +980 -0
  55. package/dist/pages/head-client.d.mts +15 -0
  56. package/dist/pages/head-client.mjs +90 -0
  57. package/dist/pages/head.d.mts +2 -0
  58. package/dist/pages/head.mjs +112 -0
  59. package/dist/pages/index.d.mts +38 -0
  60. package/dist/pages/index.mjs +76 -0
  61. package/dist/pages/islands-plugin.d.mts +50 -0
  62. package/dist/pages/islands-plugin.mjs +195 -0
  63. package/dist/pages/prefetch.d.mts +31 -0
  64. package/dist/pages/prefetch.mjs +90 -0
  65. package/dist/pages/protocol.d.mts +3 -0
  66. package/dist/pages/protocol.mjs +193 -0
  67. package/dist/pages/serialize.d.mts +10 -0
  68. package/dist/pages/serialize.mjs +14 -0
  69. package/dist/pathe.M-eThtNZ-D-kmWkCS.mjs +150 -0
  70. package/dist/plugin-inference-oZ6Ybu2_.mjs +2447 -0
  71. package/dist/prepare-BAtWufvm.mjs +99 -0
  72. package/dist/preset-D4I73kT4.mjs +221 -0
  73. package/dist/project-TqORyHn8.mjs +72 -0
  74. package/dist/project-cmd-B7lQp3F3.mjs +67 -0
  75. package/dist/project-slug-CKam8lF9.mjs +11 -0
  76. package/dist/project-tsconfig-DfkESbDL.mjs +63 -0
  77. package/dist/protocol-BWzXs2A2.d.mts +34 -0
  78. package/dist/providers-B3aMxWzP.mjs +67 -0
  79. package/dist/resolve-project-Br5BR03U.mjs +29 -0
  80. package/dist/rollback-gyC59l7U.mjs +92 -0
  81. package/dist/route-types-DReF1gUY.mjs +255 -0
  82. package/dist/routes-stub.d.mts +55 -0
  83. package/dist/routes-stub.mjs +1 -0
  84. package/dist/runner-6Ep3fNQu.mjs +123 -0
  85. package/dist/runner-pg-D0wWHYnr.mjs +57 -0
  86. package/dist/runtime/ai.d.mts +127 -0
  87. package/dist/runtime/ai.mjs +348 -0
  88. package/dist/runtime/auth-client-react.d.mts +8 -0
  89. package/dist/runtime/auth-client-react.mjs +6 -0
  90. package/dist/runtime/auth-client-solid.d.mts +8 -0
  91. package/dist/runtime/auth-client-solid.mjs +6 -0
  92. package/dist/runtime/auth-client-svelte.d.mts +8 -0
  93. package/dist/runtime/auth-client-svelte.mjs +6 -0
  94. package/dist/runtime/auth-client-vue.d.mts +8 -0
  95. package/dist/runtime/auth-client-vue.mjs +6 -0
  96. package/dist/runtime/auth-client.d.mts +8 -0
  97. package/dist/runtime/auth-client.mjs +6 -0
  98. package/dist/runtime/auth.d.mts +2 -0
  99. package/dist/runtime/auth.mjs +22 -0
  100. package/dist/runtime/better-auth-pg.d.mts +11 -0
  101. package/dist/runtime/better-auth-pg.mjs +51 -0
  102. package/dist/runtime/better-auth.d.mts +11 -0
  103. package/dist/runtime/better-auth.mjs +33 -0
  104. package/dist/runtime/client.d.mts +6 -0
  105. package/dist/runtime/client.mjs +5 -0
  106. package/dist/runtime/db-pg.d.mts +2 -0
  107. package/dist/runtime/db-pg.mjs +1 -0
  108. package/dist/runtime/db.d.mts +17 -0
  109. package/dist/runtime/db.mjs +30 -0
  110. package/dist/runtime/drizzle-arktype.d.mts +1 -0
  111. package/dist/runtime/drizzle-arktype.mjs +2 -0
  112. package/dist/runtime/drizzle-valibot.d.mts +1 -0
  113. package/dist/runtime/drizzle-valibot.mjs +2 -0
  114. package/dist/runtime/drizzle-zod.d.mts +1 -0
  115. package/dist/runtime/drizzle-zod.mjs +2 -0
  116. package/dist/runtime/env-helpers.d.mts +2 -0
  117. package/dist/runtime/env-helpers.mjs +173 -0
  118. package/dist/runtime/env-public-client.d.mts +22 -0
  119. package/dist/runtime/env-public-client.mjs +54 -0
  120. package/dist/runtime/env-public.d.mts +143 -0
  121. package/dist/runtime/env-public.mjs +366 -0
  122. package/dist/runtime/env.d.mts +13 -0
  123. package/dist/runtime/env.mjs +51 -0
  124. package/dist/runtime/fetch-stream.d.mts +51 -0
  125. package/dist/runtime/fetch-stream.mjs +81 -0
  126. package/dist/runtime/fetch.d.mts +59 -0
  127. package/dist/runtime/fetch.mjs +18 -0
  128. package/dist/runtime/handler.d.mts +3 -0
  129. package/dist/runtime/handler.mjs +85 -0
  130. package/dist/runtime/isr.d.mts +26 -0
  131. package/dist/runtime/isr.mjs +43 -0
  132. package/dist/runtime/kv.d.mts +48 -0
  133. package/dist/runtime/kv.mjs +106 -0
  134. package/dist/runtime/log.d.mts +24 -0
  135. package/dist/runtime/log.mjs +31 -0
  136. package/dist/runtime/migration-handler-pg.d.mts +6 -0
  137. package/dist/runtime/migration-handler-pg.mjs +85 -0
  138. package/dist/runtime/migration-handler.d.mts +19 -0
  139. package/dist/runtime/migration-handler.mjs +92 -0
  140. package/dist/runtime/queues.d.mts +7 -0
  141. package/dist/runtime/queues.mjs +8 -0
  142. package/dist/runtime/remote/binding-handler.d.mts +15 -0
  143. package/dist/runtime/remote/binding-handler.mjs +208 -0
  144. package/dist/runtime/remote/index.d.mts +8 -0
  145. package/dist/runtime/remote/index.mjs +461 -0
  146. package/dist/runtime/response.d.mts +14 -0
  147. package/dist/runtime/response.mjs +30 -0
  148. package/dist/runtime/sandbox.d.mts +17 -0
  149. package/dist/runtime/sandbox.mjs +19 -0
  150. package/dist/runtime/schema-d1.d.mts +1 -0
  151. package/dist/runtime/schema-d1.mjs +2 -0
  152. package/dist/runtime/schema-pg.d.mts +1 -0
  153. package/dist/runtime/schema-pg.mjs +2 -0
  154. package/dist/runtime/seed.d.mts +30 -0
  155. package/dist/runtime/seed.mjs +6 -0
  156. package/dist/runtime/storage.d.mts +7 -0
  157. package/dist/runtime/storage.mjs +14 -0
  158. package/dist/runtime/validator.d.mts +2 -0
  159. package/dist/runtime/validator.mjs +72 -0
  160. package/dist/runtime/ws-server.d.mts +26 -0
  161. package/dist/runtime/ws-server.mjs +296 -0
  162. package/dist/runtime/ws.d.mts +123 -0
  163. package/dist/runtime/ws.mjs +103 -0
  164. package/dist/scan-Ba4hFwlH.mjs +324 -0
  165. package/dist/scan-C6HMEIdW.mjs +318 -0
  166. package/dist/secret-CeRSukgM.mjs +109 -0
  167. package/dist/skills-ipldjlKE.mjs +62 -0
  168. package/dist/standard-schema-9CRjx-uR.d.mts +42 -0
  169. package/dist/subcommand-prompt-BKjuNAPb.mjs +349 -0
  170. package/dist/sveltekit.d.mts +20 -0
  171. package/dist/sveltekit.mjs +61 -0
  172. package/dist/types-mHOEwpW4.d.mts +57 -0
  173. package/dist/validate-CaMavMxu.mjs +146 -0
  174. package/dist/yarn-pnp-BFqMV_bl.mjs +196 -0
  175. package/getting-started-prompt.txt +26 -0
  176. package/package.json +322 -30
  177. package/schema.json +364 -0
  178. package/skills/migrate-vite-cloudflare-to-void/SKILL.md +175 -0
  179. package/skills/void/SKILL.md +75 -0
  180. package/skills/void/command/void.md +7 -0
  181. package/skills/void/docs/guide/ai.md +235 -0
  182. package/skills/void/docs/guide/app-types.md +103 -0
  183. package/skills/void/docs/guide/auth.md +257 -0
  184. package/skills/void/docs/guide/database/d1.md +106 -0
  185. package/skills/void/docs/guide/database/postgresql.md +106 -0
  186. package/skills/void/docs/guide/database.md +418 -0
  187. package/skills/void/docs/guide/deployment.md +98 -0
  188. package/skills/void/docs/guide/edge/headers.md +79 -0
  189. package/skills/void/docs/guide/edge/prerendering.md +83 -0
  190. package/skills/void/docs/guide/edge/redirects.md +116 -0
  191. package/skills/void/docs/guide/edge/revalidation.md +131 -0
  192. package/skills/void/docs/guide/edge/rewrites.md +354 -0
  193. package/skills/void/docs/guide/edge/static-assets.md +72 -0
  194. package/skills/void/docs/guide/env-vars.md +298 -0
  195. package/skills/void/docs/guide/index.md +80 -0
  196. package/skills/void/docs/guide/jobs.md +91 -0
  197. package/skills/void/docs/guide/kv.md +107 -0
  198. package/skills/void/docs/guide/pages-routing/actions-and-forms.md +419 -0
  199. package/skills/void/docs/guide/pages-routing/head.md +130 -0
  200. package/skills/void/docs/guide/pages-routing/islands.md +405 -0
  201. package/skills/void/docs/guide/pages-routing/layouts.md +362 -0
  202. package/skills/void/docs/guide/pages-routing/loaders.md +267 -0
  203. package/skills/void/docs/guide/pages-routing/markdown.md +625 -0
  204. package/skills/void/docs/guide/pages-routing/overview.md +236 -0
  205. package/skills/void/docs/guide/pages-routing/view-transitions.md +140 -0
  206. package/skills/void/docs/guide/queues.md +140 -0
  207. package/skills/void/docs/guide/quickstart.md +233 -0
  208. package/skills/void/docs/guide/remote-dev.md +67 -0
  209. package/skills/void/docs/guide/sandboxes.md +82 -0
  210. package/skills/void/docs/guide/server-routing.md +246 -0
  211. package/skills/void/docs/guide/ssg.md +74 -0
  212. package/skills/void/docs/guide/ssr.md +105 -0
  213. package/skills/void/docs/guide/storage.md +67 -0
  214. package/skills/void/docs/guide/type-safety.md +179 -0
  215. package/skills/void/docs/guide/typed-fetch.md +113 -0
  216. package/skills/void/docs/guide/websockets.md +190 -0
  217. package/skills/void/docs/index.md +48 -0
  218. package/skills/void/docs/integrations/agents.md +84 -0
  219. package/skills/void/docs/integrations/cloudflare.md +284 -0
  220. package/skills/void/docs/integrations/frameworks/analog.md +182 -0
  221. package/skills/void/docs/integrations/frameworks/astro.md +197 -0
  222. package/skills/void/docs/integrations/frameworks/nuxt.md +164 -0
  223. package/skills/void/docs/integrations/frameworks/overview.md +136 -0
  224. package/skills/void/docs/integrations/frameworks/react-router.md +137 -0
  225. package/skills/void/docs/integrations/frameworks/sveltekit.md +191 -0
  226. package/skills/void/docs/integrations/frameworks/tanstack-start.md +140 -0
  227. package/skills/void/docs/integrations/hono.md +97 -0
  228. package/skills/void/docs/integrations/nodejs-bun-deno.md +210 -0
  229. package/skills/void/docs/node_modules/@iconify/vue/README.md +408 -0
  230. package/skills/void/docs/node_modules/@iconify/vue/offline/readme.md +5 -0
  231. package/skills/void/docs/node_modules/@voidzero-dev/vitepress-theme/README.md +103 -0
  232. package/skills/void/docs/node_modules/oxc-minify/README.md +78 -0
  233. package/skills/void/docs/node_modules/reka-ui/README.md +80 -0
  234. package/skills/void/docs/node_modules/vitepress/README.md +28 -0
  235. package/skills/void/docs/node_modules/vitepress/template/api-examples.md +49 -0
  236. package/skills/void/docs/node_modules/vitepress/template/index.md +28 -0
  237. package/skills/void/docs/node_modules/vitepress/template/markdown-examples.md +85 -0
  238. package/skills/void/docs/node_modules/vitepress-plugin-group-icons/README.md +101 -0
  239. package/skills/void/docs/node_modules/void/AGENTS.md +204 -0
  240. package/skills/void/docs/node_modules/void/AGENT_PROMPT.md +15 -0
  241. package/skills/void/docs/node_modules/void/README.md +89 -0
  242. package/skills/void/docs/node_modules/void/node_modules/@clack/prompts/CHANGELOG.md +591 -0
  243. package/skills/void/docs/node_modules/void/node_modules/@clack/prompts/README.md +375 -0
  244. package/skills/void/docs/node_modules/void/node_modules/@cloudflare/sandbox/README.md +174 -0
  245. package/skills/void/docs/node_modules/void/node_modules/@cloudflare/vite-plugin/README.md +37 -0
  246. package/skills/void/docs/node_modules/void/node_modules/@cloudflare/workers-types/README.md +135 -0
  247. package/skills/void/docs/node_modules/void/node_modules/@electric-sql/pglite/README.md +189 -0
  248. package/skills/void/docs/node_modules/void/node_modules/@hono/oauth-providers/CHANGELOG.md +143 -0
  249. package/skills/void/docs/node_modules/void/node_modules/@hono/oauth-providers/README.md +1272 -0
  250. package/skills/void/docs/node_modules/void/node_modules/@napi-rs/keyring/README.md +19 -0
  251. package/skills/void/docs/node_modules/void/node_modules/@types/better-sqlite3/README.md +15 -0
  252. package/skills/void/docs/node_modules/void/node_modules/@types/node/README.md +15 -0
  253. package/skills/void/docs/node_modules/void/node_modules/@types/pg/README.md +15 -0
  254. package/skills/void/docs/node_modules/void/node_modules/@typescript/native-preview/README.md +22 -0
  255. package/skills/void/docs/node_modules/void/node_modules/@typescript/native-preview/vendor/vscode-jsonrpc/README.md +69 -0
  256. package/skills/void/docs/node_modules/void/node_modules/@void/md/README.md +152 -0
  257. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/@shikijs/engine-javascript/README.md +9 -0
  258. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/@shikijs/transformers/README.md +9 -0
  259. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/@types/node/README.md +15 -0
  260. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/gray-matter/CHANGELOG.md +24 -0
  261. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/gray-matter/README.md +565 -0
  262. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/markdown-exit/README.md +124 -0
  263. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/markdown-it-anchor/README.md +600 -0
  264. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/markdown-it-attrs/README.md +386 -0
  265. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/markdown-it-container/README.md +95 -0
  266. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/markdown-it-emoji/README.md +101 -0
  267. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/pathe/README.md +73 -0
  268. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/shiki/README.md +15 -0
  269. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/tinyglobby/README.md +25 -0
  270. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/tsdown/README.md +55 -0
  271. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite/LICENSE.md +2230 -0
  272. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite/README.md +20 -0
  273. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vue/README.md +58 -0
  274. package/skills/void/docs/node_modules/void/node_modules/arktype/README.md +165 -0
  275. package/skills/void/docs/node_modules/void/node_modules/better-auth/LICENSE.md +20 -0
  276. package/skills/void/docs/node_modules/void/node_modules/better-auth/README.md +32 -0
  277. package/skills/void/docs/node_modules/void/node_modules/better-sqlite3/README.md +99 -0
  278. package/skills/void/docs/node_modules/void/node_modules/blake3-jit/README.md +108 -0
  279. package/skills/void/docs/node_modules/void/node_modules/drizzle-arktype/README.md +51 -0
  280. package/skills/void/docs/node_modules/void/node_modules/drizzle-kit/README.md +79 -0
  281. package/skills/void/docs/node_modules/void/node_modules/drizzle-orm/README.md +44 -0
  282. package/skills/void/docs/node_modules/void/node_modules/drizzle-valibot/README.md +51 -0
  283. package/skills/void/docs/node_modules/void/node_modules/drizzle-zod/README.md +65 -0
  284. package/skills/void/docs/node_modules/void/node_modules/es-module-lexer/README.md +390 -0
  285. package/skills/void/docs/node_modules/void/node_modules/estree-walker/README.md +48 -0
  286. package/skills/void/docs/node_modules/void/node_modules/hono/README.md +85 -0
  287. package/skills/void/docs/node_modules/void/node_modules/ignore/README.md +452 -0
  288. package/skills/void/docs/node_modules/void/node_modules/jsonc-parser/CHANGELOG.md +76 -0
  289. package/{LICENSE → skills/void/docs/node_modules/void/node_modules/jsonc-parser/LICENSE.md} +21 -21
  290. package/skills/void/docs/node_modules/void/node_modules/jsonc-parser/README.md +364 -0
  291. package/skills/void/docs/node_modules/void/node_modules/jsonc-parser/SECURITY.md +41 -0
  292. package/skills/void/docs/node_modules/void/node_modules/magic-string/README.md +325 -0
  293. package/skills/void/docs/node_modules/void/node_modules/ofetch/README.md +398 -0
  294. package/skills/void/docs/node_modules/void/node_modules/pathe/README.md +73 -0
  295. package/skills/void/docs/node_modules/void/node_modules/pg/README.md +95 -0
  296. package/skills/void/docs/node_modules/void/node_modules/pglite-server/LICENSE.md +21 -0
  297. package/skills/void/docs/node_modules/void/node_modules/pglite-server/README.md +135 -0
  298. package/skills/void/docs/node_modules/void/node_modules/picocolors/README.md +21 -0
  299. package/skills/void/docs/node_modules/void/node_modules/tinyglobby/README.md +25 -0
  300. package/skills/void/docs/node_modules/void/node_modules/tsdown/README.md +55 -0
  301. package/skills/void/docs/node_modules/void/node_modules/valibot/LICENSE.md +9 -0
  302. package/skills/void/docs/node_modules/void/node_modules/valibot/README.md +94 -0
  303. package/skills/void/docs/node_modules/void/node_modules/vite/LICENSE.md +2230 -0
  304. package/skills/void/docs/node_modules/void/node_modules/vite/README.md +20 -0
  305. package/skills/void/docs/node_modules/void/node_modules/wrangler/README.md +63 -0
  306. package/skills/void/docs/node_modules/void/node_modules/zod/README.md +191 -0
  307. package/skills/void/docs/node_modules/void/skills/migrate-vite-cloudflare-to-void/SKILL.md +175 -0
  308. package/skills/void/docs/node_modules/void/skills/void/SKILL.md +75 -0
  309. package/skills/void/docs/node_modules/void/skills/void/command/void.md +7 -0
  310. package/skills/void/docs/reference/api.md +917 -0
  311. package/skills/void/docs/reference/cli.md +561 -0
  312. package/skills/void/docs/reference/config.md +408 -0
  313. package/skills/void/docs/reference/resource-inference.md +149 -0
  314. package/skills/void/docs/reference/structure.md +176 -0
  315. package/.npmignore +0 -29
  316. package/.travis.yml +0 -9
  317. package/favicon.ico +0 -0
  318. package/index.js +0 -14
  319. package/lib/Job.js +0 -150
  320. package/lib/Void.js +0 -99
  321. package/lib/scan.js +0 -19
  322. package/test/credentials.js +0 -20
  323. package/test/job.js +0 -64
  324. package/test/static/dir1/test6.html +0 -0
  325. package/test/static/dir2/test7.html +0 -0
  326. package/test/static/dir2/test8.html +0 -0
  327. package/test/static/dir2/test9.html +0 -0
  328. package/test/static/test1.html +0 -0
  329. package/test/static/test2.html +0 -0
  330. package/test/static/test3.html +0 -0
  331. package/test/void.js +0 -31
  332. /package/{test/static/dir1/test4.html → skills/void/docs/integrations/auth-providers.md} +0 -0
  333. /package/{test/static/dir1/test5.html → skills/void/docs/integrations/payment-processors.md} +0 -0
@@ -0,0 +1,137 @@
1
+ ---
2
+ outline: deep
3
+ ---
4
+
5
+ # React Router v7
6
+
7
+ [React Router v7](https://reactrouter.com/) is a Vite-based full-stack React framework. `voidPlugin()` composes directly with the React Router plugin in the Vite pipeline, so there is no separate adapter to install.
8
+
9
+ ## Setup
10
+
11
+ ### 1. Create a new project
12
+
13
+ ```bash
14
+ npm create react-router@latest my-app
15
+ cd my-app
16
+ ```
17
+
18
+ ### 2. Install dependencies
19
+
20
+ ```bash
21
+ npm install -D void
22
+ ```
23
+
24
+ ### 3. Configure `vite.config.ts`
25
+
26
+ ```ts
27
+ import { defineConfig } from 'vite';
28
+ import { reactRouter } from '@react-router/dev/vite';
29
+ import { voidPlugin } from 'void';
30
+
31
+ export default defineConfig({
32
+ plugins: [
33
+ voidPlugin(), // must come before the framework plugin
34
+ reactRouter(),
35
+ ],
36
+ });
37
+ ```
38
+
39
+ ### 4. Deploy
40
+
41
+ ```bash
42
+ void auth login
43
+ void deploy
44
+ ```
45
+
46
+ ## Using Void Platform Features
47
+
48
+ Most [Void platform features](../../guide/app-types.md#void-apps) work with React Router. Use them in loaders and actions:
49
+
50
+ Void-managed auth is not supported in framework mode yet. Use Better Auth's official React Router integration directly for now.
51
+
52
+ ### Database
53
+
54
+ ```tsx
55
+ import type { Route } from './+types/users';
56
+ import { db } from 'void/db';
57
+ import { users } from '@schema';
58
+
59
+ export async function loader({}: Route.LoaderArgs) {
60
+ return { users: await db.select().from(users) };
61
+ }
62
+ ```
63
+
64
+ ### KV Storage
65
+
66
+ ```tsx
67
+ import { kv } from 'void/kv';
68
+
69
+ export async function loader() {
70
+ return { settings: await kv.get('app:settings') };
71
+ }
72
+ ```
73
+
74
+ ### Blob Storage
75
+
76
+ ```tsx
77
+ import { storage } from 'void/storage';
78
+
79
+ export async function loader() {
80
+ return { avatar: await storage.get('avatars/user-1.png') };
81
+ }
82
+ ```
83
+
84
+ ### AI
85
+
86
+ ```tsx
87
+ import { ai } from 'void/ai';
88
+
89
+ export async function action() {
90
+ return ai.run('@cf/meta/llama-3.1-8b-instruct', {
91
+ prompt: 'Summarize the latest news',
92
+ });
93
+ }
94
+ ```
95
+
96
+ ### Cron Jobs
97
+
98
+ ```ts
99
+ // crons/daily-cleanup.ts
100
+ import { defineScheduled } from 'void';
101
+
102
+ export const cron = '0 0 * * *';
103
+
104
+ export default defineScheduled(async () => {
105
+ // runs daily at midnight
106
+ });
107
+ ```
108
+
109
+ ### Queue Consumers
110
+
111
+ ```ts
112
+ // queues/emails.ts
113
+ import { defineQueue } from 'void';
114
+
115
+ export default defineQueue<{ to: string; subject: string }>(async (batch) => {
116
+ for (const msg of batch.messages) {
117
+ // process each message
118
+ msg.ack();
119
+ }
120
+ });
121
+ ```
122
+
123
+ ### Environment Variables
124
+
125
+ Void gives you a typed env layer: declare keys in `env.ts`, read them via `import { env } from "void/env"`, and get schema validation at build + deploy time plus a client-leak guard that fails the build if a server-only key reaches the browser. See the [env vars guide](../../guide/env-vars.md) for the full feature set.
126
+
127
+ React Router-specific caveat: because `loader()` and the component live in the same route file, the leak guard treats the module as client-reachable. Reading `env.SERVER_ONLY_KEY` inside `loader()` is safe at runtime (RR strips loaders from the client bundle), but the guard flags it as a potential leak. Move server-only secrets into a `.server.ts` companion file to silence the guard cleanly.
128
+
129
+ ## Accessing Bindings Directly
130
+
131
+ You can also access Cloudflare bindings via the `cloudflare:workers` module:
132
+
133
+ ```tsx
134
+ import { env } from 'cloudflare:workers';
135
+
136
+ const { results } = await env.DB.prepare('SELECT * FROM users').all();
137
+ ```
@@ -0,0 +1,191 @@
1
+ ---
2
+ outline: deep
3
+ ---
4
+
5
+ # SvelteKit
6
+
7
+ [SvelteKit](https://svelte.dev/docs/kit) uses Vite internally with its own Cloudflare adapter (`@sveltejs/adapter-cloudflare`). Add `voidPlugin()` to the Vite config for binding inference, typed DB, and migrations during development.
8
+
9
+ ## Setup
10
+
11
+ ### 1. Create a new project
12
+
13
+ ```bash
14
+ npx sv create my-app
15
+ cd my-app
16
+ ```
17
+
18
+ ### 2. Install dependencies
19
+
20
+ ```bash
21
+ npm install -D @sveltejs/adapter-cloudflare void
22
+ ```
23
+
24
+ ### 3. Configure `svelte.config.js`
25
+
26
+ ```js
27
+ import adapter from '@sveltejs/adapter-cloudflare';
28
+ import { withVoidTSConfig } from 'void/sveltekit';
29
+
30
+ export default {
31
+ kit: {
32
+ adapter: adapter(),
33
+ typescript: {
34
+ config: withVoidTSConfig(),
35
+ },
36
+ },
37
+ };
38
+ ```
39
+
40
+ ### 4. Add `voidPlugin()` to `vite.config.ts`
41
+
42
+ ```ts
43
+ import { sveltekit } from '@sveltejs/kit/vite';
44
+ import { voidPlugin } from 'void';
45
+ import { defineConfig } from 'vite';
46
+
47
+ export default defineConfig({
48
+ plugins: [voidPlugin(), sveltekit()],
49
+ });
50
+ ```
51
+
52
+ ### 5. Create `wrangler.jsonc`
53
+
54
+ SvelteKit's adapter reads bindings from `wrangler.jsonc` for local dev. `voidPlugin()` auto-syncs inferred bindings into this file on dev startup, so you only need the base config:
55
+
56
+ ```jsonc
57
+ {
58
+ "name": "my-app",
59
+ "compatibility_date": "2026-02-24",
60
+ "compatibility_flags": ["nodejs_compat"],
61
+ }
62
+ ```
63
+
64
+ By default, SvelteKit's Cloudflare adapter, `voidPlugin()` migrations, and `void db` commands share Wrangler's local state at `.wrangler/state/v3`, so no extra `platformProxy.persist` configuration is required.
65
+
66
+ ### 6. Configure `tsconfig.json`
67
+
68
+ SvelteKit generates `.svelte-kit/tsconfig.json` and expects your root config to extend it. Void generates `.void/tsconfig.json` for project-specific aliases such as `void/db` and `@schema`.
69
+
70
+ Do not add Void's `compilerOptions.paths` to the root `tsconfig.json`; SvelteKit warns because root-level paths override its generated aliases. The `withVoidTSConfig()` hook above merges Void's generated files and aliases into SvelteKit's generated config instead.
71
+
72
+ ```json
73
+ {
74
+ "extends": "./.svelte-kit/tsconfig.json",
75
+ "compilerOptions": {
76
+ "types": ["void/env"]
77
+ }
78
+ }
79
+ ```
80
+
81
+ Run `void prepare` after a fresh clone or before typechecking in CI so `.void/tsconfig.json` exists before SvelteKit syncs its config.
82
+
83
+ ### 7. Deploy
84
+
85
+ ```bash
86
+ void auth login
87
+ void deploy
88
+ ```
89
+
90
+ ## Using Void Platform Features
91
+
92
+ Most [Void platform features](../../guide/app-types.md#void-apps) work with SvelteKit. Use them in server load functions, actions, and API routes:
93
+
94
+ Void-managed auth is not supported in framework mode yet. Use Better Auth's official SvelteKit integration directly for now.
95
+
96
+ ### Database
97
+
98
+ ```ts
99
+ // src/routes/users/+page.server.ts
100
+ import { db } from 'void/db';
101
+ import { users } from '@schema';
102
+
103
+ export async function load() {
104
+ return { users: await db.select().from(users) };
105
+ }
106
+ ```
107
+
108
+ ### KV Storage
109
+
110
+ ```ts
111
+ import { kv } from 'void/kv';
112
+
113
+ export async function load() {
114
+ return { settings: await kv.get('app:settings') };
115
+ }
116
+ ```
117
+
118
+ ### Blob Storage
119
+
120
+ ```ts
121
+ import { storage } from 'void/storage';
122
+
123
+ export async function load() {
124
+ return { avatar: await storage.get('avatars/user-1.png') };
125
+ }
126
+ ```
127
+
128
+ ### AI
129
+
130
+ ```ts
131
+ import { ai } from 'void/ai';
132
+
133
+ export const actions = {
134
+ summarize: async () => {
135
+ return ai.run('@cf/meta/llama-3.1-8b-instruct', {
136
+ prompt: 'Summarize the latest news',
137
+ });
138
+ },
139
+ };
140
+ ```
141
+
142
+ ### Cron Jobs
143
+
144
+ ```ts
145
+ // crons/daily-cleanup.ts
146
+ import { defineScheduled } from 'void';
147
+
148
+ export const cron = '0 0 * * *';
149
+
150
+ export default defineScheduled(async () => {
151
+ // runs daily at midnight
152
+ });
153
+ ```
154
+
155
+ ### Queue Consumers
156
+
157
+ ```ts
158
+ // queues/emails.ts
159
+ import { defineQueue } from 'void';
160
+
161
+ export default defineQueue<{ to: string; subject: string }>(async (batch) => {
162
+ for (const msg of batch.messages) {
163
+ // process each message
164
+ msg.ack();
165
+ }
166
+ });
167
+ ```
168
+
169
+ ### Environment Variables
170
+
171
+ Void gives you a typed env layer: declare keys in `env.ts`, read them via `import { env } from "void/env"`, and get schema validation at build + deploy time plus a client-leak guard that fails the build if a server-only key reaches the browser. `void/env` is a drop-in replacement for SvelteKit's `$env/static/*` and `$env/dynamic/*` for env-var access. See the [env vars guide](../../guide/env-vars.md) for the full feature set.
172
+
173
+ ## Accessing Bindings Directly
174
+
175
+ You can also use SvelteKit's `platform.env` in server hooks and load functions:
176
+
177
+ ```ts
178
+ // src/routes/users/+page.server.ts
179
+ export async function load({ platform }) {
180
+ const { results } = await platform.env.DB.prepare('SELECT * FROM users').all();
181
+ return { users: results };
182
+ }
183
+ ```
184
+
185
+ Or the `cloudflare:workers` module:
186
+
187
+ ```ts
188
+ import { env } from 'cloudflare:workers';
189
+
190
+ const { results } = await env.DB.prepare('SELECT * FROM users').all();
191
+ ```
@@ -0,0 +1,140 @@
1
+ ---
2
+ outline: deep
3
+ ---
4
+
5
+ # TanStack Start
6
+
7
+ [TanStack Start](https://tanstack.com/start/latest) is a Vite-based full-stack React framework. `voidPlugin()` composes directly with the TanStack Start plugin in the Vite pipeline, so there is no separate adapter to install.
8
+
9
+ ## Setup
10
+
11
+ ### 1. Create a new project
12
+
13
+ ```bash
14
+ npm create @tanstack/start@latest my-app
15
+ cd my-app
16
+ ```
17
+
18
+ ### 2. Install dependencies
19
+
20
+ ```bash
21
+ npm install -D void
22
+ ```
23
+
24
+ ### 3. Configure `vite.config.ts`
25
+
26
+ ```ts
27
+ import { defineConfig } from 'vite';
28
+ import { tanstackStart } from '@tanstack/react-start/plugin';
29
+ import react from '@vitejs/plugin-react';
30
+ import { voidPlugin } from 'void';
31
+
32
+ export default defineConfig({
33
+ plugins: [
34
+ voidPlugin(), // must come before the framework plugin
35
+ tanstackStart(),
36
+ react(),
37
+ ],
38
+ });
39
+ ```
40
+
41
+ ### 4. Deploy
42
+
43
+ ```bash
44
+ void auth login
45
+ void deploy
46
+ ```
47
+
48
+ ## Using Void Platform Features
49
+
50
+ Most [Void platform features](../../guide/app-types.md#void-apps) work with TanStack Start. Use them in server functions:
51
+
52
+ Void-managed auth is not supported in framework mode yet. Use Better Auth's official TanStack Start integration directly for now.
53
+
54
+ ### Database
55
+
56
+ ```tsx
57
+ import { createServerFn } from '@tanstack/react-start';
58
+ import { db } from 'void/db';
59
+ import { users } from '@schema';
60
+
61
+ const getUsers = createServerFn().handler(async () => {
62
+ return db.select().from(users);
63
+ });
64
+ ```
65
+
66
+ ### KV Storage
67
+
68
+ ```tsx
69
+ import { createServerFn } from '@tanstack/react-start';
70
+ import { kv } from 'void/kv';
71
+
72
+ const getSettings = createServerFn().handler(async () => {
73
+ return kv.get('app:settings');
74
+ });
75
+ ```
76
+
77
+ ### Blob Storage
78
+
79
+ ```tsx
80
+ import { createServerFn } from '@tanstack/react-start';
81
+ import { storage } from 'void/storage';
82
+
83
+ const getAvatar = createServerFn().handler(async () => {
84
+ return storage.get('avatars/user-1.png');
85
+ });
86
+ ```
87
+
88
+ ### AI
89
+
90
+ ```tsx
91
+ import { createServerFn } from '@tanstack/react-start';
92
+ import { ai } from 'void/ai';
93
+
94
+ const summarize = createServerFn().handler(async () => {
95
+ return ai.run('@cf/meta/llama-3.1-8b-instruct', {
96
+ prompt: 'Summarize the latest news',
97
+ });
98
+ });
99
+ ```
100
+
101
+ ### Cron Jobs
102
+
103
+ ```ts
104
+ // crons/daily-cleanup.ts
105
+ import { defineScheduled } from 'void';
106
+
107
+ export const cron = '0 0 * * *';
108
+
109
+ export default defineScheduled(async () => {
110
+ // runs daily at midnight
111
+ });
112
+ ```
113
+
114
+ ### Queue Consumers
115
+
116
+ ```ts
117
+ // queues/emails.ts
118
+ import { defineQueue } from 'void';
119
+
120
+ export default defineQueue<{ to: string; subject: string }>(async (batch) => {
121
+ for (const msg of batch.messages) {
122
+ // process each message
123
+ msg.ack();
124
+ }
125
+ });
126
+ ```
127
+
128
+ ### Environment Variables
129
+
130
+ Void gives you a typed env layer: declare keys in `env.ts`, read them via `import { env } from "void/env"`, and get schema validation at build + deploy time plus a client-leak guard that fails the build if a server-only key reaches the browser. See the [env vars guide](../../guide/env-vars.md) for the full feature set.
131
+
132
+ ## Accessing Bindings Directly
133
+
134
+ You can also access Cloudflare bindings via the `cloudflare:workers` module:
135
+
136
+ ```tsx
137
+ import { env } from 'cloudflare:workers';
138
+
139
+ const { results } = await env.DB.prepare('SELECT * FROM users').all();
140
+ ```
@@ -0,0 +1,97 @@
1
+ ---
2
+ outline: deep
3
+ ---
4
+
5
+ # Hono
6
+
7
+ Void handlers run on [Hono](https://hono.dev). Void depends on Hono internally, but if your app imports from `hono/*` directly, add `hono` to your app's dependencies first.
8
+
9
+ ```bash
10
+ npm install hono
11
+ ```
12
+
13
+ Once `hono` is installed in your app, you can use built-in middleware, helpers, and third-party Hono packages directly.
14
+
15
+ ## Built-in Middleware
16
+
17
+ Use Hono's built-in middleware in your global middleware files or per-route:
18
+
19
+ ```ts
20
+ // middleware/01.cors.ts
21
+ import { defineMiddleware } from 'void';
22
+ import { cors } from 'hono/cors';
23
+
24
+ export default defineMiddleware(cors({ origin: 'https://example.com' }));
25
+ ```
26
+
27
+ ```ts
28
+ // middleware/02.cache.ts
29
+ import { defineMiddleware } from 'void';
30
+ import { cache } from 'hono/cache';
31
+
32
+ export default defineMiddleware(cache({ cacheName: 'my-app', cacheControl: 'max-age=3600' }));
33
+ ```
34
+
35
+ ```ts
36
+ // routes/api/webhooks/stripe.ts (per-route usage)
37
+ import { defineHandler } from 'void';
38
+ import { bearerAuth } from 'hono/bearer-auth';
39
+
40
+ export const POST = defineHandler(bearerAuth({ token: 'webhook-secret' }), async (c) => {
41
+ const body = await c.req.json();
42
+ return { received: true };
43
+ });
44
+ ```
45
+
46
+ ## Response Helpers
47
+
48
+ Hono's context helpers are available on `c` in every handler:
49
+
50
+ ```ts
51
+ // routes/api/download.ts
52
+ import { defineHandler } from 'void';
53
+ import { stream } from 'hono/streaming';
54
+
55
+ export const GET = defineHandler((c) => {
56
+ return stream(c, async (stream) => {
57
+ await stream.write('chunk 1');
58
+ await stream.write('chunk 2');
59
+ });
60
+ });
61
+ ```
62
+
63
+ ```ts
64
+ // routes/api/data.ts
65
+ import { defineHandler } from 'void';
66
+
67
+ export const GET = defineHandler((c) => {
68
+ c.header('X-Custom', 'value');
69
+ c.status(201);
70
+ return c.json({ created: true });
71
+ });
72
+ ```
73
+
74
+ ## Third-party Middleware
75
+
76
+ Any `hono/*` or `@hono/*` package works. Install the package in your app, then use it directly:
77
+
78
+ ```ts
79
+ // middleware/01.rate-limit.ts
80
+ import { defineMiddleware } from 'void';
81
+ import { rateLimiter } from 'hono-rate-limiter';
82
+
83
+ export default defineMiddleware(rateLimiter({ windowMs: 60_000, limit: 100 }));
84
+ ```
85
+
86
+ ## Utilities
87
+
88
+ Hono's standalone helpers work anywhere:
89
+
90
+ ```ts
91
+ import { HTTPException } from 'hono/http-exception';
92
+
93
+ // Throw typed HTTP errors
94
+ throw new HTTPException(404, { message: 'User not found' });
95
+ ```
96
+
97
+ For the full list of built-in middleware, see the [Hono documentation](https://hono.dev/docs/middleware/builtin).