UNPKG

3.65 kBTypeScriptView Raw
1// Type definitions for yauzl 2.9
2// Project: https://github.com/thejoshwolfe/yauzl
3// Definitions by: Florian Keller <https://github.com/ffflorian>
4// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
5
6/// <reference types="node" />
7
8import { EventEmitter } from 'events';
9import { Readable } from 'stream';
10
11export abstract class RandomAccessReader extends EventEmitter {
12 _readStreamForRange(start: number, end: number): void;
13 createReadStream(options: { start: number; end: number }): void;
14 read(buffer: Buffer, offset: number, length: number, position: number, callback: (err?: Error) => void): void;
15 close(callback: (err?: Error) => void): void;
16}
17
18export class Entry {
19 comment: string;
20 compressedSize: number;
21 compressionMethod: number;
22 crc32: number;
23 externalFileAttributes: number;
24 extraFieldLength: number;
25 extraFields: Array<{ id: number; data: Buffer }>;
26 fileCommentLength: number;
27 fileName: string;
28 fileNameLength: number;
29 generalPurposeBitFlag: number;
30 internalFileAttributes: number;
31 lastModFileDate: number;
32 lastModFileTime: number;
33 relativeOffsetOfLocalHeader: number;
34 uncompressedSize: number;
35 versionMadeBy: number;
36 versionNeededToExtract: number;
37
38 getLastModDate(): Date;
39 isEncrypted(): boolean;
40 isCompressed(): boolean;
41}
42
43export interface ZipFileOptions {
44 decompress: boolean | null;
45 decrypt: boolean | null;
46 start: number | null;
47 end: number | null;
48}
49
50export class ZipFile extends EventEmitter {
51 autoClose: boolean;
52 comment: string;
53 decodeStrings: boolean;
54 emittedError: boolean;
55 entriesRead: number;
56 entryCount: number;
57 fileSize: number;
58 isOpen: boolean;
59 lazyEntries: boolean;
60 readEntryCursor: boolean;
61 validateEntrySizes: boolean;
62
63 constructor(
64 reader: RandomAccessReader,
65 centralDirectoryOffset: number,
66 fileSize: number,
67 entryCount: number,
68 comment: string,
69 autoClose: boolean,
70 lazyEntries: boolean,
71 decodeStrings: boolean,
72 validateEntrySizes: boolean,
73 );
74
75 openReadStream(entry: Entry, options: ZipFileOptions, callback: (err?: Error, stream?: Readable) => void): void;
76 openReadStream(entry: Entry, callback: (err?: Error, stream?: Readable) => void): void;
77 close(): void;
78 readEntry(): void;
79}
80
81export interface Options {
82 autoClose?: boolean;
83 lazyEntries?: boolean;
84 decodeStrings?: boolean;
85 validateEntrySizes?: boolean;
86 strictFileNames?: boolean;
87}
88
89export function open(path: string, options: Options, callback?: (err?: Error, zipfile?: ZipFile) => void): void;
90export function open(path: string, callback?: (err?: Error, zipfile?: ZipFile) => void): void;
91export function fromFd(fd: number, options: Options, callback?: (err?: Error, zipfile?: ZipFile) => void): void;
92export function fromFd(fd: number, callback?: (err?: Error, zipfile?: ZipFile) => void): void;
93export function fromBuffer(buffer: Buffer, options: Options, callback?: (err?: Error, zipfile?: ZipFile) => void): void;
94export function fromBuffer(buffer: Buffer, callback?: (err?: Error, zipfile?: ZipFile) => void): void;
95export function fromRandomAccessReader(reader: RandomAccessReader, totalSize: number, options: Options, callback: (err?: Error, zipfile?: ZipFile) => void): void;
96export function fromRandomAccessReader(reader: RandomAccessReader, totalSize: number, callback: (err?: Error, zipfile?: ZipFile) => void): void;
97export function dosDateTimeToDate(date: number, time: number): Date;
98export function validateFileName(fileName: string): string | null;