function isJsonContentType(contentType: string | null) { return Boolean(contentType && (contentType.includes("application/json") || contentType.includes("+json"))); } export function isRecord(value: unknown): value is Record { return typeof value === "object" && value !== null; } export async function readResponsePayload(response: Response): Promise { if (response.status === 204 || response.status === 205) { return null; } const raw = await response.text(); if (!raw) { return null; } if (!isJsonContentType(response.headers.get("content-type"))) { return raw; } try { return JSON.parse(raw) as unknown; } catch { return raw; } } export function getResponseErrorMessage(payload: unknown, fallback: string) { if (isRecord(payload)) { const detail = payload.detail; if (typeof detail === "string" && detail.trim()) { return detail; } const message = payload.message; if (typeof message === "string" && message.trim()) { return message; } } if (typeof payload === "string" && payload.trim()) { const trimmed = payload.trim(); if (trimmed.startsWith("