{"version":3,"file":"fs.mjs","names":[],"sources":["../../src/renderer/fs/index.ts"],"sourcesContent":["import type {\n  FsReadFileOptions,\n  FsReadFileResult,\n  FsWriteInput,\n  FsWriteOptions,\n  FsAppendFileOptions,\n  FsCopyFileOptions,\n  FsStatsOutput,\n  FsStatOptions,\n  FsReaddirOptions,\n  FsReaddirResult,\n  FsMkdirOptions,\n  FsRmOptions,\n  FsRmdirOptions,\n  FsCopyOptions,\n  FsSymlinkType,\n  FsTimeLike,\n} from \"@shared/types.js\";\n\n// ============================================================================\n// Read Operations\n// ============================================================================\n\n/**\n * Read the entire contents of a file\n */\nexport async function readFile(\n  path: string,\n  options?: FsReadFileOptions,\n): Promise<FsReadFileResult> {\n  return (await window.rpc.call(\"fs.readFile\", path, options)) as FsReadFileResult;\n}\n\n/**\n * Read the target of a symbolic link\n */\nexport async function readlink(path: string): Promise<string> {\n  return (await window.rpc.call(\"fs.readlink\", path)) as string;\n}\n\n/**\n * Resolve the actual path of a file/directory\n */\nexport async function realpath(path: string): Promise<string> {\n  return (await window.rpc.call(\"fs.realpath\", path)) as string;\n}\n\n// ============================================================================\n// Write Operations\n// ============================================================================\n\n/**\n * Write data to a file\n */\nexport async function writeFile(\n  path: string,\n  data: FsWriteInput,\n  options?: FsWriteOptions,\n): Promise<void> {\n  await window.rpc.call(\"fs.writeFile\", path, data, options);\n}\n\n/**\n * Append data to a file\n */\nexport async function appendFile(\n  path: string,\n  data: FsWriteInput,\n  options?: FsAppendFileOptions,\n): Promise<void> {\n  await window.rpc.call(\"fs.appendFile\", path, data, options);\n}\n\n/**\n * Copy a file\n */\nexport async function copyFile(src: string, dest: string, mode?: FsCopyFileOptions): Promise<void> {\n  await window.rpc.call(\"fs.copyFile\", src, dest, mode);\n}\n\n// ============================================================================\n// File Operations\n// ============================================================================\n\n/**\n * Remove a file\n */\nexport async function unlink(path: string): Promise<void> {\n  await window.rpc.call(\"fs.unlink\", path);\n}\n\n/**\n * Rename a file\n */\nexport async function rename(oldPath: string, newPath: string): Promise<void> {\n  await window.rpc.call(\"fs.rename\", oldPath, newPath);\n}\n\n/**\n * Truncate a file to a specified length\n */\nexport async function truncate(path: string, len?: number): Promise<void> {\n  await window.rpc.call(\"fs.truncate\", path, len);\n}\n\n/**\n * Get file status information\n */\nexport async function stat(path: string, options?: FsStatOptions): Promise<FsStatsOutput> {\n  return (await window.rpc.call(\"fs.stat\", path, options)) as FsStatsOutput;\n}\n\n/**\n * Get symbolic link status information\n */\nexport async function lstat(path: string, options?: FsStatOptions): Promise<FsStatsOutput> {\n  return (await window.rpc.call(\"fs.lstat\", path, options)) as FsStatsOutput;\n}\n\n/**\n * Check if a file exists\n */\nexport async function exists(path: string): Promise<boolean> {\n  return (await window.rpc.call(\"fs.exists\", path)) as boolean;\n}\n\n/**\n * Check if a file is accessible with the given mode\n */\nexport async function access(path: string, mode?: number): Promise<void> {\n  await window.rpc.call(\"fs.access\", path, mode);\n}\n\n/**\n * Change file permissions\n */\nexport async function chmod(path: string, mode: number): Promise<void> {\n  await window.rpc.call(\"fs.chmod\", path, mode);\n}\n\n/**\n * Change file owner\n */\nexport async function chown(path: string, uid: number, gid: number): Promise<void> {\n  await window.rpc.call(\"fs.chown\", path, uid, gid);\n}\n\n/**\n * Change file timestamps\n */\nexport async function utimes(path: string, atime: FsTimeLike, mtime: FsTimeLike): Promise<void> {\n  await window.rpc.call(\"fs.utimes\", path, atime, mtime);\n}\n\n// ============================================================================\n// Directory Operations\n// ============================================================================\n\n/**\n * Create a directory\n */\nexport async function mkdir(path: string, options?: FsMkdirOptions): Promise<void | string> {\n  return (await window.rpc.call(\"fs.mkdir\", path, options)) as void | string;\n}\n\n/**\n * Read directory contents\n */\nexport async function readdir(path: string, options?: FsReaddirOptions): Promise<FsReaddirResult> {\n  return (await window.rpc.call(\"fs.readdir\", path, options)) as FsReaddirResult;\n}\n\n/**\n * Remove a directory\n */\nexport async function rmdir(path: string, options?: FsRmdirOptions): Promise<void> {\n  await window.rpc.call(\"fs.rmdir\", path, options);\n}\n\n/**\n * Remove a file or directory (recursively)\n */\nexport async function rm(path: string, options?: FsRmOptions): Promise<void> {\n  await window.rpc.call(\"fs.rm\", path, options);\n}\n\n/**\n * Copy a directory structure\n */\nexport async function cp(\n  source: string,\n  destination: string,\n  options?: FsCopyOptions,\n): Promise<void> {\n  await window.rpc.call(\"fs.cp\", source, destination, options);\n}\n\n// ============================================================================\n// Link Operations\n// ============================================================================\n\n/**\n * Create a hard link\n */\nexport async function link(existingPath: string, newPath: string): Promise<void> {\n  await window.rpc.call(\"fs.link\", existingPath, newPath);\n}\n\n/**\n * Create a symbolic link\n */\nexport async function symlink(target: string, path: string, type?: FsSymlinkType): Promise<void> {\n  await window.rpc.call(\"fs.symlink\", target, path, type);\n}\n"],"mappings":";;;;AA0BA,eAAsB,SACpB,MACA,SAC2B;AAC3B,QAAQ,MAAM,OAAO,IAAI,KAAK,eAAe,MAAM,QAAQ;;;;;AAM7D,eAAsB,SAAS,MAA+B;AAC5D,QAAQ,MAAM,OAAO,IAAI,KAAK,eAAe,KAAK;;;;;AAMpD,eAAsB,SAAS,MAA+B;AAC5D,QAAQ,MAAM,OAAO,IAAI,KAAK,eAAe,KAAK;;;;;AAUpD,eAAsB,UACpB,MACA,MACA,SACe;AACf,OAAM,OAAO,IAAI,KAAK,gBAAgB,MAAM,MAAM,QAAQ;;;;;AAM5D,eAAsB,WACpB,MACA,MACA,SACe;AACf,OAAM,OAAO,IAAI,KAAK,iBAAiB,MAAM,MAAM,QAAQ;;;;;AAM7D,eAAsB,SAAS,KAAa,MAAc,MAAyC;AACjG,OAAM,OAAO,IAAI,KAAK,eAAe,KAAK,MAAM,KAAK;;;;;AAUvD,eAAsB,OAAO,MAA6B;AACxD,OAAM,OAAO,IAAI,KAAK,aAAa,KAAK;;;;;AAM1C,eAAsB,OAAO,SAAiB,SAAgC;AAC5E,OAAM,OAAO,IAAI,KAAK,aAAa,SAAS,QAAQ;;;;;AAMtD,eAAsB,SAAS,MAAc,KAA6B;AACxE,OAAM,OAAO,IAAI,KAAK,eAAe,MAAM,IAAI;;;;;AAMjD,eAAsB,KAAK,MAAc,SAAiD;AACxF,QAAQ,MAAM,OAAO,IAAI,KAAK,WAAW,MAAM,QAAQ;;;;;AAMzD,eAAsB,MAAM,MAAc,SAAiD;AACzF,QAAQ,MAAM,OAAO,IAAI,KAAK,YAAY,MAAM,QAAQ;;;;;AAM1D,eAAsB,OAAO,MAAgC;AAC3D,QAAQ,MAAM,OAAO,IAAI,KAAK,aAAa,KAAK;;;;;AAMlD,eAAsB,OAAO,MAAc,MAA8B;AACvE,OAAM,OAAO,IAAI,KAAK,aAAa,MAAM,KAAK;;;;;AAMhD,eAAsB,MAAM,MAAc,MAA6B;AACrE,OAAM,OAAO,IAAI,KAAK,YAAY,MAAM,KAAK;;;;;AAM/C,eAAsB,MAAM,MAAc,KAAa,KAA4B;AACjF,OAAM,OAAO,IAAI,KAAK,YAAY,MAAM,KAAK,IAAI;;;;;AAMnD,eAAsB,OAAO,MAAc,OAAmB,OAAkC;AAC9F,OAAM,OAAO,IAAI,KAAK,aAAa,MAAM,OAAO,MAAM;;;;;AAUxD,eAAsB,MAAM,MAAc,SAAkD;AAC1F,QAAQ,MAAM,OAAO,IAAI,KAAK,YAAY,MAAM,QAAQ;;;;;AAM1D,eAAsB,QAAQ,MAAc,SAAsD;AAChG,QAAQ,MAAM,OAAO,IAAI,KAAK,cAAc,MAAM,QAAQ;;;;;AAM5D,eAAsB,MAAM,MAAc,SAAyC;AACjF,OAAM,OAAO,IAAI,KAAK,YAAY,MAAM,QAAQ;;;;;AAMlD,eAAsB,GAAG,MAAc,SAAsC;AAC3E,OAAM,OAAO,IAAI,KAAK,SAAS,MAAM,QAAQ;;;;;AAM/C,eAAsB,GACpB,QACA,aACA,SACe;AACf,OAAM,OAAO,IAAI,KAAK,SAAS,QAAQ,aAAa,QAAQ;;;;;AAU9D,eAAsB,KAAK,cAAsB,SAAgC;AAC/E,OAAM,OAAO,IAAI,KAAK,WAAW,cAAc,QAAQ;;;;;AAMzD,eAAsB,QAAQ,QAAgB,MAAc,MAAqC;AAC/F,OAAM,OAAO,IAAI,KAAK,cAAc,QAAQ,MAAM,KAAK"}