void 0.26.0 → 0.26.1
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 +1 -3
- package/README.md +19 -9
- package/dist/{account-cmd-CDry3B5V.mjs → account-cmd-CfUXh_nU.mjs} +8 -7
- package/dist/{application-analysis-DC2yPvzY.mjs → application-analysis-DKy02UY0.mjs} +21 -32
- package/dist/{application-routing-C9khgLiS.mjs → application-routing-DQyUh_5S.mjs} +1 -1
- package/dist/{auth-D52yG7hl.mjs → auth-B5_tZLxT.mjs} +7 -7
- package/dist/{auth-B60QDbjg.mjs → auth-BgX2qYSY.mjs} +1 -1
- package/dist/{auth-link-DjeOptYi.mjs → auth-link-D5RmKnzh.mjs} +5 -5
- package/dist/{auth-migrations-9vif1uj8.mjs → auth-migrations-BwHgeEsD.mjs} +8 -18
- package/dist/{auth-router-BRxIuqDi.mjs → auth-router-Bap-pvbn.mjs} +4 -17
- package/dist/{better-auth-shared-BVkjZ3vM.d.mts → better-auth-shared-CPvWD3nG.d.mts} +0 -4
- package/dist/{better-auth-shared-hy6RPh9W.mjs → better-auth-shared-DPpj8zxc.mjs} +94 -16
- package/dist/{build-cmd-Ce3C8huo.mjs → build-cmd-B58c8iS8.mjs} +7 -6
- package/dist/{cache-CS8Yxr5a.mjs → cache-Bo52trKF.mjs} +7 -7
- package/dist/{cancel-deploy-mZsD88Xa.mjs → cancel-deploy-BZNz3Q26.mjs} +5 -4
- package/dist/{cf-access-YTlqvAsk.mjs → cf-access-ngGqZpHZ.mjs} +10 -11
- package/dist/{cf-build-output-U8o1Gl6X.mjs → cf-build-output-DjvB_872.mjs} +62 -85
- package/dist/cf-build-output-H9a97vME.mjs +2 -0
- package/dist/cli/cli.mjs +48 -83
- package/dist/cli/cloudflare-operation-process.mjs +71 -77
- package/dist/cli/env-schema-probe.mjs +5 -6
- package/dist/client-By4JjMw_.mjs +2 -0
- package/dist/{client-mC-dFGDD.mjs → client-C2Prx_Bi.mjs} +28 -6
- package/dist/{cloudflare-auth-Qdc7tw8F.mjs → cloudflare-auth-CuxfF6OA.mjs} +9 -17
- package/dist/{cloudflare-cmd-bhwCxAN6.mjs → cloudflare-cmd-lHqNlJGW.mjs} +6 -5
- package/dist/{cloudflare-config-Bktvwtpf.mjs → cloudflare-config-BmhBv3HV.mjs} +1 -1
- package/dist/{cloudflare-connect-CuhRgk3k.mjs → cloudflare-connect-2G3rL2rP.mjs} +4 -4
- package/dist/{cloudflare-operations-DoQrVHAt.mjs → cloudflare-operations-BlYLlowZ.mjs} +1 -1
- package/dist/{cloudflare-operations-DYa3coIk.mjs → cloudflare-operations-CwI1bChl.mjs} +41 -70
- package/dist/{cloudflare-process-B-wekeR6.mjs → cloudflare-process-2-TfIEzB.mjs} +20 -22
- package/dist/{config-CyQ-wVd7.mjs → config-5r-YpMC-.mjs} +1 -1
- package/dist/{config-C_XRIPx2.mjs → config-B_ggY-IO.mjs} +3 -3
- package/dist/config-BtSFvXZx.mjs +2 -0
- package/dist/config-CLYAosnQ.mjs +78 -0
- package/dist/{config-BMHb8RCj.d.mts → config-CSa15FvD.d.mts} +1 -1
- package/dist/{config-Br_JZD6u.mjs → config-DiowPT80.mjs} +24 -30
- package/dist/config-entry.d.mts +1 -1
- package/dist/{config-write-B1f88wJA.mjs → config-write-AHGesphx.mjs} +8 -7
- package/dist/{connect-H6EvP62X.mjs → connect-X0MUA1gk.mjs} +10 -9
- package/dist/{create-project-B2kk9Q0o.mjs → create-project-DxiyW6iX.mjs} +6 -6
- package/dist/{create-project-Dbb4uiN-.mjs → create-project-iwkbqiBU.mjs} +1 -1
- package/dist/{db-DpCKZto0.mjs → db-XnVMHzoV.mjs} +100 -132
- package/dist/{delete-CxlSvsvW.mjs → delete-esYlMiSJ.mjs} +6 -6
- package/dist/{deploy-CeEbnv4b.mjs → deploy-BsEvnlJl.mjs} +2346 -2495
- package/dist/deploy-C1d-YTfp.mjs +2 -0
- package/dist/{dev-inbox-D64ZKUod.mjs → dev-inbox-CK-UuPob.mjs} +7 -16
- package/dist/{discover-BcPPiF1o.mjs → discover-CkCYv9T_.mjs} +1 -2
- package/dist/discover-EDUf6JJw.mjs +2 -0
- package/dist/{prompts-ZAuJlyCj.mjs → dist-Bx1z6Eva.mjs} +1 -1
- package/dist/{dist-AoCzRTJE.mjs → dist-Cegxq8gs.mjs} +8 -8
- package/dist/{prompts-6OSVA7DJ.mjs → dist-D3m88sjf.mjs} +10 -53
- package/dist/{domain-B_9VgOm6.mjs → domain-CbbBWhWE.mjs} +28 -29
- package/dist/{dotenv-VQxupEUv.mjs → dotenv-BfU6eqFt.mjs} +20 -32
- package/dist/{drizzle-Beb2Am5S.mjs → drizzle-CF84FOVM.mjs} +16 -13
- package/dist/{email-BokHgjKj.mjs → email-CpuT42g7.mjs} +23 -18
- package/dist/{email--tEtMoj_.mjs → email-d_Aux1vM.mjs} +1 -1
- package/dist/{entry-CF5wvH4w.mjs → entry-CMAkqBmU.mjs} +6 -6
- package/dist/{env-_v349JBd.mjs → env-BxocywBB.mjs} +25 -6
- package/dist/{env-D5liuQYR.mjs → env-DMA3cXZt.mjs} +1 -1
- package/dist/{env-raw-Cx8ElDdj.mjs → env-raw-jZpP5n47.mjs} +1 -2
- package/dist/{env-types-D5kds_OZ.mjs → env-types-CwXgeMgL.mjs} +1 -1
- package/dist/{env-validation-cZBvGWaP.mjs → env-validation-CrVNjsPm.mjs} +1 -1
- package/dist/{env-validation-vBSQ8gw5.mjs → env-validation-Dxdx_5wo.mjs} +17 -21
- package/dist/{env-BdTc-K2L.mjs → env-w9jOyGZn.mjs} +9 -9
- package/dist/{fetch-_SeGZao9.d.mts → fetch-BPCYVi3H.d.mts} +20 -1
- package/dist/{fetch-BIZJh7vR.mjs → fetch-sAcwjzLO.mjs} +1 -1
- package/dist/{fetch-stream-Nm3hkZbT.mjs → fetch-stream-PGgz4uGz.mjs} +18 -23
- package/dist/{fetch-stream-Bjf0hoZb.d.mts → fetch-stream-obvZ7fvO.d.mts} +1 -16
- package/dist/{gen-BhDlTpwW.mjs → gen-DtkQhvQg.mjs} +40 -57
- package/dist/gen-dA9hW7AV.mjs +2 -0
- package/dist/{github-cmd-hhkTzlGS.mjs → github-cmd-D_FsOFxq.mjs} +64 -163
- package/dist/{handler-DghKr6dU.mjs → handler-BHAn2fZJ.mjs} +1 -0
- package/dist/{handler-BeK3weD4.d.mts → handler-CNAwjRcW.d.mts} +4 -11
- package/dist/{head-Do8P4puT.d.mts → head-C8K_iGe6.d.mts} +1 -1
- package/dist/{head-D_QRR5Yd.mjs → head-D2VF4ApL.mjs} +29 -51
- package/dist/{headers-2rKda9Y6.mjs → headers-DlfR78Nu.mjs} +3 -3
- package/dist/{help-Bv44e2tm.mjs → help-CVFBTmBx.mjs} +13 -32
- package/dist/help-DzKUrQvk.mjs +2 -0
- package/dist/{inbound-fRkqcXaC.mjs → inbound-PfQDLXc5.mjs} +23 -24
- package/dist/index.d.mts +19 -2
- package/dist/index.mjs +617 -530
- package/dist/{info-DhtTKh65.mjs → info-PYWwkWyt.mjs} +4 -4
- package/dist/{init-BMf4T03q.mjs → init-Bw-fRKGp.mjs} +160 -197
- package/dist/{link-BqYsSS_I.mjs → link-DlPG8iX3.mjs} +9 -9
- package/dist/{list-_kBToO-l.mjs → list-2GN7_ueV.mjs} +8 -7
- package/dist/{live-CB1y5IuC.mjs → live-CgQuTpqD.mjs} +15 -16
- package/dist/{live-iAuEH1hd.d.mts → live-Du8jXwOW.d.mts} +4 -2
- package/dist/{local-d1-fGxYrVD6.mjs → local-d1-ga5O_idV.mjs} +2 -2
- package/dist/{login-DFuo-RWO.mjs → login-D-Q4xw3Q.mjs} +7 -7
- package/dist/login-Dc-wuTDq.mjs +2 -0
- package/dist/{logs-DYgnh6dH.mjs → logs-rd8J-OFh.mjs} +27 -10
- package/dist/migrate-BHp07yJE.mjs +2 -0
- package/dist/{migrate-CV1on-yJ.mjs → migrate-NLsjBbuM.mjs} +34 -20
- package/dist/{mime-D5Nmdzf7.mjs → mime-DxCznlJq.mjs} +45 -95
- package/dist/{node-C6Q6e1Es.mjs → node-DJicPvPj.mjs} +5 -5
- package/dist/{operator-args-DdY54Bgb.mjs → operator-args-BNsW5gfp.mjs} +10 -1
- package/dist/{operator-auth-2dsGlTT5.mjs → operator-auth-AzVLbrr3.mjs} +1 -1
- package/dist/{operator-client-BFqpp6z0.mjs → operator-client-BQtzyG-g.mjs} +1 -1
- package/dist/{operator-cmd-CUGHXrQf.mjs → operator-cmd-B6f6Cg9Z.mjs} +24 -11
- package/dist/operator-cmd-Cwn50lOV.mjs +2 -0
- package/dist/{output-BvdaehtE.mjs → output-C50ag2r3.mjs} +20 -2
- package/dist/pages/client.d.mts +19 -51
- package/dist/pages/client.mjs +204 -225
- package/dist/pages/head-client.d.mts +1 -1
- package/dist/pages/head.d.mts +1 -1
- package/dist/pages/head.mjs +1 -1
- package/dist/pages/index.d.mts +2 -2
- package/dist/pages/index.mjs +6 -12
- package/dist/pages/islands-plugin.d.mts +1 -1
- package/dist/pages/islands-plugin.mjs +21 -25
- package/dist/pages/protocol.d.mts +2 -2
- package/dist/pages/protocol.mjs +2 -2
- package/dist/{plan-CJGEeTEI.mjs → plan-BhLO2p4w.mjs} +2 -1
- package/dist/plan-CH2G51je.mjs +2 -0
- package/dist/{platform-args-DSV2p4nY.mjs → platform-args-BoZkWQnJ.mjs} +1 -1
- package/dist/platform-args-DYgITk0D.mjs +2 -0
- package/dist/{platform-auth-config-Bosx7U1h.mjs → platform-auth-config-n603OANg.mjs} +40 -36
- package/dist/{platform-auth-protection-DcbL_LW_.mjs → platform-auth-protection-zxDr0hWW.mjs} +8 -7
- package/dist/{platform-auth-recovery-WfTZ8K6o.mjs → platform-auth-recovery-tw9lgtgE.mjs} +7 -6
- package/dist/{platform-cmd-DbKtQb_4.mjs → platform-cmd-B8-bCb7t.mjs} +10 -10
- package/dist/{platform-cmd-dyFUof0t.mjs → platform-cmd-C00YM14r.mjs} +1 -1
- package/dist/{platform-domain-Bsq43AJp.mjs → platform-domain-p0kobLV8.mjs} +5 -5
- package/dist/{platform-lifecycle-Cfi0o6xM.mjs → platform-lifecycle-D_QEY32D.mjs} +75 -386
- package/dist/{platform-lifecycle--5gWmDoI.mjs → platform-lifecycle-vFqtNPPa.mjs} +1 -1
- package/dist/{platform-management-BrF9STZp.mjs → platform-management-BdYblvvE.mjs} +6 -6
- package/dist/{platform-management-Bbwf6-Dq.mjs → platform-management-oi-SvI3f.mjs} +1 -1
- package/dist/{platform-plans-config-DU-8nC2Y.mjs → platform-plans-config-CjiFv5J4.mjs} +5 -4
- package/dist/{platform-recovery-DQAqAQYu.mjs → platform-recovery-PvNS9Nl2.mjs} +2 -2
- package/dist/platform-setup-DVe42Ws7.mjs +299 -0
- package/dist/{plugin-inference-CXWnn79A.mjs → plugin-inference-BlQbOL0P.mjs} +43 -42
- package/dist/prepare-DRUV-g3X.mjs +2 -0
- package/dist/{prepare-WoUubFKL.mjs → prepare-Do96654b.mjs} +8 -8
- package/dist/{prepare-BMrRWLwP.mjs → prepare-Dq9hTIbo.mjs} +4 -4
- package/dist/{prerender-render-D9qbLs2f.mjs → prerender-render-Ct20jftc.mjs} +17 -3
- package/dist/prerender-render.mjs +1 -1
- package/dist/{project-cmd-BbH2LptN.mjs → project-cmd-ti8_yTcA.mjs} +18 -18
- package/dist/{project-team-Yiww3-go.mjs → project-team-CDPE1Tsg.mjs} +14 -17
- package/dist/{project-token-BrtT2NkY.mjs → project-token-CkZ1cN0Z.mjs} +13 -16
- package/dist/{project-tsconfig-B8GeM0RM.mjs → project-tsconfig-CVJhNMxs.mjs} +2 -1
- package/dist/{project-zero-trust-nYJ2V2nc.mjs → project-zero-trust-DdjLR61k.mjs} +11 -8
- package/dist/{protocol-BX8t2jiw.d.mts → protocol-BPZaNqBo.d.mts} +4 -2
- package/dist/{protocol-U7bfjHmA.mjs → protocol-CfaUwNs8.mjs} +46 -49
- package/dist/{providers-CJlNS3kT.mjs → providers-BXuhmuub.mjs} +1 -12
- package/dist/{provision-VeqAC77A.mjs → provision-BfaLiWbj.mjs} +38 -41
- package/dist/{provision-DMTPG8Rh.mjs → provision-Wu9ZBk9L.mjs} +2 -3
- package/dist/{requests-TIz_jtSu.mjs → requests-DFAqyYy8.mjs} +4 -4
- package/dist/resolve-project-BIeYs9Cw.mjs +2 -0
- package/dist/{resolve-project-BG5ORGID.mjs → resolve-project-CP8rZs_p.mjs} +6 -1
- package/dist/{rollback-dBqICPzj.mjs → rollback-BKYXBduI.mjs} +29 -36
- package/dist/{route-types-Clm4WD0B.mjs → route-types-CbtsIeFn.mjs} +1 -1
- package/dist/route-url-BgPja1GS.d.mts +5 -0
- package/dist/route-url-BjGv_KKY.mjs +28 -0
- package/dist/runner-9wjsSZx-.mjs +2 -0
- package/dist/{runner--2KF6Kua.mjs → runner-DMBKSrRk.mjs} +2 -2
- package/dist/{runner-mysql-DmWchSWJ.mjs → runner-mysql-CEzKtmFb.mjs} +8 -8
- package/dist/{runner-mysql-CEG5JozK.mjs → runner-mysql-CkFqZ6CE.mjs} +1 -1
- package/dist/{runner-pg-Bh4AgZdj.mjs → runner-pg-BGYRFdRp.mjs} +1 -1
- package/dist/runtime/ai.d.mts +1 -1
- package/dist/runtime/ai.mjs +34 -95
- package/dist/runtime/better-auth-mysql.d.mts +1 -1
- package/dist/runtime/better-auth-mysql.mjs +4 -9
- package/dist/runtime/better-auth-pg.d.mts +1 -1
- package/dist/runtime/better-auth-pg.mjs +5 -10
- package/dist/runtime/better-auth.d.mts +1 -1
- package/dist/runtime/better-auth.mjs +3 -3
- package/dist/runtime/client-react.d.mts +2 -3
- package/dist/runtime/client-react.mjs +2 -2
- package/dist/runtime/client-solid.d.mts +2 -3
- package/dist/runtime/client-solid.mjs +2 -2
- package/dist/runtime/client-svelte.d.mts +2 -3
- package/dist/runtime/client-svelte.mjs +2 -2
- package/dist/runtime/client-vue.d.mts +2 -3
- package/dist/runtime/client-vue.mjs +2 -2
- package/dist/runtime/client.d.mts +2 -3
- package/dist/runtime/client.mjs +2 -2
- package/dist/runtime/db.mjs +1 -1
- package/dist/runtime/durable.mjs +3 -10
- package/dist/runtime/email/testing.mjs +5 -5
- package/dist/runtime/email.d.mts +2 -1
- package/dist/runtime/email.mjs +11 -27
- package/dist/runtime/env-public.mjs +15 -20
- package/dist/runtime/env.mjs +1 -1
- package/dist/runtime/fetch-stream.d.mts +2 -2
- package/dist/runtime/fetch-stream.mjs +1 -1
- package/dist/runtime/fetch.d.mts +2 -3
- package/dist/runtime/fetch.mjs +1 -1
- package/dist/runtime/handler.d.mts +1 -1
- package/dist/runtime/handler.mjs +2 -2
- package/dist/runtime/isr.mjs +1 -1
- package/dist/runtime/kv.mjs +10 -11
- package/dist/runtime/live-client.d.mts +1 -1
- package/dist/runtime/live-client.mjs +12 -22
- package/dist/runtime/live-server.mjs +27 -35
- package/dist/runtime/live.d.mts +2 -2
- package/dist/runtime/live.mjs +2 -2
- package/dist/runtime/migration-handler.mjs +4 -81
- package/dist/runtime/queues.mjs +1 -1
- package/dist/runtime/remote/binding-handler.d.mts +2 -2
- package/dist/runtime/remote/binding-handler.mjs +8 -9
- package/dist/runtime/remote/index.mjs +27 -77
- package/dist/runtime/route-url.d.mts +2 -4
- package/dist/runtime/route-url.mjs +1 -1
- package/dist/runtime/routing.d.mts +1 -1
- package/dist/runtime/routing.mjs +15 -26
- package/dist/runtime/sandbox.mjs +2 -2
- package/dist/runtime/sse.mjs +1 -1
- package/dist/runtime/storage.mjs +1 -1
- package/dist/runtime/validator.d.mts +1 -1
- package/dist/runtime/ws-server.d.mts +2 -2
- package/dist/runtime/ws-server.mjs +30 -61
- package/dist/runtime/ws.d.mts +1 -1
- package/dist/runtime/ws.mjs +1 -1
- package/dist/{scan-C8dA7iM4.mjs → scan-C3uDzz6J.mjs} +12 -13
- package/dist/{secret-AKnNXNP5.mjs → secret-BAt2KMmO.mjs} +14 -14
- package/dist/{skills-BPQUGClu.mjs → skills-BgVMvQdy.mjs} +2 -2
- package/dist/{sse-CQNaDFFV.mjs → sse-CMvCgjNk.mjs} +1 -1
- package/dist/{subcommand-prompt-B6WS9Aoz.mjs → subcommand-prompt-BSlnD1fI.mjs} +2 -2
- package/dist/sveltekit.d.mts +0 -2
- package/dist/terminal-log-text-D9ACPOuG.mjs +32 -0
- package/dist/validate-BJr9LfXy.mjs +2 -0
- package/dist/{validate-ymhap6M_.mjs → validate-C9qJArv7.mjs} +9 -28
- package/dist/{defer-YsYDUoii.mjs → validation-error-Dg9Recn1.mjs} +11 -11
- package/dist/{wrangler-DhUerFkW.mjs → wrangler-D9KTuqnv.mjs} +89 -194
- package/dist/{ws-C79j4aED.d.mts → ws-CChrrAU-.d.mts} +1 -1
- package/dist/{yarn-pnp-BV4AzNul.mjs → yarn-pnp-CUX_iTPA.mjs} +19 -27
- package/{skills/void/docs → docs}/guide/ai.md +5 -3
- package/{skills/void/docs → docs}/guide/auth.md +37 -1
- package/{skills/void/docs → docs}/guide/database/postgresql.md +2 -2
- package/{skills/void/docs → docs}/guide/edge/revalidation.md +1 -1
- package/{skills/void/docs → docs}/guide/edge/rewrites.md +2 -4
- package/{skills/void/docs → docs}/guide/email/receiving.md +2 -2
- package/{skills/void/docs → docs}/guide/email/sending.md +0 -2
- package/{skills/void/docs → docs}/guide/env-vars.md +4 -0
- package/{skills/void/docs → docs}/guide/jobs.md +2 -2
- package/{skills/void/docs → docs}/guide/live.md +10 -5
- package/{skills/void/docs → docs}/guide/pages-routing/actions-and-forms.md +20 -8
- package/{skills/void/docs → docs}/guide/pages-routing/loaders.md +7 -3
- package/{skills/void/docs → docs}/guide/pages-routing/markdown.md +15 -23
- package/{skills/void/docs → docs}/guide/pages-routing/overview.md +6 -4
- package/{skills/void/docs → docs}/guide/platform/administration/access.md +2 -10
- package/{skills/void/docs → docs}/guide/platform/administration/operations.md +3 -12
- package/{skills/void/docs → docs}/guide/platform/administration/projects.md +1 -1
- package/{skills/void/docs → docs}/guide/platform/development/local.md +4 -2
- package/{skills/void/docs → docs}/guide/platform/development/runtime.md +1 -1
- package/{skills/void/docs → docs}/guide/platform/development/schema-ci.md +1 -1
- package/{skills/void/docs → docs}/guide/platform/installation/domains.md +3 -1
- package/{skills/void/docs → docs}/guide/platform/installation/first-deployment.md +3 -1
- package/{skills/void/docs → docs}/guide/platform/installation/maintenance.md +4 -0
- package/{skills/void/docs → docs}/guide/project-collaboration.md +6 -2
- package/{skills/void/docs → docs}/guide/queues.md +0 -2
- package/{skills/void/docs → docs}/guide/remote-dev.md +5 -5
- package/{skills/void/docs → docs}/guide/sandboxes.md +2 -2
- package/{skills/void/docs → docs}/guide/sse.md +0 -2
- package/{skills/void/docs → docs}/guide/storage.md +7 -2
- package/{skills/void/docs → docs}/guide/websockets.md +4 -0
- package/docs/integrations/agents.md +37 -0
- package/{skills/void/docs → docs}/integrations/frameworks/astro.md +3 -3
- package/{skills/void/docs → docs}/integrations/frameworks/nuxt.md +6 -2
- package/{skills/void/docs → docs}/integrations/hono.md +15 -7
- package/{skills/void/docs → docs}/integrations/nodejs-bun-deno.md +1 -0
- package/{skills/void/docs → docs}/reference/api/auth.md +1 -1
- package/{skills/void/docs → docs}/reference/api/handlers.md +4 -2
- package/{skills/void/docs → docs}/reference/api/pages.md +4 -0
- package/{skills/void/docs → docs}/reference/cli/auth.md +0 -5
- package/{skills/void/docs → docs}/reference/cli/database.md +3 -4
- package/{skills/void/docs → docs}/reference/cli/generate.md +1 -1
- package/{skills/void/docs → docs}/reference/cli/github.md +3 -12
- package/{skills/void/docs → docs}/reference/cli/platform-config.md +1 -1
- package/{skills/void/docs → docs}/reference/cli/platform-email.md +2 -3
- package/{skills/void/docs → docs}/reference/cli/platform-installation.md +1 -1
- package/{skills/void/docs → docs}/reference/cli/platform-operations.md +3 -0
- package/{skills/void/docs → docs}/reference/cli/platform-users.md +2 -2
- package/{skills/void/docs → docs}/reference/cli/project.md +5 -4
- package/{skills/void/docs → docs}/reference/cli/secrets.md +3 -3
- package/{skills/void/docs → docs}/reference/cli/setup.md +9 -11
- package/{skills/void/docs → docs}/reference/cli.md +1 -1
- package/{skills/void/docs → docs}/reference/config.md +13 -13
- package/{skills/void/docs → docs}/reference/resource-inference.md +1 -16
- package/package.json +34 -30
- package/schema.json +1 -1
- package/skills/migrate-vite-cloudflare-to-void/SKILL.md +4 -1
- package/skills/void/SKILL.md +6 -3
- package/dist/cf-build-output-ChY6-XWP.mjs +0 -2
- package/dist/client-BxVixJBI.mjs +0 -2
- package/dist/config-0acf1oys.mjs +0 -2
- package/dist/config-D8MOgiQV.mjs +0 -32
- package/dist/deploy-qmiLE1G1.mjs +0 -2
- package/dist/discover-AMCBXivQ.mjs +0 -2
- package/dist/fetch-error-Sp1R4mZv.d.mts +0 -20
- package/dist/gen-qCBwH3fZ.mjs +0 -2
- package/dist/help-Dw5f9Xrg.mjs +0 -2
- package/dist/login-D7meQg_3.mjs +0 -2
- package/dist/migrate-CEu2X5DB.mjs +0 -2
- package/dist/operator-cmd-DRPvhpjM.mjs +0 -2
- package/dist/plan-COtUvdMA.mjs +0 -2
- package/dist/platform-args-Dcy_5b_Y.mjs +0 -2
- package/dist/prepare-BBknoZI1.mjs +0 -2
- package/dist/resolve-project-DtbidV4y.mjs +0 -2
- package/dist/route-url-CG7U-cRN.mjs +0 -15
- package/dist/runner-voIltZrY.mjs +0 -2
- package/dist/validate-pna7R3Pv.mjs +0 -2
- package/skills/void/docs/integrations/agents.md +0 -26
- package/dist/{runner-pg-D4OPlil-.mjs → runner-pg-DV8p_zjA.mjs} +4 -4
- package/{skills/void/docs → docs}/guide/app-types.md +0 -0
- package/{skills/void/docs → docs}/guide/database/d1.md +2 -2
- package/{skills/void/docs → docs}/guide/database/mysql.md +0 -0
- package/{skills/void/docs → docs}/guide/database.md +8 -8
- package/{skills/void/docs → docs}/guide/deployment.md +0 -0
- package/{skills/void/docs → docs}/guide/durable-state.md +0 -0
- package/{skills/void/docs → docs}/guide/edge/headers.md +0 -0
- package/{skills/void/docs → docs}/guide/edge/prerendering.md +0 -0
- package/{skills/void/docs → docs}/guide/edge/redirects.md +0 -0
- package/{skills/void/docs → docs}/guide/edge/static-assets.md +0 -0
- package/{skills/void/docs → docs}/guide/email/domains.md +0 -0
- package/{skills/void/docs → docs}/guide/email.md +0 -0
- package/{skills/void/docs → docs}/guide/index.md +0 -0
- package/{skills/void/docs → docs}/guide/kv.md +0 -0
- package/{skills/void/docs → docs}/guide/pages-routing/head.md +0 -0
- package/{skills/void/docs → docs}/guide/pages-routing/islands.md +2 -2
- package/{skills/void/docs → docs}/guide/pages-routing/layouts.md +0 -0
- package/{skills/void/docs → docs}/guide/pages-routing/view-transitions.md +0 -0
- package/{skills/void/docs → docs}/guide/platform/administration/email.md +0 -0
- package/{skills/void/docs → docs}/guide/platform/administration/plans.md +0 -0
- package/{skills/void/docs → docs}/guide/platform/administration/zero-trust.md +0 -0
- package/{skills/void/docs → docs}/guide/platform/installation/ci.md +0 -0
- package/{skills/void/docs → docs}/guide/platform/installation/credentials.md +0 -0
- package/{skills/void/docs → docs}/guide/platform/installation/prerequisites.md +0 -0
- package/{skills/void/docs → docs}/guide/platform/installation/setup.md +0 -0
- package/{skills/void/docs → docs}/guide/platform/installation/uninstall.md +0 -0
- package/{skills/void/docs → docs}/guide/platform-administration.md +0 -0
- package/{skills/void/docs → docs}/guide/platform-development.md +0 -0
- package/{skills/void/docs → docs}/guide/quickstart.md +0 -0
- package/{skills/void/docs → docs}/guide/self-hosted-platform.md +0 -0
- package/{skills/void/docs → docs}/guide/server-routing.md +3 -3
- package/{skills/void/docs → docs}/guide/ssg.md +0 -0
- package/{skills/void/docs → docs}/guide/ssr.md +0 -0
- package/{skills/void/docs → docs}/guide/type-safety.md +0 -0
- package/{skills/void/docs → docs}/guide/typed-fetch.md +0 -0
- package/{skills/void/docs → docs}/index.md +0 -0
- package/{skills/void/docs → docs}/integrations/cloudflare.md +0 -0
- package/{skills/void/docs → docs}/integrations/frameworks/analog.md +3 -3
- package/{skills/void/docs → docs}/integrations/frameworks/overview.md +0 -0
- package/{skills/void/docs → docs}/integrations/frameworks/react-router.md +3 -3
- package/{skills/void/docs → docs}/integrations/frameworks/sveltekit.md +1 -1
- package/{skills/void/docs → docs}/integrations/frameworks/tanstack-start.md +2 -2
- package/{skills/void/docs → docs}/reference/api/client.md +0 -0
- package/{skills/void/docs → docs}/reference/api/database.md +2 -2
- /package/{skills/void/docs → docs}/reference/api/durable.md +0 -0
- /package/{skills/void/docs → docs}/reference/api/env.md +0 -0
- /package/{skills/void/docs → docs}/reference/api/plugin.md +0 -0
- /package/{skills/void/docs → docs}/reference/api/resources.md +0 -0
- /package/{skills/void/docs → docs}/reference/api/rewrites.md +0 -0
- /package/{skills/void/docs → docs}/reference/api/types.md +0 -0
- /package/{skills/void/docs → docs}/reference/api.md +0 -0
- /package/{skills/void/docs → docs}/reference/cli/deploy.md +0 -0
- /package/{skills/void/docs → docs}/reference/cli/domains.md +0 -0
- /package/{skills/void/docs → docs}/reference/cli/email.md +0 -0
- /package/{skills/void/docs → docs}/reference/cli/platform-zero-trust.md +0 -0
- /package/{skills/void/docs → docs}/reference/cli/platform.md +0 -0
- /package/{skills/void/docs → docs}/reference/structure.md +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { t as MAX_MESSAGE_BYTES } from "./mime-
|
|
1
|
+
import { t as MAX_MESSAGE_BYTES } from "./mime-DxCznlJq.mjs";
|
|
2
2
|
//#region src/runtime/email/dev-inbox.ts
|
|
3
3
|
/**
|
|
4
4
|
* In-memory capture sink for emails during local dev / tests.
|
|
@@ -88,12 +88,7 @@ const DEV_INBOX_ACK_VALUE = "captured";
|
|
|
88
88
|
* `(4/3 + 3.75) * MAX_MESSAGE_BYTES` (5.09x) plus what has no MIME footprint of
|
|
89
89
|
* its own — the JSON framing, ids, timestamps, and the `bcc` addresses
|
|
90
90
|
* (`MAX_RECIPIENTS * MAX_ADDRESS_LENGTH`, 32 KB). 6x is the smallest integer
|
|
91
|
-
* multiple that covers it.
|
|
92
|
-
* control-character text (33.6 MB serialized) with a 413 that `sendEmail`
|
|
93
|
-
* reported as `UPSTREAM_ERROR`. Measured: that message serializes to 3.26x
|
|
94
|
-
* `MAX_MESSAGE_BYTES`, a legal 10 MiB one of CRLF text to 3.33x, and one of a
|
|
95
|
-
* control-character subject (or display name, or custom header value) to
|
|
96
|
-
* 4.93x — the body-only figure would not have covered it.
|
|
91
|
+
* multiple that covers it.
|
|
97
92
|
*
|
|
98
93
|
* Three caller strings have NO MIME footprint, so no multiple of
|
|
99
94
|
* `MAX_MESSAGE_BYTES` bounds them: a `bcc` display name (never rendered), a
|
|
@@ -202,7 +197,7 @@ const DEFAULT_BUFFER_LIMIT = 100;
|
|
|
202
197
|
*
|
|
203
198
|
* A count cap alone does not bound the buffer: every item holds its full raw
|
|
204
199
|
* MIME plus the decoded `text`/`html`, and a single message may reach
|
|
205
|
-
* `MAX_MESSAGE_BYTES` (
|
|
200
|
+
* `MAX_MESSAGE_BYTES` (5 MiB), so 100 html-heavy messages is on the order of
|
|
206
201
|
* gigabytes. This buffer lives in the Vite dev server's Node process — not in
|
|
207
202
|
* workerd — so that is the dev server's own heap.
|
|
208
203
|
*/
|
|
@@ -222,24 +217,20 @@ function registerEmailSink(sink) {
|
|
|
222
217
|
return () => r.sinks.delete(sink);
|
|
223
218
|
}
|
|
224
219
|
function dispatchToSinks(message) {
|
|
225
|
-
const
|
|
226
|
-
if (r.sinks.size === 0) return false;
|
|
227
|
-
for (const sink of r.sinks) try {
|
|
220
|
+
for (const sink of registry().sinks) try {
|
|
228
221
|
sink(message);
|
|
229
222
|
} catch (err) {
|
|
230
223
|
console.warn("[email-dev-inbox] sink error:", err);
|
|
231
224
|
}
|
|
232
|
-
return true;
|
|
233
225
|
}
|
|
234
226
|
function hasActiveSink() {
|
|
235
227
|
return registry().sinks.size > 0;
|
|
236
228
|
}
|
|
237
229
|
/** Get or create the shared dev-server ring buffer. */
|
|
238
|
-
function getDevBuffer(
|
|
230
|
+
function getDevBuffer() {
|
|
239
231
|
let b = inboxGlobal[BUFFER_KEY];
|
|
240
232
|
if (!b) {
|
|
241
233
|
b = {
|
|
242
|
-
limit,
|
|
243
234
|
bytes: 0,
|
|
244
235
|
items: []
|
|
245
236
|
};
|
|
@@ -255,7 +246,7 @@ function pushToDevBuffer(message) {
|
|
|
255
246
|
const b = getDevBuffer();
|
|
256
247
|
b.items.push(message);
|
|
257
248
|
b.bytes += messageBytes(message);
|
|
258
|
-
while (b.items.length >
|
|
249
|
+
while (b.items.length > DEFAULT_BUFFER_LIMIT || b.bytes > DEFAULT_BUFFER_BYTES && b.items.length > 1) {
|
|
259
250
|
const evicted = b.items.shift();
|
|
260
251
|
if (evicted) b.bytes -= messageBytes(evicted);
|
|
261
252
|
}
|
|
@@ -303,4 +294,4 @@ function generateCaptureId() {
|
|
|
303
294
|
return `dev_${Date.now().toString(36)}${hex}`;
|
|
304
295
|
}
|
|
305
296
|
//#endregion
|
|
306
|
-
export {
|
|
297
|
+
export { listDevMessages as _, DEV_INBOX_ENV_VAR as a, registerEmailSink as b, DEV_INBOX_TOKEN_ENV_VAR as c, bytesToBase64 as d, captureMessage as f, hasActiveSink as g, findDevMessage as h, DEV_INBOX_CAPTURE_URL as i, DEV_INBOX_TOKEN_HEADER as l, dispatchToSinks as m, DEV_INBOX_ACK_VALUE as n, DEV_INBOX_MAX_CAPTURE_BYTES as o, clearDevBuffer as p, DEV_INBOX_CAPTURE_PATH as r, DEV_INBOX_PREFIX as s, DEV_INBOX_ACK_HEADER as t, DEV_INBOX_TOKEN_QUERY as u, parseCapturedMessage as v, serializeCapturedMessage as x, pushToDevBuffer as y };
|
|
@@ -25,12 +25,11 @@ function discoverSchema(root, paths = readProjectPaths(root)) {
|
|
|
25
25
|
return null;
|
|
26
26
|
}
|
|
27
27
|
/**
|
|
28
|
-
* Resolve the schema specifier for Drizzle Kit config.
|
|
28
|
+
* Resolve the root-relative schema specifier for Drizzle Kit config.
|
|
29
29
|
* - File: `"./db/schema.ts"`
|
|
30
30
|
* - Directory: `"./db/schema/*.ts"`
|
|
31
31
|
*/
|
|
32
32
|
function schemaSpecifier(location, root) {
|
|
33
|
-
if (!root) return location.type === "file" ? "./db/schema.ts" : "./db/schema/*.ts";
|
|
34
33
|
const rel = relative(root, location.path);
|
|
35
34
|
return location.type === "file" ? `./${rel}` : `./${rel}/*.ts`;
|
|
36
35
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { K as select, L as log, X as text, tt as isCancel } from "./
|
|
1
|
+
import { K as select, L as log, X as text, tt as isCancel } from "./dist-D3m88sjf.mjs";
|
|
2
2
|
export { isCancel, log, select, text };
|
|
@@ -93,7 +93,7 @@ function encode(decoded) {
|
|
|
93
93
|
return writer.flush();
|
|
94
94
|
}
|
|
95
95
|
//#endregion
|
|
96
|
-
//#region ../../node_modules/.pnpm/magic-string@1.4.
|
|
96
|
+
//#region ../../node_modules/.pnpm/magic-string@1.4.3/node_modules/magic-string/dist/index.mjs
|
|
97
97
|
var BitSet = class BitSet {
|
|
98
98
|
constructor(arg) {
|
|
99
99
|
this.bits = arg instanceof BitSet ? arg.bits.slice() : [];
|
|
@@ -1102,7 +1102,7 @@ var MagicString = class MagicString {
|
|
|
1102
1102
|
while (chunk !== last) {
|
|
1103
1103
|
if (chunk.next !== this.byStart.get(chunk.end)) throw new MagicStringError("cannot overwrite across a split point");
|
|
1104
1104
|
chunk = chunk.next;
|
|
1105
|
-
chunk.edit("", false);
|
|
1105
|
+
chunk.edit("", false, !overwrite);
|
|
1106
1106
|
}
|
|
1107
1107
|
first.edit(content, storeName, !overwrite);
|
|
1108
1108
|
} else {
|
|
@@ -1456,8 +1456,8 @@ var MagicString = class MagicString {
|
|
|
1456
1456
|
if (this._hasRemovedContent(match.index, match.index + match[0].length)) return false;
|
|
1457
1457
|
const replacement = getReplacement(match, this.original);
|
|
1458
1458
|
if (replacement === match[0]) return true;
|
|
1459
|
-
if (match[0].length === 0) this.appendRight(match.index, replacement);
|
|
1460
|
-
else this.overwrite(match.index, match.index + match[0].length, replacement);
|
|
1459
|
+
if (match[0].length === 0) this.appendRight(match.index - this.offset, replacement);
|
|
1460
|
+
else this.overwrite(match.index - this.offset, match.index + match[0].length - this.offset, replacement);
|
|
1461
1461
|
return true;
|
|
1462
1462
|
};
|
|
1463
1463
|
if (searchValue.global) {
|
|
@@ -1484,8 +1484,8 @@ var MagicString = class MagicString {
|
|
|
1484
1484
|
if (typeof replacement === "function") replacement = replacement(string, index, original);
|
|
1485
1485
|
else replacement = expandReplacement(replacement, string, index, original, [], void 0);
|
|
1486
1486
|
if (string !== replacement) {
|
|
1487
|
-
if (string.length === 0) this.appendRight(index, replacement);
|
|
1488
|
-
else this.overwrite(index, index + string.length, replacement);
|
|
1487
|
+
if (string.length === 0) this.appendRight(index - this.offset, replacement);
|
|
1488
|
+
else this.overwrite(index - this.offset, index + string.length - this.offset, replacement);
|
|
1489
1489
|
}
|
|
1490
1490
|
break;
|
|
1491
1491
|
}
|
|
@@ -1506,7 +1506,7 @@ var MagicString = class MagicString {
|
|
|
1506
1506
|
for (let index = 0; index <= original.length; index += 1) {
|
|
1507
1507
|
if (this._hasRemovedContent(index, index)) continue;
|
|
1508
1508
|
const _replacement = typeof replacement === "function" ? replacement("", index, original) : expandReplacement(replacement, "", index, original, [], void 0);
|
|
1509
|
-
if (_replacement !== "") this.appendRight(index, _replacement);
|
|
1509
|
+
if (_replacement !== "") this.appendRight(index - this.offset, _replacement);
|
|
1510
1510
|
}
|
|
1511
1511
|
return this;
|
|
1512
1512
|
}
|
|
@@ -1514,7 +1514,7 @@ var MagicString = class MagicString {
|
|
|
1514
1514
|
if (this._hasRemovedContent(index, index + stringLength)) continue;
|
|
1515
1515
|
const previous = original.slice(index, index + stringLength);
|
|
1516
1516
|
const _replacement = typeof replacement === "function" ? replacement(previous, index, original) : expandReplacement(replacement, previous, index, original, [], void 0);
|
|
1517
|
-
if (previous !== _replacement) this.overwrite(index, index + stringLength, _replacement);
|
|
1517
|
+
if (previous !== _replacement) this.overwrite(index - this.offset, index + stringLength - this.offset, _replacement);
|
|
1518
1518
|
}
|
|
1519
1519
|
return this;
|
|
1520
1520
|
}
|
|
@@ -125,8 +125,8 @@ const fastStringWidth$2 = (input, options = {}) => {
|
|
|
125
125
|
};
|
|
126
126
|
//#endregion
|
|
127
127
|
//#region ../../node_modules/.pnpm/fast-wrap-ansi@0.2.2/node_modules/fast-wrap-ansi/lib/main.js
|
|
128
|
-
const ESC$
|
|
129
|
-
const CSI$
|
|
128
|
+
const ESC$1 = "\x1B";
|
|
129
|
+
const CSI$1 = "";
|
|
130
130
|
const END_CODE$1 = 39;
|
|
131
131
|
const ANSI_ESCAPE_BELL$1 = "\x07";
|
|
132
132
|
const ANSI_CSI$1 = "[";
|
|
@@ -147,8 +147,8 @@ const getClosingCode$1 = (openingCode) => {
|
|
|
147
147
|
if (openingCode === 9) return 29;
|
|
148
148
|
if (openingCode === 0) return 0;
|
|
149
149
|
};
|
|
150
|
-
const wrapAnsiCode$1 = (code) => `${ESC$
|
|
151
|
-
const wrapAnsiHyperlink$1 = (url) => `${ESC$
|
|
150
|
+
const wrapAnsiCode$1 = (code) => `${ESC$1}${ANSI_CSI$1}${code}${ANSI_SGR_TERMINATOR$1}`;
|
|
151
|
+
const wrapAnsiHyperlink$1 = (url) => `${ESC$1}${ANSI_ESCAPE_LINK$1}${url}${ANSI_ESCAPE_BELL$1}`;
|
|
152
152
|
const wrapWord$1 = (rows, word, columns) => {
|
|
153
153
|
const characters = word[Symbol.iterator]();
|
|
154
154
|
let isInsideEscape = false;
|
|
@@ -166,7 +166,7 @@ const wrapWord$1 = (rows, word, columns) => {
|
|
|
166
166
|
rows.push(character);
|
|
167
167
|
visible = 0;
|
|
168
168
|
}
|
|
169
|
-
if (character === ESC$
|
|
169
|
+
if (character === ESC$1 || character === CSI$1) {
|
|
170
170
|
isInsideEscape = true;
|
|
171
171
|
isInsideLinkEscape = word.startsWith(ANSI_ESCAPE_LINK$1, rawCharacterIndex + 1);
|
|
172
172
|
}
|
|
@@ -265,7 +265,7 @@ const exec$1 = (string, columns, options = {}) => {
|
|
|
265
265
|
inSurrogate = character >= "\ud800" && character <= "\udbff";
|
|
266
266
|
if (inSurrogate) continue;
|
|
267
267
|
} else inSurrogate = false;
|
|
268
|
-
if (character === ESC$
|
|
268
|
+
if (character === ESC$1 || character === CSI$1) {
|
|
269
269
|
GROUP_REGEX$1.lastIndex = i + 1;
|
|
270
270
|
const groups = GROUP_REGEX$1.exec(preString)?.groups;
|
|
271
271
|
if (groups?.code !== void 0) {
|
|
@@ -803,51 +803,8 @@ var n = class extends y {
|
|
|
803
803
|
}
|
|
804
804
|
};
|
|
805
805
|
//#endregion
|
|
806
|
-
//#region ../../node_modules/.pnpm
|
|
806
|
+
//#region ../../node_modules/.pnpm/@voidzero-dev+vite-plus-prompts@1.1.0_patch_hash=396e9a3b8f1c6fa1cbcbc9cef53b838feb28dc9dc7dd99b67d87c108854bc49a/node_modules/@voidzero-dev/vite-plus-prompts/dist/index.mjs
|
|
807
807
|
var import_picocolors = /* @__PURE__ */ __toESM(require_picocolors(), 1);
|
|
808
|
-
const ESC$1 = "\x1B";
|
|
809
|
-
const CSI$1 = `${ESC$1}[`;
|
|
810
|
-
const cursor = {
|
|
811
|
-
to(x, y) {
|
|
812
|
-
if (!y) return `${CSI$1}${x + 1}G`;
|
|
813
|
-
return `${CSI$1}${y + 1};${x + 1}H`;
|
|
814
|
-
},
|
|
815
|
-
move(x, y) {
|
|
816
|
-
let ret = "";
|
|
817
|
-
if (x < 0) ret += `${CSI$1}${-x}D`;
|
|
818
|
-
else if (x > 0) ret += `${CSI$1}${x}C`;
|
|
819
|
-
if (y < 0) ret += `${CSI$1}${-y}A`;
|
|
820
|
-
else if (y > 0) ret += `${CSI$1}${y}B`;
|
|
821
|
-
return ret;
|
|
822
|
-
},
|
|
823
|
-
up: (count = 1) => `${CSI$1}${count}A`,
|
|
824
|
-
down: (count = 1) => `${CSI$1}${count}B`,
|
|
825
|
-
forward: (count = 1) => `${CSI$1}${count}C`,
|
|
826
|
-
backward: (count = 1) => `${CSI$1}${count}D`,
|
|
827
|
-
nextLine: (count = 1) => `${CSI$1}E`.repeat(count),
|
|
828
|
-
prevLine: (count = 1) => `${CSI$1}F`.repeat(count),
|
|
829
|
-
left: `${CSI$1}G`,
|
|
830
|
-
hide: `${CSI$1}?25l`,
|
|
831
|
-
show: `${CSI$1}?25h`,
|
|
832
|
-
save: `${ESC$1}7`,
|
|
833
|
-
restore: `${ESC$1}8`
|
|
834
|
-
};
|
|
835
|
-
const erase = {
|
|
836
|
-
screen: `${CSI$1}2J`,
|
|
837
|
-
up: (count = 1) => `${CSI$1}1J`.repeat(count),
|
|
838
|
-
down: (count = 1) => `${CSI$1}J`.repeat(count),
|
|
839
|
-
line: `${CSI$1}2K`,
|
|
840
|
-
lineEnd: `${CSI$1}K`,
|
|
841
|
-
lineStart: `${CSI$1}1K`,
|
|
842
|
-
lines(count) {
|
|
843
|
-
let clear = "";
|
|
844
|
-
for (let i = 0; i < count; i++) clear += this.line + (i < count - 1 ? cursor.up() : "");
|
|
845
|
-
if (count) clear += cursor.left;
|
|
846
|
-
return clear;
|
|
847
|
-
}
|
|
848
|
-
};
|
|
849
|
-
//#endregion
|
|
850
|
-
//#region ../prompts/index.mjs
|
|
851
808
|
const isAmbiguous = (x) => {
|
|
852
809
|
return x === 161 || x === 164 || x === 167 || x === 168 || x === 170 || x === 173 || x === 174 || x >= 176 && x <= 180 || x >= 182 && x <= 186 || x >= 188 && x <= 191 || x === 198 || x === 208 || x === 215 || x === 216 || x >= 222 && x <= 225 || x === 230 || x >= 232 && x <= 234 || x === 236 || x === 237 || x === 240 || x === 242 || x === 243 || x >= 247 && x <= 250 || x === 252 || x === 254 || x === 257 || x === 273 || x === 275 || x === 283 || x === 294 || x === 295 || x === 299 || x >= 305 && x <= 307 || x === 312 || x >= 319 && x <= 322 || x === 324 || x >= 328 && x <= 331 || x === 333 || x === 338 || x === 339 || x === 358 || x === 359 || x === 363 || x === 462 || x === 464 || x === 466 || x === 468 || x === 470 || x === 472 || x === 474 || x === 476 || x === 593 || x === 609 || x === 708 || x === 711 || x >= 713 && x <= 715 || x === 717 || x === 720 || x >= 728 && x <= 731 || x === 733 || x === 735 || x >= 768 && x <= 879 || x >= 913 && x <= 929 || x >= 931 && x <= 937 || x >= 945 && x <= 961 || x >= 963 && x <= 969 || x === 1025 || x >= 1040 && x <= 1103 || x === 1105 || x === 8208 || x >= 8211 && x <= 8214 || x === 8216 || x === 8217 || x === 8220 || x === 8221 || x >= 8224 && x <= 8226 || x >= 8228 && x <= 8231 || x === 8240 || x === 8242 || x === 8243 || x === 8245 || x === 8251 || x === 8254 || x === 8308 || x === 8319 || x >= 8321 && x <= 8324 || x === 8364 || x === 8451 || x === 8453 || x === 8457 || x === 8467 || x === 8470 || x === 8481 || x === 8482 || x === 8486 || x === 8491 || x === 8531 || x === 8532 || x >= 8539 && x <= 8542 || x >= 8544 && x <= 8555 || x >= 8560 && x <= 8569 || x === 8585 || x >= 8592 && x <= 8601 || x === 8632 || x === 8633 || x === 8658 || x === 8660 || x === 8679 || x === 8704 || x === 8706 || x === 8707 || x === 8711 || x === 8712 || x === 8715 || x === 8719 || x === 8721 || x === 8725 || x === 8730 || x >= 8733 && x <= 8736 || x === 8739 || x === 8741 || x >= 8743 && x <= 8748 || x === 8750 || x >= 8756 && x <= 8759 || x === 8764 || x === 8765 || x === 8776 || x === 8780 || x === 8786 || x === 8800 || x === 8801 || x >= 8804 && x <= 8807 || x === 8810 || x === 8811 || x === 8814 || x === 8815 || x === 8834 || x === 8835 || x === 8838 || x === 8839 || x === 8853 || x === 8857 || x === 8869 || x === 8895 || x === 8978 || x >= 9312 && x <= 9449 || x >= 9451 && x <= 9547 || x >= 9552 && x <= 9587 || x >= 9600 && x <= 9615 || x >= 9618 && x <= 9621 || x === 9632 || x === 9633 || x >= 9635 && x <= 9641 || x === 9650 || x === 9651 || x === 9654 || x === 9655 || x === 9660 || x === 9661 || x === 9664 || x === 9665 || x >= 9670 && x <= 9672 || x === 9675 || x >= 9678 && x <= 9681 || x >= 9698 && x <= 9701 || x === 9711 || x === 9733 || x === 9734 || x === 9737 || x === 9742 || x === 9743 || x === 9756 || x === 9758 || x === 9792 || x === 9794 || x === 9824 || x === 9825 || x >= 9827 && x <= 9829 || x >= 9831 && x <= 9834 || x === 9836 || x === 9837 || x === 9839 || x === 9886 || x === 9887 || x === 9919 || x >= 9926 && x <= 9933 || x >= 9935 && x <= 9939 || x >= 9941 && x <= 9953 || x === 9955 || x === 9960 || x === 9961 || x >= 9963 && x <= 9969 || x === 9972 || x >= 9974 && x <= 9977 || x === 9979 || x === 9980 || x === 9982 || x === 9983 || x === 10045 || x >= 10102 && x <= 10111 || x >= 11094 && x <= 11097 || x >= 12872 && x <= 12879 || x >= 57344 && x <= 63743 || x >= 65024 && x <= 65039 || x === 65533 || x >= 127232 && x <= 127242 || x >= 127248 && x <= 127277 || x >= 127280 && x <= 127337 || x >= 127344 && x <= 127373 || x === 127375 || x === 127376 || x >= 127387 && x <= 127404 || x >= 917760 && x <= 917999 || x >= 983040 && x <= 1048573 || x >= 1048576 && x <= 1114109;
|
|
853
810
|
};
|
|
@@ -1885,9 +1842,9 @@ const spinner = ({ indicator = "dots", onCancel, output = process.stdout, cancel
|
|
|
1885
1842
|
hard: true,
|
|
1886
1843
|
trim: false
|
|
1887
1844
|
}).split("\n");
|
|
1888
|
-
if (prevLines.length > 1) output.write(cursor.up(prevLines.length - 1));
|
|
1889
|
-
output.write(cursor.to(0));
|
|
1890
|
-
output.write(erase.down());
|
|
1845
|
+
if (prevLines.length > 1) output.write(import_src.cursor.up(prevLines.length - 1));
|
|
1846
|
+
output.write(import_src.cursor.to(0));
|
|
1847
|
+
output.write(import_src.erase.down());
|
|
1891
1848
|
};
|
|
1892
1849
|
const hasGuide = getGuide(opts);
|
|
1893
1850
|
const startLoop = () => {
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { n as readDeploymentPlatform, r as readProjectConfig } from "./project-DQstYTxO.mjs";
|
|
2
|
-
import { c as getToken } from "./auth-
|
|
3
|
-
import { L as log } from "./
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
2
|
+
import { c as getToken } from "./auth-B5_tZLxT.mjs";
|
|
3
|
+
import { L as log } from "./dist-D3m88sjf.mjs";
|
|
4
|
+
import { d as printSuccess, l as import_picocolors, u as note } from "./output-C50ag2r3.mjs";
|
|
5
|
+
import { r as PlatformClient } from "./client-C2Prx_Bi.mjs";
|
|
6
6
|
//#region src/cli/domain.ts
|
|
7
7
|
async function runDomainCommand(root, args) {
|
|
8
8
|
const platform = readDeploymentPlatform(root);
|
|
@@ -40,15 +40,16 @@ async function runDomainCommand(root, args) {
|
|
|
40
40
|
}
|
|
41
41
|
async function runCloudflareDomainCommand(root, args) {
|
|
42
42
|
if (args.projectSlug) throw new Error("domain: --project selects a Void platform project and is not used for direct Cloudflare apps.");
|
|
43
|
-
const { changeCloudflareDomain, listCloudflareDomains } = await import("./cloudflare-operations-
|
|
43
|
+
const { changeCloudflareDomain, listCloudflareDomains } = await import("./cloudflare-operations-BlYLlowZ.mjs");
|
|
44
44
|
if (args.subcommand === "add") {
|
|
45
45
|
const result = await changeCloudflareDomain(root, args.hostname, "add");
|
|
46
|
-
log.success(result.modified ? `Domain ${args.hostname} added and activated on Cloudflare.` : `Domain ${args.hostname} is already configured.`);
|
|
47
46
|
note("Cloudflare Custom Domains manages the DNS record and TLS certificate in the zone on your account.", "Cloudflare Domain");
|
|
47
|
+
if (result.modified) printSuccess(`Domain ${args.hostname} added and activated on Cloudflare.`);
|
|
48
|
+
else log.info(`Domain ${args.hostname} is already configured.`);
|
|
48
49
|
return;
|
|
49
50
|
}
|
|
50
51
|
if (args.subcommand === "delete") {
|
|
51
|
-
if ((await changeCloudflareDomain(root, args.hostname, "delete")).modified)
|
|
52
|
+
if ((await changeCloudflareDomain(root, args.hostname, "delete")).modified) printSuccess(`Domain ${args.hostname} removed from Cloudflare.`);
|
|
52
53
|
else log.info(`Domain ${args.hostname} is not configured.`);
|
|
53
54
|
return;
|
|
54
55
|
}
|
|
@@ -72,25 +73,17 @@ async function runCloudflareDomainCommand(root, args) {
|
|
|
72
73
|
}
|
|
73
74
|
async function domainAdd(client, projectId, hostname) {
|
|
74
75
|
const domain = await client.addDomain(projectId, hostname);
|
|
75
|
-
|
|
76
|
-
let cnameSection;
|
|
77
|
-
let ownershipSection;
|
|
78
|
-
if (domain.cname_target) cnameSection = `CNAME (traffic)\n ${hostname} → ${domain.cname_target}`;
|
|
79
|
-
if (domain.ownership_verification) ownershipSection = `TXT (ownership verification)\n ${domain.ownership_verification.name} → ${domain.ownership_verification.value}`;
|
|
80
|
-
const recordSections = [cnameSection, ownershipSection].filter((s) => s !== void 0);
|
|
76
|
+
const recordSections = [domain.cname_target ? cnameRecord(hostname, domain.cname_target) : void 0, domain.ownership_verification ? ownershipRecord(domain.ownership_verification) : void 0].filter((s) => s !== void 0);
|
|
81
77
|
if (recordSections.length > 0) {
|
|
82
78
|
const summary = `Add ${recordSections.length === 1 ? "the record above" : "the records above"} to your DNS, then run \`void domain status ${hostname}\` to check progress.`;
|
|
83
79
|
note([...recordSections, summary].join("\n\n"), "DNS Setup");
|
|
84
80
|
}
|
|
81
|
+
printSuccess(`Domain ${hostname} added (status: ${domain.status}).`);
|
|
85
82
|
}
|
|
86
83
|
async function domainRemove(client, projectId, hostname) {
|
|
87
|
-
const domain =
|
|
88
|
-
if (!domain) {
|
|
89
|
-
log.error(`domain: Domain '${hostname}' not found on this project.`);
|
|
90
|
-
process.exit(1);
|
|
91
|
-
}
|
|
84
|
+
const domain = await findProjectDomain(client, projectId, hostname);
|
|
92
85
|
await client.removeDomain(projectId, domain.id);
|
|
93
|
-
|
|
86
|
+
printSuccess(`Domain ${hostname} removed.`);
|
|
94
87
|
}
|
|
95
88
|
async function domainList(client, projectId) {
|
|
96
89
|
const domains = await client.listDomains(projectId);
|
|
@@ -139,11 +132,7 @@ function computeRollup(status) {
|
|
|
139
132
|
};
|
|
140
133
|
}
|
|
141
134
|
async function domainStatus(client, projectId, hostname, verbose) {
|
|
142
|
-
const domain =
|
|
143
|
-
if (!domain) {
|
|
144
|
-
log.error(`domain: Domain '${hostname}' not found on this project.`);
|
|
145
|
-
process.exit(1);
|
|
146
|
-
}
|
|
135
|
+
const domain = await findProjectDomain(client, projectId, hostname);
|
|
147
136
|
const status = await client.getDomainStatus(projectId, domain.id);
|
|
148
137
|
const rollup = computeRollup(status);
|
|
149
138
|
const rollupLines = [`Hostname: ${status.hostname}`, `Status: ${rollup.state} — ${rollup.diagnostic}`];
|
|
@@ -155,12 +144,22 @@ async function domainStatus(client, projectId, hostname, verbose) {
|
|
|
155
144
|
if (status.verification_errors && status.verification_errors.length > 0) rollupLines.push(` Errors: ${status.verification_errors.join(", ")}`);
|
|
156
145
|
}
|
|
157
146
|
note(rollupLines.join("\n"), "Domain Status");
|
|
158
|
-
|
|
159
|
-
let ownershipSection;
|
|
160
|
-
if (status.ssl_status !== "active") cnameSection = `CNAME (traffic)\n ${status.hostname} → ${status.cname_target}`;
|
|
161
|
-
if (status.ownership_verification) ownershipSection = `TXT (ownership verification)\n ${status.ownership_verification.name} → ${status.ownership_verification.value}`;
|
|
162
|
-
const pendingRecords = [cnameSection, ownershipSection].filter((s) => s !== void 0);
|
|
147
|
+
const pendingRecords = [status.ssl_status !== "active" ? cnameRecord(status.hostname, status.cname_target) : void 0, status.ownership_verification ? ownershipRecord(status.ownership_verification) : void 0].filter((s) => s !== void 0);
|
|
163
148
|
if (pendingRecords.length > 0) note(pendingRecords.join("\n\n"), pendingRecords.length === 1 ? "Add this DNS record to your provider" : "Add these DNS records to your provider");
|
|
164
149
|
}
|
|
150
|
+
async function findProjectDomain(client, projectId, hostname) {
|
|
151
|
+
const domain = (await client.listDomains(projectId)).find((d) => d.hostname === hostname);
|
|
152
|
+
if (!domain) {
|
|
153
|
+
log.error(`domain: Domain '${hostname}' not found on this project.`);
|
|
154
|
+
process.exit(1);
|
|
155
|
+
}
|
|
156
|
+
return domain;
|
|
157
|
+
}
|
|
158
|
+
function cnameRecord(hostname, target) {
|
|
159
|
+
return `CNAME (traffic)\n ${hostname} → ${target}`;
|
|
160
|
+
}
|
|
161
|
+
function ownershipRecord(record) {
|
|
162
|
+
return `TXT (ownership verification)\n ${record.name} → ${record.value}`;
|
|
163
|
+
}
|
|
165
164
|
//#endregion
|
|
166
165
|
export { runDomainCommand };
|
|
@@ -1,9 +1,15 @@
|
|
|
1
1
|
import { existsSync, readFileSync } from "node:fs";
|
|
2
|
+
import { parseEnv } from "node:util";
|
|
2
3
|
//#region src/shared/dotenv.ts
|
|
3
4
|
/**
|
|
4
|
-
* Shared dotenv parser + variable expander used by local `.env` consumers
|
|
5
|
-
*
|
|
6
|
-
*
|
|
5
|
+
* Shared dotenv parser + variable expander used by local `.env` consumers.
|
|
6
|
+
*
|
|
7
|
+
* Grammar: lines and values follow Vite's parser (`node:util` `parseEnv`).
|
|
8
|
+
* Wrangler's dotenv (the dev Worker) agrees with it on inline `#` comments,
|
|
9
|
+
* single, double and backtick quotes, `\n` in double quotes, multi-line
|
|
10
|
+
* quoted values and the `export ` prefix. Keys that are not plain
|
|
11
|
+
* identifiers (`A.B`, `A-B`, `export\tA`) are skipped, and `KEY: value`
|
|
12
|
+
* is not read: Wrangler accepts it but Vite does not.
|
|
7
13
|
*
|
|
8
14
|
* Expansion supports `${VAR}` and `$VAR`, a `\$VAR` literal-escape, and
|
|
9
15
|
* transitive references across earlier entries in the same record. Cycles
|
|
@@ -22,38 +28,19 @@ import { existsSync, readFileSync } from "node:fs";
|
|
|
22
28
|
/** Valid dotenv key — ASCII letter/underscore followed by letters/digits/underscore. */
|
|
23
29
|
const VALID_KEY = /^[A-Za-z_][A-Za-z0-9_]*$/;
|
|
24
30
|
/**
|
|
25
|
-
* Parse a single `KEY=VALUE` line into `{ key, value }`, stripping matching
|
|
26
|
-
* single/double quotes around the value. Returns `null` for blanks, comments,
|
|
27
|
-
* and non-assignment lines.
|
|
28
|
-
*/
|
|
29
|
-
function parseDotenvLine(line) {
|
|
30
|
-
const trimmed = line.trim();
|
|
31
|
-
if (!trimmed || trimmed.startsWith("#")) return null;
|
|
32
|
-
const equalsIndex = trimmed.indexOf("=");
|
|
33
|
-
if (equalsIndex === -1) return null;
|
|
34
|
-
const key = trimmed.slice(0, equalsIndex).trim();
|
|
35
|
-
let value = trimmed.slice(equalsIndex + 1).trim();
|
|
36
|
-
if (value.startsWith("\"") && value.endsWith("\"") || value.startsWith("'") && value.endsWith("'")) value = value.slice(1, -1);
|
|
37
|
-
return {
|
|
38
|
-
key,
|
|
39
|
-
value
|
|
40
|
-
};
|
|
41
|
-
}
|
|
42
|
-
/**
|
|
43
31
|
* Parse the raw contents of a dotenv file into a record, optionally
|
|
44
32
|
* expanding `${VAR}` / `$VAR` references against earlier entries.
|
|
45
33
|
*/
|
|
46
34
|
function parseDotenv(content, options = {}) {
|
|
47
35
|
const { expand: shouldExpand = true, skipInvalidKeys = true, onWarn } = options;
|
|
48
36
|
const env = {};
|
|
49
|
-
for (const
|
|
50
|
-
|
|
51
|
-
if (!
|
|
52
|
-
if (!VALID_KEY.test(parsed.key)) {
|
|
37
|
+
for (const [key, value] of Object.entries(parseEnv(content))) {
|
|
38
|
+
if (value === void 0) continue;
|
|
39
|
+
if (!VALID_KEY.test(key)) {
|
|
53
40
|
if (skipInvalidKeys) continue;
|
|
54
|
-
throw new Error(`dotenv: Invalid key '${
|
|
41
|
+
throw new Error(`dotenv: Invalid key '${key}'.`);
|
|
55
42
|
}
|
|
56
|
-
env[
|
|
43
|
+
env[key] = value;
|
|
57
44
|
}
|
|
58
45
|
return shouldExpand ? expandDotenv(env, { onWarn }) : env;
|
|
59
46
|
}
|
|
@@ -152,10 +139,11 @@ function expandValue(value, resolve) {
|
|
|
152
139
|
return result;
|
|
153
140
|
}
|
|
154
141
|
/**
|
|
155
|
-
* Wrangler
|
|
156
|
-
* declared KEYS wrangler would load — including the OPTIONAL `export `
|
|
157
|
-
* form, and single/double/backtick quoting — so a transport-redirect /
|
|
158
|
-
*
|
|
142
|
+
* Wrangler's bundled `dotenv` LINE regex (verbatim; checked against wrangler 4.147), used
|
|
143
|
+
* ONLY to detect the declared KEYS wrangler would load — including the OPTIONAL `export `
|
|
144
|
+
* prefix, the `KEY: val` form, and single/double/backtick quoting — so a transport-redirect /
|
|
145
|
+
* config-override fence and the reserved `__VOID_` name check see exactly what wrangler's
|
|
146
|
+
* dotenv load would. We read keys, never values.
|
|
159
147
|
*/
|
|
160
148
|
const WRANGLER_DOTENV_LINE = /(?:^|^)\s*(?:export\s+)?([\w.-]+)(?:\s*=\s*?|:\s+?)(\s*'(?:\\'|[^'])*'|\s*"(?:\\"|[^"])*"|\s*`(?:\\`|[^`])*`|[^#\r\n]+)?\s*(?:#.*)?(?:$|$)/gm;
|
|
161
149
|
/**
|
|
@@ -178,4 +166,4 @@ function scanWranglerDotenvKeys(filePath) {
|
|
|
178
166
|
return keys;
|
|
179
167
|
}
|
|
180
168
|
//#endregion
|
|
181
|
-
export {
|
|
169
|
+
export { scanWranglerDotenvKeys as n, parseDotenvFile as t };
|
|
@@ -1,7 +1,10 @@
|
|
|
1
|
-
import { a as isVoidSocialAuthProvider } from "./providers-
|
|
1
|
+
import { a as isVoidSocialAuthProvider } from "./providers-BXuhmuub.mjs";
|
|
2
2
|
import { getAuthTables, getSchema } from "better-auth/db";
|
|
3
3
|
//#region src/auth/drizzle.ts
|
|
4
4
|
const DEFAULT_TABLE_ORDER = Number.MAX_SAFE_INTEGER;
|
|
5
|
+
function compareTableOrder([, left], [, right]) {
|
|
6
|
+
return (left.order ?? DEFAULT_TABLE_ORDER) - (right.order ?? DEFAULT_TABLE_ORDER);
|
|
7
|
+
}
|
|
5
8
|
function resolveEmailAndPassword(configuredProviders) {
|
|
6
9
|
if (!configuredProviders || configuredProviders.includes("email")) return { enabled: true };
|
|
7
10
|
}
|
|
@@ -102,7 +105,6 @@ function createColumnBuilder(dialect, idStrategy, defaultModelName, defaultField
|
|
|
102
105
|
case "boolean": return `boolean(${JSON.stringify(fieldName)})`;
|
|
103
106
|
case "date": return `timestamp(${JSON.stringify(fieldName)}, { mode: "date", withTimezone: true })`;
|
|
104
107
|
case "number": return field.bigint ? `bigint(${JSON.stringify(fieldName)}, { mode: "number" })` : `integer(${JSON.stringify(fieldName)})`;
|
|
105
|
-
case "string": return `text(${JSON.stringify(fieldName)})`;
|
|
106
108
|
default: return `text(${JSON.stringify(fieldName)})`;
|
|
107
109
|
}
|
|
108
110
|
}
|
|
@@ -116,7 +118,6 @@ function createColumnBuilder(dialect, idStrategy, defaultModelName, defaultField
|
|
|
116
118
|
case "boolean": return `integer(${JSON.stringify(fieldName)}, { mode: "boolean" })`;
|
|
117
119
|
case "date": return `integer(${JSON.stringify(fieldName)}, { mode: "timestamp_ms" })`;
|
|
118
120
|
case "number": return `integer(${JSON.stringify(fieldName)})`;
|
|
119
|
-
case "string": return `text(${JSON.stringify(fieldName)})`;
|
|
120
121
|
default: return `text(${JSON.stringify(fieldName)})`;
|
|
121
122
|
}
|
|
122
123
|
}
|
|
@@ -159,11 +160,11 @@ function collectCoreImports(dialect, schema, idStrategy) {
|
|
|
159
160
|
continue;
|
|
160
161
|
}
|
|
161
162
|
if (field.type === "boolean") {
|
|
162
|
-
imports.add(dialect === "
|
|
163
|
+
imports.add(dialect === "sqlite" ? "integer" : "boolean");
|
|
163
164
|
continue;
|
|
164
165
|
}
|
|
165
166
|
if (field.type === "date") {
|
|
166
|
-
imports.add(dialect === "
|
|
167
|
+
imports.add(dialect === "sqlite" ? "integer" : "timestamp");
|
|
167
168
|
continue;
|
|
168
169
|
}
|
|
169
170
|
if (field.type === "number") {
|
|
@@ -179,7 +180,7 @@ function generateVoidAuthDrizzleSchema(runtime, env = {}) {
|
|
|
179
180
|
const migrationSchema = resolveVoidAuthMigrationSchema(runtime, env);
|
|
180
181
|
const idStrategy = resolveIdStrategy(options);
|
|
181
182
|
const defaultToVariable = /* @__PURE__ */ new Map();
|
|
182
|
-
const entries = Object.entries(schema).sort(
|
|
183
|
+
const entries = Object.entries(schema).sort(compareTableOrder);
|
|
183
184
|
for (const [defaultModelName] of entries) defaultToVariable.set(defaultModelName, `${sanitizeIdentifier(defaultModelName)}Table`);
|
|
184
185
|
const tableFactory = runtime.dialect === "postgresql" ? "pgTable" : runtime.dialect === "mysql" ? "mysqlTable" : "sqliteTable";
|
|
185
186
|
const importPath = runtime.dialect === "postgresql" ? "void/schema-pg" : runtime.dialect === "mysql" ? "void/schema-mysql" : "void/schema-d1";
|
|
@@ -199,12 +200,14 @@ function generateVoidAuthDrizzleSchema(runtime, env = {}) {
|
|
|
199
200
|
return ` ${JSON.stringify(actualFieldName)}: ${createColumnDefinition(runtime.dialect, schema, idStrategy, defaultToVariable, defaultModelName, defaultFieldName, field)},`;
|
|
200
201
|
})];
|
|
201
202
|
const indexedFields = fieldEntries.filter(([, field]) => field.index && !field.unique);
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
203
|
+
lines.push(`export const ${variableName} = ${tableFactory}(${JSON.stringify(table.modelName)}, {`, ...renderedFields, ...indexedFields.length > 0 ? [
|
|
204
|
+
`}, (table) => [`,
|
|
205
|
+
...indexedFields.map(([defaultFieldName, field]) => {
|
|
206
|
+
const actualFieldName = resolveFieldName(defaultFieldName, field);
|
|
207
|
+
return ` index(${JSON.stringify(`${table.modelName}_${actualFieldName}_idx`)}).on(table[${JSON.stringify(actualFieldName)}]),`;
|
|
208
|
+
}),
|
|
209
|
+
`]);`
|
|
210
|
+
] : [`});`], "");
|
|
208
211
|
}
|
|
209
212
|
lines.push("export const schema = {");
|
|
210
213
|
for (const [defaultModelName] of entries) lines.push(` ${JSON.stringify(defaultModelName)}: ${defaultToVariable.get(defaultModelName)},`);
|
|
@@ -224,7 +227,7 @@ function resolveVoidAuthMigrationSchema(runtime, env = {}) {
|
|
|
224
227
|
return {
|
|
225
228
|
dialect: runtime.dialect,
|
|
226
229
|
idStrategy: resolveIdStrategy(options),
|
|
227
|
-
tables: Object.entries(schema).sort(
|
|
230
|
+
tables: Object.entries(schema).sort(compareTableOrder).map(([name, table]) => ({
|
|
228
231
|
name,
|
|
229
232
|
order: table.order ?? DEFAULT_TABLE_ORDER,
|
|
230
233
|
fields: Object.fromEntries(Object.entries(table.fields).map(([fieldName, field]) => [fieldName, {
|