@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 @@
1
+ {"version":3,"file":"connectionPool.js","sourceRoot":"","sources":["../../../src/ibmi-mcp-server/services/connectionPool.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAChE,OAAO,EACL,qBAAqB,GAEtB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACtE,OAAO,EACL,kBAAkB,GAEnB,MAAM,yBAAyB,CAAC;AAEjC,qDAAqD;AACrD,MAAM,aAAa,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC;AAEpD;;;GAGG;AACH,MAAM,OAAO,kBAAmB,SAAQ,kBAEvC;IACS,MAAM,CAAC,QAAQ,CAAiC;IAExD;;OAEG;IACK,MAAM,CAAC,WAAW;QACxB,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnB,IAAI,CAAC,QAAQ,GAAG,IAAI,kBAAkB,EAAE,CAAC;QAC3C,CAAC;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED;;;OAGG;IACK,MAAM,CAAC,KAAK,CAAC,iBAAiB;QACpC,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QACpC,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QAEpD,IAAI,SAAS,IAAI,SAAS,CAAC,aAAa,EAAE,CAAC;YACzC,OAAO;QACT,CAAC;QAED,MAAM,OAAO,GAAG,qBAAqB,CAAC,oBAAoB,CAAC;YACzD,SAAS,EAAE,8BAA8B;SAC1C,CAAC,CAAC;QAEH,IAAI,CAAC;YACH,2CAA2C;YAC3C,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;gBACjB,MAAM,IAAI,QAAQ,CAChB,gBAAgB,CAAC,kBAAkB,EACnC,gHAAgH,EAChH,EAAE,aAAa,EAAE,MAAM,EAAE,CAC1B,CAAC;YACJ,CAAC;YAED,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,kBAAkB,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC;YAEjE,MAAM,CAAC,IAAI,CACT;gBACE,GAAG,OAAO;gBACV,IAAI;gBACJ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,EAAE,6BAA6B;gBACjE,kBAAkB;aACnB,EACD,oCAAoC,CACrC,CAAC;YAEF,2CAA2C;YAC3C,MAAM,UAAU,GAAyB;gBACvC,IAAI;gBACJ,IAAI;gBACJ,QAAQ;gBACR,kBAAkB;aACnB,CAAC;YAEF,uCAAuC;YACvC,MAAM,QAAQ,CAAC,cAAc,CAAC,aAAa,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;YAElE,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,gDAAgD,CAAC,CAAC;QACzE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,YAAY,GAAG,YAAY,CAAC,WAAW,CAAC,KAAK,EAAE;gBACnD,SAAS,EAAE,8BAA8B;gBACzC,OAAO;gBACP,SAAS,EAAE,gBAAgB,CAAC,oBAAoB;gBAChD,QAAQ,EAAE,IAAI;aACf,CAAC,CAAC;YAEH,MAAM,YAAY,CAAC;QACrB,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,KAAK,CAAC,0BAA0B,CACrC,KAAa,EACb,MAAuB,EACvB,OAAwB,EACxB,YAAoB,GAAG;QAOvB,MAAM,gBAAgB,GACpB,OAAO;YACP,qBAAqB,CAAC,oBAAoB,CAAC;gBACzC,SAAS,EAAE,4BAA4B;aACxC,CAAC,CAAC;QAEL,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC/B,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QACpC,OAAO,QAAQ,CAAC,0BAA0B,CACxC,aAAa,EACb,KAAK,EACL,MAAM,EACN,gBAAgB,EAChB,SAAS,CACV,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,KAAK,CAAC,YAAY,CACvB,KAAa,EACb,MAAuB,EACvB,OAAwB;QAExB,MAAM,gBAAgB,GACpB,OAAO;YACP,qBAAqB,CAAC,oBAAoB,CAAC;gBACzC,SAAS,EAAE,cAAc;aAC1B,CAAC,CAAC;QAEL,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC/B,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QACpC,OAAO,QAAQ,CAAC,YAAY,CAC1B,aAAa,EACb,KAAK,EACL,MAAM,EACN,gBAAgB,CACjB,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,WAAW;QACtB,MAAM,OAAO,GAAG,qBAAqB,CAAC,oBAAoB,CAAC;YACzD,SAAS,EAAE,uBAAuB;SACnC,CAAC,CAAC;QAEH,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC/B,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;YACpC,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,eAAe,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;YAEtE,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,gCAAgC,CAAC,CAAC;YACxD,OAAO,MAAM,CAAC,MAAM,KAAK,SAAS,CAAC;QACrC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CACV;gBACE,GAAG,OAAO;gBACV,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAC9D,EACD,gCAAgC,CACjC,CAAC;YACF,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,KAAK;QAChB,MAAM,OAAO,GAAG,qBAAqB,CAAC,oBAAoB,CAAC;YACzD,SAAS,EAAE,qBAAqB;SACjC,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QACpC,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QAEpD,IAAI,SAAS,IAAI,SAAS,CAAC,IAAI,EAAE,CAAC;YAChC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,+BAA+B,CAAC,CAAC;YACtD,MAAM,QAAQ,CAAC,SAAS,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;YACjD,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,2CAA2C,CAAC,CAAC;QACpE,CAAC;IACH,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,SAAS;QAKd,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QACpC,MAAM,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;QAEzD,OAAO;YACL,WAAW,EAAE,UAAU,EAAE,WAAW,IAAI,KAAK;YAC7C,UAAU,EAAE,UAAU,EAAE,UAAU,IAAI,KAAK;YAC3C,UAAU,EAAE,UAAU,KAAK,IAAI;SAChC,CAAC;IACJ,CAAC;CACF"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * @fileoverview Security validation types and constants for SQL query validation
3
+ * Centralized configuration for dangerous operations and patterns
4
+ *
5
+ * @module src/services/securityValidation
6
+ */
7
+ /**
8
+ * Dangerous SQL operations that should be blocked in read-only mode
9
+ */
10
+ export declare const DANGEROUS_OPERATIONS: readonly ["INSERT", "UPDATE", "DELETE", "REPLACE", "MERGE", "TRUNCATE", "DROP", "CREATE", "ALTER", "RENAME", "CALL", "EXEC", "EXECUTE", "SET", "DECLARE", "GRANT", "REVOKE", "DENY", "LOAD", "IMPORT", "EXPORT", "BULK", "SHUTDOWN", "RESTART", "KILL", "STOP", "START", "BACKUP", "RESTORE", "DUMP", "LOCK", "UNLOCK", "COMMIT", "ROLLBACK", "SAVEPOINT", "QCMDEXC", "SQL_EXECUTE_IMMEDIATE"];
11
+ /**
12
+ * Dangerous SQL functions that should be blocked
13
+ */
14
+ export declare const DANGEROUS_FUNCTIONS: readonly ["SYSTEM", "QCMDEXC", "SQL_EXECUTE_IMMEDIATE", "SQLCMD", "LOAD_EXTENSION", "EXEC", "EXECUTE_IMMEDIATE", "EVAL", "CONCAT", "CHAR", "VARCHAR"];
15
+ /**
16
+ * Regex patterns for detecting dangerous SQL constructs
17
+ */
18
+ export declare const DANGEROUS_PATTERNS: readonly [RegExp, RegExp, RegExp, RegExp, RegExp, RegExp, RegExp, RegExp];
19
+ /**
20
+ * Type for dangerous operations
21
+ */
22
+ export type DangerousOperation = (typeof DANGEROUS_OPERATIONS)[number];
23
+ /**
24
+ * Type for dangerous functions
25
+ */
26
+ export type DangerousFunction = (typeof DANGEROUS_FUNCTIONS)[number];
27
+ /**
28
+ * Security validation result
29
+ */
30
+ export interface SecurityValidationResult {
31
+ isValid: boolean;
32
+ violations: string[];
33
+ validationMethod: "ast" | "regex" | "both";
34
+ }
35
+ //# sourceMappingURL=securityValidation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"securityValidation.d.ts","sourceRoot":"","sources":["../../../src/ibmi-mcp-server/services/securityValidation.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;GAEG;AACH,eAAO,MAAM,oBAAoB,gYAgDvB,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,mBAAmB,uJAYtB,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,kBAAkB,2EAcrB,CAAC;AAEX;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG,CAAC,OAAO,oBAAoB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEvE;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,mBAAmB,CAAC,CAAC,MAAM,CAAC,CAAC;AAErE;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,gBAAgB,EAAE,KAAK,GAAG,OAAO,GAAG,MAAM,CAAC;CAC5C"}
@@ -0,0 +1,93 @@
1
+ /**
2
+ * @fileoverview Security validation types and constants for SQL query validation
3
+ * Centralized configuration for dangerous operations and patterns
4
+ *
5
+ * @module src/services/securityValidation
6
+ */
7
+ /**
8
+ * Dangerous SQL operations that should be blocked in read-only mode
9
+ */
10
+ export const DANGEROUS_OPERATIONS = [
11
+ // Data manipulation
12
+ "INSERT",
13
+ "UPDATE",
14
+ "DELETE",
15
+ "REPLACE",
16
+ "MERGE",
17
+ "TRUNCATE",
18
+ // Schema operations
19
+ "DROP",
20
+ "CREATE",
21
+ "ALTER",
22
+ "RENAME",
23
+ // System operations
24
+ "CALL",
25
+ "EXEC",
26
+ "EXECUTE",
27
+ "SET",
28
+ "DECLARE",
29
+ // Security operations
30
+ "GRANT",
31
+ "REVOKE",
32
+ "DENY",
33
+ // Data transfer
34
+ "LOAD",
35
+ "IMPORT",
36
+ "EXPORT",
37
+ "BULK",
38
+ // System control
39
+ "SHUTDOWN",
40
+ "RESTART",
41
+ "KILL",
42
+ "STOP",
43
+ "START",
44
+ // Backup/restore
45
+ "BACKUP",
46
+ "RESTORE",
47
+ "DUMP",
48
+ // Locking
49
+ "LOCK",
50
+ "UNLOCK",
51
+ // Transaction control (in some contexts dangerous)
52
+ "COMMIT",
53
+ "ROLLBACK",
54
+ "SAVEPOINT",
55
+ // IBM i specific
56
+ "QCMDEXC",
57
+ "SQL_EXECUTE_IMMEDIATE",
58
+ ];
59
+ /**
60
+ * Dangerous SQL functions that should be blocked
61
+ */
62
+ export const DANGEROUS_FUNCTIONS = [
63
+ "SYSTEM",
64
+ "QCMDEXC",
65
+ "SQL_EXECUTE_IMMEDIATE",
66
+ "SQLCMD",
67
+ "LOAD_EXTENSION",
68
+ "EXEC",
69
+ "EXECUTE_IMMEDIATE",
70
+ "EVAL",
71
+ "CONCAT",
72
+ "CHAR",
73
+ "VARCHAR", // Can be used for dynamic SQL construction
74
+ ];
75
+ /**
76
+ * Regex patterns for detecting dangerous SQL constructs
77
+ */
78
+ export const DANGEROUS_PATTERNS = [
79
+ // Dynamic SQL patterns
80
+ /\bCONCAT\s*\(/i,
81
+ /\b(CHAR|VARCHAR|CLOB)\s*\(/i,
82
+ // System function patterns
83
+ /\bSYSTEM\s*\(/i,
84
+ /\bLOAD_EXTENSION\s*\(/i,
85
+ /\bQCMDEXC\s*\(/i,
86
+ // Comment-based bypass attempts
87
+ /\/\*.*?(DROP|DELETE|INSERT|UPDATE).*?\*\//i,
88
+ // Multiple statement patterns
89
+ /;\s*(DROP|DELETE|INSERT|UPDATE|CREATE|ALTER)/i,
90
+ // Union-based attacks
91
+ /\bUNION\s+(ALL\s+)?\s*\(\s*(DROP|DELETE|INSERT|UPDATE)/i,
92
+ ];
93
+ //# sourceMappingURL=securityValidation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"securityValidation.js","sourceRoot":"","sources":["../../../src/ibmi-mcp-server/services/securityValidation.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,oBAAoB;IACpB,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,SAAS;IACT,OAAO;IACP,UAAU;IACV,oBAAoB;IACpB,MAAM;IACN,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,oBAAoB;IACpB,MAAM;IACN,MAAM;IACN,SAAS;IACT,KAAK;IACL,SAAS;IACT,sBAAsB;IACtB,OAAO;IACP,QAAQ;IACR,MAAM;IACN,gBAAgB;IAChB,MAAM;IACN,QAAQ;IACR,QAAQ;IACR,MAAM;IACN,iBAAiB;IACjB,UAAU;IACV,SAAS;IACT,MAAM;IACN,MAAM;IACN,OAAO;IACP,iBAAiB;IACjB,QAAQ;IACR,SAAS;IACT,MAAM;IACN,UAAU;IACV,MAAM;IACN,QAAQ;IACR,mDAAmD;IACnD,QAAQ;IACR,UAAU;IACV,WAAW;IACX,iBAAiB;IACjB,SAAS;IACT,uBAAuB;CACf,CAAC;AAEX;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,QAAQ;IACR,SAAS;IACT,uBAAuB;IACvB,QAAQ;IACR,gBAAgB;IAChB,MAAM;IACN,mBAAmB;IACnB,MAAM;IACN,QAAQ;IACR,MAAM;IACN,SAAS,EAAE,2CAA2C;CAC9C,CAAC;AAEX;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,uBAAuB;IACvB,gBAAgB;IAChB,6BAA6B;IAC7B,2BAA2B;IAC3B,gBAAgB;IAChB,wBAAwB;IACxB,iBAAiB;IACjB,gCAAgC;IAChC,4CAA4C;IAC5C,8BAA8B;IAC9B,+CAA+C;IAC/C,sBAAsB;IACtB,yDAAyD;CACjD,CAAC"}
@@ -0,0 +1,82 @@
1
+ /**
2
+ * @fileoverview Multi-source connection manager for YAML-based tools
3
+ * Manages multiple named IBM i connection pools based on YAML source configurations
4
+ *
5
+ * @module src/services/yaml-sources/sourceManager
6
+ */
7
+ import { BindingValue, QueryResult } from "@ibm/mapepire-js";
8
+ import { SourceConfig, SqlToolSecurityConfig } from "../schemas/index.js";
9
+ import { RequestContext } from "../../utils/internal/requestContext.js";
10
+ import { BaseConnectionPool, PoolHealth } from "./baseConnectionPool.js";
11
+ /**
12
+ * Source health information
13
+ */
14
+ export interface SourceHealth extends PoolHealth {
15
+ sourceName: string;
16
+ }
17
+ /**
18
+ * Multi-source connection manager
19
+ * Manages multiple named IBM i connection pools for YAML-based tools
20
+ */
21
+ export declare class SourceManager extends BaseConnectionPool<string> {
22
+ private static instance;
23
+ private sourceConfigs;
24
+ /**
25
+ * Get the singleton instance of the SourceManager
26
+ */
27
+ static getInstance(): SourceManager;
28
+ /**
29
+ * Register a new source configuration
30
+ * @param sourceName - Name of the source
31
+ * @param sourceConfig - Source configuration from YAML
32
+ * @param context - Request context for logging
33
+ */
34
+ registerSource(sourceName: string, sourceConfig: SourceConfig, context?: RequestContext): Promise<void>;
35
+ /**
36
+ * Execute a SQL query on a specific source
37
+ * @param sourceName - Name of the source to query
38
+ * @param query - SQL query string
39
+ * @param params - Query parameters
40
+ * @param context - Request context for logging
41
+ */
42
+ executeQuery<T = unknown>(sourceName: string, query: string, params?: BindingValue[], context?: RequestContext, securityConfig?: SqlToolSecurityConfig): Promise<QueryResult<T>>;
43
+ /**
44
+ * Check the health of a specific source
45
+ * @param sourceName - Name of the source to check
46
+ * @param context - Request context for logging
47
+ */
48
+ checkSourceHealth(sourceName: string, context?: RequestContext): Promise<SourceHealth>;
49
+ /**
50
+ * Get health status for all registered sources
51
+ * @param context - Request context for logging
52
+ */
53
+ getAllSourcesHealth(context?: RequestContext): Promise<SourceHealth[]>;
54
+ /**
55
+ * Close a specific source's connection pool
56
+ * @param sourceName - Name of the source to close
57
+ * @param context - Request context for logging
58
+ */
59
+ closeSource(sourceName: string, context?: RequestContext): Promise<void>;
60
+ /**
61
+ * Close all connection pools gracefully
62
+ * @param context - Request context for logging
63
+ */
64
+ closeAllSources(context?: RequestContext): Promise<void>;
65
+ /**
66
+ * Get list of registered source names
67
+ */
68
+ getRegisteredSources(): string[];
69
+ /**
70
+ * Get detailed status of all sources
71
+ */
72
+ getSourcesStatus(): Record<string, {
73
+ initialized: boolean;
74
+ connecting: boolean;
75
+ healthStatus: string;
76
+ }>;
77
+ /**
78
+ * Clear all registered sources (for testing)
79
+ */
80
+ clearAllSources(): void;
81
+ }
82
+ //# sourceMappingURL=sourceManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sourceManager.d.ts","sourceRoot":"","sources":["../../../src/ibmi-mcp-server/services/sourceManager.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EACL,YAAY,EACZ,qBAAqB,EACtB,MAAM,oCAAoC,CAAC;AAE5C,OAAO,EAEL,cAAc,EACf,MAAM,oCAAoC,CAAC;AAE5C,OAAO,EACL,kBAAkB,EAElB,UAAU,EACX,MAAM,yBAAyB,CAAC;AAEjC;;GAEG;AACH,MAAM,WAAW,YAAa,SAAQ,UAAU;IAC9C,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;GAGG;AACH,qBAAa,aAAc,SAAQ,kBAAkB,CAAC,MAAM,CAAC;IAC3D,OAAO,CAAC,MAAM,CAAC,QAAQ,CAA4B;IACnD,OAAO,CAAC,aAAa,CAAwC;IAE7D;;OAEG;IACH,MAAM,CAAC,WAAW,IAAI,aAAa;IAOnC;;;;;OAKG;IACG,cAAc,CAClB,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,YAAY,EAC1B,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,IAAI,CAAC;IAsDhB;;;;;;OAMG;IACG,YAAY,CAAC,CAAC,GAAG,OAAO,EAC5B,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM,EACb,MAAM,CAAC,EAAE,YAAY,EAAE,EACvB,OAAO,CAAC,EAAE,cAAc,EACxB,cAAc,CAAC,EAAE,qBAAqB,GACrC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAU1B;;;;OAIG;IACG,iBAAiB,CACrB,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,YAAY,CAAC;IAQxB;;;OAGG;IACG,mBAAmB,CAAC,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAc5E;;;;OAIG;IACG,WAAW,CACf,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,IAAI,CAAC;IAMhB;;;OAGG;IACG,eAAe,CAAC,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAM9D;;OAEG;IACH,oBAAoB,IAAI,MAAM,EAAE;IAIhC;;OAEG;IACH,gBAAgB,IAAI,MAAM,CACxB,MAAM,EACN;QAAE,WAAW,EAAE,OAAO,CAAC;QAAC,UAAU,EAAE,OAAO,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,CACpE;IAgBD;;OAEG;IACH,eAAe,IAAI,IAAI;CAIxB"}
@@ -0,0 +1,151 @@
1
+ /**
2
+ * @fileoverview Multi-source connection manager for YAML-based tools
3
+ * Manages multiple named IBM i connection pools based on YAML source configurations
4
+ *
5
+ * @module src/services/yaml-sources/sourceManager
6
+ */
7
+ import { ErrorHandler, logger } from "../../utils/internal/index.js";
8
+ import { requestContextService, } from "../../utils/internal/requestContext.js";
9
+ import { JsonRpcErrorCode } from "../../types-global/errors.js";
10
+ import { BaseConnectionPool, } from "./baseConnectionPool.js";
11
+ /**
12
+ * Multi-source connection manager
13
+ * Manages multiple named IBM i connection pools for YAML-based tools
14
+ */
15
+ export class SourceManager extends BaseConnectionPool {
16
+ static instance;
17
+ sourceConfigs = new Map();
18
+ /**
19
+ * Get the singleton instance of the SourceManager
20
+ */
21
+ static getInstance() {
22
+ if (!SourceManager.instance) {
23
+ SourceManager.instance = new SourceManager();
24
+ }
25
+ return SourceManager.instance;
26
+ }
27
+ /**
28
+ * Register a new source configuration
29
+ * @param sourceName - Name of the source
30
+ * @param sourceConfig - Source configuration from YAML
31
+ * @param context - Request context for logging
32
+ */
33
+ async registerSource(sourceName, sourceConfig, context) {
34
+ const operationContext = context ||
35
+ requestContextService.createRequestContext({
36
+ operation: "RegisterSource",
37
+ sourceName,
38
+ });
39
+ return ErrorHandler.tryCatch(async () => {
40
+ logger.info({
41
+ ...operationContext,
42
+ host: sourceConfig.host,
43
+ port: sourceConfig.port || 8471,
44
+ user: sourceConfig.user.substring(0, 3) + "***", // Mask username for security
45
+ }, `Registering source: ${sourceName}`);
46
+ // Convert YAML source to pool connection config
47
+ const poolConfig = {
48
+ host: sourceConfig.host,
49
+ user: sourceConfig.user,
50
+ password: sourceConfig.password,
51
+ port: sourceConfig.port,
52
+ ignoreUnauthorized: sourceConfig["ignore-unauthorized"],
53
+ };
54
+ // Store the original source config for reference
55
+ this.sourceConfigs.set(sourceName, sourceConfig);
56
+ // Store the pool config for lazy initialization (don't initialize yet)
57
+ this.pools.set(sourceName, {
58
+ pool: null,
59
+ isInitialized: false,
60
+ isConnecting: false,
61
+ healthStatus: "unknown",
62
+ config: poolConfig,
63
+ });
64
+ logger.info(operationContext, `Source registered successfully: ${sourceName}`);
65
+ }, {
66
+ operation: "RegisterSource",
67
+ context: operationContext,
68
+ errorCode: JsonRpcErrorCode.ConfigurationError,
69
+ });
70
+ }
71
+ /**
72
+ * Execute a SQL query on a specific source
73
+ * @param sourceName - Name of the source to query
74
+ * @param query - SQL query string
75
+ * @param params - Query parameters
76
+ * @param context - Request context for logging
77
+ */
78
+ async executeQuery(sourceName, query, params, context, securityConfig) {
79
+ return super.executeQuery(sourceName, query, params, context, securityConfig);
80
+ }
81
+ /**
82
+ * Check the health of a specific source
83
+ * @param sourceName - Name of the source to check
84
+ * @param context - Request context for logging
85
+ */
86
+ async checkSourceHealth(sourceName, context) {
87
+ const baseHealth = await super.checkPoolHealth(sourceName, context);
88
+ return {
89
+ sourceName,
90
+ ...baseHealth,
91
+ };
92
+ }
93
+ /**
94
+ * Get health status for all registered sources
95
+ * @param context - Request context for logging
96
+ */
97
+ async getAllSourcesHealth(context) {
98
+ const operationContext = context ||
99
+ requestContextService.createRequestContext({
100
+ operation: "GetAllSourcesHealth",
101
+ });
102
+ const healthPromises = Array.from(this.getRegisteredPools()).map((sourceName) => this.checkSourceHealth(sourceName, operationContext));
103
+ return Promise.all(healthPromises);
104
+ }
105
+ /**
106
+ * Close a specific source's connection pool
107
+ * @param sourceName - Name of the source to close
108
+ * @param context - Request context for logging
109
+ */
110
+ async closeSource(sourceName, context) {
111
+ await super.closePool(sourceName, context);
112
+ // Also clean up the source config
113
+ this.sourceConfigs.delete(sourceName);
114
+ }
115
+ /**
116
+ * Close all connection pools gracefully
117
+ * @param context - Request context for logging
118
+ */
119
+ async closeAllSources(context) {
120
+ await super.closeAllPools(context);
121
+ // Clean up all source configs
122
+ this.sourceConfigs.clear();
123
+ }
124
+ /**
125
+ * Get list of registered source names
126
+ */
127
+ getRegisteredSources() {
128
+ return this.getRegisteredPools();
129
+ }
130
+ /**
131
+ * Get detailed status of all sources
132
+ */
133
+ getSourcesStatus() {
134
+ const status = {};
135
+ for (const sourceName of this.getRegisteredPools()) {
136
+ const poolStatus = this.getPoolStatus(sourceName);
137
+ if (poolStatus) {
138
+ status[sourceName] = poolStatus;
139
+ }
140
+ }
141
+ return status;
142
+ }
143
+ /**
144
+ * Clear all registered sources (for testing)
145
+ */
146
+ clearAllSources() {
147
+ this.clearAllPools();
148
+ this.sourceConfigs.clear();
149
+ }
150
+ }
151
+ //# sourceMappingURL=sourceManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sourceManager.js","sourceRoot":"","sources":["../../../src/ibmi-mcp-server/services/sourceManager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * @fileoverview Barrel file for the execute SQL tool
3
+ * This module exports the registration function and configuration utilities
4
+ * for the dynamic SQL execution tool.
5
+ *
6
+ * @module src/mcp-server/tools/executeSql/index
7
+ */
8
+ export { registerExecuteSqlTool, setExecuteSqlConfig, getExecuteSqlConfig, isExecuteSqlEnabled, type ExecuteSqlToolConfig, } from "./registration.js";
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/ibmi-mcp-server/tools/executeSql/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EACL,sBAAsB,EACtB,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACnB,KAAK,oBAAoB,GAC1B,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * @fileoverview Barrel file for the execute SQL tool
3
+ * This module exports the registration function and configuration utilities
4
+ * for the dynamic SQL execution tool.
5
+ *
6
+ * @module src/mcp-server/tools/executeSql/index
7
+ */
8
+ export { registerExecuteSqlTool, setExecuteSqlConfig, getExecuteSqlConfig, isExecuteSqlEnabled, } from "./registration.js";
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/ibmi-mcp-server/tools/executeSql/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EACL,sBAAsB,EACtB,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,GAEpB,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,51 @@
1
+ /**
2
+ * @fileoverview Defines the core logic, schemas, and types for the `execute_sql` tool.
3
+ * This module provides dynamic SQL execution capabilities for the IBM i database.
4
+ * Unlike YAML tools with predefined statements, this tool accepts arbitrary SQL at runtime.
5
+ * @module src/mcp-server/tools/executeSql/logic
6
+ * @see {@link src/mcp-server/tools/executeSql/registration.ts} for the handler and registration logic.
7
+ */
8
+ import { z } from "zod";
9
+ /**
10
+ * Zod schema defining the input parameters for the `execute_sql` tool.
11
+ * CRITICAL: The descriptions are sent to the LLM and must be clear.
12
+ */
13
+ export declare const ExecuteSqlInputSchema: z.ZodObject<{
14
+ sql: z.ZodString;
15
+ }, "strip", z.ZodTypeAny, {
16
+ sql: string;
17
+ }, {
18
+ sql: string;
19
+ }>;
20
+ /**
21
+ * Zod schema for the successful response of the `execute_sql` tool.
22
+ */
23
+ export declare const ExecuteSqlResponseSchema: z.ZodObject<{
24
+ data: z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>, "many">;
25
+ rowCount: z.ZodNumber;
26
+ executionTimeMs: z.ZodOptional<z.ZodNumber>;
27
+ metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
28
+ }, "strip", z.ZodTypeAny, {
29
+ data: Record<string, unknown>[];
30
+ rowCount: number;
31
+ metadata?: Record<string, unknown> | undefined;
32
+ executionTimeMs?: number | undefined;
33
+ }, {
34
+ data: Record<string, unknown>[];
35
+ rowCount: number;
36
+ metadata?: Record<string, unknown> | undefined;
37
+ executionTimeMs?: number | undefined;
38
+ }>;
39
+ export type ExecuteSqlInput = z.infer<typeof ExecuteSqlInputSchema>;
40
+ export type ExecuteSqlResponse = z.infer<typeof ExecuteSqlResponseSchema>;
41
+ /**
42
+ * Processes the core logic for the `execute_sql` tool.
43
+ * This function executes arbitrary SQL statements against the IBM i database.
44
+ * Only read-only operations are allowed for security.
45
+ *
46
+ * @param params - The validated input parameters containing the SQL statement
47
+ * @returns A promise resolving with the structured response data
48
+ * @throws {McpError} If the SQL execution encounters an unrecoverable issue
49
+ */
50
+ export declare function executeSqlLogic(params: ExecuteSqlInput): Promise<ExecuteSqlResponse>;
51
+ //# sourceMappingURL=logic.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logic.d.ts","sourceRoot":"","sources":["../../../../src/ibmi-mcp-server/tools/executeSql/logic.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AA6BxB;;;GAGG;AACH,eAAO,MAAM,qBAAqB;;;;;;EAShC,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;EAiBnC,CAAC;AAGH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AACpE,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAsE1E;;;;;;;;GAQG;AACH,wBAAsB,eAAe,CACnC,MAAM,EAAE,eAAe,GACtB,OAAO,CAAC,kBAAkB,CAAC,CAwF7B"}
@@ -0,0 +1,179 @@
1
+ /**
2
+ * @fileoverview Defines the core logic, schemas, and types for the `execute_sql` tool.
3
+ * This module provides dynamic SQL execution capabilities for the IBM i database.
4
+ * Unlike YAML tools with predefined statements, this tool accepts arbitrary SQL at runtime.
5
+ * @module src/mcp-server/tools/executeSql/logic
6
+ * @see {@link src/mcp-server/tools/executeSql/registration.ts} for the handler and registration logic.
7
+ */
8
+ import { z } from "zod";
9
+ import { JsonRpcErrorCode, McpError } from "../../../types-global/errors.js";
10
+ import { getRequestContext } from "../../../utils/index.js";
11
+ import { logger } from "../../../utils/internal/logger.js";
12
+ import { IBMiConnectionPool } from "../../services/connectionPool.js";
13
+ /**
14
+ * Restricted SQL keywords that are not allowed in execute-sql tool
15
+ * This provides basic protection against destructive operations
16
+ */
17
+ const RESTRICTED_KEYWORDS = [
18
+ "DROP",
19
+ "DELETE",
20
+ "TRUNCATE",
21
+ "ALTER",
22
+ "CREATE",
23
+ "INSERT",
24
+ "UPDATE",
25
+ "GRANT",
26
+ "REVOKE",
27
+ "COMMIT",
28
+ "ROLLBACK",
29
+ ];
30
+ /**
31
+ * Maximum allowed SQL statement length to prevent abuse
32
+ */
33
+ const MAX_SQL_LENGTH = 10000;
34
+ /**
35
+ * Zod schema defining the input parameters for the `execute_sql` tool.
36
+ * CRITICAL: The descriptions are sent to the LLM and must be clear.
37
+ */
38
+ export const ExecuteSqlInputSchema = z.object({
39
+ sql: z
40
+ .string()
41
+ .min(1, "SQL statement cannot be empty.")
42
+ .max(MAX_SQL_LENGTH, `SQL statement cannot exceed ${MAX_SQL_LENGTH} characters.`)
43
+ .describe("The SQL statement to execute against the IBM i database."),
44
+ });
45
+ /**
46
+ * Zod schema for the successful response of the `execute_sql` tool.
47
+ */
48
+ export const ExecuteSqlResponseSchema = z.object({
49
+ data: z
50
+ .array(z.record(z.unknown()))
51
+ .describe("Array of result rows returned by the SQL query."),
52
+ rowCount: z
53
+ .number()
54
+ .int()
55
+ .min(0)
56
+ .describe("Number of rows returned by the query."),
57
+ executionTimeMs: z
58
+ .number()
59
+ .optional()
60
+ .describe("Query execution time in milliseconds."),
61
+ metadata: z
62
+ .record(z.unknown())
63
+ .optional()
64
+ .describe("Additional metadata about the query execution."),
65
+ });
66
+ /**
67
+ * Validates SQL statement for security and safety
68
+ * @param sql - SQL statement to validate
69
+ * @throws {McpError} If the SQL statement contains restricted keywords or patterns
70
+ * @private
71
+ */
72
+ function validateSqlSecurity(sql) {
73
+ const context = getRequestContext();
74
+ const normalizedSql = sql.trim().toUpperCase();
75
+ // Check for restricted keywords at the beginning of statements
76
+ for (const keyword of RESTRICTED_KEYWORDS) {
77
+ if (normalizedSql.startsWith(keyword)) {
78
+ logger.warning({
79
+ ...context,
80
+ keyword,
81
+ sqlPrefix: sql.substring(0, 50),
82
+ }, "Restricted SQL keyword detected");
83
+ throw new McpError(JsonRpcErrorCode.ValidationError, `SQL statement cannot start with restricted keyword: ${keyword}. Only SELECT and read-only operations are allowed.`, { keyword, sqlPrefix: sql.substring(0, 50) });
84
+ }
85
+ }
86
+ // Check for potentially dangerous patterns
87
+ const dangerousPatterns = [
88
+ /;\s*(DROP|DELETE|TRUNCATE|ALTER|CREATE|INSERT|UPDATE)\s+/i,
89
+ /UNION\s+SELECT.*INTO\s+/i,
90
+ /EXEC\s*\(/i,
91
+ /(CALL|EXECUTE)\s+/i,
92
+ ];
93
+ for (const pattern of dangerousPatterns) {
94
+ if (pattern.test(sql)) {
95
+ logger.warning({
96
+ ...context,
97
+ pattern: pattern.source,
98
+ sqlPrefix: sql.substring(0, 100),
99
+ }, "Potentially dangerous SQL pattern detected");
100
+ throw new McpError(JsonRpcErrorCode.ValidationError, "SQL statement contains potentially dangerous patterns. Only safe, read-only queries are allowed.", {
101
+ pattern: pattern.source,
102
+ sqlPrefix: sql.substring(0, 100),
103
+ });
104
+ }
105
+ }
106
+ logger.debug({
107
+ ...context,
108
+ sqlLength: sql.length,
109
+ sqlPrefix: sql.substring(0, 50),
110
+ }, "SQL security validation passed");
111
+ }
112
+ /**
113
+ * Processes the core logic for the `execute_sql` tool.
114
+ * This function executes arbitrary SQL statements against the IBM i database.
115
+ * Only read-only operations are allowed for security.
116
+ *
117
+ * @param params - The validated input parameters containing the SQL statement
118
+ * @returns A promise resolving with the structured response data
119
+ * @throws {McpError} If the SQL execution encounters an unrecoverable issue
120
+ */
121
+ export async function executeSqlLogic(params) {
122
+ const context = getRequestContext();
123
+ logger.debug({
124
+ ...context,
125
+ sqlLength: params.sql.length,
126
+ sqlPrefix: params.sql.substring(0, 50),
127
+ }, "Processing execute SQL logic");
128
+ // Validate SQL security before execution
129
+ validateSqlSecurity(params.sql);
130
+ const startTime = Date.now();
131
+ try {
132
+ // Execute the SQL query using the existing connection pool
133
+ const result = await IBMiConnectionPool.executeQuery(params.sql, [], // No parameters for dynamic SQL
134
+ context);
135
+ const executionTime = Date.now() - startTime;
136
+ if (!result.success) {
137
+ throw new McpError(JsonRpcErrorCode.DatabaseError, "SQL query execution failed", {
138
+ sql: params.sql.substring(0, 100),
139
+ sqlReturnCode: result.sql_rc,
140
+ executionTime,
141
+ });
142
+ }
143
+ const response = {
144
+ data: result.data || [],
145
+ rowCount: result.data?.length || 0,
146
+ executionTimeMs: executionTime,
147
+ };
148
+ // Add metadata if available from the query result
149
+ if (result.metadata) {
150
+ response.metadata = result.metadata;
151
+ }
152
+ logger.debug({
153
+ ...context,
154
+ rowCount: response.rowCount,
155
+ executionTime: response.executionTimeMs,
156
+ sqlPrefix: params.sql.substring(0, 50),
157
+ }, "SQL query executed successfully");
158
+ return response;
159
+ }
160
+ catch (error) {
161
+ const executionTime = Date.now() - startTime;
162
+ logger.error({
163
+ ...context,
164
+ error: error instanceof Error ? error.message : String(error),
165
+ executionTime,
166
+ sqlPrefix: params.sql.substring(0, 100),
167
+ }, "SQL execution failed");
168
+ // Re-throw McpErrors as-is, wrap other errors
169
+ if (error instanceof McpError) {
170
+ throw error;
171
+ }
172
+ throw new McpError(JsonRpcErrorCode.DatabaseError, `SQL execution failed: ${error instanceof Error ? error.message : String(error)}`, {
173
+ sql: params.sql.substring(0, 100),
174
+ executionTime,
175
+ originalError: error instanceof Error ? error.name : "Unknown",
176
+ });
177
+ }
178
+ }
179
+ //# sourceMappingURL=logic.js.map