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 🙏

© 2026 – Pkg Stats / Ryan Hefner

@amitkumarnagar/chats

v1.0.2

Published

A fully functional chat package

Readme

Chat SDK

A package which supports different types of ready to use chat features

Currently we only support realtime chat using [firebase][https://console.firebase.google.com]

Features

  • Create rooms
  • Get list of available rooms
  • Send a message to a room
  • Listen for realtime message updates
  • Attachment (string, image)

Installation

npm install @amitkumarnagar/chats


Usage

You can get you firebase config by following these steps: [Firebase Config][https://firebase.google.com/docs/web/setup]

firebase config example

var firebaseConfig = {
    apiKey: 'api-key',
    authDomain: 'project-id.firebaseapp.com',
    databaseURL: 'https://project-id.firebaseio.com',
    projectId: 'project-id',
    storageBucket: 'project-id.appspot.com',
    messagingSenderId: 'sender-id',
    appId: 'app-id',
    measurementId: 'G-measurement-id',
};
import Chats from '@amitkumarnagar/chats';

// initialize chatService
const chatService = Chats(firebaseConfig);

// get all chat rooms
const chatRooms = await chatService.getAllRooms();

Create a chat room

const user1 = { _id: '33', name: 'user1' };
const user2 = { _id: '44', name: 'user2' };

// create a chat room with 2 users
await chatService.createRoom([user1, user2]);

Send a message

const content = {
    body: 'Hi, how are you?',
    sender: { _id: '11' },
    receiver: { _id: '22' },
    senderId: '11',
    receiverId: '22',
    roomId: 'e358770d6ff52541b078689f5afba5b2',
    isRead: false,
    timeStamp: Date.now(),
    attachment: '',
};

// send a message to a chat room represented by roomId
await chatService.sendMessage(roomId, content);

Listen for realtime message updates

chatSetvice.onNewMessage(userId, payload => {
    console.log('[New message received]', payload);
});

Get all message of a room

await chatService.getAllMessages(roomId);

To get message for a specific user, pass second parameter userId

await chatService.getAllMessages(roomId, userId);

Easily render message to left or right based on receiptType

message = { ..., receiptType: 'received' | 'sent'}

Message Content | Property | Type | Description | | --------- | --------- | ----------- | | body | string | message content | sender/receiver | object | A user object for chat rooms | senderId/receiverId | string | A unique id for a user | roomId | string | chat room's unique Id | attachment | string or base64 | attachment to be sent


User | Property | Type | Required | Description | | --------- | --------- | -------- | ----------- | | _id | string | true | A unique user Id | name | string | false | name of the user | firstName | string | false | first name of the user | lastName | string | false | last name of the user | fullName | string | false | full name of the user | profileImg | string | false | user profile image url