void 0.8.10 → 0.9.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 (99) hide show
  1. package/dist/{better-auth-shared-BXdg2Sur.d.mts → better-auth-shared-BxcgLiHN.d.mts} +2 -2
  2. package/dist/cli/cli.mjs +24 -24
  3. package/dist/{create-project-DmGoYMqF.mjs → create-project-Dg5hiuDE.mjs} +10 -2
  4. package/dist/{db-CSn2p-PN.mjs → db-D7l4OGV1.mjs} +13 -13
  5. package/dist/{deploy-FrfE1IPx.mjs → deploy-iR7ug73w.mjs} +19 -13
  6. package/dist/{env-helpers-GICENGaN.d.mts → env-helpers-bupZjGHq.d.mts} +1 -1
  7. package/dist/{gen-DVPMPTL1.mjs → gen-CsawhQZz.mjs} +1 -1
  8. package/dist/{handler-2mA_-sst.d.mts → handler-DMSGX5S6.d.mts} +3 -3
  9. package/dist/index.d.mts +3 -3
  10. package/dist/index.mjs +180 -64
  11. package/dist/{init-BaXYK2PD.mjs → init-CD9yg4Xt.mjs} +6 -6
  12. package/dist/{link-PClO4q2M.mjs → link-27a64clx.mjs} +7 -9
  13. package/dist/{node-x1AzR6Yf.mjs → node-C2HhnBO_.mjs} +3 -3
  14. package/dist/package-json-BMdypFnO.mjs +44 -0
  15. package/dist/pages/client.d.mts +1 -1
  16. package/dist/pages/head-client.d.mts +1 -1
  17. package/dist/pages/head.d.mts +1 -1
  18. package/dist/pages/index.d.mts +2 -2
  19. package/dist/pages/islands-plugin.d.mts +1 -1
  20. package/dist/pages/protocol.d.mts +2 -2
  21. package/dist/pages/protocol.mjs +1 -1
  22. package/dist/{plugin-inference-Ba1uGdIy.mjs → plugin-inference-BUBhHt_1.mjs} +6 -2
  23. package/dist/{prepare-D8znEv3-.mjs → prepare-BNuC8Ds9.mjs} +3 -3
  24. package/dist/{preset-BRsCi8ZB.mjs → preset-Lvi0ORmO.mjs} +6 -21
  25. package/dist/{project-cmd-CErG1vM7.mjs → project-cmd-DUkWHooP.mjs} +7 -7
  26. package/dist/{protocol-DXs_1QcC.d.mts → protocol-hjl3Nx5x.d.mts} +3 -3
  27. package/dist/{runner-DCYwTlee.mjs → runner-Cioqe5b2.mjs} +11 -3
  28. package/dist/runtime/ai.mjs +1 -1
  29. package/dist/runtime/auth.d.mts +1 -1
  30. package/dist/runtime/better-auth-pg.d.mts +1 -1
  31. package/dist/runtime/better-auth-pg.mjs +3 -3
  32. package/dist/runtime/better-auth.d.mts +1 -1
  33. package/dist/runtime/better-auth.mjs +2 -2
  34. package/dist/runtime/client-react.d.mts +6 -0
  35. package/dist/runtime/client-react.mjs +5 -0
  36. package/dist/runtime/client-solid.d.mts +6 -0
  37. package/dist/runtime/client-solid.mjs +5 -0
  38. package/dist/runtime/client-svelte.d.mts +6 -0
  39. package/dist/runtime/client-svelte.mjs +5 -0
  40. package/dist/runtime/client-vue.d.mts +6 -0
  41. package/dist/runtime/client-vue.mjs +5 -0
  42. package/dist/runtime/client.d.mts +2 -2
  43. package/dist/runtime/client.mjs +1 -1
  44. package/dist/runtime/env-helpers.d.mts +1 -1
  45. package/dist/runtime/env-public-client.d.mts +1 -1
  46. package/dist/runtime/env-public.d.mts +2 -2
  47. package/dist/runtime/env-public.mjs +1 -1
  48. package/dist/runtime/env.mjs +1 -1
  49. package/dist/runtime/fetch-stream.d.mts +1 -1
  50. package/dist/runtime/fetch-stream.mjs +1 -1
  51. package/dist/runtime/fetch.d.mts +1 -1
  52. package/dist/runtime/fetch.mjs +1 -1
  53. package/dist/runtime/handler.d.mts +1 -1
  54. package/dist/runtime/handler.mjs +1 -1
  55. package/dist/runtime/isr.mjs +1 -1
  56. package/dist/runtime/live.d.mts +2 -2
  57. package/dist/runtime/live.mjs +1 -1
  58. package/dist/runtime/migration-handler-pg.mjs +1 -1
  59. package/dist/runtime/remote/index.d.mts +5 -1
  60. package/dist/runtime/remote/index.mjs +7 -4
  61. package/dist/runtime/sandbox.mjs +1 -1
  62. package/dist/runtime/validator.d.mts +1 -1
  63. package/dist/runtime/ws-server.d.mts +2 -2
  64. package/dist/runtime/ws.d.mts +3 -3
  65. package/dist/{scan-DzzHqtiT.mjs → scan-BNC_1OsY.mjs} +1 -1
  66. package/package.json +22 -2
  67. package/skills/void/docs/guide/env-vars.md +4 -1
  68. package/skills/void/docs/integrations/cloudflare.md +3 -2
  69. package/skills/void/docs/reference/api.md +42 -30
  70. package/skills/void/docs/reference/config.md +1 -1
  71. package/skills/void/docs/reference/resource-inference.md +11 -11
  72. /package/dist/{auth-CHfPhSta.d.mts → auth-BL0cU_Sy.d.mts} +0 -0
  73. /package/dist/{auth-cmd-DE2YDAk0.mjs → auth-cmd-BSdoU6dB.mjs} +0 -0
  74. /package/dist/{auth-migrations-BqJoGqGQ.mjs → auth-migrations-DBoTUBvq.mjs} +0 -0
  75. /package/dist/{better-auth-shared-CbAF6sOM.mjs → better-auth-shared-pR54mTD2.mjs} +0 -0
  76. /package/dist/{cache-ChOUXuMY.mjs → cache-Cb4Vs95q.mjs} +0 -0
  77. /package/dist/{cancel-deploy-g6bC-mpl.mjs → cancel-deploy-CLVkqGJB.mjs} +0 -0
  78. /package/dist/{defer-DkoEwda-.mjs → defer-BosTTQTi.mjs} +0 -0
  79. /package/dist/{delete-D446r1rC.mjs → delete-Bi-gbEHT.mjs} +0 -0
  80. /package/dist/{domain-Digh83lu.mjs → domain-C_atK_X9.mjs} +0 -0
  81. /package/dist/{drizzle-DmaANP4-.mjs → drizzle-Bvhm-Uug.mjs} +0 -0
  82. /package/dist/{env-CJMOHUbW.mjs → env-Dc073Aip.mjs} +0 -0
  83. /package/dist/{env-raw-zk5JQKZe.mjs → env-raw-DhK_myJu.mjs} +0 -0
  84. /package/dist/{fetch-error-rXermVU3.mjs → fetch-error-B8GTcrQw.mjs} +0 -0
  85. /package/dist/{fetch-error-7aWl0RiD.d.mts → fetch-error-Dn-En6Wg.d.mts} +0 -0
  86. /package/dist/{head-DnTAP4p-.d.mts → head-BW_f2L_4.d.mts} +0 -0
  87. /package/dist/{list-G03-pEN-.mjs → list-C3Xt_i8a.mjs} +0 -0
  88. /package/dist/{logs-D0a_HhLn.mjs → logs-CktUaLEr.mjs} +0 -0
  89. /package/dist/{mcp-BLsmImuJ.mjs → mcp-BU7CP6gX.mjs} +0 -0
  90. /package/dist/{pg-BDQxUp3Q.mjs → pg-C-ybKyFU.mjs} +0 -0
  91. /package/dist/{providers--6L9uf7j.d.mts → providers-BVUcW4Jo.d.mts} +0 -0
  92. /package/dist/{rollback-BtiabraI.mjs → rollback-CEjAG9uQ.mjs} +0 -0
  93. /package/dist/{runner-pg-CJ04wNk5.mjs → runner-pg-D8ciL41o.mjs} +0 -0
  94. /package/dist/{secret-CNnequJa.mjs → secret-Dab6XQdb.mjs} +0 -0
  95. /package/dist/{skills-C38GxuGT.mjs → skills-GPm5Kjev.mjs} +0 -0
  96. /package/dist/{standard-schema-BDiIJgp5.d.mts → standard-schema-DCIm8cwQ.d.mts} +0 -0
  97. /package/dist/{subcommand-prompt-BLewBtNI.mjs → subcommand-prompt-DUaWltdH.mjs} +0 -0
  98. /package/dist/{types-C0AOcrPN.d.mts → types-s2mK7ar_.d.mts} +0 -0
  99. /package/dist/{yarn-pnp-CLFC1T3p.mjs → yarn-pnp-BdM0hoCa.mjs} +0 -0
@@ -1,4 +1,4 @@
1
- import { i as getRawRuntimeEnv } from "../env-raw-zk5JQKZe.mjs";
1
+ import { i as getRawRuntimeEnv } from "../env-raw-DhK_myJu.mjs";
2
2
  import { requireRuntimeBinding } from "./env.mjs";
3
3
  import { Sandbox, getSandbox as getSandbox$1 } from "@cloudflare/sandbox";
4
4
  //#region src/runtime/sandbox.ts
@@ -1,2 +1,2 @@
1
- import { C as HandlerInput, T as runValidation, w as ValidatorSlots } from "../handler-2mA_-sst.mjs";
1
+ import { C as HandlerInput, T as runValidation, w as ValidatorSlots } from "../handler-DMSGX5S6.mjs";
2
2
  export { HandlerInput, ValidatorSlots, runValidation };
@@ -1,5 +1,5 @@
1
- import { n as AuthState } from "../auth-CHfPhSta.mjs";
2
- import { i as VoidAuthRuntimeOptions, n as VoidAuthEnv } from "../better-auth-shared-BXdg2Sur.mjs";
1
+ import { n as AuthState } from "../auth-BL0cU_Sy.mjs";
2
+ import { i as VoidAuthRuntimeOptions, n as VoidAuthEnv } from "../better-auth-shared-BxcgLiHN.mjs";
3
3
  import { AnyWebSocketDefinition } from "./ws.mjs";
4
4
 
5
5
  //#region src/runtime/ws-server.d.ts
@@ -1,6 +1,6 @@
1
- import { r as AuthUser } from "../auth-CHfPhSta.mjs";
2
- import { t as StandardSchemaV1 } from "../standard-schema-BDiIJgp5.mjs";
3
- import { i as CloudEnv } from "../handler-2mA_-sst.mjs";
1
+ import { r as AuthUser } from "../auth-BL0cU_Sy.mjs";
2
+ import { t as StandardSchemaV1 } from "../standard-schema-DCIm8cwQ.mjs";
3
+ import { i as CloudEnv } from "../handler-DMSGX5S6.mjs";
4
4
  import { WebSocketRouteMap } from "void/routes";
5
5
 
6
6
  //#region src/runtime/ws.d.ts
@@ -1,7 +1,7 @@
1
1
  import { a as join, i as isAbsolute, t as basename } from "./pathe.M-eThtNZ-BrPhGF_K.mjs";
2
2
  import { n as readProjectPaths } from "./project-paths-CCMrHYQm.mjs";
3
3
  import { n as globSync, t as glob } from "./dist-DR9sIMbM.mjs";
4
- import { d as isCallExpression, f as isIdentifier, h as isObjectExpression, p as isLiteral } from "./plugin-inference-Ba1uGdIy.mjs";
4
+ import { d as isCallExpression, f as isIdentifier, h as isObjectExpression, p as isLiteral } from "./plugin-inference-BUBhHt_1.mjs";
5
5
  import { o as parseRouteFilename, s as parseWebSocketFilename, t as scanPages } from "./scan-2YmJkYAf.mjs";
6
6
  import { readFileSync } from "node:fs";
7
7
  import { parseSync } from "vite";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "void",
3
- "version": "0.8.10",
3
+ "version": "0.9.0",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "git+https://github.com/voidzero-dev/void.git",
@@ -82,6 +82,26 @@
82
82
  "import": "./dist/runtime/client.mjs",
83
83
  "require": "./dist/runtime/client.mjs"
84
84
  },
85
+ "./client/react": {
86
+ "types": "./dist/runtime/client-react.d.mts",
87
+ "import": "./dist/runtime/client-react.mjs",
88
+ "require": "./dist/runtime/client-react.mjs"
89
+ },
90
+ "./client/vue": {
91
+ "types": "./dist/runtime/client-vue.d.mts",
92
+ "import": "./dist/runtime/client-vue.mjs",
93
+ "require": "./dist/runtime/client-vue.mjs"
94
+ },
95
+ "./client/svelte": {
96
+ "types": "./dist/runtime/client-svelte.d.mts",
97
+ "import": "./dist/runtime/client-svelte.mjs",
98
+ "require": "./dist/runtime/client-svelte.mjs"
99
+ },
100
+ "./client/solid": {
101
+ "types": "./dist/runtime/client-solid.d.mts",
102
+ "import": "./dist/runtime/client-solid.mjs",
103
+ "require": "./dist/runtime/client-solid.mjs"
104
+ },
85
105
  "./runtime/fetch": {
86
106
  "types": "./dist/runtime/fetch.d.mts",
87
107
  "import": "./dist/runtime/fetch.mjs",
@@ -333,7 +353,7 @@
333
353
  "valibot": ">=1.0.0-beta.7",
334
354
  "vite": "^8.0.0",
335
355
  "zod": "^3.25.0 || ^4.0.0",
336
- "@void/md": "0.8.10"
356
+ "@void/md": "0.9.0"
337
357
  },
338
358
  "peerDependenciesMeta": {
339
359
  "@void/md": {
@@ -150,13 +150,16 @@ Remote secrets count as "present" for deploy validation — `void deploy` checks
150
150
 
151
151
  ## Defaults
152
152
 
153
- Schema defaults from `defineEnv({ PORT: number().default(3000) })` flow into both:
153
+ Schema defaults from `defineEnv({ PORT: number().default(3000) })` flow into:
154
154
 
155
155
  - The typed `env` proxy: `env.PORT` returns `3000` when no value is set.
156
156
  - Worker bindings (`c.env.PORT`, `process.env.PORT` on Node target): the
157
157
  default value is injected as a stringified `var` in dev, in `void deploy`
158
158
  manifests, and in prerender bindings, so any code path that reads the raw
159
159
  env sees the same fallback.
160
+ - Client-exposed keys (`VITE_*` by default, or your configured `envPrefix`):
161
+ defaults are added to Vite's client env, so browser code reading
162
+ `env.VITE_APP_TITLE` sees the same fallback.
160
163
 
161
164
  User-provided `.env` / shell values always win — defaults only fill gaps.
162
165
 
@@ -244,6 +244,7 @@ Create `wrangler.jsonc` in your project root with the resource IDs from step 1:
244
244
  "binding": "DB",
245
245
  "database_name": "my-app-db",
246
246
  "database_id": "<your-database-id>",
247
+ "migrations_dir": "./db/migrations",
247
248
  },
248
249
  ],
249
250
  "kv_namespaces": [
@@ -268,10 +269,10 @@ Only include the bindings your app actually uses. You can also add service bindi
268
269
  If your app uses D1, apply migrations before deploying:
269
270
 
270
271
  ```bash
271
- wrangler d1 migrations apply DB --remote
272
+ wrangler d1 migrations apply my-app-db --remote
272
273
  ```
273
274
 
274
- This uses the same `db/migrations/` directory that Void uses locally.
275
+ This uses the same `db/migrations/` directory that Void uses locally. `my-app-db` is the database name from your `wrangler.jsonc`; using the database name avoids accidentally applying migrations to the wrong binding.
275
276
 
276
277
  ### 4. Build and deploy
277
278
 
@@ -438,6 +438,17 @@ await auth.signOut();
438
438
 
439
439
  The exact client methods come from Better Auth. In pages apps, Void automatically chooses the framework-specific Better Auth client package when available.
440
440
 
441
+ For regular SPA apps that use Void for API/file routes without Void Pages mode, import the framework-specific client explicitly:
442
+
443
+ ```ts
444
+ import { auth } from 'void/client/react';
445
+ // or: 'void/client/vue'
446
+ // or: 'void/client/svelte'
447
+ // or: 'void/client/solid'
448
+ ```
449
+
450
+ Those subpaths keep the same `fetch`, `fetchStream`, and auth exports as `void/client`, but bind `auth` and `createAuthClient` to Better Auth's framework package.
451
+
441
452
  ### `createAuthClient`
442
453
 
443
454
  Imported from `"void/client"`. Re-export of Better Auth's `createAuthClient` for advanced usage.
@@ -1084,33 +1095,34 @@ See [Markdown Pages](../guide/pages-routing/markdown.md) for setup and framework
1084
1095
 
1085
1096
  This table lists app-facing imports. Exported implementation subpaths such as `void/pages*`, `void/runtime/*`, and `void/remote*` are used by adapters, generated entries, or internal runtime wiring and are not documented as application APIs.
1086
1097
 
1087
- | Import path | Contents |
1088
- | ---------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
1089
- | `void` | `voidPlugin`, handler/type re-exports, `defer`, `Deferred`, `DeferredState`, `InferProps`, `HeadDescriptor` |
1090
- | `void/handler` | `defineHandler`, `defineMiddleware`, `defineScheduled`, `defineQueue`, `defineRender`, `defineHead`, types |
1091
- | `void/auth` | `defineAuth`, `getUser`, `getSession`, `requireAuth`, `AuthUser`, `AuthSession`, `AuthState` |
1092
- | `void/client` | `fetch`, `fetchStream`, `FetchError`, `auth`, `createAuthClient`, `AuthUser`, `AuthSession`, `AuthState` |
1093
- | `void/ws` | `defineRoom`, `defineWebSocket`, `connect`, WebSocket context and connection types |
1094
- | `void/sse` | `eventStream`, `formatSse`, `formatSseText`, `getLastEventId`, `SseStreamClosedError`, SSE message and stream types |
1095
- | `void/sse/client` | `connectEventStream`, browser `EventSource` wrapper types |
1096
- | `void/live` | `defineLiveStream`, SSE topic fanout runtime types. Server-only. |
1097
- | `void/live/client` | `connectLiveStream`, browser helper for one SSE connection plus POST subscribe/unsubscribe control. |
1098
- | `void/response` | `convertReturnValue` |
1099
- | `void/validator` | `runValidation`, `ValidatorSlots`, `HandlerInput` |
1100
- | `void/drizzle-zod` | Re-exports [`drizzle-zod`](https://orm.drizzle.team/docs/zod) for schema-derived Zod validators for Drizzle tables |
1101
- | `void/drizzle-valibot` | Re-exports [`drizzle-valibot`](https://orm.drizzle.team/docs/typebox) for schema-derived Valibot validators for Drizzle tables |
1102
- | `void/drizzle-arktype` | Re-exports [`drizzle-arktype`](https://orm.drizzle.team/docs/arktype) for schema-derived ArkType validators for Drizzle tables |
1103
- | `void/schema-d1` | Re-exports [`drizzle-orm/sqlite-core`](https://orm.drizzle.team/docs/column-types/sqlite) for D1 table and column builders |
1104
- | `void/schema-pg` | Re-exports [`drizzle-orm/pg-core`](https://orm.drizzle.team/docs/column-types/pg) for PostgreSQL table and column builders |
1105
- | `void/db` | `db` (Drizzle D1 or PostgreSQL instance for the active dialect), `createDb`, query operators (`eq`, `and`, `or`, `desc`, `like`, `inArray`, etc.) |
1106
- | `void/seed` | `defineSeed`, `SeedContext`, `SeedFn` for programmatic `void db seed` modules |
1107
- | `void/kv` | `kv`, `createKV`, typed KV client/map types |
1108
- | `void/storage` | `storage`, `createStorage` for the inferred R2 binding or a specific `R2Bucket` |
1109
- | `void/ai` | `ai`, `VoidAi`, model input and response types |
1110
- | `void/isr` | `revalidate(options)` for on-demand ISR cache invalidation |
1111
- | `void/log` | `logger` structured logging helper |
1112
- | `void/routes` | `RouteMap` and `WebSocketRouteMap` stubs (types only) |
1113
- | `void/queues` | `queues` proxy for sending messages to typed queues |
1114
- | `void/sandbox` | `getSandbox`, `sandbox`, `Sandbox`, and sandbox option types from the Cloudflare Sandbox SDK. `getSandbox(id)` resolves to the same Durable Object instance for a given `id` across all deploys and rollbacks. DO-level storage (`ctx.storage`) is durable; the container filesystem, processes, and exposed ports are tied to a single container lifetime and are lost on idle (`sleepAfter`, default `10m`), crash, or platform restart. See [Sandboxes › State persistence](../guide/sandboxes.md#state-persistence). |
1115
- | `void/env` | `defineEnv`, `env`, schema helpers (`string`, `number`, `boolean`, `url`, `email`, `oneOf`, `json`), and global Cloudflare env types |
1116
- | `void/sveltekit` | SvelteKit integration helpers: `withVoidTSConfig()` and `mergeVoidSvelteKitTsconfig()` |
1098
+ | Import path | Contents |
1099
+ | ------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
1100
+ | `void` | `voidPlugin`, handler/type re-exports, `defer`, `Deferred`, `DeferredState`, `InferProps`, `HeadDescriptor` |
1101
+ | `void/handler` | `defineHandler`, `defineMiddleware`, `defineScheduled`, `defineQueue`, `defineRender`, `defineHead`, types |
1102
+ | `void/auth` | `defineAuth`, `getUser`, `getSession`, `requireAuth`, `AuthUser`, `AuthSession`, `AuthState` |
1103
+ | `void/client` | `fetch`, `fetchStream`, `FetchError`, `auth`, `createAuthClient`, `AuthUser`, `AuthSession`, `AuthState` |
1104
+ | `void/client/{framework}` | Same as `void/client`, with framework-specific Better Auth clients for `react`, `vue`, `svelte`, and `solid` |
1105
+ | `void/ws` | `defineRoom`, `defineWebSocket`, `connect`, WebSocket context and connection types |
1106
+ | `void/sse` | `eventStream`, `formatSse`, `formatSseText`, `getLastEventId`, `SseStreamClosedError`, SSE message and stream types |
1107
+ | `void/sse/client` | `connectEventStream`, browser `EventSource` wrapper types |
1108
+ | `void/live` | `defineLiveStream`, SSE topic fanout runtime types. Server-only. |
1109
+ | `void/live/client` | `connectLiveStream`, browser helper for one SSE connection plus POST subscribe/unsubscribe control. |
1110
+ | `void/response` | `convertReturnValue` |
1111
+ | `void/validator` | `runValidation`, `ValidatorSlots`, `HandlerInput` |
1112
+ | `void/drizzle-zod` | Re-exports [`drizzle-zod`](https://orm.drizzle.team/docs/zod) for schema-derived Zod validators for Drizzle tables |
1113
+ | `void/drizzle-valibot` | Re-exports [`drizzle-valibot`](https://orm.drizzle.team/docs/typebox) for schema-derived Valibot validators for Drizzle tables |
1114
+ | `void/drizzle-arktype` | Re-exports [`drizzle-arktype`](https://orm.drizzle.team/docs/arktype) for schema-derived ArkType validators for Drizzle tables |
1115
+ | `void/schema-d1` | Re-exports [`drizzle-orm/sqlite-core`](https://orm.drizzle.team/docs/column-types/sqlite) for D1 table and column builders |
1116
+ | `void/schema-pg` | Re-exports [`drizzle-orm/pg-core`](https://orm.drizzle.team/docs/column-types/pg) for PostgreSQL table and column builders |
1117
+ | `void/db` | `db` (Drizzle D1 or PostgreSQL instance for the active dialect), `createDb`, query operators (`eq`, `and`, `or`, `desc`, `like`, `inArray`, etc.) |
1118
+ | `void/seed` | `defineSeed`, `SeedContext`, `SeedFn` for programmatic `void db seed` modules |
1119
+ | `void/kv` | `kv`, `createKV`, typed KV client/map types |
1120
+ | `void/storage` | `storage`, `createStorage` for the inferred R2 binding or a specific `R2Bucket` |
1121
+ | `void/ai` | `ai`, `VoidAi`, model input and response types |
1122
+ | `void/isr` | `revalidate(options)` for on-demand ISR cache invalidation |
1123
+ | `void/log` | `logger` structured logging helper |
1124
+ | `void/routes` | `RouteMap` and `WebSocketRouteMap` stubs (types only) |
1125
+ | `void/queues` | `queues` proxy for sending messages to typed queues |
1126
+ | `void/sandbox` | `getSandbox`, `sandbox`, `Sandbox`, and sandbox option types from the Cloudflare Sandbox SDK. `getSandbox(id)` resolves to the same Durable Object instance for a given `id` across all deploys and rollbacks. DO-level storage (`ctx.storage`) is durable; the container filesystem, processes, and exposed ports are tied to a single container lifetime and are lost on idle (`sleepAfter`, default `10m`), crash, or platform restart. See [Sandboxes › State persistence](../guide/sandboxes.md#state-persistence). |
1127
+ | `void/env` | `defineEnv`, `env`, schema helpers (`string`, `number`, `boolean`, `url`, `email`, `oneOf`, `json`), and global Cloudflare env types |
1128
+ | `void/sveltekit` | SvelteKit integration helpers: `withVoidTSConfig()` and `mergeVoidSvelteKitTsconfig()` |
@@ -399,7 +399,7 @@ Each binding accepts `true` (use default name), `false` (disable), or a string (
399
399
  | `storage` | `STORAGE` | `R2Bucket` | `"storage": "MY_BUCKET"` |
400
400
  | `ai` | `AI` | `Ai` | Boolean only |
401
401
 
402
- Custom names are used in the deploy manifest and in wrangler binding sync for local dev.
402
+ Custom names are used in the deploy manifest, Wrangler config generation/sync, remote binding proxying, internal migrations, and generated runtime helpers such as `void/db`, `void/kv`, and `void/storage`.
403
403
 
404
404
  #### `inference.build`
405
405
 
@@ -18,17 +18,17 @@ This runs once before plugins initialize, so the results are available to config
18
18
 
19
19
  ## Detected Bindings
20
20
 
21
- | Binding | Type | Detected by import | Detected by env access |
22
- | --------- | --------------------------------- | ------------------------------------------------------------------------- | -------------------------------- |
23
- | `DB` | `D1Database` | `import { db } from "void/db"` | `env.DB` or `c.env.DB` |
24
- | `KV` | `KVNamespace` | `import { kv } from "void/kv"` | `env.KV` or `c.env.KV` |
25
- | `STORAGE` | `R2Bucket` | `import { storage } from "void/storage"` | `env.STORAGE` or `c.env.STORAGE` |
26
- | `AI` | `Ai` | `import { ai } from "void/ai"` | `env.AI` or `c.env.AI` |
27
- | `SANDBOX` | `DurableObjectNamespace<Sandbox>` | `import { getSandbox } from "void/sandbox"` | `env.SANDBOX` or `c.env.SANDBOX` |
28
- | Auth | none | `import { ... } from "void/auth"` or `import { auth } from "void/client"` | none |
29
- | `QUEUE_*` | `Queue` | `import { queues } from "void/queues"` | `env.QUEUE_*` |
30
-
31
- Auth detection also triggers when importing the `auth` specifier from `void/client` (but not when importing only `fetch`).
21
+ | Binding | Type | Detected by import | Detected by env access |
22
+ | --------- | --------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------- |
23
+ | `DB` | `D1Database` | `import { db } from "void/db"` | `env.DB` or `c.env.DB` |
24
+ | `KV` | `KVNamespace` | `import { kv } from "void/kv"` | `env.KV` or `c.env.KV` |
25
+ | `STORAGE` | `R2Bucket` | `import { storage } from "void/storage"` | `env.STORAGE` or `c.env.STORAGE` |
26
+ | `AI` | `Ai` | `import { ai } from "void/ai"` | `env.AI` or `c.env.AI` |
27
+ | `SANDBOX` | `DurableObjectNamespace<Sandbox>` | `import { getSandbox } from "void/sandbox"` | `env.SANDBOX` or `c.env.SANDBOX` |
28
+ | Auth | none | `import { ... } from "void/auth"` or `import { auth } from "void/client"` / `void/client/react` / `void/client/vue` / `void/client/svelte` / `void/client/solid` | none |
29
+ | `QUEUE_*` | `Queue` | `import { queues } from "void/queues"` | `env.QUEUE_*` |
30
+
31
+ Auth detection also triggers when importing the `auth` specifier from `void/client` or a framework-specific client subpath such as `void/client/react` (but not when importing only `fetch`).
32
32
 
33
33
  ## Scanned Directories
34
34
 
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes