import * as x from 'x-value'; import {Argon2Hash, Phone, Sha256Hash, UUID} from '../x-value/index.js'; import {Username} from './user.js'; export const AccessToken = UUID.nominal<'access token'>(); export const AccessTokenHash = Sha256Hash.nominal<'access token sha256 hash'>(); export const PasswordHash = Argon2Hash.nominal<'password argon2 hash'>(); export const GitHubId = x.number.nominal<'github id'>(); export const UserIdentifier = x.union([ x.object({ type: x.literal('username'), username: Username, }), x.object({ type: x.literal('phone'), phone: Phone, }), ]);