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

eslint-plugin-ethix

v1.0.0

Published

An ESLint plugin designed to identify and flag potential AI ethics and security vulnerabilities in your codebase and package.json. Helps ensure responsible AI development by detecting issues like biased language, unconsented data collection, hardcoded sec

Readme

eslint-plugin-ethix

An ESLint plugin to identify AI ethics and security red-flags in JavaScript repositories.

Quickstart

Installation

First, install ESLint:

npm i eslint --save-dev

Next, install eslint-plugin-ethix:

npm install eslint-plugin-ethix --save-dev

Configuration

Add ethix to the plugins section of your .eslintrc configuration file. You can then configure the rules you want to use under the rules section.

{
  "plugins": [
    "ethix"
  ],
  "rules": {
    "ethix/no-hardcoded-secrets": "error",
    "ethix/no-facial-analysis-libs": "warn",
    "ethix/no-opaque-ai-models": "warn"
  }
}

Alternatively, you can use the recommended configuration:

{
  "extends": [
    "plugin:ethix/recommended"
  ]
}

Example Usage

Here's an example of how eslint-plugin-ethix can help you identify potential issues:

// Example of a hardcoded secret (will be flagged by no-hardcoded-secrets)
const API_KEY = "sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";

// Example of using a facial analysis library (will be flagged by no-facial-analysis-libs)
import { FacialRecognizer } from 'some-facial-analysis-lib';

// Example of potentially opaque AI model usage (will be flagged by no-opaque-ai-models)
const model = new OpaqueAIModel();

// Example of unconsented data collection (will be flagged by no-unconsented-data-collection)
navigator.geolocation.getCurrentPosition(successCallback, errorCallback);

// Example of sensitive API key in URL (will be flagged by no-sensitive-api-keys-in-url)
const url = `https://api.example.com/data?key=YOUR_API_KEY_HERE`;

// Example of biased language (will be flagged by no-biased-language)
// This code is for the 'master' branch.
const user = "he is a good guy";

Supported Rules

  • no-hardcoded-secrets: Disallows hardcoded secrets (e.g., API keys, passwords).
  • no-facial-analysis-libs: Disallows the use of facial analysis libraries.
  • no-opaque-ai-models: Warns about the use of potentially opaque AI models or libraries.
  • no-unconsented-data-collection: Flags usage of APIs that typically require user consent for data collection (e.g., geolocation, camera, microphone).
  • no-sensitive-api-keys-in-url: Disallows sensitive API keys from being hardcoded directly into URLs.
  • no-biased-language: Flags potentially biased or discriminatory language in comments and string literals (not included in recommended config).

Development

To run tests:

npm test