open-index/open-npm huggingface dataset:
npm package: @koishi/m-loader
Description: ### Install
Latest version: 0.0.2

## a loader plugin for menhera

### Install

```bash
$ yarn add @koishi/m-loader
```

### Usage

```js
const Mhr = require("menhera").default;
const loader = require("m-loader");

Mhr.use(loader).use({
  load: {
    dir: `${__dirname}/modules`
  }
});
```
npm package: @koishijs/cache
Description: Assets service for Koishi
Author: Shigma
Latest version: 2.1.0

# [@koishijs/cache](https://cache.koishi.chat)

在 Koishi 中使用缓存服务。

## 插件

- [koishi-plugin-cache-database](https://cache.koishi.chat/plugins/database.html)
- [koishi-plugin-cache-memory](https://cache.koishi.chat/plugins/memory.html)
- [koishi-plugin-cache-redis](https://cache.koishi.chat/plugins/redis.html)

## 许可证

使用 [MIT](./LICENSE) 许可证发布。

```
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
```
npm package: @koishijs/canvas
Description: Canvas service for Koishi
Author: Shigma
Latest version: 0.2.0

# [@koishijs/canvas](https://canvas.koishi.chat)

Koishi 通用 Canvas 服务。

## 许可证

使用 [MIT](./LICENSE) 许可证发布。

```
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
```
npm package: @koishijs/dns
Description: Node.js dns module ponyfill for browser
Author: Shigma
Latest version: 1.0.1

# @koishijs/dns

[![npm](https://img.shields.io/npm/v/@koishijs/dns?style=flat-square)](https://www.npmjs.com/package/@koishijs/dns)

Node.js dns module ponyfill for browser.
npm package: @koishijs/fs
Description: Node.js fs module ponyfill for browser
Author: Shigma
Latest version: 1.3.7

# @koishijs/fs

[![npm](https://img.shields.io/npm/v/@koishijs/fs?style=flat-square)](https://www.npmjs.com/package/@koishijs/fs)

Node.js fs module ponyfill for browser.
npm package: @koishijs/os
Description: Node.js os module ponyfill for browser
Author: Shigma
Latest version: 1.0.2

# @koishijs/os

[![npm](https://img.shields.io/npm/v/@koishijs/os?style=flat-square)](https://www.npmjs.com/package/@koishijs/os)

Node.js os module ponyfill for browser.
npm package: @koishijs/path
Description: Node.js path module ponyfill for browser
Author: Shigma
Latest version: 1.0.0

# @koishijs/path

[![npm](https://img.shields.io/npm/v/@koishijs/path?style=flat-square)](https://www.npmjs.com/package/@koishijs/path)

Node.js path module ponyfill for browser.
npm package: @koishijs/plugin-adapter-onebot
Description: OneBot Adapter for Koishi
Author: Shigma
Latest version: 6.0.2
Deprecated: official support for onebot has been dropped

# [@koishijs/plugin-adapter-onebot](https://koishi.chat/plugins/adapter/onebot.html)

OneBot adapter for [Koishi](https://koishi.chat).

- [Documentation](https://koishi.chat/plugins/adapter/onebot.html)
npm package: @koishijs/plugin-adapter-qqguild
Description: QQ Guild Adapter for Koishi
Author: Shigma
Latest version: 4.0.1
Deprecated: please use @koishijs/plugin-adapter-qq instead

# [@koishijs/plugin-adapter-qqguild](https://koishi.chat/plugins/adapter/qqguild.html)

QQ Guild (QQ 频道) adapter for [Koishi](https://koishi.chat).

- [Documentation](https://koishi.chat/plugins/adapter/qqguild.html)
npm package: @koishijs/plugin-proxy
Description: Proxy service for Koishi
Author: Shigma
Latest version: 1.0.0
Deprecated: use @koishijs/plugin-router-proxy instead

# [@koishijs/plugin-proxy](https://koishi.chat/plugins/develop/proxy.html)

Proxy service for [Koishi](https://koishi.chat).

- [Documentation](https://koishi.chat/plugins/develop/proxy.html)
npm package: @koishijs/plugin-router-proxy
Description: Proxy service for Koishi
Author: Shigma
Latest version: 1.0.0
Deprecated: use @koishijs/plugin-server-proxy instead

# [@koishijs/plugin-router-proxy](https://koishi.chat/plugins/develop/router-proxy.html)

Proxy service for [Koishi](https://koishi.chat).

- [Documentation](https://koishi.chat/plugins/develop/router-proxy.html)
npm package: @koishijs/plugin-schedule
Description: Create Scheduled Tasks for Koishi
Author: Shigma
Latest version: 4.3.2
Deprecated: please use koishi-plugin-schedule instead

# [koishi-plugin-schedule](https://koishi.chat/plugins/schedule.html)

[![npm](https://img.shields.io/npm/v/koishi-plugin-schedule?style=flat-square)](https://www.npmjs.com/package/koishi-plugin-schedule)
npm package: @koishijs/plugin-teach
Description: Teach plugin for Koishi
Author: Shigma
Latest version: 3.2.2
Deprecated: use koishi-plugin-dialogue instead

# [koishi-plugin-teach](https://koishi.js.org/plugins/teach.html)

[![npm](https://img.shields.io/npm/v/koishi-plugin-teach?style=flat-square)](https://www.npmjs.com/package/koishi-plugin-teach)
npm package: @koishijs/translator
Description: Translator service for Koishi
Author: Shigma
Latest version: 1.1.1

# [@koishijs/translator](https://translator.koishi.chat)

在 Koishi 中使用翻译服务。

## 插件

- [koishi-plugin-translator-baidu](https://translator.koishi.chat/plugins/baidu.html)
- [koishi-plugin-translator-youdao](https://translator.koishi.chat/plugins/youdao.html)

## 许可证

使用 [MIT](./LICENSE) 许可证发布。

```
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
```
npm package: @koishijs/url
Description: Node.js url module ponyfill for browser
Author: Shigma
Latest version: 1.0.3

# @koishijs/url

[![npm](https://img.shields.io/npm/v/@koishijs/url?style=flat-square)](https://www.npmjs.com/package/@koishijs/url)

Node.js url module ponyfill for browser.
npm package: @koishims/koishi-plugin-miaoauth
Description: 圈云市场授权管理插件
Latest version: 0.0.2

# @koishims/koishi-plugin-miaoauth

[![npm](https://img.shields.io/npm/v/@koishims/koishi-plugin-miaoauth?style=flat-square)](https://www.npmjs.com/package/@koishims/koishi-plugin-miaoauth)

miao shop auth manager
npm package: @koiswap/router-sdk
Description: An sdk for routing swaps using Uniswap v2 and Uniswap v3.
Latest version: 1.0.3

# Alpha software

The latest version of the SDK is used in production in the Uniswap Interface,
but it is considered Alpha software and may contain bugs or change significantly between patch versions.
If you have questions about how to use the SDK, please reach out in the `#dev-chat` channel of the Discord.
Pull requests welcome!

# Uniswap Swap Router SDK

This SDK is meant to facilitate interactions with the contracts in [swap-router-contracts](https://github.com/Uniswap/swap-router-contracts).
npm package: @koiswap/sdk-core
Description: ⚒️ An SDK for building applications on top of Uniswap V3
Latest version: 1.0.5

# Uniswap SDK Core

[![npm version](https://img.shields.io/npm/v/@uniswap/sdk-core/latest.svg)](https://www.npmjs.com/package/@uniswap/sdk-core/v/latest)
[![npm bundle size (scoped version)](https://img.shields.io/bundlephobia/minzip/@uniswap/sdk-core/latest.svg)](https://bundlephobia.com/result?p=@uniswap/sdk-core@latest)

This code is shared across Uniswap TypeScript SDKs.
npm package: @koiswap/universal-router-sdk
Description: sdk for integrating with the Universal Router contracts
Latest version: 1.0.3

# universal-router-sdk
This SDK facilitates interactions with the contracts in [Universal Router](https://github.com/Uniswap/universal-router)

## Usage
Install latest version of universal-router-sdk. Then import the corresponding Trade class and Data object for each protocol you'd like to interact with.

### Trading on Uniswap
warning: `swapERC20CallParameters()` to be deprecated in favor of `swapCallParameters()`
```typescript
import { TradeType } from '@koiswap/sdk-core'
import { Trade as V2TradeSDK } from '@koiswap/v2-sdk'
import { Trade as V3TradeSDK } from '@koiswap/v3-sdk'
import { MixedRouteTrade, MixedRouteSDK, Trade as RouterTrade } from '@koiswap/router-sdk'

const options = { slippageTolerance, recipient }
const routerTrade = new RouterTrade({ v2Routes, v3Routes, mixedRoutes, tradeType: TradeType.EXACT_INPUT })
// Use the raw calldata and value returned to call into Universal Swap Router contracts
const { calldata, value } = SwapRouter.swapCallParameters(routerTrade, options)
```

## Running this package
Make sure you are running `node v18`
Install dependencies and run typescript unit tests
```bash
yarn install
yarn test:hardhat
```

Run forge integration tests
```bash
forge install
yarn test:forge
```
npm package: @koiswap/v2-sdk
Description: 🛠 An SDK for building applications on top of Uniswap V2
Latest version: 1.0.3

# Uniswap V2 SDK

[![npm version](https://img.shields.io/npm/v/@uniswap/v2-sdk/latest.svg)](https://www.npmjs.com/package/@uniswap/v2-sdk/v/latest)
[![npm bundle size (scoped version)](https://img.shields.io/bundlephobia/minzip/@uniswap/v2-sdk/latest.svg)](https://bundlephobia.com/result?p=@uniswap/v2-sdk@latest)

In-depth documentation on this SDK is available at [uniswap.org](https://uniswap.org/docs/v2/SDK/getting-started/).
npm package: @koiswap/v3-sdk
Description: ⚒️ An SDK for building applications on top of Uniswap V3
Latest version: 1.0.3

# Alpha software

The latest version of the SDK is used in production in the Uniswap Interface,
but it is considered Alpha software and may contain bugs or change significantly between patch versions.
If you have questions about how to use the SDK, please reach out in the `#dev-chat` channel of the Discord.
Pull requests welcome!

# Uniswap V3 SDK

[![npm version](https://img.shields.io/npm/v/@uniswap/v3-sdk/latest.svg)](https://www.npmjs.com/package/@uniswap/v3-sdk/v/latest)
[![npm bundle size (scoped version)](https://img.shields.io/bundlephobia/minzip/@uniswap/v3-sdk/latest.svg)](https://bundlephobia.com/result?p=@uniswap/v3-sdk@latest)

In-depth documentation on this SDK is available at [uniswap.org](https://docs.uniswap.org/).
npm package: @koj-co/prettierrc
Description: Configuration for Prettier
Author: Anand Chowdhary
Latest version: 0.0.0

# 💄 `prettierrc`

This repository contains the common configuration for the [Prettier](https://github.com/prettier/prettier) code formatter.

## 💻 Usage

Install the package as a dev dependency from [npm](https://www.npmjs.com/package/@koj-co/prettierrc):

```bash
npm install --save-dev @koj-co/prettierrc
```

Create a Prettier config file `.prettierrc.cjs` in the project room:

```js
module.exports = require("@koj-co/prettierrc");
```

## 📄 License

- Code: [MIT](./LICENSE) © [Koj](https://koj.co)

<p align="center">
  <a href="https://koj.co">
    <img width="44" alt="Koj" src="https://kojcdn.com/v1598284251/website-v2/koj-github-footer_m089ze.svg">
  </a>
</p>
<p align="center">
  <sub>An open source project by <a href="https://koj.co">Koj</a>. <br> <a href="https://koj.co">Furnish your home in style, for as low as CHF175/month →</a></sub>
</p>
npm package: @koj/config
Description: Common configuration files for Koj projects
Author: Anand Chowdhary
Latest version: 1.2.11

# 🛠️ Koj config files

This repository contains the common configuration files for Koj projects.

## 💻 Usage

Install the package as a dev dependency from [npm](https://www.npmjs.com/package/@koj/config):

```bash
npm install --save-dev @koj/config
```

### Prettier

Our Prettier configuration keeps all defaults with the exception of print width, which is set at 100 characters rather than 80. To use this configuration, create a Prettier config file `.prettierrc.cjs` in the project root:

```js
module.exports = require("@koj/config").prettier;
```

### Semantic Release

We use [Semantic Release](https://github.com/semantic-release/semantic-release) for automated deployments of our packages. Our configuration adds support for [Gitmoji](https://gitmoji.carloscuesta.me) commits, creating release notes with a `CHANGELOG.md`, and publishing to GitHub and npm.

Create a Semantic Release config file `release.config.js` in the project room. If you want to release the `master` or `production` branches, you can use the import directly:

```js
module.exports = require("@koj/config").master;
```

Alternately, you can specify the branch you want to release:

```js
module.exports = require("@koj/config").release("branch-name");
```

## 📄 License

- Code: [MIT](./LICENSE) © [Koj](https://koj.co)

<p align="center">
  <a href="https://koj.co">
    <img width="44" alt="Koj" src="https://kojcdn.com/v1598284251/website-v2/koj-github-footer_m089ze.svg">
  </a>
</p>
<p align="center">
  <sub>An open source project by <a href="https://koj.co">Koj</a>. <br> <a href="https://koj.co">Furnish your home in style, for as low as CHF175/month →</a></sub>
</p>
npm package: @koj/firebase-sync
Description: Sync new Firebase records in near real-time
Author: Anand Chowdhary
Latest version: 1.1.1

# 🎬 GitHub Actions Starter

GitHub Actions starter for TypeScript with automated releases to `dist`, Semantic Release, and auto-PR merges.

[![Build CI](https://github.com/koj-co/firebase-sync/workflows/Build%20CI/badge.svg)](https://github.com/koj-co/firebase-sync/actions?query=workflow%3A%22Build+CI%22)
[![Test CI](https://github.com/koj-co/firebase-sync/workflows/Test%20CI/badge.svg)](https://github.com/koj-co/firebase-sync/actions?query=workflow%3A%22Test+CI%22)
[![Release CI](https://github.com/koj-co/firebase-sync/workflows/Release%20CI/badge.svg)](https://github.com/koj-co/firebase-sync/actions?query=workflow%3A%22Release+CI%22)
[![Node CI](https://github.com/koj-co/firebase-sync/workflows/Node%20CI/badge.svg)](https://github.com/koj-co/firebase-sync/actions?query=workflow%3A%22Node+CI%22)

## ⭐ Features

- Write source in TypeScript
- Auto-publish compiled code to `dist/`
- Semantic Release to GitHub and npm
- Includes Actions Core and Octokit

[**Create a repository using this template →**](https://github.com/koj-co/firebase-sync/generate)

## 📄 License

- Code: [MIT](./LICENSE) © [Koj](https://koj.co)
- "GitHub" is a trademark of GitHub, Inc.

<p align="center">
  <a href="https://koj.co">
    <img width="44" alt="Koj" src="https://kojcdn.com/v1598284251/website-v2/koj-github-footer_m089ze.svg">
  </a>
</p>
<p align="center">
  <sub>An open source project by <a href="https://koj.co">Koj</a>. <br> <a href="https://koj.co">Furnish your home in style, for as low as CHF175/month →</a></sub>
</p>
npm package: @koj/strapi
Description: Koj's Strapi API
Author: Anand Chowdhary
Latest version: 1.4.3

# 📑 Strapi

This repository contains the source for our headless CMS, built on [strapi/strapi](https://github.com/strapi/strapi).

## 💻 Getting started

1. Build the static site: `npm run build`
2. Run Node.js app: `npm run start`

## 📄 License

[MIT](./LICENSE) © [Koj](https://koj.co)

<p align="center">
  <a href="https://koj.co">
    <img width="44" alt="Koj" src="https://kojcdn.com/v1598284251/website-v2/koj-github-footer_m089ze.svg">
  </a>
</p>
<p align="center">
  <sub>An open source project by <a href="https://koj.co">Koj</a>. <br> <a href="https://koj.co">Furnish your home in style, for as low as CHF175/month →</a></sub>
</p>
npm package: @koj/template
Description: Koj's repository template with GitHub Actions CI, releases, and more
Author: Anand Chowdhary
Latest version: 1.0.18

# 🖌️ Template

This is a starter repository for building Node.js projects at Koj.

<!-- prettier-ignore-start -->
|   | Status |
| - | - |
| Build | [![Node CI](https://github.com/koj-co/template/workflows/Node%20CI/badge.svg)](https://github.com/koj-co/template/actions?query=workflow%3A%22Node+CI%22) [![Dependencies](https://img.shields.io/librariesio/github/koj-co/template)](https://libraries.io/github/koj-co/template) [![GitHub release (latest by date)](https://img.shields.io/github/v/release/koj-co/template)](https://github.com/koj-co/template/releases) [![Snyk Vulnerabilities for GitHub Repo](https://img.shields.io/snyk/vulnerabilities/github/koj-co/template)](https://snyk.io/test/github/koj-co/template) |
| Health | [![License CI](https://github.com/koj-co/template/workflows/License%20CI/badge.svg)](https://github.com/koj-co/template/actions?query=workflow%3A%22License+CI%22) [![CLA Assistant](https://github.com/koj-co/template/workflows/CLA%20Assistant/badge.svg)](https://github.com/koj-co/template/actions?query=workflow%3A%22CLA+Assistant%22) [![Pull Request Labeler](https://github.com/koj-co/template/workflows/Pull%20Request%20Labeler/badge.svg)](https://github.com/koj-co/template/actions?query=workflow%3A%22Pull+Request+Labeler%22) |
| PRs | [![PR Generator CI](https://github.com/koj-co/template/workflows/PR%20Generator%20CI/badge.svg)](https://github.com/koj-co/template/actions?query=workflow%3A%22PR+Generator+CI%22) [![Merge PRs](https://github.com/koj-co/template/workflows/Merge%20PRs/badge.svg)](https://github.com/koj-co/template/actions?query=workflow%3A%22Merge+PRs%22) |
<!-- prettier-ignore-end -->

## ⭐️ Features

- [Semantic Release with Gitmoji](./release.config.js)
- [Koj's Prettier configuration](./.prettierrc.cjs)
- [Dependabot configuration](./.github/dependabot.yml)
- [CI for open-source licenses](./.github/workflows/licensed.yml)
- [Pull request labeler](./.github/labeler.yml)
- [Merge PRs on approved reviews](./github/workflows/automerge.yml)
- [CLA enforcement for new contributors](./github/workflows/cla.yml)
- [Create PRs from feature/hotfix branches](./github/workflows/feature-pr.yml)
- [Write code in TypeScript](./src/index.ts)
- [Tests using Jest](./src/index.spec.ts)

## 💻 Getting started

1. [Create a new repository from this template](https://github.com/koj-co/template/generate)
2. Install dependencies using `npm install`
3. Update package details in `package.json` and `README.md`
   1. Find and replace `koj-co/template` with `user/repository`
   2. Find and replace `@koj/template` with npm project name

## 📄 License

[MIT](./LICENSE) © [Koj](https://koj.co)

<p align="center">
  <a href="https://koj.co">
    <img width="44" alt="Koj" src="https://kojcdn.com/v1598284251/website-v2/koj-github-footer_m089ze.svg">
  </a>
</p>
<p align="center">
  <sub>An open source project by <a href="https://koj.co">Koj</a>. <br> <a href="https://koj.co">Furnish your home in style, for as low as CHF175/month →</a></sub>
</p>
npm package: @koj/types
Description: Koj's repository template with GitHub Actions CI, releases, and more
Author: Anand Chowdhary
Latest version: 2.10.0

# 🏷 `@koj/types`

This repository contains shared TypeScript interfaces for Koj projects.

<!-- prettier-ignore-start -->
|   | Status |
| - | - |
| Build | [![Node CI](https://github.com/koj-co/types/workflows/Node%20CI/badge.svg)](https://github.com/koj-co/types/actions?query=workflow%3A%22Node+CI%22) [![Dependencies](https://img.shields.io/librariesio/github/koj-co/types)](https://libraries.io/github/koj-co/types) [![GitHub release (latest by date)](https://img.shields.io/github/v/release/koj-co/types)](https://github.com/koj-co/types/releases) [![Snyk Vulnerabilities for GitHub Repo](https://img.shields.io/snyk/vulnerabilities/github/koj-co/types)](https://snyk.io/test/github/koj-co/types) |
| Health | [![License CI](https://github.com/koj-co/types/workflows/License%20CI/badge.svg)](https://github.com/koj-co/types/actions?query=workflow%3A%22License+CI%22) [![CLA Assistant](https://github.com/koj-co/types/workflows/CLA%20Assistant/badge.svg)](https://github.com/koj-co/types/actions?query=workflow%3A%22CLA+Assistant%22) [![Pull Request Labeler](https://github.com/koj-co/types/workflows/Pull%20Request%20Labeler/badge.svg)](https://github.com/koj-co/types/actions?query=workflow%3A%22Pull+Request+Labeler%22) |
| PRs | [![Feature Branch Pull Request](https://github.com/koj-co/types/workflows/Feature%20Branch%20Pull%20Request/badge.svg)](https://github.com/koj-co/types/actions?query=workflow%3A%22Feature+Branch+Pull+Request%22) [![Hotfix Branch Pull Request](https://github.com/koj-co/types/workflows/Hotfix%20Branch%20Pull%20Request/badge.svg)](https://github.com/koj-co/types/actions?query=workflow%3A%22Hotfix+Branch+Pull+Request%22) [![Merge PRs](https://github.com/koj-co/types/workflows/Merge%20PRs/badge.svg)](https://github.com/koj-co/types/actions?query=workflow%3A%22Merge+PRs%22) |
<!-- prettier-ignore-end -->

## 💻 Getting started

Install [`@koj/types`](https://www.npmjs.com/package/@koj/types) from npm:

```bash
npm install @koj/types
```

Then, use the types, for example for API responses:

```ts
import { Proposal } from "@koj/types";

const proposal: Proposal = await axios.get("/proposal");
```

## 📄 License

[MIT](./LICENSE) © [Koj](https://koj.co)

<p align="center">
  <a href="https://koj.co">
    <img width="44" alt="Koj" src="https://kojcdn.com/v1598284251/website-v2/koj-github-footer_m089ze.svg">
  </a>
</p>
<p align="center">
  <sub>An open source project by <a href="https://koj.co">Koj</a>. <br> <a href="https://koj.co">Furnish your home in style, for as low as CHF175/month →</a></sub>
</p>
npm package: @kojamori/mdx-builder
Description: A package to provide some tools on procedural generation of MDX documents.
Author: Koja Mori
Latest version: 4.0.6

# MDX Builder

A utility library for building MDX content programmatically.

## Features

- Create headings, code blocks, lists, blockquotes, and more.
- Generate custom components with props.
- Easy-to-use functions for common MDX structures.

## Installation

```bash
npm install mdx-builder
```

## Usage

```typescript
import { mdxBuilder, utils } from "@kojamori/mdx-builder";

const builder = new mdxBuilder();

builder
  .addHeading("My Dynamic Document", 1)
  .addText("This document was generated programmatically.")
  .addText(
    utils.makeCodeBlock("console.log('Hello, MDX!');", "javascript", "hello.js")
  );

const mdxContent = builder.build();
console.log(mdxContent);
```

## API

For detailed API documentation, please refer to the [API Documentation](API.md).

## Contributing

Contributions are welcome! Please open an issue or submit a pull request for any improvements or bug fixes.

## Changelog

Please see [CHANGELOG.md](CHANGELOG.md) for details.

## License

This project is licensed under the MIT License. See the [LICENSE](LICENSE) file for details.
npm package: @kojibuta/ble-hci-central
Description: [![license](https://img.shields.io/badge/license-MIT-0.svg)](MIT) [![NPM](https://img.shields.io/npm/v/@kojibuta/ble-hci-central.svg)](https://www.npmjs.com/package/@kojibuta/ble-hci-central)
Author: Roberto Cerfogli
Latest version: 1.0.6

# ble-hci-central

[![license](https://img.shields.io/badge/license-MIT-0.svg)](MIT)
[![NPM](https://img.shields.io/npm/v/@kojibuta/ble-hci-central.svg)](https://www.npmjs.com/package/@kojibuta/ble-hci-central)

Bluetooth LE HCI Central for Node.js.

Mostly based on [node-bluetooth-hci-socket](https://github.com/noble/node-bluetooth-hci-socket) and [noble](https://github.com/noble/noble) projects.

**NOTE:** Currently only supports **Linux**.

## Prerequisites

- On-board Bluetooth 4.0+ controller.

- [node-gyp](https://github.com/nodejs/node-gyp?tab=readme-ov-file#installation)

**NOTE:** `node-gyp` is only required if the npm cannot find binary for your OS version.

## Install

```sh
npm install @kojibuta/ble-hci-central
```

## Usage

```js
import central from "@kojibuta/ble-hci-central";

const onAdvertisement = async (
  type,
  addressType,
  address,
  advLength,
  advData,
  rssi,
  numReports
) => {
  // Wait for an advertisement from target device C1:79:C4:77:5A:06
  if (address !== "c179c4775a06") return;
  central.off("advertisement", onAdvertisement);

  // Stop scanning before opening a connection
  await central.stopScanningAsync();

  // Connect to device
  const connection = await central.connectAsync(addressType, address);
  console.log("connected", connection);

  // Discover all services, characteristics and descriptors
  const services = await central.discoverAsync(address, true);
  console.log("services", JSON.stringify(services, null, 4));

  // Read device name
  const handle = services["1800"]?.characteristics["2a00"]?.handle;
  if (handle) {
    const result = await central.readAsync(address, handle);
    if (result.error) {
      console.log("error reading device name", result.error);
    } else {
      console.log("device name", result.value.toString("utf8"));
    }
  }

  // Close connection
  await central.disconnectAsync(address);

  // That's all folks
  process.exit(0);
};

// Start BLE HCI Central
central.start();

// Register advertisement callback
central.on("advertisement", onAdvertisement);

// Set scan parameters (active scan, allow duplicates)
central.setScanParameters(1, 0x20, 0x20, 0, 0);

// Start scanning
central.startScanning();
```

## Examples

See [examples folder](https://github.com/kojibuta/ble-hci-central/tree/main/examples) for code examples.

## Platform Notes

### Linux

#### Install system packages

```sh
sudo apt install bluez libbluetooth-dev libcap2-bin cmake
```

#### Grant permissions to Node.js

If not running as root, following permissions must be granted to node executable.

```sh
sudo setcap 'cap_net_raw,cap_net_admin+eip' $(eval readlink -f `which node`)
```
npm package: @kojikanao/gengitignore
Description: generate .gitignore file with one line command
Author: Koji Kanao
Latest version: 0.0.2

# genigore
genignore is a cli tool to create `.gitignore` file with one line command.


## install
```
$ npm i @kojikanao/gengitignore
```

```zsh
$ git clone https://github.com/koji/genigore.git
$ npm link
```
This package will be published soon

### help command
```zsh
$ genignore

    genignore [command] <options>

    lang................ specify language to create .gitignore
    version ............ show package version
    help ............... show help menu for a command
    
$ genignore version or genignore -v
v0.1.0

$ genignore help / genignore -h

    genignore [command] <options>

    lang................ specify language to create .gitignore
    version ............ show package version
    help ............... show help menu for a command

```

#### Current options
```zsh
$ genignore help lang

    genignore lang < options >

    dart............... create .gitignore for dart
    julia...............create.gitignore for julia
    kotlin...............create.gitignore for kotlin
    lua...............create.gitignore for lua
    processing...............create.gitignore for processing
    r / R...............create.gitignore for R
    scala / Scala...............create.gitignore for Scala
    node / nodejs...............create.gitignore for node
    py / python / Python...............create.gitignore for python
    go / Go / golang...............create.gitignore for go
    pl / perl...............create.gitignore for perl
    rb / ruby...............create.gitignore for ruby
    cs / csharp...............create.gitignore for csharp
    c / clang...............create.gitignore for clang
    cpp / c++...............create.gitignore for cpp
    angularjs / angular...............create.gitignore for angularjs
    vue / vuejs...............create.gitignore for vuejs
    swift...............create.gitignore for swift
    reactnative...............create.gitignore for reactnative
    objc / obj-c / objective-c / objectivec...............create.gitignore for objc
    java / Java...............create.gitignore for java
    rust / Rust...............create.gitignore for rust
    of / openframeworks...............create.gitignore for openFrameworks
```

### generate `.gitignore`
```zsh
$ genignore lang nodejs
nodejs
Successfully create .gitignore
Please check /Users/koji.kanao/Desktop/genignore
```

![result](https://github.com/koji/genigore/blob/master/result.png)
npm package: @kojimem/mcp
Description: MCP server for kojimem — semantic memory for AI agents via x402 payments
Latest version: 1.0.2

# @kojimem/mcp

MCP server for [kojimem](https://kojimem.dev) — semantic memory for AI agents via x402 micropayments.

5 tools. One env var. Under two cents per session.

## Setup

### Claude Desktop

Add to `claude_desktop_config.json`:

```json
{
  "mcpServers": {
    "kojimem": {
      "command": "npx",
      "args": ["@kojimem/mcp"],
      "env": {
        "EVM_PRIVATE_KEY": "0x..."
      }
    }
  }
}
```

`EVM_PRIVATE_KEY` is a funded EVM wallet on Base Sepolia with USDC. Get test USDC from the [Coinbase faucet](https://portal.cdp.coinbase.com/products/faucet).

### Cursor / Windsurf / Any MCP Host

Same config pattern — point the MCP host at `npx @kojimem/mcp` with `EVM_PRIVATE_KEY` in the environment.

## Tools

| Tool | Cost | Description |
|------|------|-------------|
| `create_memory` | $0.01 | Create a memory backpack. Returns a memory ID. |
| `remember` | Free | Write facts into a memory. 1-100 per call. Zero inference cost. |
| `recall` | $0.001–$0.005 | Ask a question, get a reasoned answer. Three tiers: fast, balanced, reasoning. |
| `extend_memory` | $0.005 | Add more time before a memory expires. |
| `destroy_memory` | Free | Delete a memory permanently. |

## How It Works

```
Agent ──MCP──► @kojimem/mcp ──HTTP+x402──► api.kojimem.dev ──► OpenAI
                (local)                     (Fly.io)
```

- **Paid tools** (create, recall, extend): `@x402/axios` handles the 402→pay→retry cycle automatically. The agent just calls the tool.
- **Free tools** (remember, destroy): Signed with your wallet via EIP-191 (X-SIWX header).
- **No accounts, no API keys.** Your wallet is your identity.

## Typical Session

```
create_memory(persona: "research", ttl: "1h")     → $0.010
remember(facts: ["...", "...", "..."])              → free
recall(question: "What did I find?", tier: "balanced") → $0.002
destroy_memory()                                   → free
                                            Total: $0.012
```

## Personas

Choose a persona when creating a memory — it shapes how recall reasons across your facts:

`default` · `research` · `coding` · `compliance` · `sales` · `support` · `medical`

## Environment Variables

| Variable | Required | Default | Description |
|----------|----------|---------|-------------|
| `EVM_PRIVATE_KEY` | Yes | — | EVM wallet private key (0x-prefixed) |
| `KOJIMEM_API_URL` | No | `https://api.kojimem.dev` | API base URL |

## Links

- [kojimem.dev](https://kojimem.dev) — Product site
- [api.kojimem.dev/health](https://api.kojimem.dev/health) — API status
- [x402.org](https://x402.org) — Payment protocol

## License

MIT
npm package: @kojiro.ueda/bandia
Description: Create mock object for Jest.
Latest version: 0.0.6

[![Node.js CI](https://github.com/naoki-tomita/bandia/actions/workflows/node.js.yml/badge.svg)](https://github.com/naoki-tomita/bandia/actions/workflows/node.js.yml)

# bandia
Create mock object for Jest.

## how to use

```typescript
import { mock } from "@kojiro.ueda/bandia";

class Test {
  method1() {
    return true;
  }
}

describe("test", () => {
  it("should mocked", () => {
    const instance = mock<Test>();
    instance.method1.mockReturnValueOnce(false);
    
    expect(instance.method()).toBe(false);
  });
});
```
npm package: @kojiro.ueda/csv-parser
Description: ```csv string, number, null text,    1.1, null "value1",    1.1, null " value1 ",    1.1, null "1.1",    100, null "null",    100, null ```
Latest version: 0.0.1

# CSV Parser

```csv
    string, number, null
      text,    1.1, null
  "value1",    1.1, null
" value1 ",    1.1, null
     "1.1",    100, null
    "null",    100, null
```

Will be

```json
[
  {
    "string": "text", "number": 1.1, "null": null
  },
  {
    "string": "value1", "number": 1.1, "null": null
  },
  {
    "string": " value1 ", "number": 1.1, "null": null
  },
  {
    "string": "1.1", "number": 100, "null": null
  },
  {
    "string": "null", "number": 100, "null": null
  },
]
```
npm package: @kojiro.ueda/friendly-id
Description: This library converts [friendly-id created in Rust](https://github.com/mariuszs/friendly_id) into Web Assembly, which can be called from JavaScript.
Latest version: 0.0.3

# friendly-id

This library converts [friendly-id created in Rust](https://github.com/mariuszs/friendly_id) into Web Assembly, which can be called from JavaScript.

## what is friendly-id?

See [this description](https://github.com/mariuszs/friendly_id#what-is-the-friendlyid-library)
npm package: @kojiro.ueda/promise-pool
Description: PromisePool creates a pool that limits the number of concurrent JavaScript operations using Promise.
Latest version: 0.0.4

# promise-pool

PromisePool creates a pool that limits the number of concurrent JavaScript operations using Promise.

## how to use

```typescript
import { PromisePool } from "https://deno.land/x/promise_pool@0.0.3/index.ts";

const pool = new PromisePool({ concurrency: 2 /* default 1 */ });

await Promise.all([
  pool.open(async () => {
    console.log("running 1")
    // some async process.
  }),
  pool.open(async () => {
    console.log("running 2")
    // some async process.
  }),
  pool.open(async () => {
    console.log("running 3")
    // some async process.
  }),
  pool.open(async () => {
    // some async process.
    console.log("running 4")
  }),
]);

console.log("done!")
```
npm package: @kojiro.ueda/zrouter
Description: Routing library for zheleznaya.
Latest version: 0.0.9

# zrouter

Routing library for zheleznaya.

# how to use

```tsx
import { h, createStore } from "zheleznaya";
import { Router, Link } from "@kojiro.ueda/zrouter";

const App = () => {
  return (
    <div>
      <Link href="/about">about</Link>
      <Link href="/id1">id1 page</Link>
      <Link href="/id1">id2 page</Link>
      <Router routes={{
        "/": () => <div>top page</div>,
        "/about": () => <div>about</div>,
        "/:id": ({id}) => <div>{id}</div>,
      }}/>
    </div>
  );
}
```
npm package: @kojo-io/tolle-ui
Description: A high-performance Angular UI library.
Author: Bernard Kojo Ossei-Agyei
Latest version: 1.0.1-beta

## 🛡️ License & Attribution

This library is **Open Source** and free to use for both personal and commercial projects.

However, you **cannot** replicate this library and claim it as your own work.
If you redistribute the source code or use it in a public project, the original
copyright notice and author attribution must remain intact.

**Built with ❤️ by Bernard Kojo Ossei-Agyei**

# @tolle/ui

A premium, high-performance Angular UI library meticulously crafted with a **Google Dark Mode** aesthetic. Built for speed, accessibility, and a modern "charcoal" look.



## ✨ Features

- 🌑 **Google Dark Mode First:** Optimized for `#121212` backgrounds using `color-mix` CSS technology.
- ⚡ **Zero-Animation Base:** Clean, instant state changes for a "snappy" enterprise feel.
- 🧩 **Angular Native:** Built with Reactive Forms and `ControlValueAccessor` integration.
- 📏 **Unified Sizing:** Every component scales perfectly from `xs` to `lg`.
- 🔍 **Searchable Comboboxes:** Select components with built-in real-time filtering.
- 🍞 **Advanced Toast System:** Stackable notifications with "Pause-on-Hover" and progress timers.

---

## 🚀 Installation

Install the library and its peer dependency (Floating UI):

```bash
npm install @tolle/ui @floating-ui/dom

@import "@tolle/ui/styles/theme.css";
npm package: @kojodesign/miniscale
Description: A tiny package for working with modular scale
Author: Tyler Nickerson
Latest version: 1.4.1

# Miniscale

A tiny package for working with **modular scale**, that is most useful for
[meaningful typography](https://alistapart.com/article/more-meaningful-typography).

## Installation

```sh
npm install miniscale
```

## How to use

Set up your scale with a base (font) size, and a ratio:

```js
import { scale } from 'miniscale';
const ms = scale(16, 1.125);
```

Calculate certain steps, sizes and ratios, while walking up or down
on the scale:

```js
// Two steps up from the base
ms(2)         // -> { index: 2, value: 20.25, ratio: 1.265625 }
ms(2).value   // -> 20.25

// One step down
ms(-1).ratio  // -> 0.8888888888888888

// Get the base
ms(0)         // -> { index: 0, value: 16, ratio: 1 }
```


### Values with units

For stylesheets `px`, `rem` and `em` conversion comes handy:

```js
import { withUnits, scale } from 'miniscale'

const ms = withUnits(scale(16, 1.125))

ms(2).px   // -> "20.25px"
ms(2).rem  // -> "1.265625rem"
ms(2).em  // -> "1.265625em"
```


### Multiplier (for spacing)

The `ms()` function accepts a second parameter: a multiplier value.
Typography-based spacing is a good use case for this feature:

```js
// Here we choose base font size as main spacing unit
const space = (units) => ms(0, units)

// Then we can include space as number of units:
space(1).px   // -> 16px
space(5).px   // -> 80px
space(2).rem  // -> 2rem
```


### Generating a scale as array

The `scale()` function calculates the values on the fly. If you need a static
array of the steps, you can use the `scaleArray()` function. It generates an array in the range of `min` and `max`, that contains all values of each step.

```js
import { scale, scaleArray } from 'miniscale'
const steps = scaleArray(scale(16, 1.125), { min: 14, max: 36 })

/*
 *[ { index: -1, value: 14.222222222222221, ratio: 0.8888888888888888 },
 *  { index: 0, value: 16, ratio: 1 },
 *  { index: 1, value: 18, ratio: 1.125 },
 *  { index: 2, value: 20.25, ratio: 1.265625 },
 *  { index: 3, value: 22.78125, ratio: 1.423828125 },
 *  { index: 4, value: 25.62890625, ratio: 1.601806640625 },
 *  { index: 5, value: 28.83251953125, ratio: 1.802032470703125 },
 *  { index: 6, value: 32.43658447265625, ratio: 2.0272865295410156 } ]
 */
```

The `withUnits()` function can be used here too:

```js
const steps = scaleArray(withUnits(scale(16, 1.125)), { min: 14, max: 36 })
console.log(steps[2].px)  // -> "18px"
console.log(steps[2].rem)  // -> "1.125rem"
```
npm package: @kok-s0s/eslint-config-kok-s0s
Description: ESLint + Prettier config
Author: kok-s0s
Latest version: 1.0.1

ESLint + Prettier config for kok-s0s

Nothing to say!

I just watch a Video to learn and now I just copy His Code to use.

But the way is step by step!

[ESLint + Prettier Shared Config for React (Next.js)](https://www.youtube.com/watch?v=tsPXN4mJGSc)
npm package: @kokapuk/application-loopback
Description: Capture window specific audio by process id.
Latest version: 1.0.1

# application-loopback

Capture window specific audio by process id.

> [!IMPORTANT]
> This package relies on Windows-specific APIs (EnumWindows, GetIconInfo, WASAPI loopback capture). Tested on Windows 11. Older versions of Windows may or may not work – no guarantees

## Basic usage

```js
const { getVisibleWindows, startLoopbackCapture, stopLoopbackCapture } = require('application-loopback');

const visibleWindows = getVisibleWindows();
const spotifyWindow = visibleWindows.find((window) => window.processName === 'Spotify.exe');

if (!spotifyWindow) {
  throw new Error('Spotify is not running');
}

startLoopbackCapture(
  spotifyWindow.processId,
  (data) => console.log(data),
  () => console.log('finished')
);

setTimeout(() => stopLoopbackCapture(), 3000);
```

## API Reference

### getVisibleWindows

Returns list of visible windows.

```ts
interface Window {
  processId: number;
  processName: string;
  title: string;
  icon: {
    buffer: Uint8Array;
    width: number;
    height: number;
  } | null;
}

getVisibleWindows(): Window[];
```

> [!TIP]
> To turn icon into an image you might use some external tools like `nativeImage` in electron.

```js
nativeImage
  .createFromBitmap(window.icon.buffer, {
    width: window.icon.width,
    height: window.icon.height,
  })
  .toDataURL();
```

### startLoopbackCapture

Starts loopback capture for window found by specified process id.

```ts
startLoopbackCapture(processId: number, chunkCallback: (chunk: Uint8Array) => void, finishCallback: () => void): void;
```

> [!NOTE]
> `chunk` is raw PCM audio buffer

> [!WARNING]
> You can only capture one window at a time, call `stopLoopbackCapture` before calling `startLoopbackCapture` again

### stopLoopbackCapture

Stops active loopback capture if one exists

```ts
stopLoopbackCapture(): void;
```

## Remark

Addon is based on [original package](https://github.com/WerdoxDev/application-loopback) by WerdoxDev. Original package was really useful at least because most of C++ code i copied from it. But it had some encoding problems and i also wanted to include icons for windows, so i also decided to turn it into a native addon for better performance and developer experience. Maybe later i will also add typescript bindings for it, dunno for sure 🫤
npm package: @kokarn/react-zoom-pan-pinch
Description: Zoom and pan html elements in easy way
Author: prc5
Latest version: 2.1.5

# react-zoom-pan-pinch

[![NPM](https://img.shields.io/npm/v/react-zoom-pan-pinch.svg)](https://www.npmjs.com/package/react-zoom-pan-pinch)
![npm bundle size](https://img.shields.io/bundlephobia/minzip/react-zoom-pan-pinch)
[![JavaScript Style Guide](https://img.shields.io/badge/code_style-standard-brightgreen.svg)](https://standardjs.com)
![NPM](https://img.shields.io/npm/l/react-zoom-pan-pinch)
![npm](https://img.shields.io/npm/dm/react-zoom-pan-pinch)
![GitHub stars](https://img.shields.io/github/stars/prc5/react-zoom-pan-pinch?style=social)

> Super fast and light react npm package for zooming, panning and pinching html
> elements in easy way

- [Demo](https://prc5.github.io/react-zoom-pan-pinch/?path=/story/examples-big-image--big-image)
- [Docs](https://prc5.github.io/react-zoom-pan-pinch/?path=/story/docs-props--page)

## Features

- :rocket: Fast and easy to use
- :factory: Light, without external dependencies
- :gem: Mobile gestures, touchpad gestures and desktop mouse events support
- :gift: Powerful context usage, which gives you a lot of freedom
- :wrench: Highly customizable
- :crown: Animations and Utils to create own tools

## Install

```bash
npm install --save react-zoom-pan-pinch
```

or

```bash
yarn add react-zoom-pan-pinch
```

## Usage

```jsx
import React, { Component } from "react";

import { TransformWrapper, TransformComponent } from "react-zoom-pan-pinch";

class Example extends Component {
  render() {
    return (
      <TransformWrapper>
        <TransformComponent>
          <img src="image.jpg" alt="test" />
        </TransformComponent>
      </TransformWrapper>
    );
  }
}
```

or

```jsx
import React, { Component } from "react";

import { TransformWrapper, TransformComponent } from "react-zoom-pan-pinch";

class Example extends Component {
  render() {
    return (
      <TransformWrapper
        initialScale={1}
        initialPositionX={200}
        initialPositionY={100}
      >
        {({ zoomIn, zoomOut, resetTransform, ...rest }) => (
          <React.Fragment>
            <div className="tools">
              <button onClick={() => zoomIn()}>+</button>
              <button onClick={() => zoomOut()}>-</button>
              <button onClick={() => resetTransform()}>x</button>
            </div>
            <TransformComponent>
              <img src="image.jpg" alt="test" />
              <div>Example text</div>
            </TransformComponent>
          </React.Fragment>
        )}
      </TransformWrapper>
    );
  }
}
```

## License

MIT © [prc5](https://github.com/prc5)