@depup/hono 4.12.8-depup.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 (564) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +25 -0
  3. package/changes.json +5 -0
  4. package/dist/adapter/aws-lambda/conninfo.js +24 -0
  5. package/dist/adapter/aws-lambda/handler.js +366 -0
  6. package/dist/adapter/aws-lambda/index.js +9 -0
  7. package/dist/adapter/aws-lambda/types.js +0 -0
  8. package/dist/adapter/bun/conninfo.js +27 -0
  9. package/dist/adapter/bun/index.js +16 -0
  10. package/dist/adapter/bun/serve-static.js +30 -0
  11. package/dist/adapter/bun/server.js +5 -0
  12. package/dist/adapter/bun/ssg.js +17 -0
  13. package/dist/adapter/bun/websocket.js +71 -0
  14. package/dist/adapter/cloudflare-pages/conninfo.js +9 -0
  15. package/dist/adapter/cloudflare-pages/handler.js +67 -0
  16. package/dist/adapter/cloudflare-pages/index.js +9 -0
  17. package/dist/adapter/cloudflare-workers/conninfo.js +9 -0
  18. package/dist/adapter/cloudflare-workers/index.js +9 -0
  19. package/dist/adapter/cloudflare-workers/serve-static-module.js +8 -0
  20. package/dist/adapter/cloudflare-workers/serve-static.js +22 -0
  21. package/dist/adapter/cloudflare-workers/utils.js +35 -0
  22. package/dist/adapter/cloudflare-workers/websocket.js +41 -0
  23. package/dist/adapter/deno/conninfo.js +14 -0
  24. package/dist/adapter/deno/deno.d.js +0 -0
  25. package/dist/adapter/deno/index.js +12 -0
  26. package/dist/adapter/deno/serve-static.js +40 -0
  27. package/dist/adapter/deno/ssg.js +18 -0
  28. package/dist/adapter/deno/websocket.js +28 -0
  29. package/dist/adapter/lambda-edge/conninfo.js +9 -0
  30. package/dist/adapter/lambda-edge/handler.js +80 -0
  31. package/dist/adapter/lambda-edge/index.js +7 -0
  32. package/dist/adapter/netlify/conninfo.js +9 -0
  33. package/dist/adapter/netlify/handler.js +9 -0
  34. package/dist/adapter/netlify/index.js +2 -0
  35. package/dist/adapter/netlify/mod.js +7 -0
  36. package/dist/adapter/service-worker/handler.js +20 -0
  37. package/dist/adapter/service-worker/index.js +11 -0
  38. package/dist/adapter/service-worker/types.js +0 -0
  39. package/dist/adapter/vercel/conninfo.js +10 -0
  40. package/dist/adapter/vercel/handler.js +7 -0
  41. package/dist/adapter/vercel/index.js +7 -0
  42. package/dist/cjs/adapter/aws-lambda/conninfo.js +46 -0
  43. package/dist/cjs/adapter/aws-lambda/handler.js +397 -0
  44. package/dist/cjs/adapter/aws-lambda/index.js +34 -0
  45. package/dist/cjs/adapter/aws-lambda/types.js +15 -0
  46. package/dist/cjs/adapter/bun/conninfo.js +49 -0
  47. package/dist/cjs/adapter/bun/index.js +45 -0
  48. package/dist/cjs/adapter/bun/serve-static.js +52 -0
  49. package/dist/cjs/adapter/bun/server.js +27 -0
  50. package/dist/cjs/adapter/bun/ssg.js +40 -0
  51. package/dist/cjs/adapter/bun/websocket.js +96 -0
  52. package/dist/cjs/adapter/cloudflare-pages/conninfo.js +31 -0
  53. package/dist/cjs/adapter/cloudflare-pages/handler.js +91 -0
  54. package/dist/cjs/adapter/cloudflare-pages/index.js +34 -0
  55. package/dist/cjs/adapter/cloudflare-workers/conninfo.js +31 -0
  56. package/dist/cjs/adapter/cloudflare-workers/index.js +33 -0
  57. package/dist/cjs/adapter/cloudflare-workers/serve-static-module.js +30 -0
  58. package/dist/cjs/adapter/cloudflare-workers/serve-static.js +44 -0
  59. package/dist/cjs/adapter/cloudflare-workers/utils.js +57 -0
  60. package/dist/cjs/adapter/cloudflare-workers/websocket.js +63 -0
  61. package/dist/cjs/adapter/deno/conninfo.js +36 -0
  62. package/dist/cjs/adapter/deno/deno.d.js +0 -0
  63. package/dist/cjs/adapter/deno/index.js +38 -0
  64. package/dist/cjs/adapter/deno/serve-static.js +62 -0
  65. package/dist/cjs/adapter/deno/ssg.js +41 -0
  66. package/dist/cjs/adapter/deno/websocket.js +50 -0
  67. package/dist/cjs/adapter/lambda-edge/conninfo.js +31 -0
  68. package/dist/cjs/adapter/lambda-edge/handler.js +114 -0
  69. package/dist/cjs/adapter/lambda-edge/index.js +30 -0
  70. package/dist/cjs/adapter/netlify/conninfo.js +31 -0
  71. package/dist/cjs/adapter/netlify/handler.js +31 -0
  72. package/dist/cjs/adapter/netlify/index.js +21 -0
  73. package/dist/cjs/adapter/netlify/mod.js +30 -0
  74. package/dist/cjs/adapter/service-worker/handler.js +42 -0
  75. package/dist/cjs/adapter/service-worker/index.js +34 -0
  76. package/dist/cjs/adapter/service-worker/types.js +15 -0
  77. package/dist/cjs/adapter/vercel/conninfo.js +32 -0
  78. package/dist/cjs/adapter/vercel/handler.js +29 -0
  79. package/dist/cjs/adapter/vercel/index.js +30 -0
  80. package/dist/cjs/client/client.js +195 -0
  81. package/dist/cjs/client/fetch-result-please.js +85 -0
  82. package/dist/cjs/client/index.js +32 -0
  83. package/dist/cjs/client/types.js +15 -0
  84. package/dist/cjs/client/utils.js +105 -0
  85. package/dist/cjs/compose.js +68 -0
  86. package/dist/cjs/context.js +435 -0
  87. package/dist/cjs/helper/accepts/accepts.js +43 -0
  88. package/dist/cjs/helper/accepts/index.js +27 -0
  89. package/dist/cjs/helper/adapter/index.js +81 -0
  90. package/dist/cjs/helper/conninfo/index.js +15 -0
  91. package/dist/cjs/helper/conninfo/types.js +15 -0
  92. package/dist/cjs/helper/cookie/index.js +130 -0
  93. package/dist/cjs/helper/css/common.js +222 -0
  94. package/dist/cjs/helper/css/index.js +142 -0
  95. package/dist/cjs/helper/dev/index.js +79 -0
  96. package/dist/cjs/helper/factory/index.js +54 -0
  97. package/dist/cjs/helper/html/index.js +64 -0
  98. package/dist/cjs/helper/proxy/index.js +111 -0
  99. package/dist/cjs/helper/route/index.js +71 -0
  100. package/dist/cjs/helper/ssg/index.js +43 -0
  101. package/dist/cjs/helper/ssg/middleware.js +73 -0
  102. package/dist/cjs/helper/ssg/plugins.js +70 -0
  103. package/dist/cjs/helper/ssg/ssg.js +316 -0
  104. package/dist/cjs/helper/ssg/utils.js +84 -0
  105. package/dist/cjs/helper/streaming/index.js +35 -0
  106. package/dist/cjs/helper/streaming/sse.js +90 -0
  107. package/dist/cjs/helper/streaming/stream.js +56 -0
  108. package/dist/cjs/helper/streaming/text.js +34 -0
  109. package/dist/cjs/helper/streaming/utils.js +35 -0
  110. package/dist/cjs/helper/testing/index.js +33 -0
  111. package/dist/cjs/helper/websocket/index.js +81 -0
  112. package/dist/cjs/hono-base.js +400 -0
  113. package/dist/cjs/hono.js +43 -0
  114. package/dist/cjs/http-exception.js +57 -0
  115. package/dist/cjs/index.js +27 -0
  116. package/dist/cjs/jsx/base.js +374 -0
  117. package/dist/cjs/jsx/children.js +44 -0
  118. package/dist/cjs/jsx/components.js +201 -0
  119. package/dist/cjs/jsx/constants.js +42 -0
  120. package/dist/cjs/jsx/context.js +62 -0
  121. package/dist/cjs/jsx/dom/client.js +76 -0
  122. package/dist/cjs/jsx/dom/components.js +55 -0
  123. package/dist/cjs/jsx/dom/context.js +71 -0
  124. package/dist/cjs/jsx/dom/css.js +161 -0
  125. package/dist/cjs/jsx/dom/hooks/index.js +74 -0
  126. package/dist/cjs/jsx/dom/index.js +181 -0
  127. package/dist/cjs/jsx/dom/intrinsic-element/components.js +399 -0
  128. package/dist/cjs/jsx/dom/jsx-dev-runtime.js +52 -0
  129. package/dist/cjs/jsx/dom/jsx-runtime.js +32 -0
  130. package/dist/cjs/jsx/dom/render.js +619 -0
  131. package/dist/cjs/jsx/dom/server.js +67 -0
  132. package/dist/cjs/jsx/dom/utils.js +32 -0
  133. package/dist/cjs/jsx/hooks/index.js +370 -0
  134. package/dist/cjs/jsx/index.js +138 -0
  135. package/dist/cjs/jsx/intrinsic-element/common.js +50 -0
  136. package/dist/cjs/jsx/intrinsic-element/components.js +189 -0
  137. package/dist/cjs/jsx/intrinsic-elements.js +15 -0
  138. package/dist/cjs/jsx/jsx-dev-runtime.js +41 -0
  139. package/dist/cjs/jsx/jsx-runtime.js +68 -0
  140. package/dist/cjs/jsx/streaming.js +177 -0
  141. package/dist/cjs/jsx/types.js +15 -0
  142. package/dist/cjs/jsx/utils.js +50 -0
  143. package/dist/cjs/middleware/basic-auth/index.js +88 -0
  144. package/dist/cjs/middleware/bearer-auth/index.js +114 -0
  145. package/dist/cjs/middleware/body-limit/index.js +84 -0
  146. package/dist/cjs/middleware/cache/index.js +111 -0
  147. package/dist/cjs/middleware/combine/index.js +101 -0
  148. package/dist/cjs/middleware/compress/index.js +61 -0
  149. package/dist/cjs/middleware/context-storage/index.js +47 -0
  150. package/dist/cjs/middleware/cors/index.js +109 -0
  151. package/dist/cjs/middleware/csrf/index.js +77 -0
  152. package/dist/cjs/middleware/etag/digest.js +55 -0
  153. package/dist/cjs/middleware/etag/index.js +95 -0
  154. package/dist/cjs/middleware/ip-restriction/index.js +124 -0
  155. package/dist/cjs/middleware/jsx-renderer/index.js +82 -0
  156. package/dist/cjs/middleware/jwk/index.js +27 -0
  157. package/dist/cjs/middleware/jwk/jwk.js +134 -0
  158. package/dist/cjs/middleware/jwt/index.js +38 -0
  159. package/dist/cjs/middleware/jwt/jwt.js +140 -0
  160. package/dist/cjs/middleware/language/index.js +35 -0
  161. package/dist/cjs/middleware/language/language.js +221 -0
  162. package/dist/cjs/middleware/logger/index.js +72 -0
  163. package/dist/cjs/middleware/method-override/index.js +104 -0
  164. package/dist/cjs/middleware/powered-by/index.js +32 -0
  165. package/dist/cjs/middleware/pretty-json/index.js +37 -0
  166. package/dist/cjs/middleware/request-id/index.js +27 -0
  167. package/dist/cjs/middleware/request-id/request-id.js +43 -0
  168. package/dist/cjs/middleware/secure-headers/index.js +29 -0
  169. package/dist/cjs/middleware/secure-headers/permissions-policy.js +15 -0
  170. package/dist/cjs/middleware/secure-headers/secure-headers.js +189 -0
  171. package/dist/cjs/middleware/serve-static/index.js +99 -0
  172. package/dist/cjs/middleware/serve-static/path.js +40 -0
  173. package/dist/cjs/middleware/timeout/index.js +47 -0
  174. package/dist/cjs/middleware/timing/index.js +35 -0
  175. package/dist/cjs/middleware/timing/timing.js +128 -0
  176. package/dist/cjs/middleware/trailing-slash/index.js +62 -0
  177. package/dist/cjs/package.json +3 -0
  178. package/dist/cjs/preset/quick.js +38 -0
  179. package/dist/cjs/preset/tiny.js +34 -0
  180. package/dist/cjs/request/constants.js +27 -0
  181. package/dist/cjs/request.js +324 -0
  182. package/dist/cjs/router/linear-router/index.js +27 -0
  183. package/dist/cjs/router/linear-router/router.js +140 -0
  184. package/dist/cjs/router/pattern-router/index.js +27 -0
  185. package/dist/cjs/router/pattern-router/router.js +70 -0
  186. package/dist/cjs/router/reg-exp-router/index.js +34 -0
  187. package/dist/cjs/router/reg-exp-router/matcher.js +48 -0
  188. package/dist/cjs/router/reg-exp-router/node.js +134 -0
  189. package/dist/cjs/router/reg-exp-router/prepared-router.js +166 -0
  190. package/dist/cjs/router/reg-exp-router/router.js +208 -0
  191. package/dist/cjs/router/reg-exp-router/trie.js +81 -0
  192. package/dist/cjs/router/smart-router/index.js +27 -0
  193. package/dist/cjs/router/smart-router/router.js +80 -0
  194. package/dist/cjs/router/trie-router/index.js +27 -0
  195. package/dist/cjs/router/trie-router/node.js +201 -0
  196. package/dist/cjs/router/trie-router/router.js +48 -0
  197. package/dist/cjs/router.js +40 -0
  198. package/dist/cjs/types.js +28 -0
  199. package/dist/cjs/utils/accept.js +245 -0
  200. package/dist/cjs/utils/basic-auth.js +45 -0
  201. package/dist/cjs/utils/body.js +97 -0
  202. package/dist/cjs/utils/buffer.js +102 -0
  203. package/dist/cjs/utils/color.js +48 -0
  204. package/dist/cjs/utils/compress.js +27 -0
  205. package/dist/cjs/utils/concurrent.js +61 -0
  206. package/dist/cjs/utils/constants.js +27 -0
  207. package/dist/cjs/utils/cookie.js +177 -0
  208. package/dist/cjs/utils/crypto.js +69 -0
  209. package/dist/cjs/utils/encode.js +54 -0
  210. package/dist/cjs/utils/filepath.js +58 -0
  211. package/dist/cjs/utils/handler.js +36 -0
  212. package/dist/cjs/utils/headers.js +15 -0
  213. package/dist/cjs/utils/html.js +150 -0
  214. package/dist/cjs/utils/http-status.js +15 -0
  215. package/dist/cjs/utils/ipaddr.js +129 -0
  216. package/dist/cjs/utils/jwt/index.js +28 -0
  217. package/dist/cjs/utils/jwt/jwa.js +42 -0
  218. package/dist/cjs/utils/jwt/jws.js +215 -0
  219. package/dist/cjs/utils/jwt/jwt.js +213 -0
  220. package/dist/cjs/utils/jwt/types.js +161 -0
  221. package/dist/cjs/utils/jwt/utf8.js +30 -0
  222. package/dist/cjs/utils/mime.js +108 -0
  223. package/dist/cjs/utils/stream.js +101 -0
  224. package/dist/cjs/utils/types.js +15 -0
  225. package/dist/cjs/utils/url.js +256 -0
  226. package/dist/cjs/validator/index.js +27 -0
  227. package/dist/cjs/validator/utils.js +15 -0
  228. package/dist/cjs/validator/validator.js +108 -0
  229. package/dist/client/client.js +180 -0
  230. package/dist/client/fetch-result-please.js +62 -0
  231. package/dist/client/index.js +8 -0
  232. package/dist/client/types.js +0 -0
  233. package/dist/client/utils.js +76 -0
  234. package/dist/compose.js +46 -0
  235. package/dist/context.js +412 -0
  236. package/dist/helper/accepts/accepts.js +20 -0
  237. package/dist/helper/accepts/index.js +5 -0
  238. package/dist/helper/adapter/index.js +56 -0
  239. package/dist/helper/conninfo/index.js +0 -0
  240. package/dist/helper/conninfo/types.js +0 -0
  241. package/dist/helper/cookie/index.js +102 -0
  242. package/dist/helper/css/common.js +185 -0
  243. package/dist/helper/css/index.js +125 -0
  244. package/dist/helper/dev/index.js +55 -0
  245. package/dist/helper/factory/index.js +30 -0
  246. package/dist/helper/html/index.js +41 -0
  247. package/dist/helper/proxy/index.js +89 -0
  248. package/dist/helper/route/index.js +46 -0
  249. package/dist/helper/ssg/index.js +19 -0
  250. package/dist/helper/ssg/middleware.js +45 -0
  251. package/dist/helper/ssg/plugins.js +47 -0
  252. package/dist/helper/ssg/ssg.js +287 -0
  253. package/dist/helper/ssg/utils.js +59 -0
  254. package/dist/helper/streaming/index.js +10 -0
  255. package/dist/helper/streaming/sse.js +67 -0
  256. package/dist/helper/streaming/stream.js +34 -0
  257. package/dist/helper/streaming/text.js +12 -0
  258. package/dist/helper/streaming/utils.js +13 -0
  259. package/dist/helper/testing/index.js +11 -0
  260. package/dist/helper/websocket/index.js +57 -0
  261. package/dist/hono-base.js +378 -0
  262. package/dist/hono.js +21 -0
  263. package/dist/http-exception.js +35 -0
  264. package/dist/index.js +5 -0
  265. package/dist/jsx/base.js +331 -0
  266. package/dist/jsx/children.js +21 -0
  267. package/dist/jsx/components.js +178 -0
  268. package/dist/jsx/constants.js +15 -0
  269. package/dist/jsx/context.js +38 -0
  270. package/dist/jsx/dom/client.js +53 -0
  271. package/dist/jsx/dom/components.js +32 -0
  272. package/dist/jsx/dom/context.js +48 -0
  273. package/dist/jsx/dom/css.js +143 -0
  274. package/dist/jsx/dom/hooks/index.js +48 -0
  275. package/dist/jsx/dom/index.js +142 -0
  276. package/dist/jsx/dom/intrinsic-element/components.js +374 -0
  277. package/dist/jsx/dom/jsx-dev-runtime.js +19 -0
  278. package/dist/jsx/dom/jsx-runtime.js +8 -0
  279. package/dist/jsx/dom/render.js +595 -0
  280. package/dist/jsx/dom/server.js +33 -0
  281. package/dist/jsx/dom/utils.js +10 -0
  282. package/dist/jsx/hooks/index.js +328 -0
  283. package/dist/jsx/index.js +103 -0
  284. package/dist/jsx/intrinsic-element/common.js +24 -0
  285. package/dist/jsx/intrinsic-element/components.js +165 -0
  286. package/dist/jsx/intrinsic-elements.js +0 -0
  287. package/dist/jsx/jsx-dev-runtime.js +18 -0
  288. package/dist/jsx/jsx-runtime.js +41 -0
  289. package/dist/jsx/streaming.js +153 -0
  290. package/dist/jsx/types.js +0 -0
  291. package/dist/jsx/utils.js +27 -0
  292. package/dist/middleware/basic-auth/index.js +66 -0
  293. package/dist/middleware/bearer-auth/index.js +92 -0
  294. package/dist/middleware/body-limit/index.js +62 -0
  295. package/dist/middleware/cache/index.js +89 -0
  296. package/dist/middleware/combine/index.js +77 -0
  297. package/dist/middleware/compress/index.js +39 -0
  298. package/dist/middleware/context-storage/index.js +23 -0
  299. package/dist/middleware/cors/index.js +87 -0
  300. package/dist/middleware/csrf/index.js +55 -0
  301. package/dist/middleware/etag/digest.js +33 -0
  302. package/dist/middleware/etag/index.js +72 -0
  303. package/dist/middleware/ip-restriction/index.js +107 -0
  304. package/dist/middleware/jsx-renderer/index.js +58 -0
  305. package/dist/middleware/jwk/index.js +5 -0
  306. package/dist/middleware/jwk/jwk.js +112 -0
  307. package/dist/middleware/jwt/index.js +11 -0
  308. package/dist/middleware/jwt/jwt.js +114 -0
  309. package/dist/middleware/language/index.js +15 -0
  310. package/dist/middleware/language/language.js +190 -0
  311. package/dist/middleware/logger/index.js +44 -0
  312. package/dist/middleware/method-override/index.js +82 -0
  313. package/dist/middleware/powered-by/index.js +10 -0
  314. package/dist/middleware/pretty-json/index.js +15 -0
  315. package/dist/middleware/request-id/index.js +5 -0
  316. package/dist/middleware/request-id/request-id.js +21 -0
  317. package/dist/middleware/secure-headers/index.js +6 -0
  318. package/dist/middleware/secure-headers/permissions-policy.js +0 -0
  319. package/dist/middleware/secure-headers/secure-headers.js +166 -0
  320. package/dist/middleware/serve-static/index.js +77 -0
  321. package/dist/middleware/serve-static/path.js +18 -0
  322. package/dist/middleware/timeout/index.js +25 -0
  323. package/dist/middleware/timing/index.js +9 -0
  324. package/dist/middleware/timing/timing.js +102 -0
  325. package/dist/middleware/trailing-slash/index.js +39 -0
  326. package/dist/preset/quick.js +16 -0
  327. package/dist/preset/tiny.js +12 -0
  328. package/dist/request/constants.js +5 -0
  329. package/dist/request.js +301 -0
  330. package/dist/router/linear-router/index.js +5 -0
  331. package/dist/router/linear-router/router.js +118 -0
  332. package/dist/router/pattern-router/index.js +5 -0
  333. package/dist/router/pattern-router/router.js +48 -0
  334. package/dist/router/reg-exp-router/index.js +9 -0
  335. package/dist/router/reg-exp-router/matcher.js +25 -0
  336. package/dist/router/reg-exp-router/node.js +111 -0
  337. package/dist/router/reg-exp-router/prepared-router.js +142 -0
  338. package/dist/router/reg-exp-router/router.js +190 -0
  339. package/dist/router/reg-exp-router/trie.js +59 -0
  340. package/dist/router/smart-router/index.js +5 -0
  341. package/dist/router/smart-router/router.js +58 -0
  342. package/dist/router/trie-router/index.js +5 -0
  343. package/dist/router/trie-router/node.js +179 -0
  344. package/dist/router/trie-router/router.js +26 -0
  345. package/dist/router.js +14 -0
  346. package/dist/tsconfig.build.tsbuildinfo +1 -0
  347. package/dist/types/adapter/aws-lambda/conninfo.d.ts +27 -0
  348. package/dist/types/adapter/aws-lambda/handler.d.ts +184 -0
  349. package/dist/types/adapter/aws-lambda/index.d.ts +8 -0
  350. package/dist/types/adapter/aws-lambda/types.d.ts +144 -0
  351. package/dist/types/adapter/bun/conninfo.d.ts +7 -0
  352. package/dist/types/adapter/bun/index.d.ts +10 -0
  353. package/dist/types/adapter/bun/serve-static.d.ts +3 -0
  354. package/dist/types/adapter/bun/server.d.ts +12 -0
  355. package/dist/types/adapter/bun/ssg.d.ts +13 -0
  356. package/dist/types/adapter/bun/websocket.d.ts +39 -0
  357. package/dist/types/adapter/cloudflare-pages/conninfo.d.ts +21 -0
  358. package/dist/types/adapter/cloudflare-pages/handler.d.ts +33 -0
  359. package/dist/types/adapter/cloudflare-pages/index.d.ts +7 -0
  360. package/dist/types/adapter/cloudflare-workers/conninfo.d.ts +2 -0
  361. package/dist/types/adapter/cloudflare-workers/index.d.ts +7 -0
  362. package/dist/types/adapter/cloudflare-workers/serve-static-module.d.ts +4 -0
  363. package/dist/types/adapter/cloudflare-workers/serve-static.d.ts +16 -0
  364. package/dist/types/adapter/cloudflare-workers/utils.d.ts +5 -0
  365. package/dist/types/adapter/cloudflare-workers/websocket.d.ts +2 -0
  366. package/dist/types/adapter/deno/conninfo.d.ts +7 -0
  367. package/dist/types/adapter/deno/index.d.ts +8 -0
  368. package/dist/types/adapter/deno/serve-static.d.ts +3 -0
  369. package/dist/types/adapter/deno/ssg.d.ts +13 -0
  370. package/dist/types/adapter/deno/websocket.d.ts +2 -0
  371. package/dist/types/adapter/lambda-edge/conninfo.d.ts +2 -0
  372. package/dist/types/adapter/lambda-edge/handler.d.ts +87 -0
  373. package/dist/types/adapter/lambda-edge/index.d.ts +7 -0
  374. package/dist/types/adapter/netlify/conninfo.d.ts +21 -0
  375. package/dist/types/adapter/netlify/handler.d.ts +2 -0
  376. package/dist/types/adapter/netlify/index.d.ts +5 -0
  377. package/dist/types/adapter/netlify/mod.d.ts +2 -0
  378. package/dist/types/adapter/service-worker/handler.d.ts +16 -0
  379. package/dist/types/adapter/service-worker/index.d.ts +28 -0
  380. package/dist/types/adapter/service-worker/types.d.ts +12 -0
  381. package/dist/types/adapter/vercel/conninfo.d.ts +2 -0
  382. package/dist/types/adapter/vercel/handler.d.ts +2 -0
  383. package/dist/types/adapter/vercel/index.d.ts +6 -0
  384. package/dist/types/client/client.d.ts +4 -0
  385. package/dist/types/client/fetch-result-please.d.ts +35 -0
  386. package/dist/types/client/index.d.ts +7 -0
  387. package/dist/types/client/types.d.ts +209 -0
  388. package/dist/types/client/utils.d.ts +18 -0
  389. package/dist/types/compose.d.ts +14 -0
  390. package/dist/types/context.d.ts +455 -0
  391. package/dist/types/helper/accepts/accepts.d.ts +30 -0
  392. package/dist/types/helper/accepts/index.d.ts +5 -0
  393. package/dist/types/helper/adapter/index.d.ts +12 -0
  394. package/dist/types/helper/conninfo/index.d.ts +5 -0
  395. package/dist/types/helper/conninfo/types.d.ts +36 -0
  396. package/dist/types/helper/cookie/index.d.ts +24 -0
  397. package/dist/types/helper/css/common.d.ts +42 -0
  398. package/dist/types/helper/css/index.d.ts +73 -0
  399. package/dist/types/helper/dev/index.d.ts +20 -0
  400. package/dist/types/helper/factory/index.d.ts +82 -0
  401. package/dist/types/helper/html/index.d.ts +8 -0
  402. package/dist/types/helper/proxy/index.d.ts +72 -0
  403. package/dist/types/helper/route/index.d.ts +75 -0
  404. package/dist/types/helper/ssg/index.d.ts +7 -0
  405. package/dist/types/helper/ssg/middleware.d.ts +44 -0
  406. package/dist/types/helper/ssg/plugins.d.ts +27 -0
  407. package/dist/types/helper/ssg/ssg.d.ts +91 -0
  408. package/dist/types/helper/ssg/utils.d.ts +15 -0
  409. package/dist/types/helper/streaming/index.d.ts +8 -0
  410. package/dist/types/helper/streaming/sse.d.ts +13 -0
  411. package/dist/types/helper/streaming/stream.d.ts +3 -0
  412. package/dist/types/helper/streaming/text.d.ts +3 -0
  413. package/dist/types/helper/streaming/utils.d.ts +1 -0
  414. package/dist/types/helper/testing/index.d.ts +12 -0
  415. package/dist/types/helper/websocket/index.d.ts +69 -0
  416. package/dist/types/hono-base.d.ts +220 -0
  417. package/dist/types/hono.d.ts +19 -0
  418. package/dist/types/http-exception.d.ts +59 -0
  419. package/dist/types/index.d.ts +36 -0
  420. package/dist/types/jsx/base.d.ts +58 -0
  421. package/dist/types/jsx/children.d.ts +9 -0
  422. package/dist/types/jsx/components.d.ts +15 -0
  423. package/dist/types/jsx/constants.d.ts +6 -0
  424. package/dist/types/jsx/context.d.ts +12 -0
  425. package/dist/types/jsx/dom/client.d.ts +31 -0
  426. package/dist/types/jsx/dom/components.d.ts +10 -0
  427. package/dist/types/jsx/dom/context.d.ts +3 -0
  428. package/dist/types/jsx/dom/css.d.ts +77 -0
  429. package/dist/types/jsx/dom/hooks/index.d.ts +39 -0
  430. package/dist/types/jsx/dom/index.d.ts +88 -0
  431. package/dist/types/jsx/dom/intrinsic-element/components.d.ts +16 -0
  432. package/dist/types/jsx/dom/jsx-dev-runtime.d.ts +8 -0
  433. package/dist/types/jsx/dom/jsx-runtime.d.ts +7 -0
  434. package/dist/types/jsx/dom/render.d.ts +73 -0
  435. package/dist/types/jsx/dom/server.d.ts +106 -0
  436. package/dist/types/jsx/dom/utils.d.ts +1 -0
  437. package/dist/types/jsx/hooks/index.d.ts +45 -0
  438. package/dist/types/jsx/index.d.ts +75 -0
  439. package/dist/types/jsx/intrinsic-element/common.d.ts +6 -0
  440. package/dist/types/jsx/intrinsic-element/components.d.ts +13 -0
  441. package/dist/types/jsx/intrinsic-elements.d.ts +722 -0
  442. package/dist/types/jsx/jsx-dev-runtime.d.ts +8 -0
  443. package/dist/types/jsx/jsx-runtime.d.ts +12 -0
  444. package/dist/types/jsx/streaming.d.ts +36 -0
  445. package/dist/types/jsx/types.d.ts +35 -0
  446. package/dist/types/jsx/utils.d.ts +2 -0
  447. package/dist/types/middleware/basic-auth/index.d.ts +75 -0
  448. package/dist/types/middleware/bearer-auth/index.d.ts +91 -0
  449. package/dist/types/middleware/body-limit/index.d.ts +45 -0
  450. package/dist/types/middleware/cache/index.d.ts +41 -0
  451. package/dist/types/middleware/combine/index.d.ts +85 -0
  452. package/dist/types/middleware/compress/index.d.ts +29 -0
  453. package/dist/types/middleware/context-storage/index.d.ts +40 -0
  454. package/dist/types/middleware/cors/index.d.ts +55 -0
  455. package/dist/types/middleware/csrf/index.d.ts +78 -0
  456. package/dist/types/middleware/etag/digest.d.ts +1 -0
  457. package/dist/types/middleware/etag/index.d.ts +42 -0
  458. package/dist/types/middleware/ip-restriction/index.d.ts +31 -0
  459. package/dist/types/middleware/jsx-renderer/index.d.ts +77 -0
  460. package/dist/types/middleware/jwk/index.d.ts +1 -0
  461. package/dist/types/middleware/jwk/jwk.d.ts +54 -0
  462. package/dist/types/middleware/jwt/index.d.ts +8 -0
  463. package/dist/types/middleware/jwt/jwt.d.ts +67 -0
  464. package/dist/types/middleware/language/index.d.ts +7 -0
  465. package/dist/types/middleware/language/language.d.ts +102 -0
  466. package/dist/types/middleware/logger/index.d.ts +24 -0
  467. package/dist/types/middleware/method-override/index.d.ts +48 -0
  468. package/dist/types/middleware/powered-by/index.d.ts +29 -0
  469. package/dist/types/middleware/pretty-json/index.d.ts +42 -0
  470. package/dist/types/middleware/request-id/index.d.ts +7 -0
  471. package/dist/types/middleware/request-id/request-id.d.ts +37 -0
  472. package/dist/types/middleware/secure-headers/index.d.ts +8 -0
  473. package/dist/types/middleware/secure-headers/permissions-policy.d.ts +14 -0
  474. package/dist/types/middleware/secure-headers/secure-headers.d.ts +109 -0
  475. package/dist/types/middleware/serve-static/index.d.ts +31 -0
  476. package/dist/types/middleware/serve-static/path.d.ts +5 -0
  477. package/dist/types/middleware/timeout/index.d.ts +31 -0
  478. package/dist/types/middleware/timing/index.d.ts +7 -0
  479. package/dist/types/middleware/timing/timing.d.ts +129 -0
  480. package/dist/types/middleware/trailing-slash/index.d.ts +78 -0
  481. package/dist/types/package.json +3 -0
  482. package/dist/types/preset/quick.d.ts +10 -0
  483. package/dist/types/preset/tiny.d.ts +10 -0
  484. package/dist/types/request/constants.d.ts +1 -0
  485. package/dist/types/request.d.ts +313 -0
  486. package/dist/types/router/linear-router/index.d.ts +5 -0
  487. package/dist/types/router/linear-router/router.d.ts +7 -0
  488. package/dist/types/router/pattern-router/index.d.ts +5 -0
  489. package/dist/types/router/pattern-router/router.d.ts +7 -0
  490. package/dist/types/router/reg-exp-router/index.d.ts +6 -0
  491. package/dist/types/router/reg-exp-router/matcher.d.ts +7 -0
  492. package/dist/types/router/reg-exp-router/node.d.ts +10 -0
  493. package/dist/types/router/reg-exp-router/prepared-router.d.ts +17 -0
  494. package/dist/types/router/reg-exp-router/router.d.ts +11 -0
  495. package/dist/types/router/reg-exp-router/trie.d.ts +7 -0
  496. package/dist/types/router/smart-router/index.d.ts +5 -0
  497. package/dist/types/router/smart-router/router.d.ts +11 -0
  498. package/dist/types/router/trie-router/index.d.ts +5 -0
  499. package/dist/types/router/trie-router/node.d.ts +7 -0
  500. package/dist/types/router/trie-router/router.d.ts +8 -0
  501. package/dist/types/router.d.ts +97 -0
  502. package/dist/types/types.d.ts +573 -0
  503. package/dist/types/utils/accept.d.ts +6 -0
  504. package/dist/types/utils/basic-auth.d.ts +5 -0
  505. package/dist/types/utils/body.d.ts +79 -0
  506. package/dist/types/utils/buffer.d.ts +17 -0
  507. package/dist/types/utils/color.d.ts +21 -0
  508. package/dist/types/utils/compress.d.ts +8 -0
  509. package/dist/types/utils/concurrent.d.ts +11 -0
  510. package/dist/types/utils/constants.d.ts +4 -0
  511. package/dist/types/utils/cookie.d.ts +40 -0
  512. package/dist/types/utils/crypto.d.ts +15 -0
  513. package/dist/types/utils/encode.d.ts +8 -0
  514. package/dist/types/utils/filepath.d.ts +12 -0
  515. package/dist/types/utils/handler.d.ts +6 -0
  516. package/dist/types/utils/headers.d.ts +8 -0
  517. package/dist/types/utils/html.d.ts +44 -0
  518. package/dist/types/utils/http-status.d.ts +32 -0
  519. package/dist/types/utils/ipaddr.d.ts +40 -0
  520. package/dist/types/utils/jwt/index.d.ts +18 -0
  521. package/dist/types/utils/jwt/jwa.d.ts +23 -0
  522. package/dist/types/utils/jwt/jws.d.ts +12 -0
  523. package/dist/types/utils/jwt/jwt.d.ts +43 -0
  524. package/dist/types/utils/jwt/types.d.ts +86 -0
  525. package/dist/types/utils/jwt/utf8.d.ts +6 -0
  526. package/dist/types/utils/mime.d.ts +70 -0
  527. package/dist/types/utils/stream.d.ts +31 -0
  528. package/dist/types/utils/types.d.ts +74 -0
  529. package/dist/types/utils/url.d.ts +39 -0
  530. package/dist/types/validator/index.d.ts +7 -0
  531. package/dist/types/validator/utils.d.ts +29 -0
  532. package/dist/types/validator/validator.d.ts +16 -0
  533. package/dist/types.js +6 -0
  534. package/dist/utils/accept.js +223 -0
  535. package/dist/utils/basic-auth.js +23 -0
  536. package/dist/utils/body.js +75 -0
  537. package/dist/utils/buffer.js +77 -0
  538. package/dist/utils/color.js +25 -0
  539. package/dist/utils/compress.js +5 -0
  540. package/dist/utils/concurrent.js +39 -0
  541. package/dist/utils/constants.js +5 -0
  542. package/dist/utils/cookie.js +152 -0
  543. package/dist/utils/crypto.js +44 -0
  544. package/dist/utils/encode.js +29 -0
  545. package/dist/utils/filepath.js +35 -0
  546. package/dist/utils/handler.js +13 -0
  547. package/dist/utils/headers.js +0 -0
  548. package/dist/utils/html.js +123 -0
  549. package/dist/utils/http-status.js +0 -0
  550. package/dist/utils/ipaddr.js +102 -0
  551. package/dist/utils/jwt/index.js +6 -0
  552. package/dist/utils/jwt/jwa.js +20 -0
  553. package/dist/utils/jwt/jws.js +192 -0
  554. package/dist/utils/jwt/jwt.js +201 -0
  555. package/dist/utils/jwt/types.js +124 -0
  556. package/dist/utils/jwt/utf8.js +7 -0
  557. package/dist/utils/mime.js +84 -0
  558. package/dist/utils/stream.js +79 -0
  559. package/dist/utils/types.js +0 -0
  560. package/dist/utils/url.js +222 -0
  561. package/dist/validator/index.js +5 -0
  562. package/dist/validator/utils.js +0 -0
  563. package/dist/validator/validator.js +86 -0
  564. package/package.json +702 -0
@@ -0,0 +1,313 @@
1
+ import { GET_MATCH_RESULT } from './request/constants';
2
+ import type { Result } from './router';
3
+ import type { Input, InputToDataByTarget, ParamKeyToRecord, ParamKeys, RemoveQuestion, RouterRoute, ValidationTargets } from './types';
4
+ import type { BodyData, ParseBodyOptions } from './utils/body';
5
+ import type { CustomHeader, RequestHeader } from './utils/headers';
6
+ import type { Simplify, UnionToIntersection } from './utils/types';
7
+ type Body = {
8
+ json: any;
9
+ text: string;
10
+ arrayBuffer: ArrayBuffer;
11
+ blob: Blob;
12
+ formData: FormData;
13
+ };
14
+ type BodyCache = Partial<Body & {
15
+ parsedBody: BodyData;
16
+ }>;
17
+ export declare class HonoRequest<P extends string = '/', I extends Input['out'] = {}> {
18
+
19
+ /**
20
+ * `.raw` can get the raw Request object.
21
+ *
22
+ * @see {@link https://hono.dev/docs/api/request#raw}
23
+ *
24
+ * @example
25
+ * ```ts
26
+ * // For Cloudflare Workers
27
+ * app.post('/', async (c) => {
28
+ * const metadata = c.req.raw.cf?.hostMetadata?
29
+ * ...
30
+ * })
31
+ * ```
32
+ */
33
+ raw: Request;
34
+ routeIndex: number;
35
+ /**
36
+ * `.path` can get the pathname of the request.
37
+ *
38
+ * @see {@link https://hono.dev/docs/api/request#path}
39
+ *
40
+ * @example
41
+ * ```ts
42
+ * app.get('/about/me', (c) => {
43
+ * const pathname = c.req.path // `/about/me`
44
+ * })
45
+ * ```
46
+ */
47
+ path: string;
48
+ bodyCache: BodyCache;
49
+ constructor(request: Request, path?: string, matchResult?: Result<[unknown, RouterRoute]>);
50
+ /**
51
+ * `.req.param()` gets the path parameters.
52
+ *
53
+ * @see {@link https://hono.dev/docs/api/routing#path-parameter}
54
+ *
55
+ * @example
56
+ * ```ts
57
+ * const name = c.req.param('name')
58
+ * // or all parameters at once
59
+ * const { id, comment_id } = c.req.param()
60
+ * ```
61
+ */
62
+ param<P2 extends ParamKeys<P> = ParamKeys<P>>(key: string extends P ? never : P2 extends `${infer _}?` ? never : P2): string;
63
+ param<P2 extends RemoveQuestion<ParamKeys<P>> = RemoveQuestion<ParamKeys<P>>>(key: P2): string | undefined;
64
+ param(key: string): string | undefined;
65
+ param<P2 extends string = P>(): Simplify<UnionToIntersection<ParamKeyToRecord<ParamKeys<P2>>>>;
66
+ /**
67
+ * `.query()` can get querystring parameters.
68
+ *
69
+ * @see {@link https://hono.dev/docs/api/request#query}
70
+ *
71
+ * @example
72
+ * ```ts
73
+ * // Query params
74
+ * app.get('/search', (c) => {
75
+ * const query = c.req.query('q')
76
+ * })
77
+ *
78
+ * // Get all params at once
79
+ * app.get('/search', (c) => {
80
+ * const { q, limit, offset } = c.req.query()
81
+ * })
82
+ * ```
83
+ */
84
+ query(key: string): string | undefined;
85
+ query(): Record<string, string>;
86
+ /**
87
+ * `.queries()` can get multiple querystring parameter values, e.g. /search?tags=A&tags=B
88
+ *
89
+ * @see {@link https://hono.dev/docs/api/request#queries}
90
+ *
91
+ * @example
92
+ * ```ts
93
+ * app.get('/search', (c) => {
94
+ * // tags will be string[]
95
+ * const tags = c.req.queries('tags')
96
+ * })
97
+ * ```
98
+ */
99
+ queries(key: string): string[] | undefined;
100
+ queries(): Record<string, string[]>;
101
+ /**
102
+ * `.header()` can get the request header value.
103
+ *
104
+ * @see {@link https://hono.dev/docs/api/request#header}
105
+ *
106
+ * @example
107
+ * ```ts
108
+ * app.get('/', (c) => {
109
+ * const userAgent = c.req.header('User-Agent')
110
+ * })
111
+ * ```
112
+ */
113
+ header(name: RequestHeader): string | undefined;
114
+ header(name: string): string | undefined;
115
+ header(): Record<RequestHeader | (string & CustomHeader), string>;
116
+ /**
117
+ * `.parseBody()` can parse Request body of type `multipart/form-data` or `application/x-www-form-urlencoded`
118
+ *
119
+ * @see {@link https://hono.dev/docs/api/request#parsebody}
120
+ *
121
+ * @example
122
+ * ```ts
123
+ * app.post('/entry', async (c) => {
124
+ * const body = await c.req.parseBody()
125
+ * })
126
+ * ```
127
+ */
128
+ parseBody<Options extends Partial<ParseBodyOptions>, T extends BodyData<Options>>(options?: Options): Promise<T>;
129
+ parseBody<T extends BodyData>(options?: Partial<ParseBodyOptions>): Promise<T>;
130
+ /**
131
+ * `.json()` can parse Request body of type `application/json`
132
+ *
133
+ * @see {@link https://hono.dev/docs/api/request#json}
134
+ *
135
+ * @example
136
+ * ```ts
137
+ * app.post('/entry', async (c) => {
138
+ * const body = await c.req.json()
139
+ * })
140
+ * ```
141
+ */
142
+ json<T = any>(): Promise<T>;
143
+ /**
144
+ * `.text()` can parse Request body of type `text/plain`
145
+ *
146
+ * @see {@link https://hono.dev/docs/api/request#text}
147
+ *
148
+ * @example
149
+ * ```ts
150
+ * app.post('/entry', async (c) => {
151
+ * const body = await c.req.text()
152
+ * })
153
+ * ```
154
+ */
155
+ text(): Promise<string>;
156
+ /**
157
+ * `.arrayBuffer()` parse Request body as an `ArrayBuffer`
158
+ *
159
+ * @see {@link https://hono.dev/docs/api/request#arraybuffer}
160
+ *
161
+ * @example
162
+ * ```ts
163
+ * app.post('/entry', async (c) => {
164
+ * const body = await c.req.arrayBuffer()
165
+ * })
166
+ * ```
167
+ */
168
+ arrayBuffer(): Promise<ArrayBuffer>;
169
+ /**
170
+ * Parses the request body as a `Blob`.
171
+ * @example
172
+ * ```ts
173
+ * app.post('/entry', async (c) => {
174
+ * const body = await c.req.blob();
175
+ * });
176
+ * ```
177
+ * @see https://hono.dev/docs/api/request#blob
178
+ */
179
+ blob(): Promise<Blob>;
180
+ /**
181
+ * Parses the request body as `FormData`.
182
+ * @example
183
+ * ```ts
184
+ * app.post('/entry', async (c) => {
185
+ * const body = await c.req.formData();
186
+ * });
187
+ * ```
188
+ * @see https://hono.dev/docs/api/request#formdata
189
+ */
190
+ formData(): Promise<FormData>;
191
+ /**
192
+ * Adds validated data to the request.
193
+ *
194
+ * @param target - The target of the validation.
195
+ * @param data - The validated data to add.
196
+ */
197
+ addValidatedData(target: keyof ValidationTargets, data: {}): void;
198
+ /**
199
+ * Gets validated data from the request.
200
+ *
201
+ * @param target - The target of the validation.
202
+ * @returns The validated data.
203
+ *
204
+ * @see https://hono.dev/docs/api/request#valid
205
+ */
206
+ valid<T extends keyof I & keyof ValidationTargets>(target: T): InputToDataByTarget<I, T>;
207
+ /**
208
+ * `.url()` can get the request url strings.
209
+ *
210
+ * @see {@link https://hono.dev/docs/api/request#url}
211
+ *
212
+ * @example
213
+ * ```ts
214
+ * app.get('/about/me', (c) => {
215
+ * const url = c.req.url // `http://localhost:8787/about/me`
216
+ * ...
217
+ * })
218
+ * ```
219
+ */
220
+ get url(): string;
221
+ /**
222
+ * `.method()` can get the method name of the request.
223
+ *
224
+ * @see {@link https://hono.dev/docs/api/request#method}
225
+ *
226
+ * @example
227
+ * ```ts
228
+ * app.get('/about/me', (c) => {
229
+ * const method = c.req.method // `GET`
230
+ * })
231
+ * ```
232
+ */
233
+ get method(): string;
234
+ get [GET_MATCH_RESULT](): Result<[unknown, RouterRoute]>;
235
+ /**
236
+ * `.matchedRoutes()` can return a matched route in the handler
237
+ *
238
+ * @deprecated
239
+ *
240
+ * Use matchedRoutes helper defined in "hono/route" instead.
241
+ *
242
+ * @see {@link https://hono.dev/docs/api/request#matchedroutes}
243
+ *
244
+ * @example
245
+ * ```ts
246
+ * app.use('*', async function logger(c, next) {
247
+ * await next()
248
+ * c.req.matchedRoutes.forEach(({ handler, method, path }, i) => {
249
+ * const name = handler.name || (handler.length < 2 ? '[handler]' : '[middleware]')
250
+ * console.log(
251
+ * method,
252
+ * ' ',
253
+ * path,
254
+ * ' '.repeat(Math.max(10 - path.length, 0)),
255
+ * name,
256
+ * i === c.req.routeIndex ? '<- respond from here' : ''
257
+ * )
258
+ * })
259
+ * })
260
+ * ```
261
+ */
262
+ get matchedRoutes(): RouterRoute[];
263
+ /**
264
+ * `routePath()` can retrieve the path registered within the handler
265
+ *
266
+ * @deprecated
267
+ *
268
+ * Use routePath helper defined in "hono/route" instead.
269
+ *
270
+ * @see {@link https://hono.dev/docs/api/request#routepath}
271
+ *
272
+ * @example
273
+ * ```ts
274
+ * app.get('/posts/:id', (c) => {
275
+ * return c.json({ path: c.req.routePath })
276
+ * })
277
+ * ```
278
+ */
279
+ get routePath(): string;
280
+ }
281
+ /**
282
+ * Clones a HonoRequest's underlying raw Request object.
283
+ *
284
+ * This utility handles both consumed and unconsumed request bodies:
285
+ * - If the request body hasn't been consumed, it uses the native `clone()` method
286
+ * - If the request body has been consumed, it reconstructs a new Request using cached body data
287
+ *
288
+ * This is particularly useful when you need to:
289
+ * - Process the same request body multiple times
290
+ * - Pass requests to external services after validation
291
+ *
292
+ * @param req - The HonoRequest object to clone
293
+ * @returns A Promise that resolves to a new Request object with the same properties
294
+ * @throws {HTTPException} If the request body was consumed directly via `req.raw`
295
+ * without using HonoRequest methods (e.g., `req.json()`, `req.text()`), making it
296
+ * impossible to reconstruct the body from cache
297
+ *
298
+ * @example
299
+ * ```ts
300
+ * // Clone after consuming the body (e.g., after validation)
301
+ * app.post('/forward',
302
+ * validator('json', (data) => data),
303
+ * async (c) => {
304
+ * const validated = c.req.valid('json')
305
+ * // Body has been consumed, but cloneRawRequest still works
306
+ * const clonedReq = await cloneRawRequest(c.req)
307
+ * return fetch('http://backend-service.com', clonedReq)
308
+ * }
309
+ * )
310
+ * ```
311
+ */
312
+ export declare const cloneRawRequest: (req: HonoRequest) => Promise<Request>;
313
+ export {};
@@ -0,0 +1,5 @@
1
+ /**
2
+ * @module
3
+ * LinearRouter for Hono.
4
+ */
5
+ export { LinearRouter } from './router';
@@ -0,0 +1,7 @@
1
+ import type { Result, Router } from '../../router';
2
+ export declare class LinearRouter<T> implements Router<T> {
3
+
4
+ name: string;
5
+ add(method: string, path: string, handler: T): void;
6
+ match(method: string, path: string): Result<T>;
7
+ }
@@ -0,0 +1,5 @@
1
+ /**
2
+ * @module
3
+ * PatternRouter for Hono.
4
+ */
5
+ export { PatternRouter } from './router';
@@ -0,0 +1,7 @@
1
+ import type { Result, Router } from '../../router';
2
+ export declare class PatternRouter<T> implements Router<T> {
3
+
4
+ name: string;
5
+ add(method: string, path: string, handler: T): void;
6
+ match(method: string, path: string): Result<T>;
7
+ }
@@ -0,0 +1,6 @@
1
+ /**
2
+ * @module
3
+ * RegExpRouter for Hono.
4
+ */
5
+ export { RegExpRouter } from './router';
6
+ export { PreparedRegExpRouter, buildInitParams, serializeInitParams } from './prepared-router';
@@ -0,0 +1,7 @@
1
+ import type { ParamIndexMap, Result, Router } from '../../router';
2
+ export type HandlerData<T> = [T, ParamIndexMap][];
3
+ export type StaticMap<T> = Record<string, Result<T>>;
4
+ export type Matcher<T> = [RegExp, HandlerData<T>[], StaticMap<T>];
5
+ export type MatcherMap<T> = Record<string, Matcher<T> | null>;
6
+ export declare const emptyParam: string[];
7
+ export declare function match<R extends Router<T>, T>(this: R, method: string, path: string): Result<T>;
@@ -0,0 +1,10 @@
1
+ export declare const PATH_ERROR: unique symbol;
2
+ export type ParamAssocArray = [string, number][];
3
+ export interface Context {
4
+ varIndex: number;
5
+ }
6
+ export declare class Node {
7
+
8
+ insert(tokens: readonly string[], index: number, paramMap: ParamAssocArray, context: Context, pathErrorCheckOnly: boolean): void;
9
+ buildRegExpStr(): string;
10
+ }
@@ -0,0 +1,17 @@
1
+ import type { ParamIndexMap, Router } from '../../router';
2
+ import type { MatcherMap } from './matcher';
3
+ import { match } from './matcher';
4
+ type RelocateMap = Record<string, ([(number | string)[], ParamIndexMap] | [(number | string)[]])[]>;
5
+ export declare class PreparedRegExpRouter<T> implements Router<T> {
6
+
7
+ name: string;
8
+ constructor(matchers: MatcherMap<T>, relocateMap: RelocateMap);
9
+ add(method: string, path: string, handler: T): void;
10
+ protected buildAllMatchers(): MatcherMap<T>;
11
+ match: typeof match<Router<T>, T>;
12
+ }
13
+ export declare const buildInitParams: (params: {
14
+ paths: string[];
15
+ }) => ConstructorParameters<typeof PreparedRegExpRouter>;
16
+ export declare const serializeInitParams: (params: ConstructorParameters<typeof PreparedRegExpRouter>) => string;
17
+ export {};
@@ -0,0 +1,11 @@
1
+ import type { Router } from '../../router';
2
+ import type { MatcherMap } from './matcher';
3
+ import { match } from './matcher';
4
+ export declare class RegExpRouter<T> implements Router<T> {
5
+
6
+ name: string;
7
+ constructor();
8
+ add(method: string, path: string, handler: T): void;
9
+ match: typeof match<Router<T>, T>;
10
+ protected buildAllMatchers(): MatcherMap<T>;
11
+ }
@@ -0,0 +1,7 @@
1
+ import type { ParamAssocArray } from './node';
2
+ export type ReplacementMap = number[];
3
+ export declare class Trie {
4
+
5
+ insert(path: string, index: number, pathErrorCheckOnly: boolean): ParamAssocArray;
6
+ buildRegExp(): [RegExp, ReplacementMap, ReplacementMap];
7
+ }
@@ -0,0 +1,5 @@
1
+ /**
2
+ * @module
3
+ * SmartRouter for Hono.
4
+ */
5
+ export { SmartRouter } from './router';
@@ -0,0 +1,11 @@
1
+ import type { Result, Router } from '../../router';
2
+ export declare class SmartRouter<T> implements Router<T> {
3
+
4
+ name: string;
5
+ constructor(init: {
6
+ routers: Router<T>[];
7
+ });
8
+ add(method: string, path: string, handler: T): void;
9
+ match(method: string, path: string): Result<T>;
10
+ get activeRouter(): Router<T>;
11
+ }
@@ -0,0 +1,5 @@
1
+ /**
2
+ * @module
3
+ * TrieRouter for Hono.
4
+ */
5
+ export { TrieRouter } from './router';
@@ -0,0 +1,7 @@
1
+ import type { Params } from '../../router';
2
+ export declare class Node<T> {
3
+
4
+ constructor(method?: string, handler?: T, children?: Record<string, Node<T>>);
5
+ insert(method: string, path: string, handler: T): Node<T>;
6
+ search(method: string, path: string): [[T, Params][]];
7
+ }
@@ -0,0 +1,8 @@
1
+ import type { Result, Router } from '../../router';
2
+ export declare class TrieRouter<T> implements Router<T> {
3
+
4
+ name: string;
5
+ constructor();
6
+ add(method: string, path: string, handler: T): void;
7
+ match(method: string, path: string): Result<T>;
8
+ }
@@ -0,0 +1,97 @@
1
+ /**
2
+ * @module
3
+ * This module provides types definitions and variables for the routers.
4
+ */
5
+ /**
6
+ * Constant representing all HTTP methods in uppercase.
7
+ */
8
+ export declare const METHOD_NAME_ALL: "ALL";
9
+ /**
10
+ * Constant representing all HTTP methods in lowercase.
11
+ */
12
+ export declare const METHOD_NAME_ALL_LOWERCASE: "all";
13
+ /**
14
+ * Array of supported HTTP methods.
15
+ */
16
+ export declare const METHODS: readonly ["get", "post", "put", "delete", "options", "patch"];
17
+ /**
18
+ * Error message indicating that a route cannot be added because the matcher is already built.
19
+ */
20
+ export declare const MESSAGE_MATCHER_IS_ALREADY_BUILT = "Can not add a route since the matcher is already built.";
21
+ /**
22
+ * Interface representing a router.
23
+ *
24
+ * @template T - The type of the handler.
25
+ */
26
+ export interface Router<T> {
27
+ /**
28
+ * The name of the router.
29
+ */
30
+ name: string;
31
+ /**
32
+ * Adds a route to the router.
33
+ *
34
+ * @param method - The HTTP method (e.g., 'get', 'post').
35
+ * @param path - The path for the route.
36
+ * @param handler - The handler for the route.
37
+ */
38
+ add(method: string, path: string, handler: T): void;
39
+ /**
40
+ * Matches a route based on the given method and path.
41
+ *
42
+ * @param method - The HTTP method (e.g., 'get', 'post').
43
+ * @param path - The path to match.
44
+ * @returns The result of the match.
45
+ */
46
+ match(method: string, path: string): Result<T>;
47
+ }
48
+ /**
49
+ * Type representing a map of parameter indices.
50
+ */
51
+ export type ParamIndexMap = Record<string, number>;
52
+ /**
53
+ * Type representing a stash of parameters.
54
+ */
55
+ export type ParamStash = string[];
56
+ /**
57
+ * Type representing a map of parameters.
58
+ */
59
+ export type Params = Record<string, string>;
60
+ /**
61
+ * Type representing the result of a route match.
62
+ *
63
+ * The result can be in one of two formats:
64
+ * 1. An array of handlers with their corresponding parameter index maps, followed by a parameter stash.
65
+ * 2. An array of handlers with their corresponding parameter maps.
66
+ *
67
+ * Example:
68
+ *
69
+ * [[handler, paramIndexMap][], paramArray]
70
+ * ```typescript
71
+ * [
72
+ * [
73
+ * [middlewareA, {}], // '*'
74
+ * [funcA, {'id': 0}], // '/user/:id/*'
75
+ * [funcB, {'id': 0, 'action': 1}], // '/user/:id/:action'
76
+ * ],
77
+ * ['123', 'abc']
78
+ * ]
79
+ * ```
80
+ *
81
+ * [[handler, params][]]
82
+ * ```typescript
83
+ * [
84
+ * [
85
+ * [middlewareA, {}], // '*'
86
+ * [funcA, {'id': '123'}], // '/user/:id/*'
87
+ * [funcB, {'id': '123', 'action': 'abc'}], // '/user/:id/:action'
88
+ * ]
89
+ * ]
90
+ * ```
91
+ */
92
+ export type Result<T> = [[T, ParamIndexMap][], ParamStash] | [[T, Params][]];
93
+ /**
94
+ * Error class representing an unsupported path error.
95
+ */
96
+ export declare class UnsupportedPathError extends Error {
97
+ }