open-index/open-npm huggingface dataset:
npm package: @fhswf/tagflip-common
Description: Shared files for TagFlip-Projects.
Author: Timo Neuhaus
Latest version: 2.0.0

![release](https://github.com/fhswf/tagflip-common/workflows/release/badge.svg)

# Tagflip 

[Tagflip](https://jupiter.fh-swf.de/tagflip) is an online tagging tool similar to [BRAT](https://brat.nlplab.org/) or [WebAnno](https://webanno.github.io/webanno/).

## Why another online tagging tool?
While BRAT is rather lightweight, it runs only on UNIX-like environments and is a little outdated (Python 2.5 and CGI interface).
WebAnno is actively maintained, but it uses a UI based on Whicket and the code is quite complex.

Tagflip consists of a Node.js backend (which can be deployed as a docker container, if you like) and a lightweight React frontend. 

## tagflip-common
This npm package contains the code shared between backend and frontend.
npm package: @fhsy/demo
Description: demo
Author: fhsy
Latest version: 0.1.0

# x-tool

> x-tool 是一个小的表格表单工具库，基于 ElementUI 框架二次封装 Table Form 组件 ，降低重复简单代码重写，提高工作效率，使 vue 代码非常简洁优雅，让 vue 语言也可以“甜甜的”。

##  [x-tool 文档](https://fhs1.gitee.io/x-tool/#/)
npm package: @fhsy/x-tool
Description: X 数据表格 X 数据表单
Author: fhsy
Latest version: 0.5.7

# x-tool

> x-tool 是一个小的表格表单工具库，基于 ElementUI 框架二次封装 Table Form 组件 ，降低重复简单代码重写，提高工作效率，使 vue 代码非常简洁优雅，让 vue 语言也可以“甜甜的”。

##  [x-tool 文档](https://fhs1.gitee.io/x-tool/#/)
npm package: @fhuacho/platzom
Description: Traductor de idioma platzom
Author: Francisco Huahco
Latest version: 0.1.0

# Platzom

Platzom es un idioma inventado para el [Curso de Fundamentos de JS](https://platzi.com/js) de platzi

## Descripción del idioma
- Si la palabra termina con "ar", se le quitan esas dos letras.
  ejemplo:
    paltzom("Programar") //devuelve "Program"
- Si la palabra inicia con Z, se le añade "pe" al final.
  ejemplo:
    platzom("zorro") //devuelve "zorrope"
    platzom("zarpar") //devuelve "zarppe", por la regla 1
- Si la palabra traducida tiene 10 o más letras, se debe partir en dos por la mitad y unir con un guion medio.
  ejemplo:
    platzom("abecedario") //devuelve "abece-dario"
- Por último, si la palabra original es un palíndromo, 
   ninguna regla anterior cuenta y se devuelve la misma palabra 
   pero intercalando letras mayúsculas y minúsculas.
  ejemplo:
    platzom("sometemos") // devuelve "SoMeTeMoS"

## Instalación

```
npm install platzom
```

## Uso
```
import platzom from 'platzom'

console.log(platzom('Programar')); //Program
console.log(platzom('Zorro')); // Zorrope
console.log(platzom('Zarpar')); // Zarppe
console.log(platzom('abecedario')); // abece-dario
console.log(platzom('sometemos')); // SoMeTeMoS
```

## Créditos

- [Francisco Huacho](https://twitter.com/@JhersonHuacho)

##  Licencia
[MIT](https://opensource.org/licenses/MIT)
npm package: @fhuang/form-pilot-core
Description: FormPilot core - framework-agnostic form semantics and adapter contracts
Latest version: 0.1.6

# @fhuang/form-pilot-core

FormPilot 的表单智能内核，提供框架无关、运行时无关、UI 无关的表单语义与适配器契约。该包仅作为内部基础设施被 `@fhuang/form-pilot-vue` 与 `@fhuang/form-pilot-mcp-client` 使用，业务应用不应直接依赖本包。

## 依赖

- 运行时：无强制外部运行时依赖（作为库被其他包使用）
- 开发：`typescript`（工作区安装）

> 设计目标：核心仅定义“表单是什么/能做什么”，不包含 UI 渲染、DOM 访问、AI/MCP 逻辑或具体 UI 库 API。

## 安装

- 工作区（Monorepo）自动管理，内部包通过 `workspace:*` 依赖引用本包。

## 核心概念与类型

- `FormSchema`/`FormFieldSchema`/`ValidationRule`：可序列化的表单结构描述（字段、类型、必填、校验规则、标签等）
- `FormAdapter`：对真实表单实例的统一操作契约（提取 schema、读写值、校验、提交）
- `FormRuntime`：运行时上下文（实例、适配器、规范化 schema、生命周期钩子）
- `FormLifecycleHooks`：在 set/validate/submit 前后插入可审计的钩子

## 快速使用（库内部或适配器层）

```ts
import {
  defineAdapter,
  createFormRuntime,
  setValues,
  getValues,
  validate,
  submit,
} from '@fhuang/form-pilot-core'

// 1) 定义一个适配器（示意：根据你的 UI 表单实例提供能力）
const MyAdapter = defineAdapter({
  id: 'my-form-adapter',
  capabilities: ['schema', 'values', 'validate', 'submit'],
  create: () => ({
    isMatch: (instance) => typeof instance === 'object',
    extractSchema: (instance) => ({ fields: [{ id: 'name', type: 'string', required: true }] }),
    getValues: (instance) => ({ name: instance.name }),
    setValues: (instance, values) => { Object.assign(instance, values) },
    validate: (instance) => ({ valid: !!instance.name, issues: instance.name ? [] : [{ fieldId: 'name', message: 'required' }] }),
    submit: async (instance) => ({ ok: true, data: instance }),
  }),
})

// 2) 创建运行时（自动探测适配器并规范化 schema）
const runtime = createFormRuntime(formInstance, { adapters: [MyAdapter], hooks: {
  beforeSet: async ({ instance, next }) => {},
  beforeValidate: async ({ instance }) => {},
  beforeSubmit: async ({ instance }) => {},
}})

// 3) 使用桥接方法执行操作
await setValues(runtime, { name: 'Alice' })
const values = getValues(runtime)
const result = await validate(runtime)
const submitRes = await submit(runtime)
```

## 运行

- 工作区脚本

```bash
pnpm -w run typecheck
pnpm -w run build
```

- 仅构建 core

```bash
pnpm --filter @fhuang/form-pilot-core run typecheck
pnpm --filter @fhuang/form-pilot-core run build
```

## 扩展开发

- 适配器系统
  - 使用 `defineAdapter` 声明适配器能力，通过 `isMatch()` 按实例能力选择适配器
  - 在 `createFormRuntime()` 中传入多个适配器以便运行时自动探测
- schema 规范化
  - 通过核心的 `normalizeSchema` 保证字段 `id/type/required/rules` 等稳定与可序列化
- 生命周期钩子
  - 在 `hooks` 中定义 `beforeSet/afterSet/beforeValidate/beforeSubmit` 以实现审计/拦截

## 约束

- 不访问 DOM，不引入 Vue/React 等框架
- 不实现或暴露 UI 库 API，不包含 AI/MCP/权限逻辑
- 业务应用不直接依赖本包；通过 `@fhuang/form-pilot-vue` 与 `@fhuang/form-pilot-mcp-client` 间接使用
npm package: @fhuang/form-pilot-vue
Description: FormPilot Vue binding layer (Vue2/Vue3 unified)
Latest version: 0.1.6

# @fhuang/form-pilot-vue

FormPilot 的 Vue 接入层（Vue2/Vue3 统一）。该包是业务应用唯一需要依赖的前端入口，用于将真实 Vue 表单安全接入到 FormPilot 内核与 MCP 工具层。

## 依赖

- 运行时
  - `vue`（peer）：Vue 2.6+ 或 Vue 3.3+
  - `vue-demi`：统一访问 Vue2/Vue3 的 API
- 工作区内部
  - 间接使用 `@fhuang/form-pilot-core`（不直接暴露给业务）

> 本包仅提供 Vue 绑定与统一 API，不实现表单语义、不访问 DOM、不硬编码 UI 库。

## 安装

- Monorepo（当前工作区）

```bash
pnpm install
```

- 外部项目（发布后）

```bash
pnpm add @fhuang/form-pilot-vue vue-demi
```

## 公共 API

- `useAiForm(formRef, options)`：从真实表单引用创建 AI 可操作的安全句柄
- `FormPilotPlugin`：Vue 插件，用于全局注册适配器与钩子

句柄方法：

- `getSchema()` 返回规范化 schema
- `setValues(values)` 安全写入表单值
- `getValues()` 读取当前表单值
- `validate()` 执行校验
- `submit()` 执行提交

## 快速使用

```ts
import { useAiForm, FormPilotPlugin } from '@fhuang/form-pilot-vue'
import Vue from 'vue'

// 1) 可选：在应用初始化时注册适配器与钩子
Vue.use(FormPilotPlugin, {
  adapters: [/* 你的适配器描述列表（不硬编码 UI 库） */],
  hooks: {
    beforeSet: async ({ instance, next }) => {},
    beforeValidate: async ({ instance }) => {},
    beforeSubmit: async ({ instance }) => {},
  },
})

// 2) 在组件中基于真实表单 ref 创建句柄
const handle = useAiForm(formRef, { id: 'userCreate' })

// 3) 使用句柄方法（所有操作委托到核心桥接层）
await handle.setValues({ name: 'Alice' })
const values = handle.getValues()
const result = await handle.validate()
const submitRes = await handle.submit()
```

> `formRef` 可以是 Vue3 的 `ref` 或 Vue2 的组件实例引用；本包使用 `vue-demi` 自动处理版本差异。

## 与 AI/MCP 集成

- 当你需要让 AI 操作表单时，结合 `@fhuang/form-pilot-mcp-client` 使用：

```ts
import { MCPClient } from '@fhuang/form-pilot-mcp-client'

const client = new MCPClient({ /* 守卫与审计配置 */ })
client.registerForm('userCreate', () => useAiForm(formRef, { id: 'userCreate' }))
```

> 业务应用不需要直接引用 `@fhuang/form-pilot-core`；所有核心能力通过本包句柄与 MCP 客户端间接使用。

## 运行与开发

- 工作区脚本

```bash
pnpm -w run typecheck
pnpm -w run build
```

- 仅构建 Vue 接入层

```bash
pnpm --filter @fhuang/form-pilot-vue run typecheck
pnpm --filter @fhuang/form-pilot-vue run build
```

## 扩展开发

- 适配器注册
  - 使用 `FormPilotPlugin` 将你的适配器描述与生命周期钩子注入全局
- 细化钩子
  - `beforeSet/afterSet/beforeValidate/beforeSubmit` 可用于审计、权限提示或预处理
- 与 UI 库集成
  - 通过适配器将 UI 库的表单实例桥接到核心；本包不硬编码 UI 行为

## 约束

- 不访问 DOM，不实现或修改核心语义
- 不硬编码 Element/AntD 等 UI 库 API；适配器作为可插拔策略
- 业务仅依赖本包与 MCP 客户端（如需 AI 操作），不直接依赖核心
npm package: @fhuang/mcp-mysql-server
Description: The Model Context Protocol (MCP) server establishes a standardized JSON-RPC 2.0 interface for MySQL operations, enabling CRUD execution, transaction management, and ddl
Author: huangfeng19820712
Latest version: 1.2.0

# @fhuang/mcp-mysql-server 中文说明

一个基于 Model Context Protocol (MCP) 的 MySQL 数据库服务端，支持 AI 模型通过标准接口安全地操作 MySQL 数据库。

---

## 安装方法

### 1. 使用 Smithery 自动安装

```bash
npx -y @smithery/cli install @fhuang/mcp-mysql-server --client claude
```

### 2. 手动安装

```bash
npx @fhuang/mcp-mysql-server
```

---

## 配置方法

在 MCP 配置文件中设置数据库连接参数，支持两种方式：

**方式一：URL 方式**

```json
{
  "mcpServers": {
    "mysql": {
      "command": "npx",
      "args": ["-y", "@fhuang/mcp-mysql-server", "mysql://user:password@localhost:port/database"]
    }
  }
}
```

**方式二：环境变量方式**

```json
{
  "mcpServers": {
    "mysql": {
      "command": "npx",
      "args": ["-y", "@fhuang/mcp-mysql-server"],
      "env": {
        "MYSQL_HOST": "your_host",
        "MYSQL_USER": "your_user",
        "MYSQL_PASSWORD": "your_password",
        "MYSQL_DATABASE": "your_database"
      }
    }
  }
}
```

---

## 用法示例

1. 连接数据库
2. 执行查询、插入、更新、删除等操作
3. 列出所有表和表结构

**示例代码：**

```typescript
// 连接数据库
use_mcp_tool({
  server_name: "mysql",
  tool_name: "connect_db",
  arguments: {
    host: "localhost",
    user: "your_user",
    password: "your_password",
    database: "your_database"
  }
});

// 查询
use_mcp_tool({
  server_name: "mysql",
  tool_name: "query",
  arguments: {
    sql: "SELECT * FROM users WHERE id = ?",
    params: [1]
  }
});
```

---

## 主要功能

- 自动安全管理数据库连接
- 支持参数化查询，防止 SQL 注入
- 错误详细提示
- TypeScript 支持
- 自动关闭连接
- 支持SQL性能分析（EXPLAIN）

## 可用工具

### 7. explain
分析SQL查询性能，返回执行计划详情，包括访问类型、扫描行数和可能的优化建议。

```typescript
use_mcp_tool({
  server_name: "mysql",
  tool_name: "explain",
  arguments: {
    sql: "SELECT * FROM users WHERE id = ?"
  }
});
```

---

## 安全性

- 所有查询均使用参数化语句
- 密码等敏感信息通过环境变量管理
- 查询前自动校验
- 连接用完自动关闭

---

## 错误处理

- 连接失败、参数缺失、SQL 错误等均有详细报错信息

---

## 贡献

欢迎提交 Pull Request！  
GitHub 地址：https://github.com/huangfeng19820712/mcp-mysql-server

---

## 许可证

MIT
npm package: @fhulpelt/unfuckie
Description: Having issues with IE? Let us fix it!
Author: FhulPelt Digital
Latest version: 1.0.0

# UnfuckIE

Has your boss ever said something like:
> One of our clients says that it doesn't work on IE
> Can we sort this out?

Well your in luck. UnfuckIE is here to help. Our safisticated script will detect the user agent and fix the IE issues for you.

### Installation

```sh
$ cd your-project
$ npm install @fhulpelt/unfuckie --save
```

License
----

MIT


**Free Software, Hell Yeah!**
npm package: @fi-xz/sparx
Description: An API wrapper for the CHZZK Official API.
Author: nx
Latest version: 1.0.2

# sparx

**[KO]** | [[EN]](./README_EN.md)

공식 [치지직(CHZZK)](https://chzzk.naver.com/) API에 대한 API Wrapper

<h6>네, 저 작명 진짜 못합니다.</h6>

# Usage

[test/example.ts](test/example.ts) 참고 부탁드립니다.

실제 테스트 진행을 위해서는 모든 Scope가 사용 가능해야하며 Redirect URI가 `http://localhost:8080`으로 설정되어야 합니다.

# 유의사항

치지직 웹사이트 내 드롭스 기능은 **API 문서에서 명시해준 내용으로만 구현되어있습니다.** (Webhook Event 수신)

개발자가 해당 API에 대한 접근 권한이 없는 만큼 (게임사가 아니므로 당연히 없음) 양해 부탁드립니다.

실제로 테스트가 가능하신 분들께서는 테스트 시도 후 문제 발생 시 Issue를 열여주시면 감사하겠습니다.

# 라이선스

[MIT](./LICENSE.md)

# Special Thanks

- [kimcore/chzzk](https://github.com/kimcore/chzzk) - 라이브러리 구조 참고
npm package: @fi1osof/react-draft-wysiwyg
Description: @fi1osof/react-draft-wysiwyg React component
Author: Fi1osof
Latest version: 1.13.6

# React Draft Wysiwyg

Fork from https://github.com/jpuri/react-draft-wysiwyg

A Wysiwyg editor built using ReactJS and DraftJS libraries.
[Demo Page](https://jpuri.github.io/react-draft-wysiwyg).

[![Build Status](https://travis-ci.org/jpuri/react-draft-wysiwyg.svg?branch=master)](https://travis-ci.org/jpuri/react-draft-wysiwyg)

![](http://i.imgur.com/tU7kJ6i.gif)

## Features
- Configurable toolbar with option to add/remove controls.
- Option to change the order of the controls in the toolbar.
- Option to add custom controls to the toolbar.
- Option to change styles and icons in the toolbar.
- Option to show toolbar only when editor is focused.
- Support for inline styles: Bold, Italic, Underline, StrikeThrough, Code, Subscript, Superscript.
- Support for block types: Paragraph, H1 - H6, Blockquote, Code.
- Support for setting font-size and font-family.
- Support for ordered / unordered lists and indenting.
- Support for text-alignment.
- Support for coloring text or background.
- Support for adding / editing links
- Choice of more than 150 emojis.
- Support for mentions.
- Support for hashtags.
- Support for adding / uploading images.
- Support for aligning images, setting height, width.
- Support for Embedded links, flexibility to set height and width.
- Option provided to remove added styling.
- Option of undo and redo.
- Configurable behavior for RTL and Spellcheck.
- Support for placeholder.
- Support for WAI-ARIA Support attributes
- Using editor as controlled or un-controlled React component.
- Support to convert Editor Content to HTML, JSON, Markdown.
- Support to convert the HTML generated by the editor back to editor content.
- Support for internationalization.

## Installing
The package can be installed from npm `react-draft-wysiwyg`

## Getting started
Editor can be used as simple React Component:
```js
import { Editor } from 'react-draft-wysiwyg';
import 'react-draft-wysiwyg/dist/react-draft-wysiwyg.css';
<Editor
  editorState={editorState}
  toolbarClassName="toolbarClassName"
  wrapperClassName="wrapperClassName"
  editorClassName="editorClassName"
  onEditorStateChange={this.onEditorStateChange}
/>
```

## Docs
For more documentation check [here](https://jpuri.github.io/react-draft-wysiwyg/#/docs?_k=jjqinp).

## Questions Discussions
For discussions join public channel #rd-wysiwyg in [DraftJS Slack Organization](https://draftjs.herokuapp.com/).

## Thanks
Original motivation and sponsorship for this work came from [iPaoo](http://www.ipaoo.com/). I am thankful to them for allowing the Editor to be open-sourced.

## License
MIT.
npm package: @fiad/babel-preset-vanilla
Description: A custom Babel preset for vanilla JS development
Author: Andrea 'Fiad' Fiadone
Latest version: 1.0.2
Deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.

# @fiad/babel-preset-vanilla

A custom *Babel* preset for vanilla JS development

---

## Installation

```
npm i -D @fiad/babel-preset-vanilla
```

## Usage


```json
// babel.config.json
{
  "presets": ["@fiad/vanilla"]
{
```

For more information, check the [*Babel* documentation](https://babeljs.io/docs/en/configuration).
npm package: @fiad/create-carpentry
Description: ### Scaffold your new project with [Carpentry](https://github.com/fiadone/carpentry) using a single command.
Author: Andrea "Fiad" Fiadone
Latest version: 0.1.0

# @fiad/create-carpentry

### Scaffold your new project with [Carpentry](https://github.com/fiadone/carpentry) using a single command.


With NPM:

```sh
npm init @fiad/carpentry
```

With Yarn:

```sh
yarn create @fiad/carpentry
```

With PNPM:

```sh
pnpm create @fiad/carpentry
```
npm package: @fiad/eslint-config
Description: A custom ESLint Shareable Config
Author: Andrea 'Fiad' Fiadone
Latest version: 1.0.3

# @fiad/eslint-config

A custom ESLint Shareable Config

---

## Installation

```
npm i @fiad/eslint-config
```

## Usage


```json
// .eslintrc
{
    "extends": "@fiad"
}
```

For more information, check the [*ESLint* documentation](https://eslint.org/docs/user-guide/configuring#using-a-shareable-configuration-package).
npm package: @fiad/toolbox
Description: A smart collection of tools and utilities for Javascript development
Author: Andrea 'Fiad' Fiadone
Latest version: 2.4.1

# @fiad/toolbox

A smart collection of tools and utilities for JavaScript development

---

## Get started

#### Installation
```
npm i @fiad/toolbox
```

> ⚠️ __Attention__: the code of all modules listed below is not transpiled, so ensure your development environment to be configured to handle it. If you don't have your own favorite boilerplate yet, you can definitely enjoy trying [Carpentry](https://github.com/fiadone/carpentry).


## Contents

* [component](./component)
* [cursor](./cursor)
* [events-bus](./events-bus)
* [share-manager](./share-manager)
* [smooth-scroll](./smooth-scroll)
* [store](./store)
* [utils](./utils)
npm package: @fiahfy/electron-accelerator-formatter
Description: Format electron accelerator according to the platform
Author: fiahfy
Latest version: 0.0.4

# electron-accelerator-formatter

![badge](https://github.com/fiahfy/electron-accelerator-formatter/workflows/Node.js%20Package/badge.svg)

> Format [electron accelerator](https://electronjs.org/docs/api/accelerator) according to the platform.

## Installation

```bash
npm install @fiahfy/electron-accelerator-formatter
```

## Usage

```js
import { format } from '@fiahfy/electron-accelerator-formatter'

console.log(format('CmdOrCtrl+A')) // '⌘A' on darwin, 'Ctrl+A' on win32
```
npm package: @fiahfy/flow2ts
Description: CLI to convert Flow code into TypeScript with babel-plugin-flow-to-typescript
Author: fiahfy
Latest version: 0.0.10

# flow2ts

![badge](https://github.com/fiahfy/flow2ts/workflows/Node.js%20Package/badge.svg)

> CLI to convert [Flow](https://github.com/facebook/flow) code into [TypeScript](https://github.com/Microsoft/TypeScript) with [babel-plugin-flow-to-typescript](https://github.com/Kiikurage/babel-plugin-flow-to-typescript).

## Installation

```bash
npm install @fiahfy/flow2ts
```

## Usage

```js
import { convert } from '@fiahfy/flow2ts'

convert(code)
```

## CLI

```bash
npm install -g @fiahfy/flow2ts
flow2ts index.js
```

or use via npx

```bash
npx @fiahfy/flow2ts index.js
```
npm package: @fiahfy/icns-convert
Description: Convert Image to Apple Icon Image format
Author: fiahfy
Latest version: 0.0.12

# icns-convert

![badge](https://github.com/fiahfy/icns-convert/workflows/Node.js%20Package/badge.svg)

> Convert Image to [Apple Icon Image format](https://en.wikipedia.org/wiki/Apple_Icon_Image_format).

## Installation

```bash
npm install @fiahfy/icns-convert
```

## Usage

```js
import fs from 'fs'
import { convert } from '@fiahfy/icns-convert'

const buf = fs.readFileSync('input.png') // image must be squre, 1024x1024 pixels or larger
convert(buf).then((data) => {
  fs.writeFileSync('output.icns', data)
})
```

### Specify image for each size

```js
const bufs = [
  fs.readFileSync('16x16.png'),
  fs.readFileSync('32x32.png'),
  fs.readFileSync('64x64.png'),
  fs.readFileSync('128x128.png'),
  fs.readFileSync('256x256.png'),
  fs.readFileSync('512x512.png'),
  fs.readFileSync('1024x1024.png'),
]
convert(bufs).then((data) => {
  fs.writeFileSync('output.icns', data)
})
```

## CLI

```bash
npm install -g @fiahfy/icns-convert
icns-convert icon.png
```

or use via npx

```bash
npx @fiahfy/icns-convert icon.png
```
npm package: @fiahfy/ico
Description: ICO file format parser and builder
Author: fiahfy
Latest version: 0.0.5

<!-- markdownlint-disable MD024 -->

# ico

![badge](https://github.com/fiahfy/ico/workflows/Node.js%20Package/badge.svg)

> [ICO file format](<https://en.wikipedia.org/wiki/ICO_(file_format)>) parser and builder.

## Installation

```bash
npm install @fiahfy/ico
```

## Usage

### Parsing

```js
import fs from 'fs'
import { Ico } from '@fiahfy/ico'

const buf = fs.readFileSync('icon.ico')
const ico = Ico.from(buf)
console.log(ico.fileHeader) // IcoFileHeader { reserved: 0, type: 1, count: 7 }
console.log(ico.infoHeaders[0]) // IcoInfoHeader { width: 16, height: 16, ... }
```

### Building

```js
import fs from 'fs'
import { Ico, IcoImage } from '@fiahfy/ico'

const ico = new Ico()
let buf

buf = fs.readFileSync('128x128.png')
image = IcoImage.fromPNG(buf)
ico.append(image)

buf = fs.readFileSync('256x256.png')
image = IcoImage.fromPNG(buf)
ico.append(image)

/* Some other PNG files */

fs.writeFileSync('icon.ico', ico.data)
```

## API

### Class: Ico

#### static from(buffer)

Create ICO from the icon buffer.

##### buffer

Type: `Buffer`

The ICO icon buffer.

#### append(image)

Adds ICO image at the end.

##### image

Type: `IcoImage`

The ICO Image to append.

#### insert(image, index)

Inserts ICO image at the specified position.

##### image

Type: `IcoImage`

The ICO Image to insert.

##### index

Type: `number`

The position at which to insert the ICO Image.

#### remove(index)

Removes ICO image at the specified position.

##### index

Type: `number`

The position of the ICO Image to remove.

#### fileHeader

Type: `IcoFileHeader`

Return the file header on the ICO.

#### infoHeaders

Type: `IcoInfoHeader[]`

Return the ICO info header on the ICO.

#### images

Type: `IcoImage[]`

Return the ICO images on the ICO.

#### data

Type: `Buffer`

Return the ICO buffer.

### Class: IcoImage

#### static from(buffer)

Create ICO image from the buffer.

##### buffer

Type: `Buffer`

The ICO image buffer.

#### static fromPNG(buffer)

Create ICO Image from the PNG image buffer.

##### buffer

Type: `Buffer`

The PNG image buffer.

### Class: IcoInfoHeader

#### static from(buffer)

Create ICO info header from the buffer.

##### buffer

Type: `Buffer`

The ICO info header buffer.

### Class: IcoFileHeader

#### static from(buffer)

Create ICO file header from the buffer.

##### buffer

Type: `Buffer`

The ICO file header buffer.

## Specifications

### Supported Size

| Size    |
| ------- |
| 16x16   |
| 24x24   |
| 32x32   |
| 48x48   |
| 64x64   |
| 128x128 |
| 256x256 |
npm package: @fiahfy/ico-convert
Description: Convert Image to ICO file format
Author: fiahfy
Latest version: 0.0.12

# ico-convert

![badge](https://github.com/fiahfy/ico-convert/workflows/Node.js%20Package/badge.svg)

> Convert Image to [ICO file format](<https://en.wikipedia.org/wiki/ICO_(file_format)>).

## Installation

```bash
npm install @fiahfy/ico-convert
```

## Usage

```js
import fs from 'fs'
import { convert } from '@fiahfy/ico-convert'

const buf = fs.readFileSync('input.png') // image must be squre, 256x256 pixels or larger
convert(buf).then((data) => {
  fs.writeFileSync('output.ico', data)
})
```

### Specify image for each size

```js
const bufs = [
  fs.readFileSync('16x16.png'),
  fs.readFileSync('24x24.png'),
  fs.readFileSync('32x32.png'),
  fs.readFileSync('48x48.png'),
  fs.readFileSync('64x64.png'),
  fs.readFileSync('128x128.png'),
  fs.readFileSync('256x256.png'),
]
convert(bufs).then((data) => {
  fs.writeFileSync('output.ico', data)
})
```

## CLI

```bash
npm install -g @fiahfy/ico-convert
ico-convert icon.png
```

or use via npx

```bash
npx @fiahfy/ico-convert icon.png
```
npm package: @fiahfy/packbits
Description: PackBits implementation in JavaScript
Author: fiahfy
Latest version: 0.0.6

<!-- markdownlint-disable MD024 -->

# packbits

![badge](https://github.com/fiahfy/packbits/workflows/Node.js%20Package/badge.svg)

> [PackBits](https://en.wikipedia.org/wiki/PackBits) implementation in JavaScript.

## Installation

```bash
npm install @fiahfy/packbits
```

## Usage

### Default

#### Encoding

```js
import { encode } from '@fiahfy/packbits'

console.log(buf) // <Buffer aa bb bb cc cc cc dd dd dd dd>
const encoded = encode(buf)
console.log(encoded) // <Buffer 00 aa ff bb fe cc fd dd>
```

#### Decoding

```js
import { decode } from '@fiahfy/packbits'

console.log(buf) // <Buffer 00 aa ff bb fe cc fd dd>
const decoded = decode(buf)
console.log(decoded) // <Buffer aa bb bb cc cc cc dd dd dd dd>
```

### ICNS format

In [Apple Icon Image format](https://en.wikipedia.org/wiki/Apple_Icon_Image_format), pixel data are often compressed (per channel) with a format similar to PackBits.

#### Encoding

```js
import { encode } from '@fiahfy/packbits'

console.log(buf) // <Buffer aa bb bb cc cc cc dd dd dd dd>
const encoded = encode(buf, { format: 'icns' })
console.log(encoded) // <Buffer 02 aa bb bb 80 cc 81 dd>
```

#### Decoding

```js
import { decode } from '@fiahfy/packbits'

console.log(buf) // <Buffer 02 aa bb bb 80 cc 81 dd>
const decoded = decode(buf, { format: 'icns' })
console.log(decoded) // <Buffer aa bb bb cc cc cc dd dd dd dd>
```
npm package: @fiahfy/prettier-config
Description: My prettier config.
Author: fiahfy
Latest version: 0.0.3

# prettier-config

![badge](https://github.com/fiahfy/prettier-config/workflows/Node.js%20Package/badge.svg)

> My prettier config.

## Installation

```bash
npm install @fiahfy/prettier-config -D
```

## Usage

Edit `package.json`

```js
{
  // ...
  "prettier": "@fiahfy/prettier-config"
}
```

Or edit `.prettierrc.js`

```js
const config = require('@fiahfy/prettier-config')

module.exports = {
  ...config,
  // ...
}
```
npm package: @fiahfy/semaphore
Description: Semaphore implementation in JavaScript
Author: fiahfy
Latest version: 0.0.2

# semaphore

![badge](https://github.com/fiahfy/semaphore/workflows/Node.js%20Package/badge.svg)

> [Semaphore](<https://en.wikipedia.org/wiki/Semaphore_(programming)>) implementation in JavaScript.

## Installation

```bash
npm install @fiahfy/semaphore
```

## Usage

### Mutex

```js
import fs from 'fs'
import { semaphore } from '@fiahfy/semaphore'

const s = semaphore()

const heavyFunc = () => {
  return s.acquire().then(() => {
    console.log('heavy process')
    s.release()
    console.log('released')
  })
}
```

### Mutex with callback (auto release)

```js
import fs from 'fs'
import { semaphore } from '@fiahfy/semaphore'

const s = semaphore()

const heavyFunc = () => {
  return s
    .acquire(() => {
      console.log('heavy process')
    })
    .then(() => {
      console.log('released')
    })
}
```

### Zero permits

```js
import fs from 'fs'
import { semaphore } from '@fiahfy/semaphore'

const s = semaphore(0)

console.log('first')

setTimeout(() => {
  console.log('second')
  s.release() // increment permit
}, 100)

s.acquire().then(() => {
  // wait until permit is available
  console.log('third')
})
```

## API

### semaphore(permits)

Creates a Semaphore with the given number of permits.

#### permits

Type: `number`  
Default: `1`

The initial number of permits available.  
This value may be negative, in which case releases must occur before any acquires will be granted.

### semaphore.acquire(callback)

Acquires a permit from this semaphore, blocking until one is available.  
If a callback is given, a permit is released automatically after a given callback is finished.

#### callback

Type: `Function`  
Default: `undefined`

Holds a permit until a callback is finished.

### semaphore.release()

Releases a permit, returning it to the semaphore.
npm package: @fiahfy/simple-clone
Description: Clone(deep copy) object more efficiently like JSON stringify and parse
Author: fiahfy
Latest version: 0.0.4

# simple-clone

![badge](https://github.com/fiahfy/simple-clone/workflows/Node.js%20Package/badge.svg)

> Clone(deep copy) object more efficiently like JSON stringify and parse.

## Installation

```bash
npm install @fiahfy/simple-clone
```

## Usage

```js
import { clone } from '@fiahfy/simple-clone'

const obj = { foo: 'bar' }
const newObj = clone(obj)
console.log(newObj) // { foo: 'bar' }
console.log(newObj === obj) // false
```
npm package: @fiahfy/storiesof2csf
Description: CLI to convert old-style storiesOf stories into Component Story Format (CSF)
Author: fiahfy
Latest version: 0.0.5

# storiesof2csf

![badge](https://github.com/fiahfy/storiesof2csf/workflows/Node.js%20Package/badge.svg)

> CLI to convert old-style storiesOf stories into [Component Story Format (CSF)](https://storybook.js.org/docs/react/api/csf).  
> This package extends [`storiesof-to-csf` transform](https://www.npmjs.com/package/@storybook/codemod#storiesof-to-csf) to support dynamic story titles and story files written in TypeScript or Flow.

## Installation

```bash
npm install @fiahfy/storiesof2csf
```

## Usage

```js
import { convert } from '@fiahfy/storiesof2csf'

convert(code, { parser: 'babel' })
```

## CLI

```bash
npm install -g @fiahfy/storiesof2csf
storiesof2csf Button.stories.js
```

or use via npx

```bash
npx @fiahfy/storiesof2csf Button.stories.js
```
npm package: @fiahfy/tsconfig
Description: My TSConfig.
Author: fiahfy
Latest version: 0.0.2

# tsconfig

![badge](https://github.com/fiahfy/tsconfig/workflows/Node.js%20Package/badge.svg)

> My TSConfig.

## Installation

```bash
npm install @fiahfy/tsconfig -D
```

## Usage

Edit `tsconfig.json`

```js
{
  "extends": "@fiahfy/tsconfig/tsconfig",
  // ...
}
```
npm package: @fiahfy/vue-visibility-changed-mixin
Description: Vue mixin for visibility changed
Author: fiahfy
Latest version: 0.0.2

# @fiahfy/vue-visibility-changed-mixin

> Vue mixin for visibility changed.

## Installation
```
npm install @fiahfy/vue-visibility-changed-mixin
```

## Usage
```js
import VisibilityChanged from '@fiahfy/vue-visibility-changed-mixin'

new Vue({
  mixins: [VisibilityChanged],
  visibilityChanged(visible) {
    console.log(visible) // true -> visible, false -> hidden
  }
})
```
npm package: @fiahfy/worker-promisify
Description: Promisify postMessage for Web Worker
Author: fiahfy
Latest version: 0.0.7

# worker-promisify

![badge](https://github.com/fiahfy/worker-promisify/workflows/Node.js%20Package/badge.svg)

> Promisify postMessage for Web Worker.

## Installation

```bash
npm install @fiahfy/worker-promisify
```

## Usage

`worker.js`

```js
onmessage = (e) => {
  postMessage('pong')
}
```

`main.js`

```js
import { promisify } from '@fiahfy/worker-promisify'

const worker = new Worker('worker.js')
const promiseWorker = promisify(worker)

promiseWorker.postMessage('ping').then((e) => {
  console.log(e.data) // pong
})
```

### In Parallel

`worker.js`

```js
onmessage = ({ data: { key, data } }) => {
  postMessage({ key, data: Math.pow(data, 2) }) // must pass key and set return value to data
}
```

`main.js`

```js
import { promisify } from '@fiahfy/worker-promisify'

const worker = new Worker('worker.js')
const promiseWorker = promisify(worker)

Promise.all([
  promiseWorker.parallelPostMessage('foo', 2), // must set unique keys
  promiseWorker.parallelPostMessage('bar', 3),
]).then(([e1, e2]) => {
  console.log(e1.data) // 4
  console.log(e2.data) // 9
})
```
npm package: @fialho-ui/react
Description: ## Install ``` npm install @fialho-ui/react ```
Latest version: 7.0.0

# Fialho UI - React ⚛️

## Install
```
npm install @fialho-ui/react
```

## Components
- [x] Text
- [x] Heading
- [x] Box
- [x] Button
- [x] TextInput
- [x] TextArea
- [x] Checkbox
- [x] Avatar
- [x] MultiStep
npm package: @fialho-ui/tokens
Description: ## Install ``` npm install @fialho-ui/tokens ``` ## Tokens ### Fonts - [Roboto](https://fonts.google.com/specimen/Roboto)
Latest version: 5.0.0

# Fialho UI - Tokens 🥷🏻

## Install
```
npm install @fialho-ui/tokens
```
## Tokens
### Fonts
- [Roboto](https://fonts.google.com/specimen/Roboto)

### FontSize
| Name      | Rem      | Px   |
|-----------|----------|------|
| xxs       | 0.625rem | 10px |
| xs        | 0.75rem  | 12px |
| sm        | 0.875rem | 14px |
| md        | 1rem     | 16px |
| lg        | 1.125rem | 18px |
| xl        | 1.25rem  | 20px |
| 2xl       | 1.5rem   | 24px |
| 4xl       | 2rem     | 32px |
| 5xl       | 2.25rem  | 36px |
| 6xl       | 3rem     | 48px |
| 7xl       | 4rem     | 64px |
| 8xl       | 4.5rem   | 72px |
| 9xl       | 6rem     | 96px |

### FontWeight
| Name    | Weight |
|---------|--------|
| regular | 400    |
| medium  | 500    |
| bold    | 700    |

### LineHeight
| Name    | Line Height |
|---------|-------------|
| shorter | 125%        |
| short   | 140%        |
| base    | 160%        |
| tall    | 180%        |

### Colors
| Name       | Hex Color   |
|------------|-------------|
| white      | #FFF        |
| black      | #000        |
| gray100    | #E1E1E6     |
| gray200    | #A9A9B2     |
| gray400    | #7C7C8A     |
| gray500    | #505059     |
| gray600    | #323238     |
| gray700    | #29292E     |
| gray800    | #202024     |
| gray900    | #121214     |
| fialho300  | #ADE8F4     |
| fialho500  | #48CAE4     |
| fialho700  | #0077B6     |
| fialho900  | #03045E     |

### Radii
| Name   | Value   |
|--------|---------|
| px     | 1px     |
| xs     | 4px     |
| sm     | 6px     |
| md     | 8px     |
| lg     | 16px    |
| full   | 99999px |

### Space
| Name | Value     |
|------|-----------|
| 1    | 0.25rem   |
| 2    | 0.5rem    |
| 3    | 0.75rem   |
| 4    | 1rem      |
| 5    | 1.25rem   |
| 6    | 1.5rem    |
| 7    | 1.75rem   |
| 8    | 2rem      |
| 10   | 2.5rem    |
| 12   | 3rem      |
| 16   | 4rem      |
| 20   | 5rem      |
| 40   | 10rem     |
| 64   | 16rem     |
| 80   | 20rem     |
npm package: @fiandev/ina-phrase
Description: indonesian seed phrase word list
Author: fiandev
Latest version: 1.0.1

# @fiandev/ina-phrase

A TypeScript library and CLI tool for generating Indonesian BIP39 seed phrases and deriving Bitcoin keys.

## Features

- Generate random BIP39 seed phrases using Indonesian words
- Derive Bitcoin keys from seed phrases
- Display QR codes for keys in terminal
- CLI tool for easy command-line usage
- TypeScript support with full type definitions

## Installation

### As a library

```bash
npm install @fiandev/ina-phrase
```

### As a CLI tool (global install)

```bash
npm install -g @fiandev/ina-phrase
```

## Usage

### CLI Commands

#### Generate a random seed phrase

```bash
ina-phrase generate <length>
```

Where `<length>` is either 12 or 24.

**Example:**
```bash
ina-phrase generate 12
# Output: masa gila kabel brutal watu halim desi sakral curah opor ebong bunda
```

#### Get keys from a seed phrase

```bash
ina-phrase keys "<seed-phrase>"
```

**Example:**
```bash
ina-phrase keys "masa gila kabel brutal watu halim desi sakral curah opor ebong bunda"
# Output:
# {
#   "privateKey": "85d6da48f237235a877f224d3b6c775d82dab8ccb117f2d35f3113ffd31348b6",
#   "publicKey": "033c2103985493608123817693fe4f5c38e86ec979fe4d9b814369a6dc622d407e",
#   "address": "1F61pasuA5urBzp4XHN6aW3X9pAaML11ZL"
# }
```

#### Print QR codes for keys

```bash
ina-phrase print <private-key> <public-key> <address>
```

**Example:**
```bash
ina-phrase print \
  "85d6da48f237235a877f224d3b6c775d82dab8ccb117f2d35f3113ffd31348b6" \
  "033c2103985493608123817693fe4f5c38e86ec979fe4d9b814369a6dc622d407e" \
  "1F61pasuA5urBzp4XHN6aW3X9pAaML11ZL"
# Outputs QR codes in terminal
```

### Library Usage

```typescript
import IndonesianSeedPhrase from '@fiandev/ina-phrase';

const isp = new IndonesianSeedPhrase();

// Generate a random seed phrase
const seedPhrase = isp.generateRandomSeedPhrase(12);
console.log(seedPhrase); // "masa gila kabel brutal watu halim desi sakral curah opor ebong bunda"

// Get keys from seed phrase
const keys = isp.getKeysFromSeedPhrase(seedPhrase);
console.log(keys);
// {
//   privateKey: "85d6da48f237235a877f224d3b6c775d82dab8ccb117f2d35f3113ffd31348b6",
//   publicKey: "033c2103985493608123817693fe4f5c38e86ec979fe4d9b814369a6dc622d407e",
//   address: "1F61pasuA5urBzp4XHN6aW3X9pAaML11ZL"
// }

// Print QR codes (async)
await isp.print(keys.privateKey, keys.publicKey, keys.address);
```

## API Reference

### IndonesianSeedPhrase

#### Methods

- `generateRandomSeedPhrase(len: 12 | 24): string` - Generates a random seed phrase
- `getKeysFromSeedPhrase(seedPhrase: string): { privateKey: string, publicKey: string, address: string }` - Derives Bitcoin keys from seed phrase
- `print(privateKey: string, publicKey: string, address: string): Promise<void>` - Prints keys and QR codes to console

## Development

```bash
# Install dependencies
yarn install

# Build the project
yarn build

# Run tests
yarn test
```

## License

MIT - see [LICENSE](LICENSE) file for details.
npm package: @fiandev/js-modules
Description: A gathering Javascript Modules And Algorithm
Author: fiandev
Latest version: 1.1.0

# js-modules
A gathering Javascript Modules And Algorithm

## installation

```shell
npm install @fiandev/js-modules --save-dev
```

## how to usage

### esm
```javascript
import modules from "@fiandev/js-modules";

const { getType } = modules;

let dataType = getType([1, 2, 3]);
console.log(dataType) // array
```

### commonjs
```javascript
const modules = require("@fiandev/js-modules");

const { getType } = modules;

let dataType = getType([1, 2, 3]);
console.log(dataType) // array
```

> built with ❤️ by fiandev
npm package: @fiandev/laraset
Description: Automated Laravel project setup with Docker and SQLite
Author: fiandev
Latest version: 1.0.0

# Laraset

Automated Laravel project setup with Docker and SQLite database configuration.

## Installation

```bash
npm install -g @fiandev/laraset
```

## Usage

```bash
laraset --url <git-repository-url>
```

### Example

```bash
laraset --url https://github.com/laravel/laravel.git
```

## Features

- 🐳 Automatically detects PHP version from `composer.json`
- 📦 Downloads and installs Composer dependencies
- 🔧 Configures SQLite database by default
- 🔑 Generates Laravel application key
- 🗄️ Runs database migrations
- 🧹 Cleans up temporary files

## Requirements

- Node.js >= 18.0.0
- Docker installed and running
- Git

## What it does

1. **Clones** the Laravel repository
2. **Detects** PHP version from `composer.json`
3. **Downloads** Composer.phar to the project
4. **Installs** dependencies with `composer install`
5. **Copies** `.env.example` to `.env` if needed
6. **Configures** SQLite database settings
7. **Generates** application key
8. **Runs** database migrations
9. **Cleans up** temporary files

## Development

```bash
# Install dependencies
npm install

# Build the project
npm run build

# Run in development mode
npm run dev

# Test the CLI
npm start -- --url https://github.com/laravel/laravel.git
```

## License

MIT
npm package: @fiatconnect/fiatconnect-types
Description: Types used in the FiatConnect specification. Offered as standalone module for payment providers and wallets to both use for FiatConnect APIs and integrations.
Author: Charlie Andrews
Latest version: 13.3.50

# fiatconnect-types

Types used in the FiatConnect specification. Offered as standalone module for payment providers and
wallets to both use for FiatConnect APIs and integrations.

## Installation

From your project directory, run:

```bash
yarn add @fiatconnect/fiatconnect-types
```

or

```bash
npm i @fiatconnect/fiatconnect-types
```

## Example usage

```typescript
import { TransferStatus } from '@fiatconnect/fiatconnect-types'
import axios from 'axios'

export async function getTransferStatus(
  transferId: string,
): Promise<TransferStatus> {
  const response = await axios
    .create({ url: 'https://MOCK-PROVIDER-URL.fake' })
    .get(`/transfer/${transferId}/status`)
  return response.data.status
}
```

## Zod Schemas

For each type exported from this package there is also a corresponding [zod schema](https://www.npmjs.com/package/zod) with the name `{typeWithFirstCharLowercase}Schema`. So for example `TransferStatus` has `transferStatusSchema`.

```typescript
import {
  TransferStatus,
  transferStatusSchema,
} from '@fiatconnect/fiatconnect-types'
import axios from 'axios'
import { z } from 'zod'

export async function getTransferStatus(
  transferId: string,
): Promise<TransferStatus> {
  const response = await axios
    .create({ url: 'https://MOCK-PROVIDER-URL.fake' })
    .get(`/transfer/${transferId}/status`)

  // Will throw an error if the status does not match the schema
  transferStatusSchema.parse(response.data.status)
  return response.data.status
}
```

## Contributing

- [Reporting issues](https://github.com/fiatconnect/fiatconnect-types/issues)
- [Submitting a pull request](https://github.com/fiatconnect/fiatconnect-types/pulls)
- Publishing updates is done automatically via [semantic-release](https://github.com/semantic-release/semantic-release).
  Remember to use [conventional commits](https://www.conventionalcommits.org/en/v1.0.0/) or your PR will be rejected (since
  merging it would mess up the changelog and version numbers).
npm package: @fiatdao/sdk
Description: Javascript library for interacting with the FIAT protocol's contracts
Latest version: 0.0.40

# <h1 align="center"> FIAT SDK </h1>

**Repository containing an SDK for easier interaction with FIAT**

## Getting started

### Installing
Install the FIAT SDK by running the following command

```sh
yarn add @fiatdao/sdk # npm install @fiatdao/sdk
```

### Usage

Instantiating the SDK via an existing provider
```js
const detectEthereumProvider = require('@metamask/detect-provider');
const fiat = await fiat.fromProvider(await detectEthereumProvider());
```

Instantiating the SDK via private key in a node environment
```js
const fiat = await FIAT.fromPrivateKey(
  process.env.JSON_RPC_ENDPOINT_URL,
  process.env.PRIVATE_KEY
);
```

## Requirements
This repository uses Node.js and Yarn for building and testing.

### Set .env
Copy and update contents from `.env.example` to `.env`

## Tests

After installing dependencies with `yarn`, run `yarn test` to run the tests.

## Building and testing

```sh
git clone https://github.com/fiatdao/sdk
cd fiat
yarn # This installs the project's dependencies.
yarn test
```