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

@brandlab-digital/eslint-plugin

v3.5.0

Published

Proprietary software © Brandlab Digital Marketing. All rights reserved. Published for Brandlab client sites.

Readme

@brandlab-digital/eslint-plugin

Proprietary software © Brandlab Digital Marketing. All rights reserved. Published for Brandlab client sites.

Fast, syntax-level safeguards for Brandlab Next.js consumers. The plugin gives immediate editor and CI feedback for violations that can be established from a single source file.

It deliberately does not implement release support, migration policy, project health, rendered-output validation or portfolio scoring. Those decisions belong to @brandlab-digital/conformance.

Client preset

Every Brandlab Next.js client uses the complete preset as its whole eslint.config.mjs:

import brandlab from '@brandlab-digital/eslint-plugin'

export default brandlab.configs.next

configs.next is Next's core-web-vitals and typescript configs, then configs.recommended, then react/no-unescaped-entities off (apostrophes are ordinary copy) and the standard ignores (.next/, out/, build/, coverage/, playwright-report/, test-results/, .vercel/, public/, next-env.d.ts). It loads eslint-config-next when first used, so install eslint-config-next at the exact version of next.

Recommended flat config

For a non-Next consumer, or to compose a custom array:

import brandlab from '@brandlab-digital/eslint-plugin'

export default [brandlab.configs.recommended]

The recommended config enables every published rule as an error.

Stable rule IDs

| Rule | Purpose | Preferred implementation | |---|---|---| | brandlab/no-retired-analytics-events | Rejects retired event names such as contact_form_submission and phone_call. | Use contact_form for accepted forms and phone_link_click for telephone-link diagnostics. | | brandlab/no-raw-json-ld | Rejects raw JSON-LD <script> and createElement output in consumers. | Render typed graphs through @brandlab-digital/site-next/schema. | | brandlab/no-unsafe-rich-text-sinks | Rejects every project-owned raw HTML sink (dangerouslySetInnerHTML in JSX, props objects or assignments), whatever sanitiser it names. The conformance checker applies the same policy. | Render JSON-LD with SchemaScript and rich text with SafeRichText from @brandlab-digital/site-next. | | brandlab/no-protected-platform-reimplementation | Rejects local declarations and direct calls that bypass protected contact, SEO or analytics surfaces. | Import the shared site-core or site-next API. | | brandlab/no-analytics-pii | Rejects statically provable lead PII, message and attachment data in known analytics sinks. | Send only shared allowlisted event parameters. | | brandlab/no-unsafe-external-links | Rejects script-bearing link schemes and external new-context links with opener access when the URL is static. | Use safe schemes and rel="noopener"; keep runtime URL validation at the trust boundary. | | brandlab/no-raw-image-elements | Rejects raw website <img> and createElement('img') output. | Use next/image; the documented getImageProps art-direction pattern and email renderer files remain exempt. |

RULE_IDS is exported for tools that need the canonical IDs without duplicating strings. The 3.0 release removed brandlab/no-allow-indexing-true together with the ALLOW_INDEXING path it guarded; indexing is decided by the deployment environment.

Deliberate boundaries

  • The protected-surface rule checks declarations with reserved platform API names and direct transport or analytics calls. It does not compare implementation behaviour or package versions.
  • The analytics rule inspects known event sinks and source-visible payloads. It does not guess the contents of opaque dynamic objects; runtime allowlisting and conformance remain mandatory.
  • The link rule acts only on statically resolvable URLs. Dynamic destinations require runtime validation and behavioural verification.
  • The image rule applies to website UI. Raw image markup remains available to non-Next renderers when the file is clearly located or named as an email renderer.
  • Shared implementations in site-core, site-next and installed @brandlab-digital packages are not treated as consumer reimplementations.

These constraints keep linting deterministic and editor-fast while the conformance engine owns deeper AST, behavioural and rendered-output evidence.