void 0.10.12 → 0.20.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS_TEMPLATE.md +6 -0
- package/{skills/void/docs/node_modules/void/node_modules/pglite-server/LICENSE.md → LICENSE} +1 -1
- package/README.md +34 -8
- package/dist/{auth-qgMlYp7Z.d.mts → auth-DkcFflXV.d.mts} +10 -11
- package/dist/auth-W9WII-mN.mjs +630 -0
- package/dist/{auth-cmd-BqsdZJp5.mjs → auth-cmd-CYVhSNFy.mjs} +4 -3
- package/dist/{auth-migrations-BTZ-ATvQ.mjs → auth-migrations-9vif1uj8.mjs} +53 -12
- package/dist/{better-auth-shared-BQooDxbw.mjs → better-auth-shared-CYw1T3k4.mjs} +7 -10
- package/dist/{better-auth-shared-DealXecJ.d.mts → better-auth-shared-DSCeohOK.d.mts} +10 -5
- package/dist/{build-cmd-Bujrv5q-.mjs → build-cmd-CkVD1uOh.mjs} +6 -4
- package/dist/{cache-C11V8Fxq.mjs → cache-QcUfR-ff.mjs} +9 -5
- package/dist/{cancel-deploy-fwFYF04b.mjs → cancel-deploy-DsvWKFTe.mjs} +3 -2
- package/dist/cf-access-AJ1ehiFR.mjs +42 -0
- package/dist/cf-access-DsSsZUPr.mjs +67 -0
- package/dist/cli/cli.d.mts +1 -1
- package/dist/cli/cli.mjs +1592 -153
- package/dist/cli/env-schema-probe.d.mts +48 -61
- package/dist/cli/env-schema-probe.mjs +10 -58
- package/dist/{client-Gb71-XkG.mjs → client-CyCHWSO_.mjs} +61 -463
- package/dist/cloudflare-auth-DRkGe7-s.mjs +170 -0
- package/dist/cloudflare-cmd-D3ME2GAe.mjs +62 -0
- package/dist/cloudflare-connect-BivMefMA.mjs +56 -0
- package/dist/cloudflare-operations-CPTpRW6d.mjs +566 -0
- package/dist/{config-BkTvs43g.mjs → config-BQFq7QvD.mjs} +85 -41
- package/dist/{config-CutEMNGJ.mjs → config-NOG_U1aK.mjs} +10 -15
- package/dist/connect-D9Yr-T5f.mjs +79 -0
- package/dist/{create-project-DsYvl3TB.mjs → create-project-DMV-csEm.mjs} +26 -16
- package/dist/database-provider.d.mts +21 -0
- package/dist/database-provider.mjs +6 -0
- package/dist/{db-DOiJMRt2.mjs → db-BxoUWL0F.mjs} +600 -115
- package/dist/{delete-mh6p-zkQ.mjs → delete-iJOqxBz1.mjs} +9 -6
- package/dist/{deploy-u7Rv9q_q.mjs → deploy-CcDoeBIf.mjs} +3451 -1986
- package/dist/dev-inbox-DkgRWLkW.mjs +307 -0
- package/dist/{discover-CJHyvYfR.mjs → discover-xvfrgJeo.mjs} +3 -3
- package/dist/{magic-string.es-ZQjdJFFn.mjs → dist-BR1quN_w.mjs} +570 -216
- package/dist/{dist-DaKKDf8D.mjs → dist-BrsS7cai.mjs} +17 -2
- package/dist/{dist-BuiRJkTd.mjs → dist-m40_XgNh.mjs} +48 -33
- package/dist/{domain-DiaNQbrl.mjs → domain-gu_iaHmn.mjs} +41 -4
- package/dist/dotenv-VQxupEUv.mjs +181 -0
- package/dist/edge.d.mts +2 -0
- package/dist/edge.mjs +2 -0
- package/dist/email-Ce6SQq-i.mjs +182 -0
- package/dist/email-r6DHJyAB.mjs +262 -0
- package/dist/{entry-D7yy4xVH.mjs → entry-DU3oDoQ3.mjs} +2 -2
- package/dist/env-D4Emu-M_.mjs +95 -0
- package/dist/env-DmU2To0C.mjs +73 -0
- package/dist/env-helpers-CyKtOBpj.d.mts +22 -0
- package/dist/env-public-D_6u46fX.d.mts +135 -0
- package/dist/{env-types-QBj-ndax.mjs → env-types-BNPhro-M.mjs} +2 -2
- package/dist/{env-validation-Dea3v3ej.mjs → env-validation-ENpMy6Ez.mjs} +68 -122
- package/dist/{gen-o_w-8yI8.mjs → gen-BKw6qHIg.mjs} +70 -15
- package/dist/{github-cmd-DKcGUNsj.mjs → github-cmd-DJS5Ab-H.mjs} +39 -31
- package/dist/{handler-Cjh8uM3Y.d.mts → handler-D1hLsObx.d.mts} +124 -122
- package/dist/{head-nmvOgFjd.d.mts → head-Do8P4puT.d.mts} +9 -8
- package/dist/{headers-nsHIFixA.mjs → headers-D8QfRX9Y.mjs} +12 -10
- package/dist/inbound-BJ70in1n.d.mts +354 -0
- package/dist/inbound-CNKxb3FY.mjs +694 -0
- package/dist/index.d.mts +61 -34
- package/dist/index.mjs +1048 -321
- package/dist/{init-3rgHKBVi.mjs → init-Dx5cgKqK.mjs} +329 -271
- package/dist/link-D_rm5sRH.mjs +52 -0
- package/dist/{list-CPwFDZ_c.mjs → list-M8XShti7.mjs} +37 -5
- package/dist/{runner-kapo9aPs.mjs → local-d1-BE8KBbMy.mjs} +116 -6
- package/dist/{login-BT3H8PN3.mjs → login-C8-UuLnp.mjs} +17 -15
- package/dist/{logs-Bt313ax7.mjs → logs-DwFU7dMW.mjs} +16 -2
- package/dist/mime-BJD7d_qL.mjs +1216 -0
- package/dist/neon-DHwd2zvC.mjs +54 -0
- package/dist/{node-Da0UcsGA.mjs → node-BkaXcpAc.mjs} +29 -8
- package/dist/operator-cmd-DYWRbWUA.mjs +348 -0
- package/dist/{agents-CtgBYqld.mjs → output-tFQLLj26.mjs} +676 -211
- package/dist/{package-json-Cx1osYo6.mjs → package-json-CPoWX79C.mjs} +1 -1
- package/dist/pages/client.d.mts +43 -41
- package/dist/pages/client.mjs +40 -33
- package/dist/pages/head-client.d.mts +10 -12
- package/dist/pages/head.d.mts +1 -1
- package/dist/pages/index.d.mts +37 -14
- package/dist/pages/index.mjs +5 -5
- package/dist/pages/islands-plugin.d.mts +25 -27
- package/dist/pages/islands-plugin.mjs +6 -4
- package/dist/pages/prefetch.d.mts +6 -7
- package/dist/pages/protocol.d.mts +2 -2
- package/dist/pages/protocol.mjs +2 -1
- package/dist/pages/serialize.d.mts +7 -8
- package/dist/platform-cmd-BEOVv1PN.mjs +123 -0
- package/dist/platform-domain-BszUfiS8.mjs +228 -0
- package/dist/platform-lifecycle-CjSr6xf0.mjs +4450 -0
- package/dist/platform-management-W30iCaTL.mjs +698 -0
- package/dist/platform-recovery-pHHv4ZSg.mjs +99 -0
- package/dist/{plugin-inference-DMeavIJ6.mjs → plugin-inference-BDRfZngg.mjs} +35 -19
- package/dist/prepare-BfJvFUtJ.mjs +14 -0
- package/dist/{prepare-BoKHgMNx.mjs → prepare-CBetXvsN.mjs} +15 -24
- package/dist/{preset-BjyR3lzz.mjs → preset-lAy0B0BQ.mjs} +25 -212
- package/dist/{project-cmd-D_w-4w5B.mjs → project-cmd-DCpk1cDt.mjs} +25 -12
- package/dist/{project-paths-BQd7OmIo.mjs → project-paths-SK8nMHPp.mjs} +3 -1
- package/dist/{project-tsconfig-B-QtXjLQ.mjs → project-tsconfig-Ql2XsSQp.mjs} +2 -2
- package/dist/{protocol-Bnb0LFp3.d.mts → protocol-C-pqYJjE.d.mts} +3 -4
- package/dist/{provision-rShh6MKY.mjs → provision-Blnstcm2.mjs} +78 -45
- package/dist/r2-conditions-D1Wk8i7b.mjs +30 -0
- package/dist/{requests-B8sZxaFM.mjs → requests-Dn8Vheh1.mjs} +5 -3
- package/dist/{resolve-project-BBMtLLV9.mjs → resolve-project--Vxawf7z.mjs} +2 -2
- package/dist/rollback-CtlPXEBi.mjs +166 -0
- package/dist/{rolldown-runtime-DJK8HYOj.mjs → rolldown-runtime-rQ84J-ij.mjs} +1 -1
- package/dist/{route-types-COI2DsZv.mjs → route-types-Da-DpyUp.mjs} +85 -26
- package/dist/routes-stub.d.mts +22 -23
- package/dist/runner-mysql-CgRFl3s6.mjs +61 -0
- package/dist/{runner-pg-CHM76xuC.mjs → runner-pg-DCkWPsWS.mjs} +18 -6
- package/dist/runtime/ai.d.mts +21 -14
- package/dist/runtime/ai.mjs +5 -4
- package/dist/runtime/auth-client-react.d.mts +3 -5
- package/dist/runtime/auth-client-solid.d.mts +3 -5
- package/dist/runtime/auth-client-svelte.d.mts +3 -5
- package/dist/runtime/auth-client-vue.d.mts +3 -5
- package/dist/runtime/auth-client.d.mts +3 -5
- package/dist/runtime/auth.d.mts +1 -1
- package/dist/runtime/better-auth-mysql.d.mts +10 -0
- package/dist/runtime/better-auth-mysql.mjs +49 -0
- package/dist/runtime/better-auth-pg.d.mts +8 -9
- package/dist/runtime/better-auth-pg.mjs +2 -2
- package/dist/runtime/better-auth.d.mts +8 -9
- package/dist/runtime/better-auth.mjs +2 -2
- package/dist/runtime/client-react.d.mts +1 -1
- package/dist/runtime/client-solid.d.mts +1 -1
- package/dist/runtime/client-svelte.d.mts +1 -1
- package/dist/runtime/client-vue.d.mts +1 -1
- package/dist/runtime/client.d.mts +1 -1
- package/dist/runtime/db-mysql.d.mts +2 -0
- package/dist/runtime/db-mysql.mjs +1 -0
- package/dist/runtime/db.d.mts +10 -11
- package/dist/runtime/durable.d.mts +47 -0
- package/dist/runtime/durable.mjs +146 -0
- package/dist/runtime/email/testing.d.mts +112 -0
- package/dist/runtime/email/testing.mjs +283 -0
- package/dist/runtime/email.d.mts +30 -0
- package/dist/runtime/email.mjs +573 -0
- package/dist/runtime/env-helpers.d.mts +2 -2
- package/dist/runtime/env-helpers.mjs +5 -42
- package/dist/runtime/env-public-client.d.mts +10 -11
- package/dist/runtime/env-public-client.mjs +1 -1
- package/dist/runtime/env-public.d.mts +2 -2
- package/dist/runtime/env-public.mjs +104 -49
- package/dist/runtime/env.d.mts +19 -18
- package/dist/runtime/env.mjs +15 -2
- package/dist/runtime/fetch-stream.d.mts +20 -21
- package/dist/runtime/fetch.d.mts +15 -16
- package/dist/runtime/handler.d.mts +1 -1
- package/dist/runtime/isr.d.mts +21 -22
- package/dist/runtime/isr.mjs +26 -8
- package/dist/runtime/kv.d.mts +9 -10
- package/dist/runtime/live-client.d.mts +5 -7
- package/dist/runtime/live-client.mjs +9 -7
- package/dist/runtime/live-server.d.mts +4 -5
- package/dist/runtime/live.d.mts +22 -24
- package/dist/runtime/live.mjs +1 -1
- package/dist/runtime/log.d.mts +16 -17
- package/dist/runtime/migration-handler-mysql.d.mts +4 -0
- package/dist/runtime/migration-handler-mysql.mjs +81 -0
- package/dist/runtime/migration-handler-pg.d.mts +2 -4
- package/dist/runtime/migration-handler.d.mts +5 -6
- package/dist/runtime/migration-handler.mjs +4 -3
- package/dist/runtime/queues.d.mts +3 -4
- package/dist/runtime/queues.mjs +2 -1
- package/dist/runtime/remote/binding-handler.d.mts +10 -12
- package/dist/runtime/remote/binding-handler.mjs +24 -3
- package/dist/runtime/remote/index.d.mts +5 -6
- package/dist/runtime/remote/index.mjs +21 -18
- package/dist/runtime/response.d.mts +10 -11
- package/dist/runtime/sandbox.d.mts +56 -55
- package/dist/runtime/sandbox.mjs +57 -49
- package/dist/runtime/schema-mysql.d.mts +1 -0
- package/dist/runtime/schema-mysql.mjs +2 -0
- package/dist/runtime/seed.d.mts +14 -9
- package/dist/runtime/sse-client.d.mts +6 -7
- package/dist/runtime/sse.d.mts +11 -12
- package/dist/runtime/storage.d.mts +3 -4
- package/dist/runtime/validator.d.mts +1 -1
- package/dist/runtime/ws-server.d.mts +12 -12
- package/dist/runtime/ws-server.mjs +32 -4
- package/dist/runtime/ws.d.mts +19 -21
- package/dist/{scan-DYXkrasO.mjs → scan-BMH4rzlv.mjs} +53 -31
- package/dist/{scan-DEwlM_Xy.mjs → scan-CpK-57ug.mjs} +9 -5
- package/dist/{secret-Dt32J6RI.mjs → secret-BqTxGqki.mjs} +62 -5
- package/dist/{skills-CLjN0uUO.mjs → skills-Q46GZMO-.mjs} +6 -4
- package/dist/{standard-schema-DJ0HW7QP.d.mts → standard-schema-Fo_vCAZh.d.mts} +6 -6
- package/dist/{subcommand-prompt-BzV8iQZo.mjs → subcommand-prompt-WfySCQ7S.mjs} +67 -48
- package/dist/sveltekit.d.mts +12 -11
- package/dist/sveltekit.mjs +1 -1
- package/dist/types-BAp5AEBU.d.mts +79 -0
- package/dist/types-CKWnYgfy.d.mts +1 -0
- package/dist/{validate-Cw_RLeTj.mjs → validate-Bihr8WBi.mjs} +3 -3
- package/dist/wrangler--imS8n0d.mjs +1796 -0
- package/dist/{yarn-pnp-DJn3SAHF.mjs → yarn-pnp-DxSInkzL.mjs} +1 -1
- package/package.json +79 -65
- package/schema.json +35 -3
- package/skills/migrate-vite-cloudflare-to-void/SKILL.md +1 -1
- package/skills/void/SKILL.md +59 -2
- package/skills/void/docs/guide/ai.md +32 -14
- package/skills/void/docs/guide/app-types.md +6 -6
- package/skills/void/docs/guide/auth.md +14 -16
- package/skills/void/docs/guide/database/d1.md +6 -0
- package/skills/void/docs/guide/database/mysql.md +60 -0
- package/skills/void/docs/guide/database/postgresql.md +14 -9
- package/skills/void/docs/guide/database.md +39 -26
- package/skills/void/docs/guide/deployment.md +163 -22
- package/skills/void/docs/guide/durable-state.md +140 -0
- package/skills/void/docs/guide/edge/headers.md +5 -5
- package/skills/void/docs/guide/edge/prerendering.md +2 -0
- package/skills/void/docs/guide/edge/revalidation.md +21 -6
- package/skills/void/docs/guide/edge/rewrites.md +18 -14
- package/skills/void/docs/guide/edge/static-assets.md +23 -8
- package/skills/void/docs/guide/email.md +609 -0
- package/skills/void/docs/guide/env-migration.md +109 -0
- package/skills/void/docs/guide/env-vars.md +70 -248
- package/skills/void/docs/guide/index.md +15 -17
- package/skills/void/docs/guide/jobs.md +8 -5
- package/skills/void/docs/guide/live.md +7 -15
- package/skills/void/docs/guide/pages-routing/actions-and-forms.md +8 -4
- package/skills/void/docs/guide/pages-routing/islands.md +3 -3
- package/skills/void/docs/guide/pages-routing/loaders.md +6 -4
- package/skills/void/docs/guide/pages-routing/overview.md +7 -7
- package/skills/void/docs/guide/platform-administration.md +212 -0
- package/skills/void/docs/guide/platform-development.md +235 -0
- package/skills/void/docs/guide/queues.md +10 -10
- package/skills/void/docs/guide/quickstart.md +46 -67
- package/skills/void/docs/guide/remote-dev.md +8 -6
- package/skills/void/docs/guide/sandboxes.md +33 -16
- package/skills/void/docs/guide/self-hosted-platform.md +553 -0
- package/skills/void/docs/guide/server-routing.md +25 -5
- package/skills/void/docs/guide/sse.md +4 -4
- package/skills/void/docs/guide/ssg.md +5 -3
- package/skills/void/docs/guide/storage.md +2 -2
- package/skills/void/docs/guide/websockets.md +18 -7
- package/skills/void/docs/index.md +3 -3
- package/skills/void/docs/integrations/agents.md +6 -64
- package/skills/void/docs/integrations/cloudflare.md +165 -146
- package/skills/void/docs/integrations/frameworks/analog.md +4 -4
- package/skills/void/docs/integrations/frameworks/astro.md +5 -5
- package/skills/void/docs/integrations/frameworks/nuxt.md +5 -5
- package/skills/void/docs/integrations/frameworks/overview.md +3 -3
- package/skills/void/docs/integrations/frameworks/react-router.md +3 -3
- package/skills/void/docs/integrations/frameworks/sveltekit.md +3 -3
- package/skills/void/docs/integrations/frameworks/tanstack-start.md +2 -2
- package/skills/void/docs/integrations/nodejs-bun-deno.md +11 -4
- package/skills/void/docs/reference/api.md +42 -6
- package/skills/void/docs/reference/cli.md +637 -159
- package/skills/void/docs/reference/config.md +80 -25
- package/skills/void/docs/reference/resource-inference.md +13 -9
- package/skills/void/docs/reference/structure.md +10 -11
- package/AGENT_PROMPT.md +0 -19
- package/dist/cf-access-Bqw81xAf.mjs +0 -22
- package/dist/env-CZy5MorI.mjs +0 -299
- package/dist/env-helpers-z4stu8uc.d.mts +0 -52
- package/dist/env-mask-Dd47NbR6.mjs +0 -90
- package/dist/env-public-BfiLcMBk.d.mts +0 -140
- package/dist/link-CdGHSIy-.mjs +0 -45
- package/dist/mcp-DoM3_nhd.mjs +0 -377
- package/dist/project-paths-GpziKeQQ.d.mts +0 -25
- package/dist/providers-BNKRacMr.d.mts +0 -7
- package/dist/proxy-D-3_D-Gl.mjs +0 -5
- package/dist/rollback-CkvTFXx5.mjs +0 -90
- package/dist/runtime/isr-cache.d.mts +0 -207
- package/dist/runtime/isr-cache.mjs +0 -523
- package/dist/types-lLjNE9Qp.d.mts +0 -51
- package/getting-started-prompt.txt +0 -28
- package/skills/void/command/void.md +0 -7
- package/skills/void/docs/integrations/auth-providers.md +0 -0
- package/skills/void/docs/integrations/payment-processors.md +0 -0
- package/skills/void/docs/node_modules/@iconify/vue/README.md +0 -408
- package/skills/void/docs/node_modules/@iconify/vue/offline/readme.md +0 -5
- package/skills/void/docs/node_modules/@voidzero-dev/vitepress-theme/README.md +0 -103
- package/skills/void/docs/node_modules/oxc-minify/README.md +0 -78
- package/skills/void/docs/node_modules/reka-ui/README.md +0 -80
- package/skills/void/docs/node_modules/vitepress/README.md +0 -28
- package/skills/void/docs/node_modules/vitepress/template/api-examples.md +0 -49
- package/skills/void/docs/node_modules/vitepress/template/index.md +0 -28
- package/skills/void/docs/node_modules/vitepress/template/markdown-examples.md +0 -85
- package/skills/void/docs/node_modules/vitepress-plugin-group-icons/README.md +0 -101
- package/skills/void/docs/node_modules/void/AGENT_PROMPT.md +0 -19
- package/skills/void/docs/node_modules/void/CLAUDE.md +0 -219
- package/skills/void/docs/node_modules/void/README.md +0 -90
- package/skills/void/docs/node_modules/void/node_modules/@clack/prompts/CHANGELOG.md +0 -685
- package/skills/void/docs/node_modules/void/node_modules/@clack/prompts/README.md +0 -396
- package/skills/void/docs/node_modules/void/node_modules/@cloudflare/sandbox/README.md +0 -219
- package/skills/void/docs/node_modules/void/node_modules/@cloudflare/vite-plugin/README.md +0 -37
- package/skills/void/docs/node_modules/void/node_modules/@cloudflare/workers-types/README.md +0 -135
- package/skills/void/docs/node_modules/void/node_modules/@electric-sql/pglite/README.md +0 -189
- package/skills/void/docs/node_modules/void/node_modules/@hono/oauth-providers/CHANGELOG.md +0 -143
- package/skills/void/docs/node_modules/void/node_modules/@hono/oauth-providers/README.md +0 -1272
- package/skills/void/docs/node_modules/void/node_modules/@napi-rs/keyring/README.md +0 -19
- package/skills/void/docs/node_modules/void/node_modules/@types/better-sqlite3/README.md +0 -15
- package/skills/void/docs/node_modules/void/node_modules/@types/node/README.md +0 -15
- package/skills/void/docs/node_modules/void/node_modules/@types/pg/README.md +0 -15
- package/skills/void/docs/node_modules/void/node_modules/@types/proper-lockfile/README.md +0 -51
- package/skills/void/docs/node_modules/void/node_modules/@typescript/native-preview/README.md +0 -22
- package/skills/void/docs/node_modules/void/node_modules/@typescript/native-preview/vendor/vscode-jsonrpc/README.md +0 -69
- package/skills/void/docs/node_modules/void/node_modules/@void/md/README.md +0 -153
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/@shikijs/engine-javascript/README.md +0 -9
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/@shikijs/transformers/README.md +0 -9
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/@types/node/README.md +0 -15
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/gray-matter/CHANGELOG.md +0 -24
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/gray-matter/README.md +0 -565
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/markdown-exit/README.md +0 -127
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/markdown-it-anchor/README.md +0 -600
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/markdown-it-attrs/README.md +0 -386
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/markdown-it-container/README.md +0 -95
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/markdown-it-emoji/README.md +0 -101
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/markdown-it-footnote/README.md +0 -135
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/pathslash/README.md +0 -64
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/shiki/README.md +0 -15
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/tinyglobby/README.md +0 -25
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/AGENTS.md +0 -16
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/README.md +0 -220
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/config/build.md +0 -21
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/config/check.md +0 -35
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/config/create.md +0 -70
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/config/fmt.md +0 -20
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/config/index.md +0 -35
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/config/lint.md +0 -26
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/config/pack.md +0 -17
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/config/run.md +0 -364
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/config/staged.md +0 -15
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/config/test.md +0 -18
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/automatic-data-tracking.md +0 -145
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/build.md +0 -40
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/cache.md +0 -107
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/check.md +0 -60
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/ci.md +0 -62
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/commit-hooks.md +0 -60
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/create.md +0 -341
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/dev.md +0 -24
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/docker.md +0 -175
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/env.md +0 -167
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/fmt.md +0 -41
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/github-actions-cache.md +0 -165
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/ide-integration.md +0 -101
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/implode.md +0 -23
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/index.md +0 -134
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/install.md +0 -199
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/lint.md +0 -50
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/migrate-rules.md +0 -347
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/migrate.md +0 -197
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/monorepo.md +0 -176
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/pack.md +0 -69
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/run.md +0 -356
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/test.md +0 -35
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/troubleshooting.md +0 -108
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/upgrade.md +0 -101
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/vpx.md +0 -66
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/guide/why.md +0 -39
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/index.md +0 -12
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/docs/team.md +0 -35
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/templates/generator/README.md +0 -35
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite-plus/templates/monorepo/README.md +0 -29
- package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vue/README.md +0 -58
- package/skills/void/docs/node_modules/void/node_modules/arktype/README.md +0 -165
- package/skills/void/docs/node_modules/void/node_modules/better-auth/LICENSE.md +0 -20
- package/skills/void/docs/node_modules/void/node_modules/better-auth/README.md +0 -32
- package/skills/void/docs/node_modules/void/node_modules/better-sqlite3/README.md +0 -99
- package/skills/void/docs/node_modules/void/node_modules/blake3-jit/README.md +0 -108
- package/skills/void/docs/node_modules/void/node_modules/drizzle-arktype/README.md +0 -51
- package/skills/void/docs/node_modules/void/node_modules/drizzle-kit/README.md +0 -79
- package/skills/void/docs/node_modules/void/node_modules/drizzle-orm/README.md +0 -44
- package/skills/void/docs/node_modules/void/node_modules/drizzle-valibot/README.md +0 -51
- package/skills/void/docs/node_modules/void/node_modules/drizzle-zod/README.md +0 -65
- package/skills/void/docs/node_modules/void/node_modules/es-module-lexer/README.md +0 -403
- package/skills/void/docs/node_modules/void/node_modules/estree-walker/README.md +0 -48
- package/skills/void/docs/node_modules/void/node_modules/hono/README.md +0 -85
- package/skills/void/docs/node_modules/void/node_modules/ignore/README.md +0 -452
- package/skills/void/docs/node_modules/void/node_modules/jsonc-parser/CHANGELOG.md +0 -76
- package/skills/void/docs/node_modules/void/node_modules/jsonc-parser/LICENSE.md +0 -21
- package/skills/void/docs/node_modules/void/node_modules/jsonc-parser/README.md +0 -364
- package/skills/void/docs/node_modules/void/node_modules/jsonc-parser/SECURITY.md +0 -41
- package/skills/void/docs/node_modules/void/node_modules/magic-string/README.md +0 -325
- package/skills/void/docs/node_modules/void/node_modules/ofetch/README.md +0 -398
- package/skills/void/docs/node_modules/void/node_modules/pathslash/README.md +0 -64
- package/skills/void/docs/node_modules/void/node_modules/pg/README.md +0 -96
- package/skills/void/docs/node_modules/void/node_modules/pglite-server/README.md +0 -135
- package/skills/void/docs/node_modules/void/node_modules/picocolors/README.md +0 -21
- package/skills/void/docs/node_modules/void/node_modules/proper-lockfile/CHANGELOG.md +0 -108
- package/skills/void/docs/node_modules/void/node_modules/proper-lockfile/README.md +0 -183
- package/skills/void/docs/node_modules/void/node_modules/tinyglobby/README.md +0 -25
- package/skills/void/docs/node_modules/void/node_modules/valibot/LICENSE.md +0 -9
- package/skills/void/docs/node_modules/void/node_modules/valibot/README.md +0 -94
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/AGENTS.md +0 -16
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/README.md +0 -220
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/config/build.md +0 -21
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/config/check.md +0 -35
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/config/create.md +0 -70
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/config/fmt.md +0 -20
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/config/index.md +0 -35
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/config/lint.md +0 -26
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/config/pack.md +0 -17
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/config/run.md +0 -364
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/config/staged.md +0 -15
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/config/test.md +0 -18
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/automatic-data-tracking.md +0 -145
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/build.md +0 -40
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/cache.md +0 -107
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/check.md +0 -60
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/ci.md +0 -62
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/commit-hooks.md +0 -60
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/create.md +0 -341
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/dev.md +0 -24
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/docker.md +0 -175
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/env.md +0 -167
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/fmt.md +0 -41
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/github-actions-cache.md +0 -165
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/ide-integration.md +0 -101
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/implode.md +0 -23
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/index.md +0 -134
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/install.md +0 -199
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/lint.md +0 -50
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/migrate-rules.md +0 -347
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/migrate.md +0 -197
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/monorepo.md +0 -176
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/pack.md +0 -69
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/run.md +0 -356
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/test.md +0 -35
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/troubleshooting.md +0 -108
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/upgrade.md +0 -101
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/vpx.md +0 -66
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/guide/why.md +0 -39
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/index.md +0 -12
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/docs/team.md +0 -35
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/templates/generator/README.md +0 -35
- package/skills/void/docs/node_modules/void/node_modules/vite-plus/templates/monorepo/README.md +0 -29
- package/skills/void/docs/node_modules/void/node_modules/wrangler/README.md +0 -63
- package/skills/void/docs/node_modules/void/node_modules/zod/README.md +0 -191
- package/skills/void/docs/node_modules/void/skills/migrate-vite-cloudflare-to-void/SKILL.md +0 -175
- package/skills/void/docs/node_modules/void/skills/void/SKILL.md +0 -76
- package/skills/void/docs/node_modules/void/skills/void/command/void.md +0 -7
- package/skills/void/docs/node_modules/void/test/e2e/README.md +0 -85
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
import { LiveClientEvent } from "./live.mjs";
|
|
2
|
-
|
|
3
2
|
//#region src/runtime/live-client.d.ts
|
|
4
|
-
type LiveSubscribeOptions<Data = unknown> = {
|
|
3
|
+
export type LiveSubscribeOptions<Data = unknown> = {
|
|
5
4
|
id: string;
|
|
6
5
|
topic: string;
|
|
7
6
|
lastEventId?: string;
|
|
8
7
|
onEvent?: (event: LiveClientEvent<Data>) => void;
|
|
9
8
|
};
|
|
10
|
-
type ConnectLiveStreamOptions = {
|
|
9
|
+
export type ConnectLiveStreamOptions = {
|
|
11
10
|
withCredentials?: boolean;
|
|
12
11
|
fetch?: typeof fetch;
|
|
13
12
|
headers?: HeadersInit | (() => HeadersInit | Promise<HeadersInit>);
|
|
@@ -16,7 +15,7 @@ type ConnectLiveStreamOptions = {
|
|
|
16
15
|
retryDelay?: number;
|
|
17
16
|
onError?: (error: Event | Error) => void;
|
|
18
17
|
};
|
|
19
|
-
type LiveClient = {
|
|
18
|
+
export type LiveClient = {
|
|
20
19
|
readonly connectionId: string;
|
|
21
20
|
subscribe<Data = unknown>(options: LiveSubscribeOptions<Data>): Promise<() => Promise<void>>;
|
|
22
21
|
close(): void;
|
|
@@ -29,6 +28,5 @@ type EventSourceLike = {
|
|
|
29
28
|
type EventSourceConstructor = new (url: string, options?: {
|
|
30
29
|
withCredentials?: boolean;
|
|
31
30
|
}) => EventSourceLike;
|
|
32
|
-
declare function connectLiveStream(url: string | URL, options?: ConnectLiveStreamOptions): LiveClient;
|
|
33
|
-
//#endregion
|
|
34
|
-
export { ConnectLiveStreamOptions, LiveClient, LiveSubscribeOptions, connectLiveStream };
|
|
31
|
+
export declare function connectLiveStream(url: string | URL, options?: ConnectLiveStreamOptions): LiveClient;
|
|
32
|
+
//#endregion
|
|
@@ -230,13 +230,15 @@ function connectLiveStream(url, options = {}) {
|
|
|
230
230
|
...subscription.lastEventId !== void 0 && { lastEventId: subscription.lastEventId }
|
|
231
231
|
});
|
|
232
232
|
} catch (error) {
|
|
233
|
-
if (subscriptionVersions.get(subscription.id) === version)
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
233
|
+
if (subscriptionVersions.get(subscription.id) === version) {
|
|
234
|
+
if (previousSubscription) {
|
|
235
|
+
subscriptions.set(subscription.id, previousSubscription);
|
|
236
|
+
if (previousVersion != null) subscriptionVersions.set(subscription.id, previousVersion);
|
|
237
|
+
else subscriptionVersions.delete(subscription.id);
|
|
238
|
+
} else {
|
|
239
|
+
subscriptions.delete(subscription.id);
|
|
240
|
+
subscriptionVersions.delete(subscription.id);
|
|
241
|
+
}
|
|
240
242
|
}
|
|
241
243
|
queueMicrotask(closeIfIdle);
|
|
242
244
|
throw error;
|
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
/// <reference types="@cloudflare/workers-types" />
|
|
2
2
|
//#region src/runtime/live-server.d.ts
|
|
3
3
|
type LiveDurableObjectEnv = Record<string, unknown>;
|
|
4
|
-
type LiveDurableObjectInstance = {
|
|
4
|
+
export type LiveDurableObjectInstance = {
|
|
5
5
|
fetch(request: Request): Promise<Response>;
|
|
6
6
|
alarm?(): Promise<void>;
|
|
7
7
|
};
|
|
8
|
-
type LiveDurableObjectClass = {
|
|
8
|
+
export type LiveDurableObjectClass = {
|
|
9
9
|
new (state: DurableObjectState, env: LiveDurableObjectEnv): LiveDurableObjectInstance;
|
|
10
10
|
};
|
|
11
|
-
declare function createLiveDurableObject(): LiveDurableObjectClass;
|
|
12
|
-
//#endregion
|
|
13
|
-
export { LiveDurableObjectClass, LiveDurableObjectInstance, createLiveDurableObject };
|
|
11
|
+
export declare function createLiveDurableObject(): LiveDurableObjectClass;
|
|
12
|
+
//#endregion
|
package/dist/runtime/live.d.mts
CHANGED
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
/// <reference types="@cloudflare/workers-types" />
|
|
2
|
-
import { r as AuthUser } from "../auth-
|
|
3
|
-
import { a as CloudEnv, r as CloudContext } from "../handler-
|
|
4
|
-
|
|
2
|
+
import { r as AuthUser } from "../auth-DkcFflXV.mjs";
|
|
3
|
+
import { a as CloudEnv, r as CloudContext } from "../handler-D1hLsObx.mjs";
|
|
5
4
|
//#region src/runtime/live.d.ts
|
|
6
5
|
type MaybePromise<T> = T | Promise<T>;
|
|
7
|
-
type LiveControlRequest = {
|
|
6
|
+
export type LiveControlRequest = {
|
|
8
7
|
connectionId: string;
|
|
9
8
|
operations: Array<LiveControlOperation>;
|
|
10
9
|
};
|
|
11
|
-
type LiveControlOperation = {
|
|
10
|
+
export type LiveControlOperation = {
|
|
12
11
|
kind: "subscribe";
|
|
13
12
|
id: string;
|
|
14
13
|
topic: string;
|
|
@@ -17,12 +16,12 @@ type LiveControlOperation = {
|
|
|
17
16
|
kind: "unsubscribe";
|
|
18
17
|
id: string;
|
|
19
18
|
};
|
|
20
|
-
type LiveControlErrorCode = "BAD_REQUEST" | "CONNECTION_CLOSED" | "CONNECTION_NOT_FOUND" | "FORBIDDEN" | "INVALID_SUBSCRIPTION_ID" | "INVALID_TOPIC" | "OWNER_MISMATCH" | "SUBSCRIPTION_LIMIT" | "TOPIC_FULL" | "PAYLOAD_TOO_LARGE" | "INTERNAL_ERROR";
|
|
21
|
-
type LiveControlError = {
|
|
19
|
+
export type LiveControlErrorCode = "BAD_REQUEST" | "CONNECTION_CLOSED" | "CONNECTION_NOT_FOUND" | "FORBIDDEN" | "INVALID_SUBSCRIPTION_ID" | "INVALID_TOPIC" | "OWNER_MISMATCH" | "SUBSCRIPTION_LIMIT" | "TOPIC_FULL" | "PAYLOAD_TOO_LARGE" | "INTERNAL_ERROR";
|
|
20
|
+
export type LiveControlError = {
|
|
22
21
|
code: LiveControlErrorCode;
|
|
23
22
|
message: string;
|
|
24
23
|
};
|
|
25
|
-
type LiveControlOperationResult = {
|
|
24
|
+
export type LiveControlOperationResult = {
|
|
26
25
|
ok: true;
|
|
27
26
|
kind: "subscribe" | "unsubscribe";
|
|
28
27
|
id: string;
|
|
@@ -33,7 +32,7 @@ type LiveControlOperationResult = {
|
|
|
33
32
|
id: string;
|
|
34
33
|
error: LiveControlError;
|
|
35
34
|
};
|
|
36
|
-
type LiveControlResponse = {
|
|
35
|
+
export type LiveControlResponse = {
|
|
37
36
|
accepted: true;
|
|
38
37
|
connectionId: string;
|
|
39
38
|
results: Array<LiveControlOperationResult>;
|
|
@@ -41,34 +40,34 @@ type LiveControlResponse = {
|
|
|
41
40
|
accepted: false;
|
|
42
41
|
error: LiveControlError;
|
|
43
42
|
};
|
|
44
|
-
type LiveClientEvent<Data = unknown> = {
|
|
43
|
+
export type LiveClientEvent<Data = unknown> = {
|
|
45
44
|
subscriptionId: string;
|
|
46
45
|
topic: string;
|
|
47
46
|
type?: string;
|
|
48
47
|
eventId?: string;
|
|
49
48
|
data: Data;
|
|
50
49
|
};
|
|
51
|
-
type LivePublishOptions = {
|
|
50
|
+
export type LivePublishOptions = {
|
|
52
51
|
type?: string;
|
|
53
52
|
eventId?: string;
|
|
54
53
|
};
|
|
55
|
-
type LiveConnectOptions = {
|
|
54
|
+
export type LiveConnectOptions = {
|
|
56
55
|
owner?: string | null;
|
|
57
56
|
user?: unknown;
|
|
58
57
|
};
|
|
59
|
-
type LiveControlOptions = LiveConnectOptions;
|
|
60
|
-
type LiveHookContext = {
|
|
58
|
+
export type LiveControlOptions = LiveConnectOptions;
|
|
59
|
+
export type LiveHookContext = {
|
|
61
60
|
request: Request;
|
|
62
61
|
env: CloudEnv["Bindings"];
|
|
63
62
|
user: AuthUser | unknown | null;
|
|
64
63
|
owner: string | null;
|
|
65
64
|
};
|
|
66
|
-
type LiveConnectHookContext = LiveHookContext & {
|
|
65
|
+
export type LiveConnectHookContext = LiveHookContext & {
|
|
67
66
|
connection: {
|
|
68
67
|
id: string;
|
|
69
68
|
};
|
|
70
69
|
};
|
|
71
|
-
type LiveSubscribeHookContext = LiveHookContext & {
|
|
70
|
+
export type LiveSubscribeHookContext = LiveHookContext & {
|
|
72
71
|
connection: {
|
|
73
72
|
id: string;
|
|
74
73
|
};
|
|
@@ -78,7 +77,7 @@ type LiveSubscribeHookContext = LiveHookContext & {
|
|
|
78
77
|
topic: string;
|
|
79
78
|
lastEventId?: string;
|
|
80
79
|
};
|
|
81
|
-
type LiveStreamOptions = {
|
|
80
|
+
export type LiveStreamOptions = {
|
|
82
81
|
id: string;
|
|
83
82
|
allowAnonymousControl?: boolean;
|
|
84
83
|
identifyConnection?: (ctx: LiveHookContext) => MaybePromise<string | null | undefined>;
|
|
@@ -86,7 +85,7 @@ type LiveStreamOptions = {
|
|
|
86
85
|
onSubscribe?: (ctx: LiveSubscribeHookContext) => MaybePromise<Response | void>;
|
|
87
86
|
limits?: Partial<LiveLimits>;
|
|
88
87
|
};
|
|
89
|
-
type LiveLimits = {
|
|
88
|
+
export type LiveLimits = {
|
|
90
89
|
maxSubscriptionsPerConnection: number;
|
|
91
90
|
maxSubscriptionsPerTopic: number;
|
|
92
91
|
maxOperationsPerControlRequest: number;
|
|
@@ -94,14 +93,13 @@ type LiveLimits = {
|
|
|
94
93
|
maxEncodedEventSize: number;
|
|
95
94
|
deliveryAttemptTimeoutMs: number;
|
|
96
95
|
};
|
|
97
|
-
type LiveStream = {
|
|
96
|
+
export type LiveStream = {
|
|
98
97
|
connect(ctx: CloudContext, options?: LiveConnectOptions): Promise<Response>;
|
|
99
98
|
control(ctx: CloudContext, options?: LiveControlOptions): Promise<Response>;
|
|
100
99
|
publish(topic: string, data: unknown, options?: LivePublishOptions): Promise<void>;
|
|
101
100
|
withEnv(env: unknown): Pick<LiveStream, "publish">;
|
|
102
101
|
};
|
|
103
|
-
declare function __setLiveBindingName(name: string): void;
|
|
104
|
-
declare function __getLiveBindingName(): string;
|
|
105
|
-
declare function defineLiveStream(options: LiveStreamOptions): LiveStream;
|
|
106
|
-
//#endregion
|
|
107
|
-
export { LiveClientEvent, LiveConnectHookContext, LiveConnectOptions, LiveControlError, LiveControlErrorCode, LiveControlOperation, LiveControlOperationResult, LiveControlOptions, LiveControlRequest, LiveControlResponse, LiveHookContext, LiveLimits, LivePublishOptions, LiveStream, LiveStreamOptions, LiveSubscribeHookContext, __getLiveBindingName, __setLiveBindingName, defineLiveStream };
|
|
102
|
+
export declare function __setLiveBindingName(name: string): void;
|
|
103
|
+
export declare function __getLiveBindingName(): string;
|
|
104
|
+
export declare function defineLiveStream(options: LiveStreamOptions): LiveStream;
|
|
105
|
+
//#endregion
|
package/dist/runtime/live.mjs
CHANGED
|
@@ -8,7 +8,7 @@ const DEFAULT_LIMITS = {
|
|
|
8
8
|
maxSubscriptionsPerTopic: 256,
|
|
9
9
|
maxOperationsPerControlRequest: 100,
|
|
10
10
|
maxQueuedEventsPerConnection: 100,
|
|
11
|
-
maxEncodedEventSize:
|
|
11
|
+
maxEncodedEventSize: 65536,
|
|
12
12
|
deliveryAttemptTimeoutMs: 1500
|
|
13
13
|
};
|
|
14
14
|
const MAX_SUBSCRIPTIONS_PER_TOPIC = 256;
|
package/dist/runtime/log.d.mts
CHANGED
|
@@ -1,24 +1,23 @@
|
|
|
1
1
|
//#region src/runtime/log.d.ts
|
|
2
2
|
/**
|
|
3
|
-
* Structured logger that emits each entry as a single stringified-JSON line
|
|
4
|
-
* to `console.error/warn/info`. The shape `{ msg, ...fields }` is a stable
|
|
5
|
-
* contract: Cloudflare Tail captures each call as one `logs[]` entry with
|
|
6
|
-
* the right `level`, and platform-side log filtering can match on `msg` or
|
|
7
|
-
* any custom field.
|
|
8
|
-
*
|
|
9
|
-
* @example
|
|
10
|
-
* ```ts
|
|
11
|
-
* import { logger } from "void/log";
|
|
12
|
-
*
|
|
13
|
-
* logger.error("websocket failed", { jobId, attempt: 3 });
|
|
14
|
-
* logger.info("user signed in", { userId });
|
|
15
|
-
* ```
|
|
16
|
-
*/
|
|
3
|
+
* Structured logger that emits each entry as a single stringified-JSON line
|
|
4
|
+
* to `console.error/warn/info`. The shape `{ msg, ...fields }` is a stable
|
|
5
|
+
* contract: Cloudflare Tail captures each call as one `logs[]` entry with
|
|
6
|
+
* the right `level`, and platform-side log filtering can match on `msg` or
|
|
7
|
+
* any custom field.
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```ts
|
|
11
|
+
* import { logger } from "void/log";
|
|
12
|
+
*
|
|
13
|
+
* logger.error("websocket failed", { jobId, attempt: 3 });
|
|
14
|
+
* logger.info("user signed in", { userId });
|
|
15
|
+
* ```
|
|
16
|
+
*/
|
|
17
17
|
type Fields = Record<string, unknown>;
|
|
18
|
-
declare const logger: {
|
|
18
|
+
export declare const logger: {
|
|
19
19
|
error(message: string, fields?: Fields): void;
|
|
20
20
|
warn(message: string, fields?: Fields): void;
|
|
21
21
|
info(message: string, fields?: Fields): void;
|
|
22
22
|
};
|
|
23
|
-
//#endregion
|
|
24
|
-
export { logger };
|
|
23
|
+
//#endregion
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { MigrationEntry } from "./migration-handler.mjs";
|
|
2
|
+
//#region src/runtime/migration-handler-mysql.d.ts
|
|
3
|
+
export declare function createMigrationHandler(env: Record<string, unknown>, migrations: Array<MigrationEntry>, _dialect: "sqlite" | "postgresql" | "mysql", runAuthMigrations?: () => Promise<void>): (request: Request) => Promise<Response>;
|
|
4
|
+
//#endregion
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
//#region src/runtime/migration-handler-mysql.ts
|
|
2
|
+
function createMigrationHandler(env, migrations, _dialect, runAuthMigrations) {
|
|
3
|
+
return async (request) => {
|
|
4
|
+
const token = request.headers.get("x-void-internal");
|
|
5
|
+
if (!token || token !== env.__VOID_PROXY_TOKEN) return Response.json({
|
|
6
|
+
ok: false,
|
|
7
|
+
error: "unauthorized",
|
|
8
|
+
migrations: []
|
|
9
|
+
}, { status: 401 });
|
|
10
|
+
try {
|
|
11
|
+
const result = await runMySqlMigrations(env, migrations);
|
|
12
|
+
if (result.ok && runAuthMigrations) await runAuthMigrations();
|
|
13
|
+
return Response.json(result);
|
|
14
|
+
} catch (error) {
|
|
15
|
+
return Response.json({
|
|
16
|
+
ok: false,
|
|
17
|
+
error: error instanceof Error ? error.message : String(error),
|
|
18
|
+
migrations: []
|
|
19
|
+
}, { status: 500 });
|
|
20
|
+
}
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
async function runMySqlMigrations(env, migrations) {
|
|
24
|
+
const hyperdrive = env.HYPERDRIVE;
|
|
25
|
+
if (!hyperdrive?.connectionString) return {
|
|
26
|
+
ok: false,
|
|
27
|
+
error: "no HYPERDRIVE binding found",
|
|
28
|
+
migrations: []
|
|
29
|
+
};
|
|
30
|
+
const { createConnection } = await import("mysql2/promise");
|
|
31
|
+
const connection = await createConnection({
|
|
32
|
+
uri: hyperdrive.connectionString,
|
|
33
|
+
multipleStatements: true
|
|
34
|
+
});
|
|
35
|
+
try {
|
|
36
|
+
await connection.query("CREATE TABLE IF NOT EXISTS `_void_migrations` (`name` VARCHAR(255) PRIMARY KEY, `applied_at` VARCHAR(64) NOT NULL)");
|
|
37
|
+
const [rows] = await connection.query("SELECT `name` FROM `_void_migrations`");
|
|
38
|
+
const applied = new Set(rows.map((row) => String(row.name)));
|
|
39
|
+
const results = [];
|
|
40
|
+
for (const migration of migrations) {
|
|
41
|
+
if (applied.has(migration.name)) {
|
|
42
|
+
results.push({
|
|
43
|
+
name: migration.name,
|
|
44
|
+
applied: false,
|
|
45
|
+
durationMs: 0
|
|
46
|
+
});
|
|
47
|
+
continue;
|
|
48
|
+
}
|
|
49
|
+
const start = Date.now();
|
|
50
|
+
try {
|
|
51
|
+
await connection.query(migration.sql);
|
|
52
|
+
await connection.query("INSERT INTO `_void_migrations` (`name`, `applied_at`) VALUES (?, ?)", [migration.name, (/* @__PURE__ */ new Date()).toISOString()]);
|
|
53
|
+
results.push({
|
|
54
|
+
name: migration.name,
|
|
55
|
+
applied: true,
|
|
56
|
+
durationMs: Date.now() - start
|
|
57
|
+
});
|
|
58
|
+
} catch (error) {
|
|
59
|
+
results.push({
|
|
60
|
+
name: migration.name,
|
|
61
|
+
applied: false,
|
|
62
|
+
durationMs: Date.now() - start,
|
|
63
|
+
error: error instanceof Error ? error.message : String(error)
|
|
64
|
+
});
|
|
65
|
+
return {
|
|
66
|
+
ok: false,
|
|
67
|
+
migrations: results,
|
|
68
|
+
error: `migration ${migration.name} failed`
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
return {
|
|
73
|
+
ok: true,
|
|
74
|
+
migrations: results
|
|
75
|
+
};
|
|
76
|
+
} finally {
|
|
77
|
+
await connection.end();
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
//#endregion
|
|
81
|
+
export { createMigrationHandler };
|
|
@@ -1,6 +1,4 @@
|
|
|
1
1
|
import { MigrationEntry } from "./migration-handler.mjs";
|
|
2
|
-
|
|
3
2
|
//#region src/runtime/migration-handler-pg.d.ts
|
|
4
|
-
declare function createMigrationHandler(env: Record<string, unknown>, migrations: Array<MigrationEntry>, _dialect: "sqlite" | "postgresql", runAuthMigrations?: () => Promise<void>): (request: Request) => Promise<Response>;
|
|
5
|
-
//#endregion
|
|
6
|
-
export { createMigrationHandler };
|
|
3
|
+
export declare function createMigrationHandler(env: Record<string, unknown>, migrations: Array<MigrationEntry>, _dialect: "sqlite" | "postgresql" | "mysql", runAuthMigrations?: () => Promise<void>): (request: Request) => Promise<Response>;
|
|
4
|
+
//#endregion
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
//#region src/runtime/migration-handler.d.ts
|
|
2
|
-
type MigrationEntry = {
|
|
2
|
+
export type MigrationEntry = {
|
|
3
3
|
name: string;
|
|
4
4
|
sql: string;
|
|
5
5
|
};
|
|
6
|
-
type MigrationResult = {
|
|
6
|
+
export type MigrationResult = {
|
|
7
7
|
name: string;
|
|
8
8
|
applied: boolean;
|
|
9
9
|
durationMs: number;
|
|
@@ -11,7 +11,7 @@ type MigrationResult = {
|
|
|
11
11
|
status?: "applied" | "skipped" | "failed";
|
|
12
12
|
stability?: "stable" | "legacy";
|
|
13
13
|
};
|
|
14
|
-
type MigrationResponse = {
|
|
14
|
+
export type MigrationResponse = {
|
|
15
15
|
ok: boolean;
|
|
16
16
|
migrations: Array<MigrationResult>;
|
|
17
17
|
error?: string;
|
|
@@ -46,6 +46,5 @@ type MigrationPlanBundle = {
|
|
|
46
46
|
destructiveValidation: "passed";
|
|
47
47
|
plans: Array<MigrationExecutionPlan>;
|
|
48
48
|
};
|
|
49
|
-
declare function createMigrationHandler(env: Record<string, unknown>, migrations: Array<MigrationEntry> | undefined, _dialect: "sqlite" | "postgresql", runAuthMigrations?: () => Promise<void>, planBundle?: MigrationPlanBundle): (request: Request) => Promise<Response>;
|
|
50
|
-
//#endregion
|
|
51
|
-
export { MigrationEntry, MigrationResponse, MigrationResult, createMigrationHandler };
|
|
49
|
+
export declare function createMigrationHandler(env: Record<string, unknown>, migrations: Array<MigrationEntry> | undefined, _dialect: "sqlite" | "postgresql" | "mysql", runAuthMigrations?: () => Promise<void>, planBundle?: MigrationPlanBundle): (request: Request) => Promise<Response>;
|
|
50
|
+
//#endregion
|
|
@@ -372,9 +372,10 @@ async function runD1LegacyMigrations(db, migrations) {
|
|
|
372
372
|
const start = Date.now();
|
|
373
373
|
try {
|
|
374
374
|
const statements = splitMigrationSql(migration.sql);
|
|
375
|
-
if (statements.length === 1)
|
|
376
|
-
|
|
377
|
-
|
|
375
|
+
if (statements.length === 1) {
|
|
376
|
+
if (isSingleSqlStatement(statements[0])) await db.prepare(statements[0]).run();
|
|
377
|
+
else await db.exec(migration.sql);
|
|
378
|
+
} else for (const statement of statements) await db.prepare(statement).run();
|
|
378
379
|
await db.prepare("INSERT OR IGNORE INTO _void_migrations (name, applied_at) VALUES (?, ?)").bind(migration.name, (/* @__PURE__ */ new Date()).toISOString()).run();
|
|
379
380
|
migrationResults.push({
|
|
380
381
|
name: migration.name,
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
//#region src/runtime/queues.d.ts
|
|
2
2
|
/** Stub interface augmented by generated .void/queues.d.ts */
|
|
3
|
-
interface QueueMap {}
|
|
3
|
+
export interface QueueMap {}
|
|
4
4
|
/** Typed queue producers — resolves `QUEUE_*` bindings from the active runtime environment. */
|
|
5
|
-
declare const queues: QueueMap;
|
|
6
|
-
//#endregion
|
|
7
|
-
export { QueueMap, queues };
|
|
5
|
+
export declare const queues: QueueMap;
|
|
6
|
+
//#endregion
|
package/dist/runtime/queues.mjs
CHANGED
|
@@ -2,7 +2,8 @@ import { requireRuntimeBinding } from "./env.mjs";
|
|
|
2
2
|
//#region src/runtime/queues.ts
|
|
3
3
|
/** Typed queue producers — resolves `QUEUE_*` bindings from the active runtime environment. */
|
|
4
4
|
const queues = new Proxy({}, { get(_, name) {
|
|
5
|
-
|
|
5
|
+
const bindingName = `QUEUE_${name.toUpperCase().replace(/[^A-Z0-9]/g, "_")}`;
|
|
6
|
+
return requireRuntimeBinding(bindingName);
|
|
6
7
|
} });
|
|
7
8
|
//#endregion
|
|
8
9
|
export { queues };
|
|
@@ -1,15 +1,13 @@
|
|
|
1
1
|
import { Hono } from "hono";
|
|
2
|
-
|
|
3
2
|
//#region src/runtime/remote/binding-handler.d.ts
|
|
4
3
|
/**
|
|
5
|
-
* Creates a Hono app that handles `/__void/*` routes for native binding access.
|
|
6
|
-
* Deployed user workers expose this so the proxy can dispatch D1/KV/R2 operations
|
|
7
|
-
* via Workers for Platforms instead of the Cloudflare REST API (~1-5ms vs ~50-200ms).
|
|
8
|
-
*
|
|
9
|
-
* Authenticated via `x-void-internal` header against `env.__VOID_PROXY_TOKEN`.
|
|
10
|
-
* Response formats match the proxy's existing REST API responses so the
|
|
11
|
-
* ProxyClient doesn't need changes.
|
|
12
|
-
*/
|
|
13
|
-
declare function createBindingHandler(env: Record<string, unknown>): Hono;
|
|
14
|
-
//#endregion
|
|
15
|
-
export { createBindingHandler };
|
|
4
|
+
* Creates a Hono app that handles `/__void/*` routes for native binding access.
|
|
5
|
+
* Deployed user workers expose this so the proxy can dispatch D1/KV/R2 operations
|
|
6
|
+
* via Workers for Platforms instead of the Cloudflare REST API (~1-5ms vs ~50-200ms).
|
|
7
|
+
*
|
|
8
|
+
* Authenticated via `x-void-internal` header against `env.__VOID_PROXY_TOKEN`.
|
|
9
|
+
* Response formats match the proxy's existing REST API responses so the
|
|
10
|
+
* ProxyClient doesn't need changes.
|
|
11
|
+
*/
|
|
12
|
+
export declare function createBindingHandler(env: Record<string, unknown>): Hono;
|
|
13
|
+
//#endregion
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { t as parseR2Conditional } from "../../r2-conditions-D1Wk8i7b.mjs";
|
|
1
2
|
import { Hono } from "hono";
|
|
2
3
|
//#region src/runtime/remote/binding-handler.ts
|
|
3
4
|
/**
|
|
@@ -147,14 +148,34 @@ function createBindingHandler(env) {
|
|
|
147
148
|
if (obj.httpEtag) headers.set("etag", obj.httpEtag);
|
|
148
149
|
return new Response(obj.body, { headers });
|
|
149
150
|
});
|
|
150
|
-
app.
|
|
151
|
+
app.on("POST", ["/r2/put", "/r2/put-conditional"], async (c) => {
|
|
151
152
|
const body = await c.req.json();
|
|
152
153
|
if (!body.binding || !body.key) return c.json({ error: "binding and key required" }, 400);
|
|
153
154
|
const bucket = env[body.binding];
|
|
154
155
|
if (!bucket) return c.json({ error: `unknown binding "${body.binding}"` }, 404);
|
|
155
156
|
const data = body.base64 ? Uint8Array.from(atob(body.base64), (ch) => ch.charCodeAt(0)) : new TextEncoder().encode(body.value ?? "");
|
|
156
|
-
|
|
157
|
-
|
|
157
|
+
let onlyIf;
|
|
158
|
+
try {
|
|
159
|
+
if (body.onlyIf !== void 0 || c.req.path.endsWith("/put-conditional")) onlyIf = parseR2Conditional(body.onlyIf);
|
|
160
|
+
} catch (error) {
|
|
161
|
+
return c.json({ error: String(error) }, 400);
|
|
162
|
+
}
|
|
163
|
+
const obj = await bucket.put(body.key, data, {
|
|
164
|
+
httpMetadata: { contentType: body.contentType ?? "application/octet-stream" },
|
|
165
|
+
customMetadata: body.customMetadata,
|
|
166
|
+
onlyIf
|
|
167
|
+
});
|
|
168
|
+
if (!obj) return c.json(null);
|
|
169
|
+
return c.json({
|
|
170
|
+
key: obj.key,
|
|
171
|
+
size: obj.size,
|
|
172
|
+
etag: obj.etag,
|
|
173
|
+
version: obj.version,
|
|
174
|
+
lastModified: obj.uploaded.toISOString(),
|
|
175
|
+
contentType: obj.httpMetadata?.contentType ?? "application/octet-stream",
|
|
176
|
+
httpMetadata: obj.httpMetadata,
|
|
177
|
+
customMetadata: obj.customMetadata
|
|
178
|
+
});
|
|
158
179
|
});
|
|
159
180
|
app.post("/r2/delete", async (c) => {
|
|
160
181
|
const body = await c.req.json();
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
//#region src/runtime/remote/index.d.ts
|
|
2
2
|
/**
|
|
3
|
-
* Replace local D1/KV/R2 bindings with proxy-backed versions.
|
|
4
|
-
* Called from the generated worker entry point when `__VOID_REMOTE` is set.
|
|
5
|
-
*/
|
|
6
|
-
declare function createRemoteEnv(env: Record<string, unknown>, bindingNames?: {
|
|
3
|
+
* Replace local D1/KV/R2 bindings with proxy-backed versions.
|
|
4
|
+
* Called from the generated worker entry point when `__VOID_REMOTE` is set.
|
|
5
|
+
*/
|
|
6
|
+
export declare function createRemoteEnv(env: Record<string, unknown>, bindingNames?: {
|
|
7
7
|
d1?: string;
|
|
8
8
|
kv?: string;
|
|
9
9
|
r2?: string;
|
|
10
10
|
}): Record<string, unknown>;
|
|
11
|
-
//#endregion
|
|
12
|
-
export { createRemoteEnv };
|
|
11
|
+
//#endregion
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { t as cfAccessHeaders } from "../../cf-access-
|
|
1
|
+
import { t as cfAccessHeaders } from "../../cf-access-AJ1ehiFR.mjs";
|
|
2
|
+
import { n as serializeR2Conditional } from "../../r2-conditions-D1Wk8i7b.mjs";
|
|
2
3
|
//#region src/runtime/remote/client.ts
|
|
3
4
|
/**
|
|
4
5
|
* HTTP client for the remote bindings proxy (proxy.void.cloud).
|
|
@@ -15,7 +16,7 @@ var ProxyClient = class {
|
|
|
15
16
|
this.projectId = projectId;
|
|
16
17
|
this.authHeaders = {
|
|
17
18
|
Authorization: `Bearer ${token}`,
|
|
18
|
-
...cfAccessHeaders(env)
|
|
19
|
+
...cfAccessHeaders(env, proxyUrl)
|
|
19
20
|
};
|
|
20
21
|
}
|
|
21
22
|
/**
|
|
@@ -115,22 +116,21 @@ var ProxyD1Database = class {
|
|
|
115
116
|
* D1PreparedStatement implementation backed by the remote proxy.
|
|
116
117
|
* Accumulates SQL and params synchronously; terminal methods (all, first, run, raw) make the HTTP call.
|
|
117
118
|
*/
|
|
118
|
-
var ProxyD1PreparedStatement = class {
|
|
119
|
+
var ProxyD1PreparedStatement = class ProxyD1PreparedStatement {
|
|
119
120
|
client;
|
|
120
121
|
binding;
|
|
121
122
|
/** @internal */
|
|
122
123
|
_sql;
|
|
123
124
|
/** @internal */
|
|
124
125
|
_params;
|
|
125
|
-
constructor(client, binding, sql) {
|
|
126
|
+
constructor(client, binding, sql, params = []) {
|
|
126
127
|
this.client = client;
|
|
127
128
|
this.binding = binding;
|
|
128
129
|
this._sql = sql;
|
|
129
|
-
this._params =
|
|
130
|
+
this._params = params;
|
|
130
131
|
}
|
|
131
132
|
bind(...values) {
|
|
132
|
-
this.
|
|
133
|
-
return this;
|
|
133
|
+
return new ProxyD1PreparedStatement(this.client, this.binding, this._sql, values);
|
|
134
134
|
}
|
|
135
135
|
async all() {
|
|
136
136
|
return await (await this.client.fetch("/d1/query", {
|
|
@@ -226,9 +226,7 @@ var ProxyKVNamespace = class {
|
|
|
226
226
|
case "stream":
|
|
227
227
|
value = await this.get(key, "stream");
|
|
228
228
|
break;
|
|
229
|
-
default:
|
|
230
|
-
value = await this.get(key);
|
|
231
|
-
break;
|
|
229
|
+
default: value = await this.get(key);
|
|
232
230
|
}
|
|
233
231
|
return {
|
|
234
232
|
value,
|
|
@@ -333,7 +331,7 @@ var ProxyR2Bucket = class {
|
|
|
333
331
|
if (typeof value === "string") textValue = value;
|
|
334
332
|
else if (value === null) textValue = "";
|
|
335
333
|
else if (value instanceof ArrayBuffer) base64 = arrayBufferToBase64(value);
|
|
336
|
-
else if (ArrayBuffer.isView(value)) base64 = arrayBufferToBase64(value.buffer);
|
|
334
|
+
else if (ArrayBuffer.isView(value)) base64 = arrayBufferToBase64(value.buffer, value.byteOffset, value.byteLength);
|
|
337
335
|
else if (value instanceof Blob) base64 = arrayBufferToBase64(await value.arrayBuffer());
|
|
338
336
|
else {
|
|
339
337
|
const reader = value.getReader();
|
|
@@ -356,7 +354,7 @@ var ProxyR2Bucket = class {
|
|
|
356
354
|
binding: this.binding,
|
|
357
355
|
key
|
|
358
356
|
};
|
|
359
|
-
if (base64) body.base64 = base64;
|
|
357
|
+
if (base64 !== void 0) body.base64 = base64;
|
|
360
358
|
else body.value = textValue;
|
|
361
359
|
if (options?.httpMetadata) {
|
|
362
360
|
const meta = options.httpMetadata;
|
|
@@ -364,7 +362,12 @@ var ProxyR2Bucket = class {
|
|
|
364
362
|
else body.contentType = meta.contentType;
|
|
365
363
|
}
|
|
366
364
|
if (options?.customMetadata) body.customMetadata = options.customMetadata;
|
|
367
|
-
|
|
365
|
+
const conditional = options?.onlyIf !== void 0;
|
|
366
|
+
if (conditional) body.onlyIf = serializeR2Conditional(options.onlyIf);
|
|
367
|
+
const result = await (await this.client.fetch(conditional ? "/r2/put-conditional" : "/r2/put", body)).json();
|
|
368
|
+
if (result === null) return null;
|
|
369
|
+
if ("key" in result) return makeR2Object(result);
|
|
370
|
+
if (conditional) throw new Error("remote: R2 conditional put requires a compatible Void platform and deployment.");
|
|
368
371
|
return makeR2Object({
|
|
369
372
|
key,
|
|
370
373
|
size: 0,
|
|
@@ -407,8 +410,8 @@ var ProxyR2Bucket = class {
|
|
|
407
410
|
throw new Error("resumeMultipartUpload() is not supported with remote bindings");
|
|
408
411
|
}
|
|
409
412
|
};
|
|
410
|
-
function arrayBufferToBase64(buffer) {
|
|
411
|
-
const bytes = new Uint8Array(buffer);
|
|
413
|
+
function arrayBufferToBase64(buffer, byteOffset = 0, byteLength = buffer.byteLength) {
|
|
414
|
+
const bytes = new Uint8Array(buffer, byteOffset, byteLength);
|
|
412
415
|
let binary = "";
|
|
413
416
|
for (const byte of bytes) binary += String.fromCharCode(byte);
|
|
414
417
|
return btoa(binary);
|
|
@@ -416,14 +419,14 @@ function arrayBufferToBase64(buffer) {
|
|
|
416
419
|
function makeR2Object(data) {
|
|
417
420
|
return {
|
|
418
421
|
key: data.key,
|
|
419
|
-
version: "",
|
|
422
|
+
version: data.version ?? "",
|
|
420
423
|
size: data.size,
|
|
421
424
|
etag: data.etag,
|
|
422
425
|
httpEtag: data.etag ? `"${data.etag}"` : "",
|
|
423
426
|
checksums: { toJSON: () => ({}) },
|
|
424
427
|
uploaded: new Date(data.lastModified || Date.now()),
|
|
425
|
-
httpMetadata: { contentType: data.contentType },
|
|
426
|
-
customMetadata: {},
|
|
428
|
+
httpMetadata: data.httpMetadata ?? { contentType: data.contentType },
|
|
429
|
+
customMetadata: data.customMetadata ?? {},
|
|
427
430
|
storageClass: "Standard",
|
|
428
431
|
range: void 0,
|
|
429
432
|
writeHttpMetadata(_headers) {}
|
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
//#region src/runtime/response.d.ts
|
|
2
2
|
/** Returns true if the value is a Response that was created by convertReturnValue. */
|
|
3
|
-
declare function isConvertedResponse(value: unknown): boolean;
|
|
3
|
+
export declare function isConvertedResponse(value: unknown): boolean;
|
|
4
4
|
/**
|
|
5
|
-
* Convert a handler's return value to a Web Response.
|
|
6
|
-
*
|
|
7
|
-
* - Response → passthrough
|
|
8
|
-
* - null/undefined → 204 No Content
|
|
9
|
-
* - string → text/html
|
|
10
|
-
* - object/array → JSON
|
|
11
|
-
*/
|
|
12
|
-
declare function convertReturnValue(value: unknown): Response;
|
|
13
|
-
//#endregion
|
|
14
|
-
export { convertReturnValue, isConvertedResponse };
|
|
5
|
+
* Convert a handler's return value to a Web Response.
|
|
6
|
+
*
|
|
7
|
+
* - Response → passthrough
|
|
8
|
+
* - null/undefined → 204 No Content
|
|
9
|
+
* - string → text/html
|
|
10
|
+
* - object/array → JSON
|
|
11
|
+
*/
|
|
12
|
+
export declare function convertReturnValue(value: unknown): Response;
|
|
13
|
+
//#endregion
|