open-index/open-npm huggingface dataset:
npm package: @lee6583/vikingship
Description: React components library
Author: Viking Zhang
Latest version: 1.0.4

## Vikingship component library
## 使用 React+typescript 从零到一打造一套你自己的组件库

[![Build Status](https://travis-ci.com/vikingmute/vikingship.svg?token=mHoDqxyxXWX5BSpu8L9y&branch=master)](https://travis-ci.com/vikingmute/vikingship)

vikingship 是为慕课网打造的一套教学组件库，使用 React Hooks 和 typescript
意在让大家从零到一，由浅入深的提高自己的 React 和 typescript 水平，它的官网地址是
[vikingship.xyz](http://vikingship.xyz)


### 安装最后已经发布的组件库来试试

~~~javascript
npm install vikingship --save
~~~

### 使用

~~~javascript
// 加载样式
import 'vikingship/dist/index.css'
// 引入组件
import { Button } from 'vikingship'
~~~

### 课程亮点

* 🔥typescript with React Hooks
* 💧渐进式的教学过程，很多章后面都有扩展作业，引导同学们深入学习和掌握知识
* ⛑️使用 react-testing-library 完成单元测试
* 📚使用 storybook 本地调试和生成文档页面
* 📚使用 react-doc-gen 自动生成文档
* 📦使用第三方库扩充组件-(react-fontawesome, react-transition-group)
* 🌹样式（Sass）文件从零开始，掌握大型应用的 CSS 组织方法
* 🎉涉及全部流程，包括最后的 npm publish，husky提交发布前验证，travis CI/CD 集成，发布文档站点等

### 一些本地开发命令

~~~bash
//启动本地环境
npm run stroybook

//跑单元测试
npm test

//build可发布静态文件
npm run build

//发布到 npm
npm run publish
~~~
npm package: @lee_0527/repo-git-switcher
Description: 安全的多仓库Git分支切换工具 - 不影响远端
Author: Lee
Latest version: 1.1.1

# @lee_0527/repo-git-switcher

安全的多仓库Git分支切换工具 - 不影响远端

## 功能特性

- 🔒 **安全第一**: 所有操作仅限于本地，不会创建或推送远端分支
- 🚀 **批量操作**: 一键切换多个Git仓库的分支
- 🎯 **智能过滤**: 支持模式匹配，只处理指定项目
- 📊 **状态监控**: 实时显示操作进度和结果统计
- 🔧 **多种模式**: 支持创建分支、强制切换、拉取更新等

## 安装

```bash
npm install -g @lee_0527/repo-git-switcher
```

或本地安装：

```bash
npm install @lee_0527/repo-git-switcher
```

## 使用方法

### 基本命令

```bash
# 显示帮助信息
git-up --help

# 显示版本号
git-up --version
```

### 切换分支

```bash
# 切换到develop分支
git-up switch develop

# 切换到新分支，不存在则创建
git-up sw feature/new-feature -c

# 切换到main分支并拉取代码
git-up switch main -p

# 强制切换到hotfix分支（丢弃本地修改）
git-up switch hotfix -f

# 只处理匹配service-*的项目
git-up switch develop -m "service-*"

# 指定自定义目录
git-up switch develop -d "./my-packages"

# 智能分支选择：当分支不存在时，会提示选择其他可用分支
git-up switch nonexistent-branch
```

### 查看状态

```bash
# 列出所有仓库状态
git-up list

# 列出匹配模式的项目状态
git-up ls -m "service-*"

# 显示分支状态概览
git-up status
```

## 选项说明

### 切换分支选项

- `-d, --directory <dir>`: 指定包含Git仓库的目录（默认: `./packages`）
- `-c, --create`: 如果分支不存在则创建（仅本地）
- `-p, --pull`: 切换后拉取最新代码（只读操作）
- `-f, --force`: 强制切换（丢弃本地修改，不影响远端）
- `-m, --match <pattern>`: 只处理匹配指定模式的项目目录
- `--no-color`: 禁用颜色输出

### 列表/状态选项

- `-d, --directory <dir>`: 指定包含Git仓库的目录（默认: `./packages`）
- `-m, --match <pattern>`: 只处理匹配指定模式的项目目录
- `--no-color`: 禁用颜色输出

## 安全原则

✅ **不会创建或推送远端分支**  
✅ **不会向远端提交任何内容**  
✅ **所有操作仅限于本地**  
✅ **强制切换仅影响本地工作区**  
✅ **拉取操作为只读模式**

## 项目结构

```
switch-cli/
├── bin/
│   └── msg.js              # CLI入口文件 (git-up命令)
├── lib/
│   ├── cli.js              # 命令行界面
│   ├── core.js             # 核心业务逻辑
│   ├── utils.js            # 工具函数
│   └── validator.js        # 参数验证
├── package.json
└── README.md
```

## 技术栈

- **Commander**: 命令行界面框架
- **Chalk**: 终端颜色输出
- **Inquirer**: 交互式命令行界面
- **fs-extra**: 增强的文件系统操作
- **Ora**: 终端加载动画

## 开发

```bash
# 安装依赖
npm install

# 运行CLI
git-up --help
```

## 许可证

MIT License

## 作者

Lee
npm package: @leeallen/ts-boilerplate
Description: My standard boilerplate for Typescript package development or random prototyping.
Author: Terry Lee Allen, Jr
Latest version: 1.0.1

# leeallen/ts-boilerplate
___

<img src="https://img.shields.io/github/actions/workflow/status/TerryLeeAllenJr/ts-boilerplate/tests.yml"/>
<img src="https://img.shields.io/nycrc/TerryLeeAllenJr/ts-boilerplate?config=.nycrc&preferredThreshold=lines"/>
<img src="https://img.shields.io/snyk/vulnerabilities/github/TerryLeeAllenJr/ts-boilerplate"/>
<img src="https://img.shields.io/github/license/TerryLeeAllenJr/ts-boilerplate"/>
npm package: @leeat/echo-editor
Description: A modern AI-powered WYSIWYG and Highly Customized RichTextEditor for Vue, based on Tiptap and shadcn-vue
Author: 1036232425@qq.com
Latest version: 0.6.10

# Echo Editor

一款基于 [tiptap](https://tiptap.dev) 和 [shadcn-vue](https://www.shadcn-vue.com/) 的新一代 AI 富文本编辑器。

[![MIT 许可证](https://img.shields.io/badge/License-MIT-green.svg)](https://choosealicense.com/licenses/mit/)
[![](https://img.shields.io/npm/v/echo-editor.svg?label=version)](https://www.npmjs.com/package/echo-editor)
[![](https://img.shields.io/npm/dependency-version/echo-editor/peer/vue?color=vue)](https://www.npmjs.com/package/echo-editor)

[English](./README.md) | 中文

![应用截图](./screenshot/screenshot.png)

## 在线演示

[查看演示](https://echo-editor.jzcloud.site/)

## 特性

- 🎨 使用 [shadcn-vue](https://www.shadcn-vue.com/) 精美组件
- ✨ AI 智能写作辅助
- 📝 支持 Markdown 及实时预览
- 🔤 丰富的文本格式化功能（标题、列表、引用等）
- 📊 表格和代码块支持
- 🎯 自定义字体大小和样式
- 📄 支持导入 Word 文档
- 🌍 国际化支持（`en`、`zhHans`）
- 🧩 可扩展架构 - 支持自定义扩展
- 🎭 TypeScript 支持
- 🎨 Tailwind CSS 支持

## 安装

```bash
npm install echo-editor
# 或
pnpm install echo-editor
# 或
yarn add echo-editor
```

## 使用方法

### 方式一：全局注册

```ts
// main.ts
import { createApp } from 'vue'
import App from './App.vue'
import EchoEditor from 'echo-editor'
import 'echo-editor/style.css'

const app = createApp(App)
app.use(EchoEditor)
app.mount('#app')
```

```ts
<script setup>
import { BaseKit } from 'echo-editor'

const content = ref('')
const extensions = [
  BaseKit.configure({
    placeholder: {
      placeholder: '开始写作...',
    },
  }),
]
</script>

<template>
  <echo-editor :extensions="extensions" v-model="content" />
</template>
```

### 方式二：直接使用

```ts
<script setup>
import { EchoEditor, BaseKit } from 'echo-editor'
import 'echo-editor/style.css'

const content = ref('')
const extensions = [
  BaseKit.configure({
    placeholder: {
      placeholder: '开始写作...',
    },
  }),
]
</script>

<template>
  <echo-editor :extensions="extensions" v-model="content" />
</template>
```

## 开发

1. 安装 [pnpm](https://pnpm.io/installation)
2. 克隆仓库
3. 运行 `pnpm install`
4. 使用 `pnpm dev` 启动开发服务器

测试构建版本：

```bash
pnpm examples
```

## 贡献

欢迎提交 Pull Request 来帮助改进项目！

## 相关项目

- [shadcn-vue](https://www.shadcn-vue.com/)
- [tiptap](https://tiptap.dev)
- [iconify](https://icon-sets.iconify.design)

## 许可证

[MIT](https://choosealicense.com/licenses/mit/)
npm package: @leebmann24/prettier-configuration
Description: Leebmann Prettier Configuration
Author: Bernhard Schönberger
Latest version: 1.0.3

# Leebmann24
##### NodeJS codestyle ruleset for _**prettier**_

<br />

### Installation

<br />

##### if you are using npm:

`npm install @leebmann24/prettier-configuration`

##### if you are using yarn:

`yarn add @leebmann24/prettier-configuration`

<br />

##### add configuration to package.json:
```javascript
{
    ...

  "prettier": "@leebmann24/prettier-configuration",
    ...
}
```

<br />

done 👍
npm package: @leebmann24/recursive-yaml-loader
Description: recursively loads yaml files from a given folder and it's subfolders. After that it merges everything into a single json object which will be returned.
Author: Bernhard Schönberger
Latest version: 1.1.2


# @leebmann24/recursive-yaml-loader

loads yaml files recursively from a given folder. properties are grouped by it's filename (without extension) or foldername 
With this tool you are able to split up your configuration yamls into several files for clearity and maintainability.

<br />
<br />

### install

```shell
$ npm install @leebmann24/recursive-yaml-loader

or

$ yarn add @leebmann24/recursive-yaml-loader
```


<br />
<br />

### example

``` typescript

import loader from '@leebmann24/recursive-yaml-loader'

interface Config {
    file1: {
        property1: string
        list: string[]
    }
    
    aFolder: {
        file: string[]
    }
    
}


const config = loader.load('path/to/config/folder') as Config
```
<br />
<br />


### parent/child combination
a file with the same name as the folder in which it's in will be merged into its "parent"

- *propXY* (folder) 
  - *propXY.yml* (will NOT be encapsulated)
    - hello: "world"
  - *anotherProp.yml* (will be encapsulated)
    - abc: "xyz"
  


```JSON
{
    "propXY": {
        "hello": "world",
        "anotherProp": {
            "abc": "xyz"
        }
    }
}
 ```
npm package: @leecervan/markdown-it-katex
Description: A markdown plugin with KaTeX
Author: 1041214157@qq.com
Latest version: 1.0.1

## Feature

+ [markdown-it-katex](https://github.com/waylonflinn/markdown-it-katex) 存在少许问题（无法完整支持一些 Katex 语法）
npm package: @leecmm/lyui
Description: A library of react components
Author: Liyang
Latest version: 1.0.9

This project was bootstrapped with [Create React App](https://github.com/facebook/create-react-app).

## Available Scripts

In the project directory, you can run:

### `yarn start`

Runs the app in the development mode.<br />
Open [http://localhost:3000](http://localhost:3000) to view it in the browser.

The page will reload if you make edits.<br />
You will also see any lint errors in the console.

### `yarn test`

Launches the test runner in the interactive watch mode.<br />
See the section about [running tests](https://facebook.github.io/create-react-app/docs/running-tests) for more information.

### `yarn build`

Builds the app for production to the `build` folder.<br />
It correctly bundles React in production mode and optimizes the build for the best performance.

The build is minified and the filenames include the hashes.<br />
Your app is ready to be deployed!

See the section about [deployment](https://facebook.github.io/create-react-app/docs/deployment) for more information.

### `yarn eject`

**Note: this is a one-way operation. Once you `eject`, you can’t go back!**

If you aren’t satisfied with the build tool and configuration choices, you can `eject` at any time. This command will remove the single build dependency from your project.

Instead, it will copy all the configuration files and the transitive dependencies (webpack, Babel, ESLint, etc) right into your project so you have full control over them. All of the commands except `eject` will still work, but they will point to the copied scripts so you can tweak them. At this point you’re on your own.

You don’t have to ever use `eject`. The curated feature set is suitable for small and middle deployments, and you shouldn’t feel obligated to use this feature. However we understand that this tool wouldn’t be useful if you couldn’t customize it when you are ready for it.

## Learn More

You can learn more in the [Create React App documentation](https://facebook.github.io/create-react-app/docs/getting-started).

To learn React, check out the [React documentation](https://reactjs.org/).
npm package: @leeda2217/smart-image
Description: An image element that automatically recovers a failed image on an unstable network using a custom element.
Latest version: 1.0.1

# smart-image
An image element that automatically recovers a failed image on an unstable network using a custom element.

# How to use
## import
``` javascript
import 'smart-image'

```
## attributes
- src: image resource
- fit: same as object-fit (Optional)
- position: same as object-position (Optional)
- lazy: start loading when the image is inside the viewport (Optional)

``` html
<smart-image fit="cover" position="center" src="https://avatars.githubusercontent.com/u/80738866?v=4"/>
```
# Lazy Loading
``` html
<smart-image fit="cover" position="center" src="https://avatars.githubusercontent.com/u/80738866?v=4" lazy />
```
npm package: @leede/mongodb-migrate
Description: Tool to migrate MongoDB data from one server to another without downtime
Author: Leede
Latest version: 0.0.2

# mongodb-migrate

`mongodb-migrate` is a tool to migrate MongoDB data from one server to another without downtime using change streams. It works by executing
a `mongodump` on the source database followed by a `mongorestore` on the destination database and then synchronizing further document insertions, updates,
replacements and deletions. The watcher is set up before the initial execution `mongodump` so no changes will go missing.

Caveats:

- change streams are only available for replica sets and sharded clusters (note that a standalone `mongod` instance can be converted to a replica set)
- the tool uses `mongodump` and `mongorestore` executables which must be available in the system path
- the tool only synchronizes one database, if you want to migrate multiple databases then run the tool multiple times in parallel or sequentially
- collection indexes are synchronized after the intial `mongorestore` but indexes created in the source database afterwards are not synchronized

## Usage

Install globally

```
npm i -g @leede/mongodb-migrate
```

The package provides a `mongodb-migrate` executable:

```
usage: mongodb-migrate [-h] -s SRC -d DST [-e EXCLUDE] [-w EXCLUDEWATCH]

MongoDB migration tool

optional arguments:
  -h, --help            show this help message and exit
  -s SRC, --src SRC     Source database uri, must include database name
  -d DST, --dst DST     Destination database uri, must include database name
  -e EXCLUDE, --exclude EXCLUDE
                        Exclude collections, separate collection names with comma to exclude multiple collections
  -w EXCLUDEWATCH, --excludeWatch EXCLUDEWATCH
                        Exclude collections from being watched for changes - only a snapshot for these will be copied and further changes
                        will not be synchronized, separate collection names with comma to exclude multiple collections
```

Example (note that specifying a database name is mandatory in both the src and dst connection uris):

```
mongodb-migrate --src mongodb://user:pass@some-mongodb-server/mydb --dst mongodb://user2:pass2@another-mongodb-server/mynewdb
```

Migration steps:

1. Run `mongodb-migrate`
2. Wait until the intial `mongorestore` is completed
3. Change MongoDB connection uri in all your applications
4. Watch the output of the tool until it reports that no more changes are being made in the source database
5. Use Ctrl+C to stop `mongodb-migrate` when no more changes are anticipated in the source database
npm package: @leede/webrtc-client
Description: WebRTC client library for connecting to @leede/webrtc-server
Author: Leede
Latest version: 1.0.0

# WebRTC Client

This package provides the client-side library for connecting to an instance of the server provided in the `@leede/webrtc-server` package. The client can be used in a browser as well as in a Node.js context.

Check out the [live demo](https://webrtc-server-client.leede.ee/demo/) or the [documentation](https://webrtc-server-client.leede.ee/docs/).

## Client installation

### Using a bundler such as webpack or browserify

When using a bundler such as webpack or browserify then import `WebRTCClient` from the `@leede/webrtc-client` package.

```sh
npm install @leede/webrtc-server
```

```ts
import { WebRTCClient } from "@leede/webrtc-client";
```

### Using bundled script to use the client on a webpage globally

The client can also be used by downloading `leede-webrtc-client-*.js` from the [releases listing](https://webrtc-server-client.leede.ee/releases/) and including the script on a webpage. The script defines a global `leede` namespace wherein the `WebRTCClient` class is available.

```html
<script src="leede-webrtc-client.js"></script>
<script>
  const client = new leede.WebRTCClient("ws://localhost:8000");
</script>
```

### Using the client in Node.js

The client can also be used in a Node.js context by providing some global variables from `ws` and `wrtc` packages.

```sh
npm install ws wrtc @leede/webrtc-server
```

```ts
const ws = require("ws");
const wrtc = require("wrtc");

global.WebSocket = ws.WebSocket;
global.RTCPeerConnection = wrtc.RTCPeerConnection;
global.RTCSessionDescription = wrtc.RTCSessionDescription;

// WebRTCClient can now be imported and used
import { WebRTCClient } from "@leede/webrtc-client";
```

## Basic client usage example

```ts
import { WebRTCClient } from "@leede/webrtc-client";

const client = new WebRTCClient("ws://localhost:8000");

client.on("open", () => {
  console.log("[CLIENT] Connected");

  // Send reliable TCP messages
  client.sendR("Hello from client over TCP");
  client.sendR(new Float32Array([1.0, 3.14]).buffer);

  // Send unreliable UDP messages
  client.sendU("Hello from client over UDP");
  client.sendU(Buffer.from([0, 1, 1, 2, 3, 5, 8, 13, 21, 34]));
});

// Handle string messages from server
client.on("message", (message) => {
  console.log("[CLIENT] Received message:", message);
});

// Handle binary messages from server
client.on("binary", (buffer) => {
  console.log("[CLIENT] Received buffer:", buffer);
});
```

For detailed usage, see the [client documentation](https://webrtc-server-client.leede.ee/docs/modules/_leede_webrtc_client.html).
npm package: @leede/webrtc-server
Description: Central peer server for WebRTC connections for reliable and unreliable messaging
Author: Leede
Latest version: 1.0.0

# WebRTC Server

The package provides a Node.js server that acts as a central peer for WebRTC connections. This is beneficial in use-cases where the reliable and ordered messaging of the WebSocket protocol is a limiting factor, such as web-based multiplayer games. The server sets up two data channels for each incoming connection - one for reliable messaging and another one for unreliable messaging. This allows for applications to use a unified messaging mechanism to implement features that require either reliable transports such as a chat room or unreliable transports such as syncing game state.

Check out the [live demo](https://webrtc-server-client.leede.ee/demo/) or the [documentation](https://webrtc-server-client.leede.ee/docs/).

## Server installation

```sh
npm install @leede/webrtc-server
```

## Basic server usage example

```ts
import { WebRTCServer } from "@leede/webrtc-server";

const server = new WebRTCServer({
  port: 8000,
  iceServers: ["stun:stun.l.google.com:19302"],
});

server.on("connection", (connection) => {
  console.log("[SERVER] New connection");

  // Send reliable messages
  connection.sendR("Hello from server over TCP");
  connection.sendR(new Float32Array([1.618, 1.414]).buffer);

  // Send unreliable messages
  connection.sendU("Hello from server over UDP");
  connection.sendU(Buffer.from([1, 4, 9, 16, 25, 36]));

  // Handle string messages from connection
  connection.on("message", (message) => {
    console.log("[SERVER] Received message:", message);
  });

  // Handle binary messages from connection
  connection.on("binary", (buffer) => {
    console.log("[SERVER] Received buffer:", buffer);
  });

  // Handle disconnection
  connection.on("close", () => {
    console.log("Connection closed");
  });
});
```

For detailed usage, see the [server documentation](https://webrtc-server-client.leede.ee/docs/modules/_leede_webrtc_server.html).