open-index/open-npm huggingface dataset:
npm package: @lpink/utils
Description: js 方法库
Author: F
Latest version: 1.1.1

### 方法库

* compactObject
* curry
* deepGet
* delay
* flattenObject
* get
* isFunction
* isNil
* isPlainObject
* metaDataMap
* requestIdleCallback

### rollup

* 打包格式 format: amd | umd | iife | system | es | cjs

* rollup只处理函数和顶层的import/export变量

* 采用babel-plugin-import进行按需引入
npm package: @lpj.app/production-ready-npm-package
Description: A production-ready npm package from a tutorial
Author: Luca-Pascal Junge
Latest version: 1.0.2

# Installation
```bash
npm i ...
```
# Usage
```js
...
```

## Output 
...

### 

# Other
- [npm package site]()
- Made with [this tutorial](https://snyk.io/blog/best-practices-create-modern-npm-package/?utm_campaign=con_240403_snyksec-yt&utm_medium=so-org&utm_source=yto&utm_content=con-md)
npm package: @lpj.app/simple-npm-package
Description: ```bash npm i @lpj.app/simple-npm-package ``` # Usage ```js require('@lpj.app/simple-npm-package'); ```
Author: Luca-Pascal Junge
Latest version: 1.0.1

# Installation
```bash
npm i @lpj.app/simple-npm-package
```
# Usage
```js
require('@lpj.app/simple-npm-package');
```

## Output 
The package only logs **Hello World** in Terminal

### 

# Other
- [npm package site](https://www.npmjs.com/package/@lpj.app/simple-npm-package)
- Made with [this tutorial](https://snyk.io/blog/best-practices-create-modern-npm-package/?utm_campaign=con_240403_snyksec-yt&utm_medium=so-org&utm_source=yto&utm_content=con-md)
npm package: @lpjs/kuririn
Description: 前端业务跟踪错误上报注入
Author: linyupark@gmail.com
Latest version: 1.0.1

## 地表最强(简化)前端业务跟踪错误上报注入
----
### Changelog
 * [1.0.2] 参考国金参数，路由更改后扫描页面元素上报自定义动作、事件
 * [1.0.0] 初版，+mod_performance +mod_logicTracker +mod_error +mod_userinfo 目前实现4个模块

----

### 模块说明

#### `mod_actionEvent` 

行为事件，当路由变化后扫描元素属性 
 * krin-eid （事件id）
 * krin-ename （事件名称）

```html
<!-- 举例一个下载链接点击的上报 -->
<a href='下载' krin-eid='503021' krin-ename='download'>下载App</a>
```

```js
// 举例点击后会上报的数据结构
{
  type: 'action',
  event: {
    id: '503021',
    name: 'download'
  }，
  // 其他 userinfo 等其他模块数据
}
```

#### `mod_error` 

捕获全局js错误，并尽可能将错误相关信息上报

```js
{
  type: 'error',
  reason: 'js file',
  error: {
    filename, // 出错文件或页面地址
    lineno, // 第几行，捕捉不到则显示0
    colno, // 第几列
    message, // 出错消息
    // ... 未来可继续添加
  },
  // 其他模块数据
}
```

#### `mod_mod_logicTracker` 

默认开启，设定需要捕获的本地数据粘附到每个api请求链接地址中

通过设置 injectAPI配置的函数回调来获取数据，
比如在用户登录后获取session中的user_id数据粘附到每次ajax请求中

```js
injectAPI: function() {
  return sessionStorage.getItem('user_id')
}
```


#### `mod_userinfo` 用户设备数据

每当页面历史记录发生变化（包括载入跟hash变动）会生成一份用户设备相关的数据，在每次上报的时候带入

#### `mod_performance` 性能指标（可选，待完善）

可选择在首次进入或切换页面生成一份页面渲染以及网络相关的性能数据上报

----

### API

new Kuririn(options: IConstructor, overrideUserinfo: IUserinfo)

```ts
// 创建参数
interface IConstructor {
  appId: string | number; // 项目ID
  appName: string; // 项目名
  injectAPI?: Function; // 注入api请求数据的回调方法，比如获取session cookie中的userid
  matchAPI?: object; // 200 status 接口中需要匹配上报的api（eg: { error_no: [334064, ...] })
  modules?: string[]; // 激活功能，不设定则全部激活
  reportUrl?: string; // 上报接口地址
  debug?: boolean; // 开启打印日志
}

// 用户信息接口
interface IUserinfo {
  url?: string; // 当前地址
  history?: string[]; // 历史访问地址保存最近5条
  title?: string; // 页面标题
  agent?: string; // useragent
  platform?: string; // 设备平台
}

```

### 调用范例

```html
<script src="https://cdn.jsdelivr.net/npm/@lpjs/kuririn/dist/kuririn.min.js"></script>
<script>
  window.KuririnInstance = new Kuririn({
    appId: 'shop-hapc',
    appName: '华安积分商城',
    injectAPI: function() {
      return sessionStorage.getItem('user_info')
    },
    matchAPI: { error_no: [334064] },
    debug: true
  }, {
    // 自定义额外的userinfo信息
    clientId: '客户唯一标识符',
    deviceId: '设备号'
  })

  // sdk或客户端覆盖数据
  window.KuririnInstance.userinfo.time = Date.now()
</script>
```

#### CDN

https://cdn.jsdelivr.net/npm/@lpjs/kuririn/dist/kuririn.min.js

https://unpkg.com/@lpjs/kuririn/dist/kuririn.min.js
npm package: @lpks/react-native-isiosapponmac
Description: Export method isiOSAppOnMac
Author: Nguyễn Hải Quang
Latest version: 1.0.2

# @lpks/react-native-isiosapponmac

React Native IsIosAppOnMac

## Installation

```sh
npm install @lpks/react-native-isiosapponmac --save
```

## Usage

```js
import isiOSAppOnMac from '@lpks/react-native-isiosapponmac';

const result = isiOSAppOnMac() ? "iOS app running on Mac" : "iOS app not running on Mac";

console.log(result);
```

## License

MIT
npm package: @lppx/lanshare
Description: 这是一个局域网分享工具
Author: lipanpanx
Latest version: 1.0.9

# LAN Share(本项目使用智谱GLM系列模型辅助开发)

一个简洁高效的局域网/广域网 文件分享工具。通过简单的命令行操作，快速搭建文件分享服务，支持拖放上传、二维码分享、实时设备连接状态等功能。

本项目可借助中国联通和中国电信的5G SA基站下发的IPV6地址。把自己电脑上的文件分享到世界上的任意位置，而不需要服务器

## 功能特性

- **快速启动** - 一条命令启动局域网文件分享服务
- **拖放上传** - 支持拖放文件到浏览器直接上传
- **二维码分享** - 生成二维码方便移动设备快速访问
- **实时设备状态** - Socket.IO 实时显示已连接的设备
- **多网卡支持** - 自动检测并支持选择不同的网络接口
- **IPv4/IPv6 支持** - 支持两种 IP 协议，适应不同网络环境
- **自定义目录** - 可指定文件存储位置

## 安装

```bash
npm install -g @lppx/lanshare
```

## 使用

### 启动服务

```bash
lanshare start
# 或使用简写
lsh start
```

启动后会进入交互式配置界面：

1. **选择网卡** - 从检测到的网络接口中选择一个
2. **选择 IP 地址** - 支持 IPv4 和 IPv6 地址
3. **输入端口号** - 默认 3001
4. **指定存储目录** - 可留空使用默认目录 `~/lanshare-uploads`

配置完成后会自动打开浏览器访问分享页面。

### 直接启动（跳过选择）

如果只有一个可用网卡，可直接运行：

```bash
lanshare
```

## Web 界面

启动后在浏览器中可以看到：

| 功能区域 | 描述 |
| --- | --- |
| 上传区域 | 拖放文件或点击选择文件上传 |
| 文件列表 | 显示已分享的文件、大小、下载次数 |
| 设备列表 | 实时显示当前连接的设备 |
| 分享按钮 | 复制链接或显示二维码 |

## API 接口

### 上传文件

```bash
POST /upload
Content-Type: multipart/form-data

file: <文件>
```

### 获取文件列表

```bash
GET /api/files
```

### 下载文件

```bash
GET /download/<filename>
```

### 获取设备列表

```bash
GET /api/devices
```

## 开发

### 环境要求

- Node.js >= 14.0.0

### 克隆并构建

```bash
git clone https://github.com/lipanpanx/lanshare.git
cd lanshare
npm install
npm run build
```

### 本地运行

```bash
npm run start
```

## 技术栈

- TypeScript - 类型安全
- Express.js - Web 框架
- Socket.IO - 实时通信
- Commander - CLI 框架
- Multer - 文件上传处理
- QRCode - 二维码生成

## 日志

日志文件存储在 `~/.lanshare/logs/` 目录下，便于排查问题。

## License

MIT
npm package: @lppx/webcamera
Description: 在局域网内实时查看移动设备摄像头的网络应用
Latest version: 2.1.3

# WebCamera(本项目使用智谱GLM系列模型辅助开发)

在局域网内实时查看移动设备摄像头的网络应用。

通过简单的网页界面，将手机、平板等移动设备的摄像头实时传输到电脑浏览器中查看。

## 特性

- **实时视频流** - 基于 Socket.IO 的低延迟视频传输
- **多设备支持** - 支持同时查看多个摄像头源
- **跨平台兼容** - 支持 iOS、Android 和桌面浏览器
- **HTTPS 支持** - 内置自签名证书，满足 iOS 摄像头权限要求
- **零配置** - 自动检测局域网 IP，一键启动
- **前后摄像头切换** - 移动端可自由切换摄像头

## 快速开始

### 全局安装

```bash
npm install -g @lppx/webcamera
webcamera start
```

### 使用 npx

```bash
npx @lppx/webcamera start
```

### 指定端口

```bash
webcamera start --port 8080
# 或
webcamera start -p 8080
```

## 使用方法

1. **启动服务器** - 在电脑上运行 `webcamera start`
2. **访问页面** - 浏览器自动打开，或手动访问显示的地址
3. **提供摄像头** - 在移动设备上访问同一地址，点击「摄像头提供端」
4. **查看画面** - 在电脑上点击「摄像头查看端」即可看到实时画面

## iOS 用户注意事项

> [!IMPORTANT]
> iOS Safari 要求 HTTPS 连接才能访问摄像头。

服务器已内置 HTTPS 支持，请按以下步骤操作：

1. 使用 HTTPS 地址访问（如 `https://192.168.1.x:3000`）
2. 首次访问会显示证书警告，点击「显示详细信息」→「访问此网站」
3. 确认后即可正常使用摄像头

详细说明请参阅 [iOS 使用指南](docs/IOS_GUIDE.md)。

## 本地开发

```bash
# 克隆仓库
git clone <repo-url>
cd webcamera

# 安装依赖
npm install

# 生成 HTTPS 证书（首次运行需要）
npm run generate-cert

# 开发模式运行
npm run dev

# 构建
npm run build
```

## 技术架构

```
┌─────────────────┐     Socket.IO      ┌─────────────────┐
│  摄像头提供端    │ ──────────────────► │     服务器       │
│  (移动设备)      │                    │   (Node.js)     │
└─────────────────┘                    └────────┬────────┘
                                                │
                                        Socket.IO
                                                │
                                                ▼
                                       ┌─────────────────┐
                                       │   摄像头查看端   │
                                       │   (桌面浏览器)   │
                                       └─────────────────┘
```

### 视频传输原理

1. 提供端通过 `canvas.toBlob()` 将视频帧转为 JPEG 图片
2. 图片通过 Socket.IO 实时传输到服务器
3. 服务器转发给所有查看端
4. 查看端将图片渲染到 `<img>` 元素，实现实时预览

## API

### CLI 命令

```
webcamera start [options]    启动网络摄像头服务器

选项:
  -p, --port <number>        指定服务端口 (默认: 3000)
  -v, --version              显示版本号
  -h, --help                 显示帮助信息
```

### Socket.IO 事件

**提供端 → 服务器:**

| 事件 | 说明 |
|------|------|
| `camera:provider:register` | 注册为摄像头提供端 |
| `camera:data:push` | 发送视频帧数据 |

**查看端 → 服务器:**

| 事件 | 说明 |
|------|------|
| `camera:viewer:subscribe` | 订阅摄像头列表 |

**服务器 → 查看端:**

| 事件 | 说明 |
|------|------|
| `camera:list:update` | 更新在线摄像头列表 |
| `camera:data:receive` | 接收视频帧数据 |

## 常见问题

**Q: 为什么 iOS 上无法访问摄像头？**

A: iOS 要求 HTTPS 连接。请确保使用 `https://` 地址访问，并接受证书警告。

**Q: 画面有延迟怎么办？**

A: 网络延迟是正常现象。确保设备和电脑在同一局域网内可获得最佳体验。

**Q: 如何重新生成证书？**

A: 运行 `npm run generate-cert` 即可重新生成自签名证书。

## 系统要求

- Node.js >= 14.0.0
- 支持 WebSocket 的现代浏览器

## License

MIT
npm package: @lpsci/hooks
Description: A highly performant and extensible react hooks for LPSci Web Dev
Author: Prince Neil Cedrick Castro
Latest version: 1.1.1

# @lpsci/hooks
> A highly performant and extensible react hooks for LPSci Web Dev

[![NPM](https://img.shields.io/npm/v/@lpsci/hooks.svg)](https://www.npmjs.com/package/@lpsci/hooks)
![npm bundle size (scoped)](https://img.shields.io/bundlephobia/min/@lpsci/hooks)
![npm bundle size (scoped version)](https://img.shields.io/bundlephobia/minzip/@lpsci/hooks)
![Libraries.io dependency status for latest release, scoped npm package](https://img.shields.io/librariesio/release/npm/@lpsci/hooks)
![NPM](https://img.shields.io/npm/l/@lpsci/hooks)

## Table of Contents
 - [Installation](#installation)
 - [Import](#import)
 - [Usage](#usage)
 - [Authors](#authors)
 - [Changelog](#changelog)
 - [License](#license)

 <!-- toc -->

## Installation

This library is available through the [npm registry](https://www.npmjs.com/package/@lpsci/hooks).

NPM
```bash
$ npm -i @lpsci/hooks
```

Yarn
```bash
$ yarn add @lpsci/hooks
```

## Import

Start using it by importing the library first.

### CommonJS
```javascript
const hooks = require('@lpsci/hooks');
```

### ES6
```javascript
import { useCounter } from '@lpsci/hooks';
```

## Usage

**Create a counter with useCounter**
```javascript
import { useCounter } from '@lpsci/hooks';

/**
 * Set initial value to 5, defaults to 0 when a
 * value is not passed
 */
const counter = useCounter(5)

/**
 * Increments the counter state by 10, defaults to 1 when
 * a value is not passed
 */
counter.increment(10)

counter.count // => 15
```

Read the [docs](https://LPSci-Web-Development-Team.github.io/hooks-docs/) for more.

## Authors

<table>
  <tr>
   <!-- START Prince Neil Cedrick S. Castro -->
    <td align="center">
     <a href="https://github.com/git-ced" title="git-ced">
      <img src="https://avatars2.githubusercontent.com/u/46030248?s=96&v=4" width="100px;" alt=""/>
      <br />
      <sub><b>Prince Neil Cedrick Castro</b></sub>
     </a>
     <br />
     <a href="https://github.com/LPSci-Web-Development-Team/hooks/commits?author=git-ced" title="Code">💻</a>
     <a href="https://github.com/LPSci-Web-Development-Team/hooks/commits?author=git-ced" title="Design/Patterns">🎨</a>
     <a href="https://github.com/LPSci-Web-Development-Team/hooks/commits?author=git-ced" title="Documentation">📖</a>
     <a href="https://github.com/LPSci-Web-Development-Team/hooks/commits?author=git-ced" title="Tests">⚠️</a>
   </td>
   <!-- END Prince Neil Cedrick S. Castro -->
  </tr>
</table>

Here is the list of [contributors](https://github.com/LPSci-Web-Development-Team/hooks/contributors) who participated in this project.

## Changelog

[Changelog](https://github.com/LPSci-Web-Development-Team/hooks/releases)

## License

[MIT](LICENSE)
npm package: @lpsmods/mc-common
Description: Common utilities for @lpsmods Minecraft: Bedrock Edition packages.
Author: legopitstop
Latest version: 0.0.3

# @lpsmods/mc-common

![Version](https://shields.io/npm/v/@lpsmods/mc-common)
[![Downloads](https://shields.io/npm/dm/@lpsmods/mc-common)](https://www.npmjs.com/package/@lpsmods/mc-common)
[![Issues](https://img.shields.io/github/issues/lpsmods/mc-utils)](https://github.com/lpsmods/mc-utils/issues)

Common utilities for @lpsmods Minecraft: Bedrock Edition packages.

> NOTE: This project is still under heavy development. Features may be removed or changed in future releases.

## Peer Dependencies

- [@minecraft/server](https://www.npmjs.com/package/@minecraft/server)
- [@minecraft/server-ui](https://www.npmjs.com/package/@minecraft/server-ui)

## Dependencies

- [@minecraft/math](https://www.npmjs.com/package/@minecraft/math)
- [@bedrock-oss/add-on-registry](https://www.npmjs.com/package/@bedrock-oss/add-on-registry)
- [pako](https://www.npmjs.com/package/pako)

## Features

- Data storage utilities for persisting information in the Minecraft world
- UI components including action forms, modal forms, and progress bars
- Text utilities for translations, colors, and message formatting
- Identifier handling for Minecraft blocks, items, entities, and more
- Encoding and decoding with gzip compression support
- Settings management with versioned data storage
- Ticking utilities for scheduled tasks and intervals
- Type definitions and validation for Minecraft objects
- Error handling and silent error wrapping functions
- Event system for custom event listeners and signals
- Constants for colors, replaceable blocks, and common values

> Not associated with or approved by Mojang Studios or Microsoft
npm package: @lpsmods/mc-dev
Description: Debug utilities for Minecraft Bedrock Edition Add-On development.
Author: legopitstop
Latest version: 0.0.3

# @lpsmods/mc-dev

![Version](https://shields.io/npm/v/@lpsmods/mc-dev)
[![Downloads](https://shields.io/npm/dm/@lpsmods/mc-dev)](https://www.npmjs.com/package/@lpsmods/mc-dev)
[![Issues](https://img.shields.io/github/issues/lpsmods/minecraft-scripting-libraries)](https://github.com/lpsmods/minecraft-scripting-libraries/issues)

Debug utilities for Minecraft Bedrock Edition Add-On development.

> NOTE: This project is still under heavy development. Features may be removed or changed in future releases.

## Peer Dependencies

- [@minecraft/server](https://www.npmjs.com/package/@minecraft/server)
- [@minecraft/server-ui](https://www.npmjs.com/package/@minecraft/server-ui)

## Dependencies

- [@minecraft/math](https://www.npmjs.com/package/@minecraft/math)
- [@lpsmods/mc-utils](https://www.npmjs.com/package/@lpsmods/mc-utils)

## Features

- Includes a command (`mcdev:dev show`) to open developer tools UI.
- Offers block info tool displaying block data in the action bar.
- Features player info tool showing player location, rotation, and properties.
- Contains item info tool for displaying held item details.
- Supports debug mode for additional debugging information.
- Tools are configurable and can be enabled/disabled via settings.
- Integrates with entity and chunk events for real-time data updates.

> Not associated with or approved by Mojang Studios or Microsoft
npm package: @lpsmods/mc-mixins
Description: Adds @lpsmods/mc-utils functions to native objects.
Author: legopitstop
Latest version: 0.0.1

# @lpsmods/mc-mixins

![Version](https://shields.io/npm/v/@lpsmods/mc-mixins)
[![Downloads](https://shields.io/npm/dm/@lpsmods/mc-mixins)](https://www.npmjs.com/package/@lpsmods/mc-mixins)
[![Issues](https://img.shields.io/github/issues/lpsmods/mcminecraft-scripting-libraries)](https://github.com/lpsmods/minecraft-scripting-libraries/issues)

Adds @lpsmods/mc-utils functions to native objects.

> NOTE: This project is still under heavy development. Features may be removed or changed in future releases.

## Peer Dependencies

- [@minecraft/server](https://www.npmjs.com/package/@minecraft/server)
- [@minecraft/vanilla-data](https://www.npmjs.com/package/@minecraft/vanilla-data)

## Dependencies

- [@lpsmods/mc-common](https://www.npmjs.com/package/@lpsmods/mc-common)
- [@lpsmods/mc-utils](https://www.npmjs.com/package/@lpsmods/mc-utils)

> Not associated with or approved by Mojang Studios or Microsoft
npm package: @lpsmods/mc-superstruct
Description: Superstruct validation for Minecraft: Bedrock Edition types.
Author: legopitstop
Latest version: 0.0.1

# @lpsmods/mc-superstruct

![Version](https://shields.io/npm/v/@lpsmods/mc-superstruct)
[![Downloads](https://shields.io/npm/dm/@lpsmods/mc-superstruct)](https://www.npmjs.com/package/@lpsmods/mc-superstruct)
[![Issues](https://img.shields.io/github/issues/lpsmods/mc-utils)](https://github.com/lpsmods/mc-utils/issues)

Superstruct validation for Minecraft: Bedrock Edition types.

> NOTE: This project is still under heavy development. Features may be removed or changed in future releases.

## Dependencies

- [@lpsmods/mc-common](https://www.npmjs.com/package/@lpsmods/mc-common)
- [superstruct](https://www.npmjs.com/package/superstruct)

## Features

- superstruct support for uuids, blocks, items, entity filters and more!

> Not associated with or approved by Mojang Studios or Microsoft
npm package: @lpsmods/mc-utils
Description: Utilities for making Minecraft: Bedrock Edition scripts
Author: legopitstop
Latest version: 1.0.0

# @lpsmods/mc-utils

![Version](https://shields.io/npm/v/@lpsmods/mc-utils)
[![Downloads](https://shields.io/npm/dm/@lpsmods/mc-utils)](https://www.npmjs.com/package/@lpsmods/mc-utils)
[![Issues](https://img.shields.io/github/issues/lpsmods/mc-utils)](https://github.com/lpsmods/mc-utils/issues)

Minecraft utility functions and components to help create add-ons.

> NOTE: This project is still under heavy development. Features may be removed or changed in future releases.

## Peer Dependencies

- [@minecraft/server](https://www.npmjs.com/package/@minecraft/server)
- [@minecraft/server-ui](https://www.npmjs.com/package/@minecraft/server-ui)

## Dependencies

- [@minecraft/math](https://www.npmjs.com/package/@minecraft/math)
- [@bedrock-oss/add-on-registry](https://www.npmjs.com/package/@bedrock-oss/add-on-registry)
- [molang](https://www.npmjs.com/package/molang)
- [superstruct](https://www.npmjs.com/package/superstruct)
- [pako](https://www.npmjs.com/package/pako)

## Features

- Vanilla item, and block component re-creations.
- Entity handlers for custom entity mechanics.
- Custom block, item, entity, area, and chunk events.
- Rectangle and sphere area detectors.
- State controllers.
- Block, item, and entity molang contexts.
- Custom progress bar.
- Custom mob status effects.
- Encoding and decoding support for gzip, base64, and utf8.

> Not associated with or approved by Mojang Studios or Microsoft
npm package: @lpsmods/mcaddon-bridge
Description: A package to communicate between Minecraft Add-Ons.
Author: legopitstop
Latest version: 0.0.2

# @lpsmods/mcaddon-bridge

![Version](https://shields.io/npm/v/@lpsmods/mcaddon-bridge)
[![Downloads](https://shields.io/npm/dm/@lpsmods/mcaddon-bridge)](https://www.npmjs.com/package/@lpsmods/mcaddon-bridge)
[![Issues](https://img.shields.io/github/issues/lpsmods/mc-utils)](https://github.com/lpsmods/mc-utils/issues)

A package to communicate between Minecraft Add-Ons.

## Dependencies

```json
[
  { "module_name": "@minecraft/server", "version": "2.1.0" },
  { "module_name": "@minecraft/server-ui", "version": "2.0.0" }
]
```

## Features

- Send data between Add-Ons using packets.
- Create your own API bridge for other Add-Ons!

## Example

Create the api.

```ts
import { world } from "@minecraft/server";
import { Bridge } from "@lpsmods/mcaddon-bridge";

// Create a new bridge (aka API)
const api = new Bridge("com.example.myPack");

// Basic property
api.defineProperty(world, "name", {
  value: "Steve",
  writeable: true,
  enumerable: true,
  configurable: true,
});

// Getter and Setter
api.defineProperty(world, "fullName", {
  get() {
    const firstName = this.getDynamicProperty("first_name");
    const lastName = this.getDynamicProperty("last_name");
    return `${firstName} ${lastName}`;
  },

  set(value) {
    const parts = value.split(" ");
    this.setDynamicProperty("first_name", parts[0]);
    this.setDynamicProperty("last_name", parts[1]);
  },
  enumerable: true,
  configurable: true,
});

// Simple function property
api.defineProperty(world, "greet", {
  value: function (name: string) {
    console.warn(`Hello, ${name}!`);
  },
  writeable: true,
  enumerable: true,
  configurable: true,
});
```

Use the API from a different pack.

```ts
import { world } from "@minecraft/server";
import { connect } from "@lpsmods/mcaddon-bridge";

function worldLoad() {
  // Connect to the api
  const myPack = connect("com.example.myPack");

  console.warn(myPack.get(world, "name"));
  myPack.set(world, "name", "Bob");
  console.warn(myPack.get(world, "name"));

  console.warn(myPack.get(world, "fullName"));
  myPack.set(world, "fullName", "Steve Black");
  console.warn(myPack.get(world, "fullName"));

  myPack.call(world, "greet", "Alex");
}

world.afterEvents.worldLoad.subscribe(worldLoad);
```

> Not associated with or approved by Mojang Studios or Microsoft
npm package: @lpsmods/minecraft-debug-utilities-mock
Description: @minecraft/debug-utilities mocks for testing.
Author: legopitstop
Latest version: 0.0.1

# @lpsmods/minecraft-debug-utilities-mock

Emulates the [@minecraft/debug-utilities](https://learn.microsoft.com/en-us/minecraft/creator/scriptapi/minecraft/debug-utilities/minecraft-debug-utilities) package for testing.

## What is this?

This package provides a [mocked](https://en.wikipedia.org/wiki/Mock_object) version of `@minecraft/debug-utilities` for testing. It helps you run unit tests without needing the real Minecraft Bedrock scripting environment.

## Using with Vitest

Install the mock package as a dev dependency:

```sh
npm install -D @lpsmods/minecraft-debug-utilities-mock
```

Then alias `@minecraft/debug-utilities` in your `vitest.config.ts`:

```ts
import { defineConfig } from "vitest/config";

export default defineConfig({
  test: {
    globals: true,
  },
  resolve: {
    alias: {
      "@minecraft/debug-utilities": "@lpsmods/minecraft-debug-utilities-mock",
    },
  },
});
```

Now your source code can keep importing from `@minecraft/debug-utilities`, and when running tests, Vitest will automatically redirect those imports to this mock package.

> Not associated with or approved by Mojang Studios or Microsoft
npm package: @lpsmods/minecraft-server-graphics-mock
Description: @minecraft/server-graphics mocks for testing.
Author: legopitstop
Latest version: 0.0.1

# @lpsmods/minecraft-server-graphics-mock

Emulates the [@minecraft/server-graphics](https://learn.microsoft.com/en-us/minecraft/creator/scriptapi/minecraft/server-graphics/minecraft-server-graphics) package for testing.

## What is this?

This package provides a [mocked](https://en.wikipedia.org/wiki/Mock_object) version of `@minecraft/server-graphics` for testing. It helps you run unit tests without needing the real Minecraft Bedrock scripting environment.

## Using with Vitest

Install the mock package as a dev dependency:

```sh
npm install -D @lpsmods/minecraft-server-graphics-mock
```

Then alias `@minecraft/server-graphics` in your `vitest.config.ts`:

```ts
import { defineConfig } from "vitest/config";

export default defineConfig({
  test: {
    globals: true,
  },
  resolve: {
    alias: {
      "@minecraft/server-graphics": "@lpsmods/minecraft-server-graphics-mock",
    },
  },
});
```

Now your source code can keep importing from `@minecraft/server-graphics`, and when running tests, Vitest will automatically redirect those imports to this mock package.

> Not associated with or approved by Mojang Studios or Microsoft
npm package: @lpsmods/minecraft-server-mock
Description: @minecraft/server mocks for testing.
Author: legopitstop
Latest version: 0.0.2

# @lpsmods/minecraft-server-mock

![Version](https://shields.io/npm/v/@lpsmods/minecraft-server-mock)
[![Downloads](https://shields.io/npm/dm/@lpsmods/minecraft-server-mock)](https://www.npmjs.com/package/@lpsmods/minecraft-server-mock)
[![Issues](https://img.shields.io/github/issues/lpsmods/minecraft-mock)](https://github.com/lpsmods/minecraft-mock/issues)

Emulates the [@minecraft/server](https://learn.microsoft.com/en-us/minecraft/creator/scriptapi/minecraft/server/minecraft-server) package for testing.

## What is this?

This package provides a [mocked](https://en.wikipedia.org/wiki/Mock_object) version of `@minecraft/server` for testing. It helps you run unit tests without needing the real Minecraft Bedrock scripting environment.

## Using with Vitest

Install the mock package as a dev dependency:

```sh
npm install -D @lpsmods/minecraft-server-mock
```

Then alias `@minecraft/server` in your `vitest.config.ts`:

```ts
import { defineConfig } from "vitest/config";

export default defineConfig({
  test: {
    globals: true,
    server: {
      deps: {
        inline: ["@minecraft/math"],
      },
    },
  },
  resolve: {
    alias: {
      "@minecraft/server": "@lpsmods/minecraft-server-mock",
    },
  },
});
```

Now your source code can keep importing from `@minecraft/server`, and when running tests, Vitest will automatically redirect those imports to this mock package.

> Not associated with or approved by Mojang Studios or Microsoft
npm package: @lpsmods/minecraft-server-net-mock
Description: @minecraft/server-net mocks for testing.
Author: legopitstop
Latest version: 0.0.1

# @lpsmods/minecraft-server-net-mock

Emulates the [@minecraft/server-net](https://learn.microsoft.com/en-us/minecraft/creator/scriptapi/minecraft/server-net/minecraft-server-net) package for testing.

## What is this?

This package provides a [mocked](https://en.wikipedia.org/wiki/Mock_object) version of `@minecraft/server-net` for testing. It helps you run unit tests without needing the real Minecraft Bedrock scripting environment.

## Using with Vitest

Install the mock package as a dev dependency:

```sh
npm install -D @lpsmods/minecraft-server-net-mock
```

Then alias `@minecraft/server-net` in your `vitest.config.ts`:

```ts
import { defineConfig } from "vitest/config";

export default defineConfig({
  test: {
    globals: true,
  },
  resolve: {
    alias: {
      "@minecraft/server-net": "@lpsmods/minecraft-server-net-mock",
    },
  },
});
```

Now your source code can keep importing from `@minecraft/server-net`, and when running tests, Vitest will automatically redirect those imports to this mock package.

> Not associated with or approved by Mojang Studios or Microsoft
npm package: @lpsmods/minecraft-server-ui-mock
Description: @minecraft/server-ui mocks for testing.
Author: legopitstop
Latest version: 0.0.1

# @lpsmods/minecraft-server-ui-mock

Emulates the [@minecraft/server-ui](https://learn.microsoft.com/en-us/minecraft/creator/scriptapi/minecraft/server-ui/minecraft-server-ui) package for testing.

## What is this?

This package provides a [mocked](https://en.wikipedia.org/wiki/Mock_object) version of `@minecraft/server-ui` for testing. It helps you run unit tests without needing the real Minecraft Bedrock scripting environment.

## Using with Vitest

Install the mock package as a dev dependency:

```sh
npm install -D @lpsmods/minecraft-server-ui-mock
```

Then alias `@minecraft/server-ui` in your `vitest.config.ts`:

```ts
import { defineConfig } from "vitest/config";

export default defineConfig({
  test: {
    globals: true,
  },
  resolve: {
    alias: {
      "@minecraft/server-ui": "@lpsmods/minecraft-server-ui-mock",
    },
  },
});
```

Now your source code can keep importing from `@minecraft/server-ui`, and when running tests, Vitest will automatically redirect those imports to this mock package.

> Not associated with or approved by Mojang Studios or Microsoft
npm package: @lq-viser/viser
Description: viser is a toolkit fit for data vis engineer.
Latest version: 2.5.6

# viser [![npm](https://img.shields.io/npm/v/viser.svg)](https://www.npmjs.com/package/viser) [![Dependency Status](https://david-dm.org/viserjs/viser.svg?path=packages/viser)](https://david-dm.org/viserjs/viser.svg?path=packages/viser)

> A toolkit fit for data vis engineer.

## Install

```sh
$ npm install --save viser
```

## Usage

```jsx
import viser from '@lq-viser/viser';
const DataSet = require('@antv/data-set');

const sourceData = [
  { month: 'Jan', Tokyo: 7.0, London: 3.9 },
  { month: 'Feb', Tokyo: 6.9, London: 4.2 },
  { month: 'Mar', Tokyo: 9.5, London: 5.7 },
  { month: 'Apr', Tokyo: 14.5, London: 8.5 },
  { month: 'May', Tokyo: 18.4, London: 11.9 },
  { month: 'Jun', Tokyo: 21.5, London: 15.2 },
  { month: 'Jul', Tokyo: 25.2, London: 17.0 },
  { month: 'Aug', Tokyo: 26.5, London: 16.6 },
  { month: 'Sep', Tokyo: 23.3, London: 14.2 },
  { month: 'Oct', Tokyo: 18.3, London: 10.3 },
  { month: 'Nov', Tokyo: 13.9, London: 6.6 },
  { month: 'Dec', Tokyo: 9.6, London: 4.8 },
];

const dv = new DataSet.View().source(sourceData);
dv.transform({
  type: 'fold',
  fields: ['Tokyo', 'London'],
  key: 'city',
  value: 'temperature',
});
const data = dv.rows;

viser({
  data,
  axis: true,
  legend: true,
  tooltip: true,
  series: [{
    quickType: 'smoothLine',
    position: 'month*temperature',
    color: "city",
    size: 2,
  }, {
    quickType: 'point',
    position: 'month*temperature',
    color: "city",
    size: 4,
    style: {
      stroke: '#fff',
      lineWidth: 1,
    },
  }],
  chart: {
    container: 'mountNode',
    width: 800,
    height: 400,
  },
});
```
npm package: @lq-viser/viser-cell
Description: viser-cell is a toolkit fit for data vis engineer based on f2.
Latest version: 2.1.5

# viser-cell [![npm](https://img.shields.io/npm/v/viser-cell.svg)](https://www.npmjs.com/package/viser-cell) [![Dependency Status](https://david-dm.org/viserjs/viser-cell.svg?path=packages/viser)](https://david-dm.org/viserjs/viser-cell.svg?path=packages/viser)

> A toolkit fit for data vis engineer.

## Install

```sh
$ npm install --save viser-cell
```

## Usage

```js
import viser from '@lq-viser/viser-cell';

const data = [
  { name: 'London', 月份: 'Jan.', 月均降雨量: 18.9 },
  { name: 'London', 月份: 'Feb.', 月均降雨量: 28.8 },
  { name: 'London', 月份: 'Mar.', 月均降雨量: 39.3 },
  { name: 'London', 月份: 'Apr.', 月均降雨量: 81.4 },
  { name: 'London', 月份: 'May.', 月均降雨量: 47 },
  { name: 'London', 月份: 'Jun.', 月均降雨量: 20.3 },
  { name: 'London', 月份: 'Jul.', 月均降雨量: 24 },
  { name: 'London', 月份: 'Aug.', 月均降雨量: 35.6 },
  { name: 'Berlin', 月份: 'Jan.', 月均降雨量: 12.4 },
  { name: 'Berlin', 月份: 'Feb.', 月均降雨量: 23.2 },
  { name: 'Berlin', 月份: 'Mar.', 月均降雨量: 34.5 },
  { name: 'Berlin', 月份: 'Apr.', 月均降雨量: 99.7 },
  { name: 'Berlin', 月份: 'May.', 月均降雨量: 52.6 },
  { name: 'Berlin', 月份: 'Jun.', 月均降雨量: 35.5 },
  { name: 'Berlin', 月份: 'Jul.', 月均降雨量: 37.4 },
  { name: 'Berlin', 月份: 'Aug.', 月均降雨量: 42.4 }
];

viser({
  data: data,
  axis: true,
  tooltip: true,
  legend: true,
  series: [{
    quickType: 'bar',
    position: '月份*月均降雨量',
    color: 'name',
    adjust: {
      type: 'dodge',
      marginRatio: 0.05,
    },
  }],
  chart: {
    id: 'mountNode',
    height: 400,
    width: 200,
    pixelRatio: window.devicePixelRatio,
  },
});
```
npm package: @lq-viser/viser-cell-vue
Description: viser-cell-vue is vue of viser-cell.
Latest version: 2.1.5

# viser-cell-vue [![npm](https://img.shields.io/npm/v/viser-cell-vue.svg)](https://www.npmjs.com/package/viser-cell-vue) [![Dependency Status](https://david-dm.org/viserjs/viser-vue.svg?path=packages/viser-cell-vue)](https://david-dm.org/viserjs/viser-vue.svg?path=packages/viser-cell-vue)

> A toolkit fit for data vis engineer (vue version).

## Install

```sh
$ npm install --save viser-cell-vue
```

## Usage

```vue
<template>
  <div>
    <v-chart :height="400" :width="200" :data="data" :pixelRatio="pixelRatio">
      <v-tooltip></v-tooltip>
      <v-axis></v-axis>
      <v-legend></v-legend>
      <v-bar :position="'月份*月均降雨量'" :color="'name'" :adjust="adjust"></v-bar>
    </v-chart>
  </div>
</template>

<script>
const data = [
  { name: 'London', 月份: 'Jan.', 月均降雨量: 18.9 },
  { name: 'London', 月份: 'Feb.', 月均降雨量: 28.8 },
  { name: 'London', 月份: 'Mar.', 月均降雨量: 39.3 },
  { name: 'London', 月份: 'Apr.', 月均降雨量: 81.4 },
  { name: 'London', 月份: 'May.', 月均降雨量: 47 },
  { name: 'London', 月份: 'Jun.', 月均降雨量: 20.3 },
  { name: 'London', 月份: 'Jul.', 月均降雨量: 24 },
  { name: 'London', 月份: 'Aug.', 月均降雨量: 35.6 },
  { name: 'Berlin', 月份: 'Jan.', 月均降雨量: 12.4 },
  { name: 'Berlin', 月份: 'Feb.', 月均降雨量: 23.2 },
  { name: 'Berlin', 月份: 'Mar.', 月均降雨量: 34.5 },
  { name: 'Berlin', 月份: 'Apr.', 月均降雨量: 99.7 },
  { name: 'Berlin', 月份: 'May.', 月均降雨量: 52.6 },
  { name: 'Berlin', 月份: 'Jun.', 月均降雨量: 35.5 },
  { name: 'Berlin', 月份: 'Jul.', 月均降雨量: 37.4 },
  { name: 'Berlin', 月份: 'Aug.', 月均降雨量: 42.4 }
];

export default {
  data() {
    return {
      data,
      pixelRatio: window.devicePixelRatio,
      adjust: {
        type: 'dodge',
        marginRatio: 0.05,
      }
    };
  },
};
</script>
```
npm package: @lq-viser/viser-ng
Description: viser-ng is angular of viser.
Latest version: 2.7.9

# viser-ng [![npm](https://img.shields.io/npm/v/viser-ng.svg)](https://www.npmjs.com/package/viser-ng) [![Dependency Status](https://david-dm.org/viserjs/viser-ng.svg?path=packages/viser-ng)](https://david-dm.org/viserjs/viser-ng.svg?path=packages/viser-ng)

> A toolkit fit for data vis engineer (angular version).

## Install

```sh
$ npm install --save viser-ng
```

## Usage

```ts
import 'zone.js';
import 'reflect-metadata';
import { Component, enableProdMode, NgModule } from '@angular/core';
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
import { BrowserModule } from '@angular/platform-browser';
import { ViserModule } from '@lq-viser/viser-ng';
const DataSet = require('@antv/data-set');

const sourceData = [
  { month: 'Jan', Tokyo: 7.0, London: 3.9 },
  { month: 'Feb', Tokyo: 6.9, London: 4.2 },
  { month: 'Mar', Tokyo: 9.5, London: 5.7 },
  { month: 'Apr', Tokyo: 14.5, London: 8.5 },
  { month: 'May', Tokyo: 18.4, London: 11.9 },
  { month: 'Jun', Tokyo: 21.5, London: 15.2 },
  { month: 'Jul', Tokyo: 25.2, London: 17.0 },
  { month: 'Aug', Tokyo: 26.5, London: 16.6 },
  { month: 'Sep', Tokyo: 23.3, London: 14.2 },
  { month: 'Oct', Tokyo: 18.3, London: 10.3 },
  { month: 'Nov', Tokyo: 13.9, London: 6.6 },
  { month: 'Dec', Tokyo: 9.6, London: 4.8 },
];

const dv = new DataSet.View().source(sourceData);
dv.transform({
  type: 'fold',
  fields: ['Tokyo', 'London'],
  key: 'city',
  value: 'temperature',
});
const data = dv.rows;

const scale = [{
  dataKey: 'percent',
  min: 0,
  formatter: '.2%',
}];

@Component({
  selector: '#mount',
  template: `
  <div>
    <Chart [forceFit]="forceFit" [height]="height" [data]="data" [scale]="scale">
      <Tooltip></Tooltip>
      <Axis></Axis>
      <SmoothLine position="month*temperature" color="city" size="2"></SmoothLine>
    </Chart>
  </div>
  `
})

class AppComponent {
  forceFit: boolean = true;
  height: number = 400;
  data = data;
  scale = scale;
}

@NgModule({
  declarations: [
    AppComponent
  ],
  imports: [
    BrowserModule,
    ViserModule
  ],
  providers: [],
  bootstrap: [
    AppComponent
  ]
})
export class AppModule { }
platformBrowserDynamic().bootstrapModule(AppModule);
```
npm package: @lq-viser/viser-react
Description: viser-react is react of viser.
Latest version: 2.5.6

# viser-react [![npm](https://img.shields.io/npm/v/viser-react.svg)](https://www.npmjs.com/package/viser-react) [![Dependency Status](https://david-dm.org/viserjs/viser-react.svg?path=packages/viser-react)](https://david-dm.org/viserjs/viser-react.svg?path=packages/viser-react)

> A toolkit fit for data vis engineer (react version).

## Install

```sh
$ npm install --save viser-react
```

## Usage

```jsx
import { Chart, SmoothLine, Point, Tooltip, Legend, Axis } from '@lq-viser/viser-react';
import * as ReactDOM from 'react-dom';
import * as React from 'react';
const DataSet = require('@antv/data-set');

const sourceData = [
  { month: 'Jan', Tokyo: 7.0, London: 3.9 },
  { month: 'Feb', Tokyo: 6.9, London: 4.2 },
  { month: 'Mar', Tokyo: 9.5, London: 5.7 },
  { month: 'Apr', Tokyo: 14.5, London: 8.5 },
  { month: 'May', Tokyo: 18.4, London: 11.9 },
  { month: 'Jun', Tokyo: 21.5, London: 15.2 },
  { month: 'Jul', Tokyo: 25.2, London: 17.0 },
  { month: 'Aug', Tokyo: 26.5, London: 16.6 },
  { month: 'Sep', Tokyo: 23.3, London: 14.2 },
  { month: 'Oct', Tokyo: 18.3, London: 10.3 },
  { month: 'Nov', Tokyo: 13.9, London: 6.6 },
  { month: 'Dec', Tokyo: 9.6, London: 4.8 },
];

const dv = new DataSet.View().source(sourceData);
dv.transform({
  type: 'fold',
  fields: ['Tokyo', 'London'],
  key: 'city',
  value: 'temperature',
});
const data = dv.rows;

const scale = [{
  dataKey: 'percent',
  min: 0,
  formatter: '.2%',
}];

class App extends React.Component {
  constructor(props) {
    super(props);
  }

  render() {
    return (
      <div>
        <Chart forceFit height={400} data={data} scale={scale}>
          <SmoothLine position="month*temperature" color="city" size="2" />
          <Tooltip />
          <Legend />
          <Axis />
        </Chart>
      </div>
    );
  }
}

ReactDOM.render(<App />, document.getElementById('mountNode'));
```
npm package: @lq-viser/viser-vue
Description: viser-vue is vue of viser.
Latest version: 2.5.6

# viser-vue [![npm](https://img.shields.io/npm/v/viser-vue.svg)](https://www.npmjs.com/package/viser-vue) [![Dependency Status](https://david-dm.org/viserjs/viser-vue.svg?path=packages/viser-vue)](https://david-dm.org/viserjs/viser-vue.svg?path=packages/viser-vue)

> A toolkit fit for data vis engineer (vue version).

## Install

```sh
$ npm install --save viser-vue
```

## Usage

```vue
<template>
  <div>
    <v-chart :force-fit="true" :height="height" :data="data" :scale="scale">
      <v-tooltip />
      <v-axis />
      <v-smooth-line position="month*temperature" color="city" :size="2" />
    </v-chart>
  </div>
</template>

<script>
const DataSet = require('@antv/data-set');

const sourceData = [
  { month: 'Jan', Tokyo: 7.0, London: 3.9 },
  { month: 'Feb', Tokyo: 6.9, London: 4.2 },
  { month: 'Mar', Tokyo: 9.5, London: 5.7 },
  { month: 'Apr', Tokyo: 14.5, London: 8.5 },
  { month: 'May', Tokyo: 18.4, London: 11.9 },
  { month: 'Jun', Tokyo: 21.5, London: 15.2 },
  { month: 'Jul', Tokyo: 25.2, London: 17.0 },
  { month: 'Aug', Tokyo: 26.5, London: 16.6 },
  { month: 'Sep', Tokyo: 23.3, London: 14.2 },
  { month: 'Oct', Tokyo: 18.3, London: 10.3 },
  { month: 'Nov', Tokyo: 13.9, London: 6.6 },
  { month: 'Dec', Tokyo: 9.6, London: 4.8 },
];

const dv = new DataSet.View().source(sourceData);
dv.transform({
  type: 'fold',
  fields: ['Tokyo', 'London'],
  key: 'city',
  value: 'temperature',
});
const data = dv.rows;

const scale = [{
  dataKey: 'percent',
  min: 0,
  formatter: '.2%',
}];

export default {
  data() {
    return {
      data,
      scale,
      height: 400,
    };
  }
};
</script>

<style scoped>

</style>
```