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,236 @@
1
+ /**
2
+ * Logger Factory Module
3
+ *
4
+ * Provides dependency injection and testable configuration for the logging system.
5
+ * Eliminates static state anti-pattern while maintaining backward compatibility.
6
+ *
7
+ * @module logger/factory
8
+ */
9
+ import { hostname as osHostname } from "os";
10
+ import { TextFormatter } from "./formatters/text-formatter.js";
11
+ import { JsonFormatter } from "./formatters/json-formatter.js";
12
+ import { ConsoleWriter } from "./writers/console-writer.js";
13
+ import { FileWriter } from "./writers/file-writer.js";
14
+ import { SecretScrubber } from "./scrubbing/secret-scrubber.js";
15
+ import { InjectionGuard } from "./scrubbing/injection-guard.js";
16
+ import { MAX_CHILD_LOGGER_CACHE_SIZE } from "./core/constants.js";
17
+ // ============================================================================
18
+ // Logger Resources Container
19
+ // ============================================================================
20
+ /**
21
+ * Container for logger resources.
22
+ * Encapsulates all shared resources that were previously static.
23
+ */
24
+ export class LoggerResources {
25
+ textFormatter;
26
+ jsonFormatter;
27
+ consoleWriter;
28
+ fileWriter;
29
+ secretScrubber;
30
+ injectionGuard;
31
+ format;
32
+ maxChildLoggerCacheSize;
33
+ /** Child logger cache with LRU eviction */
34
+ childLoggerCache = new Map();
35
+ childLoggerOrder = [];
36
+ constructor(config, deps = {}) {
37
+ this.format = config.format;
38
+ this.maxChildLoggerCacheSize = config.maxChildLoggerCacheSize ?? MAX_CHILD_LOGGER_CACHE_SIZE;
39
+ // Initialize formatters
40
+ this.textFormatter =
41
+ deps.textFormatter ??
42
+ new TextFormatter({
43
+ includeTimestamp: config.includeTimestamp,
44
+ includeComponent: config.includeComponent,
45
+ });
46
+ // Resolve host/process info once (defaulting from runtime)
47
+ const resolvedHostname = config.hostname ?? osHostname();
48
+ const resolvedArch = config.architecture ?? process.arch;
49
+ const resolvedOsType = config.osType ?? process.platform;
50
+ const resolvedPid = config.pid ?? process.pid;
51
+ const resolvedProcessName = config.processName ?? "node";
52
+ this.jsonFormatter =
53
+ config.format === "json"
54
+ ? (deps.jsonFormatter ??
55
+ new JsonFormatter({
56
+ serviceName: config.serviceName,
57
+ serviceVersion: config.serviceVersion,
58
+ environment: config.environment,
59
+ hostname: resolvedHostname,
60
+ architecture: resolvedArch,
61
+ osType: resolvedOsType,
62
+ pid: resolvedPid,
63
+ processName: resolvedProcessName,
64
+ }))
65
+ : null;
66
+ // Initialize writers
67
+ this.consoleWriter =
68
+ deps.consoleWriter ??
69
+ new ConsoleWriter({
70
+ transport: config.transport,
71
+ });
72
+ // File writer (optional)
73
+ this.fileWriter = config.logDir
74
+ ? (deps.fileWriter ??
75
+ this.createFileWriter(config.logDir, config.maxFileSize, config.maxFiles, config.retentionDays))
76
+ : null;
77
+ // Security components
78
+ this.secretScrubber = deps.secretScrubber ?? new SecretScrubber();
79
+ this.injectionGuard = deps.injectionGuard ?? new InjectionGuard();
80
+ }
81
+ /**
82
+ * Create file writer with error handling.
83
+ */
84
+ createFileWriter(logDir, maxFileSize, maxFiles, retentionDays) {
85
+ try {
86
+ return new FileWriter({ logDir, maxFileSize, maxFiles, retentionDays });
87
+ }
88
+ catch {
89
+ // File logging is optional, continue without it
90
+ return null;
91
+ }
92
+ }
93
+ /**
94
+ * Get the appropriate formatter based on configuration.
95
+ */
96
+ getFormatter() {
97
+ return this.format === "json" && this.jsonFormatter ? this.jsonFormatter : this.textFormatter;
98
+ }
99
+ /**
100
+ * Get or create a cached child logger.
101
+ * Uses LRU eviction to prevent memory leaks.
102
+ */
103
+ getOrCreateChildLogger(key, factory) {
104
+ const cached = this.childLoggerCache.get(key);
105
+ if (cached) {
106
+ // Move to end of order (most recently used)
107
+ const index = this.childLoggerOrder.indexOf(key);
108
+ if (index > -1) {
109
+ this.childLoggerOrder.splice(index, 1);
110
+ }
111
+ this.childLoggerOrder.push(key);
112
+ // @ts-limitation — Map<string, unknown> stores base type; generic T is guaranteed by cache key
113
+ return cached;
114
+ }
115
+ // Evict oldest entries if cache is full (LRU)
116
+ while (this.childLoggerCache.size >= this.maxChildLoggerCacheSize && this.childLoggerOrder.length > 0) {
117
+ const oldest = this.childLoggerOrder.shift();
118
+ if (oldest) {
119
+ this.childLoggerCache.delete(oldest);
120
+ }
121
+ }
122
+ const newLogger = factory();
123
+ this.childLoggerCache.set(key, newLogger);
124
+ this.childLoggerOrder.push(key);
125
+ return newLogger;
126
+ }
127
+ /**
128
+ * Clear the child logger cache.
129
+ */
130
+ clearChildLoggerCache() {
131
+ this.childLoggerCache.clear();
132
+ this.childLoggerOrder.length = 0;
133
+ }
134
+ /**
135
+ * Get the current cache size.
136
+ */
137
+ getChildLoggerCacheSize() {
138
+ return this.childLoggerCache.size;
139
+ }
140
+ /**
141
+ * Get child logger cache statistics for monitoring.
142
+ * @internal
143
+ */
144
+ getChildLoggerCacheStats() {
145
+ return {
146
+ size: this.childLoggerCache.size,
147
+ maxSize: this.maxChildLoggerCacheSize,
148
+ };
149
+ }
150
+ /**
151
+ * Close all writers gracefully.
152
+ */
153
+ async close() {
154
+ const closePromises = [];
155
+ if (this.fileWriter) {
156
+ closePromises.push(this.fileWriter.close());
157
+ }
158
+ if (this.consoleWriter) {
159
+ closePromises.push(this.consoleWriter.close());
160
+ }
161
+ const results = await Promise.allSettled(closePromises);
162
+ for (const result of results) {
163
+ if (result.status === "rejected") {
164
+ // Use stderr directly — the logger itself is being closed
165
+ const reason = result.reason instanceof Error ? result.reason.message : String(result.reason);
166
+ process.stderr.write(`[logger] Writer close failed: ${reason}\n`);
167
+ }
168
+ }
169
+ }
170
+ }
171
+ // ============================================================================
172
+ // Global Resources (Singleton for backward compatibility)
173
+ // ============================================================================
174
+ /**
175
+ * Global resources instance.
176
+ * Provides backward compatibility with existing static Logger usage.
177
+ * @internal
178
+ */
179
+ let globalResources = null;
180
+ /**
181
+ * Initialize global logger resources.
182
+ * Called once with the application configuration.
183
+ *
184
+ * @param config - Logger system configuration
185
+ * @param deps - Optional dependencies for testing
186
+ * @returns The initialized resources
187
+ */
188
+ export function initializeLoggerResources(config, deps) {
189
+ if (globalResources) {
190
+ // Already initialized - return existing instance
191
+ return globalResources;
192
+ }
193
+ globalResources = new LoggerResources(config, deps);
194
+ return globalResources;
195
+ }
196
+ /**
197
+ * Get the global logger resources.
198
+ * Throws if not initialized.
199
+ *
200
+ * @returns The global resources
201
+ * @throws Error if resources not initialized
202
+ */
203
+ export function getLoggerResources() {
204
+ if (!globalResources) {
205
+ throw new Error("Logger resources not initialized. Call initializeLoggerResources() first.");
206
+ }
207
+ return globalResources;
208
+ }
209
+ /**
210
+ * Check if global resources are initialized.
211
+ */
212
+ export function hasLoggerResources() {
213
+ return globalResources !== null;
214
+ }
215
+ /**
216
+ * Reset global resources (for testing).
217
+ * Closes existing resources before resetting.
218
+ *
219
+ * @internal
220
+ */
221
+ export async function resetLoggerResources() {
222
+ if (globalResources) {
223
+ await globalResources.close();
224
+ globalResources = null;
225
+ }
226
+ }
227
+ /**
228
+ * Force set global resources (for testing only).
229
+ * Bypasses initialization check.
230
+ *
231
+ * @internal
232
+ */
233
+ export function _setLoggerResources(resources) {
234
+ globalResources = resources;
235
+ }
236
+ //# sourceMappingURL=factory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"factory.js","sourceRoot":"","sources":["../../src/logger/factory.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Formatters Module
3
+ *
4
+ * Log formatting utilities for different output formats.
5
+ * Supports text (human-readable) and JSON (structured) formats.
6
+ *
7
+ * @module logger/formatters
8
+ */
9
+ export { buildLogEntry, type LogEntryOptions, type StructuredLogEntry } from "./schema.js";
10
+ export { TextFormatter, textFormatter, type TextFormatterConfig } from "./text-formatter.js";
11
+ export { JsonFormatter, type JsonFormatterConfig } from "./json-formatter.js";
12
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/logger/formatters/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,aAAa,EAAE,KAAK,eAAe,EAAE,KAAK,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAG3F,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,KAAK,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAG7F,OAAO,EAAE,aAAa,EAAE,KAAK,mBAAmB,EAAE,MAAM,qBAAqB,CAAC"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Formatters Module
3
+ *
4
+ * Log formatting utilities for different output formats.
5
+ * Supports text (human-readable) and JSON (structured) formats.
6
+ *
7
+ * @module logger/formatters
8
+ */
9
+ // Schema & Builder
10
+ export { buildLogEntry } from "./schema.js";
11
+ // Text Formatter
12
+ export { TextFormatter, textFormatter } from "./text-formatter.js";
13
+ // JSON Formatter
14
+ export { JsonFormatter } from "./json-formatter.js";
15
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/logger/formatters/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,mBAAmB;AACnB,OAAO,EAAE,aAAa,EAAiD,MAAM,aAAa,CAAC;AAE3F,iBAAiB;AACjB,OAAO,EAAE,aAAa,EAAE,aAAa,EAA4B,MAAM,qBAAqB,CAAC;AAE7F,iBAAiB;AACjB,OAAO,EAAE,aAAa,EAA4B,MAAM,qBAAqB,CAAC"}
@@ -0,0 +1,54 @@
1
+ /**
2
+ * JSON Formatter Module
3
+ *
4
+ * Provides structured JSON log formatting compatible with ELK Stack,
5
+ * Datadog, Splunk, and other log aggregation platforms.
6
+ *
7
+ * @module logger/formatters/json-formatter
8
+ */
9
+ import type { LogFormatter, LogEntryParams } from "../core/types.js";
10
+ /**
11
+ * Configuration for the JSON formatter.
12
+ */
13
+ export interface JsonFormatterConfig {
14
+ /** Service name for structured logs */
15
+ serviceName: string;
16
+ /** Service version */
17
+ serviceVersion: string;
18
+ /** Environment (e.g., 'development', 'production') */
19
+ environment: string;
20
+ /** Whether to pretty-print JSON (default: false) */
21
+ prettyPrint?: boolean;
22
+ /** Hostname (computed once at init) */
23
+ hostname?: string;
24
+ /** CPU architecture (e.g., 'x64', 'arm64') */
25
+ architecture?: string;
26
+ /** OS type / platform (e.g., 'linux', 'darwin') */
27
+ osType?: string;
28
+ /** Process ID */
29
+ pid?: number;
30
+ /** Process name */
31
+ processName?: string;
32
+ }
33
+ /**
34
+ * JSON Formatter class for structured log output.
35
+ *
36
+ * Produces ECS-compatible JSON logs suitable for log aggregation platforms.
37
+ */
38
+ export declare class JsonFormatter implements LogFormatter {
39
+ private config;
40
+ private prettyPrint;
41
+ /**
42
+ * Create a new JsonFormatter.
43
+ * @param config - Formatter configuration
44
+ */
45
+ constructor(config: JsonFormatterConfig);
46
+ /**
47
+ * Format a log entry as JSON.
48
+ *
49
+ * @param params - Log entry parameters
50
+ * @returns JSON string
51
+ */
52
+ format(params: LogEntryParams): string;
53
+ }
54
+ //# sourceMappingURL=json-formatter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json-formatter.d.ts","sourceRoot":"","sources":["../../../src/logger/formatters/json-formatter.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAGrE;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,uCAAuC;IACvC,WAAW,EAAE,MAAM,CAAC;IACpB,sBAAsB;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,sDAAsD;IACtD,WAAW,EAAE,MAAM,CAAC;IACpB,oDAAoD;IACpD,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,uCAAuC;IACvC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,8CAA8C;IAC9C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,mDAAmD;IACnD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,iBAAiB;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,mBAAmB;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;;GAIG;AACH,qBAAa,aAAc,YAAW,YAAY;IAChD,OAAO,CAAC,MAAM,CAAsB;IACpC,OAAO,CAAC,WAAW,CAAU;IAE7B;;;OAGG;gBACS,MAAM,EAAE,mBAAmB;IAKvC;;;;;OAKG;IACI,MAAM,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM;CAoD9C"}
@@ -0,0 +1,80 @@
1
+ /**
2
+ * JSON Formatter Module
3
+ *
4
+ * Provides structured JSON log formatting compatible with ELK Stack,
5
+ * Datadog, Splunk, and other log aggregation platforms.
6
+ *
7
+ * @module logger/formatters/json-formatter
8
+ */
9
+ import { buildLogEntry } from "./schema.js";
10
+ /**
11
+ * JSON Formatter class for structured log output.
12
+ *
13
+ * Produces ECS-compatible JSON logs suitable for log aggregation platforms.
14
+ */
15
+ export class JsonFormatter {
16
+ config;
17
+ prettyPrint;
18
+ /**
19
+ * Create a new JsonFormatter.
20
+ * @param config - Formatter configuration
21
+ */
22
+ constructor(config) {
23
+ this.config = config;
24
+ this.prettyPrint = config.prettyPrint ?? false;
25
+ }
26
+ /**
27
+ * Format a log entry as JSON.
28
+ *
29
+ * @param params - Log entry parameters
30
+ * @returns JSON string
31
+ */
32
+ format(params) {
33
+ const { level, message, component, context, metadata } = params;
34
+ const entry = buildLogEntry({
35
+ level,
36
+ message,
37
+ service: {
38
+ name: this.config.serviceName,
39
+ version: this.config.serviceVersion,
40
+ environment: this.config.environment,
41
+ component,
42
+ },
43
+ host: this.config.hostname || this.config.architecture || this.config.osType
44
+ ? {
45
+ name: this.config.hostname,
46
+ architecture: this.config.architecture,
47
+ os: this.config.osType ? { type: this.config.osType } : undefined,
48
+ }
49
+ : undefined,
50
+ process: this.config.pid !== undefined || this.config.processName
51
+ ? { pid: this.config.pid, name: this.config.processName }
52
+ : undefined,
53
+ trace: context?.traceId || context?.spanId ? { id: context?.traceId, "span.id": context?.spanId } : undefined,
54
+ session: context?.sessionId ? { id: context.sessionId } : undefined,
55
+ http: context?.http
56
+ ? {
57
+ method: context.http.method,
58
+ "url.path": context.http.path,
59
+ "response.status_code": context.http.statusCode,
60
+ "request.duration_ms": context.http.durationMs,
61
+ }
62
+ : undefined,
63
+ event: context?.event
64
+ ? {
65
+ category: context.event.category,
66
+ action: context.event.action,
67
+ outcome: context.event.outcome,
68
+ }
69
+ : undefined,
70
+ error: params.error,
71
+ metadata,
72
+ labels: context?.requestId ? { request_id: context.requestId } : undefined,
73
+ });
74
+ if (this.prettyPrint) {
75
+ return JSON.stringify(entry, null, 2);
76
+ }
77
+ return JSON.stringify(entry);
78
+ }
79
+ }
80
+ //# sourceMappingURL=json-formatter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json-formatter.js","sourceRoot":"","sources":["../../../src/logger/formatters/json-formatter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,230 @@
1
+ /**
2
+ * Structured Log Schema Module
3
+ *
4
+ * Defines the JSON log format compatible with ELK Stack, Datadog, Splunk,
5
+ * and other log aggregation platforms.
6
+ *
7
+ * Based on:
8
+ * - Elastic Common Schema (ECS) 8.x
9
+ * - OpenTelemetry Semantic Conventions
10
+ * - RFC 5424 Syslog
11
+ *
12
+ * @module logger/formatters/schema
13
+ */
14
+ import type { LogLevel } from "../core/types.js";
15
+ /**
16
+ * Minimal serialized error interface for log entries.
17
+ * Duck-typed to avoid importing from the errors module.
18
+ * Compatible with AppError.toJSON() output.
19
+ */
20
+ interface LogSerializedError {
21
+ readonly name: string;
22
+ readonly message: string;
23
+ readonly code?: string;
24
+ readonly stack?: string;
25
+ }
26
+ /**
27
+ * Structured log entry for JSON output.
28
+ * Compatible with ECS (Elastic Common Schema) for log aggregation.
29
+ */
30
+ /**
31
+ * ECS version this schema targets.
32
+ * @see https://www.elastic.co/guide/en/ecs/current
33
+ */
34
+ export declare const ECS_VERSION = "8.11.0";
35
+ export interface StructuredLogEntry {
36
+ /** ISO 8601 timestamp with milliseconds */
37
+ "@timestamp": string;
38
+ /** ECS schema version (mandatory per ECS specification) */
39
+ "ecs.version": string;
40
+ /** Log level (uppercase for ECS compatibility) */
41
+ level: Uppercase<LogLevel>;
42
+ /** Log level as numeric severity (RFC 5424: 0=Emergency, 7=Debug) */
43
+ "log.level": number;
44
+ /** Logger name / component that produced this entry */
45
+ "log.logger"?: string | undefined;
46
+ /** Human-readable log message */
47
+ message: string;
48
+ /** Service identification */
49
+ service: {
50
+ /** Service name (e.g., 'mcp-server') */
51
+ name: string;
52
+ /** Service version */
53
+ version?: string | undefined;
54
+ /** Environment (development, production, test) */
55
+ environment?: string | undefined;
56
+ /** Component within the service */
57
+ component?: string | undefined;
58
+ };
59
+ /** Host information */
60
+ host?: {
61
+ /** Hostname */
62
+ name?: string | undefined;
63
+ /** CPU architecture (e.g., 'x64', 'arm64') */
64
+ architecture?: string | undefined;
65
+ /** Operating system information */
66
+ os?: {
67
+ /** OS type / platform (e.g., 'linux', 'darwin', 'win32') */
68
+ type?: string | undefined;
69
+ } | undefined;
70
+ } | undefined;
71
+ /** Process information */
72
+ process?: {
73
+ /** Process ID */
74
+ pid?: number | undefined;
75
+ /** Process name */
76
+ name?: string | undefined;
77
+ } | undefined;
78
+ /** Trace context for distributed tracing */
79
+ trace?: {
80
+ /** Trace ID (W3C Trace Context format) */
81
+ id?: string | undefined;
82
+ /** Span ID */
83
+ "span.id"?: string | undefined;
84
+ /** Parent span ID */
85
+ "parent.id"?: string | undefined;
86
+ } | undefined;
87
+ /** Session information */
88
+ session?: {
89
+ /** Session ID */
90
+ id?: string | undefined;
91
+ } | undefined;
92
+ /** HTTP request context (if applicable) */
93
+ http?: {
94
+ /** HTTP method */
95
+ method?: string | undefined;
96
+ /** Request URL path */
97
+ "url.path"?: string | undefined;
98
+ /** Response status code */
99
+ "response.status_code"?: number | undefined;
100
+ /** Request duration in milliseconds */
101
+ "request.duration_ms"?: number | undefined;
102
+ } | undefined;
103
+ /** Error information (if this is an error log) */
104
+ error?: {
105
+ /** Error type/class name */
106
+ type?: string | undefined;
107
+ /** Error message */
108
+ message?: string | undefined;
109
+ /** Application-specific error code */
110
+ code?: string | undefined;
111
+ /** Stack trace (array of frames) */
112
+ stack_trace?: string | undefined;
113
+ } | undefined;
114
+ /** Event metadata */
115
+ event?: {
116
+ /** Event category (e.g., 'tool', 'api', 'transport') */
117
+ category?: string | undefined;
118
+ /** Event action (e.g., 'execute', 'connect', 'disconnect') */
119
+ action?: string | undefined;
120
+ /** Event outcome ('success', 'failure', 'unknown') */
121
+ outcome?: "success" | "failure" | "unknown" | undefined;
122
+ /** Event duration in nanoseconds */
123
+ duration?: number | undefined;
124
+ } | undefined;
125
+ /** Labels for custom indexing */
126
+ labels?: Record<string, string | number | boolean> | undefined;
127
+ /** Additional metadata (custom fields) */
128
+ metadata?: Record<string, unknown> | undefined;
129
+ }
130
+ /**
131
+ * Options for buildLogEntry() factory function.
132
+ */
133
+ export interface LogEntryOptions {
134
+ readonly level: LogLevel;
135
+ readonly message: string;
136
+ readonly service?: StructuredLogEntry["service"] | undefined;
137
+ readonly component?: string | undefined;
138
+ readonly host?: StructuredLogEntry["host"] | undefined;
139
+ readonly process?: StructuredLogEntry["process"] | undefined;
140
+ readonly trace?: StructuredLogEntry["trace"] | undefined;
141
+ readonly session?: StructuredLogEntry["session"] | undefined;
142
+ readonly http?: StructuredLogEntry["http"] | undefined;
143
+ readonly error?: (Error | LogSerializedError) | undefined;
144
+ readonly event?: StructuredLogEntry["event"] | undefined;
145
+ readonly labels?: Record<string, string | number | boolean> | undefined;
146
+ readonly metadata?: Record<string, unknown> | undefined;
147
+ }
148
+ /**
149
+ * Build a structured log entry from options.
150
+ *
151
+ * Replaces the fluent LogEntryBuilder with a single-call factory function.
152
+ * All optional fields that are undefined are stripped from the output.
153
+ *
154
+ * @param options - Log entry parameters
155
+ * @returns Clean StructuredLogEntry with only defined fields
156
+ */
157
+ export declare function buildLogEntry(options: LogEntryOptions): StructuredLogEntry;
158
+ /**
159
+ * @deprecated Use {@link buildLogEntry} instead. Will be removed in a future major version.
160
+ *
161
+ * Builder class for creating structured log entries.
162
+ * Provides a fluent API for constructing log entries.
163
+ *
164
+ * @example
165
+ * ```typescript
166
+ * const entry = new LogEntryBuilder('info', 'User logged in')
167
+ * .withService('mcp-server', '1.0.0')
168
+ * .withSession('abc123')
169
+ * .withEvent('auth', 'login', 'success')
170
+ * .build();
171
+ * ```
172
+ */
173
+ export declare class LogEntryBuilder {
174
+ private entry;
175
+ constructor(level: LogLevel, message: string);
176
+ /**
177
+ * Set service information.
178
+ */
179
+ withService(name: string, version?: string, environment?: string, component?: string): this;
180
+ /**
181
+ * Set host information.
182
+ */
183
+ withHost(name?: string, architecture?: string, osType?: string): this;
184
+ /**
185
+ * Set process information.
186
+ */
187
+ withProcess(pid?: number, name?: string): this;
188
+ /**
189
+ * Set trace context for distributed tracing.
190
+ */
191
+ withTrace(traceId?: string, spanId?: string, parentId?: string): this;
192
+ /**
193
+ * Set session information.
194
+ */
195
+ withSession(sessionId?: string): this;
196
+ /**
197
+ * Set HTTP request context.
198
+ */
199
+ withHttp(method?: string, path?: string, statusCode?: number, durationMs?: number): this;
200
+ /**
201
+ * Set error information.
202
+ */
203
+ withError(error: Error | LogSerializedError): this;
204
+ /**
205
+ * Set event metadata.
206
+ */
207
+ withEvent(category?: string, action?: string, outcome?: "success" | "failure" | "unknown", durationNs?: number): this;
208
+ /**
209
+ * Add custom labels for indexing.
210
+ */
211
+ withLabels(labels: Record<string, string | number | boolean>): this;
212
+ /**
213
+ * Add additional metadata.
214
+ */
215
+ withMetadata(metadata: Record<string, unknown>): this;
216
+ /**
217
+ * Build the final log entry.
218
+ */
219
+ build(): StructuredLogEntry;
220
+ /**
221
+ * Build and stringify the log entry.
222
+ */
223
+ toString(): string;
224
+ }
225
+ /**
226
+ * Helper function to create a structured log entry.
227
+ */
228
+ export declare function createLogEntry(level: LogLevel, message: string): LogEntryBuilder;
229
+ export {};
230
+ //# sourceMappingURL=schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/logger/formatters/schema.ts"],"names":[],"mappings":"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"}