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,27 +0,0 @@
1
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- //#region src/utils/filepath.ts
3
- const getFilePath = (options) => {
4
- let filename = options.filename;
5
- const defaultDocument = options.defaultDocument || "index.html";
6
- if (filename.endsWith("/")) filename = filename.concat(defaultDocument);
7
- else if (!filename.match(/\.[a-zA-Z0-9_-]+$/)) filename = filename.concat("/" + defaultDocument);
8
- return getFilePathWithoutDefaultDocument({
9
- root: options.root,
10
- filename
11
- });
12
- };
13
- const getFilePathWithoutDefaultDocument = (options) => {
14
- let root = options.root || "";
15
- let filename = options.filename;
16
- if (/(?:^|[\/\\])\.\.(?:$|[\/\\])/.test(filename)) return;
17
- filename = filename.replace(/^\.?[\/\\]/, "");
18
- filename = filename.replace(/\\/g, "/");
19
- root = root.replace(/\/$/, "");
20
- let path = root ? root + "/" + filename : filename;
21
- path = path.replace(/^\.?\//, "");
22
- if (root[0] !== "/" && path[0] === "/") return;
23
- return path;
24
- };
25
- //#endregion
26
- exports.getFilePath = getFilePath;
27
- exports.getFilePathWithoutDefaultDocument = getFilePathWithoutDefaultDocument;
@@ -1,14 +0,0 @@
1
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_utils_constants = require("./constants.js");
3
- //#region src/utils/handler.ts
4
- /**
5
- * @module
6
- * Handler utility.
7
- */
8
- const isMiddleware = (handler) => handler.length > 1;
9
- const findTargetHandler = (handler) => {
10
- return handler["__COMPOSED_HANDLER"] ? findTargetHandler(handler[require_utils_constants.COMPOSED_HANDLER]) : handler;
11
- };
12
- //#endregion
13
- exports.findTargetHandler = findTargetHandler;
14
- exports.isMiddleware = isMiddleware;
File without changes
@@ -1,109 +0,0 @@
1
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- //#region src/utils/html.ts
3
- /**
4
- * @module
5
- * HTML utility.
6
- */
7
- const HtmlEscapedCallbackPhase = {
8
- Stringify: 1,
9
- BeforeStream: 2,
10
- Stream: 3
11
- };
12
- const raw = (value, callbacks) => {
13
- const escapedString = new String(value);
14
- escapedString.isEscaped = true;
15
- escapedString.callbacks = callbacks;
16
- return escapedString;
17
- };
18
- const escapeRe = /[&<>'"]/;
19
- const stringBufferToString = async (buffer, callbacks) => {
20
- let str = "";
21
- callbacks ||= [];
22
- const resolvedBuffer = await Promise.all(buffer);
23
- for (let i = resolvedBuffer.length - 1;; i--) {
24
- str += resolvedBuffer[i];
25
- i--;
26
- if (i < 0) break;
27
- let r = resolvedBuffer[i];
28
- if (typeof r === "object") callbacks.push(...r.callbacks || []);
29
- const isEscaped = r.isEscaped;
30
- r = await (typeof r === "object" ? r.toString() : r);
31
- if (typeof r === "object") callbacks.push(...r.callbacks || []);
32
- if (r.isEscaped ?? isEscaped) str += r;
33
- else {
34
- const buf = [str];
35
- escapeToBuffer(r, buf);
36
- str = buf[0];
37
- }
38
- }
39
- return raw(str, callbacks);
40
- };
41
- const escapeToBuffer = (str, buffer) => {
42
- const match = str.search(escapeRe);
43
- if (match === -1) {
44
- buffer[0] += str;
45
- return;
46
- }
47
- let escape;
48
- let index;
49
- let lastIndex = 0;
50
- for (index = match; index < str.length; index++) {
51
- switch (str.charCodeAt(index)) {
52
- case 34:
53
- escape = "&quot;";
54
- break;
55
- case 39:
56
- escape = "&#39;";
57
- break;
58
- case 38:
59
- escape = "&amp;";
60
- break;
61
- case 60:
62
- escape = "&lt;";
63
- break;
64
- case 62:
65
- escape = "&gt;";
66
- break;
67
- default: continue;
68
- }
69
- buffer[0] += str.substring(lastIndex, index) + escape;
70
- lastIndex = index + 1;
71
- }
72
- buffer[0] += str.substring(lastIndex, index);
73
- };
74
- const resolveCallbackSync = (str) => {
75
- const callbacks = str.callbacks;
76
- if (!callbacks?.length) return str;
77
- const buffer = [str];
78
- const context = {};
79
- callbacks.forEach((c) => c({
80
- phase: HtmlEscapedCallbackPhase.Stringify,
81
- buffer,
82
- context
83
- }));
84
- return buffer[0];
85
- };
86
- const resolveCallback = async (str, phase, preserveCallbacks, context, buffer) => {
87
- if (typeof str === "object" && !(str instanceof String)) {
88
- if (!(str instanceof Promise)) str = str.toString();
89
- if (str instanceof Promise) str = await str;
90
- }
91
- const callbacks = str.callbacks;
92
- if (!callbacks?.length) return Promise.resolve(str);
93
- if (buffer) buffer[0] += str;
94
- else buffer = [str];
95
- const resStr = Promise.all(callbacks.map((c) => c({
96
- phase,
97
- buffer,
98
- context
99
- }))).then((res) => Promise.all(res.filter(Boolean).map((str) => resolveCallback(str, phase, false, context, buffer))).then(() => buffer[0]));
100
- if (preserveCallbacks) return raw(await resStr, callbacks);
101
- else return resStr;
102
- };
103
- //#endregion
104
- exports.HtmlEscapedCallbackPhase = HtmlEscapedCallbackPhase;
105
- exports.escapeToBuffer = escapeToBuffer;
106
- exports.raw = raw;
107
- exports.resolveCallback = resolveCallback;
108
- exports.resolveCallbackSync = resolveCallbackSync;
109
- exports.stringBufferToString = stringBufferToString;
File without changes
@@ -1,247 +0,0 @@
1
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- //#region src/utils/ipaddr.ts
3
- /**
4
- * Expand IPv6 Address
5
- * @param ipV6 Shorten IPv6 Address
6
- * @return expanded IPv6 Address
7
- */
8
- const expandIPv6 = (ipV6) => {
9
- const sections = ipV6.split(":");
10
- const lastSection = sections.at(-1);
11
- if (IPV4_REGEX.test(lastSection)) {
12
- const octets = lastSection.split(".").map(Number);
13
- sections.splice(-1, 1, (octets[0] << 8 | octets[1]).toString(16), (octets[2] << 8 | octets[3]).toString(16));
14
- }
15
- for (let i = 0; i < sections.length; i++) {
16
- const node = sections[i];
17
- if (node !== "") sections[i] = node.padStart(4, "0");
18
- else {
19
- while (sections[i + 1] === "") sections.splice(i + 1, 1);
20
- sections[i] = new Array(8 - sections.length + 1).fill("0000").join(":");
21
- }
22
- }
23
- return sections.join(":");
24
- };
25
- const IPV4_OCTET_PART = "(?:25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])";
26
- const IPV4_REGEX = new RegExp(`^(?:${IPV4_OCTET_PART}\\.){3}${IPV4_OCTET_PART}$`);
27
- const INVALID_IP_ADDRESS_ERROR_CODE = "ERR_INVALID_IP_ADDRESS";
28
- const CHAR_CODE_0 = 48;
29
- const CHAR_CODE_9 = 57;
30
- const CHAR_CODE_A = 65;
31
- const CHAR_CODE_F = 70;
32
- const CHAR_CODE_a = 97;
33
- const CHAR_CODE_f = 102;
34
- const CHAR_CODE_DOT = 46;
35
- const CHAR_CODE_COLON = 58;
36
- const CHAR_CODE_PERCENT = 37;
37
- /**
38
- * Distinct Remote Addr
39
- * @param remoteAddr Remote Addr
40
- */
41
- const distinctRemoteAddr = (remoteAddr) => {
42
- if (IPV4_REGEX.test(remoteAddr)) return "IPv4";
43
- if (remoteAddr.includes(":")) return "IPv6";
44
- };
45
- const createInvalidIPAddressError = (message) => {
46
- const error = new TypeError(message);
47
- error.code = INVALID_IP_ADDRESS_ERROR_CODE;
48
- return error;
49
- };
50
- const throwInvalidIPv4Address = (ipv4) => {
51
- throw createInvalidIPAddressError(`Invalid IPv4 address: ${ipv4}`);
52
- };
53
- const throwInvalidIPv6Address = (ipv6) => {
54
- throw createInvalidIPAddressError(`Invalid IPv6 address: ${ipv6}`);
55
- };
56
- const parseIPv4ToBinary = (ipv4, start, end, onInvalid) => {
57
- let result = 0n;
58
- let octets = 0;
59
- let octet = 0;
60
- let digits = 0;
61
- let firstDigit = 0;
62
- for (let i = start; i <= end; i++) {
63
- const code = i < end ? ipv4.charCodeAt(i) : CHAR_CODE_DOT;
64
- if (code >= CHAR_CODE_0 && code <= CHAR_CODE_9) {
65
- if (digits === 0) firstDigit = code;
66
- else if (firstDigit === CHAR_CODE_0) onInvalid();
67
- octet = octet * 10 + code - CHAR_CODE_0;
68
- if (octet > 255) onInvalid();
69
- digits++;
70
- continue;
71
- }
72
- if (code !== CHAR_CODE_DOT || digits === 0 || octets === 4) onInvalid();
73
- result = (result << 8n) + BigInt(octet);
74
- octets++;
75
- octet = 0;
76
- digits = 0;
77
- }
78
- if (octets !== 4) onInvalid();
79
- return result;
80
- };
81
- const parseIPv6HexCode = (code) => {
82
- if (code >= CHAR_CODE_0 && code <= CHAR_CODE_9) return code - CHAR_CODE_0;
83
- if (code >= CHAR_CODE_A && code <= CHAR_CODE_F) return code - CHAR_CODE_A + 10;
84
- if (code >= CHAR_CODE_a && code <= CHAR_CODE_f) return code - CHAR_CODE_a + 10;
85
- return -1;
86
- };
87
- const isIPv6LinkLocal = (ipv6binary) => ipv6binary >> 118n === 1018n;
88
- /**
89
- * Convert IPv4 to Uint8Array
90
- * @param ipv4 IPv4 Address
91
- * @returns BigInt
92
- */
93
- const convertIPv4ToBinary = (ipv4) => {
94
- return parseIPv4ToBinary(ipv4, 0, ipv4.length, () => throwInvalidIPv4Address(ipv4));
95
- };
96
- /**
97
- * Convert IPv6 to Uint8Array
98
- * @param ipv6 IPv6 Address
99
- * @returns BigInt
100
- */
101
- const convertIPv6ToBinary = (ipv6) => {
102
- const length = ipv6.length;
103
- const sections = [];
104
- let hasZoneId = false;
105
- let compressAt = -1;
106
- let index = 0;
107
- if (length === 0) throwInvalidIPv6Address(ipv6);
108
- while (index < length) {
109
- if (sections.length > 8) throwInvalidIPv6Address(ipv6);
110
- let code = ipv6.charCodeAt(index);
111
- if (code === CHAR_CODE_PERCENT) {
112
- if (index + 1 === length) throwInvalidIPv6Address(ipv6);
113
- hasZoneId = true;
114
- break;
115
- }
116
- if (code === CHAR_CODE_COLON) {
117
- if (index + 1 < length && ipv6.charCodeAt(index + 1) === CHAR_CODE_COLON) {
118
- if (compressAt !== -1) throwInvalidIPv6Address(ipv6);
119
- compressAt = sections.length;
120
- index += 2;
121
- continue;
122
- }
123
- throwInvalidIPv6Address(ipv6);
124
- }
125
- let value = 0;
126
- let digits = 0;
127
- const sectionStart = index;
128
- while (index < length) {
129
- code = ipv6.charCodeAt(index);
130
- const hex = parseIPv6HexCode(code);
131
- if (hex === -1) break;
132
- if (digits === 4) throwInvalidIPv6Address(ipv6);
133
- value = value << 4 | hex;
134
- digits++;
135
- index++;
136
- }
137
- if (index < length && ipv6.charCodeAt(index) === CHAR_CODE_DOT) {
138
- let ipv4End = length;
139
- for (let i = index; i < length; i++) if (ipv6.charCodeAt(i) === CHAR_CODE_PERCENT) {
140
- if (i + 1 === length) throwInvalidIPv6Address(ipv6);
141
- hasZoneId = true;
142
- ipv4End = i;
143
- break;
144
- }
145
- const ipv4 = parseIPv4ToBinary(ipv6, sectionStart, ipv4End, () => throwInvalidIPv6Address(ipv6));
146
- sections.push(Number(ipv4 >> 16n & 65535n), Number(ipv4 & 65535n));
147
- index = length;
148
- break;
149
- }
150
- if (digits === 0) throwInvalidIPv6Address(ipv6);
151
- sections.push(value);
152
- if (index === length) break;
153
- code = ipv6.charCodeAt(index);
154
- if (code === CHAR_CODE_PERCENT) {
155
- if (index + 1 === length) throwInvalidIPv6Address(ipv6);
156
- hasZoneId = true;
157
- break;
158
- }
159
- if (code !== CHAR_CODE_COLON) throwInvalidIPv6Address(ipv6);
160
- if (index + 1 < length && ipv6.charCodeAt(index + 1) === CHAR_CODE_COLON) {
161
- if (compressAt !== -1) throwInvalidIPv6Address(ipv6);
162
- compressAt = sections.length;
163
- index += 2;
164
- continue;
165
- }
166
- index++;
167
- if (index === length) throwInvalidIPv6Address(ipv6);
168
- }
169
- if (compressAt === -1 ? sections.length !== 8 : sections.length >= 8) throwInvalidIPv6Address(ipv6);
170
- let result = 0n;
171
- const zeros = compressAt === -1 ? 0 : 8 - sections.length;
172
- const firstSectionEnd = compressAt === -1 ? sections.length : compressAt;
173
- for (let i = 0; i < firstSectionEnd; i++) {
174
- result <<= 16n;
175
- result += BigInt(sections[i]);
176
- }
177
- for (let i = 0; i < zeros; i++) result <<= 16n;
178
- for (let i = firstSectionEnd; i < sections.length; i++) {
179
- result <<= 16n;
180
- result += BigInt(sections[i]);
181
- }
182
- if (hasZoneId && !isIPv6LinkLocal(result)) throwInvalidIPv6Address(ipv6);
183
- return result;
184
- };
185
- /**
186
- * Convert a binary representation of an IPv4 address to a string.
187
- * @param ipV4 binary IPv4 Address
188
- * @return IPv4 Address in string
189
- */
190
- const convertIPv4BinaryToString = (ipV4) => {
191
- const sections = [];
192
- for (let i = 0; i < 4; i++) sections.push(ipV4 >> BigInt(8 * (3 - i)) & 255n);
193
- return sections.join(".");
194
- };
195
- /**
196
- * Check if a binary IPv6 address is an IPv4-mapped IPv6 address (::ffff:x.x.x.x)
197
- * @param ipv6binary binary IPv6 Address
198
- * @return true if the address is an IPv4-mapped IPv6 address
199
- */
200
- const isIPv4MappedIPv6 = (ipv6binary) => ipv6binary >> 32n === 65535n;
201
- /**
202
- * Extract the IPv4 portion from an IPv4-mapped IPv6 address
203
- * @param ipv6binary binary IPv4-mapped IPv6 Address
204
- * @return binary IPv4 Address
205
- */
206
- const convertIPv4MappedIPv6ToIPv4 = (ipv6binary) => ipv6binary & 4294967295n;
207
- /**
208
- * Convert a binary representation of an IPv6 address to a string.
209
- * @param ipV6 binary IPv6 Address
210
- * @return normalized IPv6 Address in string
211
- */
212
- const convertIPv6BinaryToString = (ipV6) => {
213
- if (ipV6 === 0n) return "::";
214
- if (isIPv4MappedIPv6(ipV6)) return `::ffff:${convertIPv4BinaryToString(convertIPv4MappedIPv6ToIPv4(ipV6))}`;
215
- const sections = [];
216
- for (let i = 0; i < 8; i++) sections.push((ipV6 >> BigInt(16 * (7 - i)) & 65535n).toString(16));
217
- let currentZeroStart = -1;
218
- let maxZeroStart = -1;
219
- let maxZeroEnd = -1;
220
- for (let i = 0; i < 8; i++) if (sections[i] === "0") {
221
- if (currentZeroStart === -1) currentZeroStart = i;
222
- } else if (currentZeroStart > -1) {
223
- if (i - currentZeroStart > maxZeroEnd - maxZeroStart) {
224
- maxZeroStart = currentZeroStart;
225
- maxZeroEnd = i;
226
- }
227
- currentZeroStart = -1;
228
- }
229
- if (currentZeroStart > -1) {
230
- if (8 - currentZeroStart > maxZeroEnd - maxZeroStart) {
231
- maxZeroStart = currentZeroStart;
232
- maxZeroEnd = 8;
233
- }
234
- }
235
- if (maxZeroStart !== -1 && maxZeroEnd - maxZeroStart > 1) sections.splice(maxZeroStart, maxZeroEnd - maxZeroStart, ":");
236
- return sections.join(":").replace(/:{2,}/g, "::");
237
- };
238
- //#endregion
239
- exports.INVALID_IP_ADDRESS_ERROR_CODE = INVALID_IP_ADDRESS_ERROR_CODE;
240
- exports.convertIPv4BinaryToString = convertIPv4BinaryToString;
241
- exports.convertIPv4MappedIPv6ToIPv4 = convertIPv4MappedIPv6ToIPv4;
242
- exports.convertIPv4ToBinary = convertIPv4ToBinary;
243
- exports.convertIPv6BinaryToString = convertIPv6BinaryToString;
244
- exports.convertIPv6ToBinary = convertIPv6ToBinary;
245
- exports.distinctRemoteAddr = distinctRemoteAddr;
246
- exports.expandIPv6 = expandIPv6;
247
- exports.isIPv4MappedIPv6 = isIPv4MappedIPv6;
@@ -1,15 +0,0 @@
1
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_utils_jwt_jwt = require("./jwt.js");
3
- //#region src/utils/jwt/index.ts
4
- /**
5
- * @module
6
- * JWT utility.
7
- */
8
- const Jwt = {
9
- sign: require_utils_jwt_jwt.sign,
10
- verify: require_utils_jwt_jwt.verify,
11
- decode: require_utils_jwt_jwt.decode,
12
- verifyWithJwks: require_utils_jwt_jwt.verifyWithJwks
13
- };
14
- //#endregion
15
- exports.Jwt = Jwt;
@@ -1,25 +0,0 @@
1
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- //#region src/utils/jwt/jwa.ts
3
- /**
4
- * @module
5
- * JSON Web Algorithms (JWA)
6
- * https://datatracker.ietf.org/doc/html/rfc7518
7
- */
8
- let AlgorithmTypes = /* @__PURE__ */ function(AlgorithmTypes) {
9
- AlgorithmTypes["HS256"] = "HS256";
10
- AlgorithmTypes["HS384"] = "HS384";
11
- AlgorithmTypes["HS512"] = "HS512";
12
- AlgorithmTypes["RS256"] = "RS256";
13
- AlgorithmTypes["RS384"] = "RS384";
14
- AlgorithmTypes["RS512"] = "RS512";
15
- AlgorithmTypes["PS256"] = "PS256";
16
- AlgorithmTypes["PS384"] = "PS384";
17
- AlgorithmTypes["PS512"] = "PS512";
18
- AlgorithmTypes["ES256"] = "ES256";
19
- AlgorithmTypes["ES384"] = "ES384";
20
- AlgorithmTypes["ES512"] = "ES512";
21
- AlgorithmTypes["EdDSA"] = "EdDSA";
22
- return AlgorithmTypes;
23
- }({});
24
- //#endregion
25
- exports.AlgorithmTypes = AlgorithmTypes;
@@ -1,135 +0,0 @@
1
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_utils_encode = require("../encode.js");
3
- const require_helper_adapter_index = require("../../helper/adapter/index.js");
4
- const require_utils_jwt_types = require("./types.js");
5
- const require_utils_jwt_utf8 = require("./utf8.js");
6
- //#region src/utils/jwt/jws.ts
7
- /**
8
- * @module
9
- * JSON Web Signature (JWS)
10
- * https://datatracker.ietf.org/doc/html/rfc7515
11
- */
12
- async function signing(privateKey, alg, data) {
13
- const algorithm = getKeyAlgorithm(alg);
14
- const cryptoKey = await importPrivateKey(privateKey, algorithm);
15
- return await crypto.subtle.sign(algorithm, cryptoKey, data);
16
- }
17
- async function verifying(publicKey, alg, signature, data) {
18
- const algorithm = getKeyAlgorithm(alg);
19
- const cryptoKey = await importPublicKey(publicKey, algorithm);
20
- return await crypto.subtle.verify(algorithm, cryptoKey, signature, data);
21
- }
22
- function pemToBinary(pem) {
23
- return require_utils_encode.decodeBase64(pem.replace(/-+(BEGIN|END).*?-+/g, "").replace(/\s/g, ""));
24
- }
25
- async function importPrivateKey(key, alg) {
26
- if (!crypto.subtle || !crypto.subtle.importKey) throw new Error("`crypto.subtle.importKey` is undefined. JWT auth middleware requires it.");
27
- if (isCryptoKey(key)) {
28
- if (key.type !== "private" && key.type !== "secret") throw new Error(`unexpected key type: CryptoKey.type is ${key.type}, expected private or secret`);
29
- return key;
30
- }
31
- const usages = ["sign"];
32
- if (typeof key === "object") return await crypto.subtle.importKey("jwk", key, alg, false, usages);
33
- if (key.includes("PRIVATE")) return await crypto.subtle.importKey("pkcs8", pemToBinary(key), alg, false, usages);
34
- return await crypto.subtle.importKey("raw", require_utils_jwt_utf8.utf8Encoder.encode(key), alg, false, usages);
35
- }
36
- async function importPublicKey(key, alg) {
37
- if (!crypto.subtle || !crypto.subtle.importKey) throw new Error("`crypto.subtle.importKey` is undefined. JWT auth middleware requires it.");
38
- if (isCryptoKey(key)) {
39
- if (key.type === "public" || key.type === "secret") return key;
40
- key = await exportPublicJwkFrom(key);
41
- }
42
- if (typeof key === "string" && key.includes("PRIVATE")) key = await exportPublicJwkFrom(await crypto.subtle.importKey("pkcs8", pemToBinary(key), alg, true, ["sign"]));
43
- const usages = ["verify"];
44
- if (typeof key === "object") return await crypto.subtle.importKey("jwk", key, alg, false, usages);
45
- if (key.includes("PUBLIC")) return await crypto.subtle.importKey("spki", pemToBinary(key), alg, false, usages);
46
- return await crypto.subtle.importKey("raw", require_utils_jwt_utf8.utf8Encoder.encode(key), alg, false, usages);
47
- }
48
- async function exportPublicJwkFrom(privateKey) {
49
- if (privateKey.type !== "private") throw new Error(`unexpected key type: ${privateKey.type}`);
50
- if (!privateKey.extractable) throw new Error("unexpected private key is unextractable");
51
- const jwk = await crypto.subtle.exportKey("jwk", privateKey);
52
- const { kty } = jwk;
53
- const { alg, e, n } = jwk;
54
- const { crv, x, y } = jwk;
55
- return {
56
- kty,
57
- alg,
58
- e,
59
- n,
60
- crv,
61
- x,
62
- y,
63
- key_ops: ["verify"]
64
- };
65
- }
66
- function getKeyAlgorithm(name) {
67
- switch (name) {
68
- case "HS256": return {
69
- name: "HMAC",
70
- hash: { name: "SHA-256" }
71
- };
72
- case "HS384": return {
73
- name: "HMAC",
74
- hash: { name: "SHA-384" }
75
- };
76
- case "HS512": return {
77
- name: "HMAC",
78
- hash: { name: "SHA-512" }
79
- };
80
- case "RS256": return {
81
- name: "RSASSA-PKCS1-v1_5",
82
- hash: { name: "SHA-256" }
83
- };
84
- case "RS384": return {
85
- name: "RSASSA-PKCS1-v1_5",
86
- hash: { name: "SHA-384" }
87
- };
88
- case "RS512": return {
89
- name: "RSASSA-PKCS1-v1_5",
90
- hash: { name: "SHA-512" }
91
- };
92
- case "PS256": return {
93
- name: "RSA-PSS",
94
- hash: { name: "SHA-256" },
95
- saltLength: 32
96
- };
97
- case "PS384": return {
98
- name: "RSA-PSS",
99
- hash: { name: "SHA-384" },
100
- saltLength: 48
101
- };
102
- case "PS512": return {
103
- name: "RSA-PSS",
104
- hash: { name: "SHA-512" },
105
- saltLength: 64
106
- };
107
- case "ES256": return {
108
- name: "ECDSA",
109
- hash: { name: "SHA-256" },
110
- namedCurve: "P-256"
111
- };
112
- case "ES384": return {
113
- name: "ECDSA",
114
- hash: { name: "SHA-384" },
115
- namedCurve: "P-384"
116
- };
117
- case "ES512": return {
118
- name: "ECDSA",
119
- hash: { name: "SHA-512" },
120
- namedCurve: "P-521"
121
- };
122
- case "EdDSA": return {
123
- name: "Ed25519",
124
- namedCurve: "Ed25519"
125
- };
126
- default: throw new require_utils_jwt_types.JwtAlgorithmNotImplemented(name);
127
- }
128
- }
129
- function isCryptoKey(key) {
130
- if (require_helper_adapter_index.getRuntimeKey() === "node" && !!crypto.webcrypto) return key instanceof crypto.webcrypto.CryptoKey;
131
- return key instanceof CryptoKey;
132
- }
133
- //#endregion
134
- exports.signing = signing;
135
- exports.verifying = verifying;