hono 4.13.9 → 4.13.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (566) hide show
  1. package/dist/_virtual/_rolldown/runtime.js +13 -0
  2. package/dist/adapter/aws-lambda/conninfo.js +42 -23
  3. package/dist/adapter/aws-lambda/handler.js +318 -344
  4. package/dist/adapter/aws-lambda/index.js +2 -8
  5. package/dist/adapter/aws-lambda/types.js +1 -0
  6. package/dist/adapter/bun/conninfo.js +20 -25
  7. package/dist/adapter/bun/index.js +3 -13
  8. package/dist/adapter/bun/serve-static.js +27 -27
  9. package/dist/adapter/bun/server.js +11 -5
  10. package/dist/adapter/bun/ssg.js +25 -15
  11. package/dist/adapter/bun/websocket.js +61 -68
  12. package/dist/adapter/cloudflare-pages/conninfo.js +24 -9
  13. package/dist/adapter/cloudflare-pages/handler.js +59 -62
  14. package/dist/adapter/cloudflare-pages/index.js +2 -8
  15. package/dist/adapter/cloudflare-workers/conninfo.js +7 -9
  16. package/dist/adapter/cloudflare-workers/index.js +3 -8
  17. package/dist/adapter/cloudflare-workers/serve-static-module.js +5 -6
  18. package/dist/adapter/cloudflare-workers/serve-static.js +26 -20
  19. package/dist/adapter/cloudflare-workers/utils.js +21 -34
  20. package/dist/adapter/cloudflare-workers/websocket.js +31 -39
  21. package/dist/adapter/deno/conninfo.js +16 -13
  22. package/dist/adapter/deno/deno.d.js +1 -0
  23. package/dist/adapter/deno/index.js +3 -10
  24. package/dist/adapter/deno/serve-static.js +33 -38
  25. package/dist/adapter/deno/ssg.js +27 -16
  26. package/dist/adapter/deno/websocket.js +30 -30
  27. package/dist/adapter/lambda-edge/conninfo.js +7 -9
  28. package/dist/adapter/lambda-edge/handler.js +102 -101
  29. package/dist/adapter/lambda-edge/index.js +2 -6
  30. package/dist/adapter/netlify/conninfo.js +24 -9
  31. package/dist/adapter/netlify/handler.js +10 -8
  32. package/dist/adapter/netlify/index.js +3 -2
  33. package/dist/adapter/netlify/mod.js +2 -6
  34. package/dist/adapter/service-worker/handler.js +15 -19
  35. package/dist/adapter/service-worker/index.js +23 -7
  36. package/dist/adapter/service-worker/types.js +1 -0
  37. package/dist/adapter/vercel/conninfo.js +7 -10
  38. package/dist/adapter/vercel/handler.js +8 -6
  39. package/dist/adapter/vercel/index.js +2 -6
  40. package/dist/cjs/_virtual/_rolldown/runtime.js +33 -0
  41. package/dist/cjs/adapter/aws-lambda/conninfo.js +42 -44
  42. package/dist/cjs/adapter/aws-lambda/handler.js +326 -373
  43. package/dist/cjs/adapter/aws-lambda/index.js +7 -34
  44. package/dist/cjs/adapter/aws-lambda/types.js +0 -15
  45. package/dist/cjs/adapter/bun/conninfo.js +21 -47
  46. package/dist/cjs/adapter/bun/index.js +14 -45
  47. package/dist/cjs/adapter/bun/serve-static.js +29 -50
  48. package/dist/cjs/adapter/bun/server.js +11 -26
  49. package/dist/cjs/adapter/bun/ssg.js +24 -35
  50. package/dist/cjs/adapter/bun/websocket.js +63 -91
  51. package/dist/cjs/adapter/cloudflare-pages/conninfo.js +25 -31
  52. package/dist/cjs/adapter/cloudflare-pages/handler.js +61 -85
  53. package/dist/cjs/adapter/cloudflare-pages/index.js +7 -34
  54. package/dist/cjs/adapter/cloudflare-workers/conninfo.js +8 -31
  55. package/dist/cjs/adapter/cloudflare-workers/index.js +7 -33
  56. package/dist/cjs/adapter/cloudflare-workers/serve-static-module.js +7 -29
  57. package/dist/cjs/adapter/cloudflare-workers/serve-static.js +27 -42
  58. package/dist/cjs/adapter/cloudflare-workers/utils.js +21 -55
  59. package/dist/cjs/adapter/cloudflare-workers/websocket.js +33 -62
  60. package/dist/cjs/adapter/deno/conninfo.js +16 -34
  61. package/dist/cjs/adapter/deno/index.js +10 -38
  62. package/dist/cjs/adapter/deno/serve-static.js +33 -59
  63. package/dist/cjs/adapter/deno/ssg.js +27 -37
  64. package/dist/cjs/adapter/deno/websocket.js +32 -53
  65. package/dist/cjs/adapter/lambda-edge/conninfo.js +8 -31
  66. package/dist/cjs/adapter/lambda-edge/handler.js +102 -130
  67. package/dist/cjs/adapter/lambda-edge/index.js +5 -30
  68. package/dist/cjs/adapter/netlify/conninfo.js +25 -31
  69. package/dist/cjs/adapter/netlify/handler.js +10 -29
  70. package/dist/cjs/adapter/netlify/index.js +5 -21
  71. package/dist/cjs/adapter/netlify/mod.js +5 -30
  72. package/dist/cjs/adapter/service-worker/handler.js +16 -41
  73. package/dist/cjs/adapter/service-worker/index.js +25 -30
  74. package/dist/cjs/adapter/service-worker/types.js +0 -15
  75. package/dist/cjs/adapter/vercel/conninfo.js +8 -32
  76. package/dist/cjs/adapter/vercel/handler.js +8 -27
  77. package/dist/cjs/adapter/vercel/index.js +5 -30
  78. package/dist/cjs/client/client.js +139 -212
  79. package/dist/cjs/client/fetch-result-please.js +62 -80
  80. package/dist/cjs/client/index.js +7 -32
  81. package/dist/cjs/client/types.js +0 -15
  82. package/dist/cjs/client/utils.js +54 -92
  83. package/dist/cjs/compose.js +49 -66
  84. package/dist/cjs/context.js +379 -450
  85. package/dist/cjs/helper/accepts/accepts.js +47 -72
  86. package/dist/cjs/helper/accepts/index.js +3 -27
  87. package/dist/cjs/helper/adapter/index.js +33 -73
  88. package/dist/cjs/helper/conninfo/index.js +0 -15
  89. package/dist/cjs/helper/conninfo/types.js +0 -15
  90. package/dist/cjs/helper/cookie/index.js +75 -116
  91. package/dist/cjs/helper/css/common.js +165 -244
  92. package/dist/cjs/helper/css/index.js +136 -151
  93. package/dist/cjs/helper/dev/index.js +45 -71
  94. package/dist/cjs/helper/factory/index.js +30 -51
  95. package/dist/cjs/helper/html/index.js +32 -62
  96. package/dist/cjs/helper/proxy/index.js +113 -106
  97. package/dist/cjs/helper/route/index.js +123 -66
  98. package/dist/cjs/helper/ssg/index.js +19 -43
  99. package/dist/cjs/helper/ssg/middleware.js +56 -64
  100. package/dist/cjs/helper/ssg/plugins.js +55 -57
  101. package/dist/cjs/helper/ssg/ssg.js +196 -296
  102. package/dist/cjs/helper/ssg/utils.js +47 -90
  103. package/dist/cjs/helper/streaming/index.js +8 -35
  104. package/dist/cjs/helper/streaming/sse.js +53 -85
  105. package/dist/cjs/helper/streaming/stream.js +23 -53
  106. package/dist/cjs/helper/streaming/text.js +10 -32
  107. package/dist/cjs/helper/streaming/utils.js +13 -32
  108. package/dist/cjs/helper/testing/index.js +16 -31
  109. package/dist/cjs/helper/websocket/index.js +51 -76
  110. package/dist/cjs/hono-base.js +345 -403
  111. package/dist/cjs/hono.js +28 -42
  112. package/dist/cjs/http-exception.js +55 -56
  113. package/dist/cjs/index.js +22 -30
  114. package/dist/cjs/jsx/base.js +237 -366
  115. package/dist/cjs/jsx/children.js +16 -41
  116. package/dist/cjs/jsx/components.js +119 -192
  117. package/dist/cjs/jsx/constants.js +15 -42
  118. package/dist/cjs/jsx/context.js +144 -162
  119. package/dist/cjs/jsx/dom/client.js +49 -69
  120. package/dist/cjs/jsx/dom/components.js +23 -52
  121. package/dist/cjs/jsx/dom/context.js +39 -67
  122. package/dist/cjs/jsx/dom/css.js +143 -158
  123. package/dist/cjs/jsx/dom/hooks/index.js +55 -64
  124. package/dist/cjs/jsx/dom/index.js +114 -173
  125. package/dist/cjs/jsx/dom/intrinsic-element/components.js +282 -375
  126. package/dist/cjs/jsx/dom/jsx-dev-runtime.js +14 -49
  127. package/dist/cjs/jsx/dom/jsx-runtime.js +5 -32
  128. package/dist/cjs/jsx/dom/render.js +469 -623
  129. package/dist/cjs/jsx/dom/server.js +37 -64
  130. package/dist/cjs/jsx/dom/utils.js +7 -30
  131. package/dist/cjs/jsx/hooks/index.js +225 -318
  132. package/dist/cjs/jsx/index.js +86 -135
  133. package/dist/cjs/jsx/intrinsic-element/common.js +20 -43
  134. package/dist/cjs/jsx/intrinsic-element/components.js +117 -168
  135. package/dist/cjs/jsx/intrinsic-elements.js +0 -15
  136. package/dist/cjs/jsx/jsx-dev-runtime.js +14 -39
  137. package/dist/cjs/jsx/jsx-runtime.js +34 -68
  138. package/dist/cjs/jsx/streaming.js +123 -166
  139. package/dist/cjs/jsx/types.js +0 -15
  140. package/dist/cjs/jsx/utils.js +91 -175
  141. package/dist/cjs/middleware/basic-auth/index.js +98 -86
  142. package/dist/cjs/middleware/bearer-auth/index.js +92 -109
  143. package/dist/cjs/middleware/body-limit/index.js +66 -72
  144. package/dist/cjs/middleware/cache/index.js +153 -199
  145. package/dist/cjs/middleware/combine/index.js +133 -95
  146. package/dist/cjs/middleware/compress/index.js +73 -88
  147. package/dist/cjs/middleware/context-storage/index.js +49 -41
  148. package/dist/cjs/middleware/cors/index.js +107 -107
  149. package/dist/cjs/middleware/csrf/index.js +101 -72
  150. package/dist/cjs/middleware/etag/digest.js +58 -97
  151. package/dist/cjs/middleware/etag/index.js +71 -91
  152. package/dist/cjs/middleware/ip-restriction/index.js +161 -169
  153. package/dist/cjs/middleware/jsx-renderer/index.js +99 -77
  154. package/dist/cjs/middleware/jwk/index.js +3 -27
  155. package/dist/cjs/middleware/jwk/jwk.js +118 -135
  156. package/dist/cjs/middleware/jwt/index.js +9 -38
  157. package/dist/cjs/middleware/jwt/jwt.js +120 -141
  158. package/dist/cjs/middleware/language/index.js +7 -35
  159. package/dist/cjs/middleware/language/language.js +184 -182
  160. package/dist/cjs/middleware/logger/index.js +41 -62
  161. package/dist/cjs/middleware/method-not-allowed/index.js +82 -88
  162. package/dist/cjs/middleware/method-override/index.js +101 -102
  163. package/dist/cjs/middleware/powered-by/index.js +23 -30
  164. package/dist/cjs/middleware/pretty-json/index.js +38 -42
  165. package/dist/cjs/middleware/request-id/index.js +3 -27
  166. package/dist/cjs/middleware/request-id/request-id.js +34 -42
  167. package/dist/cjs/middleware/secure-headers/index.js +4 -29
  168. package/dist/cjs/middleware/secure-headers/permissions-policy.js +0 -15
  169. package/dist/cjs/middleware/secure-headers/secure-headers.js +142 -174
  170. package/dist/cjs/middleware/serve-static/index.js +55 -93
  171. package/dist/cjs/middleware/serve-static/path.js +15 -38
  172. package/dist/cjs/middleware/timeout/index.js +40 -45
  173. package/dist/cjs/middleware/timing/index.js +7 -35
  174. package/dist/cjs/middleware/timing/timing.js +177 -118
  175. package/dist/cjs/middleware/trailing-slash/index.js +85 -58
  176. package/dist/cjs/preset/quick.js +18 -37
  177. package/dist/cjs/preset/tiny.js +15 -33
  178. package/dist/cjs/request/constants.js +5 -27
  179. package/dist/cjs/request.js +334 -346
  180. package/dist/cjs/router/linear-router/index.js +3 -27
  181. package/dist/cjs/router/linear-router/router.js +95 -143
  182. package/dist/cjs/router/pattern-router/index.js +3 -27
  183. package/dist/cjs/router/pattern-router/router.js +41 -63
  184. package/dist/cjs/router/reg-exp-router/index.js +7 -34
  185. package/dist/cjs/router/reg-exp-router/matcher.js +18 -45
  186. package/dist/cjs/router/reg-exp-router/node.js +91 -135
  187. package/dist/cjs/router/reg-exp-router/prepared-router.js +92 -161
  188. package/dist/cjs/router/reg-exp-router/router.js +98 -147
  189. package/dist/cjs/router/reg-exp-router/trie.js +73 -89
  190. package/dist/cjs/router/smart-router/index.js +3 -27
  191. package/dist/cjs/router/smart-router/router.js +49 -79
  192. package/dist/cjs/router/trie-router/index.js +3 -27
  193. package/dist/cjs/router/trie-router/node.js +134 -186
  194. package/dist/cjs/router/trie-router/router.js +15 -39
  195. package/dist/cjs/router/utils.js +5 -27
  196. package/dist/cjs/router.js +37 -37
  197. package/dist/cjs/types.js +5 -28
  198. package/dist/cjs/utils/accept.js +177 -225
  199. package/dist/cjs/utils/basic-auth.js +16 -40
  200. package/dist/cjs/utils/body.js +84 -110
  201. package/dist/cjs/utils/buffer.js +43 -91
  202. package/dist/cjs/utils/color.js +35 -44
  203. package/dist/cjs/utils/compress.js +11 -26
  204. package/dist/cjs/utils/concurrent.js +29 -59
  205. package/dist/cjs/utils/constants.js +7 -26
  206. package/dist/cjs/utils/cookie.js +107 -177
  207. package/dist/cjs/utils/crypto.js +30 -61
  208. package/dist/cjs/utils/encode.js +31 -48
  209. package/dist/cjs/utils/filepath.js +23 -54
  210. package/dist/cjs/utils/handler.js +11 -33
  211. package/dist/cjs/utils/headers.js +0 -15
  212. package/dist/cjs/utils/html.js +96 -137
  213. package/dist/cjs/utils/http-status.js +0 -15
  214. package/dist/cjs/utils/ipaddr.js +213 -286
  215. package/dist/cjs/utils/jwt/index.js +14 -27
  216. package/dist/cjs/utils/jwt/jwa.js +25 -42
  217. package/dist/cjs/utils/jwt/jws.js +119 -199
  218. package/dist/cjs/utils/jwt/jwt.js +122 -206
  219. package/dist/cjs/utils/jwt/types.js +122 -159
  220. package/dist/cjs/utils/jwt/utf8.js +9 -28
  221. package/dist/cjs/utils/mime.js +75 -101
  222. package/dist/cjs/utils/stream.js +88 -111
  223. package/dist/cjs/utils/types.js +0 -15
  224. package/dist/cjs/utils/url.js +185 -234
  225. package/dist/cjs/validator/index.js +3 -27
  226. package/dist/cjs/validator/utils.js +0 -15
  227. package/dist/cjs/validator/validator.js +60 -103
  228. package/dist/client/client.js +138 -197
  229. package/dist/client/fetch-result-please.js +59 -56
  230. package/dist/client/index.js +3 -7
  231. package/dist/client/types.js +1 -0
  232. package/dist/client/utils.js +51 -68
  233. package/dist/compose.js +49 -45
  234. package/dist/context.js +376 -426
  235. package/dist/helper/accepts/accepts.js +47 -51
  236. package/dist/helper/accepts/index.js +1 -4
  237. package/dist/helper/adapter/index.js +33 -52
  238. package/dist/helper/conninfo/index.js +1 -0
  239. package/dist/helper/conninfo/types.js +1 -0
  240. package/dist/helper/cookie/index.js +74 -94
  241. package/dist/helper/css/common.js +167 -225
  242. package/dist/helper/css/index.js +132 -137
  243. package/dist/helper/dev/index.js +44 -49
  244. package/dist/helper/factory/index.js +27 -27
  245. package/dist/helper/html/index.js +30 -39
  246. package/dist/helper/proxy/index.js +116 -88
  247. package/dist/helper/route/index.js +121 -43
  248. package/dist/helper/ssg/index.js +3 -18
  249. package/dist/helper/ssg/middleware.js +53 -40
  250. package/dist/helper/ssg/plugins.js +55 -36
  251. package/dist/helper/ssg/ssg.js +198 -283
  252. package/dist/helper/ssg/utils.js +53 -75
  253. package/dist/helper/streaming/index.js +2 -8
  254. package/dist/helper/streaming/sse.js +50 -61
  255. package/dist/helper/streaming/stream.js +22 -31
  256. package/dist/helper/streaming/text.js +9 -10
  257. package/dist/helper/streaming/utils.js +9 -12
  258. package/dist/helper/testing/index.js +16 -10
  259. package/dist/helper/websocket/index.js +49 -53
  260. package/dist/hono-base.js +342 -379
  261. package/dist/hono.js +27 -20
  262. package/dist/http-exception.js +53 -33
  263. package/dist/index.js +19 -6
  264. package/dist/jsx/base.js +231 -340
  265. package/dist/jsx/children.js +16 -20
  266. package/dist/jsx/components.js +118 -170
  267. package/dist/jsx/constants.js +9 -15
  268. package/dist/jsx/context.js +153 -150
  269. package/dist/jsx/dom/client.js +45 -48
  270. package/dist/jsx/dom/components.js +21 -29
  271. package/dist/jsx/dom/context.js +37 -44
  272. package/dist/jsx/dom/css.js +142 -147
  273. package/dist/jsx/dom/hooks/index.js +52 -40
  274. package/dist/jsx/dom/index.js +71 -134
  275. package/dist/jsx/dom/intrinsic-element/components.js +275 -359
  276. package/dist/jsx/dom/jsx-dev-runtime.js +14 -18
  277. package/dist/jsx/dom/jsx-runtime.js +2 -8
  278. package/dist/jsx/dom/render.js +492 -631
  279. package/dist/jsx/dom/server.js +32 -32
  280. package/dist/jsx/dom/utils.js +6 -8
  281. package/dist/jsx/hooks/index.js +236 -308
  282. package/dist/jsx/index.js +45 -98
  283. package/dist/jsx/intrinsic-element/common.js +20 -22
  284. package/dist/jsx/intrinsic-element/components.js +113 -154
  285. package/dist/jsx/intrinsic-elements.js +1 -0
  286. package/dist/jsx/jsx-dev-runtime.js +12 -16
  287. package/dist/jsx/jsx-runtime.js +29 -42
  288. package/dist/jsx/streaming.js +120 -142
  289. package/dist/jsx/types.js +1 -0
  290. package/dist/jsx/utils.js +105 -168
  291. package/dist/middleware/basic-auth/index.js +96 -63
  292. package/dist/middleware/bearer-auth/index.js +93 -89
  293. package/dist/middleware/body-limit/index.js +66 -51
  294. package/dist/middleware/cache/index.js +165 -190
  295. package/dist/middleware/combine/index.js +132 -73
  296. package/dist/middleware/compress/index.js +75 -69
  297. package/dist/middleware/context-storage/index.js +49 -19
  298. package/dist/middleware/cors/index.js +107 -86
  299. package/dist/middleware/csrf/index.js +103 -53
  300. package/dist/middleware/etag/digest.js +59 -77
  301. package/dist/middleware/etag/index.js +71 -70
  302. package/dist/middleware/ip-restriction/index.js +163 -158
  303. package/dist/middleware/jsx-renderer/index.js +97 -54
  304. package/dist/middleware/jwk/index.js +1 -4
  305. package/dist/middleware/jwk/jwk.js +116 -112
  306. package/dist/middleware/jwt/index.js +2 -10
  307. package/dist/middleware/jwt/jwt.js +114 -114
  308. package/dist/middleware/language/index.js +2 -15
  309. package/dist/middleware/language/language.js +180 -157
  310. package/dist/middleware/logger/index.js +43 -37
  311. package/dist/middleware/method-not-allowed/index.js +81 -66
  312. package/dist/middleware/method-override/index.js +101 -81
  313. package/dist/middleware/powered-by/index.js +23 -9
  314. package/dist/middleware/pretty-json/index.js +39 -22
  315. package/dist/middleware/request-id/index.js +1 -4
  316. package/dist/middleware/request-id/request-id.js +33 -20
  317. package/dist/middleware/secure-headers/index.js +1 -5
  318. package/dist/middleware/secure-headers/permissions-policy.js +1 -0
  319. package/dist/middleware/secure-headers/secure-headers.js +144 -155
  320. package/dist/middleware/serve-static/index.js +55 -72
  321. package/dist/middleware/serve-static/path.js +15 -17
  322. package/dist/middleware/timeout/index.js +40 -23
  323. package/dist/middleware/timing/index.js +2 -9
  324. package/dist/middleware/timing/timing.js +177 -97
  325. package/dist/middleware/trailing-slash/index.js +85 -37
  326. package/dist/preset/quick.js +17 -15
  327. package/dist/preset/tiny.js +14 -11
  328. package/dist/request/constants.js +4 -5
  329. package/dist/request.js +328 -319
  330. package/dist/router/linear-router/index.js +1 -4
  331. package/dist/router/linear-router/router.js +93 -120
  332. package/dist/router/pattern-router/index.js +1 -4
  333. package/dist/router/pattern-router/router.js +39 -40
  334. package/dist/router/reg-exp-router/index.js +1 -7
  335. package/dist/router/reg-exp-router/matcher.js +17 -23
  336. package/dist/router/reg-exp-router/node.js +87 -110
  337. package/dist/router/reg-exp-router/prepared-router.js +89 -137
  338. package/dist/router/reg-exp-router/router.js +92 -129
  339. package/dist/router/reg-exp-router/trie.js +69 -64
  340. package/dist/router/smart-router/index.js +1 -4
  341. package/dist/router/smart-router/router.js +46 -55
  342. package/dist/router/trie-router/index.js +1 -4
  343. package/dist/router/trie-router/node.js +131 -162
  344. package/dist/router/trie-router/router.js +11 -14
  345. package/dist/router/utils.js +4 -5
  346. package/dist/router.js +35 -14
  347. package/dist/types/adapter/aws-lambda/conninfo.d.ts +4 -1
  348. package/dist/types/adapter/aws-lambda/handler.d.ts +150 -105
  349. package/dist/types/adapter/aws-lambda/index.d.ts +4 -8
  350. package/dist/types/adapter/aws-lambda/types.d.ts +152 -123
  351. package/dist/types/adapter/bun/conninfo.d.ts +4 -1
  352. package/dist/types/adapter/bun/index.d.ts +6 -10
  353. package/dist/types/adapter/bun/serve-static.d.ts +7 -2
  354. package/dist/types/adapter/bun/server.d.ts +4 -5
  355. package/dist/types/adapter/bun/ssg.d.ts +5 -1
  356. package/dist/types/adapter/bun/websocket.d.ts +31 -17
  357. package/dist/types/adapter/cloudflare-pages/conninfo.d.ts +4 -1
  358. package/dist/types/adapter/cloudflare-pages/handler.d.ts +29 -18
  359. package/dist/types/adapter/cloudflare-pages/index.d.ts +3 -7
  360. package/dist/types/adapter/cloudflare-workers/conninfo.d.ts +6 -1
  361. package/dist/types/adapter/cloudflare-workers/index.d.ts +4 -7
  362. package/dist/types/adapter/cloudflare-workers/serve-static-module.d.ts +5 -3
  363. package/dist/types/adapter/cloudflare-workers/serve-static.d.ts +10 -5
  364. package/dist/types/adapter/cloudflare-workers/utils.d.ts +10 -2
  365. package/dist/types/adapter/cloudflare-workers/websocket.d.ts +6 -1
  366. package/dist/types/adapter/deno/conninfo.d.ts +4 -1
  367. package/dist/types/adapter/deno/deno.d.ts +1 -0
  368. package/dist/types/adapter/deno/index.d.ts +5 -8
  369. package/dist/types/adapter/deno/serve-static.d.ts +7 -2
  370. package/dist/types/adapter/deno/ssg.d.ts +5 -1
  371. package/dist/types/adapter/deno/websocket.d.ts +6 -1
  372. package/dist/types/adapter/lambda-edge/conninfo.d.ts +6 -1
  373. package/dist/types/adapter/lambda-edge/handler.d.ts +83 -58
  374. package/dist/types/adapter/lambda-edge/index.d.ts +3 -7
  375. package/dist/types/adapter/netlify/conninfo.d.ts +4 -1
  376. package/dist/types/adapter/netlify/handler.d.ts +6 -1
  377. package/dist/types/adapter/netlify/index.d.ts +3 -5
  378. package/dist/types/adapter/netlify/mod.d.ts +3 -2
  379. package/dist/types/adapter/service-worker/handler.d.ts +9 -8
  380. package/dist/types/adapter/service-worker/index.d.ts +6 -9
  381. package/dist/types/adapter/service-worker/types.d.ts +12 -8
  382. package/dist/types/adapter/vercel/conninfo.d.ts +6 -1
  383. package/dist/types/adapter/vercel/handler.d.ts +6 -1
  384. package/dist/types/adapter/vercel/index.d.ts +3 -6
  385. package/dist/types/client/client.d.ts +5 -3
  386. package/dist/types/client/fetch-result-please.d.ts +21 -19
  387. package/dist/types/client/index.d.ts +5 -7
  388. package/dist/types/client/types.d.ts +134 -160
  389. package/dist/types/client/utils.d.ts +6 -4
  390. package/dist/types/compose.d.ts +4 -2
  391. package/dist/types/context.d.ts +335 -336
  392. package/dist/types/helper/accepts/accepts.d.ts +11 -9
  393. package/dist/types/helper/accepts/index.d.ts +2 -5
  394. package/dist/types/helper/adapter/index.d.ts +4 -6
  395. package/dist/types/helper/conninfo/index.d.ts +2 -5
  396. package/dist/types/helper/conninfo/types.d.ts +25 -23
  397. package/dist/types/helper/cookie/index.d.ts +10 -13
  398. package/dist/types/helper/css/common.d.ts +11 -10
  399. package/dist/types/helper/css/index.d.ts +25 -28
  400. package/dist/types/helper/dev/index.d.ts +10 -13
  401. package/dist/types/helper/factory/index.d.ts +26 -74
  402. package/dist/types/helper/html/index.d.ts +4 -7
  403. package/dist/types/helper/proxy/index.d.ts +19 -22
  404. package/dist/types/helper/route/index.d.ts +4 -2
  405. package/dist/types/helper/ssg/index.d.ts +4 -7
  406. package/dist/types/helper/ssg/middleware.d.ts +8 -7
  407. package/dist/types/helper/ssg/plugins.d.ts +3 -1
  408. package/dist/types/helper/ssg/ssg.d.ts +38 -36
  409. package/dist/types/helper/ssg/utils.d.ts +5 -4
  410. package/dist/types/helper/streaming/index.d.ts +4 -8
  411. package/dist/types/helper/streaming/sse.d.ts +10 -8
  412. package/dist/types/helper/streaming/stream.d.ts +4 -2
  413. package/dist/types/helper/streaming/text.d.ts +4 -2
  414. package/dist/types/helper/streaming/utils.d.ts +2 -0
  415. package/dist/types/helper/testing/index.d.ts +7 -10
  416. package/dist/types/helper/websocket/index.d.ts +30 -33
  417. package/dist/types/hono-base.d.ts +208 -211
  418. package/dist/types/hono.d.ts +11 -10
  419. package/dist/types/http-exception.d.ts +20 -23
  420. package/dist/types/index.d.ts +6 -37
  421. package/dist/types/jsx/base.d.ts +36 -35
  422. package/dist/types/jsx/children.d.ts +8 -6
  423. package/dist/types/jsx/components.d.ts +8 -5
  424. package/dist/types/jsx/constants.d.ts +2 -0
  425. package/dist/types/jsx/context.d.ts +9 -7
  426. package/dist/types/jsx/dom/client.d.ts +8 -10
  427. package/dist/types/jsx/dom/components.d.ts +9 -6
  428. package/dist/types/jsx/dom/context.d.ts +3 -1
  429. package/dist/types/jsx/dom/css.d.ts +26 -30
  430. package/dist/types/jsx/dom/hooks/index.d.ts +11 -13
  431. package/dist/types/jsx/dom/index.d.ts +78 -83
  432. package/dist/types/jsx/dom/intrinsic-element/components.d.ts +9 -5
  433. package/dist/types/jsx/dom/jsx-dev-runtime.d.ts +4 -6
  434. package/dist/types/jsx/dom/jsx-runtime.d.ts +3 -7
  435. package/dist/types/jsx/dom/render.d.ts +32 -51
  436. package/dist/types/jsx/dom/server.d.ts +86 -85
  437. package/dist/types/jsx/dom/utils.d.ts +2 -0
  438. package/dist/types/jsx/hooks/index.d.ts +16 -17
  439. package/dist/types/jsx/index.d.ts +70 -73
  440. package/dist/types/jsx/intrinsic-element/common.d.ts +3 -1
  441. package/dist/types/jsx/intrinsic-element/components.d.ts +7 -4
  442. package/dist/types/jsx/intrinsic-elements.d.ts +708 -708
  443. package/dist/types/jsx/jsx-dev-runtime.d.ts +4 -7
  444. package/dist/types/jsx/jsx-runtime.d.ts +7 -10
  445. package/dist/types/jsx/streaming.d.ts +9 -10
  446. package/dist/types/jsx/types.d.ts +11 -13
  447. package/dist/types/jsx/utils.d.ts +2 -0
  448. package/dist/types/middleware/basic-auth/index.d.ts +17 -20
  449. package/dist/types/middleware/bearer-auth/index.d.ts +46 -49
  450. package/dist/types/middleware/body-limit/index.d.ts +6 -9
  451. package/dist/types/middleware/cache/index.d.ts +13 -15
  452. package/dist/types/middleware/combine/index.d.ts +4 -7
  453. package/dist/types/middleware/compress/index.d.ts +8 -10
  454. package/dist/types/middleware/context-storage/index.d.ts +4 -6
  455. package/dist/types/middleware/cors/index.d.ts +10 -13
  456. package/dist/types/middleware/csrf/index.d.ts +6 -9
  457. package/dist/types/middleware/etag/digest.d.ts +2 -0
  458. package/dist/types/middleware/etag/index.d.ts +6 -9
  459. package/dist/types/middleware/ip-restriction/index.d.ts +11 -13
  460. package/dist/types/middleware/jsx-renderer/index.d.ts +11 -12
  461. package/dist/types/middleware/jwk/index.d.ts +2 -1
  462. package/dist/types/middleware/jwk/jwk.d.ts +20 -23
  463. package/dist/types/middleware/jwt/index.d.ts +6 -6
  464. package/dist/types/middleware/jwt/jwt.d.ts +28 -30
  465. package/dist/types/middleware/language/index.d.ts +5 -5
  466. package/dist/types/middleware/language/language.d.ts +42 -44
  467. package/dist/types/middleware/logger/index.d.ts +3 -6
  468. package/dist/types/middleware/method-not-allowed/index.d.ts +7 -10
  469. package/dist/types/middleware/method-override/index.d.ts +14 -17
  470. package/dist/types/middleware/powered-by/index.d.ts +8 -11
  471. package/dist/types/middleware/pretty-json/index.d.ts +18 -21
  472. package/dist/types/middleware/request-id/index.d.ts +5 -5
  473. package/dist/types/middleware/request-id/request-id.d.ts +9 -11
  474. package/dist/types/middleware/secure-headers/index.d.ts +5 -6
  475. package/dist/types/middleware/secure-headers/permissions-policy.d.ts +2 -1
  476. package/dist/types/middleware/secure-headers/secure-headers.d.ts +55 -58
  477. package/dist/types/middleware/serve-static/index.d.ts +22 -24
  478. package/dist/types/middleware/serve-static/path.d.ts +2 -0
  479. package/dist/types/middleware/timeout/index.d.ts +5 -7
  480. package/dist/types/middleware/timing/index.d.ts +5 -5
  481. package/dist/types/middleware/timing/timing.d.ts +17 -21
  482. package/dist/types/middleware/trailing-slash/index.d.ts +35 -38
  483. package/dist/types/preset/quick.d.ts +6 -9
  484. package/dist/types/preset/tiny.d.ts +6 -9
  485. package/dist/types/request/constants.d.ts +2 -0
  486. package/dist/types/request.d.ts +288 -287
  487. package/dist/types/router/linear-router/index.d.ts +2 -5
  488. package/dist/types/router/linear-router/router.d.ts +7 -5
  489. package/dist/types/router/pattern-router/index.d.ts +2 -5
  490. package/dist/types/router/pattern-router/router.d.ts +7 -5
  491. package/dist/types/router/reg-exp-router/index.d.ts +3 -6
  492. package/dist/types/router/reg-exp-router/matcher.d.ts +3 -1
  493. package/dist/types/router/reg-exp-router/node.d.ts +6 -4
  494. package/dist/types/router/reg-exp-router/prepared-router.d.ts +11 -11
  495. package/dist/types/router/reg-exp-router/router.d.ts +10 -9
  496. package/dist/types/router/reg-exp-router/trie.d.ts +7 -5
  497. package/dist/types/router/smart-router/index.d.ts +2 -5
  498. package/dist/types/router/smart-router/router.d.ts +11 -9
  499. package/dist/types/router/trie-router/index.d.ts +2 -5
  500. package/dist/types/router/trie-router/node.d.ts +6 -4
  501. package/dist/types/router/trie-router/router.d.ts +7 -5
  502. package/dist/types/router/utils.d.ts +2 -0
  503. package/dist/types/router.d.ts +23 -22
  504. package/dist/types/types.d.ts +146 -506
  505. package/dist/types/utils/accept.d.ts +5 -3
  506. package/dist/types/utils/basic-auth.d.ts +4 -2
  507. package/dist/types/utils/body.d.ts +46 -51
  508. package/dist/types/utils/buffer.d.ts +7 -6
  509. package/dist/types/utils/color.d.ts +2 -0
  510. package/dist/types/utils/compress.d.ts +2 -0
  511. package/dist/types/utils/concurrent.d.ts +6 -4
  512. package/dist/types/utils/constants.d.ts +2 -0
  513. package/dist/types/utils/cookie.d.ts +20 -19
  514. package/dist/types/utils/crypto.d.ts +5 -8
  515. package/dist/types/utils/encode.d.ts +2 -0
  516. package/dist/types/utils/filepath.d.ts +5 -4
  517. package/dist/types/utils/handler.d.ts +2 -0
  518. package/dist/types/utils/headers.d.ts +2 -0
  519. package/dist/types/utils/html.d.ts +11 -10
  520. package/dist/types/utils/http-status.d.ts +2 -0
  521. package/dist/types/utils/ipaddr.d.ts +4 -6
  522. package/dist/types/utils/jwt/index.d.ts +18 -12
  523. package/dist/types/utils/jwt/jwa.d.ts +15 -13
  524. package/dist/types/utils/jwt/jws.d.ts +4 -7
  525. package/dist/types/utils/jwt/jwt.d.ts +26 -29
  526. package/dist/types/utils/jwt/types.d.ts +48 -45
  527. package/dist/types/utils/jwt/utf8.d.ts +2 -0
  528. package/dist/types/utils/mime.d.ts +59 -57
  529. package/dist/types/utils/stream.d.ts +27 -25
  530. package/dist/types/utils/types.d.ts +14 -27
  531. package/dist/types/utils/url.d.ts +2 -1
  532. package/dist/types/validator/index.d.ts +3 -7
  533. package/dist/types/validator/utils.d.ts +6 -9
  534. package/dist/types/validator/validator.d.ts +11 -10
  535. package/dist/types.js +4 -6
  536. package/dist/utils/accept.js +185 -212
  537. package/dist/utils/basic-auth.js +18 -21
  538. package/dist/utils/body.js +87 -92
  539. package/dist/utils/buffer.js +44 -71
  540. package/dist/utils/color.js +33 -21
  541. package/dist/utils/compress.js +11 -5
  542. package/dist/utils/concurrent.js +29 -38
  543. package/dist/utils/constants.js +7 -5
  544. package/dist/utils/cookie.js +114 -163
  545. package/dist/utils/crypto.js +30 -40
  546. package/dist/utils/encode.js +30 -26
  547. package/dist/utils/filepath.js +23 -33
  548. package/dist/utils/handler.js +10 -11
  549. package/dist/utils/headers.js +1 -0
  550. package/dist/utils/html.js +97 -117
  551. package/dist/utils/http-status.js +1 -0
  552. package/dist/utils/ipaddr.js +227 -279
  553. package/dist/utils/jwt/index.js +12 -4
  554. package/dist/utils/jwt/jwa.js +24 -20
  555. package/dist/utils/jwt/jws.js +115 -174
  556. package/dist/utils/jwt/jwt.js +120 -198
  557. package/dist/utils/jwt/types.js +79 -95
  558. package/dist/utils/jwt/utf8.js +9 -7
  559. package/dist/utils/mime.js +74 -79
  560. package/dist/utils/stream.js +86 -88
  561. package/dist/utils/types.js +1 -0
  562. package/dist/utils/url.js +187 -215
  563. package/dist/validator/index.js +1 -4
  564. package/dist/validator/utils.js +1 -0
  565. package/dist/validator/validator.js +61 -83
  566. package/package.json +27 -27
@@ -1,11 +1,7 @@
1
- /**
2
- * Service Worker Adapter for Hono.
3
- * @module
4
- */
5
- import type { Hono } from '../../hono';
6
- import type { Env, Schema } from '../../types';
7
- import { handle } from './handler';
8
- import type { HandleOptions } from './handler';
1
+ import { Env, Schema } from "../../types.js";
2
+ import { Hono } from "../../hono.js";
3
+ import { HandleOptions, handle } from "./handler.js";
4
+ //#region src/adapter/service-worker/index.d.ts
9
5
  /**
10
6
  * Registers a Hono app to handle fetch events in a service worker.
11
7
  * This sets up `addEventListener('fetch', handle(app, options))` for the provided app.
@@ -25,4 +21,5 @@ import type { HandleOptions } from './handler';
25
21
  * ```
26
22
  */
27
23
  declare const fire: <E extends Env, S extends Schema, BasePath extends string>(app: Hono<E, S, BasePath>, options?: HandleOptions) => void;
28
- export { handle, fire };
24
+ //#endregion
25
+ export { fire, handle };
@@ -1,12 +1,16 @@
1
+ //#region src/adapter/service-worker/types.d.ts
1
2
  interface ExtendableEvent extends Event {
2
- waitUntil(f: Promise<any>): void;
3
+ waitUntil(f: Promise<any>): void;
3
4
  }
5
+ /**
6
+ * @deprecated `hono/service-worker` will be removed in v5. Install `@hono/service-worker` and import from there instead.
7
+ */
4
8
  export interface FetchEvent extends ExtendableEvent {
5
- readonly clientId: string;
6
- readonly handled: Promise<void>;
7
- readonly preloadResponse: Promise<any>;
8
- readonly request: Request;
9
- readonly resultingClientId: string;
10
- respondWith(r: Response | PromiseLike<Response>): void;
9
+ readonly clientId: string;
10
+ readonly handled: Promise<void>;
11
+ readonly preloadResponse: Promise<any>;
12
+ readonly request: Request;
13
+ readonly resultingClientId: string;
14
+ respondWith(r: Response | PromiseLike<Response>): void;
11
15
  }
12
- export {};
16
+ //#endregion
@@ -1,2 +1,7 @@
1
- import type { GetConnInfo } from '../../helper/conninfo';
1
+ import { GetConnInfo } from "../../helper/conninfo/types.js";
2
+ //#region src/adapter/vercel/conninfo.d.ts
3
+ /**
4
+ * @deprecated `hono/vercel` will be removed in v5. Install `@hono/vercel` and import from there instead.
5
+ */
2
6
  export declare const getConnInfo: GetConnInfo;
7
+ //#endregion
@@ -1,2 +1,7 @@
1
- import type { Hono } from '../../hono';
1
+ import { Hono } from "../../hono.js";
2
+ //#region src/adapter/vercel/handler.d.ts
3
+ /**
4
+ * @deprecated `hono/vercel` will be removed in v5. Install `@hono/vercel` and import from there instead.
5
+ */
2
6
  export declare const handle: (app: Hono<any, any, any>) => (req: Request) => Response | Promise<Response>;
7
+ //#endregion
@@ -1,6 +1,3 @@
1
- /**
2
- * @module
3
- * Vercel Adapter for Hono.
4
- */
5
- export { handle } from './handler';
6
- export { getConnInfo } from './conninfo';
1
+ import { getConnInfo } from "./conninfo.js";
2
+ import { handle } from "./handler.js";
3
+ export { getConnInfo, handle };
@@ -1,4 +1,6 @@
1
- import type { Hono } from '../hono';
2
- import type { UnionToIntersection } from '../utils/types';
3
- import type { Client, ClientRequestOptions } from './types';
1
+ import { UnionToIntersection } from "../utils/types.js";
2
+ import { Hono } from "../hono.js";
3
+ import { Client, ClientRequestOptions } from "./types.js";
4
+ //#region src/client/client.d.ts
4
5
  export declare const hc: <T extends Hono<any, any, any>, Prefix extends string = string>(baseUrl: Prefix, options?: ClientRequestOptions) => UnionToIntersection<Client<T, Prefix>>;
6
+ //#endregion
@@ -1,3 +1,4 @@
1
+ //#region src/client/fetch-result-please.d.ts
1
2
  /**
2
3
  * @description This file is a modified version of `fetch-result-please` (`ofetch`), minimalized and adapted to Hono's custom needs.
3
4
  *
@@ -10,26 +11,27 @@
10
11
  */
11
12
  export declare function fetchRP(fetchRes: Response | Promise<Response>): Promise<any>;
12
13
  export declare class DetailedError extends Error {
13
- /**
14
- * Additional `message` that will be logged AND returned to client
15
- */
14
+ /**
15
+ * Additional `message` that will be logged AND returned to client
16
+ */
17
+ detail?: any;
18
+ /**
19
+ * Additional `code` that will be logged AND returned to client
20
+ */
21
+ code?: any;
22
+ /**
23
+ * Additional value that will be logged AND NOT returned to client
24
+ */
25
+ log?: any;
26
+ /**
27
+ * Optionally set the status code to return, in a web server context
28
+ */
29
+ statusCode?: any;
30
+ constructor(message: string, options?: {
16
31
  detail?: any;
17
- /**
18
- * Additional `code` that will be logged AND returned to client
19
- */
20
32
  code?: any;
21
- /**
22
- * Additional value that will be logged AND NOT returned to client
23
- */
33
+ statusCode?: number;
24
34
  log?: any;
25
- /**
26
- * Optionally set the status code to return, in a web server context
27
- */
28
- statusCode?: any;
29
- constructor(message: string, options?: {
30
- detail?: any;
31
- code?: any;
32
- statusCode?: number;
33
- log?: any;
34
- });
35
+ });
35
36
  }
37
+ //#endregion
@@ -1,7 +1,5 @@
1
- /**
2
- * @module
3
- * The HTTP Client for Hono.
4
- */
5
- export { hc } from './client';
6
- export { parseResponse, DetailedError } from './utils';
7
- export type { InferResponseType, InferRequestType, Fetch, ClientRequestOptions, ClientRequest, ClientResponse, ApplyGlobalResponse, PickResponseByStatusCode, } from './types';
1
+ import { ApplyGlobalResponse, ClientRequest, ClientRequestOptions, ClientResponse, Fetch, InferRequestType, InferResponseType, PickResponseByStatusCode } from "./types.js";
2
+ import { hc } from "./client.js";
3
+ import { DetailedError } from "./fetch-result-please.js";
4
+ import { parseResponse } from "./utils.js";
5
+ export { type ApplyGlobalResponse, type ClientRequest, type ClientRequestOptions, type ClientResponse, DetailedError, type Fetch, type InferRequestType, type InferResponseType, type PickResponseByStatusCode, hc, parseResponse };
@@ -1,9 +1,10 @@
1
- import type { Hono } from '../hono';
2
- import type { HonoBase } from '../hono-base';
3
- import type { METHODS, METHOD_NAME_ALL_LOWERCASE } from '../router';
4
- import type { Endpoint, ExtractSchema, KnownResponseFormat, ResponseFormat, Schema } from '../types';
5
- import type { StatusCode, SuccessStatusCode } from '../utils/http-status';
6
- import type { HasRequiredKeys } from '../utils/types';
1
+ import { METHODS, METHOD_NAME_ALL_LOWERCASE } from "../router.js";
2
+ import { HonoBase as Hono } from "../hono-base.js";
3
+ import { StatusCode, SuccessStatusCode } from "../utils/http-status.js";
4
+ import { HasRequiredKeys } from "../utils/types.js";
5
+ import { Endpoint, ExtractSchema, KnownResponseFormat, ResponseFormat, Schema } from "../types.js";
6
+ import { Hono as Hono$1 } from "../hono.js";
7
+ //#region src/client/types.d.ts
7
8
  /**
8
9
  * Type representing the '$all' method name
9
10
  */
@@ -18,114 +19,108 @@ type StandardMethods = `$${(typeof METHODS)[number]}`;
18
19
  * If the schema contains '$all', it creates a type where all standard HTTP methods
19
20
  * point to the same endpoint definition as '$all', while removing '$all' itself.
20
21
  */
21
- type ExpandAllMethod<S> = MethodNameAll extends keyof S ? {
22
- [M in StandardMethods]: S[MethodNameAll];
23
- } & Omit<S, MethodNameAll> : S;
24
- type HonoRequest = (typeof Hono.prototype)['request'];
22
+ type ExpandAllMethod<S> = MethodNameAll extends keyof S ? { [M in StandardMethods]: S[MethodNameAll]; } & Omit<S, MethodNameAll> : S;
23
+ type HonoRequest = (typeof Hono$1.prototype)['request'];
25
24
  export type BuildSearchParamsFn = (query: Record<string, string | string[]>) => URLSearchParams;
26
25
  export type ClientRequestOptions<T = unknown> = {
27
- fetch?: typeof fetch | HonoRequest;
28
- webSocket?: (...args: ConstructorParameters<typeof WebSocket>) => WebSocket;
29
- /**
30
- * Standard `RequestInit`, caution that this take highest priority
31
- * and could be used to overwrite things that Hono sets for you, like `body | method | headers`.
32
- *
33
- * If you want to add some headers, use in `headers` instead of `init`
34
- */
35
- init?: RequestInit;
36
- /**
37
- * Custom function to serialize query parameters into URLSearchParams.
38
- * By default, arrays are serialized as multiple parameters with the same key (e.g., `key=a&key=b`).
39
- * You can provide a custom function to change this behavior, for example to use bracket notation (e.g., `key[]=a&key[]=b`).
40
- *
41
- * @example
42
- * ```ts
43
- * const client = hc('http://localhost', {
44
- * buildSearchParams: (query) => {
45
- * return new URLSearchParams(qs.stringify(query))
46
- * }
47
- * })
48
- * ```
49
- */
50
- buildSearchParams?: BuildSearchParamsFn;
26
+ fetch?: typeof fetch | HonoRequest;
27
+ webSocket?: (...args: ConstructorParameters<typeof WebSocket>) => WebSocket;
28
+ /**
29
+ * Standard `RequestInit`, caution that this take highest priority
30
+ * and could be used to overwrite things that Hono sets for you, like `body | method | headers`.
31
+ *
32
+ * If you want to add some headers, use in `headers` instead of `init`
33
+ */
34
+ init?: RequestInit;
35
+ /**
36
+ * Custom function to serialize query parameters into URLSearchParams.
37
+ * By default, arrays are serialized as multiple parameters with the same key (e.g., `key=a&key=b`).
38
+ * You can provide a custom function to change this behavior, for example to use bracket notation (e.g., `key[]=a&key[]=b`).
39
+ *
40
+ * @example
41
+ * ```ts
42
+ * const client = hc('http://localhost', {
43
+ * buildSearchParams: (query) => {
44
+ * return new URLSearchParams(qs.stringify(query))
45
+ * }
46
+ * })
47
+ * ```
48
+ */
49
+ buildSearchParams?: BuildSearchParamsFn;
51
50
  } & (keyof T extends never ? {
52
- headers?: Record<string, string> | (() => Record<string, string> | Promise<Record<string, string>>);
51
+ headers?: Record<string, string> | (() => Record<string, string> | Promise<Record<string, string>>);
53
52
  } : {
54
- headers: T | (() => T | Promise<T>);
53
+ headers: T | (() => T | Promise<T>);
55
54
  });
56
- export type ClientRequest<Prefix extends string, Path extends string, S extends Schema> = {
57
- [M in keyof ExpandAllMethod<S>]: ExpandAllMethod<S>[M] extends Endpoint & {
58
- input: infer R;
59
- } ? R extends object ? HasRequiredKeys<R> extends true ? (args: R, options?: ClientRequestOptions) => Promise<ClientResponseOfEndpoint<ExpandAllMethod<S>[M]>> : (args?: R, options?: ClientRequestOptions) => Promise<ClientResponseOfEndpoint<ExpandAllMethod<S>[M]>> : never : never;
60
- } & {
61
- $url: <const Arg extends (S[keyof S] extends {
62
- input: infer R;
63
- } ? R extends {
64
- param: infer P;
65
- } ? R extends {
66
- query: infer Q;
67
- } ? {
68
- param: P;
69
- query: Q;
70
- } : {
71
- param: P;
72
- } : R extends {
73
- query: infer Q;
74
- } ? {
75
- query: Q;
76
- } : {} : {}) | undefined = undefined>(arg?: Arg) => HonoURL<Prefix, Path, Arg>;
77
- $path: <const Arg extends (S[keyof S] extends {
78
- input: infer R;
79
- } ? R extends {
80
- param: infer P;
81
- } ? R extends {
82
- query: infer Q;
83
- } ? {
84
- param: P;
85
- query: Q;
86
- } : {
87
- param: P;
88
- } : R extends {
89
- query: infer Q;
90
- } ? {
91
- query: Q;
92
- } : {} : {}) | undefined = undefined>(arg?: Arg) => BuildPath<Path, Arg>;
55
+ export type ClientRequest<Prefix extends string, Path extends string, S extends Schema> = { [M in keyof ExpandAllMethod<S>]: ExpandAllMethod<S>[M] extends Endpoint & {
56
+ input: infer R;
57
+ } ? R extends object ? HasRequiredKeys<R> extends true ? (args: R, options?: ClientRequestOptions) => Promise<ClientResponseOfEndpoint<ExpandAllMethod<S>[M]>> : (args?: R, options?: ClientRequestOptions) => Promise<ClientResponseOfEndpoint<ExpandAllMethod<S>[M]>> : never : never; } & {
58
+ $url: <const Arg extends (S[keyof S] extends {
59
+ input: infer R;
60
+ } ? R extends {
61
+ param: infer P;
62
+ } ? R extends {
63
+ query: infer Q;
64
+ } ? {
65
+ param: P;
66
+ query: Q;
67
+ } : {
68
+ param: P;
69
+ } : R extends {
70
+ query: infer Q;
71
+ } ? {
72
+ query: Q;
73
+ } : {} : {}) | undefined = undefined>(arg?: Arg) => HonoURL<Prefix, Path, Arg>;
74
+ $path: <const Arg extends (S[keyof S] extends {
75
+ input: infer R;
76
+ } ? R extends {
77
+ param: infer P;
78
+ } ? R extends {
79
+ query: infer Q;
80
+ } ? {
81
+ param: P;
82
+ query: Q;
83
+ } : {
84
+ param: P;
85
+ } : R extends {
86
+ query: infer Q;
87
+ } ? {
88
+ query: Q;
89
+ } : {} : {}) | undefined = undefined>(arg?: Arg) => BuildPath<Path, Arg>;
93
90
  } & (S['$get'] extends {
94
- outputFormat: 'ws';
91
+ outputFormat: 'ws';
95
92
  } ? S['$get'] extends {
96
- input: infer I;
93
+ input: infer I;
97
94
  } ? {
98
- $ws: (args?: I) => WebSocket;
95
+ $ws: (args?: I) => WebSocket;
99
96
  } : {} : {});
100
97
  type ClientResponseOfEndpoint<T extends Endpoint = Endpoint> = T extends {
101
- output: infer O;
102
- outputFormat: infer F;
103
- status: infer S;
98
+ output: infer O;
99
+ outputFormat: infer F;
100
+ status: infer S;
104
101
  } ? ClientResponse<O, S extends number ? S : never, F extends ResponseFormat ? F : never> : never;
105
102
  export interface ClientResponse<T, U extends number = StatusCode, F extends ResponseFormat = ResponseFormat> {
106
- readonly body: ReadableStream | null;
107
- readonly bodyUsed: boolean;
108
- ok: U extends SuccessStatusCode ? true : U extends Exclude<StatusCode, SuccessStatusCode> ? false : boolean;
109
- redirected: boolean;
110
- status: U;
111
- statusText: string;
112
- type: 'basic' | 'cors' | 'default' | 'error' | 'opaque' | 'opaqueredirect';
113
- headers: Headers;
114
- url: string;
115
- redirect(url: string, status: number): Response;
116
- clone(): Response;
117
- bytes(): Promise<Uint8Array<ArrayBuffer>>;
118
- json(): F extends 'text' ? Promise<never> : F extends 'json' ? Promise<T> : Promise<unknown>;
119
- text(): F extends 'text' ? (T extends string ? Promise<T> : Promise<never>) : Promise<string>;
120
- blob(): Promise<Blob>;
121
- formData(): Promise<FormData>;
122
- arrayBuffer(): Promise<ArrayBuffer>;
103
+ readonly body: ReadableStream | null;
104
+ readonly bodyUsed: boolean;
105
+ ok: U extends SuccessStatusCode ? true : U extends Exclude<StatusCode, SuccessStatusCode> ? false : boolean;
106
+ redirected: boolean;
107
+ status: U;
108
+ statusText: string;
109
+ type: 'basic' | 'cors' | 'default' | 'error' | 'opaque' | 'opaqueredirect';
110
+ headers: Headers;
111
+ url: string;
112
+ redirect(url: string, status: number): Response;
113
+ clone(): Response;
114
+ bytes(): Promise<Uint8Array<ArrayBuffer>>;
115
+ json(): F extends 'text' ? Promise<never> : F extends 'json' ? Promise<T> : Promise<unknown>;
116
+ text(): F extends 'text' ? (T extends string ? Promise<T> : Promise<never>) : Promise<string>;
117
+ blob(): Promise<Blob>;
118
+ formData(): Promise<FormData>;
119
+ arrayBuffer(): Promise<ArrayBuffer>;
123
120
  }
124
- type BuildSearch<Arg, Key extends 'query'> = Arg extends {
125
- [K in Key]: infer Query;
126
- } ? IsEmptyObject<Query> extends true ? '' : `?${string}` : '';
121
+ type BuildSearch<Arg, Key extends 'query'> = Arg extends { [K in Key]: infer Query; } ? IsEmptyObject<Query> extends true ? '' : `?${string}` : '';
127
122
  type BuildPathname<P extends string, Arg> = Arg extends {
128
- param: infer Param;
123
+ param: infer Param;
129
124
  } ? `${ApplyParam<TrimStartSlash<P>, Param>}` : `/${TrimStartSlash<P>}`;
130
125
  type BuildPath<P extends string, Arg> = `${BuildPathname<P, Arg>}${BuildSearch<Arg, 'query'>}`;
131
126
  type BuildTypedURL<Protocol extends string, Host extends string, Port extends string, P extends string, Arg> = TypedURL<`${Protocol}:`, Host, Port, BuildPathname<P, Arg>, BuildSearch<Arg, 'query'>>;
@@ -137,83 +132,62 @@ type IsLiteral<T extends string> = [T] extends [never] ? false : string extends
137
132
  type ApplyParam<Path extends string, P, Result extends string = ''> = Path extends `${infer Head}/${infer Rest}` ? Head extends `:${infer Param}` ? P extends Record<Param, infer Value extends string> ? IsLiteral<Value> extends true ? ApplyParam<Rest, P, `${Result}/${Value & string}`> : ApplyParam<Rest, P, `${Result}/${Head}`> : ApplyParam<Rest, P, `${Result}/${Head}`> : ApplyParam<Rest, P, `${Result}/${Head}`> : Path extends `:${infer Param}` ? P extends Record<Param, infer Value extends string> ? IsLiteral<Value> extends true ? `${Result}/${Value & string}` : `${Result}/${Path}` : `${Result}/${Path}` : `${Result}/${Path}`;
138
133
  type IsEmptyObject<T> = keyof T extends never ? true : false;
139
134
  export interface TypedURL<Protocol extends string, Hostname extends string, Port extends string, Pathname extends string, Search extends string> extends URL {
140
- protocol: Protocol;
141
- hostname: Hostname;
142
- port: Port;
143
- host: Port extends '' ? Hostname : `${Hostname}:${Port}`;
144
- origin: `${Protocol}//${Hostname}${Port extends '' ? '' : `:${Port}`}`;
145
- pathname: Pathname;
146
- search: Search;
147
- href: `${Protocol}//${Hostname}${Port extends '' ? '' : `:${Port}`}${Pathname}${Search}`;
148
- }
149
- export interface Response extends ClientResponse<unknown> {
135
+ protocol: Protocol;
136
+ hostname: Hostname;
137
+ port: Port;
138
+ host: Port extends '' ? Hostname : `${Hostname}:${Port}`;
139
+ origin: `${Protocol}//${Hostname}${Port extends '' ? '' : `:${Port}`}`;
140
+ pathname: Pathname;
141
+ search: Search;
142
+ href: `${Protocol}//${Hostname}${Port extends '' ? '' : `:${Port}`}${Pathname}${Search}`;
150
143
  }
144
+ export interface Response extends ClientResponse<unknown> {}
151
145
  export type Fetch<T> = (args?: InferRequestType<T>, opt?: ClientRequestOptions) => Promise<ClientResponseOfEndpoint<InferEndpointType<T>>>;
152
- type InferEndpointType<T> = T extends (args: infer R, options: any | undefined) => Promise<infer U> ? U extends ClientResponse<infer O, infer S, infer F> ? {
153
- input: NonNullable<R>;
154
- output: O;
155
- outputFormat: F;
156
- status: S;
146
+ type InferEndpointType<T> = T extends ((args: infer R, options: any | undefined) => Promise<infer U>) ? U extends ClientResponse<infer O, infer S, infer F> ? {
147
+ input: NonNullable<R>;
148
+ output: O;
149
+ outputFormat: F;
150
+ status: S;
157
151
  } extends Endpoint ? {
158
- input: NonNullable<R>;
159
- output: O;
160
- outputFormat: F;
161
- status: S;
152
+ input: NonNullable<R>;
153
+ output: O;
154
+ outputFormat: F;
155
+ status: S;
162
156
  } : never : never : never;
163
157
  export type InferResponseType<T, U extends StatusCode = StatusCode> = InferResponseTypeFromEndpoint<InferEndpointType<T>, U>;
164
158
  type InferResponseTypeFromEndpoint<T extends Endpoint, U extends StatusCode> = T extends {
165
- output: infer O;
166
- status: infer S;
159
+ output: infer O;
160
+ status: infer S;
167
161
  } ? S extends U ? O : never : never;
168
- export type InferRequestType<T> = T extends (args: infer R, options: any | undefined) => Promise<ClientResponse<unknown>> ? NonNullable<R> : never;
169
- export type InferRequestOptionsType<T> = T extends (args: any, options: infer R) => Promise<ClientResponse<unknown>> ? NonNullable<R> : never;
162
+ export type InferRequestType<T> = T extends ((args: infer R, options: any | undefined) => Promise<ClientResponse<unknown>>) ? NonNullable<R> : never;
163
+ export type InferRequestOptionsType<T> = T extends ((args: any, options: infer R) => Promise<ClientResponse<unknown>>) ? NonNullable<R> : never;
170
164
  /**
171
165
  * Filter a ClientResponse type so it only includes responses of specific status codes.
172
166
  */
173
167
  export type FilterClientResponseByStatusCode<T extends ClientResponse<any, any, any>, U extends number = StatusCode> = T extends ClientResponse<infer RT, infer RC, infer RF> ? RC extends U ? ClientResponse<RT, RC, RF> : never : never;
174
- type PathToChain<Prefix extends string, Path extends string, E extends Schema, Original extends string = Path> = Path extends `/${infer P}` ? PathToChain<Prefix, P, E, Path> : Path extends `${infer P}/${infer R}` ? {
175
- [K in P]: PathToChain<Prefix, R, E, Original>;
176
- } : {
177
- [K in Path extends '' ? 'index' : Path]: ClientRequest<Prefix, Original, E extends Record<string, unknown> ? E[Original] : never>;
178
- };
179
- export type Client<T, Prefix extends string> = T extends HonoBase<any, infer S, any> ? S extends Record<infer K, Schema> ? K extends string ? PathToChain<Prefix, K, S> : never : never : never;
168
+ type PathToChain<Prefix extends string, Path extends string, E extends Schema, Original extends string = Path> = Path extends `/${infer P}` ? PathToChain<Prefix, P, E, Path> : Path extends `${infer P}/${infer R}` ? { [K in P]: PathToChain<Prefix, R, E, Original>; } : { [K in Path extends '' ? 'index' : Path]: ClientRequest<Prefix, Original, E extends Record<string, unknown> ? E[Original] : never>; };
169
+ export type Client<T, Prefix extends string> = T extends Hono<any, infer S, any> ? S extends Record<infer K, Schema> ? K extends string ? PathToChain<Prefix, K, S> : never : never : never;
180
170
  export type Callback = (opts: CallbackOptions) => unknown;
181
171
  interface CallbackOptions {
182
- path: string[];
183
- args: any[];
172
+ path: string[];
173
+ args: any[];
184
174
  }
185
175
  export type ObjectType<T = unknown> = {
186
- [key: string]: T;
176
+ [key: string]: T;
187
177
  };
188
- type GlobalResponseDefinition = {
189
- [S in StatusCode]?: {
190
- [F in KnownResponseFormat]?: unknown;
191
- };
192
- };
193
- type ToEndpoints<Def extends GlobalResponseDefinition, R> = {
194
- [S in keyof Def & StatusCode]: {
195
- [F in keyof Def[S] & KnownResponseFormat]: Omit<R, 'output' | 'status' | 'outputFormat'> & {
196
- output: Def[S][F];
197
- status: S;
198
- outputFormat: F;
199
- };
200
- }[keyof Def[S] & KnownResponseFormat];
201
- }[keyof Def & StatusCode];
178
+ type GlobalResponseDefinition = { [S in StatusCode]?: { [F in KnownResponseFormat]?: unknown; }; };
179
+ type ToEndpoints<Def extends GlobalResponseDefinition, R> = { [S in keyof Def & StatusCode]: { [F in keyof Def[S] & KnownResponseFormat]: Omit<R, 'output' | 'status' | 'outputFormat'> & {
180
+ output: Def[S][F];
181
+ status: S;
182
+ outputFormat: F;
183
+ }; }[keyof Def[S] & KnownResponseFormat]; }[keyof Def & StatusCode];
202
184
  type ModRoute<R, Def extends GlobalResponseDefinition> = R extends Endpoint ? R | ToEndpoints<Def, R> : R;
203
- type ModSchema<D, Def extends GlobalResponseDefinition> = {
204
- [K in keyof D]: {
205
- [M in keyof D[K]]: ModRoute<D[K][M], Def>;
206
- };
207
- };
208
- export type ApplyGlobalResponse<App, Def extends GlobalResponseDefinition> = App extends HonoBase<infer E, infer _ extends Schema, infer B> ? ModSchema<ExtractSchema<App>, Def> extends infer S extends Schema ? Hono<E, S, B> : never : never;
185
+ type ModSchema<D, Def extends GlobalResponseDefinition> = { [K in keyof D]: { [M in keyof D[K]]: ModRoute<D[K][M], Def>; }; };
186
+ export type ApplyGlobalResponse<App, Def extends GlobalResponseDefinition> = App extends Hono<infer E, infer _ extends Schema, infer B> ? ModSchema<ExtractSchema<App>, Def> extends (infer S extends Schema) ? Hono$1<E, S, B> : never : never;
209
187
  type PickRoute<R, U extends StatusCode> = R extends Endpoint ? R extends {
210
- status: U;
188
+ status: U;
211
189
  } ? R : never : R;
212
- type PickSchema<D, U extends StatusCode> = {
213
- [K in keyof D]: {
214
- [M in keyof D[K]]: PickRoute<D[K][M], U>;
215
- };
216
- };
190
+ type PickSchema<D, U extends StatusCode> = { [K in keyof D]: { [M in keyof D[K]]: PickRoute<D[K][M], U>; }; };
217
191
  /**
218
192
  * Keep only specific status code responses from all routes of an app.
219
193
  * Useful when error responses are handled centrally (e.g., via custom fetch)
@@ -225,5 +199,5 @@ type PickSchema<D, U extends StatusCode> = {
225
199
  * const client = hc<AppSuccessOnly>('http://localhost')
226
200
  * ```
227
201
  */
228
- export type PickResponseByStatusCode<App, U extends StatusCode> = App extends HonoBase<infer E, infer _ extends Schema, infer B> ? PickSchema<ExtractSchema<App>, U> extends infer S extends Schema ? Hono<E, S, B> : never : never;
229
- export {};
202
+ export type PickResponseByStatusCode<App, U extends StatusCode> = App extends Hono<infer E, infer _ extends Schema, infer B> ? PickSchema<ExtractSchema<App>, U> extends (infer S extends Schema) ? Hono$1<E, S, B> : never : never;
203
+ //#endregion
@@ -1,7 +1,7 @@
1
- import type { ClientErrorStatusCode, ContentfulStatusCode, ServerErrorStatusCode } from '../utils/http-status';
2
- import { DetailedError } from './fetch-result-please';
3
- import type { ClientResponse, FilterClientResponseByStatusCode } from './types';
4
- export { DetailedError };
1
+ import { ClientErrorStatusCode, ContentfulStatusCode, ServerErrorStatusCode } from "../utils/http-status.js";
2
+ import { ClientResponse, FilterClientResponseByStatusCode } from "./types.js";
3
+ import { DetailedError } from "./fetch-result-please.js";
4
+ //#region src/client/utils.d.ts
5
5
  export declare const mergePath: (base: string, path: string) => string;
6
6
  export declare const replaceUrlParam: (urlString: string, params: Record<string, string | undefined>) => string;
7
7
  export declare const buildSearchParams: (query: Record<string, string | string[]>) => URLSearchParams;
@@ -16,3 +16,5 @@ export declare function deepMerge<T>(target: T, source: Record<string, unknown>)
16
16
  * @example const result = await parseResponse(client.posts.$get())
17
17
  */
18
18
  export declare function parseResponse<T extends ClientResponse<any>>(fetchRes: T | Promise<T>): Promise<FilterClientResponseByStatusCode<T, Exclude<ContentfulStatusCode, ClientErrorStatusCode | ServerErrorStatusCode>> extends never ? undefined : FilterClientResponseByStatusCode<T, Exclude<ContentfulStatusCode, ClientErrorStatusCode | ServerErrorStatusCode>> extends ClientResponse<infer RT, infer _, infer RF> ? RF extends 'json' ? RT : RT extends string ? RT : string : undefined>;
19
+ //#endregion
20
+ export { DetailedError };
@@ -1,5 +1,6 @@
1
- import type { Context } from './context';
2
- import type { Env, ErrorHandler, Next, NotFoundHandler } from './types';
1
+ import { Env, ErrorHandler, Next, NotFoundHandler } from "./types.js";
2
+ import { Context } from "./context.js";
3
+ //#region src/compose.d.ts
3
4
  /**
4
5
  * Compose middleware functions into a single function based on `koa-compose` package.
5
6
  *
@@ -12,3 +13,4 @@ import type { Env, ErrorHandler, Next, NotFoundHandler } from './types';
12
13
  * @returns {(context: Context, next?: Next) => Promise<Context>} - A composed middleware function.
13
14
  */
14
15
  export declare const compose: <E extends Env = Env>(middleware: [[Function, unknown], unknown][] | [[Function]][], onError?: ErrorHandler<E>, onNotFound?: NotFoundHandler<E>) => ((context: Context, next?: Next) => Promise<Context>);
16
+ //#endregion