import mime from "mime"; import { z } from "zod"; export const fileInfoResponse = z.object({ createdAt: z.string().datetime(), mekVersion: z.number().int().positive(), dek: z.string().base64().nonempty(), dekVersion: z.string().datetime(), contentType: z .string() .nonempty() .refine((value) => mime.getExtension(value) !== null), // MIME type contentIv: z.string().base64().nonempty(), name: z.string().base64().nonempty(), nameIv: z.string().base64().nonempty(), }); export type FileInfoResponse = z.infer; export const fileRenameRequest = z.object({ dekVersion: z.string().datetime(), name: z.string().base64().nonempty(), nameIv: z.string().base64().nonempty(), }); export type FileRenameRequest = z.infer; export const fileUploadRequest = z.object({ parentId: z.union([z.enum(["root"]), z.number().int().positive()]), mekVersion: z.number().int().positive(), dek: z.string().base64().nonempty(), dekVersion: z.string().datetime(), contentType: z .string() .nonempty() .refine((value) => mime.getExtension(value) !== null), // MIME type contentIv: z.string().base64().nonempty(), name: z.string().base64().nonempty(), nameIv: z.string().base64().nonempty(), }); export type FileUploadRequest = z.infer;