open-index/open-npm huggingface dataset:
npm package: @sheplu/editorconfig
Description: A small CLI to manage a **consistent `.editorconfig`** across your projects.
Author: Jean Burellier
Latest version: 0.8.5

# editorconfig

A small CLI to manage a **consistent `.editorconfig`** across your projects.

- ✅ Generate a sane default `.editorconfig` in seconds
- ✅ Check if your existing file matches the target setup
- 🔜 Propose updates (with confirmation) instead of blindly overwriting
- 🔜 Compare your file against the recommended template

## Why?

Keeping `.editorconfig` aligned across multiple repositories is boring and error-prone:

- Some repos have no `.editorconfig`
- Some have outdated or partial settings
- People copy–paste from “somewhere” and drift over time

This CLI aims to provide a **single source of truth** for your preferred `.editorconfig`, and a few helpers to keep it in sync.

## Installation

You can use it **without installing**, via `npx`:

```bash
npx @sheplu/editorconfig --mode=write
```

Or install it globally:

```bash
npm install -g @sheplu/editorconfig
editorconfig
```

Or as a dev dependency:

```bash
npm install -D @sheplu/editorconfig
```

## Quick Start

From the root of your project:

```bash
npx @sheplu/editorconfig --mode=write
```

This will:

- Create a `.editorconfig` file if it doesn’t exist
- (Current behavior) Write the default template
- (Future behavior) Ask before overwriting an existing file

## Current Features

### `write`

```bash
npx @sheplu/editorconfig --mode=write
```

Creates a base `.editorconfig` file in the current directory.

Typical content (example):

```ini
root = true

[*]
indent_style = tab
indent_size = 4
tab_width = 4
end_of_line = lf
charset = utf-8
spelling_language = en
trim_trailing_whitespace = true
insert_final_newline = true
quote_type = single
spaces_around_operators = true
```

### `check`

```bash
npx @sheplu/editorconfig --mode=check
```

Validates your existing `.editorconfig` and reports any drift from the target configuration.

This command will:

- Read your existing .editorconfig
- Compare it against the tool’s canonical template
- Exit with:
  - `0` if everything matches
  - `1` if differences are found

## Planned / Upcoming Features

### 1. Interactive update / replace

```bash
npx @sheplu/editorconfig --mode=fix
```

### 2. Compare with target setup

```bash
npx @sheplu/editorconfig --mode=diff
```

## Roadmap

- [ ] Add diff logic and `diff` command
- [ ] Add interactive `fix` / `update` command
- [ ] Expose presets or configuration options
- [ ] Add tests and CI examples

Additional properties can be found on the [editorconfig wiki](https://github.com/editorconfig/editorconfig/wiki/editorconfig-properties).
npm package: @sheplu/eslint-config
Description: A simple ESLint config based on recommended rules and stylistic formatting
Author: Jean Burellier
Latest version: 0.767.2

# eslint-config

A **shareable ESLint configuration** for modern JavaScript and TypeScript projects.
It builds on top of **ESLint’s recommended rules** and **stylistic plugin defaults**,
with optional presets for **React** and **Node.js**.
Designed to be simple, consistent, and Prettier-compatible.

## 🚀 Install

This config only requires **eslint** and **@stylistic/eslint-plugin**.
Other plugins (TypeScript, React, Prettier) are optional, depending on your project.

```bash
# npm
npm i -D eslint @stylistic/eslint-plugin @sheplu/eslint-config

# yarn
yarn add -D eslint @stylistic/eslint-plugin @sheplu/eslint-config

# pnpm
pnpm add -D eslint @stylistic/eslint-plugin @sheplu/eslint-config
```

## ⚡ Usage

Once installed, enable the config by creating an `eslint.config.js` file (for ESLint v9+):

```js
// eslint.config.js
import myConfig from "@sheplu/eslint-config";

export default defineConfig([
  {
    files: [ "**/*.{js,mjs,cjs}" ],
    plugins: { "@stylistic": stylistic },
    extends: [ myConfig ],
    languageOptions: {
      globals: globals.node,
    },
  }
]);
```

Or you can also load only the specific configuration you need:

```js
// eslint.config.js
import myConfig from "@sheplu/eslint-config/src/stylistic.js";

export default defineConfig([
  {
    files: [ "**/*.{js,mjs,cjs}" ],
    plugins: { "@stylistic": stylistic },
    extends: [ myConfig ],
    languageOptions: {
      globals: globals.node,
    },
  }
]);
```

## 📝 Scripts

Add common lint commands to your `package.json`:

```json
{
  "scripts": {
    "lint": "eslint .",
    "lint:fix": "eslint . --fix"
  }
}
```

## Based on

* [eslint](https://github.com/eslint/eslint)
* [stylistic](https://github.com/eslint-stylistic/eslint-stylistic)
* [markdown](https://github.com/eslint/markdown/tree/main)
* [react](https://github.com/jsx-eslint/eslint-plugin-react)
* [react-hooks](https://github.com/facebook/react/tree/main/packages/eslint-plugin-react-hooks)
* [react-testing-library](https://github.com/testing-library/eslint-plugin-testing-library/tree/main)
* [storybook](https://github.com/storybookjs/eslint-plugin-storybook)
* [playwright](https://github.com/mskelton/eslint-plugin-playwright)
* [jsx-a11y](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y)
* [typescript](https://github.com/typescript-eslint/typescript-eslint)
* [jsdoc](https://github.com/gajus/eslint-plugin-jsdoc)
* [json](https://github.com/eslint/json)
* [perfectionist](https://perfectionist.dev/rules)
npm package: @sheplu/eslint-config-json
Description: Opinionated ESLint rules and config for consistent, high-quality JSON with zero setup.
Author: Jean Burellier
Latest version: 0.6.8

# @sheplu/eslint-config-json

> Opinionated and lightweight **ESLint config for JSON** files.
> Built to ensure consistent formatting and validation across projects.

## Features

- ✅ Preconfigured for JSON, JSONC and JSON5 files (`.json`, `.jsonc`, `json5`)
- ✅ Enforces consistent key ordering and spacing
- ✅ Prevents trailing commas and other structural mistakes
- ✅ Zero-dependency and plug-and-play setup
- ✅ Works perfectly with editors and CI pipelines

## Installation

You can install the config as a dev dependency:

```bash
npm install -D @sheplu/eslint-config-json
# or
yarn add -D @sheplu/eslint-config-json
# or
pnpm add -D @sheplu/eslint-config-json
```

## Usage

In your **`eslint.config.js`**, extend the shared config:

### Flat config (ESLint ≥ 9)

```js
import { jsonRules } from "@sheplu/eslint-config-json";
import json from "@eslint/json";

export default defineConfig([
  {
    'extends': [ jsonRules ],
    'files': [ '**/*.json' ],
    'language': 'json/json',
    'plugins': { json },
  },
]);
```

## Recommended Editor Setup

- **VS Code** with the ESLint extension enabled.
- Add this to your `.vscode/settings.json`:

  ```json
  {
    "editor.formatOnSave": true,
    "eslint.validate": ["json", "jsonc"]
  }
  ```
npm package: @sheplu/eslint-config-markdown
Description: Opinionated ESLint rules and config for consistent, high-quality markdown documentation with zero setup.
Author: Jean Burellier
Latest version: 0.9.4

# @sheplu/eslint-config-markdown

A lightweight, opinionated ESLint configuration optimized for **Markdown** files.
This package helps you keep your Markdown clean, consistent, and free of common mistakes - especially when embedding code blocks or documenting APIs.

## Features

- Preconfigured ESLint rules for Markdown
- Zero-config: works out-of-the-box
- Supports ESLint v9 and Flat Config

## Installation

```bash
npm install --save-dev @eslint/markdown
npm install --save-dev @sheplu/eslint-config-markdown
```

## Usage

```js
import { markdownRules } from "@sheplu/eslint-config-markdown";

export default defineConfig([
  {
    'extends': [ markdownRules ],
    'files': [ '**/*.md' ],
    'language': 'markdown/gfm',
    'plugins': { markdown },
  },
]);
```

You can also import directly the configuration and only expend the markdown plugin

``` js
import markdown from '@eslint/markdown';
import { defaultMarkdownConfig } from "@sheplu/eslint-config-markdown";

export default defineConfig([
    {
        ...defaultMarkdownConfig,
        'plugins': { markdown },
    }
]);
```

This should be the equivalent of

```js
export default defineConfig([
    {
        'files': ['**/*.md'],
        'plugins': { markdown },
        'language': 'markdown/gfm',
        'extends': [markdownRules],
        'languageOptions': {
            frontmatter: 'yaml',
        },
    }
]);
```
npm package: @sheplu/eslint-config-testing-library
Description: > Opinionated ESLint configuration extending **eslint-config-testing-library**, providing a unified, high-quality linting experience for projects using Testing Library.
Author: Jean Burellier
Latest version: 0.3.5

# @sheplu/eslint-config-testing-library

> Opinionated ESLint configuration extending **eslint-config-testing-library**, providing a unified, high-quality linting experience for projects using Testing Library.

## Overview

`@sheplu/eslint-config-testing-library` delivers a consistent and opinionated set of linting rules for **Testing Library** projects.  
It extends the official [`eslint-config-testing-library`](https://github.com/testing-library/eslint-plugin-testing-library) with additional refinements that promote maintainable, readable, and reliable tests across frameworks like **React**, **Angular**, and **Svelte**.

The goal is to simplify test linting setup and provide a single, ready-to-use configuration that enforces good practices and avoids common pitfalls.

## Features

- 🔍 Extends and enhances the official Testing Library ESLint config  
- 🧠 Enforces consistent test patterns and async-safe queries  
- ⚡ Lightweight — one file, no extra dependencies  
- 🧪 Works with React, DOM, Vitest, and Jest environments  
- 💬 Helps teams write more predictable and maintainable tests
npm package: @sheplu/octolens
Description: Octolens
Author: Jean Burellier
Latest version: 0.21.3

# Octolens

**Security & Configuration Auditing for GitHub Repositories**

OctoLens is a CLI tool that scans and analyzes GitHub repositories — individually, in bulk, or across entire organizations — to produce detailed reports on:

- **Security posture** – vulnerabilities, secret leaks, insecure configurations.
- **Configuration compliance** – repository settings, governance rules, industry standards.
- **Best practices** – branch protection, workflow safety, and repository hygiene.

Whether you’re running a compliance audit, reviewing security health, or ensuring consistent configuration across teams, OctoLens delivers clear, actionable insights.

## ✨ Features

- 🔍 **Full-Org Scanning** – Audit one, multiple, or all repositories in a GitHub organization.
- 📋 **Detailed Reports** – Export findings in human-readable or machine-consumable formats (JSON, Markdown, HTML).
- 🛡 **Security Checks** – Detect risky settings, missing protections, and potential vulnerabilities.
- ⚙ **Configuration Review** – Validate settings against good practices and compliance requirements.
- 🧭 **Customizable Rules** – Extend or override checks to match your own standards.

## 🚀 Installation

```bash
# Install globally via npm
npm install -g @sheplu/octolens

# Or run via npx
npx @sheplu/octolens <command>
```

## 🔧 Environment Variables

OctoLens requires a GitHub token and the target organization to run.

- **`ORGANISATION`** – The name of the GitHub organization to scan.
- **`GITHUB_TOKEN`** – A valid GitHub Personal Access Token (classic or fine-grained) with `repo` and `read:org` permissions.

**Example:**

```bash
export ORGANISATION=my-org
export GITHUB_TOKEN=ghp_yourtokenhere
```

## 🔍 Checks Performed

- Branch Protection Rules – required reviews, status checks, force push restrictions.
- Secret Detection – scan for keys, tokens, and sensitive strings.
- Workflow Security – GitHub Actions pinned versions and allowed actions list.
- Repo Settings – visibility, forking policy, issues enabled, wiki status.
- Dependency Health – dependabot enabled, outdated dependencies.
- License & Docs – presence of license, README, and contributing guidelines.

## 📂 Output Formats

- JSON – For automation and CI pipelines.
- Markdown – For reports and documentation.
- HTML – For compliance reviews.

## 🛠 Configuration

OctoLens can be customized with a `octolens.config.json` file in your project root or home directory.

**Example:**

```json
{
  "rules": {
    "branch_protection_required_reviews": true,
    "secret_scan_enabled": true,
    "license_required": true
  },
  "output": {
    "format": "markdown",
    "file": "./reports/audit.md"
  }
}
```
npm package: @sheplu/yagi
Description: Yet Another GitHub Interface
Author: Jean Burellier
Latest version: 0.101.3

# YAGI - Yet Another GitHub Interface

**Yagi** is a modern, minimalistic, and developer-friendly toolkit to interact with the GitHub API — without the complexity of Octokit.
Built from the ground up for clarity, control, and extensibility.

> 🧪 Built for engineers, CI pipelines, and automation scripts that need GitHub done right.

---

## 🚀 Features

- 🧰 Straightforward API for common GitHub tasks
- 🔐 Supports Personal Access Tokens (PATs) out of the box
- 💡 Lightweight and dependency-free core
- 🛠️ Designed for both automation and interactive use

---

## 📦 Installation

```bash
npm install @sheplu/yagi
# or
yarn add @sheplu/yagi
```

## 🔭 Roadmap

- [ ] GitHub App support
- [ ] Webhook signature verification
- [ ] Smart pagination helpers
- [ ] Retry handling for 429/rate-limiting
- [ ] GitHub Actions helper context

## 🤝 Contributing

Contributions welcome! Open an issue, suggest a feature, or submit a pull request.

``` bash
git clone https://github.com/sheplu/yagi
cd yagi
npm install
```
npm package: @sherbst/mongoose-to-graphql
Description: Converts a Mongoose schema to its GraphQL representation.
Author: Fabio Spampinato
Latest version: 1.0.10

# Mongoose to Graphql

Converts a Mongoose schema to its GraphQL representation.

## Install

```shell
$ npm install --save mongoose-to-graphql
```

## Usage

```js
import MongooseToGraphql from 'mongoose-to-graphql';

MongooseToGraphql.type ({
  type: [String],
  required: true
}); // [String]!

MongooseToGraphql ( 'Book', {
  title: String,
  category: Number
}); // type Book {
    //   title: String
    //   category: Float
    // }
```

## API

### `MongooseToGraphQL ( ...args )`

Calls `.schema` with `...args`.

### `.schema ( name: string, schema: {} | mongoose.Schema ): string`

Converts an object or a Mongoose schema to its GraphQL string representation.

### `.model ( model: Function ): string`

Converts a Mongoose model to its GraphQL string representation.

### `.plainObject ( obj: {} ): string`

Converts a plain object to its GraphQL string representation.

### `.type ( type: any ): string`

Converts a supported type to its GraphQL string representation, or throws an error.

## Related

- [mongease](https://github.com/fabiospampinato/mongease) - Tiny wrapper around Mongoose for easier creation of schemas and models. Supports plugins.
- [mongease-graphql](https://github.com/fabiospampinato/mongease-graphql) - Mongease plugin for adding support to GraphQL schemas creation.
- [mongease-graphql-builder](https://github.com/fabiospampinato/mongease-graphql-builder) - Module for auto-generating simple GraphQL queries from Mongease descriptions.

## License

MIT © Fabio Spampinato
npm package: @sherby/eleventy-plugin-files-minifier
Description: An Eleventy plugin to automatically minify files
Author: Benjamin Rancourt
Latest version: 1.1.1

# eleventy-plugin-files-minifier

This plugin allow you to automatically **minify** files when builting with **[Eleventy](https://www.11ty.dev/)**.
It currently supports `css`, `html`, `json`, `xml`, `xsl` and `webmanifest` files.

Why should you minify your files? Simply to reduce the data transfered between your hosting servers and your visitors,
even if some of them maybe some bots.

Under the hood, this plugin use the following plugins to minify code:

- [pretty-data](https://www.npmjs.com/package/pretty-data): `css`, `json`, `xml` and `webmanifest`
- [html-minifier](https://www.npmjs.com/package/html-minifier): `html` and `xsl`

## Installation

Install the dependency with NPM:

```shell script
npm install @sherby/eleventy-plugin-files-minifier --save-dev
```

Open up your Eleventy config file (probably `.eleventy.js`) and use `addPlugin`:

```javascript
const eleventyPluginFilesMinifier = require("@sherby/eleventy-plugin-files-minifier");
module.exports = (eleventyConfig) => {
  eleventyConfig.addPlugin(eleventyPluginFilesMinifier);
};
```

## Usage

The plugin will automatically minify supported files, you don't need to do anything except the installation!

Make sure that the files you want to minify are currently written by Eleventy. If not, you can easily rename it and add
Front matter options. By example, for the `manifest.webmanifest` file, I could rename it as `manifest.webmanifest.njk`
and add the following code at his top:

```
---
eleventyExcludeFromCollections: true
permalink: /manifest.webmanifest
---
```

## Publish

Increment the `version` defined in the `package.json` file and run the command below to publish the module in the
registry:

```bash
# Dry run
npm publish --dry-run

# For real (are you really sure?)
npm publish --access public
```

## License

The [MIT License][1] (MIT)

[1]: https://opensource.org/licenses/MIT
npm package: @sherby/sherby-nested-property
Description: A Polymer 3 mixin to add functions to obtain a nested property of an object
Author: Benjamin Rancourt
Latest version: 2.0.0-rc.1

[![Published on webcomponents.org](https://img.shields.io/badge/webcomponents.org-published-blue.svg)](https://www.webcomponents.org/element/SherbyElements/sherby-nested-property)
[![Build status](https://travis-ci.org/SherbyElements/sherby-nested-property.svg?branch=master)](https://travis-ci.org/SherbyElements/sherby-nested-property)

## sherby-nested-property
A **Polymer 3** mixin to add functions to obtain a nested property of an object.

Instead of using multiples `&&` to ensure that an object have a nested value, you could use the 
`NestedPropertyMixin` to obtain the value if defined.

```javascript
const data = {
  webcomponents: {
    'polymer-3': {
      npm: true,
      modules: true,
    },
    'polymer-2': {
      bower: true,
    },
  },
};

let npm;
if (data && data.webcomponents && data.webcomponents['polymer-3'] && data.webcomponents['polymer-3'].npm) {
  npm = data.webcomponents['polymer-3'].npm;
}

// eslint-disable-next-line no-console
console.log(npm);
```

```javascript
const data = {
  webcomponents: {
    'polymer-3': {
      npm: true,
      modules: true,
    },
    'polymer-2': {
      bower: true,
    },
  },
};

const npm = this.getNestedPropertyOf(data, 'webcomponents.polymer-3.npm');

// eslint-disable-next-line no-console
console.log(npm);
```

## Installation
As Polymer 3 use npm, you must use it to install this component:

```bash
npm install @sherby/sherby--nested-property
```

For the **Polymer 2** version, use the `SherbyElements/sherby-nested-property#^v1.0.0` inside your bower.json file.

```bash
bower install SherbyElements/sherby-nested-property --save
```

## Use
Inmport the mixin 
```javascript
import { PolymerElement } from '@polymer/polymer/polymer-element.js';
import { SherbyNestedPropertyMixin } from '@sherby/sherby-nested-property/sherby-nested-property-mixin.js';

/* eslint-disable no-unused-vars */

/**
 * @customElement
 * @polymer
 * @extends {PolymerElement}
 * @appliesMixin SherbyNestedPropertyMixin
 */
class Polymer3Element extends SherbyNestedPropertyMixin(PolymerElement) {
  // Use the getNestedProperty or the getNestedPropertyOf functions
  computeData(data) {
    const npm = this.getNestedPropertyOf(data, 'webcomponents.polymer-3.npm');

    // eslint-disable-next-line no-console
    console.log(npm);
  }
}
```
npm package: @sherif-fanous/pi-atom-one
Description: Atom One themes for the Pi Coding Agent
Author: Sherif Fanous
Latest version: 0.3.0

# @sherif-fanous/pi-atom-one

Atom One themes for the Pi Coding Agent. This package provides both the dark and light Atom One flavors as installable Pi themes.

## Install

```shell
pi install npm:@sherif-fanous/pi-atom-one
```

Or try without installing

```shell
pi -e npm:@sherif-fanous/pi-atom-one
```

Then select a theme via `/settings`.

## Uninstall

```shell
pi remove npm:@sherif-fanous/pi-atom-one
```
npm package: @sherif-fanous/pi-catppuccin
Description: Catppuccin themes for the Pi Coding Agent
Author: Sherif Fanous
Latest version: 0.2.0

# @sherif-fanous/pi-catppuccin

Catppuccin themes for the Pi Coding Agent. This package provides all four official Catppuccin flavors as installable Pi themes.

## Available Themes

- 🌻 `catppuccin-latte` (light)
- 🪴 `catppuccin-frappe` (dark)
- 🌺 `catppuccin-macchiato` (dark)
- 🌿 `catppuccin-mocha` (dark)

## Install

```shell
pi install npm:@sherif-fanous/pi-catppuccin
```

Or try without installing

```shell
pi -e npm:@sherif-fanous/pi-catppuccin
```

Then select a theme via `/settings`.

## Uninstall

```shell
pi remove npm:@sherif-fanous/pi-catppuccin
```
npm package: @sherif-fanous/pi-dracula
Description: Dracula themes for the Pi Coding Agent
Author: Sherif Fanous
Latest version: 0.2.0

# @sherif-fanous/pi-dracula

Dracula themes for the Pi Coding Agent. This package provides both the Dracula and Alucard flavors as installable Pi themes.

## Install

```shell
pi install npm:@sherif-fanous/pi-dracula
```

Or try without installing

```shell
pi -e npm:@sherif-fanous/pi-dracula
```

Then select a theme via `/settings`.

## Uninstall

```shell
pi remove npm:@sherif-fanous/pi-dracula
```
npm package: @sheriff1980/n8n-nodes-comfyuirunner
Description: An n8n node to run ComfyUI workflows
Author: Sheriff1980
Latest version: 0.1.0

![Banner image](https://user-images.githubusercontent.com/10284570/173569848-c624317f-42b1-45a6-ab09-f0ea3c247648.png)

# n8n-nodes-starter

This repo contains example nodes to help you get started building your own custom integrations for [n8n](n8n.io). It includes the node linter and other dependencies.

To make your custom node available to the community, you must create it as an npm package, and [submit it to the npm registry](https://docs.npmjs.com/packages-and-modules/contributing-packages-to-the-registry).

## Prerequisites

You need the following installed on your development machine:

* [git](https://git-scm.com/downloads)
* Node.js and pnpm. Minimum version Node 18. You can find instructions on how to install both using nvm (Node Version Manager) for Linux, Mac, and WSL [here](https://github.com/nvm-sh/nvm). For Windows users, refer to Microsoft's guide to [Install NodeJS on Windows](https://docs.microsoft.com/en-us/windows/dev-environment/javascript/nodejs-on-windows).
* Install n8n with:
  ```
  pnpm install n8n -g
  ```
* Recommended: follow n8n's guide to [set up your development environment](https://docs.n8n.io/integrations/creating-nodes/build/node-development-environment/).

## Using this starter

These are the basic steps for working with the starter. For detailed guidance on creating and publishing nodes, refer to the [documentation](https://docs.n8n.io/integrations/creating-nodes/).

1. [Generate a new repository](https://github.com/n8n-io/n8n-nodes-starter/generate) from this template repository.
2. Clone your new repo:
   ```
   git clone https://github.com/<your organization>/<your-repo-name>.git
   ```
3. Run `pnpm i` to install dependencies.
4. Open the project in your editor.
5. Browse the examples in `/nodes` and `/credentials`. Modify the examples, or replace them with your own nodes.
6. Update the `package.json` to match your details.
7. Run `pnpm lint` to check for errors or `pnpm lintfix` to automatically fix errors when possible.
8. Test your node locally. Refer to [Run your node locally](https://docs.n8n.io/integrations/creating-nodes/test/run-node-locally/) for guidance.
9. Replace this README with documentation for your node. Use the [README_TEMPLATE](README_TEMPLATE.md) to get started.
10. Update the LICENSE file to use your details.
11. [Publish](https://docs.npmjs.com/packages-and-modules/contributing-packages-to-the-registry) your package to npm.

## More information

Refer to our [documentation on creating nodes](https://docs.n8n.io/integrations/creating-nodes/) for detailed information on building your own nodes.

## License

[MIT](https://github.com/n8n-io/n8n-nodes-starter/blob/master/LICENSE.md)
npm package: @sherifforg/cli
Description: The Sheriff CLI. Used to manage Sheriff-based ESLint configs.
Author: Andrea Pontrandolfo
Latest version: 10.3.0

# @sherifforg/cli

This is the package of `@sherifforg/cli`.

The Sheriff CLI is used to manage Sheriff-based ESLint configs.

[Learn more](https://www.eslint-config-sheriff.dev/docs/cli-usage).