import {z} from "zod"; const commentsConfigSchema = z.object({ mail: z.object({ imap: z.object({ host: z.string(), port: z.number({ coerce: true }), auth: z.object({ user: z.string(), pass: z.string(), }), }), threads: z.object({ type: z.string(), // fixme : in validation template: z.string(), idPrefix: z.string(), }), }), }) export type CommentsConfig = z.infer export const castCommentsConfig = (what: unknown): CommentsConfig => { return commentsConfigSchema.parse(what) } export type Message = { id: string, date: Date, recipients: string[], from: { name?: string, address?: string, }, subject: string, content: string, thread?: string, }