@gguf/claw
Version:
Multi-channel AI gateway with extensible messaging integrations
42 lines (41 loc) • 1.62 kB
TypeScript
export type ArchiveKind = "tar" | "zip";
export type ArchiveLogger = {
info?: (message: string) => void;
warn?: (message: string) => void;
};
export type ArchiveExtractLimits = {
/**
* Max archive file bytes (compressed). Primarily protects zip extraction
* because we currently read the whole archive into memory for parsing.
*/
maxArchiveBytes?: number;
/** Max number of extracted entries (files + dirs). */
maxEntries?: number;
/** Max extracted bytes (sum of all files). */
maxExtractedBytes?: number;
/** Max extracted bytes for a single file entry. */
maxEntryBytes?: number;
};
/** @internal */
export declare const DEFAULT_MAX_ARCHIVE_BYTES_ZIP: number;
/** @internal */
export declare const DEFAULT_MAX_ENTRIES = 50000;
/** @internal */
export declare const DEFAULT_MAX_EXTRACTED_BYTES: number;
/** @internal */
export declare const DEFAULT_MAX_ENTRY_BYTES: number;
export declare function resolveArchiveKind(filePath: string): ArchiveKind | null;
export declare function resolvePackedRootDir(extractDir: string): Promise<string>;
export declare function withTimeout<T>(promise: Promise<T>, timeoutMs: number, label: string): Promise<T>;
export declare function extractArchive(params: {
archivePath: string;
destDir: string;
timeoutMs: number;
kind?: ArchiveKind;
stripComponents?: number;
tarGzip?: boolean;
limits?: ArchiveExtractLimits;
logger?: ArchiveLogger;
}): Promise<void>;
export declare function fileExists(filePath: string): Promise<boolean>;
export declare function readJsonFile<T>(filePath: string): Promise<T>;