Redacts very fast values in objects (includes Error, Map and Set), string and arrays, for secure logging, for public data output and so on, built on top of
compromise and dot-prop.
Daniel Bannert's open source work is supported by the community on GitHub Sponsors
- Easy to use
- Anonymize specific categories in a text, including emails, monetary values, organizations, people, and phone numbers and more.
- Customizable anonymization: Specify which categories to anonymize and which to exclude.
- Built-in compatibility with nlp NER - compromise.
- Does not modify input objects
- Performs a deep copy of the input object
- Handles circular references
- Filters valid JSON strings
- Filters valid and malformed URL query params
- Filters Errors, Arrays, Maps, Sets, and simple objects
- Includes a default set of rules
- apikey
- awsid
- awskey
- bankacc
- basic_auth
- token
- crypto
- id
- creditcard
- date
- dl
- domain
- ip
- mac_address
- phonenumber
- routing
- ssn
- time
- uk_nin
- url
- us_social_security
- isbn
- zip_code
- firstname
- lastname
- organization
- money
- bankcc
- passport
- password
- username
- auth
- bearer
- credit
- CVD
- CVV
- encrypt
- PAN
- pass
- secret
- TypeScript support
- Fast and powerful, see the benchmarks
npm install @visulima/redact
yarn add @visulima/redact
pnpm add @visulima/redact
- redact(input, rules, options)
const input = {
admin: {
user: {
email: "test@example.com",
password: "123456",
},
},
password: "123456",
user: {
email: "test@example.com",
password: "123456",
},
};
const result = redact(input, ["password", "user.password", "admin.user.password"]);
console.log(result);
//{
// admin: {
// user: {
// email: "test@example.com",
// password: "<ADMIN.USER.PASSWORD>",
// },
// },
// password: "<PASSWORD>",
// user: {
// email: "test@example.com",
// password: "<USER.PASSWORD>",
// },
//}
- stringAnonymize(input, rules, options)
It uses Natural Language Processing (NLP) and Regular Expressions (Regex) to identify and mask sensitive information in a string.
import { stringAnonymize } from "@visulima/redact";
const input = "John Doe will be 30 on 2024-06-10.";
const result = stringAnonymize(input, defaultModifiers);
console.log(result);
//"<FIRSTNAME> <LASTNAME> will be 30 on <DATE>"
Type: any
The input value to redact.
Type: (Anonymize | StringAnonymize | number | string)[]
An array of rules to redact.
Type: object
Type: (string | number)[]
Exclude a rule for the rules array.
Type: object
Type: (message?: any, ...optionalParameters: any[]) => void
A function to log debug messages.
Type: string
The input value to redact.
Type: (Anonymize | StringAnonymize | number | string)[]
An array of rules to redact.
Type: object
Type: (string | number)[]
Exclude a rule for the rules array.
Type: object
Type: (message?: any, ...optionalParameters: any[]) => void
A function to log debug messages.
- fast-redact - very fast object redaction
- fast-unset - 🪄 Efficiently remove, replace, set or default object properties.
- masker - Composite data masking utility
- sensitive-param-filter - A package for filtering sensitive data (parameters, keys) from a variety of JS objects
- anonymize-nlp - Anonymize-NLP is a lightweight and robust package for text anonymization. It uses Natural Language Processing (NLP) and Regular Expressions (Regex) to identify and mask sensitive information in a string.
Libraries in this ecosystem make the best effort to track Node.js’ release schedule. Here’s a post on why we think this is important.
If you would like to help take a look at the list of issues and check our Contributing guild.
Note: please note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms.
The visulima redact is open-sourced software licensed under the MIT