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

naughtychecker

v2.0.1

Published

NodeJS module to check naughty strings, which have a high probability of causing issues when used as user-input data

Downloads

16

Readme

naughtychecker.js

License: GPL v3 dependency devDependency Status Build Status npm version

A Node.js module to check for Naughty Strings - strings that have a high probability of causing issues when used as user-input data.

Why Test Naughty Strings?

Even multi-billion dollar companies like Twitter use automated tests to validate the input. You can't tweet a zero-width space (U+200B) on Twitter:

Example

It's required to prevent serious errors like "Internal Server Error" for unexpected user inputs during validation.

Installation

Yarn:

  yarn add naughtychecker

npm:

  npm install naughtychecker --save

Usage

Use an offline database of naughty strings (blns.json) to validate the input word:

import NaughtyChecker from 'naughtychecker'
const nc = new NaughtyChecker()

const fromLocal = async () => {
  try {
    const result = await nc.validate('naughty string', {useLocal: true})
    // looks good
  } catch (e) {
    // found naughty string
  }
}

Use an online database of naughty strings from Big List of Naughty Strings to validate the input word:

import NaughtyChecker from 'naughtychecker'
const nc = new NaughtyChecker()

const fromOnline = async () => {
  try {
    const result = await nc.validate('naughty string')
    // looks good
  } catch (e) {
    // found naughty string
  }
}

Inspiration

This project is inspired from Big List of Naughty Strings and uses the naughty strings list from that project.

Contributing

Read the CONTRIBUTING.md to get started. Feel free to Clone the project and submit your improvements via pull requests. Always submit pull requests to the develop branch.

Maintainers

Contributors

Release History

  • 1.0.0 Initial Release
  • 1.0.1 Made a little more efficient
  • 1.0.2 Minor performance improvements
  • 2.0.0 Promisify NaughtyChecker
  • 2.0.1 Fix crash

Stats

NPM

Liked it?

Hope you liked this module, don't forget to give it a star :star: