@zhin.js/core 1.0.24 → 1.0.26
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/CHANGELOG.md +22 -0
- package/README.md +84 -342
- package/lib/adapter.d.ts +45 -1
- package/lib/adapter.d.ts.map +1 -1
- package/lib/adapter.js +182 -1
- package/lib/adapter.js.map +1 -1
- package/lib/ai/agent.d.ts +126 -0
- package/lib/ai/agent.d.ts.map +1 -0
- package/lib/ai/agent.js +645 -0
- package/lib/ai/agent.js.map +1 -0
- package/lib/ai/context-manager.d.ts +213 -0
- package/lib/ai/context-manager.d.ts.map +1 -0
- package/lib/ai/context-manager.js +313 -0
- package/lib/ai/context-manager.js.map +1 -0
- package/lib/ai/conversation-memory.d.ts +181 -0
- package/lib/ai/conversation-memory.d.ts.map +1 -0
- package/lib/ai/conversation-memory.js +581 -0
- package/lib/ai/conversation-memory.js.map +1 -0
- package/lib/ai/follow-up.d.ts +131 -0
- package/lib/ai/follow-up.d.ts.map +1 -0
- package/lib/ai/follow-up.js +265 -0
- package/lib/ai/follow-up.js.map +1 -0
- package/lib/ai/index.d.ts +29 -0
- package/lib/ai/index.d.ts.map +1 -0
- package/lib/ai/index.js +34 -0
- package/lib/ai/index.js.map +1 -0
- package/lib/ai/init.d.ts +30 -0
- package/lib/ai/init.d.ts.map +1 -0
- package/lib/ai/init.js +424 -0
- package/lib/ai/init.js.map +1 -0
- package/lib/ai/output.d.ts +93 -0
- package/lib/ai/output.d.ts.map +1 -0
- package/lib/ai/output.js +176 -0
- package/lib/ai/output.js.map +1 -0
- package/lib/ai/providers/anthropic.d.ts +23 -0
- package/lib/ai/providers/anthropic.d.ts.map +1 -0
- package/lib/ai/providers/anthropic.js +322 -0
- package/lib/ai/providers/anthropic.js.map +1 -0
- package/lib/ai/providers/base.d.ts +43 -0
- package/lib/ai/providers/base.d.ts.map +1 -0
- package/lib/ai/providers/base.js +135 -0
- package/lib/ai/providers/base.js.map +1 -0
- package/lib/ai/providers/index.d.ts +12 -0
- package/lib/ai/providers/index.d.ts.map +1 -0
- package/lib/ai/providers/index.js +9 -0
- package/lib/ai/providers/index.js.map +1 -0
- package/lib/ai/providers/ollama.d.ts +25 -0
- package/lib/ai/providers/ollama.d.ts.map +1 -0
- package/lib/ai/providers/ollama.js +243 -0
- package/lib/ai/providers/ollama.js.map +1 -0
- package/lib/ai/providers/openai.d.ts +46 -0
- package/lib/ai/providers/openai.d.ts.map +1 -0
- package/lib/ai/providers/openai.js +132 -0
- package/lib/ai/providers/openai.js.map +1 -0
- package/lib/ai/rate-limiter.d.ts +38 -0
- package/lib/ai/rate-limiter.d.ts.map +1 -0
- package/lib/ai/rate-limiter.js +86 -0
- package/lib/ai/rate-limiter.js.map +1 -0
- package/lib/ai/service.d.ts +81 -0
- package/lib/ai/service.d.ts.map +1 -0
- package/lib/ai/service.js +274 -0
- package/lib/ai/service.js.map +1 -0
- package/lib/ai/session.d.ts +186 -0
- package/lib/ai/session.d.ts.map +1 -0
- package/lib/ai/session.js +443 -0
- package/lib/ai/session.js.map +1 -0
- package/lib/ai/tone-detector.d.ts +19 -0
- package/lib/ai/tone-detector.d.ts.map +1 -0
- package/lib/ai/tone-detector.js +72 -0
- package/lib/ai/tone-detector.js.map +1 -0
- package/lib/ai/tools.d.ts +45 -0
- package/lib/ai/tools.d.ts.map +1 -0
- package/lib/ai/tools.js +206 -0
- package/lib/ai/tools.js.map +1 -0
- package/lib/ai/types.d.ts +264 -0
- package/lib/ai/types.d.ts.map +1 -0
- package/lib/ai/types.js +6 -0
- package/lib/ai/types.js.map +1 -0
- package/lib/ai/user-profile.d.ts +56 -0
- package/lib/ai/user-profile.d.ts.map +1 -0
- package/lib/ai/user-profile.js +130 -0
- package/lib/ai/user-profile.js.map +1 -0
- package/lib/ai/zhin-agent.d.ts +165 -0
- package/lib/ai/zhin-agent.d.ts.map +1 -0
- package/lib/ai/zhin-agent.js +707 -0
- package/lib/ai/zhin-agent.js.map +1 -0
- package/lib/built/adapter-process.d.ts +4 -0
- package/lib/built/adapter-process.d.ts.map +1 -1
- package/lib/built/adapter-process.js +94 -0
- package/lib/built/adapter-process.js.map +1 -1
- package/lib/built/ai-trigger.d.ts +89 -0
- package/lib/built/ai-trigger.d.ts.map +1 -0
- package/lib/built/ai-trigger.js +166 -0
- package/lib/built/ai-trigger.js.map +1 -0
- package/lib/built/command.d.ts +33 -17
- package/lib/built/command.d.ts.map +1 -1
- package/lib/built/command.js +71 -44
- package/lib/built/command.js.map +1 -1
- package/lib/built/component.d.ts +42 -15
- package/lib/built/component.d.ts.map +1 -1
- package/lib/built/component.js +84 -52
- package/lib/built/component.js.map +1 -1
- package/lib/built/config.d.ts +54 -5
- package/lib/built/config.d.ts.map +1 -1
- package/lib/built/config.js +76 -10
- package/lib/built/config.js.map +1 -1
- package/lib/built/cron.d.ts +41 -18
- package/lib/built/cron.d.ts.map +1 -1
- package/lib/built/cron.js +106 -63
- package/lib/built/cron.js.map +1 -1
- package/lib/built/database.d.ts +55 -6
- package/lib/built/database.d.ts.map +1 -1
- package/lib/built/database.js +93 -22
- package/lib/built/database.js.map +1 -1
- package/lib/built/dispatcher.d.ts +118 -0
- package/lib/built/dispatcher.d.ts.map +1 -0
- package/lib/built/dispatcher.js +196 -0
- package/lib/built/dispatcher.js.map +1 -0
- package/lib/built/permission.d.ts +45 -5
- package/lib/built/permission.d.ts.map +1 -1
- package/lib/built/permission.js +56 -11
- package/lib/built/permission.js.map +1 -1
- package/lib/built/skill.d.ts +117 -0
- package/lib/built/skill.d.ts.map +1 -0
- package/lib/built/skill.js +191 -0
- package/lib/built/skill.js.map +1 -0
- package/lib/built/tool.d.ts +188 -0
- package/lib/built/tool.d.ts.map +1 -0
- package/lib/built/tool.js +749 -0
- package/lib/built/tool.js.map +1 -0
- package/lib/feature.d.ts +75 -0
- package/lib/feature.d.ts.map +1 -0
- package/lib/feature.js +69 -0
- package/lib/feature.js.map +1 -0
- package/lib/index.d.ts +6 -0
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +11 -0
- package/lib/index.js.map +1 -1
- package/lib/plugin.d.ts +53 -18
- package/lib/plugin.d.ts.map +1 -1
- package/lib/plugin.js +301 -31
- package/lib/plugin.js.map +1 -1
- package/lib/types.d.ts +248 -9
- package/lib/types.d.ts.map +1 -1
- package/lib/utils.d.ts.map +1 -1
- package/lib/utils.js +38 -12
- package/lib/utils.js.map +1 -1
- package/package.json +4 -4
- package/src/adapter.ts +206 -2
- package/src/ai/agent.ts +772 -0
- package/src/ai/context-manager.ts +440 -0
- package/src/ai/conversation-memory.ts +774 -0
- package/src/ai/follow-up.ts +357 -0
- package/src/ai/index.ts +128 -0
- package/src/ai/init.ts +502 -0
- package/src/ai/output.ts +261 -0
- package/src/ai/providers/anthropic.ts +375 -0
- package/src/ai/providers/base.ts +173 -0
- package/src/ai/providers/index.ts +13 -0
- package/src/ai/providers/ollama.ts +292 -0
- package/src/ai/providers/openai.ts +167 -0
- package/src/ai/rate-limiter.ts +129 -0
- package/src/ai/service.ts +319 -0
- package/src/ai/session.ts +544 -0
- package/src/ai/tone-detector.ts +89 -0
- package/src/ai/tools.ts +218 -0
- package/src/ai/types.ts +296 -0
- package/src/ai/user-profile.ts +181 -0
- package/src/ai/zhin-agent.ts +845 -0
- package/src/built/adapter-process.ts +99 -0
- package/src/built/ai-trigger.ts +259 -0
- package/src/built/command.ts +75 -69
- package/src/built/component.ts +94 -76
- package/src/built/config.ts +238 -128
- package/src/built/cron.ts +117 -101
- package/src/built/database.ts +128 -33
- package/src/built/dispatcher.ts +332 -0
- package/src/built/permission.ts +146 -54
- package/src/built/skill.ts +280 -0
- package/src/built/tool.ts +928 -0
- package/src/feature.ts +113 -0
- package/src/index.ts +11 -0
- package/src/plugin.ts +359 -69
- package/src/types.ts +306 -11
- package/src/utils.ts +37 -13
- package/tests/adapter.test.ts +153 -1
- package/tests/ai/agent.test.ts +614 -0
- package/tests/ai/ai-trigger.test.ts +368 -0
- package/tests/ai/context-manager.test.ts +413 -0
- package/tests/ai/conversation-memory.test.ts +128 -0
- package/tests/ai/follow-up.test.ts +175 -0
- package/tests/ai/integration.test.ts +584 -0
- package/tests/ai/output.test.ts +128 -0
- package/tests/ai/providers.integration.test.ts +227 -0
- package/tests/ai/rate-limiter.test.ts +108 -0
- package/tests/ai/session.test.ts +375 -0
- package/tests/ai/setup.ts +308 -0
- package/tests/ai/tone-detector.test.ts +80 -0
- package/tests/ai/tool.test.ts +800 -0
- package/tests/ai/tools-builtin.test.ts +346 -0
- package/tests/ai/user-profile.test.ts +73 -0
- package/tests/ai/zhin-agent.test.ts +177 -0
- package/tests/component-new.test.ts +17 -6
- package/tests/config.test.ts +46 -0
- package/tests/cron.test.ts +94 -5
- package/tests/dispatcher.test.ts +146 -0
- package/tests/feature.test.ts +145 -0
- package/tests/features-builtin.test.ts +191 -0
- package/tests/plugin.test.ts +88 -14
- package/tests/skill-feature.test.ts +179 -0
- package/tests/tool-feature.test.ts +254 -0
package/lib/plugin.js
CHANGED
|
@@ -11,6 +11,7 @@ import { fileURLToPath } from "url";
|
|
|
11
11
|
import logger from "@zhin.js/logger";
|
|
12
12
|
import { compose, remove, resolveEntry } from "./utils.js";
|
|
13
13
|
import { Adapter } from "./adapter.js";
|
|
14
|
+
import { Feature } from "./feature.js";
|
|
14
15
|
import { createHash } from "crypto";
|
|
15
16
|
const contextsKey = Symbol("contexts");
|
|
16
17
|
const loadedModules = new Map(); // 记录已加载的模块
|
|
@@ -44,10 +45,17 @@ function getCurrentFile(metaUrl = import.meta.url) {
|
|
|
44
45
|
/**
|
|
45
46
|
* usePlugin - 获取或创建当前插件实例
|
|
46
47
|
* 类似 React Hooks 的设计,根据调用文件自动创建插件树
|
|
48
|
+
*
|
|
49
|
+
* 同一个文件多次调用 usePlugin() 返回同一个实例,
|
|
50
|
+
* 避免 Plugin.create() + usePlugin() 产生不必要的双层包装。
|
|
47
51
|
*/
|
|
48
52
|
export function usePlugin() {
|
|
49
53
|
const callerFile = getCurrentFile();
|
|
50
54
|
const parentPlugin = storage.getStore();
|
|
55
|
+
// 同一文件再次调用 usePlugin(),直接复用已有实例
|
|
56
|
+
if (parentPlugin && parentPlugin.filePath === callerFile) {
|
|
57
|
+
return parentPlugin;
|
|
58
|
+
}
|
|
51
59
|
const newPlugin = new Plugin(callerFile, parentPlugin);
|
|
52
60
|
storage.enterWith(newPlugin);
|
|
53
61
|
return newPlugin;
|
|
@@ -127,8 +135,12 @@ export class Plugin extends EventEmitter {
|
|
|
127
135
|
};
|
|
128
136
|
// 插件功能
|
|
129
137
|
#middlewares = [this.#messageMiddleware];
|
|
138
|
+
// 本地工具存储(当 ToolService 不可用时使用)
|
|
139
|
+
#tools = new Map();
|
|
130
140
|
// 统一的清理函数集合
|
|
131
141
|
#disposables = new Set();
|
|
142
|
+
// 记录当前插件向哪些 Feature 贡献了哪些 item
|
|
143
|
+
#featureContributions = new Map();
|
|
132
144
|
get middleware() {
|
|
133
145
|
return compose(this.#middlewares);
|
|
134
146
|
}
|
|
@@ -155,8 +167,17 @@ export class Plugin extends EventEmitter {
|
|
|
155
167
|
/**
|
|
156
168
|
* 添加中间件
|
|
157
169
|
* 中间件用于处理消息流转
|
|
170
|
+
* @param middleware 中间件函数
|
|
158
171
|
*/
|
|
159
|
-
addMiddleware(middleware
|
|
172
|
+
addMiddleware(middleware) {
|
|
173
|
+
if (this.parent) {
|
|
174
|
+
const dispose = this.parent.addMiddleware(middleware);
|
|
175
|
+
this.#disposables.add(dispose);
|
|
176
|
+
return () => {
|
|
177
|
+
dispose();
|
|
178
|
+
this.#disposables.delete(dispose);
|
|
179
|
+
};
|
|
180
|
+
}
|
|
160
181
|
this.#middlewares.push(middleware);
|
|
161
182
|
const dispose = () => {
|
|
162
183
|
remove(this.#middlewares, middleware);
|
|
@@ -165,21 +186,120 @@ export class Plugin extends EventEmitter {
|
|
|
165
186
|
this.#disposables.add(dispose);
|
|
166
187
|
return dispose;
|
|
167
188
|
}
|
|
189
|
+
/**
|
|
190
|
+
* 添加工具
|
|
191
|
+
* 工具可以被 AI 服务调用,也会自动生成对应的命令
|
|
192
|
+
* @param tool 工具定义
|
|
193
|
+
* @param generateCommand 是否生成对应命令(默认 true)
|
|
194
|
+
* @returns 返回一个移除工具的函数
|
|
195
|
+
*/
|
|
196
|
+
addTool(tool, generateCommand = true) {
|
|
197
|
+
// 尝试使用 ToolFeature
|
|
198
|
+
const toolService = this.root.inject('tool');
|
|
199
|
+
if (toolService && typeof toolService.addTool === 'function') {
|
|
200
|
+
const dispose = toolService.addTool(tool, this.name, generateCommand);
|
|
201
|
+
this.#disposables.add(dispose);
|
|
202
|
+
return () => {
|
|
203
|
+
dispose();
|
|
204
|
+
this.#disposables.delete(dispose);
|
|
205
|
+
};
|
|
206
|
+
}
|
|
207
|
+
// 回退到本地存储
|
|
208
|
+
const toolWithSource = {
|
|
209
|
+
...tool,
|
|
210
|
+
source: tool.source || `plugin:${this.name}`,
|
|
211
|
+
tags: [...(tool.tags || []), 'plugin', this.name],
|
|
212
|
+
};
|
|
213
|
+
this.#tools.set(tool.name, toolWithSource);
|
|
214
|
+
const dispose = () => {
|
|
215
|
+
this.#tools.delete(tool.name);
|
|
216
|
+
this.#disposables.delete(dispose);
|
|
217
|
+
};
|
|
218
|
+
this.#disposables.add(dispose);
|
|
219
|
+
return dispose;
|
|
220
|
+
}
|
|
221
|
+
/**
|
|
222
|
+
* 获取当前插件注册的所有工具
|
|
223
|
+
*/
|
|
224
|
+
getTools() {
|
|
225
|
+
return Array.from(this.#tools.values());
|
|
226
|
+
}
|
|
227
|
+
/**
|
|
228
|
+
* 获取当前插件及所有子插件注册的工具
|
|
229
|
+
*/
|
|
230
|
+
getAllTools() {
|
|
231
|
+
const tools = [...this.getTools()];
|
|
232
|
+
for (const child of this.children) {
|
|
233
|
+
tools.push(...child.getAllTools());
|
|
234
|
+
}
|
|
235
|
+
return tools;
|
|
236
|
+
}
|
|
237
|
+
/**
|
|
238
|
+
* 根据名称获取工具
|
|
239
|
+
*/
|
|
240
|
+
getTool(name) {
|
|
241
|
+
// 先在当前插件查找
|
|
242
|
+
const tool = this.#tools.get(name);
|
|
243
|
+
if (tool)
|
|
244
|
+
return tool;
|
|
245
|
+
// 再在子插件中查找
|
|
246
|
+
for (const child of this.children) {
|
|
247
|
+
const childTool = child.getTool(name);
|
|
248
|
+
if (childTool)
|
|
249
|
+
return childTool;
|
|
250
|
+
}
|
|
251
|
+
return undefined;
|
|
252
|
+
}
|
|
253
|
+
/**
|
|
254
|
+
* 收集所有可用的工具
|
|
255
|
+
* 优先使用 ToolService,否则回退到本地收集
|
|
256
|
+
*/
|
|
257
|
+
collectAllTools() {
|
|
258
|
+
// 尝试使用 ToolService
|
|
259
|
+
const toolService = this.root.inject('tool');
|
|
260
|
+
if (toolService && typeof toolService.collectAll === 'function') {
|
|
261
|
+
return toolService.collectAll(this.root);
|
|
262
|
+
}
|
|
263
|
+
// 回退到本地收集
|
|
264
|
+
const tools = [];
|
|
265
|
+
// 收集插件树中的所有工具
|
|
266
|
+
const rootPlugin = this.root;
|
|
267
|
+
tools.push(...rootPlugin.getAllTools());
|
|
268
|
+
// 收集所有适配器的工具
|
|
269
|
+
for (const [name, context] of rootPlugin.contexts) {
|
|
270
|
+
const value = context.value;
|
|
271
|
+
if (value && typeof value === 'object' && 'getTools' in value) {
|
|
272
|
+
const adapter = value;
|
|
273
|
+
tools.push(...adapter.getTools());
|
|
274
|
+
}
|
|
275
|
+
}
|
|
276
|
+
return tools;
|
|
277
|
+
}
|
|
168
278
|
/**
|
|
169
279
|
* 插件名称
|
|
170
280
|
*/
|
|
171
281
|
get name() {
|
|
172
282
|
if (this.#cachedName)
|
|
173
283
|
return this.#cachedName;
|
|
174
|
-
|
|
284
|
+
let name = path
|
|
175
285
|
.relative(process.cwd(), this.filePath)
|
|
176
286
|
.replace(/\?t=\d+$/, "")
|
|
177
287
|
.replace(/\\/g, "/")
|
|
178
288
|
.replace(/\/index\.(js|ts)x?$/, "")
|
|
179
|
-
.replace(/\/(lib|src|dist)$/, "")
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
289
|
+
.replace(/\/(lib|src|dist)$/, "");
|
|
290
|
+
// 安全地提取 node_modules 后的包名或最后的文件名
|
|
291
|
+
const nodeModulesIndex = name.indexOf('node_modules/');
|
|
292
|
+
if (nodeModulesIndex !== -1) {
|
|
293
|
+
name = name.substring(nodeModulesIndex + 'node_modules/'.length);
|
|
294
|
+
}
|
|
295
|
+
// 提取最后一个路径段
|
|
296
|
+
const lastSlash = name.lastIndexOf('/');
|
|
297
|
+
if (lastSlash !== -1) {
|
|
298
|
+
name = name.substring(lastSlash + 1);
|
|
299
|
+
}
|
|
300
|
+
// 移除文件扩展名
|
|
301
|
+
name = name.replace(/\.(js|ts)x?$/, "");
|
|
302
|
+
this.#cachedName = name;
|
|
183
303
|
return this.#cachedName;
|
|
184
304
|
}
|
|
185
305
|
/**
|
|
@@ -269,16 +389,11 @@ export class Plugin extends EventEmitter {
|
|
|
269
389
|
this.started = true; // 提前设置,防止重复启动
|
|
270
390
|
// 启动所有服务
|
|
271
391
|
for (const context of this.$contexts.values()) {
|
|
272
|
-
if (typeof context.mounted === "function"
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
for (const [name, fn] of Object.entries(context.extensions)) {
|
|
278
|
-
if (typeof fn === 'function') {
|
|
279
|
-
Reflect.set(Plugin.prototype, name, fn);
|
|
280
|
-
}
|
|
281
|
-
}
|
|
392
|
+
if (typeof context.mounted === "function") {
|
|
393
|
+
const result = await context.mounted(this);
|
|
394
|
+
// 仅当 value 未预设时才赋值(mounted 始终执行,以支持副作用如设置内部引用)
|
|
395
|
+
if (!context.value)
|
|
396
|
+
context.value = result;
|
|
282
397
|
}
|
|
283
398
|
this.dispatch('context.mounted', context.name);
|
|
284
399
|
}
|
|
@@ -297,24 +412,146 @@ export class Plugin extends EventEmitter {
|
|
|
297
412
|
}
|
|
298
413
|
}
|
|
299
414
|
/**
|
|
300
|
-
*
|
|
301
|
-
*
|
|
415
|
+
* 记录 Feature 贡献(由 Feature extensions 内部调用)
|
|
416
|
+
* @param featureName Feature 名称(如 'command')
|
|
417
|
+
* @param itemName item 标识(如命令 pattern)
|
|
302
418
|
*/
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
419
|
+
recordFeatureContribution(featureName, itemName) {
|
|
420
|
+
if (!this.#featureContributions.has(featureName)) {
|
|
421
|
+
this.#featureContributions.set(featureName, new Set());
|
|
422
|
+
}
|
|
423
|
+
this.#featureContributions.get(featureName).add(itemName);
|
|
424
|
+
}
|
|
425
|
+
/**
|
|
426
|
+
* 收集本插件及所有后代插件的 Feature 贡献名称
|
|
427
|
+
* 解决 Plugin.create() 包装问题:外层插件的 #featureContributions 为空,
|
|
428
|
+
* 实际贡献记录在 usePlugin() 创建的内层子插件上
|
|
429
|
+
*/
|
|
430
|
+
#collectAllFeatureNames(names) {
|
|
431
|
+
for (const name of this.#featureContributions.keys()) {
|
|
432
|
+
names.add(name);
|
|
433
|
+
}
|
|
434
|
+
for (const child of this.children) {
|
|
435
|
+
child.#collectAllFeatureNames(names);
|
|
436
|
+
}
|
|
437
|
+
}
|
|
438
|
+
/**
|
|
439
|
+
* 收集本插件及所有后代插件的 plugin name 集合
|
|
440
|
+
* 用于 Feature.toJSON(pluginName) 匹配
|
|
441
|
+
*/
|
|
442
|
+
#collectAllPluginNames(names) {
|
|
443
|
+
names.add(this.name);
|
|
444
|
+
for (const child of this.children) {
|
|
445
|
+
child.#collectAllPluginNames(names);
|
|
446
|
+
}
|
|
447
|
+
}
|
|
448
|
+
/**
|
|
449
|
+
* 获取当前插件的所有 Feature 数据(用于 HTTP API)
|
|
450
|
+
* 遍历插件贡献的 Feature,调用各 Feature 的 toJSON(pluginName) 获取序列化数据
|
|
451
|
+
* 同时包含 middleware(方案 B: 本地构造)
|
|
452
|
+
*
|
|
453
|
+
* 注意:Plugin.create() 创建 "外层" 插件,usePlugin() 创建 "内层" 子插件。
|
|
454
|
+
* extension 方法 (addCommand 等) 通过 getPlugin() 记录在内层插件上。
|
|
455
|
+
* 因此需要遍历整个子树来收集 feature 贡献名称。
|
|
456
|
+
*/
|
|
457
|
+
getFeatures() {
|
|
458
|
+
const result = [];
|
|
459
|
+
// 收集本插件及所有后代插件的 feature 名称和 plugin 名称
|
|
460
|
+
const featureNames = new Set();
|
|
461
|
+
this.#collectAllFeatureNames(featureNames);
|
|
462
|
+
const pluginNames = new Set();
|
|
463
|
+
this.#collectAllPluginNames(pluginNames);
|
|
464
|
+
// 从 Feature 贡献中收集
|
|
465
|
+
for (const featureName of featureNames) {
|
|
466
|
+
const feature = this.inject(featureName);
|
|
467
|
+
if (feature instanceof Feature) {
|
|
468
|
+
// 先用当前插件名尝试
|
|
469
|
+
let json = feature.toJSON(this.name);
|
|
470
|
+
if (json.count === 0) {
|
|
471
|
+
// 当前插件名匹配不到(可能名称不同),尝试后代插件名
|
|
472
|
+
for (const pName of pluginNames) {
|
|
473
|
+
if (pName === this.name)
|
|
474
|
+
continue;
|
|
475
|
+
json = feature.toJSON(pName);
|
|
476
|
+
if (json.count > 0)
|
|
477
|
+
break;
|
|
478
|
+
}
|
|
479
|
+
}
|
|
480
|
+
if (json.count > 0) {
|
|
481
|
+
result.push(json);
|
|
482
|
+
}
|
|
483
|
+
}
|
|
484
|
+
}
|
|
485
|
+
// middleware(方案 B: 本地构造,因为 middleware 是 Plugin 私有属性)
|
|
486
|
+
// 同样需要收集子插件树中的 middleware
|
|
487
|
+
const allMiddlewareNames = [];
|
|
488
|
+
const collectMiddlewares = (plugin) => {
|
|
489
|
+
const mws = plugin.#middlewares
|
|
490
|
+
.filter(m => m !== plugin.#messageMiddleware)
|
|
491
|
+
.map((m, i) => m.name || `middleware_${i}`);
|
|
492
|
+
allMiddlewareNames.push(...mws);
|
|
493
|
+
for (const child of plugin.children) {
|
|
494
|
+
collectMiddlewares(child);
|
|
495
|
+
}
|
|
496
|
+
};
|
|
497
|
+
collectMiddlewares(this);
|
|
498
|
+
if (allMiddlewareNames.length > 0) {
|
|
499
|
+
result.push({
|
|
500
|
+
name: 'middleware',
|
|
501
|
+
icon: 'Layers',
|
|
502
|
+
desc: '中间件',
|
|
503
|
+
count: allMiddlewareNames.length,
|
|
504
|
+
items: allMiddlewareNames.map(name => ({ name })),
|
|
505
|
+
});
|
|
506
|
+
}
|
|
507
|
+
// 自动检测适配器和服务上下文(从 $contexts 中发现非 Feature 的贡献)
|
|
508
|
+
const adapterItems = [];
|
|
509
|
+
const serviceItems = [];
|
|
510
|
+
const scanContexts = (plugin) => {
|
|
511
|
+
for (const [name, context] of plugin.$contexts) {
|
|
512
|
+
const value = context.value;
|
|
513
|
+
if (value instanceof Adapter) {
|
|
514
|
+
adapterItems.push({
|
|
515
|
+
name,
|
|
516
|
+
bots: value.bots.size,
|
|
517
|
+
online: Array.from(value.bots.values()).filter(b => b.$connected).length,
|
|
518
|
+
tools: value.tools.size,
|
|
519
|
+
});
|
|
520
|
+
}
|
|
521
|
+
else if (value !== undefined && !(value instanceof Feature)) {
|
|
522
|
+
// 非 Feature、非 Adapter 的上下文 = 服务
|
|
523
|
+
serviceItems.push({ name, desc: context.description || name });
|
|
524
|
+
}
|
|
525
|
+
}
|
|
526
|
+
for (const child of plugin.children) {
|
|
527
|
+
scanContexts(child);
|
|
528
|
+
}
|
|
312
529
|
};
|
|
530
|
+
scanContexts(this);
|
|
531
|
+
if (adapterItems.length > 0) {
|
|
532
|
+
result.push({
|
|
533
|
+
name: 'adapter',
|
|
534
|
+
icon: 'Plug',
|
|
535
|
+
desc: '适配器',
|
|
536
|
+
count: adapterItems.length,
|
|
537
|
+
items: adapterItems,
|
|
538
|
+
});
|
|
539
|
+
}
|
|
540
|
+
if (serviceItems.length > 0) {
|
|
541
|
+
result.push({
|
|
542
|
+
name: 'service',
|
|
543
|
+
icon: 'Server',
|
|
544
|
+
desc: '服务',
|
|
545
|
+
count: serviceItems.length,
|
|
546
|
+
items: serviceItems,
|
|
547
|
+
});
|
|
548
|
+
}
|
|
549
|
+
return result;
|
|
313
550
|
}
|
|
314
551
|
info() {
|
|
315
552
|
return {
|
|
316
553
|
[this.name]: {
|
|
317
|
-
features: this.
|
|
554
|
+
features: this.getFeatures(),
|
|
318
555
|
children: this.children.map(child => child.info())
|
|
319
556
|
}
|
|
320
557
|
};
|
|
@@ -363,6 +600,8 @@ export class Plugin extends EventEmitter {
|
|
|
363
600
|
this.#disposables.clear();
|
|
364
601
|
// 清理 middlewares 数组(保留默认的消息中间件)
|
|
365
602
|
this.#middlewares.length = 1;
|
|
603
|
+
// 清理 feature 贡献记录
|
|
604
|
+
this.#featureContributions.clear();
|
|
366
605
|
if (this.parent) {
|
|
367
606
|
remove(this.parent?.children, this);
|
|
368
607
|
}
|
|
@@ -419,13 +658,43 @@ export class Plugin extends EventEmitter {
|
|
|
419
658
|
// 依赖注入
|
|
420
659
|
// ============================================================================
|
|
421
660
|
/**
|
|
422
|
-
*
|
|
661
|
+
* 注册上下文(支持 Feature 实例或传统 Context 对象)
|
|
423
662
|
*/
|
|
424
|
-
provide(
|
|
663
|
+
provide(target) {
|
|
664
|
+
if (target instanceof Feature) {
|
|
665
|
+
// Feature → 自动转为内部 Context 格式存储
|
|
666
|
+
const feature = target;
|
|
667
|
+
const context = {
|
|
668
|
+
name: feature.name,
|
|
669
|
+
description: feature.desc,
|
|
670
|
+
value: feature,
|
|
671
|
+
mounted: feature.mounted
|
|
672
|
+
? async (plugin) => {
|
|
673
|
+
await feature.mounted(plugin);
|
|
674
|
+
return feature;
|
|
675
|
+
}
|
|
676
|
+
: undefined,
|
|
677
|
+
dispose: feature.dispose
|
|
678
|
+
? async () => { await feature.dispose(); }
|
|
679
|
+
: undefined,
|
|
680
|
+
extensions: feature.extensions,
|
|
681
|
+
};
|
|
682
|
+
return this.provide(context);
|
|
683
|
+
}
|
|
684
|
+
// 传统 Context 路径
|
|
685
|
+
const context = target;
|
|
425
686
|
if (!Plugin[contextsKey].includes(context.name)) {
|
|
426
687
|
Plugin[contextsKey].push(context.name);
|
|
427
688
|
}
|
|
428
689
|
this.logger.debug(`Context "${context.name}" provided`);
|
|
690
|
+
// 注册扩展方法到 Plugin.prototype
|
|
691
|
+
if (context.extensions) {
|
|
692
|
+
for (const [name, fn] of Object.entries(context.extensions)) {
|
|
693
|
+
if (typeof fn === 'function') {
|
|
694
|
+
Reflect.set(Plugin.prototype, name, fn);
|
|
695
|
+
}
|
|
696
|
+
}
|
|
697
|
+
}
|
|
429
698
|
this.$contexts.set(context.name, context);
|
|
430
699
|
return this;
|
|
431
700
|
}
|
|
@@ -508,7 +777,8 @@ export class Plugin extends EventEmitter {
|
|
|
508
777
|
static #coreMethods = new Set([
|
|
509
778
|
'addMiddleware', 'useContext', 'inject', 'contextIsReady',
|
|
510
779
|
'start', 'stop', 'onMounted', 'onDispose',
|
|
511
|
-
'dispatch', 'broadcast', 'provide', 'import', 'reload', 'watch', 'info'
|
|
780
|
+
'dispatch', 'broadcast', 'provide', 'import', 'reload', 'watch', 'info',
|
|
781
|
+
'recordFeatureContribution', 'getFeatures'
|
|
512
782
|
]);
|
|
513
783
|
/**
|
|
514
784
|
* 自动绑定核心方法(只在构造函数中调用一次)
|
package/lib/plugin.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAIvC,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,MAAkB,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAI3D,OAAO,EAAE,OAAO,EAAY,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,OAAO,EAAe,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AACpC,MAAM,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;AACvC,MAAM,aAAa,GAAG,IAAI,GAAG,EAAkB,CAAC,CAAC,WAAW;AAC5D,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAU/C,+EAA+E;AAC/E,wBAAwB;AACxB,+EAA+E;AAE/E,MAAM,CAAC,MAAM,OAAO,GAAG,IAAI,iBAAiB,EAAU,CAAC;AAEvD;;GAEG;AACH,SAAS,cAAc,CAAC,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG;IAC/C,MAAM,yBAAyB,GAAG,KAAK,CAAC,iBAAiB,CAAC;IAC1D,KAAK,CAAC,iBAAiB,GAAG,UAAU,CAAC,EAAE,KAAK;QAC1C,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;IACF,MAAM,KAAK,GAAG,IAAI,KAAK,EAAE,CAAC,KAAqC,CAAC;IAChE,KAAK,CAAC,iBAAiB,GAAG,yBAAyB,CAAC;IACpD,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAC3B,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CACjD,CAAC;IACF,MAAM,GAAG,GAAG,UAAU,CAAC,SAAS,CAC9B,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,OAAO,CACrD,CAAC;IACF,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;IACnC,IAAI,CAAC,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;IACjE,IAAI,CAAC;QACH,OAAO,aAAa,CAAC,MAAM,CAAC,CAAC;IAC/B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,MAAM,CAAC;IAChB,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,SAAS;IACvB,MAAM,UAAU,GAAG,cAAc,EAAE,CAAC;IACpC,MAAM,YAAY,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAExC,gCAAgC;IAChC,IAAI,YAAY,IAAI,YAAY,CAAC,QAAQ,KAAK,UAAU,EAAE,CAAC;QACzD,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,MAAM,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;IACvD,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,SAAS;IACvB,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAClC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;IACxE,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,+EAA+E;AAC/E,SAAS;AACT,+EAA+E;AAE/E;;GAEG;AACH,SAAS,WAAW,CAAC,QAAgB;IACnC,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACnD,OAAO,UAAU,CAAC,KAAK,CAAC;aACrB,MAAM,CAAC,OAAO,CAAC;aACf,MAAM,CAAC,KAAK,CAAC,CAAC;IACnB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,SAAS,CAAC,QAAgB,EAAE,QAAoB;IACvD,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAC7C,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC;QACrC,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IAC/B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,GAAG,EAAE,GAAG,CAAC,CAAC;IACnB,CAAC;AACH,CAAC;AAOD;;;GAGG;AACH,MAAM,OAAO,MAAO,SAAQ,YAA8B;IAiDd;IAhD1C,MAAM,CAAC,CAAC,WAAW,CAAC,GAAG,EAAc,CAAC;IAEtC,WAAW,CAAU;IACrB,QAAQ,GAA8B,EAAE,CAAC;IACzC,OAAO,GAAG,KAAK,CAAC;IAEhB,QAAQ;IACR,SAAS,GAA8B,IAAI,GAAG,EAAE,CAAC;IAGjD,MAAM;IACN,QAAQ,GAAa,EAAE,CAAC;IAExB,OAAO;IACP,QAAQ,CAAS;IACjB,QAAQ,GAAW,EAAE,CAAC;IAEtB,SAAS;IACT,MAAM,CAAS;IAEf,kBAAkB,GAAyC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;QACjF,MAAM,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAC9C,IAAI,CAAC,cAAc;YAAE,OAAO,MAAM,IAAI,EAAE,CAAC;QACzC,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAC1D,IAAI,CAAC,MAAM;YAAE,OAAO,MAAM,IAAI,EAAE,CAAC;QACjC,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAY,CAAC;QACzD,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,YAAY,OAAO,CAAC;YAAE,OAAO,MAAM,IAAI,EAAE,CAAC;QACnE,MAAM,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC7B,MAAM,IAAI,EAAE,CAAC;IACf,CAAC,CAAC;IACF,OAAO;IACP,YAAY,GAA2C,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IAEjF,+BAA+B;IAC/B,MAAM,GAAsB,IAAI,GAAG,EAAE,CAAC;IAEtC,YAAY;IACZ,YAAY,GAAoC,IAAI,GAAG,EAAE,CAAC;IAE1D,+BAA+B;IAC/B,qBAAqB,GAAG,IAAI,GAAG,EAAuB,CAAC;IAEvD,IAAI,UAAU;QACZ,OAAO,OAAO,CAAoB,IAAI,CAAC,YAAY,CAAC,CAAC;IACvD,CAAC;IACD;;OAEG;IACH,YAAY,WAAmB,EAAE,EAAS,MAAe;QACvD,KAAK,EAAE,CAAC;QADgC,WAAM,GAAN,MAAM,CAAS;QAGvD,6BAA6B;QAC7B,yCAAyC;QACzC,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;QAEzB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;QACjD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QAE/D,WAAW;QACX,IAAI,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YAC9C,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7B,CAAC;QAED,cAAc;QACd,IAAI,CAAC,YAAY,EAAE,CAAC;IACtB,CAAC;IAED,YAAY;IACZ,aAAa,GAAG,KAAK,CAAC;IAEtB;;;;OAIG;IACH,aAAa,CAA8B,UAAgC;QACzE,IAAG,IAAI,CAAC,MAAM,EAAC,CAAC;YACd,MAAM,OAAO,GAAE,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;YACrD,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAC/B,OAAO,GAAG,EAAE;gBACV,OAAO,EAAE,CAAC;gBACV,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YACpC,CAAC,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,UAAkD,CAAC,CAAC;QAC3E,MAAM,OAAO,GAAG,GAAG,EAAE;YACnB,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;YACtC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACpC,CAAC,CAAC;QACF,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC/B,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;;;;;OAMG;IACH,OAAO,CACL,IAAU,EACV,kBAA2B,IAAI;QAE/B,mBAAmB;QACnB,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAa,CAAQ,CAAC;QAC3D,IAAI,WAAW,IAAI,OAAO,WAAW,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC;YAC7D,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;YACtE,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAC/B,OAAO,GAAG,EAAE;gBACV,OAAO,EAAE,CAAC;gBACV,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YACpC,CAAC,CAAC;QACJ,CAAC;QAED,UAAU;QACV,MAAM,cAAc,GAAS;YAC3B,GAAG,IAAI;YACP,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,UAAU,IAAI,CAAC,IAAI,EAAE;YAC5C,IAAI,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC;SAClD,CAAC;QACF,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;QAC3C,MAAM,OAAO,GAAG,GAAG,EAAE;YACnB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC9B,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACpC,CAAC,CAAC;QACF,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC/B,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;OAEG;IACH,QAAQ;QACN,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IAC1C,CAAC;IAED;;OAEG;IACH,WAAW;QACT,MAAM,KAAK,GAAW,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC3C,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClC,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;QACrC,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;OAEG;IACH,OAAO,CAAC,IAAY;QAClB,WAAW;QACX,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACnC,IAAI,IAAI;YAAE,OAAO,IAAI,CAAC;QACtB,WAAW;QACX,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClC,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACtC,IAAI,SAAS;gBAAE,OAAO,SAAS,CAAC;QAClC,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;;OAGG;IACH,eAAe;QACb,mBAAmB;QACnB,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAa,CAAQ,CAAC;QAC3D,IAAI,WAAW,IAAI,OAAO,WAAW,CAAC,UAAU,KAAK,UAAU,EAAE,CAAC;YAChE,OAAO,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3C,CAAC;QAED,UAAU;QACV,MAAM,KAAK,GAAW,EAAE,CAAC;QAEzB,cAAc;QACd,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC;QAC7B,KAAK,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC;QAExC,aAAa;QACb,KAAK,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,UAAU,CAAC,QAAQ,EAAE,CAAC;YAClD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;YAC5B,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,UAAU,IAAI,KAAK,EAAE,CAAC;gBAC9D,MAAM,OAAO,GAAG,KAAgB,CAAC;gBACjC,KAAK,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;YACpC,CAAC;QACH,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;OAEG;IACH,IAAI,IAAI;QACN,IAAI,IAAI,CAAC,WAAW;YAAE,OAAO,IAAI,CAAC,WAAW,CAAC;QAE9C,IAAI,IAAI,GAAG,IAAI;aACZ,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC;aACtC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;aACvB,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;aACnB,OAAO,CAAC,qBAAqB,EAAE,EAAE,CAAC;aAClC,OAAO,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAAC;QAEpC,iCAAiC;QACjC,MAAM,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;QACvD,IAAI,gBAAgB,KAAK,CAAC,CAAC,EAAE,CAAC;YAC5B,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,gBAAgB,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;QACnE,CAAC;QAED,YAAY;QACZ,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QACxC,IAAI,SAAS,KAAK,CAAC,CAAC,EAAE,CAAC;YACrB,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;QACvC,CAAC;QAED,UAAU;QACV,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;QAExC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED;;OAEG;IACH,IAAI,IAAI;QACN,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC;QAC9B,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;IAC1B,CAAC;IACD,IAAI,QAAQ;QACV,MAAM,MAAM,GAAG,IAAI,GAAG,EAAmB,CAAC;QAC1C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YAC1C,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACzB,CAAC;QACD,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;gBAC1C,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YACzB,CAAC;QACH,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAGD,UAAU,CAAsC,GAAG,IAA2B;QAC5E,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAM,CAAA;QACvC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAkB,CAAA;QACzD,MAAM,oBAAoB,GAAG,KAAK,IAAI,EAAE;YACtC,IAAI,UAAU,CAAC,QAAQ;gBAAE,OAAO;YAChC,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC;YAC3B,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAA;YACpD,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,GAAG,IAAsB,CAAC,CAAA;YAC3D,IAAI,CAAC,OAAO;gBAAE,OAAO;YACrB,MAAM,SAAS,GAAG,KAAK,EAAE,IAA2B,EAAE,EAAE;gBACtD,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC5B,MAAM,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAQ,CAAC,CAAA;gBACzC,CAAC;gBACD,IAAI,CAAC,GAAG,CAAC,iBAAiB,EAAE,SAAS,CAAC,CAAA;gBACtC,UAAU,CAAC,QAAQ,GAAG,KAAK,CAAC;YAC9B,CAAC,CAAA;YACD,IAAI,CAAC,EAAE,CAAC,iBAAiB,EAAE,SAAS,CAAC,CAAA;YACrC,2BAA2B;YAC3B,MAAM,gBAAgB,GAAG,GAAG,EAAE;gBAC5B,IAAI,CAAC,GAAG,CAAC,iBAAiB,EAAE,SAAS,CAAC,CAAA;gBACtC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAQ,CAAQ,CAAC,CAAA;YAC7C,CAAC,CAAA;YACD,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAA;QACxC,CAAC,CAAA;QACD,MAAM,gBAAgB,GAAG,KAAK,EAAE,IAA2B,EAAE,EAAE;YAC7D,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;gBAAE,OAAM;YAC1E,MAAM,oBAAoB,EAAE,CAAA;QAC9B,CAAC,CAAA;QACD,IAAI,CAAC,EAAE,CAAC,iBAAiB,EAAE,gBAAgB,CAAC,CAAA;QAC5C,8BAA8B;QAC9B,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,iBAAiB,EAAE,gBAAgB,CAAC,CAAC,CAAA;QACzE,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC;YAAE,OAAM;QAC5C,oBAAoB,EAAE,CAAA;IACxB,CAAC;IACD,MAAM,CAAkC,IAAO;QAC7C,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAc,CAAC,CAAC;QACvD,OAAO,OAAO,EAAE,KAA2B,CAAC;IAC9C,CAAC;IACD,gBAAgB,CAAuC,QAAY;QACjE,IAAI,CAAC,QAAQ,CAAC,MAAM;YAAE,OAAO,IAAI,CAAA;QACjC,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAA;IAC1D,CAAC;IACD,cAAc,CAAkC,IAAO;QACrD,IAAI,CAAC;YACH,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;QAC5B,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAA;QACd,CAAC;IACH,CAAC;IACD,+EAA+E;IAC/E,SAAS;IACT,+EAA+E;IAE/E;;OAEG;IACH,KAAK,CAAC,KAAK,CAAC,CAAU;QACpB,IAAI,IAAI,CAAC,OAAO;YAAE,OAAO;QACzB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC,cAAc;QAEnC,SAAS;QACT,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC;YAC9C,IAAI,OAAO,OAAO,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC;gBAC1C,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBAC3C,+CAA+C;gBAC/C,IAAI,CAAC,OAAO,CAAC,KAAK;oBAAE,OAAO,CAAC,KAAK,GAAG,MAAM,CAAC;YAC7C,CAAC;YACD,IAAI,CAAC,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;QAChD,CAAC;QACD,MAAM,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAChC,qBAAqB;QACrB,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClC,MAAM,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACvB,CAAC;QACD,6BAA6B;QAC7B,wBAAwB;QACxB,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAC1C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,eAAe,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;QACjG,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,IAAI,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,eAAe,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;QAClG,CAAC;IACH,CAAC;IACD;;;;OAIG;IACH,yBAAyB,CAAC,WAAmB,EAAE,QAAgB;QAC7D,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;YACjD,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;QACzD,CAAC;QACD,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,WAAW,CAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC7D,CAAC;IAED;;;;OAIG;IACH,uBAAuB,CAAC,KAAkB;QACxC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,qBAAqB,CAAC,IAAI,EAAE,EAAE,CAAC;YACrD,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAClB,CAAC;QACD,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClC,KAAK,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC;QACvC,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,sBAAsB,CAAC,KAAkB;QACvC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrB,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClC,KAAK,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC;QACtC,CAAC;IACH,CAAC;IAED;;;;;;;;OAQG;IACH,WAAW;QACT,MAAM,MAAM,GAAkB,EAAE,CAAC;QAEjC,sCAAsC;QACtC,MAAM,YAAY,GAAG,IAAI,GAAG,EAAU,CAAC;QACvC,IAAI,CAAC,uBAAuB,CAAC,YAAY,CAAC,CAAC;QAE3C,MAAM,WAAW,GAAG,IAAI,GAAG,EAAU,CAAC;QACtC,IAAI,CAAC,sBAAsB,CAAC,WAAW,CAAC,CAAC;QAEzC,kBAAkB;QAClB,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE,CAAC;YACvC,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,WAAoC,CAAC,CAAC;YAClE,IAAI,OAAO,YAAY,OAAO,EAAE,CAAC;gBAC/B,YAAY;gBACZ,IAAI,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACrC,IAAI,IAAI,CAAC,KAAK,KAAK,CAAC,EAAE,CAAC;oBACrB,4BAA4B;oBAC5B,KAAK,MAAM,KAAK,IAAI,WAAW,EAAE,CAAC;wBAChC,IAAI,KAAK,KAAK,IAAI,CAAC,IAAI;4BAAE,SAAS;wBAClC,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;wBAC7B,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC;4BAAE,MAAM;oBAC5B,CAAC;gBACH,CAAC;gBACD,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC;oBACnB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACpB,CAAC;YACH,CAAC;QACH,CAAC;QAED,qDAAqD;QACrD,0BAA0B;QAC1B,MAAM,kBAAkB,GAAa,EAAE,CAAC;QACxC,MAAM,kBAAkB,GAAG,CAAC,MAAc,EAAE,EAAE;YAC5C,MAAM,GAAG,GAAG,MAAM,CAAC,YAAY;iBAC5B,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,MAAM,CAAC,kBAAkB,CAAC;iBAC5C,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,cAAc,CAAC,EAAE,CAAC,CAAC;YAC9C,kBAAkB,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC;YAChC,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;gBACpC,kBAAkB,CAAC,KAAK,CAAC,CAAC;YAC5B,CAAC;QACH,CAAC,CAAC;QACF,kBAAkB,CAAC,IAAI,CAAC,CAAC;QAEzB,IAAI,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClC,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,YAAY;gBAClB,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,KAAK;gBACX,KAAK,EAAE,kBAAkB,CAAC,MAAM;gBAChC,KAAK,EAAE,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;aAClD,CAAC,CAAC;QACL,CAAC;QAED,8CAA8C;QAC9C,MAAM,YAAY,GAAoE,EAAE,CAAC;QACzF,MAAM,YAAY,GAAqC,EAAE,CAAC;QAE1D,MAAM,YAAY,GAAG,CAAC,MAAc,EAAE,EAAE;YACtC,KAAK,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;gBAC/C,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;gBAC5B,IAAI,KAAK,YAAY,OAAO,EAAE,CAAC;oBAC7B,YAAY,CAAC,IAAI,CAAC;wBAChB,IAAI;wBACJ,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI;wBACrB,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,MAAM;wBACxE,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI;qBACxB,CAAC,CAAC;gBACL,CAAC;qBAAM,IAAI,KAAK,KAAK,SAAS,IAAI,CAAC,CAAC,KAAK,YAAY,OAAO,CAAC,EAAE,CAAC;oBAC9D,gCAAgC;oBAChC,YAAY,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,WAAW,IAAI,IAAI,EAAE,CAAC,CAAC;gBACjE,CAAC;YACH,CAAC;YACD,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;gBACpC,YAAY,CAAC,KAAK,CAAC,CAAC;YACtB,CAAC;QACH,CAAC,CAAC;QACF,YAAY,CAAC,IAAI,CAAC,CAAC;QAEnB,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5B,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,KAAK;gBACX,KAAK,EAAE,YAAY,CAAC,MAAM;gBAC1B,KAAK,EAAE,YAAY;aACpB,CAAC,CAAC;QACL,CAAC;QAED,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5B,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,IAAI;gBACV,KAAK,EAAE,YAAY,CAAC,MAAM;gBAC1B,KAAK,EAAE,YAAY;aACpB,CAAC,CAAC;QACL,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,IAAI;QACF,OAAO;YACL,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gBACX,QAAQ,EAAE,IAAI,CAAC,WAAW,EAAE;gBAC5B,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;aACnD;SACF,CAAA;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAI;QACR,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO;QAC1B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,oBAAoB,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;QACpD,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QAErB,QAAQ;QACR,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClC,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC;QACrB,CAAC;QACD,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QAEnB,OAAO;QACP,KAAK,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YAC7C,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,IAAI,CAAC,CAAC;YAClC,SAAS;YACT,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;gBACvB,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;oBAClD,OAAQ,MAAM,CAAC,SAAiB,CAAC,GAAG,CAAC,CAAC;gBACxC,CAAC;YACH,CAAC;YACD,IAAI,OAAO,OAAO,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC;gBAC1C,MAAM,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YACvC,CAAC;QACH,CAAC;QACD,kBAAkB;QAClB,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;QAEvB,UAAU;QACV,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;QAE7B,gBAAgB;QAChB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAErB,WAAW;QACX,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACxC,IAAI,CAAC;gBACH,MAAM,OAAO,EAAE,CAAC;YAClB,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,4BAA4B,CAAC,EAAE,CAAC,CAAC;YACpD,CAAC;QACH,CAAC;QACD,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;QAE1B,gCAAgC;QAChC,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;QAE7B,kBAAkB;QAClB,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,CAAC;QAEnC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;QACtC,CAAC;QAED,mCAAmC;QACnC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAChD,aAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YACjC,CAAC;YAAC,MAAM,CAAC;gBACP,gBAAgB;YAClB,CAAC;QACH,CAAC;QAED,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,IAAI,CAAC,IAAI,WAAW,CAAC,CAAC;IACrD,CAAC;IAED,+EAA+E;IAC/E,SAAS;IACT,+EAA+E;IAE/E,SAAS,CAAC,QAAoC;QAC5C,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAC/B,CAAC;IAED,SAAS,CAAC,QAAoC;QAC5C,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAChC,OAAO,GAAG,EAAE;YACV,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACrC,CAAC,CAAC;IACJ,CAAC;IAED,+EAA+E;IAC/E,OAAO;IACP,+EAA+E;IAE/E;;OAEG;IACH,KAAK,CAAC,QAAQ,CACZ,IAAO,EACP,GAAG,IAAyB;QAE5B,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC;QAC7C,CAAC;QACD,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC;IACvC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,SAAS,CACb,IAAO,EACP,GAAG,IAAyB;QAE5B,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAgC,CAAC;QACtE,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;YACjC,MAAM,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAC;QAC1B,CAAC;QAED,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClC,MAAM,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC;QACvC,CAAC;IACH,CAAC;IAED,+EAA+E;IAC/E,OAAO;IACP,+EAA+E;IAE/E;;OAEG;IACH,OAAO,CAAkC,MAA4B;QACnE,IAAI,MAAM,YAAY,OAAO,EAAE,CAAC;YAC9B,gCAAgC;YAChC,MAAM,OAAO,GAAG,MAAM,CAAC;YACvB,MAAM,OAAO,GAAe;gBAC1B,IAAI,EAAE,OAAO,CAAC,IAAS;gBACvB,WAAW,EAAE,OAAO,CAAC,IAAI;gBACzB,KAAK,EAAE,OAAc;gBACrB,OAAO,EAAE,OAAO,CAAC,OAAO;oBACtB,CAAC,CAAC,KAAK,EAAE,MAAc,EAAE,EAAE;wBACvB,MAAM,OAAO,CAAC,OAAQ,CAAC,MAAM,CAAC,CAAC;wBAC/B,OAAO,OAAc,CAAC;oBACxB,CAAC;oBACH,CAAC,CAAC,SAAS;gBACb,OAAO,EAAE,OAAO,CAAC,OAAO;oBACtB,CAAC,CAAC,KAAK,IAAI,EAAE,GAAG,MAAM,OAAO,CAAC,OAAQ,EAAE,CAAC,CAAC,CAAC;oBAC3C,CAAC,CAAC,SAAS;gBACb,UAAU,EAAE,OAAO,CAAC,UAAU;aAC/B,CAAC;YACF,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC/B,CAAC;QAED,gBAAgB;QAChB,MAAM,OAAO,GAAG,MAAM,CAAC;QACvB,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAc,CAAC,EAAE,CAAC;YAC1D,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAc,CAAC,CAAC;QACnD,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,OAAO,CAAC,IAAc,YAAY,CAAC,CAAC;QAClE,2BAA2B;QAC3B,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;YACvB,KAAK,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC5D,IAAI,OAAO,EAAE,KAAK,UAAU,EAAE,CAAC;oBAC7B,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;gBAC1C,CAAC;YACH,CAAC;QACH,CAAC;QACD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,IAAc,EAAE,OAAO,CAAC,CAAC;QACpD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,+EAA+E;IAC/E,OAAO;IACP,+EAA+E;IAE/E;;OAEG;IACH,KAAK,CAAC,MAAM,CAAC,KAAa,EAAE,CAAU;QACpC,IAAI,CAAC,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,KAAK,EAAE,CAAC,CAAC;QAChE,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;YACpD,KAAK,CAAC,CAAC;YACP,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC;QAC7D,IAAI,QAAgB,CAAC;QACrB,IAAI,CAAC;YACH,QAAQ,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QACvC,CAAC;QAAC,MAAM,CAAC;YACP,QAAQ,GAAG,QAAQ,CAAC;QACtB,CAAC;QAED,gBAAgB;QAChB,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QACxE,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAC1C,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,UAAU,CAC1E,CAAC;QACF,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,KAAK,+BAA+B,CAAC,CAAC;YACnE,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO;gBAAE,MAAM,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC/D,OAAO,QAAQ,CAAC;QAClB,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACnD,IAAI,IAAI,CAAC,OAAO;YAAE,MAAM,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAExC,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,aAAa,EAAE,CAAC;YAC3C,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAA;QACjC,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CAAC,SAAiB,IAAI;QAChC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,MAAM,CAAC,IAAI,gBAAgB,CAAC,CAAC;QACzD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACnB,yBAAyB;YACzB,OAAO,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC1B,CAAC;QAED,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;QACpB,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QACjD,MAAM,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAClC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,MAAM,CAAC,IAAI,YAAY,CAAC,CAAC;IACxD,CAAC;IAED;;OAEG;IACH,KAAK,CACH,QAA6C,EAC7C,SAAS,GAAG,KAAK;QAEjB,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,cAAc,CAAC;YAAE,OAAO;QAErE,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE;YAC5C,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC3C,IAAI,OAAO,KAAK,IAAI,CAAC,QAAQ;gBAAE,OAAO;YAEtC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,IAAI,CAAC,IAAI,8BAA8B,CAAC,CAAC;YACtE,QAAQ,CAAC,IAAI,CAAC,CAAC;YACf,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QAC1B,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAE5B,IAAI,SAAS,EAAE,CAAC;YACd,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAClC,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;YACnC,CAAC;QACH,CAAC;IACH,CAAC;IAED,+EAA+E;IAC/E,OAAO;IACP,+EAA+E;IAE/E,kBAAkB;IAClB,MAAM,CAAC,YAAY,GAAG,IAAI,GAAG,CAAC;QAC5B,eAAe,EAAE,YAAY,EAAE,QAAQ,EAAE,gBAAgB;QACzD,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW;QACzC,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM;QACvE,2BAA2B,EAAE,aAAa;KAC3C,CAAC,CAAC;IAEH;;OAEG;IACH,YAAY;QACV,IAAI,IAAI,CAAC,aAAa;YAAE,OAAO;QAC/B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAE1B,MAAM,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QAC1C,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;YACtC,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;YACzB,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE,CAAC;gBAC/B,IAAY,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACxC,CAAC;QACH,CAAC;IACH,CAAC;IAED,+EAA+E;IAC/E,OAAO;IACP,+EAA+E;IAE/E;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAa,EAAE,MAAe;QAChD,KAAK,GAAG,IAAI,CAAC,OAAO,CAClB,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,QAAQ,IAAI,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAChE,KAAK,CACN,CAAC;QACF,MAAM,SAAS,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACxE,MAAM,QAAQ,GAAG,EAAE,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;QAE5C,YAAY;QACZ,MAAM,QAAQ,GAAG,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC7C,IAAI,QAAQ,EAAE,CAAC;YACb,OAAO,QAAQ,CAAC;QAClB,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAC5C,MAAM,CAAC,QAAQ,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;QAEzC,kBAAkB;QAClB,aAAa,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAEpC,MAAM,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,IAAI,EAAE;YACnC,MAAM,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QACpE,CAAC,CAAC,CAAC;QAEH,OAAO,MAAM,CAAC;IAChB,CAAC;;AAEH,MAAM,UAAU,aAAa,CAA6E,OAAsB;IAC9H,OAAO,OAAO,CAAC;AACjB,CAAC"}
|