import { FILE_GROUP_BATCH as e, FILE_GROUP_THRESHOLD as t } from "./chat-file.constant"
import { isMediaMimeType as a } from "../../lib/file"
const s = (e) =>
/^data:(?:[\w-]+\/[\w.+-]+(?:;[\w!#$%&'*+.^`{|}~-]+=[\w!#$%&'*+.^`{|}~-]+)*)?(?:;base64)?,[\w()/!$&'*+.,;=~:@?%-]*$/iu.test(
e,
)
export const isFilePath = (e) => e && !s(e)
export const getBytes = (e) => {
let t
return (s(e.path) && (t = Buffer.from(e.path.split("base64,")[1], "base64")), t)
}
export const generateTempId = (e) => (e.id ? e.id : e.url)
export function groupFiles(s) {
const i = [],
n = []
for (const e of s) a(e.metadata.mimetype) ? i.push(e) : n.push(e)
const o = n.map((e) => [e])
let r = []
if (i.length < t) r = i.map((e) => [e])
else
for (let t = 0; t < i.length; t += e) {
const a = i.slice(t, t + e)
r.push(a)
}
return [...o, ...r]
}
function i(e) {
return {
base64: e.base64,
buffer: e.buffer,
mimetype: e.metadata.mimetype,
dimensions: e.metadata.dimensions,
}
}
export function getChatFileMetadata(e) {
return {
previews: { large: i(e.large), medium: i(e.medium), small: i(e.small) },
dimensions: e.metadata.dimensions,
}
}