export function parseCookies(cookieHeader: string | null) { const cookies: Record = {}; if (!cookieHeader) { return cookies; } // Split the cookie string by semicolons and spaces const items = cookieHeader.split(';').map((cookie) => cookie.trim()); items.forEach((item) => { const [name, ...rest] = item.split('='); if (name && rest.length > 0) { // Decode the name and value, and join value parts in case it contains '=' const decodedName = decodeURIComponent(name.trim()); const decodedValue = decodeURIComponent(rest.join('=').trim()); cookies[decodedName] = decodedValue; } }); return cookies; } export function getApiKeysFromCookie(cookieHeader: string | null): Record { const cookies = parseCookies(cookieHeader); return cookies.apiKeys ? JSON.parse(cookies.apiKeys) : {}; } export function getProviderSettingsFromCookie(cookieHeader: string | null): Record { const cookies = parseCookies(cookieHeader); return cookies.providers ? JSON.parse(cookies.providers) : {}; }