@ibm/ibmi-mcp-server 0.1.0

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 (482) hide show
  1. package/README.md +88 -0
  2. package/dist/config/index.d.ts +100 -0
  3. package/dist/config/index.d.ts.map +1 -0
  4. package/dist/config/index.js +463 -0
  5. package/dist/config/index.js.map +1 -0
  6. package/dist/config/resolver.d.ts +32 -0
  7. package/dist/config/resolver.d.ts.map +1 -0
  8. package/dist/config/resolver.js +60 -0
  9. package/dist/config/resolver.js.map +1 -0
  10. package/dist/ibmi-mcp-server/auth/crypto.d.ts +11 -0
  11. package/dist/ibmi-mcp-server/auth/crypto.d.ts.map +1 -0
  12. package/dist/ibmi-mcp-server/auth/crypto.js +100 -0
  13. package/dist/ibmi-mcp-server/auth/crypto.js.map +1 -0
  14. package/dist/ibmi-mcp-server/auth/httpAuthEndpoint.d.ts +28 -0
  15. package/dist/ibmi-mcp-server/auth/httpAuthEndpoint.d.ts.map +1 -0
  16. package/dist/ibmi-mcp-server/auth/httpAuthEndpoint.js +243 -0
  17. package/dist/ibmi-mcp-server/auth/httpAuthEndpoint.js.map +1 -0
  18. package/dist/ibmi-mcp-server/auth/index.d.ts +9 -0
  19. package/dist/ibmi-mcp-server/auth/index.d.ts.map +1 -0
  20. package/dist/ibmi-mcp-server/auth/index.js +8 -0
  21. package/dist/ibmi-mcp-server/auth/index.js.map +1 -0
  22. package/dist/ibmi-mcp-server/auth/tokenManager.d.ts +86 -0
  23. package/dist/ibmi-mcp-server/auth/tokenManager.d.ts.map +1 -0
  24. package/dist/ibmi-mcp-server/auth/tokenManager.js +214 -0
  25. package/dist/ibmi-mcp-server/auth/tokenManager.js.map +1 -0
  26. package/dist/ibmi-mcp-server/auth/types.d.ts +31 -0
  27. package/dist/ibmi-mcp-server/auth/types.d.ts.map +1 -0
  28. package/dist/ibmi-mcp-server/auth/types.js +5 -0
  29. package/dist/ibmi-mcp-server/auth/types.js.map +1 -0
  30. package/dist/ibmi-mcp-server/index.d.ts +8 -0
  31. package/dist/ibmi-mcp-server/index.d.ts.map +1 -0
  32. package/dist/ibmi-mcp-server/index.js +126 -0
  33. package/dist/ibmi-mcp-server/index.js.map +1 -0
  34. package/dist/ibmi-mcp-server/resources/toolsetsResource/index.d.ts +7 -0
  35. package/dist/ibmi-mcp-server/resources/toolsetsResource/index.d.ts.map +1 -0
  36. package/dist/ibmi-mcp-server/resources/toolsetsResource/index.js +7 -0
  37. package/dist/ibmi-mcp-server/resources/toolsetsResource/index.js.map +1 -0
  38. package/dist/ibmi-mcp-server/resources/toolsetsResource/logic.d.ts +106 -0
  39. package/dist/ibmi-mcp-server/resources/toolsetsResource/logic.d.ts.map +1 -0
  40. package/dist/ibmi-mcp-server/resources/toolsetsResource/logic.js +145 -0
  41. package/dist/ibmi-mcp-server/resources/toolsetsResource/logic.js.map +1 -0
  42. package/dist/ibmi-mcp-server/resources/toolsetsResource/registration.d.ts +16 -0
  43. package/dist/ibmi-mcp-server/resources/toolsetsResource/registration.d.ts.map +1 -0
  44. package/dist/ibmi-mcp-server/resources/toolsetsResource/registration.js +110 -0
  45. package/dist/ibmi-mcp-server/resources/toolsetsResource/registration.js.map +1 -0
  46. package/dist/ibmi-mcp-server/schemas/common.d.ts +174 -0
  47. package/dist/ibmi-mcp-server/schemas/common.d.ts.map +1 -0
  48. package/dist/ibmi-mcp-server/schemas/common.js +119 -0
  49. package/dist/ibmi-mcp-server/schemas/common.js.map +1 -0
  50. package/dist/ibmi-mcp-server/schemas/config.d.ts +858 -0
  51. package/dist/ibmi-mcp-server/schemas/config.d.ts.map +1 -0
  52. package/dist/ibmi-mcp-server/schemas/config.js +248 -0
  53. package/dist/ibmi-mcp-server/schemas/config.js.map +1 -0
  54. package/dist/ibmi-mcp-server/schemas/index.d.ts +12 -0
  55. package/dist/ibmi-mcp-server/schemas/index.d.ts.map +1 -0
  56. package/dist/ibmi-mcp-server/schemas/index.js +20 -0
  57. package/dist/ibmi-mcp-server/schemas/index.js.map +1 -0
  58. package/dist/ibmi-mcp-server/schemas/tools.d.ts +287 -0
  59. package/dist/ibmi-mcp-server/schemas/tools.d.ts.map +1 -0
  60. package/dist/ibmi-mcp-server/schemas/tools.js +167 -0
  61. package/dist/ibmi-mcp-server/schemas/tools.js.map +1 -0
  62. package/dist/ibmi-mcp-server/services/authenticatedPoolManager.d.ts +82 -0
  63. package/dist/ibmi-mcp-server/services/authenticatedPoolManager.d.ts.map +1 -0
  64. package/dist/ibmi-mcp-server/services/authenticatedPoolManager.js +262 -0
  65. package/dist/ibmi-mcp-server/services/authenticatedPoolManager.js.map +1 -0
  66. package/dist/ibmi-mcp-server/services/baseConnectionPool.d.ts +130 -0
  67. package/dist/ibmi-mcp-server/services/baseConnectionPool.d.ts.map +1 -0
  68. package/dist/ibmi-mcp-server/services/baseConnectionPool.js +431 -0
  69. package/dist/ibmi-mcp-server/services/baseConnectionPool.js.map +1 -0
  70. package/dist/ibmi-mcp-server/services/connectionPool.d.ts +60 -0
  71. package/dist/ibmi-mcp-server/services/connectionPool.d.ts.map +1 -0
  72. package/dist/ibmi-mcp-server/services/connectionPool.js +153 -0
  73. package/dist/ibmi-mcp-server/services/connectionPool.js.map +1 -0
  74. package/dist/ibmi-mcp-server/services/securityValidation.d.ts +35 -0
  75. package/dist/ibmi-mcp-server/services/securityValidation.d.ts.map +1 -0
  76. package/dist/ibmi-mcp-server/services/securityValidation.js +93 -0
  77. package/dist/ibmi-mcp-server/services/securityValidation.js.map +1 -0
  78. package/dist/ibmi-mcp-server/services/sourceManager.d.ts +82 -0
  79. package/dist/ibmi-mcp-server/services/sourceManager.d.ts.map +1 -0
  80. package/dist/ibmi-mcp-server/services/sourceManager.js +151 -0
  81. package/dist/ibmi-mcp-server/services/sourceManager.js.map +1 -0
  82. package/dist/ibmi-mcp-server/tools/executeSql/index.d.ts +9 -0
  83. package/dist/ibmi-mcp-server/tools/executeSql/index.d.ts.map +1 -0
  84. package/dist/ibmi-mcp-server/tools/executeSql/index.js +9 -0
  85. package/dist/ibmi-mcp-server/tools/executeSql/index.js.map +1 -0
  86. package/dist/ibmi-mcp-server/tools/executeSql/logic.d.ts +51 -0
  87. package/dist/ibmi-mcp-server/tools/executeSql/logic.d.ts.map +1 -0
  88. package/dist/ibmi-mcp-server/tools/executeSql/logic.js +179 -0
  89. package/dist/ibmi-mcp-server/tools/executeSql/logic.js.map +1 -0
  90. package/dist/ibmi-mcp-server/tools/executeSql/registration.d.ts +52 -0
  91. package/dist/ibmi-mcp-server/tools/executeSql/registration.d.ts.map +1 -0
  92. package/dist/ibmi-mcp-server/tools/executeSql/registration.js +161 -0
  93. package/dist/ibmi-mcp-server/tools/executeSql/registration.js.map +1 -0
  94. package/dist/ibmi-mcp-server/tools/generateSql/index.d.ts +13 -0
  95. package/dist/ibmi-mcp-server/tools/generateSql/index.d.ts.map +1 -0
  96. package/dist/ibmi-mcp-server/tools/generateSql/index.js +13 -0
  97. package/dist/ibmi-mcp-server/tools/generateSql/index.js.map +1 -0
  98. package/dist/ibmi-mcp-server/tools/generateSql/logic.d.ts +64 -0
  99. package/dist/ibmi-mcp-server/tools/generateSql/logic.d.ts.map +1 -0
  100. package/dist/ibmi-mcp-server/tools/generateSql/logic.js +190 -0
  101. package/dist/ibmi-mcp-server/tools/generateSql/logic.js.map +1 -0
  102. package/dist/ibmi-mcp-server/tools/generateSql/registration.d.ts +18 -0
  103. package/dist/ibmi-mcp-server/tools/generateSql/registration.d.ts.map +1 -0
  104. package/dist/ibmi-mcp-server/tools/generateSql/registration.js +64 -0
  105. package/dist/ibmi-mcp-server/tools/generateSql/registration.js.map +1 -0
  106. package/dist/ibmi-mcp-server/utils/cli/argumentParser.d.ts +42 -0
  107. package/dist/ibmi-mcp-server/utils/cli/argumentParser.d.ts.map +1 -0
  108. package/dist/ibmi-mcp-server/utils/cli/argumentParser.js +156 -0
  109. package/dist/ibmi-mcp-server/utils/cli/argumentParser.js.map +1 -0
  110. package/dist/ibmi-mcp-server/utils/cli/index.d.ts +6 -0
  111. package/dist/ibmi-mcp-server/utils/cli/index.d.ts.map +1 -0
  112. package/dist/ibmi-mcp-server/utils/cli/index.js +6 -0
  113. package/dist/ibmi-mcp-server/utils/cli/index.js.map +1 -0
  114. package/dist/ibmi-mcp-server/utils/config/configParser.d.ts +77 -0
  115. package/dist/ibmi-mcp-server/utils/config/configParser.d.ts.map +1 -0
  116. package/dist/ibmi-mcp-server/utils/config/configParser.js +309 -0
  117. package/dist/ibmi-mcp-server/utils/config/configParser.js.map +1 -0
  118. package/dist/ibmi-mcp-server/utils/config/toolConfigBuilder.d.ts +143 -0
  119. package/dist/ibmi-mcp-server/utils/config/toolConfigBuilder.d.ts.map +1 -0
  120. package/dist/ibmi-mcp-server/utils/config/toolConfigBuilder.js +665 -0
  121. package/dist/ibmi-mcp-server/utils/config/toolConfigBuilder.js.map +1 -0
  122. package/dist/ibmi-mcp-server/utils/config/toolConfigCache.d.ts +71 -0
  123. package/dist/ibmi-mcp-server/utils/config/toolConfigCache.d.ts.map +1 -0
  124. package/dist/ibmi-mcp-server/utils/config/toolConfigCache.js +158 -0
  125. package/dist/ibmi-mcp-server/utils/config/toolConfigCache.js.map +1 -0
  126. package/dist/ibmi-mcp-server/utils/config/toolDefinitions.d.ts +206 -0
  127. package/dist/ibmi-mcp-server/utils/config/toolDefinitions.d.ts.map +1 -0
  128. package/dist/ibmi-mcp-server/utils/config/toolDefinitions.js +236 -0
  129. package/dist/ibmi-mcp-server/utils/config/toolDefinitions.js.map +1 -0
  130. package/dist/ibmi-mcp-server/utils/config/toolFactory.d.ts +65 -0
  131. package/dist/ibmi-mcp-server/utils/config/toolFactory.d.ts.map +1 -0
  132. package/dist/ibmi-mcp-server/utils/config/toolFactory.js +236 -0
  133. package/dist/ibmi-mcp-server/utils/config/toolFactory.js.map +1 -0
  134. package/dist/ibmi-mcp-server/utils/config/toolProcessor.d.ts +175 -0
  135. package/dist/ibmi-mcp-server/utils/config/toolProcessor.d.ts.map +1 -0
  136. package/dist/ibmi-mcp-server/utils/config/toolProcessor.js +460 -0
  137. package/dist/ibmi-mcp-server/utils/config/toolProcessor.js.map +1 -0
  138. package/dist/ibmi-mcp-server/utils/config/toolsetManager.d.ts +126 -0
  139. package/dist/ibmi-mcp-server/utils/config/toolsetManager.d.ts.map +1 -0
  140. package/dist/ibmi-mcp-server/utils/config/toolsetManager.js +240 -0
  141. package/dist/ibmi-mcp-server/utils/config/toolsetManager.js.map +1 -0
  142. package/dist/ibmi-mcp-server/utils/config/types.d.ts +74 -0
  143. package/dist/ibmi-mcp-server/utils/config/types.d.ts.map +1 -0
  144. package/dist/ibmi-mcp-server/utils/config/types.js +8 -0
  145. package/dist/ibmi-mcp-server/utils/config/types.js.map +1 -0
  146. package/dist/ibmi-mcp-server/utils/security/sqlSecurityValidator.d.ts +116 -0
  147. package/dist/ibmi-mcp-server/utils/security/sqlSecurityValidator.d.ts.map +1 -0
  148. package/dist/ibmi-mcp-server/utils/security/sqlSecurityValidator.js +426 -0
  149. package/dist/ibmi-mcp-server/utils/security/sqlSecurityValidator.js.map +1 -0
  150. package/dist/ibmi-mcp-server/utils/sql/parameterProcessor.d.ts +182 -0
  151. package/dist/ibmi-mcp-server/utils/sql/parameterProcessor.d.ts.map +1 -0
  152. package/dist/ibmi-mcp-server/utils/sql/parameterProcessor.js +726 -0
  153. package/dist/ibmi-mcp-server/utils/sql/parameterProcessor.js.map +1 -0
  154. package/dist/ibmi-mcp-server/utils/sql/sqlTemplateProcessor.d.ts +90 -0
  155. package/dist/ibmi-mcp-server/utils/sql/sqlTemplateProcessor.d.ts.map +1 -0
  156. package/dist/ibmi-mcp-server/utils/sql/sqlTemplateProcessor.js +187 -0
  157. package/dist/ibmi-mcp-server/utils/sql/sqlTemplateProcessor.js.map +1 -0
  158. package/dist/index.d.ts +10 -0
  159. package/dist/index.d.ts.map +1 -0
  160. package/dist/index.js +270 -0
  161. package/dist/index.js.map +1 -0
  162. package/dist/mcp-server/constants.d.ts +13 -0
  163. package/dist/mcp-server/constants.d.ts.map +1 -0
  164. package/dist/mcp-server/constants.js +13 -0
  165. package/dist/mcp-server/constants.js.map +1 -0
  166. package/dist/mcp-server/logging/index.d.ts +8 -0
  167. package/dist/mcp-server/logging/index.d.ts.map +1 -0
  168. package/dist/mcp-server/logging/index.js +8 -0
  169. package/dist/mcp-server/logging/index.js.map +1 -0
  170. package/dist/mcp-server/logging/setLevelHandler.d.ts +38 -0
  171. package/dist/mcp-server/logging/setLevelHandler.d.ts.map +1 -0
  172. package/dist/mcp-server/logging/setLevelHandler.js +83 -0
  173. package/dist/mcp-server/logging/setLevelHandler.js.map +1 -0
  174. package/dist/mcp-server/resources/echoResource/index.d.ts +14 -0
  175. package/dist/mcp-server/resources/echoResource/index.d.ts.map +1 -0
  176. package/dist/mcp-server/resources/echoResource/index.js +14 -0
  177. package/dist/mcp-server/resources/echoResource/index.js.map +1 -0
  178. package/dist/mcp-server/resources/echoResource/logic.d.ts +37 -0
  179. package/dist/mcp-server/resources/echoResource/logic.d.ts.map +1 -0
  180. package/dist/mcp-server/resources/echoResource/logic.js +46 -0
  181. package/dist/mcp-server/resources/echoResource/logic.js.map +1 -0
  182. package/dist/mcp-server/resources/echoResource/registration.d.ts +7 -0
  183. package/dist/mcp-server/resources/echoResource/registration.d.ts.map +1 -0
  184. package/dist/mcp-server/resources/echoResource/registration.js +51 -0
  185. package/dist/mcp-server/resources/echoResource/registration.js.map +1 -0
  186. package/dist/mcp-server/resources/index.d.ts +10 -0
  187. package/dist/mcp-server/resources/index.d.ts.map +1 -0
  188. package/dist/mcp-server/resources/index.js +19 -0
  189. package/dist/mcp-server/resources/index.js.map +1 -0
  190. package/dist/mcp-server/resources/utils/resource-utils.d.ts +43 -0
  191. package/dist/mcp-server/resources/utils/resource-utils.d.ts.map +1 -0
  192. package/dist/mcp-server/resources/utils/resource-utils.js +44 -0
  193. package/dist/mcp-server/resources/utils/resource-utils.js.map +1 -0
  194. package/dist/mcp-server/server.d.ts +23 -0
  195. package/dist/mcp-server/server.d.ts.map +1 -0
  196. package/dist/mcp-server/server.js +114 -0
  197. package/dist/mcp-server/server.js.map +1 -0
  198. package/dist/mcp-server/tools/catFactFetcher/index.d.ts +8 -0
  199. package/dist/mcp-server/tools/catFactFetcher/index.d.ts.map +1 -0
  200. package/dist/mcp-server/tools/catFactFetcher/index.js +8 -0
  201. package/dist/mcp-server/tools/catFactFetcher/index.js.map +1 -0
  202. package/dist/mcp-server/tools/catFactFetcher/logic.d.ts +52 -0
  203. package/dist/mcp-server/tools/catFactFetcher/logic.d.ts.map +1 -0
  204. package/dist/mcp-server/tools/catFactFetcher/logic.js +95 -0
  205. package/dist/mcp-server/tools/catFactFetcher/logic.js.map +1 -0
  206. package/dist/mcp-server/tools/catFactFetcher/registration.d.ts +9 -0
  207. package/dist/mcp-server/tools/catFactFetcher/registration.d.ts.map +1 -0
  208. package/dist/mcp-server/tools/catFactFetcher/registration.js +43 -0
  209. package/dist/mcp-server/tools/catFactFetcher/registration.js.map +1 -0
  210. package/dist/mcp-server/tools/echoTool/index.d.ts +13 -0
  211. package/dist/mcp-server/tools/echoTool/index.d.ts.map +1 -0
  212. package/dist/mcp-server/tools/echoTool/index.js +13 -0
  213. package/dist/mcp-server/tools/echoTool/index.js.map +1 -0
  214. package/dist/mcp-server/tools/echoTool/logic.d.ts +69 -0
  215. package/dist/mcp-server/tools/echoTool/logic.d.ts.map +1 -0
  216. package/dist/mcp-server/tools/echoTool/logic.js +119 -0
  217. package/dist/mcp-server/tools/echoTool/logic.js.map +1 -0
  218. package/dist/mcp-server/tools/echoTool/registration.d.ts +9 -0
  219. package/dist/mcp-server/tools/echoTool/registration.d.ts.map +1 -0
  220. package/dist/mcp-server/tools/echoTool/registration.js +45 -0
  221. package/dist/mcp-server/tools/echoTool/registration.js.map +1 -0
  222. package/dist/mcp-server/tools/imageTest/index.d.ts +7 -0
  223. package/dist/mcp-server/tools/imageTest/index.d.ts.map +1 -0
  224. package/dist/mcp-server/tools/imageTest/index.js +7 -0
  225. package/dist/mcp-server/tools/imageTest/index.js.map +1 -0
  226. package/dist/mcp-server/tools/imageTest/logic.d.ts +27 -0
  227. package/dist/mcp-server/tools/imageTest/logic.d.ts.map +1 -0
  228. package/dist/mcp-server/tools/imageTest/logic.js +44 -0
  229. package/dist/mcp-server/tools/imageTest/logic.js.map +1 -0
  230. package/dist/mcp-server/tools/imageTest/registration.d.ts +9 -0
  231. package/dist/mcp-server/tools/imageTest/registration.d.ts.map +1 -0
  232. package/dist/mcp-server/tools/imageTest/registration.js +49 -0
  233. package/dist/mcp-server/tools/imageTest/registration.js.map +1 -0
  234. package/dist/mcp-server/tools/index.d.ts +4 -0
  235. package/dist/mcp-server/tools/index.d.ts.map +1 -0
  236. package/dist/mcp-server/tools/index.js +13 -0
  237. package/dist/mcp-server/tools/index.js.map +1 -0
  238. package/dist/mcp-server/tools/utils/tool-utils.d.ts +43 -0
  239. package/dist/mcp-server/tools/utils/tool-utils.d.ts.map +1 -0
  240. package/dist/mcp-server/tools/utils/tool-utils.js +44 -0
  241. package/dist/mcp-server/tools/utils/tool-utils.js.map +1 -0
  242. package/dist/mcp-server/transports/auth/authFactory.d.ts +11 -0
  243. package/dist/mcp-server/transports/auth/authFactory.d.ts.map +1 -0
  244. package/dist/mcp-server/transports/auth/authFactory.js +46 -0
  245. package/dist/mcp-server/transports/auth/authFactory.js.map +1 -0
  246. package/dist/mcp-server/transports/auth/authMiddleware.d.ts +20 -0
  247. package/dist/mcp-server/transports/auth/authMiddleware.d.ts.map +1 -0
  248. package/dist/mcp-server/transports/auth/authMiddleware.js +58 -0
  249. package/dist/mcp-server/transports/auth/authMiddleware.js.map +1 -0
  250. package/dist/mcp-server/transports/auth/index.d.ts +14 -0
  251. package/dist/mcp-server/transports/auth/index.d.ts.map +1 -0
  252. package/dist/mcp-server/transports/auth/index.js +12 -0
  253. package/dist/mcp-server/transports/auth/index.js.map +1 -0
  254. package/dist/mcp-server/transports/auth/lib/authContext.d.ts +34 -0
  255. package/dist/mcp-server/transports/auth/lib/authContext.d.ts.map +1 -0
  256. package/dist/mcp-server/transports/auth/lib/authContext.js +25 -0
  257. package/dist/mcp-server/transports/auth/lib/authContext.js.map +1 -0
  258. package/dist/mcp-server/transports/auth/lib/authTypes.d.ts +15 -0
  259. package/dist/mcp-server/transports/auth/lib/authTypes.d.ts.map +1 -0
  260. package/dist/mcp-server/transports/auth/lib/authTypes.js +9 -0
  261. package/dist/mcp-server/transports/auth/lib/authTypes.js.map +1 -0
  262. package/dist/mcp-server/transports/auth/lib/authUtils.d.ts +19 -0
  263. package/dist/mcp-server/transports/auth/lib/authUtils.d.ts.map +1 -0
  264. package/dist/mcp-server/transports/auth/lib/authUtils.js +53 -0
  265. package/dist/mcp-server/transports/auth/lib/authUtils.js.map +1 -0
  266. package/dist/mcp-server/transports/auth/strategies/authStrategy.d.ts +18 -0
  267. package/dist/mcp-server/transports/auth/strategies/authStrategy.d.ts.map +1 -0
  268. package/dist/mcp-server/transports/auth/strategies/authStrategy.js +2 -0
  269. package/dist/mcp-server/transports/auth/strategies/authStrategy.js.map +1 -0
  270. package/dist/mcp-server/transports/auth/strategies/ibmiTokenStrategy.d.ts +21 -0
  271. package/dist/mcp-server/transports/auth/strategies/ibmiTokenStrategy.d.ts.map +1 -0
  272. package/dist/mcp-server/transports/auth/strategies/ibmiTokenStrategy.js +64 -0
  273. package/dist/mcp-server/transports/auth/strategies/ibmiTokenStrategy.js.map +1 -0
  274. package/dist/mcp-server/transports/auth/strategies/jwtStrategy.d.ts +8 -0
  275. package/dist/mcp-server/transports/auth/strategies/jwtStrategy.d.ts.map +1 -0
  276. package/dist/mcp-server/transports/auth/strategies/jwtStrategy.js +118 -0
  277. package/dist/mcp-server/transports/auth/strategies/jwtStrategy.js.map +1 -0
  278. package/dist/mcp-server/transports/auth/strategies/oauthStrategy.d.ts +8 -0
  279. package/dist/mcp-server/transports/auth/strategies/oauthStrategy.d.ts.map +1 -0
  280. package/dist/mcp-server/transports/auth/strategies/oauthStrategy.js +118 -0
  281. package/dist/mcp-server/transports/auth/strategies/oauthStrategy.js.map +1 -0
  282. package/dist/mcp-server/transports/core/autoTransportManager.d.ts +48 -0
  283. package/dist/mcp-server/transports/core/autoTransportManager.d.ts.map +1 -0
  284. package/dist/mcp-server/transports/core/autoTransportManager.js +57 -0
  285. package/dist/mcp-server/transports/core/autoTransportManager.js.map +1 -0
  286. package/dist/mcp-server/transports/core/baseTransportManager.d.ts +17 -0
  287. package/dist/mcp-server/transports/core/baseTransportManager.d.ts.map +1 -0
  288. package/dist/mcp-server/transports/core/baseTransportManager.js +20 -0
  289. package/dist/mcp-server/transports/core/baseTransportManager.js.map +1 -0
  290. package/dist/mcp-server/transports/core/headerUtils.d.ts +27 -0
  291. package/dist/mcp-server/transports/core/headerUtils.d.ts.map +1 -0
  292. package/dist/mcp-server/transports/core/headerUtils.js +53 -0
  293. package/dist/mcp-server/transports/core/headerUtils.js.map +1 -0
  294. package/dist/mcp-server/transports/core/honoNodeBridge.d.ts +77 -0
  295. package/dist/mcp-server/transports/core/honoNodeBridge.d.ts.map +1 -0
  296. package/dist/mcp-server/transports/core/honoNodeBridge.js +150 -0
  297. package/dist/mcp-server/transports/core/honoNodeBridge.js.map +1 -0
  298. package/dist/mcp-server/transports/core/statefulTransportManager.d.ts +81 -0
  299. package/dist/mcp-server/transports/core/statefulTransportManager.d.ts.map +1 -0
  300. package/dist/mcp-server/transports/core/statefulTransportManager.js +326 -0
  301. package/dist/mcp-server/transports/core/statefulTransportManager.js.map +1 -0
  302. package/dist/mcp-server/transports/core/statelessTransportManager.d.ts +57 -0
  303. package/dist/mcp-server/transports/core/statelessTransportManager.d.ts.map +1 -0
  304. package/dist/mcp-server/transports/core/statelessTransportManager.js +151 -0
  305. package/dist/mcp-server/transports/core/statelessTransportManager.js.map +1 -0
  306. package/dist/mcp-server/transports/core/transportRequest.d.ts +9 -0
  307. package/dist/mcp-server/transports/core/transportRequest.d.ts.map +1 -0
  308. package/dist/mcp-server/transports/core/transportRequest.js +2 -0
  309. package/dist/mcp-server/transports/core/transportRequest.js.map +1 -0
  310. package/dist/mcp-server/transports/core/transportTypes.d.ts +112 -0
  311. package/dist/mcp-server/transports/core/transportTypes.d.ts.map +1 -0
  312. package/dist/mcp-server/transports/core/transportTypes.js +15 -0
  313. package/dist/mcp-server/transports/core/transportTypes.js.map +1 -0
  314. package/dist/mcp-server/transports/http/httpErrorHandler.d.ts +25 -0
  315. package/dist/mcp-server/transports/http/httpErrorHandler.d.ts.map +1 -0
  316. package/dist/mcp-server/transports/http/httpErrorHandler.js +86 -0
  317. package/dist/mcp-server/transports/http/httpErrorHandler.js.map +1 -0
  318. package/dist/mcp-server/transports/http/httpTransport.d.ts +27 -0
  319. package/dist/mcp-server/transports/http/httpTransport.d.ts.map +1 -0
  320. package/dist/mcp-server/transports/http/httpTransport.js +407 -0
  321. package/dist/mcp-server/transports/http/httpTransport.js.map +1 -0
  322. package/dist/mcp-server/transports/http/httpTypes.d.ts +17 -0
  323. package/dist/mcp-server/transports/http/httpTypes.d.ts.map +1 -0
  324. package/dist/mcp-server/transports/http/httpTypes.js +6 -0
  325. package/dist/mcp-server/transports/http/httpTypes.js.map +1 -0
  326. package/dist/mcp-server/transports/http/index.d.ts +8 -0
  327. package/dist/mcp-server/transports/http/index.d.ts.map +1 -0
  328. package/dist/mcp-server/transports/http/index.js +7 -0
  329. package/dist/mcp-server/transports/http/index.js.map +1 -0
  330. package/dist/mcp-server/transports/http/mcpTransportMiddleware.d.ts +21 -0
  331. package/dist/mcp-server/transports/http/mcpTransportMiddleware.d.ts.map +1 -0
  332. package/dist/mcp-server/transports/http/mcpTransportMiddleware.js +54 -0
  333. package/dist/mcp-server/transports/http/mcpTransportMiddleware.js.map +1 -0
  334. package/dist/mcp-server/transports/stdio/index.d.ts +6 -0
  335. package/dist/mcp-server/transports/stdio/index.d.ts.map +1 -0
  336. package/dist/mcp-server/transports/stdio/index.js +6 -0
  337. package/dist/mcp-server/transports/stdio/index.js.map +1 -0
  338. package/dist/mcp-server/transports/stdio/stdioTransport.d.ts +43 -0
  339. package/dist/mcp-server/transports/stdio/stdioTransport.d.ts.map +1 -0
  340. package/dist/mcp-server/transports/stdio/stdioTransport.js +71 -0
  341. package/dist/mcp-server/transports/stdio/stdioTransport.js.map +1 -0
  342. package/dist/services/duck-db/duckDBConnectionManager.d.ts +55 -0
  343. package/dist/services/duck-db/duckDBConnectionManager.d.ts.map +1 -0
  344. package/dist/services/duck-db/duckDBConnectionManager.js +184 -0
  345. package/dist/services/duck-db/duckDBConnectionManager.js.map +1 -0
  346. package/dist/services/duck-db/duckDBQueryExecutor.d.ts +18 -0
  347. package/dist/services/duck-db/duckDBQueryExecutor.d.ts.map +1 -0
  348. package/dist/services/duck-db/duckDBQueryExecutor.js +115 -0
  349. package/dist/services/duck-db/duckDBQueryExecutor.js.map +1 -0
  350. package/dist/services/duck-db/duckDBService.d.ts +27 -0
  351. package/dist/services/duck-db/duckDBService.d.ts.map +1 -0
  352. package/dist/services/duck-db/duckDBService.js +151 -0
  353. package/dist/services/duck-db/duckDBService.js.map +1 -0
  354. package/dist/services/duck-db/types.d.ts +135 -0
  355. package/dist/services/duck-db/types.d.ts.map +1 -0
  356. package/dist/services/duck-db/types.js +6 -0
  357. package/dist/services/duck-db/types.js.map +1 -0
  358. package/dist/services/llm-providers/openRouterProvider.d.ts +36 -0
  359. package/dist/services/llm-providers/openRouterProvider.d.ts.map +1 -0
  360. package/dist/services/llm-providers/openRouterProvider.js +235 -0
  361. package/dist/services/llm-providers/openRouterProvider.js.map +1 -0
  362. package/dist/services/supabase/supabaseClient.d.ts +25 -0
  363. package/dist/services/supabase/supabaseClient.d.ts.map +1 -0
  364. package/dist/services/supabase/supabaseClient.js +68 -0
  365. package/dist/services/supabase/supabaseClient.js.map +1 -0
  366. package/dist/storage/duckdbExample.d.ts +8 -0
  367. package/dist/storage/duckdbExample.d.ts.map +1 -0
  368. package/dist/storage/duckdbExample.js +197 -0
  369. package/dist/storage/duckdbExample.js.map +1 -0
  370. package/dist/types-global/errors.d.ts +101 -0
  371. package/dist/types-global/errors.d.ts.map +1 -0
  372. package/dist/types-global/errors.js +109 -0
  373. package/dist/types-global/errors.js.map +1 -0
  374. package/dist/utils/formatting/index.d.ts +10 -0
  375. package/dist/utils/formatting/index.d.ts.map +1 -0
  376. package/dist/utils/formatting/index.js +10 -0
  377. package/dist/utils/formatting/index.js.map +1 -0
  378. package/dist/utils/formatting/markdownBuilder.d.ts +348 -0
  379. package/dist/utils/formatting/markdownBuilder.d.ts.map +1 -0
  380. package/dist/utils/formatting/markdownBuilder.js +501 -0
  381. package/dist/utils/formatting/markdownBuilder.js.map +1 -0
  382. package/dist/utils/formatting/sqlFormattingUtils.d.ts +69 -0
  383. package/dist/utils/formatting/sqlFormattingUtils.d.ts.map +1 -0
  384. package/dist/utils/formatting/sqlFormattingUtils.js +131 -0
  385. package/dist/utils/formatting/sqlFormattingUtils.js.map +1 -0
  386. package/dist/utils/formatting/tableFormatter.d.ts +268 -0
  387. package/dist/utils/formatting/tableFormatter.d.ts.map +1 -0
  388. package/dist/utils/formatting/tableFormatter.js +550 -0
  389. package/dist/utils/formatting/tableFormatter.js.map +1 -0
  390. package/dist/utils/index.d.ts +13 -0
  391. package/dist/utils/index.d.ts.map +1 -0
  392. package/dist/utils/index.js +21 -0
  393. package/dist/utils/index.js.map +1 -0
  394. package/dist/utils/internal/asyncContext.d.ts +35 -0
  395. package/dist/utils/internal/asyncContext.d.ts.map +1 -0
  396. package/dist/utils/internal/asyncContext.js +38 -0
  397. package/dist/utils/internal/asyncContext.js.map +1 -0
  398. package/dist/utils/internal/errorHandler.d.ts +95 -0
  399. package/dist/utils/internal/errorHandler.d.ts.map +1 -0
  400. package/dist/utils/internal/errorHandler.js +210 -0
  401. package/dist/utils/internal/errorHandler.js.map +1 -0
  402. package/dist/utils/internal/index.d.ts +12 -0
  403. package/dist/utils/internal/index.d.ts.map +1 -0
  404. package/dist/utils/internal/index.js +12 -0
  405. package/dist/utils/internal/index.js.map +1 -0
  406. package/dist/utils/internal/logger.d.ts +30 -0
  407. package/dist/utils/internal/logger.d.ts.map +1 -0
  408. package/dist/utils/internal/logger.js +228 -0
  409. package/dist/utils/internal/logger.js.map +1 -0
  410. package/dist/utils/internal/logging-helpers.d.ts +49 -0
  411. package/dist/utils/internal/logging-helpers.d.ts.map +1 -0
  412. package/dist/utils/internal/logging-helpers.js +60 -0
  413. package/dist/utils/internal/logging-helpers.js.map +1 -0
  414. package/dist/utils/internal/performance.d.ts +19 -0
  415. package/dist/utils/internal/performance.d.ts.map +1 -0
  416. package/dist/utils/internal/performance.js +110 -0
  417. package/dist/utils/internal/performance.js.map +1 -0
  418. package/dist/utils/internal/requestContext.d.ts +41 -0
  419. package/dist/utils/internal/requestContext.d.ts.map +1 -0
  420. package/dist/utils/internal/requestContext.js +47 -0
  421. package/dist/utils/internal/requestContext.js.map +1 -0
  422. package/dist/utils/metrics/index.d.ts +8 -0
  423. package/dist/utils/metrics/index.d.ts.map +1 -0
  424. package/dist/utils/metrics/index.js +8 -0
  425. package/dist/utils/metrics/index.js.map +1 -0
  426. package/dist/utils/metrics/tokenCounter.d.ts +36 -0
  427. package/dist/utils/metrics/tokenCounter.d.ts.map +1 -0
  428. package/dist/utils/metrics/tokenCounter.js +115 -0
  429. package/dist/utils/metrics/tokenCounter.js.map +1 -0
  430. package/dist/utils/network/fetchWithTimeout.d.ts +22 -0
  431. package/dist/utils/network/fetchWithTimeout.d.ts.map +1 -0
  432. package/dist/utils/network/fetchWithTimeout.js +78 -0
  433. package/dist/utils/network/fetchWithTimeout.js.map +1 -0
  434. package/dist/utils/network/index.d.ts +7 -0
  435. package/dist/utils/network/index.d.ts.map +1 -0
  436. package/dist/utils/network/index.js +6 -0
  437. package/dist/utils/network/index.js.map +1 -0
  438. package/dist/utils/parsing/dateParser.d.ts +73 -0
  439. package/dist/utils/parsing/dateParser.d.ts.map +1 -0
  440. package/dist/utils/parsing/dateParser.js +108 -0
  441. package/dist/utils/parsing/dateParser.js.map +1 -0
  442. package/dist/utils/parsing/index.d.ts +9 -0
  443. package/dist/utils/parsing/index.d.ts.map +1 -0
  444. package/dist/utils/parsing/index.js +9 -0
  445. package/dist/utils/parsing/index.js.map +1 -0
  446. package/dist/utils/parsing/jsonParser.d.ts +83 -0
  447. package/dist/utils/parsing/jsonParser.d.ts.map +1 -0
  448. package/dist/utils/parsing/jsonParser.js +128 -0
  449. package/dist/utils/parsing/jsonParser.js.map +1 -0
  450. package/dist/utils/scheduling/index.d.ts +7 -0
  451. package/dist/utils/scheduling/index.d.ts.map +1 -0
  452. package/dist/utils/scheduling/index.js +7 -0
  453. package/dist/utils/scheduling/index.js.map +1 -0
  454. package/dist/utils/scheduling/scheduler.d.ts +73 -0
  455. package/dist/utils/scheduling/scheduler.d.ts.map +1 -0
  456. package/dist/utils/scheduling/scheduler.js +155 -0
  457. package/dist/utils/scheduling/scheduler.js.map +1 -0
  458. package/dist/utils/security/idGenerator.d.ts +144 -0
  459. package/dist/utils/security/idGenerator.d.ts.map +1 -0
  460. package/dist/utils/security/idGenerator.js +232 -0
  461. package/dist/utils/security/idGenerator.js.map +1 -0
  462. package/dist/utils/security/index.d.ts +10 -0
  463. package/dist/utils/security/index.d.ts.map +1 -0
  464. package/dist/utils/security/index.js +10 -0
  465. package/dist/utils/security/index.js.map +1 -0
  466. package/dist/utils/security/rateLimiter.d.ts +109 -0
  467. package/dist/utils/security/rateLimiter.d.ts.map +1 -0
  468. package/dist/utils/security/rateLimiter.js +202 -0
  469. package/dist/utils/security/rateLimiter.js.map +1 -0
  470. package/dist/utils/security/sanitization.d.ts +185 -0
  471. package/dist/utils/security/sanitization.d.ts.map +1 -0
  472. package/dist/utils/security/sanitization.js +472 -0
  473. package/dist/utils/security/sanitization.js.map +1 -0
  474. package/dist/utils/telemetry/instrumentation.d.ts +8 -0
  475. package/dist/utils/telemetry/instrumentation.d.ts.map +1 -0
  476. package/dist/utils/telemetry/instrumentation.js +121 -0
  477. package/dist/utils/telemetry/instrumentation.js.map +1 -0
  478. package/dist/utils/telemetry/semconv.d.ts +16 -0
  479. package/dist/utils/telemetry/semconv.d.ts.map +1 -0
  480. package/dist/utils/telemetry/semconv.js +16 -0
  481. package/dist/utils/telemetry/semconv.js.map +1 -0
  482. package/package.json +161 -0
@@ -0,0 +1,167 @@
1
+ /**
2
+ * @fileoverview Tool runtime schema definitions
3
+ * Zod schemas for tool execution, responses, and runtime configurations
4
+ *
5
+ * @module src/ibmi-mcp-server/schemas/tools
6
+ */
7
+ import { z } from "zod";
8
+ import { ColumnDefinitionSchema } from "./common.js";
9
+ /**
10
+ * Standardized output schema for SQL-based MCP tools.
11
+ * Ensures a consistent shape across all generated tool definitions.
12
+ */
13
+ export const StandardSqlToolOutputSchema = z
14
+ .object({
15
+ success: z.boolean().describe("Whether the SQL execution succeeded"),
16
+ data: z.array(z.record(z.any())).describe("Rows returned by the SQL query"),
17
+ error: z.string().optional().describe("Error message when execution fails"),
18
+ errorCode: z
19
+ .union([z.string(), z.number()])
20
+ .optional()
21
+ .describe("Machine-readable error code when execution fails"),
22
+ errorDetails: z
23
+ .unknown()
24
+ .optional()
25
+ .describe("Any additional diagnostic information about failures"),
26
+ metadata: z
27
+ .object({
28
+ executionTime: z
29
+ .number()
30
+ .optional()
31
+ .describe("Execution duration in milliseconds"),
32
+ rowCount: z.number().optional().describe("Row count returned"),
33
+ affectedRows: z
34
+ .number()
35
+ .optional()
36
+ .describe("Number of rows affected for write operations"),
37
+ columns: z
38
+ .array(ColumnDefinitionSchema)
39
+ .optional()
40
+ .describe("Column metadata for the result set"),
41
+ parameterMode: z
42
+ .string()
43
+ .optional()
44
+ .describe("Parameter binding mode used during execution"),
45
+ parameterCount: z
46
+ .number()
47
+ .optional()
48
+ .describe("Number of parameters bound to the query"),
49
+ processedParameters: z
50
+ .array(z.string())
51
+ .optional()
52
+ .describe("Ordered list of parameter names processed during binding"),
53
+ toolName: z
54
+ .string()
55
+ .optional()
56
+ .describe("Name of the tool that executed this query"),
57
+ sqlStatement: z
58
+ .string()
59
+ .optional()
60
+ .describe("The SQL statement that was executed"),
61
+ parameters: z
62
+ .record(z.unknown())
63
+ .optional()
64
+ .describe("Parameters passed to the query"),
65
+ })
66
+ .optional()
67
+ .describe("Execution metadata including performance and parameters"),
68
+ })
69
+ .strict()
70
+ .describe("Standard SQL execution payload");
71
+ /**
72
+ * SQL tool execution result schema aligned with standard tool responses
73
+ */
74
+ export const SqlToolExecutionResultSchema = z
75
+ .object({
76
+ data: z.array(z.unknown()).describe("Query result data"),
77
+ rowCount: z.number().describe("Number of rows returned"),
78
+ affectedRows: z
79
+ .number()
80
+ .optional()
81
+ .describe("Number of rows affected (for non-SELECT operations)"),
82
+ columns: z
83
+ .array(ColumnDefinitionSchema)
84
+ .optional()
85
+ .describe("Column metadata information"),
86
+ executionTime: z.number().describe("Execution time in milliseconds"),
87
+ parameterMetadata: z
88
+ .object({
89
+ mode: z.string().describe("Parameter binding mode"),
90
+ parameterCount: z.number().describe("Number of parameters processed"),
91
+ processedParameters: z
92
+ .array(z.string())
93
+ .describe("List of processed parameter names"),
94
+ })
95
+ .optional()
96
+ .describe("Parameter processing metadata"),
97
+ })
98
+ .describe("SQL tool execution result structure");
99
+ /**
100
+ * Tool processing result schema for configuration building
101
+ */
102
+ export const ToolProcessingResultSchema = z
103
+ .object({
104
+ success: z.boolean().describe("Whether tool processing succeeded"),
105
+ toolConfigs: z
106
+ .array(z.unknown())
107
+ .optional()
108
+ .describe("Generated tool configurations (if successful)"),
109
+ errors: z
110
+ .array(z.string())
111
+ .optional()
112
+ .describe("Processing errors (if unsuccessful)"),
113
+ stats: z
114
+ .object({
115
+ toolCount: z.number().describe("Number of tools processed"),
116
+ sourceCount: z.number().describe("Number of sources referenced"),
117
+ toolsetCount: z.number().describe("Number of toolsets created"),
118
+ totalParameterCount: z
119
+ .number()
120
+ .describe("Total parameters across all tools"),
121
+ })
122
+ .optional()
123
+ .describe("Processing statistics"),
124
+ })
125
+ .describe("Result of tool processing operation");
126
+ /**
127
+ * Parsing result schema with validation information
128
+ */
129
+ export const ParsingResultSchema = z
130
+ .object({
131
+ success: z.boolean().describe("Whether parsing was successful"),
132
+ config: z
133
+ .unknown()
134
+ .optional()
135
+ .describe("Parsed configuration (if successful)"),
136
+ errors: z
137
+ .array(z.string())
138
+ .optional()
139
+ .describe("Validation errors (if unsuccessful)"),
140
+ processedTools: z
141
+ .array(z.unknown())
142
+ .optional()
143
+ .describe("Processed tools ready for registration"),
144
+ stats: z
145
+ .object({
146
+ sourceCount: z.number().describe("Number of sources in configuration"),
147
+ toolCount: z.number().describe("Number of tools in configuration"),
148
+ enabledToolCount: z
149
+ .number()
150
+ .optional()
151
+ .describe("Number of enabled tools"),
152
+ disabledToolCount: z
153
+ .number()
154
+ .optional()
155
+ .describe("Number of disabled tools"),
156
+ toolsetCount: z
157
+ .number()
158
+ .describe("Number of toolsets in configuration"),
159
+ totalParameterCount: z
160
+ .number()
161
+ .describe("Total parameters across all tools"),
162
+ })
163
+ .optional()
164
+ .describe("Statistics about the parsed configuration"),
165
+ })
166
+ .describe("Result of YAML configuration parsing");
167
+ //# sourceMappingURL=tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../../src/ibmi-mcp-server/schemas/tools.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,82 @@
1
+ /**
2
+ * @fileoverview Authenticated IBM i pool management system.
3
+ * Manages per-token Mapepire Pool instances with lifecycle management.
4
+ * Extends BaseConnectionPool for consistent connection management patterns.
5
+ *
6
+ * @module src/ibmi-mcp-server/services/authenticatedPoolManager
7
+ */
8
+ import { BindingValue, QueryResult } from "@ibm/mapepire-js";
9
+ import { RequestContext } from "../../utils/index.js";
10
+ import { IBMiCredentials } from "../auth/tokenManager.js";
11
+ import { BaseConnectionPool } from "./baseConnectionPool.js";
12
+ /**
13
+ * Pool configuration options for authenticated sessions
14
+ */
15
+ export interface AuthPoolOptions {
16
+ startingSize?: number;
17
+ maxSize?: number;
18
+ }
19
+ /**
20
+ * Pool manager for per-token authenticated IBM i connections
21
+ * Extends BaseConnectionPool to leverage shared connection management
22
+ */
23
+ export declare class AuthenticatedPoolManager extends BaseConnectionPool<string> {
24
+ private static instance;
25
+ private tokenManager;
26
+ private credentialsMap;
27
+ private constructor();
28
+ /**
29
+ * Get singleton instance of AuthenticatedPoolManager
30
+ */
31
+ static getInstance(): AuthenticatedPoolManager;
32
+ /**
33
+ * Create a new authenticated pool for a token
34
+ * @param token - Authentication token
35
+ * @param credentials - IBM i credentials
36
+ * @param options - Pool configuration options
37
+ * @param context - Request context for logging
38
+ * @returns Promise resolving when pool is created
39
+ */
40
+ createPool(token: string, credentials: IBMiCredentials, options?: AuthPoolOptions, context?: RequestContext): Promise<void>;
41
+ /**
42
+ * Validate token and ensure pool is available
43
+ * @param token - Authentication token
44
+ * @param context - Request context for logging
45
+ * @returns Boolean indicating if token is valid and pool exists
46
+ */
47
+ private validateTokenAndPool;
48
+ /**
49
+ * Execute a query using an authenticated pool
50
+ * @param token - Authentication token
51
+ * @param query - SQL query to execute
52
+ * @param params - Query parameters
53
+ * @param context - Request context for logging
54
+ * @returns Promise resolving to query result
55
+ */
56
+ executeQuery<T = unknown>(token: string, query: string, params?: BindingValue[], context?: RequestContext): Promise<QueryResult<T>>;
57
+ /**
58
+ * Remove and close a pool by token
59
+ * @param token - Authentication token
60
+ * @param context - Request context for logging
61
+ * @returns Promise resolving when pool is closed
62
+ */
63
+ removePool(token: string, context?: RequestContext): Promise<boolean>;
64
+ /**
65
+ * Clean up pools for expired tokens
66
+ * @param context - Request context for logging
67
+ */
68
+ cleanupExpiredPools(context?: RequestContext): Promise<void>;
69
+ /**
70
+ * Get pool statistics
71
+ * @returns Statistics about authenticated pools
72
+ */
73
+ getPoolStats(): {
74
+ totalPools: number;
75
+ poolsByUser: Record<string, number>;
76
+ };
77
+ /**
78
+ * Shutdown all pools and cleanup
79
+ */
80
+ shutdown(): Promise<void>;
81
+ }
82
+ //# sourceMappingURL=authenticatedPoolManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"authenticatedPoolManager.d.ts","sourceRoot":"","sources":["../../../src/ibmi-mcp-server/services/authenticatedPoolManager.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAEL,cAAc,EAEf,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EAAgB,eAAe,EAAE,MAAM,yBAAyB,CAAC;AACxE,OAAO,EACL,kBAAkB,EAEnB,MAAM,yBAAyB,CAAC;AAEjC;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;GAGG;AACH,qBAAa,wBAAyB,SAAQ,kBAAkB,CAAC,MAAM,CAAC;IACtE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAA2B;IAClD,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,cAAc,CAAsC;IAE5D,OAAO;IAKP;;OAEG;IACH,MAAM,CAAC,WAAW,IAAI,wBAAwB;IAO9C;;;;;;;OAOG;IACG,UAAU,CACd,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,eAAe,EAC5B,OAAO,GAAE,eAAoB,EAC7B,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,IAAI,CAAC;IAyDhB;;;;;OAKG;YACW,oBAAoB;IAyClC;;;;;;;OAOG;IACG,YAAY,CAAC,CAAC,GAAG,OAAO,EAC5B,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,MAAM,CAAC,EAAE,YAAY,EAAE,EACvB,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IA2D1B;;;;;OAKG;IACG,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC;IA8C3E;;;OAGG;IACG,mBAAmB,CAAC,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAsClE;;;OAGG;IACH,YAAY,IAAI;QACd,UAAU,EAAE,MAAM,CAAC;QACnB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KACrC;IAiBD;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAqBhC"}
@@ -0,0 +1,262 @@
1
+ /**
2
+ * @fileoverview Authenticated IBM i pool management system.
3
+ * Manages per-token Mapepire Pool instances with lifecycle management.
4
+ * Extends BaseConnectionPool for consistent connection management patterns.
5
+ *
6
+ * @module src/ibmi-mcp-server/services/authenticatedPoolManager
7
+ */
8
+ import { logger, requestContextService, } from "../../utils/index.js";
9
+ import { ErrorHandler } from "../../utils/internal/errorHandler.js";
10
+ import { JsonRpcErrorCode, McpError } from "../../types-global/errors.js";
11
+ import { TokenManager } from "../auth/tokenManager.js";
12
+ import { BaseConnectionPool, } from "./baseConnectionPool.js";
13
+ /**
14
+ * Pool manager for per-token authenticated IBM i connections
15
+ * Extends BaseConnectionPool to leverage shared connection management
16
+ */
17
+ export class AuthenticatedPoolManager extends BaseConnectionPool {
18
+ static instance;
19
+ tokenManager;
20
+ credentialsMap = new Map();
21
+ constructor() {
22
+ super();
23
+ this.tokenManager = TokenManager.getInstance();
24
+ }
25
+ /**
26
+ * Get singleton instance of AuthenticatedPoolManager
27
+ */
28
+ static getInstance() {
29
+ if (!AuthenticatedPoolManager.instance) {
30
+ AuthenticatedPoolManager.instance = new AuthenticatedPoolManager();
31
+ }
32
+ return AuthenticatedPoolManager.instance;
33
+ }
34
+ /**
35
+ * Create a new authenticated pool for a token
36
+ * @param token - Authentication token
37
+ * @param credentials - IBM i credentials
38
+ * @param options - Pool configuration options
39
+ * @param context - Request context for logging
40
+ * @returns Promise resolving when pool is created
41
+ */
42
+ async createPool(token, credentials, options = {}, context) {
43
+ const operationContext = context ||
44
+ requestContextService.createRequestContext({
45
+ operation: "createAuthenticatedPool",
46
+ token: token.substring(0, 10) + "...",
47
+ });
48
+ return ErrorHandler.tryCatch(async () => {
49
+ logger.info({
50
+ ...operationContext,
51
+ user: credentials.user,
52
+ host: credentials.host,
53
+ startingSize: options.startingSize || 2,
54
+ maxSize: options.maxSize || 10,
55
+ rejectUnauthorized: credentials.rejectUnauthorized,
56
+ }, "Creating authenticated pool");
57
+ // Store credentials mapping for this token
58
+ this.credentialsMap.set(token, credentials);
59
+ // Convert IBMi credentials to pool connection config
60
+ const poolConfig = {
61
+ host: credentials.host,
62
+ user: credentials.user,
63
+ password: credentials.password,
64
+ port: credentials.port,
65
+ ignoreUnauthorized: !credentials.rejectUnauthorized,
66
+ maxSize: options.maxSize || 10,
67
+ startingSize: options.startingSize || 2,
68
+ };
69
+ // Initialize pool using base class method
70
+ await this.initializePool(token, poolConfig, operationContext);
71
+ logger.info({
72
+ ...operationContext,
73
+ user: credentials.user,
74
+ poolCount: this.pools.size,
75
+ }, "Authenticated pool created successfully");
76
+ }, {
77
+ operation: "createAuthenticatedPool",
78
+ context: operationContext,
79
+ errorCode: JsonRpcErrorCode.InitializationFailed,
80
+ critical: false,
81
+ });
82
+ }
83
+ /**
84
+ * Validate token and ensure pool is available
85
+ * @param token - Authentication token
86
+ * @param context - Request context for logging
87
+ * @returns Boolean indicating if token is valid and pool exists
88
+ */
89
+ async validateTokenAndPool(token, context) {
90
+ // First validate the token
91
+ const tokenValidation = this.tokenManager.validateToken(token, context);
92
+ if (!tokenValidation.valid || !tokenValidation.session) {
93
+ logger.debug({
94
+ ...context,
95
+ error: tokenValidation.error,
96
+ }, "Token validation failed for pool access");
97
+ return false;
98
+ }
99
+ // Check if pool exists for this token
100
+ const poolState = this.pools.get(token);
101
+ if (!poolState) {
102
+ logger.debug({
103
+ ...context,
104
+ user: tokenValidation.session.credentials.user,
105
+ }, "Pool not found for valid token");
106
+ return false;
107
+ }
108
+ logger.debug({
109
+ ...context,
110
+ user: tokenValidation.session.credentials.user,
111
+ }, "Token and pool validation successful");
112
+ return true;
113
+ }
114
+ /**
115
+ * Execute a query using an authenticated pool
116
+ * @param token - Authentication token
117
+ * @param query - SQL query to execute
118
+ * @param params - Query parameters
119
+ * @param context - Request context for logging
120
+ * @returns Promise resolving to query result
121
+ */
122
+ async executeQuery(token, query, params, context) {
123
+ const operationContext = context ||
124
+ requestContextService.createRequestContext({
125
+ operation: "executeAuthenticatedQuery",
126
+ token: token.substring(0, 10) + "...",
127
+ });
128
+ return ErrorHandler.tryCatch(async () => {
129
+ // Validate token and ensure pool exists
130
+ const isValid = await this.validateTokenAndPool(token, operationContext);
131
+ if (!isValid) {
132
+ throw new McpError(JsonRpcErrorCode.Unauthorized, "Invalid or expired authentication token");
133
+ }
134
+ logger.debug({
135
+ ...operationContext,
136
+ queryLength: query.length,
137
+ paramCount: params?.length || 0,
138
+ }, "Executing authenticated query");
139
+ // Use base class executeQuery method
140
+ const result = await super.executeQuery(token, query, params, operationContext);
141
+ logger.debug({
142
+ ...operationContext,
143
+ rowCount: result.data?.length || 0,
144
+ success: result.success,
145
+ executionTime: result.execution_time,
146
+ }, "Authenticated query completed");
147
+ return result;
148
+ }, {
149
+ operation: "executeAuthenticatedQuery",
150
+ context: operationContext,
151
+ errorCode: JsonRpcErrorCode.DatabaseError,
152
+ });
153
+ }
154
+ /**
155
+ * Remove and close a pool by token
156
+ * @param token - Authentication token
157
+ * @param context - Request context for logging
158
+ * @returns Promise resolving when pool is closed
159
+ */
160
+ async removePool(token, context) {
161
+ const operationContext = context ||
162
+ requestContextService.createRequestContext({
163
+ operation: "removeAuthenticatedPool",
164
+ token: token.substring(0, 10) + "...",
165
+ });
166
+ const poolState = this.pools.get(token);
167
+ if (!poolState) {
168
+ logger.debug({ ...operationContext }, "Pool not found for removal");
169
+ return false;
170
+ }
171
+ try {
172
+ // Get credentials for logging before removal
173
+ const credentials = this.credentialsMap.get(token);
174
+ // Use base class closePool method
175
+ await this.closePool(token, operationContext);
176
+ // Clean up credentials mapping
177
+ this.credentialsMap.delete(token);
178
+ logger.info({
179
+ ...operationContext,
180
+ user: credentials?.user,
181
+ poolCount: this.pools.size,
182
+ }, "Authenticated pool removed successfully");
183
+ return true;
184
+ }
185
+ catch (error) {
186
+ logger.error({
187
+ ...operationContext,
188
+ error: error instanceof Error ? error.message : String(error),
189
+ }, "Error removing authenticated pool");
190
+ return false;
191
+ }
192
+ }
193
+ /**
194
+ * Clean up pools for expired tokens
195
+ * @param context - Request context for logging
196
+ */
197
+ async cleanupExpiredPools(context) {
198
+ const operationContext = context ||
199
+ requestContextService.createRequestContext({
200
+ operation: "cleanupExpiredPools",
201
+ });
202
+ const expiredTokens = [];
203
+ // Check each pool's token validity
204
+ for (const [token] of this.pools.entries()) {
205
+ const tokenValidation = this.tokenManager.validateToken(token);
206
+ if (!tokenValidation.valid) {
207
+ expiredTokens.push(token);
208
+ }
209
+ }
210
+ // Remove expired pools
211
+ let cleanupCount = 0;
212
+ for (const token of expiredTokens) {
213
+ const removed = await this.removePool(token, operationContext);
214
+ if (removed) {
215
+ cleanupCount++;
216
+ }
217
+ }
218
+ if (cleanupCount > 0) {
219
+ logger.info({
220
+ ...operationContext,
221
+ cleanupCount,
222
+ remainingPools: this.pools.size,
223
+ }, "Cleaned up expired pools");
224
+ }
225
+ }
226
+ /**
227
+ * Get pool statistics
228
+ * @returns Statistics about authenticated pools
229
+ */
230
+ getPoolStats() {
231
+ const poolsByUser = {};
232
+ // Count pools by user from credentials map
233
+ for (const [token, credentials] of this.credentialsMap.entries()) {
234
+ if (this.pools.has(token)) {
235
+ const user = credentials.user;
236
+ poolsByUser[user] = (poolsByUser[user] || 0) + 1;
237
+ }
238
+ }
239
+ return {
240
+ totalPools: this.pools.size,
241
+ poolsByUser,
242
+ };
243
+ }
244
+ /**
245
+ * Shutdown all pools and cleanup
246
+ */
247
+ async shutdown() {
248
+ const context = requestContextService.createRequestContext({
249
+ operation: "authenticatedPoolManagerShutdown",
250
+ });
251
+ const poolCount = this.pools.size;
252
+ // Use base class method to close all pools
253
+ await this.closeAllPools(context);
254
+ // Clean up credentials mapping
255
+ this.credentialsMap.clear();
256
+ logger.info({
257
+ ...context,
258
+ closedPools: poolCount,
259
+ }, "Authenticated pool manager shutdown completed");
260
+ }
261
+ }
262
+ //# sourceMappingURL=authenticatedPoolManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"authenticatedPoolManager.js","sourceRoot":"","sources":["../../../src/ibmi-mcp-server/services/authenticatedPoolManager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,130 @@
1
+ /**
2
+ * @fileoverview Base connection pool abstraction for IBM i connections
3
+ * Provides shared connection pool logic that can be extended by specific implementations
4
+ *
5
+ * @module src/services/baseConnectionPool
6
+ */
7
+ import pkg, { BindingValue, QueryResult, DaemonServer } from "@ibm/mapepire-js";
8
+ declare const Pool: typeof pkg.Pool;
9
+ import { RequestContext } from "../../utils/internal/requestContext.js";
10
+ import { SqlToolSecurityConfig } from "../schemas/index.js";
11
+ /**
12
+ * Connection configuration for a pool instance
13
+ */
14
+ export interface PoolConnectionConfig {
15
+ host: string;
16
+ user: string;
17
+ password: string;
18
+ port?: number;
19
+ ignoreUnauthorized?: boolean;
20
+ maxSize?: number;
21
+ startingSize?: number;
22
+ }
23
+ /**
24
+ * Pool instance state
25
+ */
26
+ export interface PoolInstanceState {
27
+ pool: InstanceType<typeof Pool> | null;
28
+ isInitialized: boolean;
29
+ isConnecting: boolean;
30
+ lastHealthCheck?: Date;
31
+ healthStatus: "healthy" | "unhealthy" | "unknown";
32
+ config: PoolConnectionConfig;
33
+ }
34
+ /**
35
+ * Health status information
36
+ */
37
+ export interface PoolHealth {
38
+ status: "healthy" | "unhealthy" | "unknown";
39
+ lastCheck?: Date;
40
+ lastError?: string;
41
+ initialized: boolean;
42
+ connecting: boolean;
43
+ }
44
+ /**
45
+ * Base connection pool manager that provides shared functionality
46
+ * for all IBM i connection pools in the application
47
+ */
48
+ export declare abstract class BaseConnectionPool<TId extends string | symbol = string> {
49
+ protected pools: Map<TId, PoolInstanceState>;
50
+ protected initializationPromises: Map<TId, Promise<void>>;
51
+ /**
52
+ * Create a daemon server configuration from connection config
53
+ * @param config - Connection configuration
54
+ * @param context - Request context for logging
55
+ */
56
+ protected createDaemonServer(config: PoolConnectionConfig, context: RequestContext): Promise<DaemonServer>;
57
+ /**
58
+ * Initialize a connection pool for the given identifier
59
+ * @param poolId - Unique identifier for the pool
60
+ * @param config - Connection configuration
61
+ * @param context - Request context for logging
62
+ */
63
+ protected initializePool(poolId: TId, config: PoolConnectionConfig, context: RequestContext): Promise<void>;
64
+ /**
65
+ * Perform the actual initialization of a pool
66
+ * @private
67
+ */
68
+ private performInitialization;
69
+ /**
70
+ * Execute a SQL query on a specific pool
71
+ * @param poolId - Pool identifier
72
+ * @param query - SQL query string
73
+ * @param params - Query parameters
74
+ * @param context - Request context for logging
75
+ */
76
+ protected executeQuery<T = unknown>(poolId: TId, query: string, params?: BindingValue[], context?: RequestContext, securityConfig?: SqlToolSecurityConfig): Promise<QueryResult<T>>;
77
+ /**
78
+ * Execute a SQL query with automatic pagination
79
+ * @param poolId - Pool identifier
80
+ * @param query - SQL query string
81
+ * @param params - Query parameters
82
+ * @param context - Request context for logging
83
+ * @param fetchSize - Number of records per fetch
84
+ */
85
+ protected executeQueryWithPagination(poolId: TId, query: string, params?: BindingValue[], context?: RequestContext, fetchSize?: number, securityConfig?: SqlToolSecurityConfig): Promise<{
86
+ data: unknown[];
87
+ success: boolean;
88
+ sql_rc?: unknown;
89
+ execution_time?: number;
90
+ }>;
91
+ /**
92
+ * Check the health of a specific pool
93
+ * @param poolId - Pool identifier
94
+ * @param context - Request context for logging
95
+ */
96
+ checkPoolHealth(poolId: TId, context?: RequestContext): Promise<PoolHealth>;
97
+ /**
98
+ * Close a specific pool's connections
99
+ * @param poolId - Pool identifier
100
+ * @param context - Request context for logging
101
+ */
102
+ closePool(poolId: TId, context?: RequestContext): Promise<void>;
103
+ /**
104
+ * Close all connection pools gracefully
105
+
106
+ /**
107
+ * Close all connection pools gracefully
108
+ * @param context - Request context for logging
109
+ */
110
+ closeAllPools(context?: RequestContext): Promise<void>;
111
+ /**
112
+ * Get status of a specific pool
113
+ * @param poolId - Pool identifier
114
+ */
115
+ getPoolStatus(poolId: TId): {
116
+ initialized: boolean;
117
+ connecting: boolean;
118
+ healthStatus: string;
119
+ } | null;
120
+ /**
121
+ * Get list of registered pool identifiers
122
+ */
123
+ getRegisteredPools(): TId[];
124
+ /**
125
+ * Clear all pools (for testing)
126
+ */
127
+ protected clearAllPools(): void;
128
+ }
129
+ export {};
130
+ //# sourceMappingURL=baseConnectionPool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"baseConnectionPool.d.ts","sourceRoot":"","sources":["../../../src/ibmi-mcp-server/services/baseConnectionPool.ts"],"names":[],"mappings":"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"}