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,291 @@
|
|
|
1
|
+
import { JITProbeResult } from "../../compile/jit-probe.js";
|
|
2
|
+
import { AotTarget } from "./source.js";
|
|
3
|
+
|
|
4
|
+
//#region src/plugin/aot/core.d.ts
|
|
5
|
+
interface ElysiaAotOptions {
|
|
6
|
+
/**
|
|
7
|
+
* Specifier the generated module imports `Compiled` from
|
|
8
|
+
* Must resolve to the same `elysia` instance the app runs
|
|
9
|
+
*
|
|
10
|
+
* @default 'elysia'
|
|
11
|
+
*/
|
|
12
|
+
registerFrom?: string;
|
|
13
|
+
/**
|
|
14
|
+
* Specifier the generated module imports the `Reconstruct` table from.
|
|
15
|
+
* Pure so any elysia copy works (registration goes through `Compiled`)
|
|
16
|
+
*
|
|
17
|
+
* @default 'elysia/reconstruct'
|
|
18
|
+
*/
|
|
19
|
+
reconstructFrom?: string;
|
|
20
|
+
/**
|
|
21
|
+
* Split the emitted validator manifest into lazily-materialized groups
|
|
22
|
+
*
|
|
23
|
+
* Validator entries are registered as grouped thunks: a group's
|
|
24
|
+
* validators are constructed on the first request to any route in that
|
|
25
|
+
* group, trading first-request latency in unbuilt groups for lower
|
|
26
|
+
* startup cost. Handlers are always eager. Only validator construction
|
|
27
|
+
* is deferred. Pass a number to set the group size explicitly.
|
|
28
|
+
*
|
|
29
|
+
* @default decided by Elysia based on route batch scale
|
|
30
|
+
*/
|
|
31
|
+
lazy?: boolean | number;
|
|
32
|
+
/**
|
|
33
|
+
* Deploy target for build-time-baked codegen consts (the response-header
|
|
34
|
+
* path). Set `target: 'workerd'` to build under Bun yet ship a manifest
|
|
35
|
+
* valid on Cloudflare Workers / Node.
|
|
36
|
+
*
|
|
37
|
+
* When set to an unambiguous runtime (`'bun'` or `'node'`/`'workerd'`),
|
|
38
|
+
* the plugin also aliases `adapter/constants` so that only the matching
|
|
39
|
+
* adapter ships in the bundle (the other one DCEs). When `target` is
|
|
40
|
+
* absent the runtime `isBun` check is preserved unchanged.
|
|
41
|
+
*
|
|
42
|
+
* @default the build runtime
|
|
43
|
+
*/
|
|
44
|
+
target?: AotTarget;
|
|
45
|
+
/**
|
|
46
|
+
* Replace `import { t } from 'elysia'` with `import * as t from 'elysia/type'`
|
|
47
|
+
* at build time so unused TypeBox constructors tree-shake
|
|
48
|
+
*
|
|
49
|
+
* @default true
|
|
50
|
+
*/
|
|
51
|
+
treeShake?: boolean;
|
|
52
|
+
/**
|
|
53
|
+
* Replace the internal handler compiler with a throwing stub so the bundler
|
|
54
|
+
* can drop the handler-JIT graph
|
|
55
|
+
*
|
|
56
|
+
* This is only safe when every route is reconstructed from the frozen AOT
|
|
57
|
+
* handler manifest. The plugin verifies that by replaying a frozen build and
|
|
58
|
+
* watching whether handler JIT is reached
|
|
59
|
+
*
|
|
60
|
+
* - `'auto'` (default): stub only when the frozen replay proves handler JIT
|
|
61
|
+
* is unused. Skip if any route still reaches handler JIT
|
|
62
|
+
* - `true`: require a fully precompiled handler manifest and throw if any
|
|
63
|
+
* route still reaches handler JIT
|
|
64
|
+
* - `false`: never stub
|
|
65
|
+
*
|
|
66
|
+
* @default 'auto'
|
|
67
|
+
*/
|
|
68
|
+
strip?: boolean | 'auto';
|
|
69
|
+
/**
|
|
70
|
+
* Treat this as a production build, making `isProduction` a compile-time
|
|
71
|
+
* constant `true` so bundlers can DCE `!isProduction()` branches.
|
|
72
|
+
*
|
|
73
|
+
* - `true` (default): stub `isProduction` as `() => true` so dev-verbose
|
|
74
|
+
* error paths tree-shake
|
|
75
|
+
* - `false`: leave `isProduction` as a runtime env read (preserves dev
|
|
76
|
+
* behaviour in the bundle)
|
|
77
|
+
*
|
|
78
|
+
* @default true
|
|
79
|
+
*/
|
|
80
|
+
production?: boolean;
|
|
81
|
+
/**
|
|
82
|
+
* Log one detail line per affected route when a sealed validator carries
|
|
83
|
+
* a coercion/codec schema (its 422 error detail can only name the
|
|
84
|
+
* offending field coarsely, best-effort).
|
|
85
|
+
*
|
|
86
|
+
* - `false` (default): collapse all affected routes into a single
|
|
87
|
+
* build-end summary line (none if no route is affected)
|
|
88
|
+
* - `true`: also print the per-route detail line as each one is found
|
|
89
|
+
*
|
|
90
|
+
* @default false
|
|
91
|
+
*/
|
|
92
|
+
verbose?: boolean;
|
|
93
|
+
}
|
|
94
|
+
declare const resolveEntry: (entry: string) => string;
|
|
95
|
+
/** Runtime handler-JIT module a strip build can replace with a throwing stub. */
|
|
96
|
+
interface StubPlan {
|
|
97
|
+
/** Stub the internal handler codegen module. */
|
|
98
|
+
jit: boolean;
|
|
99
|
+
/** Stub internal WS route builders when the app declares no WS routes. */
|
|
100
|
+
ws: boolean;
|
|
101
|
+
/**
|
|
102
|
+
* Stub frozen-handler reconstruction (validator `va`, cookie `cc`, trace `tr`)
|
|
103
|
+
* when no replayed handler aliases any of them.
|
|
104
|
+
*/
|
|
105
|
+
reconstruct: boolean;
|
|
106
|
+
/**
|
|
107
|
+
* Stub the request-side cookie machinery (parse / jar / signing in
|
|
108
|
+
* `cookie/utils` + `cookie/config`) when no replayed handler aliases the
|
|
109
|
+
* cookie config (`cc`)
|
|
110
|
+
*/
|
|
111
|
+
cookie: boolean;
|
|
112
|
+
/**
|
|
113
|
+
* Stub the trace runtime (`trace.ts` `createTracer` + recorder machinery)
|
|
114
|
+
* when no replayed handler aliases trace (`tr`), or even under live
|
|
115
|
+
* handler JIT when the app registers no trace handler at all (`~hasTrace`
|
|
116
|
+
* + history sweep; a mount forbids it). Every call site (fetch, JIT
|
|
117
|
+
* codegen, frozen reconstruct) only calls in when trace handlers exist, so
|
|
118
|
+
* a throwing stub is unreachable once detection proves trace is unused
|
|
119
|
+
*
|
|
120
|
+
* NOT moot after the `elysia/trace` capability severance. The reachable
|
|
121
|
+
* post-severance case is: an app that `.use(trace())` (so the capability
|
|
122
|
+
* is registered and `dist/trace.mjs` IS in the bundle graph via
|
|
123
|
+
* `dist/plugin/trace.mjs`) but never attaches `.trace(fn)` (no trace
|
|
124
|
+
* hooks, so `tr` is unaliased and `mayTrace` is false). Under the frozen
|
|
125
|
+
* path (`jit`) this flag is still `true`, so the stub replaces the real
|
|
126
|
+
* trace module with the non-throwing `unionTracePhases(){return new Set()}`
|
|
127
|
+
* fallback (+ throwing `createTracer`, unreachable with zero hooks).
|
|
128
|
+
* Measured saving for that shape: ~18KB severing trace also tree-shakes
|
|
129
|
+
* sucrose's `separateFunction`, which trace is the sole importer of. A
|
|
130
|
+
* traceless app that never imports the capability (Fixture B) has no
|
|
131
|
+
* trace module in the graph, so the stub is a no-op there.
|
|
132
|
+
*/
|
|
133
|
+
trace: boolean;
|
|
134
|
+
/**
|
|
135
|
+
* Stub the `memory` module's `clearSucroseCache` edge when handler JIT is
|
|
136
|
+
* stubbed. Sucrose never runs in a precompiled app, so its caches are always
|
|
137
|
+
* empty and the flush is a no-op. Dropping the import lets the Sucrose
|
|
138
|
+
* analyzer tree-shake. `flushMemory`'s other clears are preserved, and the
|
|
139
|
+
* public `elysia/sucrose` module is left untouched
|
|
140
|
+
*/
|
|
141
|
+
sucrose: boolean;
|
|
142
|
+
/**
|
|
143
|
+
* Stub `type/compat` so `setupTypebox` becomes a no-op, un-wiring the
|
|
144
|
+
* TypeBox bridge from the bundle. Set in BOTH sealed (mode A) and wired
|
|
145
|
+
* (mode B) builds. In mode A the bridge is severed entirely. Every captured
|
|
146
|
+
* validator is bridge-free so nothing reaches it. In mode B the mirror
|
|
147
|
+
* (`bridge` → `bridge-live` reroute) replaces the latch, so `setupTypebox`
|
|
148
|
+
* must still be a no-op to guarantee the bridge is wired exactly once
|
|
149
|
+
*/
|
|
150
|
+
compat: boolean;
|
|
151
|
+
/**
|
|
152
|
+
* Re-route `type/bridge` → `type/bridge-live` (the statically-wired mirror)
|
|
153
|
+
* so the bridge exports resolve to real TypeBox members without the runtime
|
|
154
|
+
* `setupTypebox` latch. Set only in the wired build (mode B): the app has at
|
|
155
|
+
* least one validator that is not bridge-free, so the bridge is still needed
|
|
156
|
+
*/
|
|
157
|
+
bridge: boolean;
|
|
158
|
+
/**
|
|
159
|
+
* Replace `adapter/constants` with a target-specific stub that hard-selects
|
|
160
|
+
* either `BunAdapter` or `WebStandardAdapter`, letting the bundler DCE the
|
|
161
|
+
* other adapter. Only set when `target` unambiguously implies a runtime
|
|
162
|
+
* (`'bun'` → Bun; `'node'`/`'workerd'` → WebStandard). When `target` is
|
|
163
|
+
* absent or ambiguous this is `false` and the runtime `isBun` path is kept.
|
|
164
|
+
*/
|
|
165
|
+
adapter: 'bun' | 'web-standard' | false;
|
|
166
|
+
/**
|
|
167
|
+
* Replace `universal/is-production` with a stub that returns `true` at
|
|
168
|
+
* compile time so bundlers can DCE `!isProduction()` branches. Set when
|
|
169
|
+
* `production: true` (the default for plugin builds).
|
|
170
|
+
*/
|
|
171
|
+
isProduction: boolean;
|
|
172
|
+
}
|
|
173
|
+
/**
|
|
174
|
+
* Chosen TypeBox-collapse strategy for the build, logged in the dry-run line.
|
|
175
|
+
*
|
|
176
|
+
* - `'sealed'` (mode A): every captured validator is bridge-free (HTTP and WS
|
|
177
|
+
* alike) and the app is fully stripped (handler JIT unused). `compat` is
|
|
178
|
+
* stubbed and the bridge is severed, TypeBox collapses entirely
|
|
179
|
+
* - `'wired'` (mode B): at least one validator still needs the bridge. `compat`
|
|
180
|
+
* is stubbed AND the bridge is re-routed to the statically-wired mirror so it
|
|
181
|
+
* works without the DCE-fragile `setupTypebox()` anchor
|
|
182
|
+
* - `'off'`: no bridge action (strip disabled, or handler JIT still reachable,
|
|
183
|
+
* the frozen path is not active so the bridge stays wired the normal way)
|
|
184
|
+
*/
|
|
185
|
+
type BridgeMode = 'sealed' | 'wired' | 'off';
|
|
186
|
+
declare const NO_STUB: StubPlan;
|
|
187
|
+
/**
|
|
188
|
+
* Resolve whether handler JIT is safe to stub for `entry`, honouring the
|
|
189
|
+
* `strip` option. `'auto'` stubs only when detection proves handler JIT unused;
|
|
190
|
+
* `true` throws when handler JIT is still reachable; `false` disables.
|
|
191
|
+
*
|
|
192
|
+
* Also decides the TypeBox-collapse `mode`:
|
|
193
|
+
* - `'sealed'`: the frozen path is active (`jit`) and EVERY captured
|
|
194
|
+
* validator, HTTP and WS is bridge-free (`bridgeFree`). `setupTypebox` is
|
|
195
|
+
* stubbed and the bridge is severe, nothing reaches it, TypeBox collapses.
|
|
196
|
+
* - `'wired'`: the frozen path is active but at least one validator
|
|
197
|
+
* still needs the bridge. `setupTypebox` is stubbed AND the bridge is
|
|
198
|
+
* re-routed to the statically-wired mirror (works without the DCE-fragile
|
|
199
|
+
* `setupTypebox()` anchor).
|
|
200
|
+
* - `'off'`: handler JIT still reachable (or strip disabled). The frozen path
|
|
201
|
+
* is not active, so the bridge must stay wired the ordinary way. No compat
|
|
202
|
+
* stub, no reroute.
|
|
203
|
+
*/
|
|
204
|
+
declare function planFromReport(strip: boolean | 'auto', report: JITProbeResult, hasWS: boolean, mayTrace: boolean, aliases: Set<string>, allBridgeFree: boolean, zeroCapture: boolean, adapterStub?: 'bun' | 'web-standard' | false, productionStub?: boolean): {
|
|
205
|
+
plan: StubPlan;
|
|
206
|
+
mode: BridgeMode;
|
|
207
|
+
};
|
|
208
|
+
declare function adapterConstantsSource(target: 'bun' | 'web-standard'): string;
|
|
209
|
+
/** Filter matching elysia's own `adapter/constants` module (src + dist). */
|
|
210
|
+
declare const ADAPTER_CONSTANTS_FILTER: RegExp;
|
|
211
|
+
declare const ADAPTER_BUN_FILTER: RegExp;
|
|
212
|
+
declare const IS_PRODUCTION_FILTER: RegExp;
|
|
213
|
+
/**
|
|
214
|
+
* Loose fallback filter
|
|
215
|
+
*
|
|
216
|
+
* Matches the `/elysia/(dist|src)/` segment anywhere in a path (node_modules layouts,
|
|
217
|
+
* monorepos, linked installs). Used by esbuild as a broad pre-filter
|
|
218
|
+
*
|
|
219
|
+
* The caller must further check that the path is under the resolved elysia package root
|
|
220
|
+
* to avoid matching user code in a directory that happens to be named "elysia"
|
|
221
|
+
*
|
|
222
|
+
* @internal
|
|
223
|
+
*/
|
|
224
|
+
declare const ELYSIA_MODULE_FILTER: RegExp;
|
|
225
|
+
/**
|
|
226
|
+
* Build a predicate that returns `true` only for modules that are under the
|
|
227
|
+
* resolved elysia package root (i.e. actually elysia's own files).
|
|
228
|
+
*
|
|
229
|
+
* Anchoring to the real package root prevents user projects rooted in a
|
|
230
|
+
* directory named `elysia` (like this repo itself) from having their code
|
|
231
|
+
* rewritten.
|
|
232
|
+
*
|
|
233
|
+
* Pass the result to both the esbuild `filter` (convert to RegExp via
|
|
234
|
+
* `makeElysiaModuleFilterRegex`) and the Vite transform (`isElysiaModule`).
|
|
235
|
+
*/
|
|
236
|
+
declare function resolveElysiaRoot(from?: string): string;
|
|
237
|
+
/**
|
|
238
|
+
* Returns a predicate that is `true` only when the given module path is under
|
|
239
|
+
* the resolved elysia package root AND matches the broad module filter.
|
|
240
|
+
*/
|
|
241
|
+
declare function makeIsElysiaModule(elysiaRoot: string): (path: string) => boolean;
|
|
242
|
+
/**
|
|
243
|
+
* Build an esbuild-compatible RegExp that anchors to the resolved elysia root
|
|
244
|
+
* so the `onLoad` pre-filter is as tight as possible. esbuild uses this as an
|
|
245
|
+
* initial path filter before calling the callback, so we still double-check
|
|
246
|
+
* with `makeIsElysiaModule` inside the callback.
|
|
247
|
+
*/
|
|
248
|
+
declare function makeElysiaModuleFilterRegex(elysiaRoot: string): RegExp;
|
|
249
|
+
declare function rewriteIsProductionCalls(code: string): string;
|
|
250
|
+
declare const bunAdapterStubSource: string;
|
|
251
|
+
declare const STUB_SOURCES: Record<Exclude<keyof StubPlan, 'adapter' | 'isProduction'>, Array<{
|
|
252
|
+
filter: RegExp;
|
|
253
|
+
source: string;
|
|
254
|
+
}>>;
|
|
255
|
+
declare const alignStubExtensions: (stubSource: string, targetPath: string) => string;
|
|
256
|
+
declare const OVERRIDE_MAP: Record<string, {
|
|
257
|
+
leaf: string;
|
|
258
|
+
export: string;
|
|
259
|
+
}>;
|
|
260
|
+
declare function generateVirtualType(typeSpecifier?: string): Promise<string>;
|
|
261
|
+
interface CompiledArtifacts {
|
|
262
|
+
source: string;
|
|
263
|
+
/** Handler-JIT modules detection proved safe to stub for this app. */
|
|
264
|
+
stub: StubPlan;
|
|
265
|
+
/** Chosen TypeBox-collapse strategy (`sealed` / `wired` / `off`). */
|
|
266
|
+
mode: BridgeMode;
|
|
267
|
+
/**
|
|
268
|
+
* Virtual `elysia/type` module source (re-export surface, no `setupTypebox`).
|
|
269
|
+
* Served for `elysia/type` in both sealed and wired modes so unused `t.*`
|
|
270
|
+
* constructors tree-shake. `undefined` when the bridge is left wired (`off`).
|
|
271
|
+
*/
|
|
272
|
+
virtualType?: string;
|
|
273
|
+
}
|
|
274
|
+
/** @internal Test diagnostic for deterministic worker cleanup. */
|
|
275
|
+
declare const getAotWorkerDiagnostics: () => {
|
|
276
|
+
activeWorkers: number;
|
|
277
|
+
lastExit: Promise<number> | undefined;
|
|
278
|
+
};
|
|
279
|
+
/**
|
|
280
|
+
* Extension mirroring the running module's own build output, so a sibling
|
|
281
|
+
* source file can be resolved from `import.meta.url` in `.mjs`/`.js`/`.ts`
|
|
282
|
+
* builds alike.
|
|
283
|
+
*/
|
|
284
|
+
declare function siblingModuleExt(moduleUrl: string): '.mjs' | '.js' | '.ts';
|
|
285
|
+
/** @internal Re-evaluate an entry in a disposable worker for watch rebuilds. */
|
|
286
|
+
declare function generateCompiledArtifactsIsolated(file: string, options?: ElysiaAotOptions): Promise<CompiledArtifacts>;
|
|
287
|
+
declare function generateCompiledArtifacts(file: string, options?: ElysiaAotOptions): Promise<CompiledArtifacts>;
|
|
288
|
+
declare const SOURCE_REGEX: RegExp;
|
|
289
|
+
declare const realPath: (path: string) => string;
|
|
290
|
+
//#endregion
|
|
291
|
+
export { ADAPTER_BUN_FILTER, ADAPTER_CONSTANTS_FILTER, BridgeMode, CompiledArtifacts, ELYSIA_MODULE_FILTER, ElysiaAotOptions, IS_PRODUCTION_FILTER, NO_STUB, OVERRIDE_MAP, SOURCE_REGEX, STUB_SOURCES, StubPlan, adapterConstantsSource, alignStubExtensions, bunAdapterStubSource, generateCompiledArtifacts, generateCompiledArtifactsIsolated, generateVirtualType, getAotWorkerDiagnostics, makeElysiaModuleFilterRegex, makeIsElysiaModule, planFromReport, realPath, resolveElysiaRoot, resolveEntry, rewriteIsProductionCalls, siblingModuleExt };
|