parseComicBook function
Parses a comic book (CBZ zip or CBR rar) from raw bytes.
Pages at a uniform directory depth are ordered naturally by their full archive path. When an archive mixes directory depths, the page basename is the primary ordering key and the full archive path is the deterministic tie-breaker. This keeps mixed-depth archives in the expected reader order.
Implementation
ComicBook parseComicBook(final Uint8List bytes) {
final (:pages, :comicInfo, :format) = _readArchive(bytes);
return _build(pages, comicInfo, format);
}