1.0.17 • Published 1 month ago

splatch v1.0.17

Weekly downloads
-
License
MIT
Repository
github
Last release
1 month ago

Splatch

Flexible Log sanitization/masking.

The library comes from the position of what you want show as opposed to what you do not want to show and what this means is that by default...everything is hidden (some exceptions exist like for emails where the default shows some entries conditionally).

Features

You can pretty much mask anything but the focus here is on objects with fields to be masked

  • Cards
  • Emails
  • Tokens etc

Install

  • yarn add --exact splatch
  • npm i --save-exact --save splatch

How to use

Without custom email configurations and using the defaults

import { splatch } from 'splatch';

const entry = {
    name: 'Jane Doe',
    email: 'jane@doe.com',
    business: {
        businessEmail: 'biz@izzy.com'
    }
};
const configs = {
    email: {
        fields: [/email/]
    }
};

const result = splatch({ entry, configs });

// {
//  name: 'Jane Doe',
//  email: 'j**e@**e.com',
//  business: {
//      businessEmail: '***@i**y.com'
//  }
// }

With custom email configuration that you can specify.

import { splatch } from 'splatch';

const entry = {
    name: 'Jane Doe',
    email: 'jane@doe.com',
    business: {
        businessEmail: 'biz@izzy.com'
    }
};
const configs = {
    email: {
        fields: [/email/],
        config: {
            local: {
                start: 2
            }
        }
    }
};

const result = splatch({ entry, configs });

// {
//  name: 'Jane Doe',
//  email: 'ja*e@**e.com',
//  business: {
//      businessEmail: 'bi*@i**y.com'
//  }
// }

Configuration Default

DescriptionEmail/TextCard/Token/GenericPhone
maskThe symbol to be used with splatch/mask***
startWhere to start the splatch/mask from104
endWhere to end the splatch/mask.100
gutterTotal number of items to show between splatches. Typically used with skip000
skipTotal number of items to splatch between gutters.000

Style Target Configurations

Currently 3 special types are exposed. Every other type can be expressed via providing custom configurations for the token type.

  • Email
const configs = {
    email: {
        fields: [/email/, 'anotherEmailField'],
        config: {
            local: {
                start: 2, // where you would want the mask to start from
                end: 1, // where you would want the mask to end
                mask: '*' // masking symbol to use
            },
            domain: {
                start: 2, // where you would want the mask to start from
                end: 1, // where you would want the mask to end
                mask: '$' // masking symbol to use
            },
            tld: {
                start: 2, // where you would want the mask to start from
                end: 1, // where you would want the mask to end
                mask: '^' // masking symbol to use
            }
        }
    }
};
  • Cards/Tokens
const configs = {
    card: {
        fields: [/credit/, 'debit'],
        config: {
            sections: [
                {
                    index: 0, // Select how you want a section of the card to be masked
                    config: {
                        start: 4 // where you would want the mask to start from
                    }
                },
                {
                    index: 3,
                    config: { start: 4 }
                }
            ]
        }
    }
};
  • Phone Numbers
const configs = {
    phone: {
        fields: [/phone/, 'phoneNumber'],
        config: {
            start: 4, // where you would want the mask to start from. Default is 4
            end: 0, // where you would want the mask to end
            mask: '*' // masking symbol to use
        }
    }
};

Report Bugs

Well, #$%$ happens, please report here https://github.com/cozzbie/splatch/issues

License

MIT © Timi Aiyemo

1.0.17

1 month ago

1.0.16

1 month ago

1.0.11

1 month ago

1.0.10

1 month ago

1.0.15

1 month ago

1.0.14

1 month ago

1.0.13

1 month ago

1.0.9

2 months ago

1.0.8

2 months ago

1.0.7

2 months ago

1.0.6

2 months ago

1.0.5

2 months ago

1.0.4

2 months ago

1.0.3

2 months ago

1.0.2

2 months ago

1.0.1

2 months ago

1.0.0

2 months ago