fastmcp 4.12.6 → 4.12.8
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 +2 -2
- package/dist/FastMCP.cjs +2 -2
- package/dist/FastMCP.d.cts +2 -2
- package/dist/FastMCP.d.ts +2 -2
- package/dist/FastMCP.js +1 -1
- package/dist/{OAuthProvider-B_OJFNC0.d.cts → OAuthProvider-zVRjvkf8.d.cts} +8 -0
- package/dist/{OAuthProvider-B_OJFNC0.d.ts → OAuthProvider-zVRjvkf8.d.ts} +8 -0
- package/dist/auth/index.cjs +2 -2
- package/dist/auth/index.d.cts +2 -2
- package/dist/auth/index.d.ts +2 -2
- package/dist/auth/index.js +1 -1
- package/dist/{chunk-RQ6222DU.cjs → chunk-KMG3C24Z.cjs} +32 -14
- package/dist/chunk-KMG3C24Z.cjs.map +1 -0
- package/dist/{chunk-SZ4XCW5X.js → chunk-Y7GSHCYB.js} +23 -5
- package/dist/chunk-Y7GSHCYB.js.map +1 -0
- package/dist/examples/custom-routes.cjs +1 -1
- package/dist/examples/custom-routes.js +1 -1
- package/package.json +1 -1
- package/dist/chunk-RQ6222DU.cjs.map +0 -1
- package/dist/chunk-SZ4XCW5X.js.map +0 -1
package/README.md
CHANGED
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
A TypeScript framework for building [MCP](https://glama.ai/mcp) servers capable of handling client sessions.
|
|
4
4
|
|
|
5
|
-
> [!
|
|
5
|
+
> [!IMPORTANT]
|
|
6
6
|
>
|
|
7
|
-
> For a
|
|
7
|
+
> FastMCP implements the legacy, handshake-based MCP revisions (`2025-11-25` and earlier). It does not support the current specification, [`2026-07-28`](https://modelcontextprotocol.io/specification/2026-07-28/), which made the protocol stateless — no `initialize` handshake and no `Mcp-Session-Id`. For a framework targeting the current spec, use [ViteMCP](https://github.com/vitemcp/server).
|
|
8
8
|
|
|
9
9
|
## Features
|
|
10
10
|
|
package/dist/FastMCP.cjs
CHANGED
|
@@ -24,7 +24,7 @@ var _chunkU36NARZGcjs = require('./chunk-U36NARZG.cjs');
|
|
|
24
24
|
|
|
25
25
|
|
|
26
26
|
|
|
27
|
-
var
|
|
27
|
+
var _chunkKMG3C24Zcjs = require('./chunk-KMG3C24Z.cjs');
|
|
28
28
|
|
|
29
29
|
|
|
30
30
|
|
|
@@ -49,5 +49,5 @@ var _chunkRQ6222DUcjs = require('./chunk-RQ6222DU.cjs');
|
|
|
49
49
|
|
|
50
50
|
|
|
51
51
|
|
|
52
|
-
exports.AuthProvider =
|
|
52
|
+
exports.AuthProvider = _chunkKMG3C24Zcjs.AuthProvider; exports.AzureProvider = _chunkKMG3C24Zcjs.AzureProvider; exports.DiscoveryDocumentCache = _chunkU36NARZGcjs.DiscoveryDocumentCache; exports.FastMCP = _chunkU36NARZGcjs.FastMCP; exports.FastMCPError = _chunkU36NARZGcjs.FastMCPError; exports.FastMCPSession = _chunkU36NARZGcjs.FastMCPSession; exports.GitHubProvider = _chunkKMG3C24Zcjs.GitHubProvider; exports.GoogleProvider = _chunkKMG3C24Zcjs.GoogleProvider; exports.MEDIA_FETCH_TIMEOUT_MS = _chunkU36NARZGcjs.MEDIA_FETCH_TIMEOUT_MS; exports.OAuthProvider = _chunkKMG3C24Zcjs.OAuthProvider; exports.ServerState = _chunkU36NARZGcjs.ServerState; exports.SessionError = _chunkU36NARZGcjs.SessionError; exports.UnexpectedStateError = _chunkU36NARZGcjs.UnexpectedStateError; exports.UserError = _chunkU36NARZGcjs.UserError; exports.audioContent = _chunkU36NARZGcjs.audioContent; exports.getAuthSession = _chunkKMG3C24Zcjs.getAuthSession; exports.imageContent = _chunkU36NARZGcjs.imageContent; exports.jsonSchemaAdapter = _chunkU36NARZGcjs.jsonSchemaAdapter; exports.requireAll = _chunkKMG3C24Zcjs.requireAll; exports.requireAny = _chunkKMG3C24Zcjs.requireAny; exports.requireAuth = _chunkKMG3C24Zcjs.requireAuth; exports.requireRole = _chunkKMG3C24Zcjs.requireRole; exports.requireScopes = _chunkKMG3C24Zcjs.requireScopes;
|
|
53
53
|
//# sourceMappingURL=FastMCP.cjs.map
|
package/dist/FastMCP.d.cts
CHANGED
|
@@ -12,8 +12,8 @@ import { CorsOptions } from 'mcp-proxy';
|
|
|
12
12
|
export { CorsOptions } from 'mcp-proxy';
|
|
13
13
|
import { StrictEventEmitter } from 'strict-event-emitter-types';
|
|
14
14
|
import { z } from 'zod';
|
|
15
|
-
import { A as AuthProvider, O as OAuthSession, a as OAuthProxy } from './OAuthProvider-
|
|
16
|
-
export { j as AuthProviderConfig, b as AzureProvider, k as AzureProviderConfig, l as AzureSession, m as GenericOAuthProviderConfig, G as GitHubProvider, n as GitHubSession, c as GoogleProvider, o as GoogleSession, d as OAuthProvider, g as getAuthSession, r as requireAll, e as requireAny, f as requireAuth, h as requireRole, i as requireScopes } from './OAuthProvider-
|
|
15
|
+
import { A as AuthProvider, O as OAuthSession, a as OAuthProxy } from './OAuthProvider-zVRjvkf8.cjs';
|
|
16
|
+
export { j as AuthProviderConfig, b as AzureProvider, k as AzureProviderConfig, l as AzureSession, m as GenericOAuthProviderConfig, G as GitHubProvider, n as GitHubSession, c as GoogleProvider, o as GoogleSession, d as OAuthProvider, g as getAuthSession, r as requireAll, e as requireAny, f as requireAuth, h as requireRole, i as requireScopes } from './OAuthProvider-zVRjvkf8.cjs';
|
|
17
17
|
import 'node:http';
|
|
18
18
|
|
|
19
19
|
declare class DiscoveryDocumentCache {
|
package/dist/FastMCP.d.ts
CHANGED
|
@@ -12,8 +12,8 @@ import { CorsOptions } from 'mcp-proxy';
|
|
|
12
12
|
export { CorsOptions } from 'mcp-proxy';
|
|
13
13
|
import { StrictEventEmitter } from 'strict-event-emitter-types';
|
|
14
14
|
import { z } from 'zod';
|
|
15
|
-
import { A as AuthProvider, O as OAuthSession, a as OAuthProxy } from './OAuthProvider-
|
|
16
|
-
export { j as AuthProviderConfig, b as AzureProvider, k as AzureProviderConfig, l as AzureSession, m as GenericOAuthProviderConfig, G as GitHubProvider, n as GitHubSession, c as GoogleProvider, o as GoogleSession, d as OAuthProvider, g as getAuthSession, r as requireAll, e as requireAny, f as requireAuth, h as requireRole, i as requireScopes } from './OAuthProvider-
|
|
15
|
+
import { A as AuthProvider, O as OAuthSession, a as OAuthProxy } from './OAuthProvider-zVRjvkf8.js';
|
|
16
|
+
export { j as AuthProviderConfig, b as AzureProvider, k as AzureProviderConfig, l as AzureSession, m as GenericOAuthProviderConfig, G as GitHubProvider, n as GitHubSession, c as GoogleProvider, o as GoogleSession, d as OAuthProvider, g as getAuthSession, r as requireAll, e as requireAny, f as requireAuth, h as requireRole, i as requireScopes } from './OAuthProvider-zVRjvkf8.js';
|
|
17
17
|
import 'node:http';
|
|
18
18
|
|
|
19
19
|
declare class DiscoveryDocumentCache {
|
package/dist/FastMCP.js
CHANGED
|
@@ -454,6 +454,14 @@ declare class OAuthProxy {
|
|
|
454
454
|
private config;
|
|
455
455
|
private consentManager;
|
|
456
456
|
private jwtIssuer?;
|
|
457
|
+
/**
|
|
458
|
+
* The fallback storage this proxy created for itself, if any. It runs a
|
|
459
|
+
* cleanup timer that keeps the event loop alive, so `destroy()` has to stop
|
|
460
|
+
* it — and once the storage is wrapped for encryption it is reachable
|
|
461
|
+
* through nothing else. A caller-supplied storage is deliberately not
|
|
462
|
+
* recorded here: its lifetime belongs to the caller.
|
|
463
|
+
*/
|
|
464
|
+
private ownedTokenStorage;
|
|
457
465
|
/**
|
|
458
466
|
* Keyed by proxy-issued client_id for authorize/token-exchange lookups and
|
|
459
467
|
* for the defence-in-depth callback checks. A registration never changes
|
|
@@ -454,6 +454,14 @@ declare class OAuthProxy {
|
|
|
454
454
|
private config;
|
|
455
455
|
private consentManager;
|
|
456
456
|
private jwtIssuer?;
|
|
457
|
+
/**
|
|
458
|
+
* The fallback storage this proxy created for itself, if any. It runs a
|
|
459
|
+
* cleanup timer that keeps the event loop alive, so `destroy()` has to stop
|
|
460
|
+
* it — and once the storage is wrapped for encryption it is reachable
|
|
461
|
+
* through nothing else. A caller-supplied storage is deliberately not
|
|
462
|
+
* recorded here: its lifetime belongs to the caller.
|
|
463
|
+
*/
|
|
464
|
+
private ownedTokenStorage;
|
|
457
465
|
/**
|
|
458
466
|
* Keyed by proxy-issued client_id for authorize/token-exchange lookups and
|
|
459
467
|
* for the defence-in-depth callback checks. A registration never changes
|
package/dist/auth/index.cjs
CHANGED
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
|
|
25
25
|
|
|
26
26
|
|
|
27
|
-
var
|
|
27
|
+
var _chunkKMG3C24Zcjs = require('../chunk-KMG3C24Z.cjs');
|
|
28
28
|
|
|
29
29
|
|
|
30
30
|
|
|
@@ -51,5 +51,5 @@ var _chunkRQ6222DUcjs = require('../chunk-RQ6222DU.cjs');
|
|
|
51
51
|
|
|
52
52
|
|
|
53
53
|
|
|
54
|
-
exports.AuthProvider =
|
|
54
|
+
exports.AuthProvider = _chunkKMG3C24Zcjs.AuthProvider; exports.AzureProvider = _chunkKMG3C24Zcjs.AzureProvider; exports.ConsentManager = _chunkKMG3C24Zcjs.ConsentManager; exports.DEFAULT_ACCESS_TOKEN_TTL = _chunkKMG3C24Zcjs.DEFAULT_ACCESS_TOKEN_TTL; exports.DEFAULT_ACCESS_TOKEN_TTL_NO_REFRESH = _chunkKMG3C24Zcjs.DEFAULT_ACCESS_TOKEN_TTL_NO_REFRESH; exports.DEFAULT_AUTHORIZATION_CODE_TTL = _chunkKMG3C24Zcjs.DEFAULT_AUTHORIZATION_CODE_TTL; exports.DEFAULT_REFRESH_TOKEN_TTL = _chunkKMG3C24Zcjs.DEFAULT_REFRESH_TOKEN_TTL; exports.DEFAULT_TRANSACTION_TTL = _chunkKMG3C24Zcjs.DEFAULT_TRANSACTION_TTL; exports.DiskStore = _chunkKMG3C24Zcjs.DiskStore; exports.EncryptedTokenStorage = _chunkKMG3C24Zcjs.EncryptedTokenStorage; exports.GitHubProvider = _chunkKMG3C24Zcjs.GitHubProvider; exports.GoogleProvider = _chunkKMG3C24Zcjs.GoogleProvider; exports.JWKSVerifier = _chunkKMG3C24Zcjs.JWKSVerifier; exports.JWTIssuer = _chunkKMG3C24Zcjs.JWTIssuer; exports.MemoryTokenStorage = _chunkKMG3C24Zcjs.MemoryTokenStorage; exports.OAuthProvider = _chunkKMG3C24Zcjs.OAuthProvider; exports.OAuthProxy = _chunkKMG3C24Zcjs.OAuthProxy; exports.OAuthProxyError = _chunkKMG3C24Zcjs.OAuthProxyError; exports.PKCEUtils = _chunkKMG3C24Zcjs.PKCEUtils; exports.getAuthSession = _chunkKMG3C24Zcjs.getAuthSession; exports.requireAll = _chunkKMG3C24Zcjs.requireAll; exports.requireAny = _chunkKMG3C24Zcjs.requireAny; exports.requireAuth = _chunkKMG3C24Zcjs.requireAuth; exports.requireRole = _chunkKMG3C24Zcjs.requireRole; exports.requireScopes = _chunkKMG3C24Zcjs.requireScopes;
|
|
55
55
|
//# sourceMappingURL=index.cjs.map
|
package/dist/auth/index.d.cts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { p as OAuthTransaction, C as ConsentData, T as TokenStorage, q as TokenVerifier, s as TokenVerificationResult, P as PKCEPair } from '../OAuthProvider-
|
|
2
|
-
export { A as AuthProvider, j as AuthProviderConfig, y as AuthorizationParams, b as AzureProvider, k as AzureProviderConfig, l as AzureSession, z as ClientCode, B as DCRClientMetadata, E as DCRRequest, F as DCRResponse, D as DEFAULT_ACCESS_TOKEN_TTL, u as DEFAULT_ACCESS_TOKEN_TTL_NO_REFRESH, v as DEFAULT_AUTHORIZATION_CODE_TTL, w as DEFAULT_REFRESH_TOKEN_TTL, x as DEFAULT_TRANSACTION_TTL, m as GenericOAuthProviderConfig, G as GitHubProvider, n as GitHubSession, c as GoogleProvider, o as GoogleSession, H as OAuthError, d as OAuthProvider, I as OAuthProviderConfig, a as OAuthProxy, J as OAuthProxyConfig, t as OAuthProxyError, O as OAuthSession, K as ProxyDCRClient, R as RefreshRequest, L as TokenMapping, M as TokenRequest, N as TokenResponse, U as UpstreamTokenSet, g as getAuthSession, r as requireAll, e as requireAny, f as requireAuth, h as requireRole, i as requireScopes } from '../OAuthProvider-
|
|
1
|
+
import { p as OAuthTransaction, C as ConsentData, T as TokenStorage, q as TokenVerifier, s as TokenVerificationResult, P as PKCEPair } from '../OAuthProvider-zVRjvkf8.cjs';
|
|
2
|
+
export { A as AuthProvider, j as AuthProviderConfig, y as AuthorizationParams, b as AzureProvider, k as AzureProviderConfig, l as AzureSession, z as ClientCode, B as DCRClientMetadata, E as DCRRequest, F as DCRResponse, D as DEFAULT_ACCESS_TOKEN_TTL, u as DEFAULT_ACCESS_TOKEN_TTL_NO_REFRESH, v as DEFAULT_AUTHORIZATION_CODE_TTL, w as DEFAULT_REFRESH_TOKEN_TTL, x as DEFAULT_TRANSACTION_TTL, m as GenericOAuthProviderConfig, G as GitHubProvider, n as GitHubSession, c as GoogleProvider, o as GoogleSession, H as OAuthError, d as OAuthProvider, I as OAuthProviderConfig, a as OAuthProxy, J as OAuthProxyConfig, t as OAuthProxyError, O as OAuthSession, K as ProxyDCRClient, R as RefreshRequest, L as TokenMapping, M as TokenRequest, N as TokenResponse, U as UpstreamTokenSet, g as getAuthSession, r as requireAll, e as requireAny, f as requireAuth, h as requireRole, i as requireScopes } from '../OAuthProvider-zVRjvkf8.cjs';
|
|
3
3
|
import 'node:http';
|
|
4
4
|
|
|
5
5
|
/**
|
package/dist/auth/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { p as OAuthTransaction, C as ConsentData, T as TokenStorage, q as TokenVerifier, s as TokenVerificationResult, P as PKCEPair } from '../OAuthProvider-
|
|
2
|
-
export { A as AuthProvider, j as AuthProviderConfig, y as AuthorizationParams, b as AzureProvider, k as AzureProviderConfig, l as AzureSession, z as ClientCode, B as DCRClientMetadata, E as DCRRequest, F as DCRResponse, D as DEFAULT_ACCESS_TOKEN_TTL, u as DEFAULT_ACCESS_TOKEN_TTL_NO_REFRESH, v as DEFAULT_AUTHORIZATION_CODE_TTL, w as DEFAULT_REFRESH_TOKEN_TTL, x as DEFAULT_TRANSACTION_TTL, m as GenericOAuthProviderConfig, G as GitHubProvider, n as GitHubSession, c as GoogleProvider, o as GoogleSession, H as OAuthError, d as OAuthProvider, I as OAuthProviderConfig, a as OAuthProxy, J as OAuthProxyConfig, t as OAuthProxyError, O as OAuthSession, K as ProxyDCRClient, R as RefreshRequest, L as TokenMapping, M as TokenRequest, N as TokenResponse, U as UpstreamTokenSet, g as getAuthSession, r as requireAll, e as requireAny, f as requireAuth, h as requireRole, i as requireScopes } from '../OAuthProvider-
|
|
1
|
+
import { p as OAuthTransaction, C as ConsentData, T as TokenStorage, q as TokenVerifier, s as TokenVerificationResult, P as PKCEPair } from '../OAuthProvider-zVRjvkf8.js';
|
|
2
|
+
export { A as AuthProvider, j as AuthProviderConfig, y as AuthorizationParams, b as AzureProvider, k as AzureProviderConfig, l as AzureSession, z as ClientCode, B as DCRClientMetadata, E as DCRRequest, F as DCRResponse, D as DEFAULT_ACCESS_TOKEN_TTL, u as DEFAULT_ACCESS_TOKEN_TTL_NO_REFRESH, v as DEFAULT_AUTHORIZATION_CODE_TTL, w as DEFAULT_REFRESH_TOKEN_TTL, x as DEFAULT_TRANSACTION_TTL, m as GenericOAuthProviderConfig, G as GitHubProvider, n as GitHubSession, c as GoogleProvider, o as GoogleSession, H as OAuthError, d as OAuthProvider, I as OAuthProviderConfig, a as OAuthProxy, J as OAuthProxyConfig, t as OAuthProxyError, O as OAuthSession, K as ProxyDCRClient, R as RefreshRequest, L as TokenMapping, M as TokenRequest, N as TokenResponse, U as UpstreamTokenSet, g as getAuthSession, r as requireAll, e as requireAny, f as requireAuth, h as requireRole, i as requireScopes } from '../OAuthProvider-zVRjvkf8.js';
|
|
3
3
|
import 'node:http';
|
|
4
4
|
|
|
5
5
|
/**
|
package/dist/auth/index.js
CHANGED
|
@@ -938,11 +938,11 @@ var PKCEUtils = class _PKCEUtils {
|
|
|
938
938
|
return false;
|
|
939
939
|
}
|
|
940
940
|
if (method === "plain") {
|
|
941
|
-
return verifier
|
|
941
|
+
return equalsConstantTime(verifier, challenge);
|
|
942
942
|
}
|
|
943
943
|
if (method === "S256") {
|
|
944
944
|
const computedChallenge = _PKCEUtils.generateChallenge(verifier, "S256");
|
|
945
|
-
return computedChallenge
|
|
945
|
+
return equalsConstantTime(computedChallenge, challenge);
|
|
946
946
|
}
|
|
947
947
|
return false;
|
|
948
948
|
}
|
|
@@ -955,6 +955,11 @@ var PKCEUtils = class _PKCEUtils {
|
|
|
955
955
|
return buffer.toString("base64").replace(/\+/g, "-").replace(/\//g, "_").replace(/=/g, "");
|
|
956
956
|
}
|
|
957
957
|
};
|
|
958
|
+
function equalsConstantTime(a, b) {
|
|
959
|
+
const bufA = Buffer.from(a, "utf8");
|
|
960
|
+
const bufB = Buffer.from(b, "utf8");
|
|
961
|
+
return bufA.length === bufB.length && _crypto.timingSafeEqual.call(void 0, bufA, bufB);
|
|
962
|
+
}
|
|
958
963
|
|
|
959
964
|
// src/auth/utils/tokenStore.ts
|
|
960
965
|
|
|
@@ -1135,16 +1140,24 @@ var OAuthProxy = (_class4 = class {
|
|
|
1135
1140
|
|
|
1136
1141
|
|
|
1137
1142
|
|
|
1143
|
+
/**
|
|
1144
|
+
* The fallback storage this proxy created for itself, if any. It runs a
|
|
1145
|
+
* cleanup timer that keeps the event loop alive, so `destroy()` has to stop
|
|
1146
|
+
* it — and once the storage is wrapped for encryption it is reachable
|
|
1147
|
+
* through nothing else. A caller-supplied storage is deliberately not
|
|
1148
|
+
* recorded here: its lifetime belongs to the caller.
|
|
1149
|
+
*/
|
|
1150
|
+
__init7() {this.ownedTokenStorage = null}
|
|
1138
1151
|
/**
|
|
1139
1152
|
* Keyed by proxy-issued client_id for authorize/token-exchange lookups and
|
|
1140
1153
|
* for the defence-in-depth callback checks. A registration never changes
|
|
1141
1154
|
* after it is written, so caching it locally cannot go stale; it is also
|
|
1142
1155
|
* persisted, so another instance can hydrate it.
|
|
1143
1156
|
*/
|
|
1144
|
-
|
|
1157
|
+
__init8() {this.registeredClientsByClientId = /* @__PURE__ */ new Map()}
|
|
1145
1158
|
|
|
1146
1159
|
|
|
1147
|
-
constructor(config) {;_class4.prototype.__init5.call(this);_class4.prototype.__init6.call(this);_class4.prototype.__init7.call(this);
|
|
1160
|
+
constructor(config) {;_class4.prototype.__init5.call(this);_class4.prototype.__init6.call(this);_class4.prototype.__init7.call(this);_class4.prototype.__init8.call(this);
|
|
1148
1161
|
this.config = {
|
|
1149
1162
|
authorizationCodeTtl: DEFAULT_AUTHORIZATION_CODE_TTL,
|
|
1150
1163
|
consentRequired: true,
|
|
@@ -1156,7 +1169,11 @@ var OAuthProxy = (_class4 = class {
|
|
|
1156
1169
|
upstreamTokenEndpointAuthMethod: "client_secret_basic",
|
|
1157
1170
|
...config
|
|
1158
1171
|
};
|
|
1159
|
-
let storage = config.tokenStorage
|
|
1172
|
+
let storage = config.tokenStorage;
|
|
1173
|
+
if (!storage) {
|
|
1174
|
+
this.ownedTokenStorage = new MemoryTokenStorage();
|
|
1175
|
+
storage = this.ownedTokenStorage;
|
|
1176
|
+
}
|
|
1160
1177
|
const isAlreadyEncrypted = storage.constructor.name === "EncryptedTokenStorage";
|
|
1161
1178
|
if (!isAlreadyEncrypted && config.encryptionKey !== false) {
|
|
1162
1179
|
const encryptionKey = typeof config.encryptionKey === "string" ? config.encryptionKey : this.generateSigningKey();
|
|
@@ -1233,6 +1250,7 @@ var OAuthProxy = (_class4 = class {
|
|
|
1233
1250
|
clearInterval(this.cleanupInterval);
|
|
1234
1251
|
this.cleanupInterval = null;
|
|
1235
1252
|
}
|
|
1253
|
+
_optionalChain([this, 'access', _8 => _8.ownedTokenStorage, 'optionalAccess', _9 => _9.destroy, 'call', _10 => _10()]);
|
|
1236
1254
|
this.registeredClientsByClientId.clear();
|
|
1237
1255
|
}
|
|
1238
1256
|
/**
|
|
@@ -1443,7 +1461,7 @@ var OAuthProxy = (_class4 = class {
|
|
|
1443
1461
|
return null;
|
|
1444
1462
|
}
|
|
1445
1463
|
const result = await this.jwtIssuer.verify(fastmcpToken);
|
|
1446
|
-
if (!result.valid || !_optionalChain([result, 'access',
|
|
1464
|
+
if (!result.valid || !_optionalChain([result, 'access', _11 => _11.claims, 'optionalAccess', _12 => _12.jti])) {
|
|
1447
1465
|
return null;
|
|
1448
1466
|
}
|
|
1449
1467
|
const mapping = await this.tokenStorage.get(
|
|
@@ -1630,7 +1648,7 @@ var OAuthProxy = (_class4 = class {
|
|
|
1630
1648
|
throw new Error("JWT issuer not initialized");
|
|
1631
1649
|
}
|
|
1632
1650
|
const result = await this.jwtIssuer.verify(token);
|
|
1633
|
-
if (!result.valid || !_optionalChain([result, 'access',
|
|
1651
|
+
if (!result.valid || !_optionalChain([result, 'access', _13 => _13.claims, 'optionalAccess', _14 => _14.jti])) {
|
|
1634
1652
|
throw new Error("Failed to extract JTI from token");
|
|
1635
1653
|
}
|
|
1636
1654
|
return result.claims.jti;
|
|
@@ -1798,7 +1816,7 @@ var OAuthProxy = (_class4 = class {
|
|
|
1798
1816
|
"Invalid or expired refresh token"
|
|
1799
1817
|
);
|
|
1800
1818
|
}
|
|
1801
|
-
const jti = _optionalChain([verifyResult, 'access',
|
|
1819
|
+
const jti = _optionalChain([verifyResult, 'access', _15 => _15.claims, 'optionalAccess', _16 => _16.jti]);
|
|
1802
1820
|
if (!jti) {
|
|
1803
1821
|
throw new OAuthProxyError("invalid_grant", "Refresh token missing JTI");
|
|
1804
1822
|
}
|
|
@@ -2247,7 +2265,7 @@ var AuthProvider = class {
|
|
|
2247
2265
|
if (!request) {
|
|
2248
2266
|
return void 0;
|
|
2249
2267
|
}
|
|
2250
|
-
const authHeader = _optionalChain([request, 'access',
|
|
2268
|
+
const authHeader = _optionalChain([request, 'access', _17 => _17.headers, 'optionalAccess', _18 => _18.authorization]);
|
|
2251
2269
|
if (!authHeader || !authHeader.startsWith("Bearer ")) {
|
|
2252
2270
|
return void 0;
|
|
2253
2271
|
}
|
|
@@ -2448,10 +2466,10 @@ var OAuthProvider = class extends AuthProvider {
|
|
|
2448
2466
|
var _promises = require('fs/promises');
|
|
2449
2467
|
var _path = require('path');
|
|
2450
2468
|
var DiskStore = (_class5 = class {
|
|
2451
|
-
|
|
2469
|
+
__init9() {this.cleanupInterval = null}
|
|
2452
2470
|
|
|
2453
2471
|
|
|
2454
|
-
constructor(options) {;_class5.prototype.
|
|
2472
|
+
constructor(options) {;_class5.prototype.__init9.call(this);
|
|
2455
2473
|
this.directory = options.directory;
|
|
2456
2474
|
this.fileExtension = options.fileExtension || ".json";
|
|
2457
2475
|
void this.ensureDirectory();
|
|
@@ -2624,9 +2642,9 @@ var DiskStore = (_class5 = class {
|
|
|
2624
2642
|
var JWKSVerifier = (_class6 = class {
|
|
2625
2643
|
|
|
2626
2644
|
|
|
2627
|
-
|
|
2645
|
+
__init10() {this.joseLoaded = false}
|
|
2628
2646
|
|
|
2629
|
-
constructor(config) {;_class6.prototype.
|
|
2647
|
+
constructor(config) {;_class6.prototype.__init10.call(this);
|
|
2630
2648
|
this.config = {
|
|
2631
2649
|
cacheDuration: 36e5,
|
|
2632
2650
|
// 1 hour
|
|
@@ -2784,4 +2802,4 @@ Original error: ${error.message}`
|
|
|
2784
2802
|
|
|
2785
2803
|
|
|
2786
2804
|
exports.getAuthSession = getAuthSession; exports.requireAll = requireAll; exports.requireAny = requireAny; exports.requireAuth = requireAuth; exports.requireRole = requireRole; exports.requireScopes = requireScopes; exports.DEFAULT_ACCESS_TOKEN_TTL = DEFAULT_ACCESS_TOKEN_TTL; exports.DEFAULT_ACCESS_TOKEN_TTL_NO_REFRESH = DEFAULT_ACCESS_TOKEN_TTL_NO_REFRESH; exports.DEFAULT_REFRESH_TOKEN_TTL = DEFAULT_REFRESH_TOKEN_TTL; exports.DEFAULT_AUTHORIZATION_CODE_TTL = DEFAULT_AUTHORIZATION_CODE_TTL; exports.DEFAULT_TRANSACTION_TTL = DEFAULT_TRANSACTION_TTL; exports.ConsentManager = ConsentManager; exports.JWTIssuer = JWTIssuer; exports.PKCEUtils = PKCEUtils; exports.EncryptedTokenStorage = EncryptedTokenStorage; exports.MemoryTokenStorage = MemoryTokenStorage; exports.OAuthProxy = OAuthProxy; exports.OAuthProxyError = OAuthProxyError; exports.AuthProvider = AuthProvider; exports.AzureProvider = AzureProvider; exports.GitHubProvider = GitHubProvider; exports.GoogleProvider = GoogleProvider; exports.OAuthProvider = OAuthProvider; exports.DiskStore = DiskStore; exports.JWKSVerifier = JWKSVerifier;
|
|
2787
|
-
//# sourceMappingURL=chunk-
|
|
2805
|
+
//# sourceMappingURL=chunk-KMG3C24Z.cjs.map
|