open-index/open-npm huggingface dataset:
npm package: @soybeanjs/changelog
Description: generate changelog form git tags and commits for github
Author: Soybean
Latest version: 0.4.5

# @soybeanjs/changelog

generate changelog by git tags and commits

## Install

```bash
pnpm i -D @soybeanjs/changelog
```

## Usage

```ts
import {
  getChangelogMarkdown,
  getTotalChangelogMarkdown,
  generateChangelog,
  generateTotalChangelog
} from '@soybeanjs/changelog';

// get the changelog markdown by two git tags
getChangelogMarkdown();

// get the changelog markdown by the total git tags
getTotalChangelogMarkdown();

// generate the changelog markdown by two git tags
generateChangelog();

// generate the changelog markdown by the total git tags
generateTotalChangelog();
```
npm package: @soybeanjs/cli
Description: SoybeanJS's command line tools
Author: Soybean
Latest version: 1.7.1

# @soybeanjs/cli

SoybeanJS 的命令行工具

## 用法

### 安装

```bash
pnpm i -D @soybeanjs/cli
```

### 使用

示例：

```bash
pnpm soy -h
```

## 命令介绍

| 命令              | 作用                                                                                 |
| ----------------- | ------------------------------------------------------------------------------------ |
| help(-h)          | 查看全部命令用法                                                                     |
| git-commit        | 生成符合 Angular 规范的 git 提交信息 (在提交信息添加前缀`!`可以表示破坏性更新的提交) |
| git-commit-verify | 校验 git 的提交信息是否符合 Angular 规范                                             |
| cleanup           | 清空依赖和构建产物                                                                   |
| ncu               | 命令 npm-check-updates, 升级依赖                                                     |
| changelog         | 根据两次 tag 生成 changelog (--total: 根据所有 tag 生成 changelog)                   |
| release           | 发布：更新版本号、生成 changelog、提交代码                                           |

## 更多自定义配置

- 在项目根目录新建 soybean-config.ts

- 导入 defineConfig 函数

  ```ts
  import { defineConfig } from '@soybeanjs/cli';

  export default defineConfig({
    // options
  });
  ```

- 配置参考

  ```ts
  import type { CliOption } from '@soybeanjs/cli';
  ```
npm package: @soybeanjs/color-palette
Description: generate color palette for tailwindcss, antd, nearest color palette
Author: Soybean
Latest version: 0.2.1

# color-palette

Generate color palette for tailwindcss, antd, nearest color palette

## Usage

### install

```bash
pnpm i @soybeanjs/color-palette
```

### use

```ts
import {
  generateAntDesignPalette,
  generateNearestPalette,
  generateTailwindPalette
} from "@soybeanjs/color-palette";
```
npm package: @soybeanjs/colord
Description: A tiny yet powerful tool for high-performance color manipulations and conversions
Author: Soybean
Latest version: 0.5.0

# @soybeanjs/colord

  <strong>Colord</strong> is a tiny yet powerful tool for high-performance color manipulations and conversions. fork from [colord](https://github.com/omgovich/colord)

## Features

- 📦 **Small**: Just **1.7 KB** gzipped ([3x+ lighter](#benchmarks) than **color** and **tinycolor2**)
- 🚀 **Fast**: [3x+ faster](#benchmarks) than **color** and **tinycolor2**
- 😍 **Simple**: Chainable API and familiar patterns
- 💪 **Immutable**: No need to worry about data mutations
- 🛡 **Bulletproof**: Written in strict TypeScript and has 100% test coverage
- 🗂 **Typed**: Ships with [types included](#types)
- 🏗 **Extendable**: Built-in [plugin system](#plugins) to add new functionality
- 📚 **CSS-compliant**: Strictly follows CSS Color Level specifications
- 👫 **Works everywhere**: Supports all browsers and Node.js
- 💨 **Dependency-free**

## Differences from [colord](https://github.com/omgovich/colord)

- support `oklab` and `oklch` color models, and `oklch` is support directly without extra plugin
- support `palette` API to generate and find the nearest palette color
- more correct color parsing
- simplify type definitions
- rewrite color string parsing
- rename alpha property `a` to `alpha`

## Getting Started

```bash
pnpm i @soybeanjs/colord
```

```ts
import { colord } from '@soybeanjs/colord';

colord("#ff0000").grayscale().alpha(0.25).toRgbString(); // "rgba(128, 128, 128, 0.25)"
colord("rgb(192, 192, 192)").isLight(); // true
colord("hsl(0, 50%, 50%)").darken(0.25).toHex(); // "#602020"
colord({ r: 128, g: 128, b: 128, alpha: 0.25 }).toRgbString(); // "rgba(128, 128, 128, 0.25)"
colord('hsl(210.003, 34.547%, 98.004%)').toOklchString(); // 'oklch(98.4% 0.003 247.858)'
```

## Palette API

```ts
import { tailwindPalette, generatePalette, generateNearestPalette } from '@soybeanjs/colord/palette';

tailwindPalette.slate['500']; // 'oklch(55.4% 0.046 257.417)'
generatePalette('red'); // generate the palette of the color 'red'
generateNearestPalette('red'); // find the nearest color in the palette of the color 'red'
```

## Supported Color Models

- Hexadecimal strings (including 3, 4 and 8 digit notations)
- RGB strings and objects
- HSL strings and objects
- HSV objects
- OKLCH objects and strings
- Color names ([via plugin](#plugins))
- HWB objects and strings ([via plugin](#plugins))
- CMYK objects and strings ([via plugin](#plugins))
- LCH objects and strings ([via plugin](#plugins))
- LAB objects ([via plugin](#plugins))
- XYZ objects ([via plugin](#plugins))
- OKLAB objects ([via plugin](#plugins))


## More API

see the more api in [colord](https://github.com/omgovich/colord)
npm package: @soybeanjs/eslint-config
Description: SoybeanJS's eslint flat config presets with prettier.
Author: Soybean
Latest version: 1.7.5

# @soybeanjs/eslint-config

[English](./README.md) | 中文

**SoybeanJS 的 ESLint 扁平化配置预设，包含 prettier。**

- 默认配置支持 JavaScript 和 TypeScript。
- 支持 Vue、React、ReactNative、Solid、Svelte 和 Astro。
- 使用 ESlint 和 Prettier 格式化 HTML、CSS、LESS、SCSS、JSON、JSONC、YAML、TOML、Markdown。

## 用法

### 安装

```bash
pnpm i -D eslint typescript @soybeanjs/eslint-config
```

### ESLint 配置文件

- 在 `package.json` 中添加 [`"type": "module"`](https://nodejs.org/api/packages.html#type)

- 创建配置文件 `eslint.config.js`

- 导入配置 `@soybeanjs/eslint-config`

```js
import { defineConfig } from '@soybeanjs/eslint-config';

export default defineConfig({
  // options
});
```

> [!NOTE]
> 查看 [Options](#options) 获取更多细节。

### VSCode 中的 ESLint 设置

```json
{
  "editor.codeActionsOnSave": {
    "source.fixAll.eslint": "explicit",
    "source.organizeImports": "never"
  },
  "editor.formatOnSave": false,
  "eslint.experimental.useFlatConfig": true,
  "eslint.validate": [
    // "javascript", // 默认支持
    // "javascriptreact", // 默认支持
    // "typescript",  // 默认支持
    // "typescriptreact", // 默认支持
    // "vue", // 默认支持
    // 添加你想要检查和格式化的语言
    "svelte",
    "astro",
    "html",
    "css",
    "json",
    "jsonc",
    "yaml"
    "toml",
    "markdown"
  ],
  "prettier.enable": false
}
```

### 在package.json 中添加命令

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

## 配置

#### interface Options

````typescript
interface Options {
  /**
   * 项目根目录
   *
   * @default process.cwd()
   */
  cwd: string;
  /**
   * 被忽略的 glob
   */
  ignores: string[];
  /**
   * 覆盖的规则
   */
  overrides?: FlatConfigItem['rules'];
  /**
   * 默认的Prettier配置
   *
   * @default
   * ```json
   * {
   *   "printWidth": 120,
   *   "singleQuote": true,
   *   "trailingComma": "none",
   *   "arrowParens": "avoid",
   *   "htmlWhitespaceSensitivity": "ignore"
   * }
   * ```
   */
  prettierRules: PartialPrettierExtendedOptions;
  /**
   * 是否使用 prettierrc 进行 prettier 配置
   *
   * 如果为 true，prettierrc 中的规则将会覆盖默认规则
   *
   * @default true
   */
  usePrettierrc: boolean;

  /**
   * 格式化器
   * @default 默认支持的格式化器
   * {
   *  "html": true,
   *  "css": true,
   *  "json": true,
   * }
   */
  formatter: {
    html?: boolean;
    css?: boolean;
    json?: boolean;
    markdown?: boolean;
    yaml?: boolean;
    toml?: boolean;
  };
  vue?: VueOptions | boolean;
  react?: RuleBaseOptions | boolean;
  'react-native'?: RuleBaseOptions | boolean;
  solid?: RuleBaseOptions | boolean;
  svelte?: RuleBaseOptions | boolean;
  astro?: RuleBaseOptions | boolean;
}

type RuleBaseOptions<T = NonNullable<unknown>> = T & {
  /**
   * 需要被检测的文件
   */
  files?: string[];
};

type VueOptions = RuleBaseOptions<{
  /**
   * Vue 版本
   *
   * @default 3
   */
  version?: 2 | 3;
}>;
````

## 感谢

**灵感来自以下项目：**

- [Antfu's eslint-config](https://github.com/antfu/eslint-config)
- [Sxzz's eslint-config](https://github.com/sxzz/eslint-config)
npm package: @soybeanjs/headless
Description: SoybeanHeadless is a collection unstyled components for Vue 3. It is designed to be lightweight and easy to use.
Author: Soybean
Latest version: 0.14.0

# @soybeanjs/headless

## [English](./README.md) | 中文

[![license](https://img.shields.io/badge/license-MIT-green.svg)](./LICENSE)
[![github stars](https://img.shields.io/github/stars/soybeanjs/soybean-ui)](https://github.com/soybeanjs/soybean-ui)

一套用于 Vue 3 的无样式、可访问的 UI 组件集合。

## 📖 简介

`@soybeanjs/headless` 为 UI 组件提供了核心逻辑和可访问性功能，但不包含任何样式。它专为希望构建自己的设计系统并完全控制视觉外观的开发者而设计。

## 📦 安装

```bash
pnpm add @soybeanjs/headless
```

## 🚀 使用方法

引入组件并组合它们以构建您的 UI。

```vue
<script setup>
import {
  DialogRoot,
  DialogTrigger,
  DialogPortal,
  DialogOverlay,
  DialogContent,
  DialogTitle,
  DialogDescription,
  DialogClose
} from '@soybeanjs/headless';
</script>

<template>
  <DialogRoot>
    <DialogTrigger>Open Dialog</DialogTrigger>
    <DialogPortal>
      <DialogOverlay class="fixed inset-0 bg-black/50" />
      <DialogContent class="fixed top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 bg-white p-6 rounded-md">
        <DialogTitle>Edit profile</DialogTitle>
        <DialogDescription>Make changes to your profile here.</DialogDescription>
        <DialogClose>Save changes</DialogClose>
      </DialogContent>
    </DialogPortal>
  </DialogRoot>
</template>
```

## ✨ 特性

- **无样式**: 不包含 CSS。您可以使用自己的样式。
- **可访问性**: 处理 WAI-ARIA 角色、焦点管理和键盘导航。
- **可组合**: 组件设计为可组合使用。
- **Vue 3**: 使用 Composition API 为 Vue 3 构建。

## 📚 文档

有关完整文档和带样式的组件，请访问 [SoybeanUI 仓库](https://github.com/soybeanjs/soybean-ui)。

## 💝 致谢

- [reka-ui](https://github.com/unovue/reka-ui)
- [oku-ui](https://github.com/oku-ui/primitives)
npm package: @soybeanjs/unocss-preset
Description: soybeanjs's unocss preset
Author: Soybean
Latest version: 0.2.0

# @soybeanjs/unocss-preset

Unocss preset for Soybean

## Installation

```bash
pnpm add -D @soybeanjs/unocss-preset
```

## Usage

```ts
// uno.config.ts
import { defineConfig } from 'unocss';
import { presetSoybean } from '@soybeanjs/unocss-preset';

export default defineConfig({
  presets: [
    presetSoybean()
  ]
});
```

## Shortcuts

### Flex

| Shortcut | CSS |
| --- | --- |
| `flex-center` | `flex justify-center items-center` |
| `flex-x-center` | `flex justify-center` |
| `flex-y-center` | `flex items-center` |
| `flex-c` | `flex flex-col` |
| `flex-c-center` | `flex-center flex-col` |
| `flex-c-stretch` | `flex-c items-stretch` |
| `i-flex-center` | `inline-flex justify-center items-center` |
| `i-flex-x-center` | `inline-flex justify-center` |
| `i-flex-y-center` | `inline-flex items-center` |
| `i-flex-c` | `inline-flex flex-col` |
| `i-flex-c-center` | `i-flex-center flex-col` |
| `i-flex-c-stretch` | `i-flex-c items-stretch` |
| `flex-1-hidden` | `flex-1 overflow-hidden` |
npm package: @soybeanjs/utils
Description: A collection of useful utility functions for JavaScript and TypeScript projects of SoybeanJS.
Author: Soybean
Latest version: 0.0.5

# @soybeanjs/utils

[English](./README.en_US.md) | 简体中文

一个用于 JavaScript 和 TypeScript 项目的实用工具函数集合。

## 特性

- 🚀 轻量级且零依赖
- 📦 ESM 格式
- 🔧 完整的 TypeScript 类型支持
- 🎯 提供常用的工具函数
- 💾 浏览器存储封装

## 安装

```bash
# 使用 pnpm
pnpm add @soybeanjs/utils

# 使用 npm
npm install @soybeanjs/utils

# 使用 yarn
yarn add @soybeanjs/utils
```

## 使用方法

### 字符串工具

提供多种字符串命名格式转换函数：

```typescript
import { kebabCase, pascalCase, camelCase, snakeCase } from '@soybeanjs/utils';

// 转换为短横线命名
kebabCase('helloWorld'); // 'hello-world'

// 转换为帕斯卡命名
pascalCase('hello-world'); // 'HelloWorld'

// 转换为驼峰命名
camelCase('hello-world'); // 'helloWorld'

// 转换为蛇形命名
snakeCase('helloWorld'); // 'hello_world'
```

### 对象工具

类型安全的对象操作函数：

```typescript
import { keysOf, entriesOf, valuesOf } from '@soybeanjs/utils';

const obj = { name: 'John', age: 30 };

// 获取对象键（带类型推断）
const keys = keysOf(obj); // ('name' | 'age')[]

// 获取对象条目（带类型推断）
const entries = entriesOf(obj); // ['name' | 'age', string | number][]

// 获取对象值（带类型推断）
const values = valuesOf(obj); // (string | number)[]
```

### 存储工具

浏览器存储的类型安全封装（localStorage 和 sessionStorage）：

```typescript
import { createStorage } from '@soybeanjs/utils';

// 定义存储数据结构
interface StorageData {
  token: string;
  userInfo: {
    name: string;
    age: number;
  };
}

// 创建 localStorage 实例
const storage = createStorage<StorageData>('local', 'my-app-');

// 设置存储
storage.set('token', 'abc123');
storage.set('userInfo', { name: 'John', age: 30 });

// 获取存储
const token = storage.get('token'); // string | null
const userInfo = storage.get('userInfo'); // { name: string; age: number } | null

// 移除存储
storage.remove('token');

// 清空所有存储
storage.clear();
```

## API 文档

### 字符串工具

- `kebabCase(str: string): string` - 转换为短横线命名格式
- `pascalCase(str: string): string` - 转换为帕斯卡命名格式
- `camelCase(str: string): string` - 转换为驼峰命名格式
- `snakeCase(str: string): string` - 转换为蛇形命名格式

### 对象工具

- `keysOf<T>(record: T): (keyof T)[]` - 获取对象的键（类型安全）
- `entriesOf<T>(record: T): [keyof T, T[keyof T]][]` - 获取对象的条目（类型安全）
- `valuesOf<T>(record: T): T[keyof T][]` - 获取对象的值（类型安全）

### 存储工具

- `createStorage<T>(type: StorageType, storagePrefix: string)` - 创建类型安全的存储实例
  - `type`: `'local'` 或 `'session'`
  - `storagePrefix`: 存储键前缀
  - 返回对象包含以下方法：
    - `set<K>(key: K, value: T[K]): void` - 设置存储
    - `get<K>(key: K): T[K] | null` - 获取存储
    - `remove(key: keyof T): void` - 移除存储
    - `clear(): void` - 清空所有存储

## 开发

```bash
# 安装依赖
pnpm install

# 构建
pnpm build

# 代码检查
pnpm lint

# 类型检查
pnpm typecheck
```

## 许可证

[MIT](./LICENSE) License © 2026 [Soybean](https://github.com/soybeanjs)
npm package: @soybeanjs/vite-plugin-vue-page-route
Description: A vite plugin for vue, auto generate route info by page
Author: Soybean
Latest version: 0.0.10

# @soybeanjs/vite-plugin-vue-page-route

A Vite plugin for vue, auto generate route info by page, include route declaration, route file import, route module const.

## Usage

```ts
import { defineConfig } from 'vite';
import pageRoute from '@soybeanjs/vite-plugin-vue-page-route';

export default defineConfig({
  plugins: [pageRoute({
    pageDir: 'src/views', // default
    pageGlobs: ['**/index.{vue,tsx,jsx}', '!**/components/**'], // default
    routeDts: 'src/typings/page-route.d.ts', // default
    routeModuleDir: 'src/router/modules', // default
    routeModuleExt: 'ts', // default
    routeModuleType: 'AuthRoute.Route', // default
    /**
     * @example _builtin_login => login
     */
    routeNameTansformer: name => name.replace(/^_([a-zA-Z]|[0-9]|$)+_*/, ''), // default
    /**
     * whether the route is lazy import
     * @param name route name
     * @example
     * - the direct import
     * ```ts
     * import Home from './views/home/index.vue';
     * ```
     * - the lazy import
     * ```ts
     * const Home = import('./views/home/index.vue');
     * ```
     */
    lazyImport: _name => true, // default
    /**
     * whether generate the route module
     * @param name the route name, which is not transformed(not execute function routeNameTansformer)
     * @returns boolean
     */
    onRouteModuleGenerate: name => !name.includes('_builtin') // not generate route module for the builtin routes, but other routes will
  })]
});
```
npm package: @soybeanjs/vue-materials
Description: vue2 and vue3 components material
Author: Soybean
Latest version: 0.2.0

# @soybeanjs/vue-metarials

Vue 组件物料

## 安装

```bash
npm install @soybeanjs/vue-materials
yarn install @soybeanjs/vue-materials
pnpm install @soybeanjs/vue-materials
```

## 使用

```vue
<script setup lang="ts">
import { AdminLayout, AdminTab } from "@soybeanjs/vue-materials";
import "@soybeanjs/vue-materials/dist/style.css";
</script>

<template>
  <AdminLayout></AdminLayout>
  <AdminTab></AdminTab>
</template>
```

## AdminLayout

后台管理系统的布局组件

[预览地址]()

- 支持垂直(vertical)和水平(horizontal)两种布局模式
- 布局由头部 Header、页签 Tab、侧边栏 Sider、主体内容 Content 和底部 Footer 组成，除了主体内容 Content，其余都可以控制是否渲染
- 支持两种滚动模式：容器滚动(wrapper)和主体内容滚动(content)
- 支持主体内容 Content 全屏

### Api 用法

#### 属性

| 字段                      | 说明                                                                     | 类型                      | 默认值               |
| ------------------------- | ------------------------------------------------------------------------ | ------------------------- | -------------------- |
| mode                      | 布局模式                                                                 | [LayoutMode](#LayoutMode) | "vertical"           |
| scrollMode                | 滚动模式                                                                 | [ScrollMode](#ScrollMode) | "vertical"           |
| [scrollElId](#scrollElId) | 滚动元素的 ID, 可用于获取对应的 Dom，使其滚动                            | string                    | "**SCROLL_EL_ID**"   |
| commonClass               | 组件的通用样式类名，可控制容器、头部、页签、侧边栏、主体和底部的公共样式 | string                    | "transition-all-300" |
| fixedTop                  | 固定上面的头部和 Tab 页签部分                                            | boolean                   | true                 |
|                           |                                                                          |                           |                      |

### 说明

#### LayoutMode

```ts
/**
 * 布局模式
 * - horizontal 水平
 * - vertical 垂直
 */
type LayoutMode = "horizontal" | "vertical";
```

#### ScrollMode

```ts
/**
 * 内容溢出时的出现滚动条的方式
 * - wrapper 布局组件最外层的元素出现滚动条
 * - content 主体内容组件出现滚动条
 * @default 默认 wrapper
 */
type ScrollMode = "wrapper" | "content";
```

#### scrollElId

使用导出的默认 ID

```ts
import { SCROLL_EL_ID } from "@soybeanjs/vue-materials";
```
npm package: @soybin/mcp-aws-manager
Description: AWS operations CLI and MCP server (currently discovery-focused) for EC2 public-IP inventory and PEM-based matching
Latest version: 0.1.0

# @soybin/mcp-aws-manager

AWS operations CLI and MCP server package (currently discovery-focused).

## What It Provides

- CLI: `mcp-aws-manager`
- MCP stdio server: `mcp-aws-manager-mcp`

Current implementation focuses on:

- EC2 public IPv4 inventory discovery
- PEM fingerprint-based EC2 KeyPair matching
- Optional SSH reachability checks
- JSON/CSV output (CLI)
- MCP tool wrapper for AI clients (stdio)

## Install

```bash
npm install -g @soybin/mcp-aws-manager
```

## CLI Usage

```bash
mcp-aws-manager --pem-path /path/to/key.pem --profiles default
```

Windows PowerShell example:

```powershell
mcp-aws-manager --pem-path C:\Users\<you>\.ssh\mykey.pem --profiles default
```

## MCP (LLM Tool) Usage

Run as an MCP stdio server:

```bash
mcp-aws-manager-mcp
```

Then configure your MCP-compatible client (Claude Desktop, Cursor, Cline, etc.) to launch that command.

See `MCP_CLIENT_SETUP.md` for ready-to-copy config examples.

## Requirements

- Node.js `>=18`
- AWS credentials/profile on the machine running the CLI/MCP server
- Local PEM file path (current discovery tool is PEM-based)

## Security Notes

- Do not paste PEM contents into LLM chats.
- Pass only local file paths (`pemPath`) to the MCP tool.
- Keep AWS credentials and PEM keys on the machine running the tool.

## Compatibility Aliases

These legacy commands are also available:

- `mcp-aws-discover`
- `mcp-aws-discover-mcp`
npm package: @soydaddy/startup
Description: A package that downloads and updates projects from a repository, supporting multi-language prompts and resumable downloads.
Author: soyDaddy
Latest version: 1.0.2

# Startup Package

![Omenlist Logo](https://omenlist.xyz/img/logo.png)

A package that helps download and update projects from a repository with multi-language support, resumable downloads, and interactive prompts.

## Features

- Automatically download and update projects from a repository.
- Supports multiple languages.
- Resumable downloads if the process is interrupted.
- Interactive prompts for selecting projects and updating versions.

## Installation

To install the package, use the following command:

```bash
npm install @soydaddy/startup
```

## Usage

To start using the package, you need to add the following code to your `index.js` file:

```javascript
const Startup = require('@soydaddy/startup');

// Initialize the package with the project name, version, and language (optional)
new Startup('projectName', '1.0.0', 'en'); // Replace 'projectName' and '1.0.0' with the actual values
```

### Explanation:

- **`projectName`**: Replace this with the name of the project you want to download (e.g., `'template'`).
- **`version`**: Replace this with the version of the project you want to use.
- **`language`**: (Optional) Specify the language for the prompts (default is English, `'en'`).

After adding this to your `index.js`, you can run the project with:

```bash
npm start
```