CoolFace
Apppublic

TrinetraLabs/Placebo_AI

sourceHugging Faceupdated 2mo agoView on Hugging Face
0likes
index.d.ts331 linesDownload Raw Back to jszip
1// Type definitions for JSZip 3.12// Project: http://stuk.github.com/jszip/, https://github.com/stuk/jszip3// Definitions by: mzeiher <https://github.com/mzeiher>, forabi <https://github.com/forabi>4// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped5// TypeScript Version: 2.36 7/// <reference types="node" />8 9interface JSZipSupport {10    arraybuffer: boolean;11    uint8array: boolean;12    blob: boolean;13    nodebuffer: boolean;14}15 16type Compression = 'STORE' | 'DEFLATE';17 18/**19 * Depends on the compression type. With `STORE` (no compression), these options are ignored. With20 * `DEFLATE`, you can give the compression level between 1 (best speed) and 9 (best compression).21 */22interface CompressionOptions {23    level: number;24}25 26interface InputByType {27    base64: string;28    string: string;29    text: string;30    binarystring: string;31    array: number[];32    uint8array: Uint8Array;33    arraybuffer: ArrayBuffer;34    blob: Blob;35    stream: NodeJS.ReadableStream;36}37 38interface OutputByType {39    base64: string;40    string: string;41    text: string;42    binarystring: string;43    array: number[];44    uint8array: Uint8Array;45    arraybuffer: ArrayBuffer;46    blob: Blob;47    nodebuffer: Buffer;48}49 50// This private `_data` property on a JSZipObject uses this interface.51// If/when it is made public this should be uncommented.52// interface CompressedObject {53//     compressedSize: number;54//     uncompressedSize: number;55//     crc32: number;56//     compression: object;57//     compressedContent: string|ArrayBuffer|Uint8Array|Buffer;58// }59 60type InputFileFormat = InputByType[keyof InputByType] | Promise<InputByType[keyof InputByType]>;61 62declare namespace JSZip {63    type InputType = keyof InputByType;64 65    type OutputType = keyof OutputByType;66 67    interface JSZipMetadata {68        percent: number;69        currentFile: string | null;70    }71 72    type OnUpdateCallback = (metadata: JSZipMetadata) => void;73 74    interface JSZipObject {75        name: string;76        /**77         * Present for files loadded with `loadAsync`. May contain ".." path components that could78         * result in a zip-slip attack. See https://snyk.io/research/zip-slip-vulnerability79         */80        unsafeOriginalName?: string;81        dir: boolean;82        date: Date;83        comment: string;84        /** The UNIX permissions of the file, if any. */85        unixPermissions: number | string | null;86        /** The UNIX permissions of the file, if any. */87        dosPermissions: number | null;88        options: JSZipObjectOptions;89 90        /**91         * Prepare the content in the asked type.92         * @param type the type of the result.93         * @param onUpdate a function to call on each internal update.94         * @return Promise the promise of the result.95         */96        async<T extends OutputType>(type: T, onUpdate?: OnUpdateCallback): Promise<OutputByType[T]>;97        nodeStream(type?: 'nodebuffer', onUpdate?: OnUpdateCallback): NodeJS.ReadableStream;98    }99 100    interface JSZipFileOptions {101        /** Set to `true` if the data is `base64` encoded. For example image data from a `<canvas>` element. Plain text and HTML do not need this option. */102        base64?: boolean;103        /**104         * Set to `true` if the data should be treated as raw content, `false` if this is a text. If `base64` is used,105         * this defaults to `true`, if the data is not a `string`, this will be set to `true`.106         */107        binary?: boolean;108        /**109         * The last modification date, defaults to the current date.110         */111        date?: Date;112        /**113         * Sets per file compression. The `compressionOptions` parameter depends on the compression type.114         */115        compression?: Compression;116        /**117         * Sets per file compression level for `DEFLATE` compression.118         */119        compressionOptions?: null | CompressionOptions;120        comment?: string;121        /** Set to `true` if (and only if) the input is a "binary string" and has already been prepared with a `0xFF` mask. */122        optimizedBinaryString?: boolean;123        /** Set to `true` if folders in the file path should be automatically created, otherwise there will only be virtual folders that represent the path to the file. */124        createFolders?: boolean;125        /** Set to `true` if this is a directory and content should be ignored. */126        dir?: boolean;127 128        /** 6 bits number. The DOS permissions of the file, if any. */129        dosPermissions?: number | null;130        /**131         * 16 bits number. The UNIX permissions of the file, if any.132         * Also accepts a `string` representing the octal value: `"644"`, `"755"`, etc.133         */134        unixPermissions?: number | string | null;135    }136 137    interface JSZipObjectOptions {138        compression: Compression;139    }140 141    interface JSZipGeneratorOptions<T extends OutputType = OutputType> {142        /**143         * Sets compression option for all entries that have not specified their own `compression` option144         */145        compression?: Compression;146        /**147         * Sets compression level for `DEFLATE` compression.148         */149        compressionOptions?: null | CompressionOptions;150        type?: T;151        comment?: string;152        /**153         * mime-type for the generated file.154         * Useful when you need to generate a file with a different extension, ie: “.ods”.155         * @default 'application/zip'156         */157        mimeType?: string;158        encodeFileName?(filename: string): string;159        /** Stream the files and create file descriptors */160        streamFiles?: boolean;161        /** DOS (default) or UNIX */162        platform?: 'DOS' | 'UNIX';163    }164 165    interface JSZipLoadOptions {166        base64?: boolean;167        checkCRC32?: boolean;168        optimizedBinaryString?: boolean;169        createFolders?: boolean;170        decodeFileName?: (bytes: string[] | Uint8Array | Buffer) => string;171    }172 173    type DataEventCallback<T> = (dataChunk: T, metadata: JSZipMetadata) => void174    type EndEventCallback = () => void175    type ErrorEventCallback = (error: Error) => void176 177    interface JSZipStreamHelper<T> {178        /**179         * Register a listener on an event180         */181        on(event: 'data', callback: DataEventCallback<T>): this;182        on(event: 'end', callback: EndEventCallback): this;183        on(event: 'error', callback: ErrorEventCallback): this;184 185        /**186         * Read the whole stream and call a callback with the complete content187         *188         * @param updateCallback The function called every time the stream updates189         * @return A Promise of the full content190         */191        accumulate(updateCallback?: (metadata: JSZipMetadata) => void): Promise<T>;192 193        /**194         * Resume the stream if the stream is paused. Once resumed, the stream starts sending data events again195         *196         * @return The current StreamHelper object, for chaining197         */198        resume(): this;199 200        /**201         * Pause the stream if the stream is running. Once paused, the stream stops sending data events202         *203         * @return The current StreamHelper object, for chaining204         */205        pause(): this;206    }207}208 209interface JSZip {210    files: {[key: string]: JSZip.JSZipObject};211 212    /**213     * Get a file from the archive214     *215     * @param Path relative path to file216     * @return File matching path, null if no file found217     */218    file(path: string): JSZip.JSZipObject | null;219 220    /**221     * Get files matching a RegExp from archive222     *223     * @param path RegExp to match224     * @return Return all matching files or an empty array225     */226    file(path: RegExp): JSZip.JSZipObject[];227 228    /**229     * Add a file to the archive230     *231     * @param path Relative path to file232     * @param data Content of the file233     * @param options Optional information about the file234     * @return JSZip object235     */236    file<T extends JSZip.InputType>(path: string, data: InputByType[T] | Promise<InputByType[T]>, options?: JSZip.JSZipFileOptions): this;237    file<T extends JSZip.InputType>(path: string, data: null, options?: JSZip.JSZipFileOptions & { dir: true }): this;238 239    /**240     * Returns an new JSZip instance with the given folder as root241     *242     * @param name Name of the folder243     * @return New JSZip object with the given folder as root or null244     */245    folder(name: string): JSZip | null;246 247    /**248     * Returns new JSZip instances with the matching folders as root249     *250     * @param name RegExp to match251     * @return New array of JSZipFile objects which match the RegExp252     */253    folder(name: RegExp): JSZip.JSZipObject[];254 255    /**256     * Call a callback function for each entry at this folder level.257     *258     * @param callback function259     */260    forEach(callback: (relativePath: string, file: JSZip.JSZipObject) => void): void;261 262    /**263     * Get all files which match the given filter function264     *265     * @param predicate Filter function266     * @return Array of matched elements267     */268    filter(predicate: (relativePath: string, file: JSZip.JSZipObject) => boolean): JSZip.JSZipObject[];269 270    /**271     * Removes the file or folder from the archive272     *273     * @param path Relative path of file or folder274     * @return Returns the JSZip instance275     */276    remove(path: string): JSZip;277 278    /**279     * Generates a new archive asynchronously280     *281     * @param options Optional options for the generator282     * @param onUpdate The optional function called on each internal update with the metadata.283     * @return The serialized archive284     */285    generateAsync<T extends JSZip.OutputType>(options?: JSZip.JSZipGeneratorOptions<T>, onUpdate?: JSZip.OnUpdateCallback): Promise<OutputByType[T]>;286 287    /**288     * Generates a new archive asynchronously289     *290     * @param options Optional options for the generator291     * @param onUpdate The optional function called on each internal update with the metadata.292     * @return A Node.js `ReadableStream`293     */294    generateNodeStream(options?: JSZip.JSZipGeneratorOptions<'nodebuffer'>, onUpdate?: JSZip.OnUpdateCallback): NodeJS.ReadableStream;295 296    /**297     * Generates the complete zip file with the internal stream implementation298     *299     * @param options Optional options for the generator300     * @return a StreamHelper301     */302    generateInternalStream<T extends JSZip.OutputType>(options?: JSZip.JSZipGeneratorOptions<T>): JSZip.JSZipStreamHelper<OutputByType[T]>;303 304    /**305     * Deserialize zip file asynchronously306     *307     * @param data Serialized zip file308     * @param options Options for deserializing309     * @return Returns promise310     */311    loadAsync(data: InputFileFormat, options?: JSZip.JSZipLoadOptions): Promise<JSZip>;312 313    /**314     * Create JSZip instance315     */316    new(): this;317 318    (): JSZip;319 320    prototype: JSZip;321    support: JSZipSupport;322    external: {323        Promise: PromiseConstructorLike;324    };325    version: string;326}327 328declare var JSZip: JSZip;329 330export = JSZip;331