open-index/open-npm huggingface dataset:
npm package: @seyamali/aurelia-editor
Description: Aurelia Editor is a framework-agnostic rich text and CMS editor built on Lexical with export, collaboration, image, and template tools.
Author: Seyam Ali
Latest version: 0.1.5

# Aurelia Editor

[![NPM Version](https://img.shields.io/npm/v/@seyamali/aurelia-editor?style=flat-square&color=blue)](https://www.npmjs.com/package/@seyamali/aurelia-editor)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg?style=flat-square)](https://opensource.org/licenses/MIT)
[![TypeScript](https://img.shields.io/badge/Written%20With-TypeScript-3178C6?style=flat-square&logo=typescript)](https://www.typescriptlang.org/)
[![GitHub](https://img.shields.io/badge/GitHub-Repository-181717?style=flat-square&logo=github)](https://github.com/seyamali/custom-rich-text-editor)
[![Live Demo](https://img.shields.io/badge/Live-Demo-0f766e?style=flat-square&logo=vercel)](https://aurelia-editor.pro.bd/)

**Aurelia Editor** is a framework-agnostic rich text and CMS editor built on top of [Lexical](https://lexical.dev/). It is designed for content teams, blogs, docs, and page builders that want a polished editing experience with strong publishing tools.

Try the live demo at [aurelia-editor.pro.bd](https://aurelia-editor.pro.bd/).

![Editor Preview](https://seyam.runasp.net/uploads/6d201eb5-6f39-4429-958d-be310c964419.png)

## What it includes

- Rich text formatting, typography, lists, alignment, and case conversion
- Image tools, video embeds, HTML snippets, and link editing
- Tables, code blocks, TOC, footnotes, and page breaks
- Comments, track changes, presence, and revision support
- CMS page settings, SEO audit, publish workflow, and export presets
- Command palette, slash commands, format painter, autosave, and document stats
- Template blocks and reusable page snippets

## Best for

- CMS and headless CMS editing
- Blog publishing and article drafting
- Documentation and knowledge base pages
- Landing pages and content-heavy marketing sites
- Teams that need an editor with both writing and publishing tools

## Install

```bash
npm install @seyamali/aurelia-editor
```

## Use

```typescript
import { AureliaEditor } from '@seyamali/aurelia-editor';
import '@seyamali/aurelia-editor/style.css';

const container = document.getElementById('editor-root');

if (!container) {
  throw new Error('Missing #editor-root container');
}

const editor = await AureliaEditor.create(container);
```

## Working with content

```typescript
const html = await editor.getHtml();
await editor.setHtml(html);
```

## Toolbar presets

Available presets:

- `minimal`
- `standard`
- `blogging`
- `documentation`
- `full`

## Useful shortcuts

- `Ctrl/Cmd + K`: Command palette
- `Ctrl/Cmd + Alt + M`: Comment
- `Ctrl/Cmd + Alt + T`: Templates
- `Ctrl/Cmd + Alt + S`: Stats
- `Ctrl/Cmd + F`: Find and replace
- `/`: Slash menu

## Public site

- Live demo: [https://aurelia-editor.pro.bd/](https://aurelia-editor.pro.bd/)
- GitHub: [https://github.com/seyamali/custom-rich-text-editor](https://github.com/seyamali/custom-rich-text-editor)

## License

MIT
npm package: @seyan/ts-statemachine
Description: ![npm (tag)](https://img.shields.io/npm/v/@seyan/ts-statemachine/latest) ![NPM License](https://img.shields.io/npm/l/%40seyan%2Fts-statemachine)
Latest version: 1.0.2

# TypeScript有限状态机

![npm (tag)](https://img.shields.io/npm/v/@seyan/ts-statemachine/latest)
![NPM License](https://img.shields.io/npm/l/%40seyan%2Fts-statemachine)

使用TypeScript装饰器实现的有限状态机，需要在tsconfig.json里启用experimentalDecorators编译器选项

## 安装

```script
npm install @seyan/ts-statemachine
```

 ## 使用示例
 
```typescript
import {
  AFSM,
  Event,
  Status,
  StateMachine,
  EventHandlerResponse,
  StatusType
} from '@seyan/ts-statemachine';

@StateMachine()
class FSM extends AFSM {
  @Status("s1")
  @Event('e1')
  f(): EventHandlerResponse {
    return { next: 's2' }
  }
}

@StateMachine()
class TestStm extends AFSM {
  // 在s1状态下触发e1事件
  @Status("s1")
  @Event("e1")
  s1_e1(): EventHandlerResponse {
    // 业务逻辑处理
    // ...
    // 转换为s2状态
    return { next: "s2" };
  }

  // 在s1状态下触发e2事件
  @Status("s1")
  @Event("e2")
  s1_e2(): EventHandlerResponse {
    // 业务逻辑处理
    // ...
    // 转换为s3状态
    return { next: "s3" };
  }

// 在s2状态下触发e1事件
  @Status("s2")
  @Event("e1")
  s2_e1(): EventHandlerResponse {
    // 业务逻辑处理
    // ...
    // 转换为s1状态
    return { next: "s1" };
  }

  // 在s2状态下触发e2事件
  @Status("s2")
  @Event("e2")
  s2_e2(): EventHandlerResponse {
    // 业务逻辑处理
    // ...
    // 转换为s3状态
    return { next: "s3" };
  }

  // 在s3状态下触发e1事件
  @Status("s3")
  @Event("e1")
  s3_e1(): EventHandlerResponse {
    // 业务逻辑处理
    // ...
    // 转换为s1状态
    return { next: "s1" };
  }

  @Status("s3")
  @Event("e2")
  s3_e2(): EventHandlerResponse {
    return { next: "s2" };
  }

  // 状态工厂可以支持状态列表 在s1 s2 s3状态下触发setState处理逻辑相同
  @Status(["s1", "s2", "s3"])
  @Event("setState")
  setState(state: StatusType): EventHandlerResponse {
    return { next: state };
  }

  // 可以省略状态装饰器 表示任意状态下都可以触发
  @Event("noChange")
  noChange() {
    // 返回值为空 表示不改变状态
    return;
  }

  // 常规函数成员
  getCurrentState() {
    // 获取当前状态
    return this.currentState;
  }
  
  // 常规函数成员
  nomalFunction2(s?: string) {
    return s;
  }
}

(async function test() {
  const fsm = new TestStm();
  fsm.setState("s1");
  await fsm.handleEvent("e1"); // currentState => s2
  await fsm.handleEvent("e2"); // currentState => s3
  await fsm.handleEvent("noChange"); // currentState => s3
  await fsm.handleEvent("unregisteredEvent") // Promise.reject(UnregisteredEventError("触发未注册事件"))
})()
```
npm package: @seyarabata/cli
Description: Official Seyarabata CLI — manage files, transfers, and storage from your terminal. Works with Claude Code, Codex, and other AI agents.
Latest version: 1.0.3

# Seyarabata CLI

Official command-line tool for [Seyarabata](https://seyarabata.com) file sharing. Upload files, manage transfers, and check storage from your terminal.

Works with **Claude Code**, **Codex**, and other AI agents via `--json` output and `SEYARABATA_TOKEN` env var.

## Installation

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

Requires Node.js 18+.

## Quick Start

```sh
# Authenticate (opens browser)
seyarabata login

# Upload a file
seyarabata upload report.pdf

# Upload multiple files into one transfer
seyarabata upload file1.pdf file2.pdf --title "My docs"

# Upload a folder recursively
seyarabata upload ./project-assets/
```

## Authentication

**Interactive (browser):**

```sh
seyarabata login
```

Opens your browser for OAuth2 login. Credentials are stored locally with `chmod 600`.

**Non-interactive (AI agents, CI/CD):**

```sh
export SEYARABATA_TOKEN=your_access_token
seyarabata whoami
```

## Commands

### Upload

```sh
# Single file
seyarabata upload photo.jpg

# Multiple files
seyarabata upload a.pdf b.pdf c.pdf --title "Bundle"

# Folder (hidden files like .DS_Store filtered automatically)
seyarabata upload ./dist/

# Add files to an existing transfer
seyarabata upload extra.pdf --transfer-slug abc123
```

### Transfers

```sh
seyarabata transfers list
seyarabata transfers get <slug>
seyarabata transfers rename <slug> "New title"
seyarabata transfers extend <slug>
seyarabata transfers delete <slug> --yes
```

### Files

```sh
seyarabata files list <slug>
seyarabata files download <slug>
seyarabata files download <slug> <fileId> -d ./downloads/
seyarabata files delete <slug> <fileId> --yes
```

### Account

```sh
seyarabata whoami
seyarabata storage
seyarabata logout
```

## JSON Output

All commands support `--json` for machine-readable output:

```sh
seyarabata upload file.pdf --json
```

```json
{
  "slug": "abc123",
  "url": "https://seyarabata.com/t/abc123",
  "files": [{ "file": "file.pdf", "slug": "abc123" }],
  "failures": []
}
```

## AI Agent Integration

Set `SEYARABATA_TOKEN` and use `--json` for structured output:

```sh
export SEYARABATA_TOKEN=your_token

# Upload and parse result
seyarabata upload data.csv --json | jq '.slug'

# List transfers
seyarabata transfers list --json | jq '.transfers[].slug'

# Download a file
seyarabata files download <slug> -d /tmp/ --json
```

## Custom Server

Connect to a self-hosted or staging server:

```sh
seyarabata login --server https://your-server.com
```

All subsequent commands use the stored server URL.

## License

MIT
npm package: @seyden/cli
Description: Suwatte Development Tools
Author: Mantton
Latest version: 2.0.9

# Suwatte CLI Tool

## Installation

```sh
npm i -g @suwatte/cli
```

## Usage

```sh
Suwatte Development Tools.

Options:
  -V, --version    output the version number
  -h, --help       display help for command

Commands:
  build [options]  Builds valid runners in project directory.
  serve [options]  Builds & Serves a List on the local network.
  help [command]   display help for command
```

## Commands

### `daisuke build`

```sh
Usage: daisuke build [options]

Builds valid runners in project directory.

Options:
  --noList    Skips generating the runner list.
  -h, --help  display help for command
```


### `daisuke serve`

```sh
Usage: daisuke serve [options]

Serves a built source list

Options:
  -p, --port <string>  Port to run the server
  -h, --help           display help for command
```
npm package: @seydx/fix-path
Description: Fix the $PATH on macOS and Linux when run from a GUI app
Author: Sindre Sorhus
Latest version: 3.0.1

# fix-path [![Build Status](https://travis-ci.org/sindresorhus/fix-path.svg?branch=master)](https://travis-ci.org/sindresorhus/fix-path)

> Fix the `$PATH` on macOS when run from a GUI app

Useful for Electron apps as GUI apps on macOS and Linux doesn't inherit the `$PATH` defined in your dotfiles *(.bashrc/.bash_profile/.zshrc/etc)*.

## Install

```
$ npm install fix-path
```

## Usage

```js
const fixPath = require('fix-path');

console.log(process.env.PATH);
//=> '/usr/bin'

fixPath();

console.log(process.env.PATH);
//=> '/usr/local/bin:/usr/bin'
```

## Related

- [shell-path](https://github.com/sindresorhus/shell-path) - Get the `$PATH` from the shell
npm package: @seydx/fritzbox
Description: A promised based utilty for accessing a fritzbox via tr064
Author: SeydX
Latest version: 2.3.1

# @seydx/fritzbox

> A promise based library for accessing a fritzbox via TR-064 API of an AVM Fritz!Box. Forked from [@ulfalfa](https://gitlab.com/ulfalfa/fritzbox)

## Features

This library is capable of:

- Supports the complete command language of the TR-064 API of an Fritz!Box
- No callback, only promises
- SSL encryption and authentication

## Install

```
npm install @seydx/fritzbox
```

## Usage

### Getting the info about the fritzbox

With the method `exec` you can access all services and actions in the fritz box even with parameters

```js
const Fritzbox = require('@seydx/fritzbox');
const fritzbox = new Fritzbox({ username: 'test', password: 'testPwd123' });

// Async/Await:
async function getDeviceInfo () {
  try {
    const info = await fritzbox.exec(
      'urn:DeviceInfo-com:serviceId:DeviceInfo1',
      'GetInfo'
    );
    console.log(info);
  } catch (err) {
    console.error(err);
  }
}
```

### Getting all currently known hosts by Fritz!Box

```js
const Fritzbox = require('@seydx/fritzbox');
const fritzbox = new Fritzbox({ username: 'test', password: 'testPwd123' });

// Async/Await:
async function getHosts () {
  try {
    const allHosts = await fritzbox.getAllHosts();
    console.log(allHosts);
  } catch (err) {
    console.error(err);
  }
}
```

### Retrieving all services with their corresponding actions

```js
const Fritzbox = require('@seydx/fritzbox');
const fritzbox = new Fritzbox({ username: 'test', password: 'testPwd123' });

// Async/Await:
async function getServices () {
  try {
    const services = await fritzbox.describe();
    console.log(services);
  } catch (err) {
    console.error(err);
  }
}
```
npm package: @seydx/journalctl
Description: Module for consuming the Systemd Journal
Author: Juergen Fitschen
Latest version: 1.0.0

# Journalctl

This is a module for accessing the all mighty Systemd Journal and its handy dandy key-value store hidden behind every log line. In the background it spawns a journalctl process with the output format ```json``` and parses the serialised object stream.

## API

Require the module and create a new instance:

```js
const Journalctl = require('@seydx/journalctl');
const journalctl = new Journalctl([opts]);
```

The optional object ```opts``` can have the following properties:
 * ```identifier```: Just output logs of the given syslog identifier (or identifier if defined as array) (cf. man journalctl, option '-t')
 * ```unit```: Just output logs originated from the given unit file (or files if defined as array) (cf. man journalctl, option '-u')
 * ```filter```: An array/string of matches to filter by (cf. man journalctl, matches)
 
 ```js
const Journalctl = require('journalctl');

let opts = {
	identifier: ['systemd', 'homebridge'],
	unit: ['homebridge-instances-platform', 'homebridge'],
	filter: ['Stopped Node.js HomeKit Server', 'Started Node.js HomeKit Server']
}

const journalctl = new Journalctl(opts);

journalctl.on('event', (event) => {
	
	console.log(event)
	
});
 ```

### Event: 'event'

```js
journalctl.on('event', (event) => {});
```

Is fired on every log event and hands over the object ```event``` describing the event. *(Oh boy ... so many events in one sentence ...)*

### Method: stop

```js
journalctl.stop([callback]);
```

Stops journalctl and calls the optional ```callback``` once everything has been killed.


## Contributing

This project is forked from [@jue89](https://github.com/jue89/node-journalctl). Only a few improvements have been added so that the module can work with my Homebridge plugin (homebridge-instances-platform)
npm package: @seydx/node-av-win32-arm64
Description: node-av (win32-arm64 binary)
Author: seydx
Latest version: 2.1.0

# @seydx/node-av-win32-arm64

Platform-specific binary for [node-av](https://github.com/seydx/av).

**This package is automatically installed as an optional dependency. You should not install it directly.**

## Platform

- OS: win32
- Architecture: arm64

## License

MIT
npm package: @seydx/node-av-win32-x64
Description: node-av (win32-x64 binary)
Author: seydx
Latest version: 2.1.0

# @seydx/node-av-win32-x64

Platform-specific binary for [node-av](https://github.com/seydx/av).

**This package is automatically installed as an optional dependency. You should not install it directly.**

## Platform

- OS: win32
- Architecture: x64

## License

MIT
npm package: @seydx/node-rtsp-stream
Description: Node RTSP Module for homebridge-camera-ui
Author: David Jsa
Latest version: 1.3.3

node-rtsp-stream
================

Stream any RTSP stream and output to websocket for consumption by [jsmpeg](https://github.com/phoboslab/jsmpeg). HTML5 streaming video! (Requires ffmpeg)

Usage:

```
$ npm install node-rtsp-stream
```

On server:
```
Stream = require('node-rtsp-stream')
stream = new Stream({
  name: 'name',
  streamUrl: 'rtsp://184.72.239.149/vod/mp4:BigBuckBunny_115k.mov',
  wsPort: 9999,
  ffmpegOptions: { // options ffmpeg flags
    '-stats': '', // an option with no neccessary value uses a blank string
    '-r': 30 // options with required values specify the value after the key
  }
})
    
```

On client:
```
<html>
<body>
	<canvas id="canvas"></canvas>
</body>

<script type="text/javascript" src="jsmpeg.min.js"></script>
<script type="text/javascript">
	player = new JSMpeg.Player('ws://localhost:9999', {
	  canvas: document.getElementById('canvas') // Canvas should be a canvas DOM element
	})	
</script>
</html>
```

For more information on how to use jsmpeg to stream video, visit https://github.com/phoboslab/jsmpeg

Please note that framerate from cameras must be greater than or equal to 15fps for mpeg1 encoding, otherwise ffmpeg errors will prevent video encoding to occur. If you have a camera with advanced configuration options, make sure it streams video at a recommended 25fps.
npm package: @seydx/steno
Description: Specialized fast async file writer
Author: Typicode
Latest version: 1.0.0

# Steno [![](http://img.shields.io/npm/dm/steno.svg?style=flat)](https://www.npmjs.org/package/steno) [![Node.js CI](https://github.com/typicode/steno/actions/workflows/node.js.yml/badge.svg)](https://github.com/typicode/steno/actions/workflows/node.js.yml)

> Specialized fast async file writer

**Steno** makes writing to the same file often/concurrently fast and safe.

Used in [lowdb](https://github.com/typicode/lowdb).

_https://en.wikipedia.org/wiki/Stenotype_

## Features

- ⚡ Fast (see benchmark)
- 🐦 Lightweight (~6kb)
- 👍 ⚛️ Safe: No partial writes (writes are atomic)
- 👍 🏁 Safe: No race conditions (writes are ordered even if they're async)

## Usage

```javascript
import { Writer } from 'steno'

// Create a singleton writer
const file = new Writer('file.txt')

// Use it in the rest of your code
async function save() {
  await file.write('some data')
}
```

## Benchmark

`npm run benchmark` (see `src/benchmark.ts`)

```
Write 1KB data to the same file x 1000
  fs     :   62ms
  steno  :    1ms

Write 1MB data to the same file x 1000
  fs     : 2300ms
  steno  :    5ms
```

_Steno uses a smart queue and avoids unnecessary writes._

## License

MIT - [Typicode](https://github.com/typicode)
npm package: @seydx/zeromq-binaries
Description: A module for copying zeromq binaries built using Azure Pipelines into the zeromq package.
Author: Don Jayamanne
Latest version: 0.2.3

# vscode-zeromq

This is an npm module for using zeromq binaries build in Azure Pipelines in a Node project. It is used by the [Jupyter Extension for VS Code](https://github.com/microsoft/vscode-jupyter-internal).
The binaries can be found in the releases section of the [zeromq-prebuilt](https://github.com/microsoft/zeromq-prebuilt) repo.

# How it works

* The npm package `zeromq` is installed as a node dependency.
* This npm package is installed as a dev dependency.
* As part of the post install, the exported function `downloadZMQ` should be invoked as follows:
```typescript
const { downloadZMQ } = require('vscode-zeromq');
// Download all binaries for all platforms and all architectures into the `node_modules/zeromq/prebuilds` folder.
await downloadZMQ()
```
	* This will replace all of the binaries found in the `zeromq` module with the prebuilt binaries.


# Usage example
Run the following as a `postinstall` step (with the desired arguments).

```typescript
const { downloadZMQ } = require('vscode-zeromq');
// Download all binaries for all platforms and all architectures
await downloadZMQ()
```

## Contributing

This project welcomes contributions and suggestions.  Most contributions require you to agree to a
Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us
the rights to use your contribution. For details, visit https://cla.opensource.microsoft.com.

When you submit a pull request, a CLA bot will automatically determine whether you need to provide
a CLA and decorate the PR appropriately (e.g., status check, comment). Simply follow the instructions
provided by the bot. You will only need to do this once across all repos using our CLA.

This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/).
For more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or
contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments.

## Trademarks

This project may contain trademarks or logos for projects, products, or services. Authorized use of Microsoft
trademarks or logos is subject to and must follow
[Microsoft's Trademark & Brand Guidelines](https://www.microsoft.com/en-us/legal/intellectualproperty/trademarks/usage/general).
Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship.
Any use of third-party trademarks or logos are subject to those third-party's policies.
npm package: @seyioo/progressbar.js
Description: An easy way to create terminal progress bar !
Author: sey.#4485
Latest version: 4.0.0

<div align="center"><h1>ProgressBar.JS</h1></div>
An easy way to create terminal progress bar !

# Summary
- [Requirements](#requirements)
- [Installation](#installation)
- [Usage](#usage)

# Requirements
- [Node](https://nodejs.org/en/) - 16.15.0
- [NPM](https://www.npmjs.com/) - 8.5.5

# Installation
To install the package, execute this command in the terminal:
```bash
npm install @seyioo/progressbar.js
```

# Usage
Create a customizable progress bar !

## Quick Start
You just have to import the functions as well:
```js
// Import the functions
const ProgressBar = require('@seyioo/progressbar.js');
```

### Example
```js
// Import the functions
const ProgressBar = require('@seyioo/progressbar.js');

// Init your progress bar
const bar = new ProgressBar(
    3, // The number of stages.
    ['%', '-'] // [%%%%%%%%%%----------]
    ['|', '|'] // |%%%%%%%%%%----------|
);
// |--------------------|

bar.reload(); // |--------------------|
bar.next(); // |%%%%%%--------------|
bar.next(); // |%%%%%%%%%%%%%-------|
bar.next(); // |%%%%%%%%%%%%%%%%%%%%|
bar.next(); // |--------------------|
bar.previous(); // |%%%%%%%%%%%%%%%%%%%%|
bar.previous(); // |%%%%%%%%%%%%%-------|
bar.previous(); // |%%%%%%--------------|
bar.previous(); // |--------------------|
bar.previous(); // |%%%%%%%%%%%%%%%%%%%%|
bar.set(0); // |--------------------|
bar.set(4); // |%%%%%%--------------|
bar.set(7); // |%%%%%%--------------|
bar.set(-1); // |--------------------|
bar.set(-4); // |--------------------|
```
npm package: @seyoon20087/react-loadable
Description: A drop-in replacement for upstream `react-loadable` that features:
Latest version: 5.6.2

# Revised `react-loadable`

A drop-in replacement for upstream `react-loadable` that features:

- No `React.StrictMode` warnings (i.e. removed usage of legacy context and `UNSAFE_componentWillMount`)
- Webpack plugin tweaked to work with Webpack 4.41.1+ (also works with v5)
- Types included by default (NB: you should remove `@types/react-loadable`, if you have installed)

I published this because the legacy context API will be removed in React 19 (see [here][react-legacy-context-warn-1] and [here][react-legacy-context-warn-2]), which is not a good news for projects like [Docusaurus][docusaurus].

This package was published in the hope of resolving this issue like this.

## Note

Note that the version starts with `5.6.0` to match [semantic versioning][semver-link].

This package is intended as a _drop-in replacement_ for existing projects using `react-loadable`.
That is, I do NOT plan to add new features, or address tree-shaking issues.

For new projects I recommend using [`React.lazy`](https://react.dev/reference/react/lazy) or [`loadable-components`](https://loadable-components.com/) instead.

## Requirements

This package uses the new React Context API (and the `contextType` API), so your version of `react` needs to be 16.6.0 or later.

The Webpack plugin also requires 4.41.1+ or later (it also works on v5).

To install (if you're on yarn):

```yarn
yarn add react-loadable@npm:@seyoon20087/react-loadable
```

Note: The Babel plugin **will not work** if you install it via other means like `yarn install @seyoon20087/react-loadable` itself.

To test it on a current framework (like [Docusaurus][docusaurus]), use the [`resolutions`][yarn-resolutions] or [`overrides`][npm-overrides] feature in your `package.json`.

Example:
```json
{
  "resolutions": {
    "react-loadable": "npm:@seyoon20087/react-loadable"
  }
}
```

## API Reference

The API reference is identical, so you should be able to use it without updating your code.

For more information, please refer to the [upstream README](https://github.com/jamiebuilds/react-loadable/tree/master#------------api-docs).

The `Manifest` type from `react-loadable/webpack` is the only exception however I don't expect existing projects to break from working.

## License

This package is licensed under MIT -- see LICENSE in this repo for more details.


[react-legacy-context-warn-1]: https://github.com/facebook/react/blame/5998a775194f491afa5d3badd9afe9ceaf12845e/packages/react-reconciler/src/ReactFiberBeginWork.js#L1104-L1110C8
[react-legacy-context-warn-2]: https://github.com/facebook/react/blame/5998a775194f491afa5d3badd9afe9ceaf12845e/packages/react-reconciler/src/ReactFiberClassComponent.js#L413C5-L428C6
[docusaurus]: https://docusaurus.io/
[semver-link]: https://semver.org/
[npm-overrides]: https://docs.npmjs.com/cli/v8/configuring-npm/package-json#overrides
[yarn-resolutions]: https://classic.yarnpkg.com/en/docs/selective-version-resolutions
npm package: @seyoungsong/hanjadict
Description: A lightweight JavaScript library for looking up Korean Hanja characters with their 훈음 (Hun-eum) meanings and pronunciations
Author: Seyoung Song
Latest version: 0.4.5

# HanjaDict (한자사전)

[![npm version](https://img.shields.io/npm/v/@seyoungsong/hanjadict.svg)](https://www.npmjs.com/package/@seyoungsong/hanjadict)
[![npm downloads](https://img.shields.io/npm/dm/@seyoungsong/hanjadict.svg)](https://www.npmjs.com/package/@seyoungsong/hanjadict)
[![npm bundle size](https://img.shields.io/bundlephobia/min/@seyoungsong/hanjadict.svg)](https://bundlephobia.com/package/@seyoungsong/hanjadict)
[![License](https://img.shields.io/github/license/seyoungsong/hanjadict-js.svg)](https://github.com/seyoungsong/hanjadict-js/blob/master/LICENSE)
[![TypeScript](https://img.shields.io/badge/TypeScript-supported-blue.svg)](https://www.typescriptlang.org/)

A lightweight JavaScript/TypeScript package for looking up Hanja (Chinese characters used in Korea) information, specifically focusing on 훈음 (hun-eum).

## Installation

```sh
npm install hanjadict
# or
yarn add hanjadict
```

## Usage

```js
import { lookup, isHanja, pronunciation, tableData } from "hanjadict"

// Look up a Hanja character
const result = lookup("雪")
console.log(result)
// Output: '눈 설'

// Check if a character is Hanja
const isHanjaChar = isHanja("雪")
console.log(isHanjaChar)
// Output: true

// Get only the pronunciation (음/音) part
const pron = pronunciation("雪")
console.log(pron)
// Output: '설'

// Access the raw dictionary data
console.log(Object.keys(tableData).length)
// Output: 53458

// If the character is not found, returns null
const notFound = lookup("xyz")
console.log(notFound) // Output: null
```

## Features

- Fast lookups using a pre-compiled dictionary
- Simple API with intuitive functions
- Comprehensive dictionary of 53,458 characters
- Lightweight with no external dependencies
- TypeScript support
- Access to raw dictionary data for advanced usage

## Available Functions

- `lookup(c)`: Get the full 훈음 information for a character
- `isHanja(c)`: Check if a character is a valid Hanja in the dictionary
- `pronunciation(c)`: Extract only the Sino-Korean pronunciation (음/音) part
- `tableData`: Access the raw dictionary data (as a JavaScript object)

## What is 훈음 (Hun-eum)?

훈음 (訓音) refers to the combined Korean native word meaning (훈/訓) and Sino-Korean pronunciation (음/音) of a Hanja character. For example:

- 雪 (눈 설): "눈" is the 훈 (native Korean word for "snow") and "설" is the 음 (Sino-Korean pronunciation)
- 山 (메 산): "메" is the 훈 (native Korean word for "mountain") and "산" is the 음

This concept is unique to Korean language and helps learners understand both the meaning and pronunciation of Hanja characters.

## Special Formats Handled

The `pronunciation()` function can handle various dictionary formats:

- Normal format: "눈 설" → returns "설"
- Comma-separated: "샘솟을 집, 샘솟을 설" → returns "집"
- Slash-separated: "제비 연/잔치 연" → returns "연"
- Parentheses: "영양 령(영)" → returns "령"
npm package: @seyph.com/eslint-config
Description: ESLint configuration used by SEYPH.
Author: @seyph.com
Latest version: 1.1.0

# SEYPH ESLint config

## Whats included?

- Standard config base;
- React plugin;
- React Hooks plugin;
- React Perfomance plugin;
- JSX a11y plugin;
- Prettier;

## Setup

1. Install the dependencies

```
npm i -D eslint @seyph.com/eslint-config
```

2. Create a `.eslintrc.json` file extending the config:

```
{
  "extends": "@seyph.com/eslint-config/react"
}
```

> You can also use a `.eslintrc.js` instead of JSON if you prefer.

> Based on @rocketseat eslint-config
npm package: @seyph/eslint-config
Description: ESLint + Prettier config for React/NextJS
Author: @seyph
Latest version: 1.2.0

# SEYPH ESLint config

## Whats included?

- Airbnb config base;
- Typescript parser and plugin;
- React and Hooks plugins;
- Import plugins;
- JSX a11y plugin;
- Tailwind CSS plugin;
- Prettier integration;

## Setup

1. Install the dependencies

```
npm i -D eslint @seyph/eslint-config
```

2. Create a `.eslintrc.json` file extending the config:

```
{
  "extends": "@seyph"
}
```

> You can also use `.eslintrc.js` or `.eslintrc` instead of JSON if you prefer.
npm package: @seyte/eslint-config-nest
Description: Configuración eslint para proyectos backend con NestJS de Seyte
Author: Seyte
Latest version: 2.0.1

# Seyte. Configuración de eSLint para NestJS

Esta configuración se debe utilizar en cada nuevo proyecto de NestJS

## Instalación y configuración

1. cd directorio-del-proyecto
2. npm i -D eslint @seyte/eslint-config-nest
3. touch .eslintrc.cjs
4. Agregar el siguiente código en .eslintrc.cjs

```js
/* eslint-env node */
module.exports = {
    extends: [
        '@seyte/eslint-config-nest'
    ],
};
```

5. Agregar un script en packague.json si no lo ha generado NestJS

```json
"lint": "eslint \"{src,apps,libs,test}/**/*.ts\" --fix",
```

## ¿Como usar esta configuración?
   
- **Configurando el IDE** para que utilize eslint + prettier con la configuración existente en la raíz del proyecto y que cada vez que guardemos un fichero te pase el linter (eslint) y el formateador (prettier)
- **Ejecutando el comando** ```npm run lint```

## Reglas personalizadas incluidas

- @seyte/esling-plugin-nest_decorator_scope_request
  Esta regla lanza un warning cuando un Controlador, Injectable o Processor no tiene el Scope.REQUEST habilitado. Se lanza una adevertencia porque esto no siempre será necesario pero sirve de recordatorio por si nos hace falta en algún momento si utilizamos miembros de clase compartidos entre peticiones. 
  > Recordemos de que NestJS utiliza instancias únicas (singleton) en su contenedor de dependencias y se reutilizan en cada petición, por lo que si usamos miembros de clase puede haber conflicto entre una petición y otra.

## Autores

- Rubén (rgazquez)
npm package: @seyte/eslint-plugin-nest_decorator_scope_request
Description: ESLint plugin for enforce decorators scope REQUEST
Author: Seyte
Latest version: 2.0.0

# Seyte. Regla NestJS que comprueba el Scope.REQUEST en Controller, Injectable y Processor

Regla que salta cuando un Controlador, Injectable o Processor no tiene el Scope.REQUEST habilitado. Sirve de recordatorio por si nos hace falta en algún momento configurar el Scope.REQUEST para no compartir miembros de clase entre peticiones.

>Recordemos que NestJS utiliza instancias únicas (singleton) en su contenedor de dependencias y se reutilizan en cada petición, por lo que si usamos miembros de clase puede haber conflicto entre una petición y otra.

## Instalación

```
npm i -D @seyte/eslint-plugin-nest_decorator_scope_request.js
```

## Configuración

1. Agregar en el fichero de configuración de eslint del proyecto, apartado **plugins**:

```
plugins: [
    ...
    "@seyte/nest_decorator_scope_request"
],
rules: {
    ...
    "@seyte/nest_decorator_scope_request/rule": "warn",
}
```
npm package: @seyte/nestjs-criteria-pattern
Description: Libreria de Seyte que implementar el patrón Criteria con un transformador para un queryBuilder de TypeORM, con flexibilidad para implementar otros transformadores.
Author: Seyte
Latest version: 1.0.0

# Seyte. NestJS Patrón Criteria

## Instalación

```sh
npm install @seyte/nestjs-criteria-pattern
```

## ¿Como usar?

1. Importamos el módulo en aquel módulo donde vallamos hacer uso

```ts
// app.module.ts

import { CriteriaPatternModule } from '@seyte/nestjs-criteria-pattern';

@Module({
    ...,
    imports: [
        ...,
        CriteriaPatternModule
        ...
    ],
    ...
})
```

2. Hacemos uso del servicio para transformar el Dto de criteria en un querBuilder de TypeORM

2.1. Con "body" (requiere un método http que no sea get)

```ts
// app.controller.ts

import {
  CriteriaBodyDto,
  CriteriaTypeormTransformer,
} from '@seyte/nestjs-criteria-pattern';

import { Body, Controller, Get, Post, Scope } from '@nestjs/common';
import { InjectRepository } from '@nestjs/typeorm';
import {
  CriteriaBodyDto,
  CriteriaTypeormTransformer,
} from '@seyte/nestjs-criteria-pattern';
import { User } from './entities/user.entity';
import { Repository } from 'typeorm';

@Controller({ path: 'app', scope: Scope.DEFAULT })
export class AppController {
  constructor(
    private readonly _criteriaTypeormTransformer: CriteriaTypeormTransformer,
    @InjectRepository(User)
    private readonly _userRepository: Repository<User>,
  ) {}

  @Post('test')
  async getTest(@Body() body: CriteriaBodyDto) {
    const queryBuilder = this._criteriaTypeormTransformer.createQueryBuilder(
      this._userRepository,
      body,
    );

    const data = await queryBuilder.getMany();

    return {
      message: 'OK',
      data,
    };
  }
}
```

2.2. Con "query" (el dto se formará con query params)

```ts
// app.controller.ts

import {
  CriteriaBodyDto,
  CriteriaTypeormTransformer,
} from '@seyte/nestjs-criteria-pattern';

import { Body, Controller, Get, Post, Scope } from '@nestjs/common';
import { InjectRepository } from '@nestjs/typeorm';
import {
  CriteriaQueryDto,
  CriteriaTypeormTransformer,
} from '@seyte/nestjs-criteria-pattern';
import { User } from './entities/user.entity';
import { Repository } from 'typeorm';

@Controller({ path: 'app', scope: Scope.DEFAULT })
export class AppController {
  constructor(
    private readonly _criteriaTypeormTransformer: CriteriaTypeormTransformer,
    @InjectRepository(User)
    private readonly _userRepository: Repository<User>,
  ) {}

  @Get('test')
  async getTest(@Query() query: CriteriaQueryDto) {
    const queryBuilder = this._criteriaTypeormTransformer.createQueryBuilder(
      this._userRepository,
      query,
    );

    const data = await queryBuilder.getMany();

    return {
      message: 'OK',
      data,
    };
  }
}
```
npm package: @seyyidt/kun-js
Description: Intent-driven code generator — write .kun requirements, get working code
Latest version: 0.1.4-alpha

# kun

[![npm](https://img.shields.io/npm/v/@seyyidt/kun-js)](https://www.npmjs.com/package/@seyyidt/kun-js)

**kun** (كُن) — "Be." An intent-driven code generator.

You state intent. Kun translates it into real code.

---

## What is kun?

kun is a CLI tool that generates source code from `.kun` requirement files using LLMs. You describe _what_ a file should do, and kun produces a working first draft.

```
SearchBar.vue.kun   →   kun build   →   SearchBar.vue
```

The filename encodes the output. Everything before `.kun` is the file that gets generated.

## Install

```bash
npm install -g @seyyidt/kun-js
# or
npm install --save-dev @seyyidt/kun-js
```

Requires Node.js >= 20.

## Quick start

**1. Configure your LLM provider**

Create a `kun.config.js` (or `kun.config.ts`) in your project root:

```js
// kun.config.js
import "dotenv/config";

export default {
  provider: "anthropic",
  model: "claude-sonnet-4-20250514",
  apiKey: process.env.ANTHROPIC_API_KEY,
};
```

**2. Write a `.kun` file**

```
@target vue3

A button that copies text to clipboard.
Shows "Copied!" for two seconds after click.
Uses no external libraries.
```

**3. Generate**

```bash
kun build CopyButton.vue.kun    # generates CopyButton.vue
kun build                       # builds all .kun files in the project
kun build --dry-run             # preview the prompt without calling the API
```

## `.kun` file format

Plain, structured natural language. No strict syntax — clarity is the only rule.

```
@target    vue3
@component SearchBar

intent:
  A search input used across the app header.
  Debounces input and emits a search event.

props:
  placeholder: string (default: "Search…")
  debounceMs:  number (default: 300)

emits:
  search(query: string)

behavior:
  on input  → debounce, then emit search
  on Escape → clear input and emit empty string

constraints:
  - no external libraries
  - fully keyboard accessible
```

Write _what_, not _how_. The LLM decides the implementation.

## Providers

kun is provider-agnostic. Built-in support for:

| Provider | Config |
|---|---|
| Anthropic (Claude) | `provider: "anthropic"` |
| OpenAI | `provider: "openai"` |
| Any OpenAI-compatible endpoint | `provider: "custom"`, `baseUrl: "..."` |

```js
// OpenAI
export default {
  provider: "openai",
  model: "gpt-4o",
  apiKey: process.env.OPENAI_API_KEY,
};

// Local / Ollama / vLLM / LM Studio
export default {
  provider: "custom",
  model: "llama-3.3-70b",
  baseUrl: "http://localhost:11434/v1",
};
```

## How it works

`kun build` reads a `.kun` file, computes the git diff against its last committed state, and sends both the full requirements and the diff to an LLM. If a source file already exists, the LLM patches it. If not, it generates a new one.

## The git sync contract

When you commit both a `.kun` file and its generated source file together, they are declared in sync. After that, you own the generated code — edit it freely. The `.kun` file remains as documentation of intent.

## License

[MIT](LICENSE)
npm package: @sez-ai/responsive-sketchpad
Description: A completely responsive sketchpad based on HTML5 canvas
Author: Theisen Sanders
Latest version: 0.2.5

# Responsive-Sketchpad [![npm version](https://badge.fury.io/js/responsive-sketchpad.svg)](http://badge.fury.io/js/responsive-sketchpad)

A completely responsive, HTML5 canvas sketchpad for use on desktop and mobile browsers

> No longer dependent on jQuery!


## Getting Started

### Installation

`npm i @sez-ai/responsive-sketchpad`

### Example

Create a sketchpad

html:
```html
<body>
<div id="sketchpad"></div>
</body>
```

javascript:
```js
var Sketchpad = require('responsive-sketchpad');

var el = document.getElementById('sketchpad');
var pad = new Sketchpad(el);
pad.setLineColor('#4CAF50');
```

## Running tests

`npm install`

`npm test`