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

@jdx-plugins/jt-sound-plugin

v0.1.1

Published

JDX Plugin for JuiceToast — Unlocks browser audio and provides enterprise sound engine support.

Readme

🎧 JDX Sound Plugin

JDX Sound Plugin is an official plugin for JuiceToast that unlocks browser audio and provides a powerful, enterprise-grade sound engine for toast notifications.

It solves modern browser autoplay restrictions (like Chrome’s sound policy) and enables smooth, low-latency audio playback for your notifications.


✨ Features

🔓 Audio Unlock System

  • Automatically bypasses browser autoplay restrictions
  • Activates after first user interaction (click, touch, keypress)
  • Works across modern browsers

⚡ Enterprise Sound Engine

  • Web Audio API powered
  • Ultra-low latency playback
  • No overlapping audio lag

🎚️ Global Audio Controls

  • Adjustable volume
  • Mute / unmute toggle
  • Programmatic sound control API

🚀 Sound Preloading

  • Preloads audio buffers for instant playback
  • Eliminates network delays

🛡️ Anti-Spam Protection

  • Built-in cooldown system
  • Prevents rapid sound overlap

📦 Installation

npm install @jdx-plugins/jt-sound-plugin

🧃 Requirements

This plugin requires:

juice-toast >= 1.3.2

Install if you haven't:

npm install juice-toast

🚀 Usage

Basic Setup

import juiceToast from "juice-toast";
import { JDXSoundEngine } from "@jdx-plugins/jt-sound-plugin";

const soundPlugin = JDXSoundEngine();

juiceToast.use(soundPlugin);

That's it — audio will automatically unlock after the user's first interaction.


🎛️ Custom Sound Configuration

juiceToast.use(
  JDXSoundEngine({
    volume: 0.5,
    sounds: {
      success: "/audio/ding.mp3",
      error: "/audio/error.mp3",
      warning: "/audio/warn.mp3",
      info: "/audio/info.mp3"
    }
  })
);

🎚️ Engine API

You can access the engine directly:

const plugin = JDXSoundEngine();
juiceToast.use(plugin);

const engine = plugin.engine;

Available Controls

Mute Audio

engine.mute();

Unmute Audio

engine.unmute();

Toggle Mute

engine.toggle();

Set Volume

engine.setVolume(0.3);

Play Sound Manually

engine.play("success");

⚙️ Configuration Options

| Option | Type | Default | Description | |-------|------|--------|-------------| | volume | number | 0.6 | Global audio volume | | cooldown | number | 120 | Minimum delay between sound plays (ms) | | preload | boolean | true | Preload audio buffers | | sounds | object | built-in map | Sound URLs per toast type |


🧠 How It Works

  1. Plugin listens for first user interaction.
  2. Creates an unlocked Web Audio context.
  3. Preloads audio buffers.
  4. Plays sounds instantly when toast appears.

📁 Default Sound Types

Supported toast types:

  • success
  • error
  • warning
  • info

You can override any of them.


🏗️ Designed For

  • JuiceToast plugin ecosystem
  • Production web apps
  • High-performance notification systems

🤝 Contributing

Pull requests are welcome.

If you want to add features:

  • Sound themes
  • Spatial audio
  • Persistent user preferences

Feel free to open an issue.


📜 License

MIT License © OpenDN Foundation


🍹 Part of JDX Plugin Ecosystem

Official plugin collection for JuiceToast.