@will-17173/telegram-cli 0.1.1 → 0.3.0

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 (111) hide show
  1. package/README.md +169 -10
  2. package/README.zh-CN.md +169 -11
  3. package/dist/cli/app.js +3 -1
  4. package/dist/cli/app.js.map +1 -1
  5. package/dist/commands/account.js +51 -5
  6. package/dist/commands/account.js.map +1 -1
  7. package/dist/commands/config.js +96 -13
  8. package/dist/commands/config.js.map +1 -1
  9. package/dist/commands/group-write.js +88 -0
  10. package/dist/commands/group-write.js.map +1 -0
  11. package/dist/commands/group.js +121 -0
  12. package/dist/commands/group.js.map +1 -0
  13. package/dist/commands/telegram-runner.js +84 -0
  14. package/dist/commands/telegram-runner.js.map +1 -0
  15. package/dist/commands/telegram.js +154 -172
  16. package/dist/commands/telegram.js.map +1 -1
  17. package/dist/config/credential-store.js +76 -22
  18. package/dist/config/credential-store.js.map +1 -1
  19. package/dist/config/env.js +12 -1
  20. package/dist/config/env.js.map +1 -1
  21. package/dist/group-commands/catalog.js +69 -0
  22. package/dist/group-commands/catalog.js.map +1 -0
  23. package/dist/group-commands/executor.js +93 -0
  24. package/dist/group-commands/executor.js.map +1 -0
  25. package/dist/group-commands/parser.js +268 -0
  26. package/dist/group-commands/parser.js.map +1 -0
  27. package/dist/group-commands/tokenize.js +51 -0
  28. package/dist/group-commands/tokenize.js.map +1 -0
  29. package/dist/group-commands/types.js +2 -0
  30. package/dist/group-commands/types.js.map +1 -0
  31. package/dist/listen-commands/catalog.js +61 -0
  32. package/dist/listen-commands/catalog.js.map +1 -0
  33. package/dist/listen-commands/dispatch.js +46 -0
  34. package/dist/listen-commands/dispatch.js.map +1 -0
  35. package/dist/listen-commands/match.js +113 -0
  36. package/dist/listen-commands/match.js.map +1 -0
  37. package/dist/presenters/group.js +130 -0
  38. package/dist/presenters/group.js.map +1 -0
  39. package/dist/presenters/human.js +29 -9
  40. package/dist/presenters/human.js.map +1 -1
  41. package/dist/presenters/ink/display-width.js +45 -7
  42. package/dist/presenters/ink/display-width.js.map +1 -1
  43. package/dist/presenters/ink/group-command-confirm.js +13 -0
  44. package/dist/presenters/ink/group-command-confirm.js.map +1 -0
  45. package/dist/presenters/ink/group-command-result.js +21 -0
  46. package/dist/presenters/ink/group-command-result.js.map +1 -0
  47. package/dist/presenters/ink/listen-command-menu.js +38 -0
  48. package/dist/presenters/ink/listen-command-menu.js.map +1 -0
  49. package/dist/presenters/ink/listen-scroll.js +5 -1
  50. package/dist/presenters/ink/listen-scroll.js.map +1 -1
  51. package/dist/presenters/ink/listen.js +806 -171
  52. package/dist/presenters/ink/listen.js.map +1 -1
  53. package/dist/presenters/ink/use-group-command.js +125 -0
  54. package/dist/presenters/ink/use-group-command.js.map +1 -0
  55. package/dist/presenters/listen-message.js +25 -241
  56. package/dist/presenters/listen-message.js.map +1 -1
  57. package/dist/presenters/logical-message.js +78 -0
  58. package/dist/presenters/logical-message.js.map +1 -0
  59. package/dist/services/attachment-download.js +5 -2
  60. package/dist/services/attachment-download.js.map +1 -1
  61. package/dist/services/auto-download-coordinator.js +214 -0
  62. package/dist/services/auto-download-coordinator.js.map +1 -0
  63. package/dist/services/group-service.js +164 -0
  64. package/dist/services/group-service.js.map +1 -0
  65. package/dist/services/group-write-service.js +165 -0
  66. package/dist/services/group-write-service.js.map +1 -0
  67. package/dist/services/listen-album-aggregator.js +9 -29
  68. package/dist/services/listen-album-aggregator.js.map +1 -1
  69. package/dist/services/listen-attachment.js +265 -0
  70. package/dist/services/listen-attachment.js.map +1 -0
  71. package/dist/services/listen-composer-command.js +102 -0
  72. package/dist/services/listen-composer-command.js.map +1 -0
  73. package/dist/services/listen-reply-resolver.js +126 -0
  74. package/dist/services/listen-reply-resolver.js.map +1 -0
  75. package/dist/services/message-service.js +54 -4
  76. package/dist/services/message-service.js.map +1 -1
  77. package/dist/services/query-service.js +95 -34
  78. package/dist/services/query-service.js.map +1 -1
  79. package/dist/services/reply-context.js +29 -0
  80. package/dist/services/reply-context.js.map +1 -0
  81. package/dist/services/sync-service.js +18 -6
  82. package/dist/services/sync-service.js.map +1 -1
  83. package/dist/storage/message-db.js +241 -5
  84. package/dist/storage/message-db.js.map +1 -1
  85. package/dist/telegram/client-factory.js +4 -2
  86. package/dist/telegram/client-factory.js.map +1 -1
  87. package/dist/telegram/fake-group-management.js +381 -0
  88. package/dist/telegram/fake-group-management.js.map +1 -0
  89. package/dist/telegram/group-types.js +59 -0
  90. package/dist/telegram/group-types.js.map +1 -0
  91. package/dist/telegram/group-write-types.js +2 -0
  92. package/dist/telegram/group-write-types.js.map +1 -0
  93. package/dist/telegram/mtcute-client.js +74 -9
  94. package/dist/telegram/mtcute-client.js.map +1 -1
  95. package/dist/telegram/mtcute-group-helpers.js +56 -0
  96. package/dist/telegram/mtcute-group-helpers.js.map +1 -0
  97. package/dist/telegram/mtcute-group-invites.js +82 -0
  98. package/dist/telegram/mtcute-group-invites.js.map +1 -0
  99. package/dist/telegram/mtcute-group-management.js +493 -0
  100. package/dist/telegram/mtcute-group-management.js.map +1 -0
  101. package/dist/telegram/mtcute-group-members.js +118 -0
  102. package/dist/telegram/mtcute-group-members.js.map +1 -0
  103. package/dist/telegram/mtcute-group-settings.js +146 -0
  104. package/dist/telegram/mtcute-group-settings.js.map +1 -0
  105. package/dist/telegram/mtcute-group-topics.js +63 -0
  106. package/dist/telegram/mtcute-group-topics.js.map +1 -0
  107. package/dist/telegram/proxy.js +27 -0
  108. package/dist/telegram/proxy.js.map +1 -0
  109. package/dist/telegram/raw-message.js +46 -0
  110. package/dist/telegram/raw-message.js.map +1 -0
  111. package/package.json +9 -1
@@ -0,0 +1,493 @@
1
+ import { tl } from '@mtcute/node';
2
+ import { TelegramGroupAdminRequiredError, TelegramGroupMemberNotFoundError, TelegramGroupNotFoundError, } from './group-types.js';
3
+ import { MtcuteGroupMembers } from './mtcute-group-members.js';
4
+ import { MtcuteGroupSettings } from './mtcute-group-settings.js';
5
+ import { MtcuteGroupInvites } from './mtcute-group-invites.js';
6
+ import { MtcuteGroupTopics } from './mtcute-group-topics.js';
7
+ import { isMemberNotFoundError, isPeerNotFoundError, normalizePeerId, requireGroup } from './mtcute-group-helpers.js';
8
+ export class MtcuteGroupManagement {
9
+ client;
10
+ ensureReady;
11
+ members;
12
+ settings;
13
+ invites;
14
+ topics;
15
+ constructor(client, ensureReady) {
16
+ this.client = client;
17
+ this.ensureReady = ensureReady;
18
+ this.members = new MtcuteGroupMembers(client, ensureReady);
19
+ this.settings = new MtcuteGroupSettings(client, ensureReady);
20
+ this.invites = new MtcuteGroupInvites(client, ensureReady);
21
+ this.topics = new MtcuteGroupTopics(client, ensureReady);
22
+ }
23
+ addMembers(r) { return this.members.addMembers(r); }
24
+ kickMember(r) { return this.members.kickMember(r); }
25
+ banMember(r) { return this.members.banMember(r); }
26
+ unbanMember(r) { return this.members.unbanMember(r); }
27
+ muteMember(r) { return this.members.muteMember(r); }
28
+ unmuteMember(r) { return this.members.unmuteMember(r); }
29
+ purgeMember(r) { return this.members.purgeMember(r); }
30
+ promoteAdmin(r) { return this.members.promoteAdmin(r); }
31
+ demoteAdmin(r) { return this.members.demoteAdmin(r); }
32
+ setAdminRank(r) { return this.members.setAdminRank(r); }
33
+ transferOwnership(r) { return this.members.transferOwnership(r); }
34
+ setTitle(r) { return this.settings.setTitle(r); }
35
+ setDescription(r) { return this.settings.setDescription(r); }
36
+ setUsername(r) { return this.settings.setUsername(r); }
37
+ setPhoto(r) { return this.settings.setPhoto(r); }
38
+ setSlowMode(r) { return this.settings.setSlowMode(r); }
39
+ setTtl(r) { return this.settings.setTtl(r); }
40
+ setContentProtection(r) { return this.settings.setContentProtection(r); }
41
+ setJoinRequests(r) { return this.settings.setJoinRequests(r); }
42
+ setJoinToSend(r) { return this.settings.setJoinToSend(r); }
43
+ setDefaultPermissions(r) { return this.settings.setDefaultPermissions(r); }
44
+ setStickerSet(r) { return this.settings.setStickerSet(r); }
45
+ leaveGroup(r) { return this.settings.leaveGroup(r); }
46
+ deleteGroup(r) { return this.settings.deleteGroup(r); }
47
+ pinMessage(r) { return this.settings.pinMessage(r); }
48
+ unpinMessage(r) { return this.settings.unpinMessage(r); }
49
+ unpinAllMessages(r) { return this.settings.unpinAllMessages(r); }
50
+ deleteGroupMessages(r) { return this.settings.deleteGroupMessages(r); }
51
+ listInvites(r) { return this.invites.listInvites(r); }
52
+ getInvite(r) { return this.invites.getInvite(r); }
53
+ createInvite(r) { return this.invites.createInvite(r); }
54
+ editInvite(r) { return this.invites.editInvite(r); }
55
+ revokeInvite(r) { return this.invites.revokeInvite(r); }
56
+ listInviteMembers(r) { return this.invites.listInviteMembers(r); }
57
+ approveJoinRequest(r) { return this.invites.approveJoinRequest(r); }
58
+ declineJoinRequest(r) { return this.invites.declineJoinRequest(r); }
59
+ approveAllJoinRequests(r) { return this.invites.approveAllJoinRequests(r); }
60
+ declineAllJoinRequests(r) { return this.invites.declineAllJoinRequests(r); }
61
+ listTopics(r) { return this.topics.listTopics(r); }
62
+ createTopic(r) { return this.topics.createTopic(r); }
63
+ editTopic(r) { return this.topics.editTopic(r); }
64
+ setTopicClosed(r) { return this.topics.setTopicClosed(r); }
65
+ setTopicPinned(r) { return this.topics.setTopicPinned(r); }
66
+ reorderPinnedTopics(r) { return this.topics.reorderPinnedTopics(r); }
67
+ deleteTopic(r) { return this.topics.deleteTopic(r); }
68
+ setGeneralTopicHidden(r) { return this.topics.setGeneralTopicHidden(r); }
69
+ async getGroup(chat) {
70
+ await this.ensureReady();
71
+ const chatId = normalizePeerId(chat);
72
+ try {
73
+ const peer = await this.client.getChat(chatId);
74
+ const group = requireGroup(peer, chat);
75
+ const full = await this.client.getFullChat(chatId);
76
+ const me = await this.client.getMe();
77
+ const currentMember = await this.client.getChatMember({ chatId, userId: me.id });
78
+ return {
79
+ id: group.id,
80
+ title: group.title,
81
+ username: group.username ?? null,
82
+ type: group.chatType,
83
+ member_count: full.membersCount > 0 ? full.membersCount : null,
84
+ current_user_role: currentMember?.status ?? null,
85
+ current_user_rank: currentMember?.title ?? null,
86
+ permissions: mapAdminRights(currentMember?.permissions ?? null),
87
+ default_restrictions: mapRestrictions(group.defaultPermissions),
88
+ slow_mode_seconds: full.slowmodeSeconds ?? null,
89
+ message_ttl_seconds: full.ttlPeriod ?? null,
90
+ content_protected: group.hasContentProtection,
91
+ forum: group.isForum,
92
+ };
93
+ }
94
+ catch (error) {
95
+ if (error instanceof TelegramGroupNotFoundError)
96
+ throw error;
97
+ if (isPeerNotFoundError(error))
98
+ throw new TelegramGroupNotFoundError(chat);
99
+ throw error;
100
+ }
101
+ }
102
+ async listMembers(request) {
103
+ await this.ensureReady();
104
+ const chatId = normalizePeerId(request.chat);
105
+ try {
106
+ const peer = await this.client.getChat(chatId);
107
+ const group = requireGroup(peer, request.chat);
108
+ const usesLocalQuery = request.query != null && usesLocalMemberQuery(request.type);
109
+ const members = await this.client.getChatMembers(chatId, {
110
+ type: request.type,
111
+ query: usesLocalQuery ? undefined : request.query,
112
+ limit: usesLocalQuery ? 200 : request.limit,
113
+ });
114
+ const reportedTotal = members.total;
115
+ const resultMembers = usesLocalQuery
116
+ ? members.filter((member) => memberMatchesQuery(member, request.query)).slice(0, request.limit)
117
+ : members;
118
+ return {
119
+ chat_id: group.id,
120
+ chat_title: group.title,
121
+ filter: request.type,
122
+ query: request.query ?? null,
123
+ limit: request.limit,
124
+ total: !usesLocalQuery
125
+ && typeof reportedTotal === 'number'
126
+ && Number.isSafeInteger(reportedTotal)
127
+ && reportedTotal >= 0
128
+ ? reportedTotal
129
+ : null,
130
+ members: resultMembers.map(mapMemberSummary),
131
+ };
132
+ }
133
+ catch (error) {
134
+ if (error instanceof TelegramGroupNotFoundError)
135
+ throw error;
136
+ if (isPeerNotFoundError(error))
137
+ throw new TelegramGroupNotFoundError(request.chat);
138
+ throw error;
139
+ }
140
+ }
141
+ async getMember(chat, user) {
142
+ await this.ensureReady();
143
+ const chatId = normalizePeerId(chat);
144
+ const userId = normalizePeerId(user);
145
+ let group;
146
+ try {
147
+ const peer = await this.client.getChat(chatId);
148
+ group = requireGroup(peer, chat);
149
+ }
150
+ catch (error) {
151
+ if (error instanceof TelegramGroupNotFoundError)
152
+ throw error;
153
+ if (isPeerNotFoundError(error))
154
+ throw new TelegramGroupNotFoundError(chat);
155
+ throw error;
156
+ }
157
+ try {
158
+ const member = await this.client.getChatMember({ chatId, userId });
159
+ if (member == null)
160
+ throw new TelegramGroupMemberNotFoundError(chat, user);
161
+ return {
162
+ chat_id: group.id,
163
+ member: mapMemberDetails(member),
164
+ };
165
+ }
166
+ catch (error) {
167
+ if (error instanceof TelegramGroupMemberNotFoundError)
168
+ throw error;
169
+ if (isPeerNotFoundError(error) || isMemberNotFoundError(error)) {
170
+ throw new TelegramGroupMemberNotFoundError(chat, user);
171
+ }
172
+ throw error;
173
+ }
174
+ }
175
+ async listAuditEvents(request) {
176
+ await this.ensureReady();
177
+ const chatId = normalizePeerId(request.chat);
178
+ let group;
179
+ try {
180
+ const peer = await this.client.getChat(chatId);
181
+ group = requireGroup(peer, request.chat);
182
+ }
183
+ catch (error) {
184
+ if (error instanceof TelegramGroupNotFoundError)
185
+ throw error;
186
+ if (isPeerNotFoundError(error))
187
+ throw new TelegramGroupNotFoundError(request.chat);
188
+ throw error;
189
+ }
190
+ const eventLogOptions = {
191
+ query: request.query,
192
+ users: request.users?.map(normalizePeerId),
193
+ };
194
+ if (request.types == null) {
195
+ try {
196
+ const events = await this.client.getChatEventLog(chatId, {
197
+ ...eventLogOptions,
198
+ limit: request.limit,
199
+ });
200
+ return {
201
+ chat_id: group.id,
202
+ chat_title: group.title,
203
+ events: events.map(mapAuditEvent).slice(0, request.limit),
204
+ };
205
+ }
206
+ catch (error) {
207
+ throwAuditError(error, request.chat);
208
+ }
209
+ }
210
+ if (!request.types.includes('other')) {
211
+ const filters = [...new Set(request.types.flatMap((type) => RAW_FILTERS_BY_TYPE[type]))];
212
+ if (filters.length > 0)
213
+ eventLogOptions.filters = filters;
214
+ }
215
+ const requestedTypes = new Set(request.types);
216
+ const filteredEvents = [];
217
+ try {
218
+ for await (const event of this.client.iterChatEventLog(chatId, eventLogOptions)) {
219
+ const mappedEvent = mapAuditEvent(event);
220
+ if (!requestedTypes.has(mappedEvent.type))
221
+ continue;
222
+ filteredEvents.push(mappedEvent);
223
+ if (filteredEvents.length >= request.limit)
224
+ break;
225
+ }
226
+ }
227
+ catch (error) {
228
+ throwAuditError(error, request.chat);
229
+ }
230
+ return {
231
+ chat_id: group.id,
232
+ chat_title: group.title,
233
+ events: filteredEvents,
234
+ };
235
+ }
236
+ }
237
+ function usesLocalMemberQuery(type) {
238
+ return type === 'recent' || type === 'admins' || type === 'bots';
239
+ }
240
+ function memberMatchesQuery(member, query) {
241
+ const normalizedQuery = query.trim().toLowerCase();
242
+ const username = member.user.username?.toLowerCase() ?? null;
243
+ if (normalizedQuery.startsWith('@')) {
244
+ return username != null && username.includes(normalizedQuery.slice(1));
245
+ }
246
+ return member.user.displayName.toLowerCase().includes(normalizedQuery)
247
+ || (username?.includes(normalizedQuery) ?? false);
248
+ }
249
+ function mapAdminRights(rights) {
250
+ if (rights == null)
251
+ return null;
252
+ return {
253
+ change_info: rights.changeInfo === true,
254
+ delete_messages: rights.deleteMessages === true,
255
+ ban_users: rights.banUsers === true,
256
+ invite_users: rights.inviteUsers === true,
257
+ pin_messages: rights.pinMessages === true,
258
+ add_admins: rights.addAdmins === true,
259
+ manage_call: rights.manageCall === true,
260
+ anonymous: rights.anonymous === true,
261
+ manage_topics: rights.manageTopics === true,
262
+ };
263
+ }
264
+ function mapRestrictions(permissions) {
265
+ if (permissions == null)
266
+ return null;
267
+ return {
268
+ view_messages: !permissions.canViewMessages,
269
+ send_messages: !permissions.canSendMessages,
270
+ send_media: !permissions.canSendMedia,
271
+ send_stickers: !permissions.canSendStickers,
272
+ send_gifs: !permissions.canSendGifs,
273
+ send_games: !permissions.canSendGames,
274
+ send_inline: !permissions.canUseInline,
275
+ embed_links: !permissions.canAddWebPreviews,
276
+ send_polls: !permissions.canSendPolls,
277
+ change_info: !permissions.canChangeInfo,
278
+ invite_users: !permissions.canInviteUsers,
279
+ pin_messages: !permissions.canPinMessages,
280
+ manage_topics: !permissions.canManageTopics,
281
+ };
282
+ }
283
+ function mapMemberSummary(member) {
284
+ return {
285
+ id: member.user.id,
286
+ display_name: member.user.displayName,
287
+ username: member.user.username ?? null,
288
+ status: member.status,
289
+ rank: member.title ?? null,
290
+ joined_at: toIsoDate(member.joinedDate),
291
+ restricted_until: toIsoDate(member.restrictions?.untilDate ?? null),
292
+ };
293
+ }
294
+ function mapMemberDetails(member) {
295
+ return {
296
+ ...mapMemberSummary(member),
297
+ admin_rights: mapAdminRights(member.permissions),
298
+ restrictions: mapRestrictions(member.restrictions),
299
+ };
300
+ }
301
+ function mapAuditEvent(event) {
302
+ const action = readAuditAction(event);
303
+ const type = mapAuditEventType(action);
304
+ return {
305
+ id: String(event.id),
306
+ date: event.date.toISOString(),
307
+ type,
308
+ actor: mapAuditActor(event.actor),
309
+ target: mapAuditTarget(action),
310
+ summary: `Telegram group audit event: ${type.replaceAll('_', ' ')}`,
311
+ };
312
+ }
313
+ function mapAuditActor(actor) {
314
+ if (actor == null)
315
+ return null;
316
+ return {
317
+ id: actor.id,
318
+ display_name: actor.displayName,
319
+ username: actor.username ?? null,
320
+ };
321
+ }
322
+ const INFO_ACTIONS = [
323
+ 'title_changed',
324
+ 'description_changed',
325
+ 'username_changed',
326
+ 'usernames_changed',
327
+ 'photo_changed',
328
+ ];
329
+ const SETTINGS_ACTIONS = [
330
+ 'invites_toggled',
331
+ 'signatures_toggled',
332
+ 'signature_profiles_toggled',
333
+ 'stickerset_changed',
334
+ 'history_toggled',
335
+ 'def_perms_changed',
336
+ 'linked_chat_changed',
337
+ 'location_changed',
338
+ 'slow_mode_changed',
339
+ 'call_started',
340
+ 'call_ended',
341
+ 'call_setting_changed',
342
+ 'ttl_changed',
343
+ 'no_forwards_toggled',
344
+ 'forum_toggled',
345
+ 'available_reactions_changed',
346
+ 'emoji_status_changed',
347
+ 'emoji_stickerset_changed',
348
+ 'peer_color_changed',
349
+ 'profile_peer_color_changed',
350
+ 'wallpaper_changed',
351
+ 'toggle_anti_spam',
352
+ 'toggle_autotranslation',
353
+ 'sub_extend',
354
+ 'participant_rank_edited',
355
+ 'user_admin_perms_changed',
356
+ ];
357
+ const RAW_FILTERS_BY_TYPE = {
358
+ info_changed: INFO_ACTIONS,
359
+ settings_changed: SETTINGS_ACTIONS,
360
+ member_joined: ['user_joined', 'user_joined_invite', 'user_joined_approved'],
361
+ member_left: ['user_left'],
362
+ member_invited: ['user_invited'],
363
+ member_banned: ['user_perms_changed'],
364
+ member_unbanned: ['user_perms_changed'],
365
+ member_restricted: ['user_perms_changed'],
366
+ member_unrestricted: ['user_perms_changed'],
367
+ admin_promoted: ['user_admin_perms_changed'],
368
+ admin_demoted: ['user_admin_perms_changed'],
369
+ message_deleted: ['msg_deleted'],
370
+ message_edited: ['msg_edited'],
371
+ message_pinned: ['msg_pinned'],
372
+ invite_changed: ['invite_deleted', 'invite_edited', 'invite_revoked'],
373
+ topic_changed: ['topic_created', 'topic_edited', 'topic_deleted'],
374
+ other: [],
375
+ };
376
+ function readAuditAction(event) {
377
+ try {
378
+ const action = event.action;
379
+ return action != null && typeof action === 'object' ? action : null;
380
+ }
381
+ catch {
382
+ return null;
383
+ }
384
+ }
385
+ function mapAuditEventType(action) {
386
+ if (action == null)
387
+ return 'other';
388
+ const actionType = typeof action?.type === 'string' ? action.type : null;
389
+ switch (actionType) {
390
+ case 'user_joined':
391
+ case 'user_joined_invite':
392
+ case 'user_joined_approved':
393
+ return 'member_joined';
394
+ case 'user_left':
395
+ return 'member_left';
396
+ case 'user_invited':
397
+ return 'member_invited';
398
+ case 'user_perms_changed':
399
+ return mapMemberPermissionChange(action);
400
+ case 'user_admin_perms_changed':
401
+ return mapAdminPermissionChange(action);
402
+ case 'msg_deleted':
403
+ return 'message_deleted';
404
+ case 'msg_edited':
405
+ return 'message_edited';
406
+ case 'msg_pinned':
407
+ return 'message_pinned';
408
+ case 'invite_deleted':
409
+ case 'invite_edited':
410
+ case 'invite_revoked':
411
+ return 'invite_changed';
412
+ case 'topic_created':
413
+ case 'topic_edited':
414
+ case 'topic_deleted':
415
+ return 'topic_changed';
416
+ default:
417
+ if (isActionType(actionType, INFO_ACTIONS))
418
+ return 'info_changed';
419
+ if (isActionType(actionType, SETTINGS_ACTIONS))
420
+ return 'settings_changed';
421
+ return 'other';
422
+ }
423
+ }
424
+ function mapMemberPermissionChange(action) {
425
+ const oldStatus = action.old?.status;
426
+ const newStatus = action.new?.status;
427
+ if (newStatus === 'banned')
428
+ return 'member_banned';
429
+ if (newStatus === 'restricted')
430
+ return 'member_restricted';
431
+ if (!isMemberStatus(oldStatus) || !isMemberStatus(newStatus))
432
+ return 'other';
433
+ if (oldStatus === 'banned')
434
+ return 'member_unbanned';
435
+ if (oldStatus === 'restricted')
436
+ return 'member_unrestricted';
437
+ return 'other';
438
+ }
439
+ function mapAdminPermissionChange(action) {
440
+ if (!isMemberStatus(action.old?.status) || !isMemberStatus(action.new?.status))
441
+ return 'other';
442
+ const wasAdmin = action.old?.status === 'admin' || action.old?.status === 'creator';
443
+ const isAdmin = action.new?.status === 'admin' || action.new?.status === 'creator';
444
+ if (!wasAdmin && isAdmin)
445
+ return 'admin_promoted';
446
+ if (wasAdmin && !isAdmin)
447
+ return 'admin_demoted';
448
+ return wasAdmin && isAdmin ? 'settings_changed' : 'other';
449
+ }
450
+ function mapAuditTarget(action) {
451
+ const actionType = typeof action?.type === 'string' ? action.type : null;
452
+ switch (actionType) {
453
+ case 'user_invited':
454
+ return mapAuditActor(action?.member?.user ?? null);
455
+ case 'user_perms_changed':
456
+ case 'user_admin_perms_changed':
457
+ return mapAuditActor(action?.new?.user ?? action?.old?.user ?? null);
458
+ case 'participant_rank_edited':
459
+ return mapAuditActor(action?.user ?? null);
460
+ default:
461
+ return null;
462
+ }
463
+ }
464
+ function isActionType(value, types) {
465
+ return value != null && types.includes(value);
466
+ }
467
+ function isMemberStatus(status) {
468
+ return status === 'creator'
469
+ || status === 'admin'
470
+ || status === 'member'
471
+ || status === 'restricted'
472
+ || status === 'banned'
473
+ || status === 'left';
474
+ }
475
+ function toIsoDate(date) {
476
+ return date?.toISOString() ?? null;
477
+ }
478
+ function throwAuditError(error, chat) {
479
+ if (isChatAdminRequiredError(error))
480
+ throw new TelegramGroupAdminRequiredError(chat);
481
+ throw error;
482
+ }
483
+ function isChatAdminRequiredError(error) {
484
+ if (tl.RpcError.is(error, 'CHAT_ADMIN_REQUIRED'))
485
+ return true;
486
+ if (!(error instanceof Error))
487
+ return false;
488
+ const candidate = error;
489
+ return candidate.code === 400
490
+ && candidate.text === 'CHAT_ADMIN_REQUIRED'
491
+ && candidate.message === 'CHAT_ADMIN_REQUIRED';
492
+ }
493
+ //# sourceMappingURL=mtcute-group-management.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mtcute-group-management.js","sourceRoot":"","sources":["../../src/telegram/mtcute-group-management.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,118 @@
1
+ import { TelegramGroupMemberNotFoundError, TelegramGroupMembersNotAddedError, TelegramGroupNotFoundError, TelegramGroupPasswordRequiredError, } from './group-types.js';
2
+ import { isPeerNotFoundError, normalizePeerId, requireGroup, throwWriteError } from './mtcute-group-helpers.js';
3
+ export class MtcuteGroupMembers {
4
+ client;
5
+ ensureReady;
6
+ constructor(client, ensureReady) {
7
+ this.client = client;
8
+ this.ensureReady = ensureReady;
9
+ }
10
+ async addMembers(request) {
11
+ const { chatId, group } = await this.prepare(request.chat);
12
+ try {
13
+ const users = request.users.map(normalizePeerId);
14
+ const missing = await this.client.addChatMembers(chatId, users, {});
15
+ if (missing.length > 0)
16
+ throw new TelegramGroupMembersNotAddedError(request.chat, missing.map((invitee) => ({
17
+ user_id: invitee.userId,
18
+ reason: invitee.premiumWouldAllowInvite ? 'premium_would_allow_invite'
19
+ : invitee.premiumRequiredForPm ? 'premium_required_for_pm' : 'privacy',
20
+ })));
21
+ return { operation: 'addMembers', chat_id: group.id };
22
+ }
23
+ catch (error) {
24
+ if (error instanceof TelegramGroupMembersNotAddedError)
25
+ throw error;
26
+ if (isPeerNotFoundError(error))
27
+ throw new TelegramGroupMembersNotAddedError(request.chat, request.users.map((user) => ({ user_id: normalizePeerId(user), reason: 'peer_invalid' })));
28
+ throwWriteError(error, request.chat);
29
+ }
30
+ }
31
+ async kickMember(request) {
32
+ return this.withTarget('kickMember', request, async (chatId, userId) => this.client.kickChatMember({ chatId, userId }));
33
+ }
34
+ async banMember(request) {
35
+ const until = toUntil(request.seconds);
36
+ return this.withTarget('banMember', request, async (chatId, userId) => this.client.banChatMember({ chatId, participantId: userId, untilDate: until ?? undefined }), until);
37
+ }
38
+ async unbanMember(request) {
39
+ return this.withTarget('unbanMember', request, async (chatId, userId) => this.client.unbanChatMember({ chatId, participantId: userId }));
40
+ }
41
+ async muteMember(request) {
42
+ const until = toUntil(request.seconds);
43
+ const restrictions = request.permissions == null ? { sendMessages: true, sendMedia: true } : mapRestrictions(request.permissions);
44
+ return this.withTarget('muteMember', request, async (chatId, userId) => this.client.restrictChatMember({ chatId, userId, restrictions, until: until ?? 0 }), until);
45
+ }
46
+ async unmuteMember(request) {
47
+ return this.withTarget('unmuteMember', request, async (chatId, userId) => this.client.unrestrictChatMember({ chatId, participantId: userId }));
48
+ }
49
+ async purgeMember(request) {
50
+ return this.withTarget('purgeMember', request, async (chatId, userId) => this.client.deleteUserHistory({ chatId, participantId: userId }));
51
+ }
52
+ async promoteAdmin(request) {
53
+ const rights = request.rights;
54
+ return this.withTarget('promoteAdmin', request, async (chatId, userId) => this.client.editAdminRights({ chatId, userId, rights: {
55
+ changeInfo: rights.change_info, deleteMessages: rights.delete_messages, banUsers: rights.ban_users,
56
+ inviteUsers: rights.invite_users, pinMessages: rights.pin_messages, addAdmins: rights.add_admins,
57
+ manageCall: rights.manage_call, anonymous: rights.anonymous, manageTopics: rights.manage_topics,
58
+ }, rank: request.rank }));
59
+ }
60
+ async demoteAdmin(request) {
61
+ return this.withTarget('demoteAdmin', request, async (chatId, userId) => this.client.editAdminRights({ chatId, userId, rights: {
62
+ changeInfo: false, deleteMessages: false, banUsers: false, inviteUsers: false, pinMessages: false,
63
+ addAdmins: false, manageCall: false, anonymous: false, manageTopics: false,
64
+ } }));
65
+ }
66
+ async setAdminRank(request) {
67
+ return this.withTarget('setAdminRank', request, async (chatId, userId) => this.client.editChatMemberRank({ chatId, participantId: userId, rank: request.rank }));
68
+ }
69
+ async transferOwnership(request) {
70
+ await this.ensureReady();
71
+ throw new TelegramGroupPasswordRequiredError();
72
+ }
73
+ async prepare(chat) {
74
+ await this.ensureReady();
75
+ const chatId = normalizePeerId(chat);
76
+ try {
77
+ return { chatId, group: requireGroup(await this.client.getChat(chatId), chat) };
78
+ }
79
+ catch (error) {
80
+ if (error instanceof TelegramGroupNotFoundError)
81
+ throw error;
82
+ if (isPeerNotFoundError(error))
83
+ throw new TelegramGroupNotFoundError(chat);
84
+ throw error;
85
+ }
86
+ }
87
+ async withTarget(operation, request, invoke, until) {
88
+ const { chatId, group } = await this.prepare(request.chat);
89
+ const userId = normalizePeerId(request.user);
90
+ try {
91
+ const targetId = await this.resolveTarget(chatId, userId, request);
92
+ await invoke(chatId, targetId);
93
+ return { operation, chat_id: group.id, target_id: targetId, ...(until === undefined ? {} : { effective_until: until?.toISOString() ?? null }) };
94
+ }
95
+ catch (error) {
96
+ throwWriteError(error, request.chat, request.user);
97
+ }
98
+ }
99
+ async resolveTarget(chatId, userId, request) {
100
+ if (typeof userId === 'number' || /^-?\d+$/.test(userId))
101
+ return userId;
102
+ const member = await this.client.getChatMember({ chatId, userId });
103
+ if (member == null)
104
+ throw new TelegramGroupMemberNotFoundError(request.chat, request.user);
105
+ return member.user.id;
106
+ }
107
+ }
108
+ function toUntil(seconds) { return seconds == null ? null : new Date(Date.now() + seconds * 1000); }
109
+ function mapRestrictions(value) {
110
+ return {
111
+ viewMessages: value.view_messages, sendMessages: value.send_messages, sendMedia: value.send_media,
112
+ sendStickers: value.send_stickers, sendGifs: value.send_gifs, sendGames: value.send_games,
113
+ sendInline: value.send_inline, embedLinks: value.embed_links, sendPolls: value.send_polls,
114
+ changeInfo: value.change_info, inviteUsers: value.invite_users, pinMessages: value.pin_messages,
115
+ manageTopics: value.manage_topics,
116
+ };
117
+ }
118
+ //# sourceMappingURL=mtcute-group-members.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mtcute-group-members.js","sourceRoot":"","sources":["../../src/telegram/mtcute-group-members.ts"],"names":[],"mappings":"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"}