hono 4.13.13 → 5.0.0-rc.1

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 (516) hide show
  1. package/README.md +2 -2
  2. package/dist/client/fetch-result-please.js +0 -22
  3. package/dist/client/utils.js +0 -7
  4. package/dist/{types/compose.d.ts → compose.d.ts} +5 -3
  5. package/dist/compose.js +18 -31
  6. package/dist/context/constants.d.ts +3 -0
  7. package/dist/context/constants.js +4 -0
  8. package/dist/{types/context.d.ts → context.d.ts} +56 -15
  9. package/dist/context.js +83 -277
  10. package/dist/helper/accepts/accepts.js +0 -13
  11. package/dist/helper/css/common.js +0 -10
  12. package/dist/helper/css/index.js +0 -38
  13. package/dist/{types/helper → helper}/dev/index.d.ts +5 -2
  14. package/dist/helper/dev/index.js +3 -3
  15. package/dist/helper/factory/define-handler.d.ts +150 -0
  16. package/dist/helper/factory/define-handler.js +117 -0
  17. package/dist/{types/helper → helper}/factory/index.d.ts +30 -1
  18. package/dist/helper/factory/index.js +7 -7
  19. package/dist/helper/html/index.js +0 -4
  20. package/dist/helper/proxy/index.js +0 -49
  21. package/dist/helper/route/index.js +0 -90
  22. package/dist/{types/helper → helper}/ssg/middleware.d.ts +0 -6
  23. package/dist/helper/ssg/middleware.js +1 -34
  24. package/dist/helper/ssg/plugins.js +0 -24
  25. package/dist/{types/helper → helper}/ssg/ssg.d.ts +0 -12
  26. package/dist/helper/ssg/ssg.js +0 -18
  27. package/dist/helper/ssg/utils.js +0 -5
  28. package/dist/helper/testing/index.js +0 -4
  29. package/dist/helper/websocket/index.js +0 -6
  30. package/dist/{types/hono-base.d.ts → hono-base.d.ts} +47 -95
  31. package/dist/hono-base.js +63 -228
  32. package/dist/{types/hono.d.ts → hono.d.ts} +1 -1
  33. package/dist/hono.js +0 -13
  34. package/dist/http-exception.js +0 -36
  35. package/dist/index.js +0 -15
  36. package/dist/jsx/components.js +0 -5
  37. package/dist/jsx/context.js +0 -34
  38. package/dist/jsx/dom/client.js +0 -14
  39. package/dist/jsx/dom/css.js +0 -34
  40. package/dist/jsx/dom/hooks/index.js +0 -21
  41. package/dist/jsx/dom/index.js +0 -4
  42. package/dist/jsx/dom/server.js +0 -12
  43. package/dist/jsx/index.js +0 -4
  44. package/dist/jsx/streaming.js +0 -26
  45. package/dist/{types/middleware → middleware}/basic-auth/index.d.ts +4 -3
  46. package/dist/middleware/basic-auth/index.js +0 -49
  47. package/dist/{types/middleware → middleware}/bearer-auth/index.d.ts +4 -27
  48. package/dist/middleware/bearer-auth/index.js +3 -39
  49. package/dist/middleware/body-limit/index.js +0 -32
  50. package/dist/middleware/cache/index.js +0 -31
  51. package/dist/middleware/combine/index.js +0 -80
  52. package/dist/middleware/compress/index.js +0 -24
  53. package/dist/middleware/context-storage/index.js +0 -35
  54. package/dist/middleware/cors/index.js +0 -39
  55. package/dist/middleware/csrf/index.js +0 -62
  56. package/dist/middleware/etag/index.js +0 -29
  57. package/dist/middleware/ip-restriction/index.js +0 -41
  58. package/dist/middleware/jsx-renderer/index.js +0 -58
  59. package/dist/middleware/jwk/jwk.js +0 -31
  60. package/dist/middleware/jwt/jwt.js +0 -32
  61. package/dist/middleware/language/language.js +0 -60
  62. package/dist/middleware/logger/index.js +6 -24
  63. package/dist/middleware/method-not-allowed/index.js +1 -36
  64. package/dist/middleware/method-override/index.js +0 -25
  65. package/dist/middleware/mount/index.js +0 -32
  66. package/dist/middleware/powered-by/index.js +0 -15
  67. package/dist/middleware/pretty-json/index.js +0 -18
  68. package/dist/middleware/request-id/request-id.js +0 -22
  69. package/dist/middleware/secure-headers/secure-headers.js +0 -32
  70. package/dist/{types/middleware → middleware}/serve-static/index.d.ts +0 -4
  71. package/dist/middleware/serve-static/index.js +0 -3
  72. package/dist/middleware/serve-static/path.js +0 -4
  73. package/dist/middleware/timeout/index.js +0 -22
  74. package/dist/middleware/timing/timing.js +0 -95
  75. package/dist/middleware/trailing-slash/index.js +0 -50
  76. package/dist/{types/preset → preset}/quick.d.ts +1 -1
  77. package/dist/preset/quick.js +0 -4
  78. package/dist/{types/preset → preset}/tiny.d.ts +1 -1
  79. package/dist/preset/tiny.js +0 -4
  80. package/dist/{types/request.d.ts → request.d.ts} +3 -48
  81. package/dist/request.js +0 -205
  82. package/dist/router/linear-router/router.js +19 -13
  83. package/dist/router/pattern-router/router.js +3 -3
  84. package/dist/router/reg-exp-router/node.js +9 -11
  85. package/dist/router/reg-exp-router/trie.js +0 -5
  86. package/dist/router/trie-router/node.js +5 -5
  87. package/dist/router.js +0 -19
  88. package/dist/{types/types.d.ts → types.d.ts} +33 -2
  89. package/dist/utils/body.js +0 -30
  90. package/dist/utils/buffer.d.ts +11 -0
  91. package/dist/utils/buffer.js +1 -12
  92. package/dist/utils/color.d.ts +16 -0
  93. package/dist/utils/color.js +4 -33
  94. package/dist/utils/compress.js +0 -7
  95. package/dist/utils/concurrent.js +0 -4
  96. package/dist/utils/constants.js +0 -3
  97. package/dist/utils/cookie.js +0 -4
  98. package/dist/utils/encode.js +0 -4
  99. package/dist/utils/handler.js +0 -4
  100. package/dist/utils/html.js +0 -4
  101. package/dist/{types/utils → utils}/http-status.d.ts +1 -9
  102. package/dist/utils/ipaddr.js +0 -39
  103. package/dist/utils/jwt/index.js +0 -4
  104. package/dist/utils/jwt/jwa.js +0 -5
  105. package/dist/utils/jwt/jws.js +0 -5
  106. package/dist/utils/jwt/jwt.js +0 -5
  107. package/dist/utils/jwt/types.js +0 -4
  108. package/dist/utils/jwt/utf8.js +0 -4
  109. package/dist/utils/mime.js +0 -4
  110. package/dist/utils/stream.js +0 -14
  111. package/dist/{types/utils → utils}/url.d.ts +0 -5
  112. package/dist/utils/url.js +1 -30
  113. package/dist/{types/validator → validator}/validator.d.ts +5 -0
  114. package/dist/validator/validator.js +42 -49
  115. package/package.json +142 -488
  116. package/dist/adapter/aws-lambda/conninfo.js +0 -43
  117. package/dist/adapter/aws-lambda/handler.js +0 -342
  118. package/dist/adapter/aws-lambda/index.js +0 -3
  119. package/dist/adapter/aws-lambda/types.js +0 -1
  120. package/dist/adapter/bun/conninfo.js +0 -22
  121. package/dist/adapter/bun/index.js +0 -6
  122. package/dist/adapter/bun/serve-static.js +0 -30
  123. package/dist/adapter/bun/server.js +0 -11
  124. package/dist/adapter/bun/ssg.js +0 -27
  125. package/dist/adapter/bun/websocket.js +0 -66
  126. package/dist/adapter/cloudflare-pages/conninfo.js +0 -24
  127. package/dist/adapter/cloudflare-pages/handler.js +0 -64
  128. package/dist/adapter/cloudflare-pages/index.js +0 -3
  129. package/dist/adapter/cloudflare-workers/conninfo.js +0 -7
  130. package/dist/adapter/cloudflare-workers/index.js +0 -4
  131. package/dist/adapter/cloudflare-workers/serve-static-module.js +0 -7
  132. package/dist/adapter/cloudflare-workers/serve-static.js +0 -28
  133. package/dist/adapter/cloudflare-workers/utils.js +0 -22
  134. package/dist/adapter/cloudflare-workers/websocket.js +0 -33
  135. package/dist/adapter/deno/conninfo.js +0 -17
  136. package/dist/adapter/deno/deno.d.js +0 -1
  137. package/dist/adapter/deno/index.js +0 -5
  138. package/dist/adapter/deno/serve-static.js +0 -35
  139. package/dist/adapter/deno/ssg.js +0 -29
  140. package/dist/adapter/deno/websocket.js +0 -32
  141. package/dist/adapter/lambda-edge/conninfo.js +0 -7
  142. package/dist/adapter/lambda-edge/handler.js +0 -111
  143. package/dist/adapter/lambda-edge/index.js +0 -3
  144. package/dist/adapter/netlify/conninfo.js +0 -24
  145. package/dist/adapter/netlify/handler.js +0 -11
  146. package/dist/adapter/netlify/index.js +0 -3
  147. package/dist/adapter/netlify/mod.js +0 -3
  148. package/dist/adapter/service-worker/handler.js +0 -16
  149. package/dist/adapter/service-worker/index.js +0 -25
  150. package/dist/adapter/service-worker/types.js +0 -1
  151. package/dist/adapter/vercel/conninfo.js +0 -7
  152. package/dist/adapter/vercel/handler.js +0 -9
  153. package/dist/adapter/vercel/index.js +0 -3
  154. package/dist/cjs/_virtual/_rolldown/runtime.js +0 -33
  155. package/dist/cjs/adapter/aws-lambda/conninfo.js +0 -44
  156. package/dist/cjs/adapter/aws-lambda/handler.js +0 -352
  157. package/dist/cjs/adapter/aws-lambda/index.js +0 -7
  158. package/dist/cjs/adapter/aws-lambda/types.js +0 -0
  159. package/dist/cjs/adapter/bun/conninfo.js +0 -23
  160. package/dist/cjs/adapter/bun/index.js +0 -14
  161. package/dist/cjs/adapter/bun/serve-static.js +0 -31
  162. package/dist/cjs/adapter/bun/server.js +0 -12
  163. package/dist/cjs/adapter/bun/ssg.js +0 -29
  164. package/dist/cjs/adapter/bun/websocket.js +0 -70
  165. package/dist/cjs/adapter/cloudflare-pages/conninfo.js +0 -25
  166. package/dist/cjs/adapter/cloudflare-pages/handler.js +0 -67
  167. package/dist/cjs/adapter/cloudflare-pages/index.js +0 -7
  168. package/dist/cjs/adapter/cloudflare-workers/conninfo.js +0 -8
  169. package/dist/cjs/adapter/cloudflare-workers/index.js +0 -7
  170. package/dist/cjs/adapter/cloudflare-workers/serve-static-module.js +0 -8
  171. package/dist/cjs/adapter/cloudflare-workers/serve-static.js +0 -29
  172. package/dist/cjs/adapter/cloudflare-workers/utils.js +0 -23
  173. package/dist/cjs/adapter/cloudflare-workers/websocket.js +0 -34
  174. package/dist/cjs/adapter/deno/conninfo.js +0 -18
  175. package/dist/cjs/adapter/deno/deno.d.js +0 -0
  176. package/dist/cjs/adapter/deno/index.js +0 -10
  177. package/dist/cjs/adapter/deno/serve-static.js +0 -36
  178. package/dist/cjs/adapter/deno/ssg.js +0 -31
  179. package/dist/cjs/adapter/deno/websocket.js +0 -33
  180. package/dist/cjs/adapter/lambda-edge/conninfo.js +0 -8
  181. package/dist/cjs/adapter/lambda-edge/handler.js +0 -116
  182. package/dist/cjs/adapter/lambda-edge/index.js +0 -5
  183. package/dist/cjs/adapter/netlify/conninfo.js +0 -25
  184. package/dist/cjs/adapter/netlify/handler.js +0 -12
  185. package/dist/cjs/adapter/netlify/index.js +0 -5
  186. package/dist/cjs/adapter/netlify/mod.js +0 -5
  187. package/dist/cjs/adapter/service-worker/handler.js +0 -17
  188. package/dist/cjs/adapter/service-worker/index.js +0 -27
  189. package/dist/cjs/adapter/service-worker/types.js +0 -0
  190. package/dist/cjs/adapter/vercel/conninfo.js +0 -8
  191. package/dist/cjs/adapter/vercel/handler.js +0 -10
  192. package/dist/cjs/adapter/vercel/index.js +0 -5
  193. package/dist/cjs/client/client.js +0 -145
  194. package/dist/cjs/client/fetch-result-please.js +0 -67
  195. package/dist/cjs/client/index.js +0 -7
  196. package/dist/cjs/client/types.js +0 -0
  197. package/dist/cjs/client/utils.js +0 -70
  198. package/dist/cjs/compose.js +0 -51
  199. package/dist/cjs/context.js +0 -383
  200. package/dist/cjs/helper/accepts/accepts.js +0 -54
  201. package/dist/cjs/helper/accepts/index.js +0 -3
  202. package/dist/cjs/helper/adapter/index.js +0 -41
  203. package/dist/cjs/helper/conninfo/index.js +0 -0
  204. package/dist/cjs/helper/conninfo/types.js +0 -0
  205. package/dist/cjs/helper/cookie/index.js +0 -89
  206. package/dist/cjs/helper/css/common.js +0 -194
  207. package/dist/cjs/helper/css/index.js +0 -142
  208. package/dist/cjs/helper/dev/index.js +0 -53
  209. package/dist/cjs/helper/factory/index.js +0 -33
  210. package/dist/cjs/helper/html/index.js +0 -34
  211. package/dist/cjs/helper/proxy/index.js +0 -122
  212. package/dist/cjs/helper/route/index.js +0 -128
  213. package/dist/cjs/helper/ssg/index.js +0 -19
  214. package/dist/cjs/helper/ssg/middleware.js +0 -65
  215. package/dist/cjs/helper/ssg/plugins.js +0 -68
  216. package/dist/cjs/helper/ssg/ssg.js +0 -220
  217. package/dist/cjs/helper/ssg/utils.js +0 -70
  218. package/dist/cjs/helper/streaming/index.js +0 -8
  219. package/dist/cjs/helper/streaming/sse.js +0 -59
  220. package/dist/cjs/helper/streaming/stream.js +0 -26
  221. package/dist/cjs/helper/streaming/text.js +0 -12
  222. package/dist/cjs/helper/streaming/utils.js +0 -16
  223. package/dist/cjs/helper/testing/index.js +0 -18
  224. package/dist/cjs/helper/websocket/index.js +0 -56
  225. package/dist/cjs/hono-base.js +0 -351
  226. package/dist/cjs/hono.js +0 -29
  227. package/dist/cjs/http-exception.js +0 -56
  228. package/dist/cjs/index.js +0 -22
  229. package/dist/cjs/jsx/base.js +0 -266
  230. package/dist/cjs/jsx/children.js +0 -19
  231. package/dist/cjs/jsx/components.js +0 -147
  232. package/dist/cjs/jsx/constants.js +0 -15
  233. package/dist/cjs/jsx/context.js +0 -170
  234. package/dist/cjs/jsx/dom/client.js +0 -56
  235. package/dist/cjs/jsx/dom/components.js +0 -26
  236. package/dist/cjs/jsx/dom/context.js +0 -43
  237. package/dist/cjs/jsx/dom/css.js +0 -153
  238. package/dist/cjs/jsx/dom/hooks/index.js +0 -65
  239. package/dist/cjs/jsx/dom/index.js +0 -122
  240. package/dist/cjs/jsx/dom/intrinsic-element/components.js +0 -306
  241. package/dist/cjs/jsx/dom/jsx-dev-runtime.js +0 -17
  242. package/dist/cjs/jsx/dom/jsx-runtime.js +0 -5
  243. package/dist/cjs/jsx/dom/render.js +0 -525
  244. package/dist/cjs/jsx/dom/server.js +0 -44
  245. package/dist/cjs/jsx/dom/utils.js +0 -9
  246. package/dist/cjs/jsx/hooks/index.js +0 -280
  247. package/dist/cjs/jsx/index.js +0 -89
  248. package/dist/cjs/jsx/intrinsic-element/common.js +0 -27
  249. package/dist/cjs/jsx/intrinsic-element/components.js +0 -138
  250. package/dist/cjs/jsx/intrinsic-elements.js +0 -0
  251. package/dist/cjs/jsx/jsx-dev-runtime.js +0 -16
  252. package/dist/cjs/jsx/jsx-runtime.js +0 -37
  253. package/dist/cjs/jsx/streaming.js +0 -135
  254. package/dist/cjs/jsx/types.js +0 -0
  255. package/dist/cjs/jsx/utils.js +0 -116
  256. package/dist/cjs/middleware/basic-auth/index.js +0 -100
  257. package/dist/cjs/middleware/bearer-auth/index.js +0 -97
  258. package/dist/cjs/middleware/body-limit/index.js +0 -69
  259. package/dist/cjs/middleware/cache/index.js +0 -173
  260. package/dist/cjs/middleware/combine/index.js +0 -141
  261. package/dist/cjs/middleware/compress/index.js +0 -82
  262. package/dist/cjs/middleware/context-storage/index.js +0 -55
  263. package/dist/cjs/middleware/cors/index.js +0 -109
  264. package/dist/cjs/middleware/csrf/index.js +0 -106
  265. package/dist/cjs/middleware/etag/digest.js +0 -62
  266. package/dist/cjs/middleware/etag/index.js +0 -79
  267. package/dist/cjs/middleware/ip-restriction/index.js +0 -168
  268. package/dist/cjs/middleware/jsx-renderer/index.js +0 -104
  269. package/dist/cjs/middleware/jwk/index.js +0 -3
  270. package/dist/cjs/middleware/jwk/jwk.js +0 -122
  271. package/dist/cjs/middleware/jwt/index.js +0 -9
  272. package/dist/cjs/middleware/jwt/jwt.js +0 -124
  273. package/dist/cjs/middleware/language/index.js +0 -7
  274. package/dist/cjs/middleware/language/language.js +0 -208
  275. package/dist/cjs/middleware/logger/index.js +0 -51
  276. package/dist/cjs/middleware/method-not-allowed/index.js +0 -84
  277. package/dist/cjs/middleware/method-override/index.js +0 -105
  278. package/dist/cjs/middleware/mount/index.js +0 -71
  279. package/dist/cjs/middleware/powered-by/index.js +0 -25
  280. package/dist/cjs/middleware/pretty-json/index.js +0 -41
  281. package/dist/cjs/middleware/request-id/index.js +0 -3
  282. package/dist/cjs/middleware/request-id/request-id.js +0 -35
  283. package/dist/cjs/middleware/secure-headers/index.js +0 -4
  284. package/dist/cjs/middleware/secure-headers/permissions-policy.js +0 -0
  285. package/dist/cjs/middleware/secure-headers/secure-headers.js +0 -166
  286. package/dist/cjs/middleware/serve-static/index.js +0 -62
  287. package/dist/cjs/middleware/serve-static/path.js +0 -17
  288. package/dist/cjs/middleware/timeout/index.js +0 -42
  289. package/dist/cjs/middleware/timing/index.js +0 -7
  290. package/dist/cjs/middleware/timing/timing.js +0 -189
  291. package/dist/cjs/middleware/trailing-slash/index.js +0 -89
  292. package/dist/cjs/package.json +0 -3
  293. package/dist/cjs/preset/quick.js +0 -19
  294. package/dist/cjs/preset/tiny.js +0 -16
  295. package/dist/cjs/request/constants.js +0 -5
  296. package/dist/cjs/request.js +0 -337
  297. package/dist/cjs/router/linear-router/index.js +0 -3
  298. package/dist/cjs/router/linear-router/router.js +0 -97
  299. package/dist/cjs/router/pattern-router/index.js +0 -3
  300. package/dist/cjs/router/pattern-router/router.js +0 -42
  301. package/dist/cjs/router/reg-exp-router/index.js +0 -7
  302. package/dist/cjs/router/reg-exp-router/matcher.js +0 -21
  303. package/dist/cjs/router/reg-exp-router/node.js +0 -96
  304. package/dist/cjs/router/reg-exp-router/prepared-router.js +0 -97
  305. package/dist/cjs/router/reg-exp-router/router.js +0 -102
  306. package/dist/cjs/router/reg-exp-router/trie.js +0 -74
  307. package/dist/cjs/router/smart-router/index.js +0 -3
  308. package/dist/cjs/router/smart-router/router.js +0 -50
  309. package/dist/cjs/router/trie-router/index.js +0 -3
  310. package/dist/cjs/router/trie-router/node.js +0 -135
  311. package/dist/cjs/router/trie-router/router.js +0 -16
  312. package/dist/cjs/router/utils.js +0 -5
  313. package/dist/cjs/router.js +0 -40
  314. package/dist/cjs/types.js +0 -5
  315. package/dist/cjs/utils/accept.js +0 -194
  316. package/dist/cjs/utils/basic-auth.js +0 -21
  317. package/dist/cjs/utils/body.js +0 -97
  318. package/dist/cjs/utils/buffer.js +0 -55
  319. package/dist/cjs/utils/color.js +0 -39
  320. package/dist/cjs/utils/compress.js +0 -12
  321. package/dist/cjs/utils/concurrent.js +0 -31
  322. package/dist/cjs/utils/constants.js +0 -8
  323. package/dist/cjs/utils/cookie.js +0 -129
  324. package/dist/cjs/utils/crypto.js +0 -38
  325. package/dist/cjs/utils/encode.js +0 -37
  326. package/dist/cjs/utils/filepath.js +0 -27
  327. package/dist/cjs/utils/handler.js +0 -14
  328. package/dist/cjs/utils/headers.js +0 -0
  329. package/dist/cjs/utils/html.js +0 -109
  330. package/dist/cjs/utils/http-status.js +0 -0
  331. package/dist/cjs/utils/ipaddr.js +0 -247
  332. package/dist/cjs/utils/jwt/index.js +0 -15
  333. package/dist/cjs/utils/jwt/jwa.js +0 -25
  334. package/dist/cjs/utils/jwt/jws.js +0 -135
  335. package/dist/cjs/utils/jwt/jwt.js +0 -136
  336. package/dist/cjs/utils/jwt/types.js +0 -124
  337. package/dist/cjs/utils/jwt/utf8.js +0 -11
  338. package/dist/cjs/utils/mime.js +0 -80
  339. package/dist/cjs/utils/stream.js +0 -89
  340. package/dist/cjs/utils/types.js +0 -0
  341. package/dist/cjs/utils/url.js +0 -215
  342. package/dist/cjs/validator/index.js +0 -3
  343. package/dist/cjs/validator/utils.js +0 -0
  344. package/dist/cjs/validator/validator.js +0 -65
  345. package/dist/types/adapter/aws-lambda/conninfo.d.ts +0 -30
  346. package/dist/types/adapter/aws-lambda/handler.d.ts +0 -230
  347. package/dist/types/adapter/aws-lambda/index.d.ts +0 -4
  348. package/dist/types/adapter/aws-lambda/types.d.ts +0 -183
  349. package/dist/types/adapter/bun/conninfo.d.ts +0 -10
  350. package/dist/types/adapter/bun/index.d.ts +0 -6
  351. package/dist/types/adapter/bun/serve-static.d.ts +0 -8
  352. package/dist/types/adapter/bun/server.d.ts +0 -11
  353. package/dist/types/adapter/bun/ssg.d.ts +0 -17
  354. package/dist/types/adapter/bun/websocket.d.ts +0 -54
  355. package/dist/types/adapter/cloudflare-pages/conninfo.d.ts +0 -24
  356. package/dist/types/adapter/cloudflare-pages/handler.d.ts +0 -45
  357. package/dist/types/adapter/cloudflare-pages/index.d.ts +0 -3
  358. package/dist/types/adapter/cloudflare-workers/conninfo.d.ts +0 -7
  359. package/dist/types/adapter/cloudflare-workers/index.d.ts +0 -4
  360. package/dist/types/adapter/cloudflare-workers/serve-static-module.d.ts +0 -7
  361. package/dist/types/adapter/cloudflare-workers/serve-static.d.ts +0 -21
  362. package/dist/types/adapter/cloudflare-workers/utils.d.ts +0 -13
  363. package/dist/types/adapter/cloudflare-workers/websocket.d.ts +0 -7
  364. package/dist/types/adapter/deno/conninfo.d.ts +0 -10
  365. package/dist/types/adapter/deno/deno.d.ts +0 -1
  366. package/dist/types/adapter/deno/index.d.ts +0 -5
  367. package/dist/types/adapter/deno/serve-static.d.ts +0 -8
  368. package/dist/types/adapter/deno/ssg.d.ts +0 -17
  369. package/dist/types/adapter/deno/websocket.d.ts +0 -7
  370. package/dist/types/adapter/lambda-edge/conninfo.d.ts +0 -7
  371. package/dist/types/adapter/lambda-edge/handler.d.ts +0 -113
  372. package/dist/types/adapter/lambda-edge/index.d.ts +0 -3
  373. package/dist/types/adapter/netlify/conninfo.d.ts +0 -24
  374. package/dist/types/adapter/netlify/handler.d.ts +0 -7
  375. package/dist/types/adapter/netlify/index.d.ts +0 -3
  376. package/dist/types/adapter/netlify/mod.d.ts +0 -3
  377. package/dist/types/adapter/service-worker/handler.d.ts +0 -18
  378. package/dist/types/adapter/service-worker/index.d.ts +0 -26
  379. package/dist/types/adapter/service-worker/types.d.ts +0 -17
  380. package/dist/types/adapter/vercel/conninfo.d.ts +0 -7
  381. package/dist/types/adapter/vercel/handler.d.ts +0 -7
  382. package/dist/types/adapter/vercel/index.d.ts +0 -3
  383. package/dist/types/package.json +0 -3
  384. package/dist/types/utils/buffer.d.ts +0 -19
  385. package/dist/types/utils/color.d.ts +0 -23
  386. package/dist/{types/client → client}/client.d.ts +0 -0
  387. package/dist/{types/client → client}/fetch-result-please.d.ts +0 -0
  388. package/dist/{types/client → client}/index.d.ts +0 -0
  389. package/dist/{types/client → client}/types.d.ts +1 -1
  390. /package/dist/{types/client → client}/utils.d.ts +0 -0
  391. /package/dist/{types/helper → helper}/accepts/accepts.d.ts +0 -0
  392. /package/dist/{types/helper → helper}/accepts/index.d.ts +0 -0
  393. /package/dist/{types/helper → helper}/adapter/index.d.ts +0 -0
  394. /package/dist/{types/helper → helper}/conninfo/index.d.ts +0 -0
  395. /package/dist/{types/helper → helper}/conninfo/types.d.ts +0 -0
  396. /package/dist/{types/helper → helper}/cookie/index.d.ts +0 -0
  397. /package/dist/{types/helper → helper}/css/common.d.ts +0 -0
  398. /package/dist/{types/helper → helper}/css/index.d.ts +0 -0
  399. /package/dist/{types/helper → helper}/html/index.d.ts +0 -0
  400. /package/dist/{types/helper → helper}/proxy/index.d.ts +0 -0
  401. /package/dist/{types/helper → helper}/route/index.d.ts +0 -0
  402. /package/dist/{types/helper → helper}/ssg/index.d.ts +0 -0
  403. /package/dist/{types/helper → helper}/ssg/plugins.d.ts +0 -0
  404. /package/dist/{types/helper → helper}/ssg/utils.d.ts +0 -0
  405. /package/dist/{types/helper → helper}/streaming/index.d.ts +0 -0
  406. /package/dist/{types/helper → helper}/streaming/sse.d.ts +0 -0
  407. /package/dist/{types/helper → helper}/streaming/stream.d.ts +0 -0
  408. /package/dist/{types/helper → helper}/streaming/text.d.ts +0 -0
  409. /package/dist/{types/helper → helper}/streaming/utils.d.ts +0 -0
  410. /package/dist/{types/helper → helper}/testing/index.d.ts +0 -0
  411. /package/dist/{types/helper → helper}/websocket/index.d.ts +0 -0
  412. /package/dist/{types/http-exception.d.ts → http-exception.d.ts} +0 -0
  413. /package/dist/{types/index.d.ts → index.d.ts} +0 -0
  414. /package/dist/{types/jsx → jsx}/base.d.ts +0 -0
  415. /package/dist/{types/jsx → jsx}/children.d.ts +0 -0
  416. /package/dist/{types/jsx → jsx}/components.d.ts +0 -0
  417. /package/dist/{types/jsx → jsx}/constants.d.ts +0 -0
  418. /package/dist/{types/jsx → jsx}/context.d.ts +0 -0
  419. /package/dist/{types/jsx → jsx}/dom/client.d.ts +0 -0
  420. /package/dist/{types/jsx → jsx}/dom/components.d.ts +0 -0
  421. /package/dist/{types/jsx → jsx}/dom/context.d.ts +0 -0
  422. /package/dist/{types/jsx → jsx}/dom/css.d.ts +0 -0
  423. /package/dist/{types/jsx → jsx}/dom/hooks/index.d.ts +0 -0
  424. /package/dist/{types/jsx → jsx}/dom/index.d.ts +0 -0
  425. /package/dist/{types/jsx → jsx}/dom/intrinsic-element/components.d.ts +0 -0
  426. /package/dist/{types/jsx → jsx}/dom/jsx-dev-runtime.d.ts +0 -0
  427. /package/dist/{types/jsx → jsx}/dom/jsx-runtime.d.ts +0 -0
  428. /package/dist/{types/jsx → jsx}/dom/render.d.ts +0 -0
  429. /package/dist/{types/jsx → jsx}/dom/server.d.ts +0 -0
  430. /package/dist/{types/jsx → jsx}/dom/utils.d.ts +0 -0
  431. /package/dist/{types/jsx → jsx}/hooks/index.d.ts +0 -0
  432. /package/dist/{types/jsx → jsx}/index.d.ts +0 -0
  433. /package/dist/{types/jsx → jsx}/intrinsic-element/common.d.ts +0 -0
  434. /package/dist/{types/jsx → jsx}/intrinsic-element/components.d.ts +0 -0
  435. /package/dist/{types/jsx → jsx}/intrinsic-elements.d.ts +0 -0
  436. /package/dist/{types/jsx → jsx}/jsx-dev-runtime.d.ts +0 -0
  437. /package/dist/{types/jsx → jsx}/jsx-runtime.d.ts +0 -0
  438. /package/dist/{types/jsx → jsx}/streaming.d.ts +0 -0
  439. /package/dist/{types/jsx → jsx}/types.d.ts +0 -0
  440. /package/dist/{types/jsx → jsx}/utils.d.ts +0 -0
  441. /package/dist/{types/middleware → middleware}/body-limit/index.d.ts +0 -0
  442. /package/dist/{types/middleware → middleware}/cache/index.d.ts +0 -0
  443. /package/dist/{types/middleware → middleware}/combine/index.d.ts +0 -0
  444. /package/dist/{types/middleware → middleware}/compress/index.d.ts +0 -0
  445. /package/dist/{types/middleware → middleware}/context-storage/index.d.ts +0 -0
  446. /package/dist/{types/middleware → middleware}/cors/index.d.ts +0 -0
  447. /package/dist/{types/middleware → middleware}/csrf/index.d.ts +0 -0
  448. /package/dist/{types/middleware → middleware}/etag/digest.d.ts +0 -0
  449. /package/dist/{types/middleware → middleware}/etag/index.d.ts +0 -0
  450. /package/dist/{types/middleware → middleware}/ip-restriction/index.d.ts +0 -0
  451. /package/dist/{types/middleware → middleware}/jsx-renderer/index.d.ts +0 -0
  452. /package/dist/{types/middleware → middleware}/jwk/index.d.ts +0 -0
  453. /package/dist/{types/middleware → middleware}/jwk/jwk.d.ts +0 -0
  454. /package/dist/{types/middleware → middleware}/jwt/index.d.ts +0 -0
  455. /package/dist/{types/middleware → middleware}/jwt/jwt.d.ts +0 -0
  456. /package/dist/{types/middleware → middleware}/language/index.d.ts +0 -0
  457. /package/dist/{types/middleware → middleware}/language/language.d.ts +0 -0
  458. /package/dist/{types/middleware → middleware}/logger/index.d.ts +0 -0
  459. /package/dist/{types/middleware → middleware}/method-not-allowed/index.d.ts +0 -0
  460. /package/dist/{types/middleware → middleware}/method-override/index.d.ts +0 -0
  461. /package/dist/{types/middleware → middleware}/mount/index.d.ts +0 -0
  462. /package/dist/{types/middleware → middleware}/powered-by/index.d.ts +0 -0
  463. /package/dist/{types/middleware → middleware}/pretty-json/index.d.ts +0 -0
  464. /package/dist/{types/middleware → middleware}/request-id/index.d.ts +0 -0
  465. /package/dist/{types/middleware → middleware}/request-id/request-id.d.ts +0 -0
  466. /package/dist/{types/middleware → middleware}/secure-headers/index.d.ts +0 -0
  467. /package/dist/{types/middleware → middleware}/secure-headers/permissions-policy.d.ts +0 -0
  468. /package/dist/{types/middleware → middleware}/secure-headers/secure-headers.d.ts +0 -0
  469. /package/dist/{types/middleware → middleware}/serve-static/path.d.ts +0 -0
  470. /package/dist/{types/middleware → middleware}/timeout/index.d.ts +0 -0
  471. /package/dist/{types/middleware → middleware}/timing/index.d.ts +0 -0
  472. /package/dist/{types/middleware → middleware}/timing/timing.d.ts +0 -0
  473. /package/dist/{types/middleware → middleware}/trailing-slash/index.d.ts +0 -0
  474. /package/dist/{types/request → request}/constants.d.ts +0 -0
  475. /package/dist/{types/router → router}/linear-router/index.d.ts +0 -0
  476. /package/dist/{types/router → router}/linear-router/router.d.ts +0 -0
  477. /package/dist/{types/router → router}/pattern-router/index.d.ts +0 -0
  478. /package/dist/{types/router → router}/pattern-router/router.d.ts +0 -0
  479. /package/dist/{types/router → router}/reg-exp-router/index.d.ts +0 -0
  480. /package/dist/{types/router → router}/reg-exp-router/matcher.d.ts +0 -0
  481. /package/dist/{types/router → router}/reg-exp-router/node.d.ts +0 -0
  482. /package/dist/{types/router → router}/reg-exp-router/prepared-router.d.ts +0 -0
  483. /package/dist/{types/router → router}/reg-exp-router/router.d.ts +0 -0
  484. /package/dist/{types/router → router}/reg-exp-router/trie.d.ts +0 -0
  485. /package/dist/{types/router → router}/smart-router/index.d.ts +0 -0
  486. /package/dist/{types/router → router}/smart-router/router.d.ts +0 -0
  487. /package/dist/{types/router → router}/trie-router/index.d.ts +0 -0
  488. /package/dist/{types/router → router}/trie-router/node.d.ts +0 -0
  489. /package/dist/{types/router → router}/trie-router/router.d.ts +0 -0
  490. /package/dist/{types/router → router}/utils.d.ts +0 -0
  491. /package/dist/{types/router.d.ts → router.d.ts} +0 -0
  492. /package/dist/{types/utils → utils}/accept.d.ts +0 -0
  493. /package/dist/{types/utils → utils}/basic-auth.d.ts +0 -0
  494. /package/dist/{types/utils → utils}/body.d.ts +0 -0
  495. /package/dist/{types/utils → utils}/compress.d.ts +0 -0
  496. /package/dist/{types/utils → utils}/concurrent.d.ts +0 -0
  497. /package/dist/{types/utils → utils}/constants.d.ts +0 -0
  498. /package/dist/{types/utils → utils}/cookie.d.ts +0 -0
  499. /package/dist/{types/utils → utils}/crypto.d.ts +0 -0
  500. /package/dist/{types/utils → utils}/encode.d.ts +0 -0
  501. /package/dist/{types/utils → utils}/filepath.d.ts +0 -0
  502. /package/dist/{types/utils → utils}/handler.d.ts +0 -0
  503. /package/dist/{types/utils → utils}/headers.d.ts +0 -0
  504. /package/dist/{types/utils → utils}/html.d.ts +0 -0
  505. /package/dist/{types/utils → utils}/ipaddr.d.ts +0 -0
  506. /package/dist/{types/utils → utils}/jwt/index.d.ts +0 -0
  507. /package/dist/{types/utils → utils}/jwt/jwa.d.ts +0 -0
  508. /package/dist/{types/utils → utils}/jwt/jws.d.ts +0 -0
  509. /package/dist/{types/utils → utils}/jwt/jwt.d.ts +0 -0
  510. /package/dist/{types/utils → utils}/jwt/types.d.ts +0 -0
  511. /package/dist/{types/utils → utils}/jwt/utf8.d.ts +0 -0
  512. /package/dist/{types/utils → utils}/mime.d.ts +0 -0
  513. /package/dist/{types/utils → utils}/stream.d.ts +0 -0
  514. /package/dist/{types/utils → utils}/types.d.ts +0 -0
  515. /package/dist/{types/validator → validator}/index.d.ts +0 -0
  516. /package/dist/{types/validator → validator}/utils.d.ts +0 -0
@@ -1,9 +1,5 @@
1
1
  import { sha256 } from "./crypto.js";
2
2
  //#region src/utils/buffer.ts
3
- /**
4
- * @module
5
- * Buffer utility.
6
- */
7
3
  const equal = (a, b) => {
8
4
  if (a === b) return true;
9
5
  if (a.byteLength !== b.byteLength) return false;
@@ -25,7 +21,7 @@ const constantTimeEqualString = (a, b) => {
25
21
  }
26
22
  return out === 0;
27
23
  };
28
- const timingSafeEqualString = async (a, b, hashFunction) => {
24
+ const timingSafeEqual = async (a, b, hashFunction) => {
29
25
  if (!hashFunction) hashFunction = sha256;
30
26
  const [sa, sb] = await Promise.all([hashFunction(a), hashFunction(b)]);
31
27
  if (sa == null || sb == null || typeof sa !== "string" || typeof sb !== "string") return false;
@@ -33,13 +29,6 @@ const timingSafeEqualString = async (a, b, hashFunction) => {
33
29
  const originalEqual = constantTimeEqualString(a, b);
34
30
  return hashEqual && originalEqual;
35
31
  };
36
- const timingSafeEqual = async (a, b, hashFunction) => {
37
- if (typeof a === "string" && typeof b === "string") return timingSafeEqualString(a, b, hashFunction);
38
- if (!hashFunction) hashFunction = sha256;
39
- const [sa, sb] = await Promise.all([hashFunction(a), hashFunction(b)]);
40
- if (!sa || !sb || typeof sa !== "string" || typeof sb !== "string") return false;
41
- return timingSafeEqualString(sa, sb);
42
- };
43
32
  const bufferToString = (buffer) => {
44
33
  if (buffer instanceof ArrayBuffer) return new TextDecoder("utf-8").decode(buffer);
45
34
  return buffer;
@@ -0,0 +1,16 @@
1
+ //#region src/utils/color.d.ts
2
+ /**
3
+ * @module
4
+ * Color utility.
5
+ */
6
+ /**
7
+ * Get whether color change on terminal is enabled or disabled.
8
+ * If `NO_COLOR` is set in the provided bindings or runtime environment, this function returns `false`.
9
+ * Pass Cloudflare Workers bindings explicitly, for example `getColorEnabled(c.env)`.
10
+ * @see {@link https://no-color.org/}
11
+ *
12
+ * @param {object} [env] - Optional environment bindings to check in addition to the runtime environment.
13
+ * @returns {boolean}
14
+ */
15
+ export declare function getColorEnabled(env?: object): boolean;
16
+ //#endregion
@@ -1,37 +1,8 @@
1
1
  //#region src/utils/color.ts
2
- /**
3
- * @module
4
- * Color utility.
5
- */
6
- /**
7
- * Get whether color change on terminal is enabled or disabled.
8
- * If `NO_COLOR` environment variable is set, this function returns `false`.
9
- * Unlike getColorEnabledAsync(), this cannot check Cloudflare environment variables.
10
- * @see {@link https://no-color.org/}
11
- *
12
- * @returns {boolean}
13
- */
14
- function getColorEnabled() {
2
+ function getColorEnabled(env) {
3
+ if (env && "NO_COLOR" in env) return false;
15
4
  const { process, Deno } = globalThis;
16
- return !(typeof Deno?.noColor === "boolean" ? Deno.noColor : process !== void 0 ? "NO_COLOR" in process?.env : false);
17
- }
18
- /**
19
- * Get whether color change on terminal is enabled or disabled.
20
- * If `NO_COLOR` environment variable is set, this function returns `false`.
21
- * @see {@link https://no-color.org/}
22
- *
23
- * @returns {boolean}
24
- */
25
- async function getColorEnabledAsync() {
26
- const { navigator } = globalThis;
27
- const cfWorkers = "cloudflare:workers";
28
- return !(navigator !== void 0 && navigator.userAgent === "Cloudflare-Workers" ? await (async () => {
29
- try {
30
- return "NO_COLOR" in ((await import(cfWorkers)).env ?? {});
31
- } catch {
32
- return false;
33
- }
34
- })() : !getColorEnabled());
5
+ return !(typeof Deno?.noColor === "boolean" ? Deno.noColor : "NO_COLOR" in (process?.env ?? {}));
35
6
  }
36
7
  //#endregion
37
- export { getColorEnabled, getColorEnabledAsync };
8
+ export { getColorEnabled };
@@ -1,11 +1,4 @@
1
1
  //#region src/utils/compress.ts
2
- /**
3
- * @module
4
- * Constants for compression.
5
- */
6
- /**
7
- * Match for compressible content type.
8
- */
9
2
  const COMPRESSIBLE_CONTENT_TYPE_REGEX = /^\s*(?:text\/(?!event-stream(?:[;\s]|$))[^;\s]+|application\/(?:javascript|json|xml|xml-dtd|ecmascript|dart|msgpack|postscript|rtf|tar|toml|vnd\.dart|vnd\.ms-fontobject|vnd\.ms-opentype|vnd\.msgpack|wasm|x-httpd-php|x-javascript|x-msgpack|x-ns-proxy-autoconfig|x-sh|x-tar|x-virtualbox-hdd|x-virtualbox-ova|x-virtualbox-ovf|x-virtualbox-vbox|x-virtualbox-vdi|x-virtualbox-vhd|x-virtualbox-vmdk|x-www-form-urlencoded)|font\/(?:otf|ttf)|image\/(?:bmp|vnd\.adobe\.photoshop|vnd\.microsoft\.icon|vnd\.ms-dds|x-icon|x-ms-bmp)|message\/rfc822|model\/gltf-binary|x-shader\/x-fragment|x-shader\/x-vertex|[^;\s]+?\+(?:json|text|xml|yaml|msgpack))(?:[;\s]|$)/i;
10
3
  //#endregion
11
4
  export { COMPRESSIBLE_CONTENT_TYPE_REGEX };
@@ -1,8 +1,4 @@
1
1
  //#region src/utils/concurrent.ts
2
- /**
3
- * @module
4
- * Concurrent utility.
5
- */
6
2
  const DEFAULT_CONCURRENCY = 1024;
7
3
  const createPool = ({ concurrency, interval } = {}) => {
8
4
  concurrency ||= DEFAULT_CONCURRENCY;
@@ -1,7 +1,4 @@
1
1
  //#region src/utils/constants.ts
2
- /**
3
- * Constant used to mark a composed handler.
4
- */
5
2
  const COMPOSED_HANDLER = "__COMPOSED_HANDLER";
6
3
  //#endregion
7
4
  export { COMPOSED_HANDLER };
@@ -1,9 +1,5 @@
1
1
  import { tryDecodeURIComponent } from "./url.js";
2
2
  //#region src/utils/cookie.ts
3
- /**
4
- * @module
5
- * Cookie utility.
6
- */
7
3
  const algorithm = {
8
4
  name: "HMAC",
9
5
  hash: "SHA-256"
@@ -1,8 +1,4 @@
1
1
  //#region src/utils/encode.ts
2
- /**
3
- * @module
4
- * Encode utility.
5
- */
6
2
  const decodeBase64Url = (str) => {
7
3
  return decodeBase64(str.replace(/_|-/g, (m) => ({
8
4
  _: "/",
@@ -1,9 +1,5 @@
1
1
  import { COMPOSED_HANDLER } from "./constants.js";
2
2
  //#region src/utils/handler.ts
3
- /**
4
- * @module
5
- * Handler utility.
6
- */
7
3
  const isMiddleware = (handler) => handler.length > 1;
8
4
  const findTargetHandler = (handler) => {
9
5
  return handler["__COMPOSED_HANDLER"] ? findTargetHandler(handler[COMPOSED_HANDLER]) : handler;
@@ -1,8 +1,4 @@
1
1
  //#region src/utils/html.ts
2
- /**
3
- * @module
4
- * HTML utility.
5
- */
6
2
  const HtmlEscapedCallbackPhase = {
7
3
  Stringify: 1,
8
4
  BeforeStream: 2,
@@ -11,8 +11,8 @@ export type ClientErrorStatusCode = 400 | 401 | 402 | 403 | 404 | 405 | 406 | 40
11
11
  export type ServerErrorStatusCode = 500 | 501 | 502 | 503 | 504 | 505 | 506 | 507 | 508 | 510 | 511;
12
12
  /**
13
13
  * `UnofficialStatusCode` can be used to specify an unofficial status code.
14
- * @example
15
14
  *
15
+ * @example
16
16
  * ```ts
17
17
  * app.get('/unknown', (c) => {
18
18
  * return c.text("Unknown Error", 520 as UnofficialStatusCode)
@@ -20,14 +20,6 @@ export type ServerErrorStatusCode = 500 | 501 | 502 | 503 | 504 | 505 | 506 | 50
20
20
  * ```
21
21
  */
22
22
  export type UnofficialStatusCode = -1;
23
- /**
24
- * @deprecated
25
- * Use `UnofficialStatusCode` instead.
26
- */
27
- export type UnOfficalStatusCode = UnofficialStatusCode;
28
- /**
29
- * If you want to use an unofficial status, use `UnofficialStatusCode`.
30
- */
31
23
  export type StatusCode = InfoStatusCode | SuccessStatusCode | RedirectStatusCode | ClientErrorStatusCode | ServerErrorStatusCode | UnofficialStatusCode;
32
24
  export type ContentlessStatusCode = 101 | 204 | 205 | 304;
33
25
  export type ContentfulStatusCode = Exclude<StatusCode, ContentlessStatusCode>;
@@ -1,9 +1,4 @@
1
1
  //#region src/utils/ipaddr.ts
2
- /**
3
- * Expand IPv6 Address
4
- * @param ipV6 Shorten IPv6 Address
5
- * @return expanded IPv6 Address
6
- */
7
2
  const expandIPv6 = (ipV6) => {
8
3
  const sections = ipV6.split(":");
9
4
  const lastSection = sections.at(-1);
@@ -33,10 +28,6 @@ const CHAR_CODE_f = 102;
33
28
  const CHAR_CODE_DOT = 46;
34
29
  const CHAR_CODE_COLON = 58;
35
30
  const CHAR_CODE_PERCENT = 37;
36
- /**
37
- * Distinct Remote Addr
38
- * @param remoteAddr Remote Addr
39
- */
40
31
  const distinctRemoteAddr = (remoteAddr) => {
41
32
  if (IPV4_REGEX.test(remoteAddr)) return "IPv4";
42
33
  if (remoteAddr.includes(":")) return "IPv6";
@@ -84,19 +75,9 @@ const parseIPv6HexCode = (code) => {
84
75
  return -1;
85
76
  };
86
77
  const isIPv6LinkLocal = (ipv6binary) => ipv6binary >> 118n === 1018n;
87
- /**
88
- * Convert IPv4 to Uint8Array
89
- * @param ipv4 IPv4 Address
90
- * @returns BigInt
91
- */
92
78
  const convertIPv4ToBinary = (ipv4) => {
93
79
  return parseIPv4ToBinary(ipv4, 0, ipv4.length, () => throwInvalidIPv4Address(ipv4));
94
80
  };
95
- /**
96
- * Convert IPv6 to Uint8Array
97
- * @param ipv6 IPv6 Address
98
- * @returns BigInt
99
- */
100
81
  const convertIPv6ToBinary = (ipv6) => {
101
82
  const length = ipv6.length;
102
83
  const sections = [];
@@ -181,33 +162,13 @@ const convertIPv6ToBinary = (ipv6) => {
181
162
  if (hasZoneId && !isIPv6LinkLocal(result)) throwInvalidIPv6Address(ipv6);
182
163
  return result;
183
164
  };
184
- /**
185
- * Convert a binary representation of an IPv4 address to a string.
186
- * @param ipV4 binary IPv4 Address
187
- * @return IPv4 Address in string
188
- */
189
165
  const convertIPv4BinaryToString = (ipV4) => {
190
166
  const sections = [];
191
167
  for (let i = 0; i < 4; i++) sections.push(ipV4 >> BigInt(8 * (3 - i)) & 255n);
192
168
  return sections.join(".");
193
169
  };
194
- /**
195
- * Check if a binary IPv6 address is an IPv4-mapped IPv6 address (::ffff:x.x.x.x)
196
- * @param ipv6binary binary IPv6 Address
197
- * @return true if the address is an IPv4-mapped IPv6 address
198
- */
199
170
  const isIPv4MappedIPv6 = (ipv6binary) => ipv6binary >> 32n === 65535n;
200
- /**
201
- * Extract the IPv4 portion from an IPv4-mapped IPv6 address
202
- * @param ipv6binary binary IPv4-mapped IPv6 Address
203
- * @return binary IPv4 Address
204
- */
205
171
  const convertIPv4MappedIPv6ToIPv4 = (ipv6binary) => ipv6binary & 4294967295n;
206
- /**
207
- * Convert a binary representation of an IPv6 address to a string.
208
- * @param ipV6 binary IPv6 Address
209
- * @return normalized IPv6 Address in string
210
- */
211
172
  const convertIPv6BinaryToString = (ipV6) => {
212
173
  if (ipV6 === 0n) return "::";
213
174
  if (isIPv4MappedIPv6(ipV6)) return `::ffff:${convertIPv4BinaryToString(convertIPv4MappedIPv6ToIPv4(ipV6))}`;
@@ -1,9 +1,5 @@
1
1
  import { decode, sign, verify, verifyWithJwks } from "./jwt.js";
2
2
  //#region src/utils/jwt/index.ts
3
- /**
4
- * @module
5
- * JWT utility.
6
- */
7
3
  const Jwt = {
8
4
  sign,
9
5
  verify,
@@ -1,9 +1,4 @@
1
1
  //#region src/utils/jwt/jwa.ts
2
- /**
3
- * @module
4
- * JSON Web Algorithms (JWA)
5
- * https://datatracker.ietf.org/doc/html/rfc7518
6
- */
7
2
  let AlgorithmTypes = /* @__PURE__ */ function(AlgorithmTypes) {
8
3
  AlgorithmTypes["HS256"] = "HS256";
9
4
  AlgorithmTypes["HS384"] = "HS384";
@@ -3,11 +3,6 @@ import { getRuntimeKey } from "../../helper/adapter/index.js";
3
3
  import { JwtAlgorithmNotImplemented } from "./types.js";
4
4
  import { utf8Encoder } from "./utf8.js";
5
5
  //#region src/utils/jwt/jws.ts
6
- /**
7
- * @module
8
- * JSON Web Signature (JWS)
9
- * https://datatracker.ietf.org/doc/html/rfc7515
10
- */
11
6
  async function signing(privateKey, alg, data) {
12
7
  const algorithm = getKeyAlgorithm(alg);
13
8
  const cryptoKey = await importPrivateKey(privateKey, algorithm);
@@ -4,11 +4,6 @@ import { JwtAlgorithmMismatch, JwtAlgorithmNotAllowed, JwtAlgorithmRequired, Jwt
4
4
  import { utf8Decoder, utf8Encoder } from "./utf8.js";
5
5
  import { signing, verifying } from "./jws.js";
6
6
  //#region src/utils/jwt/jwt.ts
7
- /**
8
- * @module
9
- * JSON Web Token (JWT)
10
- * https://datatracker.ietf.org/doc/html/rfc7519
11
- */
12
7
  const encodeJwtPart = (part) => encodeBase64Url(utf8Encoder.encode(JSON.stringify(part)).buffer).replace(/=/g, "");
13
8
  const encodeSignaturePart = (buf) => encodeBase64Url(buf).replace(/=/g, "");
14
9
  const decodeJwtPart = (part) => JSON.parse(utf8Decoder.decode(decodeBase64Url(part)));
@@ -1,8 +1,4 @@
1
1
  //#region src/utils/jwt/types.ts
2
- /**
3
- * @module
4
- * Type definitions for JWT utilities.
5
- */
6
2
  var JwtAlgorithmNotImplemented = class extends Error {
7
3
  constructor(alg) {
8
4
  super(`${alg} is not an implemented algorithm`);
@@ -1,8 +1,4 @@
1
1
  //#region src/utils/jwt/utf8.ts
2
- /**
3
- * @module
4
- * Functions for encoding/decoding UTF8.
5
- */
6
2
  const utf8Encoder = new TextEncoder();
7
3
  const utf8Decoder = new TextDecoder();
8
4
  //#endregion
@@ -1,8 +1,4 @@
1
1
  //#region src/utils/mime.ts
2
- /**
3
- * @module
4
- * MIME utility.
5
- */
6
2
  const getMimeType = (filename, mimes = baseMimes) => {
7
3
  const match = filename.match(/\.([a-zA-Z0-9]+?)$/);
8
4
  if (!match) return;
@@ -1,21 +1,11 @@
1
1
  //#region src/utils/stream.ts
2
- /**
3
- * @module
4
- * Stream utility.
5
- */
6
2
  var StreamingApi = class {
7
3
  writer;
8
4
  encoder;
9
5
  writable;
10
6
  abortSubscribers = [];
11
7
  responseReadable;
12
- /**
13
- * Whether the stream has been aborted.
14
- */
15
8
  aborted = false;
16
- /**
17
- * Whether the stream has been closed normally.
18
- */
19
9
  closed = false;
20
10
  constructor(writable, _readable) {
21
11
  this.writable = writable;
@@ -69,10 +59,6 @@ var StreamingApi = class {
69
59
  onAbort(listener) {
70
60
  this.abortSubscribers.push(listener);
71
61
  }
72
- /**
73
- * Abort the stream.
74
- * You can call this method when stream is aborted by external event.
75
- */
76
62
  abort() {
77
63
  if (!this.aborted) {
78
64
  this.aborted = true;
@@ -20,11 +20,6 @@ export declare const tryDecode: (str: string, decoder: Decoder) => string;
20
20
  */
21
21
  export declare const tryDecodeURI: (str: string) => string;
22
22
  export declare const getPath: (request: Request) => string;
23
- /**
24
- * @deprecated
25
- * Use the `URL` API instead.
26
- */
27
- export declare const getQueryStrings: (url: string) => string;
28
23
  export declare const getPathNoStrict: (request: Request) => string;
29
24
  /**
30
25
  * Merge paths.
package/dist/utils/url.js CHANGED
@@ -70,15 +70,6 @@ const tryDecode = (str, decoder) => {
70
70
  });
71
71
  }
72
72
  };
73
- /**
74
- * Try to apply decodeURI() to given string.
75
- * If it fails, skip invalid percent encoding or invalid UTF-8 sequences, and apply decodeURI() to the rest as much as possible.
76
- * @param str The string to decode.
77
- * @returns The decoded string that sometimes contains undecodable percent encoding.
78
- * @example
79
- * tryDecodeURI('Hello%20World') // 'Hello World'
80
- * tryDecodeURI('Hello%20World/%A4%A2') // 'Hello World/%A4%A2'
81
- */
82
73
  const tryDecodeURI = (str) => tryDecode(str, decodeURI);
83
74
  const getPath = (request) => {
84
75
  const url = request.url;
@@ -96,30 +87,10 @@ const getPath = (request) => {
96
87
  }
97
88
  return url.slice(start, i);
98
89
  };
99
- /**
100
- * @deprecated
101
- * Use the `URL` API instead.
102
- */
103
- const getQueryStrings = (url) => {
104
- const queryIndex = url.indexOf("?", 8);
105
- if (queryIndex === -1) return "";
106
- const hashIndex = url.indexOf("#", 8);
107
- return hashIndex === -1 ? url.slice(queryIndex) : queryIndex < hashIndex ? url.slice(queryIndex, hashIndex) : "";
108
- };
109
90
  const getPathNoStrict = (request) => {
110
91
  const result = getPath(request);
111
92
  return result.length > 1 && result.at(-1) === "/" ? result.slice(0, -1) : result;
112
93
  };
113
- /**
114
- * Merge paths.
115
- * @param {string[]} ...paths - The paths to merge.
116
- * @returns {string} The merged path.
117
- * @example
118
- * mergePath('/api', '/users') // '/api/users'
119
- * mergePath('/api/', '/users') // '/api/users'
120
- * mergePath('/api', '/') // '/api'
121
- * mergePath('/api/', '/') // '/api/'
122
- */
123
94
  const mergePath = (base, sub, ...rest) => {
124
95
  if (rest.length) sub = mergePath(sub, ...rest);
125
96
  return `${base?.[0] === "/" ? "" : "/"}${base}${sub === "/" ? "" : `${base?.at(-1) === "/" ? "" : "/"}${sub?.[0] === "/" ? sub.slice(1) : sub}`}`;
@@ -198,4 +169,4 @@ const getQueryParams = (url, key) => {
198
169
  };
199
170
  const decodeURIComponent_ = decodeURIComponent;
200
171
  //#endregion
201
- export { checkOptionalParameter, decodeURIComponent_, getPath, getPathNoStrict, getPattern, getQueryParam, getQueryParams, getQueryStrings, mergePath, splitPath, splitRoutingPath, tryDecode, tryDecodeURI, tryDecodeURIComponent };
172
+ export { checkOptionalParameter, decodeURIComponent_, getPath, getPathNoStrict, getPattern, getQueryParam, getQueryParams, mergePath, splitPath, splitRoutingPath, tryDecode, tryDecodeURI, tryDecodeURIComponent };
@@ -6,6 +6,11 @@ type ValidationTargetKeysWithBody = 'form' | 'json';
6
6
  type ValidationTargetByMethod<M> = M extends 'get' | 'head' ? Exclude<keyof ValidationTargets, ValidationTargetKeysWithBody> : keyof ValidationTargets;
7
7
  export type ValidationFunction<InputType, OutputType, E extends Env = {}, P extends string = string> = (value: InputType, c: Context<E, P>) => OutputType | TypedResponse | Promise<OutputType> | Promise<TypedResponse>;
8
8
  export type ExtractValidationResponse<VF> = VF extends ((value: any, c: any) => infer R) ? R extends Promise<infer PR> ? PR extends TypedResponse<infer T, infer S, infer F> ? TypedResponse<T, S, F> : PR extends Response ? PR : PR extends undefined ? never : never : R extends TypedResponse<infer T, infer S, infer F> ? TypedResponse<T, S, F> : R extends Response ? R : R extends undefined ? never : never : never;
9
+ /**
10
+ * Get the value of the validation target from the request.
11
+ * Returns a Promise only for `json` and `form`.
12
+ */
13
+ export declare const getValidationTarget: (c: Context, target: keyof ValidationTargets) => unknown | Promise<unknown>;
9
14
  export declare const validator: <InputType, P extends string, M extends string, U extends ValidationTargetByMethod<M>, P2 extends string = P, VF extends (value: unknown extends InputType ? ValidationTargets[U] : InputType, c: Context<any, P2>) => any = (value: unknown extends InputType ? ValidationTargets[U] : InputType, c: Context<any, P2>) => any, V extends {
10
15
  in: { [K in U]: K extends "json" ? unknown extends InputType ? ExtractValidatorOutput<VF> : InputType : InferInput<ExtractValidatorOutput<VF>, K, FormValue>; };
11
16
  out: { [K in U]: ExtractValidatorOutput<VF>; };
@@ -5,60 +5,53 @@ import { getCookie } from "../helper/cookie/index.js";
5
5
  const jsonRegex = /^application\/([a-z-\.]+\+)?json(;\s*[a-zA-Z0-9\-]+\=([^;]+))*$/i;
6
6
  const multipartRegex = /^multipart\/form-data(;\s?boundary=[a-zA-Z0-9'"()+_,\-./:=?]+)?$/i;
7
7
  const urlencodedRegex = /^application\/x-www-form-urlencoded(;\s*[a-zA-Z0-9\-]+\=([^;]+))*$/i;
8
+ const getValidationTarget = (c, target) => {
9
+ const contentType = c.req.header("Content-Type");
10
+ switch (target) {
11
+ case "json":
12
+ if (!contentType || !jsonRegex.test(contentType)) return {};
13
+ return c.req.json().catch(() => {
14
+ throw new HTTPException(400, { message: "Malformed JSON in request body" });
15
+ });
16
+ case "form":
17
+ if (!contentType || !(multipartRegex.test(contentType) || urlencodedRegex.test(contentType))) return {};
18
+ return getForm(c, contentType);
19
+ case "query": return Object.fromEntries(Object.entries(c.req.queries()).map(([k, v]) => {
20
+ return v?.length === 1 ? [k, v[0]] : [k, v];
21
+ }));
22
+ case "param": return c.req.param();
23
+ case "header": return c.req.header();
24
+ case "cookie": return getCookie(c);
25
+ }
26
+ };
27
+ const getForm = async (c, contentType) => {
28
+ let formData;
29
+ if (c.req.bodyCache.formData) formData = await c.req.bodyCache.formData;
30
+ else try {
31
+ const arrayBuffer = await c.req.arrayBuffer();
32
+ formData = await bufferToFormData(arrayBuffer, contentType);
33
+ c.req.bodyCache.formData = formData;
34
+ } catch (e) {
35
+ let message = "Malformed FormData request.";
36
+ message += e instanceof Error ? ` ${e.message}` : ` ${String(e)}`;
37
+ throw new HTTPException(400, { message });
38
+ }
39
+ const form = Object.create(null);
40
+ formData.forEach((value, key) => {
41
+ if (key.endsWith("[]")) (form[key] ??= []).push(value);
42
+ else if (Array.isArray(form[key])) form[key].push(value);
43
+ else if (Object.hasOwn(form, key)) form[key] = [form[key], value];
44
+ else form[key] = value;
45
+ });
46
+ return form;
47
+ };
8
48
  const validator = (target, validationFunc) => {
9
49
  return async (c, next) => {
10
- let value = {};
11
- const contentType = c.req.header("Content-Type");
12
- switch (target) {
13
- case "json":
14
- if (!contentType || !jsonRegex.test(contentType)) break;
15
- try {
16
- value = await c.req.json();
17
- } catch {
18
- throw new HTTPException(400, { message: "Malformed JSON in request body" });
19
- }
20
- break;
21
- case "form": {
22
- if (!contentType || !(multipartRegex.test(contentType) || urlencodedRegex.test(contentType))) break;
23
- let formData;
24
- if (c.req.bodyCache.formData) formData = await c.req.bodyCache.formData;
25
- else try {
26
- const arrayBuffer = await c.req.arrayBuffer();
27
- formData = await bufferToFormData(arrayBuffer, contentType);
28
- c.req.bodyCache.formData = formData;
29
- } catch (e) {
30
- let message = "Malformed FormData request.";
31
- message += e instanceof Error ? ` ${e.message}` : ` ${String(e)}`;
32
- throw new HTTPException(400, { message });
33
- }
34
- const form = Object.create(null);
35
- formData.forEach((value, key) => {
36
- if (key.endsWith("[]")) (form[key] ??= []).push(value);
37
- else if (Array.isArray(form[key])) form[key].push(value);
38
- else if (Object.hasOwn(form, key)) form[key] = [form[key], value];
39
- else form[key] = value;
40
- });
41
- value = form;
42
- break;
43
- }
44
- case "query":
45
- value = Object.fromEntries(Object.entries(c.req.queries()).map(([k, v]) => {
46
- return v.length === 1 ? [k, v[0]] : [k, v];
47
- }));
48
- break;
49
- case "param":
50
- value = c.req.param();
51
- break;
52
- case "header":
53
- value = c.req.header();
54
- break;
55
- case "cookie": value = getCookie(c);
56
- }
57
- const res = await validationFunc(value, c);
50
+ const res = await validationFunc(await getValidationTarget(c, target), c);
58
51
  if (res instanceof Response) return res;
59
52
  c.req.addValidatedData(target, res);
60
53
  return await next();
61
54
  };
62
55
  };
63
56
  //#endregion
64
- export { validator };
57
+ export { getValidationTarget, validator };