open-index/open-npm huggingface dataset:
npm package: @geek/npm
Description: npm api with promises
Author: Brenton House
Latest version: 0.0.3

> **Work in progress...**

# npm

an npm api with promises

## install

[![npm version](https://badge.fury.io/js/%40geek%2Fnpm.svg)](https://badge.fury.io/js/%40geek%2Fnpm)
[![](http://img.shields.io/badge/license-MIT-blue.svg?style=flat-square)]()

```bash
$ npm install @geek/npm
```
npm package: @geek/spawn
Description: a cross-platform spawn replacement with promises
Author: Brenton House
Latest version: 1.0.2

> **Work in progresss**

# @geek/spawn

a cross-platform spawn replacement with promises

## install

[![@geek/spawn](https://img.shields.io/npm/v/@geek/spawn.png)](https://www.npmjs.com/package/@geek/spawn)
[![Dependabot Status](https://api.dependabot.com/badges/status?host=github&repo=mobilehero/geek-spawn)](https://dependabot.com)
[![npm version](https://badge.fury.io/js/%40geek%2Fspawn.svg)](https://badge.fury.io/js/%40geek%2Fspawn)
[![](http://img.shields.io/badge/license-MIT-blue.svg?style=flat-square)]()

```bash
$ npm install @geek/spawn
```

## usage

**Asynchronous**

```javascript

var spawn = require('@geek/spawn').spawn;
spawn('echo', ['this is a test']);

```

**Synchronous**

```javascript

var spawnSync = require('@geek/spawn').spawnSync;
spawnSync('echo', ['this is a test']);

```
npm package: @geekbears/gb-nest-firebase
Description: Firebase NestJs Module
Author: It Geekbears
Latest version: 1.0.34

<h1 align="center"></h1>

<div align="center">
  <a href="http://nestjs.com/" target="_blank">
    <img src="https://nestjs.com/img/logo_text.svg" width="150" alt="Nest Logo" />
  </a>
</div>

<h3 align="center">GbNestFirebase -- generated by @nestjsplus/dyn-schematics</h3>

<div align="center">
  <a href="https://nestjs.com" target="_blank">
    <img src="https://img.shields.io/badge/built%20with-NestJs-red.svg" alt="Built with NestJS">
  </a>
  <a href="https://github.com/nestjsplus/dyn-schematics" target="_blank">
    <img src="https://img.shields.io/badge/Built%20with-%40nestjsplus%2Fdyn--schematics-brightgreen" alt="Built with @nestjsplus/dyn-schematics">
  </a>
</div>

This dynamic module was generated with [Nest Dynamic Package Generator Schematics](https://github.com/nestjsplus/dyn-schematics).  You can read more about using the generator [here](https://github.com/nestjsplus/dyn-schematics).

### Installation

To install this generated project:

```bash
npm install @geekbears/gb-nest-firebase
```
### Usage (Dynamic)

```typescript
@Module({
  imports: [
    GbNestFirebaseModule.forRootAsync({
        inject: [ConfigService],
        useFactory(configService: ConfigService) {
            const privateKey = Buffer.from(configService.get<string>('FIREBASE_PRIVATE_KEY'), 'base64').toString(
                'utf-8',
            );
            const credentials: GbNestFirebaseOptions = {
                googleApplicationCredential: {
                    clientEmail: configService.get('FIREBASE_CLIENT_EMAIL'),
                    privateKey,
                    projectId: configService.get('FIREBASE_PROJECT_ID'),
                },
            };
            return credentials;
        },
    }),
  ],
})
export class AppModule {}

// using in service class
export class Service {
  constructor(
    @InjectFirebaseAdmin() private readonly firebase: FirebaseAdmin,
  ) {}
}
```
### Testing

If you selected `yes` for the question `Generate a testing client?`, a small testing module was automatically generated
called GbNestFirebaseClientModule.  You can test that the template was properly generated by running

```bash
npm run start:dev
```

Then connect to [http://localhost:3000](http://localhost:3000).

### Customizing

The files in the project have comments that should help guide you.

You can also refer to [this article](https://dev.to/nestjs/advanced-nestjs-how-to-build-completely-dynamic-nestjs-modules-1370) for details on the concepts behind this module pattern.

You can read more about using the generator [here](https://github.com/nestjsplus/dyn-schematics).

### About @nestjsplus/dyn-schematics

[Nest Dynamic Package Generator Schematics](https://github.com/nestjsplus/dyn-schematics) generates a starter template for building NestJS dynamic packages.  It uses the `@nestjs/cli` core package, and provides customized schematics for generating modular NestJS applications.  See [here](https://github.com/nestjsplus/dyn-schematics) for the full set of available schematics, and documentation.
npm package: @geekbears/gb-nest-helpers
Description: Geekbears Nest JS Helpers
Author: Ivan Rangel
Latest version: 0.0.31

# gb-nest-helpers


## NestJS Swagger Decorator

This package includes a `@nestjs/swagger` decorator to simplify the documentation of query parameters. The `@ApiStandardQuery()` decorator acts as an alias to `@ApiQuery()` and wraps all the standard query parameters used by Geekbears on `find` and `count` operations.

### Usage

Import the decorator and use it on the corresponding method on the controller class.

```typescript
import { ApiStandardQuery } from '@geekbears/gb-mongoose-query-parser';

@Get()
@ApiStandardQuery()
async find(@Query() query: any): Promise<any> {
    // Do something
}

```

## License
MIT
npm package: @geekbears/gb-ngrx-stack-base
Description: This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 12.2.0.
Latest version: 21.0.0

# GbNgrxStackBase

This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 12.2.0.

## Code scaffolding

Run `ng generate component component-name --project gb-ngrx-stack-base` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module --project gb-ngrx-stack-base`.
> Note: Don't forget to add `--project gb-ngrx-stack-base` or else it will be added to the default project in your `angular.json` file. 

## Build

Run `ng build gb-ngrx-stack-base` to build the project. The build artifacts will be stored in the `dist/` directory.

## Publishing

After building your library with `ng build gb-ngrx-stack-base`, go to the dist folder `cd dist/gb-ngrx-stack-base` and run `npm publish`.

## Running unit tests

Run `ng test gb-ngrx-stack-base` to execute the unit tests via [Karma](https://karma-runner.github.io).

## Further help

To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.io/cli) page.
npm package: @geekbears/ngx-gb-ui-kit
Description: This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 12.0.5.
Latest version: 21.0.0

# NgxGbUiKit

This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 12.0.5.

## Code scaffolding

Run `ng generate component component-name --project ngx-gb-ui-kit` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module --project ngx-gb-ui-kit`.
> Note: Don't forget to add `--project ngx-gb-ui-kit` or else it will be added to the default project in your `angular.json` file. 

## Build

Run `ng build ngx-gb-ui-kit` to build the project. The build artifacts will be stored in the `dist/` directory.

## Publishing

After building your library with `ng build ngx-gb-ui-kit`, go to the dist folder `cd dist/ngx-gb-ui-kit` and run `npm publish`.

## Running unit tests

Run `ng test ngx-gb-ui-kit` to execute the unit tests via [Karma](https://karma-runner.github.io).

## Further help

To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.io/cli) page.
npm package: @geekbeer/minion
Description: AI Agent runtime for Minion - manages status and skill deployment on VPS
Latest version: 3.14.0

# @geekbeer/minion

AI Agent runtime for Minion - manages heartbeat, status, and skill deployment on VPS.

## Install

```bash
npm install -g @geekbeer/minion
```

## Usage

### Setup (VPS)

```bash
minion-cli setup \
  --hq-url https://minion-agent.com \
  --minion-id <MINION_ID> \
  --api-token <API_TOKEN> \
  --setup-tunnel \
  --non-interactive
```

### Service Management

```bash
minion-cli start      # Start the minion agent
minion-cli stop       # Stop the minion agent
minion-cli restart    # Restart the minion agent
minion-cli status     # Show service status
minion-cli health     # Run health check
```

### Logging

```bash
minion-cli log -m "Task completed" -l info -s skill-name
```

### Issue Reporting

```javascript
const { reportIssue } = require('@geekbeer/minion/api')

await reportIssue({
  title: 'HQ APIで502エラーが発生する',
  body: '## 状況\n...\n\n## 再現手順\n...',
  labels: ['bug', 'critical']
})
// → { success: true, issue_url: '...', issue_number: 42 }
```

## Environment Variables

| Variable | Description | Default |
|----------|-------------|---------|
| `HQ_URL` | Minion HQ server URL | - |
| `API_TOKEN` | Authentication token | - |
| `MINION_ID` | Minion UUID | - |
| `AGENT_PORT` | Agent API listen port | `8080` |

## License

MIT
npm package: @geekberry/buffer-socket
Description: Buffer input output framework base on websocket.
Latest version: 0.0.5

# Buffer socket

Buffer input output framework base on websocket. 

## Usage

* server

```
const { Server, Client } = require('@geekberry/buffer-socket');

const server = new Server(
  { host: '127.0.0.1', port: 6080, checkAliveInterval:30*1000 }, 
  (input, output) =>{
    output.write(input.toBuffer().reverse());
  }
);
```

* client

```
const client = new Client({ host: '127.0.0.1', port: 6080 });

const stream = await client.request(Buffer.from('1234'));

console.log(stream.toBuffer().toString()); // 4321
```

## Package structure:

* request:

length  | note
--------|------------
4 bytes | requestId
N bytes | data

* response:

length  | note
--------|------------
4 bytes | requestId
4 bytes | SUCCESS
N bytes | data

* error:

length  | note
--------|------------
4 bytes | requestId
4 bytes | ERROR
N bytes | error message
npm package: @geekberry/cbor
Description: ## Usage
Author: Wanghaizhou
Latest version: 0.0.4

# @geekberry/cbor

## Usage

* basic encode/decode

```js
  const object = {
    i: 1,
    f: -Math.PI,
    s: 'string',
    b: true,
    n: null,
    u: undefined,
    r: /0x[0-9a-f]+/,
    buf: Buffer.from('buffer'),
    set: new Set([1, 2, 3]),
    map: new Map([[1, 100], [2, 200]]),
    array: [BigInt('0xffffffffffffffff'), BigNumber(-Math.PI).pow(3)],
    simple: new cbor.Simple(255),
    tagged: new cbor.Tagged(40, 'TAGGED'),
  };

  const buffer = cbor.encode(object);
  console.log(buffer);
  /*
   <Buffer ad 61 69 01 61 66 fb c0 09 21 fb 54 44 2d 18 61 73 66 73 74 72 69 6e 67 61 62 f5 61 6e f6 61 75 f7 61 72 d8 23 6b 30 78 5b 30 2d 39 61 2d 66 5d 2b 63 ... 97 more bytes>
  */

  const result = cbor.decode(buffer);
  console.log(result);
  /*
  {
    i: 1,
    f: -3.141592653589793,
    s: 'string',
    b: true,
    n: null,
    u: undefined,
    r: /0x[0-9a-f]+/,
    buf: <Buffer 62 75 66 66 65 72>,
    set: [ 1, 2, 3 ],
    map: Map(2) { 1 => 100, 2 => 200 },
    array: [ 18446744073709551615n, BigNumber { s: -1, e: 1, c: [Array] } ],
    simple: [Number (Simple): 255],
    tagged: Tagged { tag: 40, value: 'TAGGED' }
  }
   */
```

* custom Simple

```js
  class None {
    toCBOR() {
      return new cbor.Simple(19); // 19 as new special
    }
  }

  cbor.decode.simpleMap.set(19, () => new None());

  const value = new None();
  const buffer = cbor.encode(value);
  console.log(buffer); // <Buffer f3>

  const result = cbor.decode(buffer);
  console.log(result); // None {}
```

* custom Tagged

```js
  class Complex {
    constructor(i, j) {
      this.i = i;
      this.j = j;
    }

    toCBOR() {
      return new cbor.Tagged(6, [this.i, this.j]); // 6 as new tag
    }
  }

  cbor.decode.taggedMap.set(6, ([i, j]) => new Complex(i, j));

  const complex = new Complex(0, -1);
  const buffer = cbor.encode(complex);
  console.log(buffer); // <Buffer c6 82 00 20>

  const result = cbor.decode(buffer);
  console.log(result); // Complex { i: 0, j: -1 }
```


## Reference

* [RFC 7049](https://tools.ietf.org/html/rfc7049)
* [RFC 8152](https://tools.ietf.org/html/rfc8152)
* [CBOR Tags](https://www.iana.org/assignments/cbor-tags/cbor-tags.xhtml)
npm package: @geekberry/jsdoc-to-md
Description: # Install `npm install @geekberry/jsdoc-to-md`
Author: geekberry@qq.com
Latest version: 0.0.8


# Jsdoc to Markdown

# Install
`npm install @geekberry/jsdoc-to-md`

# Document

## jsdocToMd <a id="index.js/jsdocToMd"></a>

Generate directory markdown string.

* **Parameters**

Name            | Type       | Required | Default  | Description
----------------|------------|----------|----------|-----------------------------
path            | `string`   | true     |          | - Filename or directory path
options         | `object`   | false    |          |
options.content | `boolean`  | false    | true     | Generate content.
options.filter  | `function` | false    | ()=>true | Filename filter/

* **Returns**

`string` Markdown string

* **Examples**

```
> const jsdocToMd = require('@geekberry/jsdoc-to-md')
> const string = jsdocToMd('./src')
```

# Example

[see](https://github.com/GeekBerry/jsdoc-to-md/blob/master/example)
npm package: @geekberry/kvstore
Description: ## Usage
Latest version: 1.0.2

# Key value store

## Usage

```javascript
const KVStore = require('@geekberry/kvstore');


async function main() {
  const kvStore = new KVStore({ location: './DATA/LEVEL_DB' });

  await kvStore.set('key', 'value');
  
  await kvStore.get('key'); // value

  await kvStore.del('key');
}
```

[more example](https://github.com/GeekBerry/kvStore/blob/master/test/KVStore.test.js)
npm package: @geekberry/leveldb
Description: LevelDB with promise.
Latest version: 1.0.1

# LevelDB

LevelDB with promise. 

* usage

```javascript
const LevelDB = require('@geekberry/leveldb');

async function main() {
  const database = new LevelDB({
    location: './LevelDB',
  });

  await database.put('key', 'value');
  await database.get('key'); // 'value'
  await database.del('key');

  await database.batch([
    { type: 'put', key: 'key1', value: 'value1' },
    { type: 'put', key: 'key2', value: 'value2' },
    { type: 'put', key: 'key3', value: 'value3' },
    { type: 'del', key: 'key2' },
    { type: 'put', key: 'key4', value: 'value4' },
    { type: 'put', key: 'key5', value: 'value5' },
  ]);

  await database.list(); // {gte:'key1',lte:'key5',limit:5,reverse:true}
  // [
  //   { key: 'key1', value: 'value1' },
  //   { key: 'key3', value: 'value3' },
  //   { key: 'key4', value: 'value4' },
  //   { key: 'key5', value: 'value5' },
  // ]

  await database.keys();
  // ['key1', 'key3', 'key4', 'key5']

  await database.values();
  // ['value1', 'value3', 'value4', 'value5']

  await database.clear();
}

main();
```

* using RocksDB as leveldown

```javascript
const LevelDB = require('@geekberry/leveldb');
const RocksDBLevelDown = require('rocksdb');

async function main() {
  const database = new LevelDB({
    levelDown: RocksDBLevelDown,
    location: './RocksDB',
  });

  await database.put('key', 'value');
  await database.get('key'); // 'value'
  await database.del('key');
}

main();
```

* using memory as leveldown

```javascript
const LevelDB = require('@geekberry/leveldb');
const MemoryLevelDown = require('memdown');

async function main() {
  const database = new LevelDB({
    levelDown: MemoryLevelDown,
  });

  await database.put('key', 'value');
  await database.get('key'); // 'value'
  await database.del('key');
}

main();
```
npm package: @geekberry/logger
Description: ## Usage
Latest version: 0.1.1

# Logger

## Usage

* code

```
const Logger = require('@geekberry/logger');

const logger = new Logger({
  tags: { name: 'app' },
  streams: [
    {
      type: 'stream',
      level: 'info',
      stream: process.stdout,
    },
    { 
      type: 'daily',
      level: 'info',
      path: `${__dirname}/log/info.log`,
      days: 2,
    },
    {
      type: 'daily',
      level: 'error',
      path: `${__dirname}/log/error.log`,
      days: 30,
    },
  ]
})

logger.debug({ object: true });
logger.info({ object: true });
logger.error({ object: true });
logger.error('string');
```

* process.stdout print

```
{"name":"app","object":true,"time":"2020-04-28T05:55:36.030Z","level":"info"}
{"name":"app","object":true,"time":"2020-04-28T05:55:36.031Z","level":"error"}
{"name":"app","message":"string","time":"2020-04-28T05:55:36.031Z","level":"error"}
```

* file created

```
/log/info.log
/log/error.log
```
npm package: @geekberry/rocksdb-server
Description: Rocksdb server and client base on websocket.
Latest version: 0.1.1

# RocksDB Server

Rocksdb server and client base on websocket.

## Install

```shell script
yarn add @geekberry/rocksdb @geekberry/rocksdb-server
```

## Usage

* Server

```javascript
const Database = require('@geekberry/rocksdb'); // you need install level db you self
// const Database = require('@geekberry/leveldb'); // or use level db
const { Server } = require('@geekberry/rocksdb-server');

const database = new Database({ location: './data' });
const server = new Server({ host: '127.0.0.1', port: 2222, database }); // server start listen on created
```

* Client

```javascript
async function main() {
  const client = new Client({ host: '127.0.0.1', port: 2222, asBuffer: false });

  const value  = await client.get('key');
  console.log(value);
  
  await client.set('key', 'value');
  
  await client.del('key');
  
  await client.batch([
    { type: 'put', key: Buffer.from('key1'), value: Buffer.from('value1') },
    { type: 'put', key: 'key2', value: 'value2' },
    { type: 'put', key: 'key3', value: 'value3' },
    { type: 'del', key: Buffer.from('key2') },
    { type: 'put', key: 'key4', value: 'value4' },
    { type: 'put', key: 'key5', value: 'value5' },
  ]);
  
  const list = await client.list({ limit: 2, reverse: true, gte: 'key1', lt: 'key4' });
  console.log(list);

  const keys = await client.keys({ limit: 2 });
  console.log(keys);
  
  const values = await client.values({ limit: 2 });
  console.log(values);

  await client.clear({ gt: 'key1', lt: 'key4' });

  await client.close();
}
```

# Test

`jest`
npm package: @geekberry/solidity-kvstore
Description: Solidity implemented kv store with role control.
Latest version: 0.0.3

# solidity-kvstore

Solidity implemented kv store with role control.

## Installation

`npm i @geekberry/solidity-kvstore`

## Usage

> NOTE: string type might be Buffer

```javascript
const KVStore = require('@geekberry/solidity-kvstore');

const kvStore = new KVStore({
    // conflux node url
    url: 'http://testnet-jsonrpc.conflux-chain.org:12537',
    
    // KVStore contract address
    address: '0x8bfc6fd9437cf1879fb84aade867b6e81efb5631',
    
    // account must be privateKey for write
    account: '0x0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef',
    
    // logger for debug
    logger: console,
});

async function main() {
  await kvStore.set('key1', 'value1');
  await kvStore.set('key2', 'value2');
  await kvStore.set('key3', 'value3');
  await kvStore.set('key4', 'value4');

  console.log(await kvStore.size()); // 4
  
  console.log(await kvStore.has('key99')); // false
  console.log(await kvStore.get('key1')); // 'value1' buffer

  console.log(await kvStore.list('', 3, false));
  // [
  //   {key:'key1', value:'value1'},
  //   {key:'key2', value:'value2'},
  //   {key:'key3', value:'value3'},
  // ]

  console.log(await kvStore.list('key2', 10000, true)); // set a large limit
  // [
  //   {key:'key2', value:'value2'},
  //   {key:'key1', value:'value1'},
  // ]

  await kvStore.del('key3');
  await kvStore.clear();
}

main()
```

## Example

* [deploy](https://github.com/GeekBerry/solidity-kvstore/blob/master/example/0_deploy.js)
* [curd](https://github.com/GeekBerry/solidity-kvstore/blob/master/example/1_curd.js)
* [role](https://github.com/GeekBerry/solidity-kvstore/blob/master/example/2_role.js)
npm package: @geekbot/emoji
Description: ## Installation To install `@geekbot/emoji`, you need [node.js](http://nodejs.org/) and [npm](https://github.com/npm/npm#super-easy-install).
Latest version: 1.0.6

# @geekbot/emoji

## Installation
To install `@geekbot/emoji`, you need [node.js](http://nodejs.org/) and [npm](https://github.com/npm/npm#super-easy-install).

For installation run `npm install --save @geekbot/emoji` or `yarn add @geekbot/emoji` in your project directory.


## Usage
```javascript
var emoji = require('@geekbot/emoji')
emoji.get('coffee') // returns the emoji code for coffee (displays emoji on terminals that support it)
emoji.which(emoji.get('coffee')) // returns the string "coffee"
emoji.get(':fast_forward:') // `.get` also supports github flavored markdown emoji (http://www.emoji-cheat-sheet.com/)
emoji.get('heart') //❤️
emoji.get(':)') //😄
emoji.emojify('I :heart: :coffee:!') // replaces all :emoji: with the actual emoji, in this case: returns "I ❤️ ☕️!"
emoji.emojify(":-) :* <3 ^_^ >:o (y) -_- :smile: ;) :P O:) :/ :'( 3:)") // replace almost all shorthand emoji support 😄 😘 ❤️ 😙 😆 👍 😑 😄 😉 😛 👼 😕 😢 😈
emoji.random() // returns a random emoji + key, e.g. `{ emoji: '❤️', key: 'heart' }`
emoji.search('cof') // returns an array of objects with matching emoji's. `[{ emoji: '☕️', key: 'coffee' }, { emoji: ⚰', key: 'coffin'}]`
emoji.unemojify('I ❤️ 🍕') // replaces the actual emoji with :emoji:, in this case: returns "I :heart: :pizza:"
emoji.find('🍕') // Find the `pizza` emoji, and returns `({ emoji: '🍕', key: 'pizza' })`;
emoji.find('pizza') // Find the `pizza` emoji, and returns `({ emoji: '🍕', key: 'pizza' })`;
emoji.hasEmoji('🍕') // Validate if this library knows an emoji like `🍕`
emoji.hasEmoji('pizza') // Validate if this library knowns a emoji with the name `pizza`
emoji.strip('⚠️ 〰️ 〰️ low disk space') // Strips the string from emoji's, in this case returns: "low disk space".
emoji.replace('⚠️ 〰️ 〰️ low disk space', (emoji) => `${emoji.key}:`) // Replace emoji's by callback method: "warning: low disk space"
```

## Options

### onMissing
`emoji.emojify(str, onMissing)`

As second argument, `emojify` takes an handler to parse unknown emojis. Provide a function to add your own handler:

```js
var onMissing = function (name) {
  return name;
});

var emojified = emoji.emojify('I :unknown_emoji: :star: :another_one:', onMissing);
// emojified: I unknown_emoji ⭐️ another_one
```

### format
`emoji.emojify(str, onMissing, format)`

As third argument, `emojify` takes an handler to wrap parsed emojis. Provide a function to place emojis in custom elements, and to apply your custom styling:

```js
var format = function (code, name) {
  return '<img alt="' + code + '" src="' + name + '.png" />';
});

var emojified = emoji.emojify('I :unknown_emoji: :star: :another_one:', null, format);
```
npm package: @geekbot/gui
Description: Geekbot's new graphical user interface library
Latest version: 1.13.8

# @geekbot/gui

## Description

@geekbot/gui is a library that provides a collection of UI components for use in Geekbot applications. These components are designed to be easy to integrate and customize, helping you create visually appealing and consistent user interfaces.

## Installation

To add the @geekbot/gui library to your project, you can use either Yarn or npm:

Using Yarn:
```bash
yarn add @geekbot/gui
```

Using npm:
```bash
npm install @geekbot/gui
```

## Usage
After installing the package, you need to import the CSS file to apply the necessary styles to the components. Add the following line to your project's main CSS or entry file:
```bash 
import '@geekbot/gui/dist/geekbot-gui.min.css';
```
Now you can import the components like: 
```bash 
import { Avatar } from '@geekbot/gui';
```

## Development
   
### Scripts
1. Run the following command to generate the production distribution files on every change while you work:
  ```bash 
    yarn watch
  ```
   
2. If you prefer to generate the production distribution files manually after you have made all the changes, run:
  ```bash 
    yarn build
  ```
  
## Storybook

@geekbot/gui comes with a Storybook, which is a development environment for UI components. It allows you to interactively view and test the components in isolation.

### Development mode
To run the Storybook in development mode, use the following command:
```bash 
  yarn storybook
```

### Generate Static Storybook Files
If you need to generate static files for the Storybook, you can do so by running the following command:
```bash 
  yarn build-static
```
npm package: @geekcash/geekcash-lib
Description: A pure and powerful JavaScript GeekCash library.
Author: BitPay
Latest version: 1.0.1

GeekCash Library
================

A pure and powerful JavaScript Dash library.

<!-- ## Principles

Dash is a powerful new peer-to-peer platform for the next generation of financial technology. The decentralized nature of the Dash network allows for highly resilient dash infrastructure, and the developer community needs reliable, open-source tools to implement dash apps and services. -->

## Get Started
### NodeJS
```
npm install @geekcash/geekcash-lib
```

### Browser

See the section below to generate your own bundle, or download the pre-generated [minified file](dist/geekcash-lib.min.js)


## Docs

* [Addresses](address.md)
* [Block](block.md)
* [Crypto](crypto.md)
* [Encoding](encoding.md)
* [Hierarchically-derived Private and Public Keys](hierarchical.md)
* [Networks](docs/networks.md)
* [PrivateKey](docs/privatekey.md)
* [PublicKey](docs/publickey.md)
* [Script](docs/script.md)
* [Transaction](docs/transaction.md)
* [Using Different Units](unit.md)
* [Unspent Output](docs/upspentoutput.md)
* [URI](docs/uri.md)
* [Governance Object / Proposal](govobject/govobject.md)

## Examples

Some examples can be find [here](docs/examples.md), below is a list of direct link for some of them.

## Contributing

Please send pull requests for bug fixes, code optimization, and ideas for improvement. For more information on how to contribute, please refer to our [CONTRIBUTING](https://github.com/geekcash/geekcash-lib/blob/master/CONTRIBUTING.md) file.

## Building the Browser Bundle

To build a geekcash-lib full bundle for the browser:

```sh
npm run build
```

This will generate files named `geekcash-lib.js` and `geekcash-lib.min.js` in the `dist/` folder.

## Usage on Browser

```
<script src='./dist/geekcash-lib.min.js' type="text/javascript"></script>
<script>
  const PrivateKey = geekcash.PrivateKey;
  const privateKey = new PrivateKey();
  const address = privateKey.toAddress().toString();
</script>
```

## Development & Tests

```sh
git clone https://github.com/geekcash/geekcash-lib
cd geekcash-lib
npm install
```

Run all the tests:

```sh
npm test
```

You can also run just the Node.js tests with `npm run test:node`, just the browser tests with `npm run test:browser`
or run a test coverage report with `npm run coverage`.

## License

Code released under [the MIT license](LICENSE).

Copyright 2013-2017 BitPay, Inc. Bitcore is a trademark maintained by BitPay, Inc.
Copyright 2016-2018 The Dash Foundation, Inc.
npm package: @geekcash/geekcash-p2p
Description: Interface to the dash P2P network for geekcash
Author: BitPay
Latest version: 1.0.1

Bitcore P2P-Dash
=======

[![NPM Package](https://img.shields.io/npm/v/bitcore-p2p-dash.svg?style=flat-square)](https://www.npmjs.org/package/bitcore-p2p-dash)
[![Build Status](https://img.shields.io/travis/dashpay/bitcore-p2p-dash.svg?branch=master&style=flat-square)](https://travis-ci.org/dashpay/bitcore-p2p-dash)
[![Coverage Status](https://img.shields.io/coveralls/dashpay/bitcore-p2p-dash.svg?style=flat-square)](https://coveralls.io/r/dashpay/bitcore-p2p-dash?branch=master)

`bitcore-p2p-dash` adds Dash protocol support for Bitcore-Dash.

See [the main bitcore-dash repo](https://github.com/dashpay/bitcore-dash) for more information.

## Getting Started

```sh
npm install bitcore-p2p-dash
```
In order to connect to the Dash network, you'll need to know the IP address of at least one node of the network, or use [Pool](/docs/pool.md) to discover peers using a DNS seed.

```javascript
var Peer = require('bitcore-p2p-dash').Peer;

var peer = new Peer({host: '127.0.0.1'});

peer.on('ready', function() {
  // peer info
  console.log(peer.version, peer.subversion, peer.bestHeight);
});
peer.on('disconnect', function() {
  console.log('connection closed');
});
peer.connect();
```

Then, you can get information from other peers by using:

```javascript
// handle events
peer.on('inv', function(message) {
  // message.inventory[]
});
peer.on('tx', function(message) {
  // message.transaction
});
```

Take a look at the [bitcore guide](http://bitcore.io/guide/peer.html) on the usage of the `Peer` class.

## Contributing

See [CONTRIBUTING.md](https://github.com/dashpay/bitcore-dash/blob/master/CONTRIBUTING.md) on the main bitcore-dash repo for information about how to contribute.

## License

Code released under [the MIT license](https://github.com/bitpay/bitcore/blob/master/LICENSE).

Copyright 2013-2015 BitPay, Inc. Bitcore is a trademark maintained by BitPay, Inc.
npm package: @geekcash/geekcash-rpc
Description: JavaScript Client Library to connect to GeekCash via RPC
Author: Stephen Pair
Latest version: 1.0.3

geekcash-rpc.js
===============

A client library to connect to Dash Core RPC in JavaScript.

## Get Started

geekcash-rpc.js runs on [node](http://nodejs.org/), and can be installed via [npm](https://npmjs.org/):

```bash
npm install @geekcash/geekcash-rpc
```

## RpcClient

Arguments : 

	- protocol : (string - optional) - (default: 'https') - Set the protocol to be used. Either `http` or `https`.
	- user : (string - optional) - (default: 'user') - Set the user credential.
	- pass : (string - optional) - (default: 'pass') - Set the password credential.
	- host : (string - optional) - (default: '127.0.0.1') - The host you want to connect with.
	- port : (integer - optional) - (default: 6888) - Set the port on which perform the RPC command.
	
## Examples

```javascript
var run = function() {
  var bitcore = require('bitcore');
  var RpcClient = require('@geekcash/geekcash-rpc');

  var config = {
    protocol: 'http',
    user: 'user',
    pass: 'pass',
    host: '127.0.0.1',
    port: 19998
  };

  var rpc = new RpcClient(config);

  var txids = [];

  function showNewTransactions() {
    rpc.getRawMemPool(function (err, ret) {
      if (err) {
        console.error(err);
        return setTimeout(showNewTransactions, 10000);
      }

      function batchCall() {
        ret.result.forEach(function (txid) {
          if (txids.indexOf(txid) === -1) {
            rpc.getRawTransaction(txid);
          }
        });
      }

      rpc.batch(batchCall, function(err, rawtxs) {
        if (err) {
          console.error(err);
          return setTimeout(showNewTransactions, 10000);
        }

        rawtxs.map(function (rawtx) {
          var tx = new bitcore.Transaction(rawtx.result);
          console.log('\n\n\n' + tx.id + ':', tx.toObject());
        });

        txids = ret.result;
        setTimeout(showNewTransactions, 2500);
      });
    });
  }

  showNewTransactions();
};
```

## Help 

You can dynamically access to the help of each method by doing
```
const RpcClient = require('@geekcash/geekcash-rpc');
var client = new RPCclient({
    protocol:'http',
    user: 'root',
    pass: 'password', 
    host: '127.0.0.1', 
    port: 6888
});

var cb = function (err, data) {
    console.log(data)
};
client.help(cb); //Get full help
client.help('getinfo',cb); //Get help of specific method
```
## License

**Code released under [the MIT license](https://github.com/bitpay/bitcore/blob/master/LICENSE).**

Copyright 2013-2014 BitPay, Inc.
npm package: @geekcojp/bot-core
Description: [![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat-square)](https://github.com/prettier/prettier) [![CircleCI](https://circleci.com/gh/geekcojp/bot-core/tree/master.svg?style=svg&circle-token=fba736bc7b63376504
Author: nju33
Latest version: 0.0.1

# bot-core

[![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat-square)](https://github.com/prettier/prettier)
[![CircleCI](https://circleci.com/gh/geekcojp/bot-core/tree/master.svg?style=svg&circle-token=fba736bc7b63376504e806b34cad0d18d4cdf6bc)](https://circleci.com/gh/geekcojp/bot-core/tree/master)
npm package: @geekcojp/checklist
Description: [![CircleCI](https://circleci.com/gh/geekcojp/checklist.svg?style=svg&circle-token=34273a69eb10d1a6dd5e1870c76d9570d2169f9d)](https://circleci.com/gh/geekcojp/checklist)
Author: nju33
Latest version: 0.1.3

# checklist

[![CircleCI](https://circleci.com/gh/geekcojp/checklist.svg?style=svg&circle-token=34273a69eb10d1a6dd5e1870c76d9570d2169f9d)](https://circleci.com/gh/geekcojp/checklist)
npm package: @geekcojp/csscomb-config
Description: @geekcojp csscomb config
Author: yamanoku
Latest version: 0.1.5

# csscomb-config
GEEK Inc. CSSComb Config

## Install

```
yarn add -D @geekcojp/csscomb-config
```

## Usage

### Local 

```
csscomb --config ./node_modules/@geekcojp/csscomb-config/config.json
```

### Node.js

```
const Comb = require('csscomb');
const config = require('@geekcojp/csscomb-config');
const comb = new Comb(config);
```
npm package: @geekcojp/min
Description: [![npm](https://img.shields.io/npm/v/@geekcojp/min.svg)](https://www.npmjs.com/package/@geekcojp/min) [![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat-square)](https://github.com/prettier/prettier) [![CircleC
Author: nju33
Latest version: 0.0.4

# min

[![npm](https://img.shields.io/npm/v/@geekcojp/min.svg)](https://www.npmjs.com/package/@geekcojp/min) [![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat-square)](https://github.com/prettier/prettier) [![CircleCI](https://circleci.com/gh/geekcojp/min/tree/master.svg?style=svg&circle-token=baaecbf0a3dea0a009c82e981e6713d8515b13cd)](https://circleci.com/gh/geekcojp/min/tree/master) ![license: mit](https://img.shields.io/packagist/l/doctrine/orm.svg)

## Usage

```bash
min [command]

Commands:
  min img  Minify *.jpg, *.png, *.gif and *.svg
  min jpg  Minify *.jpg
  min png  Minify *.png
  min gif  Minify *.gif
  min svg  Minify *.svg

Options:
  --version  Show version number                                       [boolean]
  --help     Show help                                                 [boolean]
```

## Example

```bash
$ min img
 ✔ Minify

 Filename      Size «B»   Size «A»  
 ------------  ---------  ----------
 nest/npm.jpg  34.93 KB   9.99 KB   
 npm.jpg       34.93 KB   9.99 KB   
 npm.png       3.34 KB    1.46 KB   
 cat.gif       989.78 KB  989.41 KB
 npm.svg       3.46 KB    2.98 KB   
 ------------  ---------  ----------
               1.04 MB    1013.84 KB
```

## TODO

- [x] minify jpg
- [x] minify png
- [x] minify gif
- [x] minify svg
- [ ] minify html
- [ ] minify css
- [ ] minify js
- [ ] minify php
npm package: @geekcojp/modify-github-labels
Description: A cli tool for modifing a labels of Github's repository
Latest version: 0.0.5

# modify-github-labels

[![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat-square)](https://github.com/prettier/prettier)

## Install

```bash
npm i -g @geekcojp/modify-github-labels
```

## Usage

Put a `github-labels.json` at the same directory hierarchy as `package.json`.

e.g.

```json
{
  "labels": [
    {
      "name": "foo",
      "color": "ff0000",
    },
    {
      "name": "bar",
      "color": "00ff00",
    }
  ]
}
```

then, just using by cli

e.g.

```bash
npx @geekcojp/modify-github-labels --token {personal-access-token} --owner geekcojp --repo modify-github-labels
```
npm package: @geekcojp/prettier-config
Description: Prettier config by GEEK,.inc. (Japan)
Author: nju33
Latest version: 0.3.0

# prettier-config

Prettier config by GEEK,.inc. (Japan)

## Usage

Install `prettier` and `@geekcojp/prettier-config`.

```bash
yarn add -D prettier @geekcojp/prettier-config
```

Create `.prettierrc.js` to root directory of the project as following.

```js
module.exports = require('@geekcojp/prettier-config');
// ts
// module.exports = require('@geekcojp/prettier-config/typescript');
```

## Override

```js
module.exports = Object.assign(
	require('@geekcojp/prettier-config'),
	{...}
);
```
npm package: @geekcojp/react-input-flatpickr
Description: [![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat-square)](https://github.com/prettier/prettier) [![CircleCI](https://circleci.com/gh/geekcojp/react-input-flatpickr/tree/master.svg?style=svg&circle-token=51a03
Author: nju33
Latest version: 0.1.1

# react-input-flatpickr

[![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat-square)](https://github.com/prettier/prettier) [![CircleCI](https://circleci.com/gh/geekcojp/react-input-flatpickr/tree/master.svg?style=svg&circle-token=51a03bddfeaf1db5fa8795c56a7193ee394c1104)](https://circleci.com/gh/geekcojp/react-input-flatpickr/tree/master)

## Usage

```bash
yarn add @geekcojp/react-input-flatpickr
```

## Props

```ts
export interface InputFlatpickrProps extends flatpickr.Options.Options {
  theme?:
    | 'dark'
    | 'material_blue'
    | 'material_green'
    | 'material_orange'
    | 'material_red'
    | 'airbnb'
    | 'confetti';
  value?: string;
  placeholder?: string;
  inputName?: string;
  inputReadonly?: boolean;
  disabled?: boolean;
  handleInputBlur?(data: {
    input: HTMLInputElement;
    value: string;
  }): void | Promise<void>;
  handleInputChange?(data: {
    input: HTMLInputElement;
    value: string;
  }): void | Promise<void>;
}
```
npm package: @geekcojp/stylelint-config
Description: @geekcojp stylelint config
Author: yamanoku
Latest version: 0.2.5

# stylelint-config

stylelint config by GEEK,.inc. (Japan)

[![lerna](https://img.shields.io/badge/maintained%20with-lerna-cc00ff.svg)](https://lernajs.io/)

## Usage

### CLI (stylelint)

Install `@geekcojp/stylelint-config`.

```bash
yarn add -D @geekcojp/stylelint-config
```

Create `config.js` to root directory of the project as following.

```js
module.exports = {
  "extends": "@geekcojp/stylelint-config",
}
```

```bash
stylelint --config config.js index.css
```

### Gulp (Scss)

```js
gulp.task('lint-styles', () => {
  return gulp.src('sass/**/*.scss').pipe(
    $.postcss(
      [
        stylelint({
          extends: '@geekcojp/stylelint-config',
        }),
        reporter({
          clearReportedMessages: true,
        }),
      ],
      {
        syntax: require('postcss-scss'),
      },
    ),
  );
});

gulp.task('watch', () => {
  gulp.watch(['sass/**/*.scss'], ['lint-styles']);
});

gulp.task('default', ['watch']);
```

## Override

```js
module.exports = {
  "extends": "@geekcojp/stylelint-config",
  "rules": {
     // Add Rules
  }
}
```

## Change Log

- 2019/07/16 fix nesting Rules
- 2018/08/21 Add Scss Rules
- 2018/01/15 Publish
npm package: @geekcojp/tslint-config
Description: Tslint config of @geekcojp
Author: nju33
Latest version: 0.2.1

# tslint-config

Tslint config of @geekcojp

## Usage

```bash
yarn add -D tslint @geekcojp/tslint-config

npx tslint --init

vim tslint.json
```

then, write as follow

```json
{
	"extends": "@geekcojp/tslint-config"
}
```
npm package: @geekeditor/meditable
Description: A WYSIWYG markdown editor for web browser applications
Author: montisan
Latest version: 0.0.5


**MEditable** is a WYSIWYG markdown editor for web browser applications, derived from the open-source library [Muya](https://github.com/marktext/muya), with most features re-implemented from it, such as visual rendering of markdown text, text search and replacement. What's more, MEditable supports a lot highly efficient features, such as format replacement, dragging images to editor and so on. 

MEditable is still under development as a stand-alone library, providing markdown editing for [GeekEditor](https://www.geekeditor.com). 

## Installing

```sh
npm install @geekeditor/meditable
```

## Usage

```javascript
import MEditable from '@geekeditor/meditable'

const container = document.querySelector('#editor')
const meditable = new MEditable({container})
meditable.prepare().then(() => {
    meditable.setContent(`**MEditable** a WYSIWYG markdown editor for web browser applications.`)
});
```

## Documents

Coming soon!!!

## Development

```sh
# step1: install dependencies
npm install
# step2: run the development codes
npm run dev
```

## Build

```sh
npm run build
```

## Publish

```sh
# update version numbers
npm publish
```

## FAQ


None

## Built with MEditable

- [GeekEditor](https://www.geekeditor.com) - A markdown-based note-taker using your Github/Gitee/GitLab's repositories as storage.

## License

MIT © [montisan](https://github.com/montisan)
npm package: @geekeren/markdown-it-implicit-figures
Description: Render images occurring by itself in a paragraph as `<figure><img ...></figure>`, similar to pandoc's implicit_figures
Author: Baiyuan Wang
Latest version: 0.9.2

# markdown-it-implicit-figures [![Build Status](https://travis-ci.org/arve0/markdown-it-implicit-figures.svg?branch=master)](https://travis-ci.org/arve0/markdown-it-implicit-figures) [![npm version](https://badge.fury.io/js/markdown-it-implicit-figures.svg)](http://badge.fury.io/js/markdown-it-implicit-figures)

Render images occurring by itself in a paragraph as `<figure><img ...></figure>`, similar to [pandoc's implicit figures](http://pandoc.org/README.html#images).

Example input:
```md
text with ![](img.png)

![](fig.png)

works with links too:

[![](fig.png)](page.html)
```

Output:
```html
<p>text with <img src="img.png" alt=""></p>
<figure><img src="fig.png" alt=""></figure>
<p>works with links too:</p>
<figure><a href="page.html"><img src="fig.png" alt=""></a></figure>
```


## Install

```
$ npm install --save markdown-it-implicit-figures
```


## Usage

```js
var md = require('markdown-it')();
var implicitFigures = require('markdown-it-implicit-figures');

md.use(implicitFigures, {
  dataType: false,  // <figure data-type="image">, default: false
  figcaption: false,  // <figcaption>alternative text</figcaption>, default: false
  tabindex: false, // <figure tabindex="1+n">..., default: false
  link: false // <a href="img.png"><img src="img.png"></a>, default: false
});

var src = 'text with ![](img.png)\n\n![](fig.png)\n\nanother paragraph';
var res = md.render(src);

console.log(res);
```

[demo as jsfiddle](https://jsfiddle.net/arve0/1kk1h6p3/4/)

### Options

- `dataType`: Set `dataType` to `true` to declare the data-type being wrapped,
  e.g.: `<figure data-type="image">`. This can be useful for applying special
  styling for different kind of figures.
- `figcaption`: Set `figcaption` to `true` to put the alternative text in a
  `<figcaption>`-block after the image. E.g.: `![text](img.png)` renders to

  ```html
  <figure>
    <img src="img.png" alt="text">
    <figcaption>text</figcaption>
  </figure>
  ```
- `tabindex`: Set `tabindex` to `true` to add a `tabindex` property to each
  figure, beginning at `tabindex="1"` and incrementing for each figure
  encountered. Could be used with [this css-trick](https://css-tricks.com/expanding-images-html5/),
  which expands figures upon mouse-over.
- `link`: Put a link around the image if there is none yet.
- `copyAttrs`: Copy attributes matching (RegExp or string) `copyAttrs` to `figure` element.


## License

MIT © [Arve Seljebu](http://arve0.github.io/)
npm package: @geekhive/eslint-config-standard
Description: Standard ESLint configuration at GeekHive.
Author: Justin Firth
Latest version: 2.0.0

# @geekhive/eslint-config-standard

Standard ESlint configuration at GeekHive.

## Usage

Install the package from the npm registry:

```sh
npm install @geekhive/eslint-config-standard
yarn add @geekhive/eslint-config-standard
```

And then add a `.eslintrc.json` file to the repository root with the following contents:

```json
{
  "extends": ["@geekhive/eslint-config-standard"]
}
```
npm package: @geekhive/eslint-config-typescript
Description: TypeScript ESLint configuration at GeekHive.
Author: Justin Firth
Latest version: 2.0.0

# @geekhive/eslint-config-typescript

TypeScript ESlint configuration at GeekHive.

## Usage

Install the package from the npm registry:

```sh
npm install @geekhive/eslint-config-typescript
yarn add @geekhive/eslint-config-typescript
```

And then add a `.eslintrc.json` file to the repository root with the following contents:

```json
{
  "extends": ["@geekhive/eslint-config-typescript"]
}
```
npm package: @geekhive/stylelint-config-standard
Description: Common stylelint configuration at GeekHive.
Author: Justin Firth
Latest version: 2.0.0

# @geekhive/stylelint-config-standard

Standard stylelint configuration at GeekHive.

## Usage

Install the package from the npm registry:

```sh
npm install @geekhive/stylelint-config-standard
yarn add @geekhive/stylelint-config-standard
```

And then add a `.stylelintrc.json` file to the repository root with the following contents:

```json
{
  "extends": ["@geekhive/stylelint-config-standard"]
}
```
npm package: @geekhive/tslint-config-standard
Description: Standard TSLint configuration at GeekHive.
Author: Justin Firth
Latest version: 1.0.0

# @geekhive/tslint-config-standard

Standard tslint configuration at GeekHive.

## Usage

Install the package from the npm registry:

```sh
npm install @geekhive/tslint-config-standard
yarn add @geekhive/tslint-config-standard
```

And then add a `tslint.json` file to the repository root with the following contents:

```json
{
  "extends": ["@geekhive/tslint-config-standard"]
}
```
npm package: @geekhive/typescript-eslint-config-standard
Description: Standard TypeScript-based ESLint configuration at GeekHive.
Author: Justin Firth
Latest version: 1.0.1

# @geekhive/typescript-eslint-config-standard

Standard TypeScript ESlint configuration at GeekHive.

## Usage

Install the package from the npm registry:

```sh
npm install @geekhive/typescript-eslint-config-standard
yarn add @geekhive/typescript-eslint-config-standard
```

And then add a `.eslintrc.json` file to the repository root with the following contents:

```json
{
  "extends": ["@geekhive/typescript-eslint-config-standard"]
}
```
npm package: @geekidos/koishi-plugin-cannonballer-main
Description: [![npm](https://img.shields.io/npm/v/koishi-plugin-cannonballer-main?style=flat-square)](https://www.npmjs.com/package/koishi-plugin-cannonballer-main)
Latest version: 0.0.4

# koishi-plugin-cannonballer-main

[![npm](https://img.shields.io/npm/v/koishi-plugin-cannonballer-main?style=flat-square)](https://www.npmjs.com/package/koishi-plugin-cannonballer-main)
npm package: @geekie/eslint-plugin
Description: ESLint rules used at Geekie
Latest version: 1.0.3

# ESLint utilities used at Geekie

## Installation

Install using:

```
$ yarn add --dev eslint eslint-plugin-geekie
```

## Usage

Add `geekie` to your `.eslintrc.json` plugins:

<!-- prettier-ignore -->
```json
{
  "plugins": [
    "geekie"
  ]
}
```

And add one of the configs to `extends`:

<!-- prettier-ignore -->
```json
{
  "extends": [
    "plugin:@geekie/recommended"
  ]
}
```

Or add each rule individually:

<!-- prettier-ignore -->
```json
{
  "rules": {
    "@geekie/no-general-eslint-disable": "error"
  }
}
```

## Configs

The plugin exports two config:

- `rules`: enables the rules included in the plugin
- `recommended`: a sensible config for JS only, and enables the rules included in the plugin

## Rules

The plugin exports two rules:

- `no-general-eslint-disable`: disables usage of `eslint-disable` without specific rules, to prevent turning off linting completely in a line or in a file.
- `no-stringify-in-matcher`: prevents usage of `JSON.stringify` in Jest matchers (it might work with others) because the serialization order is not reliable.