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,79 @@
1
+ import { s as import_picocolors } from "./output-BwlcIYSR.mjs";
2
+ import { c as R, u as Se } from "./dist-Dayj3gCK.mjs";
3
+ import { r as readProjectConfig } from "./project-TqORyHn8.mjs";
4
+ import { n as PlatformClient, s as getToken } from "./client-snXOjrp1.mjs";
5
+ //#region src/cli/domain.ts
6
+ async function runDomainCommand(root, args) {
7
+ const token = getToken(root);
8
+ if (!token) {
9
+ R.error("Not logged in. Run `void auth login` first.");
10
+ process.exit(1);
11
+ }
12
+ const client = new PlatformClient(token, { root });
13
+ const requestedSlug = args.projectSlug ?? process.env.VOID_PROJECT?.trim();
14
+ let projectId;
15
+ if (requestedSlug) {
16
+ const project = (await client.listProjects()).find((p) => p.slug === requestedSlug);
17
+ if (!project) {
18
+ R.error(`project: No project found with slug '${requestedSlug}'.`);
19
+ process.exit(1);
20
+ }
21
+ projectId = project.id;
22
+ } else {
23
+ const config = readProjectConfig(root);
24
+ if (!config) {
25
+ R.error("No linked project. Run `void project link` or pass --project <name>.");
26
+ process.exit(1);
27
+ }
28
+ projectId = config.projectId;
29
+ }
30
+ switch (args.subcommand) {
31
+ case "add": return domainAdd(client, projectId, args.hostname);
32
+ case "delete": return domainRemove(client, projectId, args.hostname);
33
+ case "list": return domainList(client, projectId);
34
+ case "status": return domainStatus(client, projectId, args.hostname);
35
+ }
36
+ }
37
+ async function domainAdd(client, projectId, hostname) {
38
+ const domain = await client.addDomain(projectId, hostname);
39
+ R.success(`Domain ${hostname} added (status: ${domain.status})`);
40
+ Se(`Add a CNAME record:\n ${hostname} → ${domain.cname_target}`, "DNS Setup");
41
+ R.info("Run `void domain status " + hostname + "` to check verification progress.");
42
+ }
43
+ async function domainRemove(client, projectId, hostname) {
44
+ const domain = (await client.listDomains(projectId)).find((d) => d.hostname === hostname);
45
+ if (!domain) {
46
+ R.error(`domain: Domain '${hostname}' not found on this project.`);
47
+ process.exit(1);
48
+ }
49
+ await client.removeDomain(projectId, domain.id);
50
+ R.success(`Domain ${hostname} removed.`);
51
+ }
52
+ async function domainList(client, projectId) {
53
+ const domains = await client.listDomains(projectId);
54
+ if (domains.length === 0) {
55
+ R.info("No custom domains configured.");
56
+ return;
57
+ }
58
+ Se(domains.map((d) => {
59
+ const status = d.status === "active" ? import_picocolors.default.green("active") : import_picocolors.default.yellow(d.status);
60
+ return ` ${d.hostname} ${status}`;
61
+ }).join("\n"), "Custom Domains");
62
+ }
63
+ async function domainStatus(client, projectId, hostname) {
64
+ const domain = (await client.listDomains(projectId)).find((d) => d.hostname === hostname);
65
+ if (!domain) {
66
+ R.error(`domain: Domain '${hostname}' not found on this project.`);
67
+ process.exit(1);
68
+ }
69
+ const status = await client.getDomainStatus(projectId, domain.id);
70
+ const lines = [
71
+ `Hostname: ${status.hostname}`,
72
+ `Status: ${status.status}`,
73
+ `SSL Status: ${status.ssl_status}`
74
+ ];
75
+ if (status.verification_errors && status.verification_errors.length > 0) lines.push(`Errors: ${status.verification_errors.join(", ")}`);
76
+ Se(lines.join("\n"), "Domain Status");
77
+ }
78
+ //#endregion
79
+ export { runDomainCommand };
@@ -0,0 +1,173 @@
1
+ import { existsSync, readFileSync } from "node:fs";
2
+ //#region src/shared/dotenv.ts
3
+ /**
4
+ * Shared dotenv parser + variable expander used by every CLI path that reads
5
+ * `.env*` files (`void env check`, `void deploy`, `void init` scaffold
6
+ * inference). A single source of truth avoids the drift we hit when two
7
+ * hand-rolled parsers diverged on quoting / expansion semantics.
8
+ *
9
+ * Expansion supports `${VAR}` and `$VAR`, a `\$VAR` literal-escape, and
10
+ * transitive references across earlier entries in the same record. Cycles
11
+ * are detected and fall through to the raw literal rather than looping.
12
+ *
13
+ * Security note: expansion is deliberately scoped to the in-file record.
14
+ * We do NOT consult `process.env` the way `dotenv-expand` does — a shell
15
+ * env leaking into an `.env.example` via expansion would silently reveal
16
+ * developer machine state in committed output, and `void env check` /
17
+ * `void deploy` would then pass with values that aren't present in CI.
18
+ *
19
+ * The runtime path (Vite's own `loadEnv`) DOES consult `process.env` for
20
+ * expansion. That's a deliberate Vite choice; `filterLoadedEnv` strips
21
+ * shell pollution from the final worker vars so the two sides agree on
22
+ * the observable surface even when expansion sources differ.
23
+ *
24
+ * This module is a leaf — it must not import from `../log` or any non-leaf
25
+ * module so that the prerender subprocess's worker bundle doesn't pick up
26
+ * unwanted transitive dependencies. Warnings are surfaced through the
27
+ * `onWarn` callback and left for the caller to route.
28
+ */
29
+ /** Valid dotenv key — ASCII letter/underscore followed by letters/digits/underscore. */
30
+ const VALID_KEY = /^[A-Za-z_][A-Za-z0-9_]*$/;
31
+ /**
32
+ * Parse a single `KEY=VALUE` line into `{ key, value }`, stripping matching
33
+ * single/double quotes around the value. Returns `null` for blanks, comments,
34
+ * and non-assignment lines.
35
+ */
36
+ function parseDotenvLine(line) {
37
+ const trimmed = line.trim();
38
+ if (!trimmed || trimmed.startsWith("#")) return null;
39
+ const eq = trimmed.indexOf("=");
40
+ if (eq === -1) return null;
41
+ const key = trimmed.slice(0, eq).trim();
42
+ let value = trimmed.slice(eq + 1).trim();
43
+ if (value.startsWith("\"") && value.endsWith("\"") || value.startsWith("'") && value.endsWith("'")) value = value.slice(1, -1);
44
+ return {
45
+ key,
46
+ value
47
+ };
48
+ }
49
+ /**
50
+ * Parse the raw contents of a dotenv file into a record, optionally
51
+ * expanding `${VAR}` / `$VAR` references against earlier entries.
52
+ */
53
+ function parseDotenv(content, options = {}) {
54
+ const { expand: shouldExpand = true, skipInvalidKeys = true, onWarn } = options;
55
+ const env = {};
56
+ for (const line of content.split("\n")) {
57
+ const parsed = parseDotenvLine(line);
58
+ if (!parsed) continue;
59
+ if (!VALID_KEY.test(parsed.key)) {
60
+ if (skipInvalidKeys) continue;
61
+ throw new Error(`dotenv: Invalid key '${parsed.key}'.`);
62
+ }
63
+ env[parsed.key] = parsed.value;
64
+ }
65
+ return shouldExpand ? expandDotenv(env, { onWarn }) : env;
66
+ }
67
+ /**
68
+ * Read and parse a dotenv file. Returns `{}` when the file is missing so
69
+ * callers can treat "no file" and "empty file" identically.
70
+ */
71
+ function parseDotenvFile(filePath, options = {}) {
72
+ if (!existsSync(filePath)) return {};
73
+ return parseDotenv(readFileSync(filePath, "utf-8"), options);
74
+ }
75
+ /**
76
+ * Expand `${VAR}` / `$VAR` references in every value of a record against
77
+ * the other entries in that same record. Matches the surface of
78
+ * `dotenv-expand` minus the `process.env` fallback.
79
+ *
80
+ * Semantics:
81
+ * - `${VAR}` and `$VAR` both resolve (bare form stops at the first
82
+ * non-identifier character).
83
+ * - `\$VAR` stays literal; the backslash is consumed.
84
+ * - Nested refs resolve transitively — `A=${B}`, `B=${C}`, `C=v` → `A=v`.
85
+ * - Cycles are detected; the offending value keeps its raw literal and
86
+ * `onWarn` fires once per cycle seen.
87
+ * - Missing refs expand to the empty string, matching dotenv-expand.
88
+ *
89
+ * The input record is not mutated; a fresh object is returned.
90
+ */
91
+ function expandDotenv(input, options = {}) {
92
+ const out = {};
93
+ const resolving = /* @__PURE__ */ new Set();
94
+ const warned = /* @__PURE__ */ new Set();
95
+ function resolveKey(key) {
96
+ if (!(key in input)) return "";
97
+ if (key in out) return out[key];
98
+ if (resolving.has(key)) {
99
+ if (!warned.has(key) && options.onWarn) {
100
+ warned.add(key);
101
+ options.onWarn(`dotenv expansion cycle detected at "${key}" — leaving raw value in place`);
102
+ }
103
+ return input[key];
104
+ }
105
+ resolving.add(key);
106
+ const expanded = expandValue(input[key], resolveKey);
107
+ resolving.delete(key);
108
+ out[key] = expanded;
109
+ return expanded;
110
+ }
111
+ for (const key of Object.keys(input)) resolveKey(key);
112
+ return out;
113
+ }
114
+ /**
115
+ * Expand a single value string. `resolve` returns the fully-expanded value
116
+ * for a referenced key (or `''` when missing). Backslash-escapes (`\$VAR`,
117
+ * `\${VAR}`) keep the `$...` literal and consume the backslash.
118
+ */
119
+ function expandValue(value, resolve) {
120
+ let result = "";
121
+ let i = 0;
122
+ while (i < value.length) {
123
+ const ch = value[i];
124
+ if (ch === "\\" && i + 1 < value.length && value[i + 1] === "$") {
125
+ result += "$";
126
+ i += 2;
127
+ continue;
128
+ }
129
+ if (ch !== "$") {
130
+ result += ch;
131
+ i++;
132
+ continue;
133
+ }
134
+ const next = value[i + 1];
135
+ if (next === "{") {
136
+ const end = value.indexOf("}", i + 2);
137
+ if (end === -1) {
138
+ result += ch;
139
+ i++;
140
+ continue;
141
+ }
142
+ const key = value.slice(i + 2, end);
143
+ if (VALID_KEY.test(key)) result += resolve(key);
144
+ else result += value.slice(i, end + 1);
145
+ i = end + 1;
146
+ continue;
147
+ }
148
+ if (next && /[A-Za-z_]/.test(next)) {
149
+ let j = i + 1;
150
+ while (j < value.length && /[A-Za-z0-9_]/.test(value[j])) j++;
151
+ const key = value.slice(i + 1, j);
152
+ result += resolve(key);
153
+ i = j;
154
+ continue;
155
+ }
156
+ result += ch;
157
+ i++;
158
+ }
159
+ return result;
160
+ }
161
+ /**
162
+ * Merge multiple parsed dotenv records with later-entries-win semantics,
163
+ * then expand across the combined set. This is the recommended path for
164
+ * callers reading multiple `.env*` files (Vite-style precedence), since
165
+ * expansion sees every earlier file's keys at once.
166
+ */
167
+ function mergeAndExpand(records, options = {}) {
168
+ const merged = {};
169
+ for (const record of records) Object.assign(merged, record);
170
+ return expandDotenv(merged, options);
171
+ }
172
+ //#endregion
173
+ export { mergeAndExpand as n, parseDotenvFile as r, expandDotenv as t };
@@ -0,0 +1,232 @@
1
+ import { a as isVoidSocialAuthProvider } from "./providers-B3aMxWzP.mjs";
2
+ import { getAuthTables, getSchema } from "better-auth/db";
3
+ //#region src/auth/drizzle.ts
4
+ const DEFAULT_TABLE_ORDER = Number.MAX_SAFE_INTEGER;
5
+ function resolveEmailAndPassword(configuredProviders) {
6
+ if (!configuredProviders || configuredProviders.includes("email")) return { enabled: true };
7
+ }
8
+ function resolvePlaceholderSocialProviders(configuredProviders) {
9
+ if (!configuredProviders) return;
10
+ const providers = {};
11
+ for (const provider of configuredProviders) {
12
+ if (!isVoidSocialAuthProvider(provider)) continue;
13
+ providers[provider] = {
14
+ clientId: `void-${provider}-client-id`,
15
+ clientSecret: `void-${provider}-client-secret`
16
+ };
17
+ }
18
+ return Object.keys(providers).length > 0 ? providers : void 0;
19
+ }
20
+ function resolveSchemaUserConfig(userConfig, defaults, dialect, env) {
21
+ if (!userConfig) return defaults;
22
+ if (typeof userConfig === "function") return userConfig({
23
+ defaults,
24
+ request: new Request("http://localhost/api/auth"),
25
+ env,
26
+ dialect
27
+ });
28
+ return {
29
+ ...defaults,
30
+ ...userConfig
31
+ };
32
+ }
33
+ function resolveSchemaOptions(runtime, env) {
34
+ const origin = "http://localhost";
35
+ const emailAndPassword = resolveEmailAndPassword(runtime.providers);
36
+ const socialProviders = resolvePlaceholderSocialProviders(runtime.providers);
37
+ const defaults = {
38
+ baseURL: origin,
39
+ basePath: "/api/auth",
40
+ secret: "void-build-better-auth-secret",
41
+ database: {},
42
+ trustedOrigins: [origin],
43
+ ...emailAndPassword ? { emailAndPassword } : {},
44
+ ...socialProviders ? { socialProviders } : {}
45
+ };
46
+ return resolveSchemaUserConfig(runtime.userConfig, defaults, runtime.dialect, env);
47
+ }
48
+ function resolveIdStrategy(options) {
49
+ const generateId = options.advanced?.database?.generateId;
50
+ if (generateId === "serial") return "serial";
51
+ if (generateId === "uuid") return "uuid";
52
+ return "text";
53
+ }
54
+ function sanitizeIdentifier(name) {
55
+ const value = name.replace(/[^A-Za-z0-9_$]/g, "_");
56
+ return /^[A-Za-z_$]/.test(value) ? value : `_${value}`;
57
+ }
58
+ function isJsonField(field) {
59
+ return field.type === "json" || field.type === "string[]" || field.type === "number[]";
60
+ }
61
+ function renderEnumValues(values) {
62
+ return `[${values.map((value) => JSON.stringify(value)).join(", ")}] as const`;
63
+ }
64
+ function resolveFieldName(defaultFieldName, field) {
65
+ return field.fieldName ?? defaultFieldName;
66
+ }
67
+ function resolveReferenceFieldName(schema, model, field) {
68
+ if (field === "id") return "id";
69
+ const referencedField = schema[model]?.fields[field];
70
+ return referencedField ? resolveFieldName(field, referencedField) : field;
71
+ }
72
+ function createColumnBuilder(dialect, idStrategy, fieldName, field) {
73
+ const useIdType = fieldName === "id" || field.references?.field === "id";
74
+ if (dialect === "postgresql") {
75
+ if (useIdType) {
76
+ if (idStrategy === "serial") return `integer(${JSON.stringify(fieldName)})`;
77
+ if (idStrategy === "uuid") return `uuid(${JSON.stringify(fieldName)})`;
78
+ return `text(${JSON.stringify(fieldName)})`;
79
+ }
80
+ if (Array.isArray(field.type)) return `text(${JSON.stringify(fieldName)}, { enum: ${renderEnumValues(field.type)} })`;
81
+ if (isJsonField(field)) return `jsonb(${JSON.stringify(fieldName)})`;
82
+ switch (field.type) {
83
+ case "boolean": return `boolean(${JSON.stringify(fieldName)})`;
84
+ case "date": return `timestamp(${JSON.stringify(fieldName)}, { mode: "date", withTimezone: true })`;
85
+ case "number": return field.bigint ? `bigint(${JSON.stringify(fieldName)}, { mode: "number" })` : `integer(${JSON.stringify(fieldName)})`;
86
+ case "string": return `text(${JSON.stringify(fieldName)})`;
87
+ default: return `text(${JSON.stringify(fieldName)})`;
88
+ }
89
+ }
90
+ if (useIdType) {
91
+ if (idStrategy === "serial") return `integer(${JSON.stringify(fieldName)})`;
92
+ return `text(${JSON.stringify(fieldName)})`;
93
+ }
94
+ if (Array.isArray(field.type)) return `text(${JSON.stringify(fieldName)}, { enum: ${renderEnumValues(field.type)} })`;
95
+ if (isJsonField(field)) return `text(${JSON.stringify(fieldName)}, { mode: "json" })`;
96
+ switch (field.type) {
97
+ case "boolean": return `integer(${JSON.stringify(fieldName)}, { mode: "boolean" })`;
98
+ case "date": return `integer(${JSON.stringify(fieldName)}, { mode: "timestamp_ms" })`;
99
+ case "number": return `integer(${JSON.stringify(fieldName)})`;
100
+ case "string": return `text(${JSON.stringify(fieldName)})`;
101
+ default: return `text(${JSON.stringify(fieldName)})`;
102
+ }
103
+ }
104
+ function createColumnDefinition(dialect, schema, idStrategy, defaultToVariable, defaultFieldName, field) {
105
+ const actualFieldName = resolveFieldName(defaultFieldName, field);
106
+ const parts = [createColumnBuilder(dialect, idStrategy, actualFieldName, field)];
107
+ if (actualFieldName === "id") parts.push(".primaryKey()");
108
+ if (field.required !== false || actualFieldName === "id") parts.push(".notNull()");
109
+ if (field.references) {
110
+ const referenceModel = Object.entries(schema).find(([_, value]) => value.modelName === field.references?.model)?.[0] ?? field.references.model;
111
+ const referenceVariable = defaultToVariable.get(referenceModel);
112
+ if (referenceVariable) {
113
+ const referenceFieldName = resolveReferenceFieldName(schema, referenceModel, field.references.field);
114
+ parts.push(`.references(() => ${referenceVariable}[${JSON.stringify(referenceFieldName)}], { onDelete: ${JSON.stringify(field.references.onDelete ?? "cascade")} })`);
115
+ }
116
+ }
117
+ if (field.unique && actualFieldName !== "id") parts.push(".unique()");
118
+ return parts.join("");
119
+ }
120
+ function collectCoreImports(dialect, schema, idStrategy) {
121
+ const imports = new Set([dialect === "postgresql" ? "pgTable" : "sqliteTable", "text"]);
122
+ if (idStrategy === "serial") imports.add("integer");
123
+ if (idStrategy === "uuid" && dialect === "postgresql") imports.add("uuid");
124
+ for (const [, table] of Object.entries(schema)) for (const [defaultFieldName, field] of Object.entries(table.fields)) {
125
+ if (resolveFieldName(defaultFieldName, field) === "id" || field.references?.field === "id") {
126
+ if (idStrategy === "serial") imports.add("integer");
127
+ if (idStrategy === "uuid" && dialect === "postgresql") imports.add("uuid");
128
+ continue;
129
+ }
130
+ if (field.index) imports.add("index");
131
+ if (Array.isArray(field.type) || field.type === "string") {
132
+ imports.add("text");
133
+ continue;
134
+ }
135
+ if (isJsonField(field)) {
136
+ imports.add(dialect === "postgresql" ? "jsonb" : "text");
137
+ continue;
138
+ }
139
+ if (field.type === "boolean") {
140
+ imports.add(dialect === "postgresql" ? "boolean" : "integer");
141
+ continue;
142
+ }
143
+ if (field.type === "date") {
144
+ imports.add(dialect === "postgresql" ? "timestamp" : "integer");
145
+ continue;
146
+ }
147
+ if (field.type === "number") {
148
+ imports.add("integer");
149
+ if (field.bigint && dialect === "postgresql") imports.add("bigint");
150
+ }
151
+ }
152
+ return [...imports].sort();
153
+ }
154
+ function generateVoidAuthDrizzleSchema(runtime, env = {}) {
155
+ const options = resolveSchemaOptions(runtime, env);
156
+ const schema = getAuthTables(options);
157
+ const migrationSchema = resolveVoidAuthMigrationSchema(runtime, env);
158
+ const idStrategy = resolveIdStrategy(options);
159
+ const defaultToVariable = /* @__PURE__ */ new Map();
160
+ const entries = Object.entries(schema).sort(([, left], [, right]) => (left.order ?? DEFAULT_TABLE_ORDER) - (right.order ?? DEFAULT_TABLE_ORDER));
161
+ for (const [defaultModelName] of entries) defaultToVariable.set(defaultModelName, `${sanitizeIdentifier(defaultModelName)}Table`);
162
+ const tableFactory = runtime.dialect === "postgresql" ? "pgTable" : "sqliteTable";
163
+ const importPath = runtime.dialect === "postgresql" ? "void/schema-pg" : "void/schema-d1";
164
+ const lines = [
165
+ "// Auto-generated by void — do not edit",
166
+ `import { ${collectCoreImports(runtime.dialect, schema, idStrategy).join(", ")} } from ${JSON.stringify(importPath)};`,
167
+ ""
168
+ ];
169
+ for (const [defaultModelName, table] of entries) {
170
+ const variableName = defaultToVariable.get(defaultModelName);
171
+ const fieldEntries = Object.entries(table.fields);
172
+ const renderedFields = [` "id": ${createColumnDefinition(runtime.dialect, schema, idStrategy, defaultToVariable, "id", {
173
+ type: idStrategy === "serial" ? "number" : "string",
174
+ required: true
175
+ })},`, ...fieldEntries.map(([defaultFieldName, field]) => {
176
+ const actualFieldName = resolveFieldName(defaultFieldName, field);
177
+ return ` ${JSON.stringify(actualFieldName)}: ${createColumnDefinition(runtime.dialect, schema, idStrategy, defaultToVariable, defaultFieldName, field)},`;
178
+ })];
179
+ const indexedFields = fieldEntries.filter(([, field]) => field.index && !field.unique);
180
+ if (indexedFields.length > 0) lines.push(`export const ${variableName} = ${tableFactory}(${JSON.stringify(table.modelName)}, {`, ...renderedFields, `}, (table) => [`, ...indexedFields.map(([defaultFieldName, field]) => {
181
+ const actualFieldName = resolveFieldName(defaultFieldName, field);
182
+ return ` index(${JSON.stringify(`${table.modelName}_${actualFieldName}_idx`)}).on(table[${JSON.stringify(actualFieldName)}]),`;
183
+ }), `]);`);
184
+ else lines.push(`export const ${variableName} = ${tableFactory}(${JSON.stringify(table.modelName)}, {`, ...renderedFields, `});`);
185
+ lines.push("");
186
+ }
187
+ lines.push("export const schema = {");
188
+ for (const [defaultModelName] of entries) lines.push(` ${JSON.stringify(defaultModelName)}: ${defaultToVariable.get(defaultModelName)},`);
189
+ lines.push("} as const;");
190
+ lines.push(`export const migrationSchema = ${JSON.stringify(migrationSchema, null, 2)} as const;`);
191
+ lines.push("");
192
+ return lines.join("\n") + "\n";
193
+ }
194
+ function resolveVoidAuthMigrationSchema(runtime, env = {}) {
195
+ const options = resolveSchemaOptions(runtime, env);
196
+ const schema = getSchema(options);
197
+ return {
198
+ dialect: runtime.dialect,
199
+ idStrategy: resolveIdStrategy(options),
200
+ tables: Object.entries(schema).sort(([, left], [, right]) => (left.order ?? DEFAULT_TABLE_ORDER) - (right.order ?? DEFAULT_TABLE_ORDER)).map(([name, table]) => ({
201
+ name,
202
+ order: table.order ?? DEFAULT_TABLE_ORDER,
203
+ fields: Object.fromEntries(Object.entries(table.fields).map(([fieldName, field]) => [fieldName, {
204
+ type: field.type,
205
+ required: field.required !== false,
206
+ unique: field.unique === true,
207
+ index: field.index === true,
208
+ bigint: field.bigint === true,
209
+ ...field.references ? { references: {
210
+ table: field.references.model,
211
+ field: field.references.field,
212
+ ...field.references.onDelete ? { onDelete: field.references.onDelete } : {}
213
+ } } : {}
214
+ }]))
215
+ }))
216
+ };
217
+ }
218
+ function generateVoidAuthDatabaseModule(options) {
219
+ const schemaImport = JSON.stringify(options.schemaImportPath);
220
+ const provider = options.dialect === "postgresql" ? "pg" : "sqlite";
221
+ return [
222
+ "// Auto-generated by void — do not edit",
223
+ `import { drizzleAdapter } from ${JSON.stringify(options.drizzleAdapterPath)};`,
224
+ `import { db as __voidDb } from "void/db";`,
225
+ `import { schema as __voidAuthSchema } from ${schemaImport};`,
226
+ "",
227
+ `export const __voidAuthDatabase = drizzleAdapter(__voidDb, { provider: ${JSON.stringify(provider)}, schema: __voidAuthSchema });`,
228
+ ""
229
+ ].join("\n");
230
+ }
231
+ //#endregion
232
+ export { generateVoidAuthDrizzleSchema as n, resolveVoidAuthMigrationSchema as r, generateVoidAuthDatabaseModule as t };