@zhin.js/adapter-slack 1.0.36 → 1.0.37

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 CHANGED
@@ -1,5 +1,11 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.0.37
4
+
5
+ ### Patch Changes
6
+
7
+ - zhin.js@1.0.51
8
+
3
9
  ## 1.0.36
4
10
 
5
11
  ### Patch Changes
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Slack 适配器
3
+ */
4
+ import { Adapter, Plugin } from "zhin.js";
5
+ import { SlackBot } from "./bot.js";
6
+ import type { SlackBotConfig } from "./types.js";
7
+ export declare class SlackAdapter extends Adapter<SlackBot> {
8
+ constructor(plugin: Plugin);
9
+ createBot(config: SlackBotConfig): SlackBot;
10
+ kickMember(botId: string, sceneId: string, userId: string): Promise<boolean>;
11
+ setGroupName(botId: string, sceneId: string, name: string): Promise<boolean>;
12
+ listMembers(botId: string, sceneId: string): Promise<string[]>;
13
+ getGroupInfo(botId: string, sceneId: string): Promise<any>;
14
+ start(): Promise<void>;
15
+ /**
16
+ * 注册 Slack 平台特有工具(邀请到频道等)
17
+ */
18
+ private registerSlackPlatformTools;
19
+ }
20
+ //# sourceMappingURL=adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EACL,OAAO,EACP,MAAM,EAKP,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AACpC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD,qBAAa,YAAa,SAAQ,OAAO,CAAC,QAAQ,CAAC;gBACrC,MAAM,EAAE,MAAM;IAI1B,SAAS,CAAC,MAAM,EAAE,cAAc,GAAG,QAAQ;IAMrC,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAMzD,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;IAMzD,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;IAM1C,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;IAQ3C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAa5B;;OAEG;IACH,OAAO,CAAC,0BAA0B;CAqQnC"}
package/lib/adapter.js ADDED
@@ -0,0 +1,315 @@
1
+ /**
2
+ * Slack 适配器
3
+ */
4
+ import { Adapter, createGroupManagementTools, GROUP_MANAGEMENT_SKILL_KEYWORDS, GROUP_MANAGEMENT_SKILL_TAGS, } from "zhin.js";
5
+ import { SlackBot } from "./bot.js";
6
+ export class SlackAdapter extends Adapter {
7
+ constructor(plugin) {
8
+ super(plugin, "slack", []);
9
+ }
10
+ createBot(config) {
11
+ return new SlackBot(this, config);
12
+ }
13
+ // ── IGroupManagement 标准群管方法 ──────────────────────────────────
14
+ async kickMember(botId, sceneId, userId) {
15
+ const bot = this.bots.get(botId);
16
+ if (!bot)
17
+ throw new Error(`Bot ${botId} 不存在`);
18
+ return bot.kickFromChannel(sceneId, userId);
19
+ }
20
+ async setGroupName(botId, sceneId, name) {
21
+ const bot = this.bots.get(botId);
22
+ if (!bot)
23
+ throw new Error(`Bot ${botId} 不存在`);
24
+ return bot.renameChannel(sceneId, name);
25
+ }
26
+ async listMembers(botId, sceneId) {
27
+ const bot = this.bots.get(botId);
28
+ if (!bot)
29
+ throw new Error(`Bot ${botId} 不存在`);
30
+ return bot.getChannelMembers(sceneId);
31
+ }
32
+ async getGroupInfo(botId, sceneId) {
33
+ const bot = this.bots.get(botId);
34
+ if (!bot)
35
+ throw new Error(`Bot ${botId} 不存在`);
36
+ return bot.getChannelInfo(sceneId);
37
+ }
38
+ // ── 生命周期 ───────────────────────────────────────────────────────
39
+ async start() {
40
+ this.registerSlackPlatformTools();
41
+ const groupTools = createGroupManagementTools(this, this.name);
42
+ groupTools.forEach((t) => this.addTool(t));
43
+ this.declareSkill({
44
+ description: 'Slack 工作区/频道管理:踢人、禁言、改频道名、查成员等。需先 list_members 获取用户 ID 再执行管理操作。',
45
+ keywords: GROUP_MANAGEMENT_SKILL_KEYWORDS,
46
+ tags: GROUP_MANAGEMENT_SKILL_TAGS,
47
+ });
48
+ await super.start();
49
+ }
50
+ /**
51
+ * 注册 Slack 平台特有工具(邀请到频道等)
52
+ */
53
+ registerSlackPlatformTools() {
54
+ // 邀请用户到频道
55
+ this.addTool({
56
+ name: 'slack_invite_to_channel',
57
+ description: '邀请用户加入 Slack 频道',
58
+ parameters: {
59
+ type: 'object',
60
+ properties: {
61
+ bot: { type: 'string', description: 'Bot 名称' },
62
+ channel: { type: 'string', description: '频道 ID' },
63
+ users: { type: 'array', items: { type: 'string' }, description: '用户 ID 列表' },
64
+ },
65
+ required: ['bot', 'channel', 'users'],
66
+ },
67
+ platforms: ['slack'],
68
+ scopes: ['group'],
69
+ permissionLevel: 'group_admin',
70
+ execute: async (args) => {
71
+ const { bot: botId, channel, users } = args;
72
+ const bot = this.bots.get(botId);
73
+ if (!bot)
74
+ throw new Error(`Bot ${botId} 不存在`);
75
+ const success = await bot.inviteToChannel(channel, users);
76
+ return { success, message: success ? `已邀请用户加入频道` : '操作失败' };
77
+ },
78
+ });
79
+ // 设置频道话题
80
+ this.addTool({
81
+ name: 'slack_set_topic',
82
+ description: '设置 Slack 频道话题',
83
+ parameters: {
84
+ type: 'object',
85
+ properties: {
86
+ bot: { type: 'string', description: 'Bot 名称' },
87
+ channel: { type: 'string', description: '频道 ID' },
88
+ topic: { type: 'string', description: '新话题' },
89
+ },
90
+ required: ['bot', 'channel', 'topic'],
91
+ },
92
+ platforms: ['slack'],
93
+ scopes: ['group'],
94
+ permissionLevel: 'group_admin',
95
+ execute: async (args) => {
96
+ const { bot: botId, channel, topic } = args;
97
+ const bot = this.bots.get(botId);
98
+ if (!bot)
99
+ throw new Error(`Bot ${botId} 不存在`);
100
+ const success = await bot.setChannelTopic(channel, topic);
101
+ return { success, message: success ? `已设置频道话题` : '操作失败' };
102
+ },
103
+ });
104
+ // 归档频道
105
+ this.addTool({
106
+ name: 'slack_archive_channel',
107
+ description: '归档 Slack 频道',
108
+ parameters: {
109
+ type: 'object',
110
+ properties: {
111
+ bot: { type: 'string', description: 'Bot 名称' },
112
+ channel: { type: 'string', description: '频道 ID' },
113
+ },
114
+ required: ['bot', 'channel'],
115
+ },
116
+ platforms: ['slack'],
117
+ scopes: ['group'],
118
+ permissionLevel: 'group_admin',
119
+ execute: async (args) => {
120
+ const { bot: botId, channel } = args;
121
+ const bot = this.bots.get(botId);
122
+ if (!bot)
123
+ throw new Error(`Bot ${botId} 不存在`);
124
+ const success = await bot.archiveChannel(channel);
125
+ return { success, message: success ? `已归档频道` : '操作失败' };
126
+ },
127
+ });
128
+ // 置顶消息
129
+ this.addTool({
130
+ name: 'slack_pin_message',
131
+ description: '置顶 Slack 消息',
132
+ parameters: {
133
+ type: 'object',
134
+ properties: {
135
+ bot: { type: 'string', description: 'Bot 名称' },
136
+ channel: { type: 'string', description: '频道 ID' },
137
+ timestamp: { type: 'string', description: '消息时间戳' },
138
+ },
139
+ required: ['bot', 'channel', 'timestamp'],
140
+ },
141
+ platforms: ['slack'],
142
+ scopes: ['group'],
143
+ permissionLevel: 'group_admin',
144
+ execute: async (args) => {
145
+ const { bot: botId, channel, timestamp } = args;
146
+ const bot = this.bots.get(botId);
147
+ if (!bot)
148
+ throw new Error(`Bot ${botId} 不存在`);
149
+ const success = await bot.pinMessage(channel, timestamp);
150
+ return { success, message: success ? `已置顶消息` : '操作失败' };
151
+ },
152
+ });
153
+ // 添加反应
154
+ this.addTool({
155
+ name: 'slack_add_reaction',
156
+ description: '给 Slack 消息添加表情反应',
157
+ parameters: {
158
+ type: 'object',
159
+ properties: {
160
+ bot: { type: 'string', description: 'Bot 名称' },
161
+ channel: { type: 'string', description: '频道 ID' },
162
+ timestamp: { type: 'string', description: '消息时间戳' },
163
+ emoji: { type: 'string', description: '表情名称(不含冒号)' },
164
+ },
165
+ required: ['bot', 'channel', 'timestamp', 'emoji'],
166
+ },
167
+ platforms: ['slack'],
168
+ scopes: ['group', 'private'],
169
+ permissionLevel: 'user',
170
+ execute: async (args) => {
171
+ const { bot: botId, channel, timestamp, emoji } = args;
172
+ const bot = this.bots.get(botId);
173
+ if (!bot)
174
+ throw new Error(`Bot ${botId} 不存在`);
175
+ const success = await bot.addReaction(channel, timestamp, emoji);
176
+ return { success, message: success ? `已添加反应 :${emoji}:` : '操作失败' };
177
+ },
178
+ });
179
+ // 移除表情反应
180
+ this.addTool({
181
+ name: 'slack_remove_reaction',
182
+ description: '移除 Slack 消息上的表情反应',
183
+ parameters: {
184
+ type: 'object',
185
+ properties: {
186
+ bot: { type: 'string', description: 'Bot 名称' },
187
+ channel_id: { type: 'string', description: '频道 ID' },
188
+ timestamp: { type: 'string', description: '消息时间戳' },
189
+ name: { type: 'string', description: '表情名称(如 thumbsup、heart)' },
190
+ },
191
+ required: ['bot', 'channel_id', 'timestamp', 'name'],
192
+ },
193
+ platforms: ['slack'],
194
+ scopes: ['group'],
195
+ permissionLevel: 'user',
196
+ execute: async (args) => {
197
+ const { bot: botId, channel_id, timestamp, name } = args;
198
+ const bot = this.bots.get(botId);
199
+ if (!bot)
200
+ throw new Error(`Bot ${botId} 不存在`);
201
+ const success = await bot.removeReaction(channel_id, timestamp, name);
202
+ return { success, message: success ? `已移除反应 :${name}:` : '操作失败' };
203
+ },
204
+ });
205
+ // 取消置顶消息
206
+ this.addTool({
207
+ name: 'slack_unpin_message',
208
+ description: '取消 Slack 频道中消息的置顶',
209
+ parameters: {
210
+ type: 'object',
211
+ properties: {
212
+ bot: { type: 'string', description: 'Bot 名称' },
213
+ channel_id: { type: 'string', description: '频道 ID' },
214
+ timestamp: { type: 'string', description: '消息时间戳' },
215
+ },
216
+ required: ['bot', 'channel_id', 'timestamp'],
217
+ },
218
+ platforms: ['slack'],
219
+ scopes: ['group'],
220
+ permissionLevel: 'group_admin',
221
+ execute: async (args) => {
222
+ const { bot: botId, channel_id, timestamp } = args;
223
+ const bot = this.bots.get(botId);
224
+ if (!bot)
225
+ throw new Error(`Bot ${botId} 不存在`);
226
+ const success = await bot.unpinMessage(channel_id, timestamp);
227
+ return { success, message: success ? '已取消置顶' : '操作失败' };
228
+ },
229
+ });
230
+ // 查询用户信息
231
+ this.addTool({
232
+ name: 'slack_user_info',
233
+ description: '查询 Slack 用户详细信息',
234
+ parameters: {
235
+ type: 'object',
236
+ properties: {
237
+ bot: { type: 'string', description: 'Bot 名称' },
238
+ user_id: { type: 'string', description: '用户 ID' },
239
+ },
240
+ required: ['bot', 'user_id'],
241
+ },
242
+ platforms: ['slack'],
243
+ scopes: ['group', 'private'],
244
+ permissionLevel: 'user',
245
+ execute: async (args) => {
246
+ const { bot: botId, user_id } = args;
247
+ const bot = this.bots.get(botId);
248
+ if (!bot)
249
+ throw new Error(`Bot ${botId} 不存在`);
250
+ const user = await bot.getUserInfo(user_id);
251
+ return {
252
+ id: user.id,
253
+ name: user.name,
254
+ real_name: user.real_name,
255
+ display_name: user.profile?.display_name,
256
+ email: user.profile?.email,
257
+ is_admin: user.is_admin,
258
+ is_bot: user.is_bot,
259
+ status_text: user.profile?.status_text,
260
+ };
261
+ },
262
+ });
263
+ // 设置频道用途
264
+ this.addTool({
265
+ name: 'slack_set_purpose',
266
+ description: '设置 Slack 频道的用途/目的',
267
+ parameters: {
268
+ type: 'object',
269
+ properties: {
270
+ bot: { type: 'string', description: 'Bot 名称' },
271
+ channel_id: { type: 'string', description: '频道 ID' },
272
+ purpose: { type: 'string', description: '频道用途描述' },
273
+ },
274
+ required: ['bot', 'channel_id', 'purpose'],
275
+ },
276
+ platforms: ['slack'],
277
+ scopes: ['group'],
278
+ permissionLevel: 'group_admin',
279
+ execute: async (args) => {
280
+ const { bot: botId, channel_id, purpose } = args;
281
+ const bot = this.bots.get(botId);
282
+ if (!bot)
283
+ throw new Error(`Bot ${botId} 不存在`);
284
+ const success = await bot.setChannelPurpose(channel_id, purpose);
285
+ return { success, message: success ? '频道用途已更新' : '操作失败' };
286
+ },
287
+ });
288
+ // 恢复归档频道
289
+ this.addTool({
290
+ name: 'slack_unarchive',
291
+ description: '恢复已归档的 Slack 频道',
292
+ parameters: {
293
+ type: 'object',
294
+ properties: {
295
+ bot: { type: 'string', description: 'Bot 名称' },
296
+ channel_id: { type: 'string', description: '频道 ID' },
297
+ },
298
+ required: ['bot', 'channel_id'],
299
+ },
300
+ platforms: ['slack'],
301
+ scopes: ['group'],
302
+ permissionLevel: 'group_admin',
303
+ execute: async (args) => {
304
+ const { bot: botId, channel_id } = args;
305
+ const bot = this.bots.get(botId);
306
+ if (!bot)
307
+ throw new Error(`Bot ${botId} 不存在`);
308
+ const success = await bot.unarchiveChannel(channel_id);
309
+ return { success, message: success ? '频道已恢复' : '操作失败' };
310
+ },
311
+ });
312
+ this.plugin.logger.debug('已注册 Slack 平台工作区管理工具');
313
+ }
314
+ }
315
+ //# sourceMappingURL=adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"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"}
package/lib/bot.d.ts ADDED
@@ -0,0 +1,104 @@
1
+ import { Bot, Message, SendOptions } from "zhin.js";
2
+ import type { SlackBotConfig, SlackMessageEvent } from "./types.js";
3
+ import type { SlackAdapter } from "./adapter.js";
4
+ export declare class SlackBot implements Bot<SlackBotConfig, SlackMessageEvent> {
5
+ adapter: SlackAdapter;
6
+ $config: SlackBotConfig;
7
+ $connected: boolean;
8
+ private app;
9
+ private client;
10
+ get logger(): import("zhin.js").Logger;
11
+ get $id(): string;
12
+ constructor(adapter: SlackAdapter, $config: SlackBotConfig);
13
+ $connect(): Promise<void>;
14
+ $disconnect(): Promise<void>;
15
+ private handleSlackMessage;
16
+ $formatMessage(msg: SlackMessageEvent): Message<SlackMessageEvent>;
17
+ private parseMessageContent;
18
+ private parseSlackText;
19
+ $sendMessage(options: SendOptions): Promise<string>;
20
+ private sendContentToChannel;
21
+ $recallMessage(id: string): Promise<void>;
22
+ /**
23
+ * 邀请用户到频道
24
+ * @param channel 频道 ID
25
+ * @param users 用户 ID 列表
26
+ */
27
+ inviteToChannel(channel: string, users: string[]): Promise<boolean>;
28
+ /**
29
+ * 从频道踢出用户
30
+ * @param channel 频道 ID
31
+ * @param user 用户 ID
32
+ */
33
+ kickFromChannel(channel: string, user: string): Promise<boolean>;
34
+ /**
35
+ * 设置频道话题
36
+ * @param channel 频道 ID
37
+ * @param topic 话题
38
+ */
39
+ setChannelTopic(channel: string, topic: string): Promise<boolean>;
40
+ /**
41
+ * 设置频道目的
42
+ * @param channel 频道 ID
43
+ * @param purpose 目的
44
+ */
45
+ setChannelPurpose(channel: string, purpose: string): Promise<boolean>;
46
+ /**
47
+ * 归档频道
48
+ * @param channel 频道 ID
49
+ */
50
+ archiveChannel(channel: string): Promise<boolean>;
51
+ /**
52
+ * 取消归档频道
53
+ * @param channel 频道 ID
54
+ */
55
+ unarchiveChannel(channel: string): Promise<boolean>;
56
+ /**
57
+ * 重命名频道
58
+ * @param channel 频道 ID
59
+ * @param name 新名称
60
+ */
61
+ renameChannel(channel: string, name: string): Promise<boolean>;
62
+ /**
63
+ * 获取频道成员列表
64
+ * @param channel 频道 ID
65
+ */
66
+ getChannelMembers(channel: string): Promise<string[]>;
67
+ /**
68
+ * 获取频道信息
69
+ * @param channel 频道 ID
70
+ */
71
+ getChannelInfo(channel: string): Promise<any>;
72
+ /**
73
+ * 获取用户信息
74
+ * @param user 用户 ID
75
+ */
76
+ getUserInfo(user: string): Promise<any>;
77
+ /**
78
+ * 添加消息反应
79
+ * @param channel 频道 ID
80
+ * @param timestamp 消息时间戳
81
+ * @param name 表情名称
82
+ */
83
+ addReaction(channel: string, timestamp: string, name: string): Promise<boolean>;
84
+ /**
85
+ * 移除消息反应
86
+ * @param channel 频道 ID
87
+ * @param timestamp 消息时间戳
88
+ * @param name 表情名称
89
+ */
90
+ removeReaction(channel: string, timestamp: string, name: string): Promise<boolean>;
91
+ /**
92
+ * 置顶消息
93
+ * @param channel 频道 ID
94
+ * @param timestamp 消息时间戳
95
+ */
96
+ pinMessage(channel: string, timestamp: string): Promise<boolean>;
97
+ /**
98
+ * 取消置顶消息
99
+ * @param channel 频道 ID
100
+ * @param timestamp 消息时间戳
101
+ */
102
+ unpinMessage(channel: string, timestamp: string): Promise<boolean>;
103
+ }
104
+ //# sourceMappingURL=bot.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bot.d.ts","sourceRoot":"","sources":["../src/bot.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,GAAG,EACH,OAAO,EACP,WAAW,EAIZ,MAAM,SAAS,CAAC;AACjB,OAAO,KAAK,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AACpE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAGjD,qBAAa,QAAS,YAAW,GAAG,CAAC,cAAc,EAAE,iBAAiB,CAAC;IAalD,OAAO,EAAE,YAAY;IAAS,OAAO,EAAE,cAAc;IAZxE,UAAU,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,GAAG,CAAW;IACtB,OAAO,CAAC,MAAM,CAAY;IAE1B,IAAI,MAAM,6BAET;IAED,IAAI,GAAG,WAEN;gBAEkB,OAAO,EAAE,YAAY,EAAS,OAAO,EAAE,cAAc;IA0BlE,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAsCzB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;YAWpB,kBAAkB;IAahC,cAAc,CAAC,GAAG,EAAE,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAoElE,OAAO,CAAC,mBAAmB;IAiF3B,OAAO,CAAC,cAAc;IA+FhB,YAAY,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC;YAgB3C,oBAAoB;IAmF5B,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAY/C;;;;OAIG;IACG,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IAWzE;;;;OAIG;IACG,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAWtE;;;;OAIG;IACG,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAWvE;;;;OAIG;IACG,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAW3E;;;OAGG;IACG,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAWvD;;;OAGG;IACG,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAWzD;;;;OAIG;IACG,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAWpE;;;OAGG;IACG,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAU3D;;;OAGG;IACG,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAUnD;;;OAGG;IACG,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAU7C;;;;;OAKG;IACG,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAWrF;;;;;OAKG;IACG,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAWxF;;;;OAIG;IACG,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAWtE;;;;OAIG;IACG,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CAUzE"}