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

arrowbreaker-sup

v1.2.1

Published

An Express.js application that pings your urls and warns you about HTTP status code changes by email

Downloads

10

Readme

Arrowbreaker: Sup

Sup is an easy to setup web application for Node.js that will ping your urls and warn by email if their HTTP status code changes.

  • link to demo.
  • link arrowbreaker

License

This module is open source but not free. More info soon (link to arrowbreaker)

Installation

npm install arrowbreaker-sup

Usage

Initialize

var settings = {

  // Gmail example
  
  email_server: {
    user: '[email protected]',
    password: 'yourpassword',
    host: 'smtp.gmail.com',
    ssl: true
  },

  from: 'Sup <[email protected]>',        // <optional> Defaults: Sup <[email protected]>
  interval: 5000,                           // <optional> Defaults: 10000
  data_file: __dirname + '/data.json',      // <optional> Defaults: __dirname/data.json

};

var sup = require('arrowbreaker-sup')(settings); // Initialize sup
  • We use the wonderful emailjs module. The email_server option gets passed directly into email.server.connect method. So check their documentation to for more options. The email server is optional but you wont get an email warnings without it.
  • The interval option is the amount of time between each ping.
  • The data_file option should point to a file on disk where sup will store your settings in a json format. If the doesn't exist it will be create.

Basic (examples/app.js)

var http = require('http');

var server = http.createServer(sup.app());  // This returns an Express.js app and creates an http server;
sup.socket(server);                         // Socket IO needs an http server

As an Express.js sub-app (examples/app_sub.js)

var http = require('http');
var base = express();

base.use('/sup', sup.app());                // Attach sup to your base app
var server = http.createServer(base);       // Create the server;
sup.socket(server);                         // Socket IO needs an http server

Attach your own socket.io instance (examples/socket.js)

Use this if you are already using socket.io in your application.

var http = require('http');
var socketio = require('socket.io');

var server = http.createServer(sup.app());  // Create the server;
var io = socketio.listen(server);           // Socket.io needs an http server
io.set('log level', 3);                     // Custom socket.io settings
sup.attachSocket(io);                       // Attach socket.io

If you have suggestions, bugs or need help don't be shy and open an issue.