Read one member.
signal cancels the read as far as the container can. The zip reader
cancels the member's one-GET window fetch with it (queued in the fetch gate
or in flight); a follow-up read unzipit issues outside that window — its
reader is read(offset, size), with no per-call channel — is scoped to the
container's lifetime instead and aborted only by dispose(). So do not read
a passed signal as a guarantee that every byte stopped arriving.
Optionalsignal: AbortSignalOptionaloptions: ChunkSourceGetOptionsOptionalprobeFresh identity of the container, bypassing caches — an opaque token, so
this layer needs to know nothing about ETags or HTTP. null means "cannot
tell", which is never evidence of a change.
The container answers this rather than the caller because it is a request
against the same URL the container already reads: doing it here lets one
HEAD serve both identity and the archive length.
Optionalsignal: AbortSignalOptionaltimeoutMs: number
The minimum a byte-container has to offer for ChunkSource to read it.
Declared HERE, and injected, rather than importing a concrete store:
src/cachesits belowsrc/datain the layer order, so the cache layer must not reach up fordata/zip/store. The cache defines the port; the data layer supplies the adapter. It also keeps this module ignorant of zip specifics entirely.