void 0.27.0 → 0.28.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/README.md +3 -1
- package/dist/{account-cmd-l-FM7Ioq.mjs → account-cmd-Ci00cncT.mjs} +5 -5
- package/dist/{agents-B_pX_HmQ.mjs → agents-CuNtT0D_.mjs} +5 -2
- package/dist/{application-analysis-DKy02UY0.mjs → application-analysis-D72ZQfMZ.mjs} +118 -135
- package/dist/{application-routing-DQyUh_5S.mjs → application-routing-Dy589Vgn.mjs} +1 -2
- package/dist/atomic-write-Dq6R0BPN.mjs +18 -0
- package/dist/{auth-Dn2vw-SG.mjs → auth-B6iOCjKI.mjs} +23 -56
- package/dist/{auth-link-vz9Z2kmG.mjs → auth-link-DWr6Afao.mjs} +10 -10
- package/dist/{auth-migrations-BwHgeEsD.mjs → auth-migrations-Cgs0k6lS.mjs} +28 -5
- package/dist/{auth-router-DvsCUVw4.mjs → auth-router-DP14wVkZ.mjs} +4 -4
- package/dist/auth-wn6F8dB8.mjs +2 -0
- package/dist/base64-DVrOndmI.mjs +16 -0
- package/dist/{better-auth-shared-CPvWD3nG.d.mts → better-auth-shared-B74NJIus.d.mts} +8 -13
- package/dist/{better-auth-shared-DPpj8zxc.mjs → better-auth-shared-CMXlZG7W.mjs} +56 -68
- package/dist/{build-cmd-D6we0VjO.mjs → build-cmd-Cr3FJxv0.mjs} +5 -5
- package/dist/{cache-CZRdzKx1.mjs → cache-D0Tt28cn.mjs} +5 -5
- package/dist/{cancel-deploy-CQ3NnMvf.mjs → cancel-deploy-CJKvk7AN.mjs} +4 -4
- package/dist/{cf-access-TWNzXltp.mjs → cf-access-BM9G0lhO.mjs} +4 -3
- package/dist/{cf-access-BcIBSKqG.mjs → cf-access-CWP4avfP.mjs} +3 -7
- package/dist/cf-build-output-2u583yJK.mjs +2 -0
- package/dist/{cf-build-output-DjvB_872.mjs → cf-build-output-Bc8i3dzE.mjs} +2 -2
- package/dist/cf-user-agent-ChjQp2MU.mjs +33 -0
- package/dist/cli/cli.mjs +198 -311
- package/dist/cli/cloudflare-operation-process.mjs +41 -15
- package/dist/cli/env-schema-probe.d.mts +5 -43
- package/dist/cli/env-schema-probe.mjs +14 -80
- package/dist/client-C1BjRn3g.mjs +2 -0
- package/dist/{client-DlDJuY0s.mjs → client-DM9Kcf4e.mjs} +161 -415
- package/dist/{cloudflare-auth-CuxfF6OA.mjs → cloudflare-auth-CqFBDo52.mjs} +12 -39
- package/dist/{cloudflare-cmd-lHqNlJGW.mjs → cloudflare-cmd-CTrn-lXJ.mjs} +6 -5
- package/dist/{cloudflare-config-BmhBv3HV.mjs → cloudflare-config-DV60XFFK.mjs} +16 -28
- package/dist/{cloudflare-connect-2G3rL2rP.mjs → cloudflare-connect-BosmCNlq.mjs} +3 -3
- package/dist/{cloudflare-operations-CwI1bChl.mjs → cloudflare-operations-BKdSfNBN.mjs} +26 -34
- package/dist/{cloudflare-operations-BlYLlowZ.mjs → cloudflare-operations-Ds-lX3Ts.mjs} +1 -1
- package/dist/{cloudflare-process-2-TfIEzB.mjs → cloudflare-process-CeDWJRhj.mjs} +12 -7
- package/dist/collect-NUlJMpLY.mjs +2 -0
- package/dist/{collect-DiTn9yr6.mjs → collect-xjffdCdk.mjs} +1 -1
- package/dist/{config-CSa15FvD.d.mts → config-7qoq2p9v.d.mts} +2 -2
- package/dist/{config-CLYAosnQ.mjs → config-BEm9vRvS.mjs} +11 -5
- package/dist/{config-DiowPT80.mjs → config-Bx_1SpnO.mjs} +87 -177
- package/dist/config-CNnrSMYm.mjs +2 -0
- package/dist/{config-DPByhVck.mjs → config-D0GY5ItR.mjs} +1 -1
- package/dist/config-entry.d.mts +1 -1
- package/dist/{connect-BfPBHHm-.mjs → connect-nukQSoEO.mjs} +8 -8
- package/dist/{create-project-BdXEFKal.mjs → create-project-D4APeBwX.mjs} +7 -7
- package/dist/{create-project-qFDC45zg.mjs → create-project-DL7YXpjj.mjs} +1 -1
- package/dist/{db-Xs80hcaA.mjs → db-27RztQLy.mjs} +173 -263
- package/dist/{delete-d2vuou3j.mjs → delete-BbsZFZIw.mjs} +5 -5
- package/dist/deploy-B06EQq4t.mjs +6009 -0
- package/dist/deploy-Db2ALnQP.mjs +3 -0
- package/dist/deploy-managed-static-CGswbcay.mjs +2277 -0
- package/dist/deploy-transport-BiicfoQW.mjs +180 -0
- package/dist/deploy.d.mts +10 -0
- package/dist/deploy.mjs +82 -0
- package/dist/dev-inbox-Rd6j_8vM.mjs +217 -0
- package/dist/discover-CTUiSsfG.mjs +2 -0
- package/dist/{discover-CkCYv9T_.mjs → discover-D2PGT63u.mjs} +2 -2
- package/dist/{dist-BVqXeR_h.mjs → dist-ipQi0Q8y.mjs} +2 -3
- package/dist/{domain-BsDUBAvt.mjs → domain-Bfq9n03H.mjs} +7 -22
- package/dist/{dotenv-BfU6eqFt.mjs → dotenv-CNazY3-w.mjs} +4 -16
- package/dist/{email-d_Aux1vM.mjs → email-BcjSyAL0.mjs} +4 -20
- package/dist/{email-_lGAHOhp.mjs → email-DIwaQU4P.mjs} +99 -191
- package/dist/email-cloudflare-CH053RxK.mjs +1096 -0
- package/dist/email-protocol-D9nTvhCp.mjs +82 -0
- package/dist/{entry-CMAkqBmU.mjs → entry-ehmBvs5w.mjs} +2 -2
- package/dist/{env-BxocywBB.mjs → env-BJjULvL0.mjs} +2 -2
- package/dist/{env-DMA3cXZt.mjs → env-BhdWMrNy.mjs} +2 -13
- package/dist/{env-C74QepDE.mjs → env-C6ipBLp3.mjs} +8 -8
- package/dist/{env-public-DR7ZM6d-.d.mts → env-public-CCdykygU.d.mts} +6 -23
- package/dist/{env-raw-jZpP5n47.mjs → env-raw-Cklzcde3.mjs} +3 -20
- package/dist/{env-types-CwXgeMgL.mjs → env-types-DS2_y4X8.mjs} +2 -2
- package/dist/{env-validation-CrVNjsPm.mjs → env-validation-CTn-HhG1.mjs} +1 -1
- package/dist/env-validation-cE0zcmzO.mjs +486 -0
- package/dist/{gen-DtkQhvQg.mjs → gen-CnN1Xidx.mjs} +131 -253
- package/dist/gen-F8pSZnhc.mjs +2 -0
- package/dist/{generate-GDbL7sUr.mjs → generate-Dat0UTry.mjs} +38 -4
- package/dist/generate-Rii9klHB.mjs +2 -0
- package/dist/generated-wrangler-config-DeWj5F9Y.mjs +18 -0
- package/dist/{github-cmd-DaDdBbSS.mjs → github-cmd-BdkU4Nhe.mjs} +27 -71
- package/dist/{handler-BHAn2fZJ.mjs → handler-BZ1t7-Rv.mjs} +2 -2
- package/dist/{handler-CNAwjRcW.d.mts → handler-_PqY82xe.d.mts} +1 -1
- package/dist/{headers-DlfR78Nu.mjs → headers-Di1FsD3e.mjs} +26 -81
- package/dist/{help-0bTe_lID.mjs → help-Bug7pyK_.mjs} +18 -10
- package/dist/help-s9q7LTcu.mjs +2 -0
- package/dist/{inbound-PfQDLXc5.mjs → inbound-DmkTQeWp.mjs} +71 -222
- package/dist/{inbound-CH5Mksyy.d.mts → inbound-brj2-TM5.d.mts} +19 -58
- package/dist/index.d.mts +2 -18
- package/dist/index.mjs +200 -496
- package/dist/{info-PYWwkWyt.mjs → info-CujPwtMe.mjs} +5 -5
- package/dist/{init-DaBGmaXC.mjs → init-ZWOJvc-Z.mjs} +179 -388
- package/dist/isr-config-DPjXM8J2.mjs +194 -0
- package/dist/{link-C6fjafep.mjs → link-UEc7bnF4.mjs} +8 -8
- package/dist/{list-BTFBlqKl.mjs → list-CuWeOnzk.mjs} +6 -17
- package/dist/{live-CgQuTpqD.mjs → live-BxLX-JqJ.mjs} +19 -17
- package/dist/{live-Du8jXwOW.d.mts → live-DJONVlQK.d.mts} +1 -1
- package/dist/load-user-env-DD5qveNU.mjs +49 -0
- package/dist/{local-d1-ga5O_idV.mjs → local-d1-BM3p74mm.mjs} +6 -6
- package/dist/{login-GKcNUmtI.mjs → login-CZ2Cqa-D.mjs} +11 -11
- package/dist/login-DhK7o1oJ.mjs +2 -0
- package/dist/{logs-BiMSULmc.mjs → logs-TihRcLTk.mjs} +5 -5
- package/dist/migrate-BgT-hmu8.mjs +2 -0
- package/dist/{migrate-NLsjBbuM.mjs → migrate-uFwojusJ.mjs} +69 -21
- package/dist/migration-handler-Cg0Y4EPu.mjs +470 -0
- package/dist/{migration-handler-DM4clYj5.d.mts → migration-handler-CwlEQUoo.d.mts} +17 -26
- package/dist/{mime-DxCznlJq.mjs → mime-srOklVVv.mjs} +92 -395
- package/dist/{node-DJicPvPj.mjs → node-DoKbo1SZ.mjs} +8 -24
- package/dist/{operator-args-DOBhIaIg.mjs → operator-args-UnE8Y2eK.mjs} +27 -26
- package/dist/{operator-auth-BEZ_u0Cz.mjs → operator-auth-Cr2zCc-J.mjs} +2 -2
- package/dist/{operator-client-DbDv4vtE.mjs → operator-client-C-ROjk1I.mjs} +4 -4
- package/dist/{operator-cmd-BT4hgavL.mjs → operator-cmd-C5lCctnc.mjs} +8 -8
- package/dist/operator-cmd-Cjk5DiRx.mjs +2 -0
- package/dist/{output-C50ag2r3.mjs → output-FNHKw5Ac.mjs} +36 -5
- package/dist/{package-json-DXfiT1jV.mjs → package-json-BjYqR-So.mjs} +1 -1
- package/dist/pages/client.d.mts +1 -1
- package/dist/pages/client.mjs +91 -5
- package/dist/pages/index.d.mts +1 -2
- package/dist/pages/index.mjs +6 -6
- package/dist/pages/islands-plugin.mjs +5 -83
- package/dist/pages/protocol.d.mts +2 -2
- package/dist/pages/protocol.mjs +1 -1
- package/dist/pages/serialize.mjs +1 -1
- package/dist/{platform-args-DUeXY9Om.mjs → platform-args-C6Mb_I3a.mjs} +34 -58
- package/dist/platform-args-Cm7x-fot.mjs +2 -0
- package/dist/{platform-auth-config-CkSx3usH.mjs → platform-auth-config-CJmNkFT2.mjs} +10 -11
- package/dist/{platform-auth-protection-BJimB_p9.mjs → platform-auth-protection-D5wvsI-Y.mjs} +36 -26
- package/dist/{platform-auth-recovery-BU6izFAU.mjs → platform-auth-recovery-D_0I3n-1.mjs} +8 -9
- package/dist/{platform-cmd-BbmJiq5O.mjs → platform-cmd-Cuj4oUVo.mjs} +1 -1
- package/dist/{platform-cmd-BbY1dWiM.mjs → platform-cmd-DxxZO6e5.mjs} +15 -15
- package/dist/{platform-discovery-DIYz8V63.mjs → platform-discovery-CHhNs8Nn.mjs} +1 -1
- package/dist/{platform-domain-CHVS6cV0.mjs → platform-domain-zLXnW1G_.mjs} +5 -5
- package/dist/{platform-lifecycle-DzCwqhFq.mjs → platform-lifecycle-DOW-wLfx.mjs} +1398 -2043
- package/dist/{platform-lifecycle-ByAlpkhV.mjs → platform-lifecycle-_gfnjUBr.mjs} +1 -1
- package/dist/{platform-management-CBOT4BSM.mjs → platform-management-CYrLvTGH.mjs} +1 -1
- package/dist/{platform-management-CuuVDhyt.mjs → platform-management-t7HKy4-U.mjs} +632 -124
- package/dist/{platform-plans-config-CN-heS4q.mjs → platform-plans-config-CNH6zbPX.mjs} +15 -11
- package/dist/{platform-recovery-CskSJgLh.mjs → platform-recovery-DeucI7A9.mjs} +6 -9
- package/dist/{platform-registry-Cjv2Qf0r.mjs → platform-registry-B9mWX9LO.mjs} +13 -18
- package/dist/{platform-setup-BBxRxmFC.mjs → platform-setup-CTf6MMT9.mjs} +19 -26
- package/dist/{plugin-inference-BlQbOL0P.mjs → plugin-inference-DsARdQKE.mjs} +18 -33
- package/dist/{prepare-Dq9hTIbo.mjs → prepare-C4zfwks4.mjs} +3 -3
- package/dist/{prepare-Do96654b.mjs → prepare-CSH9dKTI.mjs} +11 -13
- package/dist/prepare-dr9uxQSV.mjs +2 -0
- package/dist/{prerender-render-Ct20jftc.mjs → prerender-render-Bfsumdkv.mjs} +8 -2
- package/dist/prerender-render.d.mts +2 -0
- package/dist/prerender-render.mjs +2 -2
- package/dist/project-DiiOBZPF.mjs +2 -0
- package/dist/{project-cmd-DaoRrn-8.mjs → project-cmd-Dq75AXzy.mjs} +19 -19
- package/dist/{project-paths-GgcMozYz.mjs → project-paths-DMvEeSau.mjs} +9 -14
- package/dist/{project-BAm2aB6Q.mjs → project-rqDnVsJN.mjs} +8 -4
- package/dist/{project-team-Q_lCA7Io.mjs → project-team-B3_QcStG.mjs} +6 -6
- package/dist/{project-token-BArgK9o1.mjs → project-token-CvsRvv2I.mjs} +5 -5
- package/dist/{project-tsconfig-CVJhNMxs.mjs → project-tsconfig-bveqhlYA.mjs} +3 -5
- package/dist/{project-zero-trust-KO9Hu2Pq.mjs → project-zero-trust-D1ICiwN_.mjs} +5 -5
- package/dist/{protocol-BPZaNqBo.d.mts → protocol-4H7V_3Os.d.mts} +1 -1
- package/dist/{protocol-CfaUwNs8.mjs → protocol-RNP0u7UY.mjs} +9 -3
- package/dist/{provision-BfaLiWbj.mjs → provision-DDh7ITVS.mjs} +118 -865
- package/dist/{requests-C7Oeoh5u.mjs → requests-3CL3BuZh.mjs} +4 -4
- package/dist/resolve-project-B9Hr0D3n.mjs +2 -0
- package/dist/resolve-project-C_Cu7E8a.mjs +48 -0
- package/dist/{rollback-DVAtrLAl.mjs → rollback-Ce1d_0J9.mjs} +7 -17
- package/dist/{route-types-CbtsIeFn.mjs → route-types-IrBuwJ7u.mjs} +35 -70
- package/dist/routing-assets-VkrKIbxE.mjs +139 -0
- package/dist/{runner-9wjsSZx-.mjs → runner-B5huK2eC.mjs} +1 -1
- package/dist/{runner-DMBKSrRk.mjs → runner-DcVDrzuR.mjs} +7 -28
- package/dist/{runner-mysql-CEzKtmFb.mjs → runner-mysql-CCtyI0p6.mjs} +4 -3
- package/dist/runner-mysql-CaJq-hd6.mjs +2 -0
- package/dist/runner-pg-BJhFZZG4.mjs +2 -0
- package/dist/{runner-pg-DV8p_zjA.mjs → runner-pg-CPd-CB_F.mjs} +1 -1
- package/dist/runtime/ai.mjs +9 -22
- package/dist/runtime/better-auth-mysql.d.mts +2 -5
- package/dist/runtime/better-auth-mysql.mjs +6 -31
- package/dist/runtime/better-auth-pg.d.mts +2 -5
- package/dist/runtime/better-auth-pg.mjs +6 -32
- package/dist/runtime/better-auth.d.mts +2 -4
- package/dist/runtime/better-auth.mjs +9 -19
- package/dist/runtime/db.mjs +1 -1
- package/dist/runtime/durable.d.mts +16 -0
- package/dist/runtime/durable.mjs +26 -2
- package/dist/runtime/email/testing.d.mts +1 -1
- package/dist/runtime/email/testing.mjs +9 -23
- package/dist/runtime/email-protocol.d.mts +12 -0
- package/dist/runtime/email-protocol.mjs +2 -70
- package/dist/runtime/email.d.mts +1 -1
- package/dist/runtime/email.mjs +79 -221
- package/dist/runtime/env-public.d.mts +1 -1
- package/dist/runtime/env-public.mjs +12 -38
- package/dist/runtime/env.d.mts +1 -12
- package/dist/runtime/env.mjs +1 -1
- package/dist/runtime/handler.d.mts +1 -1
- package/dist/runtime/handler.mjs +1 -1
- package/dist/runtime/isr.mjs +1 -1
- package/dist/runtime/kv.mjs +1 -1
- package/dist/runtime/live-client.d.mts +1 -1
- package/dist/runtime/live-server.mjs +1 -16
- package/dist/runtime/live.d.mts +1 -1
- package/dist/runtime/live.mjs +1 -1
- package/dist/runtime/migration-handler-mysql.d.mts +2 -2
- package/dist/runtime/migration-handler-mysql.mjs +3 -2
- package/dist/runtime/migration-handler-pg.d.mts +2 -2
- package/dist/runtime/migration-handler-pg.mjs +1 -1
- package/dist/runtime/migration-handler.d.mts +2 -2
- package/dist/runtime/migration-handler.mjs +2 -470
- package/dist/runtime/queues.mjs +1 -1
- package/dist/runtime/remote/binding-handler.mjs +62 -62
- package/dist/runtime/remote/index.mjs +16 -77
- package/dist/runtime/routing.d.mts +1 -4
- package/dist/runtime/routing.mjs +82 -218
- package/dist/runtime/sandbox-container.d.mts +2 -2
- package/dist/runtime/sandbox-container.mjs +2 -2
- package/dist/runtime/sandbox.d.mts +2 -2
- package/dist/runtime/sandbox.mjs +13 -6
- package/dist/runtime/storage.mjs +1 -1
- package/dist/runtime/validator.d.mts +1 -1
- package/dist/runtime/ws-server.d.mts +2 -3
- package/dist/runtime/ws-server.mjs +6 -28
- package/dist/runtime/ws.d.mts +1 -1
- package/dist/{sandbox-container-Bo0eiFKz.d.mts → sandbox-container-ChQRum-j.d.mts} +3 -1
- package/dist/{sandbox-container-C6ItmVuN.mjs → sandbox-container-DBKIqDEK.mjs} +12 -1
- package/dist/{sandbox-C5LFoJMf.d.mts → sandbox-q3waMc2T.d.mts} +1 -1
- package/dist/{scan-C3uDzz6J.mjs → scan-C0BMdmEd.mjs} +84 -7
- package/dist/{secret-BvtB7IjY.mjs → secret-B5J8bBsI.mjs} +62 -80
- package/dist/{serialize-BPvnNQuA.mjs → serialize-BtQyaYoC.mjs} +10 -4
- package/dist/{skills-BgVMvQdy.mjs → skills-BJsan98C.mjs} +2 -2
- package/dist/{subcommand-prompt-BSlnD1fI.mjs → subcommand-prompt-gQ-NDA-u.mjs} +38 -43
- package/dist/sveltekit.mjs +1 -1
- package/dist/validate-C9xtFOYR.mjs +2 -0
- package/dist/{validate-C9qJArv7.mjs → validate-CheZGRE7.mjs} +4 -8
- package/dist/version-metadata-DIrqEHQo.mjs +73 -0
- package/dist/{wrangler-D9KTuqnv.mjs → wrangler-BYs07Rxy.mjs} +119 -378
- package/dist/{ws-CChrrAU-.d.mts → ws-aKVYB-fA.d.mts} +1 -1
- package/dist/yarn-pnp-DLbEFMT0.mjs +92 -0
- package/docs/guide/auth.md +2 -0
- package/docs/guide/database/postgresql.md +2 -0
- package/docs/guide/database.md +2 -0
- package/docs/guide/durable-state.md +24 -0
- package/docs/guide/platform/administration/access.md +4 -0
- package/docs/guide/platform/administration/connected-apps.md +55 -0
- package/docs/guide/platform/installation/credentials.md +3 -1
- package/docs/guide/quickstart.md +2 -0
- package/docs/guide/sandboxes.md +2 -0
- package/docs/reference/api/deploy.md +23 -0
- package/docs/reference/api/pages.md +2 -0
- package/docs/reference/api.md +2 -1
- package/docs/reference/cli/database.md +9 -3
- package/docs/reference/cli/platform-installation.md +1 -1
- package/docs/reference/cli/setup.md +2 -0
- package/package.json +13 -16
- package/skills/void/SKILL.md +1 -0
- package/dist/auth-LMJcNESe.mjs +0 -2
- package/dist/cf-build-output-H9a97vME.mjs +0 -2
- package/dist/cf-user-agent-lKblH3zU.mjs +0 -17
- package/dist/client-tso2OfcG.mjs +0 -2
- package/dist/collect-DLyFDiKW.mjs +0 -2
- package/dist/config-5r-YpMC-.mjs +0 -2
- package/dist/config-B_ggY-IO.mjs +0 -89
- package/dist/config-BtSFvXZx.mjs +0 -2
- package/dist/config-write-AHGesphx.mjs +0 -61
- package/dist/deploy-Bqe1PYBw.mjs +0 -10458
- package/dist/deploy-VsWsVQkw.mjs +0 -2
- package/dist/dev-inbox-CK-UuPob.mjs +0 -297
- package/dist/discover-EDUf6JJw.mjs +0 -2
- package/dist/dist-_UUlL6bg.mjs +0 -2
- package/dist/env-validation-Dxdx_5wo.mjs +0 -951
- package/dist/gen-dA9hW7AV.mjs +0 -2
- package/dist/head-client-DzmJGN4C.mjs +0 -90
- package/dist/help-DfQYVfGY.mjs +0 -2
- package/dist/login-mx_ydhmp.mjs +0 -2
- package/dist/migrate-BHp07yJE.mjs +0 -2
- package/dist/operator-cmd-CwBB-1yb.mjs +0 -2
- package/dist/pages/head-client.d.mts +0 -13
- package/dist/pages/head-client.mjs +0 -2
- package/dist/platform-args-D4E1PjVw.mjs +0 -2
- package/dist/prepare-DRUV-g3X.mjs +0 -2
- package/dist/project-DedqCp59.mjs +0 -2
- package/dist/provision-Wu9ZBk9L.mjs +0 -2
- package/dist/resolve-project-BIeYs9Cw.mjs +0 -2
- package/dist/resolve-project-CP8rZs_p.mjs +0 -28
- package/dist/runner-mysql-CkFqZ6CE.mjs +0 -2
- package/dist/runner-pg-BGYRFdRp.mjs +0 -2
- package/dist/runtime/env-helpers.d.mts +0 -2
- package/dist/runtime/env-helpers.mjs +0 -2
- package/dist/validate-BJr9LfXy.mjs +0 -2
- package/dist/yarn-pnp-CUX_iTPA.mjs +0 -188
|
@@ -1,48 +1,22 @@
|
|
|
1
|
-
import { n as applyPgAuthMigrations } from "../auth-migrations-
|
|
2
|
-
import { n as
|
|
1
|
+
import { a as pgMigrationRunner, n as applyPgAuthMigrations } from "../auth-migrations-Cgs0k6lS.mjs";
|
|
2
|
+
import { n as resolveConnectionString, t as createVoidAuthRuntime } from "../better-auth-shared-CMXlZG7W.mjs";
|
|
3
3
|
import { t as disablePgPassFallback } from "../pg-J2HbZIkX.mjs";
|
|
4
4
|
//#region src/runtime/better-auth-pg.ts
|
|
5
|
-
async function
|
|
6
|
-
const { default: pg } = await import("pg");
|
|
7
|
-
const connectionString = resolveConnectionString(env, "PostgreSQL");
|
|
8
|
-
const pool = new pg.Pool({
|
|
9
|
-
connectionString,
|
|
10
|
-
max: 1
|
|
11
|
-
});
|
|
12
|
-
return {
|
|
13
|
-
database: pool,
|
|
14
|
-
async dispose() {
|
|
15
|
-
await pool.end();
|
|
16
|
-
}
|
|
17
|
-
};
|
|
18
|
-
}
|
|
19
|
-
async function runPostgresAuthMigrations(_request, env, runtime, migrationSchema) {
|
|
20
|
-
if (!migrationSchema) throw new Error("auth: Migration schema is unavailable.");
|
|
21
|
-
assertRuntimeDialect(runtime, "postgresql");
|
|
22
|
-
if (migrationSchema.dialect !== "postgresql") throw new Error(`auth: Runtime mismatch. Expected postgresql, received '${migrationSchema.dialect}'.`);
|
|
5
|
+
async function applyMigrations(env, migrationSchema) {
|
|
23
6
|
const { Client } = await import("pg");
|
|
24
7
|
const client = new Client({ connectionString: resolveConnectionString(env, "PostgreSQL") });
|
|
25
8
|
disablePgPassFallback(client);
|
|
26
9
|
await client.connect();
|
|
27
10
|
try {
|
|
28
|
-
await applyPgAuthMigrations(
|
|
29
|
-
async all(sql, params) {
|
|
30
|
-
return (await client.query(sql, params)).rows;
|
|
31
|
-
},
|
|
32
|
-
async run(sql, params) {
|
|
33
|
-
await client.query(sql, params);
|
|
34
|
-
}
|
|
35
|
-
}, migrationSchema);
|
|
11
|
+
await applyPgAuthMigrations(pgMigrationRunner(client), migrationSchema);
|
|
36
12
|
} finally {
|
|
37
13
|
await client.end();
|
|
38
14
|
}
|
|
39
15
|
}
|
|
40
|
-
const runtime = createVoidAuthRuntime("postgresql",
|
|
41
|
-
const resolveVoidAuthOptions = runtime.resolveVoidAuthOptions;
|
|
42
|
-
const createVoidAuth = runtime.createVoidAuth;
|
|
16
|
+
const runtime = createVoidAuthRuntime("postgresql", applyMigrations);
|
|
43
17
|
const resolveVoidAuthState = runtime.resolveVoidAuthState;
|
|
44
18
|
const runVoidAuthMiddleware = runtime.runVoidAuthMiddleware;
|
|
45
19
|
const handleVoidAuthRequest = runtime.handleVoidAuthRequest;
|
|
46
20
|
const runVoidAuthMigrations = runtime.runVoidAuthMigrations;
|
|
47
21
|
//#endregion
|
|
48
|
-
export {
|
|
22
|
+
export { handleVoidAuthRequest, resolveVoidAuthState, runVoidAuthMiddleware, runVoidAuthMigrations };
|
|
@@ -1,10 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { n as VoidAuthRuntimeApi } from "../better-auth-shared-B74NJIus.mjs";
|
|
2
2
|
//#region src/runtime/better-auth.d.ts
|
|
3
3
|
export declare const resolveVoidAuthOptions: VoidAuthRuntimeApi["resolveVoidAuthOptions"];
|
|
4
|
-
export declare const createVoidAuth: VoidAuthRuntimeApi["createVoidAuth"];
|
|
5
4
|
export declare const resolveVoidAuthState: VoidAuthRuntimeApi["resolveVoidAuthState"];
|
|
6
5
|
export declare const runVoidAuthMiddleware: VoidAuthRuntimeApi["runVoidAuthMiddleware"];
|
|
7
6
|
export declare const handleVoidAuthRequest: VoidAuthRuntimeApi["handleVoidAuthRequest"];
|
|
8
7
|
export declare const runVoidAuthMigrations: VoidAuthRuntimeApi["runVoidAuthMigrations"];
|
|
9
|
-
//#endregion
|
|
10
|
-
export type { VoidAuthDialect, VoidAuthEnv, VoidAuthRuntimeOptions };
|
|
8
|
+
//#endregion
|
|
@@ -1,33 +1,23 @@
|
|
|
1
|
-
import { r as applySqliteAuthMigrations } from "../auth-migrations-
|
|
2
|
-
import {
|
|
1
|
+
import { r as applySqliteAuthMigrations } from "../auth-migrations-Cgs0k6lS.mjs";
|
|
2
|
+
import { t as createVoidAuthRuntime } from "../better-auth-shared-CMXlZG7W.mjs";
|
|
3
3
|
//#region src/runtime/better-auth.ts
|
|
4
|
-
async function
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
database: env.DB.withSession("first-primary"),
|
|
8
|
-
async dispose() {}
|
|
9
|
-
};
|
|
10
|
-
}
|
|
11
|
-
async function runSqliteAuthMigrations(_request, env, runtime, migrationSchema) {
|
|
12
|
-
if (!migrationSchema) throw new Error("auth: Migration schema is unavailable.");
|
|
13
|
-
assertRuntimeDialect(runtime, "sqlite");
|
|
14
|
-
if (migrationSchema.dialect !== "sqlite") throw new Error(`auth: Runtime mismatch. Expected sqlite, received '${migrationSchema.dialect}'.`);
|
|
15
|
-
if (!env.DB) throw new Error("auth: Better Auth requires the \"DB\" D1 binding for sqlite apps.");
|
|
4
|
+
async function applyMigrations(env, migrationSchema) {
|
|
5
|
+
const database = env.DB;
|
|
6
|
+
if (!database) throw new Error("auth: Better Auth requires the \"DB\" D1 binding for sqlite apps.");
|
|
16
7
|
await applySqliteAuthMigrations({
|
|
17
8
|
async all(sql) {
|
|
18
|
-
return (await
|
|
9
|
+
return (await database.prepare(sql).all()).results ?? [];
|
|
19
10
|
},
|
|
20
11
|
async run(sql) {
|
|
21
|
-
await
|
|
12
|
+
await database.prepare(sql).run();
|
|
22
13
|
}
|
|
23
14
|
}, migrationSchema);
|
|
24
15
|
}
|
|
25
|
-
const runtime = createVoidAuthRuntime("sqlite",
|
|
16
|
+
const runtime = createVoidAuthRuntime("sqlite", applyMigrations);
|
|
26
17
|
const resolveVoidAuthOptions = runtime.resolveVoidAuthOptions;
|
|
27
|
-
const createVoidAuth = runtime.createVoidAuth;
|
|
28
18
|
const resolveVoidAuthState = runtime.resolveVoidAuthState;
|
|
29
19
|
const runVoidAuthMiddleware = runtime.runVoidAuthMiddleware;
|
|
30
20
|
const handleVoidAuthRequest = runtime.handleVoidAuthRequest;
|
|
31
21
|
const runVoidAuthMigrations = runtime.runVoidAuthMigrations;
|
|
32
22
|
//#endregion
|
|
33
|
-
export {
|
|
23
|
+
export { handleVoidAuthRequest, resolveVoidAuthOptions, resolveVoidAuthState, runVoidAuthMiddleware, runVoidAuthMigrations };
|
package/dist/runtime/db.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { a as requireRuntimeBinding, r as getRuntimeRequestResource } from "../env-
|
|
1
|
+
import { a as requireRuntimeBinding, r as getRuntimeRequestResource } from "../env-BhdWMrNy.mjs";
|
|
2
2
|
import { drizzle } from "drizzle-orm/d1";
|
|
3
3
|
import { and, asc, avg, between, count, desc, eq, exists, gt, gte, ilike, inArray, isNotNull, isNull, like, lt, lte, max, min, ne, not, notBetween, notExists, notInArray, notLike, or, sql, sum } from "drizzle-orm";
|
|
4
4
|
//#region src/runtime/db.ts
|
|
@@ -1,4 +1,20 @@
|
|
|
1
|
+
import { DurableObject as DurableObject$1 } from "cloudflare:workers";
|
|
1
2
|
//#region src/runtime/durable.d.ts
|
|
3
|
+
type NativeDurableClass = new (...args: Array<never>) => DurableObject$1<unknown>;
|
|
4
|
+
export type DurableObjectApi<TClass extends NativeDurableClass> = {
|
|
5
|
+
class: TClass;
|
|
6
|
+
/** @internal Called by the generated Worker entry. */
|
|
7
|
+
__bind(bindingName: string, resourceName?: string): void;
|
|
8
|
+
get(name: string): DurableObjectStub<InstanceType<TClass>>;
|
|
9
|
+
get(namespace: DurableObjectNamespace<InstanceType<TClass>>, name: string): DurableObjectStub<InstanceType<TClass>>;
|
|
10
|
+
getById(id: DurableObjectId): DurableObjectStub<InstanceType<TClass>>;
|
|
11
|
+
getById(namespace: DurableObjectNamespace<InstanceType<TClass>>, id: DurableObjectId): DurableObjectStub<InstanceType<TClass>>;
|
|
12
|
+
};
|
|
13
|
+
/** Register a native Durable Object class without altering its lifecycle or RPC methods. */
|
|
14
|
+
export declare function defineDurableObject<TClass extends NativeDurableClass>(definition: {
|
|
15
|
+
name?: string;
|
|
16
|
+
class: TClass;
|
|
17
|
+
}): DurableObjectApi<TClass>;
|
|
2
18
|
export type DurableStateContext<TState, TEnv extends Record<string, unknown>> = {
|
|
3
19
|
state: TState;
|
|
4
20
|
readonly env: TEnv;
|
package/dist/runtime/durable.mjs
CHANGED
|
@@ -1,8 +1,32 @@
|
|
|
1
1
|
import { t as isResourceName } from "../resource-name-C7LVpcRm.mjs";
|
|
2
|
-
import { a as requireRuntimeBinding, o as withRuntimeEnv } from "../env-
|
|
2
|
+
import { a as requireRuntimeBinding, o as withRuntimeEnv } from "../env-BhdWMrNy.mjs";
|
|
3
3
|
import { DurableObject } from "cloudflare:workers";
|
|
4
4
|
//#region src/runtime/durable.ts
|
|
5
5
|
const DEFAULT_STORAGE_KEY = "__void_durable_state";
|
|
6
|
+
/** Register a native Durable Object class without altering its lifecycle or RPC methods. */
|
|
7
|
+
function defineDurableObject(definition) {
|
|
8
|
+
if (definition.name !== void 0 && !isResourceName(definition.name)) throw new Error("durable: name must contain a word starting with a letter.");
|
|
9
|
+
let bindingName;
|
|
10
|
+
function boundNamespace() {
|
|
11
|
+
if (!bindingName) throw new Error("durable: this definition is not bound. Default-export it from a file in durable-objects/.");
|
|
12
|
+
return requireRuntimeBinding(bindingName);
|
|
13
|
+
}
|
|
14
|
+
return {
|
|
15
|
+
class: definition.class,
|
|
16
|
+
__bind(name, resourceName) {
|
|
17
|
+
if (definition.name !== resourceName) throw new Error("durable: name must be statically discoverable in defineDurableObject(). Run void info to inspect this definition.");
|
|
18
|
+
if (bindingName && bindingName !== name) throw new Error(`durable: definition is already bound to '${bindingName}' and cannot also bind to '${name}'.`);
|
|
19
|
+
bindingName = name;
|
|
20
|
+
},
|
|
21
|
+
get(namespaceOrName, maybeName) {
|
|
22
|
+
const namespace = typeof namespaceOrName === "string" ? boundNamespace() : namespaceOrName;
|
|
23
|
+
return namespace.get(namespace.idFromName(typeof namespaceOrName === "string" ? namespaceOrName : maybeName));
|
|
24
|
+
},
|
|
25
|
+
getById(namespaceOrId, maybeId) {
|
|
26
|
+
return (maybeId ? namespaceOrId : boundNamespace()).get(maybeId ?? namespaceOrId);
|
|
27
|
+
}
|
|
28
|
+
};
|
|
29
|
+
}
|
|
6
30
|
function assertMigrations(version, migrations) {
|
|
7
31
|
const byVersion = /* @__PURE__ */ new Map();
|
|
8
32
|
for (const migration of migrations) {
|
|
@@ -139,4 +163,4 @@ function defineDurableState(definition) {
|
|
|
139
163
|
};
|
|
140
164
|
}
|
|
141
165
|
//#endregion
|
|
142
|
-
export { defineDurableState };
|
|
166
|
+
export { defineDurableObject, defineDurableState };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/// <reference types="@cloudflare/workers-types" />
|
|
2
|
-
import { r as EmailHandler } from "../../inbound-
|
|
2
|
+
import { r as EmailHandler } from "../../inbound-brj2-TM5.mjs";
|
|
3
3
|
//#region src/runtime/email/dev-inbox.d.ts
|
|
4
4
|
interface CapturedMessage {
|
|
5
5
|
id: string;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { n as compileEmailPattern, t as compareEmailRoutes } from "../../email-
|
|
3
|
-
import {
|
|
4
|
-
import { a as createMessageProxy, n as MAX_INBOUND_HEADERS, t as MAX_INBOUND_BYTES } from "../../inbound-
|
|
1
|
+
import { o as normalizeEmail, r as buildMime } from "../../mime-srOklVVv.mjs";
|
|
2
|
+
import { n as compileEmailPattern, t as compareEmailRoutes } from "../../email-BcjSyAL0.mjs";
|
|
3
|
+
import { y as registerEmailSink } from "../../dev-inbox-Rd6j_8vM.mjs";
|
|
4
|
+
import { a as createMessageProxy, n as MAX_INBOUND_HEADERS, t as MAX_INBOUND_BYTES } from "../../inbound-DmkTQeWp.mjs";
|
|
5
5
|
//#region src/runtime/email/testing.ts
|
|
6
6
|
/**
|
|
7
7
|
* Test harnesses for void/email.
|
|
@@ -86,27 +86,13 @@ async function buildSyntheticRaw(opts) {
|
|
|
86
86
|
});
|
|
87
87
|
return buildMime(normalized).raw;
|
|
88
88
|
}
|
|
89
|
-
/**
|
|
90
|
-
* Thrown by `parseHeaderBlock` at the first distinct name past its cap —
|
|
91
|
-
* the router's `InboundTooManyHeadersError` (`email-router.ts`).
|
|
92
|
-
*/
|
|
89
|
+
/** The router's `InboundTooManyHeadersError` (`email-router.ts`). */
|
|
93
90
|
var InboundTooManyHeadersError = class extends Error {};
|
|
94
91
|
/**
|
|
95
|
-
*
|
|
96
|
-
*
|
|
97
|
-
*
|
|
98
|
-
*
|
|
99
|
-
* than thrown, because a test may deliver deliberately malformed bytes.
|
|
100
|
-
*
|
|
101
|
-
* `maxDistinct` is the router's header-count admission (`buildEnvelope` in
|
|
102
|
-
* `email-router.ts`): it walks the bag Cloudflare built from the wire and
|
|
103
|
-
* refuses at the cap, BEFORE any entry past it is materialized. That bag is
|
|
104
|
-
* a `Headers`, so the unit is the DISTINCT, case-insensitive name — a
|
|
105
|
-
* repeated `Received:` is one entry, and a continuation line is part of the
|
|
106
|
-
* one before it, never its own. The check sits in the same walk, checked
|
|
107
|
-
* before the `set`, so an over-cap message costs this harness the same
|
|
108
|
-
* `maxDistinct + 1` names it costs the router. A name a `Headers` refuses
|
|
109
|
-
* is not in the bag on either side, so it does not count.
|
|
92
|
+
* Unfolded headers of a raw message, up to the first blank line. Unparsable
|
|
93
|
+
* lines are skipped so malformed fixtures still reach the handler. Like the
|
|
94
|
+
* router's `buildEnvelope`, refuses more than `maxDistinct` distinct
|
|
95
|
+
* case-insensitive names before materializing more.
|
|
110
96
|
*/
|
|
111
97
|
function parseHeaderBlock(raw, maxDistinct) {
|
|
112
98
|
const headers = new Headers();
|
|
@@ -9,6 +9,18 @@ type ReceiptVerificationInput = {
|
|
|
9
9
|
type ReceiptVerifier = {
|
|
10
10
|
fetch(input: string | Request, init?: RequestInit): Promise<Response>;
|
|
11
11
|
};
|
|
12
|
+
/**
|
|
13
|
+
* Settle `run()` within `ms`, or reject with `onTimeout()`. `run` is not
|
|
14
|
+
* called when `ms` has already elapsed.
|
|
15
|
+
*/
|
|
16
|
+
export declare function withTimeout<T>(ms: number, run: () => Promise<T>, onTimeout: () => Error): Promise<T>;
|
|
17
|
+
/**
|
|
18
|
+
* Read a JSON body of at most `maxBytes`, each read bounded by `race`. A
|
|
19
|
+
* declared length must be exact.
|
|
20
|
+
*/
|
|
21
|
+
export declare function readBoundedJson(response: Response, maxBytes: number, race: <T>(run: () => Promise<T>) => Promise<T>, { rejectEncoding }?: {
|
|
22
|
+
rejectEncoding?: boolean;
|
|
23
|
+
}): Promise<unknown>;
|
|
12
24
|
/** Validate a gateway receipt without exposing the signing secret to the tenant worker. */
|
|
13
25
|
export declare function verifyEmailReceiptThroughProxy(proxy: ReceiptVerifier, projectToken: string, input: ReceiptVerificationInput): Promise<boolean>;
|
|
14
26
|
//#endregion
|
|
@@ -1,70 +1,2 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
const RECEIPT_VERIFICATION_DEADLINE_MS = 5e3;
|
|
4
|
-
const MAX_RECEIPT_VERIFICATION_BYTES = 2048;
|
|
5
|
-
const decoder = new TextDecoder("utf-8", {
|
|
6
|
-
fatal: true,
|
|
7
|
-
ignoreBOM: false
|
|
8
|
-
});
|
|
9
|
-
async function beforeDeadline(deadline, run) {
|
|
10
|
-
const remaining = deadline - Date.now();
|
|
11
|
-
if (remaining <= 0) throw new Error("email receipt verification timeout");
|
|
12
|
-
let timer;
|
|
13
|
-
return Promise.race([run(), new Promise((_, reject) => {
|
|
14
|
-
timer = setTimeout(() => reject(/* @__PURE__ */ new Error("email receipt verification timeout")), remaining);
|
|
15
|
-
})]).finally(() => {
|
|
16
|
-
if (timer !== void 0) clearTimeout(timer);
|
|
17
|
-
});
|
|
18
|
-
}
|
|
19
|
-
async function readResponseJson(response, deadline) {
|
|
20
|
-
const declaredLength = response.headers.get("content-length");
|
|
21
|
-
if (response.headers.has("content-encoding") || !response.body || declaredLength !== null && (!/^\d+$/.test(declaredLength) || Number(declaredLength) > MAX_RECEIPT_VERIFICATION_BYTES)) throw new Error("invalid email receipt verification response");
|
|
22
|
-
const expectedLength = declaredLength === null ? null : Number(declaredLength);
|
|
23
|
-
const reader = response.body.getReader();
|
|
24
|
-
const bytes = new Uint8Array(MAX_RECEIPT_VERIFICATION_BYTES);
|
|
25
|
-
let size = 0;
|
|
26
|
-
try {
|
|
27
|
-
for (;;) {
|
|
28
|
-
const chunk = await beforeDeadline(deadline, () => reader.read());
|
|
29
|
-
if (chunk.done) break;
|
|
30
|
-
const nextSize = size + chunk.value.byteLength;
|
|
31
|
-
if (nextSize > bytes.byteLength) throw new Error("email receipt verification response too large");
|
|
32
|
-
bytes.set(chunk.value, size);
|
|
33
|
-
size = nextSize;
|
|
34
|
-
}
|
|
35
|
-
} finally {
|
|
36
|
-
reader.cancel().catch(() => {});
|
|
37
|
-
try {
|
|
38
|
-
reader.releaseLock();
|
|
39
|
-
} catch {}
|
|
40
|
-
}
|
|
41
|
-
if (size === 0 || expectedLength !== null && size !== expectedLength) throw new Error("invalid email receipt verification response length");
|
|
42
|
-
return JSON.parse(decoder.decode(bytes.subarray(0, size)));
|
|
43
|
-
}
|
|
44
|
-
/** Validate a gateway receipt without exposing the signing secret to the tenant worker. */
|
|
45
|
-
async function verifyEmailReceiptThroughProxy(proxy, projectToken, input) {
|
|
46
|
-
const deadline = Date.now() + RECEIPT_VERIFICATION_DEADLINE_MS;
|
|
47
|
-
const controller = new AbortController();
|
|
48
|
-
let response;
|
|
49
|
-
try {
|
|
50
|
-
response = await beforeDeadline(deadline, () => proxy.fetch("https://proxy/email/verify-receipt", {
|
|
51
|
-
method: "POST",
|
|
52
|
-
headers: {
|
|
53
|
-
"content-type": "application/json",
|
|
54
|
-
"x-void-internal": projectToken
|
|
55
|
-
},
|
|
56
|
-
body: JSON.stringify(input),
|
|
57
|
-
signal: controller.signal
|
|
58
|
-
}));
|
|
59
|
-
if (!response.ok) return false;
|
|
60
|
-
const body = await readResponseJson(response, deadline);
|
|
61
|
-
return !!body && typeof body === "object" && !Array.isArray(body) && body.valid === true;
|
|
62
|
-
} catch {
|
|
63
|
-
return false;
|
|
64
|
-
} finally {
|
|
65
|
-
controller.abort();
|
|
66
|
-
response?.body?.cancel().catch(() => {});
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
//#endregion
|
|
70
|
-
export { EMAIL_PROTOCOL_VERSION, encodeEmailActions, readEmailEnvelope, verifyEmailReceiptThroughProxy };
|
|
1
|
+
import { a as verifyEmailReceiptThroughProxy, i as readEmailEnvelope, n as encodeEmailActions, o as withTimeout, r as readBoundedJson, t as EMAIL_PROTOCOL_VERSION } from "../email-protocol-D9nTvhCp.mjs";
|
|
2
|
+
export { EMAIL_PROTOCOL_VERSION, encodeEmailActions, readBoundedJson, readEmailEnvelope, verifyEmailReceiptThroughProxy, withTimeout };
|
package/dist/runtime/email.d.mts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/// <reference types="@cloudflare/workers-types" />
|
|
2
|
-
import { C as SendEmailOptions, S as SendEmailErrorCode, T as SendEmailResult, _ as Attachment, a as MessageProxy, b as SendEmailDelivery, c as ParsedEmail, d as defineEmail, f as enactEmailActions, g as Address, h as replyEmail, i as EmailHandlerInfo, l as ReplyEmailOptions, m as parseEmail, n as EmailEnvelope, o as ParseEmailError, p as isForwardableEmailMessage, r as EmailHandler, s as ParseEmailErrorCode, t as EmailAction, u as createMessageProxy, v as EmailDeliveryState, w as SendEmailRecipientResult, x as SendEmailError, y as NormalizedEmail } from "../inbound-
|
|
2
|
+
import { C as SendEmailOptions, S as SendEmailErrorCode, T as SendEmailResult, _ as Attachment, a as MessageProxy, b as SendEmailDelivery, c as ParsedEmail, d as defineEmail, f as enactEmailActions, g as Address, h as replyEmail, i as EmailHandlerInfo, l as ReplyEmailOptions, m as parseEmail, n as EmailEnvelope, o as ParseEmailError, p as isForwardableEmailMessage, r as EmailHandler, s as ParseEmailErrorCode, t as EmailAction, u as createMessageProxy, v as EmailDeliveryState, w as SendEmailRecipientResult, x as SendEmailError, y as NormalizedEmail } from "../inbound-brj2-TM5.mjs";
|
|
3
3
|
//#region src/runtime/email/mime.d.ts
|
|
4
4
|
type MimeErrorCode = "INVALID_FROM" | "INVALID_TO" | "MIME_ERROR";
|
|
5
5
|
export declare class MimeError extends Error {
|