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
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
import { D as log, F as isCancel, G as normalizePlatformApiUrl, N as text, V as getActivePlatformConnection, W as listPlatformConnections, c as import_picocolors, et as savePlatformConnection, j as select, tt as selectPlatformConnection } from "./output-tFQLLj26.mjs";
|
|
2
|
+
import { t as cfAccessHeaders } from "./cf-access-AJ1ehiFR.mjs";
|
|
3
|
+
import { t as ensureCloudflaredToken } from "./cf-access-DsSsZUPr.mjs";
|
|
4
|
+
import { parsePlatformDiscoveryDocument } from "@void/platform";
|
|
5
|
+
//#region src/cli/platform-cmd.ts
|
|
6
|
+
async function discoverPlatform(input, fetcher = fetch) {
|
|
7
|
+
const apiUrl = normalizePlatformApiUrl(input);
|
|
8
|
+
ensureCloudflaredToken(apiUrl);
|
|
9
|
+
const response = await fetcher(`${apiUrl}/.well-known/void-platform`, {
|
|
10
|
+
headers: {
|
|
11
|
+
Accept: "application/json",
|
|
12
|
+
...cfAccessHeaders(process.env, apiUrl)
|
|
13
|
+
},
|
|
14
|
+
redirect: "manual",
|
|
15
|
+
signal: AbortSignal.timeout(15e3)
|
|
16
|
+
});
|
|
17
|
+
if (!response.ok) throw new Error(`platform: Discovery failed at ${apiUrl} (HTTP ${response.status}).`);
|
|
18
|
+
let value;
|
|
19
|
+
try {
|
|
20
|
+
value = await response.json();
|
|
21
|
+
} catch {
|
|
22
|
+
throw new Error(`platform: ${apiUrl} returned invalid discovery metadata.`);
|
|
23
|
+
}
|
|
24
|
+
let discovery;
|
|
25
|
+
try {
|
|
26
|
+
discovery = parsePlatformDiscoveryDocument(value);
|
|
27
|
+
} catch (error) {
|
|
28
|
+
throw new Error(`platform: ${apiUrl} returned invalid discovery metadata: ${error instanceof Error ? error.message : String(error)}`);
|
|
29
|
+
}
|
|
30
|
+
const finalOrigin = normalizePlatformApiUrl(response.url ? new URL(response.url).origin : apiUrl);
|
|
31
|
+
if (discovery.apiUrl !== finalOrigin) throw new Error(`platform: Discovery origin mismatch. The response came from ${finalOrigin}, but identifies ${discovery.apiUrl}.`);
|
|
32
|
+
return discovery;
|
|
33
|
+
}
|
|
34
|
+
async function promptPlatformUrl() {
|
|
35
|
+
if (!process.stdin.isTTY) throw new Error("platform: A platform URL is required in non-interactive mode.");
|
|
36
|
+
const value = await text({
|
|
37
|
+
message: "Void platform API URL:",
|
|
38
|
+
placeholder: "https://platform.example.com",
|
|
39
|
+
validate: (input) => {
|
|
40
|
+
if (!input) return "Enter a platform URL.";
|
|
41
|
+
try {
|
|
42
|
+
normalizePlatformApiUrl(input);
|
|
43
|
+
} catch (error) {
|
|
44
|
+
return error instanceof Error ? error.message : String(error);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
if (isCancel(value) || typeof value === "symbol") throw new Error("platform: Cancelled.");
|
|
49
|
+
return value;
|
|
50
|
+
}
|
|
51
|
+
async function resolveConnection(selector) {
|
|
52
|
+
if (selector) return selectPlatformConnection(selector);
|
|
53
|
+
const connections = listPlatformConnections();
|
|
54
|
+
if (connections.length === 0) throw new Error("platform: No platforms configured. Run `void connect <url>`.");
|
|
55
|
+
if (connections.length === 1) return selectPlatformConnection(connections[0].id);
|
|
56
|
+
if (!process.stdin.isTTY) throw new Error("platform: Multiple platforms are configured; specify an id or URL.");
|
|
57
|
+
const picked = await select({
|
|
58
|
+
message: "Select a Void platform:",
|
|
59
|
+
options: connections.map((connection) => ({
|
|
60
|
+
label: connection.displayName,
|
|
61
|
+
hint: connection.apiUrl,
|
|
62
|
+
value: connection.id
|
|
63
|
+
}))
|
|
64
|
+
});
|
|
65
|
+
if (isCancel(picked)) throw new Error("platform: Cancelled.");
|
|
66
|
+
return selectPlatformConnection(String(picked));
|
|
67
|
+
}
|
|
68
|
+
function showConnection(connection, activeId) {
|
|
69
|
+
const marker = connection.id === activeId ? import_picocolors.default.green("●") : import_picocolors.default.dim("○");
|
|
70
|
+
console.log(`${marker} ${import_picocolors.default.bold(connection.displayName)} ${import_picocolors.default.dim(connection.id)}`);
|
|
71
|
+
console.log(` ${connection.apiUrl}`);
|
|
72
|
+
if (connection.applicationDomain) console.log(connection.applicationDomain.endsWith(".workers.dev") ? " apps: workers.dev (testing)" : ` apps: *.${connection.applicationDomain}`);
|
|
73
|
+
}
|
|
74
|
+
function saveDiscoveredPlatform(discovery) {
|
|
75
|
+
return savePlatformConnection({
|
|
76
|
+
accountId: null,
|
|
77
|
+
apiUrl: discovery.apiUrl,
|
|
78
|
+
applicationDomain: discovery.applicationDomain,
|
|
79
|
+
displayName: discovery.displayName,
|
|
80
|
+
installationId: discovery.installationId,
|
|
81
|
+
kind: discovery.installationId ? "installed" : "connected",
|
|
82
|
+
proxyUrl: discovery.proxyUrl
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
async function runPlatformCommand(_root, args) {
|
|
86
|
+
if (args.subcommand === "operator") {
|
|
87
|
+
const { runOperatorCommand } = await import("./operator-cmd-DYWRbWUA.mjs");
|
|
88
|
+
await runOperatorCommand(args);
|
|
89
|
+
return;
|
|
90
|
+
}
|
|
91
|
+
if (args.subcommand === "list") {
|
|
92
|
+
const connections = listPlatformConnections();
|
|
93
|
+
if (connections.length === 0) {
|
|
94
|
+
log.info("No platforms configured. Run `void connect <url>`.");
|
|
95
|
+
return;
|
|
96
|
+
}
|
|
97
|
+
const activeId = getActivePlatformConnection()?.id ?? null;
|
|
98
|
+
for (const connection of connections) showConnection(connection, activeId);
|
|
99
|
+
return;
|
|
100
|
+
}
|
|
101
|
+
if (args.subcommand === "use") {
|
|
102
|
+
const connection = await resolveConnection(args.selector);
|
|
103
|
+
log.success(`Using ${import_picocolors.default.bold(connection.displayName)} (${connection.apiUrl}).`);
|
|
104
|
+
return;
|
|
105
|
+
}
|
|
106
|
+
if (args.subcommand === "status") {
|
|
107
|
+
const discovery = await discoverPlatform((await resolveConnection(args.selector)).apiUrl);
|
|
108
|
+
log.success(`${discovery.displayName} is reachable.`);
|
|
109
|
+
console.log(`API: ${discovery.apiUrl}`);
|
|
110
|
+
console.log(`Proxy: ${discovery.proxyUrl}`);
|
|
111
|
+
if (discovery.applicationRouting?.workersDev && !discovery.applicationRouting.zoneName) {
|
|
112
|
+
console.log("Application domain: workers.dev (testing)");
|
|
113
|
+
console.log("Add a domain: void platform domain set <domain>");
|
|
114
|
+
} else console.log(`Applications: *.${discovery.applicationDomain}`);
|
|
115
|
+
console.log(`Version: ${discovery.platformVersion}`);
|
|
116
|
+
console.log(`Capabilities: ${Object.entries(discovery.capabilities).filter(([, enabled]) => enabled).map(([name]) => name).join(", ")}`);
|
|
117
|
+
return;
|
|
118
|
+
}
|
|
119
|
+
const { runPlatformLifecycleCommand } = await import("./platform-lifecycle-CjSr6xf0.mjs");
|
|
120
|
+
await runPlatformLifecycleCommand(args);
|
|
121
|
+
}
|
|
122
|
+
//#endregion
|
|
123
|
+
export { discoverPlatform, promptPlatformUrl, runPlatformCommand, saveDiscoveredPlatform };
|
|
@@ -0,0 +1,228 @@
|
|
|
1
|
+
import { D as log, F as isCancel, N as text, O as note, Y as readInstallationRecoverySecrets, et as savePlatformConnection, nt as writeInstallationManifest, w as confirm, z as acquirePlatformLifecycleLock } from "./output-tFQLLj26.mjs";
|
|
2
|
+
import { t as cfAccessHeaders } from "./cf-access-AJ1ehiFR.mjs";
|
|
3
|
+
import { S as resolvePlatformCloudflareCredential, assertNoninteractivePlatformMutationAcknowledged, d as createPlatformInstallPlan, g as PlatformCloudflareClient, l as recordPlatformWorkerTraffic, n as acquirePlatformDatabaseLifecycleLock, r as createPlatformHealthProbeToken, resolvePlatformInstallDatabaseUrl, s as recordResource, x as assertPlatformOperatorCredentialCanApplyPlan } from "./platform-lifecycle-CjSr6xf0.mjs";
|
|
4
|
+
import { resolveInstalledPlatformManifest, selectAuthoritativePlatformManifest, verifyPlatformInstallationOwnership } from "./platform-management-W30iCaTL.mjs";
|
|
5
|
+
import { randomUUID } from "node:crypto";
|
|
6
|
+
import { PLATFORM_APPLICATION_KEY, PLATFORM_REMOTE_INSTALLATION_MANIFEST_KEY, createApplicationRoutes, createPlatformDeploymentManifest, normalizeApplicationDomain } from "@void/platform";
|
|
7
|
+
//#region src/cli/platform-domain.ts
|
|
8
|
+
function platformDomainTarget(manifest, domain, zone, dedicatedZone) {
|
|
9
|
+
const current = manifest.deployment.application;
|
|
10
|
+
if (!current.workersDev) throw new Error("platform: This command adds a domain to a workers.dev test installation.");
|
|
11
|
+
if (!["installed", "disabled"].includes(manifest.status)) throw new Error("platform: Finish the interrupted platform lifecycle operation before adding a domain.");
|
|
12
|
+
if (current.zoneName && current.baseDomain !== domain) throw new Error(`platform: This installation already uses ${current.baseDomain}. Replacing an existing application domain is not supported.`);
|
|
13
|
+
if (manifest.pendingDomain && (manifest.pendingDomain.baseDomain !== domain || manifest.pendingDomain.zoneName !== zone)) throw new Error(`platform: Finish the pending setup with void platform domain set ${manifest.pendingDomain.baseDomain}.`);
|
|
14
|
+
return createPlatformDeploymentManifest({
|
|
15
|
+
...manifest.deployment,
|
|
16
|
+
application: {
|
|
17
|
+
baseDomain: domain,
|
|
18
|
+
zoneName: zone,
|
|
19
|
+
dedicatedZone: manifest.pendingDomain?.dedicatedZone ?? (current.zoneName ? current.dedicatedZone : dedicatedZone),
|
|
20
|
+
workersDev: current.workersDev,
|
|
21
|
+
...current.zoneId ? { zoneId: current.zoneId } : {}
|
|
22
|
+
}
|
|
23
|
+
}).application;
|
|
24
|
+
}
|
|
25
|
+
async function applyPlatformDomain(client, original, target, plan, dependencies) {
|
|
26
|
+
let manifest = original;
|
|
27
|
+
const now = () => (/* @__PURE__ */ new Date()).toISOString();
|
|
28
|
+
const save = async (next) => {
|
|
29
|
+
await dependencies.checkpoint(next);
|
|
30
|
+
manifest = next;
|
|
31
|
+
};
|
|
32
|
+
await dependencies.verifyOwnership(manifest);
|
|
33
|
+
await save({
|
|
34
|
+
...manifest,
|
|
35
|
+
pendingDomain: target,
|
|
36
|
+
updatedAt: now()
|
|
37
|
+
});
|
|
38
|
+
const zoneAction = plan.actions.find((action) => action.key === "zone");
|
|
39
|
+
if (!zoneAction) throw new Error("platform: Domain plan has no zone.");
|
|
40
|
+
let zone = plan.zone;
|
|
41
|
+
if (!zone) zone = await client.createZone(manifest.account.id, target.zoneName);
|
|
42
|
+
await save(recordResource(manifest, zoneAction, zone.id, zoneAction.action === "create" ? "created" : manifest.resources.some((resource) => resource.key === "zone") ? void 0 : "adopted", now()));
|
|
43
|
+
if (zone.status !== "active") return {
|
|
44
|
+
manifest,
|
|
45
|
+
waitingForDns: true,
|
|
46
|
+
nameServers: zone.nameServers
|
|
47
|
+
};
|
|
48
|
+
await dependencies.verifyRuntimeToken(zone.id);
|
|
49
|
+
const dnsAction = plan.actions.find((action) => action.key === "application-dns");
|
|
50
|
+
if (!dnsAction) throw new Error("platform: Domain plan has no application DNS record.");
|
|
51
|
+
if (dnsAction.action === "create") {
|
|
52
|
+
if ((await client.listDnsRecords(zone.id, dnsAction.name)).length) throw new Error("platform: DNS changed since the plan. Rerun the command to review it.");
|
|
53
|
+
const dns = await client.createDnsRecord(zone.id, dnsAction.name);
|
|
54
|
+
await save(recordResource(manifest, dnsAction, dns.id, "created", now()));
|
|
55
|
+
} else {
|
|
56
|
+
if (!dnsAction.id) throw new Error("platform: Domain DNS record has no identity.");
|
|
57
|
+
await save(recordResource(manifest, dnsAction, dnsAction.id, dnsAction.action === "adopt" ? "adopted" : void 0, now()));
|
|
58
|
+
}
|
|
59
|
+
await dependencies.verifyOwnership(manifest);
|
|
60
|
+
const patterns = createApplicationRoutes(target).map((route) => route.pattern);
|
|
61
|
+
await client.publishWorkerRoutesSafely(zone.id, manifest.deployment.resources.dispatchWorker, patterns);
|
|
62
|
+
const routes = await client.listWorkerRoutes(zone.id);
|
|
63
|
+
const deployment = createPlatformDeploymentManifest({
|
|
64
|
+
...manifest.deployment,
|
|
65
|
+
application: {
|
|
66
|
+
...target,
|
|
67
|
+
zoneId: zone.id
|
|
68
|
+
}
|
|
69
|
+
});
|
|
70
|
+
const observed = recordPlatformWorkerTraffic({
|
|
71
|
+
...manifest,
|
|
72
|
+
deployment
|
|
73
|
+
}, deployment.resources.dispatchWorker, {
|
|
74
|
+
customDomains: [],
|
|
75
|
+
routes
|
|
76
|
+
}, now());
|
|
77
|
+
await save({
|
|
78
|
+
...manifest,
|
|
79
|
+
resources: observed.resources,
|
|
80
|
+
updatedAt: now()
|
|
81
|
+
});
|
|
82
|
+
await (dependencies.probe ?? probePlatformDomain)(`void-check-${randomUUID().slice(0, 8)}.${target.baseDomain}`, manifest);
|
|
83
|
+
await dependencies.verifyOwnership(manifest);
|
|
84
|
+
const routing = manifest.resources.find((resource) => resource.key === "routing-kv" && resource.state === "ready");
|
|
85
|
+
if (!routing) throw new Error("platform: Routing storage is missing. Run platform repair first.");
|
|
86
|
+
await client.putKvValue(manifest.account.id, routing.id, PLATFORM_APPLICATION_KEY, JSON.stringify(deployment.application));
|
|
87
|
+
const { pendingDomain: _pending, ...ready } = manifest;
|
|
88
|
+
await save({
|
|
89
|
+
...ready,
|
|
90
|
+
deployment,
|
|
91
|
+
updatedAt: now()
|
|
92
|
+
});
|
|
93
|
+
return {
|
|
94
|
+
manifest,
|
|
95
|
+
waitingForDns: false,
|
|
96
|
+
nameServers: []
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
async function probePlatformDomain(hostname, manifest) {
|
|
100
|
+
const url = `https://${hostname}/health`;
|
|
101
|
+
try {
|
|
102
|
+
const response = await fetch(url, {
|
|
103
|
+
redirect: "manual",
|
|
104
|
+
signal: AbortSignal.timeout(3e4),
|
|
105
|
+
headers: {
|
|
106
|
+
"X-Void-Platform-Probe": createPlatformHealthProbeToken(manifest.ownershipNonce),
|
|
107
|
+
...cfAccessHeaders(process.env, url)
|
|
108
|
+
}
|
|
109
|
+
});
|
|
110
|
+
const body = await response.json();
|
|
111
|
+
if (!response.ok || body.ok !== true || body.installationId !== manifest.id) throw new Error("Identity or health did not match.");
|
|
112
|
+
} catch {
|
|
113
|
+
throw new Error(`platform: HTTPS is not ready for *.${manifest.pendingDomain.baseDomain}. Existing URLs remain active. Wait for DNS/certificate activation and rerun the same domain set command.`);
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
async function runPlatformDomainCommand(args) {
|
|
117
|
+
assertNoninteractivePlatformMutationAcknowledged(args, process.stdin.isTTY === true);
|
|
118
|
+
const selected = await resolveInstalledPlatformManifest(args.selector);
|
|
119
|
+
const credential = await resolvePlatformCloudflareCredential();
|
|
120
|
+
const client = new PlatformCloudflareClient(credential.token);
|
|
121
|
+
const domainInput = args.domain || await text({
|
|
122
|
+
message: "Application domain:",
|
|
123
|
+
placeholder: "example.com"
|
|
124
|
+
});
|
|
125
|
+
if (isCancel(domainInput)) throw new Error("platform: Cancelled.");
|
|
126
|
+
const domain = normalizeApplicationDomain(String(domainInput));
|
|
127
|
+
const execute = async (manifest, checkpoint) => {
|
|
128
|
+
const existingZone = args.zone ? null : await client.findZoneForHostname(manifest.account.id, domain);
|
|
129
|
+
const zoneName = normalizeApplicationDomain(args.zone || manifest.pendingDomain?.zoneName || existingZone?.name || domain);
|
|
130
|
+
const target = platformDomainTarget(manifest, domain, zoneName, args.dedicatedZone);
|
|
131
|
+
const deployment = createPlatformDeploymentManifest({
|
|
132
|
+
...manifest.deployment,
|
|
133
|
+
application: target
|
|
134
|
+
});
|
|
135
|
+
const candidate = {
|
|
136
|
+
...manifest,
|
|
137
|
+
deployment
|
|
138
|
+
};
|
|
139
|
+
const plan = await createPlatformInstallPlan(client, {
|
|
140
|
+
accountId: manifest.account.id,
|
|
141
|
+
applicationDomain: domain,
|
|
142
|
+
controlPlaneDomain: deployment.controlPlane.apiHostname ?? "",
|
|
143
|
+
dedicatedZone: target.dedicatedZone,
|
|
144
|
+
displayName: deployment.displayName,
|
|
145
|
+
installationSlug: deployment.installationSlug,
|
|
146
|
+
zoneName
|
|
147
|
+
}, candidate, { authoritativeProvisionIntents: true });
|
|
148
|
+
note([
|
|
149
|
+
`Applications: *.${domain}`,
|
|
150
|
+
`API stays at ${manifest.endpoints.apiUrl}`,
|
|
151
|
+
"Existing workers.dev app URLs keep working.",
|
|
152
|
+
...plan.actions.filter((action) => action.kind === "zone" || action.kind === "dns-record").map((action) => `${action.action} ${action.kind}: ${action.name}`),
|
|
153
|
+
...createApplicationRoutes(target).map((route) => `route ${route.pattern}`)
|
|
154
|
+
].join("\n"), "Application domain plan");
|
|
155
|
+
if (args.plan) return;
|
|
156
|
+
assertPlatformOperatorCredentialCanApplyPlan(credential, plan);
|
|
157
|
+
if (!args.yes) {
|
|
158
|
+
const accepted = await confirm({
|
|
159
|
+
message: "Set up this application domain?",
|
|
160
|
+
initialValue: false
|
|
161
|
+
});
|
|
162
|
+
if (isCancel(accepted) || !accepted) return;
|
|
163
|
+
}
|
|
164
|
+
const routingId = manifest.resources.find((resource) => resource.key === "routing-kv")?.id;
|
|
165
|
+
if (!routingId || !checkpoint) throw new Error("platform: Verified routing storage and lifecycle lock are required.");
|
|
166
|
+
const result = await applyPlatformDomain(client, manifest, target, plan, {
|
|
167
|
+
checkpoint: async (next) => {
|
|
168
|
+
await checkpoint(next);
|
|
169
|
+
writeInstallationManifest(next);
|
|
170
|
+
await client.putKvValue(next.account.id, routingId, PLATFORM_REMOTE_INSTALLATION_MANIFEST_KEY, JSON.stringify(next));
|
|
171
|
+
},
|
|
172
|
+
verifyOwnership: (next) => verifyPlatformInstallationOwnership(client, next),
|
|
173
|
+
verifyRuntimeToken: async (zoneId) => {
|
|
174
|
+
const url = `${manifest.endpoints.apiUrl}/internal/platform/domain-preflight`;
|
|
175
|
+
const response = await fetch(url, {
|
|
176
|
+
method: "POST",
|
|
177
|
+
redirect: "manual",
|
|
178
|
+
signal: AbortSignal.timeout(3e4),
|
|
179
|
+
headers: {
|
|
180
|
+
"Content-Type": "application/json",
|
|
181
|
+
"X-Void-Platform-Probe": createPlatformHealthProbeToken(manifest.ownershipNonce),
|
|
182
|
+
...cfAccessHeaders(process.env, url)
|
|
183
|
+
},
|
|
184
|
+
body: JSON.stringify({
|
|
185
|
+
zoneId,
|
|
186
|
+
domain
|
|
187
|
+
})
|
|
188
|
+
});
|
|
189
|
+
const body = await response.json();
|
|
190
|
+
if (!response.ok || body.ok !== true || body.installationId !== manifest.id) throw new Error(`platform: The running platform could not verify cache-purge access for ${domain}. Grant its existing runtime token Cache Purge: Purge on this zone, then rerun this command.`);
|
|
191
|
+
}
|
|
192
|
+
});
|
|
193
|
+
if (result.waitingForDns) {
|
|
194
|
+
note(`Set the domain's nameservers at its registrar to:\n${result.nameServers.join("\n")}\nThen rerun: void platform domain set ${domain}`, "Waiting for DNS");
|
|
195
|
+
return;
|
|
196
|
+
}
|
|
197
|
+
savePlatformConnection({
|
|
198
|
+
accountId: manifest.account.id,
|
|
199
|
+
apiUrl: manifest.endpoints.apiUrl,
|
|
200
|
+
applicationDomain: domain,
|
|
201
|
+
displayName: deployment.displayName,
|
|
202
|
+
installationId: manifest.id,
|
|
203
|
+
kind: "installed",
|
|
204
|
+
proxyUrl: manifest.endpoints.proxyUrl
|
|
205
|
+
});
|
|
206
|
+
log.success(`Apps now use *.${domain}. Existing workers.dev URLs remain available; the API connection is unchanged.`);
|
|
207
|
+
};
|
|
208
|
+
if (args.plan) {
|
|
209
|
+
await execute(selected);
|
|
210
|
+
return;
|
|
211
|
+
}
|
|
212
|
+
const release = acquirePlatformLifecycleLock(selected.account.id, selected.deployment.installationSlug);
|
|
213
|
+
try {
|
|
214
|
+
const recovery = readInstallationRecoverySecrets(selected);
|
|
215
|
+
const databaseUrl = resolvePlatformInstallDatabaseUrl(recovery, selected);
|
|
216
|
+
if (!databaseUrl) throw new Error("platform: Supply VOID_PLATFORM_DATABASE_URL to coordinate domain setup.");
|
|
217
|
+
const databaseLock = await acquirePlatformDatabaseLifecycleLock(databaseUrl, selected.id, selected.ownershipNonce);
|
|
218
|
+
try {
|
|
219
|
+
await execute(selectAuthoritativePlatformManifest(selected, databaseLock.authoritativeManifest), databaseLock.checkpoint);
|
|
220
|
+
} finally {
|
|
221
|
+
await databaseLock();
|
|
222
|
+
}
|
|
223
|
+
} finally {
|
|
224
|
+
release();
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
//#endregion
|
|
228
|
+
export { runPlatformDomainCommand };
|