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 🙏

© 2025 – Pkg Stats / Ryan Hefner

@eloritzkovitz/server-essentials

v1.0.14

Published

A collection of reusable libraries, utilities and helpers to accelerate Node.js server development.

Readme

Server Essentials

A collection of reusable utilities, middleware, and services for Node.js server projects.
This package helps you quickly add common server functionality such as authentication, messaging, file handling, logging, and more.

Features

Auth

  • JWT authentication middleware
  • Role-based authorization
  • OTP generation and email delivery
  • Token management and refresh token verification
  • Request helpers

Configuration

  • Centralized config loader with environment variable support

Files

  • File upload middleware for Express
  • File handling helpers

Formatting

  • Date formatting and manipulation
  • Number formatting and manipulation
  • String formatting and manipulation
  • Helpers for masking emails/phones and formatting IDs/codes

Gateway

  • Proxy middleware for API gateway scenarios

Logging

  • Winston-based logger with environment-aware configuration
  • Colorized console and file logs in development
  • JSON console logs in production/Docker
  • HTTP request logging middleware
  • Log helpers for error handling, request tracing, and masking sensitive data

Messaging

  • RabbitMQ service for notifications and RPC
  • Firebase Cloud Messaging sender

Server

  • Health check, ping, and API info endpoints

Validation

  • Input validation helpers (email, phone, password, etc.)

Installation

npm install @eloritzkovitz/server-essentials

Usage

Import what you need from the package.

Configuration

Set required environment variables in your .env file:

# RabbitMQ
RABBITMQ_URL=amqp://localhost

# SMTP for OTP
SMTP_HOST=smtp.example.com
SMTP_PORT=465
[email protected]
SMTP_PASS=yourpassword
[email protected]

# JWT
TOKEN_SECRET=your_jwt_secret

# Firebase Messaging
GOOGLE_APPLICATION_CREDENTIALS=path/to/serviceAccount.json

Testing & Coverage

Run all tests and view coverage reports using Jest:

npm test
npx jest --coverage

The coverage report will be generated in the coverage/ folder (which is gitignored by default).

You can add or run tests for any module in the test/ directory.
Tests are organized to match the source code structure for easy maintenance.

API Documentation

Full API documentation is available in the docs folder and can be viewed online via GitHub Pages.

License

MIT