export async function getFileById(fileId: string): Promise { const res = await fetch(`/api/v1/files?key=${encodeURIComponent(fileId)}`) if (res.ok) return await res.blob() const text = await res.text() let json: unknown = null if (text) { try { json = JSON.parse(text) as unknown } catch { json = null } } const maybeObj = (typeof json === "object" && json !== null ? json : null) as { code?: unknown message?: unknown msg?: unknown } | null const code = (typeof maybeObj?.code === "number" ? maybeObj.code : res.status) as number const msg = typeof maybeObj?.message === "string" ? maybeObj.message : typeof maybeObj?.msg === "string" ? maybeObj.msg : text || res.statusText || "Request failed" if (res.status === 401 || code === 401) throw new Error("UNAUTHORIZED") throw { code, msg } }