@mcp-abap-adt/core 2.1.3 → 2.1.6
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.
- package/CHANGELOG.md +18 -0
- package/dist/bin/help.d.ts +6 -0
- package/dist/bin/help.d.ts.map +1 -0
- package/dist/bin/help.js +59 -0
- package/dist/bin/mcp-abap-adt-v2.d.ts +9 -0
- package/dist/bin/mcp-abap-adt-v2.d.ts.map +1 -0
- package/dist/bin/mcp-abap-adt-v2.js +247 -0
- package/dist/handlers/behavior_definition/readonly/handleGetBdef.d.ts +21 -0
- package/dist/handlers/behavior_definition/readonly/handleGetBdef.d.ts.map +1 -0
- package/dist/handlers/behavior_definition/readonly/handleGetBdef.js +24 -0
- package/dist/handlers/behavior_definition/readonly/handleGetBdef.js.map +1 -0
- package/dist/handlers/class/high/handleCreateLocalTestClass.d.ts.map +1 -1
- package/dist/handlers/class/high/handleCreateLocalTestClass.js +6 -1
- package/dist/handlers/class/high/handleCreateLocalTestClass.js.map +1 -1
- package/dist/handlers/class/high/handleGetUnitTest.d.ts +38 -0
- package/dist/handlers/class/high/handleGetUnitTest.d.ts.map +1 -0
- package/dist/handlers/class/high/handleGetUnitTest.js +73 -0
- package/dist/handlers/class/high/handleGetUnitTest.js.map +1 -0
- package/dist/handlers/class/high/handleRunUnitTest.d.ts +122 -0
- package/dist/handlers/class/high/handleRunUnitTest.d.ts.map +1 -0
- package/dist/handlers/class/high/handleRunUnitTest.js +133 -0
- package/dist/handlers/class/high/handleRunUnitTest.js.map +1 -0
- package/dist/handlers/class/readonly/handleGetClass.d.ts +23 -0
- package/dist/handlers/class/readonly/handleGetClass.d.ts.map +1 -0
- package/dist/handlers/class/readonly/handleGetClass.js +77 -0
- package/dist/handlers/class/readonly/handleGetClass.js.map +1 -0
- package/dist/handlers/data_element/readonly/handleGetDataElement.d.ts +23 -0
- package/dist/handlers/data_element/readonly/handleGetDataElement.d.ts.map +1 -0
- package/dist/handlers/data_element/readonly/handleGetDataElement.js +79 -0
- package/dist/handlers/data_element/readonly/handleGetDataElement.js.map +1 -0
- package/dist/handlers/domain/readonly/handleGetDomain.d.ts +23 -0
- package/dist/handlers/domain/readonly/handleGetDomain.d.ts.map +1 -0
- package/dist/handlers/domain/readonly/handleGetDomain.js +79 -0
- package/dist/handlers/domain/readonly/handleGetDomain.js.map +1 -0
- package/dist/handlers/enhancement/readonly/handleGetEnhancements.d.ts.map +1 -1
- package/dist/handlers/enhancement/readonly/handleGetEnhancements.js +7 -7
- package/dist/handlers/enhancement/readonly/handleGetEnhancements.js.map +1 -1
- package/dist/handlers/function/readonly/handleGetFunctionGroup.d.ts +23 -0
- package/dist/handlers/function/readonly/handleGetFunctionGroup.d.ts.map +1 -0
- package/dist/handlers/function/readonly/handleGetFunctionGroup.js +77 -0
- package/dist/handlers/function/readonly/handleGetFunctionGroup.js.map +1 -0
- package/dist/handlers/include/readonly/handleGetIncludesList.d.ts.map +1 -1
- package/dist/handlers/include/readonly/handleGetIncludesList.js +8 -5
- package/dist/handlers/include/readonly/handleGetIncludesList.js.map +1 -1
- package/dist/handlers/interface/readonly/handleGetInterface.d.ts +23 -0
- package/dist/handlers/interface/readonly/handleGetInterface.d.ts.map +1 -0
- package/dist/handlers/interface/readonly/handleGetInterface.js +77 -0
- package/dist/handlers/interface/readonly/handleGetInterface.js.map +1 -0
- package/dist/handlers/package/readonly/handleGetPackage.d.ts +22 -0
- package/dist/handlers/package/readonly/handleGetPackage.d.ts.map +1 -0
- package/dist/handlers/package/readonly/handleGetPackage.js +108 -0
- package/dist/handlers/package/readonly/handleGetPackage.js.map +1 -0
- package/dist/handlers/program/readonly/handleGetProgram.d.ts +23 -0
- package/dist/handlers/program/readonly/handleGetProgram.d.ts.map +1 -0
- package/dist/handlers/program/readonly/handleGetProgram.js +77 -0
- package/dist/handlers/program/readonly/handleGetProgram.js.map +1 -0
- package/dist/handlers/search/readonly/handleGetObjectsByType.d.ts.map +1 -1
- package/dist/handlers/search/readonly/handleGetObjectsByType.js +5 -1
- package/dist/handlers/search/readonly/handleGetObjectsByType.js.map +1 -1
- package/dist/handlers/search/readonly/handleGetObjectsList.d.ts.map +1 -1
- package/dist/handlers/search/readonly/handleGetObjectsList.js +8 -4
- package/dist/handlers/search/readonly/handleGetObjectsList.js.map +1 -1
- package/dist/handlers/service_definition/readonly/handleGetServiceDefinition.d.ts +18 -0
- package/dist/handlers/service_definition/readonly/handleGetServiceDefinition.d.ts.map +1 -0
- package/dist/handlers/service_definition/readonly/handleGetServiceDefinition.js +109 -0
- package/dist/handlers/service_definition/readonly/handleGetServiceDefinition.js.map +1 -0
- package/dist/handlers/structure/readonly/handleGetStructure.d.ts +23 -0
- package/dist/handlers/structure/readonly/handleGetStructure.d.ts.map +1 -0
- package/dist/handlers/structure/readonly/handleGetStructure.js +77 -0
- package/dist/handlers/structure/readonly/handleGetStructure.js.map +1 -0
- package/dist/handlers/system/readonly/handleGetObjectInfo.d.ts.map +1 -1
- package/dist/handlers/system/readonly/handleGetObjectInfo.js +8 -14
- package/dist/handlers/system/readonly/handleGetObjectInfo.js.map +1 -1
- package/dist/handlers/table/readonly/handleGetTable.d.ts +23 -0
- package/dist/handlers/table/readonly/handleGetTable.d.ts.map +1 -0
- package/dist/handlers/table/readonly/handleGetTable.js +77 -0
- package/dist/handlers/table/readonly/handleGetTable.js.map +1 -0
- package/dist/handlers/view/readonly/handleGetView.d.ts +33 -0
- package/dist/handlers/view/readonly/handleGetView.d.ts.map +1 -0
- package/dist/handlers/view/readonly/handleGetView.js +90 -0
- package/dist/handlers/view/readonly/handleGetView.js.map +1 -0
- package/dist/index.d.ts +126 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +2979 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/ServerConfigManager.d.ts +90 -0
- package/dist/lib/ServerConfigManager.d.ts.map +1 -0
- package/dist/lib/ServerConfigManager.js +237 -0
- package/dist/lib/ServerConfigManager.js.map +1 -0
- package/dist/lib/activationUtils.d.ts +59 -0
- package/dist/lib/activationUtils.d.ts.map +1 -0
- package/dist/lib/activationUtils.js +168 -0
- package/dist/lib/authBrokerFactory.d.ts +96 -0
- package/dist/lib/authBrokerFactory.d.ts.map +1 -0
- package/dist/lib/authBrokerFactory.js +531 -0
- package/dist/lib/authBrokerFactory.js.map +1 -0
- package/dist/lib/config/ServerConfig.d.ts +17 -0
- package/dist/lib/config/ServerConfig.d.ts.map +1 -0
- package/dist/lib/config/ServerConfig.js +7 -0
- package/dist/lib/config/ServerConfig.js.map +1 -0
- package/dist/lib/getFullCodeCache.d.ts +3 -0
- package/dist/lib/getFullCodeCache.d.ts.map +1 -0
- package/dist/lib/getFullCodeCache.js +56 -0
- package/dist/lib/handlers/handlers/base/BaseHandlerGroup.d.ts +36 -0
- package/dist/lib/handlers/handlers/base/BaseHandlerGroup.d.ts.map +1 -0
- package/dist/lib/handlers/handlers/base/BaseHandlerGroup.js +268 -0
- package/dist/lib/handlers/handlers/base/BaseHandlerGroup.js.map +1 -0
- package/dist/lib/handlers/handlers/examples/usage-example.d.ts +29 -0
- package/dist/lib/handlers/handlers/examples/usage-example.d.ts.map +1 -0
- package/dist/lib/handlers/handlers/examples/usage-example.js +119 -0
- package/dist/lib/handlers/handlers/examples/usage-example.js.map +1 -0
- package/dist/lib/handlers/handlers/groups/HighLevelHandlersGroup.d.ts +14 -0
- package/dist/lib/handlers/handlers/groups/HighLevelHandlersGroup.d.ts.map +1 -0
- package/dist/lib/handlers/handlers/groups/HighLevelHandlersGroup.js +322 -0
- package/dist/lib/handlers/handlers/groups/HighLevelHandlersGroup.js.map +1 -0
- package/dist/lib/handlers/handlers/groups/LowLevelHandlersGroup.d.ts +14 -0
- package/dist/lib/handlers/handlers/groups/LowLevelHandlersGroup.d.ts.map +1 -0
- package/dist/lib/handlers/handlers/groups/LowLevelHandlersGroup.js +1214 -0
- package/dist/lib/handlers/handlers/groups/LowLevelHandlersGroup.js.map +1 -0
- package/dist/lib/handlers/handlers/groups/ReadOnlyHandlersGroup.d.ts +14 -0
- package/dist/lib/handlers/handlers/groups/ReadOnlyHandlersGroup.d.ts.map +1 -0
- package/dist/lib/handlers/handlers/groups/ReadOnlyHandlersGroup.js +232 -0
- package/dist/lib/handlers/handlers/groups/ReadOnlyHandlersGroup.js.map +1 -0
- package/dist/lib/handlers/handlers/groups/SearchHandlersGroup.d.ts +14 -0
- package/dist/lib/handlers/handlers/groups/SearchHandlersGroup.d.ts.map +1 -0
- package/dist/lib/handlers/handlers/groups/SearchHandlersGroup.js +57 -0
- package/dist/lib/handlers/handlers/groups/SearchHandlersGroup.js.map +1 -0
- package/dist/lib/handlers/handlers/groups/SystemHandlersGroup.d.ts +14 -0
- package/dist/lib/handlers/handlers/groups/SystemHandlersGroup.d.ts.map +1 -0
- package/dist/lib/handlers/handlers/groups/SystemHandlersGroup.js +176 -0
- package/dist/lib/handlers/handlers/groups/SystemHandlersGroup.js.map +1 -0
- package/dist/lib/handlers/handlers/groups/index.d.ts +13 -0
- package/dist/lib/handlers/handlers/groups/index.d.ts.map +1 -0
- package/dist/lib/handlers/handlers/groups/index.js +21 -0
- package/dist/lib/handlers/handlers/groups/index.js.map +1 -0
- package/dist/lib/handlers/handlers/index.d.ts +14 -0
- package/dist/lib/handlers/handlers/index.d.ts.map +1 -0
- package/dist/lib/handlers/handlers/index.js +37 -0
- package/dist/lib/handlers/handlers/index.js.map +1 -0
- package/dist/lib/handlers/handlers/interfaces.d.ts +67 -0
- package/dist/lib/handlers/handlers/interfaces.d.ts.map +1 -0
- package/dist/lib/handlers/handlers/interfaces.js +3 -0
- package/dist/lib/handlers/handlers/interfaces.js.map +1 -0
- package/dist/lib/handlers/handlers/registry/CompositeHandlersRegistry.d.ts +49 -0
- package/dist/lib/handlers/handlers/registry/CompositeHandlersRegistry.d.ts.map +1 -0
- package/dist/lib/handlers/handlers/registry/CompositeHandlersRegistry.js +88 -0
- package/dist/lib/handlers/handlers/registry/CompositeHandlersRegistry.js.map +1 -0
- package/dist/lib/runtimeConfig.d.ts +20 -0
- package/dist/lib/runtimeConfig.d.ts.map +1 -0
- package/dist/lib/runtimeConfig.js +130 -0
- package/dist/lib/runtimeConfig.js.map +1 -0
- package/dist/lib/servers/BaseMcpServer.d.ts +56 -0
- package/dist/lib/servers/BaseMcpServer.d.ts.map +1 -0
- package/dist/lib/servers/BaseMcpServer.js +198 -0
- package/dist/lib/servers/BaseMcpServer.js.map +1 -0
- package/dist/lib/servers/ConnectionContext.d.ts +20 -0
- package/dist/lib/servers/ConnectionContext.d.ts.map +1 -0
- package/dist/lib/servers/ConnectionContext.js +3 -0
- package/dist/lib/servers/ConnectionContext.js.map +1 -0
- package/dist/lib/servers/SseServer.d.ts +32 -0
- package/dist/lib/servers/SseServer.d.ts.map +1 -0
- package/dist/lib/servers/SseServer.js +139 -0
- package/dist/lib/servers/SseServer.js.map +1 -0
- package/dist/lib/servers/StdioServer.d.ts +20 -0
- package/dist/lib/servers/StdioServer.d.ts.map +1 -0
- package/dist/lib/servers/StdioServer.js +32 -0
- package/dist/lib/servers/StdioServer.js.map +1 -0
- package/dist/lib/servers/StreamableHttpServer.d.ts +30 -0
- package/dist/lib/servers/StreamableHttpServer.d.ts.map +1 -0
- package/dist/lib/servers/StreamableHttpServer.js +83 -0
- package/dist/lib/servers/StreamableHttpServer.js.map +1 -0
- package/dist/lib/servers/handlers/base/BaseHandlerGroup.d.ts +36 -0
- package/dist/lib/servers/handlers/base/BaseHandlerGroup.d.ts.map +1 -0
- package/dist/lib/servers/handlers/base/BaseHandlerGroup.js +268 -0
- package/dist/lib/servers/handlers/base/BaseHandlerGroup.js.map +1 -0
- package/dist/lib/servers/handlers/examples/usage-example.d.ts +29 -0
- package/dist/lib/servers/handlers/examples/usage-example.d.ts.map +1 -0
- package/dist/lib/servers/handlers/examples/usage-example.js +119 -0
- package/dist/lib/servers/handlers/examples/usage-example.js.map +1 -0
- package/dist/lib/servers/handlers/groups/HighLevelHandlersGroup.d.ts +14 -0
- package/dist/lib/servers/handlers/groups/HighLevelHandlersGroup.d.ts.map +1 -0
- package/dist/lib/servers/handlers/groups/HighLevelHandlersGroup.js +322 -0
- package/dist/lib/servers/handlers/groups/HighLevelHandlersGroup.js.map +1 -0
- package/dist/lib/servers/handlers/groups/LowLevelHandlersGroup.d.ts +14 -0
- package/dist/lib/servers/handlers/groups/LowLevelHandlersGroup.d.ts.map +1 -0
- package/dist/lib/servers/handlers/groups/LowLevelHandlersGroup.js +1214 -0
- package/dist/lib/servers/handlers/groups/LowLevelHandlersGroup.js.map +1 -0
- package/dist/lib/servers/handlers/groups/ReadOnlyHandlersGroup.d.ts +14 -0
- package/dist/lib/servers/handlers/groups/ReadOnlyHandlersGroup.d.ts.map +1 -0
- package/dist/lib/servers/handlers/groups/ReadOnlyHandlersGroup.js +232 -0
- package/dist/lib/servers/handlers/groups/ReadOnlyHandlersGroup.js.map +1 -0
- package/dist/lib/servers/handlers/groups/SearchHandlersGroup.d.ts +14 -0
- package/dist/lib/servers/handlers/groups/SearchHandlersGroup.d.ts.map +1 -0
- package/dist/lib/servers/handlers/groups/SearchHandlersGroup.js +57 -0
- package/dist/lib/servers/handlers/groups/SearchHandlersGroup.js.map +1 -0
- package/dist/lib/servers/handlers/groups/SystemHandlersGroup.d.ts +14 -0
- package/dist/lib/servers/handlers/groups/SystemHandlersGroup.d.ts.map +1 -0
- package/dist/lib/servers/handlers/groups/SystemHandlersGroup.js +176 -0
- package/dist/lib/servers/handlers/groups/SystemHandlersGroup.js.map +1 -0
- package/dist/lib/servers/handlers/groups/index.d.ts +13 -0
- package/dist/lib/servers/handlers/groups/index.d.ts.map +1 -0
- package/dist/lib/servers/handlers/groups/index.js +21 -0
- package/dist/lib/servers/handlers/groups/index.js.map +1 -0
- package/dist/lib/servers/handlers/index.d.ts +14 -0
- package/dist/lib/servers/handlers/index.d.ts.map +1 -0
- package/dist/lib/servers/handlers/index.js +37 -0
- package/dist/lib/servers/handlers/index.js.map +1 -0
- package/dist/lib/servers/handlers/interfaces.d.ts +67 -0
- package/dist/lib/servers/handlers/interfaces.d.ts.map +1 -0
- package/dist/lib/servers/handlers/interfaces.js +3 -0
- package/dist/lib/servers/handlers/interfaces.js.map +1 -0
- package/dist/lib/servers/handlers/registry/CompositeHandlersRegistry.d.ts +49 -0
- package/dist/lib/servers/handlers/registry/CompositeHandlersRegistry.d.ts.map +1 -0
- package/dist/lib/servers/handlers/registry/CompositeHandlersRegistry.js +88 -0
- package/dist/lib/servers/handlers/registry/CompositeHandlersRegistry.js.map +1 -0
- package/dist/lib/servers/index.d.ts +5 -0
- package/dist/lib/servers/index.d.ts.map +1 -0
- package/dist/lib/servers/index.js +21 -0
- package/dist/lib/servers/index.js.map +1 -0
- package/dist/lib/servers/launcher.d.ts +2 -0
- package/dist/lib/servers/launcher.d.ts.map +1 -0
- package/dist/lib/servers/launcher.js +123 -0
- package/dist/lib/servers/launcher.js.map +1 -0
- package/dist/lib/servers/mcp_handlers.d.ts +25 -0
- package/dist/lib/servers/mcp_handlers.d.ts.map +1 -0
- package/dist/lib/servers/mcp_handlers.js +822 -0
- package/dist/lib/servers/mcp_handlers.js.map +1 -0
- package/dist/lib/servers/mcp_server.d.ts +7 -0
- package/dist/lib/servers/mcp_server.d.ts.map +1 -0
- package/dist/lib/servers/mcp_server.js +12 -0
- package/dist/lib/servers/utils.d.ts +42 -0
- package/dist/lib/servers/utils.d.ts.map +1 -0
- package/dist/lib/servers/utils.js +620 -0
- package/dist/lib/servers/utils.js.map +1 -0
- package/dist/lib/servers/v2/__tests__/unit/McpServer.test.d.ts +7 -0
- package/dist/lib/servers/v2/__tests__/unit/McpServer.test.d.ts.map +1 -0
- package/dist/lib/servers/v2/__tests__/unit/McpServer.test.js +218 -0
- package/dist/lib/servers/v2/connection/LocalConnectionProvider.d.ts +20 -0
- package/dist/lib/servers/v2/connection/LocalConnectionProvider.d.ts.map +1 -0
- package/dist/lib/servers/v2/connection/LocalConnectionProvider.js +70 -0
- package/dist/lib/servers/v2/connection/RemoteConnectionProvider.d.ts +21 -0
- package/dist/lib/servers/v2/connection/RemoteConnectionProvider.d.ts.map +1 -0
- package/dist/lib/servers/v2/connection/RemoteConnectionProvider.js +36 -0
- package/dist/lib/servers/v2/connection/index.d.ts +6 -0
- package/dist/lib/servers/v2/connection/index.d.ts.map +1 -0
- package/dist/lib/servers/v2/connection/index.js +10 -0
- package/dist/lib/servers/v2/factory/AuthBrokerFactory.d.ts +29 -0
- package/dist/lib/servers/v2/factory/AuthBrokerFactory.d.ts.map +1 -0
- package/dist/lib/servers/v2/factory/AuthBrokerFactory.js +79 -0
- package/dist/lib/servers/v2/factory/LocalModeFactory.d.ts +38 -0
- package/dist/lib/servers/v2/factory/LocalModeFactory.d.ts.map +1 -0
- package/dist/lib/servers/v2/factory/LocalModeFactory.js +38 -0
- package/dist/lib/servers/v2/factory/index.d.ts +6 -0
- package/dist/lib/servers/v2/factory/index.d.ts.map +1 -0
- package/dist/lib/servers/v2/factory/index.js +10 -0
- package/dist/lib/servers/v2/index.d.ts +9 -0
- package/dist/lib/servers/v2/index.d.ts.map +1 -0
- package/dist/lib/servers/v2/index.js +27 -0
- package/dist/lib/servers/v2/index.js.map +1 -0
- package/dist/lib/servers/v2/interfaces/connection.d.ts +188 -0
- package/dist/lib/servers/v2/interfaces/connection.d.ts.map +1 -0
- package/dist/lib/servers/v2/interfaces/connection.js +7 -0
- package/dist/lib/servers/v2/interfaces/index.d.ts +10 -0
- package/dist/lib/servers/v2/interfaces/index.d.ts.map +1 -0
- package/dist/lib/servers/v2/interfaces/index.js +25 -0
- package/dist/lib/servers/v2/interfaces/protocol.d.ts +30 -0
- package/dist/lib/servers/v2/interfaces/protocol.d.ts.map +1 -0
- package/dist/lib/servers/v2/interfaces/protocol.js +7 -0
- package/dist/lib/servers/v2/interfaces/session.d.ts +98 -0
- package/dist/lib/servers/v2/interfaces/session.d.ts.map +1 -0
- package/dist/lib/servers/v2/interfaces/session.js +7 -0
- package/dist/lib/servers/v2/interfaces/transport.d.ts +88 -0
- package/dist/lib/servers/v2/interfaces/transport.d.ts.map +1 -0
- package/dist/lib/servers/v2/interfaces/transport.js +7 -0
- package/dist/lib/servers/v2/protocol/ProtocolHandler.d.ts +21 -0
- package/dist/lib/servers/v2/protocol/ProtocolHandler.d.ts.map +1 -0
- package/dist/lib/servers/v2/protocol/ProtocolHandler.js +77 -0
- package/dist/lib/servers/v2/protocol/index.d.ts +5 -0
- package/dist/lib/servers/v2/protocol/index.d.ts.map +1 -0
- package/dist/lib/servers/v2/protocol/index.js +8 -0
- package/dist/lib/servers/v2/server/McpServer.d.ts +76 -0
- package/dist/lib/servers/v2/server/McpServer.d.ts.map +1 -0
- package/dist/lib/servers/v2/server/McpServer.js +243 -0
- package/dist/lib/servers/v2/server/index.d.ts +5 -0
- package/dist/lib/servers/v2/server/index.d.ts.map +1 -0
- package/dist/lib/servers/v2/server/index.js +8 -0
- package/dist/lib/servers/v2/session/SessionManager.d.ts +40 -0
- package/dist/lib/servers/v2/session/SessionManager.d.ts.map +1 -0
- package/dist/lib/servers/v2/session/SessionManager.js +136 -0
- package/dist/lib/servers/v2/session/index.d.ts +5 -0
- package/dist/lib/servers/v2/session/index.d.ts.map +1 -0
- package/dist/lib/servers/v2/session/index.js +8 -0
- package/dist/lib/servers/v2/transports/SseTransport.d.ts +49 -0
- package/dist/lib/servers/v2/transports/SseTransport.d.ts.map +1 -0
- package/dist/lib/servers/v2/transports/SseTransport.js +89 -0
- package/dist/lib/servers/v2/transports/StdioTransport.d.ts +31 -0
- package/dist/lib/servers/v2/transports/StdioTransport.d.ts.map +1 -0
- package/dist/lib/servers/v2/transports/StdioTransport.js +91 -0
- package/dist/lib/servers/v2/transports/StreamableHttpTransport.d.ts +51 -0
- package/dist/lib/servers/v2/transports/StreamableHttpTransport.d.ts.map +1 -0
- package/dist/lib/servers/v2/transports/StreamableHttpTransport.js +147 -0
- package/dist/lib/servers/v2/transports/index.d.ts +7 -0
- package/dist/lib/servers/v2/transports/index.d.ts.map +1 -0
- package/dist/lib/servers/v2/transports/index.js +12 -0
- package/dist/lib/servers/v2/types/common.d.ts +17 -0
- package/dist/lib/servers/v2/types/common.d.ts.map +1 -0
- package/dist/lib/servers/v2/types/common.js +6 -0
- package/dist/lib/servers/v2/types/common.js.map +1 -0
- package/dist/lib/servers/v2/types/index.d.ts +8 -0
- package/dist/lib/servers/v2/types/index.d.ts.map +1 -0
- package/dist/lib/servers/v2/types/index.js +24 -0
- package/dist/lib/servers/v2/types/index.js.map +1 -0
- package/dist/lib/servers/v2/types/transport.d.ts +28 -0
- package/dist/lib/servers/v2/types/transport.d.ts.map +1 -0
- package/dist/lib/servers/v2/types/transport.js +8 -0
- package/dist/lib/servers/v2/types/transport.js.map +1 -0
- package/dist/lib/servers/v2/utils/StdioLogger.d.ts +17 -0
- package/dist/lib/servers/v2/utils/StdioLogger.d.ts.map +1 -0
- package/dist/lib/servers/v2/utils/StdioLogger.js +33 -0
- package/dist/lib/servers/v2/utils/StdioLogger.js.map +1 -0
- package/dist/lib/stores/UnixFileServiceKeyStore.d.ts +42 -0
- package/dist/lib/stores/UnixFileServiceKeyStore.d.ts.map +1 -0
- package/dist/lib/stores/UnixFileServiceKeyStore.js +53 -0
- package/dist/lib/stores/UnixFileSessionStore.d.ts +54 -0
- package/dist/lib/stores/UnixFileSessionStore.d.ts.map +1 -0
- package/dist/lib/stores/UnixFileSessionStore.js +70 -0
- package/dist/lib/stores/WindowsFileServiceKeyStore.d.ts +42 -0
- package/dist/lib/stores/WindowsFileServiceKeyStore.d.ts.map +1 -0
- package/dist/lib/stores/WindowsFileServiceKeyStore.js +53 -0
- package/dist/lib/stores/WindowsFileSessionStore.d.ts +54 -0
- package/dist/lib/stores/WindowsFileSessionStore.d.ts.map +1 -0
- package/dist/lib/stores/WindowsFileSessionStore.js +70 -0
- package/dist/lib/toolsRegistry.d.ts +13 -0
- package/dist/lib/toolsRegistry.d.ts.map +1 -0
- package/dist/lib/toolsRegistry.js +410 -0
- package/dist/lib/transportConfig.d.ts +27 -0
- package/dist/lib/transportConfig.d.ts.map +1 -0
- package/dist/lib/transportConfig.js +124 -0
- package/dist/lib/transports/stdio.d.ts +10 -0
- package/dist/lib/transports/stdio.d.ts.map +1 -0
- package/dist/lib/transports/stdio.js +73 -0
- package/dist/lib/utils.d.ts +37 -0
- package/dist/lib/utils.d.ts.map +1 -1
- package/dist/lib/utils.js +83 -0
- package/dist/lib/utils.js.map +1 -1
- package/dist/lib/yamlConfig.d.ts +59 -0
- package/dist/lib/yamlConfig.d.ts.map +1 -0
- package/dist/lib/yamlConfig.js +349 -0
- package/dist/lib/yamlConfig.js.map +1 -0
- package/dist/server/launcher.js +49 -0
- package/dist/server/launcher.js.map +1 -1
- package/dist/server/v1/AuthBrokerConfig.d.ts +19 -0
- package/dist/server/v1/AuthBrokerConfig.d.ts.map +1 -0
- package/dist/server/v1/AuthBrokerConfig.js +44 -0
- package/dist/server/v1/AuthBrokerConfig.js.map +1 -0
- package/dist/server/v1/IServerConfig.d.ts +17 -0
- package/dist/server/v1/IServerConfig.d.ts.map +1 -0
- package/dist/server/v1/IServerConfig.js +7 -0
- package/dist/server/v1/IServerConfig.js.map +1 -0
- package/dist/server/v1/ServerConfig.d.ts +16 -0
- package/dist/server/v1/ServerConfig.d.ts.map +1 -0
- package/dist/server/v1/ServerConfig.js +6 -0
- package/dist/server/v1/ServerConfig.js.map +1 -0
- package/dist/server/v1/embeddable-server.d.ts +89 -0
- package/dist/server/v1/embeddable-server.d.ts.map +1 -0
- package/dist/server/v1/embeddable-server.js +83 -0
- package/dist/server/v1/embeddable-server.js.map +1 -0
- package/dist/server/v1/index.d.ts +30 -0
- package/dist/server/v1/index.d.ts.map +1 -0
- package/dist/server/v1/index.js +65 -0
- package/dist/server/v1/index.js.map +1 -0
- package/dist/server/v1/legacy-server.d.ts +141 -0
- package/dist/server/v1/legacy-server.d.ts.map +1 -0
- package/dist/server/v1/legacy-server.js +2099 -0
- package/dist/server/v1/legacy-server.js.map +1 -0
- package/dist/server/v1/mcp_handlers.d.ts +19 -0
- package/dist/server/v1/mcp_handlers.d.ts.map +1 -0
- package/dist/server/v1/mcp_handlers.js +85 -0
- package/dist/server/v1/mcp_handlers.js.map +1 -0
- package/dist/server/v2/AuthBrokerConfig.d.ts +22 -0
- package/dist/server/v2/AuthBrokerConfig.d.ts.map +1 -0
- package/dist/server/v2/AuthBrokerConfig.js +46 -0
- package/dist/server/v2/AuthBrokerConfig.js.map +1 -0
- package/dist/server/v2/BaseMcpServer.d.ts +67 -0
- package/dist/server/v2/BaseMcpServer.d.ts.map +1 -0
- package/dist/server/v2/BaseMcpServer.js +273 -0
- package/dist/server/v2/BaseMcpServer.js.map +1 -0
- package/dist/server/v2/ConnectionContext.d.ts +20 -0
- package/dist/server/v2/ConnectionContext.d.ts.map +1 -0
- package/dist/server/v2/ConnectionContext.js +3 -0
- package/dist/server/v2/ConnectionContext.js.map +1 -0
- package/dist/server/v2/IHttpApplication.d.ts +42 -0
- package/dist/server/v2/IHttpApplication.d.ts.map +1 -0
- package/dist/server/v2/IHttpApplication.js +3 -0
- package/dist/server/v2/IHttpApplication.js.map +1 -0
- package/dist/server/v2/IServerConfig.d.ts +15 -0
- package/dist/server/v2/IServerConfig.d.ts.map +1 -0
- package/dist/server/v2/IServerConfig.js +7 -0
- package/dist/server/v2/IServerConfig.js.map +1 -0
- package/dist/server/v2/ServerConfig.d.ts +16 -0
- package/dist/server/v2/ServerConfig.d.ts.map +1 -0
- package/dist/server/v2/ServerConfig.js +6 -0
- package/dist/server/v2/ServerConfig.js.map +1 -0
- package/dist/server/v2/SseServer.d.ts +95 -0
- package/dist/server/v2/SseServer.d.ts.map +1 -0
- package/dist/server/v2/SseServer.js +217 -0
- package/dist/server/v2/SseServer.js.map +1 -0
- package/dist/server/v2/StdioServer.d.ts +20 -0
- package/dist/server/v2/StdioServer.d.ts.map +1 -0
- package/dist/server/v2/StdioServer.js +32 -0
- package/dist/server/v2/StdioServer.js.map +1 -0
- package/dist/server/v2/StreamableHttpServer.d.ts +94 -0
- package/dist/server/v2/StreamableHttpServer.d.ts.map +1 -0
- package/dist/server/v2/StreamableHttpServer.js +170 -0
- package/dist/server/v2/StreamableHttpServer.js.map +1 -0
- package/dist/server/v2/index.d.ts +6 -0
- package/dist/server/v2/index.d.ts.map +1 -0
- package/dist/server/v2/index.js +22 -0
- package/dist/server/v2/index.js.map +1 -0
- package/dist/server/v2/launcher.d.ts +2 -0
- package/dist/server/v2/launcher.d.ts.map +1 -0
- package/dist/server/v2/launcher.js +181 -0
- package/dist/server/v2/launcher.js.map +1 -0
- package/dist/server/v2/mcp_handlers.d.ts +25 -0
- package/dist/server/v2/mcp_handlers.d.ts.map +1 -0
- package/dist/server/v2/mcp_handlers.js +828 -0
- package/dist/server/v2/mcp_handlers.js.map +1 -0
- package/dist/server/v2/utils.d.ts +42 -0
- package/dist/server/v2/utils.d.ts.map +1 -0
- package/dist/server/v2/utils.js +620 -0
- package/dist/server/v2/utils.js.map +1 -0
- package/dist/tools/test-v2-server-stdio-compiled.js +132 -0
- package/dist/utils/lockStateManager.d.ts +2 -12
- package/dist/utils/lockStateManager.d.ts.map +1 -1
- package/dist/utils/lockStateManager.js +4 -63
- package/dist/utils/lockStateManager.js.map +1 -1
- package/docs/user-guide/AVAILABLE_TOOLS.md +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* McpServer v2 implementation
|
|
3
|
+
*
|
|
4
|
+
* Main server class with Dependency Injection
|
|
5
|
+
* Orchestrates transport, session management, connection providers, and handlers
|
|
6
|
+
*/
|
|
7
|
+
import { McpServer as SdkMcpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
8
|
+
import { Transport } from '@modelcontextprotocol/sdk/shared/transport.js';
|
|
9
|
+
import { ISessionManager } from '../interfaces/session.js';
|
|
10
|
+
import { IConnectionProvider } from '../interfaces/connection.js';
|
|
11
|
+
import { IProtocolHandler } from '../interfaces/protocol.js';
|
|
12
|
+
import { IHandlersRegistry } from '../../handlers/interfaces.js';
|
|
13
|
+
/**
|
|
14
|
+
* Logger interface (optional dependency)
|
|
15
|
+
*/
|
|
16
|
+
export interface ILogger {
|
|
17
|
+
info(message: string, ...args: any[]): void;
|
|
18
|
+
error(message: string, ...args: any[]): void;
|
|
19
|
+
warn(message: string, ...args: any[]): void;
|
|
20
|
+
debug(message: string, ...args: any[]): void;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* McpServer - main server orchestrator with Dependency Injection
|
|
24
|
+
*
|
|
25
|
+
* Coordinates all components: transport, sessions, connections, and handlers
|
|
26
|
+
*/
|
|
27
|
+
export declare class McpServer {
|
|
28
|
+
private transport;
|
|
29
|
+
private sessionManager;
|
|
30
|
+
private connectionProvider;
|
|
31
|
+
private protocolHandler;
|
|
32
|
+
private handlersRegistry;
|
|
33
|
+
private mcpServer;
|
|
34
|
+
private logger?;
|
|
35
|
+
private isStarted;
|
|
36
|
+
private defaultDestination?;
|
|
37
|
+
constructor(transport: Transport, sessionManager: ISessionManager, connectionProvider: IConnectionProvider, protocolHandler: IProtocolHandler, handlersRegistry: IHandlersRegistry, mcpServer: SdkMcpServer, logger?: ILogger | undefined, defaultDestination?: string);
|
|
38
|
+
/**
|
|
39
|
+
* Starts the server
|
|
40
|
+
*/
|
|
41
|
+
start(): Promise<void>;
|
|
42
|
+
/**
|
|
43
|
+
* Stops the server
|
|
44
|
+
*/
|
|
45
|
+
stop(): Promise<void>;
|
|
46
|
+
/**
|
|
47
|
+
* Validates configuration consistency
|
|
48
|
+
* Ensures transport bind address matches connection provider mode
|
|
49
|
+
*/
|
|
50
|
+
validateConfiguration(): void;
|
|
51
|
+
/**
|
|
52
|
+
* Sets up transport event handlers
|
|
53
|
+
*/
|
|
54
|
+
private setupTransportHandlers;
|
|
55
|
+
/**
|
|
56
|
+
* Sets up session manager event handlers
|
|
57
|
+
*/
|
|
58
|
+
private setupSessionHandlers;
|
|
59
|
+
/**
|
|
60
|
+
* Gets the SDK MCP server instance (for direct access if needed)
|
|
61
|
+
*/
|
|
62
|
+
getSdkServer(): SdkMcpServer;
|
|
63
|
+
/**
|
|
64
|
+
* Gets the transport instance (for direct access if needed)
|
|
65
|
+
*/
|
|
66
|
+
getTransport(): Transport;
|
|
67
|
+
/**
|
|
68
|
+
* Gets the session manager instance (for direct access if needed)
|
|
69
|
+
*/
|
|
70
|
+
getSessionManager(): ISessionManager;
|
|
71
|
+
/**
|
|
72
|
+
* Gets the connection provider instance (for direct access if needed)
|
|
73
|
+
*/
|
|
74
|
+
getConnectionProvider(): IConnectionProvider;
|
|
75
|
+
}
|
|
76
|
+
//# sourceMappingURL=McpServer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"McpServer.d.ts","sourceRoot":"","sources":["../../../../../src/lib/servers/v2/server/McpServer.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,SAAS,IAAI,YAAY,EAAE,MAAM,yCAAyC,CAAC;AACpF,OAAO,EAAE,SAAS,EAAwB,MAAM,+CAA+C,CAAC;AAChG,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAIjE;;GAEG;AACH,MAAM,WAAW,OAAO;IACtB,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IAC5C,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IAC7C,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IAC5C,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;CAC9C;AAED;;;;GAIG;AACH,qBAAa,SAAS;IAKlB,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,kBAAkB;IAC1B,OAAO,CAAC,eAAe;IACvB,OAAO,CAAC,gBAAgB;IACxB,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,MAAM,CAAC;IAVjB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,kBAAkB,CAAC,CAAS;gBAG1B,SAAS,EAAE,SAAS,EACpB,cAAc,EAAE,eAAe,EAC/B,kBAAkB,EAAE,mBAAmB,EACvC,eAAe,EAAE,gBAAgB,EACjC,gBAAgB,EAAE,iBAAiB,EACnC,SAAS,EAAE,YAAY,EACvB,MAAM,CAAC,EAAE,OAAO,YAAA,EACxB,kBAAkB,CAAC,EAAE,MAAM;IAa7B;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IA8D5B;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAoB3B;;;OAGG;IACH,qBAAqB,IAAI,IAAI;IAmB7B;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAqF9B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAc5B;;OAEG;IACH,YAAY,IAAI,YAAY;IAI5B;;OAEG;IACH,YAAY,IAAI,SAAS;IAIzB;;OAEG;IACH,iBAAiB,IAAI,eAAe;IAIpC;;OAEG;IACH,qBAAqB,IAAI,mBAAmB;CAG7C"}
|
|
@@ -0,0 +1,243 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* McpServer v2 implementation
|
|
4
|
+
*
|
|
5
|
+
* Main server class with Dependency Injection
|
|
6
|
+
* Orchestrates transport, session management, connection providers, and handlers
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.McpServer = void 0;
|
|
10
|
+
const utils_js_1 = require("../../../utils.js");
|
|
11
|
+
/**
|
|
12
|
+
* McpServer - main server orchestrator with Dependency Injection
|
|
13
|
+
*
|
|
14
|
+
* Coordinates all components: transport, sessions, connections, and handlers
|
|
15
|
+
*/
|
|
16
|
+
class McpServer {
|
|
17
|
+
transport;
|
|
18
|
+
sessionManager;
|
|
19
|
+
connectionProvider;
|
|
20
|
+
protocolHandler;
|
|
21
|
+
handlersRegistry;
|
|
22
|
+
mcpServer;
|
|
23
|
+
logger;
|
|
24
|
+
isStarted = false;
|
|
25
|
+
defaultDestination;
|
|
26
|
+
constructor(transport, sessionManager, connectionProvider, protocolHandler, handlersRegistry, mcpServer, logger, defaultDestination) {
|
|
27
|
+
this.transport = transport;
|
|
28
|
+
this.sessionManager = sessionManager;
|
|
29
|
+
this.connectionProvider = connectionProvider;
|
|
30
|
+
this.protocolHandler = protocolHandler;
|
|
31
|
+
this.handlersRegistry = handlersRegistry;
|
|
32
|
+
this.mcpServer = mcpServer;
|
|
33
|
+
this.logger = logger;
|
|
34
|
+
this.defaultDestination = defaultDestination;
|
|
35
|
+
// Initialize protocol handler with registry and session manager
|
|
36
|
+
this.protocolHandler.initialize(this.handlersRegistry, this.mcpServer, this.sessionManager);
|
|
37
|
+
// Setup transport event handlers
|
|
38
|
+
this.setupTransportHandlers();
|
|
39
|
+
// Setup session manager event handlers
|
|
40
|
+
this.setupSessionHandlers();
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Starts the server
|
|
44
|
+
*/
|
|
45
|
+
async start() {
|
|
46
|
+
if (this.isStarted) {
|
|
47
|
+
throw new Error('Server is already started');
|
|
48
|
+
}
|
|
49
|
+
this.logger?.info('Starting MCP Server v2...');
|
|
50
|
+
// Start transport
|
|
51
|
+
await this.transport.start();
|
|
52
|
+
// Connect SDK server to transport
|
|
53
|
+
// Transport implementation decides how to connect and when to initialize sessions
|
|
54
|
+
await this.transport.connectSdkServer(this.mcpServer, async (sessionId, clientInfo, destination) => {
|
|
55
|
+
// Create session
|
|
56
|
+
const session = this.sessionManager.createSession(clientInfo);
|
|
57
|
+
// Get connection parameters
|
|
58
|
+
const connectionParams = await this.connectionProvider.getConnectionParams({
|
|
59
|
+
sessionId: session.clientSessionId,
|
|
60
|
+
destination: destination || this.defaultDestination,
|
|
61
|
+
headers: clientInfo.headers,
|
|
62
|
+
});
|
|
63
|
+
// Update session with connection parameters
|
|
64
|
+
if ('updateConnectionParams' in this.sessionManager && typeof this.sessionManager.updateConnectionParams === 'function') {
|
|
65
|
+
this.sessionManager.updateConnectionParams(session.clientSessionId, connectionParams);
|
|
66
|
+
}
|
|
67
|
+
// Set session context for handlers to access connection params
|
|
68
|
+
// Convert IConnectionParams to SapConfig for sessionContext
|
|
69
|
+
const sapConfig = {
|
|
70
|
+
url: connectionParams.sapUrl,
|
|
71
|
+
authType: connectionParams.auth.type,
|
|
72
|
+
...(connectionParams.auth.type === 'jwt' && connectionParams.auth.jwtToken
|
|
73
|
+
? { jwtToken: connectionParams.auth.jwtToken }
|
|
74
|
+
: connectionParams.auth.type === 'basic' && connectionParams.auth.username && connectionParams.auth.password
|
|
75
|
+
? { username: connectionParams.auth.username, password: connectionParams.auth.password }
|
|
76
|
+
: {}),
|
|
77
|
+
...(connectionParams.client ? { client: connectionParams.client } : {}),
|
|
78
|
+
};
|
|
79
|
+
// Set session context (used by handlers via sessionContext.getStore())
|
|
80
|
+
utils_js_1.sessionContext.enterWith({
|
|
81
|
+
sessionId: session.clientSessionId,
|
|
82
|
+
sapConfig,
|
|
83
|
+
destination: destination || this.defaultDestination,
|
|
84
|
+
});
|
|
85
|
+
// Also set overrideConfig in lib/utils for backward compatibility
|
|
86
|
+
// This allows handlers to get connection params via getManagedConnection()
|
|
87
|
+
const { setConfigOverride } = require('../../../utils.js');
|
|
88
|
+
setConfigOverride(sapConfig);
|
|
89
|
+
}, this.defaultDestination);
|
|
90
|
+
this.isStarted = true;
|
|
91
|
+
this.logger?.info('MCP Server v2 started successfully');
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Stops the server
|
|
95
|
+
*/
|
|
96
|
+
async stop() {
|
|
97
|
+
if (!this.isStarted) {
|
|
98
|
+
return;
|
|
99
|
+
}
|
|
100
|
+
this.logger?.info('Stopping MCP Server v2...');
|
|
101
|
+
// Stop transport
|
|
102
|
+
await this.transport.stop();
|
|
103
|
+
// Clear all sessions
|
|
104
|
+
// Note: SessionManager.clearAll() will be called if available
|
|
105
|
+
if ('clearAll' in this.sessionManager && typeof this.sessionManager.clearAll === 'function') {
|
|
106
|
+
this.sessionManager.clearAll();
|
|
107
|
+
}
|
|
108
|
+
this.isStarted = false;
|
|
109
|
+
this.logger?.info('MCP Server v2 stopped');
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Validates configuration consistency
|
|
113
|
+
* Ensures transport bind address matches connection provider mode
|
|
114
|
+
*/
|
|
115
|
+
validateConfiguration() {
|
|
116
|
+
const isLocalTransport = this.transport.bindAddress === '127.0.0.1' || this.transport.bindAddress === 'localhost';
|
|
117
|
+
const isRemoteTransport = this.transport.bindAddress === '0.0.0.0';
|
|
118
|
+
if (isLocalTransport && this.connectionProvider.mode !== 'LOCAL') {
|
|
119
|
+
throw new Error(`Configuration mismatch: Transport bind address ${this.transport.bindAddress} (LOCAL) ` +
|
|
120
|
+
`does not match ConnectionProvider mode ${this.connectionProvider.mode}`);
|
|
121
|
+
}
|
|
122
|
+
if (isRemoteTransport && this.connectionProvider.mode !== 'REMOTE') {
|
|
123
|
+
throw new Error(`Configuration mismatch: Transport bind address ${this.transport.bindAddress} (REMOTE) ` +
|
|
124
|
+
`does not match ConnectionProvider mode ${this.connectionProvider.mode}`);
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Sets up transport event handlers
|
|
129
|
+
*/
|
|
130
|
+
setupTransportHandlers() {
|
|
131
|
+
// Handle new session creation
|
|
132
|
+
// Note: For stdio, session is created in start() method
|
|
133
|
+
// This handler is only for SSE/HTTP transports
|
|
134
|
+
if (this.transport.type !== 'stdio') {
|
|
135
|
+
this.transport.on('session:created', async (sessionId, clientInfo) => {
|
|
136
|
+
this.logger?.debug(`Session created: ${sessionId}`, clientInfo);
|
|
137
|
+
// Create session in session manager
|
|
138
|
+
const session = this.sessionManager.createSession(clientInfo);
|
|
139
|
+
// Get connection parameters from connection provider
|
|
140
|
+
try {
|
|
141
|
+
// For LOCAL mode, destination must be provided (from --mcp argument)
|
|
142
|
+
// For REMOTE mode, destination comes from headers
|
|
143
|
+
const destination = this.defaultDestination || clientInfo.headers?.['x-mcp-destination'];
|
|
144
|
+
if (!destination && this.connectionProvider.mode === 'LOCAL') {
|
|
145
|
+
throw new Error('Destination required for LOCAL mode. Provide --mcp=destination argument or x-mcp-destination header.');
|
|
146
|
+
}
|
|
147
|
+
const connectionParams = await this.connectionProvider.getConnectionParams({
|
|
148
|
+
sessionId: session.clientSessionId,
|
|
149
|
+
destination: destination,
|
|
150
|
+
headers: clientInfo.headers,
|
|
151
|
+
});
|
|
152
|
+
// Update session with connection parameters
|
|
153
|
+
if ('updateConnectionParams' in this.sessionManager && typeof this.sessionManager.updateConnectionParams === 'function') {
|
|
154
|
+
this.sessionManager.updateConnectionParams(session.clientSessionId, connectionParams);
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
catch (error) {
|
|
158
|
+
this.logger?.error(`Failed to get connection params for session ${sessionId}:`, error);
|
|
159
|
+
}
|
|
160
|
+
});
|
|
161
|
+
}
|
|
162
|
+
// Handle session closure
|
|
163
|
+
// Note: For stdio, session closure is handled by SDK transport
|
|
164
|
+
if (this.transport.type !== 'stdio') {
|
|
165
|
+
this.transport.on('session:closed', (sessionId) => {
|
|
166
|
+
this.logger?.debug(`Session closed: ${sessionId}`);
|
|
167
|
+
this.sessionManager.deleteSession(sessionId);
|
|
168
|
+
});
|
|
169
|
+
}
|
|
170
|
+
// Handle incoming messages
|
|
171
|
+
// Note: For stdio, SDK transport handles messages automatically
|
|
172
|
+
// This handler is only for SSE/HTTP transports
|
|
173
|
+
if (this.transport.type !== 'stdio') {
|
|
174
|
+
this.transport.on('message', async (sessionId, message) => {
|
|
175
|
+
this.logger?.debug(`Message received for session ${sessionId}:`, message);
|
|
176
|
+
try {
|
|
177
|
+
// Get session
|
|
178
|
+
const session = this.sessionManager.getSession(sessionId);
|
|
179
|
+
if (!session) {
|
|
180
|
+
throw new Error(`Session not found: ${sessionId}`);
|
|
181
|
+
}
|
|
182
|
+
// Handle request through protocol handler
|
|
183
|
+
const response = await this.protocolHandler.handleRequest(sessionId, message);
|
|
184
|
+
// Send response back through transport (use SDK send() directly)
|
|
185
|
+
await this.transport.send(response);
|
|
186
|
+
}
|
|
187
|
+
catch (error) {
|
|
188
|
+
this.logger?.error(`Error processing message for session ${sessionId}:`, error);
|
|
189
|
+
// Send error response
|
|
190
|
+
const errorResponse = {
|
|
191
|
+
jsonrpc: '2.0',
|
|
192
|
+
id: message.id,
|
|
193
|
+
error: {
|
|
194
|
+
code: -32603,
|
|
195
|
+
message: 'Internal error',
|
|
196
|
+
data: error instanceof Error ? error.message : String(error),
|
|
197
|
+
},
|
|
198
|
+
};
|
|
199
|
+
await this.transport.send(errorResponse);
|
|
200
|
+
}
|
|
201
|
+
});
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
/**
|
|
205
|
+
* Sets up session manager event handlers
|
|
206
|
+
*/
|
|
207
|
+
setupSessionHandlers() {
|
|
208
|
+
this.sessionManager.on('created', (session) => {
|
|
209
|
+
this.logger?.debug(`Session created in manager: ${session.clientSessionId}`);
|
|
210
|
+
});
|
|
211
|
+
this.sessionManager.on('closed', (session) => {
|
|
212
|
+
this.logger?.debug(`Session closed in manager: ${session.clientSessionId}`);
|
|
213
|
+
});
|
|
214
|
+
this.sessionManager.on('abapSessionSet', (session) => {
|
|
215
|
+
this.logger?.debug(`ABAP session set for: ${session.clientSessionId}`);
|
|
216
|
+
});
|
|
217
|
+
}
|
|
218
|
+
/**
|
|
219
|
+
* Gets the SDK MCP server instance (for direct access if needed)
|
|
220
|
+
*/
|
|
221
|
+
getSdkServer() {
|
|
222
|
+
return this.mcpServer;
|
|
223
|
+
}
|
|
224
|
+
/**
|
|
225
|
+
* Gets the transport instance (for direct access if needed)
|
|
226
|
+
*/
|
|
227
|
+
getTransport() {
|
|
228
|
+
return this.transport;
|
|
229
|
+
}
|
|
230
|
+
/**
|
|
231
|
+
* Gets the session manager instance (for direct access if needed)
|
|
232
|
+
*/
|
|
233
|
+
getSessionManager() {
|
|
234
|
+
return this.sessionManager;
|
|
235
|
+
}
|
|
236
|
+
/**
|
|
237
|
+
* Gets the connection provider instance (for direct access if needed)
|
|
238
|
+
*/
|
|
239
|
+
getConnectionProvider() {
|
|
240
|
+
return this.connectionProvider;
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
exports.McpServer = McpServer;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/lib/servers/v2/server/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,KAAK,OAAO,EAAE,MAAM,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Server implementations exports
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.McpServer = void 0;
|
|
7
|
+
var McpServer_js_1 = require("./McpServer.js");
|
|
8
|
+
Object.defineProperty(exports, "McpServer", { enumerable: true, get: function () { return McpServer_js_1.McpServer; } });
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SessionManager implementation
|
|
3
|
+
*
|
|
4
|
+
* Manages sessions that contain connection parameters to ABAP environment
|
|
5
|
+
*/
|
|
6
|
+
import { ISessionManager, ISession } from '../interfaces/session.js';
|
|
7
|
+
import { IConnectionParams } from '../interfaces/connection.js';
|
|
8
|
+
import { IClientInfo } from '../interfaces/transport.js';
|
|
9
|
+
/**
|
|
10
|
+
* SessionManager - manages client sessions with ABAP connection parameters
|
|
11
|
+
*/
|
|
12
|
+
export declare class SessionManager implements ISessionManager {
|
|
13
|
+
private sessions;
|
|
14
|
+
private eventHandlers;
|
|
15
|
+
createSession(clientInfo: IClientInfo): ISession;
|
|
16
|
+
getSession(clientSessionId: string): ISession | undefined;
|
|
17
|
+
deleteSession(clientSessionId: string): void;
|
|
18
|
+
setAbapSession(clientSessionId: string, sapCookies: string[]): void;
|
|
19
|
+
clearAbapSession(clientSessionId: string): void;
|
|
20
|
+
on(event: 'created', handler: (session: ISession) => void): void;
|
|
21
|
+
on(event: 'closed', handler: (session: ISession) => void): void;
|
|
22
|
+
on(event: 'abapSessionSet', handler: (session: ISession) => void): void;
|
|
23
|
+
private emit;
|
|
24
|
+
/**
|
|
25
|
+
* Updates connection parameters for a session
|
|
26
|
+
* @param clientSessionId - Client session ID
|
|
27
|
+
* @param connectionParams - Connection parameters
|
|
28
|
+
*/
|
|
29
|
+
updateConnectionParams(clientSessionId: string, connectionParams: IConnectionParams): void;
|
|
30
|
+
/**
|
|
31
|
+
* Gets all active sessions
|
|
32
|
+
* @returns Array of active sessions
|
|
33
|
+
*/
|
|
34
|
+
getAllSessions(): ISession[];
|
|
35
|
+
/**
|
|
36
|
+
* Clears all sessions
|
|
37
|
+
*/
|
|
38
|
+
clearAll(): void;
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=SessionManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SessionManager.d.ts","sourceRoot":"","sources":["../../../../../src/lib/servers/v2/session/SessionManager.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EACL,eAAe,EACf,QAAQ,EACT,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAEzD;;GAEG;AACH,qBAAa,cAAe,YAAW,eAAe;IACpD,OAAO,CAAC,QAAQ,CAAoC;IACpD,OAAO,CAAC,aAAa,CAQnB;IAEF,aAAa,CAAC,UAAU,EAAE,WAAW,GAAG,QAAQ;IA6BhD,UAAU,CAAC,eAAe,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS;IAQzD,aAAa,CAAC,eAAe,EAAE,MAAM,GAAG,IAAI;IAQ5C,cAAc,CAAC,eAAe,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,IAAI;IAoCnE,gBAAgB,CAAC,eAAe,EAAE,MAAM,GAAG,IAAI;IAO/C,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,OAAO,EAAE,QAAQ,KAAK,IAAI,GAAG,IAAI;IAChE,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,OAAO,EAAE,QAAQ,KAAK,IAAI,GAAG,IAAI;IAC/D,EAAE,CAAC,KAAK,EAAE,gBAAgB,EAAE,OAAO,EAAE,CAAC,OAAO,EAAE,QAAQ,KAAK,IAAI,GAAG,IAAI;IAOvE,OAAO,CAAC,IAAI;IAWZ;;;;OAIG;IACH,sBAAsB,CAAC,eAAe,EAAE,MAAM,EAAE,gBAAgB,EAAE,iBAAiB,GAAG,IAAI;IAU1F;;;OAGG;IACH,cAAc,IAAI,QAAQ,EAAE;IAI5B;;OAEG;IACH,QAAQ,IAAI,IAAI;CAMjB"}
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* SessionManager implementation
|
|
4
|
+
*
|
|
5
|
+
* Manages sessions that contain connection parameters to ABAP environment
|
|
6
|
+
*/
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.SessionManager = void 0;
|
|
9
|
+
const crypto_1 = require("crypto");
|
|
10
|
+
/**
|
|
11
|
+
* SessionManager - manages client sessions with ABAP connection parameters
|
|
12
|
+
*/
|
|
13
|
+
class SessionManager {
|
|
14
|
+
sessions = new Map();
|
|
15
|
+
eventHandlers = {
|
|
16
|
+
created: [],
|
|
17
|
+
closed: [],
|
|
18
|
+
abapSessionSet: [],
|
|
19
|
+
};
|
|
20
|
+
createSession(clientInfo) {
|
|
21
|
+
const clientSessionId = (0, crypto_1.randomUUID)();
|
|
22
|
+
const now = new Date();
|
|
23
|
+
const session = {
|
|
24
|
+
clientSessionId,
|
|
25
|
+
createdAt: now,
|
|
26
|
+
lastActivity: now,
|
|
27
|
+
connectionParams: {
|
|
28
|
+
// ConnectionParams will be set later by ConnectionProvider
|
|
29
|
+
sapUrl: '',
|
|
30
|
+
auth: {
|
|
31
|
+
type: 'jwt',
|
|
32
|
+
},
|
|
33
|
+
},
|
|
34
|
+
metadata: {
|
|
35
|
+
transport: clientInfo.transport,
|
|
36
|
+
clientIP: clientInfo.ip,
|
|
37
|
+
requestCount: 0,
|
|
38
|
+
errorCount: 0,
|
|
39
|
+
},
|
|
40
|
+
};
|
|
41
|
+
this.sessions.set(clientSessionId, session);
|
|
42
|
+
this.emit('created', session);
|
|
43
|
+
return session;
|
|
44
|
+
}
|
|
45
|
+
getSession(clientSessionId) {
|
|
46
|
+
const session = this.sessions.get(clientSessionId);
|
|
47
|
+
if (session) {
|
|
48
|
+
session.lastActivity = new Date();
|
|
49
|
+
}
|
|
50
|
+
return session;
|
|
51
|
+
}
|
|
52
|
+
deleteSession(clientSessionId) {
|
|
53
|
+
const session = this.sessions.get(clientSessionId);
|
|
54
|
+
if (session) {
|
|
55
|
+
this.sessions.delete(clientSessionId);
|
|
56
|
+
this.emit('closed', session);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
setAbapSession(clientSessionId, sapCookies) {
|
|
60
|
+
const session = this.sessions.get(clientSessionId);
|
|
61
|
+
if (!session) {
|
|
62
|
+
throw new Error(`Session not found: ${clientSessionId}`);
|
|
63
|
+
}
|
|
64
|
+
// Extract SAP_SESSIONID from cookies
|
|
65
|
+
let abapSessionId = '';
|
|
66
|
+
let securityToken;
|
|
67
|
+
for (const cookie of sapCookies) {
|
|
68
|
+
const match = cookie.match(/SAP_SESSIONID=([^;]+)/);
|
|
69
|
+
if (match) {
|
|
70
|
+
abapSessionId = match[1];
|
|
71
|
+
}
|
|
72
|
+
// Extract X-CSRF-Token if present
|
|
73
|
+
const csrfMatch = cookie.match(/X-CSRF-Token=([^;]+)/);
|
|
74
|
+
if (csrfMatch) {
|
|
75
|
+
securityToken = csrfMatch[1];
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
if (!abapSessionId) {
|
|
79
|
+
throw new Error('SAP_SESSIONID not found in cookies');
|
|
80
|
+
}
|
|
81
|
+
session.abapSession = {
|
|
82
|
+
abapSessionId,
|
|
83
|
+
cookies: sapCookies,
|
|
84
|
+
securityToken,
|
|
85
|
+
};
|
|
86
|
+
this.emit('abapSessionSet', session);
|
|
87
|
+
}
|
|
88
|
+
clearAbapSession(clientSessionId) {
|
|
89
|
+
const session = this.sessions.get(clientSessionId);
|
|
90
|
+
if (session) {
|
|
91
|
+
delete session.abapSession;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
on(event, handler) {
|
|
95
|
+
if (event === 'created' || event === 'closed' || event === 'abapSessionSet') {
|
|
96
|
+
this.eventHandlers[event].push(handler);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
emit(event, session) {
|
|
100
|
+
if (event === 'created' || event === 'closed' || event === 'abapSessionSet') {
|
|
101
|
+
this.eventHandlers[event].forEach((handler) => {
|
|
102
|
+
handler(session);
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Updates connection parameters for a session
|
|
108
|
+
* @param clientSessionId - Client session ID
|
|
109
|
+
* @param connectionParams - Connection parameters
|
|
110
|
+
*/
|
|
111
|
+
updateConnectionParams(clientSessionId, connectionParams) {
|
|
112
|
+
const session = this.sessions.get(clientSessionId);
|
|
113
|
+
if (!session) {
|
|
114
|
+
throw new Error(`Session not found: ${clientSessionId}`);
|
|
115
|
+
}
|
|
116
|
+
session.connectionParams = connectionParams;
|
|
117
|
+
session.lastActivity = new Date();
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Gets all active sessions
|
|
121
|
+
* @returns Array of active sessions
|
|
122
|
+
*/
|
|
123
|
+
getAllSessions() {
|
|
124
|
+
return Array.from(this.sessions.values());
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Clears all sessions
|
|
128
|
+
*/
|
|
129
|
+
clearAll() {
|
|
130
|
+
for (const session of this.sessions.values()) {
|
|
131
|
+
this.emit('closed', session);
|
|
132
|
+
}
|
|
133
|
+
this.sessions.clear();
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
exports.SessionManager = SessionManager;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/lib/servers/v2/session/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Session management implementations exports
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.SessionManager = void 0;
|
|
7
|
+
var SessionManager_js_1 = require("./SessionManager.js");
|
|
8
|
+
Object.defineProperty(exports, "SessionManager", { enumerable: true, get: function () { return SessionManager_js_1.SessionManager; } });
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SseTransport implementation
|
|
3
|
+
*
|
|
4
|
+
* Note: SSEServerTransport is deprecated in MCP SDK.
|
|
5
|
+
* Consider using StreamableHttpTransport instead, which supports SSE.
|
|
6
|
+
*
|
|
7
|
+
* This implementation wraps SSEServerTransport for backward compatibility.
|
|
8
|
+
* SSEServerTransport requires endpoint and ServerResponse per request,
|
|
9
|
+
* so this is a placeholder that will need HTTP server integration.
|
|
10
|
+
*/
|
|
11
|
+
import { SSEServerTransport } from '@modelcontextprotocol/sdk/server/sse.js';
|
|
12
|
+
import { JSONRPCMessage } from '@modelcontextprotocol/sdk/types.js';
|
|
13
|
+
import { IClientInfo, SessionInitializationCallback } from '../types/transport.js';
|
|
14
|
+
export interface SseTransportOptions {
|
|
15
|
+
port: number;
|
|
16
|
+
host: string;
|
|
17
|
+
endpoint?: string;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* SseTransport - Server-Sent Events transport (deprecated)
|
|
21
|
+
*
|
|
22
|
+
* Note: SSEServerTransport is deprecated. Use StreamableHttpTransport instead.
|
|
23
|
+
* This implementation is a placeholder and requires HTTP server integration.
|
|
24
|
+
*/
|
|
25
|
+
export declare class SseTransport extends SSEServerTransport {
|
|
26
|
+
readonly type: "sse";
|
|
27
|
+
readonly bindAddress: string;
|
|
28
|
+
readonly port: number;
|
|
29
|
+
private endpoint;
|
|
30
|
+
private eventHandlers;
|
|
31
|
+
private httpServer?;
|
|
32
|
+
constructor(options: SseTransportOptions);
|
|
33
|
+
start(): Promise<void>;
|
|
34
|
+
close(): Promise<void>;
|
|
35
|
+
on(event: 'session:created', handler: (sessionId: string, clientInfo: IClientInfo) => void): void;
|
|
36
|
+
on(event: 'session:closed', handler: (sessionId: string) => void): void;
|
|
37
|
+
on(event: 'message', handler: (sessionId: string, message: JSONRPCMessage) => void): void;
|
|
38
|
+
send(message: JSONRPCMessage, options?: any): Promise<void>;
|
|
39
|
+
connectSdkServer(_sdkServer: any, _initializeSession: SessionInitializationCallback, _defaultDestination?: string): Promise<void>;
|
|
40
|
+
handleRequest(req: any, res: any): Promise<void>;
|
|
41
|
+
sendMessage(sessionId: string, message: JSONRPCMessage): Promise<void>;
|
|
42
|
+
/**
|
|
43
|
+
* Creates SSEServerTransport for a specific request
|
|
44
|
+
* @param res - ServerResponse for the request
|
|
45
|
+
* @returns SSEServerTransport instance
|
|
46
|
+
*/
|
|
47
|
+
createTransportForRequest(res: any): SSEServerTransport;
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=SseTransport.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SseTransport.d.ts","sourceRoot":"","sources":["../../../../../src/lib/servers/v2/transports/SseTransport.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AAC7E,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACpE,OAAO,EAAE,WAAW,EAAE,6BAA6B,EAAE,MAAM,uBAAuB,CAAC;AAEnF,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;;GAKG;AACH,qBAAa,YAAa,SAAQ,kBAAkB;IAClD,QAAQ,CAAC,IAAI,EAAG,KAAK,CAAU;IAC/B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,aAAa,CAQnB;IAIF,OAAO,CAAC,UAAU,CAAC,CAAc;gBAErB,OAAO,EAAE,mBAAmB;IAKlC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAStB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAS5B,EAAE,CAAC,KAAK,EAAE,iBAAiB,EAAE,OAAO,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,WAAW,KAAK,IAAI,GAAG,IAAI;IACjG,EAAE,CAAC,KAAK,EAAE,gBAAgB,EAAE,OAAO,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI;IACvE,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,KAAK,IAAI,GAAG,IAAI;IAQnF,IAAI,CAAC,OAAO,EAAE,cAAc,EAAE,OAAO,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAM3D,gBAAgB,CACpB,UAAU,EAAE,GAAG,EACf,kBAAkB,EAAE,6BAA6B,EACjD,mBAAmB,CAAC,EAAE,MAAM,GAC3B,OAAO,CAAC,IAAI,CAAC;IAKV,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAKhD,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAK5E;;;;OAIG;IACH,yBAAyB,CAAC,GAAG,EAAE,GAAG,GAAG,kBAAkB;CAGxD"}
|