open-index/open-npm huggingface dataset:
npm package: @minicc/sdk
Description: MiniCC SDK - Software Development Kit for building AI agents
Latest version: 0.2.2

# @minicc/sdk

MiniCC SDK - 用于构建 AI 智能体的软件开发工具包

## 安装

```bash
npm install @minicc/sdk
```

## 快速开始

```typescript
import { createAgent, BaseTool } from '@minicc/sdk';

// 创建自定义工具
class SqlQueryTool extends BaseTool {
  name = 'sql_query';
  description = '执行 SQL 查询';

  parameters = {
    type: 'object',
    properties: {
      query: { type: 'string' }
    },
    required: ['query']
  };

  async execute(args: any) {
    // 在这里实现你的 SQL 逻辑
    return { success: true, data: '查询结果' };
  }
}

// 创建智能体
const agent = createAgent({
  model: 'gpt-4',
  systemPrompt: '你是一个有用的 SQL 助手',
  tools: [new SqlQueryTool()],
  openaiConfig: {
    apiKey: process.env.OPENAI_API_KEY,
    baseURL: 'https://api.openai.com/v1'
  }
});

// 使用智能体
const response = await agent.chat('session-1', '显示所有用户');
```

## API 参考

### `createAgent(config: AgentConfig): AgentInstance`

使用提供的配置创建一个 AI 智能体。

#### AgentConfig

- `model?` - 大语言模型名称（默认：'gpt-4'）
- `systemPrompt?` - 自定义系统提示
- `tools?` - 自定义工具数组
- `openaiConfig` - OpenAI API 配置
- `autoRegisterBuiltins?` - 是否注册内置工具（默认：true）

#### OpenAIConfig

- `apiKey` - OpenAI API 密钥（来自环境变量或直接提供）
- `baseURL?` - API 基础 URL（默认：OpenAI）
- `model?` - 默认模型

#### 环境变量

SDK 从以下环境变量读取配置：

- `OPENAI_API_KEY` - OpenAI API 密钥
- `OPENAI_BASE_URL` - API 基础 URL（可选，默认为 OpenAI）
- `MODEL` - 默认模型名称（可选，默认为 'gpt-4'）

```typescript
// 使用环境变量
const agent = createAgent({
  openaiConfig: {
    apiKey: process.env.OPENAI_API_KEY,
    baseURL: process.env.OPENAI_BASE_URL
  }
});

// 或直接提供
const agent = createAgent({
  openaiConfig: {
    apiKey: 'your-api-key',
    baseURL: 'https://api.openai.com/v1'
  }
});
```

### 内置工具

- `FileReadTool` - 读取文件内容
- `FileWriteTool` - 写入文件
- `FileListTool` - 列出目录内容
- `FileEditTool` - 在文件中查找和替换
- `ShellTool` - 执行 shell 命令
- `SearchTool` - 搜索代码模式

### 自定义工具

继承 `BaseTool` 来创建自定义工具：

```typescript
class MyTool extends BaseTool {
  name = 'my_tool';
  description = '我的自定义工具';

  parameters = {
    type: 'object',
    properties: {
      input: { type: 'string' }
    },
    required: ['input']
  };

  async execute(args: any) {
    // 工具逻辑
    return { success: true, data: '结果' };
  }
}
```

## 示例

### 基础智能体

```typescript
const agent = createAgent({
  openaiConfig: { apiKey: 'your-key' }
});

const response = await agent.chat('session-1', '列出当前目录的文件');
```

### 仅使用自定义工具

```typescript
const agent = createAgent({
  tools: [new MyCustomTool()],
  autoRegisterBuiltins: false, // 不使用内置工具
  openaiConfig: { apiKey: 'your-key' }
});
```

### 高级配置

```typescript
const agent = createAgent({
  model: 'gpt-4-turbo',
  systemPrompt: '你是一个专业的数据分析师',
  tools: [new SqlTool(), new ChartTool()],
  openaiConfig: {
    apiKey: process.env.OPENAI_API_KEY,
    baseURL: 'https://my-proxy.com/v1'
  }
});
```

## 许可证

MIT
npm package: @minicdn/vitejs-plugins-interpolate-html
Author: microld
Latest version: 1.0.1

# Vite Plugin Interpolate HTML [![npm](https://img.shields.io/npm/v/@minicdn/vitejs-plugins-interpolate-html.svg?style=flat-square&logo=npm)](https://npmjs.com/package/@minicdn/vite-plugin-interpolate-html)

参考 [create-react-app](https://github.com/facebook/create-react-app/blob/main/packages/react-dev-utils/InterpolateHtmlPlugin.js)

## Install

```bash
pnpm install --save-dev @minicdn/vitejs-plugins-interpolate-html

# or

yarn add --save-dev @minicdn/vitejs-plugins-interpolate-html

# or

npm install --save-dev @minicdn/vitejs-plugins-interpolate-html
```

## Usage

```typescript
import interpolate from "@minicdn/vitejs-plugins-interpolate-html";

module.exports = {
  plugins: [
    interpolate({
      NODE_ENV: "development",
    }),
  ],
};

// or

module.exports = {
  plugins: [
    interpolate(
      {
        NODE_ENV: "development",
      },
      {
        prefix: "%",
        suffix: "%"
      }
    ),
  ],
};
```

## Example

```html
<!DOCTYPE html>
<html lang="en" data-node-env="%NODE_ENV%">
  <head>
    <meta charset="UTF-8" />
  </head>

  <body>
    <div id="root"></div>
    <script type="module" src="/src/main.tsx"></script>
  </body>
</html>
```

## Options

### `prefix`

  - **Type:** `string`
  - **Default:** `"%"`

### `suffx`

  - **Type:** `string`
  - **Default:** `"%"`
npm package: @minicdn/webfonts-pingfang
Description: 苹方 `webfonts`
Author: 2627500295
Latest version: 0.1.0-beta

# Pingfang Web Fonts

苹方 `webfonts`

## 安装

```bash
yarn add @minicdn/webfonts-pingfang
```

OR

```bash
npm install @minicdn/webfonts-pingfang
```

## 使用

### scss

```javascript
import '@minicdn/webfonts-pingfang/src/index.scss';
```

### css

```javascript
import '@minicdn/webfonts-pingfang';
```

OR

```javascript
import '@minicdn/webfonts-pingfang/dist/index.css';
```
npm package: @minico/core
Description: minico基础跳转插件
Author: Minico
Latest version: 0.0.7

# navigate

minico基础跳转插件

## Install

```bash
npm install @minico/core
npx cap sync
```

## API

<docgen-index>

* [`echo(...)`](#echo)
* [`navigateTo(...)`](#navigateto)
* [`navigateBack(...)`](#navigateback)
* [`closeWebview()`](#closewebview)
* [Interfaces](#interfaces)
* [Enums](#enums)

</docgen-index>

<docgen-api>
<!--Update the source file JSDoc comments and rerun docgen to update the docs below-->

### echo(...)

```typescript
echo(options: { value: string; }) => any
```

| Param         | Type                            |
| ------------- | ------------------------------- |
| **`options`** | <code>{ value: string; }</code> |

**Returns:** <code>any</code>

--------------------


### navigateTo(...)

```typescript
navigateTo(options: NavigateToOption) => any
```

导航打开新页

| Param         | Type                                                          | Description |
| ------------- | ------------------------------------------------------------- | ----------- |
| **`options`** | <code><a href="#navigatetooption">NavigateToOption</a></code> | 导航参数        |

**Returns:** <code>any</code>

--------------------


### navigateBack(...)

```typescript
navigateBack(options: { depth: 1; }) => any
```

返回上一页

| Param         | Type                       | Description    |
| ------------- | -------------------------- | -------------- |
| **`options`** | <code>{ depth: 1; }</code> | 返回push栈的页数 默认1 |

**Returns:** <code>any</code>

--------------------


### closeWebview()

```typescript
closeWebview() => any
```

关闭当前HybridWeb

**Returns:** <code>any</code>

--------------------


### Interfaces


#### NavigateToOption

| Prop            | Type                                            | Description |
| --------------- | ----------------------------------------------- | ----------- |
| **`url`**       | <code>string</code>                             | 要跳转的URL     |
| **`title`**     | <code>string</code>                             | 标题          |
| **`showNav`**   | <code>boolean</code>                            | 导航栏展示       |
| **`height`**    | <code>number</code>                             | 弹出页面的高度     |
| **`style`**     | <code><a href="#jumpstyle">JumpStyle</a></code> | 页面跳转风格      |
| **`themColor`** | <code>string</code>                             |             |


### Enums


#### JumpStyle

| Members       | Value                  |
| ------------- | ---------------------- |
| **`push`**    | <code>'push'</code>    |
| **`present`** | <code>'present'</code> |

</docgen-api>
npm package: @minidesign/marquee
Description: ## Install
Author: skylor
Latest version: 0.0.9

# @minidesign/marquee

## Install

> - 从小程序基础库版本 2.2.1 或以上、及开发者工具 1.02.1808300 或以上开始，小程序支持使用 [npm](https://developers.weixin.qq.com/miniprogram/dev/devtools/npm.html) 安装第三方包
> - 如果你的不支持，那么可以先下载下来，在手动拷贝到你的`components/marquee`文件夹下，在使用的细节上调整一下就行了。

1. `npm install --save @minidesign/marquee`
2. 【微信开发者工具】->【工具】-> 【构建 npm】
3. ok. （别忘记执行【构建 npm】步骤）

## Usage

### [page].json

```json
{
  "usingComponents": {
    "marquee": "@minidesign/marquee"
  }
}
```

### [page].wxml

```html
<marquee
  text="Minidesign is best Mini program UI. Minidesign is best Mini program UI."
></marquee>
```

## options

| Name        | Type    | Default                               | Description                                                                      |
| ----------- | ------- | ------------------------------------- | -------------------------------------------------------------------------------- |
| text        | String  | `Minidesign is best Mini program UI.` | 需要滚动的字幕                                                                   |
| gap         | String  | `''`                                  | 滚动时字幕间的间隔，带单位，单位可选：`px | rpx | %`，默认值为屏幕宽度的三分之一 |
| delay       | Number  | `1000`                                | 首次执行延迟，`ms`                                                               |
| orientation | String  | `'left'`                              | 滚动方向： `left | right`                                                        |
| fixed       | Boolean | `false`                               | 是否固定在顶部                                                                   |
| speed       | Number  | `1`                                   | 滚动的速度，单位`px`                                                             |
| frequency   | Number  | `20`                                  | 更新频率，单位`ms`                                                               |
npm package: @minidesign/modal
Description: ## Install
Author: skylor
Latest version: 0.0.9

# @minidesign/modal

## Install

> - 从小程序基础库版本 2.2.1 或以上、及开发者工具 1.02.1808300 或以上开始，小程序支持使用 [npm](https://developers.weixin.qq.com/miniprogram/dev/devtools/npm.html) 安装第三方包
> - 如果你的不支持，那么可以先下载下来，在手动拷贝到你的`components/modal`文件夹下，在使用的细节上调整一下就行了。

1. `npm install --save @minidesign/modal`
2. 【微信开发者工具】->【工具】-> 【构建 npm】
3. ok. （别忘记执行【构建 npm】步骤）

## Usage

### [page].json

```json
{
  "usingComponents": {
    "modal": "@minidesign/modal"
  }
}
```

### [page].wxml

```html
<modal visible="{{isShowModal}}">
  <view>blabla..., whatever you want to put into.</view>
</modal>
```

## options

| Name    | Type    | Default | Description  |
| ------- | ------- | ------- | ------------ |
| visible | Boolean | `false` | 控制显示弹窗 |
npm package: @minidesign/popmenu
Description: ![](./example.gif)
Author: skylor
Latest version: 0.0.9

# @minidesign/popmenu

![](./example.gif)

## Install

> - 从小程序基础库版本 2.2.1 或以上、及开发者工具 1.02.1808300 或以上开始，小程序支持使用 [npm](https://developers.weixin.qq.com/miniprogram/dev/devtools/npm.html) 安装第三方包
> - 如果你的不支持，那么可以先下载下来，在手动拷贝到你的`components/popmenu`文件夹下，在使用的细节上调整一下就行了。

1. `npm install --save @minidesign/popmenu`
2. 【微信开发者工具】->【工具】-> 【构建 npm】
3. ok. （别忘记执行【构建 npm】步骤）

## Usage

### [page].json

```json
{
  "usingComponents": {
    "popmenu": "@minidesign/popmenu"
  }
}
```

### [page].wxml

```html
<view class="item right">
  <popmenu
    menus="{{['喜欢', '评论']}}"
    bindselect="onSelect"
    default-width="{{113}}"
    payload="{{ {hello: true} }}"
  >
    <image class="image" src="./three-point.png"></image>
  </popmenu>
</view>
<view class="item left">
  <popmenu
    menus="{{['喜欢', '评论']}}"
    direction="right"
    default-width="{{113}}"
    bindselect="onSelect"
    payload="{{ {hello: true} }}"
  >
    <image class="image" src="./three-point.png"></image>
  </popmenu>
</view>
```

### [page].js

```javascript
Page({
  onSelect(e) {
    const { index, menu, payload } = e.detail;
    wx.showModal({
      title: `选择了第${index + 1}个菜单: ${menu}`,
      content: JSON.stringify(payload, null, 2)
    });
  }
});
```

## options

| Name            | Type           | Default | Description                                                          |
| --------------- | -------------- | ------- | -------------------------------------------------------------------- |
| menus           | String[]       | `[]`    | 菜单列表                                                             |
| direction       | String         | `left`  | 按钮方向，`left | right`                                             |
| bindselect      | Function       | null    | 选择菜单监听函数，`detail: { index, menu, payload }`                 |
| visible         | Boolean        | `false` | 手动控制是否显示                                                     |
| payload         | Object         | `{}`    | 荷载                                                                 |
| default-width   | Number         | `null`  | 设置菜单宽度，显示第一次点击时候的动画，不设置则从第二次开始拥有动画 |
| container-class | CSS Class Name | `''`    | 容器样式                                                             |
npm package: @minidesign/scroll-view
Description: 小程序自定义组件脚手架
Author: skylor
Latest version: 0.0.9

# miniprogram-custom-component

小程序自定义组件脚手架

## 使用

* 使用[命令行工具](https://github.com/wechat-miniprogram/miniprogram-cli)进行初始化
* 直接从 github 上 clone 下来

## 开发

1. 安装依赖：

```
npm install
```

2. 执行命令：

```
npm run dev
```

默认会在包根目录下生成 miniprogram\_dev 目录，src 中的源代码会被构建并生成到 miniprogram\_dev/components 目录下。如果需要监听文件变化动态构建，则可以执行命令：

```
npm run watch
```

> ps: 如果 minirpogram\_dev 目录下已存在小程序 demo，执行`npm run dev`则不会再将 tools 下的 demo 拷贝到此目录下。而执行`npm run watch`则会监听 tools 目录下的 demo 变动并进行拷贝。

3. 生成的 miniprogram\_dev 目录是一个小程序项目目录，以此目录作为小程序项目目录在开发者工具中打开即可查看自定义组件被使用的效果。

4. 进阶：

* 如果有额外的构建需求，可自行修改 tools 目录中的构建脚本。
* 内置支持 less、sourcemap 等功能，默认关闭。如若需要可以自行修改 tools/config.js 配置文件中相关配置。
* 内置支持多入口构建，如若需要可自行调整 tools/config.js 配置文件的 entry 字段。
* 默认开启 eslint，可自行调整规则或在 tools/config.js 中注释掉 eslint-loader 行来关闭此功能。

## 发布

> ps: 发布前得确保已经执行构建，小程序 npm 包只有构建出来的目录是真正被使用到的。

1. 如果还没有 npm 帐号，可以到[ npm 官网](https://www.npmjs.com/)注册一个 npm 帐号。
2. 在本地登录 npm 帐号，在本地执行：

```
npm adduser
```

或者

```
npm login
```

3. 在已完成编写的 npm 包根目录下执行：

```
npm publish
```

到此，npm 包就成功发布到 npm 平台了。

> PS：一些开发者在开发过程中可能修改过 npm 的源，所以当进行登录或发布时需要注意要将源切回 npm 的源。

## 目录结构

以下为推荐使用的目录结构，如果有必要开发者也可以自行做一些调整:

```
|--miniprogram_dev // 开发环境构建目录
|--miniprogram_dist // 生产环境构建目录
|--src // 源码
|   |--common // 通用 js 模块
|   |--components // 通用自定义组件
|   |--images // 图片资源
|   |--wxml // 通用 wxml 模版资源
|   |--wxs // 通用 wxs 资源
|   |--wxss // 通用 wxss 资源
|   |
|   |--xxx.js/xxx.wxml/xxx.json/xxx.wxss // 暴露的 js 模块/自定义组件入口文件
|
|--test // 测试用例
|--tools // 构建相关代码
|   |--demo // demo 小程序目录，开发环境下会被拷贝生成到 miniprogram_dev 目录中
|   |--test // 测试工具相关目录
|   |--config.js // 构建相关配置文件
|
|--gulpfile.js
```

> PS：对外暴露的 js 模块/自定义组件请放在 src 目录下，不宜放置在过深的目录。另外新增的暴露模块需要在 tools/config.js 的 entry 字段中补充，不然不会进行构建。

## 测试

* 执行测试用例：

```
npm run test
```

* 检测覆盖率：

```
npm run coverage
```

测试用例放在 test 目录下，其中 test/utils 是已封装好可在测试用例中使用的工具包，具体使用文档请[点击此处查看](./docs/test.md)。在测试中可能需要用到官方提供的一些接口（如`wx.getSystemInfo`），可在 test/utils 下自行模拟实现（里面已内置部分模拟接口）。

> 目前测试框架仍有部分自定义组件的功能不支持（可参考测试工具包使用文档中的 TODO 列表），后续会逐步进行支持。

## 其他命令

* 清空 miniprogram_dist 目录：

```
npm run clean
```

* 清空 miniprogam_dev 目录：

```
npm run clean-dev
```
npm package: @minieditor/react-hot-toast
Description: Smoking hot React Notifications. Lightweight, customizable and beautiful by default.
Author: Timo Lins
Latest version: 2.4.2

<a href="https://react-hot-toast.com/"><img alt="react-hot-toast - Try it out" src="https://github.com/timolins/react-hot-toast/raw/main/assets/header.svg"/></a>

<div align="center">
    <img src="https://badgen.net/npm/v/react-hot-toast" alt="NPM Version" />
  <img src="https://badgen.net/bundlephobia/minzip/react-hot-toast" alt="minzipped size"/>
    <img src="https://github.com/timolins/react-hot-toast/workflows/CI/badge.svg" alt="Build Status" />
</a>
</div>
<br />
<div align="center"><strong>Smoking hot  Notifications for React.</strong></div>
<div align="center"> Lightweight, customizable and beautiful by default.</div>
<br />
<div align="center">
<a href="https://react-hot-toast.com/">Website</a> 
<span> · </span>
<a href="https://react-hot-toast.com/docs">Documentation</a> 
<span> · </span>
<a href="https://twitter.com/timolins">Twitter</a>
</div>

<br />
<div align="center">
  <sub>Cooked by <a href="https://twitter.com/timolins">Timo Lins</a> 👨‍🍳</sub>
</div>

<br />

## Features

- 🔥 **Hot by default**
- 🔩 **Easily Customizable**
- ⏳ **Promise API** - _Automatic loader from a promise_
- 🕊 **Lightweight** - _less than 5kb including styles_
- ✅ **Accessible**
- 🤯 **Headless Hooks** - _Create your own with [`useToaster()`](https://react-hot-toast.com/docs/use-toaster)_

## Installation

#### With yarn

```sh
yarn add react-hot-toast
```

#### With NPM

```sh
npm install react-hot-toast
```

## Getting Started

Add the Toaster to your app first. It will take care of rendering all notifications emitted. Now you can trigger `toast()` from anywhere!

```jsx
import toast, { Toaster } from 'react-hot-toast';

const notify = () => toast('Here is your toast.');

const App = () => {
  return (
    <div>
      <button onClick={notify}>Make me a toast</button>
      <Toaster />
    </div>
  );
};
```

## Documentation

Find the full API reference on [official documentation](https://react-hot-toast.com/docs).
npm package: @miniefull/fitscreenjs
Description: 一个用于大屏等比缩放和全屏自适应的JavaScript库
Latest version: 1.0.1

# FitScreenJS

对于不同尺寸的大屏，添加等比缩放和占满全屏的功能。比如 2K 尺寸的可视化大屏，在预览打开的时候可以选择等比缩放在 1K 大屏中显示，或者占满全屏。

## 功能特点

- **等比缩放模式**：保持原始宽高比，确保内容完整显示
- **全屏填充模式**：内容填满整个屏幕，可能会裁切部分内容
- **自动检测**：可自动检测设计尺寸和屏幕尺寸
- **灵活配置**：支持多种配置方式，包括具体像素尺寸和宽高比
- **响应式**：自动响应窗口大小变化
- **事件回调**：支持尺寸变化和模式切换的回调函数

## 安装

```bash
npm install @miniefull/fitscreenjs
```

## 基本使用

### 简单示例

```javascript
// 引入库
import FitScreenJS from '@miniefull/fitscreenjs'

// 创建实例
const screenFitter = new FitScreenJS()

// 应用到容器元素
screenFitter.applyTo('#dashboard-container')
```

### 设置选项

```javascript
const screenFitter = new FitScreenJS({
  // 设计尺寸（可选）
  designWidth: 2560,
  designHeight: 1440,

  // 也可以使用宽高比代替具体尺寸
  // aspectRatio: '16:9',

  // 显示模式：'proportional'(等比缩放) 或 'fullscreen'(占满全屏)
  mode: 'proportional',

  // 填充背景色
  backgroundColor: '#000',

  // 是否自动检测尺寸
  autoDetect: true,

  // 是否缩放内容
  scaleContent: true,

  // 是否居中内容
  centerContent: true,

  // 事件回调
  onResize: (width, height, scale) => {
    console.log(`容器尺寸: ${width}x${height}, 缩放比例: ${scale}`)
  },
  onModeChange: (mode) => {
    console.log(`模式已变更为: ${mode}`)
  },
})
```

### 切换模式

```javascript
// 切换到等比缩放模式
screenFitter.setMode('proportional')

// 切换到全屏填充模式
screenFitter.setMode('fullscreen')

// 获取当前模式
const currentMode = screenFitter.getMode()
```

### 其他操作

```javascript
// 获取当前缩放比例
const scale = screenFitter.getScale()

// 设置设计尺寸
screenFitter.setDesignSize(1920, 1080)

// 手动刷新缩放（通常在内容变化后调用）
screenFitter.refresh()

// 销毁实例（清理事件监听）
screenFitter.destroy()
```

## 在 Vue 中使用

```javascript
// Vue组件
export default {
  mounted() {
    this.fitter = new FitScreenJS({
      aspectRatio: '16:9',
      mode: 'proportional',
    })
    this.fitter.applyTo(this.$refs.dashboard)
  },
  methods: {
    toggleMode() {
      const newMode = this.fitter.getMode() === 'proportional' ? 'fullscreen' : 'proportional'
      this.fitter.setMode(newMode)
    },
  },
  beforeDestroy() {
    // 清理
    this.fitter.destroy()
  },
}
```

## 在 React 中使用

```javascript
import React, { useEffect, useRef } from 'react'
import FitScreenJS from '@miniefull/fitscreenjs'

function Dashboard() {
  const containerRef = useRef(null)
  const fitterRef = useRef(null)

  useEffect(() => {
    // 初始化
    fitterRef.current = new FitScreenJS({
      aspectRatio: '16:9',
    })

    // 应用到容器
    fitterRef.current.applyTo(containerRef.current)

    // 清理函数
    return () => fitterRef.current.destroy()
  }, [])

  return (
    <div>
      <div className='dashboard-container' ref={containerRef}>
        {/* 大屏内容 */}
      </div>
      <div className='controls'>
        <button onClick={() => fitterRef.current.setMode('proportional')}>等比缩放</button>
        <button onClick={() => fitterRef.current.setMode('fullscreen')}>占满全屏</button>
      </div>
    </div>
  )
}
```

## 开发

### 安装依赖

```bash
npm install
```

### 构建库

```bash
npm run build
```

### 开发模式

```bash
npm run dev
```

### 运行测试

```bash
# 运行单元测试
npm test

# 实时测试模式
npm run test:watch

# 测试覆盖率报告
npm run test:coverage
```

## 测试覆盖率

当前测试覆盖率:

- 语句覆盖率: 93.3%
- 分支覆盖率: 93.81%
- 函数覆盖率: 96.55%
- 行覆盖率: 93.3%

## 许可证

MIT
npm package: @minieggs40/http-create-server
Description: A simple, functional wrapper over http.createServer.
Author: Evan M Jones
Latest version: 1.0.4

# @minieggs40/http-create-server

A simple, functional wrapper over NodeJS builtin, `http.createServer`.

#### Why

I've made this 20 times at least for putting together quick hacky projects. Might as well reduce my time remaking this by publishing to NPM.

#### Install

`$ npm i -S @minieggs40/http-create-server`

#### Usage

```javascript
import { createServer } from "@minieggs40/http-create-server";

const routes = [
  {
    test: /test/,
    method: "POST",
    handle: (req, res) => {
      res.json({ msg: `Post body received: ${JSON.stringify(req.body)}` });
    }
  }
];

const port = process.env.PORT || 8080;

const defaultHandle = (req, res) => {
  res.end("Error.");
};

const onListen = () => {
  console.log(`Server has been started on port ${port}.`);
};

const start = createServer({ routes, port, defaultHandle, onListen });
start();
```

Or even more simply.

```javascript
import { createServer } from "@minieggs40/http-create-server";

const routes = [
  {
    test: /test/,
    method: "POST",
    handle: (req, res) => {
      res.json({ msg: `Post body received: ${JSON.stringify(req.body)}` });
    }
  }
];

const start = createServer({ routes });
start();
```
npm package: @miniest/mini-common
Description: Common tools for miniest people.
Author: Miniest people
Latest version: 0.0.15

# mini-common-js

Common tools for miniest people.

## Server

If you want to use Server module you must manually include `express` into your dependencies. It is intentionally not listed in `peerDependencies` because not every user of `mini-common` is interested in the Server module.

## MiniError

Error class with specified http status code. By default returns 500. For other types of error see the classes extended from MiniError.

## AuthorizationError

Error extended from MiniError, should be used with unauthorized access/unauthenticated user cases. Its http status code is 401.

## ForbiddenError

Error extended from MiniError, should be used in case of missing permissions. Its http status code is 403.


# Development

## Commit message

We follow conventional changelog patter for commit messages.

See [https://github.com/conventional-changelog/conventional-changelog/tree/master/packages/conventional-changelog-angular].

We preffer these prefixes:
* feat: new feature added (will be seen in changelog)
* fix: fix of existing code (will be seen in changelog)
* perf: changed performance of some code (will be seen in changelog)
* build: build system and ci related stuff (not seen in changelog)
* docs: documentation related stuff (not seen in changelog)
* test: tests related stuff (not seen in changelog)

If you cannot determine correct prefix for your change simple do commit without a prefix. Try to use feat/fix/perf prefixes
for any user related stuff to let enduser know about the change.
npm package: @miniest/mini-config
Description: Configuration management for mini people.
Author: Miniest People
Latest version: 2.0.1

[![coverage report](https://gitlab.com/miniest/mini-config-js/badges/master/coverage.svg)](https://gitlab.com/miniest/mini-config-js/commits/master)
[![pipeline status](https://gitlab.com/miniest/mini-config-js/badges/master/pipeline.svg)](https://gitlab.com/miniest/mini-config-js/commits/master)

# mini-config-js

Configuration management lib for mini people.
npm package: @minifishjs/lowcode-material-parser
Description: material parser for Ali lowCode engine
Latest version: 0.16.0

# @ali/lowcode-material-parser

> 入料模块

本模块负责物料接入，能自动扫描、解析源码组件，并最终产出一份符合《中后台搭建组件描述协议》的 **JSON Schema**。

详见[文档](https://yuque.antfin-inc.com/ali-lowcode/docs/tyktrt)。

## demo

```shell
cd demo
node index.js
```

## API