open-index/open-npm huggingface dataset:
npm package: @kiyoshiro/msw-object
Description: > Reusable msw mock definition.
Latest version: 0.0.3

# msw-object

> Reusable msw mock definition.

[![codecov](https://codecov.io/gh/KoichiKiyokawa/msw-object/branch/main/graph/badge.svg?token=NY24WQJELL)](https://codecov.io/gh/KoichiKiyokawa/msw-object)

## Usage

```sh
npm i -D @kiyoshiro/msw-object
```

<table>
<thead>
<th>This library</th>
<th>Original msw</th>
</th>
</thead>
<tbody>
<tr>
<td>

```ts
import {
  defineBaseRestBuilder,
  createRestHandler,
  RestBuilder,
} from "@kiyoshiro/msw-object";
import { setupServer } from "msw";

const baseBuilder = defineBaseRestBuilder({
  basePath: "http://localhost:3000",
  // Set default delay as 500ms
  // It is difficult with original msw!!
  delay: 500,
});

// extends baseBuilder
const userShowBuilder: RestBuilder = {
  ...baseBuilder,
  path: "/users/:id",
  resolve: () => ({ id: 1, name: "user1", age: 10 }),
};

// extends userShowBuilder
const userListBuilder: RestBuilder = {
  ...userShowBuilder,
  path: "/users",
  resolve: () => [userShowBuilder.resolve()],
};

const builders = [userShowBuilder, userListBuilder];
setupServer(...builders.map(createRestHandler));
```

</td>

<td>

```ts
import { rest, setupServer } from "msw";

const userShowHandler = rest.get(
  "http://localhost:3000/users/:id",
  (req, res, ctx) => {
    return res(
      ctx.status(200),
      ctx.json({ id: 1, name: "user1", age: 10 }),
      ctx.delay(500)
    );
  }
);

// difficult to reuse userShowBuilder 😢
const userListHandler = rest.get(
  "http://localhost:3000/users",
  (req, res, ctx) => {
    return res(
      ctx.status(200),
      ctx.json([{ id: 1, name: "user1", age: 10 }]),
      ctx.delay(500)
    );
  }
);

setupServer(userShowHandler, userListHandler);
```

</td>
</tr>
</tbody>
</table>

## Features

TODO...

## Recipes

### Switch the response by request query

```ts
const userListBuilder: RestBuilder = {
  ...baseBuilder,
  resolver: (req) => {
    switch (req.url.searchParams.get("category")) {
      case "follower":
        return [
          /* follower user list */
        ];
      case "follow":
        return [
          /* follow user list */
        ];
    }
  },
};
```

### Inject spy methods in test

```tsx
test("user show page", () => {
  const requestUrlSpy = jest.fn();
  const handler = createRestHandler({
    path: "/users/:id",
    resolver: () => ({ id: 1, name: "user1", age: 10 }),
    // You can specify onRequest hook. It is fired before mock handler return a response.
    // vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
    onRequest: (req) => {
      requestUrlSpy(req.url.toString());
    },
    // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  });
  server.use(handler);

  render(<UserShow />);

  expect(requestUrlSpy).toHaveBeenCalledWith("/users/1");
});
```

TODO
npm package: @kiyoshiro/openapi-typescript-any-client
Description: > Create type-safe fetcher with any fetch client, such as axios, ky and so on.
Latest version: 0.1.1

# openapi-typescript-any-client

> Create type-safe fetcher with any fetch client, such as axios, ky and so on.

[![codecov](https://codecov.io/gh/KoichiKiyokawa/openapi-typescript-any-client/branch/main/graph/badge.svg?token=KBPSYME8M7)](https://codecov.io/gh/KoichiKiyokawa/openapi-typescript-any-client)

![demo](https://user-images.githubusercontent.com/40315079/220818384-0d7701f3-6883-4de1-96c7-7f56c3aa6333.gif)

## Usage

### Install

```bash
npm i -D @kiyoshiro/openapi-typescript-any-client
```

### Generate code

```bash
openapi-typescript-any-client ./openapi.yaml -o generated.ts
```

### Define your own fetcher with the generated code

<table>
<thead>
<tr>
<th>path pattern</th>
<th>operationId pattern</th>
</tr>
</thead>
<tbody>
<tr>
<td>

```ts
// fetcher.ts
import { createBaseFetcher } from "./generated";

// standard fetch
export const fetcher = createBaseFetcher((path, { method, body }) =>
  fetch("http://localhost:3000" + path, {
    method,
    body: JSON.stringify(body),
  }).then((res) => res.json())
);

// axios
export const fetcher = createBaseFetcher((path, { method, body }) =>
  axios({
    baseURL: "http://localhost:3000",
    url: path,
    method,
    data: body,
  }).then((res) => res.data)
);

// ky
export const fetcher = createBaseFetcher((path, { method, body }) =>
  ky(path, {
    prefixUrl: "http://localhost:3000",
    url: path,
    method,
    json: body,
  }).json()
);
```

</td>
<td>

```ts
// fetcher.ts
import { createOperationIdFetcher } from "./generated";

// standard fetch
export const fetcherObj = createOperationIdFetcher((path, { method, body }) =>
  fetch("http://localhost:3000" + path, {
    method,
    body: JSON.stringify(body),
  }).then((res) => res.json())
);

// axios
export const fetcherObj = createOperationIdFetcher((path, { method, body }) =>
  axios({
    baseURL: "http://localhost:3000",
    url: path,
    method,
    data: body,
  }).then((res) => res.data)
);

// ky
export const fetcherObj = createOperationIdFetcher((path, { method, body }) =>
  ky(path, {
    prefixUrl: "http://localhost:3000",
    url: path,
    method,
    json: body,
  }).json()
);
```

</td>

</tbody>
</table>

### Use the `fetcher` created above (It's type-safe!)

<table>
<thead>
<tr>
<th>path pattern</th>
<th>operationId pattern</th>
</tr>
</thead>
<tbody>
<tr>
<td>

```ts
const res = await fetcher.get("/users", {
  query: { per: 10, page: 0 },
});
```

</td>
<td>

```ts
// `listUsers` comes from operationId
// in your OpenAPI schema
const res = await fetcherObj.listUsers({
  query: { per: 10, page: 0 },
});
```

</td>

</tbody>
</table>
npm package: @kiyoshiro/ts-wire
Description: Code-generation based DI, without decorators, based on ts-morph
Latest version: 0.0.4

# ts-wire

[![CI](https://github.com/KoichiKiyokawa/ts-wire/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/KoichiKiyokawa/ts-wire/actions/workflows/ci.yml)
[![npm version](https://badge.fury.io/js/@kiyoshiro%2Fts-wire.svg)](https://badge.fury.io/js/@kiyoshiro%2Fts-wire)
[![codecov](https://codecov.io/github/KoichiKiyokawa/ts-wire/branch/main/graph/badge.svg?token=MHOGB70JUD)](https://codecov.io/github/KoichiKiyokawa/ts-wire)

## Features

- No decorators are needed.
  - You don't need to write any `@Injectable`.
- Code-generation based.
  - Good for static checks, fast boot.

https://user-images.githubusercontent.com/40315079/211189731-7b5e876d-8b0c-4d5b-af7e-a85368e85559.mp4

## Usage

```sh
npm i -D @kiyoshiro/ts-wire
npx ts-wire init # Create `src/wire.ts`
```

In `src/wire.ts`, you have to list values and classes you want to resolve dependencies.

```ts
import { BarRepository, db, FooController, FooRepository, FooService } from './foo'

export const providers = [db, FooRepository, BarRepository, FooService, FooController]
```

Then, you run a generate command.

```sh
npx ts-wire generate
```

You can see the following code in `src/wire-generated.ts`.

```ts
import { FooRepository, db, BarRepository, FooService, FooController } from './foo'

const fooRepository = new FooRepository(db)
const barRepository = new BarRepository(db)
const fooService = new FooService(fooRepository, barRepository)
const fooController = new FooController(fooService)
const leaves = { fooController }

export default leaves
```

## Acknowledgments

This library is inspired by https://github.com/google/wire
npm package: @kiyoshiro/zx-lite
Description: A light-weight version of google/zx
Latest version: 0.0.1

# zx-lite

> A light-weight version of google/zx

[![codecov](https://codecov.io/gh/KoichiKiyokawa/type-safe-path/branch/main/graph/badge.svg?token=61F6FRPXKN)](https://codecov.io/gh/KoichiKiyokawa/type-safe-path)

## Usage

```sh
npm i -D @kiyoshiro/zx-lite
```

Write your script in `.mts` file.

```ts
// script.mts
import "@kiyoshiro/zx-lite/globals"

// Look. Different from google/zx, you can omit `await`
$`echo Hello, world!`
await sleep(1000)
```

Run your script.

```sh
npx zx script.mts
```

## Features

- 🔋 Run TS file only with this library(google/zx needs ts-node or other TS runner).
npm package: @kiyotd/wait-define
Description: An asynchronous function that waits until a property of an object is defined.
Latest version: 1.0.0

# wait-define

オブジェクトのプロパティが定義されるまで待つ非同期関数です。

An asynchronous function that waits until a property of an object is defined.

## Installation

```bash
npm i @kiyotd/wait-define
```

## Examples

`window.hello` が定義されるまで待つ場合

If you wait until `window.hello` is defined

`main.ts`

```typescript
import { waitDefine } from '@kiyotd/wait-define';

document.addEventListener('DOMContentLoaded', () => {

  console.log('waiting for window.hello ...');

  // window.hello が定義されるまで待つ, 監視間隔は 500ms, タイムアウトは 2000ms
  waitDefine('hello', window, 500, 2000)
    .then(() => {
      console.log('window.hello is defined!');
    })
    .catch((error) => {
      console.error('An error occurred:', error);
    });

  // window.hello を定義する
  setTimeout(() => {
    // @ts-ignore
    window.hello = 'world';
  }, 2500);
});
```

上記の例では、2500ms 後に `window.hello` が定義されるので、タイムアウトによりエラーが発生します。

In the above example, `window.hello` is defined after 2500ms, so the timeout causes an error.

## Arguments

| Name           | Type     | Description                                                                                                                                                                                |
|----------------|----------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `propertyName` | `string` | 定義を待つプロパティ名<br/>The property name to wait for definition                                                                                                                                   |
| `obj`          | `any`    | プロパティの定義を待つオブジェクト<br />Object waiting for property definition                                                                                                                              |
| `interval_ms`  | `number` | 定義を確認する間隔（ミリ秒）。デフォルトは100ミリ秒。<br />Interval (in milliseconds) to check definitions. Default is 100 milliseconds.                                                                            |
| `timeout_ms`   | `number` | 待機を終了し、エラーをスローするまでの時間（ミリ秒）。指定しない場合、定義が確認されるまで無限に待ちます。<br />Time (in milliseconds) to exit wait and throw an error. If not specified, waits indefinitely until the definition is confirmed. |

## Returns

プロパティが定義されたら解決されるPromiseを返します。

Returns a Promise that resolves when the property is defined.

## License

MIT
npm package: @kiyutink/fbp
Description: A cli to scaffold projects from git repositories
Author: Kirill Kiyutin
Latest version: 0.0.7

# Boilerplate cli
This package is a cli for starting a boilerplate project based on [this repository](https://github.com/kiyutink/frontend-boilerplate).

## Installation
`npm i -g @kiyutink/fbp`

## Usage
### Generate new project in %dirname%
`fbp %dirname%`
npm package: @kiz8/common
Description: Common utilities for Reputation Management
Author: Kiz8
Latest version: 0.1.1

# @kiz8/common

Общие утилиты и компоненты для проектов Reputation Management.

## Установка

```bash
pnpm add @kiz8/common
```

## Функциональность

### Провайдер зависимостей (DI)

Модуль предоставляет простую систему внедрения зависимостей для Inngest-функций.

```typescript
import { getDependencyProvider } from '@kiz8/common';

const provider = getDependencyProvider();
await provider.init();

// Регистрация зависимостей
provider.register('serviceName', new MyService());

// Получение зависимостей
const service = provider.get<MyService>('serviceName');
```

### Базовый класс для Inngest-функций

Модуль включает базовый класс `BaseInngestFunction` и фабрику для создания Inngest-функций.

```typescript
import { 
  BaseInngestFunction, 
  InngestContext, 
  InngestFunctionFactory 
} from '@kiz8/common';

// Определение типа события
type MyEvent = {
  data: {
    id: string;
    name: string;
  }
};

// Создание класса функции
class MyFunction extends BaseInngestFunction<MyEvent> {
  protected async handleEvent(
    context: InngestContext<MyEvent>
  ): Promise<unknown> {
    const { id, name } = context.event.data;
    
    // Использование логгера
    this.logger.info(`Processing event for ${name}`);
    
    // Получение зависимостей
    const service = this.getDependency<MyService>('serviceName');
    
    // Обработка шагов
    const result = await context.step.run('process-data', async () => {
      return await service.process(id);
    });
    
    return { success: true, result };
  }
}

// Создание функции Inngest
const myFunction = inngest.createFunction(
  { id: 'my-function', name: 'My Function' },
  { event: 'my.event' },
  async (context) => {
    const dependencyProvider = await getDependencyProvider();
    const factory = new InngestFunctionFactory();
    return factory.createFunction(MyFunction, dependencyProvider)(context);
  }
);
```

## Разработка

### Сборка

```bash
pnpm build
```

### Разработка с автоматической пересборкой

```bash
pnpm dev
```

### Линтинг

```bash
pnpm lint
```

### Запуск тестов

```bash
pnpm test
```

## Структура

- `src/dependency-injection.ts` - провайдер зависимостей
- `src/inngest.ts` - базовые классы и интерфейсы для работы с Inngest
- `src/index.ts` - точка входа и реэкспорт

## Совместимость

Модуль использует ESM модули с указанием расширений файлов в импортах.
Для корректной работы требуется ESM-совместимая среда выполнения.
npm package: @kiz8/inngest-client
Description: Inngest client for reputation management system
Author: Kiz8
Latest version: 0.1.0

# @kiz8/inngest-client

Inngest client for reputation management system.

## Installation

```bash
npm install @kiz8/inngest-client
```

or

```bash
yarn add @kiz8/inngest-client
```

## Usage

```typescript
import { createInngestClient } from '@kiz8/inngest-client';

// Initialize the client
const inngest = createInngestClient({
  // Your configuration here
});

// Use the client
// ...
```

## API Reference

### `createInngestClient(options)`

Creates a new Inngest client instance.

#### Parameters

- `options` - Configuration options for the Inngest client

#### Returns

An Inngest client instance.

## License

MIT
npm package: @kiza/utils
Description: Mysql utilities for Node.js
Author: Kiza
Latest version: 5.2.0

# Utils
Mostly mysql utilities for Node.js

```bash
npm install @kiza/utils
```

## Setup connection string

Run once on startup:

```js
import { poolProvider } from "@kiza/utils";
import mysql from 'mysql2/promise';
import config from "config";

await poolProvider.setPool(() => mysql.createPool(config.database));
```

Example of config: 

```json
{
    "host": "localhost",
    "user": "root",
    "password": "password",
    "database": "mydb",
    "dateStrings": true,
    "port": 3306,
    "charset": "utf8mb4"
}
```

## Use mysqlBase

See example in testApp.js

Create your repositories like:

```js
import { mysqlBase } from "@kiza/utils";

export default class extends mysqlBase {
    static getJobs(siteId) {
        return this.all("SELECT * FROM job WHERE siteId = ? ORDER BY posted DESC", [siteId]);
    }
}
```

Transactions:

```js
import { mysqlBase } from "@kiza/utils";

export default class extends mysqlBase {
    static addJobs(job, job2) {
        return this.inTransacation(async con => {
            await this.insert("INSERT INTO job SET ?", job, con);
            await this.insert("INSERT INTO job SET ?", job2, con);
        });
    }
}
```

## Publish package

Note to self

```bash
npm publish --access public
```

## Change log

### v5

- Remove dep on mysql2 package, pool should be provided by consumer. This lets the consumer manage the mysql version
- Remove guid util. node:crypto should be used instead

### v4

- BIT maps to boolean automatically

### v3 

- moved es6 imports
npm package: @kizahasi/flocon-core
Description: Core library for Flocon project(not released yet).
Author: kizahasi
Latest version: 0.20.0-beta.11
Deprecated: Integrated into https://github.com/flocon-trpg

# @kizahasi/flocon-core

![GitHub](https://img.shields.io/github/license/kizahasi/flocon-core) [![npm version](https://img.shields.io/npm/v/@kizahasi/flocon-core.svg?style=flat)](https://www.npmjs.com/package/@kizahasi/flocon-core) [![CI](https://github.com/kizahasi/flocon-core/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/kizahasi/flocon-core/actions/workflows/ci.yml) [![publish](https://github.com/kizahasi/flocon-core/actions/workflows/publish.yml/badge.svg?branch=release)](https://github.com/kizahasi/flocon-core/actions/workflows/publish.yml)

Core library for Flocon project(not released yet).
npm package: @kizahasi/flocon-script
Description: A sandboxed JavaScript-like language interpreter in JavaScript. One of core libraries for Flocon project.
Author: kizahasi
Latest version: 0.8.1-beta.8
Deprecated: Integrated into https://github.com/flocon-trpg

# @kizahasi/flocon-script

A sandboxed JavaScript-like language interpreter in JavaScript. One of core libraries for Flocon project.

![GitHub](https://img.shields.io/github/license/kizahasi/flocon-script) [![npm version](https://img.shields.io/npm/v/@kizahasi/flocon-script.svg?style=flat)](https://www.npmjs.com/package/@kizahasi/flocon-script) [![CI](https://github.com/kizahasi/flocon-script/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/kizahasi/flocon-script/actions/workflows/ci.yml) [![publish](https://github.com/kizahasi/flocon-script/actions/workflows/publish.yml/badge.svg?branch=release)](https://github.com/kizahasi/flocon-script/actions/workflows/publish.yml)

## Install

`npm install @kizahasi/flocon-script` or `yarn add @kizahasi/flocon-script`

## Usage

```typescript
import {
    exec,
    arrayClass,
    mapClass,
    symbolClass,
    createConsoleClass,
} from '@kizahasi/flocon-script';

const globalThis = {
    Array: arrayClass,
    Map: mapClass,
    Symbol: symbolClass,
    console: createConsoleClass('[MY HEADER!]'),
};
const execResult = exec(
    `
const i = 1 + 2;
const array = [i];
console.log(Array.isArray(array));
array
`,
    globalThis
);
console.log(execResult.result); // [3]
```

## License

Released under MIT License
npm package: @kizahasi/option
Description: Represents a value which is either Some or None.
Author: kizahasi
Latest version: 1.1.0

# @kizahasi/option

![GitHub](https://img.shields.io/github/license/kizahasi/option) [![npm version](https://img.shields.io/npm/v/@kizahasi/option.svg?style=flat)](https://www.npmjs.com/package/@kizahasi/option) ![minified size](https://img.shields.io/bundlephobia/min/@kizahasi/option) [![CI](https://github.com/kizahasi/option/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/kizahasi/option/actions/workflows/ci.yml) [![publish](https://github.com/kizahasi/option/actions/workflows/publish.yml/badge.svg?branch=release)](https://github.com/kizahasi/option/actions/workflows/publish.yml)

Represents a value which is either Some or None.

## Installation

Run `npm install @kizahasi/option` or `yarn add @kizahasi/option`

## Usage

```typescript
import { Option } from '@kizahasi/option';

const someObj = Option.some(1);
if (someObj.isNone) {
    console.log('none'); // This cannot happen
} else {
    console.log(someObj.value); // output: 1
}

const noneObj = Option.none();
if (noneObj.isNone) {
    console.log('none'); // output: none
} else {
    console.log(noneObj.value); // This cannot happen
}
```
npm package: @kizahasi/ot-core
Description: ![License](https://img.shields.io/github/license/kizahasi/ot-string) [![npm version](https://img.shields.io/npm/v/@kizahasi/ot-core.svg?style=flat)](https://www.npmjs.com/package/@kizahasi/ot-core) ![minified size](https://img.shields.io/bundlephobia/min/
Author: kizahasi
Latest version: 0.7.0

# @kizahasi/ot-core

![License](https://img.shields.io/github/license/kizahasi/ot-string) [![npm version](https://img.shields.io/npm/v/@kizahasi/ot-core.svg?style=flat)](https://www.npmjs.com/package/@kizahasi/ot-core) ![minified size](https://img.shields.io/bundlephobia/min/@kizahasi/ot-core)

Core library for `@kizahasi/ot-string`.

This library is in beta. Therefore, **many breaking changes may occur without notice.**

## Installation

Run `npm install @kizahasi/ot-core` or `yarn add @kizahasi/ot-core`.

To use it in a browser directly, you can use [Skypack](https://www.skypack.dev/view/@kizahasi/ot-core).

## License

MIT
npm package: @kizahasi/result
Description: Represents a value which is either OK or error.
Author: kizahasi
Latest version: 1.1.0

# @kizahasi/result

![GitHub](https://img.shields.io/github/license/kizahasi/result) [![npm version](https://img.shields.io/npm/v/@kizahasi/result.svg?style=flat)](https://www.npmjs.com/package/@kizahasi/result) ![minified size](https://img.shields.io/bundlephobia/min/@kizahasi/result) [![CI](https://github.com/kizahasi/result/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/kizahasi/result/actions/workflows/ci.yml) [![publish](https://github.com/kizahasi/result/actions/workflows/publish.yml/badge.svg?branch=release)](https://github.com/kizahasi/result/actions/workflows/publish.yml)

Represents a value which is either OK or error.

## Installation

Run `npm install @kizahasi/result` or `yarn add @kizahasi/result`

## Usage

```typescript
import { Result } from '@kizahasi/result';

const okObj = Result.ok(1); // Creates an "ok" object
// const okObj: Result<number> = { isError: false, value: 1 }; // …or you can create the object like this instead
if (okObj.isError) {
    console.log(okObj.error); // This cannot happen
} else {
    console.log(okObj.value); // output: 1
}

const errorObj = Result.error('ERROR!'); // Creates an "error" object
// const errorObj: Result<ANY-VALUE-TYPE> = { isError: true, error: 'ERROR!' }; // …or you can create the object like this instead
if (errorObj.isError) {
    console.log(errorObj.error); // output: ERROR!
} else {
    console.log(errorObj.value); // This cannot happen
}
```
npm package: @kizahasi/util
Description: ![GitHub](https://img.shields.io/github/license/kizahasi/util) [![npm version](https://img.shields.io/npm/v/@kizahasi/util.svg?style=flat)](https://www.npmjs.com/package/@kizahasi/util) ![minified size](https://img.shields.io/bundlephobia/min/@kizahasi/ut
Author: kizahasi
Latest version: 0.9.1
Deprecated: Integrated into https://github.com/flocon-trpg

# @kizahasi/util

![GitHub](https://img.shields.io/github/license/kizahasi/util) [![npm version](https://img.shields.io/npm/v/@kizahasi/util.svg?style=flat)](https://www.npmjs.com/package/@kizahasi/util) ![minified size](https://img.shields.io/bundlephobia/min/@kizahasi/util) [![CI](https://github.com/kizahasi/util/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/kizahasi/util/actions/workflows/ci.yml) [![publish](https://github.com/kizahasi/util/actions/workflows/publish.yml/badge.svg?branch=release)](https://github.com/kizahasi/util/actions/workflows/publish.yml)

Contains a number of utility functions/types/classes etc.
npm package: @kizivat/svelte-autoscroll
Description: Svelte action to automatically scroll to the end of an element.
Author: David Kizivat
Latest version: 0.2.2

# Svelte Autoscroll Action

![npm (scoped)](https://img.shields.io/npm/v/@kizivat/svelte-autoscroll)

Svelte action to automatically scroll to the end of an element.

See demo at https://kizivat.eu/svelte-autoscroll/.

Simply used with the `use` directive.

```html
<div use:autoscroll>...</div>
```

The above `div` will automatically scroll to the end (bottom and right) when either

1. It's children list or DOM subtree change or
2. Any of the children change their size

## Installation

```bash
npm i @kizivat/svelte-autoscroll
```

## Usage

Make sure the `autoscroll` element has overflow set to `auto` or `scroll` in at least one of the `x` or `y` directions.

```html
<script>
	import autoscroll from '@kizivat/svelte-autoscroll';
</script>

<div use:autoscroll>...</div>

<style>
	div {
		overflow: auto;
	}
</style>
```

### Arguments

The action accepts an optional argument object. You can use it to

1. modify the scroll behavior (`'smooth'` or `'auto'`, default: `'smooth'`)
2. enable `pauseOnUserScroll` feature (default: `false`)

```html
<!-- Modify default scroll behavior only -->
<div use:autoscroll={{ behavior: 'auto' }}>...</div>
<!-- Pause on user scroll -->
<div use:autoscroll={{ pauseOnUserScroll: true }}>...</div>
<!-- Both -->
<div use:autoscroll={{ pauseOnUserScroll: true, behavior: 'auto' }}>...</div>
```
npm package: @kizmann/nano-ui
Description: <p align="center"><img width="170" src="https://github.com/vankizmann/nano-ui/blob/master/assets/nano-ui-dark.svg?raw=true" alt="nano-ui"></p>
Author: Eduard Kizmann
Latest version: 3.0.0

<p align="center"><img width="170" src="https://github.com/vankizmann/nano-ui/blob/master/assets/nano-ui-dark.svg?raw=true" alt="nano-ui"></p>

<p align="center">
  <a href="https://www.npmjs.org/package/@kizmann/nano-ui">
    <img src="https://img.shields.io/npm/v/@kizmann/nano-ui.svg">
  </a>
  <a href="https://npmcharts.com/compare/@kizmann/nano-ui?minimal=true">
    <img src="http://img.shields.io/npm/dm/@kizmann/nano-ui.svg">
  </a>
  <br>
</p>

<p align="center">A vue3 based ui library optimized for desktop applications with drag and drop in mind. <a href="https://nano-ui.vanki.de/" target="_blank">Docs are here</a></p>
<br>

### Installation

```bash
npm install @kizmann/nano-ui [or] yarn add @kizmann/nano-ui
```

### Dependencies

This package is dependent of [@kizmann/pico-js](https://github.com/vankizmann/pico-js) as well as [moment](https://github.com/moment/moment).

### Global Usage

```html
<script src="//unpkg.com/@kizmann/nano-ui@latest/dist/nano-ui.browser.js"></script>
<link rel="stylesheet" href="//unpkg.com/@kizmann/nano-ui@latest/dist/nano-ui.css">
<link rel="stylesheet" href="//unpkg.com/@kizmann/nano-ui@latest/dist/themes/light.css">
```

```js
App.use(nano.Install);
```

### Module Usage
```js
import { Install } from "@kizmann/nano-ui";
```

```js
App.use(Install);
```

```scss
@import "@kizmann/nano-ui/nano/index.scss";
```

### Demo

[Click me to see demo :cat:](https://vankizmann.github.io/nano-ui/demos/overview.html)

### ES5/6 Precompile

Incase you are not using the babel plugins (ES6) used in *babel.config.js* you will encounter errors while compiling. To prevent that its required to add an alias to your *webpack.config.js*.

#### webpack.config.js
```js
module.exports = {
    resolve: {
        alias: {
            '@kizmann/nano-ui': '@kizmann/nano-ui/dist/nano-ui.esm.js'
        }
    }
}
```

#### webpack.mix.js
```js
mix.webpackConfig({
    resolve: {
        alias: {
            '@kizmann/nano-ui': '@kizmann/nano-ui/dist/nano-ui.esm.js'
        }
    }
});
```

### Visual Studio Code Autocomplete

When using VS Code with the ES5 fix from above you need to create or add to your existsing *jsconfig.json* this alias to enable correct autocomplete.

#### jsconfig.json
```json
{
  "compilerOptions": {
    "paths": {
      "@kizmann/nano-ui": ["node_modules/@kizmann/nano-ui/src/index.js"]
    }
  }
}
```
npm package: @kizmann/pico-js
Description: <p align="center"><img width="170" src="https://github.com/vankizmann/pico-js/blob/master/assets/pico-js-dark.svg?raw=true" alt="pico-ui"></p>
Author: Eduard Kizmann
Latest version: 2.1.2

<p align="center"><img width="170" src="https://github.com/vankizmann/pico-js/blob/master/assets/pico-js-dark.svg?raw=true" alt="pico-ui"></p>

<p align="center">
  <a href="https://www.npmjs.org/package/@kizmann/pico-js">
    <img src="https://img.shields.io/npm/v/@kizmann/pico-js.svg">
  </a>
  <a href="https://npmcharts.com/compare/@kizmann/pico-js?minimal=true">
    <img src="http://img.shields.io/npm/dm/@kizmann/pico-js.svg">
  </a>
  <br>
</p>

<p align="center">A JS heleper library. <a href="https://pico-js.vanki.de/" target="_blank">Docs are here</a></p>

### Installation

```bash
npm install @kizmann/pico-js [or] yarn add @kizmann/pico-js
```

### Dependencies

~~This package is dependent of [moment](https://github.com/moment/moment) (*Right now its required but will be optional or ditched soon*).~~

### CDN Usage

```html
<script src="//unpkg.com/@kizmann/pico-js@latest/dist/pico-js.browser.js"></script>
```

```js
pi.Dom.ready(function () {
    console.log('Yeah :clap:');
});
```

### Module Usage
```js
import { Dom } from "@kizmann/pico-js";
```

```js
Dom.ready(function () {
    console.log('Yeah :metal:');
});
```

### ES5/6 Precompile

Incase you are not using the babel plugins (ES6) used in *babel.config.js* you will encounter errors while compiling. To prevent that its required to add an alias to your *webpack.config.js*.

#### webpack.config.js
```js
module.exports = {
    resolve: {
        alias: {
            '@kizmann/pico-js': '@kizmann/pico-js/dist/pico-js.esm.js'
        }
    }
}
```

#### webpack.mix.js
```js
mix.webpackConfig({
    resolve: {
        alias: {
            '@kizmann/pico-js': '@kizmann/pico-js/dist/pico-js.esm.js'
        }
    }
});
```

### Visual Studio Code Autocomplete

When using VS Code with the ES5 fix from above you need to create or add to your existsing *jsconfig.json* this alias to enable correct autocomplete.

#### jsconfig.json
```json
{
  "compilerOptions": {
    "paths": {
      "@kizmann/pico-js": ["node_modules/@kizmann/pico-js/src/index.esm.js"]
    }
  }
}
```

#### Jobs to do:

- [ ] Dom.obeserver
- [ ] Dom.observerResize
- [ ] Dom.datas
- [ ] Element rework
- [ ] Maps rework

#### What was killed: 

- Moment.js
- UUID library
- Dom.location
- Dom.closestScrollable
- Now.decade
- Coookie.pattern
- Locale.pickByCount
- Str.convertFromOptions
- Str.convertFromParams
npm package: @kiznavierr/luna
Description: Generate Genshin Impact character profile images from UID using Node.js and TypeScript
Author: Kiznavierr
Latest version: 1.5.0

# Luna

Generate Genshin Impact character profile images from UID using Node.js and TypeScript.

## Installation

```bash
npm install @kiznavierr/luna
```

## Usage

```typescript
import { ProfileGenerator } from "@kiznavierr/luna";

const generator = new ProfileGenerator();

const result = await generator.generateProfile("856012067", {
  outputFormat: "path",
  outputPath: "profile.png",
});

console.log("Profile generated successfully");
```

## Options

### ProfileGeneratorOptions

- `outputFormat`: `"buffer" | "base64" | "path"` - Output format
- `outputPath`: `string` - File path when using "path" format
- `hideUID`: `boolean` - Hide UID in generated image

### Output Formats

- `"buffer"`: Returns image as Buffer
- `"base64"`: Returns image as base64 string
- `"path"`: Saves image to specified path

## API

### ProfileGenerator

#### generateProfile(uid: string, options?: ProfileGeneratorOptions): Promise<ProfileResult>

Generates a profile image for the given UID.

**Parameters:**

- `uid`: Player UID (string)
- `options`: Generation options (optional)

**Returns:** Promise resolving to ProfileResult

### ProfileResult

- `buffer`: Image buffer (when outputFormat is "buffer")
- `base64`: Base64 string (when outputFormat is "base64")
- `path`: File path (when outputFormat is "path")
- `metadata`: Generation metadata

## License

See [LICENSE](LICENSE) file
npm package: @kizu/mixins
Description: Experimental Native CSS Mixins
Author: Roman Komarov
Latest version: 0.2.1

# Experimental Native CSS Mixins

> **Warning:**
> **All of this is highly experimental!** You probably don’t want to include this mixin’s code anywhere near your production code. But in a dev environment? Or on CodePen? That’s the best place for experimental tech like that, where you’re the main user.

I am planning to add more mixins to this package. For now, there is only the one: `--preview`.

## The `--preview` Mixin

I wrote [an article](https://kizu.dev/preview-mixin/) about the `--preview` mixin: read it to see the examples and read some of the explanations over how it works.

### Install & Use

```sh
npm install @kizu/mixins
```

Or

```sh
yarn add @kizu/mixins
```

Or use some CDN:

```HTML
<link
	rel="stylesheet"
	type="text/css"
	href="https://unpkg.com/@kizu/mixins@0.1.3/preview.css"
/>
```

Or

```CSS
@import
	url("https://unpkg.com/@kizu/mixins@0.1.3/preview.css");
```

### API

The API docs for the mixin are currently available as a [corresponding section of the article](https://kizu.dev/preview-mixin/preview-mixin/#mixins-api) I wrote about it.

## Changelog

### 0.2.1 — 2025-05-31

Fixed two issues:

- Adjusted `--WHEN` to work with [the change in how short circuiting will work with custom property fallbacks](https://github.com/w3c/csswg-drafts/issues/11500).
- Added a workaround for a breakage in Chrome with the `tan(atan2())` calculation.

### 0.2.0 — 2025-01-31

#### `--preview` Mixin Extension API

The extension API consists of three custom properties:

- `--preview-cycle-extension` — allows setting up the cycle from the `--preview` custom property in a way similar to how it is already done in the mixin.

- `--preview-reset-extension` — allows adding something to the `counter-reset` value of the mixin.

- `--preview-content-extension` — allows adding something at the end of the mixin's `content` output (but before the `--preview-suffix`).

This API allows extending the `--preview` mixin with new capabilities without touching its existing code, making it easy to prototype new features, or upgrade your usage of it.

## License

MIT.
npm package: @kizu/resize-observer-lite
Description: A ResizeObserver polyfill that has limited functionality of ResizeObserver.
Author: Daiwei Lu
Latest version: 0.2.4-beta1
Deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.

# resize-observer-lite

A ResizeObserver polyfill that has limited functionality of ResizeObserver.
npm package: @kizunasafe/kizuna-safe-contracts
Description: 🏢 _Revolutionize Insurance with Automated Contracts_ 📊
Author: KizunaSafe
Latest version: 1.1.2

## Features

🏢 _Revolutionize Insurance with Automated Contracts_ 📊

Introducing our powerful library that transforms the insurance industry! 🚀 By seamlessly integrating our library into your organization's systems, you can automate the generation and management of insurance contracts, saving time and boosting efficiency. 💼💪

✏️ _Customizable and Tailored to Your Needs_ 🎛️
Our library offers unparalleled flexibility! You have full control to override virtual functions and adapt the insurance contract process to fit your unique business requirements. 🔄 This ensures a seamless integration with your existing workflows and makes managing insurance contracts a breeze. ✨

⚙️ _Automate with Chainlink Keepers_ ⏰
Say goodbye to manual intervention! By leveraging Chainlink Keepers, our library automates tasks within the insurance contract lifecycle. 🤖 Schedule and trigger policy renewals, premium payments, and claim settlements based on predefined conditions, reducing errors and streamlining operations. ⚡️

💱 _Accurate Price Conversions with Chainlink Price Feeds_ 📈
No more guesswork! Our library integrates Chainlink Price Feeds to provide real-time and trustworthy market data. 💹 Ensure premium calculations, claim payouts, and financial transactions within insurance contracts are based on up-to-date information. Transparency and reliability guaranteed! 🔒

🔗 _Seamless Integration with External Systems_ 🌐
Bridge the gap between insurance contracts and external systems effortlessly! Our library enables easy API calls via Chainlink, allowing you to access and integrate data from various sources. 📡 Retrieve information for policy underwriting, validate claims, and perform other crucial tasks with speed and security. 💡

Experience a new era of insurance management with our cutting-edge library! 🌟 Streamline processes, boost efficiency, and deliver exceptional services to your clients. Join the future of insurance today! 🚀💼💡

## Details

Please refer to our documentation to quick start your own project using our **KizunaSafe Library** 🚀🚀🚀

**[Documentation](https://kizunasafe.netlify.app/)**
npm package: @kizuren/elysia-openapi
Description: Plugin for Elysia to auto-generate API documentation
Author: kizuren
Latest version: 1.4.17

# @elysiajs/openapi
Plugin for [elysia](https://github.com/elysiajs/elysia) to auto-generate API documentation page.

## Installation
```bash
bun add @elysiajs/openapi
```

## Example
```typescript
import { Elysia, t } from 'elysia'
import { openapi } from '@elysiajs/openapi'

const app = new Elysia()
    .use(openapi())
    .get('/', () => 'hi', { response: t.String({ description: 'sample description' }) })
    .post(
        '/json/:id',
        ({ body, params: { id }, query: { name } }) => ({
            ...body,
            id,
            name
        }),
        {
            params: t.Object({
                id: t.String()
            }),
            query: t.Object({
                name: t.String()
            }),
            body: t.Object({
                username: t.String(),
                password: t.String()
            }),
            response: t.Object({
                username: t.String(),
                password: t.String(),
                id: t.String(),
                name: t.String()
            }, { description: 'sample description' })
        }
    )
    .listen(8080);
```

Then go to `http://localhost:8080/openapi`.

# config

## enabled
@default true
Enable/Disable the plugin

## documentation
OpenAPI documentation information

@see https://spec.openapis.org/oas/v3.0.3.html

## exclude
Configuration to exclude paths or methods from documentation

## exclude.methods
List of methods to exclude from documentation

## exclude.paths
List of paths to exclude from documentation

## exclude.staticFile
@default true

Exclude static file routes from documentation

## exclude.tags
List of tags to exclude from documentation

## path
@default '/openapi'

The endpoint to expose OpenAPI documentation frontend

## provider
@default 'scalar'

OpenAPI documentation frontend between:
- [Scalar](https://github.com/scalar/scalar)
- [SwaggerUI](https://github.com/swagger-api/swagger-ui)
- null: disable frontend

## documentations
Configure multiple OpenAPI documents while keeping a single documentation UI.

Each entry supports:
- `name`
- `specPath`
- `documentation`
- `exclude`

When `provider` is `scalar`, multiple entries appear in the Scalar source dropdown.
Each entry registers its own JSON spec route while the UI remains at the single `path`.

## references
Additional OpenAPI reference for each endpoint

## scalar
Scalar configuration, refers to [Scalar config](https://github.com/scalar/scalar/blob/main/documentation/configuration.md)

## specPath
@default '/${path}/json'

The endpoint to expose OpenAPI specification in JSON format

## swagger
Swagger config, refers to [Swagger config](https://swagger.io/docs/open-source-tools/swagger-ui/usage/configuration/)
npm package: @kizzlebot/kiz-di
Description: A small wrapper around the [Awilix](https://github.com/jeffijoe/awilix) dependency injection package.
Author: James Choi
Latest version: 1.0.3

# Flex DI

A small wrapper around the [Awilix](https://github.com/jeffijoe/awilix) dependency injection package.

Only supports register as value.

## Example

```js
const { createContainer, register, load, injectFn, injectObj, pipe } = require('@flexshopper/flex-di');

const start = () => {
  return createContainer({ basePath: __dirname })
    .then(pipe(load('./clients/*.js'), injectFn, register('Client')))
    .then(pipe(load('./services/*.js'), injectFn, register('Service')))
    .then(pipe(load('./repositories/*.js'), injectObj, register('Repository')));
};
```
npm package: @kizzlebot/react-blur-admin
Description: React Blur Admin - Styles And Components
Author: Consolidated Knowledge
Latest version: 0.11.1

# React Blur Admin
All credit for the theme goes to [akveo](http://akveo.com/blur-admin/), this is just a React implementation.

Note: This is currently partial implementation of Blur Admin. This repo includes styles from Blur Admin that are required for pages and components to load correctly and the components themselves.

Individual pages/demos/layouts can be found in the [React Webpack Skeleton repo](https://github.com/knledg/react-webpack-skeleton).

### Build Status

[![CircleCI](https://circleci.com/gh/knledg/react-blur-admin/tree/master.svg?style=svg)](https://circleci.com/gh/knledg/react-blur-admin/tree/master)

### Currently Implemented

- Text Inputs
- Buttons
- Editable Fields
- Loading Spinner
- Tables (not including smart tables)
- Tabs
- Switches
- Select Dropdowns
- Progress Bars
- Panels
- Pages
- Textareas
- Pagination (diverged from Blur's implementation slightly for additional flexibility)
- Notifications
- Alerts

### Needs Implementation

- Accordions
- Sliders
- Searchable table columns
- Tags Inputs

## Semver

Before the v1.0.0 release, a minor update will represent breaking changes and a patch will represent feature enhancements or bug fixes.

## Contributing

This is an active project and we'd love your help! Please submit small pull requests. You can make sure tests and lint passes by running `npm run lint && npm run test` before committing.

You can also add the `.git/hooks/pre-push` with the following:

```
#!/usr/bin/env bash

npm run lint && npm run test
```

And making it executable with `chmod ugo+x .git/hooks/pre-push`

## Example Usage

A React Webpack Skeleton implementing the layout for React Blur Admin and using it's components will be uploaded and linked shortly. You can see how each component is implemented by looking at the source code for each of the demo pages.

## Dependencies
- Bootstrap CSS
- Bootstrap-Select CSS
- Bootstrap-Switch CSS
- Blur CSS
- EventEmitter implemented in lib/event-bus so that notifications can listen for a new notification from anywhere without any specific implementation of flux
- Utilizes Flexbox for columns/rows
npm package: @kizzlebot/react-flex-proto
Description: React Flexbox Implementation For Quickly Prototyping
Author: Jason Walsh
Latest version: 1.0.2

# React-Flex-Proto
Note: This is a partial implementation of Flex to quickly prototype responsive projects

It does not implement Flex Direction of "Col", or allow Flex items to grow by more than a scale of one.

Cells can choose to grow/shrink or not, and if not, they will remain at their initial basis size which can be automatically calculated if `basis` is not passed, otherwise you can pass in a fixed width: `basis='100px'`

## Example Usage

```javascript
import 'react-flexbox/styles/flex.css';

render() {
  return (
    <Row>
      <Col>
        <input
          type='text'
          value={this.state.value}
          onChange={this.onTextChange.bind(null, 'value')} />
      </Col>
      <Col align='right' grow={false} shrink={false}>
        <button className='btn-primary' onClick={this.onAdd}>
          <i className='fa fa-plus' /> Add
        </button>
      </Col>
    </Row>
  );
}
```
npm package: @kj/tslint-rules
Description: tslint rules used on KickJump projects
Author: Ifiok Jr.
Latest version: 2.0.1

# @kj/tslint-rules

This is a pretty strict tslint configuration for your project.

It comes with a base configuration and a react specific configuration.

## Installation

```bash
yarn add prettier tslint typescript # Required peer dependencies
yarn add @kj/tslint-rules
```

In your tslint.json file add something like the following.

```json
{
  "extends": ["@kj/tslint-rules/react"],
  "rules": {
    "no-implicit-dependencies": [
      true,
      "dev",
      [
        "jest-axe",
        "jest",
        "jest-dom",
        "react-testing-library",
        "@test-utils",
        "@storybook",
        "jest-extended",
        "prosemirror-test-builder"
      ]
    ],
    "no-empty": false,
    "no-any": false,
    "no-object-literal-type-assertion": false,
    "no-console": false,
    "max-classes-per-file": false
  }
}
```

The important line contains `"extends": ["@kj/tslint-rules/react"]`.

If you don't need to support react then you can use `"extends": ["@kj/tslint-rules/base"]` instead.
npm package: @kj800x/localproxy
Description: DEPRECATED: An API to dynamically configure nginx for static and reverse proxy routes
Author: Kevin Johnson
Latest version: 0.0.2

# Deprecated

This monopackage has been split into separate package and deprecated.

* localproxy-cli includes the CLI script
* localproxy-client includes JS clients for the app configuring API
* localproxy-react-scripts includes a react-scripts wrapper which automounts the app when the React app is started.
* localproxy-server isn't published on NPM since it's packaged as a deb file and is available from [the github](https://github.com/kj800x/localproxy)
  * This also contains proxy-ui, the web ui for localproxy
npm package: @kj800x/react-native-opus-decode
Description: Opus Decode
Latest version: 0.0.1

# react-native-opus-decode

Opus decoder for react-native (only iOS is currently supported).

## Installation

```sh
npm install @kj800x/react-native-opus-decode
```

## Usage

```js
import { decodeOpus } from '@kj800x/react-native-opus-decode';

// ...

const localWavPath = await decodeOpus('https://filesamples.com/samples/audio/opus/sample4.opus');
```

## Contributing

See the [contributing guide](CONTRIBUTING.md) to learn how to contribute to the repository and the development workflow.

## License

MIT
npm package: @kj800x/skip-dependency
Description: Skip pesky dependencies with ease (any node version)
Author: @kj800x
Latest version: 1.1.4

# Skip Dependency

**_Note: This is only designed to work with Yarn, not NPM, nor pnpm!!!_**

**Note2: This might work with pnpm "overrides", however it is untested.**

This is for when some dependency you're pulling in is forcing some other dependency you just don't like.
You can use skip-dependency to force the skipping of said dependency.

Just add the following to your `package.json`:

```json
{
  "resolutions": {
    "package-you-really-want-to-skip": "https://registry.yarnpkg.com/@favware/skip-dependency/-/skip-dependency-1.1.3.tgz"
  }
}
```