@j0hanz/superfetch 2.1.4 → 2.1.5

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 (550) hide show
  1. package/dist/cache.d.ts +1 -0
  2. package/dist/cache.d.ts.map +1 -0
  3. package/dist/cache.js +1 -0
  4. package/dist/cache.js.map +1 -0
  5. package/dist/config.d.ts +1 -0
  6. package/dist/config.d.ts.map +1 -0
  7. package/dist/config.js +1 -0
  8. package/dist/config.js.map +1 -0
  9. package/dist/crypto.d.ts +1 -0
  10. package/dist/crypto.d.ts.map +1 -0
  11. package/dist/crypto.js +1 -0
  12. package/dist/crypto.js.map +1 -0
  13. package/dist/errors.d.ts +1 -0
  14. package/dist/errors.d.ts.map +1 -0
  15. package/dist/errors.js +1 -0
  16. package/dist/errors.js.map +1 -0
  17. package/dist/fetch.d.ts +1 -0
  18. package/dist/fetch.d.ts.map +1 -0
  19. package/dist/fetch.js +1 -0
  20. package/dist/fetch.js.map +1 -0
  21. package/dist/http.d.ts +1 -0
  22. package/dist/http.d.ts.map +1 -0
  23. package/dist/http.js +1 -0
  24. package/dist/http.js.map +1 -0
  25. package/dist/index.d.ts +1 -0
  26. package/dist/index.js +1 -0
  27. package/dist/index.js.map +1 -1
  28. package/dist/mcp.d.ts +1 -0
  29. package/dist/mcp.d.ts.map +1 -0
  30. package/dist/mcp.js +1 -0
  31. package/dist/mcp.js.map +1 -0
  32. package/dist/observability.d.ts +1 -0
  33. package/dist/observability.d.ts.map +1 -0
  34. package/dist/observability.js +1 -0
  35. package/dist/observability.js.map +1 -0
  36. package/dist/tools.d.ts +1 -0
  37. package/dist/tools.d.ts.map +1 -0
  38. package/dist/tools.js +1 -0
  39. package/dist/tools.js.map +1 -0
  40. package/dist/transform.d.ts +1 -0
  41. package/dist/transform.d.ts.map +1 -0
  42. package/dist/transform.js +1 -0
  43. package/dist/transform.js.map +1 -0
  44. package/dist/utils.d.ts +1 -0
  45. package/dist/utils.d.ts.map +1 -0
  46. package/dist/utils.js +1 -0
  47. package/dist/utils.js.map +1 -0
  48. package/dist/workers/transform-worker.d.ts +1 -0
  49. package/dist/workers/transform-worker.d.ts.map +1 -0
  50. package/dist/workers/transform-worker.js +1 -0
  51. package/dist/workers/transform-worker.js.map +1 -0
  52. package/package.json +5 -2
  53. package/dist/config/auth-config.d.ts +0 -16
  54. package/dist/config/auth-config.js +0 -53
  55. package/dist/config/constants.d.ts +0 -17
  56. package/dist/config/constants.d.ts.map +0 -1
  57. package/dist/config/constants.js +0 -22
  58. package/dist/config/constants.js.map +0 -1
  59. package/dist/config/env-parsers.d.ts +0 -8
  60. package/dist/config/env-parsers.js +0 -96
  61. package/dist/config/formatting.d.ts +0 -7
  62. package/dist/config/formatting.d.ts.map +0 -1
  63. package/dist/config/formatting.js +0 -9
  64. package/dist/config/formatting.js.map +0 -1
  65. package/dist/config/index.d.ts +0 -61
  66. package/dist/config/index.d.ts.map +0 -1
  67. package/dist/config/index.js +0 -107
  68. package/dist/config/index.js.map +0 -1
  69. package/dist/config/types/content.d.ts +0 -41
  70. package/dist/config/types/content.d.ts.map +0 -1
  71. package/dist/config/types/content.js +0 -1
  72. package/dist/config/types/content.js.map +0 -1
  73. package/dist/config/types/runtime.d.ts +0 -72
  74. package/dist/config/types/runtime.d.ts.map +0 -1
  75. package/dist/config/types/runtime.js +0 -1
  76. package/dist/config/types/runtime.js.map +0 -1
  77. package/dist/config/types/tools.d.ts +0 -28
  78. package/dist/config/types/tools.d.ts.map +0 -1
  79. package/dist/config/types/tools.js +0 -1
  80. package/dist/config/types/tools.js.map +0 -1
  81. package/dist/config/types.d.ts +0 -4
  82. package/dist/config/types.d.ts.map +0 -1
  83. package/dist/config/types.js +0 -2
  84. package/dist/config/types.js.map +0 -1
  85. package/dist/errors/app-error.d.ts +0 -7
  86. package/dist/errors/app-error.d.ts.map +0 -1
  87. package/dist/errors/app-error.js +0 -16
  88. package/dist/errors/app-error.js.map +0 -1
  89. package/dist/errors/index.d.ts +0 -2
  90. package/dist/errors/index.d.ts.map +0 -1
  91. package/dist/errors/index.js +0 -2
  92. package/dist/errors/index.js.map +0 -1
  93. package/dist/http/accept-policy.d.ts +0 -3
  94. package/dist/http/accept-policy.js +0 -45
  95. package/dist/http/async-handler.d.ts +0 -2
  96. package/dist/http/async-handler.js +0 -5
  97. package/dist/http/auth-introspection.d.ts +0 -2
  98. package/dist/http/auth-introspection.js +0 -141
  99. package/dist/http/auth-static.d.ts +0 -2
  100. package/dist/http/auth-static.js +0 -23
  101. package/dist/http/auth.d.ts +0 -3
  102. package/dist/http/auth.d.ts.map +0 -1
  103. package/dist/http/auth.js +0 -269
  104. package/dist/http/auth.js.map +0 -1
  105. package/dist/http/base-middleware.d.ts +0 -7
  106. package/dist/http/base-middleware.js +0 -143
  107. package/dist/http/cors.d.ts +0 -2
  108. package/dist/http/cors.d.ts.map +0 -1
  109. package/dist/http/cors.js +0 -9
  110. package/dist/http/cors.js.map +0 -1
  111. package/dist/http/download-routes.d.ts +0 -2
  112. package/dist/http/download-routes.d.ts.map +0 -1
  113. package/dist/http/download-routes.js +0 -104
  114. package/dist/http/download-routes.js.map +0 -1
  115. package/dist/http/error-handler.d.ts +0 -2
  116. package/dist/http/error-handler.js +0 -55
  117. package/dist/http/host-allowlist.d.ts +0 -3
  118. package/dist/http/host-allowlist.js +0 -117
  119. package/dist/http/jsonrpc-http.d.ts +0 -2
  120. package/dist/http/jsonrpc-http.js +0 -10
  121. package/dist/http/mcp-routes.d.ts +0 -9
  122. package/dist/http/mcp-routes.d.ts.map +0 -1
  123. package/dist/http/mcp-routes.js +0 -204
  124. package/dist/http/mcp-routes.js.map +0 -1
  125. package/dist/http/mcp-session-eviction.d.ts +0 -3
  126. package/dist/http/mcp-session-eviction.js +0 -24
  127. package/dist/http/mcp-session-helpers.d.ts +0 -12
  128. package/dist/http/mcp-session-helpers.d.ts.map +0 -1
  129. package/dist/http/mcp-session-helpers.js +0 -64
  130. package/dist/http/mcp-session-helpers.js.map +0 -1
  131. package/dist/http/mcp-session-init.d.ts +0 -7
  132. package/dist/http/mcp-session-init.js +0 -94
  133. package/dist/http/mcp-session-slots.d.ts +0 -17
  134. package/dist/http/mcp-session-slots.js +0 -55
  135. package/dist/http/mcp-session-transport-init.d.ts +0 -7
  136. package/dist/http/mcp-session-transport-init.js +0 -41
  137. package/dist/http/mcp-session-transport.d.ts +0 -7
  138. package/dist/http/mcp-session-transport.js +0 -57
  139. package/dist/http/mcp-session-types.d.ts +0 -5
  140. package/dist/http/mcp-session-types.js +0 -1
  141. package/dist/http/mcp-session.d.ts +0 -10
  142. package/dist/http/mcp-session.d.ts.map +0 -1
  143. package/dist/http/mcp-session.js +0 -23
  144. package/dist/http/mcp-session.js.map +0 -1
  145. package/dist/http/mcp-sessions.d.ts +0 -41
  146. package/dist/http/mcp-sessions.js +0 -392
  147. package/dist/http/mcp-validation.d.ts +0 -3
  148. package/dist/http/mcp-validation.d.ts.map +0 -1
  149. package/dist/http/mcp-validation.js +0 -14
  150. package/dist/http/mcp-validation.js.map +0 -1
  151. package/dist/http/protocol-policy.d.ts +0 -2
  152. package/dist/http/protocol-policy.js +0 -31
  153. package/dist/http/rate-limit.d.ts +0 -12
  154. package/dist/http/rate-limit.d.ts.map +0 -1
  155. package/dist/http/rate-limit.js +0 -93
  156. package/dist/http/rate-limit.js.map +0 -1
  157. package/dist/http/server-config.d.ts +0 -1
  158. package/dist/http/server-config.js +0 -40
  159. package/dist/http/server-middleware.d.ts +0 -7
  160. package/dist/http/server-middleware.d.ts.map +0 -1
  161. package/dist/http/server-middleware.js +0 -52
  162. package/dist/http/server-middleware.js.map +0 -1
  163. package/dist/http/server-shutdown.d.ts +0 -4
  164. package/dist/http/server-shutdown.js +0 -43
  165. package/dist/http/server-tuning.d.ts +0 -9
  166. package/dist/http/server-tuning.js +0 -45
  167. package/dist/http/server.d.ts +0 -3
  168. package/dist/http/server.d.ts.map +0 -1
  169. package/dist/http/server.js +0 -291
  170. package/dist/http/server.js.map +0 -1
  171. package/dist/http/session-cleanup.d.ts +0 -2
  172. package/dist/http/session-cleanup.d.ts.map +0 -1
  173. package/dist/http/session-cleanup.js +0 -40
  174. package/dist/http/session-cleanup.js.map +0 -1
  175. package/dist/http/sessions.d.ts +0 -14
  176. package/dist/http/sessions.d.ts.map +0 -1
  177. package/dist/http/sessions.js +0 -63
  178. package/dist/http/sessions.js.map +0 -1
  179. package/dist/middleware/error-handler.d.ts +0 -2
  180. package/dist/middleware/error-handler.d.ts.map +0 -1
  181. package/dist/middleware/error-handler.js +0 -56
  182. package/dist/middleware/error-handler.js.map +0 -1
  183. package/dist/middleware/rate-limiter.d.ts +0 -16
  184. package/dist/middleware/rate-limiter.d.ts.map +0 -1
  185. package/dist/middleware/rate-limiter.js +0 -111
  186. package/dist/middleware/rate-limiter.js.map +0 -1
  187. package/dist/parsers/base-html-element-parser.d.ts +0 -43
  188. package/dist/parsers/base-html-element-parser.d.ts.map +0 -1
  189. package/dist/parsers/base-html-element-parser.js +0 -59
  190. package/dist/parsers/base-html-element-parser.js.map +0 -1
  191. package/dist/parsers/heading-element-parser.d.ts +0 -14
  192. package/dist/parsers/heading-element-parser.d.ts.map +0 -1
  193. package/dist/parsers/heading-element-parser.js +0 -26
  194. package/dist/parsers/heading-element-parser.js.map +0 -1
  195. package/dist/parsers/image-element-parser.d.ts +0 -16
  196. package/dist/parsers/image-element-parser.d.ts.map +0 -1
  197. package/dist/parsers/image-element-parser.js +0 -33
  198. package/dist/parsers/image-element-parser.js.map +0 -1
  199. package/dist/parsers/link-element-parser.d.ts +0 -15
  200. package/dist/parsers/link-element-parser.d.ts.map +0 -1
  201. package/dist/parsers/link-element-parser.js +0 -28
  202. package/dist/parsers/link-element-parser.js.map +0 -1
  203. package/dist/parsers/open-graph-parser.d.ts +0 -17
  204. package/dist/parsers/open-graph-parser.d.ts.map +0 -1
  205. package/dist/parsers/open-graph-parser.js +0 -41
  206. package/dist/parsers/open-graph-parser.js.map +0 -1
  207. package/dist/parsers/schema-org-parser.d.ts +0 -17
  208. package/dist/parsers/schema-org-parser.d.ts.map +0 -1
  209. package/dist/parsers/schema-org-parser.js +0 -32
  210. package/dist/parsers/schema-org-parser.js.map +0 -1
  211. package/dist/parsers/standard-meta-parser.d.ts +0 -18
  212. package/dist/parsers/standard-meta-parser.d.ts.map +0 -1
  213. package/dist/parsers/standard-meta-parser.js +0 -32
  214. package/dist/parsers/standard-meta-parser.js.map +0 -1
  215. package/dist/parsers/twitter-card-parser.d.ts +0 -17
  216. package/dist/parsers/twitter-card-parser.d.ts.map +0 -1
  217. package/dist/parsers/twitter-card-parser.js +0 -41
  218. package/dist/parsers/twitter-card-parser.js.map +0 -1
  219. package/dist/prompts/index.d.ts +0 -3
  220. package/dist/prompts/index.d.ts.map +0 -1
  221. package/dist/prompts/index.js +0 -73
  222. package/dist/prompts/index.js.map +0 -1
  223. package/dist/resources/cached-content-params.d.ts +0 -5
  224. package/dist/resources/cached-content-params.js +0 -36
  225. package/dist/resources/cached-content.d.ts +0 -2
  226. package/dist/resources/cached-content.d.ts.map +0 -1
  227. package/dist/resources/cached-content.js +0 -132
  228. package/dist/resources/cached-content.js.map +0 -1
  229. package/dist/resources/index.d.ts +0 -2
  230. package/dist/resources/index.d.ts.map +0 -1
  231. package/dist/resources/index.js +0 -4
  232. package/dist/resources/index.js.map +0 -1
  233. package/dist/server.d.ts +0 -3
  234. package/dist/server.d.ts.map +0 -1
  235. package/dist/server.js +0 -94
  236. package/dist/server.js.map +0 -1
  237. package/dist/services/cache-events.d.ts +0 -8
  238. package/dist/services/cache-events.js +0 -19
  239. package/dist/services/cache-keys.d.ts +0 -7
  240. package/dist/services/cache-keys.js +0 -57
  241. package/dist/services/cache.d.ts +0 -17
  242. package/dist/services/cache.d.ts.map +0 -1
  243. package/dist/services/cache.js +0 -145
  244. package/dist/services/cache.js.map +0 -1
  245. package/dist/services/cache.service.d.ts +0 -52
  246. package/dist/services/cache.service.d.ts.map +0 -1
  247. package/dist/services/cache.service.js +0 -113
  248. package/dist/services/cache.service.js.map +0 -1
  249. package/dist/services/card-extractor.d.ts +0 -6
  250. package/dist/services/card-extractor.d.ts.map +0 -1
  251. package/dist/services/card-extractor.js +0 -199
  252. package/dist/services/card-extractor.js.map +0 -1
  253. package/dist/services/context.d.ts +0 -10
  254. package/dist/services/context.d.ts.map +0 -1
  255. package/dist/services/context.js +0 -14
  256. package/dist/services/context.js.map +0 -1
  257. package/dist/services/extractor.d.ts +0 -5
  258. package/dist/services/extractor.d.ts.map +0 -1
  259. package/dist/services/extractor.js +0 -142
  260. package/dist/services/extractor.js.map +0 -1
  261. package/dist/services/extractor.service.d.ts +0 -18
  262. package/dist/services/extractor.service.d.ts.map +0 -1
  263. package/dist/services/extractor.service.js +0 -75
  264. package/dist/services/extractor.service.js.map +0 -1
  265. package/dist/services/fetcher/agents.d.ts +0 -3
  266. package/dist/services/fetcher/agents.d.ts.map +0 -1
  267. package/dist/services/fetcher/agents.js +0 -100
  268. package/dist/services/fetcher/agents.js.map +0 -1
  269. package/dist/services/fetcher/dns-selection.d.ts +0 -2
  270. package/dist/services/fetcher/dns-selection.js +0 -72
  271. package/dist/services/fetcher/errors.d.ts +0 -4
  272. package/dist/services/fetcher/errors.d.ts.map +0 -1
  273. package/dist/services/fetcher/errors.js +0 -70
  274. package/dist/services/fetcher/errors.js.map +0 -1
  275. package/dist/services/fetcher/headers.d.ts +0 -2
  276. package/dist/services/fetcher/headers.d.ts.map +0 -1
  277. package/dist/services/fetcher/headers.js +0 -6
  278. package/dist/services/fetcher/headers.js.map +0 -1
  279. package/dist/services/fetcher/interceptors.d.ts +0 -10
  280. package/dist/services/fetcher/interceptors.d.ts.map +0 -1
  281. package/dist/services/fetcher/interceptors.js +0 -108
  282. package/dist/services/fetcher/interceptors.js.map +0 -1
  283. package/dist/services/fetcher/redirects.d.ts +0 -4
  284. package/dist/services/fetcher/redirects.d.ts.map +0 -1
  285. package/dist/services/fetcher/redirects.js +0 -78
  286. package/dist/services/fetcher/redirects.js.map +0 -1
  287. package/dist/services/fetcher/response.d.ts +0 -4
  288. package/dist/services/fetcher/response.d.ts.map +0 -1
  289. package/dist/services/fetcher/response.js +0 -104
  290. package/dist/services/fetcher/response.js.map +0 -1
  291. package/dist/services/fetcher/retry-policy.d.ts +0 -1
  292. package/dist/services/fetcher/retry-policy.d.ts.map +0 -1
  293. package/dist/services/fetcher/retry-policy.js +0 -131
  294. package/dist/services/fetcher/retry-policy.js.map +0 -1
  295. package/dist/services/fetcher.d.ts +0 -25
  296. package/dist/services/fetcher.d.ts.map +0 -1
  297. package/dist/services/fetcher.js +0 -607
  298. package/dist/services/fetcher.js.map +0 -1
  299. package/dist/services/fetcher.service.d.ts +0 -18
  300. package/dist/services/fetcher.service.d.ts.map +0 -1
  301. package/dist/services/fetcher.service.js +0 -122
  302. package/dist/services/fetcher.service.js.map +0 -1
  303. package/dist/services/fifo-queue.d.ts +0 -8
  304. package/dist/services/fifo-queue.js +0 -25
  305. package/dist/services/logger.d.ts +0 -5
  306. package/dist/services/logger.d.ts.map +0 -1
  307. package/dist/services/logger.js +0 -52
  308. package/dist/services/logger.js.map +0 -1
  309. package/dist/services/logger.service.d.ts +0 -5
  310. package/dist/services/logger.service.d.ts.map +0 -1
  311. package/dist/services/logger.service.js +0 -57
  312. package/dist/services/logger.service.js.map +0 -1
  313. package/dist/services/metadata-collector.d.ts +0 -2
  314. package/dist/services/metadata-collector.js +0 -80
  315. package/dist/services/parser.d.ts +0 -6
  316. package/dist/services/parser.d.ts.map +0 -1
  317. package/dist/services/parser.js +0 -278
  318. package/dist/services/parser.js.map +0 -1
  319. package/dist/services/parser.service.d.ts +0 -42
  320. package/dist/services/parser.service.d.ts.map +0 -1
  321. package/dist/services/parser.service.js +0 -209
  322. package/dist/services/parser.service.js.map +0 -1
  323. package/dist/services/session-manager.d.ts +0 -18
  324. package/dist/services/session-manager.d.ts.map +0 -1
  325. package/dist/services/session-manager.js +0 -73
  326. package/dist/services/session-manager.js.map +0 -1
  327. package/dist/services/telemetry.d.ts +0 -19
  328. package/dist/services/telemetry.js +0 -43
  329. package/dist/services/transform-worker-pool.d.ts +0 -11
  330. package/dist/services/transform-worker-pool.js +0 -244
  331. package/dist/services/transform-worker-types.d.ts +0 -32
  332. package/dist/services/transform-worker-types.js +0 -14
  333. package/dist/strategies/exponential-backoff-strategy.d.ts +0 -13
  334. package/dist/strategies/exponential-backoff-strategy.d.ts.map +0 -1
  335. package/dist/strategies/exponential-backoff-strategy.js +0 -32
  336. package/dist/strategies/exponential-backoff-strategy.js.map +0 -1
  337. package/dist/tools/handlers/fetch-links/link-extractor.d.ts +0 -4
  338. package/dist/tools/handlers/fetch-links/link-extractor.d.ts.map +0 -1
  339. package/dist/tools/handlers/fetch-links/link-extractor.js +0 -159
  340. package/dist/tools/handlers/fetch-links/link-extractor.js.map +0 -1
  341. package/dist/tools/handlers/fetch-links.tool.d.ts +0 -5
  342. package/dist/tools/handlers/fetch-links.tool.d.ts.map +0 -1
  343. package/dist/tools/handlers/fetch-links.tool.js +0 -98
  344. package/dist/tools/handlers/fetch-links.tool.js.map +0 -1
  345. package/dist/tools/handlers/fetch-markdown.tool.d.ts +0 -11
  346. package/dist/tools/handlers/fetch-markdown.tool.d.ts.map +0 -1
  347. package/dist/tools/handlers/fetch-markdown.tool.js +0 -97
  348. package/dist/tools/handlers/fetch-markdown.tool.js.map +0 -1
  349. package/dist/tools/handlers/fetch-single.shared.d.ts +0 -31
  350. package/dist/tools/handlers/fetch-single.shared.d.ts.map +0 -1
  351. package/dist/tools/handlers/fetch-single.shared.js +0 -223
  352. package/dist/tools/handlers/fetch-single.shared.js.map +0 -1
  353. package/dist/tools/handlers/fetch-url.tool.d.ts +0 -10
  354. package/dist/tools/handlers/fetch-url.tool.d.ts.map +0 -1
  355. package/dist/tools/handlers/fetch-url.tool.js +0 -119
  356. package/dist/tools/handlers/fetch-url.tool.js.map +0 -1
  357. package/dist/tools/handlers/fetch-urls/processor.d.ts +0 -13
  358. package/dist/tools/handlers/fetch-urls/processor.d.ts.map +0 -1
  359. package/dist/tools/handlers/fetch-urls/processor.js +0 -153
  360. package/dist/tools/handlers/fetch-urls/processor.js.map +0 -1
  361. package/dist/tools/handlers/fetch-urls/response.d.ts +0 -3
  362. package/dist/tools/handlers/fetch-urls/response.d.ts.map +0 -1
  363. package/dist/tools/handlers/fetch-urls/response.js +0 -79
  364. package/dist/tools/handlers/fetch-urls/response.js.map +0 -1
  365. package/dist/tools/handlers/fetch-urls/validation.d.ts +0 -5
  366. package/dist/tools/handlers/fetch-urls/validation.d.ts.map +0 -1
  367. package/dist/tools/handlers/fetch-urls/validation.js +0 -18
  368. package/dist/tools/handlers/fetch-urls/validation.js.map +0 -1
  369. package/dist/tools/handlers/fetch-urls.tool.d.ts +0 -5
  370. package/dist/tools/handlers/fetch-urls.tool.d.ts.map +0 -1
  371. package/dist/tools/handlers/fetch-urls.tool.js +0 -124
  372. package/dist/tools/handlers/fetch-urls.tool.js.map +0 -1
  373. package/dist/tools/index.d.ts +0 -3
  374. package/dist/tools/index.d.ts.map +0 -1
  375. package/dist/tools/index.js +0 -37
  376. package/dist/tools/index.js.map +0 -1
  377. package/dist/tools/schemas.d.ts +0 -12
  378. package/dist/tools/schemas.d.ts.map +0 -1
  379. package/dist/tools/schemas.js +0 -21
  380. package/dist/tools/schemas.js.map +0 -1
  381. package/dist/tools/utils/cache-vary.d.ts +0 -1
  382. package/dist/tools/utils/cache-vary.d.ts.map +0 -1
  383. package/dist/tools/utils/cache-vary.js +0 -12
  384. package/dist/tools/utils/cache-vary.js.map +0 -1
  385. package/dist/tools/utils/cached-markdown.d.ts +0 -5
  386. package/dist/tools/utils/cached-markdown.js +0 -46
  387. package/dist/tools/utils/common.d.ts +0 -5
  388. package/dist/tools/utils/common.d.ts.map +0 -1
  389. package/dist/tools/utils/common.js +0 -42
  390. package/dist/tools/utils/common.js.map +0 -1
  391. package/dist/tools/utils/content-shaping.d.ts +0 -4
  392. package/dist/tools/utils/content-shaping.js +0 -67
  393. package/dist/tools/utils/content-transform-async.d.ts +0 -6
  394. package/dist/tools/utils/content-transform-async.js +0 -33
  395. package/dist/tools/utils/content-transform-core.d.ts +0 -5
  396. package/dist/tools/utils/content-transform-core.js +0 -180
  397. package/dist/tools/utils/content-transform-workers.d.ts +0 -1
  398. package/dist/tools/utils/content-transform-workers.js +0 -1
  399. package/dist/tools/utils/content-transform.d.ts +0 -3
  400. package/dist/tools/utils/content-transform.d.ts.map +0 -1
  401. package/dist/tools/utils/content-transform.js +0 -41
  402. package/dist/tools/utils/content-transform.js.map +0 -1
  403. package/dist/tools/utils/fetch-pipeline.d.ts +0 -2
  404. package/dist/tools/utils/fetch-pipeline.d.ts.map +0 -1
  405. package/dist/tools/utils/fetch-pipeline.js +0 -98
  406. package/dist/tools/utils/fetch-pipeline.js.map +0 -1
  407. package/dist/tools/utils/frontmatter.d.ts +0 -3
  408. package/dist/tools/utils/frontmatter.js +0 -73
  409. package/dist/tools/utils/index.d.ts +0 -4
  410. package/dist/tools/utils/index.d.ts.map +0 -1
  411. package/dist/tools/utils/index.js +0 -3
  412. package/dist/tools/utils/index.js.map +0 -1
  413. package/dist/tools/utils/inline-content.d.ts +0 -10
  414. package/dist/tools/utils/inline-content.d.ts.map +0 -1
  415. package/dist/tools/utils/inline-content.js +0 -35
  416. package/dist/tools/utils/inline-content.js.map +0 -1
  417. package/dist/tools/utils/markdown-heuristics.d.ts +0 -1
  418. package/dist/tools/utils/markdown-heuristics.js +0 -19
  419. package/dist/tools/utils/markdown-signals.d.ts +0 -1
  420. package/dist/tools/utils/markdown-signals.js +0 -19
  421. package/dist/tools/utils/markdown-toc.d.ts +0 -3
  422. package/dist/tools/utils/markdown-toc.d.ts.map +0 -1
  423. package/dist/tools/utils/markdown-toc.js +0 -35
  424. package/dist/tools/utils/markdown-toc.js.map +0 -1
  425. package/dist/tools/utils/raw-markdown-frontmatter.d.ts +0 -3
  426. package/dist/tools/utils/raw-markdown-frontmatter.js +0 -73
  427. package/dist/tools/utils/raw-markdown.d.ts +0 -6
  428. package/dist/tools/utils/raw-markdown.js +0 -149
  429. package/dist/tools/utils/response-builder.d.ts +0 -3
  430. package/dist/tools/utils/response-builder.d.ts.map +0 -1
  431. package/dist/tools/utils/response-builder.js +0 -24
  432. package/dist/tools/utils/response-builder.js.map +0 -1
  433. package/dist/tools/utils/tool-response.d.ts +0 -9
  434. package/dist/tools/utils/tool-response.d.ts.map +0 -1
  435. package/dist/tools/utils/tool-response.js +0 -19
  436. package/dist/tools/utils/tool-response.js.map +0 -1
  437. package/dist/transformers/jsonl.transformer.d.ts +0 -2
  438. package/dist/transformers/jsonl.transformer.d.ts.map +0 -1
  439. package/dist/transformers/jsonl.transformer.js +0 -75
  440. package/dist/transformers/jsonl.transformer.js.map +0 -1
  441. package/dist/transformers/markdown/fenced-code-rule.d.ts +0 -2
  442. package/dist/transformers/markdown/fenced-code-rule.js +0 -38
  443. package/dist/transformers/markdown/frontmatter.d.ts +0 -2
  444. package/dist/transformers/markdown/frontmatter.js +0 -45
  445. package/dist/transformers/markdown/noise-rule.d.ts +0 -2
  446. package/dist/transformers/markdown/noise-rule.js +0 -80
  447. package/dist/transformers/markdown/turndown-instance.d.ts +0 -2
  448. package/dist/transformers/markdown/turndown-instance.js +0 -19
  449. package/dist/transformers/markdown.d.ts +0 -5
  450. package/dist/transformers/markdown.js +0 -314
  451. package/dist/transformers/markdown.transformer.d.ts +0 -2
  452. package/dist/transformers/markdown.transformer.d.ts.map +0 -1
  453. package/dist/transformers/markdown.transformer.js +0 -14
  454. package/dist/transformers/markdown.transformer.js.map +0 -1
  455. package/dist/types/content.types.d.ts +0 -63
  456. package/dist/types/content.types.d.ts.map +0 -1
  457. package/dist/types/content.types.js +0 -2
  458. package/dist/types/content.types.js.map +0 -1
  459. package/dist/types/index.d.ts +0 -2
  460. package/dist/types/index.d.ts.map +0 -1
  461. package/dist/types/index.js +0 -2
  462. package/dist/types/index.js.map +0 -1
  463. package/dist/types/schemas.d.ts +0 -49
  464. package/dist/types/schemas.d.ts.map +0 -1
  465. package/dist/types/schemas.js +0 -5
  466. package/dist/types/schemas.js.map +0 -1
  467. package/dist/utils/cached-payload.d.ts +0 -7
  468. package/dist/utils/cached-payload.js +0 -36
  469. package/dist/utils/cancellation.d.ts +0 -1
  470. package/dist/utils/cancellation.js +0 -18
  471. package/dist/utils/code-language-bash.d.ts +0 -1
  472. package/dist/utils/code-language-bash.js +0 -48
  473. package/dist/utils/code-language-core.d.ts +0 -2
  474. package/dist/utils/code-language-core.js +0 -13
  475. package/dist/utils/code-language-detectors.d.ts +0 -5
  476. package/dist/utils/code-language-detectors.js +0 -142
  477. package/dist/utils/code-language-helpers.d.ts +0 -5
  478. package/dist/utils/code-language-helpers.js +0 -62
  479. package/dist/utils/code-language-parsing.d.ts +0 -5
  480. package/dist/utils/code-language-parsing.js +0 -62
  481. package/dist/utils/code-language.d.ts +0 -2
  482. package/dist/utils/code-language.d.ts.map +0 -1
  483. package/dist/utils/code-language.js +0 -260
  484. package/dist/utils/code-language.js.map +0 -1
  485. package/dist/utils/concurrency.d.ts +0 -3
  486. package/dist/utils/concurrency.d.ts.map +0 -1
  487. package/dist/utils/concurrency.js +0 -38
  488. package/dist/utils/concurrency.js.map +0 -1
  489. package/dist/utils/content-cleaner.d.ts +0 -5
  490. package/dist/utils/content-cleaner.d.ts.map +0 -1
  491. package/dist/utils/content-cleaner.js +0 -77
  492. package/dist/utils/content-cleaner.js.map +0 -1
  493. package/dist/utils/crypto.d.ts +0 -2
  494. package/dist/utils/crypto.d.ts.map +0 -1
  495. package/dist/utils/crypto.js +0 -32
  496. package/dist/utils/crypto.js.map +0 -1
  497. package/dist/utils/download-url.d.ts +0 -16
  498. package/dist/utils/download-url.d.ts.map +0 -1
  499. package/dist/utils/download-url.js +0 -30
  500. package/dist/utils/download-url.js.map +0 -1
  501. package/dist/utils/error-details.d.ts +0 -3
  502. package/dist/utils/error-details.js +0 -12
  503. package/dist/utils/error-utils.d.ts +0 -3
  504. package/dist/utils/error-utils.d.ts.map +0 -1
  505. package/dist/utils/error-utils.js +0 -12
  506. package/dist/utils/error-utils.js.map +0 -1
  507. package/dist/utils/filename-generator.d.ts +0 -1
  508. package/dist/utils/filename-generator.d.ts.map +0 -1
  509. package/dist/utils/filename-generator.js +0 -81
  510. package/dist/utils/filename-generator.js.map +0 -1
  511. package/dist/utils/guards.d.ts +0 -1
  512. package/dist/utils/guards.js +0 -3
  513. package/dist/utils/header-normalizer.d.ts +0 -5
  514. package/dist/utils/header-normalizer.d.ts.map +0 -1
  515. package/dist/utils/header-normalizer.js +0 -31
  516. package/dist/utils/header-normalizer.js.map +0 -1
  517. package/dist/utils/host-normalizer.d.ts +0 -1
  518. package/dist/utils/host-normalizer.js +0 -37
  519. package/dist/utils/html-truncator.d.ts +0 -1
  520. package/dist/utils/html-truncator.d.ts.map +0 -1
  521. package/dist/utils/html-truncator.js +0 -13
  522. package/dist/utils/html-truncator.js.map +0 -1
  523. package/dist/utils/ip-address.d.ts +0 -4
  524. package/dist/utils/ip-address.js +0 -6
  525. package/dist/utils/language-detector.d.ts +0 -2
  526. package/dist/utils/language-detector.d.ts.map +0 -1
  527. package/dist/utils/language-detector.js +0 -39
  528. package/dist/utils/language-detector.js.map +0 -1
  529. package/dist/utils/sanitizer.d.ts +0 -2
  530. package/dist/utils/sanitizer.d.ts.map +0 -1
  531. package/dist/utils/sanitizer.js +0 -20
  532. package/dist/utils/sanitizer.js.map +0 -1
  533. package/dist/utils/tool-error-handler.d.ts +0 -3
  534. package/dist/utils/tool-error-handler.d.ts.map +0 -1
  535. package/dist/utils/tool-error-handler.js +0 -31
  536. package/dist/utils/tool-error-handler.js.map +0 -1
  537. package/dist/utils/url-redactor.d.ts +0 -1
  538. package/dist/utils/url-redactor.js +0 -13
  539. package/dist/utils/url-sanitizer.d.ts +0 -2
  540. package/dist/utils/url-sanitizer.d.ts.map +0 -1
  541. package/dist/utils/url-sanitizer.js +0 -12
  542. package/dist/utils/url-sanitizer.js.map +0 -1
  543. package/dist/utils/url-transformer.d.ts +0 -7
  544. package/dist/utils/url-transformer.js +0 -147
  545. package/dist/utils/url-validator.d.ts +0 -6
  546. package/dist/utils/url-validator.d.ts.map +0 -1
  547. package/dist/utils/url-validator.js +0 -156
  548. package/dist/utils/url-validator.js.map +0 -1
  549. package/dist/workers/content-transform.worker.d.ts +0 -1
  550. package/dist/workers/content-transform.worker.js +0 -40
@@ -1,41 +0,0 @@
1
- import { randomUUID } from 'node:crypto';
2
- import { StreamableHTTPServerTransport } from '@modelcontextprotocol/sdk/server/streamableHttp.js';
3
- import { config } from '../config/index.js';
4
- import { logWarn } from '../services/logger.js';
5
- import { getErrorMessage } from '../utils/error-details.js';
6
- function startSessionInitTimeout({ transport, tracker, clearInitTimeout, timeoutMs, }) {
7
- if (timeoutMs <= 0)
8
- return null;
9
- const timeout = setTimeout(() => {
10
- clearInitTimeout();
11
- if (tracker.isInitialized())
12
- return;
13
- tracker.releaseSlot();
14
- void transport.close().catch((error) => {
15
- logWarn('Failed to close stalled session', {
16
- error: getErrorMessage(error),
17
- });
18
- });
19
- logWarn('Session initialization timed out', { timeoutMs });
20
- }, timeoutMs);
21
- timeout.unref();
22
- return timeout;
23
- }
24
- export function createSessionTransport({ tracker, timeoutController, }) {
25
- const transport = new StreamableHTTPServerTransport({
26
- sessionIdGenerator: () => randomUUID(),
27
- });
28
- transport.onclose = () => {
29
- timeoutController.clear();
30
- if (!tracker.isInitialized()) {
31
- tracker.releaseSlot();
32
- }
33
- };
34
- timeoutController.set(startSessionInitTimeout({
35
- transport,
36
- tracker,
37
- clearInitTimeout: timeoutController.clear,
38
- timeoutMs: config.server.sessionInitTimeoutMs,
39
- }));
40
- return transport;
41
- }
@@ -1,7 +0,0 @@
1
- import type { StreamableHTTPServerTransport } from '@modelcontextprotocol/sdk/server/streamableHttp.js';
2
- import type { Transport } from '@modelcontextprotocol/sdk/shared/transport.js';
3
- export declare function createTimeoutController(): {
4
- clear: () => void;
5
- set: (timeout: NodeJS.Timeout | null) => void;
6
- };
7
- export declare function createTransportAdapter(transport: StreamableHTTPServerTransport): Transport;
@@ -1,57 +0,0 @@
1
- export function createTimeoutController() {
2
- let initTimeout = null;
3
- return {
4
- clear: () => {
5
- if (!initTimeout)
6
- return;
7
- clearTimeout(initTimeout);
8
- initTimeout = null;
9
- },
10
- set: (timeout) => {
11
- initTimeout = timeout;
12
- },
13
- };
14
- }
15
- export function createTransportAdapter(transport) {
16
- const adapter = buildTransportAdapter(transport);
17
- attachTransportAccessors(adapter, transport);
18
- return adapter;
19
- }
20
- function buildTransportAdapter(transport) {
21
- return {
22
- start: () => transport.start(),
23
- send: (message, options) => transport.send(message, options),
24
- close: () => transport.close(),
25
- };
26
- }
27
- function createAccessorDescriptor(getter, setter) {
28
- return {
29
- get: getter,
30
- ...(setter ? { set: setter } : {}),
31
- enumerable: true,
32
- configurable: true,
33
- };
34
- }
35
- function createOnCloseDescriptor(transport) {
36
- return createAccessorDescriptor(() => transport.onclose, (handler) => {
37
- transport.onclose = handler;
38
- });
39
- }
40
- function createOnErrorDescriptor(transport) {
41
- return createAccessorDescriptor(() => transport.onerror, (handler) => {
42
- transport.onerror = handler;
43
- });
44
- }
45
- function createOnMessageDescriptor(transport) {
46
- return createAccessorDescriptor(() => transport.onmessage, (handler) => {
47
- transport.onmessage = handler;
48
- });
49
- }
50
- function attachTransportAccessors(adapter, transport) {
51
- Object.defineProperties(adapter, {
52
- onclose: createOnCloseDescriptor(transport),
53
- onerror: createOnErrorDescriptor(transport),
54
- onmessage: createOnMessageDescriptor(transport),
55
- sessionId: createAccessorDescriptor(() => transport.sessionId),
56
- });
57
- }
@@ -1,5 +0,0 @@
1
- import type { SessionStore } from './sessions.js';
2
- export interface McpSessionOptions {
3
- readonly sessionStore: SessionStore;
4
- readonly maxSessions: number;
5
- }
@@ -1 +0,0 @@
1
- export {};
@@ -1,10 +0,0 @@
1
- import type { Response } from 'express';
2
- import type { StreamableHTTPServerTransport } from '@modelcontextprotocol/sdk/server/streamableHttp.js';
3
- import type { McpRequestBody } from '../config/types/runtime.js';
4
- import type { McpSessionOptions } from './mcp-session-types.js';
5
- export declare function resolveTransportForPost({ res, body, sessionId, options, }: {
6
- res: Response;
7
- body: McpRequestBody;
8
- sessionId: string | undefined;
9
- options: McpSessionOptions;
10
- }): Promise<StreamableHTTPServerTransport | null>;
@@ -1 +0,0 @@
1
- {"version":3,"file":"mcp-session.d.ts","sourceRoot":"","sources":["../../src/http/mcp-session.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEjD,OAAO,EAAE,6BAA6B,EAAE,MAAM,oDAAoD,CAAC;AAInG,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAejE,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,eAAe,CAAC;AAElD,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;IACpC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AA2KD,wBAAsB,uBAAuB,CAC3C,IAAI,EAAE,OAAO,EACb,GAAG,EAAE,QAAQ,EACb,IAAI,EAAE,cAAc,EACpB,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,6BAA6B,GAAG,IAAI,CAAC,CAa/C;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,YAAY,GAAG,MAAM,CAUhE"}
@@ -1,23 +0,0 @@
1
- import { isInitializeRequest } from '@modelcontextprotocol/sdk/types.js';
2
- import { sendJsonRpcError } from './jsonrpc-http.js';
3
- import { evictExpiredSessions } from './mcp-session-eviction.js';
4
- import { createAndConnectTransport } from './mcp-session-init.js';
5
- import { respondBadRequest } from './mcp-session-slots.js';
6
- export async function resolveTransportForPost({ res, body, sessionId, options, }) {
7
- if (sessionId) {
8
- const existingSession = options.sessionStore.get(sessionId);
9
- if (existingSession) {
10
- options.sessionStore.touch(sessionId);
11
- return existingSession.transport;
12
- }
13
- // Client supplied a session id but it doesn't exist; Streamable HTTP: invalid session IDs => 404.
14
- sendJsonRpcError(res, -32600, 'Session not found', 404);
15
- return null;
16
- }
17
- if (!isInitializeRequest(body)) {
18
- respondBadRequest(res);
19
- return null;
20
- }
21
- evictExpiredSessions(options.sessionStore);
22
- return createAndConnectTransport({ options, res });
23
- }
@@ -1 +0,0 @@
1
- {"version":3,"file":"mcp-session.js","sourceRoot":"","sources":["../../src/http/mcp-session.ts"],"names":[],"mappings":"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"}
@@ -1,41 +0,0 @@
1
- import type { Request, Response } from 'express';
2
- import { StreamableHTTPServerTransport } from '@modelcontextprotocol/sdk/server/streamableHttp.js';
3
- import type { McpRequestBody, SessionEntry } from '../config/types/runtime.js';
4
- export interface SessionStore {
5
- get: (sessionId: string) => SessionEntry | undefined;
6
- touch: (sessionId: string) => void;
7
- set: (sessionId: string, entry: SessionEntry) => void;
8
- remove: (sessionId: string) => SessionEntry | undefined;
9
- size: () => number;
10
- clear: () => SessionEntry[];
11
- evictExpired: () => SessionEntry[];
12
- evictOldest: () => SessionEntry | undefined;
13
- }
14
- export interface McpSessionOptions {
15
- readonly sessionStore: SessionStore;
16
- readonly maxSessions: number;
17
- }
18
- export declare function sendJsonRpcError(res: Response, code: number, message: string, status?: number, id?: string | number | null): void;
19
- export declare function getSessionId(req: Request): string | undefined;
20
- export declare function createSessionStore(sessionTtlMs: number): SessionStore;
21
- export declare function reserveSessionSlot(store: SessionStore, maxSessions: number): boolean;
22
- interface SlotTracker {
23
- readonly releaseSlot: () => void;
24
- readonly markInitialized: () => void;
25
- readonly isInitialized: () => boolean;
26
- }
27
- export declare function createSlotTracker(): SlotTracker;
28
- export declare function ensureSessionCapacity({ store, maxSessions, res, evictOldest, }: {
29
- store: SessionStore;
30
- maxSessions: number;
31
- res: Response;
32
- evictOldest: (store: SessionStore) => boolean;
33
- }): boolean;
34
- export declare function resolveTransportForPost({ res, body, sessionId, options, }: {
35
- res: Response;
36
- body: Pick<McpRequestBody, 'method' | 'id'>;
37
- sessionId: string | undefined;
38
- options: McpSessionOptions;
39
- }): Promise<StreamableHTTPServerTransport | null>;
40
- export declare function startSessionCleanupLoop(store: SessionStore, sessionTtlMs: number): AbortController;
41
- export {};
@@ -1,392 +0,0 @@
1
- import { randomUUID } from 'node:crypto';
2
- import { setInterval as setIntervalPromise } from 'node:timers/promises';
3
- import { StreamableHTTPServerTransport } from '@modelcontextprotocol/sdk/server/streamableHttp.js';
4
- import { isInitializeRequest } from '@modelcontextprotocol/sdk/types.js';
5
- import { config } from '../config/index.js';
6
- import { logError, logInfo, logWarn } from '../services/logger.js';
7
- import { getErrorMessage } from '../utils/error-details.js';
8
- import { createMcpServer } from '../server.js';
9
- export function sendJsonRpcError(res, code, message, status = 400, id = null) {
10
- res.status(status).json({
11
- jsonrpc: '2.0',
12
- error: {
13
- code,
14
- message,
15
- },
16
- id,
17
- });
18
- }
19
- export function getSessionId(req) {
20
- const header = req.headers['mcp-session-id'];
21
- return Array.isArray(header) ? header[0] : header;
22
- }
23
- export function createSessionStore(sessionTtlMs) {
24
- const sessions = new Map();
25
- return {
26
- get: (sessionId) => sessions.get(sessionId),
27
- touch: (sessionId) => {
28
- touchSession(sessions, sessionId);
29
- },
30
- set: (sessionId, entry) => {
31
- sessions.set(sessionId, entry);
32
- },
33
- remove: (sessionId) => removeSession(sessions, sessionId),
34
- size: () => sessions.size,
35
- clear: () => clearSessions(sessions),
36
- evictExpired: () => evictExpiredSessions(sessions, sessionTtlMs),
37
- evictOldest: () => evictOldestSession(sessions),
38
- };
39
- }
40
- function touchSession(sessions, sessionId) {
41
- const session = sessions.get(sessionId);
42
- if (session) {
43
- session.lastSeen = Date.now();
44
- }
45
- }
46
- function removeSession(sessions, sessionId) {
47
- const session = sessions.get(sessionId);
48
- sessions.delete(sessionId);
49
- return session;
50
- }
51
- function clearSessions(sessions) {
52
- const entries = Array.from(sessions.values());
53
- sessions.clear();
54
- return entries;
55
- }
56
- function evictExpiredSessions(sessions, sessionTtlMs) {
57
- const now = Date.now();
58
- const evicted = [];
59
- for (const [id, session] of sessions.entries()) {
60
- if (now - session.lastSeen > sessionTtlMs) {
61
- sessions.delete(id);
62
- evicted.push(session);
63
- }
64
- }
65
- return evicted;
66
- }
67
- function evictOldestSession(sessions) {
68
- let oldestId;
69
- let oldestSeen = Number.POSITIVE_INFINITY;
70
- for (const [id, session] of sessions.entries()) {
71
- if (session.lastSeen < oldestSeen) {
72
- oldestSeen = session.lastSeen;
73
- oldestId = id;
74
- }
75
- }
76
- if (!oldestId)
77
- return undefined;
78
- const session = sessions.get(oldestId);
79
- sessions.delete(oldestId);
80
- return session;
81
- }
82
- let inFlightSessions = 0;
83
- export function reserveSessionSlot(store, maxSessions) {
84
- if (store.size() + inFlightSessions >= maxSessions) {
85
- return false;
86
- }
87
- inFlightSessions += 1;
88
- return true;
89
- }
90
- function releaseSessionSlot() {
91
- if (inFlightSessions > 0) {
92
- inFlightSessions -= 1;
93
- }
94
- }
95
- export function createSlotTracker() {
96
- let slotReleased = false;
97
- let initialized = false;
98
- return {
99
- releaseSlot: () => {
100
- if (slotReleased)
101
- return;
102
- slotReleased = true;
103
- releaseSessionSlot();
104
- },
105
- markInitialized: () => {
106
- initialized = true;
107
- },
108
- isInitialized: () => initialized,
109
- };
110
- }
111
- function isServerAtCapacity(store, maxSessions) {
112
- return store.size() + inFlightSessions >= maxSessions;
113
- }
114
- function tryEvictSlot(store, maxSessions, evictOldest) {
115
- const currentSize = store.size();
116
- const canFreeSlot = currentSize >= maxSessions &&
117
- currentSize - 1 + inFlightSessions < maxSessions;
118
- return canFreeSlot && evictOldest(store);
119
- }
120
- export function ensureSessionCapacity({ store, maxSessions, res, evictOldest, }) {
121
- if (!isServerAtCapacity(store, maxSessions)) {
122
- return true;
123
- }
124
- if (tryEvictSlot(store, maxSessions, evictOldest)) {
125
- return !isServerAtCapacity(store, maxSessions);
126
- }
127
- respondServerBusy(res);
128
- return false;
129
- }
130
- function respondServerBusy(res) {
131
- sendJsonRpcError(res, -32000, 'Server busy: maximum sessions reached', 503, null);
132
- }
133
- function respondBadRequest(res, id) {
134
- sendJsonRpcError(res, -32000, 'Bad Request: Missing session ID or not an initialize request', 400, id);
135
- }
136
- function createTimeoutController() {
137
- let initTimeout = null;
138
- return {
139
- clear: () => {
140
- if (!initTimeout)
141
- return;
142
- clearTimeout(initTimeout);
143
- initTimeout = null;
144
- },
145
- set: (timeout) => {
146
- initTimeout = timeout;
147
- },
148
- };
149
- }
150
- function createTransportAdapter(transport) {
151
- const adapter = buildTransportAdapter(transport);
152
- attachTransportAccessors(adapter, transport);
153
- return adapter;
154
- }
155
- function buildTransportAdapter(transport) {
156
- return {
157
- start: () => transport.start(),
158
- send: (message, options) => transport.send(message, options),
159
- close: () => transport.close(),
160
- };
161
- }
162
- function createAccessorDescriptor(getter, setter) {
163
- return {
164
- get: getter,
165
- ...(setter ? { set: setter } : {}),
166
- enumerable: true,
167
- configurable: true,
168
- };
169
- }
170
- function createOnCloseDescriptor(transport) {
171
- return createAccessorDescriptor(() => transport.onclose, (handler) => {
172
- transport.onclose = handler;
173
- });
174
- }
175
- function createOnErrorDescriptor(transport) {
176
- return createAccessorDescriptor(() => transport.onerror, (handler) => {
177
- transport.onerror = handler;
178
- });
179
- }
180
- function createOnMessageDescriptor(transport) {
181
- return createAccessorDescriptor(() => transport.onmessage, (handler) => {
182
- transport.onmessage = handler;
183
- });
184
- }
185
- function attachTransportAccessors(adapter, transport) {
186
- Object.defineProperties(adapter, {
187
- onclose: createOnCloseDescriptor(transport),
188
- onerror: createOnErrorDescriptor(transport),
189
- onmessage: createOnMessageDescriptor(transport),
190
- sessionId: createAccessorDescriptor(() => transport.sessionId),
191
- });
192
- }
193
- function startSessionInitTimeout({ transport, tracker, clearInitTimeout, timeoutMs, }) {
194
- if (timeoutMs <= 0)
195
- return null;
196
- const timeout = setTimeout(() => {
197
- clearInitTimeout();
198
- if (tracker.isInitialized())
199
- return;
200
- tracker.releaseSlot();
201
- void transport.close().catch((error) => {
202
- logWarn('Failed to close stalled session', {
203
- error: getErrorMessage(error),
204
- });
205
- });
206
- logWarn('Session initialization timed out', { timeoutMs });
207
- }, timeoutMs);
208
- timeout.unref();
209
- return timeout;
210
- }
211
- function createSessionTransport({ tracker, timeoutController, }) {
212
- const transport = new StreamableHTTPServerTransport({
213
- sessionIdGenerator: () => randomUUID(),
214
- });
215
- transport.onclose = () => {
216
- timeoutController.clear();
217
- if (!tracker.isInitialized()) {
218
- tracker.releaseSlot();
219
- }
220
- };
221
- timeoutController.set(startSessionInitTimeout({
222
- transport,
223
- tracker,
224
- clearInitTimeout: timeoutController.clear,
225
- timeoutMs: config.server.sessionInitTimeoutMs,
226
- }));
227
- return transport;
228
- }
229
- async function connectTransportOrThrow({ transport, clearInitTimeout, releaseSlot, }) {
230
- const mcpServer = createMcpServer();
231
- const transportAdapter = createTransportAdapter(transport);
232
- try {
233
- await mcpServer.connect(transportAdapter);
234
- }
235
- catch (error) {
236
- clearInitTimeout();
237
- releaseSlot();
238
- void transport.close().catch((closeError) => {
239
- logWarn('Failed to close transport after connect error', {
240
- error: getErrorMessage(closeError),
241
- });
242
- });
243
- logError('Failed to initialize MCP session', error instanceof Error ? error : undefined);
244
- throw error;
245
- }
246
- }
247
- function evictExpiredSessionsWithClose(store) {
248
- const evicted = store.evictExpired();
249
- for (const session of evicted) {
250
- void session.transport.close().catch((error) => {
251
- logWarn('Failed to close expired session', {
252
- error: getErrorMessage(error),
253
- });
254
- });
255
- }
256
- return evicted.length;
257
- }
258
- function evictOldestSessionWithClose(store) {
259
- const session = store.evictOldest();
260
- if (!session)
261
- return false;
262
- void session.transport.close().catch((error) => {
263
- logWarn('Failed to close evicted session', {
264
- error: getErrorMessage(error),
265
- });
266
- });
267
- return true;
268
- }
269
- function reserveSessionIfPossible({ options, res, }) {
270
- if (!ensureSessionCapacity({
271
- store: options.sessionStore,
272
- maxSessions: options.maxSessions,
273
- res,
274
- evictOldest: evictOldestSessionWithClose,
275
- })) {
276
- return false;
277
- }
278
- if (!reserveSessionSlot(options.sessionStore, options.maxSessions)) {
279
- respondServerBusy(res);
280
- return false;
281
- }
282
- return true;
283
- }
284
- function resolveSessionId({ transport, res, tracker, clearInitTimeout, }) {
285
- const { sessionId } = transport;
286
- if (typeof sessionId !== 'string') {
287
- clearInitTimeout();
288
- tracker.releaseSlot();
289
- respondBadRequest(res, null);
290
- return null;
291
- }
292
- return sessionId;
293
- }
294
- function finalizeSession({ store, transport, sessionId, tracker, clearInitTimeout, }) {
295
- clearInitTimeout();
296
- tracker.markInitialized();
297
- tracker.releaseSlot();
298
- const now = Date.now();
299
- store.set(sessionId, {
300
- transport,
301
- createdAt: now,
302
- lastSeen: now,
303
- });
304
- transport.onclose = () => {
305
- store.remove(sessionId);
306
- logInfo('Session closed');
307
- };
308
- logInfo('Session initialized');
309
- }
310
- async function createAndConnectTransport({ options, res, }) {
311
- if (!reserveSessionIfPossible({ options, res }))
312
- return null;
313
- const tracker = createSlotTracker();
314
- const timeoutController = createTimeoutController();
315
- const transport = createSessionTransport({ tracker, timeoutController });
316
- await connectTransportOrThrow({
317
- transport,
318
- clearInitTimeout: timeoutController.clear,
319
- releaseSlot: tracker.releaseSlot,
320
- });
321
- const sessionId = resolveSessionId({
322
- transport,
323
- res,
324
- tracker,
325
- clearInitTimeout: timeoutController.clear,
326
- });
327
- if (!sessionId)
328
- return null;
329
- finalizeSession({
330
- store: options.sessionStore,
331
- transport,
332
- sessionId,
333
- tracker,
334
- clearInitTimeout: timeoutController.clear,
335
- });
336
- return transport;
337
- }
338
- export async function resolveTransportForPost({ res, body, sessionId, options, }) {
339
- if (sessionId) {
340
- const existingSession = options.sessionStore.get(sessionId);
341
- if (existingSession) {
342
- options.sessionStore.touch(sessionId);
343
- return existingSession.transport;
344
- }
345
- // Client supplied a session id but it doesn't exist; Streamable HTTP: invalid session IDs => 404.
346
- sendJsonRpcError(res, -32600, 'Session not found', 404, body.id ?? null);
347
- return null;
348
- }
349
- if (!isInitializeRequest(body)) {
350
- respondBadRequest(res, body.id ?? null);
351
- return null;
352
- }
353
- evictExpiredSessionsWithClose(options.sessionStore);
354
- return createAndConnectTransport({ options, res });
355
- }
356
- export function startSessionCleanupLoop(store, sessionTtlMs) {
357
- const controller = new AbortController();
358
- void runSessionCleanupLoop(store, sessionTtlMs, controller.signal).catch(handleSessionCleanupError);
359
- return controller;
360
- }
361
- async function runSessionCleanupLoop(store, sessionTtlMs, signal) {
362
- const intervalMs = getCleanupIntervalMs(sessionTtlMs);
363
- for await (const getNow of setIntervalPromise(intervalMs, Date.now, {
364
- signal,
365
- ref: false,
366
- })) {
367
- handleSessionEvictions(store, getNow());
368
- }
369
- }
370
- function getCleanupIntervalMs(sessionTtlMs) {
371
- return Math.min(Math.max(Math.floor(sessionTtlMs / 2), 10000), 60000);
372
- }
373
- function isAbortError(error) {
374
- return error instanceof Error && error.name === 'AbortError';
375
- }
376
- function handleSessionEvictions(store, now) {
377
- const evicted = evictExpiredSessionsWithClose(store);
378
- if (evicted > 0) {
379
- logInfo('Expired sessions evicted', {
380
- evicted,
381
- timestamp: new Date(now).toISOString(),
382
- });
383
- }
384
- }
385
- function handleSessionCleanupError(error) {
386
- if (isAbortError(error)) {
387
- return;
388
- }
389
- logWarn('Session cleanup loop failed', {
390
- error: error instanceof Error ? error.message : 'Unknown error',
391
- });
392
- }
@@ -1,3 +0,0 @@
1
- import type { McpRequestBody } from '../config/types/runtime.js';
2
- export declare function isJsonRpcBatchRequest(body: unknown): boolean;
3
- export declare function isMcpRequestBody(body: unknown): body is McpRequestBody;
@@ -1 +0,0 @@
1
- {"version":3,"file":"mcp-validation.d.ts","sourceRoot":"","sources":["../../src/http/mcp-validation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAMjE,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,IAAI,cAAc,CAWtE"}
@@ -1,14 +0,0 @@
1
- import { z } from 'zod';
2
- const paramsSchema = z.looseObject({});
3
- const mcpRequestSchema = z.looseObject({
4
- jsonrpc: z.literal('2.0'),
5
- method: z.string().min(1),
6
- id: z.union([z.string(), z.number()]).optional(),
7
- params: paramsSchema.optional(),
8
- });
9
- export function isJsonRpcBatchRequest(body) {
10
- return Array.isArray(body);
11
- }
12
- export function isMcpRequestBody(body) {
13
- return mcpRequestSchema.safeParse(body).success;
14
- }
@@ -1 +0,0 @@
1
- {"version":3,"file":"mcp-validation.js","sourceRoot":"","sources":["../../src/http/mcp-validation.ts"],"names":[],"mappings":"AAEA,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,CAAC;AACrD,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,IAAa;IAC5C,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IAElC,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAC7C,MAAM,WAAW,GAAG,MAAM,KAAK,SAAS,IAAI,OAAO,MAAM,KAAK,QAAQ,CAAC;IACvE,MAAM,OAAO,GACX,EAAE,KAAK,SAAS,IAAI,OAAO,EAAE,KAAK,QAAQ,IAAI,OAAO,EAAE,KAAK,QAAQ,CAAC;IACvE,MAAM,YAAY,GAAG,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,KAAK,CAAC;IAChE,MAAM,WAAW,GAAG,MAAM,KAAK,SAAS,IAAI,OAAO,MAAM,KAAK,QAAQ,CAAC;IAEvE,OAAO,WAAW,IAAI,OAAO,IAAI,YAAY,IAAI,WAAW,CAAC;AAC/D,CAAC"}
@@ -1,2 +0,0 @@
1
- import type { Request, Response } from 'express';
2
- export declare function ensureMcpProtocolVersionHeader(req: Request, res: Response): boolean;
@@ -1,31 +0,0 @@
1
- import { sendJsonRpcError } from './jsonrpc-http.js';
2
- const MCP_PROTOCOL_VERSION_HEADER = 'mcp-protocol-version';
3
- const MCP_PROTOCOL_VERSIONS = {
4
- defaultVersion: '2025-03-26',
5
- supported: new Set(['2025-03-26', '2025-11-25']),
6
- };
7
- function getHeaderValue(req, headerNameLower) {
8
- const value = req.headers[headerNameLower];
9
- if (typeof value === 'string')
10
- return value;
11
- if (Array.isArray(value))
12
- return value[0] ?? null;
13
- return null;
14
- }
15
- function setHeaderValue(req, headerNameLower, value) {
16
- // Express exposes req.headers as a plain object, but the type is readonly-ish.
17
- req.headers[headerNameLower] = value;
18
- }
19
- export function ensureMcpProtocolVersionHeader(req, res) {
20
- const raw = getHeaderValue(req, MCP_PROTOCOL_VERSION_HEADER);
21
- const version = raw?.trim();
22
- if (!version) {
23
- setHeaderValue(req, MCP_PROTOCOL_VERSION_HEADER, MCP_PROTOCOL_VERSIONS.defaultVersion);
24
- return true;
25
- }
26
- if (!MCP_PROTOCOL_VERSIONS.supported.has(version)) {
27
- sendJsonRpcError(res, -32600, `Unsupported MCP-Protocol-Version: ${version}`, 400);
28
- return false;
29
- }
30
- return true;
31
- }
@@ -1,12 +0,0 @@
1
- import type { NextFunction, Request, Response } from 'express';
2
- import type { RateLimitEntry, RateLimiterOptions } from '../config/types/runtime.js';
3
- interface RateLimitConfig extends RateLimiterOptions {
4
- enabled: boolean;
5
- }
6
- interface RateLimitMiddlewareResult {
7
- middleware: (req: Request, res: Response, next: NextFunction) => void;
8
- stop: () => void;
9
- store: Map<string, RateLimitEntry>;
10
- }
11
- export declare function createRateLimitMiddleware(options: RateLimitConfig): RateLimitMiddlewareResult;
12
- export {};