koa-ts-core 0.0.30 → 0.0.32
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +254 -154
- package/dist/index.cjs.js +1 -1
- package/dist/index.esm.js +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,106 +1,173 @@
|
|
|
1
|
-
#
|
|
1
|
+
# koa-ts-core
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
基于 **TypeScript + Koa** 的轻量服务端核心库,提供:
|
|
4
|
+
|
|
5
|
+
- 约定式路由(装饰器)
|
|
6
|
+
- 权限与参数校验约定
|
|
7
|
+
- 全局错误处理与统一响应体
|
|
8
|
+
- 环境变量加载
|
|
9
|
+
- 日志(log4js)集成
|
|
10
|
+
- 接口文档生成基础能力(配合 `koa-ts-cli` 使用)
|
|
11
|
+
|
|
12
|
+
> 推荐配合脚手架工具 [koa-ts-cli](https://www.npmjs.com/package/koa-typescript-cli) 使用。
|
|
13
|
+
|
|
14
|
+
---
|
|
4
15
|
|
|
5
16
|
## 安装
|
|
6
17
|
|
|
7
|
-
```
|
|
18
|
+
```bash
|
|
8
19
|
npm i koa-ts-core
|
|
20
|
+
# 或
|
|
21
|
+
yarn add koa-ts-core
|
|
9
22
|
```
|
|
10
23
|
|
|
11
|
-
|
|
24
|
+
---
|
|
12
25
|
|
|
13
|
-
|
|
14
|
-
import { initializeKoaApp } from "koa-ts-core";
|
|
26
|
+
## 快速开始
|
|
15
27
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
return Promise.resolve(true);
|
|
20
|
-
},
|
|
21
|
-
// 高优先级中间件注册
|
|
22
|
-
registerHighPriorityMiddleware: (app: Koa) => void,
|
|
23
|
-
// 异常处理
|
|
24
|
-
catchErrorCallback: (error: Error) => void,
|
|
25
|
-
// hook
|
|
26
|
-
registerHook: (
|
|
27
|
-
ctx: Koa.Context,
|
|
28
|
-
type: "request" | "response" | "error"
|
|
29
|
-
) => void;
|
|
30
|
-
// 是否挂载log4到context
|
|
31
|
-
log4: TLog4;
|
|
32
|
-
// 是否挂载运行时日志
|
|
33
|
-
runtimeLog: boolean;
|
|
34
|
-
});
|
|
28
|
+
### 初始化应用
|
|
29
|
+
|
|
30
|
+
在项目入口文件(如 `src/main.ts`)中:
|
|
35
31
|
|
|
36
|
-
|
|
32
|
+
```ts
|
|
33
|
+
import Koa from "koa";
|
|
34
|
+
import cors from "koa2-cors";
|
|
35
|
+
import { initializeKoaApp, TLog4 } from "koa-ts-core";
|
|
36
|
+
|
|
37
|
+
async function bootstrap() {
|
|
38
|
+
const [app] = await initializeKoaApp({
|
|
39
|
+
// 鉴权逻辑(配合 @AuthRouter 使用)
|
|
40
|
+
authCheckCallback: async (ctx) => {
|
|
41
|
+
// TODO: 你的权限判断
|
|
42
|
+
return true;
|
|
43
|
+
},
|
|
44
|
+
|
|
45
|
+
// CORS 中间件
|
|
46
|
+
corsMiddleware: cors(),
|
|
47
|
+
|
|
48
|
+
// 高优先级中间件(在内置中间件之前执行)
|
|
49
|
+
registerHighPriorityMiddleware: (app: Koa) => {
|
|
50
|
+
// app.use(yourMiddleware);
|
|
51
|
+
},
|
|
52
|
+
|
|
53
|
+
// 全局错误回调
|
|
54
|
+
catchErrorCallback: (error, ctx) => {
|
|
55
|
+
console.error("Global error:", error);
|
|
56
|
+
},
|
|
57
|
+
|
|
58
|
+
// 请求生命周期 hook:request / response / error
|
|
59
|
+
registerHook: (ctx, type) => {
|
|
60
|
+
// your tracing / metrics logic
|
|
61
|
+
},
|
|
62
|
+
|
|
63
|
+
// 日志:true 为默认配置,函数为自定义配置
|
|
64
|
+
log4: true as TLog4,
|
|
65
|
+
|
|
66
|
+
// 是否开启运行时日志
|
|
67
|
+
runtimeLog: true,
|
|
68
|
+
});
|
|
69
|
+
|
|
70
|
+
app.listen(process.env.APP_PORT ?? 3000, () => {
|
|
71
|
+
console.log(
|
|
72
|
+
`Server running at http://localhost:${process.env.APP_PORT ?? 3000}`
|
|
73
|
+
);
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
bootstrap();
|
|
37
78
|
```
|
|
38
79
|
|
|
39
|
-
|
|
80
|
+
---
|
|
40
81
|
|
|
41
|
-
|
|
82
|
+
## 初始化配置说明
|
|
42
83
|
|
|
43
|
-
|
|
84
|
+
`initializeKoaApp(options?: TInitOptions)` 支持以下字段:
|
|
44
85
|
|
|
45
|
-
|
|
86
|
+
- **koaInstance?: Koa**
|
|
87
|
+
自定义 Koa 实例,不传则自动创建。
|
|
46
88
|
|
|
47
|
-
|
|
89
|
+
- **corsMiddleware?: Koa.Middleware**
|
|
90
|
+
CORS 中间件。
|
|
48
91
|
|
|
49
|
-
|
|
92
|
+
- **authCheckCallback?: (ctx: Koa.Context) => boolean | Promise<boolean>**
|
|
93
|
+
鉴权回调,配合 `@AuthRouter` 使用。
|
|
50
94
|
|
|
51
|
-
|
|
95
|
+
- **catchErrorCallback?: (error: Error, ctx?: Koa.Context) => void**
|
|
96
|
+
全局错误回调,用于统一处理未捕获错误。
|
|
52
97
|
|
|
53
|
-
|
|
98
|
+
- **registerHighPriorityMiddleware?: (app: Koa) => void**
|
|
99
|
+
高优先级中间件注册函数,在框架内置中间件之前执行。
|
|
54
100
|
|
|
55
|
-
|
|
101
|
+
- **registerHook?: (ctx: Koa.Context, type: "request" | "response" | "error") => void**
|
|
102
|
+
请求生命周期 hook。
|
|
56
103
|
|
|
57
|
-
|
|
104
|
+
- **log4?: TLog4**
|
|
105
|
+
是否挂载 log4js 及配置方式:
|
|
58
106
|
|
|
59
|
-
|
|
107
|
+
- `false` / 不传:不启用 log4
|
|
108
|
+
- `true`:使用默认 log4js 配置
|
|
109
|
+
- `(instance: Log4js) => Log4js`:自定义配置
|
|
60
110
|
|
|
61
|
-
|
|
111
|
+
- **runtimeLog?: boolean**
|
|
112
|
+
是否挂载运行时日志能力到 `ctx.runtimeLog`。
|
|
62
113
|
|
|
63
|
-
|
|
114
|
+
---
|
|
64
115
|
|
|
65
|
-
|
|
116
|
+
## 中间件链路
|
|
66
117
|
|
|
67
|
-
|
|
118
|
+
内置中间件按以下顺序执行:
|
|
68
119
|
|
|
69
|
-
|
|
120
|
+
1. AsyncLocalStorage 上下文中间件
|
|
121
|
+
2. 全局错误处理
|
|
122
|
+
3. 请求日志 / 响应时间统计
|
|
123
|
+
4. CORS / 安全相关中间件
|
|
124
|
+
5. Body 解析
|
|
125
|
+
6. 鉴权(`authCheckCallback` + `@AuthRouter`)
|
|
126
|
+
7. 约定式路由分发
|
|
70
127
|
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
128
|
+
---
|
|
129
|
+
|
|
130
|
+
## 约定式路由
|
|
131
|
+
|
|
132
|
+
### 目录约定
|
|
133
|
+
|
|
134
|
+
控制器统一放在 `src/controller` 目录下,例如:
|
|
135
|
+
|
|
136
|
+
```text
|
|
137
|
+
src
|
|
138
|
+
└── controller
|
|
139
|
+
└── api
|
|
140
|
+
└── v1
|
|
141
|
+
└── user.ts
|
|
76
142
|
```
|
|
77
143
|
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
144
|
+
### 基础用法:@Router 与 @AuthRouter
|
|
145
|
+
|
|
146
|
+
```ts
|
|
147
|
+
// src/controller/api/v1/user.ts
|
|
81
148
|
import { Context } from "koa";
|
|
149
|
+
import { Router, AuthRouter } from "koa-ts-core";
|
|
82
150
|
|
|
83
151
|
class User {
|
|
84
|
-
|
|
85
152
|
@Router("get", "/index/:userId")
|
|
86
153
|
async userInfo(ctx: Context) {
|
|
87
154
|
ctx.body = {
|
|
88
155
|
success: true,
|
|
156
|
+
userId: ctx.params.userId,
|
|
89
157
|
};
|
|
90
158
|
}
|
|
91
159
|
|
|
92
|
-
//
|
|
160
|
+
// 支持可选路由参数
|
|
93
161
|
@Router("get", "/user_list{/:user_name}")
|
|
94
162
|
async userList(ctx: Context) {
|
|
95
|
-
const userName = ctx.params.user_name;
|
|
96
163
|
ctx.body = {
|
|
97
164
|
success: true,
|
|
98
|
-
userName
|
|
165
|
+
userName: ctx.params.user_name,
|
|
99
166
|
};
|
|
100
167
|
}
|
|
101
168
|
|
|
102
|
-
|
|
103
|
-
|
|
169
|
+
// 需要鉴权的路由
|
|
170
|
+
@AuthRouter("post", "/set_user_info")
|
|
104
171
|
async setUserInfo(ctx: Context) {
|
|
105
172
|
ctx.body = {
|
|
106
173
|
success: true,
|
|
@@ -111,78 +178,77 @@ class User {
|
|
|
111
178
|
export default User;
|
|
112
179
|
```
|
|
113
180
|
|
|
114
|
-
|
|
181
|
+
### REST 风格简写
|
|
115
182
|
|
|
116
|
-
|
|
183
|
+
在不指定 method/path 时,`@Router` 会根据方法名进行推断:
|
|
184
|
+
|
|
185
|
+
```ts
|
|
117
186
|
import Koa from "koa";
|
|
118
187
|
import { Router, successRsp } from "koa-ts-core";
|
|
119
188
|
|
|
120
189
|
class Test {
|
|
121
190
|
@Router()
|
|
122
191
|
async get_(ctx: Koa.Context) {
|
|
123
|
-
successRsp({
|
|
124
|
-
data: "get request",
|
|
125
|
-
});
|
|
192
|
+
successRsp({ data: "get request" });
|
|
126
193
|
}
|
|
127
194
|
|
|
128
195
|
@Router()
|
|
129
196
|
async post(ctx: Koa.Context) {
|
|
130
|
-
successRsp({
|
|
131
|
-
data: "post request",
|
|
132
|
-
});
|
|
197
|
+
successRsp({ data: "post request" });
|
|
133
198
|
}
|
|
134
199
|
|
|
135
200
|
@Router()
|
|
136
201
|
async put(ctx: Koa.Context) {
|
|
137
|
-
successRsp({
|
|
138
|
-
data: "put request",
|
|
139
|
-
});
|
|
202
|
+
successRsp({ data: "put request" });
|
|
140
203
|
}
|
|
141
204
|
|
|
142
205
|
@Router()
|
|
143
206
|
async delete(ctx: Koa.Context) {
|
|
144
|
-
successRsp({
|
|
145
|
-
data: "delete request",
|
|
146
|
-
});
|
|
207
|
+
successRsp({ data: "delete request" });
|
|
147
208
|
}
|
|
148
209
|
|
|
149
210
|
@Router()
|
|
150
211
|
async patch(ctx: Koa.Context) {
|
|
151
|
-
successRsp({
|
|
152
|
-
data: "patch request",
|
|
153
|
-
});
|
|
212
|
+
successRsp({ data: "patch request" });
|
|
154
213
|
}
|
|
155
214
|
|
|
156
215
|
@Router()
|
|
157
216
|
async options(ctx: Koa.Context) {
|
|
158
|
-
successRsp({
|
|
159
|
-
data: "options request",
|
|
160
|
-
});
|
|
217
|
+
successRsp({ data: "options request" });
|
|
161
218
|
}
|
|
162
219
|
}
|
|
163
220
|
|
|
164
221
|
export default Test;
|
|
165
222
|
```
|
|
166
223
|
|
|
167
|
-
|
|
224
|
+
> 实现基于 [`@koa/router`](https://www.npmjs.com/package/@koa/router),路由参数格式参考 [`path-to-regexp`](https://github.com/pillarjs/path-to-regexp)。
|
|
168
225
|
|
|
169
|
-
|
|
226
|
+
---
|
|
170
227
|
|
|
171
|
-
|
|
228
|
+
## 参数与权限校验约定
|
|
172
229
|
|
|
173
|
-
###
|
|
230
|
+
### 目录结构
|
|
174
231
|
|
|
175
|
-
|
|
232
|
+
每个控制器方法对应一个校验器静态方法,目录约定如下:
|
|
176
233
|
|
|
177
|
-
```
|
|
178
|
-
|
|
234
|
+
```text
|
|
235
|
+
src
|
|
236
|
+
├── controller
|
|
237
|
+
│ └── api/v1/user.ts # 控制器
|
|
238
|
+
└── validate
|
|
239
|
+
└── api/v1/user.ts # 参数校验器
|
|
240
|
+
```
|
|
241
|
+
|
|
242
|
+
控制器中有方法 `userInfo` 时,对应的校验器为:
|
|
179
243
|
|
|
180
|
-
|
|
244
|
+
```ts
|
|
245
|
+
// src/validate/api/v1/user.ts
|
|
246
|
+
import { Context } from "koa";
|
|
181
247
|
|
|
182
248
|
class UserValidate {
|
|
183
249
|
static userInfo(ctx: Context) {
|
|
184
250
|
if (!ctx.query.id) {
|
|
185
|
-
throw new Error(
|
|
251
|
+
throw new Error("id is required");
|
|
186
252
|
}
|
|
187
253
|
}
|
|
188
254
|
}
|
|
@@ -190,36 +256,49 @@ class UserValidate {
|
|
|
190
256
|
export default UserValidate;
|
|
191
257
|
```
|
|
192
258
|
|
|
193
|
-
|
|
259
|
+
当路由命中 `userInfo` 时,会自动调用 `UserValidate.userInfo`,抛出的异常会进入统一错误处理。
|
|
260
|
+
|
|
261
|
+
---
|
|
262
|
+
|
|
263
|
+
## 统一响应工具
|
|
194
264
|
|
|
195
|
-
|
|
265
|
+
无需频繁访问 `ctx`,可使用以下工具构造统一格式响应:
|
|
266
|
+
|
|
267
|
+
```ts
|
|
196
268
|
/**
|
|
197
|
-
*
|
|
198
|
-
* @param options - 成功响应的选项,如数据和消息
|
|
269
|
+
* 成功响应(HTTP 状态码 200)
|
|
199
270
|
*/
|
|
200
|
-
|
|
271
|
+
successRsp({ data, message });
|
|
272
|
+
|
|
201
273
|
/**
|
|
202
|
-
*
|
|
203
|
-
* @param options - 包含可能的错误码、消息和数据
|
|
274
|
+
* 业务失败响应(HTTP 状态码仍为 200,但业务 code 非 0)
|
|
204
275
|
*/
|
|
205
|
-
|
|
276
|
+
unSuccessRsp({ code, message, data });
|
|
277
|
+
|
|
206
278
|
/**
|
|
207
|
-
*
|
|
208
|
-
* @param statusCode - 要返回的 HTTP 状态码
|
|
209
|
-
* @param options - 包含可能的错误信息、数据等
|
|
279
|
+
* 异常响应(HTTP 状态码非 200)
|
|
210
280
|
*/
|
|
281
|
+
errorRsp(400, { message: "Bad Request" });
|
|
282
|
+
```
|
|
283
|
+
|
|
284
|
+
类型签名(简化):
|
|
285
|
+
|
|
286
|
+
```ts
|
|
287
|
+
export declare const successRsp: (options?: Options) => void;
|
|
288
|
+
export declare const unSuccessRsp: (options?: Options) => void;
|
|
211
289
|
export declare const errorRsp: (statusCode: number, options?: Options) => void;
|
|
212
290
|
```
|
|
213
291
|
|
|
214
|
-
|
|
292
|
+
---
|
|
293
|
+
|
|
294
|
+
## 异常处理
|
|
215
295
|
|
|
216
|
-
|
|
296
|
+
提供基础异常类 `BaseException`,可扩展自定义业务异常:
|
|
297
|
+
|
|
298
|
+
```ts
|
|
217
299
|
import { BaseException } from "koa-ts-core";
|
|
218
|
-
|
|
219
|
-
* 自定义异常
|
|
220
|
-
*/
|
|
300
|
+
|
|
221
301
|
export class CustomException extends BaseException {
|
|
222
|
-
// 自定义异常码
|
|
223
302
|
code = 1000;
|
|
224
303
|
|
|
225
304
|
constructor(message: string) {
|
|
@@ -227,75 +306,61 @@ export class CustomException extends BaseException {
|
|
|
227
306
|
}
|
|
228
307
|
}
|
|
229
308
|
|
|
309
|
+
// 使用
|
|
230
310
|
throw new CustomException("自定义异常");
|
|
231
311
|
```
|
|
232
312
|
|
|
233
|
-
|
|
313
|
+
所有异常会被内置错误处理中间件捕获,并结合 `catchErrorCallback` 输出日志或自定义处理。
|
|
234
314
|
|
|
235
|
-
|
|
315
|
+
---
|
|
236
316
|
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
317
|
+
## 环境变量加载
|
|
318
|
+
|
|
319
|
+
约定使用 [dotenv](https://www.npmjs.com/package/dotenv) 自动加载 `env` 目录:
|
|
320
|
+
|
|
321
|
+
```text
|
|
322
|
+
env
|
|
323
|
+
├── .common.env # 所有环境公用
|
|
324
|
+
├── .development.env # 开发环境
|
|
325
|
+
├── .production.env # 生产环境
|
|
326
|
+
└── .test.env # 测试环境
|
|
243
327
|
```
|
|
244
328
|
|
|
245
|
-
|
|
329
|
+
根据 `NODE_ENV` 加载对应文件,并合并 `.common.env`。
|
|
246
330
|
|
|
247
|
-
|
|
331
|
+
常用环境变量:
|
|
248
332
|
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
import Koa from 'koa';
|
|
252
|
-
import { successRsp, Router, AuthRouter } from 'koa-ts-core';
|
|
333
|
+
- `process.env.APP_PORT`:服务监听端口
|
|
334
|
+
- 其他自定义业务配置
|
|
253
335
|
|
|
254
|
-
|
|
255
|
-
@Router('get')
|
|
256
|
-
async get_test(ctx: Koa.Context) {
|
|
257
|
-
successRsp();
|
|
258
|
-
}
|
|
259
|
-
}
|
|
336
|
+
---
|
|
260
337
|
|
|
261
|
-
|
|
338
|
+
## 文档生成(配合 koa-ts-cli)
|
|
262
339
|
|
|
263
|
-
|
|
264
|
-
export default class Test {
|
|
265
|
-
static desc = '';
|
|
266
|
-
get_test() {
|
|
267
|
-
return {
|
|
268
|
-
method: 'get',
|
|
269
|
-
description: '',
|
|
270
|
-
path: '/get_test',
|
|
271
|
-
request: {
|
|
272
|
-
header: { 'Content-Type': 'application/json', Authorization: '' },
|
|
273
|
-
body: {},
|
|
274
|
-
query: {}
|
|
275
|
-
},
|
|
276
|
-
response: { body: {} }
|
|
277
|
-
};
|
|
278
|
-
}
|
|
279
|
-
}
|
|
340
|
+
`koa-ts-core` 提供路由元信息,配合 `koa-ts-cli` 的 `koa-ts-cli doc` 命令,可以根据 `src/controller` 自动生成 `doc` 目录下的接口配置文件,并在运行时通过 `/doc` 路由查看渲染后的接口文档。
|
|
280
341
|
|
|
281
|
-
|
|
342
|
+
具体 CLI 使用方式见:[koa-ts-cli README](../koa-ts-cli/README.md)(或对应仓库)。
|
|
282
343
|
|
|
283
|
-
|
|
344
|
+
---
|
|
284
345
|
|
|
285
|
-
|
|
346
|
+
## 日志:log4js 集成
|
|
286
347
|
|
|
287
|
-
|
|
348
|
+
配置项类型:
|
|
288
349
|
|
|
289
|
-
```
|
|
350
|
+
```ts
|
|
290
351
|
type TLog4 = boolean | ((instance: Log4js) => Log4js);
|
|
291
352
|
```
|
|
292
353
|
|
|
293
|
-
|
|
354
|
+
- 传入 `false` 或不传:不启用 log4
|
|
355
|
+
- 传入 `true`:使用默认 log4 配置
|
|
356
|
+
- 传入函数:自定义 log4 配置
|
|
357
|
+
|
|
358
|
+
默认配置示例(`log4: true`):
|
|
294
359
|
|
|
295
360
|
```js
|
|
296
361
|
log4js.configure({
|
|
297
362
|
appenders: {
|
|
298
|
-
console: { type: "console" },
|
|
363
|
+
console: { type: "console" },
|
|
299
364
|
file: {
|
|
300
365
|
type: "dateFile",
|
|
301
366
|
filename: "logs/app.log",
|
|
@@ -311,22 +376,57 @@ log4js.configure({
|
|
|
311
376
|
});
|
|
312
377
|
```
|
|
313
378
|
|
|
314
|
-
|
|
379
|
+
自定义示例:
|
|
315
380
|
|
|
316
|
-
```
|
|
381
|
+
```ts
|
|
317
382
|
initializeKoaApp({
|
|
318
383
|
log4: (instance) => {
|
|
319
384
|
return instance.configure({
|
|
320
|
-
appenders: {
|
|
321
|
-
|
|
385
|
+
appenders: { console: { type: "console" } },
|
|
386
|
+
categories: {
|
|
387
|
+
default: { appenders: ["console"], level: "debug" },
|
|
322
388
|
},
|
|
323
389
|
});
|
|
324
390
|
},
|
|
325
391
|
});
|
|
326
392
|
```
|
|
327
393
|
|
|
328
|
-
|
|
394
|
+
---
|
|
395
|
+
|
|
396
|
+
## Context 扩展
|
|
397
|
+
|
|
398
|
+
`koa-ts-core` 对 `Koa.Context` 做了类型拓展:
|
|
399
|
+
|
|
400
|
+
```ts
|
|
401
|
+
declare module "koa" {
|
|
402
|
+
interface DefaultContext {
|
|
403
|
+
// log4js 实例
|
|
404
|
+
log4?: import("log4js").Log4js;
|
|
405
|
+
|
|
406
|
+
// 生命周期 hook
|
|
407
|
+
hook?: (ctx: Koa.Context, type: "request" | "response" | "error") => void;
|
|
408
|
+
|
|
409
|
+
// 是否启用运行时日志
|
|
410
|
+
runtimeLog: boolean;
|
|
411
|
+
|
|
412
|
+
// 校验后的参数
|
|
413
|
+
validated: {
|
|
414
|
+
params: Record<string, any>;
|
|
415
|
+
get: Record<string, any>;
|
|
416
|
+
post: Record<string, any>;
|
|
417
|
+
};
|
|
418
|
+
|
|
419
|
+
// 业务扩展字段
|
|
420
|
+
extra: {
|
|
421
|
+
get: Record<string, any>;
|
|
422
|
+
post: Record<string, any>;
|
|
423
|
+
};
|
|
424
|
+
}
|
|
425
|
+
}
|
|
426
|
+
```
|
|
427
|
+
|
|
428
|
+
---
|
|
329
429
|
|
|
330
|
-
|
|
430
|
+
## 相关项目
|
|
331
431
|
|
|
332
|
-
koa
|
|
432
|
+
- [koa-ts-cli](https://www.npmjs.com/package/koa-typescript-cli):基于 `koa-ts-core` 的脚手架 CLI 工具,支持项目创建、开发、生成文档、自动生成控制器与校验器等。
|
package/dist/index.cjs.js
CHANGED
|
@@ -36,4 +36,4 @@
|
|
|
36
36
|
* copy-to - index.js
|
|
37
37
|
* Copyright(c) 2014 dead_horse <dead_horse@qq.com>
|
|
38
38
|
* MIT Licensed
|
|
39
|
-
*/var uc=function(){if(hs)return ms;hs=1;const e=lc(),n=function(){if(fs)return ds;fs=1;var e=Array.prototype.slice;function n(e,t){if(!(this instanceof n))return new n(e,t);this.src=e,this._withAccess=t}function t(e,n){return void 0===e[n]&&void 0===e.__lookupGetter__(n)&&void 0===e.__lookupSetter__(n)}return ds=n,n.prototype.withAccess=function(e){return this._withAccess=!1!==e,this},n.prototype.pick=function(n){return Array.isArray(n)||(n=e.call(arguments)),n.length&&(this.keys=n),this},n.prototype.to=function(e){if(e=e||{},!this.src)return e;var n=this.keys||Object.keys(this.src);if(!this._withAccess){for(var a=0;a<n.length;a++)void 0===e[i=n[a]]&&(e[i]=this.src[i]);return e}for(a=0;a<n.length;a++){var i=n[a];if(t(e,i)){var o=this.src.__lookupGetter__(i),r=this.src.__lookupSetter__(i);o&&e.__defineGetter__(i,o),r&&e.__defineSetter__(i,r),o||r||(e[i]=this.src[i])}}return e},n.prototype.toCover=function(e){for(var n=this.keys||Object.keys(this.src),t=0;t<n.length;t++){var a=n[t];delete e[a];var i=this.src.__lookupGetter__(a),o=this.src.__lookupSetter__(a);i&&e.__defineGetter__(a,i),o&&e.__defineSetter__(a,o),i||o||(e[a]=this.src[a])}},n.prototype.override=n.prototype.toCover,n.prototype.and=function(e){var n={};return this.to(n),this.src=e,this.to(n),this.src=n,this},ds}(),t=Ka();function a(e,t){const a={};return n(e).to(a),a.limit=e[t+"Limit"],a}function i(e,n){n&&(Array.isArray(n)||(n=[n]),n.forEach((function(n){e.push(n)})))}function o(e,n){return e.includes(n)}return ms=function(n){n=n||{};const{detectJSON:r}=n,{onerror:s}=n,c=n.enableTypes||["json","form"],p=o(c,"form"),l=o(c,"json"),u=o(c,"text"),d=o(c,"xml");n.detectJSON=void 0,n.onerror=void 0,n.returnRawBody=!0;const f=["application/json","application/json-patch+json","application/vnd.api+json","application/csp-report","application/scim+json"],m=["application/x-www-form-urlencoded"],h=["text/plain"],v=["text/xml","application/xml"],x=a(n,"json"),b=a(n,"form"),y=a(n,"text"),g=a(n,"xml"),w=n.extendTypes||{};return i(f,w.json),i(m,w.form),i(h,w.text),i(v,w.xml),async function(n,a){if(void 0!==n.request.body||n.disableBodyParser)return await a();try{const a=await async function(n){if(l&&(r&&r(n)||function(e,n){"string"==typeof e&&(e=e.replace(/;$/,""));return t.is(e,n)}(n.request.get("content-type"),f)))return await e.json(n,x);if(p&&n.request.is(m))return await e.form(n,b);if(u&&n.request.is(h))return await e.text(n,y)||"";if(d&&n.request.is(v))return await e.text(n,g)||"";return{}}(n);n.request.body="parsed"in a?a.parsed:{},void 0===n.request.rawBody&&(n.request.rawBody=a.raw)}catch(e){if(!s)throw e;s(e,n)}await a()}}}(),dc=M(uc),fc={};function mc(e,...n){return(...t)=>e(...n,...t)}function hc(e){return function(...n){var t=n.pop();return e.call(this,n,t)}}var vc="function"==typeof queueMicrotask&&queueMicrotask,xc="function"==typeof setImmediate&&setImmediate,bc="object"==typeof process&&"function"==typeof process.nextTick;function yc(e){setTimeout(e,0)}function gc(e){return(n,...t)=>e((()=>n(...t)))}var wc=gc(vc?queueMicrotask:xc?setImmediate:bc?process.nextTick:yc);function Sc(e){return jc(e)?function(...n){const t=n.pop();return kc(e.apply(this,n),t)}:hc((function(n,t){var a;try{a=e.apply(this,n)}catch(e){return t(e)}if(a&&"function"==typeof a.then)return kc(a,t);t(null,a)}))}function kc(e,n){return e.then((e=>{Ec(n,null,e)}),(e=>{Ec(n,e&&(e instanceof Error||e.message)?e:new Error(e))}))}function Ec(e,n,t){try{e(n,t)}catch(e){wc((e=>{throw e}),e)}}function jc(e){return"AsyncFunction"===e[Symbol.toStringTag]}function Oc(e){if("function"!=typeof e)throw new Error("expected a function");return jc(e)?Sc(e):e}function Cc(e,n){if(n||(n=e.length),!n)throw new Error("arity is undefined");return function(...t){return"function"==typeof t[n-1]?e.apply(this,t):new Promise(((a,i)=>{t[n-1]=(e,...n)=>{if(e)return i(e);a(n.length>1?n:n[0])},e.apply(this,t)}))}}function _c(e){return function(n,...t){return Cc((function(a){var i=this;return e(n,((e,n)=>{Oc(e).apply(i,t.concat(n))}),a)}))}}function Ac(e,n,t,a){n=n||[];var i=[],o=0,r=Oc(t);return e(n,((e,n,t)=>{var a=o++;r(e,((e,n)=>{i[a]=n,t(e)}))}),(e=>{a(e,i)}))}function Fc(e){return e&&"number"==typeof e.length&&e.length>=0&&e.length%1==0}const Tc={};function Pc(e){function n(...n){if(null!==e){var t=e;e=null,t.apply(this,n)}}return Object.assign(n,e),n}function Nc(e){if(Fc(e))return function(e){var n=-1,t=e.length;return function(){return++n<t?{value:e[n],key:n}:null}}(e);var n,t,a,i,o=function(e){return e[Symbol.iterator]&&e[Symbol.iterator]()}(e);return o?function(e){var n=-1;return function(){var t=e.next();return t.done?null:(n++,{value:t.value,key:n})}}(o):(t=(n=e)?Object.keys(n):[],a=-1,i=t.length,function e(){var o=t[++a];return"__proto__"===o?e():a<i?{value:n[o],key:o}:null})}function Ic(e){return function(...n){if(null===e)throw new Error("Callback was already called.");var t=e;e=null,t.apply(this,n)}}function Lc(e,n,t,a){let i=!1,o=!1,r=!1,s=0,c=0;function p(){s>=n||r||i||(r=!0,e.next().then((({value:e,done:n})=>{if(!o&&!i){if(r=!1,n)return i=!0,void(s<=0&&a(null));s++,t(e,c,l),c++,p()}})).catch(u))}function l(e,n){if(s-=1,!o)return e?u(e):!1===e?(i=!0,void(o=!0)):n===Tc||i&&s<=0?(i=!0,a(null)):void p()}function u(e){o||(r=!1,i=!0,a(e))}p()}var Mc=e=>(n,t,a)=>{if(a=Pc(a),e<=0)throw new RangeError("concurrency limit cannot be less than 1");if(!n)return a(null);if("AsyncGenerator"===n[Symbol.toStringTag])return Lc(n,e,t,a);if(function(e){return"function"==typeof e[Symbol.asyncIterator]}(n))return Lc(n[Symbol.asyncIterator](),e,t,a);var i=Nc(n),o=!1,r=!1,s=0,c=!1;function p(e,n){if(!r)if(s-=1,e)o=!0,a(e);else if(!1===e)o=!0,r=!0;else{if(n===Tc||o&&s<=0)return o=!0,a(null);c||l()}}function l(){for(c=!0;s<e&&!o;){var n=i();if(null===n)return o=!0,void(s<=0&&a(null));s+=1,t(n.value,n.key,Ic(p))}c=!1}l()};var qc=Cc((function(e,n,t,a){return Mc(n)(e,Oc(t),a)}),4);function Dc(e,n,t){t=Pc(t);var a=0,i=0,{length:o}=e,r=!1;function s(e,n){!1===e&&(r=!0),!0!==r&&(e?t(e):++i!==o&&n!==Tc||t(null))}for(0===o&&t(null);a<o;a++)n(e[a],a,Ic(s))}function Bc(e,n,t){return qc(e,1/0,n,t)}var Rc=Cc((function(e,n,t){return(Fc(e)?Dc:Bc)(e,Oc(n),t)}),3);var zc=Cc((function(e,n,t){return Ac(Rc,e,n,t)}),3),$c=_c(zc);var Uc=Cc((function(e,n,t){return qc(e,1,n,t)}),3);var Wc=Cc((function(e,n,t){return Ac(Uc,e,n,t)}),3),Gc=_c(Wc);const Hc=Symbol("promiseCallback");function Jc(){let e,n;function t(t,...a){if(t)return n(t);e(a.length>1?a:a[0])}return t[Hc]=new Promise(((t,a)=>{e=t,n=a})),t}function Kc(e,n,t){"number"!=typeof n&&(t=n,n=null),t=Pc(t||Jc());var a=Object.keys(e).length;if(!a)return t(null);n||(n=a);var i={},o=0,r=!1,s=!1,c=Object.create(null),p=[],l=[],u={};function d(e,n){p.push((()=>function(e,n){if(s)return;var a=Ic(((n,...a)=>{if(o--,!1!==n)if(a.length<2&&([a]=a),n){var p={};if(Object.keys(i).forEach((e=>{p[e]=i[e]})),p[e]=a,s=!0,c=Object.create(null),r)return;t(n,p)}else i[e]=a,(c[e]||[]).forEach((e=>e())),f();else r=!0}));o++;var p=Oc(n[n.length-1]);n.length>1?p(i,a):p(a)}(e,n)))}function f(){if(!r){if(0===p.length&&0===o)return t(null,i);for(;p.length&&o<n;){p.shift()()}}}function m(n){var t=[];return Object.keys(e).forEach((a=>{const i=e[a];Array.isArray(i)&&i.indexOf(n)>=0&&t.push(a)})),t}return Object.keys(e).forEach((n=>{var t=e[n];if(!Array.isArray(t))return d(n,[t]),void l.push(n);var a=t.slice(0,t.length-1),i=a.length;if(0===i)return d(n,t),void l.push(n);u[n]=i,a.forEach((o=>{if(!e[o])throw new Error("async.auto task `"+n+"` has a non-existent dependency `"+o+"` in "+a.join(", "));!function(e,n){var t=c[e];t||(t=c[e]=[]);t.push(n)}(o,(()=>{0===--i&&d(n,t)}))}))})),function(){var e=0;for(;l.length;)e++,m(l.pop()).forEach((e=>{0==--u[e]&&l.push(e)}));if(e!==a)throw new Error("async.auto cannot execute tasks due to a recursive dependency")}(),f(),t[Hc]}var Vc=/^(?:async\s)?(?:function)?\s*(?:\w+\s*)?\(([^)]+)\)(?:\s*{)/,Zc=/^(?:async\s)?\s*(?:\(\s*)?((?:[^)=\s]\s*)*)(?:\)\s*)?=>/,Qc=/,/,Yc=/(=.+)?(\s*)$/;function Xc(e,n){var t={};return Object.keys(e).forEach((n=>{var a,i=e[n],o=jc(i),r=!o&&1===i.length||o&&0===i.length;if(Array.isArray(i))a=[...i],i=a.pop(),t[n]=a.concat(a.length>0?s:i);else if(r)t[n]=i;else{if(a=function(e){const n=function(e){let n="",t=0,a=e.indexOf("*/");for(;t<e.length;)if("/"===e[t]&&"/"===e[t+1]){let n=e.indexOf("\n",t);t=-1===n?e.length:n}else if(-1!==a&&"/"===e[t]&&"*"===e[t+1]){let i=e.indexOf("*/",t);-1!==i?(t=i+2,a=e.indexOf("*/",t)):(n+=e[t],t++)}else n+=e[t],t++;return n}(e.toString());let t=n.match(Vc);if(t||(t=n.match(Zc)),!t)throw new Error("could not parse args in autoInject\nSource:\n"+n);let[,a]=t;return a.replace(/\s/g,"").split(Qc).map((e=>e.replace(Yc,"").trim()))}(i),0===i.length&&!o&&0===a.length)throw new Error("autoInject task functions require explicit parameters.");o||a.pop(),t[n]=a.concat(s)}function s(e,n){var t=a.map((n=>e[n]));t.push(n),Oc(i)(...t)}})),Kc(t,n)}class ep{constructor(){this.head=this.tail=null,this.length=0}removeLink(e){return e.prev?e.prev.next=e.next:this.head=e.next,e.next?e.next.prev=e.prev:this.tail=e.prev,e.prev=e.next=null,this.length-=1,e}empty(){for(;this.head;)this.shift();return this}insertAfter(e,n){n.prev=e,n.next=e.next,e.next?e.next.prev=n:this.tail=n,e.next=n,this.length+=1}insertBefore(e,n){n.prev=e.prev,n.next=e,e.prev?e.prev.next=n:this.head=n,e.prev=n,this.length+=1}unshift(e){this.head?this.insertBefore(this.head,e):np(this,e)}push(e){this.tail?this.insertAfter(this.tail,e):np(this,e)}shift(){return this.head&&this.removeLink(this.head)}pop(){return this.tail&&this.removeLink(this.tail)}toArray(){return[...this]}*[Symbol.iterator](){for(var e=this.head;e;)yield e.data,e=e.next}remove(e){for(var n=this.head;n;){var{next:t}=n;e(n)&&this.removeLink(n),n=t}return this}}function np(e,n){e.length=1,e.head=e.tail=n}function tp(e,n,t){if(null==n)n=1;else if(0===n)throw new RangeError("Concurrency must not be zero");var a=Oc(e),i=0,o=[];const r={error:[],drain:[],saturated:[],unsaturated:[],empty:[]};function s(e,n){return e?n?void(r[e]=r[e].filter((e=>e!==n))):r[e]=[]:Object.keys(r).forEach((e=>r[e]=[]))}function c(e,...n){r[e].forEach((e=>e(...n)))}var p=!1;function l(e,n,t,a){if(null!=a&&"function"!=typeof a)throw new Error("task callback must be a function");var i,o;function r(e,...n){return e?t?o(e):i():n.length<=1?i(n[0]):void i(n)}h.started=!0;var s=h._createTaskItem(e,t?r:a||r);if(n?h._tasks.unshift(s):h._tasks.push(s),p||(p=!0,wc((()=>{p=!1,h.process()}))),t||!a)return new Promise(((e,n)=>{i=e,o=n}))}function u(e){return function(n,...t){i-=1;for(var a=0,r=e.length;a<r;a++){var s=e[a],p=o.indexOf(s);0===p?o.shift():p>0&&o.splice(p,1),s.callback(n,...t),null!=n&&c("error",n,s.data)}i<=h.concurrency-h.buffer&&c("unsaturated"),h.idle()&&c("drain"),h.process()}}function d(e){return!(0!==e.length||!h.idle())&&(wc((()=>c("drain"))),!0)}const f=e=>n=>{if(!n)return new Promise(((n,t)=>{!function(e,n){const t=(...a)=>{s(e,t),n(...a)};r[e].push(t)}(e,((e,a)=>{if(e)return t(e);n(a)}))}));s(e),function(e,n){r[e].push(n)}(e,n)};var m=!1,h={_tasks:new ep,_createTaskItem:(e,n)=>({data:e,callback:n}),*[Symbol.iterator](){yield*h._tasks[Symbol.iterator]()},concurrency:n,payload:t,buffer:n/4,started:!1,paused:!1,push(e,n){if(Array.isArray(e)){if(d(e))return;return e.map((e=>l(e,!1,!1,n)))}return l(e,!1,!1,n)},pushAsync(e,n){if(Array.isArray(e)){if(d(e))return;return e.map((e=>l(e,!1,!0,n)))}return l(e,!1,!0,n)},kill(){s(),h._tasks.empty()},unshift(e,n){if(Array.isArray(e)){if(d(e))return;return e.map((e=>l(e,!0,!1,n)))}return l(e,!0,!1,n)},unshiftAsync(e,n){if(Array.isArray(e)){if(d(e))return;return e.map((e=>l(e,!0,!0,n)))}return l(e,!0,!0,n)},remove(e){h._tasks.remove(e)},process(){if(!m){for(m=!0;!h.paused&&i<h.concurrency&&h._tasks.length;){var e=[],n=[],t=h._tasks.length;h.payload&&(t=Math.min(t,h.payload));for(var r=0;r<t;r++){var s=h._tasks.shift();e.push(s),o.push(s),n.push(s.data)}i+=1,0===h._tasks.length&&c("empty"),i===h.concurrency&&c("saturated");var p=Ic(u(e));a(n,p)}m=!1}},length:()=>h._tasks.length,running:()=>i,workersList:()=>o,idle:()=>h._tasks.length+i===0,pause(){h.paused=!0},resume(){!1!==h.paused&&(h.paused=!1,wc(h.process))}};return Object.defineProperties(h,{saturated:{writable:!1,value:f("saturated")},unsaturated:{writable:!1,value:f("unsaturated")},empty:{writable:!1,value:f("empty")},drain:{writable:!1,value:f("drain")},error:{writable:!1,value:f("error")}}),h}function ap(e,n){return tp(e,1,n)}function ip(e,n,t){return tp(e,n,t)}var op=Cc((function(e,n,t,a){a=Pc(a);var i=Oc(t);return Uc(e,((e,t,a)=>{i(n,e,((e,t)=>{n=t,a(e)}))}),(e=>a(e,n)))}),4);function rp(...e){var n=e.map(Oc);return function(...e){var t=this,a=e[e.length-1];return"function"==typeof a?e.pop():a=Jc(),op(n,e,((e,n,a)=>{n.apply(t,e.concat(((e,...n)=>{a(e,n)})))}),((e,n)=>a(e,...n))),a[Hc]}}function sp(...e){return rp(...e.reverse())}var cp=Cc((function(e,n,t,a){return Ac(Mc(n),e,t,a)}),4);var pp=Cc((function(e,n,t,a){var i=Oc(t);return cp(e,n,((e,n)=>{i(e,((e,...t)=>e?n(e):n(e,t)))}),((e,n)=>{for(var t=[],i=0;i<n.length;i++)n[i]&&(t=t.concat(...n[i]));return a(e,t)}))}),4);var lp=Cc((function(e,n,t){return pp(e,1/0,n,t)}),3);var up=Cc((function(e,n,t){return pp(e,1,n,t)}),3);function dp(...e){return function(...n){return n.pop()(null,...e)}}function fp(e,n){return(t,a,i,o)=>{var r,s=!1;const c=Oc(i);t(a,((t,a,i)=>{c(t,((a,o)=>a||!1===a?i(a):e(o)&&!r?(s=!0,r=n(!0,t),i(null,Tc)):void i()))}),(e=>{if(e)return o(e);o(null,s?r:n(!1))}))}}var mp=Cc((function(e,n,t){return fp((e=>e),((e,n)=>n))(Rc,e,n,t)}),3);var hp=Cc((function(e,n,t,a){return fp((e=>e),((e,n)=>n))(Mc(n),e,t,a)}),4);var vp=Cc((function(e,n,t){return fp((e=>e),((e,n)=>n))(Mc(1),e,n,t)}),3);function xp(e){return(n,...t)=>Oc(n)(...t,((n,...t)=>{"object"==typeof console&&(n?console.error&&console.error(n):console[e]&&t.forEach((n=>console[e](n))))}))}var bp=xp("dir");var yp=Cc((function(e,n,t){t=Ic(t);var a,i=Oc(e),o=Oc(n);function r(e,...n){if(e)return t(e);!1!==e&&(a=n,o(...n,s))}function s(e,n){return e?t(e):!1!==e?n?void i(r):t(null,...a):void 0}return s(null,!0)}),3);function gp(e,n,t){const a=Oc(n);return yp(e,((...e)=>{const n=e.pop();a(...e,((e,t)=>n(e,!t)))}),t)}function wp(e){return(n,t,a)=>e(n,a)}var Sp=Cc((function(e,n,t){return Rc(e,wp(Oc(n)),t)}),3);var kp=Cc((function(e,n,t,a){return Mc(n)(e,wp(Oc(t)),a)}),4);var Ep=Cc((function(e,n,t){return kp(e,1,n,t)}),3);function jp(e){return jc(e)?e:function(...n){var t=n.pop(),a=!0;n.push(((...e)=>{a?wc((()=>t(...e))):t(...e)})),e.apply(this,n),a=!1}}var Op=Cc((function(e,n,t){return fp((e=>!e),(e=>!e))(Rc,e,n,t)}),3);var Cp=Cc((function(e,n,t,a){return fp((e=>!e),(e=>!e))(Mc(n),e,t,a)}),4);var _p=Cc((function(e,n,t){return fp((e=>!e),(e=>!e))(Uc,e,n,t)}),3);function Ap(e,n,t,a){var i=new Array(n.length);e(n,((e,n,a)=>{t(e,((e,t)=>{i[n]=!!t,a(e)}))}),(e=>{if(e)return a(e);for(var t=[],o=0;o<n.length;o++)i[o]&&t.push(n[o]);a(null,t)}))}function Fp(e,n,t,a){var i=[];e(n,((e,n,a)=>{t(e,((t,o)=>{if(t)return a(t);o&&i.push({index:n,value:e}),a(t)}))}),(e=>{if(e)return a(e);a(null,i.sort(((e,n)=>e.index-n.index)).map((e=>e.value)))}))}function Tp(e,n,t,a){return(Fc(n)?Ap:Fp)(e,n,Oc(t),a)}var Pp=Cc((function(e,n,t){return Tp(Rc,e,n,t)}),3);var Np=Cc((function(e,n,t,a){return Tp(Mc(n),e,t,a)}),4);var Ip=Cc((function(e,n,t){return Tp(Uc,e,n,t)}),3);var Lp=Cc((function(e,n){var t=Ic(n),a=Oc(jp(e));return function e(n){if(n)return t(n);!1!==n&&a(e)}()}),2);var Mp=Cc((function(e,n,t,a){var i=Oc(t);return cp(e,n,((e,n)=>{i(e,((t,a)=>t?n(t):n(t,{key:a,val:e})))}),((e,n)=>{for(var t={},{hasOwnProperty:i}=Object.prototype,o=0;o<n.length;o++)if(n[o]){var{key:r}=n[o],{val:s}=n[o];i.call(t,r)?t[r].push(s):t[r]=[s]}return a(e,t)}))}),4);function qp(e,n,t){return Mp(e,1/0,n,t)}function Dp(e,n,t){return Mp(e,1,n,t)}var Bp=xp("log");var Rp=Cc((function(e,n,t,a){a=Pc(a);var i={},o=Oc(t);return Mc(n)(e,((e,n,t)=>{o(e,n,((e,a)=>{if(e)return t(e);i[n]=a,t(e)}))}),(e=>a(e,i)))}),4);function zp(e,n,t){return Rp(e,1/0,n,t)}function $p(e,n,t){return Rp(e,1,n,t)}function Up(e,n=e=>e){var t=Object.create(null),a=Object.create(null),i=Oc(e),o=hc(((e,o)=>{var r=n(...e);r in t?wc((()=>o(null,...t[r]))):r in a?a[r].push(o):(a[r]=[o],i(...e,((e,...n)=>{e||(t[r]=n);var i=a[r];delete a[r];for(var o=0,s=i.length;o<s;o++)i[o](e,...n)})))}));return o.memo=t,o.unmemoized=e,o}var Wp=gc(bc?process.nextTick:xc?setImmediate:yc),Gp=Cc(((e,n,t)=>{var a=Fc(n)?[]:{};e(n,((e,n,t)=>{Oc(e)(((e,...i)=>{i.length<2&&([i]=i),a[n]=i,t(e)}))}),(e=>t(e,a)))}),3);function Hp(e,n){return Gp(Rc,e,n)}function Jp(e,n,t){return Gp(Mc(n),e,t)}function Kp(e,n){var t=Oc(e);return tp(((e,n)=>{t(e[0],n)}),n,1)}class Vp{constructor(){this.heap=[],this.pushCount=Number.MIN_SAFE_INTEGER}get length(){return this.heap.length}empty(){return this.heap=[],this}percUp(e){let n;for(;e>0&&Qp(this.heap[e],this.heap[n=Zp(e)]);){let t=this.heap[e];this.heap[e]=this.heap[n],this.heap[n]=t,e=n}}percDown(e){let n;for(;(n=1+(e<<1))<this.heap.length&&(n+1<this.heap.length&&Qp(this.heap[n+1],this.heap[n])&&(n+=1),!Qp(this.heap[e],this.heap[n]));){let t=this.heap[e];this.heap[e]=this.heap[n],this.heap[n]=t,e=n}}push(e){e.pushCount=++this.pushCount,this.heap.push(e),this.percUp(this.heap.length-1)}unshift(e){return this.heap.push(e)}shift(){let[e]=this.heap;return this.heap[0]=this.heap[this.heap.length-1],this.heap.pop(),this.percDown(0),e}toArray(){return[...this]}*[Symbol.iterator](){for(let e=0;e<this.heap.length;e++)yield this.heap[e].data}remove(e){let n=0;for(let t=0;t<this.heap.length;t++)e(this.heap[t])||(this.heap[n]=this.heap[t],n++);this.heap.splice(n);for(let e=Zp(this.heap.length-1);e>=0;e--)this.percDown(e);return this}}function Zp(e){return(e+1>>1)-1}function Qp(e,n){return e.priority!==n.priority?e.priority<n.priority:e.pushCount<n.pushCount}function Yp(e,n){var t=Kp(e,n),{push:a,pushAsync:i}=t;function o(e,n){return Array.isArray(e)?e.map((e=>({data:e,priority:n}))):{data:e,priority:n}}return t._tasks=new Vp,t._createTaskItem=({data:e,priority:n},t)=>({data:e,priority:n,callback:t}),t.push=function(e,n=0,t){return a(o(e,n),t)},t.pushAsync=function(e,n=0,t){return i(o(e,n),t)},delete t.unshift,delete t.unshiftAsync,t}var Xp=Cc((function(e,n){if(n=Pc(n),!Array.isArray(e))return n(new TypeError("First argument to race must be an array of functions"));if(!e.length)return n();for(var t=0,a=e.length;t<a;t++)Oc(e[t])(n)}),2);function el(e,n,t,a){var i=[...e].reverse();return op(i,n,t,a)}function nl(e){var n=Oc(e);return hc((function(e,t){return e.push(((e,...n)=>{let a={};if(e&&(a.error=e),n.length>0){var i=n;n.length<=1&&([i]=n),a.value=i}t(null,a)})),n.apply(this,e)}))}function tl(e){var n;return Array.isArray(e)?n=e.map(nl):(n={},Object.keys(e).forEach((t=>{n[t]=nl.call(this,e[t])}))),n}function al(e,n,t,a){const i=Oc(t);return Tp(e,n,((e,n)=>{i(e,((e,t)=>{n(e,!t)}))}),a)}var il=Cc((function(e,n,t){return al(Rc,e,n,t)}),3);var ol=Cc((function(e,n,t,a){return al(Mc(n),e,t,a)}),4);var rl=Cc((function(e,n,t){return al(Uc,e,n,t)}),3);function sl(e){return function(){return e}}function cl(e,n,t){var a={times:5,intervalFunc:sl(0)};if(arguments.length<3&&"function"==typeof e?(t=n||Jc(),n=e):(!function(e,n){if("object"==typeof n)e.times=+n.times||5,e.intervalFunc="function"==typeof n.interval?n.interval:sl(+n.interval||0),e.errorFilter=n.errorFilter;else{if("number"!=typeof n&&"string"!=typeof n)throw new Error("Invalid arguments for async.retry");e.times=+n||5}}(a,e),t=t||Jc()),"function"!=typeof n)throw new Error("Invalid arguments for async.retry");var i=Oc(n),o=1;return function e(){i(((n,...i)=>{!1!==n&&(n&&o++<a.times&&("function"!=typeof a.errorFilter||a.errorFilter(n))?setTimeout(e,a.intervalFunc(o-1)):t(n,...i))}))}(),t[Hc]}function pl(e,n){n||(n=e,e=null);let t=e&&e.arity||n.length;jc(n)&&(t+=1);var a=Oc(n);return hc(((n,i)=>{function o(e){a(...n,e)}return(n.length<t-1||null==i)&&(n.push(i),i=Jc()),e?cl(e,o,i):cl(o,i),i[Hc]}))}function ll(e,n){return Gp(Uc,e,n)}var ul=Cc((function(e,n,t){return fp(Boolean,(e=>e))(Rc,e,n,t)}),3);var dl=Cc((function(e,n,t,a){return fp(Boolean,(e=>e))(Mc(n),e,t,a)}),4);var fl=Cc((function(e,n,t){return fp(Boolean,(e=>e))(Uc,e,n,t)}),3);var ml=Cc((function(e,n,t){var a=Oc(n);return zc(e,((e,n)=>{a(e,((t,a)=>{if(t)return n(t);n(t,{value:e,criteria:a})}))}),((e,n)=>{if(e)return t(e);t(null,n.sort(i).map((e=>e.value)))}));function i(e,n){var t=e.criteria,a=n.criteria;return t<a?-1:t>a?1:0}}),3);function hl(e,n,t){var a=Oc(e);return hc(((i,o)=>{var r,s=!1;i.push(((...e)=>{s||(o(...e),clearTimeout(r))})),r=setTimeout((function(){var n=e.name||"anonymous",a=new Error('Callback function "'+n+'" timed out.');a.code="ETIMEDOUT",t&&(a.info=t),s=!0,o(a)}),n),a(...i)}))}function vl(e,n,t,a){var i=Oc(t);return cp(function(e){for(var n=Array(e);e--;)n[e]=e;return n}(e),n,i,a)}function xl(e,n,t){return vl(e,1/0,n,t)}function bl(e,n,t){return vl(e,1,n,t)}function yl(e,n,t,a){arguments.length<=3&&"function"==typeof n&&(a=t,t=n,n=Array.isArray(e)?[]:{}),a=Pc(a||Jc());var i=Oc(t);return Rc(e,((e,t,a)=>{i(n,e,t,a)}),(e=>a(e,n))),a[Hc]}var gl=Cc((function(e,n){var t,a=null;return Ep(e,((e,n)=>{Oc(e)(((e,...i)=>{if(!1===e)return n(e);i.length<2?[t]=i:t=i,a=e,n(e?null:{})}))}),(()=>n(a,t)))}));function wl(e){return(...n)=>(e.unmemoized||e)(...n)}var Sl=Cc((function(e,n,t){t=Ic(t);var a=Oc(n),i=Oc(e),o=[];function r(e,...n){if(e)return t(e);o=n,!1!==e&&i(s)}function s(e,n){return e?t(e):!1!==e?n?void a(r):t(null,...o):void 0}return i(s)}),3);function kl(e,n,t){const a=Oc(e);return Sl((e=>a(((n,t)=>e(n,!t)))),n,t)}var El,jl,Ol,Cl=Cc((function(e,n){if(n=Pc(n),!Array.isArray(e))return n(new Error("First argument to waterfall must be an array of functions"));if(!e.length)return n();var t=0;function a(n){Oc(e[t++])(...n,Ic(i))}function i(i,...o){if(!1!==i)return i||t===e.length?n(i,...o):void a(o)}a([])})),_l={apply:mc,applyEach:$c,applyEachSeries:Gc,asyncify:Sc,auto:Kc,autoInject:Xc,cargo:ap,cargoQueue:ip,compose:sp,concat:lp,concatLimit:pp,concatSeries:up,constant:dp,detect:mp,detectLimit:hp,detectSeries:vp,dir:bp,doUntil:gp,doWhilst:yp,each:Sp,eachLimit:kp,eachOf:Rc,eachOfLimit:qc,eachOfSeries:Uc,eachSeries:Ep,ensureAsync:jp,every:Op,everyLimit:Cp,everySeries:_p,filter:Pp,filterLimit:Np,filterSeries:Ip,forever:Lp,groupBy:qp,groupByLimit:Mp,groupBySeries:Dp,log:Bp,map:zc,mapLimit:cp,mapSeries:Wc,mapValues:zp,mapValuesLimit:Rp,mapValuesSeries:$p,memoize:Up,nextTick:Wp,parallel:Hp,parallelLimit:Jp,priorityQueue:Yp,queue:Kp,race:Xp,reduce:op,reduceRight:el,reflect:nl,reflectAll:tl,reject:il,rejectLimit:ol,rejectSeries:rl,retry:cl,retryable:pl,seq:rp,series:ll,setImmediate:wc,some:ul,someLimit:dl,someSeries:fl,sortBy:ml,timeout:hl,times:xl,timesLimit:vl,timesSeries:bl,transform:yl,tryEach:gl,unmemoize:wl,until:kl,waterfall:Cl,whilst:Sl,all:Op,allLimit:Cp,allSeries:_p,any:ul,anyLimit:dl,anySeries:fl,find:mp,findLimit:hp,findSeries:vp,flatMap:lp,flatMapLimit:pp,flatMapSeries:up,forEach:Sp,forEachSeries:Ep,forEachLimit:kp,forEachOf:Rc,forEachOfSeries:Uc,forEachOfLimit:qc,inject:op,foldl:op,foldr:el,select:Pp,selectLimit:Np,selectSeries:Ip,wrapSync:Sc,during:Sl,doDuring:yp},Al=q(Object.freeze({__proto__:null,all:Op,allLimit:Cp,allSeries:_p,any:ul,anyLimit:dl,anySeries:fl,apply:mc,applyEach:$c,applyEachSeries:Gc,asyncify:Sc,auto:Kc,autoInject:Xc,cargo:ap,cargoQueue:ip,compose:sp,concat:lp,concatLimit:pp,concatSeries:up,constant:dp,default:_l,detect:mp,detectLimit:hp,detectSeries:vp,dir:bp,doDuring:yp,doUntil:gp,doWhilst:yp,during:Sl,each:Sp,eachLimit:kp,eachOf:Rc,eachOfLimit:qc,eachOfSeries:Uc,eachSeries:Ep,ensureAsync:jp,every:Op,everyLimit:Cp,everySeries:_p,filter:Pp,filterLimit:Np,filterSeries:Ip,find:mp,findLimit:hp,findSeries:vp,flatMap:lp,flatMapLimit:pp,flatMapSeries:up,foldl:op,foldr:el,forEach:Sp,forEachLimit:kp,forEachOf:Rc,forEachOfLimit:qc,forEachOfSeries:Uc,forEachSeries:Ep,forever:Lp,groupBy:qp,groupByLimit:Mp,groupBySeries:Dp,inject:op,log:Bp,map:zc,mapLimit:cp,mapSeries:Wc,mapValues:zp,mapValuesLimit:Rp,mapValuesSeries:$p,memoize:Up,nextTick:Wp,parallel:Hp,parallelLimit:Jp,priorityQueue:Yp,queue:Kp,race:Xp,reduce:op,reduceRight:el,reflect:nl,reflectAll:tl,reject:il,rejectLimit:ol,rejectSeries:rl,retry:cl,retryable:pl,select:Pp,selectLimit:Np,selectSeries:Ip,seq:rp,series:ll,setImmediate:wc,some:ul,someLimit:dl,someSeries:fl,sortBy:ml,timeout:hl,times:xl,timesLimit:vl,timesSeries:bl,transform:yl,tryEach:gl,unmemoize:wl,until:kl,waterfall:Cl,whilst:Sl,wrapSync:Sc})),Fl={exports:{}},Tl={exports:{}};function Pl(){if(jl)return El;return jl=1,El=function(e){function n(e){let a,i,o,r=null;function s(...e){if(!s.enabled)return;const t=s,i=Number(new Date),o=i-(a||i);t.diff=o,t.prev=a,t.curr=i,a=i,e[0]=n.coerce(e[0]),"string"!=typeof e[0]&&e.unshift("%O");let r=0;e[0]=e[0].replace(/%([a-zA-Z%])/g,((a,i)=>{if("%%"===a)return"%";r++;const o=n.formatters[i];if("function"==typeof o){const n=e[r];a=o.call(t,n),e.splice(r,1),r--}return a})),n.formatArgs.call(t,e);(t.log||n.log).apply(t,e)}return s.namespace=e,s.useColors=n.useColors(),s.color=n.selectColor(e),s.extend=t,s.destroy=n.destroy,Object.defineProperty(s,"enabled",{enumerable:!0,configurable:!1,get:()=>null!==r?r:(i!==n.namespaces&&(i=n.namespaces,o=n.enabled(e)),o),set:e=>{r=e}}),"function"==typeof n.init&&n.init(s),s}function t(e,t){const a=n(this.namespace+(void 0===t?":":t)+e);return a.log=this.log,a}function a(e,n){let t=0,a=0,i=-1,o=0;for(;t<e.length;)if(a<n.length&&(n[a]===e[t]||"*"===n[a]))"*"===n[a]?(i=a,o=t,a++):(t++,a++);else{if(-1===i)return!1;a=i+1,o++,t=o}for(;a<n.length&&"*"===n[a];)a++;return a===n.length}return n.debug=n,n.default=n,n.coerce=function(e){if(e instanceof Error)return e.stack||e.message;return e},n.disable=function(){const e=[...n.names,...n.skips.map((e=>"-"+e))].join(",");return n.enable(""),e},n.enable=function(e){n.save(e),n.namespaces=e,n.names=[],n.skips=[];const t=("string"==typeof e?e:"").trim().replace(" ",",").split(",").filter(Boolean);for(const e of t)"-"===e[0]?n.skips.push(e.slice(1)):n.names.push(e)},n.enabled=function(e){for(const t of n.skips)if(a(e,t))return!1;for(const t of n.names)if(a(e,t))return!0;return!1},n.humanize=G(),n.destroy=function(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")},Object.keys(e).forEach((t=>{n[t]=e[t]})),n.names=[],n.skips=[],n.formatters={},n.selectColor=function(e){let t=0;for(let n=0;n<e.length;n++)t=(t<<5)-t+e.charCodeAt(n),t|=0;return n.colors[Math.abs(t)%n.colors.length]},n.enable(n.load()),n},El}var Nl,Il,Ll,Ml={exports:{}};function ql(){return Nl||(Nl=1,function(e,n){const t=a,o=i;n.init=function(e){e.inspectOpts={};const t=Object.keys(n.inspectOpts);for(let a=0;a<t.length;a++)e.inspectOpts[t[a]]=n.inspectOpts[t[a]]},n.log=function(...e){return process.stderr.write(o.formatWithOptions(n.inspectOpts,...e)+"\n")},n.formatArgs=function(t){const{namespace:a,useColors:i}=this;if(i){const n=this.color,i="[3"+(n<8?n:"8;5;"+n),o=` ${i};1m${a} [0m`;t[0]=o+t[0].split("\n").join("\n"+o),t.push(i+"m+"+e.exports.humanize(this.diff)+"[0m")}else t[0]=function(){if(n.inspectOpts.hideDate)return"";return(new Date).toISOString()+" "}()+a+" "+t[0]},n.save=function(e){e?process.env.DEBUG=e:delete process.env.DEBUG},n.load=function(){return process.env.DEBUG},n.useColors=function(){return"colors"in n.inspectOpts?Boolean(n.inspectOpts.colors):t.isatty(process.stderr.fd)},n.destroy=o.deprecate((()=>{}),"Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."),n.colors=[6,2,3,4,5,1];try{const e=require("supports-color");e&&(e.stderr||e).level>=2&&(n.colors=[20,21,26,27,32,33,38,39,40,41,42,43,44,45,56,57,62,63,68,69,74,75,76,77,78,79,80,81,92,93,98,99,112,113,128,129,134,135,148,149,160,161,162,163,164,165,166,167,168,169,170,171,172,173,178,179,184,185,196,197,198,199,200,201,202,203,204,205,206,207,208,209,214,215,220,221])}catch(e){}n.inspectOpts=Object.keys(process.env).filter((e=>/^debug_/i.test(e))).reduce(((e,n)=>{const t=n.substring(6).toLowerCase().replace(/_([a-z])/g,((e,n)=>n.toUpperCase()));let a=process.env[n];return a=!!/^(yes|on|true|enabled)$/i.test(a)||!/^(no|off|false|disabled)$/i.test(a)&&("null"===a?null:Number(a)),e[t]=a,e}),{}),e.exports=Pl()(n);const{formatters:r}=e.exports;r.o=function(e){return this.inspectOpts.colors=this.useColors,o.inspect(e,this.inspectOpts).split("\n").map((e=>e.trim())).join(" ")},r.O=function(e){return this.inspectOpts.colors=this.useColors,o.inspect(e,this.inspectOpts)}}(Ml,Ml.exports)),Ml.exports}function Dl(){return Il||(Il=1,"undefined"==typeof process||"renderer"===process.type||!0===process.browser||process.__nwjs?Fl.exports=(Ol||(Ol=1,function(e,n){n.formatArgs=function(n){if(n[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+n[0]+(this.useColors?"%c ":" ")+"+"+e.exports.humanize(this.diff),!this.useColors)return;const t="color: "+this.color;n.splice(1,0,t,"color: inherit");let a=0,i=0;n[0].replace(/%[a-zA-Z%]/g,(e=>{"%%"!==e&&(a++,"%c"===e&&(i=a))})),n.splice(i,0,t)},n.save=function(e){try{e?n.storage.setItem("debug",e):n.storage.removeItem("debug")}catch(e){}},n.load=function(){let e;try{e=n.storage.getItem("debug")}catch(e){}return!e&&"undefined"!=typeof process&&"env"in process&&(e=process.env.DEBUG),e},n.useColors=function(){if("undefined"!=typeof window&&window.process&&("renderer"===window.process.type||window.process.__nwjs))return!0;if("undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))return!1;let e;return"undefined"!=typeof document&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||"undefined"!=typeof window&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||"undefined"!=typeof navigator&&navigator.userAgent&&(e=navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/))&&parseInt(e[1],10)>=31||"undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)},n.storage=function(){try{return localStorage}catch(e){}}(),n.destroy=(()=>{let e=!1;return()=>{e||(e=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})(),n.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"],n.log=console.debug||console.log||(()=>{}),e.exports=Pl()(n);const{formatters:t}=e.exports;t.j=function(e){try{return JSON.stringify(e)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}}}(Tl,Tl.exports)),Tl.exports):Fl.exports=ql()),Fl.exports}var Bl=(Ll||(Ll=1,function(e){const a=n,i=o,r=u,s=t,c=Al,p=Dl(),l=p("portfinder:testPort"),d=p("portfinder:getPort"),f=p("portfinder:defaultHosts"),m={testPort:function(n,t){function a(){l("done w/ testPort(): OK",n.host,"port",n.port),n.server.removeListener("error",i),n.server.close((function(){l("done w/ testPort(): Server closed",n.host,"port",n.port),t(null,n.port)}))}function i(i){if(l("done w/ testPort(): failed",n.host,"w/ port",n.port,"with error",i.code),n.server.removeListener("listening",a),"EADDRINUSE"!=i.code&&"EACCES"!=i.code)return t(i);const o=e.nextPort(n.port);if(o>e.highestPort)return t(new Error("No open ports available"));m.testPort({port:o,host:n.host,server:n.server},t)}t||(t=n,n={}),n.server=n.server||r.createServer((function(){})),l("entered testPort(): trying",n.host,"port",n.port),n.server.once("error",i),n.server.once("listening",a),n.host?n.server.listen(n.port,n.host):n.server.listen(n.port)}};e.basePort=8e3,e.setBasePort=function(n){e.basePort=n},e.highestPort=65535,e.setHighestPort=function(n){e.highestPort=n},e.basePath="/tmp/portfinder",e.setBasePath=function(n){e.basePath=n},m.getPort=function(n,t){if(n.port=Number(n.port)||Number(n.startPort)||Number(e.basePort),n.host=n.host||null,n.stopPort=Number(n.stopPort)||Number(e.highestPort),!n.startPort){if(n.startPort=n.port,n.startPort<0)return t(Error(`Provided options.port(${n.port}) is less than 0, which are cannot be bound.`));if(n.stopPort<n.startPort)return t(Error(`Provided options.stopPort(${n.stopPort}) is less than options.port(${n.startPort})`))}n.host&&-1===e._defaultHosts.indexOf(n.host)&&e._defaultHosts.push(n.host);const a=[];let i;return c.eachSeries(e._defaultHosts,(function(e,t){return d("in eachSeries() iteration callback: host is",e),m.testPort({host:e,port:n.port},(function(n,o){return n?(d("in eachSeries() iteration callback testPort() callback","with an err:",n.code),i=e,t(n)):(d("in eachSeries() iteration callback testPort() callback","with a success for port",o),a.push(o),t())}))}),(function(o){if(o){if(d("in eachSeries() result callback: err is",o),"EADDRNOTAVAIL"===o.code||"EINVAL"===o.code){if(n.host===i){const e="Provided host "+n.host+" could NOT be bound. Please provide a different host address or hostname";return t(Error(e))}{const a=e._defaultHosts.indexOf(i);return e._defaultHosts.splice(a,1),m.getPort(n,t)}}return t(o)}if(a.sort((function(e,n){return e-n})),d("in eachSeries() result callback: openPorts is",a),a[0]===a[a.length-1]){if(a[0]<=n.stopPort)return t(null,a[0]);{const e="No open ports found in between "+n.startPort+" and "+n.stopPort;return t(Error(e))}}return m.getPort({port:a.pop(),host:n.host,startPort:n.startPort,stopPort:n.stopPort},t)}))},e.getPort=function(e,n){if("function"==typeof e&&(n=e,e={}),e=e||{},!n)return new Promise((function(n,t){m.getPort(e,(function(e,a){if(e)return t(e);n(a)}))}));m.getPort(e,n)},e.getPortPromise=e.getPort,m.getPorts=function(n,t,a){let i=null;c.timesSeries(n,(function(n,a){i&&(t.port=e.nextPort(i)),m.getPort(t,(function(e,n){e?a(e):(i=n,a(null,n))}))}),a)},e.getPorts=function(e,n,t){if("function"==typeof n&&(t=n,n={}),n=n||{},!t)return new Promise((function(t,a){m.getPorts(e,n,(function(e,n){if(e)return a(e);t(n)}))}));m.getPorts(e,n,t)},e.getPortsPromise=e.getPorts,m.getSocket=function(n,t){function i(){a.stat(n.path,(function(a){a?"ENOENT"==a.code?t(null,n.path):t(a):(n.path=e.nextSocket(n.path),m.getSocket(n,t))}))}return n.mod=n.mod||parseInt(755,8),n.path=n.path||e.basePath+".sock",n.exists?i():function(){const e=s.dirname(n.path);a.stat(e,(function(o,r){if(o||!r.isDirectory())return function(e){a.mkdir(e,{mode:n.mod,recursive:!0},(function(e){if(e)return t(e);n.exists=!0,i()}))}(e);n.exists=!0,i()}))}()},e.getSocket=function(e,n){if("function"==typeof e&&(n=e,e={}),e=e||{},!n)return new Promise((function(n,t){m.getSocket(e,(function(e,a){if(e)return t(e);n(a)}))}));m.getSocket(e,n)},e.getSocketPromise=e.getSocket,e.nextPort=function(e){return e+1},e.nextSocket=function(e){const n=s.dirname(e),t=s.basename(e,".sock").match(/^([a-zA-z]+)(\d*)$/i),a=t[1];let i=parseInt(t[2]);return isNaN(i)&&(i=0),i+=1,s.join(n,a+i+".sock")},e._defaultHosts=function(){let e={};try{e=i.networkInterfaces()}catch(e){if("uv_interface_addresses"!==e.syscall)throw e}const n=Object.keys(e),t=["0.0.0.0"];for(let a=0;a<n.length;a++){const i=e[n[a]];for(let e=0;e<i.length;e++){const n=i[e];t.push(n.address)}}return t.push(null),f("exports._defaultHosts is: %o",t),t}()}(fc)),fc),Rl=M(Bl);const zl=f.prototype.listen,$l=e=>{const n=e.address();if(n){((e,n)=>{const t=null!==n?`http://${e}:${n}`:e;console.log(`app listen ${t}`)})("object"==typeof n?(e=>"::"===e?"0.0.0.0":e)(n.address):n,"object"==typeof n?n.port:null)}},Ul=(e,n,t,a)=>{const{pathPrefix:i,moduleName:o,name:r}=P(n,"controller"),s=`${i}/${o}`;if(!t)return;const c=F(`${e}${`${i}/${r}`}`);t.forEach((e=>{const{method:n,path:t,handler:o,functionName:r,authRequired:p,middlewares:l}=e;var u;c&&"function"==typeof c[r]&&l.push((u=c[r].bind(c),async(e,n)=>{const t=u(e);t instanceof Promise&&await t,await n()}));const d=(f=p,m=o,async(e,n)=>{let t=a(f,e);return t instanceof Promise&&(t=await t),t?m(e,n):e.throw(403,"无权限")});var f,m;const h=[...l,d],v=Wl(t,s,r,h,n);e.path=v,e.apiPrePath=i}))},Wl=(e,n,t,a,i)=>{const o=`${n}${e}`;if(t===y){const e=`${n}/index`;La[i](e,...a)}return La[i](o,...a),o};var Gl=function(e){var n=Object.prototype.hasOwnProperty;function t(e,a){return Array.isArray(e)?function(e,n){for(var a,i="",o="",s=Array.isArray(n),c=0;c<e.length;c++)(a=t(e[c]))&&(s&&n[c]&&(a=r(a)),i=i+o+a,o=" ");return i}(e,a):e&&"object"==typeof e?function(e){var t="",a="";for(var i in e)i&&e[i]&&n.call(e,i)&&(t=t+a+i,a=" ");return t}(e):e||""}function a(e){if(!e)return"";if("object"==typeof e){var t="";for(var a in e)n.call(e,a)&&(t=t+a+":"+e[a]+";");return t}return e+""}function i(e,n,t,a){return!1!==n&&null!=n&&(n||"class"!==e&&"style"!==e)?!0===n?" "+(a?e:e+'="'+e+'"'):("function"==typeof n.toJSON&&(n=n.toJSON()),"string"==typeof n||(n=JSON.stringify(n),t||-1===n.indexOf('"'))?(t&&(n=r(n))," "+e+'="'+n+'"'):" "+e+"='"+n.replace(/'/g,"'")+"'"):""}e.merge=function e(n,t){if(1===arguments.length){for(var i=n[0],o=1;o<n.length;o++)i=e(i,n[o]);return i}for(var r in t)if("class"===r){var s=n[r]||[];n[r]=(Array.isArray(s)?s:[s]).concat(t[r]||[])}else if("style"===r){s=(s=a(n[r]))&&";"!==s[s.length-1]?s+";":s;var c=a(t[r]);c=c&&";"!==c[c.length-1]?c+";":c,n[r]=s+c}else n[r]=t[r];return n},e.classes=t,e.style=a,e.attr=i,e.attrs=function(e,o){var r="";for(var s in e)if(n.call(e,s)){var c=e[s];if("class"===s){r=i(s,c=t(c),!1,o)+r;continue}"style"===s&&(c=a(c)),r+=i(s,c,!1,o)}return r};var o=/["&<>]/;function r(e){var n=""+e,t=o.exec(n);if(!t)return e;var a,i,r,s="";for(a=t.index,i=0;a<n.length;a++){switch(n.charCodeAt(a)){case 34:r=""";break;case 38:r="&";break;case 60:r="<";break;case 62:r=">";break;default:continue}i!==a&&(s+=n.substring(i,a)),i=a+1,s+=r}return i!==a?s+n.substring(i,a):s}return e.escape=r,e.rethrow=function e(n,t,a,i){if(!(n instanceof Error))throw n;if(!("undefined"==typeof window&&t||i))throw n.message+=" on line "+a,n;try{i=i||require("fs").readFileSync(t,"utf8")}catch(t){e(n,null,a)}var o=3,r=i.split("\n"),s=Math.max(a-o,0),c=Math.min(r.length,a+o);o=r.slice(s,c).map((function(e,n){var t=n+s+1;return(t==a?" > ":" ")+t+"| "+e})).join("\n");throw n.path=t,n.message=(t||"Pug")+":"+a+"\n"+o+"\n\n"+n.message,n},e}({});function Hl(e){var n,t,a="";try{var i={},o=e||{};(function(e,t){a+="<!DOCTYPE html>",a+="\n<html>",a+="\n <head>",a+="\n <title>",a+="API Documentation</title>",a+="\n <style>\n ",a+="body { font-family: Arial, sans-serif; margin: 20px; }",a+="\n ",a+="",a+="\n ",a+="h1 { color: #333; text-align: center; }",a+="\n ",a+="h2 { color: #333333 }",a+="\n ",a+="h3 { cursor: pointer; transition: color 0.3s; }",a+="\n ",a+="h3 { color: #007BFF; }",a+="\n ",a+="h3:hover { color: #0056b3; }",a+="\n ",a+="",a+="\n ",a+=".api-section { ",a+="\n ",a+=" margin: 20px 0; ",a+="\n ",a+=" border: 1px solid #e0e0e0; ",a+="\n ",a+=" border-radius: 8px; ",a+="\n ",a+=" padding: 10px; ",a+="\n ",a+=" background-color: #f9f9f9; ",a+="\n ",a+=" box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.1); ",a+="\n ",a+="}",a+="\n ",a+="",a+="\n ",a+=".api-method { font-weight: bold; color: #333; }",a+="\n ",a+=".api-path { font-style: italic; color: #555; }",a+="\n ",a+="",a+="\n ",a+="pre { ",a+="\n ",a+=" background: #f4f4f4; ",a+="\n ",a+=" padding: 10px; ",a+="\n ",a+=" border-radius: 5px; ",a+="\n ",a+=" overflow-x: auto; ",a+="\n ",a+="}",a+="\n ",a+="",a+="\n ",a+=".collapse { display: none; }",a+="\n ",a+="\n </style>\n </head>",a+="\n <body>",a+="\n <h1>",a+="API Documentation</h1>",a+="\n \x3c!-- 添加 JavaScript 用于折叠 Sections--\x3e",a+="\n <script>\n ",a+="document.addEventListener('DOMContentLoaded', function() {",a+="\n ",a+=" const headings = document.querySelectorAll('.toggle');",a+="\n ",a+=" headings.forEach(heading => {",a+="\n ",a+=" heading.addEventListener('click', function() {",a+="\n ",a+=" // 找到 h3 后面的 collapse 元素",a+="\n ",a+=" let content = heading.nextElementSibling;",a+="\n ",a+=" if(!(content && content.classList.contains('collapse'))) {",a+="\n ",a+=" content = content.nextElementSibling;",a+="\n ",a+=" }",a+="\n ",a+=" if (content && content.classList.contains('collapse')) {",a+="\n ",a+=' content.style.display = (content.style.display === "block") ? "none" : "block";',a+="\n ",a+=" }",a+="\n ",a+=" });",a+="\n ",a+=" });",a+="\n ",a+="});",a+="\n ",a+="\n <\/script>",function(){var i=t;if("number"==typeof i.length)for(var o=0,r=i.length;o<r;o++){var s=i[o];a=(a+="\n <h2>")+Gl.escape(null==(n=s[0])?"":n)+"</h2>",function(){var t=s[1];if("number"==typeof t.length)for(var i=0,o=t.length;i<o;i++){var r=t[i];a+='\n <div class="api-section">',a=(a+='\n <h3 class="toggle">')+Gl.escape(null==(n=r.name)?"":n)+"</h3>",r.desc&&(a=(a+="\n <p>")+Gl.escape(null==(n=r.desc)?"":n)+"</p>"),a+='\n <div class="collapse">',function(){var t=r.configs;if("number"==typeof t.length)for(var i=0,o=t.length;i<o;i++){var s=t[i];a=(a+='\n <h4 class="api-method">')+Gl.escape(null==(n=s.method.toUpperCase()+" "+s.path)?"":n)+"</h4>",s.description&&(a=(a+="\n <h5>")+Gl.escape(null==(n=s.description)?"":n)+"</h5>"),a+="\n <pre>",a+="Request Header:</pre>",a=(a+="\n <pre>")+Gl.escape(null==(n=e.stringify(s.request.header,null,2))?"":n)+"</pre>",a+="\n <pre>",a+="Request Body:</pre>",a=(a+="\n <pre>")+Gl.escape(null==(n=e.stringify(s.request.body,null,2))?"":n)+"</pre>",a+="\n <pre>",a+="Request Query:</pre>",a=(a+="\n <pre>")+Gl.escape(null==(n=e.stringify(s.request.query,null,2))?"":n)+"</pre>",a+="\n <pre>",a+="Response Body:</pre>",a=(a+="\n <pre>")+Gl.escape(null==(n=e.stringify(s.response.body,null,2))?"":n)+"</pre>"}else{o=0;for(var i in t){o++;s=t[i];a=(a+='\n <h4 class="api-method">')+Gl.escape(null==(n=s.method.toUpperCase()+" "+s.path)?"":n)+"</h4>",s.description&&(a=(a+="\n <h5>")+Gl.escape(null==(n=s.description)?"":n)+"</h5>"),a+="\n <pre>",a+="Request Header:</pre>",a=(a+="\n <pre>")+Gl.escape(null==(n=e.stringify(s.request.header,null,2))?"":n)+"</pre>",a+="\n <pre>",a+="Request Body:</pre>",a=(a+="\n <pre>")+Gl.escape(null==(n=e.stringify(s.request.body,null,2))?"":n)+"</pre>",a+="\n <pre>",a+="Request Query:</pre>",a=(a+="\n <pre>")+Gl.escape(null==(n=e.stringify(s.request.query,null,2))?"":n)+"</pre>",a+="\n <pre>",a+="Response Body:</pre>",a=(a+="\n <pre>")+Gl.escape(null==(n=e.stringify(s.response.body,null,2))?"":n)+"</pre>"}}}.call(this),a+="\n </div>\n </div>"}else{o=0;for(var i in t){o++;r=t[i];a+='\n <div class="api-section">',a=(a+='\n <h3 class="toggle">')+Gl.escape(null==(n=r.name)?"":n)+"</h3>",r.desc&&(a=(a+="\n <p>")+Gl.escape(null==(n=r.desc)?"":n)+"</p>"),a+='\n <div class="collapse">',function(){var t=r.configs;if("number"==typeof t.length)for(var i=0,o=t.length;i<o;i++){var s=t[i];a=(a+='\n <h4 class="api-method">')+Gl.escape(null==(n=s.method.toUpperCase()+" "+s.path)?"":n)+"</h4>",s.description&&(a=(a+="\n <h5>")+Gl.escape(null==(n=s.description)?"":n)+"</h5>"),a+="\n <pre>",a+="Request Header:</pre>",a=(a+="\n <pre>")+Gl.escape(null==(n=e.stringify(s.request.header,null,2))?"":n)+"</pre>",a+="\n <pre>",a+="Request Body:</pre>",a=(a+="\n <pre>")+Gl.escape(null==(n=e.stringify(s.request.body,null,2))?"":n)+"</pre>",a+="\n <pre>",a+="Request Query:</pre>",a=(a+="\n <pre>")+Gl.escape(null==(n=e.stringify(s.request.query,null,2))?"":n)+"</pre>",a+="\n <pre>",a+="Response Body:</pre>",a=(a+="\n <pre>")+Gl.escape(null==(n=e.stringify(s.response.body,null,2))?"":n)+"</pre>"}else{o=0;for(var i in t){o++;s=t[i];a=(a+='\n <h4 class="api-method">')+Gl.escape(null==(n=s.method.toUpperCase()+" "+s.path)?"":n)+"</h4>",s.description&&(a=(a+="\n <h5>")+Gl.escape(null==(n=s.description)?"":n)+"</h5>"),a+="\n <pre>",a+="Request Header:</pre>",a=(a+="\n <pre>")+Gl.escape(null==(n=e.stringify(s.request.header,null,2))?"":n)+"</pre>",a+="\n <pre>",a+="Request Body:</pre>",a=(a+="\n <pre>")+Gl.escape(null==(n=e.stringify(s.request.body,null,2))?"":n)+"</pre>",a+="\n <pre>",a+="Request Query:</pre>",a=(a+="\n <pre>")+Gl.escape(null==(n=e.stringify(s.request.query,null,2))?"":n)+"</pre>",a+="\n <pre>",a+="Response Body:</pre>",a=(a+="\n <pre>")+Gl.escape(null==(n=e.stringify(s.response.body,null,2))?"":n)+"</pre>"}}}.call(this),a+="\n </div>\n </div>"}}}.call(this)}else{r=0;for(var o in i){r++;s=i[o];a=(a+="\n <h2>")+Gl.escape(null==(n=s[0])?"":n)+"</h2>",function(){var t=s[1];if("number"==typeof t.length)for(var i=0,o=t.length;i<o;i++){var r=t[i];a+='\n <div class="api-section">',a=(a+='\n <h3 class="toggle">')+Gl.escape(null==(n=r.name)?"":n)+"</h3>",r.desc&&(a=(a+="\n <p>")+Gl.escape(null==(n=r.desc)?"":n)+"</p>"),a+='\n <div class="collapse">',function(){var t=r.configs;if("number"==typeof t.length)for(var i=0,o=t.length;i<o;i++){var s=t[i];a=(a+='\n <h4 class="api-method">')+Gl.escape(null==(n=s.method.toUpperCase()+" "+s.path)?"":n)+"</h4>",s.description&&(a=(a+="\n <h5>")+Gl.escape(null==(n=s.description)?"":n)+"</h5>"),a+="\n <pre>",a+="Request Header:</pre>",a=(a+="\n <pre>")+Gl.escape(null==(n=e.stringify(s.request.header,null,2))?"":n)+"</pre>",a+="\n <pre>",a+="Request Body:</pre>",a=(a+="\n <pre>")+Gl.escape(null==(n=e.stringify(s.request.body,null,2))?"":n)+"</pre>",a+="\n <pre>",a+="Request Query:</pre>",a=(a+="\n <pre>")+Gl.escape(null==(n=e.stringify(s.request.query,null,2))?"":n)+"</pre>",a+="\n <pre>",a+="Response Body:</pre>",a=(a+="\n <pre>")+Gl.escape(null==(n=e.stringify(s.response.body,null,2))?"":n)+"</pre>"}else{o=0;for(var i in t){o++;s=t[i];a=(a+='\n <h4 class="api-method">')+Gl.escape(null==(n=s.method.toUpperCase()+" "+s.path)?"":n)+"</h4>",s.description&&(a=(a+="\n <h5>")+Gl.escape(null==(n=s.description)?"":n)+"</h5>"),a+="\n <pre>",a+="Request Header:</pre>",a=(a+="\n <pre>")+Gl.escape(null==(n=e.stringify(s.request.header,null,2))?"":n)+"</pre>",a+="\n <pre>",a+="Request Body:</pre>",a=(a+="\n <pre>")+Gl.escape(null==(n=e.stringify(s.request.body,null,2))?"":n)+"</pre>",a+="\n <pre>",a+="Request Query:</pre>",a=(a+="\n <pre>")+Gl.escape(null==(n=e.stringify(s.request.query,null,2))?"":n)+"</pre>",a+="\n <pre>",a+="Response Body:</pre>",a=(a+="\n <pre>")+Gl.escape(null==(n=e.stringify(s.response.body,null,2))?"":n)+"</pre>"}}}.call(this),a+="\n </div>\n </div>"}else{o=0;for(var i in t){o++;r=t[i];a+='\n <div class="api-section">',a=(a+='\n <h3 class="toggle">')+Gl.escape(null==(n=r.name)?"":n)+"</h3>",r.desc&&(a=(a+="\n <p>")+Gl.escape(null==(n=r.desc)?"":n)+"</p>"),a+='\n <div class="collapse">',function(){var t=r.configs;if("number"==typeof t.length)for(var i=0,o=t.length;i<o;i++){var s=t[i];a=(a+='\n <h4 class="api-method">')+Gl.escape(null==(n=s.method.toUpperCase()+" "+s.path)?"":n)+"</h4>",s.description&&(a=(a+="\n <h5>")+Gl.escape(null==(n=s.description)?"":n)+"</h5>"),a+="\n <pre>",a+="Request Header:</pre>",a=(a+="\n <pre>")+Gl.escape(null==(n=e.stringify(s.request.header,null,2))?"":n)+"</pre>",a+="\n <pre>",a+="Request Body:</pre>",a=(a+="\n <pre>")+Gl.escape(null==(n=e.stringify(s.request.body,null,2))?"":n)+"</pre>",a+="\n <pre>",a+="Request Query:</pre>",a=(a+="\n <pre>")+Gl.escape(null==(n=e.stringify(s.request.query,null,2))?"":n)+"</pre>",a+="\n <pre>",a+="Response Body:</pre>",a=(a+="\n <pre>")+Gl.escape(null==(n=e.stringify(s.response.body,null,2))?"":n)+"</pre>"}else{o=0;for(var i in t){o++;s=t[i];a=(a+='\n <h4 class="api-method">')+Gl.escape(null==(n=s.method.toUpperCase()+" "+s.path)?"":n)+"</h4>",s.description&&(a=(a+="\n <h5>")+Gl.escape(null==(n=s.description)?"":n)+"</h5>"),a+="\n <pre>",a+="Request Header:</pre>",a=(a+="\n <pre>")+Gl.escape(null==(n=e.stringify(s.request.header,null,2))?"":n)+"</pre>",a+="\n <pre>",a+="Request Body:</pre>",a=(a+="\n <pre>")+Gl.escape(null==(n=e.stringify(s.request.body,null,2))?"":n)+"</pre>",a+="\n <pre>",a+="Request Query:</pre>",a=(a+="\n <pre>")+Gl.escape(null==(n=e.stringify(s.request.query,null,2))?"":n)+"</pre>",a+="\n <pre>",a+="Response Body:</pre>",a=(a+="\n <pre>")+Gl.escape(null==(n=e.stringify(s.response.body,null,2))?"":n)+"</pre>"}}}.call(this),a+="\n </div>\n </div>"}}}.call(this)}}}.call(this),a+="\n </body>\n</html>"}).call(this,"JSON"in o?o.JSON:"undefined"!=typeof JSON?JSON:void 0,"apiData"in o?o.apiData:"undefined"!=typeof apiData?apiData:void 0)}catch(e){Gl.rethrow(e,t,undefined,i[void 0])}return a}const Jl={DOCUMENTATION_DIR:t.join(process.cwd(),"doc")},Kl=(e,n)=>{const t=F(e.wholePath),a=t.prototype,i=Object.getOwnPropertyNames(a).filter((e=>"function"==typeof a[e]&&"constructor"!==e)),o=e.path.substring(e.path.indexOf("doc")+3),r=i.map((e=>{if("function"==typeof a[e]){const n=a[e]();return n.path=o+n.path,n}return null})).filter((e=>!!e));let s="";if(r[0]?.path){const e=r[0].path.lastIndexOf("/");e>-1&&(s=r[0].path.substring(0,e))}return{configs:r,desc:t.desc,name:t.name,pathPrefix:n,apiPrePath:s}},Vl=async(e,n)=>{e.extra={get:e.query,post:e.request.body??{}},await n()};(()=>{const e=process.env.NODE_ENV||"production",a=_();let i=t.resolve(a,"env");switch(function(e){try{return n.statSync(e).isDirectory()}catch(e){return e.code,!1}}(i)||(i=t.resolve(a,"..","env")),console.log("load env path: ",i),v.config({path:t.resolve(i,".common.env")}),e){case"development":v.config({path:t.resolve(i,".development.env")});break;case"test":v.config({path:t.resolve(i,".test.env")});break;case"production":v.config({path:t.resolve(i,".production.env")})}})();exports.AuthRouter=function(e,n){return S(e,n,!0)},exports.BaseException=C,exports.INDEX_ROUTE=y,exports.Router=function(e,n){return S(e,n)},exports.contextStore=k,exports.errorRsp=O,exports.getCurrentContext=E,exports.getSrcModulePaths=A,exports.initializeKoaApp=async e=>{const{koaInstance:n,authCheckCallback:t,catchErrorCallback:a,registerHighPriorityMiddleware:i,registerHook:o,log4:r=!1,runtimeLog:s=!0}=e;global.isDev="development"===process.env.NODE_ENV;const c=n||new f;var p;return c.context.log4=(e=>{if(!1!==e)return"boolean"==typeof e&&!0===e?Na():e(Ta)})(r),c.context.hook=o,c.context.runtimeLog=s,c.use(I),c.use((p=a,async(e,n)=>{try{await n()}catch(n){e.hook?.(e,"error"),p?p(n,e):O(500,{message:n.message})}})),i?.(c),c.use(Ia),e.corsMiddleware&&c.use(e.corsMiddleware),c.use(dc()),c.use(Vl),(e=>{const{controllerModule:n,validateModule:t}=A();console.log("load controller path: ",n),T(n,(n=>{if(!n.path.includes("controller"))return;const a=F(n.wholePath),i=a?.routesMap;i&&Ul(t,n,i,((t,a)=>!t||e({filePath:n,ctx:a})))}))})(t),c.context.validated={params:{},get:{},post:{}},"development"!==process.env.NODE_ENV&&"true"!==process.env.DOC||La.get("/doc",(async e=>{const n=await(async()=>{const e=[],n=new Map;return T(Jl.DOCUMENTATION_DIR,(n=>{const{pathPrefix:t}=P(n,"doc");e.push(Kl(n,t))})),e.forEach((e=>{n.has(e.pathPrefix)||n.set(e.pathPrefix,[]),n.get(e.pathPrefix)?.push(e)})),Hl({apiData:Array.from(n.entries())})})();e.body=n})),La.get("/",(async e=>{e.body={code:200,message:"hello koa-ts-cli https://www.npmjs.com/package/koa-ts-core"}})),c.use(La.routes()),await(async e=>{const n=process.env.APP_PORT;if(n){const t=e.listen(Number(n));return void t.on("listening",(()=>$l(t)))}const t=await Rl.getPortPromise({port:8e3,stopPort:9999});e.listen=(...n)=>{const a=0===n.length?zl.apply(e,[t]):zl.apply(e,n);return a.on("listening",(()=>$l(a))),a}})(c),[c,La]},exports.successRsp=e=>{const n=Array.isArray(e?.data);j({success:!0,message:e?.message,data:n?{list:e?.data}:e?.data})},exports.unSuccessRsp=e=>{j({success:!1,errorCode:e?.code,errorMessage:e?.message,data:e?.data})};
|
|
39
|
+
*/var uc=function(){if(hs)return ms;hs=1;const e=lc(),n=function(){if(fs)return ds;fs=1;var e=Array.prototype.slice;function n(e,t){if(!(this instanceof n))return new n(e,t);this.src=e,this._withAccess=t}function t(e,n){return void 0===e[n]&&void 0===e.__lookupGetter__(n)&&void 0===e.__lookupSetter__(n)}return ds=n,n.prototype.withAccess=function(e){return this._withAccess=!1!==e,this},n.prototype.pick=function(n){return Array.isArray(n)||(n=e.call(arguments)),n.length&&(this.keys=n),this},n.prototype.to=function(e){if(e=e||{},!this.src)return e;var n=this.keys||Object.keys(this.src);if(!this._withAccess){for(var a=0;a<n.length;a++)void 0===e[i=n[a]]&&(e[i]=this.src[i]);return e}for(a=0;a<n.length;a++){var i=n[a];if(t(e,i)){var o=this.src.__lookupGetter__(i),r=this.src.__lookupSetter__(i);o&&e.__defineGetter__(i,o),r&&e.__defineSetter__(i,r),o||r||(e[i]=this.src[i])}}return e},n.prototype.toCover=function(e){for(var n=this.keys||Object.keys(this.src),t=0;t<n.length;t++){var a=n[t];delete e[a];var i=this.src.__lookupGetter__(a),o=this.src.__lookupSetter__(a);i&&e.__defineGetter__(a,i),o&&e.__defineSetter__(a,o),i||o||(e[a]=this.src[a])}},n.prototype.override=n.prototype.toCover,n.prototype.and=function(e){var n={};return this.to(n),this.src=e,this.to(n),this.src=n,this},ds}(),t=Ka();function a(e,t){const a={};return n(e).to(a),a.limit=e[t+"Limit"],a}function i(e,n){n&&(Array.isArray(n)||(n=[n]),n.forEach((function(n){e.push(n)})))}function o(e,n){return e.includes(n)}return ms=function(n){n=n||{};const{detectJSON:r}=n,{onerror:s}=n,c=n.enableTypes||["json","form"],p=o(c,"form"),l=o(c,"json"),u=o(c,"text"),d=o(c,"xml");n.detectJSON=void 0,n.onerror=void 0,n.returnRawBody=!0;const f=["application/json","application/json-patch+json","application/vnd.api+json","application/csp-report","application/scim+json"],m=["application/x-www-form-urlencoded"],h=["text/plain"],v=["text/xml","application/xml"],x=a(n,"json"),b=a(n,"form"),y=a(n,"text"),g=a(n,"xml"),w=n.extendTypes||{};return i(f,w.json),i(m,w.form),i(h,w.text),i(v,w.xml),async function(n,a){if(void 0!==n.request.body||n.disableBodyParser)return await a();try{const a=await async function(n){if(l&&(r&&r(n)||function(e,n){"string"==typeof e&&(e=e.replace(/;$/,""));return t.is(e,n)}(n.request.get("content-type"),f)))return await e.json(n,x);if(p&&n.request.is(m))return await e.form(n,b);if(u&&n.request.is(h))return await e.text(n,y)||"";if(d&&n.request.is(v))return await e.text(n,g)||"";return{}}(n);n.request.body="parsed"in a?a.parsed:{},void 0===n.request.rawBody&&(n.request.rawBody=a.raw)}catch(e){if(!s)throw e;s(e,n)}await a()}}}(),dc=M(uc),fc={};function mc(e,...n){return(...t)=>e(...n,...t)}function hc(e){return function(...n){var t=n.pop();return e.call(this,n,t)}}var vc="function"==typeof queueMicrotask&&queueMicrotask,xc="function"==typeof setImmediate&&setImmediate,bc="object"==typeof process&&"function"==typeof process.nextTick;function yc(e){setTimeout(e,0)}function gc(e){return(n,...t)=>e((()=>n(...t)))}var wc=gc(vc?queueMicrotask:xc?setImmediate:bc?process.nextTick:yc);function Sc(e){return jc(e)?function(...n){const t=n.pop();return kc(e.apply(this,n),t)}:hc((function(n,t){var a;try{a=e.apply(this,n)}catch(e){return t(e)}if(a&&"function"==typeof a.then)return kc(a,t);t(null,a)}))}function kc(e,n){return e.then((e=>{Ec(n,null,e)}),(e=>{Ec(n,e&&(e instanceof Error||e.message)?e:new Error(e))}))}function Ec(e,n,t){try{e(n,t)}catch(e){wc((e=>{throw e}),e)}}function jc(e){return"AsyncFunction"===e[Symbol.toStringTag]}function Oc(e){if("function"!=typeof e)throw new Error("expected a function");return jc(e)?Sc(e):e}function Cc(e,n){if(n||(n=e.length),!n)throw new Error("arity is undefined");return function(...t){return"function"==typeof t[n-1]?e.apply(this,t):new Promise(((a,i)=>{t[n-1]=(e,...n)=>{if(e)return i(e);a(n.length>1?n:n[0])},e.apply(this,t)}))}}function _c(e){return function(n,...t){return Cc((function(a){var i=this;return e(n,((e,n)=>{Oc(e).apply(i,t.concat(n))}),a)}))}}function Ac(e,n,t,a){n=n||[];var i=[],o=0,r=Oc(t);return e(n,((e,n,t)=>{var a=o++;r(e,((e,n)=>{i[a]=n,t(e)}))}),(e=>{a(e,i)}))}function Fc(e){return e&&"number"==typeof e.length&&e.length>=0&&e.length%1==0}const Tc={};function Pc(e){function n(...n){if(null!==e){var t=e;e=null,t.apply(this,n)}}return Object.assign(n,e),n}function Nc(e){if(Fc(e))return function(e){var n=-1,t=e.length;return function(){return++n<t?{value:e[n],key:n}:null}}(e);var n,t,a,i,o=function(e){return e[Symbol.iterator]&&e[Symbol.iterator]()}(e);return o?function(e){var n=-1;return function(){var t=e.next();return t.done?null:(n++,{value:t.value,key:n})}}(o):(t=(n=e)?Object.keys(n):[],a=-1,i=t.length,function e(){var o=t[++a];return"__proto__"===o?e():a<i?{value:n[o],key:o}:null})}function Ic(e){return function(...n){if(null===e)throw new Error("Callback was already called.");var t=e;e=null,t.apply(this,n)}}function Lc(e,n,t,a){let i=!1,o=!1,r=!1,s=0,c=0;function p(){s>=n||r||i||(r=!0,e.next().then((({value:e,done:n})=>{if(!o&&!i){if(r=!1,n)return i=!0,void(s<=0&&a(null));s++,t(e,c,l),c++,p()}})).catch(u))}function l(e,n){if(s-=1,!o)return e?u(e):!1===e?(i=!0,void(o=!0)):n===Tc||i&&s<=0?(i=!0,a(null)):void p()}function u(e){o||(r=!1,i=!0,a(e))}p()}var Mc=e=>(n,t,a)=>{if(a=Pc(a),e<=0)throw new RangeError("concurrency limit cannot be less than 1");if(!n)return a(null);if("AsyncGenerator"===n[Symbol.toStringTag])return Lc(n,e,t,a);if(function(e){return"function"==typeof e[Symbol.asyncIterator]}(n))return Lc(n[Symbol.asyncIterator](),e,t,a);var i=Nc(n),o=!1,r=!1,s=0,c=!1;function p(e,n){if(!r)if(s-=1,e)o=!0,a(e);else if(!1===e)o=!0,r=!0;else{if(n===Tc||o&&s<=0)return o=!0,a(null);c||l()}}function l(){for(c=!0;s<e&&!o;){var n=i();if(null===n)return o=!0,void(s<=0&&a(null));s+=1,t(n.value,n.key,Ic(p))}c=!1}l()};var qc=Cc((function(e,n,t,a){return Mc(n)(e,Oc(t),a)}),4);function Dc(e,n,t){t=Pc(t);var a=0,i=0,{length:o}=e,r=!1;function s(e,n){!1===e&&(r=!0),!0!==r&&(e?t(e):++i!==o&&n!==Tc||t(null))}for(0===o&&t(null);a<o;a++)n(e[a],a,Ic(s))}function Bc(e,n,t){return qc(e,1/0,n,t)}var Rc=Cc((function(e,n,t){return(Fc(e)?Dc:Bc)(e,Oc(n),t)}),3);var zc=Cc((function(e,n,t){return Ac(Rc,e,n,t)}),3),$c=_c(zc);var Uc=Cc((function(e,n,t){return qc(e,1,n,t)}),3);var Wc=Cc((function(e,n,t){return Ac(Uc,e,n,t)}),3),Gc=_c(Wc);const Hc=Symbol("promiseCallback");function Jc(){let e,n;function t(t,...a){if(t)return n(t);e(a.length>1?a:a[0])}return t[Hc]=new Promise(((t,a)=>{e=t,n=a})),t}function Kc(e,n,t){"number"!=typeof n&&(t=n,n=null),t=Pc(t||Jc());var a=Object.keys(e).length;if(!a)return t(null);n||(n=a);var i={},o=0,r=!1,s=!1,c=Object.create(null),p=[],l=[],u={};function d(e,n){p.push((()=>function(e,n){if(s)return;var a=Ic(((n,...a)=>{if(o--,!1!==n)if(a.length<2&&([a]=a),n){var p={};if(Object.keys(i).forEach((e=>{p[e]=i[e]})),p[e]=a,s=!0,c=Object.create(null),r)return;t(n,p)}else i[e]=a,(c[e]||[]).forEach((e=>e())),f();else r=!0}));o++;var p=Oc(n[n.length-1]);n.length>1?p(i,a):p(a)}(e,n)))}function f(){if(!r){if(0===p.length&&0===o)return t(null,i);for(;p.length&&o<n;){p.shift()()}}}function m(n){var t=[];return Object.keys(e).forEach((a=>{const i=e[a];Array.isArray(i)&&i.indexOf(n)>=0&&t.push(a)})),t}return Object.keys(e).forEach((n=>{var t=e[n];if(!Array.isArray(t))return d(n,[t]),void l.push(n);var a=t.slice(0,t.length-1),i=a.length;if(0===i)return d(n,t),void l.push(n);u[n]=i,a.forEach((o=>{if(!e[o])throw new Error("async.auto task `"+n+"` has a non-existent dependency `"+o+"` in "+a.join(", "));!function(e,n){var t=c[e];t||(t=c[e]=[]);t.push(n)}(o,(()=>{0===--i&&d(n,t)}))}))})),function(){var e=0;for(;l.length;)e++,m(l.pop()).forEach((e=>{0==--u[e]&&l.push(e)}));if(e!==a)throw new Error("async.auto cannot execute tasks due to a recursive dependency")}(),f(),t[Hc]}var Vc=/^(?:async\s)?(?:function)?\s*(?:\w+\s*)?\(([^)]+)\)(?:\s*{)/,Zc=/^(?:async\s)?\s*(?:\(\s*)?((?:[^)=\s]\s*)*)(?:\)\s*)?=>/,Qc=/,/,Yc=/(=.+)?(\s*)$/;function Xc(e,n){var t={};return Object.keys(e).forEach((n=>{var a,i=e[n],o=jc(i),r=!o&&1===i.length||o&&0===i.length;if(Array.isArray(i))a=[...i],i=a.pop(),t[n]=a.concat(a.length>0?s:i);else if(r)t[n]=i;else{if(a=function(e){const n=function(e){let n="",t=0,a=e.indexOf("*/");for(;t<e.length;)if("/"===e[t]&&"/"===e[t+1]){let n=e.indexOf("\n",t);t=-1===n?e.length:n}else if(-1!==a&&"/"===e[t]&&"*"===e[t+1]){let i=e.indexOf("*/",t);-1!==i?(t=i+2,a=e.indexOf("*/",t)):(n+=e[t],t++)}else n+=e[t],t++;return n}(e.toString());let t=n.match(Vc);if(t||(t=n.match(Zc)),!t)throw new Error("could not parse args in autoInject\nSource:\n"+n);let[,a]=t;return a.replace(/\s/g,"").split(Qc).map((e=>e.replace(Yc,"").trim()))}(i),0===i.length&&!o&&0===a.length)throw new Error("autoInject task functions require explicit parameters.");o||a.pop(),t[n]=a.concat(s)}function s(e,n){var t=a.map((n=>e[n]));t.push(n),Oc(i)(...t)}})),Kc(t,n)}class ep{constructor(){this.head=this.tail=null,this.length=0}removeLink(e){return e.prev?e.prev.next=e.next:this.head=e.next,e.next?e.next.prev=e.prev:this.tail=e.prev,e.prev=e.next=null,this.length-=1,e}empty(){for(;this.head;)this.shift();return this}insertAfter(e,n){n.prev=e,n.next=e.next,e.next?e.next.prev=n:this.tail=n,e.next=n,this.length+=1}insertBefore(e,n){n.prev=e.prev,n.next=e,e.prev?e.prev.next=n:this.head=n,e.prev=n,this.length+=1}unshift(e){this.head?this.insertBefore(this.head,e):np(this,e)}push(e){this.tail?this.insertAfter(this.tail,e):np(this,e)}shift(){return this.head&&this.removeLink(this.head)}pop(){return this.tail&&this.removeLink(this.tail)}toArray(){return[...this]}*[Symbol.iterator](){for(var e=this.head;e;)yield e.data,e=e.next}remove(e){for(var n=this.head;n;){var{next:t}=n;e(n)&&this.removeLink(n),n=t}return this}}function np(e,n){e.length=1,e.head=e.tail=n}function tp(e,n,t){if(null==n)n=1;else if(0===n)throw new RangeError("Concurrency must not be zero");var a=Oc(e),i=0,o=[];const r={error:[],drain:[],saturated:[],unsaturated:[],empty:[]};function s(e,n){return e?n?void(r[e]=r[e].filter((e=>e!==n))):r[e]=[]:Object.keys(r).forEach((e=>r[e]=[]))}function c(e,...n){r[e].forEach((e=>e(...n)))}var p=!1;function l(e,n,t,a){if(null!=a&&"function"!=typeof a)throw new Error("task callback must be a function");var i,o;function r(e,...n){return e?t?o(e):i():n.length<=1?i(n[0]):void i(n)}h.started=!0;var s=h._createTaskItem(e,t?r:a||r);if(n?h._tasks.unshift(s):h._tasks.push(s),p||(p=!0,wc((()=>{p=!1,h.process()}))),t||!a)return new Promise(((e,n)=>{i=e,o=n}))}function u(e){return function(n,...t){i-=1;for(var a=0,r=e.length;a<r;a++){var s=e[a],p=o.indexOf(s);0===p?o.shift():p>0&&o.splice(p,1),s.callback(n,...t),null!=n&&c("error",n,s.data)}i<=h.concurrency-h.buffer&&c("unsaturated"),h.idle()&&c("drain"),h.process()}}function d(e){return!(0!==e.length||!h.idle())&&(wc((()=>c("drain"))),!0)}const f=e=>n=>{if(!n)return new Promise(((n,t)=>{!function(e,n){const t=(...a)=>{s(e,t),n(...a)};r[e].push(t)}(e,((e,a)=>{if(e)return t(e);n(a)}))}));s(e),function(e,n){r[e].push(n)}(e,n)};var m=!1,h={_tasks:new ep,_createTaskItem:(e,n)=>({data:e,callback:n}),*[Symbol.iterator](){yield*h._tasks[Symbol.iterator]()},concurrency:n,payload:t,buffer:n/4,started:!1,paused:!1,push(e,n){if(Array.isArray(e)){if(d(e))return;return e.map((e=>l(e,!1,!1,n)))}return l(e,!1,!1,n)},pushAsync(e,n){if(Array.isArray(e)){if(d(e))return;return e.map((e=>l(e,!1,!0,n)))}return l(e,!1,!0,n)},kill(){s(),h._tasks.empty()},unshift(e,n){if(Array.isArray(e)){if(d(e))return;return e.map((e=>l(e,!0,!1,n)))}return l(e,!0,!1,n)},unshiftAsync(e,n){if(Array.isArray(e)){if(d(e))return;return e.map((e=>l(e,!0,!0,n)))}return l(e,!0,!0,n)},remove(e){h._tasks.remove(e)},process(){if(!m){for(m=!0;!h.paused&&i<h.concurrency&&h._tasks.length;){var e=[],n=[],t=h._tasks.length;h.payload&&(t=Math.min(t,h.payload));for(var r=0;r<t;r++){var s=h._tasks.shift();e.push(s),o.push(s),n.push(s.data)}i+=1,0===h._tasks.length&&c("empty"),i===h.concurrency&&c("saturated");var p=Ic(u(e));a(n,p)}m=!1}},length:()=>h._tasks.length,running:()=>i,workersList:()=>o,idle:()=>h._tasks.length+i===0,pause(){h.paused=!0},resume(){!1!==h.paused&&(h.paused=!1,wc(h.process))}};return Object.defineProperties(h,{saturated:{writable:!1,value:f("saturated")},unsaturated:{writable:!1,value:f("unsaturated")},empty:{writable:!1,value:f("empty")},drain:{writable:!1,value:f("drain")},error:{writable:!1,value:f("error")}}),h}function ap(e,n){return tp(e,1,n)}function ip(e,n,t){return tp(e,n,t)}var op=Cc((function(e,n,t,a){a=Pc(a);var i=Oc(t);return Uc(e,((e,t,a)=>{i(n,e,((e,t)=>{n=t,a(e)}))}),(e=>a(e,n)))}),4);function rp(...e){var n=e.map(Oc);return function(...e){var t=this,a=e[e.length-1];return"function"==typeof a?e.pop():a=Jc(),op(n,e,((e,n,a)=>{n.apply(t,e.concat(((e,...n)=>{a(e,n)})))}),((e,n)=>a(e,...n))),a[Hc]}}function sp(...e){return rp(...e.reverse())}var cp=Cc((function(e,n,t,a){return Ac(Mc(n),e,t,a)}),4);var pp=Cc((function(e,n,t,a){var i=Oc(t);return cp(e,n,((e,n)=>{i(e,((e,...t)=>e?n(e):n(e,t)))}),((e,n)=>{for(var t=[],i=0;i<n.length;i++)n[i]&&(t=t.concat(...n[i]));return a(e,t)}))}),4);var lp=Cc((function(e,n,t){return pp(e,1/0,n,t)}),3);var up=Cc((function(e,n,t){return pp(e,1,n,t)}),3);function dp(...e){return function(...n){return n.pop()(null,...e)}}function fp(e,n){return(t,a,i,o)=>{var r,s=!1;const c=Oc(i);t(a,((t,a,i)=>{c(t,((a,o)=>a||!1===a?i(a):e(o)&&!r?(s=!0,r=n(!0,t),i(null,Tc)):void i()))}),(e=>{if(e)return o(e);o(null,s?r:n(!1))}))}}var mp=Cc((function(e,n,t){return fp((e=>e),((e,n)=>n))(Rc,e,n,t)}),3);var hp=Cc((function(e,n,t,a){return fp((e=>e),((e,n)=>n))(Mc(n),e,t,a)}),4);var vp=Cc((function(e,n,t){return fp((e=>e),((e,n)=>n))(Mc(1),e,n,t)}),3);function xp(e){return(n,...t)=>Oc(n)(...t,((n,...t)=>{"object"==typeof console&&(n?console.error&&console.error(n):console[e]&&t.forEach((n=>console[e](n))))}))}var bp=xp("dir");var yp=Cc((function(e,n,t){t=Ic(t);var a,i=Oc(e),o=Oc(n);function r(e,...n){if(e)return t(e);!1!==e&&(a=n,o(...n,s))}function s(e,n){return e?t(e):!1!==e?n?void i(r):t(null,...a):void 0}return s(null,!0)}),3);function gp(e,n,t){const a=Oc(n);return yp(e,((...e)=>{const n=e.pop();a(...e,((e,t)=>n(e,!t)))}),t)}function wp(e){return(n,t,a)=>e(n,a)}var Sp=Cc((function(e,n,t){return Rc(e,wp(Oc(n)),t)}),3);var kp=Cc((function(e,n,t,a){return Mc(n)(e,wp(Oc(t)),a)}),4);var Ep=Cc((function(e,n,t){return kp(e,1,n,t)}),3);function jp(e){return jc(e)?e:function(...n){var t=n.pop(),a=!0;n.push(((...e)=>{a?wc((()=>t(...e))):t(...e)})),e.apply(this,n),a=!1}}var Op=Cc((function(e,n,t){return fp((e=>!e),(e=>!e))(Rc,e,n,t)}),3);var Cp=Cc((function(e,n,t,a){return fp((e=>!e),(e=>!e))(Mc(n),e,t,a)}),4);var _p=Cc((function(e,n,t){return fp((e=>!e),(e=>!e))(Uc,e,n,t)}),3);function Ap(e,n,t,a){var i=new Array(n.length);e(n,((e,n,a)=>{t(e,((e,t)=>{i[n]=!!t,a(e)}))}),(e=>{if(e)return a(e);for(var t=[],o=0;o<n.length;o++)i[o]&&t.push(n[o]);a(null,t)}))}function Fp(e,n,t,a){var i=[];e(n,((e,n,a)=>{t(e,((t,o)=>{if(t)return a(t);o&&i.push({index:n,value:e}),a(t)}))}),(e=>{if(e)return a(e);a(null,i.sort(((e,n)=>e.index-n.index)).map((e=>e.value)))}))}function Tp(e,n,t,a){return(Fc(n)?Ap:Fp)(e,n,Oc(t),a)}var Pp=Cc((function(e,n,t){return Tp(Rc,e,n,t)}),3);var Np=Cc((function(e,n,t,a){return Tp(Mc(n),e,t,a)}),4);var Ip=Cc((function(e,n,t){return Tp(Uc,e,n,t)}),3);var Lp=Cc((function(e,n){var t=Ic(n),a=Oc(jp(e));return function e(n){if(n)return t(n);!1!==n&&a(e)}()}),2);var Mp=Cc((function(e,n,t,a){var i=Oc(t);return cp(e,n,((e,n)=>{i(e,((t,a)=>t?n(t):n(t,{key:a,val:e})))}),((e,n)=>{for(var t={},{hasOwnProperty:i}=Object.prototype,o=0;o<n.length;o++)if(n[o]){var{key:r}=n[o],{val:s}=n[o];i.call(t,r)?t[r].push(s):t[r]=[s]}return a(e,t)}))}),4);function qp(e,n,t){return Mp(e,1/0,n,t)}function Dp(e,n,t){return Mp(e,1,n,t)}var Bp=xp("log");var Rp=Cc((function(e,n,t,a){a=Pc(a);var i={},o=Oc(t);return Mc(n)(e,((e,n,t)=>{o(e,n,((e,a)=>{if(e)return t(e);i[n]=a,t(e)}))}),(e=>a(e,i)))}),4);function zp(e,n,t){return Rp(e,1/0,n,t)}function $p(e,n,t){return Rp(e,1,n,t)}function Up(e,n=e=>e){var t=Object.create(null),a=Object.create(null),i=Oc(e),o=hc(((e,o)=>{var r=n(...e);r in t?wc((()=>o(null,...t[r]))):r in a?a[r].push(o):(a[r]=[o],i(...e,((e,...n)=>{e||(t[r]=n);var i=a[r];delete a[r];for(var o=0,s=i.length;o<s;o++)i[o](e,...n)})))}));return o.memo=t,o.unmemoized=e,o}var Wp=gc(bc?process.nextTick:xc?setImmediate:yc),Gp=Cc(((e,n,t)=>{var a=Fc(n)?[]:{};e(n,((e,n,t)=>{Oc(e)(((e,...i)=>{i.length<2&&([i]=i),a[n]=i,t(e)}))}),(e=>t(e,a)))}),3);function Hp(e,n){return Gp(Rc,e,n)}function Jp(e,n,t){return Gp(Mc(n),e,t)}function Kp(e,n){var t=Oc(e);return tp(((e,n)=>{t(e[0],n)}),n,1)}class Vp{constructor(){this.heap=[],this.pushCount=Number.MIN_SAFE_INTEGER}get length(){return this.heap.length}empty(){return this.heap=[],this}percUp(e){let n;for(;e>0&&Qp(this.heap[e],this.heap[n=Zp(e)]);){let t=this.heap[e];this.heap[e]=this.heap[n],this.heap[n]=t,e=n}}percDown(e){let n;for(;(n=1+(e<<1))<this.heap.length&&(n+1<this.heap.length&&Qp(this.heap[n+1],this.heap[n])&&(n+=1),!Qp(this.heap[e],this.heap[n]));){let t=this.heap[e];this.heap[e]=this.heap[n],this.heap[n]=t,e=n}}push(e){e.pushCount=++this.pushCount,this.heap.push(e),this.percUp(this.heap.length-1)}unshift(e){return this.heap.push(e)}shift(){let[e]=this.heap;return this.heap[0]=this.heap[this.heap.length-1],this.heap.pop(),this.percDown(0),e}toArray(){return[...this]}*[Symbol.iterator](){for(let e=0;e<this.heap.length;e++)yield this.heap[e].data}remove(e){let n=0;for(let t=0;t<this.heap.length;t++)e(this.heap[t])||(this.heap[n]=this.heap[t],n++);this.heap.splice(n);for(let e=Zp(this.heap.length-1);e>=0;e--)this.percDown(e);return this}}function Zp(e){return(e+1>>1)-1}function Qp(e,n){return e.priority!==n.priority?e.priority<n.priority:e.pushCount<n.pushCount}function Yp(e,n){var t=Kp(e,n),{push:a,pushAsync:i}=t;function o(e,n){return Array.isArray(e)?e.map((e=>({data:e,priority:n}))):{data:e,priority:n}}return t._tasks=new Vp,t._createTaskItem=({data:e,priority:n},t)=>({data:e,priority:n,callback:t}),t.push=function(e,n=0,t){return a(o(e,n),t)},t.pushAsync=function(e,n=0,t){return i(o(e,n),t)},delete t.unshift,delete t.unshiftAsync,t}var Xp=Cc((function(e,n){if(n=Pc(n),!Array.isArray(e))return n(new TypeError("First argument to race must be an array of functions"));if(!e.length)return n();for(var t=0,a=e.length;t<a;t++)Oc(e[t])(n)}),2);function el(e,n,t,a){var i=[...e].reverse();return op(i,n,t,a)}function nl(e){var n=Oc(e);return hc((function(e,t){return e.push(((e,...n)=>{let a={};if(e&&(a.error=e),n.length>0){var i=n;n.length<=1&&([i]=n),a.value=i}t(null,a)})),n.apply(this,e)}))}function tl(e){var n;return Array.isArray(e)?n=e.map(nl):(n={},Object.keys(e).forEach((t=>{n[t]=nl.call(this,e[t])}))),n}function al(e,n,t,a){const i=Oc(t);return Tp(e,n,((e,n)=>{i(e,((e,t)=>{n(e,!t)}))}),a)}var il=Cc((function(e,n,t){return al(Rc,e,n,t)}),3);var ol=Cc((function(e,n,t,a){return al(Mc(n),e,t,a)}),4);var rl=Cc((function(e,n,t){return al(Uc,e,n,t)}),3);function sl(e){return function(){return e}}function cl(e,n,t){var a={times:5,intervalFunc:sl(0)};if(arguments.length<3&&"function"==typeof e?(t=n||Jc(),n=e):(!function(e,n){if("object"==typeof n)e.times=+n.times||5,e.intervalFunc="function"==typeof n.interval?n.interval:sl(+n.interval||0),e.errorFilter=n.errorFilter;else{if("number"!=typeof n&&"string"!=typeof n)throw new Error("Invalid arguments for async.retry");e.times=+n||5}}(a,e),t=t||Jc()),"function"!=typeof n)throw new Error("Invalid arguments for async.retry");var i=Oc(n),o=1;return function e(){i(((n,...i)=>{!1!==n&&(n&&o++<a.times&&("function"!=typeof a.errorFilter||a.errorFilter(n))?setTimeout(e,a.intervalFunc(o-1)):t(n,...i))}))}(),t[Hc]}function pl(e,n){n||(n=e,e=null);let t=e&&e.arity||n.length;jc(n)&&(t+=1);var a=Oc(n);return hc(((n,i)=>{function o(e){a(...n,e)}return(n.length<t-1||null==i)&&(n.push(i),i=Jc()),e?cl(e,o,i):cl(o,i),i[Hc]}))}function ll(e,n){return Gp(Uc,e,n)}var ul=Cc((function(e,n,t){return fp(Boolean,(e=>e))(Rc,e,n,t)}),3);var dl=Cc((function(e,n,t,a){return fp(Boolean,(e=>e))(Mc(n),e,t,a)}),4);var fl=Cc((function(e,n,t){return fp(Boolean,(e=>e))(Uc,e,n,t)}),3);var ml=Cc((function(e,n,t){var a=Oc(n);return zc(e,((e,n)=>{a(e,((t,a)=>{if(t)return n(t);n(t,{value:e,criteria:a})}))}),((e,n)=>{if(e)return t(e);t(null,n.sort(i).map((e=>e.value)))}));function i(e,n){var t=e.criteria,a=n.criteria;return t<a?-1:t>a?1:0}}),3);function hl(e,n,t){var a=Oc(e);return hc(((i,o)=>{var r,s=!1;i.push(((...e)=>{s||(o(...e),clearTimeout(r))})),r=setTimeout((function(){var n=e.name||"anonymous",a=new Error('Callback function "'+n+'" timed out.');a.code="ETIMEDOUT",t&&(a.info=t),s=!0,o(a)}),n),a(...i)}))}function vl(e,n,t,a){var i=Oc(t);return cp(function(e){for(var n=Array(e);e--;)n[e]=e;return n}(e),n,i,a)}function xl(e,n,t){return vl(e,1/0,n,t)}function bl(e,n,t){return vl(e,1,n,t)}function yl(e,n,t,a){arguments.length<=3&&"function"==typeof n&&(a=t,t=n,n=Array.isArray(e)?[]:{}),a=Pc(a||Jc());var i=Oc(t);return Rc(e,((e,t,a)=>{i(n,e,t,a)}),(e=>a(e,n))),a[Hc]}var gl=Cc((function(e,n){var t,a=null;return Ep(e,((e,n)=>{Oc(e)(((e,...i)=>{if(!1===e)return n(e);i.length<2?[t]=i:t=i,a=e,n(e?null:{})}))}),(()=>n(a,t)))}));function wl(e){return(...n)=>(e.unmemoized||e)(...n)}var Sl=Cc((function(e,n,t){t=Ic(t);var a=Oc(n),i=Oc(e),o=[];function r(e,...n){if(e)return t(e);o=n,!1!==e&&i(s)}function s(e,n){return e?t(e):!1!==e?n?void a(r):t(null,...o):void 0}return i(s)}),3);function kl(e,n,t){const a=Oc(e);return Sl((e=>a(((n,t)=>e(n,!t)))),n,t)}var El,jl,Ol,Cl=Cc((function(e,n){if(n=Pc(n),!Array.isArray(e))return n(new Error("First argument to waterfall must be an array of functions"));if(!e.length)return n();var t=0;function a(n){Oc(e[t++])(...n,Ic(i))}function i(i,...o){if(!1!==i)return i||t===e.length?n(i,...o):void a(o)}a([])})),_l={apply:mc,applyEach:$c,applyEachSeries:Gc,asyncify:Sc,auto:Kc,autoInject:Xc,cargo:ap,cargoQueue:ip,compose:sp,concat:lp,concatLimit:pp,concatSeries:up,constant:dp,detect:mp,detectLimit:hp,detectSeries:vp,dir:bp,doUntil:gp,doWhilst:yp,each:Sp,eachLimit:kp,eachOf:Rc,eachOfLimit:qc,eachOfSeries:Uc,eachSeries:Ep,ensureAsync:jp,every:Op,everyLimit:Cp,everySeries:_p,filter:Pp,filterLimit:Np,filterSeries:Ip,forever:Lp,groupBy:qp,groupByLimit:Mp,groupBySeries:Dp,log:Bp,map:zc,mapLimit:cp,mapSeries:Wc,mapValues:zp,mapValuesLimit:Rp,mapValuesSeries:$p,memoize:Up,nextTick:Wp,parallel:Hp,parallelLimit:Jp,priorityQueue:Yp,queue:Kp,race:Xp,reduce:op,reduceRight:el,reflect:nl,reflectAll:tl,reject:il,rejectLimit:ol,rejectSeries:rl,retry:cl,retryable:pl,seq:rp,series:ll,setImmediate:wc,some:ul,someLimit:dl,someSeries:fl,sortBy:ml,timeout:hl,times:xl,timesLimit:vl,timesSeries:bl,transform:yl,tryEach:gl,unmemoize:wl,until:kl,waterfall:Cl,whilst:Sl,all:Op,allLimit:Cp,allSeries:_p,any:ul,anyLimit:dl,anySeries:fl,find:mp,findLimit:hp,findSeries:vp,flatMap:lp,flatMapLimit:pp,flatMapSeries:up,forEach:Sp,forEachSeries:Ep,forEachLimit:kp,forEachOf:Rc,forEachOfSeries:Uc,forEachOfLimit:qc,inject:op,foldl:op,foldr:el,select:Pp,selectLimit:Np,selectSeries:Ip,wrapSync:Sc,during:Sl,doDuring:yp},Al=q(Object.freeze({__proto__:null,all:Op,allLimit:Cp,allSeries:_p,any:ul,anyLimit:dl,anySeries:fl,apply:mc,applyEach:$c,applyEachSeries:Gc,asyncify:Sc,auto:Kc,autoInject:Xc,cargo:ap,cargoQueue:ip,compose:sp,concat:lp,concatLimit:pp,concatSeries:up,constant:dp,default:_l,detect:mp,detectLimit:hp,detectSeries:vp,dir:bp,doDuring:yp,doUntil:gp,doWhilst:yp,during:Sl,each:Sp,eachLimit:kp,eachOf:Rc,eachOfLimit:qc,eachOfSeries:Uc,eachSeries:Ep,ensureAsync:jp,every:Op,everyLimit:Cp,everySeries:_p,filter:Pp,filterLimit:Np,filterSeries:Ip,find:mp,findLimit:hp,findSeries:vp,flatMap:lp,flatMapLimit:pp,flatMapSeries:up,foldl:op,foldr:el,forEach:Sp,forEachLimit:kp,forEachOf:Rc,forEachOfLimit:qc,forEachOfSeries:Uc,forEachSeries:Ep,forever:Lp,groupBy:qp,groupByLimit:Mp,groupBySeries:Dp,inject:op,log:Bp,map:zc,mapLimit:cp,mapSeries:Wc,mapValues:zp,mapValuesLimit:Rp,mapValuesSeries:$p,memoize:Up,nextTick:Wp,parallel:Hp,parallelLimit:Jp,priorityQueue:Yp,queue:Kp,race:Xp,reduce:op,reduceRight:el,reflect:nl,reflectAll:tl,reject:il,rejectLimit:ol,rejectSeries:rl,retry:cl,retryable:pl,select:Pp,selectLimit:Np,selectSeries:Ip,seq:rp,series:ll,setImmediate:wc,some:ul,someLimit:dl,someSeries:fl,sortBy:ml,timeout:hl,times:xl,timesLimit:vl,timesSeries:bl,transform:yl,tryEach:gl,unmemoize:wl,until:kl,waterfall:Cl,whilst:Sl,wrapSync:Sc})),Fl={exports:{}},Tl={exports:{}};function Pl(){if(jl)return El;return jl=1,El=function(e){function n(e){let a,i,o,r=null;function s(...e){if(!s.enabled)return;const t=s,i=Number(new Date),o=i-(a||i);t.diff=o,t.prev=a,t.curr=i,a=i,e[0]=n.coerce(e[0]),"string"!=typeof e[0]&&e.unshift("%O");let r=0;e[0]=e[0].replace(/%([a-zA-Z%])/g,((a,i)=>{if("%%"===a)return"%";r++;const o=n.formatters[i];if("function"==typeof o){const n=e[r];a=o.call(t,n),e.splice(r,1),r--}return a})),n.formatArgs.call(t,e);(t.log||n.log).apply(t,e)}return s.namespace=e,s.useColors=n.useColors(),s.color=n.selectColor(e),s.extend=t,s.destroy=n.destroy,Object.defineProperty(s,"enabled",{enumerable:!0,configurable:!1,get:()=>null!==r?r:(i!==n.namespaces&&(i=n.namespaces,o=n.enabled(e)),o),set:e=>{r=e}}),"function"==typeof n.init&&n.init(s),s}function t(e,t){const a=n(this.namespace+(void 0===t?":":t)+e);return a.log=this.log,a}function a(e,n){let t=0,a=0,i=-1,o=0;for(;t<e.length;)if(a<n.length&&(n[a]===e[t]||"*"===n[a]))"*"===n[a]?(i=a,o=t,a++):(t++,a++);else{if(-1===i)return!1;a=i+1,o++,t=o}for(;a<n.length&&"*"===n[a];)a++;return a===n.length}return n.debug=n,n.default=n,n.coerce=function(e){if(e instanceof Error)return e.stack||e.message;return e},n.disable=function(){const e=[...n.names,...n.skips.map((e=>"-"+e))].join(",");return n.enable(""),e},n.enable=function(e){n.save(e),n.namespaces=e,n.names=[],n.skips=[];const t=("string"==typeof e?e:"").trim().replace(" ",",").split(",").filter(Boolean);for(const e of t)"-"===e[0]?n.skips.push(e.slice(1)):n.names.push(e)},n.enabled=function(e){for(const t of n.skips)if(a(e,t))return!1;for(const t of n.names)if(a(e,t))return!0;return!1},n.humanize=G(),n.destroy=function(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")},Object.keys(e).forEach((t=>{n[t]=e[t]})),n.names=[],n.skips=[],n.formatters={},n.selectColor=function(e){let t=0;for(let n=0;n<e.length;n++)t=(t<<5)-t+e.charCodeAt(n),t|=0;return n.colors[Math.abs(t)%n.colors.length]},n.enable(n.load()),n},El}var Nl,Il,Ll,Ml={exports:{}};function ql(){return Nl||(Nl=1,function(e,n){const t=a,o=i;n.init=function(e){e.inspectOpts={};const t=Object.keys(n.inspectOpts);for(let a=0;a<t.length;a++)e.inspectOpts[t[a]]=n.inspectOpts[t[a]]},n.log=function(...e){return process.stderr.write(o.formatWithOptions(n.inspectOpts,...e)+"\n")},n.formatArgs=function(t){const{namespace:a,useColors:i}=this;if(i){const n=this.color,i="[3"+(n<8?n:"8;5;"+n),o=` ${i};1m${a} [0m`;t[0]=o+t[0].split("\n").join("\n"+o),t.push(i+"m+"+e.exports.humanize(this.diff)+"[0m")}else t[0]=function(){if(n.inspectOpts.hideDate)return"";return(new Date).toISOString()+" "}()+a+" "+t[0]},n.save=function(e){e?process.env.DEBUG=e:delete process.env.DEBUG},n.load=function(){return process.env.DEBUG},n.useColors=function(){return"colors"in n.inspectOpts?Boolean(n.inspectOpts.colors):t.isatty(process.stderr.fd)},n.destroy=o.deprecate((()=>{}),"Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."),n.colors=[6,2,3,4,5,1];try{const e=require("supports-color");e&&(e.stderr||e).level>=2&&(n.colors=[20,21,26,27,32,33,38,39,40,41,42,43,44,45,56,57,62,63,68,69,74,75,76,77,78,79,80,81,92,93,98,99,112,113,128,129,134,135,148,149,160,161,162,163,164,165,166,167,168,169,170,171,172,173,178,179,184,185,196,197,198,199,200,201,202,203,204,205,206,207,208,209,214,215,220,221])}catch(e){}n.inspectOpts=Object.keys(process.env).filter((e=>/^debug_/i.test(e))).reduce(((e,n)=>{const t=n.substring(6).toLowerCase().replace(/_([a-z])/g,((e,n)=>n.toUpperCase()));let a=process.env[n];return a=!!/^(yes|on|true|enabled)$/i.test(a)||!/^(no|off|false|disabled)$/i.test(a)&&("null"===a?null:Number(a)),e[t]=a,e}),{}),e.exports=Pl()(n);const{formatters:r}=e.exports;r.o=function(e){return this.inspectOpts.colors=this.useColors,o.inspect(e,this.inspectOpts).split("\n").map((e=>e.trim())).join(" ")},r.O=function(e){return this.inspectOpts.colors=this.useColors,o.inspect(e,this.inspectOpts)}}(Ml,Ml.exports)),Ml.exports}function Dl(){return Il||(Il=1,"undefined"==typeof process||"renderer"===process.type||!0===process.browser||process.__nwjs?Fl.exports=(Ol||(Ol=1,function(e,n){n.formatArgs=function(n){if(n[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+n[0]+(this.useColors?"%c ":" ")+"+"+e.exports.humanize(this.diff),!this.useColors)return;const t="color: "+this.color;n.splice(1,0,t,"color: inherit");let a=0,i=0;n[0].replace(/%[a-zA-Z%]/g,(e=>{"%%"!==e&&(a++,"%c"===e&&(i=a))})),n.splice(i,0,t)},n.save=function(e){try{e?n.storage.setItem("debug",e):n.storage.removeItem("debug")}catch(e){}},n.load=function(){let e;try{e=n.storage.getItem("debug")}catch(e){}return!e&&"undefined"!=typeof process&&"env"in process&&(e=process.env.DEBUG),e},n.useColors=function(){if("undefined"!=typeof window&&window.process&&("renderer"===window.process.type||window.process.__nwjs))return!0;if("undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))return!1;let e;return"undefined"!=typeof document&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||"undefined"!=typeof window&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||"undefined"!=typeof navigator&&navigator.userAgent&&(e=navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/))&&parseInt(e[1],10)>=31||"undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)},n.storage=function(){try{return localStorage}catch(e){}}(),n.destroy=(()=>{let e=!1;return()=>{e||(e=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})(),n.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"],n.log=console.debug||console.log||(()=>{}),e.exports=Pl()(n);const{formatters:t}=e.exports;t.j=function(e){try{return JSON.stringify(e)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}}}(Tl,Tl.exports)),Tl.exports):Fl.exports=ql()),Fl.exports}var Bl=(Ll||(Ll=1,function(e){const a=n,i=o,r=u,s=t,c=Al,p=Dl(),l=p("portfinder:testPort"),d=p("portfinder:getPort"),f=p("portfinder:defaultHosts"),m={testPort:function(n,t){function a(){l("done w/ testPort(): OK",n.host,"port",n.port),n.server.removeListener("error",i),n.server.close((function(){l("done w/ testPort(): Server closed",n.host,"port",n.port),t(null,n.port)}))}function i(i){if(l("done w/ testPort(): failed",n.host,"w/ port",n.port,"with error",i.code),n.server.removeListener("listening",a),"EADDRINUSE"!=i.code&&"EACCES"!=i.code)return t(i);const o=e.nextPort(n.port);if(o>e.highestPort)return t(new Error("No open ports available"));m.testPort({port:o,host:n.host,server:n.server},t)}t||(t=n,n={}),n.server=n.server||r.createServer((function(){})),l("entered testPort(): trying",n.host,"port",n.port),n.server.once("error",i),n.server.once("listening",a),n.host?n.server.listen(n.port,n.host):n.server.listen(n.port)}};e.basePort=8e3,e.setBasePort=function(n){e.basePort=n},e.highestPort=65535,e.setHighestPort=function(n){e.highestPort=n},e.basePath="/tmp/portfinder",e.setBasePath=function(n){e.basePath=n},m.getPort=function(n,t){if(n.port=Number(n.port)||Number(n.startPort)||Number(e.basePort),n.host=n.host||null,n.stopPort=Number(n.stopPort)||Number(e.highestPort),!n.startPort){if(n.startPort=n.port,n.startPort<0)return t(Error(`Provided options.port(${n.port}) is less than 0, which are cannot be bound.`));if(n.stopPort<n.startPort)return t(Error(`Provided options.stopPort(${n.stopPort}) is less than options.port(${n.startPort})`))}n.host&&-1===e._defaultHosts.indexOf(n.host)&&e._defaultHosts.push(n.host);const a=[];let i;return c.eachSeries(e._defaultHosts,(function(e,t){return d("in eachSeries() iteration callback: host is",e),m.testPort({host:e,port:n.port},(function(n,o){return n?(d("in eachSeries() iteration callback testPort() callback","with an err:",n.code),i=e,t(n)):(d("in eachSeries() iteration callback testPort() callback","with a success for port",o),a.push(o),t())}))}),(function(o){if(o){if(d("in eachSeries() result callback: err is",o),"EADDRNOTAVAIL"===o.code||"EINVAL"===o.code){if(n.host===i){const e="Provided host "+n.host+" could NOT be bound. Please provide a different host address or hostname";return t(Error(e))}{const a=e._defaultHosts.indexOf(i);return e._defaultHosts.splice(a,1),m.getPort(n,t)}}return t(o)}if(a.sort((function(e,n){return e-n})),d("in eachSeries() result callback: openPorts is",a),a[0]===a[a.length-1]){if(a[0]<=n.stopPort)return t(null,a[0]);{const e="No open ports found in between "+n.startPort+" and "+n.stopPort;return t(Error(e))}}return m.getPort({port:a.pop(),host:n.host,startPort:n.startPort,stopPort:n.stopPort},t)}))},e.getPort=function(e,n){if("function"==typeof e&&(n=e,e={}),e=e||{},!n)return new Promise((function(n,t){m.getPort(e,(function(e,a){if(e)return t(e);n(a)}))}));m.getPort(e,n)},e.getPortPromise=e.getPort,m.getPorts=function(n,t,a){let i=null;c.timesSeries(n,(function(n,a){i&&(t.port=e.nextPort(i)),m.getPort(t,(function(e,n){e?a(e):(i=n,a(null,n))}))}),a)},e.getPorts=function(e,n,t){if("function"==typeof n&&(t=n,n={}),n=n||{},!t)return new Promise((function(t,a){m.getPorts(e,n,(function(e,n){if(e)return a(e);t(n)}))}));m.getPorts(e,n,t)},e.getPortsPromise=e.getPorts,m.getSocket=function(n,t){function i(){a.stat(n.path,(function(a){a?"ENOENT"==a.code?t(null,n.path):t(a):(n.path=e.nextSocket(n.path),m.getSocket(n,t))}))}return n.mod=n.mod||parseInt(755,8),n.path=n.path||e.basePath+".sock",n.exists?i():function(){const e=s.dirname(n.path);a.stat(e,(function(o,r){if(o||!r.isDirectory())return function(e){a.mkdir(e,{mode:n.mod,recursive:!0},(function(e){if(e)return t(e);n.exists=!0,i()}))}(e);n.exists=!0,i()}))}()},e.getSocket=function(e,n){if("function"==typeof e&&(n=e,e={}),e=e||{},!n)return new Promise((function(n,t){m.getSocket(e,(function(e,a){if(e)return t(e);n(a)}))}));m.getSocket(e,n)},e.getSocketPromise=e.getSocket,e.nextPort=function(e){return e+1},e.nextSocket=function(e){const n=s.dirname(e),t=s.basename(e,".sock").match(/^([a-zA-z]+)(\d*)$/i),a=t[1];let i=parseInt(t[2]);return isNaN(i)&&(i=0),i+=1,s.join(n,a+i+".sock")},e._defaultHosts=function(){let e={};try{e=i.networkInterfaces()}catch(e){if("uv_interface_addresses"!==e.syscall)throw e}const n=Object.keys(e),t=["0.0.0.0"];for(let a=0;a<n.length;a++){const i=e[n[a]];for(let e=0;e<i.length;e++){const n=i[e];t.push(n.address)}}return t.push(null),f("exports._defaultHosts is: %o",t),t}()}(fc)),fc),Rl=M(Bl);const zl=f.prototype.listen,$l=e=>{const n=e.address();if(n){((e,n)=>{const t=null!==n?`http://${e}:${n}`:e;console.log(`app listen ${t}`)})("object"==typeof n?(e=>"::"===e?"0.0.0.0":e)(n.address):n,"object"==typeof n?n.port:null)}},Ul=(e,n,t,a)=>{const{pathPrefix:i,moduleName:o,name:r}=P(n,"controller"),s=`${i}/${o}`;if(!t)return;const c=F(`${e}${`${i}/${r}`}`);t.forEach((e=>{const{method:n,path:t,handler:o,functionName:r,authRequired:p,middlewares:l}=e;var u;c&&"function"==typeof c[r]&&l.push((u=c[r].bind(c),async(e,n)=>{const t=u(e);t instanceof Promise&&await t,await n()}));const d=(f=p,m=o,async(e,n)=>{let t=a(f,e);return t instanceof Promise&&(t=await t),t?m(e,n):e.throw(403,"无权限")});var f,m;const h=[...l,d],v=Wl(t,s,r,h,n);e.path=v,e.apiPrePath=i}))},Wl=(e,n,t,a,i)=>{const o=`${n}${e}`;if(t===y){const e=`${n}/index`;La[i](e,...a)}return La[i](o,...a),o};var Gl=function(e){var n=Object.prototype.hasOwnProperty;function t(e,a){return Array.isArray(e)?function(e,n){for(var a,i="",o="",s=Array.isArray(n),c=0;c<e.length;c++)(a=t(e[c]))&&(s&&n[c]&&(a=r(a)),i=i+o+a,o=" ");return i}(e,a):e&&"object"==typeof e?function(e){var t="",a="";for(var i in e)i&&e[i]&&n.call(e,i)&&(t=t+a+i,a=" ");return t}(e):e||""}function a(e){if(!e)return"";if("object"==typeof e){var t="";for(var a in e)n.call(e,a)&&(t=t+a+":"+e[a]+";");return t}return e+""}function i(e,n,t,a){return!1!==n&&null!=n&&(n||"class"!==e&&"style"!==e)?!0===n?" "+(a?e:e+'="'+e+'"'):("function"==typeof n.toJSON&&(n=n.toJSON()),"string"==typeof n||(n=JSON.stringify(n),t||-1===n.indexOf('"'))?(t&&(n=r(n))," "+e+'="'+n+'"'):" "+e+"='"+n.replace(/'/g,"'")+"'"):""}e.merge=function e(n,t){if(1===arguments.length){for(var i=n[0],o=1;o<n.length;o++)i=e(i,n[o]);return i}for(var r in t)if("class"===r){var s=n[r]||[];n[r]=(Array.isArray(s)?s:[s]).concat(t[r]||[])}else if("style"===r){s=(s=a(n[r]))&&";"!==s[s.length-1]?s+";":s;var c=a(t[r]);c=c&&";"!==c[c.length-1]?c+";":c,n[r]=s+c}else n[r]=t[r];return n},e.classes=t,e.style=a,e.attr=i,e.attrs=function(e,o){var r="";for(var s in e)if(n.call(e,s)){var c=e[s];if("class"===s){r=i(s,c=t(c),!1,o)+r;continue}"style"===s&&(c=a(c)),r+=i(s,c,!1,o)}return r};var o=/["&<>]/;function r(e){var n=""+e,t=o.exec(n);if(!t)return e;var a,i,r,s="";for(a=t.index,i=0;a<n.length;a++){switch(n.charCodeAt(a)){case 34:r=""";break;case 38:r="&";break;case 60:r="<";break;case 62:r=">";break;default:continue}i!==a&&(s+=n.substring(i,a)),i=a+1,s+=r}return i!==a?s+n.substring(i,a):s}return e.escape=r,e.rethrow=function e(n,t,a,i){if(!(n instanceof Error))throw n;if(!("undefined"==typeof window&&t||i))throw n.message+=" on line "+a,n;try{i=i||require("fs").readFileSync(t,"utf8")}catch(t){e(n,null,a)}var o=3,r=i.split("\n"),s=Math.max(a-o,0),c=Math.min(r.length,a+o);o=r.slice(s,c).map((function(e,n){var t=n+s+1;return(t==a?" > ":" ")+t+"| "+e})).join("\n");throw n.path=t,n.message=(t||"Pug")+":"+a+"\n"+o+"\n\n"+n.message,n},e}({});function Hl(e){var n,t,a="";try{var i={},o=e||{};(function(e,t){a+="<!DOCTYPE html>",a+="\n<html>",a+="\n <head>",a+="\n <title>",a+="API Documentation</title>",a+="\n <style>\n ",a+="body { font-family: Arial, sans-serif; margin: 20px; }",a+="\n ",a+="",a+="\n ",a+="h1 { color: #333; text-align: center; }",a+="\n ",a+="h2 { color: #333333 }",a+="\n ",a+="h3 { cursor: pointer; transition: color 0.3s; }",a+="\n ",a+="h3 { color: #007BFF; }",a+="\n ",a+="h3:hover { color: #0056b3; }",a+="\n ",a+="",a+="\n ",a+=".api-section { ",a+="\n ",a+=" margin: 20px 0; ",a+="\n ",a+=" border: 1px solid #e0e0e0; ",a+="\n ",a+=" border-radius: 8px; ",a+="\n ",a+=" padding: 10px; ",a+="\n ",a+=" background-color: #f9f9f9; ",a+="\n ",a+=" box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.1); ",a+="\n ",a+="}",a+="\n ",a+="",a+="\n ",a+=".api-method { font-weight: bold; color: #333; }",a+="\n ",a+=".api-path { font-style: italic; color: #555; }",a+="\n ",a+="",a+="\n ",a+="pre { ",a+="\n ",a+=" background: #f4f4f4; ",a+="\n ",a+=" padding: 10px; ",a+="\n ",a+=" border-radius: 5px; ",a+="\n ",a+=" overflow-x: auto; ",a+="\n ",a+="}",a+="\n ",a+="",a+="\n ",a+=".collapse { display: none; }",a+="\n ",a+="\n </style>\n </head>",a+="\n <body>",a+="\n <h1>",a+="API Documentation</h1>",a+="\n \x3c!-- 添加 JavaScript 用于折叠 Sections--\x3e",a+="\n <script>\n ",a+="document.addEventListener('DOMContentLoaded', function() {",a+="\n ",a+=" const headings = document.querySelectorAll('.toggle');",a+="\n ",a+=" headings.forEach(heading => {",a+="\n ",a+=" heading.addEventListener('click', function() {",a+="\n ",a+=" // 找到 h3 后面的 collapse 元素",a+="\n ",a+=" let content = heading.nextElementSibling;",a+="\n ",a+=" if(!(content && content.classList.contains('collapse'))) {",a+="\n ",a+=" content = content.nextElementSibling;",a+="\n ",a+=" }",a+="\n ",a+=" if (content && content.classList.contains('collapse')) {",a+="\n ",a+=' content.style.display = (content.style.display === "block") ? "none" : "block";',a+="\n ",a+=" }",a+="\n ",a+=" });",a+="\n ",a+=" });",a+="\n ",a+="});",a+="\n ",a+="\n <\/script>",function(){var i=t;if("number"==typeof i.length)for(var o=0,r=i.length;o<r;o++){var s=i[o];a=(a+="\n <h2>")+Gl.escape(null==(n=s[0])?"":n)+"</h2>",function(){var t=s[1];if("number"==typeof t.length)for(var i=0,o=t.length;i<o;i++){var r=t[i];a+='\n <div class="api-section">',a=(a+='\n <h3 class="toggle">')+Gl.escape(null==(n=r.name)?"":n)+"</h3>",r.desc&&(a=(a+="\n <p>")+Gl.escape(null==(n=r.desc)?"":n)+"</p>"),a+='\n <div class="collapse">',function(){var t=r.configs;if("number"==typeof t.length)for(var i=0,o=t.length;i<o;i++){var s=t[i];a=(a+='\n <h4 class="api-method">')+Gl.escape(null==(n=s.method.toUpperCase()+" "+s.path)?"":n)+"</h4>",s.description&&(a=(a+="\n <h5>")+Gl.escape(null==(n=s.description)?"":n)+"</h5>"),a+="\n <pre>",a+="Request Header:</pre>",a=(a+="\n <pre>")+Gl.escape(null==(n=e.stringify(s.request.header,null,2))?"":n)+"</pre>",a+="\n <pre>",a+="Request Body:</pre>",a=(a+="\n <pre>")+Gl.escape(null==(n=e.stringify(s.request.body,null,2))?"":n)+"</pre>",a+="\n <pre>",a+="Request Query:</pre>",a=(a+="\n <pre>")+Gl.escape(null==(n=e.stringify(s.request.query,null,2))?"":n)+"</pre>",a+="\n <pre>",a+="Response Body:</pre>",a=(a+="\n <pre>")+Gl.escape(null==(n=e.stringify(s.response.body,null,2))?"":n)+"</pre>"}else{o=0;for(var i in t){o++;s=t[i];a=(a+='\n <h4 class="api-method">')+Gl.escape(null==(n=s.method.toUpperCase()+" "+s.path)?"":n)+"</h4>",s.description&&(a=(a+="\n <h5>")+Gl.escape(null==(n=s.description)?"":n)+"</h5>"),a+="\n <pre>",a+="Request Header:</pre>",a=(a+="\n <pre>")+Gl.escape(null==(n=e.stringify(s.request.header,null,2))?"":n)+"</pre>",a+="\n <pre>",a+="Request Body:</pre>",a=(a+="\n <pre>")+Gl.escape(null==(n=e.stringify(s.request.body,null,2))?"":n)+"</pre>",a+="\n <pre>",a+="Request Query:</pre>",a=(a+="\n <pre>")+Gl.escape(null==(n=e.stringify(s.request.query,null,2))?"":n)+"</pre>",a+="\n <pre>",a+="Response Body:</pre>",a=(a+="\n <pre>")+Gl.escape(null==(n=e.stringify(s.response.body,null,2))?"":n)+"</pre>"}}}.call(this),a+="\n </div>\n </div>"}else{o=0;for(var i in t){o++;r=t[i];a+='\n <div class="api-section">',a=(a+='\n <h3 class="toggle">')+Gl.escape(null==(n=r.name)?"":n)+"</h3>",r.desc&&(a=(a+="\n <p>")+Gl.escape(null==(n=r.desc)?"":n)+"</p>"),a+='\n <div class="collapse">',function(){var t=r.configs;if("number"==typeof t.length)for(var i=0,o=t.length;i<o;i++){var s=t[i];a=(a+='\n <h4 class="api-method">')+Gl.escape(null==(n=s.method.toUpperCase()+" "+s.path)?"":n)+"</h4>",s.description&&(a=(a+="\n <h5>")+Gl.escape(null==(n=s.description)?"":n)+"</h5>"),a+="\n <pre>",a+="Request Header:</pre>",a=(a+="\n <pre>")+Gl.escape(null==(n=e.stringify(s.request.header,null,2))?"":n)+"</pre>",a+="\n <pre>",a+="Request Body:</pre>",a=(a+="\n <pre>")+Gl.escape(null==(n=e.stringify(s.request.body,null,2))?"":n)+"</pre>",a+="\n <pre>",a+="Request Query:</pre>",a=(a+="\n <pre>")+Gl.escape(null==(n=e.stringify(s.request.query,null,2))?"":n)+"</pre>",a+="\n <pre>",a+="Response Body:</pre>",a=(a+="\n <pre>")+Gl.escape(null==(n=e.stringify(s.response.body,null,2))?"":n)+"</pre>"}else{o=0;for(var i in t){o++;s=t[i];a=(a+='\n <h4 class="api-method">')+Gl.escape(null==(n=s.method.toUpperCase()+" "+s.path)?"":n)+"</h4>",s.description&&(a=(a+="\n <h5>")+Gl.escape(null==(n=s.description)?"":n)+"</h5>"),a+="\n <pre>",a+="Request Header:</pre>",a=(a+="\n <pre>")+Gl.escape(null==(n=e.stringify(s.request.header,null,2))?"":n)+"</pre>",a+="\n <pre>",a+="Request Body:</pre>",a=(a+="\n <pre>")+Gl.escape(null==(n=e.stringify(s.request.body,null,2))?"":n)+"</pre>",a+="\n <pre>",a+="Request Query:</pre>",a=(a+="\n <pre>")+Gl.escape(null==(n=e.stringify(s.request.query,null,2))?"":n)+"</pre>",a+="\n <pre>",a+="Response Body:</pre>",a=(a+="\n <pre>")+Gl.escape(null==(n=e.stringify(s.response.body,null,2))?"":n)+"</pre>"}}}.call(this),a+="\n </div>\n </div>"}}}.call(this)}else{r=0;for(var o in i){r++;s=i[o];a=(a+="\n <h2>")+Gl.escape(null==(n=s[0])?"":n)+"</h2>",function(){var t=s[1];if("number"==typeof t.length)for(var i=0,o=t.length;i<o;i++){var r=t[i];a+='\n <div class="api-section">',a=(a+='\n <h3 class="toggle">')+Gl.escape(null==(n=r.name)?"":n)+"</h3>",r.desc&&(a=(a+="\n <p>")+Gl.escape(null==(n=r.desc)?"":n)+"</p>"),a+='\n <div class="collapse">',function(){var t=r.configs;if("number"==typeof t.length)for(var i=0,o=t.length;i<o;i++){var s=t[i];a=(a+='\n <h4 class="api-method">')+Gl.escape(null==(n=s.method.toUpperCase()+" "+s.path)?"":n)+"</h4>",s.description&&(a=(a+="\n <h5>")+Gl.escape(null==(n=s.description)?"":n)+"</h5>"),a+="\n <pre>",a+="Request Header:</pre>",a=(a+="\n <pre>")+Gl.escape(null==(n=e.stringify(s.request.header,null,2))?"":n)+"</pre>",a+="\n <pre>",a+="Request Body:</pre>",a=(a+="\n <pre>")+Gl.escape(null==(n=e.stringify(s.request.body,null,2))?"":n)+"</pre>",a+="\n <pre>",a+="Request Query:</pre>",a=(a+="\n <pre>")+Gl.escape(null==(n=e.stringify(s.request.query,null,2))?"":n)+"</pre>",a+="\n <pre>",a+="Response Body:</pre>",a=(a+="\n <pre>")+Gl.escape(null==(n=e.stringify(s.response.body,null,2))?"":n)+"</pre>"}else{o=0;for(var i in t){o++;s=t[i];a=(a+='\n <h4 class="api-method">')+Gl.escape(null==(n=s.method.toUpperCase()+" "+s.path)?"":n)+"</h4>",s.description&&(a=(a+="\n <h5>")+Gl.escape(null==(n=s.description)?"":n)+"</h5>"),a+="\n <pre>",a+="Request Header:</pre>",a=(a+="\n <pre>")+Gl.escape(null==(n=e.stringify(s.request.header,null,2))?"":n)+"</pre>",a+="\n <pre>",a+="Request Body:</pre>",a=(a+="\n <pre>")+Gl.escape(null==(n=e.stringify(s.request.body,null,2))?"":n)+"</pre>",a+="\n <pre>",a+="Request Query:</pre>",a=(a+="\n <pre>")+Gl.escape(null==(n=e.stringify(s.request.query,null,2))?"":n)+"</pre>",a+="\n <pre>",a+="Response Body:</pre>",a=(a+="\n <pre>")+Gl.escape(null==(n=e.stringify(s.response.body,null,2))?"":n)+"</pre>"}}}.call(this),a+="\n </div>\n </div>"}else{o=0;for(var i in t){o++;r=t[i];a+='\n <div class="api-section">',a=(a+='\n <h3 class="toggle">')+Gl.escape(null==(n=r.name)?"":n)+"</h3>",r.desc&&(a=(a+="\n <p>")+Gl.escape(null==(n=r.desc)?"":n)+"</p>"),a+='\n <div class="collapse">',function(){var t=r.configs;if("number"==typeof t.length)for(var i=0,o=t.length;i<o;i++){var s=t[i];a=(a+='\n <h4 class="api-method">')+Gl.escape(null==(n=s.method.toUpperCase()+" "+s.path)?"":n)+"</h4>",s.description&&(a=(a+="\n <h5>")+Gl.escape(null==(n=s.description)?"":n)+"</h5>"),a+="\n <pre>",a+="Request Header:</pre>",a=(a+="\n <pre>")+Gl.escape(null==(n=e.stringify(s.request.header,null,2))?"":n)+"</pre>",a+="\n <pre>",a+="Request Body:</pre>",a=(a+="\n <pre>")+Gl.escape(null==(n=e.stringify(s.request.body,null,2))?"":n)+"</pre>",a+="\n <pre>",a+="Request Query:</pre>",a=(a+="\n <pre>")+Gl.escape(null==(n=e.stringify(s.request.query,null,2))?"":n)+"</pre>",a+="\n <pre>",a+="Response Body:</pre>",a=(a+="\n <pre>")+Gl.escape(null==(n=e.stringify(s.response.body,null,2))?"":n)+"</pre>"}else{o=0;for(var i in t){o++;s=t[i];a=(a+='\n <h4 class="api-method">')+Gl.escape(null==(n=s.method.toUpperCase()+" "+s.path)?"":n)+"</h4>",s.description&&(a=(a+="\n <h5>")+Gl.escape(null==(n=s.description)?"":n)+"</h5>"),a+="\n <pre>",a+="Request Header:</pre>",a=(a+="\n <pre>")+Gl.escape(null==(n=e.stringify(s.request.header,null,2))?"":n)+"</pre>",a+="\n <pre>",a+="Request Body:</pre>",a=(a+="\n <pre>")+Gl.escape(null==(n=e.stringify(s.request.body,null,2))?"":n)+"</pre>",a+="\n <pre>",a+="Request Query:</pre>",a=(a+="\n <pre>")+Gl.escape(null==(n=e.stringify(s.request.query,null,2))?"":n)+"</pre>",a+="\n <pre>",a+="Response Body:</pre>",a=(a+="\n <pre>")+Gl.escape(null==(n=e.stringify(s.response.body,null,2))?"":n)+"</pre>"}}}.call(this),a+="\n </div>\n </div>"}}}.call(this)}}}.call(this),a+="\n </body>\n</html>"}).call(this,"JSON"in o?o.JSON:"undefined"!=typeof JSON?JSON:void 0,"apiData"in o?o.apiData:"undefined"!=typeof apiData?apiData:void 0)}catch(e){Gl.rethrow(e,t,undefined,i[void 0])}return a}const Jl={DOCUMENTATION_DIR:t.join(process.cwd(),"doc")},Kl=(e,n)=>{const t=F(e.wholePath),a=t.prototype,i=Object.getOwnPropertyNames(a).filter((e=>"function"==typeof a[e]&&"constructor"!==e)),o=e.path.substring(e.path.indexOf("doc")+3),r=i.map((e=>{if("function"==typeof a[e]){const n=a[e]();return n.path=o+n.path,n}return null})).filter((e=>!!e));let s="";if(r[0]?.path){const e=r[0].path.lastIndexOf("/");e>-1&&(s=r[0].path.substring(0,e))}return{configs:r,desc:t.desc,name:t.name,pathPrefix:n,apiPrePath:s}},Vl=async(e,n)=>{e.extra={get:e.query,post:e.request.body??{}},await n()};(()=>{const e=process.env.NODE_ENV||"production",a=_();let i=t.resolve(a,"env");switch(function(e){try{return n.statSync(e).isDirectory()}catch(e){return e.code,!1}}(i)||(i=t.resolve(a,"..","env")),console.log("load env path: ",i),v.config({path:t.resolve(i,".common.env")}),e){case"development":v.config({path:t.resolve(i,".development.env")});break;case"test":v.config({path:t.resolve(i,".test.env")});break;case"production":v.config({path:t.resolve(i,".production.env")})}})(),global.isDev="development"===process.env.NODE_ENV;exports.AuthRouter=function(e,n){return S(e,n,!0)},exports.BaseException=C,exports.INDEX_ROUTE=y,exports.Router=function(e,n){return S(e,n)},exports.contextStore=k,exports.errorRsp=O,exports.getCurrentContext=E,exports.getSrcModulePaths=A,exports.initializeKoaApp=async e=>{const{koaInstance:n,authCheckCallback:t,catchErrorCallback:a,registerHighPriorityMiddleware:i,registerHook:o,log4:r=!1,runtimeLog:s=!0}=e,c=n||new f;var p;return c.context.log4=(e=>{if(!1!==e)return"boolean"==typeof e&&!0===e?Na():e(Ta)})(r),c.context.hook=o,c.context.runtimeLog=s,c.use(I),c.use((p=a,async(e,n)=>{try{await n()}catch(n){e.hook?.(e,"error"),p?p(n,e):O(500,{message:n.message})}})),i?.(c),c.use(Ia),e.corsMiddleware&&c.use(e.corsMiddleware),c.use(dc()),c.use(Vl),(e=>{const{controllerModule:n,validateModule:t}=A();console.log("load controller path: ",n),T(n,(n=>{if(!n.path.includes("controller"))return;const a=F(n.wholePath),i=a?.routesMap;i&&Ul(t,n,i,((t,a)=>!t||e({filePath:n,ctx:a})))}))})(t),c.context.validated={params:{},get:{},post:{}},"development"!==process.env.NODE_ENV&&"true"!==process.env.DOC||La.get("/doc",(async e=>{const n=await(async()=>{const e=[],n=new Map;return T(Jl.DOCUMENTATION_DIR,(n=>{const{pathPrefix:t}=P(n,"doc");e.push(Kl(n,t))})),e.forEach((e=>{n.has(e.pathPrefix)||n.set(e.pathPrefix,[]),n.get(e.pathPrefix)?.push(e)})),Hl({apiData:Array.from(n.entries())})})();e.body=n})),La.get("/",(async e=>{e.body={code:200,message:"hello koa-ts-cli https://www.npmjs.com/package/koa-ts-core"}})),c.use(La.routes()),await(async e=>{const n=process.env.APP_PORT;if(n){const t=e.listen(Number(n));return void t.on("listening",(()=>$l(t)))}const t=await Rl.getPortPromise({port:8e3,stopPort:9999});e.listen=(...n)=>{const a=0===n.length?zl.apply(e,[t]):zl.apply(e,n);return a.on("listening",(()=>$l(a))),a}})(c),[c,La]},exports.successRsp=e=>{const n=Array.isArray(e?.data);j({success:!0,message:e?.message,data:n?{list:e?.data}:e?.data})},exports.unSuccessRsp=e=>{j({success:!1,errorCode:e?.code,errorMessage:e?.message,data:e?.data})};
|
package/dist/index.esm.js
CHANGED
|
@@ -36,4 +36,4 @@ import{AsyncLocalStorage as e}from"async_hooks";import n,{statSync as t,readdirS
|
|
|
36
36
|
* copy-to - index.js
|
|
37
37
|
* Copyright(c) 2014 dead_horse <dead_horse@qq.com>
|
|
38
38
|
* MIT Licensed
|
|
39
|
-
*/var gc=function(){if(Es)return ks;Es=1;const e=yc(),n=function(){if(Ss)return ws;Ss=1;var e=Array.prototype.slice;function n(e,t){if(!(this instanceof n))return new n(e,t);this.src=e,this._withAccess=t}function t(e,n){return void 0===e[n]&&void 0===e.__lookupGetter__(n)&&void 0===e.__lookupSetter__(n)}return ws=n,n.prototype.withAccess=function(e){return this._withAccess=!1!==e,this},n.prototype.pick=function(n){return Array.isArray(n)||(n=e.call(arguments)),n.length&&(this.keys=n),this},n.prototype.to=function(e){if(e=e||{},!this.src)return e;var n=this.keys||Object.keys(this.src);if(!this._withAccess){for(var a=0;a<n.length;a++)void 0===e[i=n[a]]&&(e[i]=this.src[i]);return e}for(a=0;a<n.length;a++){var i=n[a];if(t(e,i)){var o=this.src.__lookupGetter__(i),r=this.src.__lookupSetter__(i);o&&e.__defineGetter__(i,o),r&&e.__defineSetter__(i,r),o||r||(e[i]=this.src[i])}}return e},n.prototype.toCover=function(e){for(var n=this.keys||Object.keys(this.src),t=0;t<n.length;t++){var a=n[t];delete e[a];var i=this.src.__lookupGetter__(a),o=this.src.__lookupSetter__(a);i&&e.__defineGetter__(a,i),o&&e.__defineSetter__(a,o),i||o||(e[a]=this.src[a])}},n.prototype.override=n.prototype.toCover,n.prototype.and=function(e){var n={};return this.to(n),this.src=e,this.to(n),this.src=n,this},ws}(),t=ai();function a(e,t){const a={};return n(e).to(a),a.limit=e[t+"Limit"],a}function i(e,n){n&&(Array.isArray(n)||(n=[n]),n.forEach((function(n){e.push(n)})))}function o(e,n){return e.includes(n)}return ks=function(n){n=n||{};const{detectJSON:r}=n,{onerror:s}=n,c=n.enableTypes||["json","form"],p=o(c,"form"),l=o(c,"json"),u=o(c,"text"),d=o(c,"xml");n.detectJSON=void 0,n.onerror=void 0,n.returnRawBody=!0;const f=["application/json","application/json-patch+json","application/vnd.api+json","application/csp-report","application/scim+json"],m=["application/x-www-form-urlencoded"],h=["text/plain"],v=["text/xml","application/xml"],x=a(n,"json"),b=a(n,"form"),y=a(n,"text"),g=a(n,"xml"),w=n.extendTypes||{};return i(f,w.json),i(m,w.form),i(h,w.text),i(v,w.xml),async function(n,a){if(void 0!==n.request.body||n.disableBodyParser)return await a();try{const a=await async function(n){if(l&&(r&&r(n)||function(e,n){"string"==typeof e&&(e=e.replace(/;$/,""));return t.is(e,n)}(n.request.get("content-type"),f)))return await e.json(n,x);if(p&&n.request.is(m))return await e.form(n,b);if(u&&n.request.is(h))return await e.text(n,y)||"";if(d&&n.request.is(v))return await e.text(n,g)||"";return{}}(n);n.request.body="parsed"in a?a.parsed:{},void 0===n.request.rawBody&&(n.request.rawBody=a.raw)}catch(e){if(!s)throw e;s(e,n)}await a()}}}(),wc=G(gc),Sc={};function kc(e,...n){return(...t)=>e(...n,...t)}function Ec(e){return function(...n){var t=n.pop();return e.call(this,n,t)}}var jc="function"==typeof queueMicrotask&&queueMicrotask,Oc="function"==typeof setImmediate&&setImmediate,Cc="object"==typeof process&&"function"==typeof process.nextTick;function _c(e){setTimeout(e,0)}function Ac(e){return(n,...t)=>e((()=>n(...t)))}var Fc=Ac(jc?queueMicrotask:Oc?setImmediate:Cc?process.nextTick:_c);function Tc(e){return Ic(e)?function(...n){const t=n.pop();return Pc(e.apply(this,n),t)}:Ec((function(n,t){var a;try{a=e.apply(this,n)}catch(e){return t(e)}if(a&&"function"==typeof a.then)return Pc(a,t);t(null,a)}))}function Pc(e,n){return e.then((e=>{Nc(n,null,e)}),(e=>{Nc(n,e&&(e instanceof Error||e.message)?e:new Error(e))}))}function Nc(e,n,t){try{e(n,t)}catch(e){Fc((e=>{throw e}),e)}}function Ic(e){return"AsyncFunction"===e[Symbol.toStringTag]}function Lc(e){if("function"!=typeof e)throw new Error("expected a function");return Ic(e)?Tc(e):e}function Mc(e,n){if(n||(n=e.length),!n)throw new Error("arity is undefined");return function(...t){return"function"==typeof t[n-1]?e.apply(this,t):new Promise(((a,i)=>{t[n-1]=(e,...n)=>{if(e)return i(e);a(n.length>1?n:n[0])},e.apply(this,t)}))}}function Dc(e){return function(n,...t){return Mc((function(a){var i=this;return e(n,((e,n)=>{Lc(e).apply(i,t.concat(n))}),a)}))}}function Bc(e,n,t,a){n=n||[];var i=[],o=0,r=Lc(t);return e(n,((e,n,t)=>{var a=o++;r(e,((e,n)=>{i[a]=n,t(e)}))}),(e=>{a(e,i)}))}function qc(e){return e&&"number"==typeof e.length&&e.length>=0&&e.length%1==0}const Rc={};function zc(e){function n(...n){if(null!==e){var t=e;e=null,t.apply(this,n)}}return Object.assign(n,e),n}function $c(e){if(qc(e))return function(e){var n=-1,t=e.length;return function(){return++n<t?{value:e[n],key:n}:null}}(e);var n,t,a,i,o=function(e){return e[Symbol.iterator]&&e[Symbol.iterator]()}(e);return o?function(e){var n=-1;return function(){var t=e.next();return t.done?null:(n++,{value:t.value,key:n})}}(o):(t=(n=e)?Object.keys(n):[],a=-1,i=t.length,function e(){var o=t[++a];return"__proto__"===o?e():a<i?{value:n[o],key:o}:null})}function Uc(e){return function(...n){if(null===e)throw new Error("Callback was already called.");var t=e;e=null,t.apply(this,n)}}function Wc(e,n,t,a){let i=!1,o=!1,r=!1,s=0,c=0;function p(){s>=n||r||i||(r=!0,e.next().then((({value:e,done:n})=>{if(!o&&!i){if(r=!1,n)return i=!0,void(s<=0&&a(null));s++,t(e,c,l),c++,p()}})).catch(u))}function l(e,n){if(s-=1,!o)return e?u(e):!1===e?(i=!0,void(o=!0)):n===Rc||i&&s<=0?(i=!0,a(null)):void p()}function u(e){o||(r=!1,i=!0,a(e))}p()}var Gc=e=>(n,t,a)=>{if(a=zc(a),e<=0)throw new RangeError("concurrency limit cannot be less than 1");if(!n)return a(null);if("AsyncGenerator"===n[Symbol.toStringTag])return Wc(n,e,t,a);if(function(e){return"function"==typeof e[Symbol.asyncIterator]}(n))return Wc(n[Symbol.asyncIterator](),e,t,a);var i=$c(n),o=!1,r=!1,s=0,c=!1;function p(e,n){if(!r)if(s-=1,e)o=!0,a(e);else if(!1===e)o=!0,r=!0;else{if(n===Rc||o&&s<=0)return o=!0,a(null);c||l()}}function l(){for(c=!0;s<e&&!o;){var n=i();if(null===n)return o=!0,void(s<=0&&a(null));s+=1,t(n.value,n.key,Uc(p))}c=!1}l()};var Hc=Mc((function(e,n,t,a){return Gc(n)(e,Lc(t),a)}),4);function Jc(e,n,t){t=zc(t);var a=0,i=0,{length:o}=e,r=!1;function s(e,n){!1===e&&(r=!0),!0!==r&&(e?t(e):++i!==o&&n!==Rc||t(null))}for(0===o&&t(null);a<o;a++)n(e[a],a,Uc(s))}function Kc(e,n,t){return Hc(e,1/0,n,t)}var Vc=Mc((function(e,n,t){return(qc(e)?Jc:Kc)(e,Lc(n),t)}),3);var Zc=Mc((function(e,n,t){return Bc(Vc,e,n,t)}),3),Qc=Dc(Zc);var Yc=Mc((function(e,n,t){return Hc(e,1,n,t)}),3);var Xc=Mc((function(e,n,t){return Bc(Yc,e,n,t)}),3),ep=Dc(Xc);const np=Symbol("promiseCallback");function tp(){let e,n;function t(t,...a){if(t)return n(t);e(a.length>1?a:a[0])}return t[np]=new Promise(((t,a)=>{e=t,n=a})),t}function ap(e,n,t){"number"!=typeof n&&(t=n,n=null),t=zc(t||tp());var a=Object.keys(e).length;if(!a)return t(null);n||(n=a);var i={},o=0,r=!1,s=!1,c=Object.create(null),p=[],l=[],u={};function d(e,n){p.push((()=>function(e,n){if(s)return;var a=Uc(((n,...a)=>{if(o--,!1!==n)if(a.length<2&&([a]=a),n){var p={};if(Object.keys(i).forEach((e=>{p[e]=i[e]})),p[e]=a,s=!0,c=Object.create(null),r)return;t(n,p)}else i[e]=a,(c[e]||[]).forEach((e=>e())),f();else r=!0}));o++;var p=Lc(n[n.length-1]);n.length>1?p(i,a):p(a)}(e,n)))}function f(){if(!r){if(0===p.length&&0===o)return t(null,i);for(;p.length&&o<n;){p.shift()()}}}function m(n){var t=[];return Object.keys(e).forEach((a=>{const i=e[a];Array.isArray(i)&&i.indexOf(n)>=0&&t.push(a)})),t}return Object.keys(e).forEach((n=>{var t=e[n];if(!Array.isArray(t))return d(n,[t]),void l.push(n);var a=t.slice(0,t.length-1),i=a.length;if(0===i)return d(n,t),void l.push(n);u[n]=i,a.forEach((o=>{if(!e[o])throw new Error("async.auto task `"+n+"` has a non-existent dependency `"+o+"` in "+a.join(", "));!function(e,n){var t=c[e];t||(t=c[e]=[]);t.push(n)}(o,(()=>{0===--i&&d(n,t)}))}))})),function(){var e=0;for(;l.length;)e++,m(l.pop()).forEach((e=>{0==--u[e]&&l.push(e)}));if(e!==a)throw new Error("async.auto cannot execute tasks due to a recursive dependency")}(),f(),t[np]}var ip=/^(?:async\s)?(?:function)?\s*(?:\w+\s*)?\(([^)]+)\)(?:\s*{)/,op=/^(?:async\s)?\s*(?:\(\s*)?((?:[^)=\s]\s*)*)(?:\)\s*)?=>/,rp=/,/,sp=/(=.+)?(\s*)$/;function cp(e,n){var t={};return Object.keys(e).forEach((n=>{var a,i=e[n],o=Ic(i),r=!o&&1===i.length||o&&0===i.length;if(Array.isArray(i))a=[...i],i=a.pop(),t[n]=a.concat(a.length>0?s:i);else if(r)t[n]=i;else{if(a=function(e){const n=function(e){let n="",t=0,a=e.indexOf("*/");for(;t<e.length;)if("/"===e[t]&&"/"===e[t+1]){let n=e.indexOf("\n",t);t=-1===n?e.length:n}else if(-1!==a&&"/"===e[t]&&"*"===e[t+1]){let i=e.indexOf("*/",t);-1!==i?(t=i+2,a=e.indexOf("*/",t)):(n+=e[t],t++)}else n+=e[t],t++;return n}(e.toString());let t=n.match(ip);if(t||(t=n.match(op)),!t)throw new Error("could not parse args in autoInject\nSource:\n"+n);let[,a]=t;return a.replace(/\s/g,"").split(rp).map((e=>e.replace(sp,"").trim()))}(i),0===i.length&&!o&&0===a.length)throw new Error("autoInject task functions require explicit parameters.");o||a.pop(),t[n]=a.concat(s)}function s(e,n){var t=a.map((n=>e[n]));t.push(n),Lc(i)(...t)}})),ap(t,n)}class pp{constructor(){this.head=this.tail=null,this.length=0}removeLink(e){return e.prev?e.prev.next=e.next:this.head=e.next,e.next?e.next.prev=e.prev:this.tail=e.prev,e.prev=e.next=null,this.length-=1,e}empty(){for(;this.head;)this.shift();return this}insertAfter(e,n){n.prev=e,n.next=e.next,e.next?e.next.prev=n:this.tail=n,e.next=n,this.length+=1}insertBefore(e,n){n.prev=e.prev,n.next=e,e.prev?e.prev.next=n:this.head=n,e.prev=n,this.length+=1}unshift(e){this.head?this.insertBefore(this.head,e):lp(this,e)}push(e){this.tail?this.insertAfter(this.tail,e):lp(this,e)}shift(){return this.head&&this.removeLink(this.head)}pop(){return this.tail&&this.removeLink(this.tail)}toArray(){return[...this]}*[Symbol.iterator](){for(var e=this.head;e;)yield e.data,e=e.next}remove(e){for(var n=this.head;n;){var{next:t}=n;e(n)&&this.removeLink(n),n=t}return this}}function lp(e,n){e.length=1,e.head=e.tail=n}function up(e,n,t){if(null==n)n=1;else if(0===n)throw new RangeError("Concurrency must not be zero");var a=Lc(e),i=0,o=[];const r={error:[],drain:[],saturated:[],unsaturated:[],empty:[]};function s(e,n){return e?n?void(r[e]=r[e].filter((e=>e!==n))):r[e]=[]:Object.keys(r).forEach((e=>r[e]=[]))}function c(e,...n){r[e].forEach((e=>e(...n)))}var p=!1;function l(e,n,t,a){if(null!=a&&"function"!=typeof a)throw new Error("task callback must be a function");var i,o;function r(e,...n){return e?t?o(e):i():n.length<=1?i(n[0]):void i(n)}h.started=!0;var s=h._createTaskItem(e,t?r:a||r);if(n?h._tasks.unshift(s):h._tasks.push(s),p||(p=!0,Fc((()=>{p=!1,h.process()}))),t||!a)return new Promise(((e,n)=>{i=e,o=n}))}function u(e){return function(n,...t){i-=1;for(var a=0,r=e.length;a<r;a++){var s=e[a],p=o.indexOf(s);0===p?o.shift():p>0&&o.splice(p,1),s.callback(n,...t),null!=n&&c("error",n,s.data)}i<=h.concurrency-h.buffer&&c("unsaturated"),h.idle()&&c("drain"),h.process()}}function d(e){return!(0!==e.length||!h.idle())&&(Fc((()=>c("drain"))),!0)}const f=e=>n=>{if(!n)return new Promise(((n,t)=>{!function(e,n){const t=(...a)=>{s(e,t),n(...a)};r[e].push(t)}(e,((e,a)=>{if(e)return t(e);n(a)}))}));s(e),function(e,n){r[e].push(n)}(e,n)};var m=!1,h={_tasks:new pp,_createTaskItem:(e,n)=>({data:e,callback:n}),*[Symbol.iterator](){yield*h._tasks[Symbol.iterator]()},concurrency:n,payload:t,buffer:n/4,started:!1,paused:!1,push(e,n){if(Array.isArray(e)){if(d(e))return;return e.map((e=>l(e,!1,!1,n)))}return l(e,!1,!1,n)},pushAsync(e,n){if(Array.isArray(e)){if(d(e))return;return e.map((e=>l(e,!1,!0,n)))}return l(e,!1,!0,n)},kill(){s(),h._tasks.empty()},unshift(e,n){if(Array.isArray(e)){if(d(e))return;return e.map((e=>l(e,!0,!1,n)))}return l(e,!0,!1,n)},unshiftAsync(e,n){if(Array.isArray(e)){if(d(e))return;return e.map((e=>l(e,!0,!0,n)))}return l(e,!0,!0,n)},remove(e){h._tasks.remove(e)},process(){if(!m){for(m=!0;!h.paused&&i<h.concurrency&&h._tasks.length;){var e=[],n=[],t=h._tasks.length;h.payload&&(t=Math.min(t,h.payload));for(var r=0;r<t;r++){var s=h._tasks.shift();e.push(s),o.push(s),n.push(s.data)}i+=1,0===h._tasks.length&&c("empty"),i===h.concurrency&&c("saturated");var p=Uc(u(e));a(n,p)}m=!1}},length:()=>h._tasks.length,running:()=>i,workersList:()=>o,idle:()=>h._tasks.length+i===0,pause(){h.paused=!0},resume(){!1!==h.paused&&(h.paused=!1,Fc(h.process))}};return Object.defineProperties(h,{saturated:{writable:!1,value:f("saturated")},unsaturated:{writable:!1,value:f("unsaturated")},empty:{writable:!1,value:f("empty")},drain:{writable:!1,value:f("drain")},error:{writable:!1,value:f("error")}}),h}function dp(e,n){return up(e,1,n)}function fp(e,n,t){return up(e,n,t)}var mp=Mc((function(e,n,t,a){a=zc(a);var i=Lc(t);return Yc(e,((e,t,a)=>{i(n,e,((e,t)=>{n=t,a(e)}))}),(e=>a(e,n)))}),4);function hp(...e){var n=e.map(Lc);return function(...e){var t=this,a=e[e.length-1];return"function"==typeof a?e.pop():a=tp(),mp(n,e,((e,n,a)=>{n.apply(t,e.concat(((e,...n)=>{a(e,n)})))}),((e,n)=>a(e,...n))),a[np]}}function vp(...e){return hp(...e.reverse())}var xp=Mc((function(e,n,t,a){return Bc(Gc(n),e,t,a)}),4);var bp=Mc((function(e,n,t,a){var i=Lc(t);return xp(e,n,((e,n)=>{i(e,((e,...t)=>e?n(e):n(e,t)))}),((e,n)=>{for(var t=[],i=0;i<n.length;i++)n[i]&&(t=t.concat(...n[i]));return a(e,t)}))}),4);var yp=Mc((function(e,n,t){return bp(e,1/0,n,t)}),3);var gp=Mc((function(e,n,t){return bp(e,1,n,t)}),3);function wp(...e){return function(...n){return n.pop()(null,...e)}}function Sp(e,n){return(t,a,i,o)=>{var r,s=!1;const c=Lc(i);t(a,((t,a,i)=>{c(t,((a,o)=>a||!1===a?i(a):e(o)&&!r?(s=!0,r=n(!0,t),i(null,Rc)):void i()))}),(e=>{if(e)return o(e);o(null,s?r:n(!1))}))}}var kp=Mc((function(e,n,t){return Sp((e=>e),((e,n)=>n))(Vc,e,n,t)}),3);var Ep=Mc((function(e,n,t,a){return Sp((e=>e),((e,n)=>n))(Gc(n),e,t,a)}),4);var jp=Mc((function(e,n,t){return Sp((e=>e),((e,n)=>n))(Gc(1),e,n,t)}),3);function Op(e){return(n,...t)=>Lc(n)(...t,((n,...t)=>{"object"==typeof console&&(n?console.error&&console.error(n):console[e]&&t.forEach((n=>console[e](n))))}))}var Cp=Op("dir");var _p=Mc((function(e,n,t){t=Uc(t);var a,i=Lc(e),o=Lc(n);function r(e,...n){if(e)return t(e);!1!==e&&(a=n,o(...n,s))}function s(e,n){return e?t(e):!1!==e?n?void i(r):t(null,...a):void 0}return s(null,!0)}),3);function Ap(e,n,t){const a=Lc(n);return _p(e,((...e)=>{const n=e.pop();a(...e,((e,t)=>n(e,!t)))}),t)}function Fp(e){return(n,t,a)=>e(n,a)}var Tp=Mc((function(e,n,t){return Vc(e,Fp(Lc(n)),t)}),3);var Pp=Mc((function(e,n,t,a){return Gc(n)(e,Fp(Lc(t)),a)}),4);var Np=Mc((function(e,n,t){return Pp(e,1,n,t)}),3);function Ip(e){return Ic(e)?e:function(...n){var t=n.pop(),a=!0;n.push(((...e)=>{a?Fc((()=>t(...e))):t(...e)})),e.apply(this,n),a=!1}}var Lp=Mc((function(e,n,t){return Sp((e=>!e),(e=>!e))(Vc,e,n,t)}),3);var Mp=Mc((function(e,n,t,a){return Sp((e=>!e),(e=>!e))(Gc(n),e,t,a)}),4);var Dp=Mc((function(e,n,t){return Sp((e=>!e),(e=>!e))(Yc,e,n,t)}),3);function Bp(e,n,t,a){var i=new Array(n.length);e(n,((e,n,a)=>{t(e,((e,t)=>{i[n]=!!t,a(e)}))}),(e=>{if(e)return a(e);for(var t=[],o=0;o<n.length;o++)i[o]&&t.push(n[o]);a(null,t)}))}function qp(e,n,t,a){var i=[];e(n,((e,n,a)=>{t(e,((t,o)=>{if(t)return a(t);o&&i.push({index:n,value:e}),a(t)}))}),(e=>{if(e)return a(e);a(null,i.sort(((e,n)=>e.index-n.index)).map((e=>e.value)))}))}function Rp(e,n,t,a){return(qc(n)?Bp:qp)(e,n,Lc(t),a)}var zp=Mc((function(e,n,t){return Rp(Vc,e,n,t)}),3);var $p=Mc((function(e,n,t,a){return Rp(Gc(n),e,t,a)}),4);var Up=Mc((function(e,n,t){return Rp(Yc,e,n,t)}),3);var Wp=Mc((function(e,n){var t=Uc(n),a=Lc(Ip(e));return function e(n){if(n)return t(n);!1!==n&&a(e)}()}),2);var Gp=Mc((function(e,n,t,a){var i=Lc(t);return xp(e,n,((e,n)=>{i(e,((t,a)=>t?n(t):n(t,{key:a,val:e})))}),((e,n)=>{for(var t={},{hasOwnProperty:i}=Object.prototype,o=0;o<n.length;o++)if(n[o]){var{key:r}=n[o],{val:s}=n[o];i.call(t,r)?t[r].push(s):t[r]=[s]}return a(e,t)}))}),4);function Hp(e,n,t){return Gp(e,1/0,n,t)}function Jp(e,n,t){return Gp(e,1,n,t)}var Kp=Op("log");var Vp=Mc((function(e,n,t,a){a=zc(a);var i={},o=Lc(t);return Gc(n)(e,((e,n,t)=>{o(e,n,((e,a)=>{if(e)return t(e);i[n]=a,t(e)}))}),(e=>a(e,i)))}),4);function Zp(e,n,t){return Vp(e,1/0,n,t)}function Qp(e,n,t){return Vp(e,1,n,t)}function Yp(e,n=e=>e){var t=Object.create(null),a=Object.create(null),i=Lc(e),o=Ec(((e,o)=>{var r=n(...e);r in t?Fc((()=>o(null,...t[r]))):r in a?a[r].push(o):(a[r]=[o],i(...e,((e,...n)=>{e||(t[r]=n);var i=a[r];delete a[r];for(var o=0,s=i.length;o<s;o++)i[o](e,...n)})))}));return o.memo=t,o.unmemoized=e,o}var Xp=Ac(Cc?process.nextTick:Oc?setImmediate:_c),el=Mc(((e,n,t)=>{var a=qc(n)?[]:{};e(n,((e,n,t)=>{Lc(e)(((e,...i)=>{i.length<2&&([i]=i),a[n]=i,t(e)}))}),(e=>t(e,a)))}),3);function nl(e,n){return el(Vc,e,n)}function tl(e,n,t){return el(Gc(n),e,t)}function al(e,n){var t=Lc(e);return up(((e,n)=>{t(e[0],n)}),n,1)}class il{constructor(){this.heap=[],this.pushCount=Number.MIN_SAFE_INTEGER}get length(){return this.heap.length}empty(){return this.heap=[],this}percUp(e){let n;for(;e>0&&rl(this.heap[e],this.heap[n=ol(e)]);){let t=this.heap[e];this.heap[e]=this.heap[n],this.heap[n]=t,e=n}}percDown(e){let n;for(;(n=1+(e<<1))<this.heap.length&&(n+1<this.heap.length&&rl(this.heap[n+1],this.heap[n])&&(n+=1),!rl(this.heap[e],this.heap[n]));){let t=this.heap[e];this.heap[e]=this.heap[n],this.heap[n]=t,e=n}}push(e){e.pushCount=++this.pushCount,this.heap.push(e),this.percUp(this.heap.length-1)}unshift(e){return this.heap.push(e)}shift(){let[e]=this.heap;return this.heap[0]=this.heap[this.heap.length-1],this.heap.pop(),this.percDown(0),e}toArray(){return[...this]}*[Symbol.iterator](){for(let e=0;e<this.heap.length;e++)yield this.heap[e].data}remove(e){let n=0;for(let t=0;t<this.heap.length;t++)e(this.heap[t])||(this.heap[n]=this.heap[t],n++);this.heap.splice(n);for(let e=ol(this.heap.length-1);e>=0;e--)this.percDown(e);return this}}function ol(e){return(e+1>>1)-1}function rl(e,n){return e.priority!==n.priority?e.priority<n.priority:e.pushCount<n.pushCount}function sl(e,n){var t=al(e,n),{push:a,pushAsync:i}=t;function o(e,n){return Array.isArray(e)?e.map((e=>({data:e,priority:n}))):{data:e,priority:n}}return t._tasks=new il,t._createTaskItem=({data:e,priority:n},t)=>({data:e,priority:n,callback:t}),t.push=function(e,n=0,t){return a(o(e,n),t)},t.pushAsync=function(e,n=0,t){return i(o(e,n),t)},delete t.unshift,delete t.unshiftAsync,t}var cl=Mc((function(e,n){if(n=zc(n),!Array.isArray(e))return n(new TypeError("First argument to race must be an array of functions"));if(!e.length)return n();for(var t=0,a=e.length;t<a;t++)Lc(e[t])(n)}),2);function pl(e,n,t,a){var i=[...e].reverse();return mp(i,n,t,a)}function ll(e){var n=Lc(e);return Ec((function(e,t){return e.push(((e,...n)=>{let a={};if(e&&(a.error=e),n.length>0){var i=n;n.length<=1&&([i]=n),a.value=i}t(null,a)})),n.apply(this,e)}))}function ul(e){var n;return Array.isArray(e)?n=e.map(ll):(n={},Object.keys(e).forEach((t=>{n[t]=ll.call(this,e[t])}))),n}function dl(e,n,t,a){const i=Lc(t);return Rp(e,n,((e,n)=>{i(e,((e,t)=>{n(e,!t)}))}),a)}var fl=Mc((function(e,n,t){return dl(Vc,e,n,t)}),3);var ml=Mc((function(e,n,t,a){return dl(Gc(n),e,t,a)}),4);var hl=Mc((function(e,n,t){return dl(Yc,e,n,t)}),3);function vl(e){return function(){return e}}function xl(e,n,t){var a={times:5,intervalFunc:vl(0)};if(arguments.length<3&&"function"==typeof e?(t=n||tp(),n=e):(!function(e,n){if("object"==typeof n)e.times=+n.times||5,e.intervalFunc="function"==typeof n.interval?n.interval:vl(+n.interval||0),e.errorFilter=n.errorFilter;else{if("number"!=typeof n&&"string"!=typeof n)throw new Error("Invalid arguments for async.retry");e.times=+n||5}}(a,e),t=t||tp()),"function"!=typeof n)throw new Error("Invalid arguments for async.retry");var i=Lc(n),o=1;return function e(){i(((n,...i)=>{!1!==n&&(n&&o++<a.times&&("function"!=typeof a.errorFilter||a.errorFilter(n))?setTimeout(e,a.intervalFunc(o-1)):t(n,...i))}))}(),t[np]}function bl(e,n){n||(n=e,e=null);let t=e&&e.arity||n.length;Ic(n)&&(t+=1);var a=Lc(n);return Ec(((n,i)=>{function o(e){a(...n,e)}return(n.length<t-1||null==i)&&(n.push(i),i=tp()),e?xl(e,o,i):xl(o,i),i[np]}))}function yl(e,n){return el(Yc,e,n)}var gl=Mc((function(e,n,t){return Sp(Boolean,(e=>e))(Vc,e,n,t)}),3);var wl=Mc((function(e,n,t,a){return Sp(Boolean,(e=>e))(Gc(n),e,t,a)}),4);var Sl=Mc((function(e,n,t){return Sp(Boolean,(e=>e))(Yc,e,n,t)}),3);var kl=Mc((function(e,n,t){var a=Lc(n);return Zc(e,((e,n)=>{a(e,((t,a)=>{if(t)return n(t);n(t,{value:e,criteria:a})}))}),((e,n)=>{if(e)return t(e);t(null,n.sort(i).map((e=>e.value)))}));function i(e,n){var t=e.criteria,a=n.criteria;return t<a?-1:t>a?1:0}}),3);function El(e,n,t){var a=Lc(e);return Ec(((i,o)=>{var r,s=!1;i.push(((...e)=>{s||(o(...e),clearTimeout(r))})),r=setTimeout((function(){var n=e.name||"anonymous",a=new Error('Callback function "'+n+'" timed out.');a.code="ETIMEDOUT",t&&(a.info=t),s=!0,o(a)}),n),a(...i)}))}function jl(e,n,t,a){var i=Lc(t);return xp(function(e){for(var n=Array(e);e--;)n[e]=e;return n}(e),n,i,a)}function Ol(e,n,t){return jl(e,1/0,n,t)}function Cl(e,n,t){return jl(e,1,n,t)}function _l(e,n,t,a){arguments.length<=3&&"function"==typeof n&&(a=t,t=n,n=Array.isArray(e)?[]:{}),a=zc(a||tp());var i=Lc(t);return Vc(e,((e,t,a)=>{i(n,e,t,a)}),(e=>a(e,n))),a[np]}var Al=Mc((function(e,n){var t,a=null;return Np(e,((e,n)=>{Lc(e)(((e,...i)=>{if(!1===e)return n(e);i.length<2?[t]=i:t=i,a=e,n(e?null:{})}))}),(()=>n(a,t)))}));function Fl(e){return(...n)=>(e.unmemoized||e)(...n)}var Tl=Mc((function(e,n,t){t=Uc(t);var a=Lc(n),i=Lc(e),o=[];function r(e,...n){if(e)return t(e);o=n,!1!==e&&i(s)}function s(e,n){return e?t(e):!1!==e?n?void a(r):t(null,...o):void 0}return i(s)}),3);function Pl(e,n,t){const a=Lc(e);return Tl((e=>a(((n,t)=>e(n,!t)))),n,t)}var Nl,Il,Ll,Ml=Mc((function(e,n){if(n=zc(n),!Array.isArray(e))return n(new Error("First argument to waterfall must be an array of functions"));if(!e.length)return n();var t=0;function a(n){Lc(e[t++])(...n,Uc(i))}function i(i,...o){if(!1!==i)return i||t===e.length?n(i,...o):void a(o)}a([])})),Dl={apply:kc,applyEach:Qc,applyEachSeries:ep,asyncify:Tc,auto:ap,autoInject:cp,cargo:dp,cargoQueue:fp,compose:vp,concat:yp,concatLimit:bp,concatSeries:gp,constant:wp,detect:kp,detectLimit:Ep,detectSeries:jp,dir:Cp,doUntil:Ap,doWhilst:_p,each:Tp,eachLimit:Pp,eachOf:Vc,eachOfLimit:Hc,eachOfSeries:Yc,eachSeries:Np,ensureAsync:Ip,every:Lp,everyLimit:Mp,everySeries:Dp,filter:zp,filterLimit:$p,filterSeries:Up,forever:Wp,groupBy:Hp,groupByLimit:Gp,groupBySeries:Jp,log:Kp,map:Zc,mapLimit:xp,mapSeries:Xc,mapValues:Zp,mapValuesLimit:Vp,mapValuesSeries:Qp,memoize:Yp,nextTick:Xp,parallel:nl,parallelLimit:tl,priorityQueue:sl,queue:al,race:cl,reduce:mp,reduceRight:pl,reflect:ll,reflectAll:ul,reject:fl,rejectLimit:ml,rejectSeries:hl,retry:xl,retryable:bl,seq:hp,series:yl,setImmediate:Fc,some:gl,someLimit:wl,someSeries:Sl,sortBy:kl,timeout:El,times:Ol,timesLimit:jl,timesSeries:Cl,transform:_l,tryEach:Al,unmemoize:Fl,until:Pl,waterfall:Ml,whilst:Tl,all:Lp,allLimit:Mp,allSeries:Dp,any:gl,anyLimit:wl,anySeries:Sl,find:kp,findLimit:Ep,findSeries:jp,flatMap:yp,flatMapLimit:bp,flatMapSeries:gp,forEach:Tp,forEachSeries:Np,forEachLimit:Pp,forEachOf:Vc,forEachOfSeries:Yc,forEachOfLimit:Hc,inject:mp,foldl:mp,foldr:pl,select:zp,selectLimit:$p,selectSeries:Up,wrapSync:Tc,during:Tl,doDuring:_p},Bl=H(Object.freeze({__proto__:null,all:Lp,allLimit:Mp,allSeries:Dp,any:gl,anyLimit:wl,anySeries:Sl,apply:kc,applyEach:Qc,applyEachSeries:ep,asyncify:Tc,auto:ap,autoInject:cp,cargo:dp,cargoQueue:fp,compose:vp,concat:yp,concatLimit:bp,concatSeries:gp,constant:wp,default:Dl,detect:kp,detectLimit:Ep,detectSeries:jp,dir:Cp,doDuring:_p,doUntil:Ap,doWhilst:_p,during:Tl,each:Tp,eachLimit:Pp,eachOf:Vc,eachOfLimit:Hc,eachOfSeries:Yc,eachSeries:Np,ensureAsync:Ip,every:Lp,everyLimit:Mp,everySeries:Dp,filter:zp,filterLimit:$p,filterSeries:Up,find:kp,findLimit:Ep,findSeries:jp,flatMap:yp,flatMapLimit:bp,flatMapSeries:gp,foldl:mp,foldr:pl,forEach:Tp,forEachLimit:Pp,forEachOf:Vc,forEachOfLimit:Hc,forEachOfSeries:Yc,forEachSeries:Np,forever:Wp,groupBy:Hp,groupByLimit:Gp,groupBySeries:Jp,inject:mp,log:Kp,map:Zc,mapLimit:xp,mapSeries:Xc,mapValues:Zp,mapValuesLimit:Vp,mapValuesSeries:Qp,memoize:Yp,nextTick:Xp,parallel:nl,parallelLimit:tl,priorityQueue:sl,queue:al,race:cl,reduce:mp,reduceRight:pl,reflect:ll,reflectAll:ul,reject:fl,rejectLimit:ml,rejectSeries:hl,retry:xl,retryable:bl,select:zp,selectLimit:$p,selectSeries:Up,seq:hp,series:yl,setImmediate:Fc,some:gl,someLimit:wl,someSeries:Sl,sortBy:kl,timeout:El,times:Ol,timesLimit:jl,timesSeries:Cl,transform:_l,tryEach:Al,unmemoize:Fl,until:Pl,waterfall:Ml,whilst:Tl,wrapSync:Tc})),ql={exports:{}},Rl={exports:{}};function zl(){if(Il)return Nl;return Il=1,Nl=function(e){function n(e){let a,i,o,r=null;function s(...e){if(!s.enabled)return;const t=s,i=Number(new Date),o=i-(a||i);t.diff=o,t.prev=a,t.curr=i,a=i,e[0]=n.coerce(e[0]),"string"!=typeof e[0]&&e.unshift("%O");let r=0;e[0]=e[0].replace(/%([a-zA-Z%])/g,((a,i)=>{if("%%"===a)return"%";r++;const o=n.formatters[i];if("function"==typeof o){const n=e[r];a=o.call(t,n),e.splice(r,1),r--}return a})),n.formatArgs.call(t,e);(t.log||n.log).apply(t,e)}return s.namespace=e,s.useColors=n.useColors(),s.color=n.selectColor(e),s.extend=t,s.destroy=n.destroy,Object.defineProperty(s,"enabled",{enumerable:!0,configurable:!1,get:()=>null!==r?r:(i!==n.namespaces&&(i=n.namespaces,o=n.enabled(e)),o),set:e=>{r=e}}),"function"==typeof n.init&&n.init(s),s}function t(e,t){const a=n(this.namespace+(void 0===t?":":t)+e);return a.log=this.log,a}function a(e,n){let t=0,a=0,i=-1,o=0;for(;t<e.length;)if(a<n.length&&(n[a]===e[t]||"*"===n[a]))"*"===n[a]?(i=a,o=t,a++):(t++,a++);else{if(-1===i)return!1;a=i+1,o++,t=o}for(;a<n.length&&"*"===n[a];)a++;return a===n.length}return n.debug=n,n.default=n,n.coerce=function(e){if(e instanceof Error)return e.stack||e.message;return e},n.disable=function(){const e=[...n.names,...n.skips.map((e=>"-"+e))].join(",");return n.enable(""),e},n.enable=function(e){n.save(e),n.namespaces=e,n.names=[],n.skips=[];const t=("string"==typeof e?e:"").trim().replace(" ",",").split(",").filter(Boolean);for(const e of t)"-"===e[0]?n.skips.push(e.slice(1)):n.names.push(e)},n.enabled=function(e){for(const t of n.skips)if(a(e,t))return!1;for(const t of n.names)if(a(e,t))return!0;return!1},n.humanize=ee(),n.destroy=function(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")},Object.keys(e).forEach((t=>{n[t]=e[t]})),n.names=[],n.skips=[],n.formatters={},n.selectColor=function(e){let t=0;for(let n=0;n<e.length;n++)t=(t<<5)-t+e.charCodeAt(n),t|=0;return n.colors[Math.abs(t)%n.colors.length]},n.enable(n.load()),n},Nl}var $l,Ul,Wl,Gl={exports:{}};function Hl(){return $l||($l=1,function(e,n){const t=c,a=p;n.init=function(e){e.inspectOpts={};const t=Object.keys(n.inspectOpts);for(let a=0;a<t.length;a++)e.inspectOpts[t[a]]=n.inspectOpts[t[a]]},n.log=function(...e){return process.stderr.write(a.formatWithOptions(n.inspectOpts,...e)+"\n")},n.formatArgs=function(t){const{namespace:a,useColors:i}=this;if(i){const n=this.color,i="[3"+(n<8?n:"8;5;"+n),o=` ${i};1m${a} [0m`;t[0]=o+t[0].split("\n").join("\n"+o),t.push(i+"m+"+e.exports.humanize(this.diff)+"[0m")}else t[0]=function(){if(n.inspectOpts.hideDate)return"";return(new Date).toISOString()+" "}()+a+" "+t[0]},n.save=function(e){e?process.env.DEBUG=e:delete process.env.DEBUG},n.load=function(){return process.env.DEBUG},n.useColors=function(){return"colors"in n.inspectOpts?Boolean(n.inspectOpts.colors):t.isatty(process.stderr.fd)},n.destroy=a.deprecate((()=>{}),"Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."),n.colors=[6,2,3,4,5,1];try{const e=require("supports-color");e&&(e.stderr||e).level>=2&&(n.colors=[20,21,26,27,32,33,38,39,40,41,42,43,44,45,56,57,62,63,68,69,74,75,76,77,78,79,80,81,92,93,98,99,112,113,128,129,134,135,148,149,160,161,162,163,164,165,166,167,168,169,170,171,172,173,178,179,184,185,196,197,198,199,200,201,202,203,204,205,206,207,208,209,214,215,220,221])}catch(e){}n.inspectOpts=Object.keys(process.env).filter((e=>/^debug_/i.test(e))).reduce(((e,n)=>{const t=n.substring(6).toLowerCase().replace(/_([a-z])/g,((e,n)=>n.toUpperCase()));let a=process.env[n];return a=!!/^(yes|on|true|enabled)$/i.test(a)||!/^(no|off|false|disabled)$/i.test(a)&&("null"===a?null:Number(a)),e[t]=a,e}),{}),e.exports=zl()(n);const{formatters:i}=e.exports;i.o=function(e){return this.inspectOpts.colors=this.useColors,a.inspect(e,this.inspectOpts).split("\n").map((e=>e.trim())).join(" ")},i.O=function(e){return this.inspectOpts.colors=this.useColors,a.inspect(e,this.inspectOpts)}}(Gl,Gl.exports)),Gl.exports}function Jl(){return Ul||(Ul=1,"undefined"==typeof process||"renderer"===process.type||!0===process.browser||process.__nwjs?ql.exports=(Ll||(Ll=1,function(e,n){n.formatArgs=function(n){if(n[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+n[0]+(this.useColors?"%c ":" ")+"+"+e.exports.humanize(this.diff),!this.useColors)return;const t="color: "+this.color;n.splice(1,0,t,"color: inherit");let a=0,i=0;n[0].replace(/%[a-zA-Z%]/g,(e=>{"%%"!==e&&(a++,"%c"===e&&(i=a))})),n.splice(i,0,t)},n.save=function(e){try{e?n.storage.setItem("debug",e):n.storage.removeItem("debug")}catch(e){}},n.load=function(){let e;try{e=n.storage.getItem("debug")}catch(e){}return!e&&"undefined"!=typeof process&&"env"in process&&(e=process.env.DEBUG),e},n.useColors=function(){if("undefined"!=typeof window&&window.process&&("renderer"===window.process.type||window.process.__nwjs))return!0;if("undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))return!1;let e;return"undefined"!=typeof document&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||"undefined"!=typeof window&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||"undefined"!=typeof navigator&&navigator.userAgent&&(e=navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/))&&parseInt(e[1],10)>=31||"undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)},n.storage=function(){try{return localStorage}catch(e){}}(),n.destroy=(()=>{let e=!1;return()=>{e||(e=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})(),n.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"],n.log=console.debug||console.log||(()=>{}),e.exports=zl()(n);const{formatters:t}=e.exports;t.j=function(e){try{return JSON.stringify(e)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}}}(Rl,Rl.exports)),Rl.exports):ql.exports=Hl()),ql.exports}var Kl=(Wl||(Wl=1,function(e){const t=n,a=l,i=v,r=o,s=Bl,c=Jl(),p=c("portfinder:testPort"),u=c("portfinder:getPort"),d=c("portfinder:defaultHosts"),f={testPort:function(n,t){function a(){p("done w/ testPort(): OK",n.host,"port",n.port),n.server.removeListener("error",o),n.server.close((function(){p("done w/ testPort(): Server closed",n.host,"port",n.port),t(null,n.port)}))}function o(i){if(p("done w/ testPort(): failed",n.host,"w/ port",n.port,"with error",i.code),n.server.removeListener("listening",a),"EADDRINUSE"!=i.code&&"EACCES"!=i.code)return t(i);const o=e.nextPort(n.port);if(o>e.highestPort)return t(new Error("No open ports available"));f.testPort({port:o,host:n.host,server:n.server},t)}t||(t=n,n={}),n.server=n.server||i.createServer((function(){})),p("entered testPort(): trying",n.host,"port",n.port),n.server.once("error",o),n.server.once("listening",a),n.host?n.server.listen(n.port,n.host):n.server.listen(n.port)}};e.basePort=8e3,e.setBasePort=function(n){e.basePort=n},e.highestPort=65535,e.setHighestPort=function(n){e.highestPort=n},e.basePath="/tmp/portfinder",e.setBasePath=function(n){e.basePath=n},f.getPort=function(n,t){if(n.port=Number(n.port)||Number(n.startPort)||Number(e.basePort),n.host=n.host||null,n.stopPort=Number(n.stopPort)||Number(e.highestPort),!n.startPort){if(n.startPort=n.port,n.startPort<0)return t(Error(`Provided options.port(${n.port}) is less than 0, which are cannot be bound.`));if(n.stopPort<n.startPort)return t(Error(`Provided options.stopPort(${n.stopPort}) is less than options.port(${n.startPort})`))}n.host&&-1===e._defaultHosts.indexOf(n.host)&&e._defaultHosts.push(n.host);const a=[];let i;return s.eachSeries(e._defaultHosts,(function(e,t){return u("in eachSeries() iteration callback: host is",e),f.testPort({host:e,port:n.port},(function(n,o){return n?(u("in eachSeries() iteration callback testPort() callback","with an err:",n.code),i=e,t(n)):(u("in eachSeries() iteration callback testPort() callback","with a success for port",o),a.push(o),t())}))}),(function(o){if(o){if(u("in eachSeries() result callback: err is",o),"EADDRNOTAVAIL"===o.code||"EINVAL"===o.code){if(n.host===i){const e="Provided host "+n.host+" could NOT be bound. Please provide a different host address or hostname";return t(Error(e))}{const a=e._defaultHosts.indexOf(i);return e._defaultHosts.splice(a,1),f.getPort(n,t)}}return t(o)}if(a.sort((function(e,n){return e-n})),u("in eachSeries() result callback: openPorts is",a),a[0]===a[a.length-1]){if(a[0]<=n.stopPort)return t(null,a[0]);{const e="No open ports found in between "+n.startPort+" and "+n.stopPort;return t(Error(e))}}return f.getPort({port:a.pop(),host:n.host,startPort:n.startPort,stopPort:n.stopPort},t)}))},e.getPort=function(e,n){if("function"==typeof e&&(n=e,e={}),e=e||{},!n)return new Promise((function(n,t){f.getPort(e,(function(e,a){if(e)return t(e);n(a)}))}));f.getPort(e,n)},e.getPortPromise=e.getPort,f.getPorts=function(n,t,a){let i=null;s.timesSeries(n,(function(n,a){i&&(t.port=e.nextPort(i)),f.getPort(t,(function(e,n){e?a(e):(i=n,a(null,n))}))}),a)},e.getPorts=function(e,n,t){if("function"==typeof n&&(t=n,n={}),n=n||{},!t)return new Promise((function(t,a){f.getPorts(e,n,(function(e,n){if(e)return a(e);t(n)}))}));f.getPorts(e,n,t)},e.getPortsPromise=e.getPorts,f.getSocket=function(n,a){function i(){t.stat(n.path,(function(t){t?"ENOENT"==t.code?a(null,n.path):a(t):(n.path=e.nextSocket(n.path),f.getSocket(n,a))}))}return n.mod=n.mod||parseInt(755,8),n.path=n.path||e.basePath+".sock",n.exists?i():function(){const e=r.dirname(n.path);t.stat(e,(function(o,r){if(o||!r.isDirectory())return function(e){t.mkdir(e,{mode:n.mod,recursive:!0},(function(e){if(e)return a(e);n.exists=!0,i()}))}(e);n.exists=!0,i()}))}()},e.getSocket=function(e,n){if("function"==typeof e&&(n=e,e={}),e=e||{},!n)return new Promise((function(n,t){f.getSocket(e,(function(e,a){if(e)return t(e);n(a)}))}));f.getSocket(e,n)},e.getSocketPromise=e.getSocket,e.nextPort=function(e){return e+1},e.nextSocket=function(e){const n=r.dirname(e),t=r.basename(e,".sock").match(/^([a-zA-z]+)(\d*)$/i),a=t[1];let i=parseInt(t[2]);return isNaN(i)&&(i=0),i+=1,r.join(n,a+i+".sock")},e._defaultHosts=function(){let e={};try{e=a.networkInterfaces()}catch(e){if("uv_interface_addresses"!==e.syscall)throw e}const n=Object.keys(e),t=["0.0.0.0"];for(let a=0;a<n.length;a++){const i=e[n[a]];for(let e=0;e<i.length;e++){const n=i[e];t.push(n.address)}}return t.push(null),d("exports._defaultHosts is: %o",t),t}()}(Sc)),Sc),Vl=G(Kl);const Zl=b.prototype.listen,Ql=e=>{const n=e.address();if(n){((e,n)=>{const t=null!==n?`http://${e}:${n}`:e;console.log(`app listen ${t}`)})("object"==typeof n?(e=>"::"===e?"0.0.0.0":e)(n.address):n,"object"==typeof n?n.port:null)}},Yl=(e,n,t,a)=>{const{pathPrefix:i,moduleName:o,name:r}=z(n,"controller"),s=`${i}/${o}`;if(!t)return;const c=q(`${e}${`${i}/${r}`}`);t.forEach((e=>{const{method:n,path:t,handler:o,functionName:r,authRequired:p,middlewares:l}=e;var u;c&&"function"==typeof c[r]&&l.push((u=c[r].bind(c),async(e,n)=>{const t=u(e);t instanceof Promise&&await t,await n()}));const d=(f=p,m=o,async(e,n)=>{let t=a(f,e);return t instanceof Promise&&(t=await t),t?m(e,n):e.throw(403,"无权限")});var f,m;const h=[...l,d],v=Xl(t,s,r,h,n);e.path=v,e.apiPrePath=i}))},Xl=(e,n,t,a,i)=>{const o=`${n}${e}`;if(t===E){const e=`${n}/index`;Wa[i](e,...a)}return Wa[i](o,...a),o};var eu=function(e){var n=Object.prototype.hasOwnProperty;function t(e,a){return Array.isArray(e)?function(e,n){for(var a,i="",o="",s=Array.isArray(n),c=0;c<e.length;c++)(a=t(e[c]))&&(s&&n[c]&&(a=r(a)),i=i+o+a,o=" ");return i}(e,a):e&&"object"==typeof e?function(e){var t="",a="";for(var i in e)i&&e[i]&&n.call(e,i)&&(t=t+a+i,a=" ");return t}(e):e||""}function a(e){if(!e)return"";if("object"==typeof e){var t="";for(var a in e)n.call(e,a)&&(t=t+a+":"+e[a]+";");return t}return e+""}function i(e,n,t,a){return!1!==n&&null!=n&&(n||"class"!==e&&"style"!==e)?!0===n?" "+(a?e:e+'="'+e+'"'):("function"==typeof n.toJSON&&(n=n.toJSON()),"string"==typeof n||(n=JSON.stringify(n),t||-1===n.indexOf('"'))?(t&&(n=r(n))," "+e+'="'+n+'"'):" "+e+"='"+n.replace(/'/g,"'")+"'"):""}e.merge=function e(n,t){if(1===arguments.length){for(var i=n[0],o=1;o<n.length;o++)i=e(i,n[o]);return i}for(var r in t)if("class"===r){var s=n[r]||[];n[r]=(Array.isArray(s)?s:[s]).concat(t[r]||[])}else if("style"===r){s=(s=a(n[r]))&&";"!==s[s.length-1]?s+";":s;var c=a(t[r]);c=c&&";"!==c[c.length-1]?c+";":c,n[r]=s+c}else n[r]=t[r];return n},e.classes=t,e.style=a,e.attr=i,e.attrs=function(e,o){var r="";for(var s in e)if(n.call(e,s)){var c=e[s];if("class"===s){r=i(s,c=t(c),!1,o)+r;continue}"style"===s&&(c=a(c)),r+=i(s,c,!1,o)}return r};var o=/["&<>]/;function r(e){var n=""+e,t=o.exec(n);if(!t)return e;var a,i,r,s="";for(a=t.index,i=0;a<n.length;a++){switch(n.charCodeAt(a)){case 34:r=""";break;case 38:r="&";break;case 60:r="<";break;case 62:r=">";break;default:continue}i!==a&&(s+=n.substring(i,a)),i=a+1,s+=r}return i!==a?s+n.substring(i,a):s}return e.escape=r,e.rethrow=function e(n,t,a,i){if(!(n instanceof Error))throw n;if(!("undefined"==typeof window&&t||i))throw n.message+=" on line "+a,n;try{i=i||require("fs").readFileSync(t,"utf8")}catch(t){e(n,null,a)}var o=3,r=i.split("\n"),s=Math.max(a-o,0),c=Math.min(r.length,a+o);o=r.slice(s,c).map((function(e,n){var t=n+s+1;return(t==a?" > ":" ")+t+"| "+e})).join("\n");throw n.path=t,n.message=(t||"Pug")+":"+a+"\n"+o+"\n\n"+n.message,n},e}({});function nu(e){var n,t,a="";try{var i={},o=e||{};(function(e,t){a+="<!DOCTYPE html>",a+="\n<html>",a+="\n <head>",a+="\n <title>",a+="API Documentation</title>",a+="\n <style>\n ",a+="body { font-family: Arial, sans-serif; margin: 20px; }",a+="\n ",a+="",a+="\n ",a+="h1 { color: #333; text-align: center; }",a+="\n ",a+="h2 { color: #333333 }",a+="\n ",a+="h3 { cursor: pointer; transition: color 0.3s; }",a+="\n ",a+="h3 { color: #007BFF; }",a+="\n ",a+="h3:hover { color: #0056b3; }",a+="\n ",a+="",a+="\n ",a+=".api-section { ",a+="\n ",a+=" margin: 20px 0; ",a+="\n ",a+=" border: 1px solid #e0e0e0; ",a+="\n ",a+=" border-radius: 8px; ",a+="\n ",a+=" padding: 10px; ",a+="\n ",a+=" background-color: #f9f9f9; ",a+="\n ",a+=" box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.1); ",a+="\n ",a+="}",a+="\n ",a+="",a+="\n ",a+=".api-method { font-weight: bold; color: #333; }",a+="\n ",a+=".api-path { font-style: italic; color: #555; }",a+="\n ",a+="",a+="\n ",a+="pre { ",a+="\n ",a+=" background: #f4f4f4; ",a+="\n ",a+=" padding: 10px; ",a+="\n ",a+=" border-radius: 5px; ",a+="\n ",a+=" overflow-x: auto; ",a+="\n ",a+="}",a+="\n ",a+="",a+="\n ",a+=".collapse { display: none; }",a+="\n ",a+="\n </style>\n </head>",a+="\n <body>",a+="\n <h1>",a+="API Documentation</h1>",a+="\n \x3c!-- 添加 JavaScript 用于折叠 Sections--\x3e",a+="\n <script>\n ",a+="document.addEventListener('DOMContentLoaded', function() {",a+="\n ",a+=" const headings = document.querySelectorAll('.toggle');",a+="\n ",a+=" headings.forEach(heading => {",a+="\n ",a+=" heading.addEventListener('click', function() {",a+="\n ",a+=" // 找到 h3 后面的 collapse 元素",a+="\n ",a+=" let content = heading.nextElementSibling;",a+="\n ",a+=" if(!(content && content.classList.contains('collapse'))) {",a+="\n ",a+=" content = content.nextElementSibling;",a+="\n ",a+=" }",a+="\n ",a+=" if (content && content.classList.contains('collapse')) {",a+="\n ",a+=' content.style.display = (content.style.display === "block") ? "none" : "block";',a+="\n ",a+=" }",a+="\n ",a+=" });",a+="\n ",a+=" });",a+="\n ",a+="});",a+="\n ",a+="\n <\/script>",function(){var i=t;if("number"==typeof i.length)for(var o=0,r=i.length;o<r;o++){var s=i[o];a=(a+="\n <h2>")+eu.escape(null==(n=s[0])?"":n)+"</h2>",function(){var t=s[1];if("number"==typeof t.length)for(var i=0,o=t.length;i<o;i++){var r=t[i];a+='\n <div class="api-section">',a=(a+='\n <h3 class="toggle">')+eu.escape(null==(n=r.name)?"":n)+"</h3>",r.desc&&(a=(a+="\n <p>")+eu.escape(null==(n=r.desc)?"":n)+"</p>"),a+='\n <div class="collapse">',function(){var t=r.configs;if("number"==typeof t.length)for(var i=0,o=t.length;i<o;i++){var s=t[i];a=(a+='\n <h4 class="api-method">')+eu.escape(null==(n=s.method.toUpperCase()+" "+s.path)?"":n)+"</h4>",s.description&&(a=(a+="\n <h5>")+eu.escape(null==(n=s.description)?"":n)+"</h5>"),a+="\n <pre>",a+="Request Header:</pre>",a=(a+="\n <pre>")+eu.escape(null==(n=e.stringify(s.request.header,null,2))?"":n)+"</pre>",a+="\n <pre>",a+="Request Body:</pre>",a=(a+="\n <pre>")+eu.escape(null==(n=e.stringify(s.request.body,null,2))?"":n)+"</pre>",a+="\n <pre>",a+="Request Query:</pre>",a=(a+="\n <pre>")+eu.escape(null==(n=e.stringify(s.request.query,null,2))?"":n)+"</pre>",a+="\n <pre>",a+="Response Body:</pre>",a=(a+="\n <pre>")+eu.escape(null==(n=e.stringify(s.response.body,null,2))?"":n)+"</pre>"}else{o=0;for(var i in t){o++;s=t[i];a=(a+='\n <h4 class="api-method">')+eu.escape(null==(n=s.method.toUpperCase()+" "+s.path)?"":n)+"</h4>",s.description&&(a=(a+="\n <h5>")+eu.escape(null==(n=s.description)?"":n)+"</h5>"),a+="\n <pre>",a+="Request Header:</pre>",a=(a+="\n <pre>")+eu.escape(null==(n=e.stringify(s.request.header,null,2))?"":n)+"</pre>",a+="\n <pre>",a+="Request Body:</pre>",a=(a+="\n <pre>")+eu.escape(null==(n=e.stringify(s.request.body,null,2))?"":n)+"</pre>",a+="\n <pre>",a+="Request Query:</pre>",a=(a+="\n <pre>")+eu.escape(null==(n=e.stringify(s.request.query,null,2))?"":n)+"</pre>",a+="\n <pre>",a+="Response Body:</pre>",a=(a+="\n <pre>")+eu.escape(null==(n=e.stringify(s.response.body,null,2))?"":n)+"</pre>"}}}.call(this),a+="\n </div>\n </div>"}else{o=0;for(var i in t){o++;r=t[i];a+='\n <div class="api-section">',a=(a+='\n <h3 class="toggle">')+eu.escape(null==(n=r.name)?"":n)+"</h3>",r.desc&&(a=(a+="\n <p>")+eu.escape(null==(n=r.desc)?"":n)+"</p>"),a+='\n <div class="collapse">',function(){var t=r.configs;if("number"==typeof t.length)for(var i=0,o=t.length;i<o;i++){var s=t[i];a=(a+='\n <h4 class="api-method">')+eu.escape(null==(n=s.method.toUpperCase()+" "+s.path)?"":n)+"</h4>",s.description&&(a=(a+="\n <h5>")+eu.escape(null==(n=s.description)?"":n)+"</h5>"),a+="\n <pre>",a+="Request Header:</pre>",a=(a+="\n <pre>")+eu.escape(null==(n=e.stringify(s.request.header,null,2))?"":n)+"</pre>",a+="\n <pre>",a+="Request Body:</pre>",a=(a+="\n <pre>")+eu.escape(null==(n=e.stringify(s.request.body,null,2))?"":n)+"</pre>",a+="\n <pre>",a+="Request Query:</pre>",a=(a+="\n <pre>")+eu.escape(null==(n=e.stringify(s.request.query,null,2))?"":n)+"</pre>",a+="\n <pre>",a+="Response Body:</pre>",a=(a+="\n <pre>")+eu.escape(null==(n=e.stringify(s.response.body,null,2))?"":n)+"</pre>"}else{o=0;for(var i in t){o++;s=t[i];a=(a+='\n <h4 class="api-method">')+eu.escape(null==(n=s.method.toUpperCase()+" "+s.path)?"":n)+"</h4>",s.description&&(a=(a+="\n <h5>")+eu.escape(null==(n=s.description)?"":n)+"</h5>"),a+="\n <pre>",a+="Request Header:</pre>",a=(a+="\n <pre>")+eu.escape(null==(n=e.stringify(s.request.header,null,2))?"":n)+"</pre>",a+="\n <pre>",a+="Request Body:</pre>",a=(a+="\n <pre>")+eu.escape(null==(n=e.stringify(s.request.body,null,2))?"":n)+"</pre>",a+="\n <pre>",a+="Request Query:</pre>",a=(a+="\n <pre>")+eu.escape(null==(n=e.stringify(s.request.query,null,2))?"":n)+"</pre>",a+="\n <pre>",a+="Response Body:</pre>",a=(a+="\n <pre>")+eu.escape(null==(n=e.stringify(s.response.body,null,2))?"":n)+"</pre>"}}}.call(this),a+="\n </div>\n </div>"}}}.call(this)}else{r=0;for(var o in i){r++;s=i[o];a=(a+="\n <h2>")+eu.escape(null==(n=s[0])?"":n)+"</h2>",function(){var t=s[1];if("number"==typeof t.length)for(var i=0,o=t.length;i<o;i++){var r=t[i];a+='\n <div class="api-section">',a=(a+='\n <h3 class="toggle">')+eu.escape(null==(n=r.name)?"":n)+"</h3>",r.desc&&(a=(a+="\n <p>")+eu.escape(null==(n=r.desc)?"":n)+"</p>"),a+='\n <div class="collapse">',function(){var t=r.configs;if("number"==typeof t.length)for(var i=0,o=t.length;i<o;i++){var s=t[i];a=(a+='\n <h4 class="api-method">')+eu.escape(null==(n=s.method.toUpperCase()+" "+s.path)?"":n)+"</h4>",s.description&&(a=(a+="\n <h5>")+eu.escape(null==(n=s.description)?"":n)+"</h5>"),a+="\n <pre>",a+="Request Header:</pre>",a=(a+="\n <pre>")+eu.escape(null==(n=e.stringify(s.request.header,null,2))?"":n)+"</pre>",a+="\n <pre>",a+="Request Body:</pre>",a=(a+="\n <pre>")+eu.escape(null==(n=e.stringify(s.request.body,null,2))?"":n)+"</pre>",a+="\n <pre>",a+="Request Query:</pre>",a=(a+="\n <pre>")+eu.escape(null==(n=e.stringify(s.request.query,null,2))?"":n)+"</pre>",a+="\n <pre>",a+="Response Body:</pre>",a=(a+="\n <pre>")+eu.escape(null==(n=e.stringify(s.response.body,null,2))?"":n)+"</pre>"}else{o=0;for(var i in t){o++;s=t[i];a=(a+='\n <h4 class="api-method">')+eu.escape(null==(n=s.method.toUpperCase()+" "+s.path)?"":n)+"</h4>",s.description&&(a=(a+="\n <h5>")+eu.escape(null==(n=s.description)?"":n)+"</h5>"),a+="\n <pre>",a+="Request Header:</pre>",a=(a+="\n <pre>")+eu.escape(null==(n=e.stringify(s.request.header,null,2))?"":n)+"</pre>",a+="\n <pre>",a+="Request Body:</pre>",a=(a+="\n <pre>")+eu.escape(null==(n=e.stringify(s.request.body,null,2))?"":n)+"</pre>",a+="\n <pre>",a+="Request Query:</pre>",a=(a+="\n <pre>")+eu.escape(null==(n=e.stringify(s.request.query,null,2))?"":n)+"</pre>",a+="\n <pre>",a+="Response Body:</pre>",a=(a+="\n <pre>")+eu.escape(null==(n=e.stringify(s.response.body,null,2))?"":n)+"</pre>"}}}.call(this),a+="\n </div>\n </div>"}else{o=0;for(var i in t){o++;r=t[i];a+='\n <div class="api-section">',a=(a+='\n <h3 class="toggle">')+eu.escape(null==(n=r.name)?"":n)+"</h3>",r.desc&&(a=(a+="\n <p>")+eu.escape(null==(n=r.desc)?"":n)+"</p>"),a+='\n <div class="collapse">',function(){var t=r.configs;if("number"==typeof t.length)for(var i=0,o=t.length;i<o;i++){var s=t[i];a=(a+='\n <h4 class="api-method">')+eu.escape(null==(n=s.method.toUpperCase()+" "+s.path)?"":n)+"</h4>",s.description&&(a=(a+="\n <h5>")+eu.escape(null==(n=s.description)?"":n)+"</h5>"),a+="\n <pre>",a+="Request Header:</pre>",a=(a+="\n <pre>")+eu.escape(null==(n=e.stringify(s.request.header,null,2))?"":n)+"</pre>",a+="\n <pre>",a+="Request Body:</pre>",a=(a+="\n <pre>")+eu.escape(null==(n=e.stringify(s.request.body,null,2))?"":n)+"</pre>",a+="\n <pre>",a+="Request Query:</pre>",a=(a+="\n <pre>")+eu.escape(null==(n=e.stringify(s.request.query,null,2))?"":n)+"</pre>",a+="\n <pre>",a+="Response Body:</pre>",a=(a+="\n <pre>")+eu.escape(null==(n=e.stringify(s.response.body,null,2))?"":n)+"</pre>"}else{o=0;for(var i in t){o++;s=t[i];a=(a+='\n <h4 class="api-method">')+eu.escape(null==(n=s.method.toUpperCase()+" "+s.path)?"":n)+"</h4>",s.description&&(a=(a+="\n <h5>")+eu.escape(null==(n=s.description)?"":n)+"</h5>"),a+="\n <pre>",a+="Request Header:</pre>",a=(a+="\n <pre>")+eu.escape(null==(n=e.stringify(s.request.header,null,2))?"":n)+"</pre>",a+="\n <pre>",a+="Request Body:</pre>",a=(a+="\n <pre>")+eu.escape(null==(n=e.stringify(s.request.body,null,2))?"":n)+"</pre>",a+="\n <pre>",a+="Request Query:</pre>",a=(a+="\n <pre>")+eu.escape(null==(n=e.stringify(s.request.query,null,2))?"":n)+"</pre>",a+="\n <pre>",a+="Response Body:</pre>",a=(a+="\n <pre>")+eu.escape(null==(n=e.stringify(s.response.body,null,2))?"":n)+"</pre>"}}}.call(this),a+="\n </div>\n </div>"}}}.call(this)}}}.call(this),a+="\n </body>\n</html>"}).call(this,"JSON"in o?o.JSON:"undefined"!=typeof JSON?JSON:void 0,"apiData"in o?o.apiData:"undefined"!=typeof apiData?apiData:void 0)}catch(e){eu.rethrow(e,t,undefined,i[void 0])}return a}const tu={DOCUMENTATION_DIR:s(process.cwd(),"doc")},au=(e,n)=>{const t=q(e.wholePath),a=t.prototype,i=Object.getOwnPropertyNames(a).filter((e=>"function"==typeof a[e]&&"constructor"!==e)),o=e.path.substring(e.path.indexOf("doc")+3),r=i.map((e=>{if("function"==typeof a[e]){const n=a[e]();return n.path=o+n.path,n}return null})).filter((e=>!!e));let s="";if(r[0]?.path){const e=r[0].path.lastIndexOf("/");e>-1&&(s=r[0].path.substring(0,e))}return{configs:r,desc:t.desc,name:t.name,pathPrefix:n,apiPrePath:s}},iu=async(e,n)=>{e.extra={get:e.query,post:e.request.body??{}},await n()};(()=>{const e=process.env.NODE_ENV||"production",n=D();let a=r(n,"env");switch(function(e){try{return t(e).isDirectory()}catch(e){return e.code,!1}}(a)||(a=r(n,"..","env")),console.log("load env path: ",a),w.config({path:r(a,".common.env")}),e){case"development":w.config({path:r(a,".development.env")});break;case"test":w.config({path:r(a,".test.env")});break;case"production":w.config({path:r(a,".production.env")})}})();const ou=async e=>{const{koaInstance:n,authCheckCallback:t,catchErrorCallback:a,registerHighPriorityMiddleware:i,registerHook:o,log4:r=!1,runtimeLog:s=!0}=e;global.isDev="development"===process.env.NODE_ENV;const c=n||new b;var p;return c.context.log4=(e=>{if(!1!==e)return"boolean"==typeof e&&!0===e?$a():e(Ra)})(r),c.context.hook=o,c.context.runtimeLog=s,c.use(U),c.use((p=a,async(e,n)=>{try{await n()}catch(n){e.hook?.(e,"error"),p?p(n,e):L(500,{message:n.message})}})),i?.(c),c.use(Ua),e.corsMiddleware&&c.use(e.corsMiddleware),c.use(wc()),c.use(iu),(e=>{const{controllerModule:n,validateModule:t}=B();console.log("load controller path: ",n),R(n,(n=>{if(!n.path.includes("controller"))return;const a=q(n.wholePath),i=a?.routesMap;i&&Yl(t,n,i,((t,a)=>!t||e({filePath:n,ctx:a})))}))})(t),c.context.validated={params:{},get:{},post:{}},"development"!==process.env.NODE_ENV&&"true"!==process.env.DOC||Wa.get("/doc",(async e=>{const n=await(async()=>{const e=[],n=new Map;return R(tu.DOCUMENTATION_DIR,(n=>{const{pathPrefix:t}=z(n,"doc");e.push(au(n,t))})),e.forEach((e=>{n.has(e.pathPrefix)||n.set(e.pathPrefix,[]),n.get(e.pathPrefix)?.push(e)})),nu({apiData:Array.from(n.entries())})})();e.body=n})),Wa.get("/",(async e=>{e.body={code:200,message:"hello koa-ts-cli https://www.npmjs.com/package/koa-ts-core"}})),c.use(Wa.routes()),await(async e=>{const n=process.env.APP_PORT;if(n){const t=e.listen(Number(n));return void t.on("listening",(()=>Ql(t)))}const t=await Vl.getPortPromise({port:8e3,stopPort:9999});e.listen=(...n)=>{const a=0===n.length?Zl.apply(e,[t]):Zl.apply(e,n);return a.on("listening",(()=>Ql(a))),a}})(c),[c,Wa]};export{A as AuthRouter,M as BaseException,E as INDEX_ROUTE,_ as Router,F as contextStore,L as errorRsp,T as getCurrentContext,B as getSrcModulePaths,ou as initializeKoaApp,N as successRsp,I as unSuccessRsp};
|
|
39
|
+
*/var gc=function(){if(Es)return ks;Es=1;const e=yc(),n=function(){if(Ss)return ws;Ss=1;var e=Array.prototype.slice;function n(e,t){if(!(this instanceof n))return new n(e,t);this.src=e,this._withAccess=t}function t(e,n){return void 0===e[n]&&void 0===e.__lookupGetter__(n)&&void 0===e.__lookupSetter__(n)}return ws=n,n.prototype.withAccess=function(e){return this._withAccess=!1!==e,this},n.prototype.pick=function(n){return Array.isArray(n)||(n=e.call(arguments)),n.length&&(this.keys=n),this},n.prototype.to=function(e){if(e=e||{},!this.src)return e;var n=this.keys||Object.keys(this.src);if(!this._withAccess){for(var a=0;a<n.length;a++)void 0===e[i=n[a]]&&(e[i]=this.src[i]);return e}for(a=0;a<n.length;a++){var i=n[a];if(t(e,i)){var o=this.src.__lookupGetter__(i),r=this.src.__lookupSetter__(i);o&&e.__defineGetter__(i,o),r&&e.__defineSetter__(i,r),o||r||(e[i]=this.src[i])}}return e},n.prototype.toCover=function(e){for(var n=this.keys||Object.keys(this.src),t=0;t<n.length;t++){var a=n[t];delete e[a];var i=this.src.__lookupGetter__(a),o=this.src.__lookupSetter__(a);i&&e.__defineGetter__(a,i),o&&e.__defineSetter__(a,o),i||o||(e[a]=this.src[a])}},n.prototype.override=n.prototype.toCover,n.prototype.and=function(e){var n={};return this.to(n),this.src=e,this.to(n),this.src=n,this},ws}(),t=ai();function a(e,t){const a={};return n(e).to(a),a.limit=e[t+"Limit"],a}function i(e,n){n&&(Array.isArray(n)||(n=[n]),n.forEach((function(n){e.push(n)})))}function o(e,n){return e.includes(n)}return ks=function(n){n=n||{};const{detectJSON:r}=n,{onerror:s}=n,c=n.enableTypes||["json","form"],p=o(c,"form"),l=o(c,"json"),u=o(c,"text"),d=o(c,"xml");n.detectJSON=void 0,n.onerror=void 0,n.returnRawBody=!0;const f=["application/json","application/json-patch+json","application/vnd.api+json","application/csp-report","application/scim+json"],m=["application/x-www-form-urlencoded"],h=["text/plain"],v=["text/xml","application/xml"],x=a(n,"json"),b=a(n,"form"),y=a(n,"text"),g=a(n,"xml"),w=n.extendTypes||{};return i(f,w.json),i(m,w.form),i(h,w.text),i(v,w.xml),async function(n,a){if(void 0!==n.request.body||n.disableBodyParser)return await a();try{const a=await async function(n){if(l&&(r&&r(n)||function(e,n){"string"==typeof e&&(e=e.replace(/;$/,""));return t.is(e,n)}(n.request.get("content-type"),f)))return await e.json(n,x);if(p&&n.request.is(m))return await e.form(n,b);if(u&&n.request.is(h))return await e.text(n,y)||"";if(d&&n.request.is(v))return await e.text(n,g)||"";return{}}(n);n.request.body="parsed"in a?a.parsed:{},void 0===n.request.rawBody&&(n.request.rawBody=a.raw)}catch(e){if(!s)throw e;s(e,n)}await a()}}}(),wc=G(gc),Sc={};function kc(e,...n){return(...t)=>e(...n,...t)}function Ec(e){return function(...n){var t=n.pop();return e.call(this,n,t)}}var jc="function"==typeof queueMicrotask&&queueMicrotask,Oc="function"==typeof setImmediate&&setImmediate,Cc="object"==typeof process&&"function"==typeof process.nextTick;function _c(e){setTimeout(e,0)}function Ac(e){return(n,...t)=>e((()=>n(...t)))}var Fc=Ac(jc?queueMicrotask:Oc?setImmediate:Cc?process.nextTick:_c);function Tc(e){return Ic(e)?function(...n){const t=n.pop();return Pc(e.apply(this,n),t)}:Ec((function(n,t){var a;try{a=e.apply(this,n)}catch(e){return t(e)}if(a&&"function"==typeof a.then)return Pc(a,t);t(null,a)}))}function Pc(e,n){return e.then((e=>{Nc(n,null,e)}),(e=>{Nc(n,e&&(e instanceof Error||e.message)?e:new Error(e))}))}function Nc(e,n,t){try{e(n,t)}catch(e){Fc((e=>{throw e}),e)}}function Ic(e){return"AsyncFunction"===e[Symbol.toStringTag]}function Lc(e){if("function"!=typeof e)throw new Error("expected a function");return Ic(e)?Tc(e):e}function Mc(e,n){if(n||(n=e.length),!n)throw new Error("arity is undefined");return function(...t){return"function"==typeof t[n-1]?e.apply(this,t):new Promise(((a,i)=>{t[n-1]=(e,...n)=>{if(e)return i(e);a(n.length>1?n:n[0])},e.apply(this,t)}))}}function Dc(e){return function(n,...t){return Mc((function(a){var i=this;return e(n,((e,n)=>{Lc(e).apply(i,t.concat(n))}),a)}))}}function Bc(e,n,t,a){n=n||[];var i=[],o=0,r=Lc(t);return e(n,((e,n,t)=>{var a=o++;r(e,((e,n)=>{i[a]=n,t(e)}))}),(e=>{a(e,i)}))}function qc(e){return e&&"number"==typeof e.length&&e.length>=0&&e.length%1==0}const Rc={};function zc(e){function n(...n){if(null!==e){var t=e;e=null,t.apply(this,n)}}return Object.assign(n,e),n}function $c(e){if(qc(e))return function(e){var n=-1,t=e.length;return function(){return++n<t?{value:e[n],key:n}:null}}(e);var n,t,a,i,o=function(e){return e[Symbol.iterator]&&e[Symbol.iterator]()}(e);return o?function(e){var n=-1;return function(){var t=e.next();return t.done?null:(n++,{value:t.value,key:n})}}(o):(t=(n=e)?Object.keys(n):[],a=-1,i=t.length,function e(){var o=t[++a];return"__proto__"===o?e():a<i?{value:n[o],key:o}:null})}function Uc(e){return function(...n){if(null===e)throw new Error("Callback was already called.");var t=e;e=null,t.apply(this,n)}}function Wc(e,n,t,a){let i=!1,o=!1,r=!1,s=0,c=0;function p(){s>=n||r||i||(r=!0,e.next().then((({value:e,done:n})=>{if(!o&&!i){if(r=!1,n)return i=!0,void(s<=0&&a(null));s++,t(e,c,l),c++,p()}})).catch(u))}function l(e,n){if(s-=1,!o)return e?u(e):!1===e?(i=!0,void(o=!0)):n===Rc||i&&s<=0?(i=!0,a(null)):void p()}function u(e){o||(r=!1,i=!0,a(e))}p()}var Gc=e=>(n,t,a)=>{if(a=zc(a),e<=0)throw new RangeError("concurrency limit cannot be less than 1");if(!n)return a(null);if("AsyncGenerator"===n[Symbol.toStringTag])return Wc(n,e,t,a);if(function(e){return"function"==typeof e[Symbol.asyncIterator]}(n))return Wc(n[Symbol.asyncIterator](),e,t,a);var i=$c(n),o=!1,r=!1,s=0,c=!1;function p(e,n){if(!r)if(s-=1,e)o=!0,a(e);else if(!1===e)o=!0,r=!0;else{if(n===Rc||o&&s<=0)return o=!0,a(null);c||l()}}function l(){for(c=!0;s<e&&!o;){var n=i();if(null===n)return o=!0,void(s<=0&&a(null));s+=1,t(n.value,n.key,Uc(p))}c=!1}l()};var Hc=Mc((function(e,n,t,a){return Gc(n)(e,Lc(t),a)}),4);function Jc(e,n,t){t=zc(t);var a=0,i=0,{length:o}=e,r=!1;function s(e,n){!1===e&&(r=!0),!0!==r&&(e?t(e):++i!==o&&n!==Rc||t(null))}for(0===o&&t(null);a<o;a++)n(e[a],a,Uc(s))}function Kc(e,n,t){return Hc(e,1/0,n,t)}var Vc=Mc((function(e,n,t){return(qc(e)?Jc:Kc)(e,Lc(n),t)}),3);var Zc=Mc((function(e,n,t){return Bc(Vc,e,n,t)}),3),Qc=Dc(Zc);var Yc=Mc((function(e,n,t){return Hc(e,1,n,t)}),3);var Xc=Mc((function(e,n,t){return Bc(Yc,e,n,t)}),3),ep=Dc(Xc);const np=Symbol("promiseCallback");function tp(){let e,n;function t(t,...a){if(t)return n(t);e(a.length>1?a:a[0])}return t[np]=new Promise(((t,a)=>{e=t,n=a})),t}function ap(e,n,t){"number"!=typeof n&&(t=n,n=null),t=zc(t||tp());var a=Object.keys(e).length;if(!a)return t(null);n||(n=a);var i={},o=0,r=!1,s=!1,c=Object.create(null),p=[],l=[],u={};function d(e,n){p.push((()=>function(e,n){if(s)return;var a=Uc(((n,...a)=>{if(o--,!1!==n)if(a.length<2&&([a]=a),n){var p={};if(Object.keys(i).forEach((e=>{p[e]=i[e]})),p[e]=a,s=!0,c=Object.create(null),r)return;t(n,p)}else i[e]=a,(c[e]||[]).forEach((e=>e())),f();else r=!0}));o++;var p=Lc(n[n.length-1]);n.length>1?p(i,a):p(a)}(e,n)))}function f(){if(!r){if(0===p.length&&0===o)return t(null,i);for(;p.length&&o<n;){p.shift()()}}}function m(n){var t=[];return Object.keys(e).forEach((a=>{const i=e[a];Array.isArray(i)&&i.indexOf(n)>=0&&t.push(a)})),t}return Object.keys(e).forEach((n=>{var t=e[n];if(!Array.isArray(t))return d(n,[t]),void l.push(n);var a=t.slice(0,t.length-1),i=a.length;if(0===i)return d(n,t),void l.push(n);u[n]=i,a.forEach((o=>{if(!e[o])throw new Error("async.auto task `"+n+"` has a non-existent dependency `"+o+"` in "+a.join(", "));!function(e,n){var t=c[e];t||(t=c[e]=[]);t.push(n)}(o,(()=>{0===--i&&d(n,t)}))}))})),function(){var e=0;for(;l.length;)e++,m(l.pop()).forEach((e=>{0==--u[e]&&l.push(e)}));if(e!==a)throw new Error("async.auto cannot execute tasks due to a recursive dependency")}(),f(),t[np]}var ip=/^(?:async\s)?(?:function)?\s*(?:\w+\s*)?\(([^)]+)\)(?:\s*{)/,op=/^(?:async\s)?\s*(?:\(\s*)?((?:[^)=\s]\s*)*)(?:\)\s*)?=>/,rp=/,/,sp=/(=.+)?(\s*)$/;function cp(e,n){var t={};return Object.keys(e).forEach((n=>{var a,i=e[n],o=Ic(i),r=!o&&1===i.length||o&&0===i.length;if(Array.isArray(i))a=[...i],i=a.pop(),t[n]=a.concat(a.length>0?s:i);else if(r)t[n]=i;else{if(a=function(e){const n=function(e){let n="",t=0,a=e.indexOf("*/");for(;t<e.length;)if("/"===e[t]&&"/"===e[t+1]){let n=e.indexOf("\n",t);t=-1===n?e.length:n}else if(-1!==a&&"/"===e[t]&&"*"===e[t+1]){let i=e.indexOf("*/",t);-1!==i?(t=i+2,a=e.indexOf("*/",t)):(n+=e[t],t++)}else n+=e[t],t++;return n}(e.toString());let t=n.match(ip);if(t||(t=n.match(op)),!t)throw new Error("could not parse args in autoInject\nSource:\n"+n);let[,a]=t;return a.replace(/\s/g,"").split(rp).map((e=>e.replace(sp,"").trim()))}(i),0===i.length&&!o&&0===a.length)throw new Error("autoInject task functions require explicit parameters.");o||a.pop(),t[n]=a.concat(s)}function s(e,n){var t=a.map((n=>e[n]));t.push(n),Lc(i)(...t)}})),ap(t,n)}class pp{constructor(){this.head=this.tail=null,this.length=0}removeLink(e){return e.prev?e.prev.next=e.next:this.head=e.next,e.next?e.next.prev=e.prev:this.tail=e.prev,e.prev=e.next=null,this.length-=1,e}empty(){for(;this.head;)this.shift();return this}insertAfter(e,n){n.prev=e,n.next=e.next,e.next?e.next.prev=n:this.tail=n,e.next=n,this.length+=1}insertBefore(e,n){n.prev=e.prev,n.next=e,e.prev?e.prev.next=n:this.head=n,e.prev=n,this.length+=1}unshift(e){this.head?this.insertBefore(this.head,e):lp(this,e)}push(e){this.tail?this.insertAfter(this.tail,e):lp(this,e)}shift(){return this.head&&this.removeLink(this.head)}pop(){return this.tail&&this.removeLink(this.tail)}toArray(){return[...this]}*[Symbol.iterator](){for(var e=this.head;e;)yield e.data,e=e.next}remove(e){for(var n=this.head;n;){var{next:t}=n;e(n)&&this.removeLink(n),n=t}return this}}function lp(e,n){e.length=1,e.head=e.tail=n}function up(e,n,t){if(null==n)n=1;else if(0===n)throw new RangeError("Concurrency must not be zero");var a=Lc(e),i=0,o=[];const r={error:[],drain:[],saturated:[],unsaturated:[],empty:[]};function s(e,n){return e?n?void(r[e]=r[e].filter((e=>e!==n))):r[e]=[]:Object.keys(r).forEach((e=>r[e]=[]))}function c(e,...n){r[e].forEach((e=>e(...n)))}var p=!1;function l(e,n,t,a){if(null!=a&&"function"!=typeof a)throw new Error("task callback must be a function");var i,o;function r(e,...n){return e?t?o(e):i():n.length<=1?i(n[0]):void i(n)}h.started=!0;var s=h._createTaskItem(e,t?r:a||r);if(n?h._tasks.unshift(s):h._tasks.push(s),p||(p=!0,Fc((()=>{p=!1,h.process()}))),t||!a)return new Promise(((e,n)=>{i=e,o=n}))}function u(e){return function(n,...t){i-=1;for(var a=0,r=e.length;a<r;a++){var s=e[a],p=o.indexOf(s);0===p?o.shift():p>0&&o.splice(p,1),s.callback(n,...t),null!=n&&c("error",n,s.data)}i<=h.concurrency-h.buffer&&c("unsaturated"),h.idle()&&c("drain"),h.process()}}function d(e){return!(0!==e.length||!h.idle())&&(Fc((()=>c("drain"))),!0)}const f=e=>n=>{if(!n)return new Promise(((n,t)=>{!function(e,n){const t=(...a)=>{s(e,t),n(...a)};r[e].push(t)}(e,((e,a)=>{if(e)return t(e);n(a)}))}));s(e),function(e,n){r[e].push(n)}(e,n)};var m=!1,h={_tasks:new pp,_createTaskItem:(e,n)=>({data:e,callback:n}),*[Symbol.iterator](){yield*h._tasks[Symbol.iterator]()},concurrency:n,payload:t,buffer:n/4,started:!1,paused:!1,push(e,n){if(Array.isArray(e)){if(d(e))return;return e.map((e=>l(e,!1,!1,n)))}return l(e,!1,!1,n)},pushAsync(e,n){if(Array.isArray(e)){if(d(e))return;return e.map((e=>l(e,!1,!0,n)))}return l(e,!1,!0,n)},kill(){s(),h._tasks.empty()},unshift(e,n){if(Array.isArray(e)){if(d(e))return;return e.map((e=>l(e,!0,!1,n)))}return l(e,!0,!1,n)},unshiftAsync(e,n){if(Array.isArray(e)){if(d(e))return;return e.map((e=>l(e,!0,!0,n)))}return l(e,!0,!0,n)},remove(e){h._tasks.remove(e)},process(){if(!m){for(m=!0;!h.paused&&i<h.concurrency&&h._tasks.length;){var e=[],n=[],t=h._tasks.length;h.payload&&(t=Math.min(t,h.payload));for(var r=0;r<t;r++){var s=h._tasks.shift();e.push(s),o.push(s),n.push(s.data)}i+=1,0===h._tasks.length&&c("empty"),i===h.concurrency&&c("saturated");var p=Uc(u(e));a(n,p)}m=!1}},length:()=>h._tasks.length,running:()=>i,workersList:()=>o,idle:()=>h._tasks.length+i===0,pause(){h.paused=!0},resume(){!1!==h.paused&&(h.paused=!1,Fc(h.process))}};return Object.defineProperties(h,{saturated:{writable:!1,value:f("saturated")},unsaturated:{writable:!1,value:f("unsaturated")},empty:{writable:!1,value:f("empty")},drain:{writable:!1,value:f("drain")},error:{writable:!1,value:f("error")}}),h}function dp(e,n){return up(e,1,n)}function fp(e,n,t){return up(e,n,t)}var mp=Mc((function(e,n,t,a){a=zc(a);var i=Lc(t);return Yc(e,((e,t,a)=>{i(n,e,((e,t)=>{n=t,a(e)}))}),(e=>a(e,n)))}),4);function hp(...e){var n=e.map(Lc);return function(...e){var t=this,a=e[e.length-1];return"function"==typeof a?e.pop():a=tp(),mp(n,e,((e,n,a)=>{n.apply(t,e.concat(((e,...n)=>{a(e,n)})))}),((e,n)=>a(e,...n))),a[np]}}function vp(...e){return hp(...e.reverse())}var xp=Mc((function(e,n,t,a){return Bc(Gc(n),e,t,a)}),4);var bp=Mc((function(e,n,t,a){var i=Lc(t);return xp(e,n,((e,n)=>{i(e,((e,...t)=>e?n(e):n(e,t)))}),((e,n)=>{for(var t=[],i=0;i<n.length;i++)n[i]&&(t=t.concat(...n[i]));return a(e,t)}))}),4);var yp=Mc((function(e,n,t){return bp(e,1/0,n,t)}),3);var gp=Mc((function(e,n,t){return bp(e,1,n,t)}),3);function wp(...e){return function(...n){return n.pop()(null,...e)}}function Sp(e,n){return(t,a,i,o)=>{var r,s=!1;const c=Lc(i);t(a,((t,a,i)=>{c(t,((a,o)=>a||!1===a?i(a):e(o)&&!r?(s=!0,r=n(!0,t),i(null,Rc)):void i()))}),(e=>{if(e)return o(e);o(null,s?r:n(!1))}))}}var kp=Mc((function(e,n,t){return Sp((e=>e),((e,n)=>n))(Vc,e,n,t)}),3);var Ep=Mc((function(e,n,t,a){return Sp((e=>e),((e,n)=>n))(Gc(n),e,t,a)}),4);var jp=Mc((function(e,n,t){return Sp((e=>e),((e,n)=>n))(Gc(1),e,n,t)}),3);function Op(e){return(n,...t)=>Lc(n)(...t,((n,...t)=>{"object"==typeof console&&(n?console.error&&console.error(n):console[e]&&t.forEach((n=>console[e](n))))}))}var Cp=Op("dir");var _p=Mc((function(e,n,t){t=Uc(t);var a,i=Lc(e),o=Lc(n);function r(e,...n){if(e)return t(e);!1!==e&&(a=n,o(...n,s))}function s(e,n){return e?t(e):!1!==e?n?void i(r):t(null,...a):void 0}return s(null,!0)}),3);function Ap(e,n,t){const a=Lc(n);return _p(e,((...e)=>{const n=e.pop();a(...e,((e,t)=>n(e,!t)))}),t)}function Fp(e){return(n,t,a)=>e(n,a)}var Tp=Mc((function(e,n,t){return Vc(e,Fp(Lc(n)),t)}),3);var Pp=Mc((function(e,n,t,a){return Gc(n)(e,Fp(Lc(t)),a)}),4);var Np=Mc((function(e,n,t){return Pp(e,1,n,t)}),3);function Ip(e){return Ic(e)?e:function(...n){var t=n.pop(),a=!0;n.push(((...e)=>{a?Fc((()=>t(...e))):t(...e)})),e.apply(this,n),a=!1}}var Lp=Mc((function(e,n,t){return Sp((e=>!e),(e=>!e))(Vc,e,n,t)}),3);var Mp=Mc((function(e,n,t,a){return Sp((e=>!e),(e=>!e))(Gc(n),e,t,a)}),4);var Dp=Mc((function(e,n,t){return Sp((e=>!e),(e=>!e))(Yc,e,n,t)}),3);function Bp(e,n,t,a){var i=new Array(n.length);e(n,((e,n,a)=>{t(e,((e,t)=>{i[n]=!!t,a(e)}))}),(e=>{if(e)return a(e);for(var t=[],o=0;o<n.length;o++)i[o]&&t.push(n[o]);a(null,t)}))}function qp(e,n,t,a){var i=[];e(n,((e,n,a)=>{t(e,((t,o)=>{if(t)return a(t);o&&i.push({index:n,value:e}),a(t)}))}),(e=>{if(e)return a(e);a(null,i.sort(((e,n)=>e.index-n.index)).map((e=>e.value)))}))}function Rp(e,n,t,a){return(qc(n)?Bp:qp)(e,n,Lc(t),a)}var zp=Mc((function(e,n,t){return Rp(Vc,e,n,t)}),3);var $p=Mc((function(e,n,t,a){return Rp(Gc(n),e,t,a)}),4);var Up=Mc((function(e,n,t){return Rp(Yc,e,n,t)}),3);var Wp=Mc((function(e,n){var t=Uc(n),a=Lc(Ip(e));return function e(n){if(n)return t(n);!1!==n&&a(e)}()}),2);var Gp=Mc((function(e,n,t,a){var i=Lc(t);return xp(e,n,((e,n)=>{i(e,((t,a)=>t?n(t):n(t,{key:a,val:e})))}),((e,n)=>{for(var t={},{hasOwnProperty:i}=Object.prototype,o=0;o<n.length;o++)if(n[o]){var{key:r}=n[o],{val:s}=n[o];i.call(t,r)?t[r].push(s):t[r]=[s]}return a(e,t)}))}),4);function Hp(e,n,t){return Gp(e,1/0,n,t)}function Jp(e,n,t){return Gp(e,1,n,t)}var Kp=Op("log");var Vp=Mc((function(e,n,t,a){a=zc(a);var i={},o=Lc(t);return Gc(n)(e,((e,n,t)=>{o(e,n,((e,a)=>{if(e)return t(e);i[n]=a,t(e)}))}),(e=>a(e,i)))}),4);function Zp(e,n,t){return Vp(e,1/0,n,t)}function Qp(e,n,t){return Vp(e,1,n,t)}function Yp(e,n=e=>e){var t=Object.create(null),a=Object.create(null),i=Lc(e),o=Ec(((e,o)=>{var r=n(...e);r in t?Fc((()=>o(null,...t[r]))):r in a?a[r].push(o):(a[r]=[o],i(...e,((e,...n)=>{e||(t[r]=n);var i=a[r];delete a[r];for(var o=0,s=i.length;o<s;o++)i[o](e,...n)})))}));return o.memo=t,o.unmemoized=e,o}var Xp=Ac(Cc?process.nextTick:Oc?setImmediate:_c),el=Mc(((e,n,t)=>{var a=qc(n)?[]:{};e(n,((e,n,t)=>{Lc(e)(((e,...i)=>{i.length<2&&([i]=i),a[n]=i,t(e)}))}),(e=>t(e,a)))}),3);function nl(e,n){return el(Vc,e,n)}function tl(e,n,t){return el(Gc(n),e,t)}function al(e,n){var t=Lc(e);return up(((e,n)=>{t(e[0],n)}),n,1)}class il{constructor(){this.heap=[],this.pushCount=Number.MIN_SAFE_INTEGER}get length(){return this.heap.length}empty(){return this.heap=[],this}percUp(e){let n;for(;e>0&&rl(this.heap[e],this.heap[n=ol(e)]);){let t=this.heap[e];this.heap[e]=this.heap[n],this.heap[n]=t,e=n}}percDown(e){let n;for(;(n=1+(e<<1))<this.heap.length&&(n+1<this.heap.length&&rl(this.heap[n+1],this.heap[n])&&(n+=1),!rl(this.heap[e],this.heap[n]));){let t=this.heap[e];this.heap[e]=this.heap[n],this.heap[n]=t,e=n}}push(e){e.pushCount=++this.pushCount,this.heap.push(e),this.percUp(this.heap.length-1)}unshift(e){return this.heap.push(e)}shift(){let[e]=this.heap;return this.heap[0]=this.heap[this.heap.length-1],this.heap.pop(),this.percDown(0),e}toArray(){return[...this]}*[Symbol.iterator](){for(let e=0;e<this.heap.length;e++)yield this.heap[e].data}remove(e){let n=0;for(let t=0;t<this.heap.length;t++)e(this.heap[t])||(this.heap[n]=this.heap[t],n++);this.heap.splice(n);for(let e=ol(this.heap.length-1);e>=0;e--)this.percDown(e);return this}}function ol(e){return(e+1>>1)-1}function rl(e,n){return e.priority!==n.priority?e.priority<n.priority:e.pushCount<n.pushCount}function sl(e,n){var t=al(e,n),{push:a,pushAsync:i}=t;function o(e,n){return Array.isArray(e)?e.map((e=>({data:e,priority:n}))):{data:e,priority:n}}return t._tasks=new il,t._createTaskItem=({data:e,priority:n},t)=>({data:e,priority:n,callback:t}),t.push=function(e,n=0,t){return a(o(e,n),t)},t.pushAsync=function(e,n=0,t){return i(o(e,n),t)},delete t.unshift,delete t.unshiftAsync,t}var cl=Mc((function(e,n){if(n=zc(n),!Array.isArray(e))return n(new TypeError("First argument to race must be an array of functions"));if(!e.length)return n();for(var t=0,a=e.length;t<a;t++)Lc(e[t])(n)}),2);function pl(e,n,t,a){var i=[...e].reverse();return mp(i,n,t,a)}function ll(e){var n=Lc(e);return Ec((function(e,t){return e.push(((e,...n)=>{let a={};if(e&&(a.error=e),n.length>0){var i=n;n.length<=1&&([i]=n),a.value=i}t(null,a)})),n.apply(this,e)}))}function ul(e){var n;return Array.isArray(e)?n=e.map(ll):(n={},Object.keys(e).forEach((t=>{n[t]=ll.call(this,e[t])}))),n}function dl(e,n,t,a){const i=Lc(t);return Rp(e,n,((e,n)=>{i(e,((e,t)=>{n(e,!t)}))}),a)}var fl=Mc((function(e,n,t){return dl(Vc,e,n,t)}),3);var ml=Mc((function(e,n,t,a){return dl(Gc(n),e,t,a)}),4);var hl=Mc((function(e,n,t){return dl(Yc,e,n,t)}),3);function vl(e){return function(){return e}}function xl(e,n,t){var a={times:5,intervalFunc:vl(0)};if(arguments.length<3&&"function"==typeof e?(t=n||tp(),n=e):(!function(e,n){if("object"==typeof n)e.times=+n.times||5,e.intervalFunc="function"==typeof n.interval?n.interval:vl(+n.interval||0),e.errorFilter=n.errorFilter;else{if("number"!=typeof n&&"string"!=typeof n)throw new Error("Invalid arguments for async.retry");e.times=+n||5}}(a,e),t=t||tp()),"function"!=typeof n)throw new Error("Invalid arguments for async.retry");var i=Lc(n),o=1;return function e(){i(((n,...i)=>{!1!==n&&(n&&o++<a.times&&("function"!=typeof a.errorFilter||a.errorFilter(n))?setTimeout(e,a.intervalFunc(o-1)):t(n,...i))}))}(),t[np]}function bl(e,n){n||(n=e,e=null);let t=e&&e.arity||n.length;Ic(n)&&(t+=1);var a=Lc(n);return Ec(((n,i)=>{function o(e){a(...n,e)}return(n.length<t-1||null==i)&&(n.push(i),i=tp()),e?xl(e,o,i):xl(o,i),i[np]}))}function yl(e,n){return el(Yc,e,n)}var gl=Mc((function(e,n,t){return Sp(Boolean,(e=>e))(Vc,e,n,t)}),3);var wl=Mc((function(e,n,t,a){return Sp(Boolean,(e=>e))(Gc(n),e,t,a)}),4);var Sl=Mc((function(e,n,t){return Sp(Boolean,(e=>e))(Yc,e,n,t)}),3);var kl=Mc((function(e,n,t){var a=Lc(n);return Zc(e,((e,n)=>{a(e,((t,a)=>{if(t)return n(t);n(t,{value:e,criteria:a})}))}),((e,n)=>{if(e)return t(e);t(null,n.sort(i).map((e=>e.value)))}));function i(e,n){var t=e.criteria,a=n.criteria;return t<a?-1:t>a?1:0}}),3);function El(e,n,t){var a=Lc(e);return Ec(((i,o)=>{var r,s=!1;i.push(((...e)=>{s||(o(...e),clearTimeout(r))})),r=setTimeout((function(){var n=e.name||"anonymous",a=new Error('Callback function "'+n+'" timed out.');a.code="ETIMEDOUT",t&&(a.info=t),s=!0,o(a)}),n),a(...i)}))}function jl(e,n,t,a){var i=Lc(t);return xp(function(e){for(var n=Array(e);e--;)n[e]=e;return n}(e),n,i,a)}function Ol(e,n,t){return jl(e,1/0,n,t)}function Cl(e,n,t){return jl(e,1,n,t)}function _l(e,n,t,a){arguments.length<=3&&"function"==typeof n&&(a=t,t=n,n=Array.isArray(e)?[]:{}),a=zc(a||tp());var i=Lc(t);return Vc(e,((e,t,a)=>{i(n,e,t,a)}),(e=>a(e,n))),a[np]}var Al=Mc((function(e,n){var t,a=null;return Np(e,((e,n)=>{Lc(e)(((e,...i)=>{if(!1===e)return n(e);i.length<2?[t]=i:t=i,a=e,n(e?null:{})}))}),(()=>n(a,t)))}));function Fl(e){return(...n)=>(e.unmemoized||e)(...n)}var Tl=Mc((function(e,n,t){t=Uc(t);var a=Lc(n),i=Lc(e),o=[];function r(e,...n){if(e)return t(e);o=n,!1!==e&&i(s)}function s(e,n){return e?t(e):!1!==e?n?void a(r):t(null,...o):void 0}return i(s)}),3);function Pl(e,n,t){const a=Lc(e);return Tl((e=>a(((n,t)=>e(n,!t)))),n,t)}var Nl,Il,Ll,Ml=Mc((function(e,n){if(n=zc(n),!Array.isArray(e))return n(new Error("First argument to waterfall must be an array of functions"));if(!e.length)return n();var t=0;function a(n){Lc(e[t++])(...n,Uc(i))}function i(i,...o){if(!1!==i)return i||t===e.length?n(i,...o):void a(o)}a([])})),Dl={apply:kc,applyEach:Qc,applyEachSeries:ep,asyncify:Tc,auto:ap,autoInject:cp,cargo:dp,cargoQueue:fp,compose:vp,concat:yp,concatLimit:bp,concatSeries:gp,constant:wp,detect:kp,detectLimit:Ep,detectSeries:jp,dir:Cp,doUntil:Ap,doWhilst:_p,each:Tp,eachLimit:Pp,eachOf:Vc,eachOfLimit:Hc,eachOfSeries:Yc,eachSeries:Np,ensureAsync:Ip,every:Lp,everyLimit:Mp,everySeries:Dp,filter:zp,filterLimit:$p,filterSeries:Up,forever:Wp,groupBy:Hp,groupByLimit:Gp,groupBySeries:Jp,log:Kp,map:Zc,mapLimit:xp,mapSeries:Xc,mapValues:Zp,mapValuesLimit:Vp,mapValuesSeries:Qp,memoize:Yp,nextTick:Xp,parallel:nl,parallelLimit:tl,priorityQueue:sl,queue:al,race:cl,reduce:mp,reduceRight:pl,reflect:ll,reflectAll:ul,reject:fl,rejectLimit:ml,rejectSeries:hl,retry:xl,retryable:bl,seq:hp,series:yl,setImmediate:Fc,some:gl,someLimit:wl,someSeries:Sl,sortBy:kl,timeout:El,times:Ol,timesLimit:jl,timesSeries:Cl,transform:_l,tryEach:Al,unmemoize:Fl,until:Pl,waterfall:Ml,whilst:Tl,all:Lp,allLimit:Mp,allSeries:Dp,any:gl,anyLimit:wl,anySeries:Sl,find:kp,findLimit:Ep,findSeries:jp,flatMap:yp,flatMapLimit:bp,flatMapSeries:gp,forEach:Tp,forEachSeries:Np,forEachLimit:Pp,forEachOf:Vc,forEachOfSeries:Yc,forEachOfLimit:Hc,inject:mp,foldl:mp,foldr:pl,select:zp,selectLimit:$p,selectSeries:Up,wrapSync:Tc,during:Tl,doDuring:_p},Bl=H(Object.freeze({__proto__:null,all:Lp,allLimit:Mp,allSeries:Dp,any:gl,anyLimit:wl,anySeries:Sl,apply:kc,applyEach:Qc,applyEachSeries:ep,asyncify:Tc,auto:ap,autoInject:cp,cargo:dp,cargoQueue:fp,compose:vp,concat:yp,concatLimit:bp,concatSeries:gp,constant:wp,default:Dl,detect:kp,detectLimit:Ep,detectSeries:jp,dir:Cp,doDuring:_p,doUntil:Ap,doWhilst:_p,during:Tl,each:Tp,eachLimit:Pp,eachOf:Vc,eachOfLimit:Hc,eachOfSeries:Yc,eachSeries:Np,ensureAsync:Ip,every:Lp,everyLimit:Mp,everySeries:Dp,filter:zp,filterLimit:$p,filterSeries:Up,find:kp,findLimit:Ep,findSeries:jp,flatMap:yp,flatMapLimit:bp,flatMapSeries:gp,foldl:mp,foldr:pl,forEach:Tp,forEachLimit:Pp,forEachOf:Vc,forEachOfLimit:Hc,forEachOfSeries:Yc,forEachSeries:Np,forever:Wp,groupBy:Hp,groupByLimit:Gp,groupBySeries:Jp,inject:mp,log:Kp,map:Zc,mapLimit:xp,mapSeries:Xc,mapValues:Zp,mapValuesLimit:Vp,mapValuesSeries:Qp,memoize:Yp,nextTick:Xp,parallel:nl,parallelLimit:tl,priorityQueue:sl,queue:al,race:cl,reduce:mp,reduceRight:pl,reflect:ll,reflectAll:ul,reject:fl,rejectLimit:ml,rejectSeries:hl,retry:xl,retryable:bl,select:zp,selectLimit:$p,selectSeries:Up,seq:hp,series:yl,setImmediate:Fc,some:gl,someLimit:wl,someSeries:Sl,sortBy:kl,timeout:El,times:Ol,timesLimit:jl,timesSeries:Cl,transform:_l,tryEach:Al,unmemoize:Fl,until:Pl,waterfall:Ml,whilst:Tl,wrapSync:Tc})),ql={exports:{}},Rl={exports:{}};function zl(){if(Il)return Nl;return Il=1,Nl=function(e){function n(e){let a,i,o,r=null;function s(...e){if(!s.enabled)return;const t=s,i=Number(new Date),o=i-(a||i);t.diff=o,t.prev=a,t.curr=i,a=i,e[0]=n.coerce(e[0]),"string"!=typeof e[0]&&e.unshift("%O");let r=0;e[0]=e[0].replace(/%([a-zA-Z%])/g,((a,i)=>{if("%%"===a)return"%";r++;const o=n.formatters[i];if("function"==typeof o){const n=e[r];a=o.call(t,n),e.splice(r,1),r--}return a})),n.formatArgs.call(t,e);(t.log||n.log).apply(t,e)}return s.namespace=e,s.useColors=n.useColors(),s.color=n.selectColor(e),s.extend=t,s.destroy=n.destroy,Object.defineProperty(s,"enabled",{enumerable:!0,configurable:!1,get:()=>null!==r?r:(i!==n.namespaces&&(i=n.namespaces,o=n.enabled(e)),o),set:e=>{r=e}}),"function"==typeof n.init&&n.init(s),s}function t(e,t){const a=n(this.namespace+(void 0===t?":":t)+e);return a.log=this.log,a}function a(e,n){let t=0,a=0,i=-1,o=0;for(;t<e.length;)if(a<n.length&&(n[a]===e[t]||"*"===n[a]))"*"===n[a]?(i=a,o=t,a++):(t++,a++);else{if(-1===i)return!1;a=i+1,o++,t=o}for(;a<n.length&&"*"===n[a];)a++;return a===n.length}return n.debug=n,n.default=n,n.coerce=function(e){if(e instanceof Error)return e.stack||e.message;return e},n.disable=function(){const e=[...n.names,...n.skips.map((e=>"-"+e))].join(",");return n.enable(""),e},n.enable=function(e){n.save(e),n.namespaces=e,n.names=[],n.skips=[];const t=("string"==typeof e?e:"").trim().replace(" ",",").split(",").filter(Boolean);for(const e of t)"-"===e[0]?n.skips.push(e.slice(1)):n.names.push(e)},n.enabled=function(e){for(const t of n.skips)if(a(e,t))return!1;for(const t of n.names)if(a(e,t))return!0;return!1},n.humanize=ee(),n.destroy=function(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")},Object.keys(e).forEach((t=>{n[t]=e[t]})),n.names=[],n.skips=[],n.formatters={},n.selectColor=function(e){let t=0;for(let n=0;n<e.length;n++)t=(t<<5)-t+e.charCodeAt(n),t|=0;return n.colors[Math.abs(t)%n.colors.length]},n.enable(n.load()),n},Nl}var $l,Ul,Wl,Gl={exports:{}};function Hl(){return $l||($l=1,function(e,n){const t=c,a=p;n.init=function(e){e.inspectOpts={};const t=Object.keys(n.inspectOpts);for(let a=0;a<t.length;a++)e.inspectOpts[t[a]]=n.inspectOpts[t[a]]},n.log=function(...e){return process.stderr.write(a.formatWithOptions(n.inspectOpts,...e)+"\n")},n.formatArgs=function(t){const{namespace:a,useColors:i}=this;if(i){const n=this.color,i="[3"+(n<8?n:"8;5;"+n),o=` ${i};1m${a} [0m`;t[0]=o+t[0].split("\n").join("\n"+o),t.push(i+"m+"+e.exports.humanize(this.diff)+"[0m")}else t[0]=function(){if(n.inspectOpts.hideDate)return"";return(new Date).toISOString()+" "}()+a+" "+t[0]},n.save=function(e){e?process.env.DEBUG=e:delete process.env.DEBUG},n.load=function(){return process.env.DEBUG},n.useColors=function(){return"colors"in n.inspectOpts?Boolean(n.inspectOpts.colors):t.isatty(process.stderr.fd)},n.destroy=a.deprecate((()=>{}),"Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."),n.colors=[6,2,3,4,5,1];try{const e=require("supports-color");e&&(e.stderr||e).level>=2&&(n.colors=[20,21,26,27,32,33,38,39,40,41,42,43,44,45,56,57,62,63,68,69,74,75,76,77,78,79,80,81,92,93,98,99,112,113,128,129,134,135,148,149,160,161,162,163,164,165,166,167,168,169,170,171,172,173,178,179,184,185,196,197,198,199,200,201,202,203,204,205,206,207,208,209,214,215,220,221])}catch(e){}n.inspectOpts=Object.keys(process.env).filter((e=>/^debug_/i.test(e))).reduce(((e,n)=>{const t=n.substring(6).toLowerCase().replace(/_([a-z])/g,((e,n)=>n.toUpperCase()));let a=process.env[n];return a=!!/^(yes|on|true|enabled)$/i.test(a)||!/^(no|off|false|disabled)$/i.test(a)&&("null"===a?null:Number(a)),e[t]=a,e}),{}),e.exports=zl()(n);const{formatters:i}=e.exports;i.o=function(e){return this.inspectOpts.colors=this.useColors,a.inspect(e,this.inspectOpts).split("\n").map((e=>e.trim())).join(" ")},i.O=function(e){return this.inspectOpts.colors=this.useColors,a.inspect(e,this.inspectOpts)}}(Gl,Gl.exports)),Gl.exports}function Jl(){return Ul||(Ul=1,"undefined"==typeof process||"renderer"===process.type||!0===process.browser||process.__nwjs?ql.exports=(Ll||(Ll=1,function(e,n){n.formatArgs=function(n){if(n[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+n[0]+(this.useColors?"%c ":" ")+"+"+e.exports.humanize(this.diff),!this.useColors)return;const t="color: "+this.color;n.splice(1,0,t,"color: inherit");let a=0,i=0;n[0].replace(/%[a-zA-Z%]/g,(e=>{"%%"!==e&&(a++,"%c"===e&&(i=a))})),n.splice(i,0,t)},n.save=function(e){try{e?n.storage.setItem("debug",e):n.storage.removeItem("debug")}catch(e){}},n.load=function(){let e;try{e=n.storage.getItem("debug")}catch(e){}return!e&&"undefined"!=typeof process&&"env"in process&&(e=process.env.DEBUG),e},n.useColors=function(){if("undefined"!=typeof window&&window.process&&("renderer"===window.process.type||window.process.__nwjs))return!0;if("undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))return!1;let e;return"undefined"!=typeof document&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||"undefined"!=typeof window&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||"undefined"!=typeof navigator&&navigator.userAgent&&(e=navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/))&&parseInt(e[1],10)>=31||"undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)},n.storage=function(){try{return localStorage}catch(e){}}(),n.destroy=(()=>{let e=!1;return()=>{e||(e=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})(),n.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"],n.log=console.debug||console.log||(()=>{}),e.exports=zl()(n);const{formatters:t}=e.exports;t.j=function(e){try{return JSON.stringify(e)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}}}(Rl,Rl.exports)),Rl.exports):ql.exports=Hl()),ql.exports}var Kl=(Wl||(Wl=1,function(e){const t=n,a=l,i=v,r=o,s=Bl,c=Jl(),p=c("portfinder:testPort"),u=c("portfinder:getPort"),d=c("portfinder:defaultHosts"),f={testPort:function(n,t){function a(){p("done w/ testPort(): OK",n.host,"port",n.port),n.server.removeListener("error",o),n.server.close((function(){p("done w/ testPort(): Server closed",n.host,"port",n.port),t(null,n.port)}))}function o(i){if(p("done w/ testPort(): failed",n.host,"w/ port",n.port,"with error",i.code),n.server.removeListener("listening",a),"EADDRINUSE"!=i.code&&"EACCES"!=i.code)return t(i);const o=e.nextPort(n.port);if(o>e.highestPort)return t(new Error("No open ports available"));f.testPort({port:o,host:n.host,server:n.server},t)}t||(t=n,n={}),n.server=n.server||i.createServer((function(){})),p("entered testPort(): trying",n.host,"port",n.port),n.server.once("error",o),n.server.once("listening",a),n.host?n.server.listen(n.port,n.host):n.server.listen(n.port)}};e.basePort=8e3,e.setBasePort=function(n){e.basePort=n},e.highestPort=65535,e.setHighestPort=function(n){e.highestPort=n},e.basePath="/tmp/portfinder",e.setBasePath=function(n){e.basePath=n},f.getPort=function(n,t){if(n.port=Number(n.port)||Number(n.startPort)||Number(e.basePort),n.host=n.host||null,n.stopPort=Number(n.stopPort)||Number(e.highestPort),!n.startPort){if(n.startPort=n.port,n.startPort<0)return t(Error(`Provided options.port(${n.port}) is less than 0, which are cannot be bound.`));if(n.stopPort<n.startPort)return t(Error(`Provided options.stopPort(${n.stopPort}) is less than options.port(${n.startPort})`))}n.host&&-1===e._defaultHosts.indexOf(n.host)&&e._defaultHosts.push(n.host);const a=[];let i;return s.eachSeries(e._defaultHosts,(function(e,t){return u("in eachSeries() iteration callback: host is",e),f.testPort({host:e,port:n.port},(function(n,o){return n?(u("in eachSeries() iteration callback testPort() callback","with an err:",n.code),i=e,t(n)):(u("in eachSeries() iteration callback testPort() callback","with a success for port",o),a.push(o),t())}))}),(function(o){if(o){if(u("in eachSeries() result callback: err is",o),"EADDRNOTAVAIL"===o.code||"EINVAL"===o.code){if(n.host===i){const e="Provided host "+n.host+" could NOT be bound. Please provide a different host address or hostname";return t(Error(e))}{const a=e._defaultHosts.indexOf(i);return e._defaultHosts.splice(a,1),f.getPort(n,t)}}return t(o)}if(a.sort((function(e,n){return e-n})),u("in eachSeries() result callback: openPorts is",a),a[0]===a[a.length-1]){if(a[0]<=n.stopPort)return t(null,a[0]);{const e="No open ports found in between "+n.startPort+" and "+n.stopPort;return t(Error(e))}}return f.getPort({port:a.pop(),host:n.host,startPort:n.startPort,stopPort:n.stopPort},t)}))},e.getPort=function(e,n){if("function"==typeof e&&(n=e,e={}),e=e||{},!n)return new Promise((function(n,t){f.getPort(e,(function(e,a){if(e)return t(e);n(a)}))}));f.getPort(e,n)},e.getPortPromise=e.getPort,f.getPorts=function(n,t,a){let i=null;s.timesSeries(n,(function(n,a){i&&(t.port=e.nextPort(i)),f.getPort(t,(function(e,n){e?a(e):(i=n,a(null,n))}))}),a)},e.getPorts=function(e,n,t){if("function"==typeof n&&(t=n,n={}),n=n||{},!t)return new Promise((function(t,a){f.getPorts(e,n,(function(e,n){if(e)return a(e);t(n)}))}));f.getPorts(e,n,t)},e.getPortsPromise=e.getPorts,f.getSocket=function(n,a){function i(){t.stat(n.path,(function(t){t?"ENOENT"==t.code?a(null,n.path):a(t):(n.path=e.nextSocket(n.path),f.getSocket(n,a))}))}return n.mod=n.mod||parseInt(755,8),n.path=n.path||e.basePath+".sock",n.exists?i():function(){const e=r.dirname(n.path);t.stat(e,(function(o,r){if(o||!r.isDirectory())return function(e){t.mkdir(e,{mode:n.mod,recursive:!0},(function(e){if(e)return a(e);n.exists=!0,i()}))}(e);n.exists=!0,i()}))}()},e.getSocket=function(e,n){if("function"==typeof e&&(n=e,e={}),e=e||{},!n)return new Promise((function(n,t){f.getSocket(e,(function(e,a){if(e)return t(e);n(a)}))}));f.getSocket(e,n)},e.getSocketPromise=e.getSocket,e.nextPort=function(e){return e+1},e.nextSocket=function(e){const n=r.dirname(e),t=r.basename(e,".sock").match(/^([a-zA-z]+)(\d*)$/i),a=t[1];let i=parseInt(t[2]);return isNaN(i)&&(i=0),i+=1,r.join(n,a+i+".sock")},e._defaultHosts=function(){let e={};try{e=a.networkInterfaces()}catch(e){if("uv_interface_addresses"!==e.syscall)throw e}const n=Object.keys(e),t=["0.0.0.0"];for(let a=0;a<n.length;a++){const i=e[n[a]];for(let e=0;e<i.length;e++){const n=i[e];t.push(n.address)}}return t.push(null),d("exports._defaultHosts is: %o",t),t}()}(Sc)),Sc),Vl=G(Kl);const Zl=b.prototype.listen,Ql=e=>{const n=e.address();if(n){((e,n)=>{const t=null!==n?`http://${e}:${n}`:e;console.log(`app listen ${t}`)})("object"==typeof n?(e=>"::"===e?"0.0.0.0":e)(n.address):n,"object"==typeof n?n.port:null)}},Yl=(e,n,t,a)=>{const{pathPrefix:i,moduleName:o,name:r}=z(n,"controller"),s=`${i}/${o}`;if(!t)return;const c=q(`${e}${`${i}/${r}`}`);t.forEach((e=>{const{method:n,path:t,handler:o,functionName:r,authRequired:p,middlewares:l}=e;var u;c&&"function"==typeof c[r]&&l.push((u=c[r].bind(c),async(e,n)=>{const t=u(e);t instanceof Promise&&await t,await n()}));const d=(f=p,m=o,async(e,n)=>{let t=a(f,e);return t instanceof Promise&&(t=await t),t?m(e,n):e.throw(403,"无权限")});var f,m;const h=[...l,d],v=Xl(t,s,r,h,n);e.path=v,e.apiPrePath=i}))},Xl=(e,n,t,a,i)=>{const o=`${n}${e}`;if(t===E){const e=`${n}/index`;Wa[i](e,...a)}return Wa[i](o,...a),o};var eu=function(e){var n=Object.prototype.hasOwnProperty;function t(e,a){return Array.isArray(e)?function(e,n){for(var a,i="",o="",s=Array.isArray(n),c=0;c<e.length;c++)(a=t(e[c]))&&(s&&n[c]&&(a=r(a)),i=i+o+a,o=" ");return i}(e,a):e&&"object"==typeof e?function(e){var t="",a="";for(var i in e)i&&e[i]&&n.call(e,i)&&(t=t+a+i,a=" ");return t}(e):e||""}function a(e){if(!e)return"";if("object"==typeof e){var t="";for(var a in e)n.call(e,a)&&(t=t+a+":"+e[a]+";");return t}return e+""}function i(e,n,t,a){return!1!==n&&null!=n&&(n||"class"!==e&&"style"!==e)?!0===n?" "+(a?e:e+'="'+e+'"'):("function"==typeof n.toJSON&&(n=n.toJSON()),"string"==typeof n||(n=JSON.stringify(n),t||-1===n.indexOf('"'))?(t&&(n=r(n))," "+e+'="'+n+'"'):" "+e+"='"+n.replace(/'/g,"'")+"'"):""}e.merge=function e(n,t){if(1===arguments.length){for(var i=n[0],o=1;o<n.length;o++)i=e(i,n[o]);return i}for(var r in t)if("class"===r){var s=n[r]||[];n[r]=(Array.isArray(s)?s:[s]).concat(t[r]||[])}else if("style"===r){s=(s=a(n[r]))&&";"!==s[s.length-1]?s+";":s;var c=a(t[r]);c=c&&";"!==c[c.length-1]?c+";":c,n[r]=s+c}else n[r]=t[r];return n},e.classes=t,e.style=a,e.attr=i,e.attrs=function(e,o){var r="";for(var s in e)if(n.call(e,s)){var c=e[s];if("class"===s){r=i(s,c=t(c),!1,o)+r;continue}"style"===s&&(c=a(c)),r+=i(s,c,!1,o)}return r};var o=/["&<>]/;function r(e){var n=""+e,t=o.exec(n);if(!t)return e;var a,i,r,s="";for(a=t.index,i=0;a<n.length;a++){switch(n.charCodeAt(a)){case 34:r=""";break;case 38:r="&";break;case 60:r="<";break;case 62:r=">";break;default:continue}i!==a&&(s+=n.substring(i,a)),i=a+1,s+=r}return i!==a?s+n.substring(i,a):s}return e.escape=r,e.rethrow=function e(n,t,a,i){if(!(n instanceof Error))throw n;if(!("undefined"==typeof window&&t||i))throw n.message+=" on line "+a,n;try{i=i||require("fs").readFileSync(t,"utf8")}catch(t){e(n,null,a)}var o=3,r=i.split("\n"),s=Math.max(a-o,0),c=Math.min(r.length,a+o);o=r.slice(s,c).map((function(e,n){var t=n+s+1;return(t==a?" > ":" ")+t+"| "+e})).join("\n");throw n.path=t,n.message=(t||"Pug")+":"+a+"\n"+o+"\n\n"+n.message,n},e}({});function nu(e){var n,t,a="";try{var i={},o=e||{};(function(e,t){a+="<!DOCTYPE html>",a+="\n<html>",a+="\n <head>",a+="\n <title>",a+="API Documentation</title>",a+="\n <style>\n ",a+="body { font-family: Arial, sans-serif; margin: 20px; }",a+="\n ",a+="",a+="\n ",a+="h1 { color: #333; text-align: center; }",a+="\n ",a+="h2 { color: #333333 }",a+="\n ",a+="h3 { cursor: pointer; transition: color 0.3s; }",a+="\n ",a+="h3 { color: #007BFF; }",a+="\n ",a+="h3:hover { color: #0056b3; }",a+="\n ",a+="",a+="\n ",a+=".api-section { ",a+="\n ",a+=" margin: 20px 0; ",a+="\n ",a+=" border: 1px solid #e0e0e0; ",a+="\n ",a+=" border-radius: 8px; ",a+="\n ",a+=" padding: 10px; ",a+="\n ",a+=" background-color: #f9f9f9; ",a+="\n ",a+=" box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.1); ",a+="\n ",a+="}",a+="\n ",a+="",a+="\n ",a+=".api-method { font-weight: bold; color: #333; }",a+="\n ",a+=".api-path { font-style: italic; color: #555; }",a+="\n ",a+="",a+="\n ",a+="pre { ",a+="\n ",a+=" background: #f4f4f4; ",a+="\n ",a+=" padding: 10px; ",a+="\n ",a+=" border-radius: 5px; ",a+="\n ",a+=" overflow-x: auto; ",a+="\n ",a+="}",a+="\n ",a+="",a+="\n ",a+=".collapse { display: none; }",a+="\n ",a+="\n </style>\n </head>",a+="\n <body>",a+="\n <h1>",a+="API Documentation</h1>",a+="\n \x3c!-- 添加 JavaScript 用于折叠 Sections--\x3e",a+="\n <script>\n ",a+="document.addEventListener('DOMContentLoaded', function() {",a+="\n ",a+=" const headings = document.querySelectorAll('.toggle');",a+="\n ",a+=" headings.forEach(heading => {",a+="\n ",a+=" heading.addEventListener('click', function() {",a+="\n ",a+=" // 找到 h3 后面的 collapse 元素",a+="\n ",a+=" let content = heading.nextElementSibling;",a+="\n ",a+=" if(!(content && content.classList.contains('collapse'))) {",a+="\n ",a+=" content = content.nextElementSibling;",a+="\n ",a+=" }",a+="\n ",a+=" if (content && content.classList.contains('collapse')) {",a+="\n ",a+=' content.style.display = (content.style.display === "block") ? "none" : "block";',a+="\n ",a+=" }",a+="\n ",a+=" });",a+="\n ",a+=" });",a+="\n ",a+="});",a+="\n ",a+="\n <\/script>",function(){var i=t;if("number"==typeof i.length)for(var o=0,r=i.length;o<r;o++){var s=i[o];a=(a+="\n <h2>")+eu.escape(null==(n=s[0])?"":n)+"</h2>",function(){var t=s[1];if("number"==typeof t.length)for(var i=0,o=t.length;i<o;i++){var r=t[i];a+='\n <div class="api-section">',a=(a+='\n <h3 class="toggle">')+eu.escape(null==(n=r.name)?"":n)+"</h3>",r.desc&&(a=(a+="\n <p>")+eu.escape(null==(n=r.desc)?"":n)+"</p>"),a+='\n <div class="collapse">',function(){var t=r.configs;if("number"==typeof t.length)for(var i=0,o=t.length;i<o;i++){var s=t[i];a=(a+='\n <h4 class="api-method">')+eu.escape(null==(n=s.method.toUpperCase()+" "+s.path)?"":n)+"</h4>",s.description&&(a=(a+="\n <h5>")+eu.escape(null==(n=s.description)?"":n)+"</h5>"),a+="\n <pre>",a+="Request Header:</pre>",a=(a+="\n <pre>")+eu.escape(null==(n=e.stringify(s.request.header,null,2))?"":n)+"</pre>",a+="\n <pre>",a+="Request Body:</pre>",a=(a+="\n <pre>")+eu.escape(null==(n=e.stringify(s.request.body,null,2))?"":n)+"</pre>",a+="\n <pre>",a+="Request Query:</pre>",a=(a+="\n <pre>")+eu.escape(null==(n=e.stringify(s.request.query,null,2))?"":n)+"</pre>",a+="\n <pre>",a+="Response Body:</pre>",a=(a+="\n <pre>")+eu.escape(null==(n=e.stringify(s.response.body,null,2))?"":n)+"</pre>"}else{o=0;for(var i in t){o++;s=t[i];a=(a+='\n <h4 class="api-method">')+eu.escape(null==(n=s.method.toUpperCase()+" "+s.path)?"":n)+"</h4>",s.description&&(a=(a+="\n <h5>")+eu.escape(null==(n=s.description)?"":n)+"</h5>"),a+="\n <pre>",a+="Request Header:</pre>",a=(a+="\n <pre>")+eu.escape(null==(n=e.stringify(s.request.header,null,2))?"":n)+"</pre>",a+="\n <pre>",a+="Request Body:</pre>",a=(a+="\n <pre>")+eu.escape(null==(n=e.stringify(s.request.body,null,2))?"":n)+"</pre>",a+="\n <pre>",a+="Request Query:</pre>",a=(a+="\n <pre>")+eu.escape(null==(n=e.stringify(s.request.query,null,2))?"":n)+"</pre>",a+="\n <pre>",a+="Response Body:</pre>",a=(a+="\n <pre>")+eu.escape(null==(n=e.stringify(s.response.body,null,2))?"":n)+"</pre>"}}}.call(this),a+="\n </div>\n </div>"}else{o=0;for(var i in t){o++;r=t[i];a+='\n <div class="api-section">',a=(a+='\n <h3 class="toggle">')+eu.escape(null==(n=r.name)?"":n)+"</h3>",r.desc&&(a=(a+="\n <p>")+eu.escape(null==(n=r.desc)?"":n)+"</p>"),a+='\n <div class="collapse">',function(){var t=r.configs;if("number"==typeof t.length)for(var i=0,o=t.length;i<o;i++){var s=t[i];a=(a+='\n <h4 class="api-method">')+eu.escape(null==(n=s.method.toUpperCase()+" "+s.path)?"":n)+"</h4>",s.description&&(a=(a+="\n <h5>")+eu.escape(null==(n=s.description)?"":n)+"</h5>"),a+="\n <pre>",a+="Request Header:</pre>",a=(a+="\n <pre>")+eu.escape(null==(n=e.stringify(s.request.header,null,2))?"":n)+"</pre>",a+="\n <pre>",a+="Request Body:</pre>",a=(a+="\n <pre>")+eu.escape(null==(n=e.stringify(s.request.body,null,2))?"":n)+"</pre>",a+="\n <pre>",a+="Request Query:</pre>",a=(a+="\n <pre>")+eu.escape(null==(n=e.stringify(s.request.query,null,2))?"":n)+"</pre>",a+="\n <pre>",a+="Response Body:</pre>",a=(a+="\n <pre>")+eu.escape(null==(n=e.stringify(s.response.body,null,2))?"":n)+"</pre>"}else{o=0;for(var i in t){o++;s=t[i];a=(a+='\n <h4 class="api-method">')+eu.escape(null==(n=s.method.toUpperCase()+" "+s.path)?"":n)+"</h4>",s.description&&(a=(a+="\n <h5>")+eu.escape(null==(n=s.description)?"":n)+"</h5>"),a+="\n <pre>",a+="Request Header:</pre>",a=(a+="\n <pre>")+eu.escape(null==(n=e.stringify(s.request.header,null,2))?"":n)+"</pre>",a+="\n <pre>",a+="Request Body:</pre>",a=(a+="\n <pre>")+eu.escape(null==(n=e.stringify(s.request.body,null,2))?"":n)+"</pre>",a+="\n <pre>",a+="Request Query:</pre>",a=(a+="\n <pre>")+eu.escape(null==(n=e.stringify(s.request.query,null,2))?"":n)+"</pre>",a+="\n <pre>",a+="Response Body:</pre>",a=(a+="\n <pre>")+eu.escape(null==(n=e.stringify(s.response.body,null,2))?"":n)+"</pre>"}}}.call(this),a+="\n </div>\n </div>"}}}.call(this)}else{r=0;for(var o in i){r++;s=i[o];a=(a+="\n <h2>")+eu.escape(null==(n=s[0])?"":n)+"</h2>",function(){var t=s[1];if("number"==typeof t.length)for(var i=0,o=t.length;i<o;i++){var r=t[i];a+='\n <div class="api-section">',a=(a+='\n <h3 class="toggle">')+eu.escape(null==(n=r.name)?"":n)+"</h3>",r.desc&&(a=(a+="\n <p>")+eu.escape(null==(n=r.desc)?"":n)+"</p>"),a+='\n <div class="collapse">',function(){var t=r.configs;if("number"==typeof t.length)for(var i=0,o=t.length;i<o;i++){var s=t[i];a=(a+='\n <h4 class="api-method">')+eu.escape(null==(n=s.method.toUpperCase()+" "+s.path)?"":n)+"</h4>",s.description&&(a=(a+="\n <h5>")+eu.escape(null==(n=s.description)?"":n)+"</h5>"),a+="\n <pre>",a+="Request Header:</pre>",a=(a+="\n <pre>")+eu.escape(null==(n=e.stringify(s.request.header,null,2))?"":n)+"</pre>",a+="\n <pre>",a+="Request Body:</pre>",a=(a+="\n <pre>")+eu.escape(null==(n=e.stringify(s.request.body,null,2))?"":n)+"</pre>",a+="\n <pre>",a+="Request Query:</pre>",a=(a+="\n <pre>")+eu.escape(null==(n=e.stringify(s.request.query,null,2))?"":n)+"</pre>",a+="\n <pre>",a+="Response Body:</pre>",a=(a+="\n <pre>")+eu.escape(null==(n=e.stringify(s.response.body,null,2))?"":n)+"</pre>"}else{o=0;for(var i in t){o++;s=t[i];a=(a+='\n <h4 class="api-method">')+eu.escape(null==(n=s.method.toUpperCase()+" "+s.path)?"":n)+"</h4>",s.description&&(a=(a+="\n <h5>")+eu.escape(null==(n=s.description)?"":n)+"</h5>"),a+="\n <pre>",a+="Request Header:</pre>",a=(a+="\n <pre>")+eu.escape(null==(n=e.stringify(s.request.header,null,2))?"":n)+"</pre>",a+="\n <pre>",a+="Request Body:</pre>",a=(a+="\n <pre>")+eu.escape(null==(n=e.stringify(s.request.body,null,2))?"":n)+"</pre>",a+="\n <pre>",a+="Request Query:</pre>",a=(a+="\n <pre>")+eu.escape(null==(n=e.stringify(s.request.query,null,2))?"":n)+"</pre>",a+="\n <pre>",a+="Response Body:</pre>",a=(a+="\n <pre>")+eu.escape(null==(n=e.stringify(s.response.body,null,2))?"":n)+"</pre>"}}}.call(this),a+="\n </div>\n </div>"}else{o=0;for(var i in t){o++;r=t[i];a+='\n <div class="api-section">',a=(a+='\n <h3 class="toggle">')+eu.escape(null==(n=r.name)?"":n)+"</h3>",r.desc&&(a=(a+="\n <p>")+eu.escape(null==(n=r.desc)?"":n)+"</p>"),a+='\n <div class="collapse">',function(){var t=r.configs;if("number"==typeof t.length)for(var i=0,o=t.length;i<o;i++){var s=t[i];a=(a+='\n <h4 class="api-method">')+eu.escape(null==(n=s.method.toUpperCase()+" "+s.path)?"":n)+"</h4>",s.description&&(a=(a+="\n <h5>")+eu.escape(null==(n=s.description)?"":n)+"</h5>"),a+="\n <pre>",a+="Request Header:</pre>",a=(a+="\n <pre>")+eu.escape(null==(n=e.stringify(s.request.header,null,2))?"":n)+"</pre>",a+="\n <pre>",a+="Request Body:</pre>",a=(a+="\n <pre>")+eu.escape(null==(n=e.stringify(s.request.body,null,2))?"":n)+"</pre>",a+="\n <pre>",a+="Request Query:</pre>",a=(a+="\n <pre>")+eu.escape(null==(n=e.stringify(s.request.query,null,2))?"":n)+"</pre>",a+="\n <pre>",a+="Response Body:</pre>",a=(a+="\n <pre>")+eu.escape(null==(n=e.stringify(s.response.body,null,2))?"":n)+"</pre>"}else{o=0;for(var i in t){o++;s=t[i];a=(a+='\n <h4 class="api-method">')+eu.escape(null==(n=s.method.toUpperCase()+" "+s.path)?"":n)+"</h4>",s.description&&(a=(a+="\n <h5>")+eu.escape(null==(n=s.description)?"":n)+"</h5>"),a+="\n <pre>",a+="Request Header:</pre>",a=(a+="\n <pre>")+eu.escape(null==(n=e.stringify(s.request.header,null,2))?"":n)+"</pre>",a+="\n <pre>",a+="Request Body:</pre>",a=(a+="\n <pre>")+eu.escape(null==(n=e.stringify(s.request.body,null,2))?"":n)+"</pre>",a+="\n <pre>",a+="Request Query:</pre>",a=(a+="\n <pre>")+eu.escape(null==(n=e.stringify(s.request.query,null,2))?"":n)+"</pre>",a+="\n <pre>",a+="Response Body:</pre>",a=(a+="\n <pre>")+eu.escape(null==(n=e.stringify(s.response.body,null,2))?"":n)+"</pre>"}}}.call(this),a+="\n </div>\n </div>"}}}.call(this)}}}.call(this),a+="\n </body>\n</html>"}).call(this,"JSON"in o?o.JSON:"undefined"!=typeof JSON?JSON:void 0,"apiData"in o?o.apiData:"undefined"!=typeof apiData?apiData:void 0)}catch(e){eu.rethrow(e,t,undefined,i[void 0])}return a}const tu={DOCUMENTATION_DIR:s(process.cwd(),"doc")},au=(e,n)=>{const t=q(e.wholePath),a=t.prototype,i=Object.getOwnPropertyNames(a).filter((e=>"function"==typeof a[e]&&"constructor"!==e)),o=e.path.substring(e.path.indexOf("doc")+3),r=i.map((e=>{if("function"==typeof a[e]){const n=a[e]();return n.path=o+n.path,n}return null})).filter((e=>!!e));let s="";if(r[0]?.path){const e=r[0].path.lastIndexOf("/");e>-1&&(s=r[0].path.substring(0,e))}return{configs:r,desc:t.desc,name:t.name,pathPrefix:n,apiPrePath:s}},iu=async(e,n)=>{e.extra={get:e.query,post:e.request.body??{}},await n()};(()=>{const e=process.env.NODE_ENV||"production",n=D();let a=r(n,"env");switch(function(e){try{return t(e).isDirectory()}catch(e){return e.code,!1}}(a)||(a=r(n,"..","env")),console.log("load env path: ",a),w.config({path:r(a,".common.env")}),e){case"development":w.config({path:r(a,".development.env")});break;case"test":w.config({path:r(a,".test.env")});break;case"production":w.config({path:r(a,".production.env")})}})(),global.isDev="development"===process.env.NODE_ENV;const ou=async e=>{const{koaInstance:n,authCheckCallback:t,catchErrorCallback:a,registerHighPriorityMiddleware:i,registerHook:o,log4:r=!1,runtimeLog:s=!0}=e,c=n||new b;var p;return c.context.log4=(e=>{if(!1!==e)return"boolean"==typeof e&&!0===e?$a():e(Ra)})(r),c.context.hook=o,c.context.runtimeLog=s,c.use(U),c.use((p=a,async(e,n)=>{try{await n()}catch(n){e.hook?.(e,"error"),p?p(n,e):L(500,{message:n.message})}})),i?.(c),c.use(Ua),e.corsMiddleware&&c.use(e.corsMiddleware),c.use(wc()),c.use(iu),(e=>{const{controllerModule:n,validateModule:t}=B();console.log("load controller path: ",n),R(n,(n=>{if(!n.path.includes("controller"))return;const a=q(n.wholePath),i=a?.routesMap;i&&Yl(t,n,i,((t,a)=>!t||e({filePath:n,ctx:a})))}))})(t),c.context.validated={params:{},get:{},post:{}},"development"!==process.env.NODE_ENV&&"true"!==process.env.DOC||Wa.get("/doc",(async e=>{const n=await(async()=>{const e=[],n=new Map;return R(tu.DOCUMENTATION_DIR,(n=>{const{pathPrefix:t}=z(n,"doc");e.push(au(n,t))})),e.forEach((e=>{n.has(e.pathPrefix)||n.set(e.pathPrefix,[]),n.get(e.pathPrefix)?.push(e)})),nu({apiData:Array.from(n.entries())})})();e.body=n})),Wa.get("/",(async e=>{e.body={code:200,message:"hello koa-ts-cli https://www.npmjs.com/package/koa-ts-core"}})),c.use(Wa.routes()),await(async e=>{const n=process.env.APP_PORT;if(n){const t=e.listen(Number(n));return void t.on("listening",(()=>Ql(t)))}const t=await Vl.getPortPromise({port:8e3,stopPort:9999});e.listen=(...n)=>{const a=0===n.length?Zl.apply(e,[t]):Zl.apply(e,n);return a.on("listening",(()=>Ql(a))),a}})(c),[c,Wa]};export{A as AuthRouter,M as BaseException,E as INDEX_ROUTE,_ as Router,F as contextStore,L as errorRsp,T as getCurrentContext,B as getSrcModulePaths,ou as initializeKoaApp,N as successRsp,I as unSuccessRsp};
|