index.d.ts 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327
  1. export function configure(configuration: ConfigurationOptions): void;
  2. declare global {
  3. // deno-lint-ignore no-empty-interface
  4. interface FileSystemEntry { }
  5. }
  6. interface ConfigurationOptions {
  7. useWebWorkers?: boolean;
  8. maxWorkers?: number;
  9. terminateWorkerTimeout?: number;
  10. workerScripts?: {
  11. deflate?: string[];
  12. inflate?: string[];
  13. };
  14. chunkSize?: number;
  15. Deflate?: Codec;
  16. Inflate?: Codec;
  17. }
  18. export function initShimAsyncCodec(library: ZipLibrary, constructorOptions?: ConstructorOptions): { Deflate: Codec, Inflate: Codec };
  19. export function terminateWorkers(): void;
  20. interface ZipLibrary {
  21. Deflate: ZipDeflate["constructor"],
  22. Inflate: ZipInflate["constructor"]
  23. }
  24. interface ZipDeflate {
  25. append(): Uint8Array,
  26. flush(): Uint8Array
  27. }
  28. interface ZipInflate {
  29. append(): Uint8Array,
  30. flush(): void
  31. }
  32. interface ConstructorOptions {
  33. chunkSize?: number,
  34. level?: number
  35. }
  36. export interface Codec {
  37. append(data: Uint8Array): Promise<Uint8Array>;
  38. flush(): Promise<Uint8Array>;
  39. }
  40. export function getMimeType(fileExtension: string): string;
  41. export class Stream {
  42. public size: number;
  43. public init(): Promise<void>;
  44. }
  45. export class Reader<Type> extends Stream {
  46. constructor(value: Type);
  47. public readUint8Array(index: number, length: number): Promise<Uint8Array>;
  48. }
  49. export class TextReader extends Reader<string> {
  50. }
  51. export class BlobReader extends Reader<Blob> {
  52. }
  53. export class Data64URIReader extends Reader<string> {
  54. }
  55. export class Uint8ArrayReader extends Reader<Uint8Array> {
  56. }
  57. export class HttpReader<Type extends string> extends Reader<Type> {
  58. constructor(url: Type, options?: HttpOptions);
  59. }
  60. export class HttpRangeReader<Type extends string> extends Reader<Type> {
  61. constructor(url: Type, options?: HttpRangeOptions);
  62. }
  63. interface HttpOptions extends HttpRangeOptions {
  64. useRangeHeader?: boolean;
  65. preventHeadRequest?: boolean;
  66. }
  67. interface HttpRangeOptions {
  68. forceRangeRequests?: boolean;
  69. useXHR?: boolean;
  70. headers?: Iterable<[string, string]> | Map<string, string>;
  71. }
  72. export class ReadableStreamReader {
  73. constructor(readableStream: ReadableStream);
  74. public readUint8Array(_index: number, length: number): Promise<Uint8Array>;
  75. }
  76. export class Writer<Type> extends Stream {
  77. public writeUint8Array(array: Uint8Array): Promise<void>;
  78. public getData(): Promise<Type>;
  79. }
  80. export class TextWriter extends Writer<string> {
  81. constructor(encoding?: string);
  82. }
  83. export class BlobWriter extends Writer<Blob> {
  84. constructor(mimeString?: string);
  85. }
  86. export class Data64URIWriter extends Writer<string> {
  87. constructor(mimeString?: string);
  88. }
  89. export class Uint8ArrayWriter extends Writer<Uint8Array> {
  90. constructor();
  91. }
  92. export class WritableStreamWriter<Type extends WritableStream> extends Writer<Type> {
  93. constructor(writableStream: Type);
  94. }
  95. export class ZipReader<Type> {
  96. constructor(reader: Reader<Type>, options?: ZipReaderConstructorOptions);
  97. getEntries(options?: ZipReaderGetEntriesOptions): Promise<Entry[]>;
  98. getEntriesGenerator(options?: ZipReaderGetEntriesOptions): AsyncGenerator<Entry, boolean>;
  99. close(): Promise<void>;
  100. }
  101. type ZipReaderConstructorOptions = ZipReaderOptions & GetEntriesOptions;
  102. type ZipReaderGetEntriesOptions = EntryOnprogressOption & GetEntriesOptions;
  103. interface ZipReaderOptions {
  104. checkSignature?: boolean;
  105. password?: string;
  106. useWebWorkers?: boolean;
  107. signal?: AbortSignal;
  108. }
  109. interface GetEntriesOptions {
  110. filenameEncoding?: string;
  111. commentEncoding?: string;
  112. }
  113. export interface Entry {
  114. offset?: number;
  115. filename: string;
  116. rawFilename: Uint8Array;
  117. filenameUTF8: boolean;
  118. directory: boolean;
  119. encrypted: boolean;
  120. compressedSize: number;
  121. uncompressedSize: number;
  122. lastModDate: Date;
  123. lastAccessDate?: Date;
  124. creationDate?: Date;
  125. rawLastModDate: number;
  126. rawLastAccessDate?: Date;
  127. rawCreationDate?: Date;
  128. comment: string;
  129. rawComment: Uint8Array;
  130. commentUTF8: boolean;
  131. signature: Uint8Array;
  132. extraField?: Map<number, Uint8Array>;
  133. rawExtraField: Uint8Array;
  134. zip64: boolean;
  135. version: number;
  136. versionMadeBy: number;
  137. msDosCompatible: boolean;
  138. internalFileAttribute: number;
  139. externalFileAttribute: number;
  140. getData?<Type>(writer: Writer<Type>, options?: EntryGetDataOptions): Promise<Type>;
  141. }
  142. type EntryGetDataOptions = EntryDataOnprogressOption & ZipReaderOptions;
  143. export class ZipWriter<Type> {
  144. readonly hasCorruptedEntries?: boolean;
  145. constructor(writer: Writer<Type>, options?: ZipWriterConstructorOptions);
  146. public add<ReaderType>(name: string, reader: Reader<ReaderType> | ReadableStreamReader | null, options?: ZipWriterAddDataOptions): Promise<Entry>;
  147. public close(comment?: Uint8Array, options?: ZipWriterCloseOptions): Promise<Type>;
  148. }
  149. type ZipWriterAddDataOptions = EntryDataOnprogressOption & AddDataOptions & ZipWriterConstructorOptions;
  150. type ZipWriterCloseOptions = EntryOnprogressOption & CloseOptions;
  151. interface ZipWriterConstructorOptions {
  152. zip64?: boolean;
  153. level?: number;
  154. bufferedWrite?: boolean;
  155. keepOrder?: boolean;
  156. version?: number;
  157. password?: string;
  158. encryptionStrength?: number;
  159. zipCrypto?: boolean;
  160. useWebWorkers?: boolean;
  161. dataDescriptor?: boolean;
  162. dataDescriptorSignature?: boolean;
  163. signal?: AbortSignal;
  164. lastModDate?: Date;
  165. lastAccessDate?: Date;
  166. creationDate?: Date;
  167. extendedTimestamp?: boolean;
  168. msDosCompatible?: boolean;
  169. internalFileAttribute?: number;
  170. externalFileAttribute?: number;
  171. }
  172. interface AddDataOptions {
  173. directory?: boolean;
  174. comment?: string;
  175. extraField?: Map<number, Uint8Array>;
  176. }
  177. interface CloseOptions {
  178. zip64?: boolean;
  179. }
  180. interface EntryDataOnprogressOption {
  181. onprogress?: (progress: number, total: number) => void;
  182. }
  183. interface EntryOnprogressOption {
  184. onprogress?: (progress: number, total: number, entry: Entry) => void;
  185. }
  186. interface ZipEntryConstructorParams {
  187. data: Entry;
  188. }
  189. export class ZipEntry {
  190. constructor(fs: FS, name: string, params: ZipEntryConstructorParams, parent: ZipDirectoryEntry);
  191. name: string;
  192. data?: Entry;
  193. id: number;
  194. parent?: ZipEntry;
  195. children: ZipEntry[];
  196. uncompressedSize: number;
  197. getFullname(): string;
  198. getRelativeName(ancestor: ZipDirectoryEntry): string;
  199. isDescendantOf(ancestor: ZipDirectoryEntry): boolean;
  200. }
  201. interface ZipFileEntryConstructorParams<ReaderType, WriterType> extends ZipEntryConstructorParams {
  202. reader: Reader<ReaderType>;
  203. writer: Writer<WriterType>;
  204. getData?(writer: Writer<WriterType>, options?: EntryGetDataOptions): Promise<WriterType>;
  205. }
  206. export class ZipFileEntry<ReaderType, WriterType> extends ZipEntry {
  207. constructor(fs: FS, name: string, params: ZipFileEntryConstructorParams<ReaderType, WriterType>, parent: ZipDirectoryEntry);
  208. reader: Reader<ReaderType>;
  209. writer: Writer<WriterType>;
  210. getText(encoding?: string, options?: EntryGetDataOptions): Promise<string>;
  211. getBlob(mimeType?: string, options?: EntryGetDataOptions): Promise<Blob>;
  212. getData64URI(mimeType?: string, options?: EntryGetDataOptions): Promise<string>;
  213. getUint8Array(options?: EntryGetDataOptions): Promise<Uint8Array>;
  214. getData(writer: Writer<WriterType>, options?: EntryGetDataOptions): Promise<WriterType>;
  215. replaceBlob(blob: Blob): void;
  216. replaceText(text: string): void;
  217. replaceData64URI(dataURI: string): void;
  218. replaceUint8Array(array: Uint8Array): void;
  219. }
  220. interface ExportOptions {
  221. relativePath?: boolean;
  222. }
  223. export class ZipDirectoryEntry extends ZipEntry {
  224. constructor(fs: FS, name: string, params: ZipEntryConstructorParams, parent: ZipDirectoryEntry);
  225. getChildByName(name: string): ZipEntry;
  226. addDirectory(name: string): ZipDirectoryEntry;
  227. addText(name: string, text: string): ZipFileEntry<string, string>;
  228. addBlob(name: string, blob: Blob): ZipFileEntry<Blob, Blob>;
  229. addData64URI(name: string, dataURI: string): ZipFileEntry<string, string>;
  230. addUint8Array(name: string, array: Uint8Array): ZipFileEntry<Uint8Array, Uint8Array>;
  231. addHttpContent(name: string, url: string, options?: HttpOptions): ZipFileEntry<string, string>;
  232. addFileSystemEntry(fileSystemEntry: FileSystemEntry): Promise<ZipEntry>;
  233. importBlob(blob: Blob, options?: ZipReaderConstructorOptions): Promise<void>;
  234. importData64URI(dataURI: string, options?: ZipReaderConstructorOptions): Promise<void>;
  235. importUint8Array(array: Uint8Array, options?: ZipReaderConstructorOptions): Promise<void>;
  236. importHttpContent(url: string, options?: ZipDirectoryEntryImportHttpOptions): Promise<void>;
  237. exportBlob(options?: ZipDirectoryEntryExportOptions): Promise<Blob>;
  238. exportData64URI(options?: ZipDirectoryEntryExportOptions): Promise<string>;
  239. exportUint8Array(options?: ZipDirectoryEntryExportOptions): Promise<Uint8Array>;
  240. }
  241. type ZipDirectoryEntryImportHttpOptions = ZipReaderConstructorOptions & HttpOptions;
  242. type ZipDirectoryEntryExportOptions = EntryDataOnprogressOption & ExportOptions & ZipWriterConstructorOptions;
  243. export class FS extends ZipDirectoryEntry {
  244. constructor();
  245. root: ZipDirectoryEntry;
  246. remove(entry: ZipEntry): void;
  247. move(entry: ZipEntry, destination: ZipDirectoryEntry): void;
  248. find(fullname: string): ZipEntry;
  249. getById(id: number): ZipEntry;
  250. }
  251. export const fs: { FS: typeof FS, ZipDirectoryEntry: typeof ZipDirectoryEntry, ZipFileEntry: typeof ZipFileEntry };
  252. export const ERR_HTTP_RANGE: string;
  253. export const ERR_BAD_FORMAT: string;
  254. export const ERR_EOCDR_NOT_FOUND: string;
  255. export const ERR_EOCDR_ZIP64_NOT_FOUND: string;
  256. export const ERR_EOCDR_LOCATOR_ZIP64_NOT_FOUND: string;
  257. export const ERR_CENTRAL_DIRECTORY_NOT_FOUND: string;
  258. export const ERR_LOCAL_FILE_HEADER_NOT_FOUND: string;
  259. export const ERR_EXTRAFIELD_ZIP64_NOT_FOUND: string;
  260. export const ERR_ENCRYPTED: string;
  261. export const ERR_UNSUPPORTED_ENCRYPTION: string;
  262. export const ERR_UNSUPPORTED_COMPRESSION: string;
  263. export const ERR_INVALID_SIGNATURE: string;
  264. export const ERR_INVALID_PASSWORD: string;
  265. export const ERR_DUPLICATED_NAME: string;
  266. export const ERR_INVALID_COMMENT: string;
  267. export const ERR_INVALID_ENTRY_NAME: string;
  268. export const ERR_INVALID_ENTRY_COMMENT: string;
  269. export const ERR_INVALID_VERSION: string;
  270. export const ERR_INVALID_EXTRAFIELD_TYPE: string;
  271. export const ERR_INVALID_EXTRAFIELD_DATA: string;
  272. export const ERR_INVALID_ENCRYPTION_STRENGTH: string;
  273. export const ERR_UNSUPPORTED_FORMAT: string;
  274. export const ERR_ABORT: string;
  275. export const ERR_NOT_SEEKABLE_READER: string