(response: Response)
| 610 | // don't care about. Strip the field before delegation, after extracting the |
| 611 | // optional display label when the token endpoint returned OIDC account claims. |
| 612 | const stripIdToken = async (response: Response): Promise<StrippedTokenResponse> => { |
| 613 | const body = await response |
| 614 | .clone() |
| 615 | .json() |
| 616 | .then( |
| 617 | (value: unknown) => value, |
| 618 | () => null, |
| 619 | ); |
| 620 | if (!body || typeof body !== "object" || !("id_token" in (body as Record<string, unknown>))) { |
| 621 | return { response }; |
| 622 | } |
| 623 | const { id_token: idToken, ...rest } = body as Record<string, unknown>; |
| 624 | const label = typeof idToken === "string" ? idTokenIdentityLabel(idToken) : undefined; |
| 625 | return { |
| 626 | response: new Response(JSON.stringify(rest), { |
| 627 | status: response.status, |
| 628 | statusText: response.statusText, |
| 629 | headers: response.headers, |
| 630 | }), |
| 631 | ...(label ? { idTokenIdentityLabel: label } : {}), |
| 632 | }; |
| 633 | }; |
| 634 | |
| 635 | const processTokenEndpointResponse = async ( |
| 636 | as: oauth.AuthorizationServer, |
no test coverage detected