@nocobase/plugin-mcp-server 2.3.0-beta.13 → 2.3.0-beta.14

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,33 +1,30 @@
1
- /**
2
- * @module
3
- * This module contains some type definitions for the Hono modules.
4
- */
5
- import type { Context } from './context';
6
- import type { HonoBase } from './hono-base';
7
- import type { CustomHeader, RequestHeader } from './utils/headers';
8
- import type { StatusCode } from './utils/http-status';
9
- import type { IfAnyThenEmptyObject, IsAny, JSONValue, RemoveBlankRecord, Simplify, UnionToIntersection } from './utils/types';
1
+ import { HonoBase as Hono } from "./hono-base.js";
2
+ import { CustomHeader, RequestHeader } from "./utils/headers.js";
3
+ import { StatusCode } from "./utils/http-status.js";
4
+ import { IfAnyThenEmptyObject, IsAny, JSONValue, RemoveBlankRecord, Simplify, UnionToIntersection } from "./utils/types.js";
5
+ import { Context } from "./context.js";
6
+ //#region src/types.d.ts
10
7
  export type Bindings = object;
11
8
  export type Variables = object;
12
9
  export type BlankEnv = {};
13
10
  export type Env = {
14
- Bindings?: Bindings;
15
- Variables?: Variables;
11
+ Bindings?: Bindings;
12
+ Variables?: Variables;
16
13
  };
17
14
  export type Next = () => Promise<void>;
18
15
  export type ExtractInput<I extends Input | Input['in']> = I extends Input ? unknown extends I['in'] ? {} : I['in'] : I;
19
16
  export type Input = {
20
- in?: {};
21
- out?: {};
22
- outputFormat?: ResponseFormat;
17
+ in?: {};
18
+ out?: {};
19
+ outputFormat?: ResponseFormat;
23
20
  };
24
21
  export type BlankSchema = {};
25
22
  export type BlankInput = {};
26
23
  export interface RouterRoute {
27
- basePath: string;
28
- path: string;
29
- method: string;
30
- handler: H;
24
+ basePath: string;
25
+ path: string;
26
+ method: string;
27
+ handler: H;
31
28
  }
32
29
  export type HandlerResponse<O> = Response | TypedResponse<O> | Promise<Response | TypedResponse<O>> | Promise<void>;
33
30
  export type Handler<E extends Env = any, P extends string = any, I extends Input = BlankInput, R extends HandlerResponse<any> = any> = (c: Context<E, P, I>, next: Next) => R;
@@ -41,533 +38,177 @@ export type H<E extends Env = any, P extends string = any, I extends Input = Bla
41
38
  * interface NotFoundResponse extends Response, TypedResponse<string, 404, 'text'> {}
42
39
  * }
43
40
  */
44
- export interface NotFoundResponse {
45
- }
41
+ export interface NotFoundResponse {}
46
42
  export type NotFoundHandler<E extends Env = any> = (c: Context<E>) => NotFoundResponse extends Response ? NotFoundResponse | Promise<NotFoundResponse> : Response | Promise<Response>;
47
43
  export interface HTTPResponseError extends Error {
48
- getResponse: () => Response;
44
+ getResponse: () => Response;
49
45
  }
50
46
  export type ErrorHandler<E extends Env = any> = (err: Error | HTTPResponseError, c: Context<E>) => Response | Promise<Response>;
51
47
  export interface HandlerInterface<E extends Env = Env, M extends string = string, S extends Schema = BlankSchema, BasePath extends string = '/', CurrentPath extends string = BasePath> {
52
- <P extends string = CurrentPath, I extends Input = BlankInput, R extends HandlerResponse<any> = any, E2 extends Env = E>(handler: H<E2, P, I, R>): HonoBase<IntersectNonAnyTypes<[E, E2]>, S & ToSchema<M, P, I, MergeTypedResponse<R>>, BasePath, CurrentPath>;
53
- <P extends string = CurrentPath, I extends Input = BlankInput, I2 extends Input = I, R extends HandlerResponse<any> = any, E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[E, E2]>, M1 extends H<E2, P, I> = H<E2, P, I>>(...handlers: [H<E2, P, I> & M1, H<E3, P, I2, R>]): HonoBase<IntersectNonAnyTypes<[E, E2, E3]>, S & ToSchema<M, P, I2, MergeTypedResponse<R> | MergeMiddlewareResponse<M1>>, BasePath, CurrentPath>;
54
- <P extends string, MergedPath extends MergePath<BasePath, P>, R extends HandlerResponse<any> = any, I extends Input = BlankInput, E2 extends Env = E>(path: P, handler: H<E2, MergedPath, I, R>): HonoBase<E, AddSchemaIfHasResponse<MergeTypedResponse<R>, S, M, P, I, BasePath>, BasePath, MergePath<BasePath, P>>;
55
- <P extends string = CurrentPath, R extends HandlerResponse<any> = any, I extends Input = BlankInput, I2 extends Input = I, I3 extends Input = I & I2, E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[E, E2]>, E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>, M1 extends H<E2, P, I> = H<E2, P, I>, M2 extends H<E3, P, I2> = H<E3, P, I2>>(...handlers: [H<E2, P, I> & M1, H<E3, P, I2> & M2, H<E4, P, I3, R>]): HonoBase<IntersectNonAnyTypes<[E, E2, E3, E4]>, S & ToSchema<M, P, I3, MergeTypedResponse<R> | MergeMiddlewareResponse<M1> | MergeMiddlewareResponse<M2>>, BasePath, CurrentPath>;
56
- <P extends string, MergedPath extends MergePath<BasePath, P>, R extends HandlerResponse<any> = any, I extends Input = BlankInput, I2 extends Input = I, E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[E, E2]>, M1 extends H<E2, MergedPath, I> = H<E2, MergedPath, I>>(path: P, ...handlers: [H<E2, MergedPath, I> & M1, H<E3, MergedPath, I2, R>]): HonoBase<E, AddSchemaIfHasResponse<MergeTypedResponse<R> | MergeMiddlewareResponse<M1>, S, M, P, I2, BasePath>, BasePath, MergePath<BasePath, P>>;
57
- <P extends string = CurrentPath, R extends HandlerResponse<any> = any, I extends Input = BlankInput, I2 extends Input = I, I3 extends Input = I & I2, I4 extends Input = I & I2 & I3, E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[E, E2]>, E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>, E5 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4]>, M1 extends H<E2, P, I> = H<E2, P, I>, M2 extends H<E3, P, I2> = H<E3, P, I2>, M3 extends H<E4, P, I3> = H<E4, P, I3>>(...handlers: [H<E2, P, I> & M1, H<E3, P, I2> & M2, H<E4, P, I3> & M3, H<E5, P, I4, R>]): HonoBase<IntersectNonAnyTypes<[E, E2, E3, E4, E5]>, S & ToSchema<M, P, I4, MergeTypedResponse<R> | MergeMiddlewareResponse<M1> | MergeMiddlewareResponse<M2> | MergeMiddlewareResponse<M3>>, BasePath, CurrentPath>;
58
- <P extends string, MergedPath extends MergePath<BasePath, P>, R extends HandlerResponse<any> = any, I extends Input = BlankInput, I2 extends Input = I, I3 extends Input = I & I2, E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[E, E2]>, E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>, M1 extends H<E2, MergedPath, I> = H<E2, MergedPath, I>, M2 extends H<E3, MergedPath, I2> = H<E3, MergedPath, I2>>(path: P, ...handlers: [H<E2, MergedPath, I> & M1, H<E3, MergedPath, I2> & M2, H<E4, MergedPath, I3, R>]): HonoBase<E, AddSchemaIfHasResponse<MergeTypedResponse<R> | MergeMiddlewareResponse<M1> | MergeMiddlewareResponse<M2>, S, M, P, I3, BasePath>, BasePath, MergePath<BasePath, P>>;
59
- <P extends string = CurrentPath, R extends HandlerResponse<any> = any, I extends Input = BlankInput, I2 extends Input = I, I3 extends Input = I & I2, I4 extends Input = I & I2 & I3, I5 extends Input = I & I2 & I3 & I4, E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[E, E2]>, E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>, E5 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4]>, E6 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5]>, M1 extends H<E2, P, I> = H<E2, P, I>, M2 extends H<E3, P, I2> = H<E3, P, I2>, M3 extends H<E4, P, I3> = H<E4, P, I3>, M4 extends H<E5, P, I4> = H<E5, P, I4>>(...handlers: [
60
- H<E2, P, I> & M1,
61
- H<E3, P, I2> & M2,
62
- H<E4, P, I3> & M3,
63
- H<E5, P, I4> & M4,
64
- H<E6, P, I5, R>
65
- ]): HonoBase<IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6]>, S & ToSchema<M, P, I5, MergeTypedResponse<R> | MergeMiddlewareResponse<M1> | MergeMiddlewareResponse<M2> | MergeMiddlewareResponse<M3> | MergeMiddlewareResponse<M4>>, BasePath, CurrentPath>;
66
- <P extends string, MergedPath extends MergePath<BasePath, P>, R extends HandlerResponse<any> = any, I extends Input = BlankInput, I2 extends Input = I, I3 extends Input = I & I2, I4 extends Input = I & I2 & I3, E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[E, E2]>, E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>, E5 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4]>, M1 extends H<E2, MergedPath, I> = H<E2, MergedPath, I>, M2 extends H<E3, MergedPath, I2> = H<E3, MergedPath, I2>, M3 extends H<E4, MergedPath, I3> = H<E4, MergedPath, I3>>(path: P, ...handlers: [
67
- H<E2, MergedPath, I> & M1,
68
- H<E3, MergedPath, I2> & M2,
69
- H<E4, MergedPath, I3> & M3,
70
- H<E5, MergedPath, I4, R>
71
- ]): HonoBase<E, AddSchemaIfHasResponse<MergeTypedResponse<R> | MergeMiddlewareResponse<M1> | MergeMiddlewareResponse<M2> | MergeMiddlewareResponse<M3>, S, M, P, I4, BasePath>, BasePath, MergePath<BasePath, P>>;
72
- <P extends string = CurrentPath, R extends HandlerResponse<any> = any, I extends Input = BlankInput, I2 extends Input = I, I3 extends Input = I & I2, I4 extends Input = I & I2 & I3, I5 extends Input = I & I2 & I3 & I4, I6 extends Input = I & I2 & I3 & I4 & I5, E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[E, E2]>, E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>, E5 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4]>, E6 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5]>, E7 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6]>, M1 extends H<E2, P, I> = H<E2, P, I>, M2 extends H<E3, P, I2> = H<E3, P, I2>, M3 extends H<E4, P, I3> = H<E4, P, I3>, M4 extends H<E5, P, I4> = H<E5, P, I4>, M5 extends H<E6, P, I5> = H<E6, P, I5>>(...handlers: [
73
- H<E2, P, I> & M1,
74
- H<E3, P, I2> & M2,
75
- H<E4, P, I3> & M3,
76
- H<E5, P, I4> & M4,
77
- H<E6, P, I5> & M5,
78
- H<E7, P, I6, R>
79
- ]): HonoBase<IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7]>, S & ToSchema<M, P, I6, MergeTypedResponse<R> | MergeMiddlewareResponse<M1> | MergeMiddlewareResponse<M2> | MergeMiddlewareResponse<M3> | MergeMiddlewareResponse<M4> | MergeMiddlewareResponse<M5>>, BasePath, CurrentPath>;
80
- <P extends string, MergedPath extends MergePath<BasePath, P>, R extends HandlerResponse<any> = any, I extends Input = BlankInput, I2 extends Input = I, I3 extends Input = I & I2, I4 extends Input = I & I2 & I3, I5 extends Input = I & I2 & I3 & I4, E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[E, E2]>, E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>, E5 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4]>, E6 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5]>, M1 extends H<E2, MergedPath, I> = H<E2, MergedPath, I>, M2 extends H<E3, MergedPath, I2> = H<E3, MergedPath, I2>, M3 extends H<E4, MergedPath, I3> = H<E4, MergedPath, I3>, M4 extends H<E5, MergedPath, I4> = H<E5, MergedPath, I4>>(path: P, ...handlers: [
81
- H<E2, MergedPath, I> & M1,
82
- H<E3, MergedPath, I2> & M2,
83
- H<E4, MergedPath, I3> & M3,
84
- H<E5, MergedPath, I4> & M4,
85
- H<E6, MergedPath, I5, R>
86
- ]): HonoBase<E, AddSchemaIfHasResponse<MergeTypedResponse<R> | MergeMiddlewareResponse<M1> | MergeMiddlewareResponse<M2> | MergeMiddlewareResponse<M3> | MergeMiddlewareResponse<M4>, S, M, P, I5, BasePath>, BasePath, MergePath<BasePath, P>>;
87
- <P extends string = CurrentPath, R extends HandlerResponse<any> = any, I extends Input = BlankInput, I2 extends Input = I, I3 extends Input = I & I2, I4 extends Input = I & I2 & I3, I5 extends Input = I & I2 & I3 & I4, I6 extends Input = I & I2 & I3 & I4 & I5, I7 extends Input = I & I2 & I3 & I4 & I5 & I6, E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[E, E2]>, E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>, E5 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4]>, E6 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5]>, E7 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6]>, E8 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7]>, M1 extends H<E2, P, I> = H<E2, P, I>, M2 extends H<E3, P, I2> = H<E3, P, I2>, M3 extends H<E4, P, I3> = H<E4, P, I3>, M4 extends H<E5, P, I4> = H<E5, P, I4>, M5 extends H<E6, P, I5> = H<E6, P, I5>, M6 extends H<E7, P, I6> = H<E7, P, I6>>(...handlers: [
88
- H<E2, P, I> & M1,
89
- H<E3, P, I2> & M2,
90
- H<E4, P, I3> & M3,
91
- H<E5, P, I4> & M4,
92
- H<E6, P, I5> & M5,
93
- H<E7, P, I6> & M6,
94
- H<E8, P, I7, R>
95
- ]): HonoBase<IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8]>, S & ToSchema<M, P, I7, MergeTypedResponse<R> | MergeMiddlewareResponse<M1> | MergeMiddlewareResponse<M2> | MergeMiddlewareResponse<M3> | MergeMiddlewareResponse<M4> | MergeMiddlewareResponse<M5> | MergeMiddlewareResponse<M6>>, BasePath, CurrentPath>;
96
- <P extends string, MergedPath extends MergePath<BasePath, P>, R extends HandlerResponse<any> = any, I extends Input = BlankInput, I2 extends Input = I, I3 extends Input = I & I2, I4 extends Input = I & I2 & I3, I5 extends Input = I & I2 & I3 & I4, I6 extends Input = I & I2 & I3 & I4 & I5, E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[E, E2]>, E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>, E5 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4]>, E6 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5]>, E7 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6]>, M1 extends H<E2, MergedPath, I> = H<E2, MergedPath, I>, M2 extends H<E3, MergedPath, I2> = H<E3, MergedPath, I2>, M3 extends H<E4, MergedPath, I3> = H<E4, MergedPath, I3>, M4 extends H<E5, MergedPath, I4> = H<E5, MergedPath, I4>, M5 extends H<E6, MergedPath, I5> = H<E6, MergedPath, I5>>(path: P, ...handlers: [
97
- H<E2, MergedPath, I> & M1,
98
- H<E3, MergedPath, I2> & M2,
99
- H<E4, MergedPath, I3> & M3,
100
- H<E5, MergedPath, I4> & M4,
101
- H<E6, MergedPath, I5> & M5,
102
- H<E7, MergedPath, I6, R>
103
- ]): HonoBase<E, AddSchemaIfHasResponse<MergeTypedResponse<R> | MergeMiddlewareResponse<M1> | MergeMiddlewareResponse<M2> | MergeMiddlewareResponse<M3> | MergeMiddlewareResponse<M4> | MergeMiddlewareResponse<M5>, S, M, P, I6, BasePath>, BasePath, MergePath<BasePath, P>>;
104
- <P extends string = CurrentPath, R extends HandlerResponse<any> = any, I extends Input = BlankInput, I2 extends Input = I, I3 extends Input = I & I2, I4 extends Input = I & I2 & I3, I5 extends Input = I & I2 & I3 & I4, I6 extends Input = I & I2 & I3 & I4 & I5, I7 extends Input = I & I2 & I3 & I4 & I5 & I6, I8 extends Input = I & I2 & I3 & I4 & I5 & I6 & I7, E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[E, E2]>, E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>, E5 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4]>, E6 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5]>, E7 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6]>, E8 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7]>, E9 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8]>, M1 extends H<E2, P, I> = H<E2, P, I>, M2 extends H<E3, P, I2> = H<E3, P, I2>, M3 extends H<E4, P, I3> = H<E4, P, I3>, M4 extends H<E5, P, I4> = H<E5, P, I4>, M5 extends H<E6, P, I5> = H<E6, P, I5>, M6 extends H<E7, P, I6> = H<E7, P, I6>, M7 extends H<E8, P, I7> = H<E8, P, I7>>(...handlers: [
105
- H<E2, P, I> & M1,
106
- H<E3, P, I2> & M2,
107
- H<E4, P, I3> & M3,
108
- H<E5, P, I4> & M4,
109
- H<E6, P, I5> & M5,
110
- H<E7, P, I6> & M6,
111
- H<E8, P, I7> & M7,
112
- H<E9, P, I8, R>
113
- ]): HonoBase<IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8, E9]>, S & ToSchema<M, P, I8, MergeTypedResponse<R> | MergeMiddlewareResponse<M1> | MergeMiddlewareResponse<M2> | MergeMiddlewareResponse<M3> | MergeMiddlewareResponse<M4> | MergeMiddlewareResponse<M5> | MergeMiddlewareResponse<M6> | MergeMiddlewareResponse<M7>>, BasePath, CurrentPath>;
114
- <P extends string, MergedPath extends MergePath<BasePath, P>, R extends HandlerResponse<any> = any, I extends Input = BlankInput, I2 extends Input = I, I3 extends Input = I & I2, I4 extends Input = I & I2 & I3, I5 extends Input = I & I2 & I3 & I4, I6 extends Input = I & I2 & I3 & I4 & I5, I7 extends Input = I & I2 & I3 & I4 & I5 & I6, E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[E, E2]>, E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>, E5 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4]>, E6 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5]>, E7 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6]>, E8 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7]>, M1 extends H<E2, MergedPath, I> = H<E2, MergedPath, I>, M2 extends H<E3, MergedPath, I2> = H<E3, MergedPath, I2>, M3 extends H<E4, MergedPath, I3> = H<E4, MergedPath, I3>, M4 extends H<E5, MergedPath, I4> = H<E5, MergedPath, I4>, M5 extends H<E6, MergedPath, I5> = H<E6, MergedPath, I5>, M6 extends H<E7, MergedPath, I6> = H<E7, MergedPath, I6>>(path: P, ...handlers: [
115
- H<E2, MergedPath, I> & M1,
116
- H<E3, MergedPath, I2> & M2,
117
- H<E4, MergedPath, I3> & M3,
118
- H<E5, MergedPath, I4> & M4,
119
- H<E6, MergedPath, I5> & M5,
120
- H<E7, MergedPath, I6> & M6,
121
- H<E8, MergedPath, I7, R>
122
- ]): HonoBase<E, AddSchemaIfHasResponse<MergeTypedResponse<R> | MergeMiddlewareResponse<M1> | MergeMiddlewareResponse<M2> | MergeMiddlewareResponse<M3> | MergeMiddlewareResponse<M4> | MergeMiddlewareResponse<M5> | MergeMiddlewareResponse<M6>, S, M, P, I7, BasePath>, BasePath, MergePath<BasePath, P>>;
123
- <P extends string = CurrentPath, R extends HandlerResponse<any> = any, I extends Input = BlankInput, I2 extends Input = I, I3 extends Input = I & I2, I4 extends Input = I & I2 & I3, I5 extends Input = I & I2 & I3 & I4, I6 extends Input = I & I2 & I3 & I4 & I5, I7 extends Input = I & I2 & I3 & I4 & I5 & I6, I8 extends Input = I & I2 & I3 & I4 & I5 & I6 & I7, I9 extends Input = I & I2 & I3 & I4 & I5 & I6 & I7 & I8, E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[E, E2]>, E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>, E5 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4]>, E6 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5]>, E7 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6]>, E8 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7]>, E9 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8]>, E10 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8, E9]>, M1 extends H<E2, P, I> = H<E2, P, I>, M2 extends H<E3, P, I2> = H<E3, P, I2>, M3 extends H<E4, P, I3> = H<E4, P, I3>, M4 extends H<E5, P, I4> = H<E5, P, I4>, M5 extends H<E6, P, I5> = H<E6, P, I5>, M6 extends H<E7, P, I6> = H<E7, P, I6>, M7 extends H<E8, P, I7> = H<E8, P, I7>, M8 extends H<E9, P, I8> = H<E9, P, I8>>(...handlers: [
124
- H<E2, P, I> & M1,
125
- H<E3, P, I2> & M2,
126
- H<E4, P, I3> & M3,
127
- H<E5, P, I4> & M4,
128
- H<E6, P, I5> & M5,
129
- H<E7, P, I6> & M6,
130
- H<E8, P, I7> & M7,
131
- H<E9, P, I8> & M8,
132
- H<E10, P, I9, R>
133
- ]): HonoBase<IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8, E9, E10]>, S & ToSchema<M, P, I9, MergeTypedResponse<R> | MergeMiddlewareResponse<M1> | MergeMiddlewareResponse<M2> | MergeMiddlewareResponse<M3> | MergeMiddlewareResponse<M4> | MergeMiddlewareResponse<M5> | MergeMiddlewareResponse<M6> | MergeMiddlewareResponse<M7> | MergeMiddlewareResponse<M8>>, BasePath, CurrentPath>;
134
- <P extends string, MergedPath extends MergePath<BasePath, P>, R extends HandlerResponse<any> = any, I extends Input = BlankInput, I2 extends Input = I, I3 extends Input = I & I2, I4 extends Input = I & I2 & I3, I5 extends Input = I & I2 & I3 & I4, I6 extends Input = I & I2 & I3 & I4 & I5, I7 extends Input = I & I2 & I3 & I4 & I5 & I6, I8 extends Input = I & I2 & I3 & I4 & I5 & I6 & I7, E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[E, E2]>, E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>, E5 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4]>, E6 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5]>, E7 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6]>, E8 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7]>, E9 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8]>, M1 extends H<E2, MergedPath, I> = H<E2, MergedPath, I>, M2 extends H<E3, MergedPath, I2> = H<E3, MergedPath, I2>, M3 extends H<E4, MergedPath, I3> = H<E4, MergedPath, I3>, M4 extends H<E5, MergedPath, I4> = H<E5, MergedPath, I4>, M5 extends H<E6, MergedPath, I5> = H<E6, MergedPath, I5>, M6 extends H<E7, MergedPath, I6> = H<E7, MergedPath, I6>, M7 extends H<E8, MergedPath, I7> = H<E8, MergedPath, I7>>(path: P, ...handlers: [
135
- H<E2, MergedPath, I> & M1,
136
- H<E3, MergedPath, I2> & M2,
137
- H<E4, MergedPath, I3> & M3,
138
- H<E5, MergedPath, I4> & M4,
139
- H<E6, MergedPath, I5> & M5,
140
- H<E7, MergedPath, I6> & M6,
141
- H<E8, MergedPath, I7> & M7,
142
- H<E9, MergedPath, I8, R>
143
- ]): HonoBase<E, AddSchemaIfHasResponse<MergeTypedResponse<R> | MergeMiddlewareResponse<M1> | MergeMiddlewareResponse<M2> | MergeMiddlewareResponse<M3> | MergeMiddlewareResponse<M4> | MergeMiddlewareResponse<M5> | MergeMiddlewareResponse<M6> | MergeMiddlewareResponse<M7>, S, M, P, I8, BasePath>, BasePath, MergePath<BasePath, P>>;
144
- <P extends string = CurrentPath, R extends HandlerResponse<any> = any, I extends Input = BlankInput, I2 extends Input = I, I3 extends Input = I & I2, I4 extends Input = I & I2 & I3, I5 extends Input = I & I2 & I3 & I4, I6 extends Input = I & I2 & I3 & I4 & I5, I7 extends Input = I & I2 & I3 & I4 & I5 & I6, I8 extends Input = I & I2 & I3 & I4 & I5 & I6 & I7, I9 extends Input = I & I2 & I3 & I4 & I5 & I6 & I7 & I8, I10 extends Input = I & I2 & I3 & I4 & I5 & I6 & I7 & I8 & I9, E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[E, E2]>, E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>, E5 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4]>, E6 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5]>, E7 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6]>, E8 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7]>, E9 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8]>, E10 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8, E9]>, E11 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8, E9, E10]>, M1 extends H<E2, P, I> = H<E2, P, I>, M2 extends H<E3, P, I2> = H<E3, P, I2>, M3 extends H<E4, P, I3> = H<E4, P, I3>, M4 extends H<E5, P, I4> = H<E5, P, I4>, M5 extends H<E6, P, I5> = H<E6, P, I5>, M6 extends H<E7, P, I6> = H<E7, P, I6>, M7 extends H<E8, P, I7> = H<E8, P, I7>, M8 extends H<E9, P, I8> = H<E9, P, I8>, M9 extends H<E10, P, I9> = H<E10, P, I9>>(...handlers: [
145
- H<E2, P, I> & M1,
146
- H<E3, P, I2> & M2,
147
- H<E4, P, I3> & M3,
148
- H<E5, P, I4> & M4,
149
- H<E6, P, I5> & M5,
150
- H<E7, P, I6> & M6,
151
- H<E8, P, I7> & M7,
152
- H<E9, P, I8> & M8,
153
- H<E10, P, I9> & M9,
154
- H<E11, P, I10, R>
155
- ]): HonoBase<IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8, E9, E10, E11]>, S & ToSchema<M, P, I10, MergeTypedResponse<R> | MergeMiddlewareResponse<M1> | MergeMiddlewareResponse<M2> | MergeMiddlewareResponse<M3> | MergeMiddlewareResponse<M4> | MergeMiddlewareResponse<M5> | MergeMiddlewareResponse<M6> | MergeMiddlewareResponse<M7> | MergeMiddlewareResponse<M8> | MergeMiddlewareResponse<M9>>, BasePath, CurrentPath>;
156
- <P extends string, MergedPath extends MergePath<BasePath, P>, R extends HandlerResponse<any> = any, I extends Input = BlankInput, I2 extends Input = I, I3 extends Input = I & I2, I4 extends Input = I & I2 & I3, I5 extends Input = I & I2 & I3 & I4, I6 extends Input = I & I2 & I3 & I4 & I5, I7 extends Input = I & I2 & I3 & I4 & I5 & I6, I8 extends Input = I & I2 & I3 & I4 & I5 & I6 & I7, I9 extends Input = I & I2 & I3 & I4 & I5 & I6 & I7 & I8, E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[E, E2]>, E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>, E5 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4]>, E6 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5]>, E7 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6]>, E8 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7]>, E9 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8]>, E10 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8, E9]>, M1 extends H<E2, MergedPath, I> = H<E2, MergedPath, I>, M2 extends H<E3, MergedPath, I2> = H<E3, MergedPath, I2>, M3 extends H<E4, MergedPath, I3> = H<E4, MergedPath, I3>, M4 extends H<E5, MergedPath, I4> = H<E5, MergedPath, I4>, M5 extends H<E6, MergedPath, I5> = H<E6, MergedPath, I5>, M6 extends H<E7, MergedPath, I6> = H<E7, MergedPath, I6>, M7 extends H<E8, MergedPath, I7> = H<E8, MergedPath, I7>, M8 extends H<E9, MergedPath, I8> = H<E9, MergedPath, I8>>(path: P, ...handlers: [
157
- H<E2, MergedPath, I> & M1,
158
- H<E3, MergedPath, I2> & M2,
159
- H<E4, MergedPath, I3> & M3,
160
- H<E5, MergedPath, I4> & M4,
161
- H<E6, MergedPath, I5> & M5,
162
- H<E7, MergedPath, I6> & M6,
163
- H<E8, MergedPath, I7> & M7,
164
- H<E9, MergedPath, I8> & M8,
165
- H<E10, MergedPath, I9, R>
166
- ]): HonoBase<E, AddSchemaIfHasResponse<MergeTypedResponse<R> | MergeMiddlewareResponse<M1> | MergeMiddlewareResponse<M2> | MergeMiddlewareResponse<M3> | MergeMiddlewareResponse<M4> | MergeMiddlewareResponse<M5> | MergeMiddlewareResponse<M6> | MergeMiddlewareResponse<M7> | MergeMiddlewareResponse<M8>, S, M, P, I9, BasePath>, BasePath, MergePath<BasePath, P>>;
167
- <P extends string, MergedPath extends MergePath<BasePath, P>, R extends HandlerResponse<any> = any, I extends Input = BlankInput, I2 extends Input = I, I3 extends Input = I & I2, I4 extends Input = I & I2 & I3, I5 extends Input = I & I2 & I3 & I4, I6 extends Input = I & I2 & I3 & I4 & I5, I7 extends Input = I & I2 & I3 & I4 & I5 & I6, I8 extends Input = I & I2 & I3 & I4 & I5 & I6 & I7, I9 extends Input = I & I2 & I3 & I4 & I5 & I6 & I7 & I8, I10 extends Input = I & I2 & I3 & I4 & I5 & I6 & I7 & I8 & I9, E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[E, E2]>, E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>, E5 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4]>, E6 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5]>, E7 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6]>, E8 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7]>, E9 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8]>, E10 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8, E9]>, E11 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8, E9, E10]>, M1 extends H<E2, MergedPath, I> = H<E2, MergedPath, I>, M2 extends H<E3, MergedPath, I2> = H<E3, MergedPath, I2>, M3 extends H<E4, MergedPath, I3> = H<E4, MergedPath, I3>, M4 extends H<E5, MergedPath, I4> = H<E5, MergedPath, I4>, M5 extends H<E6, MergedPath, I5> = H<E6, MergedPath, I5>, M6 extends H<E7, MergedPath, I6> = H<E7, MergedPath, I6>, M7 extends H<E8, MergedPath, I7> = H<E8, MergedPath, I7>, M8 extends H<E9, MergedPath, I8> = H<E9, MergedPath, I8>, M9 extends H<E10, MergedPath, I9> = H<E10, MergedPath, I9>>(path: P, ...handlers: [
168
- H<E2, MergedPath, I> & M1,
169
- H<E3, MergedPath, I2> & M2,
170
- H<E4, MergedPath, I3> & M3,
171
- H<E5, MergedPath, I4> & M4,
172
- H<E6, MergedPath, I5> & M5,
173
- H<E7, MergedPath, I6> & M6,
174
- H<E8, MergedPath, I7> & M7,
175
- H<E9, MergedPath, I8> & M8,
176
- H<E10, MergedPath, I9> & M9,
177
- H<E11, MergedPath, I10, R>
178
- ]): HonoBase<E, AddSchemaIfHasResponse<MergeTypedResponse<R> | MergeMiddlewareResponse<M1> | MergeMiddlewareResponse<M2> | MergeMiddlewareResponse<M3> | MergeMiddlewareResponse<M4> | MergeMiddlewareResponse<M5> | MergeMiddlewareResponse<M6> | MergeMiddlewareResponse<M7> | MergeMiddlewareResponse<M8> | MergeMiddlewareResponse<M9>, S, M, P, I10, BasePath>, BasePath, MergePath<BasePath, P>>;
179
- <P extends string = CurrentPath, I extends Input = BlankInput, R extends HandlerResponse<any> = any>(...handlers: H<E, P, I, R>[]): HonoBase<E, S & ToSchema<M, P, I, MergeTypedResponse<R>>, BasePath, CurrentPath>;
180
- <P extends string, I extends Input = BlankInput, R extends HandlerResponse<any> = any>(path: P, ...handlers: [H<E, MergePath<BasePath, P>, I, R>, ...H<E, MergePath<BasePath, P>, I, R>[]]): HonoBase<E, S & ToSchema<M, MergePath<BasePath, P>, I, MergeTypedResponse<R>>, BasePath, MergePath<BasePath, P>>;
181
- <P extends string, R extends HandlerResponse<any> = any, I extends Input = BlankInput>(path: P): HonoBase<E, S & ToSchema<M, MergePath<BasePath, P>, I, MergeTypedResponse<R>>, BasePath, MergePath<BasePath, P>>;
48
+ <P extends string = CurrentPath, I extends Input = BlankInput, R extends HandlerResponse<any> = any, E2 extends Env = E>(handler: H<E2, P, I, R>): Hono<IntersectNonAnyTypes<[E, E2]>, S & ToSchema<M, P, I, MergeTypedResponse<R>>, BasePath, CurrentPath>;
49
+ <P extends string = CurrentPath, I extends Input = BlankInput, I2 extends Input = I, R extends HandlerResponse<any> = any, E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[E, E2]>, M1 extends H<E2, P, I> = H<E2, P, I>>(...handlers: [H<E2, P, I> & M1, H<E3, P, I2, R>]): Hono<IntersectNonAnyTypes<[E, E2, E3]>, S & ToSchema<M, P, I2, MergeTypedResponse<R> | MergeMiddlewareResponse<M1>>, BasePath, CurrentPath>;
50
+ <P extends string, MergedPath extends MergePath<BasePath, P>, R extends HandlerResponse<any> = any, I extends Input = BlankInput, E2 extends Env = E>(path: P, handler: H<E2, MergedPath, I, R>): Hono<E, AddSchemaIfHasResponse<MergeTypedResponse<R>, S, M, P, I, BasePath>, BasePath, MergePath<BasePath, P>>;
51
+ <P extends string = CurrentPath, R extends HandlerResponse<any> = any, I extends Input = BlankInput, I2 extends Input = I, I3 extends Input = I & I2, E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[E, E2]>, E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>, M1 extends H<E2, P, I> = H<E2, P, I>, M2 extends H<E3, P, I2> = H<E3, P, I2>>(...handlers: [H<E2, P, I> & M1, H<E3, P, I2> & M2, H<E4, P, I3, R>]): Hono<IntersectNonAnyTypes<[E, E2, E3, E4]>, S & ToSchema<M, P, I3, MergeTypedResponse<R> | MergeMiddlewareResponse<M1> | MergeMiddlewareResponse<M2>>, BasePath, CurrentPath>;
52
+ <P extends string, MergedPath extends MergePath<BasePath, P>, R extends HandlerResponse<any> = any, I extends Input = BlankInput, I2 extends Input = I, E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[E, E2]>, M1 extends H<E2, MergedPath, I> = H<E2, MergedPath, I>>(path: P, ...handlers: [H<E2, MergedPath, I> & M1, H<E3, MergedPath, I2, R>]): Hono<E, AddSchemaIfHasResponse<MergeTypedResponse<R> | MergeMiddlewareResponse<M1>, S, M, P, I2, BasePath>, BasePath, MergePath<BasePath, P>>;
53
+ <P extends string = CurrentPath, R extends HandlerResponse<any> = any, I extends Input = BlankInput, I2 extends Input = I, I3 extends Input = I & I2, I4 extends Input = I & I2 & I3, E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[E, E2]>, E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>, E5 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4]>, M1 extends H<E2, P, I> = H<E2, P, I>, M2 extends H<E3, P, I2> = H<E3, P, I2>, M3 extends H<E4, P, I3> = H<E4, P, I3>>(...handlers: [H<E2, P, I> & M1, H<E3, P, I2> & M2, H<E4, P, I3> & M3, H<E5, P, I4, R>]): Hono<IntersectNonAnyTypes<[E, E2, E3, E4, E5]>, S & ToSchema<M, P, I4, MergeTypedResponse<R> | MergeMiddlewareResponse<M1> | MergeMiddlewareResponse<M2> | MergeMiddlewareResponse<M3>>, BasePath, CurrentPath>;
54
+ <P extends string, MergedPath extends MergePath<BasePath, P>, R extends HandlerResponse<any> = any, I extends Input = BlankInput, I2 extends Input = I, I3 extends Input = I & I2, E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[E, E2]>, E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>, M1 extends H<E2, MergedPath, I> = H<E2, MergedPath, I>, M2 extends H<E3, MergedPath, I2> = H<E3, MergedPath, I2>>(path: P, ...handlers: [H<E2, MergedPath, I> & M1, H<E3, MergedPath, I2> & M2, H<E4, MergedPath, I3, R>]): Hono<E, AddSchemaIfHasResponse<MergeTypedResponse<R> | MergeMiddlewareResponse<M1> | MergeMiddlewareResponse<M2>, S, M, P, I3, BasePath>, BasePath, MergePath<BasePath, P>>;
55
+ <P extends string = CurrentPath, R extends HandlerResponse<any> = any, I extends Input = BlankInput, I2 extends Input = I, I3 extends Input = I & I2, I4 extends Input = I & I2 & I3, I5 extends Input = I & I2 & I3 & I4, E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[E, E2]>, E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>, E5 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4]>, E6 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5]>, M1 extends H<E2, P, I> = H<E2, P, I>, M2 extends H<E3, P, I2> = H<E3, P, I2>, M3 extends H<E4, P, I3> = H<E4, P, I3>, M4 extends H<E5, P, I4> = H<E5, P, I4>>(...handlers: [H<E2, P, I> & M1, H<E3, P, I2> & M2, H<E4, P, I3> & M3, H<E5, P, I4> & M4, H<E6, P, I5, R>]): Hono<IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6]>, S & ToSchema<M, P, I5, MergeTypedResponse<R> | MergeMiddlewareResponse<M1> | MergeMiddlewareResponse<M2> | MergeMiddlewareResponse<M3> | MergeMiddlewareResponse<M4>>, BasePath, CurrentPath>;
56
+ <P extends string, MergedPath extends MergePath<BasePath, P>, R extends HandlerResponse<any> = any, I extends Input = BlankInput, I2 extends Input = I, I3 extends Input = I & I2, I4 extends Input = I & I2 & I3, E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[E, E2]>, E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>, E5 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4]>, M1 extends H<E2, MergedPath, I> = H<E2, MergedPath, I>, M2 extends H<E3, MergedPath, I2> = H<E3, MergedPath, I2>, M3 extends H<E4, MergedPath, I3> = H<E4, MergedPath, I3>>(path: P, ...handlers: [H<E2, MergedPath, I> & M1, H<E3, MergedPath, I2> & M2, H<E4, MergedPath, I3> & M3, H<E5, MergedPath, I4, R>]): Hono<E, AddSchemaIfHasResponse<MergeTypedResponse<R> | MergeMiddlewareResponse<M1> | MergeMiddlewareResponse<M2> | MergeMiddlewareResponse<M3>, S, M, P, I4, BasePath>, BasePath, MergePath<BasePath, P>>;
57
+ <P extends string = CurrentPath, R extends HandlerResponse<any> = any, I extends Input = BlankInput, I2 extends Input = I, I3 extends Input = I & I2, I4 extends Input = I & I2 & I3, I5 extends Input = I & I2 & I3 & I4, I6 extends Input = I & I2 & I3 & I4 & I5, E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[E, E2]>, E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>, E5 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4]>, E6 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5]>, E7 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6]>, M1 extends H<E2, P, I> = H<E2, P, I>, M2 extends H<E3, P, I2> = H<E3, P, I2>, M3 extends H<E4, P, I3> = H<E4, P, I3>, M4 extends H<E5, P, I4> = H<E5, P, I4>, M5 extends H<E6, P, I5> = H<E6, P, I5>>(...handlers: [H<E2, P, I> & M1, H<E3, P, I2> & M2, H<E4, P, I3> & M3, H<E5, P, I4> & M4, H<E6, P, I5> & M5, H<E7, P, I6, R>]): Hono<IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7]>, S & ToSchema<M, P, I6, MergeTypedResponse<R> | MergeMiddlewareResponse<M1> | MergeMiddlewareResponse<M2> | MergeMiddlewareResponse<M3> | MergeMiddlewareResponse<M4> | MergeMiddlewareResponse<M5>>, BasePath, CurrentPath>;
58
+ <P extends string, MergedPath extends MergePath<BasePath, P>, R extends HandlerResponse<any> = any, I extends Input = BlankInput, I2 extends Input = I, I3 extends Input = I & I2, I4 extends Input = I & I2 & I3, I5 extends Input = I & I2 & I3 & I4, E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[E, E2]>, E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>, E5 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4]>, E6 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5]>, M1 extends H<E2, MergedPath, I> = H<E2, MergedPath, I>, M2 extends H<E3, MergedPath, I2> = H<E3, MergedPath, I2>, M3 extends H<E4, MergedPath, I3> = H<E4, MergedPath, I3>, M4 extends H<E5, MergedPath, I4> = H<E5, MergedPath, I4>>(path: P, ...handlers: [H<E2, MergedPath, I> & M1, H<E3, MergedPath, I2> & M2, H<E4, MergedPath, I3> & M3, H<E5, MergedPath, I4> & M4, H<E6, MergedPath, I5, R>]): Hono<E, AddSchemaIfHasResponse<MergeTypedResponse<R> | MergeMiddlewareResponse<M1> | MergeMiddlewareResponse<M2> | MergeMiddlewareResponse<M3> | MergeMiddlewareResponse<M4>, S, M, P, I5, BasePath>, BasePath, MergePath<BasePath, P>>;
59
+ <P extends string = CurrentPath, R extends HandlerResponse<any> = any, I extends Input = BlankInput, I2 extends Input = I, I3 extends Input = I & I2, I4 extends Input = I & I2 & I3, I5 extends Input = I & I2 & I3 & I4, I6 extends Input = I & I2 & I3 & I4 & I5, I7 extends Input = I & I2 & I3 & I4 & I5 & I6, E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[E, E2]>, E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>, E5 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4]>, E6 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5]>, E7 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6]>, E8 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7]>, M1 extends H<E2, P, I> = H<E2, P, I>, M2 extends H<E3, P, I2> = H<E3, P, I2>, M3 extends H<E4, P, I3> = H<E4, P, I3>, M4 extends H<E5, P, I4> = H<E5, P, I4>, M5 extends H<E6, P, I5> = H<E6, P, I5>, M6 extends H<E7, P, I6> = H<E7, P, I6>>(...handlers: [H<E2, P, I> & M1, H<E3, P, I2> & M2, H<E4, P, I3> & M3, H<E5, P, I4> & M4, H<E6, P, I5> & M5, H<E7, P, I6> & M6, H<E8, P, I7, R>]): Hono<IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8]>, S & ToSchema<M, P, I7, MergeTypedResponse<R> | MergeMiddlewareResponse<M1> | MergeMiddlewareResponse<M2> | MergeMiddlewareResponse<M3> | MergeMiddlewareResponse<M4> | MergeMiddlewareResponse<M5> | MergeMiddlewareResponse<M6>>, BasePath, CurrentPath>;
60
+ <P extends string, MergedPath extends MergePath<BasePath, P>, R extends HandlerResponse<any> = any, I extends Input = BlankInput, I2 extends Input = I, I3 extends Input = I & I2, I4 extends Input = I & I2 & I3, I5 extends Input = I & I2 & I3 & I4, I6 extends Input = I & I2 & I3 & I4 & I5, E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[E, E2]>, E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>, E5 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4]>, E6 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5]>, E7 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6]>, M1 extends H<E2, MergedPath, I> = H<E2, MergedPath, I>, M2 extends H<E3, MergedPath, I2> = H<E3, MergedPath, I2>, M3 extends H<E4, MergedPath, I3> = H<E4, MergedPath, I3>, M4 extends H<E5, MergedPath, I4> = H<E5, MergedPath, I4>, M5 extends H<E6, MergedPath, I5> = H<E6, MergedPath, I5>>(path: P, ...handlers: [H<E2, MergedPath, I> & M1, H<E3, MergedPath, I2> & M2, H<E4, MergedPath, I3> & M3, H<E5, MergedPath, I4> & M4, H<E6, MergedPath, I5> & M5, H<E7, MergedPath, I6, R>]): Hono<E, AddSchemaIfHasResponse<MergeTypedResponse<R> | MergeMiddlewareResponse<M1> | MergeMiddlewareResponse<M2> | MergeMiddlewareResponse<M3> | MergeMiddlewareResponse<M4> | MergeMiddlewareResponse<M5>, S, M, P, I6, BasePath>, BasePath, MergePath<BasePath, P>>;
61
+ <P extends string = CurrentPath, R extends HandlerResponse<any> = any, I extends Input = BlankInput, I2 extends Input = I, I3 extends Input = I & I2, I4 extends Input = I & I2 & I3, I5 extends Input = I & I2 & I3 & I4, I6 extends Input = I & I2 & I3 & I4 & I5, I7 extends Input = I & I2 & I3 & I4 & I5 & I6, I8 extends Input = I & I2 & I3 & I4 & I5 & I6 & I7, E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[E, E2]>, E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>, E5 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4]>, E6 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5]>, E7 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6]>, E8 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7]>, E9 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8]>, M1 extends H<E2, P, I> = H<E2, P, I>, M2 extends H<E3, P, I2> = H<E3, P, I2>, M3 extends H<E4, P, I3> = H<E4, P, I3>, M4 extends H<E5, P, I4> = H<E5, P, I4>, M5 extends H<E6, P, I5> = H<E6, P, I5>, M6 extends H<E7, P, I6> = H<E7, P, I6>, M7 extends H<E8, P, I7> = H<E8, P, I7>>(...handlers: [H<E2, P, I> & M1, H<E3, P, I2> & M2, H<E4, P, I3> & M3, H<E5, P, I4> & M4, H<E6, P, I5> & M5, H<E7, P, I6> & M6, H<E8, P, I7> & M7, H<E9, P, I8, R>]): Hono<IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8, E9]>, S & ToSchema<M, P, I8, MergeTypedResponse<R> | MergeMiddlewareResponse<M1> | MergeMiddlewareResponse<M2> | MergeMiddlewareResponse<M3> | MergeMiddlewareResponse<M4> | MergeMiddlewareResponse<M5> | MergeMiddlewareResponse<M6> | MergeMiddlewareResponse<M7>>, BasePath, CurrentPath>;
62
+ <P extends string, MergedPath extends MergePath<BasePath, P>, R extends HandlerResponse<any> = any, I extends Input = BlankInput, I2 extends Input = I, I3 extends Input = I & I2, I4 extends Input = I & I2 & I3, I5 extends Input = I & I2 & I3 & I4, I6 extends Input = I & I2 & I3 & I4 & I5, I7 extends Input = I & I2 & I3 & I4 & I5 & I6, E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[E, E2]>, E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>, E5 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4]>, E6 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5]>, E7 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6]>, E8 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7]>, M1 extends H<E2, MergedPath, I> = H<E2, MergedPath, I>, M2 extends H<E3, MergedPath, I2> = H<E3, MergedPath, I2>, M3 extends H<E4, MergedPath, I3> = H<E4, MergedPath, I3>, M4 extends H<E5, MergedPath, I4> = H<E5, MergedPath, I4>, M5 extends H<E6, MergedPath, I5> = H<E6, MergedPath, I5>, M6 extends H<E7, MergedPath, I6> = H<E7, MergedPath, I6>>(path: P, ...handlers: [H<E2, MergedPath, I> & M1, H<E3, MergedPath, I2> & M2, H<E4, MergedPath, I3> & M3, H<E5, MergedPath, I4> & M4, H<E6, MergedPath, I5> & M5, H<E7, MergedPath, I6> & M6, H<E8, MergedPath, I7, R>]): Hono<E, AddSchemaIfHasResponse<MergeTypedResponse<R> | MergeMiddlewareResponse<M1> | MergeMiddlewareResponse<M2> | MergeMiddlewareResponse<M3> | MergeMiddlewareResponse<M4> | MergeMiddlewareResponse<M5> | MergeMiddlewareResponse<M6>, S, M, P, I7, BasePath>, BasePath, MergePath<BasePath, P>>;
63
+ <P extends string = CurrentPath, R extends HandlerResponse<any> = any, I extends Input = BlankInput, I2 extends Input = I, I3 extends Input = I & I2, I4 extends Input = I & I2 & I3, I5 extends Input = I & I2 & I3 & I4, I6 extends Input = I & I2 & I3 & I4 & I5, I7 extends Input = I & I2 & I3 & I4 & I5 & I6, I8 extends Input = I & I2 & I3 & I4 & I5 & I6 & I7, I9 extends Input = I & I2 & I3 & I4 & I5 & I6 & I7 & I8, E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[E, E2]>, E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>, E5 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4]>, E6 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5]>, E7 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6]>, E8 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7]>, E9 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8]>, E10 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8, E9]>, M1 extends H<E2, P, I> = H<E2, P, I>, M2 extends H<E3, P, I2> = H<E3, P, I2>, M3 extends H<E4, P, I3> = H<E4, P, I3>, M4 extends H<E5, P, I4> = H<E5, P, I4>, M5 extends H<E6, P, I5> = H<E6, P, I5>, M6 extends H<E7, P, I6> = H<E7, P, I6>, M7 extends H<E8, P, I7> = H<E8, P, I7>, M8 extends H<E9, P, I8> = H<E9, P, I8>>(...handlers: [H<E2, P, I> & M1, H<E3, P, I2> & M2, H<E4, P, I3> & M3, H<E5, P, I4> & M4, H<E6, P, I5> & M5, H<E7, P, I6> & M6, H<E8, P, I7> & M7, H<E9, P, I8> & M8, H<E10, P, I9, R>]): Hono<IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8, E9, E10]>, S & ToSchema<M, P, I9, MergeTypedResponse<R> | MergeMiddlewareResponse<M1> | MergeMiddlewareResponse<M2> | MergeMiddlewareResponse<M3> | MergeMiddlewareResponse<M4> | MergeMiddlewareResponse<M5> | MergeMiddlewareResponse<M6> | MergeMiddlewareResponse<M7> | MergeMiddlewareResponse<M8>>, BasePath, CurrentPath>;
64
+ <P extends string, MergedPath extends MergePath<BasePath, P>, R extends HandlerResponse<any> = any, I extends Input = BlankInput, I2 extends Input = I, I3 extends Input = I & I2, I4 extends Input = I & I2 & I3, I5 extends Input = I & I2 & I3 & I4, I6 extends Input = I & I2 & I3 & I4 & I5, I7 extends Input = I & I2 & I3 & I4 & I5 & I6, I8 extends Input = I & I2 & I3 & I4 & I5 & I6 & I7, E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[E, E2]>, E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>, E5 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4]>, E6 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5]>, E7 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6]>, E8 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7]>, E9 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8]>, M1 extends H<E2, MergedPath, I> = H<E2, MergedPath, I>, M2 extends H<E3, MergedPath, I2> = H<E3, MergedPath, I2>, M3 extends H<E4, MergedPath, I3> = H<E4, MergedPath, I3>, M4 extends H<E5, MergedPath, I4> = H<E5, MergedPath, I4>, M5 extends H<E6, MergedPath, I5> = H<E6, MergedPath, I5>, M6 extends H<E7, MergedPath, I6> = H<E7, MergedPath, I6>, M7 extends H<E8, MergedPath, I7> = H<E8, MergedPath, I7>>(path: P, ...handlers: [H<E2, MergedPath, I> & M1, H<E3, MergedPath, I2> & M2, H<E4, MergedPath, I3> & M3, H<E5, MergedPath, I4> & M4, H<E6, MergedPath, I5> & M5, H<E7, MergedPath, I6> & M6, H<E8, MergedPath, I7> & M7, H<E9, MergedPath, I8, R>]): Hono<E, AddSchemaIfHasResponse<MergeTypedResponse<R> | MergeMiddlewareResponse<M1> | MergeMiddlewareResponse<M2> | MergeMiddlewareResponse<M3> | MergeMiddlewareResponse<M4> | MergeMiddlewareResponse<M5> | MergeMiddlewareResponse<M6> | MergeMiddlewareResponse<M7>, S, M, P, I8, BasePath>, BasePath, MergePath<BasePath, P>>;
65
+ <P extends string = CurrentPath, R extends HandlerResponse<any> = any, I extends Input = BlankInput, I2 extends Input = I, I3 extends Input = I & I2, I4 extends Input = I & I2 & I3, I5 extends Input = I & I2 & I3 & I4, I6 extends Input = I & I2 & I3 & I4 & I5, I7 extends Input = I & I2 & I3 & I4 & I5 & I6, I8 extends Input = I & I2 & I3 & I4 & I5 & I6 & I7, I9 extends Input = I & I2 & I3 & I4 & I5 & I6 & I7 & I8, I10 extends Input = I & I2 & I3 & I4 & I5 & I6 & I7 & I8 & I9, E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[E, E2]>, E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>, E5 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4]>, E6 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5]>, E7 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6]>, E8 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7]>, E9 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8]>, E10 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8, E9]>, E11 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8, E9, E10]>, M1 extends H<E2, P, I> = H<E2, P, I>, M2 extends H<E3, P, I2> = H<E3, P, I2>, M3 extends H<E4, P, I3> = H<E4, P, I3>, M4 extends H<E5, P, I4> = H<E5, P, I4>, M5 extends H<E6, P, I5> = H<E6, P, I5>, M6 extends H<E7, P, I6> = H<E7, P, I6>, M7 extends H<E8, P, I7> = H<E8, P, I7>, M8 extends H<E9, P, I8> = H<E9, P, I8>, M9 extends H<E10, P, I9> = H<E10, P, I9>>(...handlers: [H<E2, P, I> & M1, H<E3, P, I2> & M2, H<E4, P, I3> & M3, H<E5, P, I4> & M4, H<E6, P, I5> & M5, H<E7, P, I6> & M6, H<E8, P, I7> & M7, H<E9, P, I8> & M8, H<E10, P, I9> & M9, H<E11, P, I10, R>]): Hono<IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8, E9, E10, E11]>, S & ToSchema<M, P, I10, MergeTypedResponse<R> | MergeMiddlewareResponse<M1> | MergeMiddlewareResponse<M2> | MergeMiddlewareResponse<M3> | MergeMiddlewareResponse<M4> | MergeMiddlewareResponse<M5> | MergeMiddlewareResponse<M6> | MergeMiddlewareResponse<M7> | MergeMiddlewareResponse<M8> | MergeMiddlewareResponse<M9>>, BasePath, CurrentPath>;
66
+ <P extends string, MergedPath extends MergePath<BasePath, P>, R extends HandlerResponse<any> = any, I extends Input = BlankInput, I2 extends Input = I, I3 extends Input = I & I2, I4 extends Input = I & I2 & I3, I5 extends Input = I & I2 & I3 & I4, I6 extends Input = I & I2 & I3 & I4 & I5, I7 extends Input = I & I2 & I3 & I4 & I5 & I6, I8 extends Input = I & I2 & I3 & I4 & I5 & I6 & I7, I9 extends Input = I & I2 & I3 & I4 & I5 & I6 & I7 & I8, E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[E, E2]>, E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>, E5 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4]>, E6 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5]>, E7 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6]>, E8 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7]>, E9 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8]>, E10 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8, E9]>, M1 extends H<E2, MergedPath, I> = H<E2, MergedPath, I>, M2 extends H<E3, MergedPath, I2> = H<E3, MergedPath, I2>, M3 extends H<E4, MergedPath, I3> = H<E4, MergedPath, I3>, M4 extends H<E5, MergedPath, I4> = H<E5, MergedPath, I4>, M5 extends H<E6, MergedPath, I5> = H<E6, MergedPath, I5>, M6 extends H<E7, MergedPath, I6> = H<E7, MergedPath, I6>, M7 extends H<E8, MergedPath, I7> = H<E8, MergedPath, I7>, M8 extends H<E9, MergedPath, I8> = H<E9, MergedPath, I8>>(path: P, ...handlers: [H<E2, MergedPath, I> & M1, H<E3, MergedPath, I2> & M2, H<E4, MergedPath, I3> & M3, H<E5, MergedPath, I4> & M4, H<E6, MergedPath, I5> & M5, H<E7, MergedPath, I6> & M6, H<E8, MergedPath, I7> & M7, H<E9, MergedPath, I8> & M8, H<E10, MergedPath, I9, R>]): Hono<E, AddSchemaIfHasResponse<MergeTypedResponse<R> | MergeMiddlewareResponse<M1> | MergeMiddlewareResponse<M2> | MergeMiddlewareResponse<M3> | MergeMiddlewareResponse<M4> | MergeMiddlewareResponse<M5> | MergeMiddlewareResponse<M6> | MergeMiddlewareResponse<M7> | MergeMiddlewareResponse<M8>, S, M, P, I9, BasePath>, BasePath, MergePath<BasePath, P>>;
67
+ <P extends string, MergedPath extends MergePath<BasePath, P>, R extends HandlerResponse<any> = any, I extends Input = BlankInput, I2 extends Input = I, I3 extends Input = I & I2, I4 extends Input = I & I2 & I3, I5 extends Input = I & I2 & I3 & I4, I6 extends Input = I & I2 & I3 & I4 & I5, I7 extends Input = I & I2 & I3 & I4 & I5 & I6, I8 extends Input = I & I2 & I3 & I4 & I5 & I6 & I7, I9 extends Input = I & I2 & I3 & I4 & I5 & I6 & I7 & I8, I10 extends Input = I & I2 & I3 & I4 & I5 & I6 & I7 & I8 & I9, E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[E, E2]>, E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>, E5 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4]>, E6 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5]>, E7 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6]>, E8 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7]>, E9 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8]>, E10 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8, E9]>, E11 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8, E9, E10]>, M1 extends H<E2, MergedPath, I> = H<E2, MergedPath, I>, M2 extends H<E3, MergedPath, I2> = H<E3, MergedPath, I2>, M3 extends H<E4, MergedPath, I3> = H<E4, MergedPath, I3>, M4 extends H<E5, MergedPath, I4> = H<E5, MergedPath, I4>, M5 extends H<E6, MergedPath, I5> = H<E6, MergedPath, I5>, M6 extends H<E7, MergedPath, I6> = H<E7, MergedPath, I6>, M7 extends H<E8, MergedPath, I7> = H<E8, MergedPath, I7>, M8 extends H<E9, MergedPath, I8> = H<E9, MergedPath, I8>, M9 extends H<E10, MergedPath, I9> = H<E10, MergedPath, I9>>(path: P, ...handlers: [H<E2, MergedPath, I> & M1, H<E3, MergedPath, I2> & M2, H<E4, MergedPath, I3> & M3, H<E5, MergedPath, I4> & M4, H<E6, MergedPath, I5> & M5, H<E7, MergedPath, I6> & M6, H<E8, MergedPath, I7> & M7, H<E9, MergedPath, I8> & M8, H<E10, MergedPath, I9> & M9, H<E11, MergedPath, I10, R>]): Hono<E, AddSchemaIfHasResponse<MergeTypedResponse<R> | MergeMiddlewareResponse<M1> | MergeMiddlewareResponse<M2> | MergeMiddlewareResponse<M3> | MergeMiddlewareResponse<M4> | MergeMiddlewareResponse<M5> | MergeMiddlewareResponse<M6> | MergeMiddlewareResponse<M7> | MergeMiddlewareResponse<M8> | MergeMiddlewareResponse<M9>, S, M, P, I10, BasePath>, BasePath, MergePath<BasePath, P>>;
68
+ <P extends string = CurrentPath, I extends Input = BlankInput, R extends HandlerResponse<any> = any>(...handlers: H<E, P, I, R>[]): Hono<E, S & ToSchema<M, P, I, MergeTypedResponse<R>>, BasePath, CurrentPath>;
69
+ <P extends string, I extends Input = BlankInput, R extends HandlerResponse<any> = any>(path: P, ...handlers: [H<E, MergePath<BasePath, P>, I, R>, ...H<E, MergePath<BasePath, P>, I, R>[]]): Hono<E, S & ToSchema<M, MergePath<BasePath, P>, I, MergeTypedResponse<R>>, BasePath, MergePath<BasePath, P>>;
70
+ <P extends string, R extends HandlerResponse<any> = any, I extends Input = BlankInput>(path: P): Hono<E, S & ToSchema<M, MergePath<BasePath, P>, I, MergeTypedResponse<R>>, BasePath, MergePath<BasePath, P>>;
182
71
  }
183
72
  export interface MiddlewareHandlerInterface<E extends Env = Env, S extends Schema = BlankSchema, BasePath extends string = '/'> {
184
- <E2 extends Env = E>(...handlers: MiddlewareHandler<E2, MergePath<BasePath, '*'>>[]): HonoBase<IntersectNonAnyTypes<[E, E2]>, S, BasePath, MergePath<BasePath, '*'>>;
185
- <E2 extends Env = E>(handler: MiddlewareHandler<E2, MergePath<BasePath, '*'>>): HonoBase<IntersectNonAnyTypes<[E, E2]>, S, BasePath, MergePath<BasePath, '*'>>;
186
- <E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[E, E2]>, P extends string = MergePath<BasePath, '*'>>(...handlers: [MiddlewareHandler<E2, P>, MiddlewareHandler<E3, P>]): HonoBase<IntersectNonAnyTypes<[E, E2, E3]>, S, BasePath, P>;
187
- <P extends string, MergedPath extends MergePath<BasePath, P>, E2 extends Env = E>(path: P, handler: MiddlewareHandler<E2, MergedPath, any, any>): HonoBase<IntersectNonAnyTypes<[E, E2]>, S, BasePath, MergedPath>;
188
- <E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[E, E2]>, E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>, P extends string = MergePath<BasePath, '*'>>(...handlers: [
189
- MiddlewareHandler<E2, P, any, any>,
190
- MiddlewareHandler<E3, P, any, any>,
191
- MiddlewareHandler<E4, P, any, any>
192
- ]): HonoBase<IntersectNonAnyTypes<[E, E2, E3, E4]>, S, BasePath, P>;
193
- <P extends string, MergedPath extends MergePath<BasePath, P>, E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[E, E2]>>(path: P, ...handlers: [MiddlewareHandler<E2, P>, MiddlewareHandler<E3, P>]): HonoBase<IntersectNonAnyTypes<[E, E2, E3]>, S, BasePath, MergedPath>;
194
- <E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[E, E2]>, E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>, E5 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4]>, P extends string = MergePath<BasePath, '*'>>(...handlers: [
195
- MiddlewareHandler<E2, P>,
196
- MiddlewareHandler<E3, P>,
197
- MiddlewareHandler<E4, P>,
198
- MiddlewareHandler<E5, P>
199
- ]): HonoBase<IntersectNonAnyTypes<[E, E2, E3, E4, E5]>, S, BasePath, P>;
200
- <P extends string, MergedPath extends MergePath<BasePath, P>, E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[E, E2]>, E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>>(path: P, ...handlers: [MiddlewareHandler<E2, P>, MiddlewareHandler<E3, P>, MiddlewareHandler<E4, P>]): HonoBase<IntersectNonAnyTypes<[E, E2, E3, E4]>, S, BasePath, MergedPath>;
201
- <E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[E, E2]>, E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>, E5 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4]>, E6 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5]>, P extends string = MergePath<BasePath, '*'>>(...handlers: [
202
- MiddlewareHandler<E2, P>,
203
- MiddlewareHandler<E3, P>,
204
- MiddlewareHandler<E4, P>,
205
- MiddlewareHandler<E5, P>,
206
- MiddlewareHandler<E6, P>
207
- ]): HonoBase<IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6]>, S, BasePath, P>;
208
- <P extends string, MergedPath extends MergePath<BasePath, P>, E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[E, E2]>, E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>, E5 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4]>>(path: P, ...handlers: [
209
- MiddlewareHandler<E2, P>,
210
- MiddlewareHandler<E3, P>,
211
- MiddlewareHandler<E4, P>,
212
- MiddlewareHandler<E5, P>
213
- ]): HonoBase<IntersectNonAnyTypes<[E, E2, E3, E4, E5]>, S, BasePath, MergedPath>;
214
- <E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[E, E2]>, E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>, E5 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4]>, E6 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5]>, E7 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6]>, P extends string = MergePath<BasePath, '*'>>(...handlers: [
215
- MiddlewareHandler<E2, P>,
216
- MiddlewareHandler<E3, P>,
217
- MiddlewareHandler<E4, P>,
218
- MiddlewareHandler<E5, P>,
219
- MiddlewareHandler<E6, P>,
220
- MiddlewareHandler<E7, P>
221
- ]): HonoBase<IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7]>, S, BasePath, P>;
222
- <P extends string, MergedPath extends MergePath<BasePath, P>, E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[E, E2]>, E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>, E5 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4]>, E6 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5]>>(path: P, ...handlers: [
223
- MiddlewareHandler<E2, P>,
224
- MiddlewareHandler<E3, P>,
225
- MiddlewareHandler<E4, P>,
226
- MiddlewareHandler<E5, P>,
227
- MiddlewareHandler<E6, P>
228
- ]): HonoBase<IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6]>, S, BasePath, MergedPath>;
229
- <E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[E, E2]>, E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>, E5 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4]>, E6 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5]>, E7 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6]>, E8 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7]>, P extends string = MergePath<BasePath, '*'>>(...handlers: [
230
- MiddlewareHandler<E2, P>,
231
- MiddlewareHandler<E3, P>,
232
- MiddlewareHandler<E4, P>,
233
- MiddlewareHandler<E5, P>,
234
- MiddlewareHandler<E6, P>,
235
- MiddlewareHandler<E7, P>,
236
- MiddlewareHandler<E8, P>
237
- ]): HonoBase<IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8]>, S, BasePath, P>;
238
- <P extends string, MergedPath extends MergePath<BasePath, P>, E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[E, E2]>, E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>, E5 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4]>, E6 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5]>, E7 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6]>>(path: P, ...handlers: [
239
- MiddlewareHandler<E2, P>,
240
- MiddlewareHandler<E3, P>,
241
- MiddlewareHandler<E4, P>,
242
- MiddlewareHandler<E5, P>,
243
- MiddlewareHandler<E6, P>,
244
- MiddlewareHandler<E7, P>
245
- ]): HonoBase<IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7]>, S, BasePath, MergedPath>;
246
- <E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[E, E2]>, E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>, E5 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4]>, E6 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5]>, E7 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6]>, E8 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7]>, E9 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8]>, P extends string = MergePath<BasePath, '*'>>(...handlers: [
247
- MiddlewareHandler<E2, P>,
248
- MiddlewareHandler<E3, P>,
249
- MiddlewareHandler<E4, P>,
250
- MiddlewareHandler<E5, P>,
251
- MiddlewareHandler<E6, P>,
252
- MiddlewareHandler<E7, P>,
253
- MiddlewareHandler<E8, P>,
254
- MiddlewareHandler<E9, P>
255
- ]): HonoBase<IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8, E9]>, S, BasePath, P>;
256
- <P extends string, MergedPath extends MergePath<BasePath, P>, E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[E, E2]>, E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>, E5 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4]>, E6 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5]>, E7 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6]>, E8 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7]>>(path: P, ...handlers: [
257
- MiddlewareHandler<E2, P>,
258
- MiddlewareHandler<E3, P>,
259
- MiddlewareHandler<E4, P>,
260
- MiddlewareHandler<E5, P>,
261
- MiddlewareHandler<E6, P>,
262
- MiddlewareHandler<E7, P>,
263
- MiddlewareHandler<E8, P>
264
- ]): HonoBase<IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8]>, S, BasePath, MergedPath>;
265
- <E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[E, E2]>, E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>, E5 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4]>, E6 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5]>, E7 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6]>, E8 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7]>, E9 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8]>, E10 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8, E9]>, P extends string = MergePath<BasePath, '*'>>(...handlers: [
266
- MiddlewareHandler<E2, P>,
267
- MiddlewareHandler<E3, P>,
268
- MiddlewareHandler<E4, P>,
269
- MiddlewareHandler<E5, P>,
270
- MiddlewareHandler<E6, P>,
271
- MiddlewareHandler<E7, P>,
272
- MiddlewareHandler<E8, P>,
273
- MiddlewareHandler<E9, P>,
274
- MiddlewareHandler<E10, P>
275
- ]): HonoBase<IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8, E9, E10]>, S, BasePath, P>;
276
- <P extends string, MergedPath extends MergePath<BasePath, P>, E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[E, E2]>, E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>, E5 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4]>, E6 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5]>, E7 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6]>, E8 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7]>, E9 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8]>>(path: P, ...handlers: [
277
- MiddlewareHandler<E2, P>,
278
- MiddlewareHandler<E3, P>,
279
- MiddlewareHandler<E4, P>,
280
- MiddlewareHandler<E5, P>,
281
- MiddlewareHandler<E6, P>,
282
- MiddlewareHandler<E7, P>,
283
- MiddlewareHandler<E8, P>,
284
- MiddlewareHandler<E9, P>
285
- ]): HonoBase<IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8, E9]>, S, BasePath, MergedPath>;
286
- <E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[E, E2]>, E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>, E5 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4]>, E6 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5]>, E7 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6]>, E8 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7]>, E9 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8]>, E10 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8, E9]>, E11 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8, E9, E10]>, P extends string = MergePath<BasePath, '*'>>(...handlers: [
287
- MiddlewareHandler<E2, P>,
288
- MiddlewareHandler<E3, P>,
289
- MiddlewareHandler<E4, P>,
290
- MiddlewareHandler<E5, P>,
291
- MiddlewareHandler<E6, P>,
292
- MiddlewareHandler<E7, P>,
293
- MiddlewareHandler<E8, P>,
294
- MiddlewareHandler<E9, P>,
295
- MiddlewareHandler<E10, P>,
296
- MiddlewareHandler<E11, P>
297
- ]): HonoBase<IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8, E9, E10, E11]>, S, BasePath, P>;
298
- <P extends string, MergedPath extends MergePath<BasePath, P>, E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[E, E2]>, E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>, E5 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4]>, E6 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5]>, E7 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6]>, E8 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7]>, E9 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8]>, E10 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8, E9]>>(path: P, ...handlers: [
299
- MiddlewareHandler<E2, P>,
300
- MiddlewareHandler<E3, P>,
301
- MiddlewareHandler<E4, P>,
302
- MiddlewareHandler<E5, P>,
303
- MiddlewareHandler<E6, P>,
304
- MiddlewareHandler<E7, P>,
305
- MiddlewareHandler<E8, P>,
306
- MiddlewareHandler<E9, P>,
307
- MiddlewareHandler<E10, P>
308
- ]): HonoBase<IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8, E9, E10]>, S, BasePath, MergedPath>;
309
- <P extends string, E2 extends Env = E>(path: P, ...handlers: MiddlewareHandler<E2, MergePath<BasePath, P>>[]): HonoBase<E, S, BasePath, MergePath<BasePath, P>>;
73
+ <E2 extends Env = E>(...handlers: MiddlewareHandler<E2, MergePath<BasePath, '*'>>[]): Hono<IntersectNonAnyTypes<[E, E2]>, S, BasePath, MergePath<BasePath, '*'>>;
74
+ <E2 extends Env = E>(handler: MiddlewareHandler<E2, MergePath<BasePath, '*'>>): Hono<IntersectNonAnyTypes<[E, E2]>, S, BasePath, MergePath<BasePath, '*'>>;
75
+ <E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[E, E2]>, P extends string = MergePath<BasePath, '*'>>(...handlers: [MiddlewareHandler<E2, P>, MiddlewareHandler<E3, P>]): Hono<IntersectNonAnyTypes<[E, E2, E3]>, S, BasePath, P>;
76
+ <P extends string, MergedPath extends MergePath<BasePath, P>, E2 extends Env = E>(path: P, handler: MiddlewareHandler<E2, MergedPath, any, any>): Hono<IntersectNonAnyTypes<[E, E2]>, S, BasePath, MergedPath>;
77
+ <E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[E, E2]>, E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>, P extends string = MergePath<BasePath, '*'>>(...handlers: [MiddlewareHandler<E2, P, any, any>, MiddlewareHandler<E3, P, any, any>, MiddlewareHandler<E4, P, any, any>]): Hono<IntersectNonAnyTypes<[E, E2, E3, E4]>, S, BasePath, P>;
78
+ <P extends string, MergedPath extends MergePath<BasePath, P>, E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[E, E2]>>(path: P, ...handlers: [MiddlewareHandler<E2, P>, MiddlewareHandler<E3, P>]): Hono<IntersectNonAnyTypes<[E, E2, E3]>, S, BasePath, MergedPath>;
79
+ <E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[E, E2]>, E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>, E5 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4]>, P extends string = MergePath<BasePath, '*'>>(...handlers: [MiddlewareHandler<E2, P>, MiddlewareHandler<E3, P>, MiddlewareHandler<E4, P>, MiddlewareHandler<E5, P>]): Hono<IntersectNonAnyTypes<[E, E2, E3, E4, E5]>, S, BasePath, P>;
80
+ <P extends string, MergedPath extends MergePath<BasePath, P>, E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[E, E2]>, E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>>(path: P, ...handlers: [MiddlewareHandler<E2, P>, MiddlewareHandler<E3, P>, MiddlewareHandler<E4, P>]): Hono<IntersectNonAnyTypes<[E, E2, E3, E4]>, S, BasePath, MergedPath>;
81
+ <E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[E, E2]>, E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>, E5 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4]>, E6 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5]>, P extends string = MergePath<BasePath, '*'>>(...handlers: [MiddlewareHandler<E2, P>, MiddlewareHandler<E3, P>, MiddlewareHandler<E4, P>, MiddlewareHandler<E5, P>, MiddlewareHandler<E6, P>]): Hono<IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6]>, S, BasePath, P>;
82
+ <P extends string, MergedPath extends MergePath<BasePath, P>, E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[E, E2]>, E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>, E5 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4]>>(path: P, ...handlers: [MiddlewareHandler<E2, P>, MiddlewareHandler<E3, P>, MiddlewareHandler<E4, P>, MiddlewareHandler<E5, P>]): Hono<IntersectNonAnyTypes<[E, E2, E3, E4, E5]>, S, BasePath, MergedPath>;
83
+ <E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[E, E2]>, E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>, E5 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4]>, E6 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5]>, E7 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6]>, P extends string = MergePath<BasePath, '*'>>(...handlers: [MiddlewareHandler<E2, P>, MiddlewareHandler<E3, P>, MiddlewareHandler<E4, P>, MiddlewareHandler<E5, P>, MiddlewareHandler<E6, P>, MiddlewareHandler<E7, P>]): Hono<IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7]>, S, BasePath, P>;
84
+ <P extends string, MergedPath extends MergePath<BasePath, P>, E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[E, E2]>, E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>, E5 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4]>, E6 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5]>>(path: P, ...handlers: [MiddlewareHandler<E2, P>, MiddlewareHandler<E3, P>, MiddlewareHandler<E4, P>, MiddlewareHandler<E5, P>, MiddlewareHandler<E6, P>]): Hono<IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6]>, S, BasePath, MergedPath>;
85
+ <E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[E, E2]>, E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>, E5 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4]>, E6 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5]>, E7 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6]>, E8 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7]>, P extends string = MergePath<BasePath, '*'>>(...handlers: [MiddlewareHandler<E2, P>, MiddlewareHandler<E3, P>, MiddlewareHandler<E4, P>, MiddlewareHandler<E5, P>, MiddlewareHandler<E6, P>, MiddlewareHandler<E7, P>, MiddlewareHandler<E8, P>]): Hono<IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8]>, S, BasePath, P>;
86
+ <P extends string, MergedPath extends MergePath<BasePath, P>, E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[E, E2]>, E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>, E5 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4]>, E6 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5]>, E7 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6]>>(path: P, ...handlers: [MiddlewareHandler<E2, P>, MiddlewareHandler<E3, P>, MiddlewareHandler<E4, P>, MiddlewareHandler<E5, P>, MiddlewareHandler<E6, P>, MiddlewareHandler<E7, P>]): Hono<IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7]>, S, BasePath, MergedPath>;
87
+ <E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[E, E2]>, E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>, E5 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4]>, E6 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5]>, E7 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6]>, E8 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7]>, E9 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8]>, P extends string = MergePath<BasePath, '*'>>(...handlers: [MiddlewareHandler<E2, P>, MiddlewareHandler<E3, P>, MiddlewareHandler<E4, P>, MiddlewareHandler<E5, P>, MiddlewareHandler<E6, P>, MiddlewareHandler<E7, P>, MiddlewareHandler<E8, P>, MiddlewareHandler<E9, P>]): Hono<IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8, E9]>, S, BasePath, P>;
88
+ <P extends string, MergedPath extends MergePath<BasePath, P>, E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[E, E2]>, E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>, E5 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4]>, E6 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5]>, E7 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6]>, E8 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7]>>(path: P, ...handlers: [MiddlewareHandler<E2, P>, MiddlewareHandler<E3, P>, MiddlewareHandler<E4, P>, MiddlewareHandler<E5, P>, MiddlewareHandler<E6, P>, MiddlewareHandler<E7, P>, MiddlewareHandler<E8, P>]): Hono<IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8]>, S, BasePath, MergedPath>;
89
+ <E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[E, E2]>, E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>, E5 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4]>, E6 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5]>, E7 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6]>, E8 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7]>, E9 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8]>, E10 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8, E9]>, P extends string = MergePath<BasePath, '*'>>(...handlers: [MiddlewareHandler<E2, P>, MiddlewareHandler<E3, P>, MiddlewareHandler<E4, P>, MiddlewareHandler<E5, P>, MiddlewareHandler<E6, P>, MiddlewareHandler<E7, P>, MiddlewareHandler<E8, P>, MiddlewareHandler<E9, P>, MiddlewareHandler<E10, P>]): Hono<IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8, E9, E10]>, S, BasePath, P>;
90
+ <P extends string, MergedPath extends MergePath<BasePath, P>, E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[E, E2]>, E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>, E5 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4]>, E6 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5]>, E7 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6]>, E8 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7]>, E9 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8]>>(path: P, ...handlers: [MiddlewareHandler<E2, P>, MiddlewareHandler<E3, P>, MiddlewareHandler<E4, P>, MiddlewareHandler<E5, P>, MiddlewareHandler<E6, P>, MiddlewareHandler<E7, P>, MiddlewareHandler<E8, P>, MiddlewareHandler<E9, P>]): Hono<IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8, E9]>, S, BasePath, MergedPath>;
91
+ <E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[E, E2]>, E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>, E5 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4]>, E6 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5]>, E7 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6]>, E8 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7]>, E9 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8]>, E10 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8, E9]>, E11 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8, E9, E10]>, P extends string = MergePath<BasePath, '*'>>(...handlers: [MiddlewareHandler<E2, P>, MiddlewareHandler<E3, P>, MiddlewareHandler<E4, P>, MiddlewareHandler<E5, P>, MiddlewareHandler<E6, P>, MiddlewareHandler<E7, P>, MiddlewareHandler<E8, P>, MiddlewareHandler<E9, P>, MiddlewareHandler<E10, P>, MiddlewareHandler<E11, P>]): Hono<IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8, E9, E10, E11]>, S, BasePath, P>;
92
+ <P extends string, MergedPath extends MergePath<BasePath, P>, E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[E, E2]>, E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>, E5 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4]>, E6 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5]>, E7 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6]>, E8 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7]>, E9 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8]>, E10 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8, E9]>>(path: P, ...handlers: [MiddlewareHandler<E2, P>, MiddlewareHandler<E3, P>, MiddlewareHandler<E4, P>, MiddlewareHandler<E5, P>, MiddlewareHandler<E6, P>, MiddlewareHandler<E7, P>, MiddlewareHandler<E8, P>, MiddlewareHandler<E9, P>, MiddlewareHandler<E10, P>]): Hono<IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8, E9, E10]>, S, BasePath, MergedPath>;
93
+ <P extends string, E2 extends Env = E>(path: P, ...handlers: MiddlewareHandler<E2, MergePath<BasePath, P>>[]): Hono<E, S, BasePath, MergePath<BasePath, P>>;
310
94
  }
311
95
  export interface OnHandlerInterface<E extends Env = Env, S extends Schema = BlankSchema, BasePath extends string = '/'> {
312
- <M extends string, P extends string, MergedPath extends MergePath<BasePath, P>, R extends HandlerResponse<any> = any, I extends Input = BlankInput, E2 extends Env = E>(method: M, path: P, handler: H<E2, MergedPath, I, R>): HonoBase<IntersectNonAnyTypes<[E, E2]>, S & ToSchema<M, MergePath<BasePath, P>, I, MergeTypedResponse<R>>, BasePath, MergePath<BasePath, P>>;
313
- <M extends string, P extends string, MergedPath extends MergePath<BasePath, P>, R extends HandlerResponse<any> = any, I extends Input = BlankInput, I2 extends Input = I, E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[E, E2]>, M1 extends H<E2, MergedPath, I> = H<E2, MergedPath, I>>(method: M, path: P, ...handlers: [H<E2, MergedPath, I> & M1, H<E3, MergedPath, I2, R>]): HonoBase<IntersectNonAnyTypes<[E, E2, E3]>, S & ToSchema<M, MergePath<BasePath, P>, I2, MergeTypedResponse<R> | MergeMiddlewareResponse<M1>>, BasePath, MergePath<BasePath, P>>;
314
- <M extends string, P extends string, MergedPath extends MergePath<BasePath, P>, R extends HandlerResponse<any> = any, I extends Input = BlankInput, I2 extends Input = I, I3 extends Input = I & I2, E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[E, E2]>, E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>, M1 extends H<E2, MergedPath, I> = H<E2, MergedPath, I>, M2 extends H<E3, MergedPath, I2> = H<E3, MergedPath, I2>>(method: M, path: P, ...handlers: [H<E2, MergedPath, I> & M1, H<E3, MergedPath, I2> & M2, H<E4, MergedPath, I3, R>]): HonoBase<IntersectNonAnyTypes<[E, E2, E3, E4]>, S & ToSchema<M, MergePath<BasePath, P>, I3, MergeTypedResponse<R> | MergeMiddlewareResponse<M1> | MergeMiddlewareResponse<M2>>, BasePath, MergePath<BasePath, P>>;
315
- <M extends string, P extends string, MergedPath extends MergePath<BasePath, P>, R extends HandlerResponse<any> = any, I extends Input = BlankInput, I2 extends Input = I, I3 extends Input = I & I2, I4 extends Input = I & I2 & I3, E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[E, E2]>, E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>, E5 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4]>, M1 extends H<E2, MergedPath, I> = H<E2, MergedPath, I>, M2 extends H<E3, MergedPath, I2> = H<E3, MergedPath, I2>, M3 extends H<E4, MergedPath, I3> = H<E4, MergedPath, I3>>(method: M, path: P, ...handlers: [
316
- H<E2, MergedPath, I> & M1,
317
- H<E3, MergedPath, I2> & M2,
318
- H<E4, MergedPath, I3> & M3,
319
- H<E5, MergedPath, I4, R>
320
- ]): HonoBase<IntersectNonAnyTypes<[E, E2, E3, E4, E5]>, S & ToSchema<M, MergePath<BasePath, P>, I4, MergeTypedResponse<R> | MergeMiddlewareResponse<M1> | MergeMiddlewareResponse<M2> | MergeMiddlewareResponse<M3>>, BasePath, MergePath<BasePath, P>>;
321
- <M extends string, P extends string, MergedPath extends MergePath<BasePath, P>, R extends HandlerResponse<any> = any, I extends Input = BlankInput, I2 extends Input = I, I3 extends Input = I & I2, I4 extends Input = I & I2 & I3, I5 extends Input = I & I2 & I3 & I4, E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[E, E2]>, E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>, E5 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4]>, E6 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5]>, M1 extends H<E2, MergedPath, I> = H<E2, MergedPath, I>, M2 extends H<E3, MergedPath, I2> = H<E3, MergedPath, I2>, M3 extends H<E4, MergedPath, I3> = H<E4, MergedPath, I3>, M4 extends H<E5, MergedPath, I4> = H<E5, MergedPath, I4>>(method: M, path: P, ...handlers: [
322
- H<E2, MergedPath, I> & M1,
323
- H<E3, MergedPath, I2> & M2,
324
- H<E4, MergedPath, I3> & M3,
325
- H<E5, MergedPath, I4> & M4,
326
- H<E6, MergedPath, I5, R>
327
- ]): HonoBase<IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6]>, S & ToSchema<M, MergePath<BasePath, P>, I5, MergeTypedResponse<R> | MergeMiddlewareResponse<M1> | MergeMiddlewareResponse<M2> | MergeMiddlewareResponse<M3> | MergeMiddlewareResponse<M4>>, BasePath, MergePath<BasePath, P>>;
328
- <M extends string, P extends string, MergedPath extends MergePath<BasePath, P>, R extends HandlerResponse<any> = any, I extends Input = BlankInput, I2 extends Input = I, I3 extends Input = I & I2, I4 extends Input = I & I2 & I3, I5 extends Input = I & I2 & I3 & I4, I6 extends Input = I & I2 & I3 & I4 & I5, E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[E, E2]>, E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>, E5 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4]>, E6 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5]>, E7 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6]>, M1 extends H<E2, MergedPath, I> = H<E2, MergedPath, I>, M2 extends H<E3, MergedPath, I2> = H<E3, MergedPath, I2>, M3 extends H<E4, MergedPath, I3> = H<E4, MergedPath, I3>, M4 extends H<E5, MergedPath, I4> = H<E5, MergedPath, I4>, M5 extends H<E6, MergedPath, I5> = H<E6, MergedPath, I5>>(method: M, path: P, ...handlers: [
329
- H<E2, MergedPath, I> & M1,
330
- H<E3, MergedPath, I2> & M2,
331
- H<E4, MergedPath, I3> & M3,
332
- H<E5, MergedPath, I4> & M4,
333
- H<E6, MergedPath, I5> & M5,
334
- H<E7, MergedPath, I6, R>
335
- ]): HonoBase<IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7]>, S & ToSchema<M, MergePath<BasePath, P>, I6, MergeTypedResponse<R> | MergeMiddlewareResponse<M1> | MergeMiddlewareResponse<M2> | MergeMiddlewareResponse<M3> | MergeMiddlewareResponse<M4> | MergeMiddlewareResponse<M5>>, BasePath, MergePath<BasePath, P>>;
336
- <M extends string, P extends string, MergedPath extends MergePath<BasePath, P>, R extends HandlerResponse<any> = any, I extends Input = BlankInput, I2 extends Input = I, I3 extends Input = I & I2, I4 extends Input = I & I2 & I3, I5 extends Input = I & I2 & I3 & I4, I6 extends Input = I & I2 & I3 & I4 & I5, I7 extends Input = I & I2 & I3 & I4 & I5 & I6, E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[E, E2]>, E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>, E5 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4]>, E6 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5]>, E7 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6]>, E8 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7]>, M1 extends H<E2, MergedPath, I> = H<E2, MergedPath, I>, M2 extends H<E3, MergedPath, I2> = H<E3, MergedPath, I2>, M3 extends H<E4, MergedPath, I3> = H<E4, MergedPath, I3>, M4 extends H<E5, MergedPath, I4> = H<E5, MergedPath, I4>, M5 extends H<E6, MergedPath, I5> = H<E6, MergedPath, I5>, M6 extends H<E7, MergedPath, I6> = H<E7, MergedPath, I6>>(method: M, path: P, ...handlers: [
337
- H<E2, MergedPath, I> & M1,
338
- H<E3, MergedPath, I2> & M2,
339
- H<E4, MergedPath, I3> & M3,
340
- H<E5, MergedPath, I4> & M4,
341
- H<E6, MergedPath, I5> & M5,
342
- H<E7, MergedPath, I6> & M6,
343
- H<E8, MergedPath, I7, R>
344
- ]): HonoBase<IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8]>, S & ToSchema<M, MergePath<BasePath, P>, I7, MergeTypedResponse<R> | MergeMiddlewareResponse<M1> | MergeMiddlewareResponse<M2> | MergeMiddlewareResponse<M3> | MergeMiddlewareResponse<M4> | MergeMiddlewareResponse<M5> | MergeMiddlewareResponse<M6>>, BasePath, MergePath<BasePath, P>>;
345
- <M extends string, P extends string, MergedPath extends MergePath<BasePath, P>, R extends HandlerResponse<any> = any, I extends Input = BlankInput, I2 extends Input = I, I3 extends Input = I & I2, I4 extends Input = I & I2 & I3, I5 extends Input = I & I2 & I3 & I4, I6 extends Input = I & I2 & I3 & I4 & I5, I7 extends Input = I & I2 & I3 & I4 & I5 & I6, I8 extends Input = I & I2 & I3 & I4 & I5 & I6 & I7, E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[E, E2]>, E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>, E5 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4]>, E6 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5]>, E7 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6]>, E8 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7]>, E9 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8]>, M1 extends H<E2, MergedPath, I> = H<E2, MergedPath, I>, M2 extends H<E3, MergedPath, I2> = H<E3, MergedPath, I2>, M3 extends H<E4, MergedPath, I3> = H<E4, MergedPath, I3>, M4 extends H<E5, MergedPath, I4> = H<E5, MergedPath, I4>, M5 extends H<E6, MergedPath, I5> = H<E6, MergedPath, I5>, M6 extends H<E7, MergedPath, I6> = H<E7, MergedPath, I6>, M7 extends H<E8, MergedPath, I7> = H<E8, MergedPath, I7>>(method: M, path: P, ...handlers: [
346
- H<E2, MergedPath, I> & M1,
347
- H<E3, MergedPath, I2> & M2,
348
- H<E4, MergedPath, I3> & M3,
349
- H<E5, MergedPath, I4> & M4,
350
- H<E6, MergedPath, I5> & M5,
351
- H<E7, MergedPath, I6> & M6,
352
- H<E8, MergedPath, I7> & M7,
353
- H<E9, MergedPath, I8, R>
354
- ]): HonoBase<IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8, E9]>, S & ToSchema<M, MergePath<BasePath, P>, I8, MergeTypedResponse<R> | MergeMiddlewareResponse<M1> | MergeMiddlewareResponse<M2> | MergeMiddlewareResponse<M3> | MergeMiddlewareResponse<M4> | MergeMiddlewareResponse<M5> | MergeMiddlewareResponse<M6> | MergeMiddlewareResponse<M7>>, BasePath, MergePath<BasePath, P>>;
355
- <M extends string, P extends string, MergedPath extends MergePath<BasePath, P>, R extends HandlerResponse<any> = any, I extends Input = BlankInput, I2 extends Input = I, I3 extends Input = I & I2, I4 extends Input = I & I2 & I3, I5 extends Input = I & I2 & I3 & I4, I6 extends Input = I & I2 & I3 & I4 & I5, I7 extends Input = I & I2 & I3 & I4 & I5 & I6, I8 extends Input = I & I2 & I3 & I4 & I5 & I6 & I7, I9 extends Input = I & I2 & I3 & I4 & I5 & I6 & I7 & I8, E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[E, E2]>, E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>, E5 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4]>, E6 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5]>, E7 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6]>, E8 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7]>, E9 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8]>, E10 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8, E9]>, M1 extends H<E2, MergedPath, I> = H<E2, MergedPath, I>, M2 extends H<E3, MergedPath, I2> = H<E3, MergedPath, I2>, M3 extends H<E4, MergedPath, I3> = H<E4, MergedPath, I3>, M4 extends H<E5, MergedPath, I4> = H<E5, MergedPath, I4>, M5 extends H<E6, MergedPath, I5> = H<E6, MergedPath, I5>, M6 extends H<E7, MergedPath, I6> = H<E7, MergedPath, I6>, M7 extends H<E8, MergedPath, I7> = H<E8, MergedPath, I7>, M8 extends H<E9, MergedPath, I8> = H<E9, MergedPath, I8>>(method: M, path: P, ...handlers: [
356
- H<E2, MergedPath, I> & M1,
357
- H<E3, MergedPath, I2> & M2,
358
- H<E4, MergedPath, I3> & M3,
359
- H<E5, MergedPath, I4> & M4,
360
- H<E6, MergedPath, I5> & M5,
361
- H<E7, MergedPath, I6> & M6,
362
- H<E8, MergedPath, I7> & M7,
363
- H<E9, MergedPath, I8> & M8,
364
- H<E10, MergedPath, I9, R>
365
- ]): HonoBase<IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8, E9, E10]>, S & ToSchema<M, MergePath<BasePath, P>, I9, MergeTypedResponse<R> | MergeMiddlewareResponse<M1> | MergeMiddlewareResponse<M2> | MergeMiddlewareResponse<M3> | MergeMiddlewareResponse<M4> | MergeMiddlewareResponse<M5> | MergeMiddlewareResponse<M6> | MergeMiddlewareResponse<M7> | MergeMiddlewareResponse<M8>>, BasePath, MergePath<BasePath, P>>;
366
- <M extends string, P extends string, MergedPath extends MergePath<BasePath, P>, R extends HandlerResponse<any> = any, I extends Input = BlankInput, I2 extends Input = I, I3 extends Input = I & I2, I4 extends Input = I & I2 & I3, I5 extends Input = I & I2 & I3 & I4, I6 extends Input = I & I2 & I3 & I4 & I5, I7 extends Input = I & I2 & I3 & I4 & I5 & I6, I8 extends Input = I & I2 & I3 & I4 & I5 & I6 & I7, I9 extends Input = I & I2 & I3 & I4 & I5 & I6 & I7 & I8, I10 extends Input = I & I2 & I3 & I4 & I5 & I6 & I7 & I8 & I9, E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[E, E2]>, E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>, E5 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4]>, E6 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5]>, E7 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6]>, E8 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7]>, E9 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8]>, E10 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8, E9]>, E11 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8, E9, E10]>, M1 extends H<E2, MergedPath, I> = H<E2, MergedPath, I>, M2 extends H<E3, MergedPath, I2> = H<E3, MergedPath, I2>, M3 extends H<E4, MergedPath, I3> = H<E4, MergedPath, I3>, M4 extends H<E5, MergedPath, I4> = H<E5, MergedPath, I4>, M5 extends H<E6, MergedPath, I5> = H<E6, MergedPath, I5>, M6 extends H<E7, MergedPath, I6> = H<E7, MergedPath, I6>, M7 extends H<E8, MergedPath, I7> = H<E8, MergedPath, I7>, M8 extends H<E9, MergedPath, I8> = H<E9, MergedPath, I8>, M9 extends H<E10, MergedPath, I9> = H<E10, MergedPath, I9>>(method: M, path: P, ...handlers: [
367
- H<E2, MergedPath, I> & M1,
368
- H<E3, MergedPath, I2> & M2,
369
- H<E4, MergedPath, I3> & M3,
370
- H<E5, MergedPath, I4> & M4,
371
- H<E6, MergedPath, I5> & M5,
372
- H<E7, MergedPath, I6> & M6,
373
- H<E8, MergedPath, I7> & M7,
374
- H<E9, MergedPath, I8> & M8,
375
- H<E10, MergedPath, I9> & M9,
376
- H<E11, MergedPath, I10, R>
377
- ]): HonoBase<IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8, E9, E10, E11]>, S & ToSchema<M, MergePath<BasePath, P>, I10, MergeTypedResponse<R> | MergeMiddlewareResponse<M1> | MergeMiddlewareResponse<M2> | MergeMiddlewareResponse<M3> | MergeMiddlewareResponse<M4> | MergeMiddlewareResponse<M5> | MergeMiddlewareResponse<M6> | MergeMiddlewareResponse<M7> | MergeMiddlewareResponse<M8> | MergeMiddlewareResponse<M9>>, BasePath, MergePath<BasePath, P>>;
378
- <M extends string, P extends string, R extends HandlerResponse<any> = any, I extends Input = BlankInput>(method: M, path: P, ...handlers: [H<E, MergePath<BasePath, P>, I, R>, ...H<E, MergePath<BasePath, P>, I, R>[]]): HonoBase<E, S & ToSchema<M, MergePath<BasePath, P>, I, MergeTypedResponse<R>>, BasePath, MergePath<BasePath, P>>;
379
- <M extends string, P extends string, MergedPath extends MergePath<BasePath, P>, R extends HandlerResponse<any> = any, I extends Input = BlankInput, E2 extends Env = E>(methods: M[], path: P, handler: H<E2, MergedPath, I, R>): HonoBase<IntersectNonAnyTypes<[E, E2]>, S & ToSchema<M, MergePath<BasePath, P>, I, MergeTypedResponse<R>>, BasePath, MergePath<BasePath, P>>;
380
- <M extends string, P extends string, MergedPath extends MergePath<BasePath, P>, R extends HandlerResponse<any> = any, I extends Input = BlankInput, I2 extends Input = I, E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[E, E2]>, M1 extends H<E2, MergedPath, I> = H<E2, MergedPath, I>>(methods: M[], path: P, ...handlers: [H<E2, MergedPath, I> & M1, H<E3, MergedPath, I2, R>]): HonoBase<IntersectNonAnyTypes<[E, E2, E3]>, S & ToSchema<M, MergePath<BasePath, P>, I2, MergeTypedResponse<R> | MergeMiddlewareResponse<M1>>, BasePath, MergePath<BasePath, P>>;
381
- <M extends string, P extends string, MergedPath extends MergePath<BasePath, P>, R extends HandlerResponse<any> = any, I extends Input = BlankInput, I2 extends Input = I, I3 extends Input = I & I2, E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[E, E2]>, E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>, M1 extends H<E2, MergedPath, I> = H<E2, MergedPath, I>, M2 extends H<E3, MergedPath, I2> = H<E3, MergedPath, I2>>(methods: M[], path: P, ...handlers: [H<E2, MergedPath, I> & M1, H<E3, MergedPath, I2> & M2, H<E4, MergedPath, I3, R>]): HonoBase<IntersectNonAnyTypes<[E, E2, E3, E4]>, S & ToSchema<M, MergePath<BasePath, P>, I3, MergeTypedResponse<R> | MergeMiddlewareResponse<M1> | MergeMiddlewareResponse<M2>>, BasePath, MergePath<BasePath, P>>;
382
- <M extends string, P extends string, MergedPath extends MergePath<BasePath, P>, R extends HandlerResponse<any> = any, I extends Input = BlankInput, I2 extends Input = I, I3 extends Input = I & I2, I4 extends Input = I & I2 & I3, E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[E, E2]>, E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>, E5 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4]>, M1 extends H<E2, MergedPath, I> = H<E2, MergedPath, I>, M2 extends H<E3, MergedPath, I2> = H<E3, MergedPath, I2>, M3 extends H<E4, MergedPath, I3> = H<E4, MergedPath, I3>>(methods: M[], path: P, ...handlers: [
383
- H<E2, MergedPath, I> & M1,
384
- H<E3, MergedPath, I2> & M2,
385
- H<E4, MergedPath, I3> & M3,
386
- H<E5, MergedPath, I4, R>
387
- ]): HonoBase<IntersectNonAnyTypes<[E, E2, E3, E4, E5]>, S & ToSchema<M, MergePath<BasePath, P>, I4, MergeTypedResponse<R> | MergeMiddlewareResponse<M1> | MergeMiddlewareResponse<M2> | MergeMiddlewareResponse<M3>>, BasePath, MergePath<BasePath, P>>;
388
- <M extends string, P extends string, MergedPath extends MergePath<BasePath, P>, R extends HandlerResponse<any> = any, I extends Input = BlankInput, I2 extends Input = I, I3 extends Input = I & I2, I4 extends Input = I & I2 & I3, I5 extends Input = I & I2 & I3 & I4, E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[E, E2]>, E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>, E5 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4]>, E6 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5]>, M1 extends H<E2, MergedPath, I> = H<E2, MergedPath, I>, M2 extends H<E3, MergedPath, I2> = H<E3, MergedPath, I2>, M3 extends H<E4, MergedPath, I3> = H<E4, MergedPath, I3>, M4 extends H<E5, MergedPath, I4> = H<E5, MergedPath, I4>>(methods: M[], path: P, ...handlers: [
389
- H<E2, MergedPath, I> & M1,
390
- H<E3, MergedPath, I2> & M2,
391
- H<E4, MergedPath, I3> & M3,
392
- H<E5, MergedPath, I4> & M4,
393
- H<E6, MergedPath, I5, R>
394
- ]): HonoBase<IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6]>, S & ToSchema<M, MergePath<BasePath, P>, I5, MergeTypedResponse<R> | MergeMiddlewareResponse<M1> | MergeMiddlewareResponse<M2> | MergeMiddlewareResponse<M3> | MergeMiddlewareResponse<M4>>, BasePath, MergePath<BasePath, P>>;
395
- <M extends string, P extends string, MergedPath extends MergePath<BasePath, P>, R extends HandlerResponse<any> = any, I extends Input = BlankInput, I2 extends Input = I, I3 extends Input = I & I2, I4 extends Input = I & I2 & I3, I5 extends Input = I & I2 & I3 & I4, I6 extends Input = I & I2 & I3 & I4 & I5, E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[E, E2]>, E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>, E5 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4]>, E6 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5]>, E7 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6]>, M1 extends H<E2, MergedPath, I> = H<E2, MergedPath, I>, M2 extends H<E3, MergedPath, I2> = H<E3, MergedPath, I2>, M3 extends H<E4, MergedPath, I3> = H<E4, MergedPath, I3>, M4 extends H<E5, MergedPath, I4> = H<E5, MergedPath, I4>, M5 extends H<E6, MergedPath, I5> = H<E6, MergedPath, I5>>(methods: M[], path: P, ...handlers: [
396
- H<E2, MergedPath, I> & M1,
397
- H<E3, MergedPath, I2> & M2,
398
- H<E4, MergedPath, I3> & M3,
399
- H<E5, MergedPath, I4> & M4,
400
- H<E6, MergedPath, I5> & M5,
401
- H<E7, MergedPath, I6, R>
402
- ]): HonoBase<IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7]>, S & ToSchema<M, MergePath<BasePath, P>, I6, MergeTypedResponse<R> | MergeMiddlewareResponse<M1> | MergeMiddlewareResponse<M2> | MergeMiddlewareResponse<M3> | MergeMiddlewareResponse<M4> | MergeMiddlewareResponse<M5>>, BasePath, MergePath<BasePath, P>>;
403
- <M extends string, P extends string, MergedPath extends MergePath<BasePath, P>, R extends HandlerResponse<any> = any, I extends Input = BlankInput, I2 extends Input = I, I3 extends Input = I & I2, I4 extends Input = I & I2 & I3, I5 extends Input = I & I2 & I3 & I4, I6 extends Input = I & I2 & I3 & I4 & I5, I7 extends Input = I & I2 & I3 & I4 & I5 & I6, E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[E, E2]>, E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>, E5 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4]>, E6 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5]>, E7 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6]>, E8 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7]>, M1 extends H<E2, MergedPath, I> = H<E2, MergedPath, I>, M2 extends H<E3, MergedPath, I2> = H<E3, MergedPath, I2>, M3 extends H<E4, MergedPath, I3> = H<E4, MergedPath, I3>, M4 extends H<E5, MergedPath, I4> = H<E5, MergedPath, I4>, M5 extends H<E6, MergedPath, I5> = H<E6, MergedPath, I5>, M6 extends H<E7, MergedPath, I6> = H<E7, MergedPath, I6>>(methods: M[], path: P, ...handlers: [
404
- H<E2, MergedPath, I> & M1,
405
- H<E3, MergedPath, I2> & M2,
406
- H<E4, MergedPath, I3> & M3,
407
- H<E5, MergedPath, I4> & M4,
408
- H<E6, MergedPath, I5> & M5,
409
- H<E7, MergedPath, I6> & M6,
410
- H<E8, MergedPath, I7, R>
411
- ]): HonoBase<IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8]>, S & ToSchema<M, MergePath<BasePath, P>, I7, MergeTypedResponse<R> | MergeMiddlewareResponse<M1> | MergeMiddlewareResponse<M2> | MergeMiddlewareResponse<M3> | MergeMiddlewareResponse<M4> | MergeMiddlewareResponse<M5> | MergeMiddlewareResponse<M6>>, BasePath, MergePath<BasePath, P>>;
412
- <M extends string, P extends string, MergedPath extends MergePath<BasePath, P>, R extends HandlerResponse<any> = any, I extends Input = BlankInput, I2 extends Input = I, I3 extends Input = I & I2, I4 extends Input = I & I2 & I3, I5 extends Input = I & I2 & I3 & I4, I6 extends Input = I & I2 & I3 & I4 & I5, I7 extends Input = I & I2 & I3 & I4 & I5 & I6, I8 extends Input = I & I2 & I3 & I4 & I5 & I6 & I7, E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[E, E2]>, E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>, E5 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4]>, E6 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5]>, E7 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6]>, E8 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7]>, E9 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8]>, M1 extends H<E2, MergedPath, I> = H<E2, MergedPath, I>, M2 extends H<E3, MergedPath, I2> = H<E3, MergedPath, I2>, M3 extends H<E4, MergedPath, I3> = H<E4, MergedPath, I3>, M4 extends H<E5, MergedPath, I4> = H<E5, MergedPath, I4>, M5 extends H<E6, MergedPath, I5> = H<E6, MergedPath, I5>, M6 extends H<E7, MergedPath, I6> = H<E7, MergedPath, I6>, M7 extends H<E8, MergedPath, I7> = H<E8, MergedPath, I7>>(methods: M[], path: P, ...handlers: [
413
- H<E2, MergedPath, I> & M1,
414
- H<E3, MergedPath, I2> & M2,
415
- H<E4, MergedPath, I3> & M3,
416
- H<E5, MergedPath, I4> & M4,
417
- H<E6, MergedPath, I5> & M5,
418
- H<E7, MergedPath, I6> & M6,
419
- H<E8, MergedPath, I7> & M7,
420
- H<E9, MergedPath, I8, R>
421
- ]): HonoBase<IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8, E9]>, S & ToSchema<M, MergePath<BasePath, P>, I8, MergeTypedResponse<R> | MergeMiddlewareResponse<M1> | MergeMiddlewareResponse<M2> | MergeMiddlewareResponse<M3> | MergeMiddlewareResponse<M4> | MergeMiddlewareResponse<M5> | MergeMiddlewareResponse<M6> | MergeMiddlewareResponse<M7>>, BasePath, MergePath<BasePath, P>>;
422
- <M extends string, P extends string, MergedPath extends MergePath<BasePath, P>, R extends HandlerResponse<any> = any, I extends Input = BlankInput, I2 extends Input = I, I3 extends Input = I & I2, I4 extends Input = I & I2 & I3, I5 extends Input = I & I2 & I3 & I4, I6 extends Input = I & I2 & I3 & I4 & I5, I7 extends Input = I & I2 & I3 & I4 & I5 & I6, I8 extends Input = I & I2 & I3 & I4 & I5 & I6 & I7, I9 extends Input = I & I2 & I3 & I4 & I5 & I6 & I7 & I8, E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[E, E2]>, E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>, E5 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4]>, E6 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5]>, E7 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6]>, E8 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7]>, E9 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8]>, E10 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8, E9]>, M1 extends H<E2, MergedPath, I> = H<E2, MergedPath, I>, M2 extends H<E3, MergedPath, I2> = H<E3, MergedPath, I2>, M3 extends H<E4, MergedPath, I3> = H<E4, MergedPath, I3>, M4 extends H<E5, MergedPath, I4> = H<E5, MergedPath, I4>, M5 extends H<E6, MergedPath, I5> = H<E6, MergedPath, I5>, M6 extends H<E7, MergedPath, I6> = H<E7, MergedPath, I6>, M7 extends H<E8, MergedPath, I7> = H<E8, MergedPath, I7>, M8 extends H<E9, MergedPath, I8> = H<E9, MergedPath, I8>>(methods: M[], path: P, ...handlers: [
423
- H<E2, MergedPath, I> & M1,
424
- H<E3, MergedPath, I2> & M2,
425
- H<E4, MergedPath, I3> & M3,
426
- H<E5, MergedPath, I4> & M4,
427
- H<E6, MergedPath, I5> & M5,
428
- H<E7, MergedPath, I6> & M6,
429
- H<E8, MergedPath, I7> & M7,
430
- H<E9, MergedPath, I8> & M8,
431
- H<E10, MergedPath, I9, R>
432
- ]): HonoBase<IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8, E9, E10]>, S & ToSchema<M, MergePath<BasePath, P>, I9, MergeTypedResponse<R> | MergeMiddlewareResponse<M1> | MergeMiddlewareResponse<M2> | MergeMiddlewareResponse<M3> | MergeMiddlewareResponse<M4> | MergeMiddlewareResponse<M5> | MergeMiddlewareResponse<M6> | MergeMiddlewareResponse<M7> | MergeMiddlewareResponse<M8>>, BasePath, MergePath<BasePath, P>>;
433
- <M extends string, P extends string, MergedPath extends MergePath<BasePath, P>, R extends HandlerResponse<any> = any, I extends Input = BlankInput, I2 extends Input = I, I3 extends Input = I & I2, I4 extends Input = I & I2 & I3, I5 extends Input = I & I2 & I3 & I4, I6 extends Input = I & I2 & I3 & I4 & I5, I7 extends Input = I & I2 & I3 & I4 & I5 & I6, I8 extends Input = I & I2 & I3 & I4 & I5 & I6 & I7, I9 extends Input = I & I2 & I3 & I4 & I5 & I6 & I7 & I8, I10 extends Input = I & I2 & I3 & I4 & I5 & I6 & I7 & I8 & I9, E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[E, E2]>, E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>, E5 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4]>, E6 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5]>, E7 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6]>, E8 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7]>, E9 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8]>, E10 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8, E9]>, E11 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8, E9, E10]>, M1 extends H<E2, MergedPath, I> = H<E2, MergedPath, I>, M2 extends H<E3, MergedPath, I2> = H<E3, MergedPath, I2>, M3 extends H<E4, MergedPath, I3> = H<E4, MergedPath, I3>, M4 extends H<E5, MergedPath, I4> = H<E5, MergedPath, I4>, M5 extends H<E6, MergedPath, I5> = H<E6, MergedPath, I5>, M6 extends H<E7, MergedPath, I6> = H<E7, MergedPath, I6>, M7 extends H<E8, MergedPath, I7> = H<E8, MergedPath, I7>, M8 extends H<E9, MergedPath, I8> = H<E9, MergedPath, I8>, M9 extends H<E10, MergedPath, I9> = H<E10, MergedPath, I9>>(methods: M[], path: P, ...handlers: [
434
- H<E2, MergedPath, I> & M1,
435
- H<E3, MergedPath, I2> & M2,
436
- H<E4, MergedPath, I3> & M3,
437
- H<E5, MergedPath, I4> & M4,
438
- H<E6, MergedPath, I5> & M5,
439
- H<E7, MergedPath, I6> & M6,
440
- H<E8, MergedPath, I7> & M7,
441
- H<E9, MergedPath, I8> & M8,
442
- H<E10, MergedPath, I9> & M9,
443
- H<E11, MergedPath, I10, R>
444
- ]): HonoBase<IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8, E9, E10, E11]>, S & ToSchema<M, MergePath<BasePath, P>, I10, MergeTypedResponse<R> | MergeMiddlewareResponse<M1> | MergeMiddlewareResponse<M2> | MergeMiddlewareResponse<M3> | MergeMiddlewareResponse<M4> | MergeMiddlewareResponse<M5> | MergeMiddlewareResponse<M6> | MergeMiddlewareResponse<M7> | MergeMiddlewareResponse<M8> | MergeMiddlewareResponse<M9>>, BasePath, MergePath<BasePath, P>>;
445
- <M extends string, P extends string, R extends HandlerResponse<any> = any, I extends Input = BlankInput>(methods: M[], path: P, ...handlers: [H<E, MergePath<BasePath, P>, I, R>, ...H<E, MergePath<BasePath, P>, I, R>[]]): HonoBase<E, S & ToSchema<M, MergePath<BasePath, P>, I, MergeTypedResponse<R>>, BasePath, MergePath<BasePath, P>>;
446
- <M extends string, const Ps extends string[], I extends Input = BlankInput, R extends HandlerResponse<any> = any, E2 extends Env = E>(methods: M | M[], paths: Ps, ...handlers: H<E2, MergePath<BasePath, Ps[number]>, I, R>[]): HonoBase<E, S & ToSchema<M, MergePath<BasePath, Ps[number]>, I, MergeTypedResponse<R>>, BasePath, Ps extends [...string[], infer LastPath extends string] ? MergePath<BasePath, LastPath> : never>;
96
+ <M extends string, P extends string, MergedPath extends MergePath<BasePath, P>, R extends HandlerResponse<any> = any, I extends Input = BlankInput, E2 extends Env = E>(method: M, path: P, handler: H<E2, MergedPath, I, R>): Hono<IntersectNonAnyTypes<[E, E2]>, S & ToSchema<M, MergePath<BasePath, P>, I, MergeTypedResponse<R>>, BasePath, MergePath<BasePath, P>>;
97
+ <M extends string, P extends string, MergedPath extends MergePath<BasePath, P>, R extends HandlerResponse<any> = any, I extends Input = BlankInput, I2 extends Input = I, E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[E, E2]>, M1 extends H<E2, MergedPath, I> = H<E2, MergedPath, I>>(method: M, path: P, ...handlers: [H<E2, MergedPath, I> & M1, H<E3, MergedPath, I2, R>]): Hono<IntersectNonAnyTypes<[E, E2, E3]>, S & ToSchema<M, MergePath<BasePath, P>, I2, MergeTypedResponse<R> | MergeMiddlewareResponse<M1>>, BasePath, MergePath<BasePath, P>>;
98
+ <M extends string, P extends string, MergedPath extends MergePath<BasePath, P>, R extends HandlerResponse<any> = any, I extends Input = BlankInput, I2 extends Input = I, I3 extends Input = I & I2, E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[E, E2]>, E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>, M1 extends H<E2, MergedPath, I> = H<E2, MergedPath, I>, M2 extends H<E3, MergedPath, I2> = H<E3, MergedPath, I2>>(method: M, path: P, ...handlers: [H<E2, MergedPath, I> & M1, H<E3, MergedPath, I2> & M2, H<E4, MergedPath, I3, R>]): Hono<IntersectNonAnyTypes<[E, E2, E3, E4]>, S & ToSchema<M, MergePath<BasePath, P>, I3, MergeTypedResponse<R> | MergeMiddlewareResponse<M1> | MergeMiddlewareResponse<M2>>, BasePath, MergePath<BasePath, P>>;
99
+ <M extends string, P extends string, MergedPath extends MergePath<BasePath, P>, R extends HandlerResponse<any> = any, I extends Input = BlankInput, I2 extends Input = I, I3 extends Input = I & I2, I4 extends Input = I & I2 & I3, E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[E, E2]>, E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>, E5 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4]>, M1 extends H<E2, MergedPath, I> = H<E2, MergedPath, I>, M2 extends H<E3, MergedPath, I2> = H<E3, MergedPath, I2>, M3 extends H<E4, MergedPath, I3> = H<E4, MergedPath, I3>>(method: M, path: P, ...handlers: [H<E2, MergedPath, I> & M1, H<E3, MergedPath, I2> & M2, H<E4, MergedPath, I3> & M3, H<E5, MergedPath, I4, R>]): Hono<IntersectNonAnyTypes<[E, E2, E3, E4, E5]>, S & ToSchema<M, MergePath<BasePath, P>, I4, MergeTypedResponse<R> | MergeMiddlewareResponse<M1> | MergeMiddlewareResponse<M2> | MergeMiddlewareResponse<M3>>, BasePath, MergePath<BasePath, P>>;
100
+ <M extends string, P extends string, MergedPath extends MergePath<BasePath, P>, R extends HandlerResponse<any> = any, I extends Input = BlankInput, I2 extends Input = I, I3 extends Input = I & I2, I4 extends Input = I & I2 & I3, I5 extends Input = I & I2 & I3 & I4, E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[E, E2]>, E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>, E5 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4]>, E6 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5]>, M1 extends H<E2, MergedPath, I> = H<E2, MergedPath, I>, M2 extends H<E3, MergedPath, I2> = H<E3, MergedPath, I2>, M3 extends H<E4, MergedPath, I3> = H<E4, MergedPath, I3>, M4 extends H<E5, MergedPath, I4> = H<E5, MergedPath, I4>>(method: M, path: P, ...handlers: [H<E2, MergedPath, I> & M1, H<E3, MergedPath, I2> & M2, H<E4, MergedPath, I3> & M3, H<E5, MergedPath, I4> & M4, H<E6, MergedPath, I5, R>]): Hono<IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6]>, S & ToSchema<M, MergePath<BasePath, P>, I5, MergeTypedResponse<R> | MergeMiddlewareResponse<M1> | MergeMiddlewareResponse<M2> | MergeMiddlewareResponse<M3> | MergeMiddlewareResponse<M4>>, BasePath, MergePath<BasePath, P>>;
101
+ <M extends string, P extends string, MergedPath extends MergePath<BasePath, P>, R extends HandlerResponse<any> = any, I extends Input = BlankInput, I2 extends Input = I, I3 extends Input = I & I2, I4 extends Input = I & I2 & I3, I5 extends Input = I & I2 & I3 & I4, I6 extends Input = I & I2 & I3 & I4 & I5, E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[E, E2]>, E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>, E5 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4]>, E6 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5]>, E7 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6]>, M1 extends H<E2, MergedPath, I> = H<E2, MergedPath, I>, M2 extends H<E3, MergedPath, I2> = H<E3, MergedPath, I2>, M3 extends H<E4, MergedPath, I3> = H<E4, MergedPath, I3>, M4 extends H<E5, MergedPath, I4> = H<E5, MergedPath, I4>, M5 extends H<E6, MergedPath, I5> = H<E6, MergedPath, I5>>(method: M, path: P, ...handlers: [H<E2, MergedPath, I> & M1, H<E3, MergedPath, I2> & M2, H<E4, MergedPath, I3> & M3, H<E5, MergedPath, I4> & M4, H<E6, MergedPath, I5> & M5, H<E7, MergedPath, I6, R>]): Hono<IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7]>, S & ToSchema<M, MergePath<BasePath, P>, I6, MergeTypedResponse<R> | MergeMiddlewareResponse<M1> | MergeMiddlewareResponse<M2> | MergeMiddlewareResponse<M3> | MergeMiddlewareResponse<M4> | MergeMiddlewareResponse<M5>>, BasePath, MergePath<BasePath, P>>;
102
+ <M extends string, P extends string, MergedPath extends MergePath<BasePath, P>, R extends HandlerResponse<any> = any, I extends Input = BlankInput, I2 extends Input = I, I3 extends Input = I & I2, I4 extends Input = I & I2 & I3, I5 extends Input = I & I2 & I3 & I4, I6 extends Input = I & I2 & I3 & I4 & I5, I7 extends Input = I & I2 & I3 & I4 & I5 & I6, E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[E, E2]>, E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>, E5 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4]>, E6 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5]>, E7 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6]>, E8 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7]>, M1 extends H<E2, MergedPath, I> = H<E2, MergedPath, I>, M2 extends H<E3, MergedPath, I2> = H<E3, MergedPath, I2>, M3 extends H<E4, MergedPath, I3> = H<E4, MergedPath, I3>, M4 extends H<E5, MergedPath, I4> = H<E5, MergedPath, I4>, M5 extends H<E6, MergedPath, I5> = H<E6, MergedPath, I5>, M6 extends H<E7, MergedPath, I6> = H<E7, MergedPath, I6>>(method: M, path: P, ...handlers: [H<E2, MergedPath, I> & M1, H<E3, MergedPath, I2> & M2, H<E4, MergedPath, I3> & M3, H<E5, MergedPath, I4> & M4, H<E6, MergedPath, I5> & M5, H<E7, MergedPath, I6> & M6, H<E8, MergedPath, I7, R>]): Hono<IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8]>, S & ToSchema<M, MergePath<BasePath, P>, I7, MergeTypedResponse<R> | MergeMiddlewareResponse<M1> | MergeMiddlewareResponse<M2> | MergeMiddlewareResponse<M3> | MergeMiddlewareResponse<M4> | MergeMiddlewareResponse<M5> | MergeMiddlewareResponse<M6>>, BasePath, MergePath<BasePath, P>>;
103
+ <M extends string, P extends string, MergedPath extends MergePath<BasePath, P>, R extends HandlerResponse<any> = any, I extends Input = BlankInput, I2 extends Input = I, I3 extends Input = I & I2, I4 extends Input = I & I2 & I3, I5 extends Input = I & I2 & I3 & I4, I6 extends Input = I & I2 & I3 & I4 & I5, I7 extends Input = I & I2 & I3 & I4 & I5 & I6, I8 extends Input = I & I2 & I3 & I4 & I5 & I6 & I7, E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[E, E2]>, E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>, E5 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4]>, E6 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5]>, E7 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6]>, E8 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7]>, E9 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8]>, M1 extends H<E2, MergedPath, I> = H<E2, MergedPath, I>, M2 extends H<E3, MergedPath, I2> = H<E3, MergedPath, I2>, M3 extends H<E4, MergedPath, I3> = H<E4, MergedPath, I3>, M4 extends H<E5, MergedPath, I4> = H<E5, MergedPath, I4>, M5 extends H<E6, MergedPath, I5> = H<E6, MergedPath, I5>, M6 extends H<E7, MergedPath, I6> = H<E7, MergedPath, I6>, M7 extends H<E8, MergedPath, I7> = H<E8, MergedPath, I7>>(method: M, path: P, ...handlers: [H<E2, MergedPath, I> & M1, H<E3, MergedPath, I2> & M2, H<E4, MergedPath, I3> & M3, H<E5, MergedPath, I4> & M4, H<E6, MergedPath, I5> & M5, H<E7, MergedPath, I6> & M6, H<E8, MergedPath, I7> & M7, H<E9, MergedPath, I8, R>]): Hono<IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8, E9]>, S & ToSchema<M, MergePath<BasePath, P>, I8, MergeTypedResponse<R> | MergeMiddlewareResponse<M1> | MergeMiddlewareResponse<M2> | MergeMiddlewareResponse<M3> | MergeMiddlewareResponse<M4> | MergeMiddlewareResponse<M5> | MergeMiddlewareResponse<M6> | MergeMiddlewareResponse<M7>>, BasePath, MergePath<BasePath, P>>;
104
+ <M extends string, P extends string, MergedPath extends MergePath<BasePath, P>, R extends HandlerResponse<any> = any, I extends Input = BlankInput, I2 extends Input = I, I3 extends Input = I & I2, I4 extends Input = I & I2 & I3, I5 extends Input = I & I2 & I3 & I4, I6 extends Input = I & I2 & I3 & I4 & I5, I7 extends Input = I & I2 & I3 & I4 & I5 & I6, I8 extends Input = I & I2 & I3 & I4 & I5 & I6 & I7, I9 extends Input = I & I2 & I3 & I4 & I5 & I6 & I7 & I8, E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[E, E2]>, E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>, E5 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4]>, E6 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5]>, E7 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6]>, E8 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7]>, E9 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8]>, E10 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8, E9]>, M1 extends H<E2, MergedPath, I> = H<E2, MergedPath, I>, M2 extends H<E3, MergedPath, I2> = H<E3, MergedPath, I2>, M3 extends H<E4, MergedPath, I3> = H<E4, MergedPath, I3>, M4 extends H<E5, MergedPath, I4> = H<E5, MergedPath, I4>, M5 extends H<E6, MergedPath, I5> = H<E6, MergedPath, I5>, M6 extends H<E7, MergedPath, I6> = H<E7, MergedPath, I6>, M7 extends H<E8, MergedPath, I7> = H<E8, MergedPath, I7>, M8 extends H<E9, MergedPath, I8> = H<E9, MergedPath, I8>>(method: M, path: P, ...handlers: [H<E2, MergedPath, I> & M1, H<E3, MergedPath, I2> & M2, H<E4, MergedPath, I3> & M3, H<E5, MergedPath, I4> & M4, H<E6, MergedPath, I5> & M5, H<E7, MergedPath, I6> & M6, H<E8, MergedPath, I7> & M7, H<E9, MergedPath, I8> & M8, H<E10, MergedPath, I9, R>]): Hono<IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8, E9, E10]>, S & ToSchema<M, MergePath<BasePath, P>, I9, MergeTypedResponse<R> | MergeMiddlewareResponse<M1> | MergeMiddlewareResponse<M2> | MergeMiddlewareResponse<M3> | MergeMiddlewareResponse<M4> | MergeMiddlewareResponse<M5> | MergeMiddlewareResponse<M6> | MergeMiddlewareResponse<M7> | MergeMiddlewareResponse<M8>>, BasePath, MergePath<BasePath, P>>;
105
+ <M extends string, P extends string, MergedPath extends MergePath<BasePath, P>, R extends HandlerResponse<any> = any, I extends Input = BlankInput, I2 extends Input = I, I3 extends Input = I & I2, I4 extends Input = I & I2 & I3, I5 extends Input = I & I2 & I3 & I4, I6 extends Input = I & I2 & I3 & I4 & I5, I7 extends Input = I & I2 & I3 & I4 & I5 & I6, I8 extends Input = I & I2 & I3 & I4 & I5 & I6 & I7, I9 extends Input = I & I2 & I3 & I4 & I5 & I6 & I7 & I8, I10 extends Input = I & I2 & I3 & I4 & I5 & I6 & I7 & I8 & I9, E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[E, E2]>, E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>, E5 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4]>, E6 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5]>, E7 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6]>, E8 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7]>, E9 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8]>, E10 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8, E9]>, E11 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8, E9, E10]>, M1 extends H<E2, MergedPath, I> = H<E2, MergedPath, I>, M2 extends H<E3, MergedPath, I2> = H<E3, MergedPath, I2>, M3 extends H<E4, MergedPath, I3> = H<E4, MergedPath, I3>, M4 extends H<E5, MergedPath, I4> = H<E5, MergedPath, I4>, M5 extends H<E6, MergedPath, I5> = H<E6, MergedPath, I5>, M6 extends H<E7, MergedPath, I6> = H<E7, MergedPath, I6>, M7 extends H<E8, MergedPath, I7> = H<E8, MergedPath, I7>, M8 extends H<E9, MergedPath, I8> = H<E9, MergedPath, I8>, M9 extends H<E10, MergedPath, I9> = H<E10, MergedPath, I9>>(method: M, path: P, ...handlers: [H<E2, MergedPath, I> & M1, H<E3, MergedPath, I2> & M2, H<E4, MergedPath, I3> & M3, H<E5, MergedPath, I4> & M4, H<E6, MergedPath, I5> & M5, H<E7, MergedPath, I6> & M6, H<E8, MergedPath, I7> & M7, H<E9, MergedPath, I8> & M8, H<E10, MergedPath, I9> & M9, H<E11, MergedPath, I10, R>]): Hono<IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8, E9, E10, E11]>, S & ToSchema<M, MergePath<BasePath, P>, I10, MergeTypedResponse<R> | MergeMiddlewareResponse<M1> | MergeMiddlewareResponse<M2> | MergeMiddlewareResponse<M3> | MergeMiddlewareResponse<M4> | MergeMiddlewareResponse<M5> | MergeMiddlewareResponse<M6> | MergeMiddlewareResponse<M7> | MergeMiddlewareResponse<M8> | MergeMiddlewareResponse<M9>>, BasePath, MergePath<BasePath, P>>;
106
+ <M extends string, P extends string, R extends HandlerResponse<any> = any, I extends Input = BlankInput>(method: M, path: P, ...handlers: [H<E, MergePath<BasePath, P>, I, R>, ...H<E, MergePath<BasePath, P>, I, R>[]]): Hono<E, S & ToSchema<M, MergePath<BasePath, P>, I, MergeTypedResponse<R>>, BasePath, MergePath<BasePath, P>>;
107
+ <M extends string, P extends string, MergedPath extends MergePath<BasePath, P>, R extends HandlerResponse<any> = any, I extends Input = BlankInput, E2 extends Env = E>(methods: M[], path: P, handler: H<E2, MergedPath, I, R>): Hono<IntersectNonAnyTypes<[E, E2]>, S & ToSchema<M, MergePath<BasePath, P>, I, MergeTypedResponse<R>>, BasePath, MergePath<BasePath, P>>;
108
+ <M extends string, P extends string, MergedPath extends MergePath<BasePath, P>, R extends HandlerResponse<any> = any, I extends Input = BlankInput, I2 extends Input = I, E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[E, E2]>, M1 extends H<E2, MergedPath, I> = H<E2, MergedPath, I>>(methods: M[], path: P, ...handlers: [H<E2, MergedPath, I> & M1, H<E3, MergedPath, I2, R>]): Hono<IntersectNonAnyTypes<[E, E2, E3]>, S & ToSchema<M, MergePath<BasePath, P>, I2, MergeTypedResponse<R> | MergeMiddlewareResponse<M1>>, BasePath, MergePath<BasePath, P>>;
109
+ <M extends string, P extends string, MergedPath extends MergePath<BasePath, P>, R extends HandlerResponse<any> = any, I extends Input = BlankInput, I2 extends Input = I, I3 extends Input = I & I2, E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[E, E2]>, E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>, M1 extends H<E2, MergedPath, I> = H<E2, MergedPath, I>, M2 extends H<E3, MergedPath, I2> = H<E3, MergedPath, I2>>(methods: M[], path: P, ...handlers: [H<E2, MergedPath, I> & M1, H<E3, MergedPath, I2> & M2, H<E4, MergedPath, I3, R>]): Hono<IntersectNonAnyTypes<[E, E2, E3, E4]>, S & ToSchema<M, MergePath<BasePath, P>, I3, MergeTypedResponse<R> | MergeMiddlewareResponse<M1> | MergeMiddlewareResponse<M2>>, BasePath, MergePath<BasePath, P>>;
110
+ <M extends string, P extends string, MergedPath extends MergePath<BasePath, P>, R extends HandlerResponse<any> = any, I extends Input = BlankInput, I2 extends Input = I, I3 extends Input = I & I2, I4 extends Input = I & I2 & I3, E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[E, E2]>, E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>, E5 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4]>, M1 extends H<E2, MergedPath, I> = H<E2, MergedPath, I>, M2 extends H<E3, MergedPath, I2> = H<E3, MergedPath, I2>, M3 extends H<E4, MergedPath, I3> = H<E4, MergedPath, I3>>(methods: M[], path: P, ...handlers: [H<E2, MergedPath, I> & M1, H<E3, MergedPath, I2> & M2, H<E4, MergedPath, I3> & M3, H<E5, MergedPath, I4, R>]): Hono<IntersectNonAnyTypes<[E, E2, E3, E4, E5]>, S & ToSchema<M, MergePath<BasePath, P>, I4, MergeTypedResponse<R> | MergeMiddlewareResponse<M1> | MergeMiddlewareResponse<M2> | MergeMiddlewareResponse<M3>>, BasePath, MergePath<BasePath, P>>;
111
+ <M extends string, P extends string, MergedPath extends MergePath<BasePath, P>, R extends HandlerResponse<any> = any, I extends Input = BlankInput, I2 extends Input = I, I3 extends Input = I & I2, I4 extends Input = I & I2 & I3, I5 extends Input = I & I2 & I3 & I4, E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[E, E2]>, E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>, E5 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4]>, E6 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5]>, M1 extends H<E2, MergedPath, I> = H<E2, MergedPath, I>, M2 extends H<E3, MergedPath, I2> = H<E3, MergedPath, I2>, M3 extends H<E4, MergedPath, I3> = H<E4, MergedPath, I3>, M4 extends H<E5, MergedPath, I4> = H<E5, MergedPath, I4>>(methods: M[], path: P, ...handlers: [H<E2, MergedPath, I> & M1, H<E3, MergedPath, I2> & M2, H<E4, MergedPath, I3> & M3, H<E5, MergedPath, I4> & M4, H<E6, MergedPath, I5, R>]): Hono<IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6]>, S & ToSchema<M, MergePath<BasePath, P>, I5, MergeTypedResponse<R> | MergeMiddlewareResponse<M1> | MergeMiddlewareResponse<M2> | MergeMiddlewareResponse<M3> | MergeMiddlewareResponse<M4>>, BasePath, MergePath<BasePath, P>>;
112
+ <M extends string, P extends string, MergedPath extends MergePath<BasePath, P>, R extends HandlerResponse<any> = any, I extends Input = BlankInput, I2 extends Input = I, I3 extends Input = I & I2, I4 extends Input = I & I2 & I3, I5 extends Input = I & I2 & I3 & I4, I6 extends Input = I & I2 & I3 & I4 & I5, E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[E, E2]>, E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>, E5 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4]>, E6 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5]>, E7 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6]>, M1 extends H<E2, MergedPath, I> = H<E2, MergedPath, I>, M2 extends H<E3, MergedPath, I2> = H<E3, MergedPath, I2>, M3 extends H<E4, MergedPath, I3> = H<E4, MergedPath, I3>, M4 extends H<E5, MergedPath, I4> = H<E5, MergedPath, I4>, M5 extends H<E6, MergedPath, I5> = H<E6, MergedPath, I5>>(methods: M[], path: P, ...handlers: [H<E2, MergedPath, I> & M1, H<E3, MergedPath, I2> & M2, H<E4, MergedPath, I3> & M3, H<E5, MergedPath, I4> & M4, H<E6, MergedPath, I5> & M5, H<E7, MergedPath, I6, R>]): Hono<IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7]>, S & ToSchema<M, MergePath<BasePath, P>, I6, MergeTypedResponse<R> | MergeMiddlewareResponse<M1> | MergeMiddlewareResponse<M2> | MergeMiddlewareResponse<M3> | MergeMiddlewareResponse<M4> | MergeMiddlewareResponse<M5>>, BasePath, MergePath<BasePath, P>>;
113
+ <M extends string, P extends string, MergedPath extends MergePath<BasePath, P>, R extends HandlerResponse<any> = any, I extends Input = BlankInput, I2 extends Input = I, I3 extends Input = I & I2, I4 extends Input = I & I2 & I3, I5 extends Input = I & I2 & I3 & I4, I6 extends Input = I & I2 & I3 & I4 & I5, I7 extends Input = I & I2 & I3 & I4 & I5 & I6, E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[E, E2]>, E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>, E5 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4]>, E6 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5]>, E7 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6]>, E8 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7]>, M1 extends H<E2, MergedPath, I> = H<E2, MergedPath, I>, M2 extends H<E3, MergedPath, I2> = H<E3, MergedPath, I2>, M3 extends H<E4, MergedPath, I3> = H<E4, MergedPath, I3>, M4 extends H<E5, MergedPath, I4> = H<E5, MergedPath, I4>, M5 extends H<E6, MergedPath, I5> = H<E6, MergedPath, I5>, M6 extends H<E7, MergedPath, I6> = H<E7, MergedPath, I6>>(methods: M[], path: P, ...handlers: [H<E2, MergedPath, I> & M1, H<E3, MergedPath, I2> & M2, H<E4, MergedPath, I3> & M3, H<E5, MergedPath, I4> & M4, H<E6, MergedPath, I5> & M5, H<E7, MergedPath, I6> & M6, H<E8, MergedPath, I7, R>]): Hono<IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8]>, S & ToSchema<M, MergePath<BasePath, P>, I7, MergeTypedResponse<R> | MergeMiddlewareResponse<M1> | MergeMiddlewareResponse<M2> | MergeMiddlewareResponse<M3> | MergeMiddlewareResponse<M4> | MergeMiddlewareResponse<M5> | MergeMiddlewareResponse<M6>>, BasePath, MergePath<BasePath, P>>;
114
+ <M extends string, P extends string, MergedPath extends MergePath<BasePath, P>, R extends HandlerResponse<any> = any, I extends Input = BlankInput, I2 extends Input = I, I3 extends Input = I & I2, I4 extends Input = I & I2 & I3, I5 extends Input = I & I2 & I3 & I4, I6 extends Input = I & I2 & I3 & I4 & I5, I7 extends Input = I & I2 & I3 & I4 & I5 & I6, I8 extends Input = I & I2 & I3 & I4 & I5 & I6 & I7, E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[E, E2]>, E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>, E5 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4]>, E6 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5]>, E7 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6]>, E8 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7]>, E9 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8]>, M1 extends H<E2, MergedPath, I> = H<E2, MergedPath, I>, M2 extends H<E3, MergedPath, I2> = H<E3, MergedPath, I2>, M3 extends H<E4, MergedPath, I3> = H<E4, MergedPath, I3>, M4 extends H<E5, MergedPath, I4> = H<E5, MergedPath, I4>, M5 extends H<E6, MergedPath, I5> = H<E6, MergedPath, I5>, M6 extends H<E7, MergedPath, I6> = H<E7, MergedPath, I6>, M7 extends H<E8, MergedPath, I7> = H<E8, MergedPath, I7>>(methods: M[], path: P, ...handlers: [H<E2, MergedPath, I> & M1, H<E3, MergedPath, I2> & M2, H<E4, MergedPath, I3> & M3, H<E5, MergedPath, I4> & M4, H<E6, MergedPath, I5> & M5, H<E7, MergedPath, I6> & M6, H<E8, MergedPath, I7> & M7, H<E9, MergedPath, I8, R>]): Hono<IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8, E9]>, S & ToSchema<M, MergePath<BasePath, P>, I8, MergeTypedResponse<R> | MergeMiddlewareResponse<M1> | MergeMiddlewareResponse<M2> | MergeMiddlewareResponse<M3> | MergeMiddlewareResponse<M4> | MergeMiddlewareResponse<M5> | MergeMiddlewareResponse<M6> | MergeMiddlewareResponse<M7>>, BasePath, MergePath<BasePath, P>>;
115
+ <M extends string, P extends string, MergedPath extends MergePath<BasePath, P>, R extends HandlerResponse<any> = any, I extends Input = BlankInput, I2 extends Input = I, I3 extends Input = I & I2, I4 extends Input = I & I2 & I3, I5 extends Input = I & I2 & I3 & I4, I6 extends Input = I & I2 & I3 & I4 & I5, I7 extends Input = I & I2 & I3 & I4 & I5 & I6, I8 extends Input = I & I2 & I3 & I4 & I5 & I6 & I7, I9 extends Input = I & I2 & I3 & I4 & I5 & I6 & I7 & I8, E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[E, E2]>, E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>, E5 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4]>, E6 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5]>, E7 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6]>, E8 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7]>, E9 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8]>, E10 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8, E9]>, M1 extends H<E2, MergedPath, I> = H<E2, MergedPath, I>, M2 extends H<E3, MergedPath, I2> = H<E3, MergedPath, I2>, M3 extends H<E4, MergedPath, I3> = H<E4, MergedPath, I3>, M4 extends H<E5, MergedPath, I4> = H<E5, MergedPath, I4>, M5 extends H<E6, MergedPath, I5> = H<E6, MergedPath, I5>, M6 extends H<E7, MergedPath, I6> = H<E7, MergedPath, I6>, M7 extends H<E8, MergedPath, I7> = H<E8, MergedPath, I7>, M8 extends H<E9, MergedPath, I8> = H<E9, MergedPath, I8>>(methods: M[], path: P, ...handlers: [H<E2, MergedPath, I> & M1, H<E3, MergedPath, I2> & M2, H<E4, MergedPath, I3> & M3, H<E5, MergedPath, I4> & M4, H<E6, MergedPath, I5> & M5, H<E7, MergedPath, I6> & M6, H<E8, MergedPath, I7> & M7, H<E9, MergedPath, I8> & M8, H<E10, MergedPath, I9, R>]): Hono<IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8, E9, E10]>, S & ToSchema<M, MergePath<BasePath, P>, I9, MergeTypedResponse<R> | MergeMiddlewareResponse<M1> | MergeMiddlewareResponse<M2> | MergeMiddlewareResponse<M3> | MergeMiddlewareResponse<M4> | MergeMiddlewareResponse<M5> | MergeMiddlewareResponse<M6> | MergeMiddlewareResponse<M7> | MergeMiddlewareResponse<M8>>, BasePath, MergePath<BasePath, P>>;
116
+ <M extends string, P extends string, MergedPath extends MergePath<BasePath, P>, R extends HandlerResponse<any> = any, I extends Input = BlankInput, I2 extends Input = I, I3 extends Input = I & I2, I4 extends Input = I & I2 & I3, I5 extends Input = I & I2 & I3 & I4, I6 extends Input = I & I2 & I3 & I4 & I5, I7 extends Input = I & I2 & I3 & I4 & I5 & I6, I8 extends Input = I & I2 & I3 & I4 & I5 & I6 & I7, I9 extends Input = I & I2 & I3 & I4 & I5 & I6 & I7 & I8, I10 extends Input = I & I2 & I3 & I4 & I5 & I6 & I7 & I8 & I9, E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[E, E2]>, E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>, E5 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4]>, E6 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5]>, E7 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6]>, E8 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7]>, E9 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8]>, E10 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8, E9]>, E11 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8, E9, E10]>, M1 extends H<E2, MergedPath, I> = H<E2, MergedPath, I>, M2 extends H<E3, MergedPath, I2> = H<E3, MergedPath, I2>, M3 extends H<E4, MergedPath, I3> = H<E4, MergedPath, I3>, M4 extends H<E5, MergedPath, I4> = H<E5, MergedPath, I4>, M5 extends H<E6, MergedPath, I5> = H<E6, MergedPath, I5>, M6 extends H<E7, MergedPath, I6> = H<E7, MergedPath, I6>, M7 extends H<E8, MergedPath, I7> = H<E8, MergedPath, I7>, M8 extends H<E9, MergedPath, I8> = H<E9, MergedPath, I8>, M9 extends H<E10, MergedPath, I9> = H<E10, MergedPath, I9>>(methods: M[], path: P, ...handlers: [H<E2, MergedPath, I> & M1, H<E3, MergedPath, I2> & M2, H<E4, MergedPath, I3> & M3, H<E5, MergedPath, I4> & M4, H<E6, MergedPath, I5> & M5, H<E7, MergedPath, I6> & M6, H<E8, MergedPath, I7> & M7, H<E9, MergedPath, I8> & M8, H<E10, MergedPath, I9> & M9, H<E11, MergedPath, I10, R>]): Hono<IntersectNonAnyTypes<[E, E2, E3, E4, E5, E6, E7, E8, E9, E10, E11]>, S & ToSchema<M, MergePath<BasePath, P>, I10, MergeTypedResponse<R> | MergeMiddlewareResponse<M1> | MergeMiddlewareResponse<M2> | MergeMiddlewareResponse<M3> | MergeMiddlewareResponse<M4> | MergeMiddlewareResponse<M5> | MergeMiddlewareResponse<M6> | MergeMiddlewareResponse<M7> | MergeMiddlewareResponse<M8> | MergeMiddlewareResponse<M9>>, BasePath, MergePath<BasePath, P>>;
117
+ <M extends string, P extends string, R extends HandlerResponse<any> = any, I extends Input = BlankInput>(methods: M[], path: P, ...handlers: [H<E, MergePath<BasePath, P>, I, R>, ...H<E, MergePath<BasePath, P>, I, R>[]]): Hono<E, S & ToSchema<M, MergePath<BasePath, P>, I, MergeTypedResponse<R>>, BasePath, MergePath<BasePath, P>>;
118
+ <M extends string, const Ps extends string[], I extends Input = BlankInput, R extends HandlerResponse<any> = any, E2 extends Env = E>(methods: M | M[], paths: Ps, ...handlers: H<E2, MergePath<BasePath, Ps[number]>, I, R>[]): Hono<E, S & ToSchema<M, MergePath<BasePath, Ps[number]>, I, MergeTypedResponse<R>>, BasePath, Ps extends [...string[], infer LastPath extends string] ? MergePath<BasePath, LastPath> : never>;
447
119
  }
448
120
  type ToSchemaOutput<RorO, I extends Input | Input['in']> = RorO extends TypedResponse<infer T, infer U, infer F> ? {
449
- output: unknown extends T ? {} : T;
450
- outputFormat: I extends {
451
- outputFormat: string;
452
- } ? I['outputFormat'] : F;
453
- status: U;
121
+ output: unknown extends T ? {} : T;
122
+ outputFormat: I extends {
123
+ outputFormat: string;
124
+ } ? I['outputFormat'] : F;
125
+ status: U;
454
126
  } : {
455
- output: unknown extends RorO ? {} : RorO;
456
- outputFormat: unknown extends RorO ? 'json' : I extends {
457
- outputFormat: string;
458
- } ? I['outputFormat'] : 'json';
459
- status: StatusCode;
460
- };
461
- export type ToSchema<M extends string, P extends string, I extends Input | Input['in'], RorO> = IsAny<RorO> extends true ? {
462
- [K in P]: {
463
- [K2 in M as AddDollar<K2>]: {
464
- input: AddParam<ExtractInput<I>, P>;
465
- output: {};
466
- outputFormat: ResponseFormat;
467
- status: StatusCode;
468
- };
469
- };
470
- } : [RorO] extends [never] ? {} : [RorO] extends [Promise<void>] ? {} : {
471
- [K in P]: {
472
- [K2 in M as AddDollar<K2>]: Simplify<{
473
- input: AddParam<ExtractInput<I>, P>;
474
- } & ToSchemaOutput<RorO, I>>;
475
- };
127
+ output: unknown extends RorO ? {} : RorO;
128
+ outputFormat: unknown extends RorO ? 'json' : I extends {
129
+ outputFormat: string;
130
+ } ? I['outputFormat'] : 'json';
131
+ status: StatusCode;
476
132
  };
133
+ export type ToSchema<M extends string, P extends string, I extends Input | Input['in'], RorO> = IsAny<RorO> extends true ? { [K in P]: { [K2 in M as AddDollar<K2>]: {
134
+ input: AddParam<ExtractInput<I>, P>;
135
+ output: {};
136
+ outputFormat: ResponseFormat;
137
+ status: StatusCode;
138
+ }; }; } : [RorO] extends [never] ? {} : [RorO] extends [Promise<void>] ? {} : { [K in P]: { [K2 in M as AddDollar<K2>]: Simplify<{
139
+ input: AddParam<ExtractInput<I>, P>;
140
+ } & ToSchemaOutput<RorO, I>>; }; };
477
141
  export type Schema = {
478
- [Path: string]: {
479
- [Method: `$${Lowercase<string>}`]: Endpoint;
480
- };
142
+ [Path: string]: {
143
+ [Method: `$${Lowercase<string>}`]: Endpoint;
144
+ };
481
145
  };
482
146
  type AddSchemaIfHasResponse<Merged, S extends Schema, M extends string, P extends string, I extends Input | Input['in'], BasePath extends string> = [Merged] extends [Promise<void>] ? S : S & ToSchema<M, MergePath<BasePath, P>, I, Merged>;
483
147
  export type Endpoint = {
484
- input: any;
485
- output: any;
486
- outputFormat: ResponseFormat;
487
- status: StatusCode;
488
- };
489
- type ExtractParams<Path extends string> = string extends Path ? Record<string, string> : Path extends `${infer _Start}:${infer Param}/${infer Rest}` ? {
490
- [K in Param | keyof ExtractParams<`/${Rest}`>]: string;
491
- } : Path extends `${infer _Start}:${infer Param}` ? {
492
- [K in Param]: string;
493
- } : never;
494
- type FlattenIfIntersect<T> = T extends infer O ? {
495
- [K in keyof O]: O[K];
496
- } : never;
497
- export type MergeSchemaPath<OrigSchema extends Schema, SubPath extends string> = {
498
- [P in keyof OrigSchema as MergePath<SubPath, P & string>]: [OrigSchema[P]] extends [
499
- Record<string, Endpoint>
500
- ] ? {
501
- [M in keyof OrigSchema[P]]: MergeEndpointParamsWithPath<OrigSchema[P][M], SubPath>;
502
- } : never;
148
+ input: any;
149
+ output: any;
150
+ outputFormat: ResponseFormat;
151
+ status: StatusCode;
503
152
  };
153
+ type ExtractParams<Path extends string> = string extends Path ? Record<string, string> : Path extends `${infer _Start}:${infer Param}/${infer Rest}` ? { [K in Param | keyof ExtractParams<`/${Rest}`>]: string; } : Path extends `${infer _Start}:${infer Param}` ? { [K in Param]: string; } : never;
154
+ type FlattenIfIntersect<T> = T extends (infer O) ? { [K in keyof O]: O[K]; } : never;
155
+ export type MergeSchemaPath<OrigSchema extends Schema, SubPath extends string> = { [P in keyof OrigSchema as MergePath<SubPath, P & string>]: [OrigSchema[P]] extends [Record<string, Endpoint>] ? { [M in keyof OrigSchema[P]]: MergeEndpointParamsWithPath<OrigSchema[P][M], SubPath>; } : never; };
504
156
  type MergeEndpointParamsWithPath<T extends Endpoint, SubPath extends string> = T extends unknown ? {
505
- input: T['input'] extends {
506
- param: infer _;
507
- } ? ExtractParams<SubPath> extends never ? T['input'] : FlattenIfIntersect<T['input'] & {
508
- param: {
509
- [K in keyof ExtractParams<SubPath> as K extends `${infer Prefix}{${infer _}}` ? Prefix : K]: string;
510
- };
511
- }> : RemoveBlankRecord<ExtractParams<SubPath>> extends never ? T['input'] : T['input'] & {
512
- param: {
513
- [K in keyof ExtractParams<SubPath> as K extends `${infer Prefix}{${infer _}}` ? Prefix : K]: string;
514
- };
515
- };
516
- output: T['output'];
517
- outputFormat: T['outputFormat'];
518
- status: T['status'];
157
+ input: T['input'] extends {
158
+ param: infer _;
159
+ } ? ExtractParams<SubPath> extends never ? T['input'] : FlattenIfIntersect<T['input'] & {
160
+ param: { [K in keyof ExtractParams<SubPath> as K extends `${infer Prefix}{${infer _}}` ? Prefix : K]: string; };
161
+ }> : RemoveBlankRecord<ExtractParams<SubPath>> extends never ? T['input'] : T['input'] & {
162
+ param: { [K in keyof ExtractParams<SubPath> as K extends `${infer Prefix}{${infer _}}` ? Prefix : K]: string; };
163
+ };
164
+ output: T['output'];
165
+ outputFormat: T['outputFormat'];
166
+ status: T['status'];
519
167
  } : never;
520
168
  export type AddParam<I, P extends string> = ParamKeys<P> extends never ? I : I extends {
521
- param: infer _;
169
+ param: infer _;
522
170
  } ? I : I & {
523
- param: UnionToIntersection<ParamKeyToRecord<ParamKeys<P>>>;
171
+ param: UnionToIntersection<ParamKeyToRecord<ParamKeys<P>>>;
524
172
  };
525
173
  type AddDollar<T extends string> = `$${Lowercase<T>}`;
526
174
  export type MergePath<A extends string, B extends string> = B extends '' ? MergePath<A, '/'> : A extends '' ? B : A extends '/' ? B : A extends `${infer P}/` ? B extends `/${infer Q}` ? `${P}/${Q}` : `${P}/${B}` : B extends `/${infer Q}` ? Q extends '' ? A : `${A}/${Q}` : `${A}/${B}`;
527
175
  export type KnownResponseFormat = 'json' | 'text' | 'redirect';
528
176
  export type ResponseFormat = KnownResponseFormat | string;
529
177
  export type TypedResponse<T = unknown, U extends StatusCode = StatusCode, F extends ResponseFormat = T extends string ? 'text' : T extends JSONValue ? 'json' : ResponseFormat> = {
530
- _data: T;
531
- _status: U;
532
- _format: F;
178
+ _data: T;
179
+ _status: U;
180
+ _format: F;
533
181
  };
534
182
  type MergeTypedResponse<T> = T extends Promise<void> ? T : T extends Promise<infer T2> ? T2 extends TypedResponse ? T2 : TypedResponse : T extends TypedResponse ? T : TypedResponse;
535
183
  type ExtractTypedResponseOnly<T> = T extends TypedResponse ? T : never;
536
- type MergeMiddlewareResponse<T> = T extends (c: any, next: any) => Promise<infer R> ? Exclude<R, void> extends never ? never : Exclude<R, void> extends Response | TypedResponse<any, any, any> ? ExtractTypedResponseOnly<Exclude<R, void>> : never : T extends (c: any, next: any) => infer R ? R extends Response | TypedResponse<any, any, any> ? ExtractTypedResponseOnly<R> : never : never;
184
+ type MergeMiddlewareResponse<T> = T extends ((c: any, next: any) => Promise<infer R>) ? Exclude<R, void> extends never ? never : Exclude<R, void> extends Response | TypedResponse<any, any, any> ? ExtractTypedResponseOnly<Exclude<R, void>> : never : T extends ((c: any, next: any) => infer R) ? R extends Response | TypedResponse<any, any, any> ? ExtractTypedResponseOnly<R> : never : never;
537
185
  export type FormValue = string | Blob;
538
186
  export type ParsedFormValue = string | File;
539
187
  export type ValidationTargets<T extends FormValue = ParsedFormValue, P extends string = string> = {
540
- json: any;
541
- form: Record<string, T | T[]>;
542
- query: Record<string, string | string[]>;
543
- param: Record<P, P extends `${infer _}?` ? string | undefined : string>;
544
- header: Record<RequestHeader | CustomHeader, string>;
545
- cookie: Record<string, string>;
188
+ json: any;
189
+ form: Record<string, T | T[]>;
190
+ query: Record<string, string | string[]>;
191
+ param: Record<P, P extends `${infer _}?` ? string | undefined : string>;
192
+ header: Record<RequestHeader | CustomHeader, string>;
193
+ cookie: Record<string, string>;
546
194
  };
547
195
  type ParamKey<Component> = Component extends `:${infer NameWithPattern}` ? NameWithPattern extends `${infer Name}{${infer Rest}` ? Rest extends `${infer _Pattern}?` ? `${Name}?` : Name : NameWithPattern : never;
548
196
  export type ParamKeys<Path> = Path extends `${infer Component}/${infer Rest}` ? ParamKey<Component> | ParamKeys<Rest> : ParamKey<Path>;
549
- export type ParamKeyToRecord<T extends string> = T extends `${infer R}?` ? Record<R, string | undefined> : {
550
- [K in T]: string;
551
- };
552
- export type InputToDataByTarget<T extends Input['out'], Target extends keyof ValidationTargets> = T extends {
553
- [K in Target]: infer R;
554
- } ? R : never;
197
+ export type ParamKeyToRecord<T extends string> = T extends `${infer R}?` ? Record<R, string | undefined> : { [K in T]: string; };
198
+ export type InputToDataByTarget<T extends Input['out'], Target extends keyof ValidationTargets> = T extends { [K in Target]: infer R; } ? R : never;
555
199
  export type RemoveQuestion<T> = T extends `${infer R}?` ? R : T;
556
- export type ExtractSchema<T> = UnionToIntersection<T extends HonoBase<infer _, infer S, any, any> ? S : never>;
557
- export type ExtractSchemaForStatusCode<T, Status extends number> = {
558
- [Path in keyof ExtractSchema<T>]: {
559
- [Method in keyof ExtractSchema<T>[Path]]: Extract<ExtractSchema<T>[Path][Method], {
560
- status: Status;
561
- }>;
562
- };
563
- };
564
- export type ExtractHandlerResponse<T> = T extends (c: any, next: any) => Promise<infer R> ? Exclude<R, void> extends never ? never : Exclude<R, void> extends Response | TypedResponse<any, any, any> ? Exclude<R, void> : never : T extends (c: any, next: any) => infer R ? R extends Response | TypedResponse<any, any, any> ? R : never : never;
200
+ export type ExtractSchema<T> = UnionToIntersection<T extends Hono<infer _, infer S, any, any> ? S : never>;
201
+ export type ExtractSchemaForStatusCode<T, Status extends number> = { [Path in keyof ExtractSchema<T>]: { [Method in keyof ExtractSchema<T>[Path]]: Extract<ExtractSchema<T>[Path][Method], {
202
+ status: Status;
203
+ }>; }; };
204
+ export type ExtractHandlerResponse<T> = T extends ((c: any, next: any) => Promise<infer R>) ? Exclude<R, void> extends never ? never : Exclude<R, void> extends Response | TypedResponse<any, any, any> ? Exclude<R, void> : never : T extends ((c: any, next: any) => infer R) ? R extends Response | TypedResponse<any, any, any> ? R : never : never;
565
205
  type ProcessHead<T> = IfAnyThenEmptyObject<T extends Env ? (Env extends T ? {} : T) : T>;
566
206
  export type IntersectNonAnyTypes<T extends any[]> = T extends [infer Head, ...infer Rest] ? ProcessHead<Head> & IntersectNonAnyTypes<Rest> : {};
567
207
  export declare abstract class FetchEventLike {
568
- abstract readonly request: Request;
569
- abstract respondWith(promise: Response | Promise<Response>): void;
570
- abstract passThroughOnException(): void;
571
- abstract waitUntil(promise: Promise<void>): void;
208
+ abstract readonly request: Request;
209
+ abstract respondWith(promise: Response | Promise<Response>): void;
210
+ abstract passThroughOnException(): void;
211
+ abstract waitUntil(promise: Promise<void>): void;
572
212
  }
213
+ //#endregion
573
214
  export {};