@suveren/gateway 0.8.6 → 0.9.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 (670) hide show
  1. package/bin/suveren-gateway.js +165 -9
  2. package/dist/control-plane/index.mjs +546 -87
  3. package/dist/mcp-server/http.mjs +727 -187
  4. package/dist/ui/assets/index-CIiOCgjJ.js +110 -0
  5. package/dist/ui/icons/apple-touch-icon.png +0 -0
  6. package/dist/ui/icons/icon-192.png +0 -0
  7. package/dist/ui/icons/icon-512.png +0 -0
  8. package/dist/ui/icons/icon-maskable-512.png +0 -0
  9. package/dist/ui/index.html +7 -1
  10. package/dist/ui/manifest.webmanifest +15 -0
  11. package/lib/config.d.mts +37 -0
  12. package/lib/config.mjs +150 -0
  13. package/node_modules/@hap/core/dist/index.d.mts +33 -2
  14. package/node_modules/@hap/core/dist/index.d.ts +33 -2
  15. package/node_modules/@hap/core/dist/index.js +26 -2
  16. package/node_modules/@hap/core/dist/index.mjs +25 -2
  17. package/node_modules/@hap/core/package.json +1 -1
  18. package/node_modules/@hap/core/src/gatekeeper.ts +36 -2
  19. package/node_modules/@hap/core/src/types.ts +21 -1
  20. package/node_modules/@hono/node-server/README.md +21 -10
  21. package/node_modules/@hono/node-server/dist/early-hints.cjs +1 -1
  22. package/node_modules/@hono/node-server/dist/early-hints.mjs +1 -1
  23. package/node_modules/@hono/node-server/dist/index.cjs +41 -19
  24. package/node_modules/@hono/node-server/dist/index.mjs +42 -20
  25. package/node_modules/@hono/node-server/dist/serve-static.cjs +1 -0
  26. package/node_modules/@hono/node-server/dist/serve-static.d.cts +2 -1
  27. package/node_modules/@hono/node-server/dist/serve-static.d.mts +2 -1
  28. package/node_modules/@hono/node-server/dist/serve-static.mjs +1 -0
  29. package/node_modules/@hono/node-server/package.json +3 -2
  30. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/client/auth-extensions.d.ts +43 -2
  31. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/client/auth-extensions.d.ts.map +1 -1
  32. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/client/auth-extensions.js +26 -5
  33. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/client/auth-extensions.js.map +1 -1
  34. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/client/auth.d.ts +26 -4
  35. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/client/auth.d.ts.map +1 -1
  36. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/client/auth.js +118 -17
  37. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/client/auth.js.map +1 -1
  38. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/examples/client/simpleClientCredentials.d.ts +1 -0
  39. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/examples/client/simpleClientCredentials.d.ts.map +1 -1
  40. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/examples/client/simpleClientCredentials.js +11 -2
  41. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/examples/client/simpleClientCredentials.js.map +1 -1
  42. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/examples/server/demoInMemoryOAuthProvider.d.ts +2 -0
  43. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/examples/server/demoInMemoryOAuthProvider.d.ts.map +1 -1
  44. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/server/auth/providers/proxyProvider.d.ts.map +1 -1
  45. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/server/auth/providers/proxyProvider.js +6 -3
  46. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/server/auth/providers/proxyProvider.js.map +1 -1
  47. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/server/express.d.ts.map +1 -1
  48. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/server/express.js +3 -1
  49. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/server/express.js.map +1 -1
  50. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/server/requestBody.d.ts +25 -0
  51. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/server/requestBody.d.ts.map +1 -0
  52. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/server/requestBody.js +64 -0
  53. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/server/requestBody.js.map +1 -0
  54. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/server/webStandardStreamableHttp.d.ts +10 -1
  55. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/server/webStandardStreamableHttp.d.ts.map +1 -1
  56. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/server/webStandardStreamableHttp.js +13 -1
  57. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/server/webStandardStreamableHttp.js.map +1 -1
  58. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/shared/auth.d.ts +3 -0
  59. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/shared/auth.d.ts.map +1 -1
  60. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/shared/auth.js +12 -2
  61. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/shared/auth.js.map +1 -1
  62. package/node_modules/@modelcontextprotocol/sdk/dist/esm/client/auth-extensions.d.ts +43 -2
  63. package/node_modules/@modelcontextprotocol/sdk/dist/esm/client/auth-extensions.d.ts.map +1 -1
  64. package/node_modules/@modelcontextprotocol/sdk/dist/esm/client/auth-extensions.js +26 -5
  65. package/node_modules/@modelcontextprotocol/sdk/dist/esm/client/auth-extensions.js.map +1 -1
  66. package/node_modules/@modelcontextprotocol/sdk/dist/esm/client/auth.d.ts +26 -4
  67. package/node_modules/@modelcontextprotocol/sdk/dist/esm/client/auth.d.ts.map +1 -1
  68. package/node_modules/@modelcontextprotocol/sdk/dist/esm/client/auth.js +118 -17
  69. package/node_modules/@modelcontextprotocol/sdk/dist/esm/client/auth.js.map +1 -1
  70. package/node_modules/@modelcontextprotocol/sdk/dist/esm/examples/client/simpleClientCredentials.d.ts +1 -0
  71. package/node_modules/@modelcontextprotocol/sdk/dist/esm/examples/client/simpleClientCredentials.d.ts.map +1 -1
  72. package/node_modules/@modelcontextprotocol/sdk/dist/esm/examples/client/simpleClientCredentials.js +11 -2
  73. package/node_modules/@modelcontextprotocol/sdk/dist/esm/examples/client/simpleClientCredentials.js.map +1 -1
  74. package/node_modules/@modelcontextprotocol/sdk/dist/esm/examples/server/demoInMemoryOAuthProvider.d.ts +2 -0
  75. package/node_modules/@modelcontextprotocol/sdk/dist/esm/examples/server/demoInMemoryOAuthProvider.d.ts.map +1 -1
  76. package/node_modules/@modelcontextprotocol/sdk/dist/esm/server/auth/providers/proxyProvider.d.ts.map +1 -1
  77. package/node_modules/@modelcontextprotocol/sdk/dist/esm/server/auth/providers/proxyProvider.js +6 -3
  78. package/node_modules/@modelcontextprotocol/sdk/dist/esm/server/auth/providers/proxyProvider.js.map +1 -1
  79. package/node_modules/@modelcontextprotocol/sdk/dist/esm/server/express.d.ts.map +1 -1
  80. package/node_modules/@modelcontextprotocol/sdk/dist/esm/server/express.js +3 -1
  81. package/node_modules/@modelcontextprotocol/sdk/dist/esm/server/express.js.map +1 -1
  82. package/node_modules/@modelcontextprotocol/sdk/dist/esm/server/requestBody.d.ts +25 -0
  83. package/node_modules/@modelcontextprotocol/sdk/dist/esm/server/requestBody.d.ts.map +1 -0
  84. package/node_modules/@modelcontextprotocol/sdk/dist/esm/server/requestBody.js +58 -0
  85. package/node_modules/@modelcontextprotocol/sdk/dist/esm/server/requestBody.js.map +1 -0
  86. package/node_modules/@modelcontextprotocol/sdk/dist/esm/server/webStandardStreamableHttp.d.ts +10 -1
  87. package/node_modules/@modelcontextprotocol/sdk/dist/esm/server/webStandardStreamableHttp.d.ts.map +1 -1
  88. package/node_modules/@modelcontextprotocol/sdk/dist/esm/server/webStandardStreamableHttp.js +13 -1
  89. package/node_modules/@modelcontextprotocol/sdk/dist/esm/server/webStandardStreamableHttp.js.map +1 -1
  90. package/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/auth.d.ts +3 -0
  91. package/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/auth.d.ts.map +1 -1
  92. package/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/auth.js +12 -2
  93. package/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/auth.js.map +1 -1
  94. package/node_modules/@modelcontextprotocol/sdk/package.json +1 -1
  95. package/node_modules/@types/node/README.md +1 -1
  96. package/node_modules/@types/node/crypto.d.ts +2 -2
  97. package/node_modules/@types/node/dgram.d.ts +1 -1
  98. package/node_modules/@types/node/package.json +2 -2
  99. package/node_modules/hono/dist/_virtual/_rolldown/runtime.js +13 -0
  100. package/node_modules/hono/dist/adapter/aws-lambda/conninfo.js +42 -23
  101. package/node_modules/hono/dist/adapter/aws-lambda/handler.js +318 -341
  102. package/node_modules/hono/dist/adapter/aws-lambda/index.js +2 -8
  103. package/node_modules/hono/dist/adapter/aws-lambda/types.js +1 -0
  104. package/node_modules/hono/dist/adapter/bun/conninfo.js +20 -25
  105. package/node_modules/hono/dist/adapter/bun/index.js +3 -13
  106. package/node_modules/hono/dist/adapter/bun/serve-static.js +27 -27
  107. package/node_modules/hono/dist/adapter/bun/server.js +11 -5
  108. package/node_modules/hono/dist/adapter/bun/ssg.js +25 -15
  109. package/node_modules/hono/dist/adapter/bun/websocket.js +61 -68
  110. package/node_modules/hono/dist/adapter/cloudflare-pages/conninfo.js +24 -9
  111. package/node_modules/hono/dist/adapter/cloudflare-pages/handler.js +59 -62
  112. package/node_modules/hono/dist/adapter/cloudflare-pages/index.js +2 -8
  113. package/node_modules/hono/dist/adapter/cloudflare-workers/conninfo.js +7 -9
  114. package/node_modules/hono/dist/adapter/cloudflare-workers/index.js +3 -8
  115. package/node_modules/hono/dist/adapter/cloudflare-workers/serve-static-module.js +5 -6
  116. package/node_modules/hono/dist/adapter/cloudflare-workers/serve-static.js +26 -20
  117. package/node_modules/hono/dist/adapter/cloudflare-workers/utils.js +21 -34
  118. package/node_modules/hono/dist/adapter/cloudflare-workers/websocket.js +31 -39
  119. package/node_modules/hono/dist/adapter/deno/conninfo.js +16 -13
  120. package/node_modules/hono/dist/adapter/deno/deno.d.js +1 -0
  121. package/node_modules/hono/dist/adapter/deno/index.js +3 -10
  122. package/node_modules/hono/dist/adapter/deno/serve-static.js +33 -38
  123. package/node_modules/hono/dist/adapter/deno/ssg.js +27 -16
  124. package/node_modules/hono/dist/adapter/deno/websocket.js +30 -30
  125. package/node_modules/hono/dist/adapter/lambda-edge/conninfo.js +7 -9
  126. package/node_modules/hono/dist/adapter/lambda-edge/handler.js +102 -87
  127. package/node_modules/hono/dist/adapter/lambda-edge/index.js +2 -6
  128. package/node_modules/hono/dist/adapter/netlify/conninfo.js +24 -9
  129. package/node_modules/hono/dist/adapter/netlify/handler.js +10 -8
  130. package/node_modules/hono/dist/adapter/netlify/index.js +3 -2
  131. package/node_modules/hono/dist/adapter/netlify/mod.js +2 -6
  132. package/node_modules/hono/dist/adapter/service-worker/handler.js +15 -19
  133. package/node_modules/hono/dist/adapter/service-worker/index.js +23 -7
  134. package/node_modules/hono/dist/adapter/service-worker/types.js +1 -0
  135. package/node_modules/hono/dist/adapter/vercel/conninfo.js +7 -10
  136. package/node_modules/hono/dist/adapter/vercel/handler.js +8 -6
  137. package/node_modules/hono/dist/adapter/vercel/index.js +2 -6
  138. package/node_modules/hono/dist/cjs/_virtual/_rolldown/runtime.js +33 -0
  139. package/node_modules/hono/dist/cjs/adapter/aws-lambda/conninfo.js +42 -44
  140. package/node_modules/hono/dist/cjs/adapter/aws-lambda/handler.js +326 -370
  141. package/node_modules/hono/dist/cjs/adapter/aws-lambda/index.js +7 -34
  142. package/node_modules/hono/dist/cjs/adapter/aws-lambda/types.js +0 -15
  143. package/node_modules/hono/dist/cjs/adapter/bun/conninfo.js +21 -47
  144. package/node_modules/hono/dist/cjs/adapter/bun/index.js +14 -45
  145. package/node_modules/hono/dist/cjs/adapter/bun/serve-static.js +29 -50
  146. package/node_modules/hono/dist/cjs/adapter/bun/server.js +11 -26
  147. package/node_modules/hono/dist/cjs/adapter/bun/ssg.js +24 -35
  148. package/node_modules/hono/dist/cjs/adapter/bun/websocket.js +63 -91
  149. package/node_modules/hono/dist/cjs/adapter/cloudflare-pages/conninfo.js +25 -31
  150. package/node_modules/hono/dist/cjs/adapter/cloudflare-pages/handler.js +61 -85
  151. package/node_modules/hono/dist/cjs/adapter/cloudflare-pages/index.js +7 -34
  152. package/node_modules/hono/dist/cjs/adapter/cloudflare-workers/conninfo.js +8 -31
  153. package/node_modules/hono/dist/cjs/adapter/cloudflare-workers/index.js +7 -33
  154. package/node_modules/hono/dist/cjs/adapter/cloudflare-workers/serve-static-module.js +7 -29
  155. package/node_modules/hono/dist/cjs/adapter/cloudflare-workers/serve-static.js +27 -42
  156. package/node_modules/hono/dist/cjs/adapter/cloudflare-workers/utils.js +21 -55
  157. package/node_modules/hono/dist/cjs/adapter/cloudflare-workers/websocket.js +33 -62
  158. package/node_modules/hono/dist/cjs/adapter/deno/conninfo.js +16 -34
  159. package/node_modules/hono/dist/cjs/adapter/deno/index.js +10 -38
  160. package/node_modules/hono/dist/cjs/adapter/deno/serve-static.js +33 -59
  161. package/node_modules/hono/dist/cjs/adapter/deno/ssg.js +27 -37
  162. package/node_modules/hono/dist/cjs/adapter/deno/websocket.js +32 -53
  163. package/node_modules/hono/dist/cjs/adapter/lambda-edge/conninfo.js +8 -31
  164. package/node_modules/hono/dist/cjs/adapter/lambda-edge/handler.js +105 -119
  165. package/node_modules/hono/dist/cjs/adapter/lambda-edge/index.js +5 -30
  166. package/node_modules/hono/dist/cjs/adapter/netlify/conninfo.js +25 -31
  167. package/node_modules/hono/dist/cjs/adapter/netlify/handler.js +10 -29
  168. package/node_modules/hono/dist/cjs/adapter/netlify/index.js +5 -21
  169. package/node_modules/hono/dist/cjs/adapter/netlify/mod.js +5 -30
  170. package/node_modules/hono/dist/cjs/adapter/service-worker/handler.js +16 -41
  171. package/node_modules/hono/dist/cjs/adapter/service-worker/index.js +25 -30
  172. package/node_modules/hono/dist/cjs/adapter/service-worker/types.js +0 -15
  173. package/node_modules/hono/dist/cjs/adapter/vercel/conninfo.js +8 -32
  174. package/node_modules/hono/dist/cjs/adapter/vercel/handler.js +8 -27
  175. package/node_modules/hono/dist/cjs/adapter/vercel/index.js +5 -30
  176. package/node_modules/hono/dist/cjs/client/client.js +139 -212
  177. package/node_modules/hono/dist/cjs/client/fetch-result-please.js +62 -80
  178. package/node_modules/hono/dist/cjs/client/index.js +7 -32
  179. package/node_modules/hono/dist/cjs/client/types.js +0 -15
  180. package/node_modules/hono/dist/cjs/client/utils.js +54 -92
  181. package/node_modules/hono/dist/cjs/compose.js +49 -66
  182. package/node_modules/hono/dist/cjs/context.js +379 -450
  183. package/node_modules/hono/dist/cjs/helper/accepts/accepts.js +47 -70
  184. package/node_modules/hono/dist/cjs/helper/accepts/index.js +3 -27
  185. package/node_modules/hono/dist/cjs/helper/adapter/index.js +33 -73
  186. package/node_modules/hono/dist/cjs/helper/conninfo/index.js +0 -15
  187. package/node_modules/hono/dist/cjs/helper/conninfo/types.js +0 -15
  188. package/node_modules/hono/dist/cjs/helper/cookie/index.js +75 -116
  189. package/node_modules/hono/dist/cjs/helper/css/common.js +165 -244
  190. package/node_modules/hono/dist/cjs/helper/css/index.js +136 -151
  191. package/node_modules/hono/dist/cjs/helper/dev/index.js +45 -71
  192. package/node_modules/hono/dist/cjs/helper/factory/index.js +30 -51
  193. package/node_modules/hono/dist/cjs/helper/html/index.js +32 -62
  194. package/node_modules/hono/dist/cjs/helper/proxy/index.js +113 -106
  195. package/node_modules/hono/dist/cjs/helper/route/index.js +123 -66
  196. package/node_modules/hono/dist/cjs/helper/ssg/index.js +19 -43
  197. package/node_modules/hono/dist/cjs/helper/ssg/middleware.js +56 -64
  198. package/node_modules/hono/dist/cjs/helper/ssg/plugins.js +55 -57
  199. package/node_modules/hono/dist/cjs/helper/ssg/ssg.js +196 -296
  200. package/node_modules/hono/dist/cjs/helper/ssg/utils.js +47 -90
  201. package/node_modules/hono/dist/cjs/helper/streaming/index.js +8 -35
  202. package/node_modules/hono/dist/cjs/helper/streaming/sse.js +53 -85
  203. package/node_modules/hono/dist/cjs/helper/streaming/stream.js +23 -53
  204. package/node_modules/hono/dist/cjs/helper/streaming/text.js +10 -32
  205. package/node_modules/hono/dist/cjs/helper/streaming/utils.js +13 -32
  206. package/node_modules/hono/dist/cjs/helper/testing/index.js +16 -31
  207. package/node_modules/hono/dist/cjs/helper/websocket/index.js +51 -76
  208. package/node_modules/hono/dist/cjs/hono-base.js +345 -403
  209. package/node_modules/hono/dist/cjs/hono.js +28 -42
  210. package/node_modules/hono/dist/cjs/http-exception.js +55 -56
  211. package/node_modules/hono/dist/cjs/index.js +22 -30
  212. package/node_modules/hono/dist/cjs/jsx/base.js +237 -366
  213. package/node_modules/hono/dist/cjs/jsx/children.js +16 -41
  214. package/node_modules/hono/dist/cjs/jsx/components.js +119 -192
  215. package/node_modules/hono/dist/cjs/jsx/constants.js +15 -42
  216. package/node_modules/hono/dist/cjs/jsx/context.js +144 -162
  217. package/node_modules/hono/dist/cjs/jsx/dom/client.js +49 -69
  218. package/node_modules/hono/dist/cjs/jsx/dom/components.js +23 -52
  219. package/node_modules/hono/dist/cjs/jsx/dom/context.js +39 -67
  220. package/node_modules/hono/dist/cjs/jsx/dom/css.js +143 -158
  221. package/node_modules/hono/dist/cjs/jsx/dom/hooks/index.js +55 -64
  222. package/node_modules/hono/dist/cjs/jsx/dom/index.js +114 -173
  223. package/node_modules/hono/dist/cjs/jsx/dom/intrinsic-element/components.js +282 -375
  224. package/node_modules/hono/dist/cjs/jsx/dom/jsx-dev-runtime.js +14 -49
  225. package/node_modules/hono/dist/cjs/jsx/dom/jsx-runtime.js +5 -32
  226. package/node_modules/hono/dist/cjs/jsx/dom/render.js +469 -623
  227. package/node_modules/hono/dist/cjs/jsx/dom/server.js +37 -64
  228. package/node_modules/hono/dist/cjs/jsx/dom/utils.js +7 -30
  229. package/node_modules/hono/dist/cjs/jsx/hooks/index.js +225 -318
  230. package/node_modules/hono/dist/cjs/jsx/index.js +86 -135
  231. package/node_modules/hono/dist/cjs/jsx/intrinsic-element/common.js +20 -43
  232. package/node_modules/hono/dist/cjs/jsx/intrinsic-element/components.js +117 -168
  233. package/node_modules/hono/dist/cjs/jsx/intrinsic-elements.js +0 -15
  234. package/node_modules/hono/dist/cjs/jsx/jsx-dev-runtime.js +14 -39
  235. package/node_modules/hono/dist/cjs/jsx/jsx-runtime.js +34 -68
  236. package/node_modules/hono/dist/cjs/jsx/streaming.js +123 -166
  237. package/node_modules/hono/dist/cjs/jsx/types.js +0 -15
  238. package/node_modules/hono/dist/cjs/jsx/utils.js +91 -175
  239. package/node_modules/hono/dist/cjs/middleware/basic-auth/index.js +98 -86
  240. package/node_modules/hono/dist/cjs/middleware/bearer-auth/index.js +92 -109
  241. package/node_modules/hono/dist/cjs/middleware/body-limit/index.js +66 -72
  242. package/node_modules/hono/dist/cjs/middleware/cache/index.js +153 -199
  243. package/node_modules/hono/dist/cjs/middleware/combine/index.js +135 -95
  244. package/node_modules/hono/dist/cjs/middleware/compress/index.js +73 -88
  245. package/node_modules/hono/dist/cjs/middleware/context-storage/index.js +49 -41
  246. package/node_modules/hono/dist/cjs/middleware/cors/index.js +107 -107
  247. package/node_modules/hono/dist/cjs/middleware/csrf/index.js +101 -72
  248. package/node_modules/hono/dist/cjs/middleware/etag/digest.js +58 -97
  249. package/node_modules/hono/dist/cjs/middleware/etag/index.js +71 -91
  250. package/node_modules/hono/dist/cjs/middleware/ip-restriction/index.js +161 -169
  251. package/node_modules/hono/dist/cjs/middleware/jsx-renderer/index.js +99 -77
  252. package/node_modules/hono/dist/cjs/middleware/jwk/index.js +3 -27
  253. package/node_modules/hono/dist/cjs/middleware/jwk/jwk.js +118 -135
  254. package/node_modules/hono/dist/cjs/middleware/jwt/index.js +9 -38
  255. package/node_modules/hono/dist/cjs/middleware/jwt/jwt.js +120 -141
  256. package/node_modules/hono/dist/cjs/middleware/language/index.js +7 -35
  257. package/node_modules/hono/dist/cjs/middleware/language/language.js +184 -182
  258. package/node_modules/hono/dist/cjs/middleware/logger/index.js +41 -62
  259. package/node_modules/hono/dist/cjs/middleware/method-not-allowed/index.js +82 -88
  260. package/node_modules/hono/dist/cjs/middleware/method-override/index.js +101 -102
  261. package/node_modules/hono/dist/cjs/middleware/powered-by/index.js +23 -30
  262. package/node_modules/hono/dist/cjs/middleware/pretty-json/index.js +38 -36
  263. package/node_modules/hono/dist/cjs/middleware/request-id/index.js +3 -27
  264. package/node_modules/hono/dist/cjs/middleware/request-id/request-id.js +34 -42
  265. package/node_modules/hono/dist/cjs/middleware/secure-headers/index.js +4 -29
  266. package/node_modules/hono/dist/cjs/middleware/secure-headers/permissions-policy.js +0 -15
  267. package/node_modules/hono/dist/cjs/middleware/secure-headers/secure-headers.js +142 -174
  268. package/node_modules/hono/dist/cjs/middleware/serve-static/index.js +56 -93
  269. package/node_modules/hono/dist/cjs/middleware/serve-static/path.js +15 -38
  270. package/node_modules/hono/dist/cjs/middleware/timeout/index.js +40 -45
  271. package/node_modules/hono/dist/cjs/middleware/timing/index.js +7 -35
  272. package/node_modules/hono/dist/cjs/middleware/timing/timing.js +177 -118
  273. package/node_modules/hono/dist/cjs/middleware/trailing-slash/index.js +85 -58
  274. package/node_modules/hono/dist/cjs/preset/quick.js +18 -37
  275. package/node_modules/hono/dist/cjs/preset/tiny.js +15 -33
  276. package/node_modules/hono/dist/cjs/request/constants.js +5 -27
  277. package/node_modules/hono/dist/cjs/request.js +334 -346
  278. package/node_modules/hono/dist/cjs/router/linear-router/index.js +3 -27
  279. package/node_modules/hono/dist/cjs/router/linear-router/router.js +95 -143
  280. package/node_modules/hono/dist/cjs/router/pattern-router/index.js +3 -27
  281. package/node_modules/hono/dist/cjs/router/pattern-router/router.js +41 -63
  282. package/node_modules/hono/dist/cjs/router/reg-exp-router/index.js +7 -34
  283. package/node_modules/hono/dist/cjs/router/reg-exp-router/matcher.js +18 -45
  284. package/node_modules/hono/dist/cjs/router/reg-exp-router/node.js +91 -135
  285. package/node_modules/hono/dist/cjs/router/reg-exp-router/prepared-router.js +92 -161
  286. package/node_modules/hono/dist/cjs/router/reg-exp-router/router.js +98 -147
  287. package/node_modules/hono/dist/cjs/router/reg-exp-router/trie.js +73 -89
  288. package/node_modules/hono/dist/cjs/router/smart-router/index.js +3 -27
  289. package/node_modules/hono/dist/cjs/router/smart-router/router.js +49 -79
  290. package/node_modules/hono/dist/cjs/router/trie-router/index.js +3 -27
  291. package/node_modules/hono/dist/cjs/router/trie-router/node.js +134 -186
  292. package/node_modules/hono/dist/cjs/router/trie-router/router.js +15 -39
  293. package/node_modules/hono/dist/cjs/router/utils.js +5 -27
  294. package/node_modules/hono/dist/cjs/router.js +37 -37
  295. package/node_modules/hono/dist/cjs/types.js +5 -28
  296. package/node_modules/hono/dist/cjs/utils/accept.js +177 -225
  297. package/node_modules/hono/dist/cjs/utils/basic-auth.js +16 -40
  298. package/node_modules/hono/dist/cjs/utils/body.js +84 -110
  299. package/node_modules/hono/dist/cjs/utils/buffer.js +43 -91
  300. package/node_modules/hono/dist/cjs/utils/color.js +35 -44
  301. package/node_modules/hono/dist/cjs/utils/compress.js +11 -26
  302. package/node_modules/hono/dist/cjs/utils/concurrent.js +29 -59
  303. package/node_modules/hono/dist/cjs/utils/constants.js +7 -26
  304. package/node_modules/hono/dist/cjs/utils/cookie.js +107 -177
  305. package/node_modules/hono/dist/cjs/utils/crypto.js +30 -61
  306. package/node_modules/hono/dist/cjs/utils/encode.js +31 -48
  307. package/node_modules/hono/dist/cjs/utils/filepath.js +23 -54
  308. package/node_modules/hono/dist/cjs/utils/handler.js +11 -33
  309. package/node_modules/hono/dist/cjs/utils/headers.js +0 -15
  310. package/node_modules/hono/dist/cjs/utils/html.js +96 -137
  311. package/node_modules/hono/dist/cjs/utils/http-status.js +0 -15
  312. package/node_modules/hono/dist/cjs/utils/ipaddr.js +213 -286
  313. package/node_modules/hono/dist/cjs/utils/jwt/index.js +14 -27
  314. package/node_modules/hono/dist/cjs/utils/jwt/jwa.js +25 -42
  315. package/node_modules/hono/dist/cjs/utils/jwt/jws.js +119 -199
  316. package/node_modules/hono/dist/cjs/utils/jwt/jwt.js +122 -205
  317. package/node_modules/hono/dist/cjs/utils/jwt/types.js +122 -159
  318. package/node_modules/hono/dist/cjs/utils/jwt/utf8.js +9 -28
  319. package/node_modules/hono/dist/cjs/utils/mime.js +75 -101
  320. package/node_modules/hono/dist/cjs/utils/stream.js +88 -111
  321. package/node_modules/hono/dist/cjs/utils/types.js +0 -15
  322. package/node_modules/hono/dist/cjs/utils/url.js +185 -234
  323. package/node_modules/hono/dist/cjs/validator/index.js +3 -27
  324. package/node_modules/hono/dist/cjs/validator/utils.js +0 -15
  325. package/node_modules/hono/dist/cjs/validator/validator.js +60 -103
  326. package/node_modules/hono/dist/client/client.js +138 -197
  327. package/node_modules/hono/dist/client/fetch-result-please.js +59 -56
  328. package/node_modules/hono/dist/client/index.js +3 -7
  329. package/node_modules/hono/dist/client/types.js +1 -0
  330. package/node_modules/hono/dist/client/utils.js +51 -68
  331. package/node_modules/hono/dist/compose.js +49 -45
  332. package/node_modules/hono/dist/context.js +376 -426
  333. package/node_modules/hono/dist/helper/accepts/accepts.js +47 -49
  334. package/node_modules/hono/dist/helper/accepts/index.js +1 -4
  335. package/node_modules/hono/dist/helper/adapter/index.js +33 -52
  336. package/node_modules/hono/dist/helper/conninfo/index.js +1 -0
  337. package/node_modules/hono/dist/helper/conninfo/types.js +1 -0
  338. package/node_modules/hono/dist/helper/cookie/index.js +74 -94
  339. package/node_modules/hono/dist/helper/css/common.js +167 -225
  340. package/node_modules/hono/dist/helper/css/index.js +132 -137
  341. package/node_modules/hono/dist/helper/dev/index.js +44 -49
  342. package/node_modules/hono/dist/helper/factory/index.js +27 -27
  343. package/node_modules/hono/dist/helper/html/index.js +30 -39
  344. package/node_modules/hono/dist/helper/proxy/index.js +116 -88
  345. package/node_modules/hono/dist/helper/route/index.js +121 -43
  346. package/node_modules/hono/dist/helper/ssg/index.js +3 -18
  347. package/node_modules/hono/dist/helper/ssg/middleware.js +53 -40
  348. package/node_modules/hono/dist/helper/ssg/plugins.js +55 -36
  349. package/node_modules/hono/dist/helper/ssg/ssg.js +198 -283
  350. package/node_modules/hono/dist/helper/ssg/utils.js +53 -75
  351. package/node_modules/hono/dist/helper/streaming/index.js +2 -8
  352. package/node_modules/hono/dist/helper/streaming/sse.js +50 -61
  353. package/node_modules/hono/dist/helper/streaming/stream.js +22 -31
  354. package/node_modules/hono/dist/helper/streaming/text.js +9 -10
  355. package/node_modules/hono/dist/helper/streaming/utils.js +9 -12
  356. package/node_modules/hono/dist/helper/testing/index.js +16 -10
  357. package/node_modules/hono/dist/helper/websocket/index.js +49 -53
  358. package/node_modules/hono/dist/hono-base.js +342 -379
  359. package/node_modules/hono/dist/hono.js +27 -20
  360. package/node_modules/hono/dist/http-exception.js +53 -33
  361. package/node_modules/hono/dist/index.js +19 -6
  362. package/node_modules/hono/dist/jsx/base.js +231 -340
  363. package/node_modules/hono/dist/jsx/children.js +16 -20
  364. package/node_modules/hono/dist/jsx/components.js +118 -170
  365. package/node_modules/hono/dist/jsx/constants.js +9 -15
  366. package/node_modules/hono/dist/jsx/context.js +153 -150
  367. package/node_modules/hono/dist/jsx/dom/client.js +45 -48
  368. package/node_modules/hono/dist/jsx/dom/components.js +21 -29
  369. package/node_modules/hono/dist/jsx/dom/context.js +37 -44
  370. package/node_modules/hono/dist/jsx/dom/css.js +142 -147
  371. package/node_modules/hono/dist/jsx/dom/hooks/index.js +52 -40
  372. package/node_modules/hono/dist/jsx/dom/index.js +71 -134
  373. package/node_modules/hono/dist/jsx/dom/intrinsic-element/components.js +275 -359
  374. package/node_modules/hono/dist/jsx/dom/jsx-dev-runtime.js +14 -18
  375. package/node_modules/hono/dist/jsx/dom/jsx-runtime.js +2 -8
  376. package/node_modules/hono/dist/jsx/dom/render.js +492 -631
  377. package/node_modules/hono/dist/jsx/dom/server.js +32 -32
  378. package/node_modules/hono/dist/jsx/dom/utils.js +6 -8
  379. package/node_modules/hono/dist/jsx/hooks/index.js +236 -308
  380. package/node_modules/hono/dist/jsx/index.js +45 -98
  381. package/node_modules/hono/dist/jsx/intrinsic-element/common.js +20 -22
  382. package/node_modules/hono/dist/jsx/intrinsic-element/components.js +113 -154
  383. package/node_modules/hono/dist/jsx/intrinsic-elements.js +1 -0
  384. package/node_modules/hono/dist/jsx/jsx-dev-runtime.js +12 -16
  385. package/node_modules/hono/dist/jsx/jsx-runtime.js +29 -42
  386. package/node_modules/hono/dist/jsx/streaming.js +120 -142
  387. package/node_modules/hono/dist/jsx/types.js +1 -0
  388. package/node_modules/hono/dist/jsx/utils.js +105 -168
  389. package/node_modules/hono/dist/middleware/basic-auth/index.js +96 -63
  390. package/node_modules/hono/dist/middleware/bearer-auth/index.js +93 -89
  391. package/node_modules/hono/dist/middleware/body-limit/index.js +66 -51
  392. package/node_modules/hono/dist/middleware/cache/index.js +165 -190
  393. package/node_modules/hono/dist/middleware/combine/index.js +134 -73
  394. package/node_modules/hono/dist/middleware/compress/index.js +75 -69
  395. package/node_modules/hono/dist/middleware/context-storage/index.js +49 -19
  396. package/node_modules/hono/dist/middleware/cors/index.js +107 -86
  397. package/node_modules/hono/dist/middleware/csrf/index.js +103 -53
  398. package/node_modules/hono/dist/middleware/etag/digest.js +59 -77
  399. package/node_modules/hono/dist/middleware/etag/index.js +71 -70
  400. package/node_modules/hono/dist/middleware/ip-restriction/index.js +163 -158
  401. package/node_modules/hono/dist/middleware/jsx-renderer/index.js +97 -54
  402. package/node_modules/hono/dist/middleware/jwk/index.js +1 -4
  403. package/node_modules/hono/dist/middleware/jwk/jwk.js +116 -112
  404. package/node_modules/hono/dist/middleware/jwt/index.js +2 -10
  405. package/node_modules/hono/dist/middleware/jwt/jwt.js +114 -114
  406. package/node_modules/hono/dist/middleware/language/index.js +2 -15
  407. package/node_modules/hono/dist/middleware/language/language.js +180 -157
  408. package/node_modules/hono/dist/middleware/logger/index.js +43 -37
  409. package/node_modules/hono/dist/middleware/method-not-allowed/index.js +81 -66
  410. package/node_modules/hono/dist/middleware/method-override/index.js +101 -81
  411. package/node_modules/hono/dist/middleware/powered-by/index.js +23 -9
  412. package/node_modules/hono/dist/middleware/pretty-json/index.js +39 -16
  413. package/node_modules/hono/dist/middleware/request-id/index.js +1 -4
  414. package/node_modules/hono/dist/middleware/request-id/request-id.js +33 -20
  415. package/node_modules/hono/dist/middleware/secure-headers/index.js +1 -5
  416. package/node_modules/hono/dist/middleware/secure-headers/permissions-policy.js +1 -0
  417. package/node_modules/hono/dist/middleware/secure-headers/secure-headers.js +144 -155
  418. package/node_modules/hono/dist/middleware/serve-static/index.js +56 -72
  419. package/node_modules/hono/dist/middleware/serve-static/path.js +15 -17
  420. package/node_modules/hono/dist/middleware/timeout/index.js +40 -23
  421. package/node_modules/hono/dist/middleware/timing/index.js +2 -9
  422. package/node_modules/hono/dist/middleware/timing/timing.js +177 -97
  423. package/node_modules/hono/dist/middleware/trailing-slash/index.js +85 -37
  424. package/node_modules/hono/dist/preset/quick.js +17 -15
  425. package/node_modules/hono/dist/preset/tiny.js +14 -11
  426. package/node_modules/hono/dist/request/constants.js +4 -5
  427. package/node_modules/hono/dist/request.js +328 -319
  428. package/node_modules/hono/dist/router/linear-router/index.js +1 -4
  429. package/node_modules/hono/dist/router/linear-router/router.js +93 -120
  430. package/node_modules/hono/dist/router/pattern-router/index.js +1 -4
  431. package/node_modules/hono/dist/router/pattern-router/router.js +39 -40
  432. package/node_modules/hono/dist/router/reg-exp-router/index.js +1 -7
  433. package/node_modules/hono/dist/router/reg-exp-router/matcher.js +17 -23
  434. package/node_modules/hono/dist/router/reg-exp-router/node.js +87 -110
  435. package/node_modules/hono/dist/router/reg-exp-router/prepared-router.js +89 -137
  436. package/node_modules/hono/dist/router/reg-exp-router/router.js +92 -129
  437. package/node_modules/hono/dist/router/reg-exp-router/trie.js +69 -64
  438. package/node_modules/hono/dist/router/smart-router/index.js +1 -4
  439. package/node_modules/hono/dist/router/smart-router/router.js +46 -55
  440. package/node_modules/hono/dist/router/trie-router/index.js +1 -4
  441. package/node_modules/hono/dist/router/trie-router/node.js +131 -162
  442. package/node_modules/hono/dist/router/trie-router/router.js +11 -14
  443. package/node_modules/hono/dist/router/utils.js +4 -5
  444. package/node_modules/hono/dist/router.js +35 -14
  445. package/node_modules/hono/dist/types/adapter/aws-lambda/conninfo.d.ts +4 -1
  446. package/node_modules/hono/dist/types/adapter/aws-lambda/handler.d.ts +150 -104
  447. package/node_modules/hono/dist/types/adapter/aws-lambda/index.d.ts +4 -8
  448. package/node_modules/hono/dist/types/adapter/aws-lambda/types.d.ts +152 -122
  449. package/node_modules/hono/dist/types/adapter/bun/conninfo.d.ts +4 -1
  450. package/node_modules/hono/dist/types/adapter/bun/index.d.ts +6 -10
  451. package/node_modules/hono/dist/types/adapter/bun/serve-static.d.ts +7 -2
  452. package/node_modules/hono/dist/types/adapter/bun/server.d.ts +4 -5
  453. package/node_modules/hono/dist/types/adapter/bun/ssg.d.ts +5 -1
  454. package/node_modules/hono/dist/types/adapter/bun/websocket.d.ts +31 -16
  455. package/node_modules/hono/dist/types/adapter/cloudflare-pages/conninfo.d.ts +4 -1
  456. package/node_modules/hono/dist/types/adapter/cloudflare-pages/handler.d.ts +29 -17
  457. package/node_modules/hono/dist/types/adapter/cloudflare-pages/index.d.ts +3 -7
  458. package/node_modules/hono/dist/types/adapter/cloudflare-workers/conninfo.d.ts +6 -1
  459. package/node_modules/hono/dist/types/adapter/cloudflare-workers/index.d.ts +4 -7
  460. package/node_modules/hono/dist/types/adapter/cloudflare-workers/serve-static-module.d.ts +5 -2
  461. package/node_modules/hono/dist/types/adapter/cloudflare-workers/serve-static.d.ts +10 -5
  462. package/node_modules/hono/dist/types/adapter/cloudflare-workers/utils.d.ts +10 -2
  463. package/node_modules/hono/dist/types/adapter/cloudflare-workers/websocket.d.ts +6 -1
  464. package/node_modules/hono/dist/types/adapter/deno/conninfo.d.ts +4 -1
  465. package/node_modules/hono/dist/types/adapter/deno/deno.d.ts +1 -0
  466. package/node_modules/hono/dist/types/adapter/deno/index.d.ts +5 -8
  467. package/node_modules/hono/dist/types/adapter/deno/serve-static.d.ts +7 -2
  468. package/node_modules/hono/dist/types/adapter/deno/ssg.d.ts +5 -1
  469. package/node_modules/hono/dist/types/adapter/deno/websocket.d.ts +6 -1
  470. package/node_modules/hono/dist/types/adapter/lambda-edge/conninfo.d.ts +6 -1
  471. package/node_modules/hono/dist/types/adapter/lambda-edge/handler.d.ts +83 -57
  472. package/node_modules/hono/dist/types/adapter/lambda-edge/index.d.ts +3 -7
  473. package/node_modules/hono/dist/types/adapter/netlify/conninfo.d.ts +4 -1
  474. package/node_modules/hono/dist/types/adapter/netlify/handler.d.ts +6 -1
  475. package/node_modules/hono/dist/types/adapter/netlify/index.d.ts +3 -5
  476. package/node_modules/hono/dist/types/adapter/netlify/mod.d.ts +3 -2
  477. package/node_modules/hono/dist/types/adapter/service-worker/handler.d.ts +9 -7
  478. package/node_modules/hono/dist/types/adapter/service-worker/index.d.ts +7 -9
  479. package/node_modules/hono/dist/types/adapter/service-worker/types.d.ts +12 -7
  480. package/node_modules/hono/dist/types/adapter/vercel/conninfo.d.ts +6 -1
  481. package/node_modules/hono/dist/types/adapter/vercel/handler.d.ts +6 -1
  482. package/node_modules/hono/dist/types/adapter/vercel/index.d.ts +3 -6
  483. package/node_modules/hono/dist/types/client/client.d.ts +5 -3
  484. package/node_modules/hono/dist/types/client/fetch-result-please.d.ts +21 -19
  485. package/node_modules/hono/dist/types/client/index.d.ts +5 -7
  486. package/node_modules/hono/dist/types/client/types.d.ts +134 -159
  487. package/node_modules/hono/dist/types/client/utils.d.ts +6 -4
  488. package/node_modules/hono/dist/types/compose.d.ts +4 -2
  489. package/node_modules/hono/dist/types/context.d.ts +335 -335
  490. package/node_modules/hono/dist/types/helper/accepts/accepts.d.ts +11 -9
  491. package/node_modules/hono/dist/types/helper/accepts/index.d.ts +2 -5
  492. package/node_modules/hono/dist/types/helper/adapter/index.d.ts +4 -6
  493. package/node_modules/hono/dist/types/helper/conninfo/index.d.ts +2 -5
  494. package/node_modules/hono/dist/types/helper/conninfo/types.d.ts +25 -23
  495. package/node_modules/hono/dist/types/helper/cookie/index.d.ts +10 -12
  496. package/node_modules/hono/dist/types/helper/css/common.d.ts +11 -9
  497. package/node_modules/hono/dist/types/helper/css/index.d.ts +26 -28
  498. package/node_modules/hono/dist/types/helper/dev/index.d.ts +10 -12
  499. package/node_modules/hono/dist/types/helper/factory/index.d.ts +26 -73
  500. package/node_modules/hono/dist/types/helper/html/index.d.ts +4 -7
  501. package/node_modules/hono/dist/types/helper/proxy/index.d.ts +19 -21
  502. package/node_modules/hono/dist/types/helper/route/index.d.ts +4 -2
  503. package/node_modules/hono/dist/types/helper/ssg/index.d.ts +4 -7
  504. package/node_modules/hono/dist/types/helper/ssg/middleware.d.ts +8 -6
  505. package/node_modules/hono/dist/types/helper/ssg/plugins.d.ts +3 -1
  506. package/node_modules/hono/dist/types/helper/ssg/ssg.d.ts +38 -36
  507. package/node_modules/hono/dist/types/helper/ssg/utils.d.ts +5 -3
  508. package/node_modules/hono/dist/types/helper/streaming/index.d.ts +4 -8
  509. package/node_modules/hono/dist/types/helper/streaming/sse.d.ts +10 -8
  510. package/node_modules/hono/dist/types/helper/streaming/stream.d.ts +4 -2
  511. package/node_modules/hono/dist/types/helper/streaming/text.d.ts +4 -2
  512. package/node_modules/hono/dist/types/helper/streaming/utils.d.ts +2 -0
  513. package/node_modules/hono/dist/types/helper/testing/index.d.ts +7 -9
  514. package/node_modules/hono/dist/types/helper/websocket/index.d.ts +30 -33
  515. package/node_modules/hono/dist/types/hono-base.d.ts +208 -210
  516. package/node_modules/hono/dist/types/hono.d.ts +11 -10
  517. package/node_modules/hono/dist/types/http-exception.d.ts +20 -22
  518. package/node_modules/hono/dist/types/index.d.ts +6 -37
  519. package/node_modules/hono/dist/types/jsx/base.d.ts +36 -34
  520. package/node_modules/hono/dist/types/jsx/children.d.ts +8 -6
  521. package/node_modules/hono/dist/types/jsx/components.d.ts +8 -5
  522. package/node_modules/hono/dist/types/jsx/constants.d.ts +2 -0
  523. package/node_modules/hono/dist/types/jsx/context.d.ts +9 -6
  524. package/node_modules/hono/dist/types/jsx/dom/client.d.ts +9 -10
  525. package/node_modules/hono/dist/types/jsx/dom/components.d.ts +9 -6
  526. package/node_modules/hono/dist/types/jsx/dom/context.d.ts +3 -1
  527. package/node_modules/hono/dist/types/jsx/dom/css.d.ts +27 -30
  528. package/node_modules/hono/dist/types/jsx/dom/hooks/index.d.ts +11 -12
  529. package/node_modules/hono/dist/types/jsx/dom/index.d.ts +79 -83
  530. package/node_modules/hono/dist/types/jsx/dom/intrinsic-element/components.d.ts +9 -5
  531. package/node_modules/hono/dist/types/jsx/dom/jsx-dev-runtime.d.ts +4 -6
  532. package/node_modules/hono/dist/types/jsx/dom/jsx-runtime.d.ts +3 -7
  533. package/node_modules/hono/dist/types/jsx/dom/render.d.ts +32 -50
  534. package/node_modules/hono/dist/types/jsx/dom/server.d.ts +87 -85
  535. package/node_modules/hono/dist/types/jsx/dom/utils.d.ts +2 -0
  536. package/node_modules/hono/dist/types/jsx/hooks/index.d.ts +16 -16
  537. package/node_modules/hono/dist/types/jsx/index.d.ts +71 -73
  538. package/node_modules/hono/dist/types/jsx/intrinsic-element/common.d.ts +3 -1
  539. package/node_modules/hono/dist/types/jsx/intrinsic-element/components.d.ts +7 -4
  540. package/node_modules/hono/dist/types/jsx/intrinsic-elements.d.ts +708 -708
  541. package/node_modules/hono/dist/types/jsx/jsx-dev-runtime.d.ts +4 -7
  542. package/node_modules/hono/dist/types/jsx/jsx-runtime.d.ts +7 -10
  543. package/node_modules/hono/dist/types/jsx/streaming.d.ts +9 -10
  544. package/node_modules/hono/dist/types/jsx/types.d.ts +12 -13
  545. package/node_modules/hono/dist/types/jsx/utils.d.ts +2 -0
  546. package/node_modules/hono/dist/types/middleware/basic-auth/index.d.ts +17 -19
  547. package/node_modules/hono/dist/types/middleware/bearer-auth/index.d.ts +46 -48
  548. package/node_modules/hono/dist/types/middleware/body-limit/index.d.ts +6 -8
  549. package/node_modules/hono/dist/types/middleware/cache/index.d.ts +13 -15
  550. package/node_modules/hono/dist/types/middleware/combine/index.d.ts +4 -6
  551. package/node_modules/hono/dist/types/middleware/compress/index.d.ts +9 -10
  552. package/node_modules/hono/dist/types/middleware/context-storage/index.d.ts +4 -6
  553. package/node_modules/hono/dist/types/middleware/cors/index.d.ts +10 -12
  554. package/node_modules/hono/dist/types/middleware/csrf/index.d.ts +6 -8
  555. package/node_modules/hono/dist/types/middleware/etag/digest.d.ts +2 -0
  556. package/node_modules/hono/dist/types/middleware/etag/index.d.ts +6 -8
  557. package/node_modules/hono/dist/types/middleware/ip-restriction/index.d.ts +11 -12
  558. package/node_modules/hono/dist/types/middleware/jsx-renderer/index.d.ts +11 -11
  559. package/node_modules/hono/dist/types/middleware/jwk/index.d.ts +2 -1
  560. package/node_modules/hono/dist/types/middleware/jwk/jwk.d.ts +20 -23
  561. package/node_modules/hono/dist/types/middleware/jwt/index.d.ts +7 -6
  562. package/node_modules/hono/dist/types/middleware/jwt/jwt.d.ts +28 -30
  563. package/node_modules/hono/dist/types/middleware/language/index.d.ts +6 -5
  564. package/node_modules/hono/dist/types/middleware/language/language.d.ts +42 -44
  565. package/node_modules/hono/dist/types/middleware/logger/index.d.ts +3 -5
  566. package/node_modules/hono/dist/types/middleware/method-not-allowed/index.d.ts +7 -9
  567. package/node_modules/hono/dist/types/middleware/method-override/index.d.ts +14 -16
  568. package/node_modules/hono/dist/types/middleware/powered-by/index.d.ts +8 -10
  569. package/node_modules/hono/dist/types/middleware/pretty-json/index.d.ts +18 -20
  570. package/node_modules/hono/dist/types/middleware/request-id/index.d.ts +6 -5
  571. package/node_modules/hono/dist/types/middleware/request-id/request-id.d.ts +9 -11
  572. package/node_modules/hono/dist/types/middleware/secure-headers/index.d.ts +6 -6
  573. package/node_modules/hono/dist/types/middleware/secure-headers/permissions-policy.d.ts +2 -0
  574. package/node_modules/hono/dist/types/middleware/secure-headers/secure-headers.d.ts +55 -57
  575. package/node_modules/hono/dist/types/middleware/serve-static/index.d.ts +24 -24
  576. package/node_modules/hono/dist/types/middleware/serve-static/path.d.ts +2 -0
  577. package/node_modules/hono/dist/types/middleware/timeout/index.d.ts +5 -7
  578. package/node_modules/hono/dist/types/middleware/timing/index.d.ts +6 -5
  579. package/node_modules/hono/dist/types/middleware/timing/timing.d.ts +17 -20
  580. package/node_modules/hono/dist/types/middleware/trailing-slash/index.d.ts +35 -37
  581. package/node_modules/hono/dist/types/preset/quick.d.ts +6 -9
  582. package/node_modules/hono/dist/types/preset/tiny.d.ts +6 -9
  583. package/node_modules/hono/dist/types/request/constants.d.ts +2 -0
  584. package/node_modules/hono/dist/types/request.d.ts +288 -286
  585. package/node_modules/hono/dist/types/router/linear-router/index.d.ts +2 -5
  586. package/node_modules/hono/dist/types/router/linear-router/router.d.ts +7 -5
  587. package/node_modules/hono/dist/types/router/pattern-router/index.d.ts +2 -5
  588. package/node_modules/hono/dist/types/router/pattern-router/router.d.ts +7 -5
  589. package/node_modules/hono/dist/types/router/reg-exp-router/index.d.ts +3 -6
  590. package/node_modules/hono/dist/types/router/reg-exp-router/matcher.d.ts +3 -1
  591. package/node_modules/hono/dist/types/router/reg-exp-router/node.d.ts +6 -4
  592. package/node_modules/hono/dist/types/router/reg-exp-router/prepared-router.d.ts +11 -10
  593. package/node_modules/hono/dist/types/router/reg-exp-router/router.d.ts +10 -9
  594. package/node_modules/hono/dist/types/router/reg-exp-router/trie.d.ts +7 -5
  595. package/node_modules/hono/dist/types/router/smart-router/index.d.ts +2 -5
  596. package/node_modules/hono/dist/types/router/smart-router/router.d.ts +11 -9
  597. package/node_modules/hono/dist/types/router/trie-router/index.d.ts +2 -5
  598. package/node_modules/hono/dist/types/router/trie-router/node.d.ts +6 -4
  599. package/node_modules/hono/dist/types/router/trie-router/router.d.ts +7 -5
  600. package/node_modules/hono/dist/types/router/utils.d.ts +2 -0
  601. package/node_modules/hono/dist/types/router.d.ts +23 -22
  602. package/node_modules/hono/dist/types/types.d.ts +146 -505
  603. package/node_modules/hono/dist/types/utils/accept.d.ts +5 -3
  604. package/node_modules/hono/dist/types/utils/basic-auth.d.ts +4 -2
  605. package/node_modules/hono/dist/types/utils/body.d.ts +46 -50
  606. package/node_modules/hono/dist/types/utils/buffer.d.ts +7 -5
  607. package/node_modules/hono/dist/types/utils/color.d.ts +2 -0
  608. package/node_modules/hono/dist/types/utils/compress.d.ts +2 -0
  609. package/node_modules/hono/dist/types/utils/concurrent.d.ts +6 -4
  610. package/node_modules/hono/dist/types/utils/constants.d.ts +2 -0
  611. package/node_modules/hono/dist/types/utils/cookie.d.ts +20 -18
  612. package/node_modules/hono/dist/types/utils/crypto.d.ts +5 -7
  613. package/node_modules/hono/dist/types/utils/encode.d.ts +2 -0
  614. package/node_modules/hono/dist/types/utils/filepath.d.ts +5 -3
  615. package/node_modules/hono/dist/types/utils/handler.d.ts +2 -0
  616. package/node_modules/hono/dist/types/utils/headers.d.ts +2 -0
  617. package/node_modules/hono/dist/types/utils/html.d.ts +11 -9
  618. package/node_modules/hono/dist/types/utils/http-status.d.ts +2 -0
  619. package/node_modules/hono/dist/types/utils/ipaddr.d.ts +4 -6
  620. package/node_modules/hono/dist/types/utils/jwt/index.d.ts +18 -12
  621. package/node_modules/hono/dist/types/utils/jwt/jwa.d.ts +15 -13
  622. package/node_modules/hono/dist/types/utils/jwt/jws.d.ts +4 -7
  623. package/node_modules/hono/dist/types/utils/jwt/jwt.d.ts +26 -29
  624. package/node_modules/hono/dist/types/utils/jwt/types.d.ts +48 -45
  625. package/node_modules/hono/dist/types/utils/jwt/utf8.d.ts +2 -0
  626. package/node_modules/hono/dist/types/utils/mime.d.ts +60 -57
  627. package/node_modules/hono/dist/types/utils/stream.d.ts +27 -25
  628. package/node_modules/hono/dist/types/utils/types.d.ts +14 -26
  629. package/node_modules/hono/dist/types/utils/url.d.ts +2 -0
  630. package/node_modules/hono/dist/types/validator/index.d.ts +3 -7
  631. package/node_modules/hono/dist/types/validator/utils.d.ts +6 -8
  632. package/node_modules/hono/dist/types/validator/validator.d.ts +11 -9
  633. package/node_modules/hono/dist/types.js +4 -6
  634. package/node_modules/hono/dist/utils/accept.js +185 -212
  635. package/node_modules/hono/dist/utils/basic-auth.js +18 -21
  636. package/node_modules/hono/dist/utils/body.js +87 -92
  637. package/node_modules/hono/dist/utils/buffer.js +44 -71
  638. package/node_modules/hono/dist/utils/color.js +33 -21
  639. package/node_modules/hono/dist/utils/compress.js +11 -5
  640. package/node_modules/hono/dist/utils/concurrent.js +29 -38
  641. package/node_modules/hono/dist/utils/constants.js +7 -5
  642. package/node_modules/hono/dist/utils/cookie.js +114 -163
  643. package/node_modules/hono/dist/utils/crypto.js +30 -40
  644. package/node_modules/hono/dist/utils/encode.js +30 -26
  645. package/node_modules/hono/dist/utils/filepath.js +23 -33
  646. package/node_modules/hono/dist/utils/handler.js +10 -11
  647. package/node_modules/hono/dist/utils/headers.js +1 -0
  648. package/node_modules/hono/dist/utils/html.js +97 -117
  649. package/node_modules/hono/dist/utils/http-status.js +1 -0
  650. package/node_modules/hono/dist/utils/ipaddr.js +227 -279
  651. package/node_modules/hono/dist/utils/jwt/index.js +12 -4
  652. package/node_modules/hono/dist/utils/jwt/jwa.js +24 -20
  653. package/node_modules/hono/dist/utils/jwt/jws.js +115 -174
  654. package/node_modules/hono/dist/utils/jwt/jwt.js +120 -197
  655. package/node_modules/hono/dist/utils/jwt/types.js +79 -95
  656. package/node_modules/hono/dist/utils/jwt/utf8.js +9 -7
  657. package/node_modules/hono/dist/utils/mime.js +74 -79
  658. package/node_modules/hono/dist/utils/stream.js +86 -88
  659. package/node_modules/hono/dist/utils/types.js +1 -0
  660. package/node_modules/hono/dist/utils/url.js +187 -215
  661. package/node_modules/hono/dist/validator/index.js +1 -4
  662. package/node_modules/hono/dist/validator/utils.js +1 -0
  663. package/node_modules/hono/dist/validator/validator.js +61 -83
  664. package/node_modules/hono/package.json +27 -27
  665. package/package.json +2 -2
  666. package/profiles/README.md +20 -0
  667. package/profiles/index.json +2 -1
  668. package/profiles/sales/0.1.profile.json +252 -0
  669. package/server.js +99 -0
  670. package/dist/ui/assets/index-DWpjjPIf.js +0 -110
@@ -1,74 +1,80 @@
1
- // src/middleware/compress/index.ts
2
1
  import { parseAccept } from "../../utils/accept.js";
3
2
  import { COMPRESSIBLE_CONTENT_TYPE_REGEX } from "../../utils/compress.js";
4
- var ENCODING_TYPES = ["gzip", "deflate"];
5
- var cacheControlNoTransformRegExp = /(?:^|,)\s*?no-transform\s*?(?:,|$)/i;
6
- var selectEncoding = (header, candidates) => {
7
- if (header === void 0) {
8
- return void 0;
9
- }
10
- const accepts = parseAccept(header);
11
- const wildcardQ = accepts.find((a) => a.type === "*")?.q;
12
- let best;
13
- for (const enc of candidates) {
14
- const explicit = accepts.find((a) => a.type.toLowerCase() === enc);
15
- const q = explicit ? explicit.q : wildcardQ ?? 0;
16
- if (q === 1) {
17
- return enc;
18
- } else if (q > 0 && (!best || q > best.q)) {
19
- best = { encoding: enc, q };
20
- }
21
- }
22
- return best?.encoding;
3
+ //#region src/middleware/compress/index.ts
4
+ const ENCODING_TYPES = ["gzip", "deflate"];
5
+ const cacheControlNoTransformRegExp = /(?:^|,)\s*?no-transform\s*?(?:,|$)/i;
6
+ const selectEncoding = (header, candidates) => {
7
+ if (header === void 0) return;
8
+ const accepts = parseAccept(header);
9
+ const wildcardQ = accepts.find((a) => a.type === "*")?.q;
10
+ let best;
11
+ for (const enc of candidates) {
12
+ const explicit = accepts.find((a) => a.type.toLowerCase() === enc);
13
+ const q = explicit ? explicit.q : wildcardQ ?? 0;
14
+ if (q === 1) return enc;
15
+ else if (q > 0 && (!best || q > best.q)) best = {
16
+ encoding: enc,
17
+ q
18
+ };
19
+ }
20
+ return best?.encoding;
23
21
  };
24
- var varyAcceptEncodingRegExp = /(?:^|,)\s*accept-encoding\s*(?:,|$)/i;
25
- var compress = (options) => {
26
- const threshold = options?.threshold ?? 1024;
27
- const candidates = options?.encoding ? [options.encoding] : ENCODING_TYPES;
28
- const contentTypeFilter = options?.contentTypeFilter ?? COMPRESSIBLE_CONTENT_TYPE_REGEX;
29
- const shouldCompress = typeof contentTypeFilter === "function" ? (res) => {
30
- const type = res.headers.get("Content-Type");
31
- return type && contentTypeFilter(type);
32
- } : (res) => {
33
- const type = res.headers.get("Content-Type");
34
- return type && contentTypeFilter.test(type);
35
- };
36
- return async function compress2(ctx, next) {
37
- await next();
38
- const contentLength = ctx.res.headers.get("Content-Length");
39
- if (ctx.res.status === 206 || // partial content, Content-Range refers to the uncompressed bytes
40
- ctx.res.headers.has("Content-Encoding") || // already encoded
41
- ctx.res.headers.has("Transfer-Encoding") || // already encoded or chunked
42
- ctx.req.method === "HEAD" || // HEAD request
43
- contentLength && Number(contentLength) < threshold || // content-length below threshold
44
- !shouldCompress(ctx.res) || // not compressible type
45
- !shouldTransform(ctx.res)) {
46
- return;
47
- }
48
- const current = ctx.res.headers.get("Vary");
49
- if (current !== "*" && !(current && varyAcceptEncodingRegExp.test(current))) {
50
- ctx.header("Vary", current ? `${current}, Accept-Encoding` : "Accept-Encoding");
51
- }
52
- const accepted = ctx.req.header("Accept-Encoding");
53
- const encoding = selectEncoding(accepted, candidates);
54
- if (!encoding || !ctx.res.body) {
55
- return;
56
- }
57
- const stream = new CompressionStream(encoding);
58
- ctx.res = new Response(ctx.res.body.pipeThrough(stream), ctx.res);
59
- ctx.res.headers.delete("Content-Length");
60
- ctx.res.headers.set("Content-Encoding", encoding);
61
- const etag = ctx.res.headers.get("ETag");
62
- if (etag && !etag.startsWith("W/")) {
63
- ctx.res.headers.set("ETag", `W/${etag}`);
64
- }
65
- };
22
+ const varyAcceptEncodingRegExp = /(?:^|,)\s*accept-encoding\s*(?:,|$)/i;
23
+ /**
24
+ * Compress Middleware for Hono.
25
+ *
26
+ * @see {@link https://hono.dev/docs/middleware/builtin/compress}
27
+ *
28
+ * @param {CompressionOptions} [options] - The options for the compress middleware.
29
+ * @param {'gzip' | 'deflate'} [options.encoding] - The compression scheme to allow for response compression. Either 'gzip' or 'deflate'. If not defined, both are allowed and will be used based on the Accept-Encoding header. 'gzip' is prioritized if this option is not provided and the client provides both in the Accept-Encoding header.
30
+ * @param {number} [options.threshold=1024] - The minimum size in bytes to compress. Defaults to 1024 bytes.
31
+ * @param {RegExp | Function} [options.contentTypeFilter=COMPRESSIBLE_CONTENT_TYPE_REGEX] - A RegExp or function to determine if the response Content-Type should be compressed.
32
+ * @returns {MiddlewareHandler} The middleware handler function.
33
+ *
34
+ * @example
35
+ * ```ts
36
+ * const app = new Hono()
37
+ *
38
+ * app.use(compress())
39
+ *
40
+ * // Compress only JSON responses
41
+ * app.use(compress({ contentTypeFilter: /^application\/json/ }))
42
+ *
43
+ * // Compress based on custom Content-Type logic
44
+ * app.use(compress({ contentTypeFilter: (type) => COMPRESSIBLE_CONTENT_TYPE_REGEX.test(type) || type === "application/x-myformat" }))
45
+ * ```
46
+ */
47
+ const compress = (options) => {
48
+ const threshold = options?.threshold ?? 1024;
49
+ const candidates = options?.encoding ? [options.encoding] : ENCODING_TYPES;
50
+ const contentTypeFilter = options?.contentTypeFilter ?? COMPRESSIBLE_CONTENT_TYPE_REGEX;
51
+ const shouldCompress = typeof contentTypeFilter === "function" ? (res) => {
52
+ const type = res.headers.get("Content-Type");
53
+ return type && contentTypeFilter(type);
54
+ } : (res) => {
55
+ const type = res.headers.get("Content-Type");
56
+ return type && contentTypeFilter.test(type);
57
+ };
58
+ return async function compress(ctx, next) {
59
+ await next();
60
+ const contentLength = ctx.res.headers.get("Content-Length");
61
+ if (ctx.res.status === 206 || ctx.res.headers.has("Content-Encoding") || ctx.res.headers.has("Transfer-Encoding") || ctx.req.method === "HEAD" || contentLength && Number(contentLength) < threshold || !shouldCompress(ctx.res) || !shouldTransform(ctx.res)) return;
62
+ const current = ctx.res.headers.get("Vary");
63
+ if (current !== "*" && !(current && varyAcceptEncodingRegExp.test(current))) ctx.header("Vary", current ? `${current}, Accept-Encoding` : "Accept-Encoding");
64
+ const accepted = ctx.req.header("Accept-Encoding");
65
+ const encoding = selectEncoding(accepted, candidates);
66
+ if (!encoding || !ctx.res.body) return;
67
+ const stream = new CompressionStream(encoding);
68
+ ctx.res = new Response(ctx.res.body.pipeThrough(stream), ctx.res);
69
+ ctx.res.headers.delete("Content-Length");
70
+ ctx.res.headers.set("Content-Encoding", encoding);
71
+ const etag = ctx.res.headers.get("ETag");
72
+ if (etag && !etag.startsWith("W/")) ctx.res.headers.set("ETag", `W/${etag}`);
73
+ };
66
74
  };
67
- var shouldTransform = (res) => {
68
- const cacheControl = res.headers.get("Cache-Control");
69
- return !cacheControl || !cacheControlNoTransformRegExp.test(cacheControl);
70
- };
71
- export {
72
- COMPRESSIBLE_CONTENT_TYPE_REGEX,
73
- compress
75
+ const shouldTransform = (res) => {
76
+ const cacheControl = res.headers.get("Cache-Control");
77
+ return !cacheControl || !cacheControlNoTransformRegExp.test(cacheControl);
74
78
  };
79
+ //#endregion
80
+ export { COMPRESSIBLE_CONTENT_TYPE_REGEX, compress };
@@ -1,23 +1,53 @@
1
- // src/middleware/context-storage/index.ts
2
1
  import { AsyncLocalStorage } from "node:async_hooks";
3
- var asyncLocalStorage = new AsyncLocalStorage();
4
- var contextStorage = () => {
5
- return async function contextStorage2(c, next) {
6
- await asyncLocalStorage.run(c, next);
7
- };
2
+ //#region src/middleware/context-storage/index.ts
3
+ /**
4
+ * @module
5
+ * Context Storage Middleware for Hono.
6
+ */
7
+ const asyncLocalStorage = new AsyncLocalStorage();
8
+ /**
9
+ * Context Storage Middleware for Hono.
10
+ *
11
+ * @see {@link https://hono.dev/docs/middleware/builtin/context-storage}
12
+ *
13
+ * @returns {MiddlewareHandler} The middleware handler function.
14
+ *
15
+ * @example
16
+ * ```ts
17
+ * type Env = {
18
+ * Variables: {
19
+ * message: string
20
+ * }
21
+ * }
22
+ *
23
+ * const app = new Hono<Env>()
24
+ *
25
+ * app.use(contextStorage())
26
+ *
27
+ * app.use(async (c, next) => {
28
+ * c.set('message', 'Hono is hot!!')
29
+ * await next()
30
+ * })
31
+ *
32
+ * app.get('/', async (c) => c.text(getMessage()))
33
+ *
34
+ * const getMessage = () => {
35
+ * return getContext<Env>().var.message
36
+ * }
37
+ * ```
38
+ */
39
+ const contextStorage = () => {
40
+ return async function contextStorage(c, next) {
41
+ await asyncLocalStorage.run(c, next);
42
+ };
8
43
  };
9
- var tryGetContext = () => {
10
- return asyncLocalStorage.getStore();
44
+ const tryGetContext = () => {
45
+ return asyncLocalStorage.getStore();
11
46
  };
12
- var getContext = () => {
13
- const context = tryGetContext();
14
- if (!context) {
15
- throw new Error("Context is not available");
16
- }
17
- return context;
18
- };
19
- export {
20
- contextStorage,
21
- getContext,
22
- tryGetContext
47
+ const getContext = () => {
48
+ const context = tryGetContext();
49
+ if (!context) throw new Error("Context is not available");
50
+ return context;
23
51
  };
52
+ //#endregion
53
+ export { contextStorage, getContext, tryGetContext };
@@ -1,87 +1,108 @@
1
- // src/middleware/cors/index.ts
2
- var cors = (options) => {
3
- const opts = {
4
- origin: "*",
5
- allowMethods: ["GET", "HEAD", "PUT", "POST", "DELETE", "PATCH", "QUERY"],
6
- allowHeaders: [],
7
- exposeHeaders: [],
8
- ...options
9
- };
10
- const exposeHeadersStr = opts.exposeHeaders?.length ? opts.exposeHeaders.join(",") : void 0;
11
- const allowHeadersStr = opts.allowHeaders?.length ? opts.allowHeaders.join(",") : void 0;
12
- const findAllowOrigin = ((optsOrigin) => {
13
- if (typeof optsOrigin === "string") {
14
- if (optsOrigin === "*") {
15
- return () => optsOrigin;
16
- } else {
17
- return (origin) => optsOrigin === origin ? origin : null;
18
- }
19
- } else if (typeof optsOrigin === "function") {
20
- return optsOrigin;
21
- } else {
22
- return (origin) => optsOrigin.includes(origin) ? origin : null;
23
- }
24
- })(opts.origin);
25
- const findAllowMethods = ((optsAllowMethods) => {
26
- if (typeof optsAllowMethods === "function") {
27
- return async (origin, c) => (await optsAllowMethods(origin, c)).join(",");
28
- } else if (Array.isArray(optsAllowMethods)) {
29
- const methodsStr = optsAllowMethods.join(",");
30
- return () => methodsStr;
31
- } else {
32
- return () => "";
33
- }
34
- })(opts.allowMethods);
35
- return async function cors2(c, next) {
36
- function set(key, value) {
37
- c.res.headers.set(key, value);
38
- }
39
- const allowOrigin = await findAllowOrigin(c.req.header("origin") || "", c);
40
- if (allowOrigin) {
41
- set("Access-Control-Allow-Origin", allowOrigin);
42
- }
43
- if (opts.credentials) {
44
- set("Access-Control-Allow-Credentials", "true");
45
- }
46
- if (exposeHeadersStr) {
47
- set("Access-Control-Expose-Headers", exposeHeadersStr);
48
- }
49
- if (c.req.method === "OPTIONS") {
50
- if (opts.origin !== "*") {
51
- c.res.headers.append("Vary", "Origin");
52
- }
53
- if (opts.maxAge != null) {
54
- set("Access-Control-Max-Age", opts.maxAge.toString());
55
- }
56
- const allowMethods = await findAllowMethods(c.req.header("origin") || "", c);
57
- if (allowMethods) {
58
- set("Access-Control-Allow-Methods", allowMethods);
59
- }
60
- let headersStr = allowHeadersStr;
61
- if (!headersStr) {
62
- const requestHeaders = c.req.header("Access-Control-Request-Headers");
63
- if (requestHeaders) {
64
- headersStr = requestHeaders.split(",").map((h) => h.trim()).join(",");
65
- }
66
- }
67
- if (headersStr) {
68
- set("Access-Control-Allow-Headers", headersStr);
69
- c.res.headers.append("Vary", "Access-Control-Request-Headers");
70
- }
71
- c.res.headers.delete("Content-Length");
72
- c.res.headers.delete("Content-Type");
73
- return new Response(null, {
74
- headers: c.res.headers,
75
- status: 204,
76
- statusText: "No Content"
77
- });
78
- }
79
- await next();
80
- if (opts.origin !== "*") {
81
- c.header("Vary", "Origin", { append: true });
82
- }
83
- };
84
- };
85
- export {
86
- cors
1
+ //#region src/middleware/cors/index.ts
2
+ /**
3
+ * CORS Middleware for Hono.
4
+ *
5
+ * @see {@link https://hono.dev/docs/middleware/builtin/cors}
6
+ *
7
+ * @param {CORSOptions} [options] - The options for the CORS middleware.
8
+ * @param {string | string[] | ((origin: string, c: Context) => Promise<string | undefined | null> | string | undefined | null)} [options.origin='*'] - The value of "Access-Control-Allow-Origin" CORS header.
9
+ * @param {string[] | ((origin: string, c: Context) => Promise<string[]> | string[])} [options.allowMethods=['GET', 'HEAD', 'PUT', 'POST', 'DELETE', 'PATCH', 'QUERY']] - The value of "Access-Control-Allow-Methods" CORS header.
10
+ * @param {string[]} [options.allowHeaders=[]] - The value of "Access-Control-Allow-Headers" CORS header.
11
+ * @param {number} [options.maxAge] - The value of "Access-Control-Max-Age" CORS header.
12
+ * @param {boolean} [options.credentials] - The value of "Access-Control-Allow-Credentials" CORS header.
13
+ * @param {string[]} [options.exposeHeaders=[]] - The value of "Access-Control-Expose-Headers" CORS header.
14
+ * @returns {MiddlewareHandler} The middleware handler function.
15
+ *
16
+ * @example
17
+ * ```ts
18
+ * const app = new Hono()
19
+ *
20
+ * app.use('/api/*', cors())
21
+ * app.use(
22
+ * '/api2/*',
23
+ * cors({
24
+ * origin: 'http://example.com',
25
+ * allowHeaders: ['X-Custom-Header', 'Upgrade-Insecure-Requests'],
26
+ * allowMethods: ['POST', 'GET', 'OPTIONS'],
27
+ * exposeHeaders: ['Content-Length', 'X-Kuma-Revision'],
28
+ * maxAge: 600,
29
+ * credentials: true,
30
+ * })
31
+ * )
32
+ *
33
+ * app.all('/api/abc', (c) => {
34
+ * return c.json({ success: true })
35
+ * })
36
+ * app.all('/api2/abc', (c) => {
37
+ * return c.json({ success: true })
38
+ * })
39
+ * ```
40
+ */
41
+ const cors = (options) => {
42
+ const opts = {
43
+ origin: "*",
44
+ allowMethods: [
45
+ "GET",
46
+ "HEAD",
47
+ "PUT",
48
+ "POST",
49
+ "DELETE",
50
+ "PATCH",
51
+ "QUERY"
52
+ ],
53
+ allowHeaders: [],
54
+ exposeHeaders: [],
55
+ ...options
56
+ };
57
+ const exposeHeadersStr = opts.exposeHeaders?.length ? opts.exposeHeaders.join(",") : void 0;
58
+ const allowHeadersStr = opts.allowHeaders?.length ? opts.allowHeaders.join(",") : void 0;
59
+ const findAllowOrigin = ((optsOrigin) => {
60
+ if (typeof optsOrigin === "string") {
61
+ if (optsOrigin === "*") return () => optsOrigin;
62
+ else return (origin) => optsOrigin === origin ? origin : null;
63
+ } else if (typeof optsOrigin === "function") return optsOrigin;
64
+ else return (origin) => optsOrigin.includes(origin) ? origin : null;
65
+ })(opts.origin);
66
+ const findAllowMethods = ((optsAllowMethods) => {
67
+ if (typeof optsAllowMethods === "function") return async (origin, c) => (await optsAllowMethods(origin, c)).join(",");
68
+ else if (Array.isArray(optsAllowMethods)) {
69
+ const methodsStr = optsAllowMethods.join(",");
70
+ return () => methodsStr;
71
+ } else return () => "";
72
+ })(opts.allowMethods);
73
+ return async function cors(c, next) {
74
+ function set(key, value) {
75
+ c.res.headers.set(key, value);
76
+ }
77
+ const allowOrigin = await findAllowOrigin(c.req.header("origin") || "", c);
78
+ if (allowOrigin) set("Access-Control-Allow-Origin", allowOrigin);
79
+ if (opts.credentials) set("Access-Control-Allow-Credentials", "true");
80
+ if (exposeHeadersStr) set("Access-Control-Expose-Headers", exposeHeadersStr);
81
+ if (c.req.method === "OPTIONS") {
82
+ if (opts.origin !== "*") c.res.headers.append("Vary", "Origin");
83
+ if (opts.maxAge != null) set("Access-Control-Max-Age", opts.maxAge.toString());
84
+ const allowMethods = await findAllowMethods(c.req.header("origin") || "", c);
85
+ if (allowMethods) set("Access-Control-Allow-Methods", allowMethods);
86
+ let headersStr = allowHeadersStr;
87
+ if (!headersStr) {
88
+ const requestHeaders = c.req.header("Access-Control-Request-Headers");
89
+ if (requestHeaders) headersStr = requestHeaders.split(",").map((h) => h.trim()).join(",");
90
+ }
91
+ if (headersStr) {
92
+ set("Access-Control-Allow-Headers", headersStr);
93
+ c.res.headers.append("Vary", "Access-Control-Request-Headers");
94
+ }
95
+ c.res.headers.delete("Content-Length");
96
+ c.res.headers.delete("Content-Type");
97
+ return new Response(null, {
98
+ headers: c.res.headers,
99
+ status: 204,
100
+ statusText: "No Content"
101
+ });
102
+ }
103
+ await next();
104
+ if (opts.origin !== "*") c.header("Vary", "Origin", { append: true });
105
+ };
87
106
  };
107
+ //#endregion
108
+ export { cors };
@@ -1,55 +1,105 @@
1
- // src/middleware/csrf/index.ts
2
1
  import { HTTPException } from "../../http-exception.js";
3
- var secFetchSiteValues = ["same-origin", "same-site", "none", "cross-site"];
4
- var isSecFetchSite = (value) => secFetchSiteValues.includes(value);
5
- var isSafeMethodRe = /^(GET|HEAD|OPTIONS)$/;
6
- var isRequestedByFormElementRe = /^\b(application\/x-www-form-urlencoded|multipart\/form-data|text\/plain)\b/i;
7
- var csrf = (options) => {
8
- const originHandler = ((optsOrigin) => {
9
- if (!optsOrigin) {
10
- return (origin, c) => origin === new URL(c.req.url).origin;
11
- } else if (typeof optsOrigin === "string") {
12
- return (origin) => origin === optsOrigin;
13
- } else if (typeof optsOrigin === "function") {
14
- return optsOrigin;
15
- } else {
16
- return (origin) => optsOrigin.includes(origin);
17
- }
18
- })(options?.origin);
19
- const isAllowedOrigin = async (origin, c) => {
20
- if (origin === void 0) {
21
- return false;
22
- }
23
- return await originHandler(origin, c);
24
- };
25
- const secFetchSiteHandler = ((optsSecFetchSite) => {
26
- if (!optsSecFetchSite) {
27
- return (secFetchSite) => secFetchSite === "same-origin";
28
- } else if (typeof optsSecFetchSite === "string") {
29
- return (secFetchSite) => secFetchSite === optsSecFetchSite;
30
- } else if (typeof optsSecFetchSite === "function") {
31
- return optsSecFetchSite;
32
- } else {
33
- return (secFetchSite) => optsSecFetchSite.includes(secFetchSite);
34
- }
35
- })(options?.secFetchSite);
36
- const isAllowedSecFetchSite = async (secFetchSite, c) => {
37
- if (secFetchSite === void 0) {
38
- return false;
39
- }
40
- if (!isSecFetchSite(secFetchSite)) {
41
- return false;
42
- }
43
- return await secFetchSiteHandler(secFetchSite, c);
44
- };
45
- return async function csrf2(c, next) {
46
- if (!isSafeMethodRe.test(c.req.method) && isRequestedByFormElementRe.test(c.req.header("content-type") || "text/plain") && !await isAllowedSecFetchSite(c.req.header("sec-fetch-site"), c) && !await isAllowedOrigin(c.req.header("origin"), c)) {
47
- const res = new Response("Forbidden", { status: 403 });
48
- throw new HTTPException(403, { res });
49
- }
50
- await next();
51
- };
52
- };
53
- export {
54
- csrf
2
+ //#region src/middleware/csrf/index.ts
3
+ const secFetchSiteValues = [
4
+ "same-origin",
5
+ "same-site",
6
+ "none",
7
+ "cross-site"
8
+ ];
9
+ const isSecFetchSite = (value) => secFetchSiteValues.includes(value);
10
+ const isSafeMethodRe = /^(GET|HEAD|OPTIONS)$/;
11
+ const isRequestedByFormElementRe = /^\b(application\/x-www-form-urlencoded|multipart\/form-data|text\/plain)\b/i;
12
+ /**
13
+ * CSRF Protection Middleware for Hono.
14
+ *
15
+ * Protects against Cross-Site Request Forgery attacks by validating request origins
16
+ * and sec-fetch-site headers. The request is allowed if either validation passes.
17
+ *
18
+ * @see {@link https://hono.dev/docs/middleware/builtin/csrf}
19
+ *
20
+ * @param {CSRFOptions} [options] - The options for the CSRF protection middleware.
21
+ * @param {string|string[]|(origin: string, context: Context) => boolean} [options.origin] -
22
+ * Allowed origins for requests.
23
+ * - string: Single allowed origin (e.g., 'https://example.com')
24
+ * - string[]: Multiple allowed origins
25
+ * - function: Custom validation logic
26
+ * - Default: Only same origin as the request URL
27
+ * @param {string|string[]|(secFetchSite: string, context: Context) => boolean} [options.secFetchSite] -
28
+ * Sec-Fetch-Site header validation. Standard values include 'same-origin', 'same-site', 'cross-site', 'none'.
29
+ * - string: Single allowed value (e.g., 'same-origin')
30
+ * - string[]: Multiple allowed values (e.g., ['same-origin', 'same-site'])
31
+ * - function: Custom validation with access to context
32
+ * - Default: Only allows 'same-origin'
33
+ * @returns {MiddlewareHandler} The middleware handler function.
34
+ *
35
+ * @example
36
+ * ```ts
37
+ * const app = new Hono()
38
+ *
39
+ * // Default: both origin and sec-fetch-site validation
40
+ * app.use('*', csrf())
41
+ *
42
+ * // Allow specific origins
43
+ * app.use('*', csrf({ origin: 'https://example.com' }))
44
+ * app.use('*', csrf({ origin: ['https://app.com', 'https://api.com'] }))
45
+ *
46
+ * // Allow specific sec-fetch-site values
47
+ * app.use('*', csrf({ secFetchSite: 'same-origin' }))
48
+ * app.use('*', csrf({ secFetchSite: ['same-origin', 'same-site'] }))
49
+ *
50
+ * // Dynamic sec-fetch-site validation
51
+ * app.use('*', csrf({
52
+ * secFetchSite: (secFetchSite, c) => {
53
+ * // Always allow same-origin
54
+ * if (secFetchSite === 'same-origin') return true
55
+ * // Allow cross-site for webhook endpoints
56
+ * if (secFetchSite === 'cross-site' && c.req.path.startsWith('/webhook/')) {
57
+ * return true
58
+ * }
59
+ * return false
60
+ * }
61
+ * }))
62
+ *
63
+ * // Dynamic origin validation
64
+ * app.use('*', csrf({
65
+ * origin: (origin, c) => {
66
+ * // Allow same origin
67
+ * if (origin === new URL(c.req.url).origin) return true
68
+ * // Allow specific trusted domains
69
+ * return ['https://app.example.com', 'https://admin.example.com'].includes(origin)
70
+ * }
71
+ * }))
72
+ * ```
73
+ */
74
+ const csrf = (options) => {
75
+ const originHandler = ((optsOrigin) => {
76
+ if (!optsOrigin) return (origin, c) => origin === new URL(c.req.url).origin;
77
+ else if (typeof optsOrigin === "string") return (origin) => origin === optsOrigin;
78
+ else if (typeof optsOrigin === "function") return optsOrigin;
79
+ else return (origin) => optsOrigin.includes(origin);
80
+ })(options?.origin);
81
+ const isAllowedOrigin = async (origin, c) => {
82
+ if (origin === void 0) return false;
83
+ return await originHandler(origin, c);
84
+ };
85
+ const secFetchSiteHandler = ((optsSecFetchSite) => {
86
+ if (!optsSecFetchSite) return (secFetchSite) => secFetchSite === "same-origin";
87
+ else if (typeof optsSecFetchSite === "string") return (secFetchSite) => secFetchSite === optsSecFetchSite;
88
+ else if (typeof optsSecFetchSite === "function") return optsSecFetchSite;
89
+ else return (secFetchSite) => optsSecFetchSite.includes(secFetchSite);
90
+ })(options?.secFetchSite);
91
+ const isAllowedSecFetchSite = async (secFetchSite, c) => {
92
+ if (secFetchSite === void 0) return false;
93
+ if (!isSecFetchSite(secFetchSite)) return false;
94
+ return await secFetchSiteHandler(secFetchSite, c);
95
+ };
96
+ return async function csrf(c, next) {
97
+ if (!isSafeMethodRe.test(c.req.method) && isRequestedByFormElementRe.test(c.req.header("content-type") || "text/plain") && !await isAllowedSecFetchSite(c.req.header("sec-fetch-site"), c) && !await isAllowedOrigin(c.req.header("origin"), c)) {
98
+ const res = new Response("Forbidden", { status: 403 });
99
+ throw new HTTPException(403, { res });
100
+ }
101
+ await next();
102
+ };
55
103
  };
104
+ //#endregion
105
+ export { csrf };