| 167 | } |
| 168 | |
| 169 | private formatTokens( |
| 170 | response: OAuthTokenExchangeResponse, |
| 171 | subscriptionType: SubscriptionType | null, |
| 172 | rateLimitTier: RateLimitTier | null, |
| 173 | profile?: OAuthProfileResponse, |
| 174 | ): OAuthTokens { |
| 175 | return { |
| 176 | accessToken: response.access_token, |
| 177 | refreshToken: response.refresh_token, |
| 178 | expiresAt: Date.now() + response.expires_in * 1000, |
| 179 | scopes: client.parseScopes(response.scope), |
| 180 | subscriptionType, |
| 181 | rateLimitTier, |
| 182 | profile, |
| 183 | tokenAccount: response.account |
| 184 | ? { |
| 185 | uuid: response.account.uuid, |
| 186 | emailAddress: response.account.email_address, |
| 187 | organizationUuid: response.organization?.uuid, |
| 188 | } |
| 189 | : undefined, |
| 190 | } |
| 191 | } |
| 192 | |
| 193 | // Clean up any resources (like the local server) |
| 194 | cleanup(): void { |