Socket
Socket
Sign inDemoInstall

@visulima/fs

Package Overview
Dependencies
Maintainers
1
Versions
48
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@visulima/fs - npm Package Compare versions

Comparing version 1.10.0 to 1.11.0

7

CHANGELOG.md

@@ -0,1 +1,8 @@

## @visulima/fs [1.11.0](https://github.com/visulima/visulima/compare/@visulima/fs@1.10.0...@visulima/fs@1.11.0) (2024-03-20)
### Features
* **fs:** adding ensure methods ([#355](https://github.com/visulima/visulima/issues/355)) ([0456bc7](https://github.com/visulima/visulima/commit/0456bc7753d8a117e5bab23d74000906ba1d98ba))
## @visulima/fs [1.10.0](https://github.com/visulima/visulima/compare/@visulima/fs@1.9.0...@visulima/fs@1.10.0) (2024-03-19)

@@ -2,0 +9,0 @@

8

dist/error.d.ts
export { J as JSONError } from './json-error-UVjLdb7z.js';
declare class AlreadyExistsError extends Error {
readonly name = "AlreadyExistsError";
code: string;
constructor(message: string);
}
declare class DirectoryError extends Error {

@@ -32,2 +38,2 @@ readonly name = "DirectoryError";

export { DirectoryError, NotEmptyError, NotFoundError, PermissionError, WalkError };
export { AlreadyExistsError, DirectoryError, NotEmptyError, NotFoundError, PermissionError, WalkError };

4

dist/error.js
export { b as PermissionError, a as WalkError } from './chunk-3EHZOWRU.js';
export { a as JSONError } from './chunk-UPN3Y5W3.js';
var o=class extends Error{name="DirectoryError";code="EISDIR";constructor(r){super(`EISDIR: Illegal operation on a directory, ${r}`);}},p=o;var a=class extends Error{code="ENOTEMPTY";name="NotEmptyError";constructor(r){super(`ENOTEMPTY: Directory not empty, ${r}`);}},i=a;var s=class extends Error{name="NotFoundError";code="ENOENT";constructor(r){super(`ENOENT: No such file or directory, ${r}`);}},n=s;
var s=class extends Error{name="AlreadyExistsError";code="EEXIST";constructor(r){super(`EEXIST: ${r}`);}},p=s;var a=class extends Error{name="DirectoryError";code="EISDIR";constructor(r){super(`EISDIR: Illegal operation on a directory, ${r}`);}},i=a;var l=class extends Error{code="ENOTEMPTY";name="NotEmptyError";constructor(r){super(`ENOTEMPTY: Directory not empty, ${r}`);}},n=l;var d=class extends Error{name="NotFoundError";code="ENOENT";constructor(r){super(`ENOENT: No such file or directory, ${r}`);}},f=d;
export { p as DirectoryError, i as NotEmptyError, n as NotFoundError };
export { p as AlreadyExistsError, i as DirectoryError, n as NotEmptyError, f as NotFoundError };
//# sourceMappingURL=out.js.map
//# sourceMappingURL=error.js.map

@@ -15,2 +15,14 @@ import { W as WalkOptions, E as EmptyDirOptions, M as Match, F as FindUpOptions, R as ReadFileOptions, C as ContentType, a as ReadJsonOptions, J as JsonReviver, b as ReadYamlOptions, Y as YamlReviver, c as WalkEntry, d as WriteFileOptions, e as WriteJsonOptions, f as YamlReplacer } from './types-HVB0D8On.js';

declare const ensureDir: (directory: URL | string) => Promise<void>;
declare const ensureDirSync: (directory: URL | string) => void;
declare const ensureFile: (filePath: URL | string) => Promise<void>;
declare const ensureFileSync: (filePath: URL | string) => void;
declare const ensureLink: (source: URL | string, destination: URL | string) => Promise<void>;
declare const ensureLinkSync: (source: URL | string, destination: URL | string) => void;
declare const LF: "\n";

@@ -76,2 +88,2 @@ declare const CRLF: "\r\n";

export { CRLF, EOL, EmptyDirOptions, FindUpOptions, JsonReviver, LF, ReadFileOptions, ReadJsonOptions, WalkEntry, WalkOptions, WriteFileOptions, WriteJsonOptions, YamlReplacer, collect, collectSync, detect, emptyDir$1 as emptyDir, emptyDir as emptyDirSync, findUp, findUpSync, format, isAccessible, isAccessibleSync, readFile, readFileSync, readJson, readJsonSync, readYaml, readYamlSync, remove, removeSync, walk, walkSync, writeFile, writeFileSync, writeJson, writeJsonSync, writeYaml, writeYamlSync };
export { CRLF, EOL, EmptyDirOptions, FindUpOptions, JsonReviver, LF, ReadFileOptions, ReadJsonOptions, WalkEntry, WalkOptions, WriteFileOptions, WriteJsonOptions, YamlReplacer, collect, collectSync, detect, emptyDir$1 as emptyDir, emptyDir as emptyDirSync, ensureDir, ensureDirSync, ensureFile, ensureFileSync, ensureLink, ensureLinkSync, findUp, findUpSync, format, isAccessible, isAccessibleSync, readFile, readFileSync, readJson, readJsonSync, readYaml, readYamlSync, remove, removeSync, walk, walkSync, writeFile, writeFileSync, writeJson, writeJsonSync, writeYaml, writeYamlSync };

@@ -1,7 +0,7 @@

import { a as a$1, b } from './chunk-3EHZOWRU.js';
import { a, b as b$1 } from './chunk-4WZBYISP.js';
import { a as a$2, b } from './chunk-3EHZOWRU.js';
import { a as a$1, b as b$1 } from './chunk-4WZBYISP.js';
import './chunk-UPN3Y5W3.js';
import { readdir, realpath, stat, mkdir, rm, access, readFile, unlink, writeFile, rename, chown, chmod } from 'node:fs/promises';
import { resolve, join, normalize, basename, parse, isAbsolute, dirname } from 'node:path';
import { readdirSync, realpathSync, statSync, existsSync, mkdirSync, rmSync, accessSync, readFileSync, unlinkSync, writeFileSync, renameSync, chownSync, chmodSync } from 'node:fs';
import { readdir, realpath, stat, mkdir, rm, lstat, writeFile, link, access, readFile, unlink, rename, chown, chmod } from 'node:fs/promises';
import { resolve, join, normalize, basename, dirname, parse, isAbsolute } from 'node:path';
import { readdirSync, realpathSync, statSync, existsSync, mkdirSync, rmSync, lstatSync, writeFileSync, linkSync, accessSync, readFileSync, unlinkSync, renameSync, chownSync, chmodSync } from 'node:fs';
import { platform } from 'node:process';

@@ -11,14 +11,14 @@ import { brotliDecompress, unzip, brotliDecompressSync, unzipSync } from 'node:zlib';

var Q=e=>{if(!e||!(e instanceof URL)&&typeof e!="string")throw new TypeError("Path must be a non-empty string or URL.")},y=Q;var Z=e=>{let t=e.replace(/\.\*/g,".([^/]*)").replace(/\*\*/g,"(.*)").replace(/(?<!\.)\*(?!\*)/g,"([^/]*)").replace(/\?/g,"[^/]").replace(/\.(?!\*)/g,"\\.").replace(/\{/g,"(").replace(/\}/g,")").replace(/,/g,"|").replace(/\[!(.*?)\]/g,"[^$1]");return new RegExp(`^${t}$`)},h=Z;var ee=(e,t,r,o)=>t&&!t.some(n=>e.endsWith(n))||r&&!r.some(n=>n.test(e))?!1:!(o&&o.some(n=>n.test(e))),w=ee;var fe=async e=>{let t=normalize(e),r=basename(t),o=await stat(t);return {isDirectory:o.isDirectory,isFile:o.isFile,isSymbolicLink:o.isSymbolicLink,name:r,path:t}};async function*x(e,{extensions:t,followSymlinks:r=!1,includeDirs:o=!0,includeFiles:n=!0,includeSymlinks:s=!0,match:a$2,maxDepth:c=Number.POSITIVE_INFINITY,skip:u}={}){if(y(e),c<0)return;let f=a$2?a$2.map(i=>typeof i=="string"?h(i):i):void 0,l=u?u.map(i=>typeof i=="string"?h(i):i):void 0;if(e=resolve(a(e)),o&&w(e,t,f,l)&&(yield await fe(e)),!(c<1||!w(e,void 0,void 0,l)))try{for await(let i of await readdir(e,{withFileTypes:!0})){let g=join(e,i.name);if(i.isSymbolicLink())if(r)g=await realpath(g);else if(s&&w(g,t,f,l))yield {isDirectory:i.isDirectory,isFile:i.isFile,isSymbolicLink:i.isSymbolicLink,name:i.name,path:g};else continue;i.isSymbolicLink()||i.isDirectory()?yield*x(g,{extensions:t,followSymlinks:r,includeDirs:o,includeFiles:n,includeSymlinks:s,match:f,maxDepth:c-1,skip:l}):i.isFile()&&n&&w(g,t,f,l)&&(yield {isDirectory:i.isDirectory,isFile:i.isFile,isSymbolicLink:i.isSymbolicLink,name:i.name,path:g});}}catch(i){throw i instanceof a$1?i:new a$1(i,e)}}var ce=async(e,t={})=>{let r={extensions:["js","mjs","cjs","ts"],...t},o=[];for await(let n of x(e,r))o.push(n.path);return o},me=ce;var Oe=e=>{let t=normalize(e),r=basename(t),o=statSync(t);return {isDirectory:o.isDirectory,isFile:o.isFile,isSymbolicLink:o.isSymbolicLink,name:r,path:t}};function*P(e,{extensions:t,followSymlinks:r=!1,includeDirs:o=!0,includeFiles:n=!0,includeSymlinks:s=!0,match:a$2,maxDepth:c=Number.POSITIVE_INFINITY,skip:u}={}){if(y(e),c<0)return;let f=a$2?a$2.map(i=>typeof i=="string"?h(i):i):void 0,l=u?u.map(i=>typeof i=="string"?h(i):i):void 0;if(e=resolve(a(e)),o&&w(e,t,f,l)&&(yield Oe(e)),!(c<1||!w(e,void 0,void 0,l)))try{for(let i of readdirSync(e,{withFileTypes:!0})){let g=join(e,i.name);if(i.isSymbolicLink())if(r)g=realpathSync(g);else if(s&&w(g,t,f,l))yield {isDirectory:i.isDirectory,isFile:i.isFile,isSymbolicLink:i.isSymbolicLink,name:i.name,path:g};else continue;i.isSymbolicLink()||i.isDirectory()?yield*P(g,{extensions:t,followSymlinks:r,includeDirs:o,includeFiles:n,includeSymlinks:s,match:f,maxDepth:c-1,skip:l}):i.isFile()&&n&&w(g,t,f,l)&&(yield {isDirectory:i.isDirectory,isFile:i.isFile,isSymbolicLink:i.isSymbolicLink,name:i.name,path:g});}}catch(i){throw i instanceof a$1?i:new a$1(i,e)}}var Re=(e,t={})=>{let r={extensions:["js","mjs","cjs","ts"],...t},o=[];for(let n of P(e,r))o.push(n.path);return o},Se=Re;var S=0,k=4,be=2,he=1,D=Symbol("findUpStop");var ve=async(e,t)=>{if(y(e),!existsSync(e)){await mkdir(e,{recursive:!0});return}for await(let r of await readdir(e))await rm(join(a(e),r),{...t,force:!0,recursive:!0});},Te=ve;var Ye=(e,t)=>{if(y(e),!existsSync(e)){mkdirSync(e,{recursive:!0});return}for(let r of readdirSync(e))rmSync(join(a(e),r),{...t,force:!0,recursive:!0});},We=Ye;var C=/\r?\n/g,N=`
`,W=`\r
`,_e=platform==="win32"?W:N,Ne=e=>{let t=e.match(C);if(!t||t.length===0)return null;let r=t.filter(n=>n===W).length,o=t.length-r;return r>o?W:N},Ve=(e,t)=>e.replaceAll(C,t);var Me=async(e,t={})=>{if(typeof e!="string"&&!Array.isArray(e)&&typeof e!="function")throw new TypeError("The `name` argument must be of type `string` or `string[]`");let r=t.cwd?a(t.cwd):process.cwd();y(r);let o=resolve(r),{root:n}=parse(o),s=a(t.stopAt??n);y(s);let a$1=resolve(o,s),c=t.type??"file",u=async function(f){return typeof e=="function"?[await e(f)]:typeof e=="string"?[e]:Array.isArray(e)?e:[e]};for(;o&&o!==a$1&&o!==n;){for await(let f of await u(o)){if(f===D)return;if(f===void 0)continue;let l=isAbsolute(f)?f:resolve(o,f);try{let i=await stat(l);if(c==="file"&&i.isFile()||c==="directory"&&i.isDirectory())return l}catch{}}o=dirname(o);}},Be=Me;var qe=(e,t={})=>{if(typeof e!="string"&&!Array.isArray(e)&&typeof e!="function")throw new TypeError("The `name` argument must be of type `string` or `string[]`");let r=t.cwd?a(t.cwd):process.cwd();y(r);let o=resolve(r),{root:n}=parse(o),s=a(t.stopAt??n);y(s);let a$1=resolve(o,s),c=t.type??"file",u=function(f){return typeof e=="function"?[e(f)]:typeof e=="string"?[e]:Array.isArray(e)?e:[e]};for(;o&&o!==a$1&&o!==n;){for(let f of u(o)){if(f===D)return;if(f===void 0)continue;let l=isAbsolute(f)?f:resolve(o,f);try{let i=statSync(l);if(c==="file"&&i.isFile()||c==="directory"&&i.isDirectory())return l}catch{}}o=dirname(o);}},Qe=qe;async function et(e,t=0){y(e),e=a(e);try{return await access(e,t),!0}catch{return !1}}var O=et;function rt(e,t=0){y(e),e=a(e);try{return accessSync(e,t),!0}catch{return !1}}var R=rt;var st={brotli:brotliDecompress,gzip:unzip,none:(e,t)=>{t(null,e);}},at=async(e,t)=>{if(y(e),e=a(e),!await O(e))throw new b(`unable to read the non-accessible file: ${e}`);if(!await O(e,4))throw new Error(`Unable to read the non-readable file: ${e}`);let{buffer:r,compression:o,encoding:n,flag:s}=t??{};return await readFile(e,s?{encoding:n,flag:s}:{encoding:n}).then(async a=>await new Promise((c,u)=>{st[o??"none"](a,(f,l)=>{f?u(f):c(r?l:l.toString());});})).catch(a=>{throw a})},v=at;var pt={brotli:brotliDecompressSync,gzip:unzipSync,none:e=>e},lt=(e,t)=>{if(y(e),e=a(e),!R(e))throw new b(`unable to read the non-accessible file: ${e}`);if(!R(e,4))throw new b(`invalid access to read file at: ${e}`);let{buffer:r,compression:o,encoding:n,flag:s}=t??{},a$1=readFileSync(e,s?{encoding:n,flag:s}:{encoding:n}),c=pt[o??"none"](a$1);return r?c:c.toString()},T=lt;async function dt(e,t,r){typeof t=="object"&&(r=t,t=void 0);let o=await v(e,{buffer:!0,encoding:void 0}),n=new TextDecoder().decode(o),{beforeParse:s,color:a$1}=r??{};return typeof s=="function"&&(n=s(n)),b$1(n,t,a(e),{color:a$1})}var yt=dt;function ut(e,t,r){typeof t=="object"&&(r=t,t=void 0);let o=T(e,{buffer:!0,encoding:void 0}),n=new TextDecoder().decode(o),{beforeParse:s,color:a$1}=r??{};return typeof s=="function"&&(n=s(n)),b$1(n,t,a(e),{color:a$1})}var gt=ut;async function wt(e,t,r){let{buffer:o,compression:n,encoding:s="utf8",flag:a,...c}=r??{},u=await v(e,{buffer:o,compression:n,encoding:s,flag:a});return typeof t=="function"?parse$1(u,t,c):parse$1(u,c)}var Ot=wt;function Rt(e,t,r){let{buffer:o,compression:n,encoding:s="utf8",flag:a,...c}=r??{},u=T(e,{buffer:o,compression:n,encoding:s,flag:a});return typeof t=="function"?parse$1(u,t,c):parse$1(u,c)}var St=Rt;var Ft=async(e,t={})=>{y(e);try{await unlink(e);}catch{}try{await rm(e,{force:!0,maxRetries:t?.maxRetries,recursive:!0,retryDelay:t?.retryDelay});}catch{}},xt=Ft;var Dt=(e,t={})=>{y(e);try{unlinkSync(e);}catch{}try{rmSync(e,{force:!0,maxRetries:t?.maxRetries,recursive:!0,retryDelay:t?.retryDelay});}catch{}},vt=Dt;var Tt=e=>{if(typeof e!="string"&&!(e instanceof ArrayBuffer)&&!ArrayBuffer.isView(e))throw new TypeError("File contents must be a string, ArrayBuffer, or ArrayBuffer view.")},I=Tt;var Et=new TextEncoder,Lt=e=>{if(e instanceof Uint8Array)return e;if(typeof e=="string")return Et.encode(e);if(e instanceof ArrayBuffer)return new Uint8Array(e);if(ArrayBuffer.isView(e)){let t=e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength);return new Uint8Array(t)}throw new TypeError("Invalid contents type. Expected string or ArrayBuffer.")},_=Lt;var Nt=async(e,t,r)=>{r={encoding:"utf8",flag:"w",overwrite:!0,recursive:!0,...r},y(e),I(t),e=a(e);try{let o=await O(e,0);if(!o&&r.recursive){let a=dirname(e);await O(a,0)||await mkdir(a,{recursive:!0});}let n;await writeFile(`${e}.tmp`,_(t),{encoding:r.encoding,flag:r.flag}),o&&!r.overwrite&&(n=await stat(e),r.chown===void 0&&(r.chown={gid:n.gid,uid:n.uid}),await rename(e,`${e}.bak`));let s=`${e}.tmp`;if(r.chown)try{await chown(s,r.chown.uid,r.chown.gid);}catch{}await chmod(s,n&&!r.mode?n.mode:r.mode??438),await rename(s,e);}catch(o){throw new Error(`Failed to write file at: ${e} - ${o.message}`,{cause:o})}finally{await O(`${e}.tmp`)&&await unlink(`${e}.tmp`);}},E=Nt;var jt=(e,t,r)=>{r={encoding:"utf8",flag:"w",overwrite:!0,recursive:!0,...r},y(e),I(t),e=a(e);try{let o=R(e,0);if(!o&&r.recursive){let a=dirname(e);R(a,0)||mkdirSync(a,{recursive:!0});}let n;writeFileSync(`${e}.tmp`,_(t),{encoding:r.encoding,flag:r.flag}),o&&!r.overwrite&&(n=statSync(e),r.chown===void 0&&(r.chown={gid:n.gid,uid:n.uid}),renameSync(e,`${e}.bak`));let s=`${e}.tmp`;if(r.chown)try{chownSync(s,r.chown.uid,r.chown.gid);}catch{}chmodSync(s,n&&!r.mode?n.mode:r.mode??438),renameSync(s,e);}catch(o){throw new Error(`Failed to write file at: ${e} - ${o.message}`,{cause:o})}finally{R(`${e}.tmp`)&&unlinkSync(`${e}.tmp`);}},L=jt;var Xt=/^(?:( )+|\t+)/,U="space",X="tab";function j(e,t){let r=new Map,o=0,n,s;for(let a of e.split(/\n/g)){if(!a)continue;let c,u,f,l,i,g=a.match(Xt);if(g===null)o=0,n="";else {if(c=g[0].length,u=g[1]?U:X,t&&u===U&&c===1)continue;u!==n&&(o=0),n=u,f=1,l=0;let J=c-o;if(o=c,J===0)f=0,l=1;else {let q=J>0?J:-J;s=Ht(u,q);}i=r.get(s),i=i===void 0?[1,0]:[i[0]+f,i[1]+l],r.set(s,i);}}return r}function Ht(e,t){return (e===U?"s":"t")+String(t)}function Gt(e){let r=e[0]==="s"?U:X,o=Number(e.slice(1));return {type:r,amount:o}}function qt(e){let t,r=0,o=0;for(let[n,[s,a]]of e)(s>r||s===r&&a>o)&&(r=s,o=a,t=n);return t}function Qt(e,t){return (e===U?" ":" ").repeat(t)}function A(e){if(typeof e!="string")throw new TypeError("Expected a string");let t=j(e,!0);t.size===0&&(t=j(e,!1));let r=qt(t),o,n=0,s="";return r!==void 0&&({type:o,amount:n}=Gt(r),s=Qt(o,n)),{amount:n,type:o,indent:s}}var er=async(e,t,r={})=>{let{detectIndent:o,indent:n,replacer:s,stringify:a=JSON.stringify,...c}={indent:" ",...r},u=n,f=`
`;if(await O(e,4))try{let i=await readFile(e,"utf8");if(o){let{indent:g}=A(i);u=g;}f=i.endsWith(`
var st=t=>{if(!t||!(t instanceof URL)&&typeof t!="string")throw new TypeError("Path must be a non-empty string or URL.")},a=st;var at=t=>{let e=t.replace(/\.\*/g,".([^/]*)").replace(/\*\*/g,"(.*)").replace(/(?<!\.)\*(?!\*)/g,"([^/]*)").replace(/\?/g,"[^/]").replace(/\.(?!\*)/g,"\\.").replace(/\{/g,"(").replace(/\}/g,")").replace(/,/g,"|").replace(/\[!(.*?)\]/g,"[^$1]");return new RegExp(`^${e}$`)},F=at;var ft=(t,e,r,o)=>e&&!e.some(i=>t.endsWith(i))||r&&!r.some(i=>i.test(t))?!1:!(o&&o.some(i=>i.test(t))),w=ft;var gt=async t=>{let e=normalize(t),r=basename(e),o=await stat(e);return {isDirectory:o.isDirectory,isFile:o.isFile,isSymbolicLink:o.isSymbolicLink,name:r,path:e}};async function*P(t,{extensions:e,followSymlinks:r=!1,includeDirs:o=!0,includeFiles:i=!0,includeSymlinks:s=!0,match:m,maxDepth:d=Number.POSITIVE_INFINITY,skip:u}={}){if(a(t),d<0)return;let p=m?m.map(n=>typeof n=="string"?F(n):n):void 0,y=u?u.map(n=>typeof n=="string"?F(n):n):void 0;if(t=resolve(a$1(t)),o&&w(t,e,p,y)&&(yield await gt(t)),!(d<1||!w(t,void 0,void 0,y)))try{for await(let n of await readdir(t,{withFileTypes:!0})){let g=join(t,n.name);if(n.isSymbolicLink())if(r)g=await realpath(g);else if(s&&w(g,e,p,y))yield {isDirectory:n.isDirectory,isFile:n.isFile,isSymbolicLink:n.isSymbolicLink,name:n.name,path:g};else continue;n.isSymbolicLink()||n.isDirectory()?yield*P(g,{extensions:e,followSymlinks:r,includeDirs:o,includeFiles:i,includeSymlinks:s,match:p,maxDepth:d-1,skip:y}):n.isFile()&&i&&w(g,e,p,y)&&(yield {isDirectory:n.isDirectory,isFile:n.isFile,isSymbolicLink:n.isSymbolicLink,name:n.name,path:g});}}catch(n){throw n instanceof a$2?n:new a$2(n,t)}}var wt=async(t,e={})=>{let r={extensions:["js","mjs","cjs","ts"],...e},o=[];for await(let i of P(t,r))o.push(i.path);return o},Ot=wt;var kt=t=>{let e=normalize(t),r=basename(e),o=statSync(e);return {isDirectory:o.isDirectory,isFile:o.isFile,isSymbolicLink:o.isSymbolicLink,name:r,path:e}};function*k(t,{extensions:e,followSymlinks:r=!1,includeDirs:o=!0,includeFiles:i=!0,includeSymlinks:s=!0,match:m,maxDepth:d=Number.POSITIVE_INFINITY,skip:u}={}){if(a(t),d<0)return;let p=m?m.map(n=>typeof n=="string"?F(n):n):void 0,y=u?u.map(n=>typeof n=="string"?F(n):n):void 0;if(t=resolve(a$1(t)),o&&w(t,e,p,y)&&(yield kt(t)),!(d<1||!w(t,void 0,void 0,y)))try{for(let n of readdirSync(t,{withFileTypes:!0})){let g=join(t,n.name);if(n.isSymbolicLink())if(r)g=realpathSync(g);else if(s&&w(g,e,p,y))yield {isDirectory:n.isDirectory,isFile:n.isFile,isSymbolicLink:n.isSymbolicLink,name:n.name,path:g};else continue;n.isSymbolicLink()||n.isDirectory()?yield*k(g,{extensions:e,followSymlinks:r,includeDirs:o,includeFiles:i,includeSymlinks:s,match:p,maxDepth:d-1,skip:y}):n.isFile()&&i&&w(g,e,p,y)&&(yield {isDirectory:n.isDirectory,isFile:n.isFile,isSymbolicLink:n.isSymbolicLink,name:n.name,path:g});}}catch(n){throw n instanceof a$2?n:new a$2(n,t)}}var Et=(t,e={})=>{let r={extensions:["js","mjs","cjs","ts"],...e},o=[];for(let i of k(t,r))o.push(i.path);return o},Dt=Et;var h=0,E=4,Lt=2,Tt=1,D=Symbol("findUpStop");var Yt=async(t,e)=>{if(a(t),!existsSync(t)){await mkdir(t,{recursive:!0});return}for await(let r of await readdir(t))await rm(join(a$1(t),r),{...e,force:!0,recursive:!0});},Nt=Yt;var zt=(t,e)=>{if(a(t),!existsSync(t)){mkdirSync(t,{recursive:!0});return}for(let r of readdirSync(t))rmSync(join(a$1(t),r),{...e,force:!0,recursive:!0});},Kt=zt;var O=t=>{if(t.isFile())return "file";if(t.isDirectory())return "dir";if(t.isSymbolicLink())return "symlink"};var Bt=async t=>{a(t);try{let e=await lstat(t);if(!e.isDirectory())throw new Error(`Ensure path exists, expected 'dir', got '${O(e)}'`);return}catch(e){if(e.code!=="ENOENT")throw e}try{await mkdir(t,{recursive:!0});}catch(e){if(e.code!=="EEXIST")throw e;let r=await lstat(t);if(!r.isDirectory())throw new Error(`Ensure path exists, expected 'dir', got '${O(r)}'`)}},L=Bt;var Xt=t=>{a(t);try{let e=lstatSync(t);if(!e.isDirectory())throw new Error(`Ensure path exists, expected 'dir', got '${O(e)}'`);return}catch(e){if(e.code!=="ENOENT")throw e}try{mkdirSync(t,{recursive:!0});}catch(e){if(e.code!=="EEXIST")throw e;let r=lstatSync(t);if(!r.isDirectory())throw new Error(`Ensure path exists, expected 'dir', got '${O(r)}'`)}},T=Xt;var Qt=async t=>{a(t);try{let e=await lstat(t);if(!e.isFile())throw new Error(`Ensure path exists, expected 'file', got '${O(e)}'`)}catch(e){if(e.code==="ENOENT"){await L(dirname(a$1(t))),await writeFile(t,new Uint8Array);return}throw e}},Zt=Qt;var oe=t=>{a(t);try{let e=lstatSync(t);if(!e.isFile())throw new Error(`Ensure path exists, expected 'file', got '${O(e)}'`)}catch(e){if(e.code==="ENOENT"){T(dirname(a$1(t))),writeFileSync(t,new Uint8Array);return}throw e}},ie=oe;var ne=(t,e)=>!!e.ino&&!!e.dev&&e.ino===t.ino&&e.dev===t.dev,V=ne;var fe=async(t,e)=>{a(t),a(e);let r;try{r=await lstat(e);}catch{}let o;try{o=await lstat(t);}catch(i){throw i.message=i.message.replace("lstat","ensureLink"),i}r&&V(o,r)||(await L(dirname(a$1(e))),await link(t,e));},ce=fe;var le=(t,e)=>{a(t),a(e);let r;try{r=lstatSync(e);}catch{}let o;try{o=lstatSync(t);}catch(i){throw i.message=i.message.replace("lstat","ensureLink"),i}r&&V(o,r)||(T(dirname(a$1(e))),linkSync(t,e));},de=le;var G=/\r?\n/g,z=`
`,_=`\r
`,ue=platform==="win32"?_:z,ge=t=>{let e=t.match(G);if(!e||e.length===0)return null;let r=e.filter(i=>i===_).length,o=e.length-r;return r>o?_:z},we=(t,e)=>t.replaceAll(G,e);var xe=async(t,e={})=>{if(typeof t!="string"&&!Array.isArray(t)&&typeof t!="function")throw new TypeError("The `name` argument must be of type `string` or `string[]`");let r=e.cwd?a$1(e.cwd):process.cwd();a(r);let o=resolve(r),{root:i}=parse(o),s=a$1(e.stopAt??i);a(s);let m=resolve(o,s),d=e.type??"file",u=async function(p){return typeof t=="function"?[await t(p)]:typeof t=="string"?[t]:Array.isArray(t)?t:[t]};for(;o&&o!==m&&o!==i;){for await(let p of await u(o)){if(p===D)return;if(p===void 0)continue;let y=isAbsolute(p)?p:resolve(o,p);try{let n=await stat(y);if(d==="file"&&n.isFile()||d==="directory"&&n.isDirectory())return y}catch{}}o=dirname(o);}},Fe=xe;var De=(t,e={})=>{if(typeof t!="string"&&!Array.isArray(t)&&typeof t!="function")throw new TypeError("The `name` argument must be of type `string` or `string[]`");let r=e.cwd?a$1(e.cwd):process.cwd();a(r);let o=resolve(r),{root:i}=parse(o),s=a$1(e.stopAt??i);a(s);let m=resolve(o,s),d=e.type??"file",u=function(p){return typeof t=="function"?[t(p)]:typeof t=="string"?[t]:Array.isArray(t)?t:[t]};for(;o&&o!==m&&o!==i;){for(let p of u(o)){if(p===D)return;if(p===void 0)continue;let y=isAbsolute(p)?p:resolve(o,p);try{let n=statSync(y);if(d==="file"&&n.isFile()||d==="directory"&&n.isDirectory())return y}catch{}}o=dirname(o);}},Le=De;async function ve(t,e=0){a(t),t=a$1(t);try{return await access(t,e),!0}catch{return !1}}var R=ve;function Ae(t,e=0){a(t),t=a$1(t);try{return accessSync(t,e),!0}catch{return !1}}var S=Ae;var Ne={brotli:brotliDecompress,gzip:unzip,none:(t,e)=>{e(null,t);}},We=async(t,e)=>{if(a(t),t=a$1(t),!await R(t))throw new b(`unable to read the non-accessible file: ${t}`);if(!await R(t,4))throw new Error(`Unable to read the non-readable file: ${t}`);let{buffer:r,compression:o,encoding:i,flag:s}=e??{};return await readFile(t,s?{encoding:i,flag:s}:{encoding:i}).then(async m=>await new Promise((d,u)=>{Ne[o??"none"](m,(p,y)=>{p?u(p):d(r?y:y.toString());});})).catch(m=>{throw m})},v=We;var Ce={brotli:brotliDecompressSync,gzip:unzipSync,none:t=>t},ze=(t,e)=>{if(a(t),t=a$1(t),!S(t))throw new b(`unable to read the non-accessible file: ${t}`);if(!S(t,4))throw new b(`invalid access to read file at: ${t}`);let{buffer:r,compression:o,encoding:i,flag:s}=e??{},m=readFileSync(t,s?{encoding:i,flag:s}:{encoding:i}),d=Ce[o??"none"](m);return r?d:d.toString()},U=ze;async function Ke(t,e,r){typeof e=="object"&&(r=e,e=void 0);let o=await v(t,{buffer:!0,encoding:void 0}),i=new TextDecoder().decode(o),{beforeParse:s,color:m}=r??{};return typeof s=="function"&&(i=s(i)),b$1(i,e,a$1(t),{color:m})}var Me=Ke;function Be(t,e,r){typeof e=="object"&&(r=e,e=void 0);let o=U(t,{buffer:!0,encoding:void 0}),i=new TextDecoder().decode(o),{beforeParse:s,color:m}=r??{};return typeof s=="function"&&(i=s(i)),b$1(i,e,a$1(t),{color:m})}var je=Be;async function Xe(t,e,r){let{buffer:o,compression:i,encoding:s="utf8",flag:m,...d}=r??{},u=await v(t,{buffer:o,compression:i,encoding:s,flag:m});return typeof e=="function"?parse$1(u,e,d):parse$1(u,d)}var He=Xe;function Ge(t,e,r){let{buffer:o,compression:i,encoding:s="utf8",flag:m,...d}=r??{},u=U(t,{buffer:o,compression:i,encoding:s,flag:m});return typeof e=="function"?parse$1(u,e,d):parse$1(u,d)}var qe=Ge;var tr=async(t,e={})=>{a(t);try{await unlink(t);}catch{}try{await rm(t,{force:!0,maxRetries:e?.maxRetries,recursive:!0,retryDelay:e?.retryDelay});}catch{}},er=tr;var ir=(t,e={})=>{a(t);try{unlinkSync(t);}catch{}try{rmSync(t,{force:!0,maxRetries:e?.maxRetries,recursive:!0,retryDelay:e?.retryDelay});}catch{}},nr=ir;var sr=t=>{if(typeof t!="string"&&!(t instanceof ArrayBuffer)&&!ArrayBuffer.isView(t))throw new TypeError("File contents must be a string, ArrayBuffer, or ArrayBuffer view.")},$=sr;var ar=new TextEncoder,fr=t=>{if(t instanceof Uint8Array)return t;if(typeof t=="string")return ar.encode(t);if(t instanceof ArrayBuffer)return new Uint8Array(t);if(ArrayBuffer.isView(t)){let e=t.buffer.slice(t.byteOffset,t.byteOffset+t.byteLength);return new Uint8Array(e)}throw new TypeError("Invalid contents type. Expected string or ArrayBuffer.")},C=fr;var gr=async(t,e,r)=>{r={encoding:"utf8",flag:"w",overwrite:!0,recursive:!0,...r},a(t),$(e),t=a$1(t);try{let o=await R(t,0);if(!o&&r.recursive){let m=dirname(t);await R(m,0)||await mkdir(m,{recursive:!0});}let i;await writeFile(`${t}.tmp`,C(e),{encoding:r.encoding,flag:r.flag}),o&&!r.overwrite&&(i=await stat(t),r.chown===void 0&&(r.chown={gid:i.gid,uid:i.uid}),await rename(t,`${t}.bak`));let s=`${t}.tmp`;if(r.chown)try{await chown(s,r.chown.uid,r.chown.gid);}catch{}await chmod(s,i&&!r.mode?i.mode:r.mode??438),await rename(s,t);}catch(o){throw new Error(`Failed to write file at: ${t} - ${o.message}`,{cause:o})}finally{await R(`${t}.tmp`)&&await unlink(`${t}.tmp`);}},A=gr;var br=(t,e,r)=>{r={encoding:"utf8",flag:"w",overwrite:!0,recursive:!0,...r},a(t),$(e),t=a$1(t);try{let o=S(t,0);if(!o&&r.recursive){let m=dirname(t);S(m,0)||mkdirSync(m,{recursive:!0});}let i;writeFileSync(`${t}.tmp`,C(e),{encoding:r.encoding,flag:r.flag}),o&&!r.overwrite&&(i=statSync(t),r.chown===void 0&&(r.chown={gid:i.gid,uid:i.uid}),renameSync(t,`${t}.bak`));let s=`${t}.tmp`;if(r.chown)try{chownSync(s,r.chown.uid,r.chown.gid);}catch{}chmodSync(s,i&&!r.mode?i.mode:r.mode??438),renameSync(s,t);}catch(o){throw new Error(`Failed to write file at: ${t} - ${o.message}`,{cause:o})}finally{S(`${t}.tmp`)&&unlinkSync(`${t}.tmp`);}},I=br;var Pr=/^(?:( )+|\t+)/,J="space",rt="tab";function et(t,e){let r=new Map,o=0,i,s;for(let m of t.split(/\n/g)){if(!m)continue;let d,u,p,y,n,g=m.match(Pr);if(g===null)o=0,i="";else {if(d=g[0].length,u=g[1]?J:rt,e&&u===J&&d===1)continue;u!==i&&(o=0),i=u,p=1,y=0;let N=d-o;if(o=d,N===0)p=0,y=1;else {let nt=N>0?N:-N;s=kr(u,nt);}n=r.get(s),n=n===void 0?[1,0]:[n[0]+p,n[1]+y],r.set(s,n);}}return r}function kr(t,e){return (t===J?"s":"t")+String(e)}function Er(t){let r=t[0]==="s"?J:rt,o=Number(t.slice(1));return {type:r,amount:o}}function Dr(t){let e,r=0,o=0;for(let[i,[s,m]]of t)(s>r||s===r&&m>o)&&(r=s,o=m,e=i);return e}function Lr(t,e){return (t===J?" ":" ").repeat(e)}function Y(t){if(typeof t!="string")throw new TypeError("Expected a string");let e=et(t,!0);e.size===0&&(e=et(t,!1));let r=Dr(e),o,i=0,s="";return r!==void 0&&({type:o,amount:i}=Er(r),s=Lr(o,i)),{amount:i,type:o,indent:s}}var vr=async(t,e,r={})=>{let{detectIndent:o,indent:i,replacer:s,stringify:m=JSON.stringify,...d}={indent:" ",...r},u=i,p=`
`;if(await R(t,4))try{let n=await readFile(t,"utf8");if(o){let{indent:g}=Y(n);u=g;}p=n.endsWith(`
`)?`
`:"";}catch(i){if(i.code!=="ENOENT")throw i}let l=a(t,s,u);await E(e,`${l}${f}`,c);},tr=er;var or=(e,t,r={})=>{let{detectIndent:o,indent:n,replacer:s,stringify:a=JSON.stringify,...c}={indent:" ",...r},u=n,f=`
`;if(R(e,4))try{let i=readFileSync(e,"utf8");if(o){let{indent:g}=A(i);u=g;}f=i.endsWith(`
`:"";}catch(n){if(n.code!=="ENOENT")throw n}let y=m(e,s,u);await A(t,`${y}${p}`,d);},Ur=vr;var Ir=(t,e,r={})=>{let{detectIndent:o,indent:i,replacer:s,stringify:m=JSON.stringify,...d}={indent:" ",...r},u=i,p=`
`;if(S(t,4))try{let n=readFileSync(t,"utf8");if(o){let{indent:g}=Y(n);u=g;}p=n.endsWith(`
`)?`
`:"";}catch(i){if(i.code!=="ENOENT")throw i}let l=a(t,s,u);L(e,`${l}${f}`,c);},ir=or;async function nr(e,t,r,o){let n=typeof r=="function"||Array.isArray(r)?stringify(t,r,o):stringify(t,r);await E(e,n);}var sr=nr;function ar(e,t,r,o){let n=typeof r=="function"||Array.isArray(r)?stringify(t,r,o):stringify(t,r);L(e,n);}var fr=ar;
`:"";}catch(n){if(n.code!=="ENOENT")throw n}let y=m(e,s,u);I(t,`${y}${p}`,d);},Jr=Ir;async function Yr(t,e,r,o){let i=typeof r=="function"||Array.isArray(r)?stringify(e,r,o):stringify(e,r);await A(t,i);}var Nr=Yr;function Wr(t,e,r,o){let i=typeof r=="function"||Array.isArray(r)?stringify(e,r,o):stringify(e,r);I(t,i);}var Vr=Wr;
export { W as CRLF, _e as EOL, D as FIND_UP_STOP, S as F_OK, N as LF, k as R_OK, be as W_OK, he as X_OK, me as collect, Se as collectSync, Ne as detect, Te as emptyDir, We as emptyDirSync, Be as findUp, Qe as findUpSync, Ve as format, O as isAccessible, R as isAccessibleSync, v as readFile, T as readFileSync, yt as readJson, gt as readJsonSync, Ot as readYaml, St as readYamlSync, xt as remove, vt as removeSync, x as walk, P as walkSync, E as writeFile, L as writeFileSync, tr as writeJson, ir as writeJsonSync, sr as writeYaml, fr as writeYamlSync };
export { _ as CRLF, ue as EOL, D as FIND_UP_STOP, h as F_OK, z as LF, E as R_OK, Lt as W_OK, Tt as X_OK, Ot as collect, Dt as collectSync, ge as detect, Nt as emptyDir, Kt as emptyDirSync, L as ensureDir, T as ensureDirSync, Zt as ensureFile, ie as ensureFileSync, ce as ensureLink, de as ensureLinkSync, Fe as findUp, Le as findUpSync, we as format, R as isAccessible, S as isAccessibleSync, v as readFile, U as readFileSync, Me as readJson, je as readJsonSync, He as readYaml, qe as readYamlSync, er as remove, nr as removeSync, P as walk, k as walkSync, A as writeFile, I as writeFileSync, Ur as writeJson, Jr as writeJsonSync, Nr as writeYaml, Vr as writeYamlSync };
//# sourceMappingURL=out.js.map
//# sourceMappingURL=index.js.map
{
"name": "@visulima/fs",
"version": "1.10.0",
"version": "1.11.0",
"description": "Human friendly file system utilities for Node.js",

@@ -12,2 +12,7 @@ "keywords": [

"empty-dir",
"ensure",
"ensure-file",
"ensure-dir",
"ensure-link",
"ensure-symlink",
"file",

@@ -14,0 +19,0 @@ "files",

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc