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

keymetrics-api

v1.3.1

Published

Keymetrics API Wrapper

Downloads

6

Readme

Keymetrics API Wrapper

This module lets you implement a fully customizable Keymetrics client, receiving live data from the Keymetrics API.

You will need to retrieve your Keymetrics user token to use it.

For more informations about the data structures and API calls check out the documentation.

We designed 2 ways to start the module: via callback or events.

Install

With NPM:

$ npm install keymetrics-api --save

Usage example

var Keymetrics = require('keymetrics-api');

var km = new Keymetrics({
  token: '[token]',
  public_key: '[public_key]',
  realtime: true
});

km.init(function(err, res) {
  if (err) return console.log(err);
  //Get user role
  km.bucket.fetchUserRole(function(err, res) {
    console.log('Current permissions: ' + res);
  });

  //Print received status
  km.bus.on('data:*:status', function(data) {
    console.log(data);
  });
});

Options

  • token (Required): Refresh token obtained from the Keymetrics dashboard.
  • token_type (Optional): Token type (refresh_token or access_token)
  • public_key (Optional): When defined, lets you retrieve the correct bucket.
  • realtime (Optional): When defined with public_key, launches the websocket session at start.

This snippet makes 3 successive calls (if all options are set):

  • POST to get and access_token from the servers
  • GET to retrieve the correct bucket informations
  • POST to set the Bucket active and initialize the Websocket connection.

Basic use - events

bus is broadcasting events corresponding to every step of the authentication process.

In this example we start the authentication, then retrieve the bucket and finally start the realtime interaction.

var km = new Keymetrics({
  token: '[token]'
});

//When authenticated
km.bus.on('auth:ready', function(token) {
  //Retrieve bucket
  km.bucket.connect('[public_key]');
});

//When bucket is retrieved
km.bus.on('bucket:active', function(id) {
  //Fetch user role
  km.bucket.fetchUserRole(function(err, res) {
    console.log('Current permissions: ' + res);
  });

  //Start realtime
  km.realtime.init();
});

//When realtime starts
km.bus.on('realtime:on', function() {
  console.log('Realtime started!')
});

//Retrieve access_token
km.init();

List of broadcasted events:

Authenticate

  • auth:ready

Bucket

  • bucket:active

Realtime

  • realtime:on
  • realtime:off
  • realtime:reconnect
  • realtime:reconnect-timeout
  • realtime:auth
  • raw:[server_name]:status
  • data:[server_name]:status
  • data:[server_name]:server_name
  • data:[server_name]:monitoring

User

  • user:logged_in
  • user:logged_out

Error

  • error:auth
  • error:realtime
  • error:bucket

DEBUG=* allows verbose mode for received realtime data.

License

Apache 2.0