export type { CreateFlowUploadPurpose } from "../../create/createFlowUploadPurpose"; export { CREATE_FLOW_UPLOAD_PURPOSES } from "../../create/createFlowUploadPurpose"; export { maxBytesForPurpose } from "../../create/createFlowUploadValidation"; /** Max body size for multipart upload (bytes). */ export const CREATE_FLOW_UPLOAD_MAX_BYTES = 12 * 1024 * 1024; /** Extension including dot, from normalized mime (lowercase). */ export function extensionForMime(mime: string): string { const m = mime.toLowerCase().split(";")[0]?.trim() ?? ""; switch (m) { case "image/jpeg": return ".jpg"; case "image/png": return ".png"; case "image/webp": return ".webp"; case "image/gif": return ".gif"; case "application/pdf": return ".pdf"; default: return ".bin"; } } /** Strict id: uuid v4 filename stem (no extension in id param for GET). */ const UPLOAD_ID_RE = /^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i; export function isValidUploadFileId(id: string): boolean { return UPLOAD_ID_RE.test(id); }