@psnext/slingcli 3.3.20260924-1 → 3.3.20261005-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 (749) hide show
  1. package/node_modules/@hono/node-server/README.md +21 -10
  2. package/node_modules/@hono/node-server/dist/early-hints.cjs +1 -1
  3. package/node_modules/@hono/node-server/dist/early-hints.mjs +1 -1
  4. package/node_modules/@hono/node-server/dist/index.cjs +41 -19
  5. package/node_modules/@hono/node-server/dist/index.mjs +42 -20
  6. package/node_modules/@hono/node-server/dist/serve-static.cjs +1 -0
  7. package/node_modules/@hono/node-server/dist/serve-static.d.cts +2 -1
  8. package/node_modules/@hono/node-server/dist/serve-static.d.mts +2 -1
  9. package/node_modules/@hono/node-server/dist/serve-static.mjs +1 -0
  10. package/node_modules/@hono/node-server/package.json +3 -2
  11. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/client/auth-extensions.d.ts +43 -2
  12. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/client/auth-extensions.d.ts.map +1 -1
  13. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/client/auth-extensions.js +26 -5
  14. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/client/auth-extensions.js.map +1 -1
  15. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/client/auth.d.ts +11 -0
  16. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/client/auth.d.ts.map +1 -1
  17. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/client/auth.js +105 -21
  18. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/client/auth.js.map +1 -1
  19. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/client/sse.d.ts +13 -0
  20. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/client/sse.d.ts.map +1 -1
  21. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/client/sse.js +17 -4
  22. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/client/sse.js.map +1 -1
  23. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/client/streamableHttp.d.ts +13 -0
  24. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/client/streamableHttp.d.ts.map +1 -1
  25. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/client/streamableHttp.js +23 -10
  26. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/client/streamableHttp.js.map +1 -1
  27. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/examples/client/simpleClientCredentials.d.ts +1 -0
  28. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/examples/client/simpleClientCredentials.d.ts.map +1 -1
  29. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/examples/client/simpleClientCredentials.js +11 -2
  30. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/examples/client/simpleClientCredentials.js.map +1 -1
  31. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/examples/server/demoInMemoryOAuthProvider.d.ts +2 -0
  32. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/examples/server/demoInMemoryOAuthProvider.d.ts.map +1 -1
  33. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/examples/server/elicitationFormExample.js +63 -20
  34. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/examples/server/elicitationFormExample.js.map +1 -1
  35. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/examples/server/elicitationUrlExample.js +71 -29
  36. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/examples/server/elicitationUrlExample.js.map +1 -1
  37. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/examples/server/jsonResponseStreamableHttp.js +45 -6
  38. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/examples/server/jsonResponseStreamableHttp.js.map +1 -1
  39. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/examples/server/simpleStreamableHttp.js +71 -31
  40. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/examples/server/simpleStreamableHttp.js.map +1 -1
  41. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/examples/server/simpleTaskInteractive.js +61 -18
  42. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/examples/server/simpleTaskInteractive.js.map +1 -1
  43. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/examples/server/sseAndStreamableHttpCompatibleServer.js +57 -19
  44. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/examples/server/sseAndStreamableHttpCompatibleServer.js.map +1 -1
  45. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/examples/server/ssePollingExample.js +64 -17
  46. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/examples/server/ssePollingExample.js.map +1 -1
  47. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/examples/server/standaloneSseWithGetStreamableHttp.js +61 -13
  48. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/examples/server/standaloneSseWithGetStreamableHttp.js.map +1 -1
  49. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/experimental/tasks/interfaces.d.ts +4 -0
  50. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/experimental/tasks/interfaces.d.ts.map +1 -1
  51. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/experimental/tasks/interfaces.js.map +1 -1
  52. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/experimental/tasks/stores/in-memory.d.ts +17 -8
  53. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/experimental/tasks/stores/in-memory.d.ts.map +1 -1
  54. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/experimental/tasks/stores/in-memory.js +31 -14
  55. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/experimental/tasks/stores/in-memory.js.map +1 -1
  56. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/server/auth/middleware/bearerAuth.d.ts +9 -1
  57. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/server/auth/middleware/bearerAuth.d.ts.map +1 -1
  58. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/server/auth/middleware/bearerAuth.js +17 -1
  59. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/server/auth/middleware/bearerAuth.js.map +1 -1
  60. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/server/auth/providers/proxyProvider.d.ts.map +1 -1
  61. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/server/auth/providers/proxyProvider.js +6 -3
  62. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/server/auth/providers/proxyProvider.js.map +1 -1
  63. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/server/mcp.d.ts +12 -1
  64. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/server/mcp.d.ts.map +1 -1
  65. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/server/mcp.js +46 -2
  66. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/server/mcp.js.map +1 -1
  67. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/shared/auth.d.ts +3 -0
  68. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/shared/auth.d.ts.map +1 -1
  69. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/shared/auth.js +12 -2
  70. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/shared/auth.js.map +1 -1
  71. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/shared/protocol.d.ts +1 -0
  72. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/shared/protocol.d.ts.map +1 -1
  73. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/shared/protocol.js +39 -9
  74. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/shared/protocol.js.map +1 -1
  75. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/shared/transport.d.ts +10 -0
  76. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/shared/transport.d.ts.map +1 -1
  77. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/shared/transport.js +77 -0
  78. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/shared/transport.js.map +1 -1
  79. package/node_modules/@modelcontextprotocol/sdk/dist/esm/client/auth-extensions.d.ts +43 -2
  80. package/node_modules/@modelcontextprotocol/sdk/dist/esm/client/auth-extensions.d.ts.map +1 -1
  81. package/node_modules/@modelcontextprotocol/sdk/dist/esm/client/auth-extensions.js +26 -5
  82. package/node_modules/@modelcontextprotocol/sdk/dist/esm/client/auth-extensions.js.map +1 -1
  83. package/node_modules/@modelcontextprotocol/sdk/dist/esm/client/auth.d.ts +11 -0
  84. package/node_modules/@modelcontextprotocol/sdk/dist/esm/client/auth.d.ts.map +1 -1
  85. package/node_modules/@modelcontextprotocol/sdk/dist/esm/client/auth.js +105 -21
  86. package/node_modules/@modelcontextprotocol/sdk/dist/esm/client/auth.js.map +1 -1
  87. package/node_modules/@modelcontextprotocol/sdk/dist/esm/client/sse.d.ts +13 -0
  88. package/node_modules/@modelcontextprotocol/sdk/dist/esm/client/sse.d.ts.map +1 -1
  89. package/node_modules/@modelcontextprotocol/sdk/dist/esm/client/sse.js +18 -5
  90. package/node_modules/@modelcontextprotocol/sdk/dist/esm/client/sse.js.map +1 -1
  91. package/node_modules/@modelcontextprotocol/sdk/dist/esm/client/streamableHttp.d.ts +13 -0
  92. package/node_modules/@modelcontextprotocol/sdk/dist/esm/client/streamableHttp.d.ts.map +1 -1
  93. package/node_modules/@modelcontextprotocol/sdk/dist/esm/client/streamableHttp.js +24 -11
  94. package/node_modules/@modelcontextprotocol/sdk/dist/esm/client/streamableHttp.js.map +1 -1
  95. package/node_modules/@modelcontextprotocol/sdk/dist/esm/examples/client/simpleClientCredentials.d.ts +1 -0
  96. package/node_modules/@modelcontextprotocol/sdk/dist/esm/examples/client/simpleClientCredentials.d.ts.map +1 -1
  97. package/node_modules/@modelcontextprotocol/sdk/dist/esm/examples/client/simpleClientCredentials.js +11 -2
  98. package/node_modules/@modelcontextprotocol/sdk/dist/esm/examples/client/simpleClientCredentials.js.map +1 -1
  99. package/node_modules/@modelcontextprotocol/sdk/dist/esm/examples/server/demoInMemoryOAuthProvider.d.ts +2 -0
  100. package/node_modules/@modelcontextprotocol/sdk/dist/esm/examples/server/demoInMemoryOAuthProvider.d.ts.map +1 -1
  101. package/node_modules/@modelcontextprotocol/sdk/dist/esm/examples/server/elicitationFormExample.js +63 -20
  102. package/node_modules/@modelcontextprotocol/sdk/dist/esm/examples/server/elicitationFormExample.js.map +1 -1
  103. package/node_modules/@modelcontextprotocol/sdk/dist/esm/examples/server/elicitationUrlExample.js +71 -29
  104. package/node_modules/@modelcontextprotocol/sdk/dist/esm/examples/server/elicitationUrlExample.js.map +1 -1
  105. package/node_modules/@modelcontextprotocol/sdk/dist/esm/examples/server/jsonResponseStreamableHttp.js +45 -6
  106. package/node_modules/@modelcontextprotocol/sdk/dist/esm/examples/server/jsonResponseStreamableHttp.js.map +1 -1
  107. package/node_modules/@modelcontextprotocol/sdk/dist/esm/examples/server/simpleStreamableHttp.js +71 -31
  108. package/node_modules/@modelcontextprotocol/sdk/dist/esm/examples/server/simpleStreamableHttp.js.map +1 -1
  109. package/node_modules/@modelcontextprotocol/sdk/dist/esm/examples/server/simpleTaskInteractive.js +61 -18
  110. package/node_modules/@modelcontextprotocol/sdk/dist/esm/examples/server/simpleTaskInteractive.js.map +1 -1
  111. package/node_modules/@modelcontextprotocol/sdk/dist/esm/examples/server/sseAndStreamableHttpCompatibleServer.js +57 -19
  112. package/node_modules/@modelcontextprotocol/sdk/dist/esm/examples/server/sseAndStreamableHttpCompatibleServer.js.map +1 -1
  113. package/node_modules/@modelcontextprotocol/sdk/dist/esm/examples/server/ssePollingExample.js +64 -17
  114. package/node_modules/@modelcontextprotocol/sdk/dist/esm/examples/server/ssePollingExample.js.map +1 -1
  115. package/node_modules/@modelcontextprotocol/sdk/dist/esm/examples/server/standaloneSseWithGetStreamableHttp.js +61 -13
  116. package/node_modules/@modelcontextprotocol/sdk/dist/esm/examples/server/standaloneSseWithGetStreamableHttp.js.map +1 -1
  117. package/node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/interfaces.d.ts +4 -0
  118. package/node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/interfaces.d.ts.map +1 -1
  119. package/node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/interfaces.js.map +1 -1
  120. package/node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/stores/in-memory.d.ts +17 -8
  121. package/node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/stores/in-memory.d.ts.map +1 -1
  122. package/node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/stores/in-memory.js +31 -14
  123. package/node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/stores/in-memory.js.map +1 -1
  124. package/node_modules/@modelcontextprotocol/sdk/dist/esm/server/auth/middleware/bearerAuth.d.ts +9 -1
  125. package/node_modules/@modelcontextprotocol/sdk/dist/esm/server/auth/middleware/bearerAuth.d.ts.map +1 -1
  126. package/node_modules/@modelcontextprotocol/sdk/dist/esm/server/auth/middleware/bearerAuth.js +17 -1
  127. package/node_modules/@modelcontextprotocol/sdk/dist/esm/server/auth/middleware/bearerAuth.js.map +1 -1
  128. package/node_modules/@modelcontextprotocol/sdk/dist/esm/server/auth/providers/proxyProvider.d.ts.map +1 -1
  129. package/node_modules/@modelcontextprotocol/sdk/dist/esm/server/auth/providers/proxyProvider.js +6 -3
  130. package/node_modules/@modelcontextprotocol/sdk/dist/esm/server/auth/providers/proxyProvider.js.map +1 -1
  131. package/node_modules/@modelcontextprotocol/sdk/dist/esm/server/mcp.d.ts +12 -1
  132. package/node_modules/@modelcontextprotocol/sdk/dist/esm/server/mcp.d.ts.map +1 -1
  133. package/node_modules/@modelcontextprotocol/sdk/dist/esm/server/mcp.js +46 -2
  134. package/node_modules/@modelcontextprotocol/sdk/dist/esm/server/mcp.js.map +1 -1
  135. package/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/auth.d.ts +3 -0
  136. package/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/auth.d.ts.map +1 -1
  137. package/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/auth.js +12 -2
  138. package/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/auth.js.map +1 -1
  139. package/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/protocol.d.ts +1 -0
  140. package/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/protocol.d.ts.map +1 -1
  141. package/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/protocol.js +39 -9
  142. package/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/protocol.js.map +1 -1
  143. package/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/transport.d.ts +10 -0
  144. package/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/transport.d.ts.map +1 -1
  145. package/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/transport.js +72 -0
  146. package/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/transport.js.map +1 -1
  147. package/node_modules/@modelcontextprotocol/sdk/package.json +1 -1
  148. package/node_modules/@smithy/core/dist-cjs/submodules/client/index.js +33 -11
  149. package/node_modules/@smithy/core/dist-cjs/submodules/schema/index.js +3 -0
  150. package/node_modules/@smithy/core/dist-es/submodules/client/smithy-client/exceptions.js +33 -11
  151. package/node_modules/@smithy/core/dist-es/submodules/schema/TypeRegistry.js +3 -0
  152. package/node_modules/@smithy/core/dist-types/submodules/client/smithy-client/exceptions.d.ts +1 -0
  153. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/client/smithy-client/exceptions.d.ts +1 -0
  154. package/node_modules/@smithy/core/package.json +1 -1
  155. package/node_modules/@smithy/signature-v4/dist-cjs/index.js +4 -1
  156. package/node_modules/@smithy/signature-v4/dist-es/getCanonicalHeaders.js +4 -1
  157. package/node_modules/@smithy/signature-v4/package.json +3 -3
  158. package/node_modules/@types/node/README.md +1 -1
  159. package/node_modules/@types/node/crypto.d.ts +2 -2
  160. package/node_modules/@types/node/dgram.d.ts +1 -1
  161. package/node_modules/@types/node/package.json +2 -2
  162. package/node_modules/@types/node/zlib.d.ts +6 -0
  163. package/node_modules/hono/dist/_virtual/_rolldown/runtime.js +13 -0
  164. package/node_modules/hono/dist/adapter/aws-lambda/conninfo.js +42 -23
  165. package/node_modules/hono/dist/adapter/aws-lambda/handler.js +318 -344
  166. package/node_modules/hono/dist/adapter/aws-lambda/index.js +2 -8
  167. package/node_modules/hono/dist/adapter/aws-lambda/types.js +1 -0
  168. package/node_modules/hono/dist/adapter/bun/conninfo.js +20 -25
  169. package/node_modules/hono/dist/adapter/bun/index.js +3 -13
  170. package/node_modules/hono/dist/adapter/bun/serve-static.js +27 -27
  171. package/node_modules/hono/dist/adapter/bun/server.js +11 -5
  172. package/node_modules/hono/dist/adapter/bun/ssg.js +25 -15
  173. package/node_modules/hono/dist/adapter/bun/websocket.js +61 -68
  174. package/node_modules/hono/dist/adapter/cloudflare-pages/conninfo.js +24 -9
  175. package/node_modules/hono/dist/adapter/cloudflare-pages/handler.js +59 -62
  176. package/node_modules/hono/dist/adapter/cloudflare-pages/index.js +2 -8
  177. package/node_modules/hono/dist/adapter/cloudflare-workers/conninfo.js +7 -9
  178. package/node_modules/hono/dist/adapter/cloudflare-workers/index.js +3 -8
  179. package/node_modules/hono/dist/adapter/cloudflare-workers/serve-static-module.js +5 -6
  180. package/node_modules/hono/dist/adapter/cloudflare-workers/serve-static.js +26 -20
  181. package/node_modules/hono/dist/adapter/cloudflare-workers/utils.js +21 -34
  182. package/node_modules/hono/dist/adapter/cloudflare-workers/websocket.js +31 -39
  183. package/node_modules/hono/dist/adapter/deno/conninfo.js +16 -13
  184. package/node_modules/hono/dist/adapter/deno/deno.d.js +1 -0
  185. package/node_modules/hono/dist/adapter/deno/index.js +3 -10
  186. package/node_modules/hono/dist/adapter/deno/serve-static.js +33 -38
  187. package/node_modules/hono/dist/adapter/deno/ssg.js +27 -16
  188. package/node_modules/hono/dist/adapter/deno/websocket.js +30 -30
  189. package/node_modules/hono/dist/adapter/lambda-edge/conninfo.js +7 -9
  190. package/node_modules/hono/dist/adapter/lambda-edge/handler.js +102 -101
  191. package/node_modules/hono/dist/adapter/lambda-edge/index.js +2 -6
  192. package/node_modules/hono/dist/adapter/netlify/conninfo.js +24 -9
  193. package/node_modules/hono/dist/adapter/netlify/handler.js +10 -8
  194. package/node_modules/hono/dist/adapter/netlify/index.js +3 -2
  195. package/node_modules/hono/dist/adapter/netlify/mod.js +2 -6
  196. package/node_modules/hono/dist/adapter/service-worker/handler.js +15 -19
  197. package/node_modules/hono/dist/adapter/service-worker/index.js +23 -7
  198. package/node_modules/hono/dist/adapter/service-worker/types.js +1 -0
  199. package/node_modules/hono/dist/adapter/vercel/conninfo.js +7 -10
  200. package/node_modules/hono/dist/adapter/vercel/handler.js +8 -6
  201. package/node_modules/hono/dist/adapter/vercel/index.js +2 -6
  202. package/node_modules/hono/dist/cjs/_virtual/_rolldown/runtime.js +33 -0
  203. package/node_modules/hono/dist/cjs/adapter/aws-lambda/conninfo.js +42 -44
  204. package/node_modules/hono/dist/cjs/adapter/aws-lambda/handler.js +326 -373
  205. package/node_modules/hono/dist/cjs/adapter/aws-lambda/index.js +7 -34
  206. package/node_modules/hono/dist/cjs/adapter/aws-lambda/types.js +0 -15
  207. package/node_modules/hono/dist/cjs/adapter/bun/conninfo.js +21 -47
  208. package/node_modules/hono/dist/cjs/adapter/bun/index.js +14 -45
  209. package/node_modules/hono/dist/cjs/adapter/bun/serve-static.js +29 -50
  210. package/node_modules/hono/dist/cjs/adapter/bun/server.js +11 -26
  211. package/node_modules/hono/dist/cjs/adapter/bun/ssg.js +24 -35
  212. package/node_modules/hono/dist/cjs/adapter/bun/websocket.js +63 -91
  213. package/node_modules/hono/dist/cjs/adapter/cloudflare-pages/conninfo.js +25 -31
  214. package/node_modules/hono/dist/cjs/adapter/cloudflare-pages/handler.js +61 -85
  215. package/node_modules/hono/dist/cjs/adapter/cloudflare-pages/index.js +7 -34
  216. package/node_modules/hono/dist/cjs/adapter/cloudflare-workers/conninfo.js +8 -31
  217. package/node_modules/hono/dist/cjs/adapter/cloudflare-workers/index.js +7 -33
  218. package/node_modules/hono/dist/cjs/adapter/cloudflare-workers/serve-static-module.js +7 -29
  219. package/node_modules/hono/dist/cjs/adapter/cloudflare-workers/serve-static.js +27 -42
  220. package/node_modules/hono/dist/cjs/adapter/cloudflare-workers/utils.js +21 -55
  221. package/node_modules/hono/dist/cjs/adapter/cloudflare-workers/websocket.js +33 -62
  222. package/node_modules/hono/dist/cjs/adapter/deno/conninfo.js +16 -34
  223. package/node_modules/hono/dist/cjs/adapter/deno/index.js +10 -38
  224. package/node_modules/hono/dist/cjs/adapter/deno/serve-static.js +33 -59
  225. package/node_modules/hono/dist/cjs/adapter/deno/ssg.js +27 -37
  226. package/node_modules/hono/dist/cjs/adapter/deno/websocket.js +32 -53
  227. package/node_modules/hono/dist/cjs/adapter/lambda-edge/conninfo.js +8 -31
  228. package/node_modules/hono/dist/cjs/adapter/lambda-edge/handler.js +102 -130
  229. package/node_modules/hono/dist/cjs/adapter/lambda-edge/index.js +5 -30
  230. package/node_modules/hono/dist/cjs/adapter/netlify/conninfo.js +25 -31
  231. package/node_modules/hono/dist/cjs/adapter/netlify/handler.js +10 -29
  232. package/node_modules/hono/dist/cjs/adapter/netlify/index.js +5 -21
  233. package/node_modules/hono/dist/cjs/adapter/netlify/mod.js +5 -30
  234. package/node_modules/hono/dist/cjs/adapter/service-worker/handler.js +16 -41
  235. package/node_modules/hono/dist/cjs/adapter/service-worker/index.js +25 -30
  236. package/node_modules/hono/dist/cjs/adapter/service-worker/types.js +0 -15
  237. package/node_modules/hono/dist/cjs/adapter/vercel/conninfo.js +8 -32
  238. package/node_modules/hono/dist/cjs/adapter/vercel/handler.js +8 -27
  239. package/node_modules/hono/dist/cjs/adapter/vercel/index.js +5 -30
  240. package/node_modules/hono/dist/cjs/client/client.js +139 -212
  241. package/node_modules/hono/dist/cjs/client/fetch-result-please.js +62 -80
  242. package/node_modules/hono/dist/cjs/client/index.js +7 -32
  243. package/node_modules/hono/dist/cjs/client/types.js +0 -15
  244. package/node_modules/hono/dist/cjs/client/utils.js +54 -92
  245. package/node_modules/hono/dist/cjs/compose.js +49 -66
  246. package/node_modules/hono/dist/cjs/context.js +379 -450
  247. package/node_modules/hono/dist/cjs/helper/accepts/accepts.js +47 -72
  248. package/node_modules/hono/dist/cjs/helper/accepts/index.js +3 -27
  249. package/node_modules/hono/dist/cjs/helper/adapter/index.js +33 -73
  250. package/node_modules/hono/dist/cjs/helper/conninfo/index.js +0 -15
  251. package/node_modules/hono/dist/cjs/helper/conninfo/types.js +0 -15
  252. package/node_modules/hono/dist/cjs/helper/cookie/index.js +75 -116
  253. package/node_modules/hono/dist/cjs/helper/css/common.js +165 -244
  254. package/node_modules/hono/dist/cjs/helper/css/index.js +136 -151
  255. package/node_modules/hono/dist/cjs/helper/dev/index.js +45 -71
  256. package/node_modules/hono/dist/cjs/helper/factory/index.js +30 -51
  257. package/node_modules/hono/dist/cjs/helper/html/index.js +32 -62
  258. package/node_modules/hono/dist/cjs/helper/proxy/index.js +113 -106
  259. package/node_modules/hono/dist/cjs/helper/route/index.js +123 -66
  260. package/node_modules/hono/dist/cjs/helper/ssg/index.js +19 -43
  261. package/node_modules/hono/dist/cjs/helper/ssg/middleware.js +56 -64
  262. package/node_modules/hono/dist/cjs/helper/ssg/plugins.js +55 -57
  263. package/node_modules/hono/dist/cjs/helper/ssg/ssg.js +196 -296
  264. package/node_modules/hono/dist/cjs/helper/ssg/utils.js +47 -90
  265. package/node_modules/hono/dist/cjs/helper/streaming/index.js +8 -35
  266. package/node_modules/hono/dist/cjs/helper/streaming/sse.js +53 -85
  267. package/node_modules/hono/dist/cjs/helper/streaming/stream.js +23 -53
  268. package/node_modules/hono/dist/cjs/helper/streaming/text.js +10 -32
  269. package/node_modules/hono/dist/cjs/helper/streaming/utils.js +13 -32
  270. package/node_modules/hono/dist/cjs/helper/testing/index.js +16 -31
  271. package/node_modules/hono/dist/cjs/helper/websocket/index.js +51 -76
  272. package/node_modules/hono/dist/cjs/hono-base.js +347 -403
  273. package/node_modules/hono/dist/cjs/hono.js +28 -42
  274. package/node_modules/hono/dist/cjs/http-exception.js +55 -56
  275. package/node_modules/hono/dist/cjs/index.js +22 -30
  276. package/node_modules/hono/dist/cjs/jsx/base.js +237 -366
  277. package/node_modules/hono/dist/cjs/jsx/children.js +16 -41
  278. package/node_modules/hono/dist/cjs/jsx/components.js +119 -192
  279. package/node_modules/hono/dist/cjs/jsx/constants.js +15 -42
  280. package/node_modules/hono/dist/cjs/jsx/context.js +144 -162
  281. package/node_modules/hono/dist/cjs/jsx/dom/client.js +49 -69
  282. package/node_modules/hono/dist/cjs/jsx/dom/components.js +23 -52
  283. package/node_modules/hono/dist/cjs/jsx/dom/context.js +39 -67
  284. package/node_modules/hono/dist/cjs/jsx/dom/css.js +143 -158
  285. package/node_modules/hono/dist/cjs/jsx/dom/hooks/index.js +55 -64
  286. package/node_modules/hono/dist/cjs/jsx/dom/index.js +114 -173
  287. package/node_modules/hono/dist/cjs/jsx/dom/intrinsic-element/components.js +282 -375
  288. package/node_modules/hono/dist/cjs/jsx/dom/jsx-dev-runtime.js +14 -49
  289. package/node_modules/hono/dist/cjs/jsx/dom/jsx-runtime.js +5 -32
  290. package/node_modules/hono/dist/cjs/jsx/dom/render.js +469 -623
  291. package/node_modules/hono/dist/cjs/jsx/dom/server.js +37 -64
  292. package/node_modules/hono/dist/cjs/jsx/dom/utils.js +7 -30
  293. package/node_modules/hono/dist/cjs/jsx/hooks/index.js +225 -318
  294. package/node_modules/hono/dist/cjs/jsx/index.js +86 -135
  295. package/node_modules/hono/dist/cjs/jsx/intrinsic-element/common.js +20 -43
  296. package/node_modules/hono/dist/cjs/jsx/intrinsic-element/components.js +117 -168
  297. package/node_modules/hono/dist/cjs/jsx/intrinsic-elements.js +0 -15
  298. package/node_modules/hono/dist/cjs/jsx/jsx-dev-runtime.js +14 -39
  299. package/node_modules/hono/dist/cjs/jsx/jsx-runtime.js +34 -68
  300. package/node_modules/hono/dist/cjs/jsx/streaming.js +123 -166
  301. package/node_modules/hono/dist/cjs/jsx/types.js +0 -15
  302. package/node_modules/hono/dist/cjs/jsx/utils.js +91 -175
  303. package/node_modules/hono/dist/cjs/middleware/basic-auth/index.js +98 -86
  304. package/node_modules/hono/dist/cjs/middleware/bearer-auth/index.js +92 -109
  305. package/node_modules/hono/dist/cjs/middleware/body-limit/index.js +66 -72
  306. package/node_modules/hono/dist/cjs/middleware/cache/index.js +153 -199
  307. package/node_modules/hono/dist/cjs/middleware/combine/index.js +135 -95
  308. package/node_modules/hono/dist/cjs/middleware/compress/index.js +73 -88
  309. package/node_modules/hono/dist/cjs/middleware/context-storage/index.js +49 -41
  310. package/node_modules/hono/dist/cjs/middleware/cors/index.js +107 -107
  311. package/node_modules/hono/dist/cjs/middleware/csrf/index.js +101 -72
  312. package/node_modules/hono/dist/cjs/middleware/etag/digest.js +58 -97
  313. package/node_modules/hono/dist/cjs/middleware/etag/index.js +71 -91
  314. package/node_modules/hono/dist/cjs/middleware/ip-restriction/index.js +161 -169
  315. package/node_modules/hono/dist/cjs/middleware/jsx-renderer/index.js +99 -77
  316. package/node_modules/hono/dist/cjs/middleware/jwk/index.js +3 -27
  317. package/node_modules/hono/dist/cjs/middleware/jwk/jwk.js +118 -135
  318. package/node_modules/hono/dist/cjs/middleware/jwt/index.js +9 -38
  319. package/node_modules/hono/dist/cjs/middleware/jwt/jwt.js +120 -141
  320. package/node_modules/hono/dist/cjs/middleware/language/index.js +7 -35
  321. package/node_modules/hono/dist/cjs/middleware/language/language.js +184 -182
  322. package/node_modules/hono/dist/cjs/middleware/logger/index.js +41 -62
  323. package/node_modules/hono/dist/cjs/middleware/method-not-allowed/index.js +82 -88
  324. package/node_modules/hono/dist/cjs/middleware/method-override/index.js +101 -102
  325. package/node_modules/hono/dist/cjs/middleware/mount/index.js +71 -0
  326. package/node_modules/hono/dist/cjs/middleware/powered-by/index.js +23 -30
  327. package/node_modules/hono/dist/cjs/middleware/pretty-json/index.js +38 -42
  328. package/node_modules/hono/dist/cjs/middleware/request-id/index.js +3 -27
  329. package/node_modules/hono/dist/cjs/middleware/request-id/request-id.js +34 -42
  330. package/node_modules/hono/dist/cjs/middleware/secure-headers/index.js +4 -29
  331. package/node_modules/hono/dist/cjs/middleware/secure-headers/permissions-policy.js +0 -15
  332. package/node_modules/hono/dist/cjs/middleware/secure-headers/secure-headers.js +142 -174
  333. package/node_modules/hono/dist/cjs/middleware/serve-static/index.js +56 -93
  334. package/node_modules/hono/dist/cjs/middleware/serve-static/path.js +15 -38
  335. package/node_modules/hono/dist/cjs/middleware/timeout/index.js +40 -45
  336. package/node_modules/hono/dist/cjs/middleware/timing/index.js +7 -35
  337. package/node_modules/hono/dist/cjs/middleware/timing/timing.js +177 -118
  338. package/node_modules/hono/dist/cjs/middleware/trailing-slash/index.js +85 -58
  339. package/node_modules/hono/dist/cjs/preset/quick.js +18 -37
  340. package/node_modules/hono/dist/cjs/preset/tiny.js +15 -33
  341. package/node_modules/hono/dist/cjs/request/constants.js +5 -27
  342. package/node_modules/hono/dist/cjs/request.js +334 -346
  343. package/node_modules/hono/dist/cjs/router/linear-router/index.js +3 -27
  344. package/node_modules/hono/dist/cjs/router/linear-router/router.js +95 -143
  345. package/node_modules/hono/dist/cjs/router/pattern-router/index.js +3 -27
  346. package/node_modules/hono/dist/cjs/router/pattern-router/router.js +41 -63
  347. package/node_modules/hono/dist/cjs/router/reg-exp-router/index.js +7 -34
  348. package/node_modules/hono/dist/cjs/router/reg-exp-router/matcher.js +18 -45
  349. package/node_modules/hono/dist/cjs/router/reg-exp-router/node.js +91 -135
  350. package/node_modules/hono/dist/cjs/router/reg-exp-router/prepared-router.js +92 -161
  351. package/node_modules/hono/dist/cjs/router/reg-exp-router/router.js +98 -147
  352. package/node_modules/hono/dist/cjs/router/reg-exp-router/trie.js +73 -89
  353. package/node_modules/hono/dist/cjs/router/smart-router/index.js +3 -27
  354. package/node_modules/hono/dist/cjs/router/smart-router/router.js +49 -79
  355. package/node_modules/hono/dist/cjs/router/trie-router/index.js +3 -27
  356. package/node_modules/hono/dist/cjs/router/trie-router/node.js +134 -186
  357. package/node_modules/hono/dist/cjs/router/trie-router/router.js +15 -39
  358. package/node_modules/hono/dist/cjs/router/utils.js +5 -27
  359. package/node_modules/hono/dist/cjs/router.js +37 -37
  360. package/node_modules/hono/dist/cjs/types.js +5 -28
  361. package/node_modules/hono/dist/cjs/utils/accept.js +177 -225
  362. package/node_modules/hono/dist/cjs/utils/basic-auth.js +16 -40
  363. package/node_modules/hono/dist/cjs/utils/body.js +84 -110
  364. package/node_modules/hono/dist/cjs/utils/buffer.js +43 -91
  365. package/node_modules/hono/dist/cjs/utils/color.js +35 -44
  366. package/node_modules/hono/dist/cjs/utils/compress.js +11 -26
  367. package/node_modules/hono/dist/cjs/utils/concurrent.js +29 -59
  368. package/node_modules/hono/dist/cjs/utils/constants.js +7 -26
  369. package/node_modules/hono/dist/cjs/utils/cookie.js +107 -177
  370. package/node_modules/hono/dist/cjs/utils/crypto.js +30 -61
  371. package/node_modules/hono/dist/cjs/utils/encode.js +31 -48
  372. package/node_modules/hono/dist/cjs/utils/filepath.js +23 -54
  373. package/node_modules/hono/dist/cjs/utils/handler.js +11 -33
  374. package/node_modules/hono/dist/cjs/utils/headers.js +0 -15
  375. package/node_modules/hono/dist/cjs/utils/html.js +96 -137
  376. package/node_modules/hono/dist/cjs/utils/http-status.js +0 -15
  377. package/node_modules/hono/dist/cjs/utils/ipaddr.js +213 -286
  378. package/node_modules/hono/dist/cjs/utils/jwt/index.js +14 -27
  379. package/node_modules/hono/dist/cjs/utils/jwt/jwa.js +25 -42
  380. package/node_modules/hono/dist/cjs/utils/jwt/jws.js +119 -199
  381. package/node_modules/hono/dist/cjs/utils/jwt/jwt.js +122 -206
  382. package/node_modules/hono/dist/cjs/utils/jwt/types.js +122 -159
  383. package/node_modules/hono/dist/cjs/utils/jwt/utf8.js +9 -28
  384. package/node_modules/hono/dist/cjs/utils/mime.js +75 -101
  385. package/node_modules/hono/dist/cjs/utils/stream.js +88 -111
  386. package/node_modules/hono/dist/cjs/utils/types.js +0 -15
  387. package/node_modules/hono/dist/cjs/utils/url.js +185 -234
  388. package/node_modules/hono/dist/cjs/validator/index.js +3 -27
  389. package/node_modules/hono/dist/cjs/validator/utils.js +0 -15
  390. package/node_modules/hono/dist/cjs/validator/validator.js +60 -103
  391. package/node_modules/hono/dist/client/client.js +138 -197
  392. package/node_modules/hono/dist/client/fetch-result-please.js +59 -56
  393. package/node_modules/hono/dist/client/index.js +3 -7
  394. package/node_modules/hono/dist/client/types.js +1 -0
  395. package/node_modules/hono/dist/client/utils.js +51 -68
  396. package/node_modules/hono/dist/compose.js +49 -45
  397. package/node_modules/hono/dist/context.js +376 -426
  398. package/node_modules/hono/dist/helper/accepts/accepts.js +47 -51
  399. package/node_modules/hono/dist/helper/accepts/index.js +1 -4
  400. package/node_modules/hono/dist/helper/adapter/index.js +33 -52
  401. package/node_modules/hono/dist/helper/conninfo/index.js +1 -0
  402. package/node_modules/hono/dist/helper/conninfo/types.js +1 -0
  403. package/node_modules/hono/dist/helper/cookie/index.js +74 -94
  404. package/node_modules/hono/dist/helper/css/common.js +167 -225
  405. package/node_modules/hono/dist/helper/css/index.js +132 -137
  406. package/node_modules/hono/dist/helper/dev/index.js +44 -49
  407. package/node_modules/hono/dist/helper/factory/index.js +27 -27
  408. package/node_modules/hono/dist/helper/html/index.js +30 -39
  409. package/node_modules/hono/dist/helper/proxy/index.js +116 -88
  410. package/node_modules/hono/dist/helper/route/index.js +121 -43
  411. package/node_modules/hono/dist/helper/ssg/index.js +3 -18
  412. package/node_modules/hono/dist/helper/ssg/middleware.js +53 -40
  413. package/node_modules/hono/dist/helper/ssg/plugins.js +55 -36
  414. package/node_modules/hono/dist/helper/ssg/ssg.js +198 -283
  415. package/node_modules/hono/dist/helper/ssg/utils.js +53 -75
  416. package/node_modules/hono/dist/helper/streaming/index.js +2 -8
  417. package/node_modules/hono/dist/helper/streaming/sse.js +50 -61
  418. package/node_modules/hono/dist/helper/streaming/stream.js +22 -31
  419. package/node_modules/hono/dist/helper/streaming/text.js +9 -10
  420. package/node_modules/hono/dist/helper/streaming/utils.js +9 -12
  421. package/node_modules/hono/dist/helper/testing/index.js +16 -10
  422. package/node_modules/hono/dist/helper/websocket/index.js +49 -53
  423. package/node_modules/hono/dist/hono-base.js +344 -379
  424. package/node_modules/hono/dist/hono.js +27 -20
  425. package/node_modules/hono/dist/http-exception.js +53 -33
  426. package/node_modules/hono/dist/index.js +19 -6
  427. package/node_modules/hono/dist/jsx/base.js +231 -340
  428. package/node_modules/hono/dist/jsx/children.js +16 -20
  429. package/node_modules/hono/dist/jsx/components.js +118 -170
  430. package/node_modules/hono/dist/jsx/constants.js +9 -15
  431. package/node_modules/hono/dist/jsx/context.js +153 -150
  432. package/node_modules/hono/dist/jsx/dom/client.js +45 -48
  433. package/node_modules/hono/dist/jsx/dom/components.js +21 -29
  434. package/node_modules/hono/dist/jsx/dom/context.js +37 -44
  435. package/node_modules/hono/dist/jsx/dom/css.js +142 -147
  436. package/node_modules/hono/dist/jsx/dom/hooks/index.js +52 -40
  437. package/node_modules/hono/dist/jsx/dom/index.js +71 -134
  438. package/node_modules/hono/dist/jsx/dom/intrinsic-element/components.js +275 -359
  439. package/node_modules/hono/dist/jsx/dom/jsx-dev-runtime.js +14 -18
  440. package/node_modules/hono/dist/jsx/dom/jsx-runtime.js +2 -8
  441. package/node_modules/hono/dist/jsx/dom/render.js +492 -631
  442. package/node_modules/hono/dist/jsx/dom/server.js +32 -32
  443. package/node_modules/hono/dist/jsx/dom/utils.js +6 -8
  444. package/node_modules/hono/dist/jsx/hooks/index.js +236 -308
  445. package/node_modules/hono/dist/jsx/index.js +45 -98
  446. package/node_modules/hono/dist/jsx/intrinsic-element/common.js +20 -22
  447. package/node_modules/hono/dist/jsx/intrinsic-element/components.js +113 -154
  448. package/node_modules/hono/dist/jsx/intrinsic-elements.js +1 -0
  449. package/node_modules/hono/dist/jsx/jsx-dev-runtime.js +12 -16
  450. package/node_modules/hono/dist/jsx/jsx-runtime.js +29 -42
  451. package/node_modules/hono/dist/jsx/streaming.js +120 -142
  452. package/node_modules/hono/dist/jsx/types.js +1 -0
  453. package/node_modules/hono/dist/jsx/utils.js +105 -168
  454. package/node_modules/hono/dist/middleware/basic-auth/index.js +96 -63
  455. package/node_modules/hono/dist/middleware/bearer-auth/index.js +93 -89
  456. package/node_modules/hono/dist/middleware/body-limit/index.js +66 -51
  457. package/node_modules/hono/dist/middleware/cache/index.js +165 -190
  458. package/node_modules/hono/dist/middleware/combine/index.js +134 -73
  459. package/node_modules/hono/dist/middleware/compress/index.js +75 -69
  460. package/node_modules/hono/dist/middleware/context-storage/index.js +49 -19
  461. package/node_modules/hono/dist/middleware/cors/index.js +107 -86
  462. package/node_modules/hono/dist/middleware/csrf/index.js +103 -53
  463. package/node_modules/hono/dist/middleware/etag/digest.js +59 -77
  464. package/node_modules/hono/dist/middleware/etag/index.js +71 -70
  465. package/node_modules/hono/dist/middleware/ip-restriction/index.js +163 -158
  466. package/node_modules/hono/dist/middleware/jsx-renderer/index.js +97 -54
  467. package/node_modules/hono/dist/middleware/jwk/index.js +1 -4
  468. package/node_modules/hono/dist/middleware/jwk/jwk.js +116 -112
  469. package/node_modules/hono/dist/middleware/jwt/index.js +2 -10
  470. package/node_modules/hono/dist/middleware/jwt/jwt.js +114 -114
  471. package/node_modules/hono/dist/middleware/language/index.js +2 -15
  472. package/node_modules/hono/dist/middleware/language/language.js +180 -157
  473. package/node_modules/hono/dist/middleware/logger/index.js +43 -37
  474. package/node_modules/hono/dist/middleware/method-not-allowed/index.js +81 -66
  475. package/node_modules/hono/dist/middleware/method-override/index.js +101 -81
  476. package/node_modules/hono/dist/middleware/mount/index.js +70 -0
  477. package/node_modules/hono/dist/middleware/powered-by/index.js +23 -9
  478. package/node_modules/hono/dist/middleware/pretty-json/index.js +39 -22
  479. package/node_modules/hono/dist/middleware/request-id/index.js +1 -4
  480. package/node_modules/hono/dist/middleware/request-id/request-id.js +33 -20
  481. package/node_modules/hono/dist/middleware/secure-headers/index.js +1 -5
  482. package/node_modules/hono/dist/middleware/secure-headers/permissions-policy.js +1 -0
  483. package/node_modules/hono/dist/middleware/secure-headers/secure-headers.js +144 -155
  484. package/node_modules/hono/dist/middleware/serve-static/index.js +56 -72
  485. package/node_modules/hono/dist/middleware/serve-static/path.js +15 -17
  486. package/node_modules/hono/dist/middleware/timeout/index.js +40 -23
  487. package/node_modules/hono/dist/middleware/timing/index.js +2 -9
  488. package/node_modules/hono/dist/middleware/timing/timing.js +177 -97
  489. package/node_modules/hono/dist/middleware/trailing-slash/index.js +85 -37
  490. package/node_modules/hono/dist/preset/quick.js +17 -15
  491. package/node_modules/hono/dist/preset/tiny.js +14 -11
  492. package/node_modules/hono/dist/request/constants.js +4 -5
  493. package/node_modules/hono/dist/request.js +328 -319
  494. package/node_modules/hono/dist/router/linear-router/index.js +1 -4
  495. package/node_modules/hono/dist/router/linear-router/router.js +93 -120
  496. package/node_modules/hono/dist/router/pattern-router/index.js +1 -4
  497. package/node_modules/hono/dist/router/pattern-router/router.js +39 -40
  498. package/node_modules/hono/dist/router/reg-exp-router/index.js +1 -7
  499. package/node_modules/hono/dist/router/reg-exp-router/matcher.js +17 -23
  500. package/node_modules/hono/dist/router/reg-exp-router/node.js +87 -110
  501. package/node_modules/hono/dist/router/reg-exp-router/prepared-router.js +89 -137
  502. package/node_modules/hono/dist/router/reg-exp-router/router.js +92 -129
  503. package/node_modules/hono/dist/router/reg-exp-router/trie.js +69 -64
  504. package/node_modules/hono/dist/router/smart-router/index.js +1 -4
  505. package/node_modules/hono/dist/router/smart-router/router.js +46 -55
  506. package/node_modules/hono/dist/router/trie-router/index.js +1 -4
  507. package/node_modules/hono/dist/router/trie-router/node.js +131 -162
  508. package/node_modules/hono/dist/router/trie-router/router.js +11 -14
  509. package/node_modules/hono/dist/router/utils.js +4 -5
  510. package/node_modules/hono/dist/router.js +35 -14
  511. package/node_modules/hono/dist/types/adapter/aws-lambda/conninfo.d.ts +4 -1
  512. package/node_modules/hono/dist/types/adapter/aws-lambda/handler.d.ts +150 -104
  513. package/node_modules/hono/dist/types/adapter/aws-lambda/index.d.ts +4 -8
  514. package/node_modules/hono/dist/types/adapter/aws-lambda/types.d.ts +152 -122
  515. package/node_modules/hono/dist/types/adapter/bun/conninfo.d.ts +4 -1
  516. package/node_modules/hono/dist/types/adapter/bun/index.d.ts +6 -10
  517. package/node_modules/hono/dist/types/adapter/bun/serve-static.d.ts +7 -2
  518. package/node_modules/hono/dist/types/adapter/bun/server.d.ts +4 -5
  519. package/node_modules/hono/dist/types/adapter/bun/ssg.d.ts +5 -1
  520. package/node_modules/hono/dist/types/adapter/bun/websocket.d.ts +31 -16
  521. package/node_modules/hono/dist/types/adapter/cloudflare-pages/conninfo.d.ts +4 -1
  522. package/node_modules/hono/dist/types/adapter/cloudflare-pages/handler.d.ts +29 -17
  523. package/node_modules/hono/dist/types/adapter/cloudflare-pages/index.d.ts +3 -7
  524. package/node_modules/hono/dist/types/adapter/cloudflare-workers/conninfo.d.ts +6 -1
  525. package/node_modules/hono/dist/types/adapter/cloudflare-workers/index.d.ts +4 -7
  526. package/node_modules/hono/dist/types/adapter/cloudflare-workers/serve-static-module.d.ts +5 -2
  527. package/node_modules/hono/dist/types/adapter/cloudflare-workers/serve-static.d.ts +10 -5
  528. package/node_modules/hono/dist/types/adapter/cloudflare-workers/utils.d.ts +10 -2
  529. package/node_modules/hono/dist/types/adapter/cloudflare-workers/websocket.d.ts +6 -1
  530. package/node_modules/hono/dist/types/adapter/deno/conninfo.d.ts +4 -1
  531. package/node_modules/hono/dist/types/adapter/deno/deno.d.ts +1 -0
  532. package/node_modules/hono/dist/types/adapter/deno/index.d.ts +5 -8
  533. package/node_modules/hono/dist/types/adapter/deno/serve-static.d.ts +7 -2
  534. package/node_modules/hono/dist/types/adapter/deno/ssg.d.ts +5 -1
  535. package/node_modules/hono/dist/types/adapter/deno/websocket.d.ts +6 -1
  536. package/node_modules/hono/dist/types/adapter/lambda-edge/conninfo.d.ts +6 -1
  537. package/node_modules/hono/dist/types/adapter/lambda-edge/handler.d.ts +83 -57
  538. package/node_modules/hono/dist/types/adapter/lambda-edge/index.d.ts +3 -7
  539. package/node_modules/hono/dist/types/adapter/netlify/conninfo.d.ts +4 -1
  540. package/node_modules/hono/dist/types/adapter/netlify/handler.d.ts +6 -1
  541. package/node_modules/hono/dist/types/adapter/netlify/index.d.ts +3 -5
  542. package/node_modules/hono/dist/types/adapter/netlify/mod.d.ts +3 -2
  543. package/node_modules/hono/dist/types/adapter/service-worker/handler.d.ts +9 -7
  544. package/node_modules/hono/dist/types/adapter/service-worker/index.d.ts +7 -9
  545. package/node_modules/hono/dist/types/adapter/service-worker/types.d.ts +12 -7
  546. package/node_modules/hono/dist/types/adapter/vercel/conninfo.d.ts +6 -1
  547. package/node_modules/hono/dist/types/adapter/vercel/handler.d.ts +6 -1
  548. package/node_modules/hono/dist/types/adapter/vercel/index.d.ts +3 -6
  549. package/node_modules/hono/dist/types/client/client.d.ts +5 -3
  550. package/node_modules/hono/dist/types/client/fetch-result-please.d.ts +21 -19
  551. package/node_modules/hono/dist/types/client/index.d.ts +5 -7
  552. package/node_modules/hono/dist/types/client/types.d.ts +134 -159
  553. package/node_modules/hono/dist/types/client/utils.d.ts +6 -4
  554. package/node_modules/hono/dist/types/compose.d.ts +4 -2
  555. package/node_modules/hono/dist/types/context.d.ts +335 -335
  556. package/node_modules/hono/dist/types/helper/accepts/accepts.d.ts +11 -9
  557. package/node_modules/hono/dist/types/helper/accepts/index.d.ts +2 -5
  558. package/node_modules/hono/dist/types/helper/adapter/index.d.ts +4 -6
  559. package/node_modules/hono/dist/types/helper/conninfo/index.d.ts +2 -5
  560. package/node_modules/hono/dist/types/helper/conninfo/types.d.ts +25 -23
  561. package/node_modules/hono/dist/types/helper/cookie/index.d.ts +10 -12
  562. package/node_modules/hono/dist/types/helper/css/common.d.ts +11 -9
  563. package/node_modules/hono/dist/types/helper/css/index.d.ts +26 -28
  564. package/node_modules/hono/dist/types/helper/dev/index.d.ts +10 -12
  565. package/node_modules/hono/dist/types/helper/factory/index.d.ts +26 -73
  566. package/node_modules/hono/dist/types/helper/html/index.d.ts +4 -7
  567. package/node_modules/hono/dist/types/helper/proxy/index.d.ts +19 -21
  568. package/node_modules/hono/dist/types/helper/route/index.d.ts +4 -2
  569. package/node_modules/hono/dist/types/helper/ssg/index.d.ts +4 -7
  570. package/node_modules/hono/dist/types/helper/ssg/middleware.d.ts +8 -6
  571. package/node_modules/hono/dist/types/helper/ssg/plugins.d.ts +3 -1
  572. package/node_modules/hono/dist/types/helper/ssg/ssg.d.ts +38 -36
  573. package/node_modules/hono/dist/types/helper/ssg/utils.d.ts +5 -3
  574. package/node_modules/hono/dist/types/helper/streaming/index.d.ts +4 -8
  575. package/node_modules/hono/dist/types/helper/streaming/sse.d.ts +10 -8
  576. package/node_modules/hono/dist/types/helper/streaming/stream.d.ts +4 -2
  577. package/node_modules/hono/dist/types/helper/streaming/text.d.ts +4 -2
  578. package/node_modules/hono/dist/types/helper/streaming/utils.d.ts +2 -0
  579. package/node_modules/hono/dist/types/helper/testing/index.d.ts +7 -9
  580. package/node_modules/hono/dist/types/helper/websocket/index.d.ts +30 -33
  581. package/node_modules/hono/dist/types/hono-base.d.ts +210 -210
  582. package/node_modules/hono/dist/types/hono.d.ts +11 -10
  583. package/node_modules/hono/dist/types/http-exception.d.ts +20 -22
  584. package/node_modules/hono/dist/types/index.d.ts +6 -37
  585. package/node_modules/hono/dist/types/jsx/base.d.ts +37 -35
  586. package/node_modules/hono/dist/types/jsx/children.d.ts +8 -6
  587. package/node_modules/hono/dist/types/jsx/components.d.ts +8 -5
  588. package/node_modules/hono/dist/types/jsx/constants.d.ts +2 -0
  589. package/node_modules/hono/dist/types/jsx/context.d.ts +9 -6
  590. package/node_modules/hono/dist/types/jsx/dom/client.d.ts +9 -10
  591. package/node_modules/hono/dist/types/jsx/dom/components.d.ts +9 -6
  592. package/node_modules/hono/dist/types/jsx/dom/context.d.ts +3 -1
  593. package/node_modules/hono/dist/types/jsx/dom/css.d.ts +27 -30
  594. package/node_modules/hono/dist/types/jsx/dom/hooks/index.d.ts +11 -12
  595. package/node_modules/hono/dist/types/jsx/dom/index.d.ts +79 -83
  596. package/node_modules/hono/dist/types/jsx/dom/intrinsic-element/components.d.ts +9 -5
  597. package/node_modules/hono/dist/types/jsx/dom/jsx-dev-runtime.d.ts +4 -6
  598. package/node_modules/hono/dist/types/jsx/dom/jsx-runtime.d.ts +3 -7
  599. package/node_modules/hono/dist/types/jsx/dom/render.d.ts +32 -50
  600. package/node_modules/hono/dist/types/jsx/dom/server.d.ts +87 -85
  601. package/node_modules/hono/dist/types/jsx/dom/utils.d.ts +2 -0
  602. package/node_modules/hono/dist/types/jsx/hooks/index.d.ts +16 -16
  603. package/node_modules/hono/dist/types/jsx/index.d.ts +71 -73
  604. package/node_modules/hono/dist/types/jsx/intrinsic-element/common.d.ts +3 -1
  605. package/node_modules/hono/dist/types/jsx/intrinsic-element/components.d.ts +7 -4
  606. package/node_modules/hono/dist/types/jsx/intrinsic-elements.d.ts +708 -708
  607. package/node_modules/hono/dist/types/jsx/jsx-dev-runtime.d.ts +4 -7
  608. package/node_modules/hono/dist/types/jsx/jsx-runtime.d.ts +7 -10
  609. package/node_modules/hono/dist/types/jsx/streaming.d.ts +9 -10
  610. package/node_modules/hono/dist/types/jsx/types.d.ts +12 -13
  611. package/node_modules/hono/dist/types/jsx/utils.d.ts +2 -0
  612. package/node_modules/hono/dist/types/middleware/basic-auth/index.d.ts +17 -19
  613. package/node_modules/hono/dist/types/middleware/bearer-auth/index.d.ts +46 -48
  614. package/node_modules/hono/dist/types/middleware/body-limit/index.d.ts +6 -8
  615. package/node_modules/hono/dist/types/middleware/cache/index.d.ts +13 -15
  616. package/node_modules/hono/dist/types/middleware/combine/index.d.ts +4 -6
  617. package/node_modules/hono/dist/types/middleware/compress/index.d.ts +9 -10
  618. package/node_modules/hono/dist/types/middleware/context-storage/index.d.ts +4 -6
  619. package/node_modules/hono/dist/types/middleware/cors/index.d.ts +10 -12
  620. package/node_modules/hono/dist/types/middleware/csrf/index.d.ts +6 -8
  621. package/node_modules/hono/dist/types/middleware/etag/digest.d.ts +2 -0
  622. package/node_modules/hono/dist/types/middleware/etag/index.d.ts +6 -8
  623. package/node_modules/hono/dist/types/middleware/ip-restriction/index.d.ts +11 -12
  624. package/node_modules/hono/dist/types/middleware/jsx-renderer/index.d.ts +11 -11
  625. package/node_modules/hono/dist/types/middleware/jwk/index.d.ts +2 -1
  626. package/node_modules/hono/dist/types/middleware/jwk/jwk.d.ts +20 -23
  627. package/node_modules/hono/dist/types/middleware/jwt/index.d.ts +7 -6
  628. package/node_modules/hono/dist/types/middleware/jwt/jwt.d.ts +28 -30
  629. package/node_modules/hono/dist/types/middleware/language/index.d.ts +6 -5
  630. package/node_modules/hono/dist/types/middleware/language/language.d.ts +42 -44
  631. package/node_modules/hono/dist/types/middleware/logger/index.d.ts +3 -5
  632. package/node_modules/hono/dist/types/middleware/method-not-allowed/index.d.ts +7 -9
  633. package/node_modules/hono/dist/types/middleware/method-override/index.d.ts +14 -16
  634. package/node_modules/hono/dist/types/middleware/mount/index.d.ts +46 -0
  635. package/node_modules/hono/dist/types/middleware/powered-by/index.d.ts +8 -10
  636. package/node_modules/hono/dist/types/middleware/pretty-json/index.d.ts +18 -20
  637. package/node_modules/hono/dist/types/middleware/request-id/index.d.ts +6 -5
  638. package/node_modules/hono/dist/types/middleware/request-id/request-id.d.ts +9 -11
  639. package/node_modules/hono/dist/types/middleware/secure-headers/index.d.ts +6 -6
  640. package/node_modules/hono/dist/types/middleware/secure-headers/permissions-policy.d.ts +2 -0
  641. package/node_modules/hono/dist/types/middleware/secure-headers/secure-headers.d.ts +55 -57
  642. package/node_modules/hono/dist/types/middleware/serve-static/index.d.ts +24 -24
  643. package/node_modules/hono/dist/types/middleware/serve-static/path.d.ts +2 -0
  644. package/node_modules/hono/dist/types/middleware/timeout/index.d.ts +5 -7
  645. package/node_modules/hono/dist/types/middleware/timing/index.d.ts +6 -5
  646. package/node_modules/hono/dist/types/middleware/timing/timing.d.ts +17 -20
  647. package/node_modules/hono/dist/types/middleware/trailing-slash/index.d.ts +35 -37
  648. package/node_modules/hono/dist/types/preset/quick.d.ts +6 -9
  649. package/node_modules/hono/dist/types/preset/tiny.d.ts +6 -9
  650. package/node_modules/hono/dist/types/request/constants.d.ts +2 -0
  651. package/node_modules/hono/dist/types/request.d.ts +288 -286
  652. package/node_modules/hono/dist/types/router/linear-router/index.d.ts +2 -5
  653. package/node_modules/hono/dist/types/router/linear-router/router.d.ts +7 -5
  654. package/node_modules/hono/dist/types/router/pattern-router/index.d.ts +2 -5
  655. package/node_modules/hono/dist/types/router/pattern-router/router.d.ts +7 -5
  656. package/node_modules/hono/dist/types/router/reg-exp-router/index.d.ts +3 -6
  657. package/node_modules/hono/dist/types/router/reg-exp-router/matcher.d.ts +3 -1
  658. package/node_modules/hono/dist/types/router/reg-exp-router/node.d.ts +6 -4
  659. package/node_modules/hono/dist/types/router/reg-exp-router/prepared-router.d.ts +11 -10
  660. package/node_modules/hono/dist/types/router/reg-exp-router/router.d.ts +10 -9
  661. package/node_modules/hono/dist/types/router/reg-exp-router/trie.d.ts +7 -5
  662. package/node_modules/hono/dist/types/router/smart-router/index.d.ts +2 -5
  663. package/node_modules/hono/dist/types/router/smart-router/router.d.ts +11 -9
  664. package/node_modules/hono/dist/types/router/trie-router/index.d.ts +2 -5
  665. package/node_modules/hono/dist/types/router/trie-router/node.d.ts +6 -4
  666. package/node_modules/hono/dist/types/router/trie-router/router.d.ts +7 -5
  667. package/node_modules/hono/dist/types/router/utils.d.ts +2 -0
  668. package/node_modules/hono/dist/types/router.d.ts +23 -22
  669. package/node_modules/hono/dist/types/types.d.ts +146 -505
  670. package/node_modules/hono/dist/types/utils/accept.d.ts +5 -3
  671. package/node_modules/hono/dist/types/utils/basic-auth.d.ts +4 -2
  672. package/node_modules/hono/dist/types/utils/body.d.ts +46 -50
  673. package/node_modules/hono/dist/types/utils/buffer.d.ts +7 -5
  674. package/node_modules/hono/dist/types/utils/color.d.ts +2 -0
  675. package/node_modules/hono/dist/types/utils/compress.d.ts +2 -0
  676. package/node_modules/hono/dist/types/utils/concurrent.d.ts +6 -4
  677. package/node_modules/hono/dist/types/utils/constants.d.ts +2 -0
  678. package/node_modules/hono/dist/types/utils/cookie.d.ts +20 -18
  679. package/node_modules/hono/dist/types/utils/crypto.d.ts +5 -7
  680. package/node_modules/hono/dist/types/utils/encode.d.ts +2 -0
  681. package/node_modules/hono/dist/types/utils/filepath.d.ts +5 -3
  682. package/node_modules/hono/dist/types/utils/handler.d.ts +2 -0
  683. package/node_modules/hono/dist/types/utils/headers.d.ts +2 -0
  684. package/node_modules/hono/dist/types/utils/html.d.ts +11 -9
  685. package/node_modules/hono/dist/types/utils/http-status.d.ts +2 -0
  686. package/node_modules/hono/dist/types/utils/ipaddr.d.ts +4 -6
  687. package/node_modules/hono/dist/types/utils/jwt/index.d.ts +18 -12
  688. package/node_modules/hono/dist/types/utils/jwt/jwa.d.ts +15 -13
  689. package/node_modules/hono/dist/types/utils/jwt/jws.d.ts +4 -7
  690. package/node_modules/hono/dist/types/utils/jwt/jwt.d.ts +26 -29
  691. package/node_modules/hono/dist/types/utils/jwt/types.d.ts +48 -45
  692. package/node_modules/hono/dist/types/utils/jwt/utf8.d.ts +2 -0
  693. package/node_modules/hono/dist/types/utils/mime.d.ts +60 -57
  694. package/node_modules/hono/dist/types/utils/stream.d.ts +27 -25
  695. package/node_modules/hono/dist/types/utils/types.d.ts +14 -26
  696. package/node_modules/hono/dist/types/utils/url.d.ts +2 -0
  697. package/node_modules/hono/dist/types/validator/index.d.ts +3 -7
  698. package/node_modules/hono/dist/types/validator/utils.d.ts +6 -8
  699. package/node_modules/hono/dist/types/validator/validator.d.ts +11 -9
  700. package/node_modules/hono/dist/types.js +4 -6
  701. package/node_modules/hono/dist/utils/accept.js +185 -212
  702. package/node_modules/hono/dist/utils/basic-auth.js +18 -21
  703. package/node_modules/hono/dist/utils/body.js +87 -92
  704. package/node_modules/hono/dist/utils/buffer.js +44 -71
  705. package/node_modules/hono/dist/utils/color.js +33 -21
  706. package/node_modules/hono/dist/utils/compress.js +11 -5
  707. package/node_modules/hono/dist/utils/concurrent.js +29 -38
  708. package/node_modules/hono/dist/utils/constants.js +7 -5
  709. package/node_modules/hono/dist/utils/cookie.js +114 -163
  710. package/node_modules/hono/dist/utils/crypto.js +30 -40
  711. package/node_modules/hono/dist/utils/encode.js +30 -26
  712. package/node_modules/hono/dist/utils/filepath.js +23 -33
  713. package/node_modules/hono/dist/utils/handler.js +10 -11
  714. package/node_modules/hono/dist/utils/headers.js +1 -0
  715. package/node_modules/hono/dist/utils/html.js +97 -117
  716. package/node_modules/hono/dist/utils/http-status.js +1 -0
  717. package/node_modules/hono/dist/utils/ipaddr.js +227 -279
  718. package/node_modules/hono/dist/utils/jwt/index.js +12 -4
  719. package/node_modules/hono/dist/utils/jwt/jwa.js +24 -20
  720. package/node_modules/hono/dist/utils/jwt/jws.js +115 -174
  721. package/node_modules/hono/dist/utils/jwt/jwt.js +120 -198
  722. package/node_modules/hono/dist/utils/jwt/types.js +79 -95
  723. package/node_modules/hono/dist/utils/jwt/utf8.js +9 -7
  724. package/node_modules/hono/dist/utils/mime.js +74 -79
  725. package/node_modules/hono/dist/utils/stream.js +86 -88
  726. package/node_modules/hono/dist/utils/types.js +1 -0
  727. package/node_modules/hono/dist/utils/url.js +187 -215
  728. package/node_modules/hono/dist/validator/index.js +1 -4
  729. package/node_modules/hono/dist/validator/utils.js +1 -0
  730. package/node_modules/hono/dist/validator/validator.js +61 -83
  731. package/node_modules/hono/package.json +35 -27
  732. package/node_modules/ip-address/README.md +34 -34
  733. package/node_modules/ip-address/dist/ipv4.js +7 -0
  734. package/node_modules/ip-address/dist/ipv4.js.map +1 -1
  735. package/node_modules/ip-address/package.json +1 -1
  736. package/node_modules/undici/docs/docs/api/DiagnosticsChannel.md +3 -1
  737. package/node_modules/undici/docs/docs/api/Dispatcher.md +1 -0
  738. package/node_modules/undici/lib/core/request.js +23 -2
  739. package/node_modules/undici/lib/dispatcher/client-h1.js +11 -4
  740. package/node_modules/undici/lib/dispatcher/client-h2.js +14 -5
  741. package/node_modules/undici/lib/handler/retry-handler.js +71 -20
  742. package/node_modules/undici/lib/interceptor/decompress.js +228 -68
  743. package/node_modules/undici/lib/web/websocket/connection.js +18 -8
  744. package/node_modules/undici/package.json +1 -1
  745. package/node_modules/undici/types/interceptors.d.ts +1 -1
  746. package/node_modules/ws/lib/websocket.js +17 -3
  747. package/node_modules/ws/package.json +1 -1
  748. package/package.json +3 -3
  749. package/slingshot/index.js +256 -256
@@ -17,7 +17,6 @@ import { requireBearerAuth } from '../../server/auth/middleware/bearerAuth.js';
17
17
  import { UrlElicitationRequiredError, isInitializeRequest } from '../../types.js';
18
18
  import { InMemoryEventStore } from '../shared/inMemoryEventStore.js';
19
19
  import { setupAuthServer } from './demoInMemoryOAuthProvider.js';
20
- import { checkResourceAllowed } from '../../shared/auth-utils.js';
21
20
  import cors from 'cors';
22
21
  // Create an MCP server with implementation details
23
22
  const getServer = () => {
@@ -191,18 +190,16 @@ const tokenVerifier = {
191
190
  throw new Error(`Invalid or expired token: ${text}`);
192
191
  }
193
192
  const data = await response.json();
194
- if (!data.aud) {
195
- throw new Error(`Resource Indicator (RFC8707) missing`);
196
- }
197
- if (!checkResourceAllowed({ requestedResource: data.aud, configuredResource: mcpServerUrl })) {
198
- throw new Error(`Expected resource indicator ${mcpServerUrl}, got: ${data.aud}`);
199
- }
193
+ // `aud` is one value, a list, or absent: report the entry on this server's origin, if any
194
+ const audience = [data.aud ?? []].flat().find(aud => URL.canParse(aud) && new URL(aud).origin === mcpServerUrl.origin);
200
195
  // Convert the response to AuthInfo format
201
196
  return {
202
197
  token,
203
198
  clientId: data.client_id,
204
199
  scopes: data.scope ? data.scope.split(' ') : [],
205
- expiresAt: data.exp
200
+ expiresAt: data.exp,
201
+ // The resource the token was issued for (RFC 8707), compared with expectedResource below
202
+ resource: audience ? new URL(audience) : undefined
206
203
  };
207
204
  }
208
205
  };
@@ -216,7 +213,9 @@ app.use(mcpAuthMetadataRouter({
216
213
  authMiddleware = requireBearerAuth({
217
214
  verifier: tokenVerifier,
218
215
  requiredScopes: [],
219
- resourceMetadataUrl: getOAuthProtectedResourceMetadataUrl(mcpServerUrl)
216
+ resourceMetadataUrl: getOAuthProtectedResourceMetadataUrl(mcpServerUrl),
217
+ // Accept only tokens issued for this server
218
+ expectedResource: mcpServerUrl
220
219
  });
221
220
  /**
222
221
  * API Key Form Handling
@@ -490,20 +489,46 @@ app.post('/confirm-payment', express.urlencoded(), (req, res) => {
490
489
  res.status(400).send('<h1>Error</h1><p>Invalid action</p>');
491
490
  }
492
491
  });
493
- // Map to store transports by session ID
494
- const transports = {};
492
+ // Close sessions that have been idle for IDLE_MS, and keep at most MAX_SESSIONS open
493
+ const IDLE_MS = 30 * 60000;
494
+ const MAX_SESSIONS = 1000;
495
+ const sessions = new Map();
496
+ // Count open responses so a long-running request or a listening SSE stream is not treated as idle
497
+ const trackResponse = (session, res) => {
498
+ if (!res.socket || res.destroyed)
499
+ return;
500
+ session.open++;
501
+ res.on('close', () => {
502
+ session.open--;
503
+ session.lastActive = Date.now();
504
+ });
505
+ };
506
+ // Close sessions with nothing open and no activity for IDLE_MS
507
+ setInterval(() => {
508
+ const cutoff = Date.now() - IDLE_MS;
509
+ for (const { transport, open, lastActive } of sessions.values()) {
510
+ if (open === 0 && lastActive < cutoff)
511
+ transport.close().catch(console.error);
512
+ }
513
+ }, 60000).unref();
495
514
  const sessionsNeedingElicitation = {};
496
515
  // MCP POST endpoint
497
516
  const mcpPostHandler = async (req, res) => {
498
517
  const sessionId = req.headers['mcp-session-id'];
499
518
  console.debug(`Received MCP POST for session: ${sessionId || 'unknown'}`);
500
519
  try {
520
+ const session = sessionId ? sessions.get(sessionId) : undefined;
501
521
  let transport;
502
- if (sessionId && transports[sessionId]) {
522
+ if (session) {
503
523
  // Reuse existing transport
504
- transport = transports[sessionId];
524
+ transport = session.transport;
525
+ trackResponse(session, res);
505
526
  }
506
527
  else if (!sessionId && isInitializeRequest(req.body)) {
528
+ if (sessions.size >= MAX_SESSIONS) {
529
+ res.status(503).json({ jsonrpc: '2.0', error: { code: -32000, message: 'Too many open sessions' }, id: null });
530
+ return;
531
+ }
507
532
  const server = getServer();
508
533
  // New initialization request
509
534
  const eventStore = new InMemoryEventStore();
@@ -514,7 +539,7 @@ const mcpPostHandler = async (req, res) => {
514
539
  // Store the transport by session ID when session is initialized
515
540
  // This avoids race conditions where requests might come in before the session is stored
516
541
  console.log(`Session initialized with ID: ${sessionId}`);
517
- transports[sessionId] = transport;
542
+ sessions.set(sessionId, { transport, open: 0, lastActive: Date.now() });
518
543
  sessionsNeedingElicitation[sessionId] = {
519
544
  elicitationSender: params => server.server.elicitInput(params),
520
545
  createCompletionNotifier: elicitationId => server.server.createElicitationCompletionNotifier(elicitationId)
@@ -524,9 +549,9 @@ const mcpPostHandler = async (req, res) => {
524
549
  // Set up onclose handler to clean up transport when closed
525
550
  transport.onclose = () => {
526
551
  const sid = transport.sessionId;
527
- if (sid && transports[sid]) {
528
- console.log(`Transport closed for session ${sid}, removing from transports map`);
529
- delete transports[sid];
552
+ if (sid && sessions.has(sid)) {
553
+ console.log(`Transport closed for session ${sid}, removing from sessions map`);
554
+ sessions.delete(sid);
530
555
  delete sessionsNeedingElicitation[sid];
531
556
  }
532
557
  };
@@ -536,8 +561,13 @@ const mcpPostHandler = async (req, res) => {
536
561
  await transport.handleRequest(req, res, req.body);
537
562
  return; // Already handled
538
563
  }
564
+ else if (sessionId) {
565
+ // Unknown or expired session ID - the client should start a new session
566
+ res.status(404).json({ jsonrpc: '2.0', error: { code: -32001, message: 'Session not found' }, id: null });
567
+ return;
568
+ }
539
569
  else {
540
- // Invalid request - no session ID or not initialization request
570
+ // Invalid request - no session ID and not an initialization request
541
571
  res.status(400).json({
542
572
  jsonrpc: '2.0',
543
573
  error: {
@@ -571,8 +601,14 @@ app.post('/mcp', authMiddleware, mcpPostHandler);
571
601
  // Handle GET requests for SSE streams (using built-in support from StreamableHTTP)
572
602
  const mcpGetHandler = async (req, res) => {
573
603
  const sessionId = req.headers['mcp-session-id'];
574
- if (!sessionId || !transports[sessionId]) {
575
- res.status(400).send('Invalid or missing session ID');
604
+ if (!sessionId) {
605
+ res.status(400).send('Missing session ID');
606
+ return;
607
+ }
608
+ const session = sessions.get(sessionId);
609
+ if (!session) {
610
+ // Unknown or expired session ID - the client should start a new session
611
+ res.status(404).json({ jsonrpc: '2.0', error: { code: -32001, message: 'Session not found' }, id: null });
576
612
  return;
577
613
  }
578
614
  // Check for Last-Event-ID header for resumability
@@ -583,8 +619,8 @@ const mcpGetHandler = async (req, res) => {
583
619
  else {
584
620
  console.log(`Establishing new SSE stream for session ${sessionId}`);
585
621
  }
586
- const transport = transports[sessionId];
587
- await transport.handleRequest(req, res);
622
+ trackResponse(session, res);
623
+ await session.transport.handleRequest(req, res);
588
624
  if (sessionsNeedingElicitation[sessionId]) {
589
625
  const { elicitationSender, createCompletionNotifier } = sessionsNeedingElicitation[sessionId];
590
626
  // Send an elicitation request to the client in the background
@@ -605,14 +641,20 @@ app.get('/mcp', authMiddleware, mcpGetHandler);
605
641
  // Handle DELETE requests for session termination (according to MCP spec)
606
642
  const mcpDeleteHandler = async (req, res) => {
607
643
  const sessionId = req.headers['mcp-session-id'];
608
- if (!sessionId || !transports[sessionId]) {
609
- res.status(400).send('Invalid or missing session ID');
644
+ if (!sessionId) {
645
+ res.status(400).send('Missing session ID');
646
+ return;
647
+ }
648
+ const session = sessions.get(sessionId);
649
+ if (!session) {
650
+ // Unknown or expired session ID - the client should start a new session
651
+ res.status(404).json({ jsonrpc: '2.0', error: { code: -32001, message: 'Session not found' }, id: null });
610
652
  return;
611
653
  }
612
654
  console.log(`Received session termination request for session ${sessionId}`);
613
655
  try {
614
- const transport = transports[sessionId];
615
- await transport.handleRequest(req, res);
656
+ trackResponse(session, res);
657
+ await session.transport.handleRequest(req, res);
616
658
  }
617
659
  catch (error) {
618
660
  console.error('Error handling session termination:', error);
@@ -634,11 +676,11 @@ app.listen(MCP_PORT, error => {
634
676
  process.on('SIGINT', async () => {
635
677
  console.log('Shutting down server...');
636
678
  // Close all active transports to properly clean up resources
637
- for (const sessionId in transports) {
679
+ for (const [sessionId, { transport }] of sessions) {
638
680
  try {
639
681
  console.log(`Closing transport for session ${sessionId}`);
640
- await transports[sessionId].close();
641
- delete transports[sessionId];
682
+ await transport.close();
683
+ sessions.delete(sessionId);
642
684
  delete sessionsNeedingElicitation[sessionId];
643
685
  }
644
686
  catch (error) {
@@ -1 +1 @@
1
- {"version":3,"file":"elicitationUrlExample.js","sourceRoot":"","sources":["../../../../src/examples/server/elicitationUrlExample.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"elicitationUrlExample.js","sourceRoot":"","sources":["../../../../src/examples/server/elicitationUrlExample.ts"],"names":[],"mappings":"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"}
@@ -64,20 +64,46 @@ const getServer = () => {
64
64
  return server;
65
65
  };
66
66
  const app = createMcpExpressApp();
67
- // Map to store transports by session ID
68
- const transports = {};
67
+ // Close sessions that have been idle for IDLE_MS, and keep at most MAX_SESSIONS open
68
+ const IDLE_MS = 30 * 60000;
69
+ const MAX_SESSIONS = 1000;
70
+ const sessions = new Map();
71
+ // Count open responses so a long-running request is not treated as idle
72
+ const trackResponse = (session, res) => {
73
+ if (!res.socket || res.destroyed)
74
+ return;
75
+ session.open++;
76
+ res.on('close', () => {
77
+ session.open--;
78
+ session.lastActive = Date.now();
79
+ });
80
+ };
81
+ // Close sessions with nothing open and no activity for IDLE_MS
82
+ setInterval(() => {
83
+ const cutoff = Date.now() - IDLE_MS;
84
+ for (const { transport, open, lastActive } of sessions.values()) {
85
+ if (open === 0 && lastActive < cutoff)
86
+ transport.close().catch(console.error);
87
+ }
88
+ }, 60000).unref();
69
89
  app.post('/mcp', async (req, res) => {
70
90
  console.log('Received MCP request:', req.body);
71
91
  try {
72
92
  // Check for existing session ID
73
93
  const sessionId = req.headers['mcp-session-id'];
94
+ const session = sessionId ? sessions.get(sessionId) : undefined;
74
95
  let transport;
75
- if (sessionId && transports[sessionId]) {
96
+ if (session) {
76
97
  // Reuse existing transport
77
- transport = transports[sessionId];
98
+ transport = session.transport;
99
+ trackResponse(session, res);
78
100
  }
79
101
  else if (!sessionId && isInitializeRequest(req.body)) {
80
102
  // New initialization request - use JSON response mode
103
+ if (sessions.size >= MAX_SESSIONS) {
104
+ res.status(503).json({ jsonrpc: '2.0', error: { code: -32000, message: 'Too many open sessions' }, id: null });
105
+ return;
106
+ }
81
107
  transport = new StreamableHTTPServerTransport({
82
108
  sessionIdGenerator: () => randomUUID(),
83
109
  enableJsonResponse: true, // Enable JSON response mode
@@ -85,17 +111,30 @@ app.post('/mcp', async (req, res) => {
85
111
  // Store the transport by session ID when session is initialized
86
112
  // This avoids race conditions where requests might come in before the session is stored
87
113
  console.log(`Session initialized with ID: ${sessionId}`);
88
- transports[sessionId] = transport;
114
+ sessions.set(sessionId, { transport, open: 0, lastActive: Date.now() });
89
115
  }
90
116
  });
117
+ // Set up onclose handler to clean up transport when closed
118
+ transport.onclose = () => {
119
+ const sid = transport.sessionId;
120
+ if (sid && sessions.has(sid)) {
121
+ console.log(`Transport closed for session ${sid}, removing from sessions map`);
122
+ sessions.delete(sid);
123
+ }
124
+ };
91
125
  // Connect the transport to the MCP server BEFORE handling the request
92
126
  const server = getServer();
93
127
  await server.connect(transport);
94
128
  await transport.handleRequest(req, res, req.body);
95
129
  return; // Already handled
96
130
  }
131
+ else if (sessionId) {
132
+ // Unknown or expired session ID - the client should start a new session
133
+ res.status(404).json({ jsonrpc: '2.0', error: { code: -32001, message: 'Session not found' }, id: null });
134
+ return;
135
+ }
97
136
  else {
98
- // Invalid request - no session ID or not initialization request
137
+ // Invalid request - no session ID and not an initialization request
99
138
  res.status(400).json({
100
139
  jsonrpc: '2.0',
101
140
  error: {
@@ -1 +1 @@
1
- {"version":3,"file":"jsonResponseStreamableHttp.js","sourceRoot":"","sources":["../../../../src/examples/server/jsonResponseStreamableHttp.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"jsonResponseStreamableHttp.js","sourceRoot":"","sources":["../../../../src/examples/server/jsonResponseStreamableHttp.ts"],"names":[],"mappings":"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"}
@@ -9,7 +9,6 @@ import { ElicitResultSchema, isInitializeRequest } from '../../types.js';
9
9
  import { InMemoryEventStore } from '../shared/inMemoryEventStore.js';
10
10
  import { InMemoryTaskStore, InMemoryTaskMessageQueue } from '../../experimental/tasks/stores/in-memory.js';
11
11
  import { setupAuthServer } from './demoInMemoryOAuthProvider.js';
12
- import { checkResourceAllowed } from '../../shared/auth-utils.js';
13
12
  // Check for OAuth flag
14
13
  const useOAuth = process.argv.includes('--oauth');
15
14
  const strictOAuth = process.argv.includes('--oauth-strict');
@@ -529,20 +528,16 @@ if (useOAuth) {
529
528
  throw new Error(`Invalid or expired token: ${text}`);
530
529
  }
531
530
  const data = await response.json();
532
- if (strictOAuth) {
533
- if (!data.aud) {
534
- throw new Error(`Resource Indicator (RFC8707) missing`);
535
- }
536
- if (!checkResourceAllowed({ requestedResource: data.aud, configuredResource: mcpServerUrl })) {
537
- throw new Error(`Expected resource indicator ${mcpServerUrl}, got: ${data.aud}`);
538
- }
539
- }
531
+ // `aud` is one value, a list, or absent: report the entry on this server's origin, if any
532
+ const audience = [data.aud ?? []].flat().find(aud => URL.canParse(aud) && new URL(aud).origin === mcpServerUrl.origin);
540
533
  // Convert the response to AuthInfo format
541
534
  return {
542
535
  token,
543
536
  clientId: data.client_id,
544
537
  scopes: data.scope ? data.scope.split(' ') : [],
545
- expiresAt: data.exp
538
+ expiresAt: data.exp,
539
+ // The resource the token was issued for (RFC 8707), compared with expectedResource below
540
+ resource: audience ? new URL(audience) : undefined
546
541
  };
547
542
  }
548
543
  };
@@ -556,11 +551,33 @@ if (useOAuth) {
556
551
  authMiddleware = requireBearerAuth({
557
552
  verifier: tokenVerifier,
558
553
  requiredScopes: [],
559
- resourceMetadataUrl: getOAuthProtectedResourceMetadataUrl(mcpServerUrl)
554
+ resourceMetadataUrl: getOAuthProtectedResourceMetadataUrl(mcpServerUrl),
555
+ // With --oauth-strict, accept only tokens issued for this server
556
+ expectedResource: strictOAuth ? mcpServerUrl : undefined
560
557
  });
561
558
  }
562
- // Map to store transports by session ID
563
- const transports = {};
559
+ // Close sessions that have been idle for IDLE_MS, and keep at most MAX_SESSIONS open
560
+ const IDLE_MS = 30 * 60000;
561
+ const MAX_SESSIONS = 1000;
562
+ const sessions = new Map();
563
+ // Count open responses so a long-running request or a listening SSE stream is not treated as idle
564
+ const trackResponse = (session, res) => {
565
+ if (!res.socket || res.destroyed)
566
+ return;
567
+ session.open++;
568
+ res.on('close', () => {
569
+ session.open--;
570
+ session.lastActive = Date.now();
571
+ });
572
+ };
573
+ // Close sessions with nothing open and no activity for IDLE_MS
574
+ setInterval(() => {
575
+ const cutoff = Date.now() - IDLE_MS;
576
+ for (const { transport, open, lastActive } of sessions.values()) {
577
+ if (open === 0 && lastActive < cutoff)
578
+ transport.close().catch(console.error);
579
+ }
580
+ }, 60000).unref();
564
581
  // MCP POST endpoint with optional auth
565
582
  const mcpPostHandler = async (req, res) => {
566
583
  const sessionId = req.headers['mcp-session-id'];
@@ -574,13 +591,19 @@ const mcpPostHandler = async (req, res) => {
574
591
  console.log('Authenticated user:', req.auth);
575
592
  }
576
593
  try {
594
+ const session = sessionId ? sessions.get(sessionId) : undefined;
577
595
  let transport;
578
- if (sessionId && transports[sessionId]) {
596
+ if (session) {
579
597
  // Reuse existing transport
580
- transport = transports[sessionId];
598
+ transport = session.transport;
599
+ trackResponse(session, res);
581
600
  }
582
601
  else if (!sessionId && isInitializeRequest(req.body)) {
583
602
  // New initialization request
603
+ if (sessions.size >= MAX_SESSIONS) {
604
+ res.status(503).json({ jsonrpc: '2.0', error: { code: -32000, message: 'Too many open sessions' }, id: null });
605
+ return;
606
+ }
584
607
  const eventStore = new InMemoryEventStore();
585
608
  transport = new StreamableHTTPServerTransport({
586
609
  sessionIdGenerator: () => randomUUID(),
@@ -589,15 +612,15 @@ const mcpPostHandler = async (req, res) => {
589
612
  // Store the transport by session ID when session is initialized
590
613
  // This avoids race conditions where requests might come in before the session is stored
591
614
  console.log(`Session initialized with ID: ${sessionId}`);
592
- transports[sessionId] = transport;
615
+ sessions.set(sessionId, { transport, open: 0, lastActive: Date.now() });
593
616
  }
594
617
  });
595
618
  // Set up onclose handler to clean up transport when closed
596
619
  transport.onclose = () => {
597
620
  const sid = transport.sessionId;
598
- if (sid && transports[sid]) {
599
- console.log(`Transport closed for session ${sid}, removing from transports map`);
600
- delete transports[sid];
621
+ if (sid && sessions.has(sid)) {
622
+ console.log(`Transport closed for session ${sid}, removing from sessions map`);
623
+ sessions.delete(sid);
601
624
  }
602
625
  };
603
626
  // Connect the transport to the MCP server BEFORE handling the request
@@ -607,8 +630,13 @@ const mcpPostHandler = async (req, res) => {
607
630
  await transport.handleRequest(req, res, req.body);
608
631
  return; // Already handled
609
632
  }
633
+ else if (sessionId) {
634
+ // Unknown or expired session ID - the client should start a new session
635
+ res.status(404).json({ jsonrpc: '2.0', error: { code: -32001, message: 'Session not found' }, id: null });
636
+ return;
637
+ }
610
638
  else {
611
- // Invalid request - no session ID or not initialization request
639
+ // Invalid request - no session ID and not an initialization request
612
640
  res.status(400).json({
613
641
  jsonrpc: '2.0',
614
642
  error: {
@@ -647,8 +675,14 @@ else {
647
675
  // Handle GET requests for SSE streams (using built-in support from StreamableHTTP)
648
676
  const mcpGetHandler = async (req, res) => {
649
677
  const sessionId = req.headers['mcp-session-id'];
650
- if (!sessionId || !transports[sessionId]) {
651
- res.status(400).send('Invalid or missing session ID');
678
+ if (!sessionId) {
679
+ res.status(400).send('Missing session ID');
680
+ return;
681
+ }
682
+ const session = sessions.get(sessionId);
683
+ if (!session) {
684
+ // Unknown or expired session ID - the client should start a new session
685
+ res.status(404).json({ jsonrpc: '2.0', error: { code: -32001, message: 'Session not found' }, id: null });
652
686
  return;
653
687
  }
654
688
  if (useOAuth && req.auth) {
@@ -662,8 +696,8 @@ const mcpGetHandler = async (req, res) => {
662
696
  else {
663
697
  console.log(`Establishing new SSE stream for session ${sessionId}`);
664
698
  }
665
- const transport = transports[sessionId];
666
- await transport.handleRequest(req, res);
699
+ trackResponse(session, res);
700
+ await session.transport.handleRequest(req, res);
667
701
  };
668
702
  // Set up GET route with conditional auth middleware
669
703
  if (useOAuth && authMiddleware) {
@@ -675,14 +709,20 @@ else {
675
709
  // Handle DELETE requests for session termination (according to MCP spec)
676
710
  const mcpDeleteHandler = async (req, res) => {
677
711
  const sessionId = req.headers['mcp-session-id'];
678
- if (!sessionId || !transports[sessionId]) {
679
- res.status(400).send('Invalid or missing session ID');
712
+ if (!sessionId) {
713
+ res.status(400).send('Missing session ID');
714
+ return;
715
+ }
716
+ const session = sessions.get(sessionId);
717
+ if (!session) {
718
+ // Unknown or expired session ID - the client should start a new session
719
+ res.status(404).json({ jsonrpc: '2.0', error: { code: -32001, message: 'Session not found' }, id: null });
680
720
  return;
681
721
  }
682
722
  console.log(`Received session termination request for session ${sessionId}`);
683
723
  try {
684
- const transport = transports[sessionId];
685
- await transport.handleRequest(req, res);
724
+ trackResponse(session, res);
725
+ await session.transport.handleRequest(req, res);
686
726
  }
687
727
  catch (error) {
688
728
  console.error('Error handling session termination:', error);
@@ -709,11 +749,11 @@ app.listen(MCP_PORT, error => {
709
749
  process.on('SIGINT', async () => {
710
750
  console.log('Shutting down server...');
711
751
  // Close all active transports to properly clean up resources
712
- for (const sessionId in transports) {
752
+ for (const [sessionId, { transport }] of sessions) {
713
753
  try {
714
754
  console.log(`Closing transport for session ${sessionId}`);
715
- await transports[sessionId].close();
716
- delete transports[sessionId];
755
+ await transport.close();
756
+ sessions.delete(sessionId);
717
757
  }
718
758
  catch (error) {
719
759
  console.error(`Error closing transport for session ${sessionId}:`, error);