Security News
Research
Data Theft Repackaged: A Case Study in Malicious Wrapper Packages on npm
The Socket Research Team breaks down a malicious wrapper package that uses obfuscation to harvest credentials and exfiltrate sensitive data.
Recursive directory reader with a delightful API
rrdir
recursively reads a directory and returns entries within via an async iterator or async/sync as Array. It can typically iterate millions of files in a matter of seconds. Memory usage is O(1)
for the async iterator and O(n)
for the Array variants.
Contrary to other similar modules, this module is optionally able to read any path including ones that contain invalid UTF-8 sequences.
npm i rrdir
import {rrdir, rrdirAsync, rrdirSync} from "rrdir";
for await (const entry of rrdir("dir")) {
// => {path: 'dir/file', directory: false, symlink: false}
}
const entries = await rrdirAsync("dir");
// => [{path: 'dir/file', directory: false, symlink: false}]
const entries = rrdirSync("dir");
// => [{path: 'dir/file', directory: false, symlink: false}]
rrdir(dir, [options])
rrdirAsync(dir, [options])
rrdirSync(dir, [options])
rrdir
is an async iterator which yields entry
. rrdirAsync
and rrdirSync
return an Array of entry
.
dir
String | Uint8ArrayThe directory to read, either absolute or relative. Pass a Uint8Array
to switch the module into Uint8Array
mode which is required to be able to read every file, like for example files with names that are invalid UTF-8 sequences.
options
Objectstats
boolean: Whether to include entry.stats
. Will reduce performance. Default: false
.followSymlinks
boolean: Whether to follow symlinks for both recursion and stat
calls. Default: false
.exclude
Array: Path globs to exclude, e.g. ["**.js"]
. Default: undefined
.include
Array: Path globs to include, e.g. ["**.map"]
. Default: undefined
.strict
boolean: Whether to throw immediately when reading an entry fails. Default: false
.insensitive
boolean: Whether include
and exclude
match case-insensitively. Default: false
.entry
Objectpath
string | Uint8Array: The path to the entry, will be relative if dir
is given relative. If dir
is a Uint8Array
, this will be too. Always present.directory
boolean: Boolean indicating whether the entry is a directory. undefined
on error.symlink
boolean: Boolean indicating whether the entry is a symbolic link. undefined
on error.stats
Object: A fs.stats
object, present when options.stats
is set. undefined
on error.err
Error: Any error encountered while reading this entry. undefined
on success.© silverwind, distributed under BSD licence
FAQs
Recursive directory reader with a delightful API
We found that rrdir demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 0 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Research
The Socket Research Team breaks down a malicious wrapper package that uses obfuscation to harvest credentials and exfiltrate sensitive data.
Research
Security News
Attackers used a malicious npm package typosquatting a popular ESLint plugin to steal sensitive data, execute commands, and exploit developer systems.
Security News
The Ultralytics' PyPI Package was compromised four times in one weekend through GitHub Actions cache poisoning and failure to rotate previously compromised API tokens.