elysia 1.4.28 → 2.0.0-beta.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/dist/_virtual/_rolldown/runtime.js +29 -0
- package/dist/_virtual/_rolldown/runtime.mjs +38 -0
- package/dist/adapter/bun/index.d.ts +7 -6
- package/dist/adapter/bun/index.js +219 -380
- package/dist/adapter/bun/index.mjs +217 -382
- package/dist/adapter/constants.d.ts +6 -0
- package/dist/adapter/constants.js +10 -0
- package/dist/adapter/constants.mjs +9 -0
- package/dist/adapter/default-headers.d.ts +4 -0
- package/dist/adapter/default-headers.js +7 -0
- package/dist/adapter/default-headers.mjs +5 -0
- package/dist/adapter/index.d.ts +8 -1
- package/dist/adapter/index.js +7 -14
- package/dist/adapter/index.mjs +5 -0
- package/dist/adapter/origin.d.ts +63 -0
- package/dist/adapter/origin.js +64 -0
- package/dist/adapter/origin.mjs +62 -0
- package/dist/adapter/response-ownership.d.ts +5 -0
- package/dist/adapter/response-ownership.js +13 -0
- package/dist/adapter/response-ownership.mjs +10 -0
- package/dist/adapter/skip-clone.d.ts +4 -0
- package/dist/adapter/skip-clone.js +7 -0
- package/dist/adapter/skip-clone.mjs +5 -0
- package/dist/adapter/types.d.ts +50 -125
- package/dist/adapter/types.js +1 -14
- package/dist/adapter/types.mjs +1 -0
- package/dist/adapter/utils.d.ts +47 -19
- package/dist/adapter/utils.js +561 -311
- package/dist/adapter/utils.mjs +551 -283
- package/dist/adapter/web-standard/handler.d.ts +11 -9
- package/dist/adapter/web-standard/handler.js +146 -415
- package/dist/adapter/web-standard/handler.mjs +144 -400
- package/dist/adapter/web-standard/index.d.ts +5 -2
- package/dist/adapter/web-standard/index.js +68 -161
- package/dist/adapter/web-standard/index.mjs +68 -146
- package/dist/adapter/web-standard/utils.d.ts +4 -0
- package/dist/adapter/web-standard/utils.js +153 -0
- package/dist/adapter/web-standard/utils.mjs +152 -0
- package/dist/base.d.ts +898 -0
- package/dist/base.js +1564 -0
- package/dist/base.mjs +1561 -0
- package/dist/compile/analysis-cache.d.ts +6 -0
- package/dist/compile/analysis-cache.js +12 -0
- package/dist/compile/analysis-cache.mjs +11 -0
- package/dist/compile/aot-capture.d.ts +24 -0
- package/dist/compile/aot-capture.js +376 -0
- package/dist/compile/aot-capture.mjs +365 -0
- package/dist/compile/aot-emit.d.ts +29 -0
- package/dist/compile/aot-emit.js +107 -0
- package/dist/compile/aot-emit.mjs +101 -0
- package/dist/compile/aot-reconstruct.d.ts +30 -0
- package/dist/compile/aot-reconstruct.js +156 -0
- package/dist/compile/aot-reconstruct.mjs +147 -0
- package/dist/compile/aot.d.ts +287 -0
- package/dist/compile/aot.js +220 -0
- package/dist/compile/aot.mjs +200 -0
- package/dist/compile/handler/descriptor.d.ts +77 -0
- package/dist/compile/handler/descriptor.js +199 -0
- package/dist/compile/handler/descriptor.mjs +194 -0
- package/dist/compile/handler/frozen-validator.d.ts +39 -0
- package/dist/compile/handler/frozen-validator.js +319 -0
- package/dist/compile/handler/frozen-validator.mjs +313 -0
- package/dist/compile/handler/index.d.ts +19 -0
- package/dist/compile/handler/index.js +379 -0
- package/dist/compile/handler/index.mjs +371 -0
- package/dist/compile/handler/jit.d.ts +43 -0
- package/dist/compile/handler/jit.js +536 -0
- package/dist/compile/handler/jit.mjs +532 -0
- package/dist/compile/handler/params.d.ts +28 -0
- package/dist/compile/handler/params.js +78 -0
- package/dist/compile/handler/params.mjs +76 -0
- package/dist/compile/handler/reconstruct.d.ts +12 -0
- package/dist/compile/handler/reconstruct.js +50 -0
- package/dist/compile/handler/reconstruct.mjs +49 -0
- package/dist/compile/handler/utils.d.ts +45 -0
- package/dist/compile/handler/utils.js +514 -0
- package/dist/compile/handler/utils.mjs +498 -0
- package/dist/compile/jit-probe.d.ts +15 -0
- package/dist/compile/jit-probe.js +28 -0
- package/dist/compile/jit-probe.mjs +26 -0
- package/dist/compile/lexer.d.ts +7 -0
- package/dist/compile/lexer.js +53 -0
- package/dist/compile/lexer.mjs +48 -0
- package/dist/compile/utils.d.ts +8 -0
- package/dist/compile/utils.js +23 -0
- package/dist/compile/utils.mjs +19 -0
- package/dist/compiled.d.ts +17 -0
- package/dist/compiled.js +20 -0
- package/dist/compiled.mjs +16 -0
- package/dist/constants.d.ts +137 -0
- package/dist/constants.js +96 -0
- package/dist/constants.mjs +88 -0
- package/dist/context.d.ts +86 -129
- package/dist/context.js +110 -13
- package/dist/context.mjs +108 -0
- package/dist/cookie/config.d.ts +31 -0
- package/dist/cookie/config.js +98 -0
- package/dist/cookie/config.mjs +95 -0
- package/dist/cookie/cookie.d.ts +26 -0
- package/dist/cookie/cookie.js +105 -0
- package/dist/cookie/cookie.mjs +104 -0
- package/dist/cookie/crypto.d.ts +20 -0
- package/dist/cookie/crypto.js +168 -0
- package/dist/cookie/crypto.mjs +151 -0
- package/dist/cookie/error.d.ts +17 -0
- package/dist/cookie/error.js +25 -0
- package/dist/cookie/error.mjs +24 -0
- package/dist/cookie/index.d.ts +7 -0
- package/dist/cookie/index.js +13 -0
- package/dist/cookie/index.mjs +7 -0
- package/dist/cookie/lib.d.ts +7 -0
- package/dist/cookie/lib.js +76 -0
- package/dist/cookie/lib.mjs +74 -0
- package/dist/cookie/serialize.d.ts +6 -0
- package/dist/cookie/serialize.js +32 -0
- package/dist/cookie/serialize.mjs +31 -0
- package/dist/cookie/types.d.ts +113 -0
- package/dist/cookie/types.js +1 -0
- package/dist/cookie/types.mjs +1 -0
- package/dist/cookie/utils.d.ts +25 -0
- package/dist/cookie/utils.js +182 -0
- package/dist/cookie/utils.mjs +171 -0
- package/dist/error.d.ts +226 -188
- package/dist/error.js +519 -357
- package/dist/error.mjs +503 -327
- package/dist/generation.d.ts +30 -0
- package/dist/generation.js +23 -0
- package/dist/generation.mjs +17 -0
- package/dist/handler/error.d.ts +7 -0
- package/dist/handler/error.js +105 -0
- package/dist/handler/error.mjs +104 -0
- package/dist/handler/fetch.d.ts +8 -0
- package/dist/handler/fetch.js +371 -0
- package/dist/handler/fetch.mjs +367 -0
- package/dist/handler/index.d.ts +2 -0
- package/dist/handler/index.js +5 -0
- package/dist/handler/index.mjs +3 -0
- package/dist/handler/utils.d.ts +15 -0
- package/dist/handler/utils.js +48 -0
- package/dist/handler/utils.mjs +42 -0
- package/dist/index.d.ts +23 -2198
- package/dist/index.js +62 -1948
- package/dist/index.mjs +20 -1986
- package/dist/memory.d.ts +4 -0
- package/dist/memory.js +17 -0
- package/dist/memory.mjs +16 -0
- package/dist/package.js +11 -0
- package/dist/package.mjs +5 -0
- package/dist/parse-query.d.ts +7 -9
- package/dist/parse-query.js +154 -164
- package/dist/parse-query.mjs +150 -133
- package/dist/plugin/aot/bun.d.ts +26 -0
- package/dist/plugin/aot/bun.js +35 -0
- package/dist/plugin/aot/bun.mjs +34 -0
- package/dist/plugin/aot/core.d.ts +291 -0
- package/dist/plugin/aot/core.js +505 -0
- package/dist/plugin/aot/core.mjs +481 -0
- package/dist/plugin/aot/esbuild.d.ts +28 -0
- package/dist/plugin/aot/esbuild.js +48 -0
- package/dist/plugin/aot/esbuild.mjs +46 -0
- package/dist/plugin/aot/hooks.d.ts +28 -0
- package/dist/plugin/aot/hooks.js +114 -0
- package/dist/plugin/aot/hooks.mjs +112 -0
- package/dist/plugin/aot/rspack-loader.d.ts +23 -0
- package/dist/plugin/aot/rspack-loader.js +44 -0
- package/dist/plugin/aot/rspack-loader.mjs +40 -0
- package/dist/plugin/aot/rspack.d.ts +23 -0
- package/dist/plugin/aot/rspack.js +85 -0
- package/dist/plugin/aot/rspack.mjs +82 -0
- package/dist/plugin/aot/source.d.ts +60 -0
- package/dist/plugin/aot/source.js +422 -0
- package/dist/plugin/aot/source.mjs +418 -0
- package/dist/plugin/aot/treeshake.d.ts +4 -0
- package/dist/plugin/aot/treeshake.js +95 -0
- package/dist/plugin/aot/treeshake.mjs +94 -0
- package/dist/plugin/aot/unplugin.d.ts +50 -0
- package/dist/plugin/aot/unplugin.js +64 -0
- package/dist/plugin/aot/unplugin.mjs +62 -0
- package/dist/plugin/aot/vite.d.ts +30 -0
- package/dist/plugin/aot/vite.js +34 -0
- package/dist/plugin/aot/vite.mjs +33 -0
- package/dist/plugin/aot/worker.d.ts +1 -0
- package/dist/plugin/aot/worker.js +28 -0
- package/dist/plugin/aot/worker.mjs +27 -0
- package/dist/plugin/auto-head.d.ts +6 -0
- package/dist/plugin/auto-head.js +38 -0
- package/dist/plugin/auto-head.mjs +36 -0
- package/dist/plugin/trace.d.ts +10 -0
- package/dist/plugin/trace.js +39 -0
- package/dist/plugin/trace.mjs +36 -0
- package/dist/plugin/websocket.d.ts +6 -0
- package/dist/plugin/websocket.js +61 -0
- package/dist/plugin/websocket.mjs +60 -0
- package/dist/route-table.d.ts +28 -0
- package/dist/route-table.js +64 -0
- package/dist/route-table.mjs +61 -0
- package/dist/schema-snapshot.d.ts +9 -0
- package/dist/schema-snapshot.js +271 -0
- package/dist/schema-snapshot.mjs +269 -0
- package/dist/sucrose.d.ts +28 -63
- package/dist/sucrose.js +814 -306
- package/dist/sucrose.mjs +805 -274
- package/dist/trace.d.ts +145 -130
- package/dist/trace.js +387 -135
- package/dist/trace.mjs +385 -113
- package/dist/type/bridge-live.d.ts +15 -0
- package/dist/type/bridge-live.js +39 -0
- package/dist/type/bridge-live.mjs +17 -0
- package/dist/type/bridge.d.ts +56 -0
- package/dist/type/bridge.js +180 -0
- package/dist/type/bridge.mjs +63 -0
- package/dist/type/coerce-plan.d.ts +38 -0
- package/dist/type/coerce-plan.js +107 -0
- package/dist/type/coerce-plan.mjs +98 -0
- package/dist/type/coerce.d.ts +43 -0
- package/dist/type/coerce.js +351 -0
- package/dist/type/coerce.mjs +339 -0
- package/dist/type/compat.d.ts +8 -0
- package/dist/type/compat.js +46 -0
- package/dist/type/compat.mjs +44 -0
- package/dist/type/constants.d.ts +25 -0
- package/dist/type/constants.js +36 -0
- package/dist/type/constants.mjs +32 -0
- package/dist/type/elysia/accelerate.d.ts +6 -0
- package/dist/type/elysia/accelerate.js +12 -0
- package/dist/type/elysia/accelerate.mjs +10 -0
- package/dist/type/elysia/array-buffer.d.ts +6 -0
- package/dist/type/elysia/array-buffer.js +27 -0
- package/dist/type/elysia/array-buffer.mjs +25 -0
- package/dist/type/elysia/array-string.d.ts +7 -0
- package/dist/type/elysia/array-string.js +28 -0
- package/dist/type/elysia/array-string.mjs +26 -0
- package/dist/type/elysia/array.d.ts +6 -0
- package/dist/type/elysia/array.js +32 -0
- package/dist/type/elysia/array.mjs +31 -0
- package/dist/type/elysia/boolean-string.d.ts +6 -0
- package/dist/type/elysia/boolean-string.js +24 -0
- package/dist/type/elysia/boolean-string.mjs +22 -0
- package/dist/type/elysia/boolean.d.ts +6 -0
- package/dist/type/elysia/boolean.js +20 -0
- package/dist/type/elysia/boolean.mjs +18 -0
- package/dist/type/elysia/cookie.d.ts +15 -0
- package/dist/type/elysia/cookie.js +51 -0
- package/dist/type/elysia/cookie.mjs +50 -0
- package/dist/type/elysia/date.d.ts +7 -0
- package/dist/type/elysia/date.js +98 -0
- package/dist/type/elysia/date.mjs +96 -0
- package/dist/type/elysia/file-type.d.ts +25 -0
- package/dist/type/elysia/file-type.js +81 -0
- package/dist/type/elysia/file-type.mjs +71 -0
- package/dist/type/elysia/file.d.ts +9 -0
- package/dist/type/elysia/file.js +64 -0
- package/dist/type/elysia/file.mjs +48 -0
- package/dist/type/elysia/files.d.ts +8 -0
- package/dist/type/elysia/files.js +45 -0
- package/dist/type/elysia/files.mjs +43 -0
- package/dist/type/elysia/form.d.ts +8 -0
- package/dist/type/elysia/form.js +17 -0
- package/dist/type/elysia/form.mjs +15 -0
- package/dist/type/elysia/integer-string.d.ts +7 -0
- package/dist/type/elysia/integer-string.js +40 -0
- package/dist/type/elysia/integer-string.mjs +38 -0
- package/dist/type/elysia/integer.d.ts +6 -0
- package/dist/type/elysia/integer.js +20 -0
- package/dist/type/elysia/integer.mjs +18 -0
- package/dist/type/elysia/intersect.d.ts +6 -0
- package/dist/type/elysia/intersect.js +20 -0
- package/dist/type/elysia/intersect.mjs +19 -0
- package/dist/type/elysia/maybe-empty.d.ts +7 -0
- package/dist/type/elysia/maybe-empty.js +21 -0
- package/dist/type/elysia/maybe-empty.mjs +19 -0
- package/dist/type/elysia/no-validate.d.ts +6 -0
- package/dist/type/elysia/no-validate.js +9 -0
- package/dist/type/elysia/no-validate.mjs +8 -0
- package/dist/type/elysia/nullable.d.ts +7 -0
- package/dist/type/elysia/nullable.js +15 -0
- package/dist/type/elysia/nullable.mjs +13 -0
- package/dist/type/elysia/number.d.ts +6 -0
- package/dist/type/elysia/number.js +20 -0
- package/dist/type/elysia/number.mjs +18 -0
- package/dist/type/elysia/numeric-enum.d.ts +11 -0
- package/dist/type/elysia/numeric-enum.js +26 -0
- package/dist/type/elysia/numeric-enum.mjs +24 -0
- package/dist/type/elysia/numeric.d.ts +7 -0
- package/dist/type/elysia/numeric.js +62 -0
- package/dist/type/elysia/numeric.mjs +60 -0
- package/dist/type/elysia/object-string.d.ts +7 -0
- package/dist/type/elysia/object-string.js +28 -0
- package/dist/type/elysia/object-string.mjs +26 -0
- package/dist/type/elysia/object.d.ts +6 -0
- package/dist/type/elysia/object.js +47 -0
- package/dist/type/elysia/object.mjs +46 -0
- package/dist/type/elysia/optional.d.ts +6 -0
- package/dist/type/elysia/optional.js +22 -0
- package/dist/type/elysia/optional.mjs +21 -0
- package/dist/type/elysia/string.d.ts +6 -0
- package/dist/type/elysia/string.js +43 -0
- package/dist/type/elysia/string.mjs +41 -0
- package/dist/type/elysia/uint8-array.d.ts +6 -0
- package/dist/type/elysia/uint8-array.js +27 -0
- package/dist/type/elysia/uint8-array.mjs +25 -0
- package/dist/type/elysia/union-enum.d.ts +8 -0
- package/dist/type/elysia/union-enum.js +31 -0
- package/dist/type/elysia/union-enum.mjs +29 -0
- package/dist/type/elysia/union.d.ts +6 -0
- package/dist/type/elysia/union.js +20 -0
- package/dist/type/elysia/union.mjs +19 -0
- package/dist/type/elysia/utils.d.ts +53 -0
- package/dist/type/elysia/utils.js +98 -0
- package/dist/type/elysia/utils.mjs +88 -0
- package/dist/type/exports.d.ts +36 -0
- package/dist/type/exports.js +68 -0
- package/dist/type/exports.mjs +36 -0
- package/dist/type/index.d.ts +13 -0
- package/dist/type/index.js +81 -0
- package/dist/type/index.mjs +68 -0
- package/dist/type/shared.d.ts +27 -0
- package/dist/type/shared.js +171 -0
- package/dist/type/shared.mjs +161 -0
- package/dist/type/types.d.ts +206 -0
- package/dist/type/types.js +1 -0
- package/dist/type/types.mjs +1 -0
- package/dist/type/utils.d.ts +7 -0
- package/dist/type/utils.js +43 -0
- package/dist/type/utils.mjs +41 -0
- package/dist/type/validator/clean-safe.d.ts +8 -0
- package/dist/type/validator/clean-safe.js +82 -0
- package/dist/type/validator/clean-safe.mjs +77 -0
- package/dist/type/validator/custom-error.d.ts +10 -0
- package/dist/type/validator/custom-error.js +191 -0
- package/dist/type/validator/custom-error.mjs +188 -0
- package/dist/type/validator/default-precompute.d.ts +26 -0
- package/dist/type/validator/default-precompute.js +432 -0
- package/dist/type/validator/default-precompute.mjs +421 -0
- package/dist/type/validator/exact-mirror.d.ts +7 -0
- package/dist/type/validator/exact-mirror.js +19 -0
- package/dist/type/validator/exact-mirror.mjs +15 -0
- package/dist/type/validator/frozen-check.d.ts +11 -0
- package/dist/type/validator/frozen-check.js +20 -0
- package/dist/type/validator/frozen-check.mjs +19 -0
- package/dist/type/validator/index.d.ts +32 -0
- package/dist/type/validator/index.js +657 -0
- package/dist/type/validator/index.mjs +651 -0
- package/dist/type/validator/string-codec-aot.d.ts +8 -0
- package/dist/type/validator/string-codec-aot.js +68 -0
- package/dist/type/validator/string-codec-aot.mjs +66 -0
- package/dist/type/validator/validator-cache.d.ts +26 -0
- package/dist/type/validator/validator-cache.js +247 -0
- package/dist/type/validator/validator-cache.mjs +242 -0
- package/dist/types.d.ts +938 -1235
- package/dist/types.js +1 -14
- package/dist/types.mjs +1 -0
- package/dist/universal/constants.d.ts +6 -0
- package/dist/universal/constants.js +19 -0
- package/dist/universal/constants.mjs +15 -0
- package/dist/universal/env.d.ts +5 -1
- package/dist/universal/env.js +12 -26
- package/dist/universal/env.mjs +10 -5
- package/dist/universal/file.d.ts +55 -86
- package/dist/universal/file.js +116 -157
- package/dist/universal/file.mjs +111 -132
- package/dist/universal/index.d.ts +5 -3
- package/dist/universal/index.js +8 -27
- package/dist/universal/index.mjs +4 -5
- package/dist/universal/is-production.d.ts +5 -0
- package/dist/universal/is-production.js +10 -0
- package/dist/universal/is-production.mjs +8 -0
- package/dist/universal/server.d.ts +318 -313
- package/dist/universal/server.js +1 -14
- package/dist/universal/server.mjs +1 -0
- package/dist/utils.d.ts +162 -191
- package/dist/utils.js +732 -693
- package/dist/utils.mjs +683 -631
- package/dist/validator/index.d.ts +63 -0
- package/dist/validator/index.js +299 -0
- package/dist/validator/index.mjs +296 -0
- package/dist/validator/route.d.ts +32 -0
- package/dist/validator/route.js +51 -0
- package/dist/validator/route.mjs +50 -0
- package/dist/ws/context.d.ts +49 -0
- package/dist/ws/context.js +152 -0
- package/dist/ws/context.mjs +150 -0
- package/dist/ws/index.d.ts +5 -77
- package/dist/ws/index.js +11 -180
- package/dist/ws/index.mjs +5 -157
- package/dist/ws/parser.d.ts +5 -0
- package/dist/ws/parser.js +69 -0
- package/dist/ws/parser.mjs +66 -0
- package/dist/ws/route.d.ts +16 -0
- package/dist/ws/route.js +560 -0
- package/dist/ws/route.mjs +554 -0
- package/dist/ws/types.d.ts +154 -57
- package/dist/ws/types.js +1 -14
- package/dist/ws/types.mjs +1 -0
- package/package.json +179 -120
- package/bunfig.toml +0 -2
- package/dist/adapter/bun/compose.d.ts +0 -3
- package/dist/adapter/bun/compose.js +0 -90
- package/dist/adapter/bun/compose.mjs +0 -74
- package/dist/adapter/bun/handler-native.d.ts +0 -3
- package/dist/adapter/bun/handler-native.js +0 -42
- package/dist/adapter/bun/handler-native.mjs +0 -22
- package/dist/adapter/bun/handler.d.ts +0 -7
- package/dist/adapter/bun/handler.js +0 -363
- package/dist/adapter/bun/handler.mjs +0 -346
- package/dist/adapter/cloudflare-worker/index.d.ts +0 -20
- package/dist/adapter/cloudflare-worker/index.js +0 -59
- package/dist/adapter/cloudflare-worker/index.mjs +0 -39
- package/dist/compose.d.ts +0 -30
- package/dist/compose.js +0 -1324
- package/dist/compose.mjs +0 -1336
- package/dist/cookies.d.ts +0 -158
- package/dist/cookies.js +0 -250
- package/dist/cookies.mjs +0 -221
- package/dist/dynamic-handle.d.ts +0 -15
- package/dist/dynamic-handle.js +0 -521
- package/dist/dynamic-handle.mjs +0 -509
- package/dist/formats.d.ts +0 -79
- package/dist/formats.js +0 -153
- package/dist/formats.mjs +0 -132
- package/dist/manifest.d.ts +0 -0
- package/dist/manifest.js +0 -1
- package/dist/manifest.mjs +0 -0
- package/dist/replace-schema.d.ts +0 -60
- package/dist/replace-schema.js +0 -140
- package/dist/replace-schema.mjs +0 -115
- package/dist/schema.d.ts +0 -107
- package/dist/schema.js +0 -833
- package/dist/schema.mjs +0 -814
- package/dist/type-system/format.d.ts +0 -55
- package/dist/type-system/format.js +0 -197
- package/dist/type-system/format.mjs +0 -175
- package/dist/type-system/index.d.ts +0 -45
- package/dist/type-system/index.js +0 -406
- package/dist/type-system/index.mjs +0 -394
- package/dist/type-system/types.d.ts +0 -155
- package/dist/type-system/types.js +0 -14
- package/dist/type-system/types.mjs +0 -0
- package/dist/type-system/utils.d.ts +0 -62
- package/dist/type-system/utils.js +0 -141
- package/dist/type-system/utils.mjs +0 -111
- package/dist/universal/request.d.ts +0 -29
- package/dist/universal/request.js +0 -126
- package/dist/universal/request.mjs +0 -105
- package/dist/universal/types.d.ts +0 -124
- package/dist/universal/types.js +0 -41
- package/dist/universal/types.mjs +0 -19
- package/dist/universal/utils.d.ts +0 -3
- package/dist/universal/utils.js +0 -41
- package/dist/universal/utils.mjs +0 -18
- package/dist/ws/bun.d.ts +0 -419
- package/dist/ws/bun.js +0 -14
- package/dist/ws/bun.mjs +0 -0
- package/knip.json +0 -22
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
//#region src/adapter/origin.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* Provenance channel for deferred abort-signal arming.
|
|
4
|
+
*
|
|
5
|
+
* Bun materializes `Request.signal` lazily (~214ns on the first read), so
|
|
6
|
+
* Elysia only pays for it once the pipeline can actually observe an abort,
|
|
7
|
+
* that is, after it suspends. Deferring that read is only sound for the exact
|
|
8
|
+
* `Request` instance `Bun.serve` handed to `fetch`: any other request
|
|
9
|
+
* (`app.handle`, a non-Bun adapter, or a `.wrap()` HOC that substitutes the
|
|
10
|
+
* request) may carry a user-controlled signal that is already aborted at entry
|
|
11
|
+
* and therefore must be observed synchronously.
|
|
12
|
+
*
|
|
13
|
+
* The Bun adapter publishes the untouched original here for the *synchronous*
|
|
14
|
+
* prologue of `app.fetch` and, on the lane where `fetch` has no request hook
|
|
15
|
+
* to run, for the compiled route's own entry probe, which is still inside that
|
|
16
|
+
* same synchronous frame, then clears it in `finally`, so the window closes
|
|
17
|
+
* before the first suspension and cannot leak across concurrent requests.
|
|
18
|
+
* A `.wrap()` HOC that replaces the request or defers calling `next()` past a
|
|
19
|
+
* microtask simply misses the window, fetch handler falls back to eager check
|
|
20
|
+
*
|
|
21
|
+
* ## "A single shared slot that every request writes to, so a race condition?"
|
|
22
|
+
*
|
|
23
|
+
* It looks like one, but it can't be. Explained like you're five:
|
|
24
|
+
*
|
|
25
|
+
* JavaScript only ever does ONE thing at a time. When a request comes in, the
|
|
26
|
+
* adapter writes its name on the whiteboard (`origin.request = request`),
|
|
27
|
+
* walks it down the hall (`fetch(request)` the synchronous part, where the
|
|
28
|
+
* one and only identity check happens, in `fetch`'s prologue, or at the
|
|
29
|
+
* compiled route's entry when `fetch` had no hook to run first), and erases
|
|
30
|
+
* the whiteboard `finally`
|
|
31
|
+
* all in one uninterruptible turn. The next request's turn CANNOT start
|
|
32
|
+
* until this turn is completely finished, because that is how the event loop
|
|
33
|
+
* works: run-to-completion, no preemption. So request B can never see request
|
|
34
|
+
* A's name on the board, by the time B's turn starts, the board was already
|
|
35
|
+
* erased at the end of A's turn.
|
|
36
|
+
*
|
|
37
|
+
* "But the handler is async!" the `await`s inside it run LATER, in separate
|
|
38
|
+
* turns. That is fine, because the check already happened: the verdict was
|
|
39
|
+
* copied onto that request's own context (`'~sig'`) during the synchronous
|
|
40
|
+
* part, and the code that runs after an `await` only ever reads the context,
|
|
41
|
+
* never this slot.
|
|
42
|
+
*
|
|
43
|
+
* And if any assumption here ever breaks, a runtime that re-enters, a wrap
|
|
44
|
+
* that delays, a future edit that sneaks an `await` in before the check the
|
|
45
|
+
* comparison simply MISSES and the request falls back to eager arming, which
|
|
46
|
+
* is the exact pre-optimization behavior. Every failure mode makes a request
|
|
47
|
+
* slightly slower, never incorrect
|
|
48
|
+
*
|
|
49
|
+
* Adversarial proof, not just argument: `test/core/abort-race.test.ts` storms
|
|
50
|
+
* concurrent servers, in-process `handle()` calls, request-substituting and
|
|
51
|
+
* `next()`-delaying wraps at this slot and asserts zero misclassification.
|
|
52
|
+
*
|
|
53
|
+
* Never infer the Bun runtime from `fetch`'s second argument: Cloudflare
|
|
54
|
+
* Workers pass `env` there.
|
|
55
|
+
*
|
|
56
|
+
* It's insanely stupid, but it works. As Bun is single-threaded and synchronous
|
|
57
|
+
* so the `finally` block will always run before the next request comes in.
|
|
58
|
+
*/
|
|
59
|
+
declare const origin: {
|
|
60
|
+
request: Request | undefined;
|
|
61
|
+
};
|
|
62
|
+
//#endregion
|
|
63
|
+
export { origin };
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
2
|
+
|
|
3
|
+
//#region src/adapter/origin.ts
|
|
4
|
+
/**
|
|
5
|
+
* Provenance channel for deferred abort-signal arming.
|
|
6
|
+
*
|
|
7
|
+
* Bun materializes `Request.signal` lazily (~214ns on the first read), so
|
|
8
|
+
* Elysia only pays for it once the pipeline can actually observe an abort,
|
|
9
|
+
* that is, after it suspends. Deferring that read is only sound for the exact
|
|
10
|
+
* `Request` instance `Bun.serve` handed to `fetch`: any other request
|
|
11
|
+
* (`app.handle`, a non-Bun adapter, or a `.wrap()` HOC that substitutes the
|
|
12
|
+
* request) may carry a user-controlled signal that is already aborted at entry
|
|
13
|
+
* and therefore must be observed synchronously.
|
|
14
|
+
*
|
|
15
|
+
* The Bun adapter publishes the untouched original here for the *synchronous*
|
|
16
|
+
* prologue of `app.fetch` and, on the lane where `fetch` has no request hook
|
|
17
|
+
* to run, for the compiled route's own entry probe, which is still inside that
|
|
18
|
+
* same synchronous frame, then clears it in `finally`, so the window closes
|
|
19
|
+
* before the first suspension and cannot leak across concurrent requests.
|
|
20
|
+
* A `.wrap()` HOC that replaces the request or defers calling `next()` past a
|
|
21
|
+
* microtask simply misses the window, fetch handler falls back to eager check
|
|
22
|
+
*
|
|
23
|
+
* ## "A single shared slot that every request writes to, so a race condition?"
|
|
24
|
+
*
|
|
25
|
+
* It looks like one, but it can't be. Explained like you're five:
|
|
26
|
+
*
|
|
27
|
+
* JavaScript only ever does ONE thing at a time. When a request comes in, the
|
|
28
|
+
* adapter writes its name on the whiteboard (`origin.request = request`),
|
|
29
|
+
* walks it down the hall (`fetch(request)` the synchronous part, where the
|
|
30
|
+
* one and only identity check happens, in `fetch`'s prologue, or at the
|
|
31
|
+
* compiled route's entry when `fetch` had no hook to run first), and erases
|
|
32
|
+
* the whiteboard `finally`
|
|
33
|
+
* all in one uninterruptible turn. The next request's turn CANNOT start
|
|
34
|
+
* until this turn is completely finished, because that is how the event loop
|
|
35
|
+
* works: run-to-completion, no preemption. So request B can never see request
|
|
36
|
+
* A's name on the board, by the time B's turn starts, the board was already
|
|
37
|
+
* erased at the end of A's turn.
|
|
38
|
+
*
|
|
39
|
+
* "But the handler is async!" the `await`s inside it run LATER, in separate
|
|
40
|
+
* turns. That is fine, because the check already happened: the verdict was
|
|
41
|
+
* copied onto that request's own context (`'~sig'`) during the synchronous
|
|
42
|
+
* part, and the code that runs after an `await` only ever reads the context,
|
|
43
|
+
* never this slot.
|
|
44
|
+
*
|
|
45
|
+
* And if any assumption here ever breaks, a runtime that re-enters, a wrap
|
|
46
|
+
* that delays, a future edit that sneaks an `await` in before the check the
|
|
47
|
+
* comparison simply MISSES and the request falls back to eager arming, which
|
|
48
|
+
* is the exact pre-optimization behavior. Every failure mode makes a request
|
|
49
|
+
* slightly slower, never incorrect
|
|
50
|
+
*
|
|
51
|
+
* Adversarial proof, not just argument: `test/core/abort-race.test.ts` storms
|
|
52
|
+
* concurrent servers, in-process `handle()` calls, request-substituting and
|
|
53
|
+
* `next()`-delaying wraps at this slot and asserts zero misclassification.
|
|
54
|
+
*
|
|
55
|
+
* Never infer the Bun runtime from `fetch`'s second argument: Cloudflare
|
|
56
|
+
* Workers pass `env` there.
|
|
57
|
+
*
|
|
58
|
+
* It's insanely stupid, but it works. As Bun is single-threaded and synchronous
|
|
59
|
+
* so the `finally` block will always run before the next request comes in.
|
|
60
|
+
*/
|
|
61
|
+
const origin = { request: void 0 };
|
|
62
|
+
|
|
63
|
+
//#endregion
|
|
64
|
+
exports.origin = origin;
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
//#region src/adapter/origin.ts
|
|
2
|
+
/**
|
|
3
|
+
* Provenance channel for deferred abort-signal arming.
|
|
4
|
+
*
|
|
5
|
+
* Bun materializes `Request.signal` lazily (~214ns on the first read), so
|
|
6
|
+
* Elysia only pays for it once the pipeline can actually observe an abort,
|
|
7
|
+
* that is, after it suspends. Deferring that read is only sound for the exact
|
|
8
|
+
* `Request` instance `Bun.serve` handed to `fetch`: any other request
|
|
9
|
+
* (`app.handle`, a non-Bun adapter, or a `.wrap()` HOC that substitutes the
|
|
10
|
+
* request) may carry a user-controlled signal that is already aborted at entry
|
|
11
|
+
* and therefore must be observed synchronously.
|
|
12
|
+
*
|
|
13
|
+
* The Bun adapter publishes the untouched original here for the *synchronous*
|
|
14
|
+
* prologue of `app.fetch` and, on the lane where `fetch` has no request hook
|
|
15
|
+
* to run, for the compiled route's own entry probe, which is still inside that
|
|
16
|
+
* same synchronous frame, then clears it in `finally`, so the window closes
|
|
17
|
+
* before the first suspension and cannot leak across concurrent requests.
|
|
18
|
+
* A `.wrap()` HOC that replaces the request or defers calling `next()` past a
|
|
19
|
+
* microtask simply misses the window, fetch handler falls back to eager check
|
|
20
|
+
*
|
|
21
|
+
* ## "A single shared slot that every request writes to, so a race condition?"
|
|
22
|
+
*
|
|
23
|
+
* It looks like one, but it can't be. Explained like you're five:
|
|
24
|
+
*
|
|
25
|
+
* JavaScript only ever does ONE thing at a time. When a request comes in, the
|
|
26
|
+
* adapter writes its name on the whiteboard (`origin.request = request`),
|
|
27
|
+
* walks it down the hall (`fetch(request)` the synchronous part, where the
|
|
28
|
+
* one and only identity check happens, in `fetch`'s prologue, or at the
|
|
29
|
+
* compiled route's entry when `fetch` had no hook to run first), and erases
|
|
30
|
+
* the whiteboard `finally`
|
|
31
|
+
* all in one uninterruptible turn. The next request's turn CANNOT start
|
|
32
|
+
* until this turn is completely finished, because that is how the event loop
|
|
33
|
+
* works: run-to-completion, no preemption. So request B can never see request
|
|
34
|
+
* A's name on the board, by the time B's turn starts, the board was already
|
|
35
|
+
* erased at the end of A's turn.
|
|
36
|
+
*
|
|
37
|
+
* "But the handler is async!" the `await`s inside it run LATER, in separate
|
|
38
|
+
* turns. That is fine, because the check already happened: the verdict was
|
|
39
|
+
* copied onto that request's own context (`'~sig'`) during the synchronous
|
|
40
|
+
* part, and the code that runs after an `await` only ever reads the context,
|
|
41
|
+
* never this slot.
|
|
42
|
+
*
|
|
43
|
+
* And if any assumption here ever breaks, a runtime that re-enters, a wrap
|
|
44
|
+
* that delays, a future edit that sneaks an `await` in before the check the
|
|
45
|
+
* comparison simply MISSES and the request falls back to eager arming, which
|
|
46
|
+
* is the exact pre-optimization behavior. Every failure mode makes a request
|
|
47
|
+
* slightly slower, never incorrect
|
|
48
|
+
*
|
|
49
|
+
* Adversarial proof, not just argument: `test/core/abort-race.test.ts` storms
|
|
50
|
+
* concurrent servers, in-process `handle()` calls, request-substituting and
|
|
51
|
+
* `next()`-delaying wraps at this slot and asserts zero misclassification.
|
|
52
|
+
*
|
|
53
|
+
* Never infer the Bun runtime from `fetch`'s second argument: Cloudflare
|
|
54
|
+
* Workers pass `env` there.
|
|
55
|
+
*
|
|
56
|
+
* It's insanely stupid, but it works. As Bun is single-threaded and synchronous
|
|
57
|
+
* so the `finally` block will always run before the next request comes in.
|
|
58
|
+
*/
|
|
59
|
+
const origin = { request: void 0 };
|
|
60
|
+
|
|
61
|
+
//#endregion
|
|
62
|
+
export { origin };
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
2
|
+
|
|
3
|
+
//#region src/adapter/response-ownership.ts
|
|
4
|
+
const borrowedResponses = /* @__PURE__ */ new WeakSet();
|
|
5
|
+
function borrow(response) {
|
|
6
|
+
borrowedResponses.add(response);
|
|
7
|
+
return response;
|
|
8
|
+
}
|
|
9
|
+
const isBorrowedResponse = (response) => borrowedResponses.has(response);
|
|
10
|
+
|
|
11
|
+
//#endregion
|
|
12
|
+
exports.borrow = borrow;
|
|
13
|
+
exports.isBorrowedResponse = isBorrowedResponse;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
//#region src/adapter/response-ownership.ts
|
|
2
|
+
const borrowedResponses = /* @__PURE__ */ new WeakSet();
|
|
3
|
+
function borrow(response) {
|
|
4
|
+
borrowedResponses.add(response);
|
|
5
|
+
return response;
|
|
6
|
+
}
|
|
7
|
+
const isBorrowedResponse = (response) => borrowedResponses.has(response);
|
|
8
|
+
|
|
9
|
+
//#endregion
|
|
10
|
+
export { borrow, isBorrowedResponse };
|
package/dist/adapter/types.d.ts
CHANGED
|
@@ -1,130 +1,55 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
1
|
+
import { ListenCallback, Serve } from "../universal/server.js";
|
|
2
|
+
import { MaybePromise } from "../types.js";
|
|
3
|
+
import { Context } from "../context.js";
|
|
4
|
+
import { AnyElysia } from "../base.js";
|
|
5
|
+
|
|
6
|
+
//#region src/adapter/types.d.ts
|
|
7
|
+
/**
|
|
8
|
+
* Elysia adapter 2
|
|
9
|
+
*
|
|
10
|
+
* @since 2.0.0
|
|
11
|
+
*/
|
|
12
|
+
interface ElysiaAdapterOptions<App extends AnyElysia | void = void> {
|
|
13
|
+
/**
|
|
14
|
+
* Name of the adapter, preferably runtime
|
|
15
|
+
*/
|
|
16
|
+
name: string;
|
|
17
|
+
/**
|
|
18
|
+
*
|
|
19
|
+
* @param app
|
|
20
|
+
*/
|
|
21
|
+
runtime: 'node' | 'deno' | 'bun' | 'cloudflare-worker' | 'browser' | 'vercel' | 'netlify' | 'lambda' | 'fastly' | 'edge' | 'unknown' | (string & {});
|
|
22
|
+
/**
|
|
23
|
+
* Whether this adapter is web standard
|
|
24
|
+
*/
|
|
25
|
+
isWebStandard: boolean;
|
|
26
|
+
/**
|
|
27
|
+
* Whether this adapter supports WebSocket.
|
|
28
|
+
*
|
|
29
|
+
* `.ws()` throws on non-Bun runtimes unless this is set.
|
|
30
|
+
*/
|
|
31
|
+
websocket?: boolean;
|
|
32
|
+
listen?(app: AnyElysia, options: string | number | Partial<Serve>, callback?: ListenCallback): void;
|
|
33
|
+
parse: {
|
|
34
|
+
json: (context: Context) => MaybePromise<Record<keyof any, undefined> | unknown[]>;
|
|
35
|
+
text: (context: Context) => MaybePromise<string>;
|
|
36
|
+
urlencoded: (context: Context) => MaybePromise<Record<string, string | string[]>>;
|
|
37
|
+
arrayBuffer: (context: Context) => MaybePromise<ArrayBuffer>;
|
|
38
|
+
formData: (context: Context) => MaybePromise<Record<string, unknown>>;
|
|
39
|
+
default: (context: Context, contentType: string, normalized?: boolean) => MaybePromise<any>;
|
|
40
|
+
};
|
|
41
|
+
response: {
|
|
10
42
|
/**
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
* ---
|
|
14
|
-
* @example
|
|
15
|
-
* ```typescript
|
|
16
|
-
* app.stop()
|
|
17
|
-
* ```
|
|
18
|
-
*
|
|
19
|
-
* @example
|
|
20
|
-
* ```typescript
|
|
21
|
-
* app.stop(true) // Abruptly any requests inflight
|
|
22
|
-
* ```
|
|
43
|
+
* Map return response on every case
|
|
23
44
|
*/
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
handler: {
|
|
27
|
-
/**
|
|
28
|
-
* Map return response on every case
|
|
29
|
-
*/
|
|
30
|
-
mapResponse(response: unknown, set: Context['set'], ...params: unknown[]): unknown;
|
|
31
|
-
/**
|
|
32
|
-
* Map response on truthy value
|
|
33
|
-
*/
|
|
34
|
-
mapEarlyResponse(response: unknown, set: Context['set'], ...params: unknown[]): unknown;
|
|
35
|
-
/**
|
|
36
|
-
* Map response without cookie, status or headers
|
|
37
|
-
*/
|
|
38
|
-
mapCompactResponse(response: unknown, ...params: unknown[]): unknown;
|
|
39
|
-
/**
|
|
40
|
-
* Compile inline to value
|
|
41
|
-
*
|
|
42
|
-
* @example
|
|
43
|
-
* ```ts
|
|
44
|
-
* Elysia().get('/', 'static')
|
|
45
|
-
* ```
|
|
46
|
-
*/
|
|
47
|
-
createStaticHandler?(handle: unknown, hooks: AnyLocalHook, setHeaders?: Context['set']['headers'], ...params: unknown[]): (() => unknown) | undefined;
|
|
48
|
-
/**
|
|
49
|
-
* If the runtime support cloning response
|
|
50
|
-
*
|
|
51
|
-
* eg. Bun.serve({ static })
|
|
52
|
-
*/
|
|
53
|
-
createNativeStaticHandler?(handle: unknown, hooks: AnyLocalHook, set?: Context['set']): (() => MaybePromise<Response>) | undefined;
|
|
54
|
-
};
|
|
55
|
-
composeHandler: {
|
|
56
|
-
mapResponseContext?: string;
|
|
57
|
-
/**
|
|
58
|
-
* Declare any variable that will be used in the general handler
|
|
59
|
-
*/
|
|
60
|
-
declare?(inference: Sucrose.Inference): string | undefined;
|
|
61
|
-
/**
|
|
62
|
-
* Inject variable to the general handler
|
|
63
|
-
*/
|
|
64
|
-
inject?: Record<string, unknown>;
|
|
65
|
-
/**
|
|
66
|
-
* Whether retriving headers should be using webstandard headers
|
|
67
|
-
*
|
|
68
|
-
* @default false
|
|
69
|
-
*/
|
|
70
|
-
preferWebstandardHeaders?: boolean;
|
|
71
|
-
/**
|
|
72
|
-
* fnLiteral for parsing request headers
|
|
73
|
-
*
|
|
74
|
-
* @declaration
|
|
75
|
-
* c.headers: Context headers
|
|
76
|
-
*/
|
|
77
|
-
headers: string;
|
|
78
|
-
/**
|
|
79
|
-
* fnLiteral for parsing the request body
|
|
80
|
-
*
|
|
81
|
-
* @declaration
|
|
82
|
-
* c.body: Context body
|
|
83
|
-
*/
|
|
84
|
-
parser: Prettify<Record<'json' | 'text' | 'urlencoded' | 'arrayBuffer' | 'formData', (isOptional: boolean) => string> & {
|
|
85
|
-
declare?: string;
|
|
86
|
-
}>;
|
|
87
|
-
};
|
|
88
|
-
composeGeneralHandler: {
|
|
89
|
-
parameters?: string;
|
|
90
|
-
error404(hasEventHook: boolean, hasErrorHook: boolean, afterResponseHandler?: string): {
|
|
91
|
-
declare: string;
|
|
92
|
-
code: string;
|
|
93
|
-
};
|
|
94
|
-
/**
|
|
95
|
-
* fnLiteral of the general handler
|
|
96
|
-
*
|
|
97
|
-
* @declaration
|
|
98
|
-
* c: Context
|
|
99
|
-
* p: pathname
|
|
100
|
-
*/
|
|
101
|
-
createContext(app: AnyElysia): string;
|
|
102
|
-
/**
|
|
103
|
-
* Inject variable to the general handler
|
|
104
|
-
*/
|
|
105
|
-
inject?: Record<string, unknown>;
|
|
106
|
-
};
|
|
107
|
-
composeError: {
|
|
108
|
-
declare?: string;
|
|
109
|
-
inject?: Record<string, unknown>;
|
|
110
|
-
mapResponseContext: string;
|
|
111
|
-
validationError: string;
|
|
112
|
-
/**
|
|
113
|
-
* Handle thrown error which is instance of Error
|
|
114
|
-
*
|
|
115
|
-
* Despite its name of `unknownError`, it also handle named error like `NOT_FOUND`, `VALIDATION_ERROR`
|
|
116
|
-
* It's named `unknownError` because it also catch unknown error
|
|
117
|
-
*/
|
|
118
|
-
unknownError: string;
|
|
119
|
-
};
|
|
120
|
-
ws?(app: AnyElysia, path: string, handler: AnyWSLocalHook): unknown;
|
|
45
|
+
map(response: unknown, set: Context['set'], ...params: unknown[]): unknown; /** Support immutable shared default headers. */
|
|
46
|
+
supportsDefaultHeaderSink?: true;
|
|
121
47
|
/**
|
|
122
|
-
*
|
|
123
|
-
* eg. Bun.serve.routes, uWebSocket
|
|
124
|
-
**/
|
|
125
|
-
createSystemRouterHandler?(method: string, path: string, hook: AnyLocalHook, app: AnyElysia): void;
|
|
126
|
-
/**
|
|
127
|
-
* Call thing before compile
|
|
48
|
+
* Map response without cookie, status or headers
|
|
128
49
|
*/
|
|
129
|
-
|
|
50
|
+
compact?(response: unknown, ...params: unknown[]): unknown;
|
|
51
|
+
};
|
|
52
|
+
setup?(app: AnyElysia): App;
|
|
130
53
|
}
|
|
54
|
+
//#endregion
|
|
55
|
+
export { ElysiaAdapterOptions };
|
package/dist/adapter/types.js
CHANGED
|
@@ -1,14 +1 @@
|
|
|
1
|
-
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
var __copyProps = (to, from, except, desc) => {
|
|
7
|
-
if (from && typeof from == "object" || typeof from == "function")
|
|
8
|
-
for (let key of __getOwnPropNames(from))
|
|
9
|
-
!__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
10
|
-
return to;
|
|
11
|
-
};
|
|
12
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: !0 }), mod);
|
|
13
|
-
var types_exports = {};
|
|
14
|
-
module.exports = __toCommonJS(types_exports);
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
package/dist/adapter/types.mjs
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { };
|
package/dist/adapter/utils.d.ts
CHANGED
|
@@ -1,22 +1,50 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
1
|
+
import { BaseCookie } from "../cookie/types.js";
|
|
2
|
+
import { StatusMap } from "../constants.js";
|
|
3
|
+
import { ElysiaFile } from "../universal/file.js";
|
|
4
|
+
import { HTTPHeaders } from "../types.js";
|
|
5
|
+
import { Context } from "../context.js";
|
|
6
|
+
//#region src/adapter/utils.d.ts
|
|
7
|
+
declare function materializeSetHeaders(set: Context['set']): any;
|
|
8
|
+
declare function normalizeContentType(contentType: string): string;
|
|
9
|
+
declare function handleFile(response: File | Blob | ElysiaFile, set?: Context['set'], request?: Request, size?: number): Response;
|
|
10
|
+
declare function parseSetCookies(headers: Headers, setCookie: string[]): Headers;
|
|
11
|
+
declare function responseToSetHeaders(response: Response, set?: Context['set']): {
|
|
12
|
+
headers: HTTPHeaders;
|
|
13
|
+
status?: number | keyof StatusMap;
|
|
14
|
+
cookie?: Record<string, BaseCookie>;
|
|
15
|
+
} | {
|
|
16
|
+
headers: any;
|
|
17
|
+
status: number | "Continue" | "Switching Protocols" | "Processing" | "Early Hints" | "OK" | "Created" | "Accepted" | "Non-Authoritative Information" | "No Content" | "Reset Content" | "Partial Content" | "Multi-Status" | "Already Reported" | "Multiple Choices" | "Moved Permanently" | "Found" | "See Other" | "Not Modified" | "Temporary Redirect" | "Permanent Redirect" | "Bad Request" | "Unauthorized" | "Payment Required" | "Forbidden" | "Not Found" | "Method Not Allowed" | "Not Acceptable" | "Proxy Authentication Required" | "Request Timeout" | "Conflict" | "Gone" | "Length Required" | "Precondition Failed" | "Payload Too Large" | "URI Too Long" | "Unsupported Media Type" | "Range Not Satisfiable" | "Expectation Failed" | "I'm a teapot" | "Enhance Your Calm" | "Misdirected Request" | "Unprocessable Content" | "Locked" | "Failed Dependency" | "Too Early" | "Upgrade Required" | "Precondition Required" | "Too Many Requests" | "Request Header Fields Too Large" | "Unavailable For Legal Reasons" | "Internal Server Error" | "Not Implemented" | "Bad Gateway" | "Service Unavailable" | "Gateway Timeout" | "HTTP Version Not Supported" | "Variant Also Negotiates" | "Insufficient Storage" | "Loop Detected" | "Not Extended" | "Network Authentication Required";
|
|
10
18
|
};
|
|
11
19
|
interface CreateHandlerParameter {
|
|
12
|
-
|
|
13
|
-
|
|
20
|
+
mapResponse(response: unknown, set: Context['set'], request?: Request, owned?: boolean): Response;
|
|
21
|
+
mapCompactResponse(response: unknown, request?: Request, owned?: boolean): Response;
|
|
14
22
|
}
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
+
declare function createStreamHandler({
|
|
24
|
+
mapResponse,
|
|
25
|
+
mapCompactResponse
|
|
26
|
+
}: CreateHandlerParameter): (generator: Generator | AsyncGenerator | ReadableStream, set?: Context["set"], request?: Request, skipFormat?: boolean, owned?: boolean) => Promise<Response>;
|
|
27
|
+
declare function streamResponse(response: Response): AsyncGenerator<any, void, any>;
|
|
28
|
+
declare function handleSet(set: Context['set']): void;
|
|
29
|
+
declare function createResponseHandler(handler: CreateHandlerParameter): (response: Response, set?: Context["set"], request?: Request, owned?: boolean) => any;
|
|
30
|
+
/**
|
|
31
|
+
* Split async source into `branches` independent iterators
|
|
32
|
+
*
|
|
33
|
+
* A producer drains the source ahead of consumers
|
|
34
|
+
*
|
|
35
|
+
* To prevent long/infinite stream, the unconsumed window is capped:
|
|
36
|
+
* Consumed-by-every-branch entries are trimmed off the front
|
|
37
|
+
* Producer backpressures whenever the window hits `cap` ENTRIES or
|
|
38
|
+
* `capBytes` bytes, whichever comes first
|
|
39
|
+
*
|
|
40
|
+
* Streams below both caps buffer eagerly
|
|
41
|
+
* Only streams exceeding one gate on the slowest consumer
|
|
42
|
+
*
|
|
43
|
+
* Branch 0 is the value consumer (response/client)
|
|
44
|
+
* When `return()` (client abort / early exit), source is stopped
|
|
45
|
+
* so the observer branches can still reach completion instead of spinning
|
|
46
|
+
* an infinite source
|
|
47
|
+
*/
|
|
48
|
+
declare function tee<T>(source: AsyncIterable<T>, branches?: number, cap?: number, capBytes?: number): AsyncIterableIterator<T>[];
|
|
49
|
+
//#endregion
|
|
50
|
+
export { createResponseHandler, createStreamHandler, handleFile, handleSet, materializeSetHeaders, normalizeContentType, parseSetCookies, responseToSetHeaders, streamResponse, tee };
|