@lidofinance/satanizer
v0.46.0
Published
Tool, which mask secrets
Downloads
1,380
Readme
@lidofinance/satanizer
Zero dependencies tool, which masks secrets 🕵️
Installation
yarn add @lidofinance/satanizer
Usage
There are two types of usage, you can provide secrets first and then appy mask function.
import { satanizer } from '@lidofinance/satanizer';
const mask = satanizer([/0x[a-zA-Z0-9]+/])
const target = 'qwe 0xABC1 asd'
const result = 'qwe ****** asd'
expect(mask(target)).toBe(result)
Alternatively you can execute satanizer right away.
import { satanizer } from '@lidofinance/satanizer';
const target = 'qwe secret asd'
const result = 'qwe ****** asd'
expect(satanizer(['secret'], target)).toBe(result)
Pattern can be string or regular expression.
import { satanizer } from '@lidofinance/satanizer';
assert(satanizer(['secret', /0x[s]ecret/], 'qwe secret 0xsecret asd') === 'qwe ****** ******** asd')
Target can be a anything - string, object, array or Error.
import { satanizer } from '@lidofinance/satanizer';
const mask = satanizer(['secret'])
const target = { message: `there are secret` }
const result = { message: `there are ******` }
expect(mask(target)).toMatchObject(result)
const target = ['some secret item', 'some item']
const result = ['some ****** item', 'some item']
expect(mask(target)).toMatchObject(result)
const target = new Error(`there are secret`)
const result = { message: `there are ******` }
expect(mask(target)).toMatchObject(result)
Configuration
You can specify as well as your own secrets, as well as use some pre-build secrets patterns:
blockchainAddress
(ETH and others).ensAddress
.ipAddress
.macAddress
.
You can use them one by one or all together.
import { commonPatterns } from '@lidofinance/satanizer'
const secrets = [/* your secrets */]
const mask = satanizer([...commonPatterns, ...secrets])