@modelcontextprotocol/sdk 1.15.1 → 1.17.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.
Files changed (80) hide show
  1. package/README.md +43 -7
  2. package/dist/cjs/client/auth.d.ts +69 -12
  3. package/dist/cjs/client/auth.d.ts.map +1 -1
  4. package/dist/cjs/client/auth.js +216 -39
  5. package/dist/cjs/client/auth.js.map +1 -1
  6. package/dist/cjs/client/index.d.ts +63 -63
  7. package/dist/cjs/client/sse.js +3 -3
  8. package/dist/cjs/client/sse.js.map +1 -1
  9. package/dist/cjs/client/streamableHttp.d.ts.map +1 -1
  10. package/dist/cjs/client/streamableHttp.js +18 -18
  11. package/dist/cjs/client/streamableHttp.js.map +1 -1
  12. package/dist/cjs/server/auth/clients.d.ts +1 -1
  13. package/dist/cjs/server/auth/clients.d.ts.map +1 -1
  14. package/dist/cjs/server/auth/errors.d.ts +33 -18
  15. package/dist/cjs/server/auth/errors.d.ts.map +1 -1
  16. package/dist/cjs/server/auth/errors.js +55 -51
  17. package/dist/cjs/server/auth/errors.js.map +1 -1
  18. package/dist/cjs/server/auth/handlers/register.d.ts +7 -1
  19. package/dist/cjs/server/auth/handlers/register.d.ts.map +1 -1
  20. package/dist/cjs/server/auth/handlers/register.js +5 -4
  21. package/dist/cjs/server/auth/handlers/register.js.map +1 -1
  22. package/dist/cjs/server/auth/providers/proxyProvider.d.ts +6 -0
  23. package/dist/cjs/server/auth/providers/proxyProvider.d.ts.map +1 -1
  24. package/dist/cjs/server/auth/providers/proxyProvider.js +9 -4
  25. package/dist/cjs/server/auth/providers/proxyProvider.js.map +1 -1
  26. package/dist/cjs/server/auth/router.js +1 -1
  27. package/dist/cjs/server/auth/router.js.map +1 -1
  28. package/dist/cjs/server/index.d.ts +6 -6
  29. package/dist/cjs/shared/auth.d.ts +290 -0
  30. package/dist/cjs/shared/auth.d.ts.map +1 -1
  31. package/dist/cjs/shared/auth.js +59 -1
  32. package/dist/cjs/shared/auth.js.map +1 -1
  33. package/dist/cjs/shared/protocol.d.ts +8 -0
  34. package/dist/cjs/shared/protocol.d.ts.map +1 -1
  35. package/dist/cjs/shared/protocol.js +37 -0
  36. package/dist/cjs/shared/protocol.js.map +1 -1
  37. package/dist/cjs/types.d.ts +687 -687
  38. package/dist/cjs/types.d.ts.map +1 -1
  39. package/dist/cjs/types.js +19 -3
  40. package/dist/cjs/types.js.map +1 -1
  41. package/dist/esm/client/auth.d.ts +69 -12
  42. package/dist/esm/client/auth.d.ts.map +1 -1
  43. package/dist/esm/client/auth.js +208 -34
  44. package/dist/esm/client/auth.js.map +1 -1
  45. package/dist/esm/client/index.d.ts +63 -63
  46. package/dist/esm/client/sse.js +3 -3
  47. package/dist/esm/client/sse.js.map +1 -1
  48. package/dist/esm/client/streamableHttp.d.ts.map +1 -1
  49. package/dist/esm/client/streamableHttp.js +18 -18
  50. package/dist/esm/client/streamableHttp.js.map +1 -1
  51. package/dist/esm/server/auth/clients.d.ts +1 -1
  52. package/dist/esm/server/auth/clients.d.ts.map +1 -1
  53. package/dist/esm/server/auth/errors.d.ts +33 -18
  54. package/dist/esm/server/auth/errors.d.ts.map +1 -1
  55. package/dist/esm/server/auth/errors.js +52 -49
  56. package/dist/esm/server/auth/errors.js.map +1 -1
  57. package/dist/esm/server/auth/handlers/register.d.ts +7 -1
  58. package/dist/esm/server/auth/handlers/register.d.ts.map +1 -1
  59. package/dist/esm/server/auth/handlers/register.js +5 -4
  60. package/dist/esm/server/auth/handlers/register.js.map +1 -1
  61. package/dist/esm/server/auth/providers/proxyProvider.d.ts +6 -0
  62. package/dist/esm/server/auth/providers/proxyProvider.d.ts.map +1 -1
  63. package/dist/esm/server/auth/providers/proxyProvider.js +9 -4
  64. package/dist/esm/server/auth/providers/proxyProvider.js.map +1 -1
  65. package/dist/esm/server/auth/router.js +1 -1
  66. package/dist/esm/server/auth/router.js.map +1 -1
  67. package/dist/esm/server/index.d.ts +6 -6
  68. package/dist/esm/shared/auth.d.ts +290 -0
  69. package/dist/esm/shared/auth.d.ts.map +1 -1
  70. package/dist/esm/shared/auth.js +58 -0
  71. package/dist/esm/shared/auth.js.map +1 -1
  72. package/dist/esm/shared/protocol.d.ts +8 -0
  73. package/dist/esm/shared/protocol.d.ts.map +1 -1
  74. package/dist/esm/shared/protocol.js +37 -0
  75. package/dist/esm/shared/protocol.js.map +1 -1
  76. package/dist/esm/types.d.ts +687 -687
  77. package/dist/esm/types.d.ts.map +1 -1
  78. package/dist/esm/types.js +19 -3
  79. package/dist/esm/types.js.map +1 -1
  80. package/package.json +3 -2
@@ -1,7 +1,9 @@
1
1
  import pkceChallenge from "pkce-challenge";
2
2
  import { LATEST_PROTOCOL_VERSION } from "../types.js";
3
+ import { OAuthErrorResponseSchema, OpenIdProviderDiscoveryMetadataSchema } from "../shared/auth.js";
3
4
  import { OAuthClientInformationFullSchema, OAuthMetadataSchema, OAuthProtectedResourceMetadataSchema, OAuthTokensSchema } from "../shared/auth.js";
4
5
  import { checkResourceAllowed, resourceUrlFromServerUrl } from "../shared/auth-utils.js";
6
+ import { InvalidClientError, InvalidGrantError, OAUTH_ERRORS, OAuthError, ServerError, UnauthorizedClientError } from "../server/auth/errors.js";
5
7
  export class UnauthorizedError extends Error {
6
8
  constructor(message) {
7
9
  super(message !== null && message !== void 0 ? message : "Unauthorized");
@@ -93,17 +95,62 @@ function applyPostAuth(clientId, clientSecret, params) {
93
95
  function applyPublicAuth(clientId, params) {
94
96
  params.set("client_id", clientId);
95
97
  }
98
+ /**
99
+ * Parses an OAuth error response from a string or Response object.
100
+ *
101
+ * If the input is a standard OAuth2.0 error response, it will be parsed according to the spec
102
+ * and an instance of the appropriate OAuthError subclass will be returned.
103
+ * If parsing fails, it falls back to a generic ServerError that includes
104
+ * the response status (if available) and original content.
105
+ *
106
+ * @param input - A Response object or string containing the error response
107
+ * @returns A Promise that resolves to an OAuthError instance
108
+ */
109
+ export async function parseErrorResponse(input) {
110
+ const statusCode = input instanceof Response ? input.status : undefined;
111
+ const body = input instanceof Response ? await input.text() : input;
112
+ try {
113
+ const result = OAuthErrorResponseSchema.parse(JSON.parse(body));
114
+ const { error, error_description, error_uri } = result;
115
+ const errorClass = OAUTH_ERRORS[error] || ServerError;
116
+ return new errorClass(error_description || '', error_uri);
117
+ }
118
+ catch (error) {
119
+ // Not a valid OAuth error response, but try to inform the user of the raw data anyway
120
+ const errorMessage = `${statusCode ? `HTTP ${statusCode}: ` : ''}Invalid OAuth error response: ${error}. Raw body: ${body}`;
121
+ return new ServerError(errorMessage);
122
+ }
123
+ }
96
124
  /**
97
125
  * Orchestrates the full auth flow with a server.
98
126
  *
99
127
  * This can be used as a single entry point for all authorization functionality,
100
128
  * instead of linking together the other lower-level functions in this module.
101
129
  */
102
- export async function auth(provider, { serverUrl, authorizationCode, scope, resourceMetadataUrl }) {
130
+ export async function auth(provider, options) {
131
+ var _a, _b;
132
+ try {
133
+ return await authInternal(provider, options);
134
+ }
135
+ catch (error) {
136
+ // Handle recoverable error types by invalidating credentials and retrying
137
+ if (error instanceof InvalidClientError || error instanceof UnauthorizedClientError) {
138
+ await ((_a = provider.invalidateCredentials) === null || _a === void 0 ? void 0 : _a.call(provider, 'all'));
139
+ return await authInternal(provider, options);
140
+ }
141
+ else if (error instanceof InvalidGrantError) {
142
+ await ((_b = provider.invalidateCredentials) === null || _b === void 0 ? void 0 : _b.call(provider, 'tokens'));
143
+ return await authInternal(provider, options);
144
+ }
145
+ // Throw otherwise
146
+ throw error;
147
+ }
148
+ }
149
+ async function authInternal(provider, { serverUrl, authorizationCode, scope, resourceMetadataUrl, fetchFn, }) {
103
150
  let resourceMetadata;
104
- let authorizationServerUrl = serverUrl;
151
+ let authorizationServerUrl;
105
152
  try {
106
- resourceMetadata = await discoverOAuthProtectedResourceMetadata(serverUrl, { resourceMetadataUrl });
153
+ resourceMetadata = await discoverOAuthProtectedResourceMetadata(serverUrl, { resourceMetadataUrl }, fetchFn);
107
154
  if (resourceMetadata.authorization_servers && resourceMetadata.authorization_servers.length > 0) {
108
155
  authorizationServerUrl = resourceMetadata.authorization_servers[0];
109
156
  }
@@ -111,9 +158,16 @@ export async function auth(provider, { serverUrl, authorizationCode, scope, reso
111
158
  catch (_a) {
112
159
  // Ignore errors and fall back to /.well-known/oauth-authorization-server
113
160
  }
161
+ /**
162
+ * If we don't get a valid authorization server metadata from protected resource metadata,
163
+ * fallback to the legacy MCP spec's implementation (version 2025-03-26): MCP server acts as the Authorization server.
164
+ */
165
+ if (!authorizationServerUrl) {
166
+ authorizationServerUrl = serverUrl;
167
+ }
114
168
  const resource = await selectResourceURL(serverUrl, provider, resourceMetadata);
115
- const metadata = await discoverOAuthMetadata(serverUrl, {
116
- authorizationServerUrl
169
+ const metadata = await discoverAuthorizationServerMetadata(authorizationServerUrl, {
170
+ fetchFn,
117
171
  });
118
172
  // Handle client registration if needed
119
173
  let clientInformation = await Promise.resolve(provider.clientInformation());
@@ -142,6 +196,7 @@ export async function auth(provider, { serverUrl, authorizationCode, scope, reso
142
196
  redirectUri: provider.redirectUrl,
143
197
  resource,
144
198
  addClientAuthentication: provider.addClientAuthentication,
199
+ fetchFn: fetchFn,
145
200
  });
146
201
  await provider.saveTokens(tokens);
147
202
  return "AUTHORIZED";
@@ -161,8 +216,15 @@ export async function auth(provider, { serverUrl, authorizationCode, scope, reso
161
216
  await provider.saveTokens(newTokens);
162
217
  return "AUTHORIZED";
163
218
  }
164
- catch (_b) {
165
- // Could not refresh OAuth tokens
219
+ catch (error) {
220
+ // If this is a ServerError, or an unknown type, log it out and try to continue. Otherwise, escalate so we can fix things and retry.
221
+ if (!(error instanceof OAuthError) || error instanceof ServerError) {
222
+ // Could not refresh OAuth tokens
223
+ }
224
+ else {
225
+ // Refresh failed for another reason, re-throw
226
+ throw error;
227
+ }
166
228
  }
167
229
  }
168
230
  const state = provider.state ? await provider.state() : undefined;
@@ -226,8 +288,8 @@ export function extractResourceMetadataUrl(res) {
226
288
  * If the server returns a 404 for the well-known endpoint, this function will
227
289
  * return `undefined`. Any other errors will be thrown as exceptions.
228
290
  */
229
- export async function discoverOAuthProtectedResourceMetadata(serverUrl, opts) {
230
- const response = await discoverMetadataWithFallback(serverUrl, 'oauth-protected-resource', {
291
+ export async function discoverOAuthProtectedResourceMetadata(serverUrl, opts, fetchFn = fetch) {
292
+ const response = await discoverMetadataWithFallback(serverUrl, 'oauth-protected-resource', fetchFn, {
231
293
  protocolVersion: opts === null || opts === void 0 ? void 0 : opts.protocolVersion,
232
294
  metadataUrl: opts === null || opts === void 0 ? void 0 : opts.resourceMetadataUrl,
233
295
  });
@@ -242,15 +304,15 @@ export async function discoverOAuthProtectedResourceMetadata(serverUrl, opts) {
242
304
  /**
243
305
  * Helper function to handle fetch with CORS retry logic
244
306
  */
245
- async function fetchWithCorsRetry(url, headers) {
307
+ async function fetchWithCorsRetry(url, headers, fetchFn = fetch) {
246
308
  try {
247
- return await fetch(url, { headers });
309
+ return await fetchFn(url, { headers });
248
310
  }
249
311
  catch (error) {
250
312
  if (error instanceof TypeError) {
251
313
  if (headers) {
252
314
  // CORS errors come back as TypeError, retry without headers
253
- return fetchWithCorsRetry(url);
315
+ return fetchWithCorsRetry(url, undefined, fetchFn);
254
316
  }
255
317
  else {
256
318
  // We're getting CORS errors on retry too, return undefined
@@ -261,24 +323,25 @@ async function fetchWithCorsRetry(url, headers) {
261
323
  }
262
324
  }
263
325
  /**
264
- * Constructs the well-known path for OAuth metadata discovery
326
+ * Constructs the well-known path for auth-related metadata discovery
265
327
  */
266
- function buildWellKnownPath(wellKnownPrefix, pathname) {
267
- let wellKnownPath = `/.well-known/${wellKnownPrefix}${pathname}`;
328
+ function buildWellKnownPath(wellKnownPrefix, pathname = '', options = {}) {
329
+ // Strip trailing slash from pathname to avoid double slashes
268
330
  if (pathname.endsWith('/')) {
269
- // Strip trailing slash from pathname to avoid double slashes
270
- wellKnownPath = wellKnownPath.slice(0, -1);
331
+ pathname = pathname.slice(0, -1);
271
332
  }
272
- return wellKnownPath;
333
+ return options.prependPathname
334
+ ? `${pathname}/.well-known/${wellKnownPrefix}`
335
+ : `/.well-known/${wellKnownPrefix}${pathname}`;
273
336
  }
274
337
  /**
275
338
  * Tries to discover OAuth metadata at a specific URL
276
339
  */
277
- async function tryMetadataDiscovery(url, protocolVersion) {
340
+ async function tryMetadataDiscovery(url, protocolVersion, fetchFn = fetch) {
278
341
  const headers = {
279
342
  "MCP-Protocol-Version": protocolVersion
280
343
  };
281
- return await fetchWithCorsRetry(url, headers);
344
+ return await fetchWithCorsRetry(url, headers, fetchFn);
282
345
  }
283
346
  /**
284
347
  * Determines if fallback to root discovery should be attempted
@@ -289,7 +352,7 @@ function shouldAttemptFallback(response, pathname) {
289
352
  /**
290
353
  * Generic function for discovering OAuth metadata with fallback support
291
354
  */
292
- async function discoverMetadataWithFallback(serverUrl, wellKnownType, opts) {
355
+ async function discoverMetadataWithFallback(serverUrl, wellKnownType, fetchFn, opts) {
293
356
  var _a, _b;
294
357
  const issuer = new URL(serverUrl);
295
358
  const protocolVersion = (_a = opts === null || opts === void 0 ? void 0 : opts.protocolVersion) !== null && _a !== void 0 ? _a : LATEST_PROTOCOL_VERSION;
@@ -303,11 +366,11 @@ async function discoverMetadataWithFallback(serverUrl, wellKnownType, opts) {
303
366
  url = new URL(wellKnownPath, (_b = opts === null || opts === void 0 ? void 0 : opts.metadataServerUrl) !== null && _b !== void 0 ? _b : issuer);
304
367
  url.search = issuer.search;
305
368
  }
306
- let response = await tryMetadataDiscovery(url, protocolVersion);
369
+ let response = await tryMetadataDiscovery(url, protocolVersion, fetchFn);
307
370
  // If path-aware discovery fails with 404 and we're not already at root, try fallback to root discovery
308
371
  if (!(opts === null || opts === void 0 ? void 0 : opts.metadataUrl) && shouldAttemptFallback(response, issuer.pathname)) {
309
372
  const rootUrl = new URL(`/.well-known/${wellKnownType}`, issuer);
310
- response = await tryMetadataDiscovery(rootUrl, protocolVersion);
373
+ response = await tryMetadataDiscovery(rootUrl, protocolVersion, fetchFn);
311
374
  }
312
375
  return response;
313
376
  }
@@ -316,8 +379,10 @@ async function discoverMetadataWithFallback(serverUrl, wellKnownType, opts) {
316
379
  *
317
380
  * If the server returns a 404 for the well-known endpoint, this function will
318
381
  * return `undefined`. Any other errors will be thrown as exceptions.
382
+ *
383
+ * @deprecated This function is deprecated in favor of `discoverAuthorizationServerMetadata`.
319
384
  */
320
- export async function discoverOAuthMetadata(issuer, { authorizationServerUrl, protocolVersion, } = {}) {
385
+ export async function discoverOAuthMetadata(issuer, { authorizationServerUrl, protocolVersion, } = {}, fetchFn = fetch) {
321
386
  if (typeof issuer === 'string') {
322
387
  issuer = new URL(issuer);
323
388
  }
@@ -328,7 +393,7 @@ export async function discoverOAuthMetadata(issuer, { authorizationServerUrl, pr
328
393
  authorizationServerUrl = new URL(authorizationServerUrl);
329
394
  }
330
395
  protocolVersion !== null && protocolVersion !== void 0 ? protocolVersion : (protocolVersion = LATEST_PROTOCOL_VERSION);
331
- const response = await discoverMetadataWithFallback(issuer, 'oauth-authorization-server', {
396
+ const response = await discoverMetadataWithFallback(authorizationServerUrl, 'oauth-authorization-server', fetchFn, {
332
397
  protocolVersion,
333
398
  metadataServerUrl: authorizationServerUrl,
334
399
  });
@@ -340,6 +405,108 @@ export async function discoverOAuthMetadata(issuer, { authorizationServerUrl, pr
340
405
  }
341
406
  return OAuthMetadataSchema.parse(await response.json());
342
407
  }
408
+ /**
409
+ * Builds a list of discovery URLs to try for authorization server metadata.
410
+ * URLs are returned in priority order:
411
+ * 1. OAuth metadata at the given URL
412
+ * 2. OAuth metadata at root (if URL has path)
413
+ * 3. OIDC metadata endpoints
414
+ */
415
+ export function buildDiscoveryUrls(authorizationServerUrl) {
416
+ const url = typeof authorizationServerUrl === 'string' ? new URL(authorizationServerUrl) : authorizationServerUrl;
417
+ const hasPath = url.pathname !== '/';
418
+ const urlsToTry = [];
419
+ if (!hasPath) {
420
+ // Root path: https://example.com/.well-known/oauth-authorization-server
421
+ urlsToTry.push({
422
+ url: new URL('/.well-known/oauth-authorization-server', url.origin),
423
+ type: 'oauth'
424
+ });
425
+ // OIDC: https://example.com/.well-known/openid-configuration
426
+ urlsToTry.push({
427
+ url: new URL(`/.well-known/openid-configuration`, url.origin),
428
+ type: 'oidc'
429
+ });
430
+ return urlsToTry;
431
+ }
432
+ // Strip trailing slash from pathname to avoid double slashes
433
+ let pathname = url.pathname;
434
+ if (pathname.endsWith('/')) {
435
+ pathname = pathname.slice(0, -1);
436
+ }
437
+ // 1. OAuth metadata at the given URL
438
+ // Insert well-known before the path: https://example.com/.well-known/oauth-authorization-server/tenant1
439
+ urlsToTry.push({
440
+ url: new URL(`/.well-known/oauth-authorization-server${pathname}`, url.origin),
441
+ type: 'oauth'
442
+ });
443
+ // Root path: https://example.com/.well-known/oauth-authorization-server
444
+ urlsToTry.push({
445
+ url: new URL('/.well-known/oauth-authorization-server', url.origin),
446
+ type: 'oauth'
447
+ });
448
+ // 3. OIDC metadata endpoints
449
+ // RFC 8414 style: Insert /.well-known/openid-configuration before the path
450
+ urlsToTry.push({
451
+ url: new URL(`/.well-known/openid-configuration${pathname}`, url.origin),
452
+ type: 'oidc'
453
+ });
454
+ // OIDC Discovery 1.0 style: Append /.well-known/openid-configuration after the path
455
+ urlsToTry.push({
456
+ url: new URL(`${pathname}/.well-known/openid-configuration`, url.origin),
457
+ type: 'oidc'
458
+ });
459
+ return urlsToTry;
460
+ }
461
+ /**
462
+ * Discovers authorization server metadata with support for RFC 8414 OAuth 2.0 Authorization Server Metadata
463
+ * and OpenID Connect Discovery 1.0 specifications.
464
+ *
465
+ * This function implements a fallback strategy for authorization server discovery:
466
+ * 1. Attempts RFC 8414 OAuth metadata discovery first
467
+ * 2. If OAuth discovery fails, falls back to OpenID Connect Discovery
468
+ *
469
+ * @param authorizationServerUrl - The authorization server URL obtained from the MCP Server's
470
+ * protected resource metadata, or the MCP server's URL if the
471
+ * metadata was not found.
472
+ * @param options - Configuration options
473
+ * @param options.fetchFn - Optional fetch function for making HTTP requests, defaults to global fetch
474
+ * @param options.protocolVersion - MCP protocol version to use, defaults to LATEST_PROTOCOL_VERSION
475
+ * @returns Promise resolving to authorization server metadata, or undefined if discovery fails
476
+ */
477
+ export async function discoverAuthorizationServerMetadata(authorizationServerUrl, { fetchFn = fetch, protocolVersion = LATEST_PROTOCOL_VERSION, } = {}) {
478
+ var _a;
479
+ const headers = { 'MCP-Protocol-Version': protocolVersion };
480
+ // Get the list of URLs to try
481
+ const urlsToTry = buildDiscoveryUrls(authorizationServerUrl);
482
+ // Try each URL in order
483
+ for (const { url: endpointUrl, type } of urlsToTry) {
484
+ const response = await fetchWithCorsRetry(endpointUrl, headers, fetchFn);
485
+ if (!response) {
486
+ throw new Error(`CORS error trying to load ${type === 'oauth' ? 'OAuth' : 'OpenID provider'} metadata from ${endpointUrl}`);
487
+ }
488
+ if (!response.ok) {
489
+ // Continue looking for any 4xx response code.
490
+ if (response.status >= 400 && response.status < 500) {
491
+ continue; // Try next URL
492
+ }
493
+ throw new Error(`HTTP ${response.status} trying to load ${type === 'oauth' ? 'OAuth' : 'OpenID provider'} metadata from ${endpointUrl}`);
494
+ }
495
+ // Parse and validate based on type
496
+ if (type === 'oauth') {
497
+ return OAuthMetadataSchema.parse(await response.json());
498
+ }
499
+ else {
500
+ const metadata = OpenIdProviderDiscoveryMetadataSchema.parse(await response.json());
501
+ // MCP spec requires OIDC providers to support S256 PKCE
502
+ if (!((_a = metadata.code_challenge_methods_supported) === null || _a === void 0 ? void 0 : _a.includes('S256'))) {
503
+ throw new Error(`Incompatible OIDC provider at ${endpointUrl}: does not support S256 code challenge method required by MCP specification`);
504
+ }
505
+ return metadata;
506
+ }
507
+ }
508
+ return undefined;
509
+ }
343
510
  /**
344
511
  * Begins the authorization flow with the given server, by generating a PKCE challenge and constructing the authorization URL.
345
512
  */
@@ -375,6 +542,12 @@ export async function startAuthorization(authorizationServerUrl, { metadata, cli
375
542
  if (scope) {
376
543
  authorizationUrl.searchParams.set("scope", scope);
377
544
  }
545
+ if (scope === null || scope === void 0 ? void 0 : scope.includes("offline_access")) {
546
+ // if the request includes the OIDC-only "offline_access" scope,
547
+ // we need to set the prompt to "consent" to ensure the user is prompted to grant offline access
548
+ // https://openid.net/specs/openid-connect-core-1_0.html#OfflineAccess
549
+ authorizationUrl.searchParams.append("prompt", "consent");
550
+ }
378
551
  if (resource) {
379
552
  authorizationUrl.searchParams.set("resource", resource.href);
380
553
  }
@@ -392,7 +565,7 @@ export async function startAuthorization(authorizationServerUrl, { metadata, cli
392
565
  * @returns Promise resolving to OAuth tokens
393
566
  * @throws {Error} When token exchange fails or authentication is invalid
394
567
  */
395
- export async function exchangeAuthorization(authorizationServerUrl, { metadata, clientInformation, authorizationCode, codeVerifier, redirectUri, resource, addClientAuthentication }) {
568
+ export async function exchangeAuthorization(authorizationServerUrl, { metadata, clientInformation, authorizationCode, codeVerifier, redirectUri, resource, addClientAuthentication, fetchFn, }) {
396
569
  var _a;
397
570
  const grantType = "authorization_code";
398
571
  const tokenUrl = (metadata === null || metadata === void 0 ? void 0 : metadata.token_endpoint)
@@ -405,6 +578,7 @@ export async function exchangeAuthorization(authorizationServerUrl, { metadata,
405
578
  // Exchange code for tokens
406
579
  const headers = new Headers({
407
580
  "Content-Type": "application/x-www-form-urlencoded",
581
+ "Accept": "application/json",
408
582
  });
409
583
  const params = new URLSearchParams({
410
584
  grant_type: grantType,
@@ -424,13 +598,13 @@ export async function exchangeAuthorization(authorizationServerUrl, { metadata,
424
598
  if (resource) {
425
599
  params.set("resource", resource.href);
426
600
  }
427
- const response = await fetch(tokenUrl, {
601
+ const response = await (fetchFn !== null && fetchFn !== void 0 ? fetchFn : fetch)(tokenUrl, {
428
602
  method: "POST",
429
603
  headers,
430
604
  body: params,
431
605
  });
432
606
  if (!response.ok) {
433
- throw new Error(`Token exchange failed: HTTP ${response.status}`);
607
+ throw await parseErrorResponse(response);
434
608
  }
435
609
  return OAuthTokensSchema.parse(await response.json());
436
610
  }
@@ -446,7 +620,7 @@ export async function exchangeAuthorization(authorizationServerUrl, { metadata,
446
620
  * @returns Promise resolving to OAuth tokens (preserves original refresh_token if not replaced)
447
621
  * @throws {Error} When token refresh fails or authentication is invalid
448
622
  */
449
- export async function refreshAuthorization(authorizationServerUrl, { metadata, clientInformation, refreshToken, resource, addClientAuthentication, }) {
623
+ export async function refreshAuthorization(authorizationServerUrl, { metadata, clientInformation, refreshToken, resource, addClientAuthentication, fetchFn, }) {
450
624
  var _a;
451
625
  const grantType = "refresh_token";
452
626
  let tokenUrl;
@@ -480,20 +654,20 @@ export async function refreshAuthorization(authorizationServerUrl, { metadata, c
480
654
  if (resource) {
481
655
  params.set("resource", resource.href);
482
656
  }
483
- const response = await fetch(tokenUrl, {
657
+ const response = await (fetchFn !== null && fetchFn !== void 0 ? fetchFn : fetch)(tokenUrl, {
484
658
  method: "POST",
485
659
  headers,
486
660
  body: params,
487
661
  });
488
662
  if (!response.ok) {
489
- throw new Error(`Token refresh failed: HTTP ${response.status}`);
663
+ throw await parseErrorResponse(response);
490
664
  }
491
665
  return OAuthTokensSchema.parse({ refresh_token: refreshToken, ...(await response.json()) });
492
666
  }
493
667
  /**
494
668
  * Performs OAuth 2.0 Dynamic Client Registration according to RFC 7591.
495
669
  */
496
- export async function registerClient(authorizationServerUrl, { metadata, clientMetadata, }) {
670
+ export async function registerClient(authorizationServerUrl, { metadata, clientMetadata, fetchFn, }) {
497
671
  let registrationUrl;
498
672
  if (metadata) {
499
673
  if (!metadata.registration_endpoint) {
@@ -504,7 +678,7 @@ export async function registerClient(authorizationServerUrl, { metadata, clientM
504
678
  else {
505
679
  registrationUrl = new URL("/register", authorizationServerUrl);
506
680
  }
507
- const response = await fetch(registrationUrl, {
681
+ const response = await (fetchFn !== null && fetchFn !== void 0 ? fetchFn : fetch)(registrationUrl, {
508
682
  method: "POST",
509
683
  headers: {
510
684
  "Content-Type": "application/json",
@@ -512,7 +686,7 @@ export async function registerClient(authorizationServerUrl, { metadata, clientM
512
686
  body: JSON.stringify(clientMetadata),
513
687
  });
514
688
  if (!response.ok) {
515
- throw new Error(`Dynamic client registration failed: HTTP ${response.status}`);
689
+ throw await parseErrorResponse(response);
516
690
  }
517
691
  return OAuthClientInformationFullSchema.parse(await response.json());
518
692
  }
@@ -1 +1 @@
1
- {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../src/client/auth.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../src/client/auth.ts"],"names":[],"mappings":"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"}