mcp-auth-server 0.0.0-stage → 0.1.1

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 (476) hide show
  1. package/README.md +207 -2
  2. package/bin/keygen.mjs +26 -0
  3. package/lib/adapters/express/express.middleware.d.ts +4 -0
  4. package/lib/adapters/express/express.middleware.js +23 -0
  5. package/lib/adapters/express/express.middleware.js.map +1 -0
  6. package/lib/adapters/fastify/fastify.plugin.d.ts +4 -0
  7. package/lib/adapters/fastify/fastify.plugin.js +32 -0
  8. package/lib/adapters/fastify/fastify.plugin.js.map +1 -0
  9. package/lib/adapters/fetch/create.fetch.handler.d.ts +3 -0
  10. package/lib/adapters/fetch/create.fetch.handler.js +13 -0
  11. package/lib/adapters/fetch/create.fetch.handler.js.map +1 -0
  12. package/lib/adapters/fetch/to.http.request.d.ts +3 -0
  13. package/lib/adapters/fetch/to.http.request.js +22 -0
  14. package/lib/adapters/fetch/to.http.request.js.map +1 -0
  15. package/lib/adapters/fetch/to.response.d.ts +3 -0
  16. package/lib/adapters/fetch/to.response.js +10 -0
  17. package/lib/adapters/fetch/to.response.js.map +1 -0
  18. package/lib/adapters/koa/koa.middleware.d.ts +4 -0
  19. package/lib/adapters/koa/koa.middleware.js +19 -0
  20. package/lib/adapters/koa/koa.middleware.js.map +1 -0
  21. package/lib/adapters/node/create.node.handler.d.ts +4 -0
  22. package/lib/adapters/node/create.node.handler.js +16 -0
  23. package/lib/adapters/node/create.node.handler.js.map +1 -0
  24. package/lib/adapters/node/node.ssrf.guard.d.ts +2 -0
  25. package/lib/adapters/node/node.ssrf.guard.js +16 -0
  26. package/lib/adapters/node/node.ssrf.guard.js.map +1 -0
  27. package/lib/adapters/node/parse.node.body.d.ts +3 -0
  28. package/lib/adapters/node/parse.node.body.js +16 -0
  29. package/lib/adapters/node/parse.node.body.js.map +1 -0
  30. package/lib/adapters/node/read.node.body.d.ts +3 -0
  31. package/lib/adapters/node/read.node.body.js +10 -0
  32. package/lib/adapters/node/read.node.body.js.map +1 -0
  33. package/lib/adapters/node/to.node.http.request.d.ts +4 -0
  34. package/lib/adapters/node/to.node.http.request.js +20 -0
  35. package/lib/adapters/node/to.node.http.request.js.map +1 -0
  36. package/lib/adapters/node/write.node.response.d.ts +4 -0
  37. package/lib/adapters/node/write.node.response.js +10 -0
  38. package/lib/adapters/node/write.node.response.js.map +1 -0
  39. package/lib/cache/lru.metadata.cache.d.ts +10 -0
  40. package/lib/cache/lru.metadata.cache.js +31 -0
  41. package/lib/cache/lru.metadata.cache.js.map +1 -0
  42. package/lib/functions/body/parse.body.d.ts +2 -0
  43. package/lib/functions/body/parse.body.js +20 -0
  44. package/lib/functions/body/parse.body.js.map +1 -0
  45. package/lib/functions/body/parse.query.d.ts +2 -0
  46. package/lib/functions/body/parse.query.js +16 -0
  47. package/lib/functions/body/parse.query.js.map +1 -0
  48. package/lib/functions/cimd/assert.public.host.d.ts +2 -0
  49. package/lib/functions/cimd/assert.public.host.js +15 -0
  50. package/lib/functions/cimd/assert.public.host.js.map +1 -0
  51. package/lib/functions/cimd/cache.seconds.d.ts +2 -0
  52. package/lib/functions/cimd/cache.seconds.js +16 -0
  53. package/lib/functions/cimd/cache.seconds.js.map +1 -0
  54. package/lib/functions/cimd/create.metadata.resolver.d.ts +5 -0
  55. package/lib/functions/cimd/create.metadata.resolver.js +53 -0
  56. package/lib/functions/cimd/create.metadata.resolver.js.map +1 -0
  57. package/lib/functions/cimd/host.matches.d.ts +2 -0
  58. package/lib/functions/cimd/host.matches.js +5 -0
  59. package/lib/functions/cimd/host.matches.js.map +1 -0
  60. package/lib/functions/cimd/is.metadata.client.id.d.ts +2 -0
  61. package/lib/functions/cimd/is.metadata.client.id.js +14 -0
  62. package/lib/functions/cimd/is.metadata.client.id.js.map +1 -0
  63. package/lib/functions/cimd/is.private.ipv4.d.ts +2 -0
  64. package/lib/functions/cimd/is.private.ipv4.js +18 -0
  65. package/lib/functions/cimd/is.private.ipv4.js.map +1 -0
  66. package/lib/functions/cimd/is.private.ipv6.d.ts +2 -0
  67. package/lib/functions/cimd/is.private.ipv6.js +17 -0
  68. package/lib/functions/cimd/is.private.ipv6.js.map +1 -0
  69. package/lib/functions/cimd/read.limited.d.ts +2 -0
  70. package/lib/functions/cimd/read.limited.js +32 -0
  71. package/lib/functions/cimd/read.limited.js.map +1 -0
  72. package/lib/functions/cimd/validate.metadata.document.d.ts +3 -0
  73. package/lib/functions/cimd/validate.metadata.document.js +25 -0
  74. package/lib/functions/cimd/validate.metadata.document.js.map +1 -0
  75. package/lib/functions/consent/consent.styles.d.ts +2 -0
  76. package/lib/functions/consent/consent.styles.js +20 -0
  77. package/lib/functions/consent/consent.styles.js.map +1 -0
  78. package/lib/functions/consent/escape.html.d.ts +2 -0
  79. package/lib/functions/consent/escape.html.js +5 -0
  80. package/lib/functions/consent/escape.html.js.map +1 -0
  81. package/lib/functions/consent/render.default.consent.d.ts +3 -0
  82. package/lib/functions/consent/render.default.consent.js +50 -0
  83. package/lib/functions/consent/render.default.consent.js.map +1 -0
  84. package/lib/functions/crypto/random.id.d.ts +2 -0
  85. package/lib/functions/crypto/random.id.js +5 -0
  86. package/lib/functions/crypto/random.id.js.map +1 -0
  87. package/lib/functions/crypto/random.token.d.ts +2 -0
  88. package/lib/functions/crypto/random.token.js +9 -0
  89. package/lib/functions/crypto/random.token.js.map +1 -0
  90. package/lib/functions/crypto/sha256.base64.url.d.ts +2 -0
  91. package/lib/functions/crypto/sha256.base64.url.js +10 -0
  92. package/lib/functions/crypto/sha256.base64.url.js.map +1 -0
  93. package/lib/functions/crypto/sha256.digest.d.ts +2 -0
  94. package/lib/functions/crypto/sha256.digest.js +5 -0
  95. package/lib/functions/crypto/sha256.digest.js.map +1 -0
  96. package/lib/functions/crypto/sha256.hex.d.ts +2 -0
  97. package/lib/functions/crypto/sha256.hex.js +9 -0
  98. package/lib/functions/crypto/sha256.hex.js.map +1 -0
  99. package/lib/functions/crypto/to.base64.url.d.ts +2 -0
  100. package/lib/functions/crypto/to.base64.url.js +10 -0
  101. package/lib/functions/crypto/to.base64.url.js.map +1 -0
  102. package/lib/functions/http/form.params.d.ts +2 -0
  103. package/lib/functions/http/form.params.js +5 -0
  104. package/lib/functions/http/form.params.js.map +1 -0
  105. package/lib/functions/http/header.value.d.ts +3 -0
  106. package/lib/functions/http/header.value.js +8 -0
  107. package/lib/functions/http/header.value.js.map +1 -0
  108. package/lib/functions/http/json.response.d.ts +3 -0
  109. package/lib/functions/http/json.response.js +9 -0
  110. package/lib/functions/http/json.response.js.map +1 -0
  111. package/lib/functions/http/oauth.error.response.d.ts +3 -0
  112. package/lib/functions/http/oauth.error.response.js +9 -0
  113. package/lib/functions/http/oauth.error.response.js.map +1 -0
  114. package/lib/functions/http/plain.error.response.d.ts +3 -0
  115. package/lib/functions/http/plain.error.response.js +5 -0
  116. package/lib/functions/http/plain.error.response.js.map +1 -0
  117. package/lib/functions/http/query.param.d.ts +3 -0
  118. package/lib/functions/http/query.param.js +8 -0
  119. package/lib/functions/http/query.param.js.map +1 -0
  120. package/lib/functions/http/redirect.response.d.ts +3 -0
  121. package/lib/functions/http/redirect.response.js +5 -0
  122. package/lib/functions/http/redirect.response.js.map +1 -0
  123. package/lib/functions/http/text.value.d.ts +2 -0
  124. package/lib/functions/http/text.value.js +5 -0
  125. package/lib/functions/http/text.value.js.map +1 -0
  126. package/lib/functions/http/trim.trailing.slashes.d.ts +2 -0
  127. package/lib/functions/http/trim.trailing.slashes.js +10 -0
  128. package/lib/functions/http/trim.trailing.slashes.js.map +1 -0
  129. package/lib/functions/jwt/sign.access.token.d.ts +4 -0
  130. package/lib/functions/jwt/sign.access.token.js +21 -0
  131. package/lib/functions/jwt/sign.access.token.js.map +1 -0
  132. package/lib/functions/jwt/verify.access.token.d.ts +4 -0
  133. package/lib/functions/jwt/verify.access.token.js +16 -0
  134. package/lib/functions/jwt/verify.access.token.js.map +1 -0
  135. package/lib/functions/keys/der.length.d.ts +2 -0
  136. package/lib/functions/keys/der.length.js +12 -0
  137. package/lib/functions/keys/der.length.js.map +1 -0
  138. package/lib/functions/keys/is.rsa.key.d.ts +2 -0
  139. package/lib/functions/keys/is.rsa.key.js +8 -0
  140. package/lib/functions/keys/is.rsa.key.js.map +1 -0
  141. package/lib/functions/keys/normalize.pem.d.ts +2 -0
  142. package/lib/functions/keys/normalize.pem.js +16 -0
  143. package/lib/functions/keys/normalize.pem.js.map +1 -0
  144. package/lib/functions/keys/pkcs1.to.pkcs8.d.ts +2 -0
  145. package/lib/functions/keys/pkcs1.to.pkcs8.js +14 -0
  146. package/lib/functions/keys/pkcs1.to.pkcs8.js.map +1 -0
  147. package/lib/functions/keys/resolve.key.pair.d.ts +3 -0
  148. package/lib/functions/keys/resolve.key.pair.js +27 -0
  149. package/lib/functions/keys/resolve.key.pair.js.map +1 -0
  150. package/lib/functions/keys/signing.key.from.env.d.ts +2 -0
  151. package/lib/functions/keys/signing.key.from.env.js +14 -0
  152. package/lib/functions/keys/signing.key.from.env.js.map +1 -0
  153. package/lib/functions/keys/wrap.pem.d.ts +2 -0
  154. package/lib/functions/keys/wrap.pem.js +11 -0
  155. package/lib/functions/keys/wrap.pem.js.map +1 -0
  156. package/lib/functions/redirect/build.error.redirect.d.ts +2 -0
  157. package/lib/functions/redirect/build.error.redirect.js +9 -0
  158. package/lib/functions/redirect/build.error.redirect.js.map +1 -0
  159. package/lib/functions/redirect/build.redirect.d.ts +2 -0
  160. package/lib/functions/redirect/build.redirect.js +12 -0
  161. package/lib/functions/redirect/build.redirect.js.map +1 -0
  162. package/lib/functions/redirect/describe.redirect.target.d.ts +2 -0
  163. package/lib/functions/redirect/describe.redirect.target.js +8 -0
  164. package/lib/functions/redirect/describe.redirect.target.js.map +1 -0
  165. package/lib/functions/redirect/is.allowed.redirect.uri.d.ts +3 -0
  166. package/lib/functions/redirect/is.allowed.redirect.uri.js +19 -0
  167. package/lib/functions/redirect/is.allowed.redirect.uri.js.map +1 -0
  168. package/lib/functions/redirect/is.loopback.redirect.d.ts +2 -0
  169. package/lib/functions/redirect/is.loopback.redirect.js +13 -0
  170. package/lib/functions/redirect/is.loopback.redirect.js.map +1 -0
  171. package/lib/functions/redirect/is.safe.metadata.redirect.uri.d.ts +2 -0
  172. package/lib/functions/redirect/is.safe.metadata.redirect.uri.js +20 -0
  173. package/lib/functions/redirect/is.safe.metadata.redirect.uri.js.map +1 -0
  174. package/lib/functions/redirect/parse.url.d.ts +2 -0
  175. package/lib/functions/redirect/parse.url.js +14 -0
  176. package/lib/functions/redirect/parse.url.js.map +1 -0
  177. package/lib/functions/server/attach.and.continue.d.ts +6 -0
  178. package/lib/functions/server/attach.and.continue.js +15 -0
  179. package/lib/functions/server/attach.and.continue.js.map +1 -0
  180. package/lib/functions/server/authenticate.request.d.ts +5 -0
  181. package/lib/functions/server/authenticate.request.js +24 -0
  182. package/lib/functions/server/authenticate.request.js.map +1 -0
  183. package/lib/functions/server/awaiting.consent.d.ts +5 -0
  184. package/lib/functions/server/awaiting.consent.js +18 -0
  185. package/lib/functions/server/awaiting.consent.js.map +1 -0
  186. package/lib/functions/server/build.routes.d.ts +4 -0
  187. package/lib/functions/server/build.routes.js +40 -0
  188. package/lib/functions/server/build.routes.js.map +1 -0
  189. package/lib/functions/server/build.upstream.context.d.ts +6 -0
  190. package/lib/functions/server/build.upstream.context.js +11 -0
  191. package/lib/functions/server/build.upstream.context.js.map +1 -0
  192. package/lib/functions/server/challenge.response.d.ts +4 -0
  193. package/lib/functions/server/challenge.response.js +14 -0
  194. package/lib/functions/server/challenge.response.js.map +1 -0
  195. package/lib/functions/server/continue.with.user.d.ts +5 -0
  196. package/lib/functions/server/continue.with.user.js +18 -0
  197. package/lib/functions/server/continue.with.user.js.map +1 -0
  198. package/lib/functions/server/create.client.resolver.d.ts +6 -0
  199. package/lib/functions/server/create.client.resolver.js +26 -0
  200. package/lib/functions/server/create.client.resolver.js.map +1 -0
  201. package/lib/functions/server/create.mcp.auth.context.d.ts +4 -0
  202. package/lib/functions/server/create.mcp.auth.context.js +38 -0
  203. package/lib/functions/server/create.mcp.auth.context.js.map +1 -0
  204. package/lib/functions/server/create.mcp.auth.d.ts +4 -0
  205. package/lib/functions/server/create.mcp.auth.js +25 -0
  206. package/lib/functions/server/create.mcp.auth.js.map +1 -0
  207. package/lib/functions/server/deny.authorization.d.ts +5 -0
  208. package/lib/functions/server/deny.authorization.js +13 -0
  209. package/lib/functions/server/deny.authorization.js.map +1 -0
  210. package/lib/functions/server/exchange.authorization.code.d.ts +4 -0
  211. package/lib/functions/server/exchange.authorization.code.js +32 -0
  212. package/lib/functions/server/exchange.authorization.code.js.map +1 -0
  213. package/lib/functions/server/find.route.d.ts +4 -0
  214. package/lib/functions/server/find.route.js +5 -0
  215. package/lib/functions/server/find.route.js.map +1 -0
  216. package/lib/functions/server/handle.request.d.ts +6 -0
  217. package/lib/functions/server/handle.request.js +21 -0
  218. package/lib/functions/server/handle.request.js.map +1 -0
  219. package/lib/functions/server/has.credentials.d.ts +3 -0
  220. package/lib/functions/server/has.credentials.js +9 -0
  221. package/lib/functions/server/has.credentials.js.map +1 -0
  222. package/lib/functions/server/issue.authorization.code.d.ts +5 -0
  223. package/lib/functions/server/issue.authorization.code.js +24 -0
  224. package/lib/functions/server/issue.authorization.code.js.map +1 -0
  225. package/lib/functions/server/issue.tokens.d.ts +4 -0
  226. package/lib/functions/server/issue.tokens.js +30 -0
  227. package/lib/functions/server/issue.tokens.js.map +1 -0
  228. package/lib/functions/server/load.pending.d.ts +5 -0
  229. package/lib/functions/server/load.pending.js +13 -0
  230. package/lib/functions/server/load.pending.js.map +1 -0
  231. package/lib/functions/server/rotate.refresh.token.d.ts +4 -0
  232. package/lib/functions/server/rotate.refresh.token.js +33 -0
  233. package/lib/functions/server/rotate.refresh.token.js.map +1 -0
  234. package/lib/functions/server/token.failure.d.ts +3 -0
  235. package/lib/functions/server/token.failure.js +9 -0
  236. package/lib/functions/server/token.failure.js.map +1 -0
  237. package/lib/functions/sql/from.better.sqlite3.d.ts +10 -0
  238. package/lib/functions/sql/from.better.sqlite3.js +11 -0
  239. package/lib/functions/sql/from.better.sqlite3.js.map +1 -0
  240. package/lib/functions/sql/from.bun.sqlite.d.ts +7 -0
  241. package/lib/functions/sql/from.bun.sqlite.js +5 -0
  242. package/lib/functions/sql/from.bun.sqlite.js.map +1 -0
  243. package/lib/functions/sql/from.d1.d.ts +11 -0
  244. package/lib/functions/sql/from.d1.js +8 -0
  245. package/lib/functions/sql/from.d1.js.map +1 -0
  246. package/lib/functions/sql/from.node.sqlite.d.ts +7 -0
  247. package/lib/functions/sql/from.node.sqlite.js +5 -0
  248. package/lib/functions/sql/from.node.sqlite.js.map +1 -0
  249. package/lib/functions/sql/from.pg.d.ts +7 -0
  250. package/lib/functions/sql/from.pg.js +5 -0
  251. package/lib/functions/sql/from.pg.js.map +1 -0
  252. package/lib/functions/sql/from.postgres.js.d.ts +5 -0
  253. package/lib/functions/sql/from.postgres.js.js +5 -0
  254. package/lib/functions/sql/from.postgres.js.js.map +1 -0
  255. package/lib/functions/sql/optional.date.d.ts +2 -0
  256. package/lib/functions/sql/optional.date.js +5 -0
  257. package/lib/functions/sql/optional.date.js.map +1 -0
  258. package/lib/functions/sql/optional.number.d.ts +2 -0
  259. package/lib/functions/sql/optional.number.js +5 -0
  260. package/lib/functions/sql/optional.number.js.map +1 -0
  261. package/lib/functions/sql/optional.text.d.ts +2 -0
  262. package/lib/functions/sql/optional.text.js +5 -0
  263. package/lib/functions/sql/optional.text.js.map +1 -0
  264. package/lib/functions/sql/row.to.client.d.ts +4 -0
  265. package/lib/functions/sql/row.to.client.js +18 -0
  266. package/lib/functions/sql/row.to.client.js.map +1 -0
  267. package/lib/functions/sql/row.to.code.d.ts +4 -0
  268. package/lib/functions/sql/row.to.code.js +21 -0
  269. package/lib/functions/sql/row.to.code.js.map +1 -0
  270. package/lib/functions/sql/row.to.pending.d.ts +4 -0
  271. package/lib/functions/sql/row.to.pending.js +21 -0
  272. package/lib/functions/sql/row.to.pending.js.map +1 -0
  273. package/lib/functions/sql/row.to.refresh.token.d.ts +4 -0
  274. package/lib/functions/sql/row.to.refresh.token.js +22 -0
  275. package/lib/functions/sql/row.to.refresh.token.js.map +1 -0
  276. package/lib/functions/sql/sql.schema.d.ts +3 -0
  277. package/lib/functions/sql/sql.schema.js +62 -0
  278. package/lib/functions/sql/sql.schema.js.map +1 -0
  279. package/lib/functions/sql/to.dialect.sql.d.ts +3 -0
  280. package/lib/functions/sql/to.dialect.sql.js +13 -0
  281. package/lib/functions/sql/to.dialect.sql.js.map +1 -0
  282. package/lib/functions/upstream/app.session.upstream.d.ts +4 -0
  283. package/lib/functions/upstream/app.session.upstream.js +18 -0
  284. package/lib/functions/upstream/app.session.upstream.js.map +1 -0
  285. package/lib/functions/upstream/entra.upstream.d.ts +11 -0
  286. package/lib/functions/upstream/entra.upstream.js +16 -0
  287. package/lib/functions/upstream/entra.upstream.js.map +1 -0
  288. package/lib/functions/upstream/oidc.upstream.d.ts +4 -0
  289. package/lib/functions/upstream/oidc.upstream.js +82 -0
  290. package/lib/functions/upstream/oidc.upstream.js.map +1 -0
  291. package/lib/functions/upstream/verify.id.token.d.ts +3 -0
  292. package/lib/functions/upstream/verify.id.token.js +16 -0
  293. package/lib/functions/upstream/verify.id.token.js.map +1 -0
  294. package/lib/handlers/authorization.server.metadata.handler.d.ts +4 -0
  295. package/lib/handlers/authorization.server.metadata.handler.js +24 -0
  296. package/lib/handlers/authorization.server.metadata.handler.js.map +1 -0
  297. package/lib/handlers/authorize.handler.d.ts +5 -0
  298. package/lib/handlers/authorize.handler.js +58 -0
  299. package/lib/handlers/authorize.handler.js.map +1 -0
  300. package/lib/handlers/callback.handler.d.ts +5 -0
  301. package/lib/handlers/callback.handler.js +32 -0
  302. package/lib/handlers/callback.handler.js.map +1 -0
  303. package/lib/handlers/consent.decision.handler.d.ts +5 -0
  304. package/lib/handlers/consent.decision.handler.js +30 -0
  305. package/lib/handlers/consent.decision.handler.js.map +1 -0
  306. package/lib/handlers/consent.page.handler.d.ts +5 -0
  307. package/lib/handlers/consent.page.handler.js +43 -0
  308. package/lib/handlers/consent.page.handler.js.map +1 -0
  309. package/lib/handlers/protected.resource.metadata.handler.d.ts +4 -0
  310. package/lib/handlers/protected.resource.metadata.handler.js +9 -0
  311. package/lib/handlers/protected.resource.metadata.handler.js.map +1 -0
  312. package/lib/handlers/register.handler.d.ts +5 -0
  313. package/lib/handlers/register.handler.js +44 -0
  314. package/lib/handlers/register.handler.js.map +1 -0
  315. package/lib/handlers/resume.handler.d.ts +5 -0
  316. package/lib/handlers/resume.handler.js +25 -0
  317. package/lib/handlers/resume.handler.js.map +1 -0
  318. package/lib/handlers/revoke.handler.d.ts +5 -0
  319. package/lib/handlers/revoke.handler.js +27 -0
  320. package/lib/handlers/revoke.handler.js.map +1 -0
  321. package/lib/handlers/token.handler.d.ts +5 -0
  322. package/lib/handlers/token.handler.js +22 -0
  323. package/lib/handlers/token.handler.js.map +1 -0
  324. package/lib/mcp.auth.entra.d.ts +4 -0
  325. package/lib/mcp.auth.entra.js +11 -0
  326. package/lib/mcp.auth.entra.js.map +1 -0
  327. package/lib/mcp.auth.express.d.ts +4 -0
  328. package/lib/mcp.auth.express.js +11 -0
  329. package/lib/mcp.auth.express.js.map +1 -0
  330. package/lib/mcp.auth.fastify.d.ts +4 -0
  331. package/lib/mcp.auth.fastify.js +11 -0
  332. package/lib/mcp.auth.fastify.js.map +1 -0
  333. package/lib/mcp.auth.fetch.d.ts +6 -0
  334. package/lib/mcp.auth.fetch.js +15 -0
  335. package/lib/mcp.auth.fetch.js.map +1 -0
  336. package/lib/mcp.auth.koa.d.ts +4 -0
  337. package/lib/mcp.auth.koa.js +11 -0
  338. package/lib/mcp.auth.koa.js.map +1 -0
  339. package/lib/mcp.auth.memory.d.ts +4 -0
  340. package/lib/mcp.auth.memory.js +11 -0
  341. package/lib/mcp.auth.memory.js.map +1 -0
  342. package/lib/mcp.auth.mongodb.d.ts +6 -0
  343. package/lib/mcp.auth.mongodb.js +11 -0
  344. package/lib/mcp.auth.mongodb.js.map +1 -0
  345. package/lib/mcp.auth.node.d.ts +9 -0
  346. package/lib/mcp.auth.node.js +21 -0
  347. package/lib/mcp.auth.node.js.map +1 -0
  348. package/lib/mcp.auth.postgres.d.ts +11 -0
  349. package/lib/mcp.auth.postgres.js +20 -0
  350. package/lib/mcp.auth.postgres.js.map +1 -0
  351. package/lib/mcp.auth.server.d.ts +42 -0
  352. package/lib/mcp.auth.server.js +35 -0
  353. package/lib/mcp.auth.server.js.map +1 -0
  354. package/lib/mcp.auth.sqlite.d.ts +13 -0
  355. package/lib/mcp.auth.sqlite.js +24 -0
  356. package/lib/mcp.auth.sqlite.js.map +1 -0
  357. package/lib/storage/memory.storage.d.ts +30 -0
  358. package/lib/storage/memory.storage.js +91 -0
  359. package/lib/storage/memory.storage.js.map +1 -0
  360. package/lib/storage/mongodb.storage.d.ts +41 -0
  361. package/lib/storage/mongodb.storage.js +172 -0
  362. package/lib/storage/mongodb.storage.js.map +1 -0
  363. package/lib/storage/sql.storage.d.ts +35 -0
  364. package/lib/storage/sql.storage.js +128 -0
  365. package/lib/storage/sql.storage.js.map +1 -0
  366. package/lib/types/access.token.input.type.d.ts +9 -0
  367. package/lib/types/access.token.input.type.js +3 -0
  368. package/lib/types/access.token.input.type.js.map +1 -0
  369. package/lib/types/app.session.upstream.options.type.d.ts +7 -0
  370. package/lib/types/app.session.upstream.options.type.js +3 -0
  371. package/lib/types/app.session.upstream.options.type.js.map +1 -0
  372. package/lib/types/authenticate.result.type.d.ts +10 -0
  373. package/lib/types/authenticate.result.type.js +3 -0
  374. package/lib/types/authenticate.result.type.js.map +1 -0
  375. package/lib/types/authenticated.user.type.d.ts +5 -0
  376. package/lib/types/authenticated.user.type.js +3 -0
  377. package/lib/types/authenticated.user.type.js.map +1 -0
  378. package/lib/types/authorization.code.record.type.d.ts +11 -0
  379. package/lib/types/authorization.code.record.type.js +3 -0
  380. package/lib/types/authorization.code.record.type.js.map +1 -0
  381. package/lib/types/cimd.options.type.d.ts +16 -0
  382. package/lib/types/cimd.options.type.js +3 -0
  383. package/lib/types/cimd.options.type.js.map +1 -0
  384. package/lib/types/client.metadata.type.d.ts +7 -0
  385. package/lib/types/client.metadata.type.js +3 -0
  386. package/lib/types/client.metadata.type.js.map +1 -0
  387. package/lib/types/client.record.type.d.ts +11 -0
  388. package/lib/types/client.record.type.js +3 -0
  389. package/lib/types/client.record.type.js.map +1 -0
  390. package/lib/types/consent.model.type.d.ts +15 -0
  391. package/lib/types/consent.model.type.js +3 -0
  392. package/lib/types/consent.model.type.js.map +1 -0
  393. package/lib/types/consent.record.type.d.ts +5 -0
  394. package/lib/types/consent.record.type.js +3 -0
  395. package/lib/types/consent.record.type.js.map +1 -0
  396. package/lib/types/http.request.type.d.ts +9 -0
  397. package/lib/types/http.request.type.js +3 -0
  398. package/lib/types/http.request.type.js.map +1 -0
  399. package/lib/types/http.response.type.d.ts +6 -0
  400. package/lib/types/http.response.type.js +3 -0
  401. package/lib/types/http.response.type.js.map +1 -0
  402. package/lib/types/i.metadata.cache.d.ts +6 -0
  403. package/lib/types/i.metadata.cache.js +3 -0
  404. package/lib/types/i.metadata.cache.js.map +1 -0
  405. package/lib/types/i.storage.d.ts +25 -0
  406. package/lib/types/i.storage.js +3 -0
  407. package/lib/types/i.storage.js.map +1 -0
  408. package/lib/types/i.upstream.d.ts +11 -0
  409. package/lib/types/i.upstream.js +3 -0
  410. package/lib/types/i.upstream.js.map +1 -0
  411. package/lib/types/key.pair.type.d.ts +5 -0
  412. package/lib/types/key.pair.type.js +3 -0
  413. package/lib/types/key.pair.type.js.map +1 -0
  414. package/lib/types/logger.type.d.ts +6 -0
  415. package/lib/types/logger.type.js +3 -0
  416. package/lib/types/logger.type.js.map +1 -0
  417. package/lib/types/mcp.auth.context.type.d.ts +29 -0
  418. package/lib/types/mcp.auth.context.type.js +3 -0
  419. package/lib/types/mcp.auth.context.type.js.map +1 -0
  420. package/lib/types/mcp.auth.options.type.d.ts +39 -0
  421. package/lib/types/mcp.auth.options.type.js +3 -0
  422. package/lib/types/mcp.auth.options.type.js.map +1 -0
  423. package/lib/types/mcp.auth.type.d.ts +14 -0
  424. package/lib/types/mcp.auth.type.js +3 -0
  425. package/lib/types/mcp.auth.type.js.map +1 -0
  426. package/lib/types/metadata.resolution.type.d.ts +9 -0
  427. package/lib/types/metadata.resolution.type.js +3 -0
  428. package/lib/types/metadata.resolution.type.js.map +1 -0
  429. package/lib/types/mongo.storage.options.type.d.ts +13 -0
  430. package/lib/types/mongo.storage.options.type.js +3 -0
  431. package/lib/types/mongo.storage.options.type.js.map +1 -0
  432. package/lib/types/oidc.upstream.options.type.d.ts +9 -0
  433. package/lib/types/oidc.upstream.options.type.js +3 -0
  434. package/lib/types/oidc.upstream.options.type.js.map +1 -0
  435. package/lib/types/pending.authorization.type.d.ts +14 -0
  436. package/lib/types/pending.authorization.type.js +3 -0
  437. package/lib/types/pending.authorization.type.js.map +1 -0
  438. package/lib/types/pending.filter.type.d.ts +5 -0
  439. package/lib/types/pending.filter.type.js +3 -0
  440. package/lib/types/pending.filter.type.js.map +1 -0
  441. package/lib/types/redirect.policy.type.d.ts +5 -0
  442. package/lib/types/redirect.policy.type.js +3 -0
  443. package/lib/types/redirect.policy.type.js.map +1 -0
  444. package/lib/types/refresh.token.record.type.d.ts +11 -0
  445. package/lib/types/refresh.token.record.type.js +3 -0
  446. package/lib/types/refresh.token.record.type.js.map +1 -0
  447. package/lib/types/resolved.client.type.d.ts +7 -0
  448. package/lib/types/resolved.client.type.js +3 -0
  449. package/lib/types/resolved.client.type.js.map +1 -0
  450. package/lib/types/route.name.type.d.ts +2 -0
  451. package/lib/types/route.name.type.js +3 -0
  452. package/lib/types/route.name.type.js.map +1 -0
  453. package/lib/types/route.type.d.ts +10 -0
  454. package/lib/types/route.type.js +3 -0
  455. package/lib/types/route.type.js.map +1 -0
  456. package/lib/types/sql.dialect.type.d.ts +2 -0
  457. package/lib/types/sql.dialect.type.js +3 -0
  458. package/lib/types/sql.dialect.type.js.map +1 -0
  459. package/lib/types/sql.executor.type.d.ts +4 -0
  460. package/lib/types/sql.executor.type.js +3 -0
  461. package/lib/types/sql.executor.type.js.map +1 -0
  462. package/lib/types/sql.storage.options.type.d.ts +4 -0
  463. package/lib/types/sql.storage.options.type.js +3 -0
  464. package/lib/types/sql.storage.options.type.js.map +1 -0
  465. package/lib/types/upstream.begin.type.d.ts +9 -0
  466. package/lib/types/upstream.begin.type.js +3 -0
  467. package/lib/types/upstream.begin.type.js.map +1 -0
  468. package/lib/types/upstream.context.type.d.ts +10 -0
  469. package/lib/types/upstream.context.type.js +3 -0
  470. package/lib/types/upstream.context.type.js.map +1 -0
  471. package/lib/types/verify.result.type.d.ts +6 -0
  472. package/lib/types/verify.result.type.js +3 -0
  473. package/lib/types/verify.result.type.js.map +1 -0
  474. package/package.json +107 -5
  475. package/sql/postgres.sql +61 -0
  476. package/sql/sqlite.sql +61 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oidc.upstream.js","sourceRoot":"","sources":["../../../src/functions/upstream/oidc.upstream.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { JWTPayload } from 'jose';
2
+ declare const verifyIdToken: (token: string, loadJwks: (force: boolean) => Promise<any>, issuer: string, audience: string, now?: Date) => Promise<JWTPayload>;
3
+ export default verifyIdToken;
@@ -0,0 +1,16 @@
1
+ 'use strict';
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const jose_1 = require("jose");
4
+ const verifyIdToken = async (token, loadJwks, issuer, audience, now) => {
5
+ const options = { issuer, audience, currentDate: now };
6
+ try {
7
+ return (await (0, jose_1.jwtVerify)(token, (0, jose_1.createLocalJWKSet)(await loadJwks(false)), options)).payload;
8
+ }
9
+ catch (error) {
10
+ if (!(error instanceof jose_1.errors.JWKSNoMatchingKey))
11
+ throw error;
12
+ return (await (0, jose_1.jwtVerify)(token, (0, jose_1.createLocalJWKSet)(await loadJwks(true)), options)).payload;
13
+ }
14
+ };
15
+ exports.default = verifyIdToken;
16
+ //# sourceMappingURL=verify.id.token.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verify.id.token.js","sourceRoot":"","sources":["../../../src/functions/upstream/verify.id.token.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,+BAAsE;AAEtE,MAAM,aAAa,GAAG,KAAK,EAAE,KAAa,EAAE,QAA0C,EAAE,MAAc,EAAE,QAAgB,EAAE,GAAU,EAAuB,EAAE;IAC5J,MAAM,OAAO,GAAG,EAAC,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,EAAC,CAAC;IACrD,IAAI,CAAC;QACJ,OAAO,CAAC,MAAM,IAAA,gBAAS,EAAC,KAAK,EAAE,IAAA,wBAAiB,EAAC,MAAM,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;IAC5F,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,IAAI,CAAC,CAAC,KAAK,YAAY,aAAM,CAAC,iBAAiB,CAAC;YAAE,MAAM,KAAK,CAAC;QAC9D,OAAO,CAAC,MAAM,IAAA,gBAAS,EAAC,KAAK,EAAE,IAAA,wBAAiB,EAAC,MAAM,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;IAC3F,CAAC;AACF,CAAC,CAAC;AACF,kBAAe,aAAa,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type HttpResponseType from '../types/http.response.type';
2
+ import type McpAuthContextType from '../types/mcp.auth.context.type';
3
+ declare const authorizationServerMetadataHandler: (context: McpAuthContextType<any>) => Promise<HttpResponseType>;
4
+ export default authorizationServerMetadataHandler;
@@ -0,0 +1,24 @@
1
+ 'use strict';
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const json_response_1 = __importDefault(require("../functions/http/json.response"));
7
+ const authorizationServerMetadataHandler = async (context) => {
8
+ const { issuer } = context;
9
+ return (0, json_response_1.default)(200, {
10
+ issuer,
11
+ authorization_endpoint: `${issuer}/authorize`,
12
+ token_endpoint: `${issuer}/token`,
13
+ ...(context.registrationEnabled ? { registration_endpoint: `${issuer}/register` } : {}),
14
+ revocation_endpoint: `${issuer}/revoke`,
15
+ response_types_supported: ['code'],
16
+ grant_types_supported: ['authorization_code', 'refresh_token'],
17
+ code_challenge_methods_supported: ['S256'],
18
+ token_endpoint_auth_methods_supported: ['none'],
19
+ authorization_response_iss_parameter_supported: true,
20
+ ...(context.cimdEnabled ? { client_id_metadata_document_supported: true } : {})
21
+ });
22
+ };
23
+ exports.default = authorizationServerMetadataHandler;
24
+ //# sourceMappingURL=authorization.server.metadata.handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"authorization.server.metadata.handler.js","sourceRoot":"","sources":["../../src/handlers/authorization.server.metadata.handler.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;;;;AAEb,oFAA2D;AAI3D,MAAM,kCAAkC,GAAG,KAAK,EAAE,OAAgC,EAA6B,EAAE;IAChH,MAAM,EAAC,MAAM,EAAC,GAAG,OAAO,CAAC;IACzB,OAAO,IAAA,uBAAY,EAAC,GAAG,EAAE;QACxB,MAAM;QACN,sBAAsB,EAAE,GAAG,MAAM,YAAY;QAC7C,cAAc,EAAE,GAAG,MAAM,QAAQ;QACjC,GAAG,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAC,qBAAqB,EAAE,GAAG,MAAM,WAAW,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACrF,mBAAmB,EAAE,GAAG,MAAM,SAAS;QACvC,wBAAwB,EAAE,CAAC,MAAM,CAAC;QAClC,qBAAqB,EAAE,CAAC,oBAAoB,EAAE,eAAe,CAAC;QAC9D,gCAAgC,EAAE,CAAC,MAAM,CAAC;QAC1C,qCAAqC,EAAE,CAAC,MAAM,CAAC;QAC/C,8CAA8C,EAAE,IAAI;QACpD,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,EAAC,qCAAqC,EAAE,IAAI,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC;KAC7E,CAAC,CAAC;AACJ,CAAC,CAAC;AACF,kBAAe,kCAAkC,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type HttpRequestType from '../types/http.request.type';
2
+ import type HttpResponseType from '../types/http.response.type';
3
+ import type McpAuthContextType from '../types/mcp.auth.context.type';
4
+ declare const authorizeHandler: (context: McpAuthContextType<any>, request: HttpRequestType) => Promise<HttpResponseType>;
5
+ export default authorizeHandler;
@@ -0,0 +1,58 @@
1
+ 'use strict';
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const random_token_1 = __importDefault(require("../functions/crypto/random.token"));
7
+ const oauth_error_response_1 = __importDefault(require("../functions/http/oauth.error.response"));
8
+ const query_param_1 = __importDefault(require("../functions/http/query.param"));
9
+ const redirect_response_1 = __importDefault(require("../functions/http/redirect.response"));
10
+ const build_error_redirect_1 = __importDefault(require("../functions/redirect/build.error.redirect"));
11
+ const attach_and_continue_1 = __importDefault(require("../functions/server/attach.and.continue"));
12
+ const build_upstream_context_1 = __importDefault(require("../functions/server/build.upstream.context"));
13
+ const deny_authorization_1 = __importDefault(require("../functions/server/deny.authorization"));
14
+ const codeChallengePattern = /^[A-Za-z0-9_-]{43}$/;
15
+ const authorizeHandler = async (context, request) => {
16
+ const { storage, upstream, resource, logger } = context.options;
17
+ const clientId = (0, query_param_1.default)(request, 'client_id');
18
+ const client = clientId ? await context.resolveClient(clientId) : { error: 'unknown client_id' };
19
+ if ('error' in client)
20
+ return (0, oauth_error_response_1.default)(400, 'invalid_request', client.error);
21
+ const redirectUri = (0, query_param_1.default)(request, 'redirect_uri');
22
+ if (!redirectUri || !client.redirectUris.includes(redirectUri))
23
+ return (0, oauth_error_response_1.default)(400, 'invalid_request', 'redirect_uri is not registered for this client');
24
+ const clientState = (0, query_param_1.default)(request, 'state');
25
+ const fail = (error, description) => (0, redirect_response_1.default)((0, build_error_redirect_1.default)(redirectUri, context.issuer, error, description, clientState));
26
+ if ('code' !== (0, query_param_1.default)(request, 'response_type'))
27
+ return fail('unsupported_response_type', 'response_type must be code');
28
+ const codeChallenge = (0, query_param_1.default)(request, 'code_challenge');
29
+ if (!codeChallenge || !codeChallengePattern.test(codeChallenge) || 'S256' !== (0, query_param_1.default)(request, 'code_challenge_method')) {
30
+ return fail('invalid_request', 'PKCE with code_challenge_method S256 is required');
31
+ }
32
+ if ((0, query_param_1.default)(request, 'resource') !== resource)
33
+ return fail('invalid_target', 'resource does not match this server');
34
+ const pending = {
35
+ stateId: (0, random_token_1.default)(32),
36
+ clientId: client.clientId,
37
+ clientName: client.clientName,
38
+ redirectUri,
39
+ codeChallenge,
40
+ resource,
41
+ clientState,
42
+ upstreamCodeVerifier: (0, random_token_1.default)(32),
43
+ expiresAt: new Date(context.now().getTime() + context.ttl.pending * 1000)
44
+ };
45
+ await storage.savePendingAuthorization(pending);
46
+ try {
47
+ const begun = await upstream.begin((0, build_upstream_context_1.default)(context, request, pending));
48
+ if ('redirect' === begun.type)
49
+ return (0, redirect_response_1.default)(begun.url);
50
+ return await (0, attach_and_continue_1.default)(context, pending, begun.user);
51
+ }
52
+ catch (error) {
53
+ logger?.error?.('MCP upstream begin failed', { error: error instanceof Error ? error.message : String(error) });
54
+ return (0, deny_authorization_1.default)(context, pending);
55
+ }
56
+ };
57
+ exports.default = authorizeHandler;
58
+ //# sourceMappingURL=authorize.handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"authorize.handler.js","sourceRoot":"","sources":["../../src/handlers/authorize.handler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import type HttpRequestType from '../types/http.request.type';
2
+ import type HttpResponseType from '../types/http.response.type';
3
+ import type McpAuthContextType from '../types/mcp.auth.context.type';
4
+ declare const callbackHandler: (context: McpAuthContextType<any>, request: HttpRequestType) => Promise<HttpResponseType>;
5
+ export default callbackHandler;
@@ -0,0 +1,32 @@
1
+ 'use strict';
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const oauth_error_response_1 = __importDefault(require("../functions/http/oauth.error.response"));
7
+ const text_value_1 = __importDefault(require("../functions/http/text.value"));
8
+ const attach_and_continue_1 = __importDefault(require("../functions/server/attach.and.continue"));
9
+ const build_upstream_context_1 = __importDefault(require("../functions/server/build.upstream.context"));
10
+ const deny_authorization_1 = __importDefault(require("../functions/server/deny.authorization"));
11
+ const load_pending_1 = __importDefault(require("../functions/server/load.pending"));
12
+ const callbackHandler = async (context, request) => {
13
+ const pending = await (0, load_pending_1.default)(context, request);
14
+ if (!pending)
15
+ return (0, oauth_error_response_1.default)(400, 'invalid_request', 'unknown or already used state');
16
+ const { upstream, resolveUser, logger } = context.options;
17
+ let user;
18
+ try {
19
+ const claims = await upstream.callback?.((0, build_upstream_context_1.default)(context, request, pending));
20
+ const subject = (0, text_value_1.default)(claims?.sub);
21
+ if (claims && resolveUser)
22
+ user = await resolveUser(claims);
23
+ else if (claims && subject)
24
+ user = { id: subject, displayName: (0, text_value_1.default)(claims.name) };
25
+ }
26
+ catch (error) {
27
+ logger?.error?.('MCP upstream callback failed', { error: error instanceof Error ? error.message : String(error) });
28
+ }
29
+ return user?.id ? (0, attach_and_continue_1.default)(context, pending, user) : (0, deny_authorization_1.default)(context, pending);
30
+ };
31
+ exports.default = callbackHandler;
32
+ //# sourceMappingURL=callback.handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"callback.handler.js","sourceRoot":"","sources":["../../src/handlers/callback.handler.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;;;;AAEb,kGAAwE;AACxE,8EAAqD;AACrD,kGAAwE;AACxE,wGAA8E;AAC9E,gGAAuE;AACvE,oFAA2D;AAM3D,MAAM,eAAe,GAAG,KAAK,EAAE,OAAgC,EAAE,OAAwB,EAA6B,EAAE;IACvH,MAAM,OAAO,GAAG,MAAM,IAAA,sBAAW,EAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACpD,IAAI,CAAC,OAAO;QAAE,OAAO,IAAA,8BAAkB,EAAC,GAAG,EAAE,iBAAiB,EAAE,+BAA+B,CAAC,CAAC;IAEjG,MAAM,EAAC,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IACxD,IAAI,IAAuC,CAAC;IAC5C,IAAI,CAAC;QACJ,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,CAAC,IAAA,gCAAoB,EAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;QAC1F,MAAM,OAAO,GAAuB,IAAA,oBAAS,EAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAC3D,IAAI,MAAM,IAAI,WAAW;YAAE,IAAI,GAAG,MAAM,WAAW,CAAC,MAAM,CAAC,CAAC;aACvD,IAAI,MAAM,IAAI,OAAO;YAAE,IAAI,GAAG,EAAC,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,IAAA,oBAAS,EAAC,MAAM,CAAC,IAAI,CAAC,EAAC,CAAC;IACvF,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,MAAM,EAAE,KAAK,EAAE,CAAC,8BAA8B,EAAE,EAAC,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAC,CAAC,CAAC;IAClH,CAAC;IACD,OAAO,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,IAAA,6BAAiB,EAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAA,4BAAiB,EAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AACnG,CAAC,CAAC;AACF,kBAAe,eAAe,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type HttpRequestType from '../types/http.request.type';
2
+ import type HttpResponseType from '../types/http.response.type';
3
+ import type McpAuthContextType from '../types/mcp.auth.context.type';
4
+ declare const consentDecisionHandler: (context: McpAuthContextType<any>, request: HttpRequestType) => Promise<HttpResponseType>;
5
+ export default consentDecisionHandler;
@@ -0,0 +1,30 @@
1
+ 'use strict';
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const form_params_1 = __importDefault(require("../functions/http/form.params"));
7
+ const plain_error_response_1 = __importDefault(require("../functions/http/plain.error.response"));
8
+ const redirect_response_1 = __importDefault(require("../functions/http/redirect.response"));
9
+ const build_error_redirect_1 = __importDefault(require("../functions/redirect/build.error.redirect"));
10
+ const awaiting_consent_1 = __importDefault(require("../functions/server/awaiting.consent"));
11
+ const issue_authorization_code_1 = __importDefault(require("../functions/server/issue.authorization.code"));
12
+ const consentDecisionHandler = async (context, request) => {
13
+ const invalid = () => (0, plain_error_response_1.default)(400, 'Invalid or expired authorization request');
14
+ const body = (0, form_params_1.default)(request.body);
15
+ const decision = body.decision;
16
+ if ('approve' !== decision && 'deny' !== decision)
17
+ return invalid();
18
+ if (!(await (0, awaiting_consent_1.default)(context, request, body.state)))
19
+ return invalid();
20
+ const { storage } = context.options;
21
+ const pending = await storage.takePendingAuthorization(body.state, { now: context.now(), hasUser: true });
22
+ if (!pending)
23
+ return invalid();
24
+ if ('deny' === decision)
25
+ return (0, redirect_response_1.default)((0, build_error_redirect_1.default)(pending.redirectUri, context.issuer, 'access_denied', 'the user denied the request', pending.clientState));
26
+ await storage.upsertConsent({ clientId: pending.clientId, userId: pending.userId });
27
+ return (0, issue_authorization_code_1.default)(context, pending);
28
+ };
29
+ exports.default = consentDecisionHandler;
30
+ //# sourceMappingURL=consent.decision.handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"consent.decision.handler.js","sourceRoot":"","sources":["../../src/handlers/consent.decision.handler.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;;;;AAEb,gFAAuD;AACvD,kGAAwE;AACxE,4FAAmE;AACnE,sGAA4E;AAC5E,4FAAmE;AACnE,4GAAkF;AAKlF,MAAM,sBAAsB,GAAG,KAAK,EAAE,OAAgC,EAAE,OAAwB,EAA6B,EAAE;IAC9H,MAAM,OAAO,GAAG,GAAqB,EAAE,CAAC,IAAA,8BAAkB,EAAC,GAAG,EAAE,0CAA0C,CAAC,CAAC;IAC5G,MAAM,IAAI,GAA4B,IAAA,qBAAU,EAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/D,MAAM,QAAQ,GAAY,IAAI,CAAC,QAAQ,CAAC;IACxC,IAAI,SAAS,KAAK,QAAQ,IAAI,MAAM,KAAK,QAAQ;QAAE,OAAO,OAAO,EAAE,CAAC;IACpE,IAAI,CAAC,CAAC,MAAM,IAAA,0BAAe,EAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QAAE,OAAO,OAAO,EAAE,CAAC;IAE7E,MAAM,EAAC,OAAO,EAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAClC,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,wBAAwB,CAAC,IAAI,CAAC,KAAe,EAAE,EAAC,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,IAAI,EAAC,CAAC,CAAC;IAClH,IAAI,CAAC,OAAO;QAAE,OAAO,OAAO,EAAE,CAAC;IAE/B,IAAI,MAAM,KAAK,QAAQ;QAAE,OAAO,IAAA,2BAAgB,EAAC,IAAA,8BAAkB,EAAC,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,MAAM,EAAE,eAAe,EAAE,6BAA6B,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;IAE/K,MAAM,OAAO,CAAC,aAAa,CAAC,EAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,MAAgB,EAAC,CAAC,CAAC;IAC5F,OAAO,IAAA,kCAAsB,EAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AACjD,CAAC,CAAC;AACF,kBAAe,sBAAsB,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type HttpRequestType from '../types/http.request.type';
2
+ import type HttpResponseType from '../types/http.response.type';
3
+ import type McpAuthContextType from '../types/mcp.auth.context.type';
4
+ declare const consentPageHandler: (context: McpAuthContextType<any>, request: HttpRequestType) => Promise<HttpResponseType>;
5
+ export default consentPageHandler;
@@ -0,0 +1,43 @@
1
+ 'use strict';
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const is_metadata_client_id_1 = __importDefault(require("../functions/cimd/is.metadata.client.id"));
7
+ const plain_error_response_1 = __importDefault(require("../functions/http/plain.error.response"));
8
+ const query_param_1 = __importDefault(require("../functions/http/query.param"));
9
+ const describe_redirect_target_1 = __importDefault(require("../functions/redirect/describe.redirect.target"));
10
+ const is_loopback_redirect_1 = __importDefault(require("../functions/redirect/is.loopback.redirect"));
11
+ const awaiting_consent_1 = __importDefault(require("../functions/server/awaiting.consent"));
12
+ const consentPageHandler = async (context, request) => {
13
+ const pending = await (0, awaiting_consent_1.default)(context, request, (0, query_param_1.default)(request, 'state'));
14
+ if (!pending)
15
+ return (0, plain_error_response_1.default)(400, 'Invalid or expired authorization request');
16
+ const metadataDocument = (0, is_metadata_client_id_1.default)(pending.clientId);
17
+ const model = {
18
+ action: `${context.basePath}/oauth/consent`,
19
+ state: pending.stateId,
20
+ clientId: pending.clientId,
21
+ clientName: pending.clientName,
22
+ clientHost: metadataDocument ? new URL(pending.clientId).host : undefined,
23
+ metadataDocument,
24
+ redirectUri: pending.redirectUri,
25
+ redirectTarget: (0, describe_redirect_target_1.default)(pending.redirectUri),
26
+ redirectIsLocalhost: (0, is_loopback_redirect_1.default)(pending.redirectUri),
27
+ userDisplayName: pending.userDisplayName,
28
+ productName: context.productName,
29
+ environmentLabel: context.options.environmentLabel
30
+ };
31
+ return {
32
+ status: 200,
33
+ headers: {
34
+ 'content-type': 'text/html; charset=utf-8',
35
+ 'x-frame-options': 'DENY',
36
+ 'content-security-policy': "default-src 'none'; style-src 'unsafe-inline'; frame-ancestors 'none'",
37
+ 'cache-control': 'no-store'
38
+ },
39
+ body: context.renderConsent(model)
40
+ };
41
+ };
42
+ exports.default = consentPageHandler;
43
+ //# sourceMappingURL=consent.page.handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"consent.page.handler.js","sourceRoot":"","sources":["../../src/handlers/consent.page.handler.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;;;;AAEb,oGAAyE;AACzE,kGAAwE;AACxE,gFAAuD;AACvD,8GAAoF;AACpF,sGAA4E;AAC5E,4FAAmE;AAMnE,MAAM,kBAAkB,GAAG,KAAK,EAAE,OAAgC,EAAE,OAAwB,EAA6B,EAAE;IAC1H,MAAM,OAAO,GAAG,MAAM,IAAA,0BAAe,EAAC,OAAO,EAAE,OAAO,EAAE,IAAA,qBAAU,EAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;IACtF,IAAI,CAAC,OAAO;QAAE,OAAO,IAAA,8BAAkB,EAAC,GAAG,EAAE,0CAA0C,CAAC,CAAC;IAEzF,MAAM,gBAAgB,GAAY,IAAA,+BAAkB,EAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACvE,MAAM,KAAK,GAAqB;QAC/B,MAAM,EAAE,GAAG,OAAO,CAAC,QAAQ,gBAAgB;QAC3C,KAAK,EAAE,OAAO,CAAC,OAAO;QACtB,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,UAAU,EAAE,gBAAgB,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;QACzE,gBAAgB;QAChB,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,cAAc,EAAE,IAAA,kCAAsB,EAAC,OAAO,CAAC,WAAW,CAAC;QAC3D,mBAAmB,EAAE,IAAA,8BAAkB,EAAC,OAAO,CAAC,WAAW,CAAC;QAC5D,eAAe,EAAE,OAAO,CAAC,eAAe;QACxC,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,gBAAgB,EAAE,OAAO,CAAC,OAAO,CAAC,gBAAgB;KAClD,CAAC;IACF,OAAO;QACN,MAAM,EAAE,GAAG;QACX,OAAO,EAAE;YACR,cAAc,EAAE,0BAA0B;YAC1C,iBAAiB,EAAE,MAAM;YACzB,yBAAyB,EAAE,uEAAuE;YAClG,eAAe,EAAE,UAAU;SAC3B;QACD,IAAI,EAAE,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC;KAClC,CAAC;AACH,CAAC,CAAC;AACF,kBAAe,kBAAkB,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type HttpResponseType from '../types/http.response.type';
2
+ import type McpAuthContextType from '../types/mcp.auth.context.type';
3
+ declare const protectedResourceMetadataHandler: (context: McpAuthContextType<any>) => Promise<HttpResponseType>;
4
+ export default protectedResourceMetadataHandler;
@@ -0,0 +1,9 @@
1
+ 'use strict';
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const json_response_1 = __importDefault(require("../functions/http/json.response"));
7
+ const protectedResourceMetadataHandler = async (context) => (0, json_response_1.default)(200, { resource: context.options.resource, authorization_servers: [context.issuer], bearer_methods_supported: ['header'] });
8
+ exports.default = protectedResourceMetadataHandler;
9
+ //# sourceMappingURL=protected.resource.metadata.handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"protected.resource.metadata.handler.js","sourceRoot":"","sources":["../../src/handlers/protected.resource.metadata.handler.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;;;;AAEb,oFAA2D;AAI3D,MAAM,gCAAgC,GAAG,KAAK,EAAE,OAAgC,EAA6B,EAAE,CAC9G,IAAA,uBAAY,EAAC,GAAG,EAAE,EAAC,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,qBAAqB,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,wBAAwB,EAAE,CAAC,QAAQ,CAAC,EAAC,CAAC,CAAC;AACxI,kBAAe,gCAAgC,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type HttpRequestType from '../types/http.request.type';
2
+ import type HttpResponseType from '../types/http.response.type';
3
+ import type McpAuthContextType from '../types/mcp.auth.context.type';
4
+ declare const registerHandler: (context: McpAuthContextType<any>, request: HttpRequestType) => Promise<HttpResponseType>;
5
+ export default registerHandler;
@@ -0,0 +1,44 @@
1
+ 'use strict';
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const form_params_1 = __importDefault(require("../functions/http/form.params"));
7
+ const json_response_1 = __importDefault(require("../functions/http/json.response"));
8
+ const oauth_error_response_1 = __importDefault(require("../functions/http/oauth.error.response"));
9
+ const random_id_1 = __importDefault(require("../functions/crypto/random.id"));
10
+ const is_allowed_redirect_uri_1 = __importDefault(require("../functions/redirect/is.allowed.redirect.uri"));
11
+ const registerHandler = async (context, request) => {
12
+ const body = (0, form_params_1.default)(request.body);
13
+ const redirectUris = body.redirect_uris;
14
+ if (!Array.isArray(redirectUris) || 0 === redirectUris.length)
15
+ return (0, oauth_error_response_1.default)(400, 'invalid_redirect_uri', 'redirect_uris must be a non-empty array');
16
+ const rejected = redirectUris.find((uri) => !(0, is_allowed_redirect_uri_1.default)(uri, context.redirectPolicy));
17
+ if (undefined !== rejected) {
18
+ context.options.logger?.info?.('MCP register rejected', { redirectUris, clientName: body.client_name });
19
+ return (0, oauth_error_response_1.default)(400, 'invalid_redirect_uri', `redirect_uri not allowed: ${String(rejected).slice(0, 200)}`);
20
+ }
21
+ const client = {
22
+ clientId: (0, random_id_1.default)(),
23
+ clientName: 'string' === typeof body.client_name ? body.client_name.slice(0, 200) : undefined,
24
+ redirectUris: redirectUris,
25
+ applicationType: 'string' === typeof body.application_type ? body.application_type.slice(0, 32) : undefined,
26
+ tokenEndpointAuthMethod: 'none',
27
+ grantTypes: ['authorization_code', 'refresh_token'],
28
+ responseTypes: ['code'],
29
+ createdAt: context.now()
30
+ };
31
+ await context.options.storage.saveClient(client);
32
+ return (0, json_response_1.default)(201, {
33
+ client_id: client.clientId,
34
+ client_id_issued_at: Math.floor(client.createdAt.getTime() / 1000),
35
+ client_name: client.clientName,
36
+ redirect_uris: client.redirectUris,
37
+ ...(client.applicationType ? { application_type: client.applicationType } : {}),
38
+ token_endpoint_auth_method: client.tokenEndpointAuthMethod,
39
+ grant_types: client.grantTypes,
40
+ response_types: client.responseTypes
41
+ }, { 'cache-control': 'no-store' });
42
+ };
43
+ exports.default = registerHandler;
44
+ //# sourceMappingURL=register.handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"register.handler.js","sourceRoot":"","sources":["../../src/handlers/register.handler.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;;;;AAEb,gFAAuD;AACvD,oFAA2D;AAC3D,kGAAwE;AACxE,8EAAqD;AACrD,4GAAiF;AAMjF,MAAM,eAAe,GAAG,KAAK,EAAE,OAAgC,EAAE,OAAwB,EAA6B,EAAE;IACvH,MAAM,IAAI,GAA4B,IAAA,qBAAU,EAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/D,MAAM,YAAY,GAAY,IAAI,CAAC,aAAa,CAAC;IACjD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,YAAY,CAAC,MAAM;QAAE,OAAO,IAAA,8BAAkB,EAAC,GAAG,EAAE,sBAAsB,EAAE,yCAAyC,CAAC,CAAC;IACjK,MAAM,QAAQ,GAAY,YAAY,CAAC,IAAI,CAAC,CAAC,GAAY,EAAW,EAAE,CAAC,CAAC,IAAA,iCAAoB,EAAC,GAAG,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC;IAC3H,IAAI,SAAS,KAAK,QAAQ,EAAE,CAAC;QAC5B,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,uBAAuB,EAAE,EAAC,YAAY,EAAE,UAAU,EAAE,IAAI,CAAC,WAAW,EAAC,CAAC,CAAC;QACtG,OAAO,IAAA,8BAAkB,EAAC,GAAG,EAAE,sBAAsB,EAAE,6BAA6B,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;IACvH,CAAC;IAED,MAAM,MAAM,GAAqB;QAChC,QAAQ,EAAE,IAAA,mBAAQ,GAAE;QACpB,UAAU,EAAE,QAAQ,KAAK,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS;QAC7F,YAAY,EAAE,YAAwB;QACtC,eAAe,EAAE,QAAQ,KAAK,OAAO,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS;QAC3G,uBAAuB,EAAE,MAAM;QAC/B,UAAU,EAAE,CAAC,oBAAoB,EAAE,eAAe,CAAC;QACnD,aAAa,EAAE,CAAC,MAAM,CAAC;QACvB,SAAS,EAAE,OAAO,CAAC,GAAG,EAAE;KACxB,CAAC;IACF,MAAM,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IAEjD,OAAO,IAAA,uBAAY,EAClB,GAAG,EACH;QACC,SAAS,EAAE,MAAM,CAAC,QAAQ;QAC1B,mBAAmB,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC;QAClE,WAAW,EAAE,MAAM,CAAC,UAAU;QAC9B,aAAa,EAAE,MAAM,CAAC,YAAY;QAClC,GAAG,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,EAAC,gBAAgB,EAAE,MAAM,CAAC,eAAe,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7E,0BAA0B,EAAE,MAAM,CAAC,uBAAuB;QAC1D,WAAW,EAAE,MAAM,CAAC,UAAU;QAC9B,cAAc,EAAE,MAAM,CAAC,aAAa;KACpC,EACD,EAAC,eAAe,EAAE,UAAU,EAAC,CAC7B,CAAC;AACH,CAAC,CAAC;AACF,kBAAe,eAAe,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type HttpRequestType from '../types/http.request.type';
2
+ import type HttpResponseType from '../types/http.response.type';
3
+ import type McpAuthContextType from '../types/mcp.auth.context.type';
4
+ declare const resumeHandler: (context: McpAuthContextType<any>, request: HttpRequestType) => Promise<HttpResponseType>;
5
+ export default resumeHandler;
@@ -0,0 +1,25 @@
1
+ 'use strict';
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const oauth_error_response_1 = __importDefault(require("../functions/http/oauth.error.response"));
7
+ const attach_and_continue_1 = __importDefault(require("../functions/server/attach.and.continue"));
8
+ const build_upstream_context_1 = __importDefault(require("../functions/server/build.upstream.context"));
9
+ const deny_authorization_1 = __importDefault(require("../functions/server/deny.authorization"));
10
+ const load_pending_1 = __importDefault(require("../functions/server/load.pending"));
11
+ const resumeHandler = async (context, request) => {
12
+ const pending = await (0, load_pending_1.default)(context, request);
13
+ if (!pending)
14
+ return (0, oauth_error_response_1.default)(400, 'invalid_request', 'unknown or already used state');
15
+ let user = null;
16
+ try {
17
+ user = (await context.options.upstream.resume?.((0, build_upstream_context_1.default)(context, request, pending))) ?? null;
18
+ }
19
+ catch (error) {
20
+ context.options.logger?.error?.('MCP upstream resume failed', { error: error instanceof Error ? error.message : String(error) });
21
+ }
22
+ return user?.id ? (0, attach_and_continue_1.default)(context, pending, user) : (0, deny_authorization_1.default)(context, pending);
23
+ };
24
+ exports.default = resumeHandler;
25
+ //# sourceMappingURL=resume.handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resume.handler.js","sourceRoot":"","sources":["../../src/handlers/resume.handler.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;;;;AAEb,kGAAwE;AACxE,kGAAwE;AACxE,wGAA8E;AAC9E,gGAAuE;AACvE,oFAA2D;AAM3D,MAAM,aAAa,GAAG,KAAK,EAAE,OAAgC,EAAE,OAAwB,EAA6B,EAAE;IACrH,MAAM,OAAO,GAAG,MAAM,IAAA,sBAAW,EAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACpD,IAAI,CAAC,OAAO;QAAE,OAAO,IAAA,8BAAkB,EAAC,GAAG,EAAE,iBAAiB,EAAE,+BAA+B,CAAC,CAAC;IAEjG,IAAI,IAAI,GAAiC,IAAI,CAAC;IAC9C,IAAI,CAAC;QACJ,IAAI,GAAG,CAAC,MAAM,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,IAAA,gCAAoB,EAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;IAC3G,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,4BAA4B,EAAE,EAAC,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAC,CAAC,CAAC;IAChI,CAAC;IACD,OAAO,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,IAAA,6BAAiB,EAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAA,4BAAiB,EAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AACnG,CAAC,CAAC;AACF,kBAAe,aAAa,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type HttpRequestType from '../types/http.request.type';
2
+ import type HttpResponseType from '../types/http.response.type';
3
+ import type McpAuthContextType from '../types/mcp.auth.context.type';
4
+ declare const revokeHandler: (context: McpAuthContextType<any>, request: HttpRequestType) => Promise<HttpResponseType>;
5
+ export default revokeHandler;
@@ -0,0 +1,27 @@
1
+ 'use strict';
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const sha256_hex_1 = __importDefault(require("../functions/crypto/sha256.hex"));
7
+ const form_params_1 = __importDefault(require("../functions/http/form.params"));
8
+ const json_response_1 = __importDefault(require("../functions/http/json.response"));
9
+ const text_value_1 = __importDefault(require("../functions/http/text.value"));
10
+ const has_credentials_1 = __importDefault(require("../functions/server/has.credentials"));
11
+ const token_failure_1 = __importDefault(require("../functions/server/token.failure"));
12
+ const revokeHandler = async (context, request) => {
13
+ const params = (0, form_params_1.default)(request.body);
14
+ if ((0, has_credentials_1.default)(request, params))
15
+ return (0, token_failure_1.default)('invalid_client', 'public clients must not send credentials', 401);
16
+ const value = (0, text_value_1.default)(params.token);
17
+ const clientId = (0, text_value_1.default)(params.client_id);
18
+ if (!value || !clientId)
19
+ return (0, token_failure_1.default)('invalid_request', 'token and client_id are required');
20
+ const { storage } = context.options;
21
+ const stored = await storage.findRefreshToken(await (0, sha256_hex_1.default)(value));
22
+ if (stored && stored.clientId === clientId)
23
+ await storage.revokeRefreshTokenFamily(stored.familyId, context.now());
24
+ return (0, json_response_1.default)(200, {}, { 'cache-control': 'no-store', pragma: 'no-cache' });
25
+ };
26
+ exports.default = revokeHandler;
27
+ //# sourceMappingURL=revoke.handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"revoke.handler.js","sourceRoot":"","sources":["../../src/handlers/revoke.handler.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;;;;AAEb,gFAAuD;AACvD,gFAAuD;AACvD,oFAA2D;AAC3D,8EAAqD;AACrD,0FAAiE;AACjE,sFAA6D;AAK7D,MAAM,aAAa,GAAG,KAAK,EAAE,OAAgC,EAAE,OAAwB,EAA6B,EAAE;IACrH,MAAM,MAAM,GAA4B,IAAA,qBAAU,EAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACjE,IAAI,IAAA,yBAAc,EAAC,OAAO,EAAE,MAAM,CAAC;QAAE,OAAO,IAAA,uBAAY,EAAC,gBAAgB,EAAE,0CAA0C,EAAE,GAAG,CAAC,CAAC;IAE5H,MAAM,KAAK,GAAuB,IAAA,oBAAS,EAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC1D,MAAM,QAAQ,GAAuB,IAAA,oBAAS,EAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACjE,IAAI,CAAC,KAAK,IAAI,CAAC,QAAQ;QAAE,OAAO,IAAA,uBAAY,EAAC,iBAAiB,EAAE,kCAAkC,CAAC,CAAC;IAEpG,MAAM,EAAC,OAAO,EAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAClC,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,gBAAgB,CAAC,MAAM,IAAA,oBAAS,EAAC,KAAK,CAAC,CAAC,CAAC;IACtE,IAAI,MAAM,IAAI,MAAM,CAAC,QAAQ,KAAK,QAAQ;QAAE,MAAM,OAAO,CAAC,wBAAwB,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IACnH,OAAO,IAAA,uBAAY,EAAC,GAAG,EAAE,EAAE,EAAE,EAAC,eAAe,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAC,CAAC,CAAC;AACjF,CAAC,CAAC;AACF,kBAAe,aAAa,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type HttpRequestType from '../types/http.request.type';
2
+ import type HttpResponseType from '../types/http.response.type';
3
+ import type McpAuthContextType from '../types/mcp.auth.context.type';
4
+ declare const tokenHandler: (context: McpAuthContextType<any>, request: HttpRequestType) => Promise<HttpResponseType>;
5
+ export default tokenHandler;
@@ -0,0 +1,22 @@
1
+ 'use strict';
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const form_params_1 = __importDefault(require("../functions/http/form.params"));
7
+ const exchange_authorization_code_1 = __importDefault(require("../functions/server/exchange.authorization.code"));
8
+ const has_credentials_1 = __importDefault(require("../functions/server/has.credentials"));
9
+ const rotate_refresh_token_1 = __importDefault(require("../functions/server/rotate.refresh.token"));
10
+ const token_failure_1 = __importDefault(require("../functions/server/token.failure"));
11
+ const tokenHandler = async (context, request) => {
12
+ const params = (0, form_params_1.default)(request.body);
13
+ if ((0, has_credentials_1.default)(request, params))
14
+ return (0, token_failure_1.default)('invalid_client', 'public clients must not send credentials', 401);
15
+ if ('authorization_code' === params.grant_type)
16
+ return (0, exchange_authorization_code_1.default)(context, params);
17
+ if ('refresh_token' === params.grant_type)
18
+ return (0, rotate_refresh_token_1.default)(context, params);
19
+ return (0, token_failure_1.default)('unsupported_grant_type', 'grant_type must be authorization_code or refresh_token');
20
+ };
21
+ exports.default = tokenHandler;
22
+ //# sourceMappingURL=token.handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"token.handler.js","sourceRoot":"","sources":["../../src/handlers/token.handler.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;;;;AAEb,gFAAuD;AACvD,kHAAwF;AACxF,0FAAiE;AACjE,oGAA0E;AAC1E,sFAA6D;AAK7D,MAAM,YAAY,GAAG,KAAK,EAAE,OAAgC,EAAE,OAAwB,EAA6B,EAAE;IACpH,MAAM,MAAM,GAA4B,IAAA,qBAAU,EAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACjE,IAAI,IAAA,yBAAc,EAAC,OAAO,EAAE,MAAM,CAAC;QAAE,OAAO,IAAA,uBAAY,EAAC,gBAAgB,EAAE,0CAA0C,EAAE,GAAG,CAAC,CAAC;IAC5H,IAAI,oBAAoB,KAAK,MAAM,CAAC,UAAU;QAAE,OAAO,IAAA,qCAAyB,EAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAClG,IAAI,eAAe,KAAK,MAAM,CAAC,UAAU;QAAE,OAAO,IAAA,8BAAkB,EAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACtF,OAAO,IAAA,uBAAY,EAAC,wBAAwB,EAAE,wDAAwD,CAAC,CAAC;AACzG,CAAC,CAAC;AACF,kBAAe,YAAY,CAAC"}
@@ -0,0 +1,4 @@
1
+ import entraUpstream from './functions/upstream/entra.upstream';
2
+ export { entraUpstream };
3
+ declare const McpAuthEntra: {};
4
+ export default McpAuthEntra;
@@ -0,0 +1,11 @@
1
+ 'use strict';
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.entraUpstream = void 0;
7
+ const entra_upstream_1 = __importDefault(require("./functions/upstream/entra.upstream"));
8
+ exports.entraUpstream = entra_upstream_1.default;
9
+ const McpAuthEntra = {};
10
+ exports.default = McpAuthEntra;
11
+ //# sourceMappingURL=mcp.auth.entra.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp.auth.entra.js","sourceRoot":"","sources":["../src/mcp.auth.entra.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;;;;;AAEb,yFAAgE;AAExD,wBAFD,wBAAa,CAEC;AACrB,MAAM,YAAY,GAAG,EAAE,CAAC;AACxB,kBAAe,YAAY,CAAC"}
@@ -0,0 +1,4 @@
1
+ import expressMiddleware from './adapters/express/express.middleware';
2
+ export { expressMiddleware };
3
+ declare const McpAuthExpress: {};
4
+ export default McpAuthExpress;
@@ -0,0 +1,11 @@
1
+ 'use strict';
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.expressMiddleware = void 0;
7
+ const express_middleware_1 = __importDefault(require("./adapters/express/express.middleware"));
8
+ exports.expressMiddleware = express_middleware_1.default;
9
+ const McpAuthExpress = {};
10
+ exports.default = McpAuthExpress;
11
+ //# sourceMappingURL=mcp.auth.express.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp.auth.express.js","sourceRoot":"","sources":["../src/mcp.auth.express.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;;;;;AAEb,+FAAsE;AAE9D,4BAFD,4BAAiB,CAEC;AACzB,MAAM,cAAc,GAAG,EAAE,CAAC;AAC1B,kBAAe,cAAc,CAAC"}
@@ -0,0 +1,4 @@
1
+ import fastifyPlugin from './adapters/fastify/fastify.plugin';
2
+ export { fastifyPlugin };
3
+ declare const McpAuthFastify: {};
4
+ export default McpAuthFastify;
@@ -0,0 +1,11 @@
1
+ 'use strict';
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.fastifyPlugin = void 0;
7
+ const fastify_plugin_1 = __importDefault(require("./adapters/fastify/fastify.plugin"));
8
+ exports.fastifyPlugin = fastify_plugin_1.default;
9
+ const McpAuthFastify = {};
10
+ exports.default = McpAuthFastify;
11
+ //# sourceMappingURL=mcp.auth.fastify.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp.auth.fastify.js","sourceRoot":"","sources":["../src/mcp.auth.fastify.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;;;;;AAEb,uFAA8D;AAEtD,wBAFD,wBAAa,CAEC;AACrB,MAAM,cAAc,GAAG,EAAE,CAAC;AAC1B,kBAAe,cAAc,CAAC"}
@@ -0,0 +1,6 @@
1
+ import createFetchHandler from './adapters/fetch/create.fetch.handler';
2
+ import toHttpRequest from './adapters/fetch/to.http.request';
3
+ import toResponse from './adapters/fetch/to.response';
4
+ export { createFetchHandler, toHttpRequest, toResponse };
5
+ declare const McpAuthFetch: {};
6
+ export default McpAuthFetch;
@@ -0,0 +1,15 @@
1
+ 'use strict';
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.toResponse = exports.toHttpRequest = exports.createFetchHandler = void 0;
7
+ const create_fetch_handler_1 = __importDefault(require("./adapters/fetch/create.fetch.handler"));
8
+ exports.createFetchHandler = create_fetch_handler_1.default;
9
+ const to_http_request_1 = __importDefault(require("./adapters/fetch/to.http.request"));
10
+ exports.toHttpRequest = to_http_request_1.default;
11
+ const to_response_1 = __importDefault(require("./adapters/fetch/to.response"));
12
+ exports.toResponse = to_response_1.default;
13
+ const McpAuthFetch = {};
14
+ exports.default = McpAuthFetch;
15
+ //# sourceMappingURL=mcp.auth.fetch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp.auth.fetch.js","sourceRoot":"","sources":["../src/mcp.auth.fetch.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;;;;;AAEb,iGAAuE;AAI/D,6BAJD,8BAAkB,CAIC;AAH1B,uFAA6D;AAGjC,wBAHrB,yBAAa,CAGqB;AAFzC,+EAAsD;AAEX,qBAFpC,qBAAU,CAEoC;AACrD,MAAM,YAAY,GAAG,EAAE,CAAC;AACxB,kBAAe,YAAY,CAAC"}
@@ -0,0 +1,4 @@
1
+ import koaMiddleware from './adapters/koa/koa.middleware';
2
+ export { koaMiddleware };
3
+ declare const McpAuthKoa: {};
4
+ export default McpAuthKoa;
@@ -0,0 +1,11 @@
1
+ 'use strict';
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.koaMiddleware = void 0;
7
+ const koa_middleware_1 = __importDefault(require("./adapters/koa/koa.middleware"));
8
+ exports.koaMiddleware = koa_middleware_1.default;
9
+ const McpAuthKoa = {};
10
+ exports.default = McpAuthKoa;
11
+ //# sourceMappingURL=mcp.auth.koa.js.map