void 0.10.5 → 0.10.6

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 (217) hide show
  1. package/dist/agents-Bmr5tFFb.mjs +1454 -0
  2. package/dist/{auth-cmd-UoCwfDQv.mjs → auth-cmd-DlgNwByu.mjs} +10 -10
  3. package/dist/{better-auth-shared-D0Mbmx5V.mjs → better-auth-shared-BQooDxbw.mjs} +1 -1
  4. package/dist/{better-auth-shared-jkksALri.d.mts → better-auth-shared-BvnM9px6.d.mts} +2 -2
  5. package/dist/{build-cmd-CVyuBHjP.mjs → build-cmd-Br8qL0rA.mjs} +15 -17
  6. package/dist/{cache-ACORQCIq.mjs → cache-wH-mP8UE.mjs} +10 -12
  7. package/dist/{cancel-deploy-Gi8zmoZC.mjs → cancel-deploy-BEBOEgtu.mjs} +16 -18
  8. package/dist/cli/cli.mjs +47 -49
  9. package/dist/{client-BlbnA92X.mjs → client-Cj96iiBH.mjs} +74 -8
  10. package/dist/{config-8dLIngKW.mjs → config-1twldYCW.mjs} +10 -10
  11. package/dist/{config-CbJS4Krx.mjs → config-BdUctCZD.mjs} +4 -4
  12. package/dist/{create-project-LjvkYziS.mjs → create-project-DD9n8Ho-.mjs} +28 -23
  13. package/dist/{db-C00yjN01.mjs → db-DjKE2-A-.mjs} +147 -149
  14. package/dist/{delete-CplfvTgU.mjs → delete-D2kr3Kmk.mjs} +13 -15
  15. package/dist/{deploy-CISNL5uK.mjs → deploy-C4PbkFyE.mjs} +97 -100
  16. package/dist/{discover-ZWuBvt22.mjs → discover-BuVVSAum.mjs} +3 -3
  17. package/dist/{dist-5cGIJHQQ.mjs → dist-BuiRJkTd.mjs} +59 -27
  18. package/dist/{domain-B4HpcgNG.mjs → domain-_luIsM_B.mjs} +14 -16
  19. package/dist/{env-DNMJpeVF.mjs → env-CO5XAS9t.mjs} +23 -25
  20. package/dist/{env-helpers-B_ks681T.d.mts → env-helpers-z4stu8uc.d.mts} +1 -1
  21. package/dist/{env-types-BS8cZead.mjs → env-types-D51bnR-c.mjs} +3 -3
  22. package/dist/{env-validation-BxbtBbjh.mjs → env-validation-CeC2FL66.mjs} +4 -4
  23. package/dist/{fetch-error-C6qffTl2.mjs → fetch-error-Dj3crt0e.mjs} +3 -3
  24. package/dist/{gen-C0pV2gRQ.mjs → gen-Cf79J4aw.mjs} +42 -44
  25. package/dist/{github-cmd-CwtLD1yI.mjs → github-cmd-DnqxyOsb.mjs} +88 -90
  26. package/dist/{handler-B7rCOy21.d.mts → handler-imD0UVDT.d.mts} +4 -5
  27. package/dist/{headers-BNWymgnH.mjs → headers-BwvFGhkx.mjs} +3 -3
  28. package/dist/index.d.mts +3 -3
  29. package/dist/index.mjs +102 -83
  30. package/dist/{init-D58GxCtt.mjs → init-KirOzVDs.mjs} +132 -134
  31. package/dist/link-CUmiosyb.mjs +45 -0
  32. package/dist/{list-CbNNjXTm.mjs → list-3GEw7b6m.mjs} +10 -12
  33. package/dist/{login-CvxxF_9z.mjs → login-DJReaT_Q.mjs} +14 -15
  34. package/dist/{logs-BDZ9AuhM.mjs → logs-D-rQ56Lq.mjs} +9 -11
  35. package/dist/{magic-string.es-C1Fb0uxq.mjs → magic-string.es-ZQjdJFFn.mjs} +3 -3
  36. package/dist/{mcp-C8BjRt_z.mjs → mcp-D7yc0dXY.mjs} +2 -3
  37. package/dist/{node-B07cZs0d.mjs → node-yFFk626c.mjs} +6 -6
  38. package/dist/{package-json-Bg_GJdJB.mjs → package-json-B0NuUWGd.mjs} +1 -1
  39. package/dist/pages/client.d.mts +1 -1
  40. package/dist/pages/client.mjs +2 -1
  41. package/dist/pages/head-client.d.mts +1 -1
  42. package/dist/pages/head.d.mts +1 -1
  43. package/dist/pages/index.d.mts +2 -2
  44. package/dist/pages/index.mjs +5 -5
  45. package/dist/pages/islands-plugin.d.mts +1 -1
  46. package/dist/pages/islands-plugin.mjs +3 -3
  47. package/dist/pages/protocol.d.mts +2 -2
  48. package/dist/pages/protocol.mjs +5 -2
  49. package/dist/{plugin-inference-D04iL1mW.mjs → plugin-inference-CJxi_fWI.mjs} +3 -3
  50. package/dist/{prepare-DUo9q8cM.mjs → prepare-C_cVurhP.mjs} +15 -18
  51. package/dist/{preset-D0My64KQ.mjs → preset-CVvwCeIy.mjs} +4 -4
  52. package/dist/{project-cmd-Dd1gNRdd.mjs → project-cmd-DnU7u9QF.mjs} +13 -14
  53. package/dist/{project-paths-CCMrHYQm.mjs → project-paths-tpdR1mJR.mjs} +2 -2
  54. package/dist/{project-tsconfig-DMBV55K2.mjs → project-tsconfig-D9uSVVpA.mjs} +2 -2
  55. package/dist/{protocol-6UZCowS1.d.mts → protocol-6hTJ04T1.d.mts} +3 -3
  56. package/dist/{resolve-project-D4O1_fZz.mjs → resolve-project-D2HI3TrG.mjs} +2 -2
  57. package/dist/{rollback-DzmCCrFg.mjs → rollback-Yh7bCKob.mjs} +21 -23
  58. package/dist/{route-types-BpSJEW20.mjs → route-types-CfKfhbIg.mjs} +234 -3
  59. package/dist/{runner-BQyKUqAL.mjs → runner-h272wcPj.mjs} +4 -5
  60. package/dist/{runner-pg-EuhrFW3D.mjs → runner-pg-waxJOnBb.mjs} +1 -1
  61. package/dist/runtime/ai.mjs +2 -2
  62. package/dist/runtime/auth.d.mts +1 -1
  63. package/dist/runtime/better-auth-pg.d.mts +1 -1
  64. package/dist/runtime/better-auth-pg.mjs +3 -3
  65. package/dist/runtime/better-auth.d.mts +1 -1
  66. package/dist/runtime/better-auth.mjs +2 -2
  67. package/dist/runtime/client-react.d.mts +2 -2
  68. package/dist/runtime/client-react.mjs +1 -1
  69. package/dist/runtime/client-solid.d.mts +2 -2
  70. package/dist/runtime/client-solid.mjs +1 -1
  71. package/dist/runtime/client-svelte.d.mts +2 -2
  72. package/dist/runtime/client-svelte.mjs +1 -1
  73. package/dist/runtime/client-vue.d.mts +2 -2
  74. package/dist/runtime/client-vue.mjs +1 -1
  75. package/dist/runtime/client.d.mts +2 -2
  76. package/dist/runtime/client.mjs +1 -1
  77. package/dist/runtime/db-pg.d.mts +1 -1
  78. package/dist/runtime/env-helpers.d.mts +1 -1
  79. package/dist/runtime/env-public-client.d.mts +1 -1
  80. package/dist/runtime/env-public-client.mjs +2 -0
  81. package/dist/runtime/env-public.d.mts +3 -4
  82. package/dist/runtime/env-public.mjs +3 -1
  83. package/dist/runtime/env.mjs +1 -1
  84. package/dist/runtime/fetch-stream.d.mts +1 -1
  85. package/dist/runtime/fetch-stream.mjs +1 -1
  86. package/dist/runtime/fetch.d.mts +1 -1
  87. package/dist/runtime/fetch.mjs +1 -1
  88. package/dist/runtime/handler.d.mts +2 -2
  89. package/dist/runtime/handler.mjs +1 -1
  90. package/dist/runtime/isr.mjs +1 -1
  91. package/dist/runtime/live-server.mjs +2 -0
  92. package/dist/runtime/live.d.mts +2 -2
  93. package/dist/runtime/live.mjs +3 -1
  94. package/dist/runtime/migration-handler-pg.mjs +1 -1
  95. package/dist/runtime/migration-handler.mjs +1 -1
  96. package/dist/runtime/remote/index.mjs +11 -1
  97. package/dist/runtime/sandbox.d.mts +1 -4
  98. package/dist/runtime/sandbox.mjs +1 -1
  99. package/dist/runtime/validator.d.mts +1 -1
  100. package/dist/runtime/ws-server.d.mts +2 -2
  101. package/dist/runtime/ws-server.mjs +2 -0
  102. package/dist/runtime/ws.d.mts +3 -3
  103. package/dist/runtime/ws.mjs +2 -0
  104. package/dist/{scan-VCAM1oh3.mjs → scan-Dp_Gyzs3.mjs} +3 -3
  105. package/dist/{scan---8wfN58.mjs → scan-i7Yz54fv.mjs} +26 -8
  106. package/dist/{secret-CMLYWkE-.mjs → secret-u7FRvg8d.mjs} +22 -24
  107. package/dist/{skills-Dl3u05da.mjs → skills-DsdNDtX3.mjs} +6 -7
  108. package/dist/{subcommand-prompt-B8ng0FTS.mjs → subcommand-prompt-DtES-oP6.mjs} +34 -35
  109. package/dist/sveltekit.mjs +1 -1
  110. package/dist/validate-DT7nFMlf.mjs +504 -0
  111. package/dist/{yarn-pnp-WLW2IHUY.mjs → yarn-pnp-CW8LB6g_.mjs} +1 -1
  112. package/package.json +19 -19
  113. package/skills/void/docs/node_modules/void/node_modules/@clack/prompts/CHANGELOG.md +94 -0
  114. package/skills/void/docs/node_modules/void/node_modules/@clack/prompts/README.md +32 -11
  115. package/skills/void/docs/node_modules/void/node_modules/@cloudflare/sandbox/README.md +45 -0
  116. package/skills/void/docs/node_modules/void/node_modules/@electric-sql/pglite/README.md +5 -5
  117. package/skills/void/docs/node_modules/void/node_modules/@types/node/README.md +1 -1
  118. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/@types/node/README.md +1 -1
  119. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/markdown-exit/README.md +4 -1
  120. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/markdown-it-attrs/README.md +29 -12
  121. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/tinyglobby/README.md +1 -1
  122. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/AGENTS.md +1 -0
  123. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/README.md +18 -6
  124. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/config/build.md +1 -1
  125. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/config/check.md +35 -0
  126. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/config/create.md +70 -0
  127. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/config/fmt.md +3 -1
  128. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/config/index.md +11 -7
  129. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/config/lint.md +3 -1
  130. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/config/pack.md +1 -1
  131. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/config/run.md +141 -26
  132. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/config/staged.md +1 -1
  133. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/config/test.md +1 -1
  134. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/automatic-data-tracking.md +145 -0
  135. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/cache.md +16 -28
  136. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/check.md +16 -0
  137. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/ci.md +15 -17
  138. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/commit-hooks.md +9 -0
  139. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/create.md +255 -2
  140. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/docker.md +175 -0
  141. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/env.md +70 -5
  142. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/github-actions-cache.md +165 -0
  143. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/ide-integration.md +2 -2
  144. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/index.md +9 -3
  145. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/install.md +63 -11
  146. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/migrate-rules.md +347 -0
  147. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/migrate.md +27 -3
  148. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/monorepo.md +176 -0
  149. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/pack.md +8 -0
  150. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/run.md +36 -4
  151. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/troubleshooting.md +11 -35
  152. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/upgrade.md +65 -13
  153. package/skills/void/docs/node_modules/void/node_modules/es-module-lexer/README.md +403 -390
  154. package/skills/void/docs/node_modules/void/node_modules/pg/README.md +2 -1
  155. package/skills/void/docs/node_modules/void/node_modules/tinyglobby/README.md +1 -1
  156. package/skills/void/docs/node_modules/void/node_modules/vite-plus/AGENTS.md +1 -0
  157. package/skills/void/docs/node_modules/void/node_modules/vite-plus/README.md +18 -6
  158. package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/config/build.md +1 -1
  159. package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/config/check.md +35 -0
  160. package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/config/create.md +70 -0
  161. package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/config/fmt.md +3 -1
  162. package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/config/index.md +11 -7
  163. package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/config/lint.md +3 -1
  164. package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/config/pack.md +1 -1
  165. package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/config/run.md +141 -26
  166. package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/config/staged.md +1 -1
  167. package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/config/test.md +1 -1
  168. package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/automatic-data-tracking.md +145 -0
  169. package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/cache.md +16 -28
  170. package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/check.md +16 -0
  171. package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/ci.md +15 -17
  172. package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/commit-hooks.md +9 -0
  173. package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/create.md +255 -2
  174. package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/docker.md +175 -0
  175. package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/env.md +70 -5
  176. package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/github-actions-cache.md +165 -0
  177. package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/ide-integration.md +2 -2
  178. package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/index.md +9 -3
  179. package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/install.md +63 -11
  180. package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/migrate-rules.md +347 -0
  181. package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/migrate.md +27 -3
  182. package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/monorepo.md +176 -0
  183. package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/pack.md +8 -0
  184. package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/run.md +36 -4
  185. package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/troubleshooting.md +11 -35
  186. package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/upgrade.md +65 -13
  187. package/skills/void/docs/reference/cli.md +5 -1
  188. package/dist/agents-MhSzNMiC.mjs +0 -151
  189. package/dist/collect-9rO3JFNM.mjs +0 -55
  190. package/dist/config-hhMYPVRT.mjs +0 -21
  191. package/dist/dist-abzUneor.mjs +0 -1287
  192. package/dist/drizzle-DqstQTGq.mjs +0 -232
  193. package/dist/link-ZFmboqY3.mjs +0 -47
  194. package/dist/output-DeiS4oEX.mjs +0 -139
  195. package/dist/plan-aD3wRDqF.mjs +0 -271
  196. package/dist/project-CH9pdo16.mjs +0 -72
  197. package/dist/project-slug-rX3kTOfY.mjs +0 -10
  198. package/dist/validate-CNWm-PsL.mjs +0 -186
  199. /package/dist/{auth-migrations-BP-hMzYl.mjs → auth-migrations-BTZ-ATvQ.mjs} +0 -0
  200. /package/dist/{auth-Dz2CCn4T.d.mts → auth-qgMlYp7Z.d.mts} +0 -0
  201. /package/dist/{canonical-json-CEyQaVDa.mjs → canonical-json-DuDiiUsQ.mjs} +0 -0
  202. /package/dist/{cf-access-DKDsgwOU.mjs → cf-access-Bqw81xAf.mjs} +0 -0
  203. /package/dist/{defer-C-bdSM_b.mjs → defer-YsYDUoii.mjs} +0 -0
  204. /package/dist/{dotenv-lS94ymhM.mjs → dotenv-D_UbC_vc.mjs} +0 -0
  205. /package/dist/{env-raw-Dtj1UAoK.mjs → env-raw-CoS20LHP.mjs} +0 -0
  206. /package/dist/{fetch-error-B6RaJ-eZ.d.mts → fetch-error-Sp1R4mZv.d.mts} +0 -0
  207. /package/dist/{git-metadata-Ce0AtSZL.mjs → git-metadata-CBKaL0v5.mjs} +0 -0
  208. /package/dist/{head-eOUCWUNy.d.mts → head-nmvOgFjd.d.mts} +0 -0
  209. /package/dist/{log-BdD_Fpms.mjs → log-ChfPKsVd.mjs} +0 -0
  210. /package/dist/{pathe.M-eThtNZ-BrPhGF_K.mjs → pathe.M-eThtNZ-CQzLbt4c.mjs} +0 -0
  211. /package/dist/{pg-CempqvEJ.mjs → pg-J2HbZIkX.mjs} +0 -0
  212. /package/dist/{providers-BJIoduK9.d.mts → providers-BNKRacMr.d.mts} +0 -0
  213. /package/dist/{providers-BwPbdHdi.mjs → providers-CJlNS3kT.mjs} +0 -0
  214. /package/dist/{proxy-M3pxItg2.mjs → proxy-D-3_D-Gl.mjs} +0 -0
  215. /package/dist/{chunk-DJd-R1mw.mjs → rolldown-runtime-DJK8HYOj.mjs} +0 -0
  216. /package/dist/{standard-schema-Cy0lfeWv.d.mts → standard-schema-DJ0HW7QP.d.mts} +0 -0
  217. /package/dist/{types-BodZGegX.d.mts → types-lLjNE9Qp.d.mts} +0 -0
@@ -0,0 +1,504 @@
1
+ import { n as __exportAll } from "./rolldown-runtime-DJK8HYOj.mjs";
2
+ import { a as join, n as dirname } from "./pathe.M-eThtNZ-CQzLbt4c.mjs";
3
+ import { t as canonicalJson } from "./canonical-json-DuDiiUsQ.mjs";
4
+ import { existsSync, mkdirSync, readFileSync, readdirSync, writeFileSync } from "node:fs";
5
+ import { createHash } from "node:crypto";
6
+ //#region src/migrations/collect.ts
7
+ var collect_exports = /* @__PURE__ */ __exportAll({
8
+ collectMigrations: () => collectMigrations,
9
+ readJournal: () => readJournal,
10
+ stripSqlExt: () => stripSqlExt,
11
+ writeJournal: () => writeJournal
12
+ });
13
+ /**
14
+ * Collect all .sql migration files from the migrations directory,
15
+ * sorted by filename (lexicographic order).
16
+ */
17
+ function collectMigrations(migrationsDir) {
18
+ if (!existsSync(migrationsDir)) return [];
19
+ return readdirSync(migrationsDir).filter((f) => f.endsWith(".sql") && f !== "seed.sql").sort().map((name) => ({
20
+ name,
21
+ sql: readFileSync(join(migrationsDir, name), "utf-8")
22
+ }));
23
+ }
24
+ /**
25
+ * Read `db/migrations/meta/_journal.json` if it exists. Drizzle maintains
26
+ * this file whenever `drizzle-kit generate` runs; every `.sql` migration
27
+ * under `db/migrations/` should correspond to an entry whose `tag` is the
28
+ * filename without the `.sql` suffix.
29
+ */
30
+ function readJournal(migrationsDir) {
31
+ const journalPath = join(migrationsDir, "meta", "_journal.json");
32
+ if (!existsSync(journalPath)) return;
33
+ try {
34
+ return JSON.parse(readFileSync(journalPath, "utf-8"));
35
+ } catch (err) {
36
+ throw new Error(`db: Failed to parse db/migrations/meta/_journal.json: '${err.message}'.`);
37
+ }
38
+ }
39
+ /**
40
+ * Write `db/migrations/meta/_journal.json` with pretty-printed JSON and a
41
+ * trailing newline, matching the format Drizzle itself emits. Creates the
42
+ * `meta/` directory if it does not yet exist.
43
+ */
44
+ function writeJournal(migrationsDir, journal) {
45
+ const journalPath = join(migrationsDir, "meta", "_journal.json");
46
+ mkdirSync(dirname(journalPath), { recursive: true });
47
+ writeFileSync(journalPath, JSON.stringify(journal, null, 2) + "\n");
48
+ }
49
+ /**
50
+ * Drop the `.sql` extension from a migration filename, leaving any other
51
+ * suffix untouched. Used to line filenames up with journal `tag` values.
52
+ */
53
+ function stripSqlExt(name) {
54
+ return name.endsWith(".sql") ? name.slice(0, -4) : name;
55
+ }
56
+ //#endregion
57
+ //#region src/migrations/tokenize.ts
58
+ function* tokenizeSql(sql) {
59
+ const sqlLength = sql.length;
60
+ let index = 0;
61
+ let runStart = 0;
62
+ const flushRun = (upTo) => {
63
+ if (upTo > runStart) return {
64
+ kind: "sql",
65
+ start: runStart,
66
+ end: upTo
67
+ };
68
+ };
69
+ while (index < sqlLength) {
70
+ const character = sql[index];
71
+ const next = index + 1 < sqlLength ? sql[index + 1] : "";
72
+ if (character === "-" && next === "-") {
73
+ const run = flushRun(index);
74
+ if (run) yield run;
75
+ let scanIndex = index + 2;
76
+ while (scanIndex < sqlLength && sql[scanIndex] !== "\n") scanIndex++;
77
+ yield {
78
+ kind: "line-comment",
79
+ start: index,
80
+ end: scanIndex
81
+ };
82
+ index = scanIndex;
83
+ runStart = index;
84
+ continue;
85
+ }
86
+ if (character === "/" && next === "*") {
87
+ const run = flushRun(index);
88
+ if (run) yield run;
89
+ let scanIndex = index + 2;
90
+ while (scanIndex < sqlLength - 1 && !(sql[scanIndex] === "*" && sql[scanIndex + 1] === "/")) scanIndex++;
91
+ const end = Math.min(scanIndex + 2, sqlLength);
92
+ yield {
93
+ kind: "block-comment",
94
+ start: index,
95
+ end
96
+ };
97
+ index = end;
98
+ runStart = index;
99
+ continue;
100
+ }
101
+ if (character === "'") {
102
+ const run = flushRun(index);
103
+ if (run) yield run;
104
+ let scanIndex = index + 1;
105
+ while (scanIndex < sqlLength) {
106
+ if (sql[scanIndex] === "'" && sql[scanIndex + 1] === "'") {
107
+ scanIndex += 2;
108
+ continue;
109
+ }
110
+ if (sql[scanIndex] === "'") {
111
+ scanIndex++;
112
+ break;
113
+ }
114
+ scanIndex++;
115
+ }
116
+ yield {
117
+ kind: "string",
118
+ start: index,
119
+ end: scanIndex
120
+ };
121
+ index = scanIndex;
122
+ runStart = index;
123
+ continue;
124
+ }
125
+ if (character === "\"" || character === "`" || character === "[") {
126
+ const run = flushRun(index);
127
+ if (run) yield run;
128
+ const close = character === "[" ? "]" : character;
129
+ let scanIndex = index + 1;
130
+ while (scanIndex < sqlLength) {
131
+ if (close !== "]" && sql[scanIndex] === close && sql[scanIndex + 1] === close) {
132
+ scanIndex += 2;
133
+ continue;
134
+ }
135
+ if (sql[scanIndex] === close) {
136
+ scanIndex++;
137
+ break;
138
+ }
139
+ scanIndex++;
140
+ }
141
+ yield {
142
+ kind: "ident-quote",
143
+ open: character,
144
+ start: index,
145
+ end: scanIndex
146
+ };
147
+ index = scanIndex;
148
+ runStart = index;
149
+ continue;
150
+ }
151
+ index++;
152
+ }
153
+ const tail = flushRun(sqlLength);
154
+ if (tail) yield tail;
155
+ }
156
+ //#endregion
157
+ //#region src/migrations/plan.ts
158
+ var plan_exports = /* @__PURE__ */ __exportAll({
159
+ DESTRUCTIVE_PRAGMA: () => DESTRUCTIVE_PRAGMA,
160
+ MIGRATION_CLASSIFIER_VERSION: () => 1,
161
+ UNSPLIT_MULTI_STATEMENT_PRAGMA: () => UNSPLIT_MULTI_STATEMENT_PRAGMA,
162
+ buildMigrationPlanBundle: () => buildMigrationPlanBundle,
163
+ canonicalSql: () => canonicalSql,
164
+ classifyMigration: () => classifyMigration,
165
+ computeMigrationListHash: () => computeMigrationListHash,
166
+ hasStandalonePragma: () => hasStandalonePragma,
167
+ isSingleStatement: () => isSingleStatement,
168
+ sha256Hex: () => sha256Hex
169
+ });
170
+ const UNSPLIT_MULTI_STATEMENT_PRAGMA = "-- void:allow-unsplit-multi-statement";
171
+ const DESTRUCTIVE_PRAGMA = "-- void:allow-destructive";
172
+ function canonicalSql(sql) {
173
+ return (sql.charCodeAt(0) === 65279 ? sql.slice(1) : sql).replace(/\r\n?/g, "\n");
174
+ }
175
+ function sha256Hex(value) {
176
+ return `sha256:${createHash("sha256").update(value).digest("hex")}`;
177
+ }
178
+ function getPlanHashInput(plan) {
179
+ const base = {
180
+ classifierVersion: plan.classifierVersion,
181
+ dialect: plan.dialect,
182
+ kind: plan.kind,
183
+ name: plan.name,
184
+ sqlHash: plan.sqlHash,
185
+ stability: plan.stability
186
+ };
187
+ if (plan.kind === "breakpoint-framed") base.statements = plan.statements;
188
+ return base;
189
+ }
190
+ function hashPlan(plan) {
191
+ return sha256Hex(canonicalJson(getPlanHashInput(plan)));
192
+ }
193
+ function computeMigrationListHash(plans) {
194
+ return sha256Hex(canonicalJson(plans.map((plan) => [
195
+ plan.name,
196
+ plan.sqlHash,
197
+ plan.planHash
198
+ ])));
199
+ }
200
+ function isStandalonePragmaLine(line, pragma) {
201
+ return line.trim() === pragma;
202
+ }
203
+ function hasStandalonePragma(sql, pragma) {
204
+ return canonicalSql(sql).split("\n").some((line) => isStandalonePragmaLine(line, pragma));
205
+ }
206
+ function isBreakpointComment(text) {
207
+ return text.trim() === "--> statement-breakpoint";
208
+ }
209
+ function splitBreakpointFramedSql(sql) {
210
+ const normalized = canonicalSql(sql);
211
+ const statements = [];
212
+ let cursor = 0;
213
+ for (const segment of tokenizeSql(normalized)) {
214
+ if (segment.kind !== "line-comment") continue;
215
+ if (isBreakpointComment(normalized.slice(segment.start, segment.end))) {
216
+ const statement = normalized.slice(cursor, segment.start).trim();
217
+ if (statement) statements.push(statement);
218
+ cursor = segment.end;
219
+ }
220
+ }
221
+ const statement = normalized.slice(cursor).trim();
222
+ if (statement) statements.push(statement);
223
+ return statements;
224
+ }
225
+ function getExecutableSql(sql) {
226
+ let out = "";
227
+ for (const segment of tokenizeSql(sql)) if (segment.kind === "sql") out += sql.slice(segment.start, segment.end);
228
+ else out += " ".repeat(segment.end - segment.start);
229
+ return out;
230
+ }
231
+ function hasStatementBreakpointOutsideLiterals(sql) {
232
+ const normalized = canonicalSql(sql);
233
+ for (const segment of tokenizeSql(normalized)) {
234
+ if (segment.kind !== "line-comment") continue;
235
+ if (isBreakpointComment(normalized.slice(segment.start, segment.end))) return true;
236
+ }
237
+ return false;
238
+ }
239
+ function isSingleStatement(sql) {
240
+ const normalized = canonicalSql(sql);
241
+ let statements = 0;
242
+ let inStatement = false;
243
+ for (const segment of tokenizeSql(normalized)) {
244
+ if (segment.kind === "line-comment" || segment.kind === "block-comment") continue;
245
+ if (segment.kind === "string" || segment.kind === "ident-quote") {
246
+ inStatement = true;
247
+ continue;
248
+ }
249
+ for (let index = segment.start; index < segment.end; index++) {
250
+ const character = normalized[index];
251
+ if (character === ";") {
252
+ if (inStatement) {
253
+ statements++;
254
+ inStatement = false;
255
+ }
256
+ continue;
257
+ }
258
+ if (character !== " " && character !== " " && character !== "\n" && character !== "\r") inStatement = true;
259
+ }
260
+ }
261
+ if (inStatement) statements++;
262
+ return statements === 1;
263
+ }
264
+ function includesTransactionControl(sql) {
265
+ return getExecutableSql(sql).match(/(?:^|;)\s*(BEGIN(?:\s+(?:DEFERRED|IMMEDIATE|EXCLUSIVE|TRANSACTION))?|COMMIT|ROLLBACK|SAVEPOINT|RELEASE)\b/i)?.[1]?.toUpperCase() ?? null;
266
+ }
267
+ function classifyMigration(migration) {
268
+ const sql = canonicalSql(migration.sql);
269
+ const sqlHash = sha256Hex(sql);
270
+ const transactionControl = includesTransactionControl(sql);
271
+ if (transactionControl) throw new Error(`Migration ${migration.name} contains ${transactionControl}; Void owns the stable D1 transaction boundary.`);
272
+ let base;
273
+ const warnings = [];
274
+ if (hasStatementBreakpointOutsideLiterals(sql)) {
275
+ const statements = splitBreakpointFramedSql(sql);
276
+ if (statements.length === 0) throw new Error(`Migration ${migration.name} has statement breakpoints but no SQL statements.`);
277
+ base = {
278
+ classifierVersion: 1,
279
+ dialect: "sqlite",
280
+ kind: "breakpoint-framed",
281
+ name: migration.name,
282
+ sqlHash,
283
+ stability: "stable",
284
+ statements
285
+ };
286
+ } else if (isSingleStatement(sql)) base = {
287
+ classifierVersion: 1,
288
+ dialect: "sqlite",
289
+ kind: "single-statement",
290
+ name: migration.name,
291
+ sqlHash,
292
+ stability: "stable"
293
+ };
294
+ else {
295
+ const allowLegacy = hasStandalonePragma(sql, UNSPLIT_MULTI_STATEMENT_PRAGMA);
296
+ warnings.push(`Migration ${migration.name} contains multiple statements without Drizzle statement breakpoints; it will run through the legacy D1 path.`);
297
+ base = {
298
+ allowLegacy,
299
+ classifierVersion: 1,
300
+ dialect: "sqlite",
301
+ kind: "legacy-unsplit-multi-statement",
302
+ name: migration.name,
303
+ sqlHash,
304
+ stability: "legacy"
305
+ };
306
+ }
307
+ return {
308
+ ...base,
309
+ planHash: hashPlan(base),
310
+ ...warnings.length > 0 ? { warnings } : {}
311
+ };
312
+ }
313
+ function buildMigrationPlanBundle(migrations) {
314
+ const plans = migrations.map((migration) => classifyMigration(migration));
315
+ return {
316
+ classifierVersion: 1,
317
+ destructiveValidation: "passed",
318
+ migrationListHash: computeMigrationListHash(plans),
319
+ plans,
320
+ protocolVersion: 2
321
+ };
322
+ }
323
+ //#endregion
324
+ //#region src/migrations/validate.ts
325
+ var validate_exports = /* @__PURE__ */ __exportAll({
326
+ assertJournalCoherence: () => assertJournalCoherence,
327
+ isDestructive: () => isDestructive,
328
+ listDrizzleArtifacts: () => listDrizzleArtifacts,
329
+ validateMigrations: () => validateMigrations
330
+ });
331
+ /**
332
+ * Destructive SQL patterns that are rejected unless the migration
333
+ * contains the `-- void:allow-destructive` pragma comment.
334
+ */
335
+ const DESTRUCTIVE_PATTERNS = [
336
+ /\bDROP\s+TABLE\b/i,
337
+ /\bDROP\s+VIEW\b/i,
338
+ /\bDROP\s+INDEX\b/i,
339
+ /\bDROP\s+TRIGGER\b/i,
340
+ /\bALTER\s+TABLE\b[\s\S]*\bDROP\s+COLUMN\b/i,
341
+ /\bALTER\s+TABLE\b[\s\S]*\bRENAME\s+TO\b/i,
342
+ /\bALTER\s+TABLE\b[\s\S]*\bRENAME\s+COLUMN\b/i,
343
+ /\bALTER\s+TABLE\b[\s\S]*\bRENAME\b[\s\S]*\bTO\b/i,
344
+ /\bTRUNCATE\b/i,
345
+ /\bINSERT\s+OR\s+REPLACE\b/i
346
+ ];
347
+ function splitExecutableStatements(sql) {
348
+ return sql.split(";").map((statement) => statement.trim()).filter(Boolean);
349
+ }
350
+ function hasTopLevelKeyword(statement, keyword) {
351
+ let depth = 0;
352
+ for (let index = 0; index < statement.length; index++) {
353
+ const character = statement[index];
354
+ if (character === "(") {
355
+ depth++;
356
+ continue;
357
+ }
358
+ if (character === ")") {
359
+ depth = Math.max(0, depth - 1);
360
+ continue;
361
+ }
362
+ if (depth !== 0) continue;
363
+ if (statement.slice(index, index + keyword.length).toUpperCase() === keyword && !/[A-Z0-9_]/i.test(statement[index - 1] ?? "") && !/[A-Z0-9_]/i.test(statement[index + keyword.length] ?? "")) return true;
364
+ }
365
+ return false;
366
+ }
367
+ function hasUnboundedWrite(statement) {
368
+ if (/\bDELETE\s+FROM\b/i.test(statement)) return !hasTopLevelKeyword(statement, "WHERE");
369
+ if (/\bUPDATE\b[\s\S]*\bSET\b/i.test(statement)) return !hasTopLevelKeyword(statement, "WHERE");
370
+ return false;
371
+ }
372
+ /**
373
+ * Check if a SQL migration contains destructive operations.
374
+ */
375
+ function isDestructive(sql) {
376
+ const normalized = sql.replace(/\r\n?/g, "\n");
377
+ let executable = "";
378
+ for (const segment of tokenizeSql(normalized)) if (segment.kind === "sql") executable += normalized.slice(segment.start, segment.end);
379
+ else executable += " ".repeat(segment.end - segment.start);
380
+ return splitExecutableStatements(executable).some((statement) => {
381
+ return DESTRUCTIVE_PATTERNS.some((pattern) => pattern.test(statement)) || hasUnboundedWrite(statement);
382
+ });
383
+ }
384
+ function hasDestructivePragma(sql) {
385
+ return sql.replace(/\r\n?/g, "\n").split("\n").some((line) => line.trim() === DESTRUCTIVE_PRAGMA);
386
+ }
387
+ /**
388
+ * Validate migration files. Returns the validated list with destructive flags.
389
+ * Throws if any destructive migration lacks the allow-destructive pragma.
390
+ */
391
+ function validateMigrations(files) {
392
+ const results = [];
393
+ const errors = [];
394
+ for (const file of files) {
395
+ const destructive = isDestructive(file.sql);
396
+ if (destructive && !hasDestructivePragma(file.sql)) errors.push(file.name);
397
+ results.push({
398
+ name: file.name,
399
+ sql: file.sql,
400
+ destructive
401
+ });
402
+ }
403
+ if (errors.length > 0) throw new Error(`Destructive migrations detected without pragma:\n` + errors.map((f) => ` - ${f}`).join("\n") + `\n\nAdd "${DESTRUCTIVE_PRAGMA}" to each file to allow the migration locally and on deploy.`);
404
+ return results;
405
+ }
406
+ /**
407
+ * Enumerate drizzle-kit metadata artifacts in a migrations directory.
408
+ * Returns repo-relative paths like `db/migrations/meta/0000_snapshot.json`
409
+ * and `db/migrations/migrations.js`. Empty when none are present.
410
+ *
411
+ * Shared across `assertJournalCoherence`, `void gen migration`, and
412
+ * `void db rename-migrations` so all three agree on what counts as a
413
+ * "partial drizzle-kit state" (journal gone but other metadata lingering).
414
+ */
415
+ function listDrizzleArtifacts(migrationsDir) {
416
+ const metaDir = join(migrationsDir, "meta");
417
+ const snapshotFiles = existsSync(metaDir) ? readdirSync(metaDir).filter((f) => f.endsWith("_snapshot.json")) : [];
418
+ const bundledPath = join(migrationsDir, "migrations.js");
419
+ const out = [];
420
+ for (const f of snapshotFiles) out.push(`db/migrations/meta/${f}`);
421
+ if (existsSync(bundledPath)) out.push("db/migrations/migrations.js");
422
+ return out;
423
+ }
424
+ /**
425
+ * Assert that every `.sql` file under `migrationsDir` has a matching entry
426
+ * in `meta/_journal.json`, and vice versa.
427
+ *
428
+ * Drift is a silent footgun: the local/remote runners apply files directly
429
+ * from disk, but `drizzle-kit generate` only sees what's in the journal.
430
+ * An orphan file created by hand (or by a botched scaffold/merge) gets
431
+ * applied to D1 without Drizzle ever acknowledging it, and a failed
432
+ * deploy can leave the database in a state that is impossible to recover
433
+ * from without manual SQL edits (see void-sdk/void#6).
434
+ *
435
+ * A missing journal is NOT a drift error. The drift check is a diff
436
+ * between disk and `meta/_journal.json`; with no journal, there is nothing
437
+ * to diff against. Bare-legacy projects — hand-written `.sql` files with no
438
+ * `db/schema.ts`, no drizzle-kit, no `meta/` directory — worked long
439
+ * before this check existed, and the local/remote runners still track
440
+ * applied migrations by filename via `_void_migrations`. Gating those
441
+ * projects here would break `void deploy`, `void db migrate`, `void db
442
+ * reset`, and `void db status` for a valid path with no migration path
443
+ * forward (they cannot run `void db generate` because it requires
444
+ * `db/schema.ts`). We skip the check silently and let the filename-based
445
+ * runners take over.
446
+ *
447
+ * Throws a user-facing error when any mismatch is detected between the
448
+ * journal and disk. Returns silently otherwise.
449
+ */
450
+ function assertJournalCoherence(migrationsDir, collected) {
451
+ const journal = readJournal(migrationsDir);
452
+ const drizzleArtifacts = listDrizzleArtifacts(migrationsDir);
453
+ if (journal === void 0) {
454
+ if (drizzleArtifacts.length > 0) throw new Error([
455
+ "db/migrations/meta/_journal.json is missing, but other drizzle-kit metadata is still present:",
456
+ ...drizzleArtifacts.map((p) => ` - ${p}`),
457
+ "",
458
+ "This is a partial drizzle-kit state. Restore _journal.json from version control, or delete the orphaned metadata files above if you intended to revert to hand-written migrations."
459
+ ].join("\n"));
460
+ return;
461
+ }
462
+ if (journal === null || typeof journal !== "object" || Array.isArray(journal) || typeof journal.version !== "string" || typeof journal.dialect !== "string" || !Array.isArray(journal.entries)) throw new Error("db/migrations/meta/_journal.json is malformed: expected an object with string `version`, string `dialect`, and an `entries` array. Restore the file from version control, or delete it if you intended to revert to hand-written migrations.");
463
+ for (let i = 0; i < journal.entries.length; i++) {
464
+ const entry = journal.entries[i];
465
+ if (entry === null || typeof entry !== "object" || typeof entry.idx !== "number" || typeof entry.version !== "string" || typeof entry.tag !== "string" || typeof entry.breakpoints !== "boolean") throw new Error(`db/migrations/meta/_journal.json is malformed: entry at index ${i} is missing required fields (\`idx\`, \`version\`, \`tag\`, \`breakpoints\`). Restore the file from version control, or delete it if you intended to revert to hand-written migrations.`);
466
+ }
467
+ if (journal.entries.length === 0) {
468
+ if (drizzleArtifacts.length === 0) return;
469
+ throw new Error([
470
+ "db/migrations/meta/_journal.json has no entries, but drizzle-kit metadata is still present:",
471
+ ...drizzleArtifacts.map((p) => ` - ${p}`),
472
+ "",
473
+ "This is a partial drizzle-kit state. Restore _journal.json from version control (or run `void db generate`), or delete the orphaned metadata files above if you intended to revert to hand-written migrations."
474
+ ].join("\n"));
475
+ }
476
+ const tagCounts = /* @__PURE__ */ new Map();
477
+ for (const entry of journal.entries) tagCounts.set(entry.tag, (tagCounts.get(entry.tag) ?? 0) + 1);
478
+ const duplicateTags = [...tagCounts.entries()].filter(([, n]) => n > 1).map(([tag]) => tag);
479
+ if (duplicateTags.length > 0) throw new Error([
480
+ "db/migrations/meta/_journal.json has duplicate migration entries:",
481
+ ...duplicateTags.map((t) => ` - ${t} (appears ${tagCounts.get(t)} times)`),
482
+ "",
483
+ "Each migration must have a unique tag. Restore _journal.json from version control, or hand-edit to remove the duplicates."
484
+ ].join("\n"));
485
+ const journalTags = new Set(journal.entries.map((e) => e.tag));
486
+ const collectedTags = new Set(collected.map((m) => stripSqlExt(m.name)));
487
+ const orphans = collected.map((m) => m.name).filter((name) => !journalTags.has(stripSqlExt(name)));
488
+ const missing = journal.entries.map((e) => `${e.tag}.sql`).filter((file) => !collectedTags.has(stripSqlExt(file)));
489
+ if (orphans.length === 0 && missing.length === 0) return;
490
+ const lines = ["Migration drift detected between db/migrations/ and db/migrations/meta/_journal.json."];
491
+ if (orphans.length > 0) {
492
+ lines.push("", "These files exist on disk but are not tracked in _journal.json:");
493
+ for (const f of orphans) lines.push(` - db/migrations/${f}`);
494
+ lines.push("", "Delete the orphan file(s), or move their contents into `db/schema.ts` and re-run `void db generate`.");
495
+ }
496
+ if (missing.length > 0) {
497
+ lines.push("", "These entries are in _journal.json but the matching file is missing:");
498
+ for (const f of missing) lines.push(` - db/migrations/${f}`);
499
+ lines.push("", "Restore the missing file(s) from version control, or regenerate migrations.");
500
+ }
501
+ throw new Error(lines.join("\n"));
502
+ }
503
+ //#endregion
504
+ export { buildMigrationPlanBundle as a, collectMigrations as c, stripSqlExt as d, writeJournal as f, validate_exports as i, collect_exports as l, listDrizzleArtifacts as n, classifyMigration as o, validateMigrations as r, plan_exports as s, assertJournalCoherence as t, readJournal as u };
@@ -1,4 +1,4 @@
1
- import { a as join, n as dirname } from "./pathe.M-eThtNZ-BrPhGF_K.mjs";
1
+ import { a as join, n as dirname } from "./pathe.M-eThtNZ-CQzLbt4c.mjs";
2
2
  import { existsSync, readdirSync } from "node:fs";
3
3
  import { pathToFileURL } from "node:url";
4
4
  //#region src/cli/yarn-pnp.ts
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "void",
3
- "version": "0.10.5",
3
+ "version": "0.10.6",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "git+https://github.com/voidzero-dev/void.git",
@@ -308,44 +308,44 @@
308
308
  }
309
309
  },
310
310
  "dependencies": {
311
- "@cloudflare/sandbox": "^0.10.0",
312
- "@cloudflare/vite-plugin": "^1.36.3",
313
- "@cloudflare/workers-types": "^4.20260508.1",
311
+ "@cloudflare/sandbox": "^0.12.3",
312
+ "@cloudflare/vite-plugin": "^1.43.0",
313
+ "@cloudflare/workers-types": "^4.20260702.1",
314
314
  "@hono/oauth-providers": "^0.8.5",
315
315
  "@napi-rs/keyring": "1.3.0",
316
- "better-auth": "^1.6.9",
317
- "better-sqlite3": "^12.9.0",
316
+ "better-auth": "^1.6.23",
317
+ "better-sqlite3": "^12.11.1",
318
318
  "blake3-jit": "^1.1.0",
319
319
  "drizzle-arktype": "^0.1.3",
320
320
  "drizzle-kit": "^0.31.10",
321
321
  "drizzle-orm": "^0.45.2",
322
322
  "drizzle-valibot": "^0.4.2",
323
323
  "drizzle-zod": "^0.8.3",
324
- "es-module-lexer": "^2.1.0",
325
- "hono": "^4.12.18",
324
+ "es-module-lexer": "^2.3.0",
325
+ "hono": "^4.12.27",
326
326
  "ignore": "^7.0.5",
327
327
  "jsonc-parser": "3.3.1",
328
- "pg": "^8.20.0",
329
- "wrangler": "^4.90.0"
328
+ "pg": "8.22.0",
329
+ "wrangler": "^4.107.0"
330
330
  },
331
331
  "devDependencies": {
332
- "@clack/prompts": "^1.3.0",
333
- "@electric-sql/pglite": "0.4.5",
332
+ "@clack/prompts": "^1.7.0",
333
+ "@electric-sql/pglite": "0.5.4",
334
334
  "@types/better-sqlite3": "^7.6.13",
335
- "@types/node": "^25.6.2",
335
+ "@types/node": "^26.1.0",
336
336
  "@types/pg": "^8.20.0",
337
337
  "@typescript/native-preview": "7.0.0-dev.20260507.1",
338
- "arktype": "^2.2.0",
338
+ "arktype": "^2.2.2",
339
339
  "estree-walker": "^3.0.3",
340
340
  "magic-string": "^0.30.21",
341
341
  "ofetch": "2.0.0-alpha.3",
342
342
  "pathe": "^2.0.3",
343
343
  "pglite-server": "0.1.5",
344
344
  "picocolors": "^1.1.1",
345
- "tinyglobby": "^0.2.16",
346
- "valibot": "^1.4.0",
347
- "vite": "npm:@voidzero-dev/vite-plus-core@0.1.20",
348
- "vite-plus": "^0.1.20",
345
+ "tinyglobby": "^0.2.17",
346
+ "valibot": "^1.4.2",
347
+ "vite": "npm:@voidzero-dev/vite-plus-core@0.2.2",
348
+ "vite-plus": "^0.2.2",
349
349
  "zod": "^4.4.3"
350
350
  },
351
351
  "peerDependencies": {
@@ -353,7 +353,7 @@
353
353
  "valibot": ">=1.0.0-beta.7",
354
354
  "vite": "^8.0.0",
355
355
  "zod": "^3.25.0 || ^4.0.0",
356
- "@void/md": "0.10.5"
356
+ "@void/md": "0.10.6"
357
357
  },
358
358
  "peerDependenciesMeta": {
359
359
  "@void/md": {