UNPKG

@shockpkg/ria-packager

Version:

Package for creating Adobe AIR packages

338 lines (337 loc) 8.17 kB
/** * Zipper write stream interface. * A subset of Writable. */ export interface IZipperWriteStream { /** * Write data. * * @param data Data chunk. * @param cb Callback function. */ write(data: Readonly<Uint8Array>, cb: (err: Error) => void): void; /** * Write end. * * @param cb Callback function. */ end(cb: (err: Error) => void): void; } /** * Zipper Entry Extra Field object. */ export declare class ZipperEntryExtraField { /** * Type ID. */ type: number; /** * Data for the type. */ data: Uint8Array; /** * Zipper Entry Extra Field constructor. */ constructor(); /** * Get the encode size. * * @returns Encode size. */ sizeof(): number; /** * Encode type and data as data. * * @returns Encoded data. */ encode(): Uint8Array<ArrayBuffer>; /** * Init Info-ZIP UNIX type 2 data, local header. * * @param uid User ID. * @param gid Group ID. */ initInfoZipUnix2Local(uid?: number, gid?: number): void; /** * Init Info-ZIP UNIX type 2 data, central header. * * @param uid User ID. * @param gid Group ID. */ initInfoZipUnix2Central(uid?: number, gid?: number): void; /** * Init Extended Timestamp data, local header. * * @param mtime Modification time. * @param atime Access time. * @param ctime Creation time. */ initExtendedTimestampLocal(mtime?: Readonly<Date> | number | null, atime?: Readonly<Date> | number | null, ctime?: Readonly<Date> | number | null): void; /** * Init Extended Timestamp data, central header. * * @param mtime Modification time. * @param atime Access time. * @param ctime Creation time. */ initExtendedTimestampCentral(mtime?: Readonly<Date> | number | null, atime?: Readonly<Date> | number | null, ctime?: Readonly<Date> | number | null): void; /** * Init Info-ZIP UNIX type 2 data. * * @param local Local header or central. * @param uid User ID. * @param gid Group ID. */ protected _initInfoZipUnix2(local: boolean, uid: number, gid: number): void; /** * Init Extended Timestamp data. * * @param local Local header or central. * @param mtime Modification time. * @param atime Access time. * @param ctime Creation time. */ protected _initExtendedTimestamp(local: boolean, mtime: Readonly<Date> | number | null, atime: Readonly<Date> | number | null, ctime: Readonly<Date> | number | null): void; } /** * Zipper Entry object. */ export declare class ZipperEntry { /** * Tag signature, local header. */ signatureLocal: number; /** * Tag signature, central header. */ signatureCentral: number; /** * Extract version. */ extractVersion: number; /** * Extract host OS. */ extractHostOS: number; /** * Create version. */ createVersion: number; /** * Create host OS. */ createHostOS: number; /** * Extract flags. */ flags: number; /** * Compression type. */ compression: number; /** * DOS time. */ time: number; /** * DOS date. */ date: number; /** * Data CRC32. */ crc32: number; /** * Size compressed. */ sizeCompressed: number; /** * Size uncompressed. */ sizeUncompressed: number; /** * Disk number start. */ diskNumberStart: number; /** * Internal attributes. */ internalAttributes: number; /** * External attributes. */ externalAttributes: number; /** * Header offset, local header. */ headerOffsetLocal: number; /** * Entry path. */ path: Uint8Array<ArrayBufferLike>; /** * Entry comment. */ comment: Uint8Array<ArrayBufferLike>; /** * Extra fields, local header. */ extraFieldsLocal: ZipperEntryExtraField[]; /** * Extra fields, central header. */ extraFieldsCentral: ZipperEntryExtraField[]; /** * Zipper Entry constructor. */ constructor(); /** * Get the file record extra fields size. * * @returns Extra fields size. */ sizeofExtraFieldsLocal(): number; /** * Get the file record extra fields size. * * @returns Extra fields size. */ sizeofLocal(): number; /** * Get the file record extra fields size. * * @returns Extra fields size. */ sizeofExtraFieldsCentral(): number; /** * Get the central record extra fields size. * * @returns Extra fields size. */ sizeofCentral(): number; /** * Create new ZipperEntryExtraField object. * * @returns ZipperEntryExtraField object. */ createExtraField(): ZipperEntryExtraField; /** * Set date from a date object or timestamp. * * @param date Date object or timestamp. */ setDate(date: Readonly<Date> | number): void; /** * Get local record data. * * @returns Local record data. */ encodeLocal(): Uint8Array<ArrayBuffer>; /** * Get central record data. * * @returns Central entry data. */ encodeCentral(): Uint8Array<ArrayBuffer>; /** * Setup data for entry. * * @param data Data for the entry. * @param compress Compress option, true to force, false to disable. * @returns Resulting data, or null if no data passed. */ initData(data: Readonly<Uint8Array> | null, compress?: boolean | null): Promise<Readonly<Uint8Array<ArrayBufferLike>> | null>; /** * Add extra fields for Extended Timestamp. * * @param mtime Modification time. * @param atime Access time. * @param ctime Creation time. */ addExtraFieldsExtendedTimestamp(mtime?: Readonly<Date> | number | null, atime?: Readonly<Date> | number | null, ctime?: Readonly<Date> | number | null): void; /** * Add extra fields for Info-ZIP UNIX type 2. * * @param uid User ID. * @param gid Group ID. */ addExtraFieldsInfoZipUnix2(uid?: number, gid?: number): void; /** * Convert date from a date object or timestamp. * * @param date Date object or timestamp. * @returns DOS time. */ protected _dateToDosTime(date: Readonly<Date> | number): { date: number; time: number; }; /** * Calculate the CRC32 hash for data. * * @param data Data to be hashed. * @returns CRC32 hash. */ protected _crc32(data: Readonly<Uint8Array>): number; /** * Zlib deflate raw data. * * @param data Data to be compressed. * @returns Compressed data. */ protected _zlibDeflateRaw(data: Readonly<Uint8Array>): Promise<Uint8Array<ArrayBufferLike>>; } /** * Zipper, a low-level ZIP file writter. */ export declare class Zipper { /** * Tag signature. */ signature: number; /** * Archive comment. */ comment: Uint8Array<ArrayBufferLike>; /** * Added entries. */ entries: ZipperEntry[]; /** * Current offset. */ protected _offset: number; /** * Output stream. */ protected readonly _output: IZipperWriteStream; /** * Zipper constructor. * * @param output Writable stream. */ constructor(output: IZipperWriteStream); /** * Create new ZipperEntry object. * * @returns ZipperEntry object. */ createEntry(): ZipperEntry; /** * Add Entry and any associated data. * * @param entry Entry object. * @param data Data from the entry initData method. */ addEntry(entry: ZipperEntry, data?: Readonly<Uint8Array> | null): Promise<void>; /** * Close stream. */ close(): Promise<void>; /** * Write data buffer to output stream. * * @param data Output data. */ protected _writeOutput(data: Readonly<Uint8Array>): Promise<void>; }