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,206 +1,208 @@
1
- var __defProp = Object.defineProperty;
2
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
- var __getOwnPropNames = Object.getOwnPropertyNames;
4
- var __hasOwnProp = Object.prototype.hasOwnProperty;
5
- var __export = (target, all) => {
6
- for (var name in all)
7
- __defProp(target, name, { get: all[name], enumerable: true });
8
- };
9
- var __copyProps = (to, from, except, desc) => {
10
- if (from && typeof from === "object" || typeof from === "function") {
11
- for (let key of __getOwnPropNames(from))
12
- if (!__hasOwnProp.call(to, key) && key !== except)
13
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
- }
15
- return to;
16
- };
17
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
- var language_exports = {};
19
- __export(language_exports, {
20
- DEFAULT_OPTIONS: () => DEFAULT_OPTIONS,
21
- detectFromCookie: () => detectFromCookie,
22
- detectFromHeader: () => detectFromHeader,
23
- detectFromPath: () => detectFromPath,
24
- detectFromQuery: () => detectFromQuery,
25
- detectors: () => detectors,
26
- languageDetector: () => languageDetector,
27
- normalizeLanguage: () => normalizeLanguage,
28
- parseAcceptLanguage: () => parseAcceptLanguage,
29
- validateOptions: () => validateOptions
30
- });
31
- module.exports = __toCommonJS(language_exports);
32
- var import_cookie = require("../../helper/cookie");
33
- var import_accept = require("../../utils/accept");
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ const require_utils_accept = require("../../utils/accept.js");
3
+ const require_helper_cookie_index = require("../../helper/cookie/index.js");
4
+ //#region src/middleware/language/language.ts
34
5
  const DEFAULT_OPTIONS = {
35
- order: ["querystring", "cookie", "header"],
36
- lookupQueryString: "lang",
37
- lookupCookie: "language",
38
- lookupFromHeaderKey: "accept-language",
39
- lookupFromPathIndex: 0,
40
- caches: ["cookie"],
41
- ignoreCase: true,
42
- fallbackLanguage: "en",
43
- supportedLanguages: ["en"],
44
- cookieOptions: {
45
- sameSite: "Strict",
46
- secure: true,
47
- maxAge: 365 * 24 * 60 * 60,
48
- httpOnly: true
49
- },
50
- debug: false
6
+ order: [
7
+ "querystring",
8
+ "cookie",
9
+ "header"
10
+ ],
11
+ lookupQueryString: "lang",
12
+ lookupCookie: "language",
13
+ lookupFromHeaderKey: "accept-language",
14
+ lookupFromPathIndex: 0,
15
+ caches: ["cookie"],
16
+ ignoreCase: true,
17
+ fallbackLanguage: "en",
18
+ supportedLanguages: ["en"],
19
+ cookieOptions: {
20
+ sameSite: "Strict",
21
+ secure: true,
22
+ maxAge: 31536e3,
23
+ httpOnly: true
24
+ },
25
+ debug: false
51
26
  };
27
+ /**
28
+ * Parse Accept-Language header values with quality scores
29
+ * @param header Accept-Language header string
30
+ * @returns Array of parsed languages with quality scores
31
+ */
52
32
  function parseAcceptLanguage(header) {
53
- return (0, import_accept.parseAccept)(header).map(({ type, q }) => ({ lang: type, q }));
33
+ return require_utils_accept.parseAccept(header).map(({ type, q }) => ({
34
+ lang: type,
35
+ q
36
+ }));
54
37
  }
38
+ /**
39
+ * Validate and normalize language codes
40
+ * @param lang Language code to normalize
41
+ * @param options Detector options
42
+ * @returns Normalized language code or undefined
43
+ */
55
44
  const normalizeLanguage = (lang, options) => {
56
- if (!lang) {
57
- return void 0;
58
- }
59
- try {
60
- let normalizedLang = lang.trim();
61
- if (options.convertDetectedLanguage) {
62
- normalizedLang = options.convertDetectedLanguage(normalizedLang);
63
- }
64
- const compLang = options.ignoreCase ? normalizedLang.toLowerCase() : normalizedLang;
65
- const compSupported = options.supportedLanguages.map(
66
- (l) => options.ignoreCase ? l.toLowerCase() : l
67
- );
68
- const exactIndex = compSupported.indexOf(compLang);
69
- if (exactIndex !== -1) {
70
- return options.supportedLanguages[exactIndex];
71
- }
72
- let longestMatchIndex = -1;
73
- let longestMatchLength = -1;
74
- for (let i = 0; i < compSupported.length; i++) {
75
- const candidate = compSupported[i];
76
- if (candidate.length < compLang.length && candidate.length > longestMatchLength && compLang.startsWith(candidate) && compLang[candidate.length] === "-") {
77
- longestMatchIndex = i;
78
- longestMatchLength = candidate.length;
79
- }
80
- }
81
- if (longestMatchIndex !== -1) {
82
- return options.supportedLanguages[longestMatchIndex];
83
- }
84
- return void 0;
85
- } catch {
86
- return void 0;
87
- }
45
+ if (!lang) return;
46
+ try {
47
+ let normalizedLang = lang.trim();
48
+ if (options.convertDetectedLanguage) normalizedLang = options.convertDetectedLanguage(normalizedLang);
49
+ const compLang = options.ignoreCase ? normalizedLang.toLowerCase() : normalizedLang;
50
+ const compSupported = options.supportedLanguages.map((l) => options.ignoreCase ? l.toLowerCase() : l);
51
+ const exactIndex = compSupported.indexOf(compLang);
52
+ if (exactIndex !== -1) return options.supportedLanguages[exactIndex];
53
+ let longestMatchIndex = -1;
54
+ let longestMatchLength = -1;
55
+ for (let i = 0; i < compSupported.length; i++) {
56
+ const candidate = compSupported[i];
57
+ if (candidate.length < compLang.length && candidate.length > longestMatchLength && compLang.startsWith(candidate) && compLang[candidate.length] === "-") {
58
+ longestMatchIndex = i;
59
+ longestMatchLength = candidate.length;
60
+ }
61
+ }
62
+ if (longestMatchIndex !== -1) return options.supportedLanguages[longestMatchIndex];
63
+ return;
64
+ } catch {
65
+ return;
66
+ }
88
67
  };
68
+ /**
69
+ * Detects language from query parameter
70
+ */
89
71
  const detectFromQuery = (c, options) => {
90
- const query = c.req.query(options.lookupQueryString);
91
- return normalizeLanguage(query, options);
72
+ const query = c.req.query(options.lookupQueryString);
73
+ return normalizeLanguage(query, options);
92
74
  };
75
+ /**
76
+ * Detects language from cookie
77
+ */
93
78
  const detectFromCookie = (c, options) => {
94
- const cookie = (0, import_cookie.getCookie)(c, options.lookupCookie);
95
- return normalizeLanguage(cookie, options);
79
+ const cookie = require_helper_cookie_index.getCookie(c, options.lookupCookie);
80
+ return normalizeLanguage(cookie, options);
96
81
  };
82
+ /**
83
+ * Detects language from Accept-Language header
84
+ */
97
85
  function detectFromHeader(c, options) {
98
- try {
99
- const acceptLanguage = c.req.header(options.lookupFromHeaderKey);
100
- if (!acceptLanguage) {
101
- return void 0;
102
- }
103
- const languages = parseAcceptLanguage(acceptLanguage);
104
- for (const { lang, q } of languages) {
105
- if (q === 0) {
106
- continue;
107
- }
108
- const normalizedLang = normalizeLanguage(lang, options);
109
- if (normalizedLang) {
110
- return normalizedLang;
111
- }
112
- }
113
- return void 0;
114
- } catch {
115
- return void 0;
116
- }
86
+ try {
87
+ const acceptLanguage = c.req.header(options.lookupFromHeaderKey);
88
+ if (!acceptLanguage) return;
89
+ const languages = parseAcceptLanguage(acceptLanguage);
90
+ for (const { lang, q } of languages) {
91
+ if (q === 0) continue;
92
+ const normalizedLang = normalizeLanguage(lang, options);
93
+ if (normalizedLang) return normalizedLang;
94
+ }
95
+ return;
96
+ } catch {
97
+ return;
98
+ }
117
99
  }
100
+ /**
101
+ * Detects language from URL path
102
+ */
118
103
  function detectFromPath(c, options) {
119
- const url = new URL(c.req.url);
120
- const pathSegments = url.pathname.split("/").filter(Boolean);
121
- const langSegment = pathSegments[options.lookupFromPathIndex];
122
- return normalizeLanguage(langSegment, options);
104
+ const langSegment = new URL(c.req.url).pathname.split("/").filter(Boolean)[options.lookupFromPathIndex];
105
+ return normalizeLanguage(langSegment, options);
123
106
  }
107
+ /**
108
+ * Collection of all language detection strategies
109
+ */
124
110
  const detectors = {
125
- querystring: detectFromQuery,
126
- cookie: detectFromCookie,
127
- header: detectFromHeader,
128
- path: detectFromPath
111
+ querystring: detectFromQuery,
112
+ cookie: detectFromCookie,
113
+ header: detectFromHeader,
114
+ path: detectFromPath
129
115
  };
116
+ /**
117
+ * Validate detector options
118
+ * @param options Detector options to validate
119
+ * @throws Error if options are invalid
120
+ */
130
121
  function validateOptions(options) {
131
- if (!options.supportedLanguages.includes(options.fallbackLanguage)) {
132
- throw new Error("Fallback language must be included in supported languages");
133
- }
134
- if (options.lookupFromPathIndex < 0) {
135
- throw new Error("Path index must be non-negative");
136
- }
137
- if (!options.order.every((detector) => Object.keys(detectors).includes(detector))) {
138
- throw new Error("Invalid detector type in order array");
139
- }
122
+ if (!options.supportedLanguages.includes(options.fallbackLanguage)) throw new Error("Fallback language must be included in supported languages");
123
+ if (options.lookupFromPathIndex < 0) throw new Error("Path index must be non-negative");
124
+ if (!options.order.every((detector) => Object.keys(detectors).includes(detector))) throw new Error("Invalid detector type in order array");
140
125
  }
126
+ /**
127
+ * Cache detected language
128
+ */
141
129
  function cacheLanguage(c, language, options) {
142
- if (!Array.isArray(options.caches) || !options.caches.includes("cookie")) {
143
- return;
144
- }
145
- try {
146
- (0, import_cookie.setCookie)(c, options.lookupCookie, language, options.cookieOptions);
147
- } catch (error) {
148
- if (options.debug) {
149
- console.error("Failed to cache language:", error);
150
- }
151
- }
130
+ if (!Array.isArray(options.caches) || !options.caches.includes("cookie")) return;
131
+ try {
132
+ require_helper_cookie_index.setCookie(c, options.lookupCookie, language, options.cookieOptions);
133
+ } catch (error) {
134
+ if (options.debug) console.error("Failed to cache language:", error);
135
+ }
152
136
  }
137
+ /**
138
+ * Detect language from request
139
+ */
153
140
  const detectLanguage = (c, options) => {
154
- let detectedLang;
155
- for (const detectorName of options.order) {
156
- const detector = detectors[detectorName];
157
- try {
158
- detectedLang = detector(c, options);
159
- if (detectedLang) {
160
- if (options.debug) {
161
- console.log(`Language detected from ${detectorName}: ${detectedLang}`);
162
- }
163
- break;
164
- }
165
- } catch (error) {
166
- if (options.debug) {
167
- console.error(`Error in ${detectorName} detector:`, error);
168
- }
169
- continue;
170
- }
171
- }
172
- const finalLang = detectedLang || options.fallbackLanguage;
173
- if (detectedLang && options.caches) {
174
- cacheLanguage(c, finalLang, options);
175
- }
176
- return finalLang;
141
+ let detectedLang;
142
+ for (const detectorName of options.order) {
143
+ const detector = detectors[detectorName];
144
+ try {
145
+ detectedLang = detector(c, options);
146
+ if (detectedLang) {
147
+ if (options.debug) console.log(`Language detected from ${detectorName}: ${detectedLang}`);
148
+ break;
149
+ }
150
+ } catch (error) {
151
+ if (options.debug) console.error(`Error in ${detectorName} detector:`, error);
152
+ continue;
153
+ }
154
+ }
155
+ const finalLang = detectedLang || options.fallbackLanguage;
156
+ if (detectedLang && options.caches) cacheLanguage(c, finalLang, options);
157
+ return finalLang;
177
158
  };
159
+ /**
160
+ * Language detector middleware factory
161
+ * @param userOptions Configuration options for the language detector
162
+ * @returns Hono middleware function
163
+ *
164
+ * @example
165
+ * ```ts
166
+ * type Variables = LanguageVariables
167
+ * const app = new Hono<{ Variables: Variables }>()
168
+ *
169
+ * app.use(
170
+ * languageDetector({
171
+ * supportedLanguages: ['en', 'ja'], // Must include fallback
172
+ * fallbackLanguage: 'en', // Required
173
+ * })
174
+ * )
175
+ *
176
+ * app.get('/', (c) => {
177
+ * const lang = c.get('language')
178
+ * return c.text(`Current language: ${lang}`)
179
+ * })
180
+ * ```
181
+ */
178
182
  const languageDetector = (userOptions) => {
179
- const options = {
180
- ...DEFAULT_OPTIONS,
181
- ...userOptions,
182
- cookieOptions: {
183
- ...DEFAULT_OPTIONS.cookieOptions,
184
- ...userOptions.cookieOptions
185
- }
186
- };
187
- validateOptions(options);
188
- return async function languageDetector2(ctx, next) {
189
- const lang = detectLanguage(ctx, options);
190
- ctx.set("language", lang);
191
- await next();
192
- };
183
+ const options = {
184
+ ...DEFAULT_OPTIONS,
185
+ ...userOptions,
186
+ cookieOptions: {
187
+ ...DEFAULT_OPTIONS.cookieOptions,
188
+ ...userOptions.cookieOptions
189
+ }
190
+ };
191
+ validateOptions(options);
192
+ return async function languageDetector(ctx, next) {
193
+ const lang = detectLanguage(ctx, options);
194
+ ctx.set("language", lang);
195
+ await next();
196
+ };
193
197
  };
194
- // Annotate the CommonJS export names for ESM import in node:
195
- 0 && (module.exports = {
196
- DEFAULT_OPTIONS,
197
- detectFromCookie,
198
- detectFromHeader,
199
- detectFromPath,
200
- detectFromQuery,
201
- detectors,
202
- languageDetector,
203
- normalizeLanguage,
204
- parseAcceptLanguage,
205
- validateOptions
206
- });
198
+ //#endregion
199
+ exports.DEFAULT_OPTIONS = DEFAULT_OPTIONS;
200
+ exports.detectFromCookie = detectFromCookie;
201
+ exports.detectFromHeader = detectFromHeader;
202
+ exports.detectFromPath = detectFromPath;
203
+ exports.detectFromQuery = detectFromQuery;
204
+ exports.detectors = detectors;
205
+ exports.languageDetector = languageDetector;
206
+ exports.normalizeLanguage = normalizeLanguage;
207
+ exports.parseAcceptLanguage = parseAcceptLanguage;
208
+ exports.validateOptions = validateOptions;
@@ -1,72 +1,51 @@
1
- var __defProp = Object.defineProperty;
2
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
- var __getOwnPropNames = Object.getOwnPropertyNames;
4
- var __hasOwnProp = Object.prototype.hasOwnProperty;
5
- var __export = (target, all) => {
6
- for (var name in all)
7
- __defProp(target, name, { get: all[name], enumerable: true });
8
- };
9
- var __copyProps = (to, from, except, desc) => {
10
- if (from && typeof from === "object" || typeof from === "function") {
11
- for (let key of __getOwnPropNames(from))
12
- if (!__hasOwnProp.call(to, key) && key !== except)
13
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
- }
15
- return to;
16
- };
17
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
- var logger_exports = {};
19
- __export(logger_exports, {
20
- logger: () => logger
21
- });
22
- module.exports = __toCommonJS(logger_exports);
23
- var import_color = require("../../utils/color");
24
- var LogPrefix = /* @__PURE__ */ ((LogPrefix2) => {
25
- LogPrefix2["Outgoing"] = "-->";
26
- LogPrefix2["Incoming"] = "<--";
27
- LogPrefix2["Error"] = "xxx";
28
- return LogPrefix2;
29
- })(LogPrefix || {});
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ const require_utils_color = require("../../utils/color.js");
3
+ //#region src/middleware/logger/index.ts
30
4
  const humanize = (times) => {
31
- const [delimiter, separator] = [",", "."];
32
- const orderTimes = times.map((v) => v.replace(/(\d)(?=(\d\d\d)+(?!\d))/g, "$1" + delimiter));
33
- return orderTimes.join(separator);
5
+ const [delimiter, separator] = [",", "."];
6
+ return times.map((v) => v.replace(/(\d)(?=(\d\d\d)+(?!\d))/g, "$1" + delimiter)).join(separator);
34
7
  };
35
8
  const time = (start) => {
36
- const delta = Date.now() - start;
37
- return humanize([delta < 1e3 ? delta + "ms" : Math.round(delta / 1e3) + "s"]);
9
+ const delta = Date.now() - start;
10
+ return humanize([delta < 1e3 ? delta + "ms" : Math.round(delta / 1e3) + "s"]);
38
11
  };
39
12
  const colorStatus = async (status) => {
40
- const colorEnabled = await (0, import_color.getColorEnabledAsync)();
41
- if (colorEnabled) {
42
- switch (status / 100 | 0) {
43
- case 5:
44
- return `\x1B[31m${status}\x1B[0m`;
45
- case 4:
46
- return `\x1B[33m${status}\x1B[0m`;
47
- case 3:
48
- return `\x1B[36m${status}\x1B[0m`;
49
- case 2:
50
- return `\x1B[32m${status}\x1B[0m`;
51
- }
52
- }
53
- return `${status}`;
13
+ if (await require_utils_color.getColorEnabledAsync()) switch (status / 100 | 0) {
14
+ case 5: return `\x1b[31m${status}\x1b[0m`;
15
+ case 4: return `\x1b[33m${status}\x1b[0m`;
16
+ case 3: return `\x1b[36m${status}\x1b[0m`;
17
+ case 2: return `\x1b[32m${status}\x1b[0m`;
18
+ }
19
+ return `${status}`;
54
20
  };
55
21
  async function log(fn, prefix, method, path, status = 0, elapsed) {
56
- const out = prefix === "<--" /* Incoming */ ? `${prefix} ${method} ${path}` : `${prefix} ${method} ${path} ${await colorStatus(status)} ${elapsed}`;
57
- fn(out);
22
+ fn(prefix === "<--" ? `${prefix} ${method} ${path}` : `${prefix} ${method} ${path} ${await colorStatus(status)} ${elapsed}`);
58
23
  }
24
+ /**
25
+ * Logger Middleware for Hono.
26
+ *
27
+ * @see {@link https://hono.dev/docs/middleware/builtin/logger}
28
+ *
29
+ * @param {PrintFunc} [fn=console.log] - Optional function for customized logging behavior.
30
+ * @returns {MiddlewareHandler} The middleware handler function.
31
+ *
32
+ * @example
33
+ * ```ts
34
+ * const app = new Hono()
35
+ *
36
+ * app.use(logger())
37
+ * app.get('/', (c) => c.text('Hello Hono!'))
38
+ * ```
39
+ */
59
40
  const logger = (fn = console.log) => {
60
- return async function logger2(c, next) {
61
- const { method, url } = c.req;
62
- const path = url.slice(url.indexOf("/", 8));
63
- await log(fn, "<--" /* Incoming */, method, path);
64
- const start = Date.now();
65
- await next();
66
- await log(fn, "-->" /* Outgoing */, method, path, c.res.status, time(start));
67
- };
41
+ return async function logger(c, next) {
42
+ const { method, url } = c.req;
43
+ const path = url.slice(url.indexOf("/", 8));
44
+ await log(fn, "<--", method, path);
45
+ const start = Date.now();
46
+ await next();
47
+ await log(fn, "-->", method, path, c.res.status, time(start));
48
+ };
68
49
  };
69
- // Annotate the CommonJS export names for ESM import in node:
70
- 0 && (module.exports = {
71
- logger
72
- });
50
+ //#endregion
51
+ exports.logger = logger;