import { Type } from '@sinclair/typebox' import { date, id } from './utils' export const providers = ['Google', 'GitHub', 'Discord'] as const export const strategies = [...providers, 'Local'] as const export const strategiesTypebox = strategies.map((strategy) => { return Type.Literal(strategy) }) export const providersTypebox = providers.map((provider) => { return Type.Literal(provider) }) export type ProviderOAuth = (typeof providers)[number] export type AuthenticationStrategy = (typeof strategies)[number] export const oauthSchema = { id, providerId: Type.String(), provider: Type.Union([...providersTypebox]), createdAt: date.createdAt, updatedAt: date.updatedAt, userId: id }