fastmcp 4.19.0 → 4.20.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/dist/FastMCP.cjs +3 -3
- package/dist/FastMCP.js +2 -2
- package/dist/auth/index.cjs +2 -2
- package/dist/auth/index.js +1 -1
- package/dist/{chunk-SYZRGVQX.cjs → chunk-KGXPEC7J.cjs} +55 -30
- package/dist/chunk-KGXPEC7J.cjs.map +1 -0
- package/dist/{chunk-KWRV7CHJ.js → chunk-LRXZYGFR.js} +15 -1
- package/dist/chunk-LRXZYGFR.js.map +1 -0
- package/dist/{chunk-UODI5E6U.js → chunk-XJWV6G5Q.js} +47 -22
- package/dist/chunk-XJWV6G5Q.js.map +1 -0
- package/dist/{chunk-E3HXGE2O.cjs → chunk-YO76IUZ6.cjs} +28 -14
- package/dist/chunk-YO76IUZ6.cjs.map +1 -0
- package/dist/examples/custom-routes.cjs +3 -3
- package/dist/examples/custom-routes.js +2 -2
- package/dist/openapi/index.cjs +132 -44
- package/dist/openapi/index.cjs.map +1 -1
- package/dist/openapi/index.d.cts +19 -0
- package/dist/openapi/index.d.ts +19 -0
- package/dist/openapi/index.js +125 -37
- package/dist/openapi/index.js.map +1 -1
- package/package.json +1 -1
- package/dist/chunk-E3HXGE2O.cjs.map +0 -1
- package/dist/chunk-KWRV7CHJ.js.map +0 -1
- package/dist/chunk-SYZRGVQX.cjs.map +0 -1
- package/dist/chunk-UODI5E6U.js.map +0 -1
|
@@ -285,6 +285,17 @@ var DEFAULT_AUTHORIZATION_CODE_TTL = 300;
|
|
|
285
285
|
var DEFAULT_TRANSACTION_TTL = 600;
|
|
286
286
|
var DEFAULT_UPSTREAM_REQUEST_TIMEOUT_MS = 1e4;
|
|
287
287
|
|
|
288
|
+
// src/cancelResponseBody.ts
|
|
289
|
+
var cancelResponseBody = async (response) => {
|
|
290
|
+
if (!response.body) {
|
|
291
|
+
return;
|
|
292
|
+
}
|
|
293
|
+
try {
|
|
294
|
+
await response.body.cancel();
|
|
295
|
+
} catch (e) {
|
|
296
|
+
}
|
|
297
|
+
};
|
|
298
|
+
|
|
288
299
|
// src/auth/utils/cimd.ts
|
|
289
300
|
var CIMD_FETCH_TIMEOUT_MS = 5e3;
|
|
290
301
|
var CIMD_CLIENT_TTL_MS = 15 * 60 * 1e3;
|
|
@@ -293,7 +304,7 @@ async function resolveCimdClient(clientId, requestedRedirectUri, validateRedirec
|
|
|
293
304
|
let url;
|
|
294
305
|
try {
|
|
295
306
|
url = new URL(clientId);
|
|
296
|
-
} catch (
|
|
307
|
+
} catch (e2) {
|
|
297
308
|
return null;
|
|
298
309
|
}
|
|
299
310
|
if (url.protocol !== "https:" || url.search) {
|
|
@@ -308,10 +319,11 @@ async function resolveCimdClient(clientId, requestedRedirectUri, validateRedirec
|
|
|
308
319
|
redirect: "error",
|
|
309
320
|
signal: AbortSignal.timeout(CIMD_FETCH_TIMEOUT_MS)
|
|
310
321
|
});
|
|
311
|
-
} catch (
|
|
322
|
+
} catch (e3) {
|
|
312
323
|
return null;
|
|
313
324
|
}
|
|
314
325
|
if (!response.ok) {
|
|
326
|
+
await cancelResponseBody(response);
|
|
315
327
|
return null;
|
|
316
328
|
}
|
|
317
329
|
const text = await readBoundedText(response);
|
|
@@ -321,7 +333,7 @@ async function resolveCimdClient(clientId, requestedRedirectUri, validateRedirec
|
|
|
321
333
|
let parsed;
|
|
322
334
|
try {
|
|
323
335
|
parsed = JSON.parse(text);
|
|
324
|
-
} catch (
|
|
336
|
+
} catch (e4) {
|
|
325
337
|
return null;
|
|
326
338
|
}
|
|
327
339
|
if (typeof parsed !== "object" || parsed === null) {
|
|
@@ -425,6 +437,7 @@ function optionalString(value) {
|
|
|
425
437
|
async function readBoundedText(response) {
|
|
426
438
|
const contentLength = response.headers.get("content-length");
|
|
427
439
|
if (contentLength && Number(contentLength) > CIMD_MAX_RESPONSE_BYTES) {
|
|
440
|
+
await cancelResponseBody(response);
|
|
428
441
|
return null;
|
|
429
442
|
}
|
|
430
443
|
const reader = _optionalChain([response, 'access', _ => _.body, 'optionalAccess', _2 => _2.getReader, 'call', _3 => _3()]);
|
|
@@ -446,7 +459,7 @@ async function readBoundedText(response) {
|
|
|
446
459
|
}
|
|
447
460
|
chunks.push(value);
|
|
448
461
|
}
|
|
449
|
-
} catch (
|
|
462
|
+
} catch (e5) {
|
|
450
463
|
return null;
|
|
451
464
|
}
|
|
452
465
|
return Buffer.concat(chunks).toString("utf-8");
|
|
@@ -589,7 +602,7 @@ var ClaimsExtractor = (_class = class {
|
|
|
589
602
|
const stringified = JSON.stringify(value);
|
|
590
603
|
const maxSize = _nullishCoalesce(this.config.maxClaimValueSize, () => ( 2e3));
|
|
591
604
|
return stringified.length <= maxSize;
|
|
592
|
-
} catch (
|
|
605
|
+
} catch (e6) {
|
|
593
606
|
return false;
|
|
594
607
|
}
|
|
595
608
|
}
|
|
@@ -870,7 +883,7 @@ var ConsentManager = class {
|
|
|
870
883
|
return null;
|
|
871
884
|
}
|
|
872
885
|
return data;
|
|
873
|
-
} catch (
|
|
886
|
+
} catch (e7) {
|
|
874
887
|
return null;
|
|
875
888
|
}
|
|
876
889
|
}
|
|
@@ -1846,7 +1859,7 @@ var OAuthProxy = (_class4 = class {
|
|
|
1846
1859
|
const error = await tokenResponse.json();
|
|
1847
1860
|
errorCode = error.error || "server_error";
|
|
1848
1861
|
errorDescription = error.error_description;
|
|
1849
|
-
} catch (
|
|
1862
|
+
} catch (e8) {
|
|
1850
1863
|
errorDescription = `Upstream returned HTTP ${tokenResponse.status} ${tokenResponse.statusText}`;
|
|
1851
1864
|
}
|
|
1852
1865
|
throw new OAuthProxyError(errorCode, errorDescription);
|
|
@@ -2010,7 +2023,7 @@ var OAuthProxy = (_class4 = class {
|
|
|
2010
2023
|
const error = await tokenResponse.json();
|
|
2011
2024
|
errorCode = error.error || "invalid_grant";
|
|
2012
2025
|
errorDescription = error.error_description;
|
|
2013
|
-
} catch (
|
|
2026
|
+
} catch (e9) {
|
|
2014
2027
|
errorDescription = `Upstream returned HTTP ${tokenResponse.status} ${tokenResponse.statusText}`;
|
|
2015
2028
|
}
|
|
2016
2029
|
throw new OAuthProxyError(errorCode, errorDescription);
|
|
@@ -2360,7 +2373,7 @@ var OAuthProxy = (_class4 = class {
|
|
|
2360
2373
|
const error = await tokenResponse.json();
|
|
2361
2374
|
errorCode = error.error || "invalid_grant";
|
|
2362
2375
|
errorDescription = error.error_description || "Upstream refresh failed";
|
|
2363
|
-
} catch (
|
|
2376
|
+
} catch (e10) {
|
|
2364
2377
|
errorDescription = `Upstream returned HTTP ${tokenResponse.status} ${tokenResponse.statusText}`;
|
|
2365
2378
|
}
|
|
2366
2379
|
throw new OAuthProxyError(errorCode, errorDescription);
|
|
@@ -2471,7 +2484,7 @@ var OAuthProxy = (_class4 = class {
|
|
|
2471
2484
|
let parsed;
|
|
2472
2485
|
try {
|
|
2473
2486
|
parsed = new URL(uri);
|
|
2474
|
-
} catch (
|
|
2487
|
+
} catch (e11) {
|
|
2475
2488
|
return false;
|
|
2476
2489
|
}
|
|
2477
2490
|
if (parsed.username !== "" || parsed.password !== "") {
|
|
@@ -2772,7 +2785,7 @@ var DiskStore = (_class5 = class {
|
|
|
2772
2785
|
console.warn(`Failed to read/parse file ${file}, deleting:`, error);
|
|
2773
2786
|
try {
|
|
2774
2787
|
await _promises.rm.call(void 0, _path.join.call(void 0, this.directory, file));
|
|
2775
|
-
} catch (
|
|
2788
|
+
} catch (e12) {
|
|
2776
2789
|
}
|
|
2777
2790
|
}
|
|
2778
2791
|
}
|
|
@@ -2852,7 +2865,7 @@ var DiskStore = (_class5 = class {
|
|
|
2852
2865
|
await this.ensureDirectory();
|
|
2853
2866
|
const files = await _promises.readdir.call(void 0, this.directory);
|
|
2854
2867
|
return files.filter((f) => f.endsWith(this.fileExtension)).length;
|
|
2855
|
-
} catch (
|
|
2868
|
+
} catch (e13) {
|
|
2856
2869
|
return 0;
|
|
2857
2870
|
}
|
|
2858
2871
|
}
|
|
@@ -3075,5 +3088,6 @@ Original error: ${error.message}`
|
|
|
3075
3088
|
|
|
3076
3089
|
|
|
3077
3090
|
|
|
3078
|
-
|
|
3079
|
-
|
|
3091
|
+
|
|
3092
|
+
exports.cancelResponseBody = cancelResponseBody; 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;
|
|
3093
|
+
//# sourceMappingURL=chunk-YO76IUZ6.cjs.map
|