(response: Response)
| 512 | // don't care about. Strip the field before delegation, after extracting the |
| 513 | // optional display label when the token endpoint returned OIDC account claims. |
| 514 | const stripIdToken = async (response: Response): Promise<StrippedTokenResponse> => { |
| 515 | const body = await response |
| 516 | .clone() |
| 517 | .json() |
| 518 | .then( |
| 519 | (value: unknown) => value, |
| 520 | () => null, |
| 521 | ); |
| 522 | if (!body || typeof body !== "object" || !("id_token" in (body as Record<string, unknown>))) { |
| 523 | return { response }; |
| 524 | } |
| 525 | const { id_token: idToken, ...rest } = body as Record<string, unknown>; |
| 526 | const label = typeof idToken === "string" ? idTokenIdentityLabel(idToken) : undefined; |
| 527 | return { |
| 528 | response: new Response(JSON.stringify(rest), { |
| 529 | status: response.status, |
| 530 | statusText: response.statusText, |
| 531 | headers: response.headers, |
| 532 | }), |
| 533 | ...(label ? { idTokenIdentityLabel: label } : {}), |
| 534 | }; |
| 535 | }; |
| 536 | |
| 537 | const processTokenEndpointResponse = async ( |
| 538 | as: oauth.AuthorizationServer, |
no test coverage detected