UNPKG

@obsidize/tar-browserify

Version:

Browser-based tar utility for packing and unpacking tar files (stream-capable)

50 lines (49 loc) 2.17 kB
import { ArchiveContext } from '../common/archive-context'; import { AsyncUint8ArrayLike } from '../common/async-uint8-array'; import { AsyncUint8ArrayIterator, AsyncUint8ArrayIteratorInput } from '../common/async-uint8-array-iterator'; import { TarHeader } from '../header/tar-header'; import { ArchiveEntry } from './archive-entry'; /** * Errors that will be thrown if the reader encounters an invalid data layout */ export declare enum ArchiveReadError { /** * Occurs when the reader fails to fully load the content buffer of an entry * due to the input data stream ending prematurely. */ ERR_ENTRY_CONTENT_MIN_BUFFER_LENGTH_NOT_MET = "ERR_ENTRY_CONTENT_MIN_BUFFER_LENGTH_NOT_MET", /** * Occurs when the reader fails to fully load a PAX header * due to the input data stream ending prematurely. */ ERR_HEADER_PAX_MIN_BUFFER_LENGTH_NOT_MET = "ERR_HEADER_PAX_MIN_BUFFER_LENGTH_NOT_MET", /** * Occurs when the reader fails to fully load a PAX header * due to the third and final segment not appearing in the input data stream. */ ERR_HEADER_MISSING_POST_PAX_SEGMENT = "ERR_HEADER_MISSING_POST_PAX_SEGMENT" } /** * Generic utility for parsing tar entries from a stream of octets via `AsyncUint8ArrayIterator` */ export declare class ArchiveReader implements ArchiveContext, AsyncIterableIterator<ArchiveEntry> { private readonly bufferIterator; private mGlobalPaxHeaders; private mBufferCache; private mOffset; private mHasSyncInput; constructor(bufferIterator: AsyncUint8ArrayIterator); static withInput(input: AsyncUint8ArrayIteratorInput): ArchiveReader; [Symbol.asyncIterator](): AsyncIterableIterator<ArchiveEntry>; get source(): AsyncUint8ArrayLike; get globalPaxHeaders(): TarHeader[]; readAllEntries(): Promise<ArchiveEntry[]>; next(): Promise<IteratorResult<ArchiveEntry>>; private clearBufferCache; private getBufferCacheSlice; private tryRequireBufferSize; private requireBufferSize; private loadNextChunk; private tryParseNextEntry; private tryParseNextHeader; }