@zhin.js/adapter-onebot11 4.0.1 → 4.0.3

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.
Files changed (66) hide show
  1. package/CHANGELOG.md +56 -0
  2. package/README.md +40 -370
  3. package/adapters/onebot11.ts +39 -0
  4. package/agent/tools/set_title.ts +21 -0
  5. package/lib/index.d.ts +7 -16
  6. package/lib/index.js +6 -56
  7. package/lib/onebot11-agent-deps.d.ts +15 -0
  8. package/lib/onebot11-agent-deps.js +30 -0
  9. package/lib/protocol.d.ts +144 -0
  10. package/lib/protocol.js +235 -0
  11. package/lib/ws-endpoint.d.ts +28 -0
  12. package/lib/ws-endpoint.js +210 -0
  13. package/lib/ws-transport.d.ts +13 -0
  14. package/lib/ws-transport.js +74 -0
  15. package/lib/ws-types.d.ts +17 -0
  16. package/lib/ws-types.js +1 -0
  17. package/lib/wss-auth.d.ts +2 -0
  18. package/lib/wss-auth.js +16 -0
  19. package/lib/wss-endpoint.d.ts +26 -0
  20. package/lib/wss-endpoint.js +143 -0
  21. package/package.json +52 -22
  22. package/plugin.ts +13 -0
  23. package/schema.json +36 -0
  24. package/src/index.ts +54 -68
  25. package/src/onebot11-agent-deps.ts +49 -0
  26. package/src/protocol.ts +370 -0
  27. package/src/ws-endpoint.ts +266 -0
  28. package/src/ws-transport.ts +101 -0
  29. package/src/ws-types.ts +20 -0
  30. package/src/wss-auth.ts +17 -0
  31. package/src/wss-endpoint.ts +189 -0
  32. package/lib/adapter.d.ts +0 -41
  33. package/lib/adapter.d.ts.map +0 -1
  34. package/lib/adapter.js +0 -101
  35. package/lib/adapter.js.map +0 -1
  36. package/lib/endpoint-ws-client.d.ts +0 -41
  37. package/lib/endpoint-ws-client.d.ts.map +0 -1
  38. package/lib/endpoint-ws-client.js +0 -408
  39. package/lib/endpoint-ws-client.js.map +0 -1
  40. package/lib/endpoint-ws-server.d.ts +0 -43
  41. package/lib/endpoint-ws-server.d.ts.map +0 -1
  42. package/lib/endpoint-ws-server.js +0 -355
  43. package/lib/endpoint-ws-server.js.map +0 -1
  44. package/lib/index.d.ts.map +0 -1
  45. package/lib/index.js.map +0 -1
  46. package/lib/onebot-get-msg.d.ts +0 -3
  47. package/lib/onebot-get-msg.d.ts.map +0 -1
  48. package/lib/onebot-get-msg.js +0 -27
  49. package/lib/onebot-get-msg.js.map +0 -1
  50. package/lib/segment-mapper.d.ts +0 -2
  51. package/lib/segment-mapper.d.ts.map +0 -1
  52. package/lib/segment-mapper.js +0 -2
  53. package/lib/segment-mapper.js.map +0 -1
  54. package/lib/types.d.ts +0 -61
  55. package/lib/types.d.ts.map +0 -1
  56. package/lib/types.js +0 -5
  57. package/lib/types.js.map +0 -1
  58. package/plugin.yml +0 -3
  59. package/src/adapter.ts +0 -114
  60. package/src/endpoint-ws-client.ts +0 -435
  61. package/src/endpoint-ws-server.ts +0 -396
  62. package/src/onebot-get-msg.ts +0 -33
  63. package/src/segment-mapper.ts +0 -1
  64. package/src/types.ts +0 -60
  65. /package/{skills/onebot11 → agent}/PERMITS.md +0 -0
  66. /package/{skills/onebot11/SKILL.md → agent/skills/onebot11.md} +0 -0
@@ -1,408 +0,0 @@
1
- /**
2
- * OneBot11 WebSocket 客户端连接 Endpoint
3
- */
4
- import WebSocket from 'ws';
5
- import { EventEmitter } from 'events';
6
- import { clearInterval } from 'node:timers';
7
- import { formatCompact, Message, Notice, Request, segment, expandInteractiveSegmentsInContent, applyQqSenderRoleToMessageSender, } from 'zhin.js';
8
- import { parseOneBotGetMsgResponse } from './onebot-get-msg.js';
9
- import { fromCanonicalSegments, toCanonicalSegments } from './segment-mapper.js';
10
- export class OneBot11WsClient extends EventEmitter {
11
- adapter;
12
- $config;
13
- $connected;
14
- ws;
15
- reconnectTimer;
16
- heartbeatTimer;
17
- requestId = 0;
18
- pendingRequests = new Map();
19
- get logger() {
20
- return this.adapter.plugin.logger;
21
- }
22
- constructor(adapter, $config) {
23
- super();
24
- this.adapter = adapter;
25
- this.$config = $config;
26
- this.$connected = false;
27
- }
28
- get $id() {
29
- return this.$config.name;
30
- }
31
- async $connect() {
32
- return new Promise((resolve, reject) => {
33
- const headers = {};
34
- if (this.$config.access_token) {
35
- headers['Authorization'] = `Bearer ${this.$config.access_token}`;
36
- const url = new URL(this.$config.url);
37
- url.searchParams.set('access_token', this.$config.access_token);
38
- this.$config.url = url.toString();
39
- }
40
- this.ws = new WebSocket(this.$config.url, { headers });
41
- this.ws.on('open', () => {
42
- this.$connected = true;
43
- if (!this.$config.access_token) {
44
- this.logger.warn(formatCompact({ endpoint: this.$id, ok: false, error: 'missing access_token' }));
45
- }
46
- this.logger.info(formatCompact({ endpoint: this.$id, mode: 'ws' }));
47
- this.startHeartbeat();
48
- resolve();
49
- });
50
- this.ws.on('message', (data) => {
51
- try {
52
- const message = JSON.parse(data.toString());
53
- this.handleWebSocketMessage(message);
54
- }
55
- catch (error) {
56
- this.emit('error', error);
57
- }
58
- });
59
- this.ws.on('close', (code, reason) => {
60
- this.$connected = false;
61
- const reasonStr = reason?.toString?.() || String(reason);
62
- const codeHint = code === 1005 ? ' [无状态,多为服务端/代理未发 close 帧即断开]' : code === 1006 ? ' [异常关闭]' : '';
63
- this.logger.warn(formatCompact({
64
- op: 'disconnect',
65
- endpoint: this.$config.name,
66
- code,
67
- error: `${reasonStr || 'closed'}${codeHint}`,
68
- reconnect_ms: this.$config.reconnect_interval || 5000,
69
- }));
70
- reject({ code, reason });
71
- this.scheduleReconnect();
72
- });
73
- this.ws.on('error', (error) => {
74
- this.logger.warn(formatCompact({
75
- op: 'ws_error',
76
- endpoint: this.$config.name,
77
- ok: false,
78
- error: error instanceof Error ? error.message : String(error),
79
- }));
80
- reject(error);
81
- });
82
- });
83
- }
84
- async $disconnect() {
85
- if (this.reconnectTimer) {
86
- clearTimeout(this.reconnectTimer);
87
- this.reconnectTimer = undefined;
88
- }
89
- if (this.heartbeatTimer) {
90
- clearInterval(this.heartbeatTimer);
91
- this.heartbeatTimer = undefined;
92
- }
93
- for (const [, request] of this.pendingRequests) {
94
- clearTimeout(request.timeout);
95
- request.reject(new Error('Connection closed'));
96
- }
97
- this.pendingRequests.clear();
98
- if (this.ws) {
99
- this.ws.close();
100
- this.ws = undefined;
101
- }
102
- }
103
- toWireSendContent(content) {
104
- const items = (Array.isArray(content) ? content : [content]).map((item) => typeof item === 'string' ? { type: 'text', data: { text: item } } : item);
105
- return fromCanonicalSegments(toCanonicalSegments(items));
106
- }
107
- $formatMessage(onebotMsg) {
108
- const wire = Array.isArray(onebotMsg.message) ? [...onebotMsg.message] : [];
109
- const quoteId = Message.quoteIdFromContent(wire);
110
- Message.alignReplySegments(wire, quoteId);
111
- const content = toCanonicalSegments(wire);
112
- const message = Message.from(onebotMsg, {
113
- $id: onebotMsg.message_id.toString(),
114
- $adapter: 'onebot11',
115
- $endpoint: `${this.$config.name}`,
116
- $sender: (() => {
117
- const sender = {
118
- id: onebotMsg.user_id.toString(),
119
- name: onebotMsg.sender?.nickname || onebotMsg.sender?.card || onebotMsg.user_id.toString(),
120
- };
121
- applyQqSenderRoleToMessageSender(sender, onebotMsg.sender?.role);
122
- return sender;
123
- })(),
124
- $channel: {
125
- id: (onebotMsg.group_id || onebotMsg.user_id).toString(),
126
- type: onebotMsg.group_id ? 'group' : 'private',
127
- },
128
- $content: content,
129
- $quote_id: quoteId,
130
- $raw: onebotMsg.raw_message,
131
- $timestamp: onebotMsg.time,
132
- $recall: async () => {
133
- await this.$recallMessage(message.$id);
134
- },
135
- $reply: async (content, quote) => {
136
- if (!Array.isArray(content))
137
- content = [content];
138
- if (quote)
139
- content.unshift({ type: 'reply', data: { message_id: message.$id } });
140
- return await this.adapter.sendMessage({
141
- ...message.$channel,
142
- context: 'onebot11',
143
- endpoint: `${this.$config.name}`,
144
- content,
145
- });
146
- },
147
- });
148
- return message;
149
- }
150
- async $sendMessage(options) {
151
- const content = this.toWireSendContent(expandInteractiveSegmentsInContent(options.content));
152
- const messageData = { message: content };
153
- if (options.type === 'group') {
154
- const result = await this.callApi('send_group_msg', {
155
- group_id: parseInt(options.id),
156
- ...messageData,
157
- });
158
- this.logger.debug(`${this.$config.name} send ${options.type}(${options.id}):${segment.raw(options.content)}`);
159
- return result.message_id.toString();
160
- }
161
- if (options.type === 'private') {
162
- const result = await this.callApi('send_private_msg', {
163
- user_id: parseInt(options.id),
164
- ...messageData,
165
- });
166
- this.logger.debug(`${this.$config.name} send ${options.type}(${options.id}):${segment.raw(options.content)}`);
167
- return result.message_id.toString();
168
- }
169
- throw new Error('Either group_id or user_id must be provided');
170
- }
171
- async $recallMessage(id) {
172
- await this.callApi('delete_msg', { message_id: parseInt(id) });
173
- }
174
- async $getMsg(messageId) {
175
- const idParam = /^\d+$/.test(messageId) ? Number(messageId) : messageId;
176
- const data = await this.callApi('get_msg', { message_id: idParam });
177
- return parseOneBotGetMsgResponse(messageId, data);
178
- }
179
- async kickMember(groupId, userId, rejectAddRequest = false) {
180
- try {
181
- await this.callApi('set_group_kick', {
182
- group_id: groupId,
183
- user_id: userId,
184
- reject_add_request: rejectAddRequest,
185
- });
186
- this.logger.debug(formatCompact({ op: 'kick', endpoint: this.$id, group: groupId, user: userId }));
187
- return true;
188
- }
189
- catch (error) {
190
- this.logger.error(`OneBot11 Endpoint ${this.$id} 踢出成员失败:`, error);
191
- throw error;
192
- }
193
- }
194
- async muteMember(groupId, userId, duration = 600) {
195
- try {
196
- await this.callApi('set_group_ban', {
197
- group_id: groupId,
198
- user_id: userId,
199
- duration,
200
- });
201
- this.logger.debug(formatCompact({ op: duration > 0 ? 'mute' : 'unmute', endpoint: this.$id, group: groupId, user: userId, duration }));
202
- return true;
203
- }
204
- catch (error) {
205
- this.logger.error(`OneBot11 Endpoint ${this.$id} 禁言操作失败:`, error);
206
- throw error;
207
- }
208
- }
209
- async muteAll(groupId, enable = true) {
210
- try {
211
- await this.callApi('set_group_whole_ban', { group_id: groupId, enable });
212
- this.logger.debug(formatCompact({ op: 'mute_all', endpoint: this.$id, group: groupId, enable }));
213
- return true;
214
- }
215
- catch (error) {
216
- this.logger.error(`OneBot11 Endpoint ${this.$id} 全员禁言操作失败:`, error);
217
- throw error;
218
- }
219
- }
220
- async setAdmin(groupId, userId, enable = true) {
221
- try {
222
- await this.callApi('set_group_admin', { group_id: groupId, user_id: userId, enable });
223
- this.logger.debug(formatCompact({ op: 'set_admin', endpoint: this.$id, group: groupId, user: userId, enable }));
224
- return true;
225
- }
226
- catch (error) {
227
- this.logger.error(`OneBot11 Endpoint ${this.$id} 设置管理员失败:`, error);
228
- throw error;
229
- }
230
- }
231
- async setCard(groupId, userId, card) {
232
- try {
233
- await this.callApi('set_group_card', { group_id: groupId, user_id: userId, card });
234
- this.logger.debug(formatCompact({ op: 'set_card', endpoint: this.$id, group: groupId, user: userId }));
235
- return true;
236
- }
237
- catch (error) {
238
- this.logger.error(`OneBot11 Endpoint ${this.$id} 设置群名片失败:`, error);
239
- throw error;
240
- }
241
- }
242
- async setTitle(groupId, userId, title, duration = -1) {
243
- try {
244
- await this.callApi('set_group_special_title', {
245
- group_id: groupId,
246
- user_id: userId,
247
- special_title: title,
248
- duration,
249
- });
250
- this.logger.debug(formatCompact({ op: 'set_title', endpoint: this.$id, group: groupId, user: userId }));
251
- return true;
252
- }
253
- catch (error) {
254
- this.logger.error(`OneBot11 Endpoint ${this.$id} 设置头衔失败:`, error);
255
- throw error;
256
- }
257
- }
258
- async setGroupName(groupId, name) {
259
- try {
260
- await this.callApi('set_group_name', { group_id: groupId, group_name: name });
261
- this.logger.debug(formatCompact({ op: 'set_group_name', endpoint: this.$id, group: groupId }));
262
- return true;
263
- }
264
- catch (error) {
265
- this.logger.error(`OneBot11 Endpoint ${this.$id} 设置群名失败:`, error);
266
- throw error;
267
- }
268
- }
269
- async getMemberList(groupId) {
270
- try {
271
- return await this.callApi('get_group_member_list', { group_id: groupId });
272
- }
273
- catch (error) {
274
- this.logger.error(`OneBot11 Endpoint ${this.$id} 获取群成员列表失败:`, error);
275
- throw error;
276
- }
277
- }
278
- async getGroupInfo(groupId) {
279
- try {
280
- return await this.callApi('get_group_info', { group_id: groupId });
281
- }
282
- catch (error) {
283
- this.logger.error(`OneBot11 Endpoint ${this.$id} 获取群信息失败:`, error);
284
- throw error;
285
- }
286
- }
287
- async callApi(action, params = {}) {
288
- if (!this.ws || this.ws.readyState !== WebSocket.OPEN) {
289
- throw new Error('WebSocket is not connected');
290
- }
291
- const echo = `req_${++this.requestId}`;
292
- const message = { action, params, echo };
293
- return new Promise((resolve, reject) => {
294
- const timeout = setTimeout(() => {
295
- this.pendingRequests.delete(echo);
296
- reject(new Error(`API call timeout: ${action}`));
297
- }, 30000);
298
- this.pendingRequests.set(echo, { resolve, reject, timeout });
299
- this.ws.send(JSON.stringify(message));
300
- });
301
- }
302
- handleWebSocketMessage(message) {
303
- if (message.echo && this.pendingRequests.has(message.echo)) {
304
- const request = this.pendingRequests.get(message.echo);
305
- this.pendingRequests.delete(message.echo);
306
- clearTimeout(request.timeout);
307
- const response = message;
308
- if (response.status === 'ok')
309
- return request.resolve(response.data);
310
- return request.reject(new Error(`API error: ${response.retcode}`));
311
- }
312
- if (message.post_type === 'message') {
313
- this.handleOneBot11Message(message);
314
- }
315
- else if (message.post_type === 'notice') {
316
- this.handleOneBot11Notice(message);
317
- }
318
- else if (message.post_type === 'request') {
319
- this.handleOneBot11Request(message);
320
- }
321
- }
322
- handleOneBot11Notice(event) {
323
- const noticeTypeMap = {
324
- group_increase: 'group_member_increase',
325
- group_decrease: 'group_member_decrease',
326
- group_admin: 'group_admin_change',
327
- group_ban: 'group_ban',
328
- group_recall: 'group_recall',
329
- friend_recall: 'friend_recall',
330
- friend_add: 'friend_add',
331
- notify: event.sub_type === 'poke' ? (event.group_id ? 'group_poke' : 'friend_poke') : `notify_${event.sub_type}`,
332
- group_upload: 'group_upload',
333
- };
334
- const $type = noticeTypeMap[event.notice_type] || event.notice_type;
335
- const isGroup = !!event.group_id;
336
- const notice = Notice.from(event, {
337
- $id: `${event.time}_${event.notice_type}_${event.group_id || event.user_id}`,
338
- $adapter: 'onebot11',
339
- $endpoint: this.$config.name,
340
- $type,
341
- $subType: event.sub_type,
342
- $channel: {
343
- id: (event.group_id || event.user_id)?.toString() || '',
344
- type: isGroup ? 'group' : 'private',
345
- },
346
- $operator: event.operator_id ? { id: event.operator_id.toString(), name: event.operator_id.toString() } : undefined,
347
- $target: event.user_id ? { id: event.user_id.toString(), name: event.user_id.toString() } : undefined,
348
- $timestamp: event.time || Math.floor(Date.now() / 1000),
349
- });
350
- this.adapter.emit('notice.receive', notice);
351
- }
352
- handleOneBot11Request(event) {
353
- const typeMap = {
354
- friend: 'friend_add',
355
- group: event.sub_type === 'invite' ? 'group_invite' : 'group_add',
356
- };
357
- const $type = typeMap[event.request_type] || event.request_type;
358
- const request = Request.from(event, {
359
- $id: event.flag || `${event.time}_${event.request_type}_${event.user_id}`,
360
- $adapter: 'onebot11',
361
- $endpoint: this.$config.name,
362
- $type,
363
- $subType: event.sub_type,
364
- $channel: {
365
- id: (event.group_id || event.user_id)?.toString() || '',
366
- type: event.group_id ? 'group' : 'private',
367
- },
368
- $sender: { id: event.user_id?.toString() || '', name: event.user_id?.toString() || '' },
369
- $comment: event.comment,
370
- $timestamp: event.time || Math.floor(Date.now() / 1000),
371
- $approve: async (remark) => {
372
- await this.callApi(event.request_type === 'friend' ? 'set_friend_add_request' : 'set_group_add_request', { flag: event.flag, approve: true, remark });
373
- },
374
- $reject: async (reason) => {
375
- await this.callApi(event.request_type === 'friend' ? 'set_friend_add_request' : 'set_group_add_request', { flag: event.flag, approve: false, reason });
376
- },
377
- });
378
- this.adapter.emit('request.receive', request);
379
- }
380
- handleOneBot11Message(onebotMsg) {
381
- const message = this.$formatMessage(onebotMsg);
382
- this.adapter.emit('message.receive', message);
383
- this.logger.debug(`${this.$config.name} recv ${message.$channel.type}(${message.$channel.id}):${segment.raw(message.$content)}`);
384
- }
385
- startHeartbeat() {
386
- const interval = this.$config.heartbeat_interval || 30000;
387
- this.heartbeatTimer = setInterval(() => {
388
- if (this.ws && this.ws.readyState === WebSocket.OPEN)
389
- this.ws.ping();
390
- }, interval);
391
- }
392
- scheduleReconnect() {
393
- if (this.reconnectTimer)
394
- return;
395
- const interval = this.$config.reconnect_interval || 5000;
396
- this.reconnectTimer = setTimeout(async () => {
397
- this.reconnectTimer = undefined;
398
- try {
399
- await this.$connect();
400
- }
401
- catch (error) {
402
- this.emit('error', new Error(`Reconnection failed: ${error}`));
403
- this.scheduleReconnect();
404
- }
405
- }, interval);
406
- }
407
- }
408
- //# sourceMappingURL=endpoint-ws-client.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"endpoint-ws-client.js","sourceRoot":"","sources":["../src/endpoint-ws-client.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,SAAS,MAAM,IAAI,CAAC;AAC3B,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAY,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAA4B,kCAAkC,EAA6B,gCAAgC,GAAuB,MAAM,SAAS,CAAC;AACrO,OAAO,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AASjF,MAAM,OAAO,gBAAiB,SAAQ,YAAY;IAe7B;IAAiC;IAdpD,UAAU,CAAU;IACZ,EAAE,CAAa;IACf,cAAc,CAAkB;IAChC,cAAc,CAAkB;IAChC,SAAS,GAAG,CAAC,CAAC;IACd,eAAe,GAAG,IAAI,GAAG,EAI7B,CAAC;IACL,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC;IACpC,CAAC;IAED,YAAmB,OAAwB,EAAS,OAA+B;QACjF,KAAK,EAAE,CAAC;QADS,YAAO,GAAP,OAAO,CAAiB;QAAS,YAAO,GAAP,OAAO,CAAwB;QAEjF,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;IAC1B,CAAC;IAED,IAAI,GAAG;QACL,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;IAC3B,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,MAAM,OAAO,GAA2B,EAAE,CAAC;YAC3C,IAAI,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;gBAC9B,OAAO,CAAC,eAAe,CAAC,GAAG,UAAU,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;gBACjE,MAAM,GAAG,GAAC,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;gBACpC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,cAAc,EAAE,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;gBAChE,IAAI,CAAC,OAAO,CAAC,GAAG,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC;YACpC,CAAC;YACD,IAAI,CAAC,EAAE,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;YAEvD,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE;gBACtB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;gBACvB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;oBAC/B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,sBAAsB,EAAE,CAAC,CAAC,CAAC;gBACpG,CAAC;gBACD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;gBACpE,IAAI,CAAC,cAAc,EAAE,CAAC;gBACtB,OAAO,EAAE,CAAC;YACZ,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,EAAE;gBAC7B,IAAI,CAAC;oBACH,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;oBAC5C,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC;gBACvC,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;gBAC5B,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE;gBACnC,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;gBACxB,MAAM,SAAS,GAAG,MAAM,EAAE,QAAQ,EAAE,EAAE,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC;gBACzD,MAAM,QAAQ,GAAG,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,8BAA8B,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;gBACjG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAE;oBAC9B,EAAE,EAAE,YAAY;oBAChB,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI;oBAC3B,IAAI;oBACJ,KAAK,EAAE,GAAG,SAAS,IAAI,QAAQ,GAAG,QAAQ,EAAE;oBAC5C,YAAY,EAAE,IAAI,CAAC,OAAO,CAAC,kBAAkB,IAAI,IAAI;iBACtD,CAAC,CAAC,CAAC;gBACJ,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;gBACzB,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC3B,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;gBAC5B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAE;oBAC9B,EAAE,EAAE,UAAU;oBACd,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI;oBAC3B,EAAE,EAAE,KAAK;oBACT,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;iBAC9D,CAAC,CAAC,CAAC;gBACJ,MAAM,CAAC,KAAK,CAAC,CAAC;YAChB,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,WAAW;QACf,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAClC,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC;QAClC,CAAC;QACD,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,aAAa,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YACnC,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC;QAClC,CAAC;QACD,KAAK,MAAM,CAAC,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YAC/C,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAC9B,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC;QACjD,CAAC;QACD,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;QAC7B,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;YACZ,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;YAChB,IAAI,CAAC,EAAE,GAAG,SAAS,CAAC;QACtB,CAAC;IACH,CAAC;IAEO,iBAAiB,CAAC,OAAoB;QAC5C,MAAM,KAAK,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CACxE,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,IAAsB,CAC3F,CAAC;QACF,OAAO,qBAAqB,CAAC,mBAAmB,CAAC,KAAc,CAAC,CAAC,CAAC;IACpE,CAAC;IAED,cAAc,CAAC,SAA0B;QACvC,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5E,MAAM,OAAO,GAAG,OAAO,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;QACjD,OAAO,CAAC,kBAAkB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC1C,MAAM,OAAO,GAAG,mBAAmB,CAAC,IAAa,CAAC,CAAC;QAEnD,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE;YACtC,GAAG,EAAE,SAAS,CAAC,UAAU,CAAC,QAAQ,EAAE;YACpC,QAAQ,EAAE,UAAU;YACpB,SAAS,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;YACjC,OAAO,EAAE,CAAC,GAAG,EAAE;gBACb,MAAM,MAAM,GAAwE;oBAClF,EAAE,EAAE,SAAS,CAAC,OAAO,CAAC,QAAQ,EAAE;oBAChC,IAAI,EAAE,SAAS,CAAC,MAAM,EAAE,QAAQ,IAAI,SAAS,CAAC,MAAM,EAAE,IAAI,IAAI,SAAS,CAAC,OAAO,CAAC,QAAQ,EAAE;iBAC3F,CAAC;gBACF,gCAAgC,CAAC,MAAM,EAAE,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;gBACjE,OAAO,MAAM,CAAC;YAChB,CAAC,CAAC,EAAE;YACJ,QAAQ,EAAE;gBACR,EAAE,EAAE,CAAC,SAAS,CAAC,QAAQ,IAAI,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE;gBACxD,IAAI,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;aAC/C;YACD,QAAQ,EAAE,OAAO;YACjB,SAAS,EAAE,OAAO;YAClB,IAAI,EAAE,SAAS,CAAC,WAAW;YAC3B,UAAU,EAAE,SAAS,CAAC,IAAI;YAC1B,OAAO,EAAE,KAAK,IAAI,EAAE;gBAClB,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACzC,CAAC;YACD,MAAM,EAAE,KAAK,EAAE,OAAoB,EAAE,KAAwB,EAAmB,EAAE;gBAChF,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;oBAAE,OAAO,GAAG,CAAC,OAAO,CAAC,CAAC;gBACjD,IAAI,KAAK;oBAAE,OAAO,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;gBACjF,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;oBACpC,GAAG,OAAO,CAAC,QAAQ;oBACnB,OAAO,EAAE,UAAU;oBACnB,QAAQ,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;oBAChC,OAAO;iBACR,CAAC,CAAC;YACL,CAAC;SACF,CAAC,CAAC;QACH,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,OAAoB;QACrC,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,kCAAkC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;QAC5F,MAAM,WAAW,GAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;QAC9C,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAC7B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE;gBAClD,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC9B,GAAG,WAAW;aACf,CAAC,CAAC;YACH,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,SAAS,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,EAAE,KAAK,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAC9G,OAAO,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;QACtC,CAAC;QACD,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC/B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE;gBACpD,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC7B,GAAG,WAAW;aACf,CAAC,CAAC;YACH,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,SAAS,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,EAAE,KAAK,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAC9G,OAAO,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;QACtC,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;IACjE,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,EAAU;QAC7B,MAAM,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,UAAU,EAAE,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IACjE,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,SAAiB;QAC7B,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACxE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,CAAC;QACpE,OAAO,yBAAyB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IACpD,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,OAAe,EAAE,MAAc,EAAE,mBAA4B,KAAK;QACjF,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE;gBACnC,QAAQ,EAAE,OAAO;gBACjB,OAAO,EAAE,MAAM;gBACf,kBAAkB,EAAE,gBAAgB;aACrC,CAAC,CAAC;YACH,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAE,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;YACpG,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,qBAAqB,IAAI,CAAC,GAAG,UAAU,EAAE,KAAK,CAAC,CAAC;YAClE,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,OAAe,EAAE,MAAc,EAAE,WAAmB,GAAG;QACtE,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE;gBAClC,QAAQ,EAAE,OAAO;gBACjB,OAAO,EAAE,MAAM;gBACf,QAAQ;aACT,CAAC,CAAC;YACH,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAE,EAAE,EAAE,EAAE,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;YACxI,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,qBAAqB,IAAI,CAAC,GAAG,UAAU,EAAE,KAAK,CAAC,CAAC;YAClE,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,OAAe,EAAE,SAAkB,IAAI;QACnD,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,OAAO,CAAC,qBAAqB,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;YACzE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAE,EAAE,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;YAClG,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,qBAAqB,IAAI,CAAC,GAAG,YAAY,EAAE,KAAK,CAAC,CAAC;YACpE,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,OAAe,EAAE,MAAc,EAAE,SAAkB,IAAI;QACpE,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;YACtF,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAE,EAAE,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;YACjH,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,qBAAqB,IAAI,CAAC,GAAG,WAAW,EAAE,KAAK,CAAC,CAAC;YACnE,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,OAAe,EAAE,MAAc,EAAE,IAAY;QACzD,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;YACnF,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAE,EAAE,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;YACxG,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,qBAAqB,IAAI,CAAC,GAAG,WAAW,EAAE,KAAK,CAAC,CAAC;YACnE,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,OAAe,EAAE,MAAc,EAAE,KAAa,EAAE,WAAmB,CAAC,CAAC;QAClF,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,OAAO,CAAC,yBAAyB,EAAE;gBAC5C,QAAQ,EAAE,OAAO;gBACjB,OAAO,EAAE,MAAM;gBACf,aAAa,EAAE,KAAK;gBACpB,QAAQ;aACT,CAAC,CAAC;YACH,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAE,EAAE,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;YACzG,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,qBAAqB,IAAI,CAAC,GAAG,UAAU,EAAE,KAAK,CAAC,CAAC;YAClE,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,OAAe,EAAE,IAAY;QAC9C,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;YAC9E,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAE,EAAE,EAAE,EAAE,gBAAgB,EAAE,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;YAChG,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,qBAAqB,IAAI,CAAC,GAAG,UAAU,EAAE,KAAK,CAAC,CAAC;YAClE,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,OAAe;QACjC,IAAI,CAAC;YACH,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,uBAAuB,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;QAC5E,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,qBAAqB,IAAI,CAAC,GAAG,aAAa,EAAE,KAAK,CAAC,CAAC;YACrE,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,OAAe;QAChC,IAAI,CAAC;YACH,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;QACrE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,qBAAqB,IAAI,CAAC,GAAG,WAAW,EAAE,KAAK,CAAC,CAAC;YACnE,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,OAAO,CAAC,MAAc,EAAE,SAAc,EAAE;QACpD,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,KAAK,SAAS,CAAC,IAAI,EAAE,CAAC;YACtD,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAChD,CAAC;QACD,MAAM,IAAI,GAAG,OAAO,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC;QACvC,MAAM,OAAO,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;QACzC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC9B,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBAClC,MAAM,CAAC,IAAI,KAAK,CAAC,qBAAqB,MAAM,EAAE,CAAC,CAAC,CAAC;YACnD,CAAC,EAAE,KAAK,CAAC,CAAC;YACV,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;YAC7D,IAAI,CAAC,EAAG,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,sBAAsB,CAAC,OAAY;QACzC,IAAI,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YAC3D,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAE,CAAC;YACxD,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAC1C,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAC9B,MAAM,QAAQ,GAAG,OAAsB,CAAC;YACxC,IAAI,QAAQ,CAAC,MAAM,KAAK,IAAI;gBAAE,OAAO,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YACpE,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,cAAc,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QACrE,CAAC;QACD,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;YACpC,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC;QACtC,CAAC;aAAM,IAAI,OAAO,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;YAC1C,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;QACrC,CAAC;aAAM,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;YAC3C,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC;QACtC,CAAC;IACH,CAAC;IAEO,oBAAoB,CAAC,KAAU;QACrC,MAAM,aAAa,GAA2B;YAC5C,cAAc,EAAE,uBAAuB;YACvC,cAAc,EAAE,uBAAuB;YACvC,WAAW,EAAE,oBAAoB;YACjC,SAAS,EAAE,WAAW;YACtB,YAAY,EAAE,cAAc;YAC5B,aAAa,EAAE,eAAe;YAC9B,UAAU,EAAE,YAAY;YACxB,MAAM,EAAE,KAAK,CAAC,QAAQ,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,UAAU,KAAK,CAAC,QAAQ,EAAE;YAChH,YAAY,EAAE,cAAc;SAC7B,CAAC;QACF,MAAM,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC,WAAW,CAAC;QACpE,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC;QACjC,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE;YAChC,GAAG,EAAE,GAAG,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,OAAO,EAAE;YAC5E,QAAQ,EAAE,UAAU;YACpB,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI;YAC5B,KAAK;YACL,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,QAAQ,EAAE;gBACR,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;gBACvD,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;aACpC;YACD,SAAS,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,WAAW,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,WAAW,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS;YACnH,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS;YACrG,UAAU,EAAE,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;SACxD,CAAC,CAAC;QACH,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;IAC9C,CAAC;IAEO,qBAAqB,CAAC,KAAU;QACtC,MAAM,OAAO,GAA2B;YACtC,MAAM,EAAE,YAAY;YACpB,KAAK,EAAE,KAAK,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,WAAW;SAClE,CAAC;QACF,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,KAAK,CAAC,YAAY,CAAC;QAChE,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE;YAClC,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,GAAG,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,YAAY,IAAI,KAAK,CAAC,OAAO,EAAE;YACzE,QAAQ,EAAE,UAAU;YACpB,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI;YAC5B,KAAK;YACL,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,QAAQ,EAAE;gBACR,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;gBACvD,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;aAC3C;YACD,OAAO,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE;YACvF,QAAQ,EAAE,KAAK,CAAC,OAAO;YACvB,UAAU,EAAE,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;YACvD,QAAQ,EAAE,KAAK,EAAE,MAAe,EAAE,EAAE;gBAClC,MAAM,IAAI,CAAC,OAAO,CAChB,KAAK,CAAC,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,uBAAuB,EACpF,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAC5C,CAAC;YACJ,CAAC;YACD,OAAO,EAAE,KAAK,EAAE,MAAe,EAAE,EAAE;gBACjC,MAAM,IAAI,CAAC,OAAO,CAChB,KAAK,CAAC,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,uBAAuB,EACpF,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAC7C,CAAC;YACJ,CAAC;SACF,CAAC,CAAC;QACH,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC;IAChD,CAAC;IAEO,qBAAqB,CAAC,SAA0B;QACtD,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;QAC/C,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC;QAC9C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,UAAU,OAAO,CAAC,QAAQ,CAAC,IAAI,IAAI,OAAO,CAAC,QAAQ,CAAC,EAAE,KAAK,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IACpI,CAAC;IAEO,cAAc;QACpB,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,kBAAkB,IAAI,KAAK,CAAC;QAC1D,IAAI,CAAC,cAAc,GAAG,WAAW,CAAC,GAAG,EAAE;YACrC,IAAI,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,KAAK,SAAS,CAAC,IAAI;gBAAE,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;QACvE,CAAC,EAAE,QAAQ,CAAC,CAAC;IACf,CAAC;IAEO,iBAAiB;QACvB,IAAI,IAAI,CAAC,cAAc;YAAE,OAAO;QAChC,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,kBAAkB,IAAI,IAAI,CAAC;QACzD,IAAI,CAAC,cAAc,GAAG,UAAU,CAAC,KAAK,IAAI,EAAE;YAC1C,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC;YAChC,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;YACxB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,KAAK,CAAC,wBAAwB,KAAK,EAAE,CAAC,CAAC,CAAC;gBAC/D,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC3B,CAAC;QACH,CAAC,EAAE,QAAQ,CAAC,CAAC;IACf,CAAC;CACF"}
@@ -1,43 +0,0 @@
1
- import { EventEmitter } from 'events';
2
- import { Endpoint, Message, SendOptions, type QuotedMessagePayload } from 'zhin.js';
3
- import type { Router } from '@zhin.js/host-router';
4
- import type { OneBot11WsServerConfig, OneBot11Message } from './types.js';
5
- import type { OneBot11Adapter } from './adapter.js';
6
- export declare class OneBot11WsServer extends EventEmitter implements Endpoint<OneBot11WsServerConfig, OneBot11Message> {
7
- #private;
8
- adapter: OneBot11Adapter;
9
- router: Router;
10
- $config: OneBot11WsServerConfig;
11
- $connected: boolean;
12
- private heartbeatTimer?;
13
- private requestId;
14
- private pendingRequests;
15
- get logger(): import("zhin.js").Logger;
16
- get $id(): string;
17
- constructor(adapter: OneBot11Adapter, router: Router, $config: OneBot11WsServerConfig);
18
- $connect(): Promise<void>;
19
- $disconnect(): Promise<void>;
20
- private toWireSendContent;
21
- $formatMessage(onebotMsg: OneBot11Message): Message<OneBot11Message>;
22
- $sendMessage(options: SendOptions): Promise<string>;
23
- $recallMessage(id: string): Promise<void>;
24
- $getMsg(messageId: string): Promise<QuotedMessagePayload>;
25
- private getFirstSelfId;
26
- kickMember(groupId: number, userId: number, rejectAddRequest?: boolean): Promise<boolean>;
27
- muteMember(groupId: number, userId: number, duration?: number): Promise<boolean>;
28
- muteAll(groupId: number, enable?: boolean): Promise<boolean>;
29
- setAdmin(groupId: number, userId: number, enable?: boolean): Promise<boolean>;
30
- setCard(groupId: number, userId: number, card: string): Promise<boolean>;
31
- setGroupName(groupId: number, name: string): Promise<boolean>;
32
- getMemberList(groupId: number): Promise<any[]>;
33
- getGroupInfo(groupId: number): Promise<any>;
34
- setTitle(groupId: number, userId: number, title: string, duration?: number): Promise<boolean>;
35
- private callApi;
36
- private handleWebSocketMessage;
37
- private handleMetaEvent;
38
- private handleMessage;
39
- private handleNotice;
40
- private handleRequest;
41
- private startHeartbeat;
42
- }
43
- //# sourceMappingURL=endpoint-ws-server.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"endpoint-ws-server.d.ts","sourceRoot":"","sources":["../src/endpoint-ws-server.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAGtC,OAAO,EAAiB,QAAQ,EAAE,OAAO,EAAyC,WAAW,EAAsC,KAAK,oBAAoB,EAAyD,MAAM,SAAS,CAAC;AAGrO,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,KAAK,EACV,sBAAsB,EACtB,eAAe,EAEhB,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAEpD,qBAAa,gBAAiB,SAAQ,YAAa,YAAW,QAAQ,CAAC,sBAAsB,EAAE,eAAe,CAAC;;IAqBpG,OAAO,EAAE,eAAe;IACxB,MAAM,EAAE,MAAM;IACd,OAAO,EAAE,sBAAsB;IAtBxC,UAAU,EAAE,OAAO,CAAC;IAGpB,OAAO,CAAC,cAAc,CAAC,CAAiB;IACxC,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,eAAe,CAIlB;IAEL,IAAI,MAAM,6BAET;IAED,IAAI,GAAG,WAEN;gBAGQ,OAAO,EAAE,eAAe,EACxB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,sBAAsB;IAMlC,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAqDzB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAQlC,OAAO,CAAC,iBAAiB;IAOzB,cAAc,CAAC,SAAS,EAAE,eAAe;IA2CnC,YAAY,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC;IAwBnD,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKzC,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAO/D,OAAO,CAAC,cAAc;IAMhB,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB,GAAE,OAAe,GAAG,OAAO,CAAC,OAAO,CAAC;IAMhG,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAY,GAAG,OAAO,CAAC,OAAO,CAAC;IAMrF,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,GAAE,OAAc,GAAG,OAAO,CAAC,OAAO,CAAC;IAMlE,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAE,OAAc,GAAG,OAAO,CAAC,OAAO,CAAC;IAMnF,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAMxE,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAM7D,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAK9C,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAK3C,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAW,GAAG,OAAO,CAAC,OAAO,CAAC;YAMzF,OAAO;IAiBrB,OAAO,CAAC,sBAAsB;IA+B9B,OAAO,CAAC,eAAe;IAYvB,OAAO,CAAC,aAAa;IAMrB,OAAO,CAAC,YAAY;IA+BpB,OAAO,CAAC,aAAa;IAsCrB,OAAO,CAAC,cAAc;CAQvB"}