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,35 @@
1
+ import type AuthorizationCodeRecordType from '../types/authorization.code.record.type';
2
+ import type ClientRecordType from '../types/client.record.type';
3
+ import type ConsentRecordType from '../types/consent.record.type';
4
+ import type IStorage from '../types/i.storage';
5
+ import type PendingAuthorizationType from '../types/pending.authorization.type';
6
+ import type PendingFilterType from '../types/pending.filter.type';
7
+ import type RefreshTokenRecordType from '../types/refresh.token.record.type';
8
+ import type SqlDialectType from '../types/sql.dialect.type';
9
+ import type SqlExecutorType from '../types/sql.executor.type';
10
+ import type SqlStorageOptionsType from '../types/sql.storage.options.type';
11
+ export default class SqlStorage implements IStorage {
12
+ private readonly executor;
13
+ private readonly dialect;
14
+ private readonly prefix;
15
+ constructor(executor: SqlExecutorType, dialect: SqlDialectType, options?: SqlStorageOptionsType);
16
+ migrate(): Promise<void>;
17
+ private run;
18
+ private first;
19
+ getClient(clientId: string): Promise<ClientRecordType | null>;
20
+ saveClient(client: ClientRecordType): Promise<void>;
21
+ savePendingAuthorization(pending: PendingAuthorizationType): Promise<void>;
22
+ getPendingAuthorization(stateId: string, now: Date): Promise<PendingAuthorizationType | null>;
23
+ attachUserToPendingAuthorization(stateId: string, userId: string, now: Date, displayName?: string): Promise<PendingAuthorizationType | null>;
24
+ takePendingAuthorization(stateId: string, filter: PendingFilterType): Promise<PendingAuthorizationType | null>;
25
+ deletePendingAuthorization(stateId: string): Promise<void>;
26
+ saveAuthorizationCode(code: AuthorizationCodeRecordType): Promise<void>;
27
+ claimAuthorizationCode(codeHash: string, now: Date): Promise<AuthorizationCodeRecordType | null>;
28
+ saveRefreshToken(token: RefreshTokenRecordType): Promise<void>;
29
+ findRefreshToken(tokenHash: string): Promise<RefreshTokenRecordType | null>;
30
+ claimRefreshToken(tokenHash: string, now: Date): Promise<RefreshTokenRecordType | null>;
31
+ revokeRefreshTokenFamily(familyId: string, now: Date): Promise<void>;
32
+ hasConsent(clientId: string, userId: string): Promise<boolean>;
33
+ upsertConsent(consent: ConsentRecordType): Promise<void>;
34
+ deleteExpired(now: Date): Promise<void>;
35
+ }
@@ -0,0 +1,128 @@
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 optional_date_1 = __importDefault(require("../functions/sql/optional.date"));
7
+ const row_to_client_1 = __importDefault(require("../functions/sql/row.to.client"));
8
+ const row_to_code_1 = __importDefault(require("../functions/sql/row.to.code"));
9
+ const row_to_pending_1 = __importDefault(require("../functions/sql/row.to.pending"));
10
+ const row_to_refresh_token_1 = __importDefault(require("../functions/sql/row.to.refresh.token"));
11
+ const sql_schema_1 = __importDefault(require("../functions/sql/sql.schema"));
12
+ const to_dialect_sql_1 = __importDefault(require("../functions/sql/to.dialect.sql"));
13
+ class SqlStorage {
14
+ executor;
15
+ dialect;
16
+ prefix;
17
+ constructor(executor, dialect, options = {}) {
18
+ this.executor = executor;
19
+ this.dialect = dialect;
20
+ this.prefix = options.tablePrefix ?? 'mcp_oauth_';
21
+ }
22
+ async migrate() {
23
+ for (const statement of (0, sql_schema_1.default)(this.dialect, this.prefix))
24
+ await this.run(statement, []);
25
+ }
26
+ async run(sql, params) {
27
+ return (await this.executor((0, to_dialect_sql_1.default)(sql, this.dialect), params)) ?? [];
28
+ }
29
+ async first(sql, params) {
30
+ return (await this.run(sql, params))[0];
31
+ }
32
+ async getClient(clientId) {
33
+ const row = await this.first(`SELECT * FROM ${this.prefix}clients WHERE client_id = ?`, [clientId]);
34
+ return row ? (0, row_to_client_1.default)(row) : null;
35
+ }
36
+ async saveClient(client) {
37
+ await this.run(`INSERT INTO ${this.prefix}clients (client_id, client_name, redirect_uris, application_type, token_endpoint_auth_method, grant_types, response_types, created_at) VALUES (?, ?, ?, ?, ?, ?, ?, ?)`, [
38
+ client.clientId,
39
+ client.clientName ?? null,
40
+ JSON.stringify(client.redirectUris),
41
+ client.applicationType ?? null,
42
+ client.tokenEndpointAuthMethod,
43
+ JSON.stringify(client.grantTypes),
44
+ JSON.stringify(client.responseTypes),
45
+ client.createdAt.getTime()
46
+ ]);
47
+ }
48
+ async savePendingAuthorization(pending) {
49
+ await this.run(`INSERT INTO ${this.prefix}pending_authorizations (state_id, client_id, client_name, redirect_uri, code_challenge, resource, client_state, upstream_code_verifier, user_id, user_display_name, expires_at) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`, [
50
+ pending.stateId,
51
+ pending.clientId,
52
+ pending.clientName ?? null,
53
+ pending.redirectUri,
54
+ pending.codeChallenge,
55
+ pending.resource,
56
+ pending.clientState ?? null,
57
+ pending.upstreamCodeVerifier ?? null,
58
+ pending.userId ?? null,
59
+ pending.userDisplayName ?? null,
60
+ pending.expiresAt.getTime()
61
+ ]);
62
+ }
63
+ async getPendingAuthorization(stateId, now) {
64
+ const row = await this.first(`SELECT * FROM ${this.prefix}pending_authorizations WHERE state_id = ? AND expires_at > ?`, [stateId, now.getTime()]);
65
+ return row ? (0, row_to_pending_1.default)(row) : null;
66
+ }
67
+ async attachUserToPendingAuthorization(stateId, userId, now, displayName) {
68
+ const row = await this.first(`UPDATE ${this.prefix}pending_authorizations SET user_id = ?, user_display_name = ? WHERE state_id = ? AND expires_at > ? AND user_id IS NULL RETURNING *`, [userId, displayName ?? null, stateId, now.getTime()]);
69
+ return row ? (0, row_to_pending_1.default)(row) : null;
70
+ }
71
+ async takePendingAuthorization(stateId, filter) {
72
+ let userClause = '';
73
+ if (true === filter.hasUser)
74
+ userClause = ' AND user_id IS NOT NULL';
75
+ if (false === filter.hasUser)
76
+ userClause = ' AND user_id IS NULL';
77
+ const row = await this.first(`DELETE FROM ${this.prefix}pending_authorizations WHERE state_id = ? AND expires_at > ?${userClause} RETURNING *`, [
78
+ stateId,
79
+ filter.now.getTime()
80
+ ]);
81
+ return row ? (0, row_to_pending_1.default)(row) : null;
82
+ }
83
+ async deletePendingAuthorization(stateId) {
84
+ await this.run(`DELETE FROM ${this.prefix}pending_authorizations WHERE state_id = ?`, [stateId]);
85
+ }
86
+ async saveAuthorizationCode(code) {
87
+ await this.run(`INSERT INTO ${this.prefix}authorization_codes (code_hash, client_id, redirect_uri, code_challenge, resource, user_id, used_at, expires_at) VALUES (?, ?, ?, ?, ?, ?, ?, ?)`, [code.codeHash, code.clientId, code.redirectUri, code.codeChallenge, code.resource, code.userId, (0, optional_date_1.default)(code.usedAt), code.expiresAt.getTime()]);
88
+ }
89
+ async claimAuthorizationCode(codeHash, now) {
90
+ const row = await this.first(`UPDATE ${this.prefix}authorization_codes SET used_at = ? WHERE code_hash = ? AND used_at IS NULL AND expires_at > ? RETURNING *`, [
91
+ now.getTime(),
92
+ codeHash,
93
+ now.getTime()
94
+ ]);
95
+ return row ? (0, row_to_code_1.default)(row) : null;
96
+ }
97
+ async saveRefreshToken(token) {
98
+ await this.run(`INSERT INTO ${this.prefix}refresh_tokens (token_hash, family_id, client_id, user_id, resource, used_at, revoked_at, expires_at) VALUES (?, ?, ?, ?, ?, ?, ?, ?)`, [token.tokenHash, token.familyId, token.clientId, token.userId, token.resource, (0, optional_date_1.default)(token.usedAt), (0, optional_date_1.default)(token.revokedAt), token.expiresAt.getTime()]);
99
+ }
100
+ async findRefreshToken(tokenHash) {
101
+ const row = await this.first(`SELECT * FROM ${this.prefix}refresh_tokens WHERE token_hash = ?`, [tokenHash]);
102
+ return row ? (0, row_to_refresh_token_1.default)(row) : null;
103
+ }
104
+ async claimRefreshToken(tokenHash, now) {
105
+ const row = await this.first(`UPDATE ${this.prefix}refresh_tokens SET used_at = ? WHERE token_hash = ? AND used_at IS NULL AND revoked_at IS NULL AND expires_at > ? RETURNING *`, [now.getTime(), tokenHash, now.getTime()]);
106
+ return row ? (0, row_to_refresh_token_1.default)(row) : null;
107
+ }
108
+ async revokeRefreshTokenFamily(familyId, now) {
109
+ await this.run(`UPDATE ${this.prefix}refresh_tokens SET revoked_at = ? WHERE family_id = ? AND revoked_at IS NULL`, [now.getTime(), familyId]);
110
+ }
111
+ async hasConsent(clientId, userId) {
112
+ return !!(await this.first(`SELECT 1 AS found FROM ${this.prefix}consents WHERE client_id = ? AND user_id = ?`, [clientId, userId]));
113
+ }
114
+ async upsertConsent(consent) {
115
+ await this.run(`INSERT INTO ${this.prefix}consents (client_id, user_id, created_at) VALUES (?, ?, ?) ON CONFLICT (client_id, user_id) DO NOTHING`, [
116
+ consent.clientId,
117
+ consent.userId,
118
+ Date.now()
119
+ ]);
120
+ }
121
+ async deleteExpired(now) {
122
+ for (const table of ['pending_authorizations', 'authorization_codes', 'refresh_tokens']) {
123
+ await this.run(`DELETE FROM ${this.prefix}${table} WHERE expires_at <= ?`, [now.getTime()]);
124
+ }
125
+ }
126
+ }
127
+ exports.default = SqlStorage;
128
+ //# sourceMappingURL=sql.storage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sql.storage.js","sourceRoot":"","sources":["../../src/storage/sql.storage.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ type AccessTokenInputType = {
2
+ issuer: string;
3
+ resource: string;
4
+ userId: string;
5
+ clientId: string;
6
+ ttlSeconds: number;
7
+ now: Date;
8
+ };
9
+ export default AccessTokenInputType;
@@ -0,0 +1,3 @@
1
+ 'use strict';
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=access.token.input.type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"access.token.input.type.js","sourceRoot":"","sources":["../../src/types/access.token.input.type.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC"}
@@ -0,0 +1,7 @@
1
+ import type AuthenticatedUserType from './authenticated.user.type';
2
+ import type HttpRequestType from './http.request.type';
3
+ type AppSessionUpstreamOptionsType = {
4
+ getSignedInUser: (request: HttpRequestType) => Promise<AuthenticatedUserType | null> | AuthenticatedUserType | null;
5
+ signInUrl: (returnTo: string) => string;
6
+ };
7
+ export default AppSessionUpstreamOptionsType;
@@ -0,0 +1,3 @@
1
+ 'use strict';
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=app.session.upstream.options.type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app.session.upstream.options.type.js","sourceRoot":"","sources":["../../src/types/app.session.upstream.options.type.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC"}
@@ -0,0 +1,10 @@
1
+ type AuthenticateResultType<TUser> = {
2
+ user: TUser;
3
+ claims: Record<string, unknown>;
4
+ } | {
5
+ status: 401;
6
+ headers: Record<string, string>;
7
+ body: unknown;
8
+ reason: string;
9
+ };
10
+ export default AuthenticateResultType;
@@ -0,0 +1,3 @@
1
+ 'use strict';
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=authenticate.result.type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"authenticate.result.type.js","sourceRoot":"","sources":["../../src/types/authenticate.result.type.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC"}
@@ -0,0 +1,5 @@
1
+ type AuthenticatedUserType = {
2
+ id: string;
3
+ displayName?: string;
4
+ };
5
+ export default AuthenticatedUserType;
@@ -0,0 +1,3 @@
1
+ 'use strict';
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=authenticated.user.type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"authenticated.user.type.js","sourceRoot":"","sources":["../../src/types/authenticated.user.type.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC"}
@@ -0,0 +1,11 @@
1
+ type AuthorizationCodeRecordType = {
2
+ codeHash: string;
3
+ clientId: string;
4
+ redirectUri: string;
5
+ codeChallenge: string;
6
+ resource: string;
7
+ userId: string;
8
+ usedAt?: Date;
9
+ expiresAt: Date;
10
+ };
11
+ export default AuthorizationCodeRecordType;
@@ -0,0 +1,3 @@
1
+ 'use strict';
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=authorization.code.record.type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"authorization.code.record.type.js","sourceRoot":"","sources":["../../src/types/authorization.code.record.type.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC"}
@@ -0,0 +1,16 @@
1
+ import type IMetadataCache from './i.metadata.cache';
2
+ type CimdOptionsType = {
3
+ enabled?: boolean;
4
+ fetch?: typeof fetch;
5
+ guard?: (url: URL) => Promise<void> | void;
6
+ cache?: IMetadataCache;
7
+ timeoutMs?: number;
8
+ maxBytes?: number;
9
+ maxCacheSeconds?: number;
10
+ defaultCacheSeconds?: number;
11
+ trust?: {
12
+ allowHosts?: string[];
13
+ denyHosts?: string[];
14
+ };
15
+ };
16
+ export default CimdOptionsType;
@@ -0,0 +1,3 @@
1
+ 'use strict';
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=cimd.options.type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cimd.options.type.js","sourceRoot":"","sources":["../../src/types/cimd.options.type.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC"}
@@ -0,0 +1,7 @@
1
+ type ClientMetadataType = {
2
+ client_id: string;
3
+ client_name: string;
4
+ redirect_uris: string[];
5
+ [key: string]: unknown;
6
+ };
7
+ export default ClientMetadataType;
@@ -0,0 +1,3 @@
1
+ 'use strict';
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=client.metadata.type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.metadata.type.js","sourceRoot":"","sources":["../../src/types/client.metadata.type.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC"}
@@ -0,0 +1,11 @@
1
+ type ClientRecordType = {
2
+ clientId: string;
3
+ clientName?: string;
4
+ redirectUris: string[];
5
+ applicationType?: string;
6
+ tokenEndpointAuthMethod: 'none';
7
+ grantTypes: string[];
8
+ responseTypes: string[];
9
+ createdAt: Date;
10
+ };
11
+ export default ClientRecordType;
@@ -0,0 +1,3 @@
1
+ 'use strict';
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=client.record.type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.record.type.js","sourceRoot":"","sources":["../../src/types/client.record.type.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC"}
@@ -0,0 +1,15 @@
1
+ type ConsentModelType = {
2
+ action: string;
3
+ state: string;
4
+ clientId: string;
5
+ clientName?: string;
6
+ clientHost?: string;
7
+ metadataDocument: boolean;
8
+ redirectUri: string;
9
+ redirectTarget: string;
10
+ redirectIsLocalhost: boolean;
11
+ userDisplayName?: string;
12
+ productName: string;
13
+ environmentLabel?: string;
14
+ };
15
+ export default ConsentModelType;
@@ -0,0 +1,3 @@
1
+ 'use strict';
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=consent.model.type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"consent.model.type.js","sourceRoot":"","sources":["../../src/types/consent.model.type.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC"}
@@ -0,0 +1,5 @@
1
+ type ConsentRecordType = {
2
+ clientId: string;
3
+ userId: string;
4
+ };
5
+ export default ConsentRecordType;
@@ -0,0 +1,3 @@
1
+ 'use strict';
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=consent.record.type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"consent.record.type.js","sourceRoot":"","sources":["../../src/types/consent.record.type.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC"}
@@ -0,0 +1,9 @@
1
+ type HttpRequestType = {
2
+ method: string;
3
+ path: string;
4
+ query: Record<string, string | string[] | undefined>;
5
+ headers: Record<string, string | string[] | undefined>;
6
+ body?: unknown;
7
+ ip?: string;
8
+ };
9
+ export default HttpRequestType;
@@ -0,0 +1,3 @@
1
+ 'use strict';
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=http.request.type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http.request.type.js","sourceRoot":"","sources":["../../src/types/http.request.type.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC"}
@@ -0,0 +1,6 @@
1
+ type HttpResponseType = {
2
+ status: number;
3
+ headers: Record<string, string>;
4
+ body?: unknown;
5
+ };
6
+ export default HttpResponseType;
@@ -0,0 +1,3 @@
1
+ 'use strict';
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=http.response.type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http.response.type.js","sourceRoot":"","sources":["../../src/types/http.response.type.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC"}
@@ -0,0 +1,6 @@
1
+ import type ClientMetadataType from './client.metadata.type';
2
+ interface IMetadataCache {
3
+ get(url: string): Promise<ClientMetadataType | undefined>;
4
+ set(url: string, value: ClientMetadataType, ttlSeconds: number): Promise<void>;
5
+ }
6
+ export default IMetadataCache;
@@ -0,0 +1,3 @@
1
+ 'use strict';
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=i.metadata.cache.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"i.metadata.cache.js","sourceRoot":"","sources":["../../src/types/i.metadata.cache.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC"}
@@ -0,0 +1,25 @@
1
+ import type AuthorizationCodeRecordType from './authorization.code.record.type';
2
+ import type ClientRecordType from './client.record.type';
3
+ import type ConsentRecordType from './consent.record.type';
4
+ import type PendingAuthorizationType from './pending.authorization.type';
5
+ import type PendingFilterType from './pending.filter.type';
6
+ import type RefreshTokenRecordType from './refresh.token.record.type';
7
+ interface IStorage {
8
+ getClient(clientId: string): Promise<ClientRecordType | null>;
9
+ saveClient(client: ClientRecordType): Promise<void>;
10
+ savePendingAuthorization(pending: PendingAuthorizationType): Promise<void>;
11
+ getPendingAuthorization(stateId: string, now: Date): Promise<PendingAuthorizationType | null>;
12
+ attachUserToPendingAuthorization(stateId: string, userId: string, now: Date, displayName?: string): Promise<PendingAuthorizationType | null>;
13
+ takePendingAuthorization(stateId: string, filter: PendingFilterType): Promise<PendingAuthorizationType | null>;
14
+ deletePendingAuthorization(stateId: string): Promise<void>;
15
+ saveAuthorizationCode(code: AuthorizationCodeRecordType): Promise<void>;
16
+ claimAuthorizationCode(codeHash: string, now: Date): Promise<AuthorizationCodeRecordType | null>;
17
+ saveRefreshToken(token: RefreshTokenRecordType): Promise<void>;
18
+ findRefreshToken(tokenHash: string): Promise<RefreshTokenRecordType | null>;
19
+ claimRefreshToken(tokenHash: string, now: Date): Promise<RefreshTokenRecordType | null>;
20
+ revokeRefreshTokenFamily(familyId: string, now: Date): Promise<void>;
21
+ hasConsent(clientId: string, userId: string): Promise<boolean>;
22
+ upsertConsent(consent: ConsentRecordType): Promise<void>;
23
+ deleteExpired(now: Date): Promise<void>;
24
+ }
25
+ export default IStorage;
@@ -0,0 +1,3 @@
1
+ 'use strict';
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=i.storage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"i.storage.js","sourceRoot":"","sources":["../../src/types/i.storage.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC"}
@@ -0,0 +1,11 @@
1
+ import type AuthenticatedUserType from './authenticated.user.type';
2
+ import type HttpRequestType from './http.request.type';
3
+ import type UpstreamBeginType from './upstream.begin.type';
4
+ import type UpstreamContextType from './upstream.context.type';
5
+ interface IUpstream {
6
+ begin(context: UpstreamContextType): Promise<UpstreamBeginType>;
7
+ callback?(context: UpstreamContextType): Promise<Record<string, unknown> | null>;
8
+ resume?(context: UpstreamContextType): Promise<AuthenticatedUserType | null>;
9
+ verifyUser?(request: HttpRequestType, userId: string): Promise<boolean>;
10
+ }
11
+ export default IUpstream;
@@ -0,0 +1,3 @@
1
+ 'use strict';
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=i.upstream.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"i.upstream.js","sourceRoot":"","sources":["../../src/types/i.upstream.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC"}
@@ -0,0 +1,5 @@
1
+ type KeyPairType = {
2
+ privateKey: CryptoKey;
3
+ publicKey: CryptoKey;
4
+ };
5
+ export default KeyPairType;
@@ -0,0 +1,3 @@
1
+ 'use strict';
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=key.pair.type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"key.pair.type.js","sourceRoot":"","sources":["../../src/types/key.pair.type.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC"}
@@ -0,0 +1,6 @@
1
+ type LoggerType = {
2
+ info?: (message: string, meta?: Record<string, unknown>) => void;
3
+ warn?: (message: string, meta?: Record<string, unknown>) => void;
4
+ error?: (message: string, meta?: Record<string, unknown>) => void;
5
+ };
6
+ export default LoggerType;
@@ -0,0 +1,3 @@
1
+ 'use strict';
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=logger.type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.type.js","sourceRoot":"","sources":["../../src/types/logger.type.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC"}
@@ -0,0 +1,29 @@
1
+ import type KeyPairType from './key.pair.type';
2
+ import type McpAuthOptionsType from './mcp.auth.options.type';
3
+ import type RedirectPolicyType from './redirect.policy.type';
4
+ import type ConsentModelType from './consent.model.type';
5
+ import type ResolvedClientType from './resolved.client.type';
6
+ type McpAuthContextType<TUser = unknown> = {
7
+ options: McpAuthOptionsType<TUser>;
8
+ issuer: string;
9
+ basePath: string;
10
+ callbackPath: string;
11
+ productName: string;
12
+ redirectPolicy: RedirectPolicyType;
13
+ ttl: {
14
+ accessToken: number;
15
+ refreshToken: number;
16
+ pending: number;
17
+ code: number;
18
+ };
19
+ now: () => Date;
20
+ registrationEnabled: boolean;
21
+ cimdEnabled: boolean;
22
+ renderConsent: (model: ConsentModelType) => string;
23
+ resourceMetadataUrl: string;
24
+ getKeys: () => Promise<KeyPairType>;
25
+ resolveClient: (clientId: string) => Promise<ResolvedClientType | {
26
+ error: string;
27
+ }>;
28
+ };
29
+ export default McpAuthContextType;
@@ -0,0 +1,3 @@
1
+ 'use strict';
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=mcp.auth.context.type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp.auth.context.type.js","sourceRoot":"","sources":["../../src/types/mcp.auth.context.type.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC"}
@@ -0,0 +1,39 @@
1
+ import type AuthenticatedUserType from './authenticated.user.type';
2
+ import type CimdOptionsType from './cimd.options.type';
3
+ import type ConsentModelType from './consent.model.type';
4
+ import type IStorage from './i.storage';
5
+ import type IUpstream from './i.upstream';
6
+ import type LoggerType from './logger.type';
7
+ import type RouteNameType from './route.name.type';
8
+ type McpAuthOptionsType<TUser = unknown> = {
9
+ issuer: string;
10
+ resource: string;
11
+ signingKey: CryptoKey | string;
12
+ verificationKey?: CryptoKey;
13
+ storage: IStorage;
14
+ upstream: IUpstream;
15
+ resolveUser?: (claims: Record<string, unknown>) => Promise<AuthenticatedUserType> | AuthenticatedUserType;
16
+ loadActiveUser: (id: string) => Promise<TUser | null> | TUser | null;
17
+ renderConsent?: (model: ConsentModelType) => string;
18
+ rateLimit?: (key: string, route: RouteNameType) => Promise<boolean> | boolean;
19
+ logger?: LoggerType;
20
+ callbackPath?: string;
21
+ productName?: string;
22
+ environmentLabel?: string;
23
+ registration?: {
24
+ enabled?: boolean;
25
+ };
26
+ cimd?: CimdOptionsType;
27
+ redirects?: {
28
+ httpsHosts?: string[];
29
+ customSchemes?: string[];
30
+ };
31
+ ttl?: {
32
+ accessToken?: number;
33
+ refreshToken?: number;
34
+ pending?: number;
35
+ code?: number;
36
+ };
37
+ now?: () => Date;
38
+ };
39
+ export default McpAuthOptionsType;
@@ -0,0 +1,3 @@
1
+ 'use strict';
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=mcp.auth.options.type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp.auth.options.type.js","sourceRoot":"","sources":["../../src/types/mcp.auth.options.type.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC"}