mcp-auth-server 0.0.0-stage → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +207 -2
- package/bin/keygen.mjs +26 -0
- package/lib/adapters/express/express.middleware.d.ts +4 -0
- package/lib/adapters/express/express.middleware.js +23 -0
- package/lib/adapters/express/express.middleware.js.map +1 -0
- package/lib/adapters/fastify/fastify.plugin.d.ts +4 -0
- package/lib/adapters/fastify/fastify.plugin.js +32 -0
- package/lib/adapters/fastify/fastify.plugin.js.map +1 -0
- package/lib/adapters/fetch/create.fetch.handler.d.ts +3 -0
- package/lib/adapters/fetch/create.fetch.handler.js +13 -0
- package/lib/adapters/fetch/create.fetch.handler.js.map +1 -0
- package/lib/adapters/fetch/to.http.request.d.ts +3 -0
- package/lib/adapters/fetch/to.http.request.js +22 -0
- package/lib/adapters/fetch/to.http.request.js.map +1 -0
- package/lib/adapters/fetch/to.response.d.ts +3 -0
- package/lib/adapters/fetch/to.response.js +10 -0
- package/lib/adapters/fetch/to.response.js.map +1 -0
- package/lib/adapters/koa/koa.middleware.d.ts +4 -0
- package/lib/adapters/koa/koa.middleware.js +19 -0
- package/lib/adapters/koa/koa.middleware.js.map +1 -0
- package/lib/adapters/node/create.node.handler.d.ts +4 -0
- package/lib/adapters/node/create.node.handler.js +16 -0
- package/lib/adapters/node/create.node.handler.js.map +1 -0
- package/lib/adapters/node/node.ssrf.guard.d.ts +2 -0
- package/lib/adapters/node/node.ssrf.guard.js +16 -0
- package/lib/adapters/node/node.ssrf.guard.js.map +1 -0
- package/lib/adapters/node/parse.node.body.d.ts +3 -0
- package/lib/adapters/node/parse.node.body.js +16 -0
- package/lib/adapters/node/parse.node.body.js.map +1 -0
- package/lib/adapters/node/read.node.body.d.ts +3 -0
- package/lib/adapters/node/read.node.body.js +10 -0
- package/lib/adapters/node/read.node.body.js.map +1 -0
- package/lib/adapters/node/to.node.http.request.d.ts +4 -0
- package/lib/adapters/node/to.node.http.request.js +20 -0
- package/lib/adapters/node/to.node.http.request.js.map +1 -0
- package/lib/adapters/node/write.node.response.d.ts +4 -0
- package/lib/adapters/node/write.node.response.js +10 -0
- package/lib/adapters/node/write.node.response.js.map +1 -0
- package/lib/cache/lru.metadata.cache.d.ts +10 -0
- package/lib/cache/lru.metadata.cache.js +31 -0
- package/lib/cache/lru.metadata.cache.js.map +1 -0
- package/lib/functions/body/parse.body.d.ts +2 -0
- package/lib/functions/body/parse.body.js +20 -0
- package/lib/functions/body/parse.body.js.map +1 -0
- package/lib/functions/body/parse.query.d.ts +2 -0
- package/lib/functions/body/parse.query.js +16 -0
- package/lib/functions/body/parse.query.js.map +1 -0
- package/lib/functions/cimd/assert.public.host.d.ts +2 -0
- package/lib/functions/cimd/assert.public.host.js +15 -0
- package/lib/functions/cimd/assert.public.host.js.map +1 -0
- package/lib/functions/cimd/cache.seconds.d.ts +2 -0
- package/lib/functions/cimd/cache.seconds.js +16 -0
- package/lib/functions/cimd/cache.seconds.js.map +1 -0
- package/lib/functions/cimd/create.metadata.resolver.d.ts +5 -0
- package/lib/functions/cimd/create.metadata.resolver.js +53 -0
- package/lib/functions/cimd/create.metadata.resolver.js.map +1 -0
- package/lib/functions/cimd/host.matches.d.ts +2 -0
- package/lib/functions/cimd/host.matches.js +5 -0
- package/lib/functions/cimd/host.matches.js.map +1 -0
- package/lib/functions/cimd/is.metadata.client.id.d.ts +2 -0
- package/lib/functions/cimd/is.metadata.client.id.js +14 -0
- package/lib/functions/cimd/is.metadata.client.id.js.map +1 -0
- package/lib/functions/cimd/is.private.ipv4.d.ts +2 -0
- package/lib/functions/cimd/is.private.ipv4.js +18 -0
- package/lib/functions/cimd/is.private.ipv4.js.map +1 -0
- package/lib/functions/cimd/is.private.ipv6.d.ts +2 -0
- package/lib/functions/cimd/is.private.ipv6.js +17 -0
- package/lib/functions/cimd/is.private.ipv6.js.map +1 -0
- package/lib/functions/cimd/read.limited.d.ts +2 -0
- package/lib/functions/cimd/read.limited.js +32 -0
- package/lib/functions/cimd/read.limited.js.map +1 -0
- package/lib/functions/cimd/validate.metadata.document.d.ts +3 -0
- package/lib/functions/cimd/validate.metadata.document.js +25 -0
- package/lib/functions/cimd/validate.metadata.document.js.map +1 -0
- package/lib/functions/consent/consent.styles.d.ts +2 -0
- package/lib/functions/consent/consent.styles.js +20 -0
- package/lib/functions/consent/consent.styles.js.map +1 -0
- package/lib/functions/consent/escape.html.d.ts +2 -0
- package/lib/functions/consent/escape.html.js +5 -0
- package/lib/functions/consent/escape.html.js.map +1 -0
- package/lib/functions/consent/render.default.consent.d.ts +3 -0
- package/lib/functions/consent/render.default.consent.js +50 -0
- package/lib/functions/consent/render.default.consent.js.map +1 -0
- package/lib/functions/crypto/random.id.d.ts +2 -0
- package/lib/functions/crypto/random.id.js +5 -0
- package/lib/functions/crypto/random.id.js.map +1 -0
- package/lib/functions/crypto/random.token.d.ts +2 -0
- package/lib/functions/crypto/random.token.js +9 -0
- package/lib/functions/crypto/random.token.js.map +1 -0
- package/lib/functions/crypto/sha256.base64.url.d.ts +2 -0
- package/lib/functions/crypto/sha256.base64.url.js +10 -0
- package/lib/functions/crypto/sha256.base64.url.js.map +1 -0
- package/lib/functions/crypto/sha256.digest.d.ts +2 -0
- package/lib/functions/crypto/sha256.digest.js +5 -0
- package/lib/functions/crypto/sha256.digest.js.map +1 -0
- package/lib/functions/crypto/sha256.hex.d.ts +2 -0
- package/lib/functions/crypto/sha256.hex.js +9 -0
- package/lib/functions/crypto/sha256.hex.js.map +1 -0
- package/lib/functions/crypto/to.base64.url.d.ts +2 -0
- package/lib/functions/crypto/to.base64.url.js +10 -0
- package/lib/functions/crypto/to.base64.url.js.map +1 -0
- package/lib/functions/http/form.params.d.ts +2 -0
- package/lib/functions/http/form.params.js +5 -0
- package/lib/functions/http/form.params.js.map +1 -0
- package/lib/functions/http/header.value.d.ts +3 -0
- package/lib/functions/http/header.value.js +8 -0
- package/lib/functions/http/header.value.js.map +1 -0
- package/lib/functions/http/json.response.d.ts +3 -0
- package/lib/functions/http/json.response.js +9 -0
- package/lib/functions/http/json.response.js.map +1 -0
- package/lib/functions/http/oauth.error.response.d.ts +3 -0
- package/lib/functions/http/oauth.error.response.js +9 -0
- package/lib/functions/http/oauth.error.response.js.map +1 -0
- package/lib/functions/http/plain.error.response.d.ts +3 -0
- package/lib/functions/http/plain.error.response.js +5 -0
- package/lib/functions/http/plain.error.response.js.map +1 -0
- package/lib/functions/http/query.param.d.ts +3 -0
- package/lib/functions/http/query.param.js +8 -0
- package/lib/functions/http/query.param.js.map +1 -0
- package/lib/functions/http/redirect.response.d.ts +3 -0
- package/lib/functions/http/redirect.response.js +5 -0
- package/lib/functions/http/redirect.response.js.map +1 -0
- package/lib/functions/http/text.value.d.ts +2 -0
- package/lib/functions/http/text.value.js +5 -0
- package/lib/functions/http/text.value.js.map +1 -0
- package/lib/functions/http/trim.trailing.slashes.d.ts +2 -0
- package/lib/functions/http/trim.trailing.slashes.js +10 -0
- package/lib/functions/http/trim.trailing.slashes.js.map +1 -0
- package/lib/functions/jwt/sign.access.token.d.ts +4 -0
- package/lib/functions/jwt/sign.access.token.js +21 -0
- package/lib/functions/jwt/sign.access.token.js.map +1 -0
- package/lib/functions/jwt/verify.access.token.d.ts +4 -0
- package/lib/functions/jwt/verify.access.token.js +16 -0
- package/lib/functions/jwt/verify.access.token.js.map +1 -0
- package/lib/functions/keys/der.length.d.ts +2 -0
- package/lib/functions/keys/der.length.js +12 -0
- package/lib/functions/keys/der.length.js.map +1 -0
- package/lib/functions/keys/is.rsa.key.d.ts +2 -0
- package/lib/functions/keys/is.rsa.key.js +8 -0
- package/lib/functions/keys/is.rsa.key.js.map +1 -0
- package/lib/functions/keys/normalize.pem.d.ts +2 -0
- package/lib/functions/keys/normalize.pem.js +16 -0
- package/lib/functions/keys/normalize.pem.js.map +1 -0
- package/lib/functions/keys/pkcs1.to.pkcs8.d.ts +2 -0
- package/lib/functions/keys/pkcs1.to.pkcs8.js +14 -0
- package/lib/functions/keys/pkcs1.to.pkcs8.js.map +1 -0
- package/lib/functions/keys/resolve.key.pair.d.ts +3 -0
- package/lib/functions/keys/resolve.key.pair.js +27 -0
- package/lib/functions/keys/resolve.key.pair.js.map +1 -0
- package/lib/functions/keys/signing.key.from.env.d.ts +2 -0
- package/lib/functions/keys/signing.key.from.env.js +14 -0
- package/lib/functions/keys/signing.key.from.env.js.map +1 -0
- package/lib/functions/keys/wrap.pem.d.ts +2 -0
- package/lib/functions/keys/wrap.pem.js +11 -0
- package/lib/functions/keys/wrap.pem.js.map +1 -0
- package/lib/functions/redirect/build.error.redirect.d.ts +2 -0
- package/lib/functions/redirect/build.error.redirect.js +9 -0
- package/lib/functions/redirect/build.error.redirect.js.map +1 -0
- package/lib/functions/redirect/build.redirect.d.ts +2 -0
- package/lib/functions/redirect/build.redirect.js +12 -0
- package/lib/functions/redirect/build.redirect.js.map +1 -0
- package/lib/functions/redirect/describe.redirect.target.d.ts +2 -0
- package/lib/functions/redirect/describe.redirect.target.js +8 -0
- package/lib/functions/redirect/describe.redirect.target.js.map +1 -0
- package/lib/functions/redirect/is.allowed.redirect.uri.d.ts +3 -0
- package/lib/functions/redirect/is.allowed.redirect.uri.js +19 -0
- package/lib/functions/redirect/is.allowed.redirect.uri.js.map +1 -0
- package/lib/functions/redirect/is.loopback.redirect.d.ts +2 -0
- package/lib/functions/redirect/is.loopback.redirect.js +13 -0
- package/lib/functions/redirect/is.loopback.redirect.js.map +1 -0
- package/lib/functions/redirect/is.safe.metadata.redirect.uri.d.ts +2 -0
- package/lib/functions/redirect/is.safe.metadata.redirect.uri.js +20 -0
- package/lib/functions/redirect/is.safe.metadata.redirect.uri.js.map +1 -0
- package/lib/functions/redirect/parse.url.d.ts +2 -0
- package/lib/functions/redirect/parse.url.js +14 -0
- package/lib/functions/redirect/parse.url.js.map +1 -0
- package/lib/functions/server/attach.and.continue.d.ts +6 -0
- package/lib/functions/server/attach.and.continue.js +15 -0
- package/lib/functions/server/attach.and.continue.js.map +1 -0
- package/lib/functions/server/authenticate.request.d.ts +5 -0
- package/lib/functions/server/authenticate.request.js +24 -0
- package/lib/functions/server/authenticate.request.js.map +1 -0
- package/lib/functions/server/awaiting.consent.d.ts +5 -0
- package/lib/functions/server/awaiting.consent.js +18 -0
- package/lib/functions/server/awaiting.consent.js.map +1 -0
- package/lib/functions/server/build.routes.d.ts +4 -0
- package/lib/functions/server/build.routes.js +40 -0
- package/lib/functions/server/build.routes.js.map +1 -0
- package/lib/functions/server/build.upstream.context.d.ts +6 -0
- package/lib/functions/server/build.upstream.context.js +11 -0
- package/lib/functions/server/build.upstream.context.js.map +1 -0
- package/lib/functions/server/challenge.response.d.ts +4 -0
- package/lib/functions/server/challenge.response.js +14 -0
- package/lib/functions/server/challenge.response.js.map +1 -0
- package/lib/functions/server/continue.with.user.d.ts +5 -0
- package/lib/functions/server/continue.with.user.js +18 -0
- package/lib/functions/server/continue.with.user.js.map +1 -0
- package/lib/functions/server/create.client.resolver.d.ts +6 -0
- package/lib/functions/server/create.client.resolver.js +26 -0
- package/lib/functions/server/create.client.resolver.js.map +1 -0
- package/lib/functions/server/create.mcp.auth.context.d.ts +4 -0
- package/lib/functions/server/create.mcp.auth.context.js +38 -0
- package/lib/functions/server/create.mcp.auth.context.js.map +1 -0
- package/lib/functions/server/create.mcp.auth.d.ts +4 -0
- package/lib/functions/server/create.mcp.auth.js +25 -0
- package/lib/functions/server/create.mcp.auth.js.map +1 -0
- package/lib/functions/server/deny.authorization.d.ts +5 -0
- package/lib/functions/server/deny.authorization.js +13 -0
- package/lib/functions/server/deny.authorization.js.map +1 -0
- package/lib/functions/server/exchange.authorization.code.d.ts +4 -0
- package/lib/functions/server/exchange.authorization.code.js +32 -0
- package/lib/functions/server/exchange.authorization.code.js.map +1 -0
- package/lib/functions/server/find.route.d.ts +4 -0
- package/lib/functions/server/find.route.js +5 -0
- package/lib/functions/server/find.route.js.map +1 -0
- package/lib/functions/server/handle.request.d.ts +6 -0
- package/lib/functions/server/handle.request.js +21 -0
- package/lib/functions/server/handle.request.js.map +1 -0
- package/lib/functions/server/has.credentials.d.ts +3 -0
- package/lib/functions/server/has.credentials.js +9 -0
- package/lib/functions/server/has.credentials.js.map +1 -0
- package/lib/functions/server/issue.authorization.code.d.ts +5 -0
- package/lib/functions/server/issue.authorization.code.js +24 -0
- package/lib/functions/server/issue.authorization.code.js.map +1 -0
- package/lib/functions/server/issue.tokens.d.ts +4 -0
- package/lib/functions/server/issue.tokens.js +30 -0
- package/lib/functions/server/issue.tokens.js.map +1 -0
- package/lib/functions/server/load.pending.d.ts +5 -0
- package/lib/functions/server/load.pending.js +13 -0
- package/lib/functions/server/load.pending.js.map +1 -0
- package/lib/functions/server/rotate.refresh.token.d.ts +4 -0
- package/lib/functions/server/rotate.refresh.token.js +33 -0
- package/lib/functions/server/rotate.refresh.token.js.map +1 -0
- package/lib/functions/server/token.failure.d.ts +3 -0
- package/lib/functions/server/token.failure.js +9 -0
- package/lib/functions/server/token.failure.js.map +1 -0
- package/lib/functions/sql/from.better.sqlite3.d.ts +10 -0
- package/lib/functions/sql/from.better.sqlite3.js +11 -0
- package/lib/functions/sql/from.better.sqlite3.js.map +1 -0
- package/lib/functions/sql/from.bun.sqlite.d.ts +7 -0
- package/lib/functions/sql/from.bun.sqlite.js +5 -0
- package/lib/functions/sql/from.bun.sqlite.js.map +1 -0
- package/lib/functions/sql/from.d1.d.ts +11 -0
- package/lib/functions/sql/from.d1.js +8 -0
- package/lib/functions/sql/from.d1.js.map +1 -0
- package/lib/functions/sql/from.node.sqlite.d.ts +7 -0
- package/lib/functions/sql/from.node.sqlite.js +5 -0
- package/lib/functions/sql/from.node.sqlite.js.map +1 -0
- package/lib/functions/sql/from.pg.d.ts +7 -0
- package/lib/functions/sql/from.pg.js +5 -0
- package/lib/functions/sql/from.pg.js.map +1 -0
- package/lib/functions/sql/from.postgres.js.d.ts +5 -0
- package/lib/functions/sql/from.postgres.js.js +5 -0
- package/lib/functions/sql/from.postgres.js.js.map +1 -0
- package/lib/functions/sql/optional.date.d.ts +2 -0
- package/lib/functions/sql/optional.date.js +5 -0
- package/lib/functions/sql/optional.date.js.map +1 -0
- package/lib/functions/sql/optional.number.d.ts +2 -0
- package/lib/functions/sql/optional.number.js +5 -0
- package/lib/functions/sql/optional.number.js.map +1 -0
- package/lib/functions/sql/optional.text.d.ts +2 -0
- package/lib/functions/sql/optional.text.js +5 -0
- package/lib/functions/sql/optional.text.js.map +1 -0
- package/lib/functions/sql/row.to.client.d.ts +4 -0
- package/lib/functions/sql/row.to.client.js +18 -0
- package/lib/functions/sql/row.to.client.js.map +1 -0
- package/lib/functions/sql/row.to.code.d.ts +4 -0
- package/lib/functions/sql/row.to.code.js +21 -0
- package/lib/functions/sql/row.to.code.js.map +1 -0
- package/lib/functions/sql/row.to.pending.d.ts +4 -0
- package/lib/functions/sql/row.to.pending.js +21 -0
- package/lib/functions/sql/row.to.pending.js.map +1 -0
- package/lib/functions/sql/row.to.refresh.token.d.ts +4 -0
- package/lib/functions/sql/row.to.refresh.token.js +22 -0
- package/lib/functions/sql/row.to.refresh.token.js.map +1 -0
- package/lib/functions/sql/sql.schema.d.ts +3 -0
- package/lib/functions/sql/sql.schema.js +62 -0
- package/lib/functions/sql/sql.schema.js.map +1 -0
- package/lib/functions/sql/to.dialect.sql.d.ts +3 -0
- package/lib/functions/sql/to.dialect.sql.js +13 -0
- package/lib/functions/sql/to.dialect.sql.js.map +1 -0
- package/lib/functions/upstream/app.session.upstream.d.ts +4 -0
- package/lib/functions/upstream/app.session.upstream.js +18 -0
- package/lib/functions/upstream/app.session.upstream.js.map +1 -0
- package/lib/functions/upstream/entra.upstream.d.ts +11 -0
- package/lib/functions/upstream/entra.upstream.js +16 -0
- package/lib/functions/upstream/entra.upstream.js.map +1 -0
- package/lib/functions/upstream/oidc.upstream.d.ts +4 -0
- package/lib/functions/upstream/oidc.upstream.js +82 -0
- package/lib/functions/upstream/oidc.upstream.js.map +1 -0
- package/lib/functions/upstream/verify.id.token.d.ts +3 -0
- package/lib/functions/upstream/verify.id.token.js +16 -0
- package/lib/functions/upstream/verify.id.token.js.map +1 -0
- package/lib/handlers/authorization.server.metadata.handler.d.ts +4 -0
- package/lib/handlers/authorization.server.metadata.handler.js +24 -0
- package/lib/handlers/authorization.server.metadata.handler.js.map +1 -0
- package/lib/handlers/authorize.handler.d.ts +5 -0
- package/lib/handlers/authorize.handler.js +58 -0
- package/lib/handlers/authorize.handler.js.map +1 -0
- package/lib/handlers/callback.handler.d.ts +5 -0
- package/lib/handlers/callback.handler.js +32 -0
- package/lib/handlers/callback.handler.js.map +1 -0
- package/lib/handlers/consent.decision.handler.d.ts +5 -0
- package/lib/handlers/consent.decision.handler.js +30 -0
- package/lib/handlers/consent.decision.handler.js.map +1 -0
- package/lib/handlers/consent.page.handler.d.ts +5 -0
- package/lib/handlers/consent.page.handler.js +43 -0
- package/lib/handlers/consent.page.handler.js.map +1 -0
- package/lib/handlers/protected.resource.metadata.handler.d.ts +4 -0
- package/lib/handlers/protected.resource.metadata.handler.js +9 -0
- package/lib/handlers/protected.resource.metadata.handler.js.map +1 -0
- package/lib/handlers/register.handler.d.ts +5 -0
- package/lib/handlers/register.handler.js +44 -0
- package/lib/handlers/register.handler.js.map +1 -0
- package/lib/handlers/resume.handler.d.ts +5 -0
- package/lib/handlers/resume.handler.js +25 -0
- package/lib/handlers/resume.handler.js.map +1 -0
- package/lib/handlers/revoke.handler.d.ts +5 -0
- package/lib/handlers/revoke.handler.js +27 -0
- package/lib/handlers/revoke.handler.js.map +1 -0
- package/lib/handlers/token.handler.d.ts +5 -0
- package/lib/handlers/token.handler.js +22 -0
- package/lib/handlers/token.handler.js.map +1 -0
- package/lib/mcp.auth.entra.d.ts +4 -0
- package/lib/mcp.auth.entra.js +11 -0
- package/lib/mcp.auth.entra.js.map +1 -0
- package/lib/mcp.auth.express.d.ts +4 -0
- package/lib/mcp.auth.express.js +11 -0
- package/lib/mcp.auth.express.js.map +1 -0
- package/lib/mcp.auth.fastify.d.ts +4 -0
- package/lib/mcp.auth.fastify.js +11 -0
- package/lib/mcp.auth.fastify.js.map +1 -0
- package/lib/mcp.auth.fetch.d.ts +6 -0
- package/lib/mcp.auth.fetch.js +15 -0
- package/lib/mcp.auth.fetch.js.map +1 -0
- package/lib/mcp.auth.koa.d.ts +4 -0
- package/lib/mcp.auth.koa.js +11 -0
- package/lib/mcp.auth.koa.js.map +1 -0
- package/lib/mcp.auth.memory.d.ts +4 -0
- package/lib/mcp.auth.memory.js +11 -0
- package/lib/mcp.auth.memory.js.map +1 -0
- package/lib/mcp.auth.mongodb.d.ts +6 -0
- package/lib/mcp.auth.mongodb.js +11 -0
- package/lib/mcp.auth.mongodb.js.map +1 -0
- package/lib/mcp.auth.node.d.ts +9 -0
- package/lib/mcp.auth.node.js +21 -0
- package/lib/mcp.auth.node.js.map +1 -0
- package/lib/mcp.auth.postgres.d.ts +11 -0
- package/lib/mcp.auth.postgres.js +20 -0
- package/lib/mcp.auth.postgres.js.map +1 -0
- package/lib/mcp.auth.server.d.ts +42 -0
- package/lib/mcp.auth.server.js +35 -0
- package/lib/mcp.auth.server.js.map +1 -0
- package/lib/mcp.auth.sqlite.d.ts +13 -0
- package/lib/mcp.auth.sqlite.js +24 -0
- package/lib/mcp.auth.sqlite.js.map +1 -0
- package/lib/storage/memory.storage.d.ts +30 -0
- package/lib/storage/memory.storage.js +91 -0
- package/lib/storage/memory.storage.js.map +1 -0
- package/lib/storage/mongodb.storage.d.ts +41 -0
- package/lib/storage/mongodb.storage.js +172 -0
- package/lib/storage/mongodb.storage.js.map +1 -0
- package/lib/storage/sql.storage.d.ts +35 -0
- package/lib/storage/sql.storage.js +128 -0
- package/lib/storage/sql.storage.js.map +1 -0
- package/lib/types/access.token.input.type.d.ts +9 -0
- package/lib/types/access.token.input.type.js +3 -0
- package/lib/types/access.token.input.type.js.map +1 -0
- package/lib/types/app.session.upstream.options.type.d.ts +7 -0
- package/lib/types/app.session.upstream.options.type.js +3 -0
- package/lib/types/app.session.upstream.options.type.js.map +1 -0
- package/lib/types/authenticate.result.type.d.ts +10 -0
- package/lib/types/authenticate.result.type.js +3 -0
- package/lib/types/authenticate.result.type.js.map +1 -0
- package/lib/types/authenticated.user.type.d.ts +5 -0
- package/lib/types/authenticated.user.type.js +3 -0
- package/lib/types/authenticated.user.type.js.map +1 -0
- package/lib/types/authorization.code.record.type.d.ts +11 -0
- package/lib/types/authorization.code.record.type.js +3 -0
- package/lib/types/authorization.code.record.type.js.map +1 -0
- package/lib/types/cimd.options.type.d.ts +16 -0
- package/lib/types/cimd.options.type.js +3 -0
- package/lib/types/cimd.options.type.js.map +1 -0
- package/lib/types/client.metadata.type.d.ts +7 -0
- package/lib/types/client.metadata.type.js +3 -0
- package/lib/types/client.metadata.type.js.map +1 -0
- package/lib/types/client.record.type.d.ts +11 -0
- package/lib/types/client.record.type.js +3 -0
- package/lib/types/client.record.type.js.map +1 -0
- package/lib/types/consent.model.type.d.ts +15 -0
- package/lib/types/consent.model.type.js +3 -0
- package/lib/types/consent.model.type.js.map +1 -0
- package/lib/types/consent.record.type.d.ts +5 -0
- package/lib/types/consent.record.type.js +3 -0
- package/lib/types/consent.record.type.js.map +1 -0
- package/lib/types/http.request.type.d.ts +9 -0
- package/lib/types/http.request.type.js +3 -0
- package/lib/types/http.request.type.js.map +1 -0
- package/lib/types/http.response.type.d.ts +6 -0
- package/lib/types/http.response.type.js +3 -0
- package/lib/types/http.response.type.js.map +1 -0
- package/lib/types/i.metadata.cache.d.ts +6 -0
- package/lib/types/i.metadata.cache.js +3 -0
- package/lib/types/i.metadata.cache.js.map +1 -0
- package/lib/types/i.storage.d.ts +25 -0
- package/lib/types/i.storage.js +3 -0
- package/lib/types/i.storage.js.map +1 -0
- package/lib/types/i.upstream.d.ts +11 -0
- package/lib/types/i.upstream.js +3 -0
- package/lib/types/i.upstream.js.map +1 -0
- package/lib/types/key.pair.type.d.ts +5 -0
- package/lib/types/key.pair.type.js +3 -0
- package/lib/types/key.pair.type.js.map +1 -0
- package/lib/types/logger.type.d.ts +6 -0
- package/lib/types/logger.type.js +3 -0
- package/lib/types/logger.type.js.map +1 -0
- package/lib/types/mcp.auth.context.type.d.ts +29 -0
- package/lib/types/mcp.auth.context.type.js +3 -0
- package/lib/types/mcp.auth.context.type.js.map +1 -0
- package/lib/types/mcp.auth.options.type.d.ts +39 -0
- package/lib/types/mcp.auth.options.type.js +3 -0
- package/lib/types/mcp.auth.options.type.js.map +1 -0
- package/lib/types/mcp.auth.type.d.ts +14 -0
- package/lib/types/mcp.auth.type.js +3 -0
- package/lib/types/mcp.auth.type.js.map +1 -0
- package/lib/types/metadata.resolution.type.d.ts +9 -0
- package/lib/types/metadata.resolution.type.js +3 -0
- package/lib/types/metadata.resolution.type.js.map +1 -0
- package/lib/types/mongo.storage.options.type.d.ts +13 -0
- package/lib/types/mongo.storage.options.type.js +3 -0
- package/lib/types/mongo.storage.options.type.js.map +1 -0
- package/lib/types/oidc.upstream.options.type.d.ts +9 -0
- package/lib/types/oidc.upstream.options.type.js +3 -0
- package/lib/types/oidc.upstream.options.type.js.map +1 -0
- package/lib/types/pending.authorization.type.d.ts +14 -0
- package/lib/types/pending.authorization.type.js +3 -0
- package/lib/types/pending.authorization.type.js.map +1 -0
- package/lib/types/pending.filter.type.d.ts +5 -0
- package/lib/types/pending.filter.type.js +3 -0
- package/lib/types/pending.filter.type.js.map +1 -0
- package/lib/types/redirect.policy.type.d.ts +5 -0
- package/lib/types/redirect.policy.type.js +3 -0
- package/lib/types/redirect.policy.type.js.map +1 -0
- package/lib/types/refresh.token.record.type.d.ts +11 -0
- package/lib/types/refresh.token.record.type.js +3 -0
- package/lib/types/refresh.token.record.type.js.map +1 -0
- package/lib/types/resolved.client.type.d.ts +7 -0
- package/lib/types/resolved.client.type.js +3 -0
- package/lib/types/resolved.client.type.js.map +1 -0
- package/lib/types/route.name.type.d.ts +2 -0
- package/lib/types/route.name.type.js +3 -0
- package/lib/types/route.name.type.js.map +1 -0
- package/lib/types/route.type.d.ts +10 -0
- package/lib/types/route.type.js +3 -0
- package/lib/types/route.type.js.map +1 -0
- package/lib/types/sql.dialect.type.d.ts +2 -0
- package/lib/types/sql.dialect.type.js +3 -0
- package/lib/types/sql.dialect.type.js.map +1 -0
- package/lib/types/sql.executor.type.d.ts +4 -0
- package/lib/types/sql.executor.type.js +3 -0
- package/lib/types/sql.executor.type.js.map +1 -0
- package/lib/types/sql.storage.options.type.d.ts +4 -0
- package/lib/types/sql.storage.options.type.js +3 -0
- package/lib/types/sql.storage.options.type.js.map +1 -0
- package/lib/types/upstream.begin.type.d.ts +9 -0
- package/lib/types/upstream.begin.type.js +3 -0
- package/lib/types/upstream.begin.type.js.map +1 -0
- package/lib/types/upstream.context.type.d.ts +10 -0
- package/lib/types/upstream.context.type.js +3 -0
- package/lib/types/upstream.context.type.js.map +1 -0
- package/lib/types/verify.result.type.d.ts +6 -0
- package/lib/types/verify.result.type.js +3 -0
- package/lib/types/verify.result.type.js.map +1 -0
- package/package.json +107 -5
- package/sql/postgres.sql +61 -0
- 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,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":"AAAA,YAAY,CAAC;;;;;AAEb,oFAA2D;AAC3D,kGAAwE;AACxE,gFAAuD;AACvD,4FAAmE;AACnE,sGAA4E;AAC5E,kGAAwE;AACxE,wGAA8E;AAC9E,gGAAuE;AAMvE,MAAM,oBAAoB,GAAW,qBAAqB,CAAC;AAE3D,MAAM,gBAAgB,GAAG,KAAK,EAAE,OAAgC,EAAE,OAAwB,EAA6B,EAAE;IACxH,MAAM,EAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAC9D,MAAM,QAAQ,GAAuB,IAAA,qBAAU,EAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IACtE,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,MAAM,OAAO,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAE,EAAC,KAAK,EAAE,mBAAmB,EAAW,CAAC;IAC1G,IAAI,OAAO,IAAI,MAAM;QAAE,OAAO,IAAA,8BAAkB,EAAC,GAAG,EAAE,iBAAiB,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;IAEvF,MAAM,WAAW,GAAuB,IAAA,qBAAU,EAAC,OAAO,EAAE,cAAc,CAAC,CAAC;IAC5E,IAAI,CAAC,WAAW,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,WAAW,CAAC;QAAE,OAAO,IAAA,8BAAkB,EAAC,GAAG,EAAE,iBAAiB,EAAE,gDAAgD,CAAC,CAAC;IAEpK,MAAM,WAAW,GAAuB,IAAA,qBAAU,EAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACrE,MAAM,IAAI,GAAG,CAAC,KAAa,EAAE,WAAmB,EAAoB,EAAE,CAAC,IAAA,2BAAgB,EAAC,IAAA,8BAAkB,EAAC,WAAW,EAAE,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC;IAE1K,IAAI,MAAM,KAAK,IAAA,qBAAU,EAAC,OAAO,EAAE,eAAe,CAAC;QAAE,OAAO,IAAI,CAAC,2BAA2B,EAAE,4BAA4B,CAAC,CAAC;IAC5H,MAAM,aAAa,GAAuB,IAAA,qBAAU,EAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;IAChF,IAAI,CAAC,aAAa,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,MAAM,KAAK,IAAA,qBAAU,EAAC,OAAO,EAAE,uBAAuB,CAAC,EAAE,CAAC;QAC5H,OAAO,IAAI,CAAC,iBAAiB,EAAE,kDAAkD,CAAC,CAAC;IACpF,CAAC;IACD,IAAI,IAAA,qBAAU,EAAC,OAAO,EAAE,UAAU,CAAC,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC,gBAAgB,EAAE,qCAAqC,CAAC,CAAC;IAEvH,MAAM,OAAO,GAA6B;QACzC,OAAO,EAAE,IAAA,sBAAW,EAAC,EAAE,CAAC;QACxB,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,WAAW;QACX,aAAa;QACb,QAAQ;QACR,WAAW;QACX,oBAAoB,EAAE,IAAA,sBAAW,EAAC,EAAE,CAAC;QACrC,SAAS,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC;KACzE,CAAC;IACF,MAAM,OAAO,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC;IAEhD,IAAI,CAAC;QACJ,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,KAAK,CAAC,IAAA,gCAAoB,EAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;QACpF,IAAI,UAAU,KAAK,KAAK,CAAC,IAAI;YAAE,OAAO,IAAA,2BAAgB,EAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAClE,OAAO,MAAM,IAAA,6BAAiB,EAAC,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;IAC9D,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,MAAM,EAAE,KAAK,EAAE,CAAC,2BAA2B,EAAE,EAAC,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAC,CAAC,CAAC;QAC9G,OAAO,IAAA,4BAAiB,EAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC5C,CAAC;AACF,CAAC,CAAC;AACF,kBAAe,gBAAgB,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 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,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,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,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,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
|