@gjsify/fs 0.4.30 → 0.4.32

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/esm/fd-ops.js CHANGED
@@ -1 +1 @@
1
- import"./_virtual/_rolldown/runtime.js";import{normalizePath as e}from"./utils.js";import{FileHandle as t}from"./file-handle.js";import{chmodSync as n,chownSync as r,readFileSync as i,statSync as a,truncateSync as o}from"./sync.js";import{utimesSync as s}from"./utimes.js";function getFH(e){return e instanceof t?t.getInstance(e.fd):t.getInstance(e)}function fstatSync(t,n){return a(e(getFH(t).options.path),n)}function fstat(e,t,n){typeof t==`function`&&(n=t,t={}),Promise.resolve().then(()=>fstatSync(e,t)).then(e=>n(null,e),n)}async function fstatAsync(e,t){return t?.bigint,fstatSync(e,t)}function ftruncateSync(t,n=0){o(e(getFH(t).options.path),n)}function ftruncate(e,t,n){typeof t==`function`&&(n=t,t=0),Promise.resolve().then(()=>ftruncateSync(e,t)).then(()=>n(null),n)}async function ftruncateAsync(e,t=0){ftruncateSync(e,t)}function fdatasyncSync(e){getFH(e)._flushSync()}function fdatasync(e,t){Promise.resolve().then(()=>fdatasyncSync(e)).then(()=>t(null),t)}async function fdatasyncAsync(e){fdatasyncSync(e)}function fsyncSync(e){getFH(e)._flushSync()}function fsync(e,t){Promise.resolve().then(()=>fsyncSync(e)).then(()=>t(null),t)}async function fsyncAsync(e){fsyncSync(e)}function fchmodSync(t,r){n(e(getFH(t).options.path),r)}function fchmod(e,t,n){Promise.resolve().then(()=>fchmodSync(e,t)).then(()=>n(null),n)}async function fchmodAsync(e,t){fchmodSync(e,t)}function fchownSync(t,n,i){r(e(getFH(t).options.path),n,i)}function fchown(e,t,n,r){Promise.resolve().then(()=>fchownSync(e,t,n)).then(()=>r(null),r)}async function fchownAsync(e,t,n){fchownSync(e,t,n)}function futimesSync(t,n,r){s(e(getFH(t).options.path),n,r)}function futimes(e,t,n,r){Promise.resolve().then(()=>futimesSync(e,t,n)).then(()=>r(null),r)}async function futimesAsync(e,t,n){futimesSync(e,t,n)}function closeSync(e){getFH(e)._closeSync()}function readSync(e,t,n,r,i){let a=0;return typeof n==`object`&&n?(a=n.offset??0,r=n.length??t.byteLength,i=n.position??null):(a=n??0,r??=t.byteLength-a),getFH(e)._readSync(t,a,r,i??null)}function writeSync(e,t,n,r,i){let a;if(typeof t==`string`)a=new TextEncoder().encode(t),typeof n==`number`&&(i=n);else{let e=typeof n==`number`?n:0,i=typeof r==`number`?r:t.byteLength-e;a=new Uint8Array(t.buffer,t.byteOffset+e,i)}return getFH(e)._writeSync(a,i??null)}function readvSync(e,t,n){let r=0;for(let i of t){let t=readSync(e,i,0,i.byteLength,n==null?null:n+r);if(r+=t,t<i.byteLength)break}return r}function readv(e,t,n,r){typeof n==`function`&&(r=n,n=null),Promise.resolve().then(()=>({bytesRead:readvSync(e,t,n),buffers:t})).then(e=>r(null,e.bytesRead,e.buffers),r)}async function readvAsync(e,t,n){return{bytesRead:readvSync(e,t,n),buffers:t}}function writevSync(e,t,n){let r=0;for(let i of t){let t=writeSync(e,i,0,i.byteLength,n==null?null:n+r);r+=t}return r}function writev(e,t,n,r){typeof n==`function`&&(r=n,n=null),Promise.resolve().then(()=>({bytesWritten:writevSync(e,t,n),buffers:t})).then(e=>r(null,e.bytesWritten,e.buffers),r)}async function writevAsync(e,t,n){return{bytesWritten:writevSync(e,t,n),buffers:t}}function exists(t,n){try{a(e(t)),n(!0)}catch{n(!1)}}async function openAsBlob(t,n){let r=i(e(t));return new Blob([r],{type:n?.type??``})}export{closeSync,exists,fchmod,fchmodAsync,fchmodSync,fchown,fchownAsync,fchownSync,fdatasync,fdatasyncAsync,fdatasyncSync,fstat,fstatAsync,fstatSync,fsync,fsyncAsync,fsyncSync,ftruncate,ftruncateAsync,ftruncateSync,futimes,futimesAsync,futimesSync,openAsBlob,readSync,readv,readvAsync,readvSync,writeSync,writev,writevAsync,writevSync};
1
+ import"./_virtual/_rolldown/runtime.js";import{normalizePath as e}from"./utils.js";import{FileHandle as t}from"./file-handle.js";import{chmodSync as n,chownSync as r,readFileSync as i,statSync as a,truncateSync as o}from"./sync.js";import{utimesSync as s}from"./utimes.js";function getFH(e){return e instanceof t?t.getInstance(e.fd):t.getInstance(e)}function fstatSync(t,n){return a(e(getFH(t).options.path),n)}function fstat(e,t,n){let r=typeof t==`function`?t:n;fstatAsync(e,typeof t==`function`?{}:t).then(e=>r(null,e),e=>r(e,void 0))}async function fstatAsync(e,t){return t?.bigint,fstatSync(e,t)}function ftruncateSync(t,n=0){o(e(getFH(t).options.path),n)}function ftruncate(e,t,n){let r=typeof t==`function`?t:n;ftruncateAsync(e,typeof t==`function`?0:t).then(()=>r(null),r)}async function ftruncateAsync(e,t=0){ftruncateSync(e,t)}function fdatasyncSync(e){getFH(e)._flushSync()}function fdatasync(e,t){Promise.resolve().then(()=>fdatasyncSync(e)).then(()=>t(null),t)}async function fdatasyncAsync(e){fdatasyncSync(e)}function fsyncSync(e){getFH(e)._flushSync()}function fsync(e,t){Promise.resolve().then(()=>fsyncSync(e)).then(()=>t(null),t)}async function fsyncAsync(e){fsyncSync(e)}function fchmodSync(t,r){n(e(getFH(t).options.path),r)}function fchmod(e,t,n){Promise.resolve().then(()=>fchmodSync(e,t)).then(()=>n(null),n)}async function fchmodAsync(e,t){fchmodSync(e,t)}function fchownSync(t,n,i){r(e(getFH(t).options.path),n,i)}function fchown(e,t,n,r){Promise.resolve().then(()=>fchownSync(e,t,n)).then(()=>r(null),r)}async function fchownAsync(e,t,n){fchownSync(e,t,n)}function futimesSync(t,n,r){s(e(getFH(t).options.path),n,r)}function futimes(e,t,n,r){Promise.resolve().then(()=>futimesSync(e,t,n)).then(()=>r(null),r)}async function futimesAsync(e,t,n){futimesSync(e,t,n)}function closeSync(e){getFH(e)._closeSync()}function readSync(e,t,n,r,i){let a=0;return typeof n==`object`&&n?(a=n.offset??0,r=n.length??t.byteLength,i=n.position??null):(a=n??0,r??=t.byteLength-a),getFH(e)._readSync(t,a,r,i??null)}function writeSync(e,t,n,r,i){let a;if(typeof t==`string`)a=new TextEncoder().encode(t),typeof n==`number`&&(i=n);else{let e=typeof n==`number`?n:0,i=typeof r==`number`?r:t.byteLength-e;a=new Uint8Array(t.buffer,t.byteOffset+e,i)}return getFH(e)._writeSync(a,i??null)}function readvSync(e,t,n){let r=0;for(let i of t){let t=readSync(e,i,0,i.byteLength,n==null?null:n+r);if(r+=t,t<i.byteLength)break}return r}function readv(e,t,n,r){let i=typeof n==`function`?n:r;readvAsync(e,t,typeof n==`function`?null:n).then(e=>i(null,e.bytesRead,e.buffers),e=>i(e,0,t))}async function readvAsync(e,t,n){return{bytesRead:readvSync(e,t,n),buffers:t}}function writevSync(e,t,n){let r=0;for(let i of t){let t=writeSync(e,i,0,i.byteLength,n==null?null:n+r);r+=t}return r}function writev(e,t,n,r){let i=typeof n==`function`?n:r;writevAsync(e,t,typeof n==`function`?null:n).then(e=>i(null,e.bytesWritten,e.buffers),e=>i(e,0,t))}async function writevAsync(e,t,n){return{bytesWritten:writevSync(e,t,n),buffers:t}}function exists(t,n){try{a(e(t)),n(!0)}catch{n(!1)}}async function openAsBlob(t,n){let r=i(e(t));return new Blob([r],{type:n?.type??``})}export{closeSync,exists,fchmod,fchmodAsync,fchmodSync,fchown,fchownAsync,fchownSync,fdatasync,fdatasyncAsync,fdatasyncSync,fstat,fstatAsync,fstatSync,fsync,fsyncAsync,fsyncSync,ftruncate,ftruncateAsync,ftruncateSync,futimes,futimesAsync,futimesSync,openAsBlob,readSync,readv,readvAsync,readvSync,writeSync,writev,writevAsync,writevSync};
@@ -1 +1 @@
1
- import"./_virtual/_rolldown/runtime.js";import{normalizePath as e}from"./utils.js";import t from"@girs/glib-2.0";import n from"@girs/gio-2.0";import{EventEmitter as r}from"node:events";const i=new WeakMap;var FSWatcher=class extends r{constructor(r,a,o){super(),(!a||typeof a!=`object`)&&(a={persistent:!0});let s=a.persistent!==!1,c=n.Cancellable.new(),l=e(r),u=n.File.new_for_path(l).monitor(n.FileMonitorFlags.NONE,c);u.connect(`changed`,changed.bind(this));let d=null;s&&(d=t.timeout_add(t.PRIORITY_LOW,2147483647,()=>t.SOURCE_CONTINUE)),i.set(this,{persistent:s,cancellable:c,sourceId:d,watcher:u}),o&&this.on(`change`,o)}close(){let e=i.get(this);e.cancellable.is_cancelled()||(e.cancellable.cancel(),e.sourceId!==null&&(t.source_remove(e.sourceId),e.sourceId=null))}ref(){let e=i.get(this);return!e.persistent&&!e.cancellable.is_cancelled()&&(e.persistent=!0,e.sourceId=t.timeout_add(t.PRIORITY_LOW,2147483647,()=>t.SOURCE_CONTINUE)),this}unref(){let e=i.get(this);return e.persistent&&(e.persistent=!1,e.sourceId!==null&&(t.source_remove(e.sourceId),e.sourceId=null)),this}};function changed(e,t,r,i){switch(i){case n.FileMonitorEvent.CHANGES_DONE_HINT:this.emit(`change`,`change`,t.get_basename());break;case n.FileMonitorEvent.DELETED:case n.FileMonitorEvent.CREATED:case n.FileMonitorEvent.RENAMED:case n.FileMonitorEvent.MOVED_IN:case n.FileMonitorEvent.MOVED_OUT:this.emit(`rename`,`rename`,t.get_basename());break}}function gioEventToNodeType(e){switch(e){case n.FileMonitorEvent.CHANGES_DONE_HINT:return`change`;case n.FileMonitorEvent.DELETED:case n.FileMonitorEvent.CREATED:case n.FileMonitorEvent.RENAMED:case n.FileMonitorEvent.MOVED_IN:case n.FileMonitorEvent.MOVED_OUT:return`rename`;default:return null}}async function*watchAsync(t,r){let i=r?.signal;if(i?.aborted)return;let a=e(t),o=n.File.new_for_path(a),s=n.Cancellable.new(),c;try{c=o.monitor(n.FileMonitorFlags.NONE,s)}catch{return}let l=[],u=[],d=!1;function enqueue(e){d||(u.length>0?u.shift().resolve({value:e,done:!1}):l.push(e))}function terminate(){if(!d)for(d=!0,s.is_cancelled()||s.cancel();u.length>0;)u.shift().resolve({value:void 0,done:!0})}let f=c.connect(`changed`,(e,t,n,r)=>{let i=gioEventToNodeType(r);i!==null&&enqueue({eventType:i,filename:t?.get_basename()??null})}),abortHandler=()=>terminate();i?.addEventListener(`abort`,abortHandler);try{for(;!d;){if(l.length>0){yield l.shift();continue}let e=await new Promise(e=>{u.push({resolve:e})});if(e.done)break;yield e.value}}finally{i?.removeEventListener(`abort`,abortHandler);try{c.disconnect(f)}catch{}s.is_cancelled()||s.cancel()}}export{FSWatcher,FSWatcher as default,watchAsync};
1
+ import"./_virtual/_rolldown/runtime.js";import{normalizePath as e}from"./utils.js";import t from"@girs/glib-2.0";import n from"@girs/gio-2.0";import{EventEmitter as r}from"node:events";const i=new WeakMap;var FSWatcher=class extends r{constructor(r,a,o){super(),(!a||typeof a!=`object`)&&(a={persistent:!0});let s=a.persistent!==!1,c=n.Cancellable.new(),l=e(r),u=n.File.new_for_path(l).monitor(n.FileMonitorFlags.NONE,c);u.connect(`changed`,changed.bind(this));let d=null;s&&(d=t.timeout_add(t.PRIORITY_LOW,2147483647,()=>t.SOURCE_CONTINUE)),i.set(this,{persistent:s,cancellable:c,sourceId:d,watcher:u}),o&&this.on(`change`,o)}close(){let e=i.get(this);e.cancellable.is_cancelled()||(e.cancellable.cancel(),e.sourceId!==null&&(t.source_remove(e.sourceId),e.sourceId=null))}ref(){let e=i.get(this);return!e.persistent&&!e.cancellable.is_cancelled()&&(e.persistent=!0,e.sourceId=t.timeout_add(t.PRIORITY_LOW,2147483647,()=>t.SOURCE_CONTINUE)),this}unref(){let e=i.get(this);return e.persistent&&(e.persistent=!1,e.sourceId!==null&&(t.source_remove(e.sourceId),e.sourceId=null)),this}};function changed(e,t,r,i){switch(i){case n.FileMonitorEvent.CHANGES_DONE_HINT:this.emit(`change`,`change`,t.get_basename());break;case n.FileMonitorEvent.DELETED:case n.FileMonitorEvent.CREATED:case n.FileMonitorEvent.RENAMED:case n.FileMonitorEvent.MOVED_IN:case n.FileMonitorEvent.MOVED_OUT:this.emit(`change`,`rename`,t.get_basename());break}}function gioEventToNodeType(e){switch(e){case n.FileMonitorEvent.CHANGES_DONE_HINT:return`change`;case n.FileMonitorEvent.DELETED:case n.FileMonitorEvent.CREATED:case n.FileMonitorEvent.RENAMED:case n.FileMonitorEvent.MOVED_IN:case n.FileMonitorEvent.MOVED_OUT:return`rename`;default:return null}}async function*watchAsync(t,r){let i=r?.signal;if(i?.aborted)return;let a=e(t),o=n.File.new_for_path(a),s=n.Cancellable.new(),c;try{c=o.monitor(n.FileMonitorFlags.NONE,s)}catch{return}let l=[],u=[],d=!1;function enqueue(e){d||(u.length>0?u.shift().resolve({value:e,done:!1}):l.push(e))}function terminate(){if(!d)for(d=!0,s.is_cancelled()||s.cancel();u.length>0;)u.shift().resolve({value:void 0,done:!0})}let f=c.connect(`changed`,(e,t,n,r)=>{let i=gioEventToNodeType(r);i!==null&&enqueue({eventType:i,filename:t?.get_basename()??null})}),abortHandler=()=>terminate();i?.addEventListener(`abort`,abortHandler);try{for(;!d;){if(l.length>0){yield l.shift();continue}let e=await new Promise(e=>{u.push({resolve:e})});if(e.done)break;yield e.value}}finally{i?.removeEventListener(`abort`,abortHandler);try{c.disconnect(f)}catch{}s.is_cancelled()||s.cancel()}}export{FSWatcher,FSWatcher as default,watchAsync};
@@ -1 +1 @@
1
- import{__exportAll as e}from"./_virtual/_rolldown/runtime.js";import{decode as t,encodeUint8Array as n,getEncodingFromOptions as r}from"./encoding.js";import{normalizePath as i,tempDirPath as a}from"./utils.js";import{watchAsync as o}from"./fs-watcher.js";import{Dirent as s}from"./dirent.js";import{BigIntStats as c,STAT_ATTRIBUTES as l,Stats as u}from"./stats.js";import{FileHandle as d}from"./file-handle.js";import{createNodeError as f}from"./errors.js";import{accessSync as p,appendFileSync as m,chmodSync as h,chownSync as g,copyFileSync as _,linkSync as v,readdirSync as y,readlinkSync as b,realpathSync as x,renameSync as S,truncateSync as C}from"./sync.js";import{cpAsync as w}from"./cp.js";import{opendirAsync as T}from"./dir.js";import{globAsync as E}from"./glob.js";import{statfsAsync as D}from"./statfs.js";import{lchmodAsync as O,lchownAsync as k,lutimesAsync as A,utimesAsync as j}from"./utimes.js";import{fchmodAsync as M,fchownAsync as N,fdatasyncAsync as P,fstatAsync as F,fsyncAsync as I,ftruncateAsync as L,futimesAsync as R,openAsBlob as z,readvAsync as B,writevAsync as V}from"./fd-ops.js";import H from"@girs/glib-2.0";import U from"@girs/gio-2.0";import{dirname as W,join as G}from"node:path";var K=e({access:()=>access,appendFile:()=>appendFile,chmod:()=>chmod,chown:()=>chown,copyFile:()=>copyFile,cp:()=>w,default:()=>q,fchmod:()=>M,fchown:()=>N,fdatasync:()=>P,fstat:()=>F,fsync:()=>I,ftruncate:()=>L,futimes:()=>R,glob:()=>E,lchmod:()=>O,lchown:()=>k,link:()=>link,lstat:()=>lstat,lutimes:()=>A,mkdir:()=>mkdir,mkdtemp:()=>mkdtemp,open:()=>open,openAsBlob:()=>z,opendir:()=>T,readFile:()=>readFile,readdir:()=>readdir,readlink:()=>readlink,readv:()=>B,realpath:()=>realpath,rename:()=>rename,rm:()=>rm,rmdir:()=>rmdir,stat:()=>stat,statfs:()=>D,symlink:()=>symlink,truncate:()=>truncate,unlink:()=>unlink,utimes:()=>j,watch:()=>o,write:()=>write,writeFile:()=>writeFile,writev:()=>V});async function mkdir(e,t){let n;typeof t==`object`&&(t.recursive&&(n=t.recursive),t.mode&&t.mode);let r=i(e);if(n)return mkdirRecursiveAsync(r);let a=U.File.new_for_path(r);return new Promise((e,t)=>{a.make_directory_async(H.PRIORITY_DEFAULT,null,(n,i)=>{try{a.make_directory_finish(i),e(void 0)}catch(e){t(f(e,`mkdir`,r))}})})}async function mkdirRecursiveAsync(e){let t=U.File.new_for_path(e);try{return await new Promise((e,n)=>{t.make_directory_async(H.PRIORITY_DEFAULT,null,(r,i)=>{try{t.make_directory_finish(i),e()}catch(e){n(e)}})}),e}catch(t){let n=t;if(n.code===U.IOErrorEnum.EXISTS)return;if(n.code===U.IOErrorEnum.NOT_FOUND){let n=W(e);if(n===e)throw f(t,`mkdir`,e);let r=await mkdirRecursiveAsync(n),i=U.File.new_for_path(e);return await new Promise((t,n)=>{i.make_directory_async(H.PRIORITY_DEFAULT,null,(r,a)=>{try{i.make_directory_finish(a),t()}catch(t){n(f(t,`mkdir`,e))}})}),r??e}throw f(t,`mkdir`,e)}}async function readFile(e,t={encoding:null,flag:`r`}){let a=i(e),o=U.File.new_for_path(a),s,c;try{[s,c]=await new Promise((e,t)=>{o.load_contents_async(null,(n,r)=>{try{e(o.load_contents_finish(r))}catch(e){t(e)}})})}catch(e){throw f(e,`open`,a)}if(!s)throw f(Error(`failed to read file`),`open`,a);return n(r(t,`buffer`),c)}async function mkdtemp(e,n){let i=r(n),o=a(e);return await mkdir(o,{recursive:!1,mode:448}),t(o,i)}async function writeFile(e,t){let n=i(e),r=U.File.new_for_path(n),a;a=typeof t==`string`?new TextEncoder().encode(t):t instanceof Uint8Array?t:new TextEncoder().encode(String(t));let o=await new Promise((e,t)=>{r.replace_async(null,!1,U.FileCreateFlags.REPLACE_DESTINATION,H.PRIORITY_DEFAULT,null,(i,a)=>{try{e(r.replace_finish(a))}catch(e){t(f(e,`open`,n))}})});if(a.length>0){let e=new H.Bytes(a);await new Promise((t,r)=>{o.write_bytes_async(e,H.PRIORITY_DEFAULT,null,(e,i)=>{try{o.write_bytes_finish(i),t()}catch(e){r(f(e,`write`,n))}})})}await new Promise((e,t)=>{o.close_async(H.PRIORITY_DEFAULT,null,(r,i)=>{try{o.close_finish(i),e()}catch(e){t(f(e,`close`,n))}})})}async function rmdir(e,t){let n=i(e),r=U.File.new_for_path(n);if((await new Promise((e,t)=>{r.query_info_async(`standard::type`,U.FileQueryInfoFlags.NONE,H.PRIORITY_DEFAULT,null,(i,a)=>{try{e(r.query_info_finish(a))}catch(e){t(f(e,`rmdir`,n))}})})).get_file_type()!==U.FileType.DIRECTORY)throw f(Object.assign(Error(),{code:4}),`rmdir`,n);if((await new Promise((e,t)=>{r.enumerate_children_async(`standard::name`,U.FileQueryInfoFlags.NONE,H.PRIORITY_DEFAULT,null,(i,a)=>{try{e(r.enumerate_children_finish(a))}catch(e){t(f(e,`rmdir`,n))}})})).next_file(null)!==null)throw f(Object.assign(Error(),{code:5}),`rmdir`,n);await new Promise((e,t)=>{r.delete_async(H.PRIORITY_DEFAULT,null,(i,a)=>{try{r.delete_finish(a),e()}catch(e){t(f(e,`rmdir`,n))}})})}async function unlink(e){let t=i(e),n=U.File.new_for_path(t);await new Promise((e,r)=>{n.delete_async(H.PRIORITY_DEFAULT,null,(i,a)=>{try{n.delete_finish(a),e()}catch(e){r(f(e,`unlink`,t))}})})}async function open(e,t,n){return new d({path:e,flags:t,mode:n})}async function write(e,t,n,r,i){return typeof t==`string`?_writeStr(e,t,n,r):_writeBuf(e,t,n,r,i)}async function _writeBuf(e,t,n,r,i){return{bytesWritten:(await d.getInstance(e).write(t,n,r,i)).bytesWritten,buffer:t}}async function _writeStr(e,t,n,r){return{bytesWritten:(await d.getInstance(e).write(t,n,r)).bytesWritten,buffer:t}}function queryInfoAsync(e,t,n,r){let a=i(e);return new Promise((e,i)=>{let o=U.File.new_for_path(a);o.query_info_async(l,t,H.PRIORITY_DEFAULT,null,(t,s)=>{try{let t=o.query_info_finish(s);e(r?.bigint?new c(t,a):new u(t,a))}catch(e){i(f(e,n,a))}})})}async function stat(e,t){return queryInfoAsync(e,U.FileQueryInfoFlags.NONE,`stat`,t)}async function lstat(e,t){return queryInfoAsync(e,U.FileQueryInfoFlags.NOFOLLOW_SYMLINKS,`lstat`,t)}async function readdir(e,t){try{return y(e,t)}catch(t){throw f(t,`scandir`,e)}}async function realpath(e){return x(e)}async function symlink(e,t,n){let r=i(t),a=i(e);return new Promise((e,t)=>{let n=U.File.new_for_path(r);n.make_symbolic_link_async(a,H.PRIORITY_DEFAULT,null,(i,o)=>{try{n.make_symbolic_link_finish(o),e()}catch(e){t(f(e,`symlink`,a,r))}})})}async function rm(e,t){let n=i(e),r=U.File.new_for_path(n),a=t?.recursive||!1,o=t?.force||!1,c;try{c=new s(n)}catch(t){if(o)return;throw f(t,`rm`,e)}if(c.isDirectory()){let r=await readdir(e,{withFileTypes:!0});if(!a&&r.length)throw f(Object.assign(Error(),{code:5}),`rm`,e);for(let e of r)typeof e!=`string`&&await rm(G(n,e.name),t)}await new Promise((t,n)=>{r.delete_async(H.PRIORITY_DEFAULT,null,(i,a)=>{try{r.delete_finish(a),t()}catch(r){if(o){t();return}n(f(r,`rm`,e))}})})}async function rename(e,t){S(e,t)}async function copyFile(e,t,n){_(e,t,n)}async function access(e,t){p(e,t)}async function appendFile(e,t,n){m(e,t,n)}async function readlink(e,t){return b(e,t)}async function truncate(e,t){C(e,t)}async function chmod(e,t){h(e,t)}async function chown(e,t,n){g(e,t,n)}async function link(e,t){v(e,t)}var q={readFile,mkdir,mkdtemp,realpath,readdir,writeFile,rmdir,unlink,open,write,rm,lstat,symlink,stat,rename,copyFile,access,appendFile,readlink,truncate,chmod,chown,link,cp:w,opendir:T,glob:E,watch:o,statfs:D,utimes:j,lutimes:A,lchown:k,lchmod:O,fstat:F,ftruncate:L,fdatasync:P,fsync:I,fchmod:M,fchown:N,futimes:R,readv:B,writev:V,openAsBlob:z};export{access,appendFile,chmod,chown,copyFile,w as cp,q as default,M as fchmod,N as fchown,P as fdatasync,F as fstat,I as fsync,L as ftruncate,R as futimes,E as glob,O as lchmod,k as lchown,link,lstat,A as lutimes,mkdir,mkdtemp,open,z as openAsBlob,T as opendir,K as promises_exports,readFile,readdir,readlink,B as readv,realpath,rename,rm,rmdir,stat,D as statfs,symlink,truncate,unlink,j as utimes,o as watch,write,writeFile,V as writev};
1
+ import{__exportAll as e}from"./_virtual/_rolldown/runtime.js";import{decode as t,encodeUint8Array as n,getEncodingFromOptions as r}from"./encoding.js";import{normalizePath as i,tempDirPath as a}from"./utils.js";import{watchAsync as o}from"./fs-watcher.js";import{BigIntStats as s,STAT_ATTRIBUTES as c,Stats as l}from"./stats.js";import{FileHandle as u}from"./file-handle.js";import{createNodeError as d}from"./errors.js";import{accessSync as f,appendFileSync as p,chmodSync as m,chownSync as h,copyFileSync as g,linkSync as _,readdirSync as v,readlinkSync as y,realpathSync as b,renameSync as x,truncateSync as S}from"./sync.js";import{cpAsync as C}from"./cp.js";import{opendirAsync as w}from"./dir.js";import{globAsync as T}from"./glob.js";import{statfsAsync as E}from"./statfs.js";import{lchmodAsync as D,lchownAsync as O,lutimesAsync as k,utimesAsync as A}from"./utimes.js";import{fchmodAsync as j,fchownAsync as M,fdatasyncAsync as N,fstatAsync as P,fsyncAsync as F,ftruncateAsync as I,futimesAsync as L,openAsBlob as R,readvAsync as z,writevAsync as B}from"./fd-ops.js";import V from"@girs/glib-2.0";import H from"@girs/gio-2.0";import{dirname as U,join as W}from"node:path";var G=e({access:()=>access,appendFile:()=>appendFile,chmod:()=>chmod,chown:()=>chown,copyFile:()=>copyFile,cp:()=>C,default:()=>K,fchmod:()=>j,fchown:()=>M,fdatasync:()=>N,fstat:()=>P,fsync:()=>F,ftruncate:()=>I,futimes:()=>L,glob:()=>T,lchmod:()=>D,lchown:()=>O,link:()=>link,lstat:()=>lstat,lutimes:()=>k,mkdir:()=>mkdir,mkdtemp:()=>mkdtemp,open:()=>open,openAsBlob:()=>R,opendir:()=>w,readFile:()=>readFile,readdir:()=>readdir,readlink:()=>readlink,readv:()=>z,realpath:()=>realpath,rename:()=>rename,rm:()=>rm,rmdir:()=>rmdir,stat:()=>stat,statfs:()=>E,symlink:()=>symlink,truncate:()=>truncate,unlink:()=>unlink,utimes:()=>A,watch:()=>o,write:()=>write,writeFile:()=>writeFile,writev:()=>B});async function mkdir(e,t){let n;typeof t==`object`&&(t.recursive&&(n=t.recursive),t.mode&&t.mode);let r=i(e);if(n)return mkdirRecursiveAsync(r);let a=H.File.new_for_path(r);return new Promise((e,t)=>{a.make_directory_async(V.PRIORITY_DEFAULT,null,(n,i)=>{try{a.make_directory_finish(i),e(void 0)}catch(e){t(d(e,`mkdir`,r))}})})}async function mkdirRecursiveAsync(e){let t=H.File.new_for_path(e);try{return await new Promise((e,n)=>{t.make_directory_async(V.PRIORITY_DEFAULT,null,(r,i)=>{try{t.make_directory_finish(i),e()}catch(e){n(e)}})}),e}catch(t){let n=t;if(n.code===H.IOErrorEnum.EXISTS)return;if(n.code===H.IOErrorEnum.NOT_FOUND){let n=U(e);if(n===e)throw d(t,`mkdir`,e);let r=await mkdirRecursiveAsync(n),i=H.File.new_for_path(e);return await new Promise((t,n)=>{i.make_directory_async(V.PRIORITY_DEFAULT,null,(r,a)=>{try{i.make_directory_finish(a),t()}catch(t){n(d(t,`mkdir`,e))}})}),r??e}throw d(t,`mkdir`,e)}}async function readFile(e,t={encoding:null,flag:`r`}){let a=i(e),o=H.File.new_for_path(a),s,c;try{[s,c]=await new Promise((e,t)=>{o.load_contents_async(null,(n,r)=>{try{e(o.load_contents_finish(r))}catch(e){t(e)}})})}catch(e){throw d(e,`open`,a)}if(!s)throw d(Error(`failed to read file`),`open`,a);return n(r(t,`buffer`),c)}async function mkdtemp(e,n){let i=r(n),o=a(e);return await mkdir(o,{recursive:!1,mode:448}),t(o,i)}async function writeFile(e,t){let n=i(e),r=H.File.new_for_path(n),a;a=typeof t==`string`?new TextEncoder().encode(t):t instanceof Uint8Array?t:new TextEncoder().encode(String(t));let o=await new Promise((e,t)=>{r.replace_async(null,!1,H.FileCreateFlags.REPLACE_DESTINATION,V.PRIORITY_DEFAULT,null,(i,a)=>{try{e(r.replace_finish(a))}catch(e){t(d(e,`open`,n))}})});if(a.length>0){let e=new V.Bytes(a);await new Promise((t,r)=>{o.write_bytes_async(e,V.PRIORITY_DEFAULT,null,(e,i)=>{try{o.write_bytes_finish(i),t()}catch(e){r(d(e,`write`,n))}})})}await new Promise((e,t)=>{o.close_async(V.PRIORITY_DEFAULT,null,(r,i)=>{try{o.close_finish(i),e()}catch(e){t(d(e,`close`,n))}})})}async function rmdir(e,t){let n=i(e),r=H.File.new_for_path(n);if((await new Promise((e,t)=>{r.query_info_async(`standard::type`,H.FileQueryInfoFlags.NONE,V.PRIORITY_DEFAULT,null,(i,a)=>{try{e(r.query_info_finish(a))}catch(e){t(d(e,`rmdir`,n))}})})).get_file_type()!==H.FileType.DIRECTORY)throw d(Object.assign(Error(),{code:4}),`rmdir`,n);if((await new Promise((e,t)=>{r.enumerate_children_async(`standard::name`,H.FileQueryInfoFlags.NONE,V.PRIORITY_DEFAULT,null,(i,a)=>{try{e(r.enumerate_children_finish(a))}catch(e){t(d(e,`rmdir`,n))}})})).next_file(null)!==null)throw d(Object.assign(Error(),{code:5}),`rmdir`,n);await new Promise((e,t)=>{r.delete_async(V.PRIORITY_DEFAULT,null,(i,a)=>{try{r.delete_finish(a),e()}catch(e){t(d(e,`rmdir`,n))}})})}async function unlink(e){let t=i(e),n=H.File.new_for_path(t);await new Promise((e,r)=>{n.delete_async(V.PRIORITY_DEFAULT,null,(i,a)=>{try{n.delete_finish(a),e()}catch(e){r(d(e,`unlink`,t))}})})}async function open(e,t,n){return new u({path:e,flags:t,mode:n})}async function write(e,t,n,r,i){return typeof t==`string`?_writeStr(e,t,n,r):_writeBuf(e,t,n,r,i)}async function _writeBuf(e,t,n,r,i){return{bytesWritten:(await u.getInstance(e).write(t,n,r,i)).bytesWritten,buffer:t}}async function _writeStr(e,t,n,r){return{bytesWritten:(await u.getInstance(e).write(t,n,r)).bytesWritten,buffer:t}}function queryInfoAsync(e,t,n,r){let a=i(e);return new Promise((e,i)=>{let o=H.File.new_for_path(a);o.query_info_async(c,t,V.PRIORITY_DEFAULT,null,(t,c)=>{try{let t=o.query_info_finish(c);e(r?.bigint?new s(t,a):new l(t,a))}catch(e){i(d(e,n,a))}})})}async function stat(e,t){return queryInfoAsync(e,H.FileQueryInfoFlags.NONE,`stat`,t)}async function lstat(e,t){return queryInfoAsync(e,H.FileQueryInfoFlags.NOFOLLOW_SYMLINKS,`lstat`,t)}async function readdir(e,t){try{return v(e,t)}catch(t){throw d(t,`scandir`,e)}}async function realpath(e){return b(e)}async function symlink(e,t,n){let r=i(t),a=i(e);return new Promise((e,t)=>{let n=H.File.new_for_path(r);n.make_symbolic_link_async(a,V.PRIORITY_DEFAULT,null,(i,o)=>{try{n.make_symbolic_link_finish(o),e()}catch(e){t(d(e,`symlink`,a,r))}})})}async function rm(e,t){let n=i(e),r=H.File.new_for_path(n),a=t?.recursive||!1,o=t?.force||!1,s;try{s=r.query_file_type(H.FileQueryInfoFlags.NOFOLLOW_SYMLINKS,null)}catch(t){if(o)return;throw d(t,`rm`,e)}if(s===H.FileType.SYMBOLIC_LINK){await new Promise((t,n)=>{r.delete_async(V.PRIORITY_DEFAULT,null,(i,a)=>{try{r.delete_finish(a),t()}catch(r){if(o){t();return}n(d(r,`rm`,e))}})});return}if(s===H.FileType.DIRECTORY){let r=await readdir(e,{withFileTypes:!0});if(!a&&r.length)throw d(Object.assign(Error(),{code:5}),`rm`,e);for(let e of r)typeof e!=`string`&&await rm(W(n,e.name),t)}await new Promise((t,n)=>{r.delete_async(V.PRIORITY_DEFAULT,null,(i,a)=>{try{r.delete_finish(a),t()}catch(r){if(o){t();return}n(d(r,`rm`,e))}})})}async function rename(e,t){x(e,t)}async function copyFile(e,t,n){g(e,t,n)}async function access(e,t){f(e,t)}async function appendFile(e,t,n){p(e,t,n)}async function readlink(e,t){return y(e,t)}async function truncate(e,t){S(e,t)}async function chmod(e,t){m(e,t)}async function chown(e,t,n){h(e,t,n)}async function link(e,t){_(e,t)}var K={readFile,mkdir,mkdtemp,realpath,readdir,writeFile,rmdir,unlink,open,write,rm,lstat,symlink,stat,rename,copyFile,access,appendFile,readlink,truncate,chmod,chown,link,cp:C,opendir:w,glob:T,watch:o,statfs:E,utimes:A,lutimes:k,lchown:O,lchmod:D,fstat:P,ftruncate:I,fdatasync:N,fsync:F,fchmod:j,fchown:M,futimes:L,readv:z,writev:B,openAsBlob:R};export{access,appendFile,chmod,chown,copyFile,C as cp,K as default,j as fchmod,M as fchown,N as fdatasync,P as fstat,F as fsync,I as ftruncate,L as futimes,T as glob,D as lchmod,O as lchown,link,lstat,k as lutimes,mkdir,mkdtemp,open,R as openAsBlob,w as opendir,G as promises_exports,readFile,readdir,readlink,z as readv,realpath,rename,rm,rmdir,stat,E as statfs,symlink,truncate,unlink,A as utimes,o as watch,write,writeFile,B as writev};
package/lib/esm/statfs.js CHANGED
@@ -1 +1 @@
1
- import"./_virtual/_rolldown/runtime.js";import{normalizePath as e}from"./utils.js";import t from"@girs/glib-2.0";import n from"@girs/gio-2.0";const r=[`filesystem::size`,`filesystem::free`].join(`,`),i=4096;function buildStatFs(e){let t=Number(e.get_attribute_uint64(`filesystem::size`)??0),n=Number(e.get_attribute_uint64(`filesystem::free`)??0),r=Math.floor(t/i),a=Math.floor(n/i);return{type:0,bsize:i,blocks:r,bfree:a,bavail:a,files:0,ffree:0}}function buildBigIntStatFs(e){let t=BigInt(e.get_attribute_uint64(`filesystem::size`)??0),n=BigInt(e.get_attribute_uint64(`filesystem::free`)??0),r=BigInt(i),a=t/r,o=n/r;return{type:0n,bsize:r,blocks:a,bfree:o,bavail:o,files:0n,ffree:0n}}function statfsSync(t,i){let a=n.File.new_for_path(e(t)).query_filesystem_info(r,null);return i?.bigint===!0?buildBigIntStatFs(a):buildStatFs(a)}function queryFsInfoAsync(i,a){return new Promise((o,s)=>{let c=n.File.new_for_path(e(i));c.query_filesystem_info_async(r,t.PRIORITY_DEFAULT,null,(e,t)=>{try{let e=c.query_filesystem_info_finish(t);o(a?buildBigIntStatFs(e):buildStatFs(e))}catch(e){s(e)}})})}function statfs(e,t,n){typeof t==`function`&&(n=t,t={}),queryFsInfoAsync(e,t?.bigint===!0).then(e=>n(null,e),e=>n(e,null))}async function statfsAsync(e,t){return queryFsInfoAsync(e,t?.bigint===!0)}export{statfs,statfsAsync,statfsSync};
1
+ import"./_virtual/_rolldown/runtime.js";import{normalizePath as e}from"./utils.js";import t from"@girs/glib-2.0";import n from"@girs/gio-2.0";const r=[`filesystem::size`,`filesystem::free`].join(`,`),i=4096;function buildStatFs(e){let t=Number(e.get_attribute_uint64(`filesystem::size`)??0),n=Number(e.get_attribute_uint64(`filesystem::free`)??0),r=Math.floor(t/i),a=Math.floor(n/i);return{type:0,bsize:i,blocks:r,bfree:a,bavail:a,files:0,ffree:0}}function buildBigIntStatFs(e){let t=BigInt(e.get_attribute_uint64(`filesystem::size`)??0),n=BigInt(e.get_attribute_uint64(`filesystem::free`)??0),r=BigInt(i),a=t/r,o=n/r;return{type:0n,bsize:r,blocks:a,bfree:o,bavail:o,files:0n,ffree:0n}}function statfsSync(t,i){let a=n.File.new_for_path(e(t)).query_filesystem_info(r,null);return i?.bigint===!0?buildBigIntStatFs(a):buildStatFs(a)}function queryFsInfoAsync(i,a){return new Promise((o,s)=>{let c=n.File.new_for_path(e(i));c.query_filesystem_info_async(r,t.PRIORITY_DEFAULT,null,(e,t)=>{try{let e=c.query_filesystem_info_finish(t);o(a?buildBigIntStatFs(e):buildStatFs(e))}catch(e){s(e)}})})}function statfs(e,t,n){let r=typeof t==`function`?t:n;queryFsInfoAsync(e,(typeof t==`function`?{}:t)?.bigint===!0).then(e=>r(null,e),e=>r(e,null))}async function statfsAsync(e,t){return queryFsInfoAsync(e,t?.bigint===!0)}export{statfs,statfsAsync,statfsSync};
package/lib/esm/sync.js CHANGED
@@ -1 +1 @@
1
- import"./_virtual/_rolldown/runtime.js";import{decode as e,encodeUint8Array as t,getEncodingFromOptions as n}from"./encoding.js";import{normalizePath as r,tempDirPath as i}from"./utils.js";import{FSWatcher as a}from"./fs-watcher.js";import{Dirent as o}from"./dirent.js";import{BigIntStats as s,STAT_ATTRIBUTES as c,Stats as l}from"./stats.js";import{FileHandle as u}from"./file-handle.js";import{createNodeError as d,isNotFoundError as f}from"./errors.js";import p from"@girs/glib-2.0";import m from"@girs/gio-2.0";import{join as h}from"node:path";import{Buffer as g}from"node:buffer";import{existsSync as _}from"@gjsify/utils";function statSync(e,t){let n=r(e);try{let e=m.File.new_for_path(n).query_info(c,m.FileQueryInfoFlags.NONE,null);return t?.bigint?new s(e,n):new l(e,n)}catch(e){if(t?.throwIfNoEntry===!1&&f(e))return;throw d(e,`stat`,n)}}function lstatSync(e,t){let n=r(e);try{let e=m.File.new_for_path(n).query_info(c,m.FileQueryInfoFlags.NOFOLLOW_SYMLINKS,null);return t?.bigint?new s(e,n):new l(e,n)}catch(e){if(t?.throwIfNoEntry===!1&&f(e))return;throw d(e,`lstat`,n)}}function readdirSync(e,t){let n=r(e),i=m.File.new_for_path(n).enumerate_children(`standard::name,standard::type`,m.FileQueryInfoFlags.NOFOLLOW_SYMLINKS,null),a=[];try{let e=i.next_file(null);for(;e!==null;)a.push({name:e.get_name(),type:e.get_file_type()}),e=i.next_file(null)}finally{try{i.close(null)}catch{}}let s=[];for(let e of a){let r=h(n,e.name);if(t?.withFileTypes?s.push(new o(r,e.name,e.type)):s.push(e.name),t?.recursive&&e.type===m.FileType.DIRECTORY){let n=readdirSync(r,t);for(let t of n)typeof t==`string`?s.push(h(e.name,t)):s.push(t)}}return s}function realpathSync(e){let t=r(e),n=m.File.new_for_path(t),i=0;for(;;){let e=n.query_info(`standard::is-symlink,standard::symlink-target`,m.FileQueryInfoFlags.NOFOLLOW_SYMLINKS,null);if(!e.get_is_symlink())return n.get_path();let r=e.get_symlink_target(),a=n.get_parent();if(n=a?a.resolve_relative_path(r):m.File.new_for_path(r),++i>40)throw Error(`ELOOP: too many levels of symbolic links, realpath '${t}'`)}}realpathSync.native=realpathSync;function symlinkSync(e,t,n){let i=r(t),a=r(e);m.File.new_for_path(i).make_symbolic_link(a,null)}function readFileSync(e,i={encoding:null,flag:`r`}){let a=r(e),o=m.File.new_for_path(a);try{let[e,r]=o.load_contents(null);if(!e)throw d(Error(`failed to read file`),`read`,a);return t(n(i,`buffer`),r)}catch(e){throw e.code&&typeof e.code==`string`?e:d(e,`read`,a)}}function mkdirSync(e,t){let n=!1,i=511;if(typeof t==`object`?(t?.recursive&&(n=t.recursive),t?.mode&&(i=t.mode)):i=t||511,e=r(e),typeof i==`string`)throw TypeError(`mode as string is currently not supported!`);if(n)return mkdirSyncRecursive(e);let a=m.File.new_for_path(e);try{a.make_directory(null)}catch(t){throw d(t,`mkdir`,e)}}function mkdirSyncRecursive(e){let t=m.File.new_for_path(e);try{return t.make_directory(null),e}catch(t){let n=t;if(n.code===m.IOErrorEnum.EXISTS)return;if(n.code===m.IOErrorEnum.NOT_FOUND){let n=h(e,`..`),r=m.File.new_for_path(n).get_path();if(r===e)throw d(t,`mkdir`,e);let i=mkdirSyncRecursive(r),a=m.File.new_for_path(e);try{a.make_directory(null)}catch(t){throw d(t,`mkdir`,e)}return i??e}throw d(t,`mkdir`,e)}}function rmdirSync(e,t){let n=r(e),i=m.File.new_for_path(n);try{if(i.query_info(`standard::type`,m.FileQueryInfoFlags.NONE,null).get_file_type()!==m.FileType.DIRECTORY)throw d(Object.assign(Error(),{code:4}),`rmdir`,n);if(i.enumerate_children(`standard::name`,m.FileQueryInfoFlags.NONE,null).next_file(null)!==null)throw d(Object.assign(Error(),{code:5}),`rmdir`,n);i.delete(null)}catch(e){throw e.code&&typeof e.code==`string`?e:d(e,`rmdir`,n)}}function unlinkSync(e){let t=r(e),n=m.File.new_for_path(t);try{n.delete(null)}catch(e){throw d(e,`unlink`,t)}}function writeFileSync(e,t){p.file_set_contents(r(e),t)}function renameSync(e,t){let n=r(e),i=r(t),a=m.File.new_for_path(n),o=m.File.new_for_path(i);try{a.move(o,m.FileCopyFlags.OVERWRITE,null,null)}catch(e){throw d(e,`rename`,n,i)}}function copyFileSync(e,t,n){let i=r(e),a=r(t),o=m.File.new_for_path(i),s=m.File.new_for_path(a),c=m.FileCopyFlags.NONE;n&&!(n&1)?c=m.FileCopyFlags.OVERWRITE:n||(c=m.FileCopyFlags.OVERWRITE);try{o.copy(s,c,null,null)}catch(e){throw d(e,`copyfile`,i,a)}}function accessSync(e,t){let n=r(e),i=m.File.new_for_path(n);try{let e=i.query_info(`access::*`,m.FileQueryInfoFlags.NONE,null);if(t!==void 0&&t!==0){let r={code:14,message:`permission denied, access '${n}'`};if(t&4&&!e.get_attribute_boolean(`access::can-read`)||t&2&&!e.get_attribute_boolean(`access::can-write`)||t&1&&!e.get_attribute_boolean(`access::can-execute`))throw d(r,`access`,n)}}catch(e){throw e.code&&typeof e.code==`string`?e:d(e,`access`,n)}}function appendFileSync(e,t,n){let i=r(e),a=m.File.new_for_path(i),o;o=typeof t==`string`?new TextEncoder().encode(t):t;try{let e=a.append_to(m.FileCreateFlags.NONE,null);o.length>0&&e.write_bytes(new p.Bytes(o),null),e.close(null)}catch(e){throw d(e,`appendfile`,i)}}function readlinkSync(e,t){let n=r(e),i=m.File.new_for_path(n);try{let e=i.query_info(`standard::symlink-target`,m.FileQueryInfoFlags.NOFOLLOW_SYMLINKS,null).get_symlink_target();if(!e)throw Object.assign(Error(`EINVAL: invalid argument, readlink '${n}'`),{code:`EINVAL`,errno:-22,syscall:`readlink`,path:n});return(typeof t==`string`?t:t?.encoding)===`buffer`?g.from(e):e}catch(e){throw typeof e.code==`string`?e:d(e,`readlink`,n)}}function linkSync(e,t){let n=r(e),i=r(t);if(!p.spawn_command_line_sync(`ln ${n} ${i}`)[0])throw Object.assign(Error(`EPERM: operation not permitted, link '${n}' -> '${i}'`),{code:`EPERM`,errno:-1,syscall:`link`,path:n,dest:i})}function truncateSync(e,t){let n=r(e),i=m.File.new_for_path(n);try{let e=i.replace(null,!1,m.FileCreateFlags.NONE,null);if(t&&t>0){let[,n]=i.load_contents(null),r=n.slice(0,t);r.length>0&&e.write_bytes(new p.Bytes(r),null)}e.close(null)}catch(e){throw d(e,`truncate`,n)}}function chmodSync(e,t){let n=r(e),i=typeof t==`string`?parseInt(t,8):t;if(!p.spawn_command_line_sync(`chmod ${i.toString(8)} ${n}`)[0])throw Object.assign(Error(`EPERM: operation not permitted, chmod '${n}'`),{code:`EPERM`,errno:-1,syscall:`chmod`,path:n})}function chownSync(e,t,n){let i=r(e);if(!p.spawn_command_line_sync(`chown ${t}:${n} ${i}`)[0])throw Object.assign(Error(`EPERM: operation not permitted, chown '${i}'`),{code:`EPERM`,errno:-1,syscall:`chown`,path:i})}function watch(e,t,n){return new a(r(e),t,n)}function openSync(e,t,n){return new u({path:e,flags:t,mode:n})}function mkdtempSync(t,r){let a=n(r),o=i(t);return mkdirSync(o,{recursive:!1,mode:511}),e(o,a)}function rmSync(e,t){let n=r(e),i=m.File.new_for_path(n),a=t?.recursive||!1,s=t?.force||!1,c;try{c=new o(n)}catch(t){if(s&&f(t))return;throw d(t,`rm`,e)}if(c.isDirectory()){let r=readdirSync(e);if(!a&&r.length)throw d(Object.assign(Error(),{code:5}),`rm`,e);for(let e of r)rmSync(h(n,e),t)}try{i.delete(null)}catch(t){if(s&&f(t))return;throw d(t,`rm`,e)}}export{accessSync,appendFileSync,chmodSync,chownSync,copyFileSync,_ as existsSync,linkSync,lstatSync,mkdirSync,mkdtempSync,openSync,readFileSync,readdirSync,readlinkSync,realpathSync,renameSync,rmSync,rmdirSync,statSync,symlinkSync,truncateSync,unlinkSync,watch,writeFileSync};
1
+ import"./_virtual/_rolldown/runtime.js";import{decode as e,encodeUint8Array as t,getEncodingFromOptions as n}from"./encoding.js";import{normalizePath as r,tempDirPath as i}from"./utils.js";import{FSWatcher as a}from"./fs-watcher.js";import{Dirent as o}from"./dirent.js";import{BigIntStats as s,STAT_ATTRIBUTES as c,Stats as l}from"./stats.js";import{FileHandle as u}from"./file-handle.js";import{createNodeError as d,isNotFoundError as f}from"./errors.js";import p from"@girs/glib-2.0";import m from"@girs/gio-2.0";import{join as h}from"node:path";import{Buffer as g}from"node:buffer";import{existsSync as _}from"@gjsify/utils";function statSync(e,t){let n=r(e);try{let e=m.File.new_for_path(n).query_info(c,m.FileQueryInfoFlags.NONE,null);return t?.bigint?new s(e,n):new l(e,n)}catch(e){if(t?.throwIfNoEntry===!1&&f(e))return;throw d(e,`stat`,n)}}function lstatSync(e,t){let n=r(e);try{let e=m.File.new_for_path(n).query_info(c,m.FileQueryInfoFlags.NOFOLLOW_SYMLINKS,null);return t?.bigint?new s(e,n):new l(e,n)}catch(e){if(t?.throwIfNoEntry===!1&&f(e))return;throw d(e,`lstat`,n)}}function readdirSync(e,t){let n=r(e),i=m.File.new_for_path(n).enumerate_children(`standard::name,standard::type`,m.FileQueryInfoFlags.NOFOLLOW_SYMLINKS,null),a=[];try{let e=i.next_file(null);for(;e!==null;)a.push({name:e.get_name(),type:e.get_file_type()}),e=i.next_file(null)}finally{try{i.close(null)}catch{}}let s=[];for(let e of a){let r=h(n,e.name);if(t?.withFileTypes?s.push(new o(r,e.name,e.type)):s.push(e.name),t?.recursive&&e.type===m.FileType.DIRECTORY){let n=readdirSync(r,t);for(let t of n)typeof t==`string`?s.push(h(e.name,t)):s.push(t)}}return s}function realpathSync(e){let t=r(e),n=m.File.new_for_path(t),i=0;for(;;){let e=n.query_info(`standard::is-symlink,standard::symlink-target`,m.FileQueryInfoFlags.NOFOLLOW_SYMLINKS,null);if(!e.get_is_symlink())return n.get_path();let r=e.get_symlink_target(),a=n.get_parent();if(n=a?a.resolve_relative_path(r):m.File.new_for_path(r),++i>40)throw Error(`ELOOP: too many levels of symbolic links, realpath '${t}'`)}}realpathSync.native=realpathSync;function symlinkSync(e,t,n){let i=r(t),a=r(e);m.File.new_for_path(i).make_symbolic_link(a,null)}function readFileSync(e,i={encoding:null,flag:`r`}){let a=r(e),o=m.File.new_for_path(a);try{let[e,r]=o.load_contents(null);if(!e)throw d(Error(`failed to read file`),`read`,a);return t(n(i,`buffer`),r)}catch(e){throw e.code&&typeof e.code==`string`?e:d(e,`read`,a)}}function mkdirSync(e,t){let n=!1,i=511;if(typeof t==`object`?(t?.recursive&&(n=t.recursive),t?.mode&&(i=t.mode)):i=t||511,e=r(e),typeof i==`string`)throw TypeError(`mode as string is currently not supported!`);if(n)return mkdirSyncRecursive(e);let a=m.File.new_for_path(e);try{a.make_directory(null)}catch(t){throw d(t,`mkdir`,e)}}function mkdirSyncRecursive(e){let t=m.File.new_for_path(e);try{return t.make_directory(null),e}catch(t){let n=t;if(n.code===m.IOErrorEnum.EXISTS)return;if(n.code===m.IOErrorEnum.NOT_FOUND){let n=h(e,`..`),r=m.File.new_for_path(n).get_path();if(r===e)throw d(t,`mkdir`,e);let i=mkdirSyncRecursive(r),a=m.File.new_for_path(e);try{a.make_directory(null)}catch(t){throw d(t,`mkdir`,e)}return i??e}throw d(t,`mkdir`,e)}}function rmdirSync(e,t){let n=r(e),i=m.File.new_for_path(n);try{if(i.query_info(`standard::type`,m.FileQueryInfoFlags.NONE,null).get_file_type()!==m.FileType.DIRECTORY)throw d(Object.assign(Error(),{code:4}),`rmdir`,n);if(i.enumerate_children(`standard::name`,m.FileQueryInfoFlags.NONE,null).next_file(null)!==null)throw d(Object.assign(Error(),{code:5}),`rmdir`,n);i.delete(null)}catch(e){throw e.code&&typeof e.code==`string`?e:d(e,`rmdir`,n)}}function unlinkSync(e){let t=r(e),n=m.File.new_for_path(t);try{n.delete(null)}catch(e){throw d(e,`unlink`,t)}}function writeFileSync(e,t){p.file_set_contents(r(e),t)}function renameSync(e,t){let n=r(e),i=r(t),a=m.File.new_for_path(n),o=m.File.new_for_path(i);try{a.move(o,m.FileCopyFlags.OVERWRITE,null,null)}catch(e){throw d(e,`rename`,n,i)}}function copyFileSync(e,t,n){let i=r(e),a=r(t),o=m.File.new_for_path(i),s=m.File.new_for_path(a),c=m.FileCopyFlags.NONE;n&&!(n&1)?c=m.FileCopyFlags.OVERWRITE:n||(c=m.FileCopyFlags.OVERWRITE);try{o.copy(s,c,null,null)}catch(e){throw d(e,`copyfile`,i,a)}}function accessSync(e,t){let n=r(e),i=m.File.new_for_path(n);try{let e=i.query_info(`access::*`,m.FileQueryInfoFlags.NONE,null);if(t!==void 0&&t!==0){let r={code:14,message:`permission denied, access '${n}'`};if(t&4&&!e.get_attribute_boolean(`access::can-read`)||t&2&&!e.get_attribute_boolean(`access::can-write`)||t&1&&!e.get_attribute_boolean(`access::can-execute`))throw d(r,`access`,n)}}catch(e){throw e.code&&typeof e.code==`string`?e:d(e,`access`,n)}}function appendFileSync(e,t,n){let i=r(e),a=m.File.new_for_path(i),o;o=typeof t==`string`?new TextEncoder().encode(t):t;try{let e=a.append_to(m.FileCreateFlags.NONE,null);o.length>0&&e.write_bytes(new p.Bytes(o),null),e.close(null)}catch(e){throw d(e,`appendfile`,i)}}function readlinkSync(e,t){let n=r(e),i=m.File.new_for_path(n);try{let e=i.query_info(`standard::symlink-target`,m.FileQueryInfoFlags.NOFOLLOW_SYMLINKS,null).get_symlink_target();if(!e)throw Object.assign(Error(`EINVAL: invalid argument, readlink '${n}'`),{code:`EINVAL`,errno:-22,syscall:`readlink`,path:n});return(typeof t==`string`?t:t?.encoding)===`buffer`?g.from(e):e}catch(e){throw typeof e.code==`string`?e:d(e,`readlink`,n)}}function linkSync(e,t){let n=r(e),i=r(t);if(!p.spawn_command_line_sync(`ln ${n} ${i}`)[0])throw Object.assign(Error(`EPERM: operation not permitted, link '${n}' -> '${i}'`),{code:`EPERM`,errno:-1,syscall:`link`,path:n,dest:i})}function truncateSync(e,t){let n=r(e),i=m.File.new_for_path(n);try{let e=i.replace(null,!1,m.FileCreateFlags.NONE,null);if(t&&t>0){let[,n]=i.load_contents(null),r=n.slice(0,t);r.length>0&&e.write_bytes(new p.Bytes(r),null)}e.close(null)}catch(e){throw d(e,`truncate`,n)}}function chmodSync(e,t){let n=r(e),i=typeof t==`string`?parseInt(t,8):t;if(!p.spawn_command_line_sync(`chmod ${i.toString(8)} ${n}`)[0])throw Object.assign(Error(`EPERM: operation not permitted, chmod '${n}'`),{code:`EPERM`,errno:-1,syscall:`chmod`,path:n})}function chownSync(e,t,n){let i=r(e);if(!p.spawn_command_line_sync(`chown ${t}:${n} ${i}`)[0])throw Object.assign(Error(`EPERM: operation not permitted, chown '${i}'`),{code:`EPERM`,errno:-1,syscall:`chown`,path:i})}function watch(e,t,n){return new a(r(e),t,n)}function openSync(e,t,n){return new u({path:e,flags:t,mode:n})}function mkdtempSync(t,r){let a=n(r),o=i(t);return mkdirSync(o,{recursive:!1,mode:511}),e(o,a)}function rmSync(e,t){let n=r(e),i=m.File.new_for_path(n),a=t?.recursive||!1,o=t?.force||!1,s;try{s=i.query_file_type(m.FileQueryInfoFlags.NOFOLLOW_SYMLINKS,null)}catch(t){if(o&&f(t))return;throw d(t,`rm`,e)}if(s===m.FileType.SYMBOLIC_LINK){try{i.delete(null)}catch(t){if(o&&f(t))return;throw d(t,`rm`,e)}return}if(s===m.FileType.DIRECTORY){let r=readdirSync(e);if(!a&&r.length)throw d(Object.assign(Error(),{code:5}),`rm`,e);for(let e of r)rmSync(h(n,e),t)}try{i.delete(null)}catch(t){if(o&&f(t))return;throw d(t,`rm`,e)}}export{accessSync,appendFileSync,chmodSync,chownSync,copyFileSync,_ as existsSync,linkSync,lstatSync,mkdirSync,mkdtempSync,openSync,readFileSync,readdirSync,readlinkSync,realpathSync,renameSync,rmSync,rmdirSync,statSync,symlinkSync,truncateSync,unlinkSync,watch,writeFileSync};
@@ -4,4 +4,4 @@ export { isNotFoundError };
4
4
  /**
5
5
  * Create a Node.js-style ErrnoException from a Gio error, with fs-specific path/dest fields.
6
6
  */
7
- export declare function createNodeError(err: any, syscall: string, path: PathLike, dest?: PathLike): NodeJS.ErrnoException;
7
+ export declare function createNodeError(err: unknown, syscall: string, path: PathLike, dest?: PathLike): NodeJS.ErrnoException;
@@ -7,7 +7,7 @@ import { statfsAsync } from './statfs.js';
7
7
  import { utimesAsync, lutimesAsync, lchownAsync, lchmodAsync } from './utimes.js';
8
8
  import { fstatAsync, ftruncateAsync, fdatasyncAsync, fsyncAsync, fchmodAsync, fchownAsync, futimesAsync, readvAsync, writevAsync, openAsBlob } from './fd-ops.js';
9
9
  import { FileHandle } from './file-handle.js';
10
- import { Dirent } from './dirent.js';
10
+ import type { Dirent } from './dirent.js';
11
11
  import { Stats, BigIntStats } from './stats.js';
12
12
  import type { OpenFlags, ReadOptions } from './types/index.js';
13
13
  import type { PathLike, Mode, RmOptions, ObjectEncodingOptions, BufferEncodingOption, MakeDirectoryOptions, RmDirOptions } from 'node:fs';
@@ -0,0 +1,2 @@
1
+ declare const _default: () => Promise<void>;
2
+ export default _default;
@@ -16,7 +16,10 @@ export declare function readdirSync(path: PathLike, options?: {
16
16
  }): string[] | Dirent[];
17
17
  export declare function realpathSync(path: PathLike): string;
18
18
  export declare function symlinkSync(target: PathLike, path: PathLike, _type?: 'file' | 'dir' | 'junction'): void;
19
- export declare function readFileSync(path: PathLike, options?: any): string | Buffer<ArrayBuffer>;
19
+ export declare function readFileSync(path: PathLike, options?: {
20
+ encoding?: string | null;
21
+ flag?: string;
22
+ } | string | null): string | Buffer<ArrayBuffer>;
20
23
  /**
21
24
  * Synchronously creates a directory. Returns `undefined`, or if `recursive` is`true`, the first directory path created.
22
25
  * This is the synchronous version of {@link mkdir}.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gjsify/fs",
3
- "version": "0.4.30",
3
+ "version": "0.4.32",
4
4
  "description": "Node.js fs module for Gjs",
5
5
  "module": "lib/esm/index.js",
6
6
  "types": "lib/types/index.d.ts",
@@ -37,18 +37,25 @@
37
37
  "fs"
38
38
  ],
39
39
  "devDependencies": {
40
- "@gjsify/cli": "^0.4.30",
41
- "@gjsify/unit": "^0.4.30",
40
+ "@gjsify/cli": "^0.4.32",
41
+ "@gjsify/unit": "^0.4.32",
42
42
  "@types/node": "^25.9.1",
43
43
  "typescript": "^6.0.3"
44
44
  },
45
45
  "dependencies": {
46
46
  "@girs/gio-2.0": "2.88.0-4.0.1",
47
47
  "@girs/glib-2.0": "2.88.0-4.0.1",
48
- "@gjsify/buffer": "^0.4.30",
49
- "@gjsify/events": "^0.4.30",
50
- "@gjsify/stream": "^0.4.30",
51
- "@gjsify/url": "^0.4.30",
52
- "@gjsify/utils": "^0.4.30"
48
+ "@gjsify/buffer": "^0.4.32",
49
+ "@gjsify/events": "^0.4.32",
50
+ "@gjsify/stream": "^0.4.32",
51
+ "@gjsify/url": "^0.4.32",
52
+ "@gjsify/utils": "^0.4.32"
53
+ },
54
+ "gjsify": {
55
+ "runtimes": {
56
+ "gjs": "polyfill",
57
+ "node": "none",
58
+ "browser": "none"
59
+ }
53
60
  }
54
61
  }