@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.
Files changed (438) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/dist/bin/help.d.ts +6 -0
  3. package/dist/bin/help.d.ts.map +1 -0
  4. package/dist/bin/help.js +59 -0
  5. package/dist/bin/mcp-abap-adt-v2.d.ts +9 -0
  6. package/dist/bin/mcp-abap-adt-v2.d.ts.map +1 -0
  7. package/dist/bin/mcp-abap-adt-v2.js +247 -0
  8. package/dist/handlers/behavior_definition/readonly/handleGetBdef.d.ts +21 -0
  9. package/dist/handlers/behavior_definition/readonly/handleGetBdef.d.ts.map +1 -0
  10. package/dist/handlers/behavior_definition/readonly/handleGetBdef.js +24 -0
  11. package/dist/handlers/behavior_definition/readonly/handleGetBdef.js.map +1 -0
  12. package/dist/handlers/class/high/handleCreateLocalTestClass.d.ts.map +1 -1
  13. package/dist/handlers/class/high/handleCreateLocalTestClass.js +6 -1
  14. package/dist/handlers/class/high/handleCreateLocalTestClass.js.map +1 -1
  15. package/dist/handlers/class/high/handleGetUnitTest.d.ts +38 -0
  16. package/dist/handlers/class/high/handleGetUnitTest.d.ts.map +1 -0
  17. package/dist/handlers/class/high/handleGetUnitTest.js +73 -0
  18. package/dist/handlers/class/high/handleGetUnitTest.js.map +1 -0
  19. package/dist/handlers/class/high/handleRunUnitTest.d.ts +122 -0
  20. package/dist/handlers/class/high/handleRunUnitTest.d.ts.map +1 -0
  21. package/dist/handlers/class/high/handleRunUnitTest.js +133 -0
  22. package/dist/handlers/class/high/handleRunUnitTest.js.map +1 -0
  23. package/dist/handlers/class/readonly/handleGetClass.d.ts +23 -0
  24. package/dist/handlers/class/readonly/handleGetClass.d.ts.map +1 -0
  25. package/dist/handlers/class/readonly/handleGetClass.js +77 -0
  26. package/dist/handlers/class/readonly/handleGetClass.js.map +1 -0
  27. package/dist/handlers/data_element/readonly/handleGetDataElement.d.ts +23 -0
  28. package/dist/handlers/data_element/readonly/handleGetDataElement.d.ts.map +1 -0
  29. package/dist/handlers/data_element/readonly/handleGetDataElement.js +79 -0
  30. package/dist/handlers/data_element/readonly/handleGetDataElement.js.map +1 -0
  31. package/dist/handlers/domain/readonly/handleGetDomain.d.ts +23 -0
  32. package/dist/handlers/domain/readonly/handleGetDomain.d.ts.map +1 -0
  33. package/dist/handlers/domain/readonly/handleGetDomain.js +79 -0
  34. package/dist/handlers/domain/readonly/handleGetDomain.js.map +1 -0
  35. package/dist/handlers/enhancement/readonly/handleGetEnhancements.d.ts.map +1 -1
  36. package/dist/handlers/enhancement/readonly/handleGetEnhancements.js +7 -7
  37. package/dist/handlers/enhancement/readonly/handleGetEnhancements.js.map +1 -1
  38. package/dist/handlers/function/readonly/handleGetFunctionGroup.d.ts +23 -0
  39. package/dist/handlers/function/readonly/handleGetFunctionGroup.d.ts.map +1 -0
  40. package/dist/handlers/function/readonly/handleGetFunctionGroup.js +77 -0
  41. package/dist/handlers/function/readonly/handleGetFunctionGroup.js.map +1 -0
  42. package/dist/handlers/include/readonly/handleGetIncludesList.d.ts.map +1 -1
  43. package/dist/handlers/include/readonly/handleGetIncludesList.js +8 -5
  44. package/dist/handlers/include/readonly/handleGetIncludesList.js.map +1 -1
  45. package/dist/handlers/interface/readonly/handleGetInterface.d.ts +23 -0
  46. package/dist/handlers/interface/readonly/handleGetInterface.d.ts.map +1 -0
  47. package/dist/handlers/interface/readonly/handleGetInterface.js +77 -0
  48. package/dist/handlers/interface/readonly/handleGetInterface.js.map +1 -0
  49. package/dist/handlers/package/readonly/handleGetPackage.d.ts +22 -0
  50. package/dist/handlers/package/readonly/handleGetPackage.d.ts.map +1 -0
  51. package/dist/handlers/package/readonly/handleGetPackage.js +108 -0
  52. package/dist/handlers/package/readonly/handleGetPackage.js.map +1 -0
  53. package/dist/handlers/program/readonly/handleGetProgram.d.ts +23 -0
  54. package/dist/handlers/program/readonly/handleGetProgram.d.ts.map +1 -0
  55. package/dist/handlers/program/readonly/handleGetProgram.js +77 -0
  56. package/dist/handlers/program/readonly/handleGetProgram.js.map +1 -0
  57. package/dist/handlers/search/readonly/handleGetObjectsByType.d.ts.map +1 -1
  58. package/dist/handlers/search/readonly/handleGetObjectsByType.js +5 -1
  59. package/dist/handlers/search/readonly/handleGetObjectsByType.js.map +1 -1
  60. package/dist/handlers/search/readonly/handleGetObjectsList.d.ts.map +1 -1
  61. package/dist/handlers/search/readonly/handleGetObjectsList.js +8 -4
  62. package/dist/handlers/search/readonly/handleGetObjectsList.js.map +1 -1
  63. package/dist/handlers/service_definition/readonly/handleGetServiceDefinition.d.ts +18 -0
  64. package/dist/handlers/service_definition/readonly/handleGetServiceDefinition.d.ts.map +1 -0
  65. package/dist/handlers/service_definition/readonly/handleGetServiceDefinition.js +109 -0
  66. package/dist/handlers/service_definition/readonly/handleGetServiceDefinition.js.map +1 -0
  67. package/dist/handlers/structure/readonly/handleGetStructure.d.ts +23 -0
  68. package/dist/handlers/structure/readonly/handleGetStructure.d.ts.map +1 -0
  69. package/dist/handlers/structure/readonly/handleGetStructure.js +77 -0
  70. package/dist/handlers/structure/readonly/handleGetStructure.js.map +1 -0
  71. package/dist/handlers/system/readonly/handleGetObjectInfo.d.ts.map +1 -1
  72. package/dist/handlers/system/readonly/handleGetObjectInfo.js +8 -14
  73. package/dist/handlers/system/readonly/handleGetObjectInfo.js.map +1 -1
  74. package/dist/handlers/table/readonly/handleGetTable.d.ts +23 -0
  75. package/dist/handlers/table/readonly/handleGetTable.d.ts.map +1 -0
  76. package/dist/handlers/table/readonly/handleGetTable.js +77 -0
  77. package/dist/handlers/table/readonly/handleGetTable.js.map +1 -0
  78. package/dist/handlers/view/readonly/handleGetView.d.ts +33 -0
  79. package/dist/handlers/view/readonly/handleGetView.d.ts.map +1 -0
  80. package/dist/handlers/view/readonly/handleGetView.js +90 -0
  81. package/dist/handlers/view/readonly/handleGetView.js.map +1 -0
  82. package/dist/index.d.ts +126 -0
  83. package/dist/index.d.ts.map +1 -0
  84. package/dist/index.js +2979 -0
  85. package/dist/index.js.map +1 -0
  86. package/dist/lib/ServerConfigManager.d.ts +90 -0
  87. package/dist/lib/ServerConfigManager.d.ts.map +1 -0
  88. package/dist/lib/ServerConfigManager.js +237 -0
  89. package/dist/lib/ServerConfigManager.js.map +1 -0
  90. package/dist/lib/activationUtils.d.ts +59 -0
  91. package/dist/lib/activationUtils.d.ts.map +1 -0
  92. package/dist/lib/activationUtils.js +168 -0
  93. package/dist/lib/authBrokerFactory.d.ts +96 -0
  94. package/dist/lib/authBrokerFactory.d.ts.map +1 -0
  95. package/dist/lib/authBrokerFactory.js +531 -0
  96. package/dist/lib/authBrokerFactory.js.map +1 -0
  97. package/dist/lib/config/ServerConfig.d.ts +17 -0
  98. package/dist/lib/config/ServerConfig.d.ts.map +1 -0
  99. package/dist/lib/config/ServerConfig.js +7 -0
  100. package/dist/lib/config/ServerConfig.js.map +1 -0
  101. package/dist/lib/getFullCodeCache.d.ts +3 -0
  102. package/dist/lib/getFullCodeCache.d.ts.map +1 -0
  103. package/dist/lib/getFullCodeCache.js +56 -0
  104. package/dist/lib/handlers/handlers/base/BaseHandlerGroup.d.ts +36 -0
  105. package/dist/lib/handlers/handlers/base/BaseHandlerGroup.d.ts.map +1 -0
  106. package/dist/lib/handlers/handlers/base/BaseHandlerGroup.js +268 -0
  107. package/dist/lib/handlers/handlers/base/BaseHandlerGroup.js.map +1 -0
  108. package/dist/lib/handlers/handlers/examples/usage-example.d.ts +29 -0
  109. package/dist/lib/handlers/handlers/examples/usage-example.d.ts.map +1 -0
  110. package/dist/lib/handlers/handlers/examples/usage-example.js +119 -0
  111. package/dist/lib/handlers/handlers/examples/usage-example.js.map +1 -0
  112. package/dist/lib/handlers/handlers/groups/HighLevelHandlersGroup.d.ts +14 -0
  113. package/dist/lib/handlers/handlers/groups/HighLevelHandlersGroup.d.ts.map +1 -0
  114. package/dist/lib/handlers/handlers/groups/HighLevelHandlersGroup.js +322 -0
  115. package/dist/lib/handlers/handlers/groups/HighLevelHandlersGroup.js.map +1 -0
  116. package/dist/lib/handlers/handlers/groups/LowLevelHandlersGroup.d.ts +14 -0
  117. package/dist/lib/handlers/handlers/groups/LowLevelHandlersGroup.d.ts.map +1 -0
  118. package/dist/lib/handlers/handlers/groups/LowLevelHandlersGroup.js +1214 -0
  119. package/dist/lib/handlers/handlers/groups/LowLevelHandlersGroup.js.map +1 -0
  120. package/dist/lib/handlers/handlers/groups/ReadOnlyHandlersGroup.d.ts +14 -0
  121. package/dist/lib/handlers/handlers/groups/ReadOnlyHandlersGroup.d.ts.map +1 -0
  122. package/dist/lib/handlers/handlers/groups/ReadOnlyHandlersGroup.js +232 -0
  123. package/dist/lib/handlers/handlers/groups/ReadOnlyHandlersGroup.js.map +1 -0
  124. package/dist/lib/handlers/handlers/groups/SearchHandlersGroup.d.ts +14 -0
  125. package/dist/lib/handlers/handlers/groups/SearchHandlersGroup.d.ts.map +1 -0
  126. package/dist/lib/handlers/handlers/groups/SearchHandlersGroup.js +57 -0
  127. package/dist/lib/handlers/handlers/groups/SearchHandlersGroup.js.map +1 -0
  128. package/dist/lib/handlers/handlers/groups/SystemHandlersGroup.d.ts +14 -0
  129. package/dist/lib/handlers/handlers/groups/SystemHandlersGroup.d.ts.map +1 -0
  130. package/dist/lib/handlers/handlers/groups/SystemHandlersGroup.js +176 -0
  131. package/dist/lib/handlers/handlers/groups/SystemHandlersGroup.js.map +1 -0
  132. package/dist/lib/handlers/handlers/groups/index.d.ts +13 -0
  133. package/dist/lib/handlers/handlers/groups/index.d.ts.map +1 -0
  134. package/dist/lib/handlers/handlers/groups/index.js +21 -0
  135. package/dist/lib/handlers/handlers/groups/index.js.map +1 -0
  136. package/dist/lib/handlers/handlers/index.d.ts +14 -0
  137. package/dist/lib/handlers/handlers/index.d.ts.map +1 -0
  138. package/dist/lib/handlers/handlers/index.js +37 -0
  139. package/dist/lib/handlers/handlers/index.js.map +1 -0
  140. package/dist/lib/handlers/handlers/interfaces.d.ts +67 -0
  141. package/dist/lib/handlers/handlers/interfaces.d.ts.map +1 -0
  142. package/dist/lib/handlers/handlers/interfaces.js +3 -0
  143. package/dist/lib/handlers/handlers/interfaces.js.map +1 -0
  144. package/dist/lib/handlers/handlers/registry/CompositeHandlersRegistry.d.ts +49 -0
  145. package/dist/lib/handlers/handlers/registry/CompositeHandlersRegistry.d.ts.map +1 -0
  146. package/dist/lib/handlers/handlers/registry/CompositeHandlersRegistry.js +88 -0
  147. package/dist/lib/handlers/handlers/registry/CompositeHandlersRegistry.js.map +1 -0
  148. package/dist/lib/runtimeConfig.d.ts +20 -0
  149. package/dist/lib/runtimeConfig.d.ts.map +1 -0
  150. package/dist/lib/runtimeConfig.js +130 -0
  151. package/dist/lib/runtimeConfig.js.map +1 -0
  152. package/dist/lib/servers/BaseMcpServer.d.ts +56 -0
  153. package/dist/lib/servers/BaseMcpServer.d.ts.map +1 -0
  154. package/dist/lib/servers/BaseMcpServer.js +198 -0
  155. package/dist/lib/servers/BaseMcpServer.js.map +1 -0
  156. package/dist/lib/servers/ConnectionContext.d.ts +20 -0
  157. package/dist/lib/servers/ConnectionContext.d.ts.map +1 -0
  158. package/dist/lib/servers/ConnectionContext.js +3 -0
  159. package/dist/lib/servers/ConnectionContext.js.map +1 -0
  160. package/dist/lib/servers/SseServer.d.ts +32 -0
  161. package/dist/lib/servers/SseServer.d.ts.map +1 -0
  162. package/dist/lib/servers/SseServer.js +139 -0
  163. package/dist/lib/servers/SseServer.js.map +1 -0
  164. package/dist/lib/servers/StdioServer.d.ts +20 -0
  165. package/dist/lib/servers/StdioServer.d.ts.map +1 -0
  166. package/dist/lib/servers/StdioServer.js +32 -0
  167. package/dist/lib/servers/StdioServer.js.map +1 -0
  168. package/dist/lib/servers/StreamableHttpServer.d.ts +30 -0
  169. package/dist/lib/servers/StreamableHttpServer.d.ts.map +1 -0
  170. package/dist/lib/servers/StreamableHttpServer.js +83 -0
  171. package/dist/lib/servers/StreamableHttpServer.js.map +1 -0
  172. package/dist/lib/servers/handlers/base/BaseHandlerGroup.d.ts +36 -0
  173. package/dist/lib/servers/handlers/base/BaseHandlerGroup.d.ts.map +1 -0
  174. package/dist/lib/servers/handlers/base/BaseHandlerGroup.js +268 -0
  175. package/dist/lib/servers/handlers/base/BaseHandlerGroup.js.map +1 -0
  176. package/dist/lib/servers/handlers/examples/usage-example.d.ts +29 -0
  177. package/dist/lib/servers/handlers/examples/usage-example.d.ts.map +1 -0
  178. package/dist/lib/servers/handlers/examples/usage-example.js +119 -0
  179. package/dist/lib/servers/handlers/examples/usage-example.js.map +1 -0
  180. package/dist/lib/servers/handlers/groups/HighLevelHandlersGroup.d.ts +14 -0
  181. package/dist/lib/servers/handlers/groups/HighLevelHandlersGroup.d.ts.map +1 -0
  182. package/dist/lib/servers/handlers/groups/HighLevelHandlersGroup.js +322 -0
  183. package/dist/lib/servers/handlers/groups/HighLevelHandlersGroup.js.map +1 -0
  184. package/dist/lib/servers/handlers/groups/LowLevelHandlersGroup.d.ts +14 -0
  185. package/dist/lib/servers/handlers/groups/LowLevelHandlersGroup.d.ts.map +1 -0
  186. package/dist/lib/servers/handlers/groups/LowLevelHandlersGroup.js +1214 -0
  187. package/dist/lib/servers/handlers/groups/LowLevelHandlersGroup.js.map +1 -0
  188. package/dist/lib/servers/handlers/groups/ReadOnlyHandlersGroup.d.ts +14 -0
  189. package/dist/lib/servers/handlers/groups/ReadOnlyHandlersGroup.d.ts.map +1 -0
  190. package/dist/lib/servers/handlers/groups/ReadOnlyHandlersGroup.js +232 -0
  191. package/dist/lib/servers/handlers/groups/ReadOnlyHandlersGroup.js.map +1 -0
  192. package/dist/lib/servers/handlers/groups/SearchHandlersGroup.d.ts +14 -0
  193. package/dist/lib/servers/handlers/groups/SearchHandlersGroup.d.ts.map +1 -0
  194. package/dist/lib/servers/handlers/groups/SearchHandlersGroup.js +57 -0
  195. package/dist/lib/servers/handlers/groups/SearchHandlersGroup.js.map +1 -0
  196. package/dist/lib/servers/handlers/groups/SystemHandlersGroup.d.ts +14 -0
  197. package/dist/lib/servers/handlers/groups/SystemHandlersGroup.d.ts.map +1 -0
  198. package/dist/lib/servers/handlers/groups/SystemHandlersGroup.js +176 -0
  199. package/dist/lib/servers/handlers/groups/SystemHandlersGroup.js.map +1 -0
  200. package/dist/lib/servers/handlers/groups/index.d.ts +13 -0
  201. package/dist/lib/servers/handlers/groups/index.d.ts.map +1 -0
  202. package/dist/lib/servers/handlers/groups/index.js +21 -0
  203. package/dist/lib/servers/handlers/groups/index.js.map +1 -0
  204. package/dist/lib/servers/handlers/index.d.ts +14 -0
  205. package/dist/lib/servers/handlers/index.d.ts.map +1 -0
  206. package/dist/lib/servers/handlers/index.js +37 -0
  207. package/dist/lib/servers/handlers/index.js.map +1 -0
  208. package/dist/lib/servers/handlers/interfaces.d.ts +67 -0
  209. package/dist/lib/servers/handlers/interfaces.d.ts.map +1 -0
  210. package/dist/lib/servers/handlers/interfaces.js +3 -0
  211. package/dist/lib/servers/handlers/interfaces.js.map +1 -0
  212. package/dist/lib/servers/handlers/registry/CompositeHandlersRegistry.d.ts +49 -0
  213. package/dist/lib/servers/handlers/registry/CompositeHandlersRegistry.d.ts.map +1 -0
  214. package/dist/lib/servers/handlers/registry/CompositeHandlersRegistry.js +88 -0
  215. package/dist/lib/servers/handlers/registry/CompositeHandlersRegistry.js.map +1 -0
  216. package/dist/lib/servers/index.d.ts +5 -0
  217. package/dist/lib/servers/index.d.ts.map +1 -0
  218. package/dist/lib/servers/index.js +21 -0
  219. package/dist/lib/servers/index.js.map +1 -0
  220. package/dist/lib/servers/launcher.d.ts +2 -0
  221. package/dist/lib/servers/launcher.d.ts.map +1 -0
  222. package/dist/lib/servers/launcher.js +123 -0
  223. package/dist/lib/servers/launcher.js.map +1 -0
  224. package/dist/lib/servers/mcp_handlers.d.ts +25 -0
  225. package/dist/lib/servers/mcp_handlers.d.ts.map +1 -0
  226. package/dist/lib/servers/mcp_handlers.js +822 -0
  227. package/dist/lib/servers/mcp_handlers.js.map +1 -0
  228. package/dist/lib/servers/mcp_server.d.ts +7 -0
  229. package/dist/lib/servers/mcp_server.d.ts.map +1 -0
  230. package/dist/lib/servers/mcp_server.js +12 -0
  231. package/dist/lib/servers/utils.d.ts +42 -0
  232. package/dist/lib/servers/utils.d.ts.map +1 -0
  233. package/dist/lib/servers/utils.js +620 -0
  234. package/dist/lib/servers/utils.js.map +1 -0
  235. package/dist/lib/servers/v2/__tests__/unit/McpServer.test.d.ts +7 -0
  236. package/dist/lib/servers/v2/__tests__/unit/McpServer.test.d.ts.map +1 -0
  237. package/dist/lib/servers/v2/__tests__/unit/McpServer.test.js +218 -0
  238. package/dist/lib/servers/v2/connection/LocalConnectionProvider.d.ts +20 -0
  239. package/dist/lib/servers/v2/connection/LocalConnectionProvider.d.ts.map +1 -0
  240. package/dist/lib/servers/v2/connection/LocalConnectionProvider.js +70 -0
  241. package/dist/lib/servers/v2/connection/RemoteConnectionProvider.d.ts +21 -0
  242. package/dist/lib/servers/v2/connection/RemoteConnectionProvider.d.ts.map +1 -0
  243. package/dist/lib/servers/v2/connection/RemoteConnectionProvider.js +36 -0
  244. package/dist/lib/servers/v2/connection/index.d.ts +6 -0
  245. package/dist/lib/servers/v2/connection/index.d.ts.map +1 -0
  246. package/dist/lib/servers/v2/connection/index.js +10 -0
  247. package/dist/lib/servers/v2/factory/AuthBrokerFactory.d.ts +29 -0
  248. package/dist/lib/servers/v2/factory/AuthBrokerFactory.d.ts.map +1 -0
  249. package/dist/lib/servers/v2/factory/AuthBrokerFactory.js +79 -0
  250. package/dist/lib/servers/v2/factory/LocalModeFactory.d.ts +38 -0
  251. package/dist/lib/servers/v2/factory/LocalModeFactory.d.ts.map +1 -0
  252. package/dist/lib/servers/v2/factory/LocalModeFactory.js +38 -0
  253. package/dist/lib/servers/v2/factory/index.d.ts +6 -0
  254. package/dist/lib/servers/v2/factory/index.d.ts.map +1 -0
  255. package/dist/lib/servers/v2/factory/index.js +10 -0
  256. package/dist/lib/servers/v2/index.d.ts +9 -0
  257. package/dist/lib/servers/v2/index.d.ts.map +1 -0
  258. package/dist/lib/servers/v2/index.js +27 -0
  259. package/dist/lib/servers/v2/index.js.map +1 -0
  260. package/dist/lib/servers/v2/interfaces/connection.d.ts +188 -0
  261. package/dist/lib/servers/v2/interfaces/connection.d.ts.map +1 -0
  262. package/dist/lib/servers/v2/interfaces/connection.js +7 -0
  263. package/dist/lib/servers/v2/interfaces/index.d.ts +10 -0
  264. package/dist/lib/servers/v2/interfaces/index.d.ts.map +1 -0
  265. package/dist/lib/servers/v2/interfaces/index.js +25 -0
  266. package/dist/lib/servers/v2/interfaces/protocol.d.ts +30 -0
  267. package/dist/lib/servers/v2/interfaces/protocol.d.ts.map +1 -0
  268. package/dist/lib/servers/v2/interfaces/protocol.js +7 -0
  269. package/dist/lib/servers/v2/interfaces/session.d.ts +98 -0
  270. package/dist/lib/servers/v2/interfaces/session.d.ts.map +1 -0
  271. package/dist/lib/servers/v2/interfaces/session.js +7 -0
  272. package/dist/lib/servers/v2/interfaces/transport.d.ts +88 -0
  273. package/dist/lib/servers/v2/interfaces/transport.d.ts.map +1 -0
  274. package/dist/lib/servers/v2/interfaces/transport.js +7 -0
  275. package/dist/lib/servers/v2/protocol/ProtocolHandler.d.ts +21 -0
  276. package/dist/lib/servers/v2/protocol/ProtocolHandler.d.ts.map +1 -0
  277. package/dist/lib/servers/v2/protocol/ProtocolHandler.js +77 -0
  278. package/dist/lib/servers/v2/protocol/index.d.ts +5 -0
  279. package/dist/lib/servers/v2/protocol/index.d.ts.map +1 -0
  280. package/dist/lib/servers/v2/protocol/index.js +8 -0
  281. package/dist/lib/servers/v2/server/McpServer.d.ts +76 -0
  282. package/dist/lib/servers/v2/server/McpServer.d.ts.map +1 -0
  283. package/dist/lib/servers/v2/server/McpServer.js +243 -0
  284. package/dist/lib/servers/v2/server/index.d.ts +5 -0
  285. package/dist/lib/servers/v2/server/index.d.ts.map +1 -0
  286. package/dist/lib/servers/v2/server/index.js +8 -0
  287. package/dist/lib/servers/v2/session/SessionManager.d.ts +40 -0
  288. package/dist/lib/servers/v2/session/SessionManager.d.ts.map +1 -0
  289. package/dist/lib/servers/v2/session/SessionManager.js +136 -0
  290. package/dist/lib/servers/v2/session/index.d.ts +5 -0
  291. package/dist/lib/servers/v2/session/index.d.ts.map +1 -0
  292. package/dist/lib/servers/v2/session/index.js +8 -0
  293. package/dist/lib/servers/v2/transports/SseTransport.d.ts +49 -0
  294. package/dist/lib/servers/v2/transports/SseTransport.d.ts.map +1 -0
  295. package/dist/lib/servers/v2/transports/SseTransport.js +89 -0
  296. package/dist/lib/servers/v2/transports/StdioTransport.d.ts +31 -0
  297. package/dist/lib/servers/v2/transports/StdioTransport.d.ts.map +1 -0
  298. package/dist/lib/servers/v2/transports/StdioTransport.js +91 -0
  299. package/dist/lib/servers/v2/transports/StreamableHttpTransport.d.ts +51 -0
  300. package/dist/lib/servers/v2/transports/StreamableHttpTransport.d.ts.map +1 -0
  301. package/dist/lib/servers/v2/transports/StreamableHttpTransport.js +147 -0
  302. package/dist/lib/servers/v2/transports/index.d.ts +7 -0
  303. package/dist/lib/servers/v2/transports/index.d.ts.map +1 -0
  304. package/dist/lib/servers/v2/transports/index.js +12 -0
  305. package/dist/lib/servers/v2/types/common.d.ts +17 -0
  306. package/dist/lib/servers/v2/types/common.d.ts.map +1 -0
  307. package/dist/lib/servers/v2/types/common.js +6 -0
  308. package/dist/lib/servers/v2/types/common.js.map +1 -0
  309. package/dist/lib/servers/v2/types/index.d.ts +8 -0
  310. package/dist/lib/servers/v2/types/index.d.ts.map +1 -0
  311. package/dist/lib/servers/v2/types/index.js +24 -0
  312. package/dist/lib/servers/v2/types/index.js.map +1 -0
  313. package/dist/lib/servers/v2/types/transport.d.ts +28 -0
  314. package/dist/lib/servers/v2/types/transport.d.ts.map +1 -0
  315. package/dist/lib/servers/v2/types/transport.js +8 -0
  316. package/dist/lib/servers/v2/types/transport.js.map +1 -0
  317. package/dist/lib/servers/v2/utils/StdioLogger.d.ts +17 -0
  318. package/dist/lib/servers/v2/utils/StdioLogger.d.ts.map +1 -0
  319. package/dist/lib/servers/v2/utils/StdioLogger.js +33 -0
  320. package/dist/lib/servers/v2/utils/StdioLogger.js.map +1 -0
  321. package/dist/lib/stores/UnixFileServiceKeyStore.d.ts +42 -0
  322. package/dist/lib/stores/UnixFileServiceKeyStore.d.ts.map +1 -0
  323. package/dist/lib/stores/UnixFileServiceKeyStore.js +53 -0
  324. package/dist/lib/stores/UnixFileSessionStore.d.ts +54 -0
  325. package/dist/lib/stores/UnixFileSessionStore.d.ts.map +1 -0
  326. package/dist/lib/stores/UnixFileSessionStore.js +70 -0
  327. package/dist/lib/stores/WindowsFileServiceKeyStore.d.ts +42 -0
  328. package/dist/lib/stores/WindowsFileServiceKeyStore.d.ts.map +1 -0
  329. package/dist/lib/stores/WindowsFileServiceKeyStore.js +53 -0
  330. package/dist/lib/stores/WindowsFileSessionStore.d.ts +54 -0
  331. package/dist/lib/stores/WindowsFileSessionStore.d.ts.map +1 -0
  332. package/dist/lib/stores/WindowsFileSessionStore.js +70 -0
  333. package/dist/lib/toolsRegistry.d.ts +13 -0
  334. package/dist/lib/toolsRegistry.d.ts.map +1 -0
  335. package/dist/lib/toolsRegistry.js +410 -0
  336. package/dist/lib/transportConfig.d.ts +27 -0
  337. package/dist/lib/transportConfig.d.ts.map +1 -0
  338. package/dist/lib/transportConfig.js +124 -0
  339. package/dist/lib/transports/stdio.d.ts +10 -0
  340. package/dist/lib/transports/stdio.d.ts.map +1 -0
  341. package/dist/lib/transports/stdio.js +73 -0
  342. package/dist/lib/utils.d.ts +37 -0
  343. package/dist/lib/utils.d.ts.map +1 -1
  344. package/dist/lib/utils.js +83 -0
  345. package/dist/lib/utils.js.map +1 -1
  346. package/dist/lib/yamlConfig.d.ts +59 -0
  347. package/dist/lib/yamlConfig.d.ts.map +1 -0
  348. package/dist/lib/yamlConfig.js +349 -0
  349. package/dist/lib/yamlConfig.js.map +1 -0
  350. package/dist/server/launcher.js +49 -0
  351. package/dist/server/launcher.js.map +1 -1
  352. package/dist/server/v1/AuthBrokerConfig.d.ts +19 -0
  353. package/dist/server/v1/AuthBrokerConfig.d.ts.map +1 -0
  354. package/dist/server/v1/AuthBrokerConfig.js +44 -0
  355. package/dist/server/v1/AuthBrokerConfig.js.map +1 -0
  356. package/dist/server/v1/IServerConfig.d.ts +17 -0
  357. package/dist/server/v1/IServerConfig.d.ts.map +1 -0
  358. package/dist/server/v1/IServerConfig.js +7 -0
  359. package/dist/server/v1/IServerConfig.js.map +1 -0
  360. package/dist/server/v1/ServerConfig.d.ts +16 -0
  361. package/dist/server/v1/ServerConfig.d.ts.map +1 -0
  362. package/dist/server/v1/ServerConfig.js +6 -0
  363. package/dist/server/v1/ServerConfig.js.map +1 -0
  364. package/dist/server/v1/embeddable-server.d.ts +89 -0
  365. package/dist/server/v1/embeddable-server.d.ts.map +1 -0
  366. package/dist/server/v1/embeddable-server.js +83 -0
  367. package/dist/server/v1/embeddable-server.js.map +1 -0
  368. package/dist/server/v1/index.d.ts +30 -0
  369. package/dist/server/v1/index.d.ts.map +1 -0
  370. package/dist/server/v1/index.js +65 -0
  371. package/dist/server/v1/index.js.map +1 -0
  372. package/dist/server/v1/legacy-server.d.ts +141 -0
  373. package/dist/server/v1/legacy-server.d.ts.map +1 -0
  374. package/dist/server/v1/legacy-server.js +2099 -0
  375. package/dist/server/v1/legacy-server.js.map +1 -0
  376. package/dist/server/v1/mcp_handlers.d.ts +19 -0
  377. package/dist/server/v1/mcp_handlers.d.ts.map +1 -0
  378. package/dist/server/v1/mcp_handlers.js +85 -0
  379. package/dist/server/v1/mcp_handlers.js.map +1 -0
  380. package/dist/server/v2/AuthBrokerConfig.d.ts +22 -0
  381. package/dist/server/v2/AuthBrokerConfig.d.ts.map +1 -0
  382. package/dist/server/v2/AuthBrokerConfig.js +46 -0
  383. package/dist/server/v2/AuthBrokerConfig.js.map +1 -0
  384. package/dist/server/v2/BaseMcpServer.d.ts +67 -0
  385. package/dist/server/v2/BaseMcpServer.d.ts.map +1 -0
  386. package/dist/server/v2/BaseMcpServer.js +273 -0
  387. package/dist/server/v2/BaseMcpServer.js.map +1 -0
  388. package/dist/server/v2/ConnectionContext.d.ts +20 -0
  389. package/dist/server/v2/ConnectionContext.d.ts.map +1 -0
  390. package/dist/server/v2/ConnectionContext.js +3 -0
  391. package/dist/server/v2/ConnectionContext.js.map +1 -0
  392. package/dist/server/v2/IHttpApplication.d.ts +42 -0
  393. package/dist/server/v2/IHttpApplication.d.ts.map +1 -0
  394. package/dist/server/v2/IHttpApplication.js +3 -0
  395. package/dist/server/v2/IHttpApplication.js.map +1 -0
  396. package/dist/server/v2/IServerConfig.d.ts +15 -0
  397. package/dist/server/v2/IServerConfig.d.ts.map +1 -0
  398. package/dist/server/v2/IServerConfig.js +7 -0
  399. package/dist/server/v2/IServerConfig.js.map +1 -0
  400. package/dist/server/v2/ServerConfig.d.ts +16 -0
  401. package/dist/server/v2/ServerConfig.d.ts.map +1 -0
  402. package/dist/server/v2/ServerConfig.js +6 -0
  403. package/dist/server/v2/ServerConfig.js.map +1 -0
  404. package/dist/server/v2/SseServer.d.ts +95 -0
  405. package/dist/server/v2/SseServer.d.ts.map +1 -0
  406. package/dist/server/v2/SseServer.js +217 -0
  407. package/dist/server/v2/SseServer.js.map +1 -0
  408. package/dist/server/v2/StdioServer.d.ts +20 -0
  409. package/dist/server/v2/StdioServer.d.ts.map +1 -0
  410. package/dist/server/v2/StdioServer.js +32 -0
  411. package/dist/server/v2/StdioServer.js.map +1 -0
  412. package/dist/server/v2/StreamableHttpServer.d.ts +94 -0
  413. package/dist/server/v2/StreamableHttpServer.d.ts.map +1 -0
  414. package/dist/server/v2/StreamableHttpServer.js +170 -0
  415. package/dist/server/v2/StreamableHttpServer.js.map +1 -0
  416. package/dist/server/v2/index.d.ts +6 -0
  417. package/dist/server/v2/index.d.ts.map +1 -0
  418. package/dist/server/v2/index.js +22 -0
  419. package/dist/server/v2/index.js.map +1 -0
  420. package/dist/server/v2/launcher.d.ts +2 -0
  421. package/dist/server/v2/launcher.d.ts.map +1 -0
  422. package/dist/server/v2/launcher.js +181 -0
  423. package/dist/server/v2/launcher.js.map +1 -0
  424. package/dist/server/v2/mcp_handlers.d.ts +25 -0
  425. package/dist/server/v2/mcp_handlers.d.ts.map +1 -0
  426. package/dist/server/v2/mcp_handlers.js +828 -0
  427. package/dist/server/v2/mcp_handlers.js.map +1 -0
  428. package/dist/server/v2/utils.d.ts +42 -0
  429. package/dist/server/v2/utils.d.ts.map +1 -0
  430. package/dist/server/v2/utils.js +620 -0
  431. package/dist/server/v2/utils.js.map +1 -0
  432. package/dist/tools/test-v2-server-stdio-compiled.js +132 -0
  433. package/dist/utils/lockStateManager.d.ts +2 -12
  434. package/dist/utils/lockStateManager.d.ts.map +1 -1
  435. package/dist/utils/lockStateManager.js +4 -63
  436. package/dist/utils/lockStateManager.js.map +1 -1
  437. package/docs/user-guide/AVAILABLE_TOOLS.md +1 -1
  438. 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,5 @@
1
+ /**
2
+ * Server implementations exports
3
+ */
4
+ export { McpServer, type ILogger } from './McpServer.js';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -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,5 @@
1
+ /**
2
+ * Session management implementations exports
3
+ */
4
+ export { SessionManager } from './SessionManager.js';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -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"}