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,35 +1,22 @@
1
- // src/adapter/cloudflare-workers/utils.ts
2
- var getContentFromKVAsset = async (path, options) => {
3
- let ASSET_MANIFEST;
4
- if (options && options.manifest) {
5
- if (typeof options.manifest === "string") {
6
- ASSET_MANIFEST = JSON.parse(options.manifest);
7
- } else {
8
- ASSET_MANIFEST = options.manifest;
9
- }
10
- } else {
11
- if (typeof __STATIC_CONTENT_MANIFEST === "string") {
12
- ASSET_MANIFEST = JSON.parse(__STATIC_CONTENT_MANIFEST);
13
- } else {
14
- ASSET_MANIFEST = __STATIC_CONTENT_MANIFEST;
15
- }
16
- }
17
- let ASSET_NAMESPACE;
18
- if (options && options.namespace) {
19
- ASSET_NAMESPACE = options.namespace;
20
- } else {
21
- ASSET_NAMESPACE = __STATIC_CONTENT;
22
- }
23
- const key = ASSET_MANIFEST[path];
24
- if (!key) {
25
- return null;
26
- }
27
- const content = await ASSET_NAMESPACE.get(key, { type: "stream" });
28
- if (!content) {
29
- return null;
30
- }
31
- return content;
32
- };
33
- export {
34
- getContentFromKVAsset
1
+ //#region src/adapter/cloudflare-workers/utils.ts
2
+ /**
3
+ * @deprecated `hono/cloudflare-workers` will be removed in v5. Install `@hono/cloudflare-workers` and import from there instead.
4
+ */
5
+ const getContentFromKVAsset = async (path, options) => {
6
+ let ASSET_MANIFEST;
7
+ if (options && options.manifest) {
8
+ if (typeof options.manifest === "string") ASSET_MANIFEST = JSON.parse(options.manifest);
9
+ else ASSET_MANIFEST = options.manifest;
10
+ } else if (typeof __STATIC_CONTENT_MANIFEST === "string") ASSET_MANIFEST = JSON.parse(__STATIC_CONTENT_MANIFEST);
11
+ else ASSET_MANIFEST = __STATIC_CONTENT_MANIFEST;
12
+ let ASSET_NAMESPACE;
13
+ if (options && options.namespace) ASSET_NAMESPACE = options.namespace;
14
+ else ASSET_NAMESPACE = __STATIC_CONTENT;
15
+ const key = ASSET_MANIFEST[path];
16
+ if (!key) return null;
17
+ const content = await ASSET_NAMESPACE.get(key, { type: "stream" });
18
+ if (!content) return null;
19
+ return content;
35
20
  };
21
+ //#endregion
22
+ export { getContentFromKVAsset };
@@ -1,41 +1,33 @@
1
- // src/adapter/cloudflare-workers/websocket.ts
2
1
  import { WSContext, defineWebSocketHelper } from "../../helper/websocket/index.js";
3
- var upgradeWebSocket = defineWebSocketHelper(async (c, events) => {
4
- const upgradeHeader = c.req.header("Upgrade");
5
- if (upgradeHeader !== "websocket") {
6
- return;
7
- }
8
- const webSocketPair = new WebSocketPair();
9
- const client = webSocketPair[0];
10
- const server = webSocketPair[1];
11
- const wsContext = new WSContext({
12
- close: (code, reason) => server.close(code, reason),
13
- get protocol() {
14
- return server.protocol;
15
- },
16
- raw: server,
17
- get readyState() {
18
- return server.readyState;
19
- },
20
- url: server.url ? new URL(server.url) : null,
21
- send: (source) => server.send(source)
22
- });
23
- if (events.onClose) {
24
- server.addEventListener("close", (evt) => events.onClose?.(evt, wsContext));
25
- }
26
- if (events.onMessage) {
27
- server.addEventListener("message", (evt) => events.onMessage?.(evt, wsContext));
28
- }
29
- if (events.onError) {
30
- server.addEventListener("error", (evt) => events.onError?.(evt, wsContext));
31
- }
32
- server.accept?.();
33
- return new Response(null, {
34
- status: 101,
35
- // @ts-expect-error - webSocket is not typed
36
- webSocket: client
37
- });
2
+ //#region src/adapter/cloudflare-workers/websocket.ts
3
+ /**
4
+ * @deprecated `hono/cloudflare-workers` will be removed in v5. Install `@hono/cloudflare-workers` and import from there instead.
5
+ */
6
+ const upgradeWebSocket = defineWebSocketHelper(async (c, events) => {
7
+ if (c.req.header("Upgrade") !== "websocket") return;
8
+ const webSocketPair = new WebSocketPair();
9
+ const client = webSocketPair[0];
10
+ const server = webSocketPair[1];
11
+ const wsContext = new WSContext({
12
+ close: (code, reason) => server.close(code, reason),
13
+ get protocol() {
14
+ return server.protocol;
15
+ },
16
+ raw: server,
17
+ get readyState() {
18
+ return server.readyState;
19
+ },
20
+ url: server.url ? new URL(server.url) : null,
21
+ send: (source) => server.send(source)
22
+ });
23
+ if (events.onClose) server.addEventListener("close", (evt) => events.onClose?.(evt, wsContext));
24
+ if (events.onMessage) server.addEventListener("message", (evt) => events.onMessage?.(evt, wsContext));
25
+ if (events.onError) server.addEventListener("error", (evt) => events.onError?.(evt, wsContext));
26
+ server.accept?.();
27
+ return new Response(null, {
28
+ status: 101,
29
+ webSocket: client
30
+ });
38
31
  });
39
- export {
40
- upgradeWebSocket
41
- };
32
+ //#endregion
33
+ export { upgradeWebSocket };
@@ -1,14 +1,17 @@
1
- // src/adapter/deno/conninfo.ts
2
- var getConnInfo = (c) => {
3
- const { remoteAddr } = c.env;
4
- return {
5
- remote: {
6
- address: remoteAddr.hostname,
7
- port: remoteAddr.port,
8
- transport: remoteAddr.transport
9
- }
10
- };
11
- };
12
- export {
13
- getConnInfo
1
+ //#region src/adapter/deno/conninfo.ts
2
+ /**
3
+ * Get conninfo with Deno
4
+ * @param c Context
5
+ * @returns ConnInfo
6
+ * @deprecated `hono/deno` will be removed in v5. Install `@hono/deno` and import from there instead.
7
+ */
8
+ const getConnInfo = (c) => {
9
+ const { remoteAddr } = c.env;
10
+ return { remote: {
11
+ address: remoteAddr.hostname,
12
+ port: remoteAddr.port,
13
+ transport: remoteAddr.transport
14
+ } };
14
15
  };
16
+ //#endregion
17
+ export { getConnInfo };
@@ -0,0 +1 @@
1
+ export {};
@@ -1,12 +1,5 @@
1
- // src/adapter/deno/index.ts
1
+ import { getConnInfo } from "./conninfo.js";
2
2
  import { serveStatic } from "./serve-static.js";
3
- import { toSSG, denoFileSystemModule } from "./ssg.js";
3
+ import { denoFileSystemModule, toSSG } from "./ssg.js";
4
4
  import { upgradeWebSocket } from "./websocket.js";
5
- import { getConnInfo } from "./conninfo.js";
6
- export {
7
- denoFileSystemModule,
8
- getConnInfo,
9
- serveStatic,
10
- toSSG,
11
- upgradeWebSocket
12
- };
5
+ export { denoFileSystemModule, getConnInfo, serveStatic, toSSG, upgradeWebSocket };
@@ -1,40 +1,35 @@
1
- // src/adapter/deno/serve-static.ts
1
+ import { serveStatic as serveStatic$1 } from "../../middleware/serve-static/index.js";
2
2
  import { join } from "node:path";
3
- import { serveStatic as baseServeStatic } from "../../middleware/serve-static/index.js";
4
- var { open, lstatSync, errors } = Deno;
5
- var serveStatic = (options = {}) => {
6
- return async function serveStatic2(c, next) {
7
- const getContent = async (path) => {
8
- try {
9
- if (isDir(path)) {
10
- return null;
11
- }
12
- const file = await open(path);
13
- return file.readable;
14
- } catch (e) {
15
- if (!(e instanceof errors.NotFound)) {
16
- console.warn(`${e}`);
17
- }
18
- return null;
19
- }
20
- };
21
- const isDir = (path) => {
22
- let isDir2;
23
- try {
24
- const stat = lstatSync(path);
25
- isDir2 = stat.isDirectory;
26
- } catch {
27
- }
28
- return isDir2;
29
- };
30
- return baseServeStatic({
31
- ...options,
32
- getContent,
33
- join,
34
- isDir
35
- })(c, next);
36
- };
37
- };
38
- export {
39
- serveStatic
3
+ //#region src/adapter/deno/serve-static.ts
4
+ const { open, lstatSync, errors } = Deno;
5
+ /**
6
+ * @deprecated `hono/deno` will be removed in v5. Install `@hono/deno` and import from there instead.
7
+ */
8
+ const serveStatic = (options = {}) => {
9
+ return async function serveStatic(c, next) {
10
+ const getContent = async (path) => {
11
+ try {
12
+ if (isDir(path)) return null;
13
+ return (await open(path)).readable;
14
+ } catch (e) {
15
+ if (!(e instanceof errors.NotFound)) console.warn(`${e}`);
16
+ return null;
17
+ }
18
+ };
19
+ const isDir = (path) => {
20
+ let isDir;
21
+ try {
22
+ isDir = lstatSync(path).isDirectory;
23
+ } catch {}
24
+ return isDir;
25
+ };
26
+ return serveStatic$1({
27
+ ...options,
28
+ getContent,
29
+ join,
30
+ isDir
31
+ })(c, next);
32
+ };
40
33
  };
34
+ //#endregion
35
+ export { serveStatic };
@@ -1,18 +1,29 @@
1
- // src/adapter/deno/ssg.ts
2
- import { toSSG as baseToSSG } from "../../helper/ssg/index.js";
3
- var denoFileSystemModule = {
4
- writeFile: async (path, data) => {
5
- const uint8Data = typeof data === "string" ? new TextEncoder().encode(data) : new Uint8Array(data);
6
- await Deno.writeFile(path, uint8Data);
7
- },
8
- mkdir: async (path, options) => {
9
- return Deno.mkdir(path, { recursive: options?.recursive ?? false });
10
- }
1
+ import { toSSG as toSSG$1 } from "../../helper/ssg/ssg.js";
2
+ import "../../helper/ssg/index.js";
3
+ //#region src/adapter/deno/ssg.ts
4
+ /**
5
+ * @experimental
6
+ * `denoFileSystemModule` is an experimental feature.
7
+ * The API might be changed.
8
+ * @deprecated `hono/deno` will be removed in v5. Install `@hono/deno` and import from there instead.
9
+ */
10
+ const denoFileSystemModule = {
11
+ writeFile: async (path, data) => {
12
+ const uint8Data = typeof data === "string" ? new TextEncoder().encode(data) : new Uint8Array(data);
13
+ await Deno.writeFile(path, uint8Data);
14
+ },
15
+ mkdir: async (path, options) => {
16
+ return Deno.mkdir(path, { recursive: options?.recursive ?? false });
17
+ }
11
18
  };
12
- var toSSG = async (app, options) => {
13
- return baseToSSG(app, denoFileSystemModule, options);
14
- };
15
- export {
16
- denoFileSystemModule,
17
- toSSG
19
+ /**
20
+ * @experimental
21
+ * `toSSG` is an experimental feature.
22
+ * The API might be changed.
23
+ * @deprecated `hono/deno` will be removed in v5. Install `@hono/deno` and import from there instead.
24
+ */
25
+ const toSSG = async (app, options) => {
26
+ return toSSG$1(app, denoFileSystemModule, options);
18
27
  };
28
+ //#endregion
29
+ export { denoFileSystemModule, toSSG };
@@ -1,32 +1,32 @@
1
- // src/adapter/deno/websocket.ts
2
1
  import { WSContext, defineWebSocketHelper } from "../../helper/websocket/index.js";
3
- var upgradeWebSocket = defineWebSocketHelper(async (c, events, options) => {
4
- if (c.req.header("upgrade") !== "websocket") {
5
- return;
6
- }
7
- const subprotocol = c.req.header("sec-websocket-protocol")?.split(",")[0]?.trim();
8
- const { response, socket } = Deno.upgradeWebSocket(c.req.raw, {
9
- ...subprotocol ? { protocol: subprotocol } : {},
10
- ...options
11
- });
12
- const wsContext = new WSContext({
13
- close: (code, reason) => socket.close(code, reason),
14
- get protocol() {
15
- return socket.protocol;
16
- },
17
- raw: socket,
18
- get readyState() {
19
- return socket.readyState;
20
- },
21
- url: socket.url ? new URL(socket.url) : null,
22
- send: (source) => socket.send(source)
23
- });
24
- socket.onopen = (evt) => events.onOpen?.(evt, wsContext);
25
- socket.onmessage = (evt) => events.onMessage?.(evt, wsContext);
26
- socket.onclose = (evt) => events.onClose?.(evt, wsContext);
27
- socket.onerror = (evt) => events.onError?.(evt, wsContext);
28
- return response;
2
+ //#region src/adapter/deno/websocket.ts
3
+ /**
4
+ * @deprecated `hono/deno` will be removed in v5. Install `@hono/deno` and import from there instead.
5
+ */
6
+ const upgradeWebSocket = defineWebSocketHelper(async (c, events, options) => {
7
+ if (c.req.header("upgrade") !== "websocket") return;
8
+ const subprotocol = c.req.header("sec-websocket-protocol")?.split(",")[0]?.trim();
9
+ const { response, socket } = Deno.upgradeWebSocket(c.req.raw, {
10
+ ...subprotocol ? { protocol: subprotocol } : {},
11
+ ...options
12
+ });
13
+ const wsContext = new WSContext({
14
+ close: (code, reason) => socket.close(code, reason),
15
+ get protocol() {
16
+ return socket.protocol;
17
+ },
18
+ raw: socket,
19
+ get readyState() {
20
+ return socket.readyState;
21
+ },
22
+ url: socket.url ? new URL(socket.url) : null,
23
+ send: (source) => socket.send(source)
24
+ });
25
+ socket.onopen = (evt) => events.onOpen?.(evt, wsContext);
26
+ socket.onmessage = (evt) => events.onMessage?.(evt, wsContext);
27
+ socket.onclose = (evt) => events.onClose?.(evt, wsContext);
28
+ socket.onerror = (evt) => events.onError?.(evt, wsContext);
29
+ return response;
29
30
  });
30
- export {
31
- upgradeWebSocket
32
- };
31
+ //#endregion
32
+ export { upgradeWebSocket };
@@ -1,9 +1,7 @@
1
- // src/adapter/lambda-edge/conninfo.ts
2
- var getConnInfo = (c) => ({
3
- remote: {
4
- address: c.env.event.Records[0].cf.request.clientIp
5
- }
6
- });
7
- export {
8
- getConnInfo
9
- };
1
+ //#region src/adapter/lambda-edge/conninfo.ts
2
+ /**
3
+ * @deprecated `hono/lambda-edge` will be removed in v5. Install `@hono/lambda-edge` and import from there instead.
4
+ */
5
+ const getConnInfo = (c) => ({ remote: { address: c.env.event.Records[0].cf.request.clientIp } });
6
+ //#endregion
7
+ export { getConnInfo };
@@ -1,110 +1,111 @@
1
- // src/adapter/lambda-edge/handler.ts
2
- import crypto from "node:crypto";
3
1
  import { decodeBase64, encodeBase64 } from "../../utils/encode.js";
2
+ import crypto from "node:crypto";
3
+ //#region src/adapter/lambda-edge/handler.ts
4
4
  globalThis.crypto ??= crypto;
5
- var convertHeaders = (headers) => {
6
- const cfHeaders = {};
7
- headers.forEach((value, key) => {
8
- cfHeaders[key.toLowerCase()] = [
9
- ...cfHeaders[key.toLowerCase()] || [],
10
- { key: key.toLowerCase(), value }
11
- ];
12
- });
13
- return cfHeaders;
14
- };
15
- var handle = (app) => {
16
- return async (event, ...args) => {
17
- const [context, callback] = args;
18
- let callbackError = null;
19
- let callbackResult;
20
- const cf = getCloudFrontRecord(event);
21
- const res = await app.fetch(createRequest(cf), {
22
- event,
23
- context,
24
- callback: (err, result) => {
25
- if (!callbackError && !callbackResult) {
26
- callbackError = err;
27
- callbackResult = result;
28
- }
29
- callback?.(err, result);
30
- },
31
- config: cf.config,
32
- request: cf.request,
33
- response: cf.response
34
- });
35
- if (callbackError) {
36
- throw callbackError;
37
- }
38
- return callbackResult ?? createResult(res);
39
- };
5
+ /**
6
+ * Accepts events from 'Lambda@Edge' event
7
+ * https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/lambda-event-structure.html
8
+ */
9
+ const convertHeaders = (headers) => {
10
+ const cfHeaders = {};
11
+ headers.forEach((value, key) => {
12
+ cfHeaders[key.toLowerCase()] = [...cfHeaders[key.toLowerCase()] || [], {
13
+ key: key.toLowerCase(),
14
+ value
15
+ }];
16
+ });
17
+ return cfHeaders;
40
18
  };
41
- var createResult = async (res) => {
42
- const contentEncoding = res.headers.get("content-encoding");
43
- const isBase64Encoded = isContentTypeBinary(res.headers.get("content-type") || "") || !!contentEncoding && !/^identity$/i.test(contentEncoding);
44
- const body = isBase64Encoded ? encodeBase64(await res.arrayBuffer()) : await res.text();
45
- return {
46
- status: res.status.toString(),
47
- headers: convertHeaders(res.headers),
48
- body,
49
- ...isBase64Encoded && { bodyEncoding: "base64" }
50
- };
19
+ /**
20
+ * @deprecated `hono/lambda-edge` will be removed in v5. Install `@hono/lambda-edge` and import from there instead.
21
+ */
22
+ const handle = (app) => {
23
+ return async (event, ...args) => {
24
+ const [context, callback] = args;
25
+ let callbackError = null;
26
+ let callbackResult;
27
+ const cf = getCloudFrontRecord(event);
28
+ const res = await app.fetch(createRequest(cf), {
29
+ event,
30
+ context,
31
+ callback: (err, result) => {
32
+ if (!callbackError && !callbackResult) {
33
+ callbackError = err;
34
+ callbackResult = result;
35
+ }
36
+ callback?.(err, result);
37
+ },
38
+ config: cf.config,
39
+ request: cf.request,
40
+ response: cf.response
41
+ });
42
+ if (callbackError) throw callbackError;
43
+ return callbackResult ?? createResult(res);
44
+ };
51
45
  };
52
- var getCloudFrontRecord = (event) => {
53
- const cf = event?.Records?.[0]?.cf;
54
- if (!cf?.request) {
55
- throw new TypeError(
56
- "Unable to map the CloudFront event to a Request: expected `Records[0].cf.request` in the Lambda@Edge event."
57
- );
58
- }
59
- return cf;
46
+ const createResult = async (res) => {
47
+ const contentEncoding = res.headers.get("content-encoding");
48
+ const isBase64Encoded = isContentTypeBinary(res.headers.get("content-type") || "") || !!contentEncoding && !/^identity$/i.test(contentEncoding);
49
+ const body = isBase64Encoded ? encodeBase64(await res.arrayBuffer()) : await res.text();
50
+ return {
51
+ status: res.status.toString(),
52
+ headers: convertHeaders(res.headers),
53
+ body,
54
+ ...isBase64Encoded && { bodyEncoding: "base64" }
55
+ };
60
56
  };
61
- var createRequest = (cf) => {
62
- const request = cf.request;
63
- const queryString = request.querystring;
64
- const host = request.headers?.host?.[0]?.value || cf.config?.distributionDomainName;
65
- const urlPath = `https://${host}${request.uri}`;
66
- const url = queryString ? `${urlPath}?${queryString}` : urlPath;
67
- const headers = new Headers();
68
- Object.entries(request.headers ?? {}).forEach(([k, v]) => {
69
- v.forEach((header) => headers.append(k, header.value));
70
- });
71
- const requestBody = request.body;
72
- const method = request.method;
73
- const rawBody = createBody(method, requestBody);
74
- let body = rawBody;
75
- if (rawBody !== void 0) {
76
- const bytes = typeof rawBody === "string" ? new TextEncoder().encode(rawBody) : rawBody;
77
- body = bytes;
78
- headers.set("content-length", bytes.length.toString());
79
- }
80
- return new Request(url, {
81
- headers,
82
- method,
83
- body
84
- });
57
+ /**
58
+ * Reads the CloudFront record out of a Lambda@Edge event.
59
+ *
60
+ * The event is supplied by the runtime, so a malformed one means the function
61
+ * was invoked with something other than a Lambda@Edge event. Fail with a
62
+ * message naming the adapter and the missing field, rather than letting an
63
+ * unattributable property access error escape.
64
+ */
65
+ const getCloudFrontRecord = (event) => {
66
+ const cf = event?.Records?.[0]?.cf;
67
+ if (!cf?.request) throw new TypeError("Unable to map the CloudFront event to a Request: expected `Records[0].cf.request` in the Lambda@Edge event.");
68
+ return cf;
85
69
  };
86
- var createBody = (method, requestBody) => {
87
- if (!requestBody || !requestBody.data) {
88
- return void 0;
89
- }
90
- if (method === "GET" || method === "HEAD") {
91
- return void 0;
92
- }
93
- if (requestBody.encoding === "base64") {
94
- return decodeBase64(requestBody.data);
95
- }
96
- return requestBody.data;
70
+ const createRequest = (cf) => {
71
+ const request = cf.request;
72
+ const queryString = request.querystring;
73
+ const urlPath = `https://${request.headers?.host?.[0]?.value || cf.config?.distributionDomainName}${request.uri}`;
74
+ const url = queryString ? `${urlPath}?${queryString}` : urlPath;
75
+ const headers = new Headers();
76
+ Object.entries(request.headers ?? {}).forEach(([k, v]) => {
77
+ v.forEach((header) => headers.append(k, header.value));
78
+ });
79
+ const requestBody = request.body;
80
+ const method = request.method;
81
+ const rawBody = createBody(method, requestBody);
82
+ let body = rawBody;
83
+ if (rawBody !== void 0) {
84
+ const bytes = typeof rawBody === "string" ? new TextEncoder().encode(rawBody) : rawBody;
85
+ body = bytes;
86
+ headers.set("content-length", bytes.length.toString());
87
+ }
88
+ return new Request(url, {
89
+ headers,
90
+ method,
91
+ body
92
+ });
97
93
  };
98
- var isContentTypeBinary = (contentType) => {
99
- if (/^application\/vnd\.(?:apple\.installer|mozilla\.xul)\+xml\s*(?:;|$)/i.test(contentType)) {
100
- return true;
101
- }
102
- return !/^text\/(?:plain|html|css|javascript|csv)|(?:\/|\+)(?:json|xml)\s*(?:;|$)/i.test(
103
- contentType
104
- );
94
+ /**
95
+ * @deprecated `hono/lambda-edge` will be removed in v5. Install `@hono/lambda-edge` and import from there instead.
96
+ */
97
+ const createBody = (method, requestBody) => {
98
+ if (!requestBody || !requestBody.data) return;
99
+ if (method === "GET" || method === "HEAD") return;
100
+ if (requestBody.encoding === "base64") return decodeBase64(requestBody.data);
101
+ return requestBody.data;
105
102
  };
106
- export {
107
- createBody,
108
- handle,
109
- isContentTypeBinary
103
+ /**
104
+ * @deprecated `hono/lambda-edge` will be removed in v5. Install `@hono/lambda-edge` and import from there instead.
105
+ */
106
+ const isContentTypeBinary = (contentType) => {
107
+ if (/^application\/vnd\.(?:apple\.installer|mozilla\.xul)\+xml\s*(?:;|$)/i.test(contentType)) return true;
108
+ return !/^text\/(?:plain|html|css|javascript|csv)|(?:\/|\+)(?:json|xml)\s*(?:;|$)/i.test(contentType);
110
109
  };
110
+ //#endregion
111
+ export { createBody, handle, isContentTypeBinary };
@@ -1,7 +1,3 @@
1
- // src/adapter/lambda-edge/index.ts
2
- import { handle } from "./handler.js";
3
1
  import { getConnInfo } from "./conninfo.js";
4
- export {
5
- getConnInfo,
6
- handle
7
- };
2
+ import { handle } from "./handler.js";
3
+ export { getConnInfo, handle };
@@ -1,9 +1,24 @@
1
- // src/adapter/netlify/conninfo.ts
2
- var getConnInfo = (c) => ({
3
- remote: {
4
- address: c.env.context?.ip
5
- }
6
- });
7
- export {
8
- getConnInfo
9
- };
1
+ //#region src/adapter/netlify/conninfo.ts
2
+ /**
3
+ * Get connection information from Netlify
4
+ * @param c - Context
5
+ * @returns Connection information including remote address
6
+ * @example
7
+ * ```ts
8
+ * import { Hono } from 'hono'
9
+ * import { handle, getConnInfo } from 'hono/netlify'
10
+ *
11
+ * const app = new Hono()
12
+ *
13
+ * app.get('/', (c) => {
14
+ * const info = getConnInfo(c)
15
+ * return c.text(`Your IP: ${info.remote.address}`)
16
+ * })
17
+ *
18
+ * export default handle(app)
19
+ * ```
20
+ * @deprecated `hono/netlify` will be removed in v5. Install `@hono/netlify` and import from there instead.
21
+ */
22
+ const getConnInfo = (c) => ({ remote: { address: c.env.context?.ip } });
23
+ //#endregion
24
+ export { getConnInfo };