@nocobase/plugin-mcp-server 2.2.19 → 2.2.21

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.
Files changed (574) hide show
  1. package/dist/externalVersion.js +6 -6
  2. package/dist/node_modules/hono/README.md +1 -1
  3. package/dist/node_modules/hono/dist/_virtual/_rolldown/runtime.js +13 -0
  4. package/dist/node_modules/hono/dist/adapter/aws-lambda/conninfo.js +42 -23
  5. package/dist/node_modules/hono/dist/adapter/aws-lambda/handler.js +320 -342
  6. package/dist/node_modules/hono/dist/adapter/aws-lambda/index.js +2 -8
  7. package/dist/node_modules/hono/dist/adapter/aws-lambda/types.js +1 -0
  8. package/dist/node_modules/hono/dist/adapter/bun/conninfo.js +20 -25
  9. package/dist/node_modules/hono/dist/adapter/bun/index.js +3 -13
  10. package/dist/node_modules/hono/dist/adapter/bun/serve-static.js +27 -27
  11. package/dist/node_modules/hono/dist/adapter/bun/server.js +11 -5
  12. package/dist/node_modules/hono/dist/adapter/bun/ssg.js +25 -15
  13. package/dist/node_modules/hono/dist/adapter/bun/websocket.js +61 -68
  14. package/dist/node_modules/hono/dist/adapter/cloudflare-pages/conninfo.js +24 -9
  15. package/dist/node_modules/hono/dist/adapter/cloudflare-pages/handler.js +59 -62
  16. package/dist/node_modules/hono/dist/adapter/cloudflare-pages/index.js +2 -8
  17. package/dist/node_modules/hono/dist/adapter/cloudflare-workers/conninfo.js +7 -9
  18. package/dist/node_modules/hono/dist/adapter/cloudflare-workers/index.js +3 -8
  19. package/dist/node_modules/hono/dist/adapter/cloudflare-workers/serve-static-module.js +5 -6
  20. package/dist/node_modules/hono/dist/adapter/cloudflare-workers/serve-static.js +26 -20
  21. package/dist/node_modules/hono/dist/adapter/cloudflare-workers/utils.js +21 -34
  22. package/dist/node_modules/hono/dist/adapter/cloudflare-workers/websocket.js +31 -39
  23. package/dist/node_modules/hono/dist/adapter/deno/conninfo.js +16 -13
  24. package/dist/node_modules/hono/dist/adapter/deno/deno.d.js +1 -0
  25. package/dist/node_modules/hono/dist/adapter/deno/index.js +3 -10
  26. package/dist/node_modules/hono/dist/adapter/deno/serve-static.js +33 -38
  27. package/dist/node_modules/hono/dist/adapter/deno/ssg.js +27 -16
  28. package/dist/node_modules/hono/dist/adapter/deno/websocket.js +30 -30
  29. package/dist/node_modules/hono/dist/adapter/lambda-edge/conninfo.js +7 -9
  30. package/dist/node_modules/hono/dist/adapter/lambda-edge/handler.js +102 -87
  31. package/dist/node_modules/hono/dist/adapter/lambda-edge/index.js +2 -6
  32. package/dist/node_modules/hono/dist/adapter/netlify/conninfo.js +24 -9
  33. package/dist/node_modules/hono/dist/adapter/netlify/handler.js +10 -8
  34. package/dist/node_modules/hono/dist/adapter/netlify/index.js +3 -2
  35. package/dist/node_modules/hono/dist/adapter/netlify/mod.js +2 -6
  36. package/dist/node_modules/hono/dist/adapter/service-worker/handler.js +15 -19
  37. package/dist/node_modules/hono/dist/adapter/service-worker/index.js +23 -7
  38. package/dist/node_modules/hono/dist/adapter/service-worker/types.js +1 -0
  39. package/dist/node_modules/hono/dist/adapter/vercel/conninfo.js +7 -10
  40. package/dist/node_modules/hono/dist/adapter/vercel/handler.js +8 -6
  41. package/dist/node_modules/hono/dist/adapter/vercel/index.js +2 -6
  42. package/dist/node_modules/hono/dist/cjs/_virtual/_rolldown/runtime.js +33 -0
  43. package/dist/node_modules/hono/dist/cjs/adapter/aws-lambda/conninfo.js +42 -44
  44. package/dist/node_modules/hono/dist/cjs/adapter/aws-lambda/handler.js +328 -371
  45. package/dist/node_modules/hono/dist/cjs/adapter/aws-lambda/index.js +7 -34
  46. package/dist/node_modules/hono/dist/cjs/adapter/aws-lambda/types.js +0 -15
  47. package/dist/node_modules/hono/dist/cjs/adapter/bun/conninfo.js +21 -47
  48. package/dist/node_modules/hono/dist/cjs/adapter/bun/index.js +14 -45
  49. package/dist/node_modules/hono/dist/cjs/adapter/bun/serve-static.js +29 -50
  50. package/dist/node_modules/hono/dist/cjs/adapter/bun/server.js +11 -26
  51. package/dist/node_modules/hono/dist/cjs/adapter/bun/ssg.js +24 -35
  52. package/dist/node_modules/hono/dist/cjs/adapter/bun/websocket.js +63 -91
  53. package/dist/node_modules/hono/dist/cjs/adapter/cloudflare-pages/conninfo.js +25 -31
  54. package/dist/node_modules/hono/dist/cjs/adapter/cloudflare-pages/handler.js +61 -85
  55. package/dist/node_modules/hono/dist/cjs/adapter/cloudflare-pages/index.js +7 -34
  56. package/dist/node_modules/hono/dist/cjs/adapter/cloudflare-workers/conninfo.js +8 -31
  57. package/dist/node_modules/hono/dist/cjs/adapter/cloudflare-workers/index.js +7 -33
  58. package/dist/node_modules/hono/dist/cjs/adapter/cloudflare-workers/serve-static-module.js +7 -29
  59. package/dist/node_modules/hono/dist/cjs/adapter/cloudflare-workers/serve-static.js +27 -42
  60. package/dist/node_modules/hono/dist/cjs/adapter/cloudflare-workers/utils.js +21 -55
  61. package/dist/node_modules/hono/dist/cjs/adapter/cloudflare-workers/websocket.js +33 -62
  62. package/dist/node_modules/hono/dist/cjs/adapter/deno/conninfo.js +16 -34
  63. package/dist/node_modules/hono/dist/cjs/adapter/deno/index.js +10 -38
  64. package/dist/node_modules/hono/dist/cjs/adapter/deno/serve-static.js +33 -59
  65. package/dist/node_modules/hono/dist/cjs/adapter/deno/ssg.js +27 -37
  66. package/dist/node_modules/hono/dist/cjs/adapter/deno/websocket.js +32 -53
  67. package/dist/node_modules/hono/dist/cjs/adapter/lambda-edge/conninfo.js +8 -31
  68. package/dist/node_modules/hono/dist/cjs/adapter/lambda-edge/handler.js +105 -119
  69. package/dist/node_modules/hono/dist/cjs/adapter/lambda-edge/index.js +5 -30
  70. package/dist/node_modules/hono/dist/cjs/adapter/netlify/conninfo.js +25 -31
  71. package/dist/node_modules/hono/dist/cjs/adapter/netlify/handler.js +10 -29
  72. package/dist/node_modules/hono/dist/cjs/adapter/netlify/index.js +5 -21
  73. package/dist/node_modules/hono/dist/cjs/adapter/netlify/mod.js +5 -30
  74. package/dist/node_modules/hono/dist/cjs/adapter/service-worker/handler.js +16 -41
  75. package/dist/node_modules/hono/dist/cjs/adapter/service-worker/index.js +25 -30
  76. package/dist/node_modules/hono/dist/cjs/adapter/service-worker/types.js +0 -15
  77. package/dist/node_modules/hono/dist/cjs/adapter/vercel/conninfo.js +8 -32
  78. package/dist/node_modules/hono/dist/cjs/adapter/vercel/handler.js +8 -27
  79. package/dist/node_modules/hono/dist/cjs/adapter/vercel/index.js +5 -30
  80. package/dist/node_modules/hono/dist/cjs/client/client.js +139 -212
  81. package/dist/node_modules/hono/dist/cjs/client/fetch-result-please.js +62 -80
  82. package/dist/node_modules/hono/dist/cjs/client/index.js +7 -32
  83. package/dist/node_modules/hono/dist/cjs/client/types.js +0 -15
  84. package/dist/node_modules/hono/dist/cjs/client/utils.js +54 -92
  85. package/dist/node_modules/hono/dist/cjs/compose.js +49 -66
  86. package/dist/node_modules/hono/dist/cjs/context.js +379 -450
  87. package/dist/node_modules/hono/dist/cjs/helper/accepts/accepts.js +47 -70
  88. package/dist/node_modules/hono/dist/cjs/helper/accepts/index.js +3 -27
  89. package/dist/node_modules/hono/dist/cjs/helper/adapter/index.js +33 -73
  90. package/dist/node_modules/hono/dist/cjs/helper/conninfo/index.js +0 -15
  91. package/dist/node_modules/hono/dist/cjs/helper/conninfo/types.js +0 -15
  92. package/dist/node_modules/hono/dist/cjs/helper/cookie/index.js +75 -116
  93. package/dist/node_modules/hono/dist/cjs/helper/css/common.js +165 -244
  94. package/dist/node_modules/hono/dist/cjs/helper/css/index.js +136 -151
  95. package/dist/node_modules/hono/dist/cjs/helper/dev/index.js +45 -71
  96. package/dist/node_modules/hono/dist/cjs/helper/factory/index.js +30 -51
  97. package/dist/node_modules/hono/dist/cjs/helper/html/index.js +32 -62
  98. package/dist/node_modules/hono/dist/cjs/helper/proxy/index.js +113 -106
  99. package/dist/node_modules/hono/dist/cjs/helper/route/index.js +123 -66
  100. package/dist/node_modules/hono/dist/cjs/helper/ssg/index.js +19 -43
  101. package/dist/node_modules/hono/dist/cjs/helper/ssg/middleware.js +56 -64
  102. package/dist/node_modules/hono/dist/cjs/helper/ssg/plugins.js +55 -57
  103. package/dist/node_modules/hono/dist/cjs/helper/ssg/ssg.js +196 -296
  104. package/dist/node_modules/hono/dist/cjs/helper/ssg/utils.js +47 -90
  105. package/dist/node_modules/hono/dist/cjs/helper/streaming/index.js +8 -35
  106. package/dist/node_modules/hono/dist/cjs/helper/streaming/sse.js +53 -85
  107. package/dist/node_modules/hono/dist/cjs/helper/streaming/stream.js +23 -53
  108. package/dist/node_modules/hono/dist/cjs/helper/streaming/text.js +10 -32
  109. package/dist/node_modules/hono/dist/cjs/helper/streaming/utils.js +13 -32
  110. package/dist/node_modules/hono/dist/cjs/helper/testing/index.js +16 -31
  111. package/dist/node_modules/hono/dist/cjs/helper/websocket/index.js +51 -76
  112. package/dist/node_modules/hono/dist/cjs/hono-base.js +347 -402
  113. package/dist/node_modules/hono/dist/cjs/hono.js +28 -42
  114. package/dist/node_modules/hono/dist/cjs/http-exception.js +55 -56
  115. package/dist/node_modules/hono/dist/cjs/index.js +22 -30
  116. package/dist/node_modules/hono/dist/cjs/jsx/base.js +241 -353
  117. package/dist/node_modules/hono/dist/cjs/jsx/children.js +16 -41
  118. package/dist/node_modules/hono/dist/cjs/jsx/components.js +120 -194
  119. package/dist/node_modules/hono/dist/cjs/jsx/constants.js +15 -42
  120. package/dist/node_modules/hono/dist/cjs/jsx/context.js +144 -162
  121. package/dist/node_modules/hono/dist/cjs/jsx/dom/client.js +49 -69
  122. package/dist/node_modules/hono/dist/cjs/jsx/dom/components.js +23 -52
  123. package/dist/node_modules/hono/dist/cjs/jsx/dom/context.js +39 -67
  124. package/dist/node_modules/hono/dist/cjs/jsx/dom/css.js +143 -158
  125. package/dist/node_modules/hono/dist/cjs/jsx/dom/hooks/index.js +55 -64
  126. package/dist/node_modules/hono/dist/cjs/jsx/dom/index.js +114 -173
  127. package/dist/node_modules/hono/dist/cjs/jsx/dom/intrinsic-element/components.js +282 -375
  128. package/dist/node_modules/hono/dist/cjs/jsx/dom/jsx-dev-runtime.js +14 -49
  129. package/dist/node_modules/hono/dist/cjs/jsx/dom/jsx-runtime.js +5 -32
  130. package/dist/node_modules/hono/dist/cjs/jsx/dom/render.js +471 -589
  131. package/dist/node_modules/hono/dist/cjs/jsx/dom/server.js +37 -60
  132. package/dist/node_modules/hono/dist/cjs/jsx/dom/utils.js +7 -30
  133. package/dist/node_modules/hono/dist/cjs/jsx/hooks/index.js +225 -318
  134. package/dist/node_modules/hono/dist/cjs/jsx/index.js +86 -135
  135. package/dist/node_modules/hono/dist/cjs/jsx/intrinsic-element/common.js +20 -43
  136. package/dist/node_modules/hono/dist/cjs/jsx/intrinsic-element/components.js +117 -168
  137. package/dist/node_modules/hono/dist/cjs/jsx/intrinsic-elements.js +0 -15
  138. package/dist/node_modules/hono/dist/cjs/jsx/jsx-dev-runtime.js +14 -39
  139. package/dist/node_modules/hono/dist/cjs/jsx/jsx-runtime.js +34 -68
  140. package/dist/node_modules/hono/dist/cjs/jsx/streaming.js +123 -167
  141. package/dist/node_modules/hono/dist/cjs/jsx/types.js +0 -15
  142. package/dist/node_modules/hono/dist/cjs/jsx/utils.js +91 -175
  143. package/dist/node_modules/hono/dist/cjs/middleware/basic-auth/index.js +98 -86
  144. package/dist/node_modules/hono/dist/cjs/middleware/bearer-auth/index.js +92 -109
  145. package/dist/node_modules/hono/dist/cjs/middleware/body-limit/index.js +66 -72
  146. package/dist/node_modules/hono/dist/cjs/middleware/cache/index.js +153 -199
  147. package/dist/node_modules/hono/dist/cjs/middleware/combine/index.js +135 -95
  148. package/dist/node_modules/hono/dist/cjs/middleware/compress/index.js +73 -88
  149. package/dist/node_modules/hono/dist/cjs/middleware/context-storage/index.js +49 -41
  150. package/dist/node_modules/hono/dist/cjs/middleware/cors/index.js +107 -107
  151. package/dist/node_modules/hono/dist/cjs/middleware/csrf/index.js +101 -72
  152. package/dist/node_modules/hono/dist/cjs/middleware/etag/digest.js +58 -97
  153. package/dist/node_modules/hono/dist/cjs/middleware/etag/index.js +71 -91
  154. package/dist/node_modules/hono/dist/cjs/middleware/ip-restriction/index.js +161 -169
  155. package/dist/node_modules/hono/dist/cjs/middleware/jsx-renderer/index.js +99 -77
  156. package/dist/node_modules/hono/dist/cjs/middleware/jwk/index.js +3 -27
  157. package/dist/node_modules/hono/dist/cjs/middleware/jwk/jwk.js +118 -135
  158. package/dist/node_modules/hono/dist/cjs/middleware/jwt/index.js +9 -38
  159. package/dist/node_modules/hono/dist/cjs/middleware/jwt/jwt.js +120 -141
  160. package/dist/node_modules/hono/dist/cjs/middleware/language/index.js +7 -35
  161. package/dist/node_modules/hono/dist/cjs/middleware/language/language.js +184 -179
  162. package/dist/node_modules/hono/dist/cjs/middleware/logger/index.js +41 -62
  163. package/dist/node_modules/hono/dist/cjs/middleware/method-not-allowed/index.js +82 -88
  164. package/dist/node_modules/hono/dist/cjs/middleware/method-override/index.js +101 -102
  165. package/dist/node_modules/hono/dist/cjs/middleware/mount/index.js +71 -0
  166. package/dist/node_modules/hono/dist/cjs/middleware/powered-by/index.js +23 -30
  167. package/dist/node_modules/hono/dist/cjs/middleware/pretty-json/index.js +38 -36
  168. package/dist/node_modules/hono/dist/cjs/middleware/request-id/index.js +3 -27
  169. package/dist/node_modules/hono/dist/cjs/middleware/request-id/request-id.js +34 -42
  170. package/dist/node_modules/hono/dist/cjs/middleware/secure-headers/index.js +4 -29
  171. package/dist/node_modules/hono/dist/cjs/middleware/secure-headers/permissions-policy.js +0 -15
  172. package/dist/node_modules/hono/dist/cjs/middleware/secure-headers/secure-headers.js +142 -174
  173. package/dist/node_modules/hono/dist/cjs/middleware/serve-static/index.js +56 -93
  174. package/dist/node_modules/hono/dist/cjs/middleware/serve-static/path.js +15 -38
  175. package/dist/node_modules/hono/dist/cjs/middleware/timeout/index.js +40 -45
  176. package/dist/node_modules/hono/dist/cjs/middleware/timing/index.js +7 -35
  177. package/dist/node_modules/hono/dist/cjs/middleware/timing/timing.js +177 -118
  178. package/dist/node_modules/hono/dist/cjs/middleware/trailing-slash/index.js +85 -58
  179. package/dist/node_modules/hono/dist/cjs/preset/quick.js +18 -37
  180. package/dist/node_modules/hono/dist/cjs/preset/tiny.js +15 -33
  181. package/dist/node_modules/hono/dist/cjs/request/constants.js +5 -27
  182. package/dist/node_modules/hono/dist/cjs/request.js +334 -343
  183. package/dist/node_modules/hono/dist/cjs/router/linear-router/index.js +3 -27
  184. package/dist/node_modules/hono/dist/cjs/router/linear-router/router.js +95 -143
  185. package/dist/node_modules/hono/dist/cjs/router/pattern-router/index.js +3 -27
  186. package/dist/node_modules/hono/dist/cjs/router/pattern-router/router.js +41 -63
  187. package/dist/node_modules/hono/dist/cjs/router/reg-exp-router/index.js +7 -34
  188. package/dist/node_modules/hono/dist/cjs/router/reg-exp-router/matcher.js +18 -45
  189. package/dist/node_modules/hono/dist/cjs/router/reg-exp-router/node.js +91 -135
  190. package/dist/node_modules/hono/dist/cjs/router/reg-exp-router/prepared-router.js +92 -161
  191. package/dist/node_modules/hono/dist/cjs/router/reg-exp-router/router.js +98 -147
  192. package/dist/node_modules/hono/dist/cjs/router/reg-exp-router/trie.js +73 -89
  193. package/dist/node_modules/hono/dist/cjs/router/smart-router/index.js +3 -27
  194. package/dist/node_modules/hono/dist/cjs/router/smart-router/router.js +49 -79
  195. package/dist/node_modules/hono/dist/cjs/router/trie-router/index.js +3 -27
  196. package/dist/node_modules/hono/dist/cjs/router/trie-router/node.js +134 -186
  197. package/dist/node_modules/hono/dist/cjs/router/trie-router/router.js +15 -39
  198. package/dist/node_modules/hono/dist/cjs/router/utils.js +5 -27
  199. package/dist/node_modules/hono/dist/cjs/router.js +37 -37
  200. package/dist/node_modules/hono/dist/cjs/types.js +5 -28
  201. package/dist/node_modules/hono/dist/cjs/utils/accept.js +177 -228
  202. package/dist/node_modules/hono/dist/cjs/utils/basic-auth.js +16 -40
  203. package/dist/node_modules/hono/dist/cjs/utils/body.js +84 -110
  204. package/dist/node_modules/hono/dist/cjs/utils/buffer.js +43 -91
  205. package/dist/node_modules/hono/dist/cjs/utils/color.js +35 -44
  206. package/dist/node_modules/hono/dist/cjs/utils/compress.js +11 -26
  207. package/dist/node_modules/hono/dist/cjs/utils/concurrent.js +29 -59
  208. package/dist/node_modules/hono/dist/cjs/utils/constants.js +7 -26
  209. package/dist/node_modules/hono/dist/cjs/utils/cookie.js +107 -177
  210. package/dist/node_modules/hono/dist/cjs/utils/crypto.js +30 -61
  211. package/dist/node_modules/hono/dist/cjs/utils/encode.js +31 -48
  212. package/dist/node_modules/hono/dist/cjs/utils/filepath.js +23 -54
  213. package/dist/node_modules/hono/dist/cjs/utils/handler.js +11 -33
  214. package/dist/node_modules/hono/dist/cjs/utils/headers.js +0 -15
  215. package/dist/node_modules/hono/dist/cjs/utils/html.js +96 -137
  216. package/dist/node_modules/hono/dist/cjs/utils/http-status.js +0 -15
  217. package/dist/node_modules/hono/dist/cjs/utils/ipaddr.js +213 -286
  218. package/dist/node_modules/hono/dist/cjs/utils/jwt/index.js +14 -27
  219. package/dist/node_modules/hono/dist/cjs/utils/jwt/jwa.js +25 -42
  220. package/dist/node_modules/hono/dist/cjs/utils/jwt/jws.js +119 -199
  221. package/dist/node_modules/hono/dist/cjs/utils/jwt/jwt.js +122 -205
  222. package/dist/node_modules/hono/dist/cjs/utils/jwt/types.js +122 -159
  223. package/dist/node_modules/hono/dist/cjs/utils/jwt/utf8.js +9 -28
  224. package/dist/node_modules/hono/dist/cjs/utils/mime.js +75 -101
  225. package/dist/node_modules/hono/dist/cjs/utils/stream.js +88 -111
  226. package/dist/node_modules/hono/dist/cjs/utils/types.js +0 -15
  227. package/dist/node_modules/hono/dist/cjs/utils/url.js +185 -234
  228. package/dist/node_modules/hono/dist/cjs/validator/index.js +3 -27
  229. package/dist/node_modules/hono/dist/cjs/validator/utils.js +0 -15
  230. package/dist/node_modules/hono/dist/cjs/validator/validator.js +60 -103
  231. package/dist/node_modules/hono/dist/client/client.js +138 -197
  232. package/dist/node_modules/hono/dist/client/fetch-result-please.js +59 -56
  233. package/dist/node_modules/hono/dist/client/index.js +3 -7
  234. package/dist/node_modules/hono/dist/client/types.js +1 -0
  235. package/dist/node_modules/hono/dist/client/utils.js +51 -68
  236. package/dist/node_modules/hono/dist/compose.js +49 -45
  237. package/dist/node_modules/hono/dist/context.js +376 -426
  238. package/dist/node_modules/hono/dist/helper/accepts/accepts.js +47 -49
  239. package/dist/node_modules/hono/dist/helper/accepts/index.js +1 -4
  240. package/dist/node_modules/hono/dist/helper/adapter/index.js +33 -52
  241. package/dist/node_modules/hono/dist/helper/conninfo/index.js +1 -0
  242. package/dist/node_modules/hono/dist/helper/conninfo/types.js +1 -0
  243. package/dist/node_modules/hono/dist/helper/cookie/index.js +74 -94
  244. package/dist/node_modules/hono/dist/helper/css/common.js +167 -225
  245. package/dist/node_modules/hono/dist/helper/css/index.js +132 -137
  246. package/dist/node_modules/hono/dist/helper/dev/index.js +44 -49
  247. package/dist/node_modules/hono/dist/helper/factory/index.js +27 -27
  248. package/dist/node_modules/hono/dist/helper/html/index.js +30 -39
  249. package/dist/node_modules/hono/dist/helper/proxy/index.js +116 -88
  250. package/dist/node_modules/hono/dist/helper/route/index.js +121 -43
  251. package/dist/node_modules/hono/dist/helper/ssg/index.js +3 -18
  252. package/dist/node_modules/hono/dist/helper/ssg/middleware.js +53 -40
  253. package/dist/node_modules/hono/dist/helper/ssg/plugins.js +55 -36
  254. package/dist/node_modules/hono/dist/helper/ssg/ssg.js +198 -283
  255. package/dist/node_modules/hono/dist/helper/ssg/utils.js +53 -75
  256. package/dist/node_modules/hono/dist/helper/streaming/index.js +2 -8
  257. package/dist/node_modules/hono/dist/helper/streaming/sse.js +50 -61
  258. package/dist/node_modules/hono/dist/helper/streaming/stream.js +22 -31
  259. package/dist/node_modules/hono/dist/helper/streaming/text.js +9 -10
  260. package/dist/node_modules/hono/dist/helper/streaming/utils.js +9 -12
  261. package/dist/node_modules/hono/dist/helper/testing/index.js +16 -10
  262. package/dist/node_modules/hono/dist/helper/websocket/index.js +49 -53
  263. package/dist/node_modules/hono/dist/hono-base.js +344 -378
  264. package/dist/node_modules/hono/dist/hono.js +27 -20
  265. package/dist/node_modules/hono/dist/http-exception.js +53 -33
  266. package/dist/node_modules/hono/dist/index.js +19 -6
  267. package/dist/node_modules/hono/dist/jsx/base.js +233 -328
  268. package/dist/node_modules/hono/dist/jsx/children.js +16 -20
  269. package/dist/node_modules/hono/dist/jsx/components.js +118 -171
  270. package/dist/node_modules/hono/dist/jsx/constants.js +9 -15
  271. package/dist/node_modules/hono/dist/jsx/context.js +153 -150
  272. package/dist/node_modules/hono/dist/jsx/dom/client.js +45 -48
  273. package/dist/node_modules/hono/dist/jsx/dom/components.js +21 -29
  274. package/dist/node_modules/hono/dist/jsx/dom/context.js +37 -44
  275. package/dist/node_modules/hono/dist/jsx/dom/css.js +142 -147
  276. package/dist/node_modules/hono/dist/jsx/dom/hooks/index.js +52 -40
  277. package/dist/node_modules/hono/dist/jsx/dom/index.js +71 -134
  278. package/dist/node_modules/hono/dist/jsx/dom/intrinsic-element/components.js +275 -359
  279. package/dist/node_modules/hono/dist/jsx/dom/jsx-dev-runtime.js +14 -18
  280. package/dist/node_modules/hono/dist/jsx/dom/jsx-runtime.js +2 -8
  281. package/dist/node_modules/hono/dist/jsx/dom/render.js +492 -595
  282. package/dist/node_modules/hono/dist/jsx/dom/server.js +33 -29
  283. package/dist/node_modules/hono/dist/jsx/dom/utils.js +6 -8
  284. package/dist/node_modules/hono/dist/jsx/hooks/index.js +236 -308
  285. package/dist/node_modules/hono/dist/jsx/index.js +45 -98
  286. package/dist/node_modules/hono/dist/jsx/intrinsic-element/common.js +20 -22
  287. package/dist/node_modules/hono/dist/jsx/intrinsic-element/components.js +113 -154
  288. package/dist/node_modules/hono/dist/jsx/intrinsic-elements.js +1 -0
  289. package/dist/node_modules/hono/dist/jsx/jsx-dev-runtime.js +12 -16
  290. package/dist/node_modules/hono/dist/jsx/jsx-runtime.js +29 -42
  291. package/dist/node_modules/hono/dist/jsx/streaming.js +120 -143
  292. package/dist/node_modules/hono/dist/jsx/types.js +1 -0
  293. package/dist/node_modules/hono/dist/jsx/utils.js +105 -168
  294. package/dist/node_modules/hono/dist/middleware/basic-auth/index.js +96 -63
  295. package/dist/node_modules/hono/dist/middleware/bearer-auth/index.js +93 -89
  296. package/dist/node_modules/hono/dist/middleware/body-limit/index.js +66 -51
  297. package/dist/node_modules/hono/dist/middleware/cache/index.js +165 -190
  298. package/dist/node_modules/hono/dist/middleware/combine/index.js +134 -73
  299. package/dist/node_modules/hono/dist/middleware/compress/index.js +75 -69
  300. package/dist/node_modules/hono/dist/middleware/context-storage/index.js +49 -19
  301. package/dist/node_modules/hono/dist/middleware/cors/index.js +107 -86
  302. package/dist/node_modules/hono/dist/middleware/csrf/index.js +103 -53
  303. package/dist/node_modules/hono/dist/middleware/etag/digest.js +59 -77
  304. package/dist/node_modules/hono/dist/middleware/etag/index.js +71 -70
  305. package/dist/node_modules/hono/dist/middleware/ip-restriction/index.js +163 -158
  306. package/dist/node_modules/hono/dist/middleware/jsx-renderer/index.js +97 -54
  307. package/dist/node_modules/hono/dist/middleware/jwk/index.js +1 -4
  308. package/dist/node_modules/hono/dist/middleware/jwk/jwk.js +116 -112
  309. package/dist/node_modules/hono/dist/middleware/jwt/index.js +2 -10
  310. package/dist/node_modules/hono/dist/middleware/jwt/jwt.js +114 -114
  311. package/dist/node_modules/hono/dist/middleware/language/index.js +2 -15
  312. package/dist/node_modules/hono/dist/middleware/language/language.js +180 -154
  313. package/dist/node_modules/hono/dist/middleware/logger/index.js +43 -37
  314. package/dist/node_modules/hono/dist/middleware/method-not-allowed/index.js +81 -66
  315. package/dist/node_modules/hono/dist/middleware/method-override/index.js +101 -81
  316. package/dist/node_modules/hono/dist/middleware/mount/index.js +70 -0
  317. package/dist/node_modules/hono/dist/middleware/powered-by/index.js +23 -9
  318. package/dist/node_modules/hono/dist/middleware/pretty-json/index.js +39 -16
  319. package/dist/node_modules/hono/dist/middleware/request-id/index.js +1 -4
  320. package/dist/node_modules/hono/dist/middleware/request-id/request-id.js +33 -20
  321. package/dist/node_modules/hono/dist/middleware/secure-headers/index.js +1 -5
  322. package/dist/node_modules/hono/dist/middleware/secure-headers/permissions-policy.js +1 -0
  323. package/dist/node_modules/hono/dist/middleware/secure-headers/secure-headers.js +144 -155
  324. package/dist/node_modules/hono/dist/middleware/serve-static/index.js +56 -72
  325. package/dist/node_modules/hono/dist/middleware/serve-static/path.js +15 -17
  326. package/dist/node_modules/hono/dist/middleware/timeout/index.js +40 -23
  327. package/dist/node_modules/hono/dist/middleware/timing/index.js +2 -9
  328. package/dist/node_modules/hono/dist/middleware/timing/timing.js +177 -97
  329. package/dist/node_modules/hono/dist/middleware/trailing-slash/index.js +85 -37
  330. package/dist/node_modules/hono/dist/preset/quick.js +17 -15
  331. package/dist/node_modules/hono/dist/preset/tiny.js +14 -11
  332. package/dist/node_modules/hono/dist/request/constants.js +4 -5
  333. package/dist/node_modules/hono/dist/request.js +328 -316
  334. package/dist/node_modules/hono/dist/router/linear-router/index.js +1 -4
  335. package/dist/node_modules/hono/dist/router/linear-router/router.js +93 -120
  336. package/dist/node_modules/hono/dist/router/pattern-router/index.js +1 -4
  337. package/dist/node_modules/hono/dist/router/pattern-router/router.js +39 -40
  338. package/dist/node_modules/hono/dist/router/reg-exp-router/index.js +1 -7
  339. package/dist/node_modules/hono/dist/router/reg-exp-router/matcher.js +17 -23
  340. package/dist/node_modules/hono/dist/router/reg-exp-router/node.js +87 -110
  341. package/dist/node_modules/hono/dist/router/reg-exp-router/prepared-router.js +89 -137
  342. package/dist/node_modules/hono/dist/router/reg-exp-router/router.js +92 -129
  343. package/dist/node_modules/hono/dist/router/reg-exp-router/trie.js +69 -64
  344. package/dist/node_modules/hono/dist/router/smart-router/index.js +1 -4
  345. package/dist/node_modules/hono/dist/router/smart-router/router.js +46 -55
  346. package/dist/node_modules/hono/dist/router/trie-router/index.js +1 -4
  347. package/dist/node_modules/hono/dist/router/trie-router/node.js +131 -162
  348. package/dist/node_modules/hono/dist/router/trie-router/router.js +11 -14
  349. package/dist/node_modules/hono/dist/router/utils.js +4 -5
  350. package/dist/node_modules/hono/dist/router.js +35 -14
  351. package/dist/node_modules/hono/dist/types/adapter/aws-lambda/conninfo.d.ts +4 -1
  352. package/dist/node_modules/hono/dist/types/adapter/aws-lambda/handler.d.ts +150 -104
  353. package/dist/node_modules/hono/dist/types/adapter/aws-lambda/index.d.ts +4 -8
  354. package/dist/node_modules/hono/dist/types/adapter/aws-lambda/types.d.ts +152 -122
  355. package/dist/node_modules/hono/dist/types/adapter/bun/conninfo.d.ts +4 -1
  356. package/dist/node_modules/hono/dist/types/adapter/bun/index.d.ts +6 -10
  357. package/dist/node_modules/hono/dist/types/adapter/bun/serve-static.d.ts +7 -2
  358. package/dist/node_modules/hono/dist/types/adapter/bun/server.d.ts +4 -5
  359. package/dist/node_modules/hono/dist/types/adapter/bun/ssg.d.ts +5 -1
  360. package/dist/node_modules/hono/dist/types/adapter/bun/websocket.d.ts +31 -16
  361. package/dist/node_modules/hono/dist/types/adapter/cloudflare-pages/conninfo.d.ts +4 -1
  362. package/dist/node_modules/hono/dist/types/adapter/cloudflare-pages/handler.d.ts +29 -17
  363. package/dist/node_modules/hono/dist/types/adapter/cloudflare-pages/index.d.ts +3 -7
  364. package/dist/node_modules/hono/dist/types/adapter/cloudflare-workers/conninfo.d.ts +6 -1
  365. package/dist/node_modules/hono/dist/types/adapter/cloudflare-workers/index.d.ts +4 -7
  366. package/dist/node_modules/hono/dist/types/adapter/cloudflare-workers/serve-static-module.d.ts +5 -2
  367. package/dist/node_modules/hono/dist/types/adapter/cloudflare-workers/serve-static.d.ts +10 -5
  368. package/dist/node_modules/hono/dist/types/adapter/cloudflare-workers/utils.d.ts +10 -2
  369. package/dist/node_modules/hono/dist/types/adapter/cloudflare-workers/websocket.d.ts +6 -1
  370. package/dist/node_modules/hono/dist/types/adapter/deno/conninfo.d.ts +4 -1
  371. package/dist/node_modules/hono/dist/types/adapter/deno/deno.d.ts +1 -0
  372. package/dist/node_modules/hono/dist/types/adapter/deno/index.d.ts +5 -8
  373. package/dist/node_modules/hono/dist/types/adapter/deno/serve-static.d.ts +7 -2
  374. package/dist/node_modules/hono/dist/types/adapter/deno/ssg.d.ts +5 -1
  375. package/dist/node_modules/hono/dist/types/adapter/deno/websocket.d.ts +6 -1
  376. package/dist/node_modules/hono/dist/types/adapter/lambda-edge/conninfo.d.ts +6 -1
  377. package/dist/node_modules/hono/dist/types/adapter/lambda-edge/handler.d.ts +83 -57
  378. package/dist/node_modules/hono/dist/types/adapter/lambda-edge/index.d.ts +3 -7
  379. package/dist/node_modules/hono/dist/types/adapter/netlify/conninfo.d.ts +4 -1
  380. package/dist/node_modules/hono/dist/types/adapter/netlify/handler.d.ts +6 -1
  381. package/dist/node_modules/hono/dist/types/adapter/netlify/index.d.ts +3 -5
  382. package/dist/node_modules/hono/dist/types/adapter/netlify/mod.d.ts +3 -2
  383. package/dist/node_modules/hono/dist/types/adapter/service-worker/handler.d.ts +9 -7
  384. package/dist/node_modules/hono/dist/types/adapter/service-worker/index.d.ts +7 -9
  385. package/dist/node_modules/hono/dist/types/adapter/service-worker/types.d.ts +12 -7
  386. package/dist/node_modules/hono/dist/types/adapter/vercel/conninfo.d.ts +6 -1
  387. package/dist/node_modules/hono/dist/types/adapter/vercel/handler.d.ts +6 -1
  388. package/dist/node_modules/hono/dist/types/adapter/vercel/index.d.ts +3 -6
  389. package/dist/node_modules/hono/dist/types/client/client.d.ts +5 -3
  390. package/dist/node_modules/hono/dist/types/client/fetch-result-please.d.ts +21 -19
  391. package/dist/node_modules/hono/dist/types/client/index.d.ts +5 -7
  392. package/dist/node_modules/hono/dist/types/client/types.d.ts +134 -159
  393. package/dist/node_modules/hono/dist/types/client/utils.d.ts +6 -4
  394. package/dist/node_modules/hono/dist/types/compose.d.ts +4 -2
  395. package/dist/node_modules/hono/dist/types/context.d.ts +335 -335
  396. package/dist/node_modules/hono/dist/types/helper/accepts/accepts.d.ts +11 -9
  397. package/dist/node_modules/hono/dist/types/helper/accepts/index.d.ts +2 -5
  398. package/dist/node_modules/hono/dist/types/helper/adapter/index.d.ts +4 -6
  399. package/dist/node_modules/hono/dist/types/helper/conninfo/index.d.ts +2 -5
  400. package/dist/node_modules/hono/dist/types/helper/conninfo/types.d.ts +25 -23
  401. package/dist/node_modules/hono/dist/types/helper/cookie/index.d.ts +10 -12
  402. package/dist/node_modules/hono/dist/types/helper/css/common.d.ts +11 -9
  403. package/dist/node_modules/hono/dist/types/helper/css/index.d.ts +26 -28
  404. package/dist/node_modules/hono/dist/types/helper/dev/index.d.ts +10 -12
  405. package/dist/node_modules/hono/dist/types/helper/factory/index.d.ts +26 -73
  406. package/dist/node_modules/hono/dist/types/helper/html/index.d.ts +4 -7
  407. package/dist/node_modules/hono/dist/types/helper/proxy/index.d.ts +20 -22
  408. package/dist/node_modules/hono/dist/types/helper/route/index.d.ts +6 -4
  409. package/dist/node_modules/hono/dist/types/helper/ssg/index.d.ts +4 -7
  410. package/dist/node_modules/hono/dist/types/helper/ssg/middleware.d.ts +8 -6
  411. package/dist/node_modules/hono/dist/types/helper/ssg/plugins.d.ts +3 -1
  412. package/dist/node_modules/hono/dist/types/helper/ssg/ssg.d.ts +38 -36
  413. package/dist/node_modules/hono/dist/types/helper/ssg/utils.d.ts +5 -3
  414. package/dist/node_modules/hono/dist/types/helper/streaming/index.d.ts +4 -8
  415. package/dist/node_modules/hono/dist/types/helper/streaming/sse.d.ts +10 -8
  416. package/dist/node_modules/hono/dist/types/helper/streaming/stream.d.ts +4 -2
  417. package/dist/node_modules/hono/dist/types/helper/streaming/text.d.ts +4 -2
  418. package/dist/node_modules/hono/dist/types/helper/streaming/utils.d.ts +2 -0
  419. package/dist/node_modules/hono/dist/types/helper/testing/index.d.ts +7 -9
  420. package/dist/node_modules/hono/dist/types/helper/websocket/index.d.ts +30 -33
  421. package/dist/node_modules/hono/dist/types/hono-base.d.ts +210 -210
  422. package/dist/node_modules/hono/dist/types/hono.d.ts +11 -10
  423. package/dist/node_modules/hono/dist/types/http-exception.d.ts +20 -22
  424. package/dist/node_modules/hono/dist/types/index.d.ts +6 -37
  425. package/dist/node_modules/hono/dist/types/jsx/base.d.ts +40 -35
  426. package/dist/node_modules/hono/dist/types/jsx/children.d.ts +8 -6
  427. package/dist/node_modules/hono/dist/types/jsx/components.d.ts +8 -5
  428. package/dist/node_modules/hono/dist/types/jsx/constants.d.ts +2 -0
  429. package/dist/node_modules/hono/dist/types/jsx/context.d.ts +9 -6
  430. package/dist/node_modules/hono/dist/types/jsx/dom/client.d.ts +9 -10
  431. package/dist/node_modules/hono/dist/types/jsx/dom/components.d.ts +9 -6
  432. package/dist/node_modules/hono/dist/types/jsx/dom/context.d.ts +3 -1
  433. package/dist/node_modules/hono/dist/types/jsx/dom/css.d.ts +27 -30
  434. package/dist/node_modules/hono/dist/types/jsx/dom/hooks/index.d.ts +11 -12
  435. package/dist/node_modules/hono/dist/types/jsx/dom/index.d.ts +79 -83
  436. package/dist/node_modules/hono/dist/types/jsx/dom/intrinsic-element/components.d.ts +9 -5
  437. package/dist/node_modules/hono/dist/types/jsx/dom/jsx-dev-runtime.d.ts +4 -6
  438. package/dist/node_modules/hono/dist/types/jsx/dom/jsx-runtime.d.ts +3 -7
  439. package/dist/node_modules/hono/dist/types/jsx/dom/render.d.ts +32 -50
  440. package/dist/node_modules/hono/dist/types/jsx/dom/server.d.ts +87 -85
  441. package/dist/node_modules/hono/dist/types/jsx/dom/utils.d.ts +2 -0
  442. package/dist/node_modules/hono/dist/types/jsx/hooks/index.d.ts +16 -16
  443. package/dist/node_modules/hono/dist/types/jsx/index.d.ts +71 -73
  444. package/dist/node_modules/hono/dist/types/jsx/intrinsic-element/common.d.ts +3 -1
  445. package/dist/node_modules/hono/dist/types/jsx/intrinsic-element/components.d.ts +7 -4
  446. package/dist/node_modules/hono/dist/types/jsx/intrinsic-elements.d.ts +708 -708
  447. package/dist/node_modules/hono/dist/types/jsx/jsx-dev-runtime.d.ts +4 -7
  448. package/dist/node_modules/hono/dist/types/jsx/jsx-runtime.d.ts +7 -10
  449. package/dist/node_modules/hono/dist/types/jsx/streaming.d.ts +9 -10
  450. package/dist/node_modules/hono/dist/types/jsx/types.d.ts +12 -13
  451. package/dist/node_modules/hono/dist/types/jsx/utils.d.ts +2 -0
  452. package/dist/node_modules/hono/dist/types/middleware/basic-auth/index.d.ts +17 -19
  453. package/dist/node_modules/hono/dist/types/middleware/bearer-auth/index.d.ts +46 -48
  454. package/dist/node_modules/hono/dist/types/middleware/body-limit/index.d.ts +6 -8
  455. package/dist/node_modules/hono/dist/types/middleware/cache/index.d.ts +13 -15
  456. package/dist/node_modules/hono/dist/types/middleware/combine/index.d.ts +7 -7
  457. package/dist/node_modules/hono/dist/types/middleware/compress/index.d.ts +9 -10
  458. package/dist/node_modules/hono/dist/types/middleware/context-storage/index.d.ts +4 -6
  459. package/dist/node_modules/hono/dist/types/middleware/cors/index.d.ts +10 -12
  460. package/dist/node_modules/hono/dist/types/middleware/csrf/index.d.ts +6 -8
  461. package/dist/node_modules/hono/dist/types/middleware/etag/digest.d.ts +2 -0
  462. package/dist/node_modules/hono/dist/types/middleware/etag/index.d.ts +6 -8
  463. package/dist/node_modules/hono/dist/types/middleware/ip-restriction/index.d.ts +11 -12
  464. package/dist/node_modules/hono/dist/types/middleware/jsx-renderer/index.d.ts +11 -11
  465. package/dist/node_modules/hono/dist/types/middleware/jwk/index.d.ts +2 -1
  466. package/dist/node_modules/hono/dist/types/middleware/jwk/jwk.d.ts +20 -23
  467. package/dist/node_modules/hono/dist/types/middleware/jwt/index.d.ts +7 -6
  468. package/dist/node_modules/hono/dist/types/middleware/jwt/jwt.d.ts +28 -30
  469. package/dist/node_modules/hono/dist/types/middleware/language/index.d.ts +6 -5
  470. package/dist/node_modules/hono/dist/types/middleware/language/language.d.ts +42 -44
  471. package/dist/node_modules/hono/dist/types/middleware/logger/index.d.ts +3 -5
  472. package/dist/node_modules/hono/dist/types/middleware/method-not-allowed/index.d.ts +7 -9
  473. package/dist/node_modules/hono/dist/types/middleware/method-override/index.d.ts +14 -16
  474. package/dist/node_modules/hono/dist/types/middleware/mount/index.d.ts +46 -0
  475. package/dist/node_modules/hono/dist/types/middleware/powered-by/index.d.ts +8 -10
  476. package/dist/node_modules/hono/dist/types/middleware/pretty-json/index.d.ts +18 -20
  477. package/dist/node_modules/hono/dist/types/middleware/request-id/index.d.ts +6 -5
  478. package/dist/node_modules/hono/dist/types/middleware/request-id/request-id.d.ts +9 -11
  479. package/dist/node_modules/hono/dist/types/middleware/secure-headers/index.d.ts +6 -6
  480. package/dist/node_modules/hono/dist/types/middleware/secure-headers/permissions-policy.d.ts +2 -0
  481. package/dist/node_modules/hono/dist/types/middleware/secure-headers/secure-headers.d.ts +55 -57
  482. package/dist/node_modules/hono/dist/types/middleware/serve-static/index.d.ts +24 -24
  483. package/dist/node_modules/hono/dist/types/middleware/serve-static/path.d.ts +2 -0
  484. package/dist/node_modules/hono/dist/types/middleware/timeout/index.d.ts +5 -7
  485. package/dist/node_modules/hono/dist/types/middleware/timing/index.d.ts +6 -5
  486. package/dist/node_modules/hono/dist/types/middleware/timing/timing.d.ts +17 -20
  487. package/dist/node_modules/hono/dist/types/middleware/trailing-slash/index.d.ts +35 -37
  488. package/dist/node_modules/hono/dist/types/preset/quick.d.ts +6 -9
  489. package/dist/node_modules/hono/dist/types/preset/tiny.d.ts +6 -9
  490. package/dist/node_modules/hono/dist/types/request/constants.d.ts +2 -0
  491. package/dist/node_modules/hono/dist/types/request.d.ts +288 -286
  492. package/dist/node_modules/hono/dist/types/router/linear-router/index.d.ts +2 -5
  493. package/dist/node_modules/hono/dist/types/router/linear-router/router.d.ts +7 -5
  494. package/dist/node_modules/hono/dist/types/router/pattern-router/index.d.ts +2 -5
  495. package/dist/node_modules/hono/dist/types/router/pattern-router/router.d.ts +7 -5
  496. package/dist/node_modules/hono/dist/types/router/reg-exp-router/index.d.ts +3 -6
  497. package/dist/node_modules/hono/dist/types/router/reg-exp-router/matcher.d.ts +3 -1
  498. package/dist/node_modules/hono/dist/types/router/reg-exp-router/node.d.ts +6 -4
  499. package/dist/node_modules/hono/dist/types/router/reg-exp-router/prepared-router.d.ts +11 -10
  500. package/dist/node_modules/hono/dist/types/router/reg-exp-router/router.d.ts +10 -9
  501. package/dist/node_modules/hono/dist/types/router/reg-exp-router/trie.d.ts +7 -5
  502. package/dist/node_modules/hono/dist/types/router/smart-router/index.d.ts +2 -5
  503. package/dist/node_modules/hono/dist/types/router/smart-router/router.d.ts +11 -9
  504. package/dist/node_modules/hono/dist/types/router/trie-router/index.d.ts +2 -5
  505. package/dist/node_modules/hono/dist/types/router/trie-router/node.d.ts +6 -4
  506. package/dist/node_modules/hono/dist/types/router/trie-router/router.d.ts +7 -5
  507. package/dist/node_modules/hono/dist/types/router/utils.d.ts +2 -0
  508. package/dist/node_modules/hono/dist/types/router.d.ts +23 -22
  509. package/dist/node_modules/hono/dist/types/types.d.ts +146 -505
  510. package/dist/node_modules/hono/dist/types/utils/accept.d.ts +5 -3
  511. package/dist/node_modules/hono/dist/types/utils/basic-auth.d.ts +4 -2
  512. package/dist/node_modules/hono/dist/types/utils/body.d.ts +46 -50
  513. package/dist/node_modules/hono/dist/types/utils/buffer.d.ts +7 -5
  514. package/dist/node_modules/hono/dist/types/utils/color.d.ts +2 -0
  515. package/dist/node_modules/hono/dist/types/utils/compress.d.ts +2 -0
  516. package/dist/node_modules/hono/dist/types/utils/concurrent.d.ts +6 -4
  517. package/dist/node_modules/hono/dist/types/utils/constants.d.ts +2 -0
  518. package/dist/node_modules/hono/dist/types/utils/cookie.d.ts +20 -18
  519. package/dist/node_modules/hono/dist/types/utils/crypto.d.ts +5 -7
  520. package/dist/node_modules/hono/dist/types/utils/encode.d.ts +2 -0
  521. package/dist/node_modules/hono/dist/types/utils/filepath.d.ts +5 -3
  522. package/dist/node_modules/hono/dist/types/utils/handler.d.ts +2 -0
  523. package/dist/node_modules/hono/dist/types/utils/headers.d.ts +2 -0
  524. package/dist/node_modules/hono/dist/types/utils/html.d.ts +11 -9
  525. package/dist/node_modules/hono/dist/types/utils/http-status.d.ts +2 -0
  526. package/dist/node_modules/hono/dist/types/utils/ipaddr.d.ts +4 -6
  527. package/dist/node_modules/hono/dist/types/utils/jwt/index.d.ts +18 -12
  528. package/dist/node_modules/hono/dist/types/utils/jwt/jwa.d.ts +15 -13
  529. package/dist/node_modules/hono/dist/types/utils/jwt/jws.d.ts +4 -7
  530. package/dist/node_modules/hono/dist/types/utils/jwt/jwt.d.ts +26 -29
  531. package/dist/node_modules/hono/dist/types/utils/jwt/types.d.ts +48 -45
  532. package/dist/node_modules/hono/dist/types/utils/jwt/utf8.d.ts +2 -0
  533. package/dist/node_modules/hono/dist/types/utils/mime.d.ts +60 -57
  534. package/dist/node_modules/hono/dist/types/utils/stream.d.ts +27 -25
  535. package/dist/node_modules/hono/dist/types/utils/types.d.ts +15 -27
  536. package/dist/node_modules/hono/dist/types/utils/url.d.ts +2 -0
  537. package/dist/node_modules/hono/dist/types/validator/index.d.ts +3 -7
  538. package/dist/node_modules/hono/dist/types/validator/utils.d.ts +6 -8
  539. package/dist/node_modules/hono/dist/types/validator/validator.d.ts +11 -9
  540. package/dist/node_modules/hono/dist/types.js +4 -6
  541. package/dist/node_modules/hono/dist/utils/accept.js +185 -215
  542. package/dist/node_modules/hono/dist/utils/basic-auth.js +18 -21
  543. package/dist/node_modules/hono/dist/utils/body.js +87 -92
  544. package/dist/node_modules/hono/dist/utils/buffer.js +44 -71
  545. package/dist/node_modules/hono/dist/utils/color.js +33 -21
  546. package/dist/node_modules/hono/dist/utils/compress.js +11 -5
  547. package/dist/node_modules/hono/dist/utils/concurrent.js +29 -38
  548. package/dist/node_modules/hono/dist/utils/constants.js +7 -5
  549. package/dist/node_modules/hono/dist/utils/cookie.js +114 -163
  550. package/dist/node_modules/hono/dist/utils/crypto.js +30 -40
  551. package/dist/node_modules/hono/dist/utils/encode.js +30 -26
  552. package/dist/node_modules/hono/dist/utils/filepath.js +23 -33
  553. package/dist/node_modules/hono/dist/utils/handler.js +10 -11
  554. package/dist/node_modules/hono/dist/utils/headers.js +1 -0
  555. package/dist/node_modules/hono/dist/utils/html.js +97 -117
  556. package/dist/node_modules/hono/dist/utils/http-status.js +1 -0
  557. package/dist/node_modules/hono/dist/utils/ipaddr.js +227 -279
  558. package/dist/node_modules/hono/dist/utils/jwt/index.js +12 -4
  559. package/dist/node_modules/hono/dist/utils/jwt/jwa.js +24 -20
  560. package/dist/node_modules/hono/dist/utils/jwt/jws.js +115 -174
  561. package/dist/node_modules/hono/dist/utils/jwt/jwt.js +120 -197
  562. package/dist/node_modules/hono/dist/utils/jwt/types.js +79 -95
  563. package/dist/node_modules/hono/dist/utils/jwt/utf8.js +9 -7
  564. package/dist/node_modules/hono/dist/utils/mime.js +74 -79
  565. package/dist/node_modules/hono/dist/utils/stream.js +86 -88
  566. package/dist/node_modules/hono/dist/utils/types.js +1 -0
  567. package/dist/node_modules/hono/dist/utils/url.js +187 -215
  568. package/dist/node_modules/hono/dist/validator/index.js +1 -4
  569. package/dist/node_modules/hono/dist/validator/utils.js +1 -0
  570. package/dist/node_modules/hono/dist/validator/validator.js +61 -83
  571. package/dist/node_modules/hono/package.json +36 -28
  572. package/dist/node_modules/light-my-request/package.json +1 -1
  573. package/dist/node_modules/openapi-types/package.json +1 -1
  574. package/package.json +2 -2
@@ -1,66 +1,99 @@
1
- // src/middleware/basic-auth/index.ts
2
1
  import { HTTPException } from "../../http-exception.js";
3
- import { auth } from "../../utils/basic-auth.js";
4
2
  import { timingSafeEqual } from "../../utils/buffer.js";
5
- var basicAuth = (options, ...users) => {
6
- const usernamePasswordInOptions = "username" in options && "password" in options;
7
- const verifyUserInOptions = "verifyUser" in options;
8
- if (!(usernamePasswordInOptions || verifyUserInOptions)) {
9
- throw new Error(
10
- 'basic auth middleware requires options for "username and password" or "verifyUser"'
11
- );
12
- }
13
- if (!options.realm) {
14
- options.realm = "Secure Area";
15
- }
16
- if (!options.invalidUserMessage) {
17
- options.invalidUserMessage = "Unauthorized";
18
- }
19
- if (usernamePasswordInOptions) {
20
- users.unshift({ username: options.username, password: options.password });
21
- }
22
- return async function basicAuth2(ctx, next) {
23
- const requestUser = auth(ctx.req.raw);
24
- if (requestUser) {
25
- if (verifyUserInOptions) {
26
- if (await options.verifyUser(requestUser.username, requestUser.password, ctx)) {
27
- if (options.onAuthSuccess) {
28
- await options.onAuthSuccess(ctx, requestUser.username);
29
- }
30
- await next();
31
- return;
32
- }
33
- } else {
34
- for (const user of users) {
35
- const [usernameEqual, passwordEqual] = await Promise.all([
36
- timingSafeEqual(user.username, requestUser.username, options.hashFunction),
37
- timingSafeEqual(user.password, requestUser.password, options.hashFunction)
38
- ]);
39
- if (usernameEqual && passwordEqual) {
40
- if (options.onAuthSuccess) {
41
- await options.onAuthSuccess(ctx, requestUser.username);
42
- }
43
- await next();
44
- return;
45
- }
46
- }
47
- }
48
- }
49
- const status = 401;
50
- const headers = {
51
- "WWW-Authenticate": 'Basic realm="' + options.realm?.replace(/"/g, '\\"') + '"'
52
- };
53
- const responseMessage = typeof options.invalidUserMessage === "function" ? await options.invalidUserMessage(ctx) : options.invalidUserMessage;
54
- const res = typeof responseMessage === "string" ? new Response(responseMessage, { status, headers }) : new Response(JSON.stringify(responseMessage), {
55
- status,
56
- headers: {
57
- ...headers,
58
- "content-type": "application/json"
59
- }
60
- });
61
- throw new HTTPException(status, { res });
62
- };
63
- };
64
- export {
65
- basicAuth
3
+ import { auth } from "../../utils/basic-auth.js";
4
+ //#region src/middleware/basic-auth/index.ts
5
+ /**
6
+ * Basic Auth Middleware for Hono.
7
+ *
8
+ * @see {@link https://hono.dev/docs/middleware/builtin/basic-auth}
9
+ *
10
+ * @param {BasicAuthOptions} options - The options for the basic authentication middleware.
11
+ * @param {string} options.username - The username for authentication.
12
+ * @param {string} options.password - The password for authentication.
13
+ * @param {string} [options.realm="Secure Area"] - The realm attribute for the WWW-Authenticate header.
14
+ * @param {Function} [options.hashFunction] - The hash function used for secure comparison.
15
+ * @param {Function} [options.verifyUser] - The function to verify user credentials.
16
+ * @param {string | object | MessageFunction} [options.invalidUserMessage="Unauthorized"] - The invalid user message.
17
+ * @param {Function} [options.onAuthSuccess] - Callback function called on successful authentication.
18
+ * @returns {MiddlewareHandler} The middleware handler function.
19
+ * @throws {HTTPException} If neither "username and password" nor "verifyUser" options are provided.
20
+ *
21
+ * @example
22
+ * ```ts
23
+ * const app = new Hono()
24
+ *
25
+ * app.use(
26
+ * '/auth/*',
27
+ * basicAuth({
28
+ * username: 'hono',
29
+ * password: 'ahotproject',
30
+ * })
31
+ * )
32
+ *
33
+ * app.get('/auth/page', (c) => {
34
+ * return c.text('You are authorized')
35
+ * })
36
+ * ```
37
+ *
38
+ * @example
39
+ * ```ts
40
+ * // With onAuthSuccess callback
41
+ * app.use(
42
+ * '/auth/*',
43
+ * basicAuth({
44
+ * username: 'hono',
45
+ * password: 'ahotproject',
46
+ * onAuthSuccess: (c, username) => {
47
+ * c.set('user', { name: username, role: 'admin' })
48
+ * console.log(`User ${username} authenticated`)
49
+ * },
50
+ * })
51
+ * )
52
+ * ```
53
+ */
54
+ const basicAuth = (options, ...users) => {
55
+ const usernamePasswordInOptions = "username" in options && "password" in options;
56
+ const verifyUserInOptions = "verifyUser" in options;
57
+ if (!(usernamePasswordInOptions || verifyUserInOptions)) throw new Error("basic auth middleware requires options for \"username and password\" or \"verifyUser\"");
58
+ if (!options.realm) options.realm = "Secure Area";
59
+ if (!options.invalidUserMessage) options.invalidUserMessage = "Unauthorized";
60
+ if (usernamePasswordInOptions) users.unshift({
61
+ username: options.username,
62
+ password: options.password
63
+ });
64
+ return async function basicAuth(ctx, next) {
65
+ const requestUser = auth(ctx.req.raw);
66
+ if (requestUser) {
67
+ if (verifyUserInOptions) {
68
+ if (await options.verifyUser(requestUser.username, requestUser.password, ctx)) {
69
+ if (options.onAuthSuccess) await options.onAuthSuccess(ctx, requestUser.username);
70
+ await next();
71
+ return;
72
+ }
73
+ } else for (const user of users) {
74
+ const [usernameEqual, passwordEqual] = await Promise.all([timingSafeEqual(user.username, requestUser.username, options.hashFunction), timingSafeEqual(user.password, requestUser.password, options.hashFunction)]);
75
+ if (usernameEqual && passwordEqual) {
76
+ if (options.onAuthSuccess) await options.onAuthSuccess(ctx, requestUser.username);
77
+ await next();
78
+ return;
79
+ }
80
+ }
81
+ }
82
+ const status = 401;
83
+ const headers = { "WWW-Authenticate": "Basic realm=\"" + options.realm?.replace(/"/g, "\\\"") + "\"" };
84
+ const responseMessage = typeof options.invalidUserMessage === "function" ? await options.invalidUserMessage(ctx) : options.invalidUserMessage;
85
+ const res = typeof responseMessage === "string" ? new Response(responseMessage, {
86
+ status,
87
+ headers
88
+ }) : new Response(JSON.stringify(responseMessage), {
89
+ status,
90
+ headers: {
91
+ ...headers,
92
+ "content-type": "application/json"
93
+ }
94
+ });
95
+ throw new HTTPException(status, { res });
96
+ };
66
97
  };
98
+ //#endregion
99
+ export { basicAuth };
@@ -1,92 +1,96 @@
1
- // src/middleware/bearer-auth/index.ts
2
1
  import { HTTPException } from "../../http-exception.js";
3
2
  import { timingSafeEqual } from "../../utils/buffer.js";
4
- var TOKEN_STRINGS = "[A-Za-z0-9._~+/-]+=*";
5
- var PREFIX = "Bearer";
6
- var HEADER = "Authorization";
7
- var bearerAuth = (options) => {
8
- if (!("token" in options || "verifyToken" in options)) {
9
- throw new Error('bearer auth middleware requires options for "token" or "verifyToken"');
10
- }
11
- if (!options.realm) {
12
- options.realm = "";
13
- }
14
- if (options.prefix === void 0) {
15
- options.prefix = PREFIX;
16
- }
17
- const realm = options.realm?.replace(/"/g, '\\"');
18
- const prefix = options.prefix;
19
- const tokenRegexp = new RegExp(`^${TOKEN_STRINGS}$`);
20
- const wwwAuthenticatePrefix = prefix === "" ? "" : `${prefix} `;
21
- const throwHTTPException = async (c, status, wwwAuthenticateHeader, messageOption) => {
22
- const wwwAuthenticateHeaderValue = typeof wwwAuthenticateHeader === "function" ? await wwwAuthenticateHeader(c) : wwwAuthenticateHeader;
23
- const headers = {
24
- "WWW-Authenticate": typeof wwwAuthenticateHeaderValue === "string" ? wwwAuthenticateHeaderValue : `${wwwAuthenticatePrefix}${Object.entries(wwwAuthenticateHeaderValue).map(([key, value]) => `${key}="${value}"`).join(",")}`
25
- };
26
- const responseMessage = typeof messageOption === "function" ? await messageOption(c) : messageOption;
27
- const res = typeof responseMessage === "string" ? new Response(responseMessage, { status, headers }) : new Response(JSON.stringify(responseMessage), {
28
- status,
29
- headers: {
30
- ...headers,
31
- "content-type": "application/json"
32
- }
33
- });
34
- throw new HTTPException(status, { res });
35
- };
36
- return async function bearerAuth2(c, next) {
37
- const headerToken = c.req.header(options.headerName || HEADER);
38
- if (!headerToken) {
39
- await throwHTTPException(
40
- c,
41
- 401,
42
- options.noAuthenticationHeader?.wwwAuthenticateHeader || `${wwwAuthenticatePrefix}realm="${realm}"`,
43
- options.noAuthenticationHeader?.message || options.noAuthenticationHeaderMessage || "Unauthorized"
44
- );
45
- } else {
46
- let tokenValue;
47
- if (prefix === "") {
48
- tokenValue = headerToken;
49
- } else {
50
- const headerLower = headerToken.toLowerCase();
51
- const prefixLower = prefix.toLowerCase();
52
- if (headerLower.startsWith(prefixLower) && headerToken[prefix.length] === " ") {
53
- tokenValue = headerToken.slice(prefix.length).trimStart();
54
- }
55
- }
56
- if (!tokenValue || !tokenRegexp.test(tokenValue)) {
57
- await throwHTTPException(
58
- c,
59
- 400,
60
- options.invalidAuthenticationHeader?.wwwAuthenticateHeader || `${wwwAuthenticatePrefix}error="invalid_request"`,
61
- options.invalidAuthenticationHeader?.message || options.invalidAuthenticationHeaderMessage || "Bad Request"
62
- );
63
- } else {
64
- let equal = false;
65
- if ("verifyToken" in options) {
66
- equal = await options.verifyToken(tokenValue, c);
67
- } else if (typeof options.token === "string") {
68
- equal = await timingSafeEqual(options.token, tokenValue, options.hashFunction);
69
- } else if (Array.isArray(options.token) && options.token.length > 0) {
70
- for (const token of options.token) {
71
- if (await timingSafeEqual(token, tokenValue, options.hashFunction)) {
72
- equal = true;
73
- break;
74
- }
75
- }
76
- }
77
- if (!equal) {
78
- await throwHTTPException(
79
- c,
80
- 401,
81
- options.invalidToken?.wwwAuthenticateHeader || `${wwwAuthenticatePrefix}error="invalid_token"`,
82
- options.invalidToken?.message || options.invalidTokenMessage || "Unauthorized"
83
- );
84
- }
85
- }
86
- }
87
- await next();
88
- };
89
- };
90
- export {
91
- bearerAuth
3
+ //#region src/middleware/bearer-auth/index.ts
4
+ const TOKEN_STRINGS = "[A-Za-z0-9._~+/-]+=*";
5
+ const PREFIX = "Bearer";
6
+ const HEADER = "Authorization";
7
+ /**
8
+ * Bearer Auth Middleware for Hono.
9
+ *
10
+ * @see {@link https://hono.dev/docs/middleware/builtin/bearer-auth}
11
+ *
12
+ * @template E - The environment type.
13
+ * @param {BearerAuthOptions} options - The options for the bearer authentication middleware.
14
+ * @param {string | string[]} [options.token] - The string or array of strings to validate the incoming bearer token against.
15
+ * @param {Function} [options.verifyToken] - The function to verify the token.
16
+ * @param {string} [options.realm=""] - The domain name of the realm, as part of the returned WWW-Authenticate challenge header.
17
+ * @param {string} [options.prefix="Bearer"] - The prefix (or known as `schema`) for the Authorization header value. If set to the empty string, no prefix is expected.
18
+ * @param {string} [options.headerName=Authorization] - The header name.
19
+ * @param {Function} [options.hashFunction] - A function to handle hashing for safe comparison of authentication tokens.
20
+ * @param {string | object | MessageFunction} [options.noAuthenticationHeader.message="Unauthorized"] - The no authentication header message.
21
+ * @param {string | object | MessageFunction} [options.noAuthenticationHeader.wwwAuthenticateHeader="Bearer realm=\"\""] - The response header value for the WWW-Authenticate header when no authentication header is provided.
22
+ * @param {string | object | MessageFunction} [options.invalidAuthenticationHeader.message="Bad Request"] - The invalid authentication header message.
23
+ * @param {string | object | MessageFunction} [options.invalidAuthenticationHeader.wwwAuthenticateHeader="Bearer error=\"invalid_request\""] - The response header value for the WWW-Authenticate header when authentication header is invalid.
24
+ * @param {string | object | MessageFunction} [options.invalidToken.message="Unauthorized"] - The invalid token message.
25
+ * @param {string | object | MessageFunction} [options.invalidToken.wwwAuthenticateHeader="Bearer error=\"invalid_token\""] - The response header value for the WWW-Authenticate header when token is invalid.
26
+ * @returns {MiddlewareHandler<E>} The middleware handler function.
27
+ * @throws {Error} If neither "token" nor "verifyToken" options are provided.
28
+ * @throws {HTTPException} If authentication fails, with 401 status code for missing or invalid token, or 400 status code for invalid request.
29
+ *
30
+ * @example
31
+ * ```ts
32
+ * const app = new Hono()
33
+ *
34
+ * const token = 'honoishot'
35
+ *
36
+ * app.use('/api/*', bearerAuth({ token }))
37
+ *
38
+ * app.get('/api/page', (c) => {
39
+ * return c.json({ message: 'You are authorized' })
40
+ * })
41
+ * ```
42
+ */
43
+ const bearerAuth = (options) => {
44
+ if (!("token" in options || "verifyToken" in options)) throw new Error("bearer auth middleware requires options for \"token\" or \"verifyToken\"");
45
+ if (!options.realm) options.realm = "";
46
+ if (options.prefix === void 0) options.prefix = PREFIX;
47
+ const realm = options.realm?.replace(/"/g, "\\\"");
48
+ const prefix = options.prefix;
49
+ const tokenRegexp = new RegExp(`^${TOKEN_STRINGS}$`);
50
+ const wwwAuthenticatePrefix = prefix === "" ? "" : `${prefix} `;
51
+ const throwHTTPException = async (c, status, wwwAuthenticateHeader, messageOption) => {
52
+ const wwwAuthenticateHeaderValue = typeof wwwAuthenticateHeader === "function" ? await wwwAuthenticateHeader(c) : wwwAuthenticateHeader;
53
+ const headers = { "WWW-Authenticate": typeof wwwAuthenticateHeaderValue === "string" ? wwwAuthenticateHeaderValue : `${wwwAuthenticatePrefix}${Object.entries(wwwAuthenticateHeaderValue).map(([key, value]) => `${key}="${value}"`).join(",")}` };
54
+ const responseMessage = typeof messageOption === "function" ? await messageOption(c) : messageOption;
55
+ const res = typeof responseMessage === "string" ? new Response(responseMessage, {
56
+ status,
57
+ headers
58
+ }) : new Response(JSON.stringify(responseMessage), {
59
+ status,
60
+ headers: {
61
+ ...headers,
62
+ "content-type": "application/json"
63
+ }
64
+ });
65
+ throw new HTTPException(status, { res });
66
+ };
67
+ return async function bearerAuth(c, next) {
68
+ const headerToken = c.req.header(options.headerName || HEADER);
69
+ if (!headerToken) await throwHTTPException(c, 401, options.noAuthenticationHeader?.wwwAuthenticateHeader || `${wwwAuthenticatePrefix}realm="${realm}"`, options.noAuthenticationHeader?.message || options.noAuthenticationHeaderMessage || "Unauthorized");
70
+ else {
71
+ let tokenValue;
72
+ if (prefix === "") tokenValue = headerToken;
73
+ else {
74
+ const headerLower = headerToken.toLowerCase();
75
+ const prefixLower = prefix.toLowerCase();
76
+ if (headerLower.startsWith(prefixLower) && headerToken[prefix.length] === " ") tokenValue = headerToken.slice(prefix.length).trimStart();
77
+ }
78
+ if (!tokenValue || !tokenRegexp.test(tokenValue)) await throwHTTPException(c, 400, options.invalidAuthenticationHeader?.wwwAuthenticateHeader || `${wwwAuthenticatePrefix}error="invalid_request"`, options.invalidAuthenticationHeader?.message || options.invalidAuthenticationHeaderMessage || "Bad Request");
79
+ else {
80
+ let equal = false;
81
+ if ("verifyToken" in options) equal = await options.verifyToken(tokenValue, c);
82
+ else if (typeof options.token === "string") equal = await timingSafeEqual(options.token, tokenValue, options.hashFunction);
83
+ else if (Array.isArray(options.token) && options.token.length > 0) {
84
+ for (const token of options.token) if (await timingSafeEqual(token, tokenValue, options.hashFunction)) {
85
+ equal = true;
86
+ break;
87
+ }
88
+ }
89
+ if (!equal) await throwHTTPException(c, 401, options.invalidToken?.wwwAuthenticateHeader || `${wwwAuthenticatePrefix}error="invalid_token"`, options.invalidToken?.message || options.invalidTokenMessage || "Unauthorized");
90
+ }
91
+ }
92
+ await next();
93
+ };
92
94
  };
95
+ //#endregion
96
+ export { bearerAuth };
@@ -1,53 +1,68 @@
1
- // src/middleware/body-limit/index.ts
2
1
  import { HTTPException } from "../../http-exception.js";
3
- var ERROR_MESSAGE = "Payload Too Large";
4
- var bodyLimit = (options) => {
5
- const onError = options.onError || (() => {
6
- const res = new Response(ERROR_MESSAGE, {
7
- status: 413
8
- });
9
- throw new HTTPException(413, { res });
10
- });
11
- const maxSize = options.maxSize;
12
- return async function bodyLimit2(c, next) {
13
- if (!c.req.raw.body) {
14
- return next();
15
- }
16
- const hasTransferEncoding = c.req.raw.headers.has("transfer-encoding");
17
- const hasContentLength = c.req.raw.headers.has("content-length");
18
- if (hasContentLength && !hasTransferEncoding) {
19
- const contentLength = parseInt(c.req.raw.headers.get("content-length") || "0", 10);
20
- return contentLength > maxSize ? onError(c) : next();
21
- }
22
- let size = 0;
23
- const chunks = [];
24
- const rawReader = c.req.raw.body.getReader();
25
- for (; ; ) {
26
- const { done, value } = await rawReader.read();
27
- if (done) {
28
- break;
29
- }
30
- size += value.length;
31
- if (size > maxSize) {
32
- return onError(c);
33
- }
34
- chunks.push(value);
35
- }
36
- const requestInit = {
37
- body: new ReadableStream({
38
- start(controller) {
39
- for (const chunk of chunks) {
40
- controller.enqueue(chunk);
41
- }
42
- controller.close();
43
- }
44
- }),
45
- duplex: "half"
46
- };
47
- c.req.raw = new Request(c.req.raw, requestInit);
48
- return next();
49
- };
50
- };
51
- export {
52
- bodyLimit
2
+ //#region src/middleware/body-limit/index.ts
3
+ const ERROR_MESSAGE = "Payload Too Large";
4
+ /**
5
+ * Body Limit Middleware for Hono.
6
+ *
7
+ * @see {@link https://hono.dev/docs/middleware/builtin/body-limit}
8
+ *
9
+ * @param {BodyLimitOptions} options - The options for the body limit middleware.
10
+ * @param {number} options.maxSize - The maximum body size allowed.
11
+ * @param {OnError} [options.onError] - The error handler to be invoked if the specified body size is exceeded.
12
+ * @returns {MiddlewareHandler} The middleware handler function.
13
+ *
14
+ * @example
15
+ * ```ts
16
+ * const app = new Hono()
17
+ *
18
+ * app.post(
19
+ * '/upload',
20
+ * bodyLimit({
21
+ * maxSize: 50 * 1024, // 50kb
22
+ * onError: (c) => {
23
+ * return c.text('overflow :(', 413)
24
+ * },
25
+ * }),
26
+ * async (c) => {
27
+ * const body = await c.req.parseBody()
28
+ * if (body['file'] instanceof File) {
29
+ * console.log(`Got file sized: ${body['file'].size}`)
30
+ * }
31
+ * return c.text('pass :)')
32
+ * }
33
+ * )
34
+ * ```
35
+ */
36
+ const bodyLimit = (options) => {
37
+ const onError = options.onError || (() => {
38
+ const res = new Response(ERROR_MESSAGE, { status: 413 });
39
+ throw new HTTPException(413, { res });
40
+ });
41
+ const maxSize = options.maxSize;
42
+ return async function bodyLimit(c, next) {
43
+ if (!c.req.raw.body) return next();
44
+ const hasTransferEncoding = c.req.raw.headers.has("transfer-encoding");
45
+ if (c.req.raw.headers.has("content-length") && !hasTransferEncoding) return parseInt(c.req.raw.headers.get("content-length") || "0", 10) > maxSize ? onError(c) : next();
46
+ let size = 0;
47
+ const chunks = [];
48
+ const rawReader = c.req.raw.body.getReader();
49
+ for (;;) {
50
+ const { done, value } = await rawReader.read();
51
+ if (done) break;
52
+ size += value.length;
53
+ if (size > maxSize) return onError(c);
54
+ chunks.push(value);
55
+ }
56
+ const requestInit = {
57
+ body: new ReadableStream({ start(controller) {
58
+ for (const chunk of chunks) controller.enqueue(chunk);
59
+ controller.close();
60
+ } }),
61
+ duplex: "half"
62
+ };
63
+ c.req.raw = new Request(c.req.raw, requestInit);
64
+ return next();
65
+ };
53
66
  };
67
+ //#endregion
68
+ export { bodyLimit };