npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

splatch

v1.0.17

Published

A log/text sanitizer and masker

Downloads

247

Readme

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: '[email protected]',
    business: {
        businessEmail: '[email protected]'
    }
};
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: '[email protected]',
    business: {
        businessEmail: '[email protected]'
    }
};
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

| | Description | Email/Text | Card/Token/Generic | Phone | |--------|----------------------------------------------------------------------------|------------|--------------------|-------| | mask | The symbol to be used with splatch/mask | * | * | * | | start | Where to start the splatch/mask from | 1 | 0 | 4 | | end | Where to end the splatch/mask. | 1 | 0 | 0 | | gutter | Total number of items to show between splatches. Typically used with skip | 0 | 0 | 0 | | skip | Total number of items to splatch between gutters. | 0 | 0 | 0 |

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