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,388 @@
1
+ /**
2
+ * Config File Schema, Types & Mapper
3
+ *
4
+ * This module is the single source of truth for:
5
+ * - Config file types and constants (formats, discovery filenames, result types)
6
+ * - Zod schemas for config file sections
7
+ * - Mapping between nested config file structure and flat `FrameworkEnvConfig`
8
+ *
9
+ * The schema is **lenient** regarding unknown keys: unrecognized
10
+ * fields are silently stripped during validation. The loader
11
+ * detects stripped keys and emits warnings so typos are visible
12
+ * without crashing the server.
13
+ *
14
+ * All fields are optional — you only configure what you need.
15
+ *
16
+ * Intentionally excluded from config file support:
17
+ * - `MCP_CONFIG_FILE` — meta-config (chicken-egg problem)
18
+ * - `NODE_ENV` — runtime concern, not file-config
19
+ * - `VERSION` — build/deployment concern
20
+ *
21
+ * @module config/file/schema
22
+ */
23
+ import { z } from "zod";
24
+ import { splitCommaSeparated, BYTE_SIZE_REGEX, parseByteSize } from "../../utils/string-helpers.js";
25
+ /**
26
+ * Config file names for auto-discovery (ordered by priority).
27
+ *
28
+ * The first file found in `process.cwd()` wins.
29
+ * TOML is preferred over YAML since it's more explicit for server configuration.
30
+ * JSON has lowest priority since it doesn't support comments.
31
+ */
32
+ export const DISCOVERY_FILENAMES = ["config.toml", "config.yaml", "config.yml", "config.json"];
33
+ /**
34
+ * Environment variable to explicitly specify a config file path.
35
+ *
36
+ * When set, auto-discovery is skipped and this path is used directly.
37
+ * The file must exist — an explicit path that doesn't resolve is an error.
38
+ *
39
+ * This is a meta-config variable and intentionally NOT part of `FrameworkEnvConfig`.
40
+ */
41
+ export const CONFIG_FILE_ENV_VAR = "MCP_CONFIG_FILE";
42
+ /**
43
+ * Maps file extensions to their format.
44
+ *
45
+ * Frozen at runtime to prevent
46
+ * accidental mutation of framework constants.
47
+ */
48
+ export const EXTENSION_FORMAT_MAP = Object.freeze({
49
+ ".toml": "toml",
50
+ ".yaml": "yaml",
51
+ ".yml": "yaml",
52
+ ".json": "json",
53
+ });
54
+ // ============================================================================
55
+ // Section Schemas
56
+ // ============================================================================
57
+ const transportSection = z
58
+ .object({
59
+ /** Transport mode: 'stdio', 'http', or 'https' */
60
+ mode: z.enum(["stdio", "http", "https"]),
61
+ /** Port to listen on */
62
+ port: z.number().int().min(1).max(65535),
63
+ /** Host to bind to */
64
+ host: z.string().min(1),
65
+ /** Enable SSE transport (legacy protocol 2024-11-05) */
66
+ sse_enabled: z.boolean(),
67
+ /** Operate in stateless mode (no session IDs) */
68
+ stateless: z.boolean(),
69
+ /** Prefer JSON responses over SSE for simple request-response (default: true) */
70
+ json_response: z.boolean(),
71
+ /** TLS configuration (required when mode is 'https') */
72
+ tls: z
73
+ .object({
74
+ /** Path to TLS certificate file (PEM) */
75
+ cert_path: z.string().min(1),
76
+ /** Path to TLS private key file (PEM) */
77
+ key_path: z.string().min(1),
78
+ /** Path to CA certificate file (PEM, optional) */
79
+ ca_path: z.string().min(1),
80
+ })
81
+ .partial()
82
+ .optional(),
83
+ })
84
+ .partial();
85
+ const securitySection = z
86
+ .object({
87
+ /** Allowed hosts for DNS rebinding protection */
88
+ allowed_hosts: z.array(z.string().min(1)),
89
+ /** Maximum requests per rate limit window */
90
+ rate_limit_max: z.number().int().min(100),
91
+ /** Rate limit window in milliseconds */
92
+ rate_limit_window_ms: z.number().int().min(1000),
93
+ /**
94
+ * Trust proxy setting for Express.
95
+ * Values: hop count (number ≥ 1), or string (IP/CIDR/keyword/hostname).
96
+ * @see https://expressjs.com/en/guide/behind-proxies.html
97
+ */
98
+ trust_proxy: z.union([z.number().int().min(1), z.string().min(1)]),
99
+ /** CORS allowed origins (array of origin strings). Unset = CORS disabled. */
100
+ cors_origin: z.array(z.string().min(1)),
101
+ /** Allow credentials in CORS requests */
102
+ cors_credentials: z.boolean(),
103
+ /** Enable HSTS header */
104
+ helmet_hsts: z.boolean(),
105
+ /** Content Security Policy: custom string, or 'false' to disable */
106
+ helmet_csp: z.string().min(1),
107
+ /** X-Frame-Options: DENY, SAMEORIGIN, or 'false' to disable */
108
+ helmet_frame_options: z.enum(["DENY", "SAMEORIGIN", "false"]),
109
+ /** Maximum request body size for express.json() (e.g. '1mb', '500kb') */
110
+ body_size_limit: z.string().regex(BYTE_SIZE_REGEX),
111
+ })
112
+ .partial();
113
+ const sessionSection = z
114
+ .object({
115
+ /** Maximum total concurrent sessions across all transports */
116
+ max_sessions: z.number().int().min(1),
117
+ /** Maximum concurrent Streamable HTTP sessions */
118
+ max_streamable_http_sessions: z.number().int().min(1),
119
+ /** Maximum concurrent SSE sessions */
120
+ max_sse_sessions: z.number().int().min(1),
121
+ })
122
+ .partial();
123
+ const loggingSection = z
124
+ .object({
125
+ /** Log level */
126
+ level: z.enum(["trace", "debug", "info", "warn", "error"]),
127
+ /** Log format */
128
+ format: z.enum(["text", "json"]),
129
+ /** Include RFC 3339 timestamps in text log output */
130
+ timestamp: z.boolean(),
131
+ /** Include component name in text log output */
132
+ component: z.boolean(),
133
+ /** Directory for log files */
134
+ dir: z.string().min(1),
135
+ /** Maximum log file size before rotation (e.g. "10mb", "500kb") */
136
+ max_file_size: z.string().regex(BYTE_SIZE_REGEX),
137
+ /** Maximum number of rotated log files to keep */
138
+ max_files: z.number().int().min(1).max(100),
139
+ /** Log file retention in days. Files older than this are deleted. 0 = disabled. */
140
+ retention_days: z.number().int().min(0),
141
+ })
142
+ .partial();
143
+ const telemetrySection = z
144
+ .object({
145
+ /** Enable OpenTelemetry */
146
+ enabled: z.boolean(),
147
+ /** Service name for OTEL */
148
+ service_name: z.string().min(1),
149
+ /** OTLP exporter endpoint URL (e.g. http://localhost:4318) */
150
+ exporter_endpoint: z.string().url(),
151
+ /** Trace exporter: otlp, console, none */
152
+ traces_exporter: z.string().min(1),
153
+ /** Log exporter: otlp, console, none (default: 'none' — framework has its own logger) */
154
+ logs_exporter: z.string().min(1),
155
+ /** SDK diagnostic log level: NONE, ERROR, WARN, INFO, DEBUG, VERBOSE, ALL */
156
+ log_level: z.string().min(1),
157
+ /** Periodic metric export interval in milliseconds */
158
+ metric_export_interval: z.number().int().positive(),
159
+ /**
160
+ * Metric exporters (comma-separated): otlp, prometheus, console, none.
161
+ * Default: 'otlp,prometheus'
162
+ */
163
+ metrics_exporter: z.string().min(1),
164
+ })
165
+ .partial();
166
+ const authSection = z
167
+ .object({
168
+ /** Required OAuth scopes for the /mcp endpoint (array of scope strings) */
169
+ required_scopes: z.array(z.string().min(1)),
170
+ /** Protected Resource Metadata URL (RFC 9728) */
171
+ resource_metadata_url: z.string().url(),
172
+ })
173
+ .partial();
174
+ // ============================================================================
175
+ // Root Schema
176
+ // ============================================================================
177
+ /**
178
+ * Map of section names to their Zod schemas.
179
+ *
180
+ * Used by the loader to derive known section names and keys
181
+ * instead of maintaining a manual duplicate list.
182
+ *
183
+ * Also the single source of truth for `configFileSchema` — the root
184
+ * schema is derived from this map via `z.object(…).partial()`.
185
+ *
186
+ * @internal
187
+ */
188
+ export const CONFIG_FILE_SECTIONS = Object.freeze({
189
+ transport: transportSection,
190
+ security: securitySection,
191
+ session: sessionSection,
192
+ logging: loggingSection,
193
+ telemetry: telemetrySection,
194
+ auth: authSection,
195
+ });
196
+ /**
197
+ * Config file root schema.
198
+ *
199
+ * Nested, section-based structure that maps to `FrameworkEnvConfig`.
200
+ * `.strict()` is intentionally NOT used — unknown keys are stripped
201
+ * during parsing and surfaced as warnings by the loader, so typos
202
+ * are visible but don't prevent the server from starting.
203
+ *
204
+ * Derived from `CONFIG_FILE_SECTIONS` to avoid duplicate
205
+ * section listings (DRY).
206
+ *
207
+ * @example TOML
208
+ * ```toml
209
+ * [transport]
210
+ * mode = "http"
211
+ * port = 3000
212
+ *
213
+ * [logging]
214
+ * level = "debug"
215
+ * format = "json"
216
+ * ```
217
+ *
218
+ * @example YAML
219
+ * ```yaml
220
+ * transport:
221
+ * mode: http
222
+ * port: 3000
223
+ * logging:
224
+ * level: debug
225
+ * ```
226
+ */
227
+ export const configFileSchema = z.object(CONFIG_FILE_SECTIONS).partial();
228
+ // ============================================================================
229
+ // Mapper
230
+ // ============================================================================
231
+ /**
232
+ * Map validated config file data to `FrameworkEnvConfig` overrides.
233
+ *
234
+ * Only explicitly defined values become overrides — `undefined` fields
235
+ * are omitted so they don't clobber environment-based defaults.
236
+ *
237
+ * The mapping is flat and explicit: each config file key maps to exactly
238
+ * one `FrameworkEnvConfig` key. No implicit behavior, no magic.
239
+ *
240
+ * @param config - Validated config file data
241
+ * @returns Partial overrides for `FrameworkEnvConfig`
242
+ */
243
+ export function mapConfigToOverrides(config) {
244
+ const overrides = {};
245
+ // ── Transport ──────────────────────────────────────────────────────────
246
+ if (config.transport) {
247
+ const t = config.transport;
248
+ if (t.mode !== undefined)
249
+ overrides.MCP_TRANSPORT = t.mode;
250
+ if (t.port !== undefined)
251
+ overrides.MCP_PORT = t.port;
252
+ if (t.host !== undefined)
253
+ overrides.MCP_BIND_HOST = t.host;
254
+ if (t.sse_enabled !== undefined)
255
+ overrides.MCP_LEGACY_SSE_ENABLED = t.sse_enabled;
256
+ if (t.stateless !== undefined)
257
+ overrides.MCP_STATELESS = t.stateless;
258
+ if (t.json_response !== undefined)
259
+ overrides.MCP_JSON_RESPONSE = t.json_response;
260
+ if (t.tls) {
261
+ if (t.tls.cert_path !== undefined)
262
+ overrides.MCP_TLS_CERT_PATH = t.tls.cert_path;
263
+ if (t.tls.key_path !== undefined)
264
+ overrides.MCP_TLS_KEY_PATH = t.tls.key_path;
265
+ if (t.tls.ca_path !== undefined)
266
+ overrides.MCP_TLS_CA_PATH = t.tls.ca_path;
267
+ }
268
+ }
269
+ // ── Security ───────────────────────────────────────────────────────────
270
+ if (config.security) {
271
+ const s = config.security;
272
+ if (s.allowed_hosts !== undefined)
273
+ overrides.MCP_ALLOWED_HOSTS = s.allowed_hosts;
274
+ if (s.rate_limit_max !== undefined)
275
+ overrides.MCP_RATE_LIMIT_MAX = s.rate_limit_max;
276
+ if (s.rate_limit_window_ms !== undefined)
277
+ overrides.MCP_RATE_LIMIT_WINDOW_MS = s.rate_limit_window_ms;
278
+ if (s.trust_proxy !== undefined)
279
+ overrides.MCP_TRUST_PROXY = String(s.trust_proxy);
280
+ if (s.cors_origin !== undefined)
281
+ overrides.MCP_CORS_ORIGIN = s.cors_origin;
282
+ if (s.cors_credentials !== undefined)
283
+ overrides.MCP_CORS_CREDENTIALS = s.cors_credentials;
284
+ if (s.helmet_hsts !== undefined)
285
+ overrides.MCP_HELMET_HSTS = s.helmet_hsts;
286
+ if (s.helmet_csp !== undefined)
287
+ overrides.MCP_HELMET_CSP = s.helmet_csp;
288
+ if (s.helmet_frame_options !== undefined)
289
+ overrides.MCP_HELMET_FRAME_OPTIONS = s.helmet_frame_options;
290
+ if (s.body_size_limit !== undefined)
291
+ overrides.MCP_BODY_SIZE_LIMIT = s.body_size_limit;
292
+ }
293
+ // ── Session ────────────────────────────────────────────────────────────
294
+ if (config.session) {
295
+ const sess = config.session;
296
+ if (sess.max_sessions !== undefined)
297
+ overrides.MCP_MAX_SESSIONS = sess.max_sessions;
298
+ if (sess.max_streamable_http_sessions !== undefined)
299
+ overrides.MCP_MAX_STREAMABLE_HTTP_SESSIONS = sess.max_streamable_http_sessions;
300
+ if (sess.max_sse_sessions !== undefined)
301
+ overrides.MCP_MAX_SSE_SESSIONS = sess.max_sse_sessions;
302
+ }
303
+ // ── Logging ────────────────────────────────────────────────────────────
304
+ if (config.logging) {
305
+ const l = config.logging;
306
+ if (l.level !== undefined)
307
+ overrides.LOG_LEVEL = l.level;
308
+ if (l.format !== undefined)
309
+ overrides.LOG_FORMAT = l.format;
310
+ if (l.timestamp !== undefined)
311
+ overrides.LOG_TIMESTAMP = l.timestamp;
312
+ if (l.component !== undefined)
313
+ overrides.LOG_COMPONENT = l.component;
314
+ if (l.dir !== undefined)
315
+ overrides.LOG_DIR = l.dir;
316
+ if (l.max_file_size !== undefined)
317
+ overrides.LOG_MAX_FILE_SIZE = parseByteSize(l.max_file_size);
318
+ if (l.max_files !== undefined)
319
+ overrides.LOG_MAX_FILES = l.max_files;
320
+ if (l.retention_days !== undefined)
321
+ overrides.LOG_RETENTION_DAYS = l.retention_days;
322
+ }
323
+ // ── Telemetry ──────────────────────────────────────────────────────────
324
+ if (config.telemetry) {
325
+ const o = config.telemetry;
326
+ if (o.enabled !== undefined)
327
+ overrides.OTEL_ENABLED = o.enabled;
328
+ if (o.service_name !== undefined)
329
+ overrides.OTEL_SERVICE_NAME = o.service_name;
330
+ if (o.exporter_endpoint !== undefined)
331
+ overrides.OTEL_EXPORTER_OTLP_ENDPOINT = o.exporter_endpoint;
332
+ if (o.traces_exporter !== undefined)
333
+ overrides.OTEL_TRACES_EXPORTER = o.traces_exporter;
334
+ if (o.logs_exporter !== undefined)
335
+ overrides.OTEL_LOGS_EXPORTER = o.logs_exporter;
336
+ if (o.log_level !== undefined)
337
+ overrides.OTEL_LOG_LEVEL = o.log_level;
338
+ if (o.metric_export_interval !== undefined)
339
+ overrides.OTEL_METRIC_EXPORT_INTERVAL = o.metric_export_interval;
340
+ if (o.metrics_exporter !== undefined) {
341
+ // Config file stores single string, env.ts expects string[] after transform
342
+ overrides.OTEL_METRICS_EXPORTER = splitCommaSeparated(o.metrics_exporter, { lowercase: true });
343
+ }
344
+ }
345
+ // ── Auth ───────────────────────────────────────────────────────────────
346
+ if (config.auth) {
347
+ const a = config.auth;
348
+ if (a.required_scopes !== undefined)
349
+ overrides.MCP_AUTH_REQUIRED_SCOPES = a.required_scopes;
350
+ if (a.resource_metadata_url !== undefined)
351
+ overrides.MCP_AUTH_RESOURCE_METADATA_URL = a.resource_metadata_url;
352
+ }
353
+ return overrides;
354
+ }
355
+ // ============================================================================
356
+ // Reverse Mapper (Typed → String Env Keys)
357
+ // ============================================================================
358
+ /**
359
+ * Serialize typed config overrides back to string key-value pairs.
360
+ *
361
+ * This is the reverse of what Zod coercion does. It converts typed
362
+ * `Partial<FrameworkEnvConfig>` values back to the string format that
363
+ * `parseFrameworkEnv()` expects, so config-file values can be merged
364
+ * into the env source dict alongside `.env` and `process.env` entries.
365
+ *
366
+ * Used by `initializeConfig()` to implement 12-Factor priority:
367
+ * `{ ...dotenvValues, ...mapConfigToEnvKeys(fileOverrides), ...process.env }`
368
+ *
369
+ * @param overrides - Typed config overrides from `mapConfigToOverrides()`
370
+ * @returns String key-value pairs suitable for Zod env parsing
371
+ */
372
+ export function mapConfigToEnvKeys(overrides) {
373
+ const result = {};
374
+ for (const [key, value] of Object.entries(overrides)) {
375
+ if (value === undefined)
376
+ continue;
377
+ if (Array.isArray(value)) {
378
+ // string[] → comma-separated string (e.g., OTEL_METRICS_EXPORTER)
379
+ result[key] = value.join(",");
380
+ }
381
+ else {
382
+ // string | number | boolean → String()
383
+ result[key] = String(value);
384
+ }
385
+ }
386
+ return result;
387
+ }
388
+ //# sourceMappingURL=schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/config/file/schema.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Server Framework Configuration
3
+ *
4
+ * Aggregates all framework configuration into a single module.
5
+ * This provides a central access point for all server framework settings.
6
+ *
7
+ * @module config
8
+ */
9
+ export { frameworkEnvSchema, validateConfigConstraints, type FrameworkEnvConfig, type ConfigConstraintViolation, } from "./env.js";
10
+ export { getFrameworkConfig, getConfigSource, resetConfigCache, registerCacheReset, applyConfigOverrides, setConfigLogger, } from "./config-cache.js";
11
+ export { registerConfigSection, getAppConfig, resetConfigExtensions } from "./extensions.js";
12
+ export { addStartupWarning, flushStartupWarnings, resetStartupWarnings } from "./startup-warnings.js";
13
+ export { booleanFromEnv, commaSeparatedList, optionalCommaSeparatedList } from "../utils/zod-helpers.js";
14
+ export { loadConfigFile, configFileSchema, CONFIG_FILE_ENV_VAR, DISCOVERY_FILENAMES, type ConfigFileFormat, type ConfigFileResult, type ConfigFileData, type ConfigSource, } from "./file/index.js";
15
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAMH,OAAO,EACL,kBAAkB,EAClB,yBAAyB,EACzB,KAAK,kBAAkB,EACvB,KAAK,yBAAyB,GAC/B,MAAM,UAAU,CAAC;AAClB,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,gBAAgB,EAChB,kBAAkB,EAClB,oBAAoB,EACpB,eAAe,GAChB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,qBAAqB,EAAE,YAAY,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAM7F,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAMtG,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,0BAA0B,EAAE,MAAM,yBAAyB,CAAC;AAMzG,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,mBAAmB,EACnB,mBAAmB,EACnB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,YAAY,GAClB,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Server Framework Configuration
3
+ *
4
+ * Aggregates all framework configuration into a single module.
5
+ * This provides a central access point for all server framework settings.
6
+ *
7
+ * @module config
8
+ */
9
+ // ============================================================================
10
+ // Environment Configuration
11
+ // ============================================================================
12
+ export { frameworkEnvSchema, validateConfigConstraints, } from "./env.js";
13
+ export { getFrameworkConfig, getConfigSource, resetConfigCache, registerCacheReset, applyConfigOverrides, setConfigLogger, } from "./config-cache.js";
14
+ export { registerConfigSection, getAppConfig, resetConfigExtensions } from "./extensions.js";
15
+ // ============================================================================
16
+ // Startup Warning Buffer
17
+ // ============================================================================
18
+ export { addStartupWarning, flushStartupWarnings, resetStartupWarnings } from "./startup-warnings.js";
19
+ // ============================================================================
20
+ // Zod Schema Helpers
21
+ // ============================================================================
22
+ export { booleanFromEnv, commaSeparatedList, optionalCommaSeparatedList } from "../utils/zod-helpers.js";
23
+ // ============================================================================
24
+ // Config File Support
25
+ // ============================================================================
26
+ export { loadConfigFile, configFileSchema, CONFIG_FILE_ENV_VAR, DISCOVERY_FILENAMES, } from "./file/index.js";
27
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,+EAA+E;AAC/E,4BAA4B;AAC5B,+EAA+E;AAE/E,OAAO,EACL,kBAAkB,EAClB,yBAAyB,GAG1B,MAAM,UAAU,CAAC;AAClB,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,gBAAgB,EAChB,kBAAkB,EAClB,oBAAoB,EACpB,eAAe,GAChB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,qBAAqB,EAAE,YAAY,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAE7F,+EAA+E;AAC/E,yBAAyB;AACzB,+EAA+E;AAE/E,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAEtG,+EAA+E;AAC/E,qBAAqB;AACrB,+EAA+E;AAE/E,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,0BAA0B,EAAE,MAAM,yBAAyB,CAAC;AAEzG,+EAA+E;AAC/E,sBAAsB;AACtB,+EAA+E;AAE/E,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,mBAAmB,EACnB,mBAAmB,GAKpB,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,46 @@
1
+ /**
2
+ * Startup Warning Buffer
3
+ *
4
+ * Collects warnings that occur during config loading, before the
5
+ * framework logger is initialized. After logger initialization,
6
+ * the buffer is flushed to the real logger.
7
+ *
8
+ * This solves the chicken-and-egg problem where config loading
9
+ * (which runs before the logger) may produce warnings (e.g.,
10
+ * unknown config file keys, wildcard origins in production)
11
+ * that should appear in structured logs, not just on stderr.
12
+ *
13
+ * If `flush()` is never called (e.g., server crashes before
14
+ * logger init), warnings were already emitted to `console.warn`
15
+ * as a fallback when they were buffered.
16
+ *
17
+ * @module config/startup-warnings
18
+ */
19
+ /**
20
+ * Buffer a startup warning for later logger replay.
21
+ *
22
+ * The message is also immediately written to `console.warn` as a
23
+ * fallback — if the server never reaches logger initialization
24
+ * (crash, validation error), the warning is still visible on stderr.
25
+ *
26
+ * @param message - Warning message to buffer and emit
27
+ */
28
+ export declare function addStartupWarning(message: string): void;
29
+ /**
30
+ * Flush all buffered warnings through the provided logger function.
31
+ *
32
+ * Typically called once during server startup after the logger is
33
+ * configured. Clears the buffer after flushing.
34
+ *
35
+ * @param logFn - Logger function to replay warnings through (e.g., `logger.warn`)
36
+ */
37
+ export declare function flushStartupWarnings(logFn: (message: string) => void): void;
38
+ /**
39
+ * Reset the warning buffer.
40
+ *
41
+ * Intended for testing only.
42
+ *
43
+ * @internal
44
+ */
45
+ export declare function resetStartupWarnings(): void;
46
+ //# sourceMappingURL=startup-warnings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"startup-warnings.d.ts","sourceRoot":"","sources":["../../src/config/startup-warnings.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AASH;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAGvD;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI,CAK3E;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,IAAI,IAAI,CAE3C"}
@@ -0,0 +1,61 @@
1
+ /**
2
+ * Startup Warning Buffer
3
+ *
4
+ * Collects warnings that occur during config loading, before the
5
+ * framework logger is initialized. After logger initialization,
6
+ * the buffer is flushed to the real logger.
7
+ *
8
+ * This solves the chicken-and-egg problem where config loading
9
+ * (which runs before the logger) may produce warnings (e.g.,
10
+ * unknown config file keys, wildcard origins in production)
11
+ * that should appear in structured logs, not just on stderr.
12
+ *
13
+ * If `flush()` is never called (e.g., server crashes before
14
+ * logger init), warnings were already emitted to `console.warn`
15
+ * as a fallback when they were buffered.
16
+ *
17
+ * @module config/startup-warnings
18
+ */
19
+ // ============================================================================
20
+ // Buffer
21
+ // ============================================================================
22
+ /** Buffered warning messages */
23
+ const warnings = [];
24
+ /**
25
+ * Buffer a startup warning for later logger replay.
26
+ *
27
+ * The message is also immediately written to `console.warn` as a
28
+ * fallback — if the server never reaches logger initialization
29
+ * (crash, validation error), the warning is still visible on stderr.
30
+ *
31
+ * @param message - Warning message to buffer and emit
32
+ */
33
+ export function addStartupWarning(message) {
34
+ console.warn(message);
35
+ warnings.push(message);
36
+ }
37
+ /**
38
+ * Flush all buffered warnings through the provided logger function.
39
+ *
40
+ * Typically called once during server startup after the logger is
41
+ * configured. Clears the buffer after flushing.
42
+ *
43
+ * @param logFn - Logger function to replay warnings through (e.g., `logger.warn`)
44
+ */
45
+ export function flushStartupWarnings(logFn) {
46
+ for (const message of warnings) {
47
+ logFn(message);
48
+ }
49
+ warnings.length = 0;
50
+ }
51
+ /**
52
+ * Reset the warning buffer.
53
+ *
54
+ * Intended for testing only.
55
+ *
56
+ * @internal
57
+ */
58
+ export function resetStartupWarnings() {
59
+ warnings.length = 0;
60
+ }
61
+ //# sourceMappingURL=startup-warnings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"startup-warnings.js","sourceRoot":"","sources":["../../src/config/startup-warnings.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,+EAA+E;AAC/E,SAAS;AACT,+EAA+E;AAE/E,gCAAgC;AAChC,MAAM,QAAQ,GAAa,EAAE,CAAC;AAE9B;;;;;;;;GAQG;AACH,MAAM,UAAU,iBAAiB,CAAC,OAAe;IAC/C,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACtB,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACzB,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,oBAAoB,CAAC,KAAgC;IACnE,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,KAAK,CAAC,OAAO,CAAC,CAAC;IACjB,CAAC;IACD,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;AACtB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,oBAAoB;IAClC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;AACtB,CAAC"}