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
package/dist/cookies.d.ts
DELETED
|
@@ -1,158 +0,0 @@
|
|
|
1
|
-
import type { Context } from './context';
|
|
2
|
-
import type { Prettify } from './types';
|
|
3
|
-
export interface CookieOptions {
|
|
4
|
-
/**
|
|
5
|
-
* Specifies the value for the {@link https://tools.ietf.org/html/rfc6265#section-5.2.3|Domain Set-Cookie attribute}. By default, no
|
|
6
|
-
* domain is set, and most clients will consider the cookie to apply to only
|
|
7
|
-
* the current domain.
|
|
8
|
-
*/
|
|
9
|
-
domain?: string | undefined;
|
|
10
|
-
/**
|
|
11
|
-
* Specifies the `Date` object to be the value for the {@link https://tools.ietf.org/html/rfc6265#section-5.2.1|`Expires` `Set-Cookie` attribute}. By default,
|
|
12
|
-
* no expiration is set, and most clients will consider this a "non-persistent cookie" and will delete
|
|
13
|
-
* it on a condition like exiting a web browser application.
|
|
14
|
-
*
|
|
15
|
-
* *Note* the {@link https://tools.ietf.org/html/rfc6265#section-5.3|cookie storage model specification}
|
|
16
|
-
* states that if both `expires` and `maxAge` are set, then `maxAge` takes precedence, but it is
|
|
17
|
-
* possible not all clients by obey this, so if both are set, they should
|
|
18
|
-
* point to the same date and time.
|
|
19
|
-
*/
|
|
20
|
-
expires?: Date | undefined;
|
|
21
|
-
/**
|
|
22
|
-
* Specifies the boolean value for the {@link https://tools.ietf.org/html/rfc6265#section-5.2.6|`HttpOnly` `Set-Cookie` attribute}.
|
|
23
|
-
* When truthy, the `HttpOnly` attribute is set, otherwise it is not. By
|
|
24
|
-
* default, the `HttpOnly` attribute is not set.
|
|
25
|
-
*
|
|
26
|
-
* *Note* be careful when setting this to true, as compliant clients will
|
|
27
|
-
* not allow client-side JavaScript to see the cookie in `document.cookie`.
|
|
28
|
-
*/
|
|
29
|
-
httpOnly?: boolean | undefined;
|
|
30
|
-
/**
|
|
31
|
-
* Specifies the number (in seconds) to be the value for the `Max-Age`
|
|
32
|
-
* `Set-Cookie` attribute. The given number will be converted to an integer
|
|
33
|
-
* by rounding down. By default, no maximum age is set.
|
|
34
|
-
*
|
|
35
|
-
* *Note* the {@link https://tools.ietf.org/html/rfc6265#section-5.3|cookie storage model specification}
|
|
36
|
-
* states that if both `expires` and `maxAge` are set, then `maxAge` takes precedence, but it is
|
|
37
|
-
* possible not all clients by obey this, so if both are set, they should
|
|
38
|
-
* point to the same date and time.
|
|
39
|
-
*/
|
|
40
|
-
maxAge?: number | undefined;
|
|
41
|
-
/**
|
|
42
|
-
* Specifies the value for the {@link https://tools.ietf.org/html/rfc6265#section-5.2.4|`Path` `Set-Cookie` attribute}.
|
|
43
|
-
* By default, the path is considered the "default path".
|
|
44
|
-
*/
|
|
45
|
-
path?: string | undefined;
|
|
46
|
-
/**
|
|
47
|
-
* Specifies the `string` to be the value for the [`Priority` `Set-Cookie` attribute][rfc-west-cookie-priority-00-4.1].
|
|
48
|
-
*
|
|
49
|
-
* - `'low'` will set the `Priority` attribute to `Low`.
|
|
50
|
-
* - `'medium'` will set the `Priority` attribute to `Medium`, the default priority when not set.
|
|
51
|
-
* - `'high'` will set the `Priority` attribute to `High`.
|
|
52
|
-
*
|
|
53
|
-
* More information about the different priority levels can be found in
|
|
54
|
-
* [the specification][rfc-west-cookie-priority-00-4.1].
|
|
55
|
-
*
|
|
56
|
-
* **note** This is an attribute that has not yet been fully standardized, and may change in the future.
|
|
57
|
-
* This also means many clients may ignore this attribute until they understand it.
|
|
58
|
-
*/
|
|
59
|
-
priority?: 'low' | 'medium' | 'high' | undefined;
|
|
60
|
-
/**
|
|
61
|
-
* Specifies the `boolean` value for the [`Partitioned` `Set-Cookie`](rfc-cutler-httpbis-partitioned-cookies)
|
|
62
|
-
* attribute. When truthy, the `Partitioned` attribute is set, otherwise it is not. By default, the
|
|
63
|
-
* `Partitioned` attribute is not set.
|
|
64
|
-
*
|
|
65
|
-
* **note** This is an attribute that has not yet been fully standardized, and may change in the future.
|
|
66
|
-
* This also means many clients may ignore this attribute until they understand it.
|
|
67
|
-
*
|
|
68
|
-
* More information about can be found in [the proposal](https://github.com/privacycg/CHIPS)
|
|
69
|
-
*/
|
|
70
|
-
partitioned?: boolean | undefined;
|
|
71
|
-
/**
|
|
72
|
-
* Specifies the boolean or string to be the value for the {@link https://tools.ietf.org/html/draft-ietf-httpbis-rfc6265bis-03#section-4.1.2.7|`SameSite` `Set-Cookie` attribute}.
|
|
73
|
-
*
|
|
74
|
-
* - `true` will set the `SameSite` attribute to `Strict` for strict same
|
|
75
|
-
* site enforcement.
|
|
76
|
-
* - `false` will not set the `SameSite` attribute.
|
|
77
|
-
* - `'lax'` will set the `SameSite` attribute to Lax for lax same site
|
|
78
|
-
* enforcement.
|
|
79
|
-
* - `'strict'` will set the `SameSite` attribute to Strict for strict same
|
|
80
|
-
* site enforcement.
|
|
81
|
-
* - `'none'` will set the SameSite attribute to None for an explicit
|
|
82
|
-
* cross-site cookie.
|
|
83
|
-
*
|
|
84
|
-
* More information about the different enforcement levels can be found in {@link https://tools.ietf.org/html/draft-ietf-httpbis-rfc6265bis-03#section-4.1.2.7|the specification}.
|
|
85
|
-
*
|
|
86
|
-
* *note* This is an attribute that has not yet been fully standardized, and may change in the future. This also means many clients may ignore this attribute until they understand it.
|
|
87
|
-
*/
|
|
88
|
-
sameSite?: true | false | 'lax' | 'strict' | 'none' | undefined;
|
|
89
|
-
/**
|
|
90
|
-
* Specifies the boolean value for the {@link https://tools.ietf.org/html/rfc6265#section-5.2.5|`Secure` `Set-Cookie` attribute}. When truthy, the
|
|
91
|
-
* `Secure` attribute is set, otherwise it is not. By default, the `Secure` attribute is not set.
|
|
92
|
-
*
|
|
93
|
-
* *Note* be careful when setting this to `true`, as compliant clients will
|
|
94
|
-
* not send the cookie back to the server in the future if the browser does
|
|
95
|
-
* not have an HTTPS connection.
|
|
96
|
-
*/
|
|
97
|
-
secure?: boolean | undefined;
|
|
98
|
-
/**
|
|
99
|
-
* Secret key for signing cookie
|
|
100
|
-
*
|
|
101
|
-
* If array is passed, will use Key Rotation.
|
|
102
|
-
*
|
|
103
|
-
* Key rotation is when an encryption key is retired
|
|
104
|
-
* and replaced by generating a new cryptographic key.
|
|
105
|
-
*
|
|
106
|
-
* When null is provided in array,
|
|
107
|
-
* Elysia will allow unsigned cookie for smooth
|
|
108
|
-
* transition from unsign to sign
|
|
109
|
-
*/
|
|
110
|
-
secrets?: string | null | (string | null)[];
|
|
111
|
-
}
|
|
112
|
-
export type ElysiaCookie = Prettify<CookieOptions & {
|
|
113
|
-
value?: unknown;
|
|
114
|
-
}>;
|
|
115
|
-
type Updater<T> = T | ((value: T) => T);
|
|
116
|
-
export declare class Cookie<T> implements ElysiaCookie {
|
|
117
|
-
private name;
|
|
118
|
-
private jar;
|
|
119
|
-
private initial;
|
|
120
|
-
private valueHash?;
|
|
121
|
-
constructor(name: string, jar: Record<string, ElysiaCookie>, initial?: Partial<ElysiaCookie>);
|
|
122
|
-
get cookie(): ElysiaCookie;
|
|
123
|
-
set cookie(jar: ElysiaCookie);
|
|
124
|
-
protected get setCookie(): ElysiaCookie;
|
|
125
|
-
protected set setCookie(jar: ElysiaCookie);
|
|
126
|
-
get value(): T;
|
|
127
|
-
set value(value: T);
|
|
128
|
-
get expires(): Date | undefined;
|
|
129
|
-
set expires(expires: Date | undefined);
|
|
130
|
-
get maxAge(): number | undefined;
|
|
131
|
-
set maxAge(maxAge: number | undefined);
|
|
132
|
-
get domain(): string | undefined;
|
|
133
|
-
set domain(domain: string | undefined);
|
|
134
|
-
get path(): string | undefined;
|
|
135
|
-
set path(path: string | undefined);
|
|
136
|
-
get secure(): boolean | undefined;
|
|
137
|
-
set secure(secure: boolean | undefined);
|
|
138
|
-
get httpOnly(): boolean | undefined;
|
|
139
|
-
set httpOnly(httpOnly: boolean | undefined);
|
|
140
|
-
get sameSite(): true | false | "lax" | "strict" | "none" | undefined;
|
|
141
|
-
set sameSite(sameSite: true | false | 'lax' | 'strict' | 'none' | undefined);
|
|
142
|
-
get priority(): "low" | "medium" | "high" | undefined;
|
|
143
|
-
set priority(priority: 'low' | 'medium' | 'high' | undefined);
|
|
144
|
-
get partitioned(): boolean | undefined;
|
|
145
|
-
set partitioned(partitioned: boolean | undefined);
|
|
146
|
-
get secrets(): ElysiaCookie["secrets"];
|
|
147
|
-
set secrets(secrets: ElysiaCookie['secrets']);
|
|
148
|
-
update(config: Updater<Partial<ElysiaCookie>>): this;
|
|
149
|
-
set(config: Updater<Partial<ElysiaCookie>>): this;
|
|
150
|
-
remove(): this | undefined;
|
|
151
|
-
toString(): string;
|
|
152
|
-
}
|
|
153
|
-
export declare const createCookieJar: (set: Context["set"], store: Record<string, ElysiaCookie>, initial?: Partial<ElysiaCookie>) => Record<string, Cookie<unknown>>;
|
|
154
|
-
export declare const parseCookie: (set: Context["set"], cookieString?: string | null, { secrets, sign, ...initial }?: CookieOptions & {
|
|
155
|
-
sign?: true | string | string[];
|
|
156
|
-
}) => Promise<Record<string, Cookie<unknown>>>;
|
|
157
|
-
export declare const serializeCookie: (cookies: Context["set"]["cookie"]) => string | string[] | undefined;
|
|
158
|
-
export {};
|
package/dist/cookies.js
DELETED
|
@@ -1,250 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __create = Object.create;
|
|
3
|
-
var __defProp = Object.defineProperty;
|
|
4
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
-
var __getProtoOf = Object.getPrototypeOf, __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
-
var __export = (target, all) => {
|
|
8
|
-
for (var name in all)
|
|
9
|
-
__defProp(target, name, { get: all[name], enumerable: !0 });
|
|
10
|
-
}, __copyProps = (to, from, except, desc) => {
|
|
11
|
-
if (from && typeof from == "object" || typeof from == "function")
|
|
12
|
-
for (let key of __getOwnPropNames(from))
|
|
13
|
-
!__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
14
|
-
return to;
|
|
15
|
-
};
|
|
16
|
-
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
17
|
-
// If the importer is in node compatibility mode or this is not an ESM
|
|
18
|
-
// file that has been converted to a CommonJS file using a Babel-
|
|
19
|
-
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
20
|
-
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
21
|
-
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: !0 }) : target,
|
|
22
|
-
mod
|
|
23
|
-
)), __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: !0 }), mod);
|
|
24
|
-
var cookies_exports = {};
|
|
25
|
-
__export(cookies_exports, {
|
|
26
|
-
Cookie: () => Cookie,
|
|
27
|
-
createCookieJar: () => createCookieJar,
|
|
28
|
-
parseCookie: () => parseCookie,
|
|
29
|
-
serializeCookie: () => serializeCookie
|
|
30
|
-
});
|
|
31
|
-
module.exports = __toCommonJS(cookies_exports);
|
|
32
|
-
var import_cookie = require("cookie"), import_fast_decode_uri_component = __toESM(require("fast-decode-uri-component")), import_utils = require('./utils.js'), import_error = require('./error.js');
|
|
33
|
-
const hashString = (str) => {
|
|
34
|
-
let hash = 2166136261;
|
|
35
|
-
const len = str.length;
|
|
36
|
-
for (let i = 0; i < len; i++)
|
|
37
|
-
hash ^= str.charCodeAt(i), hash = Math.imul(hash, 16777619);
|
|
38
|
-
return hash >>> 0;
|
|
39
|
-
};
|
|
40
|
-
class Cookie {
|
|
41
|
-
constructor(name, jar, initial = /* @__PURE__ */ Object.create(null)) {
|
|
42
|
-
this.name = name;
|
|
43
|
-
this.jar = jar;
|
|
44
|
-
this.initial = initial;
|
|
45
|
-
}
|
|
46
|
-
get cookie() {
|
|
47
|
-
return this.jar[this.name] ?? this.initial;
|
|
48
|
-
}
|
|
49
|
-
set cookie(jar) {
|
|
50
|
-
this.name in this.jar || (this.jar[this.name] = this.initial), this.jar[this.name] = jar, this.valueHash = void 0;
|
|
51
|
-
}
|
|
52
|
-
get setCookie() {
|
|
53
|
-
return this.name in this.jar || (this.jar[this.name] = this.initial), this.jar[this.name];
|
|
54
|
-
}
|
|
55
|
-
set setCookie(jar) {
|
|
56
|
-
this.cookie = jar;
|
|
57
|
-
}
|
|
58
|
-
get value() {
|
|
59
|
-
return this.cookie.value;
|
|
60
|
-
}
|
|
61
|
-
set value(value) {
|
|
62
|
-
const current = this.cookie.value;
|
|
63
|
-
if (current !== value) {
|
|
64
|
-
if (typeof current == "object" && current !== null && typeof value == "object" && value !== null)
|
|
65
|
-
try {
|
|
66
|
-
const valueStr = JSON.stringify(value), newHash = hashString(valueStr);
|
|
67
|
-
if (this.valueHash !== void 0 && this.valueHash !== newHash)
|
|
68
|
-
this.valueHash = newHash;
|
|
69
|
-
else {
|
|
70
|
-
if (JSON.stringify(current) === valueStr) {
|
|
71
|
-
this.valueHash = newHash;
|
|
72
|
-
return;
|
|
73
|
-
}
|
|
74
|
-
this.valueHash = newHash;
|
|
75
|
-
}
|
|
76
|
-
} catch {
|
|
77
|
-
}
|
|
78
|
-
this.name in this.jar || (this.jar[this.name] = { ...this.initial }), this.jar[this.name].value = value;
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
get expires() {
|
|
82
|
-
return this.cookie.expires;
|
|
83
|
-
}
|
|
84
|
-
set expires(expires) {
|
|
85
|
-
this.setCookie.expires = expires;
|
|
86
|
-
}
|
|
87
|
-
get maxAge() {
|
|
88
|
-
return this.cookie.maxAge;
|
|
89
|
-
}
|
|
90
|
-
set maxAge(maxAge) {
|
|
91
|
-
this.setCookie.maxAge = maxAge;
|
|
92
|
-
}
|
|
93
|
-
get domain() {
|
|
94
|
-
return this.cookie.domain;
|
|
95
|
-
}
|
|
96
|
-
set domain(domain) {
|
|
97
|
-
this.setCookie.domain = domain;
|
|
98
|
-
}
|
|
99
|
-
get path() {
|
|
100
|
-
return this.cookie.path;
|
|
101
|
-
}
|
|
102
|
-
set path(path) {
|
|
103
|
-
this.setCookie.path = path;
|
|
104
|
-
}
|
|
105
|
-
get secure() {
|
|
106
|
-
return this.cookie.secure;
|
|
107
|
-
}
|
|
108
|
-
set secure(secure) {
|
|
109
|
-
this.setCookie.secure = secure;
|
|
110
|
-
}
|
|
111
|
-
get httpOnly() {
|
|
112
|
-
return this.cookie.httpOnly;
|
|
113
|
-
}
|
|
114
|
-
set httpOnly(httpOnly) {
|
|
115
|
-
this.setCookie.httpOnly = httpOnly;
|
|
116
|
-
}
|
|
117
|
-
get sameSite() {
|
|
118
|
-
return this.cookie.sameSite;
|
|
119
|
-
}
|
|
120
|
-
set sameSite(sameSite) {
|
|
121
|
-
this.setCookie.sameSite = sameSite;
|
|
122
|
-
}
|
|
123
|
-
get priority() {
|
|
124
|
-
return this.cookie.priority;
|
|
125
|
-
}
|
|
126
|
-
set priority(priority) {
|
|
127
|
-
this.setCookie.priority = priority;
|
|
128
|
-
}
|
|
129
|
-
get partitioned() {
|
|
130
|
-
return this.cookie.partitioned;
|
|
131
|
-
}
|
|
132
|
-
set partitioned(partitioned) {
|
|
133
|
-
this.setCookie.partitioned = partitioned;
|
|
134
|
-
}
|
|
135
|
-
get secrets() {
|
|
136
|
-
return this.cookie.secrets;
|
|
137
|
-
}
|
|
138
|
-
set secrets(secrets) {
|
|
139
|
-
this.setCookie.secrets = secrets;
|
|
140
|
-
}
|
|
141
|
-
update(config) {
|
|
142
|
-
return this.setCookie = Object.assign(
|
|
143
|
-
this.cookie,
|
|
144
|
-
typeof config == "function" ? config(this.cookie) : config
|
|
145
|
-
), this;
|
|
146
|
-
}
|
|
147
|
-
set(config) {
|
|
148
|
-
return this.setCookie = Object.assign(
|
|
149
|
-
{
|
|
150
|
-
...this.initial,
|
|
151
|
-
value: this.value
|
|
152
|
-
},
|
|
153
|
-
typeof config == "function" ? config(this.cookie) : config
|
|
154
|
-
), this;
|
|
155
|
-
}
|
|
156
|
-
remove() {
|
|
157
|
-
if (this.value !== void 0)
|
|
158
|
-
return this.set({
|
|
159
|
-
expires: /* @__PURE__ */ new Date(0),
|
|
160
|
-
maxAge: 0,
|
|
161
|
-
value: ""
|
|
162
|
-
}), this;
|
|
163
|
-
}
|
|
164
|
-
toString() {
|
|
165
|
-
return typeof this.value == "object" ? JSON.stringify(this.value) : this.value?.toString() ?? "";
|
|
166
|
-
}
|
|
167
|
-
}
|
|
168
|
-
const createCookieJar = (set, store, initial) => (set.cookie || (set.cookie = /* @__PURE__ */ Object.create(null)), new Proxy(store, {
|
|
169
|
-
get(_, key) {
|
|
170
|
-
return key in store ? new Cookie(
|
|
171
|
-
key,
|
|
172
|
-
set.cookie,
|
|
173
|
-
Object.assign({}, initial ?? {}, store[key])
|
|
174
|
-
) : new Cookie(
|
|
175
|
-
key,
|
|
176
|
-
set.cookie,
|
|
177
|
-
Object.assign({}, initial)
|
|
178
|
-
);
|
|
179
|
-
}
|
|
180
|
-
})), parseCookie = async (set, cookieString, {
|
|
181
|
-
secrets,
|
|
182
|
-
sign,
|
|
183
|
-
...initial
|
|
184
|
-
} = /* @__PURE__ */ Object.create(null)) => {
|
|
185
|
-
if (!cookieString) return createCookieJar(set, /* @__PURE__ */ Object.create(null), initial);
|
|
186
|
-
const isStringKey = typeof secrets == "string";
|
|
187
|
-
sign && sign !== !0 && !Array.isArray(sign) && (sign = [sign]);
|
|
188
|
-
const jar = /* @__PURE__ */ Object.create(null), cookies = (0, import_cookie.parse)(cookieString);
|
|
189
|
-
for (const [name, v] of Object.entries(cookies)) {
|
|
190
|
-
if (v === void 0 || name === "__proto__" || name === "constructor" || name === "prototype")
|
|
191
|
-
continue;
|
|
192
|
-
let value = (0, import_fast_decode_uri_component.default)(v);
|
|
193
|
-
if (sign === !0 || sign?.includes(name)) {
|
|
194
|
-
if (!secrets)
|
|
195
|
-
throw new Error("No secret is provided to cookie plugin");
|
|
196
|
-
if (isStringKey) {
|
|
197
|
-
if (typeof value != "string")
|
|
198
|
-
throw new import_error.InvalidCookieSignature(name);
|
|
199
|
-
const temp = await (0, import_utils.unsignCookie)(value, secrets);
|
|
200
|
-
if (temp === !1) throw new import_error.InvalidCookieSignature(name);
|
|
201
|
-
value = temp;
|
|
202
|
-
} else {
|
|
203
|
-
let decoded = !1;
|
|
204
|
-
for (let i = 0; i < secrets.length; i++) {
|
|
205
|
-
if (typeof value != "string")
|
|
206
|
-
throw new import_error.InvalidCookieSignature(name);
|
|
207
|
-
const temp = await (0, import_utils.unsignCookie)(value, secrets[i]);
|
|
208
|
-
if (temp !== !1) {
|
|
209
|
-
decoded = !0, value = temp;
|
|
210
|
-
break;
|
|
211
|
-
}
|
|
212
|
-
}
|
|
213
|
-
if (!decoded) throw new import_error.InvalidCookieSignature(name);
|
|
214
|
-
}
|
|
215
|
-
}
|
|
216
|
-
if (value) {
|
|
217
|
-
const starts = value.charCodeAt(0), ends = value.charCodeAt(value.length - 1);
|
|
218
|
-
if (starts === 123 && ends === 125 || starts === 91 && ends === 93)
|
|
219
|
-
try {
|
|
220
|
-
value = JSON.parse(value);
|
|
221
|
-
} catch {
|
|
222
|
-
}
|
|
223
|
-
}
|
|
224
|
-
jar[name] = /* @__PURE__ */ Object.create(null), jar[name].value = value;
|
|
225
|
-
}
|
|
226
|
-
return createCookieJar(set, jar, initial);
|
|
227
|
-
}, serializeCookie = (cookies) => {
|
|
228
|
-
if (!cookies || !(0, import_utils.isNotEmpty)(cookies)) return;
|
|
229
|
-
const set = [];
|
|
230
|
-
for (const [key, property] of Object.entries(cookies)) {
|
|
231
|
-
if (!key || !property) continue;
|
|
232
|
-
const value = property.value;
|
|
233
|
-
value != null && set.push(
|
|
234
|
-
(0, import_cookie.serialize)(
|
|
235
|
-
key,
|
|
236
|
-
typeof value == "object" ? JSON.stringify(value) : value + "",
|
|
237
|
-
property
|
|
238
|
-
)
|
|
239
|
-
);
|
|
240
|
-
}
|
|
241
|
-
if (set.length !== 0)
|
|
242
|
-
return set.length === 1 ? set[0] : set;
|
|
243
|
-
};
|
|
244
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
245
|
-
0 && (module.exports = {
|
|
246
|
-
Cookie,
|
|
247
|
-
createCookieJar,
|
|
248
|
-
parseCookie,
|
|
249
|
-
serializeCookie
|
|
250
|
-
});
|
package/dist/cookies.mjs
DELETED
|
@@ -1,221 +0,0 @@
|
|
|
1
|
-
import { parse, serialize } from "cookie";
|
|
2
|
-
import decode from "fast-decode-uri-component";
|
|
3
|
-
import { isNotEmpty, unsignCookie } from "./utils.mjs";
|
|
4
|
-
import { InvalidCookieSignature } from "./error.mjs";
|
|
5
|
-
const hashString = (str) => {
|
|
6
|
-
let hash = 2166136261;
|
|
7
|
-
const len = str.length;
|
|
8
|
-
for (let i = 0; i < len; i++)
|
|
9
|
-
hash ^= str.charCodeAt(i), hash = Math.imul(hash, 16777619);
|
|
10
|
-
return hash >>> 0;
|
|
11
|
-
};
|
|
12
|
-
class Cookie {
|
|
13
|
-
constructor(name, jar, initial = /* @__PURE__ */ Object.create(null)) {
|
|
14
|
-
this.name = name;
|
|
15
|
-
this.jar = jar;
|
|
16
|
-
this.initial = initial;
|
|
17
|
-
}
|
|
18
|
-
get cookie() {
|
|
19
|
-
return this.jar[this.name] ?? this.initial;
|
|
20
|
-
}
|
|
21
|
-
set cookie(jar) {
|
|
22
|
-
this.name in this.jar || (this.jar[this.name] = this.initial), this.jar[this.name] = jar, this.valueHash = void 0;
|
|
23
|
-
}
|
|
24
|
-
get setCookie() {
|
|
25
|
-
return this.name in this.jar || (this.jar[this.name] = this.initial), this.jar[this.name];
|
|
26
|
-
}
|
|
27
|
-
set setCookie(jar) {
|
|
28
|
-
this.cookie = jar;
|
|
29
|
-
}
|
|
30
|
-
get value() {
|
|
31
|
-
return this.cookie.value;
|
|
32
|
-
}
|
|
33
|
-
set value(value) {
|
|
34
|
-
const current = this.cookie.value;
|
|
35
|
-
if (current !== value) {
|
|
36
|
-
if (typeof current == "object" && current !== null && typeof value == "object" && value !== null)
|
|
37
|
-
try {
|
|
38
|
-
const valueStr = JSON.stringify(value), newHash = hashString(valueStr);
|
|
39
|
-
if (this.valueHash !== void 0 && this.valueHash !== newHash)
|
|
40
|
-
this.valueHash = newHash;
|
|
41
|
-
else {
|
|
42
|
-
if (JSON.stringify(current) === valueStr) {
|
|
43
|
-
this.valueHash = newHash;
|
|
44
|
-
return;
|
|
45
|
-
}
|
|
46
|
-
this.valueHash = newHash;
|
|
47
|
-
}
|
|
48
|
-
} catch {
|
|
49
|
-
}
|
|
50
|
-
this.name in this.jar || (this.jar[this.name] = { ...this.initial }), this.jar[this.name].value = value;
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
get expires() {
|
|
54
|
-
return this.cookie.expires;
|
|
55
|
-
}
|
|
56
|
-
set expires(expires) {
|
|
57
|
-
this.setCookie.expires = expires;
|
|
58
|
-
}
|
|
59
|
-
get maxAge() {
|
|
60
|
-
return this.cookie.maxAge;
|
|
61
|
-
}
|
|
62
|
-
set maxAge(maxAge) {
|
|
63
|
-
this.setCookie.maxAge = maxAge;
|
|
64
|
-
}
|
|
65
|
-
get domain() {
|
|
66
|
-
return this.cookie.domain;
|
|
67
|
-
}
|
|
68
|
-
set domain(domain) {
|
|
69
|
-
this.setCookie.domain = domain;
|
|
70
|
-
}
|
|
71
|
-
get path() {
|
|
72
|
-
return this.cookie.path;
|
|
73
|
-
}
|
|
74
|
-
set path(path) {
|
|
75
|
-
this.setCookie.path = path;
|
|
76
|
-
}
|
|
77
|
-
get secure() {
|
|
78
|
-
return this.cookie.secure;
|
|
79
|
-
}
|
|
80
|
-
set secure(secure) {
|
|
81
|
-
this.setCookie.secure = secure;
|
|
82
|
-
}
|
|
83
|
-
get httpOnly() {
|
|
84
|
-
return this.cookie.httpOnly;
|
|
85
|
-
}
|
|
86
|
-
set httpOnly(httpOnly) {
|
|
87
|
-
this.setCookie.httpOnly = httpOnly;
|
|
88
|
-
}
|
|
89
|
-
get sameSite() {
|
|
90
|
-
return this.cookie.sameSite;
|
|
91
|
-
}
|
|
92
|
-
set sameSite(sameSite) {
|
|
93
|
-
this.setCookie.sameSite = sameSite;
|
|
94
|
-
}
|
|
95
|
-
get priority() {
|
|
96
|
-
return this.cookie.priority;
|
|
97
|
-
}
|
|
98
|
-
set priority(priority) {
|
|
99
|
-
this.setCookie.priority = priority;
|
|
100
|
-
}
|
|
101
|
-
get partitioned() {
|
|
102
|
-
return this.cookie.partitioned;
|
|
103
|
-
}
|
|
104
|
-
set partitioned(partitioned) {
|
|
105
|
-
this.setCookie.partitioned = partitioned;
|
|
106
|
-
}
|
|
107
|
-
get secrets() {
|
|
108
|
-
return this.cookie.secrets;
|
|
109
|
-
}
|
|
110
|
-
set secrets(secrets) {
|
|
111
|
-
this.setCookie.secrets = secrets;
|
|
112
|
-
}
|
|
113
|
-
update(config) {
|
|
114
|
-
return this.setCookie = Object.assign(
|
|
115
|
-
this.cookie,
|
|
116
|
-
typeof config == "function" ? config(this.cookie) : config
|
|
117
|
-
), this;
|
|
118
|
-
}
|
|
119
|
-
set(config) {
|
|
120
|
-
return this.setCookie = Object.assign(
|
|
121
|
-
{
|
|
122
|
-
...this.initial,
|
|
123
|
-
value: this.value
|
|
124
|
-
},
|
|
125
|
-
typeof config == "function" ? config(this.cookie) : config
|
|
126
|
-
), this;
|
|
127
|
-
}
|
|
128
|
-
remove() {
|
|
129
|
-
if (this.value !== void 0)
|
|
130
|
-
return this.set({
|
|
131
|
-
expires: /* @__PURE__ */ new Date(0),
|
|
132
|
-
maxAge: 0,
|
|
133
|
-
value: ""
|
|
134
|
-
}), this;
|
|
135
|
-
}
|
|
136
|
-
toString() {
|
|
137
|
-
return typeof this.value == "object" ? JSON.stringify(this.value) : this.value?.toString() ?? "";
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
const createCookieJar = (set, store, initial) => (set.cookie || (set.cookie = /* @__PURE__ */ Object.create(null)), new Proxy(store, {
|
|
141
|
-
get(_, key) {
|
|
142
|
-
return key in store ? new Cookie(
|
|
143
|
-
key,
|
|
144
|
-
set.cookie,
|
|
145
|
-
Object.assign({}, initial ?? {}, store[key])
|
|
146
|
-
) : new Cookie(
|
|
147
|
-
key,
|
|
148
|
-
set.cookie,
|
|
149
|
-
Object.assign({}, initial)
|
|
150
|
-
);
|
|
151
|
-
}
|
|
152
|
-
})), parseCookie = async (set, cookieString, {
|
|
153
|
-
secrets,
|
|
154
|
-
sign,
|
|
155
|
-
...initial
|
|
156
|
-
} = /* @__PURE__ */ Object.create(null)) => {
|
|
157
|
-
if (!cookieString) return createCookieJar(set, /* @__PURE__ */ Object.create(null), initial);
|
|
158
|
-
const isStringKey = typeof secrets == "string";
|
|
159
|
-
sign && sign !== !0 && !Array.isArray(sign) && (sign = [sign]);
|
|
160
|
-
const jar = /* @__PURE__ */ Object.create(null), cookies = parse(cookieString);
|
|
161
|
-
for (const [name, v] of Object.entries(cookies)) {
|
|
162
|
-
if (v === void 0 || name === "__proto__" || name === "constructor" || name === "prototype")
|
|
163
|
-
continue;
|
|
164
|
-
let value = decode(v);
|
|
165
|
-
if (sign === !0 || sign?.includes(name)) {
|
|
166
|
-
if (!secrets)
|
|
167
|
-
throw new Error("No secret is provided to cookie plugin");
|
|
168
|
-
if (isStringKey) {
|
|
169
|
-
if (typeof value != "string")
|
|
170
|
-
throw new InvalidCookieSignature(name);
|
|
171
|
-
const temp = await unsignCookie(value, secrets);
|
|
172
|
-
if (temp === !1) throw new InvalidCookieSignature(name);
|
|
173
|
-
value = temp;
|
|
174
|
-
} else {
|
|
175
|
-
let decoded = !1;
|
|
176
|
-
for (let i = 0; i < secrets.length; i++) {
|
|
177
|
-
if (typeof value != "string")
|
|
178
|
-
throw new InvalidCookieSignature(name);
|
|
179
|
-
const temp = await unsignCookie(value, secrets[i]);
|
|
180
|
-
if (temp !== !1) {
|
|
181
|
-
decoded = !0, value = temp;
|
|
182
|
-
break;
|
|
183
|
-
}
|
|
184
|
-
}
|
|
185
|
-
if (!decoded) throw new InvalidCookieSignature(name);
|
|
186
|
-
}
|
|
187
|
-
}
|
|
188
|
-
if (value) {
|
|
189
|
-
const starts = value.charCodeAt(0), ends = value.charCodeAt(value.length - 1);
|
|
190
|
-
if (starts === 123 && ends === 125 || starts === 91 && ends === 93)
|
|
191
|
-
try {
|
|
192
|
-
value = JSON.parse(value);
|
|
193
|
-
} catch {
|
|
194
|
-
}
|
|
195
|
-
}
|
|
196
|
-
jar[name] = /* @__PURE__ */ Object.create(null), jar[name].value = value;
|
|
197
|
-
}
|
|
198
|
-
return createCookieJar(set, jar, initial);
|
|
199
|
-
}, serializeCookie = (cookies) => {
|
|
200
|
-
if (!cookies || !isNotEmpty(cookies)) return;
|
|
201
|
-
const set = [];
|
|
202
|
-
for (const [key, property] of Object.entries(cookies)) {
|
|
203
|
-
if (!key || !property) continue;
|
|
204
|
-
const value = property.value;
|
|
205
|
-
value != null && set.push(
|
|
206
|
-
serialize(
|
|
207
|
-
key,
|
|
208
|
-
typeof value == "object" ? JSON.stringify(value) : value + "",
|
|
209
|
-
property
|
|
210
|
-
)
|
|
211
|
-
);
|
|
212
|
-
}
|
|
213
|
-
if (set.length !== 0)
|
|
214
|
-
return set.length === 1 ? set[0] : set;
|
|
215
|
-
};
|
|
216
|
-
export {
|
|
217
|
-
Cookie,
|
|
218
|
-
createCookieJar,
|
|
219
|
-
parseCookie,
|
|
220
|
-
serializeCookie
|
|
221
|
-
};
|
package/dist/dynamic-handle.d.ts
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import type { Context } from './context';
|
|
2
|
-
import { type ElysiaErrors } from './error';
|
|
3
|
-
import type { AnyElysia } from './index';
|
|
4
|
-
import type { Handler, LifeCycleStore, SchemaValidator } from './types';
|
|
5
|
-
export type DynamicHandler = {
|
|
6
|
-
handle: unknown | Handler<any, any>;
|
|
7
|
-
content?: string;
|
|
8
|
-
hooks: Partial<LifeCycleStore>;
|
|
9
|
-
validator?: SchemaValidator;
|
|
10
|
-
route: string;
|
|
11
|
-
};
|
|
12
|
-
export declare const createDynamicHandler: (app: AnyElysia) => (request: Request) => Promise<Response>;
|
|
13
|
-
export declare const createDynamicErrorHandler: (app: AnyElysia) => (context: Context & {
|
|
14
|
-
response: unknown;
|
|
15
|
-
}, error: ElysiaErrors) => Promise<unknown>;
|