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.7.1 to 1.8.0

dist/types-h2Rhl-Md.d.cts

7

CHANGELOG.md

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

## @visulima/fs [1.8.0](https://github.com/visulima/visulima/compare/@visulima/fs@1.7.1...@visulima/fs@1.8.0) (2024-03-17)
### Features
* **fs:** added eol, emptyDir and emptyDirSync ([#348](https://github.com/visulima/visulima/issues/348)) ([8084200](https://github.com/visulima/visulima/commit/8084200779f671403b9585c3b6fec985641c1cf6))
## @visulima/fs [1.7.1](https://github.com/visulima/visulima/compare/@visulima/fs@1.7.0...@visulima/fs@1.7.1) (2024-03-16)

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

16

dist/index.d.ts

@@ -1,3 +0,3 @@

import { W as WalkOptions, M as Match, F as FindUpOptions, R as ReadFileOptions, C as ContentType, a as ReadJsonOptions, J as JsonReviver, b as WalkEntry, c as WriteFileOptions, d as WriteJsonOptions } from './types-npDka8vJ.js';
export { i as CodeFrameLocation, f as FIND_UP_STOP, e as F_OK, j as JsonReplacer, g as R_OK, k as ReadFileEncoding, h as W_OK, X as X_OK } from './types-npDka8vJ.js';
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 WalkEntry, c as WriteFileOptions, d as WriteJsonOptions } from './types-h2Rhl-Md.js';
export { i as CodeFrameLocation, f as FIND_UP_STOP, e as F_OK, j as JsonReplacer, g as R_OK, k as ReadFileEncoding, h as W_OK, X as X_OK } from './types-h2Rhl-Md.js';
import { JsonValue } from 'type-fest';

@@ -10,2 +10,12 @@ import 'node:fs';

declare const emptyDir$1: (dir: URL | string, options?: EmptyDirOptions) => Promise<void>;
declare const emptyDir: (dir: URL | string, options?: EmptyDirOptions) => void;
declare const LF: "\n";
declare const CRLF: "\r\n";
declare const EOL: "\n" | "\r\n";
declare const detect: (content: string) => typeof EOL | null;
declare const format: (content: string, eol: typeof EOL) => string;
declare const findUp: (name: string | string[] | readonly string[] | ((directory: string) => Match | Promise<Match>), options?: FindUpOptions) => Promise<string | undefined>;

@@ -41,2 +51,2 @@

export { FindUpOptions, JsonReviver, ReadFileOptions, ReadJsonOptions, WalkEntry, WalkOptions, WriteFileOptions, WriteJsonOptions, collect, collectSync, findUp, findUpSync, isAccessible, isAccessibleSync, readFile, readFileSync, readJson, readJsonSync, walk, walkSync, writeFile, writeFileSync, writeJson, writeJsonSync };
export { CRLF, EOL, EmptyDirOptions, FindUpOptions, JsonReviver, LF, ReadFileOptions, ReadJsonOptions, WalkEntry, WalkOptions, WriteFileOptions, WriteJsonOptions, collect, collectSync, detect, emptyDir$1 as emptyDir, emptyDir as emptyDirSync, findUp, findUpSync, format, isAccessible, isAccessibleSync, readFile, readFileSync, readJson, readJsonSync, walk, walkSync, writeFile, writeFileSync, writeJson, writeJsonSync };

23

dist/index.js

@@ -1,19 +0,22 @@

import { a as a$1, b } from './chunk-3EHZOWRU.js';
import { a, b as b$1 } from './chunk-4WZBYISP.js';
import { a as a$1, b as b$1 } from './chunk-3EHZOWRU.js';
import { a, b as b$2 } from './chunk-4WZBYISP.js';
import './chunk-UPN3Y5W3.js';
import { readdir, realpath, stat, access, readFile, mkdir, writeFile, rename, chown, chmod, unlink } from 'node:fs/promises';
import { readdir, realpath, stat, mkdir, rm, access, readFile, writeFile, rename, chown, chmod, unlink } from 'node:fs/promises';
import { resolve, join, normalize, basename, parse, isAbsolute, dirname } from 'node:path';
import { readdirSync, realpathSync, statSync, accessSync, readFileSync, mkdirSync, writeFileSync, renameSync, chownSync, chmodSync, unlinkSync } from 'node:fs';
import { readdirSync, realpathSync, statSync, existsSync, mkdirSync, rmSync, accessSync, readFileSync, writeFileSync, renameSync, chownSync, chmodSync, unlinkSync } from 'node:fs';
import { platform } from 'node:process';
import { brotliDecompress, unzip, brotliDecompressSync, unzipSync } from 'node:zlib';
var j=e=>{if(!e||!(e instanceof URL)&&typeof e!="string")throw new TypeError("Path must be a non-empty string or URL.")},g=j;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 Y=(e,t,i,r)=>t&&!t.some(o=>e.endsWith(o))||i&&!i.some(o=>o.test(e))?!1:!(r&&r.some(o=>o.test(e))),w=Y;var te=async e=>{let t=normalize(e),i=basename(t),r=await stat(t);return {isDirectory:r.isDirectory,isFile:r.isFile,isSymbolicLink:r.isSymbolicLink,name:i,path:t}};async function*x(e,{extensions:t,followSymlinks:i=!1,includeDirs:r=!0,includeFiles:o=!0,includeSymlinks:s=!0,match:f,maxDepth:l=Number.POSITIVE_INFINITY,skip:m}={}){if(g(e),l<0)return;let a$2=f?f.map(n=>typeof n=="string"?h(n):n):void 0,c=m?m.map(n=>typeof n=="string"?h(n):n):void 0;if(e=resolve(a(e)),r&&w(e,t,a$2,c)&&(yield await te(e)),!(l<1||!w(e,void 0,void 0,c)))try{for await(let n of await readdir(e,{withFileTypes:!0})){let p=join(e,n.name);if(n.isSymbolicLink())if(i)p=await realpath(p);else if(s&&w(p,t,a$2,c))yield {isDirectory:n.isDirectory,isFile:n.isFile,isSymbolicLink:n.isSymbolicLink,name:n.name,path:p};else continue;n.isSymbolicLink()||n.isDirectory()?yield*x(p,{extensions:t,followSymlinks:i,includeDirs:r,includeFiles:o,includeSymlinks:s,match:a$2,maxDepth:l-1,skip:c}):n.isFile()&&o&&w(p,t,a$2,c)&&(yield {isDirectory:n.isDirectory,isFile:n.isFile,isSymbolicLink:n.isSymbolicLink,name:n.name,path:p});}}catch(n){throw n instanceof a$1?n:new a$1(n,e)}}var re=async(e,t={})=>{let i={extensions:["js","mjs","cjs","ts"],...t},r=[];for await(let o of x(e,i))r.push(o.path);return r},ie=re;var de=e=>{let t=normalize(e),i=basename(t),r=statSync(t);return {isDirectory:r.isDirectory,isFile:r.isFile,isSymbolicLink:r.isSymbolicLink,name:i,path:t}};function*P(e,{extensions:t,followSymlinks:i=!1,includeDirs:r=!0,includeFiles:o=!0,includeSymlinks:s=!0,match:f,maxDepth:l=Number.POSITIVE_INFINITY,skip:m}={}){if(g(e),l<0)return;let a$2=f?f.map(n=>typeof n=="string"?h(n):n):void 0,c=m?m.map(n=>typeof n=="string"?h(n):n):void 0;if(e=resolve(a(e)),r&&w(e,t,a$2,c)&&(yield de(e)),!(l<1||!w(e,void 0,void 0,c)))try{for(let n of readdirSync(e,{withFileTypes:!0})){let p=join(e,n.name);if(n.isSymbolicLink())if(i)p=realpathSync(p);else if(s&&w(p,t,a$2,c))yield {isDirectory:n.isDirectory,isFile:n.isFile,isSymbolicLink:n.isSymbolicLink,name:n.name,path:p};else continue;n.isSymbolicLink()||n.isDirectory()?yield*P(p,{extensions:t,followSymlinks:i,includeDirs:r,includeFiles:o,includeSymlinks:s,match:a$2,maxDepth:l-1,skip:c}):n.isFile()&&o&&w(p,t,a$2,c)&&(yield {isDirectory:n.isDirectory,isFile:n.isFile,isSymbolicLink:n.isSymbolicLink,name:n.name,path:p});}}catch(n){throw n instanceof a$1?n:new a$1(n,e)}}var me=(e,t={})=>{let i={extensions:["js","mjs","cjs","ts"],...t},r=[];for(let o of P(e,i))r.push(o.path);return r},pe=me;var S=0,k=4,ye=2,ue=1,T=Symbol("findUpStop");var Se=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 i=t.cwd?a(t.cwd):process.cwd();g(i);let r=resolve(i),{root:o}=parse(r),s=a(t.stopAt??o);g(s);let f=resolve(r,s),l=t.type??"file",m=async function(a){return typeof e=="function"?[await e(a)]:typeof e=="string"?[e]:Array.isArray(e)?e:[e]};for(;r&&r!==f&&r!==o;){for await(let a of await m(r)){if(a===T)return;if(a===void 0)continue;let c=isAbsolute(a)?a:resolve(r,a);try{let n=await stat(c);if(l==="file"&&n.isFile()||l==="directory"&&n.isDirectory())return c}catch{}}r=dirname(r);}},be=Se;var ke=(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 i=t.cwd?a(t.cwd):process.cwd();g(i);let r=resolve(i),{root:o}=parse(r),s=a(t.stopAt??o);g(s);let f=resolve(r,s),l=t.type??"file",m=function(a){return typeof e=="function"?[e(a)]:typeof e=="string"?[e]:Array.isArray(e)?e:[e]};for(;r&&r!==f&&r!==o;){for(let a of m(r)){if(a===T)return;if(a===void 0)continue;let c=isAbsolute(a)?a:resolve(r,a);try{let n=statSync(c);if(l==="file"&&n.isFile()||l==="directory"&&n.isDirectory())return c}catch{}}r=dirname(r);}},Te=ke;async function Ae(e,t=0){g(e),e=a(e);try{return await access(e,t),!0}catch{return !1}}var O=Ae;function Ue(e,t=0){g(e),e=a(e);try{return accessSync(e,t),!0}catch{return !1}}var F=Ue;var Le={brotli:brotliDecompress,gzip:unzip,none:(e,t)=>{t(null,e);}},_e=async(e,t)=>{if(g(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:i,compression:r,encoding:o,flag:s}=t??{};return await readFile(e,s?{encoding:o,flag:s}:{encoding:o}).then(async f=>await new Promise((l,m)=>{Le[r??"none"](f,(a,c)=>{a?m(a):l(i?c:c.toString());});})).catch(f=>{throw f})},_=_e;var $e={brotli:brotliDecompressSync,gzip:unzipSync,none:e=>e},Ke=(e,t)=>{if(g(e),e=a(e),!F(e))throw new b(`unable to read the non-accessible file: ${e}`);if(!F(e,4))throw new b(`invalid access to read file at: ${e}`);let{buffer:i,compression:r,encoding:o,flag:s}=t??{},f=readFileSync(e,s?{encoding:o,flag:s}:{encoding:o}),l=$e[r??"none"](f);return i?l:l.toString()},v=Ke;async function Ce(e,t,i){typeof t=="object"&&(i=t,t=void 0);let r=await _(e,{buffer:!0,encoding:void 0}),o=new TextDecoder().decode(r),{beforeParse:s,color:f}=i??{};return typeof s=="function"&&(o=s(o)),b$1(o,t,a(e),{color:f})}var Me=Ce;function Be(e,t,i){typeof t=="object"&&(i=t,t=void 0);let r=v(e,{buffer:!0,encoding:void 0}),o=new TextDecoder().decode(r),{beforeParse:s,color:f}=i??{};return typeof s=="function"&&(o=s(o)),b$1(o,t,a(e),{color:f})}var je=Be;var ze=e=>{if(typeof e!="string"&&!(e instanceof ArrayBuffer)&&!ArrayBuffer.isView(e))throw new TypeError("File contents must be a string, ArrayBuffer, or ArrayBuffer view.")},W=ze;var Ye=new TextEncoder,Xe=e=>{if(e instanceof Uint8Array)return e;if(typeof e=="string")return Ye.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.")},I=Xe;var rt=async(e,t,i)=>{i={encoding:"utf8",flag:"w",overwrite:!0,recursive:!0,...i},g(e),W(t),e=a(e);try{let r=await O(e,0);if(!r&&i.recursive){let f=dirname(e);await O(f,0)||await mkdir(f,{recursive:!0});}let o;await writeFile(`${e}.tmp`,I(t),{encoding:i.encoding,flag:i.flag}),r&&!i.overwrite&&(o=await stat(e),i.chown===void 0&&(i.chown={gid:o.gid,uid:o.uid}),await rename(e,`${e}.bak`));let s=`${e}.tmp`;if(i.chown)try{await chown(s,i.chown.uid,i.chown.gid);}catch{}await chmod(s,o&&!i.mode?o.mode:i.mode??438),await rename(s,e);}catch(r){throw new Error(`Failed to write file at: ${e} - ${r.message}`,{cause:r})}finally{await O(`${e}.tmp`)&&await unlink(`${e}.tmp`);}},N=rt;var lt=(e,t,i)=>{i={encoding:"utf8",flag:"w",overwrite:!0,recursive:!0,...i},g(e),W(t),e=a(e);try{let r=F(e,0);if(!r&&i.recursive){let f=dirname(e);F(f,0)||mkdirSync(f,{recursive:!0});}let o;writeFileSync(`${e}.tmp`,I(t),{encoding:i.encoding,flag:i.flag}),r&&!i.overwrite&&(o=statSync(e),i.chown===void 0&&(i.chown={gid:o.gid,uid:o.uid}),renameSync(e,`${e}.bak`));let s=`${e}.tmp`;if(i.chown)try{chownSync(s,i.chown.uid,i.chown.gid);}catch{}chmodSync(s,o&&!i.mode?o.mode:i.mode??438),renameSync(s,e);}catch(r){throw new Error(`Failed to write file at: ${e} - ${r.message}`,{cause:r})}finally{F(`${e}.tmp`)&&unlinkSync(`${e}.tmp`);}},V=lt;var dt=/^(?:( )+|\t+)/,E="space",M="tab";function C(e,t){let i=new Map,r=0,o,s;for(let f of e.split(/\n/g)){if(!f)continue;let l,m,a,c,n,p=f.match(dt);if(p===null)r=0,o="";else {if(l=p[0].length,m=p[1]?E:M,t&&m===E&&l===1)continue;m!==o&&(r=0),o=m,a=1,c=0;let J=l-r;if(r=l,J===0)a=0,c=1;else {let B=J>0?J:-J;s=mt(m,B);}n=i.get(s),n=n===void 0?[1,0]:[n[0]+a,n[1]+c],i.set(s,n);}}return i}function mt(e,t){return (e===E?"s":"t")+String(t)}function pt(e){let i=e[0]==="s"?E:M,r=Number(e.slice(1));return {type:i,amount:r}}function yt(e){let t,i=0,r=0;for(let[o,[s,f]]of e)(s>i||s===i&&f>r)&&(i=s,r=f,t=o);return t}function ut(e,t){return (e===E?" ":" ").repeat(t)}function A(e){if(typeof e!="string")throw new TypeError("Expected a string");let t=C(e,!0);t.size===0&&(t=C(e,!1));let i=yt(t),r,o=0,s="";return i!==void 0&&({type:r,amount:o}=pt(i),s=ut(r,o)),{amount:o,type:r,indent:s}}var wt=async(e,t,i={})=>{let{detectIndent:r,indent:o,replacer:s,stringify:f=JSON.stringify,...l}={indent:" ",...i},m=o,a=`
`;if(await O(e,4))try{let n=await readFile(e,"utf8");if(r){let{indent:p}=A(n);m=p;}a=n.endsWith(`
var X=e=>{if(!e||!(e instanceof URL)&&typeof e!="string")throw new TypeError("Path must be a non-empty string or URL.")},y=X;var H=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}$`)},b=H;var G=(e,t,r,i)=>t&&!t.some(n=>e.endsWith(n))||r&&!r.some(n=>n.test(e))?!1:!(i&&i.some(n=>n.test(e))),w=G;var oe=async e=>{let t=normalize(e),r=basename(t),i=await stat(t);return {isDirectory:i.isDirectory,isFile:i.isFile,isSymbolicLink:i.isSymbolicLink,name:r,path:t}};async function*R(e,{extensions:t,followSymlinks:r=!1,includeDirs:i=!0,includeFiles:n=!0,includeSymlinks:s=!0,match:f,maxDepth:l=Number.POSITIVE_INFINITY,skip:u}={}){if(y(e),l<0)return;let a$2=f?f.map(o=>typeof o=="string"?b(o):o):void 0,c=u?u.map(o=>typeof o=="string"?b(o):o):void 0;if(e=resolve(a(e)),i&&w(e,t,a$2,c)&&(yield await oe(e)),!(l<1||!w(e,void 0,void 0,c)))try{for await(let o of await readdir(e,{withFileTypes:!0})){let g=join(e,o.name);if(o.isSymbolicLink())if(r)g=await realpath(g);else if(s&&w(g,t,a$2,c))yield {isDirectory:o.isDirectory,isFile:o.isFile,isSymbolicLink:o.isSymbolicLink,name:o.name,path:g};else continue;o.isSymbolicLink()||o.isDirectory()?yield*R(g,{extensions:t,followSymlinks:r,includeDirs:i,includeFiles:n,includeSymlinks:s,match:a$2,maxDepth:l-1,skip:c}):o.isFile()&&n&&w(g,t,a$2,c)&&(yield {isDirectory:o.isDirectory,isFile:o.isFile,isSymbolicLink:o.isSymbolicLink,name:o.name,path:g});}}catch(o){throw o instanceof a$1?o:new a$1(o,e)}}var ne=async(e,t={})=>{let r={extensions:["js","mjs","cjs","ts"],...t},i=[];for await(let n of R(e,r))i.push(n.path);return i},se=ne;var ye=e=>{let t=normalize(e),r=basename(t),i=statSync(t);return {isDirectory:i.isDirectory,isFile:i.isFile,isSymbolicLink:i.isSymbolicLink,name:r,path:t}};function*P(e,{extensions:t,followSymlinks:r=!1,includeDirs:i=!0,includeFiles:n=!0,includeSymlinks:s=!0,match:f,maxDepth:l=Number.POSITIVE_INFINITY,skip:u}={}){if(y(e),l<0)return;let a$2=f?f.map(o=>typeof o=="string"?b(o):o):void 0,c=u?u.map(o=>typeof o=="string"?b(o):o):void 0;if(e=resolve(a(e)),i&&w(e,t,a$2,c)&&(yield ye(e)),!(l<1||!w(e,void 0,void 0,c)))try{for(let o of readdirSync(e,{withFileTypes:!0})){let g=join(e,o.name);if(o.isSymbolicLink())if(r)g=realpathSync(g);else if(s&&w(g,t,a$2,c))yield {isDirectory:o.isDirectory,isFile:o.isFile,isSymbolicLink:o.isSymbolicLink,name:o.name,path:g};else continue;o.isSymbolicLink()||o.isDirectory()?yield*P(g,{extensions:t,followSymlinks:r,includeDirs:i,includeFiles:n,includeSymlinks:s,match:a$2,maxDepth:l-1,skip:c}):o.isFile()&&n&&w(g,t,a$2,c)&&(yield {isDirectory:o.isDirectory,isFile:o.isFile,isSymbolicLink:o.isSymbolicLink,name:o.name,path:g});}}catch(o){throw o instanceof a$1?o:new a$1(o,e)}}var ue=(e,t={})=>{let r={extensions:["js","mjs","cjs","ts"],...t},i=[];for(let n of P(e,r))i.push(n.path);return i},ge=ue;var S=0,k=4,we=2,Oe=1,E=Symbol("findUpStop");var Re=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});},Pe=Re;var Je=(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});},Le=Je;var K=/\r?\n/g,I=`
`,L=`\r
`,We=platform==="win32"?L:I,Ie=e=>{let t=e.match(K);if(!t||t.length===0)return null;let r=t.filter(n=>n===L).length,i=t.length-r;return r>i?L:I},ve=(e,t)=>e.replaceAll(K,t);var Ce=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 i=resolve(r),{root:n}=parse(i),s=a(t.stopAt??n);y(s);let f=resolve(i,s),l=t.type??"file",u=async function(a){return typeof e=="function"?[await e(a)]:typeof e=="string"?[e]:Array.isArray(e)?e:[e]};for(;i&&i!==f&&i!==n;){for await(let a of await u(i)){if(a===E)return;if(a===void 0)continue;let c=isAbsolute(a)?a:resolve(i,a);try{let o=await stat(c);if(l==="file"&&o.isFile()||l==="directory"&&o.isDirectory())return c}catch{}}i=dirname(i);}},Ke=Ce;var Ye=(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 i=resolve(r),{root:n}=parse(i),s=a(t.stopAt??n);y(s);let f=resolve(i,s),l=t.type??"file",u=function(a){return typeof e=="function"?[e(a)]:typeof e=="string"?[e]:Array.isArray(e)?e:[e]};for(;i&&i!==f&&i!==n;){for(let a of u(i)){if(a===E)return;if(a===void 0)continue;let c=isAbsolute(a)?a:resolve(i,a);try{let o=statSync(c);if(l==="file"&&o.isFile()||l==="directory"&&o.isDirectory())return c}catch{}}i=dirname(i);}},Xe=Ye;async function Ge(e,t=0){y(e),e=a(e);try{return await access(e,t),!0}catch{return !1}}var O=Ge;function Qe(e,t=0){y(e),e=a(e);try{return accessSync(e,t),!0}catch{return !1}}var F=Qe;var rt={brotli:brotliDecompress,gzip:unzip,none:(e,t)=>{t(null,e);}},it=async(e,t)=>{if(y(e),e=a(e),!await O(e))throw new b$1(`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:i,encoding:n,flag:s}=t??{};return await readFile(e,s?{encoding:n,flag:s}:{encoding:n}).then(async f=>await new Promise((l,u)=>{rt[i??"none"](f,(a,c)=>{a?u(a):l(r?c:c.toString());});})).catch(f=>{throw f})},V=it;var at={brotli:brotliDecompressSync,gzip:unzipSync,none:e=>e},ft=(e,t)=>{if(y(e),e=a(e),!F(e))throw new b$1(`unable to read the non-accessible file: ${e}`);if(!F(e,4))throw new b$1(`invalid access to read file at: ${e}`);let{buffer:r,compression:i,encoding:n,flag:s}=t??{},f=readFileSync(e,s?{encoding:n,flag:s}:{encoding:n}),l=at[i??"none"](f);return r?l:l.toString()},N=ft;async function ct(e,t,r){typeof t=="object"&&(r=t,t=void 0);let i=await V(e,{buffer:!0,encoding:void 0}),n=new TextDecoder().decode(i),{beforeParse:s,color:f}=r??{};return typeof s=="function"&&(n=s(n)),b$2(n,t,a(e),{color:f})}var mt=ct;function lt(e,t,r){typeof t=="object"&&(r=t,t=void 0);let i=N(e,{buffer:!0,encoding:void 0}),n=new TextDecoder().decode(i),{beforeParse:s,color:f}=r??{};return typeof s=="function"&&(n=s(n)),b$2(n,t,a(e),{color:f})}var pt=lt;var dt=e=>{if(typeof e!="string"&&!(e instanceof ArrayBuffer)&&!ArrayBuffer.isView(e))throw new TypeError("File contents must be a string, ArrayBuffer, or ArrayBuffer view.")},U=dt;var yt=new TextEncoder,ut=e=>{if(e instanceof Uint8Array)return e;if(typeof e=="string")return yt.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.")},W=ut;var xt=async(e,t,r)=>{r={encoding:"utf8",flag:"w",overwrite:!0,recursive:!0,...r},y(e),U(t),e=a(e);try{let i=await O(e,0);if(!i&&r.recursive){let f=dirname(e);await O(f,0)||await mkdir(f,{recursive:!0});}let n;await writeFile(`${e}.tmp`,W(t),{encoding:r.encoding,flag:r.flag}),i&&!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(i){throw new Error(`Failed to write file at: ${e} - ${i.message}`,{cause:i})}finally{await O(`${e}.tmp`)&&await unlink(`${e}.tmp`);}},$=xt;var Jt=(e,t,r)=>{r={encoding:"utf8",flag:"w",overwrite:!0,recursive:!0,...r},y(e),U(t),e=a(e);try{let i=F(e,0);if(!i&&r.recursive){let f=dirname(e);F(f,0)||mkdirSync(f,{recursive:!0});}let n;writeFileSync(`${e}.tmp`,W(t),{encoding:r.encoding,flag:r.flag}),i&&!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(i){throw new Error(`Failed to write file at: ${e} - ${i.message}`,{cause:i})}finally{F(`${e}.tmp`)&&unlinkSync(`${e}.tmp`);}},C=Jt;var Lt=/^(?:( )+|\t+)/,T="space",z="tab";function j(e,t){let r=new Map,i=0,n,s;for(let f of e.split(/\n/g)){if(!f)continue;let l,u,a,c,o,g=f.match(Lt);if(g===null)i=0,n="";else {if(l=g[0].length,u=g[1]?T:z,t&&u===T&&l===1)continue;u!==n&&(i=0),n=u,a=1,c=0;let A=l-i;if(i=l,A===0)a=0,c=1;else {let Y=A>0?A:-A;s=Ut(u,Y);}o=r.get(s),o=o===void 0?[1,0]:[o[0]+a,o[1]+c],r.set(s,o);}}return r}function Ut(e,t){return (e===T?"s":"t")+String(t)}function Wt(e){let r=e[0]==="s"?T:z,i=Number(e.slice(1));return {type:r,amount:i}}function It(e){let t,r=0,i=0;for(let[n,[s,f]]of e)(s>r||s===r&&f>i)&&(r=s,i=f,t=n);return t}function vt(e,t){return (e===T?" ":" ").repeat(t)}function D(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=It(t),i,n=0,s="";return r!==void 0&&({type:i,amount:n}=Wt(r),s=vt(i,n)),{amount:n,type:i,indent:s}}var Vt=async(e,t,r={})=>{let{detectIndent:i,indent:n,replacer:s,stringify:f=JSON.stringify,...l}={indent:" ",...r},u=n,a=`
`;if(await O(e,4))try{let o=await readFile(e,"utf8");if(i){let{indent:g}=D(o);u=g;}a=o.endsWith(`
`)?`
`:"";}catch(n){if(n.code!=="ENOENT")throw n}let c=f(t,s,m);await N(e,`${c}${a}`,l);},Ot=wt;var St=(e,t,i={})=>{let{detectIndent:r,indent:o,replacer:s,stringify:f=JSON.stringify,...l}={indent:" ",...i},m=o,a=`
`;if(F(e,4))try{let n=readFileSync(e,"utf8");if(r){let{indent:p}=A(n);m=p;}a=n.endsWith(`
`:"";}catch(o){if(o.code!=="ENOENT")throw o}let c=f(t,s,u);await $(e,`${c}${a}`,l);},Nt=Vt;var Ct=(e,t,r={})=>{let{detectIndent:i,indent:n,replacer:s,stringify:f=JSON.stringify,...l}={indent:" ",...r},u=n,a=`
`;if(F(e,4))try{let o=readFileSync(e,"utf8");if(i){let{indent:g}=D(o);u=g;}a=o.endsWith(`
`)?`
`:"";}catch(n){if(n.code!=="ENOENT")throw n}let c=f(t,s,m);V(e,`${c}${a}`,l);},bt=St;
`:"";}catch(o){if(o.code!=="ENOENT")throw o}let c=f(t,s,u);C(e,`${c}${a}`,l);},Kt=Ct;
export { T as FIND_UP_STOP, S as F_OK, k as R_OK, ye as W_OK, ue as X_OK, ie as collect, pe as collectSync, be as findUp, Te as findUpSync, O as isAccessible, F as isAccessibleSync, _ as readFile, v as readFileSync, Me as readJson, je as readJsonSync, x as walk, P as walkSync, N as writeFile, V as writeFileSync, Ot as writeJson, bt as writeJsonSync };
export { L as CRLF, We as EOL, E as FIND_UP_STOP, S as F_OK, I as LF, k as R_OK, we as W_OK, Oe as X_OK, se as collect, ge as collectSync, Ie as detect, Pe as emptyDir, Le as emptyDirSync, Ke as findUp, Xe as findUpSync, ve as format, O as isAccessible, F as isAccessibleSync, V as readFile, N as readFileSync, mt as readJson, pt as readJsonSync, R as walk, P as walkSync, $ as writeFile, C as writeFileSync, Nt as writeJson, Kt as writeJsonSync };
//# sourceMappingURL=out.js.map
//# sourceMappingURL=index.js.map
export { J as JSONError } from './json-error-UVjLdb7z.js';
import { JsonValue } from 'type-fest';
import { l as CodeFrameOptions, J as JsonReviver } from './types-npDka8vJ.js';
import { l as CodeFrameOptions, J as JsonReviver } from './types-h2Rhl-Md.js';
import 'node:fs';

@@ -5,0 +5,0 @@

{
"name": "@visulima/fs",
"version": "1.7.1",
"version": "1.8.0",
"description": "Human friendly file system utilities for Node.js",
"keywords": [
"anolilab",
"detect-newline",
"dir",
"directory",
"eol",
"empty-dir",
"file",

@@ -10,0 +13,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

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