open-index/open-npm huggingface dataset:
npm package: @pixpilot/number
Description: A collection of utility functions for number manipulation and validation.
Author: Pixpilot
Latest version: 1.2.0

# @pixpilot/number

A collection of utility functions for working with JavaScript numbers.

## Installation

```bash
pnpm add @pixpilot/number
```

## Usage

```typescript
import {
  average,
  clamp,
  formatWithSeparator,
  isNumber,
  randomInt,
  round,
  sum,
} from '@pixpilot/number';

// Type guards
if (isNumber(value)) {
  // value is a valid number (not NaN)
}

// Number manipulation
const min = 0;
const max = 10;
const value = 15;
const clamped = clamp(value, min, max); // 10
const pi = 3.14159;
const decimals = 2;
const rounded = round(pi, decimals); // 3.14

// Random numbers
const diceMin = 1;
const diceMax = 6;
const dice = randomInt(diceMin, diceMax); // Random integer 1-6

// Array operations
const numbers = [1, 2, 3, 4, 5];
const total = sum(numbers); // 15
const scores = [10, 20, 30];
const avg = average(scores); // 20

// Formatting
const largeNumber = 1000000;
const formatted = formatWithSeparator(largeNumber); // '1,000,000'
```

## API

### Type Guards

- `isNumber(value: unknown): value is number` - Check if value is a number (excluding NaN)
- `isInteger(value: unknown): value is number` - Check if value is an integer
- `isFiniteNumber(value: unknown): value is number` - Check if value is a finite number
- `isSafeInteger(value: unknown): value is number` - Check if value is a safe integer

### Number Manipulation

- `clamp(value: number, min: number, max: number): number` - Clamp a number between min and max
- `round(value: number, decimals?: number): number` - Round to specified decimal places

### Random Numbers

- `randomInt(min: number, max: number): number` - Generate random integer (inclusive)
- `random(min: number, max: number): number` - Generate random number

### Array Operations

- `sum(numbers: number[]): number` - Calculate sum of numbers
- `average(numbers: number[]): number` - Calculate average
- `min(numbers: number[]): number` - Find minimum value
- `max(numbers: number[]): number` - Find maximum value

### Number Predicates

- `isEven(value: number): boolean` - Check if number is even
- `isOdd(value: number): boolean` - Check if number is odd
- `isPositive(value: number): boolean` - Check if number is positive
- `isNegative(value: number): boolean` - Check if number is negative
- `inRange(value: number, min: number, max: number): boolean` - Check if number is in range

### Conversions

- `toRadians(degrees: number): number` - Convert degrees to radians
- `toDegrees(radians: number): number` - Convert radians to degrees

### Formatting

- `formatWithSeparator(value: number, separator?: string): string` - Format with thousand separators

### Parsing

- `parseNumberOrNull(value: string): number | null` - Parse string to number, return null if invalid

## Contributing

We welcome contributions! Please see the [main contributing guide](../../CONTRIBUTING.md) for details.

## License

This project is licensed under the MIT License. See the [LICENSE](../../LICENSE) file for details.
npm package: @pixpilot/object
Description: A collection of utility functions for object manipulation and transformation.
Author: Pixpilot
Latest version: 2.4.1

# @pixpilot/object

A collection of utility functions for working with JavaScript objects.

## Installation

```bash
pnpm add @pixpilot/object
```

## Usage

```typescript
import {
  deepClone,
  isObject,
  keysToCamelCase,
  keysToSnakeCase,
  omit,
  pick,
} from '@pixpilot/object';

// Convert object keys
const obj = { user_name: 'john', user_details: { first_name: 'John' } };
const camelCaseObj = keysToCamelCase(obj);
// { userName: 'john', userDetails: { firstName: 'John' } }

const guidSafeObj = keysToCamelCase(obj, {
  shouldConvert: (key) => key !== 'legacy_key',
});

// Manipulate objects
const picked = pick({ a: 1, b: 2, c: 3 }, ['a', 'c']); // { a: 1, c: 3 }
const omitted = omit({ a: 1, b: 2, c: 3 }, ['b']); // { a: 1, c: 3 }

// Clone deeply
const cloned = deepClone({ a: { b: { c: 1 } } });

// Type guards
if (isObject(value)) {
  // value is typed as Record<string, unknown>
}
```

## API

### Type Guards

- `isObject(value: unknown): value is Record<string, unknown>` - Check if value is an object
- `isPlainObject(value: unknown): value is Record<string, unknown>` - Check if value is a plain object
- `isEmptyObject(value: unknown): boolean` - Check if object is empty

### Key Transformation

- `keysToCamelCase<T>(obj: T, options?: { shouldConvert?: (key: string) => boolean }): KeysToCamelCase<T>` - Convert keys to camelCase, except GUID keys and keys rejected by `shouldConvert`
- `keysToSnakeCase<T>(obj: T): KeysToSnakeCase<T>` - Convert all keys to snake_case

### Object Manipulation

- `pick<T, K>(obj: T, keys: K[]): Pick<T, K>` - Pick specific keys from object
- `omit<T, K>(obj: T, keys: K[]): Omit<T, K>` - Omit specific keys from object
- `merge<T, U>(target: T, source: U): T & U` - Deep merge two objects
- `get<T>(obj: object, path: string, defaultValue?: T): T | undefined` - Get nested value by path
- `set<T>(obj: T, path: string, value: unknown): T` - Set nested value by path
- `has(obj: object, path: string): boolean` - Check if nested path exists
- `flatKeys(obj: object, prefix?: string): string[]` - Get all keys including nested paths
- `deepClone<T>(obj: T): T` - Deep clone an object
- `deepEqual(obj1: unknown, obj2: unknown): boolean` - Deep equality comparison
- `mapValues<T, U>(obj: T, fn: (value, key) => U): Record<keyof T, U>` - Map over object values
- `mapKeys<T>(obj: T, fn: (key) => string): Record<string, T[keyof T]>` - Map over object keys

## Contributing

We welcome contributions! Please see the [main contributing guide](../../CONTRIBUTING.md) for details.

## License

This project is licensed under the MIT License. See the [LICENSE](../../LICENSE) file for details.
npm package: @pixpilot/rollup-plugin-size-limit
Description: Enforce bundle size limits in Rollup, Vite, and tsdown builds with configurable thresholds and CI/CD integration
Author: PixPilot
Latest version: 0.1.3

# @pixpilot/rollup-plugin-size-limit

A Rollup plugin that enforces bundle size limits during the build process. It checks the size of output files against configurable thresholds and can either warn or throw errors when limits are exceeded.

## Features

- ✅ Enforce maximum bundle sizes
- ✅ Support for chunks and assets
- ✅ Configurable error vs warning behavior
- ✅ Automatic size formatting
- ✅ Compatible with Rollup, Vite, and tsdown
- ✅ Skips source maps and type declarations

## Installation

```bash
pnpm add -D @pixpilot/rollup-plugin-size-limit
```

## Usage

### Basic Usage

```javascript
import { sizeLimit } from '@pixpilot/rollup-plugin-size-limit';

export default {
  // ... other config
  plugins: [
    sizeLimit(1024 * 1024), // 1MB limit
  ],
};
```

### Advanced Configuration

```javascript
import { sizeLimit } from '@pixpilot/rollup-plugin-size-limit';

export default {
  // ... other config
  plugins: [
    sizeLimit({
      maxSize: 500 * 1024, // 500KB
      throwError: false, // Warn instead of throwing error
    }),
  ],
};
```

### Options

- `maxSize` (number): Maximum allowed size in bytes
- `throwError` (boolean, optional): Whether to throw an error (default: `true`) or just warn

### Option Formats

- `number`: Sets `maxSize` in bytes, `throwError` defaults to `true`
- `object`: Full configuration with `maxSize` and optional `throwError`
- `boolean`: `false` disables the plugin, `true` requires `maxSize` to be set elsewhere

## Example Output

```
✓ index.js: 245.8 kB / 500 kB
⚠️  vendor.js: 1.2 MB (max: 1 MB)
```

## License

[MIT](../LICENSE)
npm package: @pixpilot/scaffoldfy-configs
Description: A collection of reusable scaffoldfy templates for generating common project configuration files and setups.
Author: PixPilot
Latest version: 0.21.0

# @pixpilot/scaffoldfy-configs

A collection of reusable scaffoldfy templates for generating common project configuration files and setups.

## Installation

```sh
npm install @pixpilot/scaffoldfy @pixpilot/scaffoldfy-configs
```

## Available Templates

This package provides the following scaffoldfy templates:

### license-file

Generate a LICENSE file with common open-source licenses (MIT, Apache 2.0, GPL, BSD, etc.)

### project-info

Collect and manage project information prompts for consistent project setup

### turbo-workspace-package-generator

Generate packages for pnpm + Turbo monorepos with customizable bundler options

### pixpilot-changesets-release

Configure changesets for automated package publishing

### pixpilot-copilot-instructions

Generate GitHub Copilot instructions for your project

### pixpilot-info

Project information and metadata management

### security-policy

Generate security policy documentation

### monorepo-generate-packages-section

Configure package generation for monorepo setups

### update-root-package-json

Update root package.json with common configurations

## Usage

After installing both `@pixpilot/scaffoldfy` and `@pixpilot/scaffoldfy-configs`, you can use any of the templates by referencing them in your scaffoldfy configuration.

### Example: Using the license-file template

Create a `scaffoldfy.json` file in your project:

```json
{
  "$schema": "https://unpkg.com/@pixpilot/scaffoldfy/schema",
  "extends": ["@pixpilot/scaffoldfy-configs/license-file"]
}
```

Then run:

```sh
npx @pixpilot/scaffoldfy
```

### Combining multiple templates

```json
{
  "$schema": "https://unpkg.com/@pixpilot/scaffoldfy/schema",
  "extends": [
    "@pixpilot/scaffoldfy-configs/project-info",
    "@pixpilot/scaffoldfy-configs/license-file",
    "@pixpilot/scaffoldfy-configs/pixpilot-changesets-release"
  ]
}
```

## Contributing

This package contains scaffoldfy templates that can be used individually or combined. Each template is self-contained in its own directory with a `scaffoldfy.json` configuration file.

To add a new template:

1. Create a new directory under `packages/scaffoldfy-configs/`
2. Add a `scaffoldfy.json` file with your template configuration
3. Include any template files or assets your template needs

## License

MIT
npm package: @pixpilot/semantic-release-require-config
Description: ## Overview
Author: pixpilot
Latest version: 1.0.0

# semantic-release-require-config

## Overview

`semantic-release-require-config` is a utility for semantic-release workflows that ensures a release config file is present in your package before running semantic-release. This is especially useful in monorepos or strict release environments, helping prevent accidental releases without explicit configuration.

> **Note:** This package is not a standalone semantic-release plugin. It is designed to be extended or composed in your own custom plugins or release scripts.

## Installation

Add as a development dependency using pnpm:

```sh
npm add -D semantic-release-require-config
```

## Usage

You can use `semantic-release-require-config` by extending it in your semantic-release configuration file or via the CLI:

**In your config file (e.g., `.releaserc` or `release.config.js`):**

```json
{
  "extends": "semantic-release-require-config"
}
```

**Or with the CLI:**

```sh
semantic-release -e semantic-release-require-config
```

> **Note:** This library **cannot** be applied via the `plugins` option. The following will **not** work:
>
> ```json
> {
>   "plugins": [
>     "semantic-release-require-config" // This WON'T work
>   ]
> }
> ```

This will ensure a release config file is present before running semantic-release, helping prevent accidental releases without explicit configuration.

## How it works

- Checks that `package.json` exists and is not marked as `private`.
- Ensures a release config file (e.g., `release.config.js`, `.releaserc`, etc.) is present in the current working directory.
- Throws an error if no config file is found, preventing accidental releases.
- Logs a message if the package is private and skips the config check.

## License

[MIT](../../LICENSE)
npm package: @pixpilot/tsdown-config
Description: Tsdown configuration for PixPilot projects.
Author: PixPilot
Latest version: 0.3.0

# @pixpilot/tsdown-config

Modern, opinionated tsdown configuration for TypeScript projects.

> **Note**: This configuration is designed for our organization's projects but is adaptable for your needs. Settings may evolve to enhance our codebase.

## Installation

```bash
npm install -D @pixpilot/tsdown-config
```

## Usage

Create a `tsdown.config.ts` file in your project root:

```typescript
import { defineConfig } from '@pixpilot/tsdown-config';

export default defineConfig({
  // Your custom options here
});
```

## Features

### Default Configuration

The configuration includes sensible defaults:

- **Entry**: `src/index.ts`
- **Formats**: ESM and CommonJS
- **TypeScript declarations**: Enabled
- **Tree-shaking**: Enabled
- **Minification**: Enabled
- **Clean output**: Enabled before each build

### Bundle Dependencies

By default, all dependencies and peerDependencies are externalized. To bundle them instead:

```typescript
export default defineConfig({
  bundleDependencies: true,
});
```

## API

### `defineConfig(options)`

Creates a tsdown configuration with opinionated defaults.

#### Options

Extends all [tsdown options](https://tsdown.netlify.app/) with the following additions:

##### `bundleDependencies`

- **Type**: `boolean`
- **Default**: `false`

Whether to include external dependencies in the final bundle. When `false`, all dependencies and peerDependencies are externalized.

##### `bundleSize`

- **Type**: `number | { maxSize: number; throwError?: boolean } | boolean`
- **Default**: `undefined`

Check the size of the final bundle files.

- **`number`**: Maximum size in bytes. Throws an error if exceeded.
- **`object`**: Configuration object with:
  - `maxSize` (required): Maximum size in bytes
  - `throwError` (optional, default: `true`): Whether to throw an error or just warn
- **`boolean`**: Enable/disable size checking (must provide config object or number if `true`)

**Examples:**

```typescript
// Example configurations:

// Throw error if bundle exceeds 500KB
const config1 = { bundleSize: 500 * 1024 };

// Just warn, don't fail the build
const config2 = {
  bundleSize: {
    maxSize: 500 * 1024,
    throwError: false,
  },
};
```

The plugin will output during build:

- ✓ `index.js: 245KB / 500KB` (success)
- ⚠️ `Bundle size exceeded: index.js is 600KB (max: 500KB)` (warning or error)

## Examples

### Basic Library Build

```typescript
import { defineConfig } from '@pixpilot/tsdown-config';

export default defineConfig({
  entry: ['src/index.ts'],
  format: ['esm', 'cjs'],
  bundleSize: 500 * 1024, // 500KB limit
});
```

### Bundle Everything

```typescript
import { defineConfig } from '@pixpilot/tsdown-config';

export default defineConfig({
  bundleDependencies: true,
  bundleSize: {
    maxSize: 2 * 1024 * 1024, // 2MB
    throwError: false, // Just warn
  },
});
```

## Build Output

Generates ESM (`dist/index.js`) and CommonJS (`dist/index.cjs`) formats with TypeScript declarations. Files are cleaned before each build.

## License

MIT
npm package: @pixpilot/workspace-package-generator
Description: A tool for generating workspace packages in pnpm monorepos.
Author: pixpilot
Latest version: 2.1.2
Deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.

# workspace-package-generator

workspace-package-generator is a Plop generator for quickly scaffolding new packages in a pnpm + Turbo monorepo. It helps standardize package structure, configuration, and setup for modern TypeScript monorepos.

This generator is designed to work with the [pixpilot/pnpm-turbo-monorepo-template](https://github.com/pixpilot/pnpm-turbo-monorepo-template) template.

---

## Usage

This package exports a function `packageGenerator(plop: PlopGenerator)` that registers the generator with Plop. You should use it in your Turbo generator or Plop setup:

```typescript
import { packageGenerator } from '@pixpilot/workspace-package-generator';

export default function (plop: unknown): void {
  packageGenerator(plop);
}
```

- This is not a CLI tool. You must call the function in your code to register the packageGenerator.
- Typical usage is in a Turbo generator or Plopfile, e.g. in `turbo/generators/config.ts`.

### GeneratorOptions

The package generator uses the following TypeScript interface to customize the creation of new packages:

```typescript
export interface GeneratorOptions {
  orgName?: string; // Organization or scope name for generated packages (e.g., "@your-org")
  author?: string; // Author name for the generated package's package.json
  /**
   * Fallback repository URL to use for the generated package if no explicit repoUrl is provided.
   * By default, this will be collected from the root package.json repository.url field,
   * but setting baseRepoUrl will override that default value.
   * This value is used as-is and is not modified or appended to.
   */
  baseRepoUrl?: string;
}
```

These options can be provided when running the generator to control naming, authorship, and repository configuration for new packages.

---

## License

This package is licensed under the [MIT License](./LICENSE).
npm package: @pixpro/core
Description: 图片处理底层库，提供裁剪、缩放、AI 扩图等功能
Author: Lambortao
Latest version: 0.3.0

# PixPro AI图片处理库（AI Image Processing Library）

PixPro 是一个图片处理工具，提供了图片处理的基础功能，如常用的裁剪、等比例缩放、翻转、镜像、旋转等功能。同时，PixPro 还嵌入了各类第三方的AI图像处理能力，例如AI 扩图、AI擦除、AI去背景、AI提升解析度（更多陆续更新..）

您可以在任意网页端快速嵌入该工具【任意图片上传框、表单、后台等等】，即可实现无缝AI图像处理体验。

详见 [Github 文档](https://github.com/lambortao/PixPro)。

## 安装

```bash
npm install @pixpro/core
```

## 基本使用

```typescript
import PixPro from '@pixpro/core';

const pixpro = new PixPro(document.getElementById('container'), {
  token: 'your-api-token',
  host: 'https://api.your-service.com',
  routes: '/api',
  action: {
    extend: '/extend',
    erase: '/erase',
    removeBg: '/remove-background',
    hd: '/enhance-resolution'
  }
});
```
npm package: @pixpro/react
Description: PixPro 的 React UI 组件库
Latest version: 0.1.1

# PixPro AI图片处理库（AI Image Processing Library）

PixPro 是一个图片处理工具，提供了图片处理的基础功能，如常用的裁剪、等比例缩放、翻转、镜像、旋转等功能。同时，PixPro 还嵌入了各类第三方的AI图像处理能力，例如AI 扩图、AI擦除、AI去背景、AI提升解析度（更多陆续更新..）

您可以在任意网页端快速嵌入该工具【任意图片上传框、表单、后台等等】，即可实现无缝AI图像处理体验。

详见 [Github 文档](https://github.com/lambortao/PixPro)。

## 安装

```bash
npm install @pixpro/react
```

## 使用方法
```tsx
<template>
  <div class="editor-container">
    <PixProReact
      :token="token"
      :merchant-id="merchantId"
      :host="host"
      @export-image="handleExportImage"
      @close="handleClose"
    />
  </div>
</template>

<script setup lang="ts">
import { ref } from 'vue'
import { PixProReact } from '@pixpro/react'
import '@pixpro/react/dist/style.css'

const token = 'your_token'
const merchantId = 'your_merchant_id'
const host = 'https://api.example.com'

const handleExportImage = (imageData: string) => {
  console.log('导出的图片数据:', imageData)
}

const handleClose = () => {
  console.log('编辑器关闭')
}
</script>

<style>
.editor-container {
  width: 100%;
  height: 600px;
}
</style>
```
npm package: @pixpro/vue
Description: PixPro 的 Vue 3 UI 组件库
Latest version: 0.3.0

# PixPro AI图片处理库（AI Image Processing Library）

PixPro 是一个图片处理工具，提供了图片处理的基础功能，如常用的裁剪、等比例缩放、翻转、镜像、旋转等功能。同时，PixPro 还嵌入了各类第三方的AI图像处理能力，例如AI 扩图、AI擦除、AI去背景、AI提升解析度（更多陆续更新..）

您可以在任意网页端快速嵌入该工具【任意图片上传框、表单、后台等等】，即可实现无缝AI图像处理体验。

详见 [Github 文档](https://github.com/lambortao/PixPro)。

## 安装

```bash
npm install @pixpro/vue
```

## 使用方法
```vue
<template>
  <div class="editor-container">
    <pix-pro-vue
      :token="token"
      :merchant-id="merchantId"
      :host="host"
      @export-image="handleExportImage"
      @close="handleClose"
    />
  </div>
</template>

<script setup lang="ts">
import { ref } from 'vue'
import { PixProVue } from '@pixpro/vue'
import '@pixpro/vue/dist/index.css'

const token = 'your_token'
const merchantId = 'your_merchant_id'
const host = 'https://api.example.com'

const handleExportImage = (imageData: string) => {
  console.log('导出的图片数据:', imageData)
}

const handleClose = () => {
  console.log('编辑器关闭')
}
</script>

<style>
.editor-container {
  width: 100%;
  height: 600px;
}
</style>
```
npm package: @pixpro/vue2
Description: PixPro 的 Vue 2 UI 组件库
Latest version: 0.1.0

# PixPro AI图片处理库（AI Image Processing Library）

PixPro 是一个图片处理工具，提供了图片处理的基础功能，如常用的裁剪、等比例缩放、翻转、镜像、旋转等功能。同时，PixPro 还嵌入了各类第三方的AI图像处理能力，例如AI 扩图、AI擦除、AI去背景、AI提升解析度（更多陆续更新..）

您可以在任意网页端快速嵌入该工具【任意图片上传框、表单、后台等等】，即可实现无缝AI图像处理体验。

详见 [Github 文档](https://github.com/lambortao/PixPro)。

## 安装

```bash
npm install @pixpro/vue2
```

## 使用方法
```vue
<template>
  <div class="editor-container">
    <pix-pro-vue v-bind="pixProAttrs" @handle-close="togglePixProVisible(false)" @handle-export-image="handleExportImage" />
  </div>
</template>

<script>
import { PixProVue } from '@pixpro/vue'
import '@pixpro/vue/dist/index.css'

export default {
  name: "UploadBox",
  components: {
    PixProVue,
  },
  data() {
    return {
      pixProVisible: false,
      imageSrc: "",
      fileInput: null,
      pixProAttrs: {
        cropRatios: {
          original: 0,
          "1:1": 1,
          "3:4": 3 / 4,
          "4:3": 4 / 3,
          "9:16": 9 / 16,
          "16:9": 16 / 9,
        },
        host: "",
        routes: "",
        token: "",
        fitstImage: null,
        showDownloadBtn: true,
        eraserSize: {
          min: 20,
          max: 100,
          default: 50,
        },
      },
    };
  },
  mounted() {
    this.fileInput = this.$refs.fileInput;
  },
  methods: {
    togglePixProVisible(visible) {
    },
    handleExportImage(image) {
    },
    closeImageSrc() {
    },
    handleDownload() {
    },
    triggerFileInput() {
    },
    handleFileChange(event) {
    },
  },
};
</script>

<style>
.editor-container {
  width: 100%;
  height: 600px;
}
</style>
```
npm package: @pixra/plugin-cli
Description: CLI tool for building and packaging Pixra plugins
Author: Pixra Team
Latest version: 0.0.3

# @pixra/plugin-cli

CLI tool for building and packaging Pixra plugins.

## Installation

```bash
pnpm i -D @pixra/plugin-cli
```

## Usage

```bash
# Build plugin
pixra-plugin build

# Package plugin into ZIP
pixra-plugin zip

# Development mode with watch
pixra-plugin dev
```

## Commands

### `build`

Compiles the plugin source code. Automatically detects TypeScript or JavaScript files.

### `zip`

Creates a ZIP file containing the plugin manifest, compiled code, and README.

### `dev`

Runs in watch mode, automatically rebuilding when source files change.
npm package: @pixso/create-plugin
Description: plugin template
Author: Pixso
Latest version: 1.0.3

# create-pixso-plugin

##### 使用

```bash
  npm init @pixso/plugin
  npx @pixso/create-plugin
```

#### 使用文档

[Documentation](https://pixso.cn/developer/zh/tools.html#pixso-create-plugin)

#### 更新日志

##### V1.0.2

- 更新 @pixso/plugin-cli 版本
- 新增 Host 脚本运行支持
- 修复pnpm安装依赖 webpack-hot-middleware 未找到问题
npm package: @pixso/dev-server
Description: pixso 插件开发 dev server
Author: Pixso
Latest version: 0.0.4

#### 使用
```bash
npm install @pixso/dev-server -g
```
全局安装之后，找到插件manifest.json文件所在位置，命令行运行pps/pixso-plugin-server即可开启当前插件热更。

#### change log
新增 hmr 参数控制是否启用file source 热更方式。 针对大项目或者dev开发没有配置inline source的非常有效，建议开启。
``` bash
pps hmr or pixso-plugin-server hmr
```
npm package: @pixso/plugin-cli
Description: plugin cli
Author: Pixso
Latest version: 1.0.8

##### 安装

```bash
  npm install @pixso/plugin-cli -D
```

#### 使用文档

[Documentation](https://pixso.cn/developer/zh/tools.html#pixso-plugin-cli)

#### 更新日志

##### v1.0.2

- 新增 Host 脚本运行支持

```typescript
// plugin.config.ts
import { defineConfig } from "@pixso/plugin-cli";

export default defineConfig({
  ui: "./ui/index.ts",
  main: "./main.ts",
  host: "./host.ts", // 指定 host 脚本热更调试路径
});
```

```JSON
// manifest.json
{
  "id": "123456",
  "name": "pixso-plugin",
  "ui": "dist/ui.html",
  "main": {
    "sandbox": "dist/main.js",
    "host": "dist/host.js" // 指定 host 脚本构建路径
  }
}
```