@visulima/redact
TypeScript icon, indicating that this package has built-in type declarations

1.0.1 • Public • Published

Visulima redact

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.


typescript-image npm-image license-image


Daniel Bannert's open source work is supported by the community on GitHub Sponsors


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
    • email
    • 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: "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>"

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

Package Sidebar

Install

npm i @visulima/redact

Weekly Downloads

13

Version

1.0.1

License

MIT

Unpacked Size

158 kB

Total Files

10

Last publish

Collaborators

  • prisis