open-index/open-npm huggingface dataset:
npm package: @sternelee/bencode
Description: 使用 `bencode` + `web worker` 将bt文件转成磁力链接
Author: sternelee
Latest version: 1.0.0

## bencode-worker

使用 `bencode` + `web worker` 将bt文件转成磁力链接

```
import btdecode from '@sternelee/bencode'

const file = document.getElementById('file')
file?.addEventListener('change', (evt: any) => {
    let file = evt.target.files[0]
    console.log(file)
    const reader = new FileReader()
    reader.readAsArrayBuffer(file)
    reader.onload = async function (e: any) {
        const result = await decode(e.target.result)
        console.log(result)
    }
})
```
npm package: @sternelee/indexdb-worker
Description: 使用 `web worker` 来操作 `IndexDB` 功能库
Author: sternelee
Latest version: 0.1.3

## indexdb-worker

使用 `web worker` 来操作 `IndexDB` 功能库

```bash
npm install @sternelee/indexdb-worker
```

```javascript
import IndexDbWorker from '@sternelee/indexdb-worker'
const db = new IndexDbWorker()
const isSuccess = await db.open('db_name', 1)
const data = await db.query('db_name', 'table_name', 'key_path')
const isOk = await db.add('db_name', 'table_name', { name: '123' })
const isOk = await db.close('db_name')
const isOk = await db.delete('db_name')
const total = await db.getDBSize('db_name', false)
const tableSize = await db.getTableSize('db_name', 'table_name', true)
```
npm package: @sternelee/rlottie
Description: 使用 `rlottie` + `pako` + `webworker` 在前端实现 `lottie` 的动画效果, 如 telegram 官网动画的效果, 或本地演示 `npm run dev` 优势: 体积更小，只需要 835kb 库文件 + 10Kb 左右的素材
Author: sternelee
Latest version: 1.3.0

## @sternelee/rlottie

使用 `rlottie` + `pako` + `webworker` 在前端实现 `lottie` 的动画效果, 如 telegram 官网动画的效果, 或本地演示 `npm run dev`
优势: 体积更小，只需要 835kb 库文件 + 10Kb 左右的素材

### 将 `lottie` 动画`json`文件使用 `pako` 压缩 生成素材资源

```javasript
const pako = require('pako')
const fs = require('fs')
// 建议先把 json 文件压缩: jq -c . < input.json > input.mini.json
fs.readFile('./json/xxx.json', null, function (err, data) {
  if (err) {
    console.log(err)
  }
  try {
    const buffer = pako.deflate(data, { level: 9 });
    fs.writeFile('./json/xxx', buffer, 'binary', function (err) {
      console.log(err)
    })
  } catch (e) {
    console.log(e)
  }
})
```


### 前端使用

1. 页面配置资源位置

```html
<picture class="rlottie_image">
  <source type="application/x-rlottie" srcset="xxx">
</picture>
```

2. 实现动画

~~将模块目录下的 `rlottie-worker.[hash].js` 和 `rlottie-wasm.wasm` 放置在您的静态资源目录,方便模块加载~~
已经将wasm转成base64打入代码中

```javasript
import Rlottie from '@sternelee/rlottie'

window.onload = () => {
  document.querySelectorAll('.rlottie_image').forEach(function (imgEl) {
    RLottie.init(imgEl, {});
  });
}
```
npm package: @sternelee/translator-worker
Description: 前端实现页面翻译,从 [Traduzir-paginas-web 插件](https://gitee.com/sternelee/Traduzir-paginas-web) 提取而来
Author: sternelee
Latest version: 1.2.0

## translator-worker

前端实现页面翻译,从 [Traduzir-paginas-web 插件](https://gitee.com/sternelee/Traduzir-paginas-web) 提取而来


### 使用

```javascript
import translator from '@sternelee/translator-worker'

window.onload = async function () {
  // 翻译全文
  translator.translatePage("zh");

  // 翻译文本
  const txt = await translator.translateText("google", "zh", "I Love Code");

  // 恢复
  setTimeout(() => {
    translator.restorePage()
  }, 5000)
}
```
npm package: @sternelee/wasm-gcid
Description: ## 安装
Latest version: 0.1.6

# 基于 `rust` 编译出来的 `wasm` 版本 来进行文件`gcid` 计算

## 安装

```bash
npm install --save @sternelee/wasm-gcid
```

```javascript
import * as wasm from "@sternelee/wasm-gcid"
console.log(wasm)
```