@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.
- package/README.md +169 -10
- package/README.zh-CN.md +169 -11
- package/dist/cli/app.js +3 -1
- package/dist/cli/app.js.map +1 -1
- package/dist/commands/account.js +51 -5
- package/dist/commands/account.js.map +1 -1
- package/dist/commands/config.js +96 -13
- package/dist/commands/config.js.map +1 -1
- package/dist/commands/group-write.js +88 -0
- package/dist/commands/group-write.js.map +1 -0
- package/dist/commands/group.js +121 -0
- package/dist/commands/group.js.map +1 -0
- package/dist/commands/telegram-runner.js +84 -0
- package/dist/commands/telegram-runner.js.map +1 -0
- package/dist/commands/telegram.js +154 -172
- package/dist/commands/telegram.js.map +1 -1
- package/dist/config/credential-store.js +76 -22
- package/dist/config/credential-store.js.map +1 -1
- package/dist/config/env.js +12 -1
- package/dist/config/env.js.map +1 -1
- package/dist/group-commands/catalog.js +69 -0
- package/dist/group-commands/catalog.js.map +1 -0
- package/dist/group-commands/executor.js +93 -0
- package/dist/group-commands/executor.js.map +1 -0
- package/dist/group-commands/parser.js +268 -0
- package/dist/group-commands/parser.js.map +1 -0
- package/dist/group-commands/tokenize.js +51 -0
- package/dist/group-commands/tokenize.js.map +1 -0
- package/dist/group-commands/types.js +2 -0
- package/dist/group-commands/types.js.map +1 -0
- package/dist/listen-commands/catalog.js +61 -0
- package/dist/listen-commands/catalog.js.map +1 -0
- package/dist/listen-commands/dispatch.js +46 -0
- package/dist/listen-commands/dispatch.js.map +1 -0
- package/dist/listen-commands/match.js +113 -0
- package/dist/listen-commands/match.js.map +1 -0
- package/dist/presenters/group.js +130 -0
- package/dist/presenters/group.js.map +1 -0
- package/dist/presenters/human.js +29 -9
- package/dist/presenters/human.js.map +1 -1
- package/dist/presenters/ink/display-width.js +45 -7
- package/dist/presenters/ink/display-width.js.map +1 -1
- package/dist/presenters/ink/group-command-confirm.js +13 -0
- package/dist/presenters/ink/group-command-confirm.js.map +1 -0
- package/dist/presenters/ink/group-command-result.js +21 -0
- package/dist/presenters/ink/group-command-result.js.map +1 -0
- package/dist/presenters/ink/listen-command-menu.js +38 -0
- package/dist/presenters/ink/listen-command-menu.js.map +1 -0
- package/dist/presenters/ink/listen-scroll.js +5 -1
- package/dist/presenters/ink/listen-scroll.js.map +1 -1
- package/dist/presenters/ink/listen.js +806 -171
- package/dist/presenters/ink/listen.js.map +1 -1
- package/dist/presenters/ink/use-group-command.js +125 -0
- package/dist/presenters/ink/use-group-command.js.map +1 -0
- package/dist/presenters/listen-message.js +25 -241
- package/dist/presenters/listen-message.js.map +1 -1
- package/dist/presenters/logical-message.js +78 -0
- package/dist/presenters/logical-message.js.map +1 -0
- package/dist/services/attachment-download.js +5 -2
- package/dist/services/attachment-download.js.map +1 -1
- package/dist/services/auto-download-coordinator.js +214 -0
- package/dist/services/auto-download-coordinator.js.map +1 -0
- package/dist/services/group-service.js +164 -0
- package/dist/services/group-service.js.map +1 -0
- package/dist/services/group-write-service.js +165 -0
- package/dist/services/group-write-service.js.map +1 -0
- package/dist/services/listen-album-aggregator.js +9 -29
- package/dist/services/listen-album-aggregator.js.map +1 -1
- package/dist/services/listen-attachment.js +265 -0
- package/dist/services/listen-attachment.js.map +1 -0
- package/dist/services/listen-composer-command.js +102 -0
- package/dist/services/listen-composer-command.js.map +1 -0
- package/dist/services/listen-reply-resolver.js +126 -0
- package/dist/services/listen-reply-resolver.js.map +1 -0
- package/dist/services/message-service.js +54 -4
- package/dist/services/message-service.js.map +1 -1
- package/dist/services/query-service.js +95 -34
- package/dist/services/query-service.js.map +1 -1
- package/dist/services/reply-context.js +29 -0
- package/dist/services/reply-context.js.map +1 -0
- package/dist/services/sync-service.js +18 -6
- package/dist/services/sync-service.js.map +1 -1
- package/dist/storage/message-db.js +241 -5
- package/dist/storage/message-db.js.map +1 -1
- package/dist/telegram/client-factory.js +4 -2
- package/dist/telegram/client-factory.js.map +1 -1
- package/dist/telegram/fake-group-management.js +381 -0
- package/dist/telegram/fake-group-management.js.map +1 -0
- package/dist/telegram/group-types.js +59 -0
- package/dist/telegram/group-types.js.map +1 -0
- package/dist/telegram/group-write-types.js +2 -0
- package/dist/telegram/group-write-types.js.map +1 -0
- package/dist/telegram/mtcute-client.js +74 -9
- package/dist/telegram/mtcute-client.js.map +1 -1
- package/dist/telegram/mtcute-group-helpers.js +56 -0
- package/dist/telegram/mtcute-group-helpers.js.map +1 -0
- package/dist/telegram/mtcute-group-invites.js +82 -0
- package/dist/telegram/mtcute-group-invites.js.map +1 -0
- package/dist/telegram/mtcute-group-management.js +493 -0
- package/dist/telegram/mtcute-group-management.js.map +1 -0
- package/dist/telegram/mtcute-group-members.js +118 -0
- package/dist/telegram/mtcute-group-members.js.map +1 -0
- package/dist/telegram/mtcute-group-settings.js +146 -0
- package/dist/telegram/mtcute-group-settings.js.map +1 -0
- package/dist/telegram/mtcute-group-topics.js +63 -0
- package/dist/telegram/mtcute-group-topics.js.map +1 -0
- package/dist/telegram/proxy.js +27 -0
- package/dist/telegram/proxy.js.map +1 -0
- package/dist/telegram/raw-message.js +46 -0
- package/dist/telegram/raw-message.js.map +1 -0
- package/package.json +9 -1
|
@@ -23,35 +23,98 @@ export function validateCredentials(input) {
|
|
|
23
23
|
return { apiId, apiHash };
|
|
24
24
|
}
|
|
25
25
|
export function readCredentials(path) {
|
|
26
|
+
const configuration = readStoredConfiguration(path);
|
|
27
|
+
if (!configuration?.credentials) {
|
|
28
|
+
throw new MissingCredentialsError();
|
|
29
|
+
}
|
|
30
|
+
return configuration.credentials;
|
|
31
|
+
}
|
|
32
|
+
export function readProxy(path) {
|
|
33
|
+
return readStoredConfiguration(path)?.proxy;
|
|
34
|
+
}
|
|
35
|
+
export function writeConfiguration(path, update) {
|
|
36
|
+
const existing = readStoredConfiguration(path) ?? {};
|
|
37
|
+
const credentials = update.credentials === undefined
|
|
38
|
+
? existing.credentials
|
|
39
|
+
: validateCredentials(update.credentials);
|
|
40
|
+
const proxy = update.proxy === undefined ? existing.proxy : normalizeProxy(update.proxy);
|
|
41
|
+
if (!credentials && !proxy) {
|
|
42
|
+
throw new Error(INVALID_CREDENTIALS_MESSAGE);
|
|
43
|
+
}
|
|
44
|
+
writeDocument(path, createDocument({ credentials, proxy }));
|
|
45
|
+
}
|
|
46
|
+
export function writeCredentials(path, credentials) {
|
|
47
|
+
const normalized = validateCredentials(credentials);
|
|
48
|
+
writeConfiguration(path, { credentials: normalized });
|
|
49
|
+
}
|
|
50
|
+
function readStoredConfiguration(path) {
|
|
26
51
|
let contents;
|
|
27
52
|
try {
|
|
28
53
|
contents = readFileSync(path, 'utf8');
|
|
29
54
|
}
|
|
30
55
|
catch (error) {
|
|
31
|
-
if (isNodeError(error) && error.code === 'ENOENT')
|
|
32
|
-
|
|
33
|
-
}
|
|
56
|
+
if (isNodeError(error) && error.code === 'ENOENT')
|
|
57
|
+
return undefined;
|
|
34
58
|
throw new Error(INVALID_CREDENTIALS_MESSAGE);
|
|
35
59
|
}
|
|
36
60
|
try {
|
|
37
|
-
|
|
38
|
-
|
|
61
|
+
return parseDocument(JSON.parse(contents));
|
|
62
|
+
}
|
|
63
|
+
catch {
|
|
64
|
+
throw new Error(INVALID_CREDENTIALS_MESSAGE);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
function parseDocument(value) {
|
|
68
|
+
if (typeof value !== 'object' || value === null || Array.isArray(value)) {
|
|
69
|
+
throw new Error(INVALID_CREDENTIALS_MESSAGE);
|
|
70
|
+
}
|
|
71
|
+
const document = value;
|
|
72
|
+
const hasApiId = Object.prototype.hasOwnProperty.call(document, 'api_id');
|
|
73
|
+
const hasApiHash = Object.prototype.hasOwnProperty.call(document, 'api_hash');
|
|
74
|
+
const hasProxy = Object.prototype.hasOwnProperty.call(document, 'proxy');
|
|
75
|
+
if (hasApiId !== hasApiHash) {
|
|
76
|
+
throw new Error(INVALID_CREDENTIALS_MESSAGE);
|
|
77
|
+
}
|
|
78
|
+
let credentials;
|
|
79
|
+
if (hasApiId) {
|
|
80
|
+
if (!Number.isSafeInteger(document.api_id) ||
|
|
81
|
+
document.api_id <= 0 ||
|
|
82
|
+
typeof document.api_hash !== 'string' ||
|
|
83
|
+
document.api_hash.trim().length === 0) {
|
|
39
84
|
throw new Error(INVALID_CREDENTIALS_MESSAGE);
|
|
40
85
|
}
|
|
41
|
-
|
|
86
|
+
credentials = validateCredentials({
|
|
87
|
+
apiId: document.api_id,
|
|
88
|
+
apiHash: document.api_hash,
|
|
89
|
+
});
|
|
42
90
|
}
|
|
43
|
-
|
|
91
|
+
const proxy = hasProxy ? normalizeProxy(document.proxy) : undefined;
|
|
92
|
+
if (!credentials && !proxy) {
|
|
44
93
|
throw new Error(INVALID_CREDENTIALS_MESSAGE);
|
|
45
94
|
}
|
|
95
|
+
return { credentials, proxy };
|
|
46
96
|
}
|
|
47
|
-
|
|
48
|
-
|
|
97
|
+
function normalizeProxy(value) {
|
|
98
|
+
if (typeof value !== 'string' || value.trim().length === 0) {
|
|
99
|
+
throw new Error(INVALID_CREDENTIALS_MESSAGE);
|
|
100
|
+
}
|
|
101
|
+
return value.trim();
|
|
102
|
+
}
|
|
103
|
+
function createDocument(configuration) {
|
|
104
|
+
const document = {};
|
|
105
|
+
if (configuration.credentials) {
|
|
106
|
+
document.api_id = configuration.credentials.apiId;
|
|
107
|
+
document.api_hash = configuration.credentials.apiHash;
|
|
108
|
+
}
|
|
109
|
+
if (configuration.proxy) {
|
|
110
|
+
document.proxy = configuration.proxy;
|
|
111
|
+
}
|
|
112
|
+
return document;
|
|
113
|
+
}
|
|
114
|
+
function writeDocument(path, value) {
|
|
49
115
|
const parent = dirname(path);
|
|
50
116
|
const temporaryPath = join(parent, `.${randomUUID()}.tmp`);
|
|
51
|
-
const document = `${JSON.stringify(
|
|
52
|
-
api_id: normalized.apiId,
|
|
53
|
-
api_hash: normalized.apiHash,
|
|
54
|
-
}, null, 2)}\n`;
|
|
117
|
+
const document = `${JSON.stringify(value, null, 2)}\n`;
|
|
55
118
|
mkdirSync(parent, { recursive: true });
|
|
56
119
|
let renamed = false;
|
|
57
120
|
try {
|
|
@@ -67,15 +130,6 @@ export function writeCredentials(path, credentials) {
|
|
|
67
130
|
}
|
|
68
131
|
}
|
|
69
132
|
}
|
|
70
|
-
function isCredentialDocument(value) {
|
|
71
|
-
if (typeof value !== 'object' || value === null || Array.isArray(value))
|
|
72
|
-
return false;
|
|
73
|
-
const document = value;
|
|
74
|
-
return (Number.isSafeInteger(document.api_id) &&
|
|
75
|
-
document.api_id > 0 &&
|
|
76
|
-
typeof document.api_hash === 'string' &&
|
|
77
|
-
document.api_hash.trim().length > 0);
|
|
78
|
-
}
|
|
79
133
|
function isNodeError(error) {
|
|
80
134
|
return error instanceof Error && 'code' in error;
|
|
81
135
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"credential-store.js","sourceRoot":"","sources":["../../src/config/credential-store.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,SAAS,EACT,YAAY,EACZ,UAAU,EACV,MAAM,EACN,aAAa,GACd,MAAM,SAAS,CAAA;AAChB,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAEzC,MAAM,cAAc,GAAG,YAAY,CAAA;AACnC,MAAM,2BAA2B,GAC/B,iGAAiG,CAAA;AACnG,MAAM,2BAA2B,GAAG,+CAA+C,CAAA;
|
|
1
|
+
{"version":3,"file":"credential-store.js","sourceRoot":"","sources":["../../src/config/credential-store.ts"],"names":[],"mappings":"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"}
|
package/dist/config/env.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { mkdirSync } from 'node:fs';
|
|
2
2
|
import { homedir } from 'node:os';
|
|
3
3
|
import { isAbsolute, join, resolve } from 'node:path';
|
|
4
|
-
import { MissingCredentialsError, readCredentials, validateCredentials, } from './credential-store.js';
|
|
4
|
+
import { MissingCredentialsError, readCredentials, readProxy, validateCredentials, } from './credential-store.js';
|
|
5
5
|
const APP_NAME = 'tg-cli';
|
|
6
6
|
const DEFAULT_API_ID = 2040;
|
|
7
7
|
const DEFAULT_API_HASH = 'b18441a1ff607e10a989891a5462e627';
|
|
@@ -34,6 +34,17 @@ export function getTelegramCredentials() {
|
|
|
34
34
|
};
|
|
35
35
|
}
|
|
36
36
|
}
|
|
37
|
+
export function getTelegramProxyConfiguration() {
|
|
38
|
+
const proxy = process.env.TG_PROXY?.trim();
|
|
39
|
+
if (proxy) {
|
|
40
|
+
return { url: proxy, source: 'environment' };
|
|
41
|
+
}
|
|
42
|
+
const storedProxy = readProxy(getConfigPath());
|
|
43
|
+
return storedProxy ? { url: storedProxy, source: 'stored' } : undefined;
|
|
44
|
+
}
|
|
45
|
+
export function getTelegramProxy() {
|
|
46
|
+
return getTelegramProxyConfiguration()?.url;
|
|
47
|
+
}
|
|
37
48
|
export function getSessionName() {
|
|
38
49
|
const raw = process.env.TG_SESSION_NAME;
|
|
39
50
|
return raw && raw.trim() ? raw.trim() : 'tg_cli';
|
package/dist/config/env.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env.js","sourceRoot":"","sources":["../../src/config/env.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AACnC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AACjC,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAErD,OAAO,EACL,uBAAuB,EACvB,eAAe,EACf,mBAAmB,GAEpB,MAAM,uBAAuB,CAAA;AAE9B,MAAM,QAAQ,GAAG,QAAQ,CAAA;AACzB,MAAM,cAAc,GAAG,IAAI,CAAA;AAC3B,MAAM,gBAAgB,GAAG,kCAAkC,CAAA;AAC3D,MAAM,2BAA2B,GAAG,sDAAsD,CAAA;
|
|
1
|
+
{"version":3,"file":"env.js","sourceRoot":"","sources":["../../src/config/env.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
function deepFreezeCommand(command) {
|
|
2
|
+
command.args.forEach(Object.freeze);
|
|
3
|
+
command.options.forEach(Object.freeze);
|
|
4
|
+
Object.freeze(command.path);
|
|
5
|
+
Object.freeze(command.args);
|
|
6
|
+
Object.freeze(command.options);
|
|
7
|
+
return Object.freeze(command);
|
|
8
|
+
}
|
|
9
|
+
const commands = [
|
|
10
|
+
{ path: ['member', 'add'], summary: 'Add members to the chat', usage: 'group member add <users...>', options: [], risk: 'none', args: [{ name: 'users', kind: 'users', required: true, rest: true }], capability: 'admin' },
|
|
11
|
+
{ path: ['member', 'kick'], summary: 'Remove a member from the chat', usage: 'group member kick <user>', options: [], risk: 'confirm', args: [{ name: 'user', kind: 'user', required: true }], capability: 'admin' },
|
|
12
|
+
{ path: ['member', 'ban'], summary: 'Ban a member from the chat', usage: 'group member ban <user>', options: [], risk: 'confirm', args: [{ name: 'user', kind: 'user', required: true }], capability: 'admin' },
|
|
13
|
+
{ path: ['member', 'unban'], summary: 'Lift a member ban', usage: 'group member unban <user>', options: [], risk: 'confirm', args: [{ name: 'user', kind: 'user', required: true }], capability: 'admin' },
|
|
14
|
+
{ path: ['member', 'mute'], summary: 'Mute a member for an optional duration', usage: 'group member mute <user> [duration]', options: [], risk: 'confirm', args: [{ name: 'user', kind: 'user', required: true }, { name: 'duration', kind: 'duration', required: false }], capability: 'admin' },
|
|
15
|
+
{ path: ['member', 'unmute'], summary: 'Restore a muted member permissions', usage: 'group member unmute <user>', options: [], risk: 'confirm', args: [{ name: 'user', kind: 'user', required: true }], capability: 'admin' },
|
|
16
|
+
{ path: ['member', 'purge'], summary: 'Delete all messages from a member', usage: 'group member purge <user>', options: [], risk: 'confirm', args: [{ name: 'user', kind: 'user', required: true }], capability: 'admin' },
|
|
17
|
+
{ path: ['admin', 'promote'], summary: 'Promote a member to administrator', usage: 'group admin promote <user> [permissions]', options: [], risk: 'confirm', args: [{ name: 'user', kind: 'user', required: true }, { name: 'permissions', kind: 'permissions', required: false }], capability: 'admin' },
|
|
18
|
+
{ path: ['admin', 'demote'], summary: 'Remove administrator privileges', usage: 'group admin demote <user>', options: [], risk: 'confirm', args: [{ name: 'user', kind: 'user', required: true }], capability: 'admin' },
|
|
19
|
+
{ path: ['admin', 'rank'], summary: 'Set an administrator custom title', usage: 'group admin rank <user> <text...>', options: [], risk: 'confirm', args: [{ name: 'user', kind: 'user', required: true }, { name: 'text', kind: 'text', required: true, rest: true }], capability: 'admin' },
|
|
20
|
+
{ path: ['admin', 'transfer-owner'], summary: 'Transfer ownership to another member', usage: 'group admin transfer-owner <user>', options: [], risk: 'confirm', args: [{ name: 'user', kind: 'user', required: true }], capability: 'creator' },
|
|
21
|
+
{ path: ['chat', 'title'], summary: 'Change the chat title', usage: 'group chat title <text...>', options: [], risk: 'none', args: [{ name: 'text', kind: 'text', required: true, rest: true }], capability: 'admin' },
|
|
22
|
+
{ path: ['chat', 'description'], summary: 'Change the chat description', usage: 'group chat description <text...>', options: [], risk: 'none', args: [{ name: 'text', kind: 'text', required: true, rest: true }], capability: 'admin' },
|
|
23
|
+
{ path: ['chat', 'username'], summary: 'Change the public chat username', usage: 'group chat username <username>', options: [], risk: 'none', args: [{ name: 'username', kind: 'text', required: true }], capability: 'supergroup' },
|
|
24
|
+
{ path: ['chat', 'photo'], summary: 'Set the chat photo from a file', usage: 'group chat photo <path>', options: [], risk: 'none', args: [{ name: 'path', kind: 'path', required: true }], capability: 'admin' },
|
|
25
|
+
{ path: ['chat', 'slowmode'], summary: 'Set the slow mode interval', usage: 'group chat slowmode <duration>', options: [], risk: 'none', args: [{ name: 'duration', kind: 'duration', required: true }], capability: 'supergroup' },
|
|
26
|
+
{ path: ['chat', 'ttl'], summary: 'Set the message auto-delete interval', usage: 'group chat ttl <duration>', options: [], risk: 'confirm', args: [{ name: 'duration', kind: 'duration', required: true }], capability: 'admin' },
|
|
27
|
+
{ path: ['chat', 'protect'], summary: 'Toggle content protection', usage: 'group chat protect <enabled>', options: [], risk: 'none', args: [{ name: 'enabled', kind: 'toggle', required: true }], capability: 'admin' },
|
|
28
|
+
{ path: ['chat', 'join-requests'], summary: 'Toggle approval for new members', usage: 'group chat join-requests <enabled>', options: [], risk: 'none', args: [{ name: 'enabled', kind: 'toggle', required: true }], capability: 'supergroup' },
|
|
29
|
+
{ path: ['chat', 'join-to-send'], summary: 'Toggle membership requirement for posting', usage: 'group chat join-to-send <enabled>', options: [], risk: 'none', args: [{ name: 'enabled', kind: 'toggle', required: true }], capability: 'supergroup' },
|
|
30
|
+
{ path: ['chat', 'default-permissions'], summary: 'Set default member permissions', usage: 'group chat default-permissions <permissions>', options: [], risk: 'confirm', args: [{ name: 'permissions', kind: 'permissions', required: true }], capability: 'admin' },
|
|
31
|
+
{ path: ['chat', 'sticker-set'], summary: 'Set the chat sticker set by name, or off', usage: 'group chat sticker-set <sticker>', options: [], risk: 'none', args: [{ name: 'sticker', kind: 'text', required: true }], capability: 'supergroup' },
|
|
32
|
+
{ path: ['chat', 'leave'], summary: 'Leave the current chat', usage: 'group chat leave', options: [], risk: 'confirm', args: [], capability: 'group' },
|
|
33
|
+
{ path: ['chat', 'delete'], summary: 'Permanently delete the chat', usage: 'group chat delete', options: [], risk: 'confirm-title', args: [], capability: 'creator' },
|
|
34
|
+
{ path: ['invite', 'list'], summary: 'List chat invite links', usage: 'group invite list', options: [], risk: 'none', args: [], capability: 'admin' },
|
|
35
|
+
{ path: ['invite', 'show'], summary: 'Show details for an invite link', usage: 'group invite show <invite>', options: [], risk: 'none', args: [{ name: 'invite', kind: 'invite', required: true }], capability: 'admin' },
|
|
36
|
+
{ path: ['invite', 'create'], summary: 'Create a new invite link', usage: 'group invite create', options: [{ name: 'title', long: '--title', kind: 'text', summary: 'Set a descriptive title' }, { name: 'expire', long: '--expire', kind: 'duration', summary: 'Set the link expiration duration' }, { name: 'limit', long: '--limit', kind: 'id', summary: 'Set the maximum number of uses' }, { name: 'request-needed', long: '--request-needed', kind: 'toggle', summary: 'Require administrator approval' }], risk: 'none', args: [], capability: 'admin' },
|
|
37
|
+
{ path: ['invite', 'edit'], summary: 'Edit an existing invite link', usage: 'group invite edit <invite>', options: [{ name: 'title', long: '--title', kind: 'text', summary: 'Set a descriptive title' }, { name: 'expire', long: '--expire', kind: 'duration', summary: 'Set the link expiration duration' }, { name: 'limit', long: '--limit', kind: 'id', summary: 'Set the maximum number of uses' }, { name: 'request-needed', long: '--request-needed', kind: 'toggle', summary: 'Require administrator approval' }], risk: 'none', args: [{ name: 'invite', kind: 'invite', required: true }], capability: 'admin' },
|
|
38
|
+
{ path: ['invite', 'revoke'], summary: 'Revoke an invite link', usage: 'group invite revoke <invite>', options: [], risk: 'confirm', args: [{ name: 'invite', kind: 'invite', required: true }], capability: 'admin' },
|
|
39
|
+
{ path: ['invite', 'members'], summary: 'List members who used an invite link', usage: 'group invite members <invite>', options: [], risk: 'none', args: [{ name: 'invite', kind: 'invite', required: true }], capability: 'admin' },
|
|
40
|
+
{ path: ['invite', 'approve'], summary: 'Approve a pending join request', usage: 'group invite approve <user>', options: [], risk: 'none', args: [{ name: 'user', kind: 'user', required: true }], capability: 'admin' },
|
|
41
|
+
{ path: ['invite', 'decline'], summary: 'Decline a pending join request', usage: 'group invite decline <user>', options: [], risk: 'none', args: [{ name: 'user', kind: 'user', required: true }], capability: 'admin' },
|
|
42
|
+
{ path: ['invite', 'approve-all'], summary: 'Approve all pending join requests', usage: 'group invite approve-all', options: [], risk: 'confirm', args: [], capability: 'admin' },
|
|
43
|
+
{ path: ['invite', 'decline-all'], summary: 'Decline all pending join requests', usage: 'group invite decline-all', options: [], risk: 'confirm', args: [], capability: 'admin' },
|
|
44
|
+
{ path: ['topic', 'list'], summary: 'List forum topics', usage: 'group topic list', options: [], risk: 'none', args: [], capability: 'forum' },
|
|
45
|
+
{ path: ['topic', 'create'], summary: 'Create a forum topic', usage: 'group topic create <title...>', options: [], risk: 'none', args: [{ name: 'title', kind: 'text', required: true, rest: true }], capability: 'forum' },
|
|
46
|
+
{ path: ['topic', 'edit'], summary: 'Edit a forum topic title', usage: 'group topic edit <id> <title...>', options: [], risk: 'none', args: [{ name: 'id', kind: 'id', required: true }, { name: 'title', kind: 'text', required: true, rest: true }], capability: 'forum' },
|
|
47
|
+
{ path: ['topic', 'close'], summary: 'Close a forum topic', usage: 'group topic close <id>', options: [], risk: 'none', args: [{ name: 'id', kind: 'id', required: true }], capability: 'forum' },
|
|
48
|
+
{ path: ['topic', 'reopen'], summary: 'Reopen a closed forum topic', usage: 'group topic reopen <id>', options: [], risk: 'none', args: [{ name: 'id', kind: 'id', required: true }], capability: 'forum' },
|
|
49
|
+
{ path: ['topic', 'pin'], summary: 'Pin a forum topic', usage: 'group topic pin <id>', options: [], risk: 'none', args: [{ name: 'id', kind: 'id', required: true }], capability: 'forum' },
|
|
50
|
+
{ path: ['topic', 'unpin'], summary: 'Unpin a forum topic', usage: 'group topic unpin <id>', options: [], risk: 'none', args: [{ name: 'id', kind: 'id', required: true }], capability: 'forum' },
|
|
51
|
+
{ path: ['topic', 'reorder'], summary: 'Set the order of pinned forum topics', usage: 'group topic reorder <ids...>', options: [], risk: 'none', args: [{ name: 'ids', kind: 'ids', required: true, rest: true }], capability: 'forum' },
|
|
52
|
+
{ path: ['topic', 'delete'], summary: 'Delete a forum topic and its messages', usage: 'group topic delete <id>', options: [], risk: 'confirm', args: [{ name: 'id', kind: 'id', required: true }], capability: 'forum' },
|
|
53
|
+
{ path: ['topic', 'general-hidden'], summary: 'Toggle visibility of the general topic', usage: 'group topic general-hidden <hidden>', options: [], risk: 'none', args: [{ name: 'hidden', kind: 'toggle', required: true }], capability: 'forum' },
|
|
54
|
+
{ path: ['message', 'pin'], summary: 'Pin a message in the chat', usage: 'group message pin <id>', options: [], risk: 'none', args: [{ name: 'id', kind: 'id', required: true }], capability: 'admin' },
|
|
55
|
+
{ path: ['message', 'unpin'], summary: 'Unpin a message in the chat', usage: 'group message unpin <id>', options: [], risk: 'none', args: [{ name: 'id', kind: 'id', required: true }], capability: 'admin' },
|
|
56
|
+
{ path: ['message', 'unpin-all'], summary: 'Unpin every message in the chat', usage: 'group message unpin-all', options: [], risk: 'confirm', args: [], capability: 'admin' },
|
|
57
|
+
{ path: ['message', 'delete'], summary: 'Delete messages from the chat', usage: 'group message delete <ids...>', options: [], risk: 'confirm', args: [{ name: 'ids', kind: 'ids', required: true, rest: true }], capability: 'admin' }
|
|
58
|
+
];
|
|
59
|
+
commands.forEach(deepFreezeCommand);
|
|
60
|
+
export const GROUP_COMMANDS = Object.freeze(commands);
|
|
61
|
+
export const GROUP_COMMAND_CATALOG = {
|
|
62
|
+
'member add': GROUP_COMMANDS[0], 'member kick': GROUP_COMMANDS[1], 'member ban': GROUP_COMMANDS[2], 'member unban': GROUP_COMMANDS[3], 'member mute': GROUP_COMMANDS[4], 'member unmute': GROUP_COMMANDS[5], 'member purge': GROUP_COMMANDS[6],
|
|
63
|
+
'admin promote': GROUP_COMMANDS[7], 'admin demote': GROUP_COMMANDS[8], 'admin rank': GROUP_COMMANDS[9], 'admin transfer-owner': GROUP_COMMANDS[10],
|
|
64
|
+
'chat title': GROUP_COMMANDS[11], 'chat description': GROUP_COMMANDS[12], 'chat username': GROUP_COMMANDS[13], 'chat photo': GROUP_COMMANDS[14], 'chat slowmode': GROUP_COMMANDS[15], 'chat ttl': GROUP_COMMANDS[16], 'chat protect': GROUP_COMMANDS[17], 'chat join-requests': GROUP_COMMANDS[18], 'chat join-to-send': GROUP_COMMANDS[19], 'chat default-permissions': GROUP_COMMANDS[20], 'chat sticker-set': GROUP_COMMANDS[21], 'chat leave': GROUP_COMMANDS[22], 'chat delete': GROUP_COMMANDS[23],
|
|
65
|
+
'invite list': GROUP_COMMANDS[24], 'invite show': GROUP_COMMANDS[25], 'invite create': GROUP_COMMANDS[26], 'invite edit': GROUP_COMMANDS[27], 'invite revoke': GROUP_COMMANDS[28], 'invite members': GROUP_COMMANDS[29], 'invite approve': GROUP_COMMANDS[30], 'invite decline': GROUP_COMMANDS[31], 'invite approve-all': GROUP_COMMANDS[32], 'invite decline-all': GROUP_COMMANDS[33],
|
|
66
|
+
'topic list': GROUP_COMMANDS[34], 'topic create': GROUP_COMMANDS[35], 'topic edit': GROUP_COMMANDS[36], 'topic close': GROUP_COMMANDS[37], 'topic reopen': GROUP_COMMANDS[38], 'topic pin': GROUP_COMMANDS[39], 'topic unpin': GROUP_COMMANDS[40], 'topic reorder': GROUP_COMMANDS[41], 'topic delete': GROUP_COMMANDS[42], 'topic general-hidden': GROUP_COMMANDS[43],
|
|
67
|
+
'message pin': GROUP_COMMANDS[44], 'message unpin': GROUP_COMMANDS[45], 'message unpin-all': GROUP_COMMANDS[46], 'message delete': GROUP_COMMANDS[47],
|
|
68
|
+
};
|
|
69
|
+
//# sourceMappingURL=catalog.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"catalog.js","sourceRoot":"","sources":["../../src/group-commands/catalog.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import { ADMIN_RIGHT_KEYS, canonicalCommandKey } from '../services/group-write-service.js';
|
|
2
|
+
const queries = new Set(['invite list', 'invite show', 'invite members', 'topic list']);
|
|
3
|
+
export async function executeGroupCommand(request, context) {
|
|
4
|
+
const key = canonicalCommandKey(request);
|
|
5
|
+
if (!key)
|
|
6
|
+
return error('invalid_command', 'Invalid or noncanonical group command.');
|
|
7
|
+
if (context.connectionReady === false)
|
|
8
|
+
return error('connection_not_ready', 'Telegram connection is not ready.');
|
|
9
|
+
if (context.targetAvailable === false || (context.targetCount !== undefined && context.targetCount !== 1))
|
|
10
|
+
return error('ambiguous_chat', 'Select exactly one target chat.');
|
|
11
|
+
if (request.key === 'admin promote' && (!request.values.permissions || request.values.permissions.length === 0)) {
|
|
12
|
+
return { ok: false, selectionRequired: { kind: 'admin_permissions', chat: context.chat, target: String(request.values.user), available: ADMIN_RIGHT_KEYS } };
|
|
13
|
+
}
|
|
14
|
+
const capabilityFailure = preflight(request, context.knownGroup);
|
|
15
|
+
if (capabilityFailure)
|
|
16
|
+
return capabilityFailure;
|
|
17
|
+
const risk = request.definition.risk;
|
|
18
|
+
const titleMatches = risk !== 'confirm-title' || (context.knownGroup != null && context.confirmationTitle === context.knownGroup.title);
|
|
19
|
+
if (isConfirmationRequest(request) && (!context.confirmed || !titleMatches)) {
|
|
20
|
+
const confirmation = confirmationContext(request, context);
|
|
21
|
+
return { ok: false, confirmation: { risk: request.definition.risk, chat: context.chat, summary: request.definition.summary, ...confirmation, ...(request.definition.risk === 'confirm-title' && context.knownGroup ? { title: context.knownGroup.title } : {}) } };
|
|
22
|
+
}
|
|
23
|
+
const result = await context.groups.execute({ ...request, chat: context.chat });
|
|
24
|
+
if (result.ok && !queries.has(key) && context.invalidateGroup) {
|
|
25
|
+
await Promise.resolve(context.invalidateGroup(context.chat)).catch(() => undefined);
|
|
26
|
+
}
|
|
27
|
+
return result;
|
|
28
|
+
}
|
|
29
|
+
function isConfirmationRequest(request) { return request.definition.risk !== 'none'; }
|
|
30
|
+
function confirmationContext(request, context) {
|
|
31
|
+
switch (request.key) {
|
|
32
|
+
case 'member kick':
|
|
33
|
+
case 'member ban':
|
|
34
|
+
case 'member unban':
|
|
35
|
+
case 'member unmute':
|
|
36
|
+
case 'member purge': return { target: String(request.values.user), details: { user: request.values.user } };
|
|
37
|
+
case 'member mute': return { target: String(request.values.user), details: { user: request.values.user, durationSeconds: request.values.durationSeconds ?? null } };
|
|
38
|
+
case 'admin promote': return { target: String(request.values.user), details: { user: request.values.user, permissions: [...(request.values.permissions ?? [])] } };
|
|
39
|
+
case 'admin demote':
|
|
40
|
+
case 'admin transfer-owner': return { target: String(request.values.user), details: { user: request.values.user } };
|
|
41
|
+
case 'admin rank': return { target: String(request.values.user), details: { user: request.values.user, rank: request.values.text } };
|
|
42
|
+
case 'invite revoke': return { target: request.values.invite, details: { invite: request.values.invite } };
|
|
43
|
+
case 'topic delete': return { target: `topic ${request.values.id}`, details: { topicId: request.values.id } };
|
|
44
|
+
case 'message delete': return { target: `messages ${request.values.ids.join(', ')}`, details: { messageIds: [...request.values.ids] } };
|
|
45
|
+
case 'chat delete': return { target: context.knownGroup?.title ?? String(context.chat), details: { chat: context.chat, ...(context.knownGroup ? { title: context.knownGroup.title } : {}) } };
|
|
46
|
+
case 'chat leave': return { target: context.knownGroup?.title ?? String(context.chat), details: { chat: context.chat } };
|
|
47
|
+
case 'chat ttl': return { target: context.knownGroup?.title ?? String(context.chat), details: { durationSeconds: request.values.durationSeconds } };
|
|
48
|
+
case 'chat default-permissions': return { target: context.knownGroup?.title ?? String(context.chat), details: { permissions: [...request.values.permissions] } };
|
|
49
|
+
case 'invite approve-all':
|
|
50
|
+
case 'invite decline-all':
|
|
51
|
+
case 'message unpin-all': return { target: context.knownGroup?.title ?? String(context.chat), details: { chat: context.chat } };
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
function preflight(request, group) {
|
|
55
|
+
return evaluateGroupCommandAvailability(request.definition, group);
|
|
56
|
+
}
|
|
57
|
+
export function evaluateGroupCommandAvailability(definition, group) {
|
|
58
|
+
if (!group)
|
|
59
|
+
return undefined;
|
|
60
|
+
const capabilityError = evaluateGroupCapability(definition.capability, group);
|
|
61
|
+
if (capabilityError)
|
|
62
|
+
return capabilityError;
|
|
63
|
+
const permission = requiredPermission[definition.path.join(' ')];
|
|
64
|
+
if (group.current_user_role !== 'creator' && permission && (group.permissions == null || !group.permissions[permission])) {
|
|
65
|
+
return { ok: false, error: { code: 'permission_missing', message: `Missing Telegram group permission: ${permission}`, details: { permission } } };
|
|
66
|
+
}
|
|
67
|
+
return undefined;
|
|
68
|
+
}
|
|
69
|
+
export function evaluateGroupCapability(capability, group) {
|
|
70
|
+
if (!group)
|
|
71
|
+
return undefined;
|
|
72
|
+
if (capability === 'group' && group.type !== 'group' && group.type !== 'supergroup')
|
|
73
|
+
return error('unsupported_group', 'This command requires a group.');
|
|
74
|
+
if (capability === 'supergroup' && group.type !== 'supergroup')
|
|
75
|
+
return error('unsupported_group', 'This command requires a supergroup.');
|
|
76
|
+
if (capability === 'forum' && !group.forum)
|
|
77
|
+
return error('unsupported_group', 'This command requires a forum.');
|
|
78
|
+
if (capability === 'creator' && group.current_user_role != null && group.current_user_role !== 'creator')
|
|
79
|
+
return error('permission_missing', 'This command requires the group creator.');
|
|
80
|
+
if (capability === 'admin' && group.current_user_role != null && group.current_user_role !== 'admin' && group.current_user_role !== 'creator')
|
|
81
|
+
return error('permission_missing', 'This command requires a group administrator.');
|
|
82
|
+
return undefined;
|
|
83
|
+
}
|
|
84
|
+
function error(code, message) { return { ok: false, error: { code, message } }; }
|
|
85
|
+
const requiredPermission = {
|
|
86
|
+
'member add': 'invite_users', 'member kick': 'ban_users', 'member ban': 'ban_users', 'member unban': 'ban_users', 'member mute': 'ban_users', 'member unmute': 'ban_users',
|
|
87
|
+
'admin promote': 'add_admins', 'admin demote': 'add_admins', 'admin rank': 'add_admins',
|
|
88
|
+
'chat title': 'change_info', 'chat description': 'change_info', 'chat username': 'change_info', 'chat photo': 'change_info', 'chat slowmode': 'change_info', 'chat ttl': 'change_info', 'chat protect': 'change_info', 'chat join-requests': 'change_info', 'chat join-to-send': 'change_info', 'chat default-permissions': 'change_info', 'chat sticker-set': 'change_info',
|
|
89
|
+
'invite list': 'invite_users', 'invite show': 'invite_users', 'invite create': 'invite_users', 'invite edit': 'invite_users', 'invite revoke': 'invite_users', 'invite members': 'invite_users', 'invite approve': 'invite_users', 'invite decline': 'invite_users', 'invite approve-all': 'invite_users', 'invite decline-all': 'invite_users',
|
|
90
|
+
'topic list': 'manage_topics', 'topic create': 'manage_topics', 'topic edit': 'manage_topics', 'topic close': 'manage_topics', 'topic reopen': 'manage_topics', 'topic pin': 'manage_topics', 'topic unpin': 'manage_topics', 'topic reorder': 'manage_topics', 'topic delete': 'manage_topics', 'topic general-hidden': 'manage_topics',
|
|
91
|
+
'message pin': 'pin_messages', 'message unpin': 'pin_messages', 'message unpin-all': 'pin_messages', 'message delete': 'delete_messages', 'member purge': 'delete_messages',
|
|
92
|
+
};
|
|
93
|
+
//# sourceMappingURL=executor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"executor.js","sourceRoot":"","sources":["../../src/group-commands/executor.ts"],"names":[],"mappings":"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"}
|