import { Generated, Selectable } from 'kysely' import { ClientAuth, ClientAuthLegacy, Code, DeviceId, OAuthAuthorizationDetails, OAuthAuthorizationRequestParameters, OAuthClientId, RefreshToken, Sub, TokenId, } from '@atproto/oauth-provider' import { DateISO, JsonEncoded } from '../../../db/cast' export interface Token { id: Generated did: Sub tokenId: TokenId createdAt: DateISO updatedAt: DateISO expiresAt: DateISO clientId: OAuthClientId clientAuth: JsonEncoded deviceId: DeviceId | null parameters: JsonEncoded details: JsonEncoded | null code: Code | null currentRefreshToken: RefreshToken | null scope: string | null } export type TokenEntry = Selectable export const tableName = 'token' export type PartialDB = { [tableName]: Token }