@obsidize/tar-browserify
Version:
Browser-based tar utility for packing and unpacking tar files (stream-capable)
94 lines (93 loc) • 3.72 kB
TypeScript
import { TarSerializable } from '../../common/tar-utility';
import { UstarHeaderLike } from './ustar-header-like';
import { UstarHeaderLinkIndicatorType } from './ustar-header-link-indicator-type';
/**
* Facade over a backing Uint8Array buffer to consume/edit header data
* at a specific location in the buffer.
*
* Does not perform any mutations or reads on creation, and
* lazy loads/sets data via getters and setters.
*/
export declare class UstarHeader implements UstarHeaderLike, TarSerializable {
readonly bytes: Uint8Array;
readonly offset: number;
constructor(bytes?: Uint8Array, offset?: number);
/**
* @returns A copy of the defaults used by all headers
*/
static defaultValues(): UstarHeaderLike;
static isUstarHeader(value: any): boolean;
/**
* @returns A new `UstarHeader` instance based on the given attributes (if they are a POJO).
* Note that if the given value is already a UstarHeader instance, this will return it as-is.
*/
static from(attrs: UstarHeaderLike | Partial<UstarHeaderLike>): UstarHeader;
/**
* Short-hand for constructing a new `UstarHeader` and immediately calling `toUint8Array()` on it
*/
static serialize(attrs: UstarHeaderLike | Partial<UstarHeaderLike>): Uint8Array;
/**
* @returns A new `UstarHeader` instance populated with the content returned by `defaultValues()`
*/
static seeded(): UstarHeader;
get byteLength(): number;
get fileName(): string;
set fileName(value: string);
get fileMode(): number;
set fileMode(value: number);
get ownerUserId(): number;
set ownerUserId(value: number);
get groupUserId(): number;
set groupUserId(value: number);
get fileSize(): number;
set fileSize(value: number);
get lastModified(): number;
set lastModified(value: number);
get headerChecksum(): number;
set headerChecksum(value: number);
get linkedFileName(): string;
set linkedFileName(value: string);
get typeFlag(): UstarHeaderLinkIndicatorType;
set typeFlag(value: UstarHeaderLinkIndicatorType);
get ustarIndicator(): string;
get ustarVersion(): string;
set ustarVersion(value: string);
get ownerUserName(): string;
set ownerUserName(value: string);
get ownerGroupName(): string;
set ownerGroupName(value: string);
get deviceMajorNumber(): string;
set deviceMajorNumber(value: string);
get deviceMinorNumber(): string;
set deviceMinorNumber(value: string);
get fileNamePrefix(): string;
set fileNamePrefix(value: string);
get isPaxHeader(): boolean;
get isGlobalPaxHeader(): boolean;
get isLocalPaxHeader(): boolean;
get isFileHeader(): boolean;
get isDirectoryHeader(): boolean;
/**
* @returns A snapshot of the underlying buffer for this header
*/
toUint8Array(): Uint8Array;
toJSON(): Record<string, unknown>;
toAttributes(): UstarHeaderLike;
/**
* Override all values in the header.
* Any values not provided in `attrs` will be filled in with default values.
* @returns `this` for operation chaining
*/
initialize(attrs?: UstarHeaderLike | Partial<UstarHeaderLike>): this;
/**
* Ensures the state of the header is synced after changes have been made.
* @returns `this` for operation chaining
*/
updateChecksum(): this;
/**
* Mechanism to batch-update properties.
* Automatically normalizes the header if any changes were made.
* @returns `this` for operation chaining
*/
update(attrs: UstarHeaderLike | Partial<UstarHeaderLike>): this;
}