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 🙏

© 2026 – Pkg Stats / Ryan Hefner

simple-userstore

v1.0.1

Published

A simple way to store user info. Nothing Fancy.

Downloads

12

Readme

Simple UserStore Travis Build NPM Version

Simple storage of user info. Nothing fancy. Uses NeDB underneath.

Installation

npm install --save simple-userstore

Usage

import UserStore from 'simple-userstore';

const users = new UserStore('users.db');

await users.createUser({ username: 'jerry', password: 'Hello, Newman.'});
await users.authenticate({ username: 'jerry', password: 'Hello, Newman.'});
// true

const jerry = await users.findByUsername('jerry')
// {
//   _id: ...,
//   username: 'jerry',
//   createdAt: ...some Date...
//   updatedAt: ...some Date...
// }

await users.setPassword(jerry._id, '12345');
await users.setUsername(jerry._id, 'jerome');
await users.authenticate({ username: 'jerome', password: '12345'});
// true

await users.removeUser(jerry._id);

API

new UserStore(opts)

Constructor for a new place to store users.

Parameters:

  • opts.filename (optional). The place where data is stored. Previous data will be automatically loaded from the filename.

Returns: a userstore

.load(filename)

Loads data from a filename.

Any commands issued before database is loaded will be buffered.

This should only be used if filename isn't specified when users is instantiated. If filename is given when instantiating users, the data will be automatically loaded.

Returns: a promise for users instance with loaded data

.createUser({ username, password })

Creates a new user with the giving username, and password.

Username must be unique or an error will be thrown.

Returns: Promise for user id of newly created user

.authenticate({ username, password })

Checks a given username and password against value currently stored in the database.

Returns: Promise for boolean. True if username/password is valid.

.findByUsername(username)

Returns: Promise for a user object that matches a given username. If no user is found, null is returned.

The hashed password is NOT included with this user object. To check if a password is valid for this user, use users.authenticate() instead

.setUsername(userId, newUsername)

Changes the username for a given user (with _id === userId)

.setPassword(userId, newPassword)

Changes the password for a given user.

.removeUser(userId)

Removes a given user from the database.

License

MIT © James Johnson