hono 4.13.13 → 5.0.0-rc.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/dist/client/fetch-result-please.js +0 -22
- package/dist/client/utils.js +0 -7
- package/dist/{types/compose.d.ts → compose.d.ts} +5 -3
- package/dist/compose.js +18 -31
- package/dist/context/constants.d.ts +3 -0
- package/dist/context/constants.js +4 -0
- package/dist/{types/context.d.ts → context.d.ts} +56 -15
- package/dist/context.js +83 -277
- package/dist/helper/accepts/accepts.js +0 -13
- package/dist/helper/css/common.js +0 -10
- package/dist/helper/css/index.js +0 -38
- package/dist/{types/helper → helper}/dev/index.d.ts +5 -2
- package/dist/helper/dev/index.js +3 -3
- package/dist/helper/factory/define-handler.d.ts +150 -0
- package/dist/helper/factory/define-handler.js +117 -0
- package/dist/{types/helper → helper}/factory/index.d.ts +30 -1
- package/dist/helper/factory/index.js +7 -7
- package/dist/helper/html/index.js +0 -4
- package/dist/helper/proxy/index.js +0 -49
- package/dist/helper/route/index.js +0 -90
- package/dist/{types/helper → helper}/ssg/middleware.d.ts +0 -6
- package/dist/helper/ssg/middleware.js +1 -34
- package/dist/helper/ssg/plugins.js +0 -24
- package/dist/{types/helper → helper}/ssg/ssg.d.ts +0 -12
- package/dist/helper/ssg/ssg.js +0 -18
- package/dist/helper/ssg/utils.js +0 -5
- package/dist/helper/testing/index.js +0 -4
- package/dist/helper/websocket/index.js +0 -6
- package/dist/{types/hono-base.d.ts → hono-base.d.ts} +47 -95
- package/dist/hono-base.js +63 -228
- package/dist/{types/hono.d.ts → hono.d.ts} +1 -1
- package/dist/hono.js +0 -13
- package/dist/http-exception.js +0 -36
- package/dist/index.js +0 -15
- package/dist/jsx/components.js +0 -5
- package/dist/jsx/context.js +0 -34
- package/dist/jsx/dom/client.js +0 -14
- package/dist/jsx/dom/css.js +0 -34
- package/dist/jsx/dom/hooks/index.js +0 -21
- package/dist/jsx/dom/index.js +0 -4
- package/dist/jsx/dom/server.js +0 -12
- package/dist/jsx/index.js +0 -4
- package/dist/jsx/streaming.js +0 -26
- package/dist/{types/middleware → middleware}/basic-auth/index.d.ts +4 -3
- package/dist/middleware/basic-auth/index.js +0 -49
- package/dist/{types/middleware → middleware}/bearer-auth/index.d.ts +4 -27
- package/dist/middleware/bearer-auth/index.js +3 -39
- package/dist/middleware/body-limit/index.js +0 -32
- package/dist/middleware/cache/index.js +0 -31
- package/dist/middleware/combine/index.js +0 -80
- package/dist/middleware/compress/index.js +0 -24
- package/dist/middleware/context-storage/index.js +0 -35
- package/dist/middleware/cors/index.js +0 -39
- package/dist/middleware/csrf/index.js +0 -62
- package/dist/middleware/etag/index.js +0 -29
- package/dist/middleware/ip-restriction/index.js +0 -41
- package/dist/middleware/jsx-renderer/index.js +0 -58
- package/dist/middleware/jwk/jwk.js +0 -31
- package/dist/middleware/jwt/jwt.js +0 -32
- package/dist/middleware/language/language.js +0 -60
- package/dist/middleware/logger/index.js +6 -24
- package/dist/middleware/method-not-allowed/index.js +1 -36
- package/dist/middleware/method-override/index.js +0 -25
- package/dist/middleware/mount/index.js +0 -32
- package/dist/middleware/powered-by/index.js +0 -15
- package/dist/middleware/pretty-json/index.js +0 -18
- package/dist/middleware/request-id/request-id.js +0 -22
- package/dist/middleware/secure-headers/secure-headers.js +0 -32
- package/dist/{types/middleware → middleware}/serve-static/index.d.ts +0 -4
- package/dist/middleware/serve-static/index.js +0 -3
- package/dist/middleware/serve-static/path.js +0 -4
- package/dist/middleware/timeout/index.js +0 -22
- package/dist/middleware/timing/timing.js +0 -95
- package/dist/middleware/trailing-slash/index.js +0 -50
- package/dist/{types/preset → preset}/quick.d.ts +1 -1
- package/dist/preset/quick.js +0 -4
- package/dist/{types/preset → preset}/tiny.d.ts +1 -1
- package/dist/preset/tiny.js +0 -4
- package/dist/{types/request.d.ts → request.d.ts} +3 -48
- package/dist/request.js +0 -205
- package/dist/router/linear-router/router.js +19 -13
- package/dist/router/pattern-router/router.js +3 -3
- package/dist/router/reg-exp-router/node.js +9 -11
- package/dist/router/reg-exp-router/trie.js +0 -5
- package/dist/router/trie-router/node.js +5 -5
- package/dist/router.js +0 -19
- package/dist/{types/types.d.ts → types.d.ts} +33 -2
- package/dist/utils/body.js +0 -30
- package/dist/utils/buffer.d.ts +11 -0
- package/dist/utils/buffer.js +1 -12
- package/dist/utils/color.d.ts +16 -0
- package/dist/utils/color.js +4 -33
- package/dist/utils/compress.js +0 -7
- package/dist/utils/concurrent.js +0 -4
- package/dist/utils/constants.js +0 -3
- package/dist/utils/cookie.js +0 -4
- package/dist/utils/encode.js +0 -4
- package/dist/utils/handler.js +0 -4
- package/dist/utils/html.js +0 -4
- package/dist/{types/utils → utils}/http-status.d.ts +1 -9
- package/dist/utils/ipaddr.js +0 -39
- package/dist/utils/jwt/index.js +0 -4
- package/dist/utils/jwt/jwa.js +0 -5
- package/dist/utils/jwt/jws.js +0 -5
- package/dist/utils/jwt/jwt.js +0 -5
- package/dist/utils/jwt/types.js +0 -4
- package/dist/utils/jwt/utf8.js +0 -4
- package/dist/utils/mime.js +0 -4
- package/dist/utils/stream.js +0 -14
- package/dist/{types/utils → utils}/url.d.ts +0 -5
- package/dist/utils/url.js +1 -30
- package/dist/{types/validator → validator}/validator.d.ts +5 -0
- package/dist/validator/validator.js +42 -49
- package/package.json +142 -488
- package/dist/adapter/aws-lambda/conninfo.js +0 -43
- package/dist/adapter/aws-lambda/handler.js +0 -342
- package/dist/adapter/aws-lambda/index.js +0 -3
- package/dist/adapter/aws-lambda/types.js +0 -1
- package/dist/adapter/bun/conninfo.js +0 -22
- package/dist/adapter/bun/index.js +0 -6
- package/dist/adapter/bun/serve-static.js +0 -30
- package/dist/adapter/bun/server.js +0 -11
- package/dist/adapter/bun/ssg.js +0 -27
- package/dist/adapter/bun/websocket.js +0 -66
- package/dist/adapter/cloudflare-pages/conninfo.js +0 -24
- package/dist/adapter/cloudflare-pages/handler.js +0 -64
- package/dist/adapter/cloudflare-pages/index.js +0 -3
- package/dist/adapter/cloudflare-workers/conninfo.js +0 -7
- package/dist/adapter/cloudflare-workers/index.js +0 -4
- package/dist/adapter/cloudflare-workers/serve-static-module.js +0 -7
- package/dist/adapter/cloudflare-workers/serve-static.js +0 -28
- package/dist/adapter/cloudflare-workers/utils.js +0 -22
- package/dist/adapter/cloudflare-workers/websocket.js +0 -33
- package/dist/adapter/deno/conninfo.js +0 -17
- package/dist/adapter/deno/deno.d.js +0 -1
- package/dist/adapter/deno/index.js +0 -5
- package/dist/adapter/deno/serve-static.js +0 -35
- package/dist/adapter/deno/ssg.js +0 -29
- package/dist/adapter/deno/websocket.js +0 -32
- package/dist/adapter/lambda-edge/conninfo.js +0 -7
- package/dist/adapter/lambda-edge/handler.js +0 -111
- package/dist/adapter/lambda-edge/index.js +0 -3
- package/dist/adapter/netlify/conninfo.js +0 -24
- package/dist/adapter/netlify/handler.js +0 -11
- package/dist/adapter/netlify/index.js +0 -3
- package/dist/adapter/netlify/mod.js +0 -3
- package/dist/adapter/service-worker/handler.js +0 -16
- package/dist/adapter/service-worker/index.js +0 -25
- package/dist/adapter/service-worker/types.js +0 -1
- package/dist/adapter/vercel/conninfo.js +0 -7
- package/dist/adapter/vercel/handler.js +0 -9
- package/dist/adapter/vercel/index.js +0 -3
- package/dist/cjs/_virtual/_rolldown/runtime.js +0 -33
- package/dist/cjs/adapter/aws-lambda/conninfo.js +0 -44
- package/dist/cjs/adapter/aws-lambda/handler.js +0 -352
- package/dist/cjs/adapter/aws-lambda/index.js +0 -7
- package/dist/cjs/adapter/aws-lambda/types.js +0 -0
- package/dist/cjs/adapter/bun/conninfo.js +0 -23
- package/dist/cjs/adapter/bun/index.js +0 -14
- package/dist/cjs/adapter/bun/serve-static.js +0 -31
- package/dist/cjs/adapter/bun/server.js +0 -12
- package/dist/cjs/adapter/bun/ssg.js +0 -29
- package/dist/cjs/adapter/bun/websocket.js +0 -70
- package/dist/cjs/adapter/cloudflare-pages/conninfo.js +0 -25
- package/dist/cjs/adapter/cloudflare-pages/handler.js +0 -67
- package/dist/cjs/adapter/cloudflare-pages/index.js +0 -7
- package/dist/cjs/adapter/cloudflare-workers/conninfo.js +0 -8
- package/dist/cjs/adapter/cloudflare-workers/index.js +0 -7
- package/dist/cjs/adapter/cloudflare-workers/serve-static-module.js +0 -8
- package/dist/cjs/adapter/cloudflare-workers/serve-static.js +0 -29
- package/dist/cjs/adapter/cloudflare-workers/utils.js +0 -23
- package/dist/cjs/adapter/cloudflare-workers/websocket.js +0 -34
- package/dist/cjs/adapter/deno/conninfo.js +0 -18
- package/dist/cjs/adapter/deno/deno.d.js +0 -0
- package/dist/cjs/adapter/deno/index.js +0 -10
- package/dist/cjs/adapter/deno/serve-static.js +0 -36
- package/dist/cjs/adapter/deno/ssg.js +0 -31
- package/dist/cjs/adapter/deno/websocket.js +0 -33
- package/dist/cjs/adapter/lambda-edge/conninfo.js +0 -8
- package/dist/cjs/adapter/lambda-edge/handler.js +0 -116
- package/dist/cjs/adapter/lambda-edge/index.js +0 -5
- package/dist/cjs/adapter/netlify/conninfo.js +0 -25
- package/dist/cjs/adapter/netlify/handler.js +0 -12
- package/dist/cjs/adapter/netlify/index.js +0 -5
- package/dist/cjs/adapter/netlify/mod.js +0 -5
- package/dist/cjs/adapter/service-worker/handler.js +0 -17
- package/dist/cjs/adapter/service-worker/index.js +0 -27
- package/dist/cjs/adapter/service-worker/types.js +0 -0
- package/dist/cjs/adapter/vercel/conninfo.js +0 -8
- package/dist/cjs/adapter/vercel/handler.js +0 -10
- package/dist/cjs/adapter/vercel/index.js +0 -5
- package/dist/cjs/client/client.js +0 -145
- package/dist/cjs/client/fetch-result-please.js +0 -67
- package/dist/cjs/client/index.js +0 -7
- package/dist/cjs/client/types.js +0 -0
- package/dist/cjs/client/utils.js +0 -70
- package/dist/cjs/compose.js +0 -51
- package/dist/cjs/context.js +0 -383
- package/dist/cjs/helper/accepts/accepts.js +0 -54
- package/dist/cjs/helper/accepts/index.js +0 -3
- package/dist/cjs/helper/adapter/index.js +0 -41
- package/dist/cjs/helper/conninfo/index.js +0 -0
- package/dist/cjs/helper/conninfo/types.js +0 -0
- package/dist/cjs/helper/cookie/index.js +0 -89
- package/dist/cjs/helper/css/common.js +0 -194
- package/dist/cjs/helper/css/index.js +0 -142
- package/dist/cjs/helper/dev/index.js +0 -53
- package/dist/cjs/helper/factory/index.js +0 -33
- package/dist/cjs/helper/html/index.js +0 -34
- package/dist/cjs/helper/proxy/index.js +0 -122
- package/dist/cjs/helper/route/index.js +0 -128
- package/dist/cjs/helper/ssg/index.js +0 -19
- package/dist/cjs/helper/ssg/middleware.js +0 -65
- package/dist/cjs/helper/ssg/plugins.js +0 -68
- package/dist/cjs/helper/ssg/ssg.js +0 -220
- package/dist/cjs/helper/ssg/utils.js +0 -70
- package/dist/cjs/helper/streaming/index.js +0 -8
- package/dist/cjs/helper/streaming/sse.js +0 -59
- package/dist/cjs/helper/streaming/stream.js +0 -26
- package/dist/cjs/helper/streaming/text.js +0 -12
- package/dist/cjs/helper/streaming/utils.js +0 -16
- package/dist/cjs/helper/testing/index.js +0 -18
- package/dist/cjs/helper/websocket/index.js +0 -56
- package/dist/cjs/hono-base.js +0 -351
- package/dist/cjs/hono.js +0 -29
- package/dist/cjs/http-exception.js +0 -56
- package/dist/cjs/index.js +0 -22
- package/dist/cjs/jsx/base.js +0 -266
- package/dist/cjs/jsx/children.js +0 -19
- package/dist/cjs/jsx/components.js +0 -147
- package/dist/cjs/jsx/constants.js +0 -15
- package/dist/cjs/jsx/context.js +0 -170
- package/dist/cjs/jsx/dom/client.js +0 -56
- package/dist/cjs/jsx/dom/components.js +0 -26
- package/dist/cjs/jsx/dom/context.js +0 -43
- package/dist/cjs/jsx/dom/css.js +0 -153
- package/dist/cjs/jsx/dom/hooks/index.js +0 -65
- package/dist/cjs/jsx/dom/index.js +0 -122
- package/dist/cjs/jsx/dom/intrinsic-element/components.js +0 -306
- package/dist/cjs/jsx/dom/jsx-dev-runtime.js +0 -17
- package/dist/cjs/jsx/dom/jsx-runtime.js +0 -5
- package/dist/cjs/jsx/dom/render.js +0 -525
- package/dist/cjs/jsx/dom/server.js +0 -44
- package/dist/cjs/jsx/dom/utils.js +0 -9
- package/dist/cjs/jsx/hooks/index.js +0 -280
- package/dist/cjs/jsx/index.js +0 -89
- package/dist/cjs/jsx/intrinsic-element/common.js +0 -27
- package/dist/cjs/jsx/intrinsic-element/components.js +0 -138
- package/dist/cjs/jsx/intrinsic-elements.js +0 -0
- package/dist/cjs/jsx/jsx-dev-runtime.js +0 -16
- package/dist/cjs/jsx/jsx-runtime.js +0 -37
- package/dist/cjs/jsx/streaming.js +0 -135
- package/dist/cjs/jsx/types.js +0 -0
- package/dist/cjs/jsx/utils.js +0 -116
- package/dist/cjs/middleware/basic-auth/index.js +0 -100
- package/dist/cjs/middleware/bearer-auth/index.js +0 -97
- package/dist/cjs/middleware/body-limit/index.js +0 -69
- package/dist/cjs/middleware/cache/index.js +0 -173
- package/dist/cjs/middleware/combine/index.js +0 -141
- package/dist/cjs/middleware/compress/index.js +0 -82
- package/dist/cjs/middleware/context-storage/index.js +0 -55
- package/dist/cjs/middleware/cors/index.js +0 -109
- package/dist/cjs/middleware/csrf/index.js +0 -106
- package/dist/cjs/middleware/etag/digest.js +0 -62
- package/dist/cjs/middleware/etag/index.js +0 -79
- package/dist/cjs/middleware/ip-restriction/index.js +0 -168
- package/dist/cjs/middleware/jsx-renderer/index.js +0 -104
- package/dist/cjs/middleware/jwk/index.js +0 -3
- package/dist/cjs/middleware/jwk/jwk.js +0 -122
- package/dist/cjs/middleware/jwt/index.js +0 -9
- package/dist/cjs/middleware/jwt/jwt.js +0 -124
- package/dist/cjs/middleware/language/index.js +0 -7
- package/dist/cjs/middleware/language/language.js +0 -208
- package/dist/cjs/middleware/logger/index.js +0 -51
- package/dist/cjs/middleware/method-not-allowed/index.js +0 -84
- package/dist/cjs/middleware/method-override/index.js +0 -105
- package/dist/cjs/middleware/mount/index.js +0 -71
- package/dist/cjs/middleware/powered-by/index.js +0 -25
- package/dist/cjs/middleware/pretty-json/index.js +0 -41
- package/dist/cjs/middleware/request-id/index.js +0 -3
- package/dist/cjs/middleware/request-id/request-id.js +0 -35
- package/dist/cjs/middleware/secure-headers/index.js +0 -4
- package/dist/cjs/middleware/secure-headers/permissions-policy.js +0 -0
- package/dist/cjs/middleware/secure-headers/secure-headers.js +0 -166
- package/dist/cjs/middleware/serve-static/index.js +0 -62
- package/dist/cjs/middleware/serve-static/path.js +0 -17
- package/dist/cjs/middleware/timeout/index.js +0 -42
- package/dist/cjs/middleware/timing/index.js +0 -7
- package/dist/cjs/middleware/timing/timing.js +0 -189
- package/dist/cjs/middleware/trailing-slash/index.js +0 -89
- package/dist/cjs/package.json +0 -3
- package/dist/cjs/preset/quick.js +0 -19
- package/dist/cjs/preset/tiny.js +0 -16
- package/dist/cjs/request/constants.js +0 -5
- package/dist/cjs/request.js +0 -337
- package/dist/cjs/router/linear-router/index.js +0 -3
- package/dist/cjs/router/linear-router/router.js +0 -97
- package/dist/cjs/router/pattern-router/index.js +0 -3
- package/dist/cjs/router/pattern-router/router.js +0 -42
- package/dist/cjs/router/reg-exp-router/index.js +0 -7
- package/dist/cjs/router/reg-exp-router/matcher.js +0 -21
- package/dist/cjs/router/reg-exp-router/node.js +0 -96
- package/dist/cjs/router/reg-exp-router/prepared-router.js +0 -97
- package/dist/cjs/router/reg-exp-router/router.js +0 -102
- package/dist/cjs/router/reg-exp-router/trie.js +0 -74
- package/dist/cjs/router/smart-router/index.js +0 -3
- package/dist/cjs/router/smart-router/router.js +0 -50
- package/dist/cjs/router/trie-router/index.js +0 -3
- package/dist/cjs/router/trie-router/node.js +0 -135
- package/dist/cjs/router/trie-router/router.js +0 -16
- package/dist/cjs/router/utils.js +0 -5
- package/dist/cjs/router.js +0 -40
- package/dist/cjs/types.js +0 -5
- package/dist/cjs/utils/accept.js +0 -194
- package/dist/cjs/utils/basic-auth.js +0 -21
- package/dist/cjs/utils/body.js +0 -97
- package/dist/cjs/utils/buffer.js +0 -55
- package/dist/cjs/utils/color.js +0 -39
- package/dist/cjs/utils/compress.js +0 -12
- package/dist/cjs/utils/concurrent.js +0 -31
- package/dist/cjs/utils/constants.js +0 -8
- package/dist/cjs/utils/cookie.js +0 -129
- package/dist/cjs/utils/crypto.js +0 -38
- package/dist/cjs/utils/encode.js +0 -37
- package/dist/cjs/utils/filepath.js +0 -27
- package/dist/cjs/utils/handler.js +0 -14
- package/dist/cjs/utils/headers.js +0 -0
- package/dist/cjs/utils/html.js +0 -109
- package/dist/cjs/utils/http-status.js +0 -0
- package/dist/cjs/utils/ipaddr.js +0 -247
- package/dist/cjs/utils/jwt/index.js +0 -15
- package/dist/cjs/utils/jwt/jwa.js +0 -25
- package/dist/cjs/utils/jwt/jws.js +0 -135
- package/dist/cjs/utils/jwt/jwt.js +0 -136
- package/dist/cjs/utils/jwt/types.js +0 -124
- package/dist/cjs/utils/jwt/utf8.js +0 -11
- package/dist/cjs/utils/mime.js +0 -80
- package/dist/cjs/utils/stream.js +0 -89
- package/dist/cjs/utils/types.js +0 -0
- package/dist/cjs/utils/url.js +0 -215
- package/dist/cjs/validator/index.js +0 -3
- package/dist/cjs/validator/utils.js +0 -0
- package/dist/cjs/validator/validator.js +0 -65
- package/dist/types/adapter/aws-lambda/conninfo.d.ts +0 -30
- package/dist/types/adapter/aws-lambda/handler.d.ts +0 -230
- package/dist/types/adapter/aws-lambda/index.d.ts +0 -4
- package/dist/types/adapter/aws-lambda/types.d.ts +0 -183
- package/dist/types/adapter/bun/conninfo.d.ts +0 -10
- package/dist/types/adapter/bun/index.d.ts +0 -6
- package/dist/types/adapter/bun/serve-static.d.ts +0 -8
- package/dist/types/adapter/bun/server.d.ts +0 -11
- package/dist/types/adapter/bun/ssg.d.ts +0 -17
- package/dist/types/adapter/bun/websocket.d.ts +0 -54
- package/dist/types/adapter/cloudflare-pages/conninfo.d.ts +0 -24
- package/dist/types/adapter/cloudflare-pages/handler.d.ts +0 -45
- package/dist/types/adapter/cloudflare-pages/index.d.ts +0 -3
- package/dist/types/adapter/cloudflare-workers/conninfo.d.ts +0 -7
- package/dist/types/adapter/cloudflare-workers/index.d.ts +0 -4
- package/dist/types/adapter/cloudflare-workers/serve-static-module.d.ts +0 -7
- package/dist/types/adapter/cloudflare-workers/serve-static.d.ts +0 -21
- package/dist/types/adapter/cloudflare-workers/utils.d.ts +0 -13
- package/dist/types/adapter/cloudflare-workers/websocket.d.ts +0 -7
- package/dist/types/adapter/deno/conninfo.d.ts +0 -10
- package/dist/types/adapter/deno/deno.d.ts +0 -1
- package/dist/types/adapter/deno/index.d.ts +0 -5
- package/dist/types/adapter/deno/serve-static.d.ts +0 -8
- package/dist/types/adapter/deno/ssg.d.ts +0 -17
- package/dist/types/adapter/deno/websocket.d.ts +0 -7
- package/dist/types/adapter/lambda-edge/conninfo.d.ts +0 -7
- package/dist/types/adapter/lambda-edge/handler.d.ts +0 -113
- package/dist/types/adapter/lambda-edge/index.d.ts +0 -3
- package/dist/types/adapter/netlify/conninfo.d.ts +0 -24
- package/dist/types/adapter/netlify/handler.d.ts +0 -7
- package/dist/types/adapter/netlify/index.d.ts +0 -3
- package/dist/types/adapter/netlify/mod.d.ts +0 -3
- package/dist/types/adapter/service-worker/handler.d.ts +0 -18
- package/dist/types/adapter/service-worker/index.d.ts +0 -26
- package/dist/types/adapter/service-worker/types.d.ts +0 -17
- package/dist/types/adapter/vercel/conninfo.d.ts +0 -7
- package/dist/types/adapter/vercel/handler.d.ts +0 -7
- package/dist/types/adapter/vercel/index.d.ts +0 -3
- package/dist/types/package.json +0 -3
- package/dist/types/utils/buffer.d.ts +0 -19
- package/dist/types/utils/color.d.ts +0 -23
- package/dist/{types/client → client}/client.d.ts +0 -0
- package/dist/{types/client → client}/fetch-result-please.d.ts +0 -0
- package/dist/{types/client → client}/index.d.ts +0 -0
- package/dist/{types/client → client}/types.d.ts +1 -1
- /package/dist/{types/client → client}/utils.d.ts +0 -0
- /package/dist/{types/helper → helper}/accepts/accepts.d.ts +0 -0
- /package/dist/{types/helper → helper}/accepts/index.d.ts +0 -0
- /package/dist/{types/helper → helper}/adapter/index.d.ts +0 -0
- /package/dist/{types/helper → helper}/conninfo/index.d.ts +0 -0
- /package/dist/{types/helper → helper}/conninfo/types.d.ts +0 -0
- /package/dist/{types/helper → helper}/cookie/index.d.ts +0 -0
- /package/dist/{types/helper → helper}/css/common.d.ts +0 -0
- /package/dist/{types/helper → helper}/css/index.d.ts +0 -0
- /package/dist/{types/helper → helper}/html/index.d.ts +0 -0
- /package/dist/{types/helper → helper}/proxy/index.d.ts +0 -0
- /package/dist/{types/helper → helper}/route/index.d.ts +0 -0
- /package/dist/{types/helper → helper}/ssg/index.d.ts +0 -0
- /package/dist/{types/helper → helper}/ssg/plugins.d.ts +0 -0
- /package/dist/{types/helper → helper}/ssg/utils.d.ts +0 -0
- /package/dist/{types/helper → helper}/streaming/index.d.ts +0 -0
- /package/dist/{types/helper → helper}/streaming/sse.d.ts +0 -0
- /package/dist/{types/helper → helper}/streaming/stream.d.ts +0 -0
- /package/dist/{types/helper → helper}/streaming/text.d.ts +0 -0
- /package/dist/{types/helper → helper}/streaming/utils.d.ts +0 -0
- /package/dist/{types/helper → helper}/testing/index.d.ts +0 -0
- /package/dist/{types/helper → helper}/websocket/index.d.ts +0 -0
- /package/dist/{types/http-exception.d.ts → http-exception.d.ts} +0 -0
- /package/dist/{types/index.d.ts → index.d.ts} +0 -0
- /package/dist/{types/jsx → jsx}/base.d.ts +0 -0
- /package/dist/{types/jsx → jsx}/children.d.ts +0 -0
- /package/dist/{types/jsx → jsx}/components.d.ts +0 -0
- /package/dist/{types/jsx → jsx}/constants.d.ts +0 -0
- /package/dist/{types/jsx → jsx}/context.d.ts +0 -0
- /package/dist/{types/jsx → jsx}/dom/client.d.ts +0 -0
- /package/dist/{types/jsx → jsx}/dom/components.d.ts +0 -0
- /package/dist/{types/jsx → jsx}/dom/context.d.ts +0 -0
- /package/dist/{types/jsx → jsx}/dom/css.d.ts +0 -0
- /package/dist/{types/jsx → jsx}/dom/hooks/index.d.ts +0 -0
- /package/dist/{types/jsx → jsx}/dom/index.d.ts +0 -0
- /package/dist/{types/jsx → jsx}/dom/intrinsic-element/components.d.ts +0 -0
- /package/dist/{types/jsx → jsx}/dom/jsx-dev-runtime.d.ts +0 -0
- /package/dist/{types/jsx → jsx}/dom/jsx-runtime.d.ts +0 -0
- /package/dist/{types/jsx → jsx}/dom/render.d.ts +0 -0
- /package/dist/{types/jsx → jsx}/dom/server.d.ts +0 -0
- /package/dist/{types/jsx → jsx}/dom/utils.d.ts +0 -0
- /package/dist/{types/jsx → jsx}/hooks/index.d.ts +0 -0
- /package/dist/{types/jsx → jsx}/index.d.ts +0 -0
- /package/dist/{types/jsx → jsx}/intrinsic-element/common.d.ts +0 -0
- /package/dist/{types/jsx → jsx}/intrinsic-element/components.d.ts +0 -0
- /package/dist/{types/jsx → jsx}/intrinsic-elements.d.ts +0 -0
- /package/dist/{types/jsx → jsx}/jsx-dev-runtime.d.ts +0 -0
- /package/dist/{types/jsx → jsx}/jsx-runtime.d.ts +0 -0
- /package/dist/{types/jsx → jsx}/streaming.d.ts +0 -0
- /package/dist/{types/jsx → jsx}/types.d.ts +0 -0
- /package/dist/{types/jsx → jsx}/utils.d.ts +0 -0
- /package/dist/{types/middleware → middleware}/body-limit/index.d.ts +0 -0
- /package/dist/{types/middleware → middleware}/cache/index.d.ts +0 -0
- /package/dist/{types/middleware → middleware}/combine/index.d.ts +0 -0
- /package/dist/{types/middleware → middleware}/compress/index.d.ts +0 -0
- /package/dist/{types/middleware → middleware}/context-storage/index.d.ts +0 -0
- /package/dist/{types/middleware → middleware}/cors/index.d.ts +0 -0
- /package/dist/{types/middleware → middleware}/csrf/index.d.ts +0 -0
- /package/dist/{types/middleware → middleware}/etag/digest.d.ts +0 -0
- /package/dist/{types/middleware → middleware}/etag/index.d.ts +0 -0
- /package/dist/{types/middleware → middleware}/ip-restriction/index.d.ts +0 -0
- /package/dist/{types/middleware → middleware}/jsx-renderer/index.d.ts +0 -0
- /package/dist/{types/middleware → middleware}/jwk/index.d.ts +0 -0
- /package/dist/{types/middleware → middleware}/jwk/jwk.d.ts +0 -0
- /package/dist/{types/middleware → middleware}/jwt/index.d.ts +0 -0
- /package/dist/{types/middleware → middleware}/jwt/jwt.d.ts +0 -0
- /package/dist/{types/middleware → middleware}/language/index.d.ts +0 -0
- /package/dist/{types/middleware → middleware}/language/language.d.ts +0 -0
- /package/dist/{types/middleware → middleware}/logger/index.d.ts +0 -0
- /package/dist/{types/middleware → middleware}/method-not-allowed/index.d.ts +0 -0
- /package/dist/{types/middleware → middleware}/method-override/index.d.ts +0 -0
- /package/dist/{types/middleware → middleware}/mount/index.d.ts +0 -0
- /package/dist/{types/middleware → middleware}/powered-by/index.d.ts +0 -0
- /package/dist/{types/middleware → middleware}/pretty-json/index.d.ts +0 -0
- /package/dist/{types/middleware → middleware}/request-id/index.d.ts +0 -0
- /package/dist/{types/middleware → middleware}/request-id/request-id.d.ts +0 -0
- /package/dist/{types/middleware → middleware}/secure-headers/index.d.ts +0 -0
- /package/dist/{types/middleware → middleware}/secure-headers/permissions-policy.d.ts +0 -0
- /package/dist/{types/middleware → middleware}/secure-headers/secure-headers.d.ts +0 -0
- /package/dist/{types/middleware → middleware}/serve-static/path.d.ts +0 -0
- /package/dist/{types/middleware → middleware}/timeout/index.d.ts +0 -0
- /package/dist/{types/middleware → middleware}/timing/index.d.ts +0 -0
- /package/dist/{types/middleware → middleware}/timing/timing.d.ts +0 -0
- /package/dist/{types/middleware → middleware}/trailing-slash/index.d.ts +0 -0
- /package/dist/{types/request → request}/constants.d.ts +0 -0
- /package/dist/{types/router → router}/linear-router/index.d.ts +0 -0
- /package/dist/{types/router → router}/linear-router/router.d.ts +0 -0
- /package/dist/{types/router → router}/pattern-router/index.d.ts +0 -0
- /package/dist/{types/router → router}/pattern-router/router.d.ts +0 -0
- /package/dist/{types/router → router}/reg-exp-router/index.d.ts +0 -0
- /package/dist/{types/router → router}/reg-exp-router/matcher.d.ts +0 -0
- /package/dist/{types/router → router}/reg-exp-router/node.d.ts +0 -0
- /package/dist/{types/router → router}/reg-exp-router/prepared-router.d.ts +0 -0
- /package/dist/{types/router → router}/reg-exp-router/router.d.ts +0 -0
- /package/dist/{types/router → router}/reg-exp-router/trie.d.ts +0 -0
- /package/dist/{types/router → router}/smart-router/index.d.ts +0 -0
- /package/dist/{types/router → router}/smart-router/router.d.ts +0 -0
- /package/dist/{types/router → router}/trie-router/index.d.ts +0 -0
- /package/dist/{types/router → router}/trie-router/node.d.ts +0 -0
- /package/dist/{types/router → router}/trie-router/router.d.ts +0 -0
- /package/dist/{types/router → router}/utils.d.ts +0 -0
- /package/dist/{types/router.d.ts → router.d.ts} +0 -0
- /package/dist/{types/utils → utils}/accept.d.ts +0 -0
- /package/dist/{types/utils → utils}/basic-auth.d.ts +0 -0
- /package/dist/{types/utils → utils}/body.d.ts +0 -0
- /package/dist/{types/utils → utils}/compress.d.ts +0 -0
- /package/dist/{types/utils → utils}/concurrent.d.ts +0 -0
- /package/dist/{types/utils → utils}/constants.d.ts +0 -0
- /package/dist/{types/utils → utils}/cookie.d.ts +0 -0
- /package/dist/{types/utils → utils}/crypto.d.ts +0 -0
- /package/dist/{types/utils → utils}/encode.d.ts +0 -0
- /package/dist/{types/utils → utils}/filepath.d.ts +0 -0
- /package/dist/{types/utils → utils}/handler.d.ts +0 -0
- /package/dist/{types/utils → utils}/headers.d.ts +0 -0
- /package/dist/{types/utils → utils}/html.d.ts +0 -0
- /package/dist/{types/utils → utils}/ipaddr.d.ts +0 -0
- /package/dist/{types/utils → utils}/jwt/index.d.ts +0 -0
- /package/dist/{types/utils → utils}/jwt/jwa.d.ts +0 -0
- /package/dist/{types/utils → utils}/jwt/jws.d.ts +0 -0
- /package/dist/{types/utils → utils}/jwt/jwt.d.ts +0 -0
- /package/dist/{types/utils → utils}/jwt/types.d.ts +0 -0
- /package/dist/{types/utils → utils}/jwt/utf8.d.ts +0 -0
- /package/dist/{types/utils → utils}/mime.d.ts +0 -0
- /package/dist/{types/utils → utils}/stream.d.ts +0 -0
- /package/dist/{types/utils → utils}/types.d.ts +0 -0
- /package/dist/{types/validator → validator}/index.d.ts +0 -0
- /package/dist/{types/validator → validator}/utils.d.ts +0 -0
package/dist/utils/buffer.js
CHANGED
|
@@ -1,9 +1,5 @@
|
|
|
1
1
|
import { sha256 } from "./crypto.js";
|
|
2
2
|
//#region src/utils/buffer.ts
|
|
3
|
-
/**
|
|
4
|
-
* @module
|
|
5
|
-
* Buffer utility.
|
|
6
|
-
*/
|
|
7
3
|
const equal = (a, b) => {
|
|
8
4
|
if (a === b) return true;
|
|
9
5
|
if (a.byteLength !== b.byteLength) return false;
|
|
@@ -25,7 +21,7 @@ const constantTimeEqualString = (a, b) => {
|
|
|
25
21
|
}
|
|
26
22
|
return out === 0;
|
|
27
23
|
};
|
|
28
|
-
const
|
|
24
|
+
const timingSafeEqual = async (a, b, hashFunction) => {
|
|
29
25
|
if (!hashFunction) hashFunction = sha256;
|
|
30
26
|
const [sa, sb] = await Promise.all([hashFunction(a), hashFunction(b)]);
|
|
31
27
|
if (sa == null || sb == null || typeof sa !== "string" || typeof sb !== "string") return false;
|
|
@@ -33,13 +29,6 @@ const timingSafeEqualString = async (a, b, hashFunction) => {
|
|
|
33
29
|
const originalEqual = constantTimeEqualString(a, b);
|
|
34
30
|
return hashEqual && originalEqual;
|
|
35
31
|
};
|
|
36
|
-
const timingSafeEqual = async (a, b, hashFunction) => {
|
|
37
|
-
if (typeof a === "string" && typeof b === "string") return timingSafeEqualString(a, b, hashFunction);
|
|
38
|
-
if (!hashFunction) hashFunction = sha256;
|
|
39
|
-
const [sa, sb] = await Promise.all([hashFunction(a), hashFunction(b)]);
|
|
40
|
-
if (!sa || !sb || typeof sa !== "string" || typeof sb !== "string") return false;
|
|
41
|
-
return timingSafeEqualString(sa, sb);
|
|
42
|
-
};
|
|
43
32
|
const bufferToString = (buffer) => {
|
|
44
33
|
if (buffer instanceof ArrayBuffer) return new TextDecoder("utf-8").decode(buffer);
|
|
45
34
|
return buffer;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
//#region src/utils/color.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* @module
|
|
4
|
+
* Color utility.
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Get whether color change on terminal is enabled or disabled.
|
|
8
|
+
* If `NO_COLOR` is set in the provided bindings or runtime environment, this function returns `false`.
|
|
9
|
+
* Pass Cloudflare Workers bindings explicitly, for example `getColorEnabled(c.env)`.
|
|
10
|
+
* @see {@link https://no-color.org/}
|
|
11
|
+
*
|
|
12
|
+
* @param {object} [env] - Optional environment bindings to check in addition to the runtime environment.
|
|
13
|
+
* @returns {boolean}
|
|
14
|
+
*/
|
|
15
|
+
export declare function getColorEnabled(env?: object): boolean;
|
|
16
|
+
//#endregion
|
package/dist/utils/color.js
CHANGED
|
@@ -1,37 +1,8 @@
|
|
|
1
1
|
//#region src/utils/color.ts
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
* Color utility.
|
|
5
|
-
*/
|
|
6
|
-
/**
|
|
7
|
-
* Get whether color change on terminal is enabled or disabled.
|
|
8
|
-
* If `NO_COLOR` environment variable is set, this function returns `false`.
|
|
9
|
-
* Unlike getColorEnabledAsync(), this cannot check Cloudflare environment variables.
|
|
10
|
-
* @see {@link https://no-color.org/}
|
|
11
|
-
*
|
|
12
|
-
* @returns {boolean}
|
|
13
|
-
*/
|
|
14
|
-
function getColorEnabled() {
|
|
2
|
+
function getColorEnabled(env) {
|
|
3
|
+
if (env && "NO_COLOR" in env) return false;
|
|
15
4
|
const { process, Deno } = globalThis;
|
|
16
|
-
return !(typeof Deno?.noColor === "boolean" ? Deno.noColor :
|
|
17
|
-
}
|
|
18
|
-
/**
|
|
19
|
-
* Get whether color change on terminal is enabled or disabled.
|
|
20
|
-
* If `NO_COLOR` environment variable is set, this function returns `false`.
|
|
21
|
-
* @see {@link https://no-color.org/}
|
|
22
|
-
*
|
|
23
|
-
* @returns {boolean}
|
|
24
|
-
*/
|
|
25
|
-
async function getColorEnabledAsync() {
|
|
26
|
-
const { navigator } = globalThis;
|
|
27
|
-
const cfWorkers = "cloudflare:workers";
|
|
28
|
-
return !(navigator !== void 0 && navigator.userAgent === "Cloudflare-Workers" ? await (async () => {
|
|
29
|
-
try {
|
|
30
|
-
return "NO_COLOR" in ((await import(cfWorkers)).env ?? {});
|
|
31
|
-
} catch {
|
|
32
|
-
return false;
|
|
33
|
-
}
|
|
34
|
-
})() : !getColorEnabled());
|
|
5
|
+
return !(typeof Deno?.noColor === "boolean" ? Deno.noColor : "NO_COLOR" in (process?.env ?? {}));
|
|
35
6
|
}
|
|
36
7
|
//#endregion
|
|
37
|
-
export { getColorEnabled
|
|
8
|
+
export { getColorEnabled };
|
package/dist/utils/compress.js
CHANGED
|
@@ -1,11 +1,4 @@
|
|
|
1
1
|
//#region src/utils/compress.ts
|
|
2
|
-
/**
|
|
3
|
-
* @module
|
|
4
|
-
* Constants for compression.
|
|
5
|
-
*/
|
|
6
|
-
/**
|
|
7
|
-
* Match for compressible content type.
|
|
8
|
-
*/
|
|
9
2
|
const COMPRESSIBLE_CONTENT_TYPE_REGEX = /^\s*(?:text\/(?!event-stream(?:[;\s]|$))[^;\s]+|application\/(?:javascript|json|xml|xml-dtd|ecmascript|dart|msgpack|postscript|rtf|tar|toml|vnd\.dart|vnd\.ms-fontobject|vnd\.ms-opentype|vnd\.msgpack|wasm|x-httpd-php|x-javascript|x-msgpack|x-ns-proxy-autoconfig|x-sh|x-tar|x-virtualbox-hdd|x-virtualbox-ova|x-virtualbox-ovf|x-virtualbox-vbox|x-virtualbox-vdi|x-virtualbox-vhd|x-virtualbox-vmdk|x-www-form-urlencoded)|font\/(?:otf|ttf)|image\/(?:bmp|vnd\.adobe\.photoshop|vnd\.microsoft\.icon|vnd\.ms-dds|x-icon|x-ms-bmp)|message\/rfc822|model\/gltf-binary|x-shader\/x-fragment|x-shader\/x-vertex|[^;\s]+?\+(?:json|text|xml|yaml|msgpack))(?:[;\s]|$)/i;
|
|
10
3
|
//#endregion
|
|
11
4
|
export { COMPRESSIBLE_CONTENT_TYPE_REGEX };
|
package/dist/utils/concurrent.js
CHANGED
package/dist/utils/constants.js
CHANGED
package/dist/utils/cookie.js
CHANGED
package/dist/utils/encode.js
CHANGED
package/dist/utils/handler.js
CHANGED
|
@@ -1,9 +1,5 @@
|
|
|
1
1
|
import { COMPOSED_HANDLER } from "./constants.js";
|
|
2
2
|
//#region src/utils/handler.ts
|
|
3
|
-
/**
|
|
4
|
-
* @module
|
|
5
|
-
* Handler utility.
|
|
6
|
-
*/
|
|
7
3
|
const isMiddleware = (handler) => handler.length > 1;
|
|
8
4
|
const findTargetHandler = (handler) => {
|
|
9
5
|
return handler["__COMPOSED_HANDLER"] ? findTargetHandler(handler[COMPOSED_HANDLER]) : handler;
|
package/dist/utils/html.js
CHANGED
|
@@ -11,8 +11,8 @@ export type ClientErrorStatusCode = 400 | 401 | 402 | 403 | 404 | 405 | 406 | 40
|
|
|
11
11
|
export type ServerErrorStatusCode = 500 | 501 | 502 | 503 | 504 | 505 | 506 | 507 | 508 | 510 | 511;
|
|
12
12
|
/**
|
|
13
13
|
* `UnofficialStatusCode` can be used to specify an unofficial status code.
|
|
14
|
-
* @example
|
|
15
14
|
*
|
|
15
|
+
* @example
|
|
16
16
|
* ```ts
|
|
17
17
|
* app.get('/unknown', (c) => {
|
|
18
18
|
* return c.text("Unknown Error", 520 as UnofficialStatusCode)
|
|
@@ -20,14 +20,6 @@ export type ServerErrorStatusCode = 500 | 501 | 502 | 503 | 504 | 505 | 506 | 50
|
|
|
20
20
|
* ```
|
|
21
21
|
*/
|
|
22
22
|
export type UnofficialStatusCode = -1;
|
|
23
|
-
/**
|
|
24
|
-
* @deprecated
|
|
25
|
-
* Use `UnofficialStatusCode` instead.
|
|
26
|
-
*/
|
|
27
|
-
export type UnOfficalStatusCode = UnofficialStatusCode;
|
|
28
|
-
/**
|
|
29
|
-
* If you want to use an unofficial status, use `UnofficialStatusCode`.
|
|
30
|
-
*/
|
|
31
23
|
export type StatusCode = InfoStatusCode | SuccessStatusCode | RedirectStatusCode | ClientErrorStatusCode | ServerErrorStatusCode | UnofficialStatusCode;
|
|
32
24
|
export type ContentlessStatusCode = 101 | 204 | 205 | 304;
|
|
33
25
|
export type ContentfulStatusCode = Exclude<StatusCode, ContentlessStatusCode>;
|
package/dist/utils/ipaddr.js
CHANGED
|
@@ -1,9 +1,4 @@
|
|
|
1
1
|
//#region src/utils/ipaddr.ts
|
|
2
|
-
/**
|
|
3
|
-
* Expand IPv6 Address
|
|
4
|
-
* @param ipV6 Shorten IPv6 Address
|
|
5
|
-
* @return expanded IPv6 Address
|
|
6
|
-
*/
|
|
7
2
|
const expandIPv6 = (ipV6) => {
|
|
8
3
|
const sections = ipV6.split(":");
|
|
9
4
|
const lastSection = sections.at(-1);
|
|
@@ -33,10 +28,6 @@ const CHAR_CODE_f = 102;
|
|
|
33
28
|
const CHAR_CODE_DOT = 46;
|
|
34
29
|
const CHAR_CODE_COLON = 58;
|
|
35
30
|
const CHAR_CODE_PERCENT = 37;
|
|
36
|
-
/**
|
|
37
|
-
* Distinct Remote Addr
|
|
38
|
-
* @param remoteAddr Remote Addr
|
|
39
|
-
*/
|
|
40
31
|
const distinctRemoteAddr = (remoteAddr) => {
|
|
41
32
|
if (IPV4_REGEX.test(remoteAddr)) return "IPv4";
|
|
42
33
|
if (remoteAddr.includes(":")) return "IPv6";
|
|
@@ -84,19 +75,9 @@ const parseIPv6HexCode = (code) => {
|
|
|
84
75
|
return -1;
|
|
85
76
|
};
|
|
86
77
|
const isIPv6LinkLocal = (ipv6binary) => ipv6binary >> 118n === 1018n;
|
|
87
|
-
/**
|
|
88
|
-
* Convert IPv4 to Uint8Array
|
|
89
|
-
* @param ipv4 IPv4 Address
|
|
90
|
-
* @returns BigInt
|
|
91
|
-
*/
|
|
92
78
|
const convertIPv4ToBinary = (ipv4) => {
|
|
93
79
|
return parseIPv4ToBinary(ipv4, 0, ipv4.length, () => throwInvalidIPv4Address(ipv4));
|
|
94
80
|
};
|
|
95
|
-
/**
|
|
96
|
-
* Convert IPv6 to Uint8Array
|
|
97
|
-
* @param ipv6 IPv6 Address
|
|
98
|
-
* @returns BigInt
|
|
99
|
-
*/
|
|
100
81
|
const convertIPv6ToBinary = (ipv6) => {
|
|
101
82
|
const length = ipv6.length;
|
|
102
83
|
const sections = [];
|
|
@@ -181,33 +162,13 @@ const convertIPv6ToBinary = (ipv6) => {
|
|
|
181
162
|
if (hasZoneId && !isIPv6LinkLocal(result)) throwInvalidIPv6Address(ipv6);
|
|
182
163
|
return result;
|
|
183
164
|
};
|
|
184
|
-
/**
|
|
185
|
-
* Convert a binary representation of an IPv4 address to a string.
|
|
186
|
-
* @param ipV4 binary IPv4 Address
|
|
187
|
-
* @return IPv4 Address in string
|
|
188
|
-
*/
|
|
189
165
|
const convertIPv4BinaryToString = (ipV4) => {
|
|
190
166
|
const sections = [];
|
|
191
167
|
for (let i = 0; i < 4; i++) sections.push(ipV4 >> BigInt(8 * (3 - i)) & 255n);
|
|
192
168
|
return sections.join(".");
|
|
193
169
|
};
|
|
194
|
-
/**
|
|
195
|
-
* Check if a binary IPv6 address is an IPv4-mapped IPv6 address (::ffff:x.x.x.x)
|
|
196
|
-
* @param ipv6binary binary IPv6 Address
|
|
197
|
-
* @return true if the address is an IPv4-mapped IPv6 address
|
|
198
|
-
*/
|
|
199
170
|
const isIPv4MappedIPv6 = (ipv6binary) => ipv6binary >> 32n === 65535n;
|
|
200
|
-
/**
|
|
201
|
-
* Extract the IPv4 portion from an IPv4-mapped IPv6 address
|
|
202
|
-
* @param ipv6binary binary IPv4-mapped IPv6 Address
|
|
203
|
-
* @return binary IPv4 Address
|
|
204
|
-
*/
|
|
205
171
|
const convertIPv4MappedIPv6ToIPv4 = (ipv6binary) => ipv6binary & 4294967295n;
|
|
206
|
-
/**
|
|
207
|
-
* Convert a binary representation of an IPv6 address to a string.
|
|
208
|
-
* @param ipV6 binary IPv6 Address
|
|
209
|
-
* @return normalized IPv6 Address in string
|
|
210
|
-
*/
|
|
211
172
|
const convertIPv6BinaryToString = (ipV6) => {
|
|
212
173
|
if (ipV6 === 0n) return "::";
|
|
213
174
|
if (isIPv4MappedIPv6(ipV6)) return `::ffff:${convertIPv4BinaryToString(convertIPv4MappedIPv6ToIPv4(ipV6))}`;
|
package/dist/utils/jwt/index.js
CHANGED
package/dist/utils/jwt/jwa.js
CHANGED
|
@@ -1,9 +1,4 @@
|
|
|
1
1
|
//#region src/utils/jwt/jwa.ts
|
|
2
|
-
/**
|
|
3
|
-
* @module
|
|
4
|
-
* JSON Web Algorithms (JWA)
|
|
5
|
-
* https://datatracker.ietf.org/doc/html/rfc7518
|
|
6
|
-
*/
|
|
7
2
|
let AlgorithmTypes = /* @__PURE__ */ function(AlgorithmTypes) {
|
|
8
3
|
AlgorithmTypes["HS256"] = "HS256";
|
|
9
4
|
AlgorithmTypes["HS384"] = "HS384";
|
package/dist/utils/jwt/jws.js
CHANGED
|
@@ -3,11 +3,6 @@ import { getRuntimeKey } from "../../helper/adapter/index.js";
|
|
|
3
3
|
import { JwtAlgorithmNotImplemented } from "./types.js";
|
|
4
4
|
import { utf8Encoder } from "./utf8.js";
|
|
5
5
|
//#region src/utils/jwt/jws.ts
|
|
6
|
-
/**
|
|
7
|
-
* @module
|
|
8
|
-
* JSON Web Signature (JWS)
|
|
9
|
-
* https://datatracker.ietf.org/doc/html/rfc7515
|
|
10
|
-
*/
|
|
11
6
|
async function signing(privateKey, alg, data) {
|
|
12
7
|
const algorithm = getKeyAlgorithm(alg);
|
|
13
8
|
const cryptoKey = await importPrivateKey(privateKey, algorithm);
|
package/dist/utils/jwt/jwt.js
CHANGED
|
@@ -4,11 +4,6 @@ import { JwtAlgorithmMismatch, JwtAlgorithmNotAllowed, JwtAlgorithmRequired, Jwt
|
|
|
4
4
|
import { utf8Decoder, utf8Encoder } from "./utf8.js";
|
|
5
5
|
import { signing, verifying } from "./jws.js";
|
|
6
6
|
//#region src/utils/jwt/jwt.ts
|
|
7
|
-
/**
|
|
8
|
-
* @module
|
|
9
|
-
* JSON Web Token (JWT)
|
|
10
|
-
* https://datatracker.ietf.org/doc/html/rfc7519
|
|
11
|
-
*/
|
|
12
7
|
const encodeJwtPart = (part) => encodeBase64Url(utf8Encoder.encode(JSON.stringify(part)).buffer).replace(/=/g, "");
|
|
13
8
|
const encodeSignaturePart = (buf) => encodeBase64Url(buf).replace(/=/g, "");
|
|
14
9
|
const decodeJwtPart = (part) => JSON.parse(utf8Decoder.decode(decodeBase64Url(part)));
|
package/dist/utils/jwt/types.js
CHANGED
package/dist/utils/jwt/utf8.js
CHANGED
package/dist/utils/mime.js
CHANGED
package/dist/utils/stream.js
CHANGED
|
@@ -1,21 +1,11 @@
|
|
|
1
1
|
//#region src/utils/stream.ts
|
|
2
|
-
/**
|
|
3
|
-
* @module
|
|
4
|
-
* Stream utility.
|
|
5
|
-
*/
|
|
6
2
|
var StreamingApi = class {
|
|
7
3
|
writer;
|
|
8
4
|
encoder;
|
|
9
5
|
writable;
|
|
10
6
|
abortSubscribers = [];
|
|
11
7
|
responseReadable;
|
|
12
|
-
/**
|
|
13
|
-
* Whether the stream has been aborted.
|
|
14
|
-
*/
|
|
15
8
|
aborted = false;
|
|
16
|
-
/**
|
|
17
|
-
* Whether the stream has been closed normally.
|
|
18
|
-
*/
|
|
19
9
|
closed = false;
|
|
20
10
|
constructor(writable, _readable) {
|
|
21
11
|
this.writable = writable;
|
|
@@ -69,10 +59,6 @@ var StreamingApi = class {
|
|
|
69
59
|
onAbort(listener) {
|
|
70
60
|
this.abortSubscribers.push(listener);
|
|
71
61
|
}
|
|
72
|
-
/**
|
|
73
|
-
* Abort the stream.
|
|
74
|
-
* You can call this method when stream is aborted by external event.
|
|
75
|
-
*/
|
|
76
62
|
abort() {
|
|
77
63
|
if (!this.aborted) {
|
|
78
64
|
this.aborted = true;
|
|
@@ -20,11 +20,6 @@ export declare const tryDecode: (str: string, decoder: Decoder) => string;
|
|
|
20
20
|
*/
|
|
21
21
|
export declare const tryDecodeURI: (str: string) => string;
|
|
22
22
|
export declare const getPath: (request: Request) => string;
|
|
23
|
-
/**
|
|
24
|
-
* @deprecated
|
|
25
|
-
* Use the `URL` API instead.
|
|
26
|
-
*/
|
|
27
|
-
export declare const getQueryStrings: (url: string) => string;
|
|
28
23
|
export declare const getPathNoStrict: (request: Request) => string;
|
|
29
24
|
/**
|
|
30
25
|
* Merge paths.
|
package/dist/utils/url.js
CHANGED
|
@@ -70,15 +70,6 @@ const tryDecode = (str, decoder) => {
|
|
|
70
70
|
});
|
|
71
71
|
}
|
|
72
72
|
};
|
|
73
|
-
/**
|
|
74
|
-
* Try to apply decodeURI() to given string.
|
|
75
|
-
* If it fails, skip invalid percent encoding or invalid UTF-8 sequences, and apply decodeURI() to the rest as much as possible.
|
|
76
|
-
* @param str The string to decode.
|
|
77
|
-
* @returns The decoded string that sometimes contains undecodable percent encoding.
|
|
78
|
-
* @example
|
|
79
|
-
* tryDecodeURI('Hello%20World') // 'Hello World'
|
|
80
|
-
* tryDecodeURI('Hello%20World/%A4%A2') // 'Hello World/%A4%A2'
|
|
81
|
-
*/
|
|
82
73
|
const tryDecodeURI = (str) => tryDecode(str, decodeURI);
|
|
83
74
|
const getPath = (request) => {
|
|
84
75
|
const url = request.url;
|
|
@@ -96,30 +87,10 @@ const getPath = (request) => {
|
|
|
96
87
|
}
|
|
97
88
|
return url.slice(start, i);
|
|
98
89
|
};
|
|
99
|
-
/**
|
|
100
|
-
* @deprecated
|
|
101
|
-
* Use the `URL` API instead.
|
|
102
|
-
*/
|
|
103
|
-
const getQueryStrings = (url) => {
|
|
104
|
-
const queryIndex = url.indexOf("?", 8);
|
|
105
|
-
if (queryIndex === -1) return "";
|
|
106
|
-
const hashIndex = url.indexOf("#", 8);
|
|
107
|
-
return hashIndex === -1 ? url.slice(queryIndex) : queryIndex < hashIndex ? url.slice(queryIndex, hashIndex) : "";
|
|
108
|
-
};
|
|
109
90
|
const getPathNoStrict = (request) => {
|
|
110
91
|
const result = getPath(request);
|
|
111
92
|
return result.length > 1 && result.at(-1) === "/" ? result.slice(0, -1) : result;
|
|
112
93
|
};
|
|
113
|
-
/**
|
|
114
|
-
* Merge paths.
|
|
115
|
-
* @param {string[]} ...paths - The paths to merge.
|
|
116
|
-
* @returns {string} The merged path.
|
|
117
|
-
* @example
|
|
118
|
-
* mergePath('/api', '/users') // '/api/users'
|
|
119
|
-
* mergePath('/api/', '/users') // '/api/users'
|
|
120
|
-
* mergePath('/api', '/') // '/api'
|
|
121
|
-
* mergePath('/api/', '/') // '/api/'
|
|
122
|
-
*/
|
|
123
94
|
const mergePath = (base, sub, ...rest) => {
|
|
124
95
|
if (rest.length) sub = mergePath(sub, ...rest);
|
|
125
96
|
return `${base?.[0] === "/" ? "" : "/"}${base}${sub === "/" ? "" : `${base?.at(-1) === "/" ? "" : "/"}${sub?.[0] === "/" ? sub.slice(1) : sub}`}`;
|
|
@@ -198,4 +169,4 @@ const getQueryParams = (url, key) => {
|
|
|
198
169
|
};
|
|
199
170
|
const decodeURIComponent_ = decodeURIComponent;
|
|
200
171
|
//#endregion
|
|
201
|
-
export { checkOptionalParameter, decodeURIComponent_, getPath, getPathNoStrict, getPattern, getQueryParam, getQueryParams,
|
|
172
|
+
export { checkOptionalParameter, decodeURIComponent_, getPath, getPathNoStrict, getPattern, getQueryParam, getQueryParams, mergePath, splitPath, splitRoutingPath, tryDecode, tryDecodeURI, tryDecodeURIComponent };
|
|
@@ -6,6 +6,11 @@ type ValidationTargetKeysWithBody = 'form' | 'json';
|
|
|
6
6
|
type ValidationTargetByMethod<M> = M extends 'get' | 'head' ? Exclude<keyof ValidationTargets, ValidationTargetKeysWithBody> : keyof ValidationTargets;
|
|
7
7
|
export type ValidationFunction<InputType, OutputType, E extends Env = {}, P extends string = string> = (value: InputType, c: Context<E, P>) => OutputType | TypedResponse | Promise<OutputType> | Promise<TypedResponse>;
|
|
8
8
|
export type ExtractValidationResponse<VF> = VF extends ((value: any, c: any) => infer R) ? R extends Promise<infer PR> ? PR extends TypedResponse<infer T, infer S, infer F> ? TypedResponse<T, S, F> : PR extends Response ? PR : PR extends undefined ? never : never : R extends TypedResponse<infer T, infer S, infer F> ? TypedResponse<T, S, F> : R extends Response ? R : R extends undefined ? never : never : never;
|
|
9
|
+
/**
|
|
10
|
+
* Get the value of the validation target from the request.
|
|
11
|
+
* Returns a Promise only for `json` and `form`.
|
|
12
|
+
*/
|
|
13
|
+
export declare const getValidationTarget: (c: Context, target: keyof ValidationTargets) => unknown | Promise<unknown>;
|
|
9
14
|
export declare const validator: <InputType, P extends string, M extends string, U extends ValidationTargetByMethod<M>, P2 extends string = P, VF extends (value: unknown extends InputType ? ValidationTargets[U] : InputType, c: Context<any, P2>) => any = (value: unknown extends InputType ? ValidationTargets[U] : InputType, c: Context<any, P2>) => any, V extends {
|
|
10
15
|
in: { [K in U]: K extends "json" ? unknown extends InputType ? ExtractValidatorOutput<VF> : InputType : InferInput<ExtractValidatorOutput<VF>, K, FormValue>; };
|
|
11
16
|
out: { [K in U]: ExtractValidatorOutput<VF>; };
|
|
@@ -5,60 +5,53 @@ import { getCookie } from "../helper/cookie/index.js";
|
|
|
5
5
|
const jsonRegex = /^application\/([a-z-\.]+\+)?json(;\s*[a-zA-Z0-9\-]+\=([^;]+))*$/i;
|
|
6
6
|
const multipartRegex = /^multipart\/form-data(;\s?boundary=[a-zA-Z0-9'"()+_,\-./:=?]+)?$/i;
|
|
7
7
|
const urlencodedRegex = /^application\/x-www-form-urlencoded(;\s*[a-zA-Z0-9\-]+\=([^;]+))*$/i;
|
|
8
|
+
const getValidationTarget = (c, target) => {
|
|
9
|
+
const contentType = c.req.header("Content-Type");
|
|
10
|
+
switch (target) {
|
|
11
|
+
case "json":
|
|
12
|
+
if (!contentType || !jsonRegex.test(contentType)) return {};
|
|
13
|
+
return c.req.json().catch(() => {
|
|
14
|
+
throw new HTTPException(400, { message: "Malformed JSON in request body" });
|
|
15
|
+
});
|
|
16
|
+
case "form":
|
|
17
|
+
if (!contentType || !(multipartRegex.test(contentType) || urlencodedRegex.test(contentType))) return {};
|
|
18
|
+
return getForm(c, contentType);
|
|
19
|
+
case "query": return Object.fromEntries(Object.entries(c.req.queries()).map(([k, v]) => {
|
|
20
|
+
return v?.length === 1 ? [k, v[0]] : [k, v];
|
|
21
|
+
}));
|
|
22
|
+
case "param": return c.req.param();
|
|
23
|
+
case "header": return c.req.header();
|
|
24
|
+
case "cookie": return getCookie(c);
|
|
25
|
+
}
|
|
26
|
+
};
|
|
27
|
+
const getForm = async (c, contentType) => {
|
|
28
|
+
let formData;
|
|
29
|
+
if (c.req.bodyCache.formData) formData = await c.req.bodyCache.formData;
|
|
30
|
+
else try {
|
|
31
|
+
const arrayBuffer = await c.req.arrayBuffer();
|
|
32
|
+
formData = await bufferToFormData(arrayBuffer, contentType);
|
|
33
|
+
c.req.bodyCache.formData = formData;
|
|
34
|
+
} catch (e) {
|
|
35
|
+
let message = "Malformed FormData request.";
|
|
36
|
+
message += e instanceof Error ? ` ${e.message}` : ` ${String(e)}`;
|
|
37
|
+
throw new HTTPException(400, { message });
|
|
38
|
+
}
|
|
39
|
+
const form = Object.create(null);
|
|
40
|
+
formData.forEach((value, key) => {
|
|
41
|
+
if (key.endsWith("[]")) (form[key] ??= []).push(value);
|
|
42
|
+
else if (Array.isArray(form[key])) form[key].push(value);
|
|
43
|
+
else if (Object.hasOwn(form, key)) form[key] = [form[key], value];
|
|
44
|
+
else form[key] = value;
|
|
45
|
+
});
|
|
46
|
+
return form;
|
|
47
|
+
};
|
|
8
48
|
const validator = (target, validationFunc) => {
|
|
9
49
|
return async (c, next) => {
|
|
10
|
-
|
|
11
|
-
const contentType = c.req.header("Content-Type");
|
|
12
|
-
switch (target) {
|
|
13
|
-
case "json":
|
|
14
|
-
if (!contentType || !jsonRegex.test(contentType)) break;
|
|
15
|
-
try {
|
|
16
|
-
value = await c.req.json();
|
|
17
|
-
} catch {
|
|
18
|
-
throw new HTTPException(400, { message: "Malformed JSON in request body" });
|
|
19
|
-
}
|
|
20
|
-
break;
|
|
21
|
-
case "form": {
|
|
22
|
-
if (!contentType || !(multipartRegex.test(contentType) || urlencodedRegex.test(contentType))) break;
|
|
23
|
-
let formData;
|
|
24
|
-
if (c.req.bodyCache.formData) formData = await c.req.bodyCache.formData;
|
|
25
|
-
else try {
|
|
26
|
-
const arrayBuffer = await c.req.arrayBuffer();
|
|
27
|
-
formData = await bufferToFormData(arrayBuffer, contentType);
|
|
28
|
-
c.req.bodyCache.formData = formData;
|
|
29
|
-
} catch (e) {
|
|
30
|
-
let message = "Malformed FormData request.";
|
|
31
|
-
message += e instanceof Error ? ` ${e.message}` : ` ${String(e)}`;
|
|
32
|
-
throw new HTTPException(400, { message });
|
|
33
|
-
}
|
|
34
|
-
const form = Object.create(null);
|
|
35
|
-
formData.forEach((value, key) => {
|
|
36
|
-
if (key.endsWith("[]")) (form[key] ??= []).push(value);
|
|
37
|
-
else if (Array.isArray(form[key])) form[key].push(value);
|
|
38
|
-
else if (Object.hasOwn(form, key)) form[key] = [form[key], value];
|
|
39
|
-
else form[key] = value;
|
|
40
|
-
});
|
|
41
|
-
value = form;
|
|
42
|
-
break;
|
|
43
|
-
}
|
|
44
|
-
case "query":
|
|
45
|
-
value = Object.fromEntries(Object.entries(c.req.queries()).map(([k, v]) => {
|
|
46
|
-
return v.length === 1 ? [k, v[0]] : [k, v];
|
|
47
|
-
}));
|
|
48
|
-
break;
|
|
49
|
-
case "param":
|
|
50
|
-
value = c.req.param();
|
|
51
|
-
break;
|
|
52
|
-
case "header":
|
|
53
|
-
value = c.req.header();
|
|
54
|
-
break;
|
|
55
|
-
case "cookie": value = getCookie(c);
|
|
56
|
-
}
|
|
57
|
-
const res = await validationFunc(value, c);
|
|
50
|
+
const res = await validationFunc(await getValidationTarget(c, target), c);
|
|
58
51
|
if (res instanceof Response) return res;
|
|
59
52
|
c.req.addValidatedData(target, res);
|
|
60
53
|
return await next();
|
|
61
54
|
};
|
|
62
55
|
};
|
|
63
56
|
//#endregion
|
|
64
|
-
export { validator };
|
|
57
|
+
export { getValidationTarget, validator };
|