open-index/open-npm huggingface dataset:
npm package: @innei/changelogithub
Description: Generate changelog for GitHub.
Author: Anthony Fu
Latest version: 0.13.10-fork.1

# changelogithub

[![NPM version](https://img.shields.io/npm/v/changelogithub?color=a1b858&label=)](https://www.npmjs.com/package/changelogithub)

Generate changelog for GitHub releases from [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/), powered by [changelogen](https://github.com/unjs/changelogen).

[👉 Changelog example](https://github.com/unocss/unocss/releases/tag/v0.39.0)

## Features

- Support exclamation mark as breaking change, e.g. `chore!: drop node v10`
- Grouped scope in changelog
- Create the release note, or update the existing one
- List contributors

## Usage

In GitHub Actions:

```yml
# .github/workflows/release.yml

name: Release

permissions:
  contents: write

on:
  push:
    tags:
      - 'v*'

jobs:
  release:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
        with:
          fetch-depth: 0

      - name: Set node
        uses: actions/setup-node@v4
        with:
          registry-url: https://registry.npmjs.org/
          node-version: lts/*

      - run: npx changelogithub # or changelogithub@0.12 if ensure the stable result
        env:
          GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}
```

It will be trigged whenever you push a tag to GitHub that starts with `v`.

## Configuration

You can put a configuration file in the project root, named as `changelogithub.config.{json,ts,js,mjs,cjs}`, `.changelogithubrc` or use the `changelogithub` field in `package.json`.

## Preview Locally

```bash
npx changelogithub --dry
```

## Why?

I used to use [`conventional-github-releaser`](https://github.com/conventional-changelog/releaser-tools/tree/master/packages/conventional-github-releaser) for almost all my projects. Until I found that it [does NOT support using exclamation marks for breaking changes](https://github.com/conventional-changelog/conventional-changelog/issues/648) - hiding those important breaking changes in the changelog without the awareness from maintainers.

## License

[MIT](./LICENSE) License © 2022 [Anthony Fu](https://github.com/antfu)
npm package: @innei/devtools-detector
Description: devtools-detector
Author: AEPKILL
Latest version: 2.0.4-beta.1

# devtools-detector [![devtools-detector](https://img.shields.io/npm/v/devtools-detector.svg?colorB=green&label=devtools-detector)](https://www.npmjs.com/package/devtools-detector)

## Install

`npm install devtools-detector --save`

## Usage

**[DEMO](http://blog.aepkill.com/demos/devtools-detector/)**

### ES6 & TypeScript

```javascript
import { addListener, launch } from 'devtools-detector';
const view = document.createElement('div');
document.body.appendChild(view);

// 1. add listener
addListener(
  isOpen =>
    (view.innerText = isOpen
      ? 'devtools status: open'
      : 'devtools status: close')
);
// 2. launch detect
launch();
```

### AMD

```javascript
require(['devtools-detector'], function(devtoolsDetector) {
  var view = document.createElement('div');
  document.body.appendChild(view);

  devtoolsDetector.addListener(function(isOpen) {
    view.innerText = isOpen
      ? 'devtools status: open'
      : 'devtools status: close';
  });
  devtoolsDetector.launch();
});
```

### No Module System

```html
<script src="node_modules/devtools-detector/lib/devtools-detector.js"></script>
<script>
  var view = document.createElement('div');
  document.body.appendChild(view);

  devtoolsDetector.addListener(function(isOpen) {
    view.innerText = isOpen
      ? 'devtools status: open'
      : 'devtools status: close';
  });
  devtoolsDetector.launch();
</script>
```

## Support

- IE9+ (required Promise polyfill)
- Edge
- Chrome
- Firefox
- Safari
- Opera

## Type & API

- DevtoolsDetail

```typescript
interface DevtoolsDetail {
  isOpen: boolean;
  checkerName: string;
}
```

- Listener

```typescript
type DevtoolsDetectorListener = (isOpen: boolean, detail?: DevtoolsDetail) => void;
```

- launch()

  launch detect

- isLaunch()

  if detect is launched then return `true`, else return `false`

- stop()

  stop detect

- addListener(listener: DevtoolsDetectorListener)

- removeListener(listener: DevtoolsDetectorListener)

- setDetectDelay(value: number)

  Set detect loop delay time, if **value =< 0** then stop detecting.

## Caveats

1. In Firefox, if DevTools is undocked, detected only when switching to the **Console Panel**.
2. Make sure `devtools-detector` is the first one to load

## Reference

> [sindresorhus/**devtools-detect**](https://github.com/sindresorhus/devtools-detect)
>
> [zswang/**jdetects**](https://github.com/zswang/jdetects)
>
> [前端开发中如何在 JS 文件中检测用户浏览器是否打开了调试面板](https://www.zhihu.com/question/24188524)

## License

MIT © [AEPKILL](mailto:a@aepkill.com)
npm package: @innei/eslint-config-react-ts
Description: ## 简介
Latest version: 0.15.0

# @innei/eslint-config-react-ts

## 简介

在个人项目中统一 eslint-config-react-ts 的配置，将之封装为 npm 包（实验性）。

## 使用

安装依赖

```shell
yarn add -D @innei/eslint-config-react-ts
```

在 `package.json` 中配置

```json
{
  "eslintConfig": {
    "extends": ["@innei/eslint-config-react-ts"]
  }
}
```
npm package: @innei/eslint-config-ts
Description: ## 简介
Latest version: 0.15.0

# @innei/eslint-ts

## 简介

在个人项目中统一 eslint-ts 的配置，将之封装为 npm 包（实验性）。

## 使用

安装依赖

```shell
yarn add -D @innei/eslint-ts
```

在 `package.json` 中配置

```json
{
  "eslintConfig": {
    "extends": ["@innei/eslint-ts"]
  }
}
```
npm package: @innei/eslint-config-vue-ts
Description: ## 简介
Latest version: 0.15.0

# @innei/eslint-config-vue-ts

## 简介

在个人项目中统一 eslint-config-vue-ts 的配置，将之封装为 npm 包（实验性）。

## 使用

安装依赖

```shell
yarn add -D @innei/eslint-config-vue-ts
```

在 `package.json` 中配置

```json
{
  "eslintConfig": {
    "extends": ["@innei/eslint-config-vue-ts"]
  }
}
```
npm package: @innei/excalidraw
Description: Excalidraw as a React component
Latest version: 0.17.6-fork

# Excalidraw

**Excalidraw** is exported as a component to directly embed in your projects.

## Installation

You can use `npm`

```bash
npm install react react-dom @excalidraw/excalidraw
```

or via `yarn`

```bash
yarn add react react-dom @excalidraw/excalidraw
```

After installation you will see a folder `excalidraw-assets` and `excalidraw-assets-dev` in `dist` directory which contains the assets needed for this app in prod and dev mode respectively.

Move the folder `excalidraw-assets` and `excalidraw-assets-dev` to the path where your assets are served.

By default it will try to load the files from [`https://unpkg.com/@excalidraw/excalidraw/dist/`](https://unpkg.com/@excalidraw/excalidraw/dist)

If you want to load assets from a different path you can set a variable `window.EXCALIDRAW_ASSET_PATH` depending on environment (for example if you have different URL's for dev and prod) to the url from where you want to load the assets.

#### Note

**If you don't want to wait for the next stable release and try out the unreleased changes you can use `@excalidraw/excalidraw@next`.**

## Dimensions of Excalidraw

Excalidraw takes _100%_ of `width` and `height` of the containing block so make sure the container in which you render Excalidraw has non zero dimensions.

### Demo

[Try here](https://codesandbox.io/s/excalidraw-ehlz3).

## Integration

Head over to the [docs](https://docs.excalidraw.com/docs/@excalidraw/excalidraw/integration)

## API

Head over to the [docs](https://docs.excalidraw.com/docs/@excalidraw/excalidraw/api)

## Contributing

Head over to the [docs](https://docs.excalidraw.com/docs/@excalidraw/excalidraw/contributing)
npm package: @innei/next-async
Description: A simple implementation of koa middleware.
Author: Innei
Latest version: 0.4.0

# Next Async

A simple implementation of koa middleware.

```ts
import { Co } from '@innei/next-async'

const co = new Co()
co.use(someMiddlewares)
await co.start()
```

## Usage

**Using middleware**

```ts
const middleware = function (args) {
  this.next()
}

co.use(middleware)
```

**Pass context to `Co`**


```ts
const co = new Co({ data: [] })
co.use(
  function () {
    this.data.push(1)
    this.next()
  },
  function () {
    console.log(this.data) // [1]

    this.next()
    console.log(this.data) // [1, 2]
  },
  function () {
    this.data.push(2)
  },
).start()
```

**Use async runner and await next runner done then back**

```ts
const co = new Co({ data: [] })
await co
  .use(
    function () {
      this.data.push(1)
      this.next()
    },
    async function () {
      console.log(this.data) // [1]

      await this.next()
      console.log(this.data) // [1, 2]
    },
    async function () {
      await 1
      this.data.push(2)
    },
  )
  .start()
```

**Abort action in flow**

```ts
const co = new Co({ data: [] })
co.use(
  function () {
    this.data.push(1)
    this.next()
  },
  function () {
    this.abort()
  },
  function () {
    this.data.push(2) // will do not run
  },
).start()
```

## Options

```ts
const co = new Co(ctx, options)
```

| Key             | Type    | Default | Description                                       |
| --------------- | ------- | ------- | ------------------------------------------------- |
| automaticNext   | boolean | false   | Always run next action when this action returned. |
| catchAbortError | boolean | true    | Catch CoAbortError or not.                        |

## License

2022 © Innei, Released under the MIT License.

> [Personal Website](https://innei.ren/) · GitHub [@Innei](https://github.com/innei/)
npm package: @innei/piexif-ts
Description: Read and write exif with typescript!
Author: hMatoba, Joachim Holwech
Latest version: 2.1.2

Piexif-ts
========

[![Actions Status](https://github.com/{holwech}/{piexif-ts}/workflows/{main.yml}/badge.svg)](https://github.com/{holwech}/{piexif-ts}/actions)

This repository is forked from [piexifjs](https://github.com/hMatoba/piexifjs) and all praise should go to the creator of this great library.

Fix of the Typescript version of the original [piexifjs](https://github.com/hMatoba/piexifjs) as I was having trouble using it. See original documentation for how to use it.

## Install
`npm i piexif-ts`

How to Use
----------

It's very similar to the javascript library, but with some slight differences. Below is an example of how you can use this:

```typescript
import piexif, { IExif, IExifElement, TagValues } from 'piexif-ts';

var file = evt.target.files[0];

var zeroth: IExifElement = {};
var exif: IExifElement = {};
var gps: IExifElement = {};
zeroth[TagValues.ImageIFD.Make] = "Make";
zeroth[TagValues.ImageIFD.XResolution] = [777, 1];
zeroth[TagValues.ImageIFD.YResolution] = [777, 1];
zeroth[TagValues.ImageIFD.Software] = "Piexifjs";
exif[TagValues.ExifIFD.DateTimeOriginal] = "2010:10:10 10:10:10";
exif[TagValues.ExifIFD.LensMake] = "LensMake";
exif[TagValues.ExifIFD.Sharpness] = 777;
exif[TagValues.ExifIFD.LensSpecification] = [[1, 1], [1, 1], [1, 1], [1, 1]];
gps[TagValues.GPSIFD.GPSVersionID] = [7, 7, 7, 7];
gps[TagValues.GPSIFD.GPSDateStamp] = "1999:99:99 99:99:99";
var exifObj: IExif = {"0th":zeroth, "Exif":exif, "GPS":gps};
var exifStr = piexif.dump(exifObj);

var reader = new FileReader();
reader.onload = function(e) {
    var inserted = piexif.insert(exifStr, e.target.result);

    var image = new Image();
    image.src = inserted;
    image.width = 200;
    var el = $("<div></div>").append(image);
    $("#resized").prepend(el);

};
reader.readAsDataURL(file);
```

Note also that in `tsconfig.json` the following setting needs to be set to `commonjs` for some reason. I am not sure why, so if someone could explain me, please do.

```json
{
...
  "compilerOptions": {
    "module": "commonjs", 
    ...
  }
}
```

[Read the Docs](https://piexifjs.readthedocs.io/en/2.0/index.html)

Dependency
----------

No dependency. Piexifjs just needs standard JavaScript environment.

Environment
-----------

Both client-side and server-side. Piexifjs is transpiled as Universal Module Definition(https://github.com/umdjs/umd).

Issues
------

Give me details. Environment, code, input, output. I can do nothing with abstract.

License
-------

This software is released under the MIT License, see LICENSE.txt.
npm package: @innei/prettier
Description: ## 简介
Latest version: 1.0.0

# @innei/prettier

## 简介

在个人项目中统一 prettier 配置，将之封装为 npm 包。

## 使用

安装依赖

```shell
yarn add -D @innei/prettier
```

在 `package.json` 中配置

```json
{
  "prettier": "@innei/prettier"
}
```