open-index/open-npm huggingface dataset:
npm package: @shuaijs/brew-switch-node-cli
Description: Switch node version via brew installed list
Author: Stan Ye
Latest version: 1.0.2

# brew-switch-node-cli

bsn-cli -- Switch node version via brew installed list

## Install

```bash
$ npm install -g @shuaijs/brew-switch-node-cli
```

## Example

```bash
$ bsn-cli ls

```

```bash
$ bsn-cli go
```

## Usage

```bash
Usage: bsn-cli [options] [command]

Options:
  -V, --version  output the version number
  -h, --help     output usage information

Commands:
  ls             List all installed node by brew
  go             start change node version
  sw <version>   switch a node version
  help           Print this help
```

## LICENSE

MIT
npm package: @shuaijs/vuepress-plugin-baidu-autopush
Description: stanye's vuepress-plugin-baidu-autopush
Author: Stan Ye
Latest version: 1.0.0

# @shuaijs/vuepress-plugin-baidu-autopush

## 介绍

vuepress-plugin-baidu-autopush

## 安装

```bash
yarn add @shuaijs/vuepress-plugin-baidu-autopush
# or
npm install @shuaijs/vuepress-plugin-baidu-autopush --save
```

------------

## 使用

在配置文件中引入 `vuepress-plugin-baidu-autopush`

```javascript
module.exports = {
  plugins: [
    [
      '@shuaijs/baidu-autopush'
    ],
  ],
}
```
npm package: @shuaijs/vuepress-plugin-gitalk
Description: stanye's vuepress-plugin-gitalk
Author: Stan Ye
Latest version: 1.0.2

# @shuaijs/vuepress-plugin-gitalk

## 介绍

vuepress-plugin-gitalk

## 安装

```bash
yarn add @shuaijs/vuepress-plugin-gitalk
# or
npm install @shuaijs/vuepress-plugin-gitalk --save
```

------------

## 使用

在配置文件中引入 `vuepress-plugin-gitalk`

```javascript
module.exports = {
  plugins: [
    [
      '@shuaijs/gitalk', {
          // GitHub Application Client ID.
          clientID: '',
          // GitHub Application Client Secret.
          clientSecret: '',
          // GitHub repository. 存储评论的 repo
          repo: '',
          // GitHub repository 所有者，可以是个人或者组织。
          owner: '',
          // GitHub repository 的所有者和合作者 (对这个 repository 有写权限的用户)。(不配置默认是owner配置)
          admin: [''],
      }
    ],
  ],
}
```
npm package: @shuami-dev/nuxt-client-error
Description: A utility for handling and displaying client error statuses in Nuxt 3 applications
Author: Ahmad Shuami
Latest version: 1.0.1

# Nuxt Client Error

A utility for handling and displaying client error statuses in Nuxt 3 applications.

## Installation

```bash
npm install @shuami-dev/nuxt-client-error
```

## Usage

```typescript
import { useI18n } from "vue-i18n"
import { errorStatus } from "@shuami-dev/nuxt-client-error"

export default {
	setup() {
		const error = ref(new Error("404 Not Found"))
		const { t } = useI18n()

		const status = errorStatus(error, t)

		return { status }
	},
}
```

### With Custom Error

```typescript
import { useI18n } from "vue-i18n"
import { errorStatus, type CustomError } from "@shuami-dev/nuxt-client-error"

export default {
	setup() {
		const error = ref(new Error("Custom error message"))
		const { t } = useI18n()

		const customError = (err) => {
			if (err && err.message.includes("Custom")) {
				return "This is a custom error"
			}
			return null
		}

		const status = errorStatus(error, t, customError)

		return { status }
	},
}
```

### With Debug Options

```typescript
import { useI18n } from "vue-i18n"
import { errorStatus } from "@shuami-dev/nuxt-client-error"

export default {
	setup() {
		const error = ref(new Error("500 Server Error"))
		const { t } = useI18n()

		// Enable debug logging on server side only
		const status = errorStatus(error, t, null, {
			debug: true, // Enable debug logging
			serverOnly: true, // Only log on server
		})

		return { status }
	},
}
```

## Required i18n Translations

Your i18n configuration should include the following keys:

```json
{
	"errStatus": {
		"missingParameters": "Missing required parameters",
		"abortError": "Request was aborted",
		"defaultStatusError": "An error occurred",
		"unexpectedError": "Unexpected error",
		"400": "Bad request",
		"401": "Unauthorized",
		"403": "Forbidden",
		"404": "Not found",
		"408": "Timed out",
		"429": "Too many requests",
		"500": "Server error",
		"502": "Bad gateway",
		"503": "Service unavailable",
		"504": "Gateway timeout"
	}
}
```

## License

MIT
npm package: @shuami-dev/nuxt-i18n-theme
Description: i18n and theme mode package for Nuxt 3
Author: Ahmad Shuami
Latest version: 1.0.3

## Nuxt i18n and Theme

A Nuxt.js package that provides localization (i18n), and theme management functionalities.
This package aims to simplify the implementation of multilingual support and dynamic them mode in your Nuxt applications.

### Features

- Session management using `sessionStorage`.
- Localization support with dynamic language fetching.
- Theme management for light and dark modes.
- Includes global CSS for styling.
- Share application Id (e.g: event id, project id etc)
- Share other optional parameter (e.g: optional id)

### Installation

To install the package, run the following command:

```bash
npm install @shuami-dev/nuxt-i18n-theme
```

### Usage

1. Add to Nuxt Config\
    In your nuxt.config.ts, add the package to your CSS array:

```ts
export default defineNuxtConfig({
  css: ["@shuami-dev/nuxt-i18n-theme/style.css"],
})
npm package: @shuang.wei/at-select
Description: 一个基于Vue3的@标签富文本编辑器组件，支持智能定位和滚动跟随
Author: leonardwei
Latest version: 1.0.8

# 🎯 AtSelect-@标签富文本编辑器
一个基于Vue3 + TypeScript开发的高性能@标签富文本编辑器组件，支持智能定位和滚动跟随功能。
## 🛠️ 技术栈
  - Vue 3.3+
  - TypeScript 5.0+
  - Vite 4.4+
  - Sass

# @标签富文本编辑组件

这是一个基于Vue3+Vite的@标签富文本编辑组件以及演示Demo，展示了该组件不同功能。

## 功能特点

- ✅ 支持@标签输入，输入@后弹出选择框
- ✅ 支持中文输入法
- ✅ 支持单行/多行输入模式
- ✅ 智能定位下拉框，防止超出可视区域
- ✅ 下拉框跟随页面滚动，始终保持正确位置
- ✅ 支持键盘导航（上下键选择，Enter确认）
- ✅ 支持文本长度限制
- ✅ 使用Teleport渲染下拉框，避免被遮挡
- ✅ 完善的TypeScript类型定义

## 项目结构

```
ATSelect/
├── src/
│   ├── components/
│   │   ├── AtInputSelect/         # @标签编辑器组件
│   │   │   ├── index.vue          # 主组件
│   │   │   ├── AtDialog.vue       # 下拉选择框组件
│   │   │   └── AtUtil.ts          # 类型定义
│   │   └── AtEditorDemo.vue       # 演示页面
│   ├── App.vue                    # 根组件
│   ├── main.ts                    # 入口文件
│   └── style.css                  # 全局样式
├── package.json
├── vite.config.ts
├── tsconfig.json
└── README.md
```

## 运行项目

1. 安装依赖：
```bash
npm install
```

2. 启动开发服务器：
```bash
npm run dev
```

3. 构建生产版本：
```bash
npm run build
```

## 组件使用方式

### 基础用法

```vue
<template>
  <AtInputSelect
    v-model="content"
    place-holder="请输入内容，使用@提及他人"
    :comp-width="500"
  />
</template>

<script setup>
import { ref } from 'vue'
import AtInputSelect from './components/AtInputSelect/index.vue'

const content = ref([])
</script>
```

### 多行输入

```vue
<template>
  <AtInputSelect
    v-model="content"
    place-holder="支持多行输入，按Enter换行"
    :multiline="true"
    :min-height="100"
    :max-height="200"
    :comp-width="500"
  />
</template>
```

### 带限制的输入

```vue
<template>
  <AtInputSelect
    v-model="content"
    place-holder="最多输入50个字符"
    :limit="50"
    :comp-width="500"
  />
</template>
```

## 属性说明

| 属性 | 类型 | 默认值 | 说明 |
|------|------|--------|------|
| modelValue | Array | [] | 绑定值，格式为IIndicatorNode[] |
| placeHolder | String | '' | 占位符文本 |
| compWidth | Number/Str | 0 | 组件宽度 |
| isInput | Boolean | false | 是否为输入框样式 |
| disable | Boolean | false | 是否禁用 |
| limit | Number | 0 | 文本长度限制，0表示不限制 |
| maxAtLength | Number | 5 | 最大@标签数量 |
| multiline | Boolean | false | 是否支持多行输入 |
| minHeight | Number | 32 | 多行模式最小高度 |
| maxHeight | Number | 120 | 多行模式最大高度 |

## 事件

| 事件名 | 参数 | 说明 |
|--------|------|------|
| update:modelValue | value | 内容变更时触发 |

## 数据格式

```typescript
interface IIndicatorNode {
  type: 'text' | 'at'  // 节点类型
  value: string        // 文本内容或@标签的key
  entity: string | IIndicatorItem  // 实体数据
}

interface IIndicatorItem {
  key: string | number
  name: string
  demoValue: string
}
```
## 📄 许可证
  MIT License
## 🤝 贡献
  欢迎提交Issue和Pull Request！
npm package: @shuang6/egg-cos
Description: tencent cloud cos plugin for egg
Author: shuang6
Latest version: 0.0.2-rc

# egg-cos

[![NPM version][npm-image]][npm-url]
[![Test coverage][codecov-image]][codecov-url]
[![David deps][david-image]][david-url]
[![Known Vulnerabilities][snyk-image]][snyk-url]
[![npm download][download-image]][download-url]

[npm-image]: https://img.shields.io/npm/v/@shuang6/egg-cos.svg?style=flat-square
[npm-url]: https://npmjs.org/package/@shuang6/egg-cos
[codecov-image]: https://img.shields.io/codecov/c/github/shuang6/egg-cos.svg?style=flat-square
[codecov-url]: https://codecov.io/github/shuang6/egg-cos?branch=master
[david-image]: https://img.shields.io/david/shuang6/egg-cos.svg?style=flat-square
[david-url]: https://david-dm.org/shuang6/egg-cos
[snyk-image]: https://snyk.io/test/npm/@shuang6/egg-cos/badge.svg?style=flat-square
[snyk-url]: https://snyk.io/test/npm/@shuang6/egg-cos
[download-image]: https://img.shields.io/npm/dm/@shuang6/egg-cos.svg?style=flat-square
[download-url]: https://npmjs.org/package/@shuang6/egg-cos

<!--
Description here.
-->

## Install

```bash
$ npm i @shuang6/egg-cos --save
```

## Configuration

```js
// {app_root}/config/plugin.js
exports.cos = {
  enable: true,
  package: '@shuang6/egg-cos'
};
```

```js
// {app_root}/config/config.default.js
exports.cos = {
  client: {
    SecretId: '',
    SecretKey: '',
    Bucket: '',
    Region: ''
  }
};
```

Init in egg agent, default is `false`:

```js
exports.cos = {
  useAgent: true
};
```

## Usage

You can aquire tencent cloud cos instance on `app` or `ctx`.

```js
const path = require('path');
const Controller = require('egg').Controller;

// upload a file in controller
module.exports = class extends Controller {
  async upload() {
    const ctx = this.ctx;
    // please enable `file` mode of `egg-multipart`.
    const file = ctx.request.files[0];
    const name = 'egg-cos/' + path.basename(file.filename);
    let result;
    try {
      result = await ctx.cos.put(name, file.filepath);
    } finally {
      // need to remove the tmp files
      await ctx.cleanupRequestFiles();
    }

    if (result) {
      ctx.logger.info('cos response:\n', result);
      ctx.body = {
        url: `https://${result.Location}`
      };
    } else {
      ctx.body = 'please select a file to upload！';
    }
  }
};
```

## Questions & Suggestions

Please open an issue [here](https://github.com/shuang6/egg-cos/issues).

## License

[MIT](LICENSE)