/** * Node.js file system convenience layer for archive operations. * * This module provides a high-level API for working with ZIP and TAR files * on the file system. * * @example Create a ZIP from files and directories * ```ts * import { ArchiveFile } from "./index.js"; * * const zip = new ArchiveFile(); * zip.addFile("./readme.md"); * zip.addDirectory("./src"); * zip.addGlob("**\/*.json", { cwd: "./config" }); * await zip.writeToFile("./output.zip"); * ``` * * @example Create a TAR archive * ```ts * import { ArchiveFile } from "./index.js"; * * const tar = new ArchiveFile({ format: "tar" }); * tar.addFile("./readme.md"); * tar.addDirectory("./src"); * await tar.writeToFile("./output.tar"); * ``` * * @example Create a gzipped TAR archive * ```ts * import { ArchiveFile } from "./index.js"; * * const tar = new ArchiveFile({ format: "tar", gzip: true }); * tar.addFile("./readme.md"); * await tar.writeToFile("./output.tar.gz"); * ``` * * @example Extract a ZIP file * ```ts * import { ArchiveFile } from "./index.js"; * * const zip = await ArchiveFile.fromFile("./archive.zip"); * await zip.extractTo("./output", { overwrite: "newer" }); * ``` * * @example Read archive contents * ```ts * import { ArchiveFile } from "./index.js"; * * const archive = await ArchiveFile.fromFile("./archive.zip"); * for (const entry of archive.getEntries()) { * console.log(entry.path, entry.size); * } * const content = await archive.readAsText("readme.txt"); * ``` * * @module */ export { ArchiveFile } from "./archive-file.js"; export type { OverwriteStrategy, ArchiveFormat, ArchiveEntryInfo, AddFileOptions, AddDirectoryOptions, AddGlobOptions, ExtractToOptions, ExtractProgress, ZipFileOptions, OpenZipOptions, WriteZipOptions, WriteArchiveOptions, ZipEntryInfo, TarFileOptions, OpenTarOptions, AddTarFileOptions, AddTarDirectoryOptions, AddTarGlobOptions, ArchiveFileOptions, ArchiveFileOptionsZip, ArchiveFileOptionsTar, OpenArchiveOptions, OpenArchiveOptionsZip, OpenArchiveOptionsTar, ArchiveStreamOptions, ArchiveStreamProgress, ArchiveStreamOperation, ArchiveStreamPhase, ArchiveWarning, TransformFunction, TransformEntryData, TransformResult } from "./types.js"; export type { ArchiveSink } from "../io/archive-sink.js"; export { traverseDirectory, traverseDirectorySync, glob, globSync, globToRegex, matchGlob, matchGlobAny, ensureDir, ensureDirSync, fileExists, fileExistsSync, readFileBytes, readFileBytesSync, writeFileBytes, writeFileBytesSync, setFileTime, setFileTimeSync, safeStats, safeStatsSync, readFileText, readFileTextSync, writeFileText, writeFileTextSync, remove, removeSync, copyFile, copyFileSync, createReadStream, createWriteStream, createTempDir, createTempDirSync, type FileEntry, type TraverseOptions, type GlobOptions, type ReadStreamOptions, type WriteStreamOptions } from "../../../utils/fs.js";