UNPKG

aegis-auth

Version:

A credentials-based auth solution for Next.js (and other Node projects) with IP rate-limiting, account lockouts, and sessions in DB.

54 lines 1.78 kB
import { VerificationType } from "@prisma/client"; import { z } from "zod"; import { getEmailSchema, getPasswordSchema, getUsernameSchema, } from "./templates"; export const completeEmailChangeSchema = z.object({ token: z.string().min(1), }); export const completePasswordResetSchema = z.object({ token: z.string().min(1), newPassword: getPasswordSchema("Password"), }); export const createSessionSchema = z.object({ userId: z.string().min(1), }); export const createVerificationSchema = z.object({ userId: z.string().min(1), type: z.nativeEnum(VerificationType), tokenExpirySeconds: z.number().int().positive().optional(), }); export const initiateEmailChangeSchema = z.object({ userId: z.string().min(1), newEmail: getEmailSchema(), }); export const initiatePasswordResetSchema = z.object({ email: getEmailSchema(), }); export const loginSchema = z.object({ usernameOrEmail: z.union([getEmailSchema(), getUsernameSchema()]), password: getPasswordSchema("Password"), }); export const logoutUserSchema = z.object({ sessionToken: z.string().min(1), }); export const registerSchema = z.object({ username: getUsernameSchema(), email: getEmailSchema(), password: getPasswordSchema("Password"), }); export const revokeAllSessionsForUserSchema = z.object({ userId: z.string().min(1), }); export const revokeSessionSchema = z.object({ sessionToken: z.string().min(1), }); export const useVerificationTokenSchema = z.object({ token: z.string().min(1), type: z.nativeEnum(VerificationType), }); export const validateAndRotateSessionSchema = z.object({ sessionToken: z.string().min(1), }); export const verifyEmailSchema = z.object({ token: z.string().min(1), }); //# sourceMappingURL=schemas.js.map