open-index/open-npm huggingface dataset:
npm package: @maciejreimann/tetris
Description: A Tetris Clone
Author: Maciej Reimann
Latest version: 1.3.0

...

# Vanilla Tetris

Tetris game engine written in functional ES6.

---

## Brief:

Tetris game API with wide backend and frontend configuration possibilities.

## Goals:

A self-assigned programming excercise which main goals were: \
&nbsp;&nbsp; 1. To learn the differences between object-oriented and functional styles; \
&nbsp;&nbsp; 2. To design an API with separation of concerns in mind; \
&nbsp;&nbsp; 3. To practice TDD and procedural programming;

## [See live v.1.0.0](https://vanillatetris.herokuapp.com/)

(This is a MVP... ).

## TODOs:

~~make game work;~~ \

- apply some styling;

## Example Usage

#### Gameboard Setup

Create or import the gameboard configuration object:

```javascript
// The default gameBoard object looks like this:
const gameBoard = {
  pixel: 15, // basic game measurement unit, the assgned value is in actual canvas units
  width: 10, // gameboard width expressed in game units (pixels)
  height: 20, // gameboard height expressed in game units (pixels)
  tempo: 1000, // tetromino's falling rate, in ms
  stockLength: 3, // amount of tetrominos in queue
  tetrominoHeight: "random", // useful for testing purposes only
  colorPalette: "classic" // to be changed and moved to GUI config file...
};
module.exports = gameBoard;
```

```javascript
// In the tetrisAPI.js file:
// Import or pass inline the configuration object:
const gameBoard = require("./gameBoard");
const tetris = require("./tetrisAPI")(gameBoard, update);
```

#### HTML `<canvas>` implementation example:

```javascript
// In the tetrisAPI.js file:
// Import or pass inline the configuration object:
const gameBoard = require("./gameBoard");
const tetris = require("./tetrisAPI")(gameBoard, update);
```

### Game Engine API

**.isGameRunning()**\
Returns:\
&nbsp;&nbsp; Type: `boolean`\
&nbsp;&nbsp; Default: `false` \
A flag to indicate whether the interval is set or cleared;

**.startGame()**\
Sets the game state to initial value and starts the gameloop; `.isGameRunning()` will return `true`;

**.pauseGame()**\
Pause the gameloop; `.isGameRunning()` will return `false`;

**.moveDown()**\
Moves the current tetromino block one pixel down.

**.moveRight()**\
Moves the current tetromino block one pixel right.

**.moveLeft()**\
Moves the current tetromino block one pixel left.

**.turnRight()**\
Turns the current tetromino block 90 degrees clockwise.

**.turnLeft()**\
Turns the current tetromino block 90 degrees counter-clockiwise.

**.getState()**\
Returns the current game state.

## Useful resources

- [Wikipedia article on tetris game](https://en.wikipedia.org/wiki/Tetris "Wikipedia article")

Functional programming in javacsript:\

- [Factory Functions in JavaScript](https://www.youtube.com/watch?v=ImwrezYhw4w&t=243s "Factory functions")
npm package: @maciejreimann/ts-tetris
Description: A Tetris Clone
Author: Maciej Reimann
Latest version: 1.3.2

...

# Vanilla Tetris

Tetris game engine written in functional ES6.

---

## Brief:

Tetris game API with wide backend and frontend configuration possibilities.

## Goals:

A self-assigned programming excercise which main goals were: \
&nbsp;&nbsp; 1. To learn the differences between object-oriented and functional styles; \
&nbsp;&nbsp; 2. To design an API with separation of concerns in mind; \
&nbsp;&nbsp; 3. To practice TDD and procedural programming;

## [See live v.1.0.0](https://vanillatetris.herokuapp.com/)

(This is a MVP... ).

## TODOs:

~~make game work;~~ \

- apply some styling;

## Example Usage

#### Gameboard Setup

Create or import the gameboard configuration object:

```javascript
// The default gameBoard object looks like this:
const gameBoard = {
  pixel: 15, // basic game measurement unit, the assgned value is in actual canvas units
  width: 10, // gameboard width expressed in game units (pixels)
  height: 20, // gameboard height expressed in game units (pixels)
  tempo: 1000, // tetromino's falling rate, in ms
  stockLength: 3, // amount of tetrominos in queue
  tetrominoHeight: "random", // useful for testing purposes only
  colorPalette: "classic" // to be changed and moved to GUI config file...
};
module.exports = gameBoard;
```

```javascript
// In the tetrisAPI.js file:
// Import or pass inline the configuration object:
const gameBoard = require("./gameBoard");
const tetris = require("./tetrisAPI")(gameBoard, update);
```

#### HTML `<canvas>` implementation example:

```javascript
// In the tetrisAPI.js file:
// Import or pass inline the configuration object:
const gameBoard = require("./gameBoard");
const tetris = require("./tetrisAPI")(gameBoard, update);
```

### Game Engine API

**.isGameRunning()**\
Returns:\
&nbsp;&nbsp; Type: `boolean`\
&nbsp;&nbsp; Default: `false` \
A flag to indicate whether the interval is set or cleared;

**.startGame()**\
Sets the game state to initial value and starts the gameloop; `.isGameRunning()` will return `true`;

**.pauseGame()**\
Pause the gameloop; `.isGameRunning()` will return `false`;

**.moveDown()**\
Moves the current tetromino block one pixel down.

**.moveRight()**\
Moves the current tetromino block one pixel right.

**.moveLeft()**\
Moves the current tetromino block one pixel left.

**.turnRight()**\
Turns the current tetromino block 90 degrees clockwise.

**.turnLeft()**\
Turns the current tetromino block 90 degrees counter-clockiwise.

**.getState()**\
Returns the current game state.

## Useful resources

- [Wikipedia article on tetris game](https://en.wikipedia.org/wiki/Tetris "Wikipedia article")

Functional programming in javacsript:\

- [Factory Functions in JavaScript](https://www.youtube.com/watch?v=ImwrezYhw4w&t=243s "Factory functions")
npm package: @maciejwojs/input-bridge
Description: Native input bridge addon for Node.js
Latest version: 0.0.3

# @maciejwojs/input-bridge

Native Node.js addon for simulating hardware input events (mouse movement, clicks, keyboard events). Packages are published to NPM with provenance (OIDC) and include prebuilt binaries via GitHub Actions.

## Current state

- Windows backend is implemented using the `SendInput` API, supporting batched event execution for high performance.
- Features a cross-platform `InputQueue` that buffers input events.
- Includes a movement decimation algorithm (`optimizeMouseMovesRelative` / `optimizeMouseMovesAbsolute`) to filter out redundant micro-movements, vastly reducing native API call overhead.
- Linux backend is currently a stub (planned implementation via `uinput` or Wayland/X11 tools).
- Runtime loading uses `node-gyp-build`, so local build and `prebuilds/` binaries are both supported.

## Install

```bash
bun install
```

## Local build

```bash
bun run build # to compile TypeScript
bun x node-gyp rebuild
```

## Prebuilt binaries (prebuildify)

Build prebuild for current platform:

```bash
bun run prebuildify
```

Build prebuilds for selected platforms:

```bash
bun run prebuildify:all
```

Output goes to `prebuilds/` and is loaded automatically by `lib/index.ts`.
Scripts are configured to run `node-gyp` via `node-gyp` internally and build TypeScript beforehand.

## How to add other systems / window managers

Recommended backend mapping:

- Windows: `SendInput` (already in place)
- Linux: `uinput`, `XTest` (X11) or `ydotool` (Wayland)
- macOS: `CGEventCreateMouseEvent` and `CoreGraphics` APIs

Practical architecture:

- Keep one JS API (`InputBridge`) for all OSes.
- Keep one addon target in `binding.gyp`.
- Keep per-platform backend in separate `.cpp` files and select in `binding.gyp` conditions.
- Current split is:
	- `src/addon.cpp` - shared N-API wrapper
	- `src/win/platform_input_win.cpp` - Windows backend
	- `src/linux/platform_input_linux.cpp` - Linux backend entry point
	- `src/platform_input_stub.cpp` - fallback for other systems
	- `src/platform_input.hpp` - common backend interface and `InputQueue` implementation
- Unsupported combinations default to a stub fallback implementing the interface.

To add the next platform, create the backend file (for example `src/macos/platform_input_macos.cpp`), implement the `IPlatformInput` virtual methods (the `InputQueue` and batching mechanics will be handled automatically by the base classes), and add the file to the matching `binding.gyp` condition branch.

This gives you one npm package with many prebuilt binaries and no user-side compile step.
npm package: @maciejwojs/screen-capture
Description: Native screen capture addon for Node.js
Latest version: 0.2.4

# @maciejwojs/screen-capture

Native Node.js addon for screen capture. Packages are published to NPM with provenance (OIDC) and include prebuilt binaries via GitHub Actions.

## Current state

- Windows backend is implemented with `Windows.Graphics.Capture` + D3D11.
- Linux backend is implemented with `xdg-desktop-portal` (D-Bus) and PipeWire stream, supporting modern desktop environments (Wayland/X11).
- Runtime loading uses `node-gyp-build`, so local build and `prebuilds/` binaries are both supported.

## Usage

```javascript
import { ScreenCapture } from '@maciejwojs/screen-capture';

const capture = new ScreenCapture();
capture.start();

// Get texture structure formatted for Electron's shared-texture API:
const textureInfo = capture.getSharedTextureInfo();

// Or get the raw handle data (legacy):
const rawHandle = capture.getSharedHandle();

capture.stop();
```

## Install

```bash
bun install
```

## Local build

```bash
bun run build # to compile TypeScript
bun x node-gyp rebuild
```

## Prebuilt binaries (prebuildify)

Build prebuild for current platform:

```bash
bun run prebuildify
```

Build prebuilds for selected platforms:

```bash
bun run prebuildify:all
```

Output goes to `prebuilds/` and is loaded automatically by `dist/index.js`.
Scripts are configured to run `node-gyp` via `node-gyp` internally and build TypeScript beforehand.

## How to add other systems / window managers

Recommended backend mapping:

- Windows: `Windows.Graphics.Capture` (already in place)
- Linux: PipeWire portal (`xdg-desktop-portal`) with DMA-BUF limits (already in place)
- macOS: ScreenCaptureKit (or CGDisplayStream as fallback)

Practical architecture:

- Keep one JS API (`ScreenCapture`) for all OSes.
- Keep one addon target in `binding.gyp`.
- Keep per-platform backend in separate `.cpp` files and select in `binding.gyp` conditions.
- Current split is:
	- `src/addon.cpp` - shared N-API wrapper
	- `src/serialize.cpp` - N-API data serialization logic for Electron and raw handles
	- `src/win/platform_capture_win.cpp` - Windows backend
	- `src/linux/platform_capture_linux.cpp` - Linux backend entry point
	- `src/platform_capture_stub.cpp` - fallback for other systems
	- `src/platform_capture.hpp` - common backend interface
- For unsupported combinations, return a clear runtime error (already done).

To add next platform, create next backend file (for example `src/macos/platform_capture_macos.cpp`) and add it in matching `binding.gyp` condition branch.

This gives you one npm package with many prebuilt binaries and no user-side compile step.
npm package: @maciekdev/fetcher
Description: HTTP client based on fetch API
Author: Maciej Garncarski
Latest version: 1.14.1

# Fetcher

A lightweight and simple fetch wrapper for Node.js and potentially the browser.

[![NPM Version](https://img.shields.io/npm/v/@maciekdev/fetcher)](https://www.npmjs.com/package/@maciekdev/fetcher)
[![License](https://img.shields.io/badge/License-MIT-green.svg)](https://opensource.org/licenses/MIT)
[![spring-easing's badge](https://deno.bundlejs.com/?q=@maciekdev/fetcher&badge=simple&badge-style=flat)](https://bundlejs.com/?q=@maciekdev/fetcher)

Fetcher provides a minimal and straightforward way to make HTTP requests using the familiar `fetch` API. It aims to simplify common use cases without adding unnecessary complexity.

## Features

- **Lightweight:** Minimal dependencies and a small footprint.
- **Simple API:** Mirrors the standard `fetch` API for ease of use.
- **TypeScript Support:** Written in TypeScript with type definitions included.

## Installation

```bash
pnpm add @maciekdev/fetcher
# or
npm install @maciekdev/fetcher
# or
yarn add @maciekdev/fetcher
# or
bun add @maciekdev/fetcher
```

## Example usage

```ts
// In this example, the `zod` library is used for schema validation.
// Fetcher is compatible with any standard schema validation library.

import { z } from "zod/v4";
import { createFetcherInstance } from "@maciekdev/fetcher";

export const fetcher = createFetcherInstance({
  baseURL: "https://yourApiPath.com",
});

const zodSchema = z.object({
  username: z.string(),
});

const myData = await fetcher({
  method: "GET",
  url: "/test-endpoint",
  schema: zodSchema,
});

console.log(myData?.data.username);
/*
username: string | undefined

Typesafe!
*/
```

## API reference

### createFetcherInstance(options | undefined)

**Parameters:**

- `options`?: (FetcherInstanceOptions) Configuration object for fetcher instance.

### fetcher(options)

**Parameters:**

- `options`?: (FetcherOptions) Configuration object for fetcher instance.

**Options config:**

```markdown
- `responseType`?: "json" | "text" | "arrayBuffer";
- `method`: "GET" | "POST" | "DELETE" | "PUT" | "PATCH";
- `url`: string;
- `body`?: FormData | Record<string, unknown>;
- `schema`?: `zodSchema`;
- `throwOnError`?: boolean;
- `signal`?: AbortSignal;
- `headers`?: Record<string, string>;
- `headersStrategy`?: "merge" | "overwrite" | "omit-global";
- `cache`?: "default" | "no-store" | "no-cache" | "force-cache" | "only-if-cached";
- `credentials`?: "include" | "omit" | "same-origin";
- `keepalive`?: boolean;
- `mode`?: "cors" | "no-cors" | "same-origin";
- `priority`?: "auto" | "high" | "low";
- `redirect`?: "follow" | "error" | "manual";
- `referrer`?: "about:client" | "client" | "no-referrer";
- `referrerPolicy`?: "no-referrer" | "no-referrer-when-downgrade" | "origin" | "origin-when-cross-origin" | "same-origin" | "strict-origin" | "strict-origin-when-cross-origin" | "unsafe-url";
- `integrity`?: string;
- `onErrorThrown`?: (error: Error) => void;
```

## License

MIT
npm package: @macielask/randomid-generator
Description: The `index.js` script is a simple Node.js module that generates a random identifier of a specified length. Below is a brief description of how the script works and how to use it.
Latest version: 1.0.1

# Random Identifier Generator Script (randomID)

The `index.js` script is a simple Node.js module that generates a random identifier of a specified length. Below is a brief description of how the script works and how to use it.

## Installation

To use this script, you need to have Node.js installed on your computer. If you haven't installed it yet, you can download it from the [official website](https://nodejs.org/).

Use yarn command to access the package

yarn add @macielask/randomid-generator

## Usage

Below is an example of how to use the script in your code:

```javascript
const randomID = require('@macielask/randomid-generator');

const idLength = 10; // Specify the desired length of the identifier
const id = randomID(idLength);
console.log(`Generated random identifier: ${id}`);

The randomID Function

The randomID function takes a single argument idLength, which specifies the length of the generated identifier. The function generates the identifier by randomly selecting characters from a set of letters (both uppercase and lowercase) and digits.

License

This project is licensed under the MIT License.

Thank you for using this script!
npm package: @macil/deferred-promise
Description: Library to create an object with a promise and the ability to fulfill it 
Latest version: 1.0.0

# deferred_promise

This library exports the `DeferredPromise` class which has the properties
`promise`, `resolve(value)`, and `reject(reason)`. This is meant to be used to
when you need to create an object that encapsulates a promise with the ability
to fulfill it. The exposed promise is a normal promise object that can be passed
around separately from the capability to fulfill it.

[Don't use this unless you know what you're doing.](https://github.com/petkaantonov/bluebird/wiki/Promise-anti-patterns#the-deferred-anti-pattern)
The standard `Promise` constructor is usually superior because it limits the
visibility of the `resolve` and `reject` capabilities in a closure. This is
inconvenient in some situations.

Originally based on [p-defer](https://github.com/sindresorhus/p-defer).

This library is available for Deno at
https://deno.land/x/deferred_promise@v1.0.0/mod.ts, and is available for Node.js
on npm as
[@macil/deferred-promise](https://www.npmjs.com/package/@macil/deferred-promise).

## Usage

```typescript
import { DeferredPromise } from "https://deno.land/x/deferred_promise@v1.0.0/mod.ts";
function delay(milliseconds: number) {
  const deferred = new DeferredPromise<string>();
  setTimeout(() => {
    deferred.resolve("🦄");
  }, milliseconds);
  return deferred.promise;
}
console.log(await delay(100));
//=> '🦄'
```

_The above is just an example. Use
[std/async's `delay`](https://deno.land/std@0.126.0/async/delay.ts) if you need
to delay a promise._
npm package: @macil/simple-base-converter
Description: Simple math module for base conversion.
Author: WATANABE Shin
Latest version: 1.0.0

# @macil/simple-base-converter

_This is a fork of https://github.com/sin9270/simple-base-converter changed to publish ES5-compatible code to npm._

Simple math module for base conversion.

## Install

```bash
npm i @macil/simple-base-converter
```

## Usage
Some bases(2, 8, 16, 32, 36, 62) are predefined.

- _10To2(num)
- _10To8(num)
- _10To16(num)
- _10To32(num)
- _10To36(num)
- _10To62(num)
- _2To10(num)
- _8To10(num)
- _16To10(num)
- _32To10(num)
- _36To10(num)
- _62To10(num)

```Javascript
import { _10To2, _2To10 } from "simple-base-converter";

_10To2(100); // "1100100"
_2To10(1100100); // "100"

// Input can be both integer or string number.
_10To2("100"); // "1100100"
_2To10("1100100"); // "100"
```

Of course you can choose bases freely.  
`convertBase(num, originalBase, newBase)` converts num from originalBase to newBase.  
If you set integer to originalBase or newBase, they are automatically converted by using default base `0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ`.

```Javascript
import { convertBase } from "simple-base-converter";

convertBase("20a4", 17, 52); // "3Ag"
convertBase("20a4", "0123456789abcdefg", "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP"); // "3Ag"
```

Custom bases are also available.

```Javascript
convertBase(10000, 10, "－・"); // "・－－・・・－－－・－－－－"
convertBase("4649", "0123456789", "零一二三四五六七八九"); // "四六四九"
```
npm package: @macioa/igit
Description: A unified CLI wrapper for Git, GitHub CLI, GitLab CLI, and Google's Repo tool
Latest version: 0.0.4

# igit

A unified CLI wrapper for Git, GitHub CLI, GitLab CLI, and Google's Repo tool.

## Overview
A simple git utility designed for submodules. Git commands run at the top level directory in a project with submodules will be appropriately routed to their submodules. Commands run in a directory without submodules will function as normal. Supports all commands in git, github cli, gitlab cli and google repo tool with lazy installs for each and customizable prioritized routing.
npm package: @macist-m/robinia-uikit
Description: Set of UI components for Robinia projects
Latest version: 0.0.2

# 🥞 Pancake UIkit

[![Version](https://img.shields.io/npm/v/@pancakeswap-libs/uikit)](https://www.npmjs.com/package/@pancakeswap-libs/uikit) [![Size](https://img.shields.io/bundlephobia/min/@pancakeswap-libs/uikit)](https://www.npmjs.com/package/@pancakeswap-libs/uikit)

Pancake UIkit is a set of React components and hooks used to build pages on Pancake's apps. It also contains a theme file for dark and light mode.

## Install

`yarn add @pancakeswap-libs/uikit`

## Setup

### Theme

Before using Pancake UIkit, you need to provide the theme file to styled-component.

```
import { ThemeProvider } from 'styled-components'
import { light, dark } from '@pancakeswap-libs/uikit'
...
<ThemeProvider theme={isDark}>...</ThemeProvider>
```

### Reset

A reset CSS is available as a global styled component.

```
import { ResetCSS } from '@pancakeswap-libs/uikit'
...
<ResetCSS />
```

### Types

This project is built with Typescript and export all the relevant types.

## How to use the UIkit

If you want to use components from the UIkit, check the [Storybook documentation](https://pancakeswap.github.io/pancake-uikit/)
npm package: @macist-m/swapgray-uikit
Description: Set of UI components for pancake projects
Latest version: 1.0.0

# 🥞 Pancake UIkit

[![Version](https://img.shields.io/npm/v/@pancakeswap-libs/uikit)](https://www.npmjs.com/package/@pancakeswap-libs/uikit) [![Size](https://img.shields.io/bundlephobia/min/@pancakeswap-libs/uikit)](https://www.npmjs.com/package/@pancakeswap-libs/uikit)

Pancake UIkit is a set of React components and hooks used to build pages on Pancake's apps. It also contains a theme file for dark and light mode.

## Install

`yarn add @pancakeswap-libs/uikit`

## Setup

### Theme

Before using Pancake UIkit, you need to provide the theme file to styled-component.

```
import { ThemeProvider } from 'styled-components'
import { light, dark } from '@pancakeswap-libs/uikit'
...
<ThemeProvider theme={isDark}>...</ThemeProvider>
```

### Reset

A reset CSS is available as a global styled component.

```
import { ResetCSS } from '@pancakeswap-libs/uikit'
...
<ResetCSS />
```

### Types

This project is built with Typescript and export all the relevant types.

## How to use the UIkit

If you want to use components from the UIkit, check the [Storybook documentation](https://pancakeswap.github.io/pancake-uikit/)
npm package: @mack1100/avue-form-design
Description: 基于Avue的表单设计器，可以减少页面开发工作量，极大提升效率。
Author: MJT.QZ
Latest version: 0.0.3

## 简介

基于Avue的表单设计器，可以减少页面开发工作量，极大提升效率。


## 依赖

element-ui 2.13.2+

```sh
$ npm i element-ui
```

@smallwei/avue 2.6.16+

```sh
$ npm i @smallwei/avue
```

或自行引入cdn

## 安装

### 组件

```sh
$ npm i @mjt.qz/avue-form-design
或
$ yarn add @mjt.qz/avue-form-design
```

## 使用

```
import AvueFormDesign from '@sscfaith/avue-form-design'

Vue.use(AvueFormDesign)
```

```
<avue-form-design style="height: 86vh;"
                  :options="options"
                  storage
                  @submit="handleSubmit"></avue-form-design>
```

### 属性

| 参数 | 说明 | 类型 | 默认值 |
| ------ | ------ | ------ | ------ |
| options | 字段配置 | Object/String | { column: [] } |
| storage | 开启本地存储功能，防止浏览器刷新丢失json | Boolean | false |
| asideLeftWidth | 左工具栏宽度 | String/Number | '270px' |
| asideRightWidth | 右工具栏宽度 | String/Number | '380px' |
| showAvueDoc（已废弃，请使用toolbar） | 是否显示Avue文档 | Boolean | false |
| showGithubStar | 是否显示GitHub Star | Boolean | true |
| toolbar | 顶部工具栏 | Array | ['avue-doc', 'import', 'generate', 'preview', 'clear'] |
| undoRedo | 是否开启撤销重做功能 | Boolean | true |
| includeFields | 左侧展示字段 | Array | fieldsConfig.js中配置的字段 |
| customFields | 自定义组件 | Array | [使用方法](https://github.com/sscfaith/avue-form-design/blob/master/CHANGELOG.md#2020-09-22) |

### options字段配置

<a href="https://avuejs.com/doc/form/form-doc" target="_blank">Avue文档</a>

| 属性 | 说明 | 类型 | 可选值 | 默认值 |
| ------| ------ | ------ | ------ | ------ |
| column | Avue字段 | Array | - | [] |
| labelPosition | 字段位置 |  String | 'left'/'center'/'right' | - |
| labelWidth | 字段宽度 | Number | - | - |
| gutter | 字段间隔 | Number | - | 0 |
| menuBtn | 表单按钮 | Boolean | true/false | true |
| submitBtn | 显示提交按钮 | Boolean | true/false | true |
| submitText | 提交按钮文本 | String | - | '提交' |
| emptyBtn | 显示清空按钮 | Boolean | true/false | true |
| emptyText | 清空按钮文本 | String | - | '清空' |
| tabs | 多分组转标签 | Boolean | true/false | false |
| detail | 详情模式 | Boolean | true/false | false |
| readonly | 全局只读 | Boolean | true/false | false |
| disabled | 全局禁用 | Boolean | true/false | false |

### 事件

| 名称 | 说明 | 回调参数 |
| ------ | ------ | ------ |
| submit | 生成json回调 | 当前配置的json |

### 方法

| 名称 | 说明 | 参数 | 返回 |
| ------ | ------ | ------ | ------ |
| getData | 获取当前编辑器的JSON | type: 'string'/'json' | Promise |

### 插槽
| 名称 | 说明 |
| ------ | ------ | 
| toolbar | 顶部工具栏右侧插槽 | 
| toolbar-left | 顶部工具栏左侧插槽 | 

### Avue插件

#### 富文本

```
import AvueUeditor from 'avue-plugin-ueditor'

Vue.use(AvueUeditor)
```
npm package: @mackbrowne/prettier-config
Description: My personal Prettier config
Author: Mack Browne
Latest version: 1.0.0

# `@mackbrowne/prettier-config`

> My personal [Prettier](https://prettier.io) config.

## Usage

**Install**:

```bash
$ yarn add --dev @mackbrowne/prettier-config
```

**Edit `package.json`**:

```jsonc
{
  // ...
  "prettier": "@mackbrowne/prettier-config"
}
```