hono 4.13.13 → 5.0.0-rc.0

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 (444) hide show
  1. package/README.md +2 -2
  2. package/dist/{types/compose.d.ts → compose.d.ts} +1 -0
  3. package/dist/compose.js +10 -5
  4. package/dist/{types/context.d.ts → context.d.ts} +15 -15
  5. package/dist/context.js +79 -47
  6. package/dist/helper/factory/define-handler.d.ts +150 -0
  7. package/dist/helper/factory/define-handler.js +165 -0
  8. package/dist/{types/helper → helper}/factory/index.d.ts +30 -1
  9. package/dist/helper/factory/index.js +31 -3
  10. package/dist/{types/helper → helper}/ssg/middleware.d.ts +0 -6
  11. package/dist/helper/ssg/middleware.js +1 -16
  12. package/dist/{types/helper → helper}/ssg/ssg.d.ts +0 -12
  13. package/dist/helper/ssg/ssg.js +0 -3
  14. package/dist/{types/hono-base.d.ts → hono-base.d.ts} +3 -60
  15. package/dist/hono-base.js +6 -97
  16. package/dist/{types/hono.d.ts → hono.d.ts} +1 -1
  17. package/dist/{types/middleware → middleware}/basic-auth/index.d.ts +4 -3
  18. package/dist/middleware/basic-auth/index.js +1 -1
  19. package/dist/{types/middleware → middleware}/bearer-auth/index.d.ts +4 -27
  20. package/dist/middleware/bearer-auth/index.js +4 -4
  21. package/dist/middleware/language/language.js +1 -1
  22. package/dist/middleware/logger/index.js +6 -8
  23. package/dist/{types/middleware → middleware}/serve-static/index.d.ts +0 -4
  24. package/dist/{types/preset → preset}/quick.d.ts +1 -1
  25. package/dist/{types/preset → preset}/tiny.d.ts +1 -1
  26. package/dist/{types/request.d.ts → request.d.ts} +3 -48
  27. package/dist/request.js +0 -49
  28. package/dist/router/linear-router/router.js +4 -6
  29. package/dist/router/pattern-router/router.js +2 -2
  30. package/dist/router/reg-exp-router/node.js +1 -1
  31. package/dist/router/trie-router/node.js +3 -3
  32. package/dist/utils/buffer.d.ts +11 -0
  33. package/dist/utils/buffer.js +1 -8
  34. package/dist/utils/color.d.ts +16 -0
  35. package/dist/utils/color.js +7 -23
  36. package/dist/{types/utils → utils}/http-status.d.ts +1 -9
  37. package/dist/{types/utils → utils}/url.d.ts +0 -5
  38. package/dist/utils/url.js +1 -11
  39. package/dist/{types/validator → validator}/validator.d.ts +5 -0
  40. package/dist/validator/validator.js +46 -49
  41. package/package.json +209 -350
  42. package/dist/adapter/aws-lambda/conninfo.js +0 -43
  43. package/dist/adapter/aws-lambda/handler.js +0 -342
  44. package/dist/adapter/aws-lambda/index.js +0 -3
  45. package/dist/adapter/aws-lambda/types.js +0 -1
  46. package/dist/adapter/bun/conninfo.js +0 -22
  47. package/dist/adapter/bun/index.js +0 -6
  48. package/dist/adapter/bun/serve-static.js +0 -30
  49. package/dist/adapter/bun/server.js +0 -11
  50. package/dist/adapter/bun/ssg.js +0 -27
  51. package/dist/adapter/bun/websocket.js +0 -66
  52. package/dist/adapter/cloudflare-pages/conninfo.js +0 -24
  53. package/dist/adapter/cloudflare-pages/handler.js +0 -64
  54. package/dist/adapter/cloudflare-pages/index.js +0 -3
  55. package/dist/adapter/cloudflare-workers/conninfo.js +0 -7
  56. package/dist/adapter/cloudflare-workers/index.js +0 -4
  57. package/dist/adapter/cloudflare-workers/serve-static-module.js +0 -7
  58. package/dist/adapter/cloudflare-workers/serve-static.js +0 -28
  59. package/dist/adapter/cloudflare-workers/utils.js +0 -22
  60. package/dist/adapter/cloudflare-workers/websocket.js +0 -33
  61. package/dist/adapter/deno/conninfo.js +0 -17
  62. package/dist/adapter/deno/deno.d.js +0 -1
  63. package/dist/adapter/deno/index.js +0 -5
  64. package/dist/adapter/deno/serve-static.js +0 -35
  65. package/dist/adapter/deno/ssg.js +0 -29
  66. package/dist/adapter/deno/websocket.js +0 -32
  67. package/dist/adapter/lambda-edge/conninfo.js +0 -7
  68. package/dist/adapter/lambda-edge/handler.js +0 -111
  69. package/dist/adapter/lambda-edge/index.js +0 -3
  70. package/dist/adapter/netlify/conninfo.js +0 -24
  71. package/dist/adapter/netlify/handler.js +0 -11
  72. package/dist/adapter/netlify/index.js +0 -3
  73. package/dist/adapter/netlify/mod.js +0 -3
  74. package/dist/adapter/service-worker/handler.js +0 -16
  75. package/dist/adapter/service-worker/index.js +0 -25
  76. package/dist/adapter/service-worker/types.js +0 -1
  77. package/dist/adapter/vercel/conninfo.js +0 -7
  78. package/dist/adapter/vercel/handler.js +0 -9
  79. package/dist/adapter/vercel/index.js +0 -3
  80. package/dist/cjs/_virtual/_rolldown/runtime.js +0 -33
  81. package/dist/cjs/adapter/aws-lambda/conninfo.js +0 -44
  82. package/dist/cjs/adapter/aws-lambda/handler.js +0 -352
  83. package/dist/cjs/adapter/aws-lambda/index.js +0 -7
  84. package/dist/cjs/adapter/aws-lambda/types.js +0 -0
  85. package/dist/cjs/adapter/bun/conninfo.js +0 -23
  86. package/dist/cjs/adapter/bun/index.js +0 -14
  87. package/dist/cjs/adapter/bun/serve-static.js +0 -31
  88. package/dist/cjs/adapter/bun/server.js +0 -12
  89. package/dist/cjs/adapter/bun/ssg.js +0 -29
  90. package/dist/cjs/adapter/bun/websocket.js +0 -70
  91. package/dist/cjs/adapter/cloudflare-pages/conninfo.js +0 -25
  92. package/dist/cjs/adapter/cloudflare-pages/handler.js +0 -67
  93. package/dist/cjs/adapter/cloudflare-pages/index.js +0 -7
  94. package/dist/cjs/adapter/cloudflare-workers/conninfo.js +0 -8
  95. package/dist/cjs/adapter/cloudflare-workers/index.js +0 -7
  96. package/dist/cjs/adapter/cloudflare-workers/serve-static-module.js +0 -8
  97. package/dist/cjs/adapter/cloudflare-workers/serve-static.js +0 -29
  98. package/dist/cjs/adapter/cloudflare-workers/utils.js +0 -23
  99. package/dist/cjs/adapter/cloudflare-workers/websocket.js +0 -34
  100. package/dist/cjs/adapter/deno/conninfo.js +0 -18
  101. package/dist/cjs/adapter/deno/deno.d.js +0 -0
  102. package/dist/cjs/adapter/deno/index.js +0 -10
  103. package/dist/cjs/adapter/deno/serve-static.js +0 -36
  104. package/dist/cjs/adapter/deno/ssg.js +0 -31
  105. package/dist/cjs/adapter/deno/websocket.js +0 -33
  106. package/dist/cjs/adapter/lambda-edge/conninfo.js +0 -8
  107. package/dist/cjs/adapter/lambda-edge/handler.js +0 -116
  108. package/dist/cjs/adapter/lambda-edge/index.js +0 -5
  109. package/dist/cjs/adapter/netlify/conninfo.js +0 -25
  110. package/dist/cjs/adapter/netlify/handler.js +0 -12
  111. package/dist/cjs/adapter/netlify/index.js +0 -5
  112. package/dist/cjs/adapter/netlify/mod.js +0 -5
  113. package/dist/cjs/adapter/service-worker/handler.js +0 -17
  114. package/dist/cjs/adapter/service-worker/index.js +0 -27
  115. package/dist/cjs/adapter/service-worker/types.js +0 -0
  116. package/dist/cjs/adapter/vercel/conninfo.js +0 -8
  117. package/dist/cjs/adapter/vercel/handler.js +0 -10
  118. package/dist/cjs/adapter/vercel/index.js +0 -5
  119. package/dist/cjs/client/client.js +0 -145
  120. package/dist/cjs/client/fetch-result-please.js +0 -67
  121. package/dist/cjs/client/index.js +0 -7
  122. package/dist/cjs/client/types.js +0 -0
  123. package/dist/cjs/client/utils.js +0 -70
  124. package/dist/cjs/compose.js +0 -51
  125. package/dist/cjs/context.js +0 -383
  126. package/dist/cjs/helper/accepts/accepts.js +0 -54
  127. package/dist/cjs/helper/accepts/index.js +0 -3
  128. package/dist/cjs/helper/adapter/index.js +0 -41
  129. package/dist/cjs/helper/conninfo/index.js +0 -0
  130. package/dist/cjs/helper/conninfo/types.js +0 -0
  131. package/dist/cjs/helper/cookie/index.js +0 -89
  132. package/dist/cjs/helper/css/common.js +0 -194
  133. package/dist/cjs/helper/css/index.js +0 -142
  134. package/dist/cjs/helper/dev/index.js +0 -53
  135. package/dist/cjs/helper/factory/index.js +0 -33
  136. package/dist/cjs/helper/html/index.js +0 -34
  137. package/dist/cjs/helper/proxy/index.js +0 -122
  138. package/dist/cjs/helper/route/index.js +0 -128
  139. package/dist/cjs/helper/ssg/index.js +0 -19
  140. package/dist/cjs/helper/ssg/middleware.js +0 -65
  141. package/dist/cjs/helper/ssg/plugins.js +0 -68
  142. package/dist/cjs/helper/ssg/ssg.js +0 -220
  143. package/dist/cjs/helper/ssg/utils.js +0 -70
  144. package/dist/cjs/helper/streaming/index.js +0 -8
  145. package/dist/cjs/helper/streaming/sse.js +0 -59
  146. package/dist/cjs/helper/streaming/stream.js +0 -26
  147. package/dist/cjs/helper/streaming/text.js +0 -12
  148. package/dist/cjs/helper/streaming/utils.js +0 -16
  149. package/dist/cjs/helper/testing/index.js +0 -18
  150. package/dist/cjs/helper/websocket/index.js +0 -56
  151. package/dist/cjs/hono-base.js +0 -351
  152. package/dist/cjs/hono.js +0 -29
  153. package/dist/cjs/http-exception.js +0 -56
  154. package/dist/cjs/index.js +0 -22
  155. package/dist/cjs/jsx/base.js +0 -266
  156. package/dist/cjs/jsx/children.js +0 -19
  157. package/dist/cjs/jsx/components.js +0 -147
  158. package/dist/cjs/jsx/constants.js +0 -15
  159. package/dist/cjs/jsx/context.js +0 -170
  160. package/dist/cjs/jsx/dom/client.js +0 -56
  161. package/dist/cjs/jsx/dom/components.js +0 -26
  162. package/dist/cjs/jsx/dom/context.js +0 -43
  163. package/dist/cjs/jsx/dom/css.js +0 -153
  164. package/dist/cjs/jsx/dom/hooks/index.js +0 -65
  165. package/dist/cjs/jsx/dom/index.js +0 -122
  166. package/dist/cjs/jsx/dom/intrinsic-element/components.js +0 -306
  167. package/dist/cjs/jsx/dom/jsx-dev-runtime.js +0 -17
  168. package/dist/cjs/jsx/dom/jsx-runtime.js +0 -5
  169. package/dist/cjs/jsx/dom/render.js +0 -525
  170. package/dist/cjs/jsx/dom/server.js +0 -44
  171. package/dist/cjs/jsx/dom/utils.js +0 -9
  172. package/dist/cjs/jsx/hooks/index.js +0 -280
  173. package/dist/cjs/jsx/index.js +0 -89
  174. package/dist/cjs/jsx/intrinsic-element/common.js +0 -27
  175. package/dist/cjs/jsx/intrinsic-element/components.js +0 -138
  176. package/dist/cjs/jsx/intrinsic-elements.js +0 -0
  177. package/dist/cjs/jsx/jsx-dev-runtime.js +0 -16
  178. package/dist/cjs/jsx/jsx-runtime.js +0 -37
  179. package/dist/cjs/jsx/streaming.js +0 -135
  180. package/dist/cjs/jsx/types.js +0 -0
  181. package/dist/cjs/jsx/utils.js +0 -116
  182. package/dist/cjs/middleware/basic-auth/index.js +0 -100
  183. package/dist/cjs/middleware/bearer-auth/index.js +0 -97
  184. package/dist/cjs/middleware/body-limit/index.js +0 -69
  185. package/dist/cjs/middleware/cache/index.js +0 -173
  186. package/dist/cjs/middleware/combine/index.js +0 -141
  187. package/dist/cjs/middleware/compress/index.js +0 -82
  188. package/dist/cjs/middleware/context-storage/index.js +0 -55
  189. package/dist/cjs/middleware/cors/index.js +0 -109
  190. package/dist/cjs/middleware/csrf/index.js +0 -106
  191. package/dist/cjs/middleware/etag/digest.js +0 -62
  192. package/dist/cjs/middleware/etag/index.js +0 -79
  193. package/dist/cjs/middleware/ip-restriction/index.js +0 -168
  194. package/dist/cjs/middleware/jsx-renderer/index.js +0 -104
  195. package/dist/cjs/middleware/jwk/index.js +0 -3
  196. package/dist/cjs/middleware/jwk/jwk.js +0 -122
  197. package/dist/cjs/middleware/jwt/index.js +0 -9
  198. package/dist/cjs/middleware/jwt/jwt.js +0 -124
  199. package/dist/cjs/middleware/language/index.js +0 -7
  200. package/dist/cjs/middleware/language/language.js +0 -208
  201. package/dist/cjs/middleware/logger/index.js +0 -51
  202. package/dist/cjs/middleware/method-not-allowed/index.js +0 -84
  203. package/dist/cjs/middleware/method-override/index.js +0 -105
  204. package/dist/cjs/middleware/mount/index.js +0 -71
  205. package/dist/cjs/middleware/powered-by/index.js +0 -25
  206. package/dist/cjs/middleware/pretty-json/index.js +0 -41
  207. package/dist/cjs/middleware/request-id/index.js +0 -3
  208. package/dist/cjs/middleware/request-id/request-id.js +0 -35
  209. package/dist/cjs/middleware/secure-headers/index.js +0 -4
  210. package/dist/cjs/middleware/secure-headers/permissions-policy.js +0 -0
  211. package/dist/cjs/middleware/secure-headers/secure-headers.js +0 -166
  212. package/dist/cjs/middleware/serve-static/index.js +0 -62
  213. package/dist/cjs/middleware/serve-static/path.js +0 -17
  214. package/dist/cjs/middleware/timeout/index.js +0 -42
  215. package/dist/cjs/middleware/timing/index.js +0 -7
  216. package/dist/cjs/middleware/timing/timing.js +0 -189
  217. package/dist/cjs/middleware/trailing-slash/index.js +0 -89
  218. package/dist/cjs/package.json +0 -3
  219. package/dist/cjs/preset/quick.js +0 -19
  220. package/dist/cjs/preset/tiny.js +0 -16
  221. package/dist/cjs/request/constants.js +0 -5
  222. package/dist/cjs/request.js +0 -337
  223. package/dist/cjs/router/linear-router/index.js +0 -3
  224. package/dist/cjs/router/linear-router/router.js +0 -97
  225. package/dist/cjs/router/pattern-router/index.js +0 -3
  226. package/dist/cjs/router/pattern-router/router.js +0 -42
  227. package/dist/cjs/router/reg-exp-router/index.js +0 -7
  228. package/dist/cjs/router/reg-exp-router/matcher.js +0 -21
  229. package/dist/cjs/router/reg-exp-router/node.js +0 -96
  230. package/dist/cjs/router/reg-exp-router/prepared-router.js +0 -97
  231. package/dist/cjs/router/reg-exp-router/router.js +0 -102
  232. package/dist/cjs/router/reg-exp-router/trie.js +0 -74
  233. package/dist/cjs/router/smart-router/index.js +0 -3
  234. package/dist/cjs/router/smart-router/router.js +0 -50
  235. package/dist/cjs/router/trie-router/index.js +0 -3
  236. package/dist/cjs/router/trie-router/node.js +0 -135
  237. package/dist/cjs/router/trie-router/router.js +0 -16
  238. package/dist/cjs/router/utils.js +0 -5
  239. package/dist/cjs/router.js +0 -40
  240. package/dist/cjs/types.js +0 -5
  241. package/dist/cjs/utils/accept.js +0 -194
  242. package/dist/cjs/utils/basic-auth.js +0 -21
  243. package/dist/cjs/utils/body.js +0 -97
  244. package/dist/cjs/utils/buffer.js +0 -55
  245. package/dist/cjs/utils/color.js +0 -39
  246. package/dist/cjs/utils/compress.js +0 -12
  247. package/dist/cjs/utils/concurrent.js +0 -31
  248. package/dist/cjs/utils/constants.js +0 -8
  249. package/dist/cjs/utils/cookie.js +0 -129
  250. package/dist/cjs/utils/crypto.js +0 -38
  251. package/dist/cjs/utils/encode.js +0 -37
  252. package/dist/cjs/utils/filepath.js +0 -27
  253. package/dist/cjs/utils/handler.js +0 -14
  254. package/dist/cjs/utils/headers.js +0 -0
  255. package/dist/cjs/utils/html.js +0 -109
  256. package/dist/cjs/utils/http-status.js +0 -0
  257. package/dist/cjs/utils/ipaddr.js +0 -247
  258. package/dist/cjs/utils/jwt/index.js +0 -15
  259. package/dist/cjs/utils/jwt/jwa.js +0 -25
  260. package/dist/cjs/utils/jwt/jws.js +0 -135
  261. package/dist/cjs/utils/jwt/jwt.js +0 -136
  262. package/dist/cjs/utils/jwt/types.js +0 -124
  263. package/dist/cjs/utils/jwt/utf8.js +0 -11
  264. package/dist/cjs/utils/mime.js +0 -80
  265. package/dist/cjs/utils/stream.js +0 -89
  266. package/dist/cjs/utils/types.js +0 -0
  267. package/dist/cjs/utils/url.js +0 -215
  268. package/dist/cjs/validator/index.js +0 -3
  269. package/dist/cjs/validator/utils.js +0 -0
  270. package/dist/cjs/validator/validator.js +0 -65
  271. package/dist/types/adapter/aws-lambda/conninfo.d.ts +0 -30
  272. package/dist/types/adapter/aws-lambda/handler.d.ts +0 -230
  273. package/dist/types/adapter/aws-lambda/index.d.ts +0 -4
  274. package/dist/types/adapter/aws-lambda/types.d.ts +0 -183
  275. package/dist/types/adapter/bun/conninfo.d.ts +0 -10
  276. package/dist/types/adapter/bun/index.d.ts +0 -6
  277. package/dist/types/adapter/bun/serve-static.d.ts +0 -8
  278. package/dist/types/adapter/bun/server.d.ts +0 -11
  279. package/dist/types/adapter/bun/ssg.d.ts +0 -17
  280. package/dist/types/adapter/bun/websocket.d.ts +0 -54
  281. package/dist/types/adapter/cloudflare-pages/conninfo.d.ts +0 -24
  282. package/dist/types/adapter/cloudflare-pages/handler.d.ts +0 -45
  283. package/dist/types/adapter/cloudflare-pages/index.d.ts +0 -3
  284. package/dist/types/adapter/cloudflare-workers/conninfo.d.ts +0 -7
  285. package/dist/types/adapter/cloudflare-workers/index.d.ts +0 -4
  286. package/dist/types/adapter/cloudflare-workers/serve-static-module.d.ts +0 -7
  287. package/dist/types/adapter/cloudflare-workers/serve-static.d.ts +0 -21
  288. package/dist/types/adapter/cloudflare-workers/utils.d.ts +0 -13
  289. package/dist/types/adapter/cloudflare-workers/websocket.d.ts +0 -7
  290. package/dist/types/adapter/deno/conninfo.d.ts +0 -10
  291. package/dist/types/adapter/deno/deno.d.ts +0 -1
  292. package/dist/types/adapter/deno/index.d.ts +0 -5
  293. package/dist/types/adapter/deno/serve-static.d.ts +0 -8
  294. package/dist/types/adapter/deno/ssg.d.ts +0 -17
  295. package/dist/types/adapter/deno/websocket.d.ts +0 -7
  296. package/dist/types/adapter/lambda-edge/conninfo.d.ts +0 -7
  297. package/dist/types/adapter/lambda-edge/handler.d.ts +0 -113
  298. package/dist/types/adapter/lambda-edge/index.d.ts +0 -3
  299. package/dist/types/adapter/netlify/conninfo.d.ts +0 -24
  300. package/dist/types/adapter/netlify/handler.d.ts +0 -7
  301. package/dist/types/adapter/netlify/index.d.ts +0 -3
  302. package/dist/types/adapter/netlify/mod.d.ts +0 -3
  303. package/dist/types/adapter/service-worker/handler.d.ts +0 -18
  304. package/dist/types/adapter/service-worker/index.d.ts +0 -26
  305. package/dist/types/adapter/service-worker/types.d.ts +0 -17
  306. package/dist/types/adapter/vercel/conninfo.d.ts +0 -7
  307. package/dist/types/adapter/vercel/handler.d.ts +0 -7
  308. package/dist/types/adapter/vercel/index.d.ts +0 -3
  309. package/dist/types/package.json +0 -3
  310. package/dist/types/utils/buffer.d.ts +0 -19
  311. package/dist/types/utils/color.d.ts +0 -23
  312. package/dist/{types/client → client}/client.d.ts +0 -0
  313. package/dist/{types/client → client}/fetch-result-please.d.ts +0 -0
  314. package/dist/{types/client → client}/index.d.ts +0 -0
  315. package/dist/{types/client → client}/types.d.ts +1 -1
  316. package/dist/{types/client → client}/utils.d.ts +0 -0
  317. package/dist/{types/helper → helper}/accepts/accepts.d.ts +0 -0
  318. package/dist/{types/helper → helper}/accepts/index.d.ts +0 -0
  319. package/dist/{types/helper → helper}/adapter/index.d.ts +0 -0
  320. package/dist/{types/helper → helper}/conninfo/index.d.ts +0 -0
  321. package/dist/{types/helper → helper}/conninfo/types.d.ts +0 -0
  322. package/dist/{types/helper → helper}/cookie/index.d.ts +0 -0
  323. package/dist/{types/helper → helper}/css/common.d.ts +0 -0
  324. package/dist/{types/helper → helper}/css/index.d.ts +0 -0
  325. package/dist/{types/helper → helper}/dev/index.d.ts +0 -0
  326. package/dist/{types/helper → helper}/html/index.d.ts +0 -0
  327. package/dist/{types/helper → helper}/proxy/index.d.ts +0 -0
  328. package/dist/{types/helper → helper}/route/index.d.ts +0 -0
  329. package/dist/{types/helper → helper}/ssg/index.d.ts +0 -0
  330. package/dist/{types/helper → helper}/ssg/plugins.d.ts +0 -0
  331. package/dist/{types/helper → helper}/ssg/utils.d.ts +0 -0
  332. package/dist/{types/helper → helper}/streaming/index.d.ts +0 -0
  333. package/dist/{types/helper → helper}/streaming/sse.d.ts +0 -0
  334. package/dist/{types/helper → helper}/streaming/stream.d.ts +0 -0
  335. package/dist/{types/helper → helper}/streaming/text.d.ts +0 -0
  336. package/dist/{types/helper → helper}/streaming/utils.d.ts +0 -0
  337. package/dist/{types/helper → helper}/testing/index.d.ts +0 -0
  338. package/dist/{types/helper → helper}/websocket/index.d.ts +0 -0
  339. package/dist/{types/http-exception.d.ts → http-exception.d.ts} +0 -0
  340. package/dist/{types/index.d.ts → index.d.ts} +0 -0
  341. package/dist/{types/jsx → jsx}/base.d.ts +0 -0
  342. package/dist/{types/jsx → jsx}/children.d.ts +0 -0
  343. package/dist/{types/jsx → jsx}/components.d.ts +0 -0
  344. package/dist/{types/jsx → jsx}/constants.d.ts +0 -0
  345. package/dist/{types/jsx → jsx}/context.d.ts +0 -0
  346. package/dist/{types/jsx → jsx}/dom/client.d.ts +0 -0
  347. package/dist/{types/jsx → jsx}/dom/components.d.ts +0 -0
  348. package/dist/{types/jsx → jsx}/dom/context.d.ts +0 -0
  349. package/dist/{types/jsx → jsx}/dom/css.d.ts +0 -0
  350. package/dist/{types/jsx → jsx}/dom/hooks/index.d.ts +0 -0
  351. package/dist/{types/jsx → jsx}/dom/index.d.ts +0 -0
  352. package/dist/{types/jsx → jsx}/dom/intrinsic-element/components.d.ts +0 -0
  353. package/dist/{types/jsx → jsx}/dom/jsx-dev-runtime.d.ts +0 -0
  354. package/dist/{types/jsx → jsx}/dom/jsx-runtime.d.ts +0 -0
  355. package/dist/{types/jsx → jsx}/dom/render.d.ts +0 -0
  356. package/dist/{types/jsx → jsx}/dom/server.d.ts +0 -0
  357. package/dist/{types/jsx → jsx}/dom/utils.d.ts +0 -0
  358. package/dist/{types/jsx → jsx}/hooks/index.d.ts +0 -0
  359. package/dist/{types/jsx → jsx}/index.d.ts +0 -0
  360. package/dist/{types/jsx → jsx}/intrinsic-element/common.d.ts +0 -0
  361. package/dist/{types/jsx → jsx}/intrinsic-element/components.d.ts +0 -0
  362. package/dist/{types/jsx → jsx}/intrinsic-elements.d.ts +0 -0
  363. package/dist/{types/jsx → jsx}/jsx-dev-runtime.d.ts +0 -0
  364. package/dist/{types/jsx → jsx}/jsx-runtime.d.ts +0 -0
  365. package/dist/{types/jsx → jsx}/streaming.d.ts +0 -0
  366. package/dist/{types/jsx → jsx}/types.d.ts +0 -0
  367. package/dist/{types/jsx → jsx}/utils.d.ts +0 -0
  368. package/dist/{types/middleware → middleware}/body-limit/index.d.ts +0 -0
  369. package/dist/{types/middleware → middleware}/cache/index.d.ts +0 -0
  370. package/dist/{types/middleware → middleware}/combine/index.d.ts +0 -0
  371. package/dist/{types/middleware → middleware}/compress/index.d.ts +0 -0
  372. package/dist/{types/middleware → middleware}/context-storage/index.d.ts +0 -0
  373. package/dist/{types/middleware → middleware}/cors/index.d.ts +0 -0
  374. package/dist/{types/middleware → middleware}/csrf/index.d.ts +0 -0
  375. package/dist/{types/middleware → middleware}/etag/digest.d.ts +0 -0
  376. package/dist/{types/middleware → middleware}/etag/index.d.ts +0 -0
  377. package/dist/{types/middleware → middleware}/ip-restriction/index.d.ts +0 -0
  378. package/dist/{types/middleware → middleware}/jsx-renderer/index.d.ts +0 -0
  379. package/dist/{types/middleware → middleware}/jwk/index.d.ts +0 -0
  380. package/dist/{types/middleware → middleware}/jwk/jwk.d.ts +0 -0
  381. package/dist/{types/middleware → middleware}/jwt/index.d.ts +0 -0
  382. package/dist/{types/middleware → middleware}/jwt/jwt.d.ts +0 -0
  383. package/dist/{types/middleware → middleware}/language/index.d.ts +0 -0
  384. package/dist/{types/middleware → middleware}/language/language.d.ts +0 -0
  385. package/dist/{types/middleware → middleware}/logger/index.d.ts +0 -0
  386. package/dist/{types/middleware → middleware}/method-not-allowed/index.d.ts +0 -0
  387. package/dist/{types/middleware → middleware}/method-override/index.d.ts +0 -0
  388. package/dist/{types/middleware → middleware}/mount/index.d.ts +0 -0
  389. package/dist/{types/middleware → middleware}/powered-by/index.d.ts +0 -0
  390. package/dist/{types/middleware → middleware}/pretty-json/index.d.ts +0 -0
  391. package/dist/{types/middleware → middleware}/request-id/index.d.ts +0 -0
  392. package/dist/{types/middleware → middleware}/request-id/request-id.d.ts +0 -0
  393. package/dist/{types/middleware → middleware}/secure-headers/index.d.ts +0 -0
  394. package/dist/{types/middleware → middleware}/secure-headers/permissions-policy.d.ts +0 -0
  395. package/dist/{types/middleware → middleware}/secure-headers/secure-headers.d.ts +0 -0
  396. package/dist/{types/middleware → middleware}/serve-static/path.d.ts +0 -0
  397. package/dist/{types/middleware → middleware}/timeout/index.d.ts +0 -0
  398. package/dist/{types/middleware → middleware}/timing/index.d.ts +0 -0
  399. package/dist/{types/middleware → middleware}/timing/timing.d.ts +0 -0
  400. package/dist/{types/middleware → middleware}/trailing-slash/index.d.ts +0 -0
  401. package/dist/{types/request → request}/constants.d.ts +0 -0
  402. package/dist/{types/router → router}/linear-router/index.d.ts +0 -0
  403. package/dist/{types/router → router}/linear-router/router.d.ts +0 -0
  404. package/dist/{types/router → router}/pattern-router/index.d.ts +0 -0
  405. package/dist/{types/router → router}/pattern-router/router.d.ts +0 -0
  406. package/dist/{types/router → router}/reg-exp-router/index.d.ts +0 -0
  407. package/dist/{types/router → router}/reg-exp-router/matcher.d.ts +0 -0
  408. package/dist/{types/router → router}/reg-exp-router/node.d.ts +0 -0
  409. package/dist/{types/router → router}/reg-exp-router/prepared-router.d.ts +0 -0
  410. package/dist/{types/router → router}/reg-exp-router/router.d.ts +0 -0
  411. package/dist/{types/router → router}/reg-exp-router/trie.d.ts +0 -0
  412. package/dist/{types/router → router}/smart-router/index.d.ts +0 -0
  413. package/dist/{types/router → router}/smart-router/router.d.ts +0 -0
  414. package/dist/{types/router → router}/trie-router/index.d.ts +0 -0
  415. package/dist/{types/router → router}/trie-router/node.d.ts +0 -0
  416. package/dist/{types/router → router}/trie-router/router.d.ts +0 -0
  417. package/dist/{types/router → router}/utils.d.ts +0 -0
  418. package/dist/{types/router.d.ts → router.d.ts} +0 -0
  419. package/dist/{types/types.d.ts → types.d.ts} +1 -1
  420. /package/dist/{types/utils → utils}/accept.d.ts +0 -0
  421. /package/dist/{types/utils → utils}/basic-auth.d.ts +0 -0
  422. /package/dist/{types/utils → utils}/body.d.ts +0 -0
  423. /package/dist/{types/utils → utils}/compress.d.ts +0 -0
  424. /package/dist/{types/utils → utils}/concurrent.d.ts +0 -0
  425. /package/dist/{types/utils → utils}/constants.d.ts +0 -0
  426. /package/dist/{types/utils → utils}/cookie.d.ts +0 -0
  427. /package/dist/{types/utils → utils}/crypto.d.ts +0 -0
  428. /package/dist/{types/utils → utils}/encode.d.ts +0 -0
  429. /package/dist/{types/utils → utils}/filepath.d.ts +0 -0
  430. /package/dist/{types/utils → utils}/handler.d.ts +0 -0
  431. /package/dist/{types/utils → utils}/headers.d.ts +0 -0
  432. /package/dist/{types/utils → utils}/html.d.ts +0 -0
  433. /package/dist/{types/utils → utils}/ipaddr.d.ts +0 -0
  434. /package/dist/{types/utils → utils}/jwt/index.d.ts +0 -0
  435. /package/dist/{types/utils → utils}/jwt/jwa.d.ts +0 -0
  436. /package/dist/{types/utils → utils}/jwt/jws.d.ts +0 -0
  437. /package/dist/{types/utils → utils}/jwt/jwt.d.ts +0 -0
  438. /package/dist/{types/utils → utils}/jwt/types.d.ts +0 -0
  439. /package/dist/{types/utils → utils}/jwt/utf8.d.ts +0 -0
  440. /package/dist/{types/utils → utils}/mime.d.ts +0 -0
  441. /package/dist/{types/utils → utils}/stream.d.ts +0 -0
  442. /package/dist/{types/utils → utils}/types.d.ts +0 -0
  443. /package/dist/{types/validator → validator}/index.d.ts +0 -0
  444. /package/dist/{types/validator → validator}/utils.d.ts +0 -0
@@ -1,208 +0,0 @@
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
5
- const DEFAULT_OPTIONS = {
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
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
- */
32
- function parseAcceptLanguage(header) {
33
- return require_utils_accept.parseAccept(header).map(({ type, q }) => ({
34
- lang: type,
35
- q
36
- }));
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
- */
44
- const normalizeLanguage = (lang, options) => {
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
- }
67
- };
68
- /**
69
- * Detects language from query parameter
70
- */
71
- const detectFromQuery = (c, options) => {
72
- const query = c.req.query(options.lookupQueryString);
73
- return normalizeLanguage(query, options);
74
- };
75
- /**
76
- * Detects language from cookie
77
- */
78
- const detectFromCookie = (c, options) => {
79
- const cookie = require_helper_cookie_index.getCookie(c, options.lookupCookie);
80
- return normalizeLanguage(cookie, options);
81
- };
82
- /**
83
- * Detects language from Accept-Language header
84
- */
85
- function detectFromHeader(c, options) {
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
- }
99
- }
100
- /**
101
- * Detects language from URL path
102
- */
103
- function detectFromPath(c, options) {
104
- const langSegment = new URL(c.req.url).pathname.split("/").filter(Boolean)[options.lookupFromPathIndex];
105
- return normalizeLanguage(langSegment, options);
106
- }
107
- /**
108
- * Collection of all language detection strategies
109
- */
110
- const detectors = {
111
- querystring: detectFromQuery,
112
- cookie: detectFromCookie,
113
- header: detectFromHeader,
114
- path: detectFromPath
115
- };
116
- /**
117
- * Validate detector options
118
- * @param options Detector options to validate
119
- * @throws Error if options are invalid
120
- */
121
- function validateOptions(options) {
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");
125
- }
126
- /**
127
- * Cache detected language
128
- */
129
- function cacheLanguage(c, language, options) {
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
- }
136
- }
137
- /**
138
- * Detect language from request
139
- */
140
- const detectLanguage = (c, options) => {
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;
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
- */
182
- const languageDetector = (userOptions) => {
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
- };
197
- };
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,51 +0,0 @@
1
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_utils_color = require("../../utils/color.js");
3
- //#region src/middleware/logger/index.ts
4
- const humanize = (times) => {
5
- const [delimiter, separator] = [",", "."];
6
- return times.map((v) => v.replace(/(\d)(?=(\d\d\d)+(?!\d))/g, "$1" + delimiter)).join(separator);
7
- };
8
- const time = (start) => {
9
- const delta = Date.now() - start;
10
- return humanize([delta < 1e3 ? delta + "ms" : Math.round(delta / 1e3) + "s"]);
11
- };
12
- const colorStatus = async (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}`;
20
- };
21
- async function log(fn, prefix, method, path, status = 0, elapsed) {
22
- fn(prefix === "<--" ? `${prefix} ${method} ${path}` : `${prefix} ${method} ${path} ${await colorStatus(status)} ${elapsed}`);
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
- */
40
- const logger = (fn = console.log) => {
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
- };
49
- };
50
- //#endregion
51
- exports.logger = logger;
@@ -1,84 +0,0 @@
1
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- require("../../router.js");
3
- const require_router_trie_router_router = require("../../router/trie-router/router.js");
4
- require("../../router/trie-router/index.js");
5
- const require_helper_route_index = require("../../helper/route/index.js");
6
- //#region src/middleware/method-not-allowed/index.ts
7
- /**
8
- * Method Not Allowed Middleware for Hono.
9
- *
10
- * Returns a `405 Method Not Allowed` response with an `Allow` header when the request path
11
- * matches a registered route but the request method is not supported.
12
- *
13
- * @param {MethodNotAllowedOptions} options - The options for the middleware.
14
- * @param {Hono} options.app - The Hono instance used by the application.
15
- * @param {MethodNotAllowedHandler} [options.onMethodNotAllowed] - Generates the response, including its `Allow` header.
16
- * @returns {MiddlewareHandler} The middleware handler function.
17
- *
18
- * @example
19
- * ```ts
20
- * const app = new Hono()
21
- *
22
- * app.use(methodNotAllowed({ app }))
23
- *
24
- * app.get('/hello', (c) => c.text('Hello!'))
25
- * app.post('/hello', (c) => c.text('Posted!'))
26
- *
27
- * // PUT /hello -> 405 Method Not Allowed
28
- * // Allow: GET, HEAD, POST
29
- * ```
30
- *
31
- * @example
32
- * ```ts
33
- * app.use(
34
- * methodNotAllowed({
35
- * app,
36
- * onMethodNotAllowed: (c, methods) =>
37
- * c.json({ error: 'Method Not Allowed' }, 405, { Allow: methods.join(', ') }),
38
- * })
39
- * )
40
- * ```
41
- */
42
- const methodNotAllowed = (options) => {
43
- let methodRouter;
44
- return async function methodNotAllowed(c, next) {
45
- const routeIndex = c.req.routeIndex;
46
- await next();
47
- if (c.res.status !== 404) return;
48
- if (c.error) return;
49
- if (!methodRouter) {
50
- const methodsByPath = /* @__PURE__ */ new Map();
51
- for (const route of options.app.routes) {
52
- if (route.method === "ALL" || route.method === "HEAD") continue;
53
- const methods = methodsByPath.get(route.path) ?? /* @__PURE__ */ new Set();
54
- methods.add(route.method);
55
- if (route.method === "GET") methods.add("HEAD");
56
- methodsByPath.set(route.path, methods);
57
- }
58
- methodRouter = new require_router_trie_router_router.TrieRouter();
59
- for (const [path, methods] of methodsByPath) methodRouter.add("ALL", path, [...methods]);
60
- }
61
- let requestPath = c.req.path;
62
- const currentRoute = require_helper_route_index.matchedRoutes(c)[routeIndex];
63
- const sourceRoute = options.app.routes.find((route) => route.handler === methodNotAllowed);
64
- if (currentRoute && sourceRoute) {
65
- const currentBasePathParts = require_helper_route_index.basePath(c, routeIndex).split("/").filter(Boolean);
66
- const sourceBasePathLength = sourceRoute.basePath.split("/").filter(Boolean).length;
67
- const mountBasePathParts = currentBasePathParts.slice(0, currentBasePathParts.length - sourceBasePathLength);
68
- if (mountBasePathParts.length > 0) {
69
- const mountBasePath = `/${mountBasePathParts.join("/")}`;
70
- requestPath = c.req.path.slice(mountBasePath.length) || "/";
71
- }
72
- }
73
- const allowedMethods = /* @__PURE__ */ new Set();
74
- for (const [methods] of methodRouter.match("ALL", requestPath)[0]) for (const method of methods) allowedMethods.add(method);
75
- if (allowedMethods.size === 0 || allowedMethods.has(c.req.method)) return;
76
- c.res.headers.delete("Allow");
77
- c.res.headers.delete("Content-Length");
78
- const methods = [...allowedMethods];
79
- const allow = methods.join(", ");
80
- c.res = options.onMethodNotAllowed ? await options.onMethodNotAllowed(c, methods) : c.text("Method Not Allowed", 405, { Allow: allow });
81
- };
82
- };
83
- //#endregion
84
- exports.methodNotAllowed = methodNotAllowed;
@@ -1,105 +0,0 @@
1
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_utils_body = require("../../utils/body.js");
3
- //#region src/middleware/method-override/index.ts
4
- const DEFAULT_METHOD_FORM_NAME = "_method";
5
- /**
6
- * Method Override Middleware for Hono.
7
- *
8
- * @see {@link https://hono.dev/docs/middleware/builtin/method-override}
9
- *
10
- * @param {MethodOverrideOptions} options - The options for the method override middleware.
11
- * @param {Hono} options.app - The instance of Hono is used in your application.
12
- * @param {string} [options.form=_method] - Form key with a value containing the method name.
13
- * @param {string} [options.header] - Header name with a value containing the method name.
14
- * @param {string} [options.query] - Query parameter key with a value containing the method name.
15
- * @returns {MiddlewareHandler} The middleware handler function.
16
- *
17
- * @example
18
- * ```ts
19
- * const app = new Hono()
20
- *
21
- * // If no options are specified, the value of `_method` in the form,
22
- * // e.g. DELETE, is used as the method.
23
- * app.use('/posts', methodOverride({ app }))
24
- *
25
- * app.delete('/posts', (c) => {
26
- * // ....
27
- * })
28
- * ```
29
- */
30
- const methodOverride = (options) => async function methodOverride(c, next) {
31
- if (c.req.method === "GET") return await next();
32
- const app = options.app;
33
- if (!(options.header || options.query)) {
34
- const contentType = c.req.header("content-type");
35
- const methodFormName = options.form || DEFAULT_METHOD_FORM_NAME;
36
- const clonedRequest = c.req.raw.clone();
37
- const newRequest = clonedRequest.clone();
38
- if (contentType?.startsWith("multipart/form-data")) {
39
- const method = (await clonedRequest.formData()).get(methodFormName);
40
- if (method) {
41
- const newForm = await newRequest.formData();
42
- newForm.delete(methodFormName);
43
- const newHeaders = new Headers(clonedRequest.headers);
44
- newHeaders.delete("content-type");
45
- newHeaders.delete("content-length");
46
- const request = new Request(c.req.url, {
47
- body: newForm,
48
- headers: newHeaders,
49
- method
50
- });
51
- return app.fetch(request, c.env, getExecutionCtx(c));
52
- }
53
- }
54
- if (contentType?.startsWith("application/x-www-form-urlencoded")) {
55
- const params = await require_utils_body.parseBody(clonedRequest);
56
- const method = params[methodFormName];
57
- if (method) {
58
- delete params[methodFormName];
59
- const newParams = new URLSearchParams(params);
60
- const request = new Request(newRequest, {
61
- body: newParams,
62
- method
63
- });
64
- return app.fetch(request, c.env, getExecutionCtx(c));
65
- }
66
- }
67
- } else if (options.header) {
68
- const headerName = options.header;
69
- const method = c.req.header(headerName);
70
- if (method) {
71
- const newHeaders = new Headers(c.req.raw.headers);
72
- newHeaders.delete(headerName);
73
- const request = new Request(c.req.raw, {
74
- headers: newHeaders,
75
- method
76
- });
77
- return app.fetch(request, c.env, getExecutionCtx(c));
78
- }
79
- } else if (options.query) {
80
- const queryName = options.query;
81
- const method = c.req.query(queryName);
82
- if (method) {
83
- const url = new URL(c.req.url);
84
- url.searchParams.delete(queryName);
85
- const requestInit = {
86
- body: c.req.raw.body,
87
- headers: c.req.raw.headers,
88
- method,
89
- duplex: c.req.raw.body ? "half" : void 0
90
- };
91
- const request = new Request(url.toString(), requestInit);
92
- return app.fetch(request, c.env, getExecutionCtx(c));
93
- }
94
- }
95
- await next();
96
- };
97
- const getExecutionCtx = (c) => {
98
- let executionCtx;
99
- try {
100
- executionCtx = c.executionCtx;
101
- } catch {}
102
- return executionCtx;
103
- };
104
- //#endregion
105
- exports.methodOverride = methodOverride;
@@ -1,71 +0,0 @@
1
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_helper_route_index = require("../../helper/route/index.js");
3
- //#region src/middleware/mount/index.ts
4
- const defaultReplaceRequest = (c) => {
5
- const pathPrefix = require_helper_route_index.routePath(c).replace(/\/\*$/, "");
6
- const url = new URL(c.req.raw.url);
7
- url.pathname = c.req.path.slice(pathPrefix.length) || "/";
8
- return new Request(url, c.req.raw);
9
- };
10
- const defaultGetOptions = (c) => {
11
- let executionContext = void 0;
12
- try {
13
- executionContext = c.executionCtx;
14
- } catch {}
15
- return [c.env, executionContext];
16
- };
17
- /**
18
- * `mount()` allows you to mount applications built with other frameworks into your Hono application.
19
- *
20
- * @see {@link https://hono.dev/docs/api/hono#mount}
21
- *
22
- * @param {Function} applicationHandler - other Request Handler
23
- * @param {MountOptions} [options] - options of `mount()`
24
- * @returns {MiddlewareHandler} handler to register with `app.all()`
25
- *
26
- * @example
27
- * ```ts
28
- * import { Router as IttyRouter } from 'itty-router'
29
- * import { Hono } from 'hono'
30
- * import { mount } from 'hono/mount'
31
- * // Create itty-router application
32
- * const ittyRouter = IttyRouter()
33
- * // GET /itty-router/hello
34
- * ittyRouter.get('/hello', () => new Response('Hello from itty-router'))
35
- *
36
- * const app = new Hono()
37
- * app.all('/itty-router/*', mount(ittyRouter.handle))
38
- * ```
39
- *
40
- * @example
41
- * ```ts
42
- * const app = new Hono()
43
- * // Send the request to another application without modification.
44
- * app.all('/app/*', mount(anotherApp, {
45
- * replaceRequest: (req) => req,
46
- * }))
47
- * ```
48
- */
49
- const mount = (applicationHandler, options) => {
50
- let replaceRequest;
51
- let optionHandler;
52
- if (options) {
53
- if (typeof options === "function") optionHandler = options;
54
- else {
55
- optionHandler = options.optionHandler;
56
- if (options.replaceRequest === false) replaceRequest = (request) => request;
57
- else replaceRequest = options.replaceRequest;
58
- }
59
- }
60
- const getOptions = optionHandler ? (c) => {
61
- const options = optionHandler(c);
62
- return Array.isArray(options) ? options : [options];
63
- } : defaultGetOptions;
64
- return async (c, next) => {
65
- const res = await applicationHandler(replaceRequest ? replaceRequest(c.req.raw) : defaultReplaceRequest(c), ...getOptions(c));
66
- if (res) return res;
67
- await next();
68
- };
69
- };
70
- //#endregion
71
- exports.mount = mount;
@@ -1,25 +0,0 @@
1
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- //#region src/middleware/powered-by/index.ts
3
- /**
4
- * Powered By Middleware for Hono.
5
- *
6
- * @param options - The options for the Powered By Middleware.
7
- * @returns {MiddlewareHandler} The middleware handler function.
8
- *
9
- * @example
10
- * ```ts
11
- * import { poweredBy } from 'hono/powered-by'
12
- *
13
- * const app = new Hono()
14
- *
15
- * app.use(poweredBy()) // With options: poweredBy({ serverName: "My Server" })
16
- * ```
17
- */
18
- const poweredBy = (options) => {
19
- return async function poweredBy(c, next) {
20
- await next();
21
- c.res.headers.set("X-Powered-By", options?.serverName ?? "Hono");
22
- };
23
- };
24
- //#endregion
25
- exports.poweredBy = poweredBy;
@@ -1,41 +0,0 @@
1
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- //#region src/middleware/pretty-json/index.ts
3
- const jsonContentTypeRegex = /^application\/(?:[a-z0-9._-]+\+)?json(?=$|[;\s])/i;
4
- /**
5
- * Pretty JSON Middleware for Hono.
6
- *
7
- * @see {@link https://hono.dev/docs/middleware/builtin/pretty-json}
8
- *
9
- * @param options - The options for the pretty JSON middleware.
10
- * @returns {MiddlewareHandler} The middleware handler function.
11
- *
12
- * @example
13
- * ```ts
14
- * const app = new Hono()
15
- *
16
- * app.use(prettyJSON()) // With options: prettyJSON({ space: 4 })
17
- * app.get('/', (c) => {
18
- * return c.json({ message: 'Hono!' })
19
- * })
20
- * ```
21
- */
22
- const prettyJSON = (options) => {
23
- const targetQuery = options?.query ?? "pretty";
24
- return async function prettyJSON(c, next) {
25
- const pretty = options?.force || c.req.query(targetQuery) || c.req.query(targetQuery) === "";
26
- await next();
27
- const contentType = c.res.headers.get("Content-Type");
28
- if (pretty && contentType && jsonContentTypeRegex.test(contentType)) {
29
- let obj;
30
- try {
31
- obj = await c.res.clone().json();
32
- } catch {
33
- return;
34
- }
35
- c.res = new Response(JSON.stringify(obj, null, options?.space ?? 2), c.res);
36
- c.res.headers.delete("Content-Length");
37
- }
38
- };
39
- };
40
- //#endregion
41
- exports.prettyJSON = prettyJSON;
@@ -1,3 +0,0 @@
1
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_middleware_request_id_request_id = require("./request-id.js");
3
- exports.requestId = require_middleware_request_id_request_id.requestId;
@@ -1,35 +0,0 @@
1
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- //#region src/middleware/request-id/request-id.ts
3
- /**
4
- * Request ID Middleware for Hono.
5
- *
6
- * @param {object} options - Options for Request ID middleware.
7
- * @param {number} [options.limitLength=255] - The maximum length of request id.
8
- * @param {string} [options.headerName=X-Request-Id] - The header name used in request id.
9
- * @param {generator} [options.generator=() => crypto.randomUUID()] - The request id generation function.
10
- *
11
- * @returns {MiddlewareHandler} The middleware handler function.
12
- *
13
- * @example
14
- * ```ts
15
- * type Variables = RequestIdVariables
16
- * const app = new Hono<{Variables: Variables}>()
17
- *
18
- * app.use(requestId())
19
- * app.get('/', (c) => {
20
- * console.log(c.get('requestId')) // Debug
21
- * return c.text('Hello World!')
22
- * })
23
- * ```
24
- */
25
- const requestId = ({ limitLength = 255, headerName = "X-Request-Id", generator = () => crypto.randomUUID() } = {}) => {
26
- return async function requestId(c, next) {
27
- let reqId = headerName ? c.req.header(headerName) : void 0;
28
- if (!reqId || reqId.length > limitLength || /[^\w\-=]/.test(reqId)) reqId = generator(c);
29
- c.set("requestId", reqId);
30
- if (headerName) c.header(headerName, reqId);
31
- await next();
32
- };
33
- };
34
- //#endregion
35
- exports.requestId = requestId;
@@ -1,4 +0,0 @@
1
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_middleware_secure_headers_secure_headers = require("./secure-headers.js");
3
- exports.NONCE = require_middleware_secure_headers_secure_headers.NONCE;
4
- exports.secureHeaders = require_middleware_secure_headers_secure_headers.secureHeaders;