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,67 +0,0 @@
1
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- //#region src/client/fetch-result-please.ts
3
- /**
4
- * @description This file is a modified version of `fetch-result-please` (`ofetch`), minimalized and adapted to Hono's custom needs.
5
- *
6
- * @link https://www.npmjs.com/package/fetch-result-please
7
- */
8
- const nullBodyResponses = /* @__PURE__ */ new Set([
9
- 101,
10
- 204,
11
- 205,
12
- 304
13
- ]);
14
- /**
15
- * Smartly parses and return the consumable result from a fetch `Response`.
16
- *
17
- * Throwing a structured error if the response is not `ok`. ({@link DetailedError})
18
- */
19
- async function fetchRP(fetchRes) {
20
- const _fetchRes = await fetchRes;
21
- if ((_fetchRes.body || _fetchRes._bodyInit) && !nullBodyResponses.has(_fetchRes.status)) _fetchRes._data = await _fetchRes[detectResponseType(_fetchRes)]();
22
- if (!_fetchRes.ok) throw new DetailedError(`${_fetchRes.status} ${_fetchRes.statusText}`, {
23
- statusCode: _fetchRes?.status,
24
- detail: {
25
- data: _fetchRes?._data,
26
- statusText: _fetchRes?.statusText
27
- }
28
- });
29
- return _fetchRes._data;
30
- }
31
- var DetailedError = class extends Error {
32
- /**
33
- * Additional `message` that will be logged AND returned to client
34
- */
35
- detail;
36
- /**
37
- * Additional `code` that will be logged AND returned to client
38
- */
39
- code;
40
- /**
41
- * Additional value that will be logged AND NOT returned to client
42
- */
43
- log;
44
- /**
45
- * Optionally set the status code to return, in a web server context
46
- */
47
- statusCode;
48
- constructor(message, options = {}) {
49
- super(message);
50
- this.name = "DetailedError";
51
- this.log = options.log;
52
- this.detail = options.detail;
53
- this.code = options.code;
54
- this.statusCode = options.statusCode;
55
- }
56
- };
57
- const jsonRegex = /^application\/(?:[\w!#$%&*.^`~-]*\+)?json(?:;.+)?$/i;
58
- function detectResponseType(response) {
59
- const _contentType = response.headers.get("content-type");
60
- if (!_contentType) return "text";
61
- const contentType = _contentType.split(";").shift();
62
- if (jsonRegex.test(contentType)) return "json";
63
- return "text";
64
- }
65
- //#endregion
66
- exports.DetailedError = DetailedError;
67
- exports.fetchRP = fetchRP;
@@ -1,7 +0,0 @@
1
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_client_fetch_result_please = require("./fetch-result-please.js");
3
- const require_client_utils = require("./utils.js");
4
- const require_client_client = require("./client.js");
5
- exports.DetailedError = require_client_fetch_result_please.DetailedError;
6
- exports.hc = require_client_client.hc;
7
- exports.parseResponse = require_client_utils.parseResponse;
File without changes
@@ -1,70 +0,0 @@
1
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_client_fetch_result_please = require("./fetch-result-please.js");
3
- //#region src/client/utils.ts
4
- const mergePath = (base, path) => {
5
- base = base.replace(/\/+$/, "");
6
- base = base + "/";
7
- path = path.replace(/^\/+/, "");
8
- return base + path;
9
- };
10
- const replaceUrlParam = (urlString, params) => {
11
- for (const [k, v] of Object.entries(params)) {
12
- const reg = new RegExp("/:" + k + "(?:{[^/]+})?\\??(?=/|$)");
13
- urlString = urlString.replace(reg, () => v ? `/${v}` : "");
14
- }
15
- return urlString;
16
- };
17
- const buildSearchParams = (query) => {
18
- const searchParams = new URLSearchParams();
19
- for (const [k, v] of Object.entries(query)) {
20
- if (v === void 0) continue;
21
- if (Array.isArray(v)) for (const v2 of v) {
22
- if (v2 === void 0) continue;
23
- searchParams.append(k, v2);
24
- }
25
- else searchParams.set(k, v);
26
- }
27
- return searchParams;
28
- };
29
- const replaceUrlProtocol = (urlString, protocol) => {
30
- switch (protocol) {
31
- case "ws": return urlString.replace(/^http/, "ws");
32
- case "http": return urlString.replace(/^ws/, "http");
33
- }
34
- };
35
- const removeIndexString = (urlString) => {
36
- if (/^https?:\/\/[^\/]+?\/index(?=\?|$)/.test(urlString)) return urlString.replace(/\/index(?=\?|$)/, "/");
37
- return urlString.replace(/\/index(?=\?|$)/, "");
38
- };
39
- function isObject(item) {
40
- return typeof item === "object" && item !== null && !Array.isArray(item);
41
- }
42
- function deepMerge(target, source) {
43
- if (!isObject(target) && !isObject(source)) return source;
44
- const merged = { ...target };
45
- for (const key in source) {
46
- const value = source[key];
47
- if (isObject(merged[key]) && isObject(value)) merged[key] = deepMerge(merged[key], value);
48
- else merged[key] = value;
49
- }
50
- return merged;
51
- }
52
- /**
53
- * Shortcut to get a consumable response from `hc`'s fetch calls (Response), with types inference.
54
- *
55
- * Smartly parse the response data, throwing a structured error if the response is not `ok`. ({@link DetailedError})
56
- *
57
- * @example const result = await parseResponse(client.posts.$get())
58
- */
59
- async function parseResponse(fetchRes) {
60
- return require_client_fetch_result_please.fetchRP(fetchRes);
61
- }
62
- //#endregion
63
- exports.DetailedError = require_client_fetch_result_please.DetailedError;
64
- exports.buildSearchParams = buildSearchParams;
65
- exports.deepMerge = deepMerge;
66
- exports.mergePath = mergePath;
67
- exports.parseResponse = parseResponse;
68
- exports.removeIndexString = removeIndexString;
69
- exports.replaceUrlParam = replaceUrlParam;
70
- exports.replaceUrlProtocol = replaceUrlProtocol;
@@ -1,51 +0,0 @@
1
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- //#region src/compose.ts
3
- /**
4
- * Compose middleware functions into a single function based on `koa-compose` package.
5
- *
6
- * @template E - The environment type.
7
- *
8
- * @param {[[Function, unknown], unknown][] | [[Function]][]} middleware - An array of middleware functions and their corresponding parameters.
9
- * @param {ErrorHandler<E>} [onError] - An optional error handler function.
10
- * @param {NotFoundHandler<E>} [onNotFound] - An optional not-found handler function.
11
- *
12
- * @returns {(context: Context, next?: Next) => Promise<Context>} - A composed middleware function.
13
- */
14
- const compose = (middleware, onError, onNotFound) => {
15
- return (context, next) => {
16
- let index = -1;
17
- return dispatch(0);
18
- /**
19
- * Dispatch the middleware functions.
20
- *
21
- * @param {number} i - The current index in the middleware array.
22
- *
23
- * @returns {Promise<Context>} - A promise that resolves to the context.
24
- */
25
- async function dispatch(i) {
26
- if (i <= index) throw new Error("next() called multiple times");
27
- index = i;
28
- let res;
29
- let isError = false;
30
- let handler;
31
- if (middleware[i]) {
32
- handler = middleware[i][0][0];
33
- context.req.routeIndex = i;
34
- } else handler = i === middleware.length && next || void 0;
35
- if (handler) try {
36
- res = await handler(context, () => dispatch(i + 1));
37
- } catch (err) {
38
- if (err instanceof Error && onError) {
39
- context.error = err;
40
- res = await onError(err, context);
41
- isError = true;
42
- } else throw err;
43
- }
44
- else if (context.finalized === false && onNotFound) res = await onNotFound(context);
45
- if (res && (context.finalized === false || isError)) context.res = res;
46
- return context;
47
- }
48
- };
49
- };
50
- //#endregion
51
- exports.compose = compose;
@@ -1,383 +0,0 @@
1
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_request = require("./request.js");
3
- const require_utils_html = require("./utils/html.js");
4
- //#region src/context.ts
5
- const TEXT_PLAIN = "text/plain; charset=UTF-8";
6
- const setDefaultContentType = (contentType, headers) => {
7
- return {
8
- "Content-Type": contentType,
9
- ...headers
10
- };
11
- };
12
- const createResponseInstance = (body, init) => new Response(body, init);
13
- var Context = class {
14
- #rawRequest;
15
- #req;
16
- /**
17
- * `.env` can get bindings (environment variables, secrets, KV namespaces, D1 database, R2 bucket etc.) in Cloudflare Workers.
18
- *
19
- * @see {@link https://hono.dev/docs/api/context#env}
20
- *
21
- * @example
22
- * ```ts
23
- * // Environment object for Cloudflare Workers
24
- * app.get('*', async c => {
25
- * const counter = c.env.COUNTER
26
- * })
27
- * ```
28
- */
29
- env = {};
30
- #var;
31
- finalized = false;
32
- /**
33
- * `.error` can get the error object from the middleware if the Handler throws an error.
34
- *
35
- * @see {@link https://hono.dev/docs/api/context#error}
36
- *
37
- * @example
38
- * ```ts
39
- * app.use('*', async (c, next) => {
40
- * await next()
41
- * if (c.error) {
42
- * // do something...
43
- * }
44
- * })
45
- * ```
46
- */
47
- error;
48
- #status;
49
- #executionCtx;
50
- #res;
51
- #layout;
52
- #renderer;
53
- #notFoundHandler;
54
- #preparedHeaders;
55
- #matchResult;
56
- #path;
57
- /**
58
- * Creates an instance of the Context class.
59
- *
60
- * @param req - The Request object.
61
- * @param options - Optional configuration options for the context.
62
- */
63
- constructor(req, options) {
64
- this.#rawRequest = req;
65
- if (options) {
66
- this.#executionCtx = options.executionCtx;
67
- this.env = options.env;
68
- this.#notFoundHandler = options.notFoundHandler;
69
- this.#path = options.path;
70
- this.#matchResult = options.matchResult;
71
- }
72
- }
73
- /**
74
- * `.req` is the instance of {@link HonoRequest}.
75
- */
76
- get req() {
77
- this.#req ??= new require_request.HonoRequest(this.#rawRequest, this.#path, this.#matchResult);
78
- return this.#req;
79
- }
80
- /**
81
- * @see {@link https://hono.dev/docs/api/context#event}
82
- * The FetchEvent associated with the current request.
83
- *
84
- * @throws Will throw an error if the context does not have a FetchEvent.
85
- */
86
- get event() {
87
- if (this.#executionCtx && "respondWith" in this.#executionCtx) return this.#executionCtx;
88
- else throw Error("This context has no FetchEvent");
89
- }
90
- /**
91
- * @see {@link https://hono.dev/docs/api/context#executionctx}
92
- * The ExecutionContext associated with the current request.
93
- *
94
- * @throws Will throw an error if the context does not have an ExecutionContext.
95
- */
96
- get executionCtx() {
97
- if (this.#executionCtx) return this.#executionCtx;
98
- else throw Error("This context has no ExecutionContext");
99
- }
100
- /**
101
- * @see {@link https://hono.dev/docs/api/context#res}
102
- * The Response object for the current request.
103
- */
104
- get res() {
105
- return this.#res ||= createResponseInstance(null, { headers: this.#preparedHeaders ??= new Headers() });
106
- }
107
- /**
108
- * Sets the Response object for the current request.
109
- *
110
- * @param _res - The Response object to set.
111
- */
112
- set res(_res) {
113
- if (this.#res && _res) {
114
- _res = createResponseInstance(_res.body, _res);
115
- for (const [k, v] of this.#res.headers.entries()) {
116
- if (k === "content-type") continue;
117
- if (k === "set-cookie") {
118
- const cookies = this.#res.headers.getSetCookie();
119
- _res.headers.delete("set-cookie");
120
- for (const cookie of cookies) _res.headers.append("set-cookie", cookie);
121
- } else _res.headers.set(k, v);
122
- }
123
- }
124
- this.#res = _res;
125
- this.finalized = true;
126
- }
127
- /**
128
- * `.render()` can create a response within a layout.
129
- *
130
- * @see {@link https://hono.dev/docs/api/context#render-setrenderer}
131
- *
132
- * @example
133
- * ```ts
134
- * app.get('/', (c) => {
135
- * return c.render('Hello!')
136
- * })
137
- * ```
138
- */
139
- render = (...args) => {
140
- this.#renderer ??= (content) => this.html(content);
141
- return this.#renderer(...args);
142
- };
143
- /**
144
- * Sets the layout for the response.
145
- *
146
- * @param layout - The layout to set.
147
- * @returns The layout function.
148
- */
149
- setLayout = (layout) => this.#layout = layout;
150
- /**
151
- * Gets the current layout for the response.
152
- *
153
- * @returns The current layout function.
154
- */
155
- getLayout = () => this.#layout;
156
- /**
157
- * `.setRenderer()` can set the layout in the custom middleware.
158
- *
159
- * @see {@link https://hono.dev/docs/api/context#render-setrenderer}
160
- *
161
- * @example
162
- * ```tsx
163
- * app.use('*', async (c, next) => {
164
- * c.setRenderer((content) => {
165
- * return c.html(
166
- * <html>
167
- * <body>
168
- * <p>{content}</p>
169
- * </body>
170
- * </html>
171
- * )
172
- * })
173
- * await next()
174
- * })
175
- * ```
176
- */
177
- setRenderer = (renderer) => {
178
- this.#renderer = renderer;
179
- };
180
- /**
181
- * `.header()` can set headers.
182
- *
183
- * @see {@link https://hono.dev/docs/api/context#header}
184
- *
185
- * @example
186
- * ```ts
187
- * app.get('/welcome', (c) => {
188
- * // Set headers
189
- * c.header('X-Message', 'Hello!')
190
- * c.header('Content-Type', 'text/plain')
191
- *
192
- * // Append multiple headers using the append option (e.g. Vary)
193
- * c.header('Vary', 'Accept-Encoding', { append: true })
194
- * c.header('Vary', 'User-Agent', { append: true })
195
- *
196
- * return c.body('Thank you for coming')
197
- * })
198
- * ```
199
- */
200
- header = (name, value, options) => {
201
- if (this.finalized) this.#res = createResponseInstance(this.#res.body, this.#res);
202
- const headers = this.#res ? this.#res.headers : this.#preparedHeaders ??= new Headers();
203
- if (value === void 0) headers.delete(name);
204
- else if (options?.append) headers.append(name, value);
205
- else headers.set(name, value);
206
- };
207
- status = (status) => {
208
- this.#status = status;
209
- };
210
- /**
211
- * `.set()` can set the value specified by the key.
212
- *
213
- * @see {@link https://hono.dev/docs/api/context#set-get}
214
- *
215
- * @example
216
- * ```ts
217
- * app.use('*', async (c, next) => {
218
- * c.set('message', 'Hono is hot!!')
219
- * await next()
220
- * })
221
- * ```
222
- */
223
- set = (key, value) => {
224
- this.#var ??= /* @__PURE__ */ new Map();
225
- this.#var.set(key, value);
226
- };
227
- /**
228
- * `.get()` can use the value specified by the key.
229
- *
230
- * @see {@link https://hono.dev/docs/api/context#set-get}
231
- *
232
- * @example
233
- * ```ts
234
- * app.get('/', (c) => {
235
- * const message = c.get('message')
236
- * return c.text(`The message is "${message}"`)
237
- * })
238
- * ```
239
- */
240
- get = (key) => {
241
- return this.#var ? this.#var.get(key) : void 0;
242
- };
243
- /**
244
- * `.var` can access the value of a variable.
245
- *
246
- * @see {@link https://hono.dev/docs/api/context#var}
247
- *
248
- * @example
249
- * ```ts
250
- * const result = c.var.client.oneMethod()
251
- * ```
252
- */
253
- get var() {
254
- if (!this.#var) return {};
255
- return Object.fromEntries(this.#var);
256
- }
257
- #newResponse(data, arg, headers) {
258
- let responseHeaders = this.#res ? new Headers(this.#res.headers) : this.#preparedHeaders;
259
- if (typeof arg === "object" && arg.headers) {
260
- responseHeaders ??= new Headers();
261
- for (const [key, value] of new Headers(arg.headers)) if (key === "set-cookie") responseHeaders.append(key, value);
262
- else responseHeaders.set(key, value);
263
- }
264
- if (headers) {
265
- if (!responseHeaders) {
266
- let count = 0;
267
- for (const k in headers) if (++count > 1 || typeof headers[k] !== "string") {
268
- responseHeaders = new Headers();
269
- break;
270
- }
271
- }
272
- if (responseHeaders) for (const k in headers) {
273
- const v = headers[k];
274
- if (typeof v === "string") responseHeaders.set(k, v);
275
- else {
276
- responseHeaders.delete(k);
277
- for (const v2 of v) responseHeaders.append(k, v2);
278
- }
279
- }
280
- }
281
- const status = typeof arg === "number" ? arg : arg?.status ?? this.#status;
282
- return createResponseInstance(data, {
283
- status,
284
- headers: responseHeaders ?? headers
285
- });
286
- }
287
- newResponse = (...args) => this.#newResponse(...args);
288
- /**
289
- * `.body()` can return the HTTP response.
290
- * You can set headers with `.header()` and set HTTP status code with `.status`.
291
- * This can also be set in `.text()`, `.json()` and so on.
292
- *
293
- * @see {@link https://hono.dev/docs/api/context#body}
294
- *
295
- * @example
296
- * ```ts
297
- * app.get('/welcome', (c) => {
298
- * // Set headers
299
- * c.header('X-Message', 'Hello!')
300
- * c.header('Content-Type', 'text/plain')
301
- * // Set HTTP status code
302
- * c.status(201)
303
- *
304
- * // Return the response body
305
- * return c.body('Thank you for coming')
306
- * })
307
- * ```
308
- */
309
- body = (data, arg, headers) => this.#newResponse(data, arg, headers);
310
- /**
311
- * `.text()` can render text as `Content-Type:text/plain`.
312
- *
313
- * @see {@link https://hono.dev/docs/api/context#text}
314
- *
315
- * @example
316
- * ```ts
317
- * app.get('/say', (c) => {
318
- * return c.text('Hello!')
319
- * })
320
- * ```
321
- */
322
- text = (text, arg, headers) => {
323
- return !this.#preparedHeaders && !this.#status && !arg && !headers && !this.finalized ? new Response(text) : this.#newResponse(text, arg, setDefaultContentType(TEXT_PLAIN, headers));
324
- };
325
- /**
326
- * `.json()` can render JSON as `Content-Type:application/json`.
327
- *
328
- * @see {@link https://hono.dev/docs/api/context#json}
329
- *
330
- * @example
331
- * ```ts
332
- * app.get('/api', (c) => {
333
- * return c.json({ message: 'Hello!' })
334
- * })
335
- * ```
336
- */
337
- json = (object, arg, headers) => {
338
- return this.#newResponse(JSON.stringify(object), arg, setDefaultContentType("application/json", headers));
339
- };
340
- html = (html, arg, headers) => {
341
- const res = (html) => this.#newResponse(html, arg, setDefaultContentType("text/html; charset=UTF-8", headers));
342
- return typeof html === "object" ? require_utils_html.resolveCallback(html, require_utils_html.HtmlEscapedCallbackPhase.Stringify, false, {}).then(res) : res(html);
343
- };
344
- /**
345
- * `.redirect()` can Redirect, default status code is 302.
346
- *
347
- * @see {@link https://hono.dev/docs/api/context#redirect}
348
- *
349
- * @example
350
- * ```ts
351
- * app.get('/redirect', (c) => {
352
- * return c.redirect('/')
353
- * })
354
- * app.get('/redirect-permanently', (c) => {
355
- * return c.redirect('/', 301)
356
- * })
357
- * ```
358
- */
359
- redirect = (location, status) => {
360
- const locationString = String(location);
361
- this.header("Location", !/[^\x00-\xFF]/.test(locationString) ? locationString : encodeURI(locationString));
362
- return this.newResponse(null, status ?? 302);
363
- };
364
- /**
365
- * `.notFound()` can return the Not Found Response.
366
- *
367
- * @see {@link https://hono.dev/docs/api/context#notfound}
368
- *
369
- * @example
370
- * ```ts
371
- * app.get('/notfound', (c) => {
372
- * return c.notFound()
373
- * })
374
- * ```
375
- */
376
- notFound = () => {
377
- this.#notFoundHandler ??= () => createResponseInstance();
378
- return this.#notFoundHandler(this);
379
- };
380
- };
381
- //#endregion
382
- exports.Context = Context;
383
- exports.TEXT_PLAIN = TEXT_PLAIN;
@@ -1,54 +0,0 @@
1
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_utils_accept = require("../../utils/accept.js");
3
- //#region src/helper/accepts/accepts.ts
4
- const matchType = (acceptType, supportedType) => {
5
- const accept = acceptType.toLowerCase();
6
- const supported = supportedType.toLowerCase();
7
- if (accept === supported) return true;
8
- if (accept === "*/*" || accept === "*") return false;
9
- if (accept.endsWith("/*")) {
10
- const [acceptMain] = accept.split("/");
11
- const [supportedMain] = supported.split("/");
12
- return acceptMain === supportedMain;
13
- }
14
- return false;
15
- };
16
- const getSpecificity = (type) => {
17
- if (type === "*/*" || type === "*") return 1;
18
- if (type.endsWith("/*")) return 2;
19
- return 3;
20
- };
21
- const defaultMatch = (accepts, config) => {
22
- const { supports, default: defaultSupport } = config;
23
- const sortedAccepts = accepts.filter((accept) => accept.q > 0).sort((a, b) => {
24
- if (b.q !== a.q) return b.q - a.q;
25
- return getSpecificity(b.type) - getSpecificity(a.type);
26
- });
27
- for (const accept of sortedAccepts) {
28
- const matched = supports.find((supported) => matchType(accept.type, supported));
29
- if (matched) return matched;
30
- }
31
- return defaultSupport;
32
- };
33
- /**
34
- * Match the accept header with the given options.
35
- * @example
36
- * ```ts
37
- * app.get('/users', (c) => {
38
- * const lang = accepts(c, {
39
- * header: 'Accept-Language',
40
- * supports: ['en', 'zh'],
41
- * default: 'en',
42
- * })
43
- * })
44
- * ```
45
- */
46
- const accepts = (c, options) => {
47
- const acceptHeader = c.req.header(options.header);
48
- if (!acceptHeader) return options.default;
49
- const accepts = require_utils_accept.parseAccept(acceptHeader);
50
- return (options.match || defaultMatch)(accepts, options);
51
- };
52
- //#endregion
53
- exports.accepts = accepts;
54
- exports.defaultMatch = defaultMatch;
@@ -1,3 +0,0 @@
1
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_helper_accepts_accepts = require("./accepts.js");
3
- exports.accepts = require_helper_accepts_accepts.accepts;
@@ -1,41 +0,0 @@
1
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- //#region src/helper/adapter/index.ts
3
- const env = (c, runtime) => {
4
- const globalEnv = globalThis?.process?.env;
5
- runtime ??= getRuntimeKey();
6
- return {
7
- bun: () => globalEnv,
8
- node: () => globalEnv,
9
- "edge-light": () => globalEnv,
10
- deno: () => {
11
- return Deno.env.toObject();
12
- },
13
- workerd: () => c.env,
14
- fastly: () => ({}),
15
- other: () => ({})
16
- }[runtime]();
17
- };
18
- const knownUserAgents = {
19
- deno: "Deno",
20
- bun: "Bun",
21
- workerd: "Cloudflare-Workers",
22
- node: "Node.js"
23
- };
24
- const getRuntimeKey = () => {
25
- const global = globalThis;
26
- if (typeof navigator !== "undefined" && typeof navigator.userAgent === "string") {
27
- for (const [runtimeKey, userAgent] of Object.entries(knownUserAgents)) if (checkUserAgentEquals(userAgent)) return runtimeKey;
28
- }
29
- if (typeof global?.EdgeRuntime === "string") return "edge-light";
30
- if (global?.fastly !== void 0) return "fastly";
31
- if (global?.process?.release?.name === "node") return "node";
32
- return "other";
33
- };
34
- const checkUserAgentEquals = (platform) => {
35
- return navigator.userAgent.startsWith(platform);
36
- };
37
- //#endregion
38
- exports.checkUserAgentEquals = checkUserAgentEquals;
39
- exports.env = env;
40
- exports.getRuntimeKey = getRuntimeKey;
41
- exports.knownUserAgents = knownUserAgents;
File without changes
File without changes