mcp-server-framework 1.0.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 (673) hide show
  1. package/CHANGELOG.md +174 -0
  2. package/LICENSE-GPL.md +219 -0
  3. package/LICENSE.md +187 -0
  4. package/README.md +439 -0
  5. package/build/config/config-cache.d.ts +120 -0
  6. package/build/config/config-cache.d.ts.map +1 -0
  7. package/build/config/config-cache.js +310 -0
  8. package/build/config/config-cache.js.map +1 -0
  9. package/build/config/env.d.ts +476 -0
  10. package/build/config/env.d.ts.map +1 -0
  11. package/build/config/env.js +441 -0
  12. package/build/config/env.js.map +1 -0
  13. package/build/config/extensions.d.ts +107 -0
  14. package/build/config/extensions.d.ts.map +1 -0
  15. package/build/config/extensions.js +152 -0
  16. package/build/config/extensions.js.map +1 -0
  17. package/build/config/file/index.d.ts +8 -0
  18. package/build/config/file/index.d.ts.map +1 -0
  19. package/build/config/file/index.js +10 -0
  20. package/build/config/file/index.js.map +1 -0
  21. package/build/config/file/loader.d.ts +31 -0
  22. package/build/config/file/loader.d.ts.map +1 -0
  23. package/build/config/file/loader.js +313 -0
  24. package/build/config/file/loader.js.map +1 -0
  25. package/build/config/file/schema.d.ts +583 -0
  26. package/build/config/file/schema.d.ts.map +1 -0
  27. package/build/config/file/schema.js +388 -0
  28. package/build/config/file/schema.js.map +1 -0
  29. package/build/config/index.d.ts +15 -0
  30. package/build/config/index.d.ts.map +1 -0
  31. package/build/config/index.js +27 -0
  32. package/build/config/index.js.map +1 -0
  33. package/build/config/startup-warnings.d.ts +46 -0
  34. package/build/config/startup-warnings.d.ts.map +1 -0
  35. package/build/config/startup-warnings.js +61 -0
  36. package/build/config/startup-warnings.js.map +1 -0
  37. package/build/connection/connection-state.d.ts +196 -0
  38. package/build/connection/connection-state.d.ts.map +1 -0
  39. package/build/connection/connection-state.js +426 -0
  40. package/build/connection/connection-state.js.map +1 -0
  41. package/build/connection/core/base.d.ts +43 -0
  42. package/build/connection/core/base.d.ts.map +1 -0
  43. package/build/connection/core/base.js +82 -0
  44. package/build/connection/core/base.js.map +1 -0
  45. package/build/connection/core/constants.d.ts +121 -0
  46. package/build/connection/core/constants.d.ts.map +1 -0
  47. package/build/connection/core/constants.js +151 -0
  48. package/build/connection/core/constants.js.map +1 -0
  49. package/build/connection/core/index.d.ts +13 -0
  50. package/build/connection/core/index.d.ts.map +1 -0
  51. package/build/connection/core/index.js +14 -0
  52. package/build/connection/core/index.js.map +1 -0
  53. package/build/connection/core/types.d.ts +102 -0
  54. package/build/connection/core/types.d.ts.map +1 -0
  55. package/build/connection/core/types.js +31 -0
  56. package/build/connection/core/types.js.map +1 -0
  57. package/build/connection/index.d.ts +19 -0
  58. package/build/connection/index.d.ts.map +1 -0
  59. package/build/connection/index.js +22 -0
  60. package/build/connection/index.js.map +1 -0
  61. package/build/connection/types.d.ts +125 -0
  62. package/build/connection/types.d.ts.map +1 -0
  63. package/build/connection/types.js +39 -0
  64. package/build/connection/types.js.map +1 -0
  65. package/build/errors/categories/auth.d.ts +59 -0
  66. package/build/errors/categories/auth.d.ts.map +1 -0
  67. package/build/errors/categories/auth.js +111 -0
  68. package/build/errors/categories/auth.js.map +1 -0
  69. package/build/errors/categories/connection.d.ts +70 -0
  70. package/build/errors/categories/connection.d.ts.map +1 -0
  71. package/build/errors/categories/connection.js +120 -0
  72. package/build/errors/categories/connection.js.map +1 -0
  73. package/build/errors/categories/index.d.ts +14 -0
  74. package/build/errors/categories/index.d.ts.map +1 -0
  75. package/build/errors/categories/index.js +20 -0
  76. package/build/errors/categories/index.js.map +1 -0
  77. package/build/errors/categories/operation.d.ts +83 -0
  78. package/build/errors/categories/operation.d.ts.map +1 -0
  79. package/build/errors/categories/operation.js +149 -0
  80. package/build/errors/categories/operation.js.map +1 -0
  81. package/build/errors/categories/protocol.d.ts +68 -0
  82. package/build/errors/categories/protocol.d.ts.map +1 -0
  83. package/build/errors/categories/protocol.js +135 -0
  84. package/build/errors/categories/protocol.js.map +1 -0
  85. package/build/errors/categories/session.d.ts +50 -0
  86. package/build/errors/categories/session.d.ts.map +1 -0
  87. package/build/errors/categories/session.js +97 -0
  88. package/build/errors/categories/session.js.map +1 -0
  89. package/build/errors/categories/system.d.ts +95 -0
  90. package/build/errors/categories/system.d.ts.map +1 -0
  91. package/build/errors/categories/system.js +190 -0
  92. package/build/errors/categories/system.js.map +1 -0
  93. package/build/errors/categories/transport.d.ts +70 -0
  94. package/build/errors/categories/transport.d.ts.map +1 -0
  95. package/build/errors/categories/transport.js +148 -0
  96. package/build/errors/categories/transport.js.map +1 -0
  97. package/build/errors/categories/validation.d.ts +140 -0
  98. package/build/errors/categories/validation.d.ts.map +1 -0
  99. package/build/errors/categories/validation.js +311 -0
  100. package/build/errors/categories/validation.js.map +1 -0
  101. package/build/errors/core/base.d.ts +103 -0
  102. package/build/errors/core/base.d.ts.map +1 -0
  103. package/build/errors/core/base.js +219 -0
  104. package/build/errors/core/base.js.map +1 -0
  105. package/build/errors/core/constants.d.ts +40 -0
  106. package/build/errors/core/constants.d.ts.map +1 -0
  107. package/build/errors/core/constants.js +49 -0
  108. package/build/errors/core/constants.js.map +1 -0
  109. package/build/errors/core/error-codes.d.ts +72 -0
  110. package/build/errors/core/error-codes.d.ts.map +1 -0
  111. package/build/errors/core/error-codes.js +88 -0
  112. package/build/errors/core/error-codes.js.map +1 -0
  113. package/build/errors/core/http.d.ts +69 -0
  114. package/build/errors/core/http.d.ts.map +1 -0
  115. package/build/errors/core/http.js +106 -0
  116. package/build/errors/core/http.js.map +1 -0
  117. package/build/errors/core/index.d.ts +23 -0
  118. package/build/errors/core/index.d.ts.map +1 -0
  119. package/build/errors/core/index.js +41 -0
  120. package/build/errors/core/index.js.map +1 -0
  121. package/build/errors/core/json-rpc.d.ts +69 -0
  122. package/build/errors/core/json-rpc.d.ts.map +1 -0
  123. package/build/errors/core/json-rpc.js +79 -0
  124. package/build/errors/core/json-rpc.js.map +1 -0
  125. package/build/errors/core/messages.d.ts +51 -0
  126. package/build/errors/core/messages.d.ts.map +1 -0
  127. package/build/errors/core/messages.js +59 -0
  128. package/build/errors/core/messages.js.map +1 -0
  129. package/build/errors/core/types.d.ts +80 -0
  130. package/build/errors/core/types.d.ts.map +1 -0
  131. package/build/errors/core/types.js +10 -0
  132. package/build/errors/core/types.js.map +1 -0
  133. package/build/errors/factory.d.ts +199 -0
  134. package/build/errors/factory.d.ts.map +1 -0
  135. package/build/errors/factory.js +244 -0
  136. package/build/errors/factory.js.map +1 -0
  137. package/build/errors/index.d.ts +35 -0
  138. package/build/errors/index.d.ts.map +1 -0
  139. package/build/errors/index.js +67 -0
  140. package/build/errors/index.js.map +1 -0
  141. package/build/index.d.ts +93 -0
  142. package/build/index.d.ts.map +1 -0
  143. package/build/index.js +107 -0
  144. package/build/index.js.map +1 -0
  145. package/build/logger/core/constants.d.ts +143 -0
  146. package/build/logger/core/constants.d.ts.map +1 -0
  147. package/build/logger/core/constants.js +206 -0
  148. package/build/logger/core/constants.js.map +1 -0
  149. package/build/logger/core/context.d.ts +170 -0
  150. package/build/logger/core/context.d.ts.map +1 -0
  151. package/build/logger/core/context.js +237 -0
  152. package/build/logger/core/context.js.map +1 -0
  153. package/build/logger/core/errors.d.ts +101 -0
  154. package/build/logger/core/errors.d.ts.map +1 -0
  155. package/build/logger/core/errors.js +128 -0
  156. package/build/logger/core/errors.js.map +1 -0
  157. package/build/logger/core/format.d.ts +40 -0
  158. package/build/logger/core/format.d.ts.map +1 -0
  159. package/build/logger/core/format.js +47 -0
  160. package/build/logger/core/format.js.map +1 -0
  161. package/build/logger/core/index.d.ts +19 -0
  162. package/build/logger/core/index.d.ts.map +1 -0
  163. package/build/logger/core/index.js +47 -0
  164. package/build/logger/core/index.js.map +1 -0
  165. package/build/logger/core/trace-context.d.ts +51 -0
  166. package/build/logger/core/trace-context.d.ts.map +1 -0
  167. package/build/logger/core/trace-context.js +42 -0
  168. package/build/logger/core/trace-context.js.map +1 -0
  169. package/build/logger/core/types.d.ts +233 -0
  170. package/build/logger/core/types.d.ts.map +1 -0
  171. package/build/logger/core/types.js +10 -0
  172. package/build/logger/core/types.js.map +1 -0
  173. package/build/logger/factory.d.ts +150 -0
  174. package/build/logger/factory.d.ts.map +1 -0
  175. package/build/logger/factory.js +236 -0
  176. package/build/logger/factory.js.map +1 -0
  177. package/build/logger/formatters/index.d.ts +12 -0
  178. package/build/logger/formatters/index.d.ts.map +1 -0
  179. package/build/logger/formatters/index.js +15 -0
  180. package/build/logger/formatters/index.js.map +1 -0
  181. package/build/logger/formatters/json-formatter.d.ts +54 -0
  182. package/build/logger/formatters/json-formatter.d.ts.map +1 -0
  183. package/build/logger/formatters/json-formatter.js +80 -0
  184. package/build/logger/formatters/json-formatter.js.map +1 -0
  185. package/build/logger/formatters/schema.d.ts +230 -0
  186. package/build/logger/formatters/schema.d.ts.map +1 -0
  187. package/build/logger/formatters/schema.js +278 -0
  188. package/build/logger/formatters/schema.js.map +1 -0
  189. package/build/logger/formatters/text-formatter.d.ts +50 -0
  190. package/build/logger/formatters/text-formatter.d.ts.map +1 -0
  191. package/build/logger/formatters/text-formatter.js +93 -0
  192. package/build/logger/formatters/text-formatter.js.map +1 -0
  193. package/build/logger/index.d.ts +39 -0
  194. package/build/logger/index.d.ts.map +1 -0
  195. package/build/logger/index.js +43 -0
  196. package/build/logger/index.js.map +1 -0
  197. package/build/logger/logger.d.ts +278 -0
  198. package/build/logger/logger.d.ts.map +1 -0
  199. package/build/logger/logger.js +459 -0
  200. package/build/logger/logger.js.map +1 -0
  201. package/build/logger/mcp-logger.d.ts +177 -0
  202. package/build/logger/mcp-logger.d.ts.map +1 -0
  203. package/build/logger/mcp-logger.js +294 -0
  204. package/build/logger/mcp-logger.js.map +1 -0
  205. package/build/logger/scrubbing/index.d.ts +14 -0
  206. package/build/logger/scrubbing/index.d.ts.map +1 -0
  207. package/build/logger/scrubbing/index.js +16 -0
  208. package/build/logger/scrubbing/index.js.map +1 -0
  209. package/build/logger/scrubbing/injection-guard.d.ts +69 -0
  210. package/build/logger/scrubbing/injection-guard.d.ts.map +1 -0
  211. package/build/logger/scrubbing/injection-guard.js +102 -0
  212. package/build/logger/scrubbing/injection-guard.js.map +1 -0
  213. package/build/logger/scrubbing/secret-scrubber.d.ts +72 -0
  214. package/build/logger/scrubbing/secret-scrubber.d.ts.map +1 -0
  215. package/build/logger/scrubbing/secret-scrubber.js +177 -0
  216. package/build/logger/scrubbing/secret-scrubber.js.map +1 -0
  217. package/build/logger/writers/base-writer.d.ts +45 -0
  218. package/build/logger/writers/base-writer.d.ts.map +1 -0
  219. package/build/logger/writers/base-writer.js +41 -0
  220. package/build/logger/writers/base-writer.js.map +1 -0
  221. package/build/logger/writers/composite-writer.d.ts +83 -0
  222. package/build/logger/writers/composite-writer.d.ts.map +1 -0
  223. package/build/logger/writers/composite-writer.js +121 -0
  224. package/build/logger/writers/composite-writer.js.map +1 -0
  225. package/build/logger/writers/console-writer.d.ts +59 -0
  226. package/build/logger/writers/console-writer.d.ts.map +1 -0
  227. package/build/logger/writers/console-writer.js +73 -0
  228. package/build/logger/writers/console-writer.js.map +1 -0
  229. package/build/logger/writers/file-writer.d.ts +160 -0
  230. package/build/logger/writers/file-writer.d.ts.map +1 -0
  231. package/build/logger/writers/file-writer.js +345 -0
  232. package/build/logger/writers/file-writer.js.map +1 -0
  233. package/build/logger/writers/index.d.ts +15 -0
  234. package/build/logger/writers/index.d.ts.map +1 -0
  235. package/build/logger/writers/index.js +19 -0
  236. package/build/logger/writers/index.js.map +1 -0
  237. package/build/mcp/capabilities/apps/define-app.d.ts +68 -0
  238. package/build/mcp/capabilities/apps/define-app.d.ts.map +1 -0
  239. package/build/mcp/capabilities/apps/define-app.js +127 -0
  240. package/build/mcp/capabilities/apps/define-app.js.map +1 -0
  241. package/build/mcp/capabilities/apps/index.d.ts +10 -0
  242. package/build/mcp/capabilities/apps/index.d.ts.map +1 -0
  243. package/build/mcp/capabilities/apps/index.js +10 -0
  244. package/build/mcp/capabilities/apps/index.js.map +1 -0
  245. package/build/mcp/capabilities/capabilities.d.ts +24 -0
  246. package/build/mcp/capabilities/capabilities.d.ts.map +1 -0
  247. package/build/mcp/capabilities/capabilities.js +50 -0
  248. package/build/mcp/capabilities/capabilities.js.map +1 -0
  249. package/build/mcp/capabilities/index.d.ts +17 -0
  250. package/build/mcp/capabilities/index.d.ts.map +1 -0
  251. package/build/mcp/capabilities/index.js +20 -0
  252. package/build/mcp/capabilities/index.js.map +1 -0
  253. package/build/mcp/capabilities/prompts/define-prompt.d.ts +95 -0
  254. package/build/mcp/capabilities/prompts/define-prompt.d.ts.map +1 -0
  255. package/build/mcp/capabilities/prompts/define-prompt.js +109 -0
  256. package/build/mcp/capabilities/prompts/define-prompt.js.map +1 -0
  257. package/build/mcp/capabilities/prompts/index.d.ts +10 -0
  258. package/build/mcp/capabilities/prompts/index.d.ts.map +1 -0
  259. package/build/mcp/capabilities/prompts/index.js +10 -0
  260. package/build/mcp/capabilities/prompts/index.js.map +1 -0
  261. package/build/mcp/capabilities/registry/base-registry.d.ts +95 -0
  262. package/build/mcp/capabilities/registry/base-registry.d.ts.map +1 -0
  263. package/build/mcp/capabilities/registry/base-registry.js +149 -0
  264. package/build/mcp/capabilities/registry/base-registry.js.map +1 -0
  265. package/build/mcp/capabilities/registry/index.d.ts +16 -0
  266. package/build/mcp/capabilities/registry/index.d.ts.map +1 -0
  267. package/build/mcp/capabilities/registry/index.js +34 -0
  268. package/build/mcp/capabilities/registry/index.js.map +1 -0
  269. package/build/mcp/capabilities/registry/prompt-registry.d.ts +116 -0
  270. package/build/mcp/capabilities/registry/prompt-registry.d.ts.map +1 -0
  271. package/build/mcp/capabilities/registry/prompt-registry.js +232 -0
  272. package/build/mcp/capabilities/registry/prompt-registry.js.map +1 -0
  273. package/build/mcp/capabilities/registry/reset.d.ts +30 -0
  274. package/build/mcp/capabilities/registry/reset.d.ts.map +1 -0
  275. package/build/mcp/capabilities/registry/reset.js +48 -0
  276. package/build/mcp/capabilities/registry/reset.js.map +1 -0
  277. package/build/mcp/capabilities/registry/resource-registry.d.ts +152 -0
  278. package/build/mcp/capabilities/registry/resource-registry.d.ts.map +1 -0
  279. package/build/mcp/capabilities/registry/resource-registry.js +430 -0
  280. package/build/mcp/capabilities/registry/resource-registry.js.map +1 -0
  281. package/build/mcp/capabilities/registry/scope-enforcement.d.ts +48 -0
  282. package/build/mcp/capabilities/registry/scope-enforcement.d.ts.map +1 -0
  283. package/build/mcp/capabilities/registry/scope-enforcement.js +62 -0
  284. package/build/mcp/capabilities/registry/scope-enforcement.js.map +1 -0
  285. package/build/mcp/capabilities/registry/task-tool-registry.d.ts +96 -0
  286. package/build/mcp/capabilities/registry/task-tool-registry.d.ts.map +1 -0
  287. package/build/mcp/capabilities/registry/task-tool-registry.js +190 -0
  288. package/build/mcp/capabilities/registry/task-tool-registry.js.map +1 -0
  289. package/build/mcp/capabilities/registry/tool-registry.d.ts +100 -0
  290. package/build/mcp/capabilities/registry/tool-registry.d.ts.map +1 -0
  291. package/build/mcp/capabilities/registry/tool-registry.js +242 -0
  292. package/build/mcp/capabilities/registry/tool-registry.js.map +1 -0
  293. package/build/mcp/capabilities/resources/define-resource.d.ts +103 -0
  294. package/build/mcp/capabilities/resources/define-resource.d.ts.map +1 -0
  295. package/build/mcp/capabilities/resources/define-resource.js +137 -0
  296. package/build/mcp/capabilities/resources/define-resource.js.map +1 -0
  297. package/build/mcp/capabilities/resources/index.d.ts +10 -0
  298. package/build/mcp/capabilities/resources/index.d.ts.map +1 -0
  299. package/build/mcp/capabilities/resources/index.js +10 -0
  300. package/build/mcp/capabilities/resources/index.js.map +1 -0
  301. package/build/mcp/capabilities/server-capabilities.d.ts +33 -0
  302. package/build/mcp/capabilities/server-capabilities.d.ts.map +1 -0
  303. package/build/mcp/capabilities/server-capabilities.js +16 -0
  304. package/build/mcp/capabilities/server-capabilities.js.map +1 -0
  305. package/build/mcp/capabilities/tasks/define-task.d.ts +75 -0
  306. package/build/mcp/capabilities/tasks/define-task.d.ts.map +1 -0
  307. package/build/mcp/capabilities/tasks/define-task.js +93 -0
  308. package/build/mcp/capabilities/tasks/define-task.js.map +1 -0
  309. package/build/mcp/capabilities/tasks/index.d.ts +11 -0
  310. package/build/mcp/capabilities/tasks/index.d.ts.map +1 -0
  311. package/build/mcp/capabilities/tasks/index.js +11 -0
  312. package/build/mcp/capabilities/tasks/index.js.map +1 -0
  313. package/build/mcp/capabilities/tools/define-tool.d.ts +62 -0
  314. package/build/mcp/capabilities/tools/define-tool.d.ts.map +1 -0
  315. package/build/mcp/capabilities/tools/define-tool.js +73 -0
  316. package/build/mcp/capabilities/tools/define-tool.js.map +1 -0
  317. package/build/mcp/capabilities/tools/index.d.ts +10 -0
  318. package/build/mcp/capabilities/tools/index.d.ts.map +1 -0
  319. package/build/mcp/capabilities/tools/index.js +10 -0
  320. package/build/mcp/capabilities/tools/index.js.map +1 -0
  321. package/build/mcp/handlers/index.d.ts +19 -0
  322. package/build/mcp/handlers/index.d.ts.map +1 -0
  323. package/build/mcp/handlers/index.js +26 -0
  324. package/build/mcp/handlers/index.js.map +1 -0
  325. package/build/mcp/handlers/ping.d.ts +27 -0
  326. package/build/mcp/handlers/ping.d.ts.map +1 -0
  327. package/build/mcp/handlers/ping.js +61 -0
  328. package/build/mcp/handlers/ping.js.map +1 -0
  329. package/build/mcp/handlers/progress.d.ts +41 -0
  330. package/build/mcp/handlers/progress.d.ts.map +1 -0
  331. package/build/mcp/handlers/progress.js +79 -0
  332. package/build/mcp/handlers/progress.js.map +1 -0
  333. package/build/mcp/index.d.ts +28 -0
  334. package/build/mcp/index.d.ts.map +1 -0
  335. package/build/mcp/index.js +34 -0
  336. package/build/mcp/index.js.map +1 -0
  337. package/build/mcp/responses/helpers.d.ts +146 -0
  338. package/build/mcp/responses/helpers.d.ts.map +1 -0
  339. package/build/mcp/responses/helpers.js +197 -0
  340. package/build/mcp/responses/helpers.js.map +1 -0
  341. package/build/mcp/responses/index.d.ts +9 -0
  342. package/build/mcp/responses/index.d.ts.map +1 -0
  343. package/build/mcp/responses/index.js +12 -0
  344. package/build/mcp/responses/index.js.map +1 -0
  345. package/build/mcp/types/context.d.ts +371 -0
  346. package/build/mcp/types/context.d.ts.map +1 -0
  347. package/build/mcp/types/context.js +17 -0
  348. package/build/mcp/types/context.js.map +1 -0
  349. package/build/mcp/types/definition.d.ts +727 -0
  350. package/build/mcp/types/definition.d.ts.map +1 -0
  351. package/build/mcp/types/definition.js +29 -0
  352. package/build/mcp/types/definition.js.map +1 -0
  353. package/build/mcp/types/handler.d.ts +58 -0
  354. package/build/mcp/types/handler.d.ts.map +1 -0
  355. package/build/mcp/types/handler.js +10 -0
  356. package/build/mcp/types/handler.js.map +1 -0
  357. package/build/mcp/types/index.d.ts +21 -0
  358. package/build/mcp/types/index.d.ts.map +1 -0
  359. package/build/mcp/types/index.js +18 -0
  360. package/build/mcp/types/index.js.map +1 -0
  361. package/build/mcp/types/response.d.ts +79 -0
  362. package/build/mcp/types/response.d.ts.map +1 -0
  363. package/build/mcp/types/response.js +10 -0
  364. package/build/mcp/types/response.js.map +1 -0
  365. package/build/server/auth/auth-context.d.ts +52 -0
  366. package/build/server/auth/auth-context.d.ts.map +1 -0
  367. package/build/server/auth/auth-context.js +45 -0
  368. package/build/server/auth/auth-context.js.map +1 -0
  369. package/build/server/auth/guards.d.ts +72 -0
  370. package/build/server/auth/guards.d.ts.map +1 -0
  371. package/build/server/auth/guards.js +103 -0
  372. package/build/server/auth/guards.js.map +1 -0
  373. package/build/server/auth/index.d.ts +21 -0
  374. package/build/server/auth/index.d.ts.map +1 -0
  375. package/build/server/auth/index.js +20 -0
  376. package/build/server/auth/index.js.map +1 -0
  377. package/build/server/auth/oidc-discovery.d.ts +68 -0
  378. package/build/server/auth/oidc-discovery.d.ts.map +1 -0
  379. package/build/server/auth/oidc-discovery.js +234 -0
  380. package/build/server/auth/oidc-discovery.js.map +1 -0
  381. package/build/server/auth/oidc-provider.d.ts +96 -0
  382. package/build/server/auth/oidc-provider.d.ts.map +1 -0
  383. package/build/server/auth/oidc-provider.js +126 -0
  384. package/build/server/auth/oidc-provider.js.map +1 -0
  385. package/build/server/auth/types.d.ts +204 -0
  386. package/build/server/auth/types.d.ts.map +1 -0
  387. package/build/server/auth/types.js +29 -0
  388. package/build/server/auth/types.js.map +1 -0
  389. package/build/server/auth/upstream-provider.d.ts +161 -0
  390. package/build/server/auth/upstream-provider.d.ts.map +1 -0
  391. package/build/server/auth/upstream-provider.js +411 -0
  392. package/build/server/auth/upstream-provider.js.map +1 -0
  393. package/build/server/builder/constants.d.ts +45 -0
  394. package/build/server/builder/constants.d.ts.map +1 -0
  395. package/build/server/builder/constants.js +54 -0
  396. package/build/server/builder/constants.js.map +1 -0
  397. package/build/server/builder/index.d.ts +24 -0
  398. package/build/server/builder/index.d.ts.map +1 -0
  399. package/build/server/builder/index.js +25 -0
  400. package/build/server/builder/index.js.map +1 -0
  401. package/build/server/builder/primitive-collector.d.ts +24 -0
  402. package/build/server/builder/primitive-collector.d.ts.map +1 -0
  403. package/build/server/builder/primitive-collector.js +89 -0
  404. package/build/server/builder/primitive-collector.js.map +1 -0
  405. package/build/server/builder/server-builder.d.ts +53 -0
  406. package/build/server/builder/server-builder.d.ts.map +1 -0
  407. package/build/server/builder/server-builder.js +132 -0
  408. package/build/server/builder/server-builder.js.map +1 -0
  409. package/build/server/builder/types.d.ts +93 -0
  410. package/build/server/builder/types.d.ts.map +1 -0
  411. package/build/server/builder/types.js +25 -0
  412. package/build/server/builder/types.js.map +1 -0
  413. package/build/server/builder/validation.d.ts +36 -0
  414. package/build/server/builder/validation.d.ts.map +1 -0
  415. package/build/server/builder/validation.js +44 -0
  416. package/build/server/builder/validation.js.map +1 -0
  417. package/build/server/create-server.d.ts +57 -0
  418. package/build/server/create-server.d.ts.map +1 -0
  419. package/build/server/create-server.js +104 -0
  420. package/build/server/create-server.js.map +1 -0
  421. package/build/server/http/express-app.d.ts +103 -0
  422. package/build/server/http/express-app.d.ts.map +1 -0
  423. package/build/server/http/express-app.js +391 -0
  424. package/build/server/http/express-app.js.map +1 -0
  425. package/build/server/http/http-server.d.ts +67 -0
  426. package/build/server/http/http-server.d.ts.map +1 -0
  427. package/build/server/http/http-server.js +188 -0
  428. package/build/server/http/http-server.js.map +1 -0
  429. package/build/server/http/http-transport.d.ts +33 -0
  430. package/build/server/http/http-transport.d.ts.map +1 -0
  431. package/build/server/http/http-transport.js +84 -0
  432. package/build/server/http/http-transport.js.map +1 -0
  433. package/build/server/http/index.d.ts +15 -0
  434. package/build/server/http/index.d.ts.map +1 -0
  435. package/build/server/http/index.js +11 -0
  436. package/build/server/http/index.js.map +1 -0
  437. package/build/server/index.d.ts +25 -0
  438. package/build/server/index.d.ts.map +1 -0
  439. package/build/server/index.js +41 -0
  440. package/build/server/index.js.map +1 -0
  441. package/build/server/lifecycle.d.ts +114 -0
  442. package/build/server/lifecycle.d.ts.map +1 -0
  443. package/build/server/lifecycle.js +30 -0
  444. package/build/server/lifecycle.js.map +1 -0
  445. package/build/server/middleware/bearer-auth.d.ts +43 -0
  446. package/build/server/middleware/bearer-auth.d.ts.map +1 -0
  447. package/build/server/middleware/bearer-auth.js +75 -0
  448. package/build/server/middleware/bearer-auth.js.map +1 -0
  449. package/build/server/middleware/custom-header-auth.d.ts +40 -0
  450. package/build/server/middleware/custom-header-auth.d.ts.map +1 -0
  451. package/build/server/middleware/custom-header-auth.js +90 -0
  452. package/build/server/middleware/custom-header-auth.js.map +1 -0
  453. package/build/server/middleware/dns-rebinding.d.ts +25 -0
  454. package/build/server/middleware/dns-rebinding.d.ts.map +1 -0
  455. package/build/server/middleware/dns-rebinding.js +94 -0
  456. package/build/server/middleware/dns-rebinding.js.map +1 -0
  457. package/build/server/middleware/index.d.ts +69 -0
  458. package/build/server/middleware/index.d.ts.map +1 -0
  459. package/build/server/middleware/index.js +68 -0
  460. package/build/server/middleware/index.js.map +1 -0
  461. package/build/server/middleware/logging.d.ts +21 -0
  462. package/build/server/middleware/logging.d.ts.map +1 -0
  463. package/build/server/middleware/logging.js +36 -0
  464. package/build/server/middleware/logging.js.map +1 -0
  465. package/build/server/middleware/oauth-router.d.ts +50 -0
  466. package/build/server/middleware/oauth-router.d.ts.map +1 -0
  467. package/build/server/middleware/oauth-router.js +53 -0
  468. package/build/server/middleware/oauth-router.js.map +1 -0
  469. package/build/server/middleware/protocol-version.d.ts +13 -0
  470. package/build/server/middleware/protocol-version.d.ts.map +1 -0
  471. package/build/server/middleware/protocol-version.js +48 -0
  472. package/build/server/middleware/protocol-version.js.map +1 -0
  473. package/build/server/middleware/rate-limit.d.ts +47 -0
  474. package/build/server/middleware/rate-limit.d.ts.map +1 -0
  475. package/build/server/middleware/rate-limit.js +109 -0
  476. package/build/server/middleware/rate-limit.js.map +1 -0
  477. package/build/server/middleware/trust-proxy.d.ts +37 -0
  478. package/build/server/middleware/trust-proxy.d.ts.map +1 -0
  479. package/build/server/middleware/trust-proxy.js +154 -0
  480. package/build/server/middleware/trust-proxy.js.map +1 -0
  481. package/build/server/option-overrides.d.ts +25 -0
  482. package/build/server/option-overrides.d.ts.map +1 -0
  483. package/build/server/option-overrides.js +85 -0
  484. package/build/server/option-overrides.js.map +1 -0
  485. package/build/server/routes/health.d.ts +87 -0
  486. package/build/server/routes/health.d.ts.map +1 -0
  487. package/build/server/routes/health.js +183 -0
  488. package/build/server/routes/health.js.map +1 -0
  489. package/build/server/routes/index.d.ts +16 -0
  490. package/build/server/routes/index.d.ts.map +1 -0
  491. package/build/server/routes/index.js +18 -0
  492. package/build/server/routes/index.js.map +1 -0
  493. package/build/server/routes/metrics.d.ts +40 -0
  494. package/build/server/routes/metrics.d.ts.map +1 -0
  495. package/build/server/routes/metrics.js +81 -0
  496. package/build/server/routes/metrics.js.map +1 -0
  497. package/build/server/routes/oauth-router.d.ts +50 -0
  498. package/build/server/routes/oauth-router.d.ts.map +1 -0
  499. package/build/server/routes/oauth-router.js +53 -0
  500. package/build/server/routes/oauth-router.js.map +1 -0
  501. package/build/server/routes/readiness-status.d.ts +25 -0
  502. package/build/server/routes/readiness-status.d.ts.map +1 -0
  503. package/build/server/routes/readiness-status.js +27 -0
  504. package/build/server/routes/readiness-status.js.map +1 -0
  505. package/build/server/routes/sse-router.d.ts +43 -0
  506. package/build/server/routes/sse-router.d.ts.map +1 -0
  507. package/build/server/routes/sse-router.js +92 -0
  508. package/build/server/routes/sse-router.js.map +1 -0
  509. package/build/server/routes/streamable-http-router.d.ts +36 -0
  510. package/build/server/routes/streamable-http-router.d.ts.map +1 -0
  511. package/build/server/routes/streamable-http-router.js +59 -0
  512. package/build/server/routes/streamable-http-router.js.map +1 -0
  513. package/build/server/server-instance.d.ts +185 -0
  514. package/build/server/server-instance.d.ts.map +1 -0
  515. package/build/server/server-instance.js +615 -0
  516. package/build/server/server-instance.js.map +1 -0
  517. package/build/server/server-options.d.ts +411 -0
  518. package/build/server/server-options.d.ts.map +1 -0
  519. package/build/server/server-options.js +17 -0
  520. package/build/server/server-options.js.map +1 -0
  521. package/build/server/session/in-memory-store.d.ts +128 -0
  522. package/build/server/session/in-memory-store.d.ts.map +1 -0
  523. package/build/server/session/in-memory-store.js +312 -0
  524. package/build/server/session/in-memory-store.js.map +1 -0
  525. package/build/server/session/index.d.ts +43 -0
  526. package/build/server/session/index.d.ts.map +1 -0
  527. package/build/server/session/index.js +47 -0
  528. package/build/server/session/index.js.map +1 -0
  529. package/build/server/session/mcp-session.d.ts +210 -0
  530. package/build/server/session/mcp-session.d.ts.map +1 -0
  531. package/build/server/session/mcp-session.js +428 -0
  532. package/build/server/session/mcp-session.js.map +1 -0
  533. package/build/server/session/session-factory.d.ts +119 -0
  534. package/build/server/session/session-factory.d.ts.map +1 -0
  535. package/build/server/session/session-factory.js +131 -0
  536. package/build/server/session/session-factory.js.map +1 -0
  537. package/build/server/session/session-housekeeper.d.ts +100 -0
  538. package/build/server/session/session-housekeeper.d.ts.map +1 -0
  539. package/build/server/session/session-housekeeper.js +217 -0
  540. package/build/server/session/session-housekeeper.js.map +1 -0
  541. package/build/server/session/session-manager.d.ts +227 -0
  542. package/build/server/session/session-manager.d.ts.map +1 -0
  543. package/build/server/session/session-manager.js +282 -0
  544. package/build/server/session/session-manager.js.map +1 -0
  545. package/build/server/session/session-store.d.ts +95 -0
  546. package/build/server/session/session-store.d.ts.map +1 -0
  547. package/build/server/session/session-store.js +13 -0
  548. package/build/server/session/session-store.js.map +1 -0
  549. package/build/server/session/session.d.ts +132 -0
  550. package/build/server/session/session.d.ts.map +1 -0
  551. package/build/server/session/session.js +61 -0
  552. package/build/server/session/session.js.map +1 -0
  553. package/build/server/transport/constants.d.ts +85 -0
  554. package/build/server/transport/constants.d.ts.map +1 -0
  555. package/build/server/transport/constants.js +103 -0
  556. package/build/server/transport/constants.js.map +1 -0
  557. package/build/server/transport/index.d.ts +21 -0
  558. package/build/server/transport/index.d.ts.map +1 -0
  559. package/build/server/transport/index.js +28 -0
  560. package/build/server/transport/index.js.map +1 -0
  561. package/build/server/transport/sse/handler.d.ts +46 -0
  562. package/build/server/transport/sse/handler.d.ts.map +1 -0
  563. package/build/server/transport/sse/handler.js +189 -0
  564. package/build/server/transport/sse/handler.js.map +1 -0
  565. package/build/server/transport/sse/index.d.ts +15 -0
  566. package/build/server/transport/sse/index.d.ts.map +1 -0
  567. package/build/server/transport/sse/index.js +14 -0
  568. package/build/server/transport/sse/index.js.map +1 -0
  569. package/build/server/transport/sse/transport.d.ts +94 -0
  570. package/build/server/transport/sse/transport.d.ts.map +1 -0
  571. package/build/server/transport/sse/transport.js +175 -0
  572. package/build/server/transport/sse/transport.js.map +1 -0
  573. package/build/server/transport/stdio-transport.d.ts +23 -0
  574. package/build/server/transport/stdio-transport.d.ts.map +1 -0
  575. package/build/server/transport/stdio-transport.js +59 -0
  576. package/build/server/transport/stdio-transport.js.map +1 -0
  577. package/build/server/transport/streamable-http/index.d.ts +9 -0
  578. package/build/server/transport/streamable-http/index.d.ts.map +1 -0
  579. package/build/server/transport/streamable-http/index.js +9 -0
  580. package/build/server/transport/streamable-http/index.js.map +1 -0
  581. package/build/server/transport/streamable-http/stateful-handler.d.ts +41 -0
  582. package/build/server/transport/streamable-http/stateful-handler.d.ts.map +1 -0
  583. package/build/server/transport/streamable-http/stateful-handler.js +264 -0
  584. package/build/server/transport/streamable-http/stateful-handler.js.map +1 -0
  585. package/build/server/transport/streamable-http/stateless-handler.d.ts +28 -0
  586. package/build/server/transport/streamable-http/stateless-handler.d.ts.map +1 -0
  587. package/build/server/transport/streamable-http/stateless-handler.js +81 -0
  588. package/build/server/transport/streamable-http/stateless-handler.js.map +1 -0
  589. package/build/server/transport/streamable-http/transport.d.ts +110 -0
  590. package/build/server/transport/streamable-http/transport.d.ts.map +1 -0
  591. package/build/server/transport/streamable-http/transport.js +118 -0
  592. package/build/server/transport/streamable-http/transport.js.map +1 -0
  593. package/build/server/transport/transport-context.d.ts +67 -0
  594. package/build/server/transport/transport-context.d.ts.map +1 -0
  595. package/build/server/transport/transport-context.js +38 -0
  596. package/build/server/transport/transport-context.js.map +1 -0
  597. package/build/server/transport/types.d.ts +56 -0
  598. package/build/server/transport/types.d.ts.map +1 -0
  599. package/build/server/transport/types.js +11 -0
  600. package/build/server/transport/types.js.map +1 -0
  601. package/build/server/transport-options.d.ts +248 -0
  602. package/build/server/transport-options.d.ts.map +1 -0
  603. package/build/server/transport-options.js +18 -0
  604. package/build/server/transport-options.js.map +1 -0
  605. package/build/server/types.d.ts +172 -0
  606. package/build/server/types.d.ts.map +1 -0
  607. package/build/server/types.js +9 -0
  608. package/build/server/types.js.map +1 -0
  609. package/build/telemetry/connection-telemetry-bridge.d.ts +30 -0
  610. package/build/telemetry/connection-telemetry-bridge.d.ts.map +1 -0
  611. package/build/telemetry/connection-telemetry-bridge.js +54 -0
  612. package/build/telemetry/connection-telemetry-bridge.js.map +1 -0
  613. package/build/telemetry/core/config.d.ts +38 -0
  614. package/build/telemetry/core/config.d.ts.map +1 -0
  615. package/build/telemetry/core/config.js +54 -0
  616. package/build/telemetry/core/config.js.map +1 -0
  617. package/build/telemetry/core/constants.d.ts +183 -0
  618. package/build/telemetry/core/constants.d.ts.map +1 -0
  619. package/build/telemetry/core/constants.js +207 -0
  620. package/build/telemetry/core/constants.js.map +1 -0
  621. package/build/telemetry/core/diag-logger.d.ts +35 -0
  622. package/build/telemetry/core/diag-logger.d.ts.map +1 -0
  623. package/build/telemetry/core/diag-logger.js +54 -0
  624. package/build/telemetry/core/diag-logger.js.map +1 -0
  625. package/build/telemetry/core/index.d.ts +12 -0
  626. package/build/telemetry/core/index.d.ts.map +1 -0
  627. package/build/telemetry/core/index.js +32 -0
  628. package/build/telemetry/core/index.js.map +1 -0
  629. package/build/telemetry/core/types.d.ts +106 -0
  630. package/build/telemetry/core/types.d.ts.map +1 -0
  631. package/build/telemetry/core/types.js +10 -0
  632. package/build/telemetry/core/types.js.map +1 -0
  633. package/build/telemetry/index.d.ts +59 -0
  634. package/build/telemetry/index.d.ts.map +1 -0
  635. package/build/telemetry/index.js +79 -0
  636. package/build/telemetry/index.js.map +1 -0
  637. package/build/telemetry/metrics.d.ts +127 -0
  638. package/build/telemetry/metrics.d.ts.map +1 -0
  639. package/build/telemetry/metrics.js +337 -0
  640. package/build/telemetry/metrics.js.map +1 -0
  641. package/build/telemetry/sdk.d.ts +110 -0
  642. package/build/telemetry/sdk.d.ts.map +1 -0
  643. package/build/telemetry/sdk.js +547 -0
  644. package/build/telemetry/sdk.js.map +1 -0
  645. package/build/telemetry/tracing.d.ts +78 -0
  646. package/build/telemetry/tracing.d.ts.map +1 -0
  647. package/build/telemetry/tracing.js +257 -0
  648. package/build/telemetry/tracing.js.map +1 -0
  649. package/build/utils/env-helpers.d.ts +46 -0
  650. package/build/utils/env-helpers.d.ts.map +1 -0
  651. package/build/utils/env-helpers.js +54 -0
  652. package/build/utils/env-helpers.js.map +1 -0
  653. package/build/utils/index.d.ts +14 -0
  654. package/build/utils/index.d.ts.map +1 -0
  655. package/build/utils/index.js +19 -0
  656. package/build/utils/index.js.map +1 -0
  657. package/build/utils/sensitive-keys.d.ts +48 -0
  658. package/build/utils/sensitive-keys.d.ts.map +1 -0
  659. package/build/utils/sensitive-keys.js +131 -0
  660. package/build/utils/sensitive-keys.js.map +1 -0
  661. package/build/utils/string-helpers.d.ts +126 -0
  662. package/build/utils/string-helpers.d.ts.map +1 -0
  663. package/build/utils/string-helpers.js +189 -0
  664. package/build/utils/string-helpers.js.map +1 -0
  665. package/build/utils/validation.d.ts +84 -0
  666. package/build/utils/validation.d.ts.map +1 -0
  667. package/build/utils/validation.js +111 -0
  668. package/build/utils/validation.js.map +1 -0
  669. package/build/utils/zod-helpers.d.ts +92 -0
  670. package/build/utils/zod-helpers.d.ts.map +1 -0
  671. package/build/utils/zod-helpers.js +120 -0
  672. package/build/utils/zod-helpers.js.map +1 -0
  673. package/package.json +133 -0
@@ -0,0 +1,126 @@
1
+ /**
2
+ * String Helpers
3
+ *
4
+ * Generic string manipulation utilities used across the framework.
5
+ *
6
+ * @module utils/string-helpers
7
+ */
8
+ /**
9
+ * Split a comma-separated string into trimmed, non-empty segments.
10
+ *
11
+ * Used by Zod schema helpers and config file mappers to provide
12
+ * a single source of truth for CSV-style string parsing.
13
+ *
14
+ * @param value - Raw comma-separated string (e.g., `"a, b, c"`)
15
+ * @param options - Parsing options
16
+ * @param options.lowercase - Lowercase all segments (default: false)
17
+ * @returns Array of trimmed, non-empty strings
18
+ *
19
+ * @example
20
+ * ```typescript
21
+ * splitCommaSeparated('a, b, c'); // ['a', 'b', 'c']
22
+ * splitCommaSeparated('A, B', { lowercase: true }); // ['a', 'b']
23
+ * splitCommaSeparated(''); // []
24
+ * splitCommaSeparated(' , , '); // []
25
+ * ```
26
+ */
27
+ export declare function splitCommaSeparated(value: string, options?: {
28
+ lowercase?: boolean;
29
+ }): string[];
30
+ /**
31
+ * Interpolation parameters type.
32
+ * Maps template variable names to their values.
33
+ */
34
+ export type MessageParams = Record<string, string | number | boolean | undefined>;
35
+ /**
36
+ * Interpolate a template string with parameters.
37
+ *
38
+ * Replaces `{variableName}` placeholders with values from the params object.
39
+ * Unmatched placeholders are preserved as-is.
40
+ *
41
+ * @param template - The template string with `{variable}` placeholders
42
+ * @param params - The parameters to interpolate
43
+ * @returns The interpolated string
44
+ *
45
+ * @example
46
+ * ```typescript
47
+ * interpolate("Hello {name}!", { name: "World" })
48
+ * // "Hello World!"
49
+ * ```
50
+ */
51
+ export declare function interpolate(template: string, params: MessageParams): string;
52
+ /**
53
+ * Truncate an ID string (session, request, trace) for display purposes.
54
+ *
55
+ * Keeps logs readable while providing enough uniqueness for debugging.
56
+ * Also avoids exposing full tokens in log output.
57
+ *
58
+ * @param id - The full ID string
59
+ * @param length - Number of characters to keep (default: 8)
60
+ * @returns Truncated ID
61
+ *
62
+ * @example
63
+ * ```typescript
64
+ * truncateId('a1b2c3d4-e5f6-7890-abcd-ef1234567890')
65
+ * // Returns: 'a1b2c3d4'
66
+ * ```
67
+ */
68
+ export declare function truncateId(id: string, length?: number): string;
69
+ /**
70
+ * Regex pattern for human-readable byte sizes.
71
+ *
72
+ * Matches formats like `"10mb"`, `"1.5gb"`, `"500kb"`, or plain byte
73
+ * counts like `"1048576"`. Case-insensitive, optional whitespace
74
+ * between number and unit.
75
+ *
76
+ * Shared with Zod schemas (`MCP_BODY_SIZE_LIMIT`, `LOG_MAX_FILE_SIZE`)
77
+ * to ensure consistent validation across env vars and config files.
78
+ *
79
+ * @example
80
+ * ```typescript
81
+ * BYTE_SIZE_REGEX.test('10mb'); // true
82
+ * BYTE_SIZE_REGEX.test('1.5 gb'); // true
83
+ * BYTE_SIZE_REGEX.test('1048576'); // true (plain bytes)
84
+ * BYTE_SIZE_REGEX.test('abc'); // false
85
+ * ```
86
+ */
87
+ export declare const BYTE_SIZE_REGEX: RegExp;
88
+ /**
89
+ * Parse a human-readable byte size string into a number of bytes.
90
+ *
91
+ * Accepts formats like `"10mb"`, `"1.5gb"`, `"500kb"`, or plain numeric
92
+ * strings like `"1048576"` (interpreted as bytes). Uses binary units
93
+ * (1 KB = 1024 bytes, 1 MB = 1048576 bytes, etc.).
94
+ *
95
+ * The supported units match the `MCP_BODY_SIZE_LIMIT` regex pattern
96
+ * used throughout the framework: `kb`, `mb`, `gb`, `tb`, `pb`.
97
+ *
98
+ * @param value - Human-readable size string (e.g. `"10mb"`, `"1048576"`)
99
+ * @returns Number of bytes (floored to integer)
100
+ * @throws {Error} If the format is invalid
101
+ *
102
+ * @example
103
+ * ```typescript
104
+ * parseByteSize('10mb'); // 10485760
105
+ * parseByteSize('500kb'); // 512000
106
+ * parseByteSize('1.5gb'); // 1610612736
107
+ * parseByteSize('1048576'); // 1048576 (plain bytes)
108
+ * ```
109
+ */
110
+ export declare function parseByteSize(value: string): number;
111
+ /**
112
+ * Check if a host string is a localhost/loopback address.
113
+ *
114
+ * @param host - The host string to check (e.g., 'localhost:3000', '192.168.1.1')
115
+ * @returns true if the host is a local loopback address
116
+ *
117
+ * @example
118
+ * ```typescript
119
+ * isLocalHost('localhost:3000'); // true
120
+ * isLocalHost('127.0.0.1'); // true
121
+ * isLocalHost('[::1]:8080'); // true
122
+ * isLocalHost('192.168.1.1'); // false
123
+ * ```
124
+ */
125
+ export declare function isLocalHost(host: string): boolean;
126
+ //# sourceMappingURL=string-helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"string-helpers.d.ts","sourceRoot":"","sources":["../../src/utils/string-helpers.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAMH;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,GAAE;IAAE,SAAS,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,MAAM,EAAE,CAMlG;AAYD;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC,CAAC;AAElF;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,GAAG,MAAM,CAS3E;AASD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,SAA4B,GAAG,MAAM,CAEjF;AAMD;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,eAAe,QAAuC,CAAC;AAcpE;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAkBnD;AAMD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAUjD"}
@@ -0,0 +1,189 @@
1
+ /**
2
+ * String Helpers
3
+ *
4
+ * Generic string manipulation utilities used across the framework.
5
+ *
6
+ * @module utils/string-helpers
7
+ */
8
+ // ============================================================================
9
+ // Comma-Separated Parsing
10
+ // ============================================================================
11
+ /**
12
+ * Split a comma-separated string into trimmed, non-empty segments.
13
+ *
14
+ * Used by Zod schema helpers and config file mappers to provide
15
+ * a single source of truth for CSV-style string parsing.
16
+ *
17
+ * @param value - Raw comma-separated string (e.g., `"a, b, c"`)
18
+ * @param options - Parsing options
19
+ * @param options.lowercase - Lowercase all segments (default: false)
20
+ * @returns Array of trimmed, non-empty strings
21
+ *
22
+ * @example
23
+ * ```typescript
24
+ * splitCommaSeparated('a, b, c'); // ['a', 'b', 'c']
25
+ * splitCommaSeparated('A, B', { lowercase: true }); // ['a', 'b']
26
+ * splitCommaSeparated(''); // []
27
+ * splitCommaSeparated(' , , '); // []
28
+ * ```
29
+ */
30
+ export function splitCommaSeparated(value, options = {}) {
31
+ const items = value
32
+ .split(",")
33
+ .map((s) => s.trim())
34
+ .filter((s) => s.length > 0);
35
+ return options.lowercase ? items.map((s) => s.toLowerCase()) : items;
36
+ }
37
+ // ============================================================================
38
+ // Template Interpolation
39
+ // ============================================================================
40
+ /**
41
+ * Cached regex for template interpolation.
42
+ * Pattern matches `{variableName}` placeholders.
43
+ */
44
+ const INTERPOLATION_REGEX = /\{(\w+)\}/g;
45
+ /**
46
+ * Interpolate a template string with parameters.
47
+ *
48
+ * Replaces `{variableName}` placeholders with values from the params object.
49
+ * Unmatched placeholders are preserved as-is.
50
+ *
51
+ * @param template - The template string with `{variable}` placeholders
52
+ * @param params - The parameters to interpolate
53
+ * @returns The interpolated string
54
+ *
55
+ * @example
56
+ * ```typescript
57
+ * interpolate("Hello {name}!", { name: "World" })
58
+ * // "Hello World!"
59
+ * ```
60
+ */
61
+ export function interpolate(template, params) {
62
+ INTERPOLATION_REGEX.lastIndex = 0;
63
+ return template.replace(INTERPOLATION_REGEX, (match, key) => {
64
+ const value = params[key];
65
+ if (value === undefined) {
66
+ return match;
67
+ }
68
+ return String(value);
69
+ });
70
+ }
71
+ // ============================================================================
72
+ // ID Truncation
73
+ // ============================================================================
74
+ /** Default display length for truncated IDs. */
75
+ const DEFAULT_ID_DISPLAY_LENGTH = 8;
76
+ /**
77
+ * Truncate an ID string (session, request, trace) for display purposes.
78
+ *
79
+ * Keeps logs readable while providing enough uniqueness for debugging.
80
+ * Also avoids exposing full tokens in log output.
81
+ *
82
+ * @param id - The full ID string
83
+ * @param length - Number of characters to keep (default: 8)
84
+ * @returns Truncated ID
85
+ *
86
+ * @example
87
+ * ```typescript
88
+ * truncateId('a1b2c3d4-e5f6-7890-abcd-ef1234567890')
89
+ * // Returns: 'a1b2c3d4'
90
+ * ```
91
+ */
92
+ export function truncateId(id, length = DEFAULT_ID_DISPLAY_LENGTH) {
93
+ return id.substring(0, length);
94
+ }
95
+ // ============================================================================
96
+ // Byte Size Parsing
97
+ // ============================================================================
98
+ /**
99
+ * Regex pattern for human-readable byte sizes.
100
+ *
101
+ * Matches formats like `"10mb"`, `"1.5gb"`, `"500kb"`, or plain byte
102
+ * counts like `"1048576"`. Case-insensitive, optional whitespace
103
+ * between number and unit.
104
+ *
105
+ * Shared with Zod schemas (`MCP_BODY_SIZE_LIMIT`, `LOG_MAX_FILE_SIZE`)
106
+ * to ensure consistent validation across env vars and config files.
107
+ *
108
+ * @example
109
+ * ```typescript
110
+ * BYTE_SIZE_REGEX.test('10mb'); // true
111
+ * BYTE_SIZE_REGEX.test('1.5 gb'); // true
112
+ * BYTE_SIZE_REGEX.test('1048576'); // true (plain bytes)
113
+ * BYTE_SIZE_REGEX.test('abc'); // false
114
+ * ```
115
+ */
116
+ export const BYTE_SIZE_REGEX = /^\d+(\.\d+)?\s*(kb|mb|gb|tb|pb)?$/i;
117
+ /**
118
+ * Binary unit multipliers (1 KB = 1024 bytes).
119
+ * @internal
120
+ */
121
+ const BYTE_MULTIPLIERS = {
122
+ kb: 1024,
123
+ mb: 1024 ** 2,
124
+ gb: 1024 ** 3,
125
+ tb: 1024 ** 4,
126
+ pb: 1024 ** 5,
127
+ };
128
+ /**
129
+ * Parse a human-readable byte size string into a number of bytes.
130
+ *
131
+ * Accepts formats like `"10mb"`, `"1.5gb"`, `"500kb"`, or plain numeric
132
+ * strings like `"1048576"` (interpreted as bytes). Uses binary units
133
+ * (1 KB = 1024 bytes, 1 MB = 1048576 bytes, etc.).
134
+ *
135
+ * The supported units match the `MCP_BODY_SIZE_LIMIT` regex pattern
136
+ * used throughout the framework: `kb`, `mb`, `gb`, `tb`, `pb`.
137
+ *
138
+ * @param value - Human-readable size string (e.g. `"10mb"`, `"1048576"`)
139
+ * @returns Number of bytes (floored to integer)
140
+ * @throws {Error} If the format is invalid
141
+ *
142
+ * @example
143
+ * ```typescript
144
+ * parseByteSize('10mb'); // 10485760
145
+ * parseByteSize('500kb'); // 512000
146
+ * parseByteSize('1.5gb'); // 1610612736
147
+ * parseByteSize('1048576'); // 1048576 (plain bytes)
148
+ * ```
149
+ */
150
+ export function parseByteSize(value) {
151
+ const trimmed = value.trim();
152
+ const match = trimmed.match(/^(\d+(?:\.\d+)?)\s*(kb|mb|gb|tb|pb)?$/i);
153
+ if (!match) {
154
+ throw new Error(`Invalid byte size format: "${value}". Use formats like "10mb", "500kb", "2gb", or a plain byte count like "1048576".`);
155
+ }
156
+ const num = parseFloat(match[1]);
157
+ const unit = match[2]?.toLowerCase();
158
+ if (!unit) {
159
+ return Math.floor(num);
160
+ }
161
+ return Math.floor(num * (BYTE_MULTIPLIERS[unit] ?? 1));
162
+ }
163
+ // ============================================================================
164
+ // Network Helpers
165
+ // ============================================================================
166
+ /**
167
+ * Check if a host string is a localhost/loopback address.
168
+ *
169
+ * @param host - The host string to check (e.g., 'localhost:3000', '192.168.1.1')
170
+ * @returns true if the host is a local loopback address
171
+ *
172
+ * @example
173
+ * ```typescript
174
+ * isLocalHost('localhost:3000'); // true
175
+ * isLocalHost('127.0.0.1'); // true
176
+ * isLocalHost('[::1]:8080'); // true
177
+ * isLocalHost('192.168.1.1'); // false
178
+ * ```
179
+ */
180
+ export function isLocalHost(host) {
181
+ const cleanHost = host.trim().toLowerCase();
182
+ return (cleanHost.startsWith("localhost:") ||
183
+ cleanHost === "localhost" ||
184
+ cleanHost.startsWith("127.0.0.1:") ||
185
+ cleanHost === "127.0.0.1" ||
186
+ cleanHost.startsWith("[::1]:") ||
187
+ cleanHost === "[::1]");
188
+ }
189
+ //# sourceMappingURL=string-helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"string-helpers.js","sourceRoot":"","sources":["../../src/utils/string-helpers.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,+EAA+E;AAC/E,0BAA0B;AAC1B,+EAA+E;AAE/E;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAAa,EAAE,UAAmC,EAAE;IACtF,MAAM,KAAK,GAAG,KAAK;SAChB,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;SACpB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC/B,OAAO,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;AACvE,CAAC;AAED,+EAA+E;AAC/E,yBAAyB;AACzB,+EAA+E;AAE/E;;;GAGG;AACH,MAAM,mBAAmB,GAAG,YAAY,CAAC;AAQzC;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,WAAW,CAAC,QAAgB,EAAE,MAAqB;IACjE,mBAAmB,CAAC,SAAS,GAAG,CAAC,CAAC;IAClC,OAAO,QAAQ,CAAC,OAAO,CAAC,mBAAmB,EAAE,CAAC,KAAK,EAAE,GAAW,EAAE,EAAE;QAClE,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAC1B,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,OAAO,KAAK,CAAC;QACf,CAAC;QACD,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC,CAAC,CAAC;AACL,CAAC;AAED,+EAA+E;AAC/E,gBAAgB;AAChB,+EAA+E;AAE/E,gDAAgD;AAChD,MAAM,yBAAyB,GAAG,CAAC,CAAC;AAEpC;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,UAAU,CAAC,EAAU,EAAE,MAAM,GAAG,yBAAyB;IACvE,OAAO,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;AACjC,CAAC;AAED,+EAA+E;AAC/E,oBAAoB;AACpB,+EAA+E;AAE/E;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,oCAAoC,CAAC;AAEpE;;;GAGG;AACH,MAAM,gBAAgB,GAAqC;IACzD,EAAE,EAAE,IAAI;IACR,EAAE,EAAE,IAAI,IAAI,CAAC;IACb,EAAE,EAAE,IAAI,IAAI,CAAC;IACb,EAAE,EAAE,IAAI,IAAI,CAAC;IACb,EAAE,EAAE,IAAI,IAAI,CAAC;CACd,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,UAAU,aAAa,CAAC,KAAa;IACzC,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC7B,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAC;IAEtE,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CACb,8BAA8B,KAAK,mFAAmF,CACvH,CAAC;IACJ,CAAC;IAED,MAAM,GAAG,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,CAAC;IAClC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC;IAErC,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC;IAED,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACzD,CAAC;AAED,+EAA+E;AAC/E,kBAAkB;AAClB,+EAA+E;AAE/E;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,WAAW,CAAC,IAAY;IACtC,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC5C,OAAO,CACL,SAAS,CAAC,UAAU,CAAC,YAAY,CAAC;QAClC,SAAS,KAAK,WAAW;QACzB,SAAS,CAAC,UAAU,CAAC,YAAY,CAAC;QAClC,SAAS,KAAK,WAAW;QACzB,SAAS,CAAC,UAAU,CAAC,QAAQ,CAAC;QAC9B,SAAS,KAAK,OAAO,CACtB,CAAC;AACJ,CAAC"}
@@ -0,0 +1,84 @@
1
+ /**
2
+ * Definition Validation
3
+ *
4
+ * Runtime validation helpers for define*() factory functions.
5
+ * Catches misconfigurations early with clear, actionable error messages.
6
+ *
7
+ * These validations complement TypeScript's compile-time checks by catching:
8
+ * - Empty strings (valid `string` but invalid as identifiers)
9
+ * - Wrong types from JavaScript consumers or dynamic definitions
10
+ * - Missing required fields in loose object literals
11
+ *
12
+ * @internal Not exported from the public API.
13
+ * @module utils/validation
14
+ */
15
+ /**
16
+ * Validate that a definition name is a non-empty string.
17
+ *
18
+ * @param name - The name value to validate
19
+ * @param type - Definition type for error context (e.g., 'Tool', 'Resource')
20
+ * @throws TypeError if name is not a non-empty string
21
+ */
22
+ export declare function validateName(name: unknown, type: string): asserts name is string;
23
+ /**
24
+ * Validate that a string field is non-empty.
25
+ *
26
+ * @param value - The value to validate
27
+ * @param type - Definition type for error context
28
+ * @param field - Field name for error context
29
+ * @throws TypeError if value is not a non-empty string
30
+ */
31
+ export declare function validateNonEmptyString(value: unknown, type: string, field: string): asserts value is string;
32
+ /**
33
+ * Validate that a value is a function.
34
+ *
35
+ * @param value - The value to validate
36
+ * @param type - Definition type for error context
37
+ * @param field - Field name for error context
38
+ * @throws TypeError if value is not a function
39
+ */
40
+ export declare function validateFunction(value: unknown, type: string, field: string): asserts value is (...args: unknown[]) => unknown;
41
+ /**
42
+ * Validate that a value is a Zod schema (duck-type check).
43
+ *
44
+ * Performs a minimal structural check for Zod-like objects by verifying
45
+ * the presence of `.parse()`. This is intentionally loose to support
46
+ * different Zod versions and custom schema wrappers.
47
+ *
48
+ * @param schema - The value to validate
49
+ * @param type - Definition type for error context
50
+ * @param field - Field name for error context
51
+ * @throws TypeError if value doesn't look like a Zod schema
52
+ */
53
+ export declare function validateZodSchema(schema: unknown, type: string, field: string): void;
54
+ /**
55
+ * Validate that a value is a non-null object (not an array).
56
+ *
57
+ * @param value - The value to validate
58
+ * @param type - Definition type for error context
59
+ * @param field - Field name for error context
60
+ * @throws TypeError if value is not a plain object
61
+ */
62
+ export declare function validateObject(value: unknown, type: string, field: string): asserts value is Record<string, unknown>;
63
+ /**
64
+ * Validate that a value is one of the allowed enum values.
65
+ *
66
+ * @param value - The value to validate
67
+ * @param allowed - Array of allowed string values
68
+ * @param type - Definition type for error context
69
+ * @param field - Field name for error context
70
+ * @throws TypeError if value is not one of the allowed values
71
+ */
72
+ export declare function validateEnum(value: unknown, allowed: readonly string[], type: string, field: string): asserts value is string;
73
+ /**
74
+ * Validate common definition fields: name (non-empty string) and description (non-empty string).
75
+ * Shared across all define*() factory functions.
76
+ *
77
+ * @param definition - Object with name and description fields
78
+ * @param type - Definition type for error context (e.g., 'Tool', 'Resource')
79
+ */
80
+ export declare function validateDefinitionBase(definition: {
81
+ name: unknown;
82
+ description: unknown;
83
+ }, type: string): void;
84
+ //# sourceMappingURL=validation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/utils/validation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAMH;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,IAAI,MAAM,CAIhF;AAED;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,IAAI,MAAM,CAI3G;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,OAAO,EACd,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,KAAK,IAAI,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAIlD;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAMpF;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAIpH;AAED;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAC1B,KAAK,EAAE,OAAO,EACd,OAAO,EAAE,SAAS,MAAM,EAAE,EAC1B,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,KAAK,IAAI,MAAM,CAMzB;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,UAAU,EAAE;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,WAAW,EAAE,OAAO,CAAA;CAAE,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAG9G"}
@@ -0,0 +1,111 @@
1
+ /**
2
+ * Definition Validation
3
+ *
4
+ * Runtime validation helpers for define*() factory functions.
5
+ * Catches misconfigurations early with clear, actionable error messages.
6
+ *
7
+ * These validations complement TypeScript's compile-time checks by catching:
8
+ * - Empty strings (valid `string` but invalid as identifiers)
9
+ * - Wrong types from JavaScript consumers or dynamic definitions
10
+ * - Missing required fields in loose object literals
11
+ *
12
+ * @internal Not exported from the public API.
13
+ * @module utils/validation
14
+ */
15
+ // ============================================================================
16
+ // Validation Helpers
17
+ // ============================================================================
18
+ /**
19
+ * Validate that a definition name is a non-empty string.
20
+ *
21
+ * @param name - The name value to validate
22
+ * @param type - Definition type for error context (e.g., 'Tool', 'Resource')
23
+ * @throws TypeError if name is not a non-empty string
24
+ */
25
+ export function validateName(name, type) {
26
+ if (typeof name !== "string" || name.trim().length === 0) {
27
+ throw new TypeError(`${type} definition requires a non-empty 'name', received: ${String(name)}`);
28
+ }
29
+ }
30
+ /**
31
+ * Validate that a string field is non-empty.
32
+ *
33
+ * @param value - The value to validate
34
+ * @param type - Definition type for error context
35
+ * @param field - Field name for error context
36
+ * @throws TypeError if value is not a non-empty string
37
+ */
38
+ export function validateNonEmptyString(value, type, field) {
39
+ if (typeof value !== "string" || value.trim().length === 0) {
40
+ throw new TypeError(`${type} definition requires a non-empty '${field}', received: ${String(value)}`);
41
+ }
42
+ }
43
+ /**
44
+ * Validate that a value is a function.
45
+ *
46
+ * @param value - The value to validate
47
+ * @param type - Definition type for error context
48
+ * @param field - Field name for error context
49
+ * @throws TypeError if value is not a function
50
+ */
51
+ export function validateFunction(value, type, field) {
52
+ if (typeof value !== "function") {
53
+ throw new TypeError(`${type} definition requires '${field}' to be a function, received: ${typeof value}`);
54
+ }
55
+ }
56
+ /**
57
+ * Validate that a value is a Zod schema (duck-type check).
58
+ *
59
+ * Performs a minimal structural check for Zod-like objects by verifying
60
+ * the presence of `.parse()`. This is intentionally loose to support
61
+ * different Zod versions and custom schema wrappers.
62
+ *
63
+ * @param schema - The value to validate
64
+ * @param type - Definition type for error context
65
+ * @param field - Field name for error context
66
+ * @throws TypeError if value doesn't look like a Zod schema
67
+ */
68
+ export function validateZodSchema(schema, type, field) {
69
+ if (schema == null || typeof schema !== "object" || !("parse" in schema)) {
70
+ throw new TypeError(`${type} definition requires '${field}' to be a Zod schema (object with .parse()), received: ${typeof schema}`);
71
+ }
72
+ }
73
+ /**
74
+ * Validate that a value is a non-null object (not an array).
75
+ *
76
+ * @param value - The value to validate
77
+ * @param type - Definition type for error context
78
+ * @param field - Field name for error context
79
+ * @throws TypeError if value is not a plain object
80
+ */
81
+ export function validateObject(value, type, field) {
82
+ if (value == null || typeof value !== "object" || Array.isArray(value)) {
83
+ throw new TypeError(`${type} definition requires '${field}' to be an object, received: ${typeof value}`);
84
+ }
85
+ }
86
+ /**
87
+ * Validate that a value is one of the allowed enum values.
88
+ *
89
+ * @param value - The value to validate
90
+ * @param allowed - Array of allowed string values
91
+ * @param type - Definition type for error context
92
+ * @param field - Field name for error context
93
+ * @throws TypeError if value is not one of the allowed values
94
+ */
95
+ export function validateEnum(value, allowed, type, field) {
96
+ if (!allowed.includes(value)) {
97
+ throw new TypeError(`${type} definition requires '${field}' to be one of [${allowed.join(", ")}], received: '${String(value)}'`);
98
+ }
99
+ }
100
+ /**
101
+ * Validate common definition fields: name (non-empty string) and description (non-empty string).
102
+ * Shared across all define*() factory functions.
103
+ *
104
+ * @param definition - Object with name and description fields
105
+ * @param type - Definition type for error context (e.g., 'Tool', 'Resource')
106
+ */
107
+ export function validateDefinitionBase(definition, type) {
108
+ validateName(definition.name, type);
109
+ validateNonEmptyString(definition.description, type, "description");
110
+ }
111
+ //# sourceMappingURL=validation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/utils/validation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,+EAA+E;AAC/E,qBAAqB;AACrB,+EAA+E;AAE/E;;;;;;GAMG;AACH,MAAM,UAAU,YAAY,CAAC,IAAa,EAAE,IAAY;IACtD,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzD,MAAM,IAAI,SAAS,CAAC,GAAG,IAAI,sDAAsD,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACnG,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,sBAAsB,CAAC,KAAc,EAAE,IAAY,EAAE,KAAa;IAChF,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3D,MAAM,IAAI,SAAS,CAAC,GAAG,IAAI,qCAAqC,KAAK,gBAAgB,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACxG,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,gBAAgB,CAC9B,KAAc,EACd,IAAY,EACZ,KAAa;IAEb,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE,CAAC;QAChC,MAAM,IAAI,SAAS,CAAC,GAAG,IAAI,yBAAyB,KAAK,iCAAiC,OAAO,KAAK,EAAE,CAAC,CAAC;IAC5G,CAAC;AACH,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,iBAAiB,CAAC,MAAe,EAAE,IAAY,EAAE,KAAa;IAC5E,IAAI,MAAM,IAAI,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,CAAC,OAAO,IAAI,MAAM,CAAC,EAAE,CAAC;QACzE,MAAM,IAAI,SAAS,CACjB,GAAG,IAAI,yBAAyB,KAAK,0DAA0D,OAAO,MAAM,EAAE,CAC/G,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,cAAc,CAAC,KAAc,EAAE,IAAY,EAAE,KAAa;IACxE,IAAI,KAAK,IAAI,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACvE,MAAM,IAAI,SAAS,CAAC,GAAG,IAAI,yBAAyB,KAAK,gCAAgC,OAAO,KAAK,EAAE,CAAC,CAAC;IAC3G,CAAC;AACH,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,YAAY,CAC1B,KAAc,EACd,OAA0B,EAC1B,IAAY,EACZ,KAAa;IAEb,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAe,CAAC,EAAE,CAAC;QACvC,MAAM,IAAI,SAAS,CACjB,GAAG,IAAI,yBAAyB,KAAK,mBAAmB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,MAAM,CAAC,KAAK,CAAC,GAAG,CAC5G,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,sBAAsB,CAAC,UAAmD,EAAE,IAAY;IACtG,YAAY,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACpC,sBAAsB,CAAC,UAAU,CAAC,WAAW,EAAE,IAAI,EAAE,aAAa,CAAC,CAAC;AACtE,CAAC"}
@@ -0,0 +1,92 @@
1
+ /**
2
+ * Zod Schema Helpers
3
+ *
4
+ * Reusable Zod schema primitives for environment variable parsing.
5
+ * These helpers eliminate repetition in `env.ts` and ensure consistent
6
+ * coercion behavior for common patterns:
7
+ *
8
+ * - Boolean env vars (`"true"` / `"false"` strings)
9
+ * - Comma-separated lists (`"a,b,c"` → `string[]`)
10
+ *
11
+ * @module utils/zod-helpers
12
+ */
13
+ import { z } from "zod";
14
+ /**
15
+ * Zod schema for boolean environment variables.
16
+ *
17
+ * Accepts both native booleans (from config files) and string values
18
+ * from process.env. Only `"true"` (case-insensitive) maps to `true`,
19
+ * everything else maps to `false`.
20
+ *
21
+ * @param defaultValue - Default value when the env var is not set
22
+ * @returns Zod schema that outputs a `boolean`
23
+ *
24
+ * @example
25
+ * ```typescript
26
+ * // In env schema:
27
+ * OTEL_ENABLED: booleanFromEnv(false),
28
+ * MCP_LEGACY_SSE_ENABLED: booleanFromEnv(false),
29
+ * ```
30
+ */
31
+ export declare function booleanFromEnv(defaultValue: boolean): z.ZodDefault<z.ZodUnion<[z.ZodBoolean, z.ZodEffects<z.ZodString, boolean, string>]>>;
32
+ /**
33
+ * Zod schema for comma-separated string list env vars.
34
+ *
35
+ * Splits on `,`, trims whitespace, removes empty segments.
36
+ * Optionally lowercases all values.
37
+ *
38
+ * Use for **required** list fields that always produce a `string[]`.
39
+ * For optional fields that should return `undefined` when empty,
40
+ * use {@link optionalCommaSeparatedList}.
41
+ *
42
+ * @param options - Configuration for list parsing
43
+ * @param options.lowercase - Lowercase all values (default: false)
44
+ * @returns Zod schema that outputs `string[]`
45
+ *
46
+ * @example
47
+ * ```typescript
48
+ * // In env schema:
49
+ * OTEL_METRICS_EXPORTER: commaSeparatedList({ lowercase: true }).default('otlp,prometheus'),
50
+ * ```
51
+ */
52
+ export declare function commaSeparatedList(options?: {
53
+ lowercase?: boolean;
54
+ }): z.ZodEffects<z.ZodString, string[], string>;
55
+ /**
56
+ * Zod schema for optional comma-separated string list env vars.
57
+ *
58
+ * Like {@link commaSeparatedList}, but returns `undefined` when the
59
+ * input is empty or produces no items after trimming. The resulting
60
+ * field type is `string[] | undefined`.
61
+ *
62
+ * Use for optional list fields where absence has semantic meaning
63
+ * (e.g., "use defaults" for allowed origins/hosts).
64
+ *
65
+ * @returns Zod schema that outputs `string[] | undefined`
66
+ *
67
+ * @example
68
+ * ```typescript
69
+ * // In env schema:
70
+ * MCP_ALLOWED_ORIGINS: optionalCommaSeparatedList(),
71
+ * MCP_ALLOWED_HOSTS: optionalCommaSeparatedList(),
72
+ * ```
73
+ */
74
+ export declare function optionalCommaSeparatedList(): z.ZodOptional<z.ZodEffects<z.ZodString, string[] | undefined, string>>;
75
+ /**
76
+ * Zod schema for human-readable byte size environment variables.
77
+ *
78
+ * Accepts strings like `"10mb"`, `"500kb"`, `"1.5gb"`, or plain byte
79
+ * counts like `"1048576"`. Transforms the input to a `number` (bytes)
80
+ * via {@link parseByteSize}.
81
+ *
82
+ * @param defaultValue - Default value as human-readable string (e.g. `'10mb'`)
83
+ * @returns Zod schema that accepts `string` and outputs `number` (bytes)
84
+ *
85
+ * @example
86
+ * ```typescript
87
+ * // In env schema:
88
+ * LOG_MAX_FILE_SIZE: byteSizeSchema('10mb').pipe(z.number().int().min(1024)),
89
+ * ```
90
+ */
91
+ export declare function byteSizeSchema(defaultValue: string): z.ZodDefault<z.ZodEffects<z.ZodString, number, string>>;
92
+ //# sourceMappingURL=zod-helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zod-helpers.d.ts","sourceRoot":"","sources":["../../src/utils/zod-helpers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAOxB;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,cAAc,CAAC,YAAY,EAAE,OAAO,wFAKnD;AAMD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,GAAE;IAAE,SAAS,CAAC,EAAE,OAAO,CAAA;CAAO,+CAEvE;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,0BAA0B,2EAQzC;AAMD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,cAAc,CAAC,YAAY,EAAE,MAAM,2DAKlD"}