export const pageParam = (url: URL): number => { const raw = url.searchParams.get("page") ?? ""; const parsed = /^\d+$/.test(raw) ? Number(raw) : 1; return parsed >= 1 ? parsed : 1; }; export const offsetFor = (page: number, limit: number): number | undefined => page > 1 ? (page - 1) * limit : undefined; export const pageCount = (total: number, limit: number): number => Math.max(1, Math.ceil(Math.max(total, 0) / limit)); export const discoveredPageCount = (page: number, hasNext: boolean): number => Math.max(1, page + (hasNext ? 1 : 0));