open-index/open-npm huggingface dataset:
npm package: @kimchiswap/sdk
Description: 🛠 An SDK for building applications on top of Kimchiswap.
Latest version: 1.0.2

# Kswap SDK

[![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat-square)](https://github.com/prettier/prettier)


In-depth documentation on this SDK is available at [kimchiswap.org](https://kimchiswap.org/docs/v1/SDK/getting-started/).

## Running tests

To run the tests, follow these steps. You must have at least node v10 and [yarn](https://yarnpkg.com/) installed.

First clone the repository:

```sh
git clone https://github.com/Kimchiswap/kswap-sdk.git
```

Move into the kswap-sdk working directory

```sh
cd kswap-sdk/
```

Install dependencies

```sh
yarn install
```

Run tests

```sh
yarn test
```

You should see output like the following:

```sh
yarn run v1.22.4
$ tsdx test
 PASS  test/constants.test.ts
 PASS  test/pair.test.ts
 PASS  test/fraction.test.ts
 PASS  test/miscellaneous.test.ts
 PASS  test/entities.test.ts
 PASS  test/trade.test.ts

Test Suites: 1 skipped, 6 passed, 6 of 7 total
Tests:       3 skipped, 82 passed, 85 total
Snapshots:   0 total
Time:        5.091s
Ran all test suites.
✨  Done in 6.61s.
```
npm package: @kimcookieya/presetting.js
Description: 내가 쓰려고 만든 js, ts 프론트엔드 프로젝트를 위한 프리셋.
Author: KimCookieYa
Latest version: 1.0.1

# presetting.js

내가 쓰려고 만든 js, ts 프론트엔드 프로젝트를 위한 프리셋.
npm package: @kimcore/hcs.js
Description: 교육부 학생 건강상태 자가진단 라이브러리
Author: kimcore
Latest version: 2.1.5

[![hcs.js](https://i.imgur.com/1vyc4eU.png)](https://hcs.js.org)
[![npm version](https://img.shields.io/npm/v/hcs.js.svg?style=for-the-badge)](https://www.npmjs.org/package/hcs.js) [![install size](https://img.shields.io/bundlephobia/min/hcs.js?style=for-the-badge)](https://packagephobia.com/result?p=hcs.js) [![npm downloads](https://img.shields.io/npm/dm/hcs.js.svg?style=for-the-badge)](http://npm-stat.com/charts.html?package=hcs.js) [![license](https://img.shields.io/github/license/kimcore/hcs.js?style=for-the-badge)](https://github.com/kimcore/hcs.js/blob/master/LICENSE) [![docs](https://img.shields.io/static/v1?label=docs&message=hcs.js.org&color=06beb6&style=for-the-badge)](https://hcs.js.org)

hcs.js는 교육부 학생 건강상태 자가진단 라이브러리입니다.

거의 모든 자가진단 관련 API를 사용할 수 있으며, 자신만의 자가진단 사이트를 만들거나 자동 자가진단 봇 등을 만들 때 사용할 수 있습니다.

시작하려면, [hcs.js.org](https://hcs.js.org)에 방문하여 사용법에 대해 알아보세요.

### 기능
- 학교 검색
- 학생 로그인
- 학생 정보 확인
- 개인정보처리방침 동의
- 자가진단 설문 제출
npm package: @kimenzo/bento-mcp
Description: Official MCP server for Bento API
Author: Kimenzo
Latest version: 1.2.5

# Bento MCP Server

`@kimenzo/bento-mcp` is the Bento MCP server for the local Bento desktop API.

It turns Bento's OpenAPI surface into MCP tools so Claude, Cursor, LM Studio, and other MCP clients can search spaces, create objects, manage templates, and operate on Bento data through natural language.

The package is MIT-licensed and is maintained in this fork:

- Repository: `https://github.com/Kimenzo/anytype-mcp`
- npm package: `@kimenzo/bento-mcp`

## Quick Start

### 1. Create an API key in Bento

1. Open Bento Desktop.
2. Go to `Settings`.
3. Open `API Keys`.
4. Create a new key.

You can also generate a ready-to-copy config snippet from the CLI:

```bash
npx -y @kimenzo/bento-mcp get-key
```

### 2. Configure your MCP client

Use this snippet in Claude Desktop, Cursor, Windsurf, Raycast, or any MCP-compatible client:

```json
{
  "mcpServers": {
    "bento": {
      "command": "npx",
      "args": ["-y", "@kimenzo/bento-mcp"],
      "env": {
        "OPENAPI_MCP_HEADERS": "{\"Authorization\":\"Bearer <YOUR_API_KEY>\", \"Bento-Version\":\"2025-11-08\"}"
      }
    }
  }
}
```

The server will translate `Bento-Version` to the legacy `Anytype-Version` header automatically when talking to the current backend, so Bento branding and backend compatibility can coexist during migration.

### Claude Code

```bash
claude mcp add bento \
  -e OPENAPI_MCP_HEADERS='{"Authorization":"Bearer <YOUR_API_KEY>", "Bento-Version":"2025-11-08"}' \
  -s user -- npx -y @kimenzo/bento-mcp
```

### Global install

```bash
npm install -g @kimenzo/bento-mcp
```

Then point your MCP client at `bento-mcp`.

## Custom API Base URL

By default, the server connects to `http://127.0.0.1:31009`.

Preferred override:

- `BENTO_API_BASE_URL`

Legacy compatibility fallback:

- `ANYTYPE_API_BASE_URL`

Example:

```json
{
  "mcpServers": {
    "bento": {
      "command": "npx",
      "args": ["-y", "@kimenzo/bento-mcp"],
      "env": {
        "BENTO_API_BASE_URL": "http://localhost:31012",
        "OPENAPI_MCP_HEADERS": "{\"Authorization\":\"Bearer <YOUR_API_KEY>\", \"Bento-Version\":\"2025-11-08\"}"
      }
    }
  }
}
```

## Development

Clone and build locally:

```bash
git clone https://github.com/Kimenzo/anytype-mcp.git
cd anytype-mcp
npm install
npm run build
```

Useful commands:

```bash
npm run dev
npm run test
npm run typecheck
npm run lint
npm run pack:check
```

## Publishing

The package is already prepared for public npm publishing:

- package name: `@kimenzo/bento-mcp`
- public access enabled through `publishConfig.access`
- `prepublishOnly` runs build, tests, and typecheck before publish

Publish flow:

```bash
npm login
npm run pack:check
npm publish --access public
```

## Notes

- The package ships both `bento-mcp` and `anytype-mcp` CLI bin aliases for transition safety.
- The runtime is Bento-branded, but still preserves current backend compatibility where the API surface still exposes `Anytype-Version`.

Licensed under [MIT](./LICENSE.md).
npm package: @kimera/workinator
Description: Run your CPU intensive functions in a separate thread on the fly, and keep your application running at 60FPS.
Author: Kanit Sharma
Latest version: 0.1.5

<p align="center" ><img src="docs/logo.png" width="200"/></p>

<h1 align="center"> Workinator</h1>

<p align="center">
  <a href="https://github.com/prettier/prettier">
        <img src="https://img.shields.io/badge/code_style-prettier-ff69b4.svg" alt="prettier"/>
  </a>
<a href="https://github.com/rajatsharma/enginite">
        <img src="https://img.shields.io/badge/enginite-generator-orange.svg" alt="enginite"/>
  </a>
  <a href="https://packagephobia.now.sh/result?p=@kimera/workinator">
  <img src="https://packagephobia.now.sh/badge?p=@kimera/workinator" alt="workinator">
  </a>
</p>

> Run your CPU intensive functions in a separate thread on the fly, and keep your application running at 60FPS.

- Works on both Browser or Nodejs
- Minimal API
- Tiny package, ~1KB gzipped
- Supports both synchronous or asynchronous code.
- Automatically cleans up memory after worker thread is finished executing.

## Getting Started

```javascript
  yarn add @kimera/workinator
  // or
  npm i @kimera/workinator
```

## How it works

```javascript
import workinator from '@kimera/workinator';

const work = () => {
  // blocking thread for 2 secs
  const start = new Date().getTime();
  while (new Date().getTime() < start + 2000) {}

  return 'Work finished';
};

const main = async () => {
  const status = await workinator(work);
  console.log(status);
};

main();
```

### Thats it!.

## Async with promises

```javascript
import workinator from '@kimera/workinator';

workinator(
  () =>
    new Promise(resolve => {
      setTimeout(() => {
        resolve('Work Finished');
      }, 2000);
    }),
).then(console.log);

// or

const sleep = ms => new Promise(resolve => setTimeout(resolve, ms));

workinator(async () => {
  await sleep(2000);
  return 'Work Finished';
}).then(console.log);
```

## Using Dependencies

Worker functions inside workerinator does not allow using closures, since its executed inside a different thread. So, instead what we can do is inject these dependencies as the second argument of workerinator and you will receive the dependencies as arguments inside worker function in their respective order.

### Example

```javascript
import workinator from '@kimera/workinator';

const log = x => console.log(x);

workinator(
  logger =>
    new Promise(resolve => {
      logger('Dependency working');
    }),
  log,
)
```
npm package: @kimheeje/study-clone-toss-stock
Description: ----
Author: Kim HeeJe
Latest version: 0.0.5

# Npm Test project

----

# React + TypeScript + Vite

This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules.

Currently, two official plugins are available:

- [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react/README.md) uses [Babel](https://babeljs.io/) for Fast Refresh
- [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react-swc) uses [SWC](https://swc.rs/) for Fast Refresh

## Expanding the ESLint configuration

If you are developing a production application, we recommend updating the configuration to enable type aware lint rules:

- Configure the top-level `parserOptions` property like this:

```js
export default {
  // other rules...
  parserOptions: {
    ecmaVersion: 'latest',
    sourceType: 'module',
    project: ['./tsconfig.json', './tsconfig.node.json'],
    tsconfigRootDir: __dirname,
  },
}
```

- Replace `plugin:@typescript-eslint/recommended` to `plugin:@typescript-eslint/recommended-type-checked` or `plugin:@typescript-eslint/strict-type-checked`
- Optionally add `plugin:@typescript-eslint/stylistic-type-checked`
- Install [eslint-plugin-react](https://github.com/jsx-eslint/eslint-plugin-react) and add `plugin:react/recommended` & `plugin:react/jsx-runtime` to the `extends` list
npm package: @kimhongyeon/use-lock-body-scroll
Description: A React hook to lock body scroll
Author: kimhongyeon
Latest version: 1.0.2

# @kimhongyeon/use-lock-body-scroll

A React hook to lock body scroll.

In many similar libraries, only the body overflow is set to hidden.

However, this approach may not work well in various situations. For example, when displaying a layer popup, the internal scroll should work while the body scroll should not.

This library not only sets the overflow to hidden but also sets the position to fixed, fundamentally preventing the body from moving. It also remembers the scroll position and restores it when the lock is released.

## Installation

```bash
npm install @kimhongyeon/use-lock-body-scroll
```
Or
```bash
yarn add @kimhongyeon/use-lock-body-scroll
```

## Usage
```jsx
import React, { useState } from 'react';
import { useLockBodyScroll } from '@kimhongyeon/use-lock-body-scroll';

const App = () => {
  const [isLocked, setIsLocked] = useState(false);

  useLockBodyScroll(isLocked);

  return (
    <div>
      <button onClick={() => setIsLocked(!isLocked)}>
        {isLocked ? 'Unlock Scroll' : 'Lock Scroll'}
      </button>
    </div>
  );
};

export default App;
```

## Options
useLockBodyScroll hook can take an options object as the second argument.
- lockDelay (default: 0): The delay before applying the scroll lock (in milliseconds).
- resetBodyScrollWhenLocking (default: false): Whether to reset the body scroll when locking.

## Contributing
Please submit bug reports and feature requests through the [issue tracker](https://github.com/kimhongyeon/use-lock-body-scroll/issues).  

## License
This project is licensed under the MIT License. See the [LICENSE](https://github.com/kimhongyeon/use-lock-body-scroll/LICENSE) file for details.
npm package: @kimhongyeon/use-stable-prevent-zoom
Description: A lightweight, zero-dependency React hook that safely prevents unwanted viewport zoom on input focus, restoring zoom levels smoothly on blur. Ideal for better UX on iOS.
Author: kimhongyeon
Latest version: 1.0.3

# @kimhongyeon/use-stable-prevent-zoom

This React hook is designed to address the issue of automatic zoom-in when focusing on input fields within iOS browsers or webviews. It is zero dependency and adopts the method of controlling the viewport instead of adjusting the font size to 16px or more, as adjusting the font size may not allow for design intent.

The hook prevents zooming through the viewport when touch starts and restores the original viewport on blur, ensuring stability. It is compatible with both Next.js App Router and Page Router. In the case of the Next.js App Router, the viewport may disappear and reappear at will, but it works well even if this phenomenon occurs.

## Installation

```bash
npm install @kimhongyeon/use-stable-prevent-zoom
```
Or
```bash
yarn add @kimhongyeon/use-stable-prevent-zoom
```

## Usage
```jsx
import React, { useState } from 'react';
import { useStablePreventZoom } from '@kimhongyeon/use-stable-prevent-zoom';

const App = () => {
  useStablePreventZoom();
  
  return <>...</>;
};

export default App;
```

## Usage - Next.js App Router (app/layout.tsx)
```tsx
'use client'; // It must be a client component. If you are using RootLayout as a server component, you need to create a separate client component and include it in the RootLayout.

import React, { useState } from 'react';
import { useStablePreventZoom } from '@kimhongyeon/use-stable-prevent-zoom';

const RootLayout = () => {
  useStablePreventZoom();

  return <html>...</html>;
};

export default RootLayout;
```

## Usage - Next.js Page Router (pages/_app.tsx)
```tsx
import React, { useState } from 'react';
import { useStablePreventZoom } from '@kimhongyeon/use-stable-prevent-zoom';
import type { AppProps } from 'next/app';

const MyApp = ({ Component, pageProps }: AppProps) => {
  useStablePreventZoom();

  return (
    <Component {...pageProps} />
  );
};

export default MyApp;
```

## Contributing
Please submit bug reports and feature requests through the [issue tracker](https://github.com/kimhongyeon/use-stable-prevent-zoom/issues).  

## License
This project is licensed under the MIT License. See the [LICENSE](https://github.com/kimhongyeon/use-stable-prevent-zoom/LICENSE) file for details.
npm package: @kimhwanhoon/date-format-util
Description: A collection of utility functions for date formatting with various output formats
Author: Hwanhoon Kim
Latest version: 1.0.1

# Date Format Utility

A collection of utility functions for date formatting.

## Installation
```npm install @kimhwanhoon/date-format-util```

## Usage
```typescript
import { formatDate, convertDate, getSmartDate } from '@kimhwanhoon/date-format-util';

// Format a date to various outputs
const isoDate = formatDate('2023-01-03', 'ISO');
const relativeDate = formatDate(Date.now(), 'relative');
const customDate = formatDate(new Date(), 'YYYY-MM-DD');

// Simple conversion
const converted = convertDate('2023-01-03', 'MMM D, YYYY');

// Smart date formatting
const smartDate = getSmartDate(new Date());
```

## Available Output Formats

- `ISO` - ISO string format
  ```typescript
  formatDate('2023-05-15', 'ISO')
  // Output: "2023-05-15T00:00:00.000Z"
  ```

- `YYYY-MM-DD` - Basic date format
  ```typescript
  formatDate('2023-05-15T14:30:00Z', 'YYYY-MM-DD')
  // Output: "2023-05-15"
  ```

- `YYYY-MM-DD HH:MM` - Date with time
  ```typescript
  formatDate('2023-05-15T14:30:00Z', 'YYYY-MM-DD HH:MM')
  // Output: "2023-05-15 14:30"
  ```

- `MMM D, YYYY` - Abbreviated month with year
  ```typescript
  formatDate('2023-05-15', 'MMM D, YYYY')
  // Output: "May 15, 2023"
  ```

- `MMMM D, YYYY` - Full month name with year
  ```typescript
  formatDate('2023-05-15', 'MMMM D, YYYY')
  // Output: "May 15, 2023"
  ```

- `MMM D, HH:mm` - Abbreviated month with time
  ```typescript
  formatDate('2023-05-15T14:30:00Z', 'MMM D, HH:mm')
  // Output: "May 15, 14:30"
  ```

- `MMM D YYYY, HH:mm` - Full date and time
  ```typescript
  formatDate('2023-05-15T14:30:00Z', 'MMM D YYYY, HH:mm')
  // Output: "May 15 2023, 14:30"
  ```

- `timestamp-seconds` - Unix timestamp in seconds
  ```typescript
  formatDate('2023-05-15T14:30:00Z', 'timestamp-seconds')
  // Output: 1684150200
  ```

- `timestamp-ms` - Unix timestamp in milliseconds
  ```typescript
  formatDate('2023-05-15T14:30:00Z', 'timestamp-ms')
  // Output: 1684150200000
  ```

- `relative` - Relative time (e.g., '2 hours ago')
  ```typescript
  formatDate(new Date(Date.now() - 7200000), 'relative')
  // Output: "2 hours ago"
  ```

- `month-day` - Month and day only
  ```typescript
  formatDate('2023-05-15', 'month-day')
  // Output: "May 15"
  ```

- `custom` - Custom format using date-fns tokens
  ```typescript
  formatDate('2023-05-15', 'custom', { customFormat: 'dd/MM/yyyy' })
  // Output: "15/05/2023"
  ```
# date-format-util
npm package: @kimi-tools/picture
Description: A CLI tool to find and remove duplicate images
Author: Kimi Tools
Latest version: 1.2.7

# Kimi Picture Deduplicator

Kimi Picture Deduplicator 是一个智能的图片去重工具，可以帮助你快速识别并安全地移除重复的图片文件。

## 功能特性

- 🔄 **智能重复检测**：基于图像内容而非文件名来检测重复图片
- 🛡️ **安全删除流程**：将重复文件移动到 "delete" 文件夹而不是直接删除
- 📁 **条件性删除文件夹**：仅在发现重复文件时创建 "delete" 文件夹
- 📂 **深度遍历**：支持递归扫描子目录中的所有图片文件
- 🗂️ **拍平文件夹结构**：将深层目录结构中的文件整理到统一目录
- 🧹 **空文件夹清理**：自动清理处理后留下的空目录
- ⚡ **高性能处理**：通过缩略图处理加速重复检测过程
- 🖼️ **多格式支持**：支持 JPG, PNG, GIF, BMP, TIFF, WebP 等常见图片格式
- ✨ **智能重命名**：支持按时间戳或随机数重命名图片文件

## 安装要求

在使用之前，请确保已安装以下依赖：

### 系统依赖

- **libvips**: 高性能图片处理库

在 macOS 上安装 libvips：
```bash
brew install vips
```

在 Ubuntu/Debian 上安装 libvips：
```bash
sudo apt-get install libvips-dev
```

### Node.js 依赖

```bash
npm install
```

## 使用方法

### 命令行使用

```bash
# 基本使用 - 扫描当前目录
kimi-pic repeat

# 深度遍历模式 - 递归扫描所有子目录
kimi-pic repeat -d

# 拍平文件夹结构 - 将子目录中的文件移到顶层并保持唯一性
kimi-pic flat

# 显示版本号
kimi-pic version

# 按随机数重命名当前目录中的图片
kimi-pic rename -r

# 按时间戳重命名当前目录中的图片（无时间信息时使用随机数）
kimi-pic rename -t
```

### 开发模式运行

```bash
# 克隆项目后，进入 picture 目录
cd packages/picture

# 运行命令
node bin/pic.js repeat
```

## 参数说明

| 参数 | 别名 | 描述 |
|------|------|------|
| `--deep` | `-d` | 深度遍历文件夹，递归扫描所有子目录 |

### 命令说明

| 命令 | 描述 |
|------|------|
| `repeat` | 查找并移动重复图片 |
| `flat` | 将所有图片移动到当前目录 |
| `version` | 显示版本号 |
| `rename` | 重命名当前目录中的图片文件 |
| `rename -r` | 使用10位随机数重命名当前目录中的所有图片 |
| `rename -t` | 使用图片创建时间重命名当前目录中的所有图片（无时间信息时使用随机数） |

## 工作原理

1. **扫描阶段**：遍历指定目录中的所有文件，识别图片文件
2. **处理阶段**：为每张图片生成内容哈希值（基于缩略图）
3. **比较阶段**：比较哈希值以识别重复图片
4. **移动阶段**：将重复文件移动到 "delete" 文件夹
5. **清理阶段**：根据选项清理空目录

## 安全机制

- **非破坏性操作**：始终将文件移动到 "delete" 文件夹而非直接删除
- **条件性创建**："delete" 文件夹仅在发现重复文件时创建
- **用户确认**：需要用户手动确认后才能永久删除文件
- **进度显示**：实时显示处理进度和统计信息

## 输出示例

```
正在扫描目录: /path/to/your/photos
目录中共有 1250 个文件:
  ├─ 图片文件: 1200
  └─ 非图片文件: 50

[██████████████████████████████████████████████████] 100% (1200/1200)

处理完成！
=== 处理统计 ===
总文件数: 1250
图片文件: 1200
非图片文件: 50
重复文件: 150

已移动的文件:
1. IMG_0001.jpg (哈希: a1b2c3d4e5f6...)
2. DSC_0001.jpg (哈希: a1b2c3d4e5f6...)
...

请检查 "delete" 文件夹中的文件，确认无误后可手动删除它们。
```

## 注意事项

1. 工具只会处理支持的图片格式文件
2. 对于损坏或无法读取的图片文件会跳过并显示错误信息
3. 拍平模式下，来自不同子目录的同名文件会被自动重命名
4. 处理大量文件时可能需要一些时间，请耐心等待

## 贡献

欢迎提交 Issue 和 Pull Request 来改进这个工具。