open-index/open-npm huggingface dataset:
npm package: @huebot/cli
Description: Huebot CLI utilities
Latest version: 0.2.0

<p align="center">
  <a href="https://docs.huebot.io/" target="blank"><img src="https://github.com/huebot-iot/node/assets/8736328/95bd3ef7-ad0f-431c-8df0-abe994927e00" width="80" alt="Huebot Logo" /></a>
</p>

<p align="center">An easy-to-setup IoT framework designed to monitor and control microcontrollers via REST API</p>

![Release](https://img.shields.io/github/v/tag/huebot-iot/cli)

## Description 

The Huebot CLI is a command line interface tool setup and support the Huebot environment. Some important functionality includes, but is not limited to, installation, upgrading and admin account creation. 

## Installation

```
$ npm install -g @huebot/cli
```

## License

Huebot is [GPLv3 licensed](LICENSE).
npm package: @huegiang/is-network-error
Description: Check if a value is a Fetch network error
Author: Sindre Sorhus
Latest version: 1.1.0

# **Rebundled by RetroFixJS**

This is a rebundle of [is-network-error](https://www.npmjs.com/package/is-network-error) that provides **dual
CommonJS/ES module support**.

> **Note:** This is a transitional tool, not a long-term solution. ESM is the future, but some projects still need CJS
> compatibility.

## Original Package Information

| Info           | Link                                           |
|----------------|------------------------------------------------|
| **Package**    | https://www.npmjs.com/package/is-network-error |
| **Repository** | https://github.com/sindresorhus/is-network-error               |
| **Funding**    | https://github.com/sponsors/sindresorhus                               |

## **RetroFixJS Project**

> https://github.com/yelliver/RetroFixJS

**RetroFixJS** is an automated tool that patches, rebundles, and publishes libraries with dual module support for both
CommonJS and ESM environments.

## Usage

Use this rebundled version of `is-network-error` with npm aliases to maintain your original import paths - no code
changes needed!

Choose one of these two methods:

### Method 1: CLI Installation

```bash
# Install via CLI with an npm alias
npm install is-network-error@npm:@retrofix/is-network-error
```

### Method 2: Package.json Configuration

```json
{
  "dependencies": {
    "is-network-error": "npm:@retrofix/is-network-error@latest"
  }
}
```
npm package: @huegiang/ky
Description: Tiny and elegant HTTP client based on the Fetch API
Author: Sindre Sorhus
Latest version: 1.7.5007

# ⚠️ TESTING ONLY - NOT WORKING ⚠️

**This repository is for testing purposes only and may not function correctly.**

For a working dual ESM/CJS version, please use:

### https://www.npmjs.com/package/@retrofix/ky
npm package: @huegiang/p-retry
Description: Retry a promise-returning or async function
Author: Sindre Sorhus
Latest version: 6.2.1005
Deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.

# ⚠️ TESTING ONLY - NOT WORKING ⚠️

**This repository is for testing purposes only and may not function correctly.**

For a working dual ESM/CJS version, please use:

### https://www.npmjs.com/package/@retrofix/p-retry
npm package: @huegrid/mcp-server
Description: MCP server for HueGrid — search 1,800+ gradient presets, generate code (CSS/React/Vue/Svelte/Swift), extract colors from images, and browse the community gallery. Works with Claude, Cursor, Windsurf, and any MCP-compatible AI tool.
Latest version: 0.1.0

# @huegrid/mcp-server

MCP (Model Context Protocol) server for [HueGrid](https://huegrid.app) — search gradients, generate code, extract colors from images, and more. Works with Claude Desktop, Claude Code, Cursor, Windsurf, and any MCP-compatible AI tool.

## Features

| Tool | Description |
|------|-------------|
| `list_modes` | List all 22 gradient modes across 5 categories |
| `search_presets` | Search 1,800+ built-in presets by name, category, mode, or color |
| `browse_community` | Search community-published gradients with filters and sorting |
| `get_gradient` | Resolve a share link/token to a full gradient state |
| `generate_code` | Generate CSS, Tailwind, HTML, React, Vue, Svelte, or Swift code |
| `create_share_link` | Create a shareable HueGrid URL for any gradient |
| `describe_gradient` | Get a human-readable description of a gradient |
| `extract_colors_from_image` | Extract dominant color palette from an image |
| `create_gradient_from_image` | Create a gradient using colors from an image |

## Installation

### Claude Desktop

Add to your `claude_desktop_config.json`:

```json
{
  "mcpServers": {
    "huegrid": {
      "command": "node",
      "args": ["/path/to/packages/mcp-server/dist/index.js"]
    }
  }
}
```

### Claude Code

Add to your project's `.claude/settings.json` or global settings:

```json
{
  "mcpServers": {
    "huegrid": {
      "command": "node",
      "args": ["/path/to/packages/mcp-server/dist/index.js"]
    }
  }
}
```

## Usage Examples

### Search for gradients

> "Find me some sunset-themed aurora gradients"

The AI will use `search_presets` with `query: "sunset"` and `mode: "aurora"`.

### Generate code

> "Generate React code for the Sunset Sphere gradient"

The AI will use `search_presets` to find it, then `generate_code` with `language: "react"`.

### Create from an image

> "Create a gradient based on the colors in this photo"

The AI will use `create_gradient_from_image` to extract colors and build a gradient with a live preview link.

### Browse community

> "Show me the most popular cosmic gradients"

The AI will use `browse_community` with `mode: "cosmic"` and `sort: "popular"`.

## Configuration

| Environment Variable | Default | Description |
|---------------------|---------|-------------|
| `HUEGRID_API_URL` | `https://huegrid.app` | HueGrid API base URL |

## Development

```bash
# Install dependencies
npm install

# Build
npm run build

# Watch mode
npm run dev

# Type check
npm run typecheck
```

## Architecture

The MCP server bundles HueGrid's preset data (1,800+ presets), mode metadata, and code generators directly — no API calls needed for local operations. Community browsing and share links use HueGrid's public API (no authentication required).

Image color extraction uses `sharp` for Node.js-native image processing, porting the browser's Median Cut algorithm.
npm package: @huenei/eslint
Description: Normalizes ESLint output to make it easier to diff
Author: Huenei
Latest version: 0.0.16



<div align="center">

![Logo](https://i.postimg.cc/sgH6RJ39/logo-eslint.jpg)

# Extend ESLint Configuration

[![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](https://opensource.org/licenses/MIT) 

This guide explains how to extend an existing ESLint configuration in your project. By extending a shared or base configuration, you can standardize linting rules across multiple projects while still allowing for customizations.

</div>

## Installation

```bash
npm install @huenei/eslint
```

## Prerequisites

Ensure you have the following installed:

- **Node.js**: Version 22.6.0 or later.
- **npm** or **yarn**: For managing dependencies.
- **ESLint**: Install locally in your project:
```bash
npm install eslint --save-dev
```

---

## Usage

 ### Customize ESLint Config file

Add the extended configuration to the config file.

**eslint.config.js**

```javascript
import eslint from "@huenei/eslint"

/** @type {import('eslint').Linter.Config[]} */
export default [
    ...eslint,
]
```

### Run ESLint in your project

Add a script to your **package.json**:

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

Then run

```bash
npm run lint
```

---

## Customizing the Configuration

You can override or add specific rules or add more extensions to tailor the ESLint configuration to your project's needs. Place these overrides under the rules section in your **.eslint.config.js** file.

```javascript
import eslint from "@huenei/eslint"

/** @type {import('eslint').Linter.Config[]} */
export default [
    ...eslint,
    {
        rules: {
            indent: ["warn", 2], // Override rule
        },
    },
];
```
npm package: @huequica/native_extensions
Description: huequica's original native extension tools
Author: huequica
Latest version: 0.1.1

# node_nativeExtensions

[![CircleCI](https://circleci.com/gh/huequica/node_nativeExtensions/tree/master.svg?style=svg&circle-token=a98467058b075fbddb53cdb139a65bbfcabed87e)](https://circleci.com/gh/huequica/node_nativeExtensions/tree/master)
![NPM](https://img.shields.io/npm/l/@huequica/native_extensions?style=flat-square)

# Summary

This package is huequica's original Native Classes Extension method pack.

- **THIS PACKAGE IS NOT COMMING MAJOR RELEASE**.
  - Working is not support.

# Install

```bash
$ yarn add @huequica/native_extensions
# or npm i @huequica/native_extensions
```

# Usage

## index.ts

```ts
import '@huequica/native_extensions';
import sample from './sample';

sample();
```

## sample.ts

```ts
const sample = (): void => {
	console.log(['hoge', 'fuga', 'piyo'].lastItemIs('piyo')); // -> true
};
```
npm package: @huesion/dad-app-schematics
Description: Angular schematics package for app builder
Author: Deepak Anandrao
Latest version: 0.0.39

# DadUtilLib

This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 16.0.0.

## Code scaffolding

Run `ng generate component component-name --project dad-util-lib` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module --project dad-util-lib`.
> Note: Don't forget to add `--project dad-util-lib` or else it will be added to the default project in your `angular.json` file. 

## Build

Run `ng build dad-util-lib` to build the project. The build artifacts will be stored in the `dist/` directory.

## Publishing

After building your library with `ng build dad-util-lib`, go to the dist folder `cd dist/dad-util-lib` and run `npm publish`.

## Running unit tests

Run `ng test dad-util-lib` to execute the unit tests via [Karma](https://karma-runner.github.io).

## Further help

To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.io/cli) page.
npm package: @hueycolor/vue
Description: Composable color picker components for Vue
Author: Eihab Khan
Latest version: 0.0.1-beta.4

# Vue 3 + TypeScript + Vite

This template should help get you started developing with Vue 3 and TypeScript in Vite. The template uses Vue 3 `<script setup>` SFCs, check out the [script setup docs](https://v3.vuejs.org/api/sfc-script-setup.html#sfc-script-setup) to learn more.

Learn more about the recommended Project Setup and IDE Support in the [Vue Docs TypeScript Guide](https://vuejs.org/guide/typescript/overview.html#project-setup).
npm package: @hueyy/gatsby-source-goodreads
Description: Get your shelved books in Goodreads for use in Gatsby.
Author: Huey
Latest version: 0.5.0

# gatsby-source-goodreads

[Forked from DanielOliver/gatsby-source-goodreads](https://github.com/DanielOliver/gatsby-source-goodreads)

Source plugin for pulling your shelved books into Gatsby from Goodreads API.

* Supports private Goodreads profiles.
* Supports fetching multiple shelves

```bash
npm i @hueyy/gatsby-source-goodreads
```

## How to use

```javascript
// In your gatsby-config.js
module.exports = {
  plugins: [
    {
      resolve: "gatsby-source-goodreads",
      options: {
        apiKey: "",
        apiSecret: "",
        oauthToken: "",
        oauthSecret: "",
        userId: "",
        shelf: ["to-read", "currently-reading"] // optional, defaults to currently-reading
      }
    }
  ],
}
```

## Plugin options

Get your `apiKey` and `apiSecret` from [Goodreads](https://www.goodreads.com/api/keys).

Your `userId` is the string of numbers in the URL of your profile page. For instance, if you're Jeffrey Keeten and your Goodreads profile page is [https://www.goodreads.com/user/show/3427339-jeffrey-keeten](https://www.goodreads.com/user/show/3427339-jeffrey-keeten), then your `userId` is `3427339`.

Leave `oauthToken` and `oauthSecret` blank and run `gatsby develop`. An `oauthToken` and `oauthSecret` will be printed to the console, together with an authorisation URL. Open that in your web browser, and allow your Goodreads app access to your account. Then, copy the `oauthToken` and `oauthSecret` into the plugin options, and run `gatsby develop` again.

## How to query your Goodread data using GraphQL

Below is a sample query for fetching the shelf's books.

```graphql
query goodRead {
  goodreadsShelf {
    id
    shelfName
    reviews {
      reviewID
      rating
      votes
      spoilerFlag
      spolersState
      dateAdded
      dateUpdated
      readAt
      startedAt
      body
      book {
        bookID
        isbn
        isbn13
        textReviewsCount
        uri
        link
        title
        titleWithoutSeries
        imageUrl
        smallImageUrl
        largeImageUrl
        description
      }
    }
  }
}
```
npm package: @hueyy/kenobi
Description: looks for broken links in tweets
Author: Huey Lee
Latest version: 1.0.3

# Kenobi

_These aren't the links you're looking for_

Kenobi looks for expired domains in the tweets from a given Twitter account.

Get a [Bearer Token from Twitter](https://developer.twitter.com).

```bash

export TWITTER_BEARER_TOKEN="yourtoken"
npx @hueyy/kenobi github

```
npm package: @hufe921/canvas-editor-plugin-barcode
Description: barcode plugin for canvas-editor
Author: Hufe
Latest version: 0.0.1

<h1 align="center">canvas-editor-plugin-barcode</h1>

<p align="center">barcode plugin for canvas-editor</p>

## usage

```bash
npm i @hufe921/canvas-editor-plugin-barcode --save
```

```javascript
import Editor from "@hufe921/canvas-editor"
import barcodePlugin from "@hufe921/canvas-editor-plugin-barcode"

const instance = new Editor()
instance.use(barcodePlugin)

instance.executeInsertBarcode1D(
  content: string,
  width: number,
  height: number,
  options?: JsBarcode.Options
)

instance.executeInsertBarcode2D(
  content: string,
  width: number,
  height: number,
  hints?: Map<EncodeHintType, any>
)
```
npm package: @hufe921/canvas-editor-plugin-barcode1d
Description: barcode1d plugin for canvas-editor
Author: Hufe
Latest version: 0.0.3

<h1 align="center">canvas-editor-plugin-barcode1d</h1>

<p align="center">barcode1d plugin for canvas-editor</p>

## usage

```bash
npm i @hufe921/canvas-editor-plugin-barcode1d --save
```

```javascript
import Editor from "@hufe921/canvas-editor"
import barcode1DPlugin from "@hufe921/canvas-editor-plugin-barcode1d"

const instance = new Editor()
instance.use(barcode1DPlugin)

instance.executeInsertBarcode1D(
  content: string,
  width: number,
  height: number,
  options?: JsBarcode.Options
)
```
npm package: @hufe921/canvas-editor-plugin-barcode2d
Description: barcode2d plugin for canvas-editor
Author: Hufe
Latest version: 0.0.4

<h1 align="center">canvas-editor-plugin-barcode2d</h1>

<p align="center">barcode2d plugin for canvas-editor</p>

## usage

```bash
npm i @hufe921/canvas-editor-plugin-barcode2d --save
```

```javascript
import Editor from "@hufe921/canvas-editor"
import barcode2DPlugin from "@hufe921/canvas-editor-plugin-barcode2d"

const instance = new Editor()
instance.use(barcode2DPlugin, options?: IBarcode2DOption)

instance.executeInsertBarcode2D(
  content: string,
  width: number,
  height: number,
  hints?: Map<EncodeHintType, any>
)
```
npm package: @hufe921/canvas-editor-plugin-case
Description: uppercase and lowercase plugin for canvas-editor
Author: Hufe
Latest version: 0.0.1

<h1 align="center">canvas-editor-plugin-case</h1>

<p align="center">uppercase and lowercase plugin for canvas-editor</p>

## usage

```bash
npm i @hufe921/canvas-editor-plugin-case --save
```

```javascript
import Editor from '@hufe921/canvas-editor'
import casePlugin from '@hufe921/canvas-editor-plugin-case'

const instance = new Editor()
instance.use(casePlugin)

command.executeUpperCase()

command.executeLowerCase()
```
npm package: @hufe921/canvas-editor-plugin-codeblock
Description: codeblock plugin for canvas-editor
Author: Hufe
Latest version: 0.0.2

<h1 align="center">canvas-editor-plugin-codeblock</h1>

<p align="center">codeblock plugin for canvas-editor</p>

## usage

```bash
npm i @hufe921/canvas-editor-plugin-codeblock --save
```

```javascript
import Editor from "@hufe921/canvas-editor"
import codeblockPlugin from "@hufe921/canvas-editor-plugin-codeblock"

const instance = new Editor()
instance.use(codeblockPlugin)

instance.executeInsertCodeblock(content: string)
```
npm package: @hufe921/canvas-editor-plugin-diagram
Description: diagram plugin for canvas-editor
Author: Hufe
Latest version: 0.0.2

<h1 align="center">canvas-editor-plugin-diagram</h1>

<p align="center">diagram plugin for canvas-editor</p>

## usage

```bash
npm i @hufe921/canvas-editor-plugin-diagram --save
```

```javascript
import Editor from '@hufe921/canvas-editor'
import diagramPlugin from '@hufe921/canvas-editor-plugin-diagram'

const instance = new Editor()
instance.use(diagramPlugin)

command.executeLoadDiagram({
  lang?: Lang
  data?: string
  onDestroy?: (message?: any) => void
})
```
npm package: @hufe921/canvas-editor-plugin-docx
Description: docx plugin for canvas-editor
Author: Hufe
Latest version: 0.0.5

<h1 align="center">canvas-editor-plugin-docx</h1>

<p align="center">docx plugin for canvas-editor</p>

## usage

```bash
npm i @hufe921/canvas-editor-plugin-docx --save
```

```javascript
import Editor from '@hufe921/canvas-editor'
import docxPlugin from '@hufe921/canvas-editor-plugin-docx'

const instance = new Editor()
instance.use(docxPlugin)

instance.executeExportDocx({
  fileName: string
})
```
npm package: @hufe921/canvas-editor-plugin-excel
Description: excel plugin for canvas-editor
Author: Hufe
Latest version: 0.0.1

<h1 align="center">canvas-editor-plugin-excel</h1>

<p align="center">excel plugin for canvas-editor</p>

## usage

```bash
npm i @hufe921/canvas-editor-plugin-excel --save
```

```javascript
import Editor from '@hufe921/canvas-editor'
import excelPlugin from '@hufe921/canvas-editor-plugin-excel'

const instance = new Editor()
instance.use(excelPlugin)

command.executeImportExcel({
  arrayBuffer: buffer
})
```
npm package: @hufe921/canvas-editor-plugin-floating-toolbar
Description: floating toolbar plugin for canvas-editor
Author: Hufe
Latest version: 0.0.4

<h1 align="center">canvas-editor-plugin-floating-toolbar</h1>

<p align="center">floating toolbar plugin for canvas-editor</p>

## usage

```bash
npm i @hufe921/canvas-editor-plugin-floating-toolbar --save
```

```javascript
import Editor from '@hufe921/canvas-editor'
import floatingToolbarPlugin from '@hufe921/canvas-editor-plugin-floating-toolbar'

const instance = new Editor()
instance.use(floatingToolbarPlugin)
```
npm package: @hufe921/canvas-editor-plugin-menstrual-history
Description: menstrual history plugin for canvas-editor
Author: Hufe
Latest version: 0.0.1

# @hufe921/canvas-editor-plugin-menstrual-history

canvas-editor 月经史医学公式插件

## 安装

```bash
npm install @hufe921/canvas-editor-plugin-menstrual-history
```

## 使用

```typescript
import Editor from '@hufe921/canvas-editor'
import menstrualHistoryPlugin from '@hufe921/canvas-editor-plugin-menstrual-history'

const instance = new Editor(container, {
  main: []
})

instance.use(menstrualHistoryPlugin)

// 固定的显示高度
const DISPLAY_HEIGHT = 30

// 注册右键菜单
instance.register.contextMenuList([
  {
    name: '插入月经史',
    when: payload => {
      return !payload.isReadonly && payload.editorTextFocus
    },
    callback: command => {
      command.executeLoadMenstrualHistory({
        onConfirm: result => {
          const { svg, width, height, ...data } = result
          // 根据固定高度等比例计算宽度
          const displayWidth = Math.round((width / height) * DISPLAY_HEIGHT)
          command.executeInsertElementList([
            {
              type: ElementType.IMAGE,
              width: displayWidth,
              height: DISPLAY_HEIGHT,
              value: svg,
              extension: {
                name: 'menstrualHistory',
                data
              }
            }
          ])
        }
      })
    }
  },
  {
    name: '编辑月经史',
    when: payload => {
      const extension = payload.startElement?.extension as any
      return (
        !payload.isReadonly &&
        payload.editorTextFocus &&
        extension?.name === 'menstrualHistory'
      )
    },
    callback: (command, context) => {
      const extension = context.startElement?.extension as any
      const data = extension?.data

      command.executeLoadMenstrualHistory({
        data,
        onConfirm: result => {
          const { svg, width, height, ...newData } = result
          // 根据固定高度等比例计算宽度
          const displayWidth = Math.round((width / height) * DISPLAY_HEIGHT)
          command.executeUpdateElementById({
            id: context.startElement!.id!,
            properties: {
              width: displayWidth,
              height: DISPLAY_HEIGHT,
              value: svg,
              extension: {
                name: 'menstrualHistory',
                data: newData
              }
            }
          })
        }
      })
    }
  }
])
```

## 数据结构

```typescript
interface IMenstrualHistoryData {
  /** 初潮年龄 */
  menarcheAge: string
  /** 行经期天数 */
  menstrualDuration: string
  /** 月经周期天数 */
  menstrualCycle: string
  /** 末次月经时间 */
  lastMenstrualPeriod: string
}

interface IMenstrualHistoryOption {
  /** 初始数据（用于二次编辑） */
  data?: IMenstrualHistoryData
  /** 弹窗关闭回调，返回SVG和实际宽高 */
  onConfirm?: (
    data: IMenstrualHistoryData & {
      svg: string
      width: number
      height: number
    }
  ) => void
  /** 弹窗取消回调 */
  onCancel?: () => void
}
```

## 公式格式

月经史公式格式：

```
        经期天数
初潮年龄 ─────── 末次月经日期
        周期天数
```

示例：

```
      4-5
14 ─────── 2024.03.15
     28-30
```
npm package: @hufe921/canvas-editor-plugin-special-characters
Description: special characters plugin for canvas-editor
Author: Hufe
Latest version: 0.0.3

<h1 align="center">canvas-editor-plugin-special-characters</h1>

<p align="center">special characters plugin for canvas-editor</p>

## usage

```bash
npm i @hufe921/canvas-editor-plugin-special-characters --save
```

```javascript
import Editor from '@hufe921/canvas-editor'
import specialCharactersPlugin from '@hufe921/canvas-editor-plugin-special-characters'

const instance = new Editor()
instance.use(specialCharactersPlugin)

// 打开字符选择弹窗
instance.command.executeOpenSpecialCharactersDialog()

// 使用自定义配置
instance.use(specialCharactersPlugin, {
  characters: [
    {
      name: '自定义分组',
      characters: [
        { char: '★', name: '五角星' },
        { char: '☆', name: '空心五角星' }
      ]
    }
  ],
  onSelect: (char) => {
    console.log('Selected:', char)
  }
})
```
npm package: @hufeng/go.js
Description: let es6 async/await error handler like go
Author: hufeng
Latest version: 1.0.1

# go.js

let es6 async/await error handler like go

## install

```sh
yarn add go.js
```

## why?

统一 promise 的错误处理机制
在使用 async/await 的过程中，对于错误的处理，通常第一选择是 try/catch,
但是常常会出现 nested try/catch，代码就不会那么优雅
针对异常或者异常的处理有很多方式，命令式的 try/catch, 函数式的 Optional, Either
还比如 go 的多返回值，
f, err := os.Open("filename.ext")
if err != nil {
log.Fatal(err)
}
虽然 verbose 但是足够简单，规则统一

所以在这里对 promise 的错误处理进行值的统一包装，以此来简化

## usage?

```typescript
function test() {
  return new Promise((resolve, reject) => {
    setTimeout(() => {
      resolve('hello');
      //reject(new Error('error'))
    }, 200);
  });
}

(async () => {
  const { res, err } = await to(test());
  console.log(res); // hello
  console.log(err); //Error('error')

  ({ res, err } = await to(test()));
  console.log(res); // hello
  console.log(err); //Error('error')
})();
```