open-index/open-npm huggingface dataset:
npm package: @miffy-w/async-runner
Description: 异步循环处理库
Author: miffy
Latest version: 0.1.4

# Async-Runner

异步运行库，主要包含：

- `clock`，一个基于 RAF 的定时器；
- `keep-runner`，传入的函数会被一直运行下去，知道手动 stop；
- `loop-runner`，用于循环执行；

下载

```bash
pnpm add @miffy-w/async-runner
```

## 1. `LoopRunner`

假如你有这么一个需求，有一个部门组织架构树，部门下面是所有的用户信息，当展开某个部门时可以分页查询该部门下的用户。

但是用户是否在线需要另一个接口去批量查询。我们想在用户展开部门时去收集获取的用户列表，然后调接口批量查询在线状态。当收集的用户信息太多时，我们需要分多次批量查询。

比如收集了 200 名用户信息，但接口最多一次查询 100 条，这时候我们就需要分两次查询，而 `LoopRunner` 就可以满足这个场景！

```ts
import { LoopRunner } from '@miffy-w/async-runner';

const members = new Array(10).fill(1).map((item, idx) => item + idx);

const loop = new LoopRunner<number, number>(members, {
  size: 50, // 每次查询 50 条数据
  interval: 6000, // 每过 6s 就查询一次数据
  runType: 'parallel', // 并行查询
  // 当轮询到来时，我们获取到轮询到的成员，然后调用接口更新
  async onLoop(members, size, index) {
    const statusList = await api.getOnlineState(members);
    // update members online status...
  },
});

// 开始轮询
loop.run();

setTimeout(() => {
  // 6s 之后可能又有新的成员需要添加进去
  loop.addMembers([11, 12, 13, 14, 15, 16, 17, 18]);
}, 6000);
```

`LoopRunner` 提供的能力：

1. 支持暂停（`loop.pause(true)`），当暂停后再启动会在轮询到的 index 处继续处理；
2. 支持并行（parallel）和串行（serial）两种方式；
3. 当轮询到最后不足指定的 size 时，自动填充前面的成员保证充分利用资源；
4. 支持单次轮询（轮询完成后清空列表成员）；

相关 API：

```ts
interface LoopRunnerOptions<M, R = any> {
  /** 一次处理多少成员，默认：50 条 */
  size?: number;
  /** 每次轮询的间隔时间，单位：ms，默认：10s */
  interval?: number;
  /** 一开始是否先执行一次（不延迟），默认：true */
  immediately?: boolean;
  /** 轮询回调 */
  onLoop: (members: M[], size: number, index: number) => R | Promise<R>;
  /** addMembers 之后，是否直接把 index 转到新的 members 开始循环，默认：true */
  updateIdxWhenAddingMembers?: boolean;
  /** 执行方式，默认：并行 */
  runType?: 'serial' | 'parallel';
  /** 当成员已经轮询过，是否删除他们，默认：false */
  removeLoopedMembers?: boolean;
  /** 每次更新 members 时触发的回调 */
  onUpdateMembers?: (newMembers: Set<M>) => void;
}
```

## 2. `Clock`

如果你想在页面上较为准确的展示时钟或者较为准确的在某个时间段执行一些操作，`Clock` 函数是个不错的选择，它内部使用 `RAF` 和 相对时间来计算出新的时间点。

```ts
import { Clock } from '@miffy-w/async-runner';

const clock = new Clock();

/* 使用后台给的时间戳来更新页面上的时钟 */
clock.run(api.data.timestamp, (newTime) => {
  $('#systemTime').textContent = dayjs.format(newTime, 'YYYY-MM-DD HH:mm:ss');
});
```

另外，Clock 也可用于倒计时程序，比如后台给了一个时间戳，在这个时间内展示倒计时。比如下面的函数是一个简易的倒计时 `React hook`：

```ts
const useCountdown = (initTime: number) => {
  const [time, setTime] = useState(0);
  const clockRef = useRef(new Clock());
  useEffect(() => {
    // run 回调的第二个参数是 RAF 执行一次时的上一次的时间点减去当前时间点得到的
    clockRef.current.run(initTime, (_, timeDiff) => {
      const time = initTime - diffTime;
      if (time >= 0) {
        setTime(time);
      } else {
        clockRef.current.stop();
      }
    });
    return () => {
      clockRef.current.stop();
    };
  }, []);
  return time;
};
```
npm package: @miffyliye/health-checks
Description: A generic health checker.
Author: MiffyLiye
Latest version: 2.1.1

# Health Checks
[![Build Status](https://travis-ci.org/MiffyLiye/HealthChecksJS.svg?branch=master)](https://travis-ci.org/MiffyLiye/HealthChecksJS)
[![codecov](https://codecov.io/gh/MiffyLiye/HealthChecksJS/branch/master/graph/badge.svg)](https://codecov.io/gh/MiffyLiye/HealthChecksJS)

A generic health checker.

## Getting Started

Install it via npm:

```shell
npm install @miffyliye/health-checks
```

Include in your project:

```javascript
var { HealthChecker, HealthStatus } = require('@miffyliye/health-checks');
const healthChecker = new HealthChecker();
healthChecker.addCheck(async () => {
    if (Math.random() > 0.5) {
        throw new Error('RandomFailure');
    }
}, 'db', HealthStatus.Unhealthy.name, ['default', 'all']);
healthChecker.addCheck(async () => {
    if (Math.random() > 0.5) {
        throw new Error('RandonFailure');
    }
}, 'external-service', HealthStatus.Degraded.name, ['all']);

// By default, it will filter checks which includes 'default' tag
var res = await healthChecker.getStatus();
// res will be something like 
// {
//     "status": "unhealthy",
//     "checks": [
//         {
//             "name": "db",
//             "state": "unhealthy",
//             "data": {
//                 "reason": "RandomFailure"
//             }
//         }
//     ]
// }

// You can use other tag to filter the checks
var res = await healthChecker.getStatus('all');
// res will be something like 
// {
//     "status": "degraded",
//     "checks": [
//         {
//             "name": "db",
//             "state": "healthy",
//             "data": {
//                 "reason": ""
//             }
//         },
//         {
//             "name": "external-service",
//             "state": "degraded",
//             "data": {
//                 "reason": "RandonFailure"
//             }
//         }
//     ]
// }
```

## License

MIT
npm package: @mificot/inject-it
Description: Yet another simple dependency injection tool that will help you resolve dependencies to focus on logic instead of how and when provide dependencies
Author: mificot
Latest version: 1.1.0


# Inject It

This is **yet another** simple dependency injection tool that will help you resolve dependencies to focus on bisness logic instead of how and when provide dependencies.

Main features:
- property based injection
- support for multiple DI containers
- constructor based injection

## Changelog

### 1.1.0
- Add constructor based injections
- Add auto resolve constructor dependencies (no need to use **@Inject** on Injectables dependencies)
- Fix issue with resolving non-injectable dependencies

## Disclaimer
This project was built to understand how decorators and Reflect working in TypeScript and how Dependecy Injection can be impletented.
## Installation

To start using package you need to run following commands via NPM:

```bash
  npm install @mificot/inject-it reflect-metadata
```

Import ```reflect-metadata``` package in the your entry source file

```typescript

import 'reflect-metadata'

// your source code
```

Also you need to enable emitting decorator metadata in ```tsconfig.json``` file under ```compilerOptions``` key:

```json
{
  "compilerOptions": {
    "experimentalDecorators": true,
    "emitDecoratorMetadata": true
  }
}
```

That it. Now you ready to go 😊

## Usage/Examples
### Basic example
```typescript
import { Container, Inject, Injectable } from '@mificot/inject-it'

const container = new Container()

@Injectable()
class InjectableClass {
  public action(): void {
    console.log('hello there')
  }
}

@Injectable()
class BaseClass {
  @Inject()
  public readonly injectableClass: InjectableClass
}

container.resolve(BaseClass).injectableClass.action() // logs: "hello there"
```
## Todo
- [x] Constructor based injection
- [ ] Global container
- [ ] More docs
npm package: @mifiel/api-client-auth
Description: Library to authenticate Mifiel API calls.
Author: Edgar Zavala
Latest version: 0.2.3

# `@mifiel/api-client-auth`

> Library to authenticate Mifiel API calls. Mifiel uses **SHA1 HMAC** encryption.

Please read our [documentation](http://docs.mifiel.com/) for instructions on how to start using the API. This library depends on [axios](https://axios-http.com/) to make requests to the Mifiel API.

## Installation

```bash
npm install @mifiel/api-client-auth --save
# or
yarn add @mifiel/api-client-auth
```

## Usage

For your convenience Mifiel offers a Sandbox environment where you can confidently test your code. To start using the API in the Sandbox environment you need to first create an account at [sandbox.mifiel.com](https://sandbox.mifiel.com). Once you have an account you will need an **APP_ID** and an **APP_SECRET** which you can generate in [https://app-sandbox.mifiel.com/settings/access-tokens](https://https://app-sandbox.mifiel.com/settings/access-tokens).

## Setting Tokens

```typescript
// for ESM or TypeScript
import { Config } from '@mifiel/api-client-auth';
// for CJS
const { Config } = require('@mifiel/api-client-auth');

Config.setTokens({
  appId: '<APP_ID>',
  appSecret: '<APP_SECRET>',
  // [optional] - by default is production
  env: 'production' | 'sandbox' | 'staging'
});
```

Also, you can set the environment using the following methods:

```typescript
// for sandbox use
Config.useSandbox();

// for production use
Config.useProduction();
```

## Making a Request

Our `Service.request` method has 2 arguments: the first one is the resource name of the Mifiel API Rest and the second is the [axios request config](https://github.com/axios/axios#request-config). It will return a promise.

### Examples

```typescript
import { Service } from '@mifiel/api-client-auth';

// GET /documents
const docs = await Service.request('documents', {
  method: 'GET',
});

// GET /documents/document-id
const doc = await Service.request('documents', {
  method: 'GET',
  url: 'document-id',
});
```

Also, we have a library to wrap the most common methods [@mifiel/api-client](https://github.com/Mifiel/mifiel-js/tree/main/packages/api-client)
npm package: @mifind/rn-runner
Description: ReactNative build tool for taro
Author: luckyadam
Latest version: 3.2.0-canary.6

# `@tarojs/rn-runner`

暴露给 `@tarojs/cli` 的 React Native Webpack 启动器。

`@tarojs/mini-runner` 从 `@tarojs/cli` 接受 [Taro 编译配置](https://taro-docs.jd.com/taro/docs/config.html)，把编译配置分解成 Webpack 配置，并刚启动 Webpack 把项目源码编译为适配 React Native 目录结构的代码。
npm package: @mig8447/knockout.mapping
Description: The mapping plugin gives you a straightforward way to map plain JavaScript objects into a view model with the appropriate Knockout observables. This is an alternative to manually writing your own JavaScript code that constructs a view model based on some 
Author: mig8447
Latest version: 2.4.3

Object mapping plugin for [Knockout](http://knockoutjs.com/) - Find the documentation [here](http://knockoutjs.com/documentation/plugins-mapping.html).
READ THIS
---
Due to lack of time this project is currently not actively maintained. Feel free to be a hero-- step up and [fork this repo](https://github.com/SteveSanderson/knockout.mapping/fork)!
npm package: @mig8447/lodash-debounce-throttle
Description: Lodash's debounce and throttle functions exported as UMD
Author: mig8447
Latest version: 4.17.5

# lodash-debounce-throttle

Lodash's debounce and throttle functions exported as UMD

This package makes use of the `lodash` CLI to generate an UMD export of the
`_.debounce` and `_.throttle` functions so they can be made available via `npm`
and some CDNs
npm package: @migalons/angular-wdio-builder
Description: Angular builder for running functional test based on webdriver.io runner.
Author: Miguel Angel Alonso
Latest version: 1.1.2

# angular-wdio-builder

Angular builder for running e2e test using webdriver.io runner.

Enables include wdio laucher into angular workspace (angular.json). Replaces protractor as e2e test framework.

## Peer dependencies

- _@wdio/cli_

wdio client is not installed. You must install this package by yourself, among other related packages (@wdio/sinc, services, plugins, etc.)

## Requirements

- @angular/cli >= @8.0.0

## Usage

### Install 

npm install @migalons/angular-wdio-builder --save-dev

### Angular workspace

For enabling your e2e test using angular builders, you just need to use this builder for running your e2e test:

```
{
  "$schema": "./node_modules/@angular/cli/lib/config/schema.json",
  "version": 1,
  "newProjectRoot": "projects",
  "projects": {
    "my-awesome-project": {
      ...
      "architect": {
        ...
        "e2e": {
          "builder": "@migalons/angular-wdio-builder:test",
          "options": {
            "wdioConfig": "e2e/wdio.conf.js",
            "devServerTarget": "my-awesome-project:serve"
          },
          "configurations": {
            "production": {
              "wdioConfig": "e2e/wdio-prod.conf.js",
              "devServerTarget": "my-awesome-project:serve:production"
            },
            "dev": {
              "wdioOptions": {
                  "port": 4567  // whatever options accepted by wdio cli
              }
              "devServerTarget": "my-awesome-project:serve:production",
              "port": 4201,
              "host": "0.0.0.0",
              "disableHostCheck: true"
            }
          }
        }
      }
    }
  ...
}
```

This builders, accepts three parameters:

- wdioConfig: URL for wdio cli configuration (defaults to "./e2e/wdio.conf.js).
- wdioOptons: Custom options for overriding provided configuration (wdioConfig). See [wdio cli options](https://webdriver.io/docs/clioptions.html) for more information.
- devServerTarget: Project target and configuration to be scheduled before running e2e test (i.e. serve app).
- port: Serve angular application using a custom port
- host: Host to listen on
- disableHostCheck: Don't verify connected clients are part of allowed hosts.

## Example

You can find an example of a project with angular application with e2e test implemented using this builder for include wdio test into angular workspace here:

https://github.com/migalons/angular-wdio-builder-demo
npm package: @migan/koreanbots
Description: not official koreanbots sdk
Latest version: 1.2.0

# <h1 align="center">@migan/koreanbots</h1>

<h4 align="center">이 패키지는 한국 디스코드 리스트의 공식 SDK가 아님을 알립니다.</h4>

## 설치

```sh
npm i @migan/koreanbots
```

### 사용

#### 서버수 자동 업데이트

```js
const { KoreanbotsClient } = require('@migan/koreanbots')
const { GatewayIntentBits } = require('discord.js')

const client = new KoreanbotsClient(
  {
    intents: [GatewayIntentBits.Guilds],
  },
  {
    api: {
      token: '당신의 봇의 한디리 토큰',
    },
    updateInterval: 600000,
  }
)

client.login('당신의 봇의 토큰')
```

#### 서버수 수동 업데이트

```js
const { GatewayIntentBits, Client } = require('discord.js')
const { Koreanbots } = require('@migan/koreanbots')

const client = new Client({
  intents: [GatewayIntentBits.Guilds],
})

const krBots = new Koreanbots({
  api: {
    token: '당신의 봇의 한디리 토큰',
  },
  clientId: '당신의 봇의 아이디',
})

client.on('ready', () => {
  const update = () =>
    krbots.myBot
      .update({
        servers: client.guilds.cache.size,
        shards: client.shard?.count,
      })
      .then(res => console.log(JSON.stringify(res)))
  update()
  setInterval(update, 600000)
})

client.login('당신의 봇의 토큰')
```

#### (베타) 웹훅

웹훅 기능은 아직 정식 출시가 안되었습니다.

```js
const { KoreanbotsWebhook } = require('@migan/koreanbots')

new KoreanbotsWebhook(port, body => {
  console.log(JSON.stringify(body))
}).init()
```
npm package: @migenius/jsdoc-template
Description: migenius template for JSDoc 3
Author: Brendan Hack
Latest version: 1.0.2
Deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.

# migenius template for JSDoc 3

- [migenius](http://migenius.com/)
- [JSDoc3](https://github.com/jsdoc3/jsdoc)
- [JSDoc3 API Documentations](http://usejsdoc.org)
- Based on [PixiJS](https://github.com/pixijs/pixi-jsdoc-template)

## Installation

Install the template using NPM:

```bash
npm install @migenius/jsdoc-template --save-dev
```

## Usage

If you already have JSDoc system, you can use this project as JSDoc template. More information about JSDoc command-line arguments can be found [here](http://usejsdoc.org/about-commandline.html).

```bash
jsdoc -c conf.json -R README.md
```

### conf.json

You can set options for customizing your documentations. Notice the `"template"` field for setting the path to **pixi-jsdoc-template**.

```json
{
  "templates": {
      "applicationName": "Demo",
      "disqus": "",
      "googleAnalytics": "",
      "openGraph": {
          "title": "",
          "type": "website",
          "image": "",
          "site_name": "",
          "url": ""
      },
      "meta": {
          "title": "",
          "description": "",
          "keyword": ""
      },
      "linenums": true,
      "source": {
          "include": [
              "./src/"
          ],
          "includePattern": ".+\\.js(doc)?$",
          "excludePattern": "(^|\\/|\\\\)_"
      },
      "opts": {
          "encoding": "utf8",
          "recurse": true,
          "private": false,
          "lenient": true,
          "destination": "./docs",
          "template": "./node_modules/@migenius/jsdoc-template"
      }
  },
  "pixi": {
      "styles": ["path/to/custom/styles.css"],
      "scripts": ["path/to/custom/script.js"]
   }
}
```

## License

This project under the MIT License. and this project refered by default template for JSDoc 3.
npm package: @migerh/js-module-walker
Description: Analyze dependencies of es6 module based js projects
Author: Michael Gerhaeuser
Latest version: 0.2.0

# js-module-walker

[![Build Status](https://travis-ci.org/migerh/js-module-walker.svg?branch=master)](https://travis-ci.org/migerh/js-module-walker)
[![Code Climate](https://codeclimate.com/github/migerh/js-module-walker/badges/gpa.svg)](https://codeclimate.com/github/migerh/js-module-walker)
[![Test Coverage](https://codeclimate.com/github/migerh/js-module-walker/badges/coverage.svg)](https://codeclimate.com/github/migerh/js-module-walker/coverage)

A dependency analyzer for ECMAScript projects that use es6 modules.

## Installation

```bash
# npm install -g @migerh/js-module-walker
```

## Usage

Invoke with `--help` or `-h` to get up to date information of the accepted input parameters:

```bash
  Usage: js-module-walker [options] <files>

  Options:

    -h, --help           output usage information
    -o, --output [file]  save output in file
    --find-cycles        detect and highlight cyclic dependencies
    --ignore-packages    ignore dependencies into packages from e.g. node modules
```

Examples:

```bash
$ js-module-walker ./path/to/your/js-project
$ js-module-walker --ignore-packages --output /tmp/dependencies.dot ./path/to/js-files
```

### js-module-walker

An analysis of this very project as of d8636e14 produces the graph below

```bash
$ js-module-walker index.js ./lib | dot -o./examples/js-module-walker-d8636e14.png -T png
```

![js-module-walker example graph](examples/js-module-walker-d8636e14.png)


### [4minitz](https://github.com/4minitz/4minitz)

An open source webapp for meeting minutes; version https://github.com/4minitz/4minitz/commit/215091a7d.
The analysis is restricted to the client side modules.

```bash
$ js-module-walker --find-cycles --ignore-packages ./client/**/*.js ./lib/**/*.js ./imports/**/*.js | dot -Tpng -o./examples/4minitz-client-w-cycles-wo-packages-215091a7d.png
```

Graph: [4minitz dependency graph](examples/4minitz-client-w-cycles-wo-packages-215091a7d.png)

## Contributors

[@yogan](https://github.com/yogan)

## License

This project is licensed under the terms of the MIT license. See the [LICENSE](LICENSE) file for more information.
npm package: @migeru07/rand-messages
Description: Devolver mensajes aleatorios, Whenever I start a new project, I don't know what to write for the first commit.
Author: Juan Jimenez
Latest version: 1.0.2


# random-messages

Whenever I start a new project, I don't know what to write for the first commit. After doing a “git init” there is technically nothing there...

## Install

```npm
npm i @migeru07/rand-messages
```

# Usage

```bash
random-msg
```

# Contributing
If someone wants to add or improve something, I invite you to collaborate directly in this repository: [random-msg]( https://github.com/migeru07/npm-random-msg.git )

# License
random-msg is released under the [MIT License](https://opensource.org/licenses/MIT).
npm package: @miggy92/clean-html
Description: Clean html by minifying html, striping comments, removing js, removing ng attributes and removing whitespaces
Latest version: 0.1.4

HTML cleaning tool that works in the browser based on https://github.com/kangax/html-minifier/

usage is
```js
const minify = require('clean-html');
const minifiedText = minify(text, options);
```
Options are
```js
{
  collapseBooleanAttributes = true,
  collapseWhitespace = true,
  removeNgAttributes = true,
  removeCssComments = true,
  removeHTMLComments = true,
  removeJS = true
}
```
npm package: @mightbeandrew/wtfcli
Description: Why is my computer slow right now? One command that diagnoses CPU, memory, disk, and network.
Author: Andrew-most-likely
Latest version: 1.0.8

# wtf

**Why is my computer slow right now?**

One command that tells you exactly what's eating your CPU, memory, disk, and network — in plain English. Not `top`. Not 10 tools. One answer.

```
$ wtf

 CPU  ████████░░  82%
   Chrome                          42.3%
   node                             8.1%
   Slack                            3.4%

 MEM  ███████░░░  71%  11.4 GB / 16.0 GB
   Chrome                        4.2 GB
   node                          1.1 GB
   Slack                         800 MB

 DSK
   /dev/sda1             ██████░░░░  58%  230 GB / 400 GB

 NET
   eth0          ↓      1.2 MB/s  ↑    200 KB/s

────────────────────────────────────────────────────────
 High CPU: Chrome is using 42% CPU
```

## Install

```sh
npm install -g @mightbeandrew/wtfcli
```

## Usage

```sh
wtf                       # full diagnosis
wtf --cpu --mem           # CPU and memory only
wtf -v                    # verbose: top 10 processes, extra stats
wtf -j | jq '.cpu'        # JSON output piped to jq
wtf -w 5                  # live refresh every 5 seconds
wtf --no-color > out.txt  # plain text to file
```

## Flags

| Flag | Description |
|------|-------------|
| `-v, --verbose` | More processes, extra detail |
| `-j, --json` | JSON output (pipe-friendly, no color) |
| `--no-color` | Strip ANSI colors |
| `--cpu` | CPU section only |
| `--mem` | Memory section only |
| `--disk` | Disk section only |
| `--net` | Network section only |
| `-t, --top <n>` | Top N processes per section (default: 5) |
| `-w, --watch [secs]` | Live refresh, default every 2s |
| `--version` | Print version |
| `-h, --help` | Show help |

## License

MIT
npm package: @mightifier/eslint-config-mighty-react
Description: An ESLint plugin for all react base Mightifier applcations.
Latest version: 0.4.0

An ESLint plugin for all react base Mightifier applcations.

## Installation

```bash
npm install @mightifier/eslint-config-mighty-react --save-dev
```

## Usage

Add an `.eslintrc.json` file to your root directory with the following:

```bash
{
  "extends": ["@mightifier/eslint-config-mighty-react"],
}
```
npm package: @mightifier/mighty-core
Description: Core logic and utility methods.
Latest version: 0.4.0

Core logic and utility methods.

## Installation

```bash
npm install --save @mightifier/mighty-core
```

Import business logic:

```javascript static
import {
  groupTypes,
  accountTypes,
  roleTypes
} from "@mightifier/mighty-core/business/domain";
```

Import general utils:

```javascript static
import { chunk, move } from "@mightifier/mighty-core/utils";
```

Import infrastructure utils:

```javascript static
import { messageTypes, getRoom } from "@mightifier/mighty-core/infra";
```

## Documentation

See [documentation](https://mightifier.gitlab.io/mightify-kit/packages/core/public).
npm package: @mightifier/mighty-kit
Description: Set of common components and utility methods for Mightifier apps
Author: Maciej Wojsław
Latest version: 1.3.6

# Mighty Kit !

## Installation

From npm:

```bash
npm install --save @mightifier/mighty-kit
```

or from yarn:

```bash
yarn add @mightifier/mighty-kit
```

Import react components:

```javascript
import { MightyProvider } from "@mightifier/mighty-kit";
```

Import specific utils:

```javascript
import { chunk } from "@mightifier/mighty-kit/utils/array";
import { createAsyncAction } from "@mightifier/mighty-kit/utils/redux";
import { post, get, put } from "@mightifier/mighty-kit/utils/http";
```

or just all of them at once:

```javascript
import {
  chunk,
  createAsyncAction,
  post,
  get,
  put
} from "@mightifier/mighty-kit/utils";
```

Import higher-order react components:

```javascript
import { withBreakpoints } from "@mightifier/mighty-kit/hoc";
```

## Documentation

See [components documentation](https://mightifier.gitlab.io/mightify-kit/).

## Developer Guide

To deploy new version just use:

```sh
npm version <newversion>
```

This will automatically push your code with `--follow-tags` option.
npm package: @mighty-justice/smart-bool
Description: Eliminate your single-line boolean setting methods
Author: Mighty
Latest version: 2.0.2

# SmartBool

[![npm Version](https://img.shields.io/npm/v/@mighty-justice/smart-bool.svg)](https://www.npmjs.com/package/@mighty-justice/smart-bool) [![Build Status](https://travis-ci.org/mighty-justice/smart-bool.svg?branch=master)](https://travis-ci.org/mighty-justice/smart-bool) [![Coverage Status](https://coveralls.io/repos/github/mighty-justice/smart-bool/badge.svg?branch=master)](https://coveralls.io/github/mighty-justice/smart-bool?branch=master)

## Installation
#### dependencies
```
"mobx": ">=5.8"
```
#### npm
`npm install --save-dev @mighty-justice/smart-bool`

#### yarn
`yarn add --dev @mighty-justice/smart-bool`

### Helpers
```ts
get isTrue // Value
set(value: boolean) // Sets new value
setTrue() // Sets value to true
setFalse() // Sets value to false
toggle() // Toggles value
until(promise) // Waits for promise, then sets value to true and returns promise
saving(label: string) // Returns label is false, 'Saving...' if true. Useful for buttons.
```

### Usage

```jsx
import React, { Component } from 'react';
import axios from 'axios';
import { observer } from 'mobx-react';
import SmartBool from '@mighty-justice/smart-bool';

@observer
class Autofac extends Component<{}> {
  private isLoading = SmartBool(true);
  private isMilkPizzled = SmartBool(); // Defaults to false

  constructor (props: {}) {
    super(props);
    this.waitForTrain();
  }

  private async waitForTrain () {
    //  this.isLoading.isTrue == true;
    //  this.isMilkPizzled.isTrue == false;

    // Sets bool to true until a promise returns.
    const request = axios.get('/train/');
    // this.isLoading.isTrue == true;
    const response = await this.isLoading.until(request);
    // this.isLoading.isTrue == false;

    // Simple setter
    this.isMilkPizzled.set(true);

    // Helper method useful for JSX props
    this.isMilkPizzled.setTrue();
  }

  public render () {
    return (
      <div>
        <p>Waiting for train: {this.isLoading.isTrue}</p>
        <p>Claiming is pizzled: {this.isMilkPizzled.isTrue}</p>
      </div>
    )
  }
}
```
npm package: @mighty-justice/tslint-config
Description: Default TSLint configuration used at Mighty
Author: Mighty
Latest version: 1.0.2

# @mighty-justice/tslint-config

[![npm Version](https://img.shields.io/npm/v/@mighty-justice/tslint-config.svg)](https://www.npmjs.com/package/@mighty-justice/tslint-config) [![Build Status](https://travis-ci.org/mighty-justice/tslint-config.svg?branch=master)](https://travis-ci.org/mighty-justice/tslint-config)

This package is a configuration preset for [TSLint](https://palantir.github.io/tslint). It contains a set of rules applied to most TypeScript projects at Mighty.


## Install

```sh
yarn add --dev @mighty-justice/tslint-config
```


## Usage

Add `@mighty-justice/tslint-config` to your project's TSLint configuration file. i.e.:

```json
{
  "extends": "@mighty-justice/tslint-config"
}
```

If possible, try not to override the preset unless you have a special reason.


## Release

To release:

```sh
npm run release
```

## License

MIT
npm package: @mighty-justice/utils
Description: Standardization of small utilities across Mighty
Author: Mighty
Latest version: 1.5.1

# Mighty Utils

[![npm Version](https://img.shields.io/npm/v/@mighty-justice/utils.svg)](https://www.npmjs.com/package/@mighty-justice/utils) [![Build Status](https://travis-ci.org/mighty-justice/utils.svg?branch=master)](https://travis-ci.org/mighty-justice/utils) [![Coverage Status](https://coveralls.io/repos/github/mighty-justice/utils/badge.svg?branch=master)](https://coveralls.io/github/mighty-justice/utils?branch=master)

## Installation

#### npm
`npm install --save-dev @mighty-justice/utils`

#### yarn
`yarn add --dev @mighty-justice/utils`

### Usage

```ts
import { formatPhoneNumber } from @mighty-justice/utils';

console.log(formatPhoneNumber('5558675309')) // => (555) 867-5309
```
npm package: @mightydatainc/mdi-llmkit
Description: Meta-package that installs Mighty Data LLM utility packages
Author: Mikhail Voloshin
Latest version: 1.0.8

# @mightydatainc/mdi-llmkit

TypeScript/Node meta-package for the Mighty Data LLM toolkit.

## Full Project Documentation

For the complete project overview and rationale, see the repository README:

- https://github.com/Mighty-Data-Inc/mdi-llmkit#readme

This package is a convenience installer. It does not define a runtime API surface of its own. Instead, it installs the core component packages used in TypeScript and JavaScript projects.

## Installation

```bash
npm install @mightydatainc/mdi-llmkit
```

## Installed Component Packages

Installing this meta-package pulls in:

- `@mightydatainc/llm-conversation`
- `@mightydatainc/json-surgery`
- `@mightydatainc/semantic-match`

## Usage

Import functionality from the component packages directly:

```ts
import * as llmConversation from '@mightydatainc/llm-conversation';
import * as jsonSurgery from '@mightydatainc/json-surgery';
import * as semanticMatch from '@mightydatainc/semantic-match';
```

Refer to each component package documentation for API details and examples.

## Notes

- npm package name: `@mightydatainc/mdi-llmkit`
- This package is dependency-only by design.
npm package: @mightykraken/l0-node-linter-config
Description: Linting and formatting configurations for Prettier, ESLint, HTMLHint, and Stylelint.
Author: Sabik Abtahee
Latest version: 1.10.9

# Npm link

https://www.npmjs.com/package/@mightykraken/l0-node-linter-config
		
# Install

npm install @mightykraken/l0-node-linter-config --save-dev

# Prettier Import

Make a prettier.config.js file and paste

module.exports = require("@mightykraken/l0-node-linter-config").prettier;

# Eslint Import

# Husky Lint-staged

# HtmlHint

# StyleLint