hono 4.13.9 → 4.13.11

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 (566) hide show
  1. package/dist/_virtual/_rolldown/runtime.js +13 -0
  2. package/dist/adapter/aws-lambda/conninfo.js +42 -23
  3. package/dist/adapter/aws-lambda/handler.js +318 -344
  4. package/dist/adapter/aws-lambda/index.js +2 -8
  5. package/dist/adapter/aws-lambda/types.js +1 -0
  6. package/dist/adapter/bun/conninfo.js +20 -25
  7. package/dist/adapter/bun/index.js +3 -13
  8. package/dist/adapter/bun/serve-static.js +27 -27
  9. package/dist/adapter/bun/server.js +11 -5
  10. package/dist/adapter/bun/ssg.js +25 -15
  11. package/dist/adapter/bun/websocket.js +61 -68
  12. package/dist/adapter/cloudflare-pages/conninfo.js +24 -9
  13. package/dist/adapter/cloudflare-pages/handler.js +59 -62
  14. package/dist/adapter/cloudflare-pages/index.js +2 -8
  15. package/dist/adapter/cloudflare-workers/conninfo.js +7 -9
  16. package/dist/adapter/cloudflare-workers/index.js +3 -8
  17. package/dist/adapter/cloudflare-workers/serve-static-module.js +5 -6
  18. package/dist/adapter/cloudflare-workers/serve-static.js +26 -20
  19. package/dist/adapter/cloudflare-workers/utils.js +21 -34
  20. package/dist/adapter/cloudflare-workers/websocket.js +31 -39
  21. package/dist/adapter/deno/conninfo.js +16 -13
  22. package/dist/adapter/deno/deno.d.js +1 -0
  23. package/dist/adapter/deno/index.js +3 -10
  24. package/dist/adapter/deno/serve-static.js +33 -38
  25. package/dist/adapter/deno/ssg.js +27 -16
  26. package/dist/adapter/deno/websocket.js +30 -30
  27. package/dist/adapter/lambda-edge/conninfo.js +7 -9
  28. package/dist/adapter/lambda-edge/handler.js +102 -101
  29. package/dist/adapter/lambda-edge/index.js +2 -6
  30. package/dist/adapter/netlify/conninfo.js +24 -9
  31. package/dist/adapter/netlify/handler.js +10 -8
  32. package/dist/adapter/netlify/index.js +3 -2
  33. package/dist/adapter/netlify/mod.js +2 -6
  34. package/dist/adapter/service-worker/handler.js +15 -19
  35. package/dist/adapter/service-worker/index.js +23 -7
  36. package/dist/adapter/service-worker/types.js +1 -0
  37. package/dist/adapter/vercel/conninfo.js +7 -10
  38. package/dist/adapter/vercel/handler.js +8 -6
  39. package/dist/adapter/vercel/index.js +2 -6
  40. package/dist/cjs/_virtual/_rolldown/runtime.js +33 -0
  41. package/dist/cjs/adapter/aws-lambda/conninfo.js +42 -44
  42. package/dist/cjs/adapter/aws-lambda/handler.js +326 -373
  43. package/dist/cjs/adapter/aws-lambda/index.js +7 -34
  44. package/dist/cjs/adapter/aws-lambda/types.js +0 -15
  45. package/dist/cjs/adapter/bun/conninfo.js +21 -47
  46. package/dist/cjs/adapter/bun/index.js +14 -45
  47. package/dist/cjs/adapter/bun/serve-static.js +29 -50
  48. package/dist/cjs/adapter/bun/server.js +11 -26
  49. package/dist/cjs/adapter/bun/ssg.js +24 -35
  50. package/dist/cjs/adapter/bun/websocket.js +63 -91
  51. package/dist/cjs/adapter/cloudflare-pages/conninfo.js +25 -31
  52. package/dist/cjs/adapter/cloudflare-pages/handler.js +61 -85
  53. package/dist/cjs/adapter/cloudflare-pages/index.js +7 -34
  54. package/dist/cjs/adapter/cloudflare-workers/conninfo.js +8 -31
  55. package/dist/cjs/adapter/cloudflare-workers/index.js +7 -33
  56. package/dist/cjs/adapter/cloudflare-workers/serve-static-module.js +7 -29
  57. package/dist/cjs/adapter/cloudflare-workers/serve-static.js +27 -42
  58. package/dist/cjs/adapter/cloudflare-workers/utils.js +21 -55
  59. package/dist/cjs/adapter/cloudflare-workers/websocket.js +33 -62
  60. package/dist/cjs/adapter/deno/conninfo.js +16 -34
  61. package/dist/cjs/adapter/deno/index.js +10 -38
  62. package/dist/cjs/adapter/deno/serve-static.js +33 -59
  63. package/dist/cjs/adapter/deno/ssg.js +27 -37
  64. package/dist/cjs/adapter/deno/websocket.js +32 -53
  65. package/dist/cjs/adapter/lambda-edge/conninfo.js +8 -31
  66. package/dist/cjs/adapter/lambda-edge/handler.js +102 -130
  67. package/dist/cjs/adapter/lambda-edge/index.js +5 -30
  68. package/dist/cjs/adapter/netlify/conninfo.js +25 -31
  69. package/dist/cjs/adapter/netlify/handler.js +10 -29
  70. package/dist/cjs/adapter/netlify/index.js +5 -21
  71. package/dist/cjs/adapter/netlify/mod.js +5 -30
  72. package/dist/cjs/adapter/service-worker/handler.js +16 -41
  73. package/dist/cjs/adapter/service-worker/index.js +25 -30
  74. package/dist/cjs/adapter/service-worker/types.js +0 -15
  75. package/dist/cjs/adapter/vercel/conninfo.js +8 -32
  76. package/dist/cjs/adapter/vercel/handler.js +8 -27
  77. package/dist/cjs/adapter/vercel/index.js +5 -30
  78. package/dist/cjs/client/client.js +139 -212
  79. package/dist/cjs/client/fetch-result-please.js +62 -80
  80. package/dist/cjs/client/index.js +7 -32
  81. package/dist/cjs/client/types.js +0 -15
  82. package/dist/cjs/client/utils.js +54 -92
  83. package/dist/cjs/compose.js +49 -66
  84. package/dist/cjs/context.js +379 -450
  85. package/dist/cjs/helper/accepts/accepts.js +47 -72
  86. package/dist/cjs/helper/accepts/index.js +3 -27
  87. package/dist/cjs/helper/adapter/index.js +33 -73
  88. package/dist/cjs/helper/conninfo/index.js +0 -15
  89. package/dist/cjs/helper/conninfo/types.js +0 -15
  90. package/dist/cjs/helper/cookie/index.js +75 -116
  91. package/dist/cjs/helper/css/common.js +165 -244
  92. package/dist/cjs/helper/css/index.js +136 -151
  93. package/dist/cjs/helper/dev/index.js +45 -71
  94. package/dist/cjs/helper/factory/index.js +30 -51
  95. package/dist/cjs/helper/html/index.js +32 -62
  96. package/dist/cjs/helper/proxy/index.js +113 -106
  97. package/dist/cjs/helper/route/index.js +123 -66
  98. package/dist/cjs/helper/ssg/index.js +19 -43
  99. package/dist/cjs/helper/ssg/middleware.js +56 -64
  100. package/dist/cjs/helper/ssg/plugins.js +55 -57
  101. package/dist/cjs/helper/ssg/ssg.js +196 -296
  102. package/dist/cjs/helper/ssg/utils.js +47 -90
  103. package/dist/cjs/helper/streaming/index.js +8 -35
  104. package/dist/cjs/helper/streaming/sse.js +53 -85
  105. package/dist/cjs/helper/streaming/stream.js +23 -53
  106. package/dist/cjs/helper/streaming/text.js +10 -32
  107. package/dist/cjs/helper/streaming/utils.js +13 -32
  108. package/dist/cjs/helper/testing/index.js +16 -31
  109. package/dist/cjs/helper/websocket/index.js +51 -76
  110. package/dist/cjs/hono-base.js +345 -403
  111. package/dist/cjs/hono.js +28 -42
  112. package/dist/cjs/http-exception.js +55 -56
  113. package/dist/cjs/index.js +22 -30
  114. package/dist/cjs/jsx/base.js +237 -366
  115. package/dist/cjs/jsx/children.js +16 -41
  116. package/dist/cjs/jsx/components.js +119 -192
  117. package/dist/cjs/jsx/constants.js +15 -42
  118. package/dist/cjs/jsx/context.js +144 -162
  119. package/dist/cjs/jsx/dom/client.js +49 -69
  120. package/dist/cjs/jsx/dom/components.js +23 -52
  121. package/dist/cjs/jsx/dom/context.js +39 -67
  122. package/dist/cjs/jsx/dom/css.js +143 -158
  123. package/dist/cjs/jsx/dom/hooks/index.js +55 -64
  124. package/dist/cjs/jsx/dom/index.js +114 -173
  125. package/dist/cjs/jsx/dom/intrinsic-element/components.js +282 -375
  126. package/dist/cjs/jsx/dom/jsx-dev-runtime.js +14 -49
  127. package/dist/cjs/jsx/dom/jsx-runtime.js +5 -32
  128. package/dist/cjs/jsx/dom/render.js +469 -623
  129. package/dist/cjs/jsx/dom/server.js +37 -64
  130. package/dist/cjs/jsx/dom/utils.js +7 -30
  131. package/dist/cjs/jsx/hooks/index.js +225 -318
  132. package/dist/cjs/jsx/index.js +86 -135
  133. package/dist/cjs/jsx/intrinsic-element/common.js +20 -43
  134. package/dist/cjs/jsx/intrinsic-element/components.js +117 -168
  135. package/dist/cjs/jsx/intrinsic-elements.js +0 -15
  136. package/dist/cjs/jsx/jsx-dev-runtime.js +14 -39
  137. package/dist/cjs/jsx/jsx-runtime.js +34 -68
  138. package/dist/cjs/jsx/streaming.js +123 -166
  139. package/dist/cjs/jsx/types.js +0 -15
  140. package/dist/cjs/jsx/utils.js +91 -175
  141. package/dist/cjs/middleware/basic-auth/index.js +98 -86
  142. package/dist/cjs/middleware/bearer-auth/index.js +92 -109
  143. package/dist/cjs/middleware/body-limit/index.js +66 -72
  144. package/dist/cjs/middleware/cache/index.js +153 -199
  145. package/dist/cjs/middleware/combine/index.js +133 -95
  146. package/dist/cjs/middleware/compress/index.js +73 -88
  147. package/dist/cjs/middleware/context-storage/index.js +49 -41
  148. package/dist/cjs/middleware/cors/index.js +107 -107
  149. package/dist/cjs/middleware/csrf/index.js +101 -72
  150. package/dist/cjs/middleware/etag/digest.js +58 -97
  151. package/dist/cjs/middleware/etag/index.js +71 -91
  152. package/dist/cjs/middleware/ip-restriction/index.js +161 -169
  153. package/dist/cjs/middleware/jsx-renderer/index.js +99 -77
  154. package/dist/cjs/middleware/jwk/index.js +3 -27
  155. package/dist/cjs/middleware/jwk/jwk.js +118 -135
  156. package/dist/cjs/middleware/jwt/index.js +9 -38
  157. package/dist/cjs/middleware/jwt/jwt.js +120 -141
  158. package/dist/cjs/middleware/language/index.js +7 -35
  159. package/dist/cjs/middleware/language/language.js +184 -182
  160. package/dist/cjs/middleware/logger/index.js +41 -62
  161. package/dist/cjs/middleware/method-not-allowed/index.js +82 -88
  162. package/dist/cjs/middleware/method-override/index.js +101 -102
  163. package/dist/cjs/middleware/powered-by/index.js +23 -30
  164. package/dist/cjs/middleware/pretty-json/index.js +38 -42
  165. package/dist/cjs/middleware/request-id/index.js +3 -27
  166. package/dist/cjs/middleware/request-id/request-id.js +34 -42
  167. package/dist/cjs/middleware/secure-headers/index.js +4 -29
  168. package/dist/cjs/middleware/secure-headers/permissions-policy.js +0 -15
  169. package/dist/cjs/middleware/secure-headers/secure-headers.js +142 -174
  170. package/dist/cjs/middleware/serve-static/index.js +56 -93
  171. package/dist/cjs/middleware/serve-static/path.js +15 -38
  172. package/dist/cjs/middleware/timeout/index.js +40 -45
  173. package/dist/cjs/middleware/timing/index.js +7 -35
  174. package/dist/cjs/middleware/timing/timing.js +177 -118
  175. package/dist/cjs/middleware/trailing-slash/index.js +85 -58
  176. package/dist/cjs/preset/quick.js +18 -37
  177. package/dist/cjs/preset/tiny.js +15 -33
  178. package/dist/cjs/request/constants.js +5 -27
  179. package/dist/cjs/request.js +334 -346
  180. package/dist/cjs/router/linear-router/index.js +3 -27
  181. package/dist/cjs/router/linear-router/router.js +95 -143
  182. package/dist/cjs/router/pattern-router/index.js +3 -27
  183. package/dist/cjs/router/pattern-router/router.js +41 -63
  184. package/dist/cjs/router/reg-exp-router/index.js +7 -34
  185. package/dist/cjs/router/reg-exp-router/matcher.js +18 -45
  186. package/dist/cjs/router/reg-exp-router/node.js +91 -135
  187. package/dist/cjs/router/reg-exp-router/prepared-router.js +92 -161
  188. package/dist/cjs/router/reg-exp-router/router.js +98 -147
  189. package/dist/cjs/router/reg-exp-router/trie.js +73 -89
  190. package/dist/cjs/router/smart-router/index.js +3 -27
  191. package/dist/cjs/router/smart-router/router.js +49 -79
  192. package/dist/cjs/router/trie-router/index.js +3 -27
  193. package/dist/cjs/router/trie-router/node.js +134 -186
  194. package/dist/cjs/router/trie-router/router.js +15 -39
  195. package/dist/cjs/router/utils.js +5 -27
  196. package/dist/cjs/router.js +37 -37
  197. package/dist/cjs/types.js +5 -28
  198. package/dist/cjs/utils/accept.js +177 -225
  199. package/dist/cjs/utils/basic-auth.js +16 -40
  200. package/dist/cjs/utils/body.js +84 -110
  201. package/dist/cjs/utils/buffer.js +43 -91
  202. package/dist/cjs/utils/color.js +35 -44
  203. package/dist/cjs/utils/compress.js +11 -26
  204. package/dist/cjs/utils/concurrent.js +29 -59
  205. package/dist/cjs/utils/constants.js +7 -26
  206. package/dist/cjs/utils/cookie.js +107 -177
  207. package/dist/cjs/utils/crypto.js +30 -61
  208. package/dist/cjs/utils/encode.js +31 -48
  209. package/dist/cjs/utils/filepath.js +23 -54
  210. package/dist/cjs/utils/handler.js +11 -33
  211. package/dist/cjs/utils/headers.js +0 -15
  212. package/dist/cjs/utils/html.js +96 -137
  213. package/dist/cjs/utils/http-status.js +0 -15
  214. package/dist/cjs/utils/ipaddr.js +213 -286
  215. package/dist/cjs/utils/jwt/index.js +14 -27
  216. package/dist/cjs/utils/jwt/jwa.js +25 -42
  217. package/dist/cjs/utils/jwt/jws.js +119 -199
  218. package/dist/cjs/utils/jwt/jwt.js +122 -206
  219. package/dist/cjs/utils/jwt/types.js +122 -159
  220. package/dist/cjs/utils/jwt/utf8.js +9 -28
  221. package/dist/cjs/utils/mime.js +75 -101
  222. package/dist/cjs/utils/stream.js +88 -111
  223. package/dist/cjs/utils/types.js +0 -15
  224. package/dist/cjs/utils/url.js +185 -234
  225. package/dist/cjs/validator/index.js +3 -27
  226. package/dist/cjs/validator/utils.js +0 -15
  227. package/dist/cjs/validator/validator.js +60 -103
  228. package/dist/client/client.js +138 -197
  229. package/dist/client/fetch-result-please.js +59 -56
  230. package/dist/client/index.js +3 -7
  231. package/dist/client/types.js +1 -0
  232. package/dist/client/utils.js +51 -68
  233. package/dist/compose.js +49 -45
  234. package/dist/context.js +376 -426
  235. package/dist/helper/accepts/accepts.js +47 -51
  236. package/dist/helper/accepts/index.js +1 -4
  237. package/dist/helper/adapter/index.js +33 -52
  238. package/dist/helper/conninfo/index.js +1 -0
  239. package/dist/helper/conninfo/types.js +1 -0
  240. package/dist/helper/cookie/index.js +74 -94
  241. package/dist/helper/css/common.js +167 -225
  242. package/dist/helper/css/index.js +132 -137
  243. package/dist/helper/dev/index.js +44 -49
  244. package/dist/helper/factory/index.js +27 -27
  245. package/dist/helper/html/index.js +30 -39
  246. package/dist/helper/proxy/index.js +116 -88
  247. package/dist/helper/route/index.js +121 -43
  248. package/dist/helper/ssg/index.js +3 -18
  249. package/dist/helper/ssg/middleware.js +53 -40
  250. package/dist/helper/ssg/plugins.js +55 -36
  251. package/dist/helper/ssg/ssg.js +198 -283
  252. package/dist/helper/ssg/utils.js +53 -75
  253. package/dist/helper/streaming/index.js +2 -8
  254. package/dist/helper/streaming/sse.js +50 -61
  255. package/dist/helper/streaming/stream.js +22 -31
  256. package/dist/helper/streaming/text.js +9 -10
  257. package/dist/helper/streaming/utils.js +9 -12
  258. package/dist/helper/testing/index.js +16 -10
  259. package/dist/helper/websocket/index.js +49 -53
  260. package/dist/hono-base.js +342 -379
  261. package/dist/hono.js +27 -20
  262. package/dist/http-exception.js +53 -33
  263. package/dist/index.js +19 -6
  264. package/dist/jsx/base.js +231 -340
  265. package/dist/jsx/children.js +16 -20
  266. package/dist/jsx/components.js +118 -170
  267. package/dist/jsx/constants.js +9 -15
  268. package/dist/jsx/context.js +153 -150
  269. package/dist/jsx/dom/client.js +45 -48
  270. package/dist/jsx/dom/components.js +21 -29
  271. package/dist/jsx/dom/context.js +37 -44
  272. package/dist/jsx/dom/css.js +142 -147
  273. package/dist/jsx/dom/hooks/index.js +52 -40
  274. package/dist/jsx/dom/index.js +71 -134
  275. package/dist/jsx/dom/intrinsic-element/components.js +275 -359
  276. package/dist/jsx/dom/jsx-dev-runtime.js +14 -18
  277. package/dist/jsx/dom/jsx-runtime.js +2 -8
  278. package/dist/jsx/dom/render.js +492 -631
  279. package/dist/jsx/dom/server.js +32 -32
  280. package/dist/jsx/dom/utils.js +6 -8
  281. package/dist/jsx/hooks/index.js +236 -308
  282. package/dist/jsx/index.js +45 -98
  283. package/dist/jsx/intrinsic-element/common.js +20 -22
  284. package/dist/jsx/intrinsic-element/components.js +113 -154
  285. package/dist/jsx/intrinsic-elements.js +1 -0
  286. package/dist/jsx/jsx-dev-runtime.js +12 -16
  287. package/dist/jsx/jsx-runtime.js +29 -42
  288. package/dist/jsx/streaming.js +120 -142
  289. package/dist/jsx/types.js +1 -0
  290. package/dist/jsx/utils.js +105 -168
  291. package/dist/middleware/basic-auth/index.js +96 -63
  292. package/dist/middleware/bearer-auth/index.js +93 -89
  293. package/dist/middleware/body-limit/index.js +66 -51
  294. package/dist/middleware/cache/index.js +165 -190
  295. package/dist/middleware/combine/index.js +132 -73
  296. package/dist/middleware/compress/index.js +75 -69
  297. package/dist/middleware/context-storage/index.js +49 -19
  298. package/dist/middleware/cors/index.js +107 -86
  299. package/dist/middleware/csrf/index.js +103 -53
  300. package/dist/middleware/etag/digest.js +59 -77
  301. package/dist/middleware/etag/index.js +71 -70
  302. package/dist/middleware/ip-restriction/index.js +163 -158
  303. package/dist/middleware/jsx-renderer/index.js +97 -54
  304. package/dist/middleware/jwk/index.js +1 -4
  305. package/dist/middleware/jwk/jwk.js +116 -112
  306. package/dist/middleware/jwt/index.js +2 -10
  307. package/dist/middleware/jwt/jwt.js +114 -114
  308. package/dist/middleware/language/index.js +2 -15
  309. package/dist/middleware/language/language.js +180 -157
  310. package/dist/middleware/logger/index.js +43 -37
  311. package/dist/middleware/method-not-allowed/index.js +81 -66
  312. package/dist/middleware/method-override/index.js +101 -81
  313. package/dist/middleware/powered-by/index.js +23 -9
  314. package/dist/middleware/pretty-json/index.js +39 -22
  315. package/dist/middleware/request-id/index.js +1 -4
  316. package/dist/middleware/request-id/request-id.js +33 -20
  317. package/dist/middleware/secure-headers/index.js +1 -5
  318. package/dist/middleware/secure-headers/permissions-policy.js +1 -0
  319. package/dist/middleware/secure-headers/secure-headers.js +144 -155
  320. package/dist/middleware/serve-static/index.js +56 -72
  321. package/dist/middleware/serve-static/path.js +15 -17
  322. package/dist/middleware/timeout/index.js +40 -23
  323. package/dist/middleware/timing/index.js +2 -9
  324. package/dist/middleware/timing/timing.js +177 -97
  325. package/dist/middleware/trailing-slash/index.js +85 -37
  326. package/dist/preset/quick.js +17 -15
  327. package/dist/preset/tiny.js +14 -11
  328. package/dist/request/constants.js +4 -5
  329. package/dist/request.js +328 -319
  330. package/dist/router/linear-router/index.js +1 -4
  331. package/dist/router/linear-router/router.js +93 -120
  332. package/dist/router/pattern-router/index.js +1 -4
  333. package/dist/router/pattern-router/router.js +39 -40
  334. package/dist/router/reg-exp-router/index.js +1 -7
  335. package/dist/router/reg-exp-router/matcher.js +17 -23
  336. package/dist/router/reg-exp-router/node.js +87 -110
  337. package/dist/router/reg-exp-router/prepared-router.js +89 -137
  338. package/dist/router/reg-exp-router/router.js +92 -129
  339. package/dist/router/reg-exp-router/trie.js +69 -64
  340. package/dist/router/smart-router/index.js +1 -4
  341. package/dist/router/smart-router/router.js +46 -55
  342. package/dist/router/trie-router/index.js +1 -4
  343. package/dist/router/trie-router/node.js +131 -162
  344. package/dist/router/trie-router/router.js +11 -14
  345. package/dist/router/utils.js +4 -5
  346. package/dist/router.js +35 -14
  347. package/dist/types/adapter/aws-lambda/conninfo.d.ts +4 -1
  348. package/dist/types/adapter/aws-lambda/handler.d.ts +150 -105
  349. package/dist/types/adapter/aws-lambda/index.d.ts +4 -8
  350. package/dist/types/adapter/aws-lambda/types.d.ts +152 -123
  351. package/dist/types/adapter/bun/conninfo.d.ts +4 -1
  352. package/dist/types/adapter/bun/index.d.ts +6 -10
  353. package/dist/types/adapter/bun/serve-static.d.ts +7 -2
  354. package/dist/types/adapter/bun/server.d.ts +4 -5
  355. package/dist/types/adapter/bun/ssg.d.ts +5 -1
  356. package/dist/types/adapter/bun/websocket.d.ts +31 -17
  357. package/dist/types/adapter/cloudflare-pages/conninfo.d.ts +4 -1
  358. package/dist/types/adapter/cloudflare-pages/handler.d.ts +29 -18
  359. package/dist/types/adapter/cloudflare-pages/index.d.ts +3 -7
  360. package/dist/types/adapter/cloudflare-workers/conninfo.d.ts +6 -1
  361. package/dist/types/adapter/cloudflare-workers/index.d.ts +4 -7
  362. package/dist/types/adapter/cloudflare-workers/serve-static-module.d.ts +5 -3
  363. package/dist/types/adapter/cloudflare-workers/serve-static.d.ts +10 -5
  364. package/dist/types/adapter/cloudflare-workers/utils.d.ts +10 -2
  365. package/dist/types/adapter/cloudflare-workers/websocket.d.ts +6 -1
  366. package/dist/types/adapter/deno/conninfo.d.ts +4 -1
  367. package/dist/types/adapter/deno/deno.d.ts +1 -0
  368. package/dist/types/adapter/deno/index.d.ts +5 -8
  369. package/dist/types/adapter/deno/serve-static.d.ts +7 -2
  370. package/dist/types/adapter/deno/ssg.d.ts +5 -1
  371. package/dist/types/adapter/deno/websocket.d.ts +6 -1
  372. package/dist/types/adapter/lambda-edge/conninfo.d.ts +6 -1
  373. package/dist/types/adapter/lambda-edge/handler.d.ts +83 -58
  374. package/dist/types/adapter/lambda-edge/index.d.ts +3 -7
  375. package/dist/types/adapter/netlify/conninfo.d.ts +4 -1
  376. package/dist/types/adapter/netlify/handler.d.ts +6 -1
  377. package/dist/types/adapter/netlify/index.d.ts +3 -5
  378. package/dist/types/adapter/netlify/mod.d.ts +3 -2
  379. package/dist/types/adapter/service-worker/handler.d.ts +9 -8
  380. package/dist/types/adapter/service-worker/index.d.ts +6 -9
  381. package/dist/types/adapter/service-worker/types.d.ts +12 -8
  382. package/dist/types/adapter/vercel/conninfo.d.ts +6 -1
  383. package/dist/types/adapter/vercel/handler.d.ts +6 -1
  384. package/dist/types/adapter/vercel/index.d.ts +3 -6
  385. package/dist/types/client/client.d.ts +5 -3
  386. package/dist/types/client/fetch-result-please.d.ts +21 -19
  387. package/dist/types/client/index.d.ts +5 -7
  388. package/dist/types/client/types.d.ts +134 -160
  389. package/dist/types/client/utils.d.ts +6 -4
  390. package/dist/types/compose.d.ts +4 -2
  391. package/dist/types/context.d.ts +335 -336
  392. package/dist/types/helper/accepts/accepts.d.ts +11 -9
  393. package/dist/types/helper/accepts/index.d.ts +2 -5
  394. package/dist/types/helper/adapter/index.d.ts +4 -6
  395. package/dist/types/helper/conninfo/index.d.ts +2 -5
  396. package/dist/types/helper/conninfo/types.d.ts +25 -23
  397. package/dist/types/helper/cookie/index.d.ts +10 -13
  398. package/dist/types/helper/css/common.d.ts +11 -10
  399. package/dist/types/helper/css/index.d.ts +25 -28
  400. package/dist/types/helper/dev/index.d.ts +10 -13
  401. package/dist/types/helper/factory/index.d.ts +26 -74
  402. package/dist/types/helper/html/index.d.ts +4 -7
  403. package/dist/types/helper/proxy/index.d.ts +19 -22
  404. package/dist/types/helper/route/index.d.ts +4 -2
  405. package/dist/types/helper/ssg/index.d.ts +4 -7
  406. package/dist/types/helper/ssg/middleware.d.ts +8 -7
  407. package/dist/types/helper/ssg/plugins.d.ts +3 -1
  408. package/dist/types/helper/ssg/ssg.d.ts +38 -36
  409. package/dist/types/helper/ssg/utils.d.ts +5 -4
  410. package/dist/types/helper/streaming/index.d.ts +4 -8
  411. package/dist/types/helper/streaming/sse.d.ts +10 -8
  412. package/dist/types/helper/streaming/stream.d.ts +4 -2
  413. package/dist/types/helper/streaming/text.d.ts +4 -2
  414. package/dist/types/helper/streaming/utils.d.ts +2 -0
  415. package/dist/types/helper/testing/index.d.ts +7 -10
  416. package/dist/types/helper/websocket/index.d.ts +30 -33
  417. package/dist/types/hono-base.d.ts +208 -211
  418. package/dist/types/hono.d.ts +11 -10
  419. package/dist/types/http-exception.d.ts +20 -23
  420. package/dist/types/index.d.ts +6 -37
  421. package/dist/types/jsx/base.d.ts +36 -35
  422. package/dist/types/jsx/children.d.ts +8 -6
  423. package/dist/types/jsx/components.d.ts +8 -5
  424. package/dist/types/jsx/constants.d.ts +2 -0
  425. package/dist/types/jsx/context.d.ts +9 -7
  426. package/dist/types/jsx/dom/client.d.ts +8 -10
  427. package/dist/types/jsx/dom/components.d.ts +9 -6
  428. package/dist/types/jsx/dom/context.d.ts +3 -1
  429. package/dist/types/jsx/dom/css.d.ts +26 -30
  430. package/dist/types/jsx/dom/hooks/index.d.ts +11 -13
  431. package/dist/types/jsx/dom/index.d.ts +78 -83
  432. package/dist/types/jsx/dom/intrinsic-element/components.d.ts +9 -5
  433. package/dist/types/jsx/dom/jsx-dev-runtime.d.ts +4 -6
  434. package/dist/types/jsx/dom/jsx-runtime.d.ts +3 -7
  435. package/dist/types/jsx/dom/render.d.ts +32 -51
  436. package/dist/types/jsx/dom/server.d.ts +86 -85
  437. package/dist/types/jsx/dom/utils.d.ts +2 -0
  438. package/dist/types/jsx/hooks/index.d.ts +16 -17
  439. package/dist/types/jsx/index.d.ts +70 -73
  440. package/dist/types/jsx/intrinsic-element/common.d.ts +3 -1
  441. package/dist/types/jsx/intrinsic-element/components.d.ts +7 -4
  442. package/dist/types/jsx/intrinsic-elements.d.ts +708 -708
  443. package/dist/types/jsx/jsx-dev-runtime.d.ts +4 -7
  444. package/dist/types/jsx/jsx-runtime.d.ts +7 -10
  445. package/dist/types/jsx/streaming.d.ts +9 -10
  446. package/dist/types/jsx/types.d.ts +11 -13
  447. package/dist/types/jsx/utils.d.ts +2 -0
  448. package/dist/types/middleware/basic-auth/index.d.ts +17 -20
  449. package/dist/types/middleware/bearer-auth/index.d.ts +46 -49
  450. package/dist/types/middleware/body-limit/index.d.ts +6 -9
  451. package/dist/types/middleware/cache/index.d.ts +13 -15
  452. package/dist/types/middleware/combine/index.d.ts +4 -7
  453. package/dist/types/middleware/compress/index.d.ts +8 -10
  454. package/dist/types/middleware/context-storage/index.d.ts +4 -6
  455. package/dist/types/middleware/cors/index.d.ts +10 -13
  456. package/dist/types/middleware/csrf/index.d.ts +6 -9
  457. package/dist/types/middleware/etag/digest.d.ts +2 -0
  458. package/dist/types/middleware/etag/index.d.ts +6 -9
  459. package/dist/types/middleware/ip-restriction/index.d.ts +11 -13
  460. package/dist/types/middleware/jsx-renderer/index.d.ts +11 -12
  461. package/dist/types/middleware/jwk/index.d.ts +2 -1
  462. package/dist/types/middleware/jwk/jwk.d.ts +20 -23
  463. package/dist/types/middleware/jwt/index.d.ts +6 -6
  464. package/dist/types/middleware/jwt/jwt.d.ts +28 -30
  465. package/dist/types/middleware/language/index.d.ts +5 -5
  466. package/dist/types/middleware/language/language.d.ts +42 -44
  467. package/dist/types/middleware/logger/index.d.ts +3 -6
  468. package/dist/types/middleware/method-not-allowed/index.d.ts +7 -10
  469. package/dist/types/middleware/method-override/index.d.ts +14 -17
  470. package/dist/types/middleware/powered-by/index.d.ts +8 -11
  471. package/dist/types/middleware/pretty-json/index.d.ts +18 -21
  472. package/dist/types/middleware/request-id/index.d.ts +5 -5
  473. package/dist/types/middleware/request-id/request-id.d.ts +9 -11
  474. package/dist/types/middleware/secure-headers/index.d.ts +5 -6
  475. package/dist/types/middleware/secure-headers/permissions-policy.d.ts +2 -1
  476. package/dist/types/middleware/secure-headers/secure-headers.d.ts +55 -58
  477. package/dist/types/middleware/serve-static/index.d.ts +24 -24
  478. package/dist/types/middleware/serve-static/path.d.ts +2 -0
  479. package/dist/types/middleware/timeout/index.d.ts +5 -7
  480. package/dist/types/middleware/timing/index.d.ts +5 -5
  481. package/dist/types/middleware/timing/timing.d.ts +17 -21
  482. package/dist/types/middleware/trailing-slash/index.d.ts +35 -38
  483. package/dist/types/preset/quick.d.ts +6 -9
  484. package/dist/types/preset/tiny.d.ts +6 -9
  485. package/dist/types/request/constants.d.ts +2 -0
  486. package/dist/types/request.d.ts +288 -287
  487. package/dist/types/router/linear-router/index.d.ts +2 -5
  488. package/dist/types/router/linear-router/router.d.ts +7 -5
  489. package/dist/types/router/pattern-router/index.d.ts +2 -5
  490. package/dist/types/router/pattern-router/router.d.ts +7 -5
  491. package/dist/types/router/reg-exp-router/index.d.ts +3 -6
  492. package/dist/types/router/reg-exp-router/matcher.d.ts +3 -1
  493. package/dist/types/router/reg-exp-router/node.d.ts +6 -4
  494. package/dist/types/router/reg-exp-router/prepared-router.d.ts +11 -11
  495. package/dist/types/router/reg-exp-router/router.d.ts +10 -9
  496. package/dist/types/router/reg-exp-router/trie.d.ts +7 -5
  497. package/dist/types/router/smart-router/index.d.ts +2 -5
  498. package/dist/types/router/smart-router/router.d.ts +11 -9
  499. package/dist/types/router/trie-router/index.d.ts +2 -5
  500. package/dist/types/router/trie-router/node.d.ts +6 -4
  501. package/dist/types/router/trie-router/router.d.ts +7 -5
  502. package/dist/types/router/utils.d.ts +2 -0
  503. package/dist/types/router.d.ts +23 -22
  504. package/dist/types/types.d.ts +146 -506
  505. package/dist/types/utils/accept.d.ts +5 -3
  506. package/dist/types/utils/basic-auth.d.ts +4 -2
  507. package/dist/types/utils/body.d.ts +46 -51
  508. package/dist/types/utils/buffer.d.ts +7 -6
  509. package/dist/types/utils/color.d.ts +2 -0
  510. package/dist/types/utils/compress.d.ts +2 -0
  511. package/dist/types/utils/concurrent.d.ts +6 -4
  512. package/dist/types/utils/constants.d.ts +2 -0
  513. package/dist/types/utils/cookie.d.ts +20 -19
  514. package/dist/types/utils/crypto.d.ts +5 -8
  515. package/dist/types/utils/encode.d.ts +2 -0
  516. package/dist/types/utils/filepath.d.ts +5 -4
  517. package/dist/types/utils/handler.d.ts +2 -0
  518. package/dist/types/utils/headers.d.ts +2 -0
  519. package/dist/types/utils/html.d.ts +11 -10
  520. package/dist/types/utils/http-status.d.ts +2 -0
  521. package/dist/types/utils/ipaddr.d.ts +4 -6
  522. package/dist/types/utils/jwt/index.d.ts +18 -12
  523. package/dist/types/utils/jwt/jwa.d.ts +15 -13
  524. package/dist/types/utils/jwt/jws.d.ts +4 -7
  525. package/dist/types/utils/jwt/jwt.d.ts +26 -29
  526. package/dist/types/utils/jwt/types.d.ts +48 -45
  527. package/dist/types/utils/jwt/utf8.d.ts +2 -0
  528. package/dist/types/utils/mime.d.ts +59 -57
  529. package/dist/types/utils/stream.d.ts +27 -25
  530. package/dist/types/utils/types.d.ts +14 -27
  531. package/dist/types/utils/url.d.ts +2 -1
  532. package/dist/types/validator/index.d.ts +3 -7
  533. package/dist/types/validator/utils.d.ts +6 -9
  534. package/dist/types/validator/validator.d.ts +11 -10
  535. package/dist/types.js +4 -6
  536. package/dist/utils/accept.js +185 -212
  537. package/dist/utils/basic-auth.js +18 -21
  538. package/dist/utils/body.js +87 -92
  539. package/dist/utils/buffer.js +44 -71
  540. package/dist/utils/color.js +33 -21
  541. package/dist/utils/compress.js +11 -5
  542. package/dist/utils/concurrent.js +29 -38
  543. package/dist/utils/constants.js +7 -5
  544. package/dist/utils/cookie.js +114 -163
  545. package/dist/utils/crypto.js +30 -40
  546. package/dist/utils/encode.js +30 -26
  547. package/dist/utils/filepath.js +23 -33
  548. package/dist/utils/handler.js +10 -11
  549. package/dist/utils/headers.js +1 -0
  550. package/dist/utils/html.js +97 -117
  551. package/dist/utils/http-status.js +1 -0
  552. package/dist/utils/ipaddr.js +227 -279
  553. package/dist/utils/jwt/index.js +12 -4
  554. package/dist/utils/jwt/jwa.js +24 -20
  555. package/dist/utils/jwt/jws.js +115 -174
  556. package/dist/utils/jwt/jwt.js +120 -198
  557. package/dist/utils/jwt/types.js +79 -95
  558. package/dist/utils/jwt/utf8.js +9 -7
  559. package/dist/utils/mime.js +74 -79
  560. package/dist/utils/stream.js +86 -88
  561. package/dist/utils/types.js +1 -0
  562. package/dist/utils/url.js +187 -215
  563. package/dist/validator/index.js +1 -4
  564. package/dist/validator/utils.js +1 -0
  565. package/dist/validator/validator.js +61 -83
  566. package/package.json +27 -27
@@ -1,48 +1,47 @@
1
- import { HonoRequest } from './request';
2
- import type { Result } from './router';
3
- import type { Env, FetchEventLike, H, Input, NotFoundHandler, RouterRoute, TypedResponse } from './types';
4
- import type { ResponseHeader } from './utils/headers';
5
- import type { ContentfulStatusCode, RedirectStatusCode, StatusCode } from './utils/http-status';
6
- import type { BaseMime } from './utils/mime';
7
- import type { InvalidJSONValue, IsAny, JSONParsed, JSONValue } from './utils/types';
1
+ import { Result } from "./router.js";
2
+ import { ResponseHeader } from "./utils/headers.js";
3
+ import { ContentfulStatusCode, RedirectStatusCode, StatusCode } from "./utils/http-status.js";
4
+ import { InvalidJSONValue, IsAny, JSONParsed, JSONValue } from "./utils/types.js";
5
+ import { Env, FetchEventLike, H, Input, NotFoundHandler, RouterRoute, TypedResponse } from "./types.js";
6
+ import { HonoRequest } from "./request.js";
7
+ import { BaseMime } from "./utils/mime.js";
8
+ //#region src/context.d.ts
8
9
  type HeaderRecord = Record<'Content-Type', BaseMime> | Record<ResponseHeader, string | string[]> | Record<string, string | string[]>;
9
10
  /**
10
- * Data type can be a string, ArrayBuffer, Uint8Array (buffer), or ReadableStream.
11
+ * Data type can be a string, ArrayBuffer, Blob, Uint8Array (buffer), or ReadableStream.
11
12
  */
12
- export type Data = string | ArrayBuffer | ReadableStream | Uint8Array<ArrayBuffer>;
13
+ export type Data = string | ArrayBuffer | Blob | ReadableStream | Uint8Array<ArrayBuffer>;
13
14
  /**
14
15
  * Interface for the execution context in a web worker or similar environment.
15
16
  */
16
17
  export interface ExecutionContext {
17
- /**
18
- * Extends the lifetime of the event callback until the promise is settled.
19
- *
20
- * @param promise - A promise to wait for.
21
- */
22
- waitUntil(promise: Promise<unknown>): void;
23
- /**
24
- * Allows the event to be passed through to subsequent event listeners.
25
- */
26
- passThroughOnException(): void;
27
- /**
28
- * For compatibility with Wrangler 4.x.
29
- */
30
- props: any;
31
- /**
32
- * For compatibility with Wrangler 4.x.
33
- */
34
- exports?: any;
18
+ /**
19
+ * Extends the lifetime of the event callback until the promise is settled.
20
+ *
21
+ * @param promise - A promise to wait for.
22
+ */
23
+ waitUntil(promise: Promise<unknown>): void;
24
+ /**
25
+ * Allows the event to be passed through to subsequent event listeners.
26
+ */
27
+ passThroughOnException(): void;
28
+ /**
29
+ * For compatibility with Wrangler 4.x.
30
+ */
31
+ props: any;
32
+ /**
33
+ * For compatibility with Wrangler 4.x.
34
+ */
35
+ exports?: any;
35
36
  }
36
37
  /**
37
38
  * Interface for context variable mapping.
38
39
  */
39
- export interface ContextVariableMap {
40
- }
40
+ export interface ContextVariableMap {}
41
41
  /**
42
42
  * Interface for context renderer.
43
43
  */
44
- export interface ContextRenderer {
45
- }
44
+ export interface ContextRenderer {}
46
45
  /**
47
46
  * Interface representing a renderer for content.
48
47
  *
@@ -51,7 +50,7 @@ export interface ContextRenderer {
51
50
  * @returns {Response | Promise<Response>} - The response after rendering the content, which can be either a Response or a Promise resolving to a Response.
52
51
  */
53
52
  interface DefaultRenderer {
54
- (content: string | Promise<string>): Response | Promise<Response>;
53
+ (content: string | Promise<string>): Response | Promise<Response>;
55
54
  }
56
55
  /**
57
56
  * Renderer type which can either be a ContextRenderer or DefaultRenderer.
@@ -68,8 +67,8 @@ export type Layout<T = Record<string, any>> = (props: T) => any;
68
67
  * @template E - Environment type.
69
68
  */
70
69
  interface Get<E extends Env> {
71
- <Key extends keyof E['Variables']>(key: Key): E['Variables'][Key];
72
- <Key extends keyof ContextVariableMap>(key: Key): ContextVariableMap[Key];
70
+ <Key extends keyof E['Variables']>(key: Key): E['Variables'][Key];
71
+ <Key extends keyof ContextVariableMap>(key: Key): ContextVariableMap[Key];
73
72
  }
74
73
  /**
75
74
  * Interface for setting context variables.
@@ -77,24 +76,24 @@ interface Get<E extends Env> {
77
76
  * @template E - Environment type.
78
77
  */
79
78
  interface Set<E extends Env> {
80
- <Key extends keyof E['Variables']>(key: Key, value: E['Variables'][Key]): void;
81
- <Key extends keyof ContextVariableMap>(key: Key, value: ContextVariableMap[Key]): void;
79
+ <Key extends keyof E['Variables']>(key: Key, value: E['Variables'][Key]): void;
80
+ <Key extends keyof ContextVariableMap>(key: Key, value: ContextVariableMap[Key]): void;
82
81
  }
83
82
  /**
84
83
  * Interface for creating a new response.
85
84
  */
86
85
  interface NewResponse {
87
- (data: Data | null, status?: StatusCode, headers?: HeaderRecord): Response;
88
- (data: Data | null, init?: ResponseOrInit): Response;
86
+ (data: Data | null, status?: StatusCode, headers?: HeaderRecord): Response;
87
+ (data: Data | null, init?: ResponseOrInit): Response;
89
88
  }
90
89
  /**
91
90
  * Interface for responding with a body.
92
91
  */
93
92
  interface BodyRespond {
94
- <T extends Data, U extends ContentfulStatusCode>(data: T, status?: U, headers?: HeaderRecord): Response & TypedResponse<T, U, 'body'>;
95
- <T extends Data, U extends ContentfulStatusCode>(data: T, init?: ResponseOrInit<U>): Response & TypedResponse<T, U, 'body'>;
96
- <T extends null, U extends StatusCode>(data: T, status?: U, headers?: HeaderRecord): Response & TypedResponse<null, U, 'body'>;
97
- <T extends null, U extends StatusCode>(data: T, init?: ResponseOrInit<U>): Response & TypedResponse<null, U, 'body'>;
93
+ <T extends Data, U extends ContentfulStatusCode>(data: T, status?: U, headers?: HeaderRecord): Response & TypedResponse<T, U, 'body'>;
94
+ <T extends Data, U extends ContentfulStatusCode>(data: T, init?: ResponseOrInit<U>): Response & TypedResponse<T, U, 'body'>;
95
+ <T extends null, U extends StatusCode>(data: T, status?: U, headers?: HeaderRecord): Response & TypedResponse<null, U, 'body'>;
96
+ <T extends null, U extends StatusCode>(data: T, init?: ResponseOrInit<U>): Response & TypedResponse<null, U, 'body'>;
98
97
  }
99
98
  /**
100
99
  * Interface for responding with text.
@@ -110,8 +109,8 @@ interface BodyRespond {
110
109
  * @returns {Response & TypedResponse<T, U, 'text'>} - The response after rendering the text content, typed with the provided text and status code types.
111
110
  */
112
111
  interface TextRespond {
113
- <T extends string, U extends ContentfulStatusCode = ContentfulStatusCode>(text: T, status?: U, headers?: HeaderRecord): Response & TypedResponse<T, U, 'text'>;
114
- <T extends string, U extends ContentfulStatusCode = ContentfulStatusCode>(text: T, init?: ResponseOrInit<U>): Response & TypedResponse<T, U, 'text'>;
112
+ <T extends string, U extends ContentfulStatusCode = ContentfulStatusCode>(text: T, status?: U, headers?: HeaderRecord): Response & TypedResponse<T, U, 'text'>;
113
+ <T extends string, U extends ContentfulStatusCode = ContentfulStatusCode>(text: T, init?: ResponseOrInit<U>): Response & TypedResponse<T, U, 'text'>;
115
114
  }
116
115
  /**
117
116
  * Interface for responding with JSON.
@@ -127,8 +126,8 @@ interface TextRespond {
127
126
  * @returns {JSONRespondReturn<T, U>} - The response after rendering the JSON object, typed with the provided object and status code types.
128
127
  */
129
128
  interface JSONRespond {
130
- <T extends JSONValue | {} | InvalidJSONValue, U extends ContentfulStatusCode = ContentfulStatusCode>(object: T, status?: U, headers?: HeaderRecord): JSONRespondReturn<T, U>;
131
- <T extends JSONValue | {} | InvalidJSONValue, U extends ContentfulStatusCode = ContentfulStatusCode>(object: T, init?: ResponseOrInit<U>): JSONRespondReturn<T, U>;
129
+ <T extends JSONValue | {} | InvalidJSONValue, U extends ContentfulStatusCode = ContentfulStatusCode>(object: T, status?: U, headers?: HeaderRecord): JSONRespondReturn<T, U>;
130
+ <T extends JSONValue | {} | InvalidJSONValue, U extends ContentfulStatusCode = ContentfulStatusCode>(object: T, init?: ResponseOrInit<U>): JSONRespondReturn<T, U>;
132
131
  }
133
132
  /**
134
133
  * @template T - The type of the JSON value or simplified unknown type.
@@ -148,8 +147,8 @@ type JSONRespondReturn<T extends JSONValue | {} | InvalidJSONValue, U extends Co
148
147
  * @returns A Response object or a Promise that resolves to a Response object.
149
148
  */
150
149
  interface HTMLRespond {
151
- <T extends string | Promise<string>>(html: T, status?: ContentfulStatusCode, headers?: HeaderRecord): T extends string ? Response : Promise<Response>;
152
- <T extends string | Promise<string>>(html: T, init?: ResponseOrInit<ContentfulStatusCode>): T extends string ? Response : Promise<Response>;
150
+ <T extends string | Promise<string>>(html: T, status?: ContentfulStatusCode, headers?: HeaderRecord): T extends string ? Response : Promise<Response>;
151
+ <T extends string | Promise<string>>(html: T, init?: ResponseOrInit<ContentfulStatusCode>): T extends string ? Response : Promise<Response>;
153
152
  }
154
153
  /**
155
154
  * Options for configuring the context.
@@ -157,303 +156,303 @@ interface HTMLRespond {
157
156
  * @template E - Environment type.
158
157
  */
159
158
  type ContextOptions<E extends Env> = {
160
- /**
161
- * Bindings for the environment.
162
- */
163
- env: E['Bindings'];
164
- /**
165
- * Execution context for the request.
166
- */
167
- executionCtx?: FetchEventLike | ExecutionContext | undefined;
168
- /**
169
- * Handler for not found responses.
170
- */
171
- notFoundHandler?: NotFoundHandler<E>;
172
- matchResult?: Result<[H, RouterRoute]>;
173
- path?: string;
159
+ /**
160
+ * Bindings for the environment.
161
+ */
162
+ env: E['Bindings'];
163
+ /**
164
+ * Execution context for the request.
165
+ */
166
+ executionCtx?: FetchEventLike | ExecutionContext | undefined;
167
+ /**
168
+ * Handler for not found responses.
169
+ */
170
+ notFoundHandler?: NotFoundHandler<E>;
171
+ matchResult?: Result<[H, RouterRoute]>;
172
+ path?: string;
174
173
  };
175
174
  interface SetHeadersOptions {
176
- append?: boolean;
175
+ append?: boolean;
177
176
  }
178
177
  interface SetHeaders {
179
- (name: 'Content-Type', value?: BaseMime, options?: SetHeadersOptions): void;
180
- (name: ResponseHeader, value?: string, options?: SetHeadersOptions): void;
181
- (name: string, value?: string, options?: SetHeadersOptions): void;
178
+ (name: 'Content-Type', value?: BaseMime, options?: SetHeadersOptions): void;
179
+ (name: ResponseHeader, value?: string, options?: SetHeadersOptions): void;
180
+ (name: string, value?: string, options?: SetHeadersOptions): void;
182
181
  }
183
182
  type ResponseHeadersInit = [string, string][] | Record<'Content-Type', BaseMime> | Record<ResponseHeader, string> | Record<string, string> | Headers;
184
183
  interface ResponseInit<T extends StatusCode = StatusCode> {
185
- headers?: ResponseHeadersInit;
186
- status?: T;
187
- statusText?: string;
184
+ headers?: ResponseHeadersInit;
185
+ status?: T;
186
+ statusText?: string;
188
187
  }
189
188
  type ResponseOrInit<T extends StatusCode = StatusCode> = ResponseInit<T> | Response;
190
189
  export declare const TEXT_PLAIN = "text/plain; charset=UTF-8";
191
190
  export declare class Context<E extends Env = any, P extends string = any, I extends Input = {}> {
192
-
193
- /**
194
- * `.env` can get bindings (environment variables, secrets, KV namespaces, D1 database, R2 bucket etc.) in Cloudflare Workers.
195
- *
196
- * @see {@link https://hono.dev/docs/api/context#env}
197
- *
198
- * @example
199
- * ```ts
200
- * // Environment object for Cloudflare Workers
201
- * app.get('*', async c => {
202
- * const counter = c.env.COUNTER
203
- * })
204
- * ```
205
- */
206
- env: E['Bindings'];
207
- finalized: boolean;
208
- /**
209
- * `.error` can get the error object from the middleware if the Handler throws an error.
210
- *
211
- * @see {@link https://hono.dev/docs/api/context#error}
212
- *
213
- * @example
214
- * ```ts
215
- * app.use('*', async (c, next) => {
216
- * await next()
217
- * if (c.error) {
218
- * // do something...
219
- * }
220
- * })
221
- * ```
222
- */
223
- error: Error | undefined;
224
- /**
225
- * Creates an instance of the Context class.
226
- *
227
- * @param req - The Request object.
228
- * @param options - Optional configuration options for the context.
229
- */
230
- constructor(req: Request, options?: ContextOptions<E>);
231
- /**
232
- * `.req` is the instance of {@link HonoRequest}.
233
- */
234
- get req(): HonoRequest<P, I['out']>;
235
- /**
236
- * @see {@link https://hono.dev/docs/api/context#event}
237
- * The FetchEvent associated with the current request.
238
- *
239
- * @throws Will throw an error if the context does not have a FetchEvent.
240
- */
241
- get event(): FetchEventLike;
242
- /**
243
- * @see {@link https://hono.dev/docs/api/context#executionctx}
244
- * The ExecutionContext associated with the current request.
245
- *
246
- * @throws Will throw an error if the context does not have an ExecutionContext.
247
- */
248
- get executionCtx(): ExecutionContext;
249
- /**
250
- * @see {@link https://hono.dev/docs/api/context#res}
251
- * The Response object for the current request.
252
- */
253
- get res(): Response;
254
- /**
255
- * Sets the Response object for the current request.
256
- *
257
- * @param _res - The Response object to set.
258
- */
259
- set res(_res: Response | undefined);
260
- /**
261
- * `.render()` can create a response within a layout.
262
- *
263
- * @see {@link https://hono.dev/docs/api/context#render-setrenderer}
264
- *
265
- * @example
266
- * ```ts
267
- * app.get('/', (c) => {
268
- * return c.render('Hello!')
269
- * })
270
- * ```
271
- */
272
- render: Renderer;
273
- /**
274
- * Sets the layout for the response.
275
- *
276
- * @param layout - The layout to set.
277
- * @returns The layout function.
278
- */
279
- setLayout: (layout: Layout<PropsForRenderer & {
280
- Layout: Layout;
281
- }>) => Layout<PropsForRenderer & {
282
- Layout: Layout;
283
- }>;
284
- /**
285
- * Gets the current layout for the response.
286
- *
287
- * @returns The current layout function.
288
- */
289
- getLayout: () => Layout<PropsForRenderer & {
290
- Layout: Layout;
291
- }> | undefined;
292
- /**
293
- * `.setRenderer()` can set the layout in the custom middleware.
294
- *
295
- * @see {@link https://hono.dev/docs/api/context#render-setrenderer}
296
- *
297
- * @example
298
- * ```tsx
299
- * app.use('*', async (c, next) => {
300
- * c.setRenderer((content) => {
301
- * return c.html(
302
- * <html>
303
- * <body>
304
- * <p>{content}</p>
305
- * </body>
306
- * </html>
307
- * )
308
- * })
309
- * await next()
310
- * })
311
- * ```
312
- */
313
- setRenderer: (renderer: Renderer) => void;
314
- /**
315
- * `.header()` can set headers.
316
- *
317
- * @see {@link https://hono.dev/docs/api/context#header}
318
- *
319
- * @example
320
- * ```ts
321
- * app.get('/welcome', (c) => {
322
- * // Set headers
323
- * c.header('X-Message', 'Hello!')
324
- * c.header('Content-Type', 'text/plain')
325
- *
326
- * // Append multiple headers using the append option (e.g. Vary)
327
- * c.header('Vary', 'Accept-Encoding', { append: true })
328
- * c.header('Vary', 'User-Agent', { append: true })
329
- *
330
- * return c.body('Thank you for coming')
331
- * })
332
- * ```
333
- */
334
- header: SetHeaders;
335
- status: (status: StatusCode) => void;
336
- /**
337
- * `.set()` can set the value specified by the key.
338
- *
339
- * @see {@link https://hono.dev/docs/api/context#set-get}
340
- *
341
- * @example
342
- * ```ts
343
- * app.use('*', async (c, next) => {
344
- * c.set('message', 'Hono is hot!!')
345
- * await next()
346
- * })
347
- * ```
348
- */
349
- set: Set<IsAny<E> extends true ? {
350
- Variables: ContextVariableMap & Record<PropertyKey, any>;
351
- } : E>;
352
- /**
353
- * `.get()` can use the value specified by the key.
354
- *
355
- * @see {@link https://hono.dev/docs/api/context#set-get}
356
- *
357
- * @example
358
- * ```ts
359
- * app.get('/', (c) => {
360
- * const message = c.get('message')
361
- * return c.text(`The message is "${message}"`)
362
- * })
363
- * ```
364
- */
365
- get: Get<IsAny<E> extends true ? {
366
- Variables: ContextVariableMap & Record<PropertyKey, any>;
367
- } : E>;
368
- /**
369
- * `.var` can access the value of a variable.
370
- *
371
- * @see {@link https://hono.dev/docs/api/context#var}
372
- *
373
- * @example
374
- * ```ts
375
- * const result = c.var.client.oneMethod()
376
- * ```
377
- */
378
- get var(): Readonly<ContextVariableMap & (IsAny<E['Variables']> extends true ? Record<string, any> : E['Variables'])>;
379
- newResponse: NewResponse;
380
- /**
381
- * `.body()` can return the HTTP response.
382
- * You can set headers with `.header()` and set HTTP status code with `.status`.
383
- * This can also be set in `.text()`, `.json()` and so on.
384
- *
385
- * @see {@link https://hono.dev/docs/api/context#body}
386
- *
387
- * @example
388
- * ```ts
389
- * app.get('/welcome', (c) => {
390
- * // Set headers
391
- * c.header('X-Message', 'Hello!')
392
- * c.header('Content-Type', 'text/plain')
393
- * // Set HTTP status code
394
- * c.status(201)
395
- *
396
- * // Return the response body
397
- * return c.body('Thank you for coming')
398
- * })
399
- * ```
400
- */
401
- body: BodyRespond;
402
- /**
403
- * `.text()` can render text as `Content-Type:text/plain`.
404
- *
405
- * @see {@link https://hono.dev/docs/api/context#text}
406
- *
407
- * @example
408
- * ```ts
409
- * app.get('/say', (c) => {
410
- * return c.text('Hello!')
411
- * })
412
- * ```
413
- */
414
- text: TextRespond;
415
- /**
416
- * `.json()` can render JSON as `Content-Type:application/json`.
417
- *
418
- * @see {@link https://hono.dev/docs/api/context#json}
419
- *
420
- * @example
421
- * ```ts
422
- * app.get('/api', (c) => {
423
- * return c.json({ message: 'Hello!' })
424
- * })
425
- * ```
426
- */
427
- json: JSONRespond;
428
- html: HTMLRespond;
429
- /**
430
- * `.redirect()` can Redirect, default status code is 302.
431
- *
432
- * @see {@link https://hono.dev/docs/api/context#redirect}
433
- *
434
- * @example
435
- * ```ts
436
- * app.get('/redirect', (c) => {
437
- * return c.redirect('/')
438
- * })
439
- * app.get('/redirect-permanently', (c) => {
440
- * return c.redirect('/', 301)
441
- * })
442
- * ```
443
- */
444
- redirect: <T extends RedirectStatusCode = 302>(location: string | URL, status?: T) => Response & TypedResponse<undefined, T, "redirect">;
445
- /**
446
- * `.notFound()` can return the Not Found Response.
447
- *
448
- * @see {@link https://hono.dev/docs/api/context#notfound}
449
- *
450
- * @example
451
- * ```ts
452
- * app.get('/notfound', (c) => {
453
- * return c.notFound()
454
- * })
455
- * ```
456
- */
457
- notFound: () => ReturnType<NotFoundHandler>;
191
+
192
+ /**
193
+ * `.env` can get bindings (environment variables, secrets, KV namespaces, D1 database, R2 bucket etc.) in Cloudflare Workers.
194
+ *
195
+ * @see {@link https://hono.dev/docs/api/context#env}
196
+ *
197
+ * @example
198
+ * ```ts
199
+ * // Environment object for Cloudflare Workers
200
+ * app.get('*', async c => {
201
+ * const counter = c.env.COUNTER
202
+ * })
203
+ * ```
204
+ */
205
+ env: E['Bindings'];
206
+ finalized: boolean;
207
+ /**
208
+ * `.error` can get the error object from the middleware if the Handler throws an error.
209
+ *
210
+ * @see {@link https://hono.dev/docs/api/context#error}
211
+ *
212
+ * @example
213
+ * ```ts
214
+ * app.use('*', async (c, next) => {
215
+ * await next()
216
+ * if (c.error) {
217
+ * // do something...
218
+ * }
219
+ * })
220
+ * ```
221
+ */
222
+ error: Error | undefined;
223
+ /**
224
+ * Creates an instance of the Context class.
225
+ *
226
+ * @param req - The Request object.
227
+ * @param options - Optional configuration options for the context.
228
+ */
229
+ constructor(req: Request, options?: ContextOptions<E>);
230
+ /**
231
+ * `.req` is the instance of {@link HonoRequest}.
232
+ */
233
+ get req(): HonoRequest<P, I['out']>;
234
+ /**
235
+ * @see {@link https://hono.dev/docs/api/context#event}
236
+ * The FetchEvent associated with the current request.
237
+ *
238
+ * @throws Will throw an error if the context does not have a FetchEvent.
239
+ */
240
+ get event(): FetchEventLike;
241
+ /**
242
+ * @see {@link https://hono.dev/docs/api/context#executionctx}
243
+ * The ExecutionContext associated with the current request.
244
+ *
245
+ * @throws Will throw an error if the context does not have an ExecutionContext.
246
+ */
247
+ get executionCtx(): ExecutionContext;
248
+ /**
249
+ * @see {@link https://hono.dev/docs/api/context#res}
250
+ * The Response object for the current request.
251
+ */
252
+ get res(): Response;
253
+ /**
254
+ * Sets the Response object for the current request.
255
+ *
256
+ * @param _res - The Response object to set.
257
+ */
258
+ set res(_res: Response | undefined);
259
+ /**
260
+ * `.render()` can create a response within a layout.
261
+ *
262
+ * @see {@link https://hono.dev/docs/api/context#render-setrenderer}
263
+ *
264
+ * @example
265
+ * ```ts
266
+ * app.get('/', (c) => {
267
+ * return c.render('Hello!')
268
+ * })
269
+ * ```
270
+ */
271
+ render: Renderer;
272
+ /**
273
+ * Sets the layout for the response.
274
+ *
275
+ * @param layout - The layout to set.
276
+ * @returns The layout function.
277
+ */
278
+ setLayout: (layout: Layout<PropsForRenderer & {
279
+ Layout: Layout;
280
+ }>) => Layout<PropsForRenderer & {
281
+ Layout: Layout;
282
+ }>;
283
+ /**
284
+ * Gets the current layout for the response.
285
+ *
286
+ * @returns The current layout function.
287
+ */
288
+ getLayout: () => Layout<PropsForRenderer & {
289
+ Layout: Layout;
290
+ }> | undefined;
291
+ /**
292
+ * `.setRenderer()` can set the layout in the custom middleware.
293
+ *
294
+ * @see {@link https://hono.dev/docs/api/context#render-setrenderer}
295
+ *
296
+ * @example
297
+ * ```tsx
298
+ * app.use('*', async (c, next) => {
299
+ * c.setRenderer((content) => {
300
+ * return c.html(
301
+ * <html>
302
+ * <body>
303
+ * <p>{content}</p>
304
+ * </body>
305
+ * </html>
306
+ * )
307
+ * })
308
+ * await next()
309
+ * })
310
+ * ```
311
+ */
312
+ setRenderer: (renderer: Renderer) => void;
313
+ /**
314
+ * `.header()` can set headers.
315
+ *
316
+ * @see {@link https://hono.dev/docs/api/context#header}
317
+ *
318
+ * @example
319
+ * ```ts
320
+ * app.get('/welcome', (c) => {
321
+ * // Set headers
322
+ * c.header('X-Message', 'Hello!')
323
+ * c.header('Content-Type', 'text/plain')
324
+ *
325
+ * // Append multiple headers using the append option (e.g. Vary)
326
+ * c.header('Vary', 'Accept-Encoding', { append: true })
327
+ * c.header('Vary', 'User-Agent', { append: true })
328
+ *
329
+ * return c.body('Thank you for coming')
330
+ * })
331
+ * ```
332
+ */
333
+ header: SetHeaders;
334
+ status: (status: StatusCode) => void;
335
+ /**
336
+ * `.set()` can set the value specified by the key.
337
+ *
338
+ * @see {@link https://hono.dev/docs/api/context#set-get}
339
+ *
340
+ * @example
341
+ * ```ts
342
+ * app.use('*', async (c, next) => {
343
+ * c.set('message', 'Hono is hot!!')
344
+ * await next()
345
+ * })
346
+ * ```
347
+ */
348
+ set: Set<IsAny<E> extends true ? {
349
+ Variables: ContextVariableMap & Record<PropertyKey, any>;
350
+ } : E>;
351
+ /**
352
+ * `.get()` can use the value specified by the key.
353
+ *
354
+ * @see {@link https://hono.dev/docs/api/context#set-get}
355
+ *
356
+ * @example
357
+ * ```ts
358
+ * app.get('/', (c) => {
359
+ * const message = c.get('message')
360
+ * return c.text(`The message is "${message}"`)
361
+ * })
362
+ * ```
363
+ */
364
+ get: Get<IsAny<E> extends true ? {
365
+ Variables: ContextVariableMap & Record<PropertyKey, any>;
366
+ } : E>;
367
+ /**
368
+ * `.var` can access the value of a variable.
369
+ *
370
+ * @see {@link https://hono.dev/docs/api/context#var}
371
+ *
372
+ * @example
373
+ * ```ts
374
+ * const result = c.var.client.oneMethod()
375
+ * ```
376
+ */
377
+ get var(): Readonly<ContextVariableMap & (IsAny<E['Variables']> extends true ? Record<string, any> : E['Variables'])>;
378
+ newResponse: NewResponse;
379
+ /**
380
+ * `.body()` can return the HTTP response.
381
+ * You can set headers with `.header()` and set HTTP status code with `.status`.
382
+ * This can also be set in `.text()`, `.json()` and so on.
383
+ *
384
+ * @see {@link https://hono.dev/docs/api/context#body}
385
+ *
386
+ * @example
387
+ * ```ts
388
+ * app.get('/welcome', (c) => {
389
+ * // Set headers
390
+ * c.header('X-Message', 'Hello!')
391
+ * c.header('Content-Type', 'text/plain')
392
+ * // Set HTTP status code
393
+ * c.status(201)
394
+ *
395
+ * // Return the response body
396
+ * return c.body('Thank you for coming')
397
+ * })
398
+ * ```
399
+ */
400
+ body: BodyRespond;
401
+ /**
402
+ * `.text()` can render text as `Content-Type:text/plain`.
403
+ *
404
+ * @see {@link https://hono.dev/docs/api/context#text}
405
+ *
406
+ * @example
407
+ * ```ts
408
+ * app.get('/say', (c) => {
409
+ * return c.text('Hello!')
410
+ * })
411
+ * ```
412
+ */
413
+ text: TextRespond;
414
+ /**
415
+ * `.json()` can render JSON as `Content-Type:application/json`.
416
+ *
417
+ * @see {@link https://hono.dev/docs/api/context#json}
418
+ *
419
+ * @example
420
+ * ```ts
421
+ * app.get('/api', (c) => {
422
+ * return c.json({ message: 'Hello!' })
423
+ * })
424
+ * ```
425
+ */
426
+ json: JSONRespond;
427
+ html: HTMLRespond;
428
+ /**
429
+ * `.redirect()` can Redirect, default status code is 302.
430
+ *
431
+ * @see {@link https://hono.dev/docs/api/context#redirect}
432
+ *
433
+ * @example
434
+ * ```ts
435
+ * app.get('/redirect', (c) => {
436
+ * return c.redirect('/')
437
+ * })
438
+ * app.get('/redirect-permanently', (c) => {
439
+ * return c.redirect('/', 301)
440
+ * })
441
+ * ```
442
+ */
443
+ redirect: <T extends RedirectStatusCode = 302>(location: string | URL, status?: T) => Response & TypedResponse<undefined, T, "redirect">;
444
+ /**
445
+ * `.notFound()` can return the Not Found Response.
446
+ *
447
+ * @see {@link https://hono.dev/docs/api/context#notfound}
448
+ *
449
+ * @example
450
+ * ```ts
451
+ * app.get('/notfound', (c) => {
452
+ * return c.notFound()
453
+ * })
454
+ * ```
455
+ */
456
+ notFound: () => ReturnType<NotFoundHandler>;
458
457
  }
459
- export {};
458
+ //#endregion