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

@aio-chat/service

v1.0.1-16

Published

All in one chat includes a web component and a backend service for real-time chat. This is the server package of @aio-chat

Downloads

47

Readme

@aio-chat/service

This package provides the backend service for the @aio-chat/client. It handles chat logic, user management, authentication, database interactions, and real-time communication via WebSockets.

Features

  • Authentication: Supports Direct, Auth Endpoint, JWT, Proxy, and Custom authentication methods.
  • Database: Works with SQLite, MySQL, and PostgreSQL. Includes migration utilities.
  • Real-time: Uses Socket.IO for real-time message delivery.
  • Customizability: Override default chat logic, user filtering, authentication, and connect to your existing database.

Installation

Install the service package:

npm install @aio-chat/service

Quick Start

Setup

  1. Create a file to start the service (e.g., server.js).

  2. Import and start the service:

    import { startService } from '@aio-chat/service';
    
    startService(config)
      .then(() => console.log("Chat service started successfully."))
      .catch((err) => console.error("Failed to start chat service:", err));
  3. Add a start command to your package.json:

    "scripts": {
      "start:service": "node path/to/server.js"
    }

Configuration

Key configuration options include:

  • DB_TYPE: Type of database (sqlite, mysql, or postgres).
  • AUTH_MODE: Authentication mode (direct, auth-endpoint, jwt, proxy, or custom).
  • user_mapping: Map user fields to your database schema.
  • TOKEN_SECRET, PROXY_SECRET: Secrets for specific auth modes.

For a full list of configuration options, refer to the Configuration Documentation.


Authentication

@aio-chat/service supports multiple authentication methods:

  1. Direct: Quick prototyping with minimal setup.
  2. Auth Endpoint: Verifies users through a backend endpoint.
  3. JWT: Uses existing JWT authentication systems.
  4. Proxy: Routes all chat requests through an authenticated backend.
  5. Custom: Implements custom authentication logic.

For detailed instructions, refer to the Authentication Documentation.


Database

@aio-chat/service supports SQLite, MySQL, and PostgreSQL. It includes migration utilities to set up and manage the database schema.

  • SQLite: Ideal for quick setups or local development.
  • MySQL/PostgreSQL: Recommended for production environments.

For more details, refer to the Database Documentation.


Customization

@aio-chat/service is designed to be highly customizable:

  • Override default chat logic, user filtering, authentication and connect it to your existing database.

For advanced use cases, refer to the Chat Service Documentation.


Best Practices

  1. Change Default Authentication Method: Avoid using the default authentication method (direct) in production. Choose an authentication method that best fits your application's needs, such as jwt, proxy, or custom.
  2. Update Authentication Defaults: Replace default authentication values like TOKEN_SECRET and PROXY_SECRET with secure, unique values to enhance security.
  3. Migrations: Before running migrations on existing database make sure to check documentation on User Entity customization.

Troubleshooting

Common Issues

  • Authentication Errors: Ensure secrets and token names match between your app and the @aio-chat/service.
  • CORS Issues: Configure CORS on both your proxy endpoint and the @aio-chat/service.
  • Database Errors: Verify your database configuration and run migrations.

For more help, check the GitHub repository or create a new issue.


Related Packages

  • @aio-chat/client: The frontend web component package.

License

This project is licensed under the MIT License.