open-index/open-npm huggingface dataset:
npm package: @pkvsinha/pngtoico
Description: PNG to ICO converter using web assembly
Author: Prashant Siha
Latest version: 0.0.2

# pngtoico

A PNG to ICO converter library that allows you to combine multiple PNG files to generate a single ICO file.  
Try it online: [prashantsinha.com/apps/png-to-ico](https://prashantsinha.com/apps/png-to-ico)

## Installation

```sh
npm install @pkvsinha/pngtoico
```

## Usage

```js
import { convertPngsToIco } from '@pkvsinha/pngtoico';

const handleSubmit = async (e) => {
    e.preventDefault();
    try {
        const files = ["should be file(s) input like e.target.files"];
        const icoBlob = await convertPngToIco(files);
        const url = URL.createObjectURL(icoBlob);
        const link = document.createElement("a");
        link.href = url;
        link.download = "favicon.ico";
        document.body.appendChild(link);
        link.click();
        document.body.removeChild(link);
        URL.revokeObjectURL(url);
    } catch (error) {
        console.log(error);
    }
};
```

## Webpack Integration

When using this library with Webpack, you may encounter issues loading the `.wasm` file.  
To resolve this, use the `copy-webpack-plugin` to move the WASM file to your public/assets folder:

```js
const CopyPlugin = require('copy-webpack-plugin');

module.exports = {
  // ...other config
  plugins: [
    new CopyPlugin({
      patterns: [
        {
          from: 'node_modules/@pkvsinha/pngtoico/dist/pngtoico.wasm',
          to: 'pngtoico.wasm'
        }
      ]
    })
  ]
};
```
npm package: @pkwadsy/eslint-plugin-kint
Description: Runs kint validation rules as part of eslint
Latest version: 0.0.3

# eslint-plugin-kint
Contains rules that will keep you safer and happier while using **TSKint**.

### Install
```
yarn add @kint/eslint-plugin-kint --dev
```

### Usage
Modify your `eslint.config.mjs` as follows
```
TODO
```
npm package: @pkx/backend
Description: Backend on koa2 for PKX
Author: Sergey Sova
Latest version: 0.0.3

# Backend

It package contains backend on Koa@2 and createRest for PKX.

## Bin

### www

A main runner for application.

`dev` npm script starts application with `DEBUG` and `NODE_ENV=development`, and watch `./src` with nodemon.


### print-routes

Print routes map to output.

`routes` script simple executes `./bin/print-routes`.
npm package: @pkx/frontend
Description: Frontend on react for PKX
Author: Sergey Sova
Latest version: 0.0.4

# Frontend

## Scripts

### `dev`

Starts `webpack-dev-server`.

### `build`

Executes `webpack` without arguments.

## Structure

- `./src` contains source files
- `./webpack` contains configuration for development, production and test builds
- `./webpack.config.js` simple load `./webpack/${process.env.NODE_ENV}.js`
- `./dist` contains bundle
- `./static` contains assets like images or fonts

NPM package includes `dist` and `static` directories to tarball.
npm package: @pkx/ui
Description: UI kit on React for PKX frontend
Author: Sergey Sova
Latest version: 0.0.4

# UI

It package holds all UI components for PKX Frontend.

### Structure

All components must be placed in one of that categories:

- atoms
- molecules
- organisms
- templates

> Rule to right select category for component see in [Atomic Design](http://atomicdesign.bradfrost.com/chapter-2/) chapter 2 or send question in [Russian community in telegram](https://t.me/atomicdesign).

1. Each category must be present directory with the same name.
2. Each category must have `index.js` file in it root with components reexports.
3. Each component must be placed in directory name with name like component name but transformed to
param case and same file.
4. Each component must have `.story.js` file.

Example:

Component `ExampleButton`

```
atoms/
  example-button/
    example-button.js
    example-button.story.js
    example-button.test.js
```

`atoms/example-button/example-button.js` must contains source of `ExampleButton` component.

`atoms/example-button/example-button.story.js` must contains storybook examples.

`atoms/example-button/example-button.test.js` must contains test cases.

`atoms/index.js` must have export:

```js
export { Button } from './example-button/example-button'
```

`index.js` must have export:

```js
export * from './atoms'
```

If component should have variants it can be reexported with main component:

```js
export { Button, ButtonLink, ButtonSubmit } from './button/button'
```