(owner: Owner, slug: OAuthClientSlug)
| 590 | /** Where an OAuth app's client secret is stored in the default writable |
| 591 | * provider — derived solely from the app's (owner, slug) identity. */ |
| 592 | const clientSecretItemId = (owner: Owner, slug: OAuthClientSlug): string => |
| 593 | `oauth-client:${owner}:${slug}:secret`; |
| 594 | |
| 595 | const expiresAtFrom = (token: OAuth2TokenResponse): number | null => |
| 596 | typeof token.expires_in === "number" ? Date.now() + token.expires_in * 1000 : null; |