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

telehash-js

v0.1.41

Published

An implementation of telehash in pure javascript

Downloads

16

Readme

telehash implemented in pure javascript

This is now the core module to implement a telehash switch, other modules are required to enable it to support crypto and network interfaces.

If you're looking to use this in node or browserify, check out the npm telehash package (npm install telehash). To see some example usage, try the fieldtest which works in node, browser, and as a chrome app.

Modules

The telehash package in npm bundles most of these, but here's a list of all of the modules and where they work (please update when creating any)

This module exports one function called switch to create a new blank switch:

var thjs = require("telehash-js");
var self = new thjs.switch();

The telehash provides it's own environment-friendly startup/init wrappers, and once you have a running switch it exposes the following methods:

  • self.listen("type",cbListen) - when a new incoming channel is requested for this type, pass it to cbListen(err,packet,chan)
  • self.start("hashname","type",{args},cbStart) - creates a new outgoing channel of this type, calls cbStart(err,packet,chan), args should include "js":{...} and optional "body":Buffer.

Modules may extend this and provide additional API methods.

Low Level API

A switch exposes the following core methods:

  • self.make(cbDone,cbStep) - creates a new hashname id, calls back cbDone(err, id) when finished, and the optional cbStep() to show progress for slow systems
  • self.load({id}) - loads hashname from id in the format {"parts":{...}, "1a":"public base64", "1a_secret":"secret base64"}
  • self.addSeed({seed}) - adds info for a seed in the json format
  • self.online(cbOnline) - turns this switch on, cbOnline(err)
  • self.whois(hashname) - returns a hashname object (mostly for internal use)