@visulima/redact
v1.0.9
Published
Detect whether a terminal or browser supports ansi colors.
Downloads
1,256
Maintainers
Readme
compromise and dot-prop.
Why Redact?
- 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
Install
npm install @visulima/redact
yarn add @visulima/redact
pnpm add @visulima/redact
Usage
- redact(input, rules, options)
const input = {
admin: {
user: {
email: "[email protected]",
password: "123456",
},
},
password: "123456",
user: {
email: "[email protected]",
password: "123456",
},
};
const result = redact(input, ["password", "user.password", "admin.user.password"]);
console.log(result);
//{
// admin: {
// user: {
// email: "[email protected]",
// password: "<ADMIN.USER.PASSWORD>",
// },
// },
// password: "<PASSWORD>",
// user: {
// email: "[email protected]",
// 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>"
API
redact(input, rules, options?)
input
Type: any
The input value to redact.
rules
Type: (Anonymize | StringAnonymize | number | string)[]
An array of rules to redact.
options
Type: object
exclude
Type: (string | number)[]
Exclude a rule for the rules array.
logger
Type: object
debug
Type: (message?: any, ...optionalParameters: any[]) => void
A function to log debug messages.
stringAnonymize(input, rules, options?)
input
Type: string
The input value to redact.
rules
Type: (Anonymize | StringAnonymize | number | string)[]
An array of rules to redact.
options
Type: object
exclude
Type: (string | number)[]
Exclude a rule for the rules array.
logger
Type: object
debug
Type: (message?: any, ...optionalParameters: any[]) => void
A function to log debug messages.
Related
- 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.
Supported Node.js Versions
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.
Contributing
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.
Credits
License
The visulima redact is open-sourced software licensed under the MIT