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

@larcjs/core-debug

v2.0.0

Published

Debug and tracing tools for LARC Core (3KB add-on)

Readme

@larcjs/core-debug

Version License Bundle Size

Debug and tracing tools - Advanced debugging capabilities for PAN messages

Add comprehensive debugging and message tracing to LARC Core or Core Lite. Essential for development and troubleshooting complex message flows.

Installation

# Requires @larcjs/core or @larcjs/core-lite
npm install @larcjs/core-debug

Quick Start

<pan-bus debug="true" enable-tracing="true"></pan-bus>

<script type="module">
import '@larcjs/core-debug';

// Access debug manager
const debug = window.pan.debug;

// Enable tracing
debug.enableTracing();

// View message history
console.log(debug.getMessageHistory());

// Export state snapshot
const snapshot = debug.captureSnapshot();
console.log(JSON.stringify(snapshot, null, 2));
</script>

Features

  • 🔍 Message Tracing - Track all messages with full metadata
  • 📊 Performance Metrics - Handler duration, message sizes
  • 📸 State Snapshots - Export/import complete bus state
  • 🎯 Filtering - Filter messages by topic patterns
  • ⏱️ Timeline - View message history with timestamps
  • 📦 Export/Import - Save and restore state for debugging

API Reference

debug.enableTracing()

Start tracking all messages.

window.pan.debug.enableTracing();

debug.disableTracing()

Stop tracking messages.

window.pan.debug.disableTracing();

debug.getMessageHistory(filter?)

Get tracked messages, optionally filtered.

// All messages
const all = debug.getMessageHistory();

// Filtered by topic pattern
const filtered = debug.getMessageHistory('user.*');

debug.captureSnapshot()

Capture current bus state.

const snapshot = debug.captureSnapshot();
// Returns: { timestamp, messages, retained, subscriptions, stats }

debug.clear()

Clear message history.

debug.clear();

Usage with

The debug manager powers the <pan-inspector> component:

<pan-inspector></pan-inspector>

Features:

  • Real-time message monitoring
  • State tree visualization
  • Performance metrics dashboard
  • Export/import state snapshots

Development Workflow

1. Enable Debug Mode

<pan-bus debug="true" enable-tracing="true"></pan-bus>

2. Monitor Messages

// Watch console for debug logs
// [PAN Bus] Published { topic: 'user.login', delivered: 3, routes: 1 }

3. Inspect State

// View current retained state
const state = debug.captureSnapshot();
console.table(state.retained);

4. Export for Bug Reports

// Export state snapshot for sharing
const snapshot = debug.captureSnapshot();
navigator.clipboard.writeText(JSON.stringify(snapshot, null, 2));

Performance Impact

  • Overhead: ~5% when tracing enabled
  • Memory: Stores last 1000 messages (configurable)
  • Production: Automatically stripped in minified builds

Bundle Size

  • Minified: 3.0KB
  • Gzipped: ~1KB

Related Packages

License

MIT © Chris Robison