open-index/open-npm huggingface dataset:
npm package: @jswork/digits-split
Description: Digits split to standard numers.
Latest version: 1.0.2

# digits-split
> Digits split to standard numers.

[![version][version-image]][version-url]
[![license][license-image]][license-url]
[![size][size-image]][size-url]
[![download][download-image]][download-url]

## installation
```shell
npm install @jswork/digits-split
```

## usage
```js
import digitsSplit from '@jswork/digits-split';

digitsSplit(1024);

// [1000, 0, 20, 4]
```

## license
Code released under [the MIT license](https://github.com/afeiship/digits-split/blob/master/LICENSE.txt).

[version-image]: https://img.shields.io/npm/v/@jswork/digits-split
[version-url]: https://npmjs.org/package/@jswork/digits-split

[license-image]: https://img.shields.io/npm/l/@jswork/digits-split
[license-url]: https://github.com/afeiship/digits-split/blob/master/LICENSE.txt

[size-image]: https://img.shields.io/bundlephobia/minzip/@jswork/digits-split
[size-url]: https://github.com/afeiship/digits-split/blob/master/dist/digits-split.min.js

[download-image]: https://img.shields.io/npm/dm/@jswork/digits-split
[download-url]: https://www.npmjs.com/package/@jswork/digits-split
npm package: @jswork/dns-prefetch-webpack-plugin
Description: Dns prefetch webpack plugin.
Author: feizheng
Latest version: 1.0.0

# dns-prefetch-webpack-plugin
> Dns prefetch webpack plugin.

## installation
```bash
npm install @jswork/dns-prefetch-webpack-plugin
```

## usage
```js
new DnsPrefetchWebpackPlugin({
  items:[
    '//www.baidu.com',
    '//img0.baidu.com',
    '//img1.baidu.com'
  ]
})
```
npm package: @jswork/dns-resolver
Description: DNS fast resolver.
Latest version: 1.0.3

# dns-resolver
> DNS fast resolver.

[![version][version-image]][version-url]
[![license][license-image]][license-url]
[![size][size-image]][size-url]
[![download][download-image]][download-url]

## installation
```shell
npm install @jswork/dns-resolver
```

## usage
```js
import dnsResolver from '@jswork/dns-resolver';

const res = await dnsResolver('github.com');

/**
 * [{ type: 'A', ip: '20.205.243.166', ttl: '48' }]
 */
```

## license
Code released under [the MIT license](https://github.com/afeiship/dns-resolver/blob/master/LICENSE.txt).

[version-image]: https://img.shields.io/npm/v/@jswork/dns-resolver
[version-url]: https://npmjs.org/package/@jswork/dns-resolver

[license-image]: https://img.shields.io/npm/l/@jswork/dns-resolver
[license-url]: https://github.com/afeiship/dns-resolver/blob/master/LICENSE.txt

[size-image]: https://img.shields.io/bundlephobia/minzip/@jswork/dns-resolver
[size-url]: https://github.com/afeiship/dns-resolver/blob/master/dist/dns-resolver.min.js

[download-image]: https://img.shields.io/npm/dm/@jswork/dns-resolver
[download-url]: https://www.npmjs.com/package/@jswork/dns-resolver
npm package: @jswork/docify-zip
Description: Zip with nodejs cli for docify.
Author: afei
Latest version: 1.0.0

# docify-zip
> Zip with nodejs cli for docify.

[![version][version-image]][version-url]
[![license][license-image]][license-url]
[![size][size-image]][size-url]
[![download][download-image]][download-url]

![snapshot](https://tva1.sinaimg.cn/large/008i3skNgy1gv865kab3sj60ju02at8u02.jpg)

## installation
```shell
git clone https://github.com/afeiship/docify-zip.git
cd docify-zip
npm i && npm link
```

## usage
~~~
Usage: dzip [options]

Options:
  -V, --version            output the version number
  -d, --debug              only show cmds, but not clean.
  -f, --filename <string>  The zip target filename.
  -p, --password <string>  The zip password.
  -s, --suffix <string>    The filename suffix (default: "")
  -h, --help               display help for command
~~~

## user case
1. file with password
   ```shell
   dzip -f html_post_test.html -p 123
   ```

2. folder with password
   ```shell
   dzip -f snips -p 123
   ```

## resources
- https://ma.ttias.be/create-a-password-protected-zip-file-on-mac-osx/

## license
Code released under [the MIT license](https://github.com/afeiship/docify-zip/blob/master/LICENSE.txt).

[version-image]: https://img.shields.io/npm/v/@jswork/docify-zip
[version-url]: https://npmjs.org/package/@jswork/docify-zip

[license-image]: https://img.shields.io/npm/l/@jswork/docify-zip
[license-url]: https://github.com/afeiship/docify-zip/blob/master/LICENSE.txt

[size-image]: https://img.shields.io/bundlephobia/minzip/@jswork/docify-zip
[size-url]: https://github.com/afeiship/docify-zip/blob/master/dist/docify-zip.min.js

[download-image]: https://img.shields.io/npm/dm/@jswork/docify-zip
[download-url]: https://www.npmjs.com/package/@jswork/docify-zip
npm package: @jswork/dotenv-flow-cli
Description: dotenv-flow cli.
Latest version: 1.0.2

# dotenv-flow-cli
> dotenv-flow cli.

## usage
```json
  "scripts": {
    "dev": "NODE_ENV=development dotenv-flow-cli src/app.js",
    "beta": "NODE_ENV=beta dotenv-flow-cli src/app.js"
  },
```

## raw
```json
  "scripts": {
    "dev": "NODE_ENV=development node -r dotenv-flow/config src/app.js",
    "beta": "NODE_ENV=beta node -r dotenv-flow/config src/app.js"
  },
```

## use ci.js
```json
  "scripts": {
    "dev": "NODE_ENV=development node cli.js src/app.js",
    "beta": "NODE_ENV=beta node cli.js src/app.js"
  },
```

## cli.js
```shell
#!/usr/bin/env node

import dotenvFlow from 'dotenv-flow';
import { spawn } from 'child_process';

dotenvFlow.config();

const [, , ...args] = process.argv;
if (args.length === 0) {
  console.error('Usage: cli.js <script.js> [args]');
  process.exit(1);
}

const script = args[0];
const scriptArgs = args.slice(1);

const child = spawn('node', [script, ...scriptArgs], { stdio: 'inherit' });
child.on('exit', code => process.exit(code));
```
npm package: @jswork/dotenv-local-first
Description: Dotenv local first cli.
Latest version: 1.0.4

# dotenv-local-first
> Dotenv local first cli.

## Installation

```sh
yarn add --dev @jswork/dotenv-local-first
```

## Usage

This CLI tool loads environment variables from `.env*` files with the following priority (later files override earlier ones):

1. `.env`
2. `.env.${NODE_ENV}` (e.g., `.env.development`, `.env.production`)
3. `.env.local`
4. `.env.${NODE_ENV}.local` (e.g., `.env.development.local`)

### Basic usage

```sh
# Just load and display environment variables
dotenv-local-first

# Run a script with loaded environment variables
dotenv-local-first your-script.js

# Run with verbose logging
dotenv-local-first -v your-script.js
```

### Example

Create your environment files:

```bash
# .env (base configuration)
DATABASE_NAME=myapp_db
DATABASE_USER=root
DATABASE_PORT=3306
DATABASE_PASS=secret123

# .env.development (development overrides)
DATABASE_NAME=myapp_dev_db
DATABASE_PORT=3307
DATABASE_PASS=dev_secret

# .env.local (local overrides - should not be committed)
DATABASE_PASS=local_override_password
DATABASE_USER=local_user
```

Then run:

```sh
NODE_ENV=development dotenv-local-first
```

This will load variables with the priority: `.env` → `.env.development` → `.env.local` → `.env.development.local`

## Development

```sh
bun create cli/dotenv-local-first --no-git --no-install
```
npm package: @jswork/douban-search-book
Description: Douban book search.
Latest version: 1.0.5

# douban-search-book
> Douban book search.

[![version][version-image]][version-url]
[![license][license-image]][license-url]
[![size][size-image]][size-url]
[![download][download-image]][download-url]

## installation
```shell
npm install @jswork/douban-search-book
```

## usage
```js
import doubanSearchBook from '@jswork/douban-search-book';

const res = await doubanSearchBook("2130190");

/**
 * {
 *   "title": "Java编程思想 （第4版）",
 *   "author": "（美）J.B.摩尔",
 *   // ....
 * }
 */
```

## license
Code released under [the MIT license](https://github.com/afeiship/douban-search-book/blob/master/LICENSE.txt).

[version-image]: https://img.shields.io/npm/v/@jswork/douban-search-book
[version-url]: https://npmjs.org/package/@jswork/douban-search-book

[license-image]: https://img.shields.io/npm/l/@jswork/douban-search-book
[license-url]: https://github.com/afeiship/douban-search-book/blob/master/LICENSE.txt

[size-image]: https://img.shields.io/bundlephobia/minzip/@jswork/douban-search-book
[size-url]: https://github.com/afeiship/douban-search-book/blob/master/dist/douban-search-book.min.js

[download-image]: https://img.shields.io/npm/dm/@jswork/douban-search-book
[download-url]: https://www.npmjs.com/package/@jswork/douban-search-book
npm package: @jswork/east8date
Description: Get east +8 timezone date object.
Latest version: 1.0.1

# east8date
> Get east +8 timezone date object.

[![version][version-image]][version-url]
[![license][license-image]][license-url]
[![size][size-image]][size-url]
[![download][download-image]][download-url]

## installation
```shell
npm install @jswork/east8date
```

## usage
```js
import east8date from '@jswork/east8date';

const d = east8date();
```

## types
```ts
/// <reference types="@jswork/east8date/global.d.ts" />
```

## license
Code released under [the MIT license](https://github.com/afeiship/east8date/blob/master/LICENSE.txt).

[version-image]: https://img.shields.io/npm/v/@jswork/east8date
[version-url]: https://npmjs.org/package/@jswork/east8date

[license-image]: https://img.shields.io/npm/l/@jswork/east8date
[license-url]: https://github.com/afeiship/east8date/blob/master/LICENSE.txt

[size-image]: https://img.shields.io/bundlephobia/minzip/@jswork/east8date
[size-url]: https://github.com/afeiship/east8date/blob/master/dist/index.min.js

[download-image]: https://img.shields.io/npm/dm/@jswork/east8date
[download-url]: https://www.npmjs.com/package/@jswork/east8date
npm package: @jswork/echarts-tiny
Description: Echart for tiny app.
Author: afeiship
Latest version: 1.0.2

# echarts-tiny
> Echart for tiny app.

## installation
```shell
npm i @jswork/echarts-tiny
```

- https://echarts.apache.org/zh/builder.html

```conf
1.8M    echarts.js
520K    echarts.min.js
```
npm package: @jswork/env-manager
Description: Environment manager for frontend.
Latest version: 1.0.14

# env-manager
> Environment manager for frontend.

[![version][version-image]][version-url]
[![license][license-image]][license-url]
[![size][size-image]][size-url]
[![download][download-image]][download-url]

## installation
```shell
npm install @jswork/env-manager
```

## usage
```js
import EnvManager from '@jswork/env-manager';

// vite
const viteEnv = new EnvManager({
  prefix: 'VITE_',
  env: import.meta.env
});

// webpack
const craEnv = new EnvManager({
  prefix: 'REACT_APP_',
  env: process.env
});
```

> You can use `env-cmd` to manage your envs.
```json
// ---------- package.json
"scripts": {
  "start": "env-cmd -e local react-scripts start",
  "build:beta": "env-cmd -e beta react-scripts build",
  "build:prod": "env-cmd -e prod react-scripts build",
  "test": "react-scripts test",
  "eject": "react-scripts eject"
}
```

> You can use `env-cmdrc.js` to manage your envs.
```js
// ---------- .env-cmdrc.js
module.exports = craEnv.set({
  "local": {
    "API_URL": "http://localhost:3000",
    "BUILD_ENV": 'local-api.github.com/users/afeiship',
  },
  "beta": {
    "API_URL": "http://beta.api.com",
    "BUILD_ENV": 'beta-api.github.com/users/afeiship',
  },
  "production": {
    "API_URL": "http://api.com",
    "BUILD_ENV": 'api.github.com/users/afeiship',
  },
});

// ---------- src/app.tsx
// get 'BUILD_ENV'
const buildEnv = craEnv.get('BUILD_ENV');
// get all
const envs = craEnv.get();
```

## types
```ts
// add to global.d.ts OR nx-env.d.ts
/// <reference types="@jswork/env-manager/dist/@types" />
```

## license
Code released under [the MIT license](https://github.com/afeiship/env-manager/blob/master/LICENSE.txt).

[version-image]: https://img.shields.io/npm/v/@jswork/env-manager
[version-url]: https://npmjs.org/package/@jswork/env-manager

[license-image]: https://img.shields.io/npm/l/@jswork/env-manager
[license-url]: https://github.com/afeiship/env-manager/blob/master/LICENSE.txt

[size-image]: https://img.shields.io/bundlephobia/minzip/@jswork/env-manager
[size-url]: https://github.com/afeiship/env-manager/blob/master/dist/env-manager.min.js

[download-image]: https://img.shields.io/npm/dm/@jswork/env-manager
[download-url]: https://www.npmjs.com/package/@jswork/env-manager
npm package: @jswork/env-select
Description: Dynamic detect env by url or other window environment.
Latest version: 1.0.7

# env-select
> Dynamic detect env by url or other window environment.

## installation
```shell
npm i @jswork/env-select
```

## usage
> basic partial files
```js
// 1. `.env-cmdrc.js`
const { CraEnvs } = require('@jswork/env-select');

module.exports = CraEnvs.set({
  beta: {
    base_url: 'https://site-predict-platform.beta.saybot.net',
  },
  staging: {
    base_url: 'https://site-predict-platform.staging.saybot.net',
  },
});


// 2. Write your app implementation
import { AbstractEnvSelect } from '@jswork/env-select';

class Env extends AbstractEnvSelect {
  static ENV_SELECTORS = {
    beta: 'course-assets.saybot.net',
    staging: 'course-assets.alo7.com',
  };

  /**
   * Auto select env by current url.
   * @returns {string} The target env string.
   */
  static select(): string {
    let env = 'beta';
    nx.forIn(this.ENV_SELECTORS, (key, value) => {
      if (window.location.pathname.includes(value)) {
        env = key;
        return nx.BREAKER;
      }
    });
    return env;
  }
}

// 3. Use you customize env <when beta/staging>
const base_url = Env.get('base_url');
// https://site-predict-platform.beta.saybot.net
```

> 4. update npm package scripts
```json5
{
  // ...
  "start": "env-cmd -e envs react-scripts start",
  "build": "env-cmd -e envs react-scripts build",
  // ...
}
```

## resources
- https://js.work/works/61077d5843ff0
npm package: @jswork/env-select-init
Description: Npx init for env-select.
Latest version: 1.0.9

# env-select-init
> Npx init for env-select.

[![version][version-image]][version-url]
[![license][license-image]][license-url]
[![size][size-image]][size-url]
[![download][download-image]][download-url]

## installation
```shell
npm install @jswork/env-select-init
```

## usage
```js
import envSelectInit from '@jswork/env-select-init';

// usage goes here.
```

## license
Code released under [the MIT license](https://github.com/afeiship/env-select-init/blob/master/LICENSE.txt).

[version-image]: https://img.shields.io/npm/v/@jswork/env-select-init
[version-url]: https://npmjs.org/package/@jswork/env-select-init

[license-image]: https://img.shields.io/npm/l/@jswork/env-select-init
[license-url]: https://github.com/afeiship/env-select-init/blob/master/LICENSE.txt

[size-image]: https://img.shields.io/bundlephobia/minzip/@jswork/env-select-init
[size-url]: https://github.com/afeiship/env-select-init/blob/master/dist/env-select-init.min.js

[download-image]: https://img.shields.io/npm/dm/@jswork/env-select-init
[download-url]: https://www.npmjs.com/package/@jswork/env-select-init
npm package: @jswork/env-utils
Description: Env utils.
Latest version: 1.0.3

# env-utils
> Env utils.

[![version][version-image]][version-url]
[![license][license-image]][license-url]
[![size][size-image]][size-url]
[![download][download-image]][download-url]

## installation
```shell
npm install @jswork/env-utils
```

## usage
```js
import { prefixedEnv } from '@jswork/env-utils';

const envs = prefixedEnv('REACT_APP_', process.env);
```

## types
```ts
/// <reference types="@jswork/env-utils/global.d.ts" />
```

## license
Code released under [the MIT license](https://github.com/afeiship/env-utils/blob/master/LICENSE.txt).

[version-image]: https://img.shields.io/npm/v/@jswork/env-utils
[version-url]: https://npmjs.org/package/@jswork/env-utils

[license-image]: https://img.shields.io/npm/l/@jswork/env-utils
[license-url]: https://github.com/afeiship/env-utils/blob/master/LICENSE.txt

[size-image]: https://img.shields.io/bundlephobia/minzip/@jswork/env-utils
[size-url]: https://github.com/afeiship/env-utils/blob/master/dist/index.min.js

[download-image]: https://img.shields.io/npm/dm/@jswork/env-utils
[download-url]: https://www.npmjs.com/package/@jswork/env-utils
npm package: @jswork/event-mitt
Description: A mini and light event emitter.
Latest version: 2.0.17

# event-mitt
> A mini and light event emitter

[![version][version-image]][version-url]
[![license][license-image]][license-url]
[![size][size-image]][size-url]
[![download][download-image]][download-url]

## apis
| name         | params         | description                                           |
|--------------|----------------|-------------------------------------------------------|
| on           | name/*,handler | register an event                                     |
| off          | name,handler   | unregister an event                                   |
| emit         | name,obj       | fire an event                                         |
| one          | name,handler   | fire an event,only can register once, same function   |
| once         | name,handler   | fire an event,only can execute once                   |
| upon         | name,handler   | fire an event, only register once, different function |
| on2immediate | name,handler   | Fire an event, immdiate execute function              |

## installation
```shell
npm install -S @jswork/event-mitt
```

## usage
```js
import EventMitt from '@jswork/event-mitt';
const Person = class { };
Object.assign(Person.prototype, EventMitt);
const p1 = new Person();
const sum = 0;
const total = 0;

// attach events:
var res = p1.on('ev1', () => {
  console.log('ev1', sum);
  sum = sum + 1;
});

p1.on('ev2', () => {
  console.log('ev2', sum);
  sum = sum + 3;
});

p1.on('ev3', () => {
  console.log('ev3', sum);
  sum = sum + 5;
});

p1.on('*', (name) => {
  console.log('just a log', name);
  total++;
});

// emit events:
p1.emit('ev1');
p1.emit('ev2');
p1.emit('ev3');

// destory:
res.destroy();

// ---- mitt fn ----
import { mitt } from "@jswork/event-mitt";
const emitter = mitt();

let sum = 0;

emitter.on("ev1", () => {
  console.log("ev1", sum);
  sum = sum + 1;
});

emitter.on("ev2", () => {
  console.log("ev2", sum);
  sum = sum + 3;
});

emitter.on("ev3", () => {
  console.log("ev3", sum);
  sum = sum + 5;
});

emitter.on("*", (name) => {
  console.log("just a log", name);
});

emitter.emit("ev1");
emitter.emit("ev2");
emitter.emit("ev3");
```

## license
Code released under [the MIT license](https://github.com/afeiship/event-mitt/blob/master/LICENSE.txt).

[version-image]: https://img.shields.io/npm/v/@jswork/event-mitt
[version-url]: https://npmjs.org/package/@jswork/event-mitt

[license-image]: https://img.shields.io/npm/l/@jswork/event-mitt
[license-url]: https://github.com/afeiship/event-mitt/blob/master/LICENSE.txt

[size-image]: https://img.shields.io/bundlephobia/minzip/@jswork/event-mitt
[size-url]: https://github.com/afeiship/event-mitt/blob/master/dist/event-mitt.min.js

[download-image]: https://img.shields.io/npm/dm/@jswork/event-mitt
[download-url]: https://www.npmjs.com/package/@jswork/event-mitt
npm package: @jswork/ext3path
Description: Extracts first, mid (array), and last segments from a file path, enabling swift parsing with support for array mid-sections.
Latest version: 1.0.1

# ext3path
> Extracts first, mid (array), and last segments from a file path, enabling swift parsing with support for array mid-sections.

[![version][version-image]][version-url]
[![license][license-image]][license-url]
[![size][size-image]][size-url]
[![download][download-image]][download-url]

## installation
```shell
npm install @jswork/ext3path
```

## usage
```js
import ext3path from '@jswork/ext3path';

const workpath = 'wxcomponents/antui/lib/tag/index';
const res = ext3path(workpath);

// res -> ["wxcomponents", "antui/lib/tag", "index"]
```

## license
Code released under [the MIT license](https://github.com/afeiship/ext3path/blob/master/LICENSE.txt).

[version-image]: https://img.shields.io/npm/v/@jswork/ext3path
[version-url]: https://npmjs.org/package/@jswork/ext3path

[license-image]: https://img.shields.io/npm/l/@jswork/ext3path
[license-url]: https://github.com/afeiship/ext3path/blob/master/LICENSE.txt

[size-image]: https://img.shields.io/bundlephobia/minzip/@jswork/ext3path
[size-url]: https://github.com/afeiship/ext3path/blob/master/dist/ext3path.min.js

[download-image]: https://img.shields.io/npm/dm/@jswork/ext3path
[download-url]: https://www.npmjs.com/package/@jswork/ext3path
npm package: @jswork/extract-domain
Description: Extracts domain from URL.
Latest version: 1.0.3

# extract-domain
> Extracts domain from URL.

[![version][version-image]][version-url]
[![license][license-image]][license-url]
[![size][size-image]][size-url]
[![download][download-image]][download-url]

## installation
```shell
npm install @jswork/extract-domain
```

## usage
```js
import extractDomain from '@jswork/extract-domain';

const res = extractDomain('https://www.example.com/page');
// www.example.com
```

## license
Code released under [the MIT license](https://github.com/afeiship/extract-domain/blob/master/LICENSE.txt).

[version-image]: https://img.shields.io/npm/v/@jswork/extract-domain
[version-url]: https://npmjs.org/package/@jswork/extract-domain

[license-image]: https://img.shields.io/npm/l/@jswork/extract-domain
[license-url]: https://github.com/afeiship/extract-domain/blob/master/LICENSE.txt

[size-image]: https://img.shields.io/bundlephobia/minzip/@jswork/extract-domain
[size-url]: https://github.com/afeiship/extract-domain/blob/master/dist/extract-domain.min.js

[download-image]: https://img.shields.io/npm/dm/@jswork/extract-domain
[download-url]: https://www.npmjs.com/package/@jswork/extract-domain
npm package: @jswork/file-callback-webpack-plugin
Description: File callback webpack plugin.
Latest version: 1.0.2

# file-callback-webpack-plugin
> File callback webpack plugin.

[![version][version-image]][version-url]
[![license][license-image]][license-url]
[![size][size-image]][size-url]
[![download][download-image]][download-url]

## installation
```shell
npm install @jswork/file-callback-webpack-plugin
```

## usage
```js
const { defineConfig } = require('@vue/cli-service');
const FileCbPlugin = require('@jswork/file-callback-webpack-plugin');
const { envname } = require('@jswork/ci-kits');
const ENVS = require('./.env-cmdrc');
const currentEnvs = ENVS[envname()];

// usage
const manifestReplace = new FileCbPlugin({
  path: 'src/manifest.json',
  callback: (content) => {
    nx.set(
      content,
      'mp-weixin.appid',
      JSON.parse(currentEnvs['VUE_APP_APP_ID'])
    );
    return content;
  }
});

module.exports = defineConfig({
  configureWebpack: (config) => {
    const plugins = config.plugins;
    config.devtool = 'source-map';
    config.plugins = [...plugins, manifestReplace];
  }
});
```

## license
Code released under [the MIT license](https://github.com/afeiship/file-callback-webpack-plugin/blob/master/LICENSE.txt).

[version-image]: https://img.shields.io/npm/v/@jswork/file-callback-webpack-plugin
[version-url]: https://npmjs.org/package/@jswork/file-callback-webpack-plugin

[license-image]: https://img.shields.io/npm/l/@jswork/file-callback-webpack-plugin
[license-url]: https://github.com/afeiship/file-callback-webpack-plugin/blob/master/LICENSE.txt

[size-image]: https://img.shields.io/bundlephobia/minzip/@jswork/file-callback-webpack-plugin
[size-url]: https://github.com/afeiship/file-callback-webpack-plugin/blob/master/dist/file-callback-webpack-plugin.min.js

[download-image]: https://img.shields.io/npm/dm/@jswork/file-callback-webpack-plugin
[download-url]: https://www.npmjs.com/package/@jswork/file-callback-webpack-plugin
npm package: @jswork/file-chunker
Description: Efficiently chunk files and process them in parallel streams.
Latest version: 1.0.9

# file-chunker
> Efficiently chunk files and process them in parallel streams.

[![version][version-image]][version-url]
[![license][license-image]][license-url]
[![size][size-image]][size-url]
[![download][download-image]][download-url]

## installation
```shell
npm install @jswork/file-chunker
```

## usage
```js
import FileChunk from '@jswork/file-chunker';

const ipt1 = document.getElementById('file');
const apiPut = ({ chunk }) => {
  return fetch('https://httpbin.org/post', {
    method: 'POST',
    body: chunk,
    headers: {
      'Content-Type': 'application/octet-stream'
    }
  }).then(r => r.json());
};

ipt1.addEventListener('change', function(e) {
  const files = e.target.files;
  if (files.length) {
    const file = files[0];
    const chunker = new FileChunk(file, {
      chunkSize: 1024 * 1024,
      concurrency: 3
    });
    console.log(chunker.chunkCount);
    chunker.processChunks(({ chunk, current, count }) => {
      console.log('chunk:', chunk, 'current:', current, 'count:', count, 'percent: ', (current / count * 100).toFixed(2) + '%');
      return apiPut({ chunk });
    }).then(res => {
      console.log('res: ', res);
    });
  }
});
```

## license
Code released under [the MIT license](https://github.com/afeiship/file-chunker/blob/master/LICENSE.txt).

[version-image]: https://img.shields.io/npm/v/@jswork/file-chunker
[version-url]: https://npmjs.org/package/@jswork/file-chunker

[license-image]: https://img.shields.io/npm/l/@jswork/file-chunker
[license-url]: https://github.com/afeiship/file-chunker/blob/master/LICENSE.txt

[size-image]: https://img.shields.io/bundlephobia/minzip/@jswork/file-chunker
[size-url]: https://github.com/afeiship/file-chunker/blob/master/dist/file-chunker.min.js

[download-image]: https://img.shields.io/npm/dm/@jswork/file-chunker
[download-url]: https://www.npmjs.com/package/@jswork/file-chunker
npm package: @jswork/file-hash
Description: Build a typescript library with tsup.
Latest version: 1.0.3

# file-hash

> A lightweight library for calculating MD5 and SHA256 hashes of files in the browser.

[![version][version-image]][version-url]
[![license][license-image]][license-url]
[![size][size-image]][size-url]
[![download][download-image]][download-url]

## installation

```shell
# peer dependencies
npm install crypto-js
# install file-hash
npm install @jswork/file-hash
```

## usage

```js
import { computeMD5, computeSHA256 } from '@jswork/file-hash';

const file = new File(['hello world'], 'hello.txt');
const md5 = await computeMD5(file);
const sha256 = await computeSHA256(file);
console.log(md5, sha256);
// 7f83b1657ff1fc53b92dc18148a1d65dfc2d4b1fa3d677284addd200126d9069
// 4f8b42c22dd3729b519ba6f68d2da7cc5b2d606d05daed5ad5128cc03e6c6358
```

## license

Code released under [the MIT license](https://github.com/afeiship/file-hash/blob/master/LICENSE.txt).

[version-image]: https://img.shields.io/npm/v/@jswork/file-hash
[version-url]: https://npmjs.org/package/@jswork/file-hash
[license-image]: https://img.shields.io/npm/l/@jswork/file-hash
[license-url]: https://github.com/afeiship/file-hash/blob/master/LICENSE.txt
[size-image]: https://img.shields.io/bundlephobia/minzip/@jswork/file-hash
[size-url]: https://github.com/afeiship/file-hash/blob/master/dist/file-hash.min.js
[download-image]: https://img.shields.io/npm/dm/@jswork/file-hash
[download-url]: https://www.npmjs.com/package/@jswork/file-hash
npm package: @jswork/fileutils
Description: File and directory utilities for node.js.
Latest version: 1.0.8

# fileutils
> File and directory utilities for node.js.

[![version][version-image]][version-url]
[![license][license-image]][license-url]
[![size][size-image]][size-url]
[![download][download-image]][download-url]

## installation
```shell
npm install @jswork/fileutils
```

## usage
```js
import fileutils from '@jswork/fileutils';

// usage goes here.
```

## license
Code released under [the MIT license](https://github.com/afeiship/fileutils/blob/master/LICENSE.txt).

[version-image]: https://img.shields.io/npm/v/@jswork/fileutils
[version-url]: https://npmjs.org/package/@jswork/fileutils

[license-image]: https://img.shields.io/npm/l/@jswork/fileutils
[license-url]: https://github.com/afeiship/fileutils/blob/master/LICENSE.txt

[size-image]: https://img.shields.io/bundlephobia/minzip/@jswork/fileutils
[size-url]: https://github.com/afeiship/fileutils/blob/master/dist/fileutils.min.js

[download-image]: https://img.shields.io/npm/dm/@jswork/fileutils
[download-url]: https://www.npmjs.com/package/@jswork/fileutils
npm package: @jswork/filter-keys-deep
Description: Filter out specified keys from an object (support deep structure).
Latest version: 1.0.1

# filter-keys-deep
> Filter out specified keys from an object (support deep structure).

[![version][version-image]][version-url]
[![license][license-image]][license-url]
[![size][size-image]][size-url]
[![download][download-image]][download-url]

## installation
```shell
npm install @jswork/filter-keys-deep
```

## usage
```js
import filterKeysDeep from '@jswork/filter-keys-deep';

const obj = {
  a: 1,
  b: 2,
  items: [
    { name: 'apple', price: 10, is_editing: true },
    { name: 'banana', price: 20, is_editing: false },
  ]
};


const result = filterKeysDeep(obj, ['is_editing']);

console.log(result);
/* expected output:
  {
    a: 1,
    b: 2,
    items: [
      { name: 'apple', price: 10 },
      { name: 'banana', price: 20 }
    ]
  }
*/
```

## license
Code released under [the MIT license](https://github.com/afeiship/filter-keys-deep/blob/master/LICENSE.txt).

[version-image]: https://img.shields.io/npm/v/@jswork/filter-keys-deep
[version-url]: https://npmjs.org/package/@jswork/filter-keys-deep

[license-image]: https://img.shields.io/npm/l/@jswork/filter-keys-deep
[license-url]: https://github.com/afeiship/filter-keys-deep/blob/master/LICENSE.txt

[size-image]: https://img.shields.io/bundlephobia/minzip/@jswork/filter-keys-deep
[size-url]: https://github.com/afeiship/filter-keys-deep/blob/master/dist/index.min.js

[download-image]: https://img.shields.io/npm/dm/@jswork/filter-keys-deep
[download-url]: https://www.npmjs.com/package/@jswork/filter-keys-deep
npm package: @jswork/filter-react-props
Description: Get filterd react props.
Latest version: 1.0.2

# filter-react-props
> Get filterd react props.

[![version][version-image]][version-url]
[![license][license-image]][license-url]
[![size][size-image]][size-url]
[![download][download-image]][download-url]

## installation
```shell
npm install @jswork/filter-react-props
```

## usage
```js
import filterReactProps from '@jswork/filter-react-props';

const props = { l: true, x: true, y: true, children: [], rel: true };
const list = ['rel', 'x', 'y'];

// result:
// { children: [] }
```

## license
Code released under [the MIT license](https://github.com/afeiship/filter-react-props/blob/master/LICENSE.txt).

[version-image]: https://img.shields.io/npm/v/@jswork/filter-react-props
[version-url]: https://npmjs.org/package/@jswork/filter-react-props

[license-image]: https://img.shields.io/npm/l/@jswork/filter-react-props
[license-url]: https://github.com/afeiship/filter-react-props/blob/master/LICENSE.txt

[size-image]: https://img.shields.io/bundlephobia/minzip/@jswork/filter-react-props
[size-url]: https://github.com/afeiship/filter-react-props/blob/master/dist/filter-react-props.min.js

[download-image]: https://img.shields.io/npm/dm/@jswork/filter-react-props
[download-url]: https://www.npmjs.com/package/@jswork/filter-react-props
npm package: @jswork/filter2tuple
Description: A function to split an array into two tuples based on a filtering condition.
Latest version: 1.0.4

# filter2tuple
> A function to split an array into two tuples based on a filtering condition.

[![version][version-image]][version-url]
[![license][license-image]][license-url]
[![size][size-image]][size-url]
[![download][download-image]][download-url]

## installation
```shell
npm install @jswork/filter2tuple
```

## usage
```js
import filter2tuple from '@jswork/filter2tuple';

const numbers = [1, 2, 3, 4, 5, 6];
const [even, odd] = filter2tuple(numbers, (item) => item % 2 === 0);

console.log(even, odd);
// [2, 4, 6] [1, 3, 5]
```

## other
> Use reduce implement:

```js
// impl1:
function filter2tuple(arr, filterFn) {
  return arr.reduce((result, item) => {
    filterFn(item) ? result[0].push(item) : result[1].push(item);
    return result;
  }, [[], []]);
}

// impl2: 
function filter2tuple(arr, filterFn) {
  return arr.reduce(
    (result, item) => {
      const idx = Number(!filterFn(item));
      result[idx].push(item);
      return result;
    },
    [[], []]
  );
}
```

## license
Code released under [the MIT license](https://github.com/afeiship/filter2tuple/blob/master/LICENSE.txt).

[version-image]: https://img.shields.io/npm/v/@jswork/filter2tuple
[version-url]: https://npmjs.org/package/@jswork/filter2tuple

[license-image]: https://img.shields.io/npm/l/@jswork/filter2tuple
[license-url]: https://github.com/afeiship/filter2tuple/blob/master/LICENSE.txt

[size-image]: https://img.shields.io/bundlephobia/minzip/@jswork/filter2tuple
[size-url]: https://github.com/afeiship/filter2tuple/blob/master/dist/index.min.js

[download-image]: https://img.shields.io/npm/dm/@jswork/filter2tuple
[download-url]: https://www.npmjs.com/package/@jswork/filter2tuple
npm package: @jswork/fix-react-warning
Description: Fix react warning.
Latest version: 1.0.2

# fix-react-warning
> Fix react warning.

[![version][version-image]][version-url]
[![license][license-image]][license-url]
[![size][size-image]][size-url]
[![download][download-image]][download-url]

## installation
```shell
npm install @jswork/fix-react-warning
```

## usage
```js
import fixReactWarning from '@jswork/fix-react-warning';

// usage goes here.
```

## types
```ts
/// <reference types="@jswork/fix-react-warning/global.d.ts" />
```

## license
Code released under [the MIT license](https://github.com/afeiship/fix-react-warning/blob/master/LICENSE.txt).

[version-image]: https://img.shields.io/npm/v/@jswork/fix-react-warning
[version-url]: https://npmjs.org/package/@jswork/fix-react-warning

[license-image]: https://img.shields.io/npm/l/@jswork/fix-react-warning
[license-url]: https://github.com/afeiship/fix-react-warning/blob/master/LICENSE.txt

[size-image]: https://img.shields.io/bundlephobia/minzip/@jswork/fix-react-warning
[size-url]: https://github.com/afeiship/fix-react-warning/blob/master/dist/index.min.js

[download-image]: https://img.shields.io/npm/dm/@jswork/fix-react-warning
[download-url]: https://www.npmjs.com/package/@jswork/fix-react-warning
npm package: @jswork/flip-kv
Description: Flip object key value.
Latest version: 1.0.1

# flip-kv
> Flip object key value.

[![version][version-image]][version-url]
[![license][license-image]][license-url]
[![size][size-image]][size-url]
[![download][download-image]][download-url]

## installation
```shell
npm install @jswork/flip-kv
```

## usage
```js
import flipKv from '@jswork/flip-kv';

const data = { a: 1, b: 2 };
const result = flipKv(data);
// { 1: 'a', 2: 'b' }
```

## license
Code released under [the MIT license](https://github.com/afeiship/flip-kv/blob/master/LICENSE.txt).

[version-image]: https://img.shields.io/npm/v/@jswork/flip-kv
[version-url]: https://npmjs.org/package/@jswork/flip-kv

[license-image]: https://img.shields.io/npm/l/@jswork/flip-kv
[license-url]: https://github.com/afeiship/flip-kv/blob/master/LICENSE.txt

[size-image]: https://img.shields.io/bundlephobia/minzip/@jswork/flip-kv
[size-url]: https://github.com/afeiship/flip-kv/blob/master/dist/flip-kv.min.js

[download-image]: https://img.shields.io/npm/dm/@jswork/flip-kv
[download-url]: https://www.npmjs.com/package/@jswork/flip-kv
npm package: @jswork/fullscreen
Description: Fullscreen API.
Latest version: 1.1.2

# fullscreen
> Fullscreen API.

[![version][version-image]][version-url]
[![license][license-image]][license-url]
[![size][size-image]][size-url]
[![download][download-image]][download-url]

## installation
```shell
npm install @jswork/fullscreen
```

## usage
```js
import fullscreen from '@jswork/fullscreen';

// enter fullscreen
fullscreen.request()

// exit fullscreen
fullscreen.exit()

// toggle fullscreen
fullscreen.toggle()

// register event
const res = fullscreen.on((e)=>console.log(e));

// unregister event
res.destroy();

// detect fullscreen status
fullscreen.isFullscreen
```

> in html
```html
<button id="p1">Request Fullscreen</button>
<button id="p2">Exit Fullscreen</button>
<script>
    const el1 = document.getElementById('p1');
    const el2 = document.getElementById('p2');
    el1.addEventListener('click', () => {
      fullscreen.request();
    });

    el2.addEventListener('click', () => {
      fullscreen.exit();
    });
</script>
```

## types
```ts
/// <reference types="@jswork/fullscreen/global.d.ts" />
```

## license
Code released under [the MIT license](https://github.com/afeiship/fullscreen/blob/master/LICENSE.txt).

[version-image]: https://img.shields.io/npm/v/@jswork/fullscreen
[version-url]: https://npmjs.org/package/@jswork/fullscreen

[license-image]: https://img.shields.io/npm/l/@jswork/fullscreen
[license-url]: https://github.com/afeiship/fullscreen/blob/master/LICENSE.txt

[size-image]: https://img.shields.io/bundlephobia/minzip/@jswork/fullscreen
[size-url]: https://github.com/afeiship/fullscreen/blob/master/dist/index.min.js

[download-image]: https://img.shields.io/npm/dm/@jswork/fullscreen
[download-url]: https://www.npmjs.com/package/@jswork/fullscreen
npm package: @jswork/generator-prompts
Description: Yeoman generator prompts.
Latest version: 1.1.8

# generator-prompts
> Yeoman generator prompts.

[![version][version-image]][version-url]
[![license][license-image]][license-url]
[![size][size-image]][size-url]
[![download][download-image]][download-url]

## installation
```shell
npm install @jswork/generator-prompts
```

## usage
```js
import genp from '@jswork/generator-prompts';

const prompts = genp(["scope", "registry", "project_name", "description"]);
// your generator code...
```

## license
Code released under [the MIT license](https://github.com/afeiship/generator-prompts/blob/master/LICENSE.txt).

[version-image]: https://img.shields.io/npm/v/@jswork/generator-prompts
[version-url]: https://npmjs.org/package/@jswork/generator-prompts

[license-image]: https://img.shields.io/npm/l/@jswork/generator-prompts
[license-url]: https://github.com/afeiship/generator-prompts/blob/master/LICENSE.txt

[size-image]: https://img.shields.io/bundlephobia/minzip/@jswork/generator-prompts
[size-url]: https://github.com/afeiship/generator-prompts/blob/master/dist/generator-prompts.min.js

[download-image]: https://img.shields.io/npm/dm/@jswork/generator-prompts
[download-url]: https://www.npmjs.com/package/@jswork/generator-prompts
npm package: @jswork/get-last-char
Description: A JavaScript function that retrieves the position of the last character in an output text string.
Latest version: 1.0.2

# get-last-char
> A JavaScript function that retrieves the position of the last character in an output text string.

[![version][version-image]][version-url]
[![license][license-image]][license-url]
[![size][size-image]][size-url]
[![download][download-image]][download-url]

## installation
```shell
npm install @jswork/get-last-char
```

## usage
```js
import getLastChar from '@jswork/get-last-char';

// usage goes here.
```

## types
```ts
/// <reference types="@jswork/get-last-char/global.d.ts" />
```

## license
Code released under [the MIT license](https://github.com/afeiship/get-last-char/blob/master/LICENSE.txt).

[version-image]: https://img.shields.io/npm/v/@jswork/get-last-char
[version-url]: https://npmjs.org/package/@jswork/get-last-char

[license-image]: https://img.shields.io/npm/l/@jswork/get-last-char
[license-url]: https://github.com/afeiship/get-last-char/blob/master/LICENSE.txt

[size-image]: https://img.shields.io/bundlephobia/minzip/@jswork/get-last-char
[size-url]: https://github.com/afeiship/get-last-char/blob/master/dist/index.min.js

[download-image]: https://img.shields.io/npm/dm/@jswork/get-last-char
[download-url]: https://www.npmjs.com/package/@jswork/get-last-char
npm package: @jswork/git-info
Description: Get git infomation.
Author: afei
Latest version: 1.0.5

# git-info
> Get git infomation.

## installation
```shell
npm i @jswork/git-info
```

## usage
```js
var branch = require('@jswork/git-info').branch;

//exec('git branch | grep \\\*')
//branch();
```

## get current brach
```bash
# git rev-parse --abbrev-ref HEAD
# git branch | grep '*'
```

## resources
+ https://github.com/pirelenito/git-revision-webpack-plugin
npm package: @jswork/git-sweep
Description: Git branch sweep cli.
Author: afei
Latest version: 1.0.0

# git-sweep
> Git branch sweep cli.

[![version][version-image]][version-url]
[![license][license-image]][license-url]
[![size][size-image]][size-url]
[![download][download-image]][download-url]

![snapshot](https://tva1.sinaimg.cn/large/0081Kckwgy1gk87ynhkbaj30u60asasp.jpg)


## installation
```shell
npm install -g @jswork/git-sweep
```

## usage
~~~
Usage: git-sweep [options]

Options:
  -V, --version          output the version number
  -d, --debug            only show cmds, but not clean.
  -l, --local            clean scope to local(default).
  -r, --remote           clean scope to remote.
  -f, --filter <string>  clean by filter.(eg: -f feature/aric)
  -i, --interactive      interactive operation cli.
  -p, --pushed <list>    add protected to default.(eg: -p uat,test1).
  -c, --created <list>   use new list replace default(dangerous).(eg: -c uat,test1).
  -h, --help             display help for command
~~~

## license
Code released under [the MIT license](https://github.com/afeiship/git-sweep/blob/master/LICENSE.txt).

[version-image]: https://img.shields.io/npm/v/@jswork/git-sweep
[version-url]: https://npmjs.org/package/@jswork/git-sweep

[license-image]: https://img.shields.io/npm/l/@jswork/git-sweep
[license-url]: https://github.com/afeiship/git-sweep/blob/master/LICENSE.txt

[size-image]: https://img.shields.io/bundlephobia/minzip/@jswork/git-sweep
[size-url]: https://github.com/afeiship/git-sweep/blob/master/dist/git-sweep.min.js

[download-image]: https://img.shields.io/npm/dm/@jswork/git-sweep
[download-url]: https://www.npmjs.com/package/@jswork/git-sweep
npm package: @jswork/git-url-cli
Description: Get git http/https/ssh/git url.
Author: afeiship
Latest version: 1.0.4

# git-url-cli
> Get git http/https/ssh/git url.

[![version][version-image]][version-url]
[![license][license-image]][license-url]
[![download][download-image]][download-url]


## installation
```shell
npm i -g @jswork/git-url-cli
```

## usage
```shell
guc
# https://github.com/afeiship/git-url-cli

# open the `url`
open `guc -u`
```
~~~
Options:
  --version      Show version number                                   [boolean]
  --url, -u      Github/gitlab url.                                    [boolean]
  --ssh, -s      Show `ssh` git url.                                   [boolean]
  --https, -h    Show `https` git url.                                 [boolean]
  --pages, -p    Show `gh_pages/pages` in github/gitlab.               [boolean]
  --mr, -m       Show `merge request url` in gitlab.                   [boolean]
  --actions, -a  Show `actions/piplines` in github/gitlab.             [boolean]
  --help         Show help                                             [boolean]
~~~

```shell
$ guc -u
# https://github.com/afeiship/git-url-cli

$ guc -h
# https://github.com/afeiship/git-url-cli.git

$ guc -s
# git@github.com:afeiship/git-url-cli.git

$ guc -p
# https://afeiship.github.io/git-url-cli/

$ guc -a
# https://github.com/afeiship/git-url-cli/actions/new
```

## resources
- https://developer.okta.com/blog/2019/06/18/command-line-app-with-nodejs

## license
Code released under [the MIT license](https://github.com/afeiship/git-url-cli/blob/master/LICENSE.txt).

[version-image]: https://img.shields.io/npm/v/@jswork/git-url-cli
[version-url]: https://npmjs.org/package/@jswork/git-url-cli

[license-image]: https://img.shields.io/npm/l/@jswork/git-url-cli
[license-url]: https://github.com/afeiship/git-url-cli/blob/master/LICENSE.txt

[download-image]: https://img.shields.io/npm/dm/@jswork/git-url-cli
[download-url]: https://www.npmjs.com/package/@jswork/git-url-cli
npm package: @jswork/github-cli
Description: Github cli.
Author: afei
Latest version: 1.0.2

# github-cli
> Github cli.

[![version][version-image]][version-url]
[![license][license-image]][license-url]
[![size][size-image]][size-url]
[![download][download-image]][download-url]

![snapshot](https://tva1.sinaimg.cn/large/008eGmZEgy1goa884s54jj313g06udgn.jpg)

## installation
```shell
npm install @jswork/github-cli
```

## usage
~~~
Usage: github-cli [options]

Options:
  -V, --version  output the version number
  -p, --pages    Set pages to master:docs.
  -d, --delete   Delete pages.
  -h, --help     display help for command
~~~

## license
Code released under [the MIT license](https://github.com/afeiship/github-cli/blob/master/LICENSE.txt).

[version-image]: https://img.shields.io/npm/v/@jswork/github-cli
[version-url]: https://npmjs.org/package/@jswork/github-cli

[license-image]: https://img.shields.io/npm/l/@jswork/github-cli
[license-url]: https://github.com/afeiship/github-cli/blob/master/LICENSE.txt

[size-image]: https://img.shields.io/bundlephobia/minzip/@jswork/github-cli
[size-url]: https://github.com/afeiship/github-cli/blob/master/dist/github-cli.min.js

[download-image]: https://img.shields.io/npm/dm/@jswork/github-cli
[download-url]: https://www.npmjs.com/package/@jswork/github-cli
npm package: @jswork/github-md2html
Description: Convert Markdown to HTML effortlessly with github-md2html.
Latest version: 1.0.4

# github-md2html
> Convert Markdown to HTML effortlessly with github-md2html.

[![version][version-image]][version-url]
[![license][license-image]][license-url]
[![size][size-image]][size-url]
[![download][download-image]][download-url]

## installation
```shell
npm install @jswork/github-md2html
```

## usage
```js
import md2html from '@jswork/github-md2html';

const mdstr = fs.readFileSync('Hello **world**');
const html = md2html(mdstr);
// <p>Hello <strong>world</strong></p>
```

## license
Code released under [the MIT license](https://github.com/afeiship/github-md2html/blob/master/LICENSE.txt).

[version-image]: https://img.shields.io/npm/v/@jswork/github-md2html
[version-url]: https://npmjs.org/package/@jswork/github-md2html

[license-image]: https://img.shields.io/npm/l/@jswork/github-md2html
[license-url]: https://github.com/afeiship/github-md2html/blob/master/LICENSE.txt

[size-image]: https://img.shields.io/bundlephobia/minzip/@jswork/github-md2html
[size-url]: https://github.com/afeiship/github-md2html/blob/master/dist/github-md2html.min.js

[download-image]: https://img.shields.io/npm/dm/@jswork/github-md2html
[download-url]: https://www.npmjs.com/package/@jswork/github-md2html
npm package: @jswork/glab-trigger-cli
Description: Gitlab trigger cli.
Author: afei
Latest version: 1.0.9

# glab-trigger-cli
> Gitlab trigger cli.

[![version][version-image]][version-url]
[![license][license-image]][license-url]
[![size][size-image]][size-url]
[![download][download-image]][download-url]

![snapshot](https://tva1.sinaimg.cn/large/e6c9d24egy1h34ig76g3wj20pw07gwf6.jpg)

## installation
```shell
# public
npm i -g @jswork/glab-trigger-cli

# private
git clone https://github.com/afeiship/glab-trigger-cli.git
cd glab-trigger-cli
npm i && npm link
```

## usage
~~~
Usage: glab-trigger-cli [options]

Options:
  -V, --version       output the version number
  -d, --debug         Only show cmds, but not clean.
  -u, --check-update  Check if has new udpate.
  -i, --init          Add gtc config to package.json.
  -h, --help          display help for command
~~~

## license
Code released under [the MIT license](https://github.com/afeiship/glab-trigger-cli/blob/master/LICENSE.txt).

[version-image]: https://img.shields.io/npm/v/@jswork/glab-trigger-cli
[version-url]: https://npmjs.org/package/@jswork/glab-trigger-cli

[license-image]: https://img.shields.io/npm/l/@jswork/glab-trigger-cli
[license-url]: https://github.com/afeiship/glab-trigger-cli/blob/master/LICENSE.txt

[size-image]: https://img.shields.io/bundlephobia/minzip/@jswork/glab-trigger-cli
[size-url]: https://github.com/afeiship/glab-trigger-cli/blob/master/dist/glab-trigger-cli.min.js

[download-image]: https://img.shields.io/npm/dm/@jswork/glab-trigger-cli
[download-url]: https://www.npmjs.com/package/@jswork/glab-trigger-cli