export interface GroupInfo { count: bigint first: bigint last: bigint name: string } /** * Parses a `211 count first last name` GROUP reply (RFC 3977 ยง6.1.1). * * nntp-js's own `group()` destructures this reply without skipping the status * code, so its `first`/`last` are off by one field. Pass it `result.resp`. */ export function parseGroupResponse(resp: string): GroupInfo { const match = /^211\s+(\d+)\s+(\d+)\s+(\d+)\s+(\S+)/.exec(resp.trim()) if (!match) throw new Error(`Unexpected GROUP response: ${resp}`) return { count: BigInt(match[1]), first: BigInt(match[2]), last: BigInt(match[3]), name: match[4], } }