@will-17173/telegram-cli 0.1.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 (82) hide show
  1. package/LICENSE +675 -0
  2. package/README.md +264 -0
  3. package/README.zh-CN.md +264 -0
  4. package/dist/account/account-context.js +22 -0
  5. package/dist/account/account-context.js.map +1 -0
  6. package/dist/account/account-presets.js +22 -0
  7. package/dist/account/account-presets.js.map +1 -0
  8. package/dist/account/account-store.js +225 -0
  9. package/dist/account/account-store.js.map +1 -0
  10. package/dist/cli/app.js +21 -0
  11. package/dist/cli/app.js.map +1 -0
  12. package/dist/cli/output.js +39 -0
  13. package/dist/cli/output.js.map +1 -0
  14. package/dist/commands/account-options.js +55 -0
  15. package/dist/commands/account-options.js.map +1 -0
  16. package/dist/commands/account.js +449 -0
  17. package/dist/commands/account.js.map +1 -0
  18. package/dist/commands/config.js +63 -0
  19. package/dist/commands/config.js.map +1 -0
  20. package/dist/commands/data.js +52 -0
  21. package/dist/commands/data.js.map +1 -0
  22. package/dist/commands/query.js +116 -0
  23. package/dist/commands/query.js.map +1 -0
  24. package/dist/commands/telegram.js +423 -0
  25. package/dist/commands/telegram.js.map +1 -0
  26. package/dist/commands/types.js +12 -0
  27. package/dist/commands/types.js.map +1 -0
  28. package/dist/config/credential-store.js +82 -0
  29. package/dist/config/credential-store.js.map +1 -0
  30. package/dist/config/env.js +78 -0
  31. package/dist/config/env.js.map +1 -0
  32. package/dist/index.js +4 -0
  33. package/dist/index.js.map +1 -0
  34. package/dist/presenters/human.js +218 -0
  35. package/dist/presenters/human.js.map +1 -0
  36. package/dist/presenters/ink/DetailView.js +14 -0
  37. package/dist/presenters/ink/DetailView.js.map +1 -0
  38. package/dist/presenters/ink/TableView.js +9 -0
  39. package/dist/presenters/ink/TableView.js.map +1 -0
  40. package/dist/presenters/ink/TimelineView.js +34 -0
  41. package/dist/presenters/ink/TimelineView.js.map +1 -0
  42. package/dist/presenters/ink/display-width.js +149 -0
  43. package/dist/presenters/ink/display-width.js.map +1 -0
  44. package/dist/presenters/ink/image-preview.js +47 -0
  45. package/dist/presenters/ink/image-preview.js.map +1 -0
  46. package/dist/presenters/ink/listen-scroll.js +37 -0
  47. package/dist/presenters/ink/listen-scroll.js.map +1 -0
  48. package/dist/presenters/ink/listen-scrollbar.js +49 -0
  49. package/dist/presenters/ink/listen-scrollbar.js.map +1 -0
  50. package/dist/presenters/ink/listen.js +542 -0
  51. package/dist/presenters/ink/listen.js.map +1 -0
  52. package/dist/presenters/ink/mouse-scroll.js +55 -0
  53. package/dist/presenters/ink/mouse-scroll.js.map +1 -0
  54. package/dist/presenters/ink/render.js +45 -0
  55. package/dist/presenters/ink/render.js.map +1 -0
  56. package/dist/presenters/listen-message.js +267 -0
  57. package/dist/presenters/listen-message.js.map +1 -0
  58. package/dist/presenters/structured.js +30 -0
  59. package/dist/presenters/structured.js.map +1 -0
  60. package/dist/services/attachment-download.js +21 -0
  61. package/dist/services/attachment-download.js.map +1 -0
  62. package/dist/services/data-service.js +76 -0
  63. package/dist/services/data-service.js.map +1 -0
  64. package/dist/services/listen-album-aggregator.js +72 -0
  65. package/dist/services/listen-album-aggregator.js.map +1 -0
  66. package/dist/services/message-service.js +102 -0
  67. package/dist/services/message-service.js.map +1 -0
  68. package/dist/services/query-service.js +116 -0
  69. package/dist/services/query-service.js.map +1 -0
  70. package/dist/services/sync-service.js +134 -0
  71. package/dist/services/sync-service.js.map +1 -0
  72. package/dist/storage/chat-resolver.js +9 -0
  73. package/dist/storage/chat-resolver.js.map +1 -0
  74. package/dist/storage/message-db.js +246 -0
  75. package/dist/storage/message-db.js.map +1 -0
  76. package/dist/telegram/client-factory.js +27 -0
  77. package/dist/telegram/client-factory.js.map +1 -0
  78. package/dist/telegram/mtcute-client.js +324 -0
  79. package/dist/telegram/mtcute-client.js.map +1 -0
  80. package/dist/telegram/types.js +2 -0
  81. package/dist/telegram/types.js.map +1 -0
  82. package/package.json +50 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"message-db.js","sourceRoot":"","sources":["../../src/storage/message-db.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ import { TelegramClient } from '@mtcute/node';
2
+ import { getTelegramCredentials } from '../config/env.js';
3
+ import { getSessionPath } from '../config/env.js';
4
+ import { MtcuteTelegramClient } from './mtcute-client.js';
5
+ const DEFAULT_CREDENTIALS_WARNING = 'warning: using default Telegram API credentials. Run tg config set --api-id <id> --api-hash <hash> to configure your own.\n';
6
+ let hasWarnedAboutDefaultCredentials = false;
7
+ export function createTelegramClient(sessionPath) {
8
+ const credentials = getTelegramCredentials();
9
+ const storage = sessionPath ?? getSessionPath();
10
+ if (credentials.source === 'default' && !hasWarnedAboutDefaultCredentials) {
11
+ hasWarnedAboutDefaultCredentials = true;
12
+ try {
13
+ process.stderr.write(DEFAULT_CREDENTIALS_WARNING);
14
+ }
15
+ catch (error) {
16
+ hasWarnedAboutDefaultCredentials = false;
17
+ throw error;
18
+ }
19
+ }
20
+ const client = new TelegramClient({
21
+ apiId: credentials.apiId,
22
+ apiHash: credentials.apiHash,
23
+ storage,
24
+ });
25
+ return new MtcuteTelegramClient(client);
26
+ }
27
+ //# sourceMappingURL=client-factory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client-factory.js","sourceRoot":"","sources":["../../src/telegram/client-factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAE7C,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAA;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAA;AAGzD,MAAM,2BAA2B,GAAG,6HAA6H,CAAA;AAEjK,IAAI,gCAAgC,GAAG,KAAK,CAAA;AAE5C,MAAM,UAAU,oBAAoB,CAAC,WAAoB;IACvD,MAAM,WAAW,GAAG,sBAAsB,EAAE,CAAA;IAC5C,MAAM,OAAO,GAAG,WAAW,IAAI,cAAc,EAAE,CAAA;IAE/C,IAAI,WAAW,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,gCAAgC,EAAE,CAAC;QAC1E,gCAAgC,GAAG,IAAI,CAAA;QACvC,IAAI,CAAC;YACH,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAA;QACnD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,gCAAgC,GAAG,KAAK,CAAA;YACxC,MAAM,KAAK,CAAA;QACb,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,cAAc,CAAC;QAChC,KAAK,EAAE,WAAW,CAAC,KAAK;QACxB,OAAO,EAAE,WAAW,CAAC,OAAO;QAC5B,OAAO;KACR,CAAC,CAAA;IAEF,OAAO,IAAI,oBAAoB,CAAC,MAAM,CAAC,CAAA;AACzC,CAAC"}
@@ -0,0 +1,324 @@
1
+ import { Buffer } from 'node:buffer';
2
+ import { Thumbnail } from '@mtcute/node';
3
+ import { FileLocation, MtPeerNotFoundError } from '@mtcute/node';
4
+ export class MtcuteTelegramClient {
5
+ client;
6
+ isReady = false;
7
+ constructor(client) {
8
+ this.client = client;
9
+ }
10
+ async close() {
11
+ try {
12
+ await this.client.destroy();
13
+ }
14
+ catch (error) {
15
+ if (isDatabaseClosedError(error))
16
+ return;
17
+ throw error;
18
+ }
19
+ finally {
20
+ this.isReady = false;
21
+ }
22
+ }
23
+ async getCurrentUser() {
24
+ await this.ensureReady();
25
+ const user = await this.client.getMe();
26
+ return {
27
+ id: user.id,
28
+ name: user.displayName,
29
+ username: user.username ?? '',
30
+ first_name: user.firstName,
31
+ last_name: user.lastName ?? '',
32
+ phone: user.phoneNumber ?? '',
33
+ };
34
+ }
35
+ async listChats(type) {
36
+ await this.ensureReady();
37
+ const items = [];
38
+ for await (const dialog of this.client.iterDialogs()) {
39
+ const mappedType = mapPeerType(dialog.peer);
40
+ if (type != null && mappedType !== type)
41
+ continue;
42
+ items.push({
43
+ id: dialog.peer.id,
44
+ name: peerDisplayName(dialog.peer),
45
+ type: mappedType,
46
+ unread: dialog.unreadCount,
47
+ });
48
+ }
49
+ return items;
50
+ }
51
+ async getChatInfo(chat) {
52
+ await this.ensureReady();
53
+ try {
54
+ const parsed = normalizeChatId(chat);
55
+ const peer = await this.client.getChat(parsed);
56
+ const full = await this.fetchFullChat(parsed);
57
+ const info = {
58
+ ID: String(peer.id),
59
+ Type: mapPeerType(peer),
60
+ Name: peerDisplayName(peer),
61
+ };
62
+ const username = getPeerUsername(peer);
63
+ if (username)
64
+ info.Username = username;
65
+ const phone = getUserPhone(peer);
66
+ if (phone)
67
+ info.Phone = phone;
68
+ if (isUserDeleted(peer))
69
+ info.Status = 'deleted';
70
+ if (full) {
71
+ if (full.bio)
72
+ info.Bio = full.bio;
73
+ if (full.inviteLink)
74
+ info.InviteLink = full.inviteLink.link;
75
+ if (full.membersCount > 0)
76
+ info.Members = String(full.membersCount);
77
+ info.Unread = String(full.unreadCount);
78
+ }
79
+ return info;
80
+ }
81
+ catch (error) {
82
+ if (isNotFoundError(error))
83
+ return null;
84
+ throw error;
85
+ }
86
+ }
87
+ async fetchHistory(options) {
88
+ await this.ensureReady();
89
+ const history = await this.client.getHistory(normalizeChatId(options.chat), {
90
+ limit: options.limit,
91
+ minId: options.minId,
92
+ });
93
+ const rows = history.map((message) => toStoredMessage(message));
94
+ options.onProgress?.(rows.length);
95
+ return rows;
96
+ }
97
+ async downloadMessageMedia(options) {
98
+ await this.ensureReady();
99
+ const [message] = await this.client.getMessages(normalizeChatId(options.chat), options.msgId);
100
+ if (message == null)
101
+ throw new Error(`Message ${options.msgId} was not found`);
102
+ const media = message.media;
103
+ if (!(media instanceof FileLocation))
104
+ throw new Error('This attachment cannot be downloaded');
105
+ await this.client.downloadToFile(options.destination, media, {
106
+ progressCallback: options.onProgress,
107
+ });
108
+ }
109
+ async sendMessage(options) {
110
+ await this.ensureReady();
111
+ const sent = await this.client.sendText(normalizeChatId(options.chat), options.message, { replyTo: options.reply, disableWebPreview: !options.linkPreview });
112
+ return { msg_id: sent.id };
113
+ }
114
+ async editMessage(options) {
115
+ await this.ensureReady();
116
+ await this.client.editMessage({
117
+ chatId: normalizeChatId(options.chat),
118
+ message: options.msgId,
119
+ text: options.text,
120
+ disableWebPreview: !options.linkPreview,
121
+ });
122
+ }
123
+ async deleteMessages(options) {
124
+ await this.ensureReady();
125
+ await this.client.deleteMessagesById(normalizeChatId(options.chat), options.msgIds);
126
+ }
127
+ async listen(options) {
128
+ await this.ensureReady();
129
+ if (options.signal.aborted)
130
+ return 'stopped';
131
+ options.onConnected?.();
132
+ return await new Promise((resolve, reject) => {
133
+ let settled = false;
134
+ const done = async (result) => {
135
+ if (settled)
136
+ return;
137
+ settled = true;
138
+ this.client.onNewMessage.remove(handleMessage);
139
+ this.client.onConnectionState.remove(handleConnectionState);
140
+ options.signal.removeEventListener('abort', handleAbort);
141
+ await this.client.stopUpdatesLoop().catch(() => undefined);
142
+ resolve(result);
143
+ };
144
+ const handleMessage = async (message) => {
145
+ if (settled || options.signal.aborted)
146
+ return;
147
+ if (!matchesChatFilter(options.chats, message))
148
+ return;
149
+ options.onMessage(toStoredMessage(message));
150
+ };
151
+ const handleConnectionState = (state) => {
152
+ if (settled || state !== 'offline')
153
+ return;
154
+ void done('disconnected');
155
+ };
156
+ const handleAbort = () => {
157
+ void done('stopped');
158
+ };
159
+ this.client.onNewMessage.add(handleMessage);
160
+ this.client.onConnectionState.add(handleConnectionState);
161
+ options.signal.addEventListener('abort', handleAbort);
162
+ void this.client.startUpdatesLoop()
163
+ .then(() => {
164
+ if (settled)
165
+ return;
166
+ if (options.signal.aborted)
167
+ void done('stopped');
168
+ })
169
+ .catch((error) => {
170
+ if (settled)
171
+ return;
172
+ settled = true;
173
+ this.client.onNewMessage.remove(handleMessage);
174
+ this.client.onConnectionState.remove(handleConnectionState);
175
+ options.signal.removeEventListener('abort', handleAbort);
176
+ reject(error);
177
+ });
178
+ });
179
+ }
180
+ async ensureReady() {
181
+ if (this.isReady)
182
+ return;
183
+ await this.client.connect();
184
+ try {
185
+ await this.client.getMe();
186
+ }
187
+ catch (error) {
188
+ await this.client.disconnect().catch(() => undefined);
189
+ throw error;
190
+ }
191
+ this.isReady = true;
192
+ }
193
+ async fetchFullChat(chat) {
194
+ try {
195
+ return await this.client.getFullChat(normalizeChatId(chat));
196
+ }
197
+ catch {
198
+ return null;
199
+ }
200
+ }
201
+ }
202
+ function normalizeChatId(chat) {
203
+ if (typeof chat === 'number')
204
+ return chat;
205
+ const trimmed = chat.trim();
206
+ if (trimmed === '')
207
+ return chat;
208
+ const numeric = Number.parseInt(trimmed, 10);
209
+ return Number.isNaN(numeric) ? chat : String(numeric) === trimmed ? numeric : chat;
210
+ }
211
+ function getUserPhone(peer) {
212
+ if (peer == null || typeof peer !== 'object')
213
+ return null;
214
+ const raw = peer;
215
+ if (typeof raw.phoneNumber === 'string' && raw.phoneNumber.trim())
216
+ return raw.phoneNumber;
217
+ return null;
218
+ }
219
+ function isUserDeleted(peer) {
220
+ if (peer == null || typeof peer !== 'object')
221
+ return false;
222
+ return peer.isDeleted === true;
223
+ }
224
+ function peerDisplayName(peer) {
225
+ if (peer.displayName && peer.displayName.trim())
226
+ return peer.displayName;
227
+ return peer.title ?? 'Unknown';
228
+ }
229
+ function getPeerUsername(peer) {
230
+ if (typeof peer !== 'object' || peer == null)
231
+ return null;
232
+ const username = peer;
233
+ if (typeof username.username === 'string' && username.username.trim())
234
+ return username.username;
235
+ return null;
236
+ }
237
+ function mapPeerType(peer) {
238
+ if (peer.type === 'user')
239
+ return 'user';
240
+ const type = String(peer.chatType ?? '');
241
+ if (type === 'group')
242
+ return 'group';
243
+ if (type === 'supergroup')
244
+ return 'supergroup';
245
+ if (type === 'channel')
246
+ return 'channel';
247
+ if (type === 'gigagroup')
248
+ return 'channel';
249
+ if (type === 'monoforum')
250
+ return 'channel';
251
+ return 'unknown';
252
+ }
253
+ function isNotFoundError(error) {
254
+ if (error instanceof MtPeerNotFoundError)
255
+ return true;
256
+ if (error instanceof Error && /peer|chat|dialog|not found/i.test(error.message))
257
+ return true;
258
+ return false;
259
+ }
260
+ function toStoredMessage(message) {
261
+ return {
262
+ platform: 'telegram',
263
+ chat_id: message.chat.id,
264
+ chat_name: peerDisplayName(message.chat),
265
+ msg_id: message.id,
266
+ sender_id: message.sender.id,
267
+ sender_name: message.sender.displayName,
268
+ content: message.text,
269
+ timestamp: message.date.toISOString(),
270
+ raw_json: safeJsonValue(message.raw),
271
+ preview_jpeg_base64: embeddedPhotoPreviewBase64(message.media),
272
+ };
273
+ }
274
+ export function embeddedPhotoPreviewBase64(media) {
275
+ if (media == null || typeof media !== 'object')
276
+ return undefined;
277
+ try {
278
+ const photo = media;
279
+ if (photo.type !== 'photo')
280
+ return undefined;
281
+ const thumbnails = photo.thumbnails;
282
+ if (!Array.isArray(thumbnails))
283
+ return undefined;
284
+ const thumbnail = thumbnails.find((item) => (item != null
285
+ && typeof item === 'object'
286
+ && item.type === Thumbnail.THUMB_STRIP));
287
+ if (!(thumbnail?.location instanceof Uint8Array))
288
+ return undefined;
289
+ return Buffer.from(thumbnail.location).toString('base64');
290
+ }
291
+ catch {
292
+ return undefined;
293
+ }
294
+ }
295
+ function safeJsonValue(value) {
296
+ try {
297
+ return JSON.parse(JSON.stringify(value));
298
+ }
299
+ catch {
300
+ return { message: 'unserializable_raw_message' };
301
+ }
302
+ }
303
+ function isDatabaseClosedError(error) {
304
+ return error instanceof Error && /database connection is not open/i.test(error.message);
305
+ }
306
+ function matchesChatFilter(chats, message) {
307
+ if (!chats || chats.length === 0)
308
+ return true;
309
+ const chatId = message.chat.id;
310
+ const name = peerDisplayName(message.chat).toLowerCase();
311
+ const username = getPeerUsername(message.chat) ?? '';
312
+ const normalizedUsername = username.toLowerCase();
313
+ return chats.some((chat) => {
314
+ if (typeof chat === 'number' && chat === chatId)
315
+ return true;
316
+ const candidate = typeof chat === 'string' ? chat.trim() : String(chat);
317
+ const normalized = candidate.toLowerCase();
318
+ const asNumber = Number.parseInt(candidate, 10);
319
+ if (!Number.isNaN(asNumber) && String(asNumber) === candidate && chatId === asNumber)
320
+ return true;
321
+ return name.includes(normalized) || (normalizedUsername !== '' && normalizedUsername.includes(normalized));
322
+ });
323
+ }
324
+ //# sourceMappingURL=mtcute-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mtcute-client.js","sourceRoot":"","sources":["../../src/telegram/mtcute-client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/telegram/types.ts"],"names":[],"mappings":""}
package/package.json ADDED
@@ -0,0 +1,50 @@
1
+ {
2
+ "name": "@will-17173/telegram-cli",
3
+ "version": "0.1.0",
4
+ "type": "module",
5
+ "license": "GPL-3.0-only",
6
+ "bin": {
7
+ "tg": "./dist/index.js"
8
+ },
9
+ "files": [
10
+ "dist",
11
+ "README.md",
12
+ "README.zh-CN.md",
13
+ "LICENSE"
14
+ ],
15
+ "engines": {
16
+ "node": ">=22"
17
+ },
18
+ "publishConfig": {
19
+ "access": "public"
20
+ },
21
+ "scripts": {
22
+ "clean": "node -e \"require('node:fs').rmSync('dist',{recursive:true,force:true})\"",
23
+ "build": "pnpm clean && tsc -p tsconfig.build.json",
24
+ "dev": "tsx src/dev.ts",
25
+ "test": "vitest run",
26
+ "test:watch": "vitest",
27
+ "typecheck": "tsc --noEmit",
28
+ "prepack": "pnpm build",
29
+ "prepublishOnly": "pnpm test && pnpm typecheck && pnpm build"
30
+ },
31
+ "dependencies": {
32
+ "@mtcute/node": "^0.30.3",
33
+ "better-sqlite3": "^12.10.0",
34
+ "commander": "^14.0.2",
35
+ "ink": "^6.5.1",
36
+ "jpeg-js": "^0.4.4",
37
+ "react": "^19.2.1",
38
+ "string-width": "^8.2.2",
39
+ "yaml": "^2.8.1"
40
+ },
41
+ "devDependencies": {
42
+ "@types/better-sqlite3": "^7.6.13",
43
+ "@types/node": "^24.10.1",
44
+ "@types/react": "^19.2.7",
45
+ "dotenv": "^17.2.3",
46
+ "tsx": "^4.20.6",
47
+ "typescript": "^5.9.3",
48
+ "vitest": "^4.0.18"
49
+ }
50
+ }