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

signal-client

v1.0.6

Published

This is a client library for Signal, the secure messenger app by Open Whisper Systems.

Downloads

4

Readme

node-signal-client

This is a client library for Signal, the secure messenger app by Open Whisper Systems.

It works by means of a dirty port of the Signal Chrome App to Node.js. This is cloned by npm during npm install. Despite being designed for Chrome, the environment is appropriately patched to allow the program to run in Node.js, unhindered.

Warning

When you require this library, a bunch of things happen on the global scope! In order to port the Chrome app, this had to be done -- just be aware of this in case your application also deals with globals. If so, you'll probably want to communicate with it through IPC or something instead of requireing it directly.

install

npm install signal-client

Try it out by executing node run.js

usage

The following is copied from the example run.js

const SignalClient = require('signal-client');

const client = new SignalClient("nodejs");

// triggered when you receive a message on signal
client.on('message', (ev) => {
  console.log('received message from', ev.data.source, ev.data);
});

// triggered when a sent message synced from another client
client.on('sent', (ev) => {
  console.log('sent a message to', ev.data.destination, ev.data);
});

client.on('receipt', (ev)=>{
  var pushMessage = ev.proto;
  var timestamp = pushMessage.timestamp.toNumber();
  console.log(
    'delivery receipt from',
    pushMessage.source + '.' + pushMessage.sourceDevice,
    timestamp
  );
});


client.on('contact', (ev)=>{
  console.log('contact received', ev.contactDetails);
});

client.on('group', (ev)=>{
  console.log('group received', ev.groupDetails);
});

client.on('read', (ev)=>{
  var read_at   = ev.timestamp;
  var timestamp = ev.read.timestamp;
  var sender    = ev.read.sender;
  console.log('read receipt', sender, timestamp);
});

client.on('error', (ev)=>{
  console.log('error', ev.error, ev.error.stack);
});

client.start();

storage

The client stores keys and other information in two places.

Two sqlite databases, and a data/ directory are created in the current working directory.