@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,218 @@
1
+ "use strict";
2
+ /**
3
+ * Unit tests for McpServer v2
4
+ *
5
+ * Tests with mocked implementations of all interfaces
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ /// <reference types="jest" />
9
+ const McpServer_js_1 = require("../../server/McpServer.js");
10
+ describe('McpServer', () => {
11
+ let mockTransport;
12
+ let mockSessionManager;
13
+ let mockConnectionProvider;
14
+ let mockProtocolHandler;
15
+ let mockHandlersRegistry;
16
+ let mockSdkServer;
17
+ let mockLogger;
18
+ beforeEach(() => {
19
+ // Mock Transport
20
+ mockTransport = {
21
+ type: 'stdio',
22
+ bindAddress: '127.0.0.1',
23
+ port: undefined,
24
+ start: jest.fn().mockResolvedValue(undefined),
25
+ stop: jest.fn().mockResolvedValue(undefined),
26
+ on: jest.fn(),
27
+ send: jest.fn().mockResolvedValue(undefined),
28
+ };
29
+ // Mock Session Manager
30
+ const mockSession = {
31
+ clientSessionId: 'test-session-id',
32
+ createdAt: new Date(),
33
+ lastActivity: new Date(),
34
+ connectionParams: {
35
+ sapUrl: 'https://test.sap.com',
36
+ auth: { type: 'jwt', jwtToken: 'test-token' },
37
+ },
38
+ metadata: {
39
+ transport: 'stdio',
40
+ requestCount: 0,
41
+ errorCount: 0,
42
+ },
43
+ };
44
+ mockSessionManager = {
45
+ createSession: jest.fn().mockReturnValue(mockSession),
46
+ getSession: jest.fn().mockReturnValue(mockSession),
47
+ deleteSession: jest.fn(),
48
+ setAbapSession: jest.fn(),
49
+ clearAbapSession: jest.fn(),
50
+ on: jest.fn(),
51
+ clearAll: jest.fn(),
52
+ updateConnectionParams: jest.fn(),
53
+ };
54
+ // Mock Connection Provider
55
+ const mockConnectionParams = {
56
+ sapUrl: 'https://test.sap.com',
57
+ auth: { type: 'jwt', jwtToken: 'test-token' },
58
+ };
59
+ mockConnectionProvider = {
60
+ mode: 'LOCAL',
61
+ getConnectionParams: jest.fn().mockResolvedValue(mockConnectionParams),
62
+ updateConnectionParams: jest.fn().mockResolvedValue(undefined),
63
+ };
64
+ // Mock Protocol Handler
65
+ mockProtocolHandler = {
66
+ initialize: jest.fn(),
67
+ handleRequest: jest.fn().mockResolvedValue({ result: 'success' }),
68
+ };
69
+ // Mock Handlers Registry
70
+ mockHandlersRegistry = {
71
+ registerAllTools: jest.fn(),
72
+ registerTool: jest.fn(),
73
+ getRegisteredTools: jest.fn().mockReturnValue(['test-tool']),
74
+ };
75
+ // Mock SDK Server
76
+ mockSdkServer = {};
77
+ // Mock Logger
78
+ mockLogger = {
79
+ info: jest.fn(),
80
+ error: jest.fn(),
81
+ warn: jest.fn(),
82
+ debug: jest.fn(),
83
+ };
84
+ });
85
+ describe('constructor', () => {
86
+ it('should initialize with all dependencies', () => {
87
+ const server = new McpServer_js_1.McpServer(mockTransport, mockSessionManager, mockConnectionProvider, mockProtocolHandler, mockHandlersRegistry, mockSdkServer, mockLogger);
88
+ expect(server).toBeDefined();
89
+ expect(mockProtocolHandler.initialize).toHaveBeenCalledWith(mockHandlersRegistry, mockSdkServer);
90
+ expect(mockTransport.on).toHaveBeenCalled();
91
+ expect(mockSessionManager.on).toHaveBeenCalled();
92
+ });
93
+ it('should work without logger', () => {
94
+ const server = new McpServer_js_1.McpServer(mockTransport, mockSessionManager, mockConnectionProvider, mockProtocolHandler, mockHandlersRegistry, mockSdkServer);
95
+ expect(server).toBeDefined();
96
+ });
97
+ });
98
+ describe('start', () => {
99
+ it('should start transport', async () => {
100
+ const server = new McpServer_js_1.McpServer(mockTransport, mockSessionManager, mockConnectionProvider, mockProtocolHandler, mockHandlersRegistry, mockSdkServer, mockLogger);
101
+ await server.start();
102
+ expect(mockTransport.start).toHaveBeenCalled();
103
+ expect(mockLogger.info).toHaveBeenCalledWith('Starting MCP Server v2...');
104
+ expect(mockLogger.info).toHaveBeenCalledWith('MCP Server v2 started successfully');
105
+ });
106
+ it('should throw error if already started', async () => {
107
+ const server = new McpServer_js_1.McpServer(mockTransport, mockSessionManager, mockConnectionProvider, mockProtocolHandler, mockHandlersRegistry, mockSdkServer);
108
+ await server.start();
109
+ await expect(server.start()).rejects.toThrow('Server is already started');
110
+ });
111
+ });
112
+ describe('stop', () => {
113
+ it('should stop transport and clear sessions', async () => {
114
+ const server = new McpServer_js_1.McpServer(mockTransport, mockSessionManager, mockConnectionProvider, mockProtocolHandler, mockHandlersRegistry, mockSdkServer, mockLogger);
115
+ await server.start();
116
+ await server.stop();
117
+ expect(mockTransport.stop).toHaveBeenCalled();
118
+ expect(mockSessionManager.clearAll).toHaveBeenCalled();
119
+ expect(mockLogger.info).toHaveBeenCalledWith('Stopping MCP Server v2...');
120
+ });
121
+ it('should not throw if not started', async () => {
122
+ const server = new McpServer_js_1.McpServer(mockTransport, mockSessionManager, mockConnectionProvider, mockProtocolHandler, mockHandlersRegistry, mockSdkServer);
123
+ await expect(server.stop()).resolves.not.toThrow();
124
+ });
125
+ });
126
+ describe('validateConfiguration', () => {
127
+ it('should pass validation for LOCAL mode', () => {
128
+ const server = new McpServer_js_1.McpServer(mockTransport, mockSessionManager, mockConnectionProvider, mockProtocolHandler, mockHandlersRegistry, mockSdkServer);
129
+ expect(() => server.validateConfiguration()).not.toThrow();
130
+ });
131
+ it('should throw error for LOCAL transport with REMOTE provider', () => {
132
+ const remoteProvider = {
133
+ ...mockConnectionProvider,
134
+ mode: 'REMOTE',
135
+ };
136
+ const server = new McpServer_js_1.McpServer(mockTransport, mockSessionManager, remoteProvider, mockProtocolHandler, mockHandlersRegistry, mockSdkServer);
137
+ expect(() => server.validateConfiguration()).toThrow('Configuration mismatch');
138
+ });
139
+ it('should throw error for REMOTE transport with LOCAL provider', () => {
140
+ const remoteTransport = {
141
+ ...mockTransport,
142
+ bindAddress: '0.0.0.0',
143
+ };
144
+ const server = new McpServer_js_1.McpServer(remoteTransport, mockSessionManager, mockConnectionProvider, mockProtocolHandler, mockHandlersRegistry, mockSdkServer);
145
+ expect(() => server.validateConfiguration()).toThrow('Configuration mismatch');
146
+ });
147
+ });
148
+ describe('session creation flow', () => {
149
+ it('should create session when transport emits session:created', async () => {
150
+ const server = new McpServer_js_1.McpServer(mockTransport, mockSessionManager, mockConnectionProvider, mockProtocolHandler, mockHandlersRegistry, mockSdkServer, mockLogger);
151
+ // Get the session:created handler
152
+ const sessionCreatedCall = mockTransport.on.mock.calls.find((call) => call[0] === 'session:created');
153
+ expect(sessionCreatedCall).toBeDefined();
154
+ const handler = sessionCreatedCall[1];
155
+ const clientInfo = {
156
+ transport: 'stdio',
157
+ };
158
+ await handler('test-session-id', clientInfo);
159
+ expect(mockSessionManager.createSession).toHaveBeenCalledWith(clientInfo);
160
+ expect(mockConnectionProvider.getConnectionParams).toHaveBeenCalled();
161
+ });
162
+ });
163
+ describe('message handling flow', () => {
164
+ it('should process message and send response', async () => {
165
+ const server = new McpServer_js_1.McpServer(mockTransport, mockSessionManager, mockConnectionProvider, mockProtocolHandler, mockHandlersRegistry, mockSdkServer, mockLogger);
166
+ // Get the message handler
167
+ const messageCall = mockTransport.on.mock.calls.find((call) => call[0] === 'message');
168
+ expect(messageCall).toBeDefined();
169
+ const handler = messageCall[1];
170
+ const message = {
171
+ jsonrpc: '2.0',
172
+ id: 1,
173
+ method: 'tools/call',
174
+ params: { name: 'test-tool', arguments: {} },
175
+ };
176
+ await handler('test-session-id', message);
177
+ expect(mockProtocolHandler.handleRequest).toHaveBeenCalledWith('test-session-id', message);
178
+ expect(mockTransport.send).toHaveBeenCalled();
179
+ });
180
+ it('should handle errors and send error response', async () => {
181
+ const server = new McpServer_js_1.McpServer(mockTransport, mockSessionManager, mockConnectionProvider, mockProtocolHandler, mockHandlersRegistry, mockSdkServer, mockLogger);
182
+ // Make getSession return undefined to simulate error
183
+ mockSessionManager.getSession = jest.fn().mockReturnValue(undefined);
184
+ // Get the message handler
185
+ const messageCall = mockTransport.on.mock.calls.find((call) => call[0] === 'message');
186
+ const handler = messageCall[1];
187
+ const message = {
188
+ jsonrpc: '2.0',
189
+ id: 1,
190
+ method: 'tools/call',
191
+ params: { name: 'test-tool', arguments: {} },
192
+ };
193
+ await handler('test-session-id', message);
194
+ expect(mockLogger.error).toHaveBeenCalled();
195
+ expect(mockTransport.send).toHaveBeenCalledWith('test-session-id', expect.objectContaining({
196
+ error: expect.any(Object),
197
+ }));
198
+ });
199
+ });
200
+ describe('getters', () => {
201
+ it('should return SDK server instance', () => {
202
+ const server = new McpServer_js_1.McpServer(mockTransport, mockSessionManager, mockConnectionProvider, mockProtocolHandler, mockHandlersRegistry, mockSdkServer);
203
+ expect(server.getSdkServer()).toBe(mockSdkServer);
204
+ });
205
+ it('should return transport instance', () => {
206
+ const server = new McpServer_js_1.McpServer(mockTransport, mockSessionManager, mockConnectionProvider, mockProtocolHandler, mockHandlersRegistry, mockSdkServer);
207
+ expect(server.getTransport()).toBe(mockTransport);
208
+ });
209
+ it('should return session manager instance', () => {
210
+ const server = new McpServer_js_1.McpServer(mockTransport, mockSessionManager, mockConnectionProvider, mockProtocolHandler, mockHandlersRegistry, mockSdkServer);
211
+ expect(server.getSessionManager()).toBe(mockSessionManager);
212
+ });
213
+ it('should return connection provider instance', () => {
214
+ const server = new McpServer_js_1.McpServer(mockTransport, mockSessionManager, mockConnectionProvider, mockProtocolHandler, mockHandlersRegistry, mockSdkServer);
215
+ expect(server.getConnectionProvider()).toBe(mockConnectionProvider);
216
+ });
217
+ });
218
+ });
@@ -0,0 +1,20 @@
1
+ /**
2
+ * LocalConnectionProvider implementation
3
+ *
4
+ * Provides connection parameters using service keys and AuthBroker (LOCAL mode)
5
+ * ServiceKeyStore, SessionStore, and TokenProvider are injected into AuthBroker through Factory
6
+ */
7
+ import { IConnectionProvider, IConnectionRequest, IConnectionParams, IAuthBrokerFactory } from '../interfaces/connection.js';
8
+ /**
9
+ * LocalConnectionProvider - LOCAL mode connection provider
10
+ *
11
+ * Uses service keys from ServiceKeyStore and AuthBroker for token management
12
+ */
13
+ export declare class LocalConnectionProvider implements IConnectionProvider {
14
+ private authBrokerFactory;
15
+ readonly mode: "LOCAL";
16
+ constructor(authBrokerFactory: IAuthBrokerFactory);
17
+ getConnectionParams(request: IConnectionRequest): Promise<IConnectionParams>;
18
+ updateConnectionParams(sessionId: string, params: Partial<IConnectionParams>): Promise<void>;
19
+ }
20
+ //# sourceMappingURL=LocalConnectionProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LocalConnectionProvider.d.ts","sourceRoot":"","sources":["../../../../../src/lib/servers/v2/connection/LocalConnectionProvider.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EACnB,MAAM,6BAA6B,CAAC;AAErC;;;;GAIG;AACH,qBAAa,uBAAwB,YAAW,mBAAmB;IAGrD,OAAO,CAAC,iBAAiB;IAFrC,QAAQ,CAAC,IAAI,EAAG,OAAO,CAAU;gBAEb,iBAAiB,EAAE,kBAAkB;IAEnD,mBAAmB,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAsD5E,sBAAsB,CAC1B,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,OAAO,CAAC,iBAAiB,CAAC,GACjC,OAAO,CAAC,IAAI,CAAC;CAKjB"}
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+ /**
3
+ * LocalConnectionProvider implementation
4
+ *
5
+ * Provides connection parameters using service keys and AuthBroker (LOCAL mode)
6
+ * ServiceKeyStore, SessionStore, and TokenProvider are injected into AuthBroker through Factory
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.LocalConnectionProvider = void 0;
10
+ /**
11
+ * LocalConnectionProvider - LOCAL mode connection provider
12
+ *
13
+ * Uses service keys from ServiceKeyStore and AuthBroker for token management
14
+ */
15
+ class LocalConnectionProvider {
16
+ authBrokerFactory;
17
+ mode = 'LOCAL';
18
+ constructor(authBrokerFactory) {
19
+ this.authBrokerFactory = authBrokerFactory;
20
+ }
21
+ async getConnectionParams(request) {
22
+ if (!request.destination) {
23
+ throw new Error('Destination required for LOCAL mode');
24
+ }
25
+ // 1. Create or get AuthBroker for session
26
+ // AuthBroker already has injected ServiceKeyStore, SessionStore, TokenProvider
27
+ const authBroker = await this.authBrokerFactory.getOrCreateBroker(request.sessionId, request.destination);
28
+ // 2. Get/update token through AuthBroker
29
+ // AuthBroker internally uses:
30
+ // - ServiceKeyStore to read service key
31
+ // - SessionStore to save/read tokens
32
+ // - TokenProvider to get new tokens
33
+ // getToken returns JWT token string
34
+ const jwtToken = await authBroker.getToken(request.destination);
35
+ // 3. Get connection config for URL and client
36
+ // Access sessionStore and serviceKeyStore from AuthBrokerFactory
37
+ const authBrokerFactory = this.authBrokerFactory;
38
+ let sapUrl;
39
+ let client;
40
+ // Try to get from sessionStore first
41
+ if (authBrokerFactory.sessionStore) {
42
+ const connConfig = await authBrokerFactory.sessionStore.getConnectionConfig(request.destination);
43
+ sapUrl = connConfig?.serviceUrl;
44
+ client = connConfig?.client;
45
+ }
46
+ // Fallback to serviceKeyStore if not in session
47
+ if (!sapUrl && authBrokerFactory.serviceKeyStore) {
48
+ const serviceKeyConnConfig = await authBrokerFactory.serviceKeyStore.getConnectionConfig(request.destination);
49
+ sapUrl = serviceKeyConnConfig?.serviceUrl;
50
+ client = serviceKeyConnConfig?.client;
51
+ }
52
+ if (!sapUrl) {
53
+ throw new Error(`Unable to determine SAP URL for destination: ${request.destination}`);
54
+ }
55
+ return {
56
+ sapUrl,
57
+ auth: {
58
+ type: 'jwt',
59
+ jwtToken,
60
+ },
61
+ client,
62
+ };
63
+ }
64
+ async updateConnectionParams(sessionId, params) {
65
+ // Update connection params (e.g., after token refresh)
66
+ // This would typically update the session's connectionParams
67
+ // Implementation depends on session management strategy
68
+ }
69
+ }
70
+ exports.LocalConnectionProvider = LocalConnectionProvider;
@@ -0,0 +1,21 @@
1
+ /**
2
+ * RemoteConnectionProvider implementation
3
+ *
4
+ * Provides connection parameters from client headers (REMOTE mode)
5
+ * No AuthBroker - proxy only mode
6
+ */
7
+ import { IConnectionProvider, IConnectionRequest, IConnectionParams, IHeaderValidator } from '../interfaces/connection.js';
8
+ /**
9
+ * RemoteConnectionProvider - REMOTE mode connection provider
10
+ *
11
+ * Extracts connection parameters from client headers via HeaderValidator
12
+ * No service keys or AuthBroker - pure proxy mode
13
+ */
14
+ export declare class RemoteConnectionProvider implements IConnectionProvider {
15
+ private headerValidator;
16
+ readonly mode: "REMOTE";
17
+ constructor(headerValidator: IHeaderValidator);
18
+ getConnectionParams(request: IConnectionRequest): Promise<IConnectionParams>;
19
+ updateConnectionParams(sessionId: string, params: Partial<IConnectionParams>): Promise<void>;
20
+ }
21
+ //# sourceMappingURL=RemoteConnectionProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RemoteConnectionProvider.d.ts","sourceRoot":"","sources":["../../../../../src/lib/servers/v2/connection/RemoteConnectionProvider.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,EACjB,MAAM,6BAA6B,CAAC;AAErC;;;;;GAKG;AACH,qBAAa,wBAAyB,YAAW,mBAAmB;IAGtD,OAAO,CAAC,eAAe;IAFnC,QAAQ,CAAC,IAAI,EAAG,QAAQ,CAAU;gBAEd,eAAe,EAAE,gBAAgB;IAE/C,mBAAmB,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAW5E,sBAAsB,CAC1B,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,OAAO,CAAC,iBAAiB,CAAC,GACjC,OAAO,CAAC,IAAI,CAAC;CAKjB"}
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ /**
3
+ * RemoteConnectionProvider implementation
4
+ *
5
+ * Provides connection parameters from client headers (REMOTE mode)
6
+ * No AuthBroker - proxy only mode
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.RemoteConnectionProvider = void 0;
10
+ /**
11
+ * RemoteConnectionProvider - REMOTE mode connection provider
12
+ *
13
+ * Extracts connection parameters from client headers via HeaderValidator
14
+ * No service keys or AuthBroker - pure proxy mode
15
+ */
16
+ class RemoteConnectionProvider {
17
+ headerValidator;
18
+ mode = 'REMOTE';
19
+ constructor(headerValidator) {
20
+ this.headerValidator = headerValidator;
21
+ }
22
+ async getConnectionParams(request) {
23
+ if (!request.headers) {
24
+ throw new Error('Headers required for REMOTE mode');
25
+ }
26
+ // Validate and extract parameters from headers
27
+ const validated = await this.headerValidator.validateAndExtract(request.headers);
28
+ return validated;
29
+ }
30
+ async updateConnectionParams(sessionId, params) {
31
+ // Update connection params (e.g., after token refresh)
32
+ // This would typically update the session's connectionParams
33
+ // Implementation depends on session management strategy
34
+ }
35
+ }
36
+ exports.RemoteConnectionProvider = RemoteConnectionProvider;
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Connection provider implementations exports
3
+ */
4
+ export { LocalConnectionProvider } from './LocalConnectionProvider.js';
5
+ export { RemoteConnectionProvider } from './RemoteConnectionProvider.js';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/lib/servers/v2/connection/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC"}
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ /**
3
+ * Connection provider implementations exports
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.RemoteConnectionProvider = exports.LocalConnectionProvider = void 0;
7
+ var LocalConnectionProvider_js_1 = require("./LocalConnectionProvider.js");
8
+ Object.defineProperty(exports, "LocalConnectionProvider", { enumerable: true, get: function () { return LocalConnectionProvider_js_1.LocalConnectionProvider; } });
9
+ var RemoteConnectionProvider_js_1 = require("./RemoteConnectionProvider.js");
10
+ Object.defineProperty(exports, "RemoteConnectionProvider", { enumerable: true, get: function () { return RemoteConnectionProvider_js_1.RemoteConnectionProvider; } });
@@ -0,0 +1,29 @@
1
+ /**
2
+ * AuthBrokerFactory implementation
3
+ *
4
+ * Creates and manages AuthBroker instances with injected dependencies
5
+ * (ServiceKeyStore, SessionStore, TokenProvider)
6
+ */
7
+ import { AuthBroker } from '@mcp-abap-adt/auth-broker';
8
+ import type { IServiceKeyStore, ISessionStore } from '@mcp-abap-adt/auth-broker';
9
+ import type { ITokenProvider } from '@mcp-abap-adt/auth-broker';
10
+ import { IAuthBrokerFactory } from '../interfaces/connection.js';
11
+ import { ILogger } from '@mcp-abap-adt/interfaces';
12
+ /**
13
+ * AuthBrokerFactory - creates AuthBroker instances with DI
14
+ *
15
+ * Manages AuthBroker instances per session/destination combination
16
+ */
17
+ export declare class AuthBrokerFactory implements IAuthBrokerFactory {
18
+ private tokenProvider?;
19
+ private logger?;
20
+ private brokers;
21
+ readonly serviceKeyStore: IServiceKeyStore;
22
+ readonly sessionStore: ISessionStore;
23
+ constructor(serviceKeyStore: IServiceKeyStore, sessionStore: ISessionStore, tokenProvider?: ITokenProvider | undefined, logger?: ILogger | undefined);
24
+ getOrCreateBroker(sessionId: string, destination: string): Promise<AuthBroker>;
25
+ getBroker(sessionId: string, destination?: string): AuthBroker | undefined;
26
+ deleteBroker(sessionId: string, destination?: string): void;
27
+ clearAll(): void;
28
+ }
29
+ //# sourceMappingURL=AuthBrokerFactory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AuthBrokerFactory.d.ts","sourceRoot":"","sources":["../../../../../src/lib/servers/v2/factory/AuthBrokerFactory.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,UAAU,EAAyB,MAAM,2BAA2B,CAAC;AAC9E,OAAO,KAAK,EACV,gBAAgB,EAChB,aAAa,EACd,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAEnD;;;;GAIG;AACH,qBAAa,iBAAkB,YAAW,kBAAkB;IAUxD,OAAO,CAAC,aAAa,CAAC;IACtB,OAAO,CAAC,MAAM,CAAC;IAVjB,OAAO,CAAC,OAAO,CAAsC;IAGrD,SAAgB,eAAe,EAAE,gBAAgB,CAAC;IAClD,SAAgB,YAAY,EAAE,aAAa,CAAC;gBAG1C,eAAe,EAAE,gBAAgB,EACjC,YAAY,EAAE,aAAa,EACnB,aAAa,CAAC,EAAE,cAAc,YAAA,EAC9B,MAAM,CAAC,EAAE,OAAO,YAAA;IAMpB,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAsBpF,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS;IAc1E,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI;IAgB3D,QAAQ,IAAI,IAAI;CAGjB"}
@@ -0,0 +1,79 @@
1
+ "use strict";
2
+ /**
3
+ * AuthBrokerFactory implementation
4
+ *
5
+ * Creates and manages AuthBroker instances with injected dependencies
6
+ * (ServiceKeyStore, SessionStore, TokenProvider)
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.AuthBrokerFactory = void 0;
10
+ const auth_broker_1 = require("@mcp-abap-adt/auth-broker");
11
+ /**
12
+ * AuthBrokerFactory - creates AuthBroker instances with DI
13
+ *
14
+ * Manages AuthBroker instances per session/destination combination
15
+ */
16
+ class AuthBrokerFactory {
17
+ tokenProvider;
18
+ logger;
19
+ brokers = new Map();
20
+ // Expose stores for LocalConnectionProvider to access connection config
21
+ serviceKeyStore;
22
+ sessionStore;
23
+ constructor(serviceKeyStore, sessionStore, tokenProvider, logger) {
24
+ this.tokenProvider = tokenProvider;
25
+ this.logger = logger;
26
+ this.serviceKeyStore = serviceKeyStore;
27
+ this.sessionStore = sessionStore;
28
+ }
29
+ async getOrCreateBroker(sessionId, destination) {
30
+ const key = `${sessionId}:${destination}`;
31
+ if (this.brokers.has(key)) {
32
+ return this.brokers.get(key);
33
+ }
34
+ // Create new AuthBroker with injected dependencies
35
+ const config = {
36
+ sessionStore: this.sessionStore,
37
+ serviceKeyStore: this.serviceKeyStore,
38
+ tokenProvider: this.tokenProvider,
39
+ };
40
+ // Use 'system' browser to open default browser for authentication
41
+ // This will trigger browser-based auth flow when needed
42
+ const broker = new auth_broker_1.AuthBroker(config, 'system', this.logger);
43
+ this.brokers.set(key, broker);
44
+ return broker;
45
+ }
46
+ getBroker(sessionId, destination) {
47
+ if (destination) {
48
+ const key = `${sessionId}:${destination}`;
49
+ return this.brokers.get(key);
50
+ }
51
+ // Try to find any broker for this session
52
+ for (const [key, broker] of this.brokers.entries()) {
53
+ if (key.startsWith(`${sessionId}:`)) {
54
+ return broker;
55
+ }
56
+ }
57
+ return undefined;
58
+ }
59
+ deleteBroker(sessionId, destination) {
60
+ if (destination) {
61
+ const key = `${sessionId}:${destination}`;
62
+ this.brokers.delete(key);
63
+ }
64
+ else {
65
+ // Delete all brokers for this session
66
+ const keysToDelete = [];
67
+ for (const key of this.brokers.keys()) {
68
+ if (key.startsWith(`${sessionId}:`)) {
69
+ keysToDelete.push(key);
70
+ }
71
+ }
72
+ keysToDelete.forEach((key) => this.brokers.delete(key));
73
+ }
74
+ }
75
+ clearAll() {
76
+ this.brokers.clear();
77
+ }
78
+ }
79
+ exports.AuthBrokerFactory = AuthBrokerFactory;
@@ -0,0 +1,38 @@
1
+ /**
2
+ * LocalModeFactory
3
+ *
4
+ * Factory for creating all LOCAL mode components with proper DI
5
+ */
6
+ import type { IServiceKeyStore, ISessionStore } from '@mcp-abap-adt/auth-broker';
7
+ import type { ITokenProvider } from '@mcp-abap-adt/auth-broker';
8
+ import { IAuthBrokerFactory, IConnectionProvider } from '../interfaces/connection.js';
9
+ import { ILogger } from '@mcp-abap-adt/interfaces';
10
+ /**
11
+ * Configuration for LOCAL mode factory
12
+ */
13
+ export interface LocalModeConfig {
14
+ serviceKeyStore: IServiceKeyStore;
15
+ sessionStore: ISessionStore;
16
+ tokenProvider?: ITokenProvider;
17
+ logger?: ILogger;
18
+ }
19
+ /**
20
+ * LocalModeFactory - creates all LOCAL mode components
21
+ *
22
+ * Assembles ServiceKeyStore, SessionStore, TokenProvider into
23
+ * AuthBrokerFactory and LocalConnectionProvider
24
+ */
25
+ export declare class LocalModeFactory {
26
+ private config;
27
+ private authBrokerFactory;
28
+ constructor(config: LocalModeConfig);
29
+ /**
30
+ * Creates LocalConnectionProvider
31
+ */
32
+ createConnectionProvider(): IConnectionProvider;
33
+ /**
34
+ * Gets AuthBrokerFactory (for direct access if needed)
35
+ */
36
+ getAuthBrokerFactory(): IAuthBrokerFactory;
37
+ }
38
+ //# sourceMappingURL=LocalModeFactory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LocalModeFactory.d.ts","sourceRoot":"","sources":["../../../../../src/lib/servers/v2/factory/LocalModeFactory.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAK,EACV,gBAAgB,EAChB,aAAa,EACd,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AACtF,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAEnD;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,eAAe,EAAE,gBAAgB,CAAC;IAClC,YAAY,EAAE,aAAa,CAAC;IAC5B,aAAa,CAAC,EAAE,cAAc,CAAC;IAC/B,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;;;;GAKG;AACH,qBAAa,gBAAgB;IAGf,OAAO,CAAC,MAAM;IAF1B,OAAO,CAAC,iBAAiB,CAAqB;gBAE1B,MAAM,EAAE,eAAe;IAU3C;;OAEG;IACH,wBAAwB,IAAI,mBAAmB;IAI/C;;OAEG;IACH,oBAAoB,IAAI,kBAAkB;CAG3C"}
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ /**
3
+ * LocalModeFactory
4
+ *
5
+ * Factory for creating all LOCAL mode components with proper DI
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.LocalModeFactory = void 0;
9
+ const AuthBrokerFactory_js_1 = require("./AuthBrokerFactory.js");
10
+ const LocalConnectionProvider_js_1 = require("../connection/LocalConnectionProvider.js");
11
+ /**
12
+ * LocalModeFactory - creates all LOCAL mode components
13
+ *
14
+ * Assembles ServiceKeyStore, SessionStore, TokenProvider into
15
+ * AuthBrokerFactory and LocalConnectionProvider
16
+ */
17
+ class LocalModeFactory {
18
+ config;
19
+ authBrokerFactory;
20
+ constructor(config) {
21
+ this.config = config;
22
+ // Create AuthBrokerFactory with injected dependencies
23
+ this.authBrokerFactory = new AuthBrokerFactory_js_1.AuthBrokerFactory(config.serviceKeyStore, config.sessionStore, config.tokenProvider, config.logger);
24
+ }
25
+ /**
26
+ * Creates LocalConnectionProvider
27
+ */
28
+ createConnectionProvider() {
29
+ return new LocalConnectionProvider_js_1.LocalConnectionProvider(this.authBrokerFactory);
30
+ }
31
+ /**
32
+ * Gets AuthBrokerFactory (for direct access if needed)
33
+ */
34
+ getAuthBrokerFactory() {
35
+ return this.authBrokerFactory;
36
+ }
37
+ }
38
+ exports.LocalModeFactory = LocalModeFactory;
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Factory implementations exports
3
+ */
4
+ export { AuthBrokerFactory } from './AuthBrokerFactory.js';
5
+ export { LocalModeFactory, type LocalModeConfig } from './LocalModeFactory.js';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/lib/servers/v2/factory/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,KAAK,eAAe,EAAE,MAAM,uBAAuB,CAAC"}
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ /**
3
+ * Factory implementations exports
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.LocalModeFactory = exports.AuthBrokerFactory = void 0;
7
+ var AuthBrokerFactory_js_1 = require("./AuthBrokerFactory.js");
8
+ Object.defineProperty(exports, "AuthBrokerFactory", { enumerable: true, get: function () { return AuthBrokerFactory_js_1.AuthBrokerFactory; } });
9
+ var LocalModeFactory_js_1 = require("./LocalModeFactory.js");
10
+ Object.defineProperty(exports, "LocalModeFactory", { enumerable: true, get: function () { return LocalModeFactory_js_1.LocalModeFactory; } });
@@ -0,0 +1,9 @@
1
+ /**
2
+ * MCP Server v2 module exports
3
+ *
4
+ * Simplified architecture - only types and utilities
5
+ * Transports are used directly from @modelcontextprotocol/sdk
6
+ */
7
+ export * from './types/index.js';
8
+ export * from './utils/StdioLogger.js';
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/servers/v2/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,cAAc,kBAAkB,CAAC;AAGjC,cAAc,wBAAwB,CAAC"}