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

@desicon/seal

v1.0.4

Published

Zero-latency App-Layer WAF, Automated SRE Logging, and AI Rescue Engine.

Readme

Seal Node.js Setup Documentation

1. Quick Start

Step 1: Install the SDK

npm install @desicon/seal

Step 2: Next.js App Router Setup

To deploy the Edge WAF and telemetry properly without crashing the Edge runtime, you must configure two files: middleware.ts and instrumentation.ts.

1. Edge Firewall (middleware.ts)

import { createSealEdgeMiddleware } from '@desicon/seal/next';

export default createSealEdgeMiddleware({
  appName: process.env.NEXT_PUBLIC_APP_NAME || "my-app",
  waf: {
    maliciousScanners: { action: "drop" },
    pathTraversal: { action: "drop" }
  }
});

export const config = {
  matcher: ['/((?!api/webhooks|_next/static|_next/image|favicon.ico).*)'],
};

2. Uptime & Background Telemetry (instrumentation.ts)

CRITICAL: You must dynamically import the SDK inside the nodejs runtime check. If you use a static import at the top of the file, the Next.js Edge bundler will try to compile Node core modules and crash (ReferenceError: __import_unsupported).

export async function register() {
  if (process.env.NEXT_RUNTIME === 'nodejs') {
    // Dynamic import isolates the Node SDK from the Edge bundler
    const { seal } = await import('@desicon/seal');
    
    seal.init({
      apiKey: process.env.SEAL_API_KEY,
      appName: process.env.NEXT_PUBLIC_APP_NAME || "my-app",
      environment: process.env.NODE_ENV || "production"
    });
  }
}

Step 3: Standard Node.js / Express Setup

If you are not using Next.js or Webpack, you can simply use the standard static require:

const { seal } = require('@desicon/seal');

seal.init({
    apiKey: "seal_live_xxxx",
    appName: "My Backend",
    environment: "production"
});

2. Configuration Options

| Python Parameter | Node.js / Browser Parameter | Type | Description | | --- | --- | --- | --- | | api_key | apiKey | string | Your project API key from the dashboard. | | app_name | appName | string | A human-readable name for your application. | | environment | environment | string | Current deployment environment: 'production', 'staging', or 'development'. | | rescue_engine | rescueEngine | boolean | Set to true to enable automated AI hotfix generation and patching. | | level | level | string | fatal | error | warning |

3. The Sensitivity Dialer

The Sensitivity Dialer controls how much noise Seal generates. Set it in two places:

  1. SDK: Set level in seal.init().
  2. Dashboard: Override per-project in Settings. Server enforces it.

Levels:

  • fatal (Low): Only unhandled crashes.
    seal.init({ level: "fatal" });
  • error (Medium): Caught exceptions + fatal.
    seal.init({ level: "error" });
  • warning (High): Everything. Good luck.
    seal.init({ level: "warning" });

4. Seal Rescue Engine

When the Rescue Engine is enabled (via Project Settings), Seal doesn't just send you an alert. It instructs your connected AI to generate a functional, sandboxed JavaScript fix that addresses the logical error. The fix is minified and encrypted before leaving the server—only your SDK (holding the same API key) can decrypt and execute it.

Each fix is uniquely identified (seal_fix_xxxx) and location-aware: the same error type at two different code locations gets two separate fixes. If a fix fails to apply, the SDK automatically reports the failure, the bad fix is scrubbed server-side, and a fresh fix is generated on the next occurrence. No stale fixes, no fix-the-fix loops.

    1. Enable 'Seal Rescue Engine' in your Project settings.
    1. Ensure you have an AI Provider configured in settings.
    1. When an unhandled error occurs, Seal generates an encrypted rescue fix.
    1. The SDK decrypts and applies this fix in memory—invisible to network inspectors, DevTools, and MITM proxies.

Stack Compatibility & Frameworks

The Rescue Engine dynamically patches JavaScript bugs in the browser, but it is fully compatible with ANY backend stack.

Server-Rendered Apps: Even if your backend is Python or PHP, your users still interact with HTML/JS in the browser. Drop the Seal JS SDK into your Jinja2, Django, or Blade templates. The Rescue Engine will catch and hotfix frontend JavaScript bugs seamlessly.

<!DOCTYPE html>
<html>
<head>
    <!-- Drop Seal before your other scripts -->
    <script src="https://cdn.jsdelivr.net/gh/Desicon-AI/seal-cdn@main/seal.js"></script>
    <script>
      Seal.init({
        apiKey: "{{ SEAL_API_KEY }}", // Passed from backend
        appName: "My Web App",
        rescueEngine: true
      });
    </script>
</head>
<body>
    {% block content %}{% endblock %}
</body>
</html>

5. AI Personas

Seal speaks in three voices. Choose the one that fits your team culture. Personas are set at the Organization level and apply to all projects.

Seal (Sarcastic & Mean) — All Plans

The default. Seal roasts your code, insults your variable names, and grudgingly tells you how to fix it. Perfect for teams with thick skin and a sense of humor.

Example: "You passed a string to parseInt and expected magic? Cast your variables, you absolute menace. Here's the fix, don't make me say it twice."

Friendly (Supportive & Positive) — Pro / Team

A warm, encouraging senior dev who wants you to know it's going to be okay. Uses emojis. Celebrates small wins. Great for junior-heavy teams or if HR keeps filing complaints.

Example: "Hey! 👋 Looks like a small type mismatch slipped through — happens to everyone! Here's a quick fix. You're doing great! 🎉"

Professional (Strategic & Objective) — Pro / Team

An enterprise-grade SRE delivering strictly factual root cause analysis and remediation steps. No jokes, no fluff. Designed for large organizations, regulated industries, and teams that need clean audit trails.

Example: "Root Cause: Type coercion failure in paymentAPI.submit(). Remediation: Validate input type before invocation. Patch recommended."

How to configure

All future error analyses across every project in your organization will use the new voice.

1. Dashboard → Settings → Organization Persona
2. Select your preferred persona and click Save

7. Integrations

Bring Your Own AI (BYOAI)

Seal works out of the box for free using our massive database of hand-crafted roasts. But if you want AI to suggest actual code fixes, connect any AI provider (OpenAI, Anthropic, Groq, Ollama). We never markup token usage. If your API goes down, Seal seamlessly falls back to standard mode.

Dashboard → Settings → Select Provider → Paste Key

Slack Webhooks

Seal sends rich, formatted alerts directly to your Slack channels with full stack traces, AI analysis, and severity badges.

1. Dashboard → Settings → Connect Slack
2. Slack → Channel → Settings → Integrations → Add Seal

Discord Webhooks

Same rich alerts, same brutal honesty — delivered to your Discord server. Perfect for indie devs and open source projects.

Dashboard → Settings → Connect Discord (automatic)

8. The 'Not My Fault' Engine

Our 'Not My Fault' engine analyzes stack traces. If a crash originated from an external package, we will notify the maintainer of the issue so they can work on it. But we are smart about it. If we notice that the error was caused by missing parameters or incorrect usage by the developer, rather than sending the maintainer a ticket, we notify the developer of the correct use.

For Maintainers

Sign up for a free Seal account to claim and track your public npm/pip packages. You only need a paid subscription if you want to use Seal to monitor your own applications.

For Developers

Enable this feature within your project settings so that genuine errors from external packages are automatically sent to the maintainers.

Dashboard → Settings → Enable 'Not My Fault'

9. Sandbox Testing

Use your Sandbox project to test Seal's ingestion and AI analysis without triggering webhooks or skewing your live analytics. Sandbox API keys always start with sandbox_ and can be found in your Dashboard. You can also test everything interactively in the Playground.

const { seal } = require('@desicon/seal');

seal.init({
    apiKey: "sandbox_YOUR_KEY",
    appName: "Test App",
    environment: "development",
    endpoint: "https://sealengine.desicon.ai/api/v1/sandbox/ingest"
});