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

chabokpush

v2.1.0

Published

Chabok Javascript client for browsers, Web Workers & Node.js

Readme

Logo

Chabok Push Client for Javascript

npm npm

This Chabok Push client library supports web browsers, web workers.

Please check library changes.

Getting started

Yarn (or NPM)

You can use any NPM-compatible package manager, including NPM itself and Yarn.

npm install chabokpush --save

Or:

yarn add chabokpush

Then:

import chabokpush from 'chabokpush';

Or, if you're not using ES6 modules:

const chabokpush = require('chabokpush');

CDN

<script src="https://unpkg.com/chabokpush@[X.Y.Z]/dist/chabokpush.min.js"></script>

Replace [X.Y.Z] with the latest version

Web Push Browser Support

The following table shows browsers' support for chabok messaging and web push notifications:

For supporting web push notifications on chrome, opera and Samsung internet browser gcm_sender_id should be added to Manifest.js: (If you already have created your gcm_sender_id, you can find it in panel>setting>android cart)

{
  .....
    "gcm_sender_id": "GCM_SENDER_ID",
  .....
}

then add the Manifest.js to your root index.html:

<head>
 ...
  <link rel="manifest" href="manifest.json">
...
</head>

Initialization

const auth = {
  appId: 'APP_ID',
  webKey: 'WEB_TOKEN',
  devMode:true
}
const options={silent: true}

const chabok = new chabokpush.Chabok(auth, options)

if devMode enabled you can Test your Project on development Mode. You can get your APP_ID, API_KEY, USERNAME and PASSWORD from the Chabok dashboard.

Options

There are a number of configuration parameters which can be set for the ChabokPush client, which can be passed as an object to the ChabokPush constructor, i.e.:

| Param | Type | Default | Description | | --- | --- | --- | --- | | [options] | Object | | | | [options.realtime] | Object | true | set false to disable Realtime Connection | | [options.webpush] | Object | | | | [options.webpush.enabled] | Boolean | false | Set true to enable push Notification | | [options.silent] | Boolean | true | Receive messages Silently |

Sample Usage

const auth = {
  appId: 'APP_ID',
  webKey: 'WEB_TOKEN',
  devMode: true
}
 const options = {
   webpush: {
     enabled: true,
     publicKey: 'demo'
   },
   silent: false,
 };

const chabok = new chabokpush.Chabok(auth, options)

chabok.on('registered', deviceId => console.log('DeviceId ', deviceId))

chabok.on('connected', _ => {
  console.log('Connected')
  chabok.subscribe('important') // subscribe to important channel
  chabok.subscribeEvent('geo') // subscribe to geo events
})

chabok.on('message', msg => console.log('Message ', msg))
chabok.on('geo', geoEvent => console.log('Geo Event ', geoEvent))

chabok.on('connecting', _ => console.log('Reconnecting'))
chabok.on('disconnected', _ => console.log('offline'))
chabok.on('closed', _ => console.log('disconnected'))

if (chabok.isRegistered() && chabok.getUserId()) {
  chabok.register(chabok.getUserId())
} else {
  chabok.register('012345678910111213') // your userId
}