open-index/open-npm huggingface dataset:
npm package: @kosherswap/uikit
Description: Set of UI components for kosher projects
Latest version: 1.0.1

# 🥞 Pancake UIkit

[![Version](https://img.shields.io/npm/v/@pancakeswap-libs/uikit)](https://www.npmjs.com/package/@pancakeswap-libs/uikit) [![Size](https://img.shields.io/bundlephobia/min/@pancakeswap-libs/uikit)](https://www.npmjs.com/package/@pancakeswap-libs/uikit)

Pancake UIkit is a set of React components and hooks used to build pages on Pancake's apps. It also contains a theme file for dark and light mode.

## Install

`yarn add @pancakeswap-libs/uikit`

## Setup

### Theme

Before using Pancake UIkit, you need to provide the theme file to styled-component.

```
import { ThemeProvider } from 'styled-components'
import { light, dark } from '@pancakeswap-libs/uikit'
...
<ThemeProvider theme={isDark}>...</ThemeProvider>
```

### Reset

A reset CSS is available as a global styled component.

```
import { ResetCSS } from '@pancakeswap-libs/uikit'
...
<ResetCSS />
```

### Types

This project is built with Typescript and export all the relevant types.

## How to use the UIkit

If you want to use components from the UIkit, check the [Storybook documentation](https://pancakeswap.github.io/pancake-uikit/)
npm package: @koshikishi/linthtml-config
Description: LintHTML shareable config
Author: Anton Northern
Latest version: 2.0.0

# @koshikishi/linthtml-config

[![NPM Version][npm-image]][npm-url]
[![GitHub License][license-image]][license-url]
[![Check Workflow Status][workflow-image]][workflow-url]

The LintHTML shareable config designed for my personal projects.

Use it as is or as a foundation for your own configuration file.

## Installation

Install the package and `linthtml` in your project:

```sh
npm i -D @linthtml/linthtml @koshikishi/linthtml-config
```

## Usage

Set your `linthtml` config to:

```json
{
  "extends": "@koshikishi/linthtml-config"
}
```

### Extending the config

Add a `"rules"` key to your config, then add your overrides and additions there.

For example, to change the `id-style` rule and specify a different format, turn off the `tag-bans` rule and add the `class-style` rule:

```json
{
  "extends": "@koshikishi/linthtml-config",
  "rules": {
    "class-style": [true, "bem"],
    "id-style": [true, "underscore"],
    "tag-bans": false
  }
}
```

## Integration with VS Code

1. Install the LintHTML [extension](https://marketplace.visualstudio.com/items?itemName=kamikillerto.vscode-linthtml) for VS Code.
2. Install `linthtml` and this config in your project following the [Installation](#installation) section.
3. Add a LintHTML configuration file (`.linthtmlrc.*`) and extend it with this shareable config following the [Usage](#usage) section.

## Useful links

- [Changelog](CHANGELOG.md)
- [LintHTML documentation](https://linthtml.vercel.app/)

[npm-image]: https://img.shields.io/npm/v/@koshikishi/linthtml-config
[npm-url]: https://www.npmjs.com/package/@koshikishi/linthtml-config
[license-image]: https://img.shields.io/github/license/koshikishi/linthtml-config
[license-url]: https://github.com/koshikishi/linthtml-config/blob/main/LICENSE
[workflow-image]: https://github.com/koshikishi/linthtml-config/actions/workflows/check.yml/badge.svg
[workflow-url]: https://github.com/koshikishi/linthtml-config/actions
npm package: @koshikishi/pug-lint-config
Description: Pug-lint shareable config
Author: Anton Northern
Latest version: 3.0.0

# @koshikishi/pug-lint-config

[![NPM Version][npm-image]][npm-url]
[![GitHub License][license-image]][license-url]
[![Check Workflow Status][workflow-image]][workflow-url]

The pug-lint shareable config designed for my personal projects.

Use it as is or as a foundation for your own configuration file.

## Installation

Install the package and `pug-lint` in your project:

```sh
npm i -D pug-lint @koshikishi/pug-lint-config
```

## Usage

Set your `pug-lint` config to:

```json
{
  "extends": "@koshikishi/pug-lint-config"
}
```

### Extending the config

You can specify additional rules and override or turn off already set ones.

For example, to change the `validateIndentation` rule to specify a different indentation, turn off the `requireStrictEqualityOperators` rule and add the `validateDivTags` rule:

```json
{
  "extends": "@koshikishi/pug-lint-config",
  "requireStrictEqualityOperators": null,
  "validateDivTags": true,
  "validateIndentation": 4
}
```

## Integration with VS Code

1. Install the pug-lint [extension](https://marketplace.visualstudio.com/items?itemName=mrmlnc.vscode-puglint) for VS Code.
2. Enable the linter in VS Code [settings](https://code.visualstudio.com/docs/getstarted/settings).
3. Install `pug-lint` and this config in your project following the [Installation](#installation) section.
4. Add a pug-lint configuration file (`.pug-lintrc.*`) and extend it with this shareable config following the [Usage](#usage) section.

## Useful links

- [Changelog](CHANGELOG.md)
- [Pug-lint documentation](https://github.com/pugjs/pug-lint#readme)

[npm-image]: https://img.shields.io/npm/v/@koshikishi/pug-lint-config
[npm-url]: https://www.npmjs.com/package/@koshikishi/pug-lint-config
[license-image]: https://img.shields.io/github/license/koshikishi/pug-lint-config
[license-url]: https://github.com/koshikishi/pug-lint-config/blob/main/LICENSE
[workflow-image]: https://github.com/koshikishi/pug-lint-config/actions/workflows/check.yml/badge.svg
[workflow-url]: https://github.com/koshikishi/pug-lint-config/actions
npm package: @koshikishi/stylelint-config
Description: Stylelint shareable config
Author: Anton Northern
Latest version: 4.0.0

# @koshikishi/stylelint-config

[![NPM Version][npm-image]][npm-url]
[![GitHub License][license-image]][license-url]
[![Check Workflow Status][workflow-image]][workflow-url]

The Stylelint shareable config designed for my personal projects.

Use it as is or as a foundation for your own configuration file.

## Installation

Install the package and `stylelint` in your project:

```sh
npm i -D stylelint @koshikishi/stylelint-config
```

### Extends and plugins

This config:

- extends the [stylelint-config-standard-scss](https://www.npmjs.com/package/stylelint-config-standard-scss) shared config
- bundles the [@stylistic/stylelint-plugin](https://www.npmjs.com/package/@stylistic/stylelint-plugin) to replace removed stylistic rules

These are direct dependencies that will be installed automatically.

## Usage

Set your `stylelint` config to:

```json
{
  "extends": "@koshikishi/stylelint-config"
}
```

### Extending the config

Add a `"rules"` key to your config, then add your overrides and additions there.

For example, to add the `color-function-notation` rule and turn off the `selector-class-pattern` rule:

```json
{
  "extends": "@koshikishi/stylelint-config",
  "rules": {
    "color-function-notation": "modern",
    "selector-class-pattern": null
  }
}
```

You can also override the stylistic rules from `@stylistic/stylelint-plugin` and SCSS-specific rules:

```json
{
  "extends": "@koshikishi/stylelint-config",
  "rules": {
    "@stylistic/indentation": 4,
    "scss/declaration-nested-properties": null
  }
}
```

## Integration with VS Code

1. Install the Stylelint [extension](https://marketplace.visualstudio.com/items?itemName=stylelint.vscode-stylelint) for VS Code.
2. Install `stylelint` and this config in your project following the [Installation](#installation) section.
3. Add a Stylelint configuration file (`stylelint.config.js` or `.stylelintrc.*`) and extend it with this shareable config following the [Usage](#usage) section.

## Useful links

- [Changelog](CHANGELOG.md)
- [Stylelint documentation](https://stylelint.io/)

[npm-image]: https://img.shields.io/npm/v/@koshikishi/stylelint-config
[npm-url]: https://www.npmjs.com/package/@koshikishi/stylelint-config
[license-image]: https://img.shields.io/github/license/koshikishi/stylelint-config
[license-url]: https://github.com/koshikishi/stylelint-config/blob/main/LICENSE
[workflow-image]: https://github.com/koshikishi/stylelint-config/actions/workflows/check.yml/badge.svg
[workflow-url]: https://github.com/koshikishi/stylelint-config/actions
npm package: @koshnic/ratelimit
Description: Redis based rate limiting implementation using the token bucket algorithm.
Author: HenryHe
Latest version: 1.0.3

# Redis limiting for ioredis

Redis-based rate limiting using the token bucket algorithm.

This project is an adaptation for Node.js, inspired by [go-redis](https://github.com/go-redis/redis_rate).

Enjoy the benefits of the token bucket algorithm for both JavaScript and TypeScript developers.

# Installation

```shell
npm install @koshnic/ratelimit
```

# Usage

**Note**: All rate limit keys stored in Redis will be prefixed with `rate_limit:`.
For example, when you invoke `limiter.allowPerSecond('project:123', 10)`, the corresponding key name in Redis will be `rate_limit:project:123`.

```javascript
const Redis = require("ioredis");
const {RateLimiter} = require('@koshnic/ratelimit');

const redis = new Redis({
    host: 'localhost',
    port: 6379
});

const limiter = new RateLimiter(redis);
let res;

// Allow 10 requests per second
res = await limiter.allowPerSecond('project:123', 10);

// Allow 20 requests per minute
res = await limiter.allowPerMinute('project:456', 20);

// Allow 30 requests per hour
res = await limiter.allowPerHour('project:789', 30);

// Or you want to use raw allow function to meet your custom logic.
res = await limiter.allow('project:cutom_login', {
    burst: 10,
    ratePerPeriod: 10,
    period: 60,
    cost: 1
});
```

# License

MIT
npm package: @kosich/babel-plugin-partial-expressions-experiment
Description: Partial expressions experimental babel plugin
Author: Kostia Palchyk
Latest version: 0.0.4

# Partial Expressions - Babel plugin

Try it in this **[babel playground](https://babeljs.io/repl#?browsers=defaults%2C%20not%20ie%2011%2C%20not%20ie_mob%2011&build=&builtIns=usage&corejs=3.6&spec=false&loose=false&code_lz=DYUwLgBAlgdgxhAvBAfhA-hA1BAjAbgCg4B7GAZxNADpgSBzACljkYBZcBKTow0SAA5QBIACZIIbAAwQAPgD4M2CACYipClRC0GjISNE8gA&debug=false&forceAllTransforms=false&shippedProposals=false&circleciRepo=&evaluate=false&fileSize=false&timeTravel=false&sourceType=module&lineWrap=false&presets=stage-0%2Cstage-1&prettier=false&targets=&version=7.13.17&externalPlugins=%40kosich%2Fbabel-plugin-partial-expressions-experiment%400.0.4)**.

Or install it via

```
npm i @kosich/babel-plugin-partial-expressions-experiment -D
```

And then add it to your `babel.config.json` as [described here](https://babeljs.io/docs/en/plugins).

_NOTE: put it before pipeline operator plugins, if you use those._

## About

Partial expressions is a syntax sugar to simplify writing expression that are awating one additional variable.

Syntax:
- `_` is a placeholder for the value
- `~` is used to mark partial expression root and is required whenever we use `_` (except for RHS pipes)

Examples:

```js
let bang = ~ _ + '!';
// equals to
let bang = x => x + '!';
```

As a partially applied function:

```js
let bangLog = ~ console.log(_, '!');
// equals to
let bangLog = x => console.log(x, '!');
```

And as a context of application:

```js
let toBase16 = ~ _.toString(16);
// equals to
let toBase16 = x => x.toString(16);
```

It is also compatible with the [pipeline operator](https://github.com/tc39/proposal-pipeline-operator):

I tried to cover a special case for **pipes**, when `_` is in RHS of a pipe. E.g:

```js
let value = 42 |> _ + 1 |> console.log;
// equals to
let value = 42 |> (x => x + 1) |> console.log;
```

Similarly, we can do partial application:

```js
42 |> console.log(_, '!');
// equals to
42 |> (x => console.log(x, '!'));
```

And as a context:

```js
42 |> _.toString(16) |> _.toUpperCase();
// equals to
42 |> (x => x.toString(16)) |> (x => x.toUpperCase());
```

## Rules

1. Expression is considered partial if an unbound `_` symbol is used in it.

2. Expression boudaries are limited by following:

    2.1 `~` operator
    `let a = ~ _ + '!'` equals `let a = x => x + '!'`

    2.2 RHS in pipeline operator    
    `42 |> _ + 1 |> console.log` equals `42 |> (x => x + 1) |> console.log`

## The End 🙂
npm package: @kosko/plugin-set-metadata
Description: A Kosko plugin which set metadata for manifests.
Author: Tommy Chen
Latest version: 0.2.0

# `@kosko/plugin-set-metadata`

Set metadata for Kubernetes manifests.

## Install

```sh
npm install @kosko/plugin-set-metadata
```

## Documentation

[Link](https://kosko.dev/docs/plugins/set-metadata)
npm package: @kosko/template-deployed-service
Description: Create a new component including a deployment and a service.
Author: Tommy Chen
Latest version: 4.1.0

# @kosko/template-deployed-service

[![](https://img.shields.io/npm/v/@kosko/template-deployed-service.svg)](https://www.npmjs.com/package/@kosko/template-deployed-service)

Create a new component including a deployment and a service.

## Usage

```sh
npx @kosko/template-deployed-service --name nginx --image nginx
```

## Options

### `--name`

Name of deployment and service. (Required)

### `--image`

Container image. (Required)

### `--type`

Service type. Default to `ClusterIP`.

### `--servicePort`

Service port. Default to `80`.

### `--containerPort`

Container port. Default to `80`.

### `--replicas`

Number of replicas. Default to `1`.
npm package: @kosko/template-environment
Description: Create a new environment.
Author: Tommy Chen
Latest version: 4.1.0

# @kosko/template-environment

[![](https://img.shields.io/npm/v/@kosko/template-environment.svg)](https://www.npmjs.com/package/@kosko/template-environment)

Create a new environment.

## Usage

```sh
npx @kosko/template-environment --name dev
```

## Options

### `--name`

Environment name. (Required)
npm package: @kosli/cli-darwin-arm64
Description: macOS arm64 binary for @kosli/cli
Latest version: 2.15.2

# @kosli/cli-darwin-arm64

This is the macOS ARM64 platform binary for the Kosli CLI (Apple Silicon). **Do not install this package directly.**

Install the main package instead, which selects the right binary for your platform automatically:

```sh
npm install -g @kosli/cli
```

See the [Kosli CLI repository](https://github.com/kosli-dev/cli) for documentation and source code.
npm package: @kosli/cli-darwin-x64
Description: macOS x64 binary for @kosli/cli
Latest version: 2.15.2

# @kosli/cli-darwin-x64

This is the macOS x64 platform binary for the Kosli CLI. **Do not install this package directly.**

Install the main package instead, which selects the right binary for your platform automatically:

```sh
npm install -g @kosli/cli
```

See the [Kosli CLI repository](https://github.com/kosli-dev/cli) for documentation and source code.
npm package: @kosli/cli-linux-arm
Description: Linux arm binary for @kosli/cli
Latest version: 2.15.2

# @kosli/cli-linux-arm

This is the Linux ARM 32-bit platform binary for the Kosli CLI. **Do not install this package directly.**

Install the main package instead, which selects the right binary for your platform automatically:

```sh
npm install -g @kosli/cli
```

See the [Kosli CLI repository](https://github.com/kosli-dev/cli) for documentation and source code.
npm package: @kosli/cli-linux-arm64
Description: Linux arm64 binary for @kosli/cli
Latest version: 2.15.2

# @kosli/cli-linux-arm64

This is the Linux ARM64 platform binary for the Kosli CLI. **Do not install this package directly.**

Install the main package instead, which selects the right binary for your platform automatically:

```sh
npm install -g @kosli/cli
```

See the [Kosli CLI repository](https://github.com/kosli-dev/cli) for documentation and source code.
npm package: @kosli/cli-linux-x64
Description: Linux x64 binary for @kosli/cli
Latest version: 2.15.2

# @kosli/cli-linux-x64

This is the Linux x64 platform binary for the Kosli CLI. **Do not install this package directly.**

Install the main package instead, which selects the right binary for your platform automatically:

```sh
npm install -g @kosli/cli
```

See the [Kosli CLI repository](https://github.com/kosli-dev/cli) for documentation and source code.
npm package: @kosli/cli-win32-arm64
Description: Windows arm64 binary for @kosli/cli
Latest version: 2.15.2

# @kosli/cli-win32-arm64

This is the Windows ARM64 platform binary for the Kosli CLI. **Do not install this package directly.**

Install the main package instead, which selects the right binary for your platform automatically:

```sh
npm install -g @kosli/cli
```

See the [Kosli CLI repository](https://github.com/kosli-dev/cli) for documentation and source code.
npm package: @kosli/cli-win32-x64
Description: Windows x64 binary for @kosli/cli
Latest version: 2.15.2

# @kosli/cli-win32-x64

This is the Windows x64 platform binary for the Kosli CLI. **Do not install this package directly.**

Install the main package instead, which selects the right binary for your platform automatically:

```sh
npm install -g @kosli/cli
```

See the [Kosli CLI repository](https://github.com/kosli-dev/cli) for documentation and source code.
npm package: @kosmic/koa
Description: Typescript first drop in replacement for koa
Author: Spencer Snyder
Latest version: 0.0.8

# @kosmic/koa

### A strongly typed Koa drop in replacement

`@kosmic/koa` is a typescript first drop in replacement for [koa](https://koajs.com/). There are virtually 0 differences in the js code base and tests are run against the original `koa` tests as well as additional tests to ensure that `@kosmic/koa` is 100% production ready and directly compatible with the latest version of `koa`. Koa is very stable and is only updated infrequently, but we use github actions to closely track any changes that may occur.
In addition, it is very easy to use `@kosmic/koa` with any third party types as well, and no breaking changes should occur, at all, ever.

### Why do this?

- Much better, seamless, and stronger TS experience in every aspect.
- Types designed specifically for great intellisense with ts server.
  - easily see and validate any type on any object
  - Full koa documentation and examples on _every_ getter,setter,method, and property on any koa object!!!!! Never check the koa docs again!
- Less packages to install and worry about when using koa with typescript.

### I'm just using koa with JS - I don't need @kosmic/koa

Wait! If you use ts-server (ie, most code editors are using this), you can immediately benefit from awesome intellisense, even in pure JavaScript!! Once again, never check the docs again for you Koa questions, its right there in your editor!

### How to use

#### Step 1

Remove both `koa` and `@types/koa` from your package.json and then install `@kosmic/koa` and alias it to `koa`.

`npm install @kosmic/koa@npm:koa`

or

`yarn add @kosmic/koa@npm:koa`
or
`pnpm add @kosmic/koa@npm:koa`

Thats it!

You will now experience Koa with all the power of typescript _built in_.

#### A note on compatibility

`@kosmic/koa` mimics the types in `@types/koa`, however, they are not compatible. Third party types can extend them both the same way. In this way, if you want to use any existing koa module with third party types, you can easily do so, but your project needs to alias `@kosmic/koa` as `koa`.

This aliasing tends to work out of the box if you are using `npm` as a package manager, however, `yarn` and `pnpm` may require some extra configuration. The main ideas is that your project should see and use `@kosmic/koa` anywhere it tries to use `koa`.