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

@andreyrcdias/chat-widget

v1.1.10

Published

Rasa chatbot widget

Readme

Rasa Chatbot Widget

This project is a Rasa chatbot widget designed to be easily embeddable into any web applications. It leverages Lerna for managing multiple packages within a single repository. The widget utilizes StencilJS for building efficient and reusable web components.

Requirements

  • Node version v20.11.1
  • npm version 10.2.4

A .nvmrc file is provided for easily switching to the correct Node.js version using nvm.

Installation

  • Clone the repository
  • Install dependencies npm install
  • Start development server npm run dev

Scripts

dev

Concurrently runs the development servers for all packages managed by Lerna.

npm run dev

storybook

Builds the packages in watch mode and starts Storybook, which serves as full documentation and allows for interactive component development.

npm run storybook

test

Runs tests across all packages.

npm run test

build

Builds all packages sequentially to ensure dependencies are built in the correct order.

npm run build

How to Use the Chat Widget in a React Application

This guide will show you how to integrate the Rasa chatbot widget into your React application using the @rasahq/chat-widget-react package.

Step 1: Install the Package

First, you need to install the chat widget package via NPM. Run the following command in your project directory:

npm install @rasahq/chat-widget-react

Step 2: Import the Chat Widget

In your React component, import the RasaChatbotWidget from the installed package:

import { RasaChatbotWidget } from "@rasahq/chat-widget-react";

Step 3: Use the Chat Widget

In your React component, add the RasaChatbotWidget component to your JSX. Pass the serverUrl prop to specify the URL of your Rasa server. You can also handle events like onChatWidgetOpened:

function App() {
  return (
    <div>
      <RasaChatbotWidget
        serverUrl="https://example.com"
        onChatWidgetOpened={console.log}
      />
    </div>
  );
}

export default App;

Notes:

  • Installing via NPM: The package @rasahq/chat-widget-react should be installed in your project via NPM. This package provides the RasaChatbotWidget component, making it easy to integrate the chatbot into your React application.
  • Handling Events: You can handle various events such as onChatWidgetOpened, onMessageSent, etc., by passing the corresponding callback functions as props to the RasaChatbotWidget component.
  • React example you can find here
  • For a complete list of available events and props, refer to the documentation

How to Use a Script Tag to Enable the Chat Widget

This guide will show you how to integrate the Rasa chatbot widget into your webpage using a script tag.

Step 1: Add the Script Tag

In the section of your HTML file, include the script tag to load the chat widget module. This script fetches the necessary JavaScript from a CDN.

<script
  type="module"
  src="https://unpkg.com/@rasahq/chat-widget-ui/dist/rasa-chatwidget/rasa-chatwidget.esm.js"
></script>

Step 2: Include the CSS

Also, include the CSS file to ensure the widget is styled correctly.

<link
  rel="stylesheet"
  href="https://unpkg.com/@rasahq/chat-widget-ui/dist/rasa-chatwidget/rasa-chatwidget.css"
/>

Step 3: Insert the Chat Widget

In the section of your HTML, add the chat widget’s custom element. Make sure to set the server-url attribute to the appropriate URL of your Rasa server.

<rasa-chatbot-widget server-url="https://example.com"></rasa-chatbot-widget>

Complete Example

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>HTML Example</title>
    <script
      type="module"
      src="https://unpkg.com/@rasahq/chat-widget-ui/dist/rasa-chatwidget/rasa-chatwidget.esm.js"
    ></script>
    <link
      rel="stylesheet"
      href="https://unpkg.com/@rasahq/chat-widget-ui/dist/rasa-chatwidget/rasa-chatwidget.css"
    />
  </head>
  <body>
    <rasa-chatbot-widget server-url="https://example.com"></rasa-chatbot-widget>
  </body>
</html>

Notes:

  • Running a Local Server: If you’re using the <script type="module"> tag, you can’t simply double-click the HTML file to open it in your browser. This is because modern browsers enforce strict security policies when loading ES modules, preventing them from being executed if the file is accessed via the file:// protocol. Instead, you’ll need to serve your HTML file through a local server (e.g., using tools like http-server, live-server, or running a simple Python HTTP server with python -m http.server).
    • Why This Happens: When loading JavaScript modules, browsers apply stricter security rules to prevent potential vulnerabilities. The file:// protocol does not allow cross-origin imports, which are often needed when working with modules. Running a local server provides the http:// or https:// protocol, which supports proper module loading and allows the browser to manage dependencies correctly.
  • Replace https://example.com with your actual Rasa server URL.
  • Ensure the script and link tags are correctly placed in the section for optimal loading.
  • Example you can find here
  • For a complete list of available events and props, refer to the documentation

This is all you need to add the Rasa chatbot widget to your webpage!

GIT Convention

Commit Message Format

We follow the Conventional Commits specification for our GIT commit messages. Each commit message consists of a header, body, and footer, structured as follows:

<type>[optional scope]: <description>

[optional body]

[optional footer]
  • Type: Specifies the kind of change being made, such as feat, fix, docs, style, refactor, test, chore, etc.
  • Scope: Optional, describes the scope of the commit, e.g., component name, module affected.
  • Description: A brief summary in the present tense, describing the change.

Examples

  • Feature: feat(image): add image component
  • Bug Fix: fix(validation): handle empty inputs
  • Documentation: docs(readme): update installation instructions
  • Style: style(button): adjust padding for consistency
  • Refactor: refactor(sdk): optimize database queries
  • Test: test(image): add integration tests for image component
  • Chore: chore(build): update dependencies

Notes

  • Always use imperative, present tense verbs (“add”, “fix”, “update”) rather than past tense (“added”, “fixed”, “updated”).
  • Use the body to provide more details if the description alone is not enough to explain the changes.
  • Use the footer for references to issues or breaking changes.

This convention helps maintain a clear and standardized format for our commit messages, aiding in changelog generation and automated release notes.

Publishing Packages with Lerna

Lerna simplifies the process of publishing multiple packages within a monorepo. Below are the steps to publish packages using Lerna.

Prerequisites

Before publishing, ensure that:

  • You have logged into the npm registry using npm login.
  • Your packages have the correct version numbers, or you have set up versioning with Lerna.

Step-by-Step Publishing Guide

1.Run tests and build your packages:

Ensure that all your packages are tested and built before publishing:

npm run test
npm run build

2. Bump the version numbers (optional):

If you want to automatically bump version numbers based on your commits, you can use:

npx lerna version

Lerna will prompt you to select the new version numbers for your packages.

3. Publish your packages to the registry:

To publish all updated packages, use:

npx lerna publish

Lerna will:

  • Increment the versions of your packages.
  • Publish the packages to the npm registry.
  • Create git tags for the versions.

Troubleshooting

If you encounter any issues during publishing, make sure to:

  • Verify your npm registry authentication.
  • Check your package.json files for correct configuration.

For more detailed information on Lerna, visit the official documentation: