open-index/open-npm huggingface dataset:
npm package: @slnsw/react-sheet-music
Description: React component to render interactive sheet music using [ABC notation](http://abcnotation.com/learn). Powered by [ABC JS](https://paulrosen.github.io/abcjs/) under the hood.
Author: Kaho Cheung
Latest version: 0.0.6

# React Sheet Music

React component to render interactive sheet music using [ABC notation](http://abcnotation.com/learn). Powered by [ABC JS](https://paulrosen.github.io/abcjs/) under the hood.

> Work in progress

# Install

```bash
$ npm install @slnsw/react-sheet-music
```

# Usage

```jsx
import SheetMusic from 'react-sheet-music';

const MyComponent = () => {
  return (
    <SheetMusic
      // Textual representation of music in ABC notation
      // The string below will show four crotchets in one bar
      notation="|EGBF|"
    />
  );
};
```

# Props

| Prop       | Type     | Description                                                                               |
| ---------- | -------- | ----------------------------------------------------------------------------------------- |
| notation   | string   | Textual representation of music in ABC notation                                           |
| isPlaying  | boolean  | If playing, the notes will highlight and onBeat, onEvent and onLineEnd callbacks will run |
| responsive | string   | Undefined or 'resize'                                                                     |
| className  | string   | Custom class name to add to sheet music div                                               |
| onClick    | function | Callback for when any part of the sheet music is clicked on                               |
| onBeat     | function |                                                                                           |
| onEvent    | function |                                                                                           |
| onLineEnd  | function |                                                                                           |

# Development

```bash
# Install packages for this component
$ npm install
# This builds the component in watch mode
$ npm start

# Open up a new terminal window and go to repo location
$ cd example
# Install packages for example app
$ npm install
# Test out component in app
$ npm start
```
npm package: @sloang/express-json-sender
Description: For people like who hate typing res.status().json()
Author: Sloan Gwaltney
Latest version: 1.0.1
Deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.

# @sloang/express-json-sender

> For people like me who hate typing res.status().json()

```js 
res.status().json() becomes => sender(status, json)
```

## Usage

```js
const express = require('express')
const app = express()

const sender = require('@sloang/express-json-sender')

app.post(sender(200, {test: 'test'}))
```

outputs

```json
{"test": "test"}
```

## API

```js
let sender = require('@sloang/express-json-sender')
```

```js
sender(status)
```

This method will call res.status with the status variable provided, send a empty response, and call next

```js
sender(status, response)
```

This method will call res.status with the status variable provided , res.json with the response variable provided, and next

## Install

With [npm](https://npmjs.org/) installed, run

```
$ npm install @sloang/express-json-sender
```

## See Also

- [`noffle/common-readme`](https://github.com/noffle/common-readme)
- ...

## License

MIT
npm package: @sloang/joi-middleware
Description: A validation middleware for expressjs.
Author: Sloan Gwaltney
Latest version: 1.0.1
Deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.

# @sloang/joi-middleware

> A validation middleware for expressjs using Joi.

![npm bundle size (scoped)](https://img.shields.io/bundlephobia/min/@sloang/joi-middleware)
![npm (scoped)](https://img.shields.io/npm/v/@sloang/joi-middleware)
![NPM](https://img.shields.io/npm/l/@sloang/joi-middleware)

Remove validation from your controllers and put them into your middleware.

## Usage

```js
const express = require('express')
const app = express()
const joi = require('@hapi/joi')
const joiMiddleware = require('@sloang/joi-middleware')
const joiValidationObject = joi.object({
    title: joi.string().min(5).max(40).required()
})

app.post('/', joiMiddleware(joiValidationObject), (req, res, next) => {
    res.status(200).send('It Works')
})

app.use((err, req, res, next) => {
    if (err.name == 'ValidationError') {
        res.status(400).send('Validation Error')
    }
})

```

outputs

On valid validation
```
It Works
```

On failed validation
```
Validation Error
```

## API

```js
let joiMiddleware = require('@sloang/joi-middleware')
```

`joiMiddlware(validationObject)`


When joiMiddleware is called only with the Joi validationObject it defaults to validating `req.body` you can validate other objects by using `joiMiddleware(validationObject, object)`. If validation fails next is called with the validation error as its argument. Otherwise next is called with no argument

`joiMiddleware(validationObject, object)`

When using this method you are providing the middleware both the Joi validation object and the object to be validated. If validation fails next is called with the validation error as its argument. Otherwise next is called with no argument. This method can be useful when trying to validate other request object keys. For example 
```js
const router = require('express').Router()
let joiMiddleware = require('@sloang/joi-middleware')

router.post('/test', 
(req, res, next) => 
    joiMiddleware(userValidator, req.user)(req, res, next))
``` 

### Important Note

Joi is technically not specifically required for this middleware to work. Any validation package that has a `.validate` method that returns an object with an error key (`{error}`) when the object is invalid should in theory work for this middleware, however, Joi is used in test and should always be functional with this package.

## Install

With [npm](https://npmjs.org/) installed, run

```
$ npm install @sloang/joi-middleware @hapi/joi
```

## See Also

- [`@hapi/joi`](https://www.npmjs.com/package/@hapi/joi)
- [`express`](https://www.npmjs.com/package/express)
- [`How express middleware works`](https://expressjs.com/en/guide/using-middleware.html)

## License

MIT
npm package: @slobber/antd-5-tabler-icons
Description: Replace Ant Design Icons inside Ant Design components with [Tabler icons](https://tabler.io/icons).
Latest version: 1.0.8

## Instruction 介绍

Replace Ant Design Icons inside Ant Design components with [Tabler icons](https://tabler.io/icons).

使用 [Tabler icons](https://tabler.io/icons) 图标替换 Ant Design 组件中的内置图标。

## How to use 使用方式

### Installation 安装

```bash
> pnpm i @slobber/antd-5-tabler-icons
```

### API

### `vite` Usage 用法

Add follow code in `vite.config.js`:
在 `vite.config.js` 中添加以下代码：

```js
import { antdIconAlias } from "@slobber/antd-5-tabler-icons";

export default defineConfig(() => {
  return {
    resolve: {
      alias: {
        ...antdIconAlias(),
      },
    },
    ...
  }
})
```

Add follow style to global css file:
在全局 css 文件中添加以下样式：

```css
.anticon svg {
  fill: none;
  width: 18px;
  height: 18px;
}
```
npm package: @slobber/antd-icons-fontawesome
Latest version: 1.0.8

## Instruction 介绍

Replace Ant Design Icons inside Ant Design components with FontAwesome icons. 

使用 FontAwesome 图标替换 Ant Design 组件中的内置图标。

## How to use 使用方式

### Installation 安装

```bash
> pnpm i '@slobber/antd-icons-fontawesome'
```

### `react-app-rewired` Usage 用法

Add follow code in `config-overrides.js`:
在 `config-overrides.js` 中添加以下代码：

```js
const antdIconAlias = require('@slobber/antd-icons-fontawesome')
......

const addCustomize = () => (config, env) => {
  config.resolve.alias = {
    ...config.resolve.alias,
    ...antdIconAlias('far')
  }
  ......
}
......

```

### `vite` Usage 用法

Add follow code in `vite.config.js`:
在 `vite.config.js` 中添加以下代码：

```js
import antdIconAlias from "@slobber/antd-icons-fontawesome";

export default defineConfig(() => {
  return {
    resolve: {
      alias: {
        ...antdIconAlias("far"),
      },
    },
    ...
  }
})
```

### 关于 FontAwesome Pro

If you have `FontAwesome Pro` subscribe, you can clone the repo and build your pro icons for ant design.

如果您有 `FontAwesome Pro` 的订阅，可以克隆本项目，构建你自己的替换图标。

Generate commands:

生成命令：

```bash
> git clone https://github.com/slobber/antd-icons-fontawesome.git
> cd antd-icons-fontawesome
> pnpm i
> pnpm build:pro
> pnpm publish -registry [your private registry]
```
npm package: @slofp/aijs
Description: JavaScript to AiScript Converter
Latest version: 0.2.5

# Ai.js

javascriptから[AiScript](https://github.com/aiscript-dev/aiscript)に変換します。

## 使い方

まだインストールはできませんが直にできるようになります。

```shell
npm install @slofp/aijs
```

### API

* `convert(sourceCode: string, options?: ConvertOption): Promise<string>`

【引数】

* `sourceCode: string`
javascriptソースコード

* `options?: ConvertOption`
変換時のオプション、なければ通常設定で変換されます

【返り値】

`Promise<string>`
変換されたAiScriptソースコード

【オプション型】

### ConvertOption

* `minify?: boolean`
変換コードのインデントなどをなくし小さくします。

* `meta?: MetaData`
AiScriptをMisskeyで使用するときのメタデータを指定できます。

* `insertVersion?: boolean`
AiScriptのバージョンをコード最上部に記述します。

### MetaData

* `name?: string`
名前

* `author?: string`
作成者

* `version?: string`
バージョン

* `description?: string`
説明

permissions?: Permissions[];
コードを使用するために必要な権限

* `config?: { [key: string]: Config }`
コンフィグ情報を定義します。
また、keyはstringを提示しますがAiScriptに則ったkeyでなければエラーになります。

### Config

* `type: 'string' | 'number' | 'boolean'`
設定値の型

* `label: string`
設定で表示される名前

* `description: string`
設定で表示される説明

* `default: string | number | boolean`
デフォルト値
npm package: @slofurno/heatmap
Description: performant canvas heatmap for the browser
Author: Steve LoFurno
Latest version: 0.4.6


- performant canvas heatmap
- rank-based color saturation
- supports both historical and streaming data

![](https://raw.githubusercontent.com/slofurno/heatmap/master/heatmap.png)


### usage

```javascript
  let hm = newHeatmap(document.getElementById("hm"), {
    width: 172,
    height: 40,
    scaleY: 1000,
    scaleX: 1000*60*60,
    onmousemove: xs => xs.forEach(([t,y,p]) => console.log(t,y,p)),
  })

  hm.push_back([
    [Date.now() - 3000, 1000, "point 1"],
    [Date.now() - 2000, 2000, "point 2"],
    [Date.now() - 1000, 3000, "point 3"],
  ])
```
npm package: @slofurno/logzq
Description: logz query
Latest version: 1.1.1

### install

npm install @slofurno/logzq

### usage

```javascript
const logzq = require('@slofurno/logzq')

let now = Date.now()
let start = now - 1000*60*60*24*3
let client = logzq({token: "x-auth-token", debug: true})

let res = await client.query({start, end: now, query: "service:my-service AND env:production AND message:(GET OR PATCH)"})
```

### getting an auth token

- sign into logz
- open the network tab in your browser and select the xhr/fetch filter
- look for the x-auth-token in the request header
npm package: @slogvo/notion-client
Description: Robust TypeScript client for the unofficial Notion API.
Author: Vue Notion Contributors
Latest version: 0.3.0

# @slogvo/notion-client

> Robust TypeScript client for the unofficial Notion API. Works in Node.js and Browser.
>
> Client kết nối Notion API viết bằng TypeScript, hoạt động trên cả server và trình duyệt. 🚀
>
> 非公式 Notion API 向けの強力な TypeScript クライアント。 Node.js およびブラウザで動作します。 ⚡️

Part of the [vue-notion](https://github.com/slogvo/vue-notion) monorepo.

## Installation

```bash
pnpm add @slogvo/notion-client
```

## License

MIT
npm package: @slogvo/notion-types
Description: TypeScript types for core Notion data structures.
Author: Vue Notion Contributors
Latest version: 0.1.3

# @slogvo/notion-types

> TypeScript types for core Notion data structures.

Part of the [vue-notion](https://github.com/slogvo/vue-notion) monorepo.

## Installation

```bash
pnpm add @slogvo/notion-types
```

## License

MIT
npm package: @slogvo/notion-utils
Description: Useful utilities for working with Notion data. Isomorphic.
Author: Vue Notion Contributors
Latest version: 0.1.4

# @slogvo/notion-utils

> Useful utilities for working with Notion data. Isomorphic.

Part of the [vue-notion](https://github.com/slogvo/vue-notion) monorepo.

## Installation

```bash
pnpm add @slogvo/notion-utils
```

## License

MIT
npm package: @sloikaxyz/erc721-metadata-ajv
Description: A reusable ERC721 metadata schema for AJV
Author: Arseniy Ivanov
Latest version: 0.1.2-0


## Badges

[![MIT License](https://img.shields.io/apm/l/atomic-design-ui.svg?)](https://github.com/tterb/atomic-design-ui/blob/master/LICENSEs) [![Depfu](https://badges.depfu.com/badges/8c3eb57e3071a84365800f9101909750/overview.svg)](https://depfu.com/github/sloikaxyz/erc721-metadata-ajv?project_id=35805)


# @sloikaxyz/erc721-metadata-ajv

Reusable ERC721 [token](https://docs.opensea.io/docs/metadata-standards) and [contract]() metadata validators using [ajv.](https://ajv.js.org/)


## Usage/Examples

```typescript
import {
  ERC721TokenMetadata,
  createERC721TokenMetadataValidator,
} from '@sloikaxyz/erc721-metadata-ajv';

const validate = createERC721TokenMetadataValidator();

const res = await fetch(uri);
const metadata = await res.json(); // metadata is any here

const valid = validate(metadata);
if (!valid) {
  console.error(uri, 'failed ajv validation', validate.errors);
  throw new Error('Invalid token metadata');
}

// metadata is of type ERC721TokenMetadata here
console.log(metadata.name, metadata.description);
```


## Installation

```bash
npm install @sloikaxyz/erc721-metadata-ajv ajv ajv-formats
```


## Acknowledgements

 - [EIP 721](https://eips.ethereum.org/EIPS/eip-721), which outlines the metadata format
 - [OpenSea metadata documentation](https://docs.opensea.io/docs/metadata-standards)


## License

MIT License

Copyright (c) 2022 Sloika Industries, Inc.

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

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.