mcp-ts-template 1.9.0 → 1.9.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 (48) hide show
  1. package/README.md +1 -1
  2. package/dist/mcp-server/transports/auth/strategies/oauthStrategy.d.ts.map +1 -1
  3. package/dist/mcp-server/transports/auth/strategies/oauthStrategy.js +11 -1
  4. package/dist/mcp-server/transports/auth/strategies/oauthStrategy.js.map +1 -1
  5. package/dist/mcp-server/transports/core/autoTransportManager.d.ts +48 -0
  6. package/dist/mcp-server/transports/core/autoTransportManager.d.ts.map +1 -0
  7. package/dist/mcp-server/transports/core/autoTransportManager.js +57 -0
  8. package/dist/mcp-server/transports/core/autoTransportManager.js.map +1 -0
  9. package/dist/mcp-server/transports/core/baseTransportManager.d.ts +2 -3
  10. package/dist/mcp-server/transports/core/baseTransportManager.d.ts.map +1 -1
  11. package/dist/mcp-server/transports/core/baseTransportManager.js +1 -1
  12. package/dist/mcp-server/transports/core/baseTransportManager.js.map +1 -1
  13. package/dist/mcp-server/transports/core/headerUtils.d.ts +8 -1
  14. package/dist/mcp-server/transports/core/headerUtils.d.ts.map +1 -1
  15. package/dist/mcp-server/transports/core/headerUtils.js +15 -0
  16. package/dist/mcp-server/transports/core/headerUtils.js.map +1 -1
  17. package/dist/mcp-server/transports/core/honoNodeBridge.d.ts.map +1 -1
  18. package/dist/mcp-server/transports/core/honoNodeBridge.js +15 -4
  19. package/dist/mcp-server/transports/core/honoNodeBridge.js.map +1 -1
  20. package/dist/mcp-server/transports/core/statefulTransportManager.d.ts +10 -6
  21. package/dist/mcp-server/transports/core/statefulTransportManager.d.ts.map +1 -1
  22. package/dist/mcp-server/transports/core/statefulTransportManager.js +84 -57
  23. package/dist/mcp-server/transports/core/statefulTransportManager.js.map +1 -1
  24. package/dist/mcp-server/transports/core/statelessTransportManager.d.ts +2 -3
  25. package/dist/mcp-server/transports/core/statelessTransportManager.d.ts.map +1 -1
  26. package/dist/mcp-server/transports/core/statelessTransportManager.js +3 -3
  27. package/dist/mcp-server/transports/core/statelessTransportManager.js.map +1 -1
  28. package/dist/mcp-server/transports/core/transportRequest.d.ts +9 -0
  29. package/dist/mcp-server/transports/core/transportRequest.d.ts.map +1 -0
  30. package/dist/mcp-server/transports/core/transportRequest.js +2 -0
  31. package/dist/mcp-server/transports/core/transportRequest.js.map +1 -0
  32. package/dist/mcp-server/transports/core/transportTypes.d.ts +20 -14
  33. package/dist/mcp-server/transports/core/transportTypes.d.ts.map +1 -1
  34. package/dist/mcp-server/transports/core/transportTypes.js +8 -1
  35. package/dist/mcp-server/transports/core/transportTypes.js.map +1 -1
  36. package/dist/mcp-server/transports/http/httpErrorHandler.d.ts +3 -0
  37. package/dist/mcp-server/transports/http/httpErrorHandler.d.ts.map +1 -1
  38. package/dist/mcp-server/transports/http/httpErrorHandler.js +8 -9
  39. package/dist/mcp-server/transports/http/httpErrorHandler.js.map +1 -1
  40. package/dist/mcp-server/transports/http/httpTransport.d.ts +10 -6
  41. package/dist/mcp-server/transports/http/httpTransport.d.ts.map +1 -1
  42. package/dist/mcp-server/transports/http/httpTransport.js +69 -17
  43. package/dist/mcp-server/transports/http/httpTransport.js.map +1 -1
  44. package/dist/mcp-server/transports/http/mcpTransportMiddleware.d.ts +5 -11
  45. package/dist/mcp-server/transports/http/mcpTransportMiddleware.d.ts.map +1 -1
  46. package/dist/mcp-server/transports/http/mcpTransportMiddleware.js +27 -48
  47. package/dist/mcp-server/transports/http/mcpTransportMiddleware.js.map +1 -1
  48. package/package.json +1 -1
package/README.md CHANGED
@@ -7,7 +7,7 @@
7
7
  [![TypeScript](https://img.shields.io/badge/TypeScript-^5.8.3-blue?style=flat-square)](https://www.typescriptlang.org/)
8
8
  [![Model Context Protocol SDK](https://img.shields.io/badge/MCP%20SDK-^1.17.4-green?style=flat-square)](https://github.com/modelcontextprotocol/typescript-sdk)
9
9
  [![MCP Spec Version](https://img.shields.io/badge/MCP%20Spec-2025--06--18-lightgrey?style=flat-square)](https://github.com/modelcontextprotocol/modelcontextprotocol/blob/main/docs/specification/2025-06-18/changelog.mdx)
10
- [![Version](https://img.shields.io/badge/Version-1.9.0-blue?style=flat-square)](./CHANGELOG.md)
10
+ [![Version](https://img.shields.io/badge/Version-1.9.1-blue?style=flat-square)](./CHANGELOG.md)
11
11
  [![Coverage](https://img.shields.io/badge/Coverage-46.52%25-brightgreen?style=flat-square)](./vitest.config.ts)
12
12
  [![License](https://img.shields.io/badge/License-Apache%202.0-blue?style=flat-square)](https://opensource.org/licenses/Apache-2.0)
13
13
  [![Status](https://img.shields.io/badge/Status-Stable-green?style=flat-square)](https://github.com/cyanheads/mcp-ts-template/issues)
@@ -1 +1 @@
1
- {"version":3,"file":"oauthStrategy.d.ts","sourceRoot":"","sources":["../../../../../src/mcp-server/transports/auth/strategies/oauthStrategy.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEtD,qBAAa,aAAc,YAAW,YAAY;IAChD,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAwC;;IAuDvD,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;CAyF/C"}
1
+ {"version":3,"file":"oauthStrategy.d.ts","sourceRoot":"","sources":["../../../../../src/mcp-server/transports/auth/strategies/oauthStrategy.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEtD,qBAAa,aAAc,YAAW,YAAY;IAChD,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAwC;;IAuDvD,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;CAmG/C"}
@@ -59,7 +59,17 @@ export class OauthStrategy {
59
59
  ...context,
60
60
  claims: payload,
61
61
  }, "OAuth token signature verified successfully.");
62
- const scopes = typeof payload.scope === "string" ? payload.scope.split(" ") : [];
62
+ // Robust scope parsing (mirroring JwtStrategy):
63
+ let scopes = [];
64
+ // Check for 'scp' claim (array format)
65
+ if (Array.isArray(payload.scp) &&
66
+ payload.scp.every((s) => typeof s === "string")) {
67
+ scopes = payload.scp;
68
+ // Check for 'scope' claim (space-delimited string format)
69
+ }
70
+ else if (typeof payload.scope === "string" && payload.scope.trim()) {
71
+ scopes = payload.scope.split(" ").filter(Boolean);
72
+ }
63
73
  if (scopes.length === 0) {
64
74
  logger.warning(context, "Invalid token: missing or empty 'scope' claim.");
65
75
  throw new McpError(JsonRpcErrorCode.Unauthorized, "Token must contain valid, non-empty scopes.", context);
@@ -1 +1 @@
1
- {"version":3,"file":"oauthStrategy.js","sourceRoot":"","sources":["../../../../../src/mcp-server/transports/auth/strategies/oauthStrategy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"oauthStrategy.js","sourceRoot":"","sources":["../../../../../src/mcp-server/transports/auth/strategies/oauthStrategy.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,48 @@
1
+ /**
2
+ * @fileoverview Implements the "auto" mode transport manager.
3
+ * This manager acts as a router, delegating requests to either a stateful or a
4
+ * stateless manager based on the request's characteristics. It encapsulates the
5
+ * logic for providing a hybrid session model.
6
+ * @module src/mcp-server/transports/core/autoTransportManager
7
+ */
8
+ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
9
+ import { RequestContext } from "../../../utils/index.js";
10
+ import { McpTransportRequest } from "./transportRequest.js";
11
+ import { StatefulTransportOptions } from "./statefulTransportManager.js";
12
+ import { TransportManager, TransportResponse } from "./transportTypes.js";
13
+ /**
14
+ * A transport manager that dynamically handles both stateful and stateless requests.
15
+ * It inspects each request and routes it to an underlying stateful manager if it
16
+ * contains a session ID or is an initialization request. Otherwise, it handles
17
+ * the request ephemerally using a temporary stateless manager.
18
+ */
19
+ export declare class AutoTransportManager implements TransportManager {
20
+ private readonly statefulManager;
21
+ private readonly statelessManager;
22
+ /**
23
+ * @param createServerInstanceFn A factory function to create new McpServer instances.
24
+ * @param options Configuration options, primarily for the underlying stateful manager.
25
+ */
26
+ constructor(createServerInstanceFn: () => Promise<McpServer>, options: StatefulTransportOptions);
27
+ /**
28
+ * Handles an incoming request by routing it to the appropriate manager.
29
+ * If the request is an `initialize` request or includes a session ID, it is
30
+ * delegated to the stateful manager. Otherwise, a new stateless manager is
31
+ * created to handle the single request.
32
+ * @param request The standardized transport request object.
33
+ * @returns A promise that resolves to a TransportResponse object.
34
+ */
35
+ handleRequest(request: McpTransportRequest): Promise<TransportResponse>;
36
+ /**
37
+ * Delegates a session deletion request to the underlying stateful manager.
38
+ * @param sessionId The ID of the session to delete.
39
+ * @param context The request context.
40
+ * @returns A promise resolving to a TransportResponse confirming closure.
41
+ */
42
+ handleDeleteRequest(sessionId: string, context: RequestContext): Promise<TransportResponse>;
43
+ /**
44
+ * Shuts down the underlying stateful manager, cleaning up all its resources.
45
+ */
46
+ shutdown(): Promise<void>;
47
+ }
48
+ //# sourceMappingURL=autoTransportManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"autoTransportManager.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/transports/core/autoTransportManager.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAEL,wBAAwB,EACzB,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAE1E;;;;;GAKG;AACH,qBAAa,oBAAqB,YAAW,gBAAgB;IAC3D,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA2B;IAC3D,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAA4B;IAE7D;;;OAGG;gBAED,sBAAsB,EAAE,MAAM,OAAO,CAAC,SAAS,CAAC,EAChD,OAAO,EAAE,wBAAwB;IAWnC;;;;;;;OAOG;IACG,aAAa,CACjB,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,iBAAiB,CAAC;IAe7B;;;;;OAKG;IACG,mBAAmB,CACvB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,iBAAiB,CAAC;IAI7B;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAGhC"}
@@ -0,0 +1,57 @@
1
+ import { isInitializeRequest } from "@modelcontextprotocol/sdk/types.js";
2
+ import { StatefulTransportManager, } from "./statefulTransportManager.js";
3
+ import { StatelessTransportManager } from "./statelessTransportManager.js";
4
+ /**
5
+ * A transport manager that dynamically handles both stateful and stateless requests.
6
+ * It inspects each request and routes it to an underlying stateful manager if it
7
+ * contains a session ID or is an initialization request. Otherwise, it handles
8
+ * the request ephemerally using a temporary stateless manager.
9
+ */
10
+ export class AutoTransportManager {
11
+ statefulManager;
12
+ statelessManager;
13
+ /**
14
+ * @param createServerInstanceFn A factory function to create new McpServer instances.
15
+ * @param options Configuration options, primarily for the underlying stateful manager.
16
+ */
17
+ constructor(createServerInstanceFn, options) {
18
+ this.statefulManager = new StatefulTransportManager(createServerInstanceFn, options);
19
+ this.statelessManager = new StatelessTransportManager(createServerInstanceFn);
20
+ }
21
+ /**
22
+ * Handles an incoming request by routing it to the appropriate manager.
23
+ * If the request is an `initialize` request or includes a session ID, it is
24
+ * delegated to the stateful manager. Otherwise, a new stateless manager is
25
+ * created to handle the single request.
26
+ * @param request The standardized transport request object.
27
+ * @returns A promise that resolves to a TransportResponse object.
28
+ */
29
+ async handleRequest(request) {
30
+ const { body, sessionId } = request;
31
+ // Route to stateful manager if it's an initialize request or has a session ID
32
+ if (isInitializeRequest(body) || sessionId) {
33
+ // The plan describes an intermediate state for StatefulTransportManager's handleRequest,
34
+ // but for consistency with the new TransportManager interface, we will pass the whole request object.
35
+ // This anticipates the final state of the refactoring.
36
+ return this.statefulManager.handleRequest(request);
37
+ }
38
+ // Otherwise, handle as a one-off stateless request
39
+ return this.statelessManager.handleRequest(request);
40
+ }
41
+ /**
42
+ * Delegates a session deletion request to the underlying stateful manager.
43
+ * @param sessionId The ID of the session to delete.
44
+ * @param context The request context.
45
+ * @returns A promise resolving to a TransportResponse confirming closure.
46
+ */
47
+ async handleDeleteRequest(sessionId, context) {
48
+ return this.statefulManager.handleDeleteRequest(sessionId, context);
49
+ }
50
+ /**
51
+ * Shuts down the underlying stateful manager, cleaning up all its resources.
52
+ */
53
+ async shutdown() {
54
+ await this.statefulManager.shutdown();
55
+ }
56
+ }
57
+ //# sourceMappingURL=autoTransportManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"autoTransportManager.js","sourceRoot":"","sources":["../../../../src/mcp-server/transports/core/autoTransportManager.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AAGzE,OAAO,EACL,wBAAwB,GAEzB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAG3E;;;;;GAKG;AACH,MAAM,OAAO,oBAAoB;IACd,eAAe,CAA2B;IAC1C,gBAAgB,CAA4B;IAE7D;;;OAGG;IACH,YACE,sBAAgD,EAChD,OAAiC;QAEjC,IAAI,CAAC,eAAe,GAAG,IAAI,wBAAwB,CACjD,sBAAsB,EACtB,OAAO,CACR,CAAC;QACF,IAAI,CAAC,gBAAgB,GAAG,IAAI,yBAAyB,CACnD,sBAAsB,CACvB,CAAC;IACJ,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,aAAa,CACjB,OAA4B;QAE5B,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;QAEpC,8EAA8E;QAC9E,IAAI,mBAAmB,CAAC,IAAI,CAAC,IAAI,SAAS,EAAE,CAAC;YAC3C,yFAAyF;YACzF,sGAAsG;YACtG,uDAAuD;YACvD,OAAO,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QACrD,CAAC;QAED,mDAAmD;QACnD,OAAO,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IACtD,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,mBAAmB,CACvB,SAAiB,EACjB,OAAuB;QAEvB,OAAO,IAAI,CAAC,eAAe,CAAC,mBAAmB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IACtE,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,QAAQ;QACZ,MAAM,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC;IACxC,CAAC;CACF"}
@@ -3,8 +3,7 @@
3
3
  * @module src/mcp-server/transports/core/baseTransportManager
4
4
  */
5
5
  import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
6
- import type { IncomingHttpHeaders } from "http";
7
- import { RequestContext } from "../../../utils/index.js";
6
+ import { McpTransportRequest } from "./transportRequest.js";
8
7
  import { TransportManager, TransportResponse } from "./transportTypes.js";
9
8
  /**
10
9
  * Abstract base class for transport managers, providing common functionality.
@@ -12,7 +11,7 @@ import { TransportManager, TransportResponse } from "./transportTypes.js";
12
11
  export declare abstract class BaseTransportManager implements TransportManager {
13
12
  protected readonly createServerInstanceFn: () => Promise<McpServer>;
14
13
  constructor(createServerInstanceFn: () => Promise<McpServer>);
15
- abstract handleRequest(headers: IncomingHttpHeaders, body: unknown, context: RequestContext, sessionId?: string): Promise<TransportResponse>;
14
+ abstract handleRequest(request: McpTransportRequest): Promise<TransportResponse>;
16
15
  abstract shutdown(): Promise<void>;
17
16
  }
18
17
  //# sourceMappingURL=baseTransportManager.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"baseTransportManager.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/transports/core/baseTransportManager.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,MAAM,CAAC;AAChD,OAAO,EAEL,cAAc,EAEf,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAE1E;;GAEG;AACH,8BAAsB,oBAAqB,YAAW,gBAAgB;IACpE,SAAS,CAAC,QAAQ,CAAC,sBAAsB,EAAE,MAAM,OAAO,CAAC,SAAS,CAAC,CAAC;gBAExD,sBAAsB,EAAE,MAAM,OAAO,CAAC,SAAS,CAAC;IAS5D,QAAQ,CAAC,aAAa,CACpB,OAAO,EAAE,mBAAmB,EAC5B,IAAI,EAAE,OAAO,EACb,OAAO,EAAE,cAAc,EACvB,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,iBAAiB,CAAC;IAE7B,QAAQ,CAAC,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CACnC"}
1
+ {"version":3,"file":"baseTransportManager.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/transports/core/baseTransportManager.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAE1E;;GAEG;AACH,8BAAsB,oBAAqB,YAAW,gBAAgB;IACpE,SAAS,CAAC,QAAQ,CAAC,sBAAsB,EAAE,MAAM,OAAO,CAAC,SAAS,CAAC,CAAC;gBAExD,sBAAsB,EAAE,MAAM,OAAO,CAAC,SAAS,CAAC;IAS5D,QAAQ,CAAC,aAAa,CACpB,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,iBAAiB,CAAC;IAE7B,QAAQ,CAAC,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CACnC"}
@@ -2,7 +2,7 @@
2
2
  * @fileoverview Abstract base class for transport managers.
3
3
  * @module src/mcp-server/transports/core/baseTransportManager
4
4
  */
5
- import { logger, requestContextService, } from "../../../utils/index.js";
5
+ import { logger, requestContextService } from "../../../utils/index.js";
6
6
  /**
7
7
  * Abstract base class for transport managers, providing common functionality.
8
8
  */
@@ -1 +1 @@
1
- {"version":3,"file":"baseTransportManager.js","sourceRoot":"","sources":["../../../../src/mcp-server/transports/core/baseTransportManager.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EACL,MAAM,EAEN,qBAAqB,GACtB,MAAM,kBAAkB,CAAC;AAG1B;;GAEG;AACH,MAAM,OAAgB,oBAAoB;IACrB,sBAAsB,CAA2B;IAEpE,YAAY,sBAAgD;QAC1D,MAAM,OAAO,GAAG,qBAAqB,CAAC,oBAAoB,CAAC;YACzD,SAAS,EAAE,kCAAkC;YAC7C,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI;SACnC,CAAC,CAAC;QACH,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,iCAAiC,CAAC,CAAC;QACzD,IAAI,CAAC,sBAAsB,GAAG,sBAAsB,CAAC;IACvD,CAAC;CAUF"}
1
+ {"version":3,"file":"baseTransportManager.js","sourceRoot":"","sources":["../../../../src/mcp-server/transports/core/baseTransportManager.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,MAAM,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAIjE;;GAEG;AACH,MAAM,OAAgB,oBAAoB;IACrB,sBAAsB,CAA2B;IAEpE,YAAY,sBAAgD;QAC1D,MAAM,OAAO,GAAG,qBAAqB,CAAC,oBAAoB,CAAC;YACzD,SAAS,EAAE,kCAAkC;YAC7C,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI;SACnC,CAAC,CAAC;QACH,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,iCAAiC,CAAC,CAAC;QACzD,IAAI,CAAC,sBAAsB,GAAG,sBAAsB,CAAC;IACvD,CAAC;CAOF"}
@@ -3,7 +3,7 @@
3
3
  * and Web Standards formats, ensuring compliance and correctness.
4
4
  * @module src/mcp-server/transports/core/headerUtils
5
5
  */
6
- import type { OutgoingHttpHeaders } from "http";
6
+ import type { OutgoingHttpHeaders, IncomingHttpHeaders } from "http";
7
7
  /**
8
8
  * Converts Node.js-style OutgoingHttpHeaders to a Web-standard Headers object.
9
9
  *
@@ -17,4 +17,11 @@ import type { OutgoingHttpHeaders } from "http";
17
17
  * @returns A Web-standard Headers object.
18
18
  */
19
19
  export declare function convertNodeHeadersToWebHeaders(nodeHeaders: OutgoingHttpHeaders): Headers;
20
+ /**
21
+ * Converts a Web-standard Headers object (used by Hono) to Node.js-style IncomingHttpHeaders.
22
+ *
23
+ * @param webHeaders - The Web-standard Headers object to convert.
24
+ * @returns A Node.js-style IncomingHttpHeaders object.
25
+ */
26
+ export declare function convertWebHeadersToNodeHeaders(webHeaders: Headers): IncomingHttpHeaders;
20
27
  //# sourceMappingURL=headerUtils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"headerUtils.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/transports/core/headerUtils.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,MAAM,CAAC;AAEhD;;;;;;;;;;;GAWG;AACH,wBAAgB,8BAA8B,CAC5C,WAAW,EAAE,mBAAmB,GAC/B,OAAO,CAmBT"}
1
+ {"version":3,"file":"headerUtils.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/transports/core/headerUtils.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,MAAM,CAAC;AAErE;;;;;;;;;;;GAWG;AACH,wBAAgB,8BAA8B,CAC5C,WAAW,EAAE,mBAAmB,GAC/B,OAAO,CAmBT;AAED;;;;;GAKG;AACH,wBAAgB,8BAA8B,CAC5C,UAAU,EAAE,OAAO,GAClB,mBAAmB,CAQrB"}
@@ -35,4 +35,19 @@ export function convertNodeHeadersToWebHeaders(nodeHeaders) {
35
35
  }
36
36
  return webHeaders;
37
37
  }
38
+ /**
39
+ * Converts a Web-standard Headers object (used by Hono) to Node.js-style IncomingHttpHeaders.
40
+ *
41
+ * @param webHeaders - The Web-standard Headers object to convert.
42
+ * @returns A Node.js-style IncomingHttpHeaders object.
43
+ */
44
+ export function convertWebHeadersToNodeHeaders(webHeaders) {
45
+ const nodeHeaders = {};
46
+ // The Headers.forEach provides the comma-separated string if multiple headers existed.
47
+ webHeaders.forEach((value, key) => {
48
+ // Node.js lowercases incoming header keys.
49
+ nodeHeaders[key.toLowerCase()] = value;
50
+ });
51
+ return nodeHeaders;
52
+ }
38
53
  //# sourceMappingURL=headerUtils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"headerUtils.js","sourceRoot":"","sources":["../../../../src/mcp-server/transports/core/headerUtils.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,8BAA8B,CAC5C,WAAgC;IAEhC,MAAM,UAAU,GAAG,IAAI,OAAO,EAAE,CAAC;IACjC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;QACvD,6EAA6E;QAC7E,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,SAAS;QACX,CAAC;QAED,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,gEAAgE;YAChE,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;gBACtB,UAAU,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YACpC,CAAC;QACH,CAAC;aAAM,CAAC;YACN,qEAAqE;YACrE,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACrC,CAAC;IACH,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC"}
1
+ {"version":3,"file":"headerUtils.js","sourceRoot":"","sources":["../../../../src/mcp-server/transports/core/headerUtils.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,8BAA8B,CAC5C,WAAgC;IAEhC,MAAM,UAAU,GAAG,IAAI,OAAO,EAAE,CAAC;IACjC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;QACvD,6EAA6E;QAC7E,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,SAAS;QACX,CAAC;QAED,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,gEAAgE;YAChE,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;gBACtB,UAAU,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YACpC,CAAC;QACH,CAAC;aAAM,CAAC;YACN,qEAAqE;YACrE,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACrC,CAAC;IACH,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,8BAA8B,CAC5C,UAAmB;IAEnB,MAAM,WAAW,GAAwB,EAAE,CAAC;IAC5C,uFAAuF;IACvF,UAAU,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;QAChC,2CAA2C;QAC3C,WAAW,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,GAAG,KAAK,CAAC;IACzC,CAAC,CAAC,CAAC;IACH,OAAO,WAAW,CAAC;AACrB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"honoNodeBridge.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/transports/core/honoNodeBridge.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,MAAM,CAAC;AAEhD;;;;;;;;GAQG;AACH,qBAAa,kBAAmB,SAAQ,WAAW;IAC1C,UAAU,SAAO;IACjB,OAAO,EAAE,mBAAmB,CAAM;IACzC,OAAO,CAAC,YAAY,CAAS;;IAM7B;;;OAGG;IACH,IAAI,WAAW,IAAI,OAAO,CAEzB;IAED;;;;;;;OAOG;IACH,SAAS,CACP,UAAU,EAAE,MAAM,EAClB,sBAAsB,CAAC,EAAE,MAAM,GAAG,mBAAmB,EACrD,OAAO,CAAC,EAAE,mBAAmB,GAC5B,IAAI;IAsBP;;;;;;OAMG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI;IAahE;;;;OAIG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS;IAI/D;;OAEG;IACH,UAAU,IAAI,mBAAmB;IAIjC;;;OAGG;IACH,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAUhC;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAMzB;;;OAGG;IACH,KAAK,CACH,KAAK,EAAE,OAAO,EACd,kBAAkB,CAAC,EACf,cAAc,GACd,CAAC,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,SAAS,KAAK,IAAI,CAAC,EAC/C,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,SAAS,KAAK,IAAI,GACnD,OAAO;IAcV;;;OAGG;IACH,GAAG,CACD,KAAK,CAAC,EAAE,OAAO,EACf,kBAAkB,CAAC,EAAE,cAAc,GAAG,CAAC,MAAM,IAAI,CAAC,EAClD,QAAQ,CAAC,EAAE,MAAM,IAAI,GACpB,IAAI;CAeR"}
1
+ {"version":3,"file":"honoNodeBridge.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/transports/core/honoNodeBridge.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,MAAM,CAAC;AAGhD;;;;;;;;GAQG;AACH,qBAAa,kBAAmB,SAAQ,WAAW;IAC1C,UAAU,SAAO;IACjB,OAAO,EAAE,mBAAmB,CAAM;IACzC,OAAO,CAAC,YAAY,CAAS;;IAM7B;;;OAGG;IACH,IAAI,WAAW,IAAI,OAAO,CAEzB;IAED;;;;;;;OAOG;IACH,SAAS,CACP,UAAU,EAAE,MAAM,EAClB,sBAAsB,CAAC,EAAE,MAAM,GAAG,mBAAmB,EACrD,OAAO,CAAC,EAAE,mBAAmB,GAC5B,IAAI;IAsBP;;;;;;OAMG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI;IAmBhE;;;;OAIG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS;IAI/D;;OAEG;IACH,UAAU,IAAI,mBAAmB;IAIjC;;;OAGG;IACH,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAkBhC;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAMzB;;;OAGG;IACH,KAAK,CACH,KAAK,EAAE,OAAO,EACd,kBAAkB,CAAC,EACf,cAAc,GACd,CAAC,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,SAAS,KAAK,IAAI,CAAC,EAC/C,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,SAAS,KAAK,IAAI,GACnD,OAAO;IAcV;;;OAGG;IACH,GAAG,CACD,KAAK,CAAC,EAAE,OAAO,EACf,kBAAkB,CAAC,EAAE,cAAc,GAAG,CAAC,MAAM,IAAI,CAAC,EAClD,QAAQ,CAAC,EAAE,MAAM,IAAI,GACpB,IAAI;CAeR"}
@@ -6,6 +6,7 @@
6
6
  * @module src/mcp-server/transports/core/honoNodeBridge
7
7
  */
8
8
  import { PassThrough } from "stream";
9
+ import { logger, requestContextService } from "../../../utils/index.js";
9
10
  /**
10
11
  * A mock `http.ServerResponse` that pipes all written data to a `PassThrough` stream.
11
12
  *
@@ -64,9 +65,13 @@ export class HonoStreamResponse extends PassThrough {
64
65
  */
65
66
  setHeader(name, value) {
66
67
  if (this._headersSent) {
67
- // This is a deviation from Node.js (which would throw), but provides a
68
- // more graceful warning for this emulation layer.
69
- console.warn(`[HonoBridge] Warning: Cannot set header "${name}" after headers are sent.`);
68
+ // Retrieve context if available, otherwise create a basic one
69
+ const context = requestContextService.createRequestContext({
70
+ operation: "HonoStreamResponse.setHeader",
71
+ component: "HonoNodeBridge",
72
+ });
73
+ // Replace console.warn with logger.warning
74
+ logger.warning({ ...context, headerName: name }, `[HonoBridge] Warning: Cannot set header "${name}" after headers are sent.`);
70
75
  return this;
71
76
  }
72
77
  this.headers[name.toLowerCase()] = value;
@@ -92,7 +97,13 @@ export class HonoStreamResponse extends PassThrough {
92
97
  */
93
98
  removeHeader(name) {
94
99
  if (this._headersSent) {
95
- console.warn(`[HonoBridge] Warning: Cannot remove header "${name}" after headers are sent.`);
100
+ // Retrieve context if available
101
+ const context = requestContextService.createRequestContext({
102
+ operation: "HonoStreamResponse.removeHeader",
103
+ component: "HonoNodeBridge",
104
+ });
105
+ // Replace console.warn with logger.warning
106
+ logger.warning({ ...context, headerName: name }, `[HonoBridge] Warning: Cannot remove header "${name}" after headers are sent.`);
96
107
  return;
97
108
  }
98
109
  delete this.headers[name.toLowerCase()];
@@ -1 +1 @@
1
- {"version":3,"file":"honoNodeBridge.js","sourceRoot":"","sources":["../../../../src/mcp-server/transports/core/honoNodeBridge.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"honoNodeBridge.js","sourceRoot":"","sources":["../../../../src/mcp-server/transports/core/honoNodeBridge.ts"],"names":[],"mappings":"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"}
@@ -14,11 +14,12 @@
14
14
  *
15
15
  * @module src/mcp-server/transports/core/statefulTransportManager
16
16
  */
17
- import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
18
- import type { IncomingHttpHeaders } from "http";
19
17
  import { RequestContext } from "../../../utils/index.js";
18
+ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
20
19
  import { BaseTransportManager } from "./baseTransportManager.js";
21
- import { StatefulTransportManager as IStatefulTransportManager, TransportResponse, TransportSession } from "./transportTypes.js";
20
+ import { McpTransportRequest } from "./transportRequest.js";
21
+ import { // Import SessionState
22
+ StatefulTransportManager as IStatefulTransportManager, TransportResponse, TransportSession } from "./transportTypes.js";
22
23
  /**
23
24
  * Defines the configuration options for the StatefulTransportManager.
24
25
  */
@@ -47,12 +48,15 @@ export declare class StatefulTransportManager extends BaseTransportManager imple
47
48
  * @param body - The parsed body of the request.
48
49
  * @param context - The request context.
49
50
  * @returns A promise resolving to a streaming TransportResponse with a session ID.
51
+ * @private
50
52
  */
51
- initializeAndHandle(headers: IncomingHttpHeaders, body: unknown, context: RequestContext): Promise<TransportResponse>;
53
+ private initializeAndHandle;
52
54
  /**
53
- * Handles a subsequent request for an existing stateful session.
55
+ * The new public entry point that conforms to the TransportManager interface.
56
+ * It routes the request to the appropriate handler based on whether it's an
57
+ * initialization request or a subsequent request for an existing session.
54
58
  */
55
- handleRequest(headers: IncomingHttpHeaders, body: unknown, context: RequestContext, sessionId?: string): Promise<TransportResponse>;
59
+ handleRequest(request: McpTransportRequest): Promise<TransportResponse>;
56
60
  /**
57
61
  * Handles a request to explicitly delete a session.
58
62
  */
@@ -1 +1 @@
1
- {"version":3,"file":"statefulTransportManager.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/transports/core/statefulTransportManager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,KAAK,EAAE,mBAAmB,EAAkB,MAAM,MAAM,CAAC;AAIhE,OAAO,EAGL,cAAc,EAEf,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAGjE,OAAO,EAEL,wBAAwB,IAAI,yBAAyB,EACrD,iBAAiB,EACjB,gBAAgB,EACjB,MAAM,qBAAqB,CAAC;AAE7B;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,qBAAqB,EAAE,MAAM,CAAC;IAC9B,mBAAmB,EAAE,MAAM,CAAC;CAC7B;AAED;;GAEG;AACH,qBAAa,wBACX,SAAQ,oBACR,YAAW,yBAAyB;IAEpC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAGvB;IACJ,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAgC;IACxD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAuC;IAChE,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAiB;IAClD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA2B;IAEnD;;;OAGG;gBAED,sBAAsB,EAAE,MAAM,OAAO,CAAC,SAAS,CAAC,EAChD,OAAO,EAAE,wBAAwB;IAkBnC;;;;;;;OAOG;IACG,mBAAmB,CACvB,OAAO,EAAE,mBAAmB,EAC5B,IAAI,EAAE,OAAO,EACb,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,iBAAiB,CAAC;IAsG7B;;OAEG;IACG,aAAa,CACjB,OAAO,EAAE,mBAAmB,EAC5B,IAAI,EAAE,OAAO,EACb,OAAO,EAAE,cAAc,EACvB,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,iBAAiB,CAAC;IAgF7B;;OAEG;IACG,mBAAmB,CACvB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,iBAAiB,CAAC;IA8B7B;;OAEG;IACH,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS;IAI3D;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAuB/B;;OAEG;YACW,YAAY;IAgC1B;;OAEG;YACW,oBAAoB;CA6CnC"}
1
+ {"version":3,"file":"statefulTransportManager.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/transports/core/statefulTransportManager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,EAGL,cAAc,EAEf,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAMpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAGjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAES,sBAAsB;AACpC,wBAAwB,IAAI,yBAAyB,EACrD,iBAAiB,EACjB,gBAAgB,EACjB,MAAM,qBAAqB,CAAC;AAE7B;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,qBAAqB,EAAE,MAAM,CAAC;IAC9B,mBAAmB,EAAE,MAAM,CAAC;CAC7B;AAED;;GAEG;AACH,qBAAa,wBACX,SAAQ,oBACR,YAAW,yBAAyB;IAEpC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAGvB;IACJ,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAgC;IACxD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAuC;IAChE,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAiB;IAClD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA2B;IAEnD;;;OAGG;gBAED,sBAAsB,EAAE,MAAM,OAAO,CAAC,SAAS,CAAC,EAChD,OAAO,EAAE,wBAAwB;IAkBnC;;;;;;;;OAQG;YACW,mBAAmB;IA2GjC;;;;OAIG;IACG,aAAa,CACjB,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,iBAAiB,CAAC;IAoG7B;;OAEG;IACG,mBAAmB,CACvB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,iBAAiB,CAAC;IA8B7B;;OAEG;IACH,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS;IAI3D;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAuB/B;;OAEG;YACW,YAAY;IA8C1B;;OAEG;YACW,oBAAoB;CA6CnC"}
@@ -14,14 +14,17 @@
14
14
  *
15
15
  * @module src/mcp-server/transports/core/statefulTransportManager
16
16
  */
17
+ import { JsonRpcErrorCode, McpError } from "../../../types-global/errors.js";
18
+ import { ErrorHandler, logger, requestContextService, } from "../../../utils/index.js";
17
19
  import { StreamableHTTPServerTransport } from "@modelcontextprotocol/sdk/server/streamableHttp.js";
20
+ import { isInitializeRequest } from "@modelcontextprotocol/sdk/types.js";
18
21
  import { randomUUID } from "node:crypto";
19
22
  import { Readable } from "stream";
20
- import { JsonRpcErrorCode, McpError } from "../../../types-global/errors.js";
21
- import { ErrorHandler, logger, requestContextService, } from "../../../utils/index.js";
22
23
  import { BaseTransportManager } from "./baseTransportManager.js";
23
- import { HonoStreamResponse } from "./honoNodeBridge.js";
24
24
  import { convertNodeHeadersToWebHeaders } from "./headerUtils.js";
25
+ import { HonoStreamResponse } from "./honoNodeBridge.js";
26
+ import { SessionState, // Import SessionState
27
+ } from "./transportTypes.js";
25
28
  /**
26
29
  * Manages persistent, stateful MCP sessions.
27
30
  */
@@ -52,6 +55,7 @@ export class StatefulTransportManager extends BaseTransportManager {
52
55
  * @param body - The parsed body of the request.
53
56
  * @param context - The request context.
54
57
  * @returns A promise resolving to a streaming TransportResponse with a session ID.
58
+ * @private
55
59
  */
56
60
  async initializeAndHandle(headers, body, context) {
57
61
  const opContext = {
@@ -73,6 +77,7 @@ export class StatefulTransportManager extends BaseTransportManager {
73
77
  this.servers.set(sessionId, currentServer);
74
78
  this.sessions.set(sessionId, {
75
79
  id: sessionId,
80
+ state: SessionState.ACTIVE, // Set initial state
76
81
  createdAt: new Date(),
77
82
  lastAccessedAt: new Date(),
78
83
  activeRequests: 0,
@@ -132,64 +137,76 @@ export class StatefulTransportManager extends BaseTransportManager {
132
137
  }
133
138
  }
134
139
  /**
135
- * Handles a subsequent request for an existing stateful session.
140
+ * The new public entry point that conforms to the TransportManager interface.
141
+ * It routes the request to the appropriate handler based on whether it's an
142
+ * initialization request or a subsequent request for an existing session.
136
143
  */
137
- async handleRequest(headers, body, context, sessionId) {
138
- if (!sessionId) {
139
- throw new McpError(JsonRpcErrorCode.InvalidParams, "Session ID is required for stateful requests.", context);
140
- }
141
- const sessionContext = {
142
- ...context,
143
- sessionId,
144
- operation: "StatefulTransportManager.handleRequest",
145
- };
146
- const transport = this.transports.get(sessionId);
147
- const session = this.sessions.get(sessionId);
148
- if (!transport || !session) {
149
- logger.warning(sessionContext, `Request for non-existent session: ${sessionId}`);
150
- return {
151
- type: "buffered",
152
- headers: new Headers({ "Content-Type": "application/json" }),
153
- statusCode: 404,
154
- body: {
155
- jsonrpc: "2.0",
156
- error: { code: -32601, message: "Session not found" },
157
- },
158
- };
159
- }
160
- session.lastAccessedAt = new Date();
161
- session.activeRequests += 1;
162
- logger.debug(sessionContext, `Incremented activeRequests for session ${sessionId}. Count: ${session.activeRequests}`);
163
- try {
164
- const mockReq = {
165
- headers,
166
- method: "POST",
167
- url: this.options.mcpHttpEndpointPath,
168
- };
169
- const mockRes = new HonoStreamResponse();
170
- await transport.handleRequest(mockReq, mockRes, body);
171
- const responseHeaders = convertNodeHeadersToWebHeaders(mockRes.getHeaders());
172
- const webStream = Readable.toWeb(mockRes);
173
- return {
174
- type: "stream",
175
- headers: responseHeaders,
176
- statusCode: mockRes.statusCode,
177
- stream: webStream,
178
- sessionId: transport.sessionId,
144
+ async handleRequest(request) {
145
+ const { headers, body, context, sessionId } = request;
146
+ if (sessionId) {
147
+ const sessionContext = {
148
+ ...context,
149
+ sessionId,
150
+ operation: "StatefulTransportManager.handleRequest",
179
151
  };
180
- }
181
- catch (error) {
182
- throw ErrorHandler.handleError(error, {
183
- operation: sessionContext.operation,
184
- context: sessionContext,
185
- rethrow: true,
186
- });
187
- }
188
- finally {
189
- session.activeRequests -= 1;
152
+ const transport = this.transports.get(sessionId);
153
+ const session = this.sessions.get(sessionId);
154
+ if (!transport || !session) {
155
+ logger.warning(sessionContext, `Request for non-existent session: ${sessionId}`);
156
+ return {
157
+ type: "buffered",
158
+ headers: new Headers({ "Content-Type": "application/json" }),
159
+ statusCode: 404,
160
+ body: {
161
+ jsonrpc: "2.0",
162
+ error: { code: -32601, message: "Session not found" },
163
+ },
164
+ };
165
+ }
166
+ // Check session state before accepting the request
167
+ if (session.state === SessionState.CLOSING) {
168
+ logger.warning(sessionContext, `Request received for session in CLOSING state: ${sessionId}`);
169
+ throw new McpError(JsonRpcErrorCode.Conflict, // Use Conflict status
170
+ "Session is currently closing. Please start a new session.", sessionContext);
171
+ }
190
172
  session.lastAccessedAt = new Date();
191
- logger.debug(sessionContext, `Decremented activeRequests for session ${sessionId}. Count: ${session.activeRequests}`);
173
+ session.activeRequests += 1;
174
+ logger.debug(sessionContext, `Incremented activeRequests for session ${sessionId}. Count: ${session.activeRequests}`);
175
+ try {
176
+ const mockReq = {
177
+ headers,
178
+ method: "POST",
179
+ url: this.options.mcpHttpEndpointPath,
180
+ };
181
+ const mockRes = new HonoStreamResponse();
182
+ await transport.handleRequest(mockReq, mockRes, body);
183
+ const responseHeaders = convertNodeHeadersToWebHeaders(mockRes.getHeaders());
184
+ const webStream = Readable.toWeb(mockRes);
185
+ return {
186
+ type: "stream",
187
+ headers: responseHeaders,
188
+ statusCode: mockRes.statusCode,
189
+ stream: webStream,
190
+ sessionId: transport.sessionId,
191
+ };
192
+ }
193
+ catch (error) {
194
+ throw ErrorHandler.handleError(error, {
195
+ operation: sessionContext.operation,
196
+ context: sessionContext,
197
+ rethrow: true,
198
+ });
199
+ }
200
+ finally {
201
+ session.activeRequests -= 1;
202
+ session.lastAccessedAt = new Date();
203
+ logger.debug(sessionContext, `Decremented activeRequests for session ${sessionId}. Count: ${session.activeRequests}`);
204
+ }
205
+ }
206
+ if (isInitializeRequest(body)) {
207
+ return this.initializeAndHandle(headers, body, context);
192
208
  }
209
+ throw new McpError(JsonRpcErrorCode.InvalidRequest, "A session ID or an initialize request is required for stateful mode.", context);
193
210
  }
194
211
  /**
195
212
  * Handles a request to explicitly delete a session.
@@ -250,6 +267,16 @@ export class StatefulTransportManager extends BaseTransportManager {
250
267
  operation: "StatefulTransportManager.closeSession",
251
268
  };
252
269
  logger.debug(sessionContext, `Closing session: ${sessionId}`);
270
+ const session = this.sessions.get(sessionId);
271
+ if (!session) {
272
+ return;
273
+ }
274
+ if (session.state === SessionState.CLOSING) {
275
+ logger.debug(sessionContext, `Session is already in CLOSING state.`);
276
+ return;
277
+ }
278
+ session.state = SessionState.CLOSING;
279
+ logger.debug(sessionContext, `Marking session ${sessionId} as CLOSING.`);
253
280
  const transport = this.transports.get(sessionId);
254
281
  const server = this.servers.get(sessionId);
255
282
  await ErrorHandler.tryCatch(async () => {
@@ -1 +1 @@
1
- {"version":3,"file":"statefulTransportManager.js","sourceRoot":"","sources":["../../../../src/mcp-server/transports/core/statefulTransportManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"statefulTransportManager.js","sourceRoot":"","sources":["../../../../src/mcp-server/transports/core/statefulTransportManager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACtE,OAAO,EACL,YAAY,EACZ,MAAM,EAEN,qBAAqB,GACtB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,6BAA6B,EAAE,MAAM,oDAAoD,CAAC;AACnG,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AAEzE,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAClC,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,8BAA8B,EAAE,MAAM,kBAAkB,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAEzD,OAAO,EAEL,YAAY,EAAE,sBAAsB;EAIrC,MAAM,qBAAqB,CAAC;AAU7B;;GAEG;AACH,MAAM,OAAO,wBACX,SAAQ,oBAAoB;IAGX,UAAU,GAAG,IAAI,GAAG,EAGlC,CAAC;IACa,OAAO,GAAG,IAAI,GAAG,EAAqB,CAAC;IACvC,QAAQ,GAAG,IAAI,GAAG,EAA4B,CAAC;IAC/C,gBAAgB,CAAiB;IACjC,OAAO,CAA2B;IAEnD;;;OAGG;IACH,YACE,sBAAgD,EAChD,OAAiC;QAEjC,KAAK,CAAC,sBAAsB,CAAC,CAAC;QAC9B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,MAAM,OAAO,GAAG,qBAAqB,CAAC,oBAAoB,CAAC;YACzD,SAAS,EAAE,sCAAsC;SAClD,CAAC,CAAC;QACH,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,qCAAqC,CAAC,CAAC;QAC5D,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CACzB,MAAM,EACN,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,qBAAqB,GAAG,CAAC,CAAC,CACnD,CAAC;QACF,IAAI,CAAC,gBAAgB,GAAG,WAAW,CACjC,GAAG,EAAE,CAAC,IAAI,CAAC,oBAAoB,EAAE,EACjC,UAAU,CACX,CAAC;IACJ,CAAC;IAED;;;;;;;;OAQG;IACK,KAAK,CAAC,mBAAmB,CAC/B,OAA4B,EAC5B,IAAa,EACb,OAAuB;QAEvB,MAAM,SAAS,GAAG;YAChB,GAAG,OAAO;YACV,SAAS,EAAE,8CAA8C;SAC1D,CAAC;QACF,MAAM,CAAC,KAAK,CAAC,SAAS,EAAE,oCAAoC,CAAC,CAAC;QAE9D,IAAI,MAA6B,CAAC;QAClC,IAAI,SAAoD,CAAC;QAEzD,IAAI,CAAC;YACH,MAAM,GAAG,MAAM,IAAI,CAAC,sBAAsB,EAAE,CAAC;YAC7C,MAAM,OAAO,GAAG,IAAI,kBAAkB,EAA+B,CAAC;YACtE,MAAM,aAAa,GAAG,MAAM,CAAC;YAE7B,SAAS,GAAG,IAAI,6BAA6B,CAAC;gBAC5C,kBAAkB,EAAE,GAAG,EAAE,CAAC,UAAU,EAAE;gBACtC,oBAAoB,EAAE,CAAC,SAAS,EAAE,EAAE;oBAClC,MAAM,cAAc,GAAG,EAAE,GAAG,SAAS,EAAE,SAAS,EAAE,CAAC;oBACnD,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,EAAE,SAAU,CAAC,CAAC;oBAC3C,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;oBAC3C,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE;wBAC3B,EAAE,EAAE,SAAS;wBACb,KAAK,EAAE,YAAY,CAAC,MAAM,EAAE,oBAAoB;wBAChD,SAAS,EAAE,IAAI,IAAI,EAAE;wBACrB,cAAc,EAAE,IAAI,IAAI,EAAE;wBAC1B,cAAc,EAAE,CAAC;qBAClB,CAAC,CAAC;oBACH,MAAM,CAAC,IAAI,CAAC,cAAc,EAAE,wBAAwB,SAAS,EAAE,CAAC,CAAC;gBACnE,CAAC;aACF,CAAC,CAAC;YAEH,SAAS,CAAC,OAAO,GAAG,GAAG,EAAE;gBACvB,MAAM,SAAS,GAAG,SAAU,CAAC,SAAS,CAAC;gBACvC,IAAI,SAAS,EAAE,CAAC;oBACd,MAAM,YAAY,GAAG,EAAE,GAAG,SAAS,EAAE,SAAS,EAAE,CAAC;oBACjD,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CACvD,MAAM,CAAC,KAAK,CACV,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,YAAY,EAAE,EAC/B,sDAAsD,SAAS,EAAE,CAClE,CACF,CAAC;gBACJ,CAAC;YACH,CAAC,CAAC;YAEF,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YAChC,MAAM,CAAC,KAAK,CAAC,SAAS,EAAE,6CAA6C,CAAC,CAAC;YAEvE,MAAM,OAAO,GAAG;gBACd,OAAO;gBACP,MAAM,EAAE,MAAM;gBACd,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,mBAAmB;aACJ,CAAC;YACpC,MAAM,SAAS,CAAC,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;YAEtD,MAAM,eAAe,GAAG,8BAA8B,CACpD,OAAO,CAAC,UAAU,EAAE,CACrB,CAAC;YACF,IAAI,SAAS,CAAC,SAAS,EAAE,CAAC;gBACxB,eAAe,CAAC,GAAG,CAAC,gBAAgB,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;YAC7D,CAAC;YAED,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,CAC9B,OAAwC,CACX,CAAC;YAEhC,OAAO;gBACL,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,eAAe;gBACxB,UAAU,EAAE,OAAO,CAAC,UAA4B;gBAChD,MAAM,EAAE,SAAS;gBACjB,SAAS,EAAE,SAAS,CAAC,SAAS;aAC/B,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CACV,EAAE,GAAG,SAAS,EAAE,KAAK,EAAE,KAAc,EAAE,EACvC,wEAAwE,CACzE,CAAC;YAEF,MAAM,kBAAkB,GACtB,SAAS,EAAE,SAAS,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;YACnE,IAAI,CAAC,kBAAkB,EAAE,CAAC;gBACxB,CAAC,KAAK,IAAI,EAAE;oBACV,MAAM,YAAY,CAAC,QAAQ,CACzB,KAAK,IAAI,EAAE;wBACT,IAAI,SAAS;4BAAE,MAAM,SAAS,CAAC,KAAK,EAAE,CAAC;wBACvC,IAAI,MAAM;4BAAE,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;oBACnC,CAAC,EACD;wBACE,SAAS,EAAE,qCAAqC;wBAChD,OAAO,EAAE,SAAS;qBACnB,CACF,CAAC;gBACJ,CAAC,CAAC,EAAE,CAAC;YACP,CAAC;YACD,MAAM,YAAY,CAAC,WAAW,CAAC,KAAK,EAAE;gBACpC,SAAS,EAAE,SAAS,CAAC,SAAS;gBAC9B,OAAO,EAAE,SAAS;gBAClB,OAAO,EAAE,IAAI;aACd,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,aAAa,CACjB,OAA4B;QAE5B,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;QAEtD,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,cAAc,GAAG;gBACrB,GAAG,OAAO;gBACV,SAAS;gBACT,SAAS,EAAE,wCAAwC;aACpD,CAAC;YAEF,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YACjD,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAE7C,IAAI,CAAC,SAAS,IAAI,CAAC,OAAO,EAAE,CAAC;gBAC3B,MAAM,CAAC,OAAO,CACZ,cAAc,EACd,qCAAqC,SAAS,EAAE,CACjD,CAAC;gBACF,OAAO;oBACL,IAAI,EAAE,UAAU;oBAChB,OAAO,EAAE,IAAI,OAAO,CAAC,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC;oBAC5D,UAAU,EAAE,GAAG;oBACf,IAAI,EAAE;wBACJ,OAAO,EAAE,KAAK;wBACd,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,mBAAmB,EAAE;qBACtD;iBACF,CAAC;YACJ,CAAC;YAED,mDAAmD;YACnD,IAAI,OAAO,CAAC,KAAK,KAAK,YAAY,CAAC,OAAO,EAAE,CAAC;gBAC3C,MAAM,CAAC,OAAO,CACZ,cAAc,EACd,kDAAkD,SAAS,EAAE,CAC9D,CAAC;gBACF,MAAM,IAAI,QAAQ,CAChB,gBAAgB,CAAC,QAAQ,EAAE,sBAAsB;gBACjD,2DAA2D,EAC3D,cAAc,CACf,CAAC;YACJ,CAAC;YAED,OAAO,CAAC,cAAc,GAAG,IAAI,IAAI,EAAE,CAAC;YACpC,OAAO,CAAC,cAAc,IAAI,CAAC,CAAC;YAC5B,MAAM,CAAC,KAAK,CACV,cAAc,EACd,0CAA0C,SAAS,YAAY,OAAO,CAAC,cAAc,EAAE,CACxF,CAAC;YAEF,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG;oBACd,OAAO;oBACP,MAAM,EAAE,MAAM;oBACd,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,mBAAmB;iBACJ,CAAC;gBACpC,MAAM,OAAO,GAAG,IAAI,kBAAkB,EAA+B,CAAC;gBAEtE,MAAM,SAAS,CAAC,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;gBAEtD,MAAM,eAAe,GAAG,8BAA8B,CACpD,OAAO,CAAC,UAAU,EAAE,CACrB,CAAC;gBACF,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,CAC9B,OAAwC,CACX,CAAC;gBAEhC,OAAO;oBACL,IAAI,EAAE,QAAQ;oBACd,OAAO,EAAE,eAAe;oBACxB,UAAU,EAAE,OAAO,CAAC,UAA4B;oBAChD,MAAM,EAAE,SAAS;oBACjB,SAAS,EAAE,SAAS,CAAC,SAAS;iBAC/B,CAAC;YACJ,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,YAAY,CAAC,WAAW,CAAC,KAAK,EAAE;oBACpC,SAAS,EAAE,cAAc,CAAC,SAAS;oBACnC,OAAO,EAAE,cAAc;oBACvB,OAAO,EAAE,IAAI;iBACd,CAAC,CAAC;YACL,CAAC;oBAAS,CAAC;gBACT,OAAO,CAAC,cAAc,IAAI,CAAC,CAAC;gBAC5B,OAAO,CAAC,cAAc,GAAG,IAAI,IAAI,EAAE,CAAC;gBACpC,MAAM,CAAC,KAAK,CACV,cAAc,EACd,0CAA0C,SAAS,YAAY,OAAO,CAAC,cAAc,EAAE,CACxF,CAAC;YACJ,CAAC;QACH,CAAC;QAED,IAAI,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC;YAC9B,OAAO,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;QAC1D,CAAC;QAED,MAAM,IAAI,QAAQ,CAChB,gBAAgB,CAAC,cAAc,EAC/B,sEAAsE,EACtE,OAAO,CACR,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,mBAAmB,CACvB,SAAiB,EACjB,OAAuB;QAEvB,MAAM,cAAc,GAAG;YACrB,GAAG,OAAO;YACV,SAAS;YACT,SAAS,EAAE,8CAA8C;SAC1D,CAAC;QACF,MAAM,CAAC,IAAI,CAAC,cAAc,EAAE,iCAAiC,SAAS,EAAE,CAAC,CAAC;QAE1E,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YACpC,MAAM,CAAC,OAAO,CACZ,cAAc,EACd,6CAA6C,SAAS,EAAE,CACzD,CAAC;YACF,MAAM,IAAI,QAAQ,CAChB,gBAAgB,CAAC,QAAQ,EACzB,+BAA+B,EAC/B,cAAc,CACf,CAAC;QACJ,CAAC;QAED,MAAM,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;QAEnD,OAAO;YACL,IAAI,EAAE,UAAU;YAChB,OAAO,EAAE,IAAI,OAAO,CAAC,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC;YAC5D,UAAU,EAAE,GAAqB;YACjC,IAAI,EAAE,EAAE,MAAM,EAAE,gBAAgB,EAAE,SAAS,EAAE;SAC9C,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,UAAU,CAAC,SAAiB;QAC1B,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACtC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,QAAQ;QACZ,MAAM,OAAO,GAAG,qBAAqB,CAAC,oBAAoB,CAAC;YACzD,SAAS,EAAE,mCAAmC;SAC/C,CAAC,CAAC;QACH,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,6CAA6C,CAAC,CAAC;QACpE,aAAa,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACrC,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,4BAA4B,CAAC,CAAC;QAEpD,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC;QACtD,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,UAAU,CAAC,MAAM,mBAAmB,CAAC,CAAC;YACtE,MAAM,aAAa,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CACjD,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CACtC,CAAC;YACF,MAAM,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QACnC,CAAC;QAED,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;QACxB,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QACtB,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QACrB,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,mDAAmD,CAAC,CAAC;IAC5E,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,YAAY,CACxB,SAAiB,EACjB,OAAuB;QAEvB,MAAM,cAAc,GAAG;YACrB,GAAG,OAAO;YACV,SAAS;YACT,SAAS,EAAE,uCAAuC;SACnD,CAAC;QACF,MAAM,CAAC,KAAK,CAAC,cAAc,EAAE,oBAAoB,SAAS,EAAE,CAAC,CAAC;QAE9D,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAE7C,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO;QACT,CAAC;QAED,IAAI,OAAO,CAAC,KAAK,KAAK,YAAY,CAAC,OAAO,EAAE,CAAC;YAC3C,MAAM,CAAC,KAAK,CAAC,cAAc,EAAE,sCAAsC,CAAC,CAAC;YACrE,OAAO;QACT,CAAC;QAED,OAAO,CAAC,KAAK,GAAG,YAAY,CAAC,OAAO,CAAC;QACrC,MAAM,CAAC,KAAK,CAAC,cAAc,EAAE,mBAAmB,SAAS,cAAc,CAAC,CAAC;QAEzE,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACjD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAE3C,MAAM,YAAY,CAAC,QAAQ,CACzB,KAAK,IAAI,EAAE;YACT,IAAI,SAAS;gBAAE,MAAM,SAAS,CAAC,KAAK,EAAE,CAAC;YACvC,IAAI,MAAM;gBAAE,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;QACnC,CAAC,EACD,EAAE,SAAS,EAAE,sBAAsB,EAAE,OAAO,EAAE,cAAc,EAAE,CAC/D,CAAC;QAEF,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAClC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAC/B,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAEhC,MAAM,CAAC,IAAI,CACT,cAAc,EACd,8CAA8C,SAAS,EAAE,CAC1D,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,oBAAoB;QAChC,MAAM,OAAO,GAAG,qBAAqB,CAAC,oBAAoB,CAAC;YACzD,SAAS,EAAE,+CAA+C;SAC3D,CAAC,CAAC;QACH,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,kCAAkC,CAAC,CAAC;QAE1D,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,qBAAqB,CAAC;QAC5D,MAAM,eAAe,GAAa,EAAE,CAAC;QAErC,KAAK,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC;YAC3D,IAAI,GAAG,GAAG,OAAO,CAAC,cAAc,CAAC,OAAO,EAAE,GAAG,gBAAgB,EAAE,CAAC;gBAC9D,IAAI,OAAO,CAAC,cAAc,GAAG,CAAC,EAAE,CAAC;oBAC/B,MAAM,CAAC,IAAI,CACT,EAAE,GAAG,OAAO,EAAE,SAAS,EAAE,EACzB,WAAW,SAAS,qBAAqB,OAAO,CAAC,cAAc,qCAAqC,CACrG,CAAC;oBACF,SAAS;gBACX,CAAC;gBACD,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAClC,CAAC;QACH,CAAC;QAED,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/B,MAAM,CAAC,IAAI,CACT,OAAO,EACP,SAAS,eAAe,CAAC,MAAM,wCAAwC,CACxE,CAAC;YACF,MAAM,aAAa,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CACtD,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;gBAClD,MAAM,CAAC,KAAK,CACV,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,OAAO,EAAE,SAAS,EAAE,EACrC,qDAAqD,SAAS,EAAE,CACjE,CAAC;YACJ,CAAC,CAAC,CACH,CAAC;YACF,MAAM,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;YACjC,MAAM,CAAC,IAAI,CACT,OAAO,EACP,0CAA0C,eAAe,CAAC,MAAM,YAAY,CAC7E,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,0BAA0B,CAAC,CAAC;QACpD,CAAC;IACH,CAAC;CACF"}