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

ban-devtools

v1.0.5

Published

A lightweight React/Next.js component and hook to prevent inspecting elements and using developer tools.

Readme

ban-devtools

Enterprise-Grade Anti-DevTools Protection for React & Next.js

Engineered to protect proprietary Source Code and API Keys from unauthorized inspection in React and Next.js environments.


Open Source Commitment

ban-devtools is a fully Open Source library. It is built by the community, for the community. Developers are encouraged to audit the source code, fork the repository, and contribute to the ongoing security and optimization of this package. We believe in transparency and robust security through peer review.

Core Features

This library utilizes a multi-layered security architecture.

Under The Hood (Architecture Logic)

The internal mechanism, useBanDevTools, operates on three distinct vectors of detection:

  1. Shortcut Interception: Intercepts keydown events globally and invokes e.preventDefault(). This stops the browser's native behavior without immediately triggering a redirect, maintaining a seamless user experience for accidental keystrokes.
  2. Debugger Trap Loop: Executes a continuous debugger instruction within a 100ms interval loop. When DevTools is opened, the JavaScript engine halts execution. Our script calculates the execution delay; if it exceeds 100ms, it confirms a breach and executes the redirect protocol.
  3. Resize Heuristic Detection: A failsafe mechanism. If the debugger trap is bypassed and DevTools docks to the browser window, it forcefully reduces the window.innerWidth or window.innerHeight. The script detects this aggressive delta (>160px) and immediately redirects the user.

Installation

npm install ban-devtools
# or
yarn add ban-devtools

Implementation Guide

Global Protection (Next.js App Router)

To secure the entire application, wrap your application at the root layout level.

// app/layout.tsx
import { BanDevTools } from 'ban-devtools';

export default function RootLayout({
  children,
}: {
  children: React.ReactNode;
}) {
  return (
    <html lang="en">
      <body>
        <BanDevTools redirectUrl="https://www.azzamcodex.site/" />
        {children}
      </body>
    </html>
  );
}

Component-Level Protection (React Hooks)

For granular control, utilize the useBanDevTools hook directly inside specific functional components.

import React from 'react';
import { useBanDevTools } from 'ban-devtools';

export default function SecureDashboard() {
  
  // Initialize the protection hook
  useBanDevTools({
    redirectUrl: 'https://www.azzamcodex.site/',
    disableRightClick: true,
    disableShortcuts: true,
    debuggerLoop: true,
  });

  return (
    <div>
      <h1>Enterprise Dashboard</h1>
      <p>This component is protected against source inspection.</p>
    </div>
  );
}

Configuration Reference

| Property | Type | Default | Description | | :--- | :--- | :--- | :--- | | redirectUrl | string | 'https://www.azzamcodex.site/' | The secure URL destination when an inspection attempt is detected. | | disableRightClick | boolean | true | Disables the context menu to prevent manual inspection. | | disableShortcuts | boolean | true | Intercepts F12 and common Chromium/WebKit inspection shortcuts. | | debuggerLoop | boolean | true | Activates the infinite debugger trap and execution timer. |

Tech Stack

Credits & License

Designed & Engineered by Azzam Codex

Copyright © 2026 Azzam Codex. All Rights Reserved. Licensed under the MIT License.