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,166 +0,0 @@
1
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_utils_encode = require("../../utils/encode.js");
3
- //#region src/middleware/secure-headers/secure-headers.ts
4
- const HEADERS_MAP = {
5
- crossOriginEmbedderPolicy: ["Cross-Origin-Embedder-Policy", "require-corp"],
6
- crossOriginResourcePolicy: ["Cross-Origin-Resource-Policy", "same-origin"],
7
- crossOriginOpenerPolicy: ["Cross-Origin-Opener-Policy", "same-origin"],
8
- originAgentCluster: ["Origin-Agent-Cluster", "?1"],
9
- referrerPolicy: ["Referrer-Policy", "no-referrer"],
10
- strictTransportSecurity: ["Strict-Transport-Security", "max-age=15552000; includeSubDomains"],
11
- xContentTypeOptions: ["X-Content-Type-Options", "nosniff"],
12
- xDnsPrefetchControl: ["X-DNS-Prefetch-Control", "off"],
13
- xDownloadOptions: ["X-Download-Options", "noopen"],
14
- xFrameOptions: ["X-Frame-Options", "SAMEORIGIN"],
15
- xPermittedCrossDomainPolicies: ["X-Permitted-Cross-Domain-Policies", "none"],
16
- xXssProtection: ["X-XSS-Protection", "0"]
17
- };
18
- const DEFAULT_OPTIONS = {
19
- crossOriginEmbedderPolicy: false,
20
- crossOriginResourcePolicy: true,
21
- crossOriginOpenerPolicy: true,
22
- originAgentCluster: true,
23
- referrerPolicy: true,
24
- strictTransportSecurity: true,
25
- xContentTypeOptions: true,
26
- xDnsPrefetchControl: true,
27
- xDownloadOptions: true,
28
- xFrameOptions: true,
29
- xPermittedCrossDomainPolicies: true,
30
- xXssProtection: true,
31
- removePoweredBy: true,
32
- permissionsPolicy: {}
33
- };
34
- const generateNonce = () => {
35
- const arrayBuffer = /* @__PURE__ */ new Uint8Array(16);
36
- crypto.getRandomValues(arrayBuffer);
37
- return require_utils_encode.encodeBase64(arrayBuffer.buffer);
38
- };
39
- const NONCE = (ctx) => {
40
- const key = "secureHeadersNonce";
41
- const init = ctx.get(key);
42
- const nonce = init || generateNonce();
43
- if (init == null) ctx.set(key, nonce);
44
- return `'nonce-${nonce}'`;
45
- };
46
- /**
47
- * Secure Headers Middleware for Hono.
48
- *
49
- * @see {@link https://hono.dev/docs/middleware/builtin/secure-headers}
50
- *
51
- * @param {Partial<SecureHeadersOptions>} [customOptions] - The options for the secure headers middleware.
52
- * @param {ContentSecurityPolicyOptions} [customOptions.contentSecurityPolicy] - Settings for the Content-Security-Policy header.
53
- * @param {ContentSecurityPolicyOptions} [customOptions.contentSecurityPolicyReportOnly] - Settings for the Content-Security-Policy-Report-Only header.
54
- * @param {overridableHeader} [customOptions.crossOriginEmbedderPolicy=false] - Settings for the Cross-Origin-Embedder-Policy header.
55
- * @param {overridableHeader} [customOptions.crossOriginResourcePolicy=true] - Settings for the Cross-Origin-Resource-Policy header.
56
- * @param {overridableHeader} [customOptions.crossOriginOpenerPolicy=true] - Settings for the Cross-Origin-Opener-Policy header.
57
- * @param {overridableHeader} [customOptions.originAgentCluster=true] - Settings for the Origin-Agent-Cluster header.
58
- * @param {overridableHeader} [customOptions.referrerPolicy=true] - Settings for the Referrer-Policy header.
59
- * @param {ReportingEndpointOptions[]} [customOptions.reportingEndpoints] - Settings for the Reporting-Endpoints header.
60
- * @param {ReportToOptions[]} [customOptions.reportTo] - Settings for the Report-To header.
61
- * @param {overridableHeader} [customOptions.strictTransportSecurity=true] - Settings for the Strict-Transport-Security header.
62
- * @param {overridableHeader} [customOptions.xContentTypeOptions=true] - Settings for the X-Content-Type-Options header.
63
- * @param {overridableHeader} [customOptions.xDnsPrefetchControl=true] - Settings for the X-DNS-Prefetch-Control header.
64
- * @param {overridableHeader} [customOptions.xDownloadOptions=true] - Settings for the X-Download-Options header.
65
- * @param {overridableHeader} [customOptions.xFrameOptions=true] - Settings for the X-Frame-Options header.
66
- * @param {overridableHeader} [customOptions.xPermittedCrossDomainPolicies=true] - Settings for the X-Permitted-Cross-Domain-Policies header.
67
- * @param {overridableHeader} [customOptions.xXssProtection=true] - Settings for the X-XSS-Protection header.
68
- * @param {boolean} [customOptions.removePoweredBy=true] - Settings for remove X-Powered-By header.
69
- * @param {PermissionsPolicyOptions} [customOptions.permissionsPolicy] - Settings for the Permissions-Policy header.
70
- * @returns {MiddlewareHandler} The middleware handler function.
71
- *
72
- * @example
73
- * ```ts
74
- * const app = new Hono()
75
- * app.use(secureHeaders())
76
- * ```
77
- */
78
- const secureHeaders = (customOptions) => {
79
- const options = {
80
- ...DEFAULT_OPTIONS,
81
- ...customOptions
82
- };
83
- const headersToSet = getFilteredHeaders(options);
84
- const callbacks = [];
85
- if (options.contentSecurityPolicy) {
86
- const [callback, value] = getCSPDirectives(options.contentSecurityPolicy, "Content-Security-Policy");
87
- if (callback) callbacks.push(callback);
88
- headersToSet.push(["Content-Security-Policy", value]);
89
- }
90
- if (options.contentSecurityPolicyReportOnly) {
91
- const [callback, value] = getCSPDirectives(options.contentSecurityPolicyReportOnly, "Content-Security-Policy-Report-Only");
92
- if (callback) callbacks.push(callback);
93
- headersToSet.push(["Content-Security-Policy-Report-Only", value]);
94
- }
95
- if (options.permissionsPolicy && Object.keys(options.permissionsPolicy).length > 0) headersToSet.push(["Permissions-Policy", getPermissionsPolicyDirectives(options.permissionsPolicy)]);
96
- if (options.reportingEndpoints) headersToSet.push(["Reporting-Endpoints", getReportingEndpoints(options.reportingEndpoints)]);
97
- if (options.reportTo) headersToSet.push(["Report-To", getReportToOptions(options.reportTo)]);
98
- return async function secureHeaders(ctx, next) {
99
- const headersToSetForReq = callbacks.length === 0 ? headersToSet : callbacks.reduce((acc, cb) => cb(ctx, acc), headersToSet);
100
- await next();
101
- setHeaders(ctx, headersToSetForReq);
102
- if (options?.removePoweredBy) ctx.res.headers.delete("X-Powered-By");
103
- };
104
- };
105
- function getFilteredHeaders(options) {
106
- return Object.entries(HEADERS_MAP).filter(([key]) => options[key]).map(([key, defaultValue]) => {
107
- const overrideValue = options[key];
108
- return typeof overrideValue === "string" ? [defaultValue[0], overrideValue] : defaultValue;
109
- });
110
- }
111
- function getCSPDirectives(contentSecurityPolicy, headerName) {
112
- const callbacks = [];
113
- const resultValues = [];
114
- for (const [directive, value] of Object.entries(contentSecurityPolicy)) {
115
- const valueArray = Array.isArray(value) ? value : [value];
116
- valueArray.forEach((value, i) => {
117
- if (typeof value === "function") {
118
- const index = i * 2 + 2 + resultValues.length;
119
- callbacks.push((ctx, values) => {
120
- values[index] = value(ctx, directive);
121
- });
122
- }
123
- });
124
- resultValues.push(directive.replace(/[A-Z]+(?![a-z])|[A-Z]/g, (match, offset) => offset ? "-" + match.toLowerCase() : match.toLowerCase()), ...valueArray.flatMap((value) => [" ", value]), "; ");
125
- }
126
- resultValues.pop();
127
- return callbacks.length === 0 ? [void 0, resultValues.join("")] : [(ctx, headersToSet) => headersToSet.map((values) => {
128
- if (values[0] === headerName) {
129
- const clone = values[1].slice();
130
- callbacks.forEach((cb) => {
131
- cb(ctx, clone);
132
- });
133
- return [values[0], clone.join("")];
134
- } else return values;
135
- }), resultValues];
136
- }
137
- function getPermissionsPolicyDirectives(policy) {
138
- return Object.entries(policy).map(([directive, value]) => {
139
- const kebabDirective = camelToKebab(directive);
140
- if (typeof value === "boolean") return `${kebabDirective}=${value ? "*" : "()"}`;
141
- if (Array.isArray(value)) {
142
- if (value.length === 0) return `${kebabDirective}=()`;
143
- if (value.length === 1 && value[0] === "*") return `${kebabDirective}=*`;
144
- if (value.length === 1 && value[0] === "none") return `${kebabDirective}=()`;
145
- return `${kebabDirective}=(${value.map((item) => ["self", "src"].includes(item) ? item : `"${item}"`).join(" ")})`;
146
- }
147
- return "";
148
- }).filter(Boolean).join(", ");
149
- }
150
- function camelToKebab(str) {
151
- return str.replace(/([a-z\d])([A-Z])/g, "$1-$2").toLowerCase();
152
- }
153
- function getReportingEndpoints(reportingEndpoints = []) {
154
- return reportingEndpoints.map((endpoint) => `${endpoint.name}="${endpoint.url}"`).join(", ");
155
- }
156
- function getReportToOptions(reportTo = []) {
157
- return reportTo.map((option) => JSON.stringify(option)).join(", ");
158
- }
159
- function setHeaders(ctx, headersToSet) {
160
- headersToSet.forEach(([header, value]) => {
161
- ctx.res.headers.set(header, value);
162
- });
163
- }
164
- //#endregion
165
- exports.NONCE = NONCE;
166
- exports.secureHeaders = secureHeaders;
@@ -1,62 +0,0 @@
1
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_utils_url = require("../../utils/url.js");
3
- const require_utils_compress = require("../../utils/compress.js");
4
- const require_utils_mime = require("../../utils/mime.js");
5
- const require_middleware_serve_static_path = require("./path.js");
6
- //#region src/middleware/serve-static/index.ts
7
- const ENCODINGS = {
8
- br: ".br",
9
- zstd: ".zst",
10
- gzip: ".gz"
11
- };
12
- const ENCODINGS_ORDERED_KEYS = Object.keys(ENCODINGS);
13
- const DEFAULT_DOCUMENT = "index.html";
14
- /**
15
- * This middleware is not directly used by the user. Create a wrapper specifying `getContent()` by the environment such as Deno or Bun.
16
- */
17
- const serveStatic = (options) => {
18
- const root = options.root ?? "./";
19
- const optionPath = options.path;
20
- const join = options.join ?? require_middleware_serve_static_path.defaultJoin;
21
- return async (c, next) => {
22
- if (c.finalized) return next();
23
- let filename;
24
- if (options.path) filename = options.path;
25
- else try {
26
- if (!options.allowPercentInPath && c.req.path.includes("%")) throw new Error();
27
- filename = require_utils_url.tryDecodeURI(c.req.path);
28
- if (/(?:^|[\/\\])\.{1,2}(?:$|[\/\\])|[\/\\]{2,}|\\/.test(filename)) throw new Error();
29
- } catch {
30
- await options.onNotFound?.(c.req.path, c);
31
- return next();
32
- }
33
- let path = join(root, !optionPath && options.rewriteRequestPath ? options.rewriteRequestPath(filename) : filename);
34
- if (options.isDir && await options.isDir(path)) path = join(path, DEFAULT_DOCUMENT);
35
- const getContent = options.getContent;
36
- let content = await getContent(path, c);
37
- if (content instanceof Response) return c.newResponse(content.body, content);
38
- if (content != null) {
39
- const mimeType = options.mimes && require_utils_mime.getMimeType(path, options.mimes) || require_utils_mime.getMimeType(path);
40
- c.header("Content-Type", mimeType || "application/octet-stream");
41
- if (options.precompressed && (!mimeType || require_utils_compress.COMPRESSIBLE_CONTENT_TYPE_REGEX.test(mimeType))) {
42
- const acceptEncodingSet = new Set(c.req.header("Accept-Encoding")?.split(",").map((encoding) => encoding.trim()));
43
- for (const encoding of ENCODINGS_ORDERED_KEYS) {
44
- if (!acceptEncodingSet.has(encoding)) continue;
45
- const compressedContent = await getContent(path + ENCODINGS[encoding], c);
46
- if (compressedContent) {
47
- content = compressedContent;
48
- c.header("Content-Encoding", encoding);
49
- c.header("Vary", "Accept-Encoding", { append: true });
50
- break;
51
- }
52
- }
53
- }
54
- await options.onFound?.(path, c);
55
- return c.body(content);
56
- }
57
- await options.onNotFound?.(path, c);
58
- await next();
59
- };
60
- };
61
- //#endregion
62
- exports.serveStatic = serveStatic;
@@ -1,17 +0,0 @@
1
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- //#region src/middleware/serve-static/path.ts
3
- /**
4
- * `defaultJoin` does not support Windows paths and always uses `/` separators.
5
- * If you need Windows path support, please use `join` exported from `node:path` etc. instead.
6
- */
7
- const defaultJoin = (...paths) => {
8
- let result = paths.filter((p) => p !== "").join("/");
9
- result = result.replace(/(?<=\/)\/+/g, "");
10
- const segments = result.split("/");
11
- const resolved = [];
12
- for (const segment of segments) if (segment === ".." && resolved.length > 0 && resolved.at(-1) !== "..") resolved.pop();
13
- else if (segment !== ".") resolved.push(segment);
14
- return resolved.join("/") || ".";
15
- };
16
- //#endregion
17
- exports.defaultJoin = defaultJoin;
@@ -1,42 +0,0 @@
1
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- //#region src/middleware/timeout/index.ts
3
- const defaultTimeoutException = new (require("../../http-exception.js")).HTTPException(504, { message: "Gateway Timeout" });
4
- /**
5
- * Timeout Middleware for Hono.
6
- *
7
- * @param {number} duration - The timeout duration in milliseconds.
8
- * @param {HTTPExceptionFunction | HTTPException} [exception=defaultTimeoutException] - The exception to throw when the timeout occurs. Can be a function that returns an HTTPException or an HTTPException object.
9
- * @returns {MiddlewareHandler} The middleware handler function.
10
- *
11
- * @example
12
- * ```ts
13
- * const app = new Hono()
14
- *
15
- * app.use(
16
- * '/long-request',
17
- * timeout(5000) // Set timeout to 5 seconds
18
- * )
19
- *
20
- * app.get('/long-request', async (c) => {
21
- * await someLongRunningFunction()
22
- * return c.text('Completed within time limit')
23
- * })
24
- * ```
25
- */
26
- const timeout = (duration, exception = defaultTimeoutException) => {
27
- return async function timeout(context, next) {
28
- let timer;
29
- const timeoutPromise = new Promise((_, reject) => {
30
- timer = setTimeout(() => {
31
- reject(typeof exception === "function" ? exception(context) : exception);
32
- }, duration);
33
- });
34
- try {
35
- await Promise.race([next(), timeoutPromise]);
36
- } finally {
37
- if (timer !== void 0) clearTimeout(timer);
38
- }
39
- };
40
- };
41
- //#endregion
42
- exports.timeout = timeout;
@@ -1,7 +0,0 @@
1
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_middleware_timing_timing = require("./timing.js");
3
- exports.endTime = require_middleware_timing_timing.endTime;
4
- exports.setMetric = require_middleware_timing_timing.setMetric;
5
- exports.startTime = require_middleware_timing_timing.startTime;
6
- exports.timing = require_middleware_timing_timing.timing;
7
- exports.wrapTime = require_middleware_timing_timing.wrapTime;
@@ -1,189 +0,0 @@
1
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- //#region src/middleware/timing/timing.ts
3
- const getTime = () => {
4
- try {
5
- return performance.now();
6
- } catch {}
7
- return Date.now();
8
- };
9
- /**
10
- * Server-Timing Middleware for Hono.
11
- *
12
- * @see {@link https://hono.dev/docs/middleware/builtin/timing}
13
- *
14
- * @param {TimingOptions} [config] - The options for the timing middleware.
15
- * @param {boolean} [config.total=true] - Show the total response time.
16
- * @param {boolean | ((c: Context) => boolean)} [config.enabled=true] - Whether timings should be added to the headers or not.
17
- * @param {string} [config.totalDescription=Total Response Time] - Description for the total response time.
18
- * @param {boolean} [config.autoEnd=true] - If `startTime()` should end automatically at the end of the request.
19
- * @param {boolean | string | ((c: Context) => boolean | string)} [config.crossOrigin=false] - The origin this timings header should be readable.
20
- * @returns {MiddlewareHandler} The middleware handler function.
21
- *
22
- * @example
23
- * ```ts
24
- * const app = new Hono()
25
- *
26
- * // add the middleware to your router
27
- * app.use(timing());
28
- *
29
- * app.get('/', async (c) => {
30
- * // add custom metrics
31
- * setMetric(c, 'region', 'europe-west3')
32
- *
33
- * // add custom metrics with timing, must be in milliseconds
34
- * setMetric(c, 'custom', 23.8, 'My custom Metric')
35
- *
36
- * // start a new timer
37
- * startTime(c, 'db');
38
- *
39
- * const data = await db.findMany(...);
40
- *
41
- * // end the timer
42
- * endTime(c, 'db');
43
- *
44
- * return c.json({ response: data });
45
- * });
46
- * ```
47
- */
48
- const timing = (config) => {
49
- const options = {
50
- total: true,
51
- enabled: true,
52
- totalDescription: "Total Response Time",
53
- autoEnd: true,
54
- crossOrigin: false,
55
- ...config
56
- };
57
- return async function timing(c, next) {
58
- const headers = [];
59
- const timers = /* @__PURE__ */ new Map();
60
- if (c.get("metric")) return await next();
61
- c.set("metric", {
62
- headers,
63
- timers
64
- });
65
- if (options.total) startTime(c, "total", options.totalDescription);
66
- await next();
67
- if (options.total) endTime(c, "total");
68
- if (options.autoEnd) timers.forEach((_, key) => {
69
- endTime(c, key);
70
- });
71
- if (typeof options.enabled === "function" ? options.enabled(c) : options.enabled) {
72
- c.res.headers.append("Server-Timing", headers.join(","));
73
- const crossOrigin = typeof options.crossOrigin === "function" ? options.crossOrigin(c) : options.crossOrigin;
74
- if (crossOrigin) c.res.headers.append("Timing-Allow-Origin", typeof crossOrigin === "string" ? crossOrigin : "*");
75
- }
76
- };
77
- };
78
- /**
79
- * Set a metric for the timing middleware.
80
- *
81
- * @param {Context} c - The context of the request.
82
- * @param {string} name - The name of the metric.
83
- * @param {number | string} [valueDescription] - The value or description of the metric.
84
- * @param {string} [description] - The description of the metric.
85
- * @param {number} [precision] - The precision of the metric value.
86
- *
87
- * @example
88
- * ```ts
89
- * setMetric(c, 'region', 'europe-west3')
90
- * setMetric(c, 'custom', 23.8, 'My custom Metric')
91
- * ```
92
- */
93
- const setMetric = (c, name, valueDescription, description, precision) => {
94
- const metrics = c.get("metric");
95
- if (!metrics) {
96
- console.warn("Metrics not initialized! Please add the `timing()` middleware to this route!");
97
- return;
98
- }
99
- if (typeof valueDescription === "number") {
100
- const dur = valueDescription.toFixed(precision || 1);
101
- const metric = description ? `${name};dur=${dur};desc="${description}"` : `${name};dur=${dur}`;
102
- metrics.headers.push(metric);
103
- } else {
104
- const metric = valueDescription ? `${name};desc="${valueDescription}"` : `${name}`;
105
- metrics.headers.push(metric);
106
- }
107
- };
108
- /**
109
- * Start a timer for the timing middleware.
110
- *
111
- * @param {Context} c - The context of the request.
112
- * @param {string} name - The name of the timer.
113
- * @param {string} [description] - The description of the timer.
114
- *
115
- * @example
116
- * ```ts
117
- * startTime(c, 'db')
118
- * ```
119
- */
120
- const startTime = (c, name, description) => {
121
- const metrics = c.get("metric");
122
- if (!metrics) {
123
- console.warn("Metrics not initialized! Please add the `timing()` middleware to this route!");
124
- return;
125
- }
126
- metrics.timers.set(name, {
127
- description,
128
- start: getTime()
129
- });
130
- };
131
- /**
132
- * End a timer for the timing middleware.
133
- *
134
- * @param {Context} c - The context of the request.
135
- * @param {string} name - The name of the timer.
136
- * @param {number} [precision] - The precision of the timer value.
137
- *
138
- * @example
139
- * ```ts
140
- * endTime(c, 'db')
141
- * ```
142
- */
143
- const endTime = (c, name, precision) => {
144
- const metrics = c.get("metric");
145
- if (!metrics) {
146
- console.warn("Metrics not initialized! Please add the `timing()` middleware to this route!");
147
- return;
148
- }
149
- const timer = metrics.timers.get(name);
150
- if (!timer) {
151
- console.warn(`Timer "${name}" does not exist!`);
152
- return;
153
- }
154
- const { description, start } = timer;
155
- const duration = getTime() - start;
156
- setMetric(c, name, duration, description, precision);
157
- metrics.timers.delete(name);
158
- };
159
- /**
160
- * Wrap a Promise to capture its duration.
161
- * @param {Context} c - The context of the request.
162
- * @param {string} name - The name of the timer.
163
- * @param {Promise<T>} callable - The Promise to time.
164
- * @param {string} [description] - The description of the timer.
165
- * @param {number} [precision] - The precision of the timer value.
166
- *
167
- * @example
168
- * ```ts
169
- * // Instead of this:
170
- * const data = await db.findMany(...);
171
- *
172
- * // do this:
173
- * const data = await wrapTime(c, 'query', db.findMany(...));
174
- * ```
175
- * */
176
- async function wrapTime(c, name, callable, description, precision) {
177
- startTime(c, name, description);
178
- try {
179
- return await callable;
180
- } finally {
181
- endTime(c, name, precision);
182
- }
183
- }
184
- //#endregion
185
- exports.endTime = endTime;
186
- exports.setMetric = setMetric;
187
- exports.startTime = startTime;
188
- exports.timing = timing;
189
- exports.wrapTime = wrapTime;
@@ -1,89 +0,0 @@
1
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- //#region src/middleware/trailing-slash/index.ts
3
- /**
4
- * Trailing Slash Middleware for Hono.
5
- *
6
- * @see {@link https://hono.dev/docs/middleware/builtin/trailing-slash}
7
- *
8
- * @param {TrimTrailingSlashOptions} options - The options for the middleware.
9
- * @returns {MiddlewareHandler} The middleware handler function.
10
- *
11
- * @example
12
- * ```ts
13
- * const app = new Hono()
14
- *
15
- * app.use(trimTrailingSlash())
16
- * app.get('/about/me/', (c) => c.text('With Trailing Slash'))
17
- * ```
18
- *
19
- * @example
20
- * ```ts
21
- * // With alwaysRedirect option for wildcard routes
22
- * const app = new Hono()
23
- *
24
- * app.use(trimTrailingSlash({ alwaysRedirect: true }))
25
- * app.get('/my-path/*', (c) => c.text('Wildcard route'))
26
- * ```
27
- */
28
- const trimTrailingSlash = (options) => {
29
- return async function trimTrailingSlash(c, next) {
30
- if (options?.alwaysRedirect) {
31
- if ((c.req.method === "GET" || c.req.method === "HEAD") && c.req.path !== "/" && c.req.path.at(-1) === "/") {
32
- const url = new URL(c.req.url);
33
- url.pathname = url.pathname.substring(0, url.pathname.length - 1);
34
- return c.redirect(url.toString(), 301);
35
- }
36
- }
37
- await next();
38
- if (!options?.alwaysRedirect && c.res.status === 404 && (c.req.method === "GET" || c.req.method === "HEAD") && c.req.path !== "/" && c.req.path.at(-1) === "/") {
39
- const url = new URL(c.req.url);
40
- url.pathname = url.pathname.substring(0, url.pathname.length - 1);
41
- c.res = c.redirect(url.toString(), 301);
42
- }
43
- };
44
- };
45
- /**
46
- * Append trailing slash middleware for Hono.
47
- * Append a trailing slash to the URL if it doesn't have one. For example, `/path/to/page` will be redirected to `/path/to/page/`.
48
- *
49
- * @see {@link https://hono.dev/docs/middleware/builtin/trailing-slash}
50
- *
51
- * @param {AppendTrailingSlashOptions} options - The options for the middleware.
52
- * @returns {MiddlewareHandler} The middleware handler function.
53
- *
54
- * @example
55
- * ```ts
56
- * const app = new Hono()
57
- *
58
- * app.use(appendTrailingSlash())
59
- * ```
60
- *
61
- * @example
62
- * ```ts
63
- * // With alwaysRedirect option for wildcard routes
64
- * const app = new Hono()
65
- *
66
- * app.use(appendTrailingSlash({ alwaysRedirect: true }))
67
- * app.get('/my-path/*', (c) => c.text('Wildcard route'))
68
- * ```
69
- */
70
- const appendTrailingSlash = (options) => {
71
- return async function appendTrailingSlash(c, next) {
72
- if (options?.alwaysRedirect) {
73
- if ((c.req.method === "GET" || c.req.method === "HEAD") && c.req.path.at(-1) !== "/" && !options.skip?.(c.req.path)) {
74
- const url = new URL(c.req.url);
75
- url.pathname += "/";
76
- return c.redirect(url.toString(), 301);
77
- }
78
- }
79
- await next();
80
- if (!options?.alwaysRedirect && c.res.status === 404 && (c.req.method === "GET" || c.req.method === "HEAD") && c.req.path.at(-1) !== "/" && !options?.skip?.(c.req.path)) {
81
- const url = new URL(c.req.url);
82
- url.pathname += "/";
83
- c.res = c.redirect(url.toString(), 301);
84
- }
85
- };
86
- };
87
- //#endregion
88
- exports.appendTrailingSlash = appendTrailingSlash;
89
- exports.trimTrailingSlash = trimTrailingSlash;
@@ -1,3 +0,0 @@
1
- {
2
- "type": "commonjs"
3
- }
@@ -1,19 +0,0 @@
1
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_hono_base = require("../hono-base.js");
3
- const require_router_smart_router_router = require("../router/smart-router/router.js");
4
- const require_router_trie_router_router = require("../router/trie-router/router.js");
5
- require("../router/trie-router/index.js");
6
- const require_router_linear_router_router = require("../router/linear-router/router.js");
7
- //#region src/preset/quick.ts
8
- /**
9
- * @module
10
- * The preset that uses `LinearRouter`.
11
- */
12
- var Hono = class extends require_hono_base.HonoBase {
13
- constructor(options = {}) {
14
- super(options);
15
- this.router = new require_router_smart_router_router.SmartRouter({ routers: [new require_router_linear_router_router.LinearRouter(), new require_router_trie_router_router.TrieRouter()] });
16
- }
17
- };
18
- //#endregion
19
- exports.Hono = Hono;
@@ -1,16 +0,0 @@
1
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_hono_base = require("../hono-base.js");
3
- const require_router_pattern_router_router = require("../router/pattern-router/router.js");
4
- //#region src/preset/tiny.ts
5
- /**
6
- * @module
7
- * The preset that uses `PatternRouter`.
8
- */
9
- var Hono = class extends require_hono_base.HonoBase {
10
- constructor(options = {}) {
11
- super(options);
12
- this.router = new require_router_pattern_router_router.PatternRouter();
13
- }
14
- };
15
- //#endregion
16
- exports.Hono = Hono;
@@ -1,5 +0,0 @@
1
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- //#region src/request/constants.ts
3
- const GET_MATCH_RESULT = Symbol();
4
- //#endregion
5
- exports.GET_MATCH_RESULT = GET_MATCH_RESULT;