(response: Response)
| 549 | // don't care about. Strip the field before delegation, after extracting the |
| 550 | // optional display label when the token endpoint returned OIDC account claims. |
| 551 | const stripIdToken = async (response: Response): Promise<StrippedTokenResponse> => { |
| 552 | const body = await response |
| 553 | .clone() |
| 554 | .json() |
| 555 | .then( |
| 556 | (value: unknown) => value, |
| 557 | () => null, |
| 558 | ); |
| 559 | if (!body || typeof body !== "object" || !("id_token" in (body as Record<string, unknown>))) { |
| 560 | return { response }; |
| 561 | } |
| 562 | const { id_token: idToken, ...rest } = body as Record<string, unknown>; |
| 563 | const label = typeof idToken === "string" ? idTokenIdentityLabel(idToken) : undefined; |
| 564 | return { |
| 565 | response: new Response(JSON.stringify(rest), { |
| 566 | status: response.status, |
| 567 | statusText: response.statusText, |
| 568 | headers: response.headers, |
| 569 | }), |
| 570 | ...(label ? { idTokenIdentityLabel: label } : {}), |
| 571 | }; |
| 572 | }; |
| 573 | |
| 574 | const processTokenEndpointResponse = async ( |
| 575 | as: oauth.AuthorizationServer, |
no test coverage detected