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,337 +0,0 @@
1
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_http_exception = require("./http-exception.js");
3
- const require_request_constants = require("./request/constants.js");
4
- const require_utils_body = require("./utils/body.js");
5
- const require_utils_url = require("./utils/url.js");
6
- //#region src/request.ts
7
- var HonoRequest = class {
8
- /**
9
- * `.raw` can get the raw Request object.
10
- *
11
- * @see {@link https://hono.dev/docs/api/request#raw}
12
- *
13
- * @example
14
- * ```ts
15
- * // For Cloudflare Workers
16
- * app.post('/', async (c) => {
17
- * const metadata = c.req.raw.cf?.hostMetadata?
18
- * ...
19
- * })
20
- * ```
21
- */
22
- raw;
23
- #validatedData;
24
- #matchResult;
25
- routeIndex = 0;
26
- /**
27
- * `.path` can get the pathname of the request.
28
- *
29
- * @see {@link https://hono.dev/docs/api/request#path}
30
- *
31
- * @example
32
- * ```ts
33
- * app.get('/about/me', (c) => {
34
- * const pathname = c.req.path // `/about/me`
35
- * })
36
- * ```
37
- */
38
- path;
39
- bodyCache = {};
40
- constructor(request, path = "/", matchResult = [[]]) {
41
- this.raw = request;
42
- this.path = path;
43
- this.#matchResult = matchResult;
44
- }
45
- param(key) {
46
- return key ? this.#getDecodedParam(key) : this.#getAllDecodedParams();
47
- }
48
- #getDecodedParam(key) {
49
- const paramKey = this.#matchResult[0][this.routeIndex]?.[1][key];
50
- const param = this.#getParamValue(paramKey);
51
- return param && require_utils_url.tryDecodeURIComponent(param);
52
- }
53
- #getAllDecodedParams() {
54
- const decoded = {};
55
- const keys = Object.keys(this.#matchResult[0][this.routeIndex]?.[1] ?? {});
56
- for (const key of keys) {
57
- const value = this.#getParamValue(this.#matchResult[0][this.routeIndex][1][key]);
58
- if (value !== void 0) decoded[key] = require_utils_url.tryDecodeURIComponent(value);
59
- }
60
- return decoded;
61
- }
62
- #getParamValue(paramKey) {
63
- return this.#matchResult[1] ? this.#matchResult[1][paramKey] : paramKey;
64
- }
65
- query(key) {
66
- return require_utils_url.getQueryParam(this.url, key);
67
- }
68
- queries(key) {
69
- return require_utils_url.getQueryParams(this.url, key);
70
- }
71
- header(name) {
72
- if (name) return this.raw.headers.get(name) ?? void 0;
73
- const headerData = Object.create(null);
74
- this.raw.headers.forEach((value, key) => {
75
- headerData[key] = value;
76
- });
77
- return headerData;
78
- }
79
- async parseBody(options) {
80
- return require_utils_body.parseBody(this, options);
81
- }
82
- #cachedBody = (key) => {
83
- const { bodyCache, raw } = this;
84
- const cachedBody = bodyCache[key];
85
- if (cachedBody) return cachedBody;
86
- for (const anyCachedKey in bodyCache) return bodyCache[anyCachedKey].then((body) => {
87
- if (anyCachedKey === "json") body = JSON.stringify(body);
88
- const contentType = anyCachedKey === "formData" ? void 0 : raw.headers.get("content-type");
89
- return new Response(body, { headers: contentType ? { "Content-Type": contentType } : void 0 })[key]();
90
- });
91
- return bodyCache[key] = raw[key]();
92
- };
93
- /**
94
- * `.json()` can parse Request body of type `application/json`
95
- *
96
- * @see {@link https://hono.dev/docs/api/request#json}
97
- *
98
- * @example
99
- * ```ts
100
- * app.post('/entry', async (c) => {
101
- * const body = await c.req.json()
102
- * })
103
- * ```
104
- */
105
- json() {
106
- return this.#cachedBody("text").then((text) => JSON.parse(text));
107
- }
108
- /**
109
- * `.text()` can parse Request body of type `text/plain`
110
- *
111
- * @see {@link https://hono.dev/docs/api/request#text}
112
- *
113
- * @example
114
- * ```ts
115
- * app.post('/entry', async (c) => {
116
- * const body = await c.req.text()
117
- * })
118
- * ```
119
- */
120
- text() {
121
- return this.#cachedBody("text");
122
- }
123
- /**
124
- * `.arrayBuffer()` parse Request body as an `ArrayBuffer`
125
- *
126
- * @see {@link https://hono.dev/docs/api/request#arraybuffer}
127
- *
128
- * @example
129
- * ```ts
130
- * app.post('/entry', async (c) => {
131
- * const body = await c.req.arrayBuffer()
132
- * })
133
- * ```
134
- */
135
- arrayBuffer() {
136
- return this.#cachedBody("arrayBuffer");
137
- }
138
- /**
139
- * `.bytes()` parses the request body as a `Uint8Array`.
140
- *
141
- * @see {@link https://hono.dev/docs/api/request#bytes}
142
- *
143
- * @example
144
- * ```ts
145
- * app.post('/entry', async (c) => {
146
- * const body = await c.req.bytes()
147
- * })
148
- * ```
149
- */
150
- bytes() {
151
- return this.#cachedBody("arrayBuffer").then((buffer) => new Uint8Array(buffer));
152
- }
153
- /**
154
- * Parses the request body as a `Blob`.
155
- * @example
156
- * ```ts
157
- * app.post('/entry', async (c) => {
158
- * const body = await c.req.blob();
159
- * });
160
- * ```
161
- * @see https://hono.dev/docs/api/request#blob
162
- */
163
- blob() {
164
- return this.#cachedBody("blob");
165
- }
166
- /**
167
- * Parses the request body as `FormData`.
168
- * @example
169
- * ```ts
170
- * app.post('/entry', async (c) => {
171
- * const body = await c.req.formData();
172
- * });
173
- * ```
174
- * @see https://hono.dev/docs/api/request#formdata
175
- */
176
- formData() {
177
- return this.#cachedBody("formData");
178
- }
179
- /**
180
- * Adds validated data to the request.
181
- *
182
- * @param target - The target of the validation.
183
- * @param data - The validated data to add.
184
- */
185
- addValidatedData(target, data) {
186
- (this.#validatedData ??= {})[target] = data;
187
- }
188
- valid(target) {
189
- return this.#validatedData?.[target];
190
- }
191
- /**
192
- * `.url` can get the request url strings.
193
- *
194
- * @see {@link https://hono.dev/docs/api/request#url}
195
- *
196
- * @example
197
- * ```ts
198
- * app.get('/about/me', (c) => {
199
- * const url = c.req.url // `http://localhost:8787/about/me`
200
- * ...
201
- * })
202
- * ```
203
- */
204
- get url() {
205
- return this.raw.url;
206
- }
207
- /**
208
- * `.method` can get the method name of the request.
209
- *
210
- * @see {@link https://hono.dev/docs/api/request#method}
211
- *
212
- * @example
213
- * ```ts
214
- * app.get('/about/me', (c) => {
215
- * const method = c.req.method // `GET`
216
- * })
217
- * ```
218
- */
219
- get method() {
220
- return this.raw.method;
221
- }
222
- get [require_request_constants.GET_MATCH_RESULT]() {
223
- return this.#matchResult;
224
- }
225
- /**
226
- * `.matchedRoutes` can return a matched route in the handler
227
- *
228
- * @deprecated
229
- *
230
- * Use matchedRoutes helper defined in "hono/route" instead.
231
- *
232
- * @see {@link https://hono.dev/docs/api/request#matchedroutes}
233
- *
234
- * @example
235
- * ```ts
236
- * app.use('*', async function logger(c, next) {
237
- * await next()
238
- * c.req.matchedRoutes.forEach(({ handler, method, path }, i) => {
239
- * const name = handler.name || (handler.length < 2 ? '[handler]' : '[middleware]')
240
- * console.log(
241
- * method,
242
- * ' ',
243
- * path,
244
- * ' '.repeat(Math.max(10 - path.length, 0)),
245
- * name,
246
- * i === c.req.routeIndex ? '<- respond from here' : ''
247
- * )
248
- * })
249
- * })
250
- * ```
251
- */
252
- get matchedRoutes() {
253
- return this.#matchResult[0].map(([[, route]]) => route);
254
- }
255
- /**
256
- * `.routePath` can retrieve the path registered within the handler
257
- *
258
- * @deprecated
259
- *
260
- * Use routePath helper defined in "hono/route" instead.
261
- *
262
- * @see {@link https://hono.dev/docs/api/request#routepath}
263
- *
264
- * @example
265
- * ```ts
266
- * app.get('/posts/:id', (c) => {
267
- * return c.json({ path: c.req.routePath })
268
- * })
269
- * ```
270
- */
271
- get routePath() {
272
- return this.#matchResult[0].map(([[, route]]) => route)[this.routeIndex].path;
273
- }
274
- };
275
- /**
276
- * Clones a HonoRequest's underlying raw Request object.
277
- *
278
- * This utility handles both consumed and unconsumed request bodies:
279
- * - If the request body hasn't been consumed, it uses the native `clone()` method
280
- * - If the request body has been consumed, it reconstructs a new Request using cached body data
281
- *
282
- * This is particularly useful when you need to:
283
- * - Process the same request body multiple times
284
- * - Pass requests to external services after validation
285
- *
286
- * @param req - The HonoRequest object to clone
287
- * @returns A Promise that resolves to a new Request object with the same properties
288
- * @throws {HTTPException} If the request body was consumed directly via `req.raw`
289
- * without using HonoRequest methods (e.g., `req.json()`, `req.text()`), making it
290
- * impossible to reconstruct the body from cache
291
- *
292
- * @example
293
- * ```ts
294
- * // Clone after consuming the body (e.g., after validation)
295
- * app.post('/forward',
296
- * validator('json', (data) => data),
297
- * async (c) => {
298
- * const validated = c.req.valid('json')
299
- * // Body has been consumed, but cloneRawRequest still works
300
- * const clonedReq = await cloneRawRequest(c.req)
301
- * return fetch('http://backend-service.com', clonedReq)
302
- * }
303
- * )
304
- * ```
305
- */
306
- const cloneRawRequest = async (req) => {
307
- if (!req.raw.bodyUsed) return req.raw.clone();
308
- const cacheKey = Object.keys(req.bodyCache)[0];
309
- if (!cacheKey) throw new require_http_exception.HTTPException(500, { message: "Cannot clone request: body was already consumed and not cached. Please use HonoRequest methods (e.g., req.json(), req.text()) instead of consuming req.raw directly." });
310
- let body = await req[cacheKey]();
311
- const headers = req.header();
312
- if (cacheKey === "json") {
313
- body = JSON.stringify(body);
314
- delete headers["content-length"];
315
- } else if (body instanceof FormData) {
316
- delete headers["content-type"];
317
- delete headers["content-length"];
318
- }
319
- const requestInit = {
320
- body,
321
- cache: req.raw.cache,
322
- credentials: req.raw.credentials,
323
- headers,
324
- integrity: req.raw.integrity,
325
- keepalive: req.raw.keepalive,
326
- method: req.method,
327
- mode: req.raw.mode,
328
- redirect: req.raw.redirect,
329
- referrer: req.raw.referrer,
330
- referrerPolicy: req.raw.referrerPolicy,
331
- signal: req.raw.signal
332
- };
333
- return new Request(req.url, requestInit);
334
- };
335
- //#endregion
336
- exports.HonoRequest = HonoRequest;
337
- exports.cloneRawRequest = cloneRawRequest;
@@ -1,3 +0,0 @@
1
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_router_linear_router_router = require("./router.js");
3
- exports.LinearRouter = require_router_linear_router_router.LinearRouter;
@@ -1,97 +0,0 @@
1
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_utils_url = require("../../utils/url.js");
3
- const require_router = require("../../router.js");
4
- //#region src/router/linear-router/router.ts
5
- const emptyParams = Object.create(null);
6
- const splitPathRe = /\/(:\w+(?:{(?:(?:{[\d,]+})|[^}])+})?)|\/[^\/\?]+|(\?)/g;
7
- const splitByStarRe = /\*/;
8
- var LinearRouter = class {
9
- name = "LinearRouter";
10
- #routes = [];
11
- add(method, path, handler) {
12
- for (let i = 0, paths = require_utils_url.checkOptionalParameter(path) || [path], len = paths.length; i < len; i++) this.#routes.push([
13
- method,
14
- paths[i],
15
- handler
16
- ]);
17
- }
18
- match(method, path) {
19
- const handlers = [];
20
- ROUTES_LOOP: for (let i = 0, len = this.#routes.length; i < len; i++) {
21
- const [routeMethod, routePath, handler] = this.#routes[i];
22
- if (routeMethod === method || routeMethod === "ALL") {
23
- if (routePath === "*" || routePath === "/*") {
24
- handlers.push([handler, emptyParams]);
25
- continue;
26
- }
27
- const hasStar = routePath.indexOf("*") !== -1;
28
- const hasLabel = routePath.indexOf(":") !== -1;
29
- if (!hasStar && !hasLabel) {
30
- if (routePath === path || routePath + "/" === path) handlers.push([handler, emptyParams]);
31
- } else if (hasStar && !hasLabel) {
32
- const endsWithStar = routePath.charCodeAt(routePath.length - 1) === 42;
33
- const endsWithSlashStar = routePath.endsWith("/*");
34
- const parts = (endsWithStar ? routePath.slice(0, endsWithSlashStar ? -2 : -1) : routePath).split(splitByStarRe);
35
- const lastIndex = parts.length - 1;
36
- for (let j = 0, pos = 0, len = parts.length; j < len; j++) {
37
- const part = parts[j];
38
- if (path.indexOf(part, pos) !== pos) continue ROUTES_LOOP;
39
- pos += part.length;
40
- if (j === lastIndex) {
41
- if (endsWithSlashStar) {
42
- if (pos !== path.length && path.charCodeAt(pos) !== 47) continue ROUTES_LOOP;
43
- } else if (!endsWithStar && pos !== path.length && !(pos === path.length - 1 && path.charCodeAt(pos) === 47)) continue ROUTES_LOOP;
44
- } else {
45
- const index = path.indexOf("/", pos);
46
- if (index === -1) continue ROUTES_LOOP;
47
- pos = index;
48
- }
49
- }
50
- handlers.push([handler, emptyParams]);
51
- } else if (hasLabel && !hasStar) {
52
- const params = Object.create(null);
53
- const parts = routePath.match(splitPathRe);
54
- const lastIndex = parts.length - 1;
55
- for (let j = 0, pos = 0, len = parts.length; j < len; j++) {
56
- if (pos === -1 || pos >= path.length) continue ROUTES_LOOP;
57
- const part = parts[j];
58
- if (part.charCodeAt(1) === 58) {
59
- if (path.charCodeAt(pos) !== 47) continue ROUTES_LOOP;
60
- let name = part.slice(2);
61
- let value;
62
- if (name.charCodeAt(name.length - 1) === 125) {
63
- const openBracePos = name.indexOf("{");
64
- const next = parts[j + 1];
65
- const lookahead = next && next[1] !== ":" && next[1] !== "*" ? `(?=${next})` : "";
66
- const pattern = name.slice(openBracePos + 1, -1) + lookahead;
67
- const restPath = path.slice(pos + 1);
68
- const match = new RegExp(pattern, "d").exec(restPath);
69
- if (!match || match.indices[0][0] !== 0 || match.indices[0][1] === 0) continue ROUTES_LOOP;
70
- name = name.slice(0, openBracePos);
71
- value = restPath.slice(...match.indices[0]);
72
- pos += match.indices[0][1] + 1;
73
- } else {
74
- let endValuePos = path.indexOf("/", pos + 1);
75
- if (endValuePos === -1) endValuePos = path.length;
76
- if (endValuePos === pos + 1) continue ROUTES_LOOP;
77
- value = path.slice(pos + 1, endValuePos);
78
- pos = endValuePos;
79
- }
80
- params[name] ||= value;
81
- } else {
82
- if (path.indexOf(part, pos) !== pos) continue ROUTES_LOOP;
83
- pos += part.length;
84
- }
85
- if (j === lastIndex) {
86
- if (pos !== path.length && !(pos === path.length - 1 && path.charCodeAt(pos) === 47)) continue ROUTES_LOOP;
87
- }
88
- }
89
- handlers.push([handler, params]);
90
- } else if (hasLabel && hasStar) throw new require_router.UnsupportedPathError();
91
- }
92
- }
93
- return [handlers];
94
- }
95
- };
96
- //#endregion
97
- exports.LinearRouter = LinearRouter;
@@ -1,3 +0,0 @@
1
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_router_pattern_router_router = require("./router.js");
3
- exports.PatternRouter = require_router_pattern_router_router.PatternRouter;
@@ -1,42 +0,0 @@
1
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_router = require("../../router.js");
3
- //#region src/router/pattern-router/router.ts
4
- const emptyParams = Object.create(null);
5
- var PatternRouter = class {
6
- name = "PatternRouter";
7
- #routes = [];
8
- add(method, path, handler) {
9
- const suffix = path.endsWith("/*") ? "(?:$|/)" : path.endsWith("*") ? "" : "/?$";
10
- path = path.replace(/\*$/, "");
11
- if (path.at(-1) === "?") {
12
- path = path.slice(0, -1);
13
- this.add(method, path.replace(/\/[^/]+$/, ""), handler);
14
- }
15
- const parts = (path.match(/\/?(:\w+(?:{(?:(?:{[\d,]+})|[^}])+})?)|\/?[^\/\?]+/g) || []).map((part) => {
16
- const match = part.match(/^\/:([^{]+)(?:{(.*)})?/);
17
- return match ? `/(?<${match[1]}>${match[2] || "[^/]+"})` : part === "/*" ? "/[^/]+" : part.replace(/[.\\+*[^\]$()]/g, "\\$&");
18
- });
19
- try {
20
- this.#routes.push([
21
- new RegExp(`^${parts.join("")}${suffix}`),
22
- method,
23
- handler
24
- ]);
25
- } catch {
26
- throw new require_router.UnsupportedPathError();
27
- }
28
- }
29
- match(method, path) {
30
- const handlers = [];
31
- for (let i = 0, len = this.#routes.length; i < len; i++) {
32
- const [pattern, routeMethod, handler] = this.#routes[i];
33
- if (routeMethod === method || routeMethod === "ALL") {
34
- const match = pattern.exec(path);
35
- if (match) handlers.push([handler, match.groups || emptyParams]);
36
- }
37
- }
38
- return [handlers];
39
- }
40
- };
41
- //#endregion
42
- exports.PatternRouter = PatternRouter;
@@ -1,7 +0,0 @@
1
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_router_reg_exp_router_router = require("./router.js");
3
- const require_router_reg_exp_router_prepared_router = require("./prepared-router.js");
4
- exports.PreparedRegExpRouter = require_router_reg_exp_router_prepared_router.PreparedRegExpRouter;
5
- exports.RegExpRouter = require_router_reg_exp_router_router.RegExpRouter;
6
- exports.buildInitParams = require_router_reg_exp_router_prepared_router.buildInitParams;
7
- exports.serializeInitParams = require_router_reg_exp_router_prepared_router.serializeInitParams;
@@ -1,21 +0,0 @@
1
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- require("../../router.js");
3
- //#region src/router/reg-exp-router/matcher.ts
4
- const emptyParam = [];
5
- function match(method, path) {
6
- const matchers = this.buildAllMatchers();
7
- const match = ((method, path) => {
8
- const matcher = matchers[method] || matchers["ALL"];
9
- const staticMatch = matcher[2][path];
10
- if (staticMatch) return staticMatch;
11
- const match = path.match(matcher[0]);
12
- if (!match) return [[], emptyParam];
13
- const index = match.indexOf("", 1);
14
- return [matcher[1][index], match];
15
- });
16
- this.match = match;
17
- return match(method, path);
18
- }
19
- //#endregion
20
- exports.emptyParam = emptyParam;
21
- exports.match = match;
@@ -1,96 +0,0 @@
1
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_router_utils = require("../utils.js");
3
- //#region src/router/reg-exp-router/node.ts
4
- const LABEL_REG_EXP_STR = "[^/]+";
5
- const ONLY_WILDCARD_REG_EXP_STR = ".*";
6
- const TAIL_WILDCARD_REG_EXP_STR = "(?:|/.*)";
7
- const PATH_ERROR = Symbol();
8
- const regExpMetaChars = /* @__PURE__ */ new Set(".\\+*[^]$()");
9
- /**
10
- * Sort order:
11
- * 1. literal
12
- * 2. special pattern (e.g. :label{[0-9]+})
13
- * 3. common label pattern (e.g. :label)
14
- * 4. wildcard
15
- */
16
- function compareKey(a, b) {
17
- if (a.length === 1) return b.length === 1 ? a < b ? -1 : 1 : -1;
18
- if (b.length === 1) return 1;
19
- if (a === ".*" || a === "(?:|/.*)") return b === "(?:|/.*)" ? -1 : 1;
20
- else if (b === ".*" || b === "(?:|/.*)") return -1;
21
- if (a === "[^/]+") return 1;
22
- else if (b === "[^/]+") return -1;
23
- return a.length === b.length ? a < b ? -1 : 1 : b.length - a.length;
24
- }
25
- var Node = class Node {
26
- #index;
27
- #varIndex;
28
- #children = require_router_utils.createNullObject();
29
- insert(tokens, index, paramMap, context, isStatic) {
30
- let node = this;
31
- for (let i = 0, len = tokens.length; i < len; i++) {
32
- const token = tokens[i];
33
- const pattern = token.length === 1 ? token === "*" ? i === len - 1 ? [
34
- "",
35
- "",
36
- ".*"
37
- ] : [
38
- "",
39
- "",
40
- LABEL_REG_EXP_STR
41
- ] : null : token === "/*" ? [
42
- "",
43
- "",
44
- TAIL_WILDCARD_REG_EXP_STR
45
- ] : token.match(/^\:([^\{\}]+)(?:\{(.+)\})?$/);
46
- let nextNode;
47
- if (pattern) {
48
- const name = pattern[1];
49
- let regexpStr = pattern[2] || "[^/]+";
50
- if (name && pattern[2]) {
51
- if (regexpStr === ".*") throw PATH_ERROR;
52
- regexpStr = regexpStr.replace(/^\((?!\?:)(?=[^)]+\)$)/, "(?:");
53
- if (/\((?!\?:)/.test(regexpStr)) throw PATH_ERROR;
54
- if (regexpStr.length === 1 && regExpMetaChars.has(regexpStr)) throw PATH_ERROR;
55
- }
56
- nextNode = node.#children[regexpStr];
57
- if (!nextNode) {
58
- if (regexpStr !== ".*" && regexpStr !== "(?:|/.*)") {
59
- for (const k in node.#children) if ((regexpStr.length > 1 || k.length > 1) && k !== ".*" && k !== "(?:|/.*)") throw PATH_ERROR;
60
- }
61
- nextNode = node.#children[regexpStr] = new Node();
62
- }
63
- if (name !== "") {
64
- nextNode.#varIndex ??= context.varIndex++;
65
- paramMap.push([name, nextNode.#varIndex]);
66
- }
67
- } else {
68
- nextNode = node.#children[token];
69
- if (!nextNode) {
70
- for (const k in node.#children) if (k.length > 1 && k !== ".*" && k !== "(?:|/.*)") throw PATH_ERROR;
71
- nextNode = node.#children[token] = new Node();
72
- }
73
- }
74
- node = nextNode;
75
- }
76
- if (node.#index !== void 0) throw PATH_ERROR;
77
- node.#index = isStatic ? -1 : index;
78
- }
79
- buildRegExpStr() {
80
- const strList = Object.keys(this.#children).sort(compareKey).map((k) => {
81
- const c = this.#children[k];
82
- const childStr = c.buildRegExpStr();
83
- return childStr === "" ? "" : (typeof c.#varIndex === "number" ? `(${k})@${c.#varIndex}` : regExpMetaChars.has(k) ? `\\${k}` : k) + childStr;
84
- }).filter(Boolean);
85
- if (typeof this.#index === "number" && this.#index !== -1) strList.unshift(`#${this.#index}`);
86
- if (strList.length === 0) return "";
87
- if (strList.length === 1) return strList[0];
88
- return "(?:" + strList.join("|") + ")";
89
- }
90
- };
91
- //#endregion
92
- exports.LABEL_REG_EXP_STR = LABEL_REG_EXP_STR;
93
- exports.Node = Node;
94
- exports.ONLY_WILDCARD_REG_EXP_STR = ONLY_WILDCARD_REG_EXP_STR;
95
- exports.PATH_ERROR = PATH_ERROR;
96
- exports.TAIL_WILDCARD_REG_EXP_STR = TAIL_WILDCARD_REG_EXP_STR;