@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,78 @@
1
+ /**
2
+ * @fileoverview Provides a utility function to make fetch requests with a specified timeout.
3
+ * @module src/utils/network/fetchWithTimeout
4
+ */
5
+ import { logger } from "../internal/logger.js"; // Adjusted import path
6
+ import { McpError, JsonRpcErrorCode } from "../../types-global/errors.js";
7
+ /**
8
+ * Fetches a resource with a specified timeout.
9
+ *
10
+ * @param url - The URL to fetch.
11
+ * @param timeoutMs - The timeout duration in milliseconds.
12
+ * @param context - The request context for logging.
13
+ * @param options - Optional fetch options (RequestInit), excluding 'signal'.
14
+ * @returns A promise that resolves to the Response object.
15
+ * @throws {McpError} If the request times out or another fetch-related error occurs.
16
+ */
17
+ export async function fetchWithTimeout(url, timeoutMs, context, options) {
18
+ const controller = new AbortController();
19
+ const timeoutId = setTimeout(() => controller.abort(), timeoutMs);
20
+ const urlString = url.toString();
21
+ const operationDescription = `fetch ${options?.method || "GET"} ${urlString}`;
22
+ logger.debug(context, `Attempting ${operationDescription} with ${timeoutMs}ms timeout.`);
23
+ try {
24
+ const response = await fetch(url, {
25
+ ...options,
26
+ signal: controller.signal,
27
+ });
28
+ clearTimeout(timeoutId);
29
+ if (!response.ok) {
30
+ const errorBody = await response
31
+ .text()
32
+ .catch(() => "Could not read response body");
33
+ logger.error({
34
+ ...context,
35
+ statusCode: response.status,
36
+ statusText: response.statusText,
37
+ responseBody: errorBody,
38
+ errorSource: "FetchHttpError",
39
+ }, `Fetch failed for ${urlString} with status ${response.status}.`);
40
+ throw new McpError(JsonRpcErrorCode.ServiceUnavailable, `Fetch failed for ${urlString}. Status: ${response.status}`, {
41
+ ...context,
42
+ statusCode: response.status,
43
+ statusText: response.statusText,
44
+ responseBody: errorBody,
45
+ });
46
+ }
47
+ logger.debug(context, `Successfully fetched ${urlString}. Status: ${response.status}`);
48
+ return response;
49
+ }
50
+ catch (error) {
51
+ clearTimeout(timeoutId);
52
+ if (error instanceof Error && error.name === "AbortError") {
53
+ logger.error({
54
+ ...context,
55
+ errorSource: "FetchTimeout",
56
+ }, `${operationDescription} timed out after ${timeoutMs}ms.`);
57
+ throw new McpError(JsonRpcErrorCode.Timeout, `${operationDescription} timed out.`, { ...context, errorSource: "FetchTimeout" });
58
+ }
59
+ // Log and re-throw other errors as McpError
60
+ const errorMessage = error instanceof Error ? error.message : String(error);
61
+ logger.error({
62
+ ...context,
63
+ originalErrorName: error instanceof Error ? error.name : "UnknownError",
64
+ errorSource: "FetchNetworkError",
65
+ }, `Network error during ${operationDescription}: ${errorMessage}`);
66
+ if (error instanceof McpError) {
67
+ // If it's already an McpError, re-throw it
68
+ throw error;
69
+ }
70
+ throw new McpError(JsonRpcErrorCode.ServiceUnavailable, // Generic error for network/service issues
71
+ `Network error during ${operationDescription}: ${errorMessage}`, {
72
+ ...context,
73
+ originalErrorName: error instanceof Error ? error.name : "UnknownError",
74
+ errorSource: "FetchNetworkErrorWrapper",
75
+ });
76
+ }
77
+ }
78
+ //# sourceMappingURL=fetchWithTimeout.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fetchWithTimeout.js","sourceRoot":"","sources":["../../../src/utils/network/fetchWithTimeout.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @fileoverview Barrel file for network utilities.
3
+ * @module src/utils/network/index
4
+ */
5
+ export * from "./fetchWithTimeout.js";
6
+ export type { FetchWithTimeoutOptions } from "./fetchWithTimeout.js";
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/network/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,cAAc,uBAAuB,CAAC;AACtC,YAAY,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * @fileoverview Barrel file for network utilities.
3
+ * @module src/utils/network/index
4
+ */
5
+ export * from "./fetchWithTimeout.js";
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/network/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,cAAc,uBAAuB,CAAC"}
@@ -0,0 +1,73 @@
1
+ /**
2
+ * @fileoverview Provides utility functions for parsing natural language date strings
3
+ * into Date objects or detailed parsing results using the `chrono-node` library.
4
+ * @module src/utils/parsing/dateParser
5
+ */
6
+ import * as chrono from "chrono-node";
7
+ import { RequestContext } from "../index.js";
8
+ /**
9
+ * Parses a natural language date string into a JavaScript Date object.
10
+ * Uses `chrono.parseDate` for lenient parsing of various date formats.
11
+ *
12
+ * @param text - The natural language date string to parse.
13
+ * @param context - The request context for logging and error tracking.
14
+ * @param refDate - Optional reference date for parsing relative dates. Defaults to current date/time.
15
+ * @returns A promise resolving with a Date object or `null` if parsing fails.
16
+ * @throws {McpError} If an unexpected error occurs during parsing.
17
+ * @private
18
+ */
19
+ export declare function parseDateString(text: string, context: RequestContext, refDate?: Date): Promise<Date | null>;
20
+ /**
21
+ * Parses a natural language date string and returns detailed parsing results.
22
+ * Provides more information than just the Date object, including matched text and components.
23
+ *
24
+ * @param text - The natural language date string to parse.
25
+ * @param context - The request context for logging and error tracking.
26
+ * @param refDate - Optional reference date for parsing relative dates. Defaults to current date/time.
27
+ * @returns A promise resolving with an array of `chrono.ParsedResult` objects. Empty if no dates found.
28
+ * @throws {McpError} If an unexpected error occurs during parsing.
29
+ * @private
30
+ */
31
+ export declare function parseDateStringDetailed(text: string, context: RequestContext, refDate?: Date): Promise<chrono.ParsedResult[]>;
32
+ /**
33
+ * An object providing date parsing functionalities.
34
+ *
35
+ * @example
36
+ * ```typescript
37
+ * import { dateParser, requestContextService } from './utils'; // Assuming utils/index.js exports these
38
+ * const context = requestContextService.createRequestContext({ operation: 'TestDateParsing' });
39
+ *
40
+ * async function testParsing() {
41
+ * const dateObj = await dateParser.parseDate("next Friday at 3pm", context);
42
+ * if (dateObj) {
43
+ * console.log("Parsed Date:", dateObj.toISOString());
44
+ * }
45
+ *
46
+ * const detailedResults = await dateParser.parse("Meeting on 2024-12-25 and another one tomorrow", context);
47
+ * detailedResults.forEach(result => {
48
+ * console.log("Detailed Result:", result.text, result.start.date());
49
+ * });
50
+ * }
51
+ * testParsing();
52
+ * ```
53
+ */
54
+ export declare const dateParser: {
55
+ /**
56
+ * Parses a natural language date string and returns detailed parsing results
57
+ * from `chrono-node`.
58
+ * @param text - The natural language date string to parse.
59
+ * @param context - The request context for logging and error tracking.
60
+ * @param refDate - Optional reference date for parsing relative dates.
61
+ * @returns A promise resolving with an array of `chrono.ParsedResult` objects.
62
+ */
63
+ parse: typeof parseDateStringDetailed;
64
+ /**
65
+ * Parses a natural language date string into a single JavaScript Date object.
66
+ * @param text - The natural language date string to parse.
67
+ * @param context - The request context for logging and error tracking.
68
+ * @param refDate - Optional reference date for parsing relative dates.
69
+ * @returns A promise resolving with a Date object or `null`.
70
+ */
71
+ parseDate: typeof parseDateString;
72
+ };
73
+ //# sourceMappingURL=dateParser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dateParser.d.ts","sourceRoot":"","sources":["../../../src/utils/parsing/dateParser.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AAEtC,OAAO,EAAwB,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAExE;;;;;;;;;;GAUG;AACH,wBAAsB,eAAe,CACnC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,cAAc,EACvB,OAAO,CAAC,EAAE,IAAI,GACb,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,CA0BtB;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,uBAAuB,CAC3C,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,cAAc,EACvB,OAAO,CAAC,EAAE,IAAI,GACb,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,CAwBhC;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,UAAU;IACrB;;;;;;;OAOG;;IAEH;;;;;;OAMG;;CAEJ,CAAC"}
@@ -0,0 +1,108 @@
1
+ /**
2
+ * @fileoverview Provides utility functions for parsing natural language date strings
3
+ * into Date objects or detailed parsing results using the `chrono-node` library.
4
+ * @module src/utils/parsing/dateParser
5
+ */
6
+ import * as chrono from "chrono-node";
7
+ import { JsonRpcErrorCode } from "../../types-global/errors.js";
8
+ import { ErrorHandler, logger } from "../index.js";
9
+ /**
10
+ * Parses a natural language date string into a JavaScript Date object.
11
+ * Uses `chrono.parseDate` for lenient parsing of various date formats.
12
+ *
13
+ * @param text - The natural language date string to parse.
14
+ * @param context - The request context for logging and error tracking.
15
+ * @param refDate - Optional reference date for parsing relative dates. Defaults to current date/time.
16
+ * @returns A promise resolving with a Date object or `null` if parsing fails.
17
+ * @throws {McpError} If an unexpected error occurs during parsing.
18
+ * @private
19
+ */
20
+ export async function parseDateString(text, context, refDate) {
21
+ const operation = "parseDateString";
22
+ const logContext = { ...context, operation, inputText: text, refDate };
23
+ logger.debug(logContext, `Attempting to parse date string: "${text}"`);
24
+ return await ErrorHandler.tryCatch(async () => {
25
+ const parsedDate = chrono.parseDate(text, refDate, { forwardDate: true });
26
+ if (parsedDate) {
27
+ logger.debug(logContext, `Successfully parsed "${text}" to ${parsedDate.toISOString()}`);
28
+ return parsedDate;
29
+ }
30
+ else {
31
+ logger.warning(logContext, `Failed to parse date string: "${text}"`);
32
+ return null;
33
+ }
34
+ }, {
35
+ operation,
36
+ context: logContext,
37
+ input: { text, refDate },
38
+ errorCode: JsonRpcErrorCode.ParseError,
39
+ });
40
+ }
41
+ /**
42
+ * Parses a natural language date string and returns detailed parsing results.
43
+ * Provides more information than just the Date object, including matched text and components.
44
+ *
45
+ * @param text - The natural language date string to parse.
46
+ * @param context - The request context for logging and error tracking.
47
+ * @param refDate - Optional reference date for parsing relative dates. Defaults to current date/time.
48
+ * @returns A promise resolving with an array of `chrono.ParsedResult` objects. Empty if no dates found.
49
+ * @throws {McpError} If an unexpected error occurs during parsing.
50
+ * @private
51
+ */
52
+ export async function parseDateStringDetailed(text, context, refDate) {
53
+ const operation = "parseDateStringDetailed";
54
+ const logContext = { ...context, operation, inputText: text, refDate };
55
+ logger.debug(logContext, `Attempting detailed parse of date string: "${text}"`);
56
+ return await ErrorHandler.tryCatch(async () => {
57
+ const results = chrono.parse(text, refDate, { forwardDate: true });
58
+ logger.debug(logContext, `Detailed parse of "${text}" resulted in ${results.length} result(s)`);
59
+ return results;
60
+ }, {
61
+ operation,
62
+ context: logContext,
63
+ input: { text, refDate },
64
+ errorCode: JsonRpcErrorCode.ParseError,
65
+ });
66
+ }
67
+ /**
68
+ * An object providing date parsing functionalities.
69
+ *
70
+ * @example
71
+ * ```typescript
72
+ * import { dateParser, requestContextService } from './utils'; // Assuming utils/index.js exports these
73
+ * const context = requestContextService.createRequestContext({ operation: 'TestDateParsing' });
74
+ *
75
+ * async function testParsing() {
76
+ * const dateObj = await dateParser.parseDate("next Friday at 3pm", context);
77
+ * if (dateObj) {
78
+ * console.log("Parsed Date:", dateObj.toISOString());
79
+ * }
80
+ *
81
+ * const detailedResults = await dateParser.parse("Meeting on 2024-12-25 and another one tomorrow", context);
82
+ * detailedResults.forEach(result => {
83
+ * console.log("Detailed Result:", result.text, result.start.date());
84
+ * });
85
+ * }
86
+ * testParsing();
87
+ * ```
88
+ */
89
+ export const dateParser = {
90
+ /**
91
+ * Parses a natural language date string and returns detailed parsing results
92
+ * from `chrono-node`.
93
+ * @param text - The natural language date string to parse.
94
+ * @param context - The request context for logging and error tracking.
95
+ * @param refDate - Optional reference date for parsing relative dates.
96
+ * @returns A promise resolving with an array of `chrono.ParsedResult` objects.
97
+ */
98
+ parse: parseDateStringDetailed,
99
+ /**
100
+ * Parses a natural language date string into a single JavaScript Date object.
101
+ * @param text - The natural language date string to parse.
102
+ * @param context - The request context for logging and error tracking.
103
+ * @param refDate - Optional reference date for parsing relative dates.
104
+ * @returns A promise resolving with a Date object or `null`.
105
+ */
106
+ parseDate: parseDateString,
107
+ };
108
+ //# sourceMappingURL=dateParser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dateParser.js","sourceRoot":"","sources":["../../../src/utils/parsing/dateParser.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,EAAkB,MAAM,kBAAkB,CAAC;AAExE;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,IAAY,EACZ,OAAuB,EACvB,OAAc;IAEd,MAAM,SAAS,GAAG,iBAAiB,CAAC;IACpC,MAAM,UAAU,GAAG,EAAE,GAAG,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;IACvE,MAAM,CAAC,KAAK,CAAC,UAAU,EAAE,qCAAqC,IAAI,GAAG,CAAC,CAAC;IAEvE,OAAO,MAAM,YAAY,CAAC,QAAQ,CAChC,KAAK,IAAI,EAAE;QACT,MAAM,UAAU,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1E,IAAI,UAAU,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CACV,UAAU,EACV,wBAAwB,IAAI,QAAQ,UAAU,CAAC,WAAW,EAAE,EAAE,CAC/D,CAAC;YACF,OAAO,UAAU,CAAC;QACpB,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE,iCAAiC,IAAI,GAAG,CAAC,CAAC;YACrE,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC,EACD;QACE,SAAS;QACT,OAAO,EAAE,UAAU;QACnB,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE;QACxB,SAAS,EAAE,gBAAgB,CAAC,UAAU;KACvC,CACF,CAAC;AACJ,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,IAAY,EACZ,OAAuB,EACvB,OAAc;IAEd,MAAM,SAAS,GAAG,yBAAyB,CAAC;IAC5C,MAAM,UAAU,GAAG,EAAE,GAAG,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;IACvE,MAAM,CAAC,KAAK,CACV,UAAU,EACV,8CAA8C,IAAI,GAAG,CACtD,CAAC;IAEF,OAAO,MAAM,YAAY,CAAC,QAAQ,CAChC,KAAK,IAAI,EAAE;QACT,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;QACnE,MAAM,CAAC,KAAK,CACV,UAAU,EACV,sBAAsB,IAAI,iBAAiB,OAAO,CAAC,MAAM,YAAY,CACtE,CAAC;QACF,OAAO,OAAO,CAAC;IACjB,CAAC,EACD;QACE,SAAS;QACT,OAAO,EAAE,UAAU;QACnB,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE;QACxB,SAAS,EAAE,gBAAgB,CAAC,UAAU;KACvC,CACF,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB;;;;;;;OAOG;IACH,KAAK,EAAE,uBAAuB;IAC9B;;;;;;OAMG;IACH,SAAS,EAAE,eAAe;CAC3B,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * @fileoverview Barrel file for parsing utility modules.
3
+ * This file re-exports utilities related to parsing various data formats,
4
+ * such as JSON and dates.
5
+ * @module src/utils/parsing
6
+ */
7
+ export * from "./dateParser.js";
8
+ export * from "./jsonParser.js";
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/parsing/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * @fileoverview Barrel file for parsing utility modules.
3
+ * This file re-exports utilities related to parsing various data formats,
4
+ * such as JSON and dates.
5
+ * @module src/utils/parsing
6
+ */
7
+ export * from "./dateParser.js";
8
+ export * from "./jsonParser.js";
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/parsing/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC"}
@@ -0,0 +1,83 @@
1
+ import { RequestContext } from "../index.js";
2
+ /**
3
+ * Enum mirroring `partial-json`'s `Allow` constants. These specify
4
+ * what types of partial JSON structures are permissible during parsing.
5
+ * They can be combined using bitwise OR (e.g., `Allow.STR | Allow.OBJ`).
6
+ *
7
+ * The available properties are:
8
+ * - `STR`: Allow partial string.
9
+ * - `NUM`: Allow partial number.
10
+ * - `ARR`: Allow partial array.
11
+ * - `OBJ`: Allow partial object.
12
+ * - `NULL`: Allow partial null.
13
+ * - `BOOL`: Allow partial boolean.
14
+ * - `NAN`: Allow partial NaN. (Note: Standard JSON does not support NaN)
15
+ * - `INFINITY`: Allow partial Infinity. (Note: Standard JSON does not support Infinity)
16
+ * - `_INFINITY`: Allow partial -Infinity. (Note: Standard JSON does not support -Infinity)
17
+ * - `INF`: Allow both partial Infinity and -Infinity.
18
+ * - `SPECIAL`: Allow all special values (NaN, Infinity, -Infinity).
19
+ * - `ATOM`: Allow all atomic values (strings, numbers, booleans, null, special values).
20
+ * - `COLLECTION`: Allow all collection values (objects, arrays).
21
+ * - `ALL`: Allow all value types to be partial (default for `partial-json`'s parse).
22
+ * @see {@link https://github.com/promplate/partial-json-parser-js} for more details.
23
+ */
24
+ export declare const Allow: {
25
+ STR: number;
26
+ NUM: number;
27
+ ARR: number;
28
+ OBJ: number;
29
+ NULL: number;
30
+ BOOL: number;
31
+ NAN: number;
32
+ INFINITY: number;
33
+ _INFINITY: number;
34
+ INF: number;
35
+ SPECIAL: number;
36
+ ATOM: number;
37
+ COLLECTION: number;
38
+ ALL: number;
39
+ };
40
+ /**
41
+ * Utility class for parsing potentially partial JSON strings.
42
+ * Wraps the 'partial-json' library for robust JSON parsing, handling
43
+ * incomplete structures and optional <think> blocks from LLMs.
44
+ */
45
+ export declare class JsonParser {
46
+ /**
47
+ * Parses a JSON string, which may be partial or prefixed with a <think> block.
48
+ * If a <think> block is present, its content is logged, and parsing proceeds on the
49
+ * remainder. Uses 'partial-json' to handle incomplete JSON.
50
+ *
51
+ * @template T The expected type of the parsed JSON object. Defaults to `any`.
52
+ * @param jsonString - The JSON string to parse.
53
+ * @param allowPartial - Bitwise OR combination of `Allow` constants specifying permissible
54
+ * partial JSON types. Defaults to `Allow.ALL`.
55
+ * @param context - Optional `RequestContext` for logging and error correlation.
56
+ * @returns The parsed JavaScript value.
57
+ * @throws {McpError} If the string is empty after processing or if `partial-json` fails.
58
+ */
59
+ parse<T = unknown>(jsonString: string, allowPartial?: number, context?: RequestContext): T;
60
+ }
61
+ /**
62
+ * Singleton instance of the `JsonParser`.
63
+ * Use this instance to parse JSON strings, with support for partial JSON and <think> blocks.
64
+ * @example
65
+ * ```typescript
66
+ * import { jsonParser, Allow, requestContextService } from './utils';
67
+ * const context = requestContextService.createRequestContext({ operation: 'TestJsonParsing' });
68
+ *
69
+ * const fullJson = '{"key": "value"}';
70
+ * const parsedFull = jsonParser.parse(fullJson, Allow.ALL, context);
71
+ * console.log(parsedFull); // Output: { key: 'value' }
72
+ *
73
+ * const partialObject = '<think>This is a thought.</think>{"key": "value", "arr": [1,';
74
+ * try {
75
+ * const parsedPartial = jsonParser.parse(partialObject, undefined, context);
76
+ * console.log(parsedPartial);
77
+ * } catch (e) {
78
+ * console.error("Parsing partial object failed:", e);
79
+ * }
80
+ * ```
81
+ */
82
+ export declare const jsonParser: JsonParser;
83
+ //# sourceMappingURL=jsonParser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jsonParser.d.ts","sourceRoot":"","sources":["../../../src/utils/parsing/jsonParser.ts"],"names":[],"mappings":"AAWA,OAAO,EAEL,cAAc,EAEf,MAAM,kBAAkB,CAAC;AAE1B;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;CAAmB,CAAC;AAStC;;;;GAIG;AACH,qBAAa,UAAU;IACrB;;;;;;;;;;;;OAYG;IACH,KAAK,CAAC,CAAC,GAAG,OAAO,EACf,UAAU,EAAE,MAAM,EAClB,YAAY,GAAE,MAAkB,EAChC,OAAO,CAAC,EAAE,cAAc,GACvB,CAAC;CAoEL;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,UAAU,YAAmB,CAAC"}
@@ -0,0 +1,128 @@
1
+ /**
2
+ * @fileoverview Provides a utility class for parsing potentially partial JSON strings.
3
+ * It wraps the 'partial-json' npm library and includes functionality to handle
4
+ * optional <think>...</think> blocks often found at the beginning of LLM outputs.
5
+ * @module src/utils/parsing/jsonParser
6
+ */
7
+ import { parse as parsePartialJson, Allow as PartialJsonAllow, } from "partial-json";
8
+ import { JsonRpcErrorCode, McpError } from "../../types-global/errors.js";
9
+ import { logger, requestContextService, } from "../index.js";
10
+ /**
11
+ * Enum mirroring `partial-json`'s `Allow` constants. These specify
12
+ * what types of partial JSON structures are permissible during parsing.
13
+ * They can be combined using bitwise OR (e.g., `Allow.STR | Allow.OBJ`).
14
+ *
15
+ * The available properties are:
16
+ * - `STR`: Allow partial string.
17
+ * - `NUM`: Allow partial number.
18
+ * - `ARR`: Allow partial array.
19
+ * - `OBJ`: Allow partial object.
20
+ * - `NULL`: Allow partial null.
21
+ * - `BOOL`: Allow partial boolean.
22
+ * - `NAN`: Allow partial NaN. (Note: Standard JSON does not support NaN)
23
+ * - `INFINITY`: Allow partial Infinity. (Note: Standard JSON does not support Infinity)
24
+ * - `_INFINITY`: Allow partial -Infinity. (Note: Standard JSON does not support -Infinity)
25
+ * - `INF`: Allow both partial Infinity and -Infinity.
26
+ * - `SPECIAL`: Allow all special values (NaN, Infinity, -Infinity).
27
+ * - `ATOM`: Allow all atomic values (strings, numbers, booleans, null, special values).
28
+ * - `COLLECTION`: Allow all collection values (objects, arrays).
29
+ * - `ALL`: Allow all value types to be partial (default for `partial-json`'s parse).
30
+ * @see {@link https://github.com/promplate/partial-json-parser-js} for more details.
31
+ */
32
+ export const Allow = PartialJsonAllow;
33
+ /**
34
+ * Regular expression to find a <think> block at the start of a string.
35
+ * Captures content within <think>...</think> (Group 1) and the rest of the string (Group 2).
36
+ * @private
37
+ */
38
+ const thinkBlockRegex = /^<think>([\s\S]*?)<\/think>\s*([\s\S]*)$/;
39
+ /**
40
+ * Utility class for parsing potentially partial JSON strings.
41
+ * Wraps the 'partial-json' library for robust JSON parsing, handling
42
+ * incomplete structures and optional <think> blocks from LLMs.
43
+ */
44
+ export class JsonParser {
45
+ /**
46
+ * Parses a JSON string, which may be partial or prefixed with a <think> block.
47
+ * If a <think> block is present, its content is logged, and parsing proceeds on the
48
+ * remainder. Uses 'partial-json' to handle incomplete JSON.
49
+ *
50
+ * @template T The expected type of the parsed JSON object. Defaults to `any`.
51
+ * @param jsonString - The JSON string to parse.
52
+ * @param allowPartial - Bitwise OR combination of `Allow` constants specifying permissible
53
+ * partial JSON types. Defaults to `Allow.ALL`.
54
+ * @param context - Optional `RequestContext` for logging and error correlation.
55
+ * @returns The parsed JavaScript value.
56
+ * @throws {McpError} If the string is empty after processing or if `partial-json` fails.
57
+ */
58
+ parse(jsonString, allowPartial = Allow.ALL, context) {
59
+ let stringToParse = jsonString;
60
+ const match = jsonString.match(thinkBlockRegex);
61
+ if (match) {
62
+ const thinkContent = match[1]?.trim() ?? "";
63
+ const restOfString = match[2] ?? "";
64
+ const logContext = context ||
65
+ requestContextService.createRequestContext({
66
+ operation: "JsonParser.thinkBlock",
67
+ });
68
+ if (thinkContent) {
69
+ logger.debug({
70
+ ...logContext,
71
+ thinkContent,
72
+ }, "LLM <think> block detected and logged.");
73
+ }
74
+ else {
75
+ logger.debug(logContext, "Empty LLM <think> block detected.");
76
+ }
77
+ stringToParse = restOfString;
78
+ }
79
+ stringToParse = stringToParse.trim();
80
+ if (!stringToParse) {
81
+ throw new McpError(JsonRpcErrorCode.ValidationError, "JSON string is empty after removing <think> block and trimming.", context);
82
+ }
83
+ try {
84
+ return parsePartialJson(stringToParse, allowPartial);
85
+ }
86
+ catch (e) {
87
+ const error = e;
88
+ const errorLogContext = context ||
89
+ requestContextService.createRequestContext({
90
+ operation: "JsonParser.parseError",
91
+ });
92
+ logger.error({
93
+ ...errorLogContext,
94
+ errorDetails: error.message,
95
+ contentAttempted: stringToParse.substring(0, 200),
96
+ }, "Failed to parse JSON content.");
97
+ throw new McpError(JsonRpcErrorCode.ValidationError, `Failed to parse JSON: ${error.message}`, {
98
+ ...context,
99
+ originalContentSample: stringToParse.substring(0, 200) +
100
+ (stringToParse.length > 200 ? "..." : ""),
101
+ rawError: error instanceof Error ? error.stack : String(error),
102
+ });
103
+ }
104
+ }
105
+ }
106
+ /**
107
+ * Singleton instance of the `JsonParser`.
108
+ * Use this instance to parse JSON strings, with support for partial JSON and <think> blocks.
109
+ * @example
110
+ * ```typescript
111
+ * import { jsonParser, Allow, requestContextService } from './utils';
112
+ * const context = requestContextService.createRequestContext({ operation: 'TestJsonParsing' });
113
+ *
114
+ * const fullJson = '{"key": "value"}';
115
+ * const parsedFull = jsonParser.parse(fullJson, Allow.ALL, context);
116
+ * console.log(parsedFull); // Output: { key: 'value' }
117
+ *
118
+ * const partialObject = '<think>This is a thought.</think>{"key": "value", "arr": [1,';
119
+ * try {
120
+ * const parsedPartial = jsonParser.parse(partialObject, undefined, context);
121
+ * console.log(parsedPartial);
122
+ * } catch (e) {
123
+ * console.error("Parsing partial object failed:", e);
124
+ * }
125
+ * ```
126
+ */
127
+ export const jsonParser = new JsonParser();
128
+ //# sourceMappingURL=jsonParser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jsonParser.js","sourceRoot":"","sources":["../../../src/utils/parsing/jsonParser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @fileoverview Barrel file for the scheduling module.
3
+ * Exports the singleton schedulerService for application-wide use.
4
+ * @module src/utils/scheduling
5
+ */
6
+ export * from "./scheduler.js";
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/scheduling/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,gBAAgB,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @fileoverview Barrel file for the scheduling module.
3
+ * Exports the singleton schedulerService for application-wide use.
4
+ * @module src/utils/scheduling
5
+ */
6
+ export * from "./scheduler.js";
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/scheduling/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,gBAAgB,CAAC"}
@@ -0,0 +1,73 @@
1
+ /**
2
+ * @fileoverview Provides a singleton service for scheduling and managing cron jobs.
3
+ * This service wraps the 'node-cron' library to offer a unified interface for
4
+ * defining, starting, stopping, and listing recurring tasks within the application.
5
+ * @module src/utils/scheduling/scheduler
6
+ */
7
+ import { ScheduledTask } from "node-cron";
8
+ import { RequestContext } from "../internal/index.js";
9
+ /**
10
+ * Represents a scheduled job managed by the SchedulerService.
11
+ */
12
+ export interface Job {
13
+ /** A unique identifier for the job. */
14
+ id: string;
15
+ /** The cron pattern defining the job's schedule. */
16
+ schedule: string;
17
+ /** A description of what the job does. */
18
+ description: string;
19
+ /** The underlying 'node-cron' task instance. */
20
+ task: ScheduledTask;
21
+ /** Indicates whether the job is currently running. */
22
+ isRunning: boolean;
23
+ }
24
+ /**
25
+ * A singleton service for scheduling and managing cron jobs.
26
+ */
27
+ export declare class SchedulerService {
28
+ private static instance;
29
+ private jobs;
30
+ /** @private */
31
+ private constructor();
32
+ /**
33
+ * Gets the singleton instance of the SchedulerService.
34
+ * @returns The singleton SchedulerService instance.
35
+ */
36
+ static getInstance(): SchedulerService;
37
+ /**
38
+ * Schedules a new job.
39
+ *
40
+ * @param id - A unique identifier for the job.
41
+ * @param schedule - The cron pattern for the schedule (e.g., '* * * * *').
42
+ * @param taskFunction - The function to execute on schedule. It receives a RequestContext.
43
+ * @param description - A description of the job.
44
+ * @returns The newly created Job object.
45
+ */
46
+ schedule(id: string, schedule: string, taskFunction: (context: RequestContext) => void | Promise<void>, description: string): Job;
47
+ /**
48
+ * Starts a scheduled job.
49
+ * @param id - The ID of the job to start.
50
+ */
51
+ start(id: string): void;
52
+ /**
53
+ * Stops a scheduled job.
54
+ * @param id - The ID of the job to stop.
55
+ */
56
+ stop(id: string): void;
57
+ /**
58
+ * Removes a job from the scheduler. The job is stopped before being removed.
59
+ * @param id - The ID of the job to remove.
60
+ */
61
+ remove(id: string): void;
62
+ /**
63
+ * Gets a list of all scheduled jobs.
64
+ * @returns An array of all Job objects.
65
+ */
66
+ listJobs(): Job[];
67
+ }
68
+ /**
69
+ * The singleton instance of the SchedulerService.
70
+ * Use this instance for all job scheduling operations.
71
+ */
72
+ export declare const schedulerService: SchedulerService;
73
+ //# sourceMappingURL=scheduler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scheduler.d.ts","sourceRoot":"","sources":["../../../src/utils/scheduling/scheduler.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAa,EAAE,aAAa,EAAc,MAAM,WAAW,CAAC;AAC5D,OAAO,EAAU,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAGnE;;GAEG;AACH,MAAM,WAAW,GAAG;IAClB,uCAAuC;IACvC,EAAE,EAAE,MAAM,CAAC;IACX,oDAAoD;IACpD,QAAQ,EAAE,MAAM,CAAC;IACjB,0CAA0C;IAC1C,WAAW,EAAE,MAAM,CAAC;IACpB,gDAAgD;IAChD,IAAI,EAAE,aAAa,CAAC;IACpB,sDAAsD;IACtD,SAAS,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAmB;IAC1C,OAAO,CAAC,IAAI,CAA+B;IAE3C,eAAe;IACf,OAAO;IAUP;;;OAGG;WACW,WAAW,IAAI,gBAAgB;IAO7C;;;;;;;;OAQG;IACI,QAAQ,CACb,EAAE,EAAE,MAAM,EACV,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,CAAC,OAAO,EAAE,cAAc,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,EAC/D,WAAW,EAAE,MAAM,GAClB,GAAG;IAqEN;;;OAGG;IACI,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAe9B;;;OAGG;IACI,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAe7B;;;OAGG;IACI,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAgB/B;;;OAGG;IACI,QAAQ,IAAI,GAAG,EAAE;CAGzB;AAED;;;GAGG;AACH,eAAO,MAAM,gBAAgB,kBAAiC,CAAC"}