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
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { getColorEnabled } from "../../utils/color.js";
|
|
2
2
|
//#region src/middleware/logger/index.ts
|
|
3
3
|
const humanize = (times) => {
|
|
4
4
|
const [delimiter, separator] = [",", "."];
|
|
@@ -8,8 +8,8 @@ const time = (start) => {
|
|
|
8
8
|
const delta = Date.now() - start;
|
|
9
9
|
return humanize([delta < 1e3 ? delta + "ms" : Math.round(delta / 1e3) + "s"]);
|
|
10
10
|
};
|
|
11
|
-
const colorStatus =
|
|
12
|
-
if (
|
|
11
|
+
const colorStatus = (status, colorEnabled) => {
|
|
12
|
+
if (colorEnabled) switch (status / 100 | 0) {
|
|
13
13
|
case 5: return `\x1b[31m${status}\x1b[0m`;
|
|
14
14
|
case 4: return `\x1b[33m${status}\x1b[0m`;
|
|
15
15
|
case 3: return `\x1b[36m${status}\x1b[0m`;
|
|
@@ -17,33 +17,15 @@ const colorStatus = async (status) => {
|
|
|
17
17
|
}
|
|
18
18
|
return `${status}`;
|
|
19
19
|
};
|
|
20
|
-
async function log(fn, prefix, method, path, status = 0, elapsed) {
|
|
21
|
-
fn(prefix === "<--" ? `${prefix} ${method} ${path}` : `${prefix} ${method} ${path} ${await colorStatus(status)} ${elapsed}`);
|
|
22
|
-
}
|
|
23
|
-
/**
|
|
24
|
-
* Logger Middleware for Hono.
|
|
25
|
-
*
|
|
26
|
-
* @see {@link https://hono.dev/docs/middleware/builtin/logger}
|
|
27
|
-
*
|
|
28
|
-
* @param {PrintFunc} [fn=console.log] - Optional function for customized logging behavior.
|
|
29
|
-
* @returns {MiddlewareHandler} The middleware handler function.
|
|
30
|
-
*
|
|
31
|
-
* @example
|
|
32
|
-
* ```ts
|
|
33
|
-
* const app = new Hono()
|
|
34
|
-
*
|
|
35
|
-
* app.use(logger())
|
|
36
|
-
* app.get('/', (c) => c.text('Hello Hono!'))
|
|
37
|
-
* ```
|
|
38
|
-
*/
|
|
39
20
|
const logger = (fn = console.log) => {
|
|
40
21
|
return async function logger(c, next) {
|
|
41
22
|
const { method, url } = c.req;
|
|
42
23
|
const path = url.slice(url.indexOf("/", 8));
|
|
43
|
-
|
|
24
|
+
fn(`<-- ${method} ${path}`);
|
|
44
25
|
const start = Date.now();
|
|
45
26
|
await next();
|
|
46
|
-
|
|
27
|
+
const elapsed = time(start);
|
|
28
|
+
fn(`--> ${method} ${path} ${colorStatus(c.res.status, getColorEnabled(c.env))} ${elapsed}`);
|
|
47
29
|
};
|
|
48
30
|
};
|
|
49
31
|
//#endregion
|
|
@@ -3,41 +3,6 @@ import { TrieRouter } from "../../router/trie-router/router.js";
|
|
|
3
3
|
import "../../router/trie-router/index.js";
|
|
4
4
|
import { basePath, matchedRoutes } from "../../helper/route/index.js";
|
|
5
5
|
//#region src/middleware/method-not-allowed/index.ts
|
|
6
|
-
/**
|
|
7
|
-
* Method Not Allowed Middleware for Hono.
|
|
8
|
-
*
|
|
9
|
-
* Returns a `405 Method Not Allowed` response with an `Allow` header when the request path
|
|
10
|
-
* matches a registered route but the request method is not supported.
|
|
11
|
-
*
|
|
12
|
-
* @param {MethodNotAllowedOptions} options - The options for the middleware.
|
|
13
|
-
* @param {Hono} options.app - The Hono instance used by the application.
|
|
14
|
-
* @param {MethodNotAllowedHandler} [options.onMethodNotAllowed] - Generates the response, including its `Allow` header.
|
|
15
|
-
* @returns {MiddlewareHandler} The middleware handler function.
|
|
16
|
-
*
|
|
17
|
-
* @example
|
|
18
|
-
* ```ts
|
|
19
|
-
* const app = new Hono()
|
|
20
|
-
*
|
|
21
|
-
* app.use(methodNotAllowed({ app }))
|
|
22
|
-
*
|
|
23
|
-
* app.get('/hello', (c) => c.text('Hello!'))
|
|
24
|
-
* app.post('/hello', (c) => c.text('Posted!'))
|
|
25
|
-
*
|
|
26
|
-
* // PUT /hello -> 405 Method Not Allowed
|
|
27
|
-
* // Allow: GET, HEAD, POST
|
|
28
|
-
* ```
|
|
29
|
-
*
|
|
30
|
-
* @example
|
|
31
|
-
* ```ts
|
|
32
|
-
* app.use(
|
|
33
|
-
* methodNotAllowed({
|
|
34
|
-
* app,
|
|
35
|
-
* onMethodNotAllowed: (c, methods) =>
|
|
36
|
-
* c.json({ error: 'Method Not Allowed' }, 405, { Allow: methods.join(', ') }),
|
|
37
|
-
* })
|
|
38
|
-
* )
|
|
39
|
-
* ```
|
|
40
|
-
*/
|
|
41
6
|
const methodNotAllowed = (options) => {
|
|
42
7
|
let methodRouter;
|
|
43
8
|
return async function methodNotAllowed(c, next) {
|
|
@@ -48,7 +13,7 @@ const methodNotAllowed = (options) => {
|
|
|
48
13
|
if (!methodRouter) {
|
|
49
14
|
const methodsByPath = /* @__PURE__ */ new Map();
|
|
50
15
|
for (const route of options.app.routes) {
|
|
51
|
-
if (route.method === "ALL" || route.method === "HEAD") continue;
|
|
16
|
+
if (route.method === "ALL" || route.method === "HEAD" || route.method[0] === "@") continue;
|
|
52
17
|
const methods = methodsByPath.get(route.path) ?? /* @__PURE__ */ new Set();
|
|
53
18
|
methods.add(route.method);
|
|
54
19
|
if (route.method === "GET") methods.add("HEAD");
|
|
@@ -1,31 +1,6 @@
|
|
|
1
1
|
import { parseBody } from "../../utils/body.js";
|
|
2
2
|
//#region src/middleware/method-override/index.ts
|
|
3
3
|
const DEFAULT_METHOD_FORM_NAME = "_method";
|
|
4
|
-
/**
|
|
5
|
-
* Method Override Middleware for Hono.
|
|
6
|
-
*
|
|
7
|
-
* @see {@link https://hono.dev/docs/middleware/builtin/method-override}
|
|
8
|
-
*
|
|
9
|
-
* @param {MethodOverrideOptions} options - The options for the method override middleware.
|
|
10
|
-
* @param {Hono} options.app - The instance of Hono is used in your application.
|
|
11
|
-
* @param {string} [options.form=_method] - Form key with a value containing the method name.
|
|
12
|
-
* @param {string} [options.header] - Header name with a value containing the method name.
|
|
13
|
-
* @param {string} [options.query] - Query parameter key with a value containing the method name.
|
|
14
|
-
* @returns {MiddlewareHandler} The middleware handler function.
|
|
15
|
-
*
|
|
16
|
-
* @example
|
|
17
|
-
* ```ts
|
|
18
|
-
* const app = new Hono()
|
|
19
|
-
*
|
|
20
|
-
* // If no options are specified, the value of `_method` in the form,
|
|
21
|
-
* // e.g. DELETE, is used as the method.
|
|
22
|
-
* app.use('/posts', methodOverride({ app }))
|
|
23
|
-
*
|
|
24
|
-
* app.delete('/posts', (c) => {
|
|
25
|
-
* // ....
|
|
26
|
-
* })
|
|
27
|
-
* ```
|
|
28
|
-
*/
|
|
29
4
|
const methodOverride = (options) => async function methodOverride(c, next) {
|
|
30
5
|
if (c.req.method === "GET") return await next();
|
|
31
6
|
const app = options.app;
|
|
@@ -13,38 +13,6 @@ const defaultGetOptions = (c) => {
|
|
|
13
13
|
} catch {}
|
|
14
14
|
return [c.env, executionContext];
|
|
15
15
|
};
|
|
16
|
-
/**
|
|
17
|
-
* `mount()` allows you to mount applications built with other frameworks into your Hono application.
|
|
18
|
-
*
|
|
19
|
-
* @see {@link https://hono.dev/docs/api/hono#mount}
|
|
20
|
-
*
|
|
21
|
-
* @param {Function} applicationHandler - other Request Handler
|
|
22
|
-
* @param {MountOptions} [options] - options of `mount()`
|
|
23
|
-
* @returns {MiddlewareHandler} handler to register with `app.all()`
|
|
24
|
-
*
|
|
25
|
-
* @example
|
|
26
|
-
* ```ts
|
|
27
|
-
* import { Router as IttyRouter } from 'itty-router'
|
|
28
|
-
* import { Hono } from 'hono'
|
|
29
|
-
* import { mount } from 'hono/mount'
|
|
30
|
-
* // Create itty-router application
|
|
31
|
-
* const ittyRouter = IttyRouter()
|
|
32
|
-
* // GET /itty-router/hello
|
|
33
|
-
* ittyRouter.get('/hello', () => new Response('Hello from itty-router'))
|
|
34
|
-
*
|
|
35
|
-
* const app = new Hono()
|
|
36
|
-
* app.all('/itty-router/*', mount(ittyRouter.handle))
|
|
37
|
-
* ```
|
|
38
|
-
*
|
|
39
|
-
* @example
|
|
40
|
-
* ```ts
|
|
41
|
-
* const app = new Hono()
|
|
42
|
-
* // Send the request to another application without modification.
|
|
43
|
-
* app.all('/app/*', mount(anotherApp, {
|
|
44
|
-
* replaceRequest: (req) => req,
|
|
45
|
-
* }))
|
|
46
|
-
* ```
|
|
47
|
-
*/
|
|
48
16
|
const mount = (applicationHandler, options) => {
|
|
49
17
|
let replaceRequest;
|
|
50
18
|
let optionHandler;
|
|
@@ -1,19 +1,4 @@
|
|
|
1
1
|
//#region src/middleware/powered-by/index.ts
|
|
2
|
-
/**
|
|
3
|
-
* Powered By Middleware for Hono.
|
|
4
|
-
*
|
|
5
|
-
* @param options - The options for the Powered By Middleware.
|
|
6
|
-
* @returns {MiddlewareHandler} The middleware handler function.
|
|
7
|
-
*
|
|
8
|
-
* @example
|
|
9
|
-
* ```ts
|
|
10
|
-
* import { poweredBy } from 'hono/powered-by'
|
|
11
|
-
*
|
|
12
|
-
* const app = new Hono()
|
|
13
|
-
*
|
|
14
|
-
* app.use(poweredBy()) // With options: poweredBy({ serverName: "My Server" })
|
|
15
|
-
* ```
|
|
16
|
-
*/
|
|
17
2
|
const poweredBy = (options) => {
|
|
18
3
|
return async function poweredBy(c, next) {
|
|
19
4
|
await next();
|
|
@@ -1,23 +1,5 @@
|
|
|
1
1
|
//#region src/middleware/pretty-json/index.ts
|
|
2
2
|
const jsonContentTypeRegex = /^application\/(?:[a-z0-9._-]+\+)?json(?=$|[;\s])/i;
|
|
3
|
-
/**
|
|
4
|
-
* Pretty JSON Middleware for Hono.
|
|
5
|
-
*
|
|
6
|
-
* @see {@link https://hono.dev/docs/middleware/builtin/pretty-json}
|
|
7
|
-
*
|
|
8
|
-
* @param options - The options for the pretty JSON middleware.
|
|
9
|
-
* @returns {MiddlewareHandler} The middleware handler function.
|
|
10
|
-
*
|
|
11
|
-
* @example
|
|
12
|
-
* ```ts
|
|
13
|
-
* const app = new Hono()
|
|
14
|
-
*
|
|
15
|
-
* app.use(prettyJSON()) // With options: prettyJSON({ space: 4 })
|
|
16
|
-
* app.get('/', (c) => {
|
|
17
|
-
* return c.json({ message: 'Hono!' })
|
|
18
|
-
* })
|
|
19
|
-
* ```
|
|
20
|
-
*/
|
|
21
3
|
const prettyJSON = (options) => {
|
|
22
4
|
const targetQuery = options?.query ?? "pretty";
|
|
23
5
|
return async function prettyJSON(c, next) {
|
|
@@ -1,26 +1,4 @@
|
|
|
1
1
|
//#region src/middleware/request-id/request-id.ts
|
|
2
|
-
/**
|
|
3
|
-
* Request ID Middleware for Hono.
|
|
4
|
-
*
|
|
5
|
-
* @param {object} options - Options for Request ID middleware.
|
|
6
|
-
* @param {number} [options.limitLength=255] - The maximum length of request id.
|
|
7
|
-
* @param {string} [options.headerName=X-Request-Id] - The header name used in request id.
|
|
8
|
-
* @param {generator} [options.generator=() => crypto.randomUUID()] - The request id generation function.
|
|
9
|
-
*
|
|
10
|
-
* @returns {MiddlewareHandler} The middleware handler function.
|
|
11
|
-
*
|
|
12
|
-
* @example
|
|
13
|
-
* ```ts
|
|
14
|
-
* type Variables = RequestIdVariables
|
|
15
|
-
* const app = new Hono<{Variables: Variables}>()
|
|
16
|
-
*
|
|
17
|
-
* app.use(requestId())
|
|
18
|
-
* app.get('/', (c) => {
|
|
19
|
-
* console.log(c.get('requestId')) // Debug
|
|
20
|
-
* return c.text('Hello World!')
|
|
21
|
-
* })
|
|
22
|
-
* ```
|
|
23
|
-
*/
|
|
24
2
|
const requestId = ({ limitLength = 255, headerName = "X-Request-Id", generator = () => crypto.randomUUID() } = {}) => {
|
|
25
3
|
return async function requestId(c, next) {
|
|
26
4
|
let reqId = headerName ? c.req.header(headerName) : void 0;
|
|
@@ -42,38 +42,6 @@ const NONCE = (ctx) => {
|
|
|
42
42
|
if (init == null) ctx.set(key, nonce);
|
|
43
43
|
return `'nonce-${nonce}'`;
|
|
44
44
|
};
|
|
45
|
-
/**
|
|
46
|
-
* Secure Headers Middleware for Hono.
|
|
47
|
-
*
|
|
48
|
-
* @see {@link https://hono.dev/docs/middleware/builtin/secure-headers}
|
|
49
|
-
*
|
|
50
|
-
* @param {Partial<SecureHeadersOptions>} [customOptions] - The options for the secure headers middleware.
|
|
51
|
-
* @param {ContentSecurityPolicyOptions} [customOptions.contentSecurityPolicy] - Settings for the Content-Security-Policy header.
|
|
52
|
-
* @param {ContentSecurityPolicyOptions} [customOptions.contentSecurityPolicyReportOnly] - Settings for the Content-Security-Policy-Report-Only header.
|
|
53
|
-
* @param {overridableHeader} [customOptions.crossOriginEmbedderPolicy=false] - Settings for the Cross-Origin-Embedder-Policy header.
|
|
54
|
-
* @param {overridableHeader} [customOptions.crossOriginResourcePolicy=true] - Settings for the Cross-Origin-Resource-Policy header.
|
|
55
|
-
* @param {overridableHeader} [customOptions.crossOriginOpenerPolicy=true] - Settings for the Cross-Origin-Opener-Policy header.
|
|
56
|
-
* @param {overridableHeader} [customOptions.originAgentCluster=true] - Settings for the Origin-Agent-Cluster header.
|
|
57
|
-
* @param {overridableHeader} [customOptions.referrerPolicy=true] - Settings for the Referrer-Policy header.
|
|
58
|
-
* @param {ReportingEndpointOptions[]} [customOptions.reportingEndpoints] - Settings for the Reporting-Endpoints header.
|
|
59
|
-
* @param {ReportToOptions[]} [customOptions.reportTo] - Settings for the Report-To header.
|
|
60
|
-
* @param {overridableHeader} [customOptions.strictTransportSecurity=true] - Settings for the Strict-Transport-Security header.
|
|
61
|
-
* @param {overridableHeader} [customOptions.xContentTypeOptions=true] - Settings for the X-Content-Type-Options header.
|
|
62
|
-
* @param {overridableHeader} [customOptions.xDnsPrefetchControl=true] - Settings for the X-DNS-Prefetch-Control header.
|
|
63
|
-
* @param {overridableHeader} [customOptions.xDownloadOptions=true] - Settings for the X-Download-Options header.
|
|
64
|
-
* @param {overridableHeader} [customOptions.xFrameOptions=true] - Settings for the X-Frame-Options header.
|
|
65
|
-
* @param {overridableHeader} [customOptions.xPermittedCrossDomainPolicies=true] - Settings for the X-Permitted-Cross-Domain-Policies header.
|
|
66
|
-
* @param {overridableHeader} [customOptions.xXssProtection=true] - Settings for the X-XSS-Protection header.
|
|
67
|
-
* @param {boolean} [customOptions.removePoweredBy=true] - Settings for remove X-Powered-By header.
|
|
68
|
-
* @param {PermissionsPolicyOptions} [customOptions.permissionsPolicy] - Settings for the Permissions-Policy header.
|
|
69
|
-
* @returns {MiddlewareHandler} The middleware handler function.
|
|
70
|
-
*
|
|
71
|
-
* @example
|
|
72
|
-
* ```ts
|
|
73
|
-
* const app = new Hono()
|
|
74
|
-
* app.use(secureHeaders())
|
|
75
|
-
* ```
|
|
76
|
-
*/
|
|
77
45
|
const secureHeaders = (customOptions) => {
|
|
78
46
|
const options = {
|
|
79
47
|
...DEFAULT_OPTIONS,
|
|
@@ -22,10 +22,6 @@ export declare const serveStatic: <E extends Env = Env>(options: ServeStaticOpti
|
|
|
22
22
|
* `join` option according to the runtime. Example `import { join } from 'node:path`. If not specified, it will fall back to the default join function.`
|
|
23
23
|
*/
|
|
24
24
|
join?: (...paths: string[]) => string;
|
|
25
|
-
/**
|
|
26
|
-
* @deprecated Currently, `pathResolve` is no longer used.
|
|
27
|
-
*/
|
|
28
|
-
pathResolve?: (path: string) => string;
|
|
29
25
|
isDir?: (path: string) => boolean | undefined | Promise<boolean | undefined>;
|
|
30
26
|
}) => MiddlewareHandler;
|
|
31
27
|
//#endregion
|
|
@@ -10,9 +10,6 @@ const ENCODINGS = {
|
|
|
10
10
|
};
|
|
11
11
|
const ENCODINGS_ORDERED_KEYS = Object.keys(ENCODINGS);
|
|
12
12
|
const DEFAULT_DOCUMENT = "index.html";
|
|
13
|
-
/**
|
|
14
|
-
* This middleware is not directly used by the user. Create a wrapper specifying `getContent()` by the environment such as Deno or Bun.
|
|
15
|
-
*/
|
|
16
13
|
const serveStatic = (options) => {
|
|
17
14
|
const root = options.root ?? "./";
|
|
18
15
|
const optionPath = options.path;
|
|
@@ -1,8 +1,4 @@
|
|
|
1
1
|
//#region src/middleware/serve-static/path.ts
|
|
2
|
-
/**
|
|
3
|
-
* `defaultJoin` does not support Windows paths and always uses `/` separators.
|
|
4
|
-
* If you need Windows path support, please use `join` exported from `node:path` etc. instead.
|
|
5
|
-
*/
|
|
6
2
|
const defaultJoin = (...paths) => {
|
|
7
3
|
let result = paths.filter((p) => p !== "").join("/");
|
|
8
4
|
result = result.replace(/(?<=\/)\/+/g, "");
|
|
@@ -1,28 +1,6 @@
|
|
|
1
1
|
import { HTTPException } from "../../http-exception.js";
|
|
2
2
|
//#region src/middleware/timeout/index.ts
|
|
3
3
|
const defaultTimeoutException = new HTTPException(504, { message: "Gateway Timeout" });
|
|
4
|
-
/**
|
|
5
|
-
* Timeout Middleware for Hono.
|
|
6
|
-
*
|
|
7
|
-
* @param {number} duration - The timeout duration in milliseconds.
|
|
8
|
-
* @param {HTTPExceptionFunction | HTTPException} [exception=defaultTimeoutException] - The exception to throw when the timeout occurs. Can be a function that returns an HTTPException or an HTTPException object.
|
|
9
|
-
* @returns {MiddlewareHandler} The middleware handler function.
|
|
10
|
-
*
|
|
11
|
-
* @example
|
|
12
|
-
* ```ts
|
|
13
|
-
* const app = new Hono()
|
|
14
|
-
*
|
|
15
|
-
* app.use(
|
|
16
|
-
* '/long-request',
|
|
17
|
-
* timeout(5000) // Set timeout to 5 seconds
|
|
18
|
-
* )
|
|
19
|
-
*
|
|
20
|
-
* app.get('/long-request', async (c) => {
|
|
21
|
-
* await someLongRunningFunction()
|
|
22
|
-
* return c.text('Completed within time limit')
|
|
23
|
-
* })
|
|
24
|
-
* ```
|
|
25
|
-
*/
|
|
26
4
|
const timeout = (duration, exception = defaultTimeoutException) => {
|
|
27
5
|
return async function timeout(context, next) {
|
|
28
6
|
let timer;
|
|
@@ -5,45 +5,6 @@ const getTime = () => {
|
|
|
5
5
|
} catch {}
|
|
6
6
|
return Date.now();
|
|
7
7
|
};
|
|
8
|
-
/**
|
|
9
|
-
* Server-Timing Middleware for Hono.
|
|
10
|
-
*
|
|
11
|
-
* @see {@link https://hono.dev/docs/middleware/builtin/timing}
|
|
12
|
-
*
|
|
13
|
-
* @param {TimingOptions} [config] - The options for the timing middleware.
|
|
14
|
-
* @param {boolean} [config.total=true] - Show the total response time.
|
|
15
|
-
* @param {boolean | ((c: Context) => boolean)} [config.enabled=true] - Whether timings should be added to the headers or not.
|
|
16
|
-
* @param {string} [config.totalDescription=Total Response Time] - Description for the total response time.
|
|
17
|
-
* @param {boolean} [config.autoEnd=true] - If `startTime()` should end automatically at the end of the request.
|
|
18
|
-
* @param {boolean | string | ((c: Context) => boolean | string)} [config.crossOrigin=false] - The origin this timings header should be readable.
|
|
19
|
-
* @returns {MiddlewareHandler} The middleware handler function.
|
|
20
|
-
*
|
|
21
|
-
* @example
|
|
22
|
-
* ```ts
|
|
23
|
-
* const app = new Hono()
|
|
24
|
-
*
|
|
25
|
-
* // add the middleware to your router
|
|
26
|
-
* app.use(timing());
|
|
27
|
-
*
|
|
28
|
-
* app.get('/', async (c) => {
|
|
29
|
-
* // add custom metrics
|
|
30
|
-
* setMetric(c, 'region', 'europe-west3')
|
|
31
|
-
*
|
|
32
|
-
* // add custom metrics with timing, must be in milliseconds
|
|
33
|
-
* setMetric(c, 'custom', 23.8, 'My custom Metric')
|
|
34
|
-
*
|
|
35
|
-
* // start a new timer
|
|
36
|
-
* startTime(c, 'db');
|
|
37
|
-
*
|
|
38
|
-
* const data = await db.findMany(...);
|
|
39
|
-
*
|
|
40
|
-
* // end the timer
|
|
41
|
-
* endTime(c, 'db');
|
|
42
|
-
*
|
|
43
|
-
* return c.json({ response: data });
|
|
44
|
-
* });
|
|
45
|
-
* ```
|
|
46
|
-
*/
|
|
47
8
|
const timing = (config) => {
|
|
48
9
|
const options = {
|
|
49
10
|
total: true,
|
|
@@ -74,21 +35,6 @@ const timing = (config) => {
|
|
|
74
35
|
}
|
|
75
36
|
};
|
|
76
37
|
};
|
|
77
|
-
/**
|
|
78
|
-
* Set a metric for the timing middleware.
|
|
79
|
-
*
|
|
80
|
-
* @param {Context} c - The context of the request.
|
|
81
|
-
* @param {string} name - The name of the metric.
|
|
82
|
-
* @param {number | string} [valueDescription] - The value or description of the metric.
|
|
83
|
-
* @param {string} [description] - The description of the metric.
|
|
84
|
-
* @param {number} [precision] - The precision of the metric value.
|
|
85
|
-
*
|
|
86
|
-
* @example
|
|
87
|
-
* ```ts
|
|
88
|
-
* setMetric(c, 'region', 'europe-west3')
|
|
89
|
-
* setMetric(c, 'custom', 23.8, 'My custom Metric')
|
|
90
|
-
* ```
|
|
91
|
-
*/
|
|
92
38
|
const setMetric = (c, name, valueDescription, description, precision) => {
|
|
93
39
|
const metrics = c.get("metric");
|
|
94
40
|
if (!metrics) {
|
|
@@ -104,18 +50,6 @@ const setMetric = (c, name, valueDescription, description, precision) => {
|
|
|
104
50
|
metrics.headers.push(metric);
|
|
105
51
|
}
|
|
106
52
|
};
|
|
107
|
-
/**
|
|
108
|
-
* Start a timer for the timing middleware.
|
|
109
|
-
*
|
|
110
|
-
* @param {Context} c - The context of the request.
|
|
111
|
-
* @param {string} name - The name of the timer.
|
|
112
|
-
* @param {string} [description] - The description of the timer.
|
|
113
|
-
*
|
|
114
|
-
* @example
|
|
115
|
-
* ```ts
|
|
116
|
-
* startTime(c, 'db')
|
|
117
|
-
* ```
|
|
118
|
-
*/
|
|
119
53
|
const startTime = (c, name, description) => {
|
|
120
54
|
const metrics = c.get("metric");
|
|
121
55
|
if (!metrics) {
|
|
@@ -127,18 +61,6 @@ const startTime = (c, name, description) => {
|
|
|
127
61
|
start: getTime()
|
|
128
62
|
});
|
|
129
63
|
};
|
|
130
|
-
/**
|
|
131
|
-
* End a timer for the timing middleware.
|
|
132
|
-
*
|
|
133
|
-
* @param {Context} c - The context of the request.
|
|
134
|
-
* @param {string} name - The name of the timer.
|
|
135
|
-
* @param {number} [precision] - The precision of the timer value.
|
|
136
|
-
*
|
|
137
|
-
* @example
|
|
138
|
-
* ```ts
|
|
139
|
-
* endTime(c, 'db')
|
|
140
|
-
* ```
|
|
141
|
-
*/
|
|
142
64
|
const endTime = (c, name, precision) => {
|
|
143
65
|
const metrics = c.get("metric");
|
|
144
66
|
if (!metrics) {
|
|
@@ -155,23 +77,6 @@ const endTime = (c, name, precision) => {
|
|
|
155
77
|
setMetric(c, name, duration, description, precision);
|
|
156
78
|
metrics.timers.delete(name);
|
|
157
79
|
};
|
|
158
|
-
/**
|
|
159
|
-
* Wrap a Promise to capture its duration.
|
|
160
|
-
* @param {Context} c - The context of the request.
|
|
161
|
-
* @param {string} name - The name of the timer.
|
|
162
|
-
* @param {Promise<T>} callable - The Promise to time.
|
|
163
|
-
* @param {string} [description] - The description of the timer.
|
|
164
|
-
* @param {number} [precision] - The precision of the timer value.
|
|
165
|
-
*
|
|
166
|
-
* @example
|
|
167
|
-
* ```ts
|
|
168
|
-
* // Instead of this:
|
|
169
|
-
* const data = await db.findMany(...);
|
|
170
|
-
*
|
|
171
|
-
* // do this:
|
|
172
|
-
* const data = await wrapTime(c, 'query', db.findMany(...));
|
|
173
|
-
* ```
|
|
174
|
-
* */
|
|
175
80
|
async function wrapTime(c, name, callable, description, precision) {
|
|
176
81
|
startTime(c, name, description);
|
|
177
82
|
try {
|
|
@@ -1,29 +1,4 @@
|
|
|
1
1
|
//#region src/middleware/trailing-slash/index.ts
|
|
2
|
-
/**
|
|
3
|
-
* Trailing Slash Middleware for Hono.
|
|
4
|
-
*
|
|
5
|
-
* @see {@link https://hono.dev/docs/middleware/builtin/trailing-slash}
|
|
6
|
-
*
|
|
7
|
-
* @param {TrimTrailingSlashOptions} options - The options for the middleware.
|
|
8
|
-
* @returns {MiddlewareHandler} The middleware handler function.
|
|
9
|
-
*
|
|
10
|
-
* @example
|
|
11
|
-
* ```ts
|
|
12
|
-
* const app = new Hono()
|
|
13
|
-
*
|
|
14
|
-
* app.use(trimTrailingSlash())
|
|
15
|
-
* app.get('/about/me/', (c) => c.text('With Trailing Slash'))
|
|
16
|
-
* ```
|
|
17
|
-
*
|
|
18
|
-
* @example
|
|
19
|
-
* ```ts
|
|
20
|
-
* // With alwaysRedirect option for wildcard routes
|
|
21
|
-
* const app = new Hono()
|
|
22
|
-
*
|
|
23
|
-
* app.use(trimTrailingSlash({ alwaysRedirect: true }))
|
|
24
|
-
* app.get('/my-path/*', (c) => c.text('Wildcard route'))
|
|
25
|
-
* ```
|
|
26
|
-
*/
|
|
27
2
|
const trimTrailingSlash = (options) => {
|
|
28
3
|
return async function trimTrailingSlash(c, next) {
|
|
29
4
|
if (options?.alwaysRedirect) {
|
|
@@ -41,31 +16,6 @@ const trimTrailingSlash = (options) => {
|
|
|
41
16
|
}
|
|
42
17
|
};
|
|
43
18
|
};
|
|
44
|
-
/**
|
|
45
|
-
* Append trailing slash middleware for Hono.
|
|
46
|
-
* Append a trailing slash to the URL if it doesn't have one. For example, `/path/to/page` will be redirected to `/path/to/page/`.
|
|
47
|
-
*
|
|
48
|
-
* @see {@link https://hono.dev/docs/middleware/builtin/trailing-slash}
|
|
49
|
-
*
|
|
50
|
-
* @param {AppendTrailingSlashOptions} options - The options for the middleware.
|
|
51
|
-
* @returns {MiddlewareHandler} The middleware handler function.
|
|
52
|
-
*
|
|
53
|
-
* @example
|
|
54
|
-
* ```ts
|
|
55
|
-
* const app = new Hono()
|
|
56
|
-
*
|
|
57
|
-
* app.use(appendTrailingSlash())
|
|
58
|
-
* ```
|
|
59
|
-
*
|
|
60
|
-
* @example
|
|
61
|
-
* ```ts
|
|
62
|
-
* // With alwaysRedirect option for wildcard routes
|
|
63
|
-
* const app = new Hono()
|
|
64
|
-
*
|
|
65
|
-
* app.use(appendTrailingSlash({ alwaysRedirect: true }))
|
|
66
|
-
* app.get('/my-path/*', (c) => c.text('Wildcard route'))
|
|
67
|
-
* ```
|
|
68
|
-
*/
|
|
69
19
|
const appendTrailingSlash = (options) => {
|
|
70
20
|
return async function appendTrailingSlash(c, next) {
|
|
71
21
|
if (options?.alwaysRedirect) {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { HonoBase as Hono$1, HonoOptions } from "../hono-base.js";
|
|
2
1
|
import { BlankEnv, BlankSchema, Env, Schema } from "../types.js";
|
|
2
|
+
import { HonoBase as Hono$1, HonoOptions } from "../hono-base.js";
|
|
3
3
|
//#region src/preset/quick.d.ts
|
|
4
4
|
export declare class Hono<E extends Env = BlankEnv, S extends Schema = BlankSchema, BasePath extends string = '/'> extends Hono$1<E, S, BasePath> {
|
|
5
5
|
constructor(options?: HonoOptions<E>);
|
package/dist/preset/quick.js
CHANGED
|
@@ -4,10 +4,6 @@ import { TrieRouter } from "../router/trie-router/router.js";
|
|
|
4
4
|
import "../router/trie-router/index.js";
|
|
5
5
|
import { LinearRouter } from "../router/linear-router/router.js";
|
|
6
6
|
//#region src/preset/quick.ts
|
|
7
|
-
/**
|
|
8
|
-
* @module
|
|
9
|
-
* The preset that uses `LinearRouter`.
|
|
10
|
-
*/
|
|
11
7
|
var Hono = class extends Hono$1 {
|
|
12
8
|
constructor(options = {}) {
|
|
13
9
|
super(options);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { HonoBase as Hono$1, HonoOptions } from "../hono-base.js";
|
|
2
1
|
import { BlankEnv, BlankSchema, Env, Schema } from "../types.js";
|
|
2
|
+
import { HonoBase as Hono$1, HonoOptions } from "../hono-base.js";
|
|
3
3
|
//#region src/preset/tiny.d.ts
|
|
4
4
|
export declare class Hono<E extends Env = BlankEnv, S extends Schema = BlankSchema, BasePath extends string = '/'> extends Hono$1<E, S, BasePath> {
|
|
5
5
|
constructor(options?: HonoOptions<E>);
|
package/dist/preset/tiny.js
CHANGED
|
@@ -1,10 +1,6 @@
|
|
|
1
1
|
import { HonoBase as Hono$1 } from "../hono-base.js";
|
|
2
2
|
import { PatternRouter } from "../router/pattern-router/router.js";
|
|
3
3
|
//#region src/preset/tiny.ts
|
|
4
|
-
/**
|
|
5
|
-
* @module
|
|
6
|
-
* The preset that uses `PatternRouter`.
|
|
7
|
-
*/
|
|
8
4
|
var Hono = class extends Hono$1 {
|
|
9
5
|
constructor(options = {}) {
|
|
10
6
|
super(options);
|
|
@@ -81,7 +81,7 @@ export declare class HonoRequest<P extends string = '/', I extends Input['out']
|
|
|
81
81
|
* ```
|
|
82
82
|
*/
|
|
83
83
|
query(key: string): string | undefined;
|
|
84
|
-
query(): Record<string, string>;
|
|
84
|
+
query(): Record<string, string | undefined>;
|
|
85
85
|
/**
|
|
86
86
|
* `.queries()` can get multiple querystring parameter values, e.g. /search?tags=A&tags=B
|
|
87
87
|
*
|
|
@@ -96,7 +96,7 @@ export declare class HonoRequest<P extends string = '/', I extends Input['out']
|
|
|
96
96
|
* ```
|
|
97
97
|
*/
|
|
98
98
|
queries(key: string): string[] | undefined;
|
|
99
|
-
queries(): Record<string, string[]>;
|
|
99
|
+
queries(): Record<string, string[] | undefined>;
|
|
100
100
|
/**
|
|
101
101
|
* `.header()` can get the request header value.
|
|
102
102
|
*
|
|
@@ -138,7 +138,7 @@ export declare class HonoRequest<P extends string = '/', I extends Input['out']
|
|
|
138
138
|
* })
|
|
139
139
|
* ```
|
|
140
140
|
*/
|
|
141
|
-
json<T =
|
|
141
|
+
json<T = unknown>(): Promise<T>;
|
|
142
142
|
/**
|
|
143
143
|
* `.text()` can parse Request body of type `text/plain`
|
|
144
144
|
*
|
|
@@ -244,51 +244,6 @@ export declare class HonoRequest<P extends string = '/', I extends Input['out']
|
|
|
244
244
|
*/
|
|
245
245
|
get method(): string;
|
|
246
246
|
get [GET_MATCH_RESULT](): Result<[unknown, RouterRoute]>;
|
|
247
|
-
/**
|
|
248
|
-
* `.matchedRoutes` can return a matched route in the handler
|
|
249
|
-
*
|
|
250
|
-
* @deprecated
|
|
251
|
-
*
|
|
252
|
-
* Use matchedRoutes helper defined in "hono/route" instead.
|
|
253
|
-
*
|
|
254
|
-
* @see {@link https://hono.dev/docs/api/request#matchedroutes}
|
|
255
|
-
*
|
|
256
|
-
* @example
|
|
257
|
-
* ```ts
|
|
258
|
-
* app.use('*', async function logger(c, next) {
|
|
259
|
-
* await next()
|
|
260
|
-
* c.req.matchedRoutes.forEach(({ handler, method, path }, i) => {
|
|
261
|
-
* const name = handler.name || (handler.length < 2 ? '[handler]' : '[middleware]')
|
|
262
|
-
* console.log(
|
|
263
|
-
* method,
|
|
264
|
-
* ' ',
|
|
265
|
-
* path,
|
|
266
|
-
* ' '.repeat(Math.max(10 - path.length, 0)),
|
|
267
|
-
* name,
|
|
268
|
-
* i === c.req.routeIndex ? '<- respond from here' : ''
|
|
269
|
-
* )
|
|
270
|
-
* })
|
|
271
|
-
* })
|
|
272
|
-
* ```
|
|
273
|
-
*/
|
|
274
|
-
get matchedRoutes(): RouterRoute[];
|
|
275
|
-
/**
|
|
276
|
-
* `.routePath` can retrieve the path registered within the handler
|
|
277
|
-
*
|
|
278
|
-
* @deprecated
|
|
279
|
-
*
|
|
280
|
-
* Use routePath helper defined in "hono/route" instead.
|
|
281
|
-
*
|
|
282
|
-
* @see {@link https://hono.dev/docs/api/request#routepath}
|
|
283
|
-
*
|
|
284
|
-
* @example
|
|
285
|
-
* ```ts
|
|
286
|
-
* app.get('/posts/:id', (c) => {
|
|
287
|
-
* return c.json({ path: c.req.routePath })
|
|
288
|
-
* })
|
|
289
|
-
* ```
|
|
290
|
-
*/
|
|
291
|
-
get routePath(): string;
|
|
292
247
|
}
|
|
293
248
|
/**
|
|
294
249
|
* Clones a HonoRequest's underlying raw Request object.
|