@nocobase/plugin-mcp-server 2.2.20 → 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,74 +1,80 @@
1
- // src/middleware/compress/index.ts
2
1
  import { parseAccept } from "../../utils/accept.js";
3
2
  import { COMPRESSIBLE_CONTENT_TYPE_REGEX } from "../../utils/compress.js";
4
- var ENCODING_TYPES = ["gzip", "deflate"];
5
- var cacheControlNoTransformRegExp = /(?:^|,)\s*?no-transform\s*?(?:,|$)/i;
6
- var selectEncoding = (header, candidates) => {
7
- if (header === void 0) {
8
- return void 0;
9
- }
10
- const accepts = parseAccept(header);
11
- const wildcardQ = accepts.find((a) => a.type === "*")?.q;
12
- let best;
13
- for (const enc of candidates) {
14
- const explicit = accepts.find((a) => a.type.toLowerCase() === enc);
15
- const q = explicit ? explicit.q : wildcardQ ?? 0;
16
- if (q === 1) {
17
- return enc;
18
- } else if (q > 0 && (!best || q > best.q)) {
19
- best = { encoding: enc, q };
20
- }
21
- }
22
- return best?.encoding;
3
+ //#region src/middleware/compress/index.ts
4
+ const ENCODING_TYPES = ["gzip", "deflate"];
5
+ const cacheControlNoTransformRegExp = /(?:^|,)\s*?no-transform\s*?(?:,|$)/i;
6
+ const selectEncoding = (header, candidates) => {
7
+ if (header === void 0) return;
8
+ const accepts = parseAccept(header);
9
+ const wildcardQ = accepts.find((a) => a.type === "*")?.q;
10
+ let best;
11
+ for (const enc of candidates) {
12
+ const explicit = accepts.find((a) => a.type.toLowerCase() === enc);
13
+ const q = explicit ? explicit.q : wildcardQ ?? 0;
14
+ if (q === 1) return enc;
15
+ else if (q > 0 && (!best || q > best.q)) best = {
16
+ encoding: enc,
17
+ q
18
+ };
19
+ }
20
+ return best?.encoding;
23
21
  };
24
- var varyAcceptEncodingRegExp = /(?:^|,)\s*accept-encoding\s*(?:,|$)/i;
25
- var compress = (options) => {
26
- const threshold = options?.threshold ?? 1024;
27
- const candidates = options?.encoding ? [options.encoding] : ENCODING_TYPES;
28
- const contentTypeFilter = options?.contentTypeFilter ?? COMPRESSIBLE_CONTENT_TYPE_REGEX;
29
- const shouldCompress = typeof contentTypeFilter === "function" ? (res) => {
30
- const type = res.headers.get("Content-Type");
31
- return type && contentTypeFilter(type);
32
- } : (res) => {
33
- const type = res.headers.get("Content-Type");
34
- return type && contentTypeFilter.test(type);
35
- };
36
- return async function compress2(ctx, next) {
37
- await next();
38
- const contentLength = ctx.res.headers.get("Content-Length");
39
- if (ctx.res.status === 206 || // partial content, Content-Range refers to the uncompressed bytes
40
- ctx.res.headers.has("Content-Encoding") || // already encoded
41
- ctx.res.headers.has("Transfer-Encoding") || // already encoded or chunked
42
- ctx.req.method === "HEAD" || // HEAD request
43
- contentLength && Number(contentLength) < threshold || // content-length below threshold
44
- !shouldCompress(ctx.res) || // not compressible type
45
- !shouldTransform(ctx.res)) {
46
- return;
47
- }
48
- const current = ctx.res.headers.get("Vary");
49
- if (current !== "*" && !(current && varyAcceptEncodingRegExp.test(current))) {
50
- ctx.header("Vary", current ? `${current}, Accept-Encoding` : "Accept-Encoding");
51
- }
52
- const accepted = ctx.req.header("Accept-Encoding");
53
- const encoding = selectEncoding(accepted, candidates);
54
- if (!encoding || !ctx.res.body) {
55
- return;
56
- }
57
- const stream = new CompressionStream(encoding);
58
- ctx.res = new Response(ctx.res.body.pipeThrough(stream), ctx.res);
59
- ctx.res.headers.delete("Content-Length");
60
- ctx.res.headers.set("Content-Encoding", encoding);
61
- const etag = ctx.res.headers.get("ETag");
62
- if (etag && !etag.startsWith("W/")) {
63
- ctx.res.headers.set("ETag", `W/${etag}`);
64
- }
65
- };
22
+ const varyAcceptEncodingRegExp = /(?:^|,)\s*accept-encoding\s*(?:,|$)/i;
23
+ /**
24
+ * Compress Middleware for Hono.
25
+ *
26
+ * @see {@link https://hono.dev/docs/middleware/builtin/compress}
27
+ *
28
+ * @param {CompressionOptions} [options] - The options for the compress middleware.
29
+ * @param {'gzip' | 'deflate'} [options.encoding] - The compression scheme to allow for response compression. Either 'gzip' or 'deflate'. If not defined, both are allowed and will be used based on the Accept-Encoding header. 'gzip' is prioritized if this option is not provided and the client provides both in the Accept-Encoding header.
30
+ * @param {number} [options.threshold=1024] - The minimum size in bytes to compress. Defaults to 1024 bytes.
31
+ * @param {RegExp | Function} [options.contentTypeFilter=COMPRESSIBLE_CONTENT_TYPE_REGEX] - A RegExp or function to determine if the response Content-Type should be compressed.
32
+ * @returns {MiddlewareHandler} The middleware handler function.
33
+ *
34
+ * @example
35
+ * ```ts
36
+ * const app = new Hono()
37
+ *
38
+ * app.use(compress())
39
+ *
40
+ * // Compress only JSON responses
41
+ * app.use(compress({ contentTypeFilter: /^application\/json/ }))
42
+ *
43
+ * // Compress based on custom Content-Type logic
44
+ * app.use(compress({ contentTypeFilter: (type) => COMPRESSIBLE_CONTENT_TYPE_REGEX.test(type) || type === "application/x-myformat" }))
45
+ * ```
46
+ */
47
+ const compress = (options) => {
48
+ const threshold = options?.threshold ?? 1024;
49
+ const candidates = options?.encoding ? [options.encoding] : ENCODING_TYPES;
50
+ const contentTypeFilter = options?.contentTypeFilter ?? COMPRESSIBLE_CONTENT_TYPE_REGEX;
51
+ const shouldCompress = typeof contentTypeFilter === "function" ? (res) => {
52
+ const type = res.headers.get("Content-Type");
53
+ return type && contentTypeFilter(type);
54
+ } : (res) => {
55
+ const type = res.headers.get("Content-Type");
56
+ return type && contentTypeFilter.test(type);
57
+ };
58
+ return async function compress(ctx, next) {
59
+ await next();
60
+ const contentLength = ctx.res.headers.get("Content-Length");
61
+ if (ctx.res.status === 206 || ctx.res.headers.has("Content-Encoding") || ctx.res.headers.has("Transfer-Encoding") || ctx.req.method === "HEAD" || contentLength && Number(contentLength) < threshold || !shouldCompress(ctx.res) || !shouldTransform(ctx.res)) return;
62
+ const current = ctx.res.headers.get("Vary");
63
+ if (current !== "*" && !(current && varyAcceptEncodingRegExp.test(current))) ctx.header("Vary", current ? `${current}, Accept-Encoding` : "Accept-Encoding");
64
+ const accepted = ctx.req.header("Accept-Encoding");
65
+ const encoding = selectEncoding(accepted, candidates);
66
+ if (!encoding || !ctx.res.body) return;
67
+ const stream = new CompressionStream(encoding);
68
+ ctx.res = new Response(ctx.res.body.pipeThrough(stream), ctx.res);
69
+ ctx.res.headers.delete("Content-Length");
70
+ ctx.res.headers.set("Content-Encoding", encoding);
71
+ const etag = ctx.res.headers.get("ETag");
72
+ if (etag && !etag.startsWith("W/")) ctx.res.headers.set("ETag", `W/${etag}`);
73
+ };
66
74
  };
67
- var shouldTransform = (res) => {
68
- const cacheControl = res.headers.get("Cache-Control");
69
- return !cacheControl || !cacheControlNoTransformRegExp.test(cacheControl);
70
- };
71
- export {
72
- COMPRESSIBLE_CONTENT_TYPE_REGEX,
73
- compress
75
+ const shouldTransform = (res) => {
76
+ const cacheControl = res.headers.get("Cache-Control");
77
+ return !cacheControl || !cacheControlNoTransformRegExp.test(cacheControl);
74
78
  };
79
+ //#endregion
80
+ export { COMPRESSIBLE_CONTENT_TYPE_REGEX, compress };
@@ -1,23 +1,53 @@
1
- // src/middleware/context-storage/index.ts
2
1
  import { AsyncLocalStorage } from "node:async_hooks";
3
- var asyncLocalStorage = new AsyncLocalStorage();
4
- var contextStorage = () => {
5
- return async function contextStorage2(c, next) {
6
- await asyncLocalStorage.run(c, next);
7
- };
2
+ //#region src/middleware/context-storage/index.ts
3
+ /**
4
+ * @module
5
+ * Context Storage Middleware for Hono.
6
+ */
7
+ const asyncLocalStorage = new AsyncLocalStorage();
8
+ /**
9
+ * Context Storage Middleware for Hono.
10
+ *
11
+ * @see {@link https://hono.dev/docs/middleware/builtin/context-storage}
12
+ *
13
+ * @returns {MiddlewareHandler} The middleware handler function.
14
+ *
15
+ * @example
16
+ * ```ts
17
+ * type Env = {
18
+ * Variables: {
19
+ * message: string
20
+ * }
21
+ * }
22
+ *
23
+ * const app = new Hono<Env>()
24
+ *
25
+ * app.use(contextStorage())
26
+ *
27
+ * app.use(async (c, next) => {
28
+ * c.set('message', 'Hono is hot!!')
29
+ * await next()
30
+ * })
31
+ *
32
+ * app.get('/', async (c) => c.text(getMessage()))
33
+ *
34
+ * const getMessage = () => {
35
+ * return getContext<Env>().var.message
36
+ * }
37
+ * ```
38
+ */
39
+ const contextStorage = () => {
40
+ return async function contextStorage(c, next) {
41
+ await asyncLocalStorage.run(c, next);
42
+ };
8
43
  };
9
- var tryGetContext = () => {
10
- return asyncLocalStorage.getStore();
44
+ const tryGetContext = () => {
45
+ return asyncLocalStorage.getStore();
11
46
  };
12
- var getContext = () => {
13
- const context = tryGetContext();
14
- if (!context) {
15
- throw new Error("Context is not available");
16
- }
17
- return context;
18
- };
19
- export {
20
- contextStorage,
21
- getContext,
22
- tryGetContext
47
+ const getContext = () => {
48
+ const context = tryGetContext();
49
+ if (!context) throw new Error("Context is not available");
50
+ return context;
23
51
  };
52
+ //#endregion
53
+ export { contextStorage, getContext, tryGetContext };
@@ -1,87 +1,108 @@
1
- // src/middleware/cors/index.ts
2
- var cors = (options) => {
3
- const opts = {
4
- origin: "*",
5
- allowMethods: ["GET", "HEAD", "PUT", "POST", "DELETE", "PATCH", "QUERY"],
6
- allowHeaders: [],
7
- exposeHeaders: [],
8
- ...options
9
- };
10
- const exposeHeadersStr = opts.exposeHeaders?.length ? opts.exposeHeaders.join(",") : void 0;
11
- const allowHeadersStr = opts.allowHeaders?.length ? opts.allowHeaders.join(",") : void 0;
12
- const findAllowOrigin = ((optsOrigin) => {
13
- if (typeof optsOrigin === "string") {
14
- if (optsOrigin === "*") {
15
- return () => optsOrigin;
16
- } else {
17
- return (origin) => optsOrigin === origin ? origin : null;
18
- }
19
- } else if (typeof optsOrigin === "function") {
20
- return optsOrigin;
21
- } else {
22
- return (origin) => optsOrigin.includes(origin) ? origin : null;
23
- }
24
- })(opts.origin);
25
- const findAllowMethods = ((optsAllowMethods) => {
26
- if (typeof optsAllowMethods === "function") {
27
- return async (origin, c) => (await optsAllowMethods(origin, c)).join(",");
28
- } else if (Array.isArray(optsAllowMethods)) {
29
- const methodsStr = optsAllowMethods.join(",");
30
- return () => methodsStr;
31
- } else {
32
- return () => "";
33
- }
34
- })(opts.allowMethods);
35
- return async function cors2(c, next) {
36
- function set(key, value) {
37
- c.res.headers.set(key, value);
38
- }
39
- const allowOrigin = await findAllowOrigin(c.req.header("origin") || "", c);
40
- if (allowOrigin) {
41
- set("Access-Control-Allow-Origin", allowOrigin);
42
- }
43
- if (opts.credentials) {
44
- set("Access-Control-Allow-Credentials", "true");
45
- }
46
- if (exposeHeadersStr) {
47
- set("Access-Control-Expose-Headers", exposeHeadersStr);
48
- }
49
- if (c.req.method === "OPTIONS") {
50
- if (opts.origin !== "*") {
51
- c.res.headers.append("Vary", "Origin");
52
- }
53
- if (opts.maxAge != null) {
54
- set("Access-Control-Max-Age", opts.maxAge.toString());
55
- }
56
- const allowMethods = await findAllowMethods(c.req.header("origin") || "", c);
57
- if (allowMethods) {
58
- set("Access-Control-Allow-Methods", allowMethods);
59
- }
60
- let headersStr = allowHeadersStr;
61
- if (!headersStr) {
62
- const requestHeaders = c.req.header("Access-Control-Request-Headers");
63
- if (requestHeaders) {
64
- headersStr = requestHeaders.split(",").map((h) => h.trim()).join(",");
65
- }
66
- }
67
- if (headersStr) {
68
- set("Access-Control-Allow-Headers", headersStr);
69
- c.res.headers.append("Vary", "Access-Control-Request-Headers");
70
- }
71
- c.res.headers.delete("Content-Length");
72
- c.res.headers.delete("Content-Type");
73
- return new Response(null, {
74
- headers: c.res.headers,
75
- status: 204,
76
- statusText: "No Content"
77
- });
78
- }
79
- await next();
80
- if (opts.origin !== "*") {
81
- c.header("Vary", "Origin", { append: true });
82
- }
83
- };
84
- };
85
- export {
86
- cors
1
+ //#region src/middleware/cors/index.ts
2
+ /**
3
+ * CORS Middleware for Hono.
4
+ *
5
+ * @see {@link https://hono.dev/docs/middleware/builtin/cors}
6
+ *
7
+ * @param {CORSOptions} [options] - The options for the CORS middleware.
8
+ * @param {string | string[] | ((origin: string, c: Context) => Promise<string | undefined | null> | string | undefined | null)} [options.origin='*'] - The value of "Access-Control-Allow-Origin" CORS header.
9
+ * @param {string[] | ((origin: string, c: Context) => Promise<string[]> | string[])} [options.allowMethods=['GET', 'HEAD', 'PUT', 'POST', 'DELETE', 'PATCH', 'QUERY']] - The value of "Access-Control-Allow-Methods" CORS header.
10
+ * @param {string[]} [options.allowHeaders=[]] - The value of "Access-Control-Allow-Headers" CORS header.
11
+ * @param {number} [options.maxAge] - The value of "Access-Control-Max-Age" CORS header.
12
+ * @param {boolean} [options.credentials] - The value of "Access-Control-Allow-Credentials" CORS header.
13
+ * @param {string[]} [options.exposeHeaders=[]] - The value of "Access-Control-Expose-Headers" CORS header.
14
+ * @returns {MiddlewareHandler} The middleware handler function.
15
+ *
16
+ * @example
17
+ * ```ts
18
+ * const app = new Hono()
19
+ *
20
+ * app.use('/api/*', cors())
21
+ * app.use(
22
+ * '/api2/*',
23
+ * cors({
24
+ * origin: 'http://example.com',
25
+ * allowHeaders: ['X-Custom-Header', 'Upgrade-Insecure-Requests'],
26
+ * allowMethods: ['POST', 'GET', 'OPTIONS'],
27
+ * exposeHeaders: ['Content-Length', 'X-Kuma-Revision'],
28
+ * maxAge: 600,
29
+ * credentials: true,
30
+ * })
31
+ * )
32
+ *
33
+ * app.all('/api/abc', (c) => {
34
+ * return c.json({ success: true })
35
+ * })
36
+ * app.all('/api2/abc', (c) => {
37
+ * return c.json({ success: true })
38
+ * })
39
+ * ```
40
+ */
41
+ const cors = (options) => {
42
+ const opts = {
43
+ origin: "*",
44
+ allowMethods: [
45
+ "GET",
46
+ "HEAD",
47
+ "PUT",
48
+ "POST",
49
+ "DELETE",
50
+ "PATCH",
51
+ "QUERY"
52
+ ],
53
+ allowHeaders: [],
54
+ exposeHeaders: [],
55
+ ...options
56
+ };
57
+ const exposeHeadersStr = opts.exposeHeaders?.length ? opts.exposeHeaders.join(",") : void 0;
58
+ const allowHeadersStr = opts.allowHeaders?.length ? opts.allowHeaders.join(",") : void 0;
59
+ const findAllowOrigin = ((optsOrigin) => {
60
+ if (typeof optsOrigin === "string") {
61
+ if (optsOrigin === "*") return () => optsOrigin;
62
+ else return (origin) => optsOrigin === origin ? origin : null;
63
+ } else if (typeof optsOrigin === "function") return optsOrigin;
64
+ else return (origin) => optsOrigin.includes(origin) ? origin : null;
65
+ })(opts.origin);
66
+ const findAllowMethods = ((optsAllowMethods) => {
67
+ if (typeof optsAllowMethods === "function") return async (origin, c) => (await optsAllowMethods(origin, c)).join(",");
68
+ else if (Array.isArray(optsAllowMethods)) {
69
+ const methodsStr = optsAllowMethods.join(",");
70
+ return () => methodsStr;
71
+ } else return () => "";
72
+ })(opts.allowMethods);
73
+ return async function cors(c, next) {
74
+ function set(key, value) {
75
+ c.res.headers.set(key, value);
76
+ }
77
+ const allowOrigin = await findAllowOrigin(c.req.header("origin") || "", c);
78
+ if (allowOrigin) set("Access-Control-Allow-Origin", allowOrigin);
79
+ if (opts.credentials) set("Access-Control-Allow-Credentials", "true");
80
+ if (exposeHeadersStr) set("Access-Control-Expose-Headers", exposeHeadersStr);
81
+ if (c.req.method === "OPTIONS") {
82
+ if (opts.origin !== "*") c.res.headers.append("Vary", "Origin");
83
+ if (opts.maxAge != null) set("Access-Control-Max-Age", opts.maxAge.toString());
84
+ const allowMethods = await findAllowMethods(c.req.header("origin") || "", c);
85
+ if (allowMethods) set("Access-Control-Allow-Methods", allowMethods);
86
+ let headersStr = allowHeadersStr;
87
+ if (!headersStr) {
88
+ const requestHeaders = c.req.header("Access-Control-Request-Headers");
89
+ if (requestHeaders) headersStr = requestHeaders.split(",").map((h) => h.trim()).join(",");
90
+ }
91
+ if (headersStr) {
92
+ set("Access-Control-Allow-Headers", headersStr);
93
+ c.res.headers.append("Vary", "Access-Control-Request-Headers");
94
+ }
95
+ c.res.headers.delete("Content-Length");
96
+ c.res.headers.delete("Content-Type");
97
+ return new Response(null, {
98
+ headers: c.res.headers,
99
+ status: 204,
100
+ statusText: "No Content"
101
+ });
102
+ }
103
+ await next();
104
+ if (opts.origin !== "*") c.header("Vary", "Origin", { append: true });
105
+ };
87
106
  };
107
+ //#endregion
108
+ export { cors };
@@ -1,55 +1,105 @@
1
- // src/middleware/csrf/index.ts
2
1
  import { HTTPException } from "../../http-exception.js";
3
- var secFetchSiteValues = ["same-origin", "same-site", "none", "cross-site"];
4
- var isSecFetchSite = (value) => secFetchSiteValues.includes(value);
5
- var isSafeMethodRe = /^(GET|HEAD|OPTIONS)$/;
6
- var isRequestedByFormElementRe = /^\b(application\/x-www-form-urlencoded|multipart\/form-data|text\/plain)\b/i;
7
- var csrf = (options) => {
8
- const originHandler = ((optsOrigin) => {
9
- if (!optsOrigin) {
10
- return (origin, c) => origin === new URL(c.req.url).origin;
11
- } else if (typeof optsOrigin === "string") {
12
- return (origin) => origin === optsOrigin;
13
- } else if (typeof optsOrigin === "function") {
14
- return optsOrigin;
15
- } else {
16
- return (origin) => optsOrigin.includes(origin);
17
- }
18
- })(options?.origin);
19
- const isAllowedOrigin = async (origin, c) => {
20
- if (origin === void 0) {
21
- return false;
22
- }
23
- return await originHandler(origin, c);
24
- };
25
- const secFetchSiteHandler = ((optsSecFetchSite) => {
26
- if (!optsSecFetchSite) {
27
- return (secFetchSite) => secFetchSite === "same-origin";
28
- } else if (typeof optsSecFetchSite === "string") {
29
- return (secFetchSite) => secFetchSite === optsSecFetchSite;
30
- } else if (typeof optsSecFetchSite === "function") {
31
- return optsSecFetchSite;
32
- } else {
33
- return (secFetchSite) => optsSecFetchSite.includes(secFetchSite);
34
- }
35
- })(options?.secFetchSite);
36
- const isAllowedSecFetchSite = async (secFetchSite, c) => {
37
- if (secFetchSite === void 0) {
38
- return false;
39
- }
40
- if (!isSecFetchSite(secFetchSite)) {
41
- return false;
42
- }
43
- return await secFetchSiteHandler(secFetchSite, c);
44
- };
45
- return async function csrf2(c, next) {
46
- if (!isSafeMethodRe.test(c.req.method) && isRequestedByFormElementRe.test(c.req.header("content-type") || "text/plain") && !await isAllowedSecFetchSite(c.req.header("sec-fetch-site"), c) && !await isAllowedOrigin(c.req.header("origin"), c)) {
47
- const res = new Response("Forbidden", { status: 403 });
48
- throw new HTTPException(403, { res });
49
- }
50
- await next();
51
- };
52
- };
53
- export {
54
- csrf
2
+ //#region src/middleware/csrf/index.ts
3
+ const secFetchSiteValues = [
4
+ "same-origin",
5
+ "same-site",
6
+ "none",
7
+ "cross-site"
8
+ ];
9
+ const isSecFetchSite = (value) => secFetchSiteValues.includes(value);
10
+ const isSafeMethodRe = /^(GET|HEAD|OPTIONS)$/;
11
+ const isRequestedByFormElementRe = /^\b(application\/x-www-form-urlencoded|multipart\/form-data|text\/plain)\b/i;
12
+ /**
13
+ * CSRF Protection Middleware for Hono.
14
+ *
15
+ * Protects against Cross-Site Request Forgery attacks by validating request origins
16
+ * and sec-fetch-site headers. The request is allowed if either validation passes.
17
+ *
18
+ * @see {@link https://hono.dev/docs/middleware/builtin/csrf}
19
+ *
20
+ * @param {CSRFOptions} [options] - The options for the CSRF protection middleware.
21
+ * @param {string|string[]|(origin: string, context: Context) => boolean} [options.origin] -
22
+ * Allowed origins for requests.
23
+ * - string: Single allowed origin (e.g., 'https://example.com')
24
+ * - string[]: Multiple allowed origins
25
+ * - function: Custom validation logic
26
+ * - Default: Only same origin as the request URL
27
+ * @param {string|string[]|(secFetchSite: string, context: Context) => boolean} [options.secFetchSite] -
28
+ * Sec-Fetch-Site header validation. Standard values include 'same-origin', 'same-site', 'cross-site', 'none'.
29
+ * - string: Single allowed value (e.g., 'same-origin')
30
+ * - string[]: Multiple allowed values (e.g., ['same-origin', 'same-site'])
31
+ * - function: Custom validation with access to context
32
+ * - Default: Only allows 'same-origin'
33
+ * @returns {MiddlewareHandler} The middleware handler function.
34
+ *
35
+ * @example
36
+ * ```ts
37
+ * const app = new Hono()
38
+ *
39
+ * // Default: both origin and sec-fetch-site validation
40
+ * app.use('*', csrf())
41
+ *
42
+ * // Allow specific origins
43
+ * app.use('*', csrf({ origin: 'https://example.com' }))
44
+ * app.use('*', csrf({ origin: ['https://app.com', 'https://api.com'] }))
45
+ *
46
+ * // Allow specific sec-fetch-site values
47
+ * app.use('*', csrf({ secFetchSite: 'same-origin' }))
48
+ * app.use('*', csrf({ secFetchSite: ['same-origin', 'same-site'] }))
49
+ *
50
+ * // Dynamic sec-fetch-site validation
51
+ * app.use('*', csrf({
52
+ * secFetchSite: (secFetchSite, c) => {
53
+ * // Always allow same-origin
54
+ * if (secFetchSite === 'same-origin') return true
55
+ * // Allow cross-site for webhook endpoints
56
+ * if (secFetchSite === 'cross-site' && c.req.path.startsWith('/webhook/')) {
57
+ * return true
58
+ * }
59
+ * return false
60
+ * }
61
+ * }))
62
+ *
63
+ * // Dynamic origin validation
64
+ * app.use('*', csrf({
65
+ * origin: (origin, c) => {
66
+ * // Allow same origin
67
+ * if (origin === new URL(c.req.url).origin) return true
68
+ * // Allow specific trusted domains
69
+ * return ['https://app.example.com', 'https://admin.example.com'].includes(origin)
70
+ * }
71
+ * }))
72
+ * ```
73
+ */
74
+ const csrf = (options) => {
75
+ const originHandler = ((optsOrigin) => {
76
+ if (!optsOrigin) return (origin, c) => origin === new URL(c.req.url).origin;
77
+ else if (typeof optsOrigin === "string") return (origin) => origin === optsOrigin;
78
+ else if (typeof optsOrigin === "function") return optsOrigin;
79
+ else return (origin) => optsOrigin.includes(origin);
80
+ })(options?.origin);
81
+ const isAllowedOrigin = async (origin, c) => {
82
+ if (origin === void 0) return false;
83
+ return await originHandler(origin, c);
84
+ };
85
+ const secFetchSiteHandler = ((optsSecFetchSite) => {
86
+ if (!optsSecFetchSite) return (secFetchSite) => secFetchSite === "same-origin";
87
+ else if (typeof optsSecFetchSite === "string") return (secFetchSite) => secFetchSite === optsSecFetchSite;
88
+ else if (typeof optsSecFetchSite === "function") return optsSecFetchSite;
89
+ else return (secFetchSite) => optsSecFetchSite.includes(secFetchSite);
90
+ })(options?.secFetchSite);
91
+ const isAllowedSecFetchSite = async (secFetchSite, c) => {
92
+ if (secFetchSite === void 0) return false;
93
+ if (!isSecFetchSite(secFetchSite)) return false;
94
+ return await secFetchSiteHandler(secFetchSite, c);
95
+ };
96
+ return async function csrf(c, next) {
97
+ if (!isSafeMethodRe.test(c.req.method) && isRequestedByFormElementRe.test(c.req.header("content-type") || "text/plain") && !await isAllowedSecFetchSite(c.req.header("sec-fetch-site"), c) && !await isAllowedOrigin(c.req.header("origin"), c)) {
98
+ const res = new Response("Forbidden", { status: 403 });
99
+ throw new HTTPException(403, { res });
100
+ }
101
+ await next();
102
+ };
55
103
  };
104
+ //#endregion
105
+ export { csrf };