open-index/open-npm huggingface dataset:
npm package: @shined/babel-plugin-enforce-direct-access
Description: A Babel plugin to enforce direct access patterns
Author: ityuany
Latest version: 0.0.2-alpha.1

# @shined/babel-plugin-enforce-direct-access

A Babel plugin to enforce direct access patterns.

## Installation

```bash
npm install @shined/babel-plugin-enforce-direct-access
```

## Usage

```javascript
// babel.config.js
module.exports = {
  plugins: [
    ['@shined/babel-plugin-enforce-direct-access', {
      // options
    }]
  ]
};
```

## License

MIT
npm package: @shined/doctor
Description: [![npm version](https://badge.fury.io/js/@shined/doctor.svg)](https://badge.fury.io/js/@shined/doctor) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
Latest version: 0.3.0-canary.0

# Doctor Engine

[![npm version](https://badge.fury.io/js/@shined/doctor.svg)](https://badge.fury.io/js/@shined/doctor)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)

基于 Rust 和 Node.js 构建的高性能代码质量检查工具。

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

## 特性

- 🚀 **高性能**：使用 Rust 构建，确保最大速度和效率
- 🔍 **全面分析**：支持多种编程语言和框架
- ⚡ **并行处理**：利用多线程进行更快的代码扫描

## 安装

```bash
npm install @shined/doctor
# 或者
yarn add @shined/doctor
# 或者
pnpm add @shined/doctor
```

## 快速开始

```javascript
import { Standards } from "@shined/doctor";

// 初始化 Standards 检查器
const standards = Standards.create(process.cwd());

// 运行所有验证
const results = await standards.validateAll();
```

## 配置

在项目根目录创建 `.sfconfig/spec.json` 文件：

```json
{
  "globals": {
    "yourGlobalVar": "writable"
  },
  "ignore": ["**/node_modules/**", "**/dist/**", "**/build/**", "**/target/**"]
}
```

工具还会检查以下配置文件：

- `.npmrc` - NPM 注册表配置
- `.node-version` - Node.js 版本规范
- `package.json` - 包配置

## 命令行使用

```bash
# 全局安装
npm install -g @shined/doctor

# 在当前目录运行分析
npx @shined/doctor

# 显示详细输出
npx @shined/doctor --verbose

# 指定工作目录
npx @shined/doctor --cwd /path/to/project

# 显示帮助信息
npx @shined/doctor --help
```

命令将会：

- 检查项目健康状况
- 显示发现的错误数量
- 显示执行时间
- 如果发现错误则以代码 1 退出

## API 参考

### Standards 类

代码质量验证的主类。

#### 静态方法

- `create(cwd: string): Standards` - 创建新的 Standards 实例

#### 实例方法

- `validateNpmrc(): Promise<Array<Messages>>` - 验证 npmrc 配置
- `validateNodeVersion(): Promise<Array<Messages>>` - 验证 Node.js 版本
- `validatePackageJson(): Promise<Array<Messages>>` - 验证 package.json
- `validateLint(): Promise<Array<Messages>>` - 运行代码检查验证
- `validateAll(): Promise<Array<Messages>>` - 运行所有验证

### 工具函数

#### 代码统计

```typescript
function cloc(paths: string[], opts?: { ignore?: string[] }): LanguageStats[];
```

#### 调试函数

```typescript
function initializeLogger(level?: LogLevel): void;
function unSafeInnerLint(
  globArgs: GlobArgs,
  category: NaPiCategory
): Promise<Diagnostic[]>;
```

## 贡献

欢迎贡献！请查看我们的[贡献指南](CONTRIBUTING.md)了解详情。

## 许可证

MIT © [Your Name]

## 支持

- 文档：[链接到文档]
- 问题：[GitHub Issues]
- Discord：[Discord 频道]

## 致谢

基于以下技术构建：

- [Rust](https://www.rust-lang.org/)
- [Node.js](https://nodejs.org/)
- [oxc](https://github.com/oxc-project/oxc)
npm package: @shined/doctor-binding-linux-arm64-gnu
Description: This is the **aarch64-unknown-linux-gnu** binary for `@shined/doctor-binding`
Latest version: 0.3.0-canary.0

# `@shined/doctor-binding-linux-arm64-gnu`

This is the **aarch64-unknown-linux-gnu** binary for `@shined/doctor-binding`
npm package: @shined/doctor-binding-linux-arm64-musl
Description: This is the **aarch64-unknown-linux-musl** binary for `@shined/doctor-binding`
Latest version: 0.3.0-canary.0

# `@shined/doctor-binding-linux-arm64-musl`

This is the **aarch64-unknown-linux-musl** binary for `@shined/doctor-binding`
npm package: @shined/doctor-binding-linux-x64-gnu
Description: This is the **x86_64-unknown-linux-gnu** binary for `@shined/doctor-binding`
Latest version: 0.3.0-canary.0

# `@shined/doctor-binding-linux-x64-gnu`

This is the **x86_64-unknown-linux-gnu** binary for `@shined/doctor-binding`
npm package: @shined/doctor-binding-linux-x64-musl
Description: This is the **x86_64-unknown-linux-musl** binary for `@shined/doctor-binding`
Latest version: 0.3.0-canary.0

# `@shined/doctor-binding-linux-x64-musl`

This is the **x86_64-unknown-linux-musl** binary for `@shined/doctor-binding`
npm package: @shined/doctor-binding-win32-arm64-msvc
Description: This is the **aarch64-pc-windows-msvc** binary for `@shined/doctor-binding`
Latest version: 0.3.0-canary.0

# `@shined/doctor-binding-win32-arm64-msvc`

This is the **aarch64-pc-windows-msvc** binary for `@shined/doctor-binding`
npm package: @shined/doctor-binding-win32-x64-msvc
Description: This is the **x86_64-pc-windows-msvc** binary for `@shined/doctor-binding`
Latest version: 0.3.0-canary.0

# `@shined/doctor-binding-win32-x64-msvc`

This is the **x86_64-pc-windows-msvc** binary for `@shined/doctor-binding`
npm package: @shined/lecp-binding-linux-arm64-gnu
Description: This is the **aarch64-unknown-linux-gnu** binary for `@shined/lecp-binding`
Latest version: 0.3.0

# `@shined/lecp-binding-linux-arm64-gnu`

This is the **aarch64-unknown-linux-gnu** binary for `@shined/lecp-binding`
npm package: @shined/lecp-binding-linux-arm64-musl
Description: This is the **aarch64-unknown-linux-musl** binary for `@shined/lecp-binding`
Latest version: 0.3.0

# `@shined/lecp-binding-linux-arm64-musl`

This is the **aarch64-unknown-linux-musl** binary for `@shined/lecp-binding`
npm package: @shined/lecp-binding-linux-x64-gnu
Description: This is the **x86_64-unknown-linux-gnu** binary for `@shined/lecp-binding`
Latest version: 0.3.0

# `@shined/lecp-binding-linux-x64-gnu`

This is the **x86_64-unknown-linux-gnu** binary for `@shined/lecp-binding`
npm package: @shined/lecp-binding-linux-x64-musl
Description: This is the **x86_64-unknown-linux-musl** binary for `@shined/lecp-binding`
Latest version: 0.3.0

# `@shined/lecp-binding-linux-x64-musl`

This is the **x86_64-unknown-linux-musl** binary for `@shined/lecp-binding`
npm package: @shined/lecp-binding-win32-arm64-msvc
Description: This is the **aarch64-pc-windows-msvc** binary for `@shined/lecp-binding`
Latest version: 0.3.0

# `@shined/lecp-binding-win32-arm64-msvc`

This is the **aarch64-pc-windows-msvc** binary for `@shined/lecp-binding`
npm package: @shined/lecp-binding-win32-x64-msvc
Description: This is the **x86_64-pc-windows-msvc** binary for `@shined/lecp-binding`
Latest version: 0.3.0

# `@shined/lecp-binding-win32-x64-msvc`

This is the **x86_64-pc-windows-msvc** binary for `@shined/lecp-binding`
npm package: @shined/package-exported-usage
Description: [![CI](https://github.com/sheinsight/package-exported-useage/actions/workflows/CI.yml/badge.svg)](https://github.com/sheinsight/package-exported-useage/actions/workflows/CI.yml)
Latest version: 0.0.9

# @shined/package-exported-useage 

[![CI](https://github.com/sheinsight/package-exported-useage/actions/workflows/CI.yml/badge.svg)](https://github.com/sheinsight/package-exported-useage/actions/workflows/CI.yml)

Used to count the usage of exported modules in a specific package.

Power by rust .


## How to use

```bash
npm i @shined/package-exported-useage
```

```javascript
const { inspectPackageUsage } = require('@shined/package-exported-usage');
const res = inspectPackageUsage('antd','~/demo-front',errMessage => {
    console.log(errMessage)
});
```
npm package: @shined/package-exported-usage-linux-arm-gnueabihf
Description: This is the **armv7-unknown-linux-gnueabihf** binary for `@shined/package-exported-usage`
Latest version: 0.0.9

# `@shined/package-exported-usage-linux-arm-gnueabihf`

This is the **armv7-unknown-linux-gnueabihf** binary for `@shined/package-exported-usage`
npm package: @shined/package-exported-usage-linux-arm-musleabihf
Description: This is the **armv7-unknown-linux-musleabihf** binary for `@shined/package-exported-usage`
Latest version: 0.0.9

# `@shined/package-exported-usage-linux-arm-musleabihf`

This is the **armv7-unknown-linux-musleabihf** binary for `@shined/package-exported-usage`
npm package: @shined/package-exported-usage-linux-arm64-gnu
Description: This is the **aarch64-unknown-linux-gnu** binary for `@shined/package-exported-usage`
Latest version: 0.0.9

# `@shined/package-exported-usage-linux-arm64-gnu`

This is the **aarch64-unknown-linux-gnu** binary for `@shined/package-exported-usage`
npm package: @shined/package-exported-usage-linux-arm64-musl
Description: This is the **aarch64-unknown-linux-musl** binary for `@shined/package-exported-usage`
Latest version: 0.0.9

# `@shined/package-exported-usage-linux-arm64-musl`

This is the **aarch64-unknown-linux-musl** binary for `@shined/package-exported-usage`
npm package: @shined/package-exported-usage-linux-x64-gnu
Description: This is the **x86_64-unknown-linux-gnu** binary for `@shined/package-exported-usage`
Latest version: 0.0.9

# `@shined/package-exported-usage-linux-x64-gnu`

This is the **x86_64-unknown-linux-gnu** binary for `@shined/package-exported-usage`
npm package: @shined/package-exported-usage-linux-x64-musl
Description: This is the **x86_64-unknown-linux-musl** binary for `@shined/package-exported-usage`
Latest version: 0.0.9

# `@shined/package-exported-usage-linux-x64-musl`

This is the **x86_64-unknown-linux-musl** binary for `@shined/package-exported-usage`
npm package: @shined/package-exported-usage-win32-arm64-msvc
Description: This is the **aarch64-pc-windows-msvc** binary for `@shined/package-exported-usage`
Latest version: 0.0.9

# `@shined/package-exported-usage-win32-arm64-msvc`

This is the **aarch64-pc-windows-msvc** binary for `@shined/package-exported-usage`
npm package: @shined/package-exported-usage-win32-ia32-msvc
Description: This is the **i686-pc-windows-msvc** binary for `@shined/package-exported-usage`
Latest version: 0.0.9

# `@shined/package-exported-usage-win32-ia32-msvc`

This is the **i686-pc-windows-msvc** binary for `@shined/package-exported-usage`
npm package: @shined/package-exported-usage-win32-x64-msvc
Description: This is the **x86_64-pc-windows-msvc** binary for `@shined/package-exported-usage`
Latest version: 0.0.9

# `@shined/package-exported-usage-win32-x64-msvc`

This is the **x86_64-pc-windows-msvc** binary for `@shined/package-exported-usage`
npm package: @shined/reactive
Description: ⚛️ Proxy-driven state library for JavaScript application, Intuitive, Flexible and Written in TypeScript.
Latest version: 0.3.5

# Reactive

<a href="https://npmjs.com/package/@shined/reactive"><img src="https://img.shields.io/npm/v/@shined/reactive.svg" alt="npm package"></a>
<a href="https://pkg-size.dev/@shined/reactive"><img src="https://pkg-size.dev/badge/bundle/25441" title="Bundle size for @shined/reactive"></a>
<a href="https://github.com/sheinsight/reactive/blob/main/LICENSE"><img alt="NPM" src="https://img.shields.io/npm/l/%40shined%2Freactive"></a>

> ⚛️ Proxy-driven state library for JavaScript application. Intuitive, Flexible and Written in TypeScript.

See [documentation](https://sheinsight.github.io/reactive) | [中文文档](https://sheinsight.github.io/reactive/zh-cn) for more details.

## License

- [MIT](./LICENSE)
npm package: @shined/source-code-diagnosis-darwin-x64
Description: This is the **x86_64-apple-darwin** binary for `@shined/source-code-diagnosis`
Latest version: 0.0.92

# `@shined/source-code-diagnosis-darwin-x64`

This is the **x86_64-apple-darwin** binary for `@shined/source-code-diagnosis`
npm package: @shined/source-code-diagnosis-freebsd-x64
Description: This is the **x86_64-unknown-freebsd** binary for `@shined/source-code-diagnosis`
Latest version: 0.0.31

# `@shined/source-code-diagnosis-freebsd-x64`

This is the **x86_64-unknown-freebsd** binary for `@shined/source-code-diagnosis`
npm package: @shined/source-code-diagnosis-linux-arm-gnueabihf
Description: This is the **armv7-unknown-linux-gnueabihf** binary for `@shined/source-code-diagnosis`
Latest version: 0.0.30

# `@shined/source-code-diagnosis-linux-arm-gnueabihf`

This is the **armv7-unknown-linux-gnueabihf** binary for `@shined/source-code-diagnosis`
npm package: @shined/source-code-diagnosis-linux-arm-musleabihf
Description: This is the **armv7-unknown-linux-musleabihf** binary for `@shined/source-code-diagnosis`
Latest version: 0.0.31

# `@shined/source-code-diagnosis-linux-arm-musleabihf`

This is the **armv7-unknown-linux-musleabihf** binary for `@shined/source-code-diagnosis`
npm package: @shined/source-code-diagnosis-linux-arm64-gnu
Description: This is the **aarch64-unknown-linux-gnu** binary for `@shined/source-code-diagnosis`
Latest version: 0.0.92

# `@shined/source-code-diagnosis-linux-arm64-gnu`

This is the **aarch64-unknown-linux-gnu** binary for `@shined/source-code-diagnosis`
npm package: @shined/source-code-diagnosis-linux-arm64-musl
Description: This is the **aarch64-unknown-linux-musl** binary for `@shined/source-code-diagnosis`
Latest version: 0.0.92

# `@shined/source-code-diagnosis-linux-arm64-musl`

This is the **aarch64-unknown-linux-musl** binary for `@shined/source-code-diagnosis`
npm package: @shined/source-code-diagnosis-linux-x64-gnu
Description: This is the **x86_64-unknown-linux-gnu** binary for `@shined/source-code-diagnosis`
Latest version: 0.0.92

# `@shined/source-code-diagnosis-linux-x64-gnu`

This is the **x86_64-unknown-linux-gnu** binary for `@shined/source-code-diagnosis`
npm package: @shined/source-code-diagnosis-linux-x64-musl
Description: This is the **x86_64-unknown-linux-musl** binary for `@shined/source-code-diagnosis`
Latest version: 0.0.92

# `@shined/source-code-diagnosis-linux-x64-musl`

This is the **x86_64-unknown-linux-musl** binary for `@shined/source-code-diagnosis`
npm package: @shined/source-code-diagnosis-win32-arm64-msvc
Description: This is the **aarch64-pc-windows-msvc** binary for `@shined/source-code-diagnosis`
Latest version: 0.0.92

# `@shined/source-code-diagnosis-win32-arm64-msvc`

This is the **aarch64-pc-windows-msvc** binary for `@shined/source-code-diagnosis`
npm package: @shined/source-code-diagnosis-win32-x64-msvc
Description: This is the **x86_64-pc-windows-msvc** binary for `@shined/source-code-diagnosis`
Latest version: 0.0.92

# `@shined/source-code-diagnosis-win32-x64-msvc`

This is the **x86_64-pc-windows-msvc** binary for `@shined/source-code-diagnosis`
npm package: @shined/spack-binding-wasm32-wasi
Description: Node binding for rspack
Latest version: 0.0.16

<picture>
  <img alt="Rspack Banner" src="https://assets.rspack.dev/rspack/rspack-banner.png">
</picture>

# @shined/spack-binding-wasm32-wasi

Private node binding crate for rspack.

This package does *NOT* follow [semantic versioning](https://semver.org/).

## Documentation

See [https://rspack.rs](https://rspack.rs) for details.

## License

Rspack is [MIT licensed](https://github.com/web-infra-dev/rspack/blob/main/LICENSE).
npm package: @shined/spack-binding-win32-ia32-msvc
Description: Node binding for rspack
Latest version: 0.0.19

<picture>
  <img alt="Rspack Banner" src="https://assets.rspack.rs/rspack/rspack-banner.png">
</picture>

# @shined/spack-binding-win32-ia32-msvc

Private node binding crate for rspack.

This package does *NOT* follow [semantic versioning](https://semver.org/).

## Documentation

See [https://rspack.rs](https://rspack.rs) for details.

## License

Rspack is [MIT licensed](https://github.com/web-infra-dev/rspack/blob/main/LICENSE).
npm package: @shined/swc-plugin-enforce-direct-access
Description: SWC plugin for enforcing direct access patterns
Author: ityuany
Latest version: 0.0.2-alpha.1

# @shined/swc-plugin-enforce-direct-access

SWC plugin for enforcing direct access patterns.

## Installation

```bash
npm install @shined/swc-plugin-enforce-direct-access
```

## Usage

```javascript
// .swcrc
{
  "jsc": {
    "experimental": {
      "plugins": [
        ["@shined/swc-plugin-enforce-direct-access", {
          // options
        }]
      ]
    }
  }
}
```

## License

MIT
npm package: @shined/tmp-base
Description: This is a universal standard template.
Author: ityuany
Latest version: 0.0.1

# 📦 base-temple

What is this?

## 🤔 why

Why is it needed?

## 🔥 Install

How to install

## 🦾 Usage

Instructions for use

## 📚 Api

api

## 🫂 Maintainers

- [@ityuany](https://github.com/ityuany)
npm package: @shineiichijo/anime-news-network-scraper
Description: Scrap news contents and feeds from Anime News Network
Author: Lucky Yambem
Latest version: 1.0.1

# AnimeNewsNetworkScraper

[![NPM](https://img.shields.io/badge/Available%20On-NPM-lightgrey.svg?logo=npm&logoColor=339933&labelColor=white&style=flat-square)](https://www.npmjs.com/package/@shineiichijo/anime-news-network-scraper)

<div align=center>
<a href="https://github.com/LuckyYam/AnimeNewsNetworkScraper"><img src="https://i.imgur.com/KkkVr1g.png" alt="anime-news-network" border="0"></a>


Scrap news feeds and contents from [Anime News Network](https://www.animenewsnetwork.com/)

---

## Installation
```
yarn add @shineiichijo/anime-news-network-scraper
```

## Usage
## Get News feeds
```ts
import { client } from '@shineiichijo/anime-news-network-scraper'
;(async () => {
    const data = await client.getNewsFeeds()
    console.log(data)
})()
```
### Output
```JSON
[
    {
        "title": "4-Nin wa Sorezore Uso o Tsuku Comedy Anime's Teaser Reveals Cast, Staff, October Debut",
        "categories": [
            "Anime"
        ],
        "link": "https://www.animenewsnetwork.com/news/2022-07-14/4-nin-wa-sorezore-uso-o-tsuku-comedy-anime-teaser-reveals-cast-staff-october-debut/.187674",
        "guid": "https://www.animenewsnetwork.com/cms/.187674",
        "description": "Chiemi Tanaka, Natsumi Murakami, Ayane Sakura, Megumi Han star as schoolgirls with double life",
        "pubDate": "Thu, 14 Jul 2022 23:59:16 -0400"
    }
]
```

## Get News contents from the URL

```ts
import { client } from '@shineiichijo/anime-news-network-scraper'
;(async () => {
    const feeds = await client.getNewsFeeds()
    const url = feeds[0].link //provide any valid news URL from Anime News Network to scrap
    const data = await client.getNewsContents(url)
    console.log(data)
})()
```

### Output
```JSON
{
    "title": "Aikatsu! ~Mirai e no Starway~ Anime Film Spawns Another New Film in Early 2023",
    "intro": "1st film opened alongside Gekijō-ban Aikatsu Planet! film on Friday",
    "description": "The official website for the Aikatsu! idol franchise announced on Friday that Aikatsu! 10th Story ~Mirai e no Starway~, the franchise's 10th anniversary film that accompanied the opening....",
    "images": [
        "https://cdn.animenewsnetwork.com/thumbnails/max400x400/cms/news.5/184604/202204132125126693.jpg"
    ]
}
```
npm package: @shineiichijo/mal-news-scraper
Description: Scraps news contents from MyAnimeList
Author: Lucky Yambem
Latest version: 0.0.2

# mal-news-scraper

[![NPM](https://img.shields.io/badge/Available%20On-NPM-lightgrey.svg?logo=npm&logoColor=339933&labelColor=white&style=flat-square)](https://www.npmjs.com/package/@shineiichijo/mal-news-scraper)

Scrap news contents from MyAnimeList

---

## Installation
```
yarn add @shineiichijo/mal-news-scraper
```

## Usage
```ts
import { scrapNews } from '@shineiichijo/mal-news-scraper'
;(async () => {
    const id = 66853767
    const data = await scrapNews(id)
    console.log(data)
})()
```
### Output
```JSON
{
    "id": "66853767",
    "url": "https://myanimelist.net/news/66853767",
    "image": "https://cdn.myanimelist.net/s/common/uploaded_files/1657685189-06702246fa60423ef634534239999439.jpeg",
    "description": "The official website of the One Piece Film: Red anime movie revealed a pair ....",
    "title": "'One Piece Film: Red' Reveals Additional Pair of Cast"
}
```

### Scrapping with `mal-scraper`
```ts
import { getNewsNoDetails } from 'mal-scraper' //yarn add mal-scraper
import { scrapNews } from '@shineiichijo/mal-news-scraper'
;(async () => {
    const news = await getNewsNoDetails()
    const link = news[0].link // --> https://myanimelist.net/news/66853767
    const data = await scrapNews(link)
    console.log(data)
})()
```
npm package: @shineiichijo/marika
Description: An API wrapper for the unofficial MyAnimeList API jikan.moe v4
Author: Lucky Yambem
Latest version: 3.0.1

<div align=center>
<a href="https://github.com/LuckyYam/Marika"><img src="https://wallpapermemory.com/uploads/816/marika-tachibana-wallpaper-hd-1920x1080-323797.jpg" alt="I Love Chitoge more tbh" border="0"></a>

# Marika

[![NPM](https://img.shields.io/badge/Available%20On-NPM-lightgrey.svg?logo=npm&logoColor=339933&labelColor=white&style=flat-square)](https://www.npmjs.com/package/@shineiichijo/marika)

A promise based API wrapper for the unofficial [MyAnimeList API](https://docs.api.jikan.moe/)

[Documentation](https://luckyyam.github.io/Marika/)

</div>

---

## Installation

```sh
npm i @shineiichijo/marika

yarn add @shineiichijo/marika
```

## 🚀 Usage Examples

```ts
import { Marika } from '@shineiichijo/marika'

;(async () => {
    const { anime } = new Marika()
    await anime.getAnimeById(1)
    .then(console.log)
    .catch(console.error)
})()
```

```ts
import { Manga } from '@shineiichijo/marika'

;(async () => {
    const manga = new Manga()
    await manga.getMangaSearch({ q: 'Nisekoi', page: 1, genres: [22, 4], limit: 1 })
    .then(console.log)
    .catch(console.error)
})()
```

```ts
import { Marika, AnimeSeasons, AnimeTypes } from '@shineiichijo/marika'

;(async () => {
    const { seasons } = new Marika()
    await seasons.getSeason(2023, AnimeSeasons['FALL'], { sfw: true, filter: AnimeTypes['TV'] })
    .then(console.log)
    .catch(console.error)
})()
```

```ts
import { Characters } from '@shineiichijo/marika'

;(async () => {
    const characters = new Characters()
    await characters.getCharacterFullById(66597)
    .then(console.log)
    .catch(console.error)
})()
```

```ts
import { Marika, Days } from '@shineiichijo/marika'

;(async () => {
    const { schedules } = new Marika()
    await schedules.getSchedules({ filter: Days['MONDAY'] })
    .then(console.log)
    .catch(console.error)
})()
```
npm package: @shineiichijo/team-preview
Description: Pokémon team preview image generator
Author: adrifcastr
Latest version: 1.1.7

# team-preview
Pokémon team preview image generator

## Install

Install team-preview:
```
npm i team-preview
```


### Generate a summary

```ts
import { Sets } from '@pkmn/sets';
import { summaryScreen, partyScreen } from 'team-preview';

//Pokémon Showdown! set
const set = Sets.importSet(
`Gekkouga (Greninja-Ash) (M) @ Choice Specs  
 Ability: Battle Bond  
 Level: 100  
 Shiny: Yes  
 Pokeball: Cherish Ball  
 EVs: 252 SpA / 4 SpD / 252 Spe
 Timid Nature
 - Hydro Pump
 - Dark Pulse
 - Water Shuriken
 - Spikes
`);

const buffer = await summaryScreen(set);
```

Result:
![Summary](https://cdn.discordapp.com/attachments/715564004621418577/852590843357691977/summary.jpg)


### Generate a party preview

```ts
import { summaryScreen, partyScreen } from 'team-preview';

//array of 6 sets
const buffer = await partyScreen([set, set2, set3, set4, set5, set6]);
```

Result:
![Party](https://cdn.discordapp.com/attachments/715564004621418577/852597065372532747/party.jpg)

### Donations

Donations are gladly accepted. Please send them to my [Paypal.me](https://www.paypal.me/adrifcastr) or [Patreon](https://www.patreon.com/gideonbot)
to support the development, and maintenance of this project. Thank you!


### Credits

This project currently being owned and maintained by __adrifcastr.__
npm package: @shinetools/rich-text-from-markdown
Description: convert markdown to rich text
Author: Khaled Garbaya
Latest version: 12.1.2

# rich-text-from-markdown

A Typescript library that converts markdown to rich text.

## Installation

Using [npm](http://npmjs.org/):

```sh
npm install @contentful/rich-text-from-markdown
```

Using [yarn](https://yarnpkg.com/):

```sh
yarn add @contentful/rich-text-from-markdown
```

## Usage

### Basic

```js
const richTextFromMarkdown = require('@contentful/rich-text-from-markdown');

const document = richTextFromMarkdown('# Hello World')
```

### Advanced

The library will convert automatically the following markdown nodes:

- `paragraph`
- `heading`
- `text`
- `emphasis`
- `strong`
- `delete`
- `inlineCode`
- `link`
- `thematicBreak`
- `blockquote`
- `list`
- `listItem`

If the markdown content has unsupported nodes like image `![image](url)` you can add a callback as a second argument
and it will get called everytime an unsupported node is found. The return value of the callback will be the rich text representation
of that node.

#### Example:

```js
const { richTextFromMarkdown } = require('@contentful/rich-text-from-markdown');

// define your own type for unsupported nodes like asset
const document = richTextFromMarkdown(
  '![image](\'https://example.com/image.jpg\')',
  node => ({
    nodeType: 'embedded-[entry|asset]-[block|inline]',
    content: [],
    data: {
      target: {
        sys: {
          type: 'Link',
          linkType: 'Entry|Asset',
          id: '.........'
        }
      }
    }
  })
);
```
npm package: @shinewithyou/zyt-element
Description: zyt vue3 components library
Author: Shine Chou
Latest version: 1.0.0

# 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.

## Recommended IDE Setup

- [VS Code](https://code.visualstudio.com/) + [Volar](https://marketplace.visualstudio.com/items?itemName=Vue.volar) (and disable Vetur) + [TypeScript Vue Plugin (Volar)](https://marketplace.visualstudio.com/items?itemName=Vue.vscode-typescript-vue-plugin).

## Type Support For `.vue` Imports in TS

TypeScript cannot handle type information for `.vue` imports by default, so we replace the `tsc` CLI with `vue-tsc` for type checking. In editors, we need [TypeScript Vue Plugin (Volar)](https://marketplace.visualstudio.com/items?itemName=Vue.vscode-typescript-vue-plugin) to make the TypeScript language service aware of `.vue` types.

If the standalone TypeScript plugin doesn't feel fast enough to you, Volar has also implemented a [Take Over Mode](https://github.com/johnsoncodehk/volar/discussions/471#discussioncomment-1361669) that is more performant. You can enable it by the following steps:

1. Disable the built-in TypeScript Extension
   1. Run `Extensions: Show Built-in Extensions` from VSCode's command palette
   2. Find `TypeScript and JavaScript Language Features`, right click and select `Disable (Workspace)`
2. Reload the VSCode window by running `Developer: Reload Window` from the command palette.
npm package: @shing19/feishu-wechat-cli
Description: CLI for publishing Feishu docs to WeChat Official Account drafts
Author: shing
Latest version: 0.1.0

# @shing19/feishu-wechat-cli

把飞书文档一键发布到微信公众号草稿箱的 CLI。

安装：

```bash
npm install -g @shing19/feishu-wechat-cli
```

支持：
- 从飞书 `wiki/docx` 抓取 Markdown
- 自动下载飞书正文图片并上传到微信素材库
- 发布到微信公众号草稿箱
- 可选自动生成封面图

## 安装

### 1. 安装项目依赖

```bash
pnpm install
pnpm build
```

### 2. 安装飞书官方 CLI（必需）

本项目依赖飞书官方开源工具 **`larksuite/cli`** 来抓取文档和下载图片。

仓库：<https://github.com/larksuite/cli>

安装方式示例：

```bash
npm install -g @larksuiteoapi/cli
lark-cli --help
```

如果 `lark-cli --help` 能正常输出，说明依赖已安装完成。

## 环境变量

复制一份本地配置：

```bash
cp .env.example .env
```

最少需要配置：

```env
WECHAT_APP_ID=your_wechat_appid
WECHAT_APP_SECRET=your_wechat_appsecret
```

如果你要用自动封面：

```env
IMAGE_API_KEY=...
IMAGE_BASE_URL=...
```

## 用法

### 1. 从飞书直接发布

```bash
feishu-wechat publish \
  --feishu "https://my.feishu.cn/wiki/xxxxxxxx" \
  --article-author "Your Name"
```

### 2. 从飞书直接发布，并自动生成封面

```bash
feishu-wechat publish \
  --feishu "https://my.feishu.cn/wiki/xxxxxxxx" \
  --auto-cover
```

### 3. 发布本地 Markdown

```bash
feishu-wechat publish -f ./article.md
```

## 开源配置设计

本项目只读取当前目录下的 `.env`。

微信配置只保留一套命名：

- `WECHAT_APP_ID`
- `WECHAT_APP_SECRET`

飞书抓取与图片下载默认内建使用 `lark-cli`，不做额外 provider 配置。
封面生成也内建在本仓库 `scripts/generate-cover.py` 中，只通过环境变量提供模型访问配置：

- `IMAGE_API_KEY`
- `IMAGE_BASE_URL`

## 注意事项

- 当前自动封面依赖外部生图服务，可能遇到 429；建议后续补重试和降级策略
npm package: @shing952/stylelint-config
Description: 一个基于 Stylelint 的可共享配置包，支持 SCSS 和 Vue 单文件组件中的样式检查。
Author: shing952
Latest version: 0.0.1

# @shing952/stylelint-config

一个基于 Stylelint 的可共享配置包，支持 SCSS 和 Vue 单文件组件中的样式检查。

## 功能特性

- 基于 `stylelint-config-standard` 的标准规则
- 支持 SCSS 语法 (`stylelint-config-standard-scss`)
- 支持 Vue 单文件组件中的样式 (`stylelint-config-standard-vue`)
- 使用 `stylelint-config-rational-order` 实现合理的属性顺序
- 可通过选项自定义规则

## 安装

```bash
npm install @shing952/stylelint-config --save-dev
# 或
pnpm add @shing952/stylelint-config -D
# 或
yarn add @shing952/stylelint-config --dev
```

## 使用方法

在你的项目根目录创建 `.stylelintrc.js` 文件：

```js
module.exports = require('@shing952/stylelint-config');
```

或者使用 ES 模块语法创建 `.stylelintrc.cjs` 文件：

```js
module.exports = require('@shing952/stylelint-config');
```

### 自定义规则

你可以通过传入选项来自定义规则：

```js
const stylelintConfig = require('@shing952/stylelint-config');

module.exports = stylelintConfig({
  rules: {
    // 在这里添加你的自定义规则
    'indentation': 2,
    'string-quotes': 'single',
  }
});
```

## 配置详情

该配置包包含以下扩展和插件：

- **扩展配置**:
  - `stylelint-config-standard`：Stylelint 标准规则
  - `stylelint-config-standard-scss`：SCSS 扩展规则
  - `stylelint-config-standard-vue/scss`：Vue 单文件组件中的 SCSS 规则
  - `stylelint-config-rational-order`：CSS 属性排序规则

- **插件**:
  - `stylelint-scss`：SCSS 语法支持

- **默认规则**:
  - `selector-class-pattern: null`：关闭类名模式检查

## 发布信息

- 版本：0.0.1
- 许可证：MIT
- 作者：shing952 <shing952@qq.com>
- 发布地址：https://packages.aliyun.com/65756826987e8ab2c89c7048/npm/npm-registry/

## 贡献指南

欢迎提交 Pull Request 或 Issue，具体请参考 [CONTRIBUTING.md](./CONTRIBUTING.md)。
npm package: @shingo/auth-api-client
Description: Client for Shingo auth api
Author: Abraham White
Latest version: 1.0.0-alpha.8

# @shingo/auth-api-client

Client library for @shingo/auth-api-server

## Usage

1. Install the library as a dependency `npm i --save-dev @shingo/auth-api-client`
2. Import the `AuthClient` class from the index and instantiate with the server address:

```ts
import { AuthClient } from '@shingo/shingo-auth-api'
const client = new AuthClient('api.shingo.org:1337')
client
  .login({ email: 'blah@blah', password: 'asdf', services: 'some-service' })
  .then(res => {
    // do something
  })
```
npm package: @shingo/auth-api-server
Description: Provide auth services for Shingo APIs
Author: Abraham White
Latest version: 1.0.0-alpha.8

# @shingo/auth-api-server

GRPC server for authentication services

## Usage

1. Clone the repository and build with `npm run build`
2. Run with `npm start`

## Running

`npm i -g @shingo/auth-api-server && npx auth-api-server` OR `npx @shingo/auth-api-server`
npm package: @shingo/describe2ts
Description: Converts salesforce DescribeSObject results to typescript interfaces
Author: Abraham White
Latest version: 0.1.1

# describe2ts

Converts a salesforce DescribeSObjectResult object (typically produced by jsforce)
to a salesforce interface

## Usage Example

```ts
import describe2ts from 'describe2ts'
import { writeFileSync } from 'fs'

// describe files retrieved from somewhere
const describes: DescribeSObjectResult[] = getDescribes()

const nameMatch = ['Contact', 'Account']

// only create interfaces for the objects in the nameMatch array
const resolver = (name: string) =>
  nameMatch.includes(name) ? `import("./${name}").default` : null

// used for determining nillability of child relationships
// this is optional
const sobjectResolver = (name: string) => describes.find(d => d.name === name)

for (const desc of describes) {
  const iface = describe2ts(desc, resolver, sobjectResolver)
  writeFileSync(`${desc.name}.ts`, iface, 'utf8')
}
```

## API

### describe2ts

| Parameter       | Type                                                                                                   | Description                                                                                     | Required |
| --------------- | ------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------- | -------- |
| desc            | `DescribeSObjectResult`                                                                                | a DescribeSObjectResult object                                                                  | ✓        |
| resolver        | `string => Option<string> \| string \| null \| undefined`                                              | a function that resolves the name of a Salesforce Object to a typescript type string            | ✓        |
| sobjectResolver | `undefined \| (string => Option<DescribeSObjectResult> \| DescribeSObjectResult \| null \| undefined)` | an optional function that resolves the name of a Salesforce Object to its DescribeSObjectResult | ✗        |
| newtype         | `undefined \| boolean`                                                                                 | use newtypes instead of typescript primitives                                                   | ✗        |
| sfTypeResolver  | `undefined \| { readonly [k in FieldType]: (f: Field, newtype?: boolean) => string }`                  | a map of functions from salesforce types to typescript types                                    | ✗        |
| defaultExport   | `undefined \| boolean`                                                                                 | add a default export line to the output text                                                    | ✗        |
npm package: @shingo/shingo-auth-api
Description: Provide auth services for Shingo APIs
Author: Abraham White
Latest version: 1.1.0-beta.2

# shingo-auth-api

Client library and grpc server for authentication

## Usage
### Server
1. Clone the repository and build with `npm run build`
2. Run with `npm start`

In the future we may have a npm bin install. At that point you can install the server with
`npm i -g @shingo/shingo-auth-api` and run `npx shingo-auth-api-server`
### Client
1. Install the library as a dependency `npm i --save-dev @shingo/shingo-auth-api`
2. Import the `AuthClient` class from the index and instantiate with the server address:
```ts
  import { AuthClient } from '@shingo/shingo-auth-api'
  const client = new AuthClient('api.shingo.org:1337')
  client.login({ email: 'blah@blah', password: 'asdf', services: 'some-service' }).then(res => {
    // do something
  })
```
npm package: @shingo/shingo-sf-api
Description: Interface with our SF instance.
Author: Dustin E. Homan
Latest version: 1.0.0
Deprecated: Use the @shingo/sf-api-client and @shingo/sf-api-server packages

# shingo-sf-api

Client library and grpc server for communicating with a salesforce instance

## Usage
### Server
1. Clone the repository and build with `npm run build`
2. Run with `npm start`

In the future we may have a npm bin install. At that point you can install the server with
`npm i -g @shingo/shingo-sf-api` and run `npx shingo-sf-api-server`
### Client
1. Install the library as a dependency `npm i --save-dev @shingo/shingo-sf-api`
2. Import the `SalesforceClient` class from the index and instantiate with the server address:
```ts
  import { SalesforceClient } from '@shingo/shingo-sf-api'
  const client = new SalesforceClient('api.shingo.org:1337')
  client.query({ fields: ['Id', 'Name'], table: 'Contact' }).then(res => {
    // do something
  })
```
npm package: @shingo/tslint-rules
Description: tslint rules common to all shingo projects
Author: Abraham White
Latest version: 1.1.0

# tslint-rules
tslint rules common to all shingo projects

## Install
```
npm install --save-dev @shingo/tslint-rules && npm install --save-dev tslint
```

## Usage
Add the following to your `tslint.json`
```json
{
  "extends": "@shingo/tslint-rules"
}
```
npm package: @shinigami92/url-parser
Description: Parse a given URL and return an abstract syntax tree
Author: Christopher Quadflieg
Latest version: 1.0.0-alpha.1

# URL Parser

<p align="center">
  <a href="https://github.com/Shinigami92/url-parser/blob/main/LICENSE">
    <img alt="license: MIT" src="https://img.shields.io/github/license/Shinigami92/url-parser.svg?style=flat-square"></a>
  <!-- <a href="https://www.npmjs.com/package/@Shinigami92/url-parser">
    <img alt="NPM package" src="https://img.shields.io/npm/v/@Shinigami92/url-parser.svg?style=flat-square"></a> -->
  <!-- <a href="https://www.npmjs.com/package/@Shinigami92/url-parser">
    <img alt="downloads" src="https://img.shields.io/npm/dt/@Shinigami92/url-parser.svg?style=flat-square"></a> -->
  <a href="#badge">
    <img alt="code style: Prettier" src="https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat-square"></a>
  <a href="https://github.com/Shinigami92/url-parser/actions?query=branch%3Amain+workflow%3ACI">
    <img alt="Build Status" src="https://github.com/Shinigami92/url-parser/workflows/CI/badge.svg?branch=main"></a>
</p>

Parse a given URL and return an abstract syntax tree

<img src="https://g.gravizo.com/svg?digraph%20AST%20%7B%0A%09path_segment%20%5Blabel%3D%22path-segment%5B%5D%22%5D%0A%0A%09url%20-%3E%20%7B%20schema%2C%20authority%2C%20path%2C%20query%2C%20fragment%20%7D%3B%0A%09authority%20-%3E%20%7B%20host%2C%20port%20%7D%3B%0A%09path%20-%3E%20%7B%20path_segment%20%7D%0A%7D%0A">
npm package: @shinigamidev/comment-client
Description: client for waline comment system
Author: shinigamiapp
Latest version: 2.7.0-alpha

<!-- markdownlint-disable MD033 MD041 -->

<img src="./assets/logo.png" width="200" align="right" alt="Waline logo" />

# Waline

A simple comment system with backend support.

![Author](https://img.shields.io/badge/author-lizheming,%20Mr.Hope-blue?style=for-the-badge) [![qq](https://img.shields.io/badge/qq-waline交流群-f75137?logo=TencentQQ&style=for-the-badge)](https://jq.qq.com/?_wv=1027&k=bKoVBppG) [![telegram](https://img.shields.io/badge/telegram-walinejs-2ca5e0?logo=telegram&style=for-the-badge)](https://t.me/walinejs)

This package is the official client for Waline.

For related docs, see [waline.js.org](https://waline.js.org).
npm package: @shinigamiscans/waline-client
Description: client for waline comment system
Author: zenshirayuki
Latest version: 1.0.0

<!-- markdownlint-disable MD033 MD041 -->

<img src="./assets/logo.png" width="200" align="right" alt="Waline logo" />

# Waline

A simple comment system with backend support.

![Author](https://img.shields.io/badge/author-lizheming,%20Mr.Hope-blue?style=for-the-badge) [![qq](https://img.shields.io/badge/qq-waline交流群-f75137?logo=TencentQQ&style=for-the-badge)](https://jq.qq.com/?_wv=1027&k=bKoVBppG) [![telegram](https://img.shields.io/badge/telegram-walinejs-2ca5e0?logo=telegram&style=for-the-badge)](https://t.me/walinejs)

This package is the official client for Waline.

For related docs, see [waline.js.org](https://waline.js.org).
npm package: @shinin/load-script
Description: Load script asynchronously.
Author: Jason Chung
Latest version: 1.0.4

# @shinin/load-script · [![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/shiningjason/load-script/blob/master/LICENSE) [![npm](https://img.shields.io/npm/v/@shinin/load-script.svg)](https://www.npmjs.com/package/@shinin/load-script) [![Build Status](https://travis-ci.org/shiningjason/load-script.svg?branch=master)](https://travis-ci.org/shiningjason/load-script)

`@shinin/load-script` is a simple async script loader for modern browsers.

### 3 seconds quick view

```js
import loadScript from '@shinin/load-script'

export default async function loadSDK() {
  await loadScript('http://foo.bar/sdk.js')
  // Now, you can do what you want after SDK.js has loaded...
}
```

## Installation
```
npm install @shinin/load-script --save
```

Also you can use `@shinin/load-script` as a `<script>` tag from a [CDN](https://unpkg.com/@shinin/load-script/dist/load-script.min.js).

```html
<!-- Use promise-polyfill only if you want to support old browsers. -->
<!-- <script src="https://unpkg.com/promise-polyfill"></script> -->
<script src="https://unpkg.com/@shinin/load-script/dist/load-script.min.js"></script>
```

## Browser Support

- Chrome
- Firefox
- Safari 7.1+
- Safari 5.1+ (with [promises-polyfill](https://github.com/taylorhakes/promise-polyfill))
- IE 8+ (with [promises-polyfill](https://github.com/taylorhakes/promise-polyfill))

## License

[MIT](https://github.com/shiningjason/load-script/blob/master/LICENSE)
npm package: @shinka-rpc/dedicated-worker
Description: Symmetric RPC bus. [Documentation is here](https://shinka-rpc-js.readthedocs.io/latest/transports/dedicated-worker/)
Author: AI Kavalevich
Latest version: 0.0.1

# @shinka-rpc/dedicated-worker [not tested!]

Symmetric RPC bus. [Documentation is here](https://shinka-rpc-js.readthedocs.io/latest/transports/dedicated-worker/)

This package implements the transport implementation of
[@shinka-rpc/core](https://www.npmjs.com/package/@shinka-rpc/core) for
[Worker](https://developer.mozilla.org/en-US/docs/Web/API/Worker)

# Usage

## `client` case

```typescript
import { ClientBus, FactoryClient } from "@shinka-rpc/core";
import { DedicatedWorker2FactoryData } from "@shinka-rpc/dedicated-worker";

const factory: FactoryClient<ClientBus> = async (bus) =>
  DedicatedWorker2FactoryData(
    new Worker(new URL("./worker.ts", import.meta.url)),
    bus,
  );

export const bus = new ClientBus({ factory });

bus.start();
```

## `worker` side

**IMPORTANT**: on
[Worker](https://developer.mozilla.org/en-US/docs/Web/API/Worker) side you have
to use `ClientBus`

```typescript
// @ts-nocheck
declare let onmessage: (event: MessageEvent) => void;

import { ClientBus } from "@shinka-rpc/core";
import {
  DedicatedWorkerServer,
  createOnMessage,
} from "@shinka-rpc/dedicated-worker";
import serializer from "@shinka-rpc/serializer-json";  // for example

export const server = new ClientBus({
  factory: DedicatedWorkerServer,
  serializer,
});

onmessage = createOnMessage(server);
```
npm package: @shinka-rpc/serializer-bson
Description: Symmetric RPC bus. [Documentation is here](https://shinka-rpc-js.readthedocs.io/latest/serializers/bson/)
Author: AI Kavalevich
Latest version: 0.0.1

# @shinka-rpc/serializer-bson

Symmetric RPC bus. [Documentation is here](https://shinka-rpc-js.readthedocs.io/latest/serializers/bson/)

This package implements serializer into BSON

# Usage

```typescript
import serializer from "@shinka-rpc/serializer-bson";
```
npm package: @shinka-rpc/serializer-json
Description: Symmetric RPC bus. [Documentation is here](https://shinka-rpc-js.readthedocs.io/latest/serializers/json/)
Author: AI Kavalevich
Latest version: 0.0.1

# @shinka-rpc/serializer-json

Symmetric RPC bus. [Documentation is here](https://shinka-rpc-js.readthedocs.io/latest/serializers/json/)

This package implements serializer into JSON

# Usage

```typescript
import serializer from "@shinka-rpc/serializer-json";
```
npm package: @shinka-rpc/serializer-msgspec
Description: Symmetric RPC bus. [Documentation is here](https://shinka-rpc-js.readthedocs.io/latest/serializers/msgspec/)
Author: AI Kavalevich
Latest version: 0.0.1

# @shinka-rpc/serializer-msgspec

Symmetric RPC bus. [Documentation is here](https://shinka-rpc-js.readthedocs.io/latest/serializers/msgspec/)

This package implements serializer into msgspec

# Usage

```typescript
import serializer from "@shinka-rpc/serializer-msgspec";
```
npm package: @shinka-rpc/shared-worker
Description: Symmetric RPC bus. [Documentation is here](https://shinka-rpc-js.readthedocs.io/latest/transports/shared-worker/)
Author: AI Kavalevich
Latest version: 0.0.2

# @shinka-rpc/shared-worker

Symmetric RPC bus. [Documentation is here](https://shinka-rpc-js.readthedocs.io/latest/transports/shared-worker/)

This package implements the transport implementation of
[@shinka-rpc/core](https://www.npmjs.com/package/@shinka-rpc/core) for
[SharedWorker](https://developer.mozilla.org/en-US/docs/Web/API/SharedWorker)

# Usage

## `client` case

```typescript
import { ClientBus, FactoryClient } from "@shinka-rpc/core";
import { SharedWorker2FactoryData } from "@shinka-rpc/shared-worker";
import serializer from "@shinka-rpc/serializer-json";  // for example

const factory: FactoryClient<ClientBus> = async (bus) =>
  SharedWorker2FactoryData(
    new SharedWorker(new URL("./worker.ts", import.meta.url)),
    bus,
  );

export const bus = new ClientBus({ factory, serializer });

bus.start();
```

### API Reference:

**SharedWorker2FactoryData**:

- **Required** instance: [SharedWorker](https://developer.mozilla.org/en-US/docs/Web/API/SharedWorker)

- **Required** bus: `ClientBus`

- **Optional** `binary`: `Boolean` &mdash; enable binary-specific `transfer` optimization. **Default**: `false`

- **Refurning**: `FactoryData`

## `server` case / `worker` side

First of all: please read the docs about
[SharedWorker](https://developer.mozilla.org/en-US/docs/Web/API/SharedWorker)
API. There is no magic.

```typescript
// @ts-nocheck
declare let onconnect: (event: MessageEvent) => void;

import { ServerBus } from "@shinka-rpc/core";
import { SharedWorkerServer } from "@shinka-rpc/shared-worker";
import serializer from "@shinka-rpc/serializer-json";  // for example

export const server = new ServerBus({ serializer });

onconnect = SharedWorkerServer(server);
```

### API Reference:

**SharedWorkerServer**:

- **Reqiored** server: `ServerBus`

- **Optional** `binary`: `Boolean` &mdash; enable binary-specific `transfer` optimization. **Default**: `false`

- **Refurning**: `(e: MessageEvent) => void`
npm package: @shinka-rpc/util
Description: Symmetric RPC bus
Author: AI Kavalevich
Latest version: 0.0.2

# @shinka-rpc/util

Symmetric RPC bus

This package implements auxiliary utilities

## sequence

Simple factory function, returning database-like sequence -- the function
returning auto-incrementing value

```typescript
import { sequence } from "@shinka-rpc/util/sequence";

const fromZero = sequence();
const fromFive = sequence(5);

// [fromZero(), fromZero(), fromZero()] === [0, 1, 2]
// [fromFive(), fromFive(), fromFive()] === [5, 6, 7]
```

**API Reference**:

- **Optional** initialValue: `Number`

## sleep

Simple wrapper over `setTimeout` and `Promise`

```typescript
import { sleep } from "@shinka-rpc/util/sleep";

await sleep(250);
```

**API Reference**:

- **Required** time: `Number` of milliseconds, passed directly to `setTimeout`
npm package: @shinka-rpc/web-socket
Description: Symmetric RPC bus. [Documentation is here](https://shinka-rpc-js.readthedocs.io/latest/transports/web-socket/)
Author: AI Kavalevich
Latest version: 0.0.2

# @shinka-rpc/web-socket

Symmetric RPC bus. [Documentation is here](https://shinka-rpc-js.readthedocs.io/latest/transports/web-socket/)

This package implements the transport implementation of
[@shinka-rpc/core](https://www.npmjs.com/package/@shinka-rpc/core) for
[WebSocket](https://developer.mozilla.org/en-US/docs/Web/API/WebSocket)

# Usage

## `client` case

```typescript
import { ClientBus, type FactoryClient } from "@shinka-rpc/core";
import { WebSocketFactoryData } from "@shinka-rpc/web-socket";
import serializer from "@shinka-rpc/serializer-json";  // for example

const factory: FactoryClient<ClientBus> = (bus) => {
  const socket = new WebSocket(process.env.WEBSOCKET_URL!);
  // Here you are able to do everything with `socket`. For example,
  // switch it to binary mode
  return WebSocketFactoryData(socket, bus);
};

export const bus = new ClientBus({ factory, serializer });

// You are able to start / stop the bus where you need it
bus.start();
```

**API Reference**: WebSocketFactoryData

- **Required** instance: `WebSocket`
- **Required** bus: `ClientBus`